var O$e=Object.defineProperty;var R$e=(B9,j1,z9)=>j1 in B9?O$e(B9,j1,{enumerable:!0,configurable:!0,writable:!0,value:z9}):B9[j1]=z9;var mr=(B9,j1,z9)=>R$e(B9,typeof j1!="symbol"?j1+"":j1,z9);(function(){"use strict";function B9(a,e){for(var t=0;t<e.length;t++){const i=e[t];if(typeof i!="string"&&!Array.isArray(i)){for(const s in i)if(s!=="default"&&!(s in a)){const r=Object.getOwnPropertyDescriptor(i,s);r&&Object.defineProperty(a,s,r.get?r:{enumerable:!0,get:()=>i[s]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}function j1(){}function z9(a){return a()}function Aue(){return Object.create(null)}function QI(a){a.forEach(z9)}function Cue(a){return typeof a=="function"}function xue(a,e){return a!=a?e==e:a!==e||a&&typeof a=="object"||typeof a=="function"}function $Ie(a){return Object.keys(a).length===0}function ePe(a,...e){if(a==null){for(const i of e)i(void 0);return j1}const t=a.subscribe(...e);return t.unsubscribe?()=>t.unsubscribe():t}function tPe(a){let e;return ePe(a,t=>e=t)(),e}function Mc(a,e){a.appendChild(e)}function iPe(a,e,t){const i=sPe(a);if(!i.getElementById(e)){const s=$2("style");s.id=e,s.textContent=t,rPe(i,s)}}function sPe(a){if(!a)return document;const e=a.getRootNode?a.getRootNode():a.ownerDocument;return e&&e.host?e:a.ownerDocument}function rPe(a,e){return Mc(a.head||a,e),e.sheet}function JI(a,e,t){a.insertBefore(e,t||null)}function F9(a){a.parentNode&&a.parentNode.removeChild(a)}function $2(a){return document.createElement(a)}function VV(a){return document.createElementNS("http://www.w3.org/2000/svg",a)}function JY(a){return document.createTextNode(a)}function k9(){return JY(" ")}function U9(a,e,t,i){return a.addEventListener(e,t,i),()=>a.removeEventListener(e,t,i)}function bue(a){return function(e){return e.stopPropagation(),a.call(this,e)}}function ya(a,e,t){t==null?a.removeAttribute(e):a.getAttribute(e)!==t&&a.setAttribute(e,t)}function nPe(a){return Array.from(a.childNodes)}function $I(a,e,t){a.classList.toggle(e,!!t)}let nw;function aw(a){nw=a}function Sue(){if(!nw)throw new Error("Function called outside component initialization");return nw}function aPe(a){Sue().$$.on_mount.push(a)}function oPe(a){Sue().$$.on_destroy.push(a)}function lPe(a,e){const t=a.$$.callbacks[e.type];t&&t.slice().forEach(i=>i.call(this,e))}const eP=[],AV=[];let tP=[];const yue=[],cPe=Promise.resolve();let $Y=!1;function uPe(){$Y||($Y=!0,cPe.then(Mue))}function eX(a){tP.push(a)}const tX=new Set;let iP=0;function Mue(){if(iP!==0)return;const a=nw;do{try{for(;iP<eP.length;){const e=eP[iP];iP++,aw(e),hPe(e.$$)}}catch(e){throw eP.length=0,iP=0,e}for(aw(null),eP.length=0,iP=0;AV.length;)AV.pop()();for(let e=0;e<tP.length;e+=1){const t=tP[e];tX.has(t)||(tX.add(t),t())}tP.length=0}while(eP.length);for(;yue.length;)yue.pop()();$Y=!1,tX.clear(),aw(a)}function hPe(a){if(a.fragment!==null){a.update(),QI(a.before_update);const e=a.dirty;a.dirty=[-1],a.fragment&&a.fragment.p(a.ctx,e),a.after_update.forEach(eX)}}function dPe(a){const e=[],t=[];tP.forEach(i=>a.indexOf(i)===-1?e.push(i):t.push(i)),t.forEach(i=>i()),tP=e}const fPe=new Set;function pPe(a,e){a&&a.i&&(fPe.delete(a),a.i(e))}function mPe(a,e,t){const{fragment:i,after_update:s}=a.$$;i&&i.m(e,t),eX(()=>{const r=a.$$.on_mount.map(z9).filter(Cue);a.$$.on_destroy?a.$$.on_destroy.push(...r):QI(r),a.$$.on_mount=[]}),s.forEach(eX)}function gPe(a,e){const t=a.$$;t.fragment!==null&&(dPe(t.after_update),QI(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function _Pe(a,e){a.$$.dirty[0]===-1&&(eP.push(a),uPe(),a.$$.dirty.fill(0)),a.$$.dirty[e/31|0]|=1<<e%31}function vPe(a,e,t,i,s,r,n=null,o=[-1]){const l=nw;aw(a);const c=a.$$={fragment:null,ctx:[],props:r,update:j1,not_equal:s,bound:Aue(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(l?l.$$.context:[])),callbacks:Aue(),dirty:o,skip_bound:!1,root:e.target||l.$$.root};n&&n(c.root);let u=!1;if(c.ctx=t?t(a,e.props||{},(f,p,...m)=>{const _=m.length?m[0]:p;return c.ctx&&s(c.ctx[f],c.ctx[f]=_)&&(!c.skip_bound&&c.bound[f]&&c.bound[f](_),u&&_Pe(a,f)),p}):[],c.update(),u=!0,QI(c.before_update),c.fragment=i?i(c.ctx):!1,e.target){if(e.hydrate){const f=nPe(e.target);c.fragment&&c.fragment.l(f),f.forEach(F9)}else c.fragment&&c.fragment.c();e.intro&&pPe(a.$$.fragment),mPe(a,e.target,e.anchor),Mue()}aw(l)}class APe{constructor(){mr(this,"$$");mr(this,"$$set")}$destroy(){gPe(this,1),this.$destroy=j1}$on(e,t){if(!Cue(t))return j1;const i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(t),()=>{const s=i.indexOf(t);s!==-1&&i.splice(s,1)}}$set(e){this.$$set&&!$Ie(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const CPe="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(CPe);const xPe=typeof WeakRef<"u";class iX{constructor(e,t=!1,i,s){this.initialize(e,t,i,s)}initialize(e,t=!1,i,s){return this.mask=e,this.skipNextObservers=t,this.target=i,this.currentTarget=s,this}}class Eue{constructor(e,t,i=null){this.callback=e,this.mask=t,this.scope=i,this._willBeUnregistered=!1,this.unregisterOnNextCall=!1,this._remove=null}remove(){this._remove&&this._remove()}}class xe{static FromPromise(e,t){const i=new xe;return e.then(s=>{i.notifyObservers(s)}).catch(s=>{if(t)t.notifyObservers(s);else throw s}),i}get observers(){return this._observers}constructor(e,t=!1){this.notifyIfTriggered=t,this._observers=new Array,this._numObserversMarkedAsDeleted=0,this._hasNotified=!1,this._eventState=new iX(0),e&&(this._onObserverAdded=e)}add(e,t=-1,i=!1,s=null,r=!1){if(!e)return null;const n=new Eue(e,t,s);n.unregisterOnNextCall=r,i?this._observers.unshift(n):this._observers.push(n),this._onObserverAdded&&this._onObserverAdded(n),this._hasNotified&&this.notifyIfTriggered&&this._lastNotifiedValue!==void 0&&this.notifyObserver(n,this._lastNotifiedValue);const o=xPe?new WeakRef(this):{deref:()=>this};return n._remove=()=>{const l=o.deref();l&&l._remove(n)},n}addOnce(e){return this.add(e,void 0,void 0,void 0,!0)}remove(e){return e?(e._remove=null,this._observers.indexOf(e)!==-1?(this._deferUnregister(e),!0):!1):!1}removeCallback(e,t){for(let i=0;i<this._observers.length;i++){const s=this._observers[i];if(!s._willBeUnregistered&&s.callback===e&&(!t||t===s.scope))return this._deferUnregister(s),!0}return!1}_deferUnregister(e){e._willBeUnregistered||(this._numObserversMarkedAsDeleted++,e.unregisterOnNextCall=!1,e._willBeUnregistered=!0,setTimeout(()=>{this._remove(e)},0))}_remove(e,t=!0){if(!e)return!1;const i=this._observers.indexOf(e);return i!==-1?(t&&this._numObserversMarkedAsDeleted--,this._observers.splice(i,1),!0):!1}makeObserverTopPriority(e){this._remove(e,!1),this._observers.unshift(e)}makeObserverBottomPriority(e){this._remove(e,!1),this._observers.push(e)}notifyObservers(e,t=-1,i,s,r){if(this.notifyIfTriggered&&(this._hasNotified=!0,this._lastNotifiedValue=e),!this._observers.length)return!0;const n=this._eventState;n.mask=t,n.target=i,n.currentTarget=s,n.skipNextObservers=!1,n.lastReturnValue=e,n.userInfo=r;for(const o of this._observers)if(!o._willBeUnregistered&&(o.mask&t&&(o.unregisterOnNextCall&&this._deferUnregister(o),o.scope?n.lastReturnValue=o.callback.apply(o.scope,[e,n]):n.lastReturnValue=o.callback(e,n)),n.skipNextObservers))return!1;return!0}notifyObserver(e,t,i=-1){if(this.notifyIfTriggered&&(this._hasNotified=!0,this._lastNotifiedValue=t),e._willBeUnregistered)return;const s=this._eventState;s.mask=i,s.skipNextObservers=!1,e.unregisterOnNextCall&&this._deferUnregister(e),e.callback(t,s)}hasObservers(){return this._observers.length-this._numObserversMarkedAsDeleted>0}clear(){for(;this._observers.length;){const e=this._observers.pop();e&&(e._remove=null)}this._onObserverAdded=null,this._numObserversMarkedAsDeleted=0,this.cleanLastNotifiedState()}cleanLastNotifiedState(){this._hasNotified=!1,this._lastNotifiedValue=void 0}clone(){const e=new xe;return e._observers=this._observers.slice(0),e}hasSpecificMask(e=-1){for(const t of this._observers)if(t.mask&e||t.mask===e)return!0;return!1}}function Il(){return typeof window<"u"}function LT(){return typeof navigator<"u"}function H6(){return typeof document<"u"}function ow(a){let e="",t=a.firstChild;for(;t;)t.nodeType===3&&(e+=t.textContent),t=t.nextSibling;return e}const bPe={IsWindowObjectExist:Il,IsNavigatorAvailable:LT,IsDocumentAvailable:H6,GetDOMTextContent:ow};class de{static _CheckLimit(e,t){let i=de._LogLimitOutputs[e];return i?i.current++:(i={limit:t,current:1},de._LogLimitOutputs[e]=i),i.current<=i.limit}static _GenerateLimitMessage(e,t=1){const i=de._LogLimitOutputs[e];if(!i||!de.MessageLimitReached)return;const s=this._Levels[t];i.current===i.limit&&de[s.name](de.MessageLimitReached.replace(/%LIMIT%/g,""+i.limit).replace(/%TYPE%/g,s.name??""))}static _AddLogEntry(e){de._LogCache=e+de._LogCache,de.OnNewCacheEntry&&de.OnNewCacheEntry(e)}static _FormatMessage(e){const t=s=>s<10?"0"+s:""+s,i=new Date;return"["+t(i.getHours())+":"+t(i.getMinutes())+":"+t(i.getSeconds())+"]: "+e}static _LogDisabled(e,t){}static _LogEnabled(e=1,t,i){const s=Array.isArray(t)?t[0]:t;if(i!==void 0&&!de._CheckLimit(s,i))return;const r=de._FormatMessage(s),n=this._Levels[e],o=Array.isArray(t)?t.slice(1):[];n.logFunc&&n.logFunc("BJS - "+r,...o);const l=`<div style='color:${n.color}'>${r}</div><br>`;de._AddLogEntry(l),de._GenerateLimitMessage(s,e)}static get LogCache(){return de._LogCache}static ClearLogCache(){de._LogCache="",de._LogLimitOutputs={},de.errorsCount=0}static set LogLevels(e){de.Log=de._LogDisabled,de.Warn=de._LogDisabled,de.Error=de._LogDisabled,[de.MessageLogLevel,de.WarningLogLevel,de.ErrorLogLevel].forEach(t=>{if((e&t)===t){const i=this._Levels[t];de[i.name]=de._LogEnabled.bind(de,t)}})}}de.NoneLogLevel=0,de.MessageLogLevel=1,de.WarningLogLevel=2,de.ErrorLogLevel=4,de.AllLogLevel=7,de.MessageLimitReached="Too many %TYPE%s (%LIMIT%), no more %TYPE%s will be reported for this message.",de._LogCache="",de._LogLimitOutputs={},de._Levels=[{},{color:"white",logFunc:console.log,name:"Log"},{color:"orange",logFunc:console.warn,name:"Warn"},{},{color:"red",logFunc:console.error,name:"Error"}],de.errorsCount=0,de.Log=de._LogEnabled.bind(de,de.MessageLogLevel),de.Warn=de._LogEnabled.bind(de,de.WarningLogLevel),de.Error=de._LogEnabled.bind(de,de.ErrorLogLevel);const Tue=(a,e,t)=>!a||a.getClassName&&a.getClassName()==="Mesh"?null:a.getClassName&&(a.getClassName()==="SubMesh"||a.getClassName()==="PhysicsBody")?a.clone(e):a.clone?a.clone():Array.isArray(a)?a.slice():t&&typeof a=="object"?{...a}:null;function SPe(a){const e=[];do Object.getOwnPropertyNames(a).forEach(function(t){e.indexOf(t)===-1&&e.push(t)});while(a=Object.getPrototypeOf(a));return e}class nu{static DeepCopy(e,t,i,s,r=!1){const n=SPe(e);for(const o of n){if(o[0]==="_"&&(!s||s.indexOf(o)===-1)||o.endsWith("Observable")||i&&i.indexOf(o)!==-1)continue;const l=e[o],c=typeof l;if(c!=="function")try{if(c==="object")if(l instanceof Uint8Array)t[o]=Uint8Array.from(l);else if(l instanceof Array){if(t[o]=[],l.length>0)if(typeof l[0]=="object")for(let u=0;u<l.length;u++){const f=Tue(l[u],t,r);t[o].indexOf(f)===-1&&t[o].push(f)}else t[o]=l.slice(0)}else t[o]=Tue(l,t,r);else t[o]=l}catch(u){de.Warn(u.message)}}}}class lr{static get Now(){return Il()&&window.performance&&window.performance.now?window.performance.now():Date.now()}}const Lue={};function as(a,e=!1){if(!(e&&Lue[a]))return Lue[a]=!0,`${a} needs to be imported before as it contains a side-effect required by your code.`}function yPe(){return typeof _native<"u"&&_native.XMLHttpRequest?new _native.XMLHttpRequest:new XMLHttpRequest}class ha{constructor(){this._xhr=yPe(),this._requestURL=""}static get IsCustomRequestAvailable(){return Object.keys(ha.CustomRequestHeaders).length>0||ha.CustomRequestModifiers.length>0}get requestURL(){return this._requestURL}_injectCustomRequestHeaders(){if(!this._shouldSkipRequestModifications(this._requestURL))for(const e in ha.CustomRequestHeaders){const t=ha.CustomRequestHeaders[e];t&&this._xhr.setRequestHeader(e,t)}}_shouldSkipRequestModifications(e){return ha.SkipRequestModificationForBabylonCDN&&(e.includes("preview.babylonjs.com")||e.includes("cdn.babylonjs.com"))}get onprogress(){return this._xhr.onprogress}set onprogress(e){this._xhr.onprogress=e}get readyState(){return this._xhr.readyState}get status(){return this._xhr.status}get statusText(){return this._xhr.statusText}get response(){return this._xhr.response}get responseURL(){return this._xhr.responseURL}get responseText(){return this._xhr.responseText}get responseType(){return this._xhr.responseType}set responseType(e){this._xhr.responseType=e}get timeout(){return this._xhr.timeout}set timeout(e){this._xhr.timeout=e}addEventListener(e,t,i){this._xhr.addEventListener(e,t,i)}removeEventListener(e,t,i){this._xhr.removeEventListener(e,t,i)}abort(){this._xhr.abort()}send(e){ha.CustomRequestHeaders&&this._injectCustomRequestHeaders(),this._xhr.send(e)}open(e,t){for(const i of ha.CustomRequestModifiers){if(this._shouldSkipRequestModifications(t))return;t=i(this._xhr,t)||t}t=t.replace("file:http:","http:"),t=t.replace("file:https:","https:"),this._requestURL=t,this._xhr.open(e,t,!0)}setRequestHeader(e,t){this._xhr.setRequestHeader(e,t)}getResponseHeader(e){return this._xhr.getResponseHeader(e)}}ha.CustomRequestHeaders={},ha.CustomRequestModifiers=new Array,ha.SkipRequestModificationForBabylonCDN=!0;class ei{static get LastCreatedEngine(){return this.Instances.length===0?null:this.Instances[this.Instances.length-1]}static get LastCreatedScene(){return this._LastCreatedScene}}ei.Instances=[],ei.OnEnginesDisposedObservable=new xe,ei._LastCreatedScene=null,ei.UseFallbackTexture=!0,ei.FallbackTexture="";class j9{}j9.FilesToLoad={};class Iue{static ExponentialBackoff(e=3,t=500){return(i,s,r)=>s.status!==0||r>=e||i.indexOf("file:")!==-1?-1:Math.pow(2,r)*t}}class py extends Error{}py._setPrototypeOf=Object.setPrototypeOf||((a,e)=>(a.__proto__=e,a));const Xx={MeshInvalidPositionsError:0,UnsupportedTextureError:1e3,GLTFLoaderUnexpectedMagicError:2e3,SceneLoaderError:3e3,LoadFileError:4e3,RequestFileError:4001,ReadFileError:4002};class Y6 extends py{constructor(e,t,i){super(e),this.errorCode=t,this.innerError=i,this.name="RuntimeError",py._setPrototypeOf(this,Y6.prototype)}}class sX extends py{constructor(e="Operation aborted"){super(e),this.name="AbortError",py._setPrototypeOf(this,sX.prototype)}}const Pue=(a,e)=>a.endsWith(e),Oue=(a,e)=>a?a.startsWith(e):!1,rX=a=>{if(typeof TextDecoder<"u")return new TextDecoder().decode(a);let e="";for(let t=0;t<a.byteLength;t++)e+=String.fromCharCode(a[t]);return e},lw=a=>{const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";let t="",i,s,r,n,o,l,c,u=0;const f=ArrayBuffer.isView(a)?new Uint8Array(a.buffer,a.byteOffset,a.byteLength):new Uint8Array(a);for(;u<f.length;)i=f[u++],s=u<f.length?f[u++]:Number.NaN,r=u<f.length?f[u++]:Number.NaN,n=i>>2,o=(i&3)<<4|s>>4,l=(s&15)<<2|r>>6,c=r&63,isNaN(s)?l=c=64:isNaN(r)&&(c=64),t+=e.charAt(n)+e.charAt(o)+e.charAt(l)+e.charAt(c);return t},WV=a=>atob(a),cw=a=>{const e=WV(a),t=e.length,i=new Uint8Array(new ArrayBuffer(t));for(let s=0;s<t;s++)i[s]=e.charCodeAt(s);return i.buffer},Rue=(a,e)=>{let t=String(a);for(;t.length<e;)t="0"+t;return t},MPe={EndsWith:Pue,StartsWith:Oue,Decode:rX,EncodeArrayBufferToBase64:lw,DecodeBase64ToString:WV,DecodeBase64ToBinary:cw,PadNumber:Rue},EPe="attribute",TPe="varying";class uw{constructor(){this.children=[]}isValid(e){return!0}process(e,t){var s,r,n,o,l,c;let i="";if(this.line){let u=this.line;const f=t.processor;if(f){f.lineProcessor&&(u=f.lineProcessor(u,t.isFragment,t.processingContext));const p=((s=t.processor)==null?void 0:s.attributeKeywordName)??EPe,m=t.isFragment&&((r=t.processor)!=null&&r.varyingFragmentKeywordName)?(n=t.processor)==null?void 0:n.varyingFragmentKeywordName:!t.isFragment&&((o=t.processor)!=null&&o.varyingVertexKeywordName)?(l=t.processor)==null?void 0:l.varyingVertexKeywordName:TPe;!t.isFragment&&f.attributeProcessor&&this.line.startsWith(p)?u=f.attributeProcessor(this.line,e,t.processingContext):f.varyingProcessor&&((c=f.varyingCheck)!=null&&c.call(f,this.line,t.isFragment)||!f.varyingCheck&&this.line.startsWith(m))?u=f.varyingProcessor(this.line,t.isFragment,e,t.processingContext):f.uniformProcessor&&f.uniformRegexp&&f.uniformRegexp.test(this.line)?t.lookForClosingBracketForUniformBuffer||(u=f.uniformProcessor(this.line,t.isFragment,e,t.processingContext)):f.uniformBufferProcessor&&f.uniformBufferRegexp&&f.uniformBufferRegexp.test(this.line)?t.lookForClosingBracketForUniformBuffer||(u=f.uniformBufferProcessor(this.line,t.isFragment,t.processingContext),t.lookForClosingBracketForUniformBuffer=!0):f.textureProcessor&&f.textureRegexp&&f.textureRegexp.test(this.line)?u=f.textureProcessor(this.line,t.isFragment,e,t.processingContext):(f.uniformProcessor||f.uniformBufferProcessor)&&this.line.startsWith("uniform")&&!t.lookForClosingBracketForUniformBuffer&&(/uniform\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/.test(this.line)?f.uniformProcessor&&(u=f.uniformProcessor(this.line,t.isFragment,e,t.processingContext)):f.uniformBufferProcessor&&(u=f.uniformBufferProcessor(this.line,t.isFragment,t.processingContext),t.lookForClosingBracketForUniformBuffer=!0)),t.lookForClosingBracketForUniformBuffer&&this.line.indexOf("}")!==-1&&(t.lookForClosingBracketForUniformBuffer=!1,f.endOfUniformBufferProcessor&&(u=f.endOfUniformBufferProcessor(this.line,t.isFragment,t.processingContext)))}i+=u+`
`}return this.children.forEach(u=>{i+=u.process(e,t)}),this.additionalDefineKey&&(e[this.additionalDefineKey]=this.additionalDefineValue||"true"),i}}class LPe{constructor(){this._lines=[]}get currentLine(){return this._lines[this.lineIndex]}get canRead(){return this.lineIndex<this._lines.length-1}set lines(e){this._lines.length=0;for(const t of e){if(!t||t==="\r")continue;if(t[0]==="#"){this._lines.push(t);continue}const i=t.trim();if(!i)continue;if(i.startsWith("//")){this._lines.push(t);continue}const s=i.indexOf(";");if(s===-1)this._lines.push(i);else if(s===i.length-1)i.length>1&&this._lines.push(i);else{const r=t.split(";");for(let n=0;n<r.length;n++){let o=r[n];o&&(o=o.trim(),o&&this._lines.push(o+(n!==r.length-1?";":"")))}}}}}class nX extends uw{process(e,t){for(let i=0;i<this.children.length;i++){const s=this.children[i];if(s.isValid(e))return s.process(e,t)}return""}}class IPe extends uw{isValid(e){return this.testExpression.isTrue(e)}}class Zo{isTrue(e){return!0}static postfixToInfix(e){const t=[];for(const i of e)if(Zo._OperatorPriority[i]===void 0)t.push(i);else{const s=t[t.length-1],r=t[t.length-2];t.length-=2,t.push(`(${r}${i}${s})`)}return t[t.length-1]}static infixToPostfix(e){const t=Zo._InfixToPostfixCache.get(e);if(t)return t.accessTime=Date.now(),t.result;if(!e.includes("&&")&&!e.includes("||")&&!e.includes(")")&&!e.includes("("))return[e];const i=[];let s=-1;const r=()=>{u=u.trim(),u!==""&&(i.push(u),u="")},n=f=>{s<Zo._Stack.length-1&&(Zo._Stack[++s]=f)},o=()=>Zo._Stack[s],l=()=>s===-1?"!!INVALID EXPRESSION!!":Zo._Stack[s--];let c=0,u="";for(;c<e.length;){const f=e.charAt(c),p=c<e.length-1?e.substring(c,2+c):"";if(f==="(")u="",n(f);else if(f===")"){for(r();s!==-1&&o()!=="(";)i.push(l());l()}else if(Zo._OperatorPriority[p]>1){for(r();s!==-1&&Zo._OperatorPriority[o()]>=Zo._OperatorPriority[p];)i.push(l());n(p),c++}else u+=f;c++}for(r();s!==-1;)o()==="("?l():i.push(l());return Zo._InfixToPostfixCache.size>=Zo.InfixToPostfixCacheLimitSize&&Zo.ClearCache(),Zo._InfixToPostfixCache.set(e,{result:i,accessTime:Date.now()}),i}static ClearCache(){const e=Array.from(Zo._InfixToPostfixCache.entries()).sort((t,i)=>t[1].accessTime-i[1].accessTime);for(let t=0;t<Zo.InfixToPostfixCacheCleanupSize;t++)Zo._InfixToPostfixCache.delete(e[t][0])}}Zo.InfixToPostfixCacheLimitSize=5e4,Zo.InfixToPostfixCacheCleanupSize=25e3,Zo._InfixToPostfixCache=new Map,Zo._OperatorPriority={")":0,"(":1,"||":2,"&&":3},Zo._Stack=["","","","","","","","","","","","","","","","","","","",""];class HV extends Zo{constructor(e,t=!1){super(),this.define=e,this.not=t}isTrue(e){let t=e[this.define]!==void 0;return this.not&&(t=!t),t}}class PPe extends Zo{isTrue(e){return this.leftOperand.isTrue(e)||this.rightOperand.isTrue(e)}}class OPe extends Zo{isTrue(e){return this.leftOperand.isTrue(e)&&this.rightOperand.isTrue(e)}}class RPe extends Zo{constructor(e,t,i){super(),this.define=e,this.operand=t,this.testValue=i}isTrue(e){let t=e[this.define];t===void 0&&(t=this.define);let i=!1;const s=parseInt(t),r=parseInt(this.testValue);switch(this.operand){case">":i=s>r;break;case"<":i=s<r;break;case"<=":i=s<=r;break;case">=":i=s>=r;break;case"==":i=s===r;break;case"!=":i=s!==r;break}return i}}const YV={};function Due(a,e,t=""){return t+(e?e+`
`:"")+a}function Nue(a,e,t,i,s,r,n){const o=n||YV.loadFile;if(o)return o(a,e,t,i,s,r);throw as("FileTools")}function wue(a,e,t,i){if(a){e?a.IS_NDC_HALF_ZRANGE="":delete a.IS_NDC_HALF_ZRANGE,t?a.USE_REVERSE_DEPTHBUFFER="":delete a.USE_REVERSE_DEPTHBUFFER,i?a.USE_EXACT_SRGB_CONVERSIONS="":delete a.USE_EXACT_SRGB_CONVERSIONS;return}else{let s="";return e&&(s+="#define IS_NDC_HALF_ZRANGE"),t&&(s&&(s+=`
`),s+="#define USE_REVERSE_DEPTHBUFFER"),i&&(s&&(s+=`
`),s+="#define USE_EXACT_SRGB_CONVERSIONS"),s}}function XV(a,e,t=!1,i){switch(a){case 3:{const r=e instanceof ArrayBuffer?new Int8Array(e):new Int8Array(e);return i&&r.set(new Int8Array(i)),r}case 0:{const r=e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e);return i&&r.set(new Uint8Array(i)),r}case 4:{const r=e instanceof ArrayBuffer?new Int16Array(e):new Int16Array(t?e/2:e);return i&&r.set(new Int16Array(i)),r}case 5:case 8:case 9:case 10:case 2:{const r=e instanceof ArrayBuffer?new Uint16Array(e):new Uint16Array(t?e/2:e);return i&&r.set(new Uint16Array(i)),r}case 6:{const r=e instanceof ArrayBuffer?new Int32Array(e):new Int32Array(t?e/4:e);return i&&r.set(new Int32Array(i)),r}case 7:case 11:case 12:case 13:case 14:case 15:{const r=e instanceof ArrayBuffer?new Uint32Array(e):new Uint32Array(t?e/4:e);return i&&r.set(new Uint32Array(i)),r}case 1:{const r=e instanceof ArrayBuffer?new Float32Array(e):new Float32Array(t?e/4:e);return i&&r.set(new Float32Array(i)),r}}const s=e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e);return i&&s.set(new Uint8Array(i)),s}const DPe=/defined\s*?\((.+?)\)/g,aX=/defined\s*?\[(.+?)\]/g,NPe=/#include\s?<(.+)>(\((.*)\))*(\[(.*)\])*/g,wPe=/__decl__/,Bue=/light\{X\}.(\w*)/g,zue=/\{X\}/g,ZV=[],BPe=/(#ifdef)|(#else)|(#elif)|(#endif)|(#ifndef)|(#if)/;function oX(a){a.processor&&a.processor.initializeShaders&&a.processor.initializeShaders(a.processingContext)}function KV(a,e,t,i){var s;(s=e.processor)!=null&&s.preProcessShaderCode&&(a=e.processor.preProcessShaderCode(a,e.isFragment)),hw(a,e,r=>{e.processCodeAfterIncludes&&(r=e.processCodeAfterIncludes(e.isFragment?"fragment":"vertex",r,e.defines));const n=UPe(r,e,i);t(n,r)})}function zPe(a,e,t,i){var s;(s=e.processor)!=null&&s.preProcessShaderCode&&(a=e.processor.preProcessShaderCode(a,e.isFragment)),hw(a,e,r=>{e.processCodeAfterIncludes&&(r=e.processCodeAfterIncludes(e.isFragment?"fragment":"vertex",r,e.defines));const n=jPe(r,e,i);t(n,r)})}function lX(a,e,t){return!t.processor||!t.processor.finalizeShaders?{vertexCode:a,fragmentCode:e}:t.processor.finalizeShaders(a,e,t.processingContext)}function FPe(a,e){var i;if((i=e.processor)!=null&&i.noPrecision)return a;const t=e.shouldUseHighPrecisionShader;return a.indexOf("precision highp float")===-1?t?a=`precision highp float;
`+a:a=`precision mediump float;
`+a:t||(a=a.replace("precision highp float","precision mediump float")),a}function cX(a){const t=/defined\((.+)\)/.exec(a);if(t&&t.length)return new HV(t[1].trim(),a[0]==="!");const i=["==","!=",">=","<=","<",">"];let s="",r=0;for(s of i)if(r=a.indexOf(s),r>-1)break;if(r===-1)return new HV(a);const n=a.substring(0,r).trim(),o=a.substring(r+s.length).trim();return new RPe(n,s,o)}function kPe(a){a=a.replace(DPe,"defined[$1]");const e=Zo.infixToPostfix(a),t=[];for(const s of e)if(s!=="||"&&s!=="&&")t.push(s);else if(t.length>=2){let r=t[t.length-1],n=t[t.length-2];t.length-=2;const o=s=="&&"?new OPe:new PPe;typeof r=="string"&&(r=r.replace(aX,"defined($1)")),typeof n=="string"&&(n=n.replace(aX,"defined($1)")),o.leftOperand=typeof n=="string"?cX(n):n,o.rightOperand=typeof r=="string"?cX(r):r,t.push(o)}let i=t[t.length-1];return typeof i=="string"&&(i=i.replace(aX,"defined($1)")),typeof i=="string"?cX(i):i}function qV(a,e){const t=new IPe,i=a.substring(0,e);let s=a.substring(e);return s=s.substring(0,(s.indexOf("//")+1||s.length+1)-1).trim(),i==="#ifdef"?t.testExpression=new HV(s):i==="#ifndef"?t.testExpression=new HV(s,!0):t.testExpression=kPe(s),t}function uX(a,e,t){let i=a.currentLine;for(;hX(a,t);){i=a.currentLine;const s=i.substring(0,5).toLowerCase();if(s==="#else"){const r=new uw;e.children.push(r),hX(a,r);return}else if(s==="#elif"){const r=qV(i,5);e.children.push(r),t=r}}}function hX(a,e){for(;a.canRead;){a.lineIndex++;const t=a.currentLine;if(t.indexOf("#")>=0){const s=BPe.exec(t);if(s&&s.length){switch(s[0]){case"#ifdef":{const n=new nX;e.children.push(n);const o=qV(t,6);n.children.push(o),uX(a,n,o);break}case"#else":case"#elif":return!0;case"#endif":return!1;case"#ifndef":{const n=new nX;e.children.push(n);const o=qV(t,7);n.children.push(o),uX(a,n,o);break}case"#if":{const n=new nX,o=qV(t,3);e.children.push(n),n.children.push(o),uX(a,n,o);break}}continue}}const i=new uw;if(i.line=t,e.children.push(i),t[0]==="#"&&t[1]==="d"){const s=t.replace(";","").split(" ");i.additionalDefineKey=s[1],s.length===3&&(i.additionalDefineValue=s[2])}}return!1}function Fue(a,e,t){const i=new uw,s=new LPe;return s.lineIndex=-1,s.lines=a.split(`
`),hX(s,i),i.process(e,t)}function kue(a,e){var s;const t=a.defines,i={};for(const r of t){const o=r.replace("#define","").replace(";","").trim().split(" ");i[o[0]]=o.length>1?o[1]:""}return((s=a.processor)==null?void 0:s.shaderLanguage)===0&&(i.GL_ES="true"),i.__VERSION__=a.version,i[a.platformName]="true",wue(i,e==null?void 0:e.isNDCHalfZRange,e==null?void 0:e.useReverseDepthBuffer,e==null?void 0:e.useExactSrgbConversions),i}function UPe(a,e,t){let i=FPe(a,e);if(!e.processor||e.processor.shaderLanguage===0&&i.indexOf("#version 3")!==-1&&(i=i.replace("#version 300 es",""),!e.processor.parseGLES3))return i;const s=e.defines,r=kue(e,t);return e.processor.preProcessor&&(i=e.processor.preProcessor(i,s,r,e.isFragment,e.processingContext)),i=Fue(i,r,e),e.processor.postProcessor&&(i=e.processor.postProcessor(i,s,e.isFragment,e.processingContext,t?{drawBuffersExtensionDisabled:!t.getCaps().drawBuffersExtension}:{})),t!=null&&t._features.needShaderCodeInlining&&(i=t.inlineShaderCode(i)),i}function jPe(a,e,t){var n,o;let i=a;const s=e.defines,r=kue(e,t);return(n=e.processor)!=null&&n.preProcessor&&(i=e.processor.preProcessor(i,s,r,e.isFragment,e.processingContext)),i=Fue(i,r,e),(o=e.processor)!=null&&o.postProcessor&&(i=e.processor.postProcessor(i,s,e.isFragment,e.processingContext,t?{drawBuffersExtensionDisabled:!t.getCaps().drawBuffersExtension}:{})),t._features.needShaderCodeInlining&&(i=t.inlineShaderCode(i)),i}function hw(a,e,t){ZV.length=0;let i;for(;(i=NPe.exec(a))!==null;)ZV.push(i);let s=String(a),r=[a],n=!1;for(const o of ZV){let l=o[1];if(l.indexOf("__decl__")!==-1&&(l=l.replace(wPe,""),e.supportsUniformBuffers&&(l=l.replace("Vertex","Ubo").replace("Fragment","Ubo")),l=l+"Declaration"),e.includesShadersStore[l]){let c=e.includesShadersStore[l];if(o[2]){const f=o[3].split(",");for(let p=0;p<f.length;p+=2){const m=new RegExp(f[p],"g"),_=f[p+1];c=c.replace(m,_)}}if(o[4]){const f=o[5];if(f.indexOf("..")!==-1){const p=f.split(".."),m=parseInt(p[0]);let _=parseInt(p[1]),d=c.slice(0);c="",isNaN(_)&&(_=e.indexParameters[p[1]]);for(let h=m;h<_;h++)e.supportsUniformBuffers||(d=d.replace(Bue,(x,A)=>A+"{X}")),c+=d.replace(zue,h.toString())+`
`}else e.supportsUniformBuffers||(c=c.replace(Bue,(p,m)=>m+"{X}")),c=c.replace(zue,f)}const u=[];for(const f of r){const p=f.split(o[0]);for(let m=0;m<p.length-1;m++)u.push(p[m]),u.push(c);u.push(p[p.length-1])}r=u,n=n||c.indexOf("#include<")>=0||c.indexOf("#include <")>=0}else{const c=e.shadersRepository+"ShadersInclude/"+l+".fx";Uue.loadFile(c,u=>{e.includesShadersStore[l]=u,hw(r.join(""),e,t)});return}}ZV.length=0,s=r.join(""),n?hw(s.toString(),e,t):t(s)}const Uue={loadFile:(a,e,t,i,s,r)=>{throw as("FileTools")}};let QV=[];class V9{static SetImmediate(e){QV.length===0&&setTimeout(()=>{const t=QV;QV=[];for(const i of t)i()},1),QV.push(e)}}function jue(a,e,t){try{if(a())return e(),!0}catch(i){return t==null||t(i),!0}return!1}const my=(a,e,t,i=16,s=3e4,r=!0,n)=>{if(r&&jue(a,e,t))return null;const o=setInterval(()=>{jue(a,e,t)?clearInterval(o):(s-=i,s<0&&(clearInterval(o),t==null||t(new Error("Operation timed out after maximum retries. "+(n||"")),!0)))},i);return()=>clearInterval(o)};class H{static GetShadersRepository(e=0){return e===0?H.ShadersRepository:H.ShadersRepositoryWGSL}static GetShadersStore(e=0){return e===0?H.ShadersStore:H.ShadersStoreWGSL}static GetIncludesShadersStore(e=0){return e===0?H.IncludesShadersStore:H.IncludesShadersStoreWGSL}}H.ShadersRepository="src/Shaders/",H.ShadersStore={},H.IncludesShadersStore={},H.ShadersRepositoryWGSL="src/ShadersWGSL/",H.ShadersStoreWGSL={},H.IncludesShadersStoreWGSL={};class Vue{constructor(){this._valueCache={},this.vertexCompilationError=null,this.fragmentCompilationError=null,this.programLinkError=null,this.programValidationError=null,this._isDisposed=!1}get isAsync(){return this.isParallelCompiled}get isReady(){return this.program?this.isParallelCompiled?this.engine._isRenderingStateCompiled(this):!0:!1}_handlesSpectorRebuildCallback(e){e&&this.program&&e(this.program)}setEngine(e){this.engine=e}_fillEffectInformation(e,t,i,s,r,n,o,l){const c=this.engine;if(c.supportsUniformBuffers)for(const p in t)e.bindUniformBlock(p,t[p]);this.engine.getUniforms(this,i).forEach((p,m)=>{s[i[m]]=p}),this._uniforms=s;let f;for(f=0;f<r.length;f++)e.getUniform(r[f])==null&&(r.splice(f,1),f--);r.forEach((p,m)=>{n[p]=m});for(const p of c.getAttributes(this,o))l.push(p)}dispose(){this._uniforms={},this._isDisposed=!0}_cacheMatrix(e,t){const i=this._valueCache[e],s=t.updateFlag;return i!==void 0&&i===s?!1:(this._valueCache[e]=s,!0)}_cacheFloat2(e,t,i){let s=this._valueCache[e];if(!s||s.length!==2)return s=[t,i],this._valueCache[e]=s,!0;let r=!1;return s[0]!==t&&(s[0]=t,r=!0),s[1]!==i&&(s[1]=i,r=!0),r}_cacheFloat3(e,t,i,s){let r=this._valueCache[e];if(!r||r.length!==3)return r=[t,i,s],this._valueCache[e]=r,!0;let n=!1;return r[0]!==t&&(r[0]=t,n=!0),r[1]!==i&&(r[1]=i,n=!0),r[2]!==s&&(r[2]=s,n=!0),n}_cacheFloat4(e,t,i,s,r){let n=this._valueCache[e];if(!n||n.length!==4)return n=[t,i,s,r],this._valueCache[e]=n,!0;let o=!1;return n[0]!==t&&(n[0]=t,o=!0),n[1]!==i&&(n[1]=i,o=!0),n[2]!==s&&(n[2]=s,o=!0),n[3]!==r&&(n[3]=r,o=!0),o}setInt(e,t){const i=this._valueCache[e];i!==void 0&&i===t||this.engine.setInt(this._uniforms[e],t)&&(this._valueCache[e]=t)}setInt2(e,t,i){this._cacheFloat2(e,t,i)&&(this.engine.setInt2(this._uniforms[e],t,i)||(this._valueCache[e]=null))}setInt3(e,t,i,s){this._cacheFloat3(e,t,i,s)&&(this.engine.setInt3(this._uniforms[e],t,i,s)||(this._valueCache[e]=null))}setInt4(e,t,i,s,r){this._cacheFloat4(e,t,i,s,r)&&(this.engine.setInt4(this._uniforms[e],t,i,s,r)||(this._valueCache[e]=null))}setIntArray(e,t){this._valueCache[e]=null,this.engine.setIntArray(this._uniforms[e],t)}setIntArray2(e,t){this._valueCache[e]=null,this.engine.setIntArray2(this._uniforms[e],t)}setIntArray3(e,t){this._valueCache[e]=null,this.engine.setIntArray3(this._uniforms[e],t)}setIntArray4(e,t){this._valueCache[e]=null,this.engine.setIntArray4(this._uniforms[e],t)}setUInt(e,t){const i=this._valueCache[e];i!==void 0&&i===t||this.engine.setUInt(this._uniforms[e],t)&&(this._valueCache[e]=t)}setUInt2(e,t,i){this._cacheFloat2(e,t,i)&&(this.engine.setUInt2(this._uniforms[e],t,i)||(this._valueCache[e]=null))}setUInt3(e,t,i,s){this._cacheFloat3(e,t,i,s)&&(this.engine.setUInt3(this._uniforms[e],t,i,s)||(this._valueCache[e]=null))}setUInt4(e,t,i,s,r){this._cacheFloat4(e,t,i,s,r)&&(this.engine.setUInt4(this._uniforms[e],t,i,s,r)||(this._valueCache[e]=null))}setUIntArray(e,t){this._valueCache[e]=null,this.engine.setUIntArray(this._uniforms[e],t)}setUIntArray2(e,t){this._valueCache[e]=null,this.engine.setUIntArray2(this._uniforms[e],t)}setUIntArray3(e,t){this._valueCache[e]=null,this.engine.setUIntArray3(this._uniforms[e],t)}setUIntArray4(e,t){this._valueCache[e]=null,this.engine.setUIntArray4(this._uniforms[e],t)}setArray(e,t){this._valueCache[e]=null,this.engine.setArray(this._uniforms[e],t)}setArray2(e,t){this._valueCache[e]=null,this.engine.setArray2(this._uniforms[e],t)}setArray3(e,t){this._valueCache[e]=null,this.engine.setArray3(this._uniforms[e],t)}setArray4(e,t){this._valueCache[e]=null,this.engine.setArray4(this._uniforms[e],t)}setMatrices(e,t){t&&(this._valueCache[e]=null,this.engine.setMatrices(this._uniforms[e],t))}setMatrix(e,t){this._cacheMatrix(e,t)&&(this.engine.setMatrices(this._uniforms[e],t.asArray())||(this._valueCache[e]=null))}setMatrix3x3(e,t){this._valueCache[e]=null,this.engine.setMatrix3x3(this._uniforms[e],t)}setMatrix2x2(e,t){this._valueCache[e]=null,this.engine.setMatrix2x2(this._uniforms[e],t)}setFloat(e,t){const i=this._valueCache[e];i!==void 0&&i===t||this.engine.setFloat(this._uniforms[e],t)&&(this._valueCache[e]=t)}setVector2(e,t){this._cacheFloat2(e,t.x,t.y)&&(this.engine.setFloat2(this._uniforms[e],t.x,t.y)||(this._valueCache[e]=null))}setFloat2(e,t,i){this._cacheFloat2(e,t,i)&&(this.engine.setFloat2(this._uniforms[e],t,i)||(this._valueCache[e]=null))}setVector3(e,t){this._cacheFloat3(e,t.x,t.y,t.z)&&(this.engine.setFloat3(this._uniforms[e],t.x,t.y,t.z)||(this._valueCache[e]=null))}setFloat3(e,t,i,s){this._cacheFloat3(e,t,i,s)&&(this.engine.setFloat3(this._uniforms[e],t,i,s)||(this._valueCache[e]=null))}setVector4(e,t){this._cacheFloat4(e,t.x,t.y,t.z,t.w)&&(this.engine.setFloat4(this._uniforms[e],t.x,t.y,t.z,t.w)||(this._valueCache[e]=null))}setQuaternion(e,t){this._cacheFloat4(e,t.x,t.y,t.z,t.w)&&(this.engine.setFloat4(this._uniforms[e],t.x,t.y,t.z,t.w)||(this._valueCache[e]=null))}setFloat4(e,t,i,s,r){this._cacheFloat4(e,t,i,s,r)&&(this.engine.setFloat4(this._uniforms[e],t,i,s,r)||(this._valueCache[e]=null))}setColor3(e,t){this._cacheFloat3(e,t.r,t.g,t.b)&&(this.engine.setFloat3(this._uniforms[e],t.r,t.g,t.b)||(this._valueCache[e]=null))}setColor4(e,t,i){this._cacheFloat4(e,t.r,t.g,t.b,i)&&(this.engine.setFloat4(this._uniforms[e],t.r,t.g,t.b,i)||(this._valueCache[e]=null))}setDirectColor4(e,t){this._cacheFloat4(e,t.r,t.g,t.b,t.a)&&(this.engine.setFloat4(this._uniforms[e],t.r,t.g,t.b,t.a)||(this._valueCache[e]=null))}_getVertexShaderCode(){return this.vertexShader?this.engine._getShaderSource(this.vertexShader):null}_getFragmentShaderCode(){return this.fragmentShader?this.engine._getShaderSource(this.fragmentShader):null}}const dX=new WeakMap,VPe={_webGLVersion:2,cachedPipelines:{}};function $p(a){let e=dX.get(a);if(!e){if(!a)return VPe;e={_webGLVersion:a.TEXTURE_BINDING_3D?2:1,_context:a,parallelShaderCompile:a.getExtension("KHR_parallel_shader_compile")||void 0,cachedPipelines:{}},dX.set(a,e)}return e}function fX(a){dX.delete(a)}function Gue(a,e,t,i,s,r){const n=$p(i);r||(r=n._createShaderProgramInjection??pX);const o=gX(e,"vertex",i,n._contextWasLost),l=gX(t,"fragment",i,n._contextWasLost);return r(a,o,l,i,s,n.validateShaderPrograms)}function Wue(a,e,t,i,s,r=null,n){const o=$p(s);n||(n=o._createShaderProgramInjection??pX);const l=o._webGLVersion>1?`#version 300 es
#define WEBGL2 
`:"",c=Hue(e,"vertex",i,l,s,o._contextWasLost),u=Hue(t,"fragment",i,l,s,o._contextWasLost);return n(a,c,u,s,r,o.validateShaderPrograms)}function GPe(a,e){const t=new Vue,i=$p(a);return i.parallelShaderCompile&&!i.disableParallelShaderCompile&&(t.isParallelCompiled=!0),t.context=i._context,t}function pX(a,e,t,i,s=null,r){const n=i.createProgram();if(a.program=n,!n)throw new Error("Unable to create program");return i.attachShader(n,e),i.attachShader(n,t),i.linkProgram(n),a.context=i,a.vertexShader=e,a.fragmentShader=t,a.isParallelCompiled||mX(a,i,r),n}function WPe(a,e,t){const i=a;if(i._isDisposed)return!1;const s=$p(e);return s&&s.parallelShaderCompile&&s.parallelShaderCompile.COMPLETION_STATUS_KHR&&i.program&&e.getProgramParameter(i.program,s.parallelShaderCompile.COMPLETION_STATUS_KHR)?(mX(i,e,t),!0):!1}function mX(a,e,t){const i=a.context,s=a.vertexShader,r=a.fragmentShader,n=a.program;if(!i.getProgramParameter(n,i.LINK_STATUS)){if(!e.getShaderParameter(s,e.COMPILE_STATUS)){const c=e.getShaderInfoLog(s);if(c)throw a.vertexCompilationError=c,new Error("VERTEX SHADER "+c)}if(!e.getShaderParameter(r,e.COMPILE_STATUS)){const c=e.getShaderInfoLog(r);if(c)throw a.fragmentCompilationError=c,new Error("FRAGMENT SHADER "+c)}const l=i.getProgramInfoLog(n);if(l)throw a.programLinkError=l,new Error(l)}if(t&&(i.validateProgram(n),!i.getProgramParameter(n,i.VALIDATE_STATUS))){const c=i.getProgramInfoLog(n);if(c)throw a.programValidationError=c,new Error(c)}i.deleteShader(s),i.deleteShader(r),a.vertexShader=void 0,a.fragmentShader=void 0,a.onCompiled&&(a.onCompiled(),a.onCompiled=void 0)}function HPe(a,e,t,i,s,r,n,o,l,c="",u,f,p){const m=$p(a.context);f||(f=m.createRawShaderProgramInjection??Gue),p||(p=m.createShaderProgramInjection??Wue);const _=a;i?_.program=f(_,e,t,_.context,l):_.program=p(_,e,t,o,_.context,l),_.program.__SPECTOR_rebuildProgram=n,u()}function Hue(a,e,t,i,s,r){return gX(Due(a,t,i),e,s,r)}function gX(a,e,t,i){const s=t.createShader(e==="vertex"?t.VERTEX_SHADER:t.FRAGMENT_SHADER);if(!s){let r=t.NO_ERROR,n=t.NO_ERROR;for(;(n=t.getError())!==t.NO_ERROR;)r=n;throw new Error(`Something went wrong while creating a gl ${e} shader object. gl error=${r}, gl isContextLost=${t.isContextLost()}, _contextWasLost=${i}`)}return t.shaderSource(s,a),t.compileShader(s),s}function YPe(a,e){e.useProgram(a)}function XPe(a,e){const t=a;if(!t.isParallelCompiled){e(a);return}const i=t.onCompiled;t.onCompiled=()=>{i==null||i(),e(a)}}function ZPe(a,e){return $p(e).cachedPipelines[a]}function _X(a){const e=a._name,t=a.context;if(e&&t){const i=$p(t),s=i.cachedPipelines[e];s==null||s.dispose(),delete i.cachedPipelines[e]}}function KPe(a,e,t,i,s,r,n){let o,l;const c=Il()?r==null?void 0:r.getHostDocument():null;typeof e=="string"?o=e:e.vertexSource?o="source:"+e.vertexSource:e.vertexElement?o=(c==null?void 0:c.getElementById(e.vertexElement))||e.vertexElement:o=e.vertex||e,typeof e=="string"?l=e:e.fragmentSource?l="source:"+e.fragmentSource:e.fragmentElement?l=(c==null?void 0:c.getElementById(e.fragmentElement))||e.fragmentElement:l=e.fragment||e;const u=[void 0,void 0],f=()=>{if(u[0]&&u[1]){a.isFragment=!0;const[p,m]=u;KV(m,a,(_,d)=>{n&&(n._fragmentSourceCodeBeforeMigration=d),t&&(_=t("fragment",_));const h=lX(p,_,a);a=null;const x=qPe(h.vertexCode,h.fragmentCode,e,s);i==null||i(x.vertexSourceCode,x.fragmentSourceCode)},r)}};Yue(o,"Vertex","",p=>{oX(a),KV(p,a,(m,_)=>{n&&(n._rawVertexSourceCode=p,n._vertexSourceCodeBeforeMigration=_),t&&(m=t("vertex",m)),u[0]=m,f()},r)},s),Yue(l,"Fragment","Pixel",p=>{n&&(n._rawFragmentSourceCode=p),u[1]=p,f()},s)}function Yue(a,e,t,i,s,r){if(typeof HTMLElement<"u"&&a instanceof HTMLElement){const l=ow(a);i(l);return}if(a.substring(0,7)==="source:"){i(a.substring(7));return}if(a.substring(0,7)==="base64:"){const l=window.atob(a.substring(7));i(l);return}const n=H.GetShadersStore(s);if(n[a+e+"Shader"]){i(n[a+e+"Shader"]);return}if(t&&n[a+t+"Shader"]){i(n[a+t+"Shader"]);return}let o;if(a[0]==="."||a[0]==="/"||a.indexOf("http")>-1?o=a:o=H.GetShadersRepository(s)+a,r=r||Nue,!r)throw new Error("loadFileInjection is not defined");r(o+"."+e.toLowerCase()+".fx",i)}function qPe(a,e,t,i){if(t){const s=t.vertexElement||t.vertex||t.spectorName||t,r=t.fragmentElement||t.fragment||t.spectorName||t;return{vertexSourceCode:(i===1?"//":"")+"#define SHADER_NAME vertex:"+s+`
`+a,fragmentSourceCode:(i===1?"//":"")+"#define SHADER_NAME fragment:"+r+`
`+e}}else return{vertexSourceCode:a,fragmentSourceCode:e}}const QPe=(a,e,t,i)=>{try{const s=a.context?$p(a.context):null;s&&(s.disableParallelShaderCompile=a.disableParallelCompilation);const r=a.existingPipelineContext||e(a.shaderProcessingContext);return r._name=a.name,a.name&&s&&(s.cachedPipelines[a.name]=r),t(r,a.vertex,a.fragment,!!a.createAsRaw,"","",a.rebuildRebind,a.defines,a.transformFeedbackVaryings,"",()=>{i(r,()=>{var n;(n=a.onRenderingStateCompiled)==null||n.call(a,r)})}),r}catch(s){throw de.Error("Error compiling effect"),s}};class Ls{static get ShadersRepository(){return H.ShadersRepository}static set ShadersRepository(e){H.ShadersRepository=e}get isDisposed(){return this._isDisposed}get onBindObservable(){return this._onBindObservable||(this._onBindObservable=new xe),this._onBindObservable}get shaderLanguage(){return this._shaderLanguage}constructor(e,t,i,s=null,r,n=null,o=null,l=null,c=null,u,f="",p=0,m){this.defines="",this.onCompiled=null,this.onError=null,this.onBind=null,this.uniqueId=0,this.onCompileObservable=new xe,this.onErrorObservable=new xe,this._onBindObservable=null,this._isDisposed=!1,this._refCount=1,this._bonesComputationForcedToCPU=!1,this._uniformBuffersNames={},this._multiTarget=!1,this._samplers={},this._isReady=!1,this._compilationError="",this._allFallbacksProcessed=!1,this._uniforms={},this._key="",this._fallbacks=null,this._vertexSourceCodeOverride="",this._fragmentSourceCodeOverride="",this._transformFeedbackVaryings=null,this._disableParallelShaderCompilation=!1,this._pipelineContext=null,this._vertexSourceCode="",this._fragmentSourceCode="",this._vertexSourceCodeBeforeMigration="",this._fragmentSourceCodeBeforeMigration="",this._rawVertexSourceCode="",this._rawFragmentSourceCode="",this._processCodeAfterIncludes=void 0,this._processFinalCode=null,this.name=e,this._key=f;const _=this._key.replace(/\r/g,"").replace(/\n/g,"|");let d;if(t.attributes){const h=t;if(this._engine=i,this._attributesNames=h.attributes,this._uniformsNames=h.uniformsNames.concat(h.samplers),this._samplerList=h.samplers.slice(),this.defines=h.defines,this.onError=h.onError,this.onCompiled=h.onCompiled,this._fallbacks=h.fallbacks,this._indexParameters=h.indexParameters,this._transformFeedbackVaryings=h.transformFeedbackVaryings||null,this._multiTarget=!!h.multiTarget,this._shaderLanguage=h.shaderLanguage??0,this._disableParallelShaderCompilation=!!h.disableParallelShaderCompilation,h.uniformBuffersNames){this._uniformBuffersNamesList=h.uniformBuffersNames.slice();for(let x=0;x<h.uniformBuffersNames.length;x++)this._uniformBuffersNames[h.uniformBuffersNames[x]]=x}this._processFinalCode=h.processFinalCode??null,this._processCodeAfterIncludes=h.processCodeAfterIncludes??void 0,m=h.extraInitializationsAsync,d=h.existingPipelineContext}else this._engine=r,this.defines=n??"",this._uniformsNames=i.concat(s),this._samplerList=s?s.slice():[],this._attributesNames=t,this._uniformBuffersNamesList=[],this._shaderLanguage=p,this.onError=c,this.onCompiled=l,this._indexParameters=u,this._fallbacks=o;this._engine.shaderPlatformName==="WEBGL2"&&(d=ZPe(_,this._engine._gl)??d),this._attributeLocationByName={},this.uniqueId=Ls._UniqueIdSeed++,d?(this._pipelineContext=d,this._pipelineContext.setEngine(this._engine),this._onRenderingStateCompiled(this._pipelineContext),this._pipelineContext.program&&(this._pipelineContext.program.__SPECTOR_rebuildProgram=this._rebuildProgram.bind(this))):this._processShaderCodeAsync(null,!1,null,m),this._engine.onReleaseEffectsObservable.addOnce(()=>{this.isDisposed||this.dispose(!0)})}async _processShaderCodeAsync(e=null,t=!1,i=null,s){s&&await s(),this._processingContext=i||this._engine._getShaderProcessingContext(this._shaderLanguage,!1);const r={defines:this.defines.split(`
`),indexParameters:this._indexParameters,isFragment:!1,shouldUseHighPrecisionShader:this._engine._shouldUseHighPrecisionShader,processor:e??this._engine._getShaderProcessor(this._shaderLanguage),supportsUniformBuffers:this._engine.supportsUniformBuffers,shadersRepository:H.GetShadersRepository(this._shaderLanguage),includesShadersStore:H.GetIncludesShadersStore(this._shaderLanguage),version:(this._engine.version*100).toString(),platformName:this._engine.shaderPlatformName,processingContext:this._processingContext,isNDCHalfZRange:this._engine.isNDCHalfZRange,useReverseDepthBuffer:this._engine.useReverseDepthBuffer,processCodeAfterIncludes:this._processCodeAfterIncludes};KPe(r,this.name,this._processFinalCode,(n,o)=>{this._vertexSourceCode=n,this._fragmentSourceCode=o,this._prepareEffect(t)},this._shaderLanguage,this._engine,this)}get key(){return this._key}isReady(){try{return this._isReadyInternal()}catch{return!1}}_isReadyInternal(){return this._engine.isDisposed||this._isReady?!0:this._pipelineContext?this._pipelineContext.isReady:!1}getEngine(){return this._engine}getPipelineContext(){return this._pipelineContext}getAttributesNames(){return this._attributesNames}getAttributeLocation(e){return this._attributes[e]}getAttributeLocationByName(e){return this._attributeLocationByName[e]}getAttributesCount(){return this._attributes.length}getUniformIndex(e){return this._uniformsNames.indexOf(e)}getUniform(e){return this._uniforms[e]}getSamplers(){return this._samplerList}getUniformNames(){return this._uniformsNames}getUniformBuffersNames(){return this._uniformBuffersNamesList}getIndexParameters(){return this._indexParameters}getCompilationError(){return this._compilationError}allFallbacksProcessed(){return this._allFallbacksProcessed}whenCompiledAsync(){return new Promise(e=>{this.executeWhenCompiled(e)})}executeWhenCompiled(e){if(this.isReady()){e(this);return}this.onCompileObservable.add(t=>{e(t)}),(!this._pipelineContext||this._pipelineContext.isAsync)&&this._checkIsReady(null)}_checkIsReady(e){my(()=>this._isReadyInternal()||this._isDisposed,()=>{},t=>{this._processCompilationErrors(t,e)},16,12e4,!0,` - Effect: ${typeof this.name=="string"?this.name:this.key}`)}get vertexSourceCode(){var e;return this._vertexSourceCodeOverride&&this._fragmentSourceCodeOverride?this._vertexSourceCodeOverride:((e=this._pipelineContext)==null?void 0:e._getVertexShaderCode())??this._vertexSourceCode}get fragmentSourceCode(){var e;return this._vertexSourceCodeOverride&&this._fragmentSourceCodeOverride?this._fragmentSourceCodeOverride:((e=this._pipelineContext)==null?void 0:e._getFragmentShaderCode())??this._fragmentSourceCode}get vertexSourceCodeBeforeMigration(){return this._vertexSourceCodeBeforeMigration}get fragmentSourceCodeBeforeMigration(){return this._fragmentSourceCodeBeforeMigration}get rawVertexSourceCode(){return this._rawVertexSourceCode}get rawFragmentSourceCode(){return this._rawFragmentSourceCode}getPipelineGenerationOptions(){return{platformName:this._engine.shaderPlatformName,shaderLanguage:this._shaderLanguage,shaderNameOrContent:this.name,key:this._key,defines:this.defines.split(`
`),addGlobalDefines:!1,extendedProcessingOptions:{indexParameters:this._indexParameters,isNDCHalfZRange:this._engine.isNDCHalfZRange,useReverseDepthBuffer:this._engine.useReverseDepthBuffer,supportsUniformBuffers:this._engine.supportsUniformBuffers},extendedCreatePipelineOptions:{transformFeedbackVaryings:this._transformFeedbackVaryings,createAsRaw:!!(this._vertexSourceCodeOverride&&this._fragmentSourceCodeOverride)}}}_rebuildProgram(e,t,i,s){this._isReady=!1,this._vertexSourceCodeOverride=e,this._fragmentSourceCodeOverride=t,this.onError=(r,n)=>{s&&s(n)},this.onCompiled=()=>{var n,o;const r=this.getEngine().scenes;if(r)for(let l=0;l<r.length;l++)r[l].markAllMaterialsAsDirty(127);(o=(n=this._pipelineContext)._handlesSpectorRebuildCallback)==null||o.call(n,i)},this._fallbacks=null,this._prepareEffect()}_onRenderingStateCompiled(e){if(this._pipelineContext=e,this._pipelineContext.setEngine(this._engine),this._attributes=[],this._pipelineContext._fillEffectInformation(this,this._uniformBuffersNames,this._uniformsNames,this._uniforms,this._samplerList,this._samplers,this._attributesNames,this._attributes),this._attributesNames)for(let t=0;t<this._attributesNames.length;t++){const i=this._attributesNames[t];this._attributeLocationByName[i]=this._attributes[t]}this._engine.bindSamplers(this),this._compilationError="",this._isReady=!0,this.onCompiled&&this.onCompiled(this),this.onCompileObservable.notifyObservers(this),this.onCompileObservable.clear(),this._fallbacks&&this._fallbacks.unBindMesh(),Ls.AutomaticallyClearCodeCache&&this.clearCodeCache()}_prepareEffect(e=!1){const t=this._pipelineContext;this._isReady=!1;try{const i=!!(this._vertexSourceCodeOverride&&this._fragmentSourceCodeOverride),s=i?null:this.defines,r=i?this._vertexSourceCodeOverride:this._vertexSourceCode,n=i?this._fragmentSourceCodeOverride:this._fragmentSourceCode,o=this._engine;this._pipelineContext=QPe({existingPipelineContext:e?t:null,vertex:r,fragment:n,context:o.shaderPlatformName==="WEBGL2"||o.shaderPlatformName==="WEBGL1"?o._gl:void 0,rebuildRebind:(l,c,u,f)=>this._rebuildProgram(l,c,u,f),defines:s,transformFeedbackVaryings:this._transformFeedbackVaryings,name:this._key.replace(/\r/g,"").replace(/\n/g,"|"),createAsRaw:i,disableParallelCompilation:this._disableParallelShaderCompilation,shaderProcessingContext:this._processingContext,onRenderingStateCompiled:l=>{t&&!e&&this._engine._deletePipelineContext(t),l&&this._onRenderingStateCompiled(l)}},this._engine.createPipelineContext.bind(this._engine),this._engine._preparePipelineContext.bind(this._engine),this._engine._executeWhenRenderingStateIsCompiled.bind(this._engine)),this._pipelineContext.isAsync&&this._checkIsReady(t)}catch(i){this._processCompilationErrors(i,t)}}_getShaderCodeAndErrorLine(e,t,i){const s=i?/FRAGMENT SHADER ERROR: 0:(\d+?):/:/VERTEX SHADER ERROR: 0:(\d+?):/;let r=null;if(t&&e){const n=t.match(s);if(n&&n.length===2){const o=parseInt(n[1]),l=e.split(`
`,-1);l.length>=o&&(r=`Offending line [${o}] in ${i?"fragment":"vertex"} code: ${l[o-1]}`)}}return[e,r]}_processCompilationErrors(e,t=null){var n,o,l;this._compilationError=e.message;const i=this._attributesNames,s=this._fallbacks;if(de.Error("Unable to compile effect:"),de.Error("Uniforms: "+this._uniformsNames.map(function(c){return" "+c})),de.Error("Attributes: "+i.map(function(c){return" "+c})),de.Error(`Defines:
`+this.defines),Ls.LogShaderCodeOnCompilationError){let c=null,u=null,f=null;(n=this._pipelineContext)!=null&&n._getVertexShaderCode()&&([f,c]=this._getShaderCodeAndErrorLine(this._pipelineContext._getVertexShaderCode(),this._compilationError,!1),f&&(de.Error("Vertex code:"),de.Error(f))),(o=this._pipelineContext)!=null&&o._getFragmentShaderCode()&&([f,u]=this._getShaderCodeAndErrorLine((l=this._pipelineContext)==null?void 0:l._getFragmentShaderCode(),this._compilationError,!0),f&&(de.Error("Fragment code:"),de.Error(f))),c&&de.Error(c),u&&de.Error(u)}de.Error("Error: "+this._compilationError);const r=()=>{this.onError&&this.onError(this,this._compilationError),this.onErrorObservable.notifyObservers(this),this._engine.onEffectErrorObservable.notifyObservers({effect:this,errors:this._compilationError})};t&&(this._pipelineContext=t,this._isReady=!0,r()),s?(this._pipelineContext=null,s.hasMoreFallbacks?(this._allFallbacksProcessed=!1,de.Error("Trying next fallback."),this.defines=s.reduce(this.defines,this),this._prepareEffect()):(this._allFallbacksProcessed=!0,r(),this.onErrorObservable.clear(),this._fallbacks&&this._fallbacks.unBindMesh())):(this._allFallbacksProcessed=!0,t||r())}get isSupported(){return this._compilationError===""}_bindTexture(e,t){this._engine._bindTexture(this._samplers[e],t,e)}setTexture(e,t){this._engine.setTexture(this._samplers[e],this._uniforms[e],t,e)}setTextureArray(e,t){const i=e+"Ex";if(this._samplerList.indexOf(i+"0")===-1){const s=this._samplerList.indexOf(e);for(let n=1;n<t.length;n++){const o=i+(n-1).toString();this._samplerList.splice(s+n,0,o)}let r=0;for(const n of this._samplerList)this._samplers[n]=r,r+=1}this._engine.setTextureArray(this._samplers[e],this._uniforms[e],t,e)}bindUniformBuffer(e,t){const i=this._uniformBuffersNames[t];i===void 0||Ls._BaseCache[i]===e&&this._engine._features.useUBOBindingCache||(Ls._BaseCache[i]=e,this._engine.bindUniformBufferBase(e,i,t))}bindUniformBlock(e,t){this._engine.bindUniformBlock(this._pipelineContext,e,t)}setInt(e,t){return this._pipelineContext.setInt(e,t),this}setInt2(e,t,i){return this._pipelineContext.setInt2(e,t,i),this}setInt3(e,t,i,s){return this._pipelineContext.setInt3(e,t,i,s),this}setInt4(e,t,i,s,r){return this._pipelineContext.setInt4(e,t,i,s,r),this}setIntArray(e,t){return this._pipelineContext.setIntArray(e,t),this}setIntArray2(e,t){return this._pipelineContext.setIntArray2(e,t),this}setIntArray3(e,t){return this._pipelineContext.setIntArray3(e,t),this}setIntArray4(e,t){return this._pipelineContext.setIntArray4(e,t),this}setUInt(e,t){return this._pipelineContext.setUInt(e,t),this}setUInt2(e,t,i){return this._pipelineContext.setUInt2(e,t,i),this}setUInt3(e,t,i,s){return this._pipelineContext.setUInt3(e,t,i,s),this}setUInt4(e,t,i,s,r){return this._pipelineContext.setUInt4(e,t,i,s,r),this}setUIntArray(e,t){return this._pipelineContext.setUIntArray(e,t),this}setUIntArray2(e,t){return this._pipelineContext.setUIntArray2(e,t),this}setUIntArray3(e,t){return this._pipelineContext.setUIntArray3(e,t),this}setUIntArray4(e,t){return this._pipelineContext.setUIntArray4(e,t),this}setFloatArray(e,t){return this._pipelineContext.setArray(e,t),this}setFloatArray2(e,t){return this._pipelineContext.setArray2(e,t),this}setFloatArray3(e,t){return this._pipelineContext.setArray3(e,t),this}setFloatArray4(e,t){return this._pipelineContext.setArray4(e,t),this}setArray(e,t){return this._pipelineContext.setArray(e,t),this}setArray2(e,t){return this._pipelineContext.setArray2(e,t),this}setArray3(e,t){return this._pipelineContext.setArray3(e,t),this}setArray4(e,t){return this._pipelineContext.setArray4(e,t),this}setMatrices(e,t){return this._pipelineContext.setMatrices(e,t),this}setMatrix(e,t){return this._pipelineContext.setMatrix(e,t),this}setMatrix3x3(e,t){return this._pipelineContext.setMatrix3x3(e,t),this}setMatrix2x2(e,t){return this._pipelineContext.setMatrix2x2(e,t),this}setFloat(e,t){return this._pipelineContext.setFloat(e,t),this}setBool(e,t){return this._pipelineContext.setInt(e,t?1:0),this}setVector2(e,t){return this._pipelineContext.setVector2(e,t),this}setFloat2(e,t,i){return this._pipelineContext.setFloat2(e,t,i),this}setVector3(e,t){return this._pipelineContext.setVector3(e,t),this}setFloat3(e,t,i,s){return this._pipelineContext.setFloat3(e,t,i,s),this}setVector4(e,t){return this._pipelineContext.setVector4(e,t),this}setQuaternion(e,t){return this._pipelineContext.setQuaternion(e,t),this}setFloat4(e,t,i,s,r){return this._pipelineContext.setFloat4(e,t,i,s,r),this}setColor3(e,t){return this._pipelineContext.setColor3(e,t),this}setColor4(e,t,i){return this._pipelineContext.setColor4(e,t,i),this}setDirectColor4(e,t){return this._pipelineContext.setDirectColor4(e,t),this}clearCodeCache(){this._vertexSourceCode="",this._fragmentSourceCode="",this._fragmentSourceCodeBeforeMigration="",this._vertexSourceCodeBeforeMigration=""}dispose(e=!1){if(e)this._refCount=0;else{if(Ls.PersistentMode)return;this._refCount--}this._refCount>0||this._isDisposed||(this._pipelineContext&&_X(this._pipelineContext),this._engine._releaseEffect(this),this.clearCodeCache(),this._isDisposed=!0)}static RegisterShader(e,t,i,s=0){t&&(H.GetShadersStore(s)[`${e}PixelShader`]=t),i&&(H.GetShadersStore(s)[`${e}VertexShader`]=i)}static ResetCache(){Ls._BaseCache={}}}Ls.LogShaderCodeOnCompilationError=!0,Ls.PersistentMode=!1,Ls.AutomaticallyClearCodeCache=!1,Ls._UniqueIdSeed=0,Ls._BaseCache={},Ls.ShadersStore=H.ShadersStore,Ls.IncludesShadersStore=H.IncludesShadersStore;class Ec{static SetMatrixPrecision(e){if(Ec.MatrixTrackPrecisionChange=!1,e&&!Ec.MatrixUse64Bits&&Ec.MatrixTrackedMatrices)for(let t=0;t<Ec.MatrixTrackedMatrices.length;++t){const i=Ec.MatrixTrackedMatrices[t],s=i._m;i._m=new Array(16);for(let r=0;r<16;++r)i._m[r]=s[r]}Ec.MatrixUse64Bits=e,Ec.MatrixCurrentType=Ec.MatrixUse64Bits?Array:Float32Array,Ec.MatrixTrackedMatrices=null}}Ec.MatrixUse64Bits=!1,Ec.MatrixTrackPrecisionChange=!0,Ec.MatrixCurrentType=Float32Array,Ec.MatrixTrackedMatrices=[];class vX{constructor(e=!0){this._isDepthTestDirty=!1,this._isDepthMaskDirty=!1,this._isDepthFuncDirty=!1,this._isCullFaceDirty=!1,this._isCullDirty=!1,this._isZOffsetDirty=!1,this._isFrontFaceDirty=!1,e&&this.reset()}get isDirty(){return this._isDepthFuncDirty||this._isDepthTestDirty||this._isDepthMaskDirty||this._isCullFaceDirty||this._isCullDirty||this._isZOffsetDirty||this._isFrontFaceDirty}get zOffset(){return this._zOffset}set zOffset(e){this._zOffset!==e&&(this._zOffset=e,this._isZOffsetDirty=!0)}get zOffsetUnits(){return this._zOffsetUnits}set zOffsetUnits(e){this._zOffsetUnits!==e&&(this._zOffsetUnits=e,this._isZOffsetDirty=!0)}get cullFace(){return this._cullFace}set cullFace(e){this._cullFace!==e&&(this._cullFace=e,this._isCullFaceDirty=!0)}get cull(){return this._cull}set cull(e){this._cull!==e&&(this._cull=e,this._isCullDirty=!0)}get depthFunc(){return this._depthFunc}set depthFunc(e){this._depthFunc!==e&&(this._depthFunc=e,this._isDepthFuncDirty=!0)}get depthMask(){return this._depthMask}set depthMask(e){this._depthMask!==e&&(this._depthMask=e,this._isDepthMaskDirty=!0)}get depthTest(){return this._depthTest}set depthTest(e){this._depthTest!==e&&(this._depthTest=e,this._isDepthTestDirty=!0)}get frontFace(){return this._frontFace}set frontFace(e){this._frontFace!==e&&(this._frontFace=e,this._isFrontFaceDirty=!0)}reset(){this._depthMask=!0,this._depthTest=!0,this._depthFunc=null,this._cullFace=null,this._cull=null,this._zOffset=0,this._zOffsetUnits=0,this._frontFace=null,this._isDepthTestDirty=!0,this._isDepthMaskDirty=!0,this._isDepthFuncDirty=!1,this._isCullFaceDirty=!1,this._isCullDirty=!1,this._isZOffsetDirty=!0,this._isFrontFaceDirty=!1}apply(e){this.isDirty&&(this._isCullDirty&&(this.cull?e.enable(e.CULL_FACE):e.disable(e.CULL_FACE),this._isCullDirty=!1),this._isCullFaceDirty&&(e.cullFace(this.cullFace),this._isCullFaceDirty=!1),this._isDepthMaskDirty&&(e.depthMask(this.depthMask),this._isDepthMaskDirty=!1),this._isDepthTestDirty&&(this.depthTest?e.enable(e.DEPTH_TEST):e.disable(e.DEPTH_TEST),this._isDepthTestDirty=!1),this._isDepthFuncDirty&&(e.depthFunc(this.depthFunc),this._isDepthFuncDirty=!1),this._isZOffsetDirty&&(this.zOffset||this.zOffsetUnits?(e.enable(e.POLYGON_OFFSET_FILL),e.polygonOffset(this.zOffset,this.zOffsetUnits)):e.disable(e.POLYGON_OFFSET_FILL),this._isZOffsetDirty=!1),this._isFrontFaceDirty&&(e.frontFace(this.frontFace),this._isFrontFaceDirty=!1))}}class AX{get isDirty(){return this._isStencilTestDirty||this._isStencilMaskDirty||this._isStencilFuncDirty||this._isStencilOpDirty}get func(){return this._func}set func(e){this._func!==e&&(this._func=e,this._isStencilFuncDirty=!0)}get funcRef(){return this._funcRef}set funcRef(e){this._funcRef!==e&&(this._funcRef=e,this._isStencilFuncDirty=!0)}get funcMask(){return this._funcMask}set funcMask(e){this._funcMask!==e&&(this._funcMask=e,this._isStencilFuncDirty=!0)}get opStencilFail(){return this._opStencilFail}set opStencilFail(e){this._opStencilFail!==e&&(this._opStencilFail=e,this._isStencilOpDirty=!0)}get opDepthFail(){return this._opDepthFail}set opDepthFail(e){this._opDepthFail!==e&&(this._opDepthFail=e,this._isStencilOpDirty=!0)}get opStencilDepthPass(){return this._opStencilDepthPass}set opStencilDepthPass(e){this._opStencilDepthPass!==e&&(this._opStencilDepthPass=e,this._isStencilOpDirty=!0)}get mask(){return this._mask}set mask(e){this._mask!==e&&(this._mask=e,this._isStencilMaskDirty=!0)}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&(this._enabled=e,this._isStencilTestDirty=!0)}constructor(e=!0){this._isStencilTestDirty=!1,this._isStencilMaskDirty=!1,this._isStencilFuncDirty=!1,this._isStencilOpDirty=!1,this.useStencilGlobalOnly=!1,e&&this.reset()}reset(){var e;this.stencilMaterial=void 0,(e=this.stencilGlobal)==null||e.reset(),this._isStencilTestDirty=!0,this._isStencilMaskDirty=!0,this._isStencilFuncDirty=!0,this._isStencilOpDirty=!0}apply(e){var i;if(!e)return;const t=!this.useStencilGlobalOnly&&!!((i=this.stencilMaterial)!=null&&i.enabled);this.enabled=t?this.stencilMaterial.enabled:this.stencilGlobal.enabled,this.func=t?this.stencilMaterial.func:this.stencilGlobal.func,this.funcRef=t?this.stencilMaterial.funcRef:this.stencilGlobal.funcRef,this.funcMask=t?this.stencilMaterial.funcMask:this.stencilGlobal.funcMask,this.opStencilFail=t?this.stencilMaterial.opStencilFail:this.stencilGlobal.opStencilFail,this.opDepthFail=t?this.stencilMaterial.opDepthFail:this.stencilGlobal.opDepthFail,this.opStencilDepthPass=t?this.stencilMaterial.opStencilDepthPass:this.stencilGlobal.opStencilDepthPass,this.mask=t?this.stencilMaterial.mask:this.stencilGlobal.mask,this.isDirty&&(this._isStencilTestDirty&&(this.enabled?e.enable(e.STENCIL_TEST):e.disable(e.STENCIL_TEST),this._isStencilTestDirty=!1),this._isStencilMaskDirty&&(e.stencilMask(this.mask),this._isStencilMaskDirty=!1),this._isStencilFuncDirty&&(e.stencilFunc(this.func,this.funcRef,this.funcMask),this._isStencilFuncDirty=!1),this._isStencilOpDirty&&(e.stencilOp(this.opStencilFail,this.opDepthFail,this.opStencilDepthPass),this._isStencilOpDirty=!1))}}class Zx{constructor(){this.reset()}reset(){this.enabled=!1,this.mask=255,this.func=Zx.ALWAYS,this.funcRef=1,this.funcMask=255,this.opStencilFail=Zx.KEEP,this.opDepthFail=Zx.KEEP,this.opStencilDepthPass=Zx.REPLACE}get stencilFunc(){return this.func}set stencilFunc(e){this.func=e}get stencilFuncRef(){return this.funcRef}set stencilFuncRef(e){this.funcRef=e}get stencilFuncMask(){return this.funcMask}set stencilFuncMask(e){this.funcMask=e}get stencilOpStencilFail(){return this.opStencilFail}set stencilOpStencilFail(e){this.opStencilFail=e}get stencilOpDepthFail(){return this.opDepthFail}set stencilOpDepthFail(e){this.opDepthFail=e}get stencilOpStencilDepthPass(){return this.opStencilDepthPass}set stencilOpStencilDepthPass(e){this.opStencilDepthPass=e}get stencilMask(){return this.mask}set stencilMask(e){this.mask=e}get stencilTest(){return this.enabled}set stencilTest(e){this.enabled=e}}Zx.ALWAYS=519,Zx.KEEP=7680,Zx.REPLACE=7681;class Xue{constructor(){this._blendFunctionParameters=new Array(4),this._blendEquationParameters=new Array(2),this._blendConstants=new Array(4),this._isBlendConstantsDirty=!1,this._alphaBlend=!1,this._isAlphaBlendDirty=!1,this._isBlendFunctionParametersDirty=!1,this._isBlendEquationParametersDirty=!1,this.reset()}get isDirty(){return this._isAlphaBlendDirty||this._isBlendFunctionParametersDirty||this._isBlendEquationParametersDirty}get alphaBlend(){return this._alphaBlend}set alphaBlend(e){this._alphaBlend!==e&&(this._alphaBlend=e,this._isAlphaBlendDirty=!0)}setAlphaBlendConstants(e,t,i,s){this._blendConstants[0]===e&&this._blendConstants[1]===t&&this._blendConstants[2]===i&&this._blendConstants[3]===s||(this._blendConstants[0]=e,this._blendConstants[1]=t,this._blendConstants[2]=i,this._blendConstants[3]=s,this._isBlendConstantsDirty=!0)}setAlphaBlendFunctionParameters(e,t,i,s){this._blendFunctionParameters[0]===e&&this._blendFunctionParameters[1]===t&&this._blendFunctionParameters[2]===i&&this._blendFunctionParameters[3]===s||(this._blendFunctionParameters[0]=e,this._blendFunctionParameters[1]=t,this._blendFunctionParameters[2]=i,this._blendFunctionParameters[3]=s,this._isBlendFunctionParametersDirty=!0)}setAlphaEquationParameters(e,t){this._blendEquationParameters[0]===e&&this._blendEquationParameters[1]===t||(this._blendEquationParameters[0]=e,this._blendEquationParameters[1]=t,this._isBlendEquationParametersDirty=!0)}reset(){this._alphaBlend=!1,this._blendFunctionParameters[0]=null,this._blendFunctionParameters[1]=null,this._blendFunctionParameters[2]=null,this._blendFunctionParameters[3]=null,this._blendEquationParameters[0]=null,this._blendEquationParameters[1]=null,this._blendConstants[0]=null,this._blendConstants[1]=null,this._blendConstants[2]=null,this._blendConstants[3]=null,this._isAlphaBlendDirty=!0,this._isBlendFunctionParametersDirty=!1,this._isBlendEquationParametersDirty=!1,this._isBlendConstantsDirty=!1}apply(e){this.isDirty&&(this._isAlphaBlendDirty&&(this._alphaBlend?e.enable(e.BLEND):e.disable(e.BLEND),this._isAlphaBlendDirty=!1),this._isBlendFunctionParametersDirty&&(e.blendFuncSeparate(this._blendFunctionParameters[0],this._blendFunctionParameters[1],this._blendFunctionParameters[2],this._blendFunctionParameters[3]),this._isBlendFunctionParametersDirty=!1),this._isBlendEquationParametersDirty&&(e.blendEquationSeparate(this._blendEquationParameters[0],this._blendEquationParameters[1]),this._isBlendEquationParametersDirty=!1),this._isBlendConstantsDirty&&(e.blendColor(this._blendConstants[0],this._blendConstants[1],this._blendConstants[2],this._blendConstants[3]),this._isBlendConstantsDirty=!1))}}class JV{get wrapU(){return this._cachedWrapU}set wrapU(e){this._cachedWrapU=e}get wrapV(){return this._cachedWrapV}set wrapV(e){this._cachedWrapV=e}get wrapR(){return this._cachedWrapR}set wrapR(e){this._cachedWrapR=e}get anisotropicFilteringLevel(){return this._cachedAnisotropicFilteringLevel}set anisotropicFilteringLevel(e){this._cachedAnisotropicFilteringLevel=e}get comparisonFunction(){return this._comparisonFunction}set comparisonFunction(e){this._comparisonFunction=e}get useMipMaps(){return this._useMipMaps}set useMipMaps(e){this._useMipMaps=e}constructor(){this.samplingMode=-1,this._useMipMaps=!0,this._cachedWrapU=null,this._cachedWrapV=null,this._cachedWrapR=null,this._cachedAnisotropicFilteringLevel=null,this._comparisonFunction=0}setParameters(e=1,t=1,i=1,s=1,r=2,n=0){return this._cachedWrapU=e,this._cachedWrapV=t,this._cachedWrapR=i,this._cachedAnisotropicFilteringLevel=s,this.samplingMode=r,this._comparisonFunction=n,this}compareSampler(e){return this._cachedWrapU===e._cachedWrapU&&this._cachedWrapV===e._cachedWrapV&&this._cachedWrapR===e._cachedWrapR&&this._cachedAnisotropicFilteringLevel===e._cachedAnisotropicFilteringLevel&&this.samplingMode===e.samplingMode&&this._comparisonFunction===e._comparisonFunction&&this._useMipMaps===e._useMipMaps}}var CX;(function(a){a[a.Unknown=0]="Unknown",a[a.Url=1]="Url",a[a.Temp=2]="Temp",a[a.Raw=3]="Raw",a[a.Dynamic=4]="Dynamic",a[a.RenderTarget=5]="RenderTarget",a[a.MultiRenderTarget=6]="MultiRenderTarget",a[a.Cube=7]="Cube",a[a.CubeRaw=8]="CubeRaw",a[a.CubePrefiltered=9]="CubePrefiltered",a[a.Raw3D=10]="Raw3D",a[a.Raw2DArray=11]="Raw2DArray",a[a.DepthStencil=12]="DepthStencil",a[a.CubeRawRGBD=13]="CubeRawRGBD",a[a.Depth=14]="Depth"})(CX||(CX={}));class gr extends JV{get useMipMaps(){return this.generateMipMaps}set useMipMaps(e){this.generateMipMaps=e}get uniqueId(){return this._uniqueId}_setUniqueId(e){this._uniqueId=e}getEngine(){return this._engine}get source(){return this._source}constructor(e,t,i=!1){super(),this.isReady=!1,this.isCube=!1,this.is3D=!1,this.is2DArray=!1,this.isMultiview=!1,this.url="",this.generateMipMaps=!1,this.samples=0,this.type=-1,this.format=-1,this.onLoadedObservable=new xe,this.onErrorObservable=new xe,this.onRebuildCallback=null,this.width=0,this.height=0,this.depth=0,this.baseWidth=0,this.baseHeight=0,this.baseDepth=0,this.invertY=!1,this._invertVScale=!1,this._associatedChannel=-1,this._source=0,this._buffer=null,this._bufferView=null,this._bufferViewArray=null,this._bufferViewArrayArray=null,this._size=0,this._extension="",this._files=null,this._workingCanvas=null,this._workingContext=null,this._cachedCoordinatesMode=null,this._isDisabled=!1,this._compression=null,this._sphericalPolynomial=null,this._sphericalPolynomialPromise=null,this._sphericalPolynomialComputed=!1,this._lodGenerationScale=0,this._lodGenerationOffset=0,this._useSRGBBuffer=!1,this._creationFlags=0,this._lodTextureHigh=null,this._lodTextureMid=null,this._lodTextureLow=null,this._isRGBD=!1,this._linearSpecularLOD=!1,this._irradianceTexture=null,this._hardwareTexture=null,this._maxLodLevel=null,this._references=1,this._gammaSpace=null,this._premulAlpha=!1,this._dynamicTextureSource=null,this._autoMSAAManagement=!1,this._engine=e,this._source=t,this._uniqueId=gr._Counter++,i||(this._hardwareTexture=e._createHardwareTexture())}incrementReferences(){this._references++}updateSize(e,t,i=1){this._engine.updateTextureDimensions(this,e,t,i),this.width=e,this.height=t,this.depth=i,this.baseWidth=e,this.baseHeight=t,this.baseDepth=i,this._size=e*t*i}_rebuild(){if(this.isReady=!1,this._cachedCoordinatesMode=null,this._cachedWrapU=null,this._cachedWrapV=null,this._cachedWrapR=null,this._cachedAnisotropicFilteringLevel=null,this.onRebuildCallback){const t=this.onRebuildCallback(this),i=s=>{s._swapAndDie(this,!1),this.isReady=t.isReady};t.isAsync?t.proxy.then(i):i(t.proxy);return}let e;switch(this.source){case 2:break;case 1:e=this._engine.createTexture(this._originalUrl??this.url,!this.generateMipMaps,this.invertY,null,this.samplingMode,t=>{t._swapAndDie(this,!1),this.isReady=!0},null,this._buffer,void 0,this.format,this._extension,void 0,void 0,void 0,this._useSRGBBuffer);return;case 3:e=this._engine.createRawTexture(this._bufferView,this.baseWidth,this.baseHeight,this.format,this.generateMipMaps,this.invertY,this.samplingMode,this._compression,this.type,this._creationFlags,this._useSRGBBuffer),e._swapAndDie(this,!1),this.isReady=!0;break;case 10:e=this._engine.createRawTexture3D(this._bufferView,this.baseWidth,this.baseHeight,this.baseDepth,this.format,this.generateMipMaps,this.invertY,this.samplingMode,this._compression,this.type),e._swapAndDie(this,!1),this.isReady=!0;break;case 11:e=this._engine.createRawTexture2DArray(this._bufferView,this.baseWidth,this.baseHeight,this.baseDepth,this.format,this.generateMipMaps,this.invertY,this.samplingMode,this._compression,this.type),e._swapAndDie(this,!1),this.isReady=!0;break;case 4:e=this._engine.createDynamicTexture(this.baseWidth,this.baseHeight,this.generateMipMaps,this.samplingMode),e._swapAndDie(this,!1),this._dynamicTextureSource&&this._engine.updateDynamicTexture(this,this._dynamicTextureSource,this.invertY,this._premulAlpha,this.format,!0);break;case 7:e=this._engine.createCubeTexture(this.url,null,this._files,!this.generateMipMaps,()=>{e._swapAndDie(this,!1),this.isReady=!0},null,this.format,this._extension,!1,0,0,null,void 0,this._useSRGBBuffer,ArrayBuffer.isView(this._buffer)?this._buffer:null);return;case 8:e=this._engine.createRawCubeTexture(this._bufferViewArray,this.width,this._originalFormat??this.format,this.type,this.generateMipMaps,this.invertY,this.samplingMode,this._compression),e._swapAndDie(this,!1),this.isReady=!0;break;case 13:return;case 9:e=this._engine.createPrefilteredCubeTexture(this.url,null,this._lodGenerationScale,this._lodGenerationOffset,t=>{t&&t._swapAndDie(this,!1),this.isReady=!0},null,this.format,this._extension),e._sphericalPolynomial=this._sphericalPolynomial;return}}_swapAndDie(e,t=!0){var r;(r=this._hardwareTexture)==null||r.setUsage(e._source,this.generateMipMaps,this.is2DArray,this.isCube,this.is3D,this.width,this.height,this.depth),e._hardwareTexture=this._hardwareTexture,t&&(e._isRGBD=this._isRGBD),this._lodTextureHigh&&(e._lodTextureHigh&&e._lodTextureHigh.dispose(),e._lodTextureHigh=this._lodTextureHigh),this._lodTextureMid&&(e._lodTextureMid&&e._lodTextureMid.dispose(),e._lodTextureMid=this._lodTextureMid),this._lodTextureLow&&(e._lodTextureLow&&e._lodTextureLow.dispose(),e._lodTextureLow=this._lodTextureLow),this._irradianceTexture&&(e._irradianceTexture&&e._irradianceTexture.dispose(),e._irradianceTexture=this._irradianceTexture);const i=this._engine.getLoadedTexturesCache();let s=i.indexOf(this);s!==-1&&i.splice(s,1),s=i.indexOf(e),s===-1&&i.push(e)}dispose(){this._references--,this._references===0&&(this.onLoadedObservable.clear(),this.onErrorObservable.clear(),this._engine._releaseTexture(this),this._hardwareTexture=null,this._dynamicTextureSource=null)}}gr._Counter=0;const $V=new Map;function Kx(a,e){Zue(a)&&de.Warn(`Extension with the name '${name}' already exists`),$V.set(a,e)}function Zue(a){return $V.delete(a)}function eG(a,e){(e==="image/ktx"||e==="image/ktx2")&&(a=".ktx"),$V.has(a)||(a.endsWith(".ies")&&Kx(".ies",()=>Promise.resolve().then(()=>RGe).then(i=>new i._IESTextureLoader)),a.endsWith(".dds")&&Kx(".dds",()=>Promise.resolve().then(()=>gFe).then(i=>new i._DDSTextureLoader)),a.endsWith(".basis")&&Kx(".basis",()=>Promise.resolve().then(()=>oGe).then(i=>new i._BasisTextureLoader)),a.endsWith(".env")&&Kx(".env",()=>Promise.resolve().then(()=>_Fe).then(i=>new i._ENVTextureLoader)),a.endsWith(".hdr")&&Kx(".hdr",()=>Promise.resolve().then(()=>JVe).then(i=>new i._HDRTextureLoader)),(a.endsWith(".ktx")||a.endsWith(".ktx2"))&&(Kx(".ktx",()=>Promise.resolve().then(()=>T3e).then(i=>new i._KTXTextureLoader)),Kx(".ktx2",()=>Promise.resolve().then(()=>T3e).then(i=>new i._KTXTextureLoader))),a.endsWith(".tga")&&Kx(".tga",()=>Promise.resolve().then(()=>QVe).then(i=>new i._TGATextureLoader)),a.endsWith(".exr")&&Kx(".exr",()=>Promise.resolve().then(()=>OGe).then(i=>new i._ExrTextureLoader)));const t=$V.get(a);return t?Promise.resolve(t(e)):null}function xX(a,e){if(Il()){const{requestAnimationFrame:t}=e||window;if(typeof t=="function")return t(a)}else if(typeof requestAnimationFrame=="function")return requestAnimationFrame(a);return setTimeout(a,16)}class dt{get frameId(){return this._frameId}get isWebGPU(){return this._isWebGPU}_getShaderProcessor(e){return this._shaderProcessor}get shaderPlatformName(){return this._shaderPlatformName}_clearEmptyResources(){this._emptyTexture=null,this._emptyCubeTexture=null,this._emptyTexture3D=null,this._emptyTexture2DArray=null}get useReverseDepthBuffer(){return this._useReverseDepthBuffer}set useReverseDepthBuffer(e){e!==this._useReverseDepthBuffer&&(this._useReverseDepthBuffer=e,e?this._depthCullingState.depthFunc=518:this._depthCullingState.depthFunc=515)}setColorWrite(e){e!==this._colorWrite&&(this._colorWriteChanged=!0,this._colorWrite=e)}getColorWrite(){return this._colorWrite}get depthCullingState(){return this._depthCullingState}get alphaState(){return this._alphaState}get stencilState(){return this._stencilState}get stencilStateComposer(){return this._stencilStateComposer}_getGlobalDefines(e){if(e){this.isNDCHalfZRange?e.IS_NDC_HALF_ZRANGE="":delete e.IS_NDC_HALF_ZRANGE,this.useReverseDepthBuffer?e.USE_REVERSE_DEPTHBUFFER="":delete e.USE_REVERSE_DEPTHBUFFER,this.useExactSrgbConversions?e.USE_EXACT_SRGB_CONVERSIONS="":delete e.USE_EXACT_SRGB_CONVERSIONS;return}else{let t="";return this.isNDCHalfZRange&&(t+="#define IS_NDC_HALF_ZRANGE"),this.useReverseDepthBuffer&&(t&&(t+=`
`),t+="#define USE_REVERSE_DEPTHBUFFER"),this.useExactSrgbConversions&&(t&&(t+=`
`),t+="#define USE_EXACT_SRGB_CONVERSIONS"),t}}_rebuildInternalTextures(){const e=this._internalTexturesCache.slice();for(const t of e)t._rebuild()}_rebuildRenderTargetWrappers(){const e=this._renderTargetWrapperCache.slice();for(const t of e)t._rebuild()}_rebuildEffects(){for(const e in this._compiledEffects){const t=this._compiledEffects[e];t._pipelineContext=null,t._prepareEffect()}Ls.ResetCache()}_rebuildGraphicsResources(){var e;this.wipeCaches(!0),this._rebuildEffects(),(e=this._rebuildComputeEffects)==null||e.call(this),this._rebuildBuffers(),this._rebuildInternalTextures(),this._rebuildTextures(),this._rebuildRenderTargetWrappers(),this.wipeCaches(!0)}_flagContextRestored(){de.Warn(this.name+" context successfully restored."),this.onContextRestoredObservable.notifyObservers(this),this._contextWasLost=!1}_restoreEngineAfterContextLost(e){setTimeout(async()=>{this._clearEmptyResources();const t=this._depthCullingState.depthTest,i=this._depthCullingState.depthFunc,s=this._depthCullingState.depthMask,r=this._stencilState.stencilTest;await e(),this._rebuildGraphicsResources(),this._depthCullingState.depthTest=t,this._depthCullingState.depthFunc=i,this._depthCullingState.depthMask=s,this._stencilState.stencilTest=r,this._flagContextRestored()},0)}get isDisposed(){return this._isDisposed}get snapshotRendering(){return!1}set snapshotRendering(e){}get snapshotRenderingMode(){return 0}set snapshotRenderingMode(e){}getClassName(){return"AbstractEngine"}get emptyTexture(){return this._emptyTexture||(this._emptyTexture=this.createRawTexture(new Uint8Array(4),1,1,5,!1,!1,1)),this._emptyTexture}get emptyTexture3D(){return this._emptyTexture3D||(this._emptyTexture3D=this.createRawTexture3D(new Uint8Array(4),1,1,1,5,!1,!1,1)),this._emptyTexture3D}get emptyTexture2DArray(){return this._emptyTexture2DArray||(this._emptyTexture2DArray=this.createRawTexture2DArray(new Uint8Array(4),1,1,1,5,!1,!1,1)),this._emptyTexture2DArray}get emptyCubeTexture(){if(!this._emptyCubeTexture){const e=new Uint8Array(4),t=[e,e,e,e,e,e];this._emptyCubeTexture=this.createRawCubeTexture(t,1,5,0,!1,!1,1)}return this._emptyCubeTexture}get activeRenderLoops(){return this._activeRenderLoops}stopRenderLoop(e){if(!e){this._activeRenderLoops.length=0,this._cancelFrame();return}const t=this._activeRenderLoops.indexOf(e);t>=0&&(this._activeRenderLoops.splice(t,1),this._activeRenderLoops.length==0&&this._cancelFrame())}_cancelFrame(){if(this._frameHandler!==0){const e=this._frameHandler;if(this._frameHandler=0,Il()){const{cancelAnimationFrame:t}=this.getHostWindow()||window;if(typeof t=="function")return t(e)}else if(typeof cancelAnimationFrame=="function")return cancelAnimationFrame(e);return clearTimeout(e)}}beginFrame(){this.onBeginFrameObservable.notifyObservers(this)}endFrame(){this._frameId++,this.onEndFrameObservable.notifyObservers(this)}get maxFPS(){return this._maxFPS}set maxFPS(e){if(this._maxFPS=e,e!==void 0){if(e<=0){this._minFrameTime=Number.MAX_VALUE;return}this._minFrameTime=1e3/(e+1)}}_isOverFrameTime(e){if(!e)return!1;const t=e-this._lastFrameTime;return this._maxFPS===void 0||t>=this._minFrameTime?(this._lastFrameTime=e,!1):!0}_processFrame(e){if(this._frameHandler=0,!this._contextWasLost&&!this._isOverFrameTime(e)){let t=!0;(this.isDisposed||!this.renderEvenInBackground&&this._windowIsBackground)&&(t=!1),t&&(this.beginFrame(),!this.skipFrameRender&&!this._renderViews()&&this._renderFrame(),this.endFrame())}}_renderLoop(e){this._processFrame(e),this._activeRenderLoops.length>0&&this._frameHandler===0&&(this._frameHandler=this._queueNewFrame(this._boundRenderFunction,this.getHostWindow()))}_renderFrame(){for(let e=0;e<this._activeRenderLoops.length;e++){const t=this._activeRenderLoops[e];t()}}_renderViews(){return!1}_queueNewFrame(e,t){return xX(e,t)}runRenderLoop(e){this._activeRenderLoops.indexOf(e)===-1&&(this._activeRenderLoops.push(e),this._activeRenderLoops.length===1&&this._frameHandler===0&&(this._frameHandler=this._queueNewFrame(this._boundRenderFunction,this.getHostWindow())))}getDepthBuffer(){return this._depthCullingState.depthTest}setDepthBuffer(e){this._depthCullingState.depthTest=e}setZOffset(e){this._depthCullingState.zOffset=this.useReverseDepthBuffer?-e:e}getZOffset(){const e=this._depthCullingState.zOffset;return this.useReverseDepthBuffer?-e:e}setZOffsetUnits(e){this._depthCullingState.zOffsetUnits=this.useReverseDepthBuffer?-e:e}getZOffsetUnits(){const e=this._depthCullingState.zOffsetUnits;return this.useReverseDepthBuffer?-e:e}getHostWindow(){return Il()?this._renderingCanvas&&this._renderingCanvas.ownerDocument&&this._renderingCanvas.ownerDocument.defaultView?this._renderingCanvas.ownerDocument.defaultView:window:null}get compatibilityMode(){return this._compatibilityMode}set compatibilityMode(e){this._compatibilityMode=!0}_rebuildTextures(){for(const e of this.scenes)e._rebuildTextures();for(const e of this._virtualScenes)e._rebuildTextures()}_releaseRenderTargetWrapper(e){const t=this._renderTargetWrapperCache.indexOf(e);t!==-1&&this._renderTargetWrapperCache.splice(t,1)}get currentViewport(){return this._cachedViewport}setViewport(e,t,i){const s=t||this.getRenderWidth(),r=i||this.getRenderHeight(),n=e.x||0,o=e.y||0;this._cachedViewport=e,this._viewport(n*s,o*r,s*e.width,r*e.height)}createCanvasImage(){return document.createElement("img")}createCanvasPath2D(e){return new Path2D(e)}get description(){let e=this.name+this.version;return this._caps.parallelShaderCompile&&(e+=" - Parallel shader compilation"),e}_createTextureBase(e,t,i,s,r=3,n=null,o=null,l,c,u=null,f=null,p=null,m=null,_,d,h){e=e||"";const x=e.substr(0,5)==="data:",A=e.substr(0,5)==="blob:",S=x&&e.indexOf(";base64,")!==-1,E=f||new gr(this,1);E!==f&&(E.label=e.substring(0,60));const b=e;this._transformTextureUrl&&!S&&!f&&!u&&(e=this._transformTextureUrl(e)),b!==e&&(E._originalUrl=b);const M=e.lastIndexOf(".");let T=m||(M>-1?e.substring(M).toLowerCase():"");T.indexOf("?")>-1&&(T=T.split("?")[0]);const R=eG(T,_);s&&s.addPendingData(E),E.url=e,E.generateMipMaps=!t,E.samplingMode=r,E.invertY=i,E._useSRGBBuffer=this._getUseSRGBBuffer(!!h,t),this._doNotHandleContextLost||(E._buffer=u);let I=null;n&&!f&&(I=E.onLoadedObservable.add(n)),f||this._internalTexturesCache.push(E);const N=(w,D)=>{s&&s.removePendingData(E),e===b?(I&&E.onLoadedObservable.remove(I),ei.UseFallbackTexture&&e!==ei.FallbackTexture&&this._createTextureBase(ei.FallbackTexture,t,E.invertY,s,r,null,o,l,c,u,E),w=(w||"Unknown error")+(ei.UseFallbackTexture?" - Fallback texture was used":""),E.onErrorObservable.notifyObservers({message:w,exception:D}),o&&o(w,D)):(de.Warn(`Failed to load ${e}, falling back to ${b}`),this._createTextureBase(b,t,E.invertY,s,r,n,o,l,c,u,E,p,m,_,d,h))};if(R){const w=async D=>{(await R).loadData(D,E,(Y,V,ee,K,ie,ne)=>{ne?N("TextureLoader failed to load data"):l(E,T,s,{width:Y,height:V},E.invertY,!ee,K,()=>(ie(),!1),r)},d)};u?u instanceof ArrayBuffer?w(new Uint8Array(u)):ArrayBuffer.isView(u)?w(u):o&&o("Unable to load: only ArrayBuffer or ArrayBufferView is supported",null):this._loadFile(e,D=>w(new Uint8Array(D)),void 0,s?s.offlineProvider:void 0,!0,(D,k)=>{N("Unable to load "+(D&&D.responseURL,k))})}else{const w=D=>{A&&!this._doNotHandleContextLost&&(E._buffer=D),l(E,T,s,D,E.invertY,t,!1,c,r)};!x||S?u&&(typeof u.decoding=="string"||u.close)?w(u):dt._FileToolsLoadImage(e||"",w,N,s?s.offlineProvider:null,_,E.invertY&&this._features.needsInvertingBitmap?{imageOrientation:"flipY"}:void 0,this):typeof u=="string"||u instanceof ArrayBuffer||ArrayBuffer.isView(u)||u instanceof Blob?dt._FileToolsLoadImage(u,w,N,s?s.offlineProvider:null,_,E.invertY&&this._features.needsInvertingBitmap?{imageOrientation:"flipY"}:void 0,this):u&&w(u)}return E}_rebuildBuffers(){for(const e of this._uniformBuffers)e._rebuildAfterContextLost()}get _shouldUseHighPrecisionShader(){return!!(this._caps.highPrecisionShaderSupported&&this._highPrecisionShadersAllowed)}getHostDocument(){return this._renderingCanvas&&this._renderingCanvas.ownerDocument?this._renderingCanvas.ownerDocument:H6()?document:null}getLoadedTexturesCache(){return this._internalTexturesCache}clearInternalTexturesCache(){this._internalTexturesCache.length=0}getCaps(){return this._caps}resetTextureCache(){for(const e in this._boundTexturesCache)Object.prototype.hasOwnProperty.call(this._boundTexturesCache,e)&&(this._boundTexturesCache[e]=null);this._currentTextureChannel=-1}get name(){return this._name}set name(e){this._name=e}static get NpmPackage(){return"[email protected]"}static get Version(){return"7.54.3"}getRenderingCanvas(){return this._renderingCanvas}getAudioContext(){return this._audioContext}getAudioDestination(){return this._audioDestination}setHardwareScalingLevel(e){this._hardwareScalingLevel=e,this.resize()}getHardwareScalingLevel(){return this._hardwareScalingLevel}get doNotHandleContextLost(){return this._doNotHandleContextLost}set doNotHandleContextLost(e){this._doNotHandleContextLost=e}get isStencilEnable(){return this._isStencilEnable}getCreationOptions(){return this._creationOptions}constructor(e,t,i){var n,o;this._colorWrite=!0,this._colorWriteChanged=!0,this._depthCullingState=new vX,this._stencilStateComposer=new AX,this._stencilState=new Zx,this._alphaState=new Xue,this._alphaMode=1,this._alphaEquation=0,this._activeRequests=[],this._badOS=!1,this._badDesktopOS=!1,this._compatibilityMode=!0,this._internalTexturesCache=new Array,this._currentRenderTarget=null,this._boundTexturesCache={},this._activeChannel=0,this._currentTextureChannel=-1,this._viewportCached={x:0,y:0,z:0,w:0},this._isWebGPU=!1,this.onCanvasBlurObservable=new xe,this.onCanvasFocusObservable=new xe,this.onNewSceneAddedObservable=new xe,this.onResizeObservable=new xe,this.onCanvasPointerOutObservable=new xe,this.onEffectErrorObservable=new xe,this.disablePerformanceMonitorInBackground=!1,this.disableVertexArrayObjects=!1,this._frameId=0,this.hostInformation={isMobile:!1},this.isFullscreen=!1,this.enableOfflineSupport=!1,this.disableManifestCheck=!1,this.disableContextMenu=!0,this.currentRenderPassId=0,this.isPointerLock=!1,this.postProcesses=[],this.canvasTabIndex=1,this._contextWasLost=!1,this._useReverseDepthBuffer=!1,this.isNDCHalfZRange=!1,this.hasOriginBottomLeft=!0,this._renderTargetWrapperCache=new Array,this._compiledEffects={},this._isDisposed=!1,this.scenes=[],this._virtualScenes=new Array,this.onBeforeTextureInitObservable=new xe,this.renderEvenInBackground=!0,this.preventCacheWipeBetweenFrames=!1,this._frameHandler=0,this._activeRenderLoops=new Array,this._windowIsBackground=!1,this._boundRenderFunction=l=>this._renderLoop(l),this._lastFrameTime=0,this.skipFrameRender=!1,this.onBeforeShaderCompilationObservable=new xe,this.onAfterShaderCompilationObservable=new xe,this.onBeginFrameObservable=new xe,this.onEndFrameObservable=new xe,this._transformTextureUrl=null,this._uniformBuffers=new Array,this._storageBuffers=new Array,this._highPrecisionShadersAllowed=!0,this.onContextLostObservable=new xe,this.onContextRestoredObservable=new xe,this._name="",this.premultipliedAlpha=!0,this.adaptToDeviceRatio=!1,this._lastDevicePixelRatio=1,this._doNotHandleContextLost=!1,this.cullBackFaces=null,this._renderPassNames=["main"],this._fps=60,this._deltaTime=0,this._deterministicLockstep=!1,this._lockstepMaxSteps=4,this._timeStep=1/60,this.onDisposeObservable=new xe,this.onReleaseEffectsObservable=new xe,ei.Instances.push(this),this.startTime=lr.Now,this._stencilStateComposer.stencilGlobal=this._stencilState,Ec.SetMatrixPrecision(!!t.useHighPrecisionMatrix),LT()&&navigator.userAgent&&(this._badOS=/iPad/i.test(navigator.userAgent)||/iPhone/i.test(navigator.userAgent),this._badDesktopOS=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)),this.adaptToDeviceRatio=i??!1,t.antialias=e??t.antialias,t.deterministicLockstep=t.deterministicLockstep??!1,t.lockstepMaxSteps=t.lockstepMaxSteps??4,t.timeStep=t.timeStep??1/60,t.stencil=t.stencil??!0,this._audioContext=((n=t.audioEngineOptions)==null?void 0:n.audioContext)??null,this._audioDestination=((o=t.audioEngineOptions)==null?void 0:o.audioDestination)??null,this.premultipliedAlpha=t.premultipliedAlpha??!0,this._doNotHandleContextLost=!!t.doNotHandleContextLost,this._isStencilEnable=!!t.stencil,this.useExactSrgbConversions=t.useExactSrgbConversions??!1;const s=Il()&&window.devicePixelRatio||1,r=t.limitDeviceRatio||s;i=i||t.adaptToDeviceRatio||!1,this._hardwareScalingLevel=i?1/Math.min(r,s):1,this._lastDevicePixelRatio=s,this._creationOptions=t}resize(e=!1){var s,r;let t,i;if(this.adaptToDeviceRatio){const n=Il()&&window.devicePixelRatio||1,o=this._lastDevicePixelRatio/n;this._lastDevicePixelRatio=n,this._hardwareScalingLevel*=o}if(Il()&&H6())if(this._renderingCanvas){const n=(r=(s=this._renderingCanvas).getBoundingClientRect)==null?void 0:r.call(s);t=this._renderingCanvas.clientWidth||(n==null?void 0:n.width)||this._renderingCanvas.width*this._hardwareScalingLevel||100,i=this._renderingCanvas.clientHeight||(n==null?void 0:n.height)||this._renderingCanvas.height*this._hardwareScalingLevel||100}else t=window.innerWidth,i=window.innerHeight;else t=this._renderingCanvas?this._renderingCanvas.width:100,i=this._renderingCanvas?this._renderingCanvas.height:100;this.setSize(t/this._hardwareScalingLevel,i/this._hardwareScalingLevel,e)}setSize(e,t,i=!1){if(!this._renderingCanvas||(e=e|0,t=t|0,!i&&this._renderingCanvas.width===e&&this._renderingCanvas.height===t))return!1;if(this._renderingCanvas.width=e,this._renderingCanvas.height=t,this.scenes){for(let s=0;s<this.scenes.length;s++){const r=this.scenes[s];for(let n=0;n<r.cameras.length;n++){const o=r.cameras[n];o._currentRenderId=0}}this.onResizeObservable.hasObservers()&&this.onResizeObservable.notifyObservers(this)}return!0}createRawTexture(e,t,i,s,r,n,o,l,c,u,f){throw as("engine.rawTexture")}createRawCubeTexture(e,t,i,s,r,n,o,l){throw as("engine.rawTexture")}createRawTexture3D(e,t,i,s,r,n,o,l,c,u,f){throw as("engine.rawTexture")}createRawTexture2DArray(e,t,i,s,r,n,o,l,c,u,f){throw as("engine.rawTexture")}_sharedInit(e){this._renderingCanvas=e}_setupMobileChecks(){navigator&&navigator.userAgent&&(this._checkForMobile=()=>{const e=navigator.userAgent;this.hostInformation.isMobile=e.indexOf("Mobile")!==-1||e.indexOf("Mac")!==-1&&H6()&&"ontouchend"in document},this._checkForMobile(),Il()&&window.addEventListener("resize",this._checkForMobile))}createVideoElement(e){return document.createElement("video")}_reportDrawCall(e=1){var t;(t=this._drawCalls)==null||t.addCount(e,!1)}getFps(){return this._fps}getDeltaTime(){return this._deltaTime}isDeterministicLockStep(){return this._deterministicLockstep}getLockstepMaxSteps(){return this._lockstepMaxSteps}getTimeStep(){return this._timeStep*1e3}_createImageBitmapFromSource(e,t){throw new Error("createImageBitmapFromSource is not implemented")}createImageBitmap(e,t){return createImageBitmap(e,t)}resizeImageBitmap(e,t,i){throw new Error("resizeImageBitmap is not implemented")}getFontOffset(e){throw new Error("getFontOffset is not implemented")}static _CreateCanvas(e,t){if(typeof document>"u")return new OffscreenCanvas(e,t);const i=document.createElement("canvas");return i.width=e,i.height=t,i}createCanvas(e,t){return dt._CreateCanvas(e,t)}static _FileToolsLoadImage(e,t,i,s,r,n,o){throw as("FileTools")}_loadFile(e,t,i,s,r,n){const o=Nue(e,t,i,s,r,n);return this._activeRequests.push(o),o.onCompleteObservable.add(()=>{const l=this._activeRequests.indexOf(o);l!==-1&&this._activeRequests.splice(l,1)}),o}static _FileToolsLoadFile(e,t,i,s,r,n){if(YV.loadFile)return YV.loadFile(e,t,i,s,r,n);throw as("FileTools")}dispose(){var t;for(this.releaseEffects(),this._isDisposed=!0,this.stopRenderLoop(),this._emptyTexture&&(this._releaseTexture(this._emptyTexture),this._emptyTexture=null),this._emptyCubeTexture&&(this._releaseTexture(this._emptyCubeTexture),this._emptyCubeTexture=null),this._renderingCanvas=null,this.onBeforeTextureInitObservable&&this.onBeforeTextureInitObservable.clear();this.postProcesses.length;)this.postProcesses[0].dispose();for(;this.scenes.length;)this.scenes[0].dispose();for(;this._virtualScenes.length;)this._virtualScenes[0].dispose();(t=this.releaseComputeEffects)==null||t.call(this),Ls.ResetCache();for(const i of this._activeRequests)i.abort();this._boundRenderFunction=null,this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onResizeObservable.clear(),this.onCanvasBlurObservable.clear(),this.onCanvasFocusObservable.clear(),this.onCanvasPointerOutObservable.clear(),this.onNewSceneAddedObservable.clear(),this.onEffectErrorObservable.clear(),Il()&&window.removeEventListener("resize",this._checkForMobile);const e=ei.Instances.indexOf(this);e>=0&&ei.Instances.splice(e,1),ei.Instances.length||(ei.OnEnginesDisposedObservable.notifyObservers(this),ei.OnEnginesDisposedObservable.clear()),this.onBeginFrameObservable.clear(),this.onEndFrameObservable.clear()}static DefaultLoadingScreenFactory(e){throw as("LoadingScreen")}static MarkAllMaterialsAsDirty(e,t){for(let i=0;i<ei.Instances.length;i++){const s=ei.Instances[i];for(let r=0;r<s.scenes.length;r++)s.scenes[r].markAllMaterialsAsDirty(e,t)}}}dt._RenderPassIdCounter=0,dt._RescalePostProcessFactory=null,dt.CollisionsEpsilon=.001,dt.QueueNewFrame=xX;const Kue=new RegExp(/^data:([^,]+\/[^,]+)?;base64,/i);class sP extends Y6{constructor(e,t){super(e,Xx.LoadFileError),this.name="LoadFileError",py._setPrototypeOf(this,sP.prototype),t instanceof ha?this.request=t:this.file=t}}class dw extends Y6{constructor(e,t){super(e,Xx.RequestFileError),this.request=t,this.name="RequestFileError",py._setPrototypeOf(this,dw.prototype)}}class tG extends Y6{constructor(e,t){super(e,Xx.ReadFileError),this.file=t,this.name="ReadFileError",py._setPrototypeOf(this,tG.prototype)}}const JPe=a=>(a=a.replace(/#/gm,"%23"),a),No={DefaultRetryStrategy:Iue.ExponentialBackoff(),BaseUrl:"",CorsBehavior:"anonymous",PreprocessUrl:a=>a,ScriptBaseUrl:"",ScriptPreprocessUrl:a=>a,CleanUrl:JPe},iG=(a,e)=>{if(!(a&&a.indexOf("data:")===0)&&No.CorsBehavior)if(typeof No.CorsBehavior=="string"||No.CorsBehavior instanceof String)e.crossOrigin=No.CorsBehavior;else{const t=No.CorsBehavior(a);t&&(e.crossOrigin=t)}},bX={getRequiredSize:null},rP=(a,e,t,i,s="",r,n=ei.LastCreatedEngine)=>{if(typeof HTMLImageElement>"u"&&!(n!=null&&n._features.forceBitmapOverHTMLImageElement))return t("LoadImage is only supported in web or BabylonNative environments."),null;let o,l=!1;a instanceof ArrayBuffer||ArrayBuffer.isView(a)?typeof Blob<"u"&&typeof URL<"u"?(o=URL.createObjectURL(new Blob([a],{type:s})),l=!0):o=`data:${s};base64,`+lw(a):a instanceof Blob?(o=URL.createObjectURL(a),l=!0):(o=No.CleanUrl(a),o=No.PreprocessUrl(o));const c=b=>{if(t){const M=o||a.toString();t(`Error while trying to load image: ${M.indexOf("http")===0||M.length<=128?M:M.slice(0,128)+"..."}`,b)}};if(n!=null&&n._features.forceBitmapOverHTMLImageElement)return gy(o,b=>{n.createImageBitmap(new Blob([b],{type:s}),{premultiplyAlpha:"none",...r}).then(M=>{e(M),l&&URL.revokeObjectURL(o)}).catch(M=>{t&&t("Error while trying to load image: "+a,M)})},void 0,i||void 0,!0,(b,M)=>{c(M)}),null;const u=new Image;if(bX.getRequiredSize){const b=bX.getRequiredSize(a);b.width&&(u.width=b.width),b.height&&(u.height=b.height)}iG(o,u);const f=[],p=()=>{f.forEach(b=>{b.target.addEventListener(b.name,b.handler)})},m=()=>{f.forEach(b=>{b.target.removeEventListener(b.name,b.handler)}),f.length=0},_=()=>{m(),e(u),l&&u.src&&URL.revokeObjectURL(u.src)},d=b=>{m(),c(b),l&&u.src&&URL.revokeObjectURL(u.src)},h=b=>{if(b.blockedURI!==u.src||b.disposition==="report")return;m();const M=new Error(`CSP violation of policy ${b.effectiveDirective} ${b.blockedURI}. Current policy is ${b.originalPolicy}`);ei.UseFallbackTexture=!1,c(M),l&&u.src&&URL.revokeObjectURL(u.src),u.src=""};f.push({target:u,name:"load",handler:_}),f.push({target:u,name:"error",handler:d}),f.push({target:document,name:"securitypolicyviolation",handler:h}),p();const x=o.substring(0,5)==="blob:",A=o.substring(0,5)==="data:",S=()=>{x||A||!ha.IsCustomRequestAvailable?u.src=o:gy(o,(b,M,T)=>{const O=!s&&T?T:s,R=new Blob([b],{type:O}),I=URL.createObjectURL(R);l=!0,u.src=I},void 0,i||void 0,!0,(b,M)=>{c(M)})},E=()=>{i&&i.loadImage(o,u)};if(!x&&!A&&i&&i.enableTexturesOffline)i.open(E,S);else{if(o.indexOf("file:")!==-1){const b=decodeURIComponent(o.substring(5).toLowerCase());if(j9.FilesToLoad[b]&&typeof URL<"u"){try{let M;try{M=URL.createObjectURL(j9.FilesToLoad[b])}catch{M=URL.createObjectURL(j9.FilesToLoad[b])}u.src=M,l=!0}catch{u.src=""}return u}}S()}return u},nP=(a,e,t,i,s)=>{const r=new FileReader,n={onCompleteObservable:new xe,abort:()=>r.abort()};return r.onloadend=()=>n.onCompleteObservable.notifyObservers(n),s&&(r.onerror=()=>{s(new tG(`Unable to read ${a.name}`,a))}),r.onload=o=>{e(o.target.result)},t&&(r.onprogress=t),i?r.readAsArrayBuffer(a):r.readAsText(a),n},gy=(a,e,t,i,s,r,n)=>{if(a.name)return nP(a,e,t,s,r?u=>{r(void 0,u)}:void 0);const o=a;if(o.indexOf("file:")!==-1){let u=decodeURIComponent(o.substring(5).toLowerCase());u.indexOf("./")===0&&(u=u.substring(2));const f=j9.FilesToLoad[u];if(f)return nP(f,e,t,s,r?p=>r(void 0,new sP(p.message,p.file)):void 0)}const{match:l,type:c}=que(o);if(l){const u={onCompleteObservable:new xe,abort:()=>()=>{}};try{const f=s?aP(o):yX(o);e(f,void 0,c)}catch(f){r?r(void 0,f):de.Error(f.message||"Failed to parse the Data URL")}return V9.SetImmediate(()=>{u.onCompleteObservable.notifyObservers(u)}),u}return sG(o,(u,f)=>{e(u,f==null?void 0:f.responseURL,f==null?void 0:f.getResponseHeader("content-type"))},t,i,s,r?u=>{r(u.request,new sP(u.message,u.request))}:void 0,n)},sG=(a,e,t,i,s,r,n)=>{a=No.CleanUrl(a),a=No.PreprocessUrl(a);const o=No.BaseUrl+a;let l=!1;const c={onCompleteObservable:new xe,abort:()=>l=!0},u=()=>{let f=new ha,p=null,m;const _=()=>{f&&(t&&f.removeEventListener("progress",t),m&&f.removeEventListener("readystatechange",m),f.removeEventListener("loadend",d))};let d=()=>{_(),c.onCompleteObservable.notifyObservers(c),c.onCompleteObservable.clear(),t=void 0,m=null,d=null,r=void 0,n=void 0,e=void 0};c.abort=()=>{l=!0,d&&d(),f&&f.readyState!==(XMLHttpRequest.DONE||4)&&f.abort(),p!==null&&(clearTimeout(p),p=null),f=null};const h=A=>{const S=A.message||"Unknown error";r&&f?r(new dw(S,f)):de.Error(S)},x=A=>{if(f){if(f.open("GET",o),n)try{n(f)}catch(S){h(S);return}s&&(f.responseType="arraybuffer"),t&&f.addEventListener("progress",t),d&&f.addEventListener("loadend",d),m=()=>{if(!(l||!f)&&f.readyState===(XMLHttpRequest.DONE||4)){if(m&&f.removeEventListener("readystatechange",m),f.status>=200&&f.status<300||f.status===0&&(!Il()||SX())){const b=s?f.response:f.responseText;if(b!==null){try{e&&e(b,f)}catch(M){h(M)}return}}const S=No.DefaultRetryStrategy;if(S){const b=S(o,f,A);if(b!==-1){_(),f=new ha,p=setTimeout(()=>x(A+1),b);return}}const E=new dw("Error status: "+f.status+" "+f.statusText+" - Unable to load "+o,f);r&&r(E)}},f.addEventListener("readystatechange",m),f.send()}};x(0)};if(i&&i.enableSceneOffline){const f=m=>{m&&m.status>400?r&&r(m):u()},p=()=>{i&&i.loadFile(No.BaseUrl+a,m=>{!l&&e&&e(m),c.onCompleteObservable.notifyObservers(c)},t?m=>{!l&&t&&t(m)}:void 0,f,s)};i.open(p,f)}else u();return c},SX=()=>typeof location<"u"&&location.protocol==="file:",fw=a=>Kue.test(a),que=a=>{const e=Kue.exec(a);return e===null||e.length===0?{match:!1,type:""}:{match:!0,type:e[0].replace("data:","").replace("base64,","")}};function aP(a){return cw(a.split(",")[1])}const yX=a=>WV(a.split(",")[1]);(()=>{dt._FileToolsLoadImage=rP,YV.loadFile=gy,Uue.loadFile=gy})();let oP;const Que=(a,e,t,i,s,r,n,o,l,c)=>{oP={DecodeBase64UrlToBinary:a,DecodeBase64UrlToString:e,DefaultRetryStrategy:t.DefaultRetryStrategy,BaseUrl:t.BaseUrl,CorsBehavior:t.CorsBehavior,PreprocessUrl:t.PreprocessUrl,IsBase64DataUrl:i,IsFileURL:s,LoadFile:r,LoadImage:n,ReadFile:o,RequestFile:l,SetCorsBehavior:c},Object.defineProperty(oP,"DefaultRetryStrategy",{get:function(){return t.DefaultRetryStrategy},set:function(u){t.DefaultRetryStrategy=u}}),Object.defineProperty(oP,"BaseUrl",{get:function(){return t.BaseUrl},set:function(u){t.BaseUrl=u}}),Object.defineProperty(oP,"PreprocessUrl",{get:function(){return t.PreprocessUrl},set:function(u){t.PreprocessUrl=u}}),Object.defineProperty(oP,"CorsBehavior",{get:function(){return t.CorsBehavior},set:function(u){t.CorsBehavior=u}})};Que(aP,yX,No,fw,SX,gy,rP,nP,sG,iG);const rG={};function ve(a,e){rG[a]=e}function ea(a){return rG[a]}function $Pe(a){for(const e in rG)if(a instanceof rG[e]&&!e.includes("Abstract"))return e;return"Unknown"}class pw{static Instantiate(e){if(this.RegisteredExternalClasses&&this.RegisteredExternalClasses[e])return this.RegisteredExternalClasses[e];const t=ea(e);if(t)return t;de.Warn(e+" not found, you may have missed an import.");const i=e.split(".");let s=window||this;for(let r=0,n=i.length;r<n;r++)s=s[i[r]];return typeof s!="function"?null:s}}pw.RegisteredExternalClasses={};function e3(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,a=>{const e=Math.random()*16|0;return(a==="x"?e:e&3|8).toString(16)})}const eOe={RandomId:e3};function mw(a){let e=1;do e*=2;while(e<a);return e===a}function MX(a,e,t){return a*(1-t)+e*t}function Jue(a){const e=$ue(a),t=EX(a);return e-a>a-t?t:e}function $ue(a){return a--,a|=a>>1,a|=a>>2,a|=a>>4,a|=a>>8,a|=a>>16,a++,a}function EX(a){return a=a|a>>1,a=a|a>>2,a=a|a>>4,a=a|a>>8,a=a|a>>16,a-(a>>1)}function g0(a,e,t=2){let i;switch(t){case 1:i=EX(a);break;case 2:i=Jue(a);break;case 3:default:i=$ue(a);break}return Math.min(i,e)}class Le{static get BaseUrl(){return No.BaseUrl}static set BaseUrl(e){No.BaseUrl=e}static get CleanUrl(){return No.CleanUrl}static set CleanUrl(e){No.CleanUrl=e}static IsAbsoluteUrl(e){return e.indexOf("//")===0?!0:e.indexOf("://")===-1||e.indexOf(".")===-1||e.indexOf("/")===-1||e.indexOf(":")>e.indexOf("/")?!1:e.indexOf("://")<e.indexOf(".")||e.indexOf("data:")===0||e.indexOf("blob:")===0}static set ScriptBaseUrl(e){No.ScriptBaseUrl=e}static get ScriptBaseUrl(){return No.ScriptBaseUrl}static set CDNBaseUrl(e){Le.ScriptBaseUrl=e,Le.AssetBaseUrl=e}static set ScriptPreprocessUrl(e){No.ScriptPreprocessUrl=e}static get ScriptPreprocessUrl(){return No.ScriptPreprocessUrl}static get DefaultRetryStrategy(){return No.DefaultRetryStrategy}static set DefaultRetryStrategy(e){No.DefaultRetryStrategy=e}static get CorsBehavior(){return No.CorsBehavior}static set CorsBehavior(e){No.CorsBehavior=e}static get UseFallbackTexture(){return ei.UseFallbackTexture}static set UseFallbackTexture(e){ei.UseFallbackTexture=e}static get RegisteredExternalClasses(){return pw.RegisteredExternalClasses}static set RegisteredExternalClasses(e){pw.RegisteredExternalClasses=e}static get fallbackTexture(){return ei.FallbackTexture}static set fallbackTexture(e){ei.FallbackTexture=e}static FetchToRef(e,t,i,s,r,n){const o=Math.abs(e)*i%i|0,l=Math.abs(t)*s%s|0,c=(o+l*i)*4;n.r=r[c]/255,n.g=r[c+1]/255,n.b=r[c+2]/255,n.a=r[c+3]/255}static Mix(e,t,i){return 0}static Instantiate(e){return pw.Instantiate(e)}static SetImmediate(e){V9.SetImmediate(e)}static IsExponentOfTwo(e){return!0}static FloatRound(e){return Math.fround(e)}static GetFilename(e){const t=e.lastIndexOf("/");return t<0?e:e.substring(t+1)}static GetFolderPath(e,t=!1){const i=e.lastIndexOf("/");return i<0?t?e:"":e.substring(0,i+1)}static ToDegrees(e){return e*180/Math.PI}static ToRadians(e){return e*Math.PI/180}static SmoothAngleChange(e,t,i=.9){const s=this.ToRadians(e),r=this.ToRadians(t);return this.ToDegrees(Math.atan2((1-i)*Math.sin(r)+i*Math.sin(s),(1-i)*Math.cos(r)+i*Math.cos(s)))}static MakeArray(e,t){return t!==!0&&(e===void 0||e==null)?null:Array.isArray(e)?e:[e]}static GetPointerPrefix(e){return Il()&&!window.PointerEvent?"mouse":"pointer"}static SetCorsBehavior(e,t){iG(e,t)}static SetReferrerPolicyBehavior(e,t){t.referrerPolicy=e}static get PreprocessUrl(){return No.PreprocessUrl}static set PreprocessUrl(e){No.PreprocessUrl=e}static LoadImage(e,t,i,s,r,n){return rP(e,t,i,s,r,n)}static LoadFile(e,t,i,s,r,n){return gy(e,t,i,s,r,n)}static LoadFileAsync(e,t=!0){return new Promise((i,s)=>{gy(e,r=>{i(r)},void 0,void 0,t,(r,n)=>{s(n)})})}static GetAssetUrl(e){if(!e)return"";if(Le.AssetBaseUrl&&e.startsWith(Le._DefaultAssetsUrl)){const t=Le.AssetBaseUrl[Le.AssetBaseUrl.length-1]==="/"?Le.AssetBaseUrl.substring(0,Le.AssetBaseUrl.length-1):Le.AssetBaseUrl;return e.replace(Le._DefaultAssetsUrl,t)}return e}static GetBabylonScriptURL(e,t){if(!e)return"";if(Le.ScriptBaseUrl&&e.startsWith(Le._DefaultCdnUrl)){const i=Le.ScriptBaseUrl[Le.ScriptBaseUrl.length-1]==="/"?Le.ScriptBaseUrl.substring(0,Le.ScriptBaseUrl.length-1):Le.ScriptBaseUrl;e=e.replace(Le._DefaultCdnUrl,i)}return e=Le.ScriptPreprocessUrl(e),t&&(e=Le.GetAbsoluteUrl(e)),e}static LoadBabylonScript(e,t,i,s){e=Le.GetBabylonScriptURL(e),Le.LoadScript(e,t,i)}static LoadBabylonScriptAsync(e){return e=Le.GetBabylonScriptURL(e),Le.LoadScriptAsync(e)}static LoadScript(e,t,i,s,r=!1){if(typeof importScripts=="function"){try{importScripts(e),t&&t()}catch(l){i==null||i(`Unable to load script '${e}' in worker`,l)}return}else if(!Il()){i==null||i(`Cannot load script '${e}' outside of a window or a worker`);return}const n=document.getElementsByTagName("head")[0],o=document.createElement("script");r?(o.setAttribute("type","module"),o.innerText=e):(o.setAttribute("type","text/javascript"),o.setAttribute("src",e)),s&&(o.id=s),o.onload=()=>{t&&t()},o.onerror=l=>{i&&i(`Unable to load script '${e}'`,l)},n.appendChild(o)}static LoadScriptAsync(e,t){return new Promise((i,s)=>{this.LoadScript(e,()=>{i()},(r,n)=>{s(n||new Error(r))},t)})}static ReadFileAsDataURL(e,t,i){const s=new FileReader,r={onCompleteObservable:new xe,abort:()=>s.abort()};return s.onloadend=()=>{r.onCompleteObservable.notifyObservers(r)},s.onload=n=>{t(n.target.result)},s.onprogress=i,s.readAsDataURL(e),r}static ReadFile(e,t,i,s,r){return nP(e,t,i,s,r)}static FileAsURL(e){const t=new Blob([e]);return window.URL.createObjectURL(t)}static Format(e,t=2){return e.toFixed(t)}static DeepCopy(e,t,i,s){nu.DeepCopy(e,t,i,s)}static IsEmpty(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}static RegisterTopRootEvents(e,t){for(let i=0;i<t.length;i++){const s=t[i];e.addEventListener(s.name,s.handler,!1);try{window.parent&&window.parent.addEventListener(s.name,s.handler,!1)}catch{}}}static UnregisterTopRootEvents(e,t){for(let i=0;i<t.length;i++){const s=t[i];e.removeEventListener(s.name,s.handler);try{e.parent&&e.parent.removeEventListener(s.name,s.handler)}catch{}}}static async DumpFramebuffer(e,t,i,s,r="image/png",n,o){throw as("DumpTools")}static DumpData(e,t,i,s,r="image/png",n,o=!1,l=!1,c){throw as("DumpTools")}static DumpDataAsync(e,t,i,s="image/png",r,n=!1,o=!1,l){throw as("DumpTools")}static _IsOffScreenCanvas(e){return e.convertToBlob!==void 0}static ToBlob(e,t,i="image/png",s){!Le._IsOffScreenCanvas(e)&&!e.toBlob&&(e.toBlob=function(r,n,o){setTimeout(()=>{const l=atob(this.toDataURL(n,o).split(",")[1]),c=l.length,u=new Uint8Array(c);for(let f=0;f<c;f++)u[f]=l.charCodeAt(f);r(new Blob([u]))})}),Le._IsOffScreenCanvas(e)?e.convertToBlob({type:i,quality:s}).then(r=>t(r)):e.toBlob(function(r){t(r)},i,s)}static DownloadBlob(e,t){if("download"in document.createElement("a")){if(!t){const i=new Date;t="screenshot_"+((i.getFullYear()+"-"+(i.getMonth()+1)).slice(2)+"-"+i.getDate()+"_"+i.getHours()+"-"+("0"+i.getMinutes()).slice(-2))+".png"}Le.Download(e,t)}else if(e&&typeof URL<"u"){const i=URL.createObjectURL(e),s=window.open("");if(!s)return;const r=s.document.createElement("img");r.onload=function(){URL.revokeObjectURL(i)},r.src=i,s.document.body.appendChild(r)}}static EncodeScreenshotCanvasData(e,t,i="image/png",s,r){if(typeof s=="string"||!t)this.ToBlob(e,function(n){n&&Le.DownloadBlob(n,s),t&&t("")},i,r);else if(t){if(Le._IsOffScreenCanvas(e)){e.convertToBlob({type:i,quality:r}).then(o=>{const l=new FileReader;l.readAsDataURL(o),l.onloadend=()=>{const c=l.result;t(c)}});return}const n=e.toDataURL(i,r);t(n)}}static Download(e,t){if(typeof URL>"u")return;const i=window.URL.createObjectURL(e),s=document.createElement("a");document.body.appendChild(s),s.style.display="none",s.href=i,s.download=t,s.addEventListener("click",()=>{s.parentElement&&s.parentElement.removeChild(s)}),s.click(),window.URL.revokeObjectURL(i)}static BackCompatCameraNoPreventDefault(e){return typeof e[0]=="boolean"?e[0]:typeof e[1]=="boolean"?e[1]:!1}static CreateScreenshot(e,t,i,s,r="image/png",n=!1,o){throw as("ScreenshotTools")}static CreateScreenshotAsync(e,t,i,s="image/png",r){throw as("ScreenshotTools")}static CreateScreenshotUsingRenderTarget(e,t,i,s,r="image/png",n=1,o=!1,l,c=!1,u=!1,f=!0,p,m){throw as("ScreenshotTools")}static CreateScreenshotUsingRenderTargetAsync(e,t,i,s="image/png",r=1,n=!1,o,l=!1,c=!1,u=!0,f,p){throw as("ScreenshotTools")}static RandomId(){return e3()}static IsBase64(e){return fw(e)}static DecodeBase64(e){return aP(e)}static get errorsCount(){return de.errorsCount}static Log(e){de.Log(e)}static Warn(e){de.Warn(e)}static Error(e){de.Error(e)}static get LogCache(){return de.LogCache}static ClearLogCache(){de.ClearLogCache()}static set LogLevels(e){de.LogLevels=e}static set PerformanceLogLevel(e){if((e&Le.PerformanceUserMarkLogLevel)===Le.PerformanceUserMarkLogLevel){Le.StartPerformanceCounter=Le._StartUserMark,Le.EndPerformanceCounter=Le._EndUserMark;return}if((e&Le.PerformanceConsoleLogLevel)===Le.PerformanceConsoleLogLevel){Le.StartPerformanceCounter=Le._StartPerformanceConsole,Le.EndPerformanceCounter=Le._EndPerformanceConsole;return}Le.StartPerformanceCounter=Le._StartPerformanceCounterDisabled,Le.EndPerformanceCounter=Le._EndPerformanceCounterDisabled}static _StartPerformanceCounterDisabled(e,t){}static _EndPerformanceCounterDisabled(e,t){}static _StartUserMark(e,t=!0){if(!Le._Performance){if(!Il())return;Le._Performance=window.performance}!t||!Le._Performance.mark||Le._Performance.mark(e+"-Begin")}static _EndUserMark(e,t=!0){!t||!Le._Performance.mark||(Le._Performance.mark(e+"-End"),Le._Performance.measure(e,e+"-Begin",e+"-End"))}static _StartPerformanceConsole(e,t=!0){t&&(Le._StartUserMark(e,t),console.time&&console.time(e))}static _EndPerformanceConsole(e,t=!0){t&&(Le._EndUserMark(e,t),console.timeEnd(e))}static get Now(){return lr.Now}static GetClassName(e,t=!1){let i=null;return!t&&e.getClassName?i=e.getClassName():(e instanceof Object&&(i=(t?e:Object.getPrototypeOf(e)).constructor.__bjsclassName__),i||(i=typeof e)),i}static First(e,t){for(const i of e)if(t(i))return i;return null}static getFullClassName(e,t=!1){let i=null,s=null;if(!t&&e.getClassName)i=e.getClassName();else{if(e instanceof Object){const r=t?e:Object.getPrototypeOf(e);i=r.constructor.__bjsclassName__,s=r.constructor.__bjsmoduleName__}i||(i=typeof e)}return i?(s!=null?s+".":"")+i:null}static DelayAsync(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}static IsSafari(){return LT()?/^((?!chrome|android).)*safari/i.test(navigator.userAgent):!1}}Le.AssetBaseUrl="",Le.UseCustomRequestHeaders=!1,Le.CustomRequestHeaders=ha.CustomRequestHeaders,Le.GetDOMTextContent=ow,Le._DefaultCdnUrl="https://cdn.babylonjs.com",Le._DefaultAssetsUrl="https://assets.babylonjs.com/core",Le.GetAbsoluteUrl=typeof document=="object"?a=>{const e=document.createElement("a");return e.href=a,e.href}:typeof URL=="function"&&typeof location=="object"?a=>new URL(a,location.origin).href:()=>{throw new Error("Unable to get absolute URL. Override BABYLON.Tools.GetAbsoluteUrl to a custom implementation for the current context.")},Le.NoneLogLevel=de.NoneLogLevel,Le.MessageLogLevel=de.MessageLogLevel,Le.WarningLogLevel=de.WarningLogLevel,Le.ErrorLogLevel=de.ErrorLogLevel,Le.AllLogLevel=de.AllLogLevel,Le.IsWindowObjectExist=Il,Le.PerformanceNoneLogLevel=0,Le.PerformanceUserMarkLogLevel=1,Le.PerformanceConsoleLogLevel=2,Le.StartPerformanceCounter=Le._StartPerformanceCounterDisabled,Le.EndPerformanceCounter=Le._EndPerformanceCounterDisabled;function tOe(a,e){return t=>{t.__bjsclassName__=a,t.__bjsmoduleName__=e??null}}class v4{constructor(e,t,i,s=0){this.iterations=e,this.index=s-1,this._done=!1,this._fn=t,this._successCallback=i}executeNext(){this._done||(this.index+1<this.iterations?(++this.index,this._fn(this)):this.breakLoop())}breakLoop(){this._done=!0,this._successCallback()}static Run(e,t,i,s=0){const r=new v4(e,t,i,s);return r.executeNext(),r}static SyncAsyncForLoop(e,t,i,s,r,n=0){return v4.Run(Math.ceil(e/t),o=>{r&&r()?o.breakLoop():setTimeout(()=>{for(let l=0;l<t;++l){const c=o.index*t+l;if(c>=e)break;if(i(c),r&&r()){o.breakLoop();break}}o.executeNext()},n)},s)}}Le.Mix=MX,Le.IsExponentOfTwo=mw,ei.FallbackTexture="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBmRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAAQAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQubmV0IDQuMC41AP/bAEMABAIDAwMCBAMDAwQEBAQFCQYFBQUFCwgIBgkNCw0NDQsMDA4QFBEODxMPDAwSGBITFRYXFxcOERkbGRYaFBYXFv/bAEMBBAQEBQUFCgYGChYPDA8WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFv/AABEIAQABAAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APH6KKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76P//Z";class dl{constructor(e){this.length=0,this.data=new Array(e),this._id=dl._GlobalId++}push(e){this.data[this.length++]=e,this.length>this.data.length&&(this.data.length*=2)}forEach(e){for(let t=0;t<this.length;t++)e(this.data[t])}sort(e){this.data.sort(e)}reset(){this.length=0}dispose(){this.reset(),this.data&&(this.data.length=0)}concat(e){if(e.length!==0){this.length+e.length>this.data.length&&(this.data.length=(this.length+e.length)*2);for(let t=0;t<e.length;t++)this.data[this.length++]=(e.data||e)[t]}}indexOf(e){const t=this.data.indexOf(e);return t>=this.length?-1:t}contains(e){return this.indexOf(e)!==-1}}dl._GlobalId=0;class _y extends dl{constructor(){super(...arguments),this._duplicateId=0}push(e){super.push(e),e.__smartArrayFlags||(e.__smartArrayFlags={}),e.__smartArrayFlags[this._id]=this._duplicateId}pushNoDuplicate(e){return e.__smartArrayFlags&&e.__smartArrayFlags[this._id]===this._duplicateId?!1:(this.push(e),!0)}reset(){super.reset(),this._duplicateId++}concatWithNoDuplicate(e){if(e.length!==0){this.length+e.length>this.data.length&&(this.data.length=(this.length+e.length)*2);for(let t=0;t<e.length;t++){const i=(e.data||e)[t];this.pushNoDuplicate(i)}}}}class nG{constructor(){this._count=0,this._data={}}copyFrom(e){this.clear(),e.forEach((t,i)=>this.add(t,i))}get(e){const t=this._data[e];if(t!==void 0)return t}getOrAddWithFactory(e,t){let i=this.get(e);return i!==void 0||(i=t(e),i&&this.add(e,i)),i}getOrAdd(e,t){const i=this.get(e);return i!==void 0?i:(this.add(e,t),t)}contains(e){return this._data[e]!==void 0}add(e,t){return this._data[e]!==void 0?!1:(this._data[e]=t,++this._count,!0)}set(e,t){return this._data[e]===void 0?!1:(this._data[e]=t,!0)}getAndRemove(e){const t=this.get(e);return t!==void 0?(delete this._data[e],--this._count,t):null}remove(e){return this.contains(e)?(delete this._data[e],--this._count,!0):!1}clear(){this._data={},this._count=0}get count(){return this._count}forEach(e){for(const t in this._data){const i=this._data[t];e(t,i)}}first(e){for(const t in this._data){const i=this._data[t],s=e(t,i);if(s)return s}return null}}class IT{static Eval(e,t){return e.match(/\([^()]*\)/g)?e=e.replace(/\([^()]*\)/g,i=>(i=i.slice(1,i.length-1),IT._HandleParenthesisContent(i,t))):e=IT._HandleParenthesisContent(e,t),e==="true"?!0:e==="false"?!1:IT.Eval(e,t)}static _HandleParenthesisContent(e,t){t=t||(r=>r==="true");let i;const s=e.split("||");for(const r in s)if(Object.prototype.hasOwnProperty.call(s,r)){let n=IT._SimplifyNegation(s[r].trim());const o=n.split("&&");if(o.length>1)for(let l=0;l<o.length;++l){const c=IT._SimplifyNegation(o[l].trim());if(c!=="true"&&c!=="false"?c[0]==="!"?i=!t(c.substring(1)):i=t(c):i=c==="true",!i){n="false";break}}if(i||n==="true"){i=!0;break}n!=="true"&&n!=="false"?n[0]==="!"?i=!t(n.substring(1)):i=t(n):i=n==="true"}return i?"true":"false"}static _SimplifyNegation(e){return e=e.replace(/^[\s!]+/,t=>(t=t.replace(/[\s]/g,()=>""),t.length%2?"!":"")),e=e.trim(),e==="!true"?e="false":e==="!false"&&(e="true"),e}}class ar{static EnableFor(e){e._tags=e._tags||{},e.hasTags=()=>ar.HasTags(e),e.addTags=t=>ar.AddTagsTo(e,t),e.removeTags=t=>ar.RemoveTagsFrom(e,t),e.matchesTagsQuery=t=>ar.MatchesQuery(e,t)}static DisableFor(e){delete e._tags,delete e.hasTags,delete e.addTags,delete e.removeTags,delete e.matchesTagsQuery}static HasTags(e){if(!e._tags)return!1;const t=e._tags;for(const i in t)if(Object.prototype.hasOwnProperty.call(t,i))return!0;return!1}static GetTags(e,t=!0){if(!e._tags)return null;if(t){const i=[];for(const s in e._tags)Object.prototype.hasOwnProperty.call(e._tags,s)&&e._tags[s]===!0&&i.push(s);return i.join(" ")}else return e._tags}static AddTagsTo(e,t){if(!t||typeof t!="string")return;t.split(" ").forEach(function(s){ar._AddTagTo(e,s)})}static _AddTagTo(e,t){t=t.trim(),!(t===""||t==="true"||t==="false")&&(t.match(/[\s]/)||t.match(/^([!]|([|]|[&]){2})/)||(ar.EnableFor(e),e._tags[t]=!0))}static RemoveTagsFrom(e,t){if(!ar.HasTags(e))return;const i=t.split(" ");for(const s in i)ar._RemoveTagFrom(e,i[s])}static _RemoveTagFrom(e,t){delete e._tags[t]}static MatchesQuery(e,t){return t===void 0?!0:t===""?ar.HasTags(e):IT.Eval(t,i=>ar.HasTags(e)&&e._tags[i])}}const lP=1/2.2,gw=2.2,Pl=(1+Math.sqrt(5))/2,Ii=.001;function V1(a,e){const t=[];for(let i=0;i<a;++i)t.push(e());return t}function PT(a,e){return V1(a,e)}function iOe(a,e,t){const i=a[e];if(typeof i!="function")return null;const s=function(){const r=a.length,n=s.previous.apply(a,arguments);return t(e,r),n};return i.next=s,s.previous=i,a[e]=s,()=>{const r=s.previous;if(!r)return;const n=s.next;n?(r.next=n,n.previous=r):(r.next=void 0,a[e]=r),s.next=void 0,s.previous=void 0}}const sOe=["push","splice","pop","shift","unshift"];function ehe(a,e){const t=sOe.map(i=>iOe(a,i,e));return()=>{t.forEach(i=>{i==null||i()})}}function rOe(a){return parseInt(a.toString().replace(/\W/g,""))}function Lr(a,e,t=1401298e-51){return Math.abs(a-e)<=t}function aG(a,e,t,i=1401298e-51){return a<e-i||a>t+i}function Ki(a,e){return a===e?a:Math.random()*(e-a)+a}function Zl(a,e,t){return a+(e-a)*t}function nOe(a,e,t){let i=oG(e-a,360);return i>180&&(i-=360),a+i*Os(t)}function aOe(a,e,t){let i=0;return a!=e?i=Os((t-a)/(e-a)):i=0,i}function the(a,e,t,i,s){const r=s*s,n=s*r,o=2*n-3*r+1,l=-2*n+3*r,c=n-2*r+s,u=n-r;return a*o+t*l+e*c+i*u}function oOe(a,e,t,i,s){const r=s*s;return(r-s)*6*a+(3*r-4*s+1)*e+(-r+s)*6*t+(3*r-2*s)*i}function Os(a,e=0,t=1){return Math.min(t,Math.max(e,a))}function ihe(a){return a-=Math.PI*2*Math.floor((a+Math.PI)/(Math.PI*2)),a}function zv(a){const e=a.toString(16);return a<=15?("0"+e).toUpperCase():e.toUpperCase()}function OT(a){if(Math.log2)return Math.floor(Math.log2(a));if(a<0)return NaN;if(a===0)return-1/0;let e=0;if(a<1){for(;a<1;)e++,a=a*2;e=-e}else if(a>1)for(;a>1;)e++,a=Math.floor(a/2);return e}function oG(a,e){return a-Math.floor(a/e)*e}function lOe(a,e,t){return(a-e)/(t-e)}function cOe(a,e,t){return a*(t-e)+e}function she(a,e){let t=oG(e-a,360);return t>180&&(t-=360),t}function uOe(a,e){const t=oG(a,e*2);return e-Math.abs(t-e)}function hOe(a,e,t){let i=Os(t);return i=-2*i*i*i+3*i*i,e*i+a*(1-i)}function rhe(a,e,t){let i=0;return Math.abs(e-a)<=t?i=e:i=a+Math.sign(e-a)*t,i}function dOe(a,e,t){const i=she(a,e);let s=0;return-t<i&&i<t?s=e:(e=a+i,s=rhe(a,e,t)),s}function fOe(a,e,t){return(a-e)/(t-e)}function pOe(a,e,t){return(t-e)*a+e}function _w(a,e){const t=a%e;return t===0?e:_w(e,t)}const mOe=Object.freeze(Object.defineProperty({__proto__:null,Clamp:Os,DeltaAngle:she,Denormalize:cOe,ExtractAsInt:rOe,Hermite:the,Hermite1stDerivative:oOe,HighestCommonFactor:_w,ILog2:OT,InverseLerp:aOe,Lerp:Zl,LerpAngle:nOe,MoveTowards:rhe,MoveTowardsAngle:dOe,Normalize:lOe,NormalizeRadians:ihe,OutsideRange:aG,PercentToRange:pOe,PingPong:uOe,RandomRange:Ki,RangeToPercent:fOe,Repeat:oG,SmoothStep:hOe,ToHex:zv,WithinEpsilon:Lr},Symbol.toStringTag,{value:"Module"})),_0=a=>parseInt(a.toString().replace(/\W/g,""));class Ue{constructor(e=0,t=0){this.x=e,this.y=t}toString(){return`{X: ${this.x} Y: ${this.y}}`}getClassName(){return"Vector2"}getHashCode(){const e=_0(this.x),t=_0(this.y);let i=e;return i=i*397^t,i}toArray(e,t=0){return e[t]=this.x,e[t+1]=this.y,this}fromArray(e,t=0){return Ue.FromArrayToRef(e,t,this),this}asArray(){return[this.x,this.y]}copyFrom(e){return this.x=e.x,this.y=e.y,this}copyFromFloats(e,t){return this.x=e,this.y=t,this}set(e,t){return this.copyFromFloats(e,t)}setAll(e){return this.copyFromFloats(e,e)}add(e){return new Ue(this.x+e.x,this.y+e.y)}addToRef(e,t){return t.x=this.x+e.x,t.y=this.y+e.y,t}addInPlace(e){return this.x+=e.x,this.y+=e.y,this}addInPlaceFromFloats(e,t){return this.x+=e,this.y+=t,this}addVector3(e){return new Ue(this.x+e.x,this.y+e.y)}subtract(e){return new Ue(this.x-e.x,this.y-e.y)}subtractToRef(e,t){return t.x=this.x-e.x,t.y=this.y-e.y,t}subtractInPlace(e){return this.x-=e.x,this.y-=e.y,this}multiplyInPlace(e){return this.x*=e.x,this.y*=e.y,this}multiply(e){return new Ue(this.x*e.x,this.y*e.y)}multiplyToRef(e,t){return t.x=this.x*e.x,t.y=this.y*e.y,t}multiplyByFloats(e,t){return new Ue(this.x*e,this.y*t)}divide(e){return new Ue(this.x/e.x,this.y/e.y)}divideToRef(e,t){return t.x=this.x/e.x,t.y=this.y/e.y,t}divideInPlace(e){return this.x=this.x/e.x,this.y=this.y/e.y,this}minimizeInPlace(e){return this.minimizeInPlaceFromFloats(e.x,e.y)}maximizeInPlace(e){return this.maximizeInPlaceFromFloats(e.x,e.y)}minimizeInPlaceFromFloats(e,t){return this.x=Math.min(e,this.x),this.y=Math.min(t,this.y),this}maximizeInPlaceFromFloats(e,t){return this.x=Math.max(e,this.x),this.y=Math.max(t,this.y),this}subtractFromFloats(e,t){return new Ue(this.x-e,this.y-t)}subtractFromFloatsToRef(e,t,i){return i.x=this.x-e,i.y=this.y-t,i}negate(){return new Ue(-this.x,-this.y)}negateInPlace(){return this.x*=-1,this.y*=-1,this}negateToRef(e){return e.x=-this.x,e.y=-this.y,e}scaleInPlace(e){return this.x*=e,this.y*=e,this}scale(e){return new Ue(this.x*e,this.y*e)}scaleToRef(e,t){return t.x=this.x*e,t.y=this.y*e,t}scaleAndAddToRef(e,t){return t.x+=this.x*e,t.y+=this.y*e,t}equals(e){return e&&this.x===e.x&&this.y===e.y}equalsWithEpsilon(e,t=Ii){return e&&Lr(this.x,e.x,t)&&Lr(this.y,e.y,t)}equalsToFloats(e,t){return this.x===e&&this.y===t}floor(){return new Ue(Math.floor(this.x),Math.floor(this.y))}floorToRef(e){return e.x=Math.floor(this.x),e.y=Math.floor(this.y),e}fract(){return new Ue(this.x-Math.floor(this.x),this.y-Math.floor(this.y))}fractToRef(e){return e.x=this.x-Math.floor(this.x),e.y=this.y-Math.floor(this.y),e}rotateToRef(e,t){const i=Math.cos(e),s=Math.sin(e),r=i*this.x-s*this.y,n=s*this.x+i*this.y;return t.x=r,t.y=n,t}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}lengthSquared(){return this.x*this.x+this.y*this.y}normalize(){return this.normalizeFromLength(this.length())}normalizeFromLength(e){return e===0||e===1?this:this.scaleInPlace(1/e)}normalizeToNew(){const e=new Ue;return this.normalizeToRef(e),e}normalizeToRef(e){const t=this.length();return t===0&&(e.x=this.x,e.y=this.y),this.scaleToRef(1/t,e)}clone(){return new Ue(this.x,this.y)}dot(e){return this.x*e.x+this.y*e.y}static Zero(){return new Ue(0,0)}static One(){return new Ue(1,1)}static Random(e=0,t=1){return new Ue(Ki(e,t),Ki(e,t))}static RandomToRef(e=0,t=1,i){return i.copyFromFloats(Ki(e,t),Ki(e,t))}static get ZeroReadOnly(){return Ue._ZeroReadOnly}static FromArray(e,t=0){return new Ue(e[t],e[t+1])}static FromArrayToRef(e,t,i){return i.x=e[t],i.y=e[t+1],i}static FromFloatsToRef(e,t,i){return i.copyFromFloats(e,t),i}static CatmullRom(e,t,i,s,r){const n=r*r,o=r*n,l=.5*(2*t.x+(-e.x+i.x)*r+(2*e.x-5*t.x+4*i.x-s.x)*n+(-e.x+3*t.x-3*i.x+s.x)*o),c=.5*(2*t.y+(-e.y+i.y)*r+(2*e.y-5*t.y+4*i.y-s.y)*n+(-e.y+3*t.y-3*i.y+s.y)*o);return new Ue(l,c)}static ClampToRef(e,t,i,s){return s.x=Os(e.x,t.x,i.x),s.y=Os(e.y,t.y,i.y),s}static Clamp(e,t,i){const s=Os(e.x,t.x,i.x),r=Os(e.y,t.y,i.y);return new Ue(s,r)}static Hermite(e,t,i,s,r){const n=r*r,o=r*n,l=2*o-3*n+1,c=-2*o+3*n,u=o-2*n+r,f=o-n,p=e.x*l+i.x*c+t.x*u+s.x*f,m=e.y*l+i.y*c+t.y*u+s.y*f;return new Ue(p,m)}static Hermite1stDerivative(e,t,i,s,r){return this.Hermite1stDerivativeToRef(e,t,i,s,r,new Ue)}static Hermite1stDerivativeToRef(e,t,i,s,r,n){const o=r*r;return n.x=(o-r)*6*e.x+(3*o-4*r+1)*t.x+(-o+r)*6*i.x+(3*o-2*r)*s.x,n.y=(o-r)*6*e.y+(3*o-4*r+1)*t.y+(-o+r)*6*i.y+(3*o-2*r)*s.y,n}static Lerp(e,t,i){return Ue.LerpToRef(e,t,i,new Ue)}static LerpToRef(e,t,i,s){return s.x=e.x+(t.x-e.x)*i,s.y=e.y+(t.y-e.y)*i,s}static Dot(e,t){return e.x*t.x+e.y*t.y}static Normalize(e){return Ue.NormalizeToRef(e,new Ue)}static NormalizeToRef(e,t){return e.normalizeToRef(t),t}static Minimize(e,t){const i=e.x<t.x?e.x:t.x,s=e.y<t.y?e.y:t.y;return new Ue(i,s)}static Maximize(e,t){const i=e.x>t.x?e.x:t.x,s=e.y>t.y?e.y:t.y;return new Ue(i,s)}static Transform(e,t){return Ue.TransformToRef(e,t,new Ue)}static TransformToRef(e,t,i){const s=t.m,r=e.x*s[0]+e.y*s[4]+s[12],n=e.x*s[1]+e.y*s[5]+s[13];return i.x=r,i.y=n,i}static PointInTriangle(e,t,i,s){const r=.5*(-i.y*s.x+t.y*(-i.x+s.x)+t.x*(i.y-s.y)+i.x*s.y),n=r<0?-1:1,o=(t.y*s.x-t.x*s.y+(s.y-t.y)*e.x+(t.x-s.x)*e.y)*n,l=(t.x*i.y-t.y*i.x+(t.y-i.y)*e.x+(i.x-t.x)*e.y)*n;return o>0&&l>0&&o+l<2*r*n}static Distance(e,t){return Math.sqrt(Ue.DistanceSquared(e,t))}static DistanceSquared(e,t){const i=e.x-t.x,s=e.y-t.y;return i*i+s*s}static Center(e,t){return Ue.CenterToRef(e,t,new Ue)}static CenterToRef(e,t,i){return i.copyFromFloats((e.x+t.x)/2,(e.y+t.y)/2)}static DistanceOfPointFromSegment(e,t,i){const s=Ue.DistanceSquared(t,i);if(s===0)return Ue.Distance(e,t);const r=i.subtract(t),n=Math.max(0,Math.min(1,Ue.Dot(e.subtract(t),r)/s)),o=t.add(r.multiplyByFloats(n,n));return Ue.Distance(e,o)}}Ue._V8PerformanceHack=new Ue(.5,.5),Ue._ZeroReadOnly=Ue.Zero(),Object.defineProperties(Ue.prototype,{dimension:{value:[2]},rank:{value:1}});class P{get x(){return this._x}set x(e){this._x=e,this._isDirty=!0}get y(){return this._y}set y(e){this._y=e,this._isDirty=!0}get z(){return this._z}set z(e){this._z=e,this._isDirty=!0}constructor(e=0,t=0,i=0){this._isDirty=!0,this._x=e,this._y=t,this._z=i}toString(){return`{X: ${this._x} Y: ${this._y} Z: ${this._z}}`}getClassName(){return"Vector3"}getHashCode(){const e=_0(this._x),t=_0(this._y),i=_0(this._z);let s=e;return s=s*397^t,s=s*397^i,s}asArray(){return[this._x,this._y,this._z]}toArray(e,t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,this}fromArray(e,t=0){return P.FromArrayToRef(e,t,this),this}toQuaternion(){return Re.RotationYawPitchRoll(this._y,this._x,this._z)}addInPlace(e){return this._x+=e._x,this._y+=e._y,this._z+=e._z,this._isDirty=!0,this}addInPlaceFromFloats(e,t,i){return this._x+=e,this._y+=t,this._z+=i,this._isDirty=!0,this}add(e){return new P(this._x+e._x,this._y+e._y,this._z+e._z)}addToRef(e,t){return t._x=this._x+e._x,t._y=this._y+e._y,t._z=this._z+e._z,t._isDirty=!0,t}subtractInPlace(e){return this._x-=e._x,this._y-=e._y,this._z-=e._z,this._isDirty=!0,this}subtract(e){return new P(this._x-e._x,this._y-e._y,this._z-e._z)}subtractToRef(e,t){return this.subtractFromFloatsToRef(e._x,e._y,e._z,t)}subtractFromFloats(e,t,i){return new P(this._x-e,this._y-t,this._z-i)}subtractFromFloatsToRef(e,t,i,s){return s._x=this._x-e,s._y=this._y-t,s._z=this._z-i,s._isDirty=!0,s}negate(){return new P(-this._x,-this._y,-this._z)}negateInPlace(){return this._x*=-1,this._y*=-1,this._z*=-1,this._isDirty=!0,this}negateToRef(e){return e._x=this._x*-1,e._y=this._y*-1,e._z=this._z*-1,e._isDirty=!0,e}scaleInPlace(e){return this._x*=e,this._y*=e,this._z*=e,this._isDirty=!0,this}scale(e){return new P(this._x*e,this._y*e,this._z*e)}scaleToRef(e,t){return t._x=this._x*e,t._y=this._y*e,t._z=this._z*e,t._isDirty=!0,t}getNormalToRef(e){const t=this.length();let i=Math.acos(this.y/t);const s=Math.atan2(this.z,this.x);i>Math.PI/2?i-=Math.PI/2:i+=Math.PI/2;const r=t*Math.sin(i)*Math.cos(s),n=t*Math.cos(i),o=t*Math.sin(i)*Math.sin(s);return e.set(r,n,o),e}applyRotationQuaternionToRef(e,t){const i=this._x,s=this._y,r=this._z,n=e._x,o=e._y,l=e._z,c=e._w,u=2*(o*r-l*s),f=2*(l*i-n*r),p=2*(n*s-o*i);return t._x=i+c*u+o*p-l*f,t._y=s+c*f+l*u-n*p,t._z=r+c*p+n*f-o*u,t._isDirty=!0,t}applyRotationQuaternionInPlace(e){return this.applyRotationQuaternionToRef(e,this)}applyRotationQuaternion(e){return this.applyRotationQuaternionToRef(e,new P)}scaleAndAddToRef(e,t){return t._x+=this._x*e,t._y+=this._y*e,t._z+=this._z*e,t._isDirty=!0,t}projectOnPlane(e,t){return this.projectOnPlaneToRef(e,t,new P)}projectOnPlaneToRef(e,t,i){const s=e.normal,r=e.d,n=Fi.Vector3[0];this.subtractToRef(t,n),n.normalize();const o=P.Dot(n,s);if(Math.abs(o)<1e-10)i.setAll(1/0);else{const l=-(P.Dot(t,s)+r)/o,c=n.scaleInPlace(l);t.addToRef(c,i)}return i}equals(e){return e&&this._x===e._x&&this._y===e._y&&this._z===e._z}equalsWithEpsilon(e,t=Ii){return e&&Lr(this._x,e._x,t)&&Lr(this._y,e._y,t)&&Lr(this._z,e._z,t)}equalsToFloats(e,t,i){return this._x===e&&this._y===t&&this._z===i}multiplyInPlace(e){return this._x*=e._x,this._y*=e._y,this._z*=e._z,this._isDirty=!0,this}multiply(e){return this.multiplyByFloats(e._x,e._y,e._z)}multiplyToRef(e,t){return t._x=this._x*e._x,t._y=this._y*e._y,t._z=this._z*e._z,t._isDirty=!0,t}multiplyByFloats(e,t,i){return new P(this._x*e,this._y*t,this._z*i)}divide(e){return new P(this._x/e._x,this._y/e._y,this._z/e._z)}divideToRef(e,t){return t._x=this._x/e._x,t._y=this._y/e._y,t._z=this._z/e._z,t._isDirty=!0,t}divideInPlace(e){return this._x=this._x/e._x,this._y=this._y/e._y,this._z=this._z/e._z,this._isDirty=!0,this}minimizeInPlace(e){return this.minimizeInPlaceFromFloats(e._x,e._y,e._z)}maximizeInPlace(e){return this.maximizeInPlaceFromFloats(e._x,e._y,e._z)}minimizeInPlaceFromFloats(e,t,i){return e<this._x&&(this.x=e),t<this._y&&(this.y=t),i<this._z&&(this.z=i),this}maximizeInPlaceFromFloats(e,t,i){return e>this._x&&(this.x=e),t>this._y&&(this.y=t),i>this._z&&(this.z=i),this}isNonUniformWithinEpsilon(e){const t=Math.abs(this._x),i=Math.abs(this._y);if(!Lr(t,i,e))return!0;const s=Math.abs(this._z);return!Lr(t,s,e)||!Lr(i,s,e)}get isNonUniform(){const e=Math.abs(this._x),t=Math.abs(this._y);if(e!==t)return!0;const i=Math.abs(this._z);return e!==i}floorToRef(e){return e._x=Math.floor(this._x),e._y=Math.floor(this._y),e._z=Math.floor(this._z),e._isDirty=!0,e}floor(){return new P(Math.floor(this.x),Math.floor(this.y),Math.floor(this.z))}fractToRef(e){return e._x=this.x-Math.floor(this._x),e._y=this.y-Math.floor(this._y),e._z=this.z-Math.floor(this._z),e._isDirty=!0,e}fract(){return new P(this.x-Math.floor(this._x),this.y-Math.floor(this._y),this.z-Math.floor(this._z))}length(){return Math.sqrt(this.lengthSquared())}lengthSquared(){return this._x*this._x+this._y*this._y+this._z*this._z}get hasAZeroComponent(){return this._x*this._y*this._z===0}normalize(){return this.normalizeFromLength(this.length())}reorderInPlace(e){if(e=e.toLowerCase(),e==="xyz")return this;const t=Fi.Vector3[0].copyFrom(this);return this.x=t[e[0]],this.y=t[e[1]],this.z=t[e[2]],this}rotateByQuaternionToRef(e,t){return e.toRotationMatrix(Fi.Matrix[0]),P.TransformCoordinatesToRef(this,Fi.Matrix[0],t),t}rotateByQuaternionAroundPointToRef(e,t,i){return this.subtractToRef(t,Fi.Vector3[0]),Fi.Vector3[0].rotateByQuaternionToRef(e,Fi.Vector3[0]),t.addToRef(Fi.Vector3[0],i),i}cross(e){return P.CrossToRef(this,e,new P)}normalizeFromLength(e){return e===0||e===1?this:this.scaleInPlace(1/e)}normalizeToNew(){return this.normalizeToRef(new P)}normalizeToRef(e){const t=this.length();return t===0||t===1?(e._x=this._x,e._y=this._y,e._z=this._z,e._isDirty=!0,e):this.scaleToRef(1/t,e)}clone(){return new P(this._x,this._y,this._z)}copyFrom(e){return this.copyFromFloats(e._x,e._y,e._z)}copyFromFloats(e,t,i){return this._x=e,this._y=t,this._z=i,this._isDirty=!0,this}set(e,t,i){return this.copyFromFloats(e,t,i)}setAll(e){return this._x=this._y=this._z=e,this._isDirty=!0,this}static GetClipFactor(e,t,i,s){const r=P.Dot(e,i),n=P.Dot(t,i);return(r-s)/(r-n)}static GetAngleBetweenVectors(e,t,i){const s=e.normalizeToRef(Fi.Vector3[1]),r=t.normalizeToRef(Fi.Vector3[2]);let n=P.Dot(s,r);n=Os(n,-1,1);const o=Math.acos(n),l=Fi.Vector3[3];return P.CrossToRef(s,r,l),P.Dot(l,i)>0?isNaN(o)?0:o:isNaN(o)?-Math.PI:-Math.acos(n)}static GetAngleBetweenVectorsOnPlane(e,t,i){Fi.Vector3[0].copyFrom(e);const s=Fi.Vector3[0];Fi.Vector3[1].copyFrom(t);const r=Fi.Vector3[1];Fi.Vector3[2].copyFrom(i);const n=Fi.Vector3[2],o=Fi.Vector3[3],l=Fi.Vector3[4];s.normalize(),r.normalize(),n.normalize(),P.CrossToRef(n,s,o),P.CrossToRef(o,n,l);const c=Math.atan2(P.Dot(r,o),P.Dot(r,l));return ihe(c)}static PitchYawRollToMoveBetweenPointsToRef(e,t,i){const s=ae.Vector3[0];return t.subtractToRef(e,s),i._y=Math.atan2(s.x,s.z)||0,i._x=Math.atan2(Math.sqrt(s.x**2+s.z**2),s.y)||0,i._z=0,i._isDirty=!0,i}static PitchYawRollToMoveBetweenPoints(e,t){const i=P.Zero();return P.PitchYawRollToMoveBetweenPointsToRef(e,t,i)}static SlerpToRef(e,t,i,s){i=Os(i,0,1);const r=Fi.Vector3[0],n=Fi.Vector3[1];r.copyFrom(e);const o=r.length();r.normalizeFromLength(o),n.copyFrom(t);const l=n.length();n.normalizeFromLength(l);const c=P.Dot(r,n);let u,f;if(c<1-Ii){const p=Math.acos(c),m=1/Math.sin(p);u=Math.sin((1-i)*p)*m,f=Math.sin(i*p)*m}else u=1-i,f=i;return r.scaleInPlace(u),n.scaleInPlace(f),s.copyFrom(r).addInPlace(n),s.scaleInPlace(Zl(o,l,i)),s}static SmoothToRef(e,t,i,s,r){return P.SlerpToRef(e,t,s===0?1:i/s,r),r}static FromArray(e,t=0){return new P(e[t],e[t+1],e[t+2])}static FromFloatArray(e,t){return P.FromArray(e,t)}static FromArrayToRef(e,t,i){return i._x=e[t],i._y=e[t+1],i._z=e[t+2],i._isDirty=!0,i}static FromFloatArrayToRef(e,t,i){return P.FromArrayToRef(e,t,i)}static FromFloatsToRef(e,t,i,s){return s.copyFromFloats(e,t,i),s}static Zero(){return new P(0,0,0)}static One(){return new P(1,1,1)}static Up(){return new P(0,1,0)}static get UpReadOnly(){return P._UpReadOnly}static get DownReadOnly(){return P._DownReadOnly}static get RightReadOnly(){return P._RightReadOnly}static get LeftReadOnly(){return P._LeftReadOnly}static get LeftHandedForwardReadOnly(){return P._LeftHandedForwardReadOnly}static get RightHandedForwardReadOnly(){return P._RightHandedForwardReadOnly}static get LeftHandedBackwardReadOnly(){return P._LeftHandedBackwardReadOnly}static get RightHandedBackwardReadOnly(){return P._RightHandedBackwardReadOnly}static get ZeroReadOnly(){return P._ZeroReadOnly}static get OneReadOnly(){return P._OneReadOnly}static Down(){return new P(0,-1,0)}static Forward(e=!1){return new P(0,0,e?-1:1)}static Backward(e=!1){return new P(0,0,e?1:-1)}static Right(){return new P(1,0,0)}static Left(){return new P(-1,0,0)}static Random(e=0,t=1){return new P(Ki(e,t),Ki(e,t),Ki(e,t))}static RandomToRef(e=0,t=1,i){return i.copyFromFloats(Ki(e,t),Ki(e,t),Ki(e,t))}static TransformCoordinates(e,t){const i=P.Zero();return P.TransformCoordinatesToRef(e,t,i),i}static TransformCoordinatesToRef(e,t,i){return P.TransformCoordinatesFromFloatsToRef(e._x,e._y,e._z,t,i),i}static TransformCoordinatesFromFloatsToRef(e,t,i,s,r){const n=s.m,o=e*n[0]+t*n[4]+i*n[8]+n[12],l=e*n[1]+t*n[5]+i*n[9]+n[13],c=e*n[2]+t*n[6]+i*n[10]+n[14],u=1/(e*n[3]+t*n[7]+i*n[11]+n[15]);return r._x=o*u,r._y=l*u,r._z=c*u,r._isDirty=!0,r}static TransformNormal(e,t){const i=P.Zero();return P.TransformNormalToRef(e,t,i),i}static TransformNormalToRef(e,t,i){return this.TransformNormalFromFloatsToRef(e._x,e._y,e._z,t,i),i}static TransformNormalFromFloatsToRef(e,t,i,s,r){const n=s.m;return r._x=e*n[0]+t*n[4]+i*n[8],r._y=e*n[1]+t*n[5]+i*n[9],r._z=e*n[2]+t*n[6]+i*n[10],r._isDirty=!0,r}static CatmullRom(e,t,i,s,r){const n=r*r,o=r*n,l=.5*(2*t._x+(-e._x+i._x)*r+(2*e._x-5*t._x+4*i._x-s._x)*n+(-e._x+3*t._x-3*i._x+s._x)*o),c=.5*(2*t._y+(-e._y+i._y)*r+(2*e._y-5*t._y+4*i._y-s._y)*n+(-e._y+3*t._y-3*i._y+s._y)*o),u=.5*(2*t._z+(-e._z+i._z)*r+(2*e._z-5*t._z+4*i._z-s._z)*n+(-e._z+3*t._z-3*i._z+s._z)*o);return new P(l,c,u)}static Clamp(e,t,i){const s=new P;return P.ClampToRef(e,t,i,s),s}static ClampToRef(e,t,i,s){let r=e._x;r=r>i._x?i._x:r,r=r<t._x?t._x:r;let n=e._y;n=n>i._y?i._y:n,n=n<t._y?t._y:n;let o=e._z;return o=o>i._z?i._z:o,o=o<t._z?t._z:o,s.copyFromFloats(r,n,o),s}static CheckExtends(e,t,i){t.minimizeInPlace(e),i.maximizeInPlace(e)}static Hermite(e,t,i,s,r){const n=r*r,o=r*n,l=2*o-3*n+1,c=-2*o+3*n,u=o-2*n+r,f=o-n,p=e._x*l+i._x*c+t._x*u+s._x*f,m=e._y*l+i._y*c+t._y*u+s._y*f,_=e._z*l+i._z*c+t._z*u+s._z*f;return new P(p,m,_)}static Hermite1stDerivative(e,t,i,s,r){const n=new P;return this.Hermite1stDerivativeToRef(e,t,i,s,r,n),n}static Hermite1stDerivativeToRef(e,t,i,s,r,n){const o=r*r;return n._x=(o-r)*6*e._x+(3*o-4*r+1)*t._x+(-o+r)*6*i._x+(3*o-2*r)*s._x,n._y=(o-r)*6*e._y+(3*o-4*r+1)*t._y+(-o+r)*6*i._y+(3*o-2*r)*s._y,n._z=(o-r)*6*e._z+(3*o-4*r+1)*t._z+(-o+r)*6*i._z+(3*o-2*r)*s._z,n._isDirty=!0,n}static Lerp(e,t,i){const s=new P(0,0,0);return P.LerpToRef(e,t,i,s),s}static LerpToRef(e,t,i,s){return s._x=e._x+(t._x-e._x)*i,s._y=e._y+(t._y-e._y)*i,s._z=e._z+(t._z-e._z)*i,s._isDirty=!0,s}static Dot(e,t){return e._x*t._x+e._y*t._y+e._z*t._z}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z}static Cross(e,t){const i=new P;return P.CrossToRef(e,t,i),i}static CrossToRef(e,t,i){const s=e._y*t._z-e._z*t._y,r=e._z*t._x-e._x*t._z,n=e._x*t._y-e._y*t._x;return i.copyFromFloats(s,r,n),i}static Normalize(e){const t=P.Zero();return P.NormalizeToRef(e,t),t}static NormalizeToRef(e,t){return e.normalizeToRef(t),t}static Project(e,t,i,s){const r=new P;return P.ProjectToRef(e,t,i,s,r),r}static ProjectToRef(e,t,i,s,r){var d;const n=s.width,o=s.height,l=s.x,c=s.y,u=Fi.Matrix[1],f=(d=ei.LastCreatedEngine)==null?void 0:d.isNDCHalfZRange,p=f?1:.5,m=f?0:.5;me.FromValuesToRef(n/2,0,0,0,0,-o/2,0,0,0,0,p,0,l+n/2,o/2+c,m,1,u);const _=Fi.Matrix[0];return t.multiplyToRef(i,_),_.multiplyToRef(u,_),P.TransformCoordinatesToRef(e,_,r),r}static Reflect(e,t){return this.ReflectToRef(e,t,new P)}static ReflectToRef(e,t,i){const s=ae.Vector3[0];return s.copyFrom(t).scaleInPlace(2*P.Dot(e,t)),i.copyFrom(e).subtractInPlace(s)}static _UnprojectFromInvertedMatrixToRef(e,t,i){P.TransformCoordinatesToRef(e,t,i);const s=t.m,r=e._x*s[3]+e._y*s[7]+e._z*s[11]+s[15];return Lr(r,1)&&i.scaleInPlace(1/r),i}static UnprojectFromTransform(e,t,i,s,r){return this.Unproject(e,t,i,s,r,me.IdentityReadOnly)}static Unproject(e,t,i,s,r,n){const o=new P;return P.UnprojectToRef(e,t,i,s,r,n,o),o}static UnprojectToRef(e,t,i,s,r,n,o){return P.UnprojectFloatsToRef(e._x,e._y,e._z,t,i,s,r,n,o),o}static UnprojectFloatsToRef(e,t,i,s,r,n,o,l,c){var p;const u=Fi.Matrix[0];n.multiplyToRef(o,u),u.multiplyToRef(l,u),u.invert();const f=Fi.Vector3[0];return f.x=e/s*2-1,f.y=-(t/r*2-1),(p=ei.LastCreatedEngine)!=null&&p.isNDCHalfZRange?f.z=i:f.z=2*i-1,P._UnprojectFromInvertedMatrixToRef(f,u,c),c}static Minimize(e,t){const i=new P;return i.copyFrom(e),i.minimizeInPlace(t),i}static Maximize(e,t){const i=new P;return i.copyFrom(e),i.maximizeInPlace(t),i}static Distance(e,t){return Math.sqrt(P.DistanceSquared(e,t))}static DistanceSquared(e,t){const i=e._x-t._x,s=e._y-t._y,r=e._z-t._z;return i*i+s*s+r*r}static ProjectOnTriangleToRef(e,t,i,s,r){const n=Fi.Vector3[0],o=Fi.Vector3[1],l=Fi.Vector3[2],c=Fi.Vector3[3],u=Fi.Vector3[4];i.subtractToRef(t,n),s.subtractToRef(t,o),s.subtractToRef(i,l);const f=n.length(),p=o.length(),m=l.length();if(f<Ii||p<Ii||m<Ii)return r.copyFrom(t),P.Distance(e,t);e.subtractToRef(t,u),P.CrossToRef(n,o,c);const _=c.length();if(_<Ii)return r.copyFrom(t),P.Distance(e,t);c.normalizeFromLength(_);let d=u.length();if(d<Ii)return r.copyFrom(t),0;u.normalizeFromLength(d);const h=P.Dot(c,u),x=Fi.Vector3[5],A=Fi.Vector3[6];x.copyFrom(c).scaleInPlace(-d*h),A.copyFrom(e).addInPlace(x);const S=Fi.Vector3[4],E=Fi.Vector3[5],b=Fi.Vector3[7],M=Fi.Vector3[8];S.copyFrom(n).scaleInPlace(1/f),M.copyFrom(o).scaleInPlace(1/p),S.addInPlace(M).scaleInPlace(-1),E.copyFrom(n).scaleInPlace(-1/f),M.copyFrom(l).scaleInPlace(1/m),E.addInPlace(M).scaleInPlace(-1),b.copyFrom(l).scaleInPlace(-1/m),M.copyFrom(o).scaleInPlace(-1/p),b.addInPlace(M).scaleInPlace(-1);const T=Fi.Vector3[9];let O;T.copyFrom(A).subtractInPlace(t),P.CrossToRef(S,T,M),O=P.Dot(M,c);const R=O;T.copyFrom(A).subtractInPlace(i),P.CrossToRef(E,T,M),O=P.Dot(M,c);const I=O;T.copyFrom(A).subtractInPlace(s),P.CrossToRef(b,T,M),O=P.Dot(M,c);const N=O,w=Fi.Vector3[10];let D,k;R>0&&I<0?(w.copyFrom(n),D=t,k=i):I>0&&N<0?(w.copyFrom(l),D=i,k=s):(w.copyFrom(o).scaleInPlace(-1),D=s,k=t);const Y=Fi.Vector3[9],V=Fi.Vector3[4];if(D.subtractToRef(A,M),k.subtractToRef(A,Y),P.CrossToRef(M,Y,V),!(P.Dot(V,c)<0))return r.copyFrom(A),Math.abs(d*h);const K=Fi.Vector3[5];P.CrossToRef(w,V,K),K.normalize();const ie=Fi.Vector3[9];ie.copyFrom(D).subtractInPlace(A);const ne=ie.length();if(ne<Ii)return r.copyFrom(D),P.Distance(e,D);ie.normalizeFromLength(ne);const te=P.Dot(K,ie),W=Fi.Vector3[7];W.copyFrom(A).addInPlace(K.scaleInPlace(ne*te)),M.copyFrom(W).subtractInPlace(D),d=w.length(),w.normalizeFromLength(d);let Q=P.Dot(M,w)/Math.max(d,Ii);return Q=Os(Q,0,1),W.copyFrom(D).addInPlace(w.scaleInPlace(Q*d)),r.copyFrom(W),P.Distance(e,W)}static Center(e,t){return P.CenterToRef(e,t,P.Zero())}static CenterToRef(e,t,i){return i.copyFromFloats((e._x+t._x)/2,(e._y+t._y)/2,(e._z+t._z)/2)}static RotationFromAxis(e,t,i){const s=new P;return P.RotationFromAxisToRef(e,t,i,s),s}static RotationFromAxisToRef(e,t,i,s){const r=Fi.Quaternion[0];return Re.RotationQuaternionFromAxisToRef(e,t,i,r),r.toEulerAnglesToRef(s),s}}P._V8PerformanceHack=new P(.5,.5,.5),P._UpReadOnly=P.Up(),P._DownReadOnly=P.Down(),P._LeftHandedForwardReadOnly=P.Forward(!1),P._RightHandedForwardReadOnly=P.Forward(!0),P._LeftHandedBackwardReadOnly=P.Backward(!1),P._RightHandedBackwardReadOnly=P.Backward(!0),P._RightReadOnly=P.Right(),P._LeftReadOnly=P.Left(),P._ZeroReadOnly=P.Zero(),P._OneReadOnly=P.One(),Object.defineProperties(P.prototype,{dimension:{value:[3]},rank:{value:1}});class Yt{constructor(e=0,t=0,i=0,s=0){this.x=e,this.y=t,this.z=i,this.w=s}toString(){return`{X: ${this.x} Y: ${this.y} Z: ${this.z} W: ${this.w}}`}getClassName(){return"Vector4"}getHashCode(){const e=_0(this.x),t=_0(this.y),i=_0(this.z),s=_0(this.w);let r=e;return r=r*397^t,r=r*397^i,r=r*397^s,r}asArray(){return[this.x,this.y,this.z,this.w]}toArray(e,t){return t===void 0&&(t=0),e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,this}fromArray(e,t=0){return Yt.FromArrayToRef(e,t,this),this}addInPlace(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addInPlaceFromFloats(e,t,i,s){return this.x+=e,this.y+=t,this.z+=i,this.w+=s,this}add(e){return new Yt(this.x+e.x,this.y+e.y,this.z+e.z,this.w+e.w)}addToRef(e,t){return t.x=this.x+e.x,t.y=this.y+e.y,t.z=this.z+e.z,t.w=this.w+e.w,t}subtractInPlace(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subtract(e){return new Yt(this.x-e.x,this.y-e.y,this.z-e.z,this.w-e.w)}subtractToRef(e,t){return t.x=this.x-e.x,t.y=this.y-e.y,t.z=this.z-e.z,t.w=this.w-e.w,t}subtractFromFloats(e,t,i,s){return new Yt(this.x-e,this.y-t,this.z-i,this.w-s)}subtractFromFloatsToRef(e,t,i,s,r){return r.x=this.x-e,r.y=this.y-t,r.z=this.z-i,r.w=this.w-s,r}negate(){return new Yt(-this.x,-this.y,-this.z,-this.w)}negateInPlace(){return this.x*=-1,this.y*=-1,this.z*=-1,this.w*=-1,this}negateToRef(e){return e.x=-this.x,e.y=-this.y,e.z=-this.z,e.w=-this.w,e}scaleInPlace(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}scale(e){return new Yt(this.x*e,this.y*e,this.z*e,this.w*e)}scaleToRef(e,t){return t.x=this.x*e,t.y=this.y*e,t.z=this.z*e,t.w=this.w*e,t}scaleAndAddToRef(e,t){return t.x+=this.x*e,t.y+=this.y*e,t.z+=this.z*e,t.w+=this.w*e,t}equals(e){return e&&this.x===e.x&&this.y===e.y&&this.z===e.z&&this.w===e.w}equalsWithEpsilon(e,t=Ii){return e&&Lr(this.x,e.x,t)&&Lr(this.y,e.y,t)&&Lr(this.z,e.z,t)&&Lr(this.w,e.w,t)}equalsToFloats(e,t,i,s){return this.x===e&&this.y===t&&this.z===i&&this.w===s}multiplyInPlace(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiply(e){return new Yt(this.x*e.x,this.y*e.y,this.z*e.z,this.w*e.w)}multiplyToRef(e,t){return t.x=this.x*e.x,t.y=this.y*e.y,t.z=this.z*e.z,t.w=this.w*e.w,t}multiplyByFloats(e,t,i,s){return new Yt(this.x*e,this.y*t,this.z*i,this.w*s)}divide(e){return new Yt(this.x/e.x,this.y/e.y,this.z/e.z,this.w/e.w)}divideToRef(e,t){return t.x=this.x/e.x,t.y=this.y/e.y,t.z=this.z/e.z,t.w=this.w/e.w,t}divideInPlace(e){return this.divideToRef(e,this)}minimizeInPlace(e){return e.x<this.x&&(this.x=e.x),e.y<this.y&&(this.y=e.y),e.z<this.z&&(this.z=e.z),e.w<this.w&&(this.w=e.w),this}maximizeInPlace(e){return e.x>this.x&&(this.x=e.x),e.y>this.y&&(this.y=e.y),e.z>this.z&&(this.z=e.z),e.w>this.w&&(this.w=e.w),this}minimizeInPlaceFromFloats(e,t,i,s){return this.x=Math.min(e,this.x),this.y=Math.min(t,this.y),this.z=Math.min(i,this.z),this.w=Math.min(s,this.w),this}maximizeInPlaceFromFloats(e,t,i,s){return this.x=Math.max(e,this.x),this.y=Math.max(t,this.y),this.z=Math.max(i,this.z),this.w=Math.max(s,this.w),this}floorToRef(e){return e.x=Math.floor(this.x),e.y=Math.floor(this.y),e.z=Math.floor(this.z),e.w=Math.floor(this.w),e}floor(){return new Yt(Math.floor(this.x),Math.floor(this.y),Math.floor(this.z),Math.floor(this.w))}fractToRef(e){return e.x=this.x-Math.floor(this.x),e.y=this.y-Math.floor(this.y),e.z=this.z-Math.floor(this.z),e.w=this.w-Math.floor(this.w),e}fract(){return new Yt(this.x-Math.floor(this.x),this.y-Math.floor(this.y),this.z-Math.floor(this.z),this.w-Math.floor(this.w))}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}lengthSquared(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}normalize(){return this.normalizeFromLength(this.length())}normalizeFromLength(e){return e===0||e===1?this:this.scaleInPlace(1/e)}normalizeToNew(){return this.normalizeToRef(new Yt)}normalizeToRef(e){const t=this.length();return t===0||t===1?(e.x=this.x,e.y=this.y,e.z=this.z,e.w=this.w,e):this.scaleToRef(1/t,e)}toVector3(){return new P(this.x,this.y,this.z)}clone(){return new Yt(this.x,this.y,this.z,this.w)}copyFrom(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this}copyFromFloats(e,t,i,s){return this.x=e,this.y=t,this.z=i,this.w=s,this}set(e,t,i,s){return this.copyFromFloats(e,t,i,s)}setAll(e){return this.x=this.y=this.z=this.w=e,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}static FromArray(e,t){return t||(t=0),new Yt(e[t],e[t+1],e[t+2],e[t+3])}static FromArrayToRef(e,t,i){return i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i}static FromFloatArrayToRef(e,t,i){return Yt.FromArrayToRef(e,t,i),i}static FromFloatsToRef(e,t,i,s,r){return r.x=e,r.y=t,r.z=i,r.w=s,r}static Zero(){return new Yt(0,0,0,0)}static One(){return new Yt(1,1,1,1)}static Random(e=0,t=1){return new Yt(Ki(e,t),Ki(e,t),Ki(e,t),Ki(e,t))}static RandomToRef(e=0,t=1,i){return i.x=Ki(e,t),i.y=Ki(e,t),i.z=Ki(e,t),i.w=Ki(e,t),i}static Clamp(e,t,i){return Yt.ClampToRef(e,t,i,new Yt)}static ClampToRef(e,t,i,s){return s.x=Os(e.x,t.x,i.x),s.y=Os(e.y,t.y,i.y),s.z=Os(e.z,t.z,i.z),s.w=Os(e.w,t.w,i.w),s}static CheckExtends(e,t,i){t.minimizeInPlace(e),i.maximizeInPlace(e)}static get ZeroReadOnly(){return Yt._ZeroReadOnly}static Normalize(e){return Yt.NormalizeToRef(e,new Yt)}static NormalizeToRef(e,t){return e.normalizeToRef(t),t}static Minimize(e,t){const i=new Yt;return i.copyFrom(e),i.minimizeInPlace(t),i}static Maximize(e,t){const i=new Yt;return i.copyFrom(e),i.maximizeInPlace(t),i}static Distance(e,t){return Math.sqrt(Yt.DistanceSquared(e,t))}static DistanceSquared(e,t){const i=e.x-t.x,s=e.y-t.y,r=e.z-t.z,n=e.w-t.w;return i*i+s*s+r*r+n*n}static Center(e,t){return Yt.CenterToRef(e,t,new Yt)}static CenterToRef(e,t,i){return i.x=(e.x+t.x)/2,i.y=(e.y+t.y)/2,i.z=(e.z+t.z)/2,i.w=(e.w+t.w)/2,i}static TransformCoordinates(e,t){return Yt.TransformCoordinatesToRef(e,t,new Yt)}static TransformCoordinatesToRef(e,t,i){return Yt.TransformCoordinatesFromFloatsToRef(e._x,e._y,e._z,t,i),i}static TransformCoordinatesFromFloatsToRef(e,t,i,s,r){const n=s.m,o=e*n[0]+t*n[4]+i*n[8]+n[12],l=e*n[1]+t*n[5]+i*n[9]+n[13],c=e*n[2]+t*n[6]+i*n[10]+n[14],u=e*n[3]+t*n[7]+i*n[11]+n[15];return r.x=o,r.y=l,r.z=c,r.w=u,r}static TransformNormal(e,t){return Yt.TransformNormalToRef(e,t,new Yt)}static TransformNormalToRef(e,t,i){const s=t.m,r=e.x*s[0]+e.y*s[4]+e.z*s[8],n=e.x*s[1]+e.y*s[5]+e.z*s[9],o=e.x*s[2]+e.y*s[6]+e.z*s[10];return i.x=r,i.y=n,i.z=o,i.w=e.w,i}static TransformNormalFromFloatsToRef(e,t,i,s,r,n){const o=r.m;return n.x=e*o[0]+t*o[4]+i*o[8],n.y=e*o[1]+t*o[5]+i*o[9],n.z=e*o[2]+t*o[6]+i*o[10],n.w=s,n}static FromVector3(e,t=0){return new Yt(e._x,e._y,e._z,t)}static Dot(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w}}Yt._V8PerformanceHack=new Yt(.5,.5,.5,.5),Yt._ZeroReadOnly=Yt.Zero(),Object.defineProperties(Yt.prototype,{dimension:{value:[4]},rank:{value:1}});class Re{get x(){return this._x}set x(e){this._x=e,this._isDirty=!0}get y(){return this._y}set y(e){this._y=e,this._isDirty=!0}get z(){return this._z}set z(e){this._z=e,this._isDirty=!0}get w(){return this._w}set w(e){this._w=e,this._isDirty=!0}constructor(e=0,t=0,i=0,s=1){this._isDirty=!0,this._x=e,this._y=t,this._z=i,this._w=s}toString(){return`{X: ${this._x} Y: ${this._y} Z: ${this._z} W: ${this._w}}`}getClassName(){return"Quaternion"}getHashCode(){const e=_0(this._x),t=_0(this._y),i=_0(this._z),s=_0(this._w);let r=e;return r=r*397^t,r=r*397^i,r=r*397^s,r}asArray(){return[this._x,this._y,this._z,this._w]}toArray(e,t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,this}fromArray(e,t=0){return Re.FromArrayToRef(e,t,this)}equals(e){return e&&this._x===e._x&&this._y===e._y&&this._z===e._z&&this._w===e._w}equalsWithEpsilon(e,t=Ii){return e&&Lr(this._x,e._x,t)&&Lr(this._y,e._y,t)&&Lr(this._z,e._z,t)&&Lr(this._w,e._w,t)}isApprox(e,t=Ii){return e&&(Lr(this._x,e._x,t)&&Lr(this._y,e._y,t)&&Lr(this._z,e._z,t)&&Lr(this._w,e._w,t)||Lr(this._x,-e._x,t)&&Lr(this._y,-e._y,t)&&Lr(this._z,-e._z,t)&&Lr(this._w,-e._w,t))}clone(){return new Re(this._x,this._y,this._z,this._w)}copyFrom(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._w=e._w,this._isDirty=!0,this}copyFromFloats(e,t,i,s){return this._x=e,this._y=t,this._z=i,this._w=s,this._isDirty=!0,this}set(e,t,i,s){return this.copyFromFloats(e,t,i,s)}setAll(e){return this.copyFromFloats(e,e,e,e)}add(e){return new Re(this._x+e._x,this._y+e._y,this._z+e._z,this._w+e._w)}addInPlace(e){return this._x+=e._x,this._y+=e._y,this._z+=e._z,this._w+=e._w,this._isDirty=!0,this}addToRef(e,t){return t._x=this._x+e._x,t._y=this._y+e._y,t._z=this._z+e._z,t._w=this._w+e._w,t._isDirty=!0,t}addInPlaceFromFloats(e,t,i,s){return this._x+=e,this._y+=t,this._z+=i,this._w+=s,this._isDirty=!0,this}subtractToRef(e,t){return t._x=this._x-e._x,t._y=this._y-e._y,t._z=this._z-e._z,t._w=this._w-e._w,t._isDirty=!0,t}subtractFromFloats(e,t,i,s){return this.subtractFromFloatsToRef(e,t,i,s,new Re)}subtractFromFloatsToRef(e,t,i,s,r){return r._x=this._x-e,r._y=this._y-t,r._z=this._z-i,r._w=this._w-s,r._isDirty=!0,r}subtract(e){return new Re(this._x-e._x,this._y-e._y,this._z-e._z,this._w-e._w)}subtractInPlace(e){return this._x-=e._x,this._y-=e._y,this._z-=e._z,this._w-=e._w,this._isDirty=!0,this}scale(e){return new Re(this._x*e,this._y*e,this._z*e,this._w*e)}scaleToRef(e,t){return t._x=this._x*e,t._y=this._y*e,t._z=this._z*e,t._w=this._w*e,t._isDirty=!0,t}scaleInPlace(e){return this._x*=e,this._y*=e,this._z*=e,this._w*=e,this._isDirty=!0,this}scaleAndAddToRef(e,t){return t._x+=this._x*e,t._y+=this._y*e,t._z+=this._z*e,t._w+=this._w*e,t._isDirty=!0,t}multiply(e){const t=new Re(0,0,0,1);return this.multiplyToRef(e,t),t}multiplyToRef(e,t){const i=this._x*e._w+this._y*e._z-this._z*e._y+this._w*e._x,s=-this._x*e._z+this._y*e._w+this._z*e._x+this._w*e._y,r=this._x*e._y-this._y*e._x+this._z*e._w+this._w*e._z,n=-this._x*e._x-this._y*e._y-this._z*e._z+this._w*e._w;return t.copyFromFloats(i,s,r,n),t}multiplyInPlace(e){return this.multiplyToRef(e,this)}multiplyByFloats(e,t,i,s){return this._x*=e,this._y*=t,this._z*=i,this._w*=s,this._isDirty=!0,this}divide(e){throw new ReferenceError("Can not divide a quaternion")}divideToRef(e,t){throw new ReferenceError("Can not divide a quaternion")}divideInPlace(e){throw new ReferenceError("Can not divide a quaternion")}minimizeInPlace(){throw new ReferenceError("Can not minimize a quaternion")}minimizeInPlaceFromFloats(){throw new ReferenceError("Can not minimize a quaternion")}maximizeInPlace(){throw new ReferenceError("Can not maximize a quaternion")}maximizeInPlaceFromFloats(){throw new ReferenceError("Can not maximize a quaternion")}negate(){return this.negateToRef(new Re)}negateInPlace(){return this._x=-this._x,this._y=-this._y,this._z=-this._z,this._w=-this._w,this._isDirty=!0,this}negateToRef(e){return e._x=-this._x,e._y=-this._y,e._z=-this._z,e._w=-this._w,e._isDirty=!0,e}equalsToFloats(e,t,i,s){return this._x===e&&this._y===t&&this._z===i&&this._w===s}floorToRef(e){throw new ReferenceError("Can not floor a quaternion")}floor(){throw new ReferenceError("Can not floor a quaternion")}fractToRef(e){throw new ReferenceError("Can not fract a quaternion")}fract(){throw new ReferenceError("Can not fract a quaternion")}conjugateToRef(e){return e.copyFromFloats(-this._x,-this._y,-this._z,this._w),e}conjugateInPlace(){return this._x*=-1,this._y*=-1,this._z*=-1,this._isDirty=!0,this}conjugate(){return new Re(-this._x,-this._y,-this._z,this._w)}invert(){const e=this.conjugate(),t=this.lengthSquared();return t==0||t==1||e.scaleInPlace(1/t),e}invertInPlace(){this.conjugateInPlace();const e=this.lengthSquared();return e==0||e==1?this:(this.scaleInPlace(1/e),this)}lengthSquared(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this.lengthSquared())}normalize(){return this.normalizeFromLength(this.length())}normalizeFromLength(e){return e===0||e===1?this:this.scaleInPlace(1/e)}normalizeToNew(){const e=new Re(0,0,0,1);return this.normalizeToRef(e),e}normalizeToRef(e){const t=this.length();return t===0||t===1?e.copyFromFloats(this._x,this._y,this._z,this._w):this.scaleToRef(1/t,e)}toEulerAngles(){const e=P.Zero();return this.toEulerAnglesToRef(e),e}toEulerAnglesToRef(e){const t=this._z,i=this._x,s=this._y,r=this._w,n=s*t-i*r,o=.4999999;if(n<-o)e._y=2*Math.atan2(s,r),e._x=Math.PI/2,e._z=0,e._isDirty=!0;else if(n>o)e._y=2*Math.atan2(s,r),e._x=-Math.PI/2,e._z=0,e._isDirty=!0;else{const l=r*r,c=t*t,u=i*i,f=s*s;e._z=Math.atan2(2*(i*s+t*r),-c-u+f+l),e._x=Math.asin(-2*n),e._y=Math.atan2(2*(t*i+s*r),c-u-f+l),e._isDirty=!0}return e}toAlphaBetaGammaToRef(e){const t=this._z,i=this._x,s=this._y,r=this._w,n=Math.sqrt(i*i+s*s),o=Math.sqrt(t*t+r*r),l=2*Math.atan2(n,o),c=2*Math.atan2(t,r),u=2*Math.atan2(s,i),f=(c+u)/2,p=(c-u)/2;return e.set(p,l,f),e}toRotationMatrix(e){return me.FromQuaternionToRef(this,e),e}fromRotationMatrix(e){return Re.FromRotationMatrixToRef(e,this),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}static FromRotationMatrix(e){const t=new Re;return Re.FromRotationMatrixToRef(e,t),t}static FromRotationMatrixToRef(e,t){const i=e.m,s=i[0],r=i[4],n=i[8],o=i[1],l=i[5],c=i[9],u=i[2],f=i[6],p=i[10],m=s+l+p;let _;return m>0?(_=.5/Math.sqrt(m+1),t._w=.25/_,t._x=(f-c)*_,t._y=(n-u)*_,t._z=(o-r)*_,t._isDirty=!0):s>l&&s>p?(_=2*Math.sqrt(1+s-l-p),t._w=(f-c)/_,t._x=.25*_,t._y=(r+o)/_,t._z=(n+u)/_,t._isDirty=!0):l>p?(_=2*Math.sqrt(1+l-s-p),t._w=(n-u)/_,t._x=(r+o)/_,t._y=.25*_,t._z=(c+f)/_,t._isDirty=!0):(_=2*Math.sqrt(1+p-s-l),t._w=(o-r)/_,t._x=(n+u)/_,t._y=(c+f)/_,t._z=.25*_,t._isDirty=!0),t}static Dot(e,t){return e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w}static AreClose(e,t,i=.1){const s=Re.Dot(e,t);return 1-s*s<=i}static SmoothToRef(e,t,i,s,r){let n=s===0?1:i/s;return n=Os(n,0,1),Re.SlerpToRef(e,t,n,r),r}static Zero(){return new Re(0,0,0,0)}static Inverse(e){return new Re(-e._x,-e._y,-e._z,e._w)}static InverseToRef(e,t){return t.set(-e._x,-e._y,-e._z,e._w),t}static Identity(){return new Re(0,0,0,1)}static IsIdentity(e){return e&&e._x===0&&e._y===0&&e._z===0&&e._w===1}static RotationAxis(e,t){return Re.RotationAxisToRef(e,t,new Re)}static RotationAxisToRef(e,t,i){i._w=Math.cos(t/2);const s=Math.sin(t/2)/e.length();return i._x=e._x*s,i._y=e._y*s,i._z=e._z*s,i._isDirty=!0,i}static FromArray(e,t){return t||(t=0),new Re(e[t],e[t+1],e[t+2],e[t+3])}static FromArrayToRef(e,t,i){return i._x=e[t],i._y=e[t+1],i._z=e[t+2],i._w=e[t+3],i._isDirty=!0,i}static FromFloatsToRef(e,t,i,s,r){return r.copyFromFloats(e,t,i,s),r}static FromEulerAngles(e,t,i){const s=new Re;return Re.RotationYawPitchRollToRef(t,e,i,s),s}static FromEulerAnglesToRef(e,t,i,s){return Re.RotationYawPitchRollToRef(t,e,i,s),s}static FromEulerVector(e){const t=new Re;return Re.RotationYawPitchRollToRef(e._y,e._x,e._z,t),t}static FromEulerVectorToRef(e,t){return Re.RotationYawPitchRollToRef(e._y,e._x,e._z,t),t}static FromUnitVectorsToRef(e,t,i,s=Ii){const r=P.Dot(e,t)+1;return r<s?Math.abs(e.x)>Math.abs(e.z)?i.set(-e.y,e.x,0,0):i.set(0,-e.z,e.y,0):(P.CrossToRef(e,t,ae.Vector3[0]),i.set(ae.Vector3[0].x,ae.Vector3[0].y,ae.Vector3[0].z,r)),i.normalize()}static RotationYawPitchRoll(e,t,i){const s=new Re;return Re.RotationYawPitchRollToRef(e,t,i,s),s}static RotationYawPitchRollToRef(e,t,i,s){const r=i*.5,n=t*.5,o=e*.5,l=Math.sin(r),c=Math.cos(r),u=Math.sin(n),f=Math.cos(n),p=Math.sin(o),m=Math.cos(o);return s._x=m*u*c+p*f*l,s._y=p*f*c-m*u*l,s._z=m*f*l-p*u*c,s._w=m*f*c+p*u*l,s._isDirty=!0,s}static RotationAlphaBetaGamma(e,t,i){const s=new Re;return Re.RotationAlphaBetaGammaToRef(e,t,i,s),s}static RotationAlphaBetaGammaToRef(e,t,i,s){const r=(i+e)*.5,n=(i-e)*.5,o=t*.5;return s._x=Math.cos(n)*Math.sin(o),s._y=Math.sin(n)*Math.sin(o),s._z=Math.sin(r)*Math.cos(o),s._w=Math.cos(r)*Math.cos(o),s._isDirty=!0,s}static RotationQuaternionFromAxis(e,t,i){const s=new Re(0,0,0,0);return Re.RotationQuaternionFromAxisToRef(e,t,i,s),s}static RotationQuaternionFromAxisToRef(e,t,i,s){const r=Fi.Matrix[0];return e=e.normalizeToRef(Fi.Vector3[0]),t=t.normalizeToRef(Fi.Vector3[1]),i=i.normalizeToRef(Fi.Vector3[2]),me.FromXYZAxesToRef(e,t,i,r),Re.FromRotationMatrixToRef(r,s),s}static FromLookDirectionLH(e,t){const i=new Re;return Re.FromLookDirectionLHToRef(e,t,i),i}static FromLookDirectionLHToRef(e,t,i){const s=Fi.Matrix[0];return me.LookDirectionLHToRef(e,t,s),Re.FromRotationMatrixToRef(s,i),i}static FromLookDirectionRH(e,t){const i=new Re;return Re.FromLookDirectionRHToRef(e,t,i),i}static FromLookDirectionRHToRef(e,t,i){const s=Fi.Matrix[0];return me.LookDirectionRHToRef(e,t,s),Re.FromRotationMatrixToRef(s,i)}static Slerp(e,t,i){const s=Re.Identity();return Re.SlerpToRef(e,t,i,s),s}static SlerpToRef(e,t,i,s){let r,n,o=e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w,l=!1;if(o<0&&(l=!0,o=-o),o>.999999)n=1-i,r=l?-i:i;else{const c=Math.acos(o),u=1/Math.sin(c);n=Math.sin((1-i)*c)*u,r=l?-Math.sin(i*c)*u:Math.sin(i*c)*u}return s._x=n*e._x+r*t._x,s._y=n*e._y+r*t._y,s._z=n*e._z+r*t._z,s._w=n*e._w+r*t._w,s._isDirty=!0,s}static Hermite(e,t,i,s,r){const n=r*r,o=r*n,l=2*o-3*n+1,c=-2*o+3*n,u=o-2*n+r,f=o-n,p=e._x*l+i._x*c+t._x*u+s._x*f,m=e._y*l+i._y*c+t._y*u+s._y*f,_=e._z*l+i._z*c+t._z*u+s._z*f,d=e._w*l+i._w*c+t._w*u+s._w*f;return new Re(p,m,_,d)}static Hermite1stDerivative(e,t,i,s,r){const n=new Re;return this.Hermite1stDerivativeToRef(e,t,i,s,r,n),n}static Hermite1stDerivativeToRef(e,t,i,s,r,n){const o=r*r;return n._x=(o-r)*6*e._x+(3*o-4*r+1)*t._x+(-o+r)*6*i._x+(3*o-2*r)*s._x,n._y=(o-r)*6*e._y+(3*o-4*r+1)*t._y+(-o+r)*6*i._y+(3*o-2*r)*s._y,n._z=(o-r)*6*e._z+(3*o-4*r+1)*t._z+(-o+r)*6*i._z+(3*o-2*r)*s._z,n._w=(o-r)*6*e._w+(3*o-4*r+1)*t._w+(-o+r)*6*i._w+(3*o-2*r)*s._w,n._isDirty=!0,n}static Normalize(e){const t=Re.Zero();return Re.NormalizeToRef(e,t),t}static NormalizeToRef(e,t){return e.normalizeToRef(t),t}static Clamp(e,t,i){const s=new Re;return Re.ClampToRef(e,t,i,s),s}static ClampToRef(e,t,i,s){return s.copyFromFloats(Os(e.x,t.x,i.x),Os(e.y,t.y,i.y),Os(e.z,t.z,i.z),Os(e.w,t.w,i.w))}static Random(e=0,t=1){return new Re(Ki(e,t),Ki(e,t),Ki(e,t),Ki(e,t))}static RandomToRef(e=0,t=1,i){return i.copyFromFloats(Ki(e,t),Ki(e,t),Ki(e,t),Ki(e,t))}static Minimize(){throw new ReferenceError("Quaternion.Minimize does not make sense")}static Maximize(){throw new ReferenceError("Quaternion.Maximize does not make sense")}static Distance(e,t){return Math.sqrt(Re.DistanceSquared(e,t))}static DistanceSquared(e,t){const i=e.x-t.x,s=e.y-t.y,r=e.z-t.z,n=e.w-t.w;return i*i+s*s+r*r+n*n}static Center(e,t){return Re.CenterToRef(e,t,Re.Zero())}static CenterToRef(e,t,i){return i.copyFromFloats((e.x+t.x)/2,(e.y+t.y)/2,(e.z+t.z)/2,(e.w+t.w)/2)}}Re._V8PerformanceHack=new Re(.5,.5,.5,.5),Object.defineProperties(Re.prototype,{dimension:{value:[4]},rank:{value:1}});class me{static get Use64Bits(){return Ec.MatrixUse64Bits}get m(){return this._m}markAsUpdated(){this.updateFlag=me._UpdateFlagSeed++,this._isIdentity=!1,this._isIdentity3x2=!1,this._isIdentityDirty=!0,this._isIdentity3x2Dirty=!0}_updateIdentityStatus(e,t=!1,i=!1,s=!0){this._isIdentity=e,this._isIdentity3x2=e||i,this._isIdentityDirty=this._isIdentity?!1:t,this._isIdentity3x2Dirty=this._isIdentity3x2?!1:s}constructor(){this._isIdentity=!1,this._isIdentityDirty=!0,this._isIdentity3x2=!0,this._isIdentity3x2Dirty=!0,this.updateFlag=-1,Ec.MatrixTrackPrecisionChange&&Ec.MatrixTrackedMatrices.push(this),this._m=new Ec.MatrixCurrentType(16),this.markAsUpdated()}isIdentity(){if(this._isIdentityDirty){this._isIdentityDirty=!1;const e=this._m;this._isIdentity=e[0]===1&&e[1]===0&&e[2]===0&&e[3]===0&&e[4]===0&&e[5]===1&&e[6]===0&&e[7]===0&&e[8]===0&&e[9]===0&&e[10]===1&&e[11]===0&&e[12]===0&&e[13]===0&&e[14]===0&&e[15]===1}return this._isIdentity}isIdentityAs3x2(){return this._isIdentity3x2Dirty&&(this._isIdentity3x2Dirty=!1,this._m[0]!==1||this._m[5]!==1||this._m[15]!==1?this._isIdentity3x2=!1:this._m[1]!==0||this._m[2]!==0||this._m[3]!==0||this._m[4]!==0||this._m[6]!==0||this._m[7]!==0||this._m[8]!==0||this._m[9]!==0||this._m[10]!==0||this._m[11]!==0||this._m[12]!==0||this._m[13]!==0||this._m[14]!==0?this._isIdentity3x2=!1:this._isIdentity3x2=!0),this._isIdentity3x2}determinant(){if(this._isIdentity===!0)return 1;const e=this._m,t=e[0],i=e[1],s=e[2],r=e[3],n=e[4],o=e[5],l=e[6],c=e[7],u=e[8],f=e[9],p=e[10],m=e[11],_=e[12],d=e[13],h=e[14],x=e[15],A=p*x-h*m,S=f*x-d*m,E=f*h-d*p,b=u*x-_*m,M=u*h-p*_,T=u*d-_*f,O=+(o*A-l*S+c*E),R=-(n*A-l*b+c*M),I=+(n*S-o*b+c*T),N=-(n*E-o*M+l*T);return t*O+i*R+s*I+r*N}toString(){return`{${this.m[0]}, ${this.m[1]}, ${this.m[2]}, ${this.m[3]}
${this.m[4]}, ${this.m[5]}, ${this.m[6]}, ${this.m[7]}
${this.m[8]}, ${this.m[9]}, ${this.m[10]}, ${this.m[11]}
${this.m[12]}, ${this.m[13]}, ${this.m[14]}, ${this.m[15]}}`}toArray(e=null,t=0){if(!e)return this._m;const i=this._m;for(let s=0;s<16;s++)e[t+s]=i[s];return this}asArray(){return this._m}fromArray(e,t=0){return me.FromArrayToRef(e,t,this)}copyFromFloats(...e){return me.FromArrayToRef(e,0,this)}set(...e){const t=this._m;for(let i=0;i<16;i++)t[i]=e[i];return this.markAsUpdated(),this}setAll(e){const t=this._m;for(let i=0;i<16;i++)t[i]=e;return this.markAsUpdated(),this}invert(){return this.invertToRef(this),this}reset(){return me.FromValuesToRef(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,this),this._updateIdentityStatus(!1),this}add(e){const t=new me;return this.addToRef(e,t),t}addToRef(e,t){const i=this._m,s=t._m,r=e.m;for(let n=0;n<16;n++)s[n]=i[n]+r[n];return t.markAsUpdated(),t}addToSelf(e){const t=this._m,i=e.m;return t[0]+=i[0],t[1]+=i[1],t[2]+=i[2],t[3]+=i[3],t[4]+=i[4],t[5]+=i[5],t[6]+=i[6],t[7]+=i[7],t[8]+=i[8],t[9]+=i[9],t[10]+=i[10],t[11]+=i[11],t[12]+=i[12],t[13]+=i[13],t[14]+=i[14],t[15]+=i[15],this.markAsUpdated(),this}addInPlace(e){const t=this._m,i=e.m;for(let s=0;s<16;s++)t[s]+=i[s];return this.markAsUpdated(),this}addInPlaceFromFloats(...e){const t=this._m;for(let i=0;i<16;i++)t[i]+=e[i];return this.markAsUpdated(),this}subtract(e){const t=this._m,i=e.m;for(let s=0;s<16;s++)t[s]-=i[s];return this.markAsUpdated(),this}subtractToRef(e,t){const i=this._m,s=e.m,r=t._m;for(let n=0;n<16;n++)r[n]=i[n]-s[n];return t.markAsUpdated(),t}subtractInPlace(e){const t=this._m,i=e.m;for(let s=0;s<16;s++)t[s]-=i[s];return this.markAsUpdated(),this}subtractFromFloats(...e){return this.subtractFromFloatsToRef(...e,new me)}subtractFromFloatsToRef(...e){const t=e.pop(),i=this._m,s=t._m,r=e;for(let n=0;n<16;n++)s[n]=i[n]-r[n];return t.markAsUpdated(),t}invertToRef(e){if(this._isIdentity===!0)return me.IdentityToRef(e),e;const t=this._m,i=t[0],s=t[1],r=t[2],n=t[3],o=t[4],l=t[5],c=t[6],u=t[7],f=t[8],p=t[9],m=t[10],_=t[11],d=t[12],h=t[13],x=t[14],A=t[15],S=m*A-x*_,E=p*A-h*_,b=p*x-h*m,M=f*A-d*_,T=f*x-m*d,O=f*h-d*p,R=+(l*S-c*E+u*b),I=-(o*S-c*M+u*T),N=+(o*E-l*M+u*O),w=-(o*b-l*T+c*O),D=i*R+s*I+r*N+n*w;if(D===0)return e.copyFrom(this),e;const k=1/D,Y=c*A-x*u,V=l*A-h*u,ee=l*x-h*c,K=o*A-d*u,ie=o*x-d*c,ne=o*h-d*l,te=c*_-m*u,W=l*_-p*u,Q=l*m-p*c,re=o*_-f*u,oe=o*m-f*c,X=o*p-f*l,se=-(s*S-r*E+n*b),ue=+(i*S-r*M+n*T),he=-(i*E-s*M+n*O),fe=+(i*b-s*T+r*O),Ae=+(s*Y-r*V+n*ee),Se=-(i*Y-r*K+n*ie),we=+(i*V-s*K+n*ne),ke=-(i*ee-s*ie+r*ne),st=-(s*te-r*W+n*Q),Ve=+(i*te-r*re+n*oe),Ke=-(i*W-s*re+n*X),ct=+(i*Q-s*oe+r*X);return me.FromValuesToRef(R*k,se*k,Ae*k,st*k,I*k,ue*k,Se*k,Ve*k,N*k,he*k,we*k,Ke*k,w*k,fe*k,ke*k,ct*k,e),e}addAtIndex(e,t){return this._m[e]+=t,this.markAsUpdated(),this}multiplyAtIndex(e,t){return this._m[e]*=t,this.markAsUpdated(),this}setTranslationFromFloats(e,t,i){return this._m[12]=e,this._m[13]=t,this._m[14]=i,this.markAsUpdated(),this}addTranslationFromFloats(e,t,i){return this._m[12]+=e,this._m[13]+=t,this._m[14]+=i,this.markAsUpdated(),this}setTranslation(e){return this.setTranslationFromFloats(e._x,e._y,e._z)}getTranslation(){return new P(this._m[12],this._m[13],this._m[14])}getTranslationToRef(e){return e.x=this._m[12],e.y=this._m[13],e.z=this._m[14],e}removeRotationAndScaling(){const e=this.m;return me.FromValuesToRef(1,0,0,0,0,1,0,0,0,0,1,0,e[12],e[13],e[14],e[15],this),this._updateIdentityStatus(e[12]===0&&e[13]===0&&e[14]===0&&e[15]===1),this}copyFrom(e){e.copyToArray(this._m);const t=e;return this.updateFlag=t.updateFlag,this._updateIdentityStatus(t._isIdentity,t._isIdentityDirty,t._isIdentity3x2,t._isIdentity3x2Dirty),this}copyToArray(e,t=0){const i=this._m;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],this}multiply(e){const t=new me;return this.multiplyToRef(e,t),t}multiplyInPlace(e){const t=this._m,i=e.m;for(let s=0;s<16;s++)t[s]*=i[s];return this.markAsUpdated(),this}multiplyByFloats(...e){const t=this._m;for(let i=0;i<16;i++)t[i]*=e[i];return this.markAsUpdated(),this}multiplyByFloatsToRef(...e){const t=e.pop(),i=this._m,s=t._m,r=e;for(let n=0;n<16;n++)s[n]=i[n]*r[n];return t.markAsUpdated(),t}multiplyToRef(e,t){return this._isIdentity?(t.copyFrom(e),t):e._isIdentity?(t.copyFrom(this),t):(this.multiplyToArray(e,t._m,0),t.markAsUpdated(),t)}multiplyToArray(e,t,i){const s=this._m,r=e.m,n=s[0],o=s[1],l=s[2],c=s[3],u=s[4],f=s[5],p=s[6],m=s[7],_=s[8],d=s[9],h=s[10],x=s[11],A=s[12],S=s[13],E=s[14],b=s[15],M=r[0],T=r[1],O=r[2],R=r[3],I=r[4],N=r[5],w=r[6],D=r[7],k=r[8],Y=r[9],V=r[10],ee=r[11],K=r[12],ie=r[13],ne=r[14],te=r[15];return t[i]=n*M+o*I+l*k+c*K,t[i+1]=n*T+o*N+l*Y+c*ie,t[i+2]=n*O+o*w+l*V+c*ne,t[i+3]=n*R+o*D+l*ee+c*te,t[i+4]=u*M+f*I+p*k+m*K,t[i+5]=u*T+f*N+p*Y+m*ie,t[i+6]=u*O+f*w+p*V+m*ne,t[i+7]=u*R+f*D+p*ee+m*te,t[i+8]=_*M+d*I+h*k+x*K,t[i+9]=_*T+d*N+h*Y+x*ie,t[i+10]=_*O+d*w+h*V+x*ne,t[i+11]=_*R+d*D+h*ee+x*te,t[i+12]=A*M+S*I+E*k+b*K,t[i+13]=A*T+S*N+E*Y+b*ie,t[i+14]=A*O+S*w+E*V+b*ne,t[i+15]=A*R+S*D+E*ee+b*te,this}divide(e){return this.divideToRef(e,new me)}divideToRef(e,t){const i=this._m,s=e.m,r=t._m;for(let n=0;n<16;n++)r[n]=i[n]/s[n];return t.markAsUpdated(),t}divideInPlace(e){const t=this._m,i=e.m;for(let s=0;s<16;s++)t[s]/=i[s];return this.markAsUpdated(),this}minimizeInPlace(e){const t=this._m,i=e.m;for(let s=0;s<16;s++)t[s]=Math.min(t[s],i[s]);return this.markAsUpdated(),this}minimizeInPlaceFromFloats(...e){const t=this._m;for(let i=0;i<16;i++)t[i]=Math.min(t[i],e[i]);return this.markAsUpdated(),this}maximizeInPlace(e){const t=this._m,i=e.m;for(let s=0;s<16;s++)t[s]=Math.min(t[s],i[s]);return this.markAsUpdated(),this}maximizeInPlaceFromFloats(...e){const t=this._m;for(let i=0;i<16;i++)t[i]=Math.min(t[i],e[i]);return this.markAsUpdated(),this}negate(){return this.negateToRef(new me)}negateInPlace(){const e=this._m;for(let t=0;t<16;t++)e[t]=-e[t];return this.markAsUpdated(),this}negateToRef(e){const t=this._m,i=e._m;for(let s=0;s<16;s++)i[s]=-t[s];return e.markAsUpdated(),e}equals(e){const t=e;if(!t)return!1;if((this._isIdentity||t._isIdentity)&&!this._isIdentityDirty&&!t._isIdentityDirty)return this._isIdentity&&t._isIdentity;const i=this.m,s=t.m;return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]&&i[3]===s[3]&&i[4]===s[4]&&i[5]===s[5]&&i[6]===s[6]&&i[7]===s[7]&&i[8]===s[8]&&i[9]===s[9]&&i[10]===s[10]&&i[11]===s[11]&&i[12]===s[12]&&i[13]===s[13]&&i[14]===s[14]&&i[15]===s[15]}equalsWithEpsilon(e,t=0){const i=this._m,s=e.m;for(let r=0;r<16;r++)if(!Lr(i[r],s[r],t))return!1;return!0}equalsToFloats(...e){const t=this._m;for(let i=0;i<16;i++)if(t[i]!=e[i])return!1;return!0}floor(){return this.floorToRef(new me)}floorToRef(e){const t=this._m,i=e._m;for(let s=0;s<16;s++)i[s]=Math.floor(t[s]);return e.markAsUpdated(),e}fract(){return this.fractToRef(new me)}fractToRef(e){const t=this._m,i=e._m;for(let s=0;s<16;s++)i[s]=t[s]-Math.floor(t[s]);return e.markAsUpdated(),e}clone(){const e=new me;return e.copyFrom(this),e}getClassName(){return"Matrix"}getHashCode(){let e=_0(this._m[0]);for(let t=1;t<16;t++)e=e*397^_0(this._m[t]);return e}decomposeToTransformNode(e){return e.rotationQuaternion=e.rotationQuaternion||new Re,this.decompose(e.scaling,e.rotationQuaternion,e.position)}decompose(e,t,i,s,r=!0){if(this._isIdentity)return i&&i.setAll(0),e&&e.setAll(1),t&&t.copyFromFloats(0,0,0,1),!0;const n=this._m;if(i&&i.copyFromFloats(n[12],n[13],n[14]),e=e||Fi.Vector3[0],e.x=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]),e.y=Math.sqrt(n[4]*n[4]+n[5]*n[5]+n[6]*n[6]),e.z=Math.sqrt(n[8]*n[8]+n[9]*n[9]+n[10]*n[10]),s){const o=(r?s.absoluteScaling.x:s.scaling.x)<0?-1:1,l=(r?s.absoluteScaling.y:s.scaling.y)<0?-1:1,c=(r?s.absoluteScaling.z:s.scaling.z)<0?-1:1;e.x*=o,e.y*=l,e.z*=c}else this.determinant()<=0&&(e.y*=-1);if(e._x===0||e._y===0||e._z===0)return t&&t.copyFromFloats(0,0,0,1),!1;if(t){const o=1/e._x,l=1/e._y,c=1/e._z;me.FromValuesToRef(n[0]*o,n[1]*o,n[2]*o,0,n[4]*l,n[5]*l,n[6]*l,0,n[8]*c,n[9]*c,n[10]*c,0,0,0,0,1,Fi.Matrix[0]),Re.FromRotationMatrixToRef(Fi.Matrix[0],t)}return!0}getRow(e){if(e<0||e>3)return null;const t=e*4;return new Yt(this._m[t+0],this._m[t+1],this._m[t+2],this._m[t+3])}getRowToRef(e,t){if(e>=0&&e<=3){const i=e*4;t.x=this._m[i+0],t.y=this._m[i+1],t.z=this._m[i+2],t.w=this._m[i+3]}return t}setRow(e,t){return this.setRowFromFloats(e,t.x,t.y,t.z,t.w)}transpose(){const e=new me;return me.TransposeToRef(this,e),e}transposeToRef(e){return me.TransposeToRef(this,e),e}setRowFromFloats(e,t,i,s,r){if(e<0||e>3)return this;const n=e*4;return this._m[n+0]=t,this._m[n+1]=i,this._m[n+2]=s,this._m[n+3]=r,this.markAsUpdated(),this}scale(e){const t=new me;return this.scaleToRef(e,t),t}scaleToRef(e,t){for(let i=0;i<16;i++)t._m[i]=this._m[i]*e;return t.markAsUpdated(),t}scaleAndAddToRef(e,t){for(let i=0;i<16;i++)t._m[i]+=this._m[i]*e;return t.markAsUpdated(),t}scaleInPlace(e){const t=this._m;for(let i=0;i<16;i++)t[i]*=e;return this.markAsUpdated(),this}toNormalMatrix(e){const t=Fi.Matrix[0];this.invertToRef(t),t.transposeToRef(e);const i=e._m;return me.FromValuesToRef(i[0],i[1],i[2],0,i[4],i[5],i[6],0,i[8],i[9],i[10],0,0,0,0,1,e),e}getRotationMatrix(){const e=new me;return this.getRotationMatrixToRef(e),e}getRotationMatrixToRef(e){const t=Fi.Vector3[0];if(!this.decompose(t))return me.IdentityToRef(e),e;const i=this._m,s=1/t._x,r=1/t._y,n=1/t._z;return me.FromValuesToRef(i[0]*s,i[1]*s,i[2]*s,0,i[4]*r,i[5]*r,i[6]*r,0,i[8]*n,i[9]*n,i[10]*n,0,0,0,0,1,e),e}toggleModelMatrixHandInPlace(){const e=this._m;return e[2]*=-1,e[6]*=-1,e[8]*=-1,e[9]*=-1,e[14]*=-1,this.markAsUpdated(),this}toggleProjectionMatrixHandInPlace(){const e=this._m;return e[8]*=-1,e[9]*=-1,e[10]*=-1,e[11]*=-1,this.markAsUpdated(),this}static FromArray(e,t=0){const i=new me;return me.FromArrayToRef(e,t,i),i}static FromArrayToRef(e,t,i){for(let s=0;s<16;s++)i._m[s]=e[s+t];return i.markAsUpdated(),i}static FromFloat32ArrayToRefScaled(e,t,i,s){return s._m[0]=e[0+t]*i,s._m[1]=e[1+t]*i,s._m[2]=e[2+t]*i,s._m[3]=e[3+t]*i,s._m[4]=e[4+t]*i,s._m[5]=e[5+t]*i,s._m[6]=e[6+t]*i,s._m[7]=e[7+t]*i,s._m[8]=e[8+t]*i,s._m[9]=e[9+t]*i,s._m[10]=e[10+t]*i,s._m[11]=e[11+t]*i,s._m[12]=e[12+t]*i,s._m[13]=e[13+t]*i,s._m[14]=e[14+t]*i,s._m[15]=e[15+t]*i,s.markAsUpdated(),s}static get IdentityReadOnly(){return me._IdentityReadOnly}static FromValuesToRef(e,t,i,s,r,n,o,l,c,u,f,p,m,_,d,h,x){const A=x._m;A[0]=e,A[1]=t,A[2]=i,A[3]=s,A[4]=r,A[5]=n,A[6]=o,A[7]=l,A[8]=c,A[9]=u,A[10]=f,A[11]=p,A[12]=m,A[13]=_,A[14]=d,A[15]=h,x.markAsUpdated()}static FromValues(e,t,i,s,r,n,o,l,c,u,f,p,m,_,d,h){const x=new me,A=x._m;return A[0]=e,A[1]=t,A[2]=i,A[3]=s,A[4]=r,A[5]=n,A[6]=o,A[7]=l,A[8]=c,A[9]=u,A[10]=f,A[11]=p,A[12]=m,A[13]=_,A[14]=d,A[15]=h,x.markAsUpdated(),x}static Compose(e,t,i){const s=new me;return me.ComposeToRef(e,t,i,s),s}static ComposeToRef(e,t,i,s){const r=s._m,n=t._x,o=t._y,l=t._z,c=t._w,u=n+n,f=o+o,p=l+l,m=n*u,_=n*f,d=n*p,h=o*f,x=o*p,A=l*p,S=c*u,E=c*f,b=c*p,M=e._x,T=e._y,O=e._z;return r[0]=(1-(h+A))*M,r[1]=(_+b)*M,r[2]=(d-E)*M,r[3]=0,r[4]=(_-b)*T,r[5]=(1-(m+A))*T,r[6]=(x+S)*T,r[7]=0,r[8]=(d+E)*O,r[9]=(x-S)*O,r[10]=(1-(m+h))*O,r[11]=0,r[12]=i._x,r[13]=i._y,r[14]=i._z,r[15]=1,s.markAsUpdated(),s}static Identity(){const e=me.FromValues(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return e._updateIdentityStatus(!0),e}static IdentityToRef(e){return me.FromValuesToRef(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,e),e._updateIdentityStatus(!0),e}static Zero(){const e=me.FromValues(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);return e._updateIdentityStatus(!1),e}static RotationX(e){const t=new me;return me.RotationXToRef(e,t),t}static Invert(e){const t=new me;return e.invertToRef(t),t}static RotationXToRef(e,t){const i=Math.sin(e),s=Math.cos(e);return me.FromValuesToRef(1,0,0,0,0,s,i,0,0,-i,s,0,0,0,0,1,t),t._updateIdentityStatus(s===1&&i===0),t}static RotationY(e){const t=new me;return me.RotationYToRef(e,t),t}static RotationYToRef(e,t){const i=Math.sin(e),s=Math.cos(e);return me.FromValuesToRef(s,0,-i,0,0,1,0,0,i,0,s,0,0,0,0,1,t),t._updateIdentityStatus(s===1&&i===0),t}static RotationZ(e){const t=new me;return me.RotationZToRef(e,t),t}static RotationZToRef(e,t){const i=Math.sin(e),s=Math.cos(e);return me.FromValuesToRef(s,i,0,0,-i,s,0,0,0,0,1,0,0,0,0,1,t),t._updateIdentityStatus(s===1&&i===0),t}static RotationAxis(e,t){const i=new me;return me.RotationAxisToRef(e,t,i),i}static RotationAxisToRef(e,t,i){const s=Math.sin(-t),r=Math.cos(-t),n=1-r;e=e.normalizeToRef(Fi.Vector3[0]);const o=i._m;return o[0]=e._x*e._x*n+r,o[1]=e._x*e._y*n-e._z*s,o[2]=e._x*e._z*n+e._y*s,o[3]=0,o[4]=e._y*e._x*n+e._z*s,o[5]=e._y*e._y*n+r,o[6]=e._y*e._z*n-e._x*s,o[7]=0,o[8]=e._z*e._x*n-e._y*s,o[9]=e._z*e._y*n+e._x*s,o[10]=e._z*e._z*n+r,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,i.markAsUpdated(),i}static RotationAlignToRef(e,t,i,s=!1){const r=P.Dot(t,e),n=i._m;if(r<-1+Ii)n[0]=-1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=s?1:-1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=s?-1:1,n[11]=0;else{const o=P.Cross(t,e),l=1/(1+r);n[0]=o._x*o._x*l+r,n[1]=o._y*o._x*l-o._z,n[2]=o._z*o._x*l+o._y,n[3]=0,n[4]=o._x*o._y*l+o._z,n[5]=o._y*o._y*l+r,n[6]=o._z*o._y*l-o._x,n[7]=0,n[8]=o._x*o._z*l-o._y,n[9]=o._y*o._z*l+o._x,n[10]=o._z*o._z*l+r,n[11]=0}return n[12]=0,n[13]=0,n[14]=0,n[15]=1,i.markAsUpdated(),i}static RotationYawPitchRoll(e,t,i){const s=new me;return me.RotationYawPitchRollToRef(e,t,i,s),s}static RotationYawPitchRollToRef(e,t,i,s){return Re.RotationYawPitchRollToRef(e,t,i,Fi.Quaternion[0]),Fi.Quaternion[0].toRotationMatrix(s),s}static Scaling(e,t,i){const s=new me;return me.ScalingToRef(e,t,i,s),s}static ScalingToRef(e,t,i,s){return me.FromValuesToRef(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1,s),s._updateIdentityStatus(e===1&&t===1&&i===1),s}static Translation(e,t,i){const s=new me;return me.TranslationToRef(e,t,i,s),s}static TranslationToRef(e,t,i,s){return me.FromValuesToRef(1,0,0,0,0,1,0,0,0,0,1,0,e,t,i,1,s),s._updateIdentityStatus(e===0&&t===0&&i===0),s}static Lerp(e,t,i){const s=new me;return me.LerpToRef(e,t,i,s),s}static LerpToRef(e,t,i,s){const r=s._m,n=e.m,o=t.m;for(let l=0;l<16;l++)r[l]=n[l]*(1-i)+o[l]*i;return s.markAsUpdated(),s}static DecomposeLerp(e,t,i){const s=new me;return me.DecomposeLerpToRef(e,t,i,s),s}static DecomposeLerpToRef(e,t,i,s){const r=Fi.Vector3[0],n=Fi.Quaternion[0],o=Fi.Vector3[1];e.decompose(r,n,o);const l=Fi.Vector3[2],c=Fi.Quaternion[1],u=Fi.Vector3[3];t.decompose(l,c,u);const f=Fi.Vector3[4];P.LerpToRef(r,l,i,f);const p=Fi.Quaternion[2];Re.SlerpToRef(n,c,i,p);const m=Fi.Vector3[5];return P.LerpToRef(o,u,i,m),me.ComposeToRef(f,p,m,s),s}static LookAtLH(e,t,i){const s=new me;return me.LookAtLHToRef(e,t,i,s),s}static LookAtLHToRef(e,t,i,s){const r=Fi.Vector3[0],n=Fi.Vector3[1],o=Fi.Vector3[2];t.subtractToRef(e,o),o.normalize(),P.CrossToRef(i,o,r);const l=r.lengthSquared();l===0?r.x=1:r.normalizeFromLength(Math.sqrt(l)),P.CrossToRef(o,r,n),n.normalize();const c=-P.Dot(r,e),u=-P.Dot(n,e),f=-P.Dot(o,e);return me.FromValuesToRef(r._x,n._x,o._x,0,r._y,n._y,o._y,0,r._z,n._z,o._z,0,c,u,f,1,s),s}static LookAtRH(e,t,i){const s=new me;return me.LookAtRHToRef(e,t,i,s),s}static LookAtRHToRef(e,t,i,s){const r=Fi.Vector3[0],n=Fi.Vector3[1],o=Fi.Vector3[2];e.subtractToRef(t,o),o.normalize(),P.CrossToRef(i,o,r);const l=r.lengthSquared();l===0?r.x=1:r.normalizeFromLength(Math.sqrt(l)),P.CrossToRef(o,r,n),n.normalize();const c=-P.Dot(r,e),u=-P.Dot(n,e),f=-P.Dot(o,e);return me.FromValuesToRef(r._x,n._x,o._x,0,r._y,n._y,o._y,0,r._z,n._z,o._z,0,c,u,f,1,s),s}static LookDirectionLH(e,t){const i=new me;return me.LookDirectionLHToRef(e,t,i),i}static LookDirectionLHToRef(e,t,i){const s=Fi.Vector3[0];s.copyFrom(e),s.scaleInPlace(-1);const r=Fi.Vector3[1];return P.CrossToRef(t,s,r),me.FromValuesToRef(r._x,r._y,r._z,0,t._x,t._y,t._z,0,s._x,s._y,s._z,0,0,0,0,1,i),i}static LookDirectionRH(e,t){const i=new me;return me.LookDirectionRHToRef(e,t,i),i}static LookDirectionRHToRef(e,t,i){const s=Fi.Vector3[2];return P.CrossToRef(t,e,s),me.FromValuesToRef(s._x,s._y,s._z,0,t._x,t._y,t._z,0,e._x,e._y,e._z,0,0,0,0,1,i),i}static OrthoLH(e,t,i,s,r){const n=new me;return me.OrthoLHToRef(e,t,i,s,n,r),n}static OrthoLHToRef(e,t,i,s,r,n){const o=i,l=s,c=2/e,u=2/t,f=2/(l-o),p=-(l+o)/(l-o);return me.FromValuesToRef(c,0,0,0,0,u,0,0,0,0,f,0,0,0,p,1,r),n&&r.multiplyToRef(G9,r),r._updateIdentityStatus(c===1&&u===1&&f===1&&p===0),r}static OrthoOffCenterLH(e,t,i,s,r,n,o){const l=new me;return me.OrthoOffCenterLHToRef(e,t,i,s,r,n,l,o),l}static OrthoOffCenterLHToRef(e,t,i,s,r,n,o,l){const c=r,u=n,f=2/(t-e),p=2/(s-i),m=2/(u-c),_=-(u+c)/(u-c),d=(e+t)/(e-t),h=(s+i)/(i-s);return me.FromValuesToRef(f,0,0,0,0,p,0,0,0,0,m,0,d,h,_,1,o),l&&o.multiplyToRef(G9,o),o.markAsUpdated(),o}static ObliqueOffCenterLHToRef(e,t,i,s,r,n,o,l,c,u,f){const p=-o*Math.cos(l),m=-o*Math.sin(l);return me.TranslationToRef(0,0,-c,Fi.Matrix[1]),me.FromValuesToRef(1,0,0,0,0,1,0,0,p,m,1,0,0,0,0,1,Fi.Matrix[0]),Fi.Matrix[1].multiplyToRef(Fi.Matrix[0],Fi.Matrix[0]),me.TranslationToRef(0,0,c,Fi.Matrix[1]),Fi.Matrix[0].multiplyToRef(Fi.Matrix[1],Fi.Matrix[0]),me.OrthoOffCenterLHToRef(e,t,i,s,r,n,u,f),Fi.Matrix[0].multiplyToRef(u,u),u}static OrthoOffCenterRH(e,t,i,s,r,n,o){const l=new me;return me.OrthoOffCenterRHToRef(e,t,i,s,r,n,l,o),l}static OrthoOffCenterRHToRef(e,t,i,s,r,n,o,l){return me.OrthoOffCenterLHToRef(e,t,i,s,r,n,o,l),o._m[10]*=-1,o}static ObliqueOffCenterRHToRef(e,t,i,s,r,n,o,l,c,u,f){const p=o*Math.cos(l),m=o*Math.sin(l);return me.TranslationToRef(0,0,c,Fi.Matrix[1]),me.FromValuesToRef(1,0,0,0,0,1,0,0,p,m,1,0,0,0,0,1,Fi.Matrix[0]),Fi.Matrix[1].multiplyToRef(Fi.Matrix[0],Fi.Matrix[0]),me.TranslationToRef(0,0,-c,Fi.Matrix[1]),Fi.Matrix[0].multiplyToRef(Fi.Matrix[1],Fi.Matrix[0]),me.OrthoOffCenterRHToRef(e,t,i,s,r,n,u,f),Fi.Matrix[0].multiplyToRef(u,u),u}static PerspectiveLH(e,t,i,s,r,n=0){const o=new me,l=i,c=s,u=2*l/e,f=2*l/t,p=(c+l)/(c-l),m=-2*c*l/(c-l),_=Math.tan(n);return me.FromValuesToRef(u,0,0,0,0,f,0,_,0,0,p,1,0,0,m,0,o),r&&o.multiplyToRef(G9,o),o._updateIdentityStatus(!1),o}static PerspectiveFovLH(e,t,i,s,r,n=0,o=!1){const l=new me;return me.PerspectiveFovLHToRef(e,t,i,s,l,!0,r,n,o),l}static PerspectiveFovLHToRef(e,t,i,s,r,n=!0,o,l=0,c=!1){const u=i,f=s,p=1/Math.tan(e*.5),m=n?p/t:p,_=n?p:p*t,d=c&&u===0?-1:f!==0?(f+u)/(f-u):1,h=c&&u===0?2*f:f!==0?-2*f*u/(f-u):-2*u,x=Math.tan(l);return me.FromValuesToRef(m,0,0,0,0,_,0,x,0,0,d,1,0,0,h,0,r),o&&r.multiplyToRef(G9,r),r._updateIdentityStatus(!1),r}static PerspectiveFovReverseLHToRef(e,t,i,s,r,n=!0,o,l=0){const c=1/Math.tan(e*.5),u=n?c/t:c,f=n?c:c*t,p=Math.tan(l);return me.FromValuesToRef(u,0,0,0,0,f,0,p,0,0,-i,1,0,0,1,0,r),o&&r.multiplyToRef(G9,r),r._updateIdentityStatus(!1),r}static PerspectiveFovRH(e,t,i,s,r,n=0,o=!1){const l=new me;return me.PerspectiveFovRHToRef(e,t,i,s,l,!0,r,n,o),l}static PerspectiveFovRHToRef(e,t,i,s,r,n=!0,o,l=0,c=!1){const u=i,f=s,p=1/Math.tan(e*.5),m=n?p/t:p,_=n?p:p*t,d=c&&u===0?1:f!==0?-(f+u)/(f-u):-1,h=c&&u===0?2*f:f!==0?-2*f*u/(f-u):-2*u,x=Math.tan(l);return me.FromValuesToRef(m,0,0,0,0,_,0,x,0,0,d,-1,0,0,h,0,r),o&&r.multiplyToRef(G9,r),r._updateIdentityStatus(!1),r}static PerspectiveFovReverseRHToRef(e,t,i,s,r,n=!0,o,l=0){const c=1/Math.tan(e*.5),u=n?c/t:c,f=n?c:c*t,p=Math.tan(l);return me.FromValuesToRef(u,0,0,0,0,f,0,p,0,0,-i,-1,0,0,-1,0,r),o&&r.multiplyToRef(G9,r),r._updateIdentityStatus(!1),r}static GetFinalMatrix(e,t,i,s,r,n){const o=e.width,l=e.height,c=e.x,u=e.y,f=me.FromValues(o/2,0,0,0,0,-l/2,0,0,0,0,n-r,0,c+o/2,l/2+u,r,1),p=new me;return t.multiplyToRef(i,p),p.multiplyToRef(s,p),p.multiplyToRef(f,p)}static GetAsMatrix2x2(e){const t=e.m,i=[t[0],t[1],t[4],t[5]];return Ec.MatrixUse64Bits?i:new Float32Array(i)}static GetAsMatrix3x3(e){const t=e.m,i=[t[0],t[1],t[2],t[4],t[5],t[6],t[8],t[9],t[10]];return Ec.MatrixUse64Bits?i:new Float32Array(i)}static Transpose(e){const t=new me;return me.TransposeToRef(e,t),t}static TransposeToRef(e,t){const i=e.m,s=i[0],r=i[4],n=i[8],o=i[12],l=i[1],c=i[5],u=i[9],f=i[13],p=i[2],m=i[6],_=i[10],d=i[14],h=i[3],x=i[7],A=i[11],S=i[15],E=t._m;return E[0]=s,E[1]=r,E[2]=n,E[3]=o,E[4]=l,E[5]=c,E[6]=u,E[7]=f,E[8]=p,E[9]=m,E[10]=_,E[11]=d,E[12]=h,E[13]=x,E[14]=A,E[15]=S,t.markAsUpdated(),t._updateIdentityStatus(e._isIdentity,e._isIdentityDirty),t}static Reflection(e){const t=new me;return me.ReflectionToRef(e,t),t}static ReflectionToRef(e,t){e.normalize();const i=e.normal.x,s=e.normal.y,r=e.normal.z,n=-2*i,o=-2*s,l=-2*r;return me.FromValuesToRef(n*i+1,o*i,l*i,0,n*s,o*s+1,l*s,0,n*r,o*r,l*r+1,0,n*e.d,o*e.d,l*e.d,1,t),t}static FromXYZAxesToRef(e,t,i,s){return me.FromValuesToRef(e._x,e._y,e._z,0,t._x,t._y,t._z,0,i._x,i._y,i._z,0,0,0,0,1,s),s}static FromQuaternionToRef(e,t){const i=e._x*e._x,s=e._y*e._y,r=e._z*e._z,n=e._x*e._y,o=e._z*e._w,l=e._z*e._x,c=e._y*e._w,u=e._y*e._z,f=e._x*e._w;return t._m[0]=1-2*(s+r),t._m[1]=2*(n+o),t._m[2]=2*(l-c),t._m[3]=0,t._m[4]=2*(n-o),t._m[5]=1-2*(r+i),t._m[6]=2*(u+f),t._m[7]=0,t._m[8]=2*(l+c),t._m[9]=2*(u-f),t._m[10]=1-2*(s+i),t._m[11]=0,t._m[12]=0,t._m[13]=0,t._m[14]=0,t._m[15]=1,t.markAsUpdated(),t}}me._UpdateFlagSeed=0,me._IdentityReadOnly=me.Identity(),Object.defineProperties(me.prototype,{dimension:{value:[4,4]},rank:{value:2}});class Fi{}Fi.Vector3=PT(11,P.Zero),Fi.Matrix=PT(2,me.Identity),Fi.Quaternion=PT(3,Re.Zero);class ae{}ae.Vector2=PT(3,Ue.Zero),ae.Vector3=PT(13,P.Zero),ae.Vector4=PT(3,Yt.Zero),ae.Quaternion=PT(3,Re.Zero),ae.Matrix=PT(8,me.Identity),ve("BABYLON.Vector2",Ue),ve("BABYLON.Vector3",P),ve("BABYLON.Vector4",Yt),ve("BABYLON.Matrix",me);const G9=me.FromValues(1,0,0,0,0,1,0,0,0,0,.5,0,0,0,.5,1);function F(a,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(a,e,t,i);else for(var o=a.length-1;o>=0;o--)(n=a[o])&&(r=(s<3?n(r):s>3?n(e,t,r):n(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r}const lG={},cG={};function gOe(a){const e=a.getClassName();return cG[e]||(cG[e]={}),cG[e]}function TX(a){const e=a.getClassName();if(lG[e])return lG[e];lG[e]={};const t=lG[e];let i=a,s=e;for(;s;){const r=cG[s];for(const l in r)t[l]=r[l];let n,o=!1;do{if(n=Object.getPrototypeOf(i),!n.getClassName){o=!0;break}if(n.getClassName()!==s)break;i=n}while(n);if(o)break;s=n.getClassName(),i=n}return t}function A4(a,e){return(t,i)=>{const s=gOe(t);s[i]||(s[i]={type:a,sourceName:e})}}function _Oe(a,e=null){return(t,i)=>{const s=e||"_"+i;Object.defineProperty(t,i,{get:function(){return this[s]},set:function(r){var n;typeof((n=this[s])==null?void 0:n.equals)=="function"&&this[s].equals(r)||this[s]!==r&&(this[s]=r,t[a].apply(this))},enumerable:!0,configurable:!0})}}function et(a,e=null){return _Oe(a,e)}function G(a){return A4(0,a)}function Yi(a){return A4(1,a)}function qs(a){return A4(2,a)}function cP(a){return A4(3,a)}function vw(a){return A4(4,a)}function Ma(a){return A4(5,a)}function uP(a){return A4(6,a)}function nhe(a){return A4(7,a)}function hP(a){return A4(8,a)}function LX(a){return A4(9,a)}function ahe(a){return A4(10,a)}function uG(a){return A4(12,a)}function ohe(a){return A4(11,a)}function qx(a,e,t,i){const s=t.value;t.value=(...r)=>{let n=s;if(typeof _native<"u"&&_native[e]){const o=_native[e];i?n=(...l)=>i(...l)?o(...l):s(...l):n=o}return a[e]=n,n(...r)}}qx.filter=function(a){return(e,t,i)=>qx(e,t,i,a)};function dP(a){return Math.pow(a,gw)}function fP(a){return a<=.04045?.0773993808*a:Math.pow(.947867299*(a+.055),2.4)}function pP(a){return Math.pow(a,lP)}function mP(a){return a<=.0031308?12.92*a:1.055*Math.pow(a,.41666)-.055}class Pe{constructor(e=0,t=0,i=0){this.r=e,this.g=t,this.b=i}toString(){return"{R: "+this.r+" G:"+this.g+" B:"+this.b+"}"}getClassName(){return"Color3"}getHashCode(){let e=this.r*255|0;return e=e*397^(this.g*255|0),e=e*397^(this.b*255|0),e}toArray(e,t=0){return e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,this}fromArray(e,t=0){return Pe.FromArrayToRef(e,t,this),this}toColor4(e=1){return new St(this.r,this.g,this.b,e)}asArray(){return[this.r,this.g,this.b]}toLuminance(){return this.r*.3+this.g*.59+this.b*.11}multiply(e){return new Pe(this.r*e.r,this.g*e.g,this.b*e.b)}multiplyToRef(e,t){return t.r=this.r*e.r,t.g=this.g*e.g,t.b=this.b*e.b,t}multiplyInPlace(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this}multiplyByFloats(e,t,i){return new Pe(this.r*e,this.g*t,this.b*i)}divide(e){throw new ReferenceError("Can not divide a color")}divideToRef(e,t){throw new ReferenceError("Can not divide a color")}divideInPlace(e){throw new ReferenceError("Can not divide a color")}minimizeInPlace(e){return this.minimizeInPlaceFromFloats(e.r,e.g,e.b)}maximizeInPlace(e){return this.maximizeInPlaceFromFloats(e.r,e.g,e.b)}minimizeInPlaceFromFloats(e,t,i){return this.r=Math.min(e,this.r),this.g=Math.min(t,this.g),this.b=Math.min(i,this.b),this}maximizeInPlaceFromFloats(e,t,i){return this.r=Math.max(e,this.r),this.g=Math.max(t,this.g),this.b=Math.max(i,this.b),this}floorToRef(e){throw new ReferenceError("Can not floor a color")}floor(){throw new ReferenceError("Can not floor a color")}fractToRef(e){throw new ReferenceError("Can not fract a color")}fract(){throw new ReferenceError("Can not fract a color")}equals(e){return e&&this.r===e.r&&this.g===e.g&&this.b===e.b}equalsFloats(e,t,i){return this.equalsToFloats(e,t,i)}equalsToFloats(e,t,i){return this.r===e&&this.g===t&&this.b===i}equalsWithEpsilon(e,t=Ii){return Lr(this.r,e.r,t)&&Lr(this.g,e.g,t)&&Lr(this.b,e.b,t)}negate(){throw new ReferenceError("Can not negate a color")}negateInPlace(){throw new ReferenceError("Can not negate a color")}negateToRef(e){throw new ReferenceError("Can not negate a color")}scale(e){return new Pe(this.r*e,this.g*e,this.b*e)}scaleInPlace(e){return this.r*=e,this.g*=e,this.b*=e,this}scaleToRef(e,t){return t.r=this.r*e,t.g=this.g*e,t.b=this.b*e,t}scaleAndAddToRef(e,t){return t.r+=this.r*e,t.g+=this.g*e,t.b+=this.b*e,t}clampToRef(e=0,t=1,i){return i.r=Os(this.r,e,t),i.g=Os(this.g,e,t),i.b=Os(this.b,e,t),i}add(e){return new Pe(this.r+e.r,this.g+e.g,this.b+e.b)}addInPlace(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this}addInPlaceFromFloats(e,t,i){return this.r+=e,this.g+=t,this.b+=i,this}addToRef(e,t){return t.r=this.r+e.r,t.g=this.g+e.g,t.b=this.b+e.b,t}subtract(e){return new Pe(this.r-e.r,this.g-e.g,this.b-e.b)}subtractToRef(e,t){return t.r=this.r-e.r,t.g=this.g-e.g,t.b=this.b-e.b,t}subtractInPlace(e){return this.r-=e.r,this.g-=e.g,this.b-=e.b,this}subtractFromFloats(e,t,i){return new Pe(this.r-e,this.g-t,this.b-i)}subtractFromFloatsToRef(e,t,i,s){return s.r=this.r-e,s.g=this.g-t,s.b=this.b-i,s}clone(){return new Pe(this.r,this.g,this.b)}copyFrom(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copyFromFloats(e,t,i){return this.r=e,this.g=t,this.b=i,this}set(e,t,i){return this.copyFromFloats(e,t,i)}setAll(e){return this.r=this.g=this.b=e,this}toHexString(){const e=Math.round(this.r*255),t=Math.round(this.g*255),i=Math.round(this.b*255);return"#"+zv(e)+zv(t)+zv(i)}fromHexString(e){return e.substring(0,1)!=="#"||e.length!==7?this:(this.r=parseInt(e.substring(1,3),16)/255,this.g=parseInt(e.substring(3,5),16)/255,this.b=parseInt(e.substring(5,7),16)/255,this)}toHSV(){return this.toHSVToRef(new Pe)}toHSVToRef(e){const t=this.r,i=this.g,s=this.b,r=Math.max(t,i,s),n=Math.min(t,i,s);let o=0,l=0;const c=r,u=r-n;return r!==0&&(l=u/r),r!=n&&(r==t?(o=(i-s)/u,i<s&&(o+=6)):r==i?o=(s-t)/u+2:r==s&&(o=(t-i)/u+4),o*=60),e.r=o,e.g=l,e.b=c,e}toLinearSpace(e=!1){const t=new Pe;return this.toLinearSpaceToRef(t,e),t}toLinearSpaceToRef(e,t=!1){return t?(e.r=fP(this.r),e.g=fP(this.g),e.b=fP(this.b)):(e.r=dP(this.r),e.g=dP(this.g),e.b=dP(this.b)),this}toGammaSpace(e=!1){const t=new Pe;return this.toGammaSpaceToRef(t,e),t}toGammaSpaceToRef(e,t=!1){return t?(e.r=mP(this.r),e.g=mP(this.g),e.b=mP(this.b)):(e.r=pP(this.r),e.g=pP(this.g),e.b=pP(this.b)),this}static HSVtoRGBToRef(e,t,i,s){const r=i*t,n=e/60,o=r*(1-Math.abs(n%2-1));let l=0,c=0,u=0;n>=0&&n<=1?(l=r,c=o):n>=1&&n<=2?(l=o,c=r):n>=2&&n<=3?(c=r,u=o):n>=3&&n<=4?(c=o,u=r):n>=4&&n<=5?(l=o,u=r):n>=5&&n<=6&&(l=r,u=o);const f=i-r;return s.r=l+f,s.g=c+f,s.b=u+f,s}static FromHSV(e,t,i){const s=new Pe(0,0,0);return Pe.HSVtoRGBToRef(e,t,i,s),s}static FromHexString(e){return new Pe(0,0,0).fromHexString(e)}static FromArray(e,t=0){return new Pe(e[t],e[t+1],e[t+2])}static FromArrayToRef(e,t=0,i){i.r=e[t],i.g=e[t+1],i.b=e[t+2]}static FromInts(e,t,i){return new Pe(e/255,t/255,i/255)}static Lerp(e,t,i){const s=new Pe(0,0,0);return Pe.LerpToRef(e,t,i,s),s}static LerpToRef(e,t,i,s){s.r=e.r+(t.r-e.r)*i,s.g=e.g+(t.g-e.g)*i,s.b=e.b+(t.b-e.b)*i}static Hermite(e,t,i,s,r){const n=r*r,o=r*n,l=2*o-3*n+1,c=-2*o+3*n,u=o-2*n+r,f=o-n,p=e.r*l+i.r*c+t.r*u+s.r*f,m=e.g*l+i.g*c+t.g*u+s.g*f,_=e.b*l+i.b*c+t.b*u+s.b*f;return new Pe(p,m,_)}static Hermite1stDerivative(e,t,i,s,r){const n=Pe.Black();return this.Hermite1stDerivativeToRef(e,t,i,s,r,n),n}static Hermite1stDerivativeToRef(e,t,i,s,r,n){const o=r*r;n.r=(o-r)*6*e.r+(3*o-4*r+1)*t.r+(-o+r)*6*i.r+(3*o-2*r)*s.r,n.g=(o-r)*6*e.g+(3*o-4*r+1)*t.g+(-o+r)*6*i.g+(3*o-2*r)*s.g,n.b=(o-r)*6*e.b+(3*o-4*r+1)*t.b+(-o+r)*6*i.b+(3*o-2*r)*s.b}static Red(){return new Pe(1,0,0)}static Green(){return new Pe(0,1,0)}static Blue(){return new Pe(0,0,1)}static Black(){return new Pe(0,0,0)}static get BlackReadOnly(){return Pe._BlackReadOnly}static White(){return new Pe(1,1,1)}static Purple(){return new Pe(.5,0,.5)}static Magenta(){return new Pe(1,0,1)}static Yellow(){return new Pe(1,1,0)}static Gray(){return new Pe(.5,.5,.5)}static Teal(){return new Pe(0,1,1)}static Random(){return new Pe(Math.random(),Math.random(),Math.random())}}Pe._V8PerformanceHack=new Pe(.5,.5,.5),Pe._BlackReadOnly=Pe.Black(),Object.defineProperties(Pe.prototype,{dimension:{value:[3]},rank:{value:1}});class St{constructor(e=0,t=0,i=0,s=1){this.r=e,this.g=t,this.b=i,this.a=s}asArray(){return[this.r,this.g,this.b,this.a]}toArray(e,t=0){return e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e[t+3]=this.a,this}fromArray(e,t=0){return this.r=e[t],this.g=e[t+1],this.b=e[t+2],this.a=e[t+3],this}equals(e){return e&&this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}add(e){return new St(this.r+e.r,this.g+e.g,this.b+e.b,this.a+e.a)}addToRef(e,t){return t.r=this.r+e.r,t.g=this.g+e.g,t.b=this.b+e.b,t.a=this.a+e.a,t}addInPlace(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this.a+=e.a,this}addInPlaceFromFloats(e,t,i,s){return this.r+=e,this.g+=t,this.b+=i,this.a+=s,this}subtract(e){return new St(this.r-e.r,this.g-e.g,this.b-e.b,this.a-e.a)}subtractToRef(e,t){return t.r=this.r-e.r,t.g=this.g-e.g,t.b=this.b-e.b,t.a=this.a-e.a,t}subtractInPlace(e){return this.r-=e.r,this.g-=e.g,this.b-=e.b,this.a-=e.a,this}subtractFromFloats(e,t,i,s){return new St(this.r-e,this.g-t,this.b-i,this.a-s)}subtractFromFloatsToRef(e,t,i,s,r){return r.r=this.r-e,r.g=this.g-t,r.b=this.b-i,r.a=this.a-s,r}scale(e){return new St(this.r*e,this.g*e,this.b*e,this.a*e)}scaleInPlace(e){return this.r*=e,this.g*=e,this.b*=e,this.a*=e,this}scaleToRef(e,t){return t.r=this.r*e,t.g=this.g*e,t.b=this.b*e,t.a=this.a*e,t}scaleAndAddToRef(e,t){return t.r+=this.r*e,t.g+=this.g*e,t.b+=this.b*e,t.a+=this.a*e,t}clampToRef(e=0,t=1,i){return i.r=Os(this.r,e,t),i.g=Os(this.g,e,t),i.b=Os(this.b,e,t),i.a=Os(this.a,e,t),i}multiply(e){return new St(this.r*e.r,this.g*e.g,this.b*e.b,this.a*e.a)}multiplyToRef(e,t){return t.r=this.r*e.r,t.g=this.g*e.g,t.b=this.b*e.b,t.a=this.a*e.a,t}multiplyInPlace(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this.a*=e.a,this}multiplyByFloats(e,t,i,s){return new St(this.r*e,this.g*t,this.b*i,this.a*s)}divide(e){throw new ReferenceError("Can not divide a color")}divideToRef(e,t){throw new ReferenceError("Can not divide a color")}divideInPlace(e){throw new ReferenceError("Can not divide a color")}minimizeInPlace(e){return this.r=Math.min(this.r,e.r),this.g=Math.min(this.g,e.g),this.b=Math.min(this.b,e.b),this.a=Math.min(this.a,e.a),this}maximizeInPlace(e){return this.r=Math.max(this.r,e.r),this.g=Math.max(this.g,e.g),this.b=Math.max(this.b,e.b),this.a=Math.max(this.a,e.a),this}minimizeInPlaceFromFloats(e,t,i,s){return this.r=Math.min(e,this.r),this.g=Math.min(t,this.g),this.b=Math.min(i,this.b),this.a=Math.min(s,this.a),this}maximizeInPlaceFromFloats(e,t,i,s){return this.r=Math.max(e,this.r),this.g=Math.max(t,this.g),this.b=Math.max(i,this.b),this.a=Math.max(s,this.a),this}floorToRef(e){throw new ReferenceError("Can not floor a color")}floor(){throw new ReferenceError("Can not floor a color")}fractToRef(e){throw new ReferenceError("Can not fract a color")}fract(){throw new ReferenceError("Can not fract a color")}negate(){throw new ReferenceError("Can not negate a color")}negateInPlace(){throw new ReferenceError("Can not negate a color")}negateToRef(e){throw new ReferenceError("Can not negate a color")}equalsWithEpsilon(e,t=Ii){return Lr(this.r,e.r,t)&&Lr(this.g,e.g,t)&&Lr(this.b,e.b,t)&&Lr(this.a,e.a,t)}equalsToFloats(e,t,i,s){return this.r===e&&this.g===t&&this.b===i&&this.a===s}toString(){return"{R: "+this.r+" G:"+this.g+" B:"+this.b+" A:"+this.a+"}"}getClassName(){return"Color4"}getHashCode(){let e=this.r*255|0;return e=e*397^(this.g*255|0),e=e*397^(this.b*255|0),e=e*397^(this.a*255|0),e}clone(){return new St().copyFrom(this)}copyFrom(e){return this.r=e.r,this.g=e.g,this.b=e.b,this.a=e.a,this}copyFromFloats(e,t,i,s){return this.r=e,this.g=t,this.b=i,this.a=s,this}set(e,t,i,s){return this.copyFromFloats(e,t,i,s)}setAll(e){return this.r=this.g=this.b=this.a=e,this}toHexString(e=!1){const t=Math.round(this.r*255),i=Math.round(this.g*255),s=Math.round(this.b*255);if(e)return"#"+zv(t)+zv(i)+zv(s);const r=Math.round(this.a*255);return"#"+zv(t)+zv(i)+zv(s)+zv(r)}fromHexString(e){return e.substring(0,1)!=="#"||e.length!==9&&e.length!==7?this:(this.r=parseInt(e.substring(1,3),16)/255,this.g=parseInt(e.substring(3,5),16)/255,this.b=parseInt(e.substring(5,7),16)/255,e.length===9&&(this.a=parseInt(e.substring(7,9),16)/255),this)}toLinearSpace(e=!1){const t=new St;return this.toLinearSpaceToRef(t,e),t}toLinearSpaceToRef(e,t=!1){return t?(e.r=fP(this.r),e.g=fP(this.g),e.b=fP(this.b)):(e.r=dP(this.r),e.g=dP(this.g),e.b=dP(this.b)),e.a=this.a,this}toGammaSpace(e=!1){const t=new St;return this.toGammaSpaceToRef(t,e),t}toGammaSpaceToRef(e,t=!1){return t?(e.r=mP(this.r),e.g=mP(this.g),e.b=mP(this.b)):(e.r=pP(this.r),e.g=pP(this.g),e.b=pP(this.b)),e.a=this.a,this}static FromHexString(e){return e.substring(0,1)!=="#"||e.length!==9&&e.length!==7?new St(0,0,0,0):new St(0,0,0,1).fromHexString(e)}static Lerp(e,t,i){return St.LerpToRef(e,t,i,new St)}static LerpToRef(e,t,i,s){return s.r=e.r+(t.r-e.r)*i,s.g=e.g+(t.g-e.g)*i,s.b=e.b+(t.b-e.b)*i,s.a=e.a+(t.a-e.a)*i,s}static Hermite(e,t,i,s,r){const n=r*r,o=r*n,l=2*o-3*n+1,c=-2*o+3*n,u=o-2*n+r,f=o-n,p=e.r*l+i.r*c+t.r*u+s.r*f,m=e.g*l+i.g*c+t.g*u+s.g*f,_=e.b*l+i.b*c+t.b*u+s.b*f,d=e.a*l+i.a*c+t.a*u+s.a*f;return new St(p,m,_,d)}static Hermite1stDerivative(e,t,i,s,r){const n=new St;return this.Hermite1stDerivativeToRef(e,t,i,s,r,n),n}static Hermite1stDerivativeToRef(e,t,i,s,r,n){const o=r*r;n.r=(o-r)*6*e.r+(3*o-4*r+1)*t.r+(-o+r)*6*i.r+(3*o-2*r)*s.r,n.g=(o-r)*6*e.g+(3*o-4*r+1)*t.g+(-o+r)*6*i.g+(3*o-2*r)*s.g,n.b=(o-r)*6*e.b+(3*o-4*r+1)*t.b+(-o+r)*6*i.b+(3*o-2*r)*s.b,n.a=(o-r)*6*e.a+(3*o-4*r+1)*t.a+(-o+r)*6*i.a+(3*o-2*r)*s.a}static FromColor3(e,t=1){return new St(e.r,e.g,e.b,t)}static FromArray(e,t=0){return new St(e[t],e[t+1],e[t+2],e[t+3])}static FromArrayToRef(e,t=0,i){i.r=e[t],i.g=e[t+1],i.b=e[t+2],i.a=e[t+3]}static FromInts(e,t,i,s){return new St(e/255,t/255,i/255,s/255)}static CheckColors4(e,t){if(e.length===t*3){const i=[];for(let s=0;s<e.length;s+=3){const r=s/3*4;i[r]=e[s],i[r+1]=e[s+1],i[r+2]=e[s+2],i[r+3]=1}return i}return e}}St._V8PerformanceHack=new St(.5,.5,.5,.5),Object.defineProperties(St.prototype,{dimension:{value:[4]},rank:{value:1}});class Sr{}Sr.Color3=V1(3,Pe.Black),Sr.Color4=V1(3,()=>new St(0,0,0,0)),ve("BABYLON.Color3",Pe),ve("BABYLON.Color4",St);const lhe=function(a,e,t,i={}){const s=a();ar&&ar.HasTags(e)&&ar.AddTagsTo(s,ar.GetTags(e,!0));const r=TX(s),n={};for(const o in r){const l=r[o],c=e[o],u=l.type;if(c!=null&&(o!=="uniqueId"||It.AllowLoadingUniqueId))switch(u){case 0:case 6:case 9:case 11:s[o]=c;break;case 1:i.cloneTexturesOnlyOnce&&n[c.uniqueId]?s[o]=n[c.uniqueId]:(s[o]=t||c.isRenderTarget?c:c.clone(),n[c.uniqueId]=s[o]);break;case 2:case 3:case 4:case 5:case 7:case 8:case 10:case 12:s[o]=t?c:c.clone();break}}return s};class It{static AppendSerializedAnimations(e,t){if(e.animations){t.animations=[];for(let i=0;i<e.animations.length;i++){const s=e.animations[i];t.animations.push(s.serialize())}}}static Serialize(e,t){t||(t={}),ar&&(t.tags=ar.GetTags(e));const i=TX(e);for(const s in i){const r=i[s],n=r.sourceName||s,o=r.type,l=e[s];if(l!=null&&(s!=="uniqueId"||It.AllowLoadingUniqueId))switch(o){case 0:t[n]=l;break;case 1:t[n]=l.serialize();break;case 2:t[n]=l.asArray();break;case 3:t[n]=l.serialize();break;case 4:t[n]=l.asArray();break;case 5:t[n]=l.asArray();break;case 6:t[n]=l.id;break;case 7:t[n]=l.serialize();break;case 8:t[n]=l.asArray();break;case 9:t[n]=l.serialize();break;case 10:t[n]=l.asArray();break;case 11:t[n]=l.id;break;case 12:t[n]=l.asArray();break}}return t}static ParseProperties(e,t,i,s){s||(s="");const r=TX(t);for(const n in r){const o=r[n],l=e[o.sourceName||n],c=o.type;if(l!=null&&(n!=="uniqueId"||It.AllowLoadingUniqueId)){const u=t;switch(c){case 0:u[n]=l;break;case 1:i&&(u[n]=It._TextureParser(l,i,s));break;case 2:u[n]=Pe.FromArray(l);break;case 3:u[n]=It._FresnelParametersParser(l);break;case 4:u[n]=Ue.FromArray(l);break;case 5:u[n]=P.FromArray(l);break;case 6:i&&(u[n]=i.getLastMeshById(l));break;case 7:u[n]=It._ColorCurvesParser(l);break;case 8:u[n]=St.FromArray(l);break;case 9:u[n]=It._ImageProcessingConfigurationParser(l);break;case 10:u[n]=Re.FromArray(l);break;case 11:i&&(u[n]=i.getCameraById(l));break;case 12:u[n]=me.FromArray(l);break}}}}static Parse(e,t,i,s=null){const r=e();return ar&&ar.AddTagsTo(r,t.tags),It.ParseProperties(t,r,i,s),r}static Clone(e,t,i={}){return lhe(e,t,!1,i)}static Instanciate(e,t){return lhe(e,t,!0)}}It.AllowLoadingUniqueId=!1,It._ImageProcessingConfigurationParser=a=>{throw as("ImageProcessingConfiguration")},It._FresnelParametersParser=a=>{throw as("FresnelParameters")},It._ColorCurvesParser=a=>{throw as("ColorCurves")},It._TextureParser=(a,e,t)=>{throw as("Texture")};function che(a){a.push("vCameraColorCurveNeutral","vCameraColorCurvePositive","vCameraColorCurveNegative")}class ho{constructor(){this._dirty=!0,this._tempColor=new St(0,0,0,0),this._globalCurve=new St(0,0,0,0),this._highlightsCurve=new St(0,0,0,0),this._midtonesCurve=new St(0,0,0,0),this._shadowsCurve=new St(0,0,0,0),this._positiveCurve=new St(0,0,0,0),this._negativeCurve=new St(0,0,0,0),this._globalHue=30,this._globalDensity=0,this._globalSaturation=0,this._globalExposure=0,this._highlightsHue=30,this._highlightsDensity=0,this._highlightsSaturation=0,this._highlightsExposure=0,this._midtonesHue=30,this._midtonesDensity=0,this._midtonesSaturation=0,this._midtonesExposure=0,this._shadowsHue=30,this._shadowsDensity=0,this._shadowsSaturation=0,this._shadowsExposure=0}get globalHue(){return this._globalHue}set globalHue(e){this._globalHue=e,this._dirty=!0}get globalDensity(){return this._globalDensity}set globalDensity(e){this._globalDensity=e,this._dirty=!0}get globalSaturation(){return this._globalSaturation}set globalSaturation(e){this._globalSaturation=e,this._dirty=!0}get globalExposure(){return this._globalExposure}set globalExposure(e){this._globalExposure=e,this._dirty=!0}get highlightsHue(){return this._highlightsHue}set highlightsHue(e){this._highlightsHue=e,this._dirty=!0}get highlightsDensity(){return this._highlightsDensity}set highlightsDensity(e){this._highlightsDensity=e,this._dirty=!0}get highlightsSaturation(){return this._highlightsSaturation}set highlightsSaturation(e){this._highlightsSaturation=e,this._dirty=!0}get highlightsExposure(){return this._highlightsExposure}set highlightsExposure(e){this._highlightsExposure=e,this._dirty=!0}get midtonesHue(){return this._midtonesHue}set midtonesHue(e){this._midtonesHue=e,this._dirty=!0}get midtonesDensity(){return this._midtonesDensity}set midtonesDensity(e){this._midtonesDensity=e,this._dirty=!0}get midtonesSaturation(){return this._midtonesSaturation}set midtonesSaturation(e){this._midtonesSaturation=e,this._dirty=!0}get midtonesExposure(){return this._midtonesExposure}set midtonesExposure(e){this._midtonesExposure=e,this._dirty=!0}get shadowsHue(){return this._shadowsHue}set shadowsHue(e){this._shadowsHue=e,this._dirty=!0}get shadowsDensity(){return this._shadowsDensity}set shadowsDensity(e){this._shadowsDensity=e,this._dirty=!0}get shadowsSaturation(){return this._shadowsSaturation}set shadowsSaturation(e){this._shadowsSaturation=e,this._dirty=!0}get shadowsExposure(){return this._shadowsExposure}set shadowsExposure(e){this._shadowsExposure=e,this._dirty=!0}getClassName(){return"ColorCurves"}static Bind(e,t,i="vCameraColorCurvePositive",s="vCameraColorCurveNeutral",r="vCameraColorCurveNegative"){e._dirty&&(e._dirty=!1,e._getColorGradingDataToRef(e._globalHue,e._globalDensity,e._globalSaturation,e._globalExposure,e._globalCurve),e._getColorGradingDataToRef(e._highlightsHue,e._highlightsDensity,e._highlightsSaturation,e._highlightsExposure,e._tempColor),e._tempColor.multiplyToRef(e._globalCurve,e._highlightsCurve),e._getColorGradingDataToRef(e._midtonesHue,e._midtonesDensity,e._midtonesSaturation,e._midtonesExposure,e._tempColor),e._tempColor.multiplyToRef(e._globalCurve,e._midtonesCurve),e._getColorGradingDataToRef(e._shadowsHue,e._shadowsDensity,e._shadowsSaturation,e._shadowsExposure,e._tempColor),e._tempColor.multiplyToRef(e._globalCurve,e._shadowsCurve),e._highlightsCurve.subtractToRef(e._midtonesCurve,e._positiveCurve),e._midtonesCurve.subtractToRef(e._shadowsCurve,e._negativeCurve)),t&&(t.setFloat4(i,e._positiveCurve.r,e._positiveCurve.g,e._positiveCurve.b,e._positiveCurve.a),t.setFloat4(s,e._midtonesCurve.r,e._midtonesCurve.g,e._midtonesCurve.b,e._midtonesCurve.a),t.setFloat4(r,e._negativeCurve.r,e._negativeCurve.g,e._negativeCurve.b,e._negativeCurve.a))}_getColorGradingDataToRef(e,t,i,s,r){e!=null&&(e=ho._Clamp(e,0,360),t=ho._Clamp(t,-100,100),i=ho._Clamp(i,-100,100),s=ho._Clamp(s,-100,100),t=ho._ApplyColorGradingSliderNonlinear(t),t*=.5,s=ho._ApplyColorGradingSliderNonlinear(s),t<0&&(t*=-1,e=(e+180)%360),ho._FromHSBToRef(e,t,50+.25*s,r),r.scaleToRef(2,r),r.a=1+.01*i)}static _ApplyColorGradingSliderNonlinear(e){e/=100;let t=Math.abs(e);return t=Math.pow(t,2),e<0&&(t*=-1),t*=100,t}static _FromHSBToRef(e,t,i,s){let r=ho._Clamp(e,0,360);const n=ho._Clamp(t/100,0,1),o=ho._Clamp(i/100,0,1);if(n===0)s.r=o,s.g=o,s.b=o;else{r/=60;const l=Math.floor(r),c=r-l,u=o*(1-n),f=o*(1-n*c),p=o*(1-n*(1-c));switch(l){case 0:s.r=o,s.g=p,s.b=u;break;case 1:s.r=f,s.g=o,s.b=u;break;case 2:s.r=u,s.g=o,s.b=p;break;case 3:s.r=u,s.g=f,s.b=o;break;case 4:s.r=p,s.g=u,s.b=o;break;default:s.r=o,s.g=u,s.b=f;break}}s.a=1}static _Clamp(e,t,i){return Math.min(Math.max(e,t),i)}clone(){return It.Clone(()=>new ho,this)}serialize(){return It.Serialize(this)}static Parse(e){return It.Parse(()=>new ho,e,null,null)}}ho.PrepareUniforms=che,F([G()],ho.prototype,"_globalHue",void 0),F([G()],ho.prototype,"_globalDensity",void 0),F([G()],ho.prototype,"_globalSaturation",void 0),F([G()],ho.prototype,"_globalExposure",void 0),F([G()],ho.prototype,"_highlightsHue",void 0),F([G()],ho.prototype,"_highlightsDensity",void 0),F([G()],ho.prototype,"_highlightsSaturation",void 0),F([G()],ho.prototype,"_highlightsExposure",void 0),F([G()],ho.prototype,"_midtonesHue",void 0),F([G()],ho.prototype,"_midtonesDensity",void 0),F([G()],ho.prototype,"_midtonesSaturation",void 0),F([G()],ho.prototype,"_midtonesExposure",void 0),It._ColorCurvesParser=ho.Parse;function uhe(a,e){e.EXPOSURE&&a.push("exposureLinear"),e.CONTRAST&&a.push("contrast"),e.COLORGRADING&&a.push("colorTransformSettings"),(e.VIGNETTE||e.DITHER)&&a.push("vInverseScreenSize"),e.VIGNETTE&&(a.push("vignetteSettings1"),a.push("vignetteSettings2")),e.COLORCURVES&&che(a),e.DITHER&&a.push("ditherIntensity")}function hhe(a,e){e.COLORGRADING&&a.push("txColorTransform")}class ws{constructor(){this.colorCurves=new ho,this._colorCurvesEnabled=!1,this._colorGradingEnabled=!1,this._colorGradingWithGreenDepth=!0,this._colorGradingBGR=!0,this._exposure=1,this._toneMappingEnabled=!1,this._toneMappingType=ws.TONEMAPPING_STANDARD,this._contrast=1,this.vignetteStretch=0,this.vignetteCenterX=0,this.vignetteCenterY=0,this.vignetteWeight=1.5,this.vignetteColor=new St(0,0,0,0),this.vignetteCameraFov=.5,this._vignetteBlendMode=ws.VIGNETTEMODE_MULTIPLY,this._vignetteEnabled=!1,this._ditheringEnabled=!1,this._ditheringIntensity=1/255,this._skipFinalColorClamp=!1,this._applyByPostProcess=!1,this._isEnabled=!0,this.onUpdateParameters=new xe}get colorCurvesEnabled(){return this._colorCurvesEnabled}set colorCurvesEnabled(e){this._colorCurvesEnabled!==e&&(this._colorCurvesEnabled=e,this._updateParameters())}get colorGradingTexture(){return this._colorGradingTexture}set colorGradingTexture(e){this._colorGradingTexture!==e&&(this._colorGradingTexture=e,this._updateParameters())}get colorGradingEnabled(){return this._colorGradingEnabled}set colorGradingEnabled(e){this._colorGradingEnabled!==e&&(this._colorGradingEnabled=e,this._updateParameters())}get colorGradingWithGreenDepth(){return this._colorGradingWithGreenDepth}set colorGradingWithGreenDepth(e){this._colorGradingWithGreenDepth!==e&&(this._colorGradingWithGreenDepth=e,this._updateParameters())}get colorGradingBGR(){return this._colorGradingBGR}set colorGradingBGR(e){this._colorGradingBGR!==e&&(this._colorGradingBGR=e,this._updateParameters())}get exposure(){return this._exposure}set exposure(e){this._exposure!==e&&(this._exposure=e,this._updateParameters())}get toneMappingEnabled(){return this._toneMappingEnabled}set toneMappingEnabled(e){this._toneMappingEnabled!==e&&(this._toneMappingEnabled=e,this._updateParameters())}get toneMappingType(){return this._toneMappingType}set toneMappingType(e){this._toneMappingType!==e&&(this._toneMappingType=e,this._updateParameters())}get contrast(){return this._contrast}set contrast(e){this._contrast!==e&&(this._contrast=e,this._updateParameters())}get vignetteCentreY(){return this.vignetteCenterY}set vignetteCentreY(e){this.vignetteCenterY=e}get vignetteCentreX(){return this.vignetteCenterX}set vignetteCentreX(e){this.vignetteCenterX=e}get vignetteBlendMode(){return this._vignetteBlendMode}set vignetteBlendMode(e){this._vignetteBlendMode!==e&&(this._vignetteBlendMode=e,this._updateParameters())}get vignetteEnabled(){return this._vignetteEnabled}set vignetteEnabled(e){this._vignetteEnabled!==e&&(this._vignetteEnabled=e,this._updateParameters())}get ditheringEnabled(){return this._ditheringEnabled}set ditheringEnabled(e){this._ditheringEnabled!==e&&(this._ditheringEnabled=e,this._updateParameters())}get ditheringIntensity(){return this._ditheringIntensity}set ditheringIntensity(e){this._ditheringIntensity!==e&&(this._ditheringIntensity=e,this._updateParameters())}get skipFinalColorClamp(){return this._skipFinalColorClamp}set skipFinalColorClamp(e){this._skipFinalColorClamp!==e&&(this._skipFinalColorClamp=e,this._updateParameters())}get applyByPostProcess(){return this._applyByPostProcess}set applyByPostProcess(e){this._applyByPostProcess!==e&&(this._applyByPostProcess=e,this._updateParameters())}get isEnabled(){return this._isEnabled}set isEnabled(e){this._isEnabled!==e&&(this._isEnabled=e,this._updateParameters())}_updateParameters(){this.onUpdateParameters.notifyObservers(this)}getClassName(){return"ImageProcessingConfiguration"}prepareDefines(e,t=!1){if(t!==this.applyByPostProcess||!this._isEnabled){e.VIGNETTE=!1,e.TONEMAPPING=0,e.CONTRAST=!1,e.EXPOSURE=!1,e.COLORCURVES=!1,e.COLORGRADING=!1,e.COLORGRADING3D=!1,e.DITHER=!1,e.IMAGEPROCESSING=!1,e.SKIPFINALCOLORCLAMP=this.skipFinalColorClamp,e.IMAGEPROCESSINGPOSTPROCESS=this.applyByPostProcess&&this._isEnabled;return}if(e.VIGNETTE=this.vignetteEnabled,e.VIGNETTEBLENDMODEMULTIPLY=this.vignetteBlendMode===ws._VIGNETTEMODE_MULTIPLY,e.VIGNETTEBLENDMODEOPAQUE=!e.VIGNETTEBLENDMODEMULTIPLY,!this._toneMappingEnabled)e.TONEMAPPING=0;else switch(this._toneMappingType){case ws.TONEMAPPING_KHR_PBR_NEUTRAL:e.TONEMAPPING=3;break;case ws.TONEMAPPING_ACES:e.TONEMAPPING=2;break;default:e.TONEMAPPING=1;break}e.CONTRAST=this.contrast!==1,e.EXPOSURE=this.exposure!==1,e.COLORCURVES=this.colorCurvesEnabled&&!!this.colorCurves,e.COLORGRADING=this.colorGradingEnabled&&!!this.colorGradingTexture,e.COLORGRADING?e.COLORGRADING3D=this.colorGradingTexture.is3D:e.COLORGRADING3D=!1,e.SAMPLER3DGREENDEPTH=this.colorGradingWithGreenDepth,e.SAMPLER3DBGRMAP=this.colorGradingBGR,e.DITHER=this._ditheringEnabled,e.IMAGEPROCESSINGPOSTPROCESS=this.applyByPostProcess,e.SKIPFINALCOLORCLAMP=this.skipFinalColorClamp,e.IMAGEPROCESSING=e.VIGNETTE||!!e.TONEMAPPING||e.CONTRAST||e.EXPOSURE||e.COLORCURVES||e.COLORGRADING||e.DITHER}isReady(){return!this.colorGradingEnabled||!this.colorGradingTexture||this.colorGradingTexture.isReady()}bind(e,t){if(this._colorCurvesEnabled&&this.colorCurves&&ho.Bind(this.colorCurves,e),this._vignetteEnabled||this._ditheringEnabled){const i=1/e.getEngine().getRenderWidth(),s=1/e.getEngine().getRenderHeight();if(e.setFloat2("vInverseScreenSize",i,s),this._ditheringEnabled&&e.setFloat("ditherIntensity",.5*this._ditheringIntensity),this._vignetteEnabled){const r=t??s/i;let n=Math.tan(this.vignetteCameraFov*.5),o=n*r;const l=Math.sqrt(o*n);o=MX(o,l,this.vignetteStretch),n=MX(n,l,this.vignetteStretch),e.setFloat4("vignetteSettings1",o,n,-o*this.vignetteCenterX,-n*this.vignetteCenterY);const c=-2*this.vignetteWeight;e.setFloat4("vignetteSettings2",this.vignetteColor.r,this.vignetteColor.g,this.vignetteColor.b,c)}}if(e.setFloat("exposureLinear",this.exposure),e.setFloat("contrast",this.contrast),this.colorGradingTexture){e.setTexture("txColorTransform",this.colorGradingTexture);const i=this.colorGradingTexture.getSize().height;e.setFloat4("colorTransformSettings",(i-1)/i,.5/i,i,this.colorGradingTexture.level)}}clone(){return It.Clone(()=>new ws,this)}serialize(){return It.Serialize(this)}static Parse(e){const t=It.Parse(()=>new ws,e,null,null);return e.vignetteCentreX!==void 0&&(t.vignetteCenterX=e.vignetteCentreX),e.vignetteCentreY!==void 0&&(t.vignetteCenterY=e.vignetteCentreY),t}static get VIGNETTEMODE_MULTIPLY(){return this._VIGNETTEMODE_MULTIPLY}static get VIGNETTEMODE_OPAQUE(){return this._VIGNETTEMODE_OPAQUE}}ws.TONEMAPPING_STANDARD=0,ws.TONEMAPPING_ACES=1,ws.TONEMAPPING_KHR_PBR_NEUTRAL=2,ws.PrepareUniforms=uhe,ws.PrepareSamplers=hhe,ws._VIGNETTEMODE_MULTIPLY=0,ws._VIGNETTEMODE_OPAQUE=1,F([nhe()],ws.prototype,"colorCurves",void 0),F([G()],ws.prototype,"_colorCurvesEnabled",void 0),F([Yi("colorGradingTexture")],ws.prototype,"_colorGradingTexture",void 0),F([G()],ws.prototype,"_colorGradingEnabled",void 0),F([G()],ws.prototype,"_colorGradingWithGreenDepth",void 0),F([G()],ws.prototype,"_colorGradingBGR",void 0),F([G()],ws.prototype,"_exposure",void 0),F([G()],ws.prototype,"_toneMappingEnabled",void 0),F([G()],ws.prototype,"_toneMappingType",void 0),F([G()],ws.prototype,"_contrast",void 0),F([G()],ws.prototype,"vignetteStretch",void 0),F([G()],ws.prototype,"vignetteCenterX",void 0),F([G()],ws.prototype,"vignetteCenterY",void 0),F([G()],ws.prototype,"vignetteWeight",void 0),F([hP()],ws.prototype,"vignetteColor",void 0),F([G()],ws.prototype,"vignetteCameraFov",void 0),F([G()],ws.prototype,"_vignetteBlendMode",void 0),F([G()],ws.prototype,"_vignetteEnabled",void 0),F([G()],ws.prototype,"_ditheringEnabled",void 0),F([G()],ws.prototype,"_ditheringIntensity",void 0),F([G()],ws.prototype,"_skipFinalColorClamp",void 0),F([G()],ws.prototype,"_applyByPostProcess",void 0),F([G()],ws.prototype,"_isEnabled",void 0),It._ImageProcessingConfigurationParser=ws.Parse,ve("BABYLON.ImageProcessingConfiguration",ws);class Ti{constructor(e,t,i,s,r=!1){this._valueCache={},this._engine=e,this._noUBO=!e.supportsUniformBuffers||r,this._dynamic=i,this._name=s??"no-name",this._data=t||[],this._uniformLocations={},this._uniformSizes={},this._uniformArraySizes={},this._uniformLocationPointer=0,this._needSync=!1,this._engine._features.trackUbosInFrame&&(this._buffers=[],this._bufferIndex=-1,this._createBufferOnWrite=!1,this._currentFrameId=0),this._noUBO?(this.updateMatrix3x3=this._updateMatrix3x3ForEffect,this.updateMatrix2x2=this._updateMatrix2x2ForEffect,this.updateFloat=this._updateFloatForEffect,this.updateFloat2=this._updateFloat2ForEffect,this.updateFloat3=this._updateFloat3ForEffect,this.updateFloat4=this._updateFloat4ForEffect,this.updateFloatArray=this._updateFloatArrayForEffect,this.updateArray=this._updateArrayForEffect,this.updateIntArray=this._updateIntArrayForEffect,this.updateUIntArray=this._updateUIntArrayForEffect,this.updateMatrix=this._updateMatrixForEffect,this.updateMatrices=this._updateMatricesForEffect,this.updateVector3=this._updateVector3ForEffect,this.updateVector4=this._updateVector4ForEffect,this.updateColor3=this._updateColor3ForEffect,this.updateColor4=this._updateColor4ForEffect,this.updateDirectColor4=this._updateDirectColor4ForEffect,this.updateInt=this._updateIntForEffect,this.updateInt2=this._updateInt2ForEffect,this.updateInt3=this._updateInt3ForEffect,this.updateInt4=this._updateInt4ForEffect,this.updateUInt=this._updateUIntForEffect,this.updateUInt2=this._updateUInt2ForEffect,this.updateUInt3=this._updateUInt3ForEffect,this.updateUInt4=this._updateUInt4ForEffect):(this._engine._uniformBuffers.push(this),this.updateMatrix3x3=this._updateMatrix3x3ForUniform,this.updateMatrix2x2=this._updateMatrix2x2ForUniform,this.updateFloat=this._updateFloatForUniform,this.updateFloat2=this._updateFloat2ForUniform,this.updateFloat3=this._updateFloat3ForUniform,this.updateFloat4=this._updateFloat4ForUniform,this.updateFloatArray=this._updateFloatArrayForUniform,this.updateArray=this._updateArrayForUniform,this.updateIntArray=this._updateIntArrayForUniform,this.updateUIntArray=this._updateUIntArrayForUniform,this.updateMatrix=this._updateMatrixForUniform,this.updateMatrices=this._updateMatricesForUniform,this.updateVector3=this._updateVector3ForUniform,this.updateVector4=this._updateVector4ForUniform,this.updateColor3=this._updateColor3ForUniform,this.updateColor4=this._updateColor4ForUniform,this.updateDirectColor4=this._updateDirectColor4ForUniform,this.updateInt=this._updateIntForUniform,this.updateInt2=this._updateInt2ForUniform,this.updateInt3=this._updateInt3ForUniform,this.updateInt4=this._updateInt4ForUniform,this.updateUInt=this._updateUIntForUniform,this.updateUInt2=this._updateUInt2ForUniform,this.updateUInt3=this._updateUInt3ForUniform,this.updateUInt4=this._updateUInt4ForUniform)}get useUbo(){return!this._noUBO}get isSync(){return!this._needSync}isDynamic(){return this._dynamic!==void 0}getData(){return this._bufferData}getBuffer(){return this._buffer}_fillAlignment(e){let t;if(e<=2?t=e:t=4,this._uniformLocationPointer%t!==0){const i=this._uniformLocationPointer;this._uniformLocationPointer+=t-this._uniformLocationPointer%t;const s=this._uniformLocationPointer-i;for(let r=0;r<s;r++)this._data.push(0)}}addUniform(e,t,i=0){if(this._noUBO||this._uniformLocations[e]!==void 0)return;let s;if(i>0){if(t instanceof Array)throw"addUniform should not be use with Array in UBO: "+e;if(this._fillAlignment(4),this._uniformArraySizes[e]={strideSize:t,arraySize:i},t==16)t=t*i;else{const n=(4-t)*i;t=t*i+n}s=[];for(let r=0;r<t;r++)s.push(0)}else{if(t instanceof Array)s=t,t=s.length;else{t=t,s=[];for(let r=0;r<t;r++)s.push(0)}this._fillAlignment(t)}this._uniformSizes[e]=t,this._uniformLocations[e]=this._uniformLocationPointer,this._uniformLocationPointer+=t;for(let r=0;r<t;r++)this._data.push(s[r]);this._needSync=!0}addMatrix(e,t){this.addUniform(e,Array.prototype.slice.call(t.asArray()))}addFloat2(e,t,i){const s=[t,i];this.addUniform(e,s)}addFloat3(e,t,i,s){const r=[t,i,s];this.addUniform(e,r)}addColor3(e,t){const i=[t.r,t.g,t.b];this.addUniform(e,i)}addColor4(e,t,i){const s=[t.r,t.g,t.b,i];this.addUniform(e,s)}addVector3(e,t){const i=[t.x,t.y,t.z];this.addUniform(e,i)}addMatrix3x3(e){this.addUniform(e,12)}addMatrix2x2(e){this.addUniform(e,8)}create(){this._noUBO||this._buffer||(this._fillAlignment(4),this._bufferData=new Float32Array(this._data),this._rebuild(),this._needSync=!0)}_getNames(){const e=[];let t=0;for(const i in this._uniformLocations)if(e.push(i),++t===10)break;return e.join(",")}_rebuild(){this._noUBO||!this._bufferData||(this._dynamic?this._buffer=this._engine.createDynamicUniformBuffer(this._bufferData,this._name+"_UniformList:"+this._getNames()):this._buffer=this._engine.createUniformBuffer(this._bufferData,this._name+"_UniformList:"+this._getNames()),this._engine._features.trackUbosInFrame&&(this._buffers.push([this._buffer,this._engine._features.checkUbosContentBeforeUpload?this._bufferData.slice():void 0]),this._bufferIndex=this._buffers.length-1,this._createBufferOnWrite=!1))}_rebuildAfterContextLost(){this._engine._features.trackUbosInFrame&&(this._buffers=[],this._currentFrameId=0),this._rebuild()}get _numBuffers(){return this._buffers.length}get _indexBuffer(){return this._bufferIndex}get name(){return this._name}get currentEffect(){return this._currentEffect}_buffersEqual(e,t){for(let i=0;i<e.length;++i)if(e[i]!==t[i])return!1;return!0}_copyBuffer(e,t){for(let i=0;i<e.length;++i)t[i]=e[i]}update(){if(!this._noUBO){if(this.bindUniformBuffer(),!this._buffer){this.create();return}if(!this._dynamic&&!this._needSync){this._createBufferOnWrite=this._engine._features.trackUbosInFrame;return}if(this._buffers&&this._buffers.length>1&&this._buffers[this._bufferIndex][1])if(this._buffersEqual(this._bufferData,this._buffers[this._bufferIndex][1])){this._needSync=!1,this._createBufferOnWrite=this._engine._features.trackUbosInFrame;return}else this._copyBuffer(this._bufferData,this._buffers[this._bufferIndex][1]);this._engine.updateUniformBuffer(this._buffer,this._bufferData),this._engine._features._collectUbosUpdatedInFrame&&(Ti._UpdatedUbosInFrame[this._name]||(Ti._UpdatedUbosInFrame[this._name]=0),Ti._UpdatedUbosInFrame[this._name]++),this._needSync=!1,this._createBufferOnWrite=this._engine._features.trackUbosInFrame}}_createNewBuffer(){this._bufferIndex+1<this._buffers.length?(this._bufferIndex++,this._buffer=this._buffers[this._bufferIndex][0],this._createBufferOnWrite=!1,this._needSync=!0):this._rebuild()}_checkNewFrame(){this._engine._features.trackUbosInFrame&&this._currentFrameId!==this._engine.frameId&&(this._currentFrameId=this._engine.frameId,this._createBufferOnWrite=!1,this._buffers&&this._buffers.length>0?(this._needSync=this._bufferIndex!==0,this._bufferIndex=0,this._buffer=this._buffers[this._bufferIndex][0]):this._bufferIndex=-1)}updateUniform(e,t,i){this._checkNewFrame();let s=this._uniformLocations[e];if(s===void 0){if(this._buffer){de.Error("Cannot add an uniform after UBO has been created. uniformName="+e);return}this.addUniform(e,i),s=this._uniformLocations[e]}if(this._buffer||this.create(),this._dynamic)for(let r=0;r<i;r++)this._bufferData[s+r]=t[r];else{let r=!1;for(let n=0;n<i;n++)(i===16&&!this._engine._features.uniformBufferHardCheckMatrix||this._bufferData[s+n]!==Math.fround(t[n]))&&(r=!0,this._createBufferOnWrite&&this._createNewBuffer(),this._bufferData[s+n]=t[n]);this._needSync=this._needSync||r}}updateUniformArray(e,t,i){this._checkNewFrame();const s=this._uniformLocations[e];if(s===void 0){de.Error("Cannot add an uniform Array dynamically. Please, add it using addUniform and make sure that uniform buffers are supported by the current engine.");return}this._buffer||this.create();const r=this._uniformArraySizes[e];if(this._dynamic)for(let n=0;n<i;n++)this._bufferData[s+n]=t[n];else{let n=!1,o=0,l=0;for(let c=0;c<i;c++)if(this._bufferData[s+l*4+o]!==Le.FloatRound(t[c])&&(n=!0,this._createBufferOnWrite&&this._createNewBuffer(),this._bufferData[s+l*4+o]=t[c]),o++,o===r.strideSize){for(;o<4;o++)this._bufferData[s+l*4+o]=0;o=0,l++}this._needSync=this._needSync||n}}_cacheMatrix(e,t){this._checkNewFrame();const i=this._valueCache[e],s=t.updateFlag;return i!==void 0&&i===s?!1:(this._valueCache[e]=s,!0)}_updateMatrix3x3ForUniform(e,t){for(let i=0;i<3;i++)Ti._TempBuffer[i*4]=t[i*3],Ti._TempBuffer[i*4+1]=t[i*3+1],Ti._TempBuffer[i*4+2]=t[i*3+2],Ti._TempBuffer[i*4+3]=0;this.updateUniform(e,Ti._TempBuffer,12)}_updateMatrix3x3ForEffect(e,t){this._currentEffect.setMatrix3x3(e,t)}_updateMatrix2x2ForEffect(e,t){this._currentEffect.setMatrix2x2(e,t)}_updateMatrix2x2ForUniform(e,t){for(let i=0;i<2;i++)Ti._TempBuffer[i*4]=t[i*2],Ti._TempBuffer[i*4+1]=t[i*2+1],Ti._TempBuffer[i*4+2]=0,Ti._TempBuffer[i*4+3]=0;this.updateUniform(e,Ti._TempBuffer,8)}_updateFloatForEffect(e,t){this._currentEffect.setFloat(e,t)}_updateFloatForUniform(e,t){Ti._TempBuffer[0]=t,this.updateUniform(e,Ti._TempBuffer,1)}_updateFloat2ForEffect(e,t,i,s=""){this._currentEffect.setFloat2(e+s,t,i)}_updateFloat2ForUniform(e,t,i){Ti._TempBuffer[0]=t,Ti._TempBuffer[1]=i,this.updateUniform(e,Ti._TempBuffer,2)}_updateFloat3ForEffect(e,t,i,s,r=""){this._currentEffect.setFloat3(e+r,t,i,s)}_updateFloat3ForUniform(e,t,i,s){Ti._TempBuffer[0]=t,Ti._TempBuffer[1]=i,Ti._TempBuffer[2]=s,this.updateUniform(e,Ti._TempBuffer,3)}_updateFloat4ForEffect(e,t,i,s,r,n=""){this._currentEffect.setFloat4(e+n,t,i,s,r)}_updateFloat4ForUniform(e,t,i,s,r){Ti._TempBuffer[0]=t,Ti._TempBuffer[1]=i,Ti._TempBuffer[2]=s,Ti._TempBuffer[3]=r,this.updateUniform(e,Ti._TempBuffer,4)}_updateFloatArrayForEffect(e,t){this._currentEffect.setFloatArray(e,t)}_updateFloatArrayForUniform(e,t){this.updateUniformArray(e,t,t.length)}_updateArrayForEffect(e,t){this._currentEffect.setArray(e,t)}_updateArrayForUniform(e,t){this.updateUniformArray(e,t,t.length)}_updateIntArrayForEffect(e,t){this._currentEffect.setIntArray(e,t)}_updateIntArrayForUniform(e,t){Ti._TempBufferInt32View.set(t),this.updateUniformArray(e,Ti._TempBuffer,t.length)}_updateUIntArrayForEffect(e,t){this._currentEffect.setUIntArray(e,t)}_updateUIntArrayForUniform(e,t){Ti._TempBufferUInt32View.set(t),this.updateUniformArray(e,Ti._TempBuffer,t.length)}_updateMatrixForEffect(e,t){this._currentEffect.setMatrix(e,t)}_updateMatrixForUniform(e,t){this._cacheMatrix(e,t)&&this.updateUniform(e,t.asArray(),16)}_updateMatricesForEffect(e,t){this._currentEffect.setMatrices(e,t)}_updateMatricesForUniform(e,t){this.updateUniform(e,t,t.length)}_updateVector3ForEffect(e,t){this._currentEffect.setVector3(e,t)}_updateVector3ForUniform(e,t){Ti._TempBuffer[0]=t.x,Ti._TempBuffer[1]=t.y,Ti._TempBuffer[2]=t.z,this.updateUniform(e,Ti._TempBuffer,3)}_updateVector4ForEffect(e,t){this._currentEffect.setVector4(e,t)}_updateVector4ForUniform(e,t){Ti._TempBuffer[0]=t.x,Ti._TempBuffer[1]=t.y,Ti._TempBuffer[2]=t.z,Ti._TempBuffer[3]=t.w,this.updateUniform(e,Ti._TempBuffer,4)}_updateColor3ForEffect(e,t,i=""){this._currentEffect.setColor3(e+i,t)}_updateColor3ForUniform(e,t){Ti._TempBuffer[0]=t.r,Ti._TempBuffer[1]=t.g,Ti._TempBuffer[2]=t.b,this.updateUniform(e,Ti._TempBuffer,3)}_updateColor4ForEffect(e,t,i,s=""){this._currentEffect.setColor4(e+s,t,i)}_updateDirectColor4ForEffect(e,t,i=""){this._currentEffect.setDirectColor4(e+i,t)}_updateColor4ForUniform(e,t,i){Ti._TempBuffer[0]=t.r,Ti._TempBuffer[1]=t.g,Ti._TempBuffer[2]=t.b,Ti._TempBuffer[3]=i,this.updateUniform(e,Ti._TempBuffer,4)}_updateDirectColor4ForUniform(e,t){Ti._TempBuffer[0]=t.r,Ti._TempBuffer[1]=t.g,Ti._TempBuffer[2]=t.b,Ti._TempBuffer[3]=t.a,this.updateUniform(e,Ti._TempBuffer,4)}_updateIntForEffect(e,t,i=""){this._currentEffect.setInt(e+i,t)}_updateIntForUniform(e,t){Ti._TempBufferInt32View[0]=t,this.updateUniform(e,Ti._TempBuffer,1)}_updateInt2ForEffect(e,t,i,s=""){this._currentEffect.setInt2(e+s,t,i)}_updateInt2ForUniform(e,t,i){Ti._TempBufferInt32View[0]=t,Ti._TempBufferInt32View[1]=i,this.updateUniform(e,Ti._TempBuffer,2)}_updateInt3ForEffect(e,t,i,s,r=""){this._currentEffect.setInt3(e+r,t,i,s)}_updateInt3ForUniform(e,t,i,s){Ti._TempBufferInt32View[0]=t,Ti._TempBufferInt32View[1]=i,Ti._TempBufferInt32View[2]=s,this.updateUniform(e,Ti._TempBuffer,3)}_updateInt4ForEffect(e,t,i,s,r,n=""){this._currentEffect.setInt4(e+n,t,i,s,r)}_updateInt4ForUniform(e,t,i,s,r){Ti._TempBufferInt32View[0]=t,Ti._TempBufferInt32View[1]=i,Ti._TempBufferInt32View[2]=s,Ti._TempBufferInt32View[3]=r,this.updateUniform(e,Ti._TempBuffer,4)}_updateUIntForEffect(e,t,i=""){this._currentEffect.setUInt(e+i,t)}_updateUIntForUniform(e,t){Ti._TempBufferUInt32View[0]=t,this.updateUniform(e,Ti._TempBuffer,1)}_updateUInt2ForEffect(e,t,i,s=""){this._currentEffect.setUInt2(e+s,t,i)}_updateUInt2ForUniform(e,t,i){Ti._TempBufferUInt32View[0]=t,Ti._TempBufferUInt32View[1]=i,this.updateUniform(e,Ti._TempBuffer,2)}_updateUInt3ForEffect(e,t,i,s,r=""){this._currentEffect.setUInt3(e+r,t,i,s)}_updateUInt3ForUniform(e,t,i,s){Ti._TempBufferUInt32View[0]=t,Ti._TempBufferUInt32View[1]=i,Ti._TempBufferUInt32View[2]=s,this.updateUniform(e,Ti._TempBuffer,3)}_updateUInt4ForEffect(e,t,i,s,r,n=""){this._currentEffect.setUInt4(e+n,t,i,s,r)}_updateUInt4ForUniform(e,t,i,s,r){Ti._TempBufferUInt32View[0]=t,Ti._TempBufferUInt32View[1]=i,Ti._TempBufferUInt32View[2]=s,Ti._TempBufferUInt32View[3]=r,this.updateUniform(e,Ti._TempBuffer,4)}setTexture(e,t){this._currentEffect.setTexture(e,t)}setTextureArray(e,t){this._currentEffect.setTextureArray(e,t)}bindTexture(e,t){this._currentEffect._bindTexture(e,t)}updateUniformDirectly(e,t){this.updateUniform(e,t,t.length),this.update()}bindToEffect(e,t){this._currentEffect=e,this._currentEffectName=t}bindUniformBuffer(){!this._noUBO&&this._buffer&&this._currentEffect&&this._currentEffect.bindUniformBuffer(this._buffer,this._currentEffectName)}unbindEffect(){this._currentEffect=void 0,this._currentEffectName=void 0}setDataBuffer(e){if(!this._buffers)return this._buffer===e;for(let t=0;t<this._buffers.length;++t)if(this._buffers[t][0]===e)return this._bufferIndex=t,this._buffer=e,this._createBufferOnWrite=!1,this._currentEffect=void 0,!0;return!1}dispose(){if(this._noUBO)return;const e=this._engine._uniformBuffers,t=e.indexOf(this);if(t!==-1&&(e[t]=e[e.length-1],e.pop()),this._engine._features.trackUbosInFrame&&this._buffers)for(let i=0;i<this._buffers.length;++i){const s=this._buffers[i][0];this._engine._releaseBuffer(s)}else this._buffer&&this._engine._releaseBuffer(this._buffer)&&(this._buffer=null)}}Ti._UpdatedUbosInFrame={},Ti._MAX_UNIFORM_SIZE=256,Ti._TempBuffer=new Float32Array(Ti._MAX_UNIFORM_SIZE),Ti._TempBufferInt32View=new Int32Array(Ti._TempBuffer.buffer),Ti._TempBufferUInt32View=new Uint32Array(Ti._TempBuffer.buffer);class Fv{get underlyingResource(){return null}constructor(){this.references=0,this.capacity=0,this.is32Bits=!1,this.uniqueId=Fv._Counter++}}Fv._Counter=0;function vOe(a,e,t,i){switch(e){case 5120:{let s=a.getInt8(t);return i&&(s=Math.max(s/127,-1)),s}case 5121:{let s=a.getUint8(t);return i&&(s=s/255),s}case 5122:{let s=a.getInt16(t,!0);return i&&(s=Math.max(s/32767,-1)),s}case 5123:{let s=a.getUint16(t,!0);return i&&(s=s/65535),s}case 5124:return a.getInt32(t,!0);case 5125:return a.getUint32(t,!0);case 5126:return a.getFloat32(t,!0);default:throw new Error(`Invalid component type ${e}`)}}function AOe(a,e,t,i,s){switch(e){case 5120:{i&&(s=Math.round(s*127)),a.setInt8(t,s);break}case 5121:{i&&(s=Math.round(s*255)),a.setUint8(t,s);break}case 5122:{i&&(s=Math.round(s*32767)),a.setInt16(t,s,!0);break}case 5123:{i&&(s=Math.round(s*65535)),a.setUint16(t,s,!0);break}case 5124:{a.setInt32(t,s,!0);break}case 5125:{a.setUint32(t,s,!0);break}case 5126:{a.setFloat32(t,s,!0);break}default:throw new Error(`Invalid component type ${e}`)}}function kv(a){switch(a){case 5120:case 5121:return 1;case 5122:case 5123:return 2;case 5124:case 5125:case 5126:return 4;default:throw new Error(`Invalid type '${a}'`)}}function IX(a){switch(a){case 5120:return Int8Array;case 5121:return Uint8Array;case 5122:return Int16Array;case 5123:return Uint16Array;case 5124:return Int32Array;case 5125:return Uint32Array;case 5126:return Float32Array;default:throw new Error(`Invalid component type '${a}'`)}}function Uv(a,e,t,i,s,r,n,o){const l=new Array(i),c=new Array(i);if(a instanceof Array){let u=e/4;const f=t/4;for(let p=0;p<r;p+=i){for(let m=0;m<i;m++)l[m]=c[m]=a[u+m];o(c,p);for(let m=0;m<i;m++)l[m]!==c[m]&&(a[u+m]=c[m]);u+=f}}else{const u=ArrayBuffer.isView(a)?new DataView(a.buffer,a.byteOffset,a.byteLength):new DataView(a),f=kv(s);for(let p=0;p<r;p+=i){for(let m=0,_=e;m<i;m++,_+=f)l[m]=c[m]=vOe(u,s,_,n);o(c,p);for(let m=0,_=e;m<i;m++,_+=f)l[m]!==c[m]&&AOe(u,s,_,n,c[m]);e+=t}}}function PX(a,e,t,i,s,r,n,o){const l=e*kv(t),c=n*e;if(t!==5126||s!==l){const u=new Float32Array(c);return Uv(a,i,s,e,t,c,r,(f,p)=>{for(let m=0;m<e;m++)u[p+m]=f[m]}),u}if(!(a instanceof Array||a instanceof Float32Array)||i!==0||a.length!==c)if(a instanceof Array){const u=i/4;return a.slice(u,u+c)}else{if(a instanceof ArrayBuffer)return new Float32Array(a,i,c);{const u=a.byteOffset+i;return u&3&&(de.Warn("Float array must be aligned to 4-bytes border"),o=!0),o?new Float32Array(a.buffer.slice(u,u+c*Float32Array.BYTES_PER_ELEMENT)):new Float32Array(a.buffer,u,c)}}return o?a.slice():a}function OX(a,e,t,i,s,r,n,o){const l=kv(t),c=IX(t),u=n*e;if(Array.isArray(a)){if(i&3||s&3)throw new Error("byteOffset and byteStride must be a multiple of 4 for number[] data.");const d=i/4,h=s/4;if(d+(n-1)*h+e>a.length)throw new Error("Last accessed index is out of bounds.");if(h<e)throw new Error("Data stride cannot be smaller than the component size.");if(h!==e){const A=new c(u);return Uv(a,i,s,e,t,u,r,(S,E)=>{for(let b=0;b<e;b++)A[E+b]=S[b]}),A}return new c(a.slice(d,d+u))}let f,p=i;if(a instanceof ArrayBuffer?f=a:(f=a.buffer,p+=a.byteOffset),p+(n-1)*s+e*l>f.byteLength)throw new Error("Last accessed byte is out of bounds.");const _=e*l;if(s<_)throw new Error("Byte stride cannot be smaller than the component's byte size.");if(s!==_){const d=new c(u);return Uv(f,p,s,e,t,u,r,(h,x)=>{for(let A=0;A<e;A++)d[x+A]=h[A]}),d}return l!==1&&p&l-1&&(de.Warn("Array must be aligned to border of element size. Data will be copied."),o=!0),o?new c(f.slice(p,p+u*l)):new c(f,p,u)}function dhe(a,e,t,i,s,r,n,o){const l=e*kv(t),c=n*e;if(o.length!==c)throw new Error("Output length is not valid");if(t!==5126||s!==l){Uv(a,i,s,e,t,c,r,(u,f)=>{for(let p=0;p<e;p++)o[f+p]=u[p]});return}if(a instanceof Array){const u=i/4;o.set(a,u)}else if(a instanceof ArrayBuffer){const u=new Float32Array(a,i,c);o.set(u)}else{const u=a.byteOffset+i;if(u&3){de.Warn("Float array must be aligned to 4-bytes border"),o.set(new Float32Array(a.buffer.slice(u,u+c*Float32Array.BYTES_PER_ELEMENT)));return}const f=new Float32Array(a.buffer,u,c);o.set(f)}}function RX(a,e,t=0,i=0){if(Array.isArray(a)){for(let s=0;s<e;s++)if(a[t+s]-i>65535)return!0;return!1}return a.BYTES_PER_ELEMENT===4}function COe(a,e){let t=e*a.BYTES_PER_ELEMENT;if(!(t&3))return new a(e);t=t+3&-4;const i=new ArrayBuffer(t);return new a(i,0,e)}class fl{get isDisposed(){return this._isDisposed}constructor(e,t,i,s=0,r=!1,n=!1,o=!1,l,c){this._isAlreadyOwned=!1,this._isDisposed=!1,e&&e.getScene?this._engine=e.getScene().getEngine():this._engine=e,this._updatable=i,this._instanced=n,this._divisor=l||1,this._label=c,t instanceof Fv?(this._data=null,this._buffer=t):(this._data=t,this._buffer=null),this.byteStride=o?s:s*Float32Array.BYTES_PER_ELEMENT,r||this.create()}createVertexBuffer(e,t,i,s,r,n=!1,o){const l=n?t:t*Float32Array.BYTES_PER_ELEMENT,c=s?n?s:s*Float32Array.BYTES_PER_ELEMENT:this.byteStride;return new q(this._engine,this,e,this._updatable,!0,c,r===void 0?this._instanced:r,l,i,void 0,void 0,!0,this._divisor||o)}isUpdatable(){return this._updatable}getData(){return this._data}getBuffer(){return this._buffer}getStrideSize(){return this.byteStride/Float32Array.BYTES_PER_ELEMENT}create(e=null){!e&&this._buffer||(e=e||this._data,e&&(this._buffer?this._updatable&&(this._engine.updateDynamicVertexBuffer(this._buffer,e),this._data=e):this._updatable?(this._buffer=this._engine.createDynamicVertexBuffer(e,this._label),this._data=e):this._buffer=this._engine.createVertexBuffer(e,void 0,this._label)))}_rebuild(){if(this._data)this._buffer=null,this.create(this._data);else{if(!this._buffer)return;if(this._buffer.capacity>0){this._updatable?this._buffer=this._engine.createDynamicVertexBuffer(this._buffer.capacity,this._label):this._buffer=this._engine.createVertexBuffer(this._buffer.capacity,void 0,this._label);return}de.Warn(`Missing data for buffer "${this._label}" ${this._buffer?"(uniqueId: "+this._buffer.uniqueId+")":""}. Buffer reconstruction failed.`),this._buffer=null}}update(e){this.create(e)}updateDirectly(e,t,i,s=!1){this._buffer&&this._updatable&&(this._engine.updateDynamicVertexBuffer(this._buffer,e,s?t:t*Float32Array.BYTES_PER_ELEMENT,i?i*this.byteStride:void 0),t===0&&i===void 0?this._data=e:this._data=null)}_increaseReferences(){if(this._buffer){if(!this._isAlreadyOwned){this._isAlreadyOwned=!0;return}this._buffer.references++}}dispose(){this._buffer&&this._engine._releaseBuffer(this._buffer)&&(this._isDisposed=!0,this._data=null,this._buffer=null)}}class q{get isDisposed(){return this._isDisposed}get instanceDivisor(){return this._instanceDivisor}set instanceDivisor(e){const t=e!=0;this._instanceDivisor=e,t!==this._instanced&&(this._instanced=t,this._computeHashCode())}get _maxVerticesCount(){const e=this.getData();return e?Array.isArray(e)?e.length/(this.byteStride/4)-this.byteOffset/4:(e.byteLength-this.byteOffset)/this.byteStride:0}constructor(e,t,i,s,r,n,o,l,c,u,f=!1,p=!1,m=1,_=!1){this._isDisposed=!1;let d=!1;if(this.engine=e,typeof s=="object"&&s!==null?(d=s.updatable??!1,r=s.postponeInternalCreation,n=s.stride,o=s.instanced,l=s.offset,c=s.size,u=s.type,f=s.normalized??!1,p=s.useBytes??!1,m=s.divisor??1,_=s.takeBufferOwnership??!1,this._label=s.label):d=!!s,t instanceof fl?(this._buffer=t,this._ownsBuffer=_):(this._buffer=new fl(e,t,d,n,r,o,p,m,this._label),this._ownsBuffer=!0),this.uniqueId=q._Counter++,this._kind=i,u===void 0){const x=this.getData();this.type=x?q.GetDataType(x):q.FLOAT}else this.type=u;const h=kv(this.type);p?(this._size=c||(n?n/h:q.DeduceStride(i)),this.byteStride=n||this._buffer.byteStride||this._size*h,this.byteOffset=l||0):(this._size=c||n||q.DeduceStride(i),this.byteStride=n?n*h:this._buffer.byteStride||this._size*h,this.byteOffset=(l||0)*h),this.normalized=f,this._instanced=o!==void 0?o:!1,this._instanceDivisor=o?m:0,this._alignBuffer(),this._computeHashCode()}_computeHashCode(){this.hashCode=(this.type-5120<<0)+((this.normalized?1:0)<<3)+(this._size<<4)+((this._instanced?1:0)<<6)+(this.byteStride<<12)}_rebuild(){var e;(e=this._buffer)==null||e._rebuild()}getKind(){return this._kind}isUpdatable(){return this._buffer.isUpdatable()}getData(){return this._buffer.getData()}getFloatData(e,t){const i=this.getData();return i?PX(i,this._size,this.type,this.byteOffset,this.byteStride,this.normalized,e,t):null}getBuffer(){return this._buffer.getBuffer()}getWrapperBuffer(){return this._buffer}getStrideSize(){return this.byteStride/kv(this.type)}getOffset(){return this.byteOffset/kv(this.type)}getSize(e=!1){return e?this._size*kv(this.type):this._size}getIsInstanced(){return this._instanced}getInstanceDivisor(){return this._instanceDivisor}create(e){this._buffer.create(e),this._alignBuffer()}update(e){this._buffer.update(e),this._alignBuffer()}updateDirectly(e,t,i=!1){this._buffer.updateDirectly(e,t,void 0,i),this._alignBuffer()}dispose(){this._ownsBuffer&&this._buffer.dispose(),this._isDisposed=!0}forEach(e,t){Uv(this._buffer.getData(),this.byteOffset,this.byteStride,this._size,this.type,e,this.normalized,(i,s)=>{for(let r=0;r<this._size;r++)t(i[r],s+r)})}_alignBuffer(){}static DeduceStride(e){switch(e){case q.UVKind:case q.UV2Kind:case q.UV3Kind:case q.UV4Kind:case q.UV5Kind:case q.UV6Kind:return 2;case q.NormalKind:case q.PositionKind:return 3;case q.ColorKind:case q.ColorInstanceKind:case q.MatricesIndicesKind:case q.MatricesIndicesExtraKind:case q.MatricesWeightsKind:case q.MatricesWeightsExtraKind:case q.TangentKind:return 4;default:throw new Error("Invalid kind '"+e+"'")}}static GetDataType(e){return e instanceof Int8Array?q.BYTE:e instanceof Uint8Array?q.UNSIGNED_BYTE:e instanceof Int16Array?q.SHORT:e instanceof Uint16Array?q.UNSIGNED_SHORT:e instanceof Int32Array?q.INT:e instanceof Uint32Array?q.UNSIGNED_INT:q.FLOAT}static GetTypeByteLength(e){return kv(e)}static ForEach(e,t,i,s,r,n,o,l){Uv(e,t,i,s,r,n,o,(c,u)=>{for(let f=0;f<s;f++)l(c[f],u+f)})}static GetFloatData(e,t,i,s,r,n,o,l){return PX(e,t,i,s,r,n,o,l)}}q._Counter=0,q.BYTE=5120,q.UNSIGNED_BYTE=5121,q.SHORT=5122,q.UNSIGNED_SHORT=5123,q.INT=5124,q.UNSIGNED_INT=5125,q.FLOAT=5126,q.PositionKind="position",q.NormalKind="normal",q.TangentKind="tangent",q.UVKind="uv",q.UV2Kind="uv2",q.UV3Kind="uv3",q.UV4Kind="uv4",q.UV5Kind="uv5",q.UV6Kind="uv6",q.ColorKind="color",q.ColorInstanceKind="instanceColor",q.MatricesIndicesKind="matricesIndices",q.MatricesWeightsKind="matricesWeights",q.MatricesIndicesExtraKind="matricesIndicesExtra",q.MatricesWeightsExtraKind="matricesWeightsExtra";class Kl{constructor(){this.hit=!1,this.distance=0,this.pickedPoint=null,this.pickedMesh=null,this.bu=0,this.bv=0,this.faceId=-1,this.subMeshFaceId=-1,this.subMeshId=0,this.pickedSprite=null,this.thinInstanceIndex=-1,this.ray=null,this.originMesh=null,this.aimTransform=null,this.gripTransform=null}getNormal(e=!1,t=!0){if(!this.pickedMesh||t&&!this.pickedMesh.isVerticesDataPresent(q.NormalKind))return null;let i=this.pickedMesh.getIndices();(i==null?void 0:i.length)===0&&(i=null);let s;const r=ae.Vector3[0],n=ae.Vector3[1],o=ae.Vector3[2];if(t){const c=this.pickedMesh.getVerticesData(q.NormalKind);let u=i?P.FromArrayToRef(c,i[this.faceId*3]*3,r):r.copyFromFloats(c[this.faceId*3*3],c[this.faceId*3*3+1],c[this.faceId*3*3+2]),f=i?P.FromArrayToRef(c,i[this.faceId*3+1]*3,n):n.copyFromFloats(c[(this.faceId*3+1)*3],c[(this.faceId*3+1)*3+1],c[(this.faceId*3+1)*3+2]),p=i?P.FromArrayToRef(c,i[this.faceId*3+2]*3,o):o.copyFromFloats(c[(this.faceId*3+2)*3],c[(this.faceId*3+2)*3+1],c[(this.faceId*3+2)*3+2]);u=u.scale(this.bu),f=f.scale(this.bv),p=p.scale(1-this.bu-this.bv),s=new P(u.x+f.x+p.x,u.y+f.y+p.y,u.z+f.z+p.z)}else{const c=this.pickedMesh.getVerticesData(q.PositionKind),u=i?P.FromArrayToRef(c,i[this.faceId*3]*3,r):r.copyFromFloats(c[this.faceId*3*3],c[this.faceId*3*3+1],c[this.faceId*3*3+2]),f=i?P.FromArrayToRef(c,i[this.faceId*3+1]*3,n):n.copyFromFloats(c[(this.faceId*3+1)*3],c[(this.faceId*3+1)*3+1],c[(this.faceId*3+1)*3+2]),p=i?P.FromArrayToRef(c,i[this.faceId*3+2]*3,o):o.copyFromFloats(c[(this.faceId*3+2)*3],c[(this.faceId*3+2)*3+1],c[(this.faceId*3+2)*3+2]),m=u.subtract(f),_=p.subtract(f);s=P.Cross(m,_)}const l=(c,u)=>{if(this.thinInstanceIndex!==-1){const p=c.thinInstanceGetWorldMatrices()[this.thinInstanceIndex];p&&P.TransformNormalToRef(u,p,u)}let f=c.getWorldMatrix();c.nonUniformScaling&&(ae.Matrix[0].copyFrom(f),f=ae.Matrix[0],f.setTranslationFromFloats(0,0,0),f.invert(),f.transposeToRef(ae.Matrix[1]),f=ae.Matrix[1]),P.TransformNormalToRef(u,f,u)};if(e&&l(this.pickedMesh,s),this.ray){const c=ae.Vector3[0].copyFrom(s);e||l(this.pickedMesh,c),P.Dot(c,this.ray.direction)>0&&s.negateInPlace()}return s.normalize(),s}getTextureCoordinates(e=q.UVKind){if(!this.pickedMesh||!this.pickedMesh.isVerticesDataPresent(e))return null;const t=this.pickedMesh.getIndices();if(!t)return null;const i=this.pickedMesh.getVerticesData(e);if(!i)return null;let s=Ue.FromArray(i,t[this.faceId*3]*2),r=Ue.FromArray(i,t[this.faceId*3+1]*2),n=Ue.FromArray(i,t[this.faceId*3+2]*2);return s=s.scale(this.bu),r=r.scale(this.bv),n=n.scale(1-this.bu-this.bv),new Ue(s.x+r.x+n.x,s.y+r.y+n.y)}}class Qa{constructor(e,t,i,s,r,n){this.source=e,this.pointerX=t,this.pointerY=i,this.meshUnderPointer=s,this.sourceEvent=r,this.additionalData=n}static CreateNew(e,t,i){const s=e.getScene();return new Qa(e,s.pointerX,s.pointerY,s.meshUnderPointer||e,t,i)}static CreateNewFromSprite(e,t,i,s){return new Qa(e,t.pointerX,t.pointerY,t.meshUnderPointer,i,s)}static CreateNewFromScene(e,t){return new Qa(null,e.pointerX,e.pointerY,e.meshUnderPointer,t)}static CreateNewFromPrimitive(e,t,i,s){return new Qa(e,t.x,t.y,null,i,s)}}class Aw{constructor(e){this._vertexBuffers={},this.onBeforeRenderObservable=new xe,this._scene=e}_prepareBuffers(){if(this._vertexBuffers[q.PositionKind])return;const e=[];e.push(1,1),e.push(-1,1),e.push(-1,-1),e.push(1,-1),this._vertexBuffers[q.PositionKind]=new q(this._scene.getEngine(),e,q.PositionKind,!1,!1,2),this._buildIndexBuffer()}_buildIndexBuffer(){const e=[];e.push(0),e.push(1),e.push(2),e.push(0),e.push(2),e.push(3),this._indexBuffer=this._scene.getEngine().createIndexBuffer(e)}_rebuild(){const e=this._vertexBuffers[q.PositionKind];e&&(e._rebuild(),this._buildIndexBuffer())}_prepareFrame(e=null,t=null){const i=this._scene.activeCamera;return!i||(t=t||i._postProcesses.filter(s=>s!=null),!t||t.length===0||!this._scene.postProcessesEnabled)?!1:(t[0].activate(i,e,t!=null),!0)}directRender(e,t=null,i=!1,s=0,r=0,n=!1){var l;const o=this._scene.getEngine();for(let c=0;c<e.length;c++){c<e.length-1?e[c+1].activate(this._scene.activeCamera||this._scene,t==null?void 0:t.texture):(t?o.bindFramebuffer(t,s,void 0,void 0,i,r):n||o.restoreDefaultFramebuffer(),(l=o._debugInsertMarker)==null||l.call(o,`post process ${e[c].name} output`));const u=e[c],f=u.apply();f&&(u.onBeforeRenderObservable.notifyObservers(f),this._prepareBuffers(),o.bindBuffers(this._vertexBuffers,this._indexBuffer,f),o.drawElementsType(0,0,6),u.onAfterRenderObservable.notifyObservers(f))}o.setDepthBuffer(!0),o.setDepthWrite(!0)}_finalizeFrame(e,t,i,s,r=!1){var l;const n=this._scene.activeCamera;if(!n||(this.onBeforeRenderObservable.notifyObservers(this),s=s||n._postProcesses.filter(c=>c!=null),s.length===0||!this._scene.postProcessesEnabled))return;const o=this._scene.getEngine();for(let c=0,u=s.length;c<u;c++){const f=s[c];if(c<u-1?f._outputTexture=s[c+1].activate(n,t==null?void 0:t.texture):(t?(o.bindFramebuffer(t,i,void 0,void 0,r),f._outputTexture=t):(o.restoreDefaultFramebuffer(),f._outputTexture=null),(l=o._debugInsertMarker)==null||l.call(o,`post process ${s[c].name} output`)),e)break;const p=f.apply();p&&(f.onBeforeRenderObservable.notifyObservers(p),this._prepareBuffers(),o.bindBuffers(this._vertexBuffers,this._indexBuffer,p),o.drawElementsType(0,0,6),f.onAfterRenderObservable.notifyObservers(p))}o.setDepthBuffer(!0),o.setDepthWrite(!0),o.setAlphaMode(0)}dispose(){const e=this._vertexBuffers[q.PositionKind];e&&(e.dispose(),this._vertexBuffers[q.PositionKind]=null),this._indexBuffer&&(this._scene.getEngine()._releaseBuffer(this._indexBuffer),this._indexBuffer=null)}}class X6{set opaqueSortCompareFn(e){e?this._opaqueSortCompareFn=e:this._opaqueSortCompareFn=X6.PainterSortCompare,this._renderOpaque=this._renderOpaqueSorted}set alphaTestSortCompareFn(e){e?this._alphaTestSortCompareFn=e:this._alphaTestSortCompareFn=X6.PainterSortCompare,this._renderAlphaTest=this._renderAlphaTestSorted}set transparentSortCompareFn(e){e?this._transparentSortCompareFn=e:this._transparentSortCompareFn=X6.defaultTransparentSortCompare,this._renderTransparent=this._renderTransparentSorted}constructor(e,t,i=null,s=null,r=null){this.index=e,this._opaqueSubMeshes=new dl(256),this._transparentSubMeshes=new dl(256),this._alphaTestSubMeshes=new dl(256),this._depthOnlySubMeshes=new dl(256),this._particleSystems=new dl(256),this._spriteManagers=new dl(256),this._empty=!0,this._edgesRenderers=new _y(16),this._scene=t,this.opaqueSortCompareFn=i,this.alphaTestSortCompareFn=s,this.transparentSortCompareFn=r}render(e,t,i,s){if(e){e(this._opaqueSubMeshes,this._alphaTestSubMeshes,this._transparentSubMeshes,this._depthOnlySubMeshes);return}const r=this._scene.getEngine();this._depthOnlySubMeshes.length!==0&&(r.setColorWrite(!1),this._renderAlphaTest(this._depthOnlySubMeshes),r.setColorWrite(!0)),this._opaqueSubMeshes.length!==0&&this._renderOpaque(this._opaqueSubMeshes),this._alphaTestSubMeshes.length!==0&&this._renderAlphaTest(this._alphaTestSubMeshes);const n=r.getStencilBuffer();if(r.setStencilBuffer(!1),t&&this._renderSprites(),i&&this._renderParticles(s),this.onBeforeTransparentRendering&&this.onBeforeTransparentRendering(),this._transparentSubMeshes.length!==0||this._scene.useOrderIndependentTransparency){if(r.setStencilBuffer(n),this._scene.useOrderIndependentTransparency){const o=this._scene.depthPeelingRenderer.render(this._transparentSubMeshes);o.length&&this._renderTransparent(o)}else this._renderTransparent(this._transparentSubMeshes);r.setAlphaMode(0)}if(r.setStencilBuffer(!1),this._edgesRenderers.length){for(let o=0;o<this._edgesRenderers.length;o++)this._edgesRenderers.data[o].render();r.setAlphaMode(0)}r.setStencilBuffer(n)}_renderOpaqueSorted(e){X6._RenderSorted(e,this._opaqueSortCompareFn,this._scene.activeCamera,!1)}_renderAlphaTestSorted(e){X6._RenderSorted(e,this._alphaTestSortCompareFn,this._scene.activeCamera,!1)}_renderTransparentSorted(e){X6._RenderSorted(e,this._transparentSortCompareFn,this._scene.activeCamera,!0)}static _RenderSorted(e,t,i,s){let r=0,n;const o=i?i.globalPosition:X6._ZeroVector;if(s)for(;r<e.length;r++)n=e.data[r],n._alphaIndex=n.getMesh().alphaIndex,n._distanceToCamera=P.Distance(n.getBoundingInfo().boundingSphere.centerWorld,o);const l=e.length===e.data.length?e.data:e.data.slice(0,e.length);t&&l.sort(t);const c=l[0].getMesh().getScene();for(r=0;r<l.length;r++)if(n=l[r],!(c._activeMeshesFrozenButKeepClipping&&!n.isInFrustum(c._frustumPlanes))){if(s){const u=n.getMaterial();if(u&&u.needDepthPrePass){const f=u.getScene().getEngine();f.setColorWrite(!1),f.setAlphaMode(0),n.render(!1),f.setColorWrite(!0)}}n.render(s)}}static defaultTransparentSortCompare(e,t){return e._alphaIndex>t._alphaIndex?1:e._alphaIndex<t._alphaIndex?-1:X6.backToFrontSortCompare(e,t)}static backToFrontSortCompare(e,t){return e._distanceToCamera<t._distanceToCamera?1:e._distanceToCamera>t._distanceToCamera?-1:0}static frontToBackSortCompare(e,t){return e._distanceToCamera<t._distanceToCamera?-1:e._distanceToCamera>t._distanceToCamera?1:0}static PainterSortCompare(e,t){const i=e.getMesh(),s=t.getMesh();return i.material&&s.material?i.material.uniqueId-s.material.uniqueId:i.uniqueId-s.uniqueId}prepare(){this._opaqueSubMeshes.reset(),this._transparentSubMeshes.reset(),this._alphaTestSubMeshes.reset(),this._depthOnlySubMeshes.reset(),this._particleSystems.reset(),this.prepareSprites(),this._edgesRenderers.reset(),this._empty=!0}prepareSprites(){this._spriteManagers.reset()}dispose(){this._opaqueSubMeshes.dispose(),this._transparentSubMeshes.dispose(),this._alphaTestSubMeshes.dispose(),this._depthOnlySubMeshes.dispose(),this._particleSystems.dispose(),this._spriteManagers.dispose(),this._edgesRenderers.dispose()}dispatch(e,t,i){t===void 0&&(t=e.getMesh()),i===void 0&&(i=e.getMaterial()),i!=null&&(i.needAlphaBlendingForMesh(t)?this._transparentSubMeshes.push(e):i.needAlphaTestingForMesh(t)?(i.needDepthPrePass&&this._depthOnlySubMeshes.push(e),this._alphaTestSubMeshes.push(e)):(i.needDepthPrePass&&this._depthOnlySubMeshes.push(e),this._opaqueSubMeshes.push(e)),t._renderingGroup=this,t._edgesRenderer&&t.isEnabled()&&t.isVisible&&t._edgesRenderer.isEnabled&&this._edgesRenderers.pushNoDuplicate(t._edgesRenderer),this._empty=!1)}dispatchSprites(e){this._spriteManagers.push(e),this._empty=!1}dispatchParticles(e){this._particleSystems.push(e),this._empty=!1}_renderParticles(e){if(this._particleSystems.length===0)return;const t=this._scene.activeCamera;this._scene.onBeforeParticlesRenderingObservable.notifyObservers(this._scene);for(let i=0;i<this._particleSystems.length;i++){const s=this._particleSystems.data[i];if((t&&t.layerMask&s.layerMask)===0)continue;const r=s.emitter;(!r.position||!e||e.indexOf(r)!==-1)&&this._scene._activeParticles.addCount(s.render(),!1)}this._scene.onAfterParticlesRenderingObservable.notifyObservers(this._scene)}_renderSprites(){if(!this._scene.spritesEnabled||this._spriteManagers.length===0)return;const e=this._scene.activeCamera;this._scene.onBeforeSpritesRenderingObservable.notifyObservers(this._scene);for(let t=0;t<this._spriteManagers.length;t++){const i=this._spriteManagers.data[t];(e&&e.layerMask&i.layerMask)!==0&&i.render()}this._scene.onAfterSpritesRenderingObservable.notifyObservers(this._scene)}}X6._ZeroVector=P.Zero();class fhe{}class Fu{get maintainStateBetweenFrames(){return this._maintainStateBetweenFrames}set maintainStateBetweenFrames(e){e!==this._maintainStateBetweenFrames&&(this._maintainStateBetweenFrames=e,this._maintainStateBetweenFrames||this.restoreDispachedFlags())}restoreDispachedFlags(){for(const e of this._scene.meshes)if(e.subMeshes)for(const t of e.subMeshes)t._wasDispatched=!1;if(this._scene.spriteManagers)for(const e of this._scene.spriteManagers)e._wasDispatched=!1;for(const e of this._scene.particleSystems)e._wasDispatched=!1}constructor(e){this._useSceneAutoClearSetup=!1,this._renderingGroups=new Array,this._autoClearDepthStencil={},this._customOpaqueSortCompareFn={},this._customAlphaTestSortCompareFn={},this._customTransparentSortCompareFn={},this._renderingGroupInfo=new fhe,this._maintainStateBetweenFrames=!1,this._scene=e;for(let t=Fu.MIN_RENDERINGGROUPS;t<Fu.MAX_RENDERINGGROUPS;t++)this._autoClearDepthStencil[t]={autoClear:!0,depth:!0,stencil:!0}}getRenderingGroup(e){const t=e||0;return this._prepareRenderingGroup(t),this._renderingGroups[t]}_clearDepthStencilBuffer(e=!0,t=!0){this._depthStencilBufferAlreadyCleaned||(this._scene.getEngine().clear(null,!1,e,t),this._depthStencilBufferAlreadyCleaned=!0)}render(e,t,i,s){const r=this._renderingGroupInfo;if(r.scene=this._scene,r.camera=this._scene.activeCamera,r.renderingManager=this,this._scene.spriteManagers&&s)for(let n=0;n<this._scene.spriteManagers.length;n++){const o=this._scene.spriteManagers[n];this.dispatchSprites(o)}for(let n=Fu.MIN_RENDERINGGROUPS;n<Fu.MAX_RENDERINGGROUPS;n++){this._depthStencilBufferAlreadyCleaned=n===Fu.MIN_RENDERINGGROUPS;const o=this._renderingGroups[n];if(!o||o._empty)continue;const l=1<<n;if(r.renderingGroupId=n,this._scene.onBeforeRenderingGroupObservable.notifyObservers(r,l),Fu.AUTOCLEAR){const c=this._useSceneAutoClearSetup?this._scene.getAutoClearDepthStencilSetup(n):this._autoClearDepthStencil[n];c&&c.autoClear&&this._clearDepthStencilBuffer(c.depth,c.stencil)}for(const c of this._scene._beforeRenderingGroupDrawStage)c.action(n);o.render(e,s,i,t);for(const c of this._scene._afterRenderingGroupDrawStage)c.action(n);this._scene.onAfterRenderingGroupObservable.notifyObservers(r,l)}}reset(){if(!this.maintainStateBetweenFrames)for(let e=Fu.MIN_RENDERINGGROUPS;e<Fu.MAX_RENDERINGGROUPS;e++){const t=this._renderingGroups[e];t&&t.prepare()}}resetSprites(){if(!this.maintainStateBetweenFrames)for(let e=Fu.MIN_RENDERINGGROUPS;e<Fu.MAX_RENDERINGGROUPS;e++){const t=this._renderingGroups[e];t&&t.prepareSprites()}}dispose(){this.freeRenderingGroups(),this._renderingGroups.length=0,this._renderingGroupInfo=null}freeRenderingGroups(){for(let e=Fu.MIN_RENDERINGGROUPS;e<Fu.MAX_RENDERINGGROUPS;e++){const t=this._renderingGroups[e];t&&t.dispose()}}_prepareRenderingGroup(e){this._renderingGroups[e]===void 0&&(this._renderingGroups[e]=new X6(e,this._scene,this._customOpaqueSortCompareFn[e],this._customAlphaTestSortCompareFn[e],this._customTransparentSortCompareFn[e]))}dispatchSprites(e){this.maintainStateBetweenFrames&&e._wasDispatched||(e._wasDispatched=!0,this.getRenderingGroup(e.renderingGroupId).dispatchSprites(e))}dispatchParticles(e){this.maintainStateBetweenFrames&&e._wasDispatched||(e._wasDispatched=!0,this.getRenderingGroup(e.renderingGroupId).dispatchParticles(e))}dispatch(e,t,i){t===void 0&&(t=e.getMesh()),!(this.maintainStateBetweenFrames&&e._wasDispatched)&&(e._wasDispatched=!0,this.getRenderingGroup(t.renderingGroupId).dispatch(e,t,i))}setRenderingOrder(e,t=null,i=null,s=null){if(this._customOpaqueSortCompareFn[e]=t,this._customAlphaTestSortCompareFn[e]=i,this._customTransparentSortCompareFn[e]=s,this._renderingGroups[e]){const r=this._renderingGroups[e];r.opaqueSortCompareFn=this._customOpaqueSortCompareFn[e],r.alphaTestSortCompareFn=this._customAlphaTestSortCompareFn[e],r.transparentSortCompareFn=this._customTransparentSortCompareFn[e]}}setRenderingAutoClearDepthStencil(e,t,i=!0,s=!0){this._autoClearDepthStencil[e]={autoClear:t,depth:i,stencil:s}}getAutoClearDepthStencilSetup(e){return this._autoClearDepthStencil[e]}}Fu.MAX_RENDERINGGROUPS=4,Fu.MIN_RENDERINGGROUPS=0,Fu.AUTOCLEAR=!0;class jt{}jt.NAME_EFFECTLAYER="EffectLayer",jt.NAME_LAYER="Layer",jt.NAME_LENSFLARESYSTEM="LensFlareSystem",jt.NAME_BOUNDINGBOXRENDERER="BoundingBoxRenderer",jt.NAME_PARTICLESYSTEM="ParticleSystem",jt.NAME_GAMEPAD="Gamepad",jt.NAME_SIMPLIFICATIONQUEUE="SimplificationQueue",jt.NAME_GEOMETRYBUFFERRENDERER="GeometryBufferRenderer",jt.NAME_PREPASSRENDERER="PrePassRenderer",jt.NAME_DEPTHRENDERER="DepthRenderer",jt.NAME_DEPTHPEELINGRENDERER="DepthPeelingRenderer",jt.NAME_POSTPROCESSRENDERPIPELINEMANAGER="PostProcessRenderPipelineManager",jt.NAME_SPRITE="Sprite",jt.NAME_SUBSURFACE="SubSurface",jt.NAME_OUTLINERENDERER="Outline",jt.NAME_PROCEDURALTEXTURE="ProceduralTexture",jt.NAME_SHADOWGENERATOR="ShadowGenerator",jt.NAME_OCTREE="Octree",jt.NAME_PHYSICSENGINE="PhysicsEngine",jt.NAME_AUDIO="Audio",jt.NAME_FLUIDRENDERER="FluidRenderer",jt.NAME_IBLCDFGENERATOR="iblCDFGenerator",jt.STEP_ISREADYFORMESH_EFFECTLAYER=0,jt.STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER=0,jt.STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER=0,jt.STEP_PREACTIVEMESH_BOUNDINGBOXRENDERER=0,jt.STEP_CAMERADRAWRENDERTARGET_EFFECTLAYER=1,jt.STEP_BEFORECAMERADRAW_PREPASS=0,jt.STEP_BEFORECAMERADRAW_EFFECTLAYER=1,jt.STEP_BEFORECAMERADRAW_LAYER=2,jt.STEP_BEFORERENDERTARGETDRAW_PREPASS=0,jt.STEP_BEFORERENDERTARGETDRAW_LAYER=1,jt.STEP_BEFORERENDERINGMESH_PREPASS=0,jt.STEP_BEFORERENDERINGMESH_OUTLINE=1,jt.STEP_AFTERRENDERINGMESH_PREPASS=0,jt.STEP_AFTERRENDERINGMESH_OUTLINE=1,jt.STEP_AFTERRENDERINGGROUPDRAW_EFFECTLAYER_DRAW=0,jt.STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER=1,jt.STEP_BEFORECAMERAUPDATE_SIMPLIFICATIONQUEUE=0,jt.STEP_BEFORECLEAR_PROCEDURALTEXTURE=0,jt.STEP_BEFORECLEAR_PREPASS=1,jt.STEP_BEFORERENDERTARGETCLEAR_PREPASS=0,jt.STEP_AFTERRENDERTARGETDRAW_PREPASS=0,jt.STEP_AFTERRENDERTARGETDRAW_LAYER=1,jt.STEP_AFTERCAMERADRAW_PREPASS=0,jt.STEP_AFTERCAMERADRAW_EFFECTLAYER=1,jt.STEP_AFTERCAMERADRAW_LENSFLARESYSTEM=2,jt.STEP_AFTERCAMERADRAW_EFFECTLAYER_DRAW=3,jt.STEP_AFTERCAMERADRAW_LAYER=4,jt.STEP_AFTERCAMERADRAW_FLUIDRENDERER=5,jt.STEP_AFTERCAMERAPOSTPROCESS_LAYER=0,jt.STEP_AFTERRENDERTARGETPOSTPROCESS_LAYER=0,jt.STEP_AFTERRENDER_AUDIO=0,jt.STEP_GATHERRENDERTARGETS_DEPTHRENDERER=0,jt.STEP_GATHERRENDERTARGETS_GEOMETRYBUFFERRENDERER=1,jt.STEP_GATHERRENDERTARGETS_SHADOWGENERATOR=2,jt.STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER=3,jt.STEP_GATHERACTIVECAMERARENDERTARGETS_DEPTHRENDERER=0,jt.STEP_GATHERACTIVECAMERARENDERTARGETS_FLUIDRENDERER=1,jt.STEP_POINTERMOVE_SPRITE=0,jt.STEP_POINTERDOWN_SPRITE=0,jt.STEP_POINTERUP_SPRITE=0;class Ko extends Array{constructor(e){super(...e)}static Create(){return Object.create(Ko.prototype)}registerStep(e,t,i){let s=0,r=Number.MAX_VALUE;for(;s<this.length&&(r=this[s].index,!(e<r));s++);this.splice(s,0,{index:e,component:t,action:i.bind(t)})}clear(){this.length=0}}class Xt{}Xt.POINTERDOWN=1,Xt.POINTERUP=2,Xt.POINTERMOVE=4,Xt.POINTERWHEEL=8,Xt.POINTERPICK=16,Xt.POINTERTAP=32,Xt.POINTERDOUBLETAP=64;class DX{constructor(e,t){this.type=e,this.event=t}}class phe extends DX{constructor(e,t,i,s){super(e,t),this.ray=null,this.originalPickingInfo=null,this.skipOnPointerObservable=!1,this.localPosition=new Ue(i,s)}}class C4 extends DX{get pickInfo(){return this._pickInfo||this._generatePickInfo(),this._pickInfo}constructor(e,t,i,s=null){super(e,t),this._pickInfo=i,this._inputManager=s}_generatePickInfo(){this._inputManager&&(this._pickInfo=this._inputManager._pickMove(this.event),this._inputManager._setRayOnPointerInfo(this._pickInfo,this.event),this._inputManager=null)}}class v0{constructor(){this.hoverCursor="",this.actions=[],this.isRecursive=!1,this.disposeWhenUnowned=!0}static get HasTriggers(){for(const e in v0.Triggers)if(Object.prototype.hasOwnProperty.call(v0.Triggers,e))return!0;return!1}static get HasPickTriggers(){for(const e in v0.Triggers)if(Object.prototype.hasOwnProperty.call(v0.Triggers,e)){const t=parseInt(e);if(t>=1&&t<=7)return!0}return!1}static HasSpecificTrigger(e){for(const t in v0.Triggers)if(Object.prototype.hasOwnProperty.call(v0.Triggers,t)&&parseInt(t)===e)return!0;return!1}}v0.Triggers={};class x4{}x4.KEYDOWN=1,x4.KEYUP=2;class hG{constructor(e,t){this.type=e,this.event=t}}class NX extends hG{get skipOnPointerObservable(){return this.skipOnKeyboardObservable}set skipOnPointerObservable(e){this.skipOnKeyboardObservable=e}constructor(e,t){super(e,t),this.type=e,this.event=t,this.skipOnKeyboardObservable=!1}}var is;(function(a){a[a.Generic=0]="Generic",a[a.Keyboard=1]="Keyboard",a[a.Mouse=2]="Mouse",a[a.Touch=3]="Touch",a[a.DualShock=4]="DualShock",a[a.Xbox=5]="Xbox",a[a.Switch=6]="Switch",a[a.DualSense=7]="DualSense"})(is||(is={}));var xs;(function(a){a[a.Horizontal=0]="Horizontal",a[a.Vertical=1]="Vertical",a[a.LeftClick=2]="LeftClick",a[a.MiddleClick=3]="MiddleClick",a[a.RightClick=4]="RightClick",a[a.BrowserBack=5]="BrowserBack",a[a.BrowserForward=6]="BrowserForward",a[a.MouseWheelX=7]="MouseWheelX",a[a.MouseWheelY=8]="MouseWheelY",a[a.MouseWheelZ=9]="MouseWheelZ",a[a.Move=12]="Move"})(xs||(xs={}));var wX;(function(a){a[a.Horizontal=0]="Horizontal",a[a.Vertical=1]="Vertical",a[a.LeftClick=2]="LeftClick",a[a.MiddleClick=3]="MiddleClick",a[a.RightClick=4]="RightClick",a[a.BrowserBack=5]="BrowserBack",a[a.BrowserForward=6]="BrowserForward",a[a.MouseWheelX=7]="MouseWheelX",a[a.MouseWheelY=8]="MouseWheelY",a[a.MouseWheelZ=9]="MouseWheelZ",a[a.DeltaHorizontal=10]="DeltaHorizontal",a[a.DeltaVertical=11]="DeltaVertical"})(wX||(wX={}));var BX;(function(a){a[a.Cross=0]="Cross",a[a.Circle=1]="Circle",a[a.Square=2]="Square",a[a.Triangle=3]="Triangle",a[a.L1=4]="L1",a[a.R1=5]="R1",a[a.L2=6]="L2",a[a.R2=7]="R2",a[a.Share=8]="Share",a[a.Options=9]="Options",a[a.L3=10]="L3",a[a.R3=11]="R3",a[a.DPadUp=12]="DPadUp",a[a.DPadDown=13]="DPadDown",a[a.DPadLeft=14]="DPadLeft",a[a.DPadRight=15]="DPadRight",a[a.Home=16]="Home",a[a.TouchPad=17]="TouchPad",a[a.LStickXAxis=18]="LStickXAxis",a[a.LStickYAxis=19]="LStickYAxis",a[a.RStickXAxis=20]="RStickXAxis",a[a.RStickYAxis=21]="RStickYAxis"})(BX||(BX={}));var zX;(function(a){a[a.Cross=0]="Cross",a[a.Circle=1]="Circle",a[a.Square=2]="Square",a[a.Triangle=3]="Triangle",a[a.L1=4]="L1",a[a.R1=5]="R1",a[a.L2=6]="L2",a[a.R2=7]="R2",a[a.Create=8]="Create",a[a.Options=9]="Options",a[a.L3=10]="L3",a[a.R3=11]="R3",a[a.DPadUp=12]="DPadUp",a[a.DPadDown=13]="DPadDown",a[a.DPadLeft=14]="DPadLeft",a[a.DPadRight=15]="DPadRight",a[a.Home=16]="Home",a[a.TouchPad=17]="TouchPad",a[a.LStickXAxis=18]="LStickXAxis",a[a.LStickYAxis=19]="LStickYAxis",a[a.RStickXAxis=20]="RStickXAxis",a[a.RStickYAxis=21]="RStickYAxis"})(zX||(zX={}));var FX;(function(a){a[a.A=0]="A",a[a.B=1]="B",a[a.X=2]="X",a[a.Y=3]="Y",a[a.LB=4]="LB",a[a.RB=5]="RB",a[a.LT=6]="LT",a[a.RT=7]="RT",a[a.Back=8]="Back",a[a.Start=9]="Start",a[a.LS=10]="LS",a[a.RS=11]="RS",a[a.DPadUp=12]="DPadUp",a[a.DPadDown=13]="DPadDown",a[a.DPadLeft=14]="DPadLeft",a[a.DPadRight=15]="DPadRight",a[a.Home=16]="Home",a[a.LStickXAxis=17]="LStickXAxis",a[a.LStickYAxis=18]="LStickYAxis",a[a.RStickXAxis=19]="RStickXAxis",a[a.RStickYAxis=20]="RStickYAxis"})(FX||(FX={}));var kX;(function(a){a[a.B=0]="B",a[a.A=1]="A",a[a.Y=2]="Y",a[a.X=3]="X",a[a.L=4]="L",a[a.R=5]="R",a[a.ZL=6]="ZL",a[a.ZR=7]="ZR",a[a.Minus=8]="Minus",a[a.Plus=9]="Plus",a[a.LS=10]="LS",a[a.RS=11]="RS",a[a.DPadUp=12]="DPadUp",a[a.DPadDown=13]="DPadDown",a[a.DPadLeft=14]="DPadLeft",a[a.DPadRight=15]="DPadRight",a[a.Home=16]="Home",a[a.Capture=17]="Capture",a[a.LStickXAxis=18]="LStickXAxis",a[a.LStickYAxis=19]="LStickYAxis",a[a.RStickXAxis=20]="RStickXAxis",a[a.RStickYAxis=21]="RStickYAxis"})(kX||(kX={}));var UX;(function(a){a[a.PointerMove=0]="PointerMove",a[a.PointerDown=1]="PointerDown",a[a.PointerUp=2]="PointerUp"})(UX||(UX={}));class W9{}W9.DOM_DELTA_PIXEL=0,W9.DOM_DELTA_LINE=1,W9.DOM_DELTA_PAGE=2;class H9{static CreateDeviceEvent(e,t,i,s,r,n,o){switch(e){case is.Keyboard:return this._CreateKeyboardEvent(i,s,r,n);case is.Mouse:if(i===xs.MouseWheelX||i===xs.MouseWheelY||i===xs.MouseWheelZ)return this._CreateWheelEvent(e,t,i,s,r,n);case is.Touch:return this._CreatePointerEvent(e,t,i,s,r,n,o);default:throw`Unable to generate event for device ${is[e]}`}}static _CreatePointerEvent(e,t,i,s,r,n,o){const l=this._CreateMouseEvent(e,t,i,s,r,n);e===is.Mouse?(l.deviceType=is.Mouse,l.pointerId=1,l.pointerType="mouse"):(l.deviceType=is.Touch,l.pointerId=o??t,l.pointerType="touch");let c=0;return c+=r.pollInput(e,t,xs.LeftClick),c+=r.pollInput(e,t,xs.RightClick)*2,c+=r.pollInput(e,t,xs.MiddleClick)*4,l.buttons=c,i===xs.Move?l.type="pointermove":i>=xs.LeftClick&&i<=xs.RightClick&&(l.type=s===1?"pointerdown":"pointerup",l.button=i-2),l}static _CreateWheelEvent(e,t,i,s,r,n){const o=this._CreateMouseEvent(e,t,i,s,r,n);switch(o.pointerId=1,o.type="wheel",o.deltaMode=W9.DOM_DELTA_PIXEL,o.deltaX=0,o.deltaY=0,o.deltaZ=0,i){case xs.MouseWheelX:o.deltaX=s;break;case xs.MouseWheelY:o.deltaY=s;break;case xs.MouseWheelZ:o.deltaZ=s;break}return o}static _CreateMouseEvent(e,t,i,s,r,n){const o=this._CreateEvent(n),l=r.pollInput(e,t,xs.Horizontal),c=r.pollInput(e,t,xs.Vertical);return n?(o.movementX=0,o.movementY=0,o.offsetX=o.movementX-n.getBoundingClientRect().x,o.offsetY=o.movementY-n.getBoundingClientRect().y):(o.movementX=r.pollInput(e,t,10),o.movementY=r.pollInput(e,t,11),o.offsetX=0,o.offsetY=0),this._CheckNonCharacterKeys(o,r),o.clientX=l,o.clientY=c,o.x=l,o.y=c,o.deviceType=e,o.deviceSlot=t,o.inputIndex=i,o}static _CreateKeyboardEvent(e,t,i,s){const r=this._CreateEvent(s);return this._CheckNonCharacterKeys(r,i),r.deviceType=is.Keyboard,r.deviceSlot=0,r.inputIndex=e,r.type=t===1?"keydown":"keyup",r.key=String.fromCharCode(e),r.keyCode=e,r}static _CheckNonCharacterKeys(e,t){const i=t.isDeviceAvailable(is.Keyboard),s=i&&t.pollInput(is.Keyboard,0,18)===1,r=i&&t.pollInput(is.Keyboard,0,17)===1,n=i&&(t.pollInput(is.Keyboard,0,91)===1||t.pollInput(is.Keyboard,0,92)===1||t.pollInput(is.Keyboard,0,93)===1),o=i&&t.pollInput(is.Keyboard,0,16)===1;e.altKey=s,e.ctrlKey=r,e.metaKey=n,e.shiftKey=o}static _CreateEvent(e){const t={};return t.preventDefault=()=>{},t.target=e,t}}class xOe{constructor(e,t,i){this._nativeInput=_native.DeviceInputSystem?new _native.DeviceInputSystem(e,t,(s,r,n,o)=>{const l=H9.CreateDeviceEvent(s,r,n,o,this);i(s,r,l)}):this._createDummyNativeInput()}pollInput(e,t,i){return this._nativeInput.pollInput(e,t,i)}isDeviceAvailable(e){return e===is.Mouse||e===is.Touch}dispose(){this._nativeInput.dispose()}_createDummyNativeInput(){return{pollInput:()=>0,isDeviceAvailable:()=>!1,dispose:()=>{}}}}const mhe=255,ghe=Object.keys(xs).length/2;class bOe{constructor(e,t,i,s){this._inputs=[],this._keyboardActive=!1,this._pointerActive=!1,this._usingSafari=Le.IsSafari(),this._usingMacOS=LT()&&/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform),this._keyboardDownEvent=r=>{},this._keyboardUpEvent=r=>{},this._keyboardBlurEvent=r=>{},this._pointerMoveEvent=r=>{},this._pointerDownEvent=r=>{},this._pointerUpEvent=r=>{},this._pointerCancelEvent=r=>{},this._pointerCancelTouch=r=>{},this._pointerLeaveEvent=r=>{},this._pointerWheelEvent=r=>{},this._pointerBlurEvent=r=>{},this._pointerMacOSChromeOutEvent=r=>{},this._eventsAttached=!1,this._mouseId=-1,this._isUsingFirefox=LT()&&navigator.userAgent&&navigator.userAgent.indexOf("Firefox")!==-1,this._isUsingChromium=LT()&&navigator.userAgent&&navigator.userAgent.indexOf("Chrome")!==-1,this._maxTouchPoints=0,this._pointerInputClearObserver=null,this._gamepadConnectedEvent=r=>{},this._gamepadDisconnectedEvent=r=>{},this._eventPrefix=Le.GetPointerPrefix(e),this._engine=e,this._onDeviceConnected=t,this._onDeviceDisconnected=i,this._onInputChanged=s,this._mouseId=this._isUsingFirefox?0:1,this._enableEvents(),this._usingMacOS&&(this._metaKeys=[]),this._engine._onEngineViewChanged||(this._engine._onEngineViewChanged=()=>{this._enableEvents()})}pollInput(e,t,i){const s=this._inputs[e][t];if(!s)throw`Unable to find device ${is[e]}`;e>=is.DualShock&&e<=is.DualSense&&this._updateDevice(e,t,i);const r=s[i];if(r===void 0)throw`Unable to find input ${i} for device ${is[e]} in slot ${t}`;return i===xs.Move&&Le.Warn("Unable to provide information for PointerInput.Move.  Try using PointerInput.Horizontal or PointerInput.Vertical for move data."),r}isDeviceAvailable(e){return this._inputs[e]!==void 0}dispose(){this._onDeviceConnected=()=>{},this._onDeviceDisconnected=()=>{},this._onInputChanged=()=>{},delete this._engine._onEngineViewChanged,this._elementToAttachTo&&this._disableEvents()}_enableEvents(){const e=this==null?void 0:this._engine.getInputElement();if(e&&(!this._eventsAttached||this._elementToAttachTo!==e)){if(this._disableEvents(),this._inputs){for(const t of this._inputs)if(t)for(const i in t){const s=+i,r=t[s];if(r)for(let n=0;n<r.length;n++)r[n]=0}}this._elementToAttachTo=e,this._elementToAttachTo.tabIndex=this._elementToAttachTo.tabIndex!==-1?this._elementToAttachTo.tabIndex:this._engine.canvasTabIndex,this._handleKeyActions(),this._handlePointerActions(),this._handleGamepadActions(),this._eventsAttached=!0,this._checkForConnectedDevices()}}_disableEvents(){this._elementToAttachTo&&(this._elementToAttachTo.removeEventListener("blur",this._keyboardBlurEvent),this._elementToAttachTo.removeEventListener("blur",this._pointerBlurEvent),this._elementToAttachTo.removeEventListener("keydown",this._keyboardDownEvent),this._elementToAttachTo.removeEventListener("keyup",this._keyboardUpEvent),this._elementToAttachTo.removeEventListener(this._eventPrefix+"move",this._pointerMoveEvent),this._elementToAttachTo.removeEventListener(this._eventPrefix+"down",this._pointerDownEvent),this._elementToAttachTo.removeEventListener(this._eventPrefix+"up",this._pointerUpEvent),this._elementToAttachTo.removeEventListener(this._eventPrefix+"cancel",this._pointerCancelEvent),this._elementToAttachTo.removeEventListener(this._eventPrefix+"leave",this._pointerLeaveEvent),this._elementToAttachTo.removeEventListener(this._wheelEventName,this._pointerWheelEvent),this._usingMacOS&&this._isUsingChromium&&this._elementToAttachTo.removeEventListener("lostpointercapture",this._pointerMacOSChromeOutEvent),window.removeEventListener("gamepadconnected",this._gamepadConnectedEvent),window.removeEventListener("gamepaddisconnected",this._gamepadDisconnectedEvent)),this._pointerInputClearObserver&&this._engine.onEndFrameObservable.remove(this._pointerInputClearObserver),this._eventsAttached=!1}_checkForConnectedDevices(){if(navigator.getGamepads){const e=navigator.getGamepads();for(const t of e)t&&this._addGamePad(t)}typeof matchMedia=="function"&&matchMedia("(pointer:fine)").matches&&this._addPointerDevice(is.Mouse,0,0,0)}_addGamePad(e){const t=this._getGamepadDeviceType(e.id),i=e.index;this._gamepads=this._gamepads||new Array(e.index+1),this._registerDevice(t,i,e.buttons.length+e.axes.length),this._gamepads[i]=t}_addPointerDevice(e,t,i,s){this._pointerActive||(this._pointerActive=!0),this._registerDevice(e,t,ghe);const r=this._inputs[e][t];r[0]=i,r[1]=s}_registerDevice(e,t,i){if(t===void 0)throw`Unable to register device ${is[e]} to undefined slot.`;if(this._inputs[e]||(this._inputs[e]={}),!this._inputs[e][t]){const s=new Array(i);s.fill(0),this._inputs[e][t]=s,this._onDeviceConnected(e,t)}}_unregisterDevice(e,t){this._inputs[e][t]&&(delete this._inputs[e][t],this._onDeviceDisconnected(e,t))}_handleKeyActions(){this._keyboardDownEvent=e=>{this._keyboardActive||(this._keyboardActive=!0,this._registerDevice(is.Keyboard,0,mhe));const t=this._inputs[is.Keyboard][0];if(t){t[e.keyCode]=1;const i=e;i.inputIndex=e.keyCode,this._usingMacOS&&e.metaKey&&e.key!=="Meta"&&(this._metaKeys.includes(e.keyCode)||this._metaKeys.push(e.keyCode)),this._onInputChanged(is.Keyboard,0,i)}},this._keyboardUpEvent=e=>{this._keyboardActive||(this._keyboardActive=!0,this._registerDevice(is.Keyboard,0,mhe));const t=this._inputs[is.Keyboard][0];if(t){t[e.keyCode]=0;const i=e;if(i.inputIndex=e.keyCode,this._usingMacOS&&e.key==="Meta"&&this._metaKeys.length>0){for(const s of this._metaKeys){const r=H9.CreateDeviceEvent(is.Keyboard,0,s,0,this,this._elementToAttachTo);t[s]=0,this._onInputChanged(is.Keyboard,0,r)}this._metaKeys.splice(0,this._metaKeys.length)}this._onInputChanged(is.Keyboard,0,i)}},this._keyboardBlurEvent=()=>{if(this._keyboardActive){const e=this._inputs[is.Keyboard][0];for(let t=0;t<e.length;t++)if(e[t]!==0){e[t]=0;const i=H9.CreateDeviceEvent(is.Keyboard,0,t,0,this,this._elementToAttachTo);this._onInputChanged(is.Keyboard,0,i)}this._usingMacOS&&this._metaKeys.splice(0,this._metaKeys.length)}},this._elementToAttachTo.addEventListener("keydown",this._keyboardDownEvent),this._elementToAttachTo.addEventListener("keyup",this._keyboardUpEvent),this._elementToAttachTo.addEventListener("blur",this._keyboardBlurEvent)}_handlePointerActions(){this._maxTouchPoints=LT()&&navigator.maxTouchPoints||2,this._activeTouchIds||(this._activeTouchIds=new Array(this._maxTouchPoints));for(let i=0;i<this._maxTouchPoints;i++)this._activeTouchIds[i]=-1;this._pointerMoveEvent=i=>{const s=this._getPointerType(i);let r=s===is.Mouse?0:this._activeTouchIds.indexOf(i.pointerId);if(s===is.Touch&&r===-1){const o=this._activeTouchIds.indexOf(-1);if(o>=0)r=o,this._activeTouchIds[o]=i.pointerId,this._onDeviceConnected(s,r);else{Le.Warn(`Max number of touches exceeded.  Ignoring touches in excess of ${this._maxTouchPoints}`);return}}this._inputs[s]||(this._inputs[s]={}),this._inputs[s][r]||this._addPointerDevice(s,r,i.clientX,i.clientY);const n=this._inputs[s][r];if(n){const o=i;o.inputIndex=xs.Move,n[xs.Horizontal]=i.clientX,n[xs.Vertical]=i.clientY,s===is.Touch&&n[xs.LeftClick]===0&&(n[xs.LeftClick]=1),i.pointerId===void 0&&(i.pointerId=this._mouseId),this._onInputChanged(s,r,o),!this._usingSafari&&i.button!==-1&&(o.inputIndex=i.button+2,n[i.button+2]=n[i.button+2]?0:1,this._onInputChanged(s,r,o))}},this._pointerDownEvent=i=>{const s=this._getPointerType(i);let r=s===is.Mouse?0:i.pointerId;if(s===is.Touch){let o=this._activeTouchIds.indexOf(i.pointerId);if(o===-1&&(o=this._activeTouchIds.indexOf(-1)),o>=0)r=o,this._activeTouchIds[o]=i.pointerId;else{Le.Warn(`Max number of touches exceeded.  Ignoring touches in excess of ${this._maxTouchPoints}`);return}}this._inputs[s]||(this._inputs[s]={}),this._inputs[s][r]?s===is.Touch&&this._onDeviceConnected(s,r):this._addPointerDevice(s,r,i.clientX,i.clientY);const n=this._inputs[s][r];if(n){const o=n[xs.Horizontal],l=n[xs.Vertical];if(s===is.Mouse){if(i.pointerId===void 0&&(i.pointerId=this._mouseId),!document.pointerLockElement)try{this._elementToAttachTo.setPointerCapture(this._mouseId)}catch{}}else if(i.pointerId&&!document.pointerLockElement)try{this._elementToAttachTo.setPointerCapture(i.pointerId)}catch{}n[xs.Horizontal]=i.clientX,n[xs.Vertical]=i.clientY,n[i.button+2]=1;const c=i;c.inputIndex=i.button+2,this._onInputChanged(s,r,c),(o!==i.clientX||l!==i.clientY)&&(c.inputIndex=xs.Move,this._onInputChanged(s,r,c))}},this._pointerUpEvent=i=>{var c,u,f,p,m;const s=this._getPointerType(i),r=s===is.Mouse?0:this._activeTouchIds.indexOf(i.pointerId);if(s===is.Touch){if(r===-1)return;this._activeTouchIds[r]=-1}const n=(c=this._inputs[s])==null?void 0:c[r];let o=i.button,l=n&&n[o+2]!==0;if(!l&&this._isUsingFirefox&&this._usingMacOS&&n&&(o=o===2?0:2,l=n[o+2]!==0),l){const _=n[xs.Horizontal],d=n[xs.Vertical];n[xs.Horizontal]=i.clientX,n[xs.Vertical]=i.clientY,n[o+2]=0;const h=i;i.pointerId===void 0&&(i.pointerId=this._mouseId),(_!==i.clientX||d!==i.clientY)&&(h.inputIndex=xs.Move,this._onInputChanged(s,r,h)),h.inputIndex=o+2,s===is.Mouse&&this._mouseId>=0&&((f=(u=this._elementToAttachTo).hasPointerCapture)!=null&&f.call(u,this._mouseId))?this._elementToAttachTo.releasePointerCapture(this._mouseId):i.pointerId&&((m=(p=this._elementToAttachTo).hasPointerCapture)!=null&&m.call(p,i.pointerId))&&this._elementToAttachTo.releasePointerCapture(i.pointerId),this._onInputChanged(s,r,h),s===is.Touch&&this._onDeviceDisconnected(s,r)}},this._pointerCancelTouch=i=>{var n,o;const s=this._activeTouchIds.indexOf(i);if(s===-1)return;(o=(n=this._elementToAttachTo).hasPointerCapture)!=null&&o.call(n,i)&&this._elementToAttachTo.releasePointerCapture(i),this._inputs[is.Touch][s][xs.LeftClick]=0;const r=H9.CreateDeviceEvent(is.Touch,s,xs.LeftClick,0,this,this._elementToAttachTo,i);this._onInputChanged(is.Touch,s,r),this._activeTouchIds[s]=-1,this._onDeviceDisconnected(is.Touch,s)},this._pointerCancelEvent=i=>{var s,r;if(i.pointerType==="mouse"){const n=this._inputs[is.Mouse][0];this._mouseId>=0&&((r=(s=this._elementToAttachTo).hasPointerCapture)!=null&&r.call(s,this._mouseId))&&this._elementToAttachTo.releasePointerCapture(this._mouseId);for(let o=xs.LeftClick;o<=xs.BrowserForward;o++)if(n[o]===1){n[o]=0;const l=H9.CreateDeviceEvent(is.Mouse,0,o,0,this,this._elementToAttachTo);this._onInputChanged(is.Mouse,0,l)}}else this._pointerCancelTouch(i.pointerId)},this._pointerLeaveEvent=i=>{i.pointerType==="pen"&&this._pointerCancelTouch(i.pointerId)},this._wheelEventName="onwheel"in document.createElement("div")?"wheel":document.onmousewheel!==void 0?"mousewheel":"DOMMouseScroll";let e=!1;const t=function(){};try{const i=Object.defineProperty({},"passive",{get:function(){e=!0}});this._elementToAttachTo.addEventListener("test",t,i),this._elementToAttachTo.removeEventListener("test",t,i)}catch{}this._pointerBlurEvent=()=>{var i,s,r,n,o;if(this.isDeviceAvailable(is.Mouse)){const l=this._inputs[is.Mouse][0];this._mouseId>=0&&((s=(i=this._elementToAttachTo).hasPointerCapture)!=null&&s.call(i,this._mouseId))&&this._elementToAttachTo.releasePointerCapture(this._mouseId);for(let c=xs.LeftClick;c<=xs.BrowserForward;c++)if(l[c]===1){l[c]=0;const u=H9.CreateDeviceEvent(is.Mouse,0,c,0,this,this._elementToAttachTo);this._onInputChanged(is.Mouse,0,u)}}if(this.isDeviceAvailable(is.Touch)){const l=this._inputs[is.Touch];for(let c=0;c<this._activeTouchIds.length;c++){const u=this._activeTouchIds[c];if((n=(r=this._elementToAttachTo).hasPointerCapture)!=null&&n.call(r,u)&&this._elementToAttachTo.releasePointerCapture(u),u!==-1&&((o=l[c])==null?void 0:o[xs.LeftClick])===1){l[c][xs.LeftClick]=0;const f=H9.CreateDeviceEvent(is.Touch,c,xs.LeftClick,0,this,this._elementToAttachTo,u);this._onInputChanged(is.Touch,c,f),this._activeTouchIds[c]=-1,this._onDeviceDisconnected(is.Touch,c)}}}},this._pointerWheelEvent=i=>{const s=is.Mouse,r=0;this._inputs[s]||(this._inputs[s]=[]),this._inputs[s][r]||(this._pointerActive=!0,this._registerDevice(s,r,ghe));const n=this._inputs[s][r];if(n){n[xs.MouseWheelX]=i.deltaX||0,n[xs.MouseWheelY]=i.deltaY||i.wheelDelta||0,n[xs.MouseWheelZ]=i.deltaZ||0;const o=i;i.pointerId===void 0&&(i.pointerId=this._mouseId),n[xs.MouseWheelX]!==0&&(o.inputIndex=xs.MouseWheelX,this._onInputChanged(s,r,o)),n[xs.MouseWheelY]!==0&&(o.inputIndex=xs.MouseWheelY,this._onInputChanged(s,r,o)),n[xs.MouseWheelZ]!==0&&(o.inputIndex=xs.MouseWheelZ,this._onInputChanged(s,r,o))}},this._usingMacOS&&this._isUsingChromium&&(this._pointerMacOSChromeOutEvent=i=>{i.buttons>1&&this._pointerCancelEvent(i)},this._elementToAttachTo.addEventListener("lostpointercapture",this._pointerMacOSChromeOutEvent)),this._elementToAttachTo.addEventListener(this._eventPrefix+"move",this._pointerMoveEvent),this._elementToAttachTo.addEventListener(this._eventPrefix+"down",this._pointerDownEvent),this._elementToAttachTo.addEventListener(this._eventPrefix+"up",this._pointerUpEvent),this._elementToAttachTo.addEventListener(this._eventPrefix+"cancel",this._pointerCancelEvent),this._elementToAttachTo.addEventListener(this._eventPrefix+"leave",this._pointerLeaveEvent),this._elementToAttachTo.addEventListener("blur",this._pointerBlurEvent),this._elementToAttachTo.addEventListener(this._wheelEventName,this._pointerWheelEvent,e?{passive:!1}:!1),this._pointerInputClearObserver=this._engine.onEndFrameObservable.add(()=>{if(this.isDeviceAvailable(is.Mouse)){const i=this._inputs[is.Mouse][0];i[xs.MouseWheelX]=0,i[xs.MouseWheelY]=0,i[xs.MouseWheelZ]=0}})}_handleGamepadActions(){this._gamepadConnectedEvent=e=>{this._addGamePad(e.gamepad)},this._gamepadDisconnectedEvent=e=>{if(this._gamepads){const t=this._getGamepadDeviceType(e.gamepad.id),i=e.gamepad.index;this._unregisterDevice(t,i),delete this._gamepads[i]}},window.addEventListener("gamepadconnected",this._gamepadConnectedEvent),window.addEventListener("gamepaddisconnected",this._gamepadDisconnectedEvent)}_updateDevice(e,t,i){const s=navigator.getGamepads()[t];if(s&&e===this._gamepads[t]){const r=this._inputs[e][t];i>=s.buttons.length?r[i]=s.axes[i-s.buttons.length].valueOf():r[i]=s.buttons[i].value}}_getGamepadDeviceType(e){return e.indexOf("054c")!==-1?e.indexOf("0ce6")!==-1?is.DualSense:is.DualShock:e.indexOf("Xbox One")!==-1||e.search("Xbox 360")!==-1||e.search("xinput")!==-1?is.Xbox:e.indexOf("057e")!==-1?is.Switch:is.Generic}_getPointerType(e){let t=is.Mouse;return(e.pointerType==="touch"||e.pointerType==="pen"||e.touches)&&(t=is.Touch),t}}class jX{constructor(e,t,i=0){this.deviceType=t,this.deviceSlot=i,this.onInputChangedObservable=new xe,this._deviceInputSystem=e}getInput(e){return this._deviceInputSystem.pollInput(this.deviceType,this.deviceSlot,e)}}class SOe{constructor(e){this._registeredManagers=new Array,this._refCount=0,this.registerManager=n=>{for(let o=0;o<this._devices.length;o++){const l=this._devices[o];for(const c in l){const u=+c;n._addDevice(new jX(this._deviceInputSystem,o,u))}}this._registeredManagers.push(n)},this.unregisterManager=n=>{const o=this._registeredManagers.indexOf(n);o>-1&&this._registeredManagers.splice(o,1)};const t=Object.keys(is).length/2;this._devices=new Array(t);const i=(n,o)=>{this._devices[n]||(this._devices[n]=new Array),this._devices[n][o]||(this._devices[n][o]=o);for(const l of this._registeredManagers){const c=new jX(this._deviceInputSystem,n,o);l._addDevice(c)}},s=(n,o)=>{var l;(l=this._devices[n])!=null&&l[o]&&delete this._devices[n][o];for(const c of this._registeredManagers)c._removeDevice(n,o)},r=(n,o,l)=>{if(l)for(const c of this._registeredManagers)c._onInputChanged(n,o,l)};typeof _native<"u"?this._deviceInputSystem=new xOe(i,s,r):this._deviceInputSystem=new bOe(e,i,s,r)}dispose(){this._deviceInputSystem.dispose()}}class _he{getDeviceSource(e,t){if(t===void 0){if(this._firstDevice[e]===void 0)return null;t=this._firstDevice[e]}return!this._devices[e]||this._devices[e][t]===void 0?null:this._devices[e][t]}getDeviceSources(e){return this._devices[e]?this._devices[e].filter(t=>!!t):[]}constructor(e){const t=Object.keys(is).length/2;this._devices=new Array(t),this._firstDevice=new Array(t),this._engine=e,this._engine._deviceSourceManager||(this._engine._deviceSourceManager=new SOe(e)),this._engine._deviceSourceManager._refCount++,this.onDeviceConnectedObservable=new xe(i=>{for(const s of this._devices)if(s)for(const r of s)r&&this.onDeviceConnectedObservable.notifyObserver(i,r)}),this.onDeviceDisconnectedObservable=new xe,this._engine._deviceSourceManager.registerManager(this),this._onDisposeObserver=e.onDisposeObservable.add(()=>{this.dispose()})}dispose(){this.onDeviceConnectedObservable.clear(),this.onDeviceDisconnectedObservable.clear(),this._engine._deviceSourceManager&&(this._engine._deviceSourceManager.unregisterManager(this),--this._engine._deviceSourceManager._refCount<1&&(this._engine._deviceSourceManager.dispose(),delete this._engine._deviceSourceManager)),this._engine.onDisposeObservable.remove(this._onDisposeObserver)}_addDevice(e){this._devices[e.deviceType]||(this._devices[e.deviceType]=new Array),this._devices[e.deviceType][e.deviceSlot]||(this._devices[e.deviceType][e.deviceSlot]=e,this._updateFirstDevices(e.deviceType)),this.onDeviceConnectedObservable.notifyObservers(e)}_removeDevice(e,t){var s,r;const i=(s=this._devices[e])==null?void 0:s[t];this.onDeviceDisconnectedObservable.notifyObservers(i),(r=this._devices[e])!=null&&r[t]&&delete this._devices[e][t],this._updateFirstDevices(e)}_onInputChanged(e,t,i){var s,r;(r=(s=this._devices[e])==null?void 0:s[t])==null||r.onInputChangedObservable.notifyObservers(i)}_updateFirstDevices(e){switch(e){case is.Keyboard:case is.Mouse:this._firstDevice[e]=0;break;case is.Touch:case is.DualSense:case is.DualShock:case is.Xbox:case is.Switch:case is.Generic:{delete this._firstDevice[e];const t=this._devices[e];if(t){for(let i=0;i<t.length;i++)if(t[i]){this._firstDevice[e]=i;break}}break}}}}class VX{}VX._IsPickingAvailable=!1;class vhe{constructor(){this._singleClick=!1,this._doubleClick=!1,this._hasSwiped=!1,this._ignore=!1}get singleClick(){return this._singleClick}get doubleClick(){return this._doubleClick}get hasSwiped(){return this._hasSwiped}get ignore(){return this._ignore}set singleClick(e){this._singleClick=e}set doubleClick(e){this._doubleClick=e}set hasSwiped(e){this._hasSwiped=e}set ignore(e){this._ignore=e}}class pl{constructor(e){this._alreadyAttached=!1,this._meshPickProceed=!1,this._currentPickResult=null,this._previousPickResult=null,this._activePointerIds=new Array,this._activePointerIdsCount=0,this._doubleClickOccured=!1,this._isSwiping=!1,this._swipeButtonPressed=-1,this._skipPointerTap=!1,this._isMultiTouchGesture=!1,this._pointerX=0,this._pointerY=0,this._startingPointerPosition=new Ue(0,0),this._previousStartingPointerPosition=new Ue(0,0),this._startingPointerTime=0,this._previousStartingPointerTime=0,this._pointerCaptures={},this._meshUnderPointerId={},this._movePointerInfo=null,this._cameraObserverCount=0,this._delayedClicks=[null,null,null,null,null],this._deviceSourceManager=null,this._scene=e||ei.LastCreatedScene,this._scene}get meshUnderPointer(){return this._movePointerInfo&&(this._movePointerInfo._generatePickInfo(),this._movePointerInfo=null),this._pointerOverMesh}getMeshUnderPointerByPointerId(e){return this._meshUnderPointerId[e]||null}get unTranslatedPointer(){return new Ue(this._unTranslatedPointerX,this._unTranslatedPointerY)}get pointerX(){return this._pointerX}set pointerX(e){this._pointerX=e}get pointerY(){return this._pointerY}set pointerY(e){this._pointerY=e}_updatePointerPosition(e){const t=this._scene.getEngine().getInputElementClientRect();t&&(this._pointerX=e.clientX-t.left,this._pointerY=e.clientY-t.top,this._unTranslatedPointerX=this._pointerX,this._unTranslatedPointerY=this._pointerY)}_processPointerMove(e,t){const i=this._scene,s=i.getEngine(),r=s.getInputElement();r&&(r.tabIndex=s.canvasTabIndex,i.doNotHandleCursors||(r.style.cursor=i.defaultCursor)),this._setCursorAndPointerOverMesh(e,t,i);for(const l of i._pointerMoveStage){e=e||this._pickMove(t);const c=!!(e!=null&&e.pickedMesh);e=l.action(this._unTranslatedPointerX,this._unTranslatedPointerY,e,c,r)}const n=t.inputIndex>=xs.MouseWheelX&&t.inputIndex<=xs.MouseWheelZ?Xt.POINTERWHEEL:Xt.POINTERMOVE;i.onPointerMove&&(e=e||this._pickMove(t),i.onPointerMove(t,e,n));let o;e?(o=new C4(n,t,e),this._setRayOnPointerInfo(e,t)):(o=new C4(n,t,null,this),this._movePointerInfo=o),i.onPointerObservable.hasObservers()&&i.onPointerObservable.notifyObservers(o,n)}_setRayOnPointerInfo(e,t){const i=this._scene;e&&VX._IsPickingAvailable&&(e.ray||(e.ray=i.createPickingRay(t.offsetX,t.offsetY,me.Identity(),i.activeCamera)))}_addCameraPointerObserver(e,t){return this._cameraObserverCount++,this._scene.onPointerObservable.add(e,t)}_removeCameraPointerObserver(e){return this._cameraObserverCount--,this._scene.onPointerObservable.remove(e)}_checkForPicking(){return!!(this._scene.onPointerObservable.observers.length>this._cameraObserverCount||this._scene.onPointerPick)}_checkPrePointerObservable(e,t,i){const s=this._scene,r=new phe(i,t,this._unTranslatedPointerX,this._unTranslatedPointerY);return e&&(r.originalPickingInfo=e,r.ray=e.ray,t.pointerType==="xr-near"&&e.originMesh&&(r.nearInteractionPickingInfo=e)),s.onPrePointerObservable.notifyObservers(r,i),!!r.skipOnPointerObservable}_pickMove(e){const t=this._scene,i=t.pick(this._unTranslatedPointerX,this._unTranslatedPointerY,t.pointerMovePredicate,t.pointerMoveFastCheck,t.cameraToUseForPointers,t.pointerMoveTrianglePredicate);return this._setCursorAndPointerOverMesh(i,e,t),i}_setCursorAndPointerOverMesh(e,t,i){const r=i.getEngine().getInputElement();if(e!=null&&e.pickedMesh){if(this.setPointerOverMesh(e.pickedMesh,t.pointerId,e,t),!i.doNotHandleCursors&&r&&this._pointerOverMesh){const n=this._pointerOverMesh._getActionManagerForTrigger();n&&n.hasPointerTriggers&&(r.style.cursor=n.hoverCursor||i.hoverCursor)}}else this.setPointerOverMesh(null,t.pointerId,e,t)}simulatePointerMove(e,t){const i=new PointerEvent("pointermove",t);i.inputIndex=xs.Move,!this._checkPrePointerObservable(e,i,Xt.POINTERMOVE)&&this._processPointerMove(e,i)}simulatePointerDown(e,t){const i=new PointerEvent("pointerdown",t);i.inputIndex=i.button+2,!this._checkPrePointerObservable(e,i,Xt.POINTERDOWN)&&this._processPointerDown(e,i)}_processPointerDown(e,t){const i=this._scene;if(e!=null&&e.pickedMesh){this._pickedDownMesh=e.pickedMesh;const n=e.pickedMesh._getActionManagerForTrigger();if(n){if(n.hasPickTriggers)switch(n.processTrigger(5,new Qa(e.pickedMesh,i.pointerX,i.pointerY,e.pickedMesh,t,e)),t.button){case 0:n.processTrigger(2,new Qa(e.pickedMesh,i.pointerX,i.pointerY,e.pickedMesh,t,e));break;case 1:n.processTrigger(4,new Qa(e.pickedMesh,i.pointerX,i.pointerY,e.pickedMesh,t,e));break;case 2:n.processTrigger(3,new Qa(e.pickedMesh,i.pointerX,i.pointerY,e.pickedMesh,t,e));break}n.hasSpecificTrigger(8)&&window.setTimeout(()=>{const o=i.pick(this._unTranslatedPointerX,this._unTranslatedPointerY,l=>l.isPickable&&l.isVisible&&l.isReady()&&l.actionManager&&l.actionManager.hasSpecificTrigger(8)&&l===this._pickedDownMesh,!1,i.cameraToUseForPointers);o!=null&&o.pickedMesh&&n&&this._activePointerIdsCount!==0&&Date.now()-this._startingPointerTime>pl.LongPressDelay&&!this._isPointerSwiping()&&(this._startingPointerTime=0,n.processTrigger(8,Qa.CreateNew(o.pickedMesh,t)))},pl.LongPressDelay)}}else for(const n of i._pointerDownStage)e=n.action(this._unTranslatedPointerX,this._unTranslatedPointerY,e,t,!1);let s;const r=Xt.POINTERDOWN;e?(i.onPointerDown&&i.onPointerDown(t,e,r),s=new C4(r,t,e),this._setRayOnPointerInfo(e,t)):s=new C4(r,t,null,this),i.onPointerObservable.hasObservers()&&i.onPointerObservable.notifyObservers(s,r)}_isPointerSwiping(){return this._isSwiping}simulatePointerUp(e,t,i){const s=new PointerEvent("pointerup",t);s.inputIndex=xs.Move;const r=new vhe;i?r.doubleClick=!0:r.singleClick=!0,!this._checkPrePointerObservable(e,s,Xt.POINTERUP)&&this._processPointerUp(e,s,r)}_processPointerUp(e,t,i){const s=this._scene;if(e!=null&&e.pickedMesh){if(this._pickedUpMesh=e.pickedMesh,this._pickedDownMesh===this._pickedUpMesh&&(s.onPointerPick&&s.onPointerPick(t,e),i.singleClick&&!i.ignore&&s.onPointerObservable.observers.length>this._cameraObserverCount)){const n=Xt.POINTERPICK,o=new C4(n,t,e);this._setRayOnPointerInfo(e,t),s.onPointerObservable.notifyObservers(o,n)}const r=e.pickedMesh._getActionManagerForTrigger();if(r&&!i.ignore){r.processTrigger(7,Qa.CreateNew(e.pickedMesh,t,e)),!i.hasSwiped&&i.singleClick&&r.processTrigger(1,Qa.CreateNew(e.pickedMesh,t,e));const n=e.pickedMesh._getActionManagerForTrigger(6);i.doubleClick&&n&&n.processTrigger(6,Qa.CreateNew(e.pickedMesh,t,e))}}else if(!i.ignore)for(const r of s._pointerUpStage)e=r.action(this._unTranslatedPointerX,this._unTranslatedPointerY,e,t,i.doubleClick);if(this._pickedDownMesh&&this._pickedDownMesh!==this._pickedUpMesh){const r=this._pickedDownMesh._getActionManagerForTrigger(16);r&&r.processTrigger(16,Qa.CreateNew(this._pickedDownMesh,t))}if(!i.ignore){const r=new C4(Xt.POINTERUP,t,e);if(this._setRayOnPointerInfo(e,t),s.onPointerObservable.notifyObservers(r,Xt.POINTERUP),s.onPointerUp&&s.onPointerUp(t,e,Xt.POINTERUP),!i.hasSwiped&&!this._skipPointerTap&&!this._isMultiTouchGesture){let n=0;if(i.singleClick?n=Xt.POINTERTAP:i.doubleClick&&(n=Xt.POINTERDOUBLETAP),n){const o=new C4(n,t,e);s.onPointerObservable.hasObservers()&&s.onPointerObservable.hasSpecificMask(n)&&s.onPointerObservable.notifyObservers(o,n)}}}}isPointerCaptured(e=0){return this._pointerCaptures[e]}attachControl(e=!0,t=!0,i=!0,s=null){const r=this._scene,n=r.getEngine();s||(s=n.getInputElement()),this._alreadyAttached&&this.detachControl(),s&&(this._alreadyAttachedTo=s),this._deviceSourceManager=new _he(n),this._initActionManager=o=>{if(!this._meshPickProceed){const l=r.skipPointerUpPicking||r._registeredActions===0&&!this._checkForPicking()&&!r.onPointerUp?null:r.pick(this._unTranslatedPointerX,this._unTranslatedPointerY,r.pointerUpPredicate,r.pointerUpFastCheck,r.cameraToUseForPointers,r.pointerUpTrianglePredicate);this._currentPickResult=l,l&&(o=l.hit&&l.pickedMesh?l.pickedMesh._getActionManagerForTrigger():null),this._meshPickProceed=!0}return o},this._delayedSimpleClick=(o,l,c)=>{if((Date.now()-this._previousStartingPointerTime>pl.DoubleClickDelay&&!this._doubleClickOccured||o!==this._previousButtonPressed)&&(this._doubleClickOccured=!1,l.singleClick=!0,l.ignore=!1,this._delayedClicks[o])){const u=this._delayedClicks[o].evt,f=Xt.POINTERTAP,p=new C4(f,u,this._currentPickResult);r.onPointerObservable.hasObservers()&&r.onPointerObservable.hasSpecificMask(f)&&r.onPointerObservable.notifyObservers(p,f),this._delayedClicks[o]=null}},this._initClickEvent=(o,l,c,u)=>{var d,h;const f=new vhe;this._currentPickResult=null;let p=null,m=o.hasSpecificMask(Xt.POINTERPICK)||l.hasSpecificMask(Xt.POINTERPICK)||o.hasSpecificMask(Xt.POINTERTAP)||l.hasSpecificMask(Xt.POINTERTAP)||o.hasSpecificMask(Xt.POINTERDOUBLETAP)||l.hasSpecificMask(Xt.POINTERDOUBLETAP);!m&&v0&&(p=this._initActionManager(p,f),p&&(m=p.hasPickTriggers));let _=!1;if(m=m&&!this._isMultiTouchGesture,m){const x=c.button;if(f.hasSwiped=this._isPointerSwiping(),!f.hasSwiped){let A=!pl.ExclusiveDoubleClickMode;if(A||(A=!o.hasSpecificMask(Xt.POINTERDOUBLETAP)&&!l.hasSpecificMask(Xt.POINTERDOUBLETAP),A&&!v0.HasSpecificTrigger(6)&&(p=this._initActionManager(p,f),p&&(A=!p.hasSpecificTrigger(6)))),A)(Date.now()-this._previousStartingPointerTime>pl.DoubleClickDelay||x!==this._previousButtonPressed)&&(f.singleClick=!0,u(f,this._currentPickResult),_=!0);else{const E={evt:c,clickInfo:f,timeoutId:window.setTimeout(this._delayedSimpleClick.bind(this,x,f,u),pl.DoubleClickDelay)};this._delayedClicks[x]=E}let S=o.hasSpecificMask(Xt.POINTERDOUBLETAP)||l.hasSpecificMask(Xt.POINTERDOUBLETAP);!S&&v0.HasSpecificTrigger(6)&&(p=this._initActionManager(p,f),p&&(S=p.hasSpecificTrigger(6))),S&&(x===this._previousButtonPressed&&Date.now()-this._previousStartingPointerTime<pl.DoubleClickDelay&&!this._doubleClickOccured?(!f.hasSwiped&&!this._isPointerSwiping()?(this._previousStartingPointerTime=0,this._doubleClickOccured=!0,f.doubleClick=!0,f.ignore=!1,pl.ExclusiveDoubleClickMode&&this._delayedClicks[x]&&(clearTimeout((d=this._delayedClicks[x])==null?void 0:d.timeoutId),this._delayedClicks[x]=null),u(f,this._currentPickResult)):(this._doubleClickOccured=!1,this._previousStartingPointerTime=this._startingPointerTime,this._previousStartingPointerPosition.x=this._startingPointerPosition.x,this._previousStartingPointerPosition.y=this._startingPointerPosition.y,this._previousButtonPressed=x,pl.ExclusiveDoubleClickMode?(this._delayedClicks[x]&&(clearTimeout((h=this._delayedClicks[x])==null?void 0:h.timeoutId),this._delayedClicks[x]=null),u(f,this._previousPickResult)):u(f,this._currentPickResult)),_=!0):(this._doubleClickOccured=!1,this._previousStartingPointerTime=this._startingPointerTime,this._previousStartingPointerPosition.x=this._startingPointerPosition.x,this._previousStartingPointerPosition.y=this._startingPointerPosition.y,this._previousButtonPressed=x))}}_||u(f,this._currentPickResult)},this._onPointerMove=o=>{if(this._updatePointerPosition(o),!this._isSwiping&&this._swipeButtonPressed!==-1&&(this._isSwiping=Math.abs(this._startingPointerPosition.x-this._pointerX)>pl.DragMovementThreshold||Math.abs(this._startingPointerPosition.y-this._pointerY)>pl.DragMovementThreshold),n.isPointerLock&&n._verifyPointerLock(),this._checkPrePointerObservable(null,o,o.inputIndex>=xs.MouseWheelX&&o.inputIndex<=xs.MouseWheelZ?Xt.POINTERWHEEL:Xt.POINTERMOVE)||!r.cameraToUseForPointers&&!r.activeCamera)return;if(r.skipPointerMovePicking){this._processPointerMove(new Kl,o);return}r.pointerMovePredicate||(r.pointerMovePredicate=c=>c.isPickable&&c.isVisible&&c.isReady()&&c.isEnabled()&&(c.enablePointerMoveEvents||r.constantlyUpdateMeshUnderPointer||c._getActionManagerForTrigger()!==null)&&(!r.cameraToUseForPointers||(r.cameraToUseForPointers.layerMask&c.layerMask)!==0));const l=r._registeredActions>0||r.constantlyUpdateMeshUnderPointer?this._pickMove(o):null;this._processPointerMove(l,o)},this._onPointerDown=o=>{var u;const l=this._activePointerIds.indexOf(-1);if(l===-1?this._activePointerIds.push(o.pointerId):this._activePointerIds[l]=o.pointerId,this._activePointerIdsCount++,this._pickedDownMesh=null,this._meshPickProceed=!1,pl.ExclusiveDoubleClickMode){for(let f=0;f<this._delayedClicks.length;f++)if(this._delayedClicks[f])if(o.button===f)clearTimeout((u=this._delayedClicks[f])==null?void 0:u.timeoutId);else{const p=this._delayedClicks[f].clickInfo;this._doubleClickOccured=!1,p.singleClick=!0,p.ignore=!1;const m=this._delayedClicks[f].evt,_=Xt.POINTERTAP,d=new C4(_,m,this._currentPickResult);r.onPointerObservable.hasObservers()&&r.onPointerObservable.hasSpecificMask(_)&&r.onPointerObservable.notifyObservers(d,_),this._delayedClicks[f]=null}}if(this._updatePointerPosition(o),this._swipeButtonPressed===-1&&(this._swipeButtonPressed=o.button),r.preventDefaultOnPointerDown&&s&&(o.preventDefault(),s.focus()),this._startingPointerPosition.x=this._pointerX,this._startingPointerPosition.y=this._pointerY,this._startingPointerTime=Date.now(),this._checkPrePointerObservable(null,o,Xt.POINTERDOWN)||!r.cameraToUseForPointers&&!r.activeCamera)return;this._pointerCaptures[o.pointerId]=!0,r.pointerDownPredicate||(r.pointerDownPredicate=f=>f.isPickable&&f.isVisible&&f.isReady()&&f.isEnabled()&&(!r.cameraToUseForPointers||(r.cameraToUseForPointers.layerMask&f.layerMask)!==0)),this._pickedDownMesh=null;let c;r.skipPointerDownPicking||r._registeredActions===0&&!this._checkForPicking()&&!r.onPointerDown?c=new Kl:c=r.pick(this._unTranslatedPointerX,this._unTranslatedPointerY,r.pointerDownPredicate,r.pointerDownFastCheck,r.cameraToUseForPointers,r.pointerDownTrianglePredicate),this._processPointerDown(c,o)},this._onPointerUp=o=>{const l=this._activePointerIds.indexOf(o.pointerId);l!==-1&&(this._activePointerIds[l]=-1,this._activePointerIdsCount--,this._pickedUpMesh=null,this._meshPickProceed=!1,this._updatePointerPosition(o),r.preventDefaultOnPointerUp&&s&&(o.preventDefault(),s.focus()),this._initClickEvent(r.onPrePointerObservable,r.onPointerObservable,o,(c,u)=>{if(r.onPrePointerObservable.hasObservers()&&(this._skipPointerTap=!1,!c.ignore)){if(this._checkPrePointerObservable(null,o,Xt.POINTERUP)){this._swipeButtonPressed===o.button&&(this._isSwiping=!1,this._swipeButtonPressed=-1),o.buttons===0&&(this._pointerCaptures[o.pointerId]=!1);return}c.hasSwiped||(c.singleClick&&r.onPrePointerObservable.hasSpecificMask(Xt.POINTERTAP)&&this._checkPrePointerObservable(null,o,Xt.POINTERTAP)&&(this._skipPointerTap=!0),c.doubleClick&&r.onPrePointerObservable.hasSpecificMask(Xt.POINTERDOUBLETAP)&&this._checkPrePointerObservable(null,o,Xt.POINTERDOUBLETAP)&&(this._skipPointerTap=!0))}if(!this._pointerCaptures[o.pointerId]){this._swipeButtonPressed===o.button&&(this._isSwiping=!1,this._swipeButtonPressed=-1);return}o.buttons===0&&(this._pointerCaptures[o.pointerId]=!1),!(!r.cameraToUseForPointers&&!r.activeCamera)&&(r.pointerUpPredicate||(r.pointerUpPredicate=f=>f.isPickable&&f.isVisible&&f.isReady()&&f.isEnabled()&&(!r.cameraToUseForPointers||(r.cameraToUseForPointers.layerMask&f.layerMask)!==0)),!this._meshPickProceed&&(v0&&v0.HasTriggers||this._checkForPicking()||r.onPointerUp)&&this._initActionManager(null,c),u||(u=this._currentPickResult),this._processPointerUp(u,o,c),this._previousPickResult=this._currentPickResult,this._swipeButtonPressed===o.button&&(this._isSwiping=!1,this._swipeButtonPressed=-1))}))},this._onKeyDown=o=>{const l=x4.KEYDOWN;if(r.onPreKeyboardObservable.hasObservers()){const c=new NX(l,o);if(r.onPreKeyboardObservable.notifyObservers(c,l),c.skipOnKeyboardObservable)return}if(r.onKeyboardObservable.hasObservers()){const c=new hG(l,o);r.onKeyboardObservable.notifyObservers(c,l)}r.actionManager&&r.actionManager.processTrigger(14,Qa.CreateNewFromScene(r,o))},this._onKeyUp=o=>{const l=x4.KEYUP;if(r.onPreKeyboardObservable.hasObservers()){const c=new NX(l,o);if(r.onPreKeyboardObservable.notifyObservers(c,l),c.skipOnKeyboardObservable)return}if(r.onKeyboardObservable.hasObservers()){const c=new hG(l,o);r.onKeyboardObservable.notifyObservers(c,l)}r.actionManager&&r.actionManager.processTrigger(15,Qa.CreateNewFromScene(r,o))},this._deviceSourceManager.onDeviceConnectedObservable.add(o=>{o.deviceType===is.Mouse?o.onInputChangedObservable.add(l=>{this._originMouseEvent=l,l.inputIndex===xs.LeftClick||l.inputIndex===xs.MiddleClick||l.inputIndex===xs.RightClick||l.inputIndex===xs.BrowserBack||l.inputIndex===xs.BrowserForward?t&&o.getInput(l.inputIndex)===1?this._onPointerDown(l):e&&o.getInput(l.inputIndex)===0&&this._onPointerUp(l):i&&(l.inputIndex===xs.Move?this._onPointerMove(l):(l.inputIndex===xs.MouseWheelX||l.inputIndex===xs.MouseWheelY||l.inputIndex===xs.MouseWheelZ)&&this._onPointerMove(l))}):o.deviceType===is.Touch?o.onInputChangedObservable.add(l=>{l.inputIndex===xs.LeftClick&&(t&&o.getInput(l.inputIndex)===1?(this._onPointerDown(l),this._activePointerIdsCount>1&&(this._isMultiTouchGesture=!0)):e&&o.getInput(l.inputIndex)===0&&(this._onPointerUp(l),this._activePointerIdsCount===0&&(this._isMultiTouchGesture=!1))),i&&l.inputIndex===xs.Move&&this._onPointerMove(l)}):o.deviceType===is.Keyboard&&o.onInputChangedObservable.add(l=>{l.type==="keydown"?this._onKeyDown(l):l.type==="keyup"&&this._onKeyUp(l)})}),this._alreadyAttached=!0}detachControl(){this._alreadyAttached&&(this._deviceSourceManager.dispose(),this._deviceSourceManager=null,this._alreadyAttachedTo&&!this._scene.doNotHandleCursors&&(this._alreadyAttachedTo.style.cursor=this._scene.defaultCursor),this._alreadyAttached=!1,this._alreadyAttachedTo=null)}setPointerOverMesh(e,t=0,i,s){if(this._meshUnderPointerId[t]===e&&(!e||!e._internalAbstractMeshDataInfo._pointerOverDisableMeshTesting))return;const r=this._meshUnderPointerId[t];let n;r&&(n=r._getActionManagerForTrigger(10),n&&n.processTrigger(10,new Qa(r,this._pointerX,this._pointerY,e,s,{pointerId:t}))),e?(this._meshUnderPointerId[t]=e,this._pointerOverMesh=e,n=e._getActionManagerForTrigger(9),n&&n.processTrigger(9,new Qa(e,this._pointerX,this._pointerY,e,s,{pointerId:t,pickResult:i}))):(delete this._meshUnderPointerId[t],this._pointerOverMesh=null),this._scene.onMeshUnderPointerUpdatedObservable.hasObservers()&&this._scene.onMeshUnderPointerUpdatedObservable.notifyObservers({mesh:e,pointerId:t})}getPointerOverMesh(){return this.meshUnderPointer}_invalidateMesh(e){this._pointerOverMesh===e&&(this._pointerOverMesh=null),this._pickedDownMesh===e&&(this._pickedDownMesh=null),this._pickedUpMesh===e&&(this._pickedUpMesh=null);for(const t in this._meshUnderPointerId)this._meshUnderPointerId[t]===e&&delete this._meshUnderPointerId[t]}}pl.DragMovementThreshold=10,pl.LongPressDelay=500,pl.DoubleClickDelay=300,pl.ExclusiveDoubleClickMode=!1;class wo{get min(){return this._min}get max(){return this._max}get average(){return this._average}get lastSecAverage(){return this._lastSecAverage}get current(){return this._current}get total(){return this._totalAccumulated}get count(){return this._totalValueCount}constructor(){this._startMonitoringTime=0,this._min=0,this._max=0,this._average=0,this._lastSecAverage=0,this._current=0,this._totalValueCount=0,this._totalAccumulated=0,this._lastSecAccumulated=0,this._lastSecTime=0,this._lastSecValueCount=0}fetchNewFrame(){this._totalValueCount++,this._current=0,this._lastSecValueCount++}addCount(e,t){wo.Enabled&&(this._current+=e,t&&this._fetchResult())}beginMonitoring(){wo.Enabled&&(this._startMonitoringTime=lr.Now)}endMonitoring(e=!0){if(!wo.Enabled)return;e&&this.fetchNewFrame();const t=lr.Now;this._current=t-this._startMonitoringTime,e&&this._fetchResult()}endFrame(){this._fetchResult()}_fetchResult(){this._totalAccumulated+=this._current,this._lastSecAccumulated+=this._current,this._min=Math.min(this._min,this._current),this._max=Math.max(this._max,this._current),this._average=this._totalAccumulated/this._totalValueCount;const e=lr.Now;e-this._lastSecTime>1e3&&(this._lastSecAverage=this._lastSecAccumulated/this._lastSecValueCount,this._lastSecTime=e,this._lastSecAccumulated=0,this._lastSecValueCount=0)}}wo.Enabled=!0;class Sh{constructor(e,t,i,s){this.normal=new P(e,t,i),this.d=s}asArray(){return[this.normal.x,this.normal.y,this.normal.z,this.d]}clone(){return new Sh(this.normal.x,this.normal.y,this.normal.z,this.d)}getClassName(){return"Plane"}getHashCode(){let e=this.normal.getHashCode();return e=e*397^(this.d|0),e}normalize(){const e=Math.sqrt(this.normal.x*this.normal.x+this.normal.y*this.normal.y+this.normal.z*this.normal.z);let t=0;return e!==0&&(t=1/e),this.normal.x*=t,this.normal.y*=t,this.normal.z*=t,this.d*=t,this}transform(e){const t=Sh._TmpMatrix;e.invertToRef(t);const i=t.m,s=this.normal.x,r=this.normal.y,n=this.normal.z,o=this.d,l=s*i[0]+r*i[1]+n*i[2]+o*i[3],c=s*i[4]+r*i[5]+n*i[6]+o*i[7],u=s*i[8]+r*i[9]+n*i[10]+o*i[11],f=s*i[12]+r*i[13]+n*i[14]+o*i[15];return new Sh(l,c,u,f)}dotCoordinate(e){return this.normal.x*e.x+this.normal.y*e.y+this.normal.z*e.z+this.d}copyFromPoints(e,t,i){const s=t.x-e.x,r=t.y-e.y,n=t.z-e.z,o=i.x-e.x,l=i.y-e.y,c=i.z-e.z,u=r*c-n*l,f=n*o-s*c,p=s*l-r*o,m=Math.sqrt(u*u+f*f+p*p);let _;return m!==0?_=1/m:_=0,this.normal.x=u*_,this.normal.y=f*_,this.normal.z=p*_,this.d=-(this.normal.x*e.x+this.normal.y*e.y+this.normal.z*e.z),this}isFrontFacingTo(e,t){return P.Dot(this.normal,e)<=t}signedDistanceTo(e){return P.Dot(e,this.normal)+this.d}static FromArray(e){return new Sh(e[0],e[1],e[2],e[3])}static FromPoints(e,t,i){const s=new Sh(0,0,0,0);return s.copyFromPoints(e,t,i),s}static FromPositionAndNormal(e,t){const i=new Sh(0,0,0,0);return this.FromPositionAndNormalToRef(e,t,i)}static FromPositionAndNormalToRef(e,t,i){return i.normal.copyFrom(t),i.normal.normalize(),i.d=-e.dot(i.normal),i}static SignedDistanceToPlaneFromPositionAndNormal(e,t,i){const s=-(t.x*e.x+t.y*e.y+t.z*e.z);return P.Dot(i,t)+s}}Sh._TmpMatrix=me.Identity();class t3{static GetPlanes(e){const t=[];for(let i=0;i<6;i++)t.push(new Sh(0,0,0,0));return t3.GetPlanesToRef(e,t),t}static GetNearPlaneToRef(e,t){const i=e.m;t.normal.x=i[3]+i[2],t.normal.y=i[7]+i[6],t.normal.z=i[11]+i[10],t.d=i[15]+i[14],t.normalize()}static GetFarPlaneToRef(e,t){const i=e.m;t.normal.x=i[3]-i[2],t.normal.y=i[7]-i[6],t.normal.z=i[11]-i[10],t.d=i[15]-i[14],t.normalize()}static GetLeftPlaneToRef(e,t){const i=e.m;t.normal.x=i[3]+i[0],t.normal.y=i[7]+i[4],t.normal.z=i[11]+i[8],t.d=i[15]+i[12],t.normalize()}static GetRightPlaneToRef(e,t){const i=e.m;t.normal.x=i[3]-i[0],t.normal.y=i[7]-i[4],t.normal.z=i[11]-i[8],t.d=i[15]-i[12],t.normalize()}static GetTopPlaneToRef(e,t){const i=e.m;t.normal.x=i[3]-i[1],t.normal.y=i[7]-i[5],t.normal.z=i[11]-i[9],t.d=i[15]-i[13],t.normalize()}static GetBottomPlaneToRef(e,t){const i=e.m;t.normal.x=i[3]+i[1],t.normal.y=i[7]+i[5],t.normal.z=i[11]+i[9],t.d=i[15]+i[13],t.normalize()}static GetPlanesToRef(e,t){t3.GetNearPlaneToRef(e,t[0]),t3.GetFarPlaneToRef(e,t[1]),t3.GetLeftPlaneToRef(e,t[2]),t3.GetRightPlaneToRef(e,t[3]),t3.GetTopPlaneToRef(e,t[4]),t3.GetBottomPlaneToRef(e,t[5])}static IsPointInFrustum(e,t){for(let i=0;i<6;i++)if(t[i].dotCoordinate(e)<0)return!1;return!0}}class gP{static get UniqueId(){const e=this._UniqueIdCounter;return this._UniqueIdCounter++,e}}gP._UniqueIdCounter=1;class qr{static CompareLightsPriority(e,t){return e.shadowEnabled!==t.shadowEnabled?(t.shadowEnabled?1:0)-(e.shadowEnabled?1:0):t.renderPriority-e.renderPriority}}qr.FALLOFF_DEFAULT=0,qr.FALLOFF_PHYSICAL=1,qr.FALLOFF_GLTF=2,qr.FALLOFF_STANDARD=3,qr.LIGHTMAP_DEFAULT=0,qr.LIGHTMAP_SPECULAR=1,qr.LIGHTMAP_SHADOWSONLY=2,qr.INTENSITYMODE_AUTOMATIC=0,qr.INTENSITYMODE_LUMINOUSPOWER=1,qr.INTENSITYMODE_LUMINOUSINTENSITY=2,qr.INTENSITYMODE_ILLUMINANCE=3,qr.INTENSITYMODE_LUMINANCE=4,qr.LIGHTTYPEID_POINTLIGHT=0,qr.LIGHTTYPEID_DIRECTIONALLIGHT=1,qr.LIGHTTYPEID_SPOTLIGHT=2,qr.LIGHTTYPEID_HEMISPHERICLIGHT=3,qr.LIGHTTYPEID_RECT_AREALIGHT=4;class yOe{constructor(){this.pointerDownFastCheck=!1,this.pointerUpFastCheck=!1,this.pointerMoveFastCheck=!1,this.skipPointerMovePicking=!1,this.skipPointerDownPicking=!1,this.skipPointerUpPicking=!1}}var GX;(function(a){a[a.BackwardCompatible=0]="BackwardCompatible",a[a.Intermediate=1]="Intermediate",a[a.Aggressive=2]="Aggressive"})(GX||(GX={}));class ui{static DefaultMaterialFactory(e){throw as("StandardMaterial")}static CollisionCoordinatorFactory(){throw as("DefaultCollisionCoordinator")}get clearColor(){return this._clearColor}set clearColor(e){e!==this._clearColor&&(this._clearColor=e,this.onClearColorChangedObservable.notifyObservers(this._clearColor))}get imageProcessingConfiguration(){return this._imageProcessingConfiguration}get performancePriority(){return this._performancePriority}set performancePriority(e){if(e!==this._performancePriority){switch(this._performancePriority=e,e){case 0:this.skipFrustumClipping=!1,this._renderingManager.maintainStateBetweenFrames=!1,this.skipPointerMovePicking=!1,this.autoClear=!0;break;case 1:this.skipFrustumClipping=!1,this._renderingManager.maintainStateBetweenFrames=!1,this.skipPointerMovePicking=!0,this.autoClear=!1;break;case 2:this.skipFrustumClipping=!0,this._renderingManager.maintainStateBetweenFrames=!0,this.skipPointerMovePicking=!0,this.autoClear=!1;break}this.onScenePerformancePriorityChangedObservable.notifyObservers(e)}}set forceWireframe(e){this._forceWireframe!==e&&(this._forceWireframe=e,this.markAllMaterialsAsDirty(16))}get forceWireframe(){return this._forceWireframe}set skipFrustumClipping(e){this._skipFrustumClipping!==e&&(this._skipFrustumClipping=e)}get skipFrustumClipping(){return this._skipFrustumClipping}set forcePointsCloud(e){this._forcePointsCloud!==e&&(this._forcePointsCloud=e,this.markAllMaterialsAsDirty(16))}get forcePointsCloud(){return this._forcePointsCloud}get environmentTexture(){return this._environmentTexture}set environmentTexture(e){this._environmentTexture!==e&&(this._environmentTexture=e,this.onEnvironmentTextureChangedObservable.notifyObservers(e),this.markAllMaterialsAsDirty(1))}getNodes(){let e=[];return e=e.concat(this.meshes),e=e.concat(this.lights),e=e.concat(this.cameras),e=e.concat(this.transformNodes),this.skeletons.forEach(t=>e=e.concat(t.bones)),e}get animationPropertiesOverride(){return this._animationPropertiesOverride}set animationPropertiesOverride(e){this._animationPropertiesOverride=e}set onDispose(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)}set beforeRender(e){this._onBeforeRenderObserver&&this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),e&&(this._onBeforeRenderObserver=this.onBeforeRenderObservable.add(e))}set afterRender(e){this._onAfterRenderObserver&&this.onAfterRenderObservable.remove(this._onAfterRenderObserver),e&&(this._onAfterRenderObserver=this.onAfterRenderObservable.add(e))}set beforeCameraRender(e){this._onBeforeCameraRenderObserver&&this.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),this._onBeforeCameraRenderObserver=this.onBeforeCameraRenderObservable.add(e)}set afterCameraRender(e){this._onAfterCameraRenderObserver&&this.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver),this._onAfterCameraRenderObserver=this.onAfterCameraRenderObservable.add(e)}get pointerDownPredicate(){return this._pointerPickingConfiguration.pointerDownPredicate}set pointerDownPredicate(e){this._pointerPickingConfiguration.pointerDownPredicate=e}get pointerUpPredicate(){return this._pointerPickingConfiguration.pointerUpPredicate}set pointerUpPredicate(e){this._pointerPickingConfiguration.pointerUpPredicate=e}get pointerMovePredicate(){return this._pointerPickingConfiguration.pointerMovePredicate}set pointerMovePredicate(e){this._pointerPickingConfiguration.pointerMovePredicate=e}get pointerDownFastCheck(){return this._pointerPickingConfiguration.pointerDownFastCheck}set pointerDownFastCheck(e){this._pointerPickingConfiguration.pointerDownFastCheck=e}get pointerUpFastCheck(){return this._pointerPickingConfiguration.pointerUpFastCheck}set pointerUpFastCheck(e){this._pointerPickingConfiguration.pointerUpFastCheck=e}get pointerMoveFastCheck(){return this._pointerPickingConfiguration.pointerMoveFastCheck}set pointerMoveFastCheck(e){this._pointerPickingConfiguration.pointerMoveFastCheck=e}get skipPointerMovePicking(){return this._pointerPickingConfiguration.skipPointerMovePicking}set skipPointerMovePicking(e){this._pointerPickingConfiguration.skipPointerMovePicking=e}get skipPointerDownPicking(){return this._pointerPickingConfiguration.skipPointerDownPicking}set skipPointerDownPicking(e){this._pointerPickingConfiguration.skipPointerDownPicking=e}get skipPointerUpPicking(){return this._pointerPickingConfiguration.skipPointerUpPicking}set skipPointerUpPicking(e){this._pointerPickingConfiguration.skipPointerUpPicking=e}get unTranslatedPointer(){return this._inputManager.unTranslatedPointer}static get DragMovementThreshold(){return pl.DragMovementThreshold}static set DragMovementThreshold(e){pl.DragMovementThreshold=e}static get LongPressDelay(){return pl.LongPressDelay}static set LongPressDelay(e){pl.LongPressDelay=e}static get DoubleClickDelay(){return pl.DoubleClickDelay}static set DoubleClickDelay(e){pl.DoubleClickDelay=e}static get ExclusiveDoubleClickMode(){return pl.ExclusiveDoubleClickMode}static set ExclusiveDoubleClickMode(e){pl.ExclusiveDoubleClickMode=e}bindEyePosition(e,t="vEyePosition",i=!1){var n;const s=this._forcedViewPosition?this._forcedViewPosition:this._mirroredCameraPosition?this._mirroredCameraPosition:((n=this.activeCamera)==null?void 0:n.globalPosition)??P.ZeroReadOnly,r=this.useRightHandedSystem===(this._mirroredCameraPosition!=null);return ae.Vector4[0].set(s.x,s.y,s.z,r?-1:1),e&&(i?e.setFloat3(t,ae.Vector4[0].x,ae.Vector4[0].y,ae.Vector4[0].z):e.setVector4(t,ae.Vector4[0])),ae.Vector4[0]}finalizeSceneUbo(){const e=this.getSceneUniformBuffer(),t=this.bindEyePosition(null);return e.updateFloat4("vEyePosition",t.x,t.y,t.z,t.w),e.update(),e}set useRightHandedSystem(e){this._useRightHandedSystem!==e&&(this._useRightHandedSystem=e,this.markAllMaterialsAsDirty(16))}get useRightHandedSystem(){return this._useRightHandedSystem}setStepId(e){this._currentStepId=e}getStepId(){return this._currentStepId}getInternalStep(){return this._currentInternalStep}set fogEnabled(e){this._fogEnabled!==e&&(this._fogEnabled=e,this.markAllMaterialsAsDirty(16))}get fogEnabled(){return this._fogEnabled}set fogMode(e){this._fogMode!==e&&(this._fogMode=e,this.markAllMaterialsAsDirty(16))}get fogMode(){return this._fogMode}get prePass(){return!!this.prePassRenderer&&this.prePassRenderer.defaultRT.enabled}set shadowsEnabled(e){this._shadowsEnabled!==e&&(this._shadowsEnabled=e,this.markAllMaterialsAsDirty(2))}get shadowsEnabled(){return this._shadowsEnabled}set lightsEnabled(e){this._lightsEnabled!==e&&(this._lightsEnabled=e,this.markAllMaterialsAsDirty(2))}get lightsEnabled(){return this._lightsEnabled}get activeCameras(){return this._activeCameras}set activeCameras(e){this._unObserveActiveCameras&&(this._unObserveActiveCameras(),this._unObserveActiveCameras=null),e&&(this._unObserveActiveCameras=ehe(e,()=>{this.onActiveCamerasChanged.notifyObservers(this)})),this._activeCameras=e}get activeCamera(){return this._activeCamera}set activeCamera(e){e!==this._activeCamera&&(this._activeCamera=e,this.onActiveCameraChanged.notifyObservers(this))}get _hasDefaultMaterial(){return ui.DefaultMaterialFactory!==ui._OriginalDefaultMaterialFactory}get defaultMaterial(){return this._defaultMaterial||(this._defaultMaterial=ui.DefaultMaterialFactory(this)),this._defaultMaterial}set defaultMaterial(e){this._defaultMaterial=e}set texturesEnabled(e){this._texturesEnabled!==e&&(this._texturesEnabled=e,this.markAllMaterialsAsDirty(1))}get texturesEnabled(){return this._texturesEnabled}get frameGraph(){return this._frameGraph}set frameGraph(e){if(this._frameGraph){this._frameGraph=e,e||(this.customRenderFunction=this._currentCustomRenderFunction);return}this._frameGraph=e,e&&(this._currentCustomRenderFunction=this.customRenderFunction,this.customRenderFunction=this._renderWithFrameGraph)}set skeletonsEnabled(e){this._skeletonsEnabled!==e&&(this._skeletonsEnabled=e,this.markAllMaterialsAsDirty(8))}get skeletonsEnabled(){return this._skeletonsEnabled}get collisionCoordinator(){return this._collisionCoordinator||(this._collisionCoordinator=ui.CollisionCoordinatorFactory(),this._collisionCoordinator.init(this)),this._collisionCoordinator}get renderingManager(){return this._renderingManager}get frustumPlanes(){return this._frustumPlanes}_registerTransientComponents(){if(this._transientComponents.length>0){for(const e of this._transientComponents)e.register();this._transientComponents.length=0}}_addComponent(e){this._components.push(e),this._transientComponents.push(e);const t=e;t.addFromContainer&&t.serialize&&this._serializableComponents.push(t)}_getComponent(e){for(const t of this._components)if(t.name===e)return t;return null}constructor(e,t){this._inputManager=new pl(this),this.cameraToUseForPointers=null,this._isScene=!0,this._blockEntityCollection=!1,this.autoClear=!0,this.autoClearDepthAndStencil=!0,this._clearColor=new St(.2,.2,.3,1),this.onClearColorChangedObservable=new xe,this.ambientColor=new Pe(0,0,0),this.environmentIntensity=1,this.iblIntensity=1,this._performancePriority=0,this.onScenePerformancePriorityChangedObservable=new xe,this._forceWireframe=!1,this._skipFrustumClipping=!1,this._forcePointsCloud=!1,this.rootNodes=[],this.cameras=[],this.lights=[],this.meshes=[],this.skeletons=[],this.particleSystems=[],this.animations=[],this.animationGroups=[],this.multiMaterials=[],this.materials=[],this.morphTargetManagers=[],this.geometries=[],this.transformNodes=[],this.actionManagers=[],this.textures=[],this._environmentTexture=null,this.postProcesses=[],this.effectLayers=[],this.sounds=null,this.layers=[],this.lensFlareSystems=[],this.proceduralTextures=[],this.animationsEnabled=!0,this._animationPropertiesOverride=null,this.useConstantAnimationDeltaTime=!1,this.constantlyUpdateMeshUnderPointer=!1,this.hoverCursor="pointer",this.defaultCursor="",this.doNotHandleCursors=!1,this.preventDefaultOnPointerDown=!0,this.preventDefaultOnPointerUp=!0,this.metadata=null,this.reservedDataStore=null,this.disableOfflineSupportExceptionRules=[],this.onDisposeObservable=new xe,this._onDisposeObserver=null,this.onBeforeRenderObservable=new xe,this._onBeforeRenderObserver=null,this.onAfterRenderObservable=new xe,this.onAfterRenderCameraObservable=new xe,this._onAfterRenderObserver=null,this.onBeforeAnimationsObservable=new xe,this.onAfterAnimationsObservable=new xe,this.onBeforeDrawPhaseObservable=new xe,this.onAfterDrawPhaseObservable=new xe,this.onReadyObservable=new xe,this.onBeforeCameraRenderObservable=new xe,this._onBeforeCameraRenderObserver=null,this.onAfterCameraRenderObservable=new xe,this._onAfterCameraRenderObserver=null,this.onBeforeActiveMeshesEvaluationObservable=new xe,this.onAfterActiveMeshesEvaluationObservable=new xe,this.onBeforeParticlesRenderingObservable=new xe,this.onAfterParticlesRenderingObservable=new xe,this.onDataLoadedObservable=new xe,this.onNewCameraAddedObservable=new xe,this.onCameraRemovedObservable=new xe,this.onNewLightAddedObservable=new xe,this.onLightRemovedObservable=new xe,this.onNewGeometryAddedObservable=new xe,this.onGeometryRemovedObservable=new xe,this.onNewTransformNodeAddedObservable=new xe,this.onTransformNodeRemovedObservable=new xe,this.onNewMeshAddedObservable=new xe,this.onMeshRemovedObservable=new xe,this.onNewSkeletonAddedObservable=new xe,this.onSkeletonRemovedObservable=new xe,this.onNewMaterialAddedObservable=new xe,this.onNewMultiMaterialAddedObservable=new xe,this.onMaterialRemovedObservable=new xe,this.onMultiMaterialRemovedObservable=new xe,this.onNewTextureAddedObservable=new xe,this.onTextureRemovedObservable=new xe,this.onBeforeRenderTargetsRenderObservable=new xe,this.onAfterRenderTargetsRenderObservable=new xe,this.onBeforeStepObservable=new xe,this.onAfterStepObservable=new xe,this.onActiveCameraChanged=new xe,this.onActiveCamerasChanged=new xe,this.onBeforeRenderingGroupObservable=new xe,this.onAfterRenderingGroupObservable=new xe,this.onMeshImportedObservable=new xe,this.onAnimationFileImportedObservable=new xe,this.onEnvironmentTextureChangedObservable=new xe,this.onMeshUnderPointerUpdatedObservable=new xe,this._registeredForLateAnimationBindings=new _y(256),this._pointerPickingConfiguration=new yOe,this.onPrePointerObservable=new xe,this.onPointerObservable=new xe,this.onPreKeyboardObservable=new xe,this.onKeyboardObservable=new xe,this._useRightHandedSystem=!1,this._timeAccumulator=0,this._currentStepId=0,this._currentInternalStep=0,this._fogEnabled=!0,this._fogMode=ui.FOGMODE_NONE,this.fogColor=new Pe(.2,.2,.3),this.fogDensity=.1,this.fogStart=0,this.fogEnd=1e3,this.needsPreviousWorldMatrices=!1,this._shadowsEnabled=!0,this._lightsEnabled=!0,this._unObserveActiveCameras=null,this._texturesEnabled=!0,this._frameGraph=null,this.frameGraphs=[],this.physicsEnabled=!0,this.particlesEnabled=!0,this.spritesEnabled=!0,this._skeletonsEnabled=!0,this.lensFlaresEnabled=!0,this.collisionsEnabled=!0,this.gravity=new P(0,-9.807,0),this.postProcessesEnabled=!0,this.renderTargetsEnabled=!0,this.dumpNextRenderTargets=!1,this.customRenderTargets=[],this.importedMeshesFiles=[],this.probesEnabled=!0,this._meshesForIntersections=new _y(256),this.proceduralTexturesEnabled=!0,this._totalVertices=new wo,this._activeIndices=new wo,this._activeParticles=new wo,this._activeBones=new wo,this._animationTime=0,this.animationTimeScale=1,this._renderId=0,this._frameId=0,this._executeWhenReadyTimeoutId=null,this._intermediateRendering=!1,this._defaultFrameBufferCleared=!1,this._viewUpdateFlag=-1,this._projectionUpdateFlag=-1,this._toBeDisposed=new Array(256),this._activeRequests=new Array,this._pendingData=new Array,this._isDisposed=!1,this.dispatchAllSubMeshesOfActiveMeshes=!1,this._activeMeshes=new dl(256),this._processedMaterials=new dl(256),this._renderTargets=new _y(256),this._materialsRenderTargets=new _y(256),this._activeParticleSystems=new dl(256),this._activeSkeletons=new _y(32),this._softwareSkinnedMeshes=new _y(32),this._activeAnimatables=new Array,this._transformMatrix=me.Zero(),this.requireLightSorting=!1,this._components=[],this._serializableComponents=[],this._transientComponents=[],this._beforeCameraUpdateStage=Ko.Create(),this._beforeClearStage=Ko.Create(),this._beforeRenderTargetClearStage=Ko.Create(),this._gatherRenderTargetsStage=Ko.Create(),this._gatherActiveCameraRenderTargetsStage=Ko.Create(),this._isReadyForMeshStage=Ko.Create(),this._beforeEvaluateActiveMeshStage=Ko.Create(),this._evaluateSubMeshStage=Ko.Create(),this._preActiveMeshStage=Ko.Create(),this._cameraDrawRenderTargetStage=Ko.Create(),this._beforeCameraDrawStage=Ko.Create(),this._beforeRenderTargetDrawStage=Ko.Create(),this._beforeRenderingGroupDrawStage=Ko.Create(),this._beforeRenderingMeshStage=Ko.Create(),this._afterRenderingMeshStage=Ko.Create(),this._afterRenderingGroupDrawStage=Ko.Create(),this._afterCameraDrawStage=Ko.Create(),this._afterCameraPostProcessStage=Ko.Create(),this._afterRenderTargetDrawStage=Ko.Create(),this._afterRenderTargetPostProcessStage=Ko.Create(),this._afterRenderStage=Ko.Create(),this._pointerMoveStage=Ko.Create(),this._pointerDownStage=Ko.Create(),this._pointerUpStage=Ko.Create(),this._geometriesByUniqueId=null,this._defaultMeshCandidates={data:[],length:0},this._defaultSubMeshCandidates={data:[],length:0},this._preventFreeActiveMeshesAndRenderingGroups=!1,this._activeMeshesFrozen=!1,this._activeMeshesFrozenButKeepClipping=!1,this._skipEvaluateActiveMeshesCompletely=!1,this._useCurrentFrameBuffer=!1,this._allowPostProcessClearColor=!0,this.getDeterministicFrameTime=()=>this._engine.getTimeStep(),this._registeredActions=0,this._blockMaterialDirtyMechanism=!1,this._perfCollector=null,this.activeCameras=[];const i={useGeometryUniqueIdsMap:!0,useMaterialMeshMap:!0,useClonedMeshMap:!0,virtual:!1,...t};e=this._engine=e||ei.LastCreatedEngine,i.virtual?e._virtualScenes.push(this):(ei._LastCreatedScene=this,e.scenes.push(this)),this._uid=null,this._renderingManager=new Fu(this),Aw&&(this.postProcessManager=new Aw(this)),Il()&&this.attachControl(),this._createUbo(),ws&&(this._imageProcessingConfiguration=new ws),this.setDefaultCandidateProviders(),i.useGeometryUniqueIdsMap&&(this._geometriesByUniqueId={}),this.useMaterialMeshMap=i.useMaterialMeshMap,this.useClonedMeshMap=i.useClonedMeshMap,(!t||!t.virtual)&&e.onNewSceneAddedObservable.notifyObservers(this)}getClassName(){return"Scene"}_getDefaultMeshCandidates(){return this._defaultMeshCandidates.data=this.meshes,this._defaultMeshCandidates.length=this.meshes.length,this._defaultMeshCandidates}_getDefaultSubMeshCandidates(e){return this._defaultSubMeshCandidates.data=e.subMeshes,this._defaultSubMeshCandidates.length=e.subMeshes.length,this._defaultSubMeshCandidates}setDefaultCandidateProviders(){this.getActiveMeshCandidates=()=>this._getDefaultMeshCandidates(),this.getActiveSubMeshCandidates=e=>this._getDefaultSubMeshCandidates(e),this.getIntersectingSubMeshCandidates=(e,t)=>this._getDefaultSubMeshCandidates(e),this.getCollidingSubMeshCandidates=(e,t)=>this._getDefaultSubMeshCandidates(e)}get meshUnderPointer(){return this._inputManager.meshUnderPointer}get pointerX(){return this._inputManager.pointerX}set pointerX(e){this._inputManager.pointerX=e}get pointerY(){return this._inputManager.pointerY}set pointerY(e){this._inputManager.pointerY=e}getCachedMaterial(){return this._cachedMaterial}getCachedEffect(){return this._cachedEffect}getCachedVisibility(){return this._cachedVisibility}isCachedMaterialInvalid(e,t,i=1){return this._cachedEffect!==t||this._cachedMaterial!==e||this._cachedVisibility!==i}getEngine(){return this._engine}getTotalVertices(){return this._totalVertices.current}get totalVerticesPerfCounter(){return this._totalVertices}getActiveIndices(){return this._activeIndices.current}get totalActiveIndicesPerfCounter(){return this._activeIndices}getActiveParticles(){return this._activeParticles.current}get activeParticlesPerfCounter(){return this._activeParticles}getActiveBones(){return this._activeBones.current}get activeBonesPerfCounter(){return this._activeBones}getActiveMeshes(){return this._activeMeshes}getAnimationRatio(){return this._animationRatio!==void 0?this._animationRatio:1}getRenderId(){return this._renderId}getFrameId(){return this._frameId}incrementRenderId(){this._renderId++}_createUbo(){this.setSceneUniformBuffer(this.createSceneUniformBuffer())}simulatePointerMove(e,t){return this._inputManager.simulatePointerMove(e,t),this}simulatePointerDown(e,t){return this._inputManager.simulatePointerDown(e,t),this}simulatePointerUp(e,t,i){return this._inputManager.simulatePointerUp(e,t,i),this}isPointerCaptured(e=0){return this._inputManager.isPointerCaptured(e)}attachControl(e=!0,t=!0,i=!0){this._inputManager.attachControl(e,t,i)}detachControl(){this._inputManager.detachControl()}isReady(e=!0){var n,o;if(this._isDisposed)return!1;let t;const i=this.getEngine(),s=i.currentRenderPassId;i.currentRenderPassId=((n=this.activeCamera)==null?void 0:n.renderPassId)??s;let r=!0;for(this._pendingData.length>0&&(r=!1),(o=this.prePassRenderer)==null||o.update(),this.useOrderIndependentTransparency&&this.depthPeelingRenderer&&r&&(r=this.depthPeelingRenderer.isReady()),e&&(this._processedMaterials.reset(),this._materialsRenderTargets.reset()),t=0;t<this.meshes.length;t++){const l=this.meshes[t];if(!l.subMeshes||l.subMeshes.length===0)continue;if(!l.isReady(!0)){r=!1;continue}const c=l.hasThinInstances||l.getClassName()==="InstancedMesh"||l.getClassName()==="InstancedLinesMesh"||i.getCaps().instancedArrays&&l.instances.length>0;for(const f of this._isReadyForMeshStage)f.action(l,c)||(r=!1);if(!e)continue;const u=l.material||this.defaultMaterial;if(u)if(u._storeEffectOnSubMeshes)for(const f of l.subMeshes){const p=f.getMaterial();p&&p.hasRenderTargetTextures&&p.getRenderTargetTextures!=null&&this._processedMaterials.indexOf(p)===-1&&(this._processedMaterials.push(p),this._materialsRenderTargets.concatWithNoDuplicate(p.getRenderTargetTextures()))}else u.hasRenderTargetTextures&&u.getRenderTargetTextures!=null&&this._processedMaterials.indexOf(u)===-1&&(this._processedMaterials.push(u),this._materialsRenderTargets.concatWithNoDuplicate(u.getRenderTargetTextures()))}if(e)for(t=0;t<this._materialsRenderTargets.length;++t)this._materialsRenderTargets.data[t].isReadyForRendering()||(r=!1);for(t=0;t<this.geometries.length;t++)this.geometries[t].delayLoadState===2&&(r=!1);if(this.activeCameras&&this.activeCameras.length>0)for(const l of this.activeCameras)l.isReady(!0)||(r=!1);else this.activeCamera&&(this.activeCamera.isReady(!0)||(r=!1));for(const l of this.particleSystems)l.isReady()||(r=!1);if(this.layers)for(const l of this.layers)l.isReady()||(r=!1);if(this.effectLayers)for(const l of this.effectLayers)l.isLayerReady()||(r=!1);return i.areAllEffectsReady()||(r=!1),i.currentRenderPassId=s,r}resetCachedMaterial(){this._cachedMaterial=null,this._cachedEffect=null,this._cachedVisibility=null}registerBeforeRender(e){this.onBeforeRenderObservable.add(e)}unregisterBeforeRender(e){this.onBeforeRenderObservable.removeCallback(e)}registerAfterRender(e){this.onAfterRenderObservable.add(e)}unregisterAfterRender(e){this.onAfterRenderObservable.removeCallback(e)}_executeOnceBeforeRender(e){const t=()=>{e(),setTimeout(()=>{this.unregisterBeforeRender(t)})};this.registerBeforeRender(t)}executeOnceBeforeRender(e,t){t!==void 0?setTimeout(()=>{this._executeOnceBeforeRender(e)},t):this._executeOnceBeforeRender(e)}addPendingData(e){this._pendingData.push(e)}removePendingData(e){const t=this.isLoading,i=this._pendingData.indexOf(e);i!==-1&&this._pendingData.splice(i,1),t&&!this.isLoading&&this.onDataLoadedObservable.notifyObservers(this)}getWaitingItemsCount(){return this._pendingData.length}get isLoading(){return this._pendingData.length>0}executeWhenReady(e,t=!1){this.onReadyObservable.addOnce(e),this._executeWhenReadyTimeoutId===null&&this._checkIsReady(t)}whenReadyAsync(e=!1){return new Promise(t=>{this.executeWhenReady(()=>{t()},e)})}_checkIsReady(e=!1){if(this._registerTransientComponents(),this.isReady(e)){this.onReadyObservable.notifyObservers(this),this.onReadyObservable.clear(),this._executeWhenReadyTimeoutId=null;return}if(this._isDisposed){this.onReadyObservable.clear(),this._executeWhenReadyTimeoutId=null;return}this._executeWhenReadyTimeoutId=setTimeout(()=>{this.incrementRenderId(),this._checkIsReady(e)},100)}get animatables(){return this._activeAnimatables}resetLastAnimationTimeFrame(){this._animationTimeLast=lr.Now}getViewMatrix(){return this._viewMatrix}getProjectionMatrix(){return this._projectionMatrix}getTransformMatrix(){return this._transformMatrix}setTransformMatrix(e,t,i,s){!i&&!s&&this._multiviewSceneUbo&&(this._multiviewSceneUbo.dispose(),this._multiviewSceneUbo=null),!(this._viewUpdateFlag===e.updateFlag&&this._projectionUpdateFlag===t.updateFlag)&&(this._viewUpdateFlag=e.updateFlag,this._projectionUpdateFlag=t.updateFlag,this._viewMatrix=e,this._projectionMatrix=t,this._viewMatrix.multiplyToRef(this._projectionMatrix,this._transformMatrix),this._frustumPlanes?t3.GetPlanesToRef(this._transformMatrix,this._frustumPlanes):this._frustumPlanes=t3.GetPlanes(this._transformMatrix),this._multiviewSceneUbo&&this._multiviewSceneUbo.useUbo?this._updateMultiviewUbo(i,s):this._sceneUbo.useUbo&&(this._sceneUbo.updateMatrix("viewProjection",this._transformMatrix),this._sceneUbo.updateMatrix("view",this._viewMatrix),this._sceneUbo.updateMatrix("projection",this._projectionMatrix)))}getSceneUniformBuffer(){return this._multiviewSceneUbo?this._multiviewSceneUbo:this._sceneUbo}createSceneUniformBuffer(e){const t=new Ti(this._engine,void 0,!1,e??"scene");return t.addUniform("viewProjection",16),t.addUniform("view",16),t.addUniform("projection",16),t.addUniform("vEyePosition",4),t}setSceneUniformBuffer(e){this._sceneUbo=e,this._viewUpdateFlag=-1,this._projectionUpdateFlag=-1}getUniqueId(){return gP.UniqueId}addMesh(e,t=!1){this._blockEntityCollection||(this.meshes.push(e),e._resyncLightSources(),e.parent||e._addToSceneRootNodes(),Le.SetImmediate(()=>{this.onNewMeshAddedObservable.notifyObservers(e)}),t&&e.getChildMeshes().forEach(i=>{this.addMesh(i)}))}removeMesh(e,t=!1){const i=this.meshes.indexOf(e);return i!==-1&&(this.meshes.splice(i,1),e.parent||e._removeFromSceneRootNodes()),this._inputManager._invalidateMesh(e),this.onMeshRemovedObservable.notifyObservers(e),t&&e.getChildMeshes().forEach(s=>{this.removeMesh(s)}),i}addTransformNode(e){this._blockEntityCollection||e.getScene()===this&&e._indexInSceneTransformNodesArray!==-1||(e._indexInSceneTransformNodesArray=this.transformNodes.length,this.transformNodes.push(e),e.parent||e._addToSceneRootNodes(),this.onNewTransformNodeAddedObservable.notifyObservers(e))}removeTransformNode(e){const t=e._indexInSceneTransformNodesArray;if(t!==-1){if(t!==this.transformNodes.length-1){const i=this.transformNodes[this.transformNodes.length-1];this.transformNodes[t]=i,i._indexInSceneTransformNodesArray=t}e._indexInSceneTransformNodesArray=-1,this.transformNodes.pop(),e.parent||e._removeFromSceneRootNodes()}return this.onTransformNodeRemovedObservable.notifyObservers(e),t}removeSkeleton(e){const t=this.skeletons.indexOf(e);return t!==-1&&(this.skeletons.splice(t,1),this.onSkeletonRemovedObservable.notifyObservers(e),this._executeActiveContainerCleanup(this._activeSkeletons)),t}removeMorphTargetManager(e){const t=this.morphTargetManagers.indexOf(e);return t!==-1&&this.morphTargetManagers.splice(t,1),t}removeLight(e){const t=this.lights.indexOf(e);if(t!==-1){for(const i of this.meshes)i._removeLightSource(e,!1);this.lights.splice(t,1),this.sortLightsByPriority(),e.parent||e._removeFromSceneRootNodes()}return this.onLightRemovedObservable.notifyObservers(e),t}removeCamera(e){const t=this.cameras.indexOf(e);if(t!==-1&&(this.cameras.splice(t,1),e.parent||e._removeFromSceneRootNodes()),this.activeCameras){const i=this.activeCameras.indexOf(e);i!==-1&&this.activeCameras.splice(i,1)}return this.activeCamera===e&&(this.cameras.length>0?this.activeCamera=this.cameras[0]:this.activeCamera=null),this.onCameraRemovedObservable.notifyObservers(e),t}removeParticleSystem(e){const t=this.particleSystems.indexOf(e);return t!==-1&&(this.particleSystems.splice(t,1),this._executeActiveContainerCleanup(this._activeParticleSystems)),t}removeAnimation(e){const t=this.animations.indexOf(e);return t!==-1&&this.animations.splice(t,1),t}stopAnimation(e,t,i){}removeAnimationGroup(e){const t=this.animationGroups.indexOf(e);return t!==-1&&this.animationGroups.splice(t,1),t}removeMultiMaterial(e){const t=this.multiMaterials.indexOf(e);return t!==-1&&this.multiMaterials.splice(t,1),this.onMultiMaterialRemovedObservable.notifyObservers(e),t}removeMaterial(e){const t=e._indexInSceneMaterialArray;if(t!==-1&&t<this.materials.length){if(t!==this.materials.length-1){const i=this.materials[this.materials.length-1];this.materials[t]=i,i._indexInSceneMaterialArray=t}e._indexInSceneMaterialArray=-1,this.materials.pop()}return this.onMaterialRemovedObservable.notifyObservers(e),t}removeActionManager(e){const t=this.actionManagers.indexOf(e);return t!==-1&&this.actionManagers.splice(t,1),t}removeTexture(e){const t=this.textures.indexOf(e);return t!==-1&&this.textures.splice(t,1),this.onTextureRemovedObservable.notifyObservers(e),t}addLight(e){if(!this._blockEntityCollection){this.lights.push(e),this.sortLightsByPriority(),e.parent||e._addToSceneRootNodes();for(const t of this.meshes)t.lightSources.indexOf(e)===-1&&(t.lightSources.push(e),t._resyncLightSources());Le.SetImmediate(()=>{this.onNewLightAddedObservable.notifyObservers(e)})}}sortLightsByPriority(){this.requireLightSorting&&this.lights.sort(qr.CompareLightsPriority)}addCamera(e){this._blockEntityCollection||(this.cameras.push(e),Le.SetImmediate(()=>{this.onNewCameraAddedObservable.notifyObservers(e)}),e.parent||e._addToSceneRootNodes())}addSkeleton(e){this._blockEntityCollection||(this.skeletons.push(e),Le.SetImmediate(()=>{this.onNewSkeletonAddedObservable.notifyObservers(e)}))}addParticleSystem(e){this._blockEntityCollection||this.particleSystems.push(e)}addAnimation(e){this._blockEntityCollection||this.animations.push(e)}addAnimationGroup(e){this._blockEntityCollection||this.animationGroups.push(e)}addMultiMaterial(e){this._blockEntityCollection||(this.multiMaterials.push(e),Le.SetImmediate(()=>{this.onNewMultiMaterialAddedObservable.notifyObservers(e)}))}addMaterial(e){this._blockEntityCollection||e.getScene()===this&&e._indexInSceneMaterialArray!==-1||(e._indexInSceneMaterialArray=this.materials.length,this.materials.push(e),Le.SetImmediate(()=>{this.onNewMaterialAddedObservable.notifyObservers(e)}))}addMorphTargetManager(e){this._blockEntityCollection||this.morphTargetManagers.push(e)}addGeometry(e){this._blockEntityCollection||(this._geometriesByUniqueId&&(this._geometriesByUniqueId[e.uniqueId]=this.geometries.length),this.geometries.push(e))}addActionManager(e){this.actionManagers.push(e)}addTexture(e){this._blockEntityCollection||(this.textures.push(e),this.onNewTextureAddedObservable.notifyObservers(e))}switchActiveCamera(e,t=!0){this._engine.getInputElement()&&(this.activeCamera&&this.activeCamera.detachControl(),this.activeCamera=e,t&&e.attachControl())}setActiveCameraById(e){const t=this.getCameraById(e);return t?(this.activeCamera=t,t):null}setActiveCameraByName(e){const t=this.getCameraByName(e);return t?(this.activeCamera=t,t):null}getAnimationGroupByName(e){for(let t=0;t<this.animationGroups.length;t++)if(this.animationGroups[t].name===e)return this.animationGroups[t];return null}_getMaterial(e,t){for(let i=0;i<this.materials.length;i++){const s=this.materials[i];if(t(s))return s}if(e)for(let i=0;i<this.multiMaterials.length;i++){const s=this.multiMaterials[i];if(t(s))return s}return null}getMaterialByUniqueID(e,t=!1){return this._getMaterial(t,i=>i.uniqueId===e)}getMaterialById(e,t=!1){return this._getMaterial(t,i=>i.id===e)}getMaterialByName(e,t=!1){return this._getMaterial(t,i=>i.name===e)}getLastMaterialById(e,t=!1){for(let i=this.materials.length-1;i>=0;i--)if(this.materials[i].id===e)return this.materials[i];if(t){for(let i=this.multiMaterials.length-1;i>=0;i--)if(this.multiMaterials[i].id===e)return this.multiMaterials[i]}return null}getTextureByUniqueId(e){for(let t=0;t<this.textures.length;t++)if(this.textures[t].uniqueId===e)return this.textures[t];return null}getTextureByName(e){for(let t=0;t<this.textures.length;t++)if(this.textures[t].name===e)return this.textures[t];return null}getCameraById(e){for(let t=0;t<this.cameras.length;t++)if(this.cameras[t].id===e)return this.cameras[t];return null}getCameraByUniqueId(e){for(let t=0;t<this.cameras.length;t++)if(this.cameras[t].uniqueId===e)return this.cameras[t];return null}getCameraByName(e){for(let t=0;t<this.cameras.length;t++)if(this.cameras[t].name===e)return this.cameras[t];return null}getBoneById(e){for(let t=0;t<this.skeletons.length;t++){const i=this.skeletons[t];for(let s=0;s<i.bones.length;s++)if(i.bones[s].id===e)return i.bones[s]}return null}getBoneByName(e){for(let t=0;t<this.skeletons.length;t++){const i=this.skeletons[t];for(let s=0;s<i.bones.length;s++)if(i.bones[s].name===e)return i.bones[s]}return null}getLightByName(e){for(let t=0;t<this.lights.length;t++)if(this.lights[t].name===e)return this.lights[t];return null}getLightById(e){for(let t=0;t<this.lights.length;t++)if(this.lights[t].id===e)return this.lights[t];return null}getLightByUniqueId(e){for(let t=0;t<this.lights.length;t++)if(this.lights[t].uniqueId===e)return this.lights[t];return null}getParticleSystemById(e){for(let t=0;t<this.particleSystems.length;t++)if(this.particleSystems[t].id===e)return this.particleSystems[t];return null}getGeometryById(e){for(let t=0;t<this.geometries.length;t++)if(this.geometries[t].id===e)return this.geometries[t];return null}_getGeometryByUniqueId(e){if(this._geometriesByUniqueId){const t=this._geometriesByUniqueId[e];if(t!==void 0)return this.geometries[t]}else for(let t=0;t<this.geometries.length;t++)if(this.geometries[t].uniqueId===e)return this.geometries[t];return null}getFrameGraphByName(e){for(let t=0;t<this.frameGraphs.length;t++)if(this.frameGraphs[t].name===e)return this.frameGraphs[t];return null}pushGeometry(e,t){return!t&&this._getGeometryByUniqueId(e.uniqueId)?!1:(this.addGeometry(e),Le.SetImmediate(()=>{this.onNewGeometryAddedObservable.notifyObservers(e)}),!0)}removeGeometry(e){let t;if(this._geometriesByUniqueId){if(t=this._geometriesByUniqueId[e.uniqueId],t===void 0)return!1}else if(t=this.geometries.indexOf(e),t<0)return!1;if(t!==this.geometries.length-1){const i=this.geometries[this.geometries.length-1];i&&(this.geometries[t]=i,this._geometriesByUniqueId&&(this._geometriesByUniqueId[i.uniqueId]=t))}return this._geometriesByUniqueId&&(this._geometriesByUniqueId[e.uniqueId]=void 0),this.geometries.pop(),this.onGeometryRemovedObservable.notifyObservers(e),!0}getGeometries(){return this.geometries}getMeshById(e){for(let t=0;t<this.meshes.length;t++)if(this.meshes[t].id===e)return this.meshes[t];return null}getMeshesById(e){return this.meshes.filter(function(t){return t.id===e})}getTransformNodeById(e){for(let t=0;t<this.transformNodes.length;t++)if(this.transformNodes[t].id===e)return this.transformNodes[t];return null}getTransformNodeByUniqueId(e){for(let t=0;t<this.transformNodes.length;t++)if(this.transformNodes[t].uniqueId===e)return this.transformNodes[t];return null}getTransformNodesById(e){return this.transformNodes.filter(function(t){return t.id===e})}getMeshByUniqueId(e){for(let t=0;t<this.meshes.length;t++)if(this.meshes[t].uniqueId===e)return this.meshes[t];return null}getLastMeshById(e){for(let t=this.meshes.length-1;t>=0;t--)if(this.meshes[t].id===e)return this.meshes[t];return null}getLastTransformNodeById(e){for(let t=this.transformNodes.length-1;t>=0;t--)if(this.transformNodes[t].id===e)return this.transformNodes[t];return null}getLastEntryById(e){let t;for(t=this.meshes.length-1;t>=0;t--)if(this.meshes[t].id===e)return this.meshes[t];for(t=this.transformNodes.length-1;t>=0;t--)if(this.transformNodes[t].id===e)return this.transformNodes[t];for(t=this.cameras.length-1;t>=0;t--)if(this.cameras[t].id===e)return this.cameras[t];for(t=this.lights.length-1;t>=0;t--)if(this.lights[t].id===e)return this.lights[t];return null}getNodeById(e){const t=this.getMeshById(e);if(t)return t;const i=this.getTransformNodeById(e);if(i)return i;const s=this.getLightById(e);if(s)return s;const r=this.getCameraById(e);if(r)return r;const n=this.getBoneById(e);return n||null}getNodeByName(e){const t=this.getMeshByName(e);if(t)return t;const i=this.getTransformNodeByName(e);if(i)return i;const s=this.getLightByName(e);if(s)return s;const r=this.getCameraByName(e);if(r)return r;const n=this.getBoneByName(e);return n||null}getMeshByName(e){for(let t=0;t<this.meshes.length;t++)if(this.meshes[t].name===e)return this.meshes[t];return null}getTransformNodeByName(e){for(let t=0;t<this.transformNodes.length;t++)if(this.transformNodes[t].name===e)return this.transformNodes[t];return null}getLastSkeletonById(e){for(let t=this.skeletons.length-1;t>=0;t--)if(this.skeletons[t].id===e)return this.skeletons[t];return null}getSkeletonByUniqueId(e){for(let t=0;t<this.skeletons.length;t++)if(this.skeletons[t].uniqueId===e)return this.skeletons[t];return null}getSkeletonById(e){for(let t=0;t<this.skeletons.length;t++)if(this.skeletons[t].id===e)return this.skeletons[t];return null}getSkeletonByName(e){for(let t=0;t<this.skeletons.length;t++)if(this.skeletons[t].name===e)return this.skeletons[t];return null}getMorphTargetManagerById(e){for(let t=0;t<this.morphTargetManagers.length;t++)if(this.morphTargetManagers[t].uniqueId===e)return this.morphTargetManagers[t];return null}getMorphTargetById(e){for(let t=0;t<this.morphTargetManagers.length;++t){const i=this.morphTargetManagers[t];for(let s=0;s<i.numTargets;++s){const r=i.getTarget(s);if(r.id===e)return r}}return null}getMorphTargetByName(e){for(let t=0;t<this.morphTargetManagers.length;++t){const i=this.morphTargetManagers[t];for(let s=0;s<i.numTargets;++s){const r=i.getTarget(s);if(r.name===e)return r}}return null}getPostProcessByName(e){for(let t=0;t<this.postProcesses.length;++t){const i=this.postProcesses[t];if(i.name===e)return i}return null}isActiveMesh(e){return this._activeMeshes.indexOf(e)!==-1}get uid(){return this._uid||(this._uid=Le.RandomId()),this._uid}addExternalData(e,t){return this._externalData||(this._externalData=new nG),this._externalData.add(e,t)}getExternalData(e){return this._externalData?this._externalData.get(e):null}getOrAddExternalDataWithFactory(e,t){return this._externalData||(this._externalData=new nG),this._externalData.getOrAddWithFactory(e,t)}removeExternalData(e){return this._externalData.remove(e)}_evaluateSubMesh(e,t,i,s){if(s||e.isInFrustum(this._frustumPlanes)){for(const n of this._evaluateSubMeshStage)n.action(t,e);const r=e.getMaterial();r!=null&&(r.hasRenderTargetTextures&&r.getRenderTargetTextures!=null&&this._processedMaterials.indexOf(r)===-1&&(this._processedMaterials.push(r),this._materialsRenderTargets.concatWithNoDuplicate(r.getRenderTargetTextures())),this._renderingManager.dispatch(e,t,r))}}freeProcessedMaterials(){this._processedMaterials.dispose()}get blockfreeActiveMeshesAndRenderingGroups(){return this._preventFreeActiveMeshesAndRenderingGroups}set blockfreeActiveMeshesAndRenderingGroups(e){this._preventFreeActiveMeshesAndRenderingGroups!==e&&(e&&(this.freeActiveMeshes(),this.freeRenderingGroups()),this._preventFreeActiveMeshesAndRenderingGroups=e)}freeActiveMeshes(){if(!this.blockfreeActiveMeshesAndRenderingGroups&&(this._activeMeshes.dispose(),this.activeCamera&&this.activeCamera._activeMeshes&&this.activeCamera._activeMeshes.dispose(),this.activeCameras))for(let e=0;e<this.activeCameras.length;e++){const t=this.activeCameras[e];t&&t._activeMeshes&&t._activeMeshes.dispose()}}freeRenderingGroups(){if(!this.blockfreeActiveMeshesAndRenderingGroups&&(this._renderingManager&&this._renderingManager.freeRenderingGroups(),this.textures))for(let e=0;e<this.textures.length;e++){const t=this.textures[e];t&&t.renderList&&t.freeRenderingGroups()}}_isInIntermediateRendering(){return this._intermediateRendering}freezeActiveMeshes(e=!1,t,i,s=!0,r=!1){return this.executeWhenReady(()=>{if(!this.activeCamera){i&&i("No active camera found");return}if(this._frustumPlanes||this.updateTransformMatrix(),this._evaluateActiveMeshes(),this._activeMeshesFrozen=!0,this._activeMeshesFrozenButKeepClipping=r,this._skipEvaluateActiveMeshesCompletely=e,s)for(let n=0;n<this._activeMeshes.length;n++)this._activeMeshes.data[n]._freeze();t&&t()}),this}unfreezeActiveMeshes(){for(let e=0;e<this.meshes.length;e++){const t=this.meshes[e];t._internalAbstractMeshDataInfo&&(t._internalAbstractMeshDataInfo._isActive=!1)}for(let e=0;e<this._activeMeshes.length;e++)this._activeMeshes.data[e]._unFreeze();return this._activeMeshesFrozen=!1,this}_executeActiveContainerCleanup(e){!(this._engine.snapshotRendering&&this._engine.snapshotRenderingMode===1)&&this._activeMeshesFrozen&&this._activeMeshes.length||this.onBeforeRenderObservable.addOnce(()=>e.dispose())}_evaluateActiveMeshes(){var i;if(this._engine.snapshotRendering&&this._engine.snapshotRenderingMode===1){this._activeMeshes.length>0&&((i=this.activeCamera)==null||i._activeMeshes.reset(),this._activeMeshes.reset(),this._renderingManager.reset(),this._processedMaterials.reset(),this._activeParticleSystems.reset(),this._activeSkeletons.reset(),this._softwareSkinnedMeshes.reset());return}if(this._activeMeshesFrozen&&this._activeMeshes.length){if(!this._skipEvaluateActiveMeshesCompletely){const s=this._activeMeshes.length;for(let r=0;r<s;r++)this._activeMeshes.data[r].computeWorldMatrix()}if(this._activeParticleSystems){const s=this._activeParticleSystems.length;for(let r=0;r<s;r++)this._activeParticleSystems.data[r].animate()}this._renderingManager.resetSprites();return}if(!this.activeCamera)return;this.onBeforeActiveMeshesEvaluationObservable.notifyObservers(this),this.activeCamera._activeMeshes.reset(),this._activeMeshes.reset(),this._renderingManager.reset(),this._processedMaterials.reset(),this._activeParticleSystems.reset(),this._activeSkeletons.reset(),this._softwareSkinnedMeshes.reset(),this._materialsRenderTargets.reset();for(const s of this._beforeEvaluateActiveMeshStage)s.action();const e=this.getActiveMeshCandidates(),t=e.length;for(let s=0;s<t;s++){const r=e.data[s];let n=r._internalAbstractMeshDataInfo._currentLOD.get(this.activeCamera);if(n?n[1]=-1:(n=[r,-1],r._internalAbstractMeshDataInfo._currentLOD.set(this.activeCamera,n)),r.isBlocked||(this._totalVertices.addCount(r.getTotalVertices(),!1),!r.isReady()||!r.isEnabled()||r.scaling.hasAZeroComponent))continue;r.computeWorldMatrix(),r.actionManager&&r.actionManager.hasSpecificTriggers2(12,13)&&this._meshesForIntersections.pushNoDuplicate(r);let o=this.customLODSelector?this.customLODSelector(r,this.activeCamera):r.getLOD(this.activeCamera);if(n[0]=o,n[1]=this._frameId,o!=null&&(o!==r&&o.billboardMode!==0&&o.computeWorldMatrix(),r._preActivate(),r.isVisible&&r.visibility>0&&r.layerMask&this.activeCamera.layerMask&&(this._skipFrustumClipping||r.alwaysSelectAsActiveMesh||r.isInFrustum(this._frustumPlanes)))){this._activeMeshes.push(r),this.activeCamera._activeMeshes.push(r),o!==r&&o._activate(this._renderId,!1);for(const l of this._preActiveMeshStage)l.action(r);r._activate(this._renderId,!1)&&(r.isAnInstance?r._internalAbstractMeshDataInfo._actAsRegularMesh&&(o=r):o._internalAbstractMeshDataInfo._onlyForInstances=!1,o._internalAbstractMeshDataInfo._isActive=!0,this._activeMesh(r,o)),r._postActivate()}}if(this.onAfterActiveMeshesEvaluationObservable.notifyObservers(this),this.particlesEnabled){this.onBeforeParticlesRenderingObservable.notifyObservers(this);for(let s=0;s<this.particleSystems.length;s++){const r=this.particleSystems[s];if(!r.isStarted()||!r.emitter)continue;const n=r.emitter;(!n.position||n.isEnabled())&&(this._activeParticleSystems.push(r),r.animate(),this._renderingManager.dispatchParticles(r))}this.onAfterParticlesRenderingObservable.notifyObservers(this)}}_prepareSkeleton(e){!this._skeletonsEnabled||!e.skeleton||(this._activeSkeletons.pushNoDuplicate(e.skeleton)&&(e.skeleton.prepare(),this._activeBones.addCount(e.skeleton.bones.length,!1)),e.computeBonesUsingShaders||this._softwareSkinnedMeshes.pushNoDuplicate(e)&&this.frameGraph&&e.applySkeleton(e.skeleton))}_activeMesh(e,t){this._prepareSkeleton(t);let i=e.hasInstances||e.isAnInstance||this.dispatchAllSubMeshesOfActiveMeshes||this._skipFrustumClipping||t.alwaysSelectAsActiveMesh;if(t&&t.subMeshes&&t.subMeshes.length>0){const s=this.getActiveSubMeshCandidates(t),r=s.length;i=i||r===1;for(let n=0;n<r;n++){const o=s.data[n];this._evaluateSubMesh(o,t,e,i)}}}updateTransformMatrix(e){const t=this.activeCamera;if(t)if(t._renderingMultiview){const i=t._rigCameras[0],s=t._rigCameras[1];this.setTransformMatrix(i.getViewMatrix(),i.getProjectionMatrix(e),s.getViewMatrix(),s.getProjectionMatrix(e))}else this.setTransformMatrix(t.getViewMatrix(),t.getProjectionMatrix(e))}_bindFrameBuffer(e,t=!0){this._useCurrentFrameBuffer||(e&&e._multiviewTexture?e._multiviewTexture._bindFrameBuffer():e&&e.outputRenderTarget?e.outputRenderTarget._bindFrameBuffer():this._engine._currentFrameBufferIsDefaultFrameBuffer()||this._engine.restoreDefaultFramebuffer()),t&&this._clearFrameBuffer(e)}_clearFrameBuffer(e){if(!(e&&e._multiviewTexture))if(e&&e.outputRenderTarget&&!e._renderingMultiview){const t=e.outputRenderTarget;t.onClearObservable.hasObservers()?t.onClearObservable.notifyObservers(this._engine):!t.skipInitialClear&&!e.isRightCamera&&(this.autoClear&&this._engine.clear(t.clearColor||this._clearColor,!t._cleared,!0,!0),t._cleared=!0)}else this._defaultFrameBufferCleared?this._engine.clear(null,!1,!0,!0):(this._defaultFrameBufferCleared=!0,this._clear())}_renderForCamera(e,t,i=!0){var n;if(e&&e._skipRendering)return;const s=this._engine;if(this._activeCamera=e,!this.activeCamera)throw new Error("Active camera not set");if(s.setViewport(this.activeCamera.viewport),this.resetCachedMaterial(),this._renderId++,!this.prePass&&i){let o=!0;e._renderingMultiview&&e.outputRenderTarget&&(o=e.outputRenderTarget.skipInitialClear,this.autoClear&&(this._defaultFrameBufferCleared=!1,e.outputRenderTarget.skipInitialClear=!1)),this._bindFrameBuffer(this._activeCamera),e._renderingMultiview&&e.outputRenderTarget&&(e.outputRenderTarget.skipInitialClear=o)}this.updateTransformMatrix(),this.onBeforeCameraRenderObservable.notifyObservers(this.activeCamera),this._evaluateActiveMeshes();for(let o=0;o<this._softwareSkinnedMeshes.length;o++){const l=this._softwareSkinnedMeshes.data[o];l.applySkeleton(l.skeleton)}this.onBeforeRenderTargetsRenderObservable.notifyObservers(this),this._renderTargets.concatWithNoDuplicate(this._materialsRenderTargets),e.customRenderTargets&&e.customRenderTargets.length>0&&this._renderTargets.concatWithNoDuplicate(e.customRenderTargets),t&&t.customRenderTargets&&t.customRenderTargets.length>0&&this._renderTargets.concatWithNoDuplicate(t.customRenderTargets),this.environmentTexture&&this.environmentTexture.isRenderTarget&&this._renderTargets.pushNoDuplicate(this.environmentTexture);for(const o of this._gatherActiveCameraRenderTargetsStage)o.action(this._renderTargets);let r=!1;if(this.renderTargetsEnabled){if(this._intermediateRendering=!0,this._renderTargets.length>0){Le.StartPerformanceCounter("Render targets",this._renderTargets.length>0);for(let o=0;o<this._renderTargets.length;o++){const l=this._renderTargets.data[o];if(l._shouldRender()){this._renderId++;const c=l.activeCamera&&l.activeCamera!==this.activeCamera;l.render(c,this.dumpNextRenderTargets),r=!0}}Le.EndPerformanceCounter("Render targets",this._renderTargets.length>0),this._renderId++}for(const o of this._cameraDrawRenderTargetStage)r=o.action(this.activeCamera)||r;this._intermediateRendering=!1}this._engine.currentRenderPassId=((n=e.outputRenderTarget)==null?void 0:n.renderPassId)??e.renderPassId??0,r&&!this.prePass&&(this._bindFrameBuffer(this._activeCamera,!1),this.updateTransformMatrix()),this.onAfterRenderTargetsRenderObservable.notifyObservers(this),this.postProcessManager&&!e._multiviewTexture&&!this.prePass&&this.postProcessManager._prepareFrame();for(const o of this._beforeCameraDrawStage)o.action(this.activeCamera);this.onBeforeDrawPhaseObservable.notifyObservers(this),s.snapshotRendering&&s.snapshotRenderingMode===1&&this.finalizeSceneUbo(),this._renderingManager.render(null,null,!0,!0),this.onAfterDrawPhaseObservable.notifyObservers(this);for(const o of this._afterCameraDrawStage)o.action(this.activeCamera);if(this.postProcessManager&&!e._multiviewTexture){const o=e.outputRenderTarget?e.outputRenderTarget.renderTarget:void 0;this.postProcessManager._finalizeFrame(e.isIntermediate,o)}for(const o of this._afterCameraPostProcessStage)o.action(this.activeCamera);this._renderTargets.reset(),this.onAfterCameraRenderObservable.notifyObservers(this.activeCamera)}_processSubCameras(e,t=!0){if(e.cameraRigMode===0||e._renderingMultiview){e._renderingMultiview&&!this._multiviewSceneUbo&&this._createMultiviewUbo(),this._renderForCamera(e,void 0,t),this.onAfterRenderCameraObservable.notifyObservers(e);return}if(e._useMultiviewToSingleView)this._renderMultiviewToSingleView(e);else{this.onBeforeCameraRenderObservable.notifyObservers(e);for(let i=0;i<e._rigCameras.length;i++)this._renderForCamera(e._rigCameras[i],e)}this._activeCamera=e,this.updateTransformMatrix(),this.onAfterRenderCameraObservable.notifyObservers(e)}_checkIntersections(){for(let e=0;e<this._meshesForIntersections.length;e++){const t=this._meshesForIntersections.data[e];if(t.actionManager)for(let i=0;t.actionManager&&i<t.actionManager.actions.length;i++){const s=t.actionManager.actions[i];if(s.trigger===12||s.trigger===13){const r=s.getTriggerParameter(),n=r.mesh?r.mesh:r,o=n.intersectsMesh(t,r.usePreciseIntersection),l=t._intersectionsInProgress.indexOf(n);o&&l===-1?s.trigger===12?(s._executeCurrent(Qa.CreateNew(t,void 0,n)),t._intersectionsInProgress.push(n)):s.trigger===13&&t._intersectionsInProgress.push(n):!o&&l>-1&&(s.trigger===13&&s._executeCurrent(Qa.CreateNew(t,void 0,n)),(!t.actionManager.hasSpecificTrigger(13,c=>{const u=c.mesh?c.mesh:c;return n===u})||s.trigger===13)&&t._intersectionsInProgress.splice(l,1))}}}}_advancePhysicsEngineStep(e){}_animate(e){}animate(){if(this._engine.isDeterministicLockStep()){let e=Math.max(ui.MinDeltaTime,Math.min(this._engine.getDeltaTime(),ui.MaxDeltaTime))+this._timeAccumulator;const t=this._engine.getTimeStep(),i=1e3/t/1e3;let s=0;const r=this._engine.getLockstepMaxSteps();let n=Math.floor(e/t);for(n=Math.min(n,r);e>0&&s<n;)this.onBeforeStepObservable.notifyObservers(this),this._animationRatio=t*i,this._animate(t),this.onAfterAnimationsObservable.notifyObservers(this),this.physicsEnabled&&this._advancePhysicsEngineStep(t),this.onAfterStepObservable.notifyObservers(this),this._currentStepId++,s++,e-=t;this._timeAccumulator=e<0?0:e}else{const e=this.useConstantAnimationDeltaTime?16:Math.max(ui.MinDeltaTime,Math.min(this._engine.getDeltaTime(),ui.MaxDeltaTime));this._animationRatio=e*(60/1e3),this._animate(),this.onAfterAnimationsObservable.notifyObservers(this),this.physicsEnabled&&this._advancePhysicsEngineStep(e)}}_clear(){(this.autoClearDepthAndStencil||this.autoClear)&&this._engine.clear(this._clearColor,this.autoClear||this.forceWireframe||this.forcePointsCloud,this.autoClearDepthAndStencil,this.autoClearDepthAndStencil)}_checkCameraRenderTarget(e){var t;if(e!=null&&e.outputRenderTarget&&!(e!=null&&e.isRigCamera)&&(e.outputRenderTarget._cleared=!1),(t=e==null?void 0:e.rigCameras)!=null&&t.length)for(let i=0;i<e.rigCameras.length;++i){const s=e.rigCameras[i].outputRenderTarget;s&&(s._cleared=!1)}}resetDrawCache(e){if(this.meshes)for(const t of this.meshes)t.resetDrawCache(e)}_renderWithFrameGraph(e=!0,t=!1){var r;if(this.activeCamera=null,this._activeParticleSystems.reset(),this._activeSkeletons.reset(),e){for(const n of this.cameras)if(n.update(),n.cameraRigMode!==0)for(let o=0;o<n._rigCameras.length;o++)n._rigCameras[o].update()}for(const n of this._beforeClearStage)n.action();const i=this.getActiveMeshCandidates(),s=i.length;for(let n=0;n<s;n++){const o=i.data[n];o.isBlocked||(this._totalVertices.addCount(o.getTotalVertices(),!1),!(!o.isReady()||!o.isEnabled()||o.scaling.hasAZeroComponent)&&(o.computeWorldMatrix(),o.actionManager&&o.actionManager.hasSpecificTriggers2(12,13)&&this._meshesForIntersections.pushNoDuplicate(o)))}if(this.particlesEnabled)for(let n=0;n<this.particleSystems.length;n++){const o=this.particleSystems[n];if(!o.isStarted()||!o.emitter)continue;const l=o.emitter;(!l.position||l.isEnabled())&&(this._activeParticleSystems.push(o),o.animate())}(r=this.frameGraph)==null||r.execute()}render(e=!0,t=!1){var i,s;if(!this.isDisposed){this.onReadyObservable.hasObservers()&&this._executeWhenReadyTimeoutId===null&&this._checkIsReady(),this._frameId++,this._defaultFrameBufferCleared=!1,this._checkCameraRenderTarget(this.activeCamera),(i=this.activeCameras)!=null&&i.length&&this.activeCameras.forEach(this._checkCameraRenderTarget),this._registerTransientComponents(),this._activeParticles.fetchNewFrame(),this._totalVertices.fetchNewFrame(),this._activeIndices.fetchNewFrame(),this._activeBones.fetchNewFrame(),this._meshesForIntersections.reset(),this.resetCachedMaterial(),this.onBeforeAnimationsObservable.notifyObservers(this),this.actionManager&&this.actionManager.processTrigger(11),t||this.animate();for(const r of this._beforeCameraUpdateStage)r.action();if(e){if(this.activeCameras&&this.activeCameras.length>0)for(let r=0;r<this.activeCameras.length;r++){const n=this.activeCameras[r];if(n.update(),n.cameraRigMode!==0)for(let o=0;o<n._rigCameras.length;o++)n._rigCameras[o].update()}else if(this.activeCamera&&(this.activeCamera.update(),this.activeCamera.cameraRigMode!==0))for(let r=0;r<this.activeCamera._rigCameras.length;r++)this.activeCamera._rigCameras[r].update()}if(this.onBeforeRenderObservable.notifyObservers(this),this.customRenderFunction)this._renderId++,this._engine.currentRenderPassId=0,this.customRenderFunction(e,t);else{const r=this.getEngine();this.onBeforeRenderTargetsRenderObservable.notifyObservers(this);const n=(s=this.activeCameras)!=null&&s.length?this.activeCameras[0]:this.activeCamera;if(this.renderTargetsEnabled){Le.StartPerformanceCounter("Custom render targets",this.customRenderTargets.length>0),this._intermediateRendering=!0;for(let o=0;o<this.customRenderTargets.length;o++){const l=this.customRenderTargets[o];if(l._shouldRender()){if(this._renderId++,this.activeCamera=l.activeCamera||this.activeCamera,!this.activeCamera)throw new Error("Active camera not set");r.setViewport(this.activeCamera.viewport),this.updateTransformMatrix(),l.render(n!==this.activeCamera,this.dumpNextRenderTargets)}}Le.EndPerformanceCounter("Custom render targets",this.customRenderTargets.length>0),this._intermediateRendering=!1,this._renderId++}this._engine.currentRenderPassId=(n==null?void 0:n.renderPassId)??0,this.activeCamera=n,this._activeCamera&&this._activeCamera.cameraRigMode!==22&&!this.prePass&&this._bindFrameBuffer(this._activeCamera,!1),this.onAfterRenderTargetsRenderObservable.notifyObservers(this);for(const o of this._beforeClearStage)o.action();this._clearFrameBuffer(this.activeCamera);for(const o of this._gatherRenderTargetsStage)o.action(this._renderTargets);if(this.activeCameras&&this.activeCameras.length>0)for(let o=0;o<this.activeCameras.length;o++)this._processSubCameras(this.activeCameras[o],o>0);else{if(!this.activeCamera)throw new Error("No camera defined");this._processSubCameras(this.activeCamera,!!this.activeCamera.outputRenderTarget)}}this._checkIntersections();for(const r of this._afterRenderStage)r.action();if(this.afterRender&&this.afterRender(),this.onAfterRenderObservable.notifyObservers(this),this._toBeDisposed.length){for(let r=0;r<this._toBeDisposed.length;r++){const n=this._toBeDisposed[r];n&&n.dispose()}this._toBeDisposed.length=0}this.dumpNextRenderTargets&&(this.dumpNextRenderTargets=!1),this._activeBones.addCount(0,!0),this._activeIndices.addCount(0,!0),this._activeParticles.addCount(0,!0),this._engine.restoreDefaultFramebuffer()}}freezeMaterials(){for(let e=0;e<this.materials.length;e++)this.materials[e].freeze()}unfreezeMaterials(){for(let e=0;e<this.materials.length;e++)this.materials[e].unfreeze()}dispose(){if(this.isDisposed)return;this.beforeRender=null,this.afterRender=null,this.metadata=null,this.skeletons.length=0,this.morphTargetManagers.length=0,this._transientComponents.length=0,this._isReadyForMeshStage.clear(),this._beforeEvaluateActiveMeshStage.clear(),this._evaluateSubMeshStage.clear(),this._preActiveMeshStage.clear(),this._cameraDrawRenderTargetStage.clear(),this._beforeCameraDrawStage.clear(),this._beforeRenderTargetDrawStage.clear(),this._beforeRenderingGroupDrawStage.clear(),this._beforeRenderingMeshStage.clear(),this._afterRenderingMeshStage.clear(),this._afterRenderingGroupDrawStage.clear(),this._afterCameraDrawStage.clear(),this._afterRenderTargetDrawStage.clear(),this._afterRenderStage.clear(),this._beforeCameraUpdateStage.clear(),this._beforeClearStage.clear(),this._gatherRenderTargetsStage.clear(),this._gatherActiveCameraRenderTargetsStage.clear(),this._pointerMoveStage.clear(),this._pointerDownStage.clear(),this._pointerUpStage.clear(),this.importedMeshesFiles=[],this._activeAnimatables&&this.stopAllAnimations&&(this._activeAnimatables.forEach(r=>{r.onAnimationEndObservable.clear(),r.onAnimationEnd=null}),this.stopAllAnimations()),this.resetCachedMaterial(),this.activeCamera&&(this.activeCamera._activeMeshes.dispose(),this.activeCamera=null),this.activeCameras=null,this._activeMeshes.dispose(),this._renderingManager.dispose(),this._processedMaterials.dispose(),this._activeParticleSystems.dispose(),this._activeSkeletons.dispose(),this._softwareSkinnedMeshes.dispose(),this._renderTargets.dispose(),this._materialsRenderTargets.dispose(),this._registeredForLateAnimationBindings.dispose(),this._meshesForIntersections.dispose(),this._toBeDisposed.length=0;const e=this._activeRequests.slice();for(const r of e)r.abort();this._activeRequests.length=0;try{this.onDisposeObservable.notifyObservers(this)}catch(r){de.Error("An error occurred while calling onDisposeObservable!",r)}if(this.detachControl(),this._engine.getInputElement())for(let r=0;r<this.cameras.length;r++)this.cameras[r].detachControl();this._disposeList(this.animationGroups),this._disposeList(this.lights),this._defaultMaterial&&this._defaultMaterial.dispose(),this._disposeList(this.multiMaterials),this._disposeList(this.materials),this._disposeList(this.meshes,r=>r.dispose(!0)),this._disposeList(this.transformNodes,r=>r.dispose(!0));const i=this.cameras;this._disposeList(i),this._disposeList(this.particleSystems),this._disposeList(this.postProcesses),this._disposeList(this.textures),this._disposeList(this.morphTargetManagers),this._sceneUbo.dispose(),this._multiviewSceneUbo&&this._multiviewSceneUbo.dispose(),this.postProcessManager.dispose(),this._disposeList(this._components);let s=this._engine.scenes.indexOf(this);if(s>-1&&this._engine.scenes.splice(s,1),ei._LastCreatedScene===this){ei._LastCreatedScene=null;let r=ei.Instances.length-1;for(;r>=0;){const n=ei.Instances[r];if(n.scenes.length>0){ei._LastCreatedScene=n.scenes[this._engine.scenes.length-1];break}r--}}s=this._engine._virtualScenes.indexOf(this),s>-1&&this._engine._virtualScenes.splice(s,1),this._engine.wipeCaches(!0),this.onDisposeObservable.clear(),this.onBeforeRenderObservable.clear(),this.onAfterRenderObservable.clear(),this.onBeforeRenderTargetsRenderObservable.clear(),this.onAfterRenderTargetsRenderObservable.clear(),this.onAfterStepObservable.clear(),this.onBeforeStepObservable.clear(),this.onBeforeActiveMeshesEvaluationObservable.clear(),this.onAfterActiveMeshesEvaluationObservable.clear(),this.onBeforeParticlesRenderingObservable.clear(),this.onAfterParticlesRenderingObservable.clear(),this.onBeforeDrawPhaseObservable.clear(),this.onAfterDrawPhaseObservable.clear(),this.onBeforeAnimationsObservable.clear(),this.onAfterAnimationsObservable.clear(),this.onDataLoadedObservable.clear(),this.onBeforeRenderingGroupObservable.clear(),this.onAfterRenderingGroupObservable.clear(),this.onMeshImportedObservable.clear(),this.onBeforeCameraRenderObservable.clear(),this.onAfterCameraRenderObservable.clear(),this.onAfterRenderCameraObservable.clear(),this.onReadyObservable.clear(),this.onNewCameraAddedObservable.clear(),this.onCameraRemovedObservable.clear(),this.onNewLightAddedObservable.clear(),this.onLightRemovedObservable.clear(),this.onNewGeometryAddedObservable.clear(),this.onGeometryRemovedObservable.clear(),this.onNewTransformNodeAddedObservable.clear(),this.onTransformNodeRemovedObservable.clear(),this.onNewMeshAddedObservable.clear(),this.onMeshRemovedObservable.clear(),this.onNewSkeletonAddedObservable.clear(),this.onSkeletonRemovedObservable.clear(),this.onNewMaterialAddedObservable.clear(),this.onNewMultiMaterialAddedObservable.clear(),this.onMaterialRemovedObservable.clear(),this.onMultiMaterialRemovedObservable.clear(),this.onNewTextureAddedObservable.clear(),this.onTextureRemovedObservable.clear(),this.onPrePointerObservable.clear(),this.onPointerObservable.clear(),this.onPreKeyboardObservable.clear(),this.onKeyboardObservable.clear(),this.onActiveCameraChanged.clear(),this.onScenePerformancePriorityChangedObservable.clear(),this.onClearColorChangedObservable.clear(),this.onEnvironmentTextureChangedObservable.clear(),this.onMeshUnderPointerUpdatedObservable.clear(),this._isDisposed=!0}_disposeList(e,t){const i=e.slice(0);t=t??(s=>s.dispose());for(const s of i)t(s);e.length=0}get isDisposed(){return this._isDisposed}clearCachedVertexData(){for(let e=0;e<this.meshes.length;e++){const i=this.meshes[e].geometry;i&&i.clearCachedData()}}cleanCachedTextureBuffer(){for(const e of this.textures)e._buffer&&(e._buffer=null)}getWorldExtends(e){const t=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),i=new P(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);return e=e||(()=>!0),this.meshes.filter(e).forEach(s=>{if(s.computeWorldMatrix(!0),!s.subMeshes||s.subMeshes.length===0||s.infiniteDistance)return;const r=s.getBoundingInfo(),n=r.boundingBox.minimumWorld,o=r.boundingBox.maximumWorld;P.CheckExtends(n,t,i),P.CheckExtends(o,t,i)}),{min:t,max:i}}createPickingRay(e,t,i,s,r=!1){throw as("Ray")}createPickingRayToRef(e,t,i,s,r,n=!1,o=!1){throw as("Ray")}createPickingRayInCameraSpace(e,t,i){throw as("Ray")}createPickingRayInCameraSpaceToRef(e,t,i,s){throw as("Ray")}pick(e,t,i,s,r,n){const o=as("Ray",!0);return o&&de.Warn(o),new Kl}pickWithBoundingInfo(e,t,i,s,r){const n=as("Ray",!0);return n&&de.Warn(n),new Kl}pickWithRay(e,t,i,s){throw as("Ray")}multiPick(e,t,i,s,r){throw as("Ray")}multiPickWithRay(e,t,i){throw as("Ray")}setPointerOverMesh(e,t,i){this._inputManager.setPointerOverMesh(e,t,i)}getPointerOverMesh(){return this._inputManager.getPointerOverMesh()}_rebuildGeometries(){for(const e of this.geometries)e._rebuild();for(const e of this.meshes)e._rebuild();this.postProcessManager&&this.postProcessManager._rebuild();for(const e of this._components)e.rebuild();for(const e of this.particleSystems)e.rebuild();if(this.spriteManagers)for(const e of this.spriteManagers)e.rebuild()}_rebuildTextures(){for(const e of this.textures)e._rebuild(!0);this.markAllMaterialsAsDirty(1)}_getByTags(e,t,i){if(t===void 0)return e;const s=[];for(const r in e){const n=e[r];ar&&ar.MatchesQuery(n,t)&&(!i||i(n))&&s.push(n)}return s}getMeshesByTags(e,t){return this._getByTags(this.meshes,e,t)}getCamerasByTags(e,t){return this._getByTags(this.cameras,e,t)}getLightsByTags(e,t){return this._getByTags(this.lights,e,t)}getMaterialByTags(e,t){return this._getByTags(this.materials,e,t).concat(this._getByTags(this.multiMaterials,e,t))}getTransformNodesByTags(e,t){return this._getByTags(this.transformNodes,e,t)}setRenderingOrder(e,t=null,i=null,s=null){this._renderingManager.setRenderingOrder(e,t,i,s)}setRenderingAutoClearDepthStencil(e,t,i=!0,s=!0){this._renderingManager.setRenderingAutoClearDepthStencil(e,t,i,s)}getAutoClearDepthStencilSetup(e){return this._renderingManager.getAutoClearDepthStencilSetup(e)}_forceBlockMaterialDirtyMechanism(e){this._blockMaterialDirtyMechanism=e}get blockMaterialDirtyMechanism(){return this._blockMaterialDirtyMechanism}set blockMaterialDirtyMechanism(e){this._blockMaterialDirtyMechanism!==e&&(this._blockMaterialDirtyMechanism=e,e||this.markAllMaterialsAsDirty(127))}markAllMaterialsAsDirty(e,t){if(!this._blockMaterialDirtyMechanism)for(const i of this.materials)t&&!t(i)||i.markAsDirty(e)}_loadFile(e,t,i,s,r,n,o){const l=gy(e,t,i,s?this.offlineProvider:void 0,r,n,o);return this._activeRequests.push(l),l.onCompleteObservable.add(c=>{this._activeRequests.splice(this._activeRequests.indexOf(c),1)}),l}_loadFileAsync(e,t,i,s,r){return new Promise((n,o)=>{this._loadFile(e,l=>{n(l)},t,i,s,(l,c)=>{o(c)},r)})}_requestFile(e,t,i,s,r,n,o){const l=sG(e,t,i,s?this.offlineProvider:void 0,r,n,o);return this._activeRequests.push(l),l.onCompleteObservable.add(c=>{this._activeRequests.splice(this._activeRequests.indexOf(c),1)}),l}_requestFileAsync(e,t,i,s,r){return new Promise((n,o)=>{this._requestFile(e,l=>{n(l)},t,i,s,l=>{o(l)},r)})}_readFile(e,t,i,s,r){const n=nP(e,t,i,s,r);return this._activeRequests.push(n),n.onCompleteObservable.add(o=>{this._activeRequests.splice(this._activeRequests.indexOf(o),1)}),n}_readFileAsync(e,t,i){return new Promise((s,r)=>{this._readFile(e,n=>{s(n)},t,i,n=>{r(n)})})}getPerfCollector(){throw as("performanceViewerSceneExtension")}setActiveCameraByID(e){return this.setActiveCameraById(e)}getMaterialByID(e){return this.getMaterialById(e)}getLastMaterialByID(e){return this.getLastMaterialById(e)}getTextureByUniqueID(e){return this.getTextureByUniqueId(e)}getCameraByID(e){return this.getCameraById(e)}getCameraByUniqueID(e){return this.getCameraByUniqueId(e)}getBoneByID(e){return this.getBoneById(e)}getLightByID(e){return this.getLightById(e)}getLightByUniqueID(e){return this.getLightByUniqueId(e)}getParticleSystemByID(e){return this.getParticleSystemById(e)}getGeometryByID(e){return this.getGeometryById(e)}getMeshByID(e){return this.getMeshById(e)}getMeshByUniqueID(e){return this.getMeshByUniqueId(e)}getLastMeshByID(e){return this.getLastMeshById(e)}getMeshesByID(e){return this.getMeshesById(e)}getTransformNodeByID(e){return this.getTransformNodeById(e)}getTransformNodeByUniqueID(e){return this.getTransformNodeByUniqueId(e)}getTransformNodesByID(e){return this.getTransformNodesById(e)}getNodeByID(e){return this.getNodeById(e)}getLastEntryByID(e){return this.getLastEntryById(e)}getLastSkeletonByID(e){return this.getLastSkeletonById(e)}}ui.FOGMODE_NONE=0,ui.FOGMODE_EXP=1,ui.FOGMODE_EXP2=2,ui.FOGMODE_LINEAR=3,ui.MinDeltaTime=1,ui.MaxDeltaTime=1e3,ui._OriginalDefaultMaterialFactory=ui.DefaultMaterialFactory,ve("BABYLON.Scene",ui);class Ol{static get ForceFullSceneLoadingForIncremental(){return Ol._ForceFullSceneLoadingForIncremental}static set ForceFullSceneLoadingForIncremental(e){Ol._ForceFullSceneLoadingForIncremental=e}static get ShowLoadingScreen(){return Ol._ShowLoadingScreen}static set ShowLoadingScreen(e){Ol._ShowLoadingScreen=e}static get loggingLevel(){return Ol._LoggingLevel}static set loggingLevel(e){Ol._LoggingLevel=e}static get CleanBoneMatrixWeights(){return Ol._CleanBoneMatrixWeights}static set CleanBoneMatrixWeights(e){Ol._CleanBoneMatrixWeights=e}}Ol._ForceFullSceneLoadingForIncremental=!1,Ol._ShowLoadingScreen=!0,Ol._CleanBoneMatrixWeights=!1,Ol._LoggingLevel=0;function MOe(a,e){const t=e.method||"GET";return new Promise((i,s)=>{const r=new ha;r.addEventListener("readystatechange",()=>{if(r.readyState==4)if(r.status==200){const n={};if(e.responseHeaders)for(const o of e.responseHeaders)n[o]=r.getResponseHeader(o)||"";i({response:r.response,headerValues:n})}else s(`Unable to fetch data from ${a}. Error code: ${r.status}`)}),r.open(t,a),r.send()})}var WX;(function(a){a[a.Clean=0]="Clean",a[a.Stop=1]="Stop",a[a.Sync=2]="Sync",a[a.NoSync=3]="NoSync"})(WX||(WX={}));function EOe(a){return!!a.createPlugin}function TOe(a){return!!a.name}const Ahe=new xe,jv={};let HX=!1;function dG(){return jv[".babylon"]}function LOe(a){for(const e in jv){const t=jv[e];if(t.mimeType===a)return t}}function YX(a,e){const t=jv[a];return t||(de.Warn("Unable to find a plugin to load "+a+" files. Trying to use .babylon default plugin. To load from a specific filetype (eg. gltf) see: https://doc.babylonjs.com/features/featuresDeepDive/importers/loadingFileTypes"),e?dG():void 0)}function IOe(a){return!!jv[a]}function POe(a){for(const e in jv){const t=jv[e].plugin;if(t.canDirectLoad&&t.canDirectLoad(a))return jv[e]}return dG()}function OOe(a){const e=a.indexOf("?");e!==-1&&(a=a.substring(0,e));const t=a.lastIndexOf(".");return a.substring(t,a.length).toLowerCase()}function ROe(a){return a.substring(0,5)==="data:"?a.substring(5):null}function XX(a,e,t){let s="Unable to load from "+(a.rawData?"binary data":a.url);return e?s+=`: ${e}`:t&&(s+=`: ${t}`),s}async function ZX(a,e,t,i,s,r,n,o,l){var m;const c=ROe(a.url);if(a.rawData&&!n)throw"When using ArrayBufferView to load data the file extension must be provided.";const u=!c&&!n?OOe(a.url):"";let f=n?YX(n,!0):c?POe(a.url):YX(u,!1);if(!f&&u){if(a.url&&!a.url.startsWith("blob:")){const _=await MOe(a.url,{method:"HEAD",responseHeaders:["Content-Type"]}),d=_.headerValues?_.headerValues["Content-Type"]:"";d&&(f=LOe(d))}f||(f=dG())}if(!f)throw new Error(`No plugin or fallback for ${n??a.url}`);if(((m=l==null?void 0:l[f.plugin.name])==null?void 0:m.enabled)===!1)throw new Error(`The '${f.plugin.name}' plugin is disabled via the loader options passed to the loading operation.`);if(a.rawData&&!f.isBinary)throw"Loading from ArrayBufferView can not be used with plugins that don't support binary loading.";return(_=>{if(EOe(f.plugin)){const h=f.plugin.createPlugin(l??{});return h instanceof Promise?(h.then(_).catch(x=>{s("Error instantiating plugin.",x)}),null):(_(h),h)}else return _(f.plugin),f.plugin})(_=>{var M;if(!_)throw`The loader plugin corresponding to the '${n}' file type has not been found. If using es6, please import the plugin you wish to use before.`;if(Ahe.notifyObservers(_),c&&(_.canDirectLoad&&_.canDirectLoad(a.url)||!fw(a.url))){if(_.directLoad){const T=_.directLoad(e,c);T instanceof Promise?T.then(O=>{t(_,O)}).catch(O=>{s("Error in directLoad of _loadData: "+O,O)}):t(_,T)}else t(_,c);return}const d=f.isBinary,h=(T,O)=>{if(e.isDisposed){s("Scene has been disposed");return}t(_,T,O)};let x=null,A=!1;(M=_.onDisposeObservable)==null||M.add(()=>{A=!0,x&&(x.abort(),x=null),r()});const S=()=>{if(A)return;const T=(O,R)=>{s(O==null?void 0:O.statusText,R)};if(!_.loadFile&&a.rawData)throw"Plugin does not support loading ArrayBufferView.";x=_.loadFile?_.loadFile(e,a.rawData||a.file||a.url,a.rootUrl,h,i,d,T,o):e._loadFile(a.file||a.url,h,i,!0,d,T)},E=e.getEngine();let b=E.enableOfflineSupport;if(b){let T=!1;for(const O of e.disableOfflineSupportExceptionRules)if(O.test(a.url)){T=!0;break}b=!T}b&&dt.OfflineProviderFactory?e.offlineProvider=dt.OfflineProviderFactory(a.url,S,E.disableManifestCheck):S()})}function KX(a,e){let t,i,s=null,r=null;if(!e)t=a,i=Le.GetFilename(a),a=Le.GetFolderPath(a);else if(TOe(e))t=`file:${e.name}`,i=e.name,s=e;else if(ArrayBuffer.isView(e))t="",i=e3(),r=e;else if(e.startsWith("data:"))t=e,i="";else if(a){const n=e;if(n.substring(0,1)==="/")return Le.Error("Wrong sceneFilename parameter"),null;t=a+n,i=n}else t=e,i=Le.GetFilename(e),a=Le.GetFolderPath(e);return{url:t,rootUrl:a,name:i,file:s,rawData:r}}function Y9(a){if(typeof a.extensions=="string"){const e=a.extensions;jv[e.toLowerCase()]={plugin:a,isBinary:!1}}else{const e=a.extensions;Object.keys(e).forEach(t=>{jv[t.toLowerCase()]={plugin:a,isBinary:e[t].isBinary,mimeType:e[t].mimeType}})}}function DOe(a){Y9(a)}function NOe(){return Array.from(Object.entries(jv).reduce((a,[e,t])=>{let i=a.get(t.plugin.name);return i||a.set(t.plugin.name,i=[]),i.push({extension:e,isBinary:t.isBinary,mimeType:t.mimeType}),a},new Map)).map(([a,e])=>({name:a,extensions:e}))}function wOe(a,e,t){const{meshNames:i,rootUrl:s="",onProgress:r,pluginExtension:n,name:o,pluginOptions:l}=t??{};return xhe(i,s,a,e,r,n,o,l)}async function Che(a,e,t="",i=ei.LastCreatedScene,s=null,r=null,n=null,o=null,l="",c={}){if(!i)return de.Error("No scene available to import mesh to"),null;const u=KX(e,t);if(!u)return null;const f={};i.addPendingData(f);const p=()=>{i.removePendingData(f)},m=(h,x)=>{const A=XX(u,h,x);n?n(i,A,new Y6(A,Xx.SceneLoaderError,x)):de.Error(A),p()},_=r?h=>{try{r(h)}catch(x){m("Error in onProgress callback: "+x,x)}}:void 0,d=(h,x,A,S,E,b,M,T)=>{if(i.importedMeshesFiles.push(u.url),s)try{s(h,x,A,S,E,b,M,T)}catch(O){m("Error in onSuccess callback: "+O,O)}i.removePendingData(f)};return await ZX(u,i,(h,x,A)=>{if(h.rewriteRootURL&&(u.rootUrl=h.rewriteRootURL(u.rootUrl,A)),h.importMesh){const S=h,E=[],b=[],M=[];if(!S.importMesh(a,i,x,u.rootUrl,E,b,M,m))return;i.loadingPluginName=h.name,d(E,b,M,[],[],[],[],[])}else h.importMeshAsync(a,i,x,u.rootUrl,_,u.name).then(E=>{i.loadingPluginName=h.name,d(E.meshes,E.particleSystems,E.skeletons,E.animationGroups,E.transformNodes,E.geometries,E.lights,E.spriteManagers)}).catch(E=>{m(E.message,E)})},_,m,p,o,l,c)}function xhe(a,e,t,i,s,r,n,o){return new Promise((l,c)=>{try{Che(a,e,t,i,(u,f,p,m,_,d,h,x)=>{l({meshes:u,particleSystems:f,skeletons:p,animationGroups:m,transformNodes:_,geometries:d,lights:h,spriteManagers:x})},s,(u,f,p)=>{c(p||new Error(f))},r,n,o).catch(c)}catch(u){c(u)}})}async function bhe(a,e="",t=ei.LastCreatedEngine,i=null,s=null,r=null,n=null,o="",l={}){if(!t){Le.Error("No engine available");return}await qX(a,e,new ui(t),i,s,r,n,o,l)}function She(a,e,t){const{rootUrl:i="",onProgress:s,pluginExtension:r,name:n,pluginOptions:o}=t??{};return yhe(i,a,e,s,r,n,o)}function BOe(a,e,t){return She(a,e,t)}function yhe(a,e,t,i,s,r,n){return new Promise((o,l)=>{bhe(a,e,t,c=>{o(c)},i,(c,u,f)=>{l(f||new Error(u))},s,r,n)})}async function qX(a,e="",t=ei.LastCreatedScene,i=null,s=null,r=null,n=null,o="",l={}){if(!t)return de.Error("No scene available to append to"),null;const c=KX(a,e);if(!c)return null;const u={};t.addPendingData(u);const f=()=>{t.removePendingData(u)};Ol.ShowLoadingScreen&&!HX&&(HX=!0,t.getEngine().displayLoadingUI(),t.executeWhenReady(()=>{t.getEngine().hideLoadingUI(),HX=!1}));const p=(d,h)=>{const x=XX(c,d,h);r?r(t,x,new Y6(x,Xx.SceneLoaderError,h)):de.Error(x),f()},m=s?d=>{try{s(d)}catch(h){p("Error in onProgress callback",h)}}:void 0,_=()=>{if(i)try{i(t)}catch(d){p("Error in onSuccess callback",d)}t.removePendingData(u)};return await ZX(c,t,(d,h)=>{if(d.load){if(!d.load(t,h,c.rootUrl,p))return;t.loadingPluginName=d.name,_()}else d.loadAsync(t,h,c.rootUrl,m,c.name).then(()=>{t.loadingPluginName=d.name,_()}).catch(A=>{p(A.message,A)})},m,p,f,n,o,l)}async function Mhe(a,e,t){const{rootUrl:i="",onProgress:s,pluginExtension:r,name:n,pluginOptions:o}=t??{};await Ehe(i,a,e,s,r,n,o)}function zOe(a,e,t){return Mhe(a,e,t)}function Ehe(a,e,t,i,s,r,n){return new Promise((o,l)=>{try{qX(a,e,t,c=>{o(c)},i,(c,u,f)=>{l(f||new Error(u))},s,r,n).catch(l)}catch(c){l(c)}})}async function QX(a,e="",t=ei.LastCreatedScene,i=null,s=null,r=null,n=null,o="",l={}){if(!t)return de.Error("No scene available to load asset container to"),null;const c=KX(a,e);if(!c)return null;const u={};t.addPendingData(u);const f=()=>{t.removePendingData(u)},p=(d,h)=>{const x=XX(c,d,h);r?r(t,x,new Y6(x,Xx.SceneLoaderError,h)):de.Error(x),f()},m=s?d=>{try{s(d)}catch(h){p("Error in onProgress callback",h)}}:void 0,_=d=>{if(i)try{i(d)}catch(h){p("Error in onSuccess callback",h)}t.removePendingData(u)};return await ZX(c,t,(d,h)=>{if(d.loadAssetContainer){const A=d.loadAssetContainer(t,h,c.rootUrl,p);if(!A)return;A.populateRootNodes(),t.loadingPluginName=d.name,_(A)}else d.loadAssetContainerAsync?d.loadAssetContainerAsync(t,h,c.rootUrl,m,c.name).then(A=>{A.populateRootNodes(),t.loadingPluginName=d.name,_(A)}).catch(A=>{p(A.message,A)}):p("LoadAssetContainer is not supported by this plugin. Plugin did not provide a loadAssetContainer or loadAssetContainerAsync method.")},m,p,f,n,o,l)}function The(a,e,t){const{rootUrl:i="",onProgress:s,pluginExtension:r,name:n,pluginOptions:o}=t??{};return Lhe(i,a,e,s,r,n,o)}function FOe(a,e,t){return The(a,e,t)}function Lhe(a,e,t,i,s,r,n){return new Promise((o,l)=>{try{QX(a,e,t,c=>{o(c)},i,(c,u,f)=>{l(f||new Error(u))},s,r,n).catch(l)}catch(c){l(c)}})}async function Ihe(a,e="",t=ei.LastCreatedScene,i=!0,s=0,r=null,n=null,o=null,l=null,c=null,u="",f={}){if(!t){de.Error("No scene available to load animations to");return}if(i){for(const d of t.animatables)d.reset();t.stopAllAnimations(),t.animationGroups.slice().forEach(d=>{d.dispose()}),t.getNodes().forEach(d=>{d.animations&&(d.animations=[])})}else switch(s){case 0:t.animationGroups.slice().forEach(_=>{_.dispose()});break;case 1:t.animationGroups.forEach(_=>{_.stop()});break;case 2:t.animationGroups.forEach(_=>{_.reset(),_.restart()});break;case 3:break;default:de.Error("Unknown animation group loading mode value '"+s+"'");return}const p=t.animatables.length;await QX(a,e,t,_=>{_.mergeAnimationsTo(t,t.animatables.slice(p),r),_.dispose(),t.onAnimationFileImportedObservable.notifyObservers(t),n&&n(t)},o,l,c,u,f)}async function Phe(a,e,t){const{rootUrl:i="",overwriteAnimations:s,animationGroupLoadingMode:r,targetConverter:n,onProgress:o,pluginExtension:l,name:c,pluginOptions:u}=t??{};await Ohe(i,a,e,s,r,n,o,l,c,u)}function kOe(a,e,t){return Phe(a,e,t)}function Ohe(a,e,t,i,s,r,n,o,l,c){return new Promise((u,f)=>{try{Ihe(a,e,t,i,s,r,p=>{u(p)},n,(p,m,_)=>{f(_||new Error(m))},o,l,c).catch(f)}catch(p){f(p)}})}class wr{static get ForceFullSceneLoadingForIncremental(){return Ol.ForceFullSceneLoadingForIncremental}static set ForceFullSceneLoadingForIncremental(e){Ol.ForceFullSceneLoadingForIncremental=e}static get ShowLoadingScreen(){return Ol.ShowLoadingScreen}static set ShowLoadingScreen(e){Ol.ShowLoadingScreen=e}static get loggingLevel(){return Ol.loggingLevel}static set loggingLevel(e){Ol.loggingLevel=e}static get CleanBoneMatrixWeights(){return Ol.CleanBoneMatrixWeights}static set CleanBoneMatrixWeights(e){Ol.CleanBoneMatrixWeights=e}static GetDefaultPlugin(){return dG()}static GetPluginForExtension(e){var t;return(t=YX(e,!0))==null?void 0:t.plugin}static IsPluginForExtensionAvailable(e){return IOe(e)}static RegisterPlugin(e){Y9(e)}static ImportMesh(e,t,i,s,r,n,o,l,c){Che(e,t,i,s,r,n,o,l,c).catch(u=>o==null?void 0:o(ei.LastCreatedScene,u==null?void 0:u.message,u))}static ImportMeshAsync(e,t,i,s,r,n,o){return xhe(e,t,i,s,r,n,o)}static Load(e,t,i,s,r,n,o,l){bhe(e,t,i,s,r,n,o,l).catch(c=>n==null?void 0:n(ei.LastCreatedScene,c==null?void 0:c.message,c))}static LoadAsync(e,t,i,s,r,n){return yhe(e,t,i,s,r,n)}static Append(e,t,i,s,r,n,o,l){qX(e,t,i,s,r,n,o,l).catch(c=>n==null?void 0:n(i??ei.LastCreatedScene,c==null?void 0:c.message,c))}static AppendAsync(e,t,i,s,r,n){return Ehe(e,t,i,s,r,n)}static LoadAssetContainer(e,t,i,s,r,n,o,l){QX(e,t,i,s,r,n,o,l).catch(c=>n==null?void 0:n(i??ei.LastCreatedScene,c==null?void 0:c.message,c))}static LoadAssetContainerAsync(e,t,i,s,r,n){return Lhe(e,t,i,s,r,n)}static ImportAnimations(e,t,i,s,r,n,o,l,c,u,f){Ihe(e,t,i,s,r,n,o,l,c,u,f).catch(p=>c==null?void 0:c(i??ei.LastCreatedScene,p==null?void 0:p.message,p))}static ImportAnimationsAsync(e,t,i,s,r,n,o,l,c,u,f){return Ohe(e,t,i,s,r,n,l,u,f)}}wr.NO_LOGGING=0,wr.MINIMAL_LOGGING=1,wr.SUMMARY_LOGGING=2,wr.DETAILED_LOGGING=3,wr.OnPluginActivatedObservable=Ahe;function Cw(a,e,t){try{const i=a.next();i.done?e(i):i.value?i.value.then(()=>{i.value=void 0,e(i)},t):e(i)}catch(i){t(i)}}function xw(a=25){let e;return(t,i,s)=>{const r=performance.now();e===void 0||r-e>a?(e=r,setTimeout(()=>{Cw(t,i,s)},0)):Cw(t,i,s)}}function JX(a,e,t,i,s){const r=()=>{let n;const o=l=>{l.done?t(l.value):n===void 0?n=!0:r()};do n=void 0,!s||!s.aborted?e(a,o,i):i(new Error("Aborted")),n===void 0&&(n=!1);while(n)};r()}function bw(a,e){let t;return JX(a,Cw,i=>t=i,i=>{throw i},e),t}function X9(a,e,t){return new Promise((i,s)=>{JX(a,e,i,s,t)})}function Rhe(a,e){return(...t)=>bw(a(...t),e)}function UOe(a,e,t){return(...i)=>X9(a(...i),e,t)}class jOe{constructor(){this._doNotSerialize=!1,this._isDisposed=!1,this._sceneRootNodesIndex=-1,this._isEnabled=!0,this._isParentEnabled=!0,this._isReady=!0,this._onEnabledStateChangedObservable=new xe,this._onClonedObservable=new xe}}let Rr=class gue{static AddNodeConstructor(e,t){this._NodeConstructors[e]=t}static Construct(e,t,i,s){const r=this._NodeConstructors[e];return r?r(t,i,s):null}set accessibilityTag(e){this._accessibilityTag=e,this.onAccessibilityTagChangedObservable.notifyObservers(e)}get accessibilityTag(){return this._accessibilityTag}get doNotSerialize(){return this._nodeDataStorage._doNotSerialize?!0:this._parentNode?this._parentNode.doNotSerialize:!1}set doNotSerialize(e){this._nodeDataStorage._doNotSerialize=e}isDisposed(){return this._nodeDataStorage._isDisposed}set parent(e){if(this._parentNode===e)return;const t=this._parentNode;if(this._parentNode&&this._parentNode._children!==void 0&&this._parentNode._children!==null){const i=this._parentNode._children.indexOf(this);i!==-1&&this._parentNode._children.splice(i,1),!e&&!this._nodeDataStorage._isDisposed&&this._addToSceneRootNodes()}this._parentNode=e,this._isDirty=!0,this._parentNode&&((this._parentNode._children===void 0||this._parentNode._children===null)&&(this._parentNode._children=new Array),this._parentNode._children.push(this),t||this._removeFromSceneRootNodes()),this._syncParentEnabledState()}get parent(){return this._parentNode}_serializeAsParent(e){e.parentId=this.uniqueId}_addToSceneRootNodes(){this._nodeDataStorage._sceneRootNodesIndex===-1&&(this._nodeDataStorage._sceneRootNodesIndex=this._scene.rootNodes.length,this._scene.rootNodes.push(this))}_removeFromSceneRootNodes(){if(this._nodeDataStorage._sceneRootNodesIndex!==-1){const e=this._scene.rootNodes,t=e.length-1;e[this._nodeDataStorage._sceneRootNodesIndex]=e[t],e[this._nodeDataStorage._sceneRootNodesIndex]._nodeDataStorage._sceneRootNodesIndex=this._nodeDataStorage._sceneRootNodesIndex,this._scene.rootNodes.pop(),this._nodeDataStorage._sceneRootNodesIndex=-1}}get animationPropertiesOverride(){return this._animationPropertiesOverride?this._animationPropertiesOverride:this._scene.animationPropertiesOverride}set animationPropertiesOverride(e){this._animationPropertiesOverride=e}getClassName(){return"Node"}set onDispose(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)}get onEnabledStateChangedObservable(){return this._nodeDataStorage._onEnabledStateChangedObservable}get onClonedObservable(){return this._nodeDataStorage._onClonedObservable}constructor(e,t=null,i=!0){this._isDirty=!1,this._nodeDataStorage=new jOe,this.state="",this.metadata=null,this.reservedDataStore=null,this._accessibilityTag=null,this.onAccessibilityTagChangedObservable=new xe,this._parentContainer=null,this.animations=[],this._ranges={},this.onReady=null,this._currentRenderId=-1,this._parentUpdateId=-1,this._childUpdateId=-1,this._waitingParentId=null,this._waitingParentInstanceIndex=null,this._waitingParsedUniqueId=null,this._cache={},this._parentNode=null,this._children=null,this._worldMatrix=me.Identity(),this._worldMatrixDeterminant=0,this._worldMatrixDeterminantIsDirty=!0,this._animationPropertiesOverride=null,this._isNode=!0,this.onDisposeObservable=new xe,this._onDisposeObserver=null,this._behaviors=new Array,this.name=e,this.id=e,this._scene=t||ei.LastCreatedScene,this.uniqueId=this._scene.getUniqueId(),this._initCache(),i&&this._addToSceneRootNodes()}getScene(){return this._scene}getEngine(){return this._scene.getEngine()}addBehavior(e,t=!1){return this._behaviors.indexOf(e)!==-1?this:(e.init(),this._scene.isLoading&&!t?this._scene.onDataLoadedObservable.addOnce(()=>{e.attach(this)}):e.attach(this),this._behaviors.push(e),this)}removeBehavior(e){const t=this._behaviors.indexOf(e);return t===-1?this:(this._behaviors[t].detach(),this._behaviors.splice(t,1),this)}get behaviors(){return this._behaviors}getBehaviorByName(e){for(const t of this._behaviors)if(t.name===e)return t;return null}getWorldMatrix(){return this._currentRenderId!==this._scene.getRenderId()&&this.computeWorldMatrix(),this._worldMatrix}_getWorldMatrixDeterminant(){return this._worldMatrixDeterminantIsDirty&&(this._worldMatrixDeterminantIsDirty=!1,this._worldMatrixDeterminant=this._worldMatrix.determinant()),this._worldMatrixDeterminant}get worldMatrixFromCache(){return this._worldMatrix}_initCache(){this._cache={}}updateCache(e){!e&&this.isSynchronized()||this._updateCache()}_getActionManagerForTrigger(e,t=!0){return this.parent?this.parent._getActionManagerForTrigger(e,!1):null}_updateCache(e){}_isSynchronized(){return!0}_markSyncedWithParent(){this._parentNode&&(this._parentUpdateId=this._parentNode._childUpdateId)}isSynchronizedWithParent(){return this._parentNode?this._parentNode._isDirty||this._parentUpdateId!==this._parentNode._childUpdateId?!1:this._parentNode.isSynchronized():!0}isSynchronized(){return this._parentNode&&!this.isSynchronizedWithParent()?!1:this._isSynchronized()}isReady(e=!1){return this._nodeDataStorage._isReady}markAsDirty(e){return this._currentRenderId=Number.MAX_VALUE,this._isDirty=!0,this}isEnabled(e=!0){return e===!1?this._nodeDataStorage._isEnabled:this._nodeDataStorage._isEnabled?this._nodeDataStorage._isParentEnabled:!1}_syncParentEnabledState(){this._nodeDataStorage._isParentEnabled=this._parentNode?this._parentNode.isEnabled():!0,this._children&&this._children.forEach(e=>{e._syncParentEnabledState()})}setEnabled(e){this._nodeDataStorage._isEnabled!==e&&(this._nodeDataStorage._isEnabled=e,this._syncParentEnabledState(),this._nodeDataStorage._onEnabledStateChangedObservable.notifyObservers(e))}isDescendantOf(e){return this.parent?this.parent===e?!0:this.parent.isDescendantOf(e):!1}_getDescendants(e,t=!1,i){if(this._children)for(let s=0;s<this._children.length;s++){const r=this._children[s];(!i||i(r))&&e.push(r),t||r._getDescendants(e,!1,i)}}getDescendants(e,t){const i=[];return this._getDescendants(i,e,t),i}getChildMeshes(e,t){const i=[];return this._getDescendants(i,e,s=>(!t||t(s))&&s.cullingStrategy!==void 0),i}getChildren(e,t=!0){return this.getDescendants(t,e)}_setReady(e){if(e!==this._nodeDataStorage._isReady){if(!e){this._nodeDataStorage._isReady=!1;return}this.onReady&&this.onReady(this),this._nodeDataStorage._isReady=!0}}getAnimationByName(e){for(let t=0;t<this.animations.length;t++){const i=this.animations[t];if(i.name===e)return i}return null}createAnimationRange(e,t,i){if(!this._ranges[e]){this._ranges[e]=gue._AnimationRangeFactory(e,t,i);for(let s=0,r=this.animations.length;s<r;s++)this.animations[s]&&this.animations[s].createRange(e,t,i)}}deleteAnimationRange(e,t=!0){for(let i=0,s=this.animations.length;i<s;i++)this.animations[i]&&this.animations[i].deleteRange(e,t);this._ranges[e]=null}getAnimationRange(e){return this._ranges[e]||null}clone(e,t,i){const s=It.Clone(()=>new gue(e,this.getScene()),this);if(t&&(s.parent=t),!i){const r=this.getDescendants(!0);for(let n=0;n<r.length;n++){const o=r[n];o.clone(e+"."+o.name,s)}}return s}getAnimationRanges(){const e=[];let t;for(t in this._ranges)e.push(this._ranges[t]);return e}beginAnimation(e,t,i,s){const r=this.getAnimationRange(e);return r?this._scene.beginAnimation(this,r.from,r.to,t,i,s):null}serializeAnimationRanges(){const e=[];for(const t in this._ranges){const i=this._ranges[t];if(!i)continue;const s={};s.name=t,s.from=i.from,s.to=i.to,e.push(s)}return e}computeWorldMatrix(e){return this._worldMatrix||(this._worldMatrix=me.Identity()),this._worldMatrix}dispose(e,t=!1){if(this._nodeDataStorage._isDisposed=!0,!e){const i=this.getDescendants(!0);for(const s of i)s.dispose(e,t)}this.parent?this.parent=null:this._removeFromSceneRootNodes(),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onEnabledStateChangedObservable.clear(),this.onClonedObservable.clear();for(const i of this._behaviors)i.detach();this._behaviors.length=0,this.metadata=null}static ParseAnimationRanges(e,t,i){if(t.ranges)for(let s=0;s<t.ranges.length;s++){const r=t.ranges[s];e.createAnimationRange(r.name,r.from,r.to)}}getHierarchyBoundingVectors(e=!0,t=null){this.getScene().incrementRenderId(),this.computeWorldMatrix(!0);let i,s;const r=this;if(r.getBoundingInfo&&r.subMeshes){const n=r.getBoundingInfo();i=n.boundingBox.minimumWorld.clone(),s=n.boundingBox.maximumWorld.clone()}else i=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),s=new P(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);if(e){const n=this.getDescendants(!1);for(const o of n){const l=o;if(l.computeWorldMatrix(!0),t&&!t(l)||!l.getBoundingInfo||l.getTotalVertices()===0)continue;const u=l.getBoundingInfo().boundingBox,f=u.minimumWorld,p=u.maximumWorld;P.CheckExtends(f,i,s),P.CheckExtends(p,i,s)}}return{min:i,max:s}}};Rr._AnimationRangeFactory=(a,e,t)=>{throw as("AnimationRange")},Rr._NodeConstructors={},F([G()],Rr.prototype,"name",void 0),F([G()],Rr.prototype,"id",void 0),F([G()],Rr.prototype,"uniqueId",void 0),F([G()],Rr.prototype,"state",void 0),F([G()],Rr.prototype,"metadata",void 0);class Tc{constructor(e,t,i,s){this.x=e,this.y=t,this.width=i,this.height=s}toGlobal(e,t){return new Tc(this.x*e,this.y*t,this.width*e,this.height*t)}toGlobalToRef(e,t,i){return i.x=this.x*e,i.y=this.y*t,i.width=this.width*e,i.height=this.height*t,this}clone(){return new Tc(this.x,this.y,this.width,this.height)}}class _i extends Rr{get position(){return this._position}set position(e){this._position=e}set upVector(e){this._upVector=e}get upVector(){return this._upVector}get screenArea(){let e=0,t=0;if(this.mode===_i.PERSPECTIVE_CAMERA)this.fovMode===_i.FOVMODE_VERTICAL_FIXED?(t=this.minZ*2*Math.tan(this.fov/2),e=this.getEngine().getAspectRatio(this)*t):(e=this.minZ*2*Math.tan(this.fov/2),t=e/this.getEngine().getAspectRatio(this));else{const i=this.getEngine().getRenderWidth()/2,s=this.getEngine().getRenderHeight()/2;e=(this.orthoRight??i)-(this.orthoLeft??-i),t=(this.orthoTop??s)-(this.orthoBottom??-s)}return e*t}set orthoLeft(e){this._orthoLeft=e;for(const t of this._rigCameras)t.orthoLeft=e}get orthoLeft(){return this._orthoLeft}set orthoRight(e){this._orthoRight=e;for(const t of this._rigCameras)t.orthoRight=e}get orthoRight(){return this._orthoRight}set orthoBottom(e){this._orthoBottom=e;for(const t of this._rigCameras)t.orthoBottom=e}get orthoBottom(){return this._orthoBottom}set orthoTop(e){this._orthoTop=e;for(const t of this._rigCameras)t.orthoTop=e}get orthoTop(){return this._orthoTop}set mode(e){this._mode=e;for(const t of this._rigCameras)t.mode=e}get mode(){return this._mode}get hasMoved(){return this._hasMoved}constructor(e,t,i,s=!0){super(e,i,!1),this._position=P.Zero(),this._upVector=P.Up(),this.oblique=null,this._orthoLeft=null,this._orthoRight=null,this._orthoBottom=null,this._orthoTop=null,this.fov=.8,this.projectionPlaneTilt=0,this.minZ=1,this.maxZ=1e4,this.inertia=.9,this._mode=_i.PERSPECTIVE_CAMERA,this.isIntermediate=!1,this.viewport=new Tc(0,0,1,1),this.layerMask=268435455,this.fovMode=_i.FOVMODE_VERTICAL_FIXED,this.cameraRigMode=_i.RIG_MODE_NONE,this.customRenderTargets=[],this.outputRenderTarget=null,this.onViewMatrixChangedObservable=new xe,this.onProjectionMatrixChangedObservable=new xe,this.onAfterCheckInputsObservable=new xe,this.onRestoreStateObservable=new xe,this.isRigCamera=!1,this._hasMoved=!1,this._rigCameras=new Array,this._skipRendering=!1,this._projectionMatrix=new me,this._postProcesses=new Array,this._activeMeshes=new dl(256),this._globalPosition=P.Zero(),this._computedViewMatrix=me.Identity(),this._doNotComputeProjectionMatrix=!1,this._transformMatrix=me.Zero(),this._refreshFrustumPlanes=!0,this._absoluteRotation=Re.Identity(),this._isCamera=!0,this._isLeftCamera=!1,this._isRightCamera=!1,this.getScene().addCamera(this),s&&!this.getScene().activeCamera&&(this.getScene().activeCamera=this),this.position=t,this.renderPassId=this.getScene().getEngine().createRenderPassId(`Camera ${e}`)}storeState(){return this._stateStored=!0,this._storedFov=this.fov,this}hasStateStored(){return!!this._stateStored}_restoreStateValues(){return this._stateStored?(this.fov=this._storedFov,!0):!1}restoreState(){return this._restoreStateValues()?(this.onRestoreStateObservable.notifyObservers(this),!0):!1}getClassName(){return"Camera"}toString(e){let t="Name: "+this.name;if(t+=", type: "+this.getClassName(),this.animations)for(let i=0;i<this.animations.length;i++)t+=", animation[0]: "+this.animations[i].toString(e);return t}applyVerticalCorrection(){const e=this.absoluteRotation.toEulerAngles();this.projectionPlaneTilt=this._scene.useRightHandedSystem?-e.x:e.x}get globalPosition(){return this._globalPosition}getActiveMeshes(){return this._activeMeshes}isActiveMesh(e){return this._activeMeshes.indexOf(e)!==-1}isReady(e=!1){if(e){for(const t of this._postProcesses)if(t&&!t.isReady())return!1}return super.isReady(e)}_initCache(){super._initCache(),this._cache.position=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cache.upVector=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cache.mode=void 0,this._cache.minZ=void 0,this._cache.maxZ=void 0,this._cache.fov=void 0,this._cache.fovMode=void 0,this._cache.aspectRatio=void 0,this._cache.orthoLeft=void 0,this._cache.orthoRight=void 0,this._cache.orthoBottom=void 0,this._cache.orthoTop=void 0,this._cache.obliqueAngle=void 0,this._cache.obliqueLength=void 0,this._cache.obliqueOffset=void 0,this._cache.renderWidth=void 0,this._cache.renderHeight=void 0}_updateCache(e){e||super._updateCache(),this._cache.position.copyFrom(this.position),this._cache.upVector.copyFrom(this.upVector)}_isSynchronized(){return this._isSynchronizedViewMatrix()&&this._isSynchronizedProjectionMatrix()}_isSynchronizedViewMatrix(){return super._isSynchronized()?this._cache.position.equals(this.position)&&this._cache.upVector.equals(this.upVector)&&this.isSynchronizedWithParent():!1}_isSynchronizedProjectionMatrix(){let e=this._cache.mode===this.mode&&this._cache.minZ===this.minZ&&this._cache.maxZ===this.maxZ;if(!e)return!1;const t=this.getEngine();return this.mode===_i.PERSPECTIVE_CAMERA?e=this._cache.fov===this.fov&&this._cache.fovMode===this.fovMode&&this._cache.aspectRatio===t.getAspectRatio(this)&&this._cache.projectionPlaneTilt===this.projectionPlaneTilt:(e=this._cache.orthoLeft===this.orthoLeft&&this._cache.orthoRight===this.orthoRight&&this._cache.orthoBottom===this.orthoBottom&&this._cache.orthoTop===this.orthoTop&&this._cache.renderWidth===t.getRenderWidth()&&this._cache.renderHeight===t.getRenderHeight(),this.oblique&&(e=e&&this._cache.obliqueAngle===this.oblique.angle&&this._cache.obliqueLength===this.oblique.length&&this._cache.obliqueOffset===this.oblique.offset)),e}attachControl(e,t){}detachControl(e){}update(){this._hasMoved=!1,this._checkInputs(),this.cameraRigMode!==_i.RIG_MODE_NONE&&this._updateRigCameras(),this.getViewMatrix(),this.getProjectionMatrix()}_checkInputs(){this.onAfterCheckInputsObservable.notifyObservers(this)}get rigCameras(){return this._rigCameras}get rigPostProcess(){return this._rigPostProcess}_getFirstPostProcess(){for(let e=0;e<this._postProcesses.length;e++)if(this._postProcesses[e]!==null)return this._postProcesses[e];return null}_cascadePostProcessesToRigCams(){const e=this._getFirstPostProcess();e&&e.markTextureDirty();for(let t=0,i=this._rigCameras.length;t<i;t++){const s=this._rigCameras[t],r=s._rigPostProcess;r?(r.getEffectName()==="pass"&&(s.isIntermediate=this._postProcesses.length===0),s._postProcesses=this._postProcesses.slice(0).concat(r),r.markTextureDirty()):s._postProcesses=this._postProcesses.slice(0)}}attachPostProcess(e,t=null){return!e.isReusable()&&this._postProcesses.indexOf(e)>-1?(de.Error("You're trying to reuse a post process not defined as reusable."),0):(t==null||t<0?this._postProcesses.push(e):this._postProcesses[t]===null?this._postProcesses[t]=e:this._postProcesses.splice(t,0,e),this._cascadePostProcessesToRigCams(),this._scene.prePassRenderer&&this._scene.prePassRenderer.markAsDirty(),this._postProcesses.indexOf(e))}detachPostProcess(e){const t=this._postProcesses.indexOf(e);t!==-1&&(this._postProcesses[t]=null),this._scene.prePassRenderer&&this._scene.prePassRenderer.markAsDirty(),this._cascadePostProcessesToRigCams()}getWorldMatrix(){return this._isSynchronizedViewMatrix()?this._worldMatrix:(this.getViewMatrix(),this._worldMatrix)}_getViewMatrix(){return me.Identity()}getViewMatrix(e){return!e&&this._isSynchronizedViewMatrix()?this._computedViewMatrix:(this._hasMoved=!0,this.updateCache(),this._computedViewMatrix=this._getViewMatrix(),this._currentRenderId=this.getScene().getRenderId(),this._childUpdateId++,this._refreshFrustumPlanes=!0,this._cameraRigParams&&this._cameraRigParams.vrPreViewMatrix&&this._computedViewMatrix.multiplyToRef(this._cameraRigParams.vrPreViewMatrix,this._computedViewMatrix),this.parent&&this.parent.onViewMatrixChangedObservable&&this.parent.onViewMatrixChangedObservable.notifyObservers(this.parent),this.onViewMatrixChangedObservable.notifyObservers(this),this._computedViewMatrix.invertToRef(this._worldMatrix),this._computedViewMatrix)}freezeProjectionMatrix(e){this._doNotComputeProjectionMatrix=!0,e!==void 0&&(this._projectionMatrix=e)}unfreezeProjectionMatrix(){this._doNotComputeProjectionMatrix=!1}getProjectionMatrix(e){var r,n,o;if(this._doNotComputeProjectionMatrix||!e&&this._isSynchronizedProjectionMatrix())return this._projectionMatrix;this._cache.mode=this.mode,this._cache.minZ=this.minZ,this._cache.maxZ=this.maxZ,this._refreshFrustumPlanes=!0;const t=this.getEngine(),i=this.getScene(),s=t.useReverseDepthBuffer;if(this.mode===_i.PERSPECTIVE_CAMERA){this._cache.fov=this.fov,this._cache.fovMode=this.fovMode,this._cache.aspectRatio=t.getAspectRatio(this),this._cache.projectionPlaneTilt=this.projectionPlaneTilt,this.minZ<=0&&(this.minZ=.1);let l;i.useRightHandedSystem?l=me.PerspectiveFovRHToRef:l=me.PerspectiveFovLHToRef,l(this.fov,t.getAspectRatio(this),s?this.maxZ:this.minZ,s?this.minZ:this.maxZ,this._projectionMatrix,this.fovMode===_i.FOVMODE_VERTICAL_FIXED,t.isNDCHalfZRange,this.projectionPlaneTilt,s)}else{const l=t.getRenderWidth()/2,c=t.getRenderHeight()/2;i.useRightHandedSystem?this.oblique?me.ObliqueOffCenterRHToRef(this.orthoLeft??-l,this.orthoRight??l,this.orthoBottom??-c,this.orthoTop??c,s?this.maxZ:this.minZ,s?this.minZ:this.maxZ,this.oblique.length,this.oblique.angle,this._computeObliqueDistance(this.oblique.offset),this._projectionMatrix,t.isNDCHalfZRange):me.OrthoOffCenterRHToRef(this.orthoLeft??-l,this.orthoRight??l,this.orthoBottom??-c,this.orthoTop??c,s?this.maxZ:this.minZ,s?this.minZ:this.maxZ,this._projectionMatrix,t.isNDCHalfZRange):this.oblique?me.ObliqueOffCenterLHToRef(this.orthoLeft??-l,this.orthoRight??l,this.orthoBottom??-c,this.orthoTop??c,s?this.maxZ:this.minZ,s?this.minZ:this.maxZ,this.oblique.length,this.oblique.angle,this._computeObliqueDistance(this.oblique.offset),this._projectionMatrix,t.isNDCHalfZRange):me.OrthoOffCenterLHToRef(this.orthoLeft??-l,this.orthoRight??l,this.orthoBottom??-c,this.orthoTop??c,s?this.maxZ:this.minZ,s?this.minZ:this.maxZ,this._projectionMatrix,t.isNDCHalfZRange),this._cache.orthoLeft=this.orthoLeft,this._cache.orthoRight=this.orthoRight,this._cache.orthoBottom=this.orthoBottom,this._cache.orthoTop=this.orthoTop,this._cache.obliqueAngle=(r=this.oblique)==null?void 0:r.angle,this._cache.obliqueLength=(n=this.oblique)==null?void 0:n.length,this._cache.obliqueOffset=(o=this.oblique)==null?void 0:o.offset,this._cache.renderWidth=t.getRenderWidth(),this._cache.renderHeight=t.getRenderHeight()}return this.onProjectionMatrixChangedObservable.notifyObservers(this),this._projectionMatrix}getTransformationMatrix(){return this._computedViewMatrix.multiplyToRef(this._projectionMatrix,this._transformMatrix),this._transformMatrix}_computeObliqueDistance(e){const t=this,i=this;return(t.radius||(i.target?P.Distance(this.position,i.target):this.position.length()))+e}_updateFrustumPlanes(){this._refreshFrustumPlanes&&(this.getTransformationMatrix(),this._frustumPlanes?t3.GetPlanesToRef(this._transformMatrix,this._frustumPlanes):this._frustumPlanes=t3.GetPlanes(this._transformMatrix),this._refreshFrustumPlanes=!1)}isInFrustum(e,t=!1){if(this._updateFrustumPlanes(),t&&this.rigCameras.length>0){let i=!1;return this.rigCameras.forEach(s=>{s._updateFrustumPlanes(),i=i||e.isInFrustum(s._frustumPlanes)}),i}else return e.isInFrustum(this._frustumPlanes)}isCompletelyInFrustum(e){return this._updateFrustumPlanes(),e.isCompletelyInFrustum(this._frustumPlanes)}getForwardRay(e=100,t,i){throw as("Ray")}getForwardRayToRef(e,t=100,i,s){throw as("Ray")}dispose(e,t=!1){for(this.onViewMatrixChangedObservable.clear(),this.onProjectionMatrixChangedObservable.clear(),this.onAfterCheckInputsObservable.clear(),this.onRestoreStateObservable.clear(),this.inputs&&this.inputs.clear(),this.getScene().stopAnimation(this),this.getScene().removeCamera(this);this._rigCameras.length>0;){const s=this._rigCameras.pop();s&&s.dispose()}if(this._parentContainer){const s=this._parentContainer.cameras.indexOf(this);s>-1&&this._parentContainer.cameras.splice(s,1),this._parentContainer=null}if(this._rigPostProcess)this._rigPostProcess.dispose(this),this._rigPostProcess=null,this._postProcesses.length=0;else if(this.cameraRigMode!==_i.RIG_MODE_NONE)this._rigPostProcess=null,this._postProcesses.length=0;else{let s=this._postProcesses.length;for(;--s>=0;){const r=this._postProcesses[s];r&&r.dispose(this)}}let i=this.customRenderTargets.length;for(;--i>=0;)this.customRenderTargets[i].dispose();this.customRenderTargets.length=0,this._activeMeshes.dispose(),this.getScene().getEngine().releaseRenderPassId(this.renderPassId),super.dispose(e,t)}get isLeftCamera(){return this._isLeftCamera}get isRightCamera(){return this._isRightCamera}get leftCamera(){return this._rigCameras.length<1?null:this._rigCameras[0]}get rightCamera(){return this._rigCameras.length<2?null:this._rigCameras[1]}getLeftTarget(){return this._rigCameras.length<1?null:this._rigCameras[0].getTarget()}getRightTarget(){return this._rigCameras.length<2?null:this._rigCameras[1].getTarget()}setCameraRigMode(e,t){if(this.cameraRigMode!==e){for(;this._rigCameras.length>0;){const i=this._rigCameras.pop();i&&i.dispose()}if(this.cameraRigMode=e,this._cameraRigParams={},this._cameraRigParams.interaxialDistance=t.interaxialDistance||.0637,this._cameraRigParams.stereoHalfAngle=Le.ToRadians(this._cameraRigParams.interaxialDistance/.0637),this.cameraRigMode!==_i.RIG_MODE_NONE){const i=this.createRigCamera(this.name+"_L",0);i&&(i._isLeftCamera=!0);const s=this.createRigCamera(this.name+"_R",1);s&&(s._isRightCamera=!0),i&&s&&(this._rigCameras.push(i),this._rigCameras.push(s))}this._setRigMode(t),this._cascadePostProcessesToRigCams(),this.update()}}_setRigMode(e){}_getVRProjectionMatrix(){return me.PerspectiveFovLHToRef(this._cameraRigParams.vrMetrics.aspectRatioFov,this._cameraRigParams.vrMetrics.aspectRatio,this.minZ,this.maxZ,this._cameraRigParams.vrWorkMatrix,!0,this.getEngine().isNDCHalfZRange),this._cameraRigParams.vrWorkMatrix.multiplyToRef(this._cameraRigParams.vrHMatrix,this._projectionMatrix),this._projectionMatrix}setCameraRigParameter(e,t){this._cameraRigParams||(this._cameraRigParams={}),this._cameraRigParams[e]=t,e==="interaxialDistance"&&(this._cameraRigParams.stereoHalfAngle=Le.ToRadians(t/.0637))}createRigCamera(e,t){return null}_updateRigCameras(){for(let e=0;e<this._rigCameras.length;e++)this._rigCameras[e].minZ=this.minZ,this._rigCameras[e].maxZ=this.maxZ,this._rigCameras[e].fov=this.fov,this._rigCameras[e].upVector.copyFrom(this.upVector);this.cameraRigMode===_i.RIG_MODE_STEREOSCOPIC_ANAGLYPH&&(this._rigCameras[0].viewport=this._rigCameras[1].viewport=this.viewport)}_setupInputs(){}serialize(){const e=It.Serialize(this);return e.uniqueId=this.uniqueId,e.type=this.getClassName(),this.parent&&this.parent._serializeAsParent(e),this.inputs&&this.inputs.serialize(e),It.AppendSerializedAnimations(this,e),e.ranges=this.serializeAnimationRanges(),e.isEnabled=this.isEnabled(),e}clone(e,t=null){const i=It.Clone(_i.GetConstructorFromName(this.getClassName(),e,this.getScene(),this.interaxialDistance,this.isStereoscopicSideBySide),this);return i.name=e,i.parent=t,this.onClonedObservable.notifyObservers(i),i}getDirection(e){const t=P.Zero();return this.getDirectionToRef(e,t),t}get absoluteRotation(){return this.getWorldMatrix().decompose(void 0,this._absoluteRotation),this._absoluteRotation}getDirectionToRef(e,t){P.TransformNormalToRef(e,this.getWorldMatrix(),t)}static GetConstructorFromName(e,t,i,s=0,r=!0){const n=Rr.Construct(e,t,i,{interaxial_distance:s,isStereoscopicSideBySide:r});return n||(()=>_i._CreateDefaultParsedCamera(t,i))}computeWorldMatrix(){return this.getWorldMatrix()}static Parse(e,t){const i=e.type,s=_i.GetConstructorFromName(i,e.name,t,e.interaxial_distance,e.isStereoscopicSideBySide),r=It.Parse(s,e,t);if(e.parentId!==void 0&&(r._waitingParentId=e.parentId),e.parentInstanceIndex!==void 0&&(r._waitingParentInstanceIndex=e.parentInstanceIndex),r.inputs&&(r.inputs.parse(e),r._setupInputs()),e.upVector&&(r.upVector=P.FromArray(e.upVector)),r.setPosition&&(r.position.copyFromFloats(0,0,0),r.setPosition(P.FromArray(e.position))),e.target&&r.setTarget&&r.setTarget(P.FromArray(e.target)),e.cameraRigMode){const n=e.interaxial_distance?{interaxialDistance:e.interaxial_distance}:{};r.setCameraRigMode(e.cameraRigMode,n)}if(e.animations){for(let n=0;n<e.animations.length;n++){const o=e.animations[n],l=ea("BABYLON.Animation");l&&r.animations.push(l.Parse(o))}Rr.ParseAnimationRanges(r,e,t)}return e.autoAnimate&&t.beginAnimation(r,e.autoAnimateFrom,e.autoAnimateTo,e.autoAnimateLoop,e.autoAnimateSpeed||1),e.isEnabled!==void 0&&r.setEnabled(e.isEnabled),r}_calculateHandednessMultiplier(){let e=this.getScene().useRightHandedSystem?-1:1;return this.parent&&this.parent._getWorldMatrixDeterminant()<0&&(e*=-1),e}}_i._CreateDefaultParsedCamera=(a,e)=>{throw as("UniversalCamera")},_i.PERSPECTIVE_CAMERA=0,_i.ORTHOGRAPHIC_CAMERA=1,_i.FOVMODE_VERTICAL_FIXED=0,_i.FOVMODE_HORIZONTAL_FIXED=1,_i.RIG_MODE_NONE=0,_i.RIG_MODE_STEREOSCOPIC_ANAGLYPH=10,_i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL=11,_i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED=12,_i.RIG_MODE_STEREOSCOPIC_OVERUNDER=13,_i.RIG_MODE_STEREOSCOPIC_INTERLACED=14,_i.RIG_MODE_VR=20,_i.RIG_MODE_CUSTOM=22,_i.ForceAttachControlToAlwaysPreventDefault=!1,F([Ma("position")],_i.prototype,"_position",void 0),F([Ma("upVector")],_i.prototype,"_upVector",void 0),F([G()],_i.prototype,"orthoLeft",null),F([G()],_i.prototype,"orthoRight",null),F([G()],_i.prototype,"orthoBottom",null),F([G()],_i.prototype,"orthoTop",null),F([G()],_i.prototype,"fov",void 0),F([G()],_i.prototype,"projectionPlaneTilt",void 0),F([G()],_i.prototype,"minZ",void 0),F([G()],_i.prototype,"maxZ",void 0),F([G()],_i.prototype,"inertia",void 0),F([G()],_i.prototype,"mode",null),F([G()],_i.prototype,"layerMask",void 0),F([G()],_i.prototype,"fovMode",void 0),F([G()],_i.prototype,"cameraRigMode",void 0),F([G()],_i.prototype,"interaxialDistance",void 0),F([G()],_i.prototype,"isStereoscopicSideBySide",void 0);class fG{constructor(e,t,i){this.bu=e,this.bv=t,this.distance=i,this.faceId=0,this.subMeshId=0}}class ef{constructor(e,t,i){this.vectors=V1(8,P.Zero),this.center=P.Zero(),this.centerWorld=P.Zero(),this.extendSize=P.Zero(),this.extendSizeWorld=P.Zero(),this.directions=V1(3,P.Zero),this.vectorsWorld=V1(8,P.Zero),this.minimumWorld=P.Zero(),this.maximumWorld=P.Zero(),this.minimum=P.Zero(),this.maximum=P.Zero(),this._drawWrapperFront=null,this._drawWrapperBack=null,this.reConstruct(e,t,i)}reConstruct(e,t,i){const s=e.x,r=e.y,n=e.z,o=t.x,l=t.y,c=t.z,u=this.vectors;this.minimum.copyFromFloats(s,r,n),this.maximum.copyFromFloats(o,l,c),u[0].copyFromFloats(s,r,n),u[1].copyFromFloats(o,l,c),u[2].copyFromFloats(o,r,n),u[3].copyFromFloats(s,l,n),u[4].copyFromFloats(s,r,c),u[5].copyFromFloats(o,l,n),u[6].copyFromFloats(s,l,c),u[7].copyFromFloats(o,r,c),t.addToRef(e,this.center).scaleInPlace(.5),t.subtractToRef(e,this.extendSize).scaleInPlace(.5),this._worldMatrix=i||me.IdentityReadOnly,this._update(this._worldMatrix)}scale(e){const t=ef._TmpVector3,i=this.maximum.subtractToRef(this.minimum,t[0]),s=i.length();i.normalizeFromLength(s);const r=s*e,n=i.scaleInPlace(r*.5),o=this.center.subtractToRef(n,t[1]),l=this.center.addToRef(n,t[2]);return this.reConstruct(o,l,this._worldMatrix),this}getWorldMatrix(){return this._worldMatrix}_update(e){const t=this.minimumWorld,i=this.maximumWorld,s=this.directions,r=this.vectorsWorld,n=this.vectors;if(e.isIdentity()){t.copyFrom(this.minimum),i.copyFrom(this.maximum);for(let o=0;o<8;++o)r[o].copyFrom(n[o]);this.extendSizeWorld.copyFrom(this.extendSize),this.centerWorld.copyFrom(this.center)}else{t.setAll(Number.MAX_VALUE),i.setAll(-Number.MAX_VALUE);for(let o=0;o<8;++o){const l=r[o];P.TransformCoordinatesToRef(n[o],e,l),t.minimizeInPlace(l),i.maximizeInPlace(l)}i.subtractToRef(t,this.extendSizeWorld).scaleInPlace(.5),i.addToRef(t,this.centerWorld).scaleInPlace(.5)}P.FromArrayToRef(e.m,0,s[0]),P.FromArrayToRef(e.m,4,s[1]),P.FromArrayToRef(e.m,8,s[2]),this._worldMatrix=e}isInFrustum(e){return ef.IsInFrustum(this.vectorsWorld,e)}isCompletelyInFrustum(e){return ef.IsCompletelyInFrustum(this.vectorsWorld,e)}intersectsPoint(e){const t=this.minimumWorld,i=this.maximumWorld,s=t.x,r=t.y,n=t.z,o=i.x,l=i.y,c=i.z,u=e.x,f=e.y,p=e.z,m=-Ii;return!(o-u<m||m>u-s||l-f<m||m>f-r||c-p<m||m>p-n)}intersectsSphere(e){return ef.IntersectsSphere(this.minimumWorld,this.maximumWorld,e.centerWorld,e.radiusWorld)}intersectsMinMax(e,t){const i=this.minimumWorld,s=this.maximumWorld,r=i.x,n=i.y,o=i.z,l=s.x,c=s.y,u=s.z,f=e.x,p=e.y,m=e.z,_=t.x,d=t.y,h=t.z;return!(l<f||r>_||c<p||n>d||u<m||o>h)}dispose(){var e,t;(e=this._drawWrapperFront)==null||e.dispose(),(t=this._drawWrapperBack)==null||t.dispose()}static Intersects(e,t){return e.intersectsMinMax(t.minimumWorld,t.maximumWorld)}static IntersectsSphere(e,t,i,s){const r=ef._TmpVector3[0];return P.ClampToRef(i,e,t,r),P.DistanceSquared(i,r)<=s*s}static IsCompletelyInFrustum(e,t){for(let i=0;i<6;++i){const s=t[i];for(let r=0;r<8;++r)if(s.dotCoordinate(e[r])<0)return!1}return!0}static IsInFrustum(e,t){for(let i=0;i<6;++i){let s=!0;const r=t[i];for(let n=0;n<8;++n)if(r.dotCoordinate(e[n])>=0){s=!1;break}if(s)return!1}return!0}}ef._TmpVector3=V1(3,P.Zero);class Vv{constructor(e,t,i){this.center=P.Zero(),this.centerWorld=P.Zero(),this.minimum=P.Zero(),this.maximum=P.Zero(),this.reConstruct(e,t,i)}reConstruct(e,t,i){this.minimum.copyFrom(e),this.maximum.copyFrom(t);const s=P.Distance(e,t);t.addToRef(e,this.center).scaleInPlace(.5),this.radius=s*.5,this._update(i||me.IdentityReadOnly)}scale(e){const t=this.radius*e,i=Vv._TmpVector3,s=i[0].setAll(t),r=this.center.subtractToRef(s,i[1]),n=this.center.addToRef(s,i[2]);return this.reConstruct(r,n,this._worldMatrix),this}getWorldMatrix(){return this._worldMatrix}_update(e){if(e.isIdentity())this.centerWorld.copyFrom(this.center),this.radiusWorld=this.radius;else{P.TransformCoordinatesToRef(this.center,e,this.centerWorld);const t=Vv._TmpVector3[0];P.TransformNormalFromFloatsToRef(1,1,1,e,t),this.radiusWorld=Math.max(Math.abs(t.x),Math.abs(t.y),Math.abs(t.z))*this.radius}}isInFrustum(e){const t=this.centerWorld,i=this.radiusWorld;for(let s=0;s<6;s++)if(e[s].dotCoordinate(t)<=-i)return!1;return!0}isCenterInFrustum(e){const t=this.centerWorld;for(let i=0;i<6;i++)if(e[i].dotCoordinate(t)<0)return!1;return!0}intersectsPoint(e){const t=P.DistanceSquared(this.centerWorld,e);return!(this.radiusWorld*this.radiusWorld<t)}static Intersects(e,t){const i=P.DistanceSquared(e.centerWorld,t.centerWorld),s=e.radiusWorld+t.radiusWorld;return!(s*s<i)}static CreateFromCenterAndRadius(e,t,i){this._TmpVector3[0].copyFrom(e),this._TmpVector3[1].copyFromFloats(0,0,t),this._TmpVector3[2].copyFrom(e),this._TmpVector3[0].addInPlace(this._TmpVector3[1]),this._TmpVector3[2].subtractInPlace(this._TmpVector3[1]);const s=new Vv(this._TmpVector3[0],this._TmpVector3[2]);return i?s._worldMatrix=i:s._worldMatrix=me.Identity(),s}}Vv._TmpVector3=V1(3,P.Zero);const $X={min:0,max:0},eZ={min:0,max:0},Dhe=(a,e,t)=>{const i=P.Dot(e.centerWorld,a),s=Math.abs(P.Dot(e.directions[0],a))*e.extendSize.x,r=Math.abs(P.Dot(e.directions[1],a))*e.extendSize.y,n=Math.abs(P.Dot(e.directions[2],a))*e.extendSize.z,o=s+r+n;t.min=i-o,t.max=i+o},A0=(a,e,t)=>(Dhe(a,e,$X),Dhe(a,t,eZ),!($X.min>eZ.max||eZ.min>$X.max));class nd{constructor(e,t,i){this._isLocked=!1,this.boundingBox=new ef(e,t,i),this.boundingSphere=new Vv(e,t,i)}reConstruct(e,t,i){this.boundingBox.reConstruct(e,t,i),this.boundingSphere.reConstruct(e,t,i)}get minimum(){return this.boundingBox.minimum}get maximum(){return this.boundingBox.maximum}get isLocked(){return this._isLocked}set isLocked(e){this._isLocked=e}update(e){this._isLocked||(this.boundingBox._update(e),this.boundingSphere._update(e))}centerOn(e,t){const i=nd._TmpVector3[0].copyFrom(e).subtractInPlace(t),s=nd._TmpVector3[1].copyFrom(e).addInPlace(t);return this.boundingBox.reConstruct(i,s,this.boundingBox.getWorldMatrix()),this.boundingSphere.reConstruct(i,s,this.boundingBox.getWorldMatrix()),this}encapsulate(e){const t=P.Minimize(this.minimum,e),i=P.Maximize(this.maximum,e);return this.reConstruct(t,i,this.boundingBox.getWorldMatrix()),this}encapsulateBoundingInfo(e){const t=ae.Matrix[0];this.boundingBox.getWorldMatrix().invertToRef(t);const i=ae.Vector3[0];return P.TransformCoordinatesToRef(e.boundingBox.minimumWorld,t,i),this.encapsulate(i),P.TransformCoordinatesToRef(e.boundingBox.maximumWorld,t,i),this.encapsulate(i),this}scale(e){return this.boundingBox.scale(e),this.boundingSphere.scale(e),this}isInFrustum(e,t=0){return(t===2||t===3)&&this.boundingSphere.isCenterInFrustum(e)?!0:this.boundingSphere.isInFrustum(e)?t===1||t===3?!0:this.boundingBox.isInFrustum(e):!1}get diagonalLength(){const e=this.boundingBox;return e.maximumWorld.subtractToRef(e.minimumWorld,nd._TmpVector3[0]).length()}isCompletelyInFrustum(e){return this.boundingBox.isCompletelyInFrustum(e)}_checkCollision(e){return e._canDoCollision(this.boundingSphere.centerWorld,this.boundingSphere.radiusWorld,this.boundingBox.minimumWorld,this.boundingBox.maximumWorld)}intersectsPoint(e){return!(!this.boundingSphere.centerWorld||!this.boundingSphere.intersectsPoint(e)||!this.boundingBox.intersectsPoint(e))}intersects(e,t){if(!Vv.Intersects(this.boundingSphere,e.boundingSphere)||!ef.Intersects(this.boundingBox,e.boundingBox))return!1;if(!t)return!0;const i=this.boundingBox,s=e.boundingBox;return!(!A0(i.directions[0],i,s)||!A0(i.directions[1],i,s)||!A0(i.directions[2],i,s)||!A0(s.directions[0],i,s)||!A0(s.directions[1],i,s)||!A0(s.directions[2],i,s)||!A0(P.Cross(i.directions[0],s.directions[0]),i,s)||!A0(P.Cross(i.directions[0],s.directions[1]),i,s)||!A0(P.Cross(i.directions[0],s.directions[2]),i,s)||!A0(P.Cross(i.directions[1],s.directions[0]),i,s)||!A0(P.Cross(i.directions[1],s.directions[1]),i,s)||!A0(P.Cross(i.directions[1],s.directions[2]),i,s)||!A0(P.Cross(i.directions[2],s.directions[0]),i,s)||!A0(P.Cross(i.directions[2],s.directions[1]),i,s)||!A0(P.Cross(i.directions[2],s.directions[2]),i,s))}}nd._TmpVector3=V1(2,P.Zero);class pG{static extractMinAndMaxIndexed(e,t,i,s,r,n){for(let o=i;o<i+s;o++){const l=t[o]*3,c=e[l],u=e[l+1],f=e[l+2];r.minimizeInPlaceFromFloats(c,u,f),n.maximizeInPlaceFromFloats(c,u,f)}}static extractMinAndMax(e,t,i,s,r,n){for(let o=t,l=t*s;o<t+i;o++,l+=s){const c=e[l],u=e[l+1],f=e[l+2];r.minimizeInPlaceFromFloats(c,u,f),n.maximizeInPlaceFromFloats(c,u,f)}}}F([qx.filter((...[a,e])=>!Array.isArray(a)&&!Array.isArray(e))],pG,"extractMinAndMaxIndexed",null),F([qx.filter((...[a])=>!Array.isArray(a))],pG,"extractMinAndMax",null);function Nhe(a,e,t,i,s=null){const r=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),n=new P(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);return pG.extractMinAndMaxIndexed(a,e,t,i,r,n),s&&(r.x-=r.x*s.x+s.y,r.y-=r.y*s.x+s.y,r.z-=r.z*s.x+s.y,n.x+=n.x*s.x+s.y,n.y+=n.y*s.x+s.y,n.z+=n.z*s.x+s.y),{minimum:r,maximum:n}}function vy(a,e,t,i=null,s){const r=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),n=new P(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);return s||(s=3),pG.extractMinAndMax(a,e,t,s,r,n),i&&(r.x-=r.x*i.x+i.y,r.y-=r.y*i.x+i.y,r.z-=r.z*i.x+i.y,n.x+=n.x*i.x+i.y,n.y+=n.y*i.x+i.y,n.z+=n.z*i.x+i.y),{minimum:r,maximum:n}}function whe(a,e){const t=vy(a,0,a.length/3),i=t.maximum.subtract(t.minimum).scale(.5).add(t.minimum),s=new P,r=new P,n=new P,o=new P,l=new P,c=new P,u=new P;for(let f=0;f<e.length;f+=3){const p=e[f],m=e[f+1],_=e[f+2];s.fromArray(a,p*3),r.fromArray(a,m*3),n.fromArray(a,_*3),r.subtractToRef(s,o),n.subtractToRef(s,l),P.CrossToRef(o,l,c),c.normalize();const d=s.x+r.x+n.x,h=s.y+r.y+n.y,x=s.z+r.z+n.z;u.set(d/3,h/3,x/3),u.subtractInPlace(i),u.normalize(),P.Dot(c,u)>=0&&(e[f]=_,e[f+2]=p)}}class ql{static GetEffect(e){return e.getPipelineContext===void 0?e.effect:e}constructor(e,t=!0){this._wasPreviouslyReady=!1,this._forceRebindOnNextCall=!0,this._wasPreviouslyUsingInstances=null,this.effect=null,this.defines=null,this.drawContext=e.createDrawContext(),t&&(this.materialContext=e.createMaterialContext())}setEffect(e,t,i=!0){var s;this.effect=e,t!==void 0&&(this.defines=t),i&&((s=this.drawContext)==null||s.reset())}dispose(e=!1){var t;if(this.effect){const i=this.effect;e?i.dispose():V9.SetImmediate(()=>{i.getEngine().onEndFrameObservable.addOnce(()=>{i.dispose()})}),this.effect=null}(t=this.drawContext)==null||t.dispose()}}class Lc{get materialDefines(){var e;return this._mainDrawWrapperOverride?this._mainDrawWrapperOverride.defines:(e=this._getDrawWrapper())==null?void 0:e.defines}set materialDefines(e){const t=this._mainDrawWrapperOverride??this._getDrawWrapper(void 0,!0);t.defines=e}_getDrawWrapper(e,t=!1){e=e??this._engine.currentRenderPassId;let i=this._drawWrappers[e];return!i&&t&&(this._drawWrappers[e]=i=new ql(this._mesh.getScene().getEngine())),i}_removeDrawWrapper(e,t=!0,i=!1){var s;t&&((s=this._drawWrappers[e])==null||s.dispose(i)),this._drawWrappers[e]=void 0}get effect(){var e;return this._mainDrawWrapperOverride?this._mainDrawWrapperOverride.effect:((e=this._getDrawWrapper())==null?void 0:e.effect)??null}get _drawWrapper(){return this._mainDrawWrapperOverride??this._getDrawWrapper(void 0,!0)}get _drawWrapperOverride(){return this._mainDrawWrapperOverride}_setMainDrawWrapperOverride(e){this._mainDrawWrapperOverride=e}setEffect(e,t=null,i,s=!0){const r=this._drawWrapper;r.setEffect(e,t,s),i!==void 0&&(r.materialContext=i),e||(r.defines=null,r.materialContext=void 0)}resetDrawCache(e,t=!1){if(this._drawWrappers)if(e!==void 0){this._removeDrawWrapper(e,!0,t);return}else for(const i of this._drawWrappers)i==null||i.dispose(t);this._drawWrappers=[]}static AddToMesh(e,t,i,s,r,n,o,l=!0){return new Lc(e,t,i,s,r,n,o,l)}constructor(e,t,i,s,r,n,o,l=!0,c=!0){this.materialIndex=e,this.verticesStart=t,this.verticesCount=i,this.indexStart=s,this.indexCount=r,this._mainDrawWrapperOverride=null,this._linesIndexCount=0,this._linesIndexBuffer=null,this._lastColliderWorldVertices=null,this._lastColliderTransformMatrix=null,this._wasDispatched=!1,this._renderId=0,this._alphaIndex=0,this._distanceToCamera=0,this._currentMaterial=null,this._mesh=n,this._renderingMesh=o||n,c&&n.subMeshes.push(this),this._engine=this._mesh.getScene().getEngine(),this.resetDrawCache(),this._trianglePlanes=[],this._id=n.subMeshes.length-1,l&&(this.refreshBoundingInfo(),n.computeWorldMatrix(!0))}get IsGlobal(){return this.verticesStart===0&&this.verticesCount===this._mesh.getTotalVertices()&&this.indexStart===0&&this.indexCount===this._mesh.getTotalIndices()}getBoundingInfo(){return this.IsGlobal||this._mesh.hasThinInstances?this._mesh.getBoundingInfo():this._boundingInfo}setBoundingInfo(e){return this._boundingInfo=e,this}getMesh(){return this._mesh}getRenderingMesh(){return this._renderingMesh}getReplacementMesh(){return this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh?this._mesh:null}getEffectiveMesh(){const e=this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh?this._mesh:null;return e||this._renderingMesh}getMaterial(e=!0){const t=this._renderingMesh.getMaterialForRenderPass(this._engine.currentRenderPassId)??this._renderingMesh.material;if(t){if(this._isMultiMaterial(t)){const i=t.getSubMaterial(this.materialIndex);return this._currentMaterial!==i&&(this._currentMaterial=i,this.resetDrawCache()),i}}else return e&&this._mesh.getScene()._hasDefaultMaterial?this._mesh.getScene().defaultMaterial:null;return t}_isMultiMaterial(e){return e.getSubMaterial!==void 0}refreshBoundingInfo(e=null){if(this._lastColliderWorldVertices=null,this.IsGlobal||!this._renderingMesh||!this._renderingMesh.geometry)return this;if(e||(e=this._renderingMesh.getVerticesData(q.PositionKind)),!e)return this._boundingInfo=this._mesh.getBoundingInfo(),this;const t=this._renderingMesh.getIndices();let i;if(this.indexStart===0&&this.indexCount===t.length){const s=this._renderingMesh.getBoundingInfo();i={minimum:s.minimum.clone(),maximum:s.maximum.clone()}}else i=Nhe(e,t,this.indexStart,this.indexCount,this._renderingMesh.geometry.boundingBias);return this._boundingInfo?this._boundingInfo.reConstruct(i.minimum,i.maximum):this._boundingInfo=new nd(i.minimum,i.maximum),this}_checkCollision(e){return this.getBoundingInfo()._checkCollision(e)}updateBoundingInfo(e){let t=this.getBoundingInfo();return t||(this.refreshBoundingInfo(),t=this.getBoundingInfo()),t&&t.update(e),this}isInFrustum(e){const t=this.getBoundingInfo();return t?t.isInFrustum(e,this._mesh.cullingStrategy):!1}isCompletelyInFrustum(e){const t=this.getBoundingInfo();return t?t.isCompletelyInFrustum(e):!1}render(e){return this._renderingMesh.render(this,e,this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh?this._mesh:void 0),this}_getLinesIndexBuffer(e,t){if(!this._linesIndexBuffer){const i=Math.floor(this.indexCount/3)*6,r=this.verticesStart+this.verticesCount>65535?new Uint32Array(i):new Uint16Array(i);let n=0;if(e.length===0)for(let o=this.indexStart;o<this.indexStart+this.indexCount;o+=3)r[n++]=o,r[n++]=o+1,r[n++]=o+1,r[n++]=o+2,r[n++]=o+2,r[n++]=o;else for(let o=this.indexStart;o<this.indexStart+this.indexCount;o+=3)r[n++]=e[o],r[n++]=e[o+1],r[n++]=e[o+1],r[n++]=e[o+2],r[n++]=e[o+2],r[n++]=e[o];this._linesIndexBuffer=t.createIndexBuffer(r),this._linesIndexCount=r.length}return this._linesIndexBuffer}canIntersects(e){const t=this.getBoundingInfo();return t?e.intersectsBox(t.boundingBox):!1}intersects(e,t,i,s,r){const n=this.getMaterial();if(!n)return null;let o=3,l=!1;switch(n.fillMode){case 3:case 5:case 6:case 8:return null;case 7:o=1,l=!0;break}return n.fillMode===4?i.length?this._intersectLines(e,t,i,this._mesh.intersectionThreshold,s):this._intersectUnIndexedLines(e,t,i,this._mesh.intersectionThreshold,s):!i.length&&this._mesh._unIndexed?this._intersectUnIndexedTriangles(e,t,i,s,r):this._intersectTriangles(e,t,i,o,l,s,r)}_intersectLines(e,t,i,s,r){let n=null;for(let o=this.indexStart;o<this.indexStart+this.indexCount;o+=2){const l=t[i[o]],c=t[i[o+1]],u=e.intersectionSegment(l,c,s);if(!(u<0)&&(r||!n||u<n.distance)&&(n=new fG(null,null,u),n.faceId=o/2,r))break}return n}_intersectUnIndexedLines(e,t,i,s,r){let n=null;for(let o=this.verticesStart;o<this.verticesStart+this.verticesCount;o+=2){const l=t[o],c=t[o+1],u=e.intersectionSegment(l,c,s);if(!(u<0)&&(r||!n||u<n.distance)&&(n=new fG(null,null,u),n.faceId=o/2,r))break}return n}_intersectTriangles(e,t,i,s,r,n,o){let l=null,c=-1;for(let u=this.indexStart;u<this.indexStart+this.indexCount-(3-s);u+=s){c++;const f=i[u],p=i[u+1],m=i[u+2];if(r&&m===4294967295){u+=2;continue}const _=t[f],d=t[p],h=t[m];if(!_||!d||!h||o&&!o(_,d,h,e,f,p,m))continue;const x=e.intersectsTriangle(_,d,h);if(x){if(x.distance<0)continue;if((n||!l||x.distance<l.distance)&&(l=x,l.faceId=c,n))break}}return l}_intersectUnIndexedTriangles(e,t,i,s,r){let n=null;for(let o=this.verticesStart;o<this.verticesStart+this.verticesCount;o+=3){const l=t[o],c=t[o+1],u=t[o+2];if(r&&!r(l,c,u,e,-1,-1,-1))continue;const f=e.intersectsTriangle(l,c,u);if(f){if(f.distance<0)continue;if((s||!n||f.distance<n.distance)&&(n=f,n.faceId=o/3,s))break}}return n}_rebuild(){this._linesIndexBuffer&&(this._linesIndexBuffer=null)}clone(e,t){const i=new Lc(this.materialIndex,this.verticesStart,this.verticesCount,this.indexStart,this.indexCount,e,t,!1);if(!this.IsGlobal){const s=this.getBoundingInfo();if(!s)return i;i._boundingInfo=new nd(s.minimum,s.maximum)}return i}dispose(e=!1){this._linesIndexBuffer&&(this._mesh.getScene().getEngine()._releaseBuffer(this._linesIndexBuffer),this._linesIndexBuffer=null);const t=this._mesh.subMeshes.indexOf(this);this._mesh.subMeshes.splice(t,1),this.resetDrawCache(void 0,e)}getClassName(){return"SubMesh"}static CreateFromIndices(e,t,i,s,r,n=!0){let o=Number.MAX_VALUE,l=-Number.MAX_VALUE;const u=(r||s).getIndices();for(let f=t;f<t+i;f++){const p=u[f];p<o&&(o=p),p>l&&(l=p)}return new Lc(e,o,l-o+1,t,i,s,r,n)}}class Sw{}class wt{constructor(){this.uniqueId=0,this.metadata={},this._applyTo=Rhe(this._applyToCoroutine.bind(this)),this.uniqueId=wt._UniqueIDGenerator,wt._UniqueIDGenerator++}set(e,t){switch(e.length||de.Warn(`Setting vertex data kind '${t}' with an empty array`),t){case q.PositionKind:this.positions=e;break;case q.NormalKind:this.normals=e;break;case q.TangentKind:this.tangents=e;break;case q.UVKind:this.uvs=e;break;case q.UV2Kind:this.uvs2=e;break;case q.UV3Kind:this.uvs3=e;break;case q.UV4Kind:this.uvs4=e;break;case q.UV5Kind:this.uvs5=e;break;case q.UV6Kind:this.uvs6=e;break;case q.ColorKind:this.colors=e;break;case q.MatricesIndicesKind:this.matricesIndices=e;break;case q.MatricesWeightsKind:this.matricesWeights=e;break;case q.MatricesIndicesExtraKind:this.matricesIndicesExtra=e;break;case q.MatricesWeightsExtraKind:this.matricesWeightsExtra=e;break}}applyToMesh(e,t){return this._applyTo(e,t,!1),this}applyToGeometry(e,t){return this._applyTo(e,t,!1),this}updateMesh(e){return this._update(e),this}updateGeometry(e){return this._update(e),this}*_applyToCoroutine(e,t=!1,i){if(this.positions&&(e.setVerticesData(q.PositionKind,this.positions,t),i&&(yield)),this.normals&&(e.setVerticesData(q.NormalKind,this.normals,t),i&&(yield)),this.tangents&&(e.setVerticesData(q.TangentKind,this.tangents,t),i&&(yield)),this.uvs&&(e.setVerticesData(q.UVKind,this.uvs,t),i&&(yield)),this.uvs2&&(e.setVerticesData(q.UV2Kind,this.uvs2,t),i&&(yield)),this.uvs3&&(e.setVerticesData(q.UV3Kind,this.uvs3,t),i&&(yield)),this.uvs4&&(e.setVerticesData(q.UV4Kind,this.uvs4,t),i&&(yield)),this.uvs5&&(e.setVerticesData(q.UV5Kind,this.uvs5,t),i&&(yield)),this.uvs6&&(e.setVerticesData(q.UV6Kind,this.uvs6,t),i&&(yield)),this.colors){const s=this.positions&&this.colors.length===this.positions.length?3:4;e.setVerticesData(q.ColorKind,this.colors,t,s),this.hasVertexAlpha&&e.hasVertexAlpha!==void 0&&(e.hasVertexAlpha=!0),i&&(yield)}if(this.matricesIndices&&(e.setVerticesData(q.MatricesIndicesKind,this.matricesIndices,t),i&&(yield)),this.matricesWeights&&(e.setVerticesData(q.MatricesWeightsKind,this.matricesWeights,t),i&&(yield)),this.matricesIndicesExtra&&(e.setVerticesData(q.MatricesIndicesExtraKind,this.matricesIndicesExtra,t),i&&(yield)),this.matricesWeightsExtra&&(e.setVerticesData(q.MatricesWeightsExtraKind,this.matricesWeightsExtra,t),i&&(yield)),this.indices?(e.setIndices(this.indices,null,t),i&&(yield)):e.setIndices([],null),e.subMeshes&&this.materialInfos&&this.materialInfos.length>1){const s=e;s.subMeshes=[];for(const r of this.materialInfos)new Lc(r.materialIndex,r.verticesStart,r.verticesCount,r.indexStart,r.indexCount,s)}return this}_update(e,t,i){return this.positions&&e.updateVerticesData(q.PositionKind,this.positions,t,i),this.normals&&e.updateVerticesData(q.NormalKind,this.normals,t,i),this.tangents&&e.updateVerticesData(q.TangentKind,this.tangents,t,i),this.uvs&&e.updateVerticesData(q.UVKind,this.uvs,t,i),this.uvs2&&e.updateVerticesData(q.UV2Kind,this.uvs2,t,i),this.uvs3&&e.updateVerticesData(q.UV3Kind,this.uvs3,t,i),this.uvs4&&e.updateVerticesData(q.UV4Kind,this.uvs4,t,i),this.uvs5&&e.updateVerticesData(q.UV5Kind,this.uvs5,t,i),this.uvs6&&e.updateVerticesData(q.UV6Kind,this.uvs6,t,i),this.colors&&e.updateVerticesData(q.ColorKind,this.colors,t,i),this.matricesIndices&&e.updateVerticesData(q.MatricesIndicesKind,this.matricesIndices,t,i),this.matricesWeights&&e.updateVerticesData(q.MatricesWeightsKind,this.matricesWeights,t,i),this.matricesIndicesExtra&&e.updateVerticesData(q.MatricesIndicesExtraKind,this.matricesIndicesExtra,t,i),this.matricesWeightsExtra&&e.updateVerticesData(q.MatricesWeightsExtraKind,this.matricesWeightsExtra,t,i),this.indices&&e.setIndices(this.indices,null),this}static _TransformVector3Coordinates(e,t,i=0,s=e.length){const r=ae.Vector3[0],n=ae.Vector3[1];for(let o=i;o<i+s;o+=3)P.FromArrayToRef(e,o,r),P.TransformCoordinatesToRef(r,t,n),e[o]=n.x,e[o+1]=n.y,e[o+2]=n.z}static _TransformVector3Normals(e,t,i=0,s=e.length){const r=ae.Vector3[0],n=ae.Vector3[1];for(let o=i;o<i+s;o+=3)P.FromArrayToRef(e,o,r),P.TransformNormalToRef(r,t,n),e[o]=n.x,e[o+1]=n.y,e[o+2]=n.z}static _TransformVector4Normals(e,t,i=0,s=e.length){const r=ae.Vector4[0],n=ae.Vector4[1];for(let o=i;o<i+s;o+=4)Yt.FromArrayToRef(e,o,r),Yt.TransformNormalToRef(r,t,n),e[o]=n.x,e[o+1]=n.y,e[o+2]=n.z,e[o+3]=n.w}static _FlipFaces(e,t=0,i=e.length){for(let s=t;s<t+i;s+=3){const r=e[s+1];e[s+1]=e[s+2],e[s+2]=r}}transform(e){const t=e.determinant()<0;return this.positions&&wt._TransformVector3Coordinates(this.positions,e),this.normals&&wt._TransformVector3Normals(this.normals,e),this.tangents&&wt._TransformVector4Normals(this.tangents,e),t&&this.indices&&wt._FlipFaces(this.indices),this}splitBasedOnMaterialID(){if(!this.materialInfos||this.materialInfos.length<2)return[this];const e=[];for(const t of this.materialInfos){const i=new wt;if(this.positions&&(i.positions=this.positions.slice(t.verticesStart*3,(t.verticesCount+t.verticesStart)*3)),this.normals&&(i.normals=this.normals.slice(t.verticesStart*3,(t.verticesCount+t.verticesStart)*3)),this.tangents&&(i.tangents=this.tangents.slice(t.verticesStart*4,(t.verticesCount+t.verticesStart)*4)),this.colors&&(i.colors=this.colors.slice(t.verticesStart*4,(t.verticesCount+t.verticesStart)*4)),this.uvs&&(i.uvs=this.uvs.slice(t.verticesStart*2,(t.verticesCount+t.verticesStart)*2)),this.uvs2&&(i.uvs2=this.uvs2.slice(t.verticesStart*2,(t.verticesCount+t.verticesStart)*2)),this.uvs3&&(i.uvs3=this.uvs3.slice(t.verticesStart*2,(t.verticesCount+t.verticesStart)*2)),this.uvs4&&(i.uvs4=this.uvs4.slice(t.verticesStart*2,(t.verticesCount+t.verticesStart)*2)),this.uvs5&&(i.uvs5=this.uvs5.slice(t.verticesStart*2,(t.verticesCount+t.verticesStart)*2)),this.uvs6&&(i.uvs6=this.uvs6.slice(t.verticesStart*2,(t.verticesCount+t.verticesStart)*2)),this.matricesIndices&&(i.matricesIndices=this.matricesIndices.slice(t.verticesStart*4,(t.verticesCount+t.verticesStart)*4)),this.matricesIndicesExtra&&(i.matricesIndicesExtra=this.matricesIndicesExtra.slice(t.verticesStart*4,(t.verticesCount+t.verticesStart)*4)),this.matricesWeights&&(i.matricesWeights=this.matricesWeights.slice(t.verticesStart*4,(t.verticesCount+t.verticesStart)*4)),this.matricesWeightsExtra&&(i.matricesWeightsExtra=this.matricesWeightsExtra.slice(t.verticesStart*4,(t.verticesCount+t.verticesStart)*4)),this.indices){i.indices=[];for(let r=t.indexStart;r<t.indexStart+t.indexCount;r++)i.indices.push(this.indices[r]-t.verticesStart)}const s=new Sw;s.indexStart=0,s.indexCount=i.indices?i.indices.length:0,s.materialIndex=t.materialIndex,s.verticesStart=0,s.verticesCount=(i.positions?i.positions.length:0)/3,i.materialInfos=[s],e.push(i)}return e}merge(e,t=!1,i=!1,s=!1,r=!1){const n=Array.isArray(e)?e.map(o=>({vertexData:o})):[{vertexData:e}];return bw(this._mergeCoroutine(void 0,n,t,!1,i,s,r))}*_mergeCoroutine(e,t,i=!1,s,r,n=!1,o=!1){var m,_;this._validate();let l=t.map(d=>d.vertexData),c=this;if(o)for(const d of l)d&&(d._validate(),!this.normals&&d.normals&&(this.normals=new Float32Array(this.positions.length)),!this.tangents&&d.tangents&&(this.tangents=new Float32Array(this.positions.length/3*4)),!this.uvs&&d.uvs&&(this.uvs=new Float32Array(this.positions.length/3*2)),!this.uvs2&&d.uvs2&&(this.uvs2=new Float32Array(this.positions.length/3*2)),!this.uvs3&&d.uvs3&&(this.uvs3=new Float32Array(this.positions.length/3*2)),!this.uvs4&&d.uvs4&&(this.uvs4=new Float32Array(this.positions.length/3*2)),!this.uvs5&&d.uvs5&&(this.uvs5=new Float32Array(this.positions.length/3*2)),!this.uvs6&&d.uvs6&&(this.uvs6=new Float32Array(this.positions.length/3*2)),!this.colors&&d.colors&&(this.colors=new Float32Array(this.positions.length/3*4),this.colors.fill(1)),!this.matricesIndices&&d.matricesIndices&&(this.matricesIndices=new Float32Array(this.positions.length/3*4)),!this.matricesWeights&&d.matricesWeights&&(this.matricesWeights=new Float32Array(this.positions.length/3*4)),!this.matricesIndicesExtra&&d.matricesIndicesExtra&&(this.matricesIndicesExtra=new Float32Array(this.positions.length/3*4)),!this.matricesWeightsExtra&&d.matricesWeightsExtra&&(this.matricesWeightsExtra=new Float32Array(this.positions.length/3*4)));for(const d of l)if(d){if(o)this.normals&&!d.normals&&(d.normals=new Float32Array(d.positions.length)),this.tangents&&!d.tangents&&(d.tangents=new Float32Array(d.positions.length/3*4)),this.uvs&&!d.uvs&&(d.uvs=new Float32Array(d.positions.length/3*2)),this.uvs2&&!d.uvs2&&(d.uvs2=new Float32Array(d.positions.length/3*2)),this.uvs3&&!d.uvs3&&(d.uvs3=new Float32Array(d.positions.length/3*2)),this.uvs4&&!d.uvs4&&(d.uvs4=new Float32Array(d.positions.length/3*2)),this.uvs5&&!d.uvs5&&(d.uvs5=new Float32Array(d.positions.length/3*2)),this.uvs6&&!d.uvs6&&(d.uvs6=new Float32Array(d.positions.length/3*2)),this.colors&&!d.colors&&(d.colors=new Float32Array(d.positions.length/3*4),d.colors.fill(1)),this.matricesIndices&&!d.matricesIndices&&(d.matricesIndices=new Float32Array(d.positions.length/3*4)),this.matricesWeights&&!d.matricesWeights&&(d.matricesWeights=new Float32Array(d.positions.length/3*4)),this.matricesIndicesExtra&&!d.matricesIndicesExtra&&(d.matricesIndicesExtra=new Float32Array(d.positions.length/3*4)),this.matricesWeightsExtra&&!d.matricesWeightsExtra&&(d.matricesWeightsExtra=new Float32Array(d.positions.length/3*4));else if(d._validate(),!this.normals!=!d.normals||!this.tangents!=!d.tangents||!this.uvs!=!d.uvs||!this.uvs2!=!d.uvs2||!this.uvs3!=!d.uvs3||!this.uvs4!=!d.uvs4||!this.uvs5!=!d.uvs5||!this.uvs6!=!d.uvs6||!this.colors!=!d.colors||!this.matricesIndices!=!d.matricesIndices||!this.matricesWeights!=!d.matricesWeights||!this.matricesIndicesExtra!=!d.matricesIndicesExtra||!this.matricesWeightsExtra!=!d.matricesWeightsExtra)throw new Error("Cannot merge vertex data that do not have the same set of attributes")}if(n){let d=0,h=0,x=0;const A=[];let S=null;const E=[];for(const M of this.splitBasedOnMaterialID())E.push({vertexData:M,transform:e});for(const M of t)if(M.vertexData)for(const T of M.vertexData.splitBasedOnMaterialID())E.push({vertexData:T,transform:M.transform});E.sort((M,T)=>{const O=M.vertexData.materialInfos?M.vertexData.materialInfos[0].materialIndex:0,R=T.vertexData.materialInfos?T.vertexData.materialInfos[0].materialIndex:0;return O>R?1:O===R?0:-1});for(const M of E){const T=M.vertexData;if(T.materialInfos?d=T.materialInfos[0].materialIndex:d=0,S&&S.materialIndex===d)S.indexCount+=T.indices.length,S.verticesCount+=T.positions.length/3;else{const O=new Sw;O.materialIndex=d,O.indexStart=h,O.indexCount=T.indices.length,O.verticesStart=x,O.verticesCount=T.positions.length/3,A.push(O),S=O}h+=T.indices.length,x+=T.positions.length/3}const b=E.splice(0,1)[0];c=b.vertexData,e=b.transform,l=E.map(M=>M.vertexData),t=E,this.materialInfos=A}const u=l.reduce((d,h)=>{var x;return d+(((x=h.indices)==null?void 0:x.length)??0)},((m=c.indices)==null?void 0:m.length)??0);let p=r||l.some(d=>d.indices===c.indices)?(_=c.indices)==null?void 0:_.slice():c.indices;if(u>0){let d=(p==null?void 0:p.length)??0;if(p||(p=new Array(u)),p.length!==u){if(Array.isArray(p))p.length=u;else{const x=i||p instanceof Uint32Array?new Uint32Array(u):new Uint16Array(u);x.set(p),p=x}e&&e.determinant()<0&&wt._FlipFaces(p,0,d)}let h=c.positions?c.positions.length/3:0;for(const{vertexData:x,transform:A}of t)if(x.indices){for(let S=0;S<x.indices.length;S++)p[d+S]=x.indices[S]+h;A&&A.determinant()<0&&wt._FlipFaces(p,d,x.indices.length),h+=x.positions.length/3,d+=x.indices.length,s&&(yield)}}return this.indices=p,this.positions=wt._MergeElement(q.PositionKind,c.positions,e,t.map(d=>[d.vertexData.positions,d.transform])),s&&(yield),c.normals&&(this.normals=wt._MergeElement(q.NormalKind,c.normals,e,t.map(d=>[d.vertexData.normals,d.transform])),s&&(yield)),c.tangents&&(this.tangents=wt._MergeElement(q.TangentKind,c.tangents,e,t.map(d=>[d.vertexData.tangents,d.transform])),s&&(yield)),c.uvs&&(this.uvs=wt._MergeElement(q.UVKind,c.uvs,e,t.map(d=>[d.vertexData.uvs,d.transform])),s&&(yield)),c.uvs2&&(this.uvs2=wt._MergeElement(q.UV2Kind,c.uvs2,e,t.map(d=>[d.vertexData.uvs2,d.transform])),s&&(yield)),c.uvs3&&(this.uvs3=wt._MergeElement(q.UV3Kind,c.uvs3,e,t.map(d=>[d.vertexData.uvs3,d.transform])),s&&(yield)),c.uvs4&&(this.uvs4=wt._MergeElement(q.UV4Kind,c.uvs4,e,t.map(d=>[d.vertexData.uvs4,d.transform])),s&&(yield)),c.uvs5&&(this.uvs5=wt._MergeElement(q.UV5Kind,c.uvs5,e,t.map(d=>[d.vertexData.uvs5,d.transform])),s&&(yield)),c.uvs6&&(this.uvs6=wt._MergeElement(q.UV6Kind,c.uvs6,e,t.map(d=>[d.vertexData.uvs6,d.transform])),s&&(yield)),c.colors&&(this.colors=wt._MergeElement(q.ColorKind,c.colors,e,t.map(d=>[d.vertexData.colors,d.transform])),(c.hasVertexAlpha!==void 0||t.some(d=>d.vertexData.hasVertexAlpha!==void 0))&&(this.hasVertexAlpha=c.hasVertexAlpha||t.some(d=>d.vertexData.hasVertexAlpha)),s&&(yield)),c.matricesIndices&&(this.matricesIndices=wt._MergeElement(q.MatricesIndicesKind,c.matricesIndices,e,t.map(d=>[d.vertexData.matricesIndices,d.transform])),s&&(yield)),c.matricesWeights&&(this.matricesWeights=wt._MergeElement(q.MatricesWeightsKind,c.matricesWeights,e,t.map(d=>[d.vertexData.matricesWeights,d.transform])),s&&(yield)),c.matricesIndicesExtra&&(this.matricesIndicesExtra=wt._MergeElement(q.MatricesIndicesExtraKind,c.matricesIndicesExtra,e,t.map(d=>[d.vertexData.matricesIndicesExtra,d.transform])),s&&(yield)),c.matricesWeightsExtra&&(this.matricesWeightsExtra=wt._MergeElement(q.MatricesWeightsExtraKind,c.matricesWeightsExtra,e,t.map(d=>[d.vertexData.matricesWeightsExtra,d.transform]))),this}static _MergeElement(e,t,i,s){const r=s.filter(l=>l[0]!==null&&l[0]!==void 0);if(!t&&r.length==0)return t;if(!t)return this._MergeElement(e,r[0][0],r[0][1],r.slice(1));const n=r.reduce((l,c)=>l+c[0].length,t.length),o=e===q.PositionKind?wt._TransformVector3Coordinates:e===q.NormalKind?wt._TransformVector3Normals:e===q.TangentKind?wt._TransformVector4Normals:()=>{};if(t instanceof Float32Array){const l=new Float32Array(n);l.set(t),i&&o(l,i,0,t.length);let c=t.length;for(const[u,f]of r)l.set(u,c),f&&o(l,f,c,u.length),c+=u.length;return l}else{const l=new Array(n);for(let u=0;u<t.length;u++)l[u]=t[u];i&&o(l,i,0,t.length);let c=t.length;for(const[u,f]of r){for(let p=0;p<u.length;p++)l[c+p]=u[p];f&&o(l,f,c,u.length),c+=u.length}return l}}_validate(){if(!this.positions)throw new Y6("Positions are required",Xx.MeshInvalidPositionsError);const e=(s,r)=>{const n=q.DeduceStride(s);if(r.length%n!==0)throw new Error("The "+s+"s array count must be a multiple of "+n);return r.length/n},t=e(q.PositionKind,this.positions),i=(s,r)=>{const n=e(s,r);if(n!==t)throw new Error("The "+s+"s element count ("+n+") does not match the positions count ("+t+")")};this.normals&&i(q.NormalKind,this.normals),this.tangents&&i(q.TangentKind,this.tangents),this.uvs&&i(q.UVKind,this.uvs),this.uvs2&&i(q.UV2Kind,this.uvs2),this.uvs3&&i(q.UV3Kind,this.uvs3),this.uvs4&&i(q.UV4Kind,this.uvs4),this.uvs5&&i(q.UV5Kind,this.uvs5),this.uvs6&&i(q.UV6Kind,this.uvs6),this.colors&&i(q.ColorKind,this.colors),this.matricesIndices&&i(q.MatricesIndicesKind,this.matricesIndices),this.matricesWeights&&i(q.MatricesWeightsKind,this.matricesWeights),this.matricesIndicesExtra&&i(q.MatricesIndicesExtraKind,this.matricesIndicesExtra),this.matricesWeightsExtra&&i(q.MatricesWeightsExtraKind,this.matricesWeightsExtra)}clone(){const e=this.serialize();return wt.Parse(e)}serialize(){const e={};if(this.positions&&(e.positions=Array.from(this.positions)),this.normals&&(e.normals=Array.from(this.normals)),this.tangents&&(e.tangents=Array.from(this.tangents)),this.uvs&&(e.uvs=Array.from(this.uvs)),this.uvs2&&(e.uvs2=Array.from(this.uvs2)),this.uvs3&&(e.uvs3=Array.from(this.uvs3)),this.uvs4&&(e.uvs4=Array.from(this.uvs4)),this.uvs5&&(e.uvs5=Array.from(this.uvs5)),this.uvs6&&(e.uvs6=Array.from(this.uvs6)),this.colors&&(e.colors=Array.from(this.colors),e.hasVertexAlpha=this.hasVertexAlpha),this.matricesIndices&&(e.matricesIndices=Array.from(this.matricesIndices),e.matricesIndices._isExpanded=!0),this.matricesWeights&&(e.matricesWeights=Array.from(this.matricesWeights)),this.matricesIndicesExtra&&(e.matricesIndicesExtra=Array.from(this.matricesIndicesExtra),e.matricesIndicesExtra._isExpanded=!0),this.matricesWeightsExtra&&(e.matricesWeightsExtra=Array.from(this.matricesWeightsExtra)),e.indices=this.indices?Array.from(this.indices):[],this.materialInfos){e.materialInfos=[];for(const t of this.materialInfos){const i={indexStart:t.indexStart,indexCount:t.indexCount,materialIndex:t.materialIndex,verticesStart:t.verticesStart,verticesCount:t.verticesCount};e.materialInfos.push(i)}}return e}static ExtractFromMesh(e,t,i){return wt._ExtractFrom(e,t,i)}static ExtractFromGeometry(e,t,i){return wt._ExtractFrom(e,t,i)}static _ExtractFrom(e,t,i){const s=new wt;if(e.isVerticesDataPresent(q.PositionKind)&&(s.positions=e.getVerticesData(q.PositionKind,t,i)),e.isVerticesDataPresent(q.NormalKind)&&(s.normals=e.getVerticesData(q.NormalKind,t,i)),e.isVerticesDataPresent(q.TangentKind)&&(s.tangents=e.getVerticesData(q.TangentKind,t,i)),e.isVerticesDataPresent(q.UVKind)&&(s.uvs=e.getVerticesData(q.UVKind,t,i)),e.isVerticesDataPresent(q.UV2Kind)&&(s.uvs2=e.getVerticesData(q.UV2Kind,t,i)),e.isVerticesDataPresent(q.UV3Kind)&&(s.uvs3=e.getVerticesData(q.UV3Kind,t,i)),e.isVerticesDataPresent(q.UV4Kind)&&(s.uvs4=e.getVerticesData(q.UV4Kind,t,i)),e.isVerticesDataPresent(q.UV5Kind)&&(s.uvs5=e.getVerticesData(q.UV5Kind,t,i)),e.isVerticesDataPresent(q.UV6Kind)&&(s.uvs6=e.getVerticesData(q.UV6Kind,t,i)),e.isVerticesDataPresent(q.ColorKind)){const r=e.geometry||e,n=r.getVertexBuffer(q.ColorKind),o=r.getVerticesData(q.ColorKind,t,i);if(n.getSize()===3){const l=new Float32Array(o.length*4/3);for(let c=0,u=0;c<o.length;c+=3,u+=4)l[u]=o[c],l[u+1]=o[c+1],l[u+2]=o[c+2],l[u+3]=1;s.colors=l}else if(n.getSize()===4)s.colors=o;else throw new Error(`Unexpected number of color components: ${n.getSize()}`)}return e.isVerticesDataPresent(q.MatricesIndicesKind)&&(s.matricesIndices=e.getVerticesData(q.MatricesIndicesKind,t,i)),e.isVerticesDataPresent(q.MatricesWeightsKind)&&(s.matricesWeights=e.getVerticesData(q.MatricesWeightsKind,t,i)),e.isVerticesDataPresent(q.MatricesIndicesExtraKind)&&(s.matricesIndicesExtra=e.getVerticesData(q.MatricesIndicesExtraKind,t,i)),e.isVerticesDataPresent(q.MatricesWeightsExtraKind)&&(s.matricesWeightsExtra=e.getVerticesData(q.MatricesWeightsExtraKind,t,i)),s.indices=e.getIndices(t,i),s}static CreateRibbon(e){throw as("ribbonBuilder")}static CreateBox(e){throw as("boxBuilder")}static CreateTiledBox(e){throw as("tiledBoxBuilder")}static CreateTiledPlane(e){throw as("tiledPlaneBuilder")}static CreateSphere(e){throw as("sphereBuilder")}static CreateCylinder(e){throw as("cylinderBuilder")}static CreateTorus(e){throw as("torusBuilder")}static CreateLineSystem(e){throw as("linesBuilder")}static CreateDashedLines(e){throw as("linesBuilder")}static CreateGround(e){throw as("groundBuilder")}static CreateTiledGround(e){throw as("groundBuilder")}static CreateGroundFromHeightMap(e){throw as("groundBuilder")}static CreatePlane(e){throw as("planeBuilder")}static CreateDisc(e){throw as("discBuilder")}static CreatePolygon(e,t,i,s,r,n,o){throw as("polygonBuilder")}static CreateIcoSphere(e){throw as("icoSphereBuilder")}static CreatePolyhedron(e){throw as("polyhedronBuilder")}static CreateCapsule(e={orientation:P.Up(),subdivisions:2,tessellation:16,height:1,radius:.25,capSubdivisions:6}){throw as("capsuleBuilder")}static CreateTorusKnot(e){throw as("torusKnotBuilder")}static ComputeNormals(e,t,i,s){let r=0,n=0,o=0,l=0,c=0,u=0,f=0,p=0,m=0,_=0,d=0,h=0,x=0,A=0,S=0,E=0,b=0,M=0,T=0,O=0,R=!1,I=!1,N=!1,w=!1,D=1,k=0,Y=null;s&&(R=!!s.facetNormals,I=!!s.facetPositions,N=!!s.facetPartitioning,D=s.useRightHandedSystem===!0?-1:1,k=s.ratio||0,w=!!s.depthSort,Y=s.distanceTo,w&&Y===void 0&&(Y=P.Zero()));let V=0,ee=0,K=0,ie=0;for(N&&s&&s.bbSize&&(V=s.subDiv.X*k/s.bbSize.x,ee=s.subDiv.Y*k/s.bbSize.y,K=s.subDiv.Z*k/s.bbSize.z,ie=s.subDiv.max*s.subDiv.max,s.facetPartitioning.length=0),r=0;r<e.length;r++)i[r]=0;const ne=t.length/3|0;for(r=0;r<ne;r++){if(h=t[r*3]*3,x=h+1,A=h+2,S=t[r*3+1]*3,E=S+1,b=S+2,M=t[r*3+2]*3,T=M+1,O=M+2,n=e[h]-e[S],o=e[x]-e[E],l=e[A]-e[b],c=e[M]-e[S],u=e[T]-e[E],f=e[O]-e[b],p=D*(o*f-l*u),m=D*(l*c-n*f),_=D*(n*u-o*c),d=Math.sqrt(p*p+m*m+_*_),d=d===0?1:d,p/=d,m/=d,_/=d,R&&s&&(s.facetNormals[r].x=p,s.facetNormals[r].y=m,s.facetNormals[r].z=_),I&&s&&(s.facetPositions[r].x=(e[h]+e[S]+e[M])/3,s.facetPositions[r].y=(e[x]+e[E]+e[T])/3,s.facetPositions[r].z=(e[A]+e[b]+e[O])/3),N&&s){const te=Math.floor((s.facetPositions[r].x-s.bInfo.minimum.x*k)*V),W=Math.floor((s.facetPositions[r].y-s.bInfo.minimum.y*k)*ee),Q=Math.floor((s.facetPositions[r].z-s.bInfo.minimum.z*k)*K),re=Math.floor((e[h]-s.bInfo.minimum.x*k)*V),oe=Math.floor((e[x]-s.bInfo.minimum.y*k)*ee),X=Math.floor((e[A]-s.bInfo.minimum.z*k)*K),se=Math.floor((e[S]-s.bInfo.minimum.x*k)*V),ue=Math.floor((e[E]-s.bInfo.minimum.y*k)*ee),he=Math.floor((e[b]-s.bInfo.minimum.z*k)*K),fe=Math.floor((e[M]-s.bInfo.minimum.x*k)*V),Ae=Math.floor((e[T]-s.bInfo.minimum.y*k)*ee),Se=Math.floor((e[O]-s.bInfo.minimum.z*k)*K),we=re+s.subDiv.max*oe+ie*X,ke=se+s.subDiv.max*ue+ie*he,st=fe+s.subDiv.max*Ae+ie*Se,Ve=te+s.subDiv.max*W+ie*Q;s.facetPartitioning[Ve]=s.facetPartitioning[Ve]?s.facetPartitioning[Ve]:new Array,s.facetPartitioning[we]=s.facetPartitioning[we]?s.facetPartitioning[we]:new Array,s.facetPartitioning[ke]=s.facetPartitioning[ke]?s.facetPartitioning[ke]:new Array,s.facetPartitioning[st]=s.facetPartitioning[st]?s.facetPartitioning[st]:new Array,s.facetPartitioning[we].push(r),ke!=we&&s.facetPartitioning[ke].push(r),st==ke||st==we||s.facetPartitioning[st].push(r),Ve==we||Ve==ke||Ve==st||s.facetPartitioning[Ve].push(r)}if(w&&s&&s.facetPositions){const te=s.depthSortedFacets[r];te.ind=r*3,te.sqDistance=P.DistanceSquared(s.facetPositions[r],Y)}i[h]+=p,i[x]+=m,i[A]+=_,i[S]+=p,i[E]+=m,i[b]+=_,i[M]+=p,i[T]+=m,i[O]+=_}for(r=0;r<i.length/3;r++)p=i[r*3],m=i[r*3+1],_=i[r*3+2],d=Math.sqrt(p*p+m*m+_*_),d=d===0?1:d,p/=d,m/=d,_/=d,i[r*3]=p,i[r*3+1]=m,i[r*3+2]=_}static _ComputeSides(e,t,i,s,r,n,o){const l=i.length,c=s.length;let u,f;switch(e=e||wt.DEFAULTSIDE,e){case wt.FRONTSIDE:break;case wt.BACKSIDE:for(u=0;u<l;u+=3){const p=i[u];i[u]=i[u+2],i[u+2]=p}for(f=0;f<c;f++)s[f]=-s[f];break;case wt.DOUBLESIDE:{const p=t.length,m=p/3;for(let h=0;h<p;h++)t[p+h]=t[h];for(u=0;u<l;u+=3)i[u+l]=i[u+2]+m,i[u+1+l]=i[u+1]+m,i[u+2+l]=i[u]+m;for(f=0;f<c;f++)s[c+f]=-s[f];const _=r.length;let d=0;for(d=0;d<_;d++)r[d+_]=r[d];for(n=n||new Yt(0,0,1,1),o=o||new Yt(0,0,1,1),d=0,u=0;u<_/2;u++)r[d]=n.x+(n.z-n.x)*r[d],r[d+1]=n.y+(n.w-n.y)*r[d+1],r[d+_]=o.x+(o.z-o.x)*r[d+_],r[d+_+1]=o.y+(o.w-o.y)*r[d+_+1],d+=2;break}}}static Parse(e){const t=new wt,i=e.positions;i&&t.set(i,q.PositionKind);const s=e.normals;s&&t.set(s,q.NormalKind);const r=e.tangents;r&&t.set(r,q.TangentKind);const n=e.uvs;n&&t.set(n,q.UVKind);const o=e.uvs2;o&&t.set(o,q.UV2Kind);const l=e.uvs3;l&&t.set(l,q.UV3Kind);const c=e.uvs4;c&&t.set(c,q.UV4Kind);const u=e.uvs5;u&&t.set(u,q.UV5Kind);const f=e.uvs6;f&&t.set(f,q.UV6Kind);const p=e.colors;p&&(t.set(St.CheckColors4(p,i.length/3),q.ColorKind),e.hasVertexAlpha!==void 0&&(t.hasVertexAlpha=e.hasVertexAlpha));const m=e.matricesIndices;m&&t.set(m,q.MatricesIndicesKind);const _=e.matricesWeights;_&&t.set(_,q.MatricesWeightsKind);const d=e.indices;d&&(t.indices=d);const h=e.materialInfos;if(h){t.materialInfos=[];for(const x of h){const A=new Sw;A.indexCount=x.indexCount,A.indexStart=x.indexStart,A.verticesCount=x.verticesCount,A.verticesStart=x.verticesStart,A.materialIndex=x.materialIndex,t.materialInfos.push(A)}}return t}static ImportVertexData(e,t){const i=wt.Parse(e);t.setAllVerticesData(i,e.updatable)}}wt.FRONTSIDE=0,wt.BACKSIDE=1,wt.DOUBLESIDE=2,wt.DEFAULTSIDE=0,wt._UniqueIDGenerator=0,F([qx.filter((...[a])=>!Array.isArray(a))],wt,"_TransformVector3Coordinates",null),F([qx.filter((...[a])=>!Array.isArray(a))],wt,"_TransformVector3Normals",null),F([qx.filter((...[a])=>!Array.isArray(a))],wt,"_TransformVector4Normals",null),F([qx.filter((...[a])=>!Array.isArray(a))],wt,"_FlipFaces",null);let _r=!1;function VOe(a){_r=a}const GOe={get UseOpenGLOrientationForUV(){return _r},set UseOpenGLOrientationForUV(a){_r=a}};class Rl{get boundingBias(){return this._boundingBias}set boundingBias(e){this._boundingBias?this._boundingBias.copyFrom(e):this._boundingBias=e.clone(),this._updateBoundingInfo(!0,null)}static CreateGeometryForMesh(e){const t=new Rl(Rl.RandomId(),e.getScene());return t.applyToMesh(e),t}get meshes(){return this._meshes}constructor(e,t,i,s=!1,r=null){this.delayLoadState=0,this._totalVertices=0,this._isDisposed=!1,this._extend={minimum:new P(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),maximum:new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE)},this._indexBufferIsUpdatable=!1,this._positionsCache=[],this._parentContainer=null,this.useBoundingInfoFromGeometry=!1,this._scene=t||ei.LastCreatedScene,this._scene&&(this.id=e,this.uniqueId=this._scene.getUniqueId(),this._engine=this._scene.getEngine(),this._meshes=[],this._vertexBuffers={},this._indices=[],this._updatable=s,i?this.setAllVerticesData(i,s):this._totalVertices=0,this._engine.getCaps().vertexArrayObject&&(this._vertexArrayObjects={}),r&&(this.applyToMesh(r),r.computeWorldMatrix(!0)))}get extend(){return this._extend}getScene(){return this._scene}getEngine(){return this._engine}isReady(){return this.delayLoadState===1||this.delayLoadState===0}get doNotSerialize(){for(let e=0;e<this._meshes.length;e++)if(!this._meshes[e].doNotSerialize)return!1;return!0}_rebuild(){this._vertexArrayObjects&&(this._vertexArrayObjects={}),this._meshes.length!==0&&this._indices&&(this._indexBuffer=this._engine.createIndexBuffer(this._indices,this._updatable,"Geometry_"+this.id+"_IndexBuffer"));const e=new Set;for(const t in this._vertexBuffers)e.add(this._vertexBuffers[t].getWrapperBuffer());e.forEach(t=>{t._rebuild()})}setAllVerticesData(e,t){e.applyToGeometry(this,t),this._notifyUpdate()}setVerticesData(e,t,i=!1,s){i&&Array.isArray(t)&&(t=new Float32Array(t));const r=new q(this._engine,t,e,{updatable:i,postponeInternalCreation:this._meshes.length===0,stride:s,label:"Geometry_"+this.id+"_"+e});this.setVerticesBuffer(r)}removeVerticesData(e){this._vertexBuffers[e]&&(this._vertexBuffers[e].dispose(),delete this._vertexBuffers[e]),this._vertexArrayObjects&&this._disposeVertexArrayObjects()}setVerticesBuffer(e,t=null,i=!0){const s=e.getKind();this._vertexBuffers[s]&&i&&this._vertexBuffers[s].dispose(),e._buffer&&e._buffer._increaseReferences(),this._vertexBuffers[s]=e;const r=this._meshes,n=r.length;if(s===q.PositionKind){this._totalVertices=t??e._maxVerticesCount,this._updateExtend(e.getFloatData(this._totalVertices)),this._resetPointsArrayCache();const o=this._extend&&this._extend.minimum||new P(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),l=this._extend&&this._extend.maximum||new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE);for(let c=0;c<n;c++){const u=r[c];u.buildBoundingInfo(o,l),u._createGlobalSubMesh(u.isUnIndexed),u.computeWorldMatrix(!0),u.synchronizeInstances()}}this._notifyUpdate(s)}updateVerticesDataDirectly(e,t,i,s=!1){const r=this.getVertexBuffer(e);r&&(r.updateDirectly(t,i,s),this._notifyUpdate(e))}updateVerticesData(e,t,i=!1){const s=this.getVertexBuffer(e);s&&(s.update(t),e===q.PositionKind&&this._updateBoundingInfo(i,t),this._notifyUpdate(e))}_updateBoundingInfo(e,t){if(e&&this._updateExtend(t),this._resetPointsArrayCache(),e){const i=this._meshes;for(const s of i){s.hasBoundingInfo?s.getBoundingInfo().reConstruct(this._extend.minimum,this._extend.maximum):s.buildBoundingInfo(this._extend.minimum,this._extend.maximum);const r=s.subMeshes;for(const n of r)n.refreshBoundingInfo()}}}_bind(e,t,i,s){if(!e)return;t===void 0&&(t=this._indexBuffer);const r=this.getVertexBuffers();if(!r)return;if(t!=this._indexBuffer||!this._vertexArrayObjects&&!s){this._engine.bindBuffers(r,t,e,i);return}const n=s||this._vertexArrayObjects,o=this._engine;n[e.key]||(n[e.key]=o.recordVertexArrayObject(r,t,e,i)),o.bindVertexArrayObject(n[e.key],t)}getTotalVertices(){return this.isReady()?this._totalVertices:0}getVerticesData(e,t,i){const s=this.getVertexBuffer(e);return s?s.getFloatData(this._totalVertices,i||t&&this._meshes.length!==1):null}copyVerticesData(e,t){const i=this.getVertexBuffer(e);if(!i)return;t[e]||(t[e]=new Float32Array(this._totalVertices*i.getSize()));const s=i.getData();s&&dhe(s,i.getSize(),i.type,i.byteOffset,i.byteStride,i.normalized,this._totalVertices,t[e])}isVertexBufferUpdatable(e){const t=this._vertexBuffers[e];return t?t.isUpdatable():!1}getVertexBuffer(e){return this.isReady()?this._vertexBuffers[e]:null}getVertexBuffers(){return this.isReady()?this._vertexBuffers:null}isVerticesDataPresent(e){return this._vertexBuffers?this._vertexBuffers[e]!==void 0:this._delayInfo?this._delayInfo.indexOf(e)!==-1:!1}getVerticesDataKinds(){const e=[];let t;if(!this._vertexBuffers&&this._delayInfo)for(t in this._delayInfo)e.push(t);else for(t in this._vertexBuffers)e.push(t);return e}updateIndices(e,t,i=!1){if(this._indexBuffer)if(!this._indexBufferIsUpdatable)this.setIndices(e,null,!0);else{const s=e.length!==this._indices.length;if(i||(this._indices=e.slice()),this._engine.updateDynamicIndexBuffer(this._indexBuffer,e,t),s)for(const r of this._meshes)r._createGlobalSubMesh(!0)}}setIndexBuffer(e,t,i,s=null){this._indices=[],this._indexBufferIsUpdatable=!1,this._indexBuffer=e,this._totalVertices=t,this._totalIndices=i,s===null?e.is32Bits=t>65535:e.is32Bits=s;for(const r of this._meshes)r._createGlobalSubMesh(!0),r.synchronizeInstances();this._notifyUpdate()}setIndices(e,t=null,i=!1,s=!1){this._indexBuffer&&this._engine._releaseBuffer(this._indexBuffer),this._indices=e,this._indexBufferIsUpdatable=i,this._meshes.length!==0&&this._indices&&(this._indexBuffer=this._engine.createIndexBuffer(this._indices,i,"Geometry_"+this.id+"_IndexBuffer")),t!=null&&(this._totalVertices=t);for(const r of this._meshes)r._createGlobalSubMesh(!s),r.synchronizeInstances();this._notifyUpdate()}getTotalIndices(){return this.isReady()?this._totalIndices!==void 0?this._totalIndices:this._indices.length:0}getIndices(e,t){if(!this.isReady())return null;const i=this._indices;return!t&&(!e||this._meshes.length===1)?i:i.slice()}getIndexBuffer(){return this.isReady()?this._indexBuffer:null}_releaseVertexArrayObject(e=null){!e||!this._vertexArrayObjects||this._vertexArrayObjects[e.key]&&(this._engine.releaseVertexArrayObject(this._vertexArrayObjects[e.key]),delete this._vertexArrayObjects[e.key])}releaseForMesh(e,t){const i=this._meshes,s=i.indexOf(e);s!==-1&&(i.splice(s,1),this._vertexArrayObjects&&e._invalidateInstanceVertexArrayObject(),e._geometry=null,i.length===0&&t&&this.dispose())}applyToMesh(e){if(e._geometry===this)return;const t=e._geometry;t&&t.releaseForMesh(e),this._vertexArrayObjects&&e._invalidateInstanceVertexArrayObject();const i=this._meshes;e._geometry=this,e._internalAbstractMeshDataInfo._positions=null,this._scene.pushGeometry(this),i.push(e),this.isReady()?this._applyToMesh(e):this._boundingInfo&&e.setBoundingInfo(this._boundingInfo)}_updateExtend(e=null){if(this.useBoundingInfoFromGeometry&&this._boundingInfo)this._extend={minimum:this._boundingInfo.minimum.clone(),maximum:this._boundingInfo.maximum.clone()};else{if(!e&&(e=this.getVerticesData(q.PositionKind),!e))return;this._extend=vy(e,0,this._totalVertices,this.boundingBias,3)}}_applyToMesh(e){const t=this._meshes.length;for(const i in this._vertexBuffers)t===1&&this._vertexBuffers[i].create(),i===q.PositionKind&&(this._extend||this._updateExtend(),e.buildBoundingInfo(this._extend.minimum,this._extend.maximum),e._createGlobalSubMesh(e.isUnIndexed),e._updateBoundingInfo());t===1&&this._indices&&this._indices.length>0&&(this._indexBuffer=this._engine.createIndexBuffer(this._indices,this._updatable,"Geometry_"+this.id+"_IndexBuffer")),e._syncGeometryWithMorphTargetManager(),e.synchronizeInstances()}_notifyUpdate(e){this.onGeometryUpdated&&this.onGeometryUpdated(this,e),this._vertexArrayObjects&&this._disposeVertexArrayObjects();for(const t of this._meshes)t._markSubMeshesAsAttributesDirty()}load(e,t){if(this.delayLoadState!==2){if(this.isReady()){t&&t();return}this.delayLoadState=2,this._queueLoad(e,t)}}_queueLoad(e,t){this.delayLoadingFile&&(e.addPendingData(this),e._loadFile(this.delayLoadingFile,i=>{if(!this._delayLoadingFunction)return;this._delayLoadingFunction(JSON.parse(i),this),this.delayLoadState=1,this._delayInfo=[],e.removePendingData(this);const s=this._meshes,r=s.length;for(let n=0;n<r;n++)this._applyToMesh(s[n]);t&&t()},void 0,!0))}toLeftHanded(){const e=this.getIndices(!1);if(e!=null&&e.length>0){for(let s=0;s<e.length;s+=3){const r=e[s+0];e[s+0]=e[s+2],e[s+2]=r}this.setIndices(e)}const t=this.getVerticesData(q.PositionKind,!1);if(t!=null&&t.length>0){for(let s=0;s<t.length;s+=3)t[s+2]=-t[s+2];this.setVerticesData(q.PositionKind,t,!1)}const i=this.getVerticesData(q.NormalKind,!1);if(i!=null&&i.length>0){for(let s=0;s<i.length;s+=3)i[s+2]=-i[s+2];this.setVerticesData(q.NormalKind,i,!1)}}_resetPointsArrayCache(){this._positions=null}_generatePointsArray(){if(this._positions)return!0;const e=this.getVerticesData(q.PositionKind);if(!e||e.length===0)return!1;for(let t=this._positionsCache.length*3,i=this._positionsCache.length;t<e.length;t+=3,++i)this._positionsCache[i]=P.FromArray(e,t);for(let t=0,i=0;t<e.length;t+=3,++i)this._positionsCache[i].set(e[0+t],e[1+t],e[2+t]);return this._positionsCache.length=e.length/3,this._positions=this._positionsCache,!0}isDisposed(){return this._isDisposed}_disposeVertexArrayObjects(){if(this._vertexArrayObjects){for(const i in this._vertexArrayObjects)this._engine.releaseVertexArrayObject(this._vertexArrayObjects[i]);this._vertexArrayObjects={};const e=this._meshes,t=e.length;for(let i=0;i<t;i++)e[i]._invalidateInstanceVertexArrayObject()}}dispose(){const e=this._meshes,t=e.length;let i;for(i=0;i<t;i++)this.releaseForMesh(e[i]);this._meshes.length=0,this._disposeVertexArrayObjects();for(const s in this._vertexBuffers)this._vertexBuffers[s].dispose();if(this._vertexBuffers={},this._totalVertices=0,this._indexBuffer&&this._engine._releaseBuffer(this._indexBuffer),this._indexBuffer=null,this._indices=[],this.delayLoadState=0,this.delayLoadingFile=null,this._delayLoadingFunction=null,this._delayInfo=[],this._boundingInfo=null,this._scene.removeGeometry(this),this._parentContainer){const s=this._parentContainer.geometries.indexOf(this);s>-1&&this._parentContainer.geometries.splice(s,1),this._parentContainer=null}this._isDisposed=!0}copy(e){const t=new wt;t.indices=[];const i=this.getIndices();if(i)for(let l=0;l<i.length;l++)t.indices.push(i[l]);let s=!1,r=!1,n;for(n in this._vertexBuffers){const l=this.getVerticesData(n);if(l&&(l instanceof Float32Array?t.set(new Float32Array(l),n):t.set(l.slice(0),n),!r)){const c=this.getVertexBuffer(n);c&&(s=c.isUpdatable(),r=!s)}}const o=new Rl(e,this._scene,t,s);o.delayLoadState=this.delayLoadState,o.delayLoadingFile=this.delayLoadingFile,o._delayLoadingFunction=this._delayLoadingFunction;for(n in this._delayInfo)o._delayInfo=o._delayInfo||[],o._delayInfo.push(n);return o._boundingInfo=new nd(this._extend.minimum,this._extend.maximum),o}serialize(){const e={};return e.id=this.id,e.uniqueId=this.uniqueId,e.updatable=this._updatable,ar&&ar.HasTags(this)&&(e.tags=ar.GetTags(this)),e}_toNumberArray(e){return Array.isArray(e)?e:Array.prototype.slice.call(e)}clearCachedData(){this._indices=[],this._resetPointsArrayCache();for(const e in this._vertexBuffers)Object.prototype.hasOwnProperty.call(this._vertexBuffers,e)&&(this._vertexBuffers[e]._buffer._data=null)}serializeVerticeData(){const e=this.serialize();return this.isVerticesDataPresent(q.PositionKind)&&(e.positions=this._toNumberArray(this.getVerticesData(q.PositionKind)),this.isVertexBufferUpdatable(q.PositionKind)&&(e.positions._updatable=!0)),this.isVerticesDataPresent(q.NormalKind)&&(e.normals=this._toNumberArray(this.getVerticesData(q.NormalKind)),this.isVertexBufferUpdatable(q.NormalKind)&&(e.normals._updatable=!0)),this.isVerticesDataPresent(q.TangentKind)&&(e.tangents=this._toNumberArray(this.getVerticesData(q.TangentKind)),this.isVertexBufferUpdatable(q.TangentKind)&&(e.tangents._updatable=!0)),this.isVerticesDataPresent(q.UVKind)&&(e.uvs=this._toNumberArray(this.getVerticesData(q.UVKind)),this.isVertexBufferUpdatable(q.UVKind)&&(e.uvs._updatable=!0)),this.isVerticesDataPresent(q.UV2Kind)&&(e.uvs2=this._toNumberArray(this.getVerticesData(q.UV2Kind)),this.isVertexBufferUpdatable(q.UV2Kind)&&(e.uvs2._updatable=!0)),this.isVerticesDataPresent(q.UV3Kind)&&(e.uvs3=this._toNumberArray(this.getVerticesData(q.UV3Kind)),this.isVertexBufferUpdatable(q.UV3Kind)&&(e.uvs3._updatable=!0)),this.isVerticesDataPresent(q.UV4Kind)&&(e.uvs4=this._toNumberArray(this.getVerticesData(q.UV4Kind)),this.isVertexBufferUpdatable(q.UV4Kind)&&(e.uvs4._updatable=!0)),this.isVerticesDataPresent(q.UV5Kind)&&(e.uvs5=this._toNumberArray(this.getVerticesData(q.UV5Kind)),this.isVertexBufferUpdatable(q.UV5Kind)&&(e.uvs5._updatable=!0)),this.isVerticesDataPresent(q.UV6Kind)&&(e.uvs6=this._toNumberArray(this.getVerticesData(q.UV6Kind)),this.isVertexBufferUpdatable(q.UV6Kind)&&(e.uvs6._updatable=!0)),this.isVerticesDataPresent(q.ColorKind)&&(e.colors=this._toNumberArray(this.getVerticesData(q.ColorKind)),this.isVertexBufferUpdatable(q.ColorKind)&&(e.colors._updatable=!0)),this.isVerticesDataPresent(q.MatricesIndicesKind)&&(e.matricesIndices=this._toNumberArray(this.getVerticesData(q.MatricesIndicesKind)),e.matricesIndices._isExpanded=!0,this.isVertexBufferUpdatable(q.MatricesIndicesKind)&&(e.matricesIndices._updatable=!0)),this.isVerticesDataPresent(q.MatricesWeightsKind)&&(e.matricesWeights=this._toNumberArray(this.getVerticesData(q.MatricesWeightsKind)),this.isVertexBufferUpdatable(q.MatricesWeightsKind)&&(e.matricesWeights._updatable=!0)),e.indices=this._toNumberArray(this.getIndices()),e}static ExtractFromMesh(e,t){const i=e._geometry;return i?i.copy(t):null}static RandomId(){return Le.RandomId()}static _GetGeometryByLoadedUniqueId(e,t){for(let i=0;i<t.geometries.length;i++)if(t.geometries[i]._loadedUniqueId===e)return t.geometries[i];return null}static _ImportGeometry(e,t){const i=t.getScene(),s=e.geometryUniqueId,r=e.geometryId;if(s||r){const n=s?this._GetGeometryByLoadedUniqueId(s,i):i.getGeometryById(r);n&&n.applyToMesh(t)}else if(e instanceof ArrayBuffer){const n=t._binaryInfo;if(n.positionsAttrDesc&&n.positionsAttrDesc.count>0){const o=new Float32Array(e,n.positionsAttrDesc.offset,n.positionsAttrDesc.count);t.setVerticesData(q.PositionKind,o,!1)}if(n.normalsAttrDesc&&n.normalsAttrDesc.count>0){const o=new Float32Array(e,n.normalsAttrDesc.offset,n.normalsAttrDesc.count);t.setVerticesData(q.NormalKind,o,!1)}if(n.tangetsAttrDesc&&n.tangetsAttrDesc.count>0){const o=new Float32Array(e,n.tangetsAttrDesc.offset,n.tangetsAttrDesc.count);t.setVerticesData(q.TangentKind,o,!1)}if(n.uvsAttrDesc&&n.uvsAttrDesc.count>0){const o=new Float32Array(e,n.uvsAttrDesc.offset,n.uvsAttrDesc.count);if(_r)for(let l=1;l<o.length;l+=2)o[l]=1-o[l];t.setVerticesData(q.UVKind,o,!1)}if(n.uvs2AttrDesc&&n.uvs2AttrDesc.count>0){const o=new Float32Array(e,n.uvs2AttrDesc.offset,n.uvs2AttrDesc.count);if(_r)for(let l=1;l<o.length;l+=2)o[l]=1-o[l];t.setVerticesData(q.UV2Kind,o,!1)}if(n.uvs3AttrDesc&&n.uvs3AttrDesc.count>0){const o=new Float32Array(e,n.uvs3AttrDesc.offset,n.uvs3AttrDesc.count);if(_r)for(let l=1;l<o.length;l+=2)o[l]=1-o[l];t.setVerticesData(q.UV3Kind,o,!1)}if(n.uvs4AttrDesc&&n.uvs4AttrDesc.count>0){const o=new Float32Array(e,n.uvs4AttrDesc.offset,n.uvs4AttrDesc.count);if(_r)for(let l=1;l<o.length;l+=2)o[l]=1-o[l];t.setVerticesData(q.UV4Kind,o,!1)}if(n.uvs5AttrDesc&&n.uvs5AttrDesc.count>0){const o=new Float32Array(e,n.uvs5AttrDesc.offset,n.uvs5AttrDesc.count);if(_r)for(let l=1;l<o.length;l+=2)o[l]=1-o[l];t.setVerticesData(q.UV5Kind,o,!1)}if(n.uvs6AttrDesc&&n.uvs6AttrDesc.count>0){const o=new Float32Array(e,n.uvs6AttrDesc.offset,n.uvs6AttrDesc.count);if(_r)for(let l=1;l<o.length;l+=2)o[l]=1-o[l];t.setVerticesData(q.UV6Kind,o,!1)}if(n.colorsAttrDesc&&n.colorsAttrDesc.count>0){const o=new Float32Array(e,n.colorsAttrDesc.offset,n.colorsAttrDesc.count);t.setVerticesData(q.ColorKind,o,!1,n.colorsAttrDesc.stride)}if(n.matricesIndicesAttrDesc&&n.matricesIndicesAttrDesc.count>0){const o=new Int32Array(e,n.matricesIndicesAttrDesc.offset,n.matricesIndicesAttrDesc.count),l=[];for(let c=0;c<o.length;c++){const u=o[c];l.push(u&255),l.push((u&65280)>>8),l.push((u&16711680)>>16),l.push(u>>24&255)}t.setVerticesData(q.MatricesIndicesKind,l,!1)}if(n.matricesIndicesExtraAttrDesc&&n.matricesIndicesExtraAttrDesc.count>0){const o=new Int32Array(e,n.matricesIndicesExtraAttrDesc.offset,n.matricesIndicesExtraAttrDesc.count),l=[];for(let c=0;c<o.length;c++){const u=o[c];l.push(u&255),l.push((u&65280)>>8),l.push((u&16711680)>>16),l.push(u>>24&255)}t.setVerticesData(q.MatricesIndicesExtraKind,l,!1)}if(n.matricesWeightsAttrDesc&&n.matricesWeightsAttrDesc.count>0){const o=new Float32Array(e,n.matricesWeightsAttrDesc.offset,n.matricesWeightsAttrDesc.count);t.setVerticesData(q.MatricesWeightsKind,o,!1)}if(n.indicesAttrDesc&&n.indicesAttrDesc.count>0){const o=new Int32Array(e,n.indicesAttrDesc.offset,n.indicesAttrDesc.count);t.setIndices(o,null)}if(n.subMeshesAttrDesc&&n.subMeshesAttrDesc.count>0){const o=new Int32Array(e,n.subMeshesAttrDesc.offset,n.subMeshesAttrDesc.count*5);t.subMeshes=[];for(let l=0;l<n.subMeshesAttrDesc.count;l++){const c=o[l*5+0],u=o[l*5+1],f=o[l*5+2],p=o[l*5+3],m=o[l*5+4];Lc.AddToMesh(c,u,f,p,m,t)}}}else if(e.positions&&e.normals&&e.indices){if(t.setVerticesData(q.PositionKind,e.positions,e.positions._updatable),t.setVerticesData(q.NormalKind,e.normals,e.normals._updatable),e.tangents&&t.setVerticesData(q.TangentKind,e.tangents,e.tangents._updatable),e.uvs&&t.setVerticesData(q.UVKind,e.uvs,e.uvs._updatable),e.uvs2&&t.setVerticesData(q.UV2Kind,e.uvs2,e.uvs2._updatable),e.uvs3&&t.setVerticesData(q.UV3Kind,e.uvs3,e.uvs3._updatable),e.uvs4&&t.setVerticesData(q.UV4Kind,e.uvs4,e.uvs4._updatable),e.uvs5&&t.setVerticesData(q.UV5Kind,e.uvs5,e.uvs5._updatable),e.uvs6&&t.setVerticesData(q.UV6Kind,e.uvs6,e.uvs6._updatable),e.colors&&t.setVerticesData(q.ColorKind,St.CheckColors4(e.colors,e.positions.length/3),e.colors._updatable),e.matricesIndices)if(e.matricesIndices._isExpanded)delete e.matricesIndices._isExpanded,t.setVerticesData(q.MatricesIndicesKind,e.matricesIndices,e.matricesIndices._updatable);else{const n=[];for(let o=0;o<e.matricesIndices.length;o++){const l=e.matricesIndices[o];n.push(l&255),n.push((l&65280)>>8),n.push((l&16711680)>>16),n.push(l>>24&255)}t.setVerticesData(q.MatricesIndicesKind,n,e.matricesIndices._updatable)}if(e.matricesIndicesExtra)if(e.matricesIndicesExtra._isExpanded)delete e.matricesIndices._isExpanded,t.setVerticesData(q.MatricesIndicesExtraKind,e.matricesIndicesExtra,e.matricesIndicesExtra._updatable);else{const n=[];for(let o=0;o<e.matricesIndicesExtra.length;o++){const l=e.matricesIndicesExtra[o];n.push(l&255),n.push((l&65280)>>8),n.push((l&16711680)>>16),n.push(l>>24&255)}t.setVerticesData(q.MatricesIndicesExtraKind,n,e.matricesIndicesExtra._updatable)}e.matricesWeights&&(Rl._CleanMatricesWeights(e,t),t.setVerticesData(q.MatricesWeightsKind,e.matricesWeights,e.matricesWeights._updatable)),e.matricesWeightsExtra&&t.setVerticesData(q.MatricesWeightsExtraKind,e.matricesWeightsExtra,e.matricesWeights._updatable),t.setIndices(e.indices,null)}if(e.subMeshes){t.subMeshes=[];for(let n=0;n<e.subMeshes.length;n++){const o=e.subMeshes[n];Lc.AddToMesh(o.materialIndex,o.verticesStart,o.verticesCount,o.indexStart,o.indexCount,t)}}t._shouldGenerateFlatShading&&(t.convertToFlatShadedMesh(),t._shouldGenerateFlatShading=!1),t.computeWorldMatrix(!0),i.onMeshImportedObservable.notifyObservers(t)}static _CleanMatricesWeights(e,t){if(!Ol.CleanBoneMatrixWeights)return;let s=0;if(e.skeletonId>-1){const f=t.getScene().getLastSkeletonById(e.skeletonId);if(!f)return;s=f.bones.length}else return;const r=t.getVerticesData(q.MatricesIndicesKind),n=t.getVerticesData(q.MatricesIndicesExtraKind),o=e.matricesWeights,l=e.matricesWeightsExtra,c=e.numBoneInfluencer,u=o.length;for(let f=0;f<u;f+=4){let p=0,m=-1;for(let _=0;_<4;_++){const d=o[f+_];p+=d,d<.001&&m<0&&(m=_)}if(l)for(let _=0;_<4;_++){const d=l[f+_];p+=d,d<.001&&m<0&&(m=_+4)}if((m<0||m>c-1)&&(m=c-1),p>.001){const _=1/p;for(let d=0;d<4;d++)o[f+d]*=_;if(l)for(let d=0;d<4;d++)l[f+d]*=_}else m>=4?(l[f+m-4]=1-p,n[f+m-4]=s):(o[f+m]=1-p,r[f+m]=s)}t.setVerticesData(q.MatricesIndicesKind,r),e.matricesWeightsExtra&&t.setVerticesData(q.MatricesIndicesExtraKind,n)}static Parse(e,t,i){const s=new Rl(e.id,t,void 0,e.updatable);return s._loadedUniqueId=e.uniqueId,ar&&ar.AddTagsTo(s,e.tags),e.delayLoadingFile?(s.delayLoadState=4,s.delayLoadingFile=i+e.delayLoadingFile,s._boundingInfo=new nd(P.FromArray(e.boundingBoxMinimum),P.FromArray(e.boundingBoxMaximum)),s._delayInfo=[],e.hasUVs&&s._delayInfo.push(q.UVKind),e.hasUVs2&&s._delayInfo.push(q.UV2Kind),e.hasUVs3&&s._delayInfo.push(q.UV3Kind),e.hasUVs4&&s._delayInfo.push(q.UV4Kind),e.hasUVs5&&s._delayInfo.push(q.UV5Kind),e.hasUVs6&&s._delayInfo.push(q.UV6Kind),e.hasColors&&s._delayInfo.push(q.ColorKind),e.hasMatricesIndices&&s._delayInfo.push(q.MatricesIndicesKind),e.hasMatricesWeights&&s._delayInfo.push(q.MatricesWeightsKind),s._delayLoadingFunction=wt.ImportVertexData):wt.ImportVertexData(e,s),t.pushGeometry(s,!0),s}}const WOe=me.Compose(P.One(),Re.FromEulerAngles(0,Math.PI,0),P.Zero());class Si extends Rr{get billboardMode(){return this._billboardMode}set billboardMode(e){this._billboardMode!==e&&(this._billboardMode=e,this._cache.useBillboardPosition=(this._billboardMode&Si.BILLBOARDMODE_USE_POSITION)!==0,this._computeUseBillboardPath())}get preserveParentRotationForBillboard(){return this._preserveParentRotationForBillboard}set preserveParentRotationForBillboard(e){e!==this._preserveParentRotationForBillboard&&(this._preserveParentRotationForBillboard=e,this._computeUseBillboardPath())}_computeUseBillboardPath(){this._cache.useBillboardPath=this._billboardMode!==Si.BILLBOARDMODE_NONE&&!this.preserveParentRotationForBillboard}get infiniteDistance(){return this._infiniteDistance}set infiniteDistance(e){this._infiniteDistance!==e&&(this._infiniteDistance=e)}constructor(e,t=null,i=!0){super(e,t,!1),this._forward=new P(0,0,1),this._up=new P(0,1,0),this._right=new P(1,0,0),this._position=P.Zero(),this._rotation=P.Zero(),this._rotationQuaternion=null,this._scaling=P.One(),this._transformToBoneReferal=null,this._isAbsoluteSynced=!1,this._billboardMode=Si.BILLBOARDMODE_NONE,this._preserveParentRotationForBillboard=!1,this.scalingDeterminant=1,this._infiniteDistance=!1,this.ignoreNonUniformScaling=!1,this.reIntegrateRotationIntoRotationQuaternion=!1,this._poseMatrix=null,this._localMatrix=me.Zero(),this._usePivotMatrix=!1,this._absolutePosition=P.Zero(),this._absoluteScaling=P.Zero(),this._absoluteRotationQuaternion=Re.Identity(),this._pivotMatrix=me.Identity(),this._postMultiplyPivotMatrix=!1,this._isWorldMatrixFrozen=!1,this._indexInSceneTransformNodesArray=-1,this.onAfterWorldMatrixUpdateObservable=new xe,this._nonUniformScaling=!1,i&&this.getScene().addTransformNode(this)}getClassName(){return"TransformNode"}get position(){return this._position}set position(e){this._position=e,this._markAsDirtyInternal()}isUsingPivotMatrix(){return this._usePivotMatrix}isUsingPostMultiplyPivotMatrix(){return this._postMultiplyPivotMatrix}get rotation(){return this._rotation}set rotation(e){this._rotation=e,this._rotationQuaternion=null,this._markAsDirtyInternal()}get scaling(){return this._scaling}set scaling(e){this._scaling=e,this._markAsDirtyInternal()}get rotationQuaternion(){return this._rotationQuaternion}set rotationQuaternion(e){this._rotationQuaternion=e,e&&this._rotation.setAll(0),this._markAsDirtyInternal()}_markAsDirtyInternal(){this._isDirty||(this._isDirty=!0,this.customMarkAsDirty&&this.customMarkAsDirty())}get forward(){return P.TransformNormalFromFloatsToRef(0,0,this.getScene().useRightHandedSystem?-1:1,this.getWorldMatrix(),this._forward),this._forward.normalize()}get up(){return P.TransformNormalFromFloatsToRef(0,1,0,this.getWorldMatrix(),this._up),this._up.normalize()}get right(){return P.TransformNormalFromFloatsToRef(this.getScene().useRightHandedSystem?-1:1,0,0,this.getWorldMatrix(),this._right),this._right.normalize()}updatePoseMatrix(e){return this._poseMatrix?(this._poseMatrix.copyFrom(e),this):(this._poseMatrix=e.clone(),this)}getPoseMatrix(){return this._poseMatrix||(this._poseMatrix=me.Identity()),this._poseMatrix}_isSynchronized(){const e=this._cache;return!(this._billboardMode!==e.billboardMode||this._billboardMode!==Si.BILLBOARDMODE_NONE||e.pivotMatrixUpdated||this._infiniteDistance||this._position._isDirty||this._scaling._isDirty||this._rotationQuaternion&&this._rotationQuaternion._isDirty||this._rotation._isDirty)}_initCache(){super._initCache();const e=this._cache;e.localMatrixUpdated=!1,e.billboardMode=-1,e.infiniteDistance=!1,e.useBillboardPosition=!1,e.useBillboardPath=!1}get absolutePosition(){return this.getAbsolutePosition()}get absoluteScaling(){return this._syncAbsoluteScalingAndRotation(),this._absoluteScaling}get absoluteRotationQuaternion(){return this._syncAbsoluteScalingAndRotation(),this._absoluteRotationQuaternion}setPreTransformMatrix(e){return this.setPivotMatrix(e,!1)}setPivotMatrix(e,t=!0){return this._pivotMatrix.copyFrom(e),this._usePivotMatrix=!this._pivotMatrix.isIdentity(),this._cache.pivotMatrixUpdated=!0,this._postMultiplyPivotMatrix=t,this._postMultiplyPivotMatrix&&(this._pivotMatrixInverse?this._pivotMatrix.invertToRef(this._pivotMatrixInverse):this._pivotMatrixInverse=me.Invert(this._pivotMatrix)),this}getPivotMatrix(){return this._pivotMatrix}instantiateHierarchy(e=null,t,i){const s=this.clone("Clone of "+(this.name||this.id),e||this.parent,!0);s&&i&&i(this,s);for(const r of this.getChildTransformNodes(!0))r.instantiateHierarchy(s,t,i);return s}freezeWorldMatrix(e=null,t=!1){return e?t?(this._rotation.setAll(0),this._rotationQuaternion=this._rotationQuaternion||Re.Identity(),e.decompose(this._scaling,this._rotationQuaternion,this._position),this.computeWorldMatrix(!0)):(this._worldMatrix=e,this._absolutePosition.copyFromFloats(this._worldMatrix.m[12],this._worldMatrix.m[13],this._worldMatrix.m[14]),this._afterComputeWorldMatrix()):(this._isWorldMatrixFrozen=!1,this.computeWorldMatrix(!0)),this._isDirty=!1,this._isWorldMatrixFrozen=!0,this}unfreezeWorldMatrix(){return this._isWorldMatrixFrozen=!1,this.computeWorldMatrix(!0),this}get isWorldMatrixFrozen(){return this._isWorldMatrixFrozen}getAbsolutePosition(){return this.computeWorldMatrix(),this._absolutePosition}setAbsolutePosition(e){if(!e)return this;let t,i,s;if(e.x===void 0){if(arguments.length<3)return this;t=arguments[0],i=arguments[1],s=arguments[2]}else t=e.x,i=e.y,s=e.z;if(this.parent){const r=ae.Matrix[0];this.parent.getWorldMatrix().invertToRef(r),P.TransformCoordinatesFromFloatsToRef(t,i,s,r,this.position)}else this.position.x=t,this.position.y=i,this.position.z=s;return this._absolutePosition.copyFrom(e),this}setPositionWithLocalVector(e){return this.computeWorldMatrix(),this.position=P.TransformNormal(e,this._localMatrix),this}getPositionExpressedInLocalSpace(){this.computeWorldMatrix();const e=ae.Matrix[0];return this._localMatrix.invertToRef(e),P.TransformNormal(this.position,e)}locallyTranslate(e){return this.computeWorldMatrix(!0),this.position=P.TransformCoordinates(e,this._localMatrix),this}lookAt(e,t=0,i=0,s=0,r=0){const n=Si._LookAtVectorCache,o=r===0?this.position:this.getAbsolutePosition();if(e.subtractToRef(o,n),this.setDirection(n,t,i,s),r===1&&this.parent)if(this.rotationQuaternion){const l=ae.Matrix[0];this.rotationQuaternion.toRotationMatrix(l);const c=ae.Matrix[1];this.parent.getWorldMatrix().getRotationMatrixToRef(c),c.invert(),l.multiplyToRef(c,l),this.rotationQuaternion.fromRotationMatrix(l)}else{const l=ae.Quaternion[0];Re.FromEulerVectorToRef(this.rotation,l);const c=ae.Matrix[0];l.toRotationMatrix(c);const u=ae.Matrix[1];this.parent.getWorldMatrix().getRotationMatrixToRef(u),u.invert(),c.multiplyToRef(u,c),l.fromRotationMatrix(c),l.toEulerAnglesToRef(this.rotation)}return this}getDirection(e){const t=P.Zero();return this.getDirectionToRef(e,t),t}getDirectionToRef(e,t){return P.TransformNormalToRef(e,this.getWorldMatrix(),t),this}setDirection(e,t=0,i=0,s=0){const r=-Math.atan2(e.z,e.x)+Math.PI/2,n=Math.sqrt(e.x*e.x+e.z*e.z),o=-Math.atan2(e.y,n);return this.rotationQuaternion?Re.RotationYawPitchRollToRef(r+t,o+i,s,this.rotationQuaternion):(this.rotation.x=o+i,this.rotation.y=r+t,this.rotation.z=s),this}setPivotPoint(e,t=0){this.getScene().getRenderId()==0&&this.computeWorldMatrix(!0);const i=this.getWorldMatrix();if(t==1){const s=ae.Matrix[0];i.invertToRef(s),e=P.TransformCoordinates(e,s)}return this.setPivotMatrix(me.Translation(-e.x,-e.y,-e.z),!0)}getPivotPoint(){const e=P.Zero();return this.getPivotPointToRef(e),e}getPivotPointToRef(e){return e.x=-this._pivotMatrix.m[12],e.y=-this._pivotMatrix.m[13],e.z=-this._pivotMatrix.m[14],this}getAbsolutePivotPoint(){const e=P.Zero();return this.getAbsolutePivotPointToRef(e),e}getAbsolutePivotPointToRef(e){return this.getPivotPointToRef(e),P.TransformCoordinatesToRef(e,this.getWorldMatrix(),e),this}markAsDirty(e){if(this._isDirty)return this;if(this._children)for(const t of this._children)t.markAsDirty(e);return super.markAsDirty(e)}setParent(e,t=!1,i=!1){if(!e&&!this.parent)return this;const s=ae.Quaternion[0],r=ae.Vector3[0],n=ae.Vector3[1],o=ae.Matrix[1];me.IdentityToRef(o);const l=ae.Matrix[0];this.computeWorldMatrix(!0);let c=this.rotationQuaternion;return c||(c=Si._TmpRotation,Re.RotationYawPitchRollToRef(this._rotation.y,this._rotation.x,this._rotation.z,c)),me.ComposeToRef(this.scaling,c,this.position,l),this.parent&&l.multiplyToRef(this.parent.computeWorldMatrix(!0),l),e&&(e.computeWorldMatrix(!0).invertToRef(o),l.multiplyToRef(o,l)),l.decompose(n,s,r,t?this:void 0),this.rotationQuaternion?this.rotationQuaternion.copyFrom(s):s.toEulerAnglesToRef(this.rotation),this.scaling.copyFrom(n),this.position.copyFrom(r),this.parent=e,i&&this.setPivotMatrix(me.Identity()),this}addChild(e,t=!1){return e.setParent(this,t),this}removeChild(e,t=!1){return e.parent!==this?this:(e.setParent(null,t),this)}get nonUniformScaling(){return this._nonUniformScaling}_updateNonUniformScalingState(e){return this._nonUniformScaling===e?!1:(this._nonUniformScaling=e,!0)}attachToBone(e,t){return this._currentParentWhenAttachingToBone=this.parent,this._transformToBoneReferal=t,this.parent=e,e.getSkeleton().prepare(!0),e.getFinalMatrix().determinant()<0&&(this.scalingDeterminant*=-1),this}detachFromBone(e=!1){return this.parent?(this.parent.getWorldMatrix().determinant()<0&&(this.scalingDeterminant*=-1),this._transformToBoneReferal=null,e?this.parent=this._currentParentWhenAttachingToBone:this.parent=null,this):(e&&(this.parent=this._currentParentWhenAttachingToBone),this)}rotate(e,t,i){e.normalize(),this.rotationQuaternion||(this.rotationQuaternion=this.rotation.toQuaternion(),this.rotation.setAll(0));let s;if(!i||i===0)s=Re.RotationAxisToRef(e,t,Si._RotationAxisCache),this.rotationQuaternion.multiplyToRef(s,this.rotationQuaternion);else{if(this.parent){const r=this.parent.getWorldMatrix(),n=ae.Matrix[0];r.invertToRef(n),e=P.TransformNormal(e,n),r.determinant()<0&&(t*=-1)}s=Re.RotationAxisToRef(e,t,Si._RotationAxisCache),s.multiplyToRef(this.rotationQuaternion,this.rotationQuaternion)}return this}rotateAround(e,t,i){t.normalize(),this.rotationQuaternion||(this.rotationQuaternion=Re.RotationYawPitchRoll(this.rotation.y,this.rotation.x,this.rotation.z),this.rotation.setAll(0));const s=ae.Vector3[0],r=ae.Vector3[1],n=ae.Vector3[2],o=ae.Quaternion[0],l=ae.Matrix[0],c=ae.Matrix[1],u=ae.Matrix[2],f=ae.Matrix[3];return e.subtractToRef(this.position,s),me.TranslationToRef(s.x,s.y,s.z,l),me.TranslationToRef(-s.x,-s.y,-s.z,c),me.RotationAxisToRef(t,i,u),c.multiplyToRef(u,f),f.multiplyToRef(l,f),f.decompose(r,o,n),this.position.addInPlace(n),o.multiplyToRef(this.rotationQuaternion,this.rotationQuaternion),this}translate(e,t,i){const s=e.scale(t);if(!i||i===0){const r=this.getPositionExpressedInLocalSpace().add(s);this.setPositionWithLocalVector(r)}else this.setAbsolutePosition(this.getAbsolutePosition().add(s));return this}addRotation(e,t,i){let s;this.rotationQuaternion?s=this.rotationQuaternion:(s=ae.Quaternion[1],Re.RotationYawPitchRollToRef(this.rotation.y,this.rotation.x,this.rotation.z,s));const r=ae.Quaternion[0];return Re.RotationYawPitchRollToRef(t,e,i,r),s.multiplyInPlace(r),this.rotationQuaternion||s.toEulerAnglesToRef(this.rotation),this}_getEffectiveParent(){return this.parent}isWorldMatrixCameraDependent(){return this._infiniteDistance&&!this.parent||this._billboardMode!==Si.BILLBOARDMODE_NONE&&!this.preserveParentRotationForBillboard}computeWorldMatrix(e=!1,t=null){if(this._isWorldMatrixFrozen&&!this._isDirty)return this._worldMatrix;const i=this.getScene().getRenderId();if(!this._isDirty&&!e&&(this._currentRenderId===i||this.isSynchronized()))return this._currentRenderId=i,this._worldMatrix;t=t||this.getScene().activeCamera,this._updateCache();const s=this._cache;s.pivotMatrixUpdated=!1,s.billboardMode=this.billboardMode,s.infiniteDistance=this.infiniteDistance,s.parent=this._parentNode,this._currentRenderId=i,this._childUpdateId+=1,this._isDirty=!1,this._position._isDirty=!1,this._rotation._isDirty=!1,this._scaling._isDirty=!1;const r=this._getEffectiveParent(),n=Si._TmpScaling;let o=this._position;if(this._infiniteDistance&&!this.parent&&t){const c=t.getWorldMatrix(),u=new P(c.m[12],c.m[13],c.m[14]);o=Si._TmpTranslation,o.copyFromFloats(this._position.x+u.x,this._position.y+u.y,this._position.z+u.z)}n.copyFromFloats(this._scaling.x*this.scalingDeterminant,this._scaling.y*this.scalingDeterminant,this._scaling.z*this.scalingDeterminant);let l;if(this._rotationQuaternion?(this._rotationQuaternion._isDirty=!1,l=this._rotationQuaternion,this.reIntegrateRotationIntoRotationQuaternion&&this.rotation.lengthSquared()&&(this._rotationQuaternion.multiplyInPlace(Re.RotationYawPitchRoll(this._rotation.y,this._rotation.x,this._rotation.z)),this._rotation.copyFromFloats(0,0,0))):(l=Si._TmpRotation,Re.RotationYawPitchRollToRef(this._rotation.y,this._rotation.x,this._rotation.z,l)),this._usePivotMatrix){const c=ae.Matrix[1];me.ScalingToRef(n.x,n.y,n.z,c);const u=ae.Matrix[0];l.toRotationMatrix(u),this._pivotMatrix.multiplyToRef(c,ae.Matrix[4]),ae.Matrix[4].multiplyToRef(u,this._localMatrix),this._postMultiplyPivotMatrix&&this._localMatrix.multiplyToRef(this._pivotMatrixInverse,this._localMatrix),this._localMatrix.addTranslationFromFloats(o.x,o.y,o.z)}else me.ComposeToRef(n,l,o,this._localMatrix);if(r&&r.getWorldMatrix){if(e&&r.computeWorldMatrix(e),s.useBillboardPath){if(this._transformToBoneReferal){const p=this.parent;p.getSkeleton().prepare(),p.getFinalMatrix().multiplyToRef(this._transformToBoneReferal.getWorldMatrix(),ae.Matrix[7])}else ae.Matrix[7].copyFrom(r.getWorldMatrix());const c=ae.Vector3[5],u=ae.Vector3[6],f=ae.Quaternion[0];ae.Matrix[7].decompose(u,f,c),me.ScalingToRef(u.x,u.y,u.z,ae.Matrix[7]),ae.Matrix[7].setTranslation(c),Si.BillboardUseParentOrientation&&(this._position.applyRotationQuaternionToRef(f,c),this._localMatrix.setTranslation(c)),this._localMatrix.multiplyToRef(ae.Matrix[7],this._worldMatrix)}else if(this._transformToBoneReferal){const c=this.parent;c.getSkeleton().prepare(),this._localMatrix.multiplyToRef(c.getFinalMatrix(),ae.Matrix[6]),ae.Matrix[6].multiplyToRef(this._transformToBoneReferal.getWorldMatrix(),this._worldMatrix)}else this._localMatrix.multiplyToRef(r.getWorldMatrix(),this._worldMatrix);this._markSyncedWithParent()}else this._worldMatrix.copyFrom(this._localMatrix);if(s.useBillboardPath&&t&&this.billboardMode&&!s.useBillboardPosition){const c=ae.Vector3[0];if(this._worldMatrix.getTranslationToRef(c),ae.Matrix[1].copyFrom(t.getViewMatrix()),this._scene.useRightHandedSystem&&ae.Matrix[1].multiplyToRef(WOe,ae.Matrix[1]),ae.Matrix[1].setTranslationFromFloats(0,0,0),ae.Matrix[1].invertToRef(ae.Matrix[0]),(this.billboardMode&Si.BILLBOARDMODE_ALL)!==Si.BILLBOARDMODE_ALL){ae.Matrix[0].decompose(void 0,ae.Quaternion[0],void 0);const u=ae.Vector3[1];ae.Quaternion[0].toEulerAnglesToRef(u),(this.billboardMode&Si.BILLBOARDMODE_X)!==Si.BILLBOARDMODE_X&&(u.x=0),(this.billboardMode&Si.BILLBOARDMODE_Y)!==Si.BILLBOARDMODE_Y&&(u.y=0),(this.billboardMode&Si.BILLBOARDMODE_Z)!==Si.BILLBOARDMODE_Z&&(u.z=0),me.RotationYawPitchRollToRef(u.y,u.x,u.z,ae.Matrix[0])}this._worldMatrix.setTranslationFromFloats(0,0,0),this._worldMatrix.multiplyToRef(ae.Matrix[0],this._worldMatrix),this._worldMatrix.setTranslation(ae.Vector3[0])}else if(s.useBillboardPath&&t&&s.useBillboardPosition){const c=ae.Vector3[0];this._worldMatrix.getTranslationToRef(c);const u=t.globalPosition;this._worldMatrix.invertToRef(ae.Matrix[1]);const f=ae.Vector3[1];P.TransformCoordinatesToRef(u,ae.Matrix[1],f),f.normalize();const p=-Math.atan2(f.z,f.x)+Math.PI/2,m=Math.sqrt(f.x*f.x+f.z*f.z),_=-Math.atan2(f.y,m);if(Re.RotationYawPitchRollToRef(p,_,0,ae.Quaternion[0]),(this.billboardMode&Si.BILLBOARDMODE_ALL)!==Si.BILLBOARDMODE_ALL){const d=ae.Vector3[1];ae.Quaternion[0].toEulerAnglesToRef(d),(this.billboardMode&Si.BILLBOARDMODE_X)!==Si.BILLBOARDMODE_X&&(d.x=0),(this.billboardMode&Si.BILLBOARDMODE_Y)!==Si.BILLBOARDMODE_Y&&(d.y=0),(this.billboardMode&Si.BILLBOARDMODE_Z)!==Si.BILLBOARDMODE_Z&&(d.z=0),me.RotationYawPitchRollToRef(d.y,d.x,d.z,ae.Matrix[0])}else me.FromQuaternionToRef(ae.Quaternion[0],ae.Matrix[0]);this._worldMatrix.setTranslationFromFloats(0,0,0),this._worldMatrix.multiplyToRef(ae.Matrix[0],this._worldMatrix),this._worldMatrix.setTranslation(ae.Vector3[0])}return this.ignoreNonUniformScaling?this._updateNonUniformScalingState(!1):this._scaling.isNonUniformWithinEpsilon(1e-6)?this._updateNonUniformScalingState(!0):r&&r._nonUniformScaling?this._updateNonUniformScalingState(r._nonUniformScaling):this._updateNonUniformScalingState(!1),this._afterComputeWorldMatrix(),this._absolutePosition.copyFromFloats(this._worldMatrix.m[12],this._worldMatrix.m[13],this._worldMatrix.m[14]),this._isAbsoluteSynced=!1,this.onAfterWorldMatrixUpdateObservable.notifyObservers(this),this._poseMatrix||(this._poseMatrix=me.Invert(this._worldMatrix)),this._worldMatrixDeterminantIsDirty=!0,this._worldMatrix}resetLocalMatrix(e=!0){if(this.computeWorldMatrix(),e){const t=this.getChildren();for(let i=0;i<t.length;++i){const s=t[i];if(s){s.computeWorldMatrix();const r=ae.Matrix[0];s._localMatrix.multiplyToRef(this._localMatrix,r);const n=ae.Quaternion[0];r.decompose(s.scaling,n,s.position),s.rotationQuaternion?s.rotationQuaternion.copyFrom(n):n.toEulerAnglesToRef(s.rotation)}}}this.scaling.copyFromFloats(1,1,1),this.position.copyFromFloats(0,0,0),this.rotation.copyFromFloats(0,0,0),this.rotationQuaternion&&(this.rotationQuaternion=Re.Identity()),this._worldMatrix=me.Identity()}_afterComputeWorldMatrix(){}registerAfterWorldMatrixUpdate(e){return this.onAfterWorldMatrixUpdateObservable.add(e),this}unregisterAfterWorldMatrixUpdate(e){return this.onAfterWorldMatrixUpdateObservable.removeCallback(e),this}getPositionInCameraSpace(e=null){return e||(e=this.getScene().activeCamera),P.TransformCoordinates(this.getAbsolutePosition(),e.getViewMatrix())}getDistanceToCamera(e=null){return e||(e=this.getScene().activeCamera),this.getAbsolutePosition().subtract(e.globalPosition).length()}clone(e,t,i){const s=It.Clone(()=>new Si(e,this.getScene()),this);if(s.name=e,s.id=e,t&&(s.parent=t),!i){const r=this.getDescendants(!0);for(let n=0;n<r.length;n++){const o=r[n];o.clone&&o.clone(e+"."+o.name,s)}}return s}serialize(e){const t=It.Serialize(this,e);return t.type=this.getClassName(),t.uniqueId=this.uniqueId,this.parent&&this.parent._serializeAsParent(t),t.localMatrix=this.getPivotMatrix().asArray(),t.isEnabled=this.isEnabled(),It.AppendSerializedAnimations(this,t),t.ranges=this.serializeAnimationRanges(),t}static Parse(e,t,i){const s=It.Parse(()=>new Si(e.name,t),e,t,i);if(e.localMatrix?s.setPreTransformMatrix(me.FromArray(e.localMatrix)):e.pivotMatrix&&s.setPivotMatrix(me.FromArray(e.pivotMatrix)),s.setEnabled(e.isEnabled),s._waitingParsedUniqueId=e.uniqueId,e.parentId!==void 0&&(s._waitingParentId=e.parentId),e.parentInstanceIndex!==void 0&&(s._waitingParentInstanceIndex=e.parentInstanceIndex),e.animations){for(let r=0;r<e.animations.length;r++){const n=e.animations[r],o=ea("BABYLON.Animation");o&&s.animations.push(o.Parse(n))}Rr.ParseAnimationRanges(s,e,t)}return e.autoAnimate&&t.beginAnimation(s,e.autoAnimateFrom,e.autoAnimateTo,e.autoAnimateLoop,e.autoAnimateSpeed||1),s}getChildTransformNodes(e,t){const i=[];return this._getDescendants(i,e,s=>(!t||t(s))&&s instanceof Si),i}dispose(e,t=!1){if(this.getScene().stopAnimation(this),this.getScene().removeTransformNode(this),this._parentContainer){const i=this._parentContainer.transformNodes.indexOf(this);i>-1&&this._parentContainer.transformNodes.splice(i,1),this._parentContainer=null}if(this.onAfterWorldMatrixUpdateObservable.clear(),e){const i=this.getChildTransformNodes(!0);for(const s of i)s.parent=null,s.computeWorldMatrix(!0)}super.dispose(e,t)}normalizeToUnitCube(e=!0,t=!1,i){let s=null,r=null;t&&(this.rotationQuaternion?(r=this.rotationQuaternion.clone(),this.rotationQuaternion.copyFromFloats(0,0,0,1)):this.rotation&&(s=this.rotation.clone(),this.rotation.copyFromFloats(0,0,0)));const n=this.getHierarchyBoundingVectors(e,i),o=n.max.subtract(n.min),l=Math.max(o.x,o.y,o.z);if(l===0)return this;const c=1/l;return this.scaling.scaleInPlace(c),t&&(this.rotationQuaternion&&r?this.rotationQuaternion.copyFrom(r):this.rotation&&s&&this.rotation.copyFrom(s)),this}_syncAbsoluteScalingAndRotation(){this._isAbsoluteSynced||(this._worldMatrix.decompose(this._absoluteScaling,this._absoluteRotationQuaternion),this._isAbsoluteSynced=!0)}}Si.BILLBOARDMODE_NONE=0,Si.BILLBOARDMODE_X=1,Si.BILLBOARDMODE_Y=2,Si.BILLBOARDMODE_Z=4,Si.BILLBOARDMODE_ALL=7,Si.BILLBOARDMODE_USE_POSITION=128,Si.BillboardUseParentOrientation=!1,Si._TmpRotation=Re.Zero(),Si._TmpScaling=P.Zero(),Si._TmpTranslation=P.Zero(),Si._LookAtVectorCache=new P(0,0,0),Si._RotationAxisCache=new Re,F([Ma("position")],Si.prototype,"_position",void 0),F([Ma("rotation")],Si.prototype,"_rotation",void 0),F([ahe("rotationQuaternion")],Si.prototype,"_rotationQuaternion",void 0),F([Ma("scaling")],Si.prototype,"_scaling",void 0),F([G("billboardMode")],Si.prototype,"_billboardMode",void 0),F([G()],Si.prototype,"scalingDeterminant",void 0),F([G("infiniteDistance")],Si.prototype,"_infiniteDistance",void 0),F([G()],Si.prototype,"ignoreNonUniformScaling",void 0),F([G()],Si.prototype,"reIntegrateRotationIntoRotationQuaternion",void 0);class Bhe{constructor(){this._checkCollisions=!1,this._collisionMask=-1,this._collisionGroup=-1,this._surroundingMeshes=null,this._collider=null,this._oldPositionForCollisions=new P(0,0,0),this._diffPositionForCollisions=new P(0,0,0),this._collisionResponse=!0}}var tZ;(function(a){a[a.LOCAL=0]="LOCAL",a[a.WORLD=1]="WORLD",a[a.BONE=2]="BONE"})(tZ||(tZ={}));class fo{}fo.X=new P(1,0,0),fo.Y=new P(0,1,0),fo.Z=new P(0,0,1);var iZ;(function(a){a[a.X=0]="X",a[a.Y=1]="Y",a[a.Z=2]="Z"})(iZ||(iZ={}));function HOe(a,e,t){let i=null;switch(e){case q.PositionKind:i=s=>s.getPositions();break;case q.NormalKind:i=s=>s.getNormals();break;case q.TangentKind:i=s=>s.getTangents();break;case q.UVKind:i=s=>s.getUVs();break;case q.UV2Kind:i=s=>s.getUV2s();break;case q.ColorKind:i=s=>s.getColors();break;default:return}for(let s=0;s<a.length;s++){let r=a[s];for(let n=0;n<t.numTargets;n++){const o=t.getTarget(n),l=o.influence;if(l!==0){const c=i(o);c&&(r+=(c[s]-a[s])*l)}}a[s]=r}}function YOe(a,e,t,i,s,r,n){const o=ae.Vector3[0],l=ae.Matrix[0],c=ae.Matrix[1],u=e===q.NormalKind?P.TransformNormalFromFloatsToRef:P.TransformCoordinatesFromFloatsToRef;for(let f=0,p=0;f<a.length;f+=3,p+=4){l.reset();let m,_;for(m=0;m<4;m++)_=s[p+m],_>0&&(me.FromFloat32ArrayToRefScaled(t,Math.floor(i[p+m]*16),_,c),l.addToSelf(c));if(r&&n)for(m=0;m<4;m++)_=n[p+m],_>0&&(me.FromFloat32ArrayToRefScaled(t,Math.floor(r[p+m]*16),_,c),l.addToSelf(c));u(a[f],a[f+1],a[f+2],l,o),o.toArray(a,f)}}class XOe{constructor(){this.facetNb=0,this.partitioningSubdivisions=10,this.partitioningBBoxRatio=1.01,this.facetDataEnabled=!1,this.facetParameters={},this.bbSize=P.Zero(),this.subDiv={max:1,X:1,Y:1,Z:1},this.facetDepthSort=!1,this.facetDepthSortEnabled=!1}}class ZOe{constructor(){this._hasVertexAlpha=!1,this._useVertexColors=!0,this._numBoneInfluencers=4,this._applyFog=!0,this._receiveShadows=!1,this._facetData=new XOe,this._visibility=1,this._skeleton=null,this._layerMask=268435455,this._computeBonesUsingShaders=!0,this._isActive=!1,this._onlyForInstances=!1,this._isActiveIntermediate=!1,this._onlyForInstancesIntermediate=!1,this._actAsRegularMesh=!1,this._currentLOD=new Map,this._collisionRetryCount=3,this._morphTargetManager=null,this._renderingGroupId=0,this._bakedVertexAnimationManager=null,this._material=null,this._positions=null,this._pointerOverDisableMeshTesting=!1,this._meshCollisionData=new Bhe,this._enableDistantPicking=!1,this._rawBoundingInfo=null,this._sideOrientationHint=!1,this._inheritVisibility=!1}}class cr extends Si{static get BILLBOARDMODE_NONE(){return Si.BILLBOARDMODE_NONE}static get BILLBOARDMODE_X(){return Si.BILLBOARDMODE_X}static get BILLBOARDMODE_Y(){return Si.BILLBOARDMODE_Y}static get BILLBOARDMODE_Z(){return Si.BILLBOARDMODE_Z}static get BILLBOARDMODE_ALL(){return Si.BILLBOARDMODE_ALL}static get BILLBOARDMODE_USE_POSITION(){return Si.BILLBOARDMODE_USE_POSITION}get facetNb(){return this._internalAbstractMeshDataInfo._facetData.facetNb}get partitioningSubdivisions(){return this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions}set partitioningSubdivisions(e){this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions=e}get partitioningBBoxRatio(){return this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio}set partitioningBBoxRatio(e){this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio=e}get mustDepthSortFacets(){return this._internalAbstractMeshDataInfo._facetData.facetDepthSort}set mustDepthSortFacets(e){this._internalAbstractMeshDataInfo._facetData.facetDepthSort=e}get facetDepthSortFrom(){return this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom}set facetDepthSortFrom(e){this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom=e}get collisionRetryCount(){return this._internalAbstractMeshDataInfo._collisionRetryCount}set collisionRetryCount(e){this._internalAbstractMeshDataInfo._collisionRetryCount=e}get isFacetDataEnabled(){return this._internalAbstractMeshDataInfo._facetData.facetDataEnabled}get morphTargetManager(){return this._internalAbstractMeshDataInfo._morphTargetManager}set morphTargetManager(e){this._internalAbstractMeshDataInfo._morphTargetManager!==e&&(this._internalAbstractMeshDataInfo._morphTargetManager=e,this._syncGeometryWithMorphTargetManager())}get bakedVertexAnimationManager(){return this._internalAbstractMeshDataInfo._bakedVertexAnimationManager}set bakedVertexAnimationManager(e){this._internalAbstractMeshDataInfo._bakedVertexAnimationManager!==e&&(this._internalAbstractMeshDataInfo._bakedVertexAnimationManager=e,this._markSubMeshesAsAttributesDirty())}_syncGeometryWithMorphTargetManager(){}_updateNonUniformScalingState(e){return super._updateNonUniformScalingState(e)?(this._markSubMeshesAsMiscDirty(),!0):!1}get rawBoundingInfo(){return this._internalAbstractMeshDataInfo._rawBoundingInfo}set rawBoundingInfo(e){this._internalAbstractMeshDataInfo._rawBoundingInfo=e}set onCollide(e){this._internalAbstractMeshDataInfo._meshCollisionData._onCollideObserver&&this.onCollideObservable.remove(this._internalAbstractMeshDataInfo._meshCollisionData._onCollideObserver),this._internalAbstractMeshDataInfo._meshCollisionData._onCollideObserver=this.onCollideObservable.add(e)}set onCollisionPositionChange(e){this._internalAbstractMeshDataInfo._meshCollisionData._onCollisionPositionChangeObserver&&this.onCollisionPositionChangeObservable.remove(this._internalAbstractMeshDataInfo._meshCollisionData._onCollisionPositionChangeObserver),this._internalAbstractMeshDataInfo._meshCollisionData._onCollisionPositionChangeObserver=this.onCollisionPositionChangeObservable.add(e)}get visibility(){return this._internalAbstractMeshDataInfo._visibility}set visibility(e){if(this._internalAbstractMeshDataInfo._visibility===e)return;const t=this._internalAbstractMeshDataInfo._visibility;this._internalAbstractMeshDataInfo._visibility=e,(t===1&&e!==1||t!==1&&e===1)&&this._markSubMeshesAsDirty(i=>{i.markAsMiscDirty(),i.markAsPrePassDirty()})}get inheritVisibility(){return this._internalAbstractMeshDataInfo._inheritVisibility}set inheritVisibility(e){this._internalAbstractMeshDataInfo._inheritVisibility=e}get isVisible(){if(!this._isVisible||!this.inheritVisibility||!this._parentNode)return this._isVisible;if(this._isVisible){let e=this._parentNode;for(;e;){const t=e.isVisible;if(typeof t<"u")return t;e=e.parent}}return this._isVisible}set isVisible(e){this._isVisible=e}get pointerOverDisableMeshTesting(){return this._internalAbstractMeshDataInfo._pointerOverDisableMeshTesting}set pointerOverDisableMeshTesting(e){this._internalAbstractMeshDataInfo._pointerOverDisableMeshTesting=e}get renderingGroupId(){return this._internalAbstractMeshDataInfo._renderingGroupId}set renderingGroupId(e){this._internalAbstractMeshDataInfo._renderingGroupId=e}get material(){return this._internalAbstractMeshDataInfo._material}set material(e){this._setMaterial(e)}_setMaterial(e){this._internalAbstractMeshDataInfo._material!==e&&(this._internalAbstractMeshDataInfo._material&&this._internalAbstractMeshDataInfo._material.meshMap&&(this._internalAbstractMeshDataInfo._material.meshMap[this.uniqueId]=void 0),this._internalAbstractMeshDataInfo._material=e,e&&e.meshMap&&(e.meshMap[this.uniqueId]=this),this.onMaterialChangedObservable.hasObservers()&&this.onMaterialChangedObservable.notifyObservers(this),this.subMeshes&&(this.resetDrawCache(void 0,e==null),this._unBindEffect()))}getMaterialForRenderPass(e){var t;return(t=this._internalAbstractMeshDataInfo._materialForRenderPass)==null?void 0:t[e]}setMaterialForRenderPass(e,t){var s;this.resetDrawCache(e),this._internalAbstractMeshDataInfo._materialForRenderPass||(this._internalAbstractMeshDataInfo._materialForRenderPass=[]);const i=this._internalAbstractMeshDataInfo._materialForRenderPass[e];(s=i==null?void 0:i.meshMap)!=null&&s[this.uniqueId]&&(i.meshMap[this.uniqueId]=void 0),this._internalAbstractMeshDataInfo._materialForRenderPass[e]=t,t&&t.meshMap&&(t.meshMap[this.uniqueId]=this)}get receiveShadows(){return this._internalAbstractMeshDataInfo._receiveShadows}set receiveShadows(e){this._internalAbstractMeshDataInfo._receiveShadows!==e&&(this._internalAbstractMeshDataInfo._receiveShadows=e,this._markSubMeshesAsLightDirty())}get hasVertexAlpha(){return this._internalAbstractMeshDataInfo._hasVertexAlpha}set hasVertexAlpha(e){this._internalAbstractMeshDataInfo._hasVertexAlpha!==e&&(this._internalAbstractMeshDataInfo._hasVertexAlpha=e,this._markSubMeshesAsAttributesDirty(),this._markSubMeshesAsMiscDirty())}get useVertexColors(){return this._internalAbstractMeshDataInfo._useVertexColors}set useVertexColors(e){this._internalAbstractMeshDataInfo._useVertexColors!==e&&(this._internalAbstractMeshDataInfo._useVertexColors=e,this._markSubMeshesAsAttributesDirty())}get computeBonesUsingShaders(){return this._internalAbstractMeshDataInfo._computeBonesUsingShaders}set computeBonesUsingShaders(e){this._internalAbstractMeshDataInfo._computeBonesUsingShaders!==e&&(this._internalAbstractMeshDataInfo._computeBonesUsingShaders=e,this._markSubMeshesAsAttributesDirty())}get numBoneInfluencers(){return this._internalAbstractMeshDataInfo._numBoneInfluencers}set numBoneInfluencers(e){this._internalAbstractMeshDataInfo._numBoneInfluencers!==e&&(this._internalAbstractMeshDataInfo._numBoneInfluencers=e,this._markSubMeshesAsAttributesDirty())}get applyFog(){return this._internalAbstractMeshDataInfo._applyFog}set applyFog(e){this._internalAbstractMeshDataInfo._applyFog!==e&&(this._internalAbstractMeshDataInfo._applyFog=e,this._markSubMeshesAsMiscDirty())}get enableDistantPicking(){return this._internalAbstractMeshDataInfo._enableDistantPicking}set enableDistantPicking(e){this._internalAbstractMeshDataInfo._enableDistantPicking=e}get layerMask(){return this._internalAbstractMeshDataInfo._layerMask}set layerMask(e){e!==this._internalAbstractMeshDataInfo._layerMask&&(this._internalAbstractMeshDataInfo._layerMask=e,this._resyncLightSources())}get collisionMask(){return this._internalAbstractMeshDataInfo._meshCollisionData._collisionMask}set collisionMask(e){this._internalAbstractMeshDataInfo._meshCollisionData._collisionMask=isNaN(e)?-1:e}get collisionResponse(){return this._internalAbstractMeshDataInfo._meshCollisionData._collisionResponse}set collisionResponse(e){this._internalAbstractMeshDataInfo._meshCollisionData._collisionResponse=e}get collisionGroup(){return this._internalAbstractMeshDataInfo._meshCollisionData._collisionGroup}set collisionGroup(e){this._internalAbstractMeshDataInfo._meshCollisionData._collisionGroup=isNaN(e)?-1:e}get surroundingMeshes(){return this._internalAbstractMeshDataInfo._meshCollisionData._surroundingMeshes}set surroundingMeshes(e){this._internalAbstractMeshDataInfo._meshCollisionData._surroundingMeshes=e}get lightSources(){return this._lightSources}set skeleton(e){const t=this._internalAbstractMeshDataInfo._skeleton;t&&t.needInitialSkinMatrix&&t._unregisterMeshWithPoseMatrix(this),e&&e.needInitialSkinMatrix&&e._registerMeshWithPoseMatrix(this),this._internalAbstractMeshDataInfo._skeleton=e,this._internalAbstractMeshDataInfo._skeleton||(this._bonesTransformMatrices=null),this._markSubMeshesAsAttributesDirty()}get skeleton(){return this._internalAbstractMeshDataInfo._skeleton}constructor(e,t=null){switch(super(e,t,!1),this._internalAbstractMeshDataInfo=new ZOe,this._waitingMaterialId=null,this._waitingMorphTargetManagerId=null,this.cullingStrategy=cr.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY,this.onCollideObservable=new xe,this.onCollisionPositionChangeObservable=new xe,this.onMaterialChangedObservable=new xe,this.definedFacingForward=!0,this._occlusionQuery=null,this._renderingGroup=null,this.alphaIndex=Number.MAX_VALUE,this._isVisible=!0,this.isPickable=!0,this.isNearPickable=!1,this.isNearGrabbable=!1,this.showSubMeshesBoundingBox=!1,this.isBlocker=!1,this.enablePointerMoveEvents=!1,this.outlineColor=Pe.Red(),this.outlineWidth=.02,this.overlayColor=Pe.Red(),this.overlayAlpha=.5,this.useOctreeForRenderingSelection=!0,this.useOctreeForPicking=!0,this.useOctreeForCollisions=!0,this.alwaysSelectAsActiveMesh=!1,this.doNotSyncBoundingInfo=!1,this.actionManager=null,this.ellipsoid=new P(.5,1,.5),this.ellipsoidOffset=new P(0,0,0),this.edgesWidth=1,this.edgesColor=new St(1,0,0,1),this._edgesRenderer=null,this._masterMesh=null,this._boundingInfo=null,this._boundingInfoIsDirty=!0,this._renderId=0,this._intersectionsInProgress=new Array,this._unIndexed=!1,this._lightSources=new Array,this._waitingData={lods:null,actions:null,freezeWorldMatrix:null},this._bonesTransformMatrices=null,this._transformMatrixTexture=null,this.onRebuildObservable=new xe,this._onCollisionPositionChange=(i,s,r=null)=>{s.subtractToRef(this._internalAbstractMeshDataInfo._meshCollisionData._oldPositionForCollisions,this._internalAbstractMeshDataInfo._meshCollisionData._diffPositionForCollisions),this._internalAbstractMeshDataInfo._meshCollisionData._diffPositionForCollisions.length()>dt.CollisionsEpsilon&&this.position.addInPlace(this._internalAbstractMeshDataInfo._meshCollisionData._diffPositionForCollisions),r&&this.onCollideObservable.notifyObservers(r),this.onCollisionPositionChangeObservable.notifyObservers(this.position)},t=this.getScene(),t.addMesh(this),this._resyncLightSources(),this._uniformBuffer=new Ti(this.getScene().getEngine(),void 0,void 0,e,!this.getScene().getEngine().isWebGPU),this._buildUniformLayout(),t.performancePriority){case 2:this.doNotSyncBoundingInfo=!0;case 1:this.alwaysSelectAsActiveMesh=!0,this.isPickable=!1;break}}_buildUniformLayout(){this._uniformBuffer.addUniform("world",16),this._uniformBuffer.addUniform("visibility",1),this._uniformBuffer.create()}transferToEffect(e){const t=this._uniformBuffer;t.updateMatrix("world",e),t.updateFloat("visibility",this._internalAbstractMeshDataInfo._visibility),t.update()}getMeshUniformBuffer(){return this._uniformBuffer}getClassName(){return"AbstractMesh"}toString(e){let t="Name: "+this.name+", isInstance: "+(this.getClassName()!=="InstancedMesh"?"YES":"NO");t+=", # of submeshes: "+(this.subMeshes?this.subMeshes.length:0);const i=this._internalAbstractMeshDataInfo._skeleton;return i&&(t+=", skeleton: "+i.name),e&&(t+=", billboard mode: "+["NONE","X","Y",null,"Z",null,null,"ALL"][this.billboardMode],t+=", freeze wrld mat: "+(this._isWorldMatrixFrozen||this._waitingData.freezeWorldMatrix?"YES":"NO")),t}_getEffectiveParent(){return this._masterMesh&&this.billboardMode!==Si.BILLBOARDMODE_NONE?this._masterMesh:super._getEffectiveParent()}_getActionManagerForTrigger(e,t=!0){if(this.actionManager&&(t||this.actionManager.isRecursive))if(e){if(this.actionManager.hasSpecificTrigger(e))return this.actionManager}else return this.actionManager;return this.parent?this.parent._getActionManagerForTrigger(e,!1):null}_rebuild(e=!1){if(this.onRebuildObservable.notifyObservers(this),this._occlusionQuery!==null&&(this._occlusionQuery=null),!!this.subMeshes){for(const t of this.subMeshes)t._rebuild();this.resetDrawCache()}}_resyncLightSources(){this._lightSources.length=0;for(const e of this.getScene().lights)e.isEnabled()&&e.canAffectMesh(this)&&this._lightSources.push(e);this._markSubMeshesAsLightDirty()}_resyncLightSource(e){const t=e.isEnabled()&&e.canAffectMesh(this),i=this._lightSources.indexOf(e);let s=!1;if(i===-1){if(!t)return;this._lightSources.push(e)}else{if(t)return;s=!0,this._lightSources.splice(i,1)}this._markSubMeshesAsLightDirty(s)}_unBindEffect(){for(const e of this.subMeshes)e.setEffect(null)}_removeLightSource(e,t){const i=this._lightSources.indexOf(e);i!==-1&&(this._lightSources.splice(i,1),this._markSubMeshesAsLightDirty(t))}_markSubMeshesAsDirty(e){if(this.subMeshes)for(const t of this.subMeshes)for(let i=0;i<t._drawWrappers.length;++i){const s=t._drawWrappers[i];!s||!s.defines||!s.defines.markAllAsDirty||e(s.defines)}}_markSubMeshesAsLightDirty(e=!1){this._markSubMeshesAsDirty(t=>t.markAsLightDirty(e))}_markSubMeshesAsAttributesDirty(){this._markSubMeshesAsDirty(e=>e.markAsAttributesDirty())}_markSubMeshesAsMiscDirty(){this._markSubMeshesAsDirty(e=>e.markAsMiscDirty())}markAsDirty(e){return this._currentRenderId=Number.MAX_VALUE,super.markAsDirty(e),this._isDirty=!0,this}resetDrawCache(e,t=!1){if(this.subMeshes)for(const i of this.subMeshes)i.resetDrawCache(e,t)}get isBlocked(){return!1}getLOD(e){return this}getTotalVertices(){return 0}getTotalIndices(){return 0}getIndices(){return null}getVerticesData(e){return null}setVerticesData(e,t,i,s){return this}updateVerticesData(e,t,i,s){return this}setIndices(e,t){return this}isVerticesDataPresent(e){return!1}getBoundingInfo(){return this._masterMesh?this._masterMesh.getBoundingInfo():(this._boundingInfoIsDirty&&(this._boundingInfoIsDirty=!1,this._updateBoundingInfo()),this._boundingInfo)}getRawBoundingInfo(){return this.rawBoundingInfo??this.getBoundingInfo()}setBoundingInfo(e){return this._boundingInfo=e,this}get hasBoundingInfo(){return this._boundingInfo!==null}buildBoundingInfo(e,t,i){return this._boundingInfo=new nd(e,t,i),this._boundingInfo}normalizeToUnitCube(e=!0,t=!1,i){return super.normalizeToUnitCube(e,t,i)}get useBones(){return this.skeleton&&this.getScene().skeletonsEnabled&&this.isVerticesDataPresent(q.MatricesIndicesKind)&&this.isVerticesDataPresent(q.MatricesWeightsKind)}_preActivate(){}_preActivateForIntermediateRendering(e){}_activate(e,t){return this._renderId=e,!0}_postActivate(){}_freeze(){}_unFreeze(){}getWorldMatrix(){return this._masterMesh&&this.billboardMode===Si.BILLBOARDMODE_NONE?this._masterMesh.getWorldMatrix():super.getWorldMatrix()}_getWorldMatrixDeterminant(){return this._masterMesh?this._masterMesh._getWorldMatrixDeterminant():super._getWorldMatrixDeterminant()}get isAnInstance(){return!1}get hasInstances(){return!1}get hasThinInstances(){return!1}movePOV(e,t,i){return this.position.addInPlace(this.calcMovePOV(e,t,i)),this}calcMovePOV(e,t,i){const s=new me;(this.rotationQuaternion?this.rotationQuaternion:Re.RotationYawPitchRoll(this.rotation.y,this.rotation.x,this.rotation.z)).toRotationMatrix(s);const n=P.Zero(),o=this.definedFacingForward?-1:1;return P.TransformCoordinatesFromFloatsToRef(e*o,t,i*o,s,n),n}rotatePOV(e,t,i){return this.rotation.addInPlace(this.calcRotatePOV(e,t,i)),this}calcRotatePOV(e,t,i){const s=this.definedFacingForward?1:-1;return new P(e*s,t,i*s)}_refreshBoundingInfo(e,t){if(e){const i=vy(e,0,this.getTotalVertices(),t);this._boundingInfo?this._boundingInfo.reConstruct(i.minimum,i.maximum):this._boundingInfo=new nd(i.minimum,i.maximum)}if(this.subMeshes)for(let i=0;i<this.subMeshes.length;i++)this.subMeshes[i].refreshBoundingInfo(e);this._updateBoundingInfo()}_refreshBoundingInfoDirect(e){if(this._boundingInfo?this._boundingInfo.reConstruct(e.minimum,e.maximum):this._boundingInfo=new nd(e.minimum,e.maximum),this.subMeshes)for(let t=0;t<this.subMeshes.length;t++)this.subMeshes[t].refreshBoundingInfo(null);this._updateBoundingInfo()}static _ApplySkeleton(e,t,i,s,r,n,o){YOe(e,t,i,s,r,n,o)}_getData(e,t,i=q.PositionKind){const s=e.cache,r=n=>{if(s){const o=s._vertexData||(s._vertexData={});return o[n]||this.copyVerticesData(n,o),o[n]}return this.getVerticesData(n)};if(t||(t=r(i)),!t)return null;if(s?(s._outputData?s._outputData.set(t):s._outputData=new Float32Array(t),t=s._outputData):(e.applyMorph&&this.morphTargetManager||e.applySkeleton&&this.skeleton)&&(t=t.slice()),e.applyMorph&&this.morphTargetManager&&HOe(t,i,this.morphTargetManager),e.applySkeleton&&this.skeleton){const n=r(q.MatricesIndicesKind),o=r(q.MatricesWeightsKind);if(o&&n){const l=this.numBoneInfluencers>4,c=l?r(q.MatricesIndicesExtraKind):null,u=l?r(q.MatricesWeightsExtraKind):null,f=this.skeleton.getTransformMatrices(this);cr._ApplySkeleton(t,i,f,n,o,c,u)}}if(e.updatePositionsArray!==!1&&i===q.PositionKind){const n=this._internalAbstractMeshDataInfo._positions||[],o=n.length;if(n.length=t.length/3,o<n.length)for(let l=o;l<n.length;l++)n[l]=new P;for(let l=0,c=0;l<n.length;l++,c+=3)n[l].copyFromFloats(t[c],t[c+1],t[c+2]);this._internalAbstractMeshDataInfo._positions=n}return t}getNormalsData(e=!1,t=!1){return this._getData({applySkeleton:e,applyMorph:t,updatePositionsArray:!1},null,q.NormalKind)}getPositionData(e=!1,t=!1,i=null){return this._getData({applySkeleton:e,applyMorph:t,updatePositionsArray:!1},i,q.PositionKind)}_updateBoundingInfo(){return this._boundingInfo?this._boundingInfo.update(this.worldMatrixFromCache):this._boundingInfo=new nd(P.Zero(),P.Zero(),this.worldMatrixFromCache),this._updateSubMeshesBoundingInfo(this.worldMatrixFromCache),this}_updateSubMeshesBoundingInfo(e){if(!this.subMeshes)return this;const t=this.subMeshes.length;for(let i=0;i<t;i++){const s=this.subMeshes[i];(t>1||!s.IsGlobal)&&s.updateBoundingInfo(e)}return this}_afterComputeWorldMatrix(){this.doNotSyncBoundingInfo||(this._boundingInfoIsDirty=!0)}isInFrustum(e){return this.getBoundingInfo().isInFrustum(e,this.cullingStrategy)}isCompletelyInFrustum(e){return this.getBoundingInfo().isCompletelyInFrustum(e)}intersectsMesh(e,t=!1,i){const s=this.getBoundingInfo(),r=e.getBoundingInfo();if(s.intersects(r,t))return!0;if(i){for(const n of this.getChildMeshes())if(n.intersectsMesh(e,t,!0))return!0}return!1}intersectsPoint(e){return this.getBoundingInfo().intersectsPoint(e)}get checkCollisions(){return this._internalAbstractMeshDataInfo._meshCollisionData._checkCollisions}set checkCollisions(e){this._internalAbstractMeshDataInfo._meshCollisionData._checkCollisions=e}get collider(){return this._internalAbstractMeshDataInfo._meshCollisionData._collider}moveWithCollisions(e){this.getAbsolutePosition().addToRef(this.ellipsoidOffset,this._internalAbstractMeshDataInfo._meshCollisionData._oldPositionForCollisions);const i=this.getScene().collisionCoordinator;return this._internalAbstractMeshDataInfo._meshCollisionData._collider||(this._internalAbstractMeshDataInfo._meshCollisionData._collider=i.createCollider()),this._internalAbstractMeshDataInfo._meshCollisionData._collider._radius=this.ellipsoid,i.getNewPosition(this._internalAbstractMeshDataInfo._meshCollisionData._oldPositionForCollisions,e,this._internalAbstractMeshDataInfo._meshCollisionData._collider,this.collisionRetryCount,this,this._onCollisionPositionChange,this.uniqueId),this}_collideForSubMesh(e,t,i){var s;if(this._generatePointsArray(),!this._positions)return this;if(!e._lastColliderWorldVertices||!e._lastColliderTransformMatrix.equals(t)){e._lastColliderTransformMatrix=t.clone(),e._lastColliderWorldVertices=[],e._trianglePlanes=[];const r=e.verticesStart,n=e.verticesStart+e.verticesCount;for(let o=r;o<n;o++)e._lastColliderWorldVertices.push(P.TransformCoordinates(this._positions[o],t))}return i._collide(e._trianglePlanes,e._lastColliderWorldVertices,this.getIndices(),e.indexStart,e.indexStart+e.indexCount,e.verticesStart,!!e.getMaterial(),this,this._shouldConvertRHS(),((s=e.getMaterial())==null?void 0:s.fillMode)===7),this}_processCollisionsForSubMeshes(e,t){const i=this._scene.getCollidingSubMeshCandidates(this,e),s=i.length;for(let r=0;r<s;r++){const n=i.data[r];s>1&&!n._checkCollision(e)||this._collideForSubMesh(n,t,e)}return this}_shouldConvertRHS(){return!1}_checkCollision(e){if(!this.getBoundingInfo()._checkCollision(e))return this;const t=ae.Matrix[0],i=ae.Matrix[1];return me.ScalingToRef(1/e._radius.x,1/e._radius.y,1/e._radius.z,t),this.worldMatrixFromCache.multiplyToRef(t,i),this._processCollisionsForSubMeshes(e,i),this}_generatePointsArray(){return!1}intersects(e,t,i,s=!1,r,n=!1){const o=new Kl,l=this.getClassName(),c=l==="InstancedLinesMesh"||l==="LinesMesh"||l==="GreasedLineMesh"?this.intersectionThreshold:0,u=this.getBoundingInfo();if(!this.subMeshes||!n&&(!e.intersectsSphere(u.boundingSphere,c)||!e.intersectsBox(u.boundingBox,c)))return o;if(s)return o.hit=!n,o.pickedMesh=n?null:this,o.distance=n?0:P.Distance(e.origin,u.boundingSphere.center),o.subMeshId=0,o;if(!this._generatePointsArray())return o;let f=null;const p=this._scene.getIntersectingSubMeshCandidates(this,e),m=p.length;let _=!1;for(let d=0;d<m;d++){const x=p.data[d].getMaterial();if(x&&(x.fillMode==7||x.fillMode==0||x.fillMode==1||x.fillMode==2||x.fillMode==4)){_=!0;break}}if(!_)return o.hit=!0,o.pickedMesh=this,o.distance=P.Distance(e.origin,u.boundingSphere.center),o.subMeshId=-1,o;for(let d=0;d<m;d++){const h=p.data[d];if(m>1&&!n&&!h.canIntersects(e))continue;const x=h.intersects(e,this._positions,this.getIndices(),t,i);if(x&&(t||!f||x.distance<f.distance)&&(f=x,f.subMeshId=d,t))break}if(f){const d=r??this.getWorldMatrix(),h=ae.Vector3[0],x=ae.Vector3[1];P.TransformCoordinatesToRef(e.origin,d,h),e.direction.scaleToRef(f.distance,x);const S=P.TransformNormal(x,d).addInPlace(h);return o.hit=!0,o.distance=P.Distance(h,S),o.pickedPoint=S,o.pickedMesh=this,o.bu=f.bu||0,o.bv=f.bv||0,o.subMeshFaceId=f.faceId,o.faceId=f.faceId+p.data[f.subMeshId].indexStart/(this.getClassName().indexOf("LinesMesh")!==-1?2:3),o.subMeshId=f.subMeshId,o}return o}clone(e,t,i){return null}releaseSubMeshes(e=!1){if(this.subMeshes)for(;this.subMeshes.length;)this.subMeshes[0].dispose(e);else this.subMeshes=[];return this}dispose(e,t=!1){let i;const s=this.getScene();for(this._scene.useMaterialMeshMap&&this._internalAbstractMeshDataInfo._material&&this._internalAbstractMeshDataInfo._material.meshMap&&(this._internalAbstractMeshDataInfo._material.meshMap[this.uniqueId]=void 0),s.freeActiveMeshes(),s.freeRenderingGroups(),s.renderingManager.maintainStateBetweenFrames&&s.renderingManager.restoreDispachedFlags(),this.actionManager!==void 0&&this.actionManager!==null&&(this.actionManager.disposeWhenUnowned&&!this._scene.meshes.some(o=>o!==this&&o.actionManager===this.actionManager)&&this.actionManager.dispose(),this.actionManager=null),this._internalAbstractMeshDataInfo._skeleton=null,this._transformMatrixTexture&&(this._transformMatrixTexture.dispose(),this._transformMatrixTexture=null),i=0;i<this._intersectionsInProgress.length;i++){const o=this._intersectionsInProgress[i],l=o._intersectionsInProgress.indexOf(this);o._intersectionsInProgress.splice(l,1)}this._intersectionsInProgress.length=0,s.lights.forEach(o=>{let l=o.includedOnlyMeshes.indexOf(this);l!==-1&&o.includedOnlyMeshes.splice(l,1),l=o.excludedMeshes.indexOf(this),l!==-1&&o.excludedMeshes.splice(l,1);const c=o.getShadowGenerators();if(c){const u=c.values();for(let f=u.next();f.done!==!0;f=u.next()){const m=f.value.getShadowMap();m&&m.renderList&&(l=m.renderList.indexOf(this),l!==-1&&m.renderList.splice(l,1))}}}),(this.getClassName()!=="InstancedMesh"||this.getClassName()!=="InstancedLinesMesh")&&this.releaseSubMeshes(!0);const n=s.getEngine();if(this._occlusionQuery!==null&&(this.isOcclusionQueryInProgress=!1,n.deleteQuery(this._occlusionQuery),this._occlusionQuery=null),n.wipeCaches(),s.removeMesh(this),this._parentContainer){const o=this._parentContainer.meshes.indexOf(this);o>-1&&this._parentContainer.meshes.splice(o,1),this._parentContainer=null}if(t&&this.material&&(this.material.getClassName()==="MultiMaterial"?this.material.dispose(!1,!0,!0):this.material.dispose(!1,!0)),!e)for(i=0;i<s.particleSystems.length;i++)s.particleSystems[i].emitter===this&&(s.particleSystems[i].dispose(),i--);this._internalAbstractMeshDataInfo._facetData.facetDataEnabled&&this.disableFacetData(),this._uniformBuffer.dispose(),this.onAfterWorldMatrixUpdateObservable.clear(),this.onCollideObservable.clear(),this.onCollisionPositionChangeObservable.clear(),this.onRebuildObservable.clear(),super.dispose(e,t)}_initFacetData(){const e=this._internalAbstractMeshDataInfo._facetData;e.facetNormals||(e.facetNormals=[]),e.facetPositions||(e.facetPositions=[]),e.facetPartitioning||(e.facetPartitioning=new Array),e.facetNb=this.getIndices().length/3|0,e.partitioningSubdivisions=e.partitioningSubdivisions?e.partitioningSubdivisions:10,e.partitioningBBoxRatio=e.partitioningBBoxRatio?e.partitioningBBoxRatio:1.01;for(let t=0;t<e.facetNb;t++)e.facetNormals[t]=P.Zero(),e.facetPositions[t]=P.Zero();return e.facetDataEnabled=!0,this}updateFacetData(){const e=this._internalAbstractMeshDataInfo._facetData;e.facetDataEnabled||this._initFacetData();const t=this.getVerticesData(q.PositionKind),i=this.getIndices(),s=this.getVerticesData(q.NormalKind),r=this.getBoundingInfo();if(e.facetDepthSort&&!e.facetDepthSortEnabled){if(e.facetDepthSortEnabled=!0,i instanceof Uint16Array)e.depthSortedIndices=new Uint16Array(i);else if(i instanceof Uint32Array)e.depthSortedIndices=new Uint32Array(i);else{let o=!1;for(let l=0;l<i.length;l++)if(i[l]>65535){o=!0;break}o?e.depthSortedIndices=new Uint32Array(i):e.depthSortedIndices=new Uint16Array(i)}if(e.facetDepthSortFunction=function(o,l){return l.sqDistance-o.sqDistance},!e.facetDepthSortFrom){const o=this.getScene().activeCamera;e.facetDepthSortFrom=o?o.position:P.Zero()}e.depthSortedFacets=[];for(let o=0;o<e.facetNb;o++){const l={ind:o*3,sqDistance:0};e.depthSortedFacets.push(l)}e.invertedMatrix=me.Identity(),e.facetDepthSortOrigin=P.Zero()}e.bbSize.x=r.maximum.x-r.minimum.x>Ii?r.maximum.x-r.minimum.x:Ii,e.bbSize.y=r.maximum.y-r.minimum.y>Ii?r.maximum.y-r.minimum.y:Ii,e.bbSize.z=r.maximum.z-r.minimum.z>Ii?r.maximum.z-r.minimum.z:Ii;let n=e.bbSize.x>e.bbSize.y?e.bbSize.x:e.bbSize.y;if(n=n>e.bbSize.z?n:e.bbSize.z,e.subDiv.max=e.partitioningSubdivisions,e.subDiv.X=Math.floor(e.subDiv.max*e.bbSize.x/n),e.subDiv.Y=Math.floor(e.subDiv.max*e.bbSize.y/n),e.subDiv.Z=Math.floor(e.subDiv.max*e.bbSize.z/n),e.subDiv.X=e.subDiv.X<1?1:e.subDiv.X,e.subDiv.Y=e.subDiv.Y<1?1:e.subDiv.Y,e.subDiv.Z=e.subDiv.Z<1?1:e.subDiv.Z,e.facetParameters.facetNormals=this.getFacetLocalNormals(),e.facetParameters.facetPositions=this.getFacetLocalPositions(),e.facetParameters.facetPartitioning=this.getFacetLocalPartitioning(),e.facetParameters.bInfo=r,e.facetParameters.bbSize=e.bbSize,e.facetParameters.subDiv=e.subDiv,e.facetParameters.ratio=this.partitioningBBoxRatio,e.facetParameters.depthSort=e.facetDepthSort,e.facetDepthSort&&e.facetDepthSortEnabled&&(this.computeWorldMatrix(!0),this._worldMatrix.invertToRef(e.invertedMatrix),P.TransformCoordinatesToRef(e.facetDepthSortFrom,e.invertedMatrix,e.facetDepthSortOrigin),e.facetParameters.distanceTo=e.facetDepthSortOrigin),e.facetParameters.depthSortedFacets=e.depthSortedFacets,s&&wt.ComputeNormals(t,i,s,e.facetParameters),e.facetDepthSort&&e.facetDepthSortEnabled){e.depthSortedFacets.sort(e.facetDepthSortFunction);const o=e.depthSortedIndices.length/3|0;for(let l=0;l<o;l++){const c=e.depthSortedFacets[l].ind;e.depthSortedIndices[l*3]=i[c],e.depthSortedIndices[l*3+1]=i[c+1],e.depthSortedIndices[l*3+2]=i[c+2]}this.updateIndices(e.depthSortedIndices,void 0,!0)}return this}getFacetLocalNormals(){const e=this._internalAbstractMeshDataInfo._facetData;return e.facetNormals||this.updateFacetData(),e.facetNormals}getFacetLocalPositions(){const e=this._internalAbstractMeshDataInfo._facetData;return e.facetPositions||this.updateFacetData(),e.facetPositions}getFacetLocalPartitioning(){const e=this._internalAbstractMeshDataInfo._facetData;return e.facetPartitioning||this.updateFacetData(),e.facetPartitioning}getFacetPosition(e){const t=P.Zero();return this.getFacetPositionToRef(e,t),t}getFacetPositionToRef(e,t){const i=this.getFacetLocalPositions()[e],s=this.getWorldMatrix();return P.TransformCoordinatesToRef(i,s,t),this}getFacetNormal(e){const t=P.Zero();return this.getFacetNormalToRef(e,t),t}getFacetNormalToRef(e,t){const i=this.getFacetLocalNormals()[e];return P.TransformNormalToRef(i,this.getWorldMatrix(),t),this}getFacetsAtLocalCoordinates(e,t,i){const s=this.getBoundingInfo(),r=this._internalAbstractMeshDataInfo._facetData,n=Math.floor((e-s.minimum.x*r.partitioningBBoxRatio)*r.subDiv.X*r.partitioningBBoxRatio/r.bbSize.x),o=Math.floor((t-s.minimum.y*r.partitioningBBoxRatio)*r.subDiv.Y*r.partitioningBBoxRatio/r.bbSize.y),l=Math.floor((i-s.minimum.z*r.partitioningBBoxRatio)*r.subDiv.Z*r.partitioningBBoxRatio/r.bbSize.z);return n<0||n>r.subDiv.max||o<0||o>r.subDiv.max||l<0||l>r.subDiv.max?null:r.facetPartitioning[n+r.subDiv.max*o+r.subDiv.max*r.subDiv.max*l]}getClosestFacetAtCoordinates(e,t,i,s,r=!1,n=!0){const o=this.getWorldMatrix(),l=ae.Matrix[5];o.invertToRef(l);const c=ae.Vector3[8];P.TransformCoordinatesFromFloatsToRef(e,t,i,l,c);const u=this.getClosestFacetAtLocalCoordinates(c.x,c.y,c.z,s,r,n);return s&&P.TransformCoordinatesFromFloatsToRef(s.x,s.y,s.z,o,s),u}getClosestFacetAtLocalCoordinates(e,t,i,s,r=!1,n=!0){let o=null,l=0,c=0,u=0,f=0,p=0,m=0,_=0,d=0;const h=this.getFacetLocalPositions(),x=this.getFacetLocalNormals(),A=this.getFacetsAtLocalCoordinates(e,t,i);if(!A)return null;let S=Number.MAX_VALUE,E=S,b,M,T;for(let O=0;O<A.length;O++)b=A[O],M=x[b],T=h[b],f=(e-T.x)*M.x+(t-T.y)*M.y+(i-T.z)*M.z,(!r||r&&n&&f>=0||r&&!n&&f<=0)&&(f=M.x*T.x+M.y*T.y+M.z*T.z,p=-(M.x*e+M.y*t+M.z*i-f)/(M.x*M.x+M.y*M.y+M.z*M.z),m=e+M.x*p,_=t+M.y*p,d=i+M.z*p,l=m-e,c=_-t,u=d-i,E=l*l+c*c+u*u,E<S&&(S=E,o=b,s&&(s.x=m,s.y=_,s.z=d)));return o}getFacetDataParameters(){return this._internalAbstractMeshDataInfo._facetData.facetParameters}disableFacetData(){const e=this._internalAbstractMeshDataInfo._facetData;return e.facetDataEnabled&&(e.facetDataEnabled=!1,e.facetPositions=[],e.facetNormals=[],e.facetPartitioning=new Array,e.facetParameters={},e.depthSortedIndices=new Uint32Array(0)),this}updateIndices(e,t,i=!1){return this}createNormals(e){const t=this.getVerticesData(q.PositionKind),i=this.getIndices();let s;return this.isVerticesDataPresent(q.NormalKind)?s=this.getVerticesData(q.NormalKind):s=[],wt.ComputeNormals(t,i,s,{useRightHandedSystem:this.getScene().useRightHandedSystem}),this.setVerticesData(q.NormalKind,s,e),this}async optimizeIndicesAsync(){const e=this.getIndices();if(!e)return this;const{OptimizeIndices:t}=await Promise.resolve().then(()=>eHe);return t(e),this.setIndices(e,this.getTotalVertices()),this}alignWithNormal(e,t){t||(t=fo.Y);const i=ae.Vector3[0],s=ae.Vector3[1];return P.CrossToRef(t,e,s),P.CrossToRef(e,s,i),this.rotationQuaternion?Re.RotationQuaternionFromAxisToRef(i,e,s,this.rotationQuaternion):P.RotationFromAxisToRef(i,e,s,this.rotation),this}_checkOcclusionQuery(){return!1}disableEdgesRendering(){throw as("EdgesRenderer")}enableEdgesRendering(e,t,i){throw as("EdgesRenderer")}getConnectedParticleSystems(){return this._scene.particleSystems.filter(e=>e.emitter===this)}}cr.OCCLUSION_TYPE_NONE=0,cr.OCCLUSION_TYPE_OPTIMISTIC=1,cr.OCCLUSION_TYPE_STRICT=2,cr.OCCLUSION_ALGORITHM_TYPE_ACCURATE=0,cr.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE=1,cr.CULLINGSTRATEGY_STANDARD=0,cr.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY=1,cr.CULLINGSTRATEGY_OPTIMISTIC_INCLUSION=2,cr.CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY=3,F([qx.filter((...[a,e,t,i,s])=>!Array.isArray(a)&&!Array.isArray(e)&&!Array.isArray(t)&&!Array.isArray(i)&&!Array.isArray(s))],cr,"_ApplySkeleton",null),ve("BABYLON.AbstractMesh",cr);class Ay{constructor(){this.reset()}reset(){this.enabled=!1,this.mask=255,this.func=519,this.funcRef=1,this.funcMask=255,this.opStencilFail=7680,this.opDepthFail=7680,this.opStencilDepthPass=7681}get func(){return this._func}set func(e){this._func=e}get funcRef(){return this._funcRef}set funcRef(e){this._funcRef=e}get funcMask(){return this._funcMask}set funcMask(e){this._funcMask=e}get opStencilFail(){return this._opStencilFail}set opStencilFail(e){this._opStencilFail=e}get opDepthFail(){return this._opDepthFail}set opDepthFail(e){this._opDepthFail=e}get opStencilDepthPass(){return this._opStencilDepthPass}set opStencilDepthPass(e){this._opStencilDepthPass=e}get mask(){return this._mask}set mask(e){this._mask=e}get enabled(){return this._enabled}set enabled(e){this._enabled=e}getClassName(){return"MaterialStencilState"}copyTo(e){It.Clone(()=>e,this)}serialize(){return It.Serialize(this)}parse(e,t,i){It.Parse(()=>this,e,t,i)}}F([G()],Ay.prototype,"func",null),F([G()],Ay.prototype,"funcRef",null),F([G()],Ay.prototype,"funcMask",null),F([G()],Ay.prototype,"opStencilFail",null),F([G()],Ay.prototype,"opDepthFail",null),F([G()],Ay.prototype,"opStencilDepthPass",null),F([G()],Ay.prototype,"mask",null),F([G()],Ay.prototype,"enabled",null);function qo(a){a.indexOf("vClipPlane")===-1&&a.push("vClipPlane"),a.indexOf("vClipPlane2")===-1&&a.push("vClipPlane2"),a.indexOf("vClipPlane3")===-1&&a.push("vClipPlane3"),a.indexOf("vClipPlane4")===-1&&a.push("vClipPlane4"),a.indexOf("vClipPlane5")===-1&&a.push("vClipPlane5"),a.indexOf("vClipPlane6")===-1&&a.push("vClipPlane6")}function Cy(a,e,t){const i=!!(a.clipPlane??e.clipPlane),s=!!(a.clipPlane2??e.clipPlane2),r=!!(a.clipPlane3??e.clipPlane3),n=!!(a.clipPlane4??e.clipPlane4),o=!!(a.clipPlane5??e.clipPlane5),l=!!(a.clipPlane6??e.clipPlane6);i&&t.push("#define CLIPPLANE"),s&&t.push("#define CLIPPLANE2"),r&&t.push("#define CLIPPLANE3"),n&&t.push("#define CLIPPLANE4"),o&&t.push("#define CLIPPLANE5"),l&&t.push("#define CLIPPLANE6")}function zhe(a,e,t){let i=!1;const s=!!(a.clipPlane??e.clipPlane),r=!!(a.clipPlane2??e.clipPlane2),n=!!(a.clipPlane3??e.clipPlane3),o=!!(a.clipPlane4??e.clipPlane4),l=!!(a.clipPlane5??e.clipPlane5),c=!!(a.clipPlane6??e.clipPlane6);return t.CLIPPLANE!==s&&(t.CLIPPLANE=s,i=!0),t.CLIPPLANE2!==r&&(t.CLIPPLANE2=r,i=!0),t.CLIPPLANE3!==n&&(t.CLIPPLANE3=n,i=!0),t.CLIPPLANE4!==o&&(t.CLIPPLANE4=o,i=!0),t.CLIPPLANE5!==l&&(t.CLIPPLANE5=l,i=!0),t.CLIPPLANE6!==c&&(t.CLIPPLANE6=c,i=!0),i}function Bo(a,e,t){let i=e.clipPlane??t.clipPlane;_P(a,"vClipPlane",i),i=e.clipPlane2??t.clipPlane2,_P(a,"vClipPlane2",i),i=e.clipPlane3??t.clipPlane3,_P(a,"vClipPlane3",i),i=e.clipPlane4??t.clipPlane4,_P(a,"vClipPlane4",i),i=e.clipPlane5??t.clipPlane5,_P(a,"vClipPlane5",i),i=e.clipPlane6??t.clipPlane6,_P(a,"vClipPlane6",i)}function _P(a,e,t){t&&a.setFloat4(e,t.normal.x,t.normal.y,t.normal.z,t.d)}const Fhe=Pe.Black(),i3={NUM_MORPH_INFLUENCERS:0,NORMAL:!1,TANGENT:!1,UV:!1,UV2:!1,COLOR:!1};function ml(a,e,t){if(!a||a.LOGARITHMICDEPTH||a.indexOf&&a.indexOf("LOGARITHMICDEPTH")>=0){const i=t.activeCamera;i.mode===1&&de.Error("Logarithmic depth is not compatible with orthographic cameras!",20),e.setFloat("logarithmicDepthConstant",2/(Math.log(i.maxZ+1)/Math.LN2))}}function Ic(a,e,t,i=!1){t&&a.fogEnabled&&(!e||e.applyFog)&&a.fogMode!==0&&(t.setFloat4("vFogInfos",a.fogMode,a.fogStart,a.fogEnd,a.fogDensity),i?(a.fogColor.toLinearSpaceToRef(Fhe,a.getEngine().useExactSrgbConversions),t.setColor3("vFogColor",Fhe)):t.setColor3("vFogColor",a.fogColor))}function xy(a,e,t,i,s,r,n,o,l,c){const u=a.numMaxInfluencers||a.numInfluencers;return u<=0?0:(e.push("#define MORPHTARGETS"),a.hasPositions&&e.push("#define MORPHTARGETTEXTURE_HASPOSITIONS"),a.hasNormals&&e.push("#define MORPHTARGETTEXTURE_HASNORMALS"),a.hasTangents&&e.push("#define MORPHTARGETTEXTURE_HASTANGENTS"),a.hasUVs&&e.push("#define MORPHTARGETTEXTURE_HASUVS"),a.hasUV2s&&e.push("#define MORPHTARGETTEXTURE_HASUV2S"),a.hasColors&&e.push("#define MORPHTARGETTEXTURE_HASCOLORS"),a.supportsPositions&&s&&e.push("#define MORPHTARGETS_POSITION"),a.supportsNormals&&r&&e.push("#define MORPHTARGETS_NORMAL"),a.supportsTangents&&n&&e.push("#define MORPHTARGETS_TANGENT"),a.supportsUVs&&o&&e.push("#define MORPHTARGETS_UV"),a.supportsUV2s&&l&&e.push("#define MORPHTARGETS_UV2"),a.supportsColors&&c&&e.push("#define MORPHTARGETS_COLOR"),e.push("#define NUM_MORPH_INFLUENCERS "+u),a.isUsingTextureForTargets&&e.push("#define MORPHTARGETS_TEXTURE"),i3.NUM_MORPH_INFLUENCERS=u,i3.NORMAL=r,i3.TANGENT=n,i3.UV=o,i3.UV2=l,i3.COLOR=c,vP(t,i,i3,s),u)}function khe(a,e,t){i3.NUM_MORPH_INFLUENCERS=t,i3.NORMAL=!1,i3.TANGENT=!1,i3.UV=!1,i3.UV2=!1,i3.COLOR=!1,vP(a,e,i3,!0)}function vP(a,e,t,i=!0){const s=t.NUM_MORPH_INFLUENCERS;if(s>0&&ei.LastCreatedEngine){const r=ei.LastCreatedEngine.getCaps().maxVertexAttribs,n=e.morphTargetManager;if(n!=null&&n.isUsingTextureForTargets)return;const o=n&&n.supportsPositions&&i,l=n&&n.supportsNormals&&t.NORMAL,c=n&&n.supportsTangents&&t.TANGENT,u=n&&n.supportsUVs&&t.UV1,f=n&&n.supportsUV2s&&t.UV2,p=n&&n.supportsColors&&t.COLOR;for(let m=0;m<s;m++)o&&a.push("position"+m),l&&a.push("normal"+m),c&&a.push("tangent"+m),u&&a.push("uv_"+m),f&&a.push("uv2_"+m),p&&a.push("color"+m),a.length>r&&de.Error("Cannot add more vertex attributes for mesh "+e.name)}}function Qx(a,e=!1){a.push("world0"),a.push("world1"),a.push("world2"),a.push("world3"),e&&(a.push("previousWorld0"),a.push("previousWorld1"),a.push("previousWorld2"),a.push("previousWorld3"))}function s3(a,e){const t=a.morphTargetManager;!a||!t||e.setFloatArray("morphTargetInfluences",t.influences)}function AP(a,e){e.bindToEffect(a,"Scene")}function En(a,e,t){e._needUVs=!0,e[t]=!0,a.optimizeUVAllocation&&a.getTextureMatrix().isIdentityAs3x2()?(e[t+"DIRECTUV"]=a.coordinatesIndex+1,e["MAINUV"+(a.coordinatesIndex+1)]=!0):e[t+"DIRECTUV"]=0}function Tn(a,e,t){const i=a.getTextureMatrix();e.updateMatrix(t+"Matrix",i)}function CP(a,e,t){t.BAKED_VERTEX_ANIMATION_TEXTURE&&t.INSTANCES&&a.push("bakedVertexAnimationSettingsInstanced")}function KOe(a,e){return e.set(a),e}function Pc(a,e,t){if(!(!e||!a)&&(a.computeBonesUsingShaders&&e._bonesComputationForcedToCPU&&(a.computeBonesUsingShaders=!1),a.useBones&&a.computeBonesUsingShaders&&a.skeleton)){const i=a.skeleton;if(i.isUsingTextureForMatrices&&e.getUniformIndex("boneTextureWidth")>-1){const s=i.getTransformMatrixTexture(a);e.setTexture("boneSampler",s),e.setFloat("boneTextureWidth",4*(i.bones.length+1))}else{const s=i.getTransformMatrices(a);s&&(e.setMatrices("mBones",s),t&&a.getScene().prePassRenderer&&a.getScene().prePassRenderer.getIndex(2)&&(t.previousBones[a.uniqueId]||(t.previousBones[a.uniqueId]=s.slice()),e.setMatrices("mPreviousBones",t.previousBones[a.uniqueId]),KOe(s,t.previousBones[a.uniqueId])))}}}function Uhe(a,e,t){a.transferToEffect(e,t+"")}function yw(a,e,t,i,s,r=!0){a._bindLight(e,t,i,s,r)}function Qd(a,e,t,i,s=4){const r=Math.min(e.lightSources.length,s);for(let n=0;n<r;n++){const o=e.lightSources[n];yw(o,n,a,t,typeof i=="boolean"?i:i.SPECULARTERM,e.receiveShadows)}}function G1(a,e,t,i){t.NUM_BONE_INFLUENCERS>0&&(i.addCPUSkinningFallback(0,e),a.push("matricesIndices"),a.push("matricesWeights"),t.NUM_BONE_INFLUENCERS>4&&(a.push("matricesIndicesExtra"),a.push("matricesWeightsExtra")))}function Qo(a,e){(e.INSTANCES||e.THIN_INSTANCES)&&Qx(a,!!e.PREPASS_VELOCITY),e.INSTANCESCOLOR&&a.push("instanceColor")}function Ql(a,e,t=4,i=0){let s=0;for(let r=0;r<t&&a["LIGHT"+r];r++)r>0&&(s=i+r,e.addFallback(s,"LIGHT"+r)),a.SHADOWS||(a["SHADOW"+r]&&e.addFallback(i,"SHADOW"+r),a["SHADOWPCF"+r]&&e.addFallback(i,"SHADOWPCF"+r),a["SHADOWPCSS"+r]&&e.addFallback(i,"SHADOWPCSS"+r),a["SHADOWPOISSON"+r]&&e.addFallback(i,"SHADOWPOISSON"+r),a["SHADOWESM"+r]&&e.addFallback(i,"SHADOWESM"+r),a["SHADOWCLOSEESM"+r]&&e.addFallback(i,"SHADOWCLOSEESM"+r));return s++}function mG(a,e){return e.fogEnabled&&a.applyFog&&e.fogMode!==0}function ad(a,e,t,i,s,r,n,o=!1){n._areMiscDirty&&(n.LOGARITHMICDEPTH=t,n.POINTSIZE=i,n.FOG=s&&mG(a,e),n.NONUNIFORMSCALING=a.nonUniformScaling,n.ALPHATEST=r,n.DECAL_AFTER_DETAIL=o)}function Jd(a,e,t,i,s=4,r=!1){if(!t._areLightsDirty)return t._needNormals;let n=0;const o={needNormals:t._needNormals,needRebuild:!1,lightmapMode:!1,shadowEnabled:!1,specularEnabled:!1};if(a.lightsEnabled&&!r){for(const c of e.lightSources)if(Mw(a,e,c,n,t,i,o),n++,n===s)break}t.SPECULARTERM=o.specularEnabled,t.SHADOWS=o.shadowEnabled;for(let c=n;c<s;c++)t["LIGHT"+c]!==void 0&&(t["LIGHT"+c]=!1,t["HEMILIGHT"+c]=!1,t["POINTLIGHT"+c]=!1,t["DIRLIGHT"+c]=!1,t["SPOTLIGHT"+c]=!1,t["AREALIGHT"+c]=!1,t["SHADOW"+c]=!1,t["SHADOWCSM"+c]=!1,t["SHADOWCSMDEBUG"+c]=!1,t["SHADOWCSMNUM_CASCADES"+c]=!1,t["SHADOWCSMUSESHADOWMAXZ"+c]=!1,t["SHADOWCSMNOBLEND"+c]=!1,t["SHADOWCSM_RIGHTHANDED"+c]=!1,t["SHADOWPCF"+c]=!1,t["SHADOWPCSS"+c]=!1,t["SHADOWPOISSON"+c]=!1,t["SHADOWESM"+c]=!1,t["SHADOWCLOSEESM"+c]=!1,t["SHADOWCUBE"+c]=!1,t["SHADOWLOWQUALITY"+c]=!1,t["SHADOWMEDIUMQUALITY"+c]=!1);const l=a.getEngine().getCaps();return t.SHADOWFLOAT===void 0&&(o.needRebuild=!0),t.SHADOWFLOAT=o.shadowEnabled&&(l.textureFloatRender&&l.textureFloatLinearFiltering||l.textureHalfFloatRender&&l.textureHalfFloatLinearFiltering),t.LIGHTMAPEXCLUDED=o.lightmapMode,o.needRebuild&&t.rebuild(),o.needNormals}function Mw(a,e,t,i,s,r,n){switch(n.needNormals=!0,s["LIGHT"+i]===void 0&&(n.needRebuild=!0),s["LIGHT"+i]=!0,s["SPOTLIGHT"+i]=!1,s["HEMILIGHT"+i]=!1,s["POINTLIGHT"+i]=!1,s["DIRLIGHT"+i]=!1,s["AREALIGHT"+i]=!1,t.prepareLightSpecificDefines(s,i),s["LIGHT_FALLOFF_PHYSICAL"+i]=!1,s["LIGHT_FALLOFF_GLTF"+i]=!1,s["LIGHT_FALLOFF_STANDARD"+i]=!1,t.falloffType){case qr.FALLOFF_GLTF:s["LIGHT_FALLOFF_GLTF"+i]=!0;break;case qr.FALLOFF_PHYSICAL:s["LIGHT_FALLOFF_PHYSICAL"+i]=!0;break;case qr.FALLOFF_STANDARD:s["LIGHT_FALLOFF_STANDARD"+i]=!0;break}if(r&&!t.specular.equalsFloats(0,0,0)&&(n.specularEnabled=!0),s["SHADOW"+i]=!1,s["SHADOWCSM"+i]=!1,s["SHADOWCSMDEBUG"+i]=!1,s["SHADOWCSMNUM_CASCADES"+i]=!1,s["SHADOWCSMUSESHADOWMAXZ"+i]=!1,s["SHADOWCSMNOBLEND"+i]=!1,s["SHADOWCSM_RIGHTHANDED"+i]=!1,s["SHADOWPCF"+i]=!1,s["SHADOWPCSS"+i]=!1,s["SHADOWPOISSON"+i]=!1,s["SHADOWESM"+i]=!1,s["SHADOWCLOSEESM"+i]=!1,s["SHADOWCUBE"+i]=!1,s["SHADOWLOWQUALITY"+i]=!1,s["SHADOWMEDIUMQUALITY"+i]=!1,e&&e.receiveShadows&&a.shadowsEnabled&&t.shadowEnabled){const o=t.getShadowGenerator(a.activeCamera)??t.getShadowGenerator();if(o){const l=o.getShadowMap();l&&l.renderList&&l.renderList.length>0&&(n.shadowEnabled=!0,o.prepareDefines(s,i))}}t.lightmapMode!=qr.LIGHTMAP_DEFAULT?(n.lightmapMode=!0,s["LIGHTMAPEXCLUDED"+i]=!0,s["LIGHTMAPNOSPECULAR"+i]=t.lightmapMode==qr.LIGHTMAP_SHADOWSONLY):(s["LIGHTMAPEXCLUDED"+i]=!1,s["LIGHTMAPNOSPECULAR"+i]=!1)}function od(a,e,t,i,s,r=null,n=!1){let o=AG(a,i);r!==!1&&(o=zhe(t,a,i)),i.DEPTHPREPASS!==!e.getColorWrite()&&(i.DEPTHPREPASS=!i.DEPTHPREPASS,o=!0),i.INSTANCES!==s&&(i.INSTANCES=s,o=!0),i.THIN_INSTANCES!==n&&(i.THIN_INSTANCES=n,o=!0),o&&i.markAsUnprocessed()}function gG(a,e){if(a.useBones&&a.computeBonesUsingShaders&&a.skeleton){e.NUM_BONE_INFLUENCERS=a.numBoneInfluencers;const t=e.BONETEXTURE!==void 0;if(a.skeleton.isUsingTextureForMatrices&&t)e.BONETEXTURE=!0;else{e.BonesPerMesh=a.skeleton.bones.length+1,e.BONETEXTURE=t?!1:void 0;const i=a.getScene().prePassRenderer;if(i&&i.enabled){const s=i.excludedSkinnedMesh.indexOf(a)===-1;e.BONES_VELOCITY_ENABLED=s}}}else e.NUM_BONE_INFLUENCERS=0,e.BonesPerMesh=0,e.BONETEXTURE!==void 0&&(e.BONETEXTURE=!1)}function _G(a,e){const t=a.morphTargetManager;t?(e.MORPHTARGETS_UV=t.supportsUVs&&e.UV1,e.MORPHTARGETS_UV2=t.supportsUV2s&&e.UV2,e.MORPHTARGETS_TANGENT=t.supportsTangents&&e.TANGENT,e.MORPHTARGETS_NORMAL=t.supportsNormals&&e.NORMAL,e.MORPHTARGETS_POSITION=t.supportsPositions,e.MORPHTARGETS_COLOR=t.supportsColors,e.MORPHTARGETTEXTURE_HASUVS=t.hasUVs,e.MORPHTARGETTEXTURE_HASUV2S=t.hasUV2s,e.MORPHTARGETTEXTURE_HASTANGENTS=t.hasTangents,e.MORPHTARGETTEXTURE_HASNORMALS=t.hasNormals,e.MORPHTARGETTEXTURE_HASPOSITIONS=t.hasPositions,e.MORPHTARGETTEXTURE_HASCOLORS=t.hasColors,e.NUM_MORPH_INFLUENCERS=t.numMaxInfluencers||t.numInfluencers,e.MORPHTARGETS=e.NUM_MORPH_INFLUENCERS>0,e.MORPHTARGETS_TEXTURE=t.isUsingTextureForTargets):(e.MORPHTARGETS_UV=!1,e.MORPHTARGETS_UV2=!1,e.MORPHTARGETS_TANGENT=!1,e.MORPHTARGETS_NORMAL=!1,e.MORPHTARGETS_POSITION=!1,e.MORPHTARGETS_COLOR=!1,e.MORPHTARGETTEXTURE_HASUVS=!1,e.MORPHTARGETTEXTURE_HASUV2S=!1,e.MORPHTARGETTEXTURE_HASTANGENTS=!1,e.MORPHTARGETTEXTURE_HASNORMALS=!1,e.MORPHTARGETTEXTURE_HASPOSITIONS=!1,e.MORPHTARGETTEXTURE_HAS_COLORS=!1,e.MORPHTARGETS=!1,e.NUM_MORPH_INFLUENCERS=0)}function sZ(a,e){const t=a.bakedVertexAnimationManager;e.BAKED_VERTEX_ANIMATION_TEXTURE=!!(t&&t.isEnabled)}function zo(a,e,t,i,s=!1,r=!0,n=!0){if(!e._areAttributesDirty&&e._needNormals===e._normals&&e._needUVs===e._uvs)return!1;e._normals=e._needNormals,e._uvs=e._needUVs,e.NORMAL=e._needNormals&&a.isVerticesDataPresent("normal"),e._needNormals&&a.isVerticesDataPresent("tangent")&&(e.TANGENT=!0);for(let o=1;o<=6;++o)e["UV"+o]=e._needUVs?a.isVerticesDataPresent(`uv${o===1?"":o}`):!1;if(t){const o=a.useVertexColors&&a.isVerticesDataPresent("color");e.VERTEXCOLOR=o,e.VERTEXALPHA=a.hasVertexAlpha&&o&&r}return a.isVerticesDataPresent("instanceColor")&&(a.hasInstances||a.hasThinInstances)&&(e.INSTANCESCOLOR=!0),i&&gG(a,e),s&&_G(a,e),n&&sZ(a,e),!0}function xP(a,e){if(a.activeCamera){const t=e.MULTIVIEW;e.MULTIVIEW=a.activeCamera.outputRenderTarget!==null&&a.activeCamera.outputRenderTarget.getViewCount()>1,e.MULTIVIEW!=t&&e.markAsUnprocessed()}}function vG(a,e,t){const i=e.ORDER_INDEPENDENT_TRANSPARENCY,s=e.ORDER_INDEPENDENT_TRANSPARENCY_16BITS;e.ORDER_INDEPENDENT_TRANSPARENCY=a.useOrderIndependentTransparency&&t,e.ORDER_INDEPENDENT_TRANSPARENCY_16BITS=!a.getEngine().getCaps().textureFloatLinearFiltering,(i!==e.ORDER_INDEPENDENT_TRANSPARENCY||s!==e.ORDER_INDEPENDENT_TRANSPARENCY_16BITS)&&e.markAsUnprocessed()}function Ew(a,e,t){const i=e.PREPASS;if(!e._arePrePassDirty)return;const s=[{type:1,define:"PREPASS_POSITION",index:"PREPASS_POSITION_INDEX"},{type:9,define:"PREPASS_LOCAL_POSITION",index:"PREPASS_LOCAL_POSITION_INDEX"},{type:2,define:"PREPASS_VELOCITY",index:"PREPASS_VELOCITY_INDEX"},{type:11,define:"PREPASS_VELOCITY_LINEAR",index:"PREPASS_VELOCITY_LINEAR_INDEX"},{type:3,define:"PREPASS_REFLECTIVITY",index:"PREPASS_REFLECTIVITY_INDEX"},{type:0,define:"PREPASS_IRRADIANCE",index:"PREPASS_IRRADIANCE_INDEX"},{type:7,define:"PREPASS_ALBEDO_SQRT",index:"PREPASS_ALBEDO_SQRT_INDEX"},{type:5,define:"PREPASS_DEPTH",index:"PREPASS_DEPTH_INDEX"},{type:10,define:"PREPASS_SCREENSPACE_DEPTH",index:"PREPASS_SCREENSPACE_DEPTH_INDEX"},{type:6,define:"PREPASS_NORMAL",index:"PREPASS_NORMAL_INDEX"},{type:8,define:"PREPASS_WORLD_NORMAL",index:"PREPASS_WORLD_NORMAL_INDEX"}];if(a.prePassRenderer&&a.prePassRenderer.enabled&&t){e.PREPASS=!0,e.SCENE_MRT_COUNT=a.prePassRenderer.mrtCount,e.PREPASS_NORMAL_WORLDSPACE=a.prePassRenderer.generateNormalsInWorldSpace,e.PREPASS_COLOR=!0,e.PREPASS_COLOR_INDEX=0;for(let r=0;r<s.length;r++){const n=a.prePassRenderer.getIndex(s[r].type);n!==-1?(e[s[r].define]=!0,e[s[r].index]=n):e[s[r].define]=!1}}else{e.PREPASS=!1;for(let r=0;r<s.length;r++)e[s[r].define]=!1}e.PREPASS!=i&&(e.markAsUnprocessed(),e.markAsImageProcessingDirty())}function AG(a,e){let t=!1;if(a.activeCamera){const i=e.CAMERA_ORTHOGRAPHIC?1:0,s=e.CAMERA_PERSPECTIVE?1:0,r=a.activeCamera.mode===1?1:0,n=a.activeCamera.mode===0?1:0;(i^r||s^n)&&(e.CAMERA_ORTHOGRAPHIC=r===1,e.CAMERA_PERSPECTIVE=n===1,t=!0)}return t}function Tw(a,e,t,i,s=null,r=!1,n=!1){s&&s.push("Light"+a),!r&&(e.push("vLightData"+a,"vLightDiffuse"+a,"vLightSpecular"+a,"vLightDirection"+a,"vLightWidth"+a,"vLightHeight"+a,"vLightFalloff"+a,"vLightGround"+a,"lightMatrix"+a,"shadowsInfo"+a,"depthValues"+a),t.push("shadowTexture"+a),t.push("depthTexture"+a),e.push("viewFrustumZ"+a,"cascadeBlendFactor"+a,"lightSizeUVCorrection"+a,"depthCorrection"+a,"penumbraDarkness"+a,"frustumLengths"+a),i&&(t.push("projectionLightTexture"+a),e.push("textureProjectionMatrix"+a)),n&&t.push("iesLightTexture"+a))}function gl(a,e,t,i=4){let s,r;if(a.uniformsNames){const n=a;s=n.uniformsNames,r=n.uniformBuffersNames,e=n.samplers,t=n.defines,i=n.maxSimultaneousLights||0}else s=a,e||(e=[]);for(let n=0;n<i&&t["LIGHT"+n];n++)Tw(n,s,e,t["PROJECTEDLIGHTTEXTURE"+n],r,!1,t["IESLIGHTTEXTURE"+n]);t.NUM_MORPH_INFLUENCERS&&(s.push("morphTargetInfluences"),s.push("morphTargetCount")),t.BAKED_VERTEX_ANIMATION_TEXTURE&&(s.push("bakedVertexAnimationSettings"),s.push("bakedVertexAnimationTextureSizeInverted"),s.push("bakedVertexAnimationTime"),e.push("bakedVertexAnimationTexture"))}class ft{get _supportGlowLayer(){return!1}set _glowModeEnabled(e){}get shaderLanguage(){return this._shaderLanguage}get canRenderToMRT(){return!1}set alpha(e){if(this._alpha===e)return;const t=this._alpha;this._alpha=e,(t===1||e===1)&&this.markAsDirty(ft.MiscDirtyFlag+ft.PrePassDirtyFlag)}get alpha(){return this._alpha}set backFaceCulling(e){this._backFaceCulling!==e&&(this._backFaceCulling=e,this.markAsDirty(ft.TextureDirtyFlag))}get backFaceCulling(){return this._backFaceCulling}set cullBackFaces(e){this._cullBackFaces!==e&&(this._cullBackFaces=e,this.markAsDirty(ft.TextureDirtyFlag))}get cullBackFaces(){return this._cullBackFaces}get blockDirtyMechanism(){return this._blockDirtyMechanism}set blockDirtyMechanism(e){this._blockDirtyMechanism!==e&&(this._blockDirtyMechanism=e,e||this.markDirty())}atomicMaterialsUpdate(e){this.blockDirtyMechanism=!0;try{e(this)}finally{this.blockDirtyMechanism=!1}}get hasRenderTargetTextures(){return this._eventInfo.hasRenderTargetTextures=!1,this._callbackPluginEventHasRenderTargetTextures(this._eventInfo),this._eventInfo.hasRenderTargetTextures}set onDispose(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)}get onBindObservable(){return this._onBindObservable||(this._onBindObservable=new xe),this._onBindObservable}set onBind(e){this._onBindObserver&&this.onBindObservable.remove(this._onBindObserver),this._onBindObserver=this.onBindObservable.add(e)}get onUnBindObservable(){return this._onUnBindObservable||(this._onUnBindObservable=new xe),this._onUnBindObservable}get onEffectCreatedObservable(){return this._onEffectCreatedObservable||(this._onEffectCreatedObservable=new xe),this._onEffectCreatedObservable}set alphaMode(e){this._alphaMode!==e&&(this._alphaMode=e,this.markAsDirty(ft.TextureDirtyFlag))}get alphaMode(){return this._alphaMode}set needDepthPrePass(e){this._needDepthPrePass!==e&&(this._needDepthPrePass=e,this._needDepthPrePass&&(this.checkReadyOnEveryCall=!0))}get needDepthPrePass(){return this._needDepthPrePass}get isPrePassCapable(){return!1}set fogEnabled(e){this._fogEnabled!==e&&(this._fogEnabled=e,this.markAsDirty(ft.MiscDirtyFlag))}get fogEnabled(){return this._fogEnabled}get wireframe(){switch(this._fillMode){case ft.WireFrameFillMode:case ft.LineListDrawMode:case ft.LineLoopDrawMode:case ft.LineStripDrawMode:return!0}return this._scene.forceWireframe}set wireframe(e){this.fillMode=e?ft.WireFrameFillMode:ft.TriangleFillMode}get pointsCloud(){switch(this._fillMode){case ft.PointFillMode:case ft.PointListDrawMode:return!0}return this._scene.forcePointsCloud}set pointsCloud(e){this.fillMode=e?ft.PointFillMode:ft.TriangleFillMode}get fillMode(){return this._fillMode}set fillMode(e){this._fillMode!==e&&(this._fillMode=e,this.markAsDirty(ft.MiscDirtyFlag))}get useLogarithmicDepth(){return this._useLogarithmicDepth}set useLogarithmicDepth(e){const t=this.getScene().getEngine().getCaps().fragmentDepthSupported;e&&!t&&de.Warn("Logarithmic depth has been requested for a material on a device that doesn't support it."),this._useLogarithmicDepth=e&&t,this._markAllSubMeshesAsMiscDirty()}_getDrawWrapper(){return this._drawWrapper}_setDrawWrapper(e){this._drawWrapper=e}constructor(e,t,i,s=!1){this.shadowDepthWrapper=null,this.allowShaderHotSwapping=!0,this._shaderLanguage=0,this._forceGLSL=!1,this.metadata=null,this.reservedDataStore=null,this.checkReadyOnEveryCall=!1,this.checkReadyOnlyOnce=!1,this.state="",this._alpha=1,this._backFaceCulling=!0,this._cullBackFaces=!0,this._blockDirtyMechanism=!1,this.sideOrientation=null,this.onCompiled=null,this.onError=null,this.getRenderTargetTextures=null,this.doNotSerialize=!1,this._storeEffectOnSubMeshes=!1,this.animations=null,this.onDisposeObservable=new xe,this._onDisposeObserver=null,this._onUnBindObservable=null,this._onBindObserver=null,this._alphaMode=2,this._needDepthPrePass=!1,this.disableDepthWrite=!1,this.disableColorWrite=!1,this.forceDepthWrite=!1,this.depthFunction=0,this.separateCullingPass=!1,this._fogEnabled=!0,this.pointSize=1,this.zOffset=0,this.zOffsetUnits=0,this.stencil=new Ay,this._useUBO=!1,this._fillMode=ft.TriangleFillMode,this._cachedDepthWriteState=!1,this._cachedColorWriteState=!1,this._cachedDepthFunctionState=0,this._indexInSceneMaterialArray=-1,this.meshMap=null,this._parentContainer=null,this._uniformBufferLayoutBuilt=!1,this._eventInfo={},this._callbackPluginEventGeneric=()=>{},this._callbackPluginEventIsReadyForSubMesh=()=>{},this._callbackPluginEventPrepareDefines=()=>{},this._callbackPluginEventPrepareDefinesBeforeAttributes=()=>{},this._callbackPluginEventHardBindForSubMesh=()=>{},this._callbackPluginEventBindForSubMesh=()=>{},this._callbackPluginEventHasRenderTargetTextures=()=>{},this._callbackPluginEventFillRenderTargetTextures=()=>{},this._transparencyMode=null,this.name=e;const r=t||ei.LastCreatedScene;r&&(this._scene=r,this._dirtyCallbacks={},this._forceGLSL=s,this._dirtyCallbacks[1]=this._markAllSubMeshesAsTexturesDirty.bind(this),this._dirtyCallbacks[2]=this._markAllSubMeshesAsLightsDirty.bind(this),this._dirtyCallbacks[4]=this._markAllSubMeshesAsFresnelDirty.bind(this),this._dirtyCallbacks[8]=this._markAllSubMeshesAsAttributesDirty.bind(this),this._dirtyCallbacks[16]=this._markAllSubMeshesAsMiscDirty.bind(this),this._dirtyCallbacks[32]=this._markAllSubMeshesAsPrePassDirty.bind(this),this._dirtyCallbacks[127]=this._markAllSubMeshesAsAllDirty.bind(this),this.id=e||Le.RandomId(),this.uniqueId=this._scene.getUniqueId(),this._materialContext=this._scene.getEngine().createMaterialContext(),this._drawWrapper=new ql(this._scene.getEngine(),!1),this._drawWrapper.materialContext=this._materialContext,this._uniformBuffer=new Ti(this._scene.getEngine(),void 0,void 0,e),this._useUBO=this.getScene().getEngine().supportsUniformBuffers,this._createUniformBuffer(),i||this._scene.addMaterial(this),this._scene.useMaterialMeshMap&&(this.meshMap={}),ft.OnEventObservable.notifyObservers(this,1))}_createUniformBuffer(){var t;const e=this.getScene().getEngine();(t=this._uniformBuffer)==null||t.dispose(),e.isWebGPU&&!this._forceGLSL?(this._uniformBuffer=new Ti(e,void 0,void 0,this.name,!0),this._shaderLanguage=1):this._uniformBuffer=new Ti(this._scene.getEngine(),void 0,void 0,this.name),this._uniformBufferLayoutBuilt=!1}toString(e){return"Name: "+this.name}getClassName(){return"Material"}get _isMaterial(){return!0}get isFrozen(){return this.checkReadyOnlyOnce}freeze(){this.markDirty(),this.checkReadyOnlyOnce=!0}unfreeze(){this.markDirty(),this.checkReadyOnlyOnce=!1}isReady(e,t){return!0}isReadyForSubMesh(e,t,i){const s=t.materialDefines;return s?(this._eventInfo.isReadyForSubMesh=!0,this._eventInfo.defines=s,this._callbackPluginEventIsReadyForSubMesh(this._eventInfo),this._eventInfo.isReadyForSubMesh):!1}getEffect(){return this._drawWrapper.effect}getScene(){return this._scene}_getEffectiveOrientation(e){return this.sideOrientation!==null?this.sideOrientation:e.sideOrientation}get transparencyMode(){return this._transparencyMode}set transparencyMode(e){this._transparencyMode!==e&&(this._transparencyMode=e,this._markAllSubMeshesAsTexturesAndMiscDirty())}get _hasTransparencyMode(){return this._transparencyMode!=null}get _transparencyModeIsBlend(){return this._transparencyMode===ft.MATERIAL_ALPHABLEND||this._transparencyMode===ft.MATERIAL_ALPHATESTANDBLEND}get _transparencyModeIsTest(){return this._transparencyMode===ft.MATERIAL_ALPHATEST||this._transparencyMode===ft.MATERIAL_ALPHATESTANDBLEND}get _disableAlphaBlending(){return this._transparencyMode===ft.MATERIAL_OPAQUE||this._transparencyMode===ft.MATERIAL_ALPHATEST}needAlphaBlending(){return this._hasTransparencyMode?this._transparencyModeIsBlend:this._disableAlphaBlending?!1:this.alpha<1}needAlphaBlendingForMesh(e){return this._hasTransparencyMode?this._transparencyModeIsBlend:e.visibility<1?!0:this._disableAlphaBlending?!1:e.hasVertexAlpha||this.needAlphaBlending()}needAlphaTesting(){return this._hasTransparencyMode?this._transparencyModeIsTest:!1}needAlphaTestingForMesh(e){return this._hasTransparencyMode?this._transparencyModeIsTest:!this.needAlphaBlendingForMesh(e)&&this.needAlphaTesting()}getAlphaTestTexture(){return null}markDirty(e=!1){const t=this.getScene().meshes;for(const i of t)if(i.subMeshes){for(const s of i.subMeshes)if(s.getMaterial()===this)for(const r of s._drawWrappers)r&&this._materialContext===r.materialContext&&(r._wasPreviouslyReady=!1,r._wasPreviouslyUsingInstances=null,r._forceRebindOnNextCall=e)}e&&this.markAsDirty(ft.AllDirtyFlag)}_preBind(e,t=null){const i=this._scene.getEngine(),r=(t??this.sideOrientation)===ft.ClockWiseSideOrientation;return i.enableEffect(e||this._getDrawWrapper()),i.setState(this.backFaceCulling,this.zOffset,!1,r,this._scene._mirroredCameraPosition?!this.cullBackFaces:this.cullBackFaces,this.stencil,this.zOffsetUnits),r}bind(e,t){}buildUniformLayout(){const e=this._uniformBuffer;this._eventInfo.ubo=e,this._callbackPluginEventGeneric(8,this._eventInfo),e.create(),this._uniformBufferLayoutBuilt=!0}bindForSubMesh(e,t,i){const s=i._drawWrapper;this._eventInfo.subMesh=i,this._callbackPluginEventBindForSubMesh(this._eventInfo),s._forceRebindOnNextCall=!1}bindOnlyWorldMatrix(e){}bindView(e){this._useUBO?this._needToBindSceneUbo=!0:e.setMatrix("view",this.getScene().getViewMatrix())}bindViewProjection(e){this._useUBO?this._needToBindSceneUbo=!0:(e.setMatrix("viewProjection",this.getScene().getTransformMatrix()),e.setMatrix("projection",this.getScene().getProjectionMatrix()))}bindEyePosition(e,t){this._useUBO?this._needToBindSceneUbo=!0:this._scene.bindEyePosition(e,t)}_afterBind(e,t=null,i){if(this._scene._cachedMaterial=this,this._needToBindSceneUbo&&t&&(this._needToBindSceneUbo=!1,AP(t,this.getScene().getSceneUniformBuffer()),this._scene.finalizeSceneUbo()),e?this._scene._cachedVisibility=e.visibility:this._scene._cachedVisibility=1,this._onBindObservable&&e&&this._onBindObservable.notifyObservers(e),this.disableDepthWrite){const s=this._scene.getEngine();this._cachedDepthWriteState=s.getDepthWrite(),s.setDepthWrite(!1)}if(this.disableColorWrite){const s=this._scene.getEngine();this._cachedColorWriteState=s.getColorWrite(),s.setColorWrite(!1)}if(this.depthFunction!==0){const s=this._scene.getEngine();this._cachedDepthFunctionState=s.getDepthFunction()||0,s.setDepthFunction(this.depthFunction)}}unbind(){this._scene.getSceneUniformBuffer().unbindEffect(),this._onUnBindObservable&&this._onUnBindObservable.notifyObservers(this),this.depthFunction!==0&&this._scene.getEngine().setDepthFunction(this._cachedDepthFunctionState),this.disableDepthWrite&&this._scene.getEngine().setDepthWrite(this._cachedDepthWriteState),this.disableColorWrite&&this._scene.getEngine().setColorWrite(this._cachedColorWriteState)}getAnimatables(){return this._eventInfo.animatables=[],this._callbackPluginEventGeneric(256,this._eventInfo),this._eventInfo.animatables}getActiveTextures(){return this._eventInfo.activeTextures=[],this._callbackPluginEventGeneric(512,this._eventInfo),this._eventInfo.activeTextures}hasTexture(e){return this._eventInfo.hasTexture=!1,this._eventInfo.texture=e,this._callbackPluginEventGeneric(1024,this._eventInfo),this._eventInfo.hasTexture}clone(e){return null}_clonePlugins(e,t){const i={};if(this._serializePlugins(i),ft._ParsePlugins(i,e,this._scene,t),this.pluginManager)for(const s of this.pluginManager._plugins){const r=e.pluginManager.getPlugin(s.name);r&&s.copyTo(r)}}getBindedMeshes(){if(this.meshMap){const e=[];for(const t in this.meshMap){const i=this.meshMap[t];i&&e.push(i)}return e}else return this._scene.meshes.filter(t=>t.material===this)}forceCompilation(e,t,i,s){const r={clipPlane:!1,useInstances:!1,...i},n=this.getScene(),o=this.allowShaderHotSwapping;this.allowShaderHotSwapping=!1;const l=()=>{if(!this._scene||!this._scene.getEngine())return;const c=n.clipPlane;if(r.clipPlane&&(n.clipPlane=new Sh(0,0,0,1)),this._storeEffectOnSubMeshes){let u=!0,f=null;if(e.subMeshes){const p=new Lc(0,0,0,0,0,e,void 0,!1,!1);p.materialDefines&&(p.materialDefines._renderId=-1),this.isReadyForSubMesh(e,p,r.useInstances)||(p.effect&&p.effect.getCompilationError()&&p.effect.allFallbacksProcessed()?f=p.effect.getCompilationError():(u=!1,setTimeout(l,16)))}u&&(this.allowShaderHotSwapping=o,f&&s&&s(f),t&&t(this))}else this.isReady()?(this.allowShaderHotSwapping=o,t&&t(this)):setTimeout(l,16);r.clipPlane&&(n.clipPlane=c)};l()}forceCompilationAsync(e,t){return new Promise((i,s)=>{this.forceCompilation(e,()=>{i()},t,r=>{s(r)})})}markAsDirty(e){this.getScene().blockMaterialDirtyMechanism||this._blockDirtyMechanism||(ft._DirtyCallbackArray.length=0,e&ft.ImageProcessingDirtyFlag&&ft._DirtyCallbackArray.push(ft._ImageProcessingDirtyCallBack),e&ft.TextureDirtyFlag&&ft._DirtyCallbackArray.push(ft._TextureDirtyCallBack),e&ft.LightDirtyFlag&&ft._DirtyCallbackArray.push(ft._LightsDirtyCallBack),e&ft.FresnelDirtyFlag&&ft._DirtyCallbackArray.push(ft._FresnelDirtyCallBack),e&ft.AttributesDirtyFlag&&ft._DirtyCallbackArray.push(ft._AttributeDirtyCallBack),e&ft.MiscDirtyFlag&&ft._DirtyCallbackArray.push(ft._MiscDirtyCallBack),e&ft.PrePassDirtyFlag&&ft._DirtyCallbackArray.push(ft._PrePassDirtyCallBack),ft._DirtyCallbackArray.length&&this._markAllSubMeshesAsDirty(ft._RunDirtyCallBacks),this.getScene().resetCachedMaterial())}resetDrawCache(){const e=this.getScene().meshes;for(const t of e)if(t.subMeshes)for(const i of t.subMeshes)i.getMaterial()===this&&i.resetDrawCache()}_markAllSubMeshesAsDirty(e){const t=this.getScene();if(t.blockMaterialDirtyMechanism||this._blockDirtyMechanism)return;const i=t.meshes;for(const s of i)if(s.subMeshes){for(const r of s.subMeshes)if((r.getMaterial()||(t._hasDefaultMaterial?t.defaultMaterial:null))===this)for(const o of r._drawWrappers)!o||!o.defines||!o.defines.markAllAsDirty||this._materialContext===o.materialContext&&e(o.defines)}}_markScenePrePassDirty(){if(this.getScene().blockMaterialDirtyMechanism||this._blockDirtyMechanism)return;const e=this.getScene().enablePrePassRenderer();e&&e.markAsDirty()}_markAllSubMeshesAsAllDirty(){this._markAllSubMeshesAsDirty(ft._AllDirtyCallBack)}_markAllSubMeshesAsImageProcessingDirty(){this._markAllSubMeshesAsDirty(ft._ImageProcessingDirtyCallBack)}_markAllSubMeshesAsTexturesDirty(){this._markAllSubMeshesAsDirty(ft._TextureDirtyCallBack)}_markAllSubMeshesAsFresnelDirty(){this._markAllSubMeshesAsDirty(ft._FresnelDirtyCallBack)}_markAllSubMeshesAsFresnelAndMiscDirty(){this._markAllSubMeshesAsDirty(ft._FresnelAndMiscDirtyCallBack)}_markAllSubMeshesAsLightsDirty(){this._markAllSubMeshesAsDirty(ft._LightsDirtyCallBack)}_markAllSubMeshesAsAttributesDirty(){this._markAllSubMeshesAsDirty(ft._AttributeDirtyCallBack)}_markAllSubMeshesAsMiscDirty(){this._markAllSubMeshesAsDirty(ft._MiscDirtyCallBack)}_markAllSubMeshesAsPrePassDirty(){this._markAllSubMeshesAsDirty(ft._PrePassDirtyCallBack)}_markAllSubMeshesAsTexturesAndMiscDirty(){this._markAllSubMeshesAsDirty(ft._TextureAndMiscDirtyCallBack)}_checkScenePerformancePriority(){if(this._scene.performancePriority!==0){this.checkReadyOnlyOnce=!0;const e=this._scene.onScenePerformancePriorityChangedObservable.addOnce(()=>{this.checkReadyOnlyOnce=!1});this.onDisposeObservable.add(()=>{this._scene.onScenePerformancePriorityChangedObservable.remove(e)})}}setPrePassRenderer(e){return!1}dispose(e,t,i){const s=this.getScene();if(s.stopAnimation(this),s.freeProcessedMaterials(),s.removeMaterial(this),this._eventInfo.forceDisposeTextures=t,this._callbackPluginEventGeneric(2,this._eventInfo),this._parentContainer){const r=this._parentContainer.materials.indexOf(this);r>-1&&this._parentContainer.materials.splice(r,1),this._parentContainer=null}if(i!==!0)if(this.meshMap)for(const r in this.meshMap){const n=this.meshMap[r];this._disposeMeshResources(n)}else{const r=s.meshes;for(const n of r)this._disposeMeshResources(n)}this._uniformBuffer.dispose(),this._drawWrapper.effect&&(this._storeEffectOnSubMeshes||this._drawWrapper.effect.dispose(),this._drawWrapper.effect=null),this.metadata=null,this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this._onBindObservable&&this._onBindObservable.clear(),this._onUnBindObservable&&this._onUnBindObservable.clear(),this._onEffectCreatedObservable&&this._onEffectCreatedObservable.clear(),this._eventInfo&&(this._eventInfo={})}_disposeMeshResources(e){var s;if(!e)return;const t=e.geometry,i=e._internalAbstractMeshDataInfo._materialForRenderPass;if(this._storeEffectOnSubMeshes){if(e.subMeshes&&i)for(const r of e.subMeshes){const n=r._drawWrappers;for(let o=0;o<n.length;o++){const l=(s=n[o])==null?void 0:s.effect;if(!l)continue;i[o]===this&&(t==null||t._releaseVertexArrayObject(l),r._removeDrawWrapper(o,!0,!0))}}}else t==null||t._releaseVertexArrayObject(this._drawWrapper.effect);e.material===this&&!e.sourceMesh&&(e.material=null)}serialize(){const e=It.Serialize(this);return e.stencil=this.stencil.serialize(),e.uniqueId=this.uniqueId,this._serializePlugins(e),e}_serializePlugins(e){if(e.plugins={},this.pluginManager)for(const t of this.pluginManager._plugins)t.doNotSerialize||(e.plugins[t.getClassName()]=t.serialize())}static Parse(e,t,i){if(!e.customType)e.customType="BABYLON.StandardMaterial";else if(e.customType==="BABYLON.PBRMaterial"&&e.overloadedAlbedo&&(e.customType="BABYLON.LegacyPBRMaterial",!BABYLON.LegacyPBRMaterial))return de.Error("Your scene is trying to load a legacy version of the PBRMaterial, please, include it from the materials library."),null;const r=Le.Instantiate(e.customType).Parse(e,t,i);return r._loadedUniqueId=e.uniqueId,r}static _ParsePlugins(e,t,i,s){var r;if(e.plugins)for(const n in e.plugins){const o=e.plugins[n];let l=(r=t.pluginManager)==null?void 0:r.getPlugin(o.name);if(!l){const c=Le.Instantiate("BABYLON."+n);c&&(l=new c(t))}l==null||l.parse(o,i,s)}}}ft.TriangleFillMode=0,ft.WireFrameFillMode=1,ft.PointFillMode=2,ft.PointListDrawMode=3,ft.LineListDrawMode=4,ft.LineLoopDrawMode=5,ft.LineStripDrawMode=6,ft.TriangleStripDrawMode=7,ft.TriangleFanDrawMode=8,ft.ClockWiseSideOrientation=0,ft.CounterClockWiseSideOrientation=1,ft.ImageProcessingDirtyFlag=64,ft.TextureDirtyFlag=1,ft.LightDirtyFlag=2,ft.FresnelDirtyFlag=4,ft.AttributesDirtyFlag=8,ft.MiscDirtyFlag=16,ft.PrePassDirtyFlag=32,ft.AllDirtyFlag=127,ft.MATERIAL_OPAQUE=0,ft.MATERIAL_ALPHATEST=1,ft.MATERIAL_ALPHABLEND=2,ft.MATERIAL_ALPHATESTANDBLEND=3,ft.MATERIAL_NORMALBLENDMETHOD_WHITEOUT=0,ft.MATERIAL_NORMALBLENDMETHOD_RNM=1,ft.OnEventObservable=new xe,ft._AllDirtyCallBack=a=>a.markAllAsDirty(),ft._ImageProcessingDirtyCallBack=a=>a.markAsImageProcessingDirty(),ft._TextureDirtyCallBack=a=>a.markAsTexturesDirty(),ft._FresnelDirtyCallBack=a=>a.markAsFresnelDirty(),ft._MiscDirtyCallBack=a=>a.markAsMiscDirty(),ft._PrePassDirtyCallBack=a=>a.markAsPrePassDirty(),ft._LightsDirtyCallBack=a=>a.markAsLightDirty(),ft._AttributeDirtyCallBack=a=>a.markAsAttributesDirty(),ft._FresnelAndMiscDirtyCallBack=a=>{ft._FresnelDirtyCallBack(a),ft._MiscDirtyCallBack(a)},ft._TextureAndMiscDirtyCallBack=a=>{ft._TextureDirtyCallBack(a),ft._MiscDirtyCallBack(a)},ft._DirtyCallbackArray=[],ft._RunDirtyCallBacks=a=>{for(const e of ft._DirtyCallbackArray)e(a)},F([G()],ft.prototype,"id",void 0),F([G()],ft.prototype,"uniqueId",void 0),F([G()],ft.prototype,"name",void 0),F([G()],ft.prototype,"metadata",void 0),F([G()],ft.prototype,"checkReadyOnEveryCall",void 0),F([G()],ft.prototype,"checkReadyOnlyOnce",void 0),F([G()],ft.prototype,"state",void 0),F([G("alpha")],ft.prototype,"_alpha",void 0),F([G("backFaceCulling")],ft.prototype,"_backFaceCulling",void 0),F([G("cullBackFaces")],ft.prototype,"_cullBackFaces",void 0),F([G()],ft.prototype,"sideOrientation",void 0),F([G("alphaMode")],ft.prototype,"_alphaMode",void 0),F([G()],ft.prototype,"_needDepthPrePass",void 0),F([G()],ft.prototype,"disableDepthWrite",void 0),F([G()],ft.prototype,"disableColorWrite",void 0),F([G()],ft.prototype,"forceDepthWrite",void 0),F([G()],ft.prototype,"depthFunction",void 0),F([G()],ft.prototype,"separateCullingPass",void 0),F([G("fogEnabled")],ft.prototype,"_fogEnabled",void 0),F([G()],ft.prototype,"pointSize",void 0),F([G()],ft.prototype,"zOffset",void 0),F([G()],ft.prototype,"zOffsetUnits",void 0),F([G()],ft.prototype,"pointsCloud",null),F([G()],ft.prototype,"fillMode",null),F([G()],ft.prototype,"useLogarithmicDepth",null),F([G()],ft.prototype,"transparencyMode",null);class tf extends ft{get subMaterials(){return this._subMaterials}set subMaterials(e){this._subMaterials=e,this._hookArray(e)}getChildren(){return this.subMaterials}constructor(e,t){super(e,t,!0),this._waitingSubMaterialsUniqueIds=[],this.getScene().addMultiMaterial(this),this.subMaterials=[],this._storeEffectOnSubMeshes=!0}_hookArray(e){const t=e.push;e.push=(...s)=>{const r=t.apply(e,s);return this._markAllSubMeshesAsTexturesDirty(),r};const i=e.splice;e.splice=(s,r)=>{const n=i.apply(e,[s,r]);return this._markAllSubMeshesAsTexturesDirty(),n}}getSubMaterial(e){return e<0||e>=this.subMaterials.length?this.getScene().defaultMaterial:this.subMaterials[e]}getActiveTextures(){return super.getActiveTextures().concat(...this.subMaterials.map(e=>e?e.getActiveTextures():[]))}hasTexture(e){var t;if(super.hasTexture(e))return!0;for(let i=0;i<this.subMaterials.length;i++)if((t=this.subMaterials[i])!=null&&t.hasTexture(e))return!0;return!1}getClassName(){return"MultiMaterial"}isReadyForSubMesh(e,t,i){for(let s=0;s<this.subMaterials.length;s++){const r=this.subMaterials[s];if(r){if(r._storeEffectOnSubMeshes){if(!r.isReadyForSubMesh(e,t,i))return!1;continue}if(!r.isReady(e))return!1}}return!0}clone(e,t){const i=new tf(e,this.getScene());for(let s=0;s<this.subMaterials.length;s++){let r=null;const n=this.subMaterials[s];t&&n?r=n.clone(e+"-"+n.name):r=this.subMaterials[s],i.subMaterials.push(r)}return i}serialize(){const e={};e.name=this.name,e.id=this.id,e.uniqueId=this.uniqueId,ar&&(e.tags=ar.GetTags(this)),e.materialsUniqueIds=[],e.materials=[];for(let t=0;t<this.subMaterials.length;t++){const i=this.subMaterials[t];i?(e.materialsUniqueIds.push(i.uniqueId),e.materials.push(i.id)):(e.materialsUniqueIds.push(null),e.materials.push(null))}return e}dispose(e,t,i){const s=this.getScene();if(!s)return;if(i)for(let n=0;n<this.subMaterials.length;n++){const o=this.subMaterials[n];o&&o.dispose(e,t)}const r=s.multiMaterials.indexOf(this);r>=0&&s.multiMaterials.splice(r,1),super.dispose(e,t)}static ParseMultiMaterial(e,t){const i=new tf(e.name,t);return i.id=e.id,i._loadedUniqueId=e.uniqueId,ar&&ar.AddTagsTo(i,e.tags),e.materialsUniqueIds?i._waitingSubMaterialsUniqueIds=e.materialsUniqueIds:e.materials.forEach(s=>i.subMaterials.push(t.getLastMaterialById(s))),i}}ve("BABYLON.MultiMaterial",tf);class jhe{constructor(e,t){this.distanceOrScreenCoverage=e,this.mesh=t}}class rZ{}class qOe{constructor(){this.visibleInstances={},this.batchCache=new nZ,this.batchCacheReplacementModeInFrozenMode=new nZ,this.instancesBufferSize=32*16*4}}class nZ{constructor(){this.mustReturn=!1,this.visibleInstances=new Array,this.renderSelf=[],this.hardwareInstancedRendering=[]}}class QOe{constructor(){this.instancesCount=0,this.matrixBuffer=null,this.previousMatrixBuffer=null,this.matrixBufferSize=32*16,this.matrixData=null,this.boundingVectors=[],this.worldMatrices=null}}class JOe{constructor(){this._areNormalsFrozen=!1,this._source=null,this.meshMap=null,this._preActivateId=-1,this._LODLevels=new Array,this._useLODScreenCoverage=!1,this._effectiveMaterial=null,this._forcedInstanceCount=0,this._overrideRenderingFillMode=null}}const Jx={source:null,parent:null,doNotCloneChildren:!1,clonePhysicsImpostor:!0,cloneThinInstances:!1};class Ne extends cr{static _GetDefaultSideOrientation(e){return e||Ne.FRONTSIDE}get useLODScreenCoverage(){return this._internalMeshDataInfo._useLODScreenCoverage}set useLODScreenCoverage(e){this._internalMeshDataInfo._useLODScreenCoverage=e,this._sortLODLevels()}get computeBonesUsingShaders(){return this._internalAbstractMeshDataInfo._computeBonesUsingShaders}set computeBonesUsingShaders(e){this._internalAbstractMeshDataInfo._computeBonesUsingShaders!==e&&(e&&this._internalMeshDataInfo._sourcePositions&&(this.setVerticesData(q.PositionKind,this._internalMeshDataInfo._sourcePositions,!0),this._internalMeshDataInfo._sourceNormals&&this.setVerticesData(q.NormalKind,this._internalMeshDataInfo._sourceNormals,!0),this._internalMeshDataInfo._sourcePositions=null,this._internalMeshDataInfo._sourceNormals=null),this._internalAbstractMeshDataInfo._computeBonesUsingShaders=e,this._markSubMeshesAsAttributesDirty())}get onBeforeRenderObservable(){return this._internalMeshDataInfo._onBeforeRenderObservable||(this._internalMeshDataInfo._onBeforeRenderObservable=new xe),this._internalMeshDataInfo._onBeforeRenderObservable}get onBeforeBindObservable(){return this._internalMeshDataInfo._onBeforeBindObservable||(this._internalMeshDataInfo._onBeforeBindObservable=new xe),this._internalMeshDataInfo._onBeforeBindObservable}get onAfterRenderObservable(){return this._internalMeshDataInfo._onAfterRenderObservable||(this._internalMeshDataInfo._onAfterRenderObservable=new xe),this._internalMeshDataInfo._onAfterRenderObservable}get onBetweenPassObservable(){return this._internalMeshDataInfo._onBetweenPassObservable||(this._internalMeshDataInfo._onBetweenPassObservable=new xe),this._internalMeshDataInfo._onBetweenPassObservable}get onBeforeDrawObservable(){return this._internalMeshDataInfo._onBeforeDrawObservable||(this._internalMeshDataInfo._onBeforeDrawObservable=new xe),this._internalMeshDataInfo._onBeforeDrawObservable}set onBeforeDraw(e){this._onBeforeDrawObserver&&this.onBeforeDrawObservable.remove(this._onBeforeDrawObserver),this._onBeforeDrawObserver=this.onBeforeDrawObservable.add(e)}get hasInstances(){return this.instances.length>0}get hasThinInstances(){return(this.forcedInstanceCount||this._thinInstanceDataStorage.instancesCount||0)>0}get forcedInstanceCount(){return this._internalMeshDataInfo._forcedInstanceCount}set forcedInstanceCount(e){this._internalMeshDataInfo._forcedInstanceCount=e}get sideOrientation(){return this._internalMeshDataInfo._sideOrientation}set sideOrientation(e){this._internalMeshDataInfo._sideOrientation=e,this._internalAbstractMeshDataInfo._sideOrientationHint=this._scene.useRightHandedSystem&&e===1||!this._scene.useRightHandedSystem&&e===0}get overrideMaterialSideOrientation(){return this.sideOrientation}set overrideMaterialSideOrientation(e){this.sideOrientation=e,this.material&&(this.material.sideOrientation=null)}get overrideRenderingFillMode(){return this._internalMeshDataInfo._overrideRenderingFillMode}set overrideRenderingFillMode(e){this._internalMeshDataInfo._overrideRenderingFillMode=e}get material(){return this._internalAbstractMeshDataInfo._material}set material(e){e&&(this.material&&this.material.sideOrientation===null||this._internalAbstractMeshDataInfo._sideOrientationHint)&&(e.sideOrientation=null),this._setMaterial(e)}get source(){return this._internalMeshDataInfo._source}get cloneMeshMap(){return this._internalMeshDataInfo.meshMap}get isUnIndexed(){return this._unIndexed}set isUnIndexed(e){this._unIndexed!==e&&(this._unIndexed=e,this._markSubMeshesAsAttributesDirty())}get worldMatrixInstancedBuffer(){return this._instanceDataStorage.instancesData}get previousWorldMatrixInstancedBuffer(){return this._instanceDataStorage.instancesPreviousData}get manualUpdateOfWorldMatrixInstancedBuffer(){return this._instanceDataStorage.manualUpdate}set manualUpdateOfWorldMatrixInstancedBuffer(e){this._instanceDataStorage.manualUpdate=e}get manualUpdateOfPreviousWorldMatrixInstancedBuffer(){return this._instanceDataStorage.previousManualUpdate}set manualUpdateOfPreviousWorldMatrixInstancedBuffer(e){this._instanceDataStorage.previousManualUpdate=e}get forceWorldMatrixInstancedBufferUpdate(){return this._instanceDataStorage.forceMatrixUpdates}set forceWorldMatrixInstancedBufferUpdate(e){this._instanceDataStorage.forceMatrixUpdates=e}_copySource(e,t,i=!0,s=!1){var n,o;const r=this.getScene();if(e._geometry&&e._geometry.applyToMesh(this),nu.DeepCopy(e,this,["name","material","skeleton","instances","parent","uniqueId","source","metadata","morphTargetManager","hasInstances","worldMatrixInstancedBuffer","previousWorldMatrixInstancedBuffer","hasLODLevels","geometry","isBlocked","areNormalsFrozen","facetNb","isFacetDataEnabled","lightSources","useBones","isAnInstance","collider","edgesRenderer","forward","up","right","absolutePosition","absoluteScaling","absoluteRotationQuaternion","isWorldMatrixFrozen","nonUniformScaling","behaviors","worldMatrixFromCache","hasThinInstances","cloneMeshMap","hasBoundingInfo","physicsBody","physicsImpostor"],["_poseMatrix"]),this._internalMeshDataInfo._source=e,r.useClonedMeshMap&&(e._internalMeshDataInfo.meshMap||(e._internalMeshDataInfo.meshMap={}),e._internalMeshDataInfo.meshMap[this.uniqueId]=this),this._originalBuilderSideOrientation=e._originalBuilderSideOrientation,this._creationDataStorage=e._creationDataStorage,e._ranges){const l=e._ranges;for(const c in l)Object.prototype.hasOwnProperty.call(l,c)&&l[c]&&this.createAnimationRange(c,l[c].from,l[c].to)}if(e.metadata&&e.metadata.clone?this.metadata=e.metadata.clone():this.metadata=e.metadata,this._internalMetadata=e._internalMetadata,ar&&ar.HasTags(e)&&ar.AddTagsTo(this,ar.GetTags(e,!0)),this.setEnabled(e.isEnabled(!1)),this.parent=e.parent,this.setPivotMatrix(e.getPivotMatrix(),this._postMultiplyPivotMatrix),this.id=this.name+"."+e.id,this.material=e.material,!t){const l=e.getDescendants(!0);for(let c=0;c<l.length;c++){const u=l[c];u._isMesh?(Jx.parent=this,Jx.doNotCloneChildren=t,Jx.clonePhysicsImpostor=i,Jx.cloneThinInstances=s,u.clone(this.name+"."+u.name,Jx)):u.clone&&u.clone(this.name+"."+u.name,this)}}if(e.morphTargetManager&&(this.morphTargetManager=e.morphTargetManager),r.getPhysicsEngine){const l=r.getPhysicsEngine();if(i&&l)if(l.getPluginVersion()===1){const c=l.getImpostorForPhysicsObject(e);c&&(this.physicsImpostor=c.clone(this))}else l.getPluginVersion()===2&&e.physicsBody&&e.physicsBody.clone(this)}for(let l=0;l<r.particleSystems.length;l++){const c=r.particleSystems[l];c.emitter===e&&c.clone(c.name,this)}if(this.skeleton=e.skeleton,s&&(e._thinInstanceDataStorage.matrixData?(this.thinInstanceSetBuffer("matrix",new Float32Array(e._thinInstanceDataStorage.matrixData),16,!e._thinInstanceDataStorage.matrixBuffer.isUpdatable()),this._thinInstanceDataStorage.matrixBufferSize=e._thinInstanceDataStorage.matrixBufferSize,this._thinInstanceDataStorage.instancesCount=e._thinInstanceDataStorage.instancesCount):this._thinInstanceDataStorage.matrixBufferSize=e._thinInstanceDataStorage.matrixBufferSize,e._userThinInstanceBuffersStorage)){const l=e._userThinInstanceBuffersStorage;for(const c in l.data)this.thinInstanceSetBuffer(c,new Float32Array(l.data[c]),l.strides[c],!((o=(n=l.vertexBuffers)==null?void 0:n[c])!=null&&o.isUpdatable())),this._userThinInstanceBuffersStorage.sizes[c]=l.sizes[c]}this.refreshBoundingInfo(!0,!0),this.computeWorldMatrix(!0)}constructor(e,t=null,i=null,s=null,r,n=!0){super(e,t),this._internalMeshDataInfo=new JOe,this.delayLoadState=0,this.instances=[],this._creationDataStorage=null,this._geometry=null,this._instanceDataStorage=new qOe,this._thinInstanceDataStorage=new QOe,this._shouldGenerateFlatShading=!1,this._originalBuilderSideOrientation=Ne.DEFAULTSIDE,this.ignoreCameraMaxZ=!1,t=this.getScene(),this._scene.useRightHandedSystem?this.sideOrientation=0:this.sideOrientation=1,this._onBeforeDraw=(c,u,f)=>{c&&f&&(this._uniformBuffer?this.transferToEffect(u):f.bindOnlyWorldMatrix(u))};let o=null,l=!1;if(i&&i._addToSceneRootNodes===void 0){const c=i;o=c.parent??null,s=c.source??null,r=c.doNotCloneChildren??!1,n=c.clonePhysicsImpostor??!0,l=c.cloneThinInstances??!1}else o=i;s&&this._copySource(s,r,n,l),o!==null&&(this.parent=o),this._instanceDataStorage.hardwareInstancedRendering=this.getEngine().getCaps().instancedArrays,this._internalMeshDataInfo._onMeshReadyObserverAdded=c=>{c.unregisterOnNextCall=!0,this.isReady(!0)?this.onMeshReadyObservable.notifyObservers(this):this._internalMeshDataInfo._checkReadinessObserver||(this._internalMeshDataInfo._checkReadinessObserver=this._scene.onBeforeRenderObservable.add(()=>{this.isReady(!0)&&(this._scene.onBeforeRenderObservable.remove(this._internalMeshDataInfo._checkReadinessObserver),this._internalMeshDataInfo._checkReadinessObserver=null,this.onMeshReadyObservable.notifyObservers(this))}))},this.onMeshReadyObservable=new xe(this._internalMeshDataInfo._onMeshReadyObserverAdded),s&&s.onClonedObservable.notifyObservers(this)}instantiateHierarchy(e=null,t,i){const s=this.getTotalVertices()===0||t&&t.doNotInstantiate&&(t.doNotInstantiate===!0||t.doNotInstantiate(this))?this.clone("Clone of "+(this.name||this.id),e||this.parent,!0):this.createInstance("instance of "+(this.name||this.id));s.parent=e||this.parent,s.position=this.position.clone(),s.scaling=this.scaling.clone(),this.rotationQuaternion?s.rotationQuaternion=this.rotationQuaternion.clone():s.rotation=this.rotation.clone(),i&&i(this,s);for(const r of this.getChildTransformNodes(!0))r.getClassName()==="InstancedMesh"&&s.getClassName()==="Mesh"&&r.sourceMesh===this?r.instantiateHierarchy(s,{doNotInstantiate:t&&t.doNotInstantiate||!1,newSourcedMesh:s},i):r.instantiateHierarchy(s,t,i);return s}getClassName(){return"Mesh"}get _isMesh(){return!0}toString(e){let t=super.toString(e);if(t+=", n vertices: "+this.getTotalVertices(),t+=", parent: "+(this._waitingParentId?this._waitingParentId:this.parent?this.parent.name:"NONE"),this.animations)for(let i=0;i<this.animations.length;i++)t+=", animation[0]: "+this.animations[i].toString(e);if(e)if(this._geometry){const i=this.getIndices(),s=this.getVerticesData(q.PositionKind);s&&i&&(t+=", flat shading: "+(s.length/3===i.length?"YES":"NO"))}else t+=", flat shading: UNKNOWN";return t}_unBindEffect(){super._unBindEffect();for(const e of this.instances)e._unBindEffect()}get hasLODLevels(){return this._internalMeshDataInfo._LODLevels.length>0}getLODLevels(){return this._internalMeshDataInfo._LODLevels}_sortLODLevels(){const e=this._internalMeshDataInfo._useLODScreenCoverage?-1:1;this._internalMeshDataInfo._LODLevels.sort((t,i)=>t.distanceOrScreenCoverage<i.distanceOrScreenCoverage?e:t.distanceOrScreenCoverage>i.distanceOrScreenCoverage?-e:0)}addLODLevel(e,t){if(t&&t._masterMesh)return de.Warn("You cannot use a mesh as LOD level twice"),this;const i=new jhe(e,t);return this._internalMeshDataInfo._LODLevels.push(i),t&&(t._masterMesh=this),this._sortLODLevels(),this}getLODLevelAtDistance(e){const t=this._internalMeshDataInfo;for(let i=0;i<t._LODLevels.length;i++){const s=t._LODLevels[i];if(s.distanceOrScreenCoverage===e)return s.mesh}return null}removeLODLevel(e){const t=this._internalMeshDataInfo;for(let i=0;i<t._LODLevels.length;i++)t._LODLevels[i].mesh===e&&(t._LODLevels.splice(i,1),e&&(e._masterMesh=null));return this._sortLODLevels(),this}getLOD(e,t){const i=this._internalMeshDataInfo;if(!i._LODLevels||i._LODLevels.length===0)return this;const s=t||this.getBoundingInfo().boundingSphere,r=e.mode===_i.ORTHOGRAPHIC_CAMERA?e.minZ:s.centerWorld.subtract(e.globalPosition).length();let n=r,o=1;if(i._useLODScreenCoverage){const l=e.screenArea;let c=s.radiusWorld*e.minZ/r;c=c*c*Math.PI,n=c/l,o=-1}if(o*i._LODLevels[i._LODLevels.length-1].distanceOrScreenCoverage>o*n)return this.onLODLevelSelection&&this.onLODLevelSelection(n,this,this),this;for(let l=0;l<i._LODLevels.length;l++){const c=i._LODLevels[l];if(o*c.distanceOrScreenCoverage<o*n){if(c.mesh){if(c.mesh.delayLoadState===4)return c.mesh._checkDelayState(),this;if(c.mesh.delayLoadState===2)return this;c.mesh._preActivate(),c.mesh._updateSubMeshesBoundingInfo(this.worldMatrixFromCache)}return this.onLODLevelSelection&&this.onLODLevelSelection(n,this,c.mesh),c.mesh}}return this.onLODLevelSelection&&this.onLODLevelSelection(n,this,this),this}get geometry(){return this._geometry}getTotalVertices(){return this._geometry===null||this._geometry===void 0?0:this._geometry.getTotalVertices()}getVerticesData(e,t,i,s){var n,o;if(!this._geometry)return null;let r=s||(o=(n=this._userInstancedBuffersStorage)==null?void 0:n.vertexBuffers[e])==null?void 0:o.getFloatData(this.instances.length+1,i||t&&this._geometry.meshes.length!==1);return r||(r=this._geometry.getVerticesData(e,t,i)),r}copyVerticesData(e,t){this._geometry&&this._geometry.copyVerticesData(e,t)}getVertexBuffer(e,t){var i;return this._geometry?(t||(i=this._userInstancedBuffersStorage)==null?void 0:i.vertexBuffers[e])??this._geometry.getVertexBuffer(e):null}isVerticesDataPresent(e,t){var i;return this._geometry?!t&&((i=this._userInstancedBuffersStorage)==null?void 0:i.vertexBuffers[e])!==void 0||this._geometry.isVerticesDataPresent(e):this._delayInfo?this._delayInfo.indexOf(e)!==-1:!1}isVertexBufferUpdatable(e,t){var i;if(!this._geometry)return this._delayInfo?this._delayInfo.indexOf(e)!==-1:!1;if(!t){const s=(i=this._userInstancedBuffersStorage)==null?void 0:i.vertexBuffers[e];if(s)return s.isUpdatable()}return this._geometry.isVertexBufferUpdatable(e)}getVerticesDataKinds(e){if(!this._geometry){const i=[];return this._delayInfo&&this._delayInfo.forEach(function(s){i.push(s)}),i}const t=this._geometry.getVerticesDataKinds();if(!e&&this._userInstancedBuffersStorage)for(const i in this._userInstancedBuffersStorage.vertexBuffers)t.indexOf(i)===-1&&t.push(i);return t}getTotalIndices(){return this._geometry?this._geometry.getTotalIndices():0}getIndices(e,t){return this._geometry?this._geometry.getIndices(e,t):[]}get isBlocked(){return this._masterMesh!==null&&this._masterMesh!==void 0}isReady(e=!1,t=!1){var l,c,u,f,p;if(this.delayLoadState===2||!super.isReady(e))return!1;if(!this.subMeshes||this.subMeshes.length===0||!e)return!0;const i=this.getEngine(),s=this.getScene(),r=t||i.getCaps().instancedArrays&&(this.instances.length>0||this.hasThinInstances);this.computeWorldMatrix();const n=this.material||s.defaultMaterial;if(n){if(n._storeEffectOnSubMeshes)for(const m of this.subMeshes){const _=m.getMaterial();if(_){if(_._storeEffectOnSubMeshes){if(!_.isReadyForSubMesh(this,m,r))return!1}else if(!_.isReady(this,r))return!1}}else if(!n.isReady(this,r))return!1}const o=i.currentRenderPassId;for(const m of this.lightSources){const _=m.getShadowGenerators();if(!_)continue;const d=_.values();for(let h=d.next();h.done!==!0;h=d.next()){const x=h.value;if(x&&(!((l=x.getShadowMap())!=null&&l.renderList)||(c=x.getShadowMap())!=null&&c.renderList&&((f=(u=x.getShadowMap())==null?void 0:u.renderList)==null?void 0:f.indexOf(this))!==-1)){const S=x.getShadowMap().renderPassIds??[i.currentRenderPassId];for(let E=0;E<S.length;++E){i.currentRenderPassId=S[E];for(const b of this.subMeshes)if(!x.isReady(b,r,((p=b.getMaterial())==null?void 0:p.needAlphaBlendingForMesh(this))??!1))return i.currentRenderPassId=o,!1}i.currentRenderPassId=o}}}for(const m of this._internalMeshDataInfo._LODLevels)if(m.mesh&&!m.mesh.isReady(r))return!1;return!0}get areNormalsFrozen(){return this._internalMeshDataInfo._areNormalsFrozen}freezeNormals(){return this._internalMeshDataInfo._areNormalsFrozen=!0,this}unfreezeNormals(){return this._internalMeshDataInfo._areNormalsFrozen=!1,this}set overridenInstanceCount(e){this._instanceDataStorage.overridenInstanceCount=e}_preActivate(){const e=this._internalMeshDataInfo,t=this.getScene().getRenderId();return e._preActivateId===t?this:(e._preActivateId=t,this._instanceDataStorage.visibleInstances=null,this)}_preActivateForIntermediateRendering(e){return this._instanceDataStorage.visibleInstances&&(this._instanceDataStorage.visibleInstances.intermediateDefaultRenderId=e),this}_registerInstanceForRenderId(e,t){return this._instanceDataStorage.visibleInstances||(this._instanceDataStorage.visibleInstances={defaultRenderId:t,selfDefaultRenderId:this._renderId}),this._instanceDataStorage.visibleInstances[t]||(this._instanceDataStorage.previousRenderId!==void 0&&this._instanceDataStorage.isFrozen&&(this._instanceDataStorage.visibleInstances[this._instanceDataStorage.previousRenderId]=null),this._instanceDataStorage.previousRenderId=t,this._instanceDataStorage.visibleInstances[t]=new Array),this._instanceDataStorage.visibleInstances[t].push(e),this}_afterComputeWorldMatrix(){super._afterComputeWorldMatrix(),this.hasThinInstances&&(this.doNotSyncBoundingInfo||this.thinInstanceRefreshBoundingInfo(!1))}_postActivate(){this.edgesShareWithInstances&&this.edgesRenderer&&this.edgesRenderer.isEnabled&&this._renderingGroup&&(this._renderingGroup._edgesRenderers.pushNoDuplicate(this.edgesRenderer),this.edgesRenderer.customInstances.push(this.getWorldMatrix()))}refreshBoundingInfo(e=!1,t=!1){if(this.hasBoundingInfo&&this.getBoundingInfo().isLocked)return this;let i;typeof e=="object"?i=e:i={applySkeleton:e,applyMorph:t};const s=this.geometry?this.geometry.boundingBias:null;return this._refreshBoundingInfo(this._getData(i,null,q.PositionKind),s),this}_createGlobalSubMesh(e){const t=this.getTotalVertices();if(!t||!this.getIndices())return null;if(this.subMeshes&&this.subMeshes.length>0){const i=this.getIndices();if(!i)return null;const s=i.length;let r=!1;if(e)r=!0;else for(const n of this.subMeshes){if(n.indexStart+n.indexCount>s){r=!0;break}if(n.verticesStart+n.verticesCount>t){r=!0;break}}if(!r)return this.subMeshes[0]}return this.releaseSubMeshes(),new Lc(0,0,t,0,this.getTotalIndices()||t,this)}subdivide(e){if(e<1)return;const t=this.getTotalIndices();let i=t/e|0,s=0;for(;i%3!==0;)i++;this.releaseSubMeshes();for(let r=0;r<e&&!(s>=t);r++)Lc.CreateFromIndices(0,s,r===e-1?t-s:i,this,void 0,!1),s+=i;this.refreshBoundingInfo(),this.synchronizeInstances()}setVerticesData(e,t,i=!1,s){if(this._geometry)this._geometry.setVerticesData(e,t,i,s);else{const r=new wt;r.set(t,e);const n=this.getScene();new Rl(Rl.RandomId(),n,r,i,this)}return this}removeVerticesData(e){this._geometry&&this._geometry.removeVerticesData(e)}markVerticesDataAsUpdatable(e,t=!0){const i=this.getVertexBuffer(e);!i||i.isUpdatable()===t||this.setVerticesData(e,this.getVerticesData(e),t)}setVerticesBuffer(e,t=!0){return this._geometry||(this._geometry=Rl.CreateGeometryForMesh(this)),this._geometry.setVerticesBuffer(e,null,t),this}updateVerticesData(e,t,i,s){return this._geometry?(s?(this.makeGeometryUnique(),this.updateVerticesData(e,t,i,!1)):this._geometry.updateVerticesData(e,t,i),this):this}updateMeshPositions(e,t=!0){const i=this.getVerticesData(q.PositionKind);if(!i)return this;if(e(i),this.updateVerticesData(q.PositionKind,i,!1,!1),t){const s=this.getIndices(),r=this.getVerticesData(q.NormalKind);if(!r)return this;wt.ComputeNormals(i,s,r),this.updateVerticesData(q.NormalKind,r,!1,!1)}return this}makeGeometryUnique(){if(!this._geometry)return this;if(this._geometry.meshes.length===1)return this;const e=this._geometry,t=this._geometry.copy(Rl.RandomId());return e.releaseForMesh(this,!0),t.applyToMesh(this),this}setIndexBuffer(e,t,i,s=null){let r=this._geometry;r||(r=new Rl(Rl.RandomId(),this.getScene(),void 0,void 0,this)),r.setIndexBuffer(e,t,i,s)}setIndices(e,t=null,i=!1,s=!1){if(this._geometry)this._geometry.setIndices(e,t,i,s);else{const r=new wt;r.indices=e;const n=this.getScene();new Rl(Rl.RandomId(),n,r,i,this)}return this}updateIndices(e,t,i=!1){return this._geometry?(this._geometry.updateIndices(e,t,i),this):this}toLeftHanded(){return this._geometry?(this._geometry.toLeftHanded(),this):this}_bind(e,t,i,s=!0){if(!this._geometry)return this;const r=this.getScene().getEngine();let n;if(this._unIndexed)switch(this._getRenderingFillMode(i)){case ft.WireFrameFillMode:n=e._getLinesIndexBuffer(this.getIndices(),r);break;default:n=null;break}else switch(this._getRenderingFillMode(i)){case ft.PointFillMode:n=null;break;case ft.WireFrameFillMode:n=e._getLinesIndexBuffer(this.getIndices(),r);break;default:case ft.TriangleFillMode:n=this._geometry.getIndexBuffer();break}return this._bindDirect(t,n,s)}_bindDirect(e,t,i=!0){return this._geometry?(this.morphTargetManager&&this.morphTargetManager.isUsingTextureForTargets&&this.morphTargetManager._bind(e),!i||!this._userInstancedBuffersStorage||this.hasThinInstances?this._geometry._bind(e,t):this._geometry._bind(e,t,this._userInstancedBuffersStorage.vertexBuffers,this._userInstancedBuffersStorage.vertexArrayObjects),this):this}_draw(e,t,i){if(!this._geometry||!this._geometry.getVertexBuffers()||!this._unIndexed&&!this._geometry.getIndexBuffer())return this;this._internalMeshDataInfo._onBeforeDrawObservable&&this._internalMeshDataInfo._onBeforeDrawObservable.notifyObservers(this);const r=this.getScene().getEngine();return this._unIndexed&&t!==ft.WireFrameFillMode||t==ft.PointFillMode?r.drawArraysType(t,e.verticesStart,e.verticesCount,this.forcedInstanceCount||i):t==ft.WireFrameFillMode?r.drawElementsType(t,0,e._linesIndexCount,this.forcedInstanceCount||i):r.drawElementsType(t,e.indexStart,e.indexCount,this.forcedInstanceCount||i),this}registerBeforeRender(e){return this.onBeforeRenderObservable.add(e),this}unregisterBeforeRender(e){return this.onBeforeRenderObservable.removeCallback(e),this}registerAfterRender(e){return this.onAfterRenderObservable.add(e),this}unregisterAfterRender(e){return this.onAfterRenderObservable.removeCallback(e),this}_getInstancesRenderList(e,t=!1){if(this._instanceDataStorage.isFrozen){if(t)return this._instanceDataStorage.batchCacheReplacementModeInFrozenMode.hardwareInstancedRendering[e]=!1,this._instanceDataStorage.batchCacheReplacementModeInFrozenMode.renderSelf[e]=!0,this._instanceDataStorage.batchCacheReplacementModeInFrozenMode;if(this._instanceDataStorage.previousBatch)return this._instanceDataStorage.previousBatch}const i=this.getScene(),s=i._isInIntermediateRendering(),r=s?this._internalAbstractMeshDataInfo._onlyForInstancesIntermediate:this._internalAbstractMeshDataInfo._onlyForInstances,n=this._instanceDataStorage.batchCache;if(n.mustReturn=!1,n.renderSelf[e]=t||!r&&this.isEnabled()&&this.isVisible,n.visibleInstances[e]=null,this._instanceDataStorage.visibleInstances&&!t){const o=this._instanceDataStorage.visibleInstances,l=i.getRenderId(),c=s?o.intermediateDefaultRenderId:o.defaultRenderId;n.visibleInstances[e]=o[l],!n.visibleInstances[e]&&c&&(n.visibleInstances[e]=o[c])}return n.hardwareInstancedRendering[e]=!t&&this._instanceDataStorage.hardwareInstancedRendering&&n.visibleInstances[e]!==null&&n.visibleInstances[e]!==void 0,this._instanceDataStorage.previousBatch=n,n}_updateInstancedBuffers(e,t,i,s,r,n){var h;const o=t.visibleInstances[e._id],l=o?o.length:0,c=this._instanceDataStorage;let u=c.instancesBuffer,f=c.instancesPreviousBuffer,p=0,m=0;const _=t.renderSelf[e._id],d=!u||i!==c.instancesBufferSize||this._scene.needsPreviousWorldMatrices&&!c.instancesPreviousBuffer;if(!this._instanceDataStorage.manualUpdate&&(!c.isFrozen||d)){const x=this.getWorldMatrix();if(_&&(this._scene.needsPreviousWorldMatrices&&(c.masterMeshPreviousWorldMatrix?(c.masterMeshPreviousWorldMatrix.copyToArray(c.instancesPreviousData,p),c.masterMeshPreviousWorldMatrix.copyFrom(x)):(c.masterMeshPreviousWorldMatrix=x.clone(),c.masterMeshPreviousWorldMatrix.copyToArray(c.instancesPreviousData,p))),x.copyToArray(c.instancesData,p),p+=16,m++),o){if(Ne.INSTANCEDMESH_SORT_TRANSPARENT&&this._scene.activeCamera&&((h=e.getMaterial())!=null&&h.needAlphaBlendingForMesh(e.getRenderingMesh()))){const A=this._scene.activeCamera.globalPosition;for(let S=0;S<o.length;S++){const E=o[S];E._distanceToCamera=P.Distance(E.getBoundingInfo().boundingSphere.centerWorld,A)}o.sort((S,E)=>S._distanceToCamera>E._distanceToCamera?-1:S._distanceToCamera<E._distanceToCamera?1:0)}for(let A=0;A<o.length;A++){const S=o[A],E=S.getWorldMatrix();E.copyToArray(c.instancesData,p),this._scene.needsPreviousWorldMatrices&&(S._previousWorldMatrix?(S._previousWorldMatrix.copyToArray(c.instancesPreviousData,p),S._previousWorldMatrix.copyFrom(E)):(S._previousWorldMatrix=E.clone(),S._previousWorldMatrix.copyToArray(c.instancesPreviousData,p))),p+=16,m++}}}else m=(_?1:0)+l;d?(u&&u.dispose(),f&&f.dispose(),u=new fl(s,c.instancesData,!0,16,!1,!0),c.instancesBuffer=u,this._userInstancedBuffersStorage||(this._userInstancedBuffersStorage={data:{},vertexBuffers:{},strides:{},sizes:{},vertexArrayObjects:this.getEngine().getCaps().vertexArrayObject?{}:void 0}),this._userInstancedBuffersStorage.vertexBuffers.world0=u.createVertexBuffer("world0",0,4),this._userInstancedBuffersStorage.vertexBuffers.world1=u.createVertexBuffer("world1",4,4),this._userInstancedBuffersStorage.vertexBuffers.world2=u.createVertexBuffer("world2",8,4),this._userInstancedBuffersStorage.vertexBuffers.world3=u.createVertexBuffer("world3",12,4),this._scene.needsPreviousWorldMatrices&&(f=new fl(s,c.instancesPreviousData,!0,16,!1,!0),c.instancesPreviousBuffer=f,this._userInstancedBuffersStorage.vertexBuffers.previousWorld0=f.createVertexBuffer("previousWorld0",0,4),this._userInstancedBuffersStorage.vertexBuffers.previousWorld1=f.createVertexBuffer("previousWorld1",4,4),this._userInstancedBuffersStorage.vertexBuffers.previousWorld2=f.createVertexBuffer("previousWorld2",8,4),this._userInstancedBuffersStorage.vertexBuffers.previousWorld3=f.createVertexBuffer("previousWorld3",12,4)),this._invalidateInstanceVertexArrayObject()):(!this._instanceDataStorage.isFrozen||this._instanceDataStorage.forceMatrixUpdates)&&(u.updateDirectly(c.instancesData,0,m),this._scene.needsPreviousWorldMatrices&&(!this._instanceDataStorage.manualUpdate||this._instanceDataStorage.previousManualUpdate)&&f.updateDirectly(c.instancesPreviousData,0,m)),this._processInstancedBuffers(o,_),n&&r!==void 0&&(this.getScene()._activeIndices.addCount(e.indexCount*m,!1),s._currentDrawContext&&(s._currentDrawContext.useInstancing=!0),this._bind(e,n,r),this._draw(e,r,m)),this._scene.needsPreviousWorldMatrices&&!d&&this._instanceDataStorage.manualUpdate&&(!this._instanceDataStorage.isFrozen||this._instanceDataStorage.forceMatrixUpdates)&&!this._instanceDataStorage.previousManualUpdate&&f.updateDirectly(c.instancesData,0,m)}_renderWithInstances(e,t,i,s,r){const n=i.visibleInstances[e._id],o=n?n.length:0,l=this._instanceDataStorage,c=l.instancesBufferSize,f=(o+1)*16*4;for(;l.instancesBufferSize<f;)l.instancesBufferSize*=2;return(!l.instancesData||c!=l.instancesBufferSize)&&(l.instancesData=new Float32Array(l.instancesBufferSize/4)),(this._scene.needsPreviousWorldMatrices&&!l.instancesPreviousData||c!=l.instancesBufferSize)&&(l.instancesPreviousData=new Float32Array(l.instancesBufferSize/4)),this._updateInstancedBuffers(e,i,c,r,t,s),r.unbindInstanceAttributes(),this}_renderWithThinInstances(e,t,i,s){var n;const r=((n=this._thinInstanceDataStorage)==null?void 0:n.instancesCount)??0;this.getScene()._activeIndices.addCount(e.indexCount*r,!1),s._currentDrawContext&&(s._currentDrawContext.useInstancing=!0),this._bind(e,i,t),this._draw(e,t,r),this._scene.needsPreviousWorldMatrices&&!this._thinInstanceDataStorage.previousMatrixData&&this._thinInstanceDataStorage.matrixData&&(this._thinInstanceDataStorage.previousMatrixBuffer?this._thinInstanceDataStorage.previousMatrixBuffer.updateDirectly(this._thinInstanceDataStorage.matrixData,0,r):this._thinInstanceDataStorage.previousMatrixBuffer=this._thinInstanceCreateMatrixBuffer("previousWorld",this._thinInstanceDataStorage.matrixData,!1)),s.unbindInstanceAttributes()}_processInstancedBuffers(e,t){}_processRendering(e,t,i,s,r,n,o,l){const c=this.getScene(),u=c.getEngine();if(s=this._getRenderingFillMode(s),n&&t.getRenderingMesh().hasThinInstances)return this._renderWithThinInstances(t,s,i,u),this;if(n)this._renderWithInstances(t,s,r,i,u);else{u._currentDrawContext&&(u._currentDrawContext.useInstancing=!1);let f=0;r.renderSelf[t._id]&&(o&&o(!1,e.getWorldMatrix(),l),f++,this._draw(t,s,this._instanceDataStorage.overridenInstanceCount));const p=r.visibleInstances[t._id];if(p){const m=p.length;f+=m;for(let _=0;_<m;_++){const h=p[_].getWorldMatrix();o&&o(!0,h,l),this._draw(t,s)}}c._activeIndices.addCount(t.indexCount*f,!1)}return this}_rebuild(e=!1){if(this._instanceDataStorage.instancesBuffer&&(e&&this._instanceDataStorage.instancesBuffer.dispose(),this._instanceDataStorage.instancesBuffer=null),this._userInstancedBuffersStorage){for(const t in this._userInstancedBuffersStorage.vertexBuffers){const i=this._userInstancedBuffersStorage.vertexBuffers[t];i&&(e&&i.dispose(),this._userInstancedBuffersStorage.vertexBuffers[t]=null)}this._userInstancedBuffersStorage.vertexArrayObjects&&(this._userInstancedBuffersStorage.vertexArrayObjects={})}this._internalMeshDataInfo._effectiveMaterial=null,super._rebuild(e)}_freeze(){if(this.subMeshes){for(let e=0;e<this.subMeshes.length;e++)this._getInstancesRenderList(e);this._internalMeshDataInfo._effectiveMaterial=null,this._instanceDataStorage.isFrozen=!0}}_unFreeze(){this._instanceDataStorage.isFrozen=!1,this._instanceDataStorage.previousBatch=null}renderWithRenderPassId(e,t,i,s,r=!0){const n=this._scene.getEngine(),o=n.currentRenderPassId;if(e!==void 0&&(n.currentRenderPassId=e),s)(!r||r&&s.isInFrustum(this._scene._frustumPlanes))&&this.render(s,!!t,i);else for(let l=0;l<this.subMeshes.length;l++){const c=this.subMeshes[l];(!r||r&&c.isInFrustum(this._scene._frustumPlanes))&&this.render(c,!!t,i)}return e!==void 0&&(n.currentRenderPassId=o),this}directRender(){if(!this.subMeshes)return this;for(const e of this.subMeshes)this.render(e,!1);return this}render(e,t,i){var T,O;const s=this.getScene();this._internalAbstractMeshDataInfo._isActiveIntermediate?this._internalAbstractMeshDataInfo._isActiveIntermediate=!1:this._internalAbstractMeshDataInfo._isActive=!1;const r=((T=s.activeCameras)==null?void 0:T.length)??0;if((r>1&&s.activeCamera===s.activeCameras[0]||r<=1)&&this._checkOcclusionQuery()&&!this._occlusionDataStorage.forceRenderingWhenOccluded)return this;const o=this._getInstancesRenderList(e._id,!!i);if(o.mustReturn)return this;if(!this._geometry||!this._geometry.getVertexBuffers()||!this._unIndexed&&!this._geometry.getIndexBuffer())return this;const l=s.getEngine();let c=0,u=null;this.ignoreCameraMaxZ&&s.activeCamera&&!s._isInIntermediateRendering()&&(c=s.activeCamera.maxZ,u=s.activeCamera,s.activeCamera.maxZ=0,s.updateTransformMatrix(!0)),this._internalMeshDataInfo._onBeforeRenderObservable&&this._internalMeshDataInfo._onBeforeRenderObservable.notifyObservers(this);const f=e.getRenderingMesh(),p=o.hardwareInstancedRendering[e._id]||f.hasThinInstances||!!this._userInstancedBuffersStorage&&!e.getMesh()._internalAbstractMeshDataInfo._actAsRegularMesh,m=this._instanceDataStorage,_=e.getMaterial();if(!_)return u&&(u.maxZ=c,s.updateTransformMatrix(!0)),this;if(!m.isFrozen||!this._internalMeshDataInfo._effectiveMaterial||this._internalMeshDataInfo._effectiveMaterial!==_){if(_._storeEffectOnSubMeshes){if(!_.isReadyForSubMesh(this,e,p))return u&&(u.maxZ=c,s.updateTransformMatrix(!0)),this}else if(!_.isReady(this,p))return u&&(u.maxZ=c,s.updateTransformMatrix(!0)),this;this._internalMeshDataInfo._effectiveMaterial=_}else if(_._storeEffectOnSubMeshes&&!((O=e._drawWrapper)!=null&&O._wasPreviouslyReady)||!_._storeEffectOnSubMeshes&&!_._getDrawWrapper()._wasPreviouslyReady)return u&&(u.maxZ=c,s.updateTransformMatrix(!0)),this;t&&l.setAlphaMode(this._internalMeshDataInfo._effectiveMaterial.alphaMode);let d;this._internalMeshDataInfo._effectiveMaterial._storeEffectOnSubMeshes?d=e._drawWrapper:d=this._internalMeshDataInfo._effectiveMaterial._getDrawWrapper();const h=(d==null?void 0:d.effect)??null;for(const R of s._beforeRenderingMeshStage)R.action(this,e,o,h);if(!d||!h)return u&&(u.maxZ=c,s.updateTransformMatrix(!0)),this;const x=i||this;let A;if(!m.isFrozen&&(this._internalMeshDataInfo._effectiveMaterial.backFaceCulling||this._internalMeshDataInfo._effectiveMaterial.sideOrientation!==null||this._internalMeshDataInfo._effectiveMaterial.twoSidedLighting)){const R=x._getWorldMatrixDeterminant();A=this._internalMeshDataInfo._effectiveMaterial._getEffectiveOrientation(this),R<0&&(A=A===ft.ClockWiseSideOrientation?ft.CounterClockWiseSideOrientation:ft.ClockWiseSideOrientation),m.sideOrientation=A}else A=m.sideOrientation;const S=this._internalMeshDataInfo._effectiveMaterial._preBind(d,A);this._internalMeshDataInfo._effectiveMaterial.forceDepthWrite&&l.setDepthWrite(!0);const E=this._internalMeshDataInfo._effectiveMaterial,b=E.fillMode;this._internalMeshDataInfo._onBeforeBindObservable&&this._internalMeshDataInfo._onBeforeBindObservable.notifyObservers(this),p||this._bind(e,h,b,!1);const M=x.getWorldMatrix();E._storeEffectOnSubMeshes?E.bindForSubMesh(M,this,e):E.bind(M,this),!E.backFaceCulling&&E.separateCullingPass&&(l.setState(!0,E.zOffset,!1,!S,E.cullBackFaces,E.stencil,E.zOffsetUnits),this._processRendering(this,e,h,b,o,p,this._onBeforeDraw,this._internalMeshDataInfo._effectiveMaterial),l.setState(!0,E.zOffset,!1,S,E.cullBackFaces,E.stencil,E.zOffsetUnits),this._internalMeshDataInfo._onBetweenPassObservable&&this._internalMeshDataInfo._onBetweenPassObservable.notifyObservers(e)),this._processRendering(this,e,h,b,o,p,this._onBeforeDraw,this._internalMeshDataInfo._effectiveMaterial),this._internalMeshDataInfo._effectiveMaterial.unbind();for(const R of s._afterRenderingMeshStage)R.action(this,e,o,h);return this._internalMeshDataInfo._onAfterRenderObservable&&this._internalMeshDataInfo._onAfterRenderObservable.notifyObservers(this),u&&(u.maxZ=c,s.updateTransformMatrix(!0)),s.performancePriority===2&&!m.isFrozen&&this._freeze(),this}cleanMatrixWeights(){this.isVerticesDataPresent(q.MatricesWeightsKind)&&(this.isVerticesDataPresent(q.MatricesWeightsExtraKind)?this._normalizeSkinWeightsAndExtra():this._normalizeSkinFourWeights())}_normalizeSkinFourWeights(){const e=this.getVerticesData(q.MatricesWeightsKind),t=e.length;for(let i=0;i<t;i+=4){const s=e[i]+e[i+1]+e[i+2]+e[i+3];if(s===0)e[i]=1;else{const r=1/s;e[i]*=r,e[i+1]*=r,e[i+2]*=r,e[i+3]*=r}}this.setVerticesData(q.MatricesWeightsKind,e)}_normalizeSkinWeightsAndExtra(){const e=this.getVerticesData(q.MatricesWeightsExtraKind),t=this.getVerticesData(q.MatricesWeightsKind),i=t.length;for(let s=0;s<i;s+=4){let r=t[s]+t[s+1]+t[s+2]+t[s+3];if(r+=e[s]+e[s+1]+e[s+2]+e[s+3],r===0)t[s]=1;else{const n=1/r;t[s]*=n,t[s+1]*=n,t[s+2]*=n,t[s+3]*=n,e[s]*=n,e[s+1]*=n,e[s+2]*=n,e[s+3]*=n}}this.setVerticesData(q.MatricesWeightsKind,t),this.setVerticesData(q.MatricesWeightsKind,e)}validateSkinning(){const e=this.getVerticesData(q.MatricesWeightsExtraKind),t=this.getVerticesData(q.MatricesWeightsKind);if(t===null||this.skeleton==null)return{skinned:!1,valid:!0,report:"not skinned"};const i=t.length;let s=0,r=0,n=0,o=0;const l=e===null?4:8,c=[];for(let h=0;h<=l;h++)c[h]=0;const u=.001;for(let h=0;h<i;h+=4){let x=t[h],A=x,S=A===0?0:1;for(let E=1;E<l;E++){const b=E<4?t[h+E]:e[h+E-4];b>x&&s++,b!==0&&S++,A+=b,x=b}if(c[S]++,S>n&&(n=S),A===0)r++;else{const E=1/A;let b=0;for(let M=0;M<l;M++)M<4?b+=Math.abs(t[h+M]-t[h+M]*E):b+=Math.abs(e[h+M-4]-e[h+M-4]*E);b>u&&o++}}const f=this.skeleton.bones.length,p=this.getVerticesData(q.MatricesIndicesKind),m=this.getVerticesData(q.MatricesIndicesExtraKind);let _=0;for(let h=0;h<i;h+=4)for(let x=0;x<l;x++){const A=x<4?p[h+x]:m[h+x-4];(A>=f||A<0)&&_++}const d="Number of Weights = "+i/4+`
Maximum influences = `+n+`
Missing Weights = `+r+`
Not Sorted = `+s+`
Not Normalized = `+o+`
WeightCounts = [`+c+`]
Number of bones = `+f+`
Bad Bone Indices = `+_;return{skinned:!0,valid:r===0&&o===0&&_===0,report:d}}_checkDelayState(){const e=this.getScene();return this._geometry?this._geometry.load(e):this.delayLoadState===4&&(this.delayLoadState=2,this._queueLoad(e)),this}_queueLoad(e){e.addPendingData(this);const t=this.delayLoadingFile.indexOf(".babylonbinarymeshdata")!==-1;return Le.LoadFile(this.delayLoadingFile,i=>{i instanceof ArrayBuffer?this._delayLoadingFunction(i,this):this._delayLoadingFunction(JSON.parse(i),this),this.instances.forEach(s=>{s.refreshBoundingInfo(),s._syncSubMeshes()}),this.delayLoadState=1,e.removePendingData(this)},()=>{},e.offlineProvider,t),this}isInFrustum(e){return this.delayLoadState===2||!super.isInFrustum(e)?!1:(this._checkDelayState(),!0)}setMaterialById(e){const t=this.getScene().materials;let i;for(i=t.length-1;i>-1;i--)if(t[i].id===e)return this.material=t[i],this;const s=this.getScene().multiMaterials;for(i=s.length-1;i>-1;i--)if(s[i].id===e)return this.material=s[i],this;return this}getAnimatables(){const e=[];return this.material&&e.push(this.material),this.skeleton&&e.push(this.skeleton),e}bakeTransformIntoVertices(e){if(!this.isVerticesDataPresent(q.PositionKind))return this;const t=this.subMeshes.splice(0);this._resetPointsArrayCache();let i=this.getVerticesData(q.PositionKind);const s=P.Zero();let r;for(r=0;r<i.length;r+=3)P.TransformCoordinatesFromFloatsToRef(i[r],i[r+1],i[r+2],e,s).toArray(i,r);if(this.setVerticesData(q.PositionKind,i,this.getVertexBuffer(q.PositionKind).isUpdatable()),this.isVerticesDataPresent(q.NormalKind)){for(i=this.getVerticesData(q.NormalKind),r=0;r<i.length;r+=3)P.TransformNormalFromFloatsToRef(i[r],i[r+1],i[r+2],e,s).normalize().toArray(i,r);this.setVerticesData(q.NormalKind,i,this.getVertexBuffer(q.NormalKind).isUpdatable())}if(this.isVerticesDataPresent(q.TangentKind)){for(i=this.getVerticesData(q.TangentKind),r=0;r<i.length;r+=4)P.TransformNormalFromFloatsToRef(i[r],i[r+1],i[r+2],e,s).normalize().toArray(i,r);this.setVerticesData(q.TangentKind,i,this.getVertexBuffer(q.TangentKind).isUpdatable())}return e.determinant()<0&&this.flipFaces(),this.releaseSubMeshes(),this.subMeshes=t,this}bakeCurrentTransformIntoVertices(e=!0,t=!1){return t&&this.makeGeometryUnique(),this.bakeTransformIntoVertices(this.computeWorldMatrix(!0)),this.resetLocalMatrix(e),this}get _positions(){return this._internalAbstractMeshDataInfo._positions||this._geometry&&this._geometry._positions||null}_resetPointsArrayCache(){return this._geometry&&this._geometry._resetPointsArrayCache(),this}_generatePointsArray(){return this._geometry?this._geometry._generatePointsArray():!1}clone(e="",t=null,i,s=!0){if(t&&t._addToSceneRootNodes===void 0){const r=t;return Jx.source=this,Jx.doNotCloneChildren=r.doNotCloneChildren,Jx.clonePhysicsImpostor=r.clonePhysicsImpostor,Jx.cloneThinInstances=r.cloneThinInstances,new Ne(e,this.getScene(),Jx)}return new Ne(e,this.getScene(),t,this,i,s)}dispose(e,t=!1){this.morphTargetManager=null,this._geometry&&this._geometry.releaseForMesh(this,!0);const i=this._internalMeshDataInfo;if(i._onBeforeDrawObservable&&i._onBeforeDrawObservable.clear(),i._onBeforeBindObservable&&i._onBeforeBindObservable.clear(),i._onBeforeRenderObservable&&i._onBeforeRenderObservable.clear(),i._onAfterRenderObservable&&i._onAfterRenderObservable.clear(),i._onBetweenPassObservable&&i._onBetweenPassObservable.clear(),this._scene.useClonedMeshMap){if(i.meshMap)for(const s in i.meshMap){const r=i.meshMap[s];r&&(r._internalMeshDataInfo._source=null,i.meshMap[s]=void 0)}i._source&&i._source._internalMeshDataInfo.meshMap&&(i._source._internalMeshDataInfo.meshMap[this.uniqueId]=void 0)}else{const s=this.getScene().meshes;for(const r of s){const n=r;n._internalMeshDataInfo&&n._internalMeshDataInfo._source&&n._internalMeshDataInfo._source===this&&(n._internalMeshDataInfo._source=null)}}i._source=null,this._instanceDataStorage.visibleInstances={},this._disposeInstanceSpecificData(),this._disposeThinInstanceSpecificData(),this._internalMeshDataInfo._checkReadinessObserver&&this._scene.onBeforeRenderObservable.remove(this._internalMeshDataInfo._checkReadinessObserver),super.dispose(e,t)}_disposeInstanceSpecificData(){}_disposeThinInstanceSpecificData(){}_invalidateInstanceVertexArrayObject(){}applyDisplacementMap(e,t,i,s,r,n,o=!1,l){const c=this.getScene(),u=f=>{const p=f.width,m=f.height,d=this.getEngine().createCanvas(p,m).getContext("2d");d.drawImage(f,0,0);const h=d.getImageData(0,0,p,m).data;this.applyDisplacementMapFromBuffer(h,p,m,t,i,r,n,o),s&&s(this)};return Le.LoadImage(e,u,l||(()=>{}),c.offlineProvider),this}applyDisplacementMapFromBuffer(e,t,i,s,r,n,o,l=!1){if(!this.isVerticesDataPresent(q.PositionKind)||!this.isVerticesDataPresent(q.NormalKind)||!this.isVerticesDataPresent(q.UVKind))return de.Warn("Cannot call applyDisplacementMap: Given mesh is not complete. Position, Normal or UV are missing"),this;const c=this.getVerticesData(q.PositionKind,!0,!0),u=this.getVerticesData(q.NormalKind),f=this.getVerticesData(q.UVKind);let p=P.Zero();const m=P.Zero(),_=Ue.Zero();n=n||Ue.Zero(),o=o||new Ue(1,1);for(let d=0;d<c.length;d+=3){P.FromArrayToRef(c,d,p),P.FromArrayToRef(u,d,m),Ue.FromArrayToRef(f,d/3*2,_);const h=Math.abs(_.x*o.x+n.x%1)*(t-1)%t|0,x=Math.abs(_.y*o.y+n.y%1)*(i-1)%i|0,A=(h+x*t)*4,S=e[A]/255,E=e[A+1]/255,b=e[A+2]/255,M=S*.3+E*.59+b*.11;m.normalize(),m.scaleInPlace(s+(r-s)*M),p=p.add(m),p.toArray(c,d)}return wt.ComputeNormals(c,this.getIndices(),u),l?(this.setVerticesData(q.PositionKind,c),this.setVerticesData(q.NormalKind,u),this.setVerticesData(q.UVKind,f)):(this.updateVerticesData(q.PositionKind,c),this.updateVerticesData(q.NormalKind,u)),this}_getFlattenedNormals(e,t){const i=new Float32Array(e.length*3);let s=0;const r=this.sideOrientation===(this._scene.useRightHandedSystem?1:0);for(let n=0;n<e.length;n+=3){const o=P.FromArray(t,e[n]*3),l=P.FromArray(t,e[n+1]*3),c=P.FromArray(t,e[n+2]*3),u=o.subtract(l),f=c.subtract(l),p=P.Normalize(P.Cross(u,f));r&&p.scaleInPlace(-1);for(let m=0;m<3;m++)i[s++]=p.x,i[s++]=p.y,i[s++]=p.z}return i}_convertToUnIndexedMesh(e=!1){const t=this.getVerticesDataKinds().filter(l=>{var c;return!((c=this.getVertexBuffer(l))!=null&&c.getIsInstanced())}),i=this.getIndices(),s={},r=(l,c)=>{const u=new Float32Array(i.length*c);let f=0;for(let p=0;p<i.length;p++)for(let m=0;m<c;m++)u[f++]=l[i[p]*c+m];return u},n=this.getBoundingInfo(),o=this.geometry?this.subMeshes.slice(0):[];for(const l of t)s[l]=this.getVerticesData(l);for(const l of t){const c=this.getVertexBuffer(l),u=c.getSize();if(e&&l===q.NormalKind){const f=this._getFlattenedNormals(i,s[q.PositionKind]);this.setVerticesData(q.NormalKind,f,c.isUpdatable(),u)}else this.setVerticesData(l,r(s[l],u),c.isUpdatable(),u)}if(this.morphTargetManager){for(let l=0;l<this.morphTargetManager.numTargets;l++){const c=this.morphTargetManager.getTarget(l),u=c.getPositions();c.setPositions(r(u,3));const f=c.getNormals();f&&c.setNormals(e?this._getFlattenedNormals(i,u):r(f,3));const p=c.getTangents();p&&c.setTangents(r(p,3));const m=c.getUVs();m&&c.setUVs(r(m,2));const _=c.getColors();_&&c.setColors(r(_,4))}this.morphTargetManager.synchronize()}for(let l=0;l<i.length;l++)i[l]=l;this.setIndices(i),this._unIndexed=!0,this.releaseSubMeshes();for(const l of o){const c=l.getBoundingInfo();Lc.AddToMesh(l.materialIndex,l.indexStart,l.indexCount,l.indexStart,l.indexCount,this).setBoundingInfo(c)}return this.setBoundingInfo(n),this.synchronizeInstances(),this}convertToFlatShadedMesh(){return this._convertToUnIndexedMesh(!0)}convertToUnIndexedMesh(){return this._convertToUnIndexedMesh()}flipFaces(e=!1){const t=wt.ExtractFromMesh(this);let i;if(e&&this.isVerticesDataPresent(q.NormalKind)&&t.normals){for(i=0;i<t.normals.length;i++)t.normals[i]*=-1;this.setVerticesData(q.NormalKind,t.normals,this.isVertexBufferUpdatable(q.NormalKind))}if(t.indices){let s;for(i=0;i<t.indices.length;i+=3)s=t.indices[i+1],t.indices[i+1]=t.indices[i+2],t.indices[i+2]=s;this.setIndices(t.indices,null,this.isVertexBufferUpdatable(q.PositionKind),!0)}return this}increaseVertices(e=1){const t=wt.ExtractFromMesh(this),i=t.indices&&!Array.isArray(t.indices)&&Array.from?Array.from(t.indices):t.indices,s=t.positions&&!Array.isArray(t.positions)&&Array.from?Array.from(t.positions):t.positions,r=t.uvs&&!Array.isArray(t.uvs)&&Array.from?Array.from(t.uvs):t.uvs,n=t.normals&&!Array.isArray(t.normals)&&Array.from?Array.from(t.normals):t.normals;if(!i||!s)de.Warn("Couldn't increase number of vertices : VertexData must contain at least indices and positions");else{t.indices=i,t.positions=s,r&&(t.uvs=r),n&&(t.normals=n);const o=e+1,l=new Array;for(let b=0;b<o+1;b++)l[b]=new Array;let c,u;const f=new P(0,0,0),p=new P(0,0,0),m=new Ue(0,0),_=new Array,d=new Array,h=new Array;let x,A=s.length,S;r&&(S=r.length);let E;n&&(E=n.length);for(let b=0;b<i.length;b+=3){d[0]=i[b],d[1]=i[b+1],d[2]=i[b+2];for(let M=0;M<3;M++)if(c=d[M],u=d[(M+1)%3],h[c]===void 0&&h[u]===void 0?(h[c]=new Array,h[u]=new Array):(h[c]===void 0&&(h[c]=new Array),h[u]===void 0&&(h[u]=new Array)),h[c][u]===void 0&&h[u][c]===void 0){h[c][u]=[],f.x=(s[3*u]-s[3*c])/o,f.y=(s[3*u+1]-s[3*c+1])/o,f.z=(s[3*u+2]-s[3*c+2])/o,n&&(p.x=(n[3*u]-n[3*c])/o,p.y=(n[3*u+1]-n[3*c+1])/o,p.z=(n[3*u+2]-n[3*c+2])/o),r&&(m.x=(r[2*u]-r[2*c])/o,m.y=(r[2*u+1]-r[2*c+1])/o),h[c][u].push(c);for(let T=1;T<o;T++)h[c][u].push(s.length/3),s[A++]=s[3*c]+T*f.x,s[A++]=s[3*c+1]+T*f.y,s[A++]=s[3*c+2]+T*f.z,n&&(n[E++]=n[3*c]+T*p.x,n[E++]=n[3*c+1]+T*p.y,n[E++]=n[3*c+2]+T*p.z),r&&(r[S++]=r[2*c]+T*m.x,r[S++]=r[2*c+1]+T*m.y);h[c][u].push(u),h[u][c]=new Array,x=h[c][u].length;for(let T=0;T<x;T++)h[u][c][T]=h[c][u][x-1-T]}l[0][0]=i[b],l[1][0]=h[i[b]][i[b+1]][1],l[1][1]=h[i[b]][i[b+2]][1];for(let M=2;M<o;M++){l[M][0]=h[i[b]][i[b+1]][M],l[M][M]=h[i[b]][i[b+2]][M],f.x=(s[3*l[M][M]]-s[3*l[M][0]])/M,f.y=(s[3*l[M][M]+1]-s[3*l[M][0]+1])/M,f.z=(s[3*l[M][M]+2]-s[3*l[M][0]+2])/M,n&&(p.x=(n[3*l[M][M]]-n[3*l[M][0]])/M,p.y=(n[3*l[M][M]+1]-n[3*l[M][0]+1])/M,p.z=(n[3*l[M][M]+2]-n[3*l[M][0]+2])/M),r&&(m.x=(r[2*l[M][M]]-r[2*l[M][0]])/M,m.y=(r[2*l[M][M]+1]-r[2*l[M][0]+1])/M);for(let T=1;T<M;T++)l[M][T]=s.length/3,s[A++]=s[3*l[M][0]]+T*f.x,s[A++]=s[3*l[M][0]+1]+T*f.y,s[A++]=s[3*l[M][0]+2]+T*f.z,n&&(n[E++]=n[3*l[M][0]]+T*p.x,n[E++]=n[3*l[M][0]+1]+T*p.y,n[E++]=n[3*l[M][0]+2]+T*p.z),r&&(r[S++]=r[2*l[M][0]]+T*m.x,r[S++]=r[2*l[M][0]+1]+T*m.y)}l[o]=h[i[b+1]][i[b+2]],_.push(l[0][0],l[1][0],l[1][1]);for(let M=1;M<o;M++){let T;for(T=0;T<M;T++)_.push(l[M][T],l[M+1][T],l[M+1][T+1]),_.push(l[M][T],l[M+1][T+1],l[M][T+1]);_.push(l[M][T],l[M+1][T],l[M+1][T+1])}}t.indices=_,t.applyToMesh(this,this.isVertexBufferUpdatable(q.PositionKind))}}forceSharedVertices(){const e=wt.ExtractFromMesh(this),t=e.uvs,i=e.indices,s=e.positions,r=e.colors,n=e.matricesIndices,o=e.matricesWeights,l=e.matricesIndicesExtra,c=e.matricesWeightsExtra;if(i===void 0||s===void 0||i===null||s===null)de.Warn("VertexData contains empty entries");else{const u=new Array,f=new Array,p=new Array,m=new Array,_=new Array,d=new Array,h=new Array,x=new Array;let A=new Array,S=0;const E={};let b,M;for(let O=0;O<i.length;O+=3){M=[i[O],i[O+1],i[O+2]],A=[];for(let R=0;R<3;R++){A[R]="";for(let I=0;I<3;I++)Math.abs(s[3*M[R]+I])<1e-8&&(s[3*M[R]+I]=0),A[R]+=s[3*M[R]+I]+"|"}if(!(A[0]==A[1]||A[0]==A[2]||A[1]==A[2]))for(let R=0;R<3;R++){if(b=E[A[R]],b===void 0){E[A[R]]=S,b=S++;for(let I=0;I<3;I++)u.push(s[3*M[R]+I]);if(r!=null)for(let I=0;I<4;I++)m.push(r[4*M[R]+I]);if(t!=null)for(let I=0;I<2;I++)p.push(t[2*M[R]+I]);if(n!=null)for(let I=0;I<4;I++)_.push(n[4*M[R]+I]);if(o!=null)for(let I=0;I<4;I++)d.push(o[4*M[R]+I]);if(l!=null)for(let I=0;I<4;I++)h.push(l[4*M[R]+I]);if(c!=null)for(let I=0;I<4;I++)x.push(c[4*M[R]+I])}f.push(b)}}const T=new Array;wt.ComputeNormals(u,f,T),e.positions=u,e.indices=f,e.normals=T,t!=null&&(e.uvs=p),r!=null&&(e.colors=m),n!=null&&(e.matricesIndices=_),o!=null&&(e.matricesWeights=d),l!=null&&(e.matricesIndicesExtra=h),o!=null&&(e.matricesWeightsExtra=x),e.applyToMesh(this,this.isVertexBufferUpdatable(q.PositionKind))}}static _instancedMeshFactory(e,t){throw as("InstancedMesh")}static _PhysicsImpostorParser(e,t,i){throw as("PhysicsImpostor")}createInstance(e){const t=Ne._instancedMeshFactory(e,this);return t.parent=this.parent,t}synchronizeInstances(){for(let e=0;e<this.instances.length;e++)this.instances[e]._syncSubMeshes();return this}optimizeIndices(e){const t=this.getIndices(),i=this.getVerticesData(q.PositionKind);if(!i||!t)return this;const s=[];for(let n=0;n<i.length;n=n+3)s.push(P.FromArray(i,n));const r=[];return v4.SyncAsyncForLoop(s.length,40,n=>{const o=s.length-1-n,l=s[o];for(let c=0;c<o;++c){const u=s[c];if(l.equals(u)){r[o]=c;break}}},()=>{for(let o=0;o<t.length;++o)t[o]=r[t[o]]||t[o];const n=this.subMeshes.slice(0);this.setIndices(t),this.subMeshes=n,e&&e(this)}),this}serialize(e={}){e.name=this.name,e.id=this.id,e.uniqueId=this.uniqueId,e.type=this.getClassName(),ar&&ar.HasTags(this)&&(e.tags=ar.GetTags(this)),e.position=this.position.asArray(),this.rotationQuaternion?e.rotationQuaternion=this.rotationQuaternion.asArray():this.rotation&&(e.rotation=this.rotation.asArray()),e.scaling=this.scaling.asArray(),this._postMultiplyPivotMatrix?e.pivotMatrix=this.getPivotMatrix().asArray():e.localMatrix=this.getPivotMatrix().asArray(),e.isEnabled=this.isEnabled(!1),e.isVisible=this.isVisible,e.infiniteDistance=this.infiniteDistance,e.pickable=this.isPickable,e.receiveShadows=this.receiveShadows,e.billboardMode=this.billboardMode,e.visibility=this.visibility,e.alwaysSelectAsActiveMesh=this.alwaysSelectAsActiveMesh,e.checkCollisions=this.checkCollisions,e.ellipsoid=this.ellipsoid.asArray(),e.ellipsoidOffset=this.ellipsoidOffset.asArray(),e.doNotSyncBoundingInfo=this.doNotSyncBoundingInfo,e.isBlocker=this.isBlocker,e.sideOrientation=this.sideOrientation,this.parent&&this.parent._serializeAsParent(e),e.isUnIndexed=this.isUnIndexed;const t=this._geometry;if(t&&this.subMeshes){e.geometryUniqueId=t.uniqueId,e.geometryId=t.id,e.subMeshes=[];for(let i=0;i<this.subMeshes.length;i++){const s=this.subMeshes[i];e.subMeshes.push({materialIndex:s.materialIndex,verticesStart:s.verticesStart,verticesCount:s.verticesCount,indexStart:s.indexStart,indexCount:s.indexCount})}}if(this.material?this.material.doNotSerialize||(e.materialUniqueId=this.material.uniqueId,e.materialId=this.material.id):(this.material=null,e.materialUniqueId=this._scene.defaultMaterial.uniqueId,e.materialId=this._scene.defaultMaterial.id),this.morphTargetManager&&(e.morphTargetManagerId=this.morphTargetManager.uniqueId),this.skeleton&&(e.skeletonId=this.skeleton.id,e.numBoneInfluencers=this.numBoneInfluencers),this.getScene()._getComponent(jt.NAME_PHYSICSENGINE)){const i=this.getPhysicsImpostor();i&&(e.physicsMass=i.getParam("mass"),e.physicsFriction=i.getParam("friction"),e.physicsRestitution=i.getParam("mass"),e.physicsImpostor=i.type)}this.metadata&&(e.metadata=this.metadata),e.instances=[];for(let i=0;i<this.instances.length;i++){const s=this.instances[i];if(s.doNotSerialize)continue;const r={name:s.name,id:s.id,isEnabled:s.isEnabled(!1),isVisible:s.isVisible,isPickable:s.isPickable,checkCollisions:s.checkCollisions,position:s.position.asArray(),scaling:s.scaling.asArray()};if(s.parent&&s.parent._serializeAsParent(r),s.rotationQuaternion?r.rotationQuaternion=s.rotationQuaternion.asArray():s.rotation&&(r.rotation=s.rotation.asArray()),this.getScene()._getComponent(jt.NAME_PHYSICSENGINE)){const n=s.getPhysicsImpostor();n&&(r.physicsMass=n.getParam("mass"),r.physicsFriction=n.getParam("friction"),r.physicsRestitution=n.getParam("mass"),r.physicsImpostor=n.type)}s.metadata&&(r.metadata=s.metadata),s.actionManager&&(r.actions=s.actionManager.serialize(s.name)),e.instances.push(r),It.AppendSerializedAnimations(s,r),r.ranges=s.serializeAnimationRanges()}if(this._thinInstanceDataStorage.instancesCount&&this._thinInstanceDataStorage.matrixData&&(e.thinInstances={instancesCount:this._thinInstanceDataStorage.instancesCount,matrixData:Array.from(this._thinInstanceDataStorage.matrixData),matrixBufferSize:this._thinInstanceDataStorage.matrixBufferSize,enablePicking:this.thinInstanceEnablePicking},this._userThinInstanceBuffersStorage)){const i={data:{},sizes:{},strides:{}};for(const s in this._userThinInstanceBuffersStorage.data)i.data[s]=Array.from(this._userThinInstanceBuffersStorage.data[s]),i.sizes[s]=this._userThinInstanceBuffersStorage.sizes[s],i.strides[s]=this._userThinInstanceBuffersStorage.strides[s];e.thinInstances.userThinInstance=i}return It.AppendSerializedAnimations(this,e),e.ranges=this.serializeAnimationRanges(),e.layerMask=this.layerMask,e.alphaIndex=this.alphaIndex,e.hasVertexAlpha=this.hasVertexAlpha,e.overlayAlpha=this.overlayAlpha,e.overlayColor=this.overlayColor.asArray(),e.renderOverlay=this.renderOverlay,e.applyFog=this.applyFog,this.actionManager&&(e.actions=this.actionManager.serialize(this.name)),e}_syncGeometryWithMorphTargetManager(){if(!this.geometry)return;this._markSubMeshesAsAttributesDirty();const e=this._internalAbstractMeshDataInfo._morphTargetManager;if(e&&e.vertexCount){if(e.vertexCount!==this.getTotalVertices()){de.Error("Mesh is incompatible with morph targets. Targets and mesh must all have the same vertices count."),this.morphTargetManager=null;return}if(e.isUsingTextureForTargets)return;for(let t=0;t<e.numInfluencers;t++){const i=e.getActiveTarget(t),s=i.getPositions();if(!s){de.Error("Invalid morph target. Target must have positions.");return}this.geometry.setVerticesData(q.PositionKind+t,s,!1,3);const r=i.getNormals();r&&this.geometry.setVerticesData(q.NormalKind+t,r,!1,3);const n=i.getTangents();n&&this.geometry.setVerticesData(q.TangentKind+t,n,!1,3);const o=i.getUVs();o&&this.geometry.setVerticesData(q.UVKind+"_"+t,o,!1,2);const l=i.getUV2s();l&&this.geometry.setVerticesData(q.UV2Kind+"_"+t,l,!1,2);const c=i.getColors();c&&this.geometry.setVerticesData(q.ColorKind+t,c,!1,4)}}else{let t=0;for(;this.geometry.isVerticesDataPresent(q.PositionKind+t);)this.geometry.removeVerticesData(q.PositionKind+t),this.geometry.isVerticesDataPresent(q.NormalKind+t)&&this.geometry.removeVerticesData(q.NormalKind+t),this.geometry.isVerticesDataPresent(q.TangentKind+t)&&this.geometry.removeVerticesData(q.TangentKind+t),this.geometry.isVerticesDataPresent(q.UVKind+t)&&this.geometry.removeVerticesData(q.UVKind+"_"+t),this.geometry.isVerticesDataPresent(q.UV2Kind+t)&&this.geometry.removeVerticesData(q.UV2Kind+"_"+t),this.geometry.isVerticesDataPresent(q.ColorKind+t)&&this.geometry.removeVerticesData(q.ColorKind+t),t++}}static Parse(e,t,i){let s;if(e.type&&e.type==="LinesMesh"?s=Ne._LinesMeshParser(e,t):e.type&&e.type==="GroundMesh"?s=Ne._GroundMeshParser(e,t):e.type&&e.type==="GoldbergMesh"?s=Ne._GoldbergMeshParser(e,t):e.type&&e.type==="GreasedLineMesh"?s=Ne._GreasedLineMeshParser(e,t):e.type&&e.type==="TrailMesh"?s=Ne._TrailMeshParser(e,t):s=new Ne(e.name,t),s.id=e.id,s._waitingParsedUniqueId=e.uniqueId,ar&&ar.AddTagsTo(s,e.tags),s.position=P.FromArray(e.position),e.metadata!==void 0&&(s.metadata=e.metadata),e.rotationQuaternion?s.rotationQuaternion=Re.FromArray(e.rotationQuaternion):e.rotation&&(s.rotation=P.FromArray(e.rotation)),s.scaling=P.FromArray(e.scaling),e.localMatrix?s.setPreTransformMatrix(me.FromArray(e.localMatrix)):e.pivotMatrix&&s.setPivotMatrix(me.FromArray(e.pivotMatrix)),s.setEnabled(e.isEnabled),s.isVisible=e.isVisible,s.infiniteDistance=e.infiniteDistance,s.alwaysSelectAsActiveMesh=!!e.alwaysSelectAsActiveMesh,s.showBoundingBox=e.showBoundingBox,s.showSubMeshesBoundingBox=e.showSubMeshesBoundingBox,e.applyFog!==void 0&&(s.applyFog=e.applyFog),e.pickable!==void 0&&(s.isPickable=e.pickable),e.alphaIndex!==void 0&&(s.alphaIndex=e.alphaIndex),s.receiveShadows=e.receiveShadows,e.billboardMode!==void 0&&(s.billboardMode=e.billboardMode),e.visibility!==void 0&&(s.visibility=e.visibility),s.checkCollisions=e.checkCollisions,s.doNotSyncBoundingInfo=!!e.doNotSyncBoundingInfo,e.ellipsoid&&(s.ellipsoid=P.FromArray(e.ellipsoid)),e.ellipsoidOffset&&(s.ellipsoidOffset=P.FromArray(e.ellipsoidOffset)),e.overrideMaterialSideOrientation!=null&&(s.sideOrientation=e.overrideMaterialSideOrientation),e.sideOrientation!==void 0&&(s.sideOrientation=e.sideOrientation),e.isBlocker!==void 0&&(s.isBlocker=e.isBlocker),s._shouldGenerateFlatShading=e.useFlatShading,e.freezeWorldMatrix&&(s._waitingData.freezeWorldMatrix=e.freezeWorldMatrix),e.parentId!==void 0&&(s._waitingParentId=e.parentId),e.parentInstanceIndex!==void 0&&(s._waitingParentInstanceIndex=e.parentInstanceIndex),e.actions!==void 0&&(s._waitingData.actions=e.actions),e.overlayAlpha!==void 0&&(s.overlayAlpha=e.overlayAlpha),e.overlayColor!==void 0&&(s.overlayColor=Pe.FromArray(e.overlayColor)),e.renderOverlay!==void 0&&(s.renderOverlay=e.renderOverlay),s.isUnIndexed=!!e.isUnIndexed,s.hasVertexAlpha=e.hasVertexAlpha,e.delayLoadingFile?(s.delayLoadState=4,s.delayLoadingFile=i+e.delayLoadingFile,s.buildBoundingInfo(P.FromArray(e.boundingBoxMinimum),P.FromArray(e.boundingBoxMaximum)),e._binaryInfo&&(s._binaryInfo=e._binaryInfo),s._delayInfo=[],e.hasUVs&&s._delayInfo.push(q.UVKind),e.hasUVs2&&s._delayInfo.push(q.UV2Kind),e.hasUVs3&&s._delayInfo.push(q.UV3Kind),e.hasUVs4&&s._delayInfo.push(q.UV4Kind),e.hasUVs5&&s._delayInfo.push(q.UV5Kind),e.hasUVs6&&s._delayInfo.push(q.UV6Kind),e.hasColors&&s._delayInfo.push(q.ColorKind),e.hasMatricesIndices&&s._delayInfo.push(q.MatricesIndicesKind),e.hasMatricesWeights&&s._delayInfo.push(q.MatricesWeightsKind),s._delayLoadingFunction=Rl._ImportGeometry,Ol.ForceFullSceneLoadingForIncremental&&s._checkDelayState()):Rl._ImportGeometry(e,s),e.materialUniqueId?s._waitingMaterialId=e.materialUniqueId:e.materialId&&(s._waitingMaterialId=e.materialId),e.morphTargetManagerId>-1&&(s._waitingMorphTargetManagerId=e.morphTargetManagerId),e.skeletonId!==void 0&&e.skeletonId!==null&&(s.skeleton=t.getLastSkeletonById(e.skeletonId),e.numBoneInfluencers&&(s.numBoneInfluencers=e.numBoneInfluencers)),e.animations){for(let r=0;r<e.animations.length;r++){const n=e.animations[r],o=ea("BABYLON.Animation");o&&s.animations.push(o.Parse(n))}Rr.ParseAnimationRanges(s,e,t)}if(e.autoAnimate&&t.beginAnimation(s,e.autoAnimateFrom,e.autoAnimateTo,e.autoAnimateLoop,e.autoAnimateSpeed||1),e.layerMask&&!isNaN(e.layerMask)?s.layerMask=Math.abs(parseInt(e.layerMask)):s.layerMask=268435455,e.physicsImpostor&&(s.physicsImpostor=Ne._PhysicsImpostorParser(t,s,e)),e.lodMeshIds&&(s._waitingData.lods={ids:e.lodMeshIds,distances:e.lodDistances?e.lodDistances:null,coverages:e.lodCoverages?e.lodCoverages:null}),e.instances)for(let r=0;r<e.instances.length;r++){const n=e.instances[r],o=s.createInstance(n.name);if(n.id&&(o.id=n.id),ar&&(n.tags?ar.AddTagsTo(o,n.tags):ar.AddTagsTo(o,e.tags)),o.position=P.FromArray(n.position),n.metadata!==void 0&&(o.metadata=n.metadata),n.parentId!==void 0&&(o._waitingParentId=n.parentId),n.parentInstanceIndex!==void 0&&(o._waitingParentInstanceIndex=n.parentInstanceIndex),n.isEnabled!==void 0&&n.isEnabled!==null&&o.setEnabled(n.isEnabled),n.isVisible!==void 0&&n.isVisible!==null&&(o.isVisible=n.isVisible),n.isPickable!==void 0&&n.isPickable!==null&&(o.isPickable=n.isPickable),n.rotationQuaternion?o.rotationQuaternion=Re.FromArray(n.rotationQuaternion):n.rotation&&(o.rotation=P.FromArray(n.rotation)),o.scaling=P.FromArray(n.scaling),n.checkCollisions!=null&&n.checkCollisions!=null&&(o.checkCollisions=n.checkCollisions),n.pickable!=null&&n.pickable!=null&&(o.isPickable=n.pickable),n.showBoundingBox!=null&&n.showBoundingBox!=null&&(o.showBoundingBox=n.showBoundingBox),n.showSubMeshesBoundingBox!=null&&n.showSubMeshesBoundingBox!=null&&(o.showSubMeshesBoundingBox=n.showSubMeshesBoundingBox),n.alphaIndex!=null&&n.showSubMeshesBoundingBox!=null&&(o.alphaIndex=n.alphaIndex),n.physicsImpostor&&(o.physicsImpostor=Ne._PhysicsImpostorParser(t,o,n)),n.actions!==void 0&&(o._waitingData.actions=n.actions),n.animations){for(let l=0;l<n.animations.length;l++){const c=n.animations[l],u=ea("BABYLON.Animation");u&&o.animations.push(u.Parse(c))}Rr.ParseAnimationRanges(o,n,t),n.autoAnimate&&t.beginAnimation(o,n.autoAnimateFrom,n.autoAnimateTo,n.autoAnimateLoop,n.autoAnimateSpeed||1)}}if(e.thinInstances){const r=e.thinInstances;if(s.thinInstanceEnablePicking=!!r.enablePicking,r.matrixData?(s.thinInstanceSetBuffer("matrix",new Float32Array(r.matrixData),16,!1),s._thinInstanceDataStorage.matrixBufferSize=r.matrixBufferSize,s._thinInstanceDataStorage.instancesCount=r.instancesCount):s._thinInstanceDataStorage.matrixBufferSize=r.matrixBufferSize,e.thinInstances.userThinInstance){const n=e.thinInstances.userThinInstance;for(const o in n.data)s.thinInstanceSetBuffer(o,new Float32Array(n.data[o]),n.strides[o],!1),s._userThinInstanceBuffersStorage.sizes[o]=n.sizes[o]}}return s}setPositionsForCPUSkinning(){const e=this._internalMeshDataInfo;if(!e._sourcePositions){const t=this.getVerticesData(q.PositionKind);if(!t)return e._sourcePositions;e._sourcePositions=new Float32Array(t),this.isVertexBufferUpdatable(q.PositionKind)||this.setVerticesData(q.PositionKind,t,!0)}return e._sourcePositions}setNormalsForCPUSkinning(){const e=this._internalMeshDataInfo;if(!e._sourceNormals){const t=this.getVerticesData(q.NormalKind);if(!t)return e._sourceNormals;e._sourceNormals=new Float32Array(t),this.isVertexBufferUpdatable(q.NormalKind)||this.setVerticesData(q.NormalKind,t,!0)}return e._sourceNormals}applySkeleton(e){if(!this.geometry)return this;if(this.geometry._softwareSkinningFrameId==this.getScene().getFrameId())return this;if(this.geometry._softwareSkinningFrameId=this.getScene().getFrameId(),!this.isVerticesDataPresent(q.PositionKind))return this;if(!this.isVerticesDataPresent(q.MatricesIndicesKind))return this;if(!this.isVerticesDataPresent(q.MatricesWeightsKind))return this;const t=this.isVerticesDataPresent(q.NormalKind),i=this._internalMeshDataInfo;if(!i._sourcePositions){const x=this.subMeshes.slice();this.setPositionsForCPUSkinning(),this.subMeshes=x}t&&!i._sourceNormals&&this.setNormalsForCPUSkinning();let s=this.getVerticesData(q.PositionKind);if(!s)return this;s instanceof Float32Array||(s=new Float32Array(s));let r=this.getVerticesData(q.NormalKind);if(t){if(!r)return this;r instanceof Float32Array||(r=new Float32Array(r))}const n=this.getVerticesData(q.MatricesIndicesKind),o=this.getVerticesData(q.MatricesWeightsKind);if(!o||!n)return this;const l=this.numBoneInfluencers>4,c=l?this.getVerticesData(q.MatricesIndicesExtraKind):null,u=l?this.getVerticesData(q.MatricesWeightsExtraKind):null,f=e.getTransformMatrices(this),p=P.Zero(),m=new me,_=new me;let d=0,h;for(let x=0;x<s.length;x+=3,d+=4){let A;for(h=0;h<4;h++)A=o[d+h],A>0&&(me.FromFloat32ArrayToRefScaled(f,Math.floor(n[d+h]*16),A,_),m.addToSelf(_));if(l)for(h=0;h<4;h++)A=u[d+h],A>0&&(me.FromFloat32ArrayToRefScaled(f,Math.floor(c[d+h]*16),A,_),m.addToSelf(_));P.TransformCoordinatesFromFloatsToRef(i._sourcePositions[x],i._sourcePositions[x+1],i._sourcePositions[x+2],m,p),p.toArray(s,x),t&&(P.TransformNormalFromFloatsToRef(i._sourceNormals[x],i._sourceNormals[x+1],i._sourceNormals[x+2],m,p),p.toArray(r,x)),m.reset()}return this.updateVerticesData(q.PositionKind,s),t&&this.updateVerticesData(q.NormalKind,r),this}static MinMax(e){let t=null,i=null;return e.forEach(function(s){const n=s.getBoundingInfo().boundingBox;!t||!i?(t=n.minimumWorld,i=n.maximumWorld):(t.minimizeInPlace(n.minimumWorld),i.maximizeInPlace(n.maximumWorld))}),!t||!i?{min:P.Zero(),max:P.Zero()}:{min:t,max:i}}static Center(e){const t=e instanceof Array?Ne.MinMax(e):e;return P.Center(t.min,t.max)}static MergeMeshes(e,t=!0,i,s,r,n){return bw(Ne._MergeMeshesCoroutine(e,t,i,s,r,n,!1))}static MergeMeshesAsync(e,t=!0,i,s,r,n){return X9(Ne._MergeMeshesCoroutine(e,t,i,s,r,n,!0),xw())}static*_MergeMeshesCoroutine(e,t=!0,i,s,r,n,o){if(e=e.filter(Boolean),e.length===0)return null;let l;if(!i){let T=0;for(l=0;l<e.length;l++)if(T+=e[l].getTotalVertices(),T>=65536)return de.Warn("Cannot merge meshes because resulting mesh will have more than 65536 vertices. Please use allow32BitsIndices = true to use 32 bits indices"),null}n&&(r=!1);const c=new Array,u=new Array,f=new Array,p=e[0].sideOrientation;for(l=0;l<e.length;l++){const T=e[l];if(T.isAnInstance)return de.Warn("Cannot merge instance meshes."),null;if(p!==T.sideOrientation)return de.Warn("Cannot merge meshes with different sideOrientation values."),null;if(r&&f.push(T.getTotalIndices()),n)if(T.material){const O=T.material;if(O instanceof tf){for(let R=0;R<O.subMaterials.length;R++)c.indexOf(O.subMaterials[R])<0&&c.push(O.subMaterials[R]);for(let R=0;R<T.subMeshes.length;R++)u.push(c.indexOf(O.subMaterials[T.subMeshes[R].materialIndex])),f.push(T.subMeshes[R].indexCount)}else{c.indexOf(O)<0&&c.push(O);for(let R=0;R<T.subMeshes.length;R++)u.push(c.indexOf(O)),f.push(T.subMeshes[R].indexCount)}}else for(let O=0;O<T.subMeshes.length;O++)u.push(0),f.push(T.subMeshes[O].indexCount)}const m=e[0],_=T=>{const O=T.computeWorldMatrix(!0);return{vertexData:wt.ExtractFromMesh(T,!1,!1),transform:O}},{vertexData:d,transform:h}=_(m);o&&(yield);const x=new Array(e.length-1);for(let T=1;T<e.length;T++)x[T-1]=_(e[T]),o&&(yield);const A=d._mergeCoroutine(h,x,i,o,!t);let S=A.next();for(;!S.done;)o&&(yield),S=A.next();const E=S.value;s||(s=new Ne(m.name+"_merged",m.getScene()));const b=E._applyToCoroutine(s,void 0,o);let M=b.next();for(;!M.done;)o&&(yield),M=b.next();if(s.checkCollisions=m.checkCollisions,s.sideOrientation=m.sideOrientation,t)for(l=0;l<e.length;l++)e[l].dispose();if(r||n){s.releaseSubMeshes(),l=0;let T=0;for(;l<f.length;)Lc.CreateFromIndices(0,T,f[l],s,void 0,!1),T+=f[l],l++;for(const O of s.subMeshes)O.refreshBoundingInfo();s.computeWorldMatrix(!0)}if(n){const T=new tf(m.name+"_merged",m.getScene());T.subMaterials=c;for(let O=0;O<s.subMeshes.length;O++)s.subMeshes[O].materialIndex=u[O];s.material=T}else s.material=m.material;return s}addInstance(e){e._indexInSourceMeshInstanceArray=this.instances.length,this.instances.push(e)}removeInstance(e){const t=e._indexInSourceMeshInstanceArray;if(t!=-1){if(t!==this.instances.length-1){const i=this.instances[this.instances.length-1];this.instances[t]=i,i._indexInSourceMeshInstanceArray=t}e._indexInSourceMeshInstanceArray=-1,this.instances.pop()}}_shouldConvertRHS(){return this._scene.useRightHandedSystem&&this.sideOrientation===ft.CounterClockWiseSideOrientation}_getRenderingFillMode(e){const t=this.getScene();return t.forcePointsCloud?ft.PointFillMode:t.forceWireframe?ft.WireFrameFillMode:this.overrideRenderingFillMode??e}setMaterialByID(e){return this.setMaterialById(e)}static CreateRibbon(e,t,i,s,r,n,o,l,c){throw new Error("Import MeshBuilder to populate this function")}static CreateDisc(e,t,i,s,r,n){throw new Error("Import MeshBuilder to populate this function")}static CreateBox(e,t,i,s,r){throw new Error("Import MeshBuilder to populate this function")}static CreateSphere(e,t,i,s,r,n){throw new Error("Import MeshBuilder to populate this function")}static CreateHemisphere(e,t,i,s){throw new Error("Import MeshBuilder to populate this function")}static CreateCylinder(e,t,i,s,r,n,o,l,c){throw new Error("Import MeshBuilder to populate this function")}static CreateTorus(e,t,i,s,r,n,o){throw new Error("Import MeshBuilder to populate this function")}static CreateTorusKnot(e,t,i,s,r,n,o,l,c,u){throw new Error("Import MeshBuilder to populate this function")}static CreateLines(e,t,i,s,r){throw new Error("Import MeshBuilder to populate this function")}static CreateDashedLines(e,t,i,s,r,n,o,l){throw new Error("Import MeshBuilder to populate this function")}static CreatePolygon(e,t,i,s,r,n,o){throw new Error("Import MeshBuilder to populate this function")}static ExtrudePolygon(e,t,i,s,r,n,o,l){throw new Error("Import MeshBuilder to populate this function")}static ExtrudeShape(e,t,i,s,r,n,o,l,c,u){throw new Error("Import MeshBuilder to populate this function")}static ExtrudeShapeCustom(e,t,i,s,r,n,o,l,c,u,f,p){throw new Error("Import MeshBuilder to populate this function")}static CreateLathe(e,t,i,s,r,n,o){throw new Error("Import MeshBuilder to populate this function")}static CreatePlane(e,t,i,s,r){throw new Error("Import MeshBuilder to populate this function")}static CreateGround(e,t,i,s,r,n){throw new Error("Import MeshBuilder to populate this function")}static CreateTiledGround(e,t,i,s,r,n,o,l,c){throw new Error("Import MeshBuilder to populate this function")}static CreateGroundFromHeightMap(e,t,i,s,r,n,o,l,c,u,f){throw new Error("Import MeshBuilder to populate this function")}static CreateTube(e,t,i,s,r,n,o,l,c,u){throw new Error("Import MeshBuilder to populate this function")}static CreatePolyhedron(e,t,i){throw new Error("Import MeshBuilder to populate this function")}static CreateIcoSphere(e,t,i){throw new Error("Import MeshBuilder to populate this function")}static CreateDecal(e,t,i,s,r,n){throw new Error("Import MeshBuilder to populate this function")}static CreateCapsule(e,t,i){throw new Error("Import MeshBuilder to populate this function")}static ExtendToGoldberg(e){throw new Error("Import MeshBuilder to populate this function")}}Ne.FRONTSIDE=wt.FRONTSIDE,Ne.BACKSIDE=wt.BACKSIDE,Ne.DOUBLESIDE=wt.DOUBLESIDE,Ne.DEFAULTSIDE=wt.DEFAULTSIDE,Ne.NO_CAP=0,Ne.CAP_START=1,Ne.CAP_END=2,Ne.CAP_ALL=3,Ne.NO_FLIP=0,Ne.FLIP_TILE=1,Ne.ROTATE_TILE=2,Ne.FLIP_ROW=3,Ne.ROTATE_ROW=4,Ne.FLIP_N_ROTATE_TILE=5,Ne.FLIP_N_ROTATE_ROW=6,Ne.CENTER=0,Ne.LEFT=1,Ne.RIGHT=2,Ne.TOP=3,Ne.BOTTOM=4,Ne.INSTANCEDMESH_SORT_TRANSPARENT=!1,Ne._GroundMeshParser=(a,e)=>{throw as("GroundMesh")},Ne._GoldbergMeshParser=(a,e)=>{throw as("GoldbergMesh")},Ne._LinesMeshParser=(a,e)=>{throw as("LinesMesh")},Ne._GreasedLineMeshParser=(a,e)=>{throw as("GreasedLineMesh")},Ne._GreasedLineRibbonMeshParser=(a,e)=>{throw as("GreasedLineRibbonMesh")},Ne._TrailMeshParser=(a,e)=>{throw as("TrailMesh")},ve("BABYLON.Mesh",Ne),Ne._instancedMeshFactory=(a,e)=>{const t=new $x(a,e);if(e.instancedBuffers){t.instancedBuffers={};for(const i in e.instancedBuffers)t.instancedBuffers[i]=e.instancedBuffers[i]}return t};class $x extends cr{constructor(e,t){super(e,t.getScene()),this._indexInSourceMeshInstanceArray=-1,this._distanceToCamera=0,t.addInstance(this),this._sourceMesh=t,this._unIndexed=t._unIndexed,this.position.copyFrom(t.position),this.rotation.copyFrom(t.rotation),this.scaling.copyFrom(t.scaling),t.rotationQuaternion&&(this.rotationQuaternion=t.rotationQuaternion.clone()),this.animations=t.animations.slice();for(const i of t.getAnimationRanges())i!=null&&this.createAnimationRange(i.name,i.from,i.to);this.infiniteDistance=t.infiniteDistance,this.setPivotMatrix(t.getPivotMatrix()),this.refreshBoundingInfo(!0,!0),this._syncSubMeshes()}getClassName(){return"InstancedMesh"}get lightSources(){return this._sourceMesh._lightSources}_resyncLightSources(){}_resyncLightSource(){}_removeLightSource(){}get receiveShadows(){return this._sourceMesh.receiveShadows}set receiveShadows(e){var t;((t=this._sourceMesh)==null?void 0:t.receiveShadows)!==e&&Le.Warn("Setting receiveShadows on an instanced mesh has no effect")}get material(){return this._sourceMesh.material}set material(e){var t;((t=this._sourceMesh)==null?void 0:t.material)!==e&&Le.Warn("Setting material on an instanced mesh has no effect")}get visibility(){return this._sourceMesh.visibility}set visibility(e){var t;((t=this._sourceMesh)==null?void 0:t.visibility)!==e&&Le.Warn("Setting visibility on an instanced mesh has no effect")}get skeleton(){return this._sourceMesh.skeleton}set skeleton(e){var t;((t=this._sourceMesh)==null?void 0:t.skeleton)!==e&&Le.Warn("Setting skeleton on an instanced mesh has no effect")}get renderingGroupId(){return this._sourceMesh.renderingGroupId}set renderingGroupId(e){!this._sourceMesh||e===this._sourceMesh.renderingGroupId||de.Warn("Note - setting renderingGroupId of an instanced mesh has no effect on the scene")}getTotalVertices(){return this._sourceMesh?this._sourceMesh.getTotalVertices():0}getTotalIndices(){return this._sourceMesh.getTotalIndices()}get sourceMesh(){return this._sourceMesh}get geometry(){return this._sourceMesh._geometry}createInstance(e){return this._sourceMesh.createInstance(e)}isReady(e=!1){return this._sourceMesh.isReady(e,!0)}getVerticesData(e,t,i){return this._sourceMesh.getVerticesData(e,t,i)}copyVerticesData(e,t){this._sourceMesh.copyVerticesData(e,t)}setVerticesData(e,t,i,s){return this.sourceMesh&&this.sourceMesh.setVerticesData(e,t,i,s),this.sourceMesh}updateVerticesData(e,t,i,s){return this.sourceMesh&&this.sourceMesh.updateVerticesData(e,t,i,s),this.sourceMesh}setIndices(e,t=null){return this.sourceMesh&&this.sourceMesh.setIndices(e,t),this.sourceMesh}isVerticesDataPresent(e){return this._sourceMesh.isVerticesDataPresent(e)}getIndices(){return this._sourceMesh.getIndices()}get _positions(){return this._sourceMesh._positions}refreshBoundingInfo(e=!1,t=!1){if(this.hasBoundingInfo&&this.getBoundingInfo().isLocked)return this;let i;typeof e=="object"?i=e:i={applySkeleton:e,applyMorph:t};const s=this._sourceMesh.geometry?this._sourceMesh.geometry.boundingBias:null;return this._refreshBoundingInfo(this._sourceMesh._getData(i,null,q.PositionKind),s),this}_preActivate(){return this._currentLOD&&this._currentLOD._preActivate(),this}_activate(e,t){if(super._activate(e,t),this._sourceMesh.subMeshes||de.Warn("Instances should only be created for meshes with geometry."),this._currentLOD){if(this._currentLOD._getWorldMatrixDeterminant()>=0!=this._getWorldMatrixDeterminant()>=0)return this._internalAbstractMeshDataInfo._actAsRegularMesh=!0,!0;if(this._internalAbstractMeshDataInfo._actAsRegularMesh=!1,this._currentLOD._registerInstanceForRenderId(this,e),t){if(!this._currentLOD._internalAbstractMeshDataInfo._isActiveIntermediate)return this._currentLOD._internalAbstractMeshDataInfo._onlyForInstancesIntermediate=!0,!0}else if(!this._currentLOD._internalAbstractMeshDataInfo._isActive)return this._currentLOD._internalAbstractMeshDataInfo._onlyForInstances=!0,!0}return!1}_postActivate(){this._sourceMesh.edgesShareWithInstances&&this._sourceMesh._edgesRenderer&&this._sourceMesh._edgesRenderer.isEnabled&&this._sourceMesh._renderingGroup?(this._sourceMesh._renderingGroup._edgesRenderers.pushNoDuplicate(this._sourceMesh._edgesRenderer),this._sourceMesh._edgesRenderer.customInstances.push(this.getWorldMatrix())):this._edgesRenderer&&this._edgesRenderer.isEnabled&&this._sourceMesh._renderingGroup&&this._sourceMesh._renderingGroup._edgesRenderers.push(this._edgesRenderer)}getWorldMatrix(){if(this._currentLOD&&this._currentLOD.billboardMode!==Si.BILLBOARDMODE_NONE&&this._currentLOD._masterMesh!==this){this._billboardWorldMatrix||(this._billboardWorldMatrix=new me);const e=this._currentLOD._masterMesh;return this._currentLOD._masterMesh=this,ae.Vector3[7].copyFrom(this._currentLOD.position),this._currentLOD.position.set(0,0,0),this._billboardWorldMatrix.copyFrom(this._currentLOD.computeWorldMatrix(!0)),this._currentLOD.position.copyFrom(ae.Vector3[7]),this._currentLOD._masterMesh=e,this._billboardWorldMatrix}return super.getWorldMatrix()}get isAnInstance(){return!0}getLOD(e){if(!e)return this;const t=this.sourceMesh.getLODLevels();if(!t||t.length===0)this._currentLOD=this.sourceMesh;else{const i=this.getBoundingInfo();this._currentLOD=this.sourceMesh.getLOD(e,i.boundingSphere)}return this._currentLOD}_preActivateForIntermediateRendering(e){return this.sourceMesh._preActivateForIntermediateRendering(e)}_syncSubMeshes(){if(this.releaseSubMeshes(),this._sourceMesh.subMeshes)for(let e=0;e<this._sourceMesh.subMeshes.length;e++)this._sourceMesh.subMeshes[e].clone(this,this._sourceMesh);return this}_generatePointsArray(){return this._sourceMesh._generatePointsArray()}_updateBoundingInfo(){return this.hasBoundingInfo?this.getBoundingInfo().update(this.worldMatrixFromCache):this.buildBoundingInfo(this.absolutePosition,this.absolutePosition,this.worldMatrixFromCache),this._updateSubMeshesBoundingInfo(this.worldMatrixFromCache),this}clone(e,t=null,i,s){const r=(s||this._sourceMesh).createInstance(e);if(nu.DeepCopy(this,r,["name","subMeshes","uniqueId","parent","lightSources","receiveShadows","material","visibility","skeleton","sourceMesh","isAnInstance","facetNb","isFacetDataEnabled","isBlocked","useBones","hasInstances","collider","edgesRenderer","forward","up","right","absolutePosition","absoluteScaling","absoluteRotationQuaternion","isWorldMatrixFrozen","nonUniformScaling","behaviors","worldMatrixFromCache","hasThinInstances","hasBoundingInfo"],[]),this.refreshBoundingInfo(),t&&(r.parent=t),!i)for(let n=0;n<this.getScene().meshes.length;n++){const o=this.getScene().meshes[n];o.parent===this&&o.clone(o.name,r)}return r.computeWorldMatrix(!0),this.onClonedObservable.notifyObservers(r),r}dispose(e,t=!1){this._sourceMesh.removeInstance(this),super.dispose(e,t)}_serializeAsParent(e){super._serializeAsParent(e),e.parentId=this._sourceMesh.uniqueId,e.parentInstanceIndex=this._indexInSourceMeshInstanceArray}instantiateHierarchy(e=null,t,i){const s=this.clone("Clone of "+(this.name||this.id),e||this.parent,!0,t&&t.newSourcedMesh);s&&i&&i(this,s);for(const r of this.getChildTransformNodes(!0))r.instantiateHierarchy(s,t,i);return s}}Ne.prototype.registerInstancedBuffer=function(a,e){var t,i;if((i=(t=this._userInstancedBuffersStorage)==null?void 0:t.vertexBuffers[a])==null||i.dispose(),!this.instancedBuffers){this.instancedBuffers={};for(const s of this.instances)s.instancedBuffers={}}this._userInstancedBuffersStorage||(this._userInstancedBuffersStorage={data:{},vertexBuffers:{},strides:{},sizes:{},vertexArrayObjects:this.getEngine().getCaps().vertexArrayObject?{}:void 0}),this.instancedBuffers[a]=null,this._userInstancedBuffersStorage.strides[a]=e,this._userInstancedBuffersStorage.sizes[a]=e*32,this._userInstancedBuffersStorage.data[a]=new Float32Array(this._userInstancedBuffersStorage.sizes[a]),this._userInstancedBuffersStorage.vertexBuffers[a]=new q(this.getEngine(),this._userInstancedBuffersStorage.data[a],a,!0,!1,e,!0);for(const s of this.instances)s.instancedBuffers[a]=null;this._invalidateInstanceVertexArrayObject(),this._markSubMeshesAsAttributesDirty()},Ne.prototype._processInstancedBuffers=function(a,e){const t=a?a.length:0;for(const i in this.instancedBuffers){let s=this._userInstancedBuffersStorage.sizes[i];const r=this._userInstancedBuffersStorage.strides[i],n=(t+1)*r;for(;s<n;)s*=2;this._userInstancedBuffersStorage.data[i].length!=s&&(this._userInstancedBuffersStorage.data[i]=new Float32Array(s),this._userInstancedBuffersStorage.sizes[i]=s,this._userInstancedBuffersStorage.vertexBuffers[i]&&(this._userInstancedBuffersStorage.vertexBuffers[i].dispose(),this._userInstancedBuffersStorage.vertexBuffers[i]=null));const o=this._userInstancedBuffersStorage.data[i];let l=0;if(e){const c=this.instancedBuffers[i];c.toArray?c.toArray(o,l):c.copyToArray?c.copyToArray(o,l):o[l]=c,l+=r}for(let c=0;c<t;c++){const f=a[c].instancedBuffers[i];f.toArray?f.toArray(o,l):f.copyToArray?f.copyToArray(o,l):o[l]=f,l+=r}this._userInstancedBuffersStorage.vertexBuffers[i]?this._userInstancedBuffersStorage.vertexBuffers[i].updateDirectly(o,0):(this._userInstancedBuffersStorage.vertexBuffers[i]=new q(this.getEngine(),this._userInstancedBuffersStorage.data[i],i,!0,!1,r,!0),this._invalidateInstanceVertexArrayObject())}},Ne.prototype._invalidateInstanceVertexArrayObject=function(){if(!(!this._userInstancedBuffersStorage||this._userInstancedBuffersStorage.vertexArrayObjects===void 0)){for(const a in this._userInstancedBuffersStorage.vertexArrayObjects)this.getEngine().releaseVertexArrayObject(this._userInstancedBuffersStorage.vertexArrayObjects[a]);this._userInstancedBuffersStorage.vertexArrayObjects={}}},Ne.prototype._disposeInstanceSpecificData=function(){for(this._instanceDataStorage.instancesBuffer&&(this._instanceDataStorage.instancesBuffer.dispose(),this._instanceDataStorage.instancesBuffer=null);this.instances.length;)this.instances[0].dispose();for(const a in this.instancedBuffers)this._userInstancedBuffersStorage.vertexBuffers[a]&&this._userInstancedBuffersStorage.vertexBuffers[a].dispose();this._invalidateInstanceVertexArrayObject(),this.instancedBuffers={}},ve("BABYLON.InstancedMesh",$x);class vs extends Rr{get range(){return this._range}set range(e){this._range=e,this._inverseSquaredRange=1/(this.range*this.range)}get intensityMode(){return this._intensityMode}set intensityMode(e){this._intensityMode=e,this._computePhotometricScale()}get radius(){return this._radius}set radius(e){this._radius=e,this._computePhotometricScale()}get shadowEnabled(){return this._shadowEnabled}set shadowEnabled(e){this._shadowEnabled!==e&&(this._shadowEnabled=e,this._markMeshesAsLightDirty())}get includedOnlyMeshes(){return this._includedOnlyMeshes}set includedOnlyMeshes(e){this._includedOnlyMeshes=e,this._hookArrayForIncludedOnly(e)}get excludedMeshes(){return this._excludedMeshes}set excludedMeshes(e){this._excludedMeshes=e,this._hookArrayForExcluded(e)}get excludeWithLayerMask(){return this._excludeWithLayerMask}set excludeWithLayerMask(e){this._excludeWithLayerMask=e,this._resyncMeshes()}get includeOnlyWithLayerMask(){return this._includeOnlyWithLayerMask}set includeOnlyWithLayerMask(e){this._includeOnlyWithLayerMask=e,this._resyncMeshes()}get lightmapMode(){return this._lightmapMode}set lightmapMode(e){this._lightmapMode!==e&&(this._lightmapMode=e,this._markMeshesAsLightDirty())}getViewMatrix(e){return null}getProjectionMatrix(e,t){return null}constructor(e,t){super(e,t,!1),this.diffuse=new Pe(1,1,1),this.specular=new Pe(1,1,1),this.falloffType=vs.FALLOFF_DEFAULT,this.intensity=1,this._range=Number.MAX_VALUE,this._inverseSquaredRange=0,this._photometricScale=1,this._intensityMode=vs.INTENSITYMODE_AUTOMATIC,this._radius=1e-5,this.renderPriority=0,this._shadowEnabled=!0,this._excludeWithLayerMask=0,this._includeOnlyWithLayerMask=0,this._lightmapMode=0,this._shadowGenerators=null,this._excludedMeshesIds=new Array,this._includedOnlyMeshesIds=new Array,this._isLight=!0,this.getScene().addLight(this),this._uniformBuffer=new Ti(this.getScene().getEngine(),void 0,void 0,e),this._buildUniformLayout(),this.includedOnlyMeshes=[],this.excludedMeshes=[],this._resyncMeshes()}transferTexturesToEffect(e,t){return this}_bindLight(e,t,i,s,r=!0){const n=e.toString();let o=!1;if(this._uniformBuffer.bindToEffect(i,"Light"+n),this._renderId!==t.getRenderId()||this._lastUseSpecular!==s||!this._uniformBuffer.useUbo){this._renderId=t.getRenderId(),this._lastUseSpecular=s;const l=this.getScaledIntensity();this.transferToEffect(i,n),this.diffuse.scaleToRef(l,Sr.Color3[0]),this._uniformBuffer.updateColor4("vLightDiffuse",Sr.Color3[0],this.range,n),s&&(this.specular.scaleToRef(l,Sr.Color3[1]),this._uniformBuffer.updateColor4("vLightSpecular",Sr.Color3[1],this.radius,n)),o=!0}if(this.transferTexturesToEffect(i,n),t.shadowsEnabled&&this.shadowEnabled&&r){const l=this.getShadowGenerator(t.activeCamera)??this.getShadowGenerator();l&&(l.bindShadowLight(n,i),o=!0)}o?this._uniformBuffer.update():this._uniformBuffer.bindUniformBuffer()}getClassName(){return"Light"}toString(e){let t="Name: "+this.name;if(t+=", type: "+["Point","Directional","Spot","Hemispheric"][this.getTypeID()],this.animations)for(let i=0;i<this.animations.length;i++)t+=", animation[0]: "+this.animations[i].toString(e);return t}_syncParentEnabledState(){super._syncParentEnabledState(),this.isDisposed()||this._resyncMeshes()}setEnabled(e){super.setEnabled(e),this._resyncMeshes()}getShadowGenerator(e=null){return this._shadowGenerators===null?null:this._shadowGenerators.get(e)??null}getShadowGenerators(){return this._shadowGenerators}getAbsolutePosition(){return P.Zero()}canAffectMesh(e){return e?!(this.includedOnlyMeshes&&this.includedOnlyMeshes.length>0&&this.includedOnlyMeshes.indexOf(e)===-1||this.excludedMeshes&&this.excludedMeshes.length>0&&this.excludedMeshes.indexOf(e)!==-1||this.includeOnlyWithLayerMask!==0&&!(this.includeOnlyWithLayerMask&e.layerMask)||this.excludeWithLayerMask!==0&&this.excludeWithLayerMask&e.layerMask):!0}dispose(e,t=!1){if(this._shadowGenerators){const i=this._shadowGenerators.values();for(let s=i.next();s.done!==!0;s=i.next())s.value.dispose();this._shadowGenerators=null}if(this.getScene().stopAnimation(this),this._parentContainer){const i=this._parentContainer.lights.indexOf(this);i>-1&&this._parentContainer.lights.splice(i,1),this._parentContainer=null}for(const i of this.getScene().meshes)i._removeLightSource(this,!0);this._uniformBuffer.dispose(),this.getScene().removeLight(this),super.dispose(e,t)}getTypeID(){return 0}getScaledIntensity(){return this._photometricScale*this.intensity}clone(e,t=null){const i=vs.GetConstructorFromName(this.getTypeID(),e,this.getScene());if(!i)return null;const s=It.Clone(i,this);return e&&(s.name=e),t&&(s.parent=t),s.setEnabled(this.isEnabled()),this.onClonedObservable.notifyObservers(s),s}serialize(){const e=It.Serialize(this);return e.uniqueId=this.uniqueId,e.type=this.getTypeID(),this.parent&&this.parent._serializeAsParent(e),this.excludedMeshes.length>0&&(e.excludedMeshesIds=[],this.excludedMeshes.forEach(t=>{e.excludedMeshesIds.push(t.id)})),this.includedOnlyMeshes.length>0&&(e.includedOnlyMeshesIds=[],this.includedOnlyMeshes.forEach(t=>{e.includedOnlyMeshesIds.push(t.id)})),It.AppendSerializedAnimations(this,e),e.ranges=this.serializeAnimationRanges(),e.isEnabled=this.isEnabled(),e}static GetConstructorFromName(e,t,i){const s=Rr.Construct("Light_Type_"+e,t,i);return s||null}static Parse(e,t){const i=vs.GetConstructorFromName(e.type,e.name,t);if(!i)return null;const s=It.Parse(i,e,t);if(e.excludedMeshesIds&&(s._excludedMeshesIds=e.excludedMeshesIds),e.includedOnlyMeshesIds&&(s._includedOnlyMeshesIds=e.includedOnlyMeshesIds),e.parentId!==void 0&&(s._waitingParentId=e.parentId),e.parentInstanceIndex!==void 0&&(s._waitingParentInstanceIndex=e.parentInstanceIndex),e.falloffType!==void 0&&(s.falloffType=e.falloffType),e.lightmapMode!==void 0&&(s.lightmapMode=e.lightmapMode),e.animations){for(let r=0;r<e.animations.length;r++){const n=e.animations[r],o=ea("BABYLON.Animation");o&&s.animations.push(o.Parse(n))}Rr.ParseAnimationRanges(s,e,t)}return e.autoAnimate&&t.beginAnimation(s,e.autoAnimateFrom,e.autoAnimateTo,e.autoAnimateLoop,e.autoAnimateSpeed||1),e.isEnabled!==void 0&&s.setEnabled(e.isEnabled),s}_hookArrayForExcluded(e){const t=e.push;e.push=(...s)=>{const r=t.apply(e,s);for(const n of s)n._resyncLightSource(this);return r};const i=e.splice;e.splice=(s,r)=>{const n=i.apply(e,[s,r]);for(const o of n)o._resyncLightSource(this);return n};for(const s of e)s._resyncLightSource(this)}_hookArrayForIncludedOnly(e){const t=e.push;e.push=(...s)=>{const r=t.apply(e,s);return this._resyncMeshes(),r};const i=e.splice;e.splice=(s,r)=>{const n=i.apply(e,[s,r]);return this._resyncMeshes(),n},this._resyncMeshes()}_resyncMeshes(){for(const e of this.getScene().meshes)e._resyncLightSource(this)}_markMeshesAsLightDirty(){for(const e of this.getScene().meshes)e.lightSources.indexOf(this)!==-1&&e._markSubMeshesAsLightDirty()}_computePhotometricScale(){this._photometricScale=this._getPhotometricScale(),this.getScene().resetCachedMaterial()}_getPhotometricScale(){let e=0;const t=this.getTypeID();let i=this.intensityMode;switch(i===vs.INTENSITYMODE_AUTOMATIC&&(t===vs.LIGHTTYPEID_DIRECTIONALLIGHT?i=vs.INTENSITYMODE_ILLUMINANCE:i=vs.INTENSITYMODE_LUMINOUSINTENSITY),t){case vs.LIGHTTYPEID_POINTLIGHT:case vs.LIGHTTYPEID_SPOTLIGHT:switch(i){case vs.INTENSITYMODE_LUMINOUSPOWER:e=1/(4*Math.PI);break;case vs.INTENSITYMODE_LUMINOUSINTENSITY:e=1;break;case vs.INTENSITYMODE_LUMINANCE:e=this.radius*this.radius;break}break;case vs.LIGHTTYPEID_DIRECTIONALLIGHT:switch(i){case vs.INTENSITYMODE_ILLUMINANCE:e=1;break;case vs.INTENSITYMODE_LUMINANCE:{let s=this.radius;s=Math.max(s,.001),e=2*Math.PI*(1-Math.cos(s));break}}break;case vs.LIGHTTYPEID_HEMISPHERICLIGHT:e=1;break}return e}_reorderLightsInScene(){const e=this.getScene();this._renderPriority!=0&&(e.requireLightSorting=!0),this.getScene().sortLightsByPriority()}_isReady(){return!0}}vs.FALLOFF_DEFAULT=qr.FALLOFF_DEFAULT,vs.FALLOFF_PHYSICAL=qr.FALLOFF_PHYSICAL,vs.FALLOFF_GLTF=qr.FALLOFF_GLTF,vs.FALLOFF_STANDARD=qr.FALLOFF_STANDARD,vs.LIGHTMAP_DEFAULT=qr.LIGHTMAP_DEFAULT,vs.LIGHTMAP_SPECULAR=qr.LIGHTMAP_SPECULAR,vs.LIGHTMAP_SHADOWSONLY=qr.LIGHTMAP_SHADOWSONLY,vs.INTENSITYMODE_AUTOMATIC=qr.INTENSITYMODE_AUTOMATIC,vs.INTENSITYMODE_LUMINOUSPOWER=qr.INTENSITYMODE_LUMINOUSPOWER,vs.INTENSITYMODE_LUMINOUSINTENSITY=qr.INTENSITYMODE_LUMINOUSINTENSITY,vs.INTENSITYMODE_ILLUMINANCE=qr.INTENSITYMODE_ILLUMINANCE,vs.INTENSITYMODE_LUMINANCE=qr.INTENSITYMODE_LUMINANCE,vs.LIGHTTYPEID_POINTLIGHT=qr.LIGHTTYPEID_POINTLIGHT,vs.LIGHTTYPEID_DIRECTIONALLIGHT=qr.LIGHTTYPEID_DIRECTIONALLIGHT,vs.LIGHTTYPEID_SPOTLIGHT=qr.LIGHTTYPEID_SPOTLIGHT,vs.LIGHTTYPEID_HEMISPHERICLIGHT=qr.LIGHTTYPEID_HEMISPHERICLIGHT,vs.LIGHTTYPEID_RECT_AREALIGHT=qr.LIGHTTYPEID_RECT_AREALIGHT,F([qs()],vs.prototype,"diffuse",void 0),F([qs()],vs.prototype,"specular",void 0),F([G()],vs.prototype,"falloffType",void 0),F([G()],vs.prototype,"intensity",void 0),F([G()],vs.prototype,"range",null),F([G()],vs.prototype,"intensityMode",null),F([G()],vs.prototype,"radius",null),F([G()],vs.prototype,"_renderPriority",void 0),F([et("_reorderLightsInScene")],vs.prototype,"renderPriority",void 0),F([G("shadowEnabled")],vs.prototype,"_shadowEnabled",void 0),F([G("excludeWithLayerMask")],vs.prototype,"_excludeWithLayerMask",void 0),F([G("includeOnlyWithLayerMask")],vs.prototype,"_includeOnlyWithLayerMask",void 0),F([G("lightmapMode")],vs.prototype,"_lightmapMode",void 0);class aZ{constructor(){this.rootNodes=[],this.cameras=[],this.lights=[],this.meshes=[],this.skeletons=[],this.particleSystems=[],this.animations=[],this.animationGroups=[],this.multiMaterials=[],this.materials=[],this.morphTargetManagers=[],this.geometries=[],this.transformNodes=[],this.actionManagers=[],this.textures=[],this._environmentTexture=null,this.postProcesses=[],this.sounds=null,this.effectLayers=[],this.layers=[],this.reflectionProbes=[]}get environmentTexture(){return this._environmentTexture}set environmentTexture(e){this._environmentTexture=e}getNodes(){let e=[];return e=e.concat(this.meshes),e=e.concat(this.lights),e=e.concat(this.cameras),e=e.concat(this.transformNodes),this.skeletons.forEach(t=>e=e.concat(t.bones)),e}}class Vhe extends aZ{}class Ghe{constructor(){this.rootNodes=[],this.skeletons=[],this.animationGroups=[]}dispose(){this.rootNodes.slice(0).forEach(e=>{e.dispose()}),this.rootNodes.length=0,this.skeletons.slice(0).forEach(e=>{e.dispose()}),this.skeletons.length=0,this.animationGroups.slice(0).forEach(e=>{e.dispose()}),this.animationGroups.length=0}}class bP extends aZ{constructor(e){super(),this._wasAddedToScene=!1,e=e||ei.LastCreatedScene,e&&(this.scene=e,this.proceduralTextures=[],e.onDisposeObservable.add(()=>{this._wasAddedToScene||this.dispose()}),this._onContextRestoredObserver=e.getEngine().onContextRestoredObservable.add(()=>{for(const t of this.geometries)t._rebuild();for(const t of this.meshes)t._rebuild();for(const t of this.particleSystems)t.rebuild();for(const t of this.textures)t._rebuild()}))}_topologicalSort(e){const t=new Map;for(const o of e)t.set(o.uniqueId,o);const i={dependsOn:new Map,dependedBy:new Map};for(const o of e){const l=o.uniqueId;i.dependsOn.set(l,new Set),i.dependedBy.set(l,new Set)}for(const o of e){const l=o.uniqueId,c=i.dependsOn.get(l);if(o instanceof $x){const f=o.sourceMesh;t.has(f.uniqueId)&&(c.add(f.uniqueId),i.dependedBy.get(f.uniqueId).add(l))}const u=i.dependedBy.get(l);for(const f of o.getDescendants()){const p=f.uniqueId;t.has(p)&&(u.add(p),i.dependsOn.get(p).add(l))}}const s=[],r=[];for(const o of e){const l=o.uniqueId;i.dependsOn.get(l).size===0&&(r.push(o),t.delete(l))}const n=r;for(;n.length>0;){const o=n.shift();s.push(o);const l=i.dependedBy.get(o.uniqueId);for(const c of Array.from(l.values())){const u=i.dependsOn.get(c);u.delete(o.uniqueId),u.size===0&&t.get(c)&&(n.push(t.get(c)),t.delete(c))}}return t.size>0&&(de.Error("SceneSerializer._topologicalSort: There were unvisited nodes:"),t.forEach(o=>de.Error(o.name))),s}_addNodeAndDescendantsToList(e,t,i,s){if(!(!i||s&&!s(i)||t.has(i.uniqueId))){e.push(i),t.add(i.uniqueId);for(const r of i.getDescendants(!0))this._addNodeAndDescendantsToList(e,t,r,s)}}_isNodeInContainer(e){return e instanceof cr&&this.meshes.indexOf(e)!==-1||e instanceof Si&&this.transformNodes.indexOf(e)!==-1||e instanceof vs&&this.lights.indexOf(e)!==-1||e instanceof _i&&this.cameras.indexOf(e)!==-1}_isValidHierarchy(){for(const e of this.meshes)if(e.parent&&!this._isNodeInContainer(e.parent))return de.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;for(const e of this.transformNodes)if(e.parent&&!this._isNodeInContainer(e.parent))return de.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;for(const e of this.lights)if(e.parent&&!this._isNodeInContainer(e.parent))return de.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;for(const e of this.cameras)if(e.parent&&!this._isNodeInContainer(e.parent))return de.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;return!0}instantiateModelsToScene(e,t=!1,i){this._isValidHierarchy()||Le.Warn("SceneSerializer.InstantiateModelsToScene: The Asset Container hierarchy is not valid.");const s={},r={},n=new Ghe,o=[],l=[],c={doNotInstantiate:!0,...i},u=(d,h)=>{if(s[d.uniqueId]=h.uniqueId,r[h.uniqueId]=h,e&&(h.name=e(d.name)),h instanceof Ne){const x=h;if(x.morphTargetManager){const A=d.morphTargetManager;x.morphTargetManager=A.clone();for(let S=0;S<A.numTargets;S++){const E=A.getTarget(S),b=x.morphTargetManager.getTarget(S);s[E.uniqueId]=b.uniqueId,r[b.uniqueId]=b}}}},f=[],p=new Set;for(const d of this.transformNodes)d.parent===null&&this._addNodeAndDescendantsToList(f,p,d,c.predicate);for(const d of this.meshes)d.parent===null&&this._addNodeAndDescendantsToList(f,p,d,c.predicate);const m=this._topologicalSort(f),_=(d,h)=>{if(u(d,h),d.parent){const x=s[d.parent.uniqueId],A=r[x];A?h.parent=A:h.parent=d.parent}if(h.position&&d.position&&h.position.copyFrom(d.position),h.rotationQuaternion&&d.rotationQuaternion&&h.rotationQuaternion.copyFrom(d.rotationQuaternion),h.rotation&&d.rotation&&h.rotation.copyFrom(d.rotation),h.scaling&&d.scaling&&h.scaling.copyFrom(d.scaling),h.material){const x=h;if(x.material)if(t){const A=d.material;if(l.indexOf(A)===-1){let S=A.clone(e?e(A.name):"Clone of "+A.name);if(l.push(A),s[A.uniqueId]=S.uniqueId,r[S.uniqueId]=S,A.getClassName()==="MultiMaterial"){const E=A;for(const b of E.subMaterials)b&&(S=b.clone(e?e(b.name):"Clone of "+b.name),l.push(b),s[b.uniqueId]=S.uniqueId,r[S.uniqueId]=S);E.subMaterials=E.subMaterials.map(b=>b&&r[s[b.uniqueId]])}}x.getClassName()!=="InstancedMesh"&&(x.material=r[s[A.uniqueId]])}else x.material.getClassName()==="MultiMaterial"?this.scene.multiMaterials.indexOf(x.material)===-1&&this.scene.addMultiMaterial(x.material):this.scene.materials.indexOf(x.material)===-1&&this.scene.addMaterial(x.material)}h.parent===null&&n.rootNodes.push(h)};return m.forEach(d=>{if(d.getClassName()==="InstancedMesh"){const h=d,x=h.sourceMesh,A=s[x.uniqueId],E=(typeof A=="number"?r[A]:x).createInstance(h.name);_(h,E)}else{let h=!0;d.getClassName()==="TransformNode"||d.getClassName()==="Node"||d.skeleton||!d.getTotalVertices||d.getTotalVertices()===0?h=!1:c.doNotInstantiate&&(typeof c.doNotInstantiate=="function"?h=!c.doNotInstantiate(d):h=!c.doNotInstantiate);const x=h?d.createInstance(`instance of ${d.name}`):d.clone(`Clone of ${d.name}`,null,!0);if(!x)throw new Error(`Could not clone or instantiate node on Asset Container ${d.name}`);_(d,x)}}),this.skeletons.forEach(d=>{if(c.predicate&&!c.predicate(d))return;const h=d.clone(e?e(d.name):"Clone of "+d.name);for(const x of this.meshes)if(x.skeleton===d&&!x.isAnInstance){const A=r[s[x.uniqueId]];if(!A||A.isAnInstance||(A.skeleton=h,o.indexOf(h)!==-1))continue;o.push(h);for(const S of h.bones)S._linkedTransformNode&&(S._linkedTransformNode=r[s[S._linkedTransformNode.uniqueId]])}n.skeletons.push(h)}),this.animationGroups.forEach(d=>{if(c.predicate&&!c.predicate(d))return;const h=d.clone(e?e(d.name):"Clone of "+d.name,x=>r[s[x.uniqueId]]||x);n.animationGroups.push(h)}),n}addAllToScene(){if(!this._wasAddedToScene){this._isValidHierarchy()||Le.Warn("SceneSerializer.addAllToScene: The Asset Container hierarchy is not valid."),this._wasAddedToScene=!0,this.addToScene(null),this.environmentTexture&&(this.scene.environmentTexture=this.environmentTexture);for(const e of this.scene._serializableComponents)e.addFromContainer(this);this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null}}addToScene(e=null){const t=[];this.cameras.forEach(i=>{e&&!e(i)||(this.scene.addCamera(i),t.push(i))}),this.lights.forEach(i=>{e&&!e(i)||(this.scene.addLight(i),t.push(i))}),this.meshes.forEach(i=>{e&&!e(i)||(this.scene.addMesh(i),t.push(i))}),this.skeletons.forEach(i=>{e&&!e(i)||this.scene.addSkeleton(i)}),this.animations.forEach(i=>{e&&!e(i)||this.scene.addAnimation(i)}),this.animationGroups.forEach(i=>{e&&!e(i)||this.scene.addAnimationGroup(i)}),this.multiMaterials.forEach(i=>{e&&!e(i)||this.scene.addMultiMaterial(i)}),this.materials.forEach(i=>{e&&!e(i)||this.scene.addMaterial(i)}),this.morphTargetManagers.forEach(i=>{e&&!e(i)||this.scene.addMorphTargetManager(i)}),this.geometries.forEach(i=>{e&&!e(i)||this.scene.addGeometry(i)}),this.transformNodes.forEach(i=>{e&&!e(i)||(this.scene.addTransformNode(i),t.push(i))}),this.actionManagers.forEach(i=>{e&&!e(i)||this.scene.addActionManager(i)}),this.textures.forEach(i=>{e&&!e(i)||this.scene.addTexture(i)}),this.reflectionProbes.forEach(i=>{e&&!e(i)||this.scene.addReflectionProbe(i)});for(const i of t)i.parent&&this.scene.getNodes().indexOf(i.parent)===-1&&(i.setParent?i.setParent(null):i.parent=null)}removeAllFromScene(){this._isValidHierarchy()||Le.Warn("SceneSerializer.removeAllFromScene: The Asset Container hierarchy is not valid."),this._wasAddedToScene=!1,this.removeFromScene(null),this.environmentTexture===this.scene.environmentTexture&&(this.scene.environmentTexture=null);for(const e of this.scene._serializableComponents)e.removeFromContainer(this)}removeFromScene(e=null){this.cameras.forEach(t=>{e&&!e(t)||this.scene.removeCamera(t)}),this.lights.forEach(t=>{e&&!e(t)||this.scene.removeLight(t)}),this.meshes.forEach(t=>{e&&!e(t)||this.scene.removeMesh(t,!0)}),this.skeletons.forEach(t=>{e&&!e(t)||this.scene.removeSkeleton(t)}),this.animations.forEach(t=>{e&&!e(t)||this.scene.removeAnimation(t)}),this.animationGroups.forEach(t=>{e&&!e(t)||this.scene.removeAnimationGroup(t)}),this.multiMaterials.forEach(t=>{e&&!e(t)||this.scene.removeMultiMaterial(t)}),this.materials.forEach(t=>{e&&!e(t)||this.scene.removeMaterial(t)}),this.morphTargetManagers.forEach(t=>{e&&!e(t)||this.scene.removeMorphTargetManager(t)}),this.geometries.forEach(t=>{e&&!e(t)||this.scene.removeGeometry(t)}),this.transformNodes.forEach(t=>{e&&!e(t)||this.scene.removeTransformNode(t)}),this.actionManagers.forEach(t=>{e&&!e(t)||this.scene.removeActionManager(t)}),this.textures.forEach(t=>{e&&!e(t)||this.scene.removeTexture(t)}),this.reflectionProbes.forEach(t=>{e&&!e(t)||this.scene.removeReflectionProbe(t)})}dispose(){this.cameras.slice(0).forEach(e=>{e.dispose()}),this.cameras.length=0,this.lights.slice(0).forEach(e=>{e.dispose()}),this.lights.length=0,this.meshes.slice(0).forEach(e=>{e.dispose()}),this.meshes.length=0,this.skeletons.slice(0).forEach(e=>{e.dispose()}),this.skeletons.length=0,this.animationGroups.slice(0).forEach(e=>{e.dispose()}),this.animationGroups.length=0,this.multiMaterials.slice(0).forEach(e=>{e.dispose()}),this.multiMaterials.length=0,this.materials.slice(0).forEach(e=>{e.dispose()}),this.materials.length=0,this.geometries.slice(0).forEach(e=>{e.dispose()}),this.geometries.length=0,this.transformNodes.slice(0).forEach(e=>{e.dispose()}),this.transformNodes.length=0,this.actionManagers.slice(0).forEach(e=>{e.dispose()}),this.actionManagers.length=0,this.textures.slice(0).forEach(e=>{e.dispose()}),this.textures.length=0,this.reflectionProbes.slice(0).forEach(e=>{e.dispose()}),this.reflectionProbes.length=0,this.morphTargetManagers.slice(0).forEach(e=>{e.dispose()}),this.morphTargetManagers.length=0,this.environmentTexture&&(this.environmentTexture.dispose(),this.environmentTexture=null);for(const e of this.scene._serializableComponents)e.removeFromContainer(this,!0);this._onContextRestoredObserver&&(this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null)}_moveAssets(e,t,i){if(!(!e||!t))for(const s of e){let r=!0;if(i){for(const n of i)if(s===n){r=!1;break}}r&&(t.push(s),s._parentContainer=this)}}moveAllFromScene(e){this._wasAddedToScene=!1,e===void 0&&(e=new Vhe);for(const t in this)Object.prototype.hasOwnProperty.call(this,t)&&(this[t]=this[t]||(t==="_environmentTexture"?null:[]),this._moveAssets(this.scene[t],this[t],e[t]));this.environmentTexture=this.scene.environmentTexture,this.removeAllFromScene()}createRootMesh(){const e=new Ne("assetContainerRootMesh",this.scene);return this.meshes.forEach(t=>{t.parent||e.addChild(t)}),this.meshes.unshift(e),e}mergeAnimationsTo(e=ei.LastCreatedScene,t,i=null){if(!e)return de.Error("No scene available to merge animations to"),[];const s=i||(o=>{let l=null;const c=o.animations.length?o.animations[0].targetProperty:"",u=o.name.split(".").join("").split("_primitive")[0];switch(c){case"position":case"rotationQuaternion":l=e.getTransformNodeByName(o.name)||e.getTransformNodeByName(u);break;case"influence":l=e.getMorphTargetByName(o.name)||e.getMorphTargetByName(u);break;default:l=e.getNodeByName(o.name)||e.getNodeByName(u)}return l});this.getNodes().forEach(o=>{const l=s(o);if(l!==null){for(const c of o.animations){const u=l.animations.filter(f=>f.targetProperty===c.targetProperty);for(const f of u){const p=l.animations.indexOf(f,0);p>-1&&l.animations.splice(p,1)}}l.animations=l.animations.concat(o.animations)}});const n=[];return this.animationGroups.slice().forEach(o=>{n.push(o.clone(o.name,s)),o.animatables.forEach(l=>{l.stop()})}),t.forEach(o=>{const l=s(o.target);l&&(e.beginAnimation(l,o.fromFrame,o.toFrame,o.loopAnimation,o.speedRatio,o.onAnimationEnd?o.onAnimationEnd:void 0,void 0,!0,void 0,o.onAnimationLoop?o.onAnimationLoop:void 0),e.stopAnimation(o.target))}),n}populateRootNodes(){this.rootNodes.length=0,this.meshes.forEach(e=>{!e.parent&&this.rootNodes.indexOf(e)===-1&&this.rootNodes.push(e)}),this.transformNodes.forEach(e=>{!e.parent&&this.rootNodes.indexOf(e)===-1&&this.rootNodes.push(e)}),this.lights.forEach(e=>{!e.parent&&this.rootNodes.indexOf(e)===-1&&this.rootNodes.push(e)}),this.cameras.forEach(e=>{!e.parent&&this.rootNodes.indexOf(e)===-1&&this.rootNodes.push(e)})}addAllAssetsToContainer(e){if(!e)return;const t=[],i=new Set;for(t.push(e);t.length>0;){const s=t.pop();if(s instanceof Ne?(s.geometry&&this.geometries.indexOf(s.geometry)===-1&&this.geometries.push(s.geometry),this.meshes.push(s)):s instanceof Si?this.transformNodes.push(s):s instanceof vs?this.lights.push(s):s instanceof _i&&this.cameras.push(s),s instanceof cr){if(s.material&&this.materials.indexOf(s.material)===-1){this.materials.push(s.material);for(const r of s.material.getActiveTextures())this.textures.indexOf(r)===-1&&this.textures.push(r)}s.skeleton&&this.skeletons.indexOf(s.skeleton)===-1&&this.skeletons.push(s.skeleton),s.morphTargetManager&&this.morphTargetManagers.indexOf(s.morphTargetManager)===-1&&this.morphTargetManagers.push(s.morphTargetManager)}for(const r of s.getChildren())i.has(r)||t.push(r);i.add(s)}this.populateRootNodes()}_getByTags(e,t,i){if(t===void 0)return e;const s=[];for(const r in e){const n=e[r];ar&&ar.MatchesQuery(n,t)&&(!i||i(n))&&s.push(n)}return s}getMeshesByTags(e,t){return this._getByTags(this.meshes,e,t)}getCamerasByTags(e,t){return this._getByTags(this.cameras,e,t)}getLightsByTags(e,t){return this._getByTags(this.lights,e,t)}getMaterialsByTags(e,t){return this._getByTags(this.materials,e,t).concat(this._getByTags(this.multiMaterials,e,t))}getTransformNodesByTags(e,t){return this._getByTags(this.transformNodes,e,t)}}class Lw{constructor(e){this.byteOffset=0,this.buffer=e}loadAsync(e){return this.buffer.readAsync(this.byteOffset,e).then(t=>{this._dataView=new DataView(t.buffer,t.byteOffset,t.byteLength),this._dataByteOffset=0})}readUint32(){const e=this._dataView.getUint32(this._dataByteOffset,!0);return this._dataByteOffset+=4,this.byteOffset+=4,e}readUint8Array(e){const t=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._dataByteOffset,e);return this._dataByteOffset+=e,this.byteOffset+=e,t}readString(e){return rX(this.readUint8Array(e))}skipBytes(e){this._dataByteOffset+=e,this.byteOffset+=e}}function oZ(a,e,t,i){const s={externalResourceFunction:i};return t&&(s.uri=e==="file:"?t:e+t),ArrayBuffer.isView(a)?GLTFValidator.validateBytes(a,s):GLTFValidator.validateString(a,s)}function $Oe(){const a=[];onmessage=e=>{const t=e.data;switch(t.id){case"init":{importScripts(t.url);break}case"validate":{oZ(t.data,t.rootUrl,t.fileName,i=>new Promise((s,r)=>{const n=a.length;a.push({resolve:s,reject:r}),postMessage({id:"getExternalResource",index:n,uri:i})})).then(i=>{postMessage({id:"validate.resolve",value:i})},i=>{postMessage({id:"validate.reject",reason:i})});break}case"getExternalResource.resolve":{a[t.index].resolve(t.value);break}case"getExternalResource.reject":{a[t.index].reject(t.reason);break}}}}class lZ{static ValidateAsync(e,t,i,s){return typeof Worker=="function"?new Promise((r,n)=>{const o=`${oZ}(${$Oe})()`,l=URL.createObjectURL(new Blob([o],{type:"application/javascript"})),c=new Worker(l),u=p=>{c.removeEventListener("error",u),c.removeEventListener("message",f),n(p)},f=p=>{const m=p.data;switch(m.id){case"getExternalResource":{s(m.uri).then(_=>{c.postMessage({id:"getExternalResource.resolve",index:m.index,value:_},[_.buffer])},_=>{c.postMessage({id:"getExternalResource.reject",index:m.index,reason:_})});break}case"validate.resolve":{c.removeEventListener("error",u),c.removeEventListener("message",f),r(m.value),c.terminate();break}case"validate.reject":c.removeEventListener("error",u),c.removeEventListener("message",f),n(m.reason),c.terminate()}};if(c.addEventListener("error",u),c.addEventListener("message",f),c.postMessage({id:"init",url:Le.GetBabylonScriptURL(this.Configuration.url)}),ArrayBuffer.isView(e)){const p=e.slice();c.postMessage({id:"validate",data:p,rootUrl:t,fileName:i},[p.buffer])}else c.postMessage({id:"validate",data:e,rootUrl:t,fileName:i})}):(this._LoadScriptPromise||(this._LoadScriptPromise=Le.LoadBabylonScriptAsync(this.Configuration.url)),this._LoadScriptPromise.then(()=>oZ(e,t,i,s)))}}lZ.Configuration={url:`${Le._DefaultCdnUrl}/gltf_validator.js`};const RT="Z2xURg",CG={name:"gltf",extensions:{".gltf":{isBinary:!1,mimeType:"model/gltf+json"},".glb":{isBinary:!0,mimeType:"model/gltf-binary"}},canDirectLoad(a){return a.indexOf("asset")!==-1&&a.indexOf("version")!==-1||a.startsWith("data:base64,"+RT)||a.startsWith("data:;base64,"+RT)||a.startsWith("data:application/octet-stream;base64,"+RT)||a.startsWith("data:model/gltf-binary;base64,"+RT)}};function Whe(a,e,t){try{return Promise.resolve(new Uint8Array(a,e,t))}catch(i){return Promise.reject(i)}}function eRe(a,e,t){try{if(e<0||e>=a.byteLength)throw new RangeError("Offset is out of range.");if(e+t>a.byteLength)throw new RangeError("Length is out of range.");return Promise.resolve(new Uint8Array(a.buffer,a.byteOffset+e,t))}catch(i){return Promise.reject(i)}}var SP;(function(a){a[a.AUTO=0]="AUTO",a[a.FORCE_RIGHT_HANDED=1]="FORCE_RIGHT_HANDED"})(SP||(SP={}));var Z9;(function(a){a[a.NONE=0]="NONE",a[a.FIRST=1]="FIRST",a[a.ALL=2]="ALL"})(Z9||(Z9={}));var C0;(function(a){a[a.LOADING=0]="LOADING",a[a.READY=1]="READY",a[a.COMPLETE=2]="COMPLETE"})(C0||(C0={}));class tRe{constructor(){this.coordinateSystemMode=SP.AUTO,this.animationStartMode=Z9.FIRST,this.loadNodeAnimations=!0,this.loadSkins=!0,this.loadMorphTargets=!0,this.compileMaterials=!1,this.useClipPlane=!1,this.compileShadowGenerators=!1,this.transparencyAsCoverage=!1,this.useRangeRequests=!1,this.createInstances=!0,this.alwaysComputeBoundingBox=!1,this.loadAllMaterials=!1,this.loadOnlyMaterials=!1,this.skipMaterials=!1,this.useSRGBBuffers=!0,this.targetFps=60,this.alwaysComputeSkeletonRootNode=!1,this.useGltfTextureNames=!1,this.preprocessUrlAsync=e=>Promise.resolve(e),this.extensionOptions={}}copyFrom(e){e&&(this.onParsed=e.onParsed,this.coordinateSystemMode=e.coordinateSystemMode??this.coordinateSystemMode,this.animationStartMode=e.animationStartMode??this.animationStartMode,this.loadNodeAnimations=e.loadNodeAnimations??this.loadNodeAnimations,this.loadSkins=e.loadSkins??this.loadSkins,this.loadMorphTargets=e.loadMorphTargets??this.loadMorphTargets,this.compileMaterials=e.compileMaterials??this.compileMaterials,this.useClipPlane=e.useClipPlane??this.useClipPlane,this.compileShadowGenerators=e.compileShadowGenerators??this.compileShadowGenerators,this.transparencyAsCoverage=e.transparencyAsCoverage??this.transparencyAsCoverage,this.useRangeRequests=e.useRangeRequests??this.useRangeRequests,this.createInstances=e.createInstances??this.createInstances,this.alwaysComputeBoundingBox=e.alwaysComputeBoundingBox??this.alwaysComputeBoundingBox,this.loadAllMaterials=e.loadAllMaterials??this.loadAllMaterials,this.loadOnlyMaterials=e.loadOnlyMaterials??this.loadOnlyMaterials,this.skipMaterials=e.skipMaterials??this.skipMaterials,this.useSRGBBuffers=e.useSRGBBuffers??this.useSRGBBuffers,this.targetFps=e.targetFps??this.targetFps,this.alwaysComputeSkeletonRootNode=e.alwaysComputeSkeletonRootNode??this.alwaysComputeSkeletonRootNode,this.useGltfTextureNames=e.useGltfTextureNames??this.useGltfTextureNames,this.preprocessUrlAsync=e.preprocessUrlAsync??this.preprocessUrlAsync,this.customRootNode=e.customRootNode,this.onMeshLoaded=e.onMeshLoaded,this.onSkinLoaded=e.onSkinLoaded,this.onTextureLoaded=e.onTextureLoaded,this.onMaterialLoaded=e.onMaterialLoaded,this.onCameraLoaded=e.onCameraLoaded,this.extensionOptions=e.extensionOptions??this.extensionOptions)}}class ku extends tRe{constructor(e){super(),this.onParsedObservable=new xe,this.onMeshLoadedObservable=new xe,this.onSkinLoadedObservable=new xe,this.onTextureLoadedObservable=new xe,this.onMaterialLoadedObservable=new xe,this.onCameraLoadedObservable=new xe,this.onCompleteObservable=new xe,this.onErrorObservable=new xe,this.onDisposeObservable=new xe,this.onExtensionLoadedObservable=new xe,this.validate=!1,this.onValidatedObservable=new xe,this._loader=null,this._state=null,this._requests=new Array,this.name=CG.name,this.extensions=CG.extensions,this.onLoaderStateChangedObservable=new xe,this._logIndentLevel=0,this._loggingEnabled=!1,this._log=this._logDisabled,this._capturePerformanceCounters=!1,this._startPerformanceCounter=this._startPerformanceCounterDisabled,this._endPerformanceCounter=this._endPerformanceCounterDisabled,this.copyFrom(e)}set onParsed(e){this._onParsedObserver&&this.onParsedObservable.remove(this._onParsedObserver),e&&(this._onParsedObserver=this.onParsedObservable.add(e))}set onMeshLoaded(e){this._onMeshLoadedObserver&&this.onMeshLoadedObservable.remove(this._onMeshLoadedObserver),e&&(this._onMeshLoadedObserver=this.onMeshLoadedObservable.add(e))}set onSkinLoaded(e){this._onSkinLoadedObserver&&this.onSkinLoadedObservable.remove(this._onSkinLoadedObserver),e&&(this._onSkinLoadedObserver=this.onSkinLoadedObservable.add(t=>e(t.node,t.skinnedNode)))}set onTextureLoaded(e){this._onTextureLoadedObserver&&this.onTextureLoadedObservable.remove(this._onTextureLoadedObserver),e&&(this._onTextureLoadedObserver=this.onTextureLoadedObservable.add(e))}set onMaterialLoaded(e){this._onMaterialLoadedObserver&&this.onMaterialLoadedObservable.remove(this._onMaterialLoadedObserver),e&&(this._onMaterialLoadedObserver=this.onMaterialLoadedObservable.add(e))}set onCameraLoaded(e){this._onCameraLoadedObserver&&this.onCameraLoadedObservable.remove(this._onCameraLoadedObserver),e&&(this._onCameraLoadedObserver=this.onCameraLoadedObservable.add(e))}set onComplete(e){this._onCompleteObserver&&this.onCompleteObservable.remove(this._onCompleteObserver),this._onCompleteObserver=this.onCompleteObservable.add(e)}set onError(e){this._onErrorObserver&&this.onErrorObservable.remove(this._onErrorObserver),this._onErrorObserver=this.onErrorObservable.add(e)}set onDispose(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)}set onExtensionLoaded(e){this._onExtensionLoadedObserver&&this.onExtensionLoadedObservable.remove(this._onExtensionLoadedObserver),this._onExtensionLoadedObserver=this.onExtensionLoadedObservable.add(e)}get loggingEnabled(){return this._loggingEnabled}set loggingEnabled(e){this._loggingEnabled!==e&&(this._loggingEnabled=e,this._loggingEnabled?this._log=this._logEnabled:this._log=this._logDisabled)}get capturePerformanceCounters(){return this._capturePerformanceCounters}set capturePerformanceCounters(e){this._capturePerformanceCounters!==e&&(this._capturePerformanceCounters=e,this._capturePerformanceCounters?(this._startPerformanceCounter=this._startPerformanceCounterEnabled,this._endPerformanceCounter=this._endPerformanceCounterEnabled):(this._startPerformanceCounter=this._startPerformanceCounterDisabled,this._endPerformanceCounter=this._endPerformanceCounterDisabled))}set onValidated(e){this._onValidatedObserver&&this.onValidatedObservable.remove(this._onValidatedObserver),this._onValidatedObserver=this.onValidatedObservable.add(e)}dispose(){this._loader&&(this._loader.dispose(),this._loader=null);for(const e of this._requests)e.abort();this._requests.length=0,delete this._progressCallback,this.preprocessUrlAsync=e=>Promise.resolve(e),this.onMeshLoadedObservable.clear(),this.onSkinLoadedObservable.clear(),this.onTextureLoadedObservable.clear(),this.onMaterialLoadedObservable.clear(),this.onCameraLoadedObservable.clear(),this.onCompleteObservable.clear(),this.onExtensionLoadedObservable.clear(),this.onDisposeObservable.notifyObservers(void 0),this.onDisposeObservable.clear()}loadFile(e,t,i,s,r,n,o,l){if(ArrayBuffer.isView(t))return this._loadBinary(e,t,i,s,o,l),null;this._progressCallback=r;const c=t.name||Le.GetFilename(t);if(n){if(this.useRangeRequests){this.validate&&de.Warn("glTF validation is not supported when range requests are enabled");const u={abort:()=>{},onCompleteObservable:new xe},f={readAsync:(p,m)=>new Promise((_,d)=>{this._loadFile(e,t,h=>{_(new Uint8Array(h))},!0,h=>{d(h)},h=>{h.setRequestHeader("Range",`bytes=${p}-${p+m-1}`)})}),byteLength:0};return this._unpackBinaryAsync(new Lw(f)).then(p=>{u.onCompleteObservable.notifyObservers(u),s(p)},o?p=>o(void 0,p):void 0),u}return this._loadFile(e,t,u=>{this._validate(e,new Uint8Array(u,0,u.byteLength),i,c),this._unpackBinaryAsync(new Lw({readAsync:(f,p)=>Whe(u,f,p),byteLength:u.byteLength})).then(f=>{s(f)},o?f=>o(void 0,f):void 0)},!0,o)}else return this._loadFile(e,t,u=>{try{this._validate(e,u,i,c),s({json:this._parseJson(u)})}catch{o&&o()}},!1,o)}_loadBinary(e,t,i,s,r,n){this._validate(e,new Uint8Array(t.buffer,t.byteOffset,t.byteLength),i,n),this._unpackBinaryAsync(new Lw({readAsync:(o,l)=>eRe(t,o,l),byteLength:t.byteLength})).then(o=>{s(o)},r?o=>r(void 0,o):void 0)}importMeshAsync(e,t,i,s,r,n){return Promise.resolve().then(()=>(this.onParsedObservable.notifyObservers(i),this.onParsedObservable.clear(),this._log(`Loading ${n||""}`),this._loader=this._getLoader(i),this._loader.importMeshAsync(e,t,null,i,s,r,n)))}loadAsync(e,t,i,s,r){return Promise.resolve().then(()=>(this.onParsedObservable.notifyObservers(t),this.onParsedObservable.clear(),this._log(`Loading ${r||""}`),this._loader=this._getLoader(t),this._loader.loadAsync(e,t,i,s,r)))}loadAssetContainerAsync(e,t,i,s,r){return Promise.resolve().then(()=>{this.onParsedObservable.notifyObservers(t),this.onParsedObservable.clear(),this._log(`Loading ${r||""}`),this._loader=this._getLoader(t);const n=new bP(e),o=[];this.onMaterialLoadedObservable.add(f=>{o.push(f)});const l=[];this.onTextureLoadedObservable.add(f=>{l.push(f)});const c=[];this.onCameraLoadedObservable.add(f=>{c.push(f)});const u=[];return this.onMeshLoadedObservable.add(f=>{f.morphTargetManager&&u.push(f.morphTargetManager)}),this._loader.importMeshAsync(null,e,n,t,i,s,r).then(f=>(Array.prototype.push.apply(n.geometries,f.geometries),Array.prototype.push.apply(n.meshes,f.meshes),Array.prototype.push.apply(n.particleSystems,f.particleSystems),Array.prototype.push.apply(n.skeletons,f.skeletons),Array.prototype.push.apply(n.animationGroups,f.animationGroups),Array.prototype.push.apply(n.materials,o),Array.prototype.push.apply(n.textures,l),Array.prototype.push.apply(n.lights,f.lights),Array.prototype.push.apply(n.transformNodes,f.transformNodes),Array.prototype.push.apply(n.cameras,c),Array.prototype.push.apply(n.morphTargetManagers,u),n))})}canDirectLoad(e){return CG.canDirectLoad(e)}directLoad(e,t){if(t.startsWith("base64,"+RT)||t.startsWith(";base64,"+RT)||t.startsWith("application/octet-stream;base64,"+RT)||t.startsWith("model/gltf-binary;base64,"+RT)){const i=aP(t);return this._validate(e,new Uint8Array(i,0,i.byteLength)),this._unpackBinaryAsync(new Lw({readAsync:(s,r)=>Whe(i,s,r),byteLength:i.byteLength}))}return this._validate(e,t),Promise.resolve({json:this._parseJson(t)})}createPlugin(e){return new ku(e[CG.name])}get loaderState(){return this._state}whenCompleteAsync(){return new Promise((e,t)=>{this.onCompleteObservable.addOnce(()=>{e()}),this.onErrorObservable.addOnce(i=>{t(i)})})}_setState(e){this._state!==e&&(this._state=e,this.onLoaderStateChangedObservable.notifyObservers(this._state),this._log(C0[this._state]))}_loadFile(e,t,i,s,r,n){const o=e._loadFile(t,i,l=>{this._onProgress(l,o)},!0,s,r,n);return o.onCompleteObservable.add(()=>{o._lengthComputable=!0,o._total=o._loaded}),this._requests.push(o),o}_onProgress(e,t){if(!this._progressCallback)return;t._lengthComputable=e.lengthComputable,t._loaded=e.loaded,t._total=e.total;let i=!0,s=0,r=0;for(const n of this._requests){if(n._lengthComputable===void 0||n._loaded===void 0||n._total===void 0)return;i=i&&n._lengthComputable,s+=n._loaded,r+=n._total}this._progressCallback({lengthComputable:i,loaded:s,total:i?r:0})}_validate(e,t,i="",s=""){this.validate&&(this._startPerformanceCounter("Validate JSON"),lZ.ValidateAsync(t,i,s,r=>this.preprocessUrlAsync(i+r).then(n=>e._loadFileAsync(n,void 0,!0,!0).then(o=>new Uint8Array(o,0,o.byteLength)))).then(r=>{this._endPerformanceCounter("Validate JSON"),this.onValidatedObservable.notifyObservers(r),this.onValidatedObservable.clear()},r=>{this._endPerformanceCounter("Validate JSON"),Le.Warn(`Failed to validate: ${r.message}`),this.onValidatedObservable.clear()}))}_getLoader(e){const t=e.json.asset||{};this._log(`Asset version: ${t.version}`),t.minVersion&&this._log(`Asset minimum version: ${t.minVersion}`),t.generator&&this._log(`Asset generator: ${t.generator}`);const i=ku._parseVersion(t.version);if(!i)throw new Error("Invalid version: "+t.version);if(t.minVersion!==void 0){const n=ku._parseVersion(t.minVersion);if(!n)throw new Error("Invalid minimum version: "+t.minVersion);if(ku._compareVersion(n,{major:2,minor:0})>0)throw new Error("Incompatible minimum version: "+t.minVersion)}const r={1:ku._CreateGLTF1Loader,2:ku._CreateGLTF2Loader}[i.major];if(!r)throw new Error("Unsupported version: "+t.version);return r(this)}_parseJson(e){this._startPerformanceCounter("Parse JSON"),this._log(`JSON length: ${e.length}`);const t=JSON.parse(e);return this._endPerformanceCounter("Parse JSON"),t}_unpackBinaryAsync(e){return this._startPerformanceCounter("Unpack Binary"),e.loadAsync(20).then(()=>{const t={Magic:1179937895},i=e.readUint32();if(i!==t.Magic)throw new Y6("Unexpected magic: "+i,Xx.GLTFLoaderUnexpectedMagicError);const s=e.readUint32();this.loggingEnabled&&this._log(`Binary version: ${s}`);const r=e.readUint32();!this.useRangeRequests&&r!==e.buffer.byteLength&&de.Warn(`Length in header does not match actual data length: ${r} != ${e.buffer.byteLength}`);let n;switch(s){case 1:{n=this._unpackBinaryV1Async(e,r);break}case 2:{n=this._unpackBinaryV2Async(e,r);break}default:throw new Error("Unsupported version: "+s)}return this._endPerformanceCounter("Unpack Binary"),n})}_unpackBinaryV1Async(e,t){const i={JSON:0},s=e.readUint32(),r=e.readUint32();if(r!==i.JSON)throw new Error(`Unexpected content format: ${r}`);const n=t-e.byteOffset,o={json:this._parseJson(e.readString(s)),bin:null};if(n!==0){const l=e.byteOffset;o.bin={readAsync:(c,u)=>e.buffer.readAsync(l+c,u),byteLength:n}}return Promise.resolve(o)}_unpackBinaryV2Async(e,t){const i={JSON:1313821514,BIN:5130562},s=e.readUint32();if(e.readUint32()!==i.JSON)throw new Error("First chunk format is not JSON");return e.byteOffset+s===t?e.loadAsync(s).then(()=>({json:this._parseJson(e.readString(s)),bin:null})):e.loadAsync(s+8).then(()=>{const n={json:this._parseJson(e.readString(s)),bin:null},o=()=>{const l=e.readUint32();switch(e.readUint32()){case i.JSON:throw new Error("Unexpected JSON chunk");case i.BIN:{const u=e.byteOffset;n.bin={readAsync:(f,p)=>e.buffer.readAsync(u+f,p),byteLength:l},e.skipBytes(l);break}default:{e.skipBytes(l);break}}return e.byteOffset!==t?e.loadAsync(8).then(o):Promise.resolve(n)};return o()})}static _parseVersion(e){if(e==="1.0"||e==="1.0.1")return{major:1,minor:0};const t=(e+"").match(/^(\d+)\.(\d+)/);return t?{major:parseInt(t[1]),minor:parseInt(t[2])}:null}static _compareVersion(e,t){return e.major>t.major?1:e.major<t.major?-1:e.minor>t.minor?1:e.minor<t.minor?-1:0}_logOpen(e){this._log(e),this._logIndentLevel++}_logClose(){--this._logIndentLevel}_logEnabled(e){const t=ku._logSpaces.substring(0,this._logIndentLevel*2);de.Log(`${t}${e}`)}_logDisabled(e){}_startPerformanceCounterEnabled(e){Le.StartPerformanceCounter(e)}_startPerformanceCounterDisabled(e){}_endPerformanceCounterEnabled(e){Le.EndPerformanceCounter(e)}_endPerformanceCounterDisabled(e){}}ku.IncrementalLoading=!0,ku.HomogeneousCoordinates=!1,ku._logSpaces="                                ",Y9(new ku);var by;(function(a){a[a.BYTE=5120]="BYTE",a[a.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",a[a.SHORT=5122]="SHORT",a[a.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",a[a.FLOAT=5126]="FLOAT"})(by||(by={}));var xG;(function(a){a[a.FRAGMENT=35632]="FRAGMENT",a[a.VERTEX=35633]="VERTEX"})(xG||(xG={}));var sf;(function(a){a[a.BYTE=5120]="BYTE",a[a.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",a[a.SHORT=5122]="SHORT",a[a.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",a[a.INT=5124]="INT",a[a.UNSIGNED_INT=5125]="UNSIGNED_INT",a[a.FLOAT=5126]="FLOAT",a[a.FLOAT_VEC2=35664]="FLOAT_VEC2",a[a.FLOAT_VEC3=35665]="FLOAT_VEC3",a[a.FLOAT_VEC4=35666]="FLOAT_VEC4",a[a.INT_VEC2=35667]="INT_VEC2",a[a.INT_VEC3=35668]="INT_VEC3",a[a.INT_VEC4=35669]="INT_VEC4",a[a.BOOL=35670]="BOOL",a[a.BOOL_VEC2=35671]="BOOL_VEC2",a[a.BOOL_VEC3=35672]="BOOL_VEC3",a[a.BOOL_VEC4=35673]="BOOL_VEC4",a[a.FLOAT_MAT2=35674]="FLOAT_MAT2",a[a.FLOAT_MAT3=35675]="FLOAT_MAT3",a[a.FLOAT_MAT4=35676]="FLOAT_MAT4",a[a.SAMPLER_2D=35678]="SAMPLER_2D"})(sf||(sf={}));var yP;(function(a){a[a.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",a[a.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",a[a.REPEAT=10497]="REPEAT"})(yP||(yP={}));var Z6;(function(a){a[a.NEAREST=9728]="NEAREST",a[a.LINEAR=9728]="LINEAR",a[a.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",a[a.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",a[a.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",a[a.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR"})(Z6||(Z6={}));var cZ;(function(a){a[a.ALPHA=6406]="ALPHA",a[a.RGB=6407]="RGB",a[a.RGBA=6408]="RGBA",a[a.LUMINANCE=6409]="LUMINANCE",a[a.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA"})(cZ||(cZ={}));var bG;(function(a){a[a.FRONT=1028]="FRONT",a[a.BACK=1029]="BACK",a[a.FRONT_AND_BACK=1032]="FRONT_AND_BACK"})(bG||(bG={}));var Jo;(function(a){a[a.ZERO=0]="ZERO",a[a.ONE=1]="ONE",a[a.SRC_COLOR=768]="SRC_COLOR",a[a.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",a[a.DST_COLOR=774]="DST_COLOR",a[a.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",a[a.SRC_ALPHA=770]="SRC_ALPHA",a[a.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",a[a.DST_ALPHA=772]="DST_ALPHA",a[a.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",a[a.CONSTANT_COLOR=32769]="CONSTANT_COLOR",a[a.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",a[a.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",a[a.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",a[a.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE"})(Jo||(Jo={})),Rr.AddNodeConstructor("TargetCamera",(a,e)=>()=>new Ja(a,P.Zero(),e));class Ja extends _i{constructor(e,t,i,s=!0){super(e,t,i,s),this._tmpUpVector=P.Zero(),this._tmpTargetVector=P.Zero(),this.cameraDirection=new P(0,0,0),this.cameraRotation=new Ue(0,0),this.ignoreParentScaling=!1,this.updateUpVectorFromRotation=!1,this._tmpQuaternion=new Re,this.rotation=new P(0,0,0),this.speed=2,this.noRotationConstraint=!1,this.invertRotation=!1,this.inverseRotationSpeed=.2,this.lockedTarget=null,this._currentTarget=P.Zero(),this._initialFocalDistance=1,this._viewMatrix=me.Zero(),this._camMatrix=me.Zero(),this._cameraTransformMatrix=me.Zero(),this._cameraRotationMatrix=me.Zero(),this._referencePoint=new P(0,0,1),this._transformedReferencePoint=P.Zero(),this._deferredPositionUpdate=new P,this._deferredRotationQuaternionUpdate=new Re,this._deferredRotationUpdate=new P,this._deferredUpdated=!1,this._deferOnly=!1,this._defaultUp=P.Up(),this._cachedRotationZ=0,this._cachedQuaternionRotationZ=0}getFrontPosition(e){this.getWorldMatrix();const t=ae.Vector3[0],i=ae.Vector3[1];return i.set(0,0,this._scene.useRightHandedSystem?-1:1),this.getDirectionToRef(i,t),t.scaleInPlace(e),this.globalPosition.add(t)}_getLockedTargetPosition(){if(!this.lockedTarget)return null;if(this.lockedTarget.absolutePosition){const e=this.lockedTarget;e.computeWorldMatrix().getTranslationToRef(e.absolutePosition)}return this.lockedTarget.absolutePosition||this.lockedTarget}storeState(){return this._storedPosition=this.position.clone(),this._storedRotation=this.rotation.clone(),this.rotationQuaternion&&(this._storedRotationQuaternion=this.rotationQuaternion.clone()),super.storeState()}_restoreStateValues(){return super._restoreStateValues()?(this.position=this._storedPosition.clone(),this.rotation=this._storedRotation.clone(),this.rotationQuaternion&&(this.rotationQuaternion=this._storedRotationQuaternion.clone()),this.cameraDirection.copyFromFloats(0,0,0),this.cameraRotation.copyFromFloats(0,0),!0):!1}_initCache(){super._initCache(),this._cache.lockedTarget=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cache.rotation=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cache.rotationQuaternion=new Re(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE)}_updateCache(e){e||super._updateCache();const t=this._getLockedTargetPosition();t?this._cache.lockedTarget?this._cache.lockedTarget.copyFrom(t):this._cache.lockedTarget=t.clone():this._cache.lockedTarget=null,this._cache.rotation.copyFrom(this.rotation),this.rotationQuaternion&&this._cache.rotationQuaternion.copyFrom(this.rotationQuaternion)}_isSynchronizedViewMatrix(){if(!super._isSynchronizedViewMatrix())return!1;const e=this._getLockedTargetPosition();return(this._cache.lockedTarget?this._cache.lockedTarget.equals(e):!e)&&(this.rotationQuaternion?this.rotationQuaternion.equals(this._cache.rotationQuaternion):this._cache.rotation.equals(this.rotation))}_computeLocalCameraSpeed(){const e=this.getEngine();return this.speed*Math.sqrt(e.getDeltaTime()/(e.getFps()*100))}setTarget(e){this.upVector.normalize(),this._initialFocalDistance=e.subtract(this.position).length(),this.position.z===e.z&&(this.position.z+=Ii),this._referencePoint.normalize().scaleInPlace(this._initialFocalDistance),me.LookAtLHToRef(this.position,e,this._defaultUp,this._camMatrix),this._camMatrix.invert(),this.rotation.x=Math.atan(this._camMatrix.m[6]/this._camMatrix.m[10]);const t=e.subtract(this.position);t.x>=0?this.rotation.y=-Math.atan(t.z/t.x)+Math.PI/2:this.rotation.y=-Math.atan(t.z/t.x)-Math.PI/2,this.rotation.z=0,isNaN(this.rotation.x)&&(this.rotation.x=0),isNaN(this.rotation.y)&&(this.rotation.y=0),isNaN(this.rotation.z)&&(this.rotation.z=0),this.rotationQuaternion&&Re.RotationYawPitchRollToRef(this.rotation.y,this.rotation.x,this.rotation.z,this.rotationQuaternion)}get target(){return this.getTarget()}set target(e){this.setTarget(e)}getTarget(){return this._currentTarget}_decideIfNeedsToMove(){return Math.abs(this.cameraDirection.x)>0||Math.abs(this.cameraDirection.y)>0||Math.abs(this.cameraDirection.z)>0}_updatePosition(){if(this.parent){this.parent.getWorldMatrix().invertToRef(ae.Matrix[0]),P.TransformNormalToRef(this.cameraDirection,ae.Matrix[0],ae.Vector3[0]),this._deferredPositionUpdate.addInPlace(ae.Vector3[0]),this._deferOnly?this._deferredUpdated=!0:this.position.copyFrom(this._deferredPositionUpdate);return}this._deferredPositionUpdate.addInPlace(this.cameraDirection),this._deferOnly?this._deferredUpdated=!0:this.position.copyFrom(this._deferredPositionUpdate)}_checkInputs(){const e=this.invertRotation?-this.inverseRotationSpeed:1,t=this._decideIfNeedsToMove(),i=this.cameraRotation.x||this.cameraRotation.y;this._deferredUpdated=!1,this._deferredRotationUpdate.copyFrom(this.rotation),this._deferredPositionUpdate.copyFrom(this.position),this.rotationQuaternion&&this._deferredRotationQuaternionUpdate.copyFrom(this.rotationQuaternion),t&&this._updatePosition(),i&&(this.rotationQuaternion&&this.rotationQuaternion.toEulerAnglesToRef(this._deferredRotationUpdate),this._deferredRotationUpdate.x+=this.cameraRotation.x*e,this._deferredRotationUpdate.y+=this.cameraRotation.y*e,this.noRotationConstraint||(this._deferredRotationUpdate.x>1.570796&&(this._deferredRotationUpdate.x=1.570796),this._deferredRotationUpdate.x<-1.570796&&(this._deferredRotationUpdate.x=-1.570796)),this._deferOnly?this._deferredUpdated=!0:this.rotation.copyFrom(this._deferredRotationUpdate),this.rotationQuaternion&&this._deferredRotationUpdate.lengthSquared()&&(Re.RotationYawPitchRollToRef(this._deferredRotationUpdate.y,this._deferredRotationUpdate.x,this._deferredRotationUpdate.z,this._deferredRotationQuaternionUpdate),this._deferOnly?this._deferredUpdated=!0:this.rotationQuaternion.copyFrom(this._deferredRotationQuaternionUpdate))),t&&(Math.abs(this.cameraDirection.x)<this.speed*Ii&&(this.cameraDirection.x=0),Math.abs(this.cameraDirection.y)<this.speed*Ii&&(this.cameraDirection.y=0),Math.abs(this.cameraDirection.z)<this.speed*Ii&&(this.cameraDirection.z=0),this.cameraDirection.scaleInPlace(this.inertia)),i&&(Math.abs(this.cameraRotation.x)<this.speed*Ii&&(this.cameraRotation.x=0),Math.abs(this.cameraRotation.y)<this.speed*Ii&&(this.cameraRotation.y=0),this.cameraRotation.scaleInPlace(this.inertia)),super._checkInputs()}_updateCameraRotationMatrix(){this.rotationQuaternion?this.rotationQuaternion.toRotationMatrix(this._cameraRotationMatrix):me.RotationYawPitchRollToRef(this.rotation.y,this.rotation.x,this.rotation.z,this._cameraRotationMatrix)}_rotateUpVectorWithCameraRotationMatrix(){return P.TransformNormalToRef(this._defaultUp,this._cameraRotationMatrix,this.upVector),this}_getViewMatrix(){return this.lockedTarget&&this.setTarget(this._getLockedTargetPosition()),this._updateCameraRotationMatrix(),this.rotationQuaternion&&this._cachedQuaternionRotationZ!=this.rotationQuaternion.z?(this._rotateUpVectorWithCameraRotationMatrix(),this._cachedQuaternionRotationZ=this.rotationQuaternion.z):this._cachedRotationZ!==this.rotation.z&&(this._rotateUpVectorWithCameraRotationMatrix(),this._cachedRotationZ=this.rotation.z),P.TransformCoordinatesToRef(this._referencePoint,this._cameraRotationMatrix,this._transformedReferencePoint),this.position.addToRef(this._transformedReferencePoint,this._currentTarget),this.updateUpVectorFromRotation&&(this.rotationQuaternion?fo.Y.rotateByQuaternionToRef(this.rotationQuaternion,this.upVector):(Re.FromEulerVectorToRef(this.rotation,this._tmpQuaternion),fo.Y.rotateByQuaternionToRef(this._tmpQuaternion,this.upVector))),this._computeViewMatrix(this.position,this._currentTarget,this.upVector),this._viewMatrix}_computeViewMatrix(e,t,i){if(this.ignoreParentScaling){if(this.parent){const s=this.parent.getWorldMatrix();P.TransformCoordinatesToRef(e,s,this._globalPosition),P.TransformCoordinatesToRef(t,s,this._tmpTargetVector),P.TransformNormalToRef(i,s,this._tmpUpVector),this._markSyncedWithParent()}else this._globalPosition.copyFrom(e),this._tmpTargetVector.copyFrom(t),this._tmpUpVector.copyFrom(i);this.getScene().useRightHandedSystem?me.LookAtRHToRef(this._globalPosition,this._tmpTargetVector,this._tmpUpVector,this._viewMatrix):me.LookAtLHToRef(this._globalPosition,this._tmpTargetVector,this._tmpUpVector,this._viewMatrix);return}if(this.getScene().useRightHandedSystem?me.LookAtRHToRef(e,t,i,this._viewMatrix):me.LookAtLHToRef(e,t,i,this._viewMatrix),this.parent){const s=this.parent.getWorldMatrix();this._viewMatrix.invert(),this._viewMatrix.multiplyToRef(s,this._viewMatrix),this._viewMatrix.getTranslationToRef(this._globalPosition),this._viewMatrix.invert(),this._markSyncedWithParent()}else this._globalPosition.copyFrom(e)}createRigCamera(e,t){if(this.cameraRigMode!==_i.RIG_MODE_NONE){const i=new Ja(e,this.position.clone(),this.getScene());return i.isRigCamera=!0,i.rigParent=this,this.cameraRigMode===_i.RIG_MODE_VR&&(this.rotationQuaternion||(this.rotationQuaternion=new Re),i._cameraRigParams={},i.rotationQuaternion=new Re),i.mode=this.mode,i.orthoLeft=this.orthoLeft,i.orthoRight=this.orthoRight,i.orthoTop=this.orthoTop,i.orthoBottom=this.orthoBottom,i}return null}_updateRigCameras(){const e=this._rigCameras[0],t=this._rigCameras[1];switch(this.computeWorldMatrix(),this.cameraRigMode){case _i.RIG_MODE_STEREOSCOPIC_ANAGLYPH:case _i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:case _i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:case _i.RIG_MODE_STEREOSCOPIC_OVERUNDER:case _i.RIG_MODE_STEREOSCOPIC_INTERLACED:{const i=this.cameraRigMode===_i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED?1:-1,s=this.cameraRigMode===_i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED?-1:1;this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle*i,e),this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle*s,t);break}case _i.RIG_MODE_VR:e.rotationQuaternion?(e.rotationQuaternion.copyFrom(this.rotationQuaternion),t.rotationQuaternion.copyFrom(this.rotationQuaternion)):(e.rotation.copyFrom(this.rotation),t.rotation.copyFrom(this.rotation)),e.position.copyFrom(this.position),t.position.copyFrom(this.position);break}super._updateRigCameras()}_getRigCamPositionAndTarget(e,t){this.getTarget().subtractToRef(this.position,Ja._TargetFocalPoint),Ja._TargetFocalPoint.normalize().scaleInPlace(this._initialFocalDistance);const s=Ja._TargetFocalPoint.addInPlace(this.position);me.TranslationToRef(-s.x,-s.y,-s.z,Ja._TargetTransformMatrix),Ja._TargetTransformMatrix.multiplyToRef(me.RotationAxis(t.upVector,e),Ja._RigCamTransformMatrix),me.TranslationToRef(s.x,s.y,s.z,Ja._TargetTransformMatrix),Ja._RigCamTransformMatrix.multiplyToRef(Ja._TargetTransformMatrix,Ja._RigCamTransformMatrix),P.TransformCoordinatesToRef(this.position,Ja._RigCamTransformMatrix,t.position),t.setTarget(s)}getClassName(){return"TargetCamera"}}Ja._RigCamTransformMatrix=new me,Ja._TargetTransformMatrix=new me,Ja._TargetFocalPoint=new P,F([G()],Ja.prototype,"ignoreParentScaling",void 0),F([G()],Ja.prototype,"updateUpVectorFromRotation",void 0),F([Ma()],Ja.prototype,"rotation",void 0),F([G()],Ja.prototype,"speed",void 0),F([uP("lockedTargetId")],Ja.prototype,"lockedTarget",void 0);var yh={};class Iw{constructor(e){this.attachedToElement=!1,this.attached={},this.camera=e,this.checkInputs=()=>{}}add(e){const t=e.getSimpleName();if(this.attached[t]){de.Warn("camera input of type "+t+" already exists on camera");return}this.attached[t]=e,e.camera=this.camera,e.checkInputs&&(this.checkInputs=this._addCheckInputs(e.checkInputs.bind(e))),this.attachedToElement&&e.attachControl(this.noPreventDefault)}remove(e){for(const t in this.attached){const i=this.attached[t];if(i===e){i.detachControl(),i.camera=null,delete this.attached[t],this.rebuildInputCheck();return}}}removeByType(e){for(const t in this.attached){const i=this.attached[t];i.getClassName()===e&&(i.detachControl(),i.camera=null,delete this.attached[t],this.rebuildInputCheck())}}_addCheckInputs(e){const t=this.checkInputs;return()=>{t(),e()}}attachInput(e){this.attachedToElement&&e.attachControl(this.noPreventDefault)}attachElement(e=!1){if(!this.attachedToElement){e=_i.ForceAttachControlToAlwaysPreventDefault?!1:e,this.attachedToElement=!0,this.noPreventDefault=e;for(const t in this.attached)this.attached[t].attachControl(e)}}detachElement(e=!1){for(const t in this.attached)this.attached[t].detachControl(),e&&(this.attached[t].camera=null);this.attachedToElement=!1}rebuildInputCheck(){this.checkInputs=()=>{};for(const e in this.attached){const t=this.attached[e];t.checkInputs&&(this.checkInputs=this._addCheckInputs(t.checkInputs.bind(t)))}}clear(){this.attachedToElement&&this.detachElement(!0),this.attached={},this.attachedToElement=!1,this.checkInputs=()=>{}}serialize(e){const t={};for(const i in this.attached){const s=this.attached[i],r=It.Serialize(s);t[s.getClassName()]=r}e.inputsmgr=t}parse(e){const t=e.inputsmgr;if(t){this.clear();for(const i in t){const s=yh[i];if(s){const r=t[i],n=It.Parse(()=>new s,r,null);this.add(n)}}}else for(const i in this.attached){const s=yh[this.attached[i].getClassName()];if(s){const r=It.Parse(()=>new s,e,null);this.remove(this.attached[i]),this.add(r)}}}}class r3{constructor(){this.keysUp=[38],this.keysUpward=[33],this.keysDown=[40],this.keysDownward=[34],this.keysLeft=[37],this.keysRight=[39],this.rotationSpeed=.5,this.keysRotateLeft=[],this.keysRotateRight=[],this.keysRotateUp=[],this.keysRotateDown=[],this._keys=new Array}attachControl(e){e=Le.BackCompatCameraNoPreventDefault(arguments),!this._onCanvasBlurObserver&&(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add(()=>{this._keys.length=0}),this._onKeyboardObserver=this._scene.onKeyboardObservable.add(t=>{const i=t.event;if(!i.metaKey){if(t.type===x4.KEYDOWN)(this.keysUp.indexOf(i.keyCode)!==-1||this.keysDown.indexOf(i.keyCode)!==-1||this.keysLeft.indexOf(i.keyCode)!==-1||this.keysRight.indexOf(i.keyCode)!==-1||this.keysUpward.indexOf(i.keyCode)!==-1||this.keysDownward.indexOf(i.keyCode)!==-1||this.keysRotateLeft.indexOf(i.keyCode)!==-1||this.keysRotateRight.indexOf(i.keyCode)!==-1||this.keysRotateUp.indexOf(i.keyCode)!==-1||this.keysRotateDown.indexOf(i.keyCode)!==-1)&&(this._keys.indexOf(i.keyCode)===-1&&this._keys.push(i.keyCode),e||i.preventDefault());else if(this.keysUp.indexOf(i.keyCode)!==-1||this.keysDown.indexOf(i.keyCode)!==-1||this.keysLeft.indexOf(i.keyCode)!==-1||this.keysRight.indexOf(i.keyCode)!==-1||this.keysUpward.indexOf(i.keyCode)!==-1||this.keysDownward.indexOf(i.keyCode)!==-1||this.keysRotateLeft.indexOf(i.keyCode)!==-1||this.keysRotateRight.indexOf(i.keyCode)!==-1||this.keysRotateUp.indexOf(i.keyCode)!==-1||this.keysRotateDown.indexOf(i.keyCode)!==-1){const s=this._keys.indexOf(i.keyCode);s>=0&&this._keys.splice(s,1),e||i.preventDefault()}}}))}detachControl(){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys.length=0}checkInputs(){if(this._onKeyboardObserver){const e=this.camera;for(let t=0;t<this._keys.length;t++){const i=this._keys[t],s=e._computeLocalCameraSpeed();this.keysLeft.indexOf(i)!==-1?e._localDirection.copyFromFloats(-s,0,0):this.keysUp.indexOf(i)!==-1?e._localDirection.copyFromFloats(0,0,s):this.keysRight.indexOf(i)!==-1?e._localDirection.copyFromFloats(s,0,0):this.keysDown.indexOf(i)!==-1?e._localDirection.copyFromFloats(0,0,-s):this.keysUpward.indexOf(i)!==-1?e._localDirection.copyFromFloats(0,s,0):this.keysDownward.indexOf(i)!==-1?e._localDirection.copyFromFloats(0,-s,0):this.keysRotateLeft.indexOf(i)!==-1?(e._localDirection.copyFromFloats(0,0,0),e.cameraRotation.y-=this._getLocalRotation()):this.keysRotateRight.indexOf(i)!==-1?(e._localDirection.copyFromFloats(0,0,0),e.cameraRotation.y+=this._getLocalRotation()):this.keysRotateUp.indexOf(i)!==-1?(e._localDirection.copyFromFloats(0,0,0),e.cameraRotation.x-=this._getLocalRotation()):this.keysRotateDown.indexOf(i)!==-1&&(e._localDirection.copyFromFloats(0,0,0),e.cameraRotation.x+=this._getLocalRotation()),e.getScene().useRightHandedSystem&&(e._localDirection.z*=-1),e.getViewMatrix().invertToRef(e._cameraTransformMatrix),P.TransformNormalToRef(e._localDirection,e._cameraTransformMatrix,e._transformedDirection),e.cameraDirection.addInPlace(e._transformedDirection)}}}getClassName(){return"FreeCameraKeyboardMoveInput"}_onLostFocus(){this._keys.length=0}getSimpleName(){return"keyboard"}_getLocalRotation(){const e=this.camera._calculateHandednessMultiplier();return this.rotationSpeed*this._engine.getDeltaTime()/1e3*e}}F([G()],r3.prototype,"keysUp",void 0),F([G()],r3.prototype,"keysUpward",void 0),F([G()],r3.prototype,"keysDown",void 0),F([G()],r3.prototype,"keysDownward",void 0),F([G()],r3.prototype,"keysLeft",void 0),F([G()],r3.prototype,"keysRight",void 0),F([G()],r3.prototype,"rotationSpeed",void 0),F([G()],r3.prototype,"keysRotateLeft",void 0),F([G()],r3.prototype,"keysRotateRight",void 0),F([G()],r3.prototype,"keysRotateUp",void 0),F([G()],r3.prototype,"keysRotateDown",void 0),yh.FreeCameraKeyboardMoveInput=r3;class Pw{constructor(e=!0){this.touchEnabled=e,this.buttons=[0,1,2],this.angularSensibility=2e3,this._previousPosition=null,this.onPointerMovedObservable=new xe,this._allowCameraRotation=!0,this._currentActiveButton=-1,this._activePointerId=-1}attachControl(e){e=Le.BackCompatCameraNoPreventDefault(arguments);const t=this.camera.getEngine(),i=t.getInputElement();this._pointerInput||(this._pointerInput=s=>{const r=s.event,n=r.pointerType==="touch";if(!this.touchEnabled&&n||s.type!==Xt.POINTERMOVE&&this.buttons.indexOf(r.button)===-1)return;const o=r.target;if(s.type===Xt.POINTERDOWN){if(n&&this._activePointerId!==-1||!n&&this._currentActiveButton!==-1)return;this._activePointerId=r.pointerId;try{o==null||o.setPointerCapture(r.pointerId)}catch{}this._currentActiveButton===-1&&(this._currentActiveButton=r.button),this._previousPosition={x:r.clientX,y:r.clientY},e||(r.preventDefault(),i&&i.focus()),t.isPointerLock&&this._onMouseMove&&this._onMouseMove(s.event)}else if(s.type===Xt.POINTERUP){if(n&&this._activePointerId!==r.pointerId||!n&&this._currentActiveButton!==r.button)return;try{o==null||o.releasePointerCapture(r.pointerId)}catch{}this._currentActiveButton=-1,this._previousPosition=null,e||r.preventDefault(),this._activePointerId=-1}else if(s.type===Xt.POINTERMOVE&&(this._activePointerId===r.pointerId||!n)){if(t.isPointerLock&&this._onMouseMove)this._onMouseMove(s.event);else if(this._previousPosition){const l=this.camera._calculateHandednessMultiplier(),c=(r.clientX-this._previousPosition.x)*l,u=r.clientY-this._previousPosition.y;this._allowCameraRotation&&(this.camera.cameraRotation.y+=c/this.angularSensibility,this.camera.cameraRotation.x+=u/this.angularSensibility),this.onPointerMovedObservable.notifyObservers({offsetX:c,offsetY:u}),this._previousPosition={x:r.clientX,y:r.clientY},e||r.preventDefault()}}}),this._onMouseMove=s=>{if(!t.isPointerLock)return;const r=this.camera._calculateHandednessMultiplier(),n=s.movementX*r;this.camera.cameraRotation.y+=n/this.angularSensibility;const o=s.movementY;this.camera.cameraRotation.x+=o/this.angularSensibility,this._previousPosition=null,e||s.preventDefault()},this._observer=this.camera.getScene()._inputManager._addCameraPointerObserver(this._pointerInput,Xt.POINTERDOWN|Xt.POINTERUP|Xt.POINTERMOVE),i&&(this._contextMenuBind=s=>this.onContextMenu(s),i.addEventListener("contextmenu",this._contextMenuBind,!1))}onContextMenu(e){e.preventDefault()}detachControl(){if(this._observer){if(this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer),this._contextMenuBind){const t=this.camera.getEngine().getInputElement();t&&t.removeEventListener("contextmenu",this._contextMenuBind)}this.onPointerMovedObservable&&this.onPointerMovedObservable.clear(),this._observer=null,this._onMouseMove=null,this._previousPosition=null}this._activePointerId=-1,this._currentActiveButton=-1}getClassName(){return"FreeCameraMouseInput"}getSimpleName(){return"mouse"}}F([G()],Pw.prototype,"buttons",void 0),F([G()],Pw.prototype,"angularSensibility",void 0),yh.FreeCameraMouseInput=Pw;class Ow{constructor(){this.wheelPrecisionX=3,this.wheelPrecisionY=3,this.wheelPrecisionZ=3,this.onChangedObservable=new xe,this._wheelDeltaX=0,this._wheelDeltaY=0,this._wheelDeltaZ=0,this._ffMultiplier=12,this._normalize=120}attachControl(e){e=Le.BackCompatCameraNoPreventDefault(arguments),this._wheel=t=>{if(t.type!==Xt.POINTERWHEEL)return;const i=t.event,s=i.deltaMode===W9.DOM_DELTA_LINE?this._ffMultiplier:1;this._wheelDeltaX+=this.wheelPrecisionX*s*i.deltaX/this._normalize,this._wheelDeltaY-=this.wheelPrecisionY*s*i.deltaY/this._normalize,this._wheelDeltaZ+=this.wheelPrecisionZ*s*i.deltaZ/this._normalize,i.preventDefault&&(e||i.preventDefault())},this._observer=this.camera.getScene()._inputManager._addCameraPointerObserver(this._wheel,Xt.POINTERWHEEL)}detachControl(){this._observer&&(this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer),this._observer=null,this._wheel=null),this.onChangedObservable&&this.onChangedObservable.clear()}checkInputs(){this.onChangedObservable.notifyObservers({wheelDeltaX:this._wheelDeltaX,wheelDeltaY:this._wheelDeltaY,wheelDeltaZ:this._wheelDeltaZ}),this._wheelDeltaX=0,this._wheelDeltaY=0,this._wheelDeltaZ=0}getClassName(){return"BaseCameraMouseWheelInput"}getSimpleName(){return"mousewheel"}}F([G()],Ow.prototype,"wheelPrecisionX",void 0),F([G()],Ow.prototype,"wheelPrecisionY",void 0),F([G()],Ow.prototype,"wheelPrecisionZ",void 0);var da;(function(a){a[a.MoveRelative=0]="MoveRelative",a[a.RotateRelative=1]="RotateRelative",a[a.MoveScene=2]="MoveScene"})(da||(da={}));class K6 extends Ow{constructor(){super(...arguments),this._moveRelative=P.Zero(),this._rotateRelative=P.Zero(),this._moveScene=P.Zero(),this._wheelXAction=da.MoveRelative,this._wheelXActionCoordinate=0,this._wheelYAction=da.MoveRelative,this._wheelYActionCoordinate=2,this._wheelZAction=null,this._wheelZActionCoordinate=null}getClassName(){return"FreeCameraMouseWheelInput"}set wheelXMoveRelative(e){e===null&&this._wheelXAction!==da.MoveRelative||(this._wheelXAction=da.MoveRelative,this._wheelXActionCoordinate=e)}get wheelXMoveRelative(){return this._wheelXAction!==da.MoveRelative?null:this._wheelXActionCoordinate}set wheelYMoveRelative(e){e===null&&this._wheelYAction!==da.MoveRelative||(this._wheelYAction=da.MoveRelative,this._wheelYActionCoordinate=e)}get wheelYMoveRelative(){return this._wheelYAction!==da.MoveRelative?null:this._wheelYActionCoordinate}set wheelZMoveRelative(e){e===null&&this._wheelZAction!==da.MoveRelative||(this._wheelZAction=da.MoveRelative,this._wheelZActionCoordinate=e)}get wheelZMoveRelative(){return this._wheelZAction!==da.MoveRelative?null:this._wheelZActionCoordinate}set wheelXRotateRelative(e){e===null&&this._wheelXAction!==da.RotateRelative||(this._wheelXAction=da.RotateRelative,this._wheelXActionCoordinate=e)}get wheelXRotateRelative(){return this._wheelXAction!==da.RotateRelative?null:this._wheelXActionCoordinate}set wheelYRotateRelative(e){e===null&&this._wheelYAction!==da.RotateRelative||(this._wheelYAction=da.RotateRelative,this._wheelYActionCoordinate=e)}get wheelYRotateRelative(){return this._wheelYAction!==da.RotateRelative?null:this._wheelYActionCoordinate}set wheelZRotateRelative(e){e===null&&this._wheelZAction!==da.RotateRelative||(this._wheelZAction=da.RotateRelative,this._wheelZActionCoordinate=e)}get wheelZRotateRelative(){return this._wheelZAction!==da.RotateRelative?null:this._wheelZActionCoordinate}set wheelXMoveScene(e){e===null&&this._wheelXAction!==da.MoveScene||(this._wheelXAction=da.MoveScene,this._wheelXActionCoordinate=e)}get wheelXMoveScene(){return this._wheelXAction!==da.MoveScene?null:this._wheelXActionCoordinate}set wheelYMoveScene(e){e===null&&this._wheelYAction!==da.MoveScene||(this._wheelYAction=da.MoveScene,this._wheelYActionCoordinate=e)}get wheelYMoveScene(){return this._wheelYAction!==da.MoveScene?null:this._wheelYActionCoordinate}set wheelZMoveScene(e){e===null&&this._wheelZAction!==da.MoveScene||(this._wheelZAction=da.MoveScene,this._wheelZActionCoordinate=e)}get wheelZMoveScene(){return this._wheelZAction!==da.MoveScene?null:this._wheelZActionCoordinate}checkInputs(){if(this._wheelDeltaX===0&&this._wheelDeltaY===0&&this._wheelDeltaZ==0)return;this._moveRelative.setAll(0),this._rotateRelative.setAll(0),this._moveScene.setAll(0),this._updateCamera(),this.camera.getScene().useRightHandedSystem&&(this._moveRelative.z*=-1);const e=me.Zero();this.camera.getViewMatrix().invertToRef(e);const t=P.Zero();P.TransformNormalToRef(this._moveRelative,e,t),this.camera.cameraRotation.x+=this._rotateRelative.x/200,this.camera.cameraRotation.y+=this._rotateRelative.y/200,this.camera.cameraDirection.addInPlace(t),this.camera.cameraDirection.addInPlace(this._moveScene),super.checkInputs()}_updateCamera(){this._updateCameraProperty(this._wheelDeltaX,this._wheelXAction,this._wheelXActionCoordinate),this._updateCameraProperty(this._wheelDeltaY,this._wheelYAction,this._wheelYActionCoordinate),this._updateCameraProperty(this._wheelDeltaZ,this._wheelZAction,this._wheelZActionCoordinate)}_updateCameraProperty(e,t,i){if(e===0||t===null||i===null)return;let s=null;switch(t){case da.MoveRelative:s=this._moveRelative;break;case da.RotateRelative:s=this._rotateRelative;break;case da.MoveScene:s=this._moveScene;break}switch(i){case 0:s.set(e,0,0);break;case 1:s.set(0,e,0);break;case 2:s.set(0,0,e);break}}}F([G()],K6.prototype,"wheelXMoveRelative",null),F([G()],K6.prototype,"wheelYMoveRelative",null),F([G()],K6.prototype,"wheelZMoveRelative",null),F([G()],K6.prototype,"wheelXRotateRelative",null),F([G()],K6.prototype,"wheelYRotateRelative",null),F([G()],K6.prototype,"wheelZRotateRelative",null),F([G()],K6.prototype,"wheelXMoveScene",null),F([G()],K6.prototype,"wheelYMoveScene",null),F([G()],K6.prototype,"wheelZMoveScene",null),yh.FreeCameraMouseWheelInput=K6;class Rw{constructor(e=!1){this.allowMouse=e,this.touchAngularSensibility=2e5,this.touchMoveSensibility=250,this.singleFingerRotate=!1,this._offsetX=null,this._offsetY=null,this._pointerPressed=new Array,this._isSafari=Le.IsSafari()}attachControl(e){e=Le.BackCompatCameraNoPreventDefault(arguments);let t=null;if(this._pointerInput===void 0&&(this._onLostFocus=()=>{this._offsetX=null,this._offsetY=null},this._pointerInput=i=>{const s=i.event,r=s.pointerType==="mouse"||this._isSafari&&typeof s.pointerType>"u";if(!(!this.allowMouse&&r)){if(i.type===Xt.POINTERDOWN){if(e||s.preventDefault(),this._pointerPressed.push(s.pointerId),this._pointerPressed.length!==1)return;t={x:s.clientX,y:s.clientY}}else if(i.type===Xt.POINTERUP){e||s.preventDefault();const n=this._pointerPressed.indexOf(s.pointerId);if(n===-1||(this._pointerPressed.splice(n,1),n!=0))return;t=null,this._offsetX=null,this._offsetY=null}else if(i.type===Xt.POINTERMOVE){if(e||s.preventDefault(),!t||this._pointerPressed.indexOf(s.pointerId)!=0)return;this._offsetX=s.clientX-t.x,this._offsetY=-(s.clientY-t.y)}}}),this._observer=this.camera.getScene()._inputManager._addCameraPointerObserver(this._pointerInput,Xt.POINTERDOWN|Xt.POINTERUP|Xt.POINTERMOVE),this._onLostFocus){const s=this.camera.getEngine().getInputElement();s&&s.addEventListener("blur",this._onLostFocus)}}detachControl(){if(this._pointerInput){if(this._observer&&(this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer),this._observer=null),this._onLostFocus){const t=this.camera.getEngine().getInputElement();t&&t.removeEventListener("blur",this._onLostFocus),this._onLostFocus=null}this._pointerPressed.length=0,this._offsetX=null,this._offsetY=null}}checkInputs(){if(this._offsetX===null||this._offsetY===null||this._offsetX===0&&this._offsetY===0)return;const e=this.camera,t=e._calculateHandednessMultiplier();if(e.cameraRotation.y=t*this._offsetX/this.touchAngularSensibility,this.singleFingerRotate&&this._pointerPressed.length===1||!this.singleFingerRotate&&this._pointerPressed.length>1)e.cameraRotation.x=-this._offsetY/this.touchAngularSensibility;else{const s=e._computeLocalCameraSpeed(),r=new P(0,0,this.touchMoveSensibility!==0?s*this._offsetY/this.touchMoveSensibility:0);me.RotationYawPitchRollToRef(e.rotation.y,e.rotation.x,0,e._cameraRotationMatrix),e.cameraDirection.addInPlace(P.TransformCoordinates(r,e._cameraRotationMatrix))}}getClassName(){return"FreeCameraTouchInput"}getSimpleName(){return"touch"}}F([G()],Rw.prototype,"touchAngularSensibility",void 0),F([G()],Rw.prototype,"touchMoveSensibility",void 0),yh.FreeCameraTouchInput=Rw;class Dw extends Iw{constructor(e){super(e),this._mouseInput=null,this._mouseWheelInput=null}addKeyboard(){return this.add(new r3),this}addMouse(e=!0){return this._mouseInput||(this._mouseInput=new Pw(e),this.add(this._mouseInput)),this}removeMouse(){return this._mouseInput&&this.remove(this._mouseInput),this}addMouseWheel(){return this._mouseWheelInput||(this._mouseWheelInput=new K6,this.add(this._mouseWheelInput)),this}removeMouseWheel(){return this._mouseWheelInput&&this.remove(this._mouseWheelInput),this}addTouch(){return this.add(new Rw),this}clear(){super.clear(),this._mouseInput=null}}class $d extends Ja{get angularSensibility(){const e=this.inputs.attached.mouse;return e?e.angularSensibility:0}set angularSensibility(e){const t=this.inputs.attached.mouse;t&&(t.angularSensibility=e)}get keysUp(){const e=this.inputs.attached.keyboard;return e?e.keysUp:[]}set keysUp(e){const t=this.inputs.attached.keyboard;t&&(t.keysUp=e)}get keysUpward(){const e=this.inputs.attached.keyboard;return e?e.keysUpward:[]}set keysUpward(e){const t=this.inputs.attached.keyboard;t&&(t.keysUpward=e)}get keysDown(){const e=this.inputs.attached.keyboard;return e?e.keysDown:[]}set keysDown(e){const t=this.inputs.attached.keyboard;t&&(t.keysDown=e)}get keysDownward(){const e=this.inputs.attached.keyboard;return e?e.keysDownward:[]}set keysDownward(e){const t=this.inputs.attached.keyboard;t&&(t.keysDownward=e)}get keysLeft(){const e=this.inputs.attached.keyboard;return e?e.keysLeft:[]}set keysLeft(e){const t=this.inputs.attached.keyboard;t&&(t.keysLeft=e)}get keysRight(){const e=this.inputs.attached.keyboard;return e?e.keysRight:[]}set keysRight(e){const t=this.inputs.attached.keyboard;t&&(t.keysRight=e)}get keysRotateLeft(){const e=this.inputs.attached.keyboard;return e?e.keysRotateLeft:[]}set keysRotateLeft(e){const t=this.inputs.attached.keyboard;t&&(t.keysRotateLeft=e)}get keysRotateRight(){const e=this.inputs.attached.keyboard;return e?e.keysRotateRight:[]}set keysRotateRight(e){const t=this.inputs.attached.keyboard;t&&(t.keysRotateRight=e)}get keysRotateUp(){const e=this.inputs.attached.keyboard;return e?e.keysRotateUp:[]}set keysRotateUp(e){const t=this.inputs.attached.keyboard;t&&(t.keysRotateUp=e)}get keysRotateDown(){const e=this.inputs.attached.keyboard;return e?e.keysRotateDown:[]}set keysRotateDown(e){const t=this.inputs.attached.keyboard;t&&(t.keysRotateDown=e)}constructor(e,t,i,s=!0){super(e,t,i,s),this.ellipsoid=new P(.5,1,.5),this.ellipsoidOffset=new P(0,0,0),this.checkCollisions=!1,this.applyGravity=!1,this._needMoveForGravity=!1,this._oldPosition=P.Zero(),this._diffPosition=P.Zero(),this._newPosition=P.Zero(),this._collisionMask=-1,this._onCollisionPositionChange=(r,n,o=null)=>{this._newPosition.copyFrom(n),this._newPosition.subtractToRef(this._oldPosition,this._diffPosition),this._diffPosition.length()>dt.CollisionsEpsilon&&(this.position.addToRef(this._diffPosition,this._deferredPositionUpdate),this._deferOnly?this._deferredUpdated=!0:this.position.copyFrom(this._deferredPositionUpdate),this.onCollide&&o&&this.onCollide(o))},this.inputs=new Dw(this),this.inputs.addKeyboard().addMouse()}attachControl(e,t){t=Le.BackCompatCameraNoPreventDefault(arguments),this.inputs.attachElement(t)}detachControl(){this.inputs.detachElement(),this.cameraDirection=new P(0,0,0),this.cameraRotation=new Ue(0,0)}get collisionMask(){return this._collisionMask}set collisionMask(e){this._collisionMask=isNaN(e)?-1:e}_collideWithWorld(e){let t;this.parent?t=P.TransformCoordinates(this.position,this.parent.getWorldMatrix()):t=this.position,t.subtractFromFloatsToRef(0,this.ellipsoid.y,0,this._oldPosition),this._oldPosition.addInPlace(this.ellipsoidOffset);const i=this.getScene().collisionCoordinator;this._collider||(this._collider=i.createCollider()),this._collider._radius=this.ellipsoid,this._collider.collisionMask=this._collisionMask;let s=e;this.applyGravity&&(s=e.add(this.getScene().gravity)),i.getNewPosition(this._oldPosition,s,this._collider,3,null,this._onCollisionPositionChange,this.uniqueId)}_checkInputs(){this._localDirection||(this._localDirection=P.Zero(),this._transformedDirection=P.Zero()),this.inputs.checkInputs(),super._checkInputs()}set needMoveForGravity(e){this._needMoveForGravity=e}get needMoveForGravity(){return this._needMoveForGravity}_decideIfNeedsToMove(){return this._needMoveForGravity||Math.abs(this.cameraDirection.x)>0||Math.abs(this.cameraDirection.y)>0||Math.abs(this.cameraDirection.z)>0}_updatePosition(){this.checkCollisions&&this.getScene().collisionsEnabled?this._collideWithWorld(this.cameraDirection):super._updatePosition()}dispose(){this.inputs.clear(),super.dispose()}getClassName(){return"FreeCamera"}}F([Ma()],$d.prototype,"ellipsoid",void 0),F([Ma()],$d.prototype,"ellipsoidOffset",void 0),F([G()],$d.prototype,"checkCollisions",void 0),F([G()],$d.prototype,"applyGravity",void 0),ve("BABYLON.FreeCamera",$d);class K9{constructor(e,t,i){this.name=e,this.from=t,this.to=i}clone(){return new K9(this.name,this.from,this.to)}}class n3{constructor(e,t){this.width=e,this.height=t}toString(){return`{W: ${this.width}, H: ${this.height}}`}getClassName(){return"Size"}getHashCode(){let e=this.width|0;return e=e*397^(this.height|0),e}copyFrom(e){this.width=e.width,this.height=e.height}copyFromFloats(e,t){return this.width=e,this.height=t,this}set(e,t){return this.copyFromFloats(e,t)}multiplyByFloats(e,t){return new n3(this.width*e,this.height*t)}clone(){return new n3(this.width,this.height)}equals(e){return e?this.width===e.width&&this.height===e.height:!1}get surface(){return this.width*this.height}static Zero(){return new n3(0,0)}add(e){return new n3(this.width+e.width,this.height+e.height)}subtract(e){return new n3(this.width-e.width,this.height-e.height)}scale(e){return new n3(this.width*e,this.height*e)}static Lerp(e,t,i){const s=e.width+(t.width-e.width)*i,r=e.height+(t.height-e.height)*i;return new n3(s,r)}}const uZ=Object.freeze(new Re(0,0,0,0)),hZ=Object.freeze(P.Zero()),dZ=Object.freeze(Ue.Zero()),fZ=Object.freeze(n3.Zero()),pZ=Object.freeze(Pe.Black()),mZ=Object.freeze(new St(0,0,0,0)),Gv={key:0,repeatCount:0,loopMode:2};class He{static _PrepareAnimation(e,t,i,s,r,n,o,l){let c;if(!isNaN(parseFloat(r))&&isFinite(r)?c=He.ANIMATIONTYPE_FLOAT:r instanceof Re?c=He.ANIMATIONTYPE_QUATERNION:r instanceof P?c=He.ANIMATIONTYPE_VECTOR3:r instanceof Ue?c=He.ANIMATIONTYPE_VECTOR2:r instanceof Pe?c=He.ANIMATIONTYPE_COLOR3:r instanceof St?c=He.ANIMATIONTYPE_COLOR4:r instanceof n3&&(c=He.ANIMATIONTYPE_SIZE),c==null)return null;const u=new He(e,t,i,c,o),f=[{frame:0,value:r},{frame:s,value:n}];return u.setKeys(f),l!==void 0&&u.setEasingFunction(l),u}static CreateAnimation(e,t,i,s){const r=new He(e+"Animation",e,i,t,He.ANIMATIONLOOPMODE_CONSTANT);return r.setEasingFunction(s),r}static CreateAndStartAnimation(e,t,i,s,r,n,o,l,c,u,f){const p=He._PrepareAnimation(e,i,s,r,n,o,l,c);return!p||(t.getScene&&(f=t.getScene()),!f)?null:f.beginDirectAnimation(t,[p],0,r,p.loopMode!==He.ANIMATIONLOOPMODE_CONSTANT,1,u)}static CreateAndStartHierarchyAnimation(e,t,i,s,r,n,o,l,c,u,f){const p=He._PrepareAnimation(e,s,r,n,o,l,c,u);return p?t.getScene().beginDirectHierarchyAnimation(t,i,[p],0,n,p.loopMode===1,1,f):null}static CreateMergeAndStartAnimation(e,t,i,s,r,n,o,l,c,u){const f=He._PrepareAnimation(e,i,s,r,n,o,l,c);return f?(t.animations.push(f),t.getScene().beginAnimation(t,0,r,f.loopMode===1,1,u)):null}static MakeAnimationAdditive(e,t,i,s=!1,r){let n;typeof t=="object"?n=t:n={referenceFrame:t??0,range:i,cloneOriginalAnimation:s,clonedAnimationName:r};let o=e;if(n.cloneOriginalAnimation&&(o=e.clone(),o.name=n.clonedAnimationName||o.name),!o._keys.length)return o;const l=n.referenceFrame&&n.referenceFrame>=0?n.referenceFrame:0;let c=0;const u=o._keys[0];let f=o._keys.length-1;const p=o._keys[f],m={referenceValue:u.value,referencePosition:ae.Vector3[0],referenceQuaternion:ae.Quaternion[0],referenceScaling:ae.Vector3[1],keyPosition:ae.Vector3[2],keyQuaternion:ae.Quaternion[1],keyScaling:ae.Vector3[3]};let _=u.frame,d=p.frame;if(n.range){const A=o.getRange(n.range);A&&(_=A.from,d=A.to)}else _=n.fromFrame??_,d=n.toFrame??d;if(_!==u.frame&&(c=o.createKeyForFrame(_)),d!==p.frame&&(f=o.createKeyForFrame(d)),o._keys.length===1){const A=o._getKeyValue(o._keys[0]);m.referenceValue=A.clone?A.clone():A}else if(l<=u.frame){const A=o._getKeyValue(u.value);m.referenceValue=A.clone?A.clone():A}else if(l>=p.frame){const A=o._getKeyValue(p.value);m.referenceValue=A.clone?A.clone():A}else{Gv.key=0;const A=o._interpolate(l,Gv);m.referenceValue=A.clone?A.clone():A}o.dataType===He.ANIMATIONTYPE_QUATERNION?m.referenceValue.normalize().conjugateInPlace():o.dataType===He.ANIMATIONTYPE_MATRIX&&(m.referenceValue.decompose(m.referenceScaling,m.referenceQuaternion,m.referencePosition),m.referenceQuaternion.normalize().conjugateInPlace());let h=Number.MAX_VALUE;const x=n.clipKeys?[]:null;for(let A=c;A<=f;A++){let S=o._keys[A];if((x||n.cloneOriginalAnimation)&&(S={frame:S.frame,value:S.value.clone?S.value.clone():S.value,inTangent:S.inTangent,outTangent:S.outTangent,interpolation:S.interpolation,lockedTangent:S.lockedTangent},x&&(h===Number.MAX_VALUE&&(h=S.frame),S.frame-=h,x.push(S))),!(A&&o.dataType!==He.ANIMATIONTYPE_FLOAT&&S.value===u.value))switch(o.dataType){case He.ANIMATIONTYPE_MATRIX:S.value.decompose(m.keyScaling,m.keyQuaternion,m.keyPosition),m.keyPosition.subtractInPlace(m.referencePosition),m.keyScaling.divideInPlace(m.referenceScaling),m.referenceQuaternion.multiplyToRef(m.keyQuaternion,m.keyQuaternion),me.ComposeToRef(m.keyScaling,m.keyQuaternion,m.keyPosition,S.value);break;case He.ANIMATIONTYPE_QUATERNION:m.referenceValue.multiplyToRef(S.value,S.value);break;case He.ANIMATIONTYPE_VECTOR2:case He.ANIMATIONTYPE_VECTOR3:case He.ANIMATIONTYPE_COLOR3:case He.ANIMATIONTYPE_COLOR4:S.value.subtractToRef(m.referenceValue,S.value);break;case He.ANIMATIONTYPE_SIZE:S.value.width-=m.referenceValue.width,S.value.height-=m.referenceValue.height;break;default:S.value-=m.referenceValue}}return x&&o.setKeys(x,!0),o}static TransitionTo(e,t,i,s,r,n,o,l=null){if(o<=0)return i[e]=t,l&&l(),null;const c=r*(o/1e3);n.setKeys([{frame:0,value:i[e].clone?i[e].clone():i[e]},{frame:c,value:t}]),i.animations||(i.animations=[]),i.animations.push(n);const u=s.beginAnimation(i,0,c,!1);return u.onAnimationEnd=l,u}get runtimeAnimations(){return this._runtimeAnimations}get hasRunningRuntimeAnimations(){for(const e of this._runtimeAnimations)if(!e.isStopped())return!0;return!1}constructor(e,t,i,s,r,n){this.name=e,this.targetProperty=t,this.framePerSecond=i,this.dataType=s,this.loopMode=r,this.enableBlending=n,this._easingFunction=null,this._runtimeAnimations=new Array,this._events=new Array,this.blendingSpeed=.01,this._ranges={},this.targetPropertyPath=t.split("."),this.dataType=s,this.loopMode=r===void 0?He.ANIMATIONLOOPMODE_CYCLE:r,this.uniqueId=He._UniqueIdGenerator++}toString(e){let t="Name: "+this.name+", property: "+this.targetProperty;if(t+=", datatype: "+["Float","Vector3","Quaternion","Matrix","Color3","Vector2"][this.dataType],t+=", nKeys: "+(this._keys?this._keys.length:"none"),t+=", nRanges: "+(this._ranges?Object.keys(this._ranges).length:"none"),e){t+=", Ranges: {";let i=!0;for(const s in this._ranges)i&&(t+=", ",i=!1),t+=s;t+="}"}return t}addEvent(e){this._events.push(e),this._events.sort((t,i)=>t.frame-i.frame)}removeEvents(e){for(let t=0;t<this._events.length;t++)this._events[t].frame===e&&(this._events.splice(t,1),t--)}getEvents(){return this._events}createRange(e,t,i){this._ranges[e]||(this._ranges[e]=new K9(e,t,i))}deleteRange(e,t=!0){const i=this._ranges[e];if(i){if(t){const s=i.from,r=i.to;for(let n=this._keys.length-1;n>=0;n--)this._keys[n].frame>=s&&this._keys[n].frame<=r&&this._keys.splice(n,1)}this._ranges[e]=null}}getRange(e){return this._ranges[e]}getKeys(){return this._keys}getHighestFrame(){let e=0;for(let t=0,i=this._keys.length;t<i;t++)e<this._keys[t].frame&&(e=this._keys[t].frame);return e}getEasingFunction(){return this._easingFunction}setEasingFunction(e){this._easingFunction=e}floatInterpolateFunction(e,t,i){return Zl(e,t,i)}floatInterpolateFunctionWithTangents(e,t,i,s,r){return the(e,t,i,s,r)}quaternionInterpolateFunction(e,t,i){return Re.Slerp(e,t,i)}quaternionInterpolateFunctionWithTangents(e,t,i,s,r){return Re.Hermite(e,t,i,s,r).normalize()}vector3InterpolateFunction(e,t,i){return P.Lerp(e,t,i)}vector3InterpolateFunctionWithTangents(e,t,i,s,r){return P.Hermite(e,t,i,s,r)}vector2InterpolateFunction(e,t,i){return Ue.Lerp(e,t,i)}vector2InterpolateFunctionWithTangents(e,t,i,s,r){return Ue.Hermite(e,t,i,s,r)}sizeInterpolateFunction(e,t,i){return n3.Lerp(e,t,i)}color3InterpolateFunction(e,t,i){return Pe.Lerp(e,t,i)}color3InterpolateFunctionWithTangents(e,t,i,s,r){return Pe.Hermite(e,t,i,s,r)}color4InterpolateFunction(e,t,i){return St.Lerp(e,t,i)}color4InterpolateFunctionWithTangents(e,t,i,s,r){return St.Hermite(e,t,i,s,r)}_getKeyValue(e){return typeof e=="function"?e():e}evaluate(e){return Gv.key=0,this._interpolate(e,Gv)}_interpolate(e,t,i=!1){if(t.loopMode===He.ANIMATIONLOOPMODE_CONSTANT&&t.repeatCount>0)return t.highLimitValue.clone?t.highLimitValue.clone():t.highLimitValue;const s=this._keys,r=s.length;let n=t.key;for(;n>=0&&e<s[n].frame;)--n;for(;n+1<=r-1&&e>=s[n+1].frame;)++n;if(t.key=n,n<0)return i?void 0:this._getKeyValue(s[0].value);if(n+1>r-1)return i?void 0:this._getKeyValue(s[r-1].value);const o=s[n],l=s[n+1];if(i&&(e===o.frame||e===l.frame))return;const c=this._getKeyValue(o.value),u=this._getKeyValue(l.value);if(o.interpolation===1)return l.frame>e?c:u;const f=o.outTangent!==void 0&&l.inTangent!==void 0,p=l.frame-o.frame;let m=(e-o.frame)/p;const _=o.easingFunction||this.getEasingFunction();switch(_&&(m=_.ease(m)),this.dataType){case He.ANIMATIONTYPE_FLOAT:{const d=f?this.floatInterpolateFunctionWithTangents(c,o.outTangent*p,u,l.inTangent*p,m):this.floatInterpolateFunction(c,u,m);switch(t.loopMode){case He.ANIMATIONLOOPMODE_CYCLE:case He.ANIMATIONLOOPMODE_CONSTANT:case He.ANIMATIONLOOPMODE_YOYO:return d;case He.ANIMATIONLOOPMODE_RELATIVE:case He.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:return(t.offsetValue??0)*t.repeatCount+d}break}case He.ANIMATIONTYPE_QUATERNION:{const d=f?this.quaternionInterpolateFunctionWithTangents(c,o.outTangent.scale(p),u,l.inTangent.scale(p),m):this.quaternionInterpolateFunction(c,u,m);switch(t.loopMode){case He.ANIMATIONLOOPMODE_CYCLE:case He.ANIMATIONLOOPMODE_CONSTANT:case He.ANIMATIONLOOPMODE_YOYO:return d;case He.ANIMATIONLOOPMODE_RELATIVE:case He.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:return d.addInPlace((t.offsetValue||uZ).scale(t.repeatCount))}return d}case He.ANIMATIONTYPE_VECTOR3:{const d=f?this.vector3InterpolateFunctionWithTangents(c,o.outTangent.scale(p),u,l.inTangent.scale(p),m):this.vector3InterpolateFunction(c,u,m);switch(t.loopMode){case He.ANIMATIONLOOPMODE_CYCLE:case He.ANIMATIONLOOPMODE_CONSTANT:case He.ANIMATIONLOOPMODE_YOYO:return d;case He.ANIMATIONLOOPMODE_RELATIVE:case He.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:return d.add((t.offsetValue||hZ).scale(t.repeatCount))}break}case He.ANIMATIONTYPE_VECTOR2:{const d=f?this.vector2InterpolateFunctionWithTangents(c,o.outTangent.scale(p),u,l.inTangent.scale(p),m):this.vector2InterpolateFunction(c,u,m);switch(t.loopMode){case He.ANIMATIONLOOPMODE_CYCLE:case He.ANIMATIONLOOPMODE_CONSTANT:case He.ANIMATIONLOOPMODE_YOYO:return d;case He.ANIMATIONLOOPMODE_RELATIVE:case He.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:return d.add((t.offsetValue||dZ).scale(t.repeatCount))}break}case He.ANIMATIONTYPE_SIZE:{switch(t.loopMode){case He.ANIMATIONLOOPMODE_CYCLE:case He.ANIMATIONLOOPMODE_CONSTANT:case He.ANIMATIONLOOPMODE_YOYO:return this.sizeInterpolateFunction(c,u,m);case He.ANIMATIONLOOPMODE_RELATIVE:case He.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:return this.sizeInterpolateFunction(c,u,m).add((t.offsetValue||fZ).scale(t.repeatCount))}break}case He.ANIMATIONTYPE_COLOR3:{const d=f?this.color3InterpolateFunctionWithTangents(c,o.outTangent.scale(p),u,l.inTangent.scale(p),m):this.color3InterpolateFunction(c,u,m);switch(t.loopMode){case He.ANIMATIONLOOPMODE_CYCLE:case He.ANIMATIONLOOPMODE_CONSTANT:case He.ANIMATIONLOOPMODE_YOYO:return d;case He.ANIMATIONLOOPMODE_RELATIVE:case He.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:return d.add((t.offsetValue||pZ).scale(t.repeatCount))}break}case He.ANIMATIONTYPE_COLOR4:{const d=f?this.color4InterpolateFunctionWithTangents(c,o.outTangent.scale(p),u,l.inTangent.scale(p),m):this.color4InterpolateFunction(c,u,m);switch(t.loopMode){case He.ANIMATIONLOOPMODE_CYCLE:case He.ANIMATIONLOOPMODE_CONSTANT:case He.ANIMATIONLOOPMODE_YOYO:return d;case He.ANIMATIONLOOPMODE_RELATIVE:case He.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:return d.add((t.offsetValue||mZ).scale(t.repeatCount))}break}case He.ANIMATIONTYPE_MATRIX:{switch(t.loopMode){case He.ANIMATIONLOOPMODE_CYCLE:case He.ANIMATIONLOOPMODE_CONSTANT:case He.ANIMATIONLOOPMODE_YOYO:return He.AllowMatricesInterpolation?this.matrixInterpolateFunction(c,u,m,t.workValue):c;case He.ANIMATIONLOOPMODE_RELATIVE:case He.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:return c}break}}return 0}matrixInterpolateFunction(e,t,i,s){return He.AllowMatrixDecomposeForInterpolation?s?(me.DecomposeLerpToRef(e,t,i,s),s):me.DecomposeLerp(e,t,i):s?(me.LerpToRef(e,t,i,s),s):me.Lerp(e,t,i)}clone(){const e=new He(this.name,this.targetPropertyPath.join("."),this.framePerSecond,this.dataType,this.loopMode);if(e.enableBlending=this.enableBlending,e.blendingSpeed=this.blendingSpeed,this._keys&&e.setKeys(this._keys),this._ranges){e._ranges={};for(const t in this._ranges){const i=this._ranges[t];i&&(e._ranges[t]=i.clone())}}return e}setKeys(e,t=!1){this._keys=t?e:e.slice(0)}createKeyForFrame(e){Gv.key=0;const t=this._interpolate(e,Gv,!0);if(!t)return this._keys[Gv.key].frame===e?Gv.key:Gv.key+1;const i={frame:e,value:t.clone?t.clone():t};return this._keys.splice(Gv.key+1,0,i),Gv.key+1}serialize(){const e={};e.name=this.name,e.property=this.targetProperty,e.framePerSecond=this.framePerSecond,e.dataType=this.dataType,e.loopBehavior=this.loopMode,e.enableBlending=this.enableBlending,e.blendingSpeed=this.blendingSpeed;const t=this.dataType;e.keys=[];const i=this.getKeys();for(let s=0;s<i.length;s++){const r=i[s],n={};switch(n.frame=r.frame,t){case He.ANIMATIONTYPE_FLOAT:n.values=[r.value],r.inTangent!==void 0&&n.values.push(r.inTangent),r.outTangent!==void 0&&(r.inTangent===void 0&&n.values.push(void 0),n.values.push(r.outTangent)),r.interpolation!==void 0&&(r.inTangent===void 0&&n.values.push(void 0),r.outTangent===void 0&&n.values.push(void 0),n.values.push(r.interpolation));break;case He.ANIMATIONTYPE_QUATERNION:case He.ANIMATIONTYPE_MATRIX:case He.ANIMATIONTYPE_VECTOR3:case He.ANIMATIONTYPE_COLOR3:case He.ANIMATIONTYPE_COLOR4:n.values=r.value.asArray(),r.inTangent!=null&&n.values.push(r.inTangent.asArray()),r.outTangent!=null&&(r.inTangent===void 0&&n.values.push(void 0),n.values.push(r.outTangent.asArray())),r.interpolation!==void 0&&(r.inTangent===void 0&&n.values.push(void 0),r.outTangent===void 0&&n.values.push(void 0),n.values.push(r.interpolation));break}e.keys.push(n)}e.ranges=[];for(const s in this._ranges){const r=this._ranges[s];if(!r)continue;const n={};n.name=s,n.from=r.from,n.to=r.to,e.ranges.push(n)}return e}static _UniversalLerp(e,t,i){const s=e.constructor;return s.Lerp?s.Lerp(e,t,i):s.Slerp?s.Slerp(e,t,i):e.toFixed?e*(1-i)+i*t:t}static Parse(e){const t=new He(e.name,e.property,e.framePerSecond,e.dataType,e.loopBehavior),i=e.dataType,s=[];let r,n;for(e.enableBlending&&(t.enableBlending=e.enableBlending),e.blendingSpeed&&(t.blendingSpeed=e.blendingSpeed),n=0;n<e.keys.length;n++){const o=e.keys[n];let l,c,u;switch(i){case He.ANIMATIONTYPE_FLOAT:r=o.values[0],o.values.length>=2&&(l=o.values[1]),o.values.length>=3&&(c=o.values[2]),o.values.length>=4&&(u=o.values[3]);break;case He.ANIMATIONTYPE_QUATERNION:if(r=Re.FromArray(o.values),o.values.length>=8){const p=Re.FromArray(o.values.slice(4,8));p.equals(Re.Zero())||(l=p)}if(o.values.length>=12){const p=Re.FromArray(o.values.slice(8,12));p.equals(Re.Zero())||(c=p)}o.values.length>=13&&(u=o.values[12]);break;case He.ANIMATIONTYPE_MATRIX:r=me.FromArray(o.values),o.values.length>=17&&(u=o.values[16]);break;case He.ANIMATIONTYPE_COLOR3:r=Pe.FromArray(o.values),o.values[3]&&(l=Pe.FromArray(o.values[3])),o.values[4]&&(c=Pe.FromArray(o.values[4])),o.values[5]&&(u=o.values[5]);break;case He.ANIMATIONTYPE_COLOR4:r=St.FromArray(o.values),o.values[4]&&(l=St.FromArray(o.values[4])),o.values[5]&&(c=St.FromArray(o.values[5])),o.values[6]&&(u=St.FromArray(o.values[6]));break;case He.ANIMATIONTYPE_VECTOR3:default:r=P.FromArray(o.values),o.values[3]&&(l=P.FromArray(o.values[3])),o.values[4]&&(c=P.FromArray(o.values[4])),o.values[5]&&(u=o.values[5]);break}const f={};f.frame=o.frame,f.value=r,l!=null&&(f.inTangent=l),c!=null&&(f.outTangent=c),u!=null&&(f.interpolation=u),s.push(f)}if(t.setKeys(s),e.ranges)for(n=0;n<e.ranges.length;n++)r=e.ranges[n],t.createRange(r.name,r.from,r.to);return t}static AppendSerializedAnimations(e,t){It.AppendSerializedAnimations(e,t)}static ParseFromFileAsync(e,t){return new Promise((i,s)=>{const r=new ha;r.addEventListener("readystatechange",()=>{if(r.readyState==4)if(r.status==200){let n=JSON.parse(r.responseText);if(n.animations&&(n=n.animations),n.length){const o=[];for(const l of n)o.push(this.Parse(l));i(o)}else{const o=this.Parse(n);e&&(o.name=e),i(o)}}else s("Unable to load the animation")}),r.open("GET",t),r.send()})}static ParseFromSnippetAsync(e){return new Promise((t,i)=>{const s=new ha;s.addEventListener("readystatechange",()=>{if(s.readyState==4)if(s.status==200){const r=JSON.parse(JSON.parse(s.responseText).jsonPayload);if(r.animations){const n=JSON.parse(r.animations),o=[];for(const l of n.animations){const c=this.Parse(l);c.snippetId=e,o.push(c)}t(o)}else{const n=JSON.parse(r.animation),o=this.Parse(n);o.snippetId=e,t(o)}}else i("Unable to load the snippet "+e)}),s.open("GET",this.SnippetUrl+"/"+e.replace(/#/g,"/")),s.send()})}}He._UniqueIdGenerator=0,He.AllowMatricesInterpolation=!1,He.AllowMatrixDecomposeForInterpolation=!0,He.SnippetUrl="https://snippet.babylonjs.com",He.ANIMATIONTYPE_FLOAT=0,He.ANIMATIONTYPE_VECTOR3=1,He.ANIMATIONTYPE_QUATERNION=2,He.ANIMATIONTYPE_MATRIX=3,He.ANIMATIONTYPE_COLOR3=4,He.ANIMATIONTYPE_COLOR4=7,He.ANIMATIONTYPE_VECTOR2=5,He.ANIMATIONTYPE_SIZE=6,He.ANIMATIONLOOPMODE_RELATIVE=0,He.ANIMATIONLOOPMODE_CYCLE=1,He.ANIMATIONLOOPMODE_CONSTANT=2,He.ANIMATIONLOOPMODE_YOYO=4,He.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT=5,He.CreateFromSnippetAsync=He.ParseFromSnippetAsync,ve("BABYLON.Animation",He),Rr._AnimationRangeFactory=(a,e,t)=>new K9(a,e,t);class gn extends Rr{get _matrix(){return this._compose(),this._localMatrix}set _matrix(e){e.updateFlag===this._localMatrix.updateFlag&&!this._needToCompose||(this._needToCompose=!1,this._localMatrix.copyFrom(e),this._markAsDirtyAndDecompose())}constructor(e,t,i=null,s=null,r=null,n=null,o=null){super(e,t.getScene(),!1),this.name=e,this.children=[],this.animations=[],this._index=null,this._scalingDeterminant=1,this._needToDecompose=!0,this._needToCompose=!1,this._linkedTransformNode=null,this._waitingTransformNodeId=null,this._skeleton=t,this._localMatrix=(s==null?void 0:s.clone())??me.Identity(),this._restMatrix=r??this._localMatrix.clone(),this._bindMatrix=n??this._localMatrix.clone(),this._index=o,this._absoluteMatrix=new me,this._absoluteBindMatrix=new me,this._absoluteInverseBindMatrix=new me,this._finalMatrix=new me,t.bones.push(this),this.setParent(i,!1),this._updateAbsoluteBindMatrices()}getClassName(){return"Bone"}getSkeleton(){return this._skeleton}get parent(){return this._parentNode}getParent(){return this.parent}getChildren(){return this.children}getIndex(){return this._index===null?this.getSkeleton().bones.indexOf(this):this._index}set parent(e){this.setParent(e)}setParent(e,t=!0){if(this.parent!==e){if(this.parent){const i=this.parent.children.indexOf(this);i!==-1&&this.parent.children.splice(i,1)}this._parentNode=e,this.parent&&this.parent.children.push(this),t&&this._updateAbsoluteBindMatrices(),this.markAsDirty()}}getLocalMatrix(){return this._compose(),this._localMatrix}getBindMatrix(){return this._bindMatrix}getBaseMatrix(){return this.getBindMatrix()}getRestMatrix(){return this._restMatrix}getRestPose(){return this.getRestMatrix()}setRestMatrix(e){this._restMatrix.copyFrom(e)}setRestPose(e){this.setRestMatrix(e)}getBindPose(){return this.getBindMatrix()}setBindMatrix(e){this.updateMatrix(e)}setBindPose(e){this.setBindMatrix(e)}getFinalMatrix(){return this._finalMatrix}getWorldMatrix(){return this.getFinalMatrix()}returnToRest(){if(this._linkedTransformNode){const e=ae.Vector3[0],t=ae.Quaternion[0],i=ae.Vector3[1];this.getRestMatrix().decompose(e,t,i),this._linkedTransformNode.position.copyFrom(i),this._linkedTransformNode.rotationQuaternion=this._linkedTransformNode.rotationQuaternion??Re.Identity(),this._linkedTransformNode.rotationQuaternion.copyFrom(t),this._linkedTransformNode.scaling.copyFrom(e)}else this._matrix=this._restMatrix}getAbsoluteInverseBindMatrix(){return this._absoluteInverseBindMatrix}getInvertedAbsoluteTransform(){return this.getAbsoluteInverseBindMatrix()}getAbsoluteMatrix(){return this._absoluteMatrix}getAbsoluteTransform(){return this._absoluteMatrix}linkTransformNode(e){this._linkedTransformNode&&this._skeleton._numBonesWithLinkedTransformNode--,this._linkedTransformNode=e,this._linkedTransformNode&&this._skeleton._numBonesWithLinkedTransformNode++}getTransformNode(){return this._linkedTransformNode}get position(){return this._decompose(),this._localPosition}set position(e){this._decompose(),this._localPosition.copyFrom(e),this._markAsDirtyAndCompose()}get rotation(){return this.getRotation()}set rotation(e){this.setRotation(e)}get rotationQuaternion(){return this._decompose(),this._localRotation}set rotationQuaternion(e){this.setRotationQuaternion(e)}get scaling(){return this.getScale()}set scaling(e){this.setScale(e)}get animationPropertiesOverride(){return this._skeleton.animationPropertiesOverride}_decompose(){this._needToDecompose&&(this._needToDecompose=!1,this._localScaling||(this._localScaling=P.Zero(),this._localRotation=Re.Zero(),this._localPosition=P.Zero()),this._localMatrix.decompose(this._localScaling,this._localRotation,this._localPosition))}_compose(){if(this._needToCompose){if(!this._localScaling){this._needToCompose=!1;return}this._needToCompose=!1,me.ComposeToRef(this._localScaling,this._localRotation,this._localPosition,this._localMatrix)}}updateMatrix(e,t=!0,i=!0){this._bindMatrix.copyFrom(e),t&&this._updateAbsoluteBindMatrices(),i?this._matrix=e:this.markAsDirty()}_updateAbsoluteBindMatrices(e,t=!0){if(e||(e=this._bindMatrix),this.parent?e.multiplyToRef(this.parent._absoluteBindMatrix,this._absoluteBindMatrix):this._absoluteBindMatrix.copyFrom(e),this._absoluteBindMatrix.invertToRef(this._absoluteInverseBindMatrix),t)for(let i=0;i<this.children.length;i++)this.children[i]._updateAbsoluteBindMatrices();this._scalingDeterminant=this._absoluteBindMatrix.determinant()<0?-1:1}markAsDirty(){return this._currentRenderId++,this._childUpdateId++,this._skeleton._markAsDirty(),this}_markAsDirtyAndCompose(){this.markAsDirty(),this._needToCompose=!0}_markAsDirtyAndDecompose(){this.markAsDirty(),this._needToDecompose=!0}_updatePosition(e,t=0,i,s=!0){const r=this.getLocalMatrix();if(t==0)s?(r.addAtIndex(12,e.x),r.addAtIndex(13,e.y),r.addAtIndex(14,e.z)):r.setTranslationFromFloats(e.x,e.y,e.z);else{let n=null;i&&(n=i.getWorldMatrix()),this._skeleton.computeAbsoluteMatrices();const o=gn._TmpMats[0],l=gn._TmpVecs[0];this.parent?i&&n?(o.copyFrom(this.parent.getAbsoluteMatrix()),o.multiplyToRef(n,o)):o.copyFrom(this.parent.getAbsoluteMatrix()):me.IdentityToRef(o),s&&o.setTranslationFromFloats(0,0,0),o.invert(),P.TransformCoordinatesToRef(e,o,l),s?(r.addAtIndex(12,l.x),r.addAtIndex(13,l.y),r.addAtIndex(14,l.z)):r.setTranslationFromFloats(l.x,l.y,l.z)}this._markAsDirtyAndDecompose()}translate(e,t=0,i){this._updatePosition(e,t,i,!0)}setPosition(e,t=0,i){this._updatePosition(e,t,i,!1)}setAbsolutePosition(e,t){this.setPosition(e,1,t)}scale(e,t,i,s=!1){const r=this.getLocalMatrix(),n=gn._TmpMats[0];me.ScalingToRef(e,t,i,n),n.multiplyToRef(r,r),n.invert();for(const o of this.children){const l=o.getLocalMatrix();l.multiplyToRef(n,l),l.multiplyAtIndex(12,e),l.multiplyAtIndex(13,t),l.multiplyAtIndex(14,i),o._markAsDirtyAndDecompose()}if(this._markAsDirtyAndDecompose(),s)for(const o of this.children)o.scale(e,t,i,s)}setScale(e){this._decompose(),this._localScaling.copyFrom(e),this._markAsDirtyAndCompose()}getScale(){return this._decompose(),this._localScaling}getScaleToRef(e){this._decompose(),e.copyFrom(this._localScaling)}setYawPitchRoll(e,t,i,s=0,r){if(s===0){const l=gn._TmpQuat;Re.RotationYawPitchRollToRef(e,t,i,l),this.setRotationQuaternion(l,s,r);return}const n=gn._TmpMats[0];if(!this._getAbsoluteInverseMatrixUnscaledToRef(n,r))return;const o=gn._TmpMats[1];me.RotationYawPitchRollToRef(e,t,i,o),n.multiplyToRef(o,o),this._rotateWithMatrix(o,s,r)}rotate(e,t,i=0,s){const r=gn._TmpMats[0];r.setTranslationFromFloats(0,0,0),me.RotationAxisToRef(e,t,r),this._rotateWithMatrix(r,i,s)}setAxisAngle(e,t,i=0,s){if(i===0){const o=gn._TmpQuat;Re.RotationAxisToRef(e,t,o),this.setRotationQuaternion(o,i,s);return}const r=gn._TmpMats[0];if(!this._getAbsoluteInverseMatrixUnscaledToRef(r,s))return;const n=gn._TmpMats[1];me.RotationAxisToRef(e,t,n),r.multiplyToRef(n,n),this._rotateWithMatrix(n,i,s)}setRotation(e,t=0,i){this.setYawPitchRoll(e.y,e.x,e.z,t,i)}setRotationQuaternion(e,t=0,i){if(t===0){this._decompose(),this._localRotation.copyFrom(e),this._markAsDirtyAndCompose();return}const s=gn._TmpMats[0];if(!this._getAbsoluteInverseMatrixUnscaledToRef(s,i))return;const r=gn._TmpMats[1];me.FromQuaternionToRef(e,r),s.multiplyToRef(r,r),this._rotateWithMatrix(r,t,i)}setRotationMatrix(e,t=0,i){if(t===0){const n=gn._TmpQuat;Re.FromRotationMatrixToRef(e,n),this.setRotationQuaternion(n,t,i);return}const s=gn._TmpMats[0];if(!this._getAbsoluteInverseMatrixUnscaledToRef(s,i))return;const r=gn._TmpMats[1];r.copyFrom(e),s.multiplyToRef(e,r),this._rotateWithMatrix(r,t,i)}_rotateWithMatrix(e,t=0,i){const s=this.getLocalMatrix(),r=s.m[12],n=s.m[13],o=s.m[14],l=this.getParent(),c=gn._TmpMats[3],u=gn._TmpMats[4];l&&t==1?(i?(c.copyFrom(i.getWorldMatrix()),l.getAbsoluteMatrix().multiplyToRef(c,c)):c.copyFrom(l.getAbsoluteMatrix()),u.copyFrom(c),u.invert(),s.multiplyToRef(c,s),s.multiplyToRef(e,s),s.multiplyToRef(u,s)):t==1&&i?(c.copyFrom(i.getWorldMatrix()),u.copyFrom(c),u.invert(),s.multiplyToRef(c,s),s.multiplyToRef(e,s),s.multiplyToRef(u,s)):s.multiplyToRef(e,s),s.setTranslationFromFloats(r,n,o),this.computeAbsoluteMatrices(),this._markAsDirtyAndDecompose()}_getAbsoluteInverseMatrixUnscaledToRef(e,t){const i=gn._TmpMats[2];return e.copyFrom(this.getAbsoluteMatrix()),t?(e.multiplyToRef(t.getWorldMatrix(),e),me.ScalingToRef(t.scaling.x,t.scaling.y,t.scaling.z,i)):me.IdentityToRef(i),e.invert(),isNaN(e.m[0])?!1:(i.multiplyAtIndex(0,this._scalingDeterminant),e.multiplyToRef(i,e),!0)}getPosition(e=0,t=null){const i=P.Zero();return this.getPositionToRef(e,t,i),i}getPositionToRef(e=0,t,i){if(e==0){const s=this.getLocalMatrix();i.x=s.m[12],i.y=s.m[13],i.z=s.m[14]}else{let s=null;t&&(s=t.getWorldMatrix()),this._skeleton.computeAbsoluteMatrices();let r=gn._TmpMats[0];t&&s?(r.copyFrom(this.getAbsoluteMatrix()),r.multiplyToRef(s,r)):r=this.getAbsoluteMatrix(),i.x=r.m[12],i.y=r.m[13],i.z=r.m[14]}}getAbsolutePosition(e=null){const t=P.Zero();return this.getPositionToRef(1,e,t),t}getAbsolutePositionToRef(e,t){this.getPositionToRef(1,e,t)}computeAbsoluteMatrices(){if(this._compose(),this.parent)this._localMatrix.multiplyToRef(this.parent._absoluteMatrix,this._absoluteMatrix);else{this._absoluteMatrix.copyFrom(this._localMatrix);const i=this._skeleton.getPoseMatrix();i&&this._absoluteMatrix.multiplyToRef(i,this._absoluteMatrix)}const e=this.children,t=e.length;for(let i=0;i<t;i++)e[i].computeAbsoluteMatrices()}computeAbsoluteTransforms(){this.computeAbsoluteMatrices()}getDirection(e,t=null){const i=P.Zero();return this.getDirectionToRef(e,t,i),i}getDirectionToRef(e,t=null,i){let s=null;t&&(s=t.getWorldMatrix()),this._skeleton.computeAbsoluteMatrices();const r=gn._TmpMats[0];r.copyFrom(this.getAbsoluteMatrix()),t&&s&&r.multiplyToRef(s,r),P.TransformNormalToRef(e,r,i),i.normalize()}getRotation(e=0,t=null){const i=P.Zero();return this.getRotationToRef(e,t,i),i}getRotationToRef(e=0,t=null,i){const s=gn._TmpQuat;this.getRotationQuaternionToRef(e,t,s),s.toEulerAnglesToRef(i)}getRotationQuaternion(e=0,t=null){const i=Re.Identity();return this.getRotationQuaternionToRef(e,t,i),i}getRotationQuaternionToRef(e=0,t=null,i){if(e==0)this._decompose(),i.copyFrom(this._localRotation);else{const s=gn._TmpMats[0],r=this.getAbsoluteMatrix();t?r.multiplyToRef(t.getWorldMatrix(),s):s.copyFrom(r),s.multiplyAtIndex(0,this._scalingDeterminant),s.multiplyAtIndex(1,this._scalingDeterminant),s.multiplyAtIndex(2,this._scalingDeterminant),s.decompose(void 0,i,void 0)}}getRotationMatrix(e=0,t){const i=me.Identity();return this.getRotationMatrixToRef(e,t,i),i}getRotationMatrixToRef(e=0,t,i){if(e==0)this.getLocalMatrix().getRotationMatrixToRef(i);else{const s=gn._TmpMats[0],r=this.getAbsoluteMatrix();t?r.multiplyToRef(t.getWorldMatrix(),s):s.copyFrom(r),s.multiplyAtIndex(0,this._scalingDeterminant),s.multiplyAtIndex(1,this._scalingDeterminant),s.multiplyAtIndex(2,this._scalingDeterminant),s.getRotationMatrixToRef(i)}}getAbsolutePositionFromLocal(e,t=null){const i=P.Zero();return this.getAbsolutePositionFromLocalToRef(e,t,i),i}getAbsolutePositionFromLocalToRef(e,t=null,i){let s=null;t&&(s=t.getWorldMatrix()),this._skeleton.computeAbsoluteMatrices();const r=gn._TmpMats[0];r.copyFrom(this.getAbsoluteMatrix()),t&&s&&r.multiplyToRef(s,r),P.TransformCoordinatesToRef(e,r,i)}getLocalPositionFromAbsolute(e,t=null){const i=P.Zero();return this.getLocalPositionFromAbsoluteToRef(e,t,i),i}getLocalPositionFromAbsoluteToRef(e,t=null,i){let s=null;t&&(s=t.getWorldMatrix()),this._skeleton.computeAbsoluteMatrices();const r=gn._TmpMats[0];r.copyFrom(this.getAbsoluteMatrix()),t&&s&&r.multiplyToRef(s,r),r.invert(),P.TransformCoordinatesToRef(e,r,i)}setCurrentPoseAsRest(){this.setRestMatrix(this.getLocalMatrix())}dispose(){this._linkedTransformNode=null;const e=this._skeleton.bones.indexOf(this);if(e!==-1&&this._skeleton.bones.splice(e,1),this._parentNode&&this._parentNode.children){const t=this._parentNode.children,i=t.indexOf(this);i!==-1&&t.splice(i,1)}super.dispose()}}gn._TmpVecs=V1(2,P.Zero),gn._TmpQuat=Re.Identity(),gn._TmpMats=V1(5,me.Identity);class Sy{get wrapU(){return this._wrapU}set wrapU(e){this._wrapU=e}get wrapV(){return this._wrapV}set wrapV(e){this._wrapV=e}get coordinatesMode(){return 0}get isCube(){return this._texture?this._texture.isCube:!1}set isCube(e){this._texture&&(this._texture.isCube=e)}get is3D(){return this._texture?this._texture.is3D:!1}set is3D(e){this._texture&&(this._texture.is3D=e)}get is2DArray(){return this._texture?this._texture.is2DArray:!1}set is2DArray(e){this._texture&&(this._texture.is2DArray=e)}getClassName(){return"ThinTexture"}static _IsRenderTargetWrapper(e){return(e==null?void 0:e.shareDepth)!==void 0}constructor(e){this._wrapU=1,this._wrapV=1,this.wrapR=1,this.anisotropicFilteringLevel=4,this.delayLoadState=0,this._texture=null,this._engine=null,this._cachedSize=n3.Zero(),this._cachedBaseSize=n3.Zero(),this._initialSamplingMode=2,this._texture=Sy._IsRenderTargetWrapper(e)?e.texture:e,this._texture&&(this._engine=this._texture.getEngine())}isReady(){return this.delayLoadState===4?(this.delayLoad(),!1):this._texture?this._texture.isReady:!1}delayLoad(){}getInternalTexture(){return this._texture}getSize(){if(this._texture){if(this._texture.width)return this._cachedSize.width=this._texture.width,this._cachedSize.height=this._texture.height,this._cachedSize;if(this._texture._size)return this._cachedSize.width=this._texture._size,this._cachedSize.height=this._texture._size,this._cachedSize}return this._cachedSize}getBaseSize(){return!this.isReady()||!this._texture?(this._cachedBaseSize.width=0,this._cachedBaseSize.height=0,this._cachedBaseSize):this._texture._size?(this._cachedBaseSize.width=this._texture._size,this._cachedBaseSize.height=this._texture._size,this._cachedBaseSize):(this._cachedBaseSize.width=this._texture.baseWidth,this._cachedBaseSize.height=this._texture.baseHeight,this._cachedBaseSize)}get samplingMode(){return this._texture?this._texture.samplingMode:this._initialSamplingMode}updateSamplingMode(e){this._texture&&this._engine&&this._engine.updateTextureSamplingMode(e,this._texture)}releaseInternalTexture(){this._texture&&(this._texture.dispose(),this._texture=null)}dispose(){this._texture&&(this.releaseInternalTexture(),this._engine=null)}}class vr extends Sy{set hasAlpha(e){this._hasAlpha!==e&&(this._hasAlpha=e,this._scene&&this._scene.markAllMaterialsAsDirty(1,t=>t.hasTexture(this)))}get hasAlpha(){return this._hasAlpha}set getAlphaFromRGB(e){this._getAlphaFromRGB!==e&&(this._getAlphaFromRGB=e,this._scene&&this._scene.markAllMaterialsAsDirty(1,t=>t.hasTexture(this)))}get getAlphaFromRGB(){return this._getAlphaFromRGB}set coordinatesIndex(e){this._coordinatesIndex!==e&&(this._coordinatesIndex=e,this._scene&&this._scene.markAllMaterialsAsDirty(1,t=>t.hasTexture(this)))}get coordinatesIndex(){return this._coordinatesIndex}set coordinatesMode(e){this._coordinatesMode!==e&&(this._coordinatesMode=e,this._scene&&this._scene.markAllMaterialsAsDirty(1,t=>t.hasTexture(this)))}get coordinatesMode(){return this._coordinatesMode}get wrapU(){return this._wrapU}set wrapU(e){this._wrapU=e}get wrapV(){return this._wrapV}set wrapV(e){this._wrapV=e}get isCube(){return this._texture?this._texture.isCube:this._isCube}set isCube(e){this._texture?this._texture.isCube=e:this._isCube=e}get is3D(){return this._texture?this._texture.is3D:!1}set is3D(e){this._texture&&(this._texture.is3D=e)}get is2DArray(){return this._texture?this._texture.is2DArray:!1}set is2DArray(e){this._texture&&(this._texture.is2DArray=e)}get gammaSpace(){if(this._texture)this._texture._gammaSpace===null&&(this._texture._gammaSpace=this._gammaSpace);else return this._gammaSpace;return this._texture._gammaSpace&&!this._texture._useSRGBBuffer}set gammaSpace(e){var t;if(this._texture){if(this._texture._gammaSpace===e)return;this._texture._gammaSpace=e}else{if(this._gammaSpace===e)return;this._gammaSpace=e}(t=this.getScene())==null||t.markAllMaterialsAsDirty(1,i=>i.hasTexture(this))}get isRGBD(){return this._texture!=null&&this._texture._isRGBD}set isRGBD(e){var t;e!==this.isRGBD&&(this._texture&&(this._texture._isRGBD=e),(t=this.getScene())==null||t.markAllMaterialsAsDirty(1,i=>i.hasTexture(this)))}get noMipmap(){return!1}get lodGenerationOffset(){return this._texture?this._texture._lodGenerationOffset:0}set lodGenerationOffset(e){this._texture&&(this._texture._lodGenerationOffset=e)}get lodGenerationScale(){return this._texture?this._texture._lodGenerationScale:0}set lodGenerationScale(e){this._texture&&(this._texture._lodGenerationScale=e)}get linearSpecularLOD(){return this._texture?this._texture._linearSpecularLOD:!1}set linearSpecularLOD(e){this._texture&&(this._texture._linearSpecularLOD=e)}get irradianceTexture(){return this._texture?this._texture._irradianceTexture:null}set irradianceTexture(e){this._texture&&(this._texture._irradianceTexture=e)}get uid(){return this._uid||(this._uid=e3()),this._uid}toString(){return this.name}getClassName(){return"BaseTexture"}set onDispose(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)}get isBlocking(){return!0}get loadingError(){return this._loadingError}get errorObject(){return this._errorObject}constructor(e,t=null){super(null),this.metadata=null,this.reservedDataStore=null,this._hasAlpha=!1,this._getAlphaFromRGB=!1,this.level=1,this._coordinatesIndex=0,this.optimizeUVAllocation=!0,this._coordinatesMode=0,this.wrapR=1,this.anisotropicFilteringLevel=vr.DEFAULT_ANISOTROPIC_FILTERING_LEVEL,this._isCube=!1,this._gammaSpace=!0,this.invertZ=!1,this.lodLevelInAlpha=!1,this.isRenderTarget=!1,this._prefiltered=!1,this._forceSerialize=!1,this.animations=[],this.onDisposeObservable=new xe,this._onDisposeObserver=null,this._scene=null,this._uid=null,this._parentContainer=null,this._loadingError=!1,e?vr._IsScene(e)?this._scene=e:this._engine=e:this._scene=ei.LastCreatedScene,this._scene&&(this.uniqueId=this._scene.getUniqueId(),this._scene.addTexture(this),this._engine=this._scene.getEngine()),this._texture=t,this._uid=null}getScene(){return this._scene}_getEngine(){return this._engine}getTextureMatrix(){return me.IdentityReadOnly}getReflectionTextureMatrix(){return me.IdentityReadOnly}getRefractionTextureMatrix(){return this.getReflectionTextureMatrix()}isReadyOrNotBlocking(){return!this.isBlocking||this.isReady()||this.loadingError}scale(e){}get canRescale(){return!1}_getFromCache(e,t,i,s,r,n){const o=this._getEngine();if(!o)return null;const l=o._getUseSRGBBuffer(!!r,t),c=o.getLoadedTexturesCache();for(let u=0;u<c.length;u++){const f=c[u];if((r===void 0||l===f._useSRGBBuffer)&&(s===void 0||s===f.invertY)&&f.url===e&&f.generateMipMaps===!t&&(!i||i===f.samplingMode)&&(n===void 0||n===f.isCube))return f.incrementReferences(),f}return null}_rebuild(e=!1){}clone(){return null}get textureType(){return this._texture&&this._texture.type!==void 0?this._texture.type:0}get textureFormat(){return this._texture&&this._texture.format!==void 0?this._texture.format:5}_markAllSubMeshesAsTexturesDirty(){const e=this.getScene();e&&e.markAllMaterialsAsDirty(1)}readPixels(e=0,t=0,i=null,s=!0,r=!1,n=0,o=0,l=Number.MAX_VALUE,c=Number.MAX_VALUE){if(!this._texture)return null;const u=this._getEngine();if(!u)return null;const f=this.getSize();let p=f.width,m=f.height;t!==0&&(p=p/Math.pow(2,t),m=m/Math.pow(2,t),p=Math.round(p),m=Math.round(m)),l=Math.min(p,l),c=Math.min(m,c);try{return this._texture.isCube?u._readTexturePixels(this._texture,l,c,e,t,i,s,r,n,o):u._readTexturePixels(this._texture,l,c,-1,t,i,s,r,n,o)}catch{return null}}_readPixelsSync(e=0,t=0,i=null,s=!0,r=!1){if(!this._texture)return null;const n=this.getSize();let o=n.width,l=n.height;const c=this._getEngine();if(!c)return null;t!=0&&(o=o/Math.pow(2,t),l=l/Math.pow(2,t),o=Math.round(o),l=Math.round(l));try{return this._texture.isCube?c._readTexturePixelsSync(this._texture,o,l,e,t,i,s,r):c._readTexturePixelsSync(this._texture,o,l,-1,t,i,s,r)}catch{return null}}get _lodTextureHigh(){return this._texture?this._texture._lodTextureHigh:null}get _lodTextureMid(){return this._texture?this._texture._lodTextureMid:null}get _lodTextureLow(){return this._texture?this._texture._lodTextureLow:null}dispose(){if(this._scene){this._scene.stopAnimation&&this._scene.stopAnimation(this),this._scene.removePendingData(this);const e=this._scene.textures.indexOf(this);if(e>=0&&this._scene.textures.splice(e,1),this._scene.onTextureRemovedObservable.notifyObservers(this),this._scene=null,this._parentContainer){const t=this._parentContainer.textures.indexOf(this);t>-1&&this._parentContainer.textures.splice(t,1),this._parentContainer=null}}this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.metadata=null,super.dispose()}serialize(e=!1){if(!this.name&&!e)return null;const t=It.Serialize(this);return It.AppendSerializedAnimations(this,t),t}static WhenAllReady(e,t){let i=e.length;if(i===0){t();return}for(let s=0;s<e.length;s++){const r=e[s];if(r.isReady())--i===0&&t();else{const n=r.onLoadObservable;n?n.addOnce(()=>{--i===0&&t()}):--i===0&&t()}}}static _IsScene(e){return e.getClassName()==="Scene"}}vr.DEFAULT_ANISOTROPIC_FILTERING_LEVEL=4,F([G()],vr.prototype,"uniqueId",void 0),F([G()],vr.prototype,"name",void 0),F([G()],vr.prototype,"displayName",void 0),F([G()],vr.prototype,"metadata",void 0),F([G("hasAlpha")],vr.prototype,"_hasAlpha",void 0),F([G("getAlphaFromRGB")],vr.prototype,"_getAlphaFromRGB",void 0),F([G()],vr.prototype,"level",void 0),F([G("coordinatesIndex")],vr.prototype,"_coordinatesIndex",void 0),F([G()],vr.prototype,"optimizeUVAllocation",void 0),F([G("coordinatesMode")],vr.prototype,"_coordinatesMode",void 0),F([G()],vr.prototype,"wrapU",null),F([G()],vr.prototype,"wrapV",null),F([G()],vr.prototype,"wrapR",void 0),F([G()],vr.prototype,"anisotropicFilteringLevel",void 0),F([G()],vr.prototype,"isCube",null),F([G()],vr.prototype,"is3D",null),F([G()],vr.prototype,"is2DArray",null),F([G()],vr.prototype,"gammaSpace",null),F([G()],vr.prototype,"invertZ",void 0),F([G()],vr.prototype,"lodLevelInAlpha",void 0),F([G()],vr.prototype,"lodGenerationOffset",null),F([G()],vr.prototype,"lodGenerationScale",null),F([G()],vr.prototype,"linearSpecularLOD",null),F([Yi()],vr.prototype,"irradianceTexture",null),F([G()],vr.prototype,"isRenderTarget",void 0);function SG(a,e,t=!1){const i=e.width,s=e.height;if(a instanceof Float32Array){let c=a.byteLength/a.BYTES_PER_ELEMENT;const u=new Uint8Array(c);for(;--c>=0;){let f=a[c];f<0?f=0:f>1&&(f=1),u[c]=f*255}a=u}const r=document.createElement("canvas");r.width=i,r.height=s;const n=r.getContext("2d");if(!n)return null;const o=n.createImageData(i,s);if(o.data.set(a),n.putImageData(o,0,0),t){const c=document.createElement("canvas");c.width=i,c.height=s;const u=c.getContext("2d");return u?(u.translate(0,s),u.scale(1,-1),u.drawImage(r,0,0),c.toDataURL("image/png")):null}return r.toDataURL("image/png")}function gZ(a,e=0,t=0){const i=a.getInternalTexture();if(!i)return null;const s=a._readPixelsSync(e,t);return s?SG(s,a.getSize(),i.invertY):null}async function _Z(a,e=0,t=0){const i=a.getInternalTexture();if(!i)return null;const s=await a.readPixels(e,t);return s?SG(s,a.getSize(),i.invertY):null}const iRe={GenerateBase64StringFromPixelData:SG,GenerateBase64StringFromTexture:gZ,GenerateBase64StringFromTextureAsync:_Z};class be extends vr{static _CreateVideoTexture(e,t,i,s=!1,r=!1,n=be.TRILINEAR_SAMPLINGMODE,o={},l,c=5){throw as("VideoTexture")}get noMipmap(){return this._noMipmap}get mimeType(){return this._mimeType}set isBlocking(e){this._isBlocking=e}get isBlocking(){return this._isBlocking}get invertY(){return this._invertY}constructor(e,t,i,s,r=be.TRILINEAR_SAMPLINGMODE,n=null,o=null,l=null,c=!1,u,f,p,m,_){super(t),this.url=null,this.uOffset=0,this.vOffset=0,this.uScale=1,this.vScale=1,this.uAng=0,this.vAng=0,this.wAng=0,this.uRotationCenter=.5,this.vRotationCenter=.5,this.wRotationCenter=.5,this.homogeneousRotationInUVTransform=!1,this.inspectableCustomProperties=null,this._noMipmap=!1,this._invertY=!1,this._rowGenerationMatrix=null,this._cachedTextureMatrix=null,this._projectionModeMatrix=null,this._t0=null,this._t1=null,this._t2=null,this._cachedUOffset=-1,this._cachedVOffset=-1,this._cachedUScale=0,this._cachedVScale=0,this._cachedUAng=-1,this._cachedVAng=-1,this._cachedWAng=-1,this._cachedReflectionProjectionMatrixId=-1,this._cachedURotationCenter=-1,this._cachedVRotationCenter=-1,this._cachedWRotationCenter=-1,this._cachedHomogeneousRotationInUVTransform=!1,this._cachedIdentity3x2=!0,this._cachedReflectionTextureMatrix=null,this._cachedReflectionUOffset=-1,this._cachedReflectionVOffset=-1,this._cachedReflectionUScale=0,this._cachedReflectionVScale=0,this._cachedReflectionCoordinatesMode=-1,this._buffer=null,this._deleteBuffer=!1,this._format=null,this._delayedOnLoad=null,this._delayedOnError=null,this.onLoadObservable=new xe,this._isBlocking=!0,this.name=e||"",this.url=e;let d,h=!1,x=null,A=!0;typeof i=="object"&&i!==null?(d=i.noMipmap??!1,s=i.invertY??!_r,r=i.samplingMode??be.TRILINEAR_SAMPLINGMODE,n=i.onLoad??null,o=i.onError??null,l=i.buffer??null,c=i.deleteBuffer??!1,u=i.format,f=i.mimeType,p=i.loaderOptions,m=i.creationFlags,h=i.useSRGBBuffer??!1,x=i.internalTexture??null,A=i.gammaSpace??A,_=i.forcedExtension??_):d=!!i,this._gammaSpace=A,this._noMipmap=d,this._invertY=s===void 0?!_r:s,this._initialSamplingMode=r,this._buffer=l,this._deleteBuffer=c,this._mimeType=f,this._loaderOptions=p,this._creationFlags=m,this._useSRGBBuffer=h,this._forcedExtension=_,u&&(this._format=u);const S=this.getScene(),E=this._getEngine();if(!E)return;E.onBeforeTextureInitObservable.notifyObservers(this);const b=()=>{this._texture&&(this._texture._invertVScale&&(this.vScale*=-1,this.vOffset+=1),this._texture._cachedWrapU!==null&&(this.wrapU=this._texture._cachedWrapU,this._texture._cachedWrapU=null),this._texture._cachedWrapV!==null&&(this.wrapV=this._texture._cachedWrapV,this._texture._cachedWrapV=null),this._texture._cachedWrapR!==null&&(this.wrapR=this._texture._cachedWrapR,this._texture._cachedWrapR=null)),this.onLoadObservable.hasObservers()&&this.onLoadObservable.notifyObservers(this),n&&n(),!this.isBlocking&&S&&S.resetCachedMaterial()},M=(T,O)=>{this._loadingError=!0,this._errorObject={message:T,exception:O},o&&o(T,O),be.OnTextureLoadErrorObservable.notifyObservers(this)};if(!this.url&&!x){this._delayedOnLoad=b,this._delayedOnError=M;return}if(this._texture=x??this._getFromCache(this.url,d,r,this._invertY,h,this.isCube),this._texture)if(this._texture.isReady)V9.SetImmediate(()=>b());else{const T=this._texture.onLoadedObservable.add(b);this._texture.onErrorObservable.add(O=>{var R;M(O.message,O.exception),(R=this._texture)==null||R.onLoadedObservable.remove(T)})}else if(!S||!S.useDelayedTextureLoading){try{this._texture=E.createTexture(this.url,d,this._invertY,S,r,b,M,this._buffer,void 0,this._format,this._forcedExtension,f,p,m,h)}catch(T){throw M("error loading",T),T}c&&(this._buffer=null)}else this.delayLoadState=4,this._delayedOnLoad=b,this._delayedOnError=M}updateURL(e,t=null,i,s){this.url&&(this.releaseInternalTexture(),this.getScene().markAllMaterialsAsDirty(1,r=>r.hasTexture(this))),(!this.name||this.name.startsWith("data:"))&&(this.name=e),this.url=e,this._buffer=t,this._forcedExtension=s,this.delayLoadState=4,i&&(this._delayedOnLoad=i),this.delayLoad()}delayLoad(){if(this.delayLoadState!==4)return;const e=this.getScene();e&&(this.delayLoadState=1,this._texture=this._getFromCache(this.url,this._noMipmap,this.samplingMode,this._invertY,this._useSRGBBuffer,this.isCube),this._texture?this._delayedOnLoad&&(this._texture.isReady?V9.SetImmediate(this._delayedOnLoad):this._texture.onLoadedObservable.add(this._delayedOnLoad)):(this._texture=e.getEngine().createTexture(this.url,this._noMipmap,this._invertY,e,this.samplingMode,this._delayedOnLoad,this._delayedOnError,this._buffer,null,this._format,this._forcedExtension,this._mimeType,this._loaderOptions,this._creationFlags,this._useSRGBBuffer),this._deleteBuffer&&(this._buffer=null)),this._delayedOnLoad=null,this._delayedOnError=null)}_prepareRowForTextureGeneration(e,t,i,s){e*=this._cachedUScale,t*=this._cachedVScale,e-=this.uRotationCenter*this._cachedUScale,t-=this.vRotationCenter*this._cachedVScale,i-=this.wRotationCenter,P.TransformCoordinatesFromFloatsToRef(e,t,i,this._rowGenerationMatrix,s),s.x+=this.uRotationCenter*this._cachedUScale+this._cachedUOffset,s.y+=this.vRotationCenter*this._cachedVScale+this._cachedVOffset,s.z+=this.wRotationCenter}getTextureMatrix(e=1){if(this.uOffset===this._cachedUOffset&&this.vOffset===this._cachedVOffset&&this.uScale*e===this._cachedUScale&&this.vScale===this._cachedVScale&&this.uAng===this._cachedUAng&&this.vAng===this._cachedVAng&&this.wAng===this._cachedWAng&&this.uRotationCenter===this._cachedURotationCenter&&this.vRotationCenter===this._cachedVRotationCenter&&this.wRotationCenter===this._cachedWRotationCenter&&this.homogeneousRotationInUVTransform===this._cachedHomogeneousRotationInUVTransform)return this._cachedTextureMatrix;this._cachedUOffset=this.uOffset,this._cachedVOffset=this.vOffset,this._cachedUScale=this.uScale*e,this._cachedVScale=this.vScale,this._cachedUAng=this.uAng,this._cachedVAng=this.vAng,this._cachedWAng=this.wAng,this._cachedURotationCenter=this.uRotationCenter,this._cachedVRotationCenter=this.vRotationCenter,this._cachedWRotationCenter=this.wRotationCenter,this._cachedHomogeneousRotationInUVTransform=this.homogeneousRotationInUVTransform,(!this._cachedTextureMatrix||!this._rowGenerationMatrix)&&(this._cachedTextureMatrix=me.Zero(),this._rowGenerationMatrix=new me,this._t0=P.Zero(),this._t1=P.Zero(),this._t2=P.Zero()),me.RotationYawPitchRollToRef(this.vAng,this.uAng,this.wAng,this._rowGenerationMatrix),this.homogeneousRotationInUVTransform?(me.TranslationToRef(-this._cachedURotationCenter,-this._cachedVRotationCenter,-this._cachedWRotationCenter,ae.Matrix[0]),me.TranslationToRef(this._cachedURotationCenter,this._cachedVRotationCenter,this._cachedWRotationCenter,ae.Matrix[1]),me.ScalingToRef(this._cachedUScale,this._cachedVScale,0,ae.Matrix[2]),me.TranslationToRef(this._cachedUOffset,this._cachedVOffset,0,ae.Matrix[3]),ae.Matrix[0].multiplyToRef(this._rowGenerationMatrix,this._cachedTextureMatrix),this._cachedTextureMatrix.multiplyToRef(ae.Matrix[1],this._cachedTextureMatrix),this._cachedTextureMatrix.multiplyToRef(ae.Matrix[2],this._cachedTextureMatrix),this._cachedTextureMatrix.multiplyToRef(ae.Matrix[3],this._cachedTextureMatrix),this._cachedTextureMatrix.setRowFromFloats(2,this._cachedTextureMatrix.m[12],this._cachedTextureMatrix.m[13],this._cachedTextureMatrix.m[14],1)):(this._prepareRowForTextureGeneration(0,0,0,this._t0),this._prepareRowForTextureGeneration(1,0,0,this._t1),this._prepareRowForTextureGeneration(0,1,0,this._t2),this._t1.subtractInPlace(this._t0),this._t2.subtractInPlace(this._t0),me.FromValuesToRef(this._t1.x,this._t1.y,this._t1.z,0,this._t2.x,this._t2.y,this._t2.z,0,this._t0.x,this._t0.y,this._t0.z,0,0,0,0,1,this._cachedTextureMatrix));const t=this.getScene();if(!t)return this._cachedTextureMatrix;const i=this._cachedIdentity3x2;return this._cachedIdentity3x2=this._cachedTextureMatrix.isIdentityAs3x2(),this.optimizeUVAllocation&&i!==this._cachedIdentity3x2&&t.markAllMaterialsAsDirty(1,s=>s.hasTexture(this)),this._cachedTextureMatrix}getReflectionTextureMatrix(){const e=this.getScene();if(!e)return this._cachedReflectionTextureMatrix;if(this.uOffset===this._cachedReflectionUOffset&&this.vOffset===this._cachedReflectionVOffset&&this.uScale===this._cachedReflectionUScale&&this.vScale===this._cachedReflectionVScale&&this.coordinatesMode===this._cachedReflectionCoordinatesMode)if(this.coordinatesMode===be.PROJECTION_MODE){if(this._cachedReflectionProjectionMatrixId===e.getProjectionMatrix().updateFlag)return this._cachedReflectionTextureMatrix}else return this._cachedReflectionTextureMatrix;this._cachedReflectionTextureMatrix||(this._cachedReflectionTextureMatrix=me.Zero()),this._projectionModeMatrix||(this._projectionModeMatrix=me.Zero());const t=this._cachedReflectionCoordinatesMode!==this.coordinatesMode;switch(this._cachedReflectionUOffset=this.uOffset,this._cachedReflectionVOffset=this.vOffset,this._cachedReflectionUScale=this.uScale,this._cachedReflectionVScale=this.vScale,this._cachedReflectionCoordinatesMode=this.coordinatesMode,this.coordinatesMode){case be.PLANAR_MODE:{me.IdentityToRef(this._cachedReflectionTextureMatrix),this._cachedReflectionTextureMatrix[0]=this.uScale,this._cachedReflectionTextureMatrix[5]=this.vScale,this._cachedReflectionTextureMatrix[12]=this.uOffset,this._cachedReflectionTextureMatrix[13]=this.vOffset;break}case be.PROJECTION_MODE:{me.FromValuesToRef(.5,0,0,0,0,-.5,0,0,0,0,0,0,.5,.5,1,1,this._projectionModeMatrix);const i=e.getProjectionMatrix();this._cachedReflectionProjectionMatrixId=i.updateFlag,i.multiplyToRef(this._projectionModeMatrix,this._cachedReflectionTextureMatrix);break}default:me.IdentityToRef(this._cachedReflectionTextureMatrix);break}return t&&e.markAllMaterialsAsDirty(1,i=>i.hasTexture(this)),this._cachedReflectionTextureMatrix}clone(){const e={noMipmap:this._noMipmap,invertY:this._invertY,samplingMode:this.samplingMode,onLoad:void 0,onError:void 0,buffer:this._texture?this._texture._buffer:void 0,deleteBuffer:this._deleteBuffer,format:this.textureFormat,mimeType:this.mimeType,loaderOptions:this._loaderOptions,creationFlags:this._creationFlags,useSRGBBuffer:this._useSRGBBuffer};return It.Clone(()=>new be(this._texture?this._texture.url:null,this.getScene(),e),this)}serialize(){var i,s;const e=this.name;be.SerializeBuffers||this.name.startsWith("data:")&&(this.name=""),this.name.startsWith("data:")&&this.url===this.name&&(this.url="");const t=super.serialize(be._SerializeInternalTextureUniqueId);return t?((be.SerializeBuffers||be.ForceSerializeBuffers)&&(typeof this._buffer=="string"&&this._buffer.substring(0,5)==="data:"?(t.base64String=this._buffer,t.name=t.name.replace("data:","")):this.url&&this.url.startsWith("data:")&&this._buffer instanceof Uint8Array?t.base64String="data:image/png;base64,"+lw(this._buffer):(be.ForceSerializeBuffers||this.url&&this.url.startsWith("blob:")||this._forceSerialize)&&(t.base64String=!this._engine||this._engine._features.supportSyncTextureRead?gZ(this):_Z(this))),t.invertY=this._invertY,t.samplingMode=this.samplingMode,t._creationFlags=this._creationFlags,t._useSRGBBuffer=this._useSRGBBuffer,be._SerializeInternalTextureUniqueId&&(t.internalTextureUniqueId=(i=this._texture)==null?void 0:i.uniqueId),t.internalTextureLabel=(s=this._texture)==null?void 0:s.label,t.noMipmap=this._noMipmap,this.name=e,t):null}getClassName(){return"Texture"}dispose(){super.dispose(),this.onLoadObservable.clear(),this._delayedOnLoad=null,this._delayedOnError=null,this._buffer=null}static Parse(e,t,i){if(e.customType){const c=pw.Instantiate(e.customType).Parse(e,t,i);return e.samplingMode&&c.updateSamplingMode&&c._samplingMode&&c._samplingMode!==e.samplingMode&&c.updateSamplingMode(e.samplingMode),c}if(e.isCube&&!e.isRenderTarget)return be._CubeTextureParser(e,t,i);const s=e.internalTextureUniqueId!==void 0;if(!e.name&&!e.isRenderTarget&&!s)return null;let r;if(s){const l=t.getEngine().getLoadedTexturesCache();for(const c of l)if(c.uniqueId===e.internalTextureUniqueId){r=c;break}}const n=l=>{if(l&&l._texture&&(l._texture._cachedWrapU=null,l._texture._cachedWrapV=null,l._texture._cachedWrapR=null),e.samplingMode){const c=e.samplingMode;l&&l.samplingMode!==c&&l.updateSamplingMode(c)}if(l&&e.animations)for(let c=0;c<e.animations.length;c++){const u=e.animations[c],f=ea("BABYLON.Animation");f&&l.animations.push(f.Parse(u))}l&&l._texture&&(s&&!r&&l._texture._setUniqueId(e.internalTextureUniqueId),l._texture.label=e.internalTextureLabel)};return It.Parse(()=>{let l=!0;if(e.noMipmap&&(l=!1),e.mirrorPlane){const c=be._CreateMirror(e.name,e.renderTargetSize,t,l);return c._waitingRenderList=e.renderList,c.mirrorPlane=Sh.FromArray(e.mirrorPlane),n(c),c}else if(e.isRenderTarget){let c=null;if(e.isCube){if(t.reflectionProbes)for(let u=0;u<t.reflectionProbes.length;u++){const f=t.reflectionProbes[u];if(f.name===e.name)return f.cubeTexture}}else c=be._CreateRenderTargetTexture(e.name,e.renderTargetSize,t,l,e._creationFlags??0),c._waitingRenderList=e.renderList;return n(c),c}else if(e.isVideo){const c=be._CreateVideoTexture(i+(e.url||e.name),i+(e.src||e.url),t,l,e.invertY,e.samplingMode,e.settings||{});return n(c),c}else{let c;if(e.base64String&&!r)c=be.CreateFromBase64String(e.base64String,e.base64String,t,!l,e.invertY,e.samplingMode,()=>{n(c)},e._creationFlags??0,e._useSRGBBuffer??!1),c.name=e.name;else{let u;e.name&&(e.name.indexOf("://")>0||e.name.startsWith("data:"))?u=e.name:u=i+e.name,e.url&&(e.url.startsWith("data:")||be.UseSerializedUrlIfAny)&&(u=e.url);const f={noMipmap:!l,invertY:e.invertY,samplingMode:e.samplingMode,onLoad:()=>{n(c)},internalTexture:r};c=new be(u,t,f)}return c}},e,t)}static CreateFromBase64String(e,t,i,s,r,n=be.TRILINEAR_SAMPLINGMODE,o=null,l=null,c=5,u,f){return new be("data:"+t,i,s,r,n,o,l,e,!1,c,void 0,void 0,u,f)}static LoadFromDataString(e,t,i,s=!1,r,n=!0,o=be.TRILINEAR_SAMPLINGMODE,l=null,c=null,u=5,f,p){return e.substring(0,5)!=="data:"&&(e="data:"+e),new be(e,i,r,n,o,l,c,t,s,u,void 0,void 0,f,p)}}be.SerializeBuffers=!0,be.ForceSerializeBuffers=!1,be.OnTextureLoadErrorObservable=new xe,be._SerializeInternalTextureUniqueId=!1,be._CubeTextureParser=(a,e,t)=>{throw as("CubeTexture")},be._CreateMirror=(a,e,t,i)=>{throw as("MirrorTexture")},be._CreateRenderTargetTexture=(a,e,t,i,s)=>{throw as("RenderTargetTexture")},be.NEAREST_SAMPLINGMODE=1,be.NEAREST_NEAREST_MIPLINEAR=8,be.BILINEAR_SAMPLINGMODE=2,be.LINEAR_LINEAR_MIPNEAREST=11,be.TRILINEAR_SAMPLINGMODE=3,be.LINEAR_LINEAR_MIPLINEAR=3,be.NEAREST_NEAREST_MIPNEAREST=4,be.NEAREST_LINEAR_MIPNEAREST=5,be.NEAREST_LINEAR_MIPLINEAR=6,be.NEAREST_LINEAR=7,be.NEAREST_NEAREST=1,be.LINEAR_NEAREST_MIPNEAREST=9,be.LINEAR_NEAREST_MIPLINEAR=10,be.LINEAR_LINEAR=2,be.LINEAR_NEAREST=12,be.EXPLICIT_MODE=0,be.SPHERICAL_MODE=1,be.PLANAR_MODE=2,be.CUBIC_MODE=3,be.PROJECTION_MODE=4,be.SKYBOX_MODE=5,be.INVCUBIC_MODE=6,be.EQUIRECTANGULAR_MODE=7,be.FIXED_EQUIRECTANGULAR_MODE=8,be.FIXED_EQUIRECTANGULAR_MIRRORED_MODE=9,be.CLAMP_ADDRESSMODE=0,be.WRAP_ADDRESSMODE=1,be.MIRROR_ADDRESSMODE=2,be.UseSerializedUrlIfAny=!1,F([G()],be.prototype,"url",void 0),F([G()],be.prototype,"uOffset",void 0),F([G()],be.prototype,"vOffset",void 0),F([G()],be.prototype,"uScale",void 0),F([G()],be.prototype,"vScale",void 0),F([G()],be.prototype,"uAng",void 0),F([G()],be.prototype,"vAng",void 0),F([G()],be.prototype,"wAng",void 0),F([G()],be.prototype,"uRotationCenter",void 0),F([G()],be.prototype,"vRotationCenter",void 0),F([G()],be.prototype,"wRotationCenter",void 0),F([G()],be.prototype,"homogeneousRotationInUVTransform",void 0),F([G()],be.prototype,"isBlocking",null),ve("BABYLON.Texture",be),It._TextureParser=be.Parse;class Ur extends be{constructor(e,t,i,s,r,n=!0,o=!1,l=3,c=0,u,f,p){super(null,r,!n,o,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,u),this.format=s,this._engine&&(!this._engine._caps.textureFloatLinearFiltering&&c===1&&(l=1),!this._engine._caps.textureHalfFloatLinearFiltering&&c===2&&(l=1),this._texture=this._engine.createRawTexture(e,t,i,s,n,o,l,null,c,u??0,f??!1),this.wrapU=be.CLAMP_ADDRESSMODE,this.wrapV=be.CLAMP_ADDRESSMODE,this._waitingForData=!!p&&!e)}update(e){this._getEngine().updateRawTexture(this._texture,e,this._texture.format,this._texture.invertY,null,this._texture.type,this._texture._useSRGBBuffer),this._waitingForData=!1}clone(){if(!this._texture)return super.clone();const e=new Ur(null,this.getSize().width,this.getSize().height,this.format,this.getScene(),this._texture.generateMipMaps,this._invertY,this.samplingMode,this._texture.type,this._texture._creationFlags,this._useSRGBBuffer);return e._texture=this._texture,this._texture.incrementReferences(),e}isReady(){return super.isReady()&&!this._waitingForData}static CreateLuminanceTexture(e,t,i,s,r=!0,n=!1,o=3){return new Ur(e,t,i,1,s,r,n,o)}static CreateLuminanceAlphaTexture(e,t,i,s,r=!0,n=!1,o=3){return new Ur(e,t,i,2,s,r,n,o)}static CreateAlphaTexture(e,t,i,s,r=!0,n=!1,o=3){return new Ur(e,t,i,0,s,r,n,o)}static CreateRGBTexture(e,t,i,s,r=!0,n=!1,o=3,l=0,c=0,u=!1){return new Ur(e,t,i,4,s,r,n,o,l,c,u)}static CreateRGBATexture(e,t,i,s,r=!0,n=!1,o=3,l=0,c=0,u=!1,f=!1){return new Ur(e,t,i,5,s,r,n,o,l,c,u,f)}static CreateRGBAStorageTexture(e,t,i,s,r=!0,n=!1,o=3,l=0,c=!1){return new Ur(e,t,i,5,s,r,n,o,l,1,c)}static CreateRTexture(e,t,i,s,r=!0,n=!1,o=be.TRILINEAR_SAMPLINGMODE,l=1){return new Ur(e,t,i,6,s,r,n,o,l)}static CreateRStorageTexture(e,t,i,s,r=!0,n=!1,o=be.TRILINEAR_SAMPLINGMODE,l=1){return new Ur(e,t,i,6,s,r,n,o,l,1)}}class Wv{get useTextureToStoreBoneMatrices(){return this._useTextureToStoreBoneMatrices}set useTextureToStoreBoneMatrices(e){this._useTextureToStoreBoneMatrices=e,this._markAsDirty()}get animationPropertiesOverride(){return this._animationPropertiesOverride?this._animationPropertiesOverride:this._scene.animationPropertiesOverride}set animationPropertiesOverride(e){this._animationPropertiesOverride=e}get isUsingTextureForMatrices(){return this.useTextureToStoreBoneMatrices&&this._canUseTextureForBones}get uniqueId(){return this._uniqueId}constructor(e,t,i){this.name=e,this.id=t,this.bones=[],this.needInitialSkinMatrix=!1,this._isDirty=!0,this._meshesWithPoseMatrix=new Array,this._identity=me.Identity(),this._currentRenderId=-1,this._ranges={},this._absoluteTransformIsDirty=!0,this._canUseTextureForBones=!1,this._uniqueId=0,this._numBonesWithLinkedTransformNode=0,this._hasWaitingData=null,this._parentContainer=null,this.doNotSerialize=!1,this._useTextureToStoreBoneMatrices=!0,this._animationPropertiesOverride=null,this.onBeforeComputeObservable=new xe,this.bones=[],this._scene=i||ei.LastCreatedScene,this._uniqueId=this._scene.getUniqueId(),this._scene.addSkeleton(this),this._isDirty=!0;const s=this._scene.getEngine().getCaps();this._canUseTextureForBones=s.textureFloat&&s.maxVertexTextureImageUnits>0}getClassName(){return"Skeleton"}getChildren(){return this.bones.filter(e=>!e.getParent())}getTransformMatrices(e){if(this.needInitialSkinMatrix){if(!e)throw new Error("getTransformMatrices: When using the needInitialSkinMatrix flag, a mesh must be provided");return e._bonesTransformMatrices||this.prepare(!0),e._bonesTransformMatrices}return(!this._transformMatrices||this._isDirty)&&this.prepare(!this._transformMatrices),this._transformMatrices}getTransformMatrixTexture(e){return this.needInitialSkinMatrix&&e._transformMatrixTexture?e._transformMatrixTexture:this._transformMatrixTexture}getScene(){return this._scene}toString(e){let t=`Name: ${this.name}, nBones: ${this.bones.length}`;if(t+=`, nAnimationRanges: ${this._ranges?Object.keys(this._ranges).length:"none"}`,e){t+=", Ranges: {";let i=!0;for(const s in this._ranges)i&&(t+=", ",i=!1),t+=s;t+="}"}return t}getBoneIndexByName(e){for(let t=0,i=this.bones.length;t<i;t++)if(this.bones[t].name===e)return t;return-1}createAnimationRange(e,t,i){if(!this._ranges[e]){this._ranges[e]=new K9(e,t,i);for(let s=0,r=this.bones.length;s<r;s++)this.bones[s].animations[0]&&this.bones[s].animations[0].createRange(e,t,i)}}deleteAnimationRange(e,t=!0){for(let i=0,s=this.bones.length;i<s;i++)this.bones[i].animations[0]&&this.bones[i].animations[0].deleteRange(e,t);this._ranges[e]=null}getAnimationRange(e){return this._ranges[e]||null}getAnimationRanges(){const e=[];let t;for(t in this._ranges)e.push(this._ranges[t]);return e}copyAnimationRange(e,t,i=!1){if(this._ranges[t]||!e.getAnimationRange(t))return!1;let s=!0;const r=this._getHighestAnimationFrame()+1,n={},o=e.bones;let l,c;for(c=0,l=o.length;c<l;c++)n[o[c].name]=o[c];this.bones.length!==o.length&&(de.Warn(`copyAnimationRange: this rig has ${this.bones.length} bones, while source as ${o.length}`),s=!1);const u=i&&this.dimensionsAtRest&&e.dimensionsAtRest?this.dimensionsAtRest.divide(e.dimensionsAtRest):null;for(c=0,l=this.bones.length;c<l;c++){const p=this.bones[c].name,m=n[p];m?s=s&&this.bones[c].copyAnimationRange(m,t,r,i,u):(de.Warn("copyAnimationRange: not same rig, missing source bone "+p),s=!1)}const f=e.getAnimationRange(t);return f&&(this._ranges[t]=new K9(t,f.from+r,f.to+r)),s}returnToRest(){for(const e of this.bones)e._index!==-1&&e.returnToRest()}_getHighestAnimationFrame(){let e=0;for(let t=0,i=this.bones.length;t<i;t++)if(this.bones[t].animations[0]){const s=this.bones[t].animations[0].getHighestFrame();e<s&&(e=s)}return e}beginAnimation(e,t,i,s){const r=this.getAnimationRange(e);return r?this._scene.beginAnimation(this,r.from,r.to,t,i,s):null}static MakeAnimationAdditive(e,t=0,i){const s=e.getAnimationRange(i);if(!s)return null;const r=e._scene.getAllAnimatablesByTarget(e);let n=null;for(let l=0;l<r.length;l++){const c=r[l];if(c.fromFrame===(s==null?void 0:s.from)&&c.toFrame===(s==null?void 0:s.to)){n=c;break}}const o=e.getAnimatables();for(let l=0;l<o.length;l++){const u=o[l].animations;if(u)for(let f=0;f<u.length;f++)He.MakeAnimationAdditive(u[f],t,i)}return n&&(n.isAdditive=!0),e}_markAsDirty(){this._isDirty=!0,this._absoluteTransformIsDirty=!0}_registerMeshWithPoseMatrix(e){this._meshesWithPoseMatrix.push(e)}_unregisterMeshWithPoseMatrix(e){const t=this._meshesWithPoseMatrix.indexOf(e);t>-1&&this._meshesWithPoseMatrix.splice(t,1)}_computeTransformMatrices(e,t){this.onBeforeComputeObservable.notifyObservers(this);for(let i=0;i<this.bones.length;i++){const s=this.bones[i];s._childUpdateId++;const r=s.getParent();if(r?s.getLocalMatrix().multiplyToRef(r.getFinalMatrix(),s.getFinalMatrix()):t?s.getLocalMatrix().multiplyToRef(t,s.getFinalMatrix()):s.getFinalMatrix().copyFrom(s.getLocalMatrix()),s._index!==-1){const n=s._index===null?i:s._index;s.getAbsoluteInverseBindMatrix().multiplyToArray(s.getFinalMatrix(),e,n*16)}}this._identity.copyToArray(e,this.bones.length*16)}prepare(e=!1){if(!e){const t=this.getScene().getRenderId();if(this._currentRenderId===t)return;this._currentRenderId=t}if(this._numBonesWithLinkedTransformNode>0){for(const t of this.bones)if(t._linkedTransformNode){const i=t._linkedTransformNode;t.position=i.position,i.rotationQuaternion?t.rotationQuaternion=i.rotationQuaternion:t.rotation=i.rotation,t.scaling=i.scaling}}if(this.needInitialSkinMatrix)for(const t of this._meshesWithPoseMatrix){const i=t.getPoseMatrix();let s=this._isDirty;if((!t._bonesTransformMatrices||t._bonesTransformMatrices.length!==16*(this.bones.length+1))&&(t._bonesTransformMatrices=new Float32Array(16*(this.bones.length+1)),s=!0),!!s){if(this._synchronizedWithMesh!==t){this._synchronizedWithMesh=t;for(const r of this.bones)r.getParent()||(r.getBindMatrix().multiplyToRef(i,ae.Matrix[1]),r._updateAbsoluteBindMatrices(ae.Matrix[1]));if(this.isUsingTextureForMatrices){const r=(this.bones.length+1)*4;(!t._transformMatrixTexture||t._transformMatrixTexture.getSize().width!==r)&&(t._transformMatrixTexture&&t._transformMatrixTexture.dispose(),t._transformMatrixTexture=Ur.CreateRGBATexture(t._bonesTransformMatrices,(this.bones.length+1)*4,1,this._scene,!1,!1,1,1))}}this._computeTransformMatrices(t._bonesTransformMatrices,i),this.isUsingTextureForMatrices&&t._transformMatrixTexture&&t._transformMatrixTexture.update(t._bonesTransformMatrices)}}else{if(!this._isDirty)return;(!this._transformMatrices||this._transformMatrices.length!==16*(this.bones.length+1))&&(this._transformMatrices=new Float32Array(16*(this.bones.length+1)),this.isUsingTextureForMatrices&&(this._transformMatrixTexture&&this._transformMatrixTexture.dispose(),this._transformMatrixTexture=Ur.CreateRGBATexture(this._transformMatrices,(this.bones.length+1)*4,1,this._scene,!1,!1,1,1))),this._computeTransformMatrices(this._transformMatrices,null),this.isUsingTextureForMatrices&&this._transformMatrixTexture&&this._transformMatrixTexture.update(this._transformMatrices)}this._isDirty=!1}getAnimatables(){if(!this._animatables||this._animatables.length!==this.bones.length){this._animatables=[];for(let e=0;e<this.bones.length;e++)this._animatables.push(this.bones[e])}return this._animatables}clone(e,t){const i=new Wv(e,t||e,this._scene);i.needInitialSkinMatrix=this.needInitialSkinMatrix;for(let s=0;s<this.bones.length;s++){const r=this.bones[s];let n=null;const o=r.getParent();if(o){const c=this.bones.indexOf(o);n=i.bones[c]}const l=new gn(r.name,i,n,r.getBindMatrix().clone(),r.getRestMatrix().clone());l._index=r._index,r._linkedTransformNode&&l.linkTransformNode(r._linkedTransformNode),nu.DeepCopy(r.animations,l.animations)}if(this._ranges){i._ranges={};for(const s in this._ranges){const r=this._ranges[s];r&&(i._ranges[s]=r.clone())}}return this._isDirty=!0,i.prepare(!0),i}enableBlending(e=.01){this.bones.forEach(t=>{t.animations.forEach(i=>{i.enableBlending=!0,i.blendingSpeed=e})})}dispose(){if(this._meshesWithPoseMatrix.length=0,this.getScene().stopAnimation(this),this.getScene().removeSkeleton(this),this._parentContainer){const e=this._parentContainer.skeletons.indexOf(this);e>-1&&this._parentContainer.skeletons.splice(e,1),this._parentContainer=null}this._transformMatrixTexture&&(this._transformMatrixTexture.dispose(),this._transformMatrixTexture=null)}serialize(){var t;const e={};e.name=this.name,e.id=this.id,this.dimensionsAtRest&&(e.dimensionsAtRest=this.dimensionsAtRest.asArray()),e.bones=[],e.needInitialSkinMatrix=this.needInitialSkinMatrix;for(let i=0;i<this.bones.length;i++){const s=this.bones[i],r=s.getParent(),n={parentBoneIndex:r?this.bones.indexOf(r):-1,index:s.getIndex(),name:s.name,id:s.id,matrix:s.getBindMatrix().asArray(),rest:s.getRestMatrix().asArray(),linkedTransformNodeId:(t=s.getTransformNode())==null?void 0:t.id};e.bones.push(n),s.length&&(n.length=s.length),s.metadata&&(n.metadata=s.metadata),s.animations&&s.animations.length>0&&(n.animation=s.animations[0].serialize()),e.ranges=[];for(const o in this._ranges){const l=this._ranges[o];if(!l)continue;const c={};c.name=o,c.from=l.from,c.to=l.to,e.ranges.push(c)}}return e}static Parse(e,t){const i=new Wv(e.name,e.id,t);e.dimensionsAtRest&&(i.dimensionsAtRest=P.FromArray(e.dimensionsAtRest)),i.needInitialSkinMatrix=e.needInitialSkinMatrix;let s;for(s=0;s<e.bones.length;s++){const r=e.bones[s],n=e.bones[s].index;let o=null;r.parentBoneIndex>-1&&(o=i.bones[r.parentBoneIndex]);const l=r.rest?me.FromArray(r.rest):null,c=new gn(r.name,i,o,me.FromArray(r.matrix),l,null,n);r.id!==void 0&&r.id!==null&&(c.id=r.id),r.length&&(c.length=r.length),r.metadata&&(c.metadata=r.metadata),r.animation&&c.animations.push(He.Parse(r.animation)),r.linkedTransformNodeId!==void 0&&r.linkedTransformNodeId!==null&&(i._hasWaitingData=!0,c._waitingTransformNodeId=r.linkedTransformNodeId)}if(e.ranges)for(s=0;s<e.ranges.length;s++){const r=e.ranges[s];i.createAnimationRange(r.name,r.from,r.to)}return i}computeAbsoluteMatrices(e=!1){(this._absoluteTransformIsDirty||e)&&(this.bones[0].computeAbsoluteMatrices(),this._absoluteTransformIsDirty=!1)}computeAbsoluteTransforms(e=!1){this.computeAbsoluteMatrices(e)}getPoseMatrix(){let e=null;return this._meshesWithPoseMatrix.length>0&&(e=this._meshesWithPoseMatrix[0].getPoseMatrix()),e}sortBones(){const e=[],t=new Array(this.bones.length);for(let i=0;i<this.bones.length;i++)this._sortBones(i,e,t);this.bones=e}_sortBones(e,t,i){if(i[e])return;i[e]=!0;const s=this.bones[e];if(!s)return;s._index===void 0&&(s._index=e);const r=s.getParent();r&&this._sortBones(this.bones.indexOf(r),t,i),t.push(s)}setCurrentPoseAsRest(){this.bones.forEach(e=>{e.setCurrentPoseAsRest()})}}class yG{constructor(){this.previousWorldMatrices={},this.previousBones={}}static AddUniforms(e){e.push("previousWorld","previousViewProjection","mPreviousBones")}static AddSamplers(e){}bindForSubMesh(e,t,i,s,r){if(t.prePassRenderer&&t.prePassRenderer.enabled&&t.prePassRenderer.currentRTisSceneRT&&(t.prePassRenderer.getIndex(2)!==-1||t.prePassRenderer.getIndex(11)!==-1)){this.previousWorldMatrices[i.uniqueId]||(this.previousWorldMatrices[i.uniqueId]=s.clone()),this.previousViewProjection||(this.previousViewProjection=t.getTransformMatrix().clone(),this.currentViewProjection=t.getTransformMatrix().clone());const n=t.getEngine();this.currentViewProjection.updateFlag!==t.getTransformMatrix().updateFlag?(this._lastUpdateFrameId=n.frameId,this.previousViewProjection.copyFrom(this.currentViewProjection),this.currentViewProjection.copyFrom(t.getTransformMatrix())):this._lastUpdateFrameId!==n.frameId&&(this._lastUpdateFrameId=n.frameId,this.previousViewProjection.copyFrom(this.currentViewProjection)),e.setMatrix("previousWorld",this.previousWorldMatrices[i.uniqueId]),e.setMatrix("previousViewProjection",this.previousViewProjection),this.previousWorldMatrices[i.uniqueId]=s.clone()}}}class Br{constructor(e){if(this._keys=[],this._isDirty=!0,this._areLightsDirty=!0,this._areLightsDisposed=!1,this._areAttributesDirty=!0,this._areTexturesDirty=!0,this._areFresnelDirty=!0,this._areMiscDirty=!0,this._arePrePassDirty=!0,this._areImageProcessingDirty=!0,this._normals=!1,this._uvs=!1,this._needNormals=!1,this._needUVs=!1,this._externalProperties=e,e)for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&this._setDefaultValue(t)}get isDirty(){return this._isDirty}markAsProcessed(){this._isDirty=!1,this._areAttributesDirty=!1,this._areTexturesDirty=!1,this._areFresnelDirty=!1,this._areLightsDirty=!1,this._areLightsDisposed=!1,this._areMiscDirty=!1,this._arePrePassDirty=!1,this._areImageProcessingDirty=!1}markAsUnprocessed(){this._isDirty=!0}markAllAsDirty(){this._areTexturesDirty=!0,this._areAttributesDirty=!0,this._areLightsDirty=!0,this._areFresnelDirty=!0,this._areMiscDirty=!0,this._arePrePassDirty=!0,this._areImageProcessingDirty=!0,this._isDirty=!0}markAsImageProcessingDirty(){this._areImageProcessingDirty=!0,this._isDirty=!0}markAsLightDirty(e=!1){this._areLightsDirty=!0,this._areLightsDisposed=this._areLightsDisposed||e,this._isDirty=!0}markAsAttributesDirty(){this._areAttributesDirty=!0,this._isDirty=!0}markAsTexturesDirty(){this._areTexturesDirty=!0,this._isDirty=!0}markAsFresnelDirty(){this._areFresnelDirty=!0,this._isDirty=!0}markAsMiscDirty(){this._areMiscDirty=!0,this._isDirty=!0}markAsPrePassDirty(){this._arePrePassDirty=!0,this._isDirty=!0}rebuild(){this._keys.length=0;for(const e of Object.keys(this))e[0]!=="_"&&this._keys.push(e);if(this._externalProperties)for(const e in this._externalProperties)this._keys.indexOf(e)===-1&&this._keys.push(e)}isEqual(e){if(this._keys.length!==e._keys.length)return!1;for(let t=0;t<this._keys.length;t++){const i=this._keys[t];if(this[i]!==e[i])return!1}return!0}cloneTo(e){this._keys.length!==e._keys.length&&(e._keys=this._keys.slice(0));for(let t=0;t<this._keys.length;t++){const i=this._keys[t];e[i]=this[i]}}reset(){this._keys.forEach(e=>this._setDefaultValue(e))}_setDefaultValue(e){var s,r,n,o;const t=((r=(s=this._externalProperties)==null?void 0:s[e])==null?void 0:r.type)??typeof this[e],i=(o=(n=this._externalProperties)==null?void 0:n[e])==null?void 0:o.default;switch(t){case"number":this[e]=i??0;break;case"string":this[e]=i??"";break;default:this[e]=i??!1;break}}toString(){let e="";for(let t=0;t<this._keys.length;t++){const i=this._keys[t],s=this[i];switch(typeof s){case"number":case"string":e+="#define "+i+" "+s+`
`;break;default:s&&(e+="#define "+i+`
`);break}}return e}}class po extends ft{constructor(e,t,i=!0,s=!1){super(e,t,void 0,s),this._normalMatrix=new me,this._storeEffectOnSubMeshes=i}getEffect(){return this._storeEffectOnSubMeshes?this._activeEffect:super.getEffect()}isReady(e,t){return e?!this._storeEffectOnSubMeshes||!e.subMeshes||e.subMeshes.length===0?!0:this.isReadyForSubMesh(e,e.subMeshes[0],t):!1}_isReadyForSubMesh(e){const t=e.materialDefines;return!!(!this.checkReadyOnEveryCall&&e.effect&&t&&t._renderId===this.getScene().getRenderId())}bindOnlyWorldMatrix(e){this._activeEffect.setMatrix("world",e)}bindOnlyNormalMatrix(e){this._activeEffect.setMatrix("normalMatrix",e)}bind(e,t){t&&this.bindForSubMesh(e,t,t.subMeshes[0])}_afterBind(e,t=null,i){super._afterBind(e,t,i),this.getScene()._cachedEffect=t,i?i._drawWrapper._forceRebindOnNextCall=!1:this._drawWrapper._forceRebindOnNextCall=!1}_mustRebind(e,t,i,s=1){return i._drawWrapper._forceRebindOnNextCall||e.isCachedMaterialInvalid(this,t,s)}dispose(e,t,i){this._activeEffect=void 0,super.dispose(e,t,i)}}class Pt{static get DiffuseTextureEnabled(){return this._DiffuseTextureEnabled}static set DiffuseTextureEnabled(e){this._DiffuseTextureEnabled!==e&&(this._DiffuseTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get BaseWeightTextureEnabled(){return this._BaseWeightTextureEnabled}static set BaseWeightTextureEnabled(e){this._BaseWeightTextureEnabled!==e&&(this._BaseWeightTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get DetailTextureEnabled(){return this._DetailTextureEnabled}static set DetailTextureEnabled(e){this._DetailTextureEnabled!==e&&(this._DetailTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get DecalMapEnabled(){return this._DecalMapEnabled}static set DecalMapEnabled(e){this._DecalMapEnabled!==e&&(this._DecalMapEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get AmbientTextureEnabled(){return this._AmbientTextureEnabled}static set AmbientTextureEnabled(e){this._AmbientTextureEnabled!==e&&(this._AmbientTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get OpacityTextureEnabled(){return this._OpacityTextureEnabled}static set OpacityTextureEnabled(e){this._OpacityTextureEnabled!==e&&(this._OpacityTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get ReflectionTextureEnabled(){return this._ReflectionTextureEnabled}static set ReflectionTextureEnabled(e){this._ReflectionTextureEnabled!==e&&(this._ReflectionTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get EmissiveTextureEnabled(){return this._EmissiveTextureEnabled}static set EmissiveTextureEnabled(e){this._EmissiveTextureEnabled!==e&&(this._EmissiveTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get SpecularTextureEnabled(){return this._SpecularTextureEnabled}static set SpecularTextureEnabled(e){this._SpecularTextureEnabled!==e&&(this._SpecularTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get BumpTextureEnabled(){return this._BumpTextureEnabled}static set BumpTextureEnabled(e){this._BumpTextureEnabled!==e&&(this._BumpTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get LightmapTextureEnabled(){return this._LightmapTextureEnabled}static set LightmapTextureEnabled(e){this._LightmapTextureEnabled!==e&&(this._LightmapTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get RefractionTextureEnabled(){return this._RefractionTextureEnabled}static set RefractionTextureEnabled(e){this._RefractionTextureEnabled!==e&&(this._RefractionTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get ColorGradingTextureEnabled(){return this._ColorGradingTextureEnabled}static set ColorGradingTextureEnabled(e){this._ColorGradingTextureEnabled!==e&&(this._ColorGradingTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get FresnelEnabled(){return this._FresnelEnabled}static set FresnelEnabled(e){this._FresnelEnabled!==e&&(this._FresnelEnabled=e,dt.MarkAllMaterialsAsDirty(4))}static get ClearCoatTextureEnabled(){return this._ClearCoatTextureEnabled}static set ClearCoatTextureEnabled(e){this._ClearCoatTextureEnabled!==e&&(this._ClearCoatTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get ClearCoatBumpTextureEnabled(){return this._ClearCoatBumpTextureEnabled}static set ClearCoatBumpTextureEnabled(e){this._ClearCoatBumpTextureEnabled!==e&&(this._ClearCoatBumpTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get ClearCoatTintTextureEnabled(){return this._ClearCoatTintTextureEnabled}static set ClearCoatTintTextureEnabled(e){this._ClearCoatTintTextureEnabled!==e&&(this._ClearCoatTintTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get SheenTextureEnabled(){return this._SheenTextureEnabled}static set SheenTextureEnabled(e){this._SheenTextureEnabled!==e&&(this._SheenTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get AnisotropicTextureEnabled(){return this._AnisotropicTextureEnabled}static set AnisotropicTextureEnabled(e){this._AnisotropicTextureEnabled!==e&&(this._AnisotropicTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get ThicknessTextureEnabled(){return this._ThicknessTextureEnabled}static set ThicknessTextureEnabled(e){this._ThicknessTextureEnabled!==e&&(this._ThicknessTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get RefractionIntensityTextureEnabled(){return this._ThicknessTextureEnabled}static set RefractionIntensityTextureEnabled(e){this._RefractionIntensityTextureEnabled!==e&&(this._RefractionIntensityTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get TranslucencyIntensityTextureEnabled(){return this._TranslucencyIntensityTextureEnabled}static set TranslucencyIntensityTextureEnabled(e){this._TranslucencyIntensityTextureEnabled!==e&&(this._TranslucencyIntensityTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get TranslucencyColorTextureEnabled(){return this._TranslucencyColorTextureEnabled}static set TranslucencyColorTextureEnabled(e){this._TranslucencyColorTextureEnabled!==e&&(this._TranslucencyColorTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}static get IridescenceTextureEnabled(){return this._IridescenceTextureEnabled}static set IridescenceTextureEnabled(e){this._IridescenceTextureEnabled!==e&&(this._IridescenceTextureEnabled=e,dt.MarkAllMaterialsAsDirty(1))}}Pt._DiffuseTextureEnabled=!0,Pt._BaseWeightTextureEnabled=!0,Pt._DetailTextureEnabled=!0,Pt._DecalMapEnabled=!0,Pt._AmbientTextureEnabled=!0,Pt._OpacityTextureEnabled=!0,Pt._ReflectionTextureEnabled=!0,Pt._EmissiveTextureEnabled=!0,Pt._SpecularTextureEnabled=!0,Pt._BumpTextureEnabled=!0,Pt._LightmapTextureEnabled=!0,Pt._RefractionTextureEnabled=!0,Pt._ColorGradingTextureEnabled=!0,Pt._FresnelEnabled=!0,Pt._ClearCoatTextureEnabled=!0,Pt._ClearCoatBumpTextureEnabled=!0,Pt._ClearCoatTintTextureEnabled=!0,Pt._SheenTextureEnabled=!0,Pt._AnisotropicTextureEnabled=!0,Pt._ThicknessTextureEnabled=!0,Pt._RefractionIntensityTextureEnabled=!0,Pt._TranslucencyIntensityTextureEnabled=!0,Pt._TranslucencyColorTextureEnabled=!0,Pt._IridescenceTextureEnabled=!0;class Ra{constructor(){this._defines={},this._currentRank=32,this._maxRank=-1,this._mesh=null}unBindMesh(){this._mesh=null}addFallback(e,t){this._defines[e]||(e<this._currentRank&&(this._currentRank=e),e>this._maxRank&&(this._maxRank=e),this._defines[e]=new Array),this._defines[e].push(t)}addCPUSkinningFallback(e,t){this._mesh=t,e<this._currentRank&&(this._currentRank=e),e>this._maxRank&&(this._maxRank=e)}get hasMoreFallbacks(){return this._currentRank<=this._maxRank}reduce(e,t){if(this._mesh&&this._mesh.computeBonesUsingShaders&&this._mesh.numBoneInfluencers>0){this._mesh.computeBonesUsingShaders=!1,e=e.replace("#define NUM_BONE_INFLUENCERS "+this._mesh.numBoneInfluencers,"#define NUM_BONE_INFLUENCERS 0"),t._bonesComputationForcedToCPU=!0;const i=this._mesh.getScene();for(let s=0;s<i.meshes.length;s++){const r=i.meshes[s];if(!r.material){!this._mesh.material&&r.computeBonesUsingShaders&&r.numBoneInfluencers>0&&(r.computeBonesUsingShaders=!1);continue}if(!(!r.computeBonesUsingShaders||r.numBoneInfluencers===0)){if(r.material.getEffect()===t)r.computeBonesUsingShaders=!1;else if(r.subMeshes){for(const n of r.subMeshes)if(n.effect===t){r.computeBonesUsingShaders=!1;break}}}}}else{const i=this._defines[this._currentRank];if(i)for(let s=0;s<i.length;s++)e=e.replace("#define "+i[s],"");this._currentRank++}return e}}const sRe=new RegExp("^([gimus]+)!");class yy{constructor(e){this._plugins=[],this._activePlugins=[],this._activePluginsForExtraEvents=[],this._material=e,this._scene=e.getScene(),this._engine=this._scene.getEngine()}_addPlugin(e){for(let s=0;s<this._plugins.length;++s)if(this._plugins[s].name===e.name)return!1;if(this._material._uniformBufferLayoutBuilt&&(this._material.resetDrawCache(),this._material._createUniformBuffer()),!e.isCompatible(this._material.shaderLanguage))throw`The plugin "${e.name}" can't be added to the material "${this._material.name}" because the plugin is not compatible with the shader language of the material.`;const t=e.getClassName();yy._MaterialPluginClassToMainDefine[t]||(yy._MaterialPluginClassToMainDefine[t]="MATERIALPLUGIN_"+ ++yy._MaterialPluginCounter),this._material._callbackPluginEventGeneric=(s,r)=>this._handlePluginEvent(s,r),this._plugins.push(e),this._plugins.sort((s,r)=>s.priority-r.priority),this._codeInjectionPoints={};const i={};i[yy._MaterialPluginClassToMainDefine[t]]={type:"boolean",default:!0};for(const s of this._plugins)s.collectDefines(i),this._collectPointNames("vertex",s.getCustomCode("vertex",this._material.shaderLanguage)),this._collectPointNames("fragment",s.getCustomCode("fragment",this._material.shaderLanguage));return this._defineNamesFromPlugins=i,!0}_activatePlugin(e){this._activePlugins.indexOf(e)===-1&&(this._activePlugins.push(e),this._activePlugins.sort((t,i)=>t.priority-i.priority),this._material._callbackPluginEventIsReadyForSubMesh=this._handlePluginEventIsReadyForSubMesh.bind(this),this._material._callbackPluginEventPrepareDefinesBeforeAttributes=this._handlePluginEventPrepareDefinesBeforeAttributes.bind(this),this._material._callbackPluginEventPrepareDefines=this._handlePluginEventPrepareDefines.bind(this),this._material._callbackPluginEventBindForSubMesh=this._handlePluginEventBindForSubMesh.bind(this),e.registerForExtraEvents&&(this._activePluginsForExtraEvents.push(e),this._activePluginsForExtraEvents.sort((t,i)=>t.priority-i.priority),this._material._callbackPluginEventHasRenderTargetTextures=this._handlePluginEventHasRenderTargetTextures.bind(this),this._material._callbackPluginEventFillRenderTargetTextures=this._handlePluginEventFillRenderTargetTextures.bind(this),this._material._callbackPluginEventHardBindForSubMesh=this._handlePluginEventHardBindForSubMesh.bind(this)))}getPlugin(e){for(let t=0;t<this._plugins.length;++t)if(this._plugins[t].name===e)return this._plugins[t];return null}_handlePluginEventIsReadyForSubMesh(e){let t=!0;for(const i of this._activePlugins)t=t&&i.isReadyForSubMesh(e.defines,this._scene,this._engine,e.subMesh);e.isReadyForSubMesh=t}_handlePluginEventPrepareDefinesBeforeAttributes(e){for(const t of this._activePlugins)t.prepareDefinesBeforeAttributes(e.defines,this._scene,e.mesh)}_handlePluginEventPrepareDefines(e){for(const t of this._activePlugins)t.prepareDefines(e.defines,this._scene,e.mesh)}_handlePluginEventHardBindForSubMesh(e){for(const t of this._activePluginsForExtraEvents)t.hardBindForSubMesh(this._material._uniformBuffer,this._scene,this._engine,e.subMesh)}_handlePluginEventBindForSubMesh(e){for(const t of this._activePlugins)t.bindForSubMesh(this._material._uniformBuffer,this._scene,this._engine,e.subMesh)}_handlePluginEventHasRenderTargetTextures(e){let t=!1;for(const i of this._activePluginsForExtraEvents)if(t=i.hasRenderTargetTextures(),t)break;e.hasRenderTargetTextures=t}_handlePluginEventFillRenderTargetTextures(e){for(const t of this._activePluginsForExtraEvents)t.fillRenderTargetTextures(e.renderTargets)}_handlePluginEvent(e,t){switch(e){case 512:{const i=t;for(const s of this._activePlugins)s.getActiveTextures(i.activeTextures);break}case 256:{const i=t;for(const s of this._activePlugins)s.getAnimatables(i.animatables);break}case 1024:{const i=t;let s=!1;for(const r of this._activePlugins)if(s=r.hasTexture(i.texture),s)break;i.hasTexture=s;break}case 2:{const i=t;for(const s of this._plugins)s.dispose(i.forceDisposeTextures);break}case 4:{const i=t;i.defineNames=this._defineNamesFromPlugins;break}case 128:{const i=t;for(const s of this._activePlugins)i.fallbackRank=s.addFallbacks(i.defines,i.fallbacks,i.fallbackRank),s.getAttributes(i.attributes,this._scene,i.mesh);this._uniformList.length>0&&i.uniforms.push(...this._uniformList),this._samplerList.length>0&&i.samplers.push(...this._samplerList),this._uboList.length>0&&i.uniformBuffersNames.push(...this._uboList),i.customCode=this._injectCustomCode(i,i.customCode);break}case 8:{const i=t;this._uboDeclaration="",this._vertexDeclaration="",this._fragmentDeclaration="",this._uniformList=[],this._samplerList=[],this._uboList=[];const s=this._material.shaderLanguage===1;for(const r of this._plugins){const n=r.getUniforms(this._material.shaderLanguage);if(n){if(n.ubo)for(const o of n.ubo){if(o.size&&o.type){const l=o.arraySize??0;if(i.ubo.addUniform(o.name,o.size,l),s){let c;switch(o.type){case"mat4":c="mat4x4f";break;case"float":c="f32";break;default:c=`${o.type}f`;break}this._uboDeclaration+=`uniform ${o.name}: ${c}${l>0?`[${l}]`:""};
`}else this._uboDeclaration+=`${o.type} ${o.name}${l>0?`[${l}]`:""};
`}this._uniformList.push(o.name)}n.vertex&&(this._vertexDeclaration+=n.vertex+`
`),n.fragment&&(this._fragmentDeclaration+=n.fragment+`
`)}r.getSamplers(this._samplerList),r.getUniformBuffersNames(this._uboList)}break}}}_collectPointNames(e,t){if(t)for(const i in t)this._codeInjectionPoints[e]||(this._codeInjectionPoints[e]={}),this._codeInjectionPoints[e][i]=!0}_injectCustomCode(e,t){return(i,s)=>{var o,l;t&&(s=t(i,s)),this._uboDeclaration&&(s=s.replace("#define ADDITIONAL_UBO_DECLARATION",this._uboDeclaration)),this._vertexDeclaration&&(s=s.replace("#define ADDITIONAL_VERTEX_DECLARATION",this._vertexDeclaration)),this._fragmentDeclaration&&(s=s.replace("#define ADDITIONAL_FRAGMENT_DECLARATION",this._fragmentDeclaration));const r=(o=this._codeInjectionPoints)==null?void 0:o[i];if(!r)return s;let n=null;for(let c in r){let u="";for(const f of this._activePlugins){let p=(l=f.getCustomCode(i,this._material.shaderLanguage))==null?void 0:l[c];p&&(f.resolveIncludes&&(n===null&&(n={defines:[],indexParameters:e.indexParameters,isFragment:!1,shouldUseHighPrecisionShader:this._engine._shouldUseHighPrecisionShader,processor:void 0,supportsUniformBuffers:this._engine.supportsUniformBuffers,shadersRepository:H.GetShadersRepository(0),includesShadersStore:H.GetIncludesShadersStore(0),version:void 0,platformName:this._engine.shaderPlatformName,processingContext:void 0,isNDCHalfZRange:this._engine.isNDCHalfZRange,useReverseDepthBuffer:this._engine.useReverseDepthBuffer,processCodeAfterIncludes:void 0}),n.isFragment=i==="fragment",hw(p,n,m=>p=m)),u+=p+`
`)}if(u.length>0)if(c.charAt(0)==="!"){c=c.substring(1);let f="g";if(c.charAt(0)==="!")f="",c=c.substring(1);else{const d=sRe.exec(c);d&&d.length>=2&&(f=d[1],c=c.substring(f.length+1))}f.indexOf("g")<0&&(f+="g");const p=s,m=new RegExp(c,f);let _=m.exec(p);for(;_!==null;){let d=u;for(let h=0;h<_.length;++h)d=d.replace("$"+h,_[h]);s=s.replace(_[0],d),_=m.exec(p)}}else{const f="#define "+c;s=s.replace(f,`
`+u+`
`+f)}}return s}}}yy._MaterialPluginClassToMainDefine={},yy._MaterialPluginCounter=0,ei.OnEnginesDisposedObservable.add(()=>{CZ()});const DT=[];let vZ=!1,AZ=null;function Hhe(a,e){vZ||(AZ=ft.OnEventObservable.add(i=>{for(const[,s]of DT)s(i)},1),vZ=!0);const t=DT.filter(([i,s])=>i===a);t.length>0?t[0][1]=e:DT.push([a,e])}function rRe(a){for(let e=0;e<DT.length;++e)if(DT[e][0]===a)return DT.splice(e,1),DT.length===0&&CZ(),!0;return!1}function CZ(){DT.length=0,vZ=!1,ft.OnEventObservable.remove(AZ),AZ=null}class Uu{isCompatible(e){switch(e){case 0:return!0;default:return!1}}_enable(e){e&&this._pluginManager._activatePlugin(this)}constructor(e,t,i,s,r=!0,n=!1,o=!1){this.priority=500,this.resolveIncludes=!1,this.registerForExtraEvents=!1,this.doNotSerialize=!1,this._material=e,this.name=t,this.priority=i,this.resolveIncludes=o,e.pluginManager||(e.pluginManager=new yy(e),e.onDisposeObservable.add(()=>{e.pluginManager=void 0})),this._pluginDefineNames=s,this._pluginManager=e.pluginManager,r&&this._pluginManager._addPlugin(this),n&&this._enable(!0),this.markAllDefinesAsDirty=e._dirtyCallbacks[127]}getClassName(){return"MaterialPluginBase"}isReadyForSubMesh(e,t,i,s){return!0}hardBindForSubMesh(e,t,i,s){}bindForSubMesh(e,t,i,s){}dispose(e){}getCustomCode(e,t=0){return null}collectDefines(e){if(this._pluginDefineNames)for(const t of Object.keys(this._pluginDefineNames)){if(t[0]==="_")continue;const i=typeof this._pluginDefineNames[t];e[t]={type:i==="number"?"number":i==="string"?"string":i==="boolean"?"boolean":"object",default:this._pluginDefineNames[t]}}}prepareDefinesBeforeAttributes(e,t,i){}prepareDefines(e,t,i){}hasTexture(e){return!1}hasRenderTargetTextures(){return!1}fillRenderTargetTextures(e){}getActiveTextures(e){}getAnimatables(e){}addFallbacks(e,t,i){return i}getSamplers(e){}getAttributes(e,t,i){}getUniformBuffersNames(e){}getUniforms(e=0){return{}}copyTo(e){It.Clone(()=>e,this)}serialize(){return It.Serialize(this)}parse(e,t,i){It.Parse(()=>this,e,t,i)}}F([G()],Uu.prototype,"name",void 0),F([G()],Uu.prototype,"priority",void 0),F([G()],Uu.prototype,"resolveIncludes",void 0),F([G()],Uu.prototype,"registerForExtraEvents",void 0),ve("BABYLON.MaterialPluginBase",Uu);class Yhe extends Br{constructor(){super(...arguments),this.DETAIL=!1,this.DETAILDIRECTUV=0,this.DETAIL_NORMALBLENDMETHOD=0}}class eb extends Uu{_markAllSubMeshesAsTexturesDirty(){this._enable(this._isEnabled),this._internalMarkAllSubMeshesAsTexturesDirty()}isCompatible(){return!0}constructor(e,t=!0){super(e,"DetailMap",140,new Yhe,t),this._texture=null,this.diffuseBlendLevel=1,this.roughnessBlendLevel=1,this.bumpLevel=1,this._normalBlendMethod=ft.MATERIAL_NORMALBLENDMETHOD_WHITEOUT,this._isEnabled=!1,this.isEnabled=!1,this._internalMarkAllSubMeshesAsTexturesDirty=e._dirtyCallbacks[1]}isReadyForSubMesh(e,t,i){return this._isEnabled?!(e._areTexturesDirty&&t.texturesEnabled&&i.getCaps().standardDerivatives&&this._texture&&Pt.DetailTextureEnabled&&!this._texture.isReady()):!0}prepareDefines(e,t){if(this._isEnabled){e.DETAIL_NORMALBLENDMETHOD=this._normalBlendMethod;const i=t.getEngine();e._areTexturesDirty&&(i.getCaps().standardDerivatives&&this._texture&&Pt.DetailTextureEnabled&&this._isEnabled?(En(this._texture,e,"DETAIL"),e.DETAIL_NORMALBLENDMETHOD=this._normalBlendMethod):e.DETAIL=!1)}else e.DETAIL=!1}bindForSubMesh(e,t){if(!this._isEnabled)return;const i=this._material.isFrozen;(!e.useUbo||!i||!e.isSync)&&this._texture&&Pt.DetailTextureEnabled&&(e.updateFloat4("vDetailInfos",this._texture.coordinatesIndex,this.diffuseBlendLevel,this.bumpLevel,this.roughnessBlendLevel),Tn(this._texture,e,"detail")),t.texturesEnabled&&this._texture&&Pt.DetailTextureEnabled&&e.setTexture("detailSampler",this._texture)}hasTexture(e){return this._texture===e}getActiveTextures(e){this._texture&&e.push(this._texture)}getAnimatables(e){this._texture&&this._texture.animations&&this._texture.animations.length>0&&e.push(this._texture)}dispose(e){var t;e&&((t=this._texture)==null||t.dispose())}getClassName(){return"DetailMapConfiguration"}getSamplers(e){e.push("detailSampler")}getUniforms(){return{ubo:[{name:"vDetailInfos",size:4,type:"vec4"},{name:"detailMatrix",size:16,type:"mat4"}]}}}F([Yi("detailTexture"),et("_markAllSubMeshesAsTexturesDirty")],eb.prototype,"texture",void 0),F([G()],eb.prototype,"diffuseBlendLevel",void 0),F([G()],eb.prototype,"roughnessBlendLevel",void 0),F([G()],eb.prototype,"bumpLevel",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],eb.prototype,"normalBlendMethod",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],eb.prototype,"isEnabled",void 0);var xZ;(function(a){a[a.Zero=0]="Zero",a[a.One=1]="One",a[a.MaxViewZ=2]="MaxViewZ"})(xZ||(xZ={}));class Da{static CreateConfiguration(e){return Da._Configurations[e]={defines:{},previousWorldMatrices:{},previousViewProjection:me.Zero(),currentViewProjection:me.Zero(),previousBones:{},lastUpdateFrameId:-1,excludedSkinnedMesh:[],reverseCulling:!1},Da._Configurations[e]}static DeleteConfiguration(e){delete Da._Configurations[e]}static GetConfiguration(e){return Da._Configurations[e]}static AddUniformsAndSamplers(e,t){e.push("previousWorld","previousViewProjection","mPreviousBones")}static MarkAsDirty(e,t){for(const i of t)if(i.subMeshes)for(const s of i.subMeshes)s._removeDrawWrapper(e)}static PrepareDefines(e,t,i){if(!i._arePrePassDirty)return;const s=Da._Configurations[e];if(!s)return;i.PREPASS=!0,i.PREPASS_COLOR=!1,i.PREPASS_COLOR_INDEX=-1;let r=0;for(let n=0;n<Da.GeometryTextureDescriptions.length;n++){const o=Da.GeometryTextureDescriptions[n],l=o.define,c=o.defineIndex,u=s.defines[c];u!==void 0?(i[l]=!0,i[c]=u,r++):(i[l]=!1,delete i[c])}i.SCENE_MRT_COUNT=r,i.BONES_VELOCITY_ENABLED=t.useBones&&t.computeBonesUsingShaders&&t.skeleton&&!t.skeleton.isUsingTextureForMatrices&&s.excludedSkinnedMesh.indexOf(t)===-1}static Bind(e,t,i,s,r){const n=Da._Configurations[e];if(!n)return;const o=i.getScene(),l=o.getEngine();if(n.reverseCulling&&l.setStateCullFaceType(o._mirroredCameraPosition?r.cullBackFaces:!r.cullBackFaces),(n.defines.PREPASS_VELOCITY_INDEX!==void 0||n.defines.PREPASS_VELOCITY_LINEAR_INDEX!==void 0)&&(n.previousWorldMatrices[i.uniqueId]||(n.previousWorldMatrices[i.uniqueId]=s.clone()),n.previousViewProjection||(n.previousViewProjection=o.getTransformMatrix().clone(),n.currentViewProjection=o.getTransformMatrix().clone()),n.currentViewProjection.updateFlag!==o.getTransformMatrix().updateFlag?(n.lastUpdateFrameId=l.frameId,n.previousViewProjection.copyFrom(n.currentViewProjection),n.currentViewProjection.copyFrom(o.getTransformMatrix())):n.lastUpdateFrameId!==l.frameId&&(n.lastUpdateFrameId=l.frameId,n.previousViewProjection.copyFrom(n.currentViewProjection)),t.setMatrix("previousWorld",n.previousWorldMatrices[i.uniqueId]),t.setMatrix("previousViewProjection",n.previousViewProjection),n.previousWorldMatrices[i.uniqueId]=s.clone(),i.useBones&&i.computeBonesUsingShaders&&i.skeleton)){const c=i.skeleton;if(!c.isUsingTextureForMatrices||t.getUniformIndex("boneTextureWidth")===-1){const u=c.getTransformMatrices(i);u&&(n.previousBones[i.uniqueId]||(n.previousBones[i.uniqueId]=u.slice()),t.setMatrices("mPreviousBones",n.previousBones[i.uniqueId]),n.previousBones[i.uniqueId].set(u))}}}}Da.GeometryTextureDescriptions=[{type:0,name:"Irradiance",clearType:0,define:"PREPASS_IRRADIANCE",defineIndex:"PREPASS_IRRADIANCE_INDEX"},{type:1,name:"WorldPosition",clearType:0,define:"PREPASS_POSITION",defineIndex:"PREPASS_POSITION_INDEX"},{type:2,name:"Velocity",clearType:0,define:"PREPASS_VELOCITY",defineIndex:"PREPASS_VELOCITY_INDEX"},{type:3,name:"Reflectivity",clearType:0,define:"PREPASS_REFLECTIVITY",defineIndex:"PREPASS_REFLECTIVITY_INDEX"},{type:5,name:"ViewDepth",clearType:2,define:"PREPASS_DEPTH",defineIndex:"PREPASS_DEPTH_INDEX"},{type:6,name:"ViewNormal",clearType:0,define:"PREPASS_NORMAL",defineIndex:"PREPASS_NORMAL_INDEX"},{type:7,name:"AlbedoSqrt",clearType:0,define:"PREPASS_ALBEDO_SQRT",defineIndex:"PREPASS_ALBEDO_SQRT_INDEX"},{type:8,name:"WorldNormal",clearType:0,define:"PREPASS_WORLD_NORMAL",defineIndex:"PREPASS_WORLD_NORMAL_INDEX"},{type:9,name:"LocalPosition",clearType:0,define:"PREPASS_LOCAL_POSITION",defineIndex:"PREPASS_LOCAL_POSITION_INDEX"},{type:10,name:"ScreenDepth",clearType:1,define:"PREPASS_SCREENSPACE_DEPTH",defineIndex:"PREPASS_SCREENSPACE_DEPTH_INDEX"},{type:11,name:"LinearVelocity",clearType:0,define:"PREPASS_VELOCITY_LINEAR",defineIndex:"PREPASS_VELOCITY_LINEAR_INDEX"},{type:12,name:"Albedo",clearType:0,define:"PREPASS_ALBEDO",defineIndex:"PREPASS_ALBEDO_INDEX"}],Da._Configurations={};const bZ={effect:null,subMesh:null};class Xhe extends Br{constructor(e){super(e),this.MAINUV1=!1,this.MAINUV2=!1,this.MAINUV3=!1,this.MAINUV4=!1,this.MAINUV5=!1,this.MAINUV6=!1,this.DIFFUSE=!1,this.DIFFUSEDIRECTUV=0,this.BAKED_VERTEX_ANIMATION_TEXTURE=!1,this.AMBIENT=!1,this.AMBIENTDIRECTUV=0,this.OPACITY=!1,this.OPACITYDIRECTUV=0,this.OPACITYRGB=!1,this.REFLECTION=!1,this.EMISSIVE=!1,this.EMISSIVEDIRECTUV=0,this.SPECULAR=!1,this.SPECULARDIRECTUV=0,this.BUMP=!1,this.BUMPDIRECTUV=0,this.PARALLAX=!1,this.PARALLAX_RHS=!1,this.PARALLAXOCCLUSION=!1,this.SPECULAROVERALPHA=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.ALPHAFROMDIFFUSE=!1,this.POINTSIZE=!1,this.FOG=!1,this.SPECULARTERM=!1,this.DIFFUSEFRESNEL=!1,this.OPACITYFRESNEL=!1,this.REFLECTIONFRESNEL=!1,this.REFRACTIONFRESNEL=!1,this.EMISSIVEFRESNEL=!1,this.FRESNEL=!1,this.NORMAL=!1,this.TANGENT=!1,this.UV1=!1,this.UV2=!1,this.UV3=!1,this.UV4=!1,this.UV5=!1,this.UV6=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.BONETEXTURE=!1,this.BONES_VELOCITY_ENABLED=!1,this.INSTANCES=!1,this.THIN_INSTANCES=!1,this.INSTANCESCOLOR=!1,this.GLOSSINESS=!1,this.ROUGHNESS=!1,this.EMISSIVEASILLUMINATION=!1,this.LINKEMISSIVEWITHDIFFUSE=!1,this.REFLECTIONFRESNELFROMSPECULAR=!1,this.LIGHTMAP=!1,this.LIGHTMAPDIRECTUV=0,this.OBJECTSPACE_NORMALMAP=!1,this.USELIGHTMAPASSHADOWMAP=!1,this.REFLECTIONMAP_3D=!1,this.REFLECTIONMAP_SPHERICAL=!1,this.REFLECTIONMAP_PLANAR=!1,this.REFLECTIONMAP_CUBIC=!1,this.USE_LOCAL_REFLECTIONMAP_CUBIC=!1,this.USE_LOCAL_REFRACTIONMAP_CUBIC=!1,this.REFLECTIONMAP_PROJECTION=!1,this.REFLECTIONMAP_SKYBOX=!1,this.REFLECTIONMAP_EXPLICIT=!1,this.REFLECTIONMAP_EQUIRECTANGULAR=!1,this.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,this.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,this.REFLECTIONMAP_OPPOSITEZ=!1,this.INVERTCUBICMAP=!1,this.LOGARITHMICDEPTH=!1,this.REFRACTION=!1,this.REFRACTIONMAP_3D=!1,this.REFLECTIONOVERALPHA=!1,this.TWOSIDEDLIGHTING=!1,this.SHADOWFLOAT=!1,this.MORPHTARGETS=!1,this.MORPHTARGETS_POSITION=!1,this.MORPHTARGETS_NORMAL=!1,this.MORPHTARGETS_TANGENT=!1,this.MORPHTARGETS_UV=!1,this.MORPHTARGETS_UV2=!1,this.MORPHTARGETS_COLOR=!1,this.MORPHTARGETTEXTURE_HASPOSITIONS=!1,this.MORPHTARGETTEXTURE_HASNORMALS=!1,this.MORPHTARGETTEXTURE_HASTANGENTS=!1,this.MORPHTARGETTEXTURE_HASUVS=!1,this.MORPHTARGETTEXTURE_HASUV2S=!1,this.MORPHTARGETTEXTURE_HASCOLORS=!1,this.NUM_MORPH_INFLUENCERS=0,this.MORPHTARGETS_TEXTURE=!1,this.NONUNIFORMSCALING=!1,this.PREMULTIPLYALPHA=!1,this.ALPHATEST_AFTERALLALPHACOMPUTATIONS=!1,this.ALPHABLEND=!0,this.PREPASS=!1,this.PREPASS_COLOR=!1,this.PREPASS_COLOR_INDEX=-1,this.PREPASS_IRRADIANCE=!1,this.PREPASS_IRRADIANCE_INDEX=-1,this.PREPASS_ALBEDO=!1,this.PREPASS_ALBEDO_INDEX=-1,this.PREPASS_ALBEDO_SQRT=!1,this.PREPASS_ALBEDO_SQRT_INDEX=-1,this.PREPASS_DEPTH=!1,this.PREPASS_DEPTH_INDEX=-1,this.PREPASS_SCREENSPACE_DEPTH=!1,this.PREPASS_SCREENSPACE_DEPTH_INDEX=-1,this.PREPASS_NORMAL=!1,this.PREPASS_NORMAL_INDEX=-1,this.PREPASS_NORMAL_WORLDSPACE=!1,this.PREPASS_WORLD_NORMAL=!1,this.PREPASS_WORLD_NORMAL_INDEX=-1,this.PREPASS_POSITION=!1,this.PREPASS_POSITION_INDEX=-1,this.PREPASS_LOCAL_POSITION=!1,this.PREPASS_LOCAL_POSITION_INDEX=-1,this.PREPASS_VELOCITY=!1,this.PREPASS_VELOCITY_INDEX=-1,this.PREPASS_VELOCITY_LINEAR=!1,this.PREPASS_VELOCITY_LINEAR_INDEX=-1,this.PREPASS_REFLECTIVITY=!1,this.PREPASS_REFLECTIVITY_INDEX=-1,this.SCENE_MRT_COUNT=0,this.RGBDLIGHTMAP=!1,this.RGBDREFLECTION=!1,this.RGBDREFRACTION=!1,this.IMAGEPROCESSING=!1,this.VIGNETTE=!1,this.VIGNETTEBLENDMODEMULTIPLY=!1,this.VIGNETTEBLENDMODEOPAQUE=!1,this.TONEMAPPING=0,this.CONTRAST=!1,this.COLORCURVES=!1,this.COLORGRADING=!1,this.COLORGRADING3D=!1,this.SAMPLER3DGREENDEPTH=!1,this.SAMPLER3DBGRMAP=!1,this.DITHER=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.MULTIVIEW=!1,this.ORDER_INDEPENDENT_TRANSPARENCY=!1,this.ORDER_INDEPENDENT_TRANSPARENCY_16BITS=!1,this.CAMERA_ORTHOGRAPHIC=!1,this.CAMERA_PERSPECTIVE=!1,this.AREALIGHTSUPPORTED=!0,this.IS_REFLECTION_LINEAR=!1,this.IS_REFRACTION_LINEAR=!1,this.EXPOSURE=!1,this.DECAL_AFTER_DETAIL=!1,this.rebuild()}setReflectionMode(e){const t=["REFLECTIONMAP_CUBIC","REFLECTIONMAP_EXPLICIT","REFLECTIONMAP_PLANAR","REFLECTIONMAP_PROJECTION","REFLECTIONMAP_PROJECTION","REFLECTIONMAP_SKYBOX","REFLECTIONMAP_SPHERICAL","REFLECTIONMAP_EQUIRECTANGULAR","REFLECTIONMAP_EQUIRECTANGULAR_FIXED","REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED"];for(const i of t)this[i]=i===e}}class Bt extends po{get imageProcessingConfiguration(){return this._imageProcessingConfiguration}set imageProcessingConfiguration(e){this._attachImageProcessingConfiguration(e),this._markAllSubMeshesAsTexturesDirty()}_attachImageProcessingConfiguration(e){e!==this._imageProcessingConfiguration&&(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e?this._imageProcessingConfiguration=e:this._imageProcessingConfiguration=this.getScene().imageProcessingConfiguration,this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add(()=>{this._markAllSubMeshesAsImageProcessingDirty()})))}get isPrePassCapable(){return!this.disableDepthWrite}get cameraColorCurvesEnabled(){return this.imageProcessingConfiguration.colorCurvesEnabled}set cameraColorCurvesEnabled(e){this.imageProcessingConfiguration.colorCurvesEnabled=e}get cameraColorGradingEnabled(){return this.imageProcessingConfiguration.colorGradingEnabled}set cameraColorGradingEnabled(e){this.imageProcessingConfiguration.colorGradingEnabled=e}get cameraToneMappingEnabled(){return this._imageProcessingConfiguration.toneMappingEnabled}set cameraToneMappingEnabled(e){this._imageProcessingConfiguration.toneMappingEnabled=e}get cameraExposure(){return this._imageProcessingConfiguration.exposure}set cameraExposure(e){this._imageProcessingConfiguration.exposure=e}get cameraContrast(){return this._imageProcessingConfiguration.contrast}set cameraContrast(e){this._imageProcessingConfiguration.contrast=e}get cameraColorGradingTexture(){return this._imageProcessingConfiguration.colorGradingTexture}set cameraColorGradingTexture(e){this._imageProcessingConfiguration.colorGradingTexture=e}get cameraColorCurves(){return this._imageProcessingConfiguration.colorCurves}set cameraColorCurves(e){this._imageProcessingConfiguration.colorCurves=e}get canRenderToMRT(){return!0}constructor(e,t,i=!1){super(e,t,void 0,i||Bt.ForceGLSL),this._diffuseTexture=null,this._ambientTexture=null,this._opacityTexture=null,this._reflectionTexture=null,this._emissiveTexture=null,this._specularTexture=null,this._bumpTexture=null,this._lightmapTexture=null,this._refractionTexture=null,this.ambientColor=new Pe(0,0,0),this.diffuseColor=new Pe(1,1,1),this.specularColor=new Pe(1,1,1),this.emissiveColor=new Pe(0,0,0),this.specularPower=64,this._useAlphaFromDiffuseTexture=!1,this._useEmissiveAsIllumination=!1,this._linkEmissiveWithDiffuse=!1,this._useSpecularOverAlpha=!1,this._useReflectionOverAlpha=!1,this._disableLighting=!1,this._useObjectSpaceNormalMap=!1,this._useParallax=!1,this._useParallaxOcclusion=!1,this.parallaxScaleBias=.05,this._roughness=0,this.indexOfRefraction=.98,this.invertRefractionY=!0,this.alphaCutOff=.4,this._useLightmapAsShadowmap=!1,this._useReflectionFresnelFromSpecular=!1,this._useGlossinessFromSpecularMapAlpha=!1,this._maxSimultaneousLights=4,this._invertNormalMapX=!1,this._invertNormalMapY=!1,this._twoSidedLighting=!1,this._applyDecalMapAfterDetailMap=!1,this._shadersLoaded=!1,this._renderTargets=new dl(16),this._globalAmbientColor=new Pe(0,0,0),this._cacheHasRenderTargetTextures=!1,this.detailMap=new eb(this),this._attachImageProcessingConfiguration(null),this.prePassConfiguration=new yG,this.getRenderTargetTextures=()=>(this._renderTargets.reset(),Bt.ReflectionTextureEnabled&&this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&this._renderTargets.push(this._reflectionTexture),Bt.RefractionTextureEnabled&&this._refractionTexture&&this._refractionTexture.isRenderTarget&&this._renderTargets.push(this._refractionTexture),this._eventInfo.renderTargets=this._renderTargets,this._callbackPluginEventFillRenderTargetTextures(this._eventInfo),this._renderTargets)}get hasRenderTargetTextures(){return Bt.ReflectionTextureEnabled&&this._reflectionTexture&&this._reflectionTexture.isRenderTarget||Bt.RefractionTextureEnabled&&this._refractionTexture&&this._refractionTexture.isRenderTarget?!0:this._cacheHasRenderTargetTextures}getClassName(){return"StandardMaterial"}needAlphaBlending(){return this._hasTransparencyMode?this._transparencyModeIsBlend:this._disableAlphaBlending?!1:this.alpha<1||this._opacityTexture!=null||this._shouldUseAlphaFromDiffuseTexture()||this._opacityFresnelParameters&&this._opacityFresnelParameters.isEnabled}needAlphaTesting(){return this._hasTransparencyMode?this._transparencyModeIsTest:this._hasAlphaChannel()&&(this._transparencyMode==null||this._transparencyMode===ft.MATERIAL_ALPHATEST)}_shouldUseAlphaFromDiffuseTexture(){return this._diffuseTexture!=null&&this._diffuseTexture.hasAlpha&&this._useAlphaFromDiffuseTexture&&this._transparencyMode!==ft.MATERIAL_OPAQUE}_hasAlphaChannel(){return this._diffuseTexture!=null&&this._diffuseTexture.hasAlpha||this._opacityTexture!=null}getAlphaTestTexture(){return this._diffuseTexture}isReadyForSubMesh(e,t,i=!1){this._uniformBufferLayoutBuilt||this.buildUniformLayout();const s=t._drawWrapper;if(s.effect&&this.isFrozen&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(this._callbackPluginEventGeneric(4,this._eventInfo),t.materialDefines=new Xhe(this._eventInfo.defineNames));const r=this.getScene(),n=t.materialDefines;if(this._isReadyForSubMesh(t))return!0;const o=r.getEngine();n._needNormals=Jd(r,e,n,!0,this._maxSimultaneousLights,this._disableLighting),xP(r,n);const l=this.needAlphaBlendingForMesh(e)&&this.getScene().useOrderIndependentTransparency;if(Ew(r,n,this.canRenderToMRT&&!l),vG(r,n,l),Da.PrepareDefines(o.currentRenderPassId,e,n),n._areTexturesDirty){this._eventInfo.hasRenderTargetTextures=!1,this._callbackPluginEventHasRenderTargetTextures(this._eventInfo),this._cacheHasRenderTargetTextures=this._eventInfo.hasRenderTargetTextures,n._needUVs=!1;for(let u=1;u<=6;++u)n["MAINUV"+u]=!1;if(r.texturesEnabled){if(n.DIFFUSEDIRECTUV=0,n.BUMPDIRECTUV=0,n.AMBIENTDIRECTUV=0,n.OPACITYDIRECTUV=0,n.EMISSIVEDIRECTUV=0,n.SPECULARDIRECTUV=0,n.LIGHTMAPDIRECTUV=0,this._diffuseTexture&&Bt.DiffuseTextureEnabled)if(this._diffuseTexture.isReadyOrNotBlocking())En(this._diffuseTexture,n,"DIFFUSE");else return!1;else n.DIFFUSE=!1;if(this._ambientTexture&&Bt.AmbientTextureEnabled)if(this._ambientTexture.isReadyOrNotBlocking())En(this._ambientTexture,n,"AMBIENT");else return!1;else n.AMBIENT=!1;if(this._opacityTexture&&Bt.OpacityTextureEnabled)if(this._opacityTexture.isReadyOrNotBlocking())En(this._opacityTexture,n,"OPACITY"),n.OPACITYRGB=this._opacityTexture.getAlphaFromRGB;else return!1;else n.OPACITY=!1;if(this._reflectionTexture&&Bt.ReflectionTextureEnabled)if(this._reflectionTexture.isReadyOrNotBlocking()){switch(n._needNormals=!0,n.REFLECTION=!0,n.ROUGHNESS=this._roughness>0,n.REFLECTIONOVERALPHA=this._useReflectionOverAlpha,n.INVERTCUBICMAP=this._reflectionTexture.coordinatesMode===be.INVCUBIC_MODE,n.REFLECTIONMAP_3D=this._reflectionTexture.isCube,n.REFLECTIONMAP_OPPOSITEZ=n.REFLECTIONMAP_3D&&this.getScene().useRightHandedSystem?!this._reflectionTexture.invertZ:this._reflectionTexture.invertZ,n.RGBDREFLECTION=this._reflectionTexture.isRGBD,this._reflectionTexture.coordinatesMode){case be.EXPLICIT_MODE:n.setReflectionMode("REFLECTIONMAP_EXPLICIT");break;case be.PLANAR_MODE:n.setReflectionMode("REFLECTIONMAP_PLANAR");break;case be.PROJECTION_MODE:n.setReflectionMode("REFLECTIONMAP_PROJECTION");break;case be.SKYBOX_MODE:n.setReflectionMode("REFLECTIONMAP_SKYBOX");break;case be.SPHERICAL_MODE:n.setReflectionMode("REFLECTIONMAP_SPHERICAL");break;case be.EQUIRECTANGULAR_MODE:n.setReflectionMode("REFLECTIONMAP_EQUIRECTANGULAR");break;case be.FIXED_EQUIRECTANGULAR_MODE:n.setReflectionMode("REFLECTIONMAP_EQUIRECTANGULAR_FIXED");break;case be.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:n.setReflectionMode("REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED");break;case be.CUBIC_MODE:case be.INVCUBIC_MODE:default:n.setReflectionMode("REFLECTIONMAP_CUBIC");break}n.USE_LOCAL_REFLECTIONMAP_CUBIC=!!this._reflectionTexture.boundingBoxSize}else return!1;else n.REFLECTION=!1,n.REFLECTIONMAP_OPPOSITEZ=!1;if(this._emissiveTexture&&Bt.EmissiveTextureEnabled)if(this._emissiveTexture.isReadyOrNotBlocking())En(this._emissiveTexture,n,"EMISSIVE");else return!1;else n.EMISSIVE=!1;if(this._lightmapTexture&&Bt.LightmapTextureEnabled)if(this._lightmapTexture.isReadyOrNotBlocking())En(this._lightmapTexture,n,"LIGHTMAP"),n.USELIGHTMAPASSHADOWMAP=this._useLightmapAsShadowmap,n.RGBDLIGHTMAP=this._lightmapTexture.isRGBD;else return!1;else n.LIGHTMAP=!1;if(this._specularTexture&&Bt.SpecularTextureEnabled)if(this._specularTexture.isReadyOrNotBlocking())En(this._specularTexture,n,"SPECULAR"),n.GLOSSINESS=this._useGlossinessFromSpecularMapAlpha;else return!1;else n.SPECULAR=!1;if(r.getEngine().getCaps().standardDerivatives&&this._bumpTexture&&Bt.BumpTextureEnabled){if(this._bumpTexture.isReady())En(this._bumpTexture,n,"BUMP"),n.PARALLAX=this._useParallax,n.PARALLAX_RHS=r.useRightHandedSystem,n.PARALLAXOCCLUSION=this._useParallaxOcclusion;else return!1;n.OBJECTSPACE_NORMALMAP=this._useObjectSpaceNormalMap}else n.BUMP=!1,n.PARALLAX=!1,n.PARALLAX_RHS=!1,n.PARALLAXOCCLUSION=!1;if(this._refractionTexture&&Bt.RefractionTextureEnabled)if(this._refractionTexture.isReadyOrNotBlocking())n._needUVs=!0,n.REFRACTION=!0,n.REFRACTIONMAP_3D=this._refractionTexture.isCube,n.RGBDREFRACTION=this._refractionTexture.isRGBD,n.USE_LOCAL_REFRACTIONMAP_CUBIC=!!this._refractionTexture.boundingBoxSize;else return!1;else n.REFRACTION=!1;n.TWOSIDEDLIGHTING=!this._backFaceCulling&&this._twoSidedLighting}else n.DIFFUSE=!1,n.AMBIENT=!1,n.OPACITY=!1,n.REFLECTION=!1,n.EMISSIVE=!1,n.LIGHTMAP=!1,n.BUMP=!1,n.REFRACTION=!1;n.ALPHAFROMDIFFUSE=this._shouldUseAlphaFromDiffuseTexture(),n.EMISSIVEASILLUMINATION=this._useEmissiveAsIllumination,n.LINKEMISSIVEWITHDIFFUSE=this._linkEmissiveWithDiffuse,n.SPECULAROVERALPHA=this._useSpecularOverAlpha,n.PREMULTIPLYALPHA=this.alphaMode===7||this.alphaMode===8,n.ALPHATEST_AFTERALLALPHACOMPUTATIONS=this.transparencyMode!==null,n.ALPHABLEND=this.transparencyMode===null||this.needAlphaBlendingForMesh(e)}if(this._eventInfo.isReadyForSubMesh=!0,this._eventInfo.defines=n,this._eventInfo.subMesh=t,this._callbackPluginEventIsReadyForSubMesh(this._eventInfo),!this._eventInfo.isReadyForSubMesh)return!1;if(n._areImageProcessingDirty&&this._imageProcessingConfiguration){if(!this._imageProcessingConfiguration.isReady())return!1;this._imageProcessingConfiguration.prepareDefines(n),n.IS_REFLECTION_LINEAR=this.reflectionTexture!=null&&!this.reflectionTexture.gammaSpace,n.IS_REFRACTION_LINEAR=this.refractionTexture!=null&&!this.refractionTexture.gammaSpace}if(n._areFresnelDirty&&(Bt.FresnelEnabled?(this._diffuseFresnelParameters||this._opacityFresnelParameters||this._emissiveFresnelParameters||this._refractionFresnelParameters||this._reflectionFresnelParameters)&&(n.DIFFUSEFRESNEL=this._diffuseFresnelParameters&&this._diffuseFresnelParameters.isEnabled,n.OPACITYFRESNEL=this._opacityFresnelParameters&&this._opacityFresnelParameters.isEnabled,n.REFLECTIONFRESNEL=this._reflectionFresnelParameters&&this._reflectionFresnelParameters.isEnabled,n.REFLECTIONFRESNELFROMSPECULAR=this._useReflectionFresnelFromSpecular,n.REFRACTIONFRESNEL=this._refractionFresnelParameters&&this._refractionFresnelParameters.isEnabled,n.EMISSIVEFRESNEL=this._emissiveFresnelParameters&&this._emissiveFresnelParameters.isEnabled,n._needNormals=!0,n.FRESNEL=!0):n.FRESNEL=!1),n.AREALIGHTUSED){for(let u=0;u<e.lightSources.length;u++)if(!e.lightSources[u]._isReady())return!1}ad(e,r,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),n,this._applyDecalMapAfterDetailMap),od(r,o,this,n,i,null,t.getRenderingMesh().hasThinInstances),this._eventInfo.defines=n,this._eventInfo.mesh=e,this._callbackPluginEventPrepareDefinesBeforeAttributes(this._eventInfo),zo(e,n,!0,!0,!0),this._callbackPluginEventPrepareDefines(this._eventInfo);let c=!1;if(n.isDirty){const u=n._areLightsDisposed;n.markAsProcessed();const f=new Ra;n.REFLECTION&&f.addFallback(0,"REFLECTION"),n.SPECULAR&&f.addFallback(0,"SPECULAR"),n.BUMP&&f.addFallback(0,"BUMP"),n.PARALLAX&&f.addFallback(1,"PARALLAX"),n.PARALLAX_RHS&&f.addFallback(1,"PARALLAX_RHS"),n.PARALLAXOCCLUSION&&f.addFallback(0,"PARALLAXOCCLUSION"),n.SPECULAROVERALPHA&&f.addFallback(0,"SPECULAROVERALPHA"),n.FOG&&f.addFallback(1,"FOG"),n.POINTSIZE&&f.addFallback(0,"POINTSIZE"),n.LOGARITHMICDEPTH&&f.addFallback(0,"LOGARITHMICDEPTH"),Ql(n,f,this._maxSimultaneousLights),n.SPECULARTERM&&f.addFallback(0,"SPECULARTERM"),n.DIFFUSEFRESNEL&&f.addFallback(1,"DIFFUSEFRESNEL"),n.OPACITYFRESNEL&&f.addFallback(2,"OPACITYFRESNEL"),n.REFLECTIONFRESNEL&&f.addFallback(3,"REFLECTIONFRESNEL"),n.EMISSIVEFRESNEL&&f.addFallback(4,"EMISSIVEFRESNEL"),n.FRESNEL&&f.addFallback(4,"FRESNEL"),n.MULTIVIEW&&f.addFallback(0,"MULTIVIEW");const p=[q.PositionKind];n.NORMAL&&p.push(q.NormalKind),n.TANGENT&&p.push(q.TangentKind);for(let M=1;M<=6;++M)n["UV"+M]&&p.push(`uv${M===1?"":M}`);n.VERTEXCOLOR&&p.push(q.ColorKind),G1(p,e,n,f),Qo(p,n),vP(p,e,n),CP(p,e,n);let m="default";const _=["world","view","viewProjection","vEyePosition","vLightsType","vAmbientColor","vDiffuseColor","vSpecularColor","vEmissiveColor","visibility","vFogInfos","vFogColor","pointSize","vDiffuseInfos","vAmbientInfos","vOpacityInfos","vReflectionInfos","vEmissiveInfos","vSpecularInfos","vBumpInfos","vLightmapInfos","vRefractionInfos","mBones","diffuseMatrix","ambientMatrix","opacityMatrix","reflectionMatrix","emissiveMatrix","specularMatrix","bumpMatrix","normalMatrix","lightmapMatrix","refractionMatrix","diffuseLeftColor","diffuseRightColor","opacityParts","reflectionLeftColor","reflectionRightColor","emissiveLeftColor","emissiveRightColor","refractionLeftColor","refractionRightColor","vReflectionPosition","vReflectionSize","vRefractionPosition","vRefractionSize","logarithmicDepthConstant","vTangentSpaceParams","alphaCutOff","boneTextureWidth","morphTargetTextureInfo","morphTargetTextureIndices"],d=["diffuseSampler","ambientSampler","opacitySampler","reflectionCubeSampler","reflection2DSampler","emissiveSampler","specularSampler","bumpSampler","lightmapSampler","refractionCubeSampler","refraction2DSampler","boneSampler","morphTargets","oitDepthSampler","oitFrontColorSampler","areaLightsLTC1Sampler","areaLightsLTC2Sampler"],h=["Material","Scene","Mesh"],x={maxSimultaneousLights:this._maxSimultaneousLights,maxSimultaneousMorphTargets:n.NUM_MORPH_INFLUENCERS};this._eventInfo.fallbacks=f,this._eventInfo.fallbackRank=0,this._eventInfo.defines=n,this._eventInfo.uniforms=_,this._eventInfo.attributes=p,this._eventInfo.samplers=d,this._eventInfo.uniformBuffersNames=h,this._eventInfo.customCode=void 0,this._eventInfo.mesh=e,this._eventInfo.indexParameters=x,this._callbackPluginEventGeneric(128,this._eventInfo),Da.AddUniformsAndSamplers(_,d),yG.AddUniforms(_),ws&&(ws.PrepareUniforms(_,n),ws.PrepareSamplers(d,n)),gl({uniformsNames:_,uniformBuffersNames:h,samplers:d,defines:n,maxSimultaneousLights:this._maxSimultaneousLights}),qo(_);const A={};this.customShaderNameResolve&&(m=this.customShaderNameResolve(m,_,h,d,n,p,A));const S=n.toString(),E=t.effect;let b=r.getEngine().createEffect(m,{attributes:p,uniformsNames:_,uniformBuffersNames:h,samplers:d,defines:S,fallbacks:f,onCompiled:this.onCompiled,onError:this.onError,indexParameters:x,processFinalCode:A.processFinalCode,processCodeAfterIncludes:this._eventInfo.customCode,multiTarget:n.PREPASS,shaderLanguage:this._shaderLanguage,extraInitializationsAsync:this._shadersLoaded?void 0:async()=>{this._shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>wWe),Promise.resolve().then(()=>DWe)]):await Promise.all([Promise.resolve().then(()=>OWe),Promise.resolve().then(()=>IWe)]),this._shadersLoaded=!0}},o);if(this._eventInfo.customCode=void 0,b)if(this._onEffectCreatedObservable&&(bZ.effect=b,bZ.subMesh=t,this._onEffectCreatedObservable.notifyObservers(bZ)),this.allowShaderHotSwapping&&E&&!b.isReady()){if(b=E,n.markAsUnprocessed(),c=this.isFrozen,u)return n._areLightsDisposed=!0,!1}else r.resetCachedMaterial(),t.setEffect(b,n,this._materialContext)}return!t.effect||!t.effect.isReady()?!1:(n._renderId=r.getRenderId(),s._wasPreviouslyReady=!c,s._wasPreviouslyUsingInstances=i,this._checkScenePerformancePriority(),!0)}buildUniformLayout(){const e=this._uniformBuffer;e.addUniform("diffuseLeftColor",4),e.addUniform("diffuseRightColor",4),e.addUniform("opacityParts",4),e.addUniform("reflectionLeftColor",4),e.addUniform("reflectionRightColor",4),e.addUniform("refractionLeftColor",4),e.addUniform("refractionRightColor",4),e.addUniform("emissiveLeftColor",4),e.addUniform("emissiveRightColor",4),e.addUniform("vDiffuseInfos",2),e.addUniform("vAmbientInfos",2),e.addUniform("vOpacityInfos",2),e.addUniform("vReflectionInfos",2),e.addUniform("vReflectionPosition",3),e.addUniform("vReflectionSize",3),e.addUniform("vEmissiveInfos",2),e.addUniform("vLightmapInfos",2),e.addUniform("vSpecularInfos",2),e.addUniform("vBumpInfos",3),e.addUniform("diffuseMatrix",16),e.addUniform("ambientMatrix",16),e.addUniform("opacityMatrix",16),e.addUniform("reflectionMatrix",16),e.addUniform("emissiveMatrix",16),e.addUniform("lightmapMatrix",16),e.addUniform("specularMatrix",16),e.addUniform("bumpMatrix",16),e.addUniform("vTangentSpaceParams",2),e.addUniform("pointSize",1),e.addUniform("alphaCutOff",1),e.addUniform("refractionMatrix",16),e.addUniform("vRefractionInfos",4),e.addUniform("vRefractionPosition",3),e.addUniform("vRefractionSize",3),e.addUniform("vSpecularColor",4),e.addUniform("vEmissiveColor",3),e.addUniform("vDiffuseColor",4),e.addUniform("vAmbientColor",3),super.buildUniformLayout()}bindForSubMesh(e,t,i){var c;const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;if(!n)return;this._activeEffect=n,t.getMeshUniformBuffer().bindToEffect(n,"Mesh"),t.transferToEffect(e),this._uniformBuffer.bindToEffect(n,"Material"),this.prePassConfiguration.bindForSubMesh(this._activeEffect,s,t,e,this.isFrozen),Da.Bind(s.getEngine().currentRenderPassId,this._activeEffect,t,e,this),this._eventInfo.subMesh=i,this._callbackPluginEventHardBindForSubMesh(this._eventInfo),r.OBJECTSPACE_NORMALMAP&&(e.toNormalMatrix(this._normalMatrix),this.bindOnlyNormalMatrix(this._normalMatrix));const o=this._mustRebind(s,n,i,t.visibility);Pc(t,n);const l=this._uniformBuffer;if(o){if(this.bindViewProjection(n),!l.useUbo||!this.isFrozen||!l.isSync||i._drawWrapper._forceRebindOnNextCall){if(Bt.FresnelEnabled&&r.FRESNEL&&(this.diffuseFresnelParameters&&this.diffuseFresnelParameters.isEnabled&&(l.updateColor4("diffuseLeftColor",this.diffuseFresnelParameters.leftColor,this.diffuseFresnelParameters.power),l.updateColor4("diffuseRightColor",this.diffuseFresnelParameters.rightColor,this.diffuseFresnelParameters.bias)),this.opacityFresnelParameters&&this.opacityFresnelParameters.isEnabled&&l.updateColor4("opacityParts",new Pe(this.opacityFresnelParameters.leftColor.toLuminance(),this.opacityFresnelParameters.rightColor.toLuminance(),this.opacityFresnelParameters.bias),this.opacityFresnelParameters.power),this.reflectionFresnelParameters&&this.reflectionFresnelParameters.isEnabled&&(l.updateColor4("reflectionLeftColor",this.reflectionFresnelParameters.leftColor,this.reflectionFresnelParameters.power),l.updateColor4("reflectionRightColor",this.reflectionFresnelParameters.rightColor,this.reflectionFresnelParameters.bias)),this.refractionFresnelParameters&&this.refractionFresnelParameters.isEnabled&&(l.updateColor4("refractionLeftColor",this.refractionFresnelParameters.leftColor,this.refractionFresnelParameters.power),l.updateColor4("refractionRightColor",this.refractionFresnelParameters.rightColor,this.refractionFresnelParameters.bias)),this.emissiveFresnelParameters&&this.emissiveFresnelParameters.isEnabled&&(l.updateColor4("emissiveLeftColor",this.emissiveFresnelParameters.leftColor,this.emissiveFresnelParameters.power),l.updateColor4("emissiveRightColor",this.emissiveFresnelParameters.rightColor,this.emissiveFresnelParameters.bias))),s.texturesEnabled){if(this._diffuseTexture&&Bt.DiffuseTextureEnabled&&(l.updateFloat2("vDiffuseInfos",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),Tn(this._diffuseTexture,l,"diffuse")),this._ambientTexture&&Bt.AmbientTextureEnabled&&(l.updateFloat2("vAmbientInfos",this._ambientTexture.coordinatesIndex,this._ambientTexture.level),Tn(this._ambientTexture,l,"ambient")),this._opacityTexture&&Bt.OpacityTextureEnabled&&(l.updateFloat2("vOpacityInfos",this._opacityTexture.coordinatesIndex,this._opacityTexture.level),Tn(this._opacityTexture,l,"opacity")),this._hasAlphaChannel()&&l.updateFloat("alphaCutOff",this.alphaCutOff),this._reflectionTexture&&Bt.ReflectionTextureEnabled){if(l.updateFloat2("vReflectionInfos",this._reflectionTexture.level,this.roughness),l.updateMatrix("reflectionMatrix",this._reflectionTexture.getReflectionTextureMatrix()),this._reflectionTexture.boundingBoxSize){const u=this._reflectionTexture;l.updateVector3("vReflectionPosition",u.boundingBoxPosition),l.updateVector3("vReflectionSize",u.boundingBoxSize)}}else l.updateFloat2("vReflectionInfos",0,this.roughness);if(this._emissiveTexture&&Bt.EmissiveTextureEnabled&&(l.updateFloat2("vEmissiveInfos",this._emissiveTexture.coordinatesIndex,this._emissiveTexture.level),Tn(this._emissiveTexture,l,"emissive")),this._lightmapTexture&&Bt.LightmapTextureEnabled&&(l.updateFloat2("vLightmapInfos",this._lightmapTexture.coordinatesIndex,this._lightmapTexture.level),Tn(this._lightmapTexture,l,"lightmap")),this._specularTexture&&Bt.SpecularTextureEnabled&&(l.updateFloat2("vSpecularInfos",this._specularTexture.coordinatesIndex,this._specularTexture.level),Tn(this._specularTexture,l,"specular")),this._bumpTexture&&s.getEngine().getCaps().standardDerivatives&&Bt.BumpTextureEnabled&&(l.updateFloat3("vBumpInfos",this._bumpTexture.coordinatesIndex,1/this._bumpTexture.level,this.parallaxScaleBias),Tn(this._bumpTexture,l,"bump"),s._mirroredCameraPosition?l.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?1:-1,this._invertNormalMapY?1:-1):l.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?-1:1,this._invertNormalMapY?-1:1)),this._refractionTexture&&Bt.RefractionTextureEnabled){let u=1;if(this._refractionTexture.isCube||(l.updateMatrix("refractionMatrix",this._refractionTexture.getReflectionTextureMatrix()),this._refractionTexture.depth&&(u=this._refractionTexture.depth)),l.updateFloat4("vRefractionInfos",this._refractionTexture.level,this.indexOfRefraction,u,this.invertRefractionY?-1:1),this._refractionTexture.boundingBoxSize){const f=this._refractionTexture;l.updateVector3("vRefractionPosition",f.boundingBoxPosition),l.updateVector3("vRefractionSize",f.boundingBoxSize)}}}this.pointsCloud&&l.updateFloat("pointSize",this.pointSize),l.updateColor4("vSpecularColor",this.specularColor,this.specularPower),l.updateColor3("vEmissiveColor",Bt.EmissiveTextureEnabled?this.emissiveColor:Pe.BlackReadOnly),l.updateColor4("vDiffuseColor",this.diffuseColor,this.alpha),s.ambientColor.multiplyToRef(this.ambientColor,this._globalAmbientColor),l.updateColor3("vAmbientColor",this._globalAmbientColor)}s.texturesEnabled&&(this._diffuseTexture&&Bt.DiffuseTextureEnabled&&n.setTexture("diffuseSampler",this._diffuseTexture),this._ambientTexture&&Bt.AmbientTextureEnabled&&n.setTexture("ambientSampler",this._ambientTexture),this._opacityTexture&&Bt.OpacityTextureEnabled&&n.setTexture("opacitySampler",this._opacityTexture),this._reflectionTexture&&Bt.ReflectionTextureEnabled&&(this._reflectionTexture.isCube?n.setTexture("reflectionCubeSampler",this._reflectionTexture):n.setTexture("reflection2DSampler",this._reflectionTexture)),this._emissiveTexture&&Bt.EmissiveTextureEnabled&&n.setTexture("emissiveSampler",this._emissiveTexture),this._lightmapTexture&&Bt.LightmapTextureEnabled&&n.setTexture("lightmapSampler",this._lightmapTexture),this._specularTexture&&Bt.SpecularTextureEnabled&&n.setTexture("specularSampler",this._specularTexture),this._bumpTexture&&s.getEngine().getCaps().standardDerivatives&&Bt.BumpTextureEnabled&&n.setTexture("bumpSampler",this._bumpTexture),this._refractionTexture&&Bt.RefractionTextureEnabled&&(this._refractionTexture.isCube?n.setTexture("refractionCubeSampler",this._refractionTexture):n.setTexture("refraction2DSampler",this._refractionTexture))),this.getScene().useOrderIndependentTransparency&&this.needAlphaBlendingForMesh(t)&&this.getScene().depthPeelingRenderer.bind(n),this._eventInfo.subMesh=i,this._callbackPluginEventBindForSubMesh(this._eventInfo),Bo(n,this,s),this.bindEyePosition(n)}else s.getEngine()._features.needToAlwaysBindUniformBuffers&&(this._needToBindSceneUbo=!0);(o||!this.isFrozen)&&(s.lightsEnabled&&!this._disableLighting&&Qd(s,t,n,r,this._maxSimultaneousLights),(s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE||this._reflectionTexture||this._refractionTexture||t.receiveShadows||r.PREPASS)&&this.bindView(n),Ic(s,t,n),r.NUM_MORPH_INFLUENCERS&&s3(t,n),r.BAKED_VERTEX_ANIMATION_TEXTURE&&((c=t.bakedVertexAnimationManager)==null||c.bind(n,r.INSTANCES)),this.useLogarithmicDepth&&ml(r,n,s),this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(this._activeEffect)),this._afterBind(t,this._activeEffect,i),l.update()}getAnimatables(){const e=super.getAnimatables();return this._diffuseTexture&&this._diffuseTexture.animations&&this._diffuseTexture.animations.length>0&&e.push(this._diffuseTexture),this._ambientTexture&&this._ambientTexture.animations&&this._ambientTexture.animations.length>0&&e.push(this._ambientTexture),this._opacityTexture&&this._opacityTexture.animations&&this._opacityTexture.animations.length>0&&e.push(this._opacityTexture),this._reflectionTexture&&this._reflectionTexture.animations&&this._reflectionTexture.animations.length>0&&e.push(this._reflectionTexture),this._emissiveTexture&&this._emissiveTexture.animations&&this._emissiveTexture.animations.length>0&&e.push(this._emissiveTexture),this._specularTexture&&this._specularTexture.animations&&this._specularTexture.animations.length>0&&e.push(this._specularTexture),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&e.push(this._bumpTexture),this._lightmapTexture&&this._lightmapTexture.animations&&this._lightmapTexture.animations.length>0&&e.push(this._lightmapTexture),this._refractionTexture&&this._refractionTexture.animations&&this._refractionTexture.animations.length>0&&e.push(this._refractionTexture),e}getActiveTextures(){const e=super.getActiveTextures();return this._diffuseTexture&&e.push(this._diffuseTexture),this._ambientTexture&&e.push(this._ambientTexture),this._opacityTexture&&e.push(this._opacityTexture),this._reflectionTexture&&e.push(this._reflectionTexture),this._emissiveTexture&&e.push(this._emissiveTexture),this._specularTexture&&e.push(this._specularTexture),this._bumpTexture&&e.push(this._bumpTexture),this._lightmapTexture&&e.push(this._lightmapTexture),this._refractionTexture&&e.push(this._refractionTexture),e}hasTexture(e){return!!(super.hasTexture(e)||this._diffuseTexture===e||this._ambientTexture===e||this._opacityTexture===e||this._reflectionTexture===e||this._emissiveTexture===e||this._specularTexture===e||this._bumpTexture===e||this._lightmapTexture===e||this._refractionTexture===e)}dispose(e,t){var i,s,r,n,o,l,c,u,f;t&&((i=this._diffuseTexture)==null||i.dispose(),(s=this._ambientTexture)==null||s.dispose(),(r=this._opacityTexture)==null||r.dispose(),(n=this._reflectionTexture)==null||n.dispose(),(o=this._emissiveTexture)==null||o.dispose(),(l=this._specularTexture)==null||l.dispose(),(c=this._bumpTexture)==null||c.dispose(),(u=this._lightmapTexture)==null||u.dispose(),(f=this._refractionTexture)==null||f.dispose()),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),super.dispose(e,t)}clone(e,t=!0,i=""){const s=It.Clone(()=>new Bt(e,this.getScene()),this,{cloneTexturesOnlyOnce:t});return s.name=e,s.id=e,this.stencil.copyTo(s.stencil),this._clonePlugins(s,i),s}static Parse(e,t,i){const s=It.Parse(()=>new Bt(e.name,t),e,t,i);return e.stencil&&s.stencil.parse(e.stencil,t,i),ft._ParsePlugins(e,s,t,i),s}static get DiffuseTextureEnabled(){return Pt.DiffuseTextureEnabled}static set DiffuseTextureEnabled(e){Pt.DiffuseTextureEnabled=e}static get DetailTextureEnabled(){return Pt.DetailTextureEnabled}static set DetailTextureEnabled(e){Pt.DetailTextureEnabled=e}static get AmbientTextureEnabled(){return Pt.AmbientTextureEnabled}static set AmbientTextureEnabled(e){Pt.AmbientTextureEnabled=e}static get OpacityTextureEnabled(){return Pt.OpacityTextureEnabled}static set OpacityTextureEnabled(e){Pt.OpacityTextureEnabled=e}static get ReflectionTextureEnabled(){return Pt.ReflectionTextureEnabled}static set ReflectionTextureEnabled(e){Pt.ReflectionTextureEnabled=e}static get EmissiveTextureEnabled(){return Pt.EmissiveTextureEnabled}static set EmissiveTextureEnabled(e){Pt.EmissiveTextureEnabled=e}static get SpecularTextureEnabled(){return Pt.SpecularTextureEnabled}static set SpecularTextureEnabled(e){Pt.SpecularTextureEnabled=e}static get BumpTextureEnabled(){return Pt.BumpTextureEnabled}static set BumpTextureEnabled(e){Pt.BumpTextureEnabled=e}static get LightmapTextureEnabled(){return Pt.LightmapTextureEnabled}static set LightmapTextureEnabled(e){Pt.LightmapTextureEnabled=e}static get RefractionTextureEnabled(){return Pt.RefractionTextureEnabled}static set RefractionTextureEnabled(e){Pt.RefractionTextureEnabled=e}static get ColorGradingTextureEnabled(){return Pt.ColorGradingTextureEnabled}static set ColorGradingTextureEnabled(e){Pt.ColorGradingTextureEnabled=e}static get FresnelEnabled(){return Pt.FresnelEnabled}static set FresnelEnabled(e){Pt.FresnelEnabled=e}}Bt.ForceGLSL=!1,F([Yi("diffuseTexture")],Bt.prototype,"_diffuseTexture",void 0),F([et("_markAllSubMeshesAsTexturesAndMiscDirty")],Bt.prototype,"diffuseTexture",void 0),F([Yi("ambientTexture")],Bt.prototype,"_ambientTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"ambientTexture",void 0),F([Yi("opacityTexture")],Bt.prototype,"_opacityTexture",void 0),F([et("_markAllSubMeshesAsTexturesAndMiscDirty")],Bt.prototype,"opacityTexture",void 0),F([Yi("reflectionTexture")],Bt.prototype,"_reflectionTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"reflectionTexture",void 0),F([Yi("emissiveTexture")],Bt.prototype,"_emissiveTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"emissiveTexture",void 0),F([Yi("specularTexture")],Bt.prototype,"_specularTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"specularTexture",void 0),F([Yi("bumpTexture")],Bt.prototype,"_bumpTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"bumpTexture",void 0),F([Yi("lightmapTexture")],Bt.prototype,"_lightmapTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"lightmapTexture",void 0),F([Yi("refractionTexture")],Bt.prototype,"_refractionTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"refractionTexture",void 0),F([qs("ambient")],Bt.prototype,"ambientColor",void 0),F([qs("diffuse")],Bt.prototype,"diffuseColor",void 0),F([qs("specular")],Bt.prototype,"specularColor",void 0),F([qs("emissive")],Bt.prototype,"emissiveColor",void 0),F([G()],Bt.prototype,"specularPower",void 0),F([G("useAlphaFromDiffuseTexture")],Bt.prototype,"_useAlphaFromDiffuseTexture",void 0),F([et("_markAllSubMeshesAsTexturesAndMiscDirty")],Bt.prototype,"useAlphaFromDiffuseTexture",void 0),F([G("useEmissiveAsIllumination")],Bt.prototype,"_useEmissiveAsIllumination",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"useEmissiveAsIllumination",void 0),F([G("linkEmissiveWithDiffuse")],Bt.prototype,"_linkEmissiveWithDiffuse",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"linkEmissiveWithDiffuse",void 0),F([G("useSpecularOverAlpha")],Bt.prototype,"_useSpecularOverAlpha",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"useSpecularOverAlpha",void 0),F([G("useReflectionOverAlpha")],Bt.prototype,"_useReflectionOverAlpha",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"useReflectionOverAlpha",void 0),F([G("disableLighting")],Bt.prototype,"_disableLighting",void 0),F([et("_markAllSubMeshesAsLightsDirty")],Bt.prototype,"disableLighting",void 0),F([G("useObjectSpaceNormalMap")],Bt.prototype,"_useObjectSpaceNormalMap",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"useObjectSpaceNormalMap",void 0),F([G("useParallax")],Bt.prototype,"_useParallax",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"useParallax",void 0),F([G("useParallaxOcclusion")],Bt.prototype,"_useParallaxOcclusion",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"useParallaxOcclusion",void 0),F([G()],Bt.prototype,"parallaxScaleBias",void 0),F([G("roughness")],Bt.prototype,"_roughness",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"roughness",void 0),F([G()],Bt.prototype,"indexOfRefraction",void 0),F([G()],Bt.prototype,"invertRefractionY",void 0),F([G()],Bt.prototype,"alphaCutOff",void 0),F([G("useLightmapAsShadowmap")],Bt.prototype,"_useLightmapAsShadowmap",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"useLightmapAsShadowmap",void 0),F([cP("diffuseFresnelParameters")],Bt.prototype,"_diffuseFresnelParameters",void 0),F([et("_markAllSubMeshesAsFresnelDirty")],Bt.prototype,"diffuseFresnelParameters",void 0),F([cP("opacityFresnelParameters")],Bt.prototype,"_opacityFresnelParameters",void 0),F([et("_markAllSubMeshesAsFresnelAndMiscDirty")],Bt.prototype,"opacityFresnelParameters",void 0),F([cP("reflectionFresnelParameters")],Bt.prototype,"_reflectionFresnelParameters",void 0),F([et("_markAllSubMeshesAsFresnelDirty")],Bt.prototype,"reflectionFresnelParameters",void 0),F([cP("refractionFresnelParameters")],Bt.prototype,"_refractionFresnelParameters",void 0),F([et("_markAllSubMeshesAsFresnelDirty")],Bt.prototype,"refractionFresnelParameters",void 0),F([cP("emissiveFresnelParameters")],Bt.prototype,"_emissiveFresnelParameters",void 0),F([et("_markAllSubMeshesAsFresnelDirty")],Bt.prototype,"emissiveFresnelParameters",void 0),F([G("useReflectionFresnelFromSpecular")],Bt.prototype,"_useReflectionFresnelFromSpecular",void 0),F([et("_markAllSubMeshesAsFresnelDirty")],Bt.prototype,"useReflectionFresnelFromSpecular",void 0),F([G("useGlossinessFromSpecularMapAlpha")],Bt.prototype,"_useGlossinessFromSpecularMapAlpha",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"useGlossinessFromSpecularMapAlpha",void 0),F([G("maxSimultaneousLights")],Bt.prototype,"_maxSimultaneousLights",void 0),F([et("_markAllSubMeshesAsLightsDirty")],Bt.prototype,"maxSimultaneousLights",void 0),F([G("invertNormalMapX")],Bt.prototype,"_invertNormalMapX",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"invertNormalMapX",void 0),F([G("invertNormalMapY")],Bt.prototype,"_invertNormalMapY",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"invertNormalMapY",void 0),F([G("twoSidedLighting")],Bt.prototype,"_twoSidedLighting",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Bt.prototype,"twoSidedLighting",void 0),F([G("applyDecalMapAfterDetailMap")],Bt.prototype,"_applyDecalMapAfterDetailMap",void 0),F([et("_markAllSubMeshesAsMiscDirty")],Bt.prototype,"applyDecalMapAfterDetailMap",void 0),ve("BABYLON.StandardMaterial",Bt),ui.DefaultMaterialFactory=a=>new Bt("default material",a);const SZ={effect:null,subMesh:null};class Fo extends po{constructor(e,t,i,s={},r=!0){super(e,t,r),this._textures={},this._textureArrays={},this._externalTextures={},this._floats={},this._ints={},this._uints={},this._floatsArrays={},this._colors3={},this._colors3Arrays={},this._colors4={},this._colors4Arrays={},this._vectors2={},this._vectors3={},this._vectors4={},this._quaternions={},this._quaternionsArrays={},this._matrices={},this._matrixArrays={},this._matrices3x3={},this._matrices2x2={},this._vectors2Arrays={},this._vectors3Arrays={},this._vectors4Arrays={},this._uniformBuffers={},this._textureSamplers={},this._storageBuffers={},this._cachedWorldViewMatrix=new me,this._cachedWorldViewProjectionMatrix=new me,this._multiview=!1,this._materialHelperNeedsPreviousMatrices=!1,this._shaderPath=i,this._options={needAlphaBlending:!1,needAlphaTesting:!1,attributes:["position","normal","uv"],uniforms:["worldViewProjection"],uniformBuffers:[],samplers:[],externalTextures:[],samplerObjects:[],storageBuffers:[],defines:[],useClipPlane:!1,...s}}get shaderPath(){return this._shaderPath}set shaderPath(e){this._shaderPath=e}get options(){return this._options}get isMultiview(){return this._multiview}getClassName(){return"ShaderMaterial"}needAlphaBlending(){return this.alpha<1||this._options.needAlphaBlending}needAlphaTesting(){return this._options.needAlphaTesting}_checkUniform(e){this._options.uniforms.indexOf(e)===-1&&this._options.uniforms.push(e)}setTexture(e,t){return this._options.samplers.indexOf(e)===-1&&this._options.samplers.push(e),this._textures[e]=t,this}removeTexture(e){delete this._textures[e]}setTextureArray(e,t){return this._options.samplers.indexOf(e)===-1&&this._options.samplers.push(e),this._checkUniform(e),this._textureArrays[e]=t,this}setExternalTexture(e,t){return this._options.externalTextures.indexOf(e)===-1&&this._options.externalTextures.push(e),this._externalTextures[e]=t,this}setFloat(e,t){return this._checkUniform(e),this._floats[e]=t,this}setInt(e,t){return this._checkUniform(e),this._ints[e]=t,this}setUInt(e,t){return this._checkUniform(e),this._uints[e]=t,this}setFloats(e,t){return this._checkUniform(e),this._floatsArrays[e]=t,this}setColor3(e,t){return this._checkUniform(e),this._colors3[e]=t,this}setColor3Array(e,t){return this._checkUniform(e),this._colors3Arrays[e]=t.reduce((i,s)=>(s.toArray(i,i.length),i),[]),this}setColor4(e,t){return this._checkUniform(e),this._colors4[e]=t,this}setColor4Array(e,t){return this._checkUniform(e),this._colors4Arrays[e]=t.reduce((i,s)=>(s.toArray(i,i.length),i),[]),this}setVector2(e,t){return this._checkUniform(e),this._vectors2[e]=t,this}setVector3(e,t){return this._checkUniform(e),this._vectors3[e]=t,this}setVector4(e,t){return this._checkUniform(e),this._vectors4[e]=t,this}setQuaternion(e,t){return this._checkUniform(e),this._quaternions[e]=t,this}setQuaternionArray(e,t){return this._checkUniform(e),this._quaternionsArrays[e]=t.reduce((i,s)=>(s.toArray(i,i.length),i),[]),this}setMatrix(e,t){return this._checkUniform(e),this._matrices[e]=t,this}setMatrices(e,t){this._checkUniform(e);const i=new Float32Array(t.length*16);for(let s=0;s<t.length;s++)t[s].copyToArray(i,s*16);return this._matrixArrays[e]=i,this}setMatrix3x3(e,t){return this._checkUniform(e),this._matrices3x3[e]=t,this}setMatrix2x2(e,t){return this._checkUniform(e),this._matrices2x2[e]=t,this}setArray2(e,t){return this._checkUniform(e),this._vectors2Arrays[e]=t,this}setArray3(e,t){return this._checkUniform(e),this._vectors3Arrays[e]=t,this}setArray4(e,t){return this._checkUniform(e),this._vectors4Arrays[e]=t,this}setUniformBuffer(e,t){return this._options.uniformBuffers.indexOf(e)===-1&&this._options.uniformBuffers.push(e),this._uniformBuffers[e]=t,this}setTextureSampler(e,t){return this._options.samplerObjects.indexOf(e)===-1&&this._options.samplerObjects.push(e),this._textureSamplers[e]=t,this}setStorageBuffer(e,t){return this._options.storageBuffers.indexOf(e)===-1&&this._options.storageBuffers.push(e),this._storageBuffers[e]=t,this}setDefine(e,t){const i=e.trimEnd()+" ",s=this.options.defines.findIndex(r=>r===e||r.startsWith(i));return s>=0&&this.options.defines.splice(s,1),(typeof t!="boolean"||t)&&this.options.defines.push(i+t),this}isReadyForSubMesh(e,t,i){return this.isReady(e,i,t)}isReady(e,t,i){const s=i&&this._storeEffectOnSubMeshes;if(this.isFrozen){const b=s?i._drawWrapper:this._drawWrapper;if(b.effect&&b._wasPreviouslyReady&&b._wasPreviouslyUsingInstances===t)return!0}const r=this.getScene(),n=r.getEngine(),o=[],l=[];let c=null,u=this._shaderPath,f=this._options.uniforms,p=this._options.uniformBuffers,m=this._options.samplers;n.getCaps().multiview&&r.activeCamera&&r.activeCamera.outputRenderTarget&&r.activeCamera.outputRenderTarget.getViewCount()>1&&(this._multiview=!0,o.push("#define MULTIVIEW"),f.indexOf("viewProjection")!==-1&&f.indexOf("viewProjectionR")===-1&&f.push("viewProjectionR"));for(let b=0;b<this._options.defines.length;b++){const M=this._options.defines[b].indexOf("#define")===0?this._options.defines[b]:`#define ${this._options.defines[b]}`;o.push(M)}for(let b=0;b<this._options.attributes.length;b++)l.push(this._options.attributes[b]);if(e&&e.isVerticesDataPresent(q.ColorKind)&&(l.indexOf(q.ColorKind)===-1&&l.push(q.ColorKind),o.push("#define VERTEXCOLOR")),t&&(o.push("#define INSTANCES"),Qx(l,this._materialHelperNeedsPreviousMatrices),e!=null&&e.hasThinInstances&&(o.push("#define THIN_INSTANCES"),e&&e.isVerticesDataPresent(q.ColorInstanceKind)&&(l.push(q.ColorInstanceKind),o.push("#define INSTANCESCOLOR")))),e&&e.useBones&&e.computeBonesUsingShaders&&e.skeleton){l.push(q.MatricesIndicesKind),l.push(q.MatricesWeightsKind),e.numBoneInfluencers>4&&(l.push(q.MatricesIndicesExtraKind),l.push(q.MatricesWeightsExtraKind));const b=e.skeleton;o.push("#define NUM_BONE_INFLUENCERS "+e.numBoneInfluencers),c=new Ra,c.addCPUSkinningFallback(0,e),b.isUsingTextureForMatrices?(o.push("#define BONETEXTURE"),f.indexOf("boneTextureWidth")===-1&&f.push("boneTextureWidth"),this._options.samplers.indexOf("boneSampler")===-1&&this._options.samplers.push("boneSampler")):(o.push("#define BonesPerMesh "+(b.bones.length+1)),f.indexOf("mBones")===-1&&f.push("mBones"))}else o.push("#define NUM_BONE_INFLUENCERS 0");let _=0;const d=e?e.morphTargetManager:null;if(d){const b=o.indexOf("#define UV1")!==-1,M=o.indexOf("#define UV2")!==-1,T=o.indexOf("#define TANGENT")!==-1,O=o.indexOf("#define NORMAL")!==-1,R=o.indexOf("#define VERTEXCOLOR")!==-1;_=xy(d,o,l,e,!0,O,T,b,M,R),d.isUsingTextureForTargets&&(f.indexOf("morphTargetTextureIndices")===-1&&f.push("morphTargetTextureIndices"),this._options.samplers.indexOf("morphTargets")===-1&&this._options.samplers.push("morphTargets")),_>0&&(f=f.slice(),f.push("morphTargetInfluences"),f.push("morphTargetCount"),f.push("morphTargetTextureInfo"),f.push("morphTargetTextureIndices"))}else o.push("#define NUM_MORPH_INFLUENCERS 0");if(e){const b=e.bakedVertexAnimationManager;b&&b.isEnabled&&(o.push("#define BAKED_VERTEX_ANIMATION_TEXTURE"),f.indexOf("bakedVertexAnimationSettings")===-1&&f.push("bakedVertexAnimationSettings"),f.indexOf("bakedVertexAnimationTextureSizeInverted")===-1&&f.push("bakedVertexAnimationTextureSizeInverted"),f.indexOf("bakedVertexAnimationTime")===-1&&f.push("bakedVertexAnimationTime"),this._options.samplers.indexOf("bakedVertexAnimationTexture")===-1&&this._options.samplers.push("bakedVertexAnimationTexture")),CP(l,e,o)}for(const b in this._textures)if(!this._textures[b].isReady())return!1;e&&this.needAlphaTestingForMesh(e)&&o.push("#define ALPHATEST"),this._options.useClipPlane!==!1&&(qo(f),Cy(this,r,o)),r.fogEnabled&&(e!=null&&e.applyFog)&&r.fogMode!==ui.FOGMODE_NONE&&(o.push("#define FOG"),f.indexOf("view")===-1&&f.push("view"),f.indexOf("vFogInfos")===-1&&f.push("vFogInfos"),f.indexOf("vFogColor")===-1&&f.push("vFogColor")),this._useLogarithmicDepth&&(o.push("#define LOGARITHMICDEPTH"),f.indexOf("logarithmicDepthConstant")===-1&&f.push("logarithmicDepthConstant")),this.customShaderNameResolve&&(f=f.slice(),p=p.slice(),m=m.slice(),u=this.customShaderNameResolve(this.name,f,p,m,o,l));const h=s?i._getDrawWrapper(void 0,!0):this._drawWrapper,x=(h==null?void 0:h.effect)??null,A=(h==null?void 0:h.defines)??null,S=o.join(`
`);let E=x;return A!==S&&(E=n.createEffect(u,{attributes:l,uniformsNames:f,uniformBuffersNames:p,samplers:m,defines:S,fallbacks:c,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousMorphTargets:_},shaderLanguage:this._options.shaderLanguage,extraInitializationsAsync:this._options.extraInitializationsAsync},n),s?i.setEffect(E,S,this._materialContext):h&&h.setEffect(E,S),this._onEffectCreatedObservable&&(SZ.effect=E,SZ.subMesh=i??(e==null?void 0:e.subMeshes[0])??null,this._onEffectCreatedObservable.notifyObservers(SZ))),h._wasPreviouslyUsingInstances=!!t,E!=null&&E.isReady()?(x!==E&&r.resetCachedMaterial(),h._wasPreviouslyReady=!0,!0):!1}bindOnlyWorldMatrix(e,t){const i=t??this.getEffect();if(!i)return;const s=this._options.uniforms;s.indexOf("world")!==-1&&i.setMatrix("world",e);const r=this.getScene();s.indexOf("worldView")!==-1&&(e.multiplyToRef(r.getViewMatrix(),this._cachedWorldViewMatrix),i.setMatrix("worldView",this._cachedWorldViewMatrix)),s.indexOf("worldViewProjection")!==-1&&(e.multiplyToRef(r.getTransformMatrix(),this._cachedWorldViewProjectionMatrix),i.setMatrix("worldViewProjection",this._cachedWorldViewProjectionMatrix)),s.indexOf("view")!==-1&&i.setMatrix("view",r.getViewMatrix())}bindForSubMesh(e,t,i){var s;this.bind(e,t,(s=i._drawWrapperOverride)==null?void 0:s.effect,i)}bind(e,t,i,s){var f;const r=s&&this._storeEffectOnSubMeshes,n=i??(r?s.effect:this.getEffect());if(!n)return;const o=this.getScene();this._activeEffect=n,this.bindOnlyWorldMatrix(e,i);const l=this._options.uniformBuffers;let c=!1;if(n&&l&&l.length>0&&o.getEngine().supportsUniformBuffers)for(let p=0;p<l.length;++p)switch(l[p]){case"Mesh":t&&(t.getMeshUniformBuffer().bindToEffect(n,"Mesh"),t.transferToEffect(e));break;case"Scene":AP(n,o.getSceneUniformBuffer()),o.finalizeSceneUbo(),c=!0;break}const u=t&&r?this._mustRebind(o,n,s,t.visibility):o.getCachedMaterial()!==this;if(n&&u){!c&&this._options.uniforms.indexOf("view")!==-1&&n.setMatrix("view",o.getViewMatrix()),!c&&this._options.uniforms.indexOf("projection")!==-1&&n.setMatrix("projection",o.getProjectionMatrix()),!c&&this._options.uniforms.indexOf("viewProjection")!==-1&&(n.setMatrix("viewProjection",o.getTransformMatrix()),this._multiview&&n.setMatrix("viewProjectionR",o._transformMatrixR)),o.activeCamera&&this._options.uniforms.indexOf("cameraPosition")!==-1&&n.setVector3("cameraPosition",o.activeCamera.globalPosition),Pc(t,n),Bo(n,this,o),this._useLogarithmicDepth&&ml(r?s.materialDefines:n.defines,n,o),t&&Ic(o,t,n);let p;for(p in this._textures)n.setTexture(p,this._textures[p]);for(p in this._textureArrays)n.setTextureArray(p,this._textureArrays[p]);for(p in this._ints)n.setInt(p,this._ints[p]);for(p in this._uints)n.setUInt(p,this._uints[p]);for(p in this._floats)n.setFloat(p,this._floats[p]);for(p in this._floatsArrays)n.setArray(p,this._floatsArrays[p]);for(p in this._colors3)n.setColor3(p,this._colors3[p]);for(p in this._colors3Arrays)n.setArray3(p,this._colors3Arrays[p]);for(p in this._colors4){const x=this._colors4[p];n.setFloat4(p,x.r,x.g,x.b,x.a)}for(p in this._colors4Arrays)n.setArray4(p,this._colors4Arrays[p]);for(p in this._vectors2)n.setVector2(p,this._vectors2[p]);for(p in this._vectors3)n.setVector3(p,this._vectors3[p]);for(p in this._vectors4)n.setVector4(p,this._vectors4[p]);for(p in this._quaternions)n.setQuaternion(p,this._quaternions[p]);for(p in this._matrices)n.setMatrix(p,this._matrices[p]);for(p in this._matrixArrays)n.setMatrices(p,this._matrixArrays[p]);for(p in this._matrices3x3)n.setMatrix3x3(p,this._matrices3x3[p]);for(p in this._matrices2x2)n.setMatrix2x2(p,this._matrices2x2[p]);for(p in this._vectors2Arrays)n.setArray2(p,this._vectors2Arrays[p]);for(p in this._vectors3Arrays)n.setArray3(p,this._vectors3Arrays[p]);for(p in this._vectors4Arrays)n.setArray4(p,this._vectors4Arrays[p]);for(p in this._quaternionsArrays)n.setArray4(p,this._quaternionsArrays[p]);for(p in this._uniformBuffers){const x=this._uniformBuffers[p].getBuffer();x&&n.bindUniformBuffer(x,p)}const m=o.getEngine(),_=m.setExternalTexture;if(_)for(p in this._externalTextures)_.call(m,p,this._externalTextures[p]);const d=m.setTextureSampler;if(d)for(p in this._textureSamplers)d.call(m,p,this._textureSamplers[p]);const h=m.setStorageBuffer;if(h)for(p in this._storageBuffers)h.call(m,p,this._storageBuffers[p])}if(n&&t&&(u||!this.isFrozen)){s3(t,n),t.morphTargetManager&&t.morphTargetManager.isUsingTextureForTargets&&t.morphTargetManager._bind(n);const p=t.bakedVertexAnimationManager;if(p&&p.isEnabled){const m=r?s._drawWrapper:this._drawWrapper;(f=t.bakedVertexAnimationManager)==null||f.bind(n,!!m._wasPreviouslyUsingInstances)}}this._afterBind(t,n,s)}getActiveTextures(){const e=super.getActiveTextures();for(const t in this._textures)e.push(this._textures[t]);for(const t in this._textureArrays){const i=this._textureArrays[t];for(let s=0;s<i.length;s++)e.push(i[s])}return e}hasTexture(e){if(super.hasTexture(e))return!0;for(const t in this._textures)if(this._textures[t]===e)return!0;for(const t in this._textureArrays){const i=this._textureArrays[t];for(let s=0;s<i.length;s++)if(i[s]===e)return!0}return!1}clone(e){const t=It.Clone(()=>new Fo(e,this.getScene(),this._shaderPath,this._options,this._storeEffectOnSubMeshes),this);t.name=e,t.id=e,typeof t._shaderPath=="object"&&(t._shaderPath={...t._shaderPath}),this._options={...this._options},Object.keys(this._options).forEach(i=>{const s=this._options[i];Array.isArray(s)&&(this._options[i]=s.slice(0))}),this.stencil.copyTo(t.stencil);for(const i in this._textures)t.setTexture(i,this._textures[i]);for(const i in this._textureArrays)t.setTextureArray(i,this._textureArrays[i]);for(const i in this._externalTextures)t.setExternalTexture(i,this._externalTextures[i]);for(const i in this._ints)t.setInt(i,this._ints[i]);for(const i in this._uints)t.setUInt(i,this._uints[i]);for(const i in this._floats)t.setFloat(i,this._floats[i]);for(const i in this._floatsArrays)t.setFloats(i,this._floatsArrays[i]);for(const i in this._colors3)t.setColor3(i,this._colors3[i]);for(const i in this._colors3Arrays)t._colors3Arrays[i]=this._colors3Arrays[i];for(const i in this._colors4)t.setColor4(i,this._colors4[i]);for(const i in this._colors4Arrays)t._colors4Arrays[i]=this._colors4Arrays[i];for(const i in this._vectors2)t.setVector2(i,this._vectors2[i]);for(const i in this._vectors3)t.setVector3(i,this._vectors3[i]);for(const i in this._vectors4)t.setVector4(i,this._vectors4[i]);for(const i in this._quaternions)t.setQuaternion(i,this._quaternions[i]);for(const i in this._quaternionsArrays)t._quaternionsArrays[i]=this._quaternionsArrays[i];for(const i in this._matrices)t.setMatrix(i,this._matrices[i]);for(const i in this._matrixArrays)t._matrixArrays[i]=this._matrixArrays[i].slice();for(const i in this._matrices3x3)t.setMatrix3x3(i,this._matrices3x3[i]);for(const i in this._matrices2x2)t.setMatrix2x2(i,this._matrices2x2[i]);for(const i in this._vectors2Arrays)t.setArray2(i,this._vectors2Arrays[i]);for(const i in this._vectors3Arrays)t.setArray3(i,this._vectors3Arrays[i]);for(const i in this._vectors4Arrays)t.setArray4(i,this._vectors4Arrays[i]);for(const i in this._uniformBuffers)t.setUniformBuffer(i,this._uniformBuffers[i]);for(const i in this._textureSamplers)t.setTextureSampler(i,this._textureSamplers[i]);for(const i in this._storageBuffers)t.setStorageBuffer(i,this._storageBuffers[i]);return t}dispose(e,t,i){if(t){let s;for(s in this._textures)this._textures[s].dispose();for(s in this._textureArrays){const r=this._textureArrays[s];for(let n=0;n<r.length;n++)r[n].dispose()}}this._textures={},super.dispose(e,t,i)}serialize(){const e=It.Serialize(this);e.customType="BABYLON.ShaderMaterial",e.uniqueId=this.uniqueId,e.options=this._options,e.shaderPath=this._shaderPath,e.storeEffectOnSubMeshes=this._storeEffectOnSubMeshes;let t;e.stencil=this.stencil.serialize(),e.textures={};for(t in this._textures)e.textures[t]=this._textures[t].serialize();e.textureArrays={};for(t in this._textureArrays){e.textureArrays[t]=[];const i=this._textureArrays[t];for(let s=0;s<i.length;s++)e.textureArrays[t].push(i[s].serialize())}e.ints={};for(t in this._ints)e.ints[t]=this._ints[t];e.uints={};for(t in this._uints)e.uints[t]=this._uints[t];e.floats={};for(t in this._floats)e.floats[t]=this._floats[t];e.floatsArrays={};for(t in this._floatsArrays)e.floatsArrays[t]=this._floatsArrays[t];e.colors3={};for(t in this._colors3)e.colors3[t]=this._colors3[t].asArray();e.colors3Arrays={};for(t in this._colors3Arrays)e.colors3Arrays[t]=this._colors3Arrays[t];e.colors4={};for(t in this._colors4)e.colors4[t]=this._colors4[t].asArray();e.colors4Arrays={};for(t in this._colors4Arrays)e.colors4Arrays[t]=this._colors4Arrays[t];e.vectors2={};for(t in this._vectors2){const i=this._vectors2[t];e.vectors2[t]=[i.x,i.y]}e.vectors3={};for(t in this._vectors3){const i=this._vectors3[t];e.vectors3[t]=[i.x,i.y,i.z]}e.vectors4={};for(t in this._vectors4){const i=this._vectors4[t];e.vectors4[t]=[i.x,i.y,i.z,i.w]}e.quaternions={};for(t in this._quaternions)e.quaternions[t]=this._quaternions[t].asArray();e.matrices={};for(t in this._matrices)e.matrices[t]=this._matrices[t].asArray();e.matrixArray={};for(t in this._matrixArrays)e.matrixArray[t]=this._matrixArrays[t];e.matrices3x3={};for(t in this._matrices3x3)e.matrices3x3[t]=this._matrices3x3[t];e.matrices2x2={};for(t in this._matrices2x2)e.matrices2x2[t]=this._matrices2x2[t];e.vectors2Arrays={};for(t in this._vectors2Arrays)e.vectors2Arrays[t]=this._vectors2Arrays[t];e.vectors3Arrays={};for(t in this._vectors3Arrays)e.vectors3Arrays[t]=this._vectors3Arrays[t];e.vectors4Arrays={};for(t in this._vectors4Arrays)e.vectors4Arrays[t]=this._vectors4Arrays[t];e.quaternionsArrays={};for(t in this._quaternionsArrays)e.quaternionsArrays[t]=this._quaternionsArrays[t];return e}static Parse(e,t,i){const s=It.Parse(()=>new Fo(e.name,t,e.shaderPath,e.options,e.storeEffectOnSubMeshes),e,t,i);let r;e.stencil&&s.stencil.parse(e.stencil,t,i);for(r in e.textures)s.setTexture(r,be.Parse(e.textures[r],t,i));for(r in e.textureArrays){const n=e.textureArrays[r],o=[];for(let l=0;l<n.length;l++)o.push(be.Parse(n[l],t,i));s.setTextureArray(r,o)}for(r in e.ints)s.setInt(r,e.ints[r]);for(r in e.uints)s.setUInt(r,e.uints[r]);for(r in e.floats)s.setFloat(r,e.floats[r]);for(r in e.floatsArrays)s.setFloats(r,e.floatsArrays[r]);for(r in e.colors3)s.setColor3(r,Pe.FromArray(e.colors3[r]));for(r in e.colors3Arrays){const n=e.colors3Arrays[r].reduce((o,l,c)=>(c%3===0?o.push([l]):o[o.length-1].push(l),o),[]).map(o=>Pe.FromArray(o));s.setColor3Array(r,n)}for(r in e.colors4)s.setColor4(r,St.FromArray(e.colors4[r]));for(r in e.colors4Arrays){const n=e.colors4Arrays[r].reduce((o,l,c)=>(c%4===0?o.push([l]):o[o.length-1].push(l),o),[]).map(o=>St.FromArray(o));s.setColor4Array(r,n)}for(r in e.vectors2)s.setVector2(r,Ue.FromArray(e.vectors2[r]));for(r in e.vectors3)s.setVector3(r,P.FromArray(e.vectors3[r]));for(r in e.vectors4)s.setVector4(r,Yt.FromArray(e.vectors4[r]));for(r in e.quaternions)s.setQuaternion(r,Re.FromArray(e.quaternions[r]));for(r in e.matrices)s.setMatrix(r,me.FromArray(e.matrices[r]));for(r in e.matrixArray)s._matrixArrays[r]=new Float32Array(e.matrixArray[r]);for(r in e.matrices3x3)s.setMatrix3x3(r,e.matrices3x3[r]);for(r in e.matrices2x2)s.setMatrix2x2(r,e.matrices2x2[r]);for(r in e.vectors2Arrays)s.setArray2(r,e.vectors2Arrays[r]);for(r in e.vectors3Arrays)s.setArray3(r,e.vectors3Arrays[r]);for(r in e.vectors4Arrays)s.setArray4(r,e.vectors4Arrays[r]);for(r in e.quaternionsArrays)s.setArray4(r,e.quaternionsArrays[r]);return s}static ParseFromFileAsync(e,t,i,s=""){return new Promise((r,n)=>{const o=new ha;o.addEventListener("readystatechange",()=>{if(o.readyState==4)if(o.status==200){const l=JSON.parse(o.responseText),c=this.Parse(l,i||ei.LastCreatedScene,s);e&&(c.name=e),r(c)}else n("Unable to load the ShaderMaterial")}),o.open("GET",t),o.send()})}static ParseFromSnippetAsync(e,t,i=""){return new Promise((s,r)=>{const n=new ha;n.addEventListener("readystatechange",()=>{if(n.readyState==4)if(n.status==200){const o=JSON.parse(JSON.parse(n.responseText).jsonPayload),l=JSON.parse(o.shaderMaterial),c=this.Parse(l,t||ei.LastCreatedScene,i);c.snippetId=e,s(c)}else r("Unable to load the snippet "+e)}),n.open("GET",this.SnippetUrl+"/"+e.replace(/#/g,"/")),n.send()})}}Fo.SnippetUrl="https://snippet.babylonjs.com",Fo.CreateFromSnippetAsync=Fo.ParseFromSnippetAsync,ve("BABYLON.ShaderMaterial",Fo),Rr.AddNodeConstructor("Light_Type_3",(a,e)=>()=>new b4(a,P.Zero(),e));class b4 extends vs{constructor(e,t,i){super(e,i),this.groundColor=new Pe(0,0,0),this.direction=t||P.Up()}_buildUniformLayout(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("vLightGround",3),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()}getClassName(){return"HemisphericLight"}setDirectionToTarget(e){return this.direction=P.Normalize(e.subtract(P.Zero())),this.direction}getShadowGenerator(){return null}transferToEffect(e,t){const i=P.Normalize(this.direction);return this._uniformBuffer.updateFloat4("vLightData",i.x,i.y,i.z,0,t),this._uniformBuffer.updateColor3("vLightGround",this.groundColor.scale(this.intensity),t),this}transferToNodeMaterialEffect(e,t){const i=P.Normalize(this.direction);return e.setFloat3(t,i.x,i.y,i.z),this}computeWorldMatrix(){return this._worldMatrix||(this._worldMatrix=me.Identity()),this._worldMatrix}getTypeID(){return vs.LIGHTTYPEID_HEMISPHERICLIGHT}prepareLightSpecificDefines(e,t){e["HEMILIGHT"+t]=!0}}F([qs()],b4.prototype,"groundColor",void 0),F([Ma()],b4.prototype,"direction",void 0),ve("BABYLON.HemisphericLight",b4);class My extends vs{constructor(){super(...arguments),this._needProjectionMatrixCompute=!0,this._viewMatrix=me.Identity(),this._projectionMatrix=me.Identity()}_setPosition(e){this._position=e}get position(){return this._position}set position(e){this._setPosition(e)}_setDirection(e){this._direction=e}get direction(){return this._direction}set direction(e){this._setDirection(e)}get shadowMinZ(){return this._shadowMinZ}set shadowMinZ(e){this._shadowMinZ=e,this.forceProjectionMatrixCompute()}get shadowMaxZ(){return this._shadowMaxZ}set shadowMaxZ(e){this._shadowMaxZ=e,this.forceProjectionMatrixCompute()}computeTransformedInformation(){return this.parent&&this.parent.getWorldMatrix?(this.transformedPosition||(this.transformedPosition=P.Zero()),P.TransformCoordinatesToRef(this.position,this.parent.getWorldMatrix(),this.transformedPosition),this.direction&&(this.transformedDirection||(this.transformedDirection=P.Zero()),P.TransformNormalToRef(this.direction,this.parent.getWorldMatrix(),this.transformedDirection)),!0):!1}getDepthScale(){return 50}getShadowDirection(e){return this.transformedDirection?this.transformedDirection:this.direction}getAbsolutePosition(){return this.transformedPosition?this.transformedPosition:this.position}setDirectionToTarget(e){return this.direction=P.Normalize(e.subtract(this.position)),this.direction}getRotation(){this.direction.normalize();const e=P.Cross(this.direction,fo.Y),t=P.Cross(e,this.direction);return P.RotationFromAxis(e,t,this.direction)}needCube(){return!1}needProjectionMatrixCompute(){return this._needProjectionMatrixCompute}forceProjectionMatrixCompute(){this._needProjectionMatrixCompute=!0}_initCache(){super._initCache(),this._cache.position=P.Zero()}_isSynchronized(){return!!this._cache.position.equals(this.position)}computeWorldMatrix(e){return!e&&this.isSynchronized()?(this._currentRenderId=this.getScene().getRenderId(),this._worldMatrix):(this._updateCache(),this._cache.position.copyFrom(this.position),this._worldMatrix||(this._worldMatrix=me.Identity()),me.TranslationToRef(this.position.x,this.position.y,this.position.z,this._worldMatrix),this.parent&&this.parent.getWorldMatrix&&(this._worldMatrix.multiplyToRef(this.parent.getWorldMatrix(),this._worldMatrix),this._markSyncedWithParent()),this._worldMatrixDeterminantIsDirty=!0,this._worldMatrix)}getDepthMinZ(e){return this.shadowMinZ!==void 0?this.shadowMinZ:(e==null?void 0:e.minZ)||0}getDepthMaxZ(e){return this.shadowMaxZ!==void 0?this.shadowMaxZ:(e==null?void 0:e.maxZ)||1e4}setShadowProjectionMatrix(e,t,i){return this.customProjectionMatrixBuilder?this.customProjectionMatrixBuilder(t,i,e):this._setDefaultShadowProjectionMatrix(e,t,i),this}_syncParentEnabledState(){super._syncParentEnabledState(),(!this.parent||!this.parent.getWorldMatrix)&&(this.transformedPosition=null,this.transformedDirection=null)}getViewMatrix(e){const t=ae.Vector3[0];let i=this.position;this.computeTransformedInformation()&&(i=this.transformedPosition),P.NormalizeToRef(this.getShadowDirection(e),t),Math.abs(P.Dot(t,P.Up()))===1&&(t.z=1e-13);const s=ae.Vector3[1];return i.addToRef(t,s),me.LookAtLHToRef(i,s,P.Up(),this._viewMatrix),this._viewMatrix}getProjectionMatrix(e,t){return this.setShadowProjectionMatrix(this._projectionMatrix,e??this._viewMatrix,t??[]),this._projectionMatrix}}F([Ma()],My.prototype,"position",null),F([Ma()],My.prototype,"direction",null),F([G()],My.prototype,"shadowMinZ",null),F([G()],My.prototype,"shadowMaxZ",null),Rr.AddNodeConstructor("Light_Type_1",(a,e)=>()=>new W1(a,P.Zero(),e));class W1 extends My{get shadowFrustumSize(){return this._shadowFrustumSize}set shadowFrustumSize(e){this._shadowFrustumSize=e,this.forceProjectionMatrixCompute()}get shadowOrthoScale(){return this._shadowOrthoScale}set shadowOrthoScale(e){this._shadowOrthoScale=e,this.forceProjectionMatrixCompute()}get orthoLeft(){return this._orthoLeft}set orthoLeft(e){this._orthoLeft=e}get orthoRight(){return this._orthoRight}set orthoRight(e){this._orthoRight=e}get orthoTop(){return this._orthoTop}set orthoTop(e){this._orthoTop=e}get orthoBottom(){return this._orthoBottom}set orthoBottom(e){this._orthoBottom=e}constructor(e,t,i){super(e,i),this._shadowFrustumSize=0,this._shadowOrthoScale=.1,this.autoUpdateExtends=!0,this.autoCalcShadowZBounds=!1,this._orthoLeft=Number.MAX_VALUE,this._orthoRight=Number.MIN_VALUE,this._orthoTop=Number.MIN_VALUE,this._orthoBottom=Number.MAX_VALUE,this.position=t.scale(-1),this.direction=t}getClassName(){return"DirectionalLight"}getTypeID(){return vs.LIGHTTYPEID_DIRECTIONALLIGHT}_setDefaultShadowProjectionMatrix(e,t,i){this.shadowFrustumSize>0?this._setDefaultFixedFrustumShadowProjectionMatrix(e):this._setDefaultAutoExtendShadowProjectionMatrix(e,t,i)}_setDefaultFixedFrustumShadowProjectionMatrix(e){const t=this.getScene().activeCamera;t&&me.OrthoLHToRef(this.shadowFrustumSize,this.shadowFrustumSize,this.shadowMinZ!==void 0?this.shadowMinZ:t.minZ,this.shadowMaxZ!==void 0?this.shadowMaxZ:t.maxZ,e,this.getScene().getEngine().isNDCHalfZRange)}_setDefaultAutoExtendShadowProjectionMatrix(e,t,i){const s=this.getScene().activeCamera;if(this.autoUpdateExtends||this._orthoLeft===Number.MAX_VALUE){const u=P.Zero();this._orthoLeft=Number.MAX_VALUE,this._orthoRight=-Number.MAX_VALUE,this._orthoTop=-Number.MAX_VALUE,this._orthoBottom=Number.MAX_VALUE;let f=Number.MAX_VALUE,p=-Number.MAX_VALUE;for(let m=0;m<i.length;m++){const _=i[m];if(!_)continue;const h=_.getBoundingInfo().boundingBox;for(let x=0;x<h.vectorsWorld.length;x++)P.TransformCoordinatesToRef(h.vectorsWorld[x],t,u),u.x<this._orthoLeft&&(this._orthoLeft=u.x),u.y<this._orthoBottom&&(this._orthoBottom=u.y),u.x>this._orthoRight&&(this._orthoRight=u.x),u.y>this._orthoTop&&(this._orthoTop=u.y),this.autoCalcShadowZBounds&&(u.z<f&&(f=u.z),u.z>p&&(p=u.z))}this.autoCalcShadowZBounds&&(this._shadowMinZ=f,this._shadowMaxZ=p)}const r=this._orthoRight-this._orthoLeft,n=this._orthoTop-this._orthoBottom,o=this.shadowMinZ!==void 0?this.shadowMinZ:(s==null?void 0:s.minZ)||0,l=this.shadowMaxZ!==void 0?this.shadowMaxZ:(s==null?void 0:s.maxZ)||1e4,c=this.getScene().getEngine().useReverseDepthBuffer;me.OrthoOffCenterLHToRef(this._orthoLeft-r*this.shadowOrthoScale,this._orthoRight+r*this.shadowOrthoScale,this._orthoBottom-n*this.shadowOrthoScale,this._orthoTop+n*this.shadowOrthoScale,c?l:o,c?o:l,e,this.getScene().getEngine().isNDCHalfZRange)}_buildUniformLayout(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()}transferToEffect(e,t){return this.computeTransformedInformation()?(this._uniformBuffer.updateFloat4("vLightData",this.transformedDirection.x,this.transformedDirection.y,this.transformedDirection.z,1,t),this):(this._uniformBuffer.updateFloat4("vLightData",this.direction.x,this.direction.y,this.direction.z,1,t),this)}transferToNodeMaterialEffect(e,t){return this.computeTransformedInformation()?(e.setFloat3(t,this.transformedDirection.x,this.transformedDirection.y,this.transformedDirection.z),this):(e.setFloat3(t,this.direction.x,this.direction.y,this.direction.z),this)}getDepthMinZ(e){const t=this._scene.getEngine();return!t.useReverseDepthBuffer&&t.isNDCHalfZRange?0:1}getDepthMaxZ(e){const t=this._scene.getEngine();return t.useReverseDepthBuffer&&t.isNDCHalfZRange?0:1}prepareLightSpecificDefines(e,t){e["DIRLIGHT"+t]=!0}}F([G()],W1.prototype,"shadowFrustumSize",null),F([G()],W1.prototype,"shadowOrthoScale",null),F([G()],W1.prototype,"autoUpdateExtends",void 0),F([G()],W1.prototype,"autoCalcShadowZBounds",void 0),F([G("orthoLeft")],W1.prototype,"_orthoLeft",void 0),F([G("orthoRight")],W1.prototype,"_orthoRight",void 0),F([G("orthoTop")],W1.prototype,"_orthoTop",void 0),F([G("orthoBottom")],W1.prototype,"_orthoBottom",void 0),ve("BABYLON.DirectionalLight",W1),Rr.AddNodeConstructor("Light_Type_0",(a,e)=>()=>new NT(a,P.Zero(),e));class NT extends My{get shadowAngle(){return this._shadowAngle}set shadowAngle(e){this._shadowAngle=e,this.forceProjectionMatrixCompute()}get direction(){return this._direction}set direction(e){const t=this.needCube();if(this._direction=e,this.needCube()!==t&&this._shadowGenerators){const i=this._shadowGenerators.values();for(let s=i.next();s.done!==!0;s=i.next())s.value.recreateShadowMap()}}constructor(e,t,i){super(e,i),this._shadowAngle=Math.PI/2,this.position=t}getClassName(){return"PointLight"}getTypeID(){return vs.LIGHTTYPEID_POINTLIGHT}needCube(){return!this.direction}getShadowDirection(e){if(this.direction)return super.getShadowDirection(e);switch(e){case 0:return new P(1,0,0);case 1:return new P(-1,0,0);case 2:return new P(0,-1,0);case 3:return new P(0,1,0);case 4:return new P(0,0,1);case 5:return new P(0,0,-1)}return P.Zero()}_setDefaultShadowProjectionMatrix(e,t,i){const s=this.getScene().activeCamera;if(!s)return;const r=this.shadowMinZ!==void 0?this.shadowMinZ:s.minZ,n=this.shadowMaxZ!==void 0?this.shadowMaxZ:s.maxZ,o=this.getScene().getEngine().useReverseDepthBuffer;me.PerspectiveFovLHToRef(this.shadowAngle,1,o?n:r,o?r:n,e,!0,this._scene.getEngine().isNDCHalfZRange,void 0,o)}_buildUniformLayout(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("vLightFalloff",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()}transferToEffect(e,t){return this.computeTransformedInformation()?this._uniformBuffer.updateFloat4("vLightData",this.transformedPosition.x,this.transformedPosition.y,this.transformedPosition.z,0,t):this._uniformBuffer.updateFloat4("vLightData",this.position.x,this.position.y,this.position.z,0,t),this._uniformBuffer.updateFloat4("vLightFalloff",this.range,this._inverseSquaredRange,0,0,t),this}transferToNodeMaterialEffect(e,t){return this.computeTransformedInformation()?e.setFloat3(t,this.transformedPosition.x,this.transformedPosition.y,this.transformedPosition.z):e.setFloat3(t,this.position.x,this.position.y,this.position.z),this}prepareLightSpecificDefines(e,t){e["POINTLIGHT"+t]=!0}}F([G()],NT.prototype,"shadowAngle",null),ve("BABYLON.PointLight",NT),Rr.AddNodeConstructor("Light_Type_2",(a,e)=>()=>new $o(a,P.Zero(),P.Zero(),0,0,e));class $o extends My{get iesProfileTexture(){return this._iesProfileTexture}set iesProfileTexture(e){this._iesProfileTexture!==e&&(this._iesProfileTexture=e,this._iesProfileTexture&&$o._IsTexture(this._iesProfileTexture)&&this._iesProfileTexture.onLoadObservable.addOnce(()=>{this._markMeshesAsLightDirty()}))}get angle(){return this._angle}set angle(e){this._angle=e,this._cosHalfAngle=Math.cos(e*.5),this._projectionTextureProjectionLightDirty=!0,this.forceProjectionMatrixCompute(),this._computeAngleValues()}get innerAngle(){return this._innerAngle}set innerAngle(e){this._innerAngle=e,this._computeAngleValues()}get shadowAngleScale(){return this._shadowAngleScale}set shadowAngleScale(e){this._shadowAngleScale=e,this.forceProjectionMatrixCompute()}get projectionTextureMatrix(){return this._projectionTextureMatrix}get projectionTextureLightNear(){return this._projectionTextureLightNear}set projectionTextureLightNear(e){this._projectionTextureLightNear=e,this._projectionTextureProjectionLightDirty=!0}get projectionTextureLightFar(){return this._projectionTextureLightFar}set projectionTextureLightFar(e){this._projectionTextureLightFar=e,this._projectionTextureProjectionLightDirty=!0}get projectionTextureUpDirection(){return this._projectionTextureUpDirection}set projectionTextureUpDirection(e){this._projectionTextureUpDirection=e,this._projectionTextureProjectionLightDirty=!0}get projectionTexture(){return this._projectionTexture}set projectionTexture(e){this._projectionTexture!==e&&(this._projectionTexture=e,this._projectionTextureDirty=!0,this._projectionTexture&&!this._projectionTexture.isReady()&&($o._IsProceduralTexture(this._projectionTexture)?this._projectionTexture.getEffect().executeWhenCompiled(()=>{this._markMeshesAsLightDirty()}):$o._IsTexture(this._projectionTexture)&&this._projectionTexture.onLoadObservable.addOnce(()=>{this._markMeshesAsLightDirty()})))}static _IsProceduralTexture(e){return e.onGeneratedObservable!==void 0}static _IsTexture(e){return e.onLoadObservable!==void 0}get projectionTextureProjectionLightMatrix(){return this._projectionTextureProjectionLightMatrix}set projectionTextureProjectionLightMatrix(e){this._projectionTextureProjectionLightMatrix=e,this._projectionTextureProjectionLightDirty=!1,this._projectionTextureDirty=!0}constructor(e,t,i,s,r,n){super(e,n),this._innerAngle=0,this._iesProfileTexture=null,this._projectionTextureMatrix=me.Zero(),this._projectionTextureLightNear=1e-6,this._projectionTextureLightFar=1e3,this._projectionTextureUpDirection=P.Up(),this._projectionTextureViewLightDirty=!0,this._projectionTextureProjectionLightDirty=!0,this._projectionTextureDirty=!0,this._projectionTextureViewTargetVector=P.Zero(),this._projectionTextureViewLightMatrix=me.Zero(),this._projectionTextureProjectionLightMatrix=me.Zero(),this._projectionTextureScalingMatrix=me.FromValues(.5,0,0,0,0,.5,0,0,0,0,.5,0,.5,.5,.5,1),this.position=t,this.direction=i,this.angle=s,this.exponent=r}getClassName(){return"SpotLight"}getTypeID(){return vs.LIGHTTYPEID_SPOTLIGHT}_setDirection(e){super._setDirection(e),this._projectionTextureViewLightDirty=!0}_setPosition(e){super._setPosition(e),this._projectionTextureViewLightDirty=!0}_setDefaultShadowProjectionMatrix(e,t,i){const s=this.getScene().activeCamera;if(!s)return;this._shadowAngleScale=this._shadowAngleScale||1;const r=this._shadowAngleScale*this._angle,n=this.shadowMinZ!==void 0?this.shadowMinZ:s.minZ,o=this.shadowMaxZ!==void 0?this.shadowMaxZ:s.maxZ,l=this.getScene().getEngine().useReverseDepthBuffer;me.PerspectiveFovLHToRef(r,1,l?o:n,l?n:o,e,!0,this._scene.getEngine().isNDCHalfZRange,void 0,l)}_computeProjectionTextureViewLightMatrix(){this._projectionTextureViewLightDirty=!1,this._projectionTextureDirty=!0,this.getAbsolutePosition().addToRef(this.getShadowDirection(),this._projectionTextureViewTargetVector),me.LookAtLHToRef(this.getAbsolutePosition(),this._projectionTextureViewTargetVector,this._projectionTextureUpDirection,this._projectionTextureViewLightMatrix)}_computeProjectionTextureProjectionLightMatrix(){this._projectionTextureProjectionLightDirty=!1,this._projectionTextureDirty=!0;const e=this.projectionTextureLightFar,t=this.projectionTextureLightNear,i=e/(e-t),s=-i*t,r=1/Math.tan(this._angle/2);me.FromValuesToRef(r/1,0,0,0,0,r,0,0,0,0,i,1,0,0,s,0,this._projectionTextureProjectionLightMatrix)}_computeProjectionTextureMatrix(){if(this._projectionTextureDirty=!1,this._projectionTextureViewLightMatrix.multiplyToRef(this._projectionTextureProjectionLightMatrix,this._projectionTextureMatrix),this._projectionTexture instanceof be){const e=this._projectionTexture.uScale/2,t=this._projectionTexture.vScale/2;me.FromValuesToRef(e,0,0,0,0,t,0,0,0,0,.5,0,.5,.5,.5,1,this._projectionTextureScalingMatrix)}this._projectionTextureMatrix.multiplyToRef(this._projectionTextureScalingMatrix,this._projectionTextureMatrix)}_buildUniformLayout(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("vLightDirection",3),this._uniformBuffer.addUniform("vLightFalloff",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()}_computeAngleValues(){this._lightAngleScale=1/Math.max(.001,Math.cos(this._innerAngle*.5)-this._cosHalfAngle),this._lightAngleOffset=-this._cosHalfAngle*this._lightAngleScale}transferTexturesToEffect(e,t){return this.projectionTexture&&this.projectionTexture.isReady()&&(this._projectionTextureViewLightDirty&&this._computeProjectionTextureViewLightMatrix(),this._projectionTextureProjectionLightDirty&&this._computeProjectionTextureProjectionLightMatrix(),this._projectionTextureDirty&&this._computeProjectionTextureMatrix(),e.setMatrix("textureProjectionMatrix"+t,this._projectionTextureMatrix),e.setTexture("projectionLightTexture"+t,this.projectionTexture)),this._iesProfileTexture&&this._iesProfileTexture.isReady()&&e.setTexture("iesLightTexture"+t,this._iesProfileTexture),this}transferToEffect(e,t){let i;return this.computeTransformedInformation()?(this._uniformBuffer.updateFloat4("vLightData",this.transformedPosition.x,this.transformedPosition.y,this.transformedPosition.z,this.exponent,t),i=P.Normalize(this.transformedDirection)):(this._uniformBuffer.updateFloat4("vLightData",this.position.x,this.position.y,this.position.z,this.exponent,t),i=P.Normalize(this.direction)),this._uniformBuffer.updateFloat4("vLightDirection",i.x,i.y,i.z,this._cosHalfAngle,t),this._uniformBuffer.updateFloat4("vLightFalloff",this.range,this._inverseSquaredRange,this._lightAngleScale,this._lightAngleOffset,t),this}transferToNodeMaterialEffect(e,t){let i;return this.computeTransformedInformation()?i=P.Normalize(this.transformedDirection):i=P.Normalize(this.direction),this.getScene().useRightHandedSystem?e.setFloat3(t,-i.x,-i.y,-i.z):e.setFloat3(t,i.x,i.y,i.z),this}dispose(){super.dispose(),this._projectionTexture&&this._projectionTexture.dispose(),this._iesProfileTexture&&(this._iesProfileTexture.dispose(),this._iesProfileTexture=null)}getDepthMinZ(e){const t=this._scene.getEngine(),i=this.shadowMinZ!==void 0?this.shadowMinZ:(e==null?void 0:e.minZ)??0;return t.useReverseDepthBuffer&&t.isNDCHalfZRange?i:this._scene.getEngine().isNDCHalfZRange?0:i}getDepthMaxZ(e){const t=this._scene.getEngine(),i=this.shadowMaxZ!==void 0?this.shadowMaxZ:(e==null?void 0:e.maxZ)??1e4;return t.useReverseDepthBuffer&&t.isNDCHalfZRange?0:i}prepareLightSpecificDefines(e,t){e["SPOTLIGHT"+t]=!0,e["PROJECTEDLIGHTTEXTURE"+t]=!!(this.projectionTexture&&this.projectionTexture.isReady()),e["IESLIGHTTEXTURE"+t]=!!(this._iesProfileTexture&&this._iesProfileTexture.isReady())}}F([G()],$o.prototype,"angle",null),F([G()],$o.prototype,"innerAngle",null),F([G()],$o.prototype,"shadowAngleScale",null),F([G()],$o.prototype,"exponent",void 0),F([G()],$o.prototype,"projectionTextureLightNear",null),F([G()],$o.prototype,"projectionTextureLightFar",null),F([G()],$o.prototype,"projectionTextureUpDirection",null),F([Yi("projectedLightTexture")],$o.prototype,"_projectionTexture",void 0),ve("BABYLON.SpotLight",$o);class Oc{static SetMatrix(e,t,i,s,r){let n=null;if(i.semantic==="MODEL"?n=t.getWorldMatrix():i.semantic==="PROJECTION"?n=e.getProjectionMatrix():i.semantic==="VIEW"?n=e.getViewMatrix():i.semantic==="MODELVIEWINVERSETRANSPOSE"?n=me.Transpose(t.getWorldMatrix().multiply(e.getViewMatrix()).invert()):i.semantic==="MODELVIEW"?n=t.getWorldMatrix().multiply(e.getViewMatrix()):i.semantic==="MODELVIEWPROJECTION"?n=t.getWorldMatrix().multiply(e.getTransformMatrix()):i.semantic==="MODELINVERSE"?n=t.getWorldMatrix().invert():i.semantic==="VIEWINVERSE"?n=e.getViewMatrix().invert():i.semantic==="PROJECTIONINVERSE"?n=e.getProjectionMatrix().invert():i.semantic==="MODELVIEWINVERSE"?n=t.getWorldMatrix().multiply(e.getViewMatrix()).invert():i.semantic==="MODELVIEWPROJECTIONINVERSE"?n=t.getWorldMatrix().multiply(e.getTransformMatrix()).invert():i.semantic==="MODELINVERSETRANSPOSE"&&(n=me.Transpose(t.getWorldMatrix().invert())),n)switch(i.type){case sf.FLOAT_MAT2:r.setMatrix2x2(s,me.GetAsMatrix2x2(n));break;case sf.FLOAT_MAT3:r.setMatrix3x3(s,me.GetAsMatrix3x3(n));break;case sf.FLOAT_MAT4:r.setMatrix(s,n);break}}static SetUniform(e,t,i,s){switch(s){case sf.FLOAT:return e.setFloat(t,i),!0;case sf.FLOAT_VEC2:return e.setVector2(t,Ue.FromArray(i)),!0;case sf.FLOAT_VEC3:return e.setVector3(t,P.FromArray(i)),!0;case sf.FLOAT_VEC4:return e.setVector4(t,Yt.FromArray(i)),!0;default:return!1}}static GetWrapMode(e){switch(e){case yP.CLAMP_TO_EDGE:return be.CLAMP_ADDRESSMODE;case yP.MIRRORED_REPEAT:return be.MIRROR_ADDRESSMODE;case yP.REPEAT:return be.WRAP_ADDRESSMODE;default:return be.WRAP_ADDRESSMODE}}static GetByteStrideFromType(e){switch(e.type){case"VEC2":return 2;case"VEC3":return 3;case"VEC4":return 4;case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16;default:return 1}}static GetTextureFilterMode(e){switch(e){case Z6.LINEAR:case Z6.LINEAR_MIPMAP_NEAREST:case Z6.LINEAR_MIPMAP_LINEAR:return be.TRILINEAR_SAMPLINGMODE;case Z6.NEAREST:case Z6.NEAREST_MIPMAP_NEAREST:return be.NEAREST_SAMPLINGMODE;default:return be.BILINEAR_SAMPLINGMODE}}static GetBufferFromBufferView(e,t,i,s,r){i=t.byteOffset+i;const n=e.loadedBufferViews[t.buffer];if(i+s>n.byteLength)throw new Error("Buffer access is out of range");const o=n.buffer;switch(i+=n.byteOffset,r){case by.BYTE:return new Int8Array(o,i,s);case by.UNSIGNED_BYTE:return new Uint8Array(o,i,s);case by.SHORT:return new Int16Array(o,i,s);case by.UNSIGNED_SHORT:return new Uint16Array(o,i,s);default:return new Float32Array(o,i,s)}}static GetBufferFromAccessor(e,t){const i=e.bufferViews[t.bufferView],s=t.count*Oc.GetByteStrideFromType(t);return Oc.GetBufferFromBufferView(e,i,t.byteOffset,s,t.componentType)}static DecodeBufferToText(e){let t="";const i=e.byteLength;for(let s=0;s<i;++s)t+=String.fromCharCode(e[s]);return t}static GetDefaultMaterial(e){if(!Oc._DefaultMaterial){Ls.ShadersStore.GLTFDefaultMaterialVertexShader=["precision highp float;","","uniform mat4 worldView;","uniform mat4 projection;","","attribute vec3 position;","","void main(void)","{","    gl_Position = projection * worldView * vec4(position, 1.0);","}"].join(`
`),Ls.ShadersStore.GLTFDefaultMaterialPixelShader=["precision highp float;","","uniform vec4 u_emission;","","void main(void)","{","    gl_FragColor = u_emission;","}"].join(`
`);const t={vertex:"GLTFDefaultMaterial",fragment:"GLTFDefaultMaterial"},i={attributes:["position"],uniforms:["worldView","projection","u_emission"],samplers:new Array,needAlphaBlending:!1};Oc._DefaultMaterial=new Fo("GLTFDefaultMaterial",e,t,i),Oc._DefaultMaterial.setColor4("u_emission",new St(.5,.5,.5,1))}return Oc._DefaultMaterial}}Oc._DefaultMaterial=null;class ze{}ze.AUTOSAMPLERSUFFIX="Sampler",ze.DISABLEUA="#define DISABLE_UNIFORMITY_ANALYSIS",ze.ALPHA_DISABLE=0,ze.ALPHA_ADD=1,ze.ALPHA_COMBINE=2,ze.ALPHA_SUBTRACT=3,ze.ALPHA_MULTIPLY=4,ze.ALPHA_MAXIMIZED=5,ze.ALPHA_ONEONE=6,ze.ALPHA_PREMULTIPLIED=7,ze.ALPHA_PREMULTIPLIED_PORTERDUFF=8,ze.ALPHA_INTERPOLATE=9,ze.ALPHA_SCREENMODE=10,ze.ALPHA_ONEONE_ONEONE=11,ze.ALPHA_ALPHATOCOLOR=12,ze.ALPHA_REVERSEONEMINUS=13,ze.ALPHA_SRC_DSTONEMINUSSRCALPHA=14,ze.ALPHA_ONEONE_ONEZERO=15,ze.ALPHA_EXCLUSION=16,ze.ALPHA_LAYER_ACCUMULATE=17,ze.ALPHA_EQUATION_ADD=0,ze.ALPHA_EQUATION_SUBSTRACT=1,ze.ALPHA_EQUATION_REVERSE_SUBTRACT=2,ze.ALPHA_EQUATION_MAX=3,ze.ALPHA_EQUATION_MIN=4,ze.ALPHA_EQUATION_DARKEN=5,ze.DELAYLOADSTATE_NONE=0,ze.DELAYLOADSTATE_LOADED=1,ze.DELAYLOADSTATE_LOADING=2,ze.DELAYLOADSTATE_NOTLOADED=4,ze.NEVER=512,ze.ALWAYS=519,ze.LESS=513,ze.EQUAL=514,ze.LEQUAL=515,ze.GREATER=516,ze.GEQUAL=518,ze.NOTEQUAL=517,ze.KEEP=7680,ze.ZERO=0,ze.REPLACE=7681,ze.INCR=7682,ze.DECR=7683,ze.INVERT=5386,ze.INCR_WRAP=34055,ze.DECR_WRAP=34056,ze.TEXTURE_CLAMP_ADDRESSMODE=0,ze.TEXTURE_WRAP_ADDRESSMODE=1,ze.TEXTURE_MIRROR_ADDRESSMODE=2,ze.TEXTURE_CREATIONFLAG_STORAGE=1,ze.TEXTUREFORMAT_ALPHA=0,ze.TEXTUREFORMAT_LUMINANCE=1,ze.TEXTUREFORMAT_LUMINANCE_ALPHA=2,ze.TEXTUREFORMAT_RGB=4,ze.TEXTUREFORMAT_RGBA=5,ze.TEXTUREFORMAT_RED=6,ze.TEXTUREFORMAT_R=6,ze.TEXTUREFORMAT_R16_UNORM=33322,ze.TEXTUREFORMAT_RG16_UNORM=33324,ze.TEXTUREFORMAT_RGB16_UNORM=32852,ze.TEXTUREFORMAT_RGBA16_UNORM=32859,ze.TEXTUREFORMAT_R16_SNORM=36760,ze.TEXTUREFORMAT_RG16_SNORM=36761,ze.TEXTUREFORMAT_RGB16_SNORM=36762,ze.TEXTUREFORMAT_RGBA16_SNORM=36763,ze.TEXTUREFORMAT_RG=7,ze.TEXTUREFORMAT_RED_INTEGER=8,ze.TEXTUREFORMAT_R_INTEGER=8,ze.TEXTUREFORMAT_RG_INTEGER=9,ze.TEXTUREFORMAT_RGB_INTEGER=10,ze.TEXTUREFORMAT_RGBA_INTEGER=11,ze.TEXTUREFORMAT_BGRA=12,ze.TEXTUREFORMAT_DEPTH24_STENCIL8=13,ze.TEXTUREFORMAT_DEPTH32_FLOAT=14,ze.TEXTUREFORMAT_DEPTH16=15,ze.TEXTUREFORMAT_DEPTH24=16,ze.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8=17,ze.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8=18,ze.TEXTUREFORMAT_STENCIL8=19,ze.TEXTUREFORMAT_UNDEFINED=4294967295,ze.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM=36492,ze.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM=36493,ze.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT=36495,ze.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT=36494,ze.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5=33779,ze.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919,ze.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3=33778,ze.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918,ze.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1=33777,ze.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1=33776,ze.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917,ze.TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT=35916,ze.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4=37808,ze.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840,ze.TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL=36196,ze.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2=37492,ze.TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2=37493,ze.TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494,ze.TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495,ze.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC=37496,ze.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497,ze.TEXTURETYPE_UNSIGNED_BYTE=0,ze.TEXTURETYPE_UNSIGNED_INT=0,ze.TEXTURETYPE_FLOAT=1,ze.TEXTURETYPE_HALF_FLOAT=2,ze.TEXTURETYPE_BYTE=3,ze.TEXTURETYPE_SHORT=4,ze.TEXTURETYPE_UNSIGNED_SHORT=5,ze.TEXTURETYPE_INT=6,ze.TEXTURETYPE_UNSIGNED_INTEGER=7,ze.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4=8,ze.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1=9,ze.TEXTURETYPE_UNSIGNED_SHORT_5_6_5=10,ze.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV=11,ze.TEXTURETYPE_UNSIGNED_INT_24_8=12,ze.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV=13,ze.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV=14,ze.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV=15,ze.TEXTURETYPE_UNDEFINED=16,ze.TEXTURE_2D=3553,ze.TEXTURE_2D_ARRAY=35866,ze.TEXTURE_CUBE_MAP=34067,ze.TEXTURE_CUBE_MAP_ARRAY=3735928559,ze.TEXTURE_3D=32879,ze.TEXTURE_NEAREST_SAMPLINGMODE=1,ze.TEXTURE_NEAREST_NEAREST=1,ze.TEXTURE_BILINEAR_SAMPLINGMODE=2,ze.TEXTURE_LINEAR_LINEAR=2,ze.TEXTURE_TRILINEAR_SAMPLINGMODE=3,ze.TEXTURE_LINEAR_LINEAR_MIPLINEAR=3,ze.TEXTURE_NEAREST_NEAREST_MIPNEAREST=4,ze.TEXTURE_NEAREST_LINEAR_MIPNEAREST=5,ze.TEXTURE_NEAREST_LINEAR_MIPLINEAR=6,ze.TEXTURE_NEAREST_LINEAR=7,ze.TEXTURE_NEAREST_NEAREST_MIPLINEAR=8,ze.TEXTURE_LINEAR_NEAREST_MIPNEAREST=9,ze.TEXTURE_LINEAR_NEAREST_MIPLINEAR=10,ze.TEXTURE_LINEAR_LINEAR_MIPNEAREST=11,ze.TEXTURE_LINEAR_NEAREST=12,ze.TEXTURE_EXPLICIT_MODE=0,ze.TEXTURE_SPHERICAL_MODE=1,ze.TEXTURE_PLANAR_MODE=2,ze.TEXTURE_CUBIC_MODE=3,ze.TEXTURE_PROJECTION_MODE=4,ze.TEXTURE_SKYBOX_MODE=5,ze.TEXTURE_INVCUBIC_MODE=6,ze.TEXTURE_EQUIRECTANGULAR_MODE=7,ze.TEXTURE_FIXED_EQUIRECTANGULAR_MODE=8,ze.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE=9,ze.TEXTURE_FILTERING_QUALITY_OFFLINE=4096,ze.TEXTURE_FILTERING_QUALITY_HIGH=64,ze.TEXTURE_FILTERING_QUALITY_MEDIUM=16,ze.TEXTURE_FILTERING_QUALITY_LOW=8,ze.SCALEMODE_FLOOR=1,ze.SCALEMODE_NEAREST=2,ze.SCALEMODE_CEILING=3,ze.MATERIAL_TextureDirtyFlag=1,ze.MATERIAL_LightDirtyFlag=2,ze.MATERIAL_FresnelDirtyFlag=4,ze.MATERIAL_AttributesDirtyFlag=8,ze.MATERIAL_MiscDirtyFlag=16,ze.MATERIAL_PrePassDirtyFlag=32,ze.MATERIAL_ImageProcessingDirtyFlag=64,ze.MATERIAL_AllDirtyFlag=127,ze.MATERIAL_TriangleFillMode=0,ze.MATERIAL_WireFrameFillMode=1,ze.MATERIAL_PointFillMode=2,ze.MATERIAL_PointListDrawMode=3,ze.MATERIAL_LineListDrawMode=4,ze.MATERIAL_LineLoopDrawMode=5,ze.MATERIAL_LineStripDrawMode=6,ze.MATERIAL_TriangleStripDrawMode=7,ze.MATERIAL_TriangleFanDrawMode=8,ze.MATERIAL_ClockWiseSideOrientation=0,ze.MATERIAL_CounterClockWiseSideOrientation=1,ze.ACTION_NothingTrigger=0,ze.ACTION_OnPickTrigger=1,ze.ACTION_OnLeftPickTrigger=2,ze.ACTION_OnRightPickTrigger=3,ze.ACTION_OnCenterPickTrigger=4,ze.ACTION_OnPickDownTrigger=5,ze.ACTION_OnDoublePickTrigger=6,ze.ACTION_OnPickUpTrigger=7,ze.ACTION_OnPickOutTrigger=16,ze.ACTION_OnLongPressTrigger=8,ze.ACTION_OnPointerOverTrigger=9,ze.ACTION_OnPointerOutTrigger=10,ze.ACTION_OnEveryFrameTrigger=11,ze.ACTION_OnIntersectionEnterTrigger=12,ze.ACTION_OnIntersectionExitTrigger=13,ze.ACTION_OnKeyDownTrigger=14,ze.ACTION_OnKeyUpTrigger=15,ze.PARTICLES_BILLBOARDMODE_Y=2,ze.PARTICLES_BILLBOARDMODE_ALL=7,ze.PARTICLES_BILLBOARDMODE_STRETCHED=8,ze.PARTICLES_BILLBOARDMODE_STRETCHED_LOCAL=9,ze.MESHES_CULLINGSTRATEGY_STANDARD=0,ze.MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY=1,ze.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION=2,ze.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY=3,ze.SCENELOADER_NO_LOGGING=0,ze.SCENELOADER_MINIMAL_LOGGING=1,ze.SCENELOADER_SUMMARY_LOGGING=2,ze.SCENELOADER_DETAILED_LOGGING=3,ze.PREPASS_IRRADIANCE_TEXTURE_TYPE=0,ze.PREPASS_POSITION_TEXTURE_TYPE=1,ze.PREPASS_VELOCITY_TEXTURE_TYPE=2,ze.PREPASS_REFLECTIVITY_TEXTURE_TYPE=3,ze.PREPASS_COLOR_TEXTURE_TYPE=4,ze.PREPASS_DEPTH_TEXTURE_TYPE=5,ze.PREPASS_NORMAL_TEXTURE_TYPE=6,ze.PREPASS_ALBEDO_SQRT_TEXTURE_TYPE=7,ze.PREPASS_WORLD_NORMAL_TEXTURE_TYPE=8,ze.PREPASS_LOCAL_POSITION_TEXTURE_TYPE=9,ze.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE=10,ze.PREPASS_VELOCITY_LINEAR_TEXTURE_TYPE=11,ze.PREPASS_ALBEDO_TEXTURE_TYPE=12,ze.BUFFER_CREATIONFLAG_READ=1,ze.BUFFER_CREATIONFLAG_WRITE=2,ze.BUFFER_CREATIONFLAG_READWRITE=3,ze.BUFFER_CREATIONFLAG_UNIFORM=4,ze.BUFFER_CREATIONFLAG_VERTEX=8,ze.BUFFER_CREATIONFLAG_INDEX=16,ze.BUFFER_CREATIONFLAG_STORAGE=32,ze.BUFFER_CREATIONFLAG_INDIRECT=64,ze.RENDERPASS_MAIN=0,ze.INPUT_ALT_KEY=18,ze.INPUT_CTRL_KEY=17,ze.INPUT_META_KEY1=91,ze.INPUT_META_KEY2=92,ze.INPUT_META_KEY3=93,ze.INPUT_SHIFT_KEY=16,ze.SNAPSHOTRENDERING_STANDARD=0,ze.SNAPSHOTRENDERING_FAST=1,ze.PERSPECTIVE_CAMERA=0,ze.ORTHOGRAPHIC_CAMERA=1,ze.FOVMODE_VERTICAL_FIXED=0,ze.FOVMODE_HORIZONTAL_FIXED=1,ze.RIG_MODE_NONE=0,ze.RIG_MODE_STEREOSCOPIC_ANAGLYPH=10,ze.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL=11,ze.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED=12,ze.RIG_MODE_STEREOSCOPIC_OVERUNDER=13,ze.RIG_MODE_STEREOSCOPIC_INTERLACED=14,ze.RIG_MODE_VR=20,ze.RIG_MODE_CUSTOM=22,ze.MAX_SUPPORTED_UV_SETS=6,ze.GL_ALPHA_EQUATION_ADD=32774,ze.GL_ALPHA_EQUATION_MIN=32775,ze.GL_ALPHA_EQUATION_MAX=32776,ze.GL_ALPHA_EQUATION_SUBTRACT=32778,ze.GL_ALPHA_EQUATION_REVERSE_SUBTRACT=32779,ze.GL_ALPHA_FUNCTION_SRC=768,ze.GL_ALPHA_FUNCTION_ONE_MINUS_SRC_COLOR=769,ze.GL_ALPHA_FUNCTION_SRC_ALPHA=770,ze.GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA=771,ze.GL_ALPHA_FUNCTION_DST_ALPHA=772,ze.GL_ALPHA_FUNCTION_ONE_MINUS_DST_ALPHA=773,ze.GL_ALPHA_FUNCTION_DST_COLOR=774,ze.GL_ALPHA_FUNCTION_ONE_MINUS_DST_COLOR=775,ze.GL_ALPHA_FUNCTION_SRC_ALPHA_SATURATED=776,ze.GL_ALPHA_FUNCTION_CONSTANT_COLOR=32769,ze.GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_COLOR=32770,ze.GL_ALPHA_FUNCTION_CONSTANT_ALPHA=32771,ze.GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_ALPHA=32772,ze.GL_ALPHA_FUNCTION_SRC1_COLOR=35065,ze.GL_ALPHA_FUNCTION_ONE_MINUS_SRC1_COLOR=35066,ze.GL_ALPHA_FUNCTION_SRC1_ALPHA=34185,ze.GL_ALPHA_FUNCTION_ONE_MINUS_SRC1_ALPHA=35067,ze.SnippetUrl="https://snippet.babylonjs.com",ze.FOGMODE_NONE=0,ze.FOGMODE_EXP=1,ze.FOGMODE_EXP2=2,ze.FOGMODE_LINEAR=3,ze.BYTE=5120,ze.UNSIGNED_BYTE=5121,ze.SHORT=5122,ze.UNSIGNED_SHORT=5123,ze.INT=5124,ze.UNSIGNED_INT=5125,ze.FLOAT=5126,ze.PositionKind="position",ze.NormalKind="normal",ze.TangentKind="tangent",ze.UVKind="uv",ze.UV2Kind="uv2",ze.UV3Kind="uv3",ze.UV4Kind="uv4",ze.UV5Kind="uv5",ze.UV6Kind="uv6",ze.ColorKind="color",ze.ColorInstanceKind="instanceColor",ze.MatricesIndicesKind="matricesIndices",ze.MatricesWeightsKind="matricesWeights",ze.MatricesIndicesExtraKind="matricesIndicesExtra",ze.MatricesWeightsExtraKind="matricesWeightsExtra",ze.ANIMATIONTYPE_FLOAT=0,ze.ANIMATIONTYPE_VECTOR3=1,ze.ANIMATIONTYPE_QUATERNION=2,ze.ANIMATIONTYPE_MATRIX=3,ze.ANIMATIONTYPE_COLOR3=4,ze.ANIMATIONTYPE_COLOR4=7,ze.ANIMATIONTYPE_VECTOR2=5,ze.ANIMATIONTYPE_SIZE=6,ze.ShadowMinZ=0,ze.ShadowMaxZ=1e4;var wT;(function(a){a[a.IDENTIFIER=1]="IDENTIFIER",a[a.UNKNOWN=2]="UNKNOWN",a[a.END_OF_INPUT=3]="END_OF_INPUT"})(wT||(wT={}));class Zhe{constructor(e){this._pos=0,this.currentToken=wT.UNKNOWN,this.currentIdentifier="",this.currentString="",this.isLetterOrDigitPattern=/^[a-zA-Z0-9]+$/,this._toParse=e,this._maxPos=e.length}getNextToken(){if(this.isEnd())return wT.END_OF_INPUT;if(this.currentString=this.read(),this.currentToken=wT.UNKNOWN,this.currentString==="_"||this.isLetterOrDigitPattern.test(this.currentString))for(this.currentToken=wT.IDENTIFIER,this.currentIdentifier=this.currentString;!this.isEnd()&&(this.isLetterOrDigitPattern.test(this.currentString=this.peek())||this.currentString==="_");)this.currentIdentifier+=this.currentString,this.forward();return this.currentToken}peek(){return this._toParse[this._pos]}read(){return this._toParse[this._pos++]}forward(){this._pos++}isEnd(){return this._pos>=this._maxPos}}const Khe=["MODEL","VIEW","PROJECTION","MODELVIEW","MODELVIEWPROJECTION","JOINTMATRIX"],qhe=["world","view","projection","worldView","worldViewProjection","mBones"],nRe=["translation","rotation","scale"],aRe=["position","rotationQuaternion","scaling"],oRe=(a,e)=>{for(const t in a){const i=a[t];e.buffers[t]=i,e.buffersCount++}},lRe=(a,e)=>{for(const t in a){const i=a[t];e.shaders[t]=i,e.shaderscount++}},rf=(a,e,t)=>{for(const i in a){const s=a[i];t[e][i]=s}},cRe=a=>{if(a)for(let e=0;e<a.length/2;e++)a[e*2+1]=1-a[e*2+1]},Qhe=a=>{if(a.semantic==="NORMAL")return"normal";if(a.semantic==="POSITION")return"position";if(a.semantic==="JOINT")return"matricesIndices";if(a.semantic==="WEIGHT")return"matricesWeights";if(a.semantic==="COLOR")return"color";if(a.semantic&&a.semantic.indexOf("TEXCOORD_")!==-1){const e=Number(a.semantic.split("_")[1]);return"uv"+(e===0?"":e+1)}return null},uRe=a=>{for(const e in a.animations){const t=a.animations[e];if(!t.channels||!t.samplers)continue;let i=null;for(let s=0;s<t.channels.length;s++){const r=t.channels[s],n=t.samplers[r.sampler];if(!n)continue;let o=null,l=null;t.parameters?(o=t.parameters[n.input],l=t.parameters[n.output]):(o=n.input,l=n.output);const c=Oc.GetBufferFromAccessor(a,a.accessors[o]),u=Oc.GetBufferFromAccessor(a,a.accessors[l]),f=r.target.id;let p=a.scene.getNodeById(f);if(p===null&&(p=a.scene.getNodeByName(f)),p===null){Le.Warn("Creating animation named "+e+". But cannot find node named "+f+" to attach to");continue}const m=p instanceof gn;let _=r.target.path;const d=nRe.indexOf(_);d!==-1&&(_=aRe[d]);let h=He.ANIMATIONTYPE_MATRIX;m||(_==="rotationQuaternion"?(h=He.ANIMATIONTYPE_QUATERNION,p.rotationQuaternion=new Re):h=He.ANIMATIONTYPE_VECTOR3);let x=null;const A=[];let S=0,E=!1;m&&i&&i.getKeys().length===c.length&&(x=i,E=!0),E||(a.scene._blockEntityCollection=!!a.assetContainer,x=new He(e,m?"_matrix":_,1,h,He.ANIMATIONLOOPMODE_CYCLE),a.scene._blockEntityCollection=!1);for(let b=0;b<c.length;b++){let M=null;if(_==="rotationQuaternion"?(M=Re.FromArray([u[S],u[S+1],u[S+2],u[S+3]]),S+=4):(M=P.FromArray([u[S],u[S+1],u[S+2]]),S+=3),m){const T=p;let O=P.Zero(),R=new Re,I=P.Zero(),N=T.getBaseMatrix();E&&i&&(N=i.getKeys()[b].value),N.decompose(I,R,O),_==="position"?O=M:_==="rotationQuaternion"?R=M:I=M,M=me.Compose(I,R,O)}E?i&&(i.getKeys()[b].value=M):A.push({frame:c[b],value:M})}!E&&x&&(x.setKeys(A),p.animations.push(x)),i=x,a.scene.stopAnimation(p),a.scene.beginAnimation(p,0,c[c.length-1],!0,1)}}},yZ=a=>{let e=null;if(a.translation||a.rotation||a.scale){const t=P.FromArray(a.scale||[1,1,1]),i=Re.FromArray(a.rotation||[0,0,0,1]),s=P.FromArray(a.translation||[0,0,0]);e=me.Compose(t,i,s)}else e=me.FromArray(a.matrix);return e},Jhe=(a,e,t,i)=>{for(let r=0;r<i.bones.length;r++)if(i.bones[r].name===t)return i.bones[r];const s=a.nodes;for(const r in s){const n=s[r];if(!n.jointName)continue;const o=n.children;for(let l=0;l<o.length;l++){const c=a.nodes[o[l]];if(c.jointName&&c.jointName===t){const u=yZ(n),f=new gn(n.name||"",i,Jhe(a,e,n.jointName,i),u);return f.id=r,f}}}return null},hRe=(a,e)=>{for(let t=0;t<a.length;t++){const i=a[t];for(let s=0;s<i.node.children.length;s++)if(i.node.children[s]===e)return i.bone}return null},MZ=(a,e)=>{const t=a.nodes;let i=t[e];if(i)return{node:i,id:e};for(const s in t)if(i=t[s],i.jointName===e)return{node:i,id:s};return null},dRe=(a,e)=>{for(let t=0;t<a.jointNames.length;t++)if(a.jointNames[t]===e)return!0;return!1},fRe=(a,e,t,i)=>{for(const s in a.nodes){const r=a.nodes[s],n=s;if(!r.jointName||dRe(t,r.jointName))continue;const o=yZ(r),l=new gn(r.name||"",e,null,o);l.id=n,i.push({bone:l,node:r,id:n})}for(let s=0;s<i.length;s++){const r=i[s],n=r.node.children;for(let o=0;o<n.length;o++){let l=null;for(let c=0;c<i.length;c++)if(i[c].id===n[o]){l=i[c];break}l&&(l.bone._parent=r.bone,r.bone.children.push(l.bone))}}},pRe=(a,e,t,i)=>{if(i||(i=new Wv(e.name||"","",a.scene)),!e.babylonSkeleton)return i;const s=[],r=[];fRe(a,i,e,s),i.bones=[];for(let o=0;o<e.jointNames.length;o++){const l=MZ(a,e.jointNames[o]);if(!l)continue;const c=l.node;if(!c){Le.Warn("Joint named "+e.jointNames[o]+" does not exist");continue}const u=l.id,f=a.scene.getBoneById(u);if(f){i.bones.push(f);continue}let p=!1,m=null;for(let h=0;h<o;h++){const x=MZ(a,e.jointNames[h]);if(!x)continue;const A=x.node;if(!A){Le.Warn("Joint named "+e.jointNames[h]+" does not exist when looking for parent");continue}const S=A.children;if(S){p=!1;for(let E=0;E<S.length;E++)if(S[E]===u){m=Jhe(a,e,e.jointNames[h],i),p=!0;break}if(p)break}}const _=yZ(c);!m&&s.length>0&&(m=hRe(s,u),m&&r.indexOf(m)===-1&&r.push(m));const d=new gn(c.jointName||"",i,m,_);d.id=u}const n=i.bones;i.bones=[];for(let o=0;o<e.jointNames.length;o++){const l=MZ(a,e.jointNames[o]);if(l){for(let c=0;c<n.length;c++)if(n[c].id===l.id){i.bones.push(n[c]);break}}}i.prepare();for(let o=0;o<r.length;o++)i.bones.push(r[o]);return i},$he=(a,e,t,i,s)=>{if(s||(a.scene._blockEntityCollection=!!a.assetContainer,s=new Ne(e.name||"",a.scene),s._parentContainer=a.assetContainer,a.scene._blockEntityCollection=!1,s.id=i),!e.babylonNode)return s;const r=[];let n=null;const o=[],l=[],c=[],u=[];for(let m=0;m<t.length;m++){const _=t[m],d=a.meshes[_];if(d)for(let h=0;h<d.primitives.length;h++){const x=new wt,A=d.primitives[h];A.mode;const S=A.attributes;let E=null,b=null;for(const T in S)if(E=a.accessors[S[T]],b=Oc.GetBufferFromAccessor(a,E),T==="NORMAL")x.normals=new Float32Array(b.length),x.normals.set(b);else if(T==="POSITION"){if(ku.HomogeneousCoordinates){x.positions=new Float32Array(b.length-b.length/4);for(let O=0;O<b.length;O+=4)x.positions[O]=b[O],x.positions[O+1]=b[O+1],x.positions[O+2]=b[O+2]}else x.positions=new Float32Array(b.length),x.positions.set(b);l.push(x.positions.length)}else if(T.indexOf("TEXCOORD_")!==-1){const O=Number(T.split("_")[1]),R=q.UVKind+(O===0?"":O+1),I=new Float32Array(b.length);I.set(b),cRe(I),x.set(I,R)}else T==="JOINT"?(x.matricesIndices=new Float32Array(b.length),x.matricesIndices.set(b)):T==="WEIGHT"?(x.matricesWeights=new Float32Array(b.length),x.matricesWeights.set(b)):T==="COLOR"&&(x.colors=new Float32Array(b.length),x.colors.set(b));if(E=a.accessors[A.indices],E)b=Oc.GetBufferFromAccessor(a,E),x.indices=new Int32Array(b.length),x.indices.set(b),u.push(x.indices.length);else{const T=[];for(let O=0;O<x.positions.length/3;O++)T.push(O);x.indices=new Int32Array(T),u.push(x.indices.length)}n?n.merge(x):n=x;const M=a.scene.getMaterialById(A.material);r.push(M===null?Oc.GetDefaultMaterial(a.scene):M),o.push(o.length===0?0:o[o.length-1]+l[l.length-2]),c.push(c.length===0?0:c[c.length-1]+u[u.length-2])}}let f;a.scene._blockEntityCollection=!!a.assetContainer,r.length>1?(f=new tf("multimat"+i,a.scene),f.subMaterials=r):f=new Bt("multimat"+i,a.scene),r.length===1&&(f=r[0]),f._parentContainer=a.assetContainer,s.material||(s.material=f),new Rl(i,a.scene,n,!1,s),s.computeWorldMatrix(!0),a.scene._blockEntityCollection=!1,s.subMeshes=[];let p=0;for(let m=0;m<t.length;m++){const _=t[m],d=a.meshes[_];if(d)for(let h=0;h<d.primitives.length;h++)d.primitives[h].mode,Lc.AddToMesh(p,o[p],l[p],c[p],u[p],s,s,!0),p++}return s},EZ=(a,e,t,i)=>{a.position&&(a.position=e),(a.rotationQuaternion||a.rotation)&&(a.rotationQuaternion=t),a.scaling&&(a.scaling=i)},mRe=(a,e)=>{if(e.matrix){const t=new P(0,0,0),i=new Re,s=new P(0,0,0);me.FromArray(e.matrix).decompose(s,i,t),EZ(a,t,i,s)}else e.translation&&e.rotation&&e.scale&&EZ(a,P.FromArray(e.translation),Re.FromArray(e.rotation),P.FromArray(e.scale));a.computeWorldMatrix(!0)},gRe=(a,e,t)=>{let i=null;if(a.importOnlyMeshes&&(e.skin||e.meshes)&&a.importMeshesNames&&a.importMeshesNames.length>0&&a.importMeshesNames.indexOf(e.name||"")===-1)return null;if(e.skin){if(e.meshes){const s=a.skins[e.skin],r=$he(a,e,e.meshes,t,e.babylonNode);r.skeleton=a.scene.getLastSkeletonById(e.skin),r.skeleton===null&&(r.skeleton=pRe(a,s,r,s.babylonSkeleton),s.babylonSkeleton||(s.babylonSkeleton=r.skeleton)),i=r}}else if(e.meshes)i=$he(a,e,e.mesh?[e.mesh]:e.meshes,t,e.babylonNode);else if(e.light&&!e.babylonNode&&!a.importOnlyMeshes){const s=a.lights[e.light];if(s){if(s.type==="ambient"){const r=s[s.type],n=new b4(e.light,P.Zero(),a.scene);n.name=e.name||"",r.color&&(n.diffuse=Pe.FromArray(r.color)),i=n}else if(s.type==="directional"){const r=s[s.type],n=new W1(e.light,P.Zero(),a.scene);n.name=e.name||"",r.color&&(n.diffuse=Pe.FromArray(r.color)),i=n}else if(s.type==="point"){const r=s[s.type],n=new NT(e.light,P.Zero(),a.scene);n.name=e.name||"",r.color&&(n.diffuse=Pe.FromArray(r.color)),i=n}else if(s.type==="spot"){const r=s[s.type],n=new $o(e.light,P.Zero(),P.Zero(),0,0,a.scene);n.name=e.name||"",r.color&&(n.diffuse=Pe.FromArray(r.color)),r.fallOfAngle&&(n.angle=r.fallOfAngle),r.fallOffExponent&&(n.exponent=r.fallOffExponent),i=n}}}else if(e.camera&&!e.babylonNode&&!a.importOnlyMeshes){const s=a.cameras[e.camera];if(s){if(a.scene._blockEntityCollection=!!a.assetContainer,s.type==="orthographic"){const r=new $d(e.camera,P.Zero(),a.scene,!1);r.name=e.name||"",r.mode=_i.ORTHOGRAPHIC_CAMERA,r.attachControl(),i=r,r._parentContainer=a.assetContainer}else if(s.type==="perspective"){const r=s[s.type],n=new $d(e.camera,P.Zero(),a.scene,!1);n.name=e.name||"",n.attachControl(),r.aspectRatio||(r.aspectRatio=a.scene.getEngine().getRenderWidth()/a.scene.getEngine().getRenderHeight()),r.znear&&r.zfar&&(n.maxZ=r.zfar,n.minZ=r.znear),i=n,n._parentContainer=a.assetContainer}a.scene._blockEntityCollection=!1}}if(!e.jointName){if(e.babylonNode)return e.babylonNode;if(i===null){a.scene._blockEntityCollection=!!a.assetContainer;const s=new Ne(e.name||"",a.scene);s._parentContainer=a.assetContainer,a.scene._blockEntityCollection=!1,e.babylonNode=s,i=s}}if(i!==null){if(e.matrix&&i instanceof Ne)mRe(i,e);else{const s=e.translation||[0,0,0],r=e.rotation||[0,0,0,1],n=e.scale||[1,1,1];EZ(i,P.FromArray(s),Re.FromArray(r),P.FromArray(n))}i.updateCache(!0),e.babylonNode=i}return i},Nw=(a,e,t,i=!1)=>{const s=a.nodes[e];let r=null;if(a.importOnlyMeshes&&!i&&a.importMeshesNames?a.importMeshesNames.indexOf(s.name||"")!==-1||a.importMeshesNames.length===0?i=!0:i=!1:i=!0,!s.jointName&&i&&(r=gRe(a,s,e),r!==null&&(r.id=e,r.parent=t)),s.children)for(let n=0;n<s.children.length;n++)Nw(a,s.children[n],r,i)},ede=a=>{let e=a.currentScene;if(e)for(let t=0;t<e.nodes.length;t++)Nw(a,e.nodes[t],null);else for(const t in a.scenes){e=a.scenes[t];for(let i=0;i<e.nodes.length;i++)Nw(a,e.nodes[i],null)}uRe(a);for(let t=0;t<a.scene.skeletons.length;t++){const i=a.scene.skeletons[t];a.scene.beginAnimation(i,0,Number.MAX_VALUE,!0,1)}},_Re=(a,e,t,i,s,r,n)=>{const o=r.values||s.parameters;for(const l in t){const c=t[l],u=c.type;if(u===sf.FLOAT_MAT2||u===sf.FLOAT_MAT3||u===sf.FLOAT_MAT4){if(c.semantic&&!c.source&&!c.node)Oc.SetMatrix(e.scene,a,c,l,i.getEffect());else if(c.semantic&&(c.source||c.node)){let f=e.scene.getNodeByName(c.source||c.node||"");if(f===null&&(f=e.scene.getNodeById(c.source||c.node||"")),f===null)continue;Oc.SetMatrix(e.scene,f,c,l,i.getEffect())}}else{const f=o[s.uniforms[l]];if(!f)continue;if(u===sf.SAMPLER_2D){const p=e.textures[r.values?f:c.value].babylonTexture;if(p==null)continue;i.getEffect().setTexture(l,p)}else Oc.SetUniform(i.getEffect(),l,f,u)}}n(i)},vRe=(a,e,t,i,s)=>{const r=i.values||t.parameters,n=t.uniforms;for(const o in s){const l=s[o],c=l.type;let u=r[n[o]];if(u===void 0&&(u=l.value),!u)continue;const f=p=>m=>{l.value&&p&&(e.setTexture(p,m),delete s[p])};c===sf.SAMPLER_2D?Mh.LoadTextureAsync(a,i.values?u:l.value,f(o),()=>f(null)):l.value&&Oc.SetUniform(e,o,i.values?u:l.value,c)&&delete s[o]}},ARe=(a,e,t)=>(i,s)=>{e.dispose(!0),t("Cannot compile program named "+a.name+". Error: "+s+". Default material will be applied")},CRe=(a,e,t,i,s,r)=>n=>{vRe(a,e,t,i,s),e.onBind=o=>{_Re(o,a,s,e,t,i,r)}},tde=(a,e,t)=>{for(const i in e.uniforms){const s=e.uniforms[i],r=e.parameters[s];if(a.currentIdentifier===i&&r.semantic&&!r.source&&!r.node){const n=Khe.indexOf(r.semantic);if(n!==-1)return delete t[i],qhe[n]}}return a.currentIdentifier},ide=a=>{for(const e in a.materials)Mh.LoadMaterialAsync(a,e,()=>{},()=>{})};class tb{static CreateRuntime(e,t,i){const s={extensions:{},accessors:{},buffers:{},bufferViews:{},meshes:{},lights:{},cameras:{},nodes:{},images:{},textures:{},shaders:{},programs:{},samplers:{},techniques:{},materials:{},animations:{},skins:{},extensionsUsed:[],scenes:{},buffersCount:0,shaderscount:0,scene:t,rootUrl:i,loadedBufferCount:0,loadedBufferViews:{},loadedShaderCount:0,importOnlyMeshes:!1,dummyNodes:[],assetContainer:null};return e.extensions&&rf(e.extensions,"extensions",s),e.extensionsUsed&&rf(e.extensionsUsed,"extensionsUsed",s),e.buffers&&oRe(e.buffers,s),e.bufferViews&&rf(e.bufferViews,"bufferViews",s),e.accessors&&rf(e.accessors,"accessors",s),e.meshes&&rf(e.meshes,"meshes",s),e.lights&&rf(e.lights,"lights",s),e.cameras&&rf(e.cameras,"cameras",s),e.nodes&&rf(e.nodes,"nodes",s),e.images&&rf(e.images,"images",s),e.textures&&rf(e.textures,"textures",s),e.shaders&&lRe(e.shaders,s),e.programs&&rf(e.programs,"programs",s),e.samplers&&rf(e.samplers,"samplers",s),e.techniques&&rf(e.techniques,"techniques",s),e.materials&&rf(e.materials,"materials",s),e.animations&&rf(e.animations,"animations",s),e.skins&&rf(e.skins,"skins",s),e.scenes&&(s.scenes=e.scenes),e.scene&&e.scenes&&(s.currentScene=e.scenes[e.scene]),s}static LoadBufferAsync(e,t,i,s,r){const n=e.buffers[t];Le.IsBase64(n.uri)?setTimeout(()=>i(new Uint8Array(Le.DecodeBase64(n.uri)))):Le.LoadFile(e.rootUrl+n.uri,o=>i(new Uint8Array(o)),r,void 0,!0,o=>{o&&s(o.status+" "+o.statusText)})}static LoadTextureBufferAsync(e,t,i,s){const r=e.textures[t];if(!r||!r.source){s("");return}if(r.babylonTexture){i(null);return}const n=e.images[r.source];Le.IsBase64(n.uri)?setTimeout(()=>i(new Uint8Array(Le.DecodeBase64(n.uri)))):Le.LoadFile(e.rootUrl+n.uri,o=>i(new Uint8Array(o)),void 0,void 0,!0,o=>{o&&s(o.status+" "+o.statusText)})}static CreateTextureAsync(e,t,i,s){const r=e.textures[t];if(r.babylonTexture){s(r.babylonTexture);return}const n=e.samplers[r.sampler],o=n.minFilter===Z6.NEAREST_MIPMAP_NEAREST||n.minFilter===Z6.NEAREST_MIPMAP_LINEAR||n.minFilter===Z6.LINEAR_MIPMAP_NEAREST||n.minFilter===Z6.LINEAR_MIPMAP_LINEAR,l=be.BILINEAR_SAMPLINGMODE,c=i==null?new Blob:new Blob([i]),u=URL.createObjectURL(c),f=()=>URL.revokeObjectURL(u),p=new be(u,e.scene,!o,!0,l,f,f);n.wrapS!==void 0&&(p.wrapU=Oc.GetWrapMode(n.wrapS)),n.wrapT!==void 0&&(p.wrapV=Oc.GetWrapMode(n.wrapT)),p.name=t,r.babylonTexture=p,s(p)}static LoadShaderStringAsync(e,t,i,s){const r=e.shaders[t];if(Le.IsBase64(r.uri)){const n=atob(r.uri.split(",")[1]);i&&i(n)}else Le.LoadFile(e.rootUrl+r.uri,i,void 0,void 0,!1,n=>{n&&s&&s(n.status+" "+n.statusText)})}static LoadMaterialAsync(e,t,i,s){const r=e.materials[t];if(!r.technique){s&&s("No technique found.");return}const n=e.techniques[r.technique];if(!n){e.scene._blockEntityCollection=!!e.assetContainer;const M=new Bt(t,e.scene);M._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,M.diffuseColor=new Pe(.5,.5,.5),M.sideOrientation=ft.CounterClockWiseSideOrientation,i(M);return}const o=e.programs[n.program],l=n.states,c=Ls.ShadersStore[o.vertexShader+"VertexShader"],u=Ls.ShadersStore[o.fragmentShader+"PixelShader"];let f="",p="";const m=new Zhe(c),_=new Zhe(u),d={},h=[],x=[],A=[];for(const M in n.uniforms){const T=n.uniforms[M],O=n.parameters[T];if(d[M]=O,O.semantic&&!O.node&&!O.source){const R=Khe.indexOf(O.semantic);R!==-1?(h.push(qhe[R]),delete d[M]):h.push(M)}else O.type===sf.SAMPLER_2D?A.push(M):h.push(M)}for(const M in n.attributes){const T=n.attributes[M],O=n.parameters[T];if(O.semantic){const R=Qhe(O);R&&x.push(R)}}for(;!m.isEnd()&&m.getNextToken();){if(m.currentToken!==wT.IDENTIFIER){f+=m.currentString;continue}let T=!1;for(const O in n.attributes){const R=n.attributes[O],I=n.parameters[R];if(m.currentIdentifier===O&&I.semantic){f+=Qhe(I),T=!0;break}}T||(f+=tde(m,n,d))}for(;!_.isEnd()&&_.getNextToken();){if(_.currentToken!==wT.IDENTIFIER){p+=_.currentString;continue}p+=tde(_,n,d)}const S={vertex:o.vertexShader+t,fragment:o.fragmentShader+t},E={attributes:x,uniforms:h,samplers:A,needAlphaBlending:l&&l.enable&&l.enable.indexOf(3042)!==-1};Ls.ShadersStore[o.vertexShader+t+"VertexShader"]=f,Ls.ShadersStore[o.fragmentShader+t+"PixelShader"]=p;const b=new Fo(t,e.scene,S,E);if(b.onError=ARe(o,b,s),b.onCompiled=CRe(e,b,n,r,d,i),b.sideOrientation=ft.CounterClockWiseSideOrientation,l&&l.functions){const M=l.functions;M.cullFace&&M.cullFace[0]!==bG.BACK&&(b.backFaceCulling=!1);const T=M.blendFuncSeparate;T&&(T[0]===Jo.SRC_ALPHA&&T[1]===Jo.ONE_MINUS_SRC_ALPHA&&T[2]===Jo.ONE&&T[3]===Jo.ONE?b.alphaMode=ze.ALPHA_COMBINE:T[0]===Jo.ONE&&T[1]===Jo.ONE&&T[2]===Jo.ZERO&&T[3]===Jo.ONE?b.alphaMode=ze.ALPHA_ONEONE:T[0]===Jo.SRC_ALPHA&&T[1]===Jo.ONE&&T[2]===Jo.ZERO&&T[3]===Jo.ONE?b.alphaMode=ze.ALPHA_ADD:T[0]===Jo.ZERO&&T[1]===Jo.ONE_MINUS_SRC_COLOR&&T[2]===Jo.ONE&&T[3]===Jo.ONE?b.alphaMode=ze.ALPHA_SUBTRACT:T[0]===Jo.DST_COLOR&&T[1]===Jo.ZERO&&T[2]===Jo.ONE&&T[3]===Jo.ONE?b.alphaMode=ze.ALPHA_MULTIPLY:T[0]===Jo.SRC_ALPHA&&T[1]===Jo.ONE_MINUS_SRC_COLOR&&T[2]===Jo.ONE&&T[3]===Jo.ONE&&(b.alphaMode=ze.ALPHA_MAXIMIZED))}}}let q9=class _ue{static RegisterExtension(e){if(_ue.Extensions[e.name]){Le.Error('Tool with the same name "'+e.name+'" already exists');return}_ue.Extensions[e.name]=e}dispose(){}_importMeshAsync(e,t,i,s,r,n,o,l){return t.useRightHandedSystem=!0,Mh.LoadRuntimeAsync(t,i,s,c=>{c.assetContainer=r,c.importOnlyMeshes=!0,e===""?c.importMeshesNames=[]:typeof e=="string"?c.importMeshesNames=[e]:e&&!(e instanceof Array)?c.importMeshesNames=[e]:(c.importMeshesNames=[],Le.Warn("Argument meshesNames must be of type string or string[]")),this._createNodes(c);const u=[],f=[];for(const p in c.nodes){const m=c.nodes[p];m.babylonNode instanceof cr&&u.push(m.babylonNode)}for(const p in c.skins){const m=c.skins[p];m.babylonSkeleton instanceof Wv&&f.push(m.babylonSkeleton)}this._loadBuffersAsync(c,()=>{this._loadShadersAsync(c,()=>{ide(c),ede(c),!ku.IncrementalLoading&&n&&n(u,f)})}),ku.IncrementalLoading&&n&&n(u,f)},l),!0}importMeshAsync(e,t,i,s,r,n){return new Promise((o,l)=>{this._importMeshAsync(e,t,s,r,i,(c,u)=>{o({meshes:c,particleSystems:[],skeletons:u,animationGroups:[],lights:[],transformNodes:[],geometries:[],spriteManagers:[]})},n,c=>{l(new Error(c))})})}_loadAsync(e,t,i,s,r,n){e.useRightHandedSystem=!0,Mh.LoadRuntimeAsync(e,t,i,o=>{Mh.LoadRuntimeExtensionsAsync(o,()=>{this._createNodes(o),this._loadBuffersAsync(o,()=>{this._loadShadersAsync(o,()=>{ide(o),ede(o),ku.IncrementalLoading||s()})}),ku.IncrementalLoading&&s()},n)},n)}loadAsync(e,t,i,s){return new Promise((r,n)=>{this._loadAsync(e,t,i,()=>{r()},s,o=>{n(new Error(o))})})}_loadShadersAsync(e,t){let i=!1;const s=(r,n)=>{Mh.LoadShaderStringAsync(e,r,o=>{o instanceof ArrayBuffer||(e.loadedShaderCount++,o&&(Ls.ShadersStore[r+(n.type===xG.VERTEX?"VertexShader":"PixelShader")]=o),e.loadedShaderCount===e.shaderscount&&t())},()=>{Le.Error("Error when loading shader program named "+r+" located at "+n.uri)})};for(const r in e.shaders){i=!0;const n=e.shaders[r];n?s.bind(this,r,n)():Le.Error("No shader named: "+r)}i||t()}_loadBuffersAsync(e,t){let i=!1;const s=(r,n)=>{Mh.LoadBufferAsync(e,r,o=>{e.loadedBufferCount++,o&&(o.byteLength!=e.buffers[r].byteLength&&Le.Error("Buffer named "+r+" is length "+o.byteLength+". Expected: "+n.byteLength),e.loadedBufferViews[r]=o),e.loadedBufferCount===e.buffersCount&&t()},()=>{Le.Error("Error when loading buffer named "+r+" located at "+n.uri)})};for(const r in e.buffers){i=!0;const n=e.buffers[r];n?s.bind(this,r,n)():Le.Error("No buffer named: "+r)}i||t()}_createNodes(e){let t=e.currentScene;if(t)for(let i=0;i<t.nodes.length;i++)Nw(e,t.nodes[i],null);else for(const i in e.scenes){t=e.scenes[i];for(let s=0;s<t.nodes.length;s++)Nw(e,t.nodes[s],null)}}};q9.Extensions={};class Mh{constructor(e){this._name=e}get name(){return this._name}loadRuntimeAsync(e,t,i,s,r){return!1}loadRuntimeExtensionsAsync(e,t,i){return!1}loadBufferAsync(e,t,i,s,r){return!1}loadTextureBufferAsync(e,t,i,s){return!1}createTextureAsync(e,t,i,s,r){return!1}loadShaderStringAsync(e,t,i,s){return!1}loadMaterialAsync(e,t,i,s){return!1}static LoadRuntimeAsync(e,t,i,s,r){Mh._ApplyExtensions(n=>n.loadRuntimeAsync(e,t,i,s,r),()=>{setTimeout(()=>{s&&s(tb.CreateRuntime(t.json,e,i))})})}static LoadRuntimeExtensionsAsync(e,t,i){Mh._ApplyExtensions(s=>s.loadRuntimeExtensionsAsync(e,t,i),()=>{setTimeout(()=>{t()})})}static LoadBufferAsync(e,t,i,s,r){Mh._ApplyExtensions(n=>n.loadBufferAsync(e,t,i,s,r),()=>{tb.LoadBufferAsync(e,t,i,s,r)})}static LoadTextureAsync(e,t,i,s){Mh._LoadTextureBufferAsync(e,t,r=>{r&&Mh._CreateTextureAsync(e,t,r,i,s)},s)}static LoadShaderStringAsync(e,t,i,s){Mh._ApplyExtensions(r=>r.loadShaderStringAsync(e,t,i,s),()=>{tb.LoadShaderStringAsync(e,t,i,s)})}static LoadMaterialAsync(e,t,i,s){Mh._ApplyExtensions(r=>r.loadMaterialAsync(e,t,i,s),()=>{tb.LoadMaterialAsync(e,t,i,s)})}static _LoadTextureBufferAsync(e,t,i,s){Mh._ApplyExtensions(r=>r.loadTextureBufferAsync(e,t,i,s),()=>{tb.LoadTextureBufferAsync(e,t,i,s)})}static _CreateTextureAsync(e,t,i,s,r){Mh._ApplyExtensions(n=>n.createTextureAsync(e,t,i,s,r),()=>{tb.CreateTextureAsync(e,t,i,s)})}static _ApplyExtensions(e,t){for(const i in q9.Extensions){const s=q9.Extensions[i];if(e(s))return}t()}}ku._CreateGLTF1Loader=()=>new q9;const xRe="binary_glTF";class sde extends Mh{constructor(){super("KHR_binary_glTF")}loadRuntimeAsync(e,t,i,s){const r=t.json.extensionsUsed;return!r||r.indexOf(this.name)===-1||!t.bin?!1:(this._bin=t.bin,s(tb.CreateRuntime(t.json,e,i)),!0)}loadBufferAsync(e,t,i,s){return e.extensionsUsed.indexOf(this.name)===-1||t!==xRe?!1:(this._bin.readAsync(0,this._bin.byteLength).then(i,r=>s(r.message)),!0)}loadTextureBufferAsync(e,t,i){const s=e.textures[t],r=e.images[s.source];if(!r.extensions||!(this.name in r.extensions))return!1;const n=r.extensions[this.name],o=e.bufferViews[n.bufferView],l=Oc.GetBufferFromBufferView(e,o,0,o.byteLength,by.UNSIGNED_BYTE);return i(l),!0}loadShaderStringAsync(e,t,i){const s=e.shaders[t];if(!s.extensions||!(this.name in s.extensions))return!1;const r=s.extensions[this.name],n=e.bufferViews[r.bufferView],o=Oc.GetBufferFromBufferView(e,n,0,n.byteLength,by.UNSIGNED_BYTE);return setTimeout(()=>{const l=Oc.DecodeBufferToText(o);i(l)}),!0}}q9.RegisterExtension(new sde);class rde extends Mh{constructor(){super("KHR_materials_common")}loadRuntimeExtensionsAsync(e){if(!e.extensions)return!1;const t=e.extensions[this.name];if(!t)return!1;const i=t.lights;if(i)for(const s in i){const r=i[s];switch(r.type){case"ambient":{const n=new b4(r.name,new P(0,1,0),e.scene),o=r.ambient;o&&(n.diffuse=Pe.FromArray(o.color||[1,1,1]));break}case"point":{const n=new NT(r.name,new P(10,10,10),e.scene),o=r.point;o&&(n.diffuse=Pe.FromArray(o.color||[1,1,1]));break}case"directional":{const n=new W1(r.name,new P(0,-1,0),e.scene),o=r.directional;o&&(n.diffuse=Pe.FromArray(o.color||[1,1,1]));break}case"spot":{const n=r.spot;if(n){const o=new $o(r.name,new P(0,10,0),new P(0,-1,0),n.fallOffAngle||Math.PI,n.fallOffExponent||0,e.scene);o.diffuse=Pe.FromArray(n.color||[1,1,1])}break}default:Le.Warn('GLTF Material Common extension: light type "'+r.type+"” not supported");break}}return!1}loadMaterialAsync(e,t,i,s){const r=e.materials[t];if(!r||!r.extensions)return!1;const n=r.extensions[this.name];if(!n)return!1;const o=new Bt(t,e.scene);return o.sideOrientation=ft.CounterClockWiseSideOrientation,n.technique==="CONSTANT"&&(o.disableLighting=!0),o.backFaceCulling=n.doubleSided===void 0?!1:!n.doubleSided,o.alpha=n.values.transparency===void 0?1:n.values.transparency,o.specularPower=n.values.shininess===void 0?0:n.values.shininess,typeof n.values.ambient=="string"?this._loadTexture(e,n.values.ambient,o,"ambientTexture",s):o.ambientColor=Pe.FromArray(n.values.ambient||[0,0,0]),typeof n.values.diffuse=="string"?this._loadTexture(e,n.values.diffuse,o,"diffuseTexture",s):o.diffuseColor=Pe.FromArray(n.values.diffuse||[0,0,0]),typeof n.values.emission=="string"?this._loadTexture(e,n.values.emission,o,"emissiveTexture",s):o.emissiveColor=Pe.FromArray(n.values.emission||[0,0,0]),typeof n.values.specular=="string"?this._loadTexture(e,n.values.specular,o,"specularTexture",s):o.specularColor=Pe.FromArray(n.values.specular||[0,0,0]),!0}_loadTexture(e,t,i,s,r){tb.LoadTextureBufferAsync(e,t,n=>{tb.CreateTextureAsync(e,t,n,o=>i[s]=o)},r)}}q9.RegisterExtension(new rde);const bRe=Object.freeze(Object.defineProperty({__proto__:null,get EBlendingFunction(){return Jo},get EComponentType(){return by},get ECullingType(){return bG},get EParameterType(){return sf},get EShaderType(){return xG},get ETextureFilterType(){return Z6},get ETextureFormat(){return cZ},get ETextureWrapMode(){return yP},GLTFBinaryExtension:sde,GLTFLoader:q9,GLTFLoaderBase:tb,GLTFLoaderExtension:Mh,GLTFMaterialsCommonExtension:rde,GLTFUtils:Oc},Symbol.toStringTag,{value:"Module"}));class Q9{get resolve(){return this._resolve}get reject(){return this._reject}constructor(){this.promise=new Promise((e,t)=>{this._resolve=e,this._reject=t})}}const TZ="postprocessVertexShader",nde=`attribute vec2 position;uniform vec2 scale;varying vec2 vUV;const vec2 madd=vec2(0.5,0.5);
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
vUV=(position*madd+madd)*scale;gl_Position=vec4(position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[TZ]||(H.ShadersStore[TZ]=nde);const ade={name:TZ,shader:nde},ode=Object.freeze(Object.defineProperty({__proto__:null,postprocessVertexShader:ade},Symbol.toStringTag,{value:"Module"})),LZ={positions:[1,1,-1,1,-1,-1,1,-1],indices:[0,1,2,0,2,3]};class BT{constructor(e,t=LZ){this._fullscreenViewport=new Tc(0,0,1,1);const i=t.positions??LZ.positions,s=t.indices??LZ.indices;this.engine=e,this._vertexBuffers={[q.PositionKind]:new q(e,i,q.PositionKind,!1,!1,2)},this._indexBuffer=e.createIndexBuffer(s),this._onContextRestoredObserver=e.onContextRestoredObservable.add(()=>{this._indexBuffer=e.createIndexBuffer(s);for(const r in this._vertexBuffers)this._vertexBuffers[r]._rebuild()})}setViewport(e=this._fullscreenViewport){this.engine.setViewport(e)}bindBuffers(e){this.engine.bindBuffers(this._vertexBuffers,this._indexBuffer,e)}applyEffectWrapper(e){this.engine.setState(!0),this.engine.depthCullingState.depthTest=!1,this.engine.stencilState.stencilTest=!1,this.engine.enableEffect(e.drawWrapper),this.bindBuffers(e.effect),e.onApplyObservable.notifyObservers({})}saveStates(){this._savedStateDepthTest=this.engine.depthCullingState.depthTest,this._savedStateStencilTest=this.engine.stencilState.stencilTest}restoreStates(){this.engine.depthCullingState.depthTest=this._savedStateDepthTest,this.engine.stencilState.stencilTest=this._savedStateStencilTest}draw(){this.engine.drawElementsType(0,0,6)}_isRenderTargetTexture(e){return e.renderTarget!==void 0}render(e,t=null){if(!e.effect.isReady())return;this.saveStates(),this.setViewport();const i=t===null?null:this._isRenderTargetTexture(t)?t.renderTarget:t;i&&this.engine.bindFramebuffer(i),this.applyEffectWrapper(e),this.draw(),i&&this.engine.unBindFramebuffer(i),this.restoreStates()}dispose(){const e=this._vertexBuffers[q.PositionKind];e&&(e.dispose(),delete this._vertexBuffers[q.PositionKind]),this._indexBuffer&&this.engine._releaseBuffer(this._indexBuffer),this._onContextRestoredObserver&&(this.engine.onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null)}}class Qr{static RegisterShaderCodeProcessing(e,t){if(!t){delete Qr._CustomShaderCodeProcessing[e??""];return}Qr._CustomShaderCodeProcessing[e??""]=t}static _GetShaderCodeProcessing(e){return Qr._CustomShaderCodeProcessing[e]??Qr._CustomShaderCodeProcessing[""]}get name(){return this.options.name}set name(e){this.options.name=e}isReady(){var e;return((e=this._drawWrapper.effect)==null?void 0:e.isReady())??!1}get drawWrapper(){return this._drawWrapper}get effect(){return this._drawWrapper.effect}set effect(e){this._drawWrapper.effect=e}constructor(e){this.alphaMode=0,this.onEffectCreatedObservable=new xe(void 0,!0),this.onApplyObservable=new xe,this._shadersLoaded=!1,this._webGPUReady=!1,this._importPromises=[],this.options={...e,name:e.name||"effectWrapper",engine:e.engine,uniforms:e.uniforms||e.uniformNames||[],uniformNames:void 0,samplers:e.samplers||e.samplerNames||[],samplerNames:void 0,attributeNames:e.attributeNames||["position"],uniformBuffers:e.uniformBuffers||[],defines:e.defines||"",useShaderStore:e.useShaderStore||!1,vertexUrl:e.vertexUrl||e.vertexShader||"postprocess",vertexShader:void 0,fragmentShader:e.fragmentShader||"pass",indexParameters:e.indexParameters,blockCompilation:e.blockCompilation||!1,shaderLanguage:e.shaderLanguage||0,onCompiled:e.onCompiled||void 0,extraInitializations:e.extraInitializations||void 0,extraInitializationsAsync:e.extraInitializationsAsync||void 0,useAsPostProcess:e.useAsPostProcess??!1},this.options.uniformNames=this.options.uniforms,this.options.samplerNames=this.options.samplers,this.options.vertexShader=this.options.vertexUrl,this.options.useAsPostProcess&&(this.options.samplers.indexOf("textureSampler")===-1&&this.options.samplers.push("textureSampler"),this.options.uniforms.indexOf("scale")===-1&&this.options.uniforms.push("scale")),e.vertexUrl||e.vertexShader?this._shaderPath={vertexSource:this.options.vertexShader}:(this.options.useAsPostProcess||(this.options.uniforms.push("scale"),this.onApplyObservable.add(()=>{this.effect.setFloat2("scale",1,1)})),this._shaderPath={vertex:this.options.vertexShader}),this._shaderPath.fragmentSource=this.options.fragmentShader,this._shaderPath.spectorName=this.options.name,this.options.useShaderStore&&(this._shaderPath.fragment=this._shaderPath.fragmentSource,this._shaderPath.vertex||(this._shaderPath.vertex=this._shaderPath.vertexSource),delete this._shaderPath.fragmentSource,delete this._shaderPath.vertexSource),this.onApplyObservable.add(()=>{this.bind()}),this.options.useShaderStore||(this._onContextRestoredObserver=this.options.engine.onContextRestoredObservable.add(()=>{this.effect._pipelineContext=null,this.effect._prepareEffect()})),this._drawWrapper=new ql(this.options.engine),this._webGPUReady=this.options.shaderLanguage===1;const t=Array.isArray(this.options.defines)?this.options.defines.join(`
`):this.options.defines;this._postConstructor(this.options.blockCompilation,t,this.options.extraInitializations)}_gatherImports(e=!1,t){this.options.useAsPostProcess&&(e&&this._webGPUReady?t.push(Promise.all([Promise.resolve().then(()=>W7e)])):t.push(Promise.all([Promise.resolve().then(()=>ode)])))}_postConstructor(e,t=null,i,s){this._importPromises.length=0,s&&this._importPromises.push(...s);const r=this.options.engine.isWebGPU&&!Qr.ForceGLSL;this._gatherImports(r,this._importPromises),i!==void 0&&i(r,this._importPromises),r&&this._webGPUReady&&(this.options.shaderLanguage=1),e||this.updateEffect(t)}updateEffect(e=null,t=null,i=null,s,r,n,o,l){const c=Qr._GetShaderCodeProcessing(this.name);if(c!=null&&c.defineCustomBindings){const p=(t==null?void 0:t.slice())??[];p.push(...this.options.uniforms);const m=(i==null?void 0:i.slice())??[];m.push(...this.options.samplers),e=c.defineCustomBindings(this.name,e,p,m),t=p,i=m}this.options.defines=e||"";const u=this._shadersLoaded||this._importPromises.length===0?void 0:async()=>{await Promise.all(this._importPromises),this._shadersLoaded=!0};let f;this.options.extraInitializationsAsync?f=async()=>{u==null||u(),await this.options.extraInitializationsAsync()}:f=u,this.options.useShaderStore?this._drawWrapper.effect=this.options.engine.createEffect({vertex:o??this._shaderPath.vertex,fragment:l??this._shaderPath.fragment},{attributes:this.options.attributeNames,uniformsNames:t||this.options.uniforms,uniformBuffersNames:this.options.uniformBuffers,samplers:i||this.options.samplers,defines:e!==null?e:"",fallbacks:null,onCompiled:r??this.options.onCompiled,onError:n??null,indexParameters:s||this.options.indexParameters,processCodeAfterIncludes:c!=null&&c.processCodeAfterIncludes?(p,m)=>c.processCodeAfterIncludes(this.name,p,m):null,processFinalCode:c!=null&&c.processFinalCode?(p,m)=>c.processFinalCode(this.name,p,m):null,shaderLanguage:this.options.shaderLanguage,extraInitializationsAsync:f},this.options.engine):this._drawWrapper.effect=new Ls(this._shaderPath,this.options.attributeNames,t||this.options.uniforms,i||this.options.samplerNames,this.options.engine,e,void 0,r||this.options.onCompiled,void 0,void 0,void 0,this.options.shaderLanguage,f),this.onEffectCreatedObservable.notifyObservers(this._drawWrapper.effect)}bind(){var e,t;this.options.useAsPostProcess&&(this.options.engine.setAlphaMode(this.alphaMode),this.drawWrapper.effect.setFloat2("scale",1,1)),(t=(e=Qr._GetShaderCodeProcessing(this.name))==null?void 0:e.bindCustomBindings)==null||t.call(e,this.name,this._drawWrapper.effect)}dispose(e=!1){this._onContextRestoredObserver&&(this.effect.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null),this.onEffectCreatedObservable.clear(),this._drawWrapper.dispose(!0)}}Qr.ForceGLSL=!1,Qr._CustomShaderCodeProcessing={},dt.prototype.setTextureFromPostProcess=function(a,e,t){let i=null;e&&(e._forcedOutputTexture?i=e._forcedOutputTexture:e._textures.data[e._currentRenderTextureInd]&&(i=e._textures.data[e._currentRenderTextureInd])),this._bindTexture(a,(i==null?void 0:i.texture)??null,t)},dt.prototype.setTextureFromPostProcessOutput=function(a,e,t){var i;this._bindTexture(a,((i=e==null?void 0:e._outputTexture)==null?void 0:i.texture)??null,t)},Ls.prototype.setTextureFromPostProcess=function(a,e){this._engine.setTextureFromPostProcess(this._samplers[a],e,a)},Ls.prototype.setTextureFromPostProcessOutput=function(a,e){this._engine.setTextureFromPostProcessOutput(this._samplers[a],e,a)};class Mi{static get ForceGLSL(){return Qr.ForceGLSL}static set ForceGLSL(e){Qr.ForceGLSL=e}static RegisterShaderCodeProcessing(e,t){Qr.RegisterShaderCodeProcessing(e,t)}get name(){return this._effectWrapper.name}set name(e){this._effectWrapper.name=e}get alphaMode(){return this._effectWrapper.alphaMode}set alphaMode(e){this._effectWrapper.alphaMode=e}get samples(){return this._samples}set samples(e){this._samples=Math.min(e,this._engine.getCaps().maxMSAASamples),this._textures.forEach(t=>{t.setSamples(this._samples)})}get shaderLanguage(){return this._shaderLanguage}getEffectName(){return this._fragmentUrl}set onActivate(e){this._onActivateObserver&&this.onActivateObservable.remove(this._onActivateObserver),e&&(this._onActivateObserver=this.onActivateObservable.add(e))}set onSizeChanged(e){this._onSizeChangedObserver&&this.onSizeChangedObservable.remove(this._onSizeChangedObserver),this._onSizeChangedObserver=this.onSizeChangedObservable.add(e)}set onApply(e){this._onApplyObserver&&this.onApplyObservable.remove(this._onApplyObserver),this._onApplyObserver=this.onApplyObservable.add(e)}set onBeforeRender(e){this._onBeforeRenderObserver&&this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=this.onBeforeRenderObservable.add(e)}set onAfterRender(e){this._onAfterRenderObserver&&this.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=this.onAfterRenderObservable.add(e)}get inputTexture(){return this._textures.data[this._currentRenderTextureInd]}set inputTexture(e){this._forcedOutputTexture=e}restoreDefaultInputTexture(){this._forcedOutputTexture&&(this._forcedOutputTexture=null,this.markTextureDirty())}getCamera(){return this._camera}get texelSize(){return this._shareOutputWithPostProcess?this._shareOutputWithPostProcess.texelSize:(this._forcedOutputTexture&&this._texelSize.copyFromFloats(1/this._forcedOutputTexture.width,1/this._forcedOutputTexture.height),this._texelSize)}constructor(e,t,i,s,r,n,o=1,l,c,u=null,f=0,p="postprocess",m,_=!1,d=5,h,x){this._parentContainer=null,this.width=-1,this.height=-1,this.nodeMaterialSource=null,this._outputTexture=null,this.autoClear=!0,this.forceAutoClearInAlphaMode=!1,this.animations=[],this.enablePixelPerfectMode=!1,this.forceFullscreenViewport=!0,this.scaleMode=1,this.alwaysForcePOT=!1,this._samples=1,this.adaptScaleToCurrentViewport=!1,this._webGPUReady=!1,this._reusable=!1,this._renderId=0,this.externalTextureSamplerBinding=!1,this._textures=new dl(2),this._textureCache=[],this._currentRenderTextureInd=0,this._scaleRatio=new Ue(1,1),this._texelSize=Ue.Zero(),this.onActivateObservable=new xe,this.onSizeChangedObservable=new xe,this.onApplyObservable=new xe,this.onBeforeRenderObservable=new xe,this.onAfterRenderObservable=new xe,this.onDisposeObservable=new xe;let A=1,S=null,E;if(i&&!Array.isArray(i)){const b=i;i=b.uniforms??null,s=b.samplers??null,A=b.size??1,n=b.camera??null,o=b.samplingMode??1,l=b.engine,c=b.reusable,u=Array.isArray(b.defines)?b.defines.join(`
`):b.defines??null,f=b.textureType??0,p=b.vertexUrl??"postprocess",m=b.indexParameters,_=b.blockCompilation??!1,d=b.textureFormat??5,h=b.shaderLanguage??0,S=b.uniformBuffers??null,x=b.extraInitializations,E=b.effectWrapper}else r&&(typeof r=="number"?A=r:A={width:r.width,height:r.height});if(this._useExistingThinPostProcess=!!E,this._effectWrapper=E??new Qr({name:e,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:t,engine:l||(n==null?void 0:n.getScene().getEngine()),uniforms:i,samplers:s,uniformBuffers:S,defines:u,vertexUrl:p,indexParameters:m,blockCompilation:!0,shaderLanguage:h,extraInitializations:void 0}),this.name=e,this.onEffectCreatedObservable=this._effectWrapper.onEffectCreatedObservable,n!=null?(this._camera=n,this._scene=n.getScene(),n.attachPostProcess(this),this._engine=this._scene.getEngine(),this._scene.postProcesses.push(this),this.uniqueId=this._scene.getUniqueId()):l&&(this._engine=l,this._engine.postProcesses.push(this)),this._options=A,this.renderTargetSamplingMode=o||1,this._reusable=c||!1,this._textureType=f,this._textureFormat=d,this._shaderLanguage=h||0,this._samplers=s||[],this._samplers.indexOf("textureSampler")===-1&&this._samplers.push("textureSampler"),this._fragmentUrl=t,this._vertexUrl=p,this._parameters=i||[],this._parameters.indexOf("scale")===-1&&this._parameters.push("scale"),this._uniformBuffers=S||[],this._indexParameters=m,!this._useExistingThinPostProcess){this._webGPUReady=this._shaderLanguage===1;const b=[];this._gatherImports(this._engine.isWebGPU&&!Mi.ForceGLSL,b),this._effectWrapper._webGPUReady=this._webGPUReady,this._effectWrapper._postConstructor(_,u,x,b)}}_gatherImports(e=!1,t){e&&this._webGPUReady?t.push(Promise.all([Promise.resolve().then(()=>W7e)])):t.push(Promise.all([Promise.resolve().then(()=>ode)]))}getClassName(){return"PostProcess"}getEngine(){return this._engine}getEffect(){return this._effectWrapper.drawWrapper.effect}shareOutputWith(e){return this._disposeTextures(),this._shareOutputWithPostProcess=e,this}useOwnOutput(){this._textures.length==0&&(this._textures=new dl(2)),this._shareOutputWithPostProcess=null}updateEffect(e=null,t=null,i=null,s,r,n,o,l){this._effectWrapper.updateEffect(e,t,i,s,r,n,o,l),this._postProcessDefines=Array.isArray(this._effectWrapper.options.defines)?this._effectWrapper.options.defines.join(`
`):this._effectWrapper.options.defines}isReusable(){return this._reusable}markTextureDirty(){this.width=-1}_createRenderTargetTexture(e,t,i=0){for(let r=0;r<this._textureCache.length;r++)if(this._textureCache[r].texture.width===e.width&&this._textureCache[r].texture.height===e.height&&this._textureCache[r].postProcessChannel===i&&this._textureCache[r].texture._generateDepthBuffer===t.generateDepthBuffer&&this._textureCache[r].texture.samples===t.samples)return this._textureCache[r].texture;const s=this._engine.createRenderTargetTexture(e,t);return this._textureCache.push({texture:s,postProcessChannel:i,lastUsedRenderId:-1}),s}_flushTextureCache(){const e=this._renderId;for(let t=this._textureCache.length-1;t>=0;t--)if(e-this._textureCache[t].lastUsedRenderId>100){let i=!1;for(let s=0;s<this._textures.length;s++)if(this._textures.data[s]===this._textureCache[t].texture){i=!0;break}i||(this._textureCache[t].texture.dispose(),this._textureCache.splice(t,1))}}resize(e,t,i=null,s=!1,r=!1){this._textures.length>0&&this._textures.reset(),this.width=e,this.height=t;let n=null;if(i){for(let c=0;c<i._postProcesses.length;c++)if(i._postProcesses[c]!==null){n=i._postProcesses[c];break}}const o={width:this.width,height:this.height},l={generateMipMaps:s,generateDepthBuffer:r||n===this,generateStencilBuffer:(r||n===this)&&this._engine.isStencilEnable,samplingMode:this.renderTargetSamplingMode,type:this._textureType,format:this._textureFormat,samples:this._samples,label:"PostProcessRTT-"+this.name};this._textures.push(this._createRenderTargetTexture(o,l,0)),this._reusable&&this._textures.push(this._createRenderTargetTexture(o,l,1)),this._texelSize.copyFromFloats(1/this.width,1/this.height),this.onSizeChangedObservable.notifyObservers(this)}_getTarget(){let e;if(this._shareOutputWithPostProcess)e=this._shareOutputWithPostProcess.inputTexture;else if(this._forcedOutputTexture)e=this._forcedOutputTexture,this.width=this._forcedOutputTexture.width,this.height=this._forcedOutputTexture.height;else{e=this.inputTexture;let t;for(let i=0;i<this._textureCache.length;i++)if(this._textureCache[i].texture===e){t=this._textureCache[i];break}t&&(t.lastUsedRenderId=this._renderId)}return e}activate(e,t=null,i){var _,d;const s=e===null||e.cameraRigMode!==void 0?e||this._camera:null,r=(s==null?void 0:s.getScene())??e,n=r.getEngine(),o=n.getCaps().maxTextureSize,l=(t?t.width:this._engine.getRenderWidth(!0))*this._options|0,c=(t?t.height:this._engine.getRenderHeight(!0))*this._options|0;let u=this._options.width||l,f=this._options.height||c;const p=this.renderTargetSamplingMode!==7&&this.renderTargetSamplingMode!==1&&this.renderTargetSamplingMode!==2;let m=null;if(!this._shareOutputWithPostProcess&&!this._forcedOutputTexture){if(this.adaptScaleToCurrentViewport){const h=n.currentViewport;h&&(u*=h.width,f*=h.height)}(p||this.alwaysForcePOT)&&(this._options.width||(u=n.needPOTTextures?g0(u,o,this.scaleMode):u),this._options.height||(f=n.needPOTTextures?g0(f,o,this.scaleMode):f)),(this.width!==u||this.height!==f||!(m=this._getTarget()))&&this.resize(u,f,s,p,i),this._textures.forEach(h=>{h.samples!==this.samples&&this._engine.updateRenderTargetTextureSampleCount(h,this.samples)}),this._flushTextureCache(),this._renderId++}return m||(m=this._getTarget()),this.enablePixelPerfectMode?(this._scaleRatio.copyFromFloats(l/u,c/f),this._engine.bindFramebuffer(m,0,l,c,this.forceFullscreenViewport)):(this._scaleRatio.copyFromFloats(1,1),this._engine.bindFramebuffer(m,0,void 0,void 0,this.forceFullscreenViewport)),(d=(_=this._engine)._debugInsertMarker)==null||d.call(_,`post process ${this.name} input`),this.onActivateObservable.notifyObservers(s),this.autoClear&&(this.alphaMode===0||this.forceAutoClearInAlphaMode)&&this._engine.clear(this.clearColor?this.clearColor:r.clearColor,r._allowPostProcessClearColor,!0,!0),this._reusable&&(this._currentRenderTextureInd=(this._currentRenderTextureInd+1)%2),m}get isSupported(){return this._effectWrapper.drawWrapper.effect.isSupported}get aspectRatio(){return this._shareOutputWithPostProcess?this._shareOutputWithPostProcess.aspectRatio:this._forcedOutputTexture?this._forcedOutputTexture.width/this._forcedOutputTexture.height:this.width/this.height}isReady(){return this._effectWrapper.isReady()}apply(){if(!this._effectWrapper.isReady())return null;this._engine.enableEffect(this._effectWrapper.drawWrapper),this._engine.setState(!1),this._engine.setDepthBuffer(!1),this._engine.setDepthWrite(!1),this.alphaConstants&&this.getEngine().setAlphaConstants(this.alphaConstants.r,this.alphaConstants.g,this.alphaConstants.b,this.alphaConstants.a);let e;return this._shareOutputWithPostProcess?e=this._shareOutputWithPostProcess.inputTexture:this._forcedOutputTexture?e=this._forcedOutputTexture:e=this.inputTexture,this.externalTextureSamplerBinding||this._effectWrapper.drawWrapper.effect._bindTexture("textureSampler",e==null?void 0:e.texture),this._effectWrapper.drawWrapper.effect.setVector2("scale",this._scaleRatio),this.onApplyObservable.notifyObservers(this._effectWrapper.drawWrapper.effect),this._effectWrapper.bind(),this._effectWrapper.drawWrapper.effect}_disposeTextures(){if(this._shareOutputWithPostProcess||this._forcedOutputTexture){this._disposeTextureCache();return}this._disposeTextureCache(),this._textures.dispose()}_disposeTextureCache(){for(let e=this._textureCache.length-1;e>=0;e--)this._textureCache[e].texture.dispose();this._textureCache.length=0}setPrePassRenderer(e){return this._prePassEffectConfiguration?(this._prePassEffectConfiguration=e.addEffectConfiguration(this._prePassEffectConfiguration),this._prePassEffectConfiguration.enabled=!0,!0):!1}dispose(e){e=e||this._camera,this._useExistingThinPostProcess||this._effectWrapper.dispose(),this._disposeTextures();let t;if(this._scene&&(t=this._scene.postProcesses.indexOf(this),t!==-1&&this._scene.postProcesses.splice(t,1)),this._parentContainer){const i=this._parentContainer.postProcesses.indexOf(this);i>-1&&this._parentContainer.postProcesses.splice(i,1),this._parentContainer=null}if(t=this._engine.postProcesses.indexOf(this),t!==-1&&this._engine.postProcesses.splice(t,1),this.onDisposeObservable.notifyObservers(),!!e){if(e.detachPostProcess(this),t=e._postProcesses.indexOf(this),t===0&&e._postProcesses.length>0){const i=this._camera._getFirstPostProcess();i&&i.markTextureDirty()}this.onActivateObservable.clear(),this.onAfterRenderObservable.clear(),this.onApplyObservable.clear(),this.onBeforeRenderObservable.clear(),this.onSizeChangedObservable.clear(),this.onEffectCreatedObservable.clear()}}serialize(){const e=It.Serialize(this),t=this.getCamera()||this._scene&&this._scene.activeCamera;return e.customType="BABYLON."+this.getClassName(),e.cameraId=t?t.id:null,e.reusable=this._reusable,e.textureType=this._textureType,e.fragmentUrl=this._fragmentUrl,e.parameters=this._parameters,e.samplers=this._samplers,e.uniformBuffers=this._uniformBuffers,e.options=this._options,e.defines=this._postProcessDefines,e.textureFormat=this._textureFormat,e.vertexUrl=this._vertexUrl,e.indexParameters=this._indexParameters,e}clone(){const e=this.serialize();e._engine=this._engine,e.cameraId=null;const t=Mi.Parse(e,this._scene,"");return t?(t.onActivateObservable=this.onActivateObservable.clone(),t.onSizeChangedObservable=this.onSizeChangedObservable.clone(),t.onApplyObservable=this.onApplyObservable.clone(),t.onBeforeRenderObservable=this.onBeforeRenderObservable.clone(),t.onAfterRenderObservable=this.onAfterRenderObservable.clone(),t._prePassEffectConfiguration=this._prePassEffectConfiguration,t):null}static Parse(e,t,i){const s=ea(e.customType);if(!s||!s._Parse)return null;const r=t?t.getCameraById(e.cameraId):null;return s._Parse(e,r,t,i)}static _Parse(e,t,i,s){return It.Parse(()=>new Mi(e.name,e.fragmentUrl,e.parameters,e.samplers,e.options,t,e.renderTargetSamplingMode,e._engine,e.reusable,e.defines,e.textureType,e.vertexUrl,e.indexParameters,!1,e.textureFormat),e,i,s)}}F([G()],Mi.prototype,"uniqueId",void 0),F([G()],Mi.prototype,"name",null),F([G()],Mi.prototype,"width",void 0),F([G()],Mi.prototype,"height",void 0),F([G()],Mi.prototype,"renderTargetSamplingMode",void 0),F([hP()],Mi.prototype,"clearColor",void 0),F([G()],Mi.prototype,"autoClear",void 0),F([G()],Mi.prototype,"forceAutoClearInAlphaMode",void 0),F([G()],Mi.prototype,"alphaMode",null),F([G()],Mi.prototype,"alphaConstants",void 0),F([G()],Mi.prototype,"enablePixelPerfectMode",void 0),F([G()],Mi.prototype,"forceFullscreenViewport",void 0),F([G()],Mi.prototype,"scaleMode",void 0),F([G()],Mi.prototype,"alwaysForcePOT",void 0),F([G("samples")],Mi.prototype,"_samples",void 0),F([G()],Mi.prototype,"adaptScaleToCurrentViewport",void 0),ve("BABYLON.PostProcess",Mi);class x0{get renderList(){return this._renderList}set renderList(e){this._renderList!==e&&(this._unObserveRenderList&&(this._unObserveRenderList(),this._unObserveRenderList=null),e&&(this._unObserveRenderList=ehe(e,this._renderListHasChanged)),this._renderList=e)}get renderInLinearSpace(){return this._renderInLinearSpace}set renderInLinearSpace(e){e!==this._renderInLinearSpace&&(this._renderInLinearSpace=e,this._scene.markAllMaterialsAsDirty(64))}get name(){return this._name}set name(e){if(this._name===e||(this._name=e,!this._scene))return;const t=this._scene.getEngine();for(let i=0;i<this._renderPassIds.length;++i){const s=this._renderPassIds[i];t._renderPassNames[s]=`${this._name}#${i}`}}get renderPassIds(){return this._renderPassIds}get currentRefreshId(){return this._currentRefreshId}setMaterialForRendering(e,t){let i;Array.isArray(e)?i=e:i=[e];for(let s=0;s<i.length;++s)for(let r=0;r<this.options.numPasses;++r)i[s].setMaterialForRenderPass(this._renderPassIds[r],t!==void 0?Array.isArray(t)?t[r]:t:void 0)}constructor(e,t,i){this._unObserveRenderList=null,this._renderListHasChanged=(s,r)=>{const n=this._renderList?this._renderList.length:0;(r===0&&n>0||n===0)&&this._scene.meshes.forEach(o=>{o._markSubMeshesAsLightDirty()})},this.particleSystemList=null,this.getCustomRenderList=null,this.renderParticles=!0,this.renderSprites=!1,this.forceLayerMaskCheck=!1,this._renderInLinearSpace=!1,this.onBeforeRenderObservable=new xe,this.onAfterRenderObservable=new xe,this.onBeforeRenderingManagerRenderObservable=new xe,this.onAfterRenderingManagerRenderObservable=new xe,this.onFastPathRenderObservable=new xe,this._currentRefreshId=-1,this._refreshRate=1,this._currentApplyByPostProcessSetting=!1,this._currentSceneCamera=null,this.name=e,this._scene=t,this.renderList=[],this._renderPassIds=[],this.options={numPasses:1,doNotChangeAspectRatio:!0,...i},this._createRenderPassId(),this.renderPassId=this._renderPassIds[0],this._renderingManager=new Fu(t),this._renderingManager._useSceneAutoClearSetup=!0}_releaseRenderPassId(){const e=this._scene.getEngine();for(let t=0;t<this.options.numPasses;++t)e.releaseRenderPassId(this._renderPassIds[t]);this._renderPassIds.length=0}_createRenderPassId(){this._releaseRenderPassId();const e=this._scene.getEngine();for(let t=0;t<this.options.numPasses;++t)this._renderPassIds[t]=e.createRenderPassId(`${this.name}#${t}`)}resetRefreshCounter(){this._currentRefreshId=-1}get refreshRate(){return this._refreshRate}set refreshRate(e){this._refreshRate=e,this.resetRefreshCounter()}shouldRender(){return this._currentRefreshId===-1?(this._currentRefreshId=1,!0):this.refreshRate===this._currentRefreshId?(this._currentRefreshId=1,!0):(this._currentRefreshId++,!1)}isReadyForRendering(e,t){this.prepareRenderList(),this.initRender(e,t);const i=this._checkReadiness();return this.finishRender(),i}prepareRenderList(){const e=this._scene;if(this._waitingRenderList){if(!this.renderListPredicate){this.renderList=[];for(let t=0;t<this._waitingRenderList.length;t++){const i=this._waitingRenderList[t],s=e.getMeshById(i);s&&this.renderList.push(s)}}this._waitingRenderList=void 0}if(this.renderListPredicate){this.renderList?this.renderList.length=0:this.renderList=[];const t=this._scene.meshes;for(let i=0;i<t.length;i++){const s=t[i];this.renderListPredicate(s)&&this.renderList.push(s)}}this._currentApplyByPostProcessSetting=this._scene.imageProcessingConfiguration.applyByPostProcess,this._scene.imageProcessingConfiguration._applyByPostProcess=!!this._renderInLinearSpace}initRender(e,t){const i=this._scene.getEngine(),s=this.activeCamera??this._scene.activeCamera;this._currentSceneCamera=this._scene.activeCamera,s&&(s!==this._scene.activeCamera&&(this._scene.setTransformMatrix(s.getViewMatrix(),s.getProjectionMatrix(!0)),this._scene.activeCamera=s),i.setViewport(s.rigParent?s.rigParent.viewport:s.viewport,e,t)),this._defaultRenderListPrepared=!1}finishRender(){const e=this._scene;e.imageProcessingConfiguration._applyByPostProcess=this._currentApplyByPostProcessSetting,e.activeCamera=this._currentSceneCamera,this._currentSceneCamera&&(this.activeCamera&&this.activeCamera!==e.activeCamera&&e.setTransformMatrix(this._currentSceneCamera.getViewMatrix(),this._currentSceneCamera.getProjectionMatrix(!0)),e.getEngine().setViewport(this._currentSceneCamera.viewport)),e.resetCachedMaterial()}render(e=0,t=!1){const i=this._scene,s=i.getEngine(),r=s.currentRenderPassId;if(s.currentRenderPassId=this._renderPassIds[e],this.onBeforeRenderObservable.notifyObservers(e),s.snapshotRendering&&s.snapshotRenderingMode===1)this.onFastPathRenderObservable.notifyObservers(e);else{let o=null;const l=this.renderList?this.renderList:i.getActiveMeshes().data,c=this.renderList?this.renderList.length:i.getActiveMeshes().length;this.getCustomRenderList&&(o=this.getCustomRenderList(e,l,c)),o?this._prepareRenderingManager(o,o.length,this.forceLayerMaskCheck):(this._defaultRenderListPrepared||(this._prepareRenderingManager(l,c,!this.renderList||this.forceLayerMaskCheck),this._defaultRenderListPrepared=!0),o=l),this.onBeforeRenderingManagerRenderObservable.notifyObservers(e),this._renderingManager.render(this.customRenderFunction,o,this.renderParticles,this.renderSprites),this.onAfterRenderingManagerRenderObservable.notifyObservers(e)}t||this.onAfterRenderObservable.notifyObservers(e),s.currentRenderPassId=r}_checkReadiness(){const e=this._scene,t=e.getEngine(),i=t.currentRenderPassId;let s=!0;e.getViewMatrix()||e.updateTransformMatrix();const r=this.options.numPasses;for(let o=0;o<r&&s;o++){let l=null;const c=this.renderList?this.renderList:e.getActiveMeshes().data,u=this.renderList?this.renderList.length:e.getActiveMeshes().length;t.currentRenderPassId=this._renderPassIds[o],this.onBeforeRenderObservable.notifyObservers(o),this.getCustomRenderList&&(l=this.getCustomRenderList(o,c,u)),l||(l=c),this.options.doNotChangeAspectRatio||e.updateTransformMatrix(!0);for(let f=0;f<l.length&&s;++f){const p=l[f];if(!(!p.isEnabled()||p.isBlocked||!p.isVisible||!p.subMeshes)){if(this.customIsReadyFunction){if(!this.customIsReadyFunction(p,this.refreshRate,!0)){s=!1;continue}}else if(!p.isReady(!0)){s=!1;continue}}}this.onAfterRenderObservable.notifyObservers(o),r>1&&(e.incrementRenderId(),e.resetCachedMaterial())}const n=this.particleSystemList||e.particleSystems;for(const o of n)o.isReady()||(s=!1);return t.currentRenderPassId=i,s}_prepareRenderingManager(e,t,i){const s=this._scene,r=s.activeCamera,n=this.cameraForLOD??r;this._renderingManager.reset();const o=s.getRenderId(),l=s.getFrameId();for(let u=0;u<t;u++){const f=e[u];if(f&&!f.isBlocked){if(this.customIsReadyFunction){if(!this.customIsReadyFunction(f,this.refreshRate,!1)){this.resetRefreshCounter();continue}}else if(!f.isReady(this.refreshRate===0)){this.resetRefreshCounter();continue}let p=null;if(n){const _=f._internalAbstractMeshDataInfo._currentLOD.get(n);!_||_[1]!==l?(p=s.customLODSelector?s.customLODSelector(f,n):f.getLOD(n),_?(_[0]=p,_[1]=l):f._internalAbstractMeshDataInfo._currentLOD.set(n,[p,l])):p=_[0]}else p=f;if(!p)continue;p!==f&&p.billboardMode!==0&&p.computeWorldMatrix(),p._preActivateForIntermediateRendering(o);let m;if(i&&r?m=(f.layerMask&r.layerMask)===0:m=!1,f.isEnabled()&&f.isVisible&&f.subMeshes&&!m){if(p!==f&&p._activate(o,!0),f._activate(o,!0)&&f.subMeshes.length){f.isAnInstance?f._internalAbstractMeshDataInfo._actAsRegularMesh&&(p=f):p._internalAbstractMeshDataInfo._onlyForInstancesIntermediate=!1,p._internalAbstractMeshDataInfo._isActiveIntermediate=!0,s._prepareSkeleton(p);for(let _=0;_<p.subMeshes.length;_++){const d=p.subMeshes[_];this._renderingManager.dispatch(d,p)}}f._postActivate()}}}const c=this.particleSystemList||s.particleSystems;for(let u=0;u<c.length;u++){const f=c[u],p=f.emitter;!f.isStarted()||!p||p.position&&!p.isEnabled()||this._renderingManager.dispatchParticles(f)}}setRenderingOrder(e,t=null,i=null,s=null){this._renderingManager.setRenderingOrder(e,t,i,s)}setRenderingAutoClearDepthStencil(e,t,i=!0,s=!0){this._renderingManager.setRenderingAutoClearDepthStencil(e,t,i,s),this._renderingManager._useSceneAutoClearSetup=!1}clone(){const e=new x0(this.name,this._scene,this.options);return this.renderList&&(e.renderList=this.renderList.slice(0)),e}dispose(){const e=this.renderList?this.renderList:this._scene.getActiveMeshes().data,t=this.renderList?this.renderList.length:this._scene.getActiveMeshes().length;for(let i=0;i<t;i++){const s=e[i];s.getMaterialForRenderPass(this.renderPassId)!==void 0&&s.setMaterialForRenderPass(this.renderPassId,void 0)}this.onBeforeRenderObservable.clear(),this.onAfterRenderObservable.clear(),this.onBeforeRenderingManagerRenderObservable.clear(),this.onAfterRenderingManagerRenderObservable.clear(),this.onFastPathRenderObservable.clear(),this._releaseRenderPassId(),this.renderList=null}_rebuild(){this.refreshRate===x0.REFRESHRATE_RENDER_ONCE&&(this.refreshRate=x0.REFRESHRATE_RENDER_ONCE)}freeRenderingGroups(){this._renderingManager&&this._renderingManager.freeRenderingGroups()}}x0.REFRESHRATE_RENDER_ONCE=0,x0.REFRESHRATE_RENDER_ONEVERYFRAME=1,x0.REFRESHRATE_RENDER_ONEVERYTWOFRAMES=2,Ls.prototype.setDepthStencilTexture=function(a,e){this._engine.setDepthStencilTexture(this._samplers[a],this._uniforms[a],e,a)};class Ir extends be{get renderListPredicate(){return this._objectRenderer.renderListPredicate}set renderListPredicate(e){this._objectRenderer.renderListPredicate=e}get renderList(){return this._objectRenderer.renderList}set renderList(e){this._objectRenderer.renderList=e}get particleSystemList(){return this._objectRenderer.particleSystemList}set particleSystemList(e){this._objectRenderer.particleSystemList=e}get getCustomRenderList(){return this._objectRenderer.getCustomRenderList}set getCustomRenderList(e){this._objectRenderer.getCustomRenderList=e}get renderParticles(){return this._objectRenderer.renderParticles}set renderParticles(e){this._objectRenderer.renderParticles=e}get renderSprites(){return this._objectRenderer.renderSprites}set renderSprites(e){this._objectRenderer.renderSprites=e}get forceLayerMaskCheck(){return this._objectRenderer.forceLayerMaskCheck}set forceLayerMaskCheck(e){this._objectRenderer.forceLayerMaskCheck=e}get activeCamera(){return this._objectRenderer.activeCamera}set activeCamera(e){this._objectRenderer.activeCamera=e}get cameraForLOD(){return this._objectRenderer.cameraForLOD}set cameraForLOD(e){this._objectRenderer.cameraForLOD=e}get renderInLinearSpace(){return this._objectRenderer.renderInLinearSpace}set renderInLinearSpace(e){this._objectRenderer.renderInLinearSpace=e}get customIsReadyFunction(){return this._objectRenderer.customIsReadyFunction}set customIsReadyFunction(e){this._objectRenderer.customIsReadyFunction=e}get customRenderFunction(){return this._objectRenderer.customRenderFunction}set customRenderFunction(e){this._objectRenderer.customRenderFunction=e}get postProcesses(){return this._postProcesses}get _prePassEnabled(){return!!this._prePassRenderTarget&&this._prePassRenderTarget.enabled}set onAfterUnbind(e){this._onAfterUnbindObserver&&this.onAfterUnbindObservable.remove(this._onAfterUnbindObserver),this._onAfterUnbindObserver=this.onAfterUnbindObservable.add(e)}get onBeforeRenderObservable(){return this._objectRenderer.onBeforeRenderObservable}set onBeforeRender(e){this._onBeforeRenderObserver&&this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=this.onBeforeRenderObservable.add(e)}get onAfterRenderObservable(){return this._objectRenderer.onAfterRenderObservable}set onAfterRender(e){this._onAfterRenderObserver&&this.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=this.onAfterRenderObservable.add(e)}set onClear(e){this._onClearObserver&&this.onClearObservable.remove(this._onClearObserver),this._onClearObserver=this.onClearObservable.add(e)}get _waitingRenderList(){return this._objectRenderer._waitingRenderList}set _waitingRenderList(e){this._objectRenderer._waitingRenderList=e}get renderPassId(){return this._objectRenderer.renderPassId}get renderPassIds(){return this._objectRenderer.renderPassIds}get currentRefreshId(){return this._objectRenderer.currentRefreshId}setMaterialForRendering(e,t){this._objectRenderer.setMaterialForRendering(e,t)}get isMulti(){var e;return((e=this._renderTarget)==null?void 0:e.isMulti)??!1}get renderTargetOptions(){return this._renderTargetOptions}get renderTarget(){return this._renderTarget}_onRatioRescale(){this._sizeRatio&&this.resize(this._initialSizeParameter)}set boundingBoxSize(e){if(this._boundingBoxSize&&this._boundingBoxSize.equals(e))return;this._boundingBoxSize=e;const t=this.getScene();t&&t.markAllMaterialsAsDirty(1)}get boundingBoxSize(){return this._boundingBoxSize}get depthStencilTexture(){var e;return((e=this._renderTarget)==null?void 0:e._depthStencilTexture)??null}constructor(e,t,i,s=!1,r=!0,n=0,o=!1,l=be.TRILINEAR_SAMPLINGMODE,c=!0,u=!1,f=!1,p=5,m=!1,_,d,h=!1,x=!1){let A,S=!0,E;if(typeof s=="object"){const M=s;s=!!M.generateMipMaps,r=M.doNotChangeAspectRatio??!0,n=M.type??0,o=!!M.isCube,l=M.samplingMode??be.TRILINEAR_SAMPLINGMODE,c=M.generateDepthBuffer??!0,u=!!M.generateStencilBuffer,f=!!M.isMulti,p=M.format??5,m=!!M.delayAllocation,_=M.samples,d=M.creationFlags,h=!!M.noColorAttachment,x=!!M.useSRGBBuffer,A=M.colorAttachment,S=M.gammaSpace??S,E=M.existingObjectRenderer}if(super(null,i,!s,void 0,l,void 0,void 0,void 0,void 0,p),this.ignoreCameraViewport=!1,this.onBeforeBindObservable=new xe,this.onAfterUnbindObservable=new xe,this.onClearObservable=new xe,this.onResizeObservable=new xe,this._cleared=!1,this.skipInitialClear=!1,this._samples=1,this._canRescale=!0,this._renderTarget=null,this._dontDisposeObjectRenderer=!1,this.boundingBoxPosition=P.Zero(),this._disableEngineStages=!1,this._dumpToolsLoading=!1,i=this.getScene(),!i)return;const b=this.getScene().getEngine();this._gammaSpace=S,this._coordinatesMode=be.PROJECTION_MODE,this.name=e,this.isRenderTarget=!0,this._initialSizeParameter=t,this._dontDisposeObjectRenderer=!!E,this._processSizeParameter(t),this._objectRenderer=E??new x0(e,i,{numPasses:o?6:this.getRenderLayers()||1,doNotChangeAspectRatio:r}),this._onBeforeRenderingManagerRenderObserver=this._objectRenderer.onBeforeRenderingManagerRenderObservable.add(()=>{if(!this._disableEngineStages)for(const M of this._scene._beforeRenderTargetClearStage)M.action(this,this._currentFaceIndex,this._currentLayer);if(this.onClearObservable.hasObservers()?this.onClearObservable.notifyObservers(b):this.skipInitialClear||b.clear(this.clearColor||this._scene.clearColor,!0,!0,!0),this._doNotChangeAspectRatio||this._scene.updateTransformMatrix(!0),!this._disableEngineStages)for(const M of this._scene._beforeRenderTargetDrawStage)M.action(this,this._currentFaceIndex,this._currentLayer)}),this._onAfterRenderingManagerRenderObserver=this._objectRenderer.onAfterRenderingManagerRenderObservable.add(()=>{var T;if(!this._disableEngineStages)for(const O of this._scene._afterRenderTargetDrawStage)O.action(this,this._currentFaceIndex,this._currentLayer);const M=((T=this._texture)==null?void 0:T.generateMipMaps)??!1;if(this._texture&&(this._texture.generateMipMaps=!1),this._postProcessManager?this._postProcessManager._finalizeFrame(!1,this._renderTarget??void 0,this._currentFaceIndex,this._postProcesses,this.ignoreCameraViewport):this._currentUseCameraPostProcess&&this._scene.postProcessManager._finalizeFrame(!1,this._renderTarget??void 0,this._currentFaceIndex),!this._disableEngineStages)for(const O of this._scene._afterRenderTargetPostProcessStage)O.action(this,this._currentFaceIndex,this._currentLayer);this._texture&&(this._texture.generateMipMaps=M),this._doNotChangeAspectRatio||this._scene.updateTransformMatrix(!0),this._currentDumpForDebug&&(this._dumpTools?this._dumpTools.DumpFramebuffer(this.getRenderWidth(),this.getRenderHeight(),b):de.Error("dumpTools module is still being loaded. To speed up the process import dump tools directly in your project"))}),this._onFastPathRenderObserver=this._objectRenderer.onFastPathRenderObservable.add(()=>{this.onClearObservable.hasObservers()?this.onClearObservable.notifyObservers(b):this.skipInitialClear||b.clear(this.clearColor||this._scene.clearColor,!0,!0,!0)}),this._resizeObserver=b.onResizeObservable.add(()=>{}),this._generateMipMaps=!!s,this._doNotChangeAspectRatio=r,!f&&(this._renderTargetOptions={generateMipMaps:s,type:n,format:this._format??void 0,samplingMode:this.samplingMode,generateDepthBuffer:c,generateStencilBuffer:u,samples:_,creationFlags:d,noColorAttachment:h,useSRGBBuffer:x,colorAttachment:A,label:this.name},this.samplingMode===be.NEAREST_SAMPLINGMODE&&(this.wrapU=be.CLAMP_ADDRESSMODE,this.wrapV=be.CLAMP_ADDRESSMODE),m||(o?(this._renderTarget=i.getEngine().createRenderTargetCubeTexture(this.getRenderSize(),this._renderTargetOptions),this.coordinatesMode=be.INVCUBIC_MODE,this._textureMatrix=me.Identity()):this._renderTarget=i.getEngine().createRenderTargetTexture(this._size,this._renderTargetOptions),this._texture=this._renderTarget.texture,_!==void 0&&(this.samples=_)))}createDepthStencilTexture(e=0,t=!0,i=!1,s=1,r=14,n){var o;(o=this._renderTarget)==null||o.createDepthStencilTexture(e,t,i,s,r,n)}_processSizeParameter(e){if(e.ratio){this._sizeRatio=e.ratio;const t=this._getEngine();this._size={width:this._bestReflectionRenderTargetDimension(t.getRenderWidth(),this._sizeRatio),height:this._bestReflectionRenderTargetDimension(t.getRenderHeight(),this._sizeRatio)}}else this._size=e}get samples(){var e;return((e=this._renderTarget)==null?void 0:e.samples)??this._samples}set samples(e){this._renderTarget&&(this._samples=this._renderTarget.setSamples(e))}addPostProcess(e){if(!this._postProcessManager){const t=this.getScene();if(!t)return;this._postProcessManager=new Aw(t),this._postProcesses=new Array}this._postProcesses.push(e),this._postProcesses[0].autoClear=!1}clearPostProcesses(e=!1){if(this._postProcesses){if(e)for(const t of this._postProcesses)t.dispose();this._postProcesses=[]}}removePostProcess(e){if(!this._postProcesses)return;const t=this._postProcesses.indexOf(e);t!==-1&&(this._postProcesses.splice(t,1),this._postProcesses.length>0&&(this._postProcesses[0].autoClear=!1))}resetRefreshCounter(){this._objectRenderer.resetRefreshCounter()}get refreshRate(){return this._objectRenderer.refreshRate}set refreshRate(e){this._objectRenderer.refreshRate=e}_shouldRender(){return this._objectRenderer.shouldRender()}getRenderSize(){return this.getRenderWidth()}getRenderWidth(){return this._size.width?this._size.width:this._size}getRenderHeight(){return this._size.width?this._size.height:this._size}getRenderLayers(){const e=this._size.layers;if(e)return e;const t=this._size.depth;return t||0}disableRescaling(){this._canRescale=!1}get canRescale(){return this._canRescale}scale(e){const t=Math.max(1,this.getRenderSize()*e);this.resize(t)}getReflectionTextureMatrix(){return this.isCube?this._textureMatrix:super.getReflectionTextureMatrix()}resize(e){var s;const t=this.isCube;(s=this._renderTarget)==null||s.dispose(),this._renderTarget=null;const i=this.getScene();i&&(this._processSizeParameter(e),t?this._renderTarget=i.getEngine().createRenderTargetCubeTexture(this.getRenderSize(),this._renderTargetOptions):this._renderTarget=i.getEngine().createRenderTargetTexture(this._size,this._renderTargetOptions),this._texture=this._renderTarget.texture,this._renderTargetOptions.samples!==void 0&&(this.samples=this._renderTargetOptions.samples),this.onResizeObservable.hasObservers()&&this.onResizeObservable.notifyObservers(this))}render(e=!1,t=!1){this._render(e,t)}isReadyForRendering(){this._dumpToolsLoading||(this._dumpToolsLoading=!0,Promise.resolve().then(()=>GRe).then(t=>this._dumpTools=t)),this._objectRenderer.prepareRenderList(),this.onBeforeBindObservable.notifyObservers(this),this._objectRenderer.initRender(this.getRenderWidth(),this.getRenderHeight());const e=this._objectRenderer._checkReadiness();return this.onAfterUnbindObservable.notifyObservers(this),this._objectRenderer.finishRender(),e}_render(e=!1,t=!1){const i=this.getScene();if(i){if(this.useCameraPostProcesses!==void 0&&(e=this.useCameraPostProcesses),this._objectRenderer.prepareRenderList(),this.onBeforeBindObservable.notifyObservers(this),this._objectRenderer.initRender(this.getRenderWidth(),this.getRenderHeight()),(this.is2DArray||this.is3D)&&!this.isMulti)for(let s=0;s<this.getRenderLayers();s++)this._renderToTarget(0,e,t,s),i.incrementRenderId(),i.resetCachedMaterial();else if(this.isCube&&!this.isMulti)for(let s=0;s<6;s++)this._renderToTarget(s,e,t),i.incrementRenderId(),i.resetCachedMaterial();else this._renderToTarget(0,e,t);this.onAfterUnbindObservable.notifyObservers(this),this._objectRenderer.finishRender()}}_bestReflectionRenderTargetDimension(e,t){const s=e*t,r=Jue(s+128*128/(128+s));return Math.min(EX(e),r)}_bindFrameBuffer(e=0,t=0){const i=this.getScene();if(!i)return;const s=i.getEngine();this._renderTarget&&s.bindFramebuffer(this._renderTarget,this.isCube?e:void 0,void 0,void 0,this.ignoreCameraViewport,0,t)}_unbindFrameBuffer(e,t){this._renderTarget&&e.unBindFramebuffer(this._renderTarget,this.isCube,()=>{this.onAfterRenderObservable.notifyObservers(t)})}_prepareFrame(e,t,i,s){this._postProcessManager?this._prePassEnabled||this._postProcessManager._prepareFrame(this._texture,this._postProcesses):(!s||!e.postProcessManager._prepareFrame(this._texture))&&this._bindFrameBuffer(t,i)}_renderToTarget(e,t,i,s=0){var o,l;const r=this.getScene();if(!r)return;const n=r.getEngine();this._currentFaceIndex=e,this._currentLayer=s,this._currentUseCameraPostProcess=t,this._currentDumpForDebug=i,this._prepareFrame(r,e,s,t),(o=n._debugPushGroup)==null||o.call(n,`render to face #${e} layer #${s}`,2),this._objectRenderer.render(e+s,!0),(l=n._debugPopGroup)==null||l.call(n,2),this._unbindFrameBuffer(n,e),this._texture&&this.isCube&&e===5&&n.generateMipMapsForCubemap(this._texture,!0)}setRenderingOrder(e,t=null,i=null,s=null){this._objectRenderer.setRenderingOrder(e,t,i,s)}setRenderingAutoClearDepthStencil(e,t){this._objectRenderer.setRenderingAutoClearDepthStencil(e,t)}clone(){const e=this.getSize(),t=new Ir(this.name,e,this.getScene(),this._renderTargetOptions.generateMipMaps,this._doNotChangeAspectRatio,this._renderTargetOptions.type,this.isCube,this._renderTargetOptions.samplingMode,this._renderTargetOptions.generateDepthBuffer,this._renderTargetOptions.generateStencilBuffer,void 0,this._renderTargetOptions.format,void 0,this._renderTargetOptions.samples);return t.hasAlpha=this.hasAlpha,t.level=this.level,t.coordinatesMode=this.coordinatesMode,this.renderList&&(t.renderList=this.renderList.slice(0)),t}serialize(){if(!this.name)return null;const e=super.serialize();if(e.renderTargetSize=this.getRenderSize(),e.renderList=[],this.renderList)for(let t=0;t<this.renderList.length;t++)e.renderList.push(this.renderList[t].id);return e}disposeFramebufferObjects(){var e;(e=this._renderTarget)==null||e.dispose(!0)}releaseInternalTexture(){var e;(e=this._renderTarget)==null||e.releaseTextures(),this._texture=null}dispose(){var i;this.onResizeObservable.clear(),this.onClearObservable.clear(),this.onAfterUnbindObservable.clear(),this.onBeforeBindObservable.clear(),this._postProcessManager&&(this._postProcessManager.dispose(),this._postProcessManager=null),this._prePassRenderTarget&&this._prePassRenderTarget.dispose(),this._objectRenderer.onBeforeRenderingManagerRenderObservable.remove(this._onBeforeRenderingManagerRenderObserver),this._objectRenderer.onAfterRenderingManagerRenderObservable.remove(this._onAfterRenderingManagerRenderObserver),this._objectRenderer.onFastPathRenderObservable.remove(this._onFastPathRenderObserver),this._dontDisposeObjectRenderer||this._objectRenderer.dispose(),this.clearPostProcesses(!0),this._resizeObserver&&(this.getScene().getEngine().onResizeObservable.remove(this._resizeObserver),this._resizeObserver=null);const e=this.getScene();if(!e)return;let t=e.customRenderTargets.indexOf(this);t>=0&&e.customRenderTargets.splice(t,1);for(const s of e.cameras)t=s.customRenderTargets.indexOf(this),t>=0&&s.customRenderTargets.splice(t,1);(i=this._renderTarget)==null||i.dispose(),this._renderTarget=null,this._texture=null,super.dispose()}_rebuild(){this._objectRenderer._rebuild(),this._postProcessManager&&this._postProcessManager._rebuild()}freeRenderingGroups(){this._objectRenderer.freeRenderingGroups()}getViewCount(){return 1}}Ir.REFRESHRATE_RENDER_ONCE=x0.REFRESHRATE_RENDER_ONCE,Ir.REFRESHRATE_RENDER_ONEVERYFRAME=x0.REFRESHRATE_RENDER_ONEVERYFRAME,Ir.REFRESHRATE_RENDER_ONEVERYTWOFRAMES=x0.REFRESHRATE_RENDER_ONEVERYTWOFRAMES,be._CreateRenderTargetTexture=(a,e,t,i,s)=>new Ir(a,e,t,i);function MG(a){return a.getPipelineContext===void 0}class SRe{constructor(){this.shaderLanguage=0}postProcessor(e,t,i,s,r){if(r.drawBuffersExtensionDisabled){const n=/#extension.+GL_EXT_draw_buffers.+(enable|require)/g;e=e.replace(n,"")}return e}}const yRe=/(flat\s)?\s*varying\s*.*/;class lde{constructor(){this.shaderLanguage=0}attributeProcessor(e){return e.replace("attribute","in")}varyingCheck(e,t){return yRe.test(e)}varyingProcessor(e,t){return e.replace("varying",t?"in":"out")}postProcessor(e,t,i){const s=e.search(/#extension.+GL_EXT_draw_buffers.+require/)!==-1,r=/#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g;if(e=e.replace(r,""),e=e.replace(/texture2D\s*\(/g,"texture("),i){const n=e.search(/layout *\(location *= *0\) *out/g)!==-1;e=e.replace(/texture2DLodEXT\s*\(/g,"textureLod("),e=e.replace(/textureCubeLodEXT\s*\(/g,"textureLod("),e=e.replace(/textureCube\s*\(/g,"texture("),e=e.replace(/gl_FragDepthEXT/g,"gl_FragDepth"),e=e.replace(/gl_FragColor/g,"glFragColor"),e=e.replace(/gl_FragData/g,"glFragData"),e=e.replace(/void\s+?main\s*\(/g,(s||n?"":`layout(location = 0) out vec4 glFragColor;
`)+"void main(")}else if(t.indexOf("#define MULTIVIEW")!==-1)return`#extension GL_OVR_multiview2 : require
layout (num_views = 2) in;
`+e;return e}}class MP extends Fv{constructor(e){super(),this._buffer=e}get underlyingResource(){return this._buffer}}class J9{get underlyingResource(){return this._webGLTexture}constructor(e=null,t){if(this._MSAARenderBuffers=null,this._context=t,!e&&(e=t.createTexture(),!e))throw new Error("Unable to create webGL texture");this.set(e)}setUsage(){}set(e){this._webGLTexture=e}reset(){this._webGLTexture=null,this._MSAARenderBuffers=null}addMSAARenderBuffer(e){this._MSAARenderBuffers||(this._MSAARenderBuffers=[]),this._MSAARenderBuffers.push(e)}releaseMSAARenderBuffers(){if(this._MSAARenderBuffers){for(const e of this._MSAARenderBuffers)this._context.deleteRenderbuffer(e);this._MSAARenderBuffers=null}}getMSAARenderBuffer(e=0){var t;return((t=this._MSAARenderBuffers)==null?void 0:t[e])??null}release(){this.releaseMSAARenderBuffers(),this._webGLTexture&&this._context.deleteTexture(this._webGLTexture),this.reset()}}function IZ(a){return a===13||a===14||a===15||a===16||a===17||a===18||a===19}function cde(a){switch(a){case 13:case 17:case 18:case 14:case 16:return 1;case 15:return 5;case 19:return 0}return 0}function zT(a){return a===13||a===17||a===18||a===19}class MRe{}class Zi extends dt{get name(){return this._name}set name(e){this._name=e}get version(){return this._webGLVersion}static get ShadersRepository(){return Ls.ShadersRepository}static set ShadersRepository(e){Ls.ShadersRepository=e}get supportsUniformBuffers(){return this.webGLVersion>1&&!this.disableUniformBuffers}get needPOTTextures(){return this._webGLVersion<2||this.forcePOTTextures}get _supportsHardwareTextureRescaling(){return!1}set framebufferDimensionsObject(e){this._framebufferDimensionsObject=e}snapshotRenderingReset(){this.snapshotRendering=!1}constructor(e,t,i,s){if(i=i||{},super(t??i.antialias,i,s),this._name="WebGL",this.forcePOTTextures=!1,this.validateShaderPrograms=!1,this.disableUniformBuffers=!1,this._webGLVersion=1,this._vertexAttribArraysEnabled=[],this._uintIndicesCurrentlySet=!1,this._currentBoundBuffer=new Array,this._currentFramebuffer=null,this._dummyFramebuffer=null,this._currentBufferPointers=new Array,this._currentInstanceLocations=new Array,this._currentInstanceBuffers=new Array,this._vaoRecordInProgress=!1,this._mustWipeVertexAttributes=!1,this._nextFreeTextureSlots=new Array,this._maxSimultaneousTextures=0,this._maxMSAASamplesOverride=null,this._unpackFlipYCached=null,this.enableUnpackFlipYCached=!0,this._boundUniforms={},!e)return;let r=null;if(e.getContext){if(r=e,i.preserveDrawingBuffer===void 0&&(i.preserveDrawingBuffer=!1),i.xrCompatible===void 0&&(i.xrCompatible=!1),navigator&&navigator.userAgent){this._setupMobileChecks();const l=navigator.userAgent;for(const c of Zi.ExceptionList){const u=c.key,f=c.targets;if(new RegExp(u).test(l)){if(c.capture&&c.captureConstraint){const m=c.capture,_=c.captureConstraint,h=new RegExp(m).exec(l);if(h&&h.length>0&&parseInt(h[h.length-1])>=_)continue}for(const m of f)switch(m){case"uniformBuffer":this.disableUniformBuffers=!0;break;case"vao":this.disableVertexArrayObjects=!0;break;case"antialias":i.antialias=!1;break;case"maxMSAASamples":this._maxMSAASamplesOverride=1;break}}}}if(this._doNotHandleContextLost?this._onContextLost=()=>{fX(this._gl)}:(this._onContextLost=l=>{l.preventDefault(),this._contextWasLost=!0,fX(this._gl),de.Warn("WebGL context lost."),this.onContextLostObservable.notifyObservers(this)},this._onContextRestored=()=>{this._restoreEngineAfterContextLost(()=>this._initGLContext())},r.addEventListener("webglcontextrestored",this._onContextRestored,!1),i.powerPreference=i.powerPreference||"high-performance"),r.addEventListener("webglcontextlost",this._onContextLost,!1),this._badDesktopOS&&(i.xrCompatible=!1),!i.disableWebGL2Support)try{this._gl=r.getContext("webgl2",i)||r.getContext("experimental-webgl2",i),this._gl&&(this._webGLVersion=2,this._shaderPlatformName="WEBGL2",this._gl.deleteQuery||(this._webGLVersion=1,this._shaderPlatformName="WEBGL1"))}catch{}if(!this._gl){if(!r)throw new Error("The provided canvas is null or undefined.");try{this._gl=r.getContext("webgl",i)||r.getContext("experimental-webgl",i)}catch{throw new Error("WebGL not supported")}}if(!this._gl)throw new Error("WebGL not supported")}else{this._gl=e,r=this._gl.canvas,this._gl.renderbufferStorageMultisample?(this._webGLVersion=2,this._shaderPlatformName="WEBGL2"):this._shaderPlatformName="WEBGL1";const l=this._gl.getContextAttributes();l&&(i.stencil=l.stencil)}this._sharedInit(r),this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,this._gl.NONE),i.useHighPrecisionFloats!==void 0&&(this._highPrecisionShadersAllowed=i.useHighPrecisionFloats),this.resize(),this._initGLContext(),this._initFeatures();for(let l=0;l<this._caps.maxVertexAttribs;l++)this._currentBufferPointers[l]=new MRe;this._shaderProcessor=this.webGLVersion>1?new lde:new SRe;const n=`Babylon.js v${Zi.Version}`;de.Log(n+` - ${this.description}`),this._renderingCanvas&&this._renderingCanvas.setAttribute&&this._renderingCanvas.setAttribute("data-engine",n);const o=$p(this._gl);o.validateShaderPrograms=this.validateShaderPrograms,o.parallelShaderCompile=this._caps.parallelShaderCompile}_clearEmptyResources(){this._dummyFramebuffer=null,super._clearEmptyResources()}_getShaderProcessingContext(e){return null}areAllEffectsReady(){for(const e in this._compiledEffects)if(!this._compiledEffects[e].isReady())return!1;return!0}_initGLContext(){this._caps={maxTexturesImageUnits:this._gl.getParameter(this._gl.MAX_TEXTURE_IMAGE_UNITS),maxCombinedTexturesImageUnits:this._gl.getParameter(this._gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS),maxVertexTextureImageUnits:this._gl.getParameter(this._gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS),maxTextureSize:this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE),maxSamples:this._webGLVersion>1?this._gl.getParameter(this._gl.MAX_SAMPLES):1,maxCubemapTextureSize:this._gl.getParameter(this._gl.MAX_CUBE_MAP_TEXTURE_SIZE),maxRenderTextureSize:this._gl.getParameter(this._gl.MAX_RENDERBUFFER_SIZE),maxVertexAttribs:this._gl.getParameter(this._gl.MAX_VERTEX_ATTRIBS),maxVaryingVectors:this._gl.getParameter(this._gl.MAX_VARYING_VECTORS),maxFragmentUniformVectors:this._gl.getParameter(this._gl.MAX_FRAGMENT_UNIFORM_VECTORS),maxVertexUniformVectors:this._gl.getParameter(this._gl.MAX_VERTEX_UNIFORM_VECTORS),parallelShaderCompile:this._gl.getExtension("KHR_parallel_shader_compile")||void 0,standardDerivatives:this._webGLVersion>1||this._gl.getExtension("OES_standard_derivatives")!==null,maxAnisotropy:1,astc:this._gl.getExtension("WEBGL_compressed_texture_astc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_astc"),bptc:this._gl.getExtension("EXT_texture_compression_bptc")||this._gl.getExtension("WEBKIT_EXT_texture_compression_bptc"),s3tc:this._gl.getExtension("WEBGL_compressed_texture_s3tc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc"),s3tc_srgb:this._gl.getExtension("WEBGL_compressed_texture_s3tc_srgb")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc_srgb"),pvrtc:this._gl.getExtension("WEBGL_compressed_texture_pvrtc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),etc1:this._gl.getExtension("WEBGL_compressed_texture_etc1")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc1"),etc2:this._gl.getExtension("WEBGL_compressed_texture_etc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc")||this._gl.getExtension("WEBGL_compressed_texture_es3_0"),textureAnisotropicFilterExtension:this._gl.getExtension("EXT_texture_filter_anisotropic")||this._gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic")||this._gl.getExtension("MOZ_EXT_texture_filter_anisotropic"),uintIndices:this._webGLVersion>1||this._gl.getExtension("OES_element_index_uint")!==null,fragmentDepthSupported:this._webGLVersion>1||this._gl.getExtension("EXT_frag_depth")!==null,highPrecisionShaderSupported:!1,timerQuery:this._gl.getExtension("EXT_disjoint_timer_query_webgl2")||this._gl.getExtension("EXT_disjoint_timer_query"),supportOcclusionQuery:this._webGLVersion>1,canUseTimestampForTimerQuery:!1,drawBuffersExtension:!1,maxMSAASamples:1,colorBufferFloat:!!(this._webGLVersion>1&&this._gl.getExtension("EXT_color_buffer_float")),supportFloatTexturesResolve:!1,rg11b10ufColorRenderable:!1,colorBufferHalfFloat:!!(this._webGLVersion>1&&this._gl.getExtension("EXT_color_buffer_half_float")),textureFloat:!!(this._webGLVersion>1||this._gl.getExtension("OES_texture_float")),textureHalfFloat:!!(this._webGLVersion>1||this._gl.getExtension("OES_texture_half_float")),textureHalfFloatRender:!1,textureFloatLinearFiltering:!1,textureFloatRender:!1,textureHalfFloatLinearFiltering:!1,vertexArrayObject:!1,instancedArrays:!1,textureLOD:!!(this._webGLVersion>1||this._gl.getExtension("EXT_shader_texture_lod")),texelFetch:this._webGLVersion!==1,blendMinMax:!1,multiview:this._gl.getExtension("OVR_multiview2"),oculusMultiview:this._gl.getExtension("OCULUS_multiview"),depthTextureExtension:!1,canUseGLInstanceID:this._webGLVersion>1,canUseGLVertexID:this._webGLVersion>1,supportComputeShaders:!1,supportSRGBBuffers:!1,supportTransformFeedbacks:this._webGLVersion>1,textureMaxLevel:this._webGLVersion>1,texture2DArrayMaxLayerCount:this._webGLVersion>1?this._gl.getParameter(this._gl.MAX_ARRAY_TEXTURE_LAYERS):128,disableMorphTargetTexture:!1,textureNorm16:!!this._gl.getExtension("EXT_texture_norm16")},this._caps.supportFloatTexturesResolve=this._caps.colorBufferFloat,this._caps.rg11b10ufColorRenderable=this._caps.colorBufferFloat,this._glVersion=this._gl.getParameter(this._gl.VERSION);const e=this._gl.getExtension("WEBGL_debug_renderer_info");if(e!=null&&(this._glRenderer=this._gl.getParameter(e.UNMASKED_RENDERER_WEBGL),this._glVendor=this._gl.getParameter(e.UNMASKED_VENDOR_WEBGL)),this._glVendor||(this._glVendor=this._gl.getParameter(this._gl.VENDOR)||"Unknown vendor"),this._glRenderer||(this._glRenderer=this._gl.getParameter(this._gl.RENDERER)||"Unknown renderer"),this._gl.HALF_FLOAT_OES!==36193&&(this._gl.HALF_FLOAT_OES=36193),this._gl.RGBA16F!==34842&&(this._gl.RGBA16F=34842),this._gl.RGBA32F!==34836&&(this._gl.RGBA32F=34836),this._gl.DEPTH24_STENCIL8!==35056&&(this._gl.DEPTH24_STENCIL8=35056),this._caps.timerQuery&&(this._webGLVersion===1&&(this._gl.getQuery=this._caps.timerQuery.getQueryEXT.bind(this._caps.timerQuery)),this._caps.canUseTimestampForTimerQuery=(this._gl.getQuery(this._caps.timerQuery.TIMESTAMP_EXT,this._caps.timerQuery.QUERY_COUNTER_BITS_EXT)??0)>0),this._caps.maxAnisotropy=this._caps.textureAnisotropicFilterExtension?this._gl.getParameter(this._caps.textureAnisotropicFilterExtension.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,this._caps.textureFloatLinearFiltering=!!(this._caps.textureFloat&&this._gl.getExtension("OES_texture_float_linear")),this._caps.textureFloatRender=!!(this._caps.textureFloat&&this._canRenderToFloatFramebuffer()),this._caps.textureHalfFloatLinearFiltering=!!(this._webGLVersion>1||this._caps.textureHalfFloat&&this._gl.getExtension("OES_texture_half_float_linear")),this._caps.textureNorm16&&(this._gl.R16_EXT=33322,this._gl.RG16_EXT=33324,this._gl.RGB16_EXT=32852,this._gl.RGBA16_EXT=32859,this._gl.R16_SNORM_EXT=36760,this._gl.RG16_SNORM_EXT=36761,this._gl.RGB16_SNORM_EXT=36762,this._gl.RGBA16_SNORM_EXT=36763),this._caps.astc&&(this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR),this._caps.bptc&&(this._gl.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=this._caps.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT),this._caps.s3tc_srgb&&(this._gl.COMPRESSED_SRGB_S3TC_DXT1_EXT=this._caps.s3tc_srgb.COMPRESSED_SRGB_S3TC_DXT1_EXT,this._gl.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=this._caps.s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,this._gl.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=this._caps.s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT),this._caps.etc2&&(this._gl.COMPRESSED_SRGB8_ETC2=this._caps.etc2.COMPRESSED_SRGB8_ETC2,this._gl.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=this._caps.etc2.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC),this._webGLVersion>1&&this._gl.HALF_FLOAT_OES!==5131&&(this._gl.HALF_FLOAT_OES=5131),this._caps.textureHalfFloatRender=this._caps.textureHalfFloat&&this._canRenderToHalfFloatFramebuffer(),this._webGLVersion>1)this._caps.drawBuffersExtension=!0,this._caps.maxMSAASamples=this._maxMSAASamplesOverride!==null?this._maxMSAASamplesOverride:this._gl.getParameter(this._gl.MAX_SAMPLES),this._caps.maxDrawBuffers=this._gl.getParameter(this._gl.MAX_DRAW_BUFFERS);else{const t=this._gl.getExtension("WEBGL_draw_buffers");if(t!==null){this._caps.drawBuffersExtension=!0,this._gl.drawBuffers=t.drawBuffersWEBGL.bind(t),this._caps.maxDrawBuffers=this._gl.getParameter(t.MAX_DRAW_BUFFERS_WEBGL),this._gl.DRAW_FRAMEBUFFER=this._gl.FRAMEBUFFER;for(let i=0;i<16;i++)this._gl["COLOR_ATTACHMENT"+i+"_WEBGL"]=t["COLOR_ATTACHMENT"+i+"_WEBGL"]}}if(this._webGLVersion>1)this._caps.depthTextureExtension=!0;else{const t=this._gl.getExtension("WEBGL_depth_texture");t!=null&&(this._caps.depthTextureExtension=!0,this._gl.UNSIGNED_INT_24_8=t.UNSIGNED_INT_24_8_WEBGL)}if(this.disableVertexArrayObjects)this._caps.vertexArrayObject=!1;else if(this._webGLVersion>1)this._caps.vertexArrayObject=!0;else{const t=this._gl.getExtension("OES_vertex_array_object");t!=null&&(this._caps.vertexArrayObject=!0,this._gl.createVertexArray=t.createVertexArrayOES.bind(t),this._gl.bindVertexArray=t.bindVertexArrayOES.bind(t),this._gl.deleteVertexArray=t.deleteVertexArrayOES.bind(t))}if(this._webGLVersion>1)this._caps.instancedArrays=!0;else{const t=this._gl.getExtension("ANGLE_instanced_arrays");t!=null?(this._caps.instancedArrays=!0,this._gl.drawArraysInstanced=t.drawArraysInstancedANGLE.bind(t),this._gl.drawElementsInstanced=t.drawElementsInstancedANGLE.bind(t),this._gl.vertexAttribDivisor=t.vertexAttribDivisorANGLE.bind(t)):this._caps.instancedArrays=!1}if(this._gl.getShaderPrecisionFormat){const t=this._gl.getShaderPrecisionFormat(this._gl.VERTEX_SHADER,this._gl.HIGH_FLOAT),i=this._gl.getShaderPrecisionFormat(this._gl.FRAGMENT_SHADER,this._gl.HIGH_FLOAT);t&&i&&(this._caps.highPrecisionShaderSupported=t.precision!==0&&i.precision!==0)}if(this._webGLVersion>1)this._caps.blendMinMax=!0;else{const t=this._gl.getExtension("EXT_blend_minmax");t!=null&&(this._caps.blendMinMax=!0,this._gl.MAX=t.MAX_EXT,this._gl.MIN=t.MIN_EXT)}if(!this._caps.supportSRGBBuffers){if(this._webGLVersion>1)this._caps.supportSRGBBuffers=!0,this._glSRGBExtensionValues={SRGB:WebGL2RenderingContext.SRGB,SRGB8:WebGL2RenderingContext.SRGB8,SRGB8_ALPHA8:WebGL2RenderingContext.SRGB8_ALPHA8};else{const t=this._gl.getExtension("EXT_sRGB");t!=null&&(this._caps.supportSRGBBuffers=!0,this._glSRGBExtensionValues={SRGB:t.SRGB_EXT,SRGB8:t.SRGB_ALPHA_EXT,SRGB8_ALPHA8:t.SRGB_ALPHA_EXT})}if(this._creationOptions){const t=this._creationOptions.forceSRGBBufferSupportState;t!==void 0&&(this._caps.supportSRGBBuffers=this._caps.supportSRGBBuffers&&t)}}this._depthCullingState.depthTest=!0,this._depthCullingState.depthFunc=this._gl.LEQUAL,this._depthCullingState.depthMask=!0,this._maxSimultaneousTextures=this._caps.maxCombinedTexturesImageUnits;for(let t=0;t<this._maxSimultaneousTextures;t++)this._nextFreeTextureSlots.push(t);this._glRenderer==="Mali-G72"&&(this._caps.disableMorphTargetTexture=!0)}_initFeatures(){this._features={forceBitmapOverHTMLImageElement:typeof HTMLImageElement>"u",supportRenderAndCopyToLodForFloatTextures:this._webGLVersion!==1,supportDepthStencilTexture:this._webGLVersion!==1,supportShadowSamplers:this._webGLVersion!==1,uniformBufferHardCheckMatrix:!1,allowTexturePrefiltering:this._webGLVersion!==1,trackUbosInFrame:!1,checkUbosContentBeforeUpload:!1,supportCSM:this._webGLVersion!==1,basisNeedsPOT:this._webGLVersion===1,support3DTextures:this._webGLVersion!==1,needTypeSuffixInShaderConstants:this._webGLVersion!==1,supportMSAA:this._webGLVersion!==1,supportSSAO2:this._webGLVersion!==1,supportIBLShadows:this._webGLVersion!==1,supportExtendedTextureFormats:this._webGLVersion!==1,supportSwitchCaseInShader:this._webGLVersion!==1,supportSyncTextureRead:!0,needsInvertingBitmap:!0,useUBOBindingCache:!0,needShaderCodeInlining:!1,needToAlwaysBindUniformBuffers:!1,supportRenderPasses:!1,supportSpriteInstancing:!0,forceVertexBufferStrideAndOffsetMultiple4Bytes:!1,_checkNonFloatVertexBuffersDontRecreatePipelineContext:!1,_collectUbosUpdatedInFrame:!1}}get webGLVersion(){return this._webGLVersion}getClassName(){return"ThinEngine"}_prepareWorkingCanvas(){if(this._workingCanvas)return;this._workingCanvas=this.createCanvas(1,1);const e=this._workingCanvas.getContext("2d");e&&(this._workingContext=e)}getInfo(){return this.getGlInfo()}getGlInfo(){return{vendor:this._glVendor,renderer:this._glRenderer,version:this._glVersion}}extractDriverInfo(){const e=this.getGlInfo();return e&&e.renderer?e.renderer:""}getRenderWidth(e=!1){return!e&&this._currentRenderTarget?this._currentRenderTarget.width:this._framebufferDimensionsObject?this._framebufferDimensionsObject.framebufferWidth:this._gl.drawingBufferWidth}getRenderHeight(e=!1){return!e&&this._currentRenderTarget?this._currentRenderTarget.height:this._framebufferDimensionsObject?this._framebufferDimensionsObject.framebufferHeight:this._gl.drawingBufferHeight}clear(e,t,i,s=!1){var o,l;const r=this.stencilStateComposer.useStencilGlobalOnly;this.stencilStateComposer.useStencilGlobalOnly=!0,this.applyStates(),this.stencilStateComposer.useStencilGlobalOnly=r;let n=0;if(t&&e){let c=!0;if(this._currentRenderTarget){const u=(o=this._currentRenderTarget.texture)==null?void 0:o.format;if(u===8||u===9||u===10||u===11){const f=(l=this._currentRenderTarget.texture)==null?void 0:l.type;f===7||f===5?(Zi._TempClearColorUint32[0]=e.r*255,Zi._TempClearColorUint32[1]=e.g*255,Zi._TempClearColorUint32[2]=e.b*255,Zi._TempClearColorUint32[3]=e.a*255,this._gl.clearBufferuiv(this._gl.COLOR,0,Zi._TempClearColorUint32),c=!1):(Zi._TempClearColorInt32[0]=e.r*255,Zi._TempClearColorInt32[1]=e.g*255,Zi._TempClearColorInt32[2]=e.b*255,Zi._TempClearColorInt32[3]=e.a*255,this._gl.clearBufferiv(this._gl.COLOR,0,Zi._TempClearColorInt32),c=!1)}}c&&(this._gl.clearColor(e.r,e.g,e.b,e.a!==void 0?e.a:1),n|=this._gl.COLOR_BUFFER_BIT)}i&&(this.useReverseDepthBuffer?(this._depthCullingState.depthFunc=this._gl.GEQUAL,this._gl.clearDepth(0)):this._gl.clearDepth(1),n|=this._gl.DEPTH_BUFFER_BIT),s&&(this._gl.clearStencil(0),n|=this._gl.STENCIL_BUFFER_BIT),this._gl.clear(n)}_viewport(e,t,i,s){(e!==this._viewportCached.x||t!==this._viewportCached.y||i!==this._viewportCached.z||s!==this._viewportCached.w)&&(this._viewportCached.x=e,this._viewportCached.y=t,this._viewportCached.z=i,this._viewportCached.w=s,this._gl.viewport(e,t,i,s))}endFrame(){super.endFrame(),this._badOS&&this.flushFramebuffer()}get performanceMonitor(){throw new Error("Not Supported by ThinEngine")}bindFramebuffer(e,t=0,i,s,r,n=0,o=0){var f,p,m,_,d,h;const l=e;this._currentRenderTarget&&this.unBindFramebuffer(this._currentRenderTarget),this._currentRenderTarget=e,this._bindUnboundFramebuffer(l._framebuffer);const c=this._gl;e.isMulti||(e.is2DArray||e.is3D?(c.framebufferTextureLayer(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0,(f=e.texture._hardwareTexture)==null?void 0:f.underlyingResource,n,o),l._currentLOD=n):e.isCube?c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0,c.TEXTURE_CUBE_MAP_POSITIVE_X+t,(p=e.texture._hardwareTexture)==null?void 0:p.underlyingResource,n):l._currentLOD!==n&&(c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0,c.TEXTURE_2D,(m=e.texture._hardwareTexture)==null?void 0:m.underlyingResource,n),l._currentLOD=n));const u=e._depthStencilTexture;if(u){e.is3D&&(e.texture.width!==u.width||e.texture.height!==u.height||e.texture.depth!==u.depth)&&de.Warn("Depth/Stencil attachment for 3D target must have same dimensions as color attachment");const x=e._depthStencilTextureWithStencil?c.DEPTH_STENCIL_ATTACHMENT:c.DEPTH_ATTACHMENT;e.is2DArray||e.is3D?c.framebufferTextureLayer(c.FRAMEBUFFER,x,(_=u._hardwareTexture)==null?void 0:_.underlyingResource,n,o):e.isCube?c.framebufferTexture2D(c.FRAMEBUFFER,x,c.TEXTURE_CUBE_MAP_POSITIVE_X+t,(d=u._hardwareTexture)==null?void 0:d.underlyingResource,n):c.framebufferTexture2D(c.FRAMEBUFFER,x,c.TEXTURE_2D,(h=u._hardwareTexture)==null?void 0:h.underlyingResource,n)}l._MSAAFramebuffer&&this._bindUnboundFramebuffer(l._MSAAFramebuffer),this._cachedViewport&&!r?this.setViewport(this._cachedViewport,i,s):(i||(i=e.width,n&&(i=i/Math.pow(2,n))),s||(s=e.height,n&&(s=s/Math.pow(2,n))),this._viewport(0,0,i,s)),this.wipeCaches()}setStateCullFaceType(e,t){const i=this.cullBackFaces??e??!0?this._gl.BACK:this._gl.FRONT;(this._depthCullingState.cullFace!==i||t)&&(this._depthCullingState.cullFace=i)}setState(e,t=0,i,s=!1,r,n,o=0){(this._depthCullingState.cull!==e||i)&&(this._depthCullingState.cull=e),this.setStateCullFaceType(r,i),this.setZOffset(t),this.setZOffsetUnits(o);const l=s?this._gl.CW:this._gl.CCW;(this._depthCullingState.frontFace!==l||i)&&(this._depthCullingState.frontFace=l),this._stencilStateComposer.stencilMaterial=n}_bindUnboundFramebuffer(e){this._currentFramebuffer!==e&&(this._gl.bindFramebuffer(this._gl.FRAMEBUFFER,e),this._currentFramebuffer=e)}_currentFrameBufferIsDefaultFrameBuffer(){return this._currentFramebuffer===null}generateMipmaps(e){const t=this._getTextureTarget(e);this._bindTextureDirectly(t,e,!0),this._gl.generateMipmap(t),this._bindTextureDirectly(t,null)}unBindFramebuffer(e,t=!1,i){const s=e;this._currentRenderTarget=null,s.disableAutomaticMSAAResolve||(e.isMulti?this.resolveMultiFramebuffer(e):this.resolveFramebuffer(e)),t||(e.isMulti?this.generateMipMapsMultiFramebuffer(e):this.generateMipMapsFramebuffer(e)),i&&(s._MSAAFramebuffer&&this._bindUnboundFramebuffer(s._framebuffer),i()),this._bindUnboundFramebuffer(null)}generateMipMapsFramebuffer(e){var t;!e.isMulti&&((t=e.texture)!=null&&t.generateMipMaps)&&!e.isCube&&this.generateMipmaps(e.texture)}resolveFramebuffer(e){const t=e,i=this._gl;if(!t._MSAAFramebuffer||t.isMulti)return;let s=t.resolveMSAAColors?i.COLOR_BUFFER_BIT:0;s|=t._generateDepthBuffer&&t.resolveMSAADepth?i.DEPTH_BUFFER_BIT:0,s|=t._generateStencilBuffer&&t.resolveMSAAStencil?i.STENCIL_BUFFER_BIT:0,i.bindFramebuffer(i.READ_FRAMEBUFFER,t._MSAAFramebuffer),i.bindFramebuffer(i.DRAW_FRAMEBUFFER,t._framebuffer),i.blitFramebuffer(0,0,e.width,e.height,0,0,e.width,e.height,s,i.NEAREST)}flushFramebuffer(){this._gl.flush()}restoreDefaultFramebuffer(){this._currentRenderTarget?this.unBindFramebuffer(this._currentRenderTarget):this._bindUnboundFramebuffer(null),this._cachedViewport&&this.setViewport(this._cachedViewport),this.wipeCaches()}_resetVertexBufferBinding(){this.bindArrayBuffer(null),this._cachedVertexBuffers=null}createVertexBuffer(e,t,i){return this._createVertexBuffer(e,this._gl.STATIC_DRAW)}_createVertexBuffer(e,t){const i=this._gl.createBuffer();if(!i)throw new Error("Unable to create vertex buffer");const s=new MP(i);return this.bindArrayBuffer(s),typeof e!="number"?e instanceof Array?(this._gl.bufferData(this._gl.ARRAY_BUFFER,new Float32Array(e),t),s.capacity=e.length*4):(this._gl.bufferData(this._gl.ARRAY_BUFFER,e,t),s.capacity=e.byteLength):(this._gl.bufferData(this._gl.ARRAY_BUFFER,new Uint8Array(e),t),s.capacity=e),this._resetVertexBufferBinding(),s.references=1,s}createDynamicVertexBuffer(e,t){return this._createVertexBuffer(e,this._gl.DYNAMIC_DRAW)}_resetIndexBufferBinding(){this.bindIndexBuffer(null),this._cachedIndexBuffer=null}createIndexBuffer(e,t,i){const s=this._gl.createBuffer(),r=new MP(s);if(!s)throw new Error("Unable to create index buffer");this.bindIndexBuffer(r);const n=this._normalizeIndexData(e);return this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER,n,t?this._gl.DYNAMIC_DRAW:this._gl.STATIC_DRAW),this._resetIndexBufferBinding(),r.references=1,r.is32Bits=n.BYTES_PER_ELEMENT===4,r}_normalizeIndexData(e){if(e.BYTES_PER_ELEMENT===2)return e;if(this._caps.uintIndices){if(e instanceof Uint32Array)return e;for(let i=0;i<e.length;i++)if(e[i]>=65535)return new Uint32Array(e);return new Uint16Array(e)}return new Uint16Array(e)}bindArrayBuffer(e){this._vaoRecordInProgress||this._unbindVertexArrayObject(),this._bindBuffer(e,this._gl.ARRAY_BUFFER)}bindUniformBlock(e,t,i){const s=e.program,r=this._gl.getUniformBlockIndex(s,t);this._gl.uniformBlockBinding(s,r,i)}bindIndexBuffer(e){this._vaoRecordInProgress||this._unbindVertexArrayObject(),this._bindBuffer(e,this._gl.ELEMENT_ARRAY_BUFFER)}_bindBuffer(e,t){(this._vaoRecordInProgress||this._currentBoundBuffer[t]!==e)&&(this._gl.bindBuffer(t,e?e.underlyingResource:null),this._currentBoundBuffer[t]=e)}updateArrayBuffer(e){this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,e)}_vertexAttribPointer(e,t,i,s,r,n,o){const l=this._currentBufferPointers[t];if(!l)return;let c=!1;l.active?(l.buffer!==e&&(l.buffer=e,c=!0),l.size!==i&&(l.size=i,c=!0),l.type!==s&&(l.type=s,c=!0),l.normalized!==r&&(l.normalized=r,c=!0),l.stride!==n&&(l.stride=n,c=!0),l.offset!==o&&(l.offset=o,c=!0)):(c=!0,l.active=!0,l.index=t,l.size=i,l.type=s,l.normalized=r,l.stride=n,l.offset=o,l.buffer=e),(c||this._vaoRecordInProgress)&&(this.bindArrayBuffer(e),s===this._gl.UNSIGNED_INT||s===this._gl.INT?this._gl.vertexAttribIPointer(t,i,s,n,o):this._gl.vertexAttribPointer(t,i,s,r,n,o))}_bindIndexBufferWithCache(e){e!=null&&this._cachedIndexBuffer!==e&&(this._cachedIndexBuffer=e,this.bindIndexBuffer(e),this._uintIndicesCurrentlySet=e.is32Bits)}_bindVertexBuffersAttributes(e,t,i){const s=t.getAttributesNames();this._vaoRecordInProgress||this._unbindVertexArrayObject(),this.unbindAllAttributes();for(let r=0;r<s.length;r++){const n=t.getAttributeLocation(r);if(n>=0){const o=s[r];let l=null;if(i&&(l=i[o]),l||(l=e[o]),!l)continue;this._gl.enableVertexAttribArray(n),this._vaoRecordInProgress||(this._vertexAttribArraysEnabled[n]=!0);const c=l.getBuffer();c&&(this._vertexAttribPointer(c,n,l.getSize(),l.type,l.normalized,l.byteStride,l.byteOffset),l.getIsInstanced()&&(this._gl.vertexAttribDivisor(n,l.getInstanceDivisor()),this._vaoRecordInProgress||(this._currentInstanceLocations.push(n),this._currentInstanceBuffers.push(c))))}}}recordVertexArrayObject(e,t,i,s){const r=this._gl.createVertexArray();if(!r)throw new Error("Unable to create VAO");return this._vaoRecordInProgress=!0,this._gl.bindVertexArray(r),this._mustWipeVertexAttributes=!0,this._bindVertexBuffersAttributes(e,i,s),this.bindIndexBuffer(t),this._vaoRecordInProgress=!1,this._gl.bindVertexArray(null),r}bindVertexArrayObject(e,t){this._cachedVertexArrayObject!==e&&(this._cachedVertexArrayObject=e,this._gl.bindVertexArray(e),this._cachedVertexBuffers=null,this._cachedIndexBuffer=null,this._uintIndicesCurrentlySet=t!=null&&t.is32Bits,this._mustWipeVertexAttributes=!0)}bindBuffersDirectly(e,t,i,s,r){if(this._cachedVertexBuffers!==e||this._cachedEffectForVertexBuffers!==r){this._cachedVertexBuffers=e,this._cachedEffectForVertexBuffers=r;const n=r.getAttributesCount();this._unbindVertexArrayObject(),this.unbindAllAttributes();let o=0;for(let l=0;l<n;l++)if(l<i.length){const c=r.getAttributeLocation(l);c>=0&&(this._gl.enableVertexAttribArray(c),this._vertexAttribArraysEnabled[c]=!0,this._vertexAttribPointer(e,c,i[l],this._gl.FLOAT,!1,s,o)),o+=i[l]*4}}this._bindIndexBufferWithCache(t)}_unbindVertexArrayObject(){this._cachedVertexArrayObject&&(this._cachedVertexArrayObject=null,this._gl.bindVertexArray(null))}bindBuffers(e,t,i,s){(this._cachedVertexBuffers!==e||this._cachedEffectForVertexBuffers!==i)&&(this._cachedVertexBuffers=e,this._cachedEffectForVertexBuffers=i,this._bindVertexBuffersAttributes(e,i,s)),this._bindIndexBufferWithCache(t)}unbindInstanceAttributes(){let e;for(let t=0,i=this._currentInstanceLocations.length;t<i;t++){const s=this._currentInstanceBuffers[t];e!=s&&s.references&&(e=s,this.bindArrayBuffer(s));const r=this._currentInstanceLocations[t];this._gl.vertexAttribDivisor(r,0)}this._currentInstanceBuffers.length=0,this._currentInstanceLocations.length=0}releaseVertexArrayObject(e){this._gl.deleteVertexArray(e)}_releaseBuffer(e){return e.references--,e.references===0?(this._deleteBuffer(e),!0):!1}_deleteBuffer(e){this._gl.deleteBuffer(e.underlyingResource)}updateAndBindInstancesBuffer(e,t,i){if(this.bindArrayBuffer(e),t&&this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,t),i[0].index!==void 0)this.bindInstancesBuffer(e,i,!0);else for(let s=0;s<4;s++){const r=i[s];this._vertexAttribArraysEnabled[r]||(this._gl.enableVertexAttribArray(r),this._vertexAttribArraysEnabled[r]=!0),this._vertexAttribPointer(e,r,4,this._gl.FLOAT,!1,64,s*16),this._gl.vertexAttribDivisor(r,1),this._currentInstanceLocations.push(r),this._currentInstanceBuffers.push(e)}}bindInstancesBuffer(e,t,i=!0){this.bindArrayBuffer(e);let s=0;if(i)for(let r=0;r<t.length;r++){const n=t[r];s+=n.attributeSize*4}for(let r=0;r<t.length;r++){const n=t[r];n.index===void 0&&(n.index=this._currentEffect.getAttributeLocationByName(n.attributeName)),!(n.index<0)&&(this._vertexAttribArraysEnabled[n.index]||(this._gl.enableVertexAttribArray(n.index),this._vertexAttribArraysEnabled[n.index]=!0),this._vertexAttribPointer(e,n.index,n.attributeSize,n.attributeType||this._gl.FLOAT,n.normalized||!1,s,n.offset),this._gl.vertexAttribDivisor(n.index,n.divisor===void 0?1:n.divisor),this._currentInstanceLocations.push(n.index),this._currentInstanceBuffers.push(e))}}disableInstanceAttributeByName(e){if(!this._currentEffect)return;const t=this._currentEffect.getAttributeLocationByName(e);this.disableInstanceAttribute(t)}disableInstanceAttribute(e){let t=!1,i;for(;(i=this._currentInstanceLocations.indexOf(e))!==-1;)this._currentInstanceLocations.splice(i,1),this._currentInstanceBuffers.splice(i,1),t=!0,i=this._currentInstanceLocations.indexOf(e);t&&(this._gl.vertexAttribDivisor(e,0),this.disableAttributeByIndex(e))}disableAttributeByIndex(e){this._gl.disableVertexAttribArray(e),this._vertexAttribArraysEnabled[e]=!1,this._currentBufferPointers[e].active=!1}draw(e,t,i,s){this.drawElementsType(e?0:1,t,i,s)}drawPointClouds(e,t,i){this.drawArraysType(2,e,t,i)}drawUnIndexed(e,t,i,s){this.drawArraysType(e?0:1,t,i,s)}drawElementsType(e,t,i,s){this.applyStates(),this._reportDrawCall();const r=this._drawMode(e),n=this._uintIndicesCurrentlySet?this._gl.UNSIGNED_INT:this._gl.UNSIGNED_SHORT,o=this._uintIndicesCurrentlySet?4:2;s?this._gl.drawElementsInstanced(r,i,n,t*o,s):this._gl.drawElements(r,i,n,t*o)}drawArraysType(e,t,i,s){this.applyStates(),this._reportDrawCall();const r=this._drawMode(e);s?this._gl.drawArraysInstanced(r,t,i,s):this._gl.drawArrays(r,t,i)}_drawMode(e){switch(e){case 0:return this._gl.TRIANGLES;case 2:return this._gl.POINTS;case 1:return this._gl.LINES;case 3:return this._gl.POINTS;case 4:return this._gl.LINES;case 5:return this._gl.LINE_LOOP;case 6:return this._gl.LINE_STRIP;case 7:return this._gl.TRIANGLE_STRIP;case 8:return this._gl.TRIANGLE_FAN;default:return this._gl.TRIANGLES}}_releaseEffect(e){this._compiledEffects[e._key]&&delete this._compiledEffects[e._key];const t=e.getPipelineContext();t&&this._deletePipelineContext(t)}_deletePipelineContext(e){const t=e;t&&t.program&&(t.program.__SPECTOR_rebuildProgram=null,_X(t),this._gl&&this._gl.deleteProgram(t.program))}_getGlobalDefines(e){return wue(e,this.isNDCHalfZRange,this.useReverseDepthBuffer,this.useExactSrgbConversions)}createEffect(e,t,i,s,r,n,o,l,c,u=0,f){const p=typeof e=="string"?e:e.vertexToken||e.vertexSource||e.vertexElement||e.vertex,m=typeof e=="string"?e:e.fragmentToken||e.fragmentSource||e.fragmentElement||e.fragment,_=this._getGlobalDefines(),d=t.attributes!==void 0;let h=r??t.defines??"";_&&(h+=_);const x=p+"+"+m+"@"+h;if(this._compiledEffects[x]){const S=this._compiledEffects[x];return o&&S.isReady()&&o(S),S._refCount++,S}this._gl&&$p(this._gl);const A=new Ls(e,t,d?this:i,s,this,r,n,o,l,c,x,t.shaderLanguage??u,t.extraInitializationsAsync??f);return this._compiledEffects[x]=A,A}_getShaderSource(e){return this._gl.getShaderSource(e)}createRawShaderProgram(e,t,i,s,r=null){const n=$p(this._gl);return n._contextWasLost=this._contextWasLost,n.validateShaderPrograms=this.validateShaderPrograms,Gue(e,t,i,s||this._gl,r)}createShaderProgram(e,t,i,s,r,n=null){const o=$p(this._gl);return o._contextWasLost=this._contextWasLost,o.validateShaderPrograms=this.validateShaderPrograms,Wue(e,t,i,s,r||this._gl,n)}inlineShaderCode(e){return e}createPipelineContext(e){if(this._gl){const i=$p(this._gl);i.parallelShaderCompile=this._caps.parallelShaderCompile}const t=GPe(this._gl);return t.engine=this,t}createMaterialContext(){}createDrawContext(){}_finalizePipelineContext(e){return mX(e,this._gl,this.validateShaderPrograms)}_preparePipelineContext(e,t,i,s,r,n,o,l,c,u,f){const p=$p(this._gl);return p._contextWasLost=this._contextWasLost,p.validateShaderPrograms=this.validateShaderPrograms,p._createShaderProgramInjection=this._createShaderProgram.bind(this),p.createRawShaderProgramInjection=this.createRawShaderProgram.bind(this),p.createShaderProgramInjection=this.createShaderProgram.bind(this),p.loadFileInjection=this._loadFile.bind(this),HPe(e,t,i,s,r,n,o,l,c,u,f)}_createShaderProgram(e,t,i,s,r=null){return pX(e,t,i,s,r)}_isRenderingStateCompiled(e){return this._isDisposed?!1:WPe(e,this._gl,this.validateShaderPrograms)}_executeWhenRenderingStateIsCompiled(e,t){XPe(e,t)}getUniforms(e,t){const i=new Array,s=e;for(let r=0;r<t.length;r++)i.push(this._gl.getUniformLocation(s.program,t[r]));return i}getAttributes(e,t){const i=[],s=e;for(let r=0;r<t.length;r++)try{i.push(this._gl.getAttribLocation(s.program,t[r]))}catch{i.push(-1)}return i}enableEffect(e){e=e!==null&&MG(e)?e.effect:e,!(!e||e===this._currentEffect)&&(this._stencilStateComposer.stencilMaterial=void 0,e=e,this.bindSamplers(e),this._currentEffect=e,e.onBind&&e.onBind(e),e._onBindObservable&&e._onBindObservable.notifyObservers(e))}setInt(e,t){return e?(this._gl.uniform1i(e,t),!0):!1}setInt2(e,t,i){return e?(this._gl.uniform2i(e,t,i),!0):!1}setInt3(e,t,i,s){return e?(this._gl.uniform3i(e,t,i,s),!0):!1}setInt4(e,t,i,s,r){return e?(this._gl.uniform4i(e,t,i,s,r),!0):!1}setIntArray(e,t){return e?(this._gl.uniform1iv(e,t),!0):!1}setIntArray2(e,t){return!e||t.length%2!==0?!1:(this._gl.uniform2iv(e,t),!0)}setIntArray3(e,t){return!e||t.length%3!==0?!1:(this._gl.uniform3iv(e,t),!0)}setIntArray4(e,t){return!e||t.length%4!==0?!1:(this._gl.uniform4iv(e,t),!0)}setUInt(e,t){return e?(this._gl.uniform1ui(e,t),!0):!1}setUInt2(e,t,i){return e?(this._gl.uniform2ui(e,t,i),!0):!1}setUInt3(e,t,i,s){return e?(this._gl.uniform3ui(e,t,i,s),!0):!1}setUInt4(e,t,i,s,r){return e?(this._gl.uniform4ui(e,t,i,s,r),!0):!1}setUIntArray(e,t){return e?(this._gl.uniform1uiv(e,t),!0):!1}setUIntArray2(e,t){return!e||t.length%2!==0?!1:(this._gl.uniform2uiv(e,t),!0)}setUIntArray3(e,t){return!e||t.length%3!==0?!1:(this._gl.uniform3uiv(e,t),!0)}setUIntArray4(e,t){return!e||t.length%4!==0?!1:(this._gl.uniform4uiv(e,t),!0)}setArray(e,t){return!e||t.length<1?!1:(this._gl.uniform1fv(e,t),!0)}setArray2(e,t){return!e||t.length%2!==0?!1:(this._gl.uniform2fv(e,t),!0)}setArray3(e,t){return!e||t.length%3!==0?!1:(this._gl.uniform3fv(e,t),!0)}setArray4(e,t){return!e||t.length%4!==0?!1:(this._gl.uniform4fv(e,t),!0)}setMatrices(e,t){return e?(this._gl.uniformMatrix4fv(e,!1,t),!0):!1}setMatrix3x3(e,t){return e?(this._gl.uniformMatrix3fv(e,!1,t),!0):!1}setMatrix2x2(e,t){return e?(this._gl.uniformMatrix2fv(e,!1,t),!0):!1}setFloat(e,t){return e?(this._gl.uniform1f(e,t),!0):!1}setFloat2(e,t,i){return e?(this._gl.uniform2f(e,t,i),!0):!1}setFloat3(e,t,i,s){return e?(this._gl.uniform3f(e,t,i,s),!0):!1}setFloat4(e,t,i,s,r){return e?(this._gl.uniform4f(e,t,i,s,r),!0):!1}applyStates(){if(this._depthCullingState.apply(this._gl),this._stencilStateComposer.apply(this._gl),this._alphaState.apply(this._gl),this._colorWriteChanged){this._colorWriteChanged=!1;const e=this._colorWrite;this._gl.colorMask(e,e,e,e)}}wipeCaches(e){this.preventCacheWipeBetweenFrames&&!e||(this._currentEffect=null,this._viewportCached.x=0,this._viewportCached.y=0,this._viewportCached.z=0,this._viewportCached.w=0,this._unbindVertexArrayObject(),e&&(this._currentProgram=null,this.resetTextureCache(),this._stencilStateComposer.reset(),this._depthCullingState.reset(),this._depthCullingState.depthFunc=this._gl.LEQUAL,this._alphaState.reset(),this._alphaMode=1,this._alphaEquation=0,this._colorWrite=!0,this._colorWriteChanged=!0,this._unpackFlipYCached=null,this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,this._gl.NONE),this._gl.pixelStorei(this._gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),this._mustWipeVertexAttributes=!0,this.unbindAllAttributes()),this._resetVertexBufferBinding(),this._cachedIndexBuffer=null,this._cachedEffectForVertexBuffers=null,this.bindIndexBuffer(null))}_getSamplingParameters(e,t){const i=this._gl;let s=i.NEAREST,r=i.NEAREST;switch(e){case 11:s=i.LINEAR,t?r=i.LINEAR_MIPMAP_NEAREST:r=i.LINEAR;break;case 3:s=i.LINEAR,t?r=i.LINEAR_MIPMAP_LINEAR:r=i.LINEAR;break;case 8:s=i.NEAREST,t?r=i.NEAREST_MIPMAP_LINEAR:r=i.NEAREST;break;case 4:s=i.NEAREST,t?r=i.NEAREST_MIPMAP_NEAREST:r=i.NEAREST;break;case 5:s=i.NEAREST,t?r=i.LINEAR_MIPMAP_NEAREST:r=i.LINEAR;break;case 6:s=i.NEAREST,t?r=i.LINEAR_MIPMAP_LINEAR:r=i.LINEAR;break;case 7:s=i.NEAREST,r=i.LINEAR;break;case 1:s=i.NEAREST,r=i.NEAREST;break;case 9:s=i.LINEAR,t?r=i.NEAREST_MIPMAP_NEAREST:r=i.NEAREST;break;case 10:s=i.LINEAR,t?r=i.NEAREST_MIPMAP_LINEAR:r=i.NEAREST;break;case 2:s=i.LINEAR,r=i.LINEAR;break;case 12:s=i.LINEAR,r=i.NEAREST;break}return{min:r,mag:s}}_createTexture(){const e=this._gl.createTexture();if(!e)throw new Error("Unable to create texture");return e}_createHardwareTexture(){return new J9(this._createTexture(),this._gl)}_createInternalTexture(e,t,i=!0,s=0){let r=!1,n=!1,o=0,l=3,c=5,u=!1,f=1,p,m=!1,_=0;t!==void 0&&typeof t=="object"?(r=!!t.generateMipMaps,n=!!t.createMipMaps,o=t.type===void 0?0:t.type,l=t.samplingMode===void 0?3:t.samplingMode,c=t.format===void 0?5:t.format,u=t.useSRGBBuffer===void 0?!1:t.useSRGBBuffer,f=t.samples??1,p=t.label,m=!!t.createMSAATexture,_=t.comparisonFunction||0):r=!!t,u&&(u=this._caps.supportSRGBBuffers&&(this.webGLVersion>1||this.isWebGPU)),(o===1&&!this._caps.textureFloatLinearFiltering||o===2&&!this._caps.textureHalfFloatLinearFiltering)&&(l=1),o===1&&!this._caps.textureFloat&&(o=0,de.Warn("Float textures are not supported. Type forced to TEXTURETYPE_UNSIGNED_BYTE"));const d=IZ(c),h=zT(c),x=this._gl,A=new gr(this,s),S=e.width||e,E=e.height||e,b=e.depth||0,M=e.layers||0,T=this._getSamplingParameters(l,(r||n)&&!d),O=M!==0?x.TEXTURE_2D_ARRAY:b!==0?x.TEXTURE_3D:x.TEXTURE_2D,R=d?this._getInternalFormatFromDepthTextureFormat(c,!0,h):this._getRGBABufferInternalSizedFormat(o,c,u),I=d?h?x.DEPTH_STENCIL:x.DEPTH_COMPONENT:this._getInternalFormat(c),N=d?this._getWebGLTextureTypeFromDepthTextureFormat(c):this._getWebGLTextureType(o);if(this._bindTextureDirectly(O,A),M!==0?(A.is2DArray=!0,x.texImage3D(O,0,R,S,E,M,0,I,N,null)):b!==0?(A.is3D=!0,x.texImage3D(O,0,R,S,E,b,0,I,N,null)):x.texImage2D(O,0,R,S,E,0,I,N,null),x.texParameteri(O,x.TEXTURE_MAG_FILTER,T.mag),x.texParameteri(O,x.TEXTURE_MIN_FILTER,T.min),x.texParameteri(O,x.TEXTURE_WRAP_S,x.CLAMP_TO_EDGE),x.texParameteri(O,x.TEXTURE_WRAP_T,x.CLAMP_TO_EDGE),d&&this.webGLVersion>1&&(_===0?(x.texParameteri(O,x.TEXTURE_COMPARE_FUNC,515),x.texParameteri(O,x.TEXTURE_COMPARE_MODE,x.NONE)):(x.texParameteri(O,x.TEXTURE_COMPARE_FUNC,_),x.texParameteri(O,x.TEXTURE_COMPARE_MODE,x.COMPARE_REF_TO_TEXTURE))),(r||n)&&this._gl.generateMipmap(O),this._bindTextureDirectly(O,null),A._useSRGBBuffer=u,A.baseWidth=S,A.baseHeight=E,A.width=S,A.height=E,A.depth=M||b,A.isReady=!0,A.samples=f,A.generateMipMaps=r,A.samplingMode=l,A.type=o,A.format=c,A.label=p,A.comparisonFunction=_,this._internalTexturesCache.push(A),m){let w=null;if(IZ(A.format)?w=this._setupFramebufferDepthAttachments(zT(A.format),A.format!==19,A.width,A.height,f,A.format,!0):w=this._createRenderBuffer(A.width,A.height,f,-1,this._getRGBABufferInternalSizedFormat(A.type,A.format,A._useSRGBBuffer),-1),!w)throw new Error("Unable to create render buffer");A._autoMSAAManagement=!0;let D=A._hardwareTexture;D||(D=A._hardwareTexture=this._createHardwareTexture()),D.addMSAARenderBuffer(w)}return A}_getUseSRGBBuffer(e,t){return e&&this._caps.supportSRGBBuffers&&(this.webGLVersion>1||t)}createTexture(e,t,i,s,r=3,n=null,o=null,l=null,c=null,u=null,f=null,p,m,_,d){return this._createTextureBase(e,t,i,s,r,n,o,(...h)=>this._prepareWebGLTexture(...h,u),(h,x,A,S,E,b)=>{const M=this._gl,T=A.width===h&&A.height===x;E._creationFlags=_??0;const O=this._getTexImageParametersForCreateTexture(E.format,E._useSRGBBuffer);if(T)return M.texImage2D(M.TEXTURE_2D,0,O.internalFormat,O.format,O.type,A),!1;const R=this._caps.maxTextureSize;if(A.width>R||A.height>R||!this._supportsHardwareTextureRescaling)return this._prepareWorkingCanvas(),!this._workingCanvas||!this._workingContext||(this._workingCanvas.width=h,this._workingCanvas.height=x,this._workingContext.drawImage(A,0,0,A.width,A.height,0,0,h,x),M.texImage2D(M.TEXTURE_2D,0,O.internalFormat,O.format,O.type,this._workingCanvas),E.width=h,E.height=x),!1;{const I=new gr(this,2);this._bindTextureDirectly(M.TEXTURE_2D,I,!0),M.texImage2D(M.TEXTURE_2D,0,O.internalFormat,O.format,O.type,A),this._rescaleTexture(I,E,s,O.format,()=>{this._releaseTexture(I),this._bindTextureDirectly(M.TEXTURE_2D,E,!0),b()})}return!0},l,c,u,f,p,m,d)}_getTexImageParametersForCreateTexture(e,t){let i,s;return this.webGLVersion===1?(i=this._getInternalFormat(e,t),s=i):(i=this._getInternalFormat(e,!1),s=this._getRGBABufferInternalSizedFormat(0,e,t)),{internalFormat:s,format:i,type:this._gl.UNSIGNED_BYTE}}_rescaleTexture(e,t,i,s,r){}_unpackFlipY(e){this._unpackFlipYCached!==e&&(this._gl.pixelStorei(this._gl.UNPACK_FLIP_Y_WEBGL,e?1:0),this.enableUnpackFlipYCached&&(this._unpackFlipYCached=e))}_getUnpackAlignement(){return this._gl.getParameter(this._gl.UNPACK_ALIGNMENT)}_getTextureTarget(e){return e.isCube?this._gl.TEXTURE_CUBE_MAP:e.is3D?this._gl.TEXTURE_3D:e.is2DArray||e.isMultiview?this._gl.TEXTURE_2D_ARRAY:this._gl.TEXTURE_2D}updateTextureSamplingMode(e,t,i=!1){const s=this._getTextureTarget(t),r=this._getSamplingParameters(e,t.useMipMaps||i);this._setTextureParameterInteger(s,this._gl.TEXTURE_MAG_FILTER,r.mag,t),this._setTextureParameterInteger(s,this._gl.TEXTURE_MIN_FILTER,r.min),i&&(t.generateMipMaps=!0,this._gl.generateMipmap(s)),this._bindTextureDirectly(s,null),t.samplingMode=e}updateTextureDimensions(e,t,i,s=1){}updateTextureWrappingMode(e,t,i=null,s=null){const r=this._getTextureTarget(e);t!==null&&(this._setTextureParameterInteger(r,this._gl.TEXTURE_WRAP_S,this._getTextureWrapMode(t),e),e._cachedWrapU=t),i!==null&&(this._setTextureParameterInteger(r,this._gl.TEXTURE_WRAP_T,this._getTextureWrapMode(i),e),e._cachedWrapV=i),(e.is2DArray||e.is3D)&&s!==null&&(this._setTextureParameterInteger(r,this._gl.TEXTURE_WRAP_R,this._getTextureWrapMode(s),e),e._cachedWrapR=s),this._bindTextureDirectly(r,null)}_uploadCompressedDataToTextureDirectly(e,t,i,s,r,n=0,o=0){const l=this._gl;let c=l.TEXTURE_2D;if(e.isCube&&(c=l.TEXTURE_CUBE_MAP_POSITIVE_X+n),e._useSRGBBuffer)switch(t){case 37492:case 36196:this._caps.etc2?t=l.COMPRESSED_SRGB8_ETC2:e._useSRGBBuffer=!1;break;case 37496:this._caps.etc2?t=l.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:e._useSRGBBuffer=!1;break;case 36492:t=l.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT;break;case 37808:t=l.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR;break;case 33776:this._caps.s3tc_srgb?t=l.COMPRESSED_SRGB_S3TC_DXT1_EXT:e._useSRGBBuffer=!1;break;case 33777:this._caps.s3tc_srgb?t=l.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:e._useSRGBBuffer=!1;break;case 33779:this._caps.s3tc_srgb?t=l.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:e._useSRGBBuffer=!1;break;default:e._useSRGBBuffer=!1;break}this._gl.compressedTexImage2D(c,o,t,i,s,0,r)}_uploadDataToTextureDirectly(e,t,i=0,s=0,r,n=!1){const o=this._gl,l=this._getWebGLTextureType(e.type),c=this._getInternalFormat(e.format),u=r===void 0?this._getRGBABufferInternalSizedFormat(e.type,e.format,e._useSRGBBuffer):this._getInternalFormat(r,e._useSRGBBuffer);this._unpackFlipY(e.invertY);let f=o.TEXTURE_2D;e.isCube&&(f=o.TEXTURE_CUBE_MAP_POSITIVE_X+i);const p=Math.round(Math.log(e.width)*Math.LOG2E),m=Math.round(Math.log(e.height)*Math.LOG2E),_=n?e.width:Math.pow(2,Math.max(p-s,0)),d=n?e.height:Math.pow(2,Math.max(m-s,0));o.texImage2D(f,s,u,_,d,0,c,l,t)}updateTextureData(e,t,i,s,r,n,o=0,l=0,c=!1){const u=this._gl,f=this._getWebGLTextureType(e.type),p=this._getInternalFormat(e.format);this._unpackFlipY(e.invertY);let m=u.TEXTURE_2D,_=u.TEXTURE_2D;e.isCube&&(_=u.TEXTURE_CUBE_MAP_POSITIVE_X+o,m=u.TEXTURE_CUBE_MAP),this._bindTextureDirectly(m,e,!0),u.texSubImage2D(_,l,i,s,r,n,p,f,t),c&&this._gl.generateMipmap(_),this._bindTextureDirectly(m,null)}_uploadArrayBufferViewToTexture(e,t,i=0,s=0){const r=this._gl,n=e.isCube?r.TEXTURE_CUBE_MAP:r.TEXTURE_2D;this._bindTextureDirectly(n,e,!0),this._uploadDataToTextureDirectly(e,t,i,s),this._bindTextureDirectly(n,null,!0)}_prepareWebGLTextureContinuation(e,t,i,s,r){const n=this._gl;if(!n)return;const o=this._getSamplingParameters(r,!i);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,o.mag),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,o.min),!i&&!s&&n.generateMipmap(n.TEXTURE_2D),this._bindTextureDirectly(n.TEXTURE_2D,null),t&&t.removePendingData(e),e.onLoadedObservable.notifyObservers(e),e.onLoadedObservable.clear()}_prepareWebGLTexture(e,t,i,s,r,n,o,l,c,u){const f=this.getCaps().maxTextureSize,p=Math.min(f,this.needPOTTextures?g0(s.width,f):s.width),m=Math.min(f,this.needPOTTextures?g0(s.height,f):s.height),_=this._gl;if(_){if(!e._hardwareTexture){i&&i.removePendingData(e);return}this._bindTextureDirectly(_.TEXTURE_2D,e,!0),this._unpackFlipY(r===void 0?!0:!!r),e.baseWidth=s.width,e.baseHeight=s.height,e.width=p,e.height=m,e.isReady=!0,e.type=e.type!==-1?e.type:0,e.format=e.format!==-1?e.format:u??(t===".jpg"&&!e._useSRGBBuffer?4:5),!l(p,m,s,t,e,()=>{this._prepareWebGLTextureContinuation(e,i,n,o,c)})&&this._prepareWebGLTextureContinuation(e,i,n,o,c)}}_getInternalFormatFromDepthTextureFormat(e,t,i){const s=this._gl;if(!t)return s.STENCIL_INDEX8;let n=i?s.DEPTH_STENCIL:s.DEPTH_COMPONENT;return this.webGLVersion>1?e===15?n=s.DEPTH_COMPONENT16:e===16?n=s.DEPTH_COMPONENT24:e===17||e===13?n=i?s.DEPTH24_STENCIL8:s.DEPTH_COMPONENT24:e===14?n=s.DEPTH_COMPONENT32F:e===18&&(n=i?s.DEPTH32F_STENCIL8:s.DEPTH_COMPONENT32F):n=s.DEPTH_COMPONENT16,n}_getWebGLTextureTypeFromDepthTextureFormat(e){const t=this._gl;let i=t.UNSIGNED_INT;return e===15?i=t.UNSIGNED_SHORT:e===17||e===13?i=t.UNSIGNED_INT_24_8:e===14?i=t.FLOAT:e===18?i=t.FLOAT_32_UNSIGNED_INT_24_8_REV:e===19&&(i=t.UNSIGNED_BYTE),i}_setupFramebufferDepthAttachments(e,t,i,s,r=1,n,o=!1){const l=this._gl;n=n??(e?13:14);const c=this._getInternalFormatFromDepthTextureFormat(n,t,e);return e&&t?this._createRenderBuffer(i,s,r,l.DEPTH_STENCIL,c,o?-1:l.DEPTH_STENCIL_ATTACHMENT):t?this._createRenderBuffer(i,s,r,c,c,o?-1:l.DEPTH_ATTACHMENT):e?this._createRenderBuffer(i,s,r,c,c,o?-1:l.STENCIL_ATTACHMENT):null}_createRenderBuffer(e,t,i,s,r,n,o=!0){const c=this._gl.createRenderbuffer();return this._updateRenderBuffer(c,e,t,i,s,r,n,o)}_updateRenderBuffer(e,t,i,s,r,n,o,l=!0){const c=this._gl;return c.bindRenderbuffer(c.RENDERBUFFER,e),s>1&&c.renderbufferStorageMultisample?c.renderbufferStorageMultisample(c.RENDERBUFFER,s,n,t,i):c.renderbufferStorage(c.RENDERBUFFER,r,t,i),o!==-1&&c.framebufferRenderbuffer(c.FRAMEBUFFER,o,c.RENDERBUFFER,e),l&&c.bindRenderbuffer(c.RENDERBUFFER,null),e}_releaseTexture(e){this._deleteTexture(e._hardwareTexture),this.unbindAllTextures();const t=this._internalTexturesCache.indexOf(e);t!==-1&&this._internalTexturesCache.splice(t,1),e._lodTextureHigh&&e._lodTextureHigh.dispose(),e._lodTextureMid&&e._lodTextureMid.dispose(),e._lodTextureLow&&e._lodTextureLow.dispose(),e._irradianceTexture&&e._irradianceTexture.dispose()}_deleteTexture(e){e==null||e.release()}_setProgram(e){this._currentProgram!==e&&(YPe(e,this._gl),this._currentProgram=e)}bindSamplers(e){const t=e.getPipelineContext();this._setProgram(t.program);const i=e.getSamplers();for(let s=0;s<i.length;s++){const r=e.getUniform(i[s]);r&&(this._boundUniforms[s]=r)}this._currentEffect=null}_activateCurrentTexture(){this._currentTextureChannel!==this._activeChannel&&(this._gl.activeTexture(this._gl.TEXTURE0+this._activeChannel),this._currentTextureChannel=this._activeChannel)}_bindTextureDirectly(e,t,i=!1,s=!1){var l;let r=!1;const n=t&&t._associatedChannel>-1;if(i&&n&&(this._activeChannel=t._associatedChannel),this._boundTexturesCache[this._activeChannel]!==t||s){if(this._activateCurrentTexture(),t&&t.isMultiview)throw de.Error(["_bindTextureDirectly called with a multiview texture!",e,t]),"_bindTextureDirectly called with a multiview texture!";this._gl.bindTexture(e,((l=t==null?void 0:t._hardwareTexture)==null?void 0:l.underlyingResource)??null),this._boundTexturesCache[this._activeChannel]=t,t&&(t._associatedChannel=this._activeChannel)}else i&&(r=!0,this._activateCurrentTexture());return n&&!i&&this._bindSamplerUniformToChannel(t._associatedChannel,this._activeChannel),r}_bindTexture(e,t,i){if(e===void 0)return;t&&(t._associatedChannel=e),this._activeChannel=e;const s=t?this._getTextureTarget(t):this._gl.TEXTURE_2D;this._bindTextureDirectly(s,t)}unbindAllTextures(){for(let e=0;e<this._maxSimultaneousTextures;e++)this._activeChannel=e,this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),this.webGLVersion>1&&(this._bindTextureDirectly(this._gl.TEXTURE_3D,null),this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY,null))}setTexture(e,t,i,s){e!==void 0&&(t&&(this._boundUniforms[e]=t),this._setTexture(e,i))}_bindSamplerUniformToChannel(e,t){const i=this._boundUniforms[e];!i||i._currentState===t||(this._gl.uniform1i(i,t),i._currentState=t)}_getTextureWrapMode(e){switch(e){case 1:return this._gl.REPEAT;case 0:return this._gl.CLAMP_TO_EDGE;case 2:return this._gl.MIRRORED_REPEAT}return this._gl.REPEAT}_setTexture(e,t,i=!1,s=!1,r=""){if(!t)return this._boundTexturesCache[e]!=null&&(this._activeChannel=e,this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),this.webGLVersion>1&&(this._bindTextureDirectly(this._gl.TEXTURE_3D,null),this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY,null))),!1;if(t.video){this._activeChannel=e;const c=t.getInternalTexture();c&&(c._associatedChannel=e),t.update()}else if(t.delayLoadState===4)return t.delayLoad(),!1;let n;s?n=t.depthStencilTexture:t.isReady()?n=t.getInternalTexture():t.isCube?n=this.emptyCubeTexture:t.is3D?n=this.emptyTexture3D:t.is2DArray?n=this.emptyTexture2DArray:n=this.emptyTexture,!i&&n&&(n._associatedChannel=e);let o=!0;this._boundTexturesCache[e]===n&&(i||this._bindSamplerUniformToChannel(n._associatedChannel,e),o=!1),this._activeChannel=e;const l=this._getTextureTarget(n);if(o&&this._bindTextureDirectly(l,n,i),n&&!n.isMultiview){if(n.isCube&&n._cachedCoordinatesMode!==t.coordinatesMode){n._cachedCoordinatesMode=t.coordinatesMode;const c=t.coordinatesMode!==3&&t.coordinatesMode!==5?1:0;t.wrapU=c,t.wrapV=c}n._cachedWrapU!==t.wrapU&&(n._cachedWrapU=t.wrapU,this._setTextureParameterInteger(l,this._gl.TEXTURE_WRAP_S,this._getTextureWrapMode(t.wrapU),n)),n._cachedWrapV!==t.wrapV&&(n._cachedWrapV=t.wrapV,this._setTextureParameterInteger(l,this._gl.TEXTURE_WRAP_T,this._getTextureWrapMode(t.wrapV),n)),n.is3D&&n._cachedWrapR!==t.wrapR&&(n._cachedWrapR=t.wrapR,this._setTextureParameterInteger(l,this._gl.TEXTURE_WRAP_R,this._getTextureWrapMode(t.wrapR),n)),this._setAnisotropicLevel(l,n,t.anisotropicFilteringLevel)}return!0}setTextureArray(e,t,i,s){if(!(e===void 0||!t)){(!this._textureUnits||this._textureUnits.length!==i.length)&&(this._textureUnits=new Int32Array(i.length));for(let r=0;r<i.length;r++){const n=i[r].getInternalTexture();n?(this._textureUnits[r]=e+r,n._associatedChannel=e+r):this._textureUnits[r]=-1}this._gl.uniform1iv(t,this._textureUnits);for(let r=0;r<i.length;r++)this._setTexture(this._textureUnits[r],i[r],!0)}}_setAnisotropicLevel(e,t,i){const s=this._caps.textureAnisotropicFilterExtension;t.samplingMode!==11&&t.samplingMode!==3&&t.samplingMode!==2&&(i=1),s&&t._cachedAnisotropicFilteringLevel!==i&&(this._setTextureParameterFloat(e,s.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(i,this._caps.maxAnisotropy),t),t._cachedAnisotropicFilteringLevel=i)}_setTextureParameterFloat(e,t,i,s){this._bindTextureDirectly(e,s,!0,!0),this._gl.texParameterf(e,t,i)}_setTextureParameterInteger(e,t,i,s){s&&this._bindTextureDirectly(e,s,!0,!0),this._gl.texParameteri(e,t,i)}unbindAllAttributes(){if(this._mustWipeVertexAttributes){this._mustWipeVertexAttributes=!1;for(let e=0;e<this._caps.maxVertexAttribs;e++)this.disableAttributeByIndex(e);return}for(let e=0,t=this._vertexAttribArraysEnabled.length;e<t;e++)e>=this._caps.maxVertexAttribs||!this._vertexAttribArraysEnabled[e]||this.disableAttributeByIndex(e)}releaseEffects(){this._compiledEffects={},this.onReleaseEffectsObservable.notifyObservers(this)}dispose(){var e;Il()&&this._renderingCanvas&&(this._renderingCanvas.removeEventListener("webglcontextlost",this._onContextLost),this._onContextRestored&&this._renderingCanvas.removeEventListener("webglcontextrestored",this._onContextRestored)),super.dispose(),this._dummyFramebuffer&&this._gl.deleteFramebuffer(this._dummyFramebuffer),this.unbindAllAttributes(),this._boundUniforms={},this._workingCanvas=null,this._workingContext=null,this._currentBufferPointers.length=0,this._currentProgram=null,this._creationOptions.loseContextOnDispose&&((e=this._gl.getExtension("WEBGL_lose_context"))==null||e.loseContext()),fX(this._gl)}attachContextLostEvent(e){this._renderingCanvas&&this._renderingCanvas.addEventListener("webglcontextlost",e,!1)}attachContextRestoredEvent(e){this._renderingCanvas&&this._renderingCanvas.addEventListener("webglcontextrestored",e,!1)}getError(){return this._gl.getError()}_canRenderToFloatFramebuffer(){return this._webGLVersion>1?this._caps.colorBufferFloat:this._canRenderToFramebuffer(1)}_canRenderToHalfFloatFramebuffer(){return this._webGLVersion>1?this._caps.colorBufferFloat:this._canRenderToFramebuffer(2)}_canRenderToFramebuffer(e){const t=this._gl;for(;t.getError()!==t.NO_ERROR;);let i=!0;const s=t.createTexture();t.bindTexture(t.TEXTURE_2D,s),t.texImage2D(t.TEXTURE_2D,0,this._getRGBABufferInternalSizedFormat(e),1,1,0,t.RGBA,this._getWebGLTextureType(e),null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST);const r=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,r),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,s,0);const n=t.checkFramebufferStatus(t.FRAMEBUFFER);if(i=i&&n===t.FRAMEBUFFER_COMPLETE,i=i&&t.getError()===t.NO_ERROR,i&&(t.clear(t.COLOR_BUFFER_BIT),i=i&&t.getError()===t.NO_ERROR),i){t.bindFramebuffer(t.FRAMEBUFFER,null);const o=t.RGBA,l=t.UNSIGNED_BYTE,c=new Uint8Array(4);t.readPixels(0,0,1,1,o,l,c),i=i&&t.getError()===t.NO_ERROR}for(t.deleteTexture(s),t.deleteFramebuffer(r),t.bindFramebuffer(t.FRAMEBUFFER,null);!i&&t.getError()!==t.NO_ERROR;);return i}_getWebGLTextureType(e){if(this._webGLVersion===1){switch(e){case 1:return this._gl.FLOAT;case 2:return this._gl.HALF_FLOAT_OES;case 0:return this._gl.UNSIGNED_BYTE;case 8:return this._gl.UNSIGNED_SHORT_4_4_4_4;case 9:return this._gl.UNSIGNED_SHORT_5_5_5_1;case 10:return this._gl.UNSIGNED_SHORT_5_6_5}return this._gl.UNSIGNED_BYTE}switch(e){case 3:return this._gl.BYTE;case 0:return this._gl.UNSIGNED_BYTE;case 4:return this._gl.SHORT;case 5:return this._gl.UNSIGNED_SHORT;case 6:return this._gl.INT;case 7:return this._gl.UNSIGNED_INT;case 1:return this._gl.FLOAT;case 2:return this._gl.HALF_FLOAT;case 8:return this._gl.UNSIGNED_SHORT_4_4_4_4;case 9:return this._gl.UNSIGNED_SHORT_5_5_5_1;case 10:return this._gl.UNSIGNED_SHORT_5_6_5;case 11:return this._gl.UNSIGNED_INT_2_10_10_10_REV;case 12:return this._gl.UNSIGNED_INT_24_8;case 13:return this._gl.UNSIGNED_INT_10F_11F_11F_REV;case 14:return this._gl.UNSIGNED_INT_5_9_9_9_REV;case 15:return this._gl.FLOAT_32_UNSIGNED_INT_24_8_REV}return this._gl.UNSIGNED_BYTE}_getInternalFormat(e,t=!1){let i=t?this._glSRGBExtensionValues.SRGB8_ALPHA8:this._gl.RGBA;switch(e){case 0:i=this._gl.ALPHA;break;case 1:i=this._gl.LUMINANCE;break;case 2:i=this._gl.LUMINANCE_ALPHA;break;case 6:case 33322:case 36760:i=this._gl.RED;break;case 7:case 33324:case 36761:i=this._gl.RG;break;case 4:case 32852:case 36762:i=t?this._glSRGBExtensionValues.SRGB:this._gl.RGB;break;case 5:case 32859:case 36763:i=t?this._glSRGBExtensionValues.SRGB8_ALPHA8:this._gl.RGBA;break}if(this._webGLVersion>1)switch(e){case 8:i=this._gl.RED_INTEGER;break;case 9:i=this._gl.RG_INTEGER;break;case 10:i=this._gl.RGB_INTEGER;break;case 11:i=this._gl.RGBA_INTEGER;break}return i}_getRGBABufferInternalSizedFormat(e,t,i=!1){if(this._webGLVersion===1){if(t!==void 0)switch(t){case 0:return this._gl.ALPHA;case 1:return this._gl.LUMINANCE;case 2:return this._gl.LUMINANCE_ALPHA;case 4:return i?this._glSRGBExtensionValues.SRGB:this._gl.RGB}return this._gl.RGBA}switch(e){case 3:switch(t){case 6:return this._gl.R8_SNORM;case 7:return this._gl.RG8_SNORM;case 4:return this._gl.RGB8_SNORM;case 8:return this._gl.R8I;case 9:return this._gl.RG8I;case 10:return this._gl.RGB8I;case 11:return this._gl.RGBA8I;default:return this._gl.RGBA8_SNORM}case 0:switch(t){case 6:return this._gl.R8;case 7:return this._gl.RG8;case 4:return i?this._glSRGBExtensionValues.SRGB8:this._gl.RGB8;case 5:return i?this._glSRGBExtensionValues.SRGB8_ALPHA8:this._gl.RGBA8;case 8:return this._gl.R8UI;case 9:return this._gl.RG8UI;case 10:return this._gl.RGB8UI;case 11:return this._gl.RGBA8UI;case 0:return this._gl.ALPHA;case 1:return this._gl.LUMINANCE;case 2:return this._gl.LUMINANCE_ALPHA;default:return this._gl.RGBA8}case 4:switch(t){case 8:return this._gl.R16I;case 36760:return this._gl.R16_SNORM_EXT;case 36761:return this._gl.RG16_SNORM_EXT;case 36762:return this._gl.RGB16_SNORM_EXT;case 36763:return this._gl.RGBA16_SNORM_EXT;case 9:return this._gl.RG16I;case 10:return this._gl.RGB16I;case 11:return this._gl.RGBA16I;default:return this._gl.RGBA16I}case 5:switch(t){case 8:return this._gl.R16UI;case 33322:return this._gl.R16_EXT;case 33324:return this._gl.RG16_EXT;case 32852:return this._gl.RGB16_EXT;case 32859:return this._gl.RGBA16_EXT;case 9:return this._gl.RG16UI;case 10:return this._gl.RGB16UI;case 11:return this._gl.RGBA16UI;default:return this._gl.RGBA16UI}case 6:switch(t){case 8:return this._gl.R32I;case 9:return this._gl.RG32I;case 10:return this._gl.RGB32I;case 11:return this._gl.RGBA32I;default:return this._gl.RGBA32I}case 7:switch(t){case 8:return this._gl.R32UI;case 9:return this._gl.RG32UI;case 10:return this._gl.RGB32UI;case 11:return this._gl.RGBA32UI;default:return this._gl.RGBA32UI}case 1:switch(t){case 6:return this._gl.R32F;case 7:return this._gl.RG32F;case 4:return this._gl.RGB32F;case 5:return this._gl.RGBA32F;default:return this._gl.RGBA32F}case 2:switch(t){case 6:return this._gl.R16F;case 7:return this._gl.RG16F;case 4:return this._gl.RGB16F;case 5:return this._gl.RGBA16F;default:return this._gl.RGBA16F}case 10:return this._gl.RGB565;case 13:return this._gl.R11F_G11F_B10F;case 14:return this._gl.RGB9_E5;case 8:return this._gl.RGBA4;case 9:return this._gl.RGB5_A1;case 11:switch(t){case 5:return this._gl.RGB10_A2;case 11:return this._gl.RGB10_A2UI;default:return this._gl.RGB10_A2}}return i?this._glSRGBExtensionValues.SRGB8_ALPHA8:this._gl.RGBA8}readPixels(e,t,i,s,r=!0,n=!0,o=null){const l=r?4:3,c=r?this._gl.RGBA:this._gl.RGB,u=i*s*l;if(!o)o=new Uint8Array(u);else if(o.length<u)return de.Error(`Data buffer is too small to store the read pixels (${o.length} should be more than ${u})`),Promise.resolve(o);return n&&this.flushFramebuffer(),this._gl.readPixels(e,t,i,s,c,this._gl.UNSIGNED_BYTE,o),Promise.resolve(o)}static get IsSupportedAsync(){return Promise.resolve(this.isSupported())}static get IsSupported(){return this.isSupported()}static isSupported(){if(this._HasMajorPerformanceCaveat!==null)return!this._HasMajorPerformanceCaveat;if(this._IsSupported===null)try{const e=dt._CreateCanvas(1,1),t=e.getContext("webgl")||e.getContext("experimental-webgl");this._IsSupported=t!=null&&!!window.WebGLRenderingContext}catch{this._IsSupported=!1}return this._IsSupported}static get HasMajorPerformanceCaveat(){if(this._HasMajorPerformanceCaveat===null)try{const e=dt._CreateCanvas(1,1),t=e.getContext("webgl",{failIfMajorPerformanceCaveat:!0})||e.getContext("experimental-webgl",{failIfMajorPerformanceCaveat:!0});this._HasMajorPerformanceCaveat=!t}catch{this._HasMajorPerformanceCaveat=!1}return this._HasMajorPerformanceCaveat}}Zi._TempClearColorUint32=new Uint32Array(4),Zi._TempClearColorInt32=new Int32Array(4),Zi.ExceptionList=[{key:"Chrome/63.0",capture:"63\\.0\\.3239\\.(\\d+)",captureConstraint:108,targets:["uniformBuffer"]},{key:"Firefox/58",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Firefox/59",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Chrome/72.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Chrome/73.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Chrome/74.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome/71",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome/72",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Chrome/12\\d\\..+?Mobile",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:".*AppleWebKit.*(15.4).*Safari",capture:null,captureConstraint:null,targets:["antialias","maxMSAASamples"]},{key:".*(15.4).*AppleWebKit.*Safari",capture:null,captureConstraint:null,targets:["antialias","maxMSAASamples"]}],Zi._ConcatenateShader=Due,Zi._IsSupported=null,Zi._HasMajorPerformanceCaveat=null;const ERe=Object.freeze(Object.defineProperty({__proto__:null,ThinEngine:Zi},Symbol.toStringTag,{value:"Module"}));class PZ{constructor(e=30){this._enabled=!0,this._rollingFrameTime=new ude(e)}sampleFrame(e=lr.Now){if(this._enabled){if(this._lastFrameTimeMs!=null){const t=e-this._lastFrameTimeMs;this._rollingFrameTime.add(t)}this._lastFrameTimeMs=e}}get averageFrameTime(){return this._rollingFrameTime.average}get averageFrameTimeVariance(){return this._rollingFrameTime.variance}get instantaneousFrameTime(){return this._rollingFrameTime.history(0)}get averageFPS(){return 1e3/this._rollingFrameTime.average}get instantaneousFPS(){const e=this._rollingFrameTime.history(0);return e===0?0:1e3/e}get isSaturated(){return this._rollingFrameTime.isSaturated()}enable(){this._enabled=!0}disable(){this._enabled=!1,this._lastFrameTimeMs=null}get isEnabled(){return this._enabled}reset(){this._lastFrameTimeMs=null,this._rollingFrameTime.reset()}}class ude{constructor(e){this._samples=new Array(e),this.reset()}add(e){let t;if(this.isSaturated()){const i=this._samples[this._pos];t=i-this.average,this.average-=t/(this._sampleCount-1),this._m2-=t*(i-this.average)}else this._sampleCount++;t=e-this.average,this.average+=t/this._sampleCount,this._m2+=t*(e-this.average),this.variance=this._m2/(this._sampleCount-1),this._samples[this._pos]=e,this._pos++,this._pos%=this._samples.length}history(e){if(e>=this._sampleCount||e>=this._samples.length)return 0;const t=this._wrapPosition(this._pos-1);return this._samples[this._wrapPosition(t-e)]}isSaturated(){return this._sampleCount>=this._samples.length}reset(){this.average=0,this.variance=0,this._sampleCount=0,this._pos=0,this._m2=0}_wrapPosition(e){const t=this._samples.length;return(e%t+t)%t}}Zi.prototype.setAlphaMode=function(a,e=!1){if(this._alphaMode===a){if(!e){const t=a===0;this.depthCullingState.depthMask!==t&&(this.depthCullingState.depthMask=t)}return}switch(a){case 0:this._alphaState.alphaBlend=!1;break;case 7:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case 8:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case 2:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case 6:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE,this._gl.ZERO,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case 1:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE,this._gl.ZERO,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case 3:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ZERO,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case 4:this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_COLOR,this._gl.ZERO,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case 5:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case 9:this._alphaState.setAlphaBlendFunctionParameters(this._gl.CONSTANT_COLOR,this._gl.ONE_MINUS_CONSTANT_COLOR,this._gl.CONSTANT_ALPHA,this._gl.ONE_MINUS_CONSTANT_ALPHA),this._alphaState.alphaBlend=!0;break;case 10:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case 11:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case 12:this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_ALPHA,this._gl.ONE,this._gl.ZERO,this._gl.ZERO),this._alphaState.alphaBlend=!0;break;case 13:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE_MINUS_DST_ALPHA,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case 14:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case 15:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE,this._gl.ONE,this._gl.ZERO),this._alphaState.alphaBlend=!0;break;case 16:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ZERO,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case 17:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break}e||(this.depthCullingState.depthMask=a===0),this._alphaMode=a},Zi.prototype.updateRawTexture=function(a,e,t,i,s=null,r=0,n=!1){if(!a)return;const o=this._getRGBABufferInternalSizedFormat(r,t,n),l=this._getInternalFormat(t),c=this._getWebGLTextureType(r);this._bindTextureDirectly(this._gl.TEXTURE_2D,a,!0),this._unpackFlipY(i===void 0?!0:!!i),this._doNotHandleContextLost||(a._bufferView=e,a.format=t,a.type=r,a.invertY=i,a._compression=s),a.width%4!==0&&this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT,1),s&&e?this._gl.compressedTexImage2D(this._gl.TEXTURE_2D,0,this.getCaps().s3tc[s],a.width,a.height,0,e):this._gl.texImage2D(this._gl.TEXTURE_2D,0,o,a.width,a.height,0,l,c,e),a.generateMipMaps&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(this._gl.TEXTURE_2D,null),a.isReady=!0},Zi.prototype.createRawTexture=function(a,e,t,i,s,r,n,o=null,l=0,c=0,u=!1){const f=new gr(this,3);f.baseWidth=e,f.baseHeight=t,f.width=e,f.height=t,f.format=i,f.generateMipMaps=s,f.samplingMode=n,f.invertY=r,f._compression=o,f.type=l,f._useSRGBBuffer=this._getUseSRGBBuffer(u,!s),this._doNotHandleContextLost||(f._bufferView=a),this.updateRawTexture(f,a,i,r,o,l,f._useSRGBBuffer),this._bindTextureDirectly(this._gl.TEXTURE_2D,f,!0);const p=this._getSamplingParameters(n,s);return this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MAG_FILTER,p.mag),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MIN_FILTER,p.min),s&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._internalTexturesCache.push(f),f},Zi.prototype.createRawCubeTexture=function(a,e,t,i,s,r,n,o=null){const l=this._gl,c=new gr(this,8);c.isCube=!0,c.format=t,c.type=i,this._doNotHandleContextLost||(c._bufferViewArray=a);const u=this._getWebGLTextureType(i);let f=this._getInternalFormat(t);f===l.RGB&&(f=l.RGBA),u===l.FLOAT&&!this._caps.textureFloatLinearFiltering?(s=!1,n=1,de.Warn("Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.")):u===this._gl.HALF_FLOAT_OES&&!this._caps.textureHalfFloatLinearFiltering?(s=!1,n=1,de.Warn("Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.")):u===l.FLOAT&&!this._caps.textureFloatRender?(s=!1,de.Warn("Render to float textures is not supported. Mipmap generation forced to false.")):u===l.HALF_FLOAT&&!this._caps.colorBufferFloat&&(s=!1,de.Warn("Render to half float textures is not supported. Mipmap generation forced to false."));const p=e,m=p;if(c.width=p,c.height=m,c.invertY=r,c._compression=o,!this.needPOTTextures||mw(c.width)&&mw(c.height)||(s=!1),a)this.updateRawCubeTexture(c,a,t,i,r,o);else{const h=this._getRGBABufferInternalSizedFormat(i),x=0;this._bindTextureDirectly(l.TEXTURE_CUBE_MAP,c,!0);for(let A=0;A<6;A++)o?l.compressedTexImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X+A,x,this.getCaps().s3tc[o],c.width,c.height,0,void 0):l.texImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X+A,x,h,c.width,c.height,0,f,u,null);this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null)}this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,c,!0),a&&s&&this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);const d=this._getSamplingParameters(n,s);return l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_MAG_FILTER,d.mag),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_MIN_FILTER,d.min),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_WRAP_S,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_WRAP_T,l.CLAMP_TO_EDGE),this._bindTextureDirectly(l.TEXTURE_CUBE_MAP,null),c.generateMipMaps=s,c.samplingMode=n,c.isReady=!0,c},Zi.prototype.updateRawCubeTexture=function(a,e,t,i,s,r=null,n=0){a._bufferViewArray=e,a.format=t,a.type=i,a.invertY=s,a._compression=r;const o=this._gl,l=this._getWebGLTextureType(i);let c=this._getInternalFormat(t);const u=this._getRGBABufferInternalSizedFormat(i);let f=!1;c===o.RGB&&(c=o.RGBA,f=!0),this._bindTextureDirectly(o.TEXTURE_CUBE_MAP,a,!0),this._unpackFlipY(s===void 0?!0:!!s),a.width%4!==0&&o.pixelStorei(o.UNPACK_ALIGNMENT,1);for(let m=0;m<6;m++){let _=e[m];r?o.compressedTexImage2D(o.TEXTURE_CUBE_MAP_POSITIVE_X+m,n,this.getCaps().s3tc[r],a.width,a.height,0,_):(f&&(_=hde(_,a.width,a.height,i)),o.texImage2D(o.TEXTURE_CUBE_MAP_POSITIVE_X+m,n,u,a.width,a.height,0,c,l,_))}(!this.needPOTTextures||mw(a.width)&&mw(a.height))&&a.generateMipMaps&&n===0&&this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),a.isReady=!0},Zi.prototype.createRawCubeTextureFromUrl=function(a,e,t,i,s,r,n,o,l=null,c=null,u=3,f=!1){const p=this._gl,m=this.createRawCubeTexture(null,t,i,s,!r,f,u,null);e==null||e.addPendingData(m),m.url=a,m.isReady=!1,this._internalTexturesCache.push(m);const _=(h,x)=>{e==null||e.removePendingData(m),c&&h&&c(h.status+" "+h.statusText,x)},d=h=>{if(!m._hardwareTexture)return;const x=m.width,A=n(h);if(A){if(o){const S=this._getWebGLTextureType(s);let E=this._getInternalFormat(i);const b=this._getRGBABufferInternalSizedFormat(s);let M=!1;E===p.RGB&&(E=p.RGBA,M=!0),this._bindTextureDirectly(p.TEXTURE_CUBE_MAP,m,!0),this._unpackFlipY(!1);const T=o(A);for(let O=0;O<T.length;O++){const R=x>>O;for(let I=0;I<6;I++){let N=T[O][I];M&&(N=hde(N,R,R,s)),p.texImage2D(I,O,b,R,R,0,E,S,N)}}this._bindTextureDirectly(p.TEXTURE_CUBE_MAP,null)}else this.updateRawCubeTexture(m,A,i,s,f);m.isReady=!0,e==null||e.removePendingData(m),m.onLoadedObservable.notifyObservers(m),m.onLoadedObservable.clear(),l&&l()}};return this._loadFile(a,h=>{d(h)},void 0,e==null?void 0:e.offlineProvider,!0,_),m};function hde(a,e,t,i){let s,r=1;i===1?s=new Float32Array(e*t*4):i===2?(s=new Uint16Array(e*t*4),r=15360):i===7?s=new Uint32Array(e*t*4):s=new Uint8Array(e*t*4);for(let n=0;n<e;n++)for(let o=0;o<t;o++){const l=(o*e+n)*3,c=(o*e+n)*4;s[c+0]=a[l+0],s[c+1]=a[l+1],s[c+2]=a[l+2],s[c+3]=r}return s}function dde(a){return function(e,t,i,s,r,n,o,l,c=null,u=0){const f=a?this._gl.TEXTURE_3D:this._gl.TEXTURE_2D_ARRAY,p=a?10:11,m=new gr(this,p);m.baseWidth=t,m.baseHeight=i,m.baseDepth=s,m.width=t,m.height=i,m.depth=s,m.format=r,m.type=u,m.generateMipMaps=n,m.samplingMode=l,a?m.is3D=!0:m.is2DArray=!0,this._doNotHandleContextLost||(m._bufferView=e),a?this.updateRawTexture3D(m,e,r,o,c,u):this.updateRawTexture2DArray(m,e,r,o,c,u),this._bindTextureDirectly(f,m,!0);const _=this._getSamplingParameters(l,n);return this._gl.texParameteri(f,this._gl.TEXTURE_MAG_FILTER,_.mag),this._gl.texParameteri(f,this._gl.TEXTURE_MIN_FILTER,_.min),n&&this._gl.generateMipmap(f),this._bindTextureDirectly(f,null),this._internalTexturesCache.push(m),m}}Zi.prototype.createRawTexture2DArray=dde(!1),Zi.prototype.createRawTexture3D=dde(!0);function fde(a){return function(e,t,i,s,r=null,n=0){const o=a?this._gl.TEXTURE_3D:this._gl.TEXTURE_2D_ARRAY,l=this._getWebGLTextureType(n),c=this._getInternalFormat(i),u=this._getRGBABufferInternalSizedFormat(n,i);this._bindTextureDirectly(o,e,!0),this._unpackFlipY(s===void 0?!0:!!s),this._doNotHandleContextLost||(e._bufferView=t,e.format=i,e.invertY=s,e._compression=r),e.width%4!==0&&this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT,1),r&&t?this._gl.compressedTexImage3D(o,0,this.getCaps().s3tc[r],e.width,e.height,e.depth,0,t):this._gl.texImage3D(o,0,u,e.width,e.height,e.depth,0,c,l,t),e.generateMipMaps&&this._gl.generateMipmap(o),this._bindTextureDirectly(o,null),e.isReady=!0}}Zi.prototype.updateRawTexture2DArray=fde(!1),Zi.prototype.updateRawTexture3D=fde(!0),Zi.prototype._readTexturePixelsSync=function(a,e,t,i=-1,s=0,r=null,n=!0,o=!1,l=0,c=0){var p,m;const u=this._gl;if(!u)throw new Error("Engine does not have gl rendering context.");if(!this._dummyFramebuffer){const _=u.createFramebuffer();if(!_)throw new Error("Unable to create dummy framebuffer");this._dummyFramebuffer=_}u.bindFramebuffer(u.FRAMEBUFFER,this._dummyFramebuffer),i>-1?u.framebufferTexture2D(u.FRAMEBUFFER,u.COLOR_ATTACHMENT0,u.TEXTURE_CUBE_MAP_POSITIVE_X+i,(p=a._hardwareTexture)==null?void 0:p.underlyingResource,s):u.framebufferTexture2D(u.FRAMEBUFFER,u.COLOR_ATTACHMENT0,u.TEXTURE_2D,(m=a._hardwareTexture)==null?void 0:m.underlyingResource,s);let f=a.type!==void 0?this._getWebGLTextureType(a.type):u.UNSIGNED_BYTE;if(o)r||(r=XV(a.type,4*e*t));else switch(f){case u.UNSIGNED_BYTE:r||(r=new Uint8Array(4*e*t)),f=u.UNSIGNED_BYTE;break;default:r||(r=new Float32Array(4*e*t)),f=u.FLOAT;break}return n&&this.flushFramebuffer(),u.readPixels(l,c,e,t,u.RGBA,f,r),u.bindFramebuffer(u.FRAMEBUFFER,this._currentFramebuffer),r},Zi.prototype._readTexturePixels=function(a,e,t,i=-1,s=0,r=null,n=!0,o=!1,l=0,c=0){return Promise.resolve(this._readTexturePixelsSync(a,e,t,i,s,r,n,o,l,c))},Zi.prototype.updateDynamicIndexBuffer=function(a,e,t=0){this._currentBoundBuffer[this._gl.ELEMENT_ARRAY_BUFFER]=null,this.bindIndexBuffer(a);let i;a.is32Bits?i=e instanceof Uint32Array?e:new Uint32Array(e):i=e instanceof Uint16Array?e:new Uint16Array(e),this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER,i,this._gl.DYNAMIC_DRAW),this._resetIndexBufferBinding()},Zi.prototype.updateDynamicVertexBuffer=function(a,e,t,i){this.bindArrayBuffer(a),t===void 0&&(t=0);const s=e.byteLength||e.length;i===void 0||i>=s&&t===0?e instanceof Array?this._gl.bufferSubData(this._gl.ARRAY_BUFFER,t,new Float32Array(e)):this._gl.bufferSubData(this._gl.ARRAY_BUFFER,t,e):e instanceof Array?this._gl.bufferSubData(this._gl.ARRAY_BUFFER,t,new Float32Array(e).subarray(0,i/4)):(e instanceof ArrayBuffer?e=new Uint8Array(e,0,i):e=new Uint8Array(e.buffer,e.byteOffset,i),this._gl.bufferSubData(this._gl.ARRAY_BUFFER,t,e)),this._resetVertexBufferBinding()},Zi.prototype._createDepthStencilCubeTexture=function(a,e){const t=new gr(this,12);if(t.isCube=!0,this.webGLVersion===1)return de.Error("Depth cube texture is not supported by WebGL 1."),t;const i={bilinearFiltering:!1,comparisonFunction:0,generateStencil:!1,...e},s=this._gl;this._bindTextureDirectly(s.TEXTURE_CUBE_MAP,t,!0),this._setupDepthStencilTexture(t,a,i.bilinearFiltering,i.comparisonFunction);for(let r=0;r<6;r++)i.generateStencil?s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+r,0,s.DEPTH24_STENCIL8,a,a,0,s.DEPTH_STENCIL,s.UNSIGNED_INT_24_8,null):s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+r,0,s.DEPTH_COMPONENT24,a,a,0,s.DEPTH_COMPONENT,s.UNSIGNED_INT,null);return this._bindTextureDirectly(s.TEXTURE_CUBE_MAP,null),this._internalTexturesCache.push(t),t},Zi.prototype._setCubeMapTextureParams=function(a,e,t){const i=this._gl;i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_MIN_FILTER,e?i.LINEAR_MIPMAP_LINEAR:i.LINEAR),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),a.samplingMode=e?3:2,e&&this.getCaps().textureMaxLevel&&t!==void 0&&t>0&&(i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_MAX_LEVEL,t),a._maxLodLevel=t),this._bindTextureDirectly(i.TEXTURE_CUBE_MAP,null)},Zi.prototype.createCubeTexture=function(a,e,t,i,s=null,r=null,n,o=null,l=!1,c=0,u=0,f=null,p,m=!1,_=null){const d=this._gl;return this.createCubeTextureBase(a,e,t,!!i,s,r,n,o,l,c,u,f,h=>this._bindTextureDirectly(d.TEXTURE_CUBE_MAP,h,!0),(h,x)=>{const A=this.needPOTTextures?g0(x[0].width,this._caps.maxCubemapTextureSize):x[0].width,S=A,E=[d.TEXTURE_CUBE_MAP_POSITIVE_X,d.TEXTURE_CUBE_MAP_POSITIVE_Y,d.TEXTURE_CUBE_MAP_POSITIVE_Z,d.TEXTURE_CUBE_MAP_NEGATIVE_X,d.TEXTURE_CUBE_MAP_NEGATIVE_Y,d.TEXTURE_CUBE_MAP_NEGATIVE_Z];this._bindTextureDirectly(d.TEXTURE_CUBE_MAP,h,!0),this._unpackFlipY(!1);const b=n?this._getInternalFormat(n,h._useSRGBBuffer):h._useSRGBBuffer?this._glSRGBExtensionValues.SRGB8_ALPHA8:d.RGBA;let M=n?this._getInternalFormat(n):d.RGBA;h._useSRGBBuffer&&this.webGLVersion===1&&(M=b);for(let T=0;T<E.length;T++)if(x[T].width!==A||x[T].height!==S){if(this._prepareWorkingCanvas(),!this._workingCanvas||!this._workingContext){de.Warn("Cannot create canvas to resize texture.");return}this._workingCanvas.width=A,this._workingCanvas.height=S,this._workingContext.drawImage(x[T],0,0,x[T].width,x[T].height,0,0,A,S),d.texImage2D(E[T],0,b,M,d.UNSIGNED_BYTE,this._workingCanvas)}else d.texImage2D(E[T],0,b,M,d.UNSIGNED_BYTE,x[T]);i||d.generateMipmap(d.TEXTURE_CUBE_MAP),this._setCubeMapTextureParams(h,!i),h.width=A,h.height=S,h.isReady=!0,n&&(h.format=n),h.onLoadedObservable.notifyObservers(h),h.onLoadedObservable.clear(),s&&s()},!!m,_)},Zi.prototype.generateMipMapsForCubemap=function(a,e=!0){if(a.generateMipMaps){const t=this._gl;this._bindTextureDirectly(t.TEXTURE_CUBE_MAP,a,!0),t.generateMipmap(t.TEXTURE_CUBE_MAP),e&&this._bindTextureDirectly(t.TEXTURE_CUBE_MAP,null)}};class ww{get depthStencilTexture(){return this._depthStencilTexture}setDepthStencilTexture(e,t=!0){t&&this._depthStencilTexture&&this._depthStencilTexture.dispose(),this._depthStencilTexture=e,this._generateDepthBuffer=this._generateStencilBuffer=this._depthStencilTextureWithStencil=!1,e&&(this._generateDepthBuffer=!0,this._generateStencilBuffer=this._depthStencilTextureWithStencil=zT(e.format))}get depthStencilTextureWithStencil(){return this._depthStencilTextureWithStencil}get isCube(){return this._isCube}get isMulti(){return this._isMulti}get is2DArray(){return this.layers>0}get is3D(){return this.depth>0}get size(){return this.width}get width(){return this._size.width??this._size}get height(){return this._size.height??this._size}get layers(){return this._size.layers||0}get depth(){return this._size.depth||0}get texture(){var e;return((e=this._textures)==null?void 0:e[0])??null}get textures(){return this._textures}get faceIndices(){return this._faceIndices}get layerIndices(){return this._layerIndices}getBaseArrayLayer(e){var r,n;if(!this._textures)return-1;const t=this._textures[e],i=((r=this._layerIndices)==null?void 0:r[e])??0,s=((n=this._faceIndices)==null?void 0:n[e])??0;return t.isCube?i*6+s:t.is3D?0:i}get samples(){return this._samples}setSamples(e,t=!0,i=!1){if(this.samples===e&&!i)return e;const s=this._isMulti?this._engine.updateMultipleRenderTargetTextureSampleCount(this,e,t):this._engine.updateRenderTargetTextureSampleCount(this,e);return this._samples=e,s}resolveMSAATextures(){this.isMulti?this._engine.resolveMultiFramebuffer(this):this._engine.resolveFramebuffer(this)}generateMipMaps(){this._engine._currentRenderTarget===this&&this._engine.unBindFramebuffer(this,!0),this.isMulti?this._engine.generateMipMapsMultiFramebuffer(this):this._engine.generateMipMapsFramebuffer(this)}constructor(e,t,i,s,r){this._textures=null,this._faceIndices=null,this._layerIndices=null,this._samples=1,this._attachments=null,this._generateStencilBuffer=!1,this._generateDepthBuffer=!1,this._depthStencilTextureWithStencil=!1,this.disableAutomaticMSAAResolve=!1,this.resolveMSAAColors=!0,this.resolveMSAADepth=!1,this.resolveMSAAStencil=!1,this._isMulti=e,this._isCube=t,this._size=i,this._engine=s,this._depthStencilTexture=null,this.label=r}setTextures(e){Array.isArray(e)?this._textures=e:e?this._textures=[e]:this._textures=null}setTexture(e,t=0,i=!0){this._textures||(this._textures=[]),this._textures[t]!==e&&(this._textures[t]&&i&&this._textures[t].dispose(),this._textures[t]=e)}setLayerAndFaceIndices(e,t){this._layerIndices=e,this._faceIndices=t}setLayerAndFaceIndex(e=0,t,i){this._layerIndices||(this._layerIndices=[]),this._faceIndices||(this._faceIndices=[]),t!==void 0&&t>=0&&(this._layerIndices[e]=t),i!==void 0&&i>=0&&(this._faceIndices[e]=i)}createDepthStencilTexture(e=0,t=!0,i=!1,s=1,r=14,n){var o;return(o=this._depthStencilTexture)==null||o.dispose(),this._depthStencilTextureWithStencil=i,this._depthStencilTextureLabel=n,this._depthStencilTexture=this._engine.createDepthStencilTexture(this._size,{bilinearFiltering:t,comparisonFunction:e,generateStencil:i,isCube:this._isCube,samples:s,depthTextureFormat:r,label:n},this),this._depthStencilTexture}_shareDepth(e){this.shareDepth(e)}shareDepth(e){this._depthStencilTexture&&(e._depthStencilTexture&&e._depthStencilTexture.dispose(),e._depthStencilTexture=this._depthStencilTexture,e._depthStencilTextureWithStencil=this._depthStencilTextureWithStencil,this._depthStencilTexture.incrementReferences())}_swapAndDie(e){this.texture&&this.texture._swapAndDie(e),this._textures=null,this.dispose(!0)}_cloneRenderTargetWrapper(){var t,i,s,r,n;let e=null;if(this._isMulti){const o=this.textures;if(o&&o.length>0){let l=!1,c=o.length,u=-1;const f=o[o.length-1]._source;(f===14||f===12)&&(l=!0,u=o[o.length-1].format,c--);const p=[],m=[],_=[],d=[],h=[],x=[],A=[],S={};for(let M=0;M<c;++M){const T=o[M];p.push(T.samplingMode),m.push(T.type),_.push(T.format),S[T.uniqueId]!==void 0?(d.push(-1),A.push(0)):(S[T.uniqueId]=M,T.is2DArray?(d.push(35866),A.push(T.depth)):T.isCube?(d.push(34067),A.push(0)):T.is3D?(d.push(32879),A.push(T.depth)):(d.push(3553),A.push(0))),this._faceIndices&&h.push(this._faceIndices[M]??0),this._layerIndices&&x.push(this._layerIndices[M]??0)}const E={samplingModes:p,generateMipMaps:o[0].generateMipMaps,generateDepthBuffer:this._generateDepthBuffer,generateStencilBuffer:this._generateStencilBuffer,generateDepthTexture:l,depthTextureFormat:u,types:m,formats:_,textureCount:c,targetTypes:d,faceIndex:h,layerIndex:x,layerCounts:A,label:this.label},b={width:this.width,height:this.height,depth:this.depth};e=this._engine.createMultipleRenderTarget(b,E);for(let M=0;M<c;++M){if(d[M]!==-1)continue;const T=S[o[M].uniqueId];e.setTexture(e.textures[T],M)}}}else{const o={};if(o.generateDepthBuffer=this._generateDepthBuffer,o.generateMipMaps=((t=this.texture)==null?void 0:t.generateMipMaps)??!1,o.generateStencilBuffer=this._generateStencilBuffer,o.samplingMode=(i=this.texture)==null?void 0:i.samplingMode,o.type=(s=this.texture)==null?void 0:s.type,o.format=(r=this.texture)==null?void 0:r.format,o.noColorAttachment=!this._textures,o.label=this.label,this.isCube)e=this._engine.createRenderTargetCubeTexture(this.width,o);else{const l={width:this.width,height:this.height,layers:this.is2DArray||this.is3D?(n=this.texture)==null?void 0:n.depth:void 0};e=this._engine.createRenderTargetTexture(l,o)}e.texture&&(e.texture.isReady=!0)}return e}_swapRenderTargetWrapper(e){if(this._textures&&e._textures)for(let t=0;t<this._textures.length;++t)this._textures[t]._swapAndDie(e._textures[t],!1),e._textures[t].isReady=!0;this._depthStencilTexture&&e._depthStencilTexture&&(this._depthStencilTexture._swapAndDie(e._depthStencilTexture),e._depthStencilTexture.isReady=!0),this._textures=null,this._depthStencilTexture=null}_rebuild(){const e=this._cloneRenderTargetWrapper();if(e){if(this._depthStencilTexture){const t=this._depthStencilTexture.samplingMode,i=this._depthStencilTexture.format,s=t===2||t===3||t===11;e.createDepthStencilTexture(this._depthStencilTexture._comparisonFunction,s,this._depthStencilTextureWithStencil,this._depthStencilTexture.samples,i,this._depthStencilTextureLabel)}this.samples>1&&e.setSamples(this.samples),e._swapRenderTargetWrapper(this),e.dispose()}}releaseTextures(){if(this._textures)for(let e=0;e<this._textures.length;++e)this._textures[e].dispose();this._textures=null}dispose(e=!1){var t;e||((t=this._depthStencilTexture)==null||t.dispose(),this._depthStencilTexture=null,this.releaseTextures()),this._engine._releaseRenderTargetWrapper(this)}}class TRe extends ww{setDepthStencilTexture(e,t=!0){if(super.setDepthStencilTexture(e,t),!e)return;const i=this._engine,s=this._context,r=e._hardwareTexture;if(r&&e._autoMSAAManagement&&this._MSAAFramebuffer){const n=i._currentFramebuffer;i._bindUnboundFramebuffer(this._MSAAFramebuffer),s.framebufferRenderbuffer(s.FRAMEBUFFER,zT(e.format)?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT,s.RENDERBUFFER,r.getMSAARenderBuffer()),i._bindUnboundFramebuffer(n)}}constructor(e,t,i,s,r){super(e,t,i,s),this._framebuffer=null,this._depthStencilBuffer=null,this._MSAAFramebuffer=null,this._colorTextureArray=null,this._depthStencilTextureArray=null,this._disposeOnlyFramebuffers=!1,this._currentLOD=0,this._context=r}_cloneRenderTargetWrapper(){let e=null;return this._colorTextureArray&&this._depthStencilTextureArray?(e=this._engine.createMultiviewRenderTargetTexture(this.width,this.height),e.texture.isReady=!0):e=super._cloneRenderTargetWrapper(),e}_swapRenderTargetWrapper(e){super._swapRenderTargetWrapper(e),e._framebuffer=this._framebuffer,e._depthStencilBuffer=this._depthStencilBuffer,e._MSAAFramebuffer=this._MSAAFramebuffer,e._colorTextureArray=this._colorTextureArray,e._depthStencilTextureArray=this._depthStencilTextureArray,this._framebuffer=this._depthStencilBuffer=this._MSAAFramebuffer=this._colorTextureArray=this._depthStencilTextureArray=null}createDepthStencilTexture(e=0,t=!0,i=!1,s=1,r=14,n){if(this._depthStencilBuffer){const o=this._engine,l=o._currentFramebuffer,c=this._context;o._bindUnboundFramebuffer(this._framebuffer),c.framebufferRenderbuffer(c.FRAMEBUFFER,c.DEPTH_STENCIL_ATTACHMENT,c.RENDERBUFFER,null),c.framebufferRenderbuffer(c.FRAMEBUFFER,c.DEPTH_ATTACHMENT,c.RENDERBUFFER,null),c.framebufferRenderbuffer(c.FRAMEBUFFER,c.STENCIL_ATTACHMENT,c.RENDERBUFFER,null),o._bindUnboundFramebuffer(l),c.deleteRenderbuffer(this._depthStencilBuffer),this._depthStencilBuffer=null}return super.createDepthStencilTexture(e,t,i,s,r,n)}shareDepth(e){super.shareDepth(e);const t=this._context,i=this._depthStencilBuffer,s=e._MSAAFramebuffer||e._framebuffer,r=this._engine;e._depthStencilBuffer&&e._depthStencilBuffer!==i&&t.deleteRenderbuffer(e._depthStencilBuffer),e._depthStencilBuffer=i;const n=e._generateStencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;r._bindUnboundFramebuffer(s),t.framebufferRenderbuffer(t.FRAMEBUFFER,n,t.RENDERBUFFER,i),r._bindUnboundFramebuffer(null)}_bindTextureRenderTarget(e,t=0,i,s=0){var u,f;const r=e._hardwareTexture;if(!r)return;const n=this._framebuffer,o=this._engine,l=o._currentFramebuffer;o._bindUnboundFramebuffer(n);let c;if(o.webGLVersion>1){const p=this._context;c=p["COLOR_ATTACHMENT"+t],e.is2DArray||e.is3D?(i=i??((u=this.layerIndices)==null?void 0:u[t])??0,p.framebufferTextureLayer(p.FRAMEBUFFER,c,r.underlyingResource,s,i)):e.isCube?(i=i??((f=this.faceIndices)==null?void 0:f[t])??0,p.framebufferTexture2D(p.FRAMEBUFFER,c,p.TEXTURE_CUBE_MAP_POSITIVE_X+i,r.underlyingResource,s)):p.framebufferTexture2D(p.FRAMEBUFFER,c,p.TEXTURE_2D,r.underlyingResource,s)}else{const p=this._context;c=p["COLOR_ATTACHMENT"+t+"_WEBGL"];const m=i!==void 0?p.TEXTURE_CUBE_MAP_POSITIVE_X+i:p.TEXTURE_2D;p.framebufferTexture2D(p.FRAMEBUFFER,c,m,r.underlyingResource,s)}if(e._autoMSAAManagement&&this._MSAAFramebuffer){const p=this._context;o._bindUnboundFramebuffer(this._MSAAFramebuffer),p.framebufferRenderbuffer(p.FRAMEBUFFER,c,p.RENDERBUFFER,r.getMSAARenderBuffer())}o._bindUnboundFramebuffer(l)}setTexture(e,t=0,i=!0){super.setTexture(e,t,i),this._bindTextureRenderTarget(e,t)}setLayerAndFaceIndices(e,t){var s;if(super.setLayerAndFaceIndices(e,t),!this.textures||!this.layerIndices||!this.faceIndices)return;const i=((s=this._attachments)==null?void 0:s.length)??this.textures.length;for(let r=0;r<i;r++){const n=this.textures[r];n&&(n.is2DArray||n.is3D?this._bindTextureRenderTarget(n,r,this.layerIndices[r]):n.isCube?this._bindTextureRenderTarget(n,r,this.faceIndices[r]):this._bindTextureRenderTarget(n,r))}}setLayerAndFaceIndex(e=0,t,i){if(super.setLayerAndFaceIndex(e,t,i),!this.textures||!this.layerIndices||!this.faceIndices)return;const s=this.textures[e];s.is2DArray||s.is3D?this._bindTextureRenderTarget(this.textures[e],e,this.layerIndices[e]):s.isCube&&this._bindTextureRenderTarget(this.textures[e],e,this.faceIndices[e])}resolveMSAATextures(){const e=this._engine,t=e._currentFramebuffer;e._bindUnboundFramebuffer(this._MSAAFramebuffer),super.resolveMSAATextures(),e._bindUnboundFramebuffer(t)}dispose(e=this._disposeOnlyFramebuffers){const t=this._context;e||(this._colorTextureArray&&(this._context.deleteTexture(this._colorTextureArray),this._colorTextureArray=null),this._depthStencilTextureArray&&(this._context.deleteTexture(this._depthStencilTextureArray),this._depthStencilTextureArray=null)),this._framebuffer&&(t.deleteFramebuffer(this._framebuffer),this._framebuffer=null),this._depthStencilBuffer&&(t.deleteRenderbuffer(this._depthStencilBuffer),this._depthStencilBuffer=null),this._MSAAFramebuffer&&(t.deleteFramebuffer(this._MSAAFramebuffer),this._MSAAFramebuffer=null),super.dispose(e)}}dt.prototype.createDepthStencilTexture=function(a,e,t){if(e.isCube){const i=a.width||a;return this._createDepthStencilCubeTexture(i,e)}else return this._createDepthStencilTexture(a,e,t)},Zi.prototype._createHardwareRenderTargetWrapper=function(a,e,t){const i=new TRe(a,e,t,this,this._gl);return this._renderTargetWrapperCache.push(i),i},Zi.prototype.createRenderTargetTexture=function(a,e){const t=this._createHardwareRenderTargetWrapper(!1,!1,a);let i=!0,s=!1,r=!1,n,o=1,l;e!==void 0&&typeof e=="object"&&(i=e.generateDepthBuffer??!0,s=!!e.generateStencilBuffer,r=!!e.noColorAttachment,n=e.colorAttachment,o=e.samples??1,l=e.label);const c=n||(r?null:this._createInternalTexture(a,e,!0,5)),u=a.width||a,f=a.height||a,p=this._currentFramebuffer,m=this._gl,_=m.createFramebuffer();if(this._bindUnboundFramebuffer(_),t._depthStencilBuffer=this._setupFramebufferDepthAttachments(s,i,u,f),c&&!c.is2DArray&&!c.is3D&&m.framebufferTexture2D(m.FRAMEBUFFER,m.COLOR_ATTACHMENT0,m.TEXTURE_2D,c._hardwareTexture.underlyingResource,0),this._bindUnboundFramebuffer(p),t.label=l??"RenderTargetWrapper",t._framebuffer=_,t._generateDepthBuffer=i,t._generateStencilBuffer=s,t.setTextures(c),!n)this.updateRenderTargetTextureSampleCount(t,o);else if(t._samples=n.samples,n.samples>1){const d=n._hardwareTexture.getMSAARenderBuffer(0);t._MSAAFramebuffer=m.createFramebuffer(),this._bindUnboundFramebuffer(t._MSAAFramebuffer),m.framebufferRenderbuffer(m.FRAMEBUFFER,m.COLOR_ATTACHMENT0,m.RENDERBUFFER,d),this._bindUnboundFramebuffer(null)}return t},Zi.prototype._createDepthStencilTexture=function(a,e,t){const i=this._gl,s=a.layers||0,r=a.depth||0;let n=i.TEXTURE_2D;s!==0?n=i.TEXTURE_2D_ARRAY:r!==0&&(n=i.TEXTURE_3D);const o=new gr(this,12);if(o.label=e.label,!this._caps.depthTextureExtension)return de.Error("Depth texture is not supported by your browser or hardware."),o;const l={bilinearFiltering:!1,comparisonFunction:0,generateStencil:!1,...e};if(this._bindTextureDirectly(n,o,!0),this._setupDepthStencilTexture(o,a,l.comparisonFunction===0?!1:l.bilinearFiltering,l.comparisonFunction,l.samples),l.depthTextureFormat!==void 0){if(l.depthTextureFormat!==15&&l.depthTextureFormat!==16&&l.depthTextureFormat!==17&&l.depthTextureFormat!==13&&l.depthTextureFormat!==14&&l.depthTextureFormat!==18)return de.Error(`Depth texture ${l.depthTextureFormat} format is not supported.`),o;o.format=l.depthTextureFormat}else o.format=l.generateStencil?13:16;const c=zT(o.format),u=this._getWebGLTextureTypeFromDepthTextureFormat(o.format),f=c?i.DEPTH_STENCIL:i.DEPTH_COMPONENT,p=this._getInternalFormatFromDepthTextureFormat(o.format,!0,c);return o.is2DArray?i.texImage3D(n,0,p,o.width,o.height,s,0,f,u,null):o.is3D?i.texImage3D(n,0,p,o.width,o.height,r,0,f,u,null):i.texImage2D(n,0,p,o.width,o.height,0,f,u,null),this._bindTextureDirectly(n,null),this._internalTexturesCache.push(o),t._depthStencilBuffer&&(i.deleteRenderbuffer(t._depthStencilBuffer),t._depthStencilBuffer=null),this._bindUnboundFramebuffer(t._MSAAFramebuffer??t._framebuffer),t._generateStencilBuffer=c,t._depthStencilTextureWithStencil=c,t._depthStencilBuffer=this._setupFramebufferDepthAttachments(t._generateStencilBuffer,t._generateDepthBuffer,t.width,t.height,t.samples,o.format),this._bindUnboundFramebuffer(null),o},Zi.prototype.updateRenderTargetTextureSampleCount=function(a,e){var r;if(this.webGLVersion<2||!a)return 1;if(a.samples===e)return e;const t=this._gl;e=Math.min(e,this.getCaps().maxMSAASamples),a._depthStencilBuffer&&(t.deleteRenderbuffer(a._depthStencilBuffer),a._depthStencilBuffer=null),a._MSAAFramebuffer&&(t.deleteFramebuffer(a._MSAAFramebuffer),a._MSAAFramebuffer=null);const i=(r=a.texture)==null?void 0:r._hardwareTexture;if(i==null||i.releaseMSAARenderBuffers(),a.texture&&e>1&&typeof t.renderbufferStorageMultisample=="function"){const n=t.createFramebuffer();if(!n)throw new Error("Unable to create multi sampled framebuffer");a._MSAAFramebuffer=n,this._bindUnboundFramebuffer(a._MSAAFramebuffer);const o=this._createRenderBuffer(a.texture.width,a.texture.height,e,-1,this._getRGBABufferInternalSizedFormat(a.texture.type,a.texture.format,a.texture._useSRGBBuffer),t.COLOR_ATTACHMENT0,!1);if(!o)throw new Error("Unable to create multi sampled framebuffer");i==null||i.addMSAARenderBuffer(o)}this._bindUnboundFramebuffer(a._MSAAFramebuffer??a._framebuffer),a.texture&&(a.texture.samples=e),a._samples=e;const s=a._depthStencilTexture?a._depthStencilTexture.format:void 0;return a._depthStencilBuffer=this._setupFramebufferDepthAttachments(a._generateStencilBuffer,a._generateDepthBuffer,a.width,a.height,e,s),this._bindUnboundFramebuffer(null),e},Zi.prototype._setupDepthStencilTexture=function(a,e,t,i,s=1){const r=e.width??e,n=e.height??e,o=e.layers||0,l=e.depth||0;a.baseWidth=r,a.baseHeight=n,a.width=r,a.height=n,a.is2DArray=o>0,a.depth=o||l,a.isReady=!0,a.samples=s,a.generateMipMaps=!1,a.samplingMode=t?2:1,a.type=0,a._comparisonFunction=i;const c=this._gl,u=this._getTextureTarget(a),f=this._getSamplingParameters(a.samplingMode,!1);c.texParameteri(u,c.TEXTURE_MAG_FILTER,f.mag),c.texParameteri(u,c.TEXTURE_MIN_FILTER,f.min),c.texParameteri(u,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(u,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE),this.webGLVersion>1&&(i===0?(c.texParameteri(u,c.TEXTURE_COMPARE_FUNC,515),c.texParameteri(u,c.TEXTURE_COMPARE_MODE,c.NONE)):(c.texParameteri(u,c.TEXTURE_COMPARE_FUNC,i),c.texParameteri(u,c.TEXTURE_COMPARE_MODE,c.COMPARE_REF_TO_TEXTURE)))},Zi.prototype.setDepthStencilTexture=function(a,e,t,i){a!==void 0&&(e&&(this._boundUniforms[a]=e),!t||!t.depthStencilTexture?this._setTexture(a,null,void 0,void 0,i):this._setTexture(a,t,!1,!0,i))},Zi.prototype.createRenderTargetCubeTexture=function(a,e){const t=this._createHardwareRenderTargetWrapper(!1,!0,a),i={generateMipMaps:!0,generateDepthBuffer:!0,generateStencilBuffer:!1,type:0,samplingMode:3,format:5,...e};i.generateStencilBuffer=i.generateDepthBuffer&&i.generateStencilBuffer,(i.type===1&&!this._caps.textureFloatLinearFiltering||i.type===2&&!this._caps.textureHalfFloatLinearFiltering)&&(i.samplingMode=1);const s=this._gl,r=new gr(this,5);this._bindTextureDirectly(s.TEXTURE_CUBE_MAP,r,!0);const n=this._getSamplingParameters(i.samplingMode,i.generateMipMaps);i.type===1&&!this._caps.textureFloat&&(i.type=0,de.Warn("Float textures are not supported. Cube render target forced to TEXTURETYPE_UNESIGNED_BYTE type")),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_MAG_FILTER,n.mag),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_MIN_FILTER,n.min),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE);for(let l=0;l<6;l++)s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+l,0,this._getRGBABufferInternalSizedFormat(i.type,i.format),a,a,0,this._getInternalFormat(i.format),this._getWebGLTextureType(i.type),null);const o=s.createFramebuffer();return this._bindUnboundFramebuffer(o),t._depthStencilBuffer=this._setupFramebufferDepthAttachments(i.generateStencilBuffer,i.generateDepthBuffer,a,a),i.generateMipMaps&&s.generateMipmap(s.TEXTURE_CUBE_MAP),this._bindTextureDirectly(s.TEXTURE_CUBE_MAP,null),this._bindUnboundFramebuffer(null),t._framebuffer=o,t._generateDepthBuffer=i.generateDepthBuffer,t._generateStencilBuffer=i.generateStencilBuffer,r.width=a,r.height=a,r.isReady=!0,r.isCube=!0,r.samples=1,r.generateMipMaps=i.generateMipMaps,r.samplingMode=i.samplingMode,r.type=i.type,r.format=i.format,this._internalTexturesCache.push(r),t.setTextures(r),t};var OZ;(function(a){a[a.CW=0]="CW",a[a.CCW=1]="CCW"})(OZ||(OZ={}));class pde{static Interpolate(e,t,i,s,r){if(e===0)return 0;const n=1-3*s+3*t,o=3*s-6*t,l=3*t;let c=e;for(let u=0;u<5;u++){const f=c*c,p=f*c,m=n*p+o*f+l*c,_=1/(3*n*f+2*o*c+l);c-=(m-e)*_,c=Math.min(1,Math.max(0,c))}return 3*Math.pow(1-c,2)*c*i+3*(1-c)*Math.pow(c,2)*r+Math.pow(c,3)}}class Hv{constructor(e){this._radians=e,this._radians<0&&(this._radians+=2*Math.PI)}degrees(){return this._radians*180/Math.PI}radians(){return this._radians}static BetweenTwoPoints(e,t){const i=t.subtract(e),s=Math.atan2(i.y,i.x);return new Hv(s)}static BetweenTwoVectors(e,t){let i=e.lengthSquared()*t.lengthSquared();if(i===0)return new Hv(Math.PI/2);i=Math.sqrt(i);let s=e.dot(t)/i;s=Os(s,-1,1);const r=Math.acos(s);return new Hv(r)}static FromRadians(e){return new Hv(e)}static FromDegrees(e){return new Hv(e*Math.PI/180)}}class mde{constructor(e,t,i){this.startPoint=e,this.midPoint=t,this.endPoint=i;const s=Math.pow(t.x,2)+Math.pow(t.y,2),r=(Math.pow(e.x,2)+Math.pow(e.y,2)-s)/2,n=(s-Math.pow(i.x,2)-Math.pow(i.y,2))/2,o=(e.x-t.x)*(t.y-i.y)-(t.x-i.x)*(e.y-t.y);this.centerPoint=new Ue((r*(t.y-i.y)-n*(e.y-t.y))/o,((e.x-t.x)*n-(t.x-i.x)*r)/o),this.radius=this.centerPoint.subtract(this.startPoint).length(),this.startAngle=Hv.BetweenTwoPoints(this.centerPoint,this.startPoint);const l=this.startAngle.degrees();let c=Hv.BetweenTwoPoints(this.centerPoint,this.midPoint).degrees(),u=Hv.BetweenTwoPoints(this.centerPoint,this.endPoint).degrees();c-l>180&&(c-=360),c-l<-180&&(c+=360),u-c>180&&(u-=360),u-c<-180&&(u+=360),this.orientation=c-l<0?0:1,this.angle=Hv.FromDegrees(this.orientation===0?l-u:u-l)}}class EP{constructor(e,t){this._points=new Array,this._length=0,this.closed=!1,this._points.push(new Ue(e,t))}addLineTo(e,t){if(this.closed)return this;const i=new Ue(e,t),s=this._points[this._points.length-1];return this._points.push(i),this._length+=i.subtract(s).length(),this}addArcTo(e,t,i,s,r=36){if(this.closed)return this;const n=this._points[this._points.length-1],o=new Ue(e,t),l=new Ue(i,s),c=new mde(n,o,l);let u=c.angle.radians()/r;c.orientation===0&&(u*=-1);let f=c.startAngle.radians()+u;for(let p=0;p<r;p++){const m=Math.cos(f)*c.radius+c.centerPoint.x,_=Math.sin(f)*c.radius+c.centerPoint.y;this.addLineTo(m,_),f+=u}return this}addQuadraticCurveTo(e,t,i,s,r=36){if(this.closed)return this;const n=(l,c,u,f)=>(1-l)*(1-l)*c+2*l*(1-l)*u+l*l*f,o=this._points[this._points.length-1];for(let l=0;l<=r;l++){const c=l/r,u=n(c,o.x,e,i),f=n(c,o.y,t,s);this.addLineTo(u,f)}return this}addBezierCurveTo(e,t,i,s,r,n,o=36){if(this.closed)return this;const l=(u,f,p,m,_)=>(1-u)*(1-u)*(1-u)*f+3*u*(1-u)*(1-u)*p+3*u*u*(1-u)*m+u*u*u*_,c=this._points[this._points.length-1];for(let u=0;u<=o;u++){const f=u/o,p=l(f,c.x,e,i,r),m=l(f,c.y,t,s,n);this.addLineTo(p,m)}return this}isPointInside(e){let t=!1;const i=this._points.length;for(let s=i-1,r=0;r<i;s=r++){let n=this._points[s],o=this._points[r],l=o.x-n.x,c=o.y-n.y;if(Math.abs(c)>Number.EPSILON){if(c<0&&(n=this._points[r],l=-l,o=this._points[s],c=-c),e.y<n.y||e.y>o.y)continue;if(e.y===n.y&&e.x===n.x)return!0;{const u=c*(e.x-n.x)-l*(e.y-n.y);if(u===0)return!0;if(u<0)continue;t=!t}}else{if(e.y!==n.y)continue;if(o.x<=e.x&&e.x<=n.x||n.x<=e.x&&e.x<=o.x)return!0}}return t}close(){return this.closed=!0,this}length(){let e=this._length;if(this.closed){const t=this._points[this._points.length-1],i=this._points[0];e+=i.subtract(t).length()}return e}area(){const e=this._points.length;let t=0;for(let i=e-1,s=0;s<e;i=s++)t+=this._points[i].x*this._points[s].y-this._points[s].x*this._points[i].y;return t*.5}getPoints(){return this._points}getPointAtLengthPosition(e){if(e<0||e>1)return Ue.Zero();const t=e*this.length();let i=0;for(let s=0;s<this._points.length;s++){const r=(s+1)%this._points.length,n=this._points[s],l=this._points[r].subtract(n),c=l.length()+i;if(t>=i&&t<=c){const u=l.normalize(),f=t-i;return new Ue(n.x+u.x*f,n.y+u.y*f)}i=c}return Ue.Zero()}static StartingAt(e,t){return new EP(e,t)}}class TP{constructor(e,t=null,i,s=!1){this.path=e,this._curve=new Array,this._distances=new Array,this._tangents=new Array,this._normals=new Array,this._binormals=new Array,this._pointAtData={id:0,point:P.Zero(),previousPointArrayIndex:0,position:0,subPosition:0,interpolateReady:!1,interpolationMatrix:me.Identity()};for(let r=0;r<e.length;r++)this._curve[r]=e[r].clone();this._raw=i||!1,this._alignTangentsWithPath=s,this._compute(t,s)}getCurve(){return this._curve}getPoints(){return this._curve}length(){return this._distances[this._distances.length-1]}getTangents(){return this._tangents}getNormals(){return this._normals}getBinormals(){return this._binormals}getDistances(){return this._distances}getPointAt(e){return this._updatePointAtData(e).point}getTangentAt(e,t=!1){return this._updatePointAtData(e,t),t?P.TransformCoordinates(P.Forward(),this._pointAtData.interpolationMatrix):this._tangents[this._pointAtData.previousPointArrayIndex]}getNormalAt(e,t=!1){return this._updatePointAtData(e,t),t?P.TransformCoordinates(P.Right(),this._pointAtData.interpolationMatrix):this._normals[this._pointAtData.previousPointArrayIndex]}getBinormalAt(e,t=!1){return this._updatePointAtData(e,t),t?P.TransformCoordinates(P.UpReadOnly,this._pointAtData.interpolationMatrix):this._binormals[this._pointAtData.previousPointArrayIndex]}getDistanceAt(e){return this.length()*e}getPreviousPointIndexAt(e){return this._updatePointAtData(e),this._pointAtData.previousPointArrayIndex}getSubPositionAt(e){return this._updatePointAtData(e),this._pointAtData.subPosition}getClosestPositionTo(e){let t=Number.MAX_VALUE,i=0;for(let s=0;s<this._curve.length-1;s++){const r=this._curve[s+0],n=this._curve[s+1].subtract(r).normalize(),o=this._distances[s+1]-this._distances[s+0],l=Math.min(Math.max(P.Dot(n,e.subtract(r).normalize()),0)*P.Distance(r,e)/o,1),c=P.Distance(r.add(n.scale(l*o)),e);c<t&&(t=c,i=(this._distances[s+0]+o*l)/this.length())}return i}slice(e=0,t=1){if(e<0&&(e=1-e*-1%1),t<0&&(t=1-t*-1%1),e>t){const c=e;e=t,t=c}const i=this.getCurve(),s=this.getPointAt(e);let r=this.getPreviousPointIndexAt(e);const n=this.getPointAt(t),o=this.getPreviousPointIndexAt(t)+1,l=[];return e!==0&&(r++,l.push(s)),l.push(...i.slice(r,o)),(t!==1||e===1)&&l.push(n),new TP(l,this.getNormalAt(e),this._raw,this._alignTangentsWithPath)}update(e,t=null,i=!1){for(let s=0;s<e.length;s++)this._curve[s].x=e[s].x,this._curve[s].y=e[s].y,this._curve[s].z=e[s].z;return this._compute(t,i),this}_compute(e,t=!1){const i=this._curve.length;if(i<2)return;this._tangents[0]=this._getFirstNonNullVector(0),this._raw||this._tangents[0].normalize(),this._tangents[i-1]=this._curve[i-1].subtract(this._curve[i-2]),this._raw||this._tangents[i-1].normalize();const s=this._tangents[0],r=this._normalVector(s,e);this._normals[0]=r,this._raw||this._normals[0].normalize(),this._binormals[0]=P.Cross(s,this._normals[0]),this._raw||this._binormals[0].normalize(),this._distances[0]=0;let n,o,l,c,u;for(let f=1;f<i;f++)n=this._getLastNonNullVector(f),f<i-1&&(o=this._getFirstNonNullVector(f),this._tangents[f]=t?o:n.add(o),this._tangents[f].normalize()),this._distances[f]=this._distances[f-1]+this._curve[f].subtract(this._curve[f-1]).length(),l=this._tangents[f],u=this._binormals[f-1],this._normals[f]=P.Cross(u,l),this._raw||(this._normals[f].length()===0?(c=this._normals[f-1],this._normals[f]=c.clone()):this._normals[f].normalize()),this._binormals[f]=P.Cross(l,this._normals[f]),this._raw||this._binormals[f].normalize();this._pointAtData.id=NaN}_getFirstNonNullVector(e){let t=1,i=this._curve[e+t].subtract(this._curve[e]);for(;i.length()===0&&e+t+1<this._curve.length;)t++,i=this._curve[e+t].subtract(this._curve[e]);return i}_getLastNonNullVector(e){let t=1,i=this._curve[e].subtract(this._curve[e-t]);for(;i.length()===0&&e>t+1;)t++,i=this._curve[e].subtract(this._curve[e-t]);return i}_normalVector(e,t){let i,s=e.length();if(s===0&&(s=1),t==null){let r;Lr(Math.abs(e.y)/s,1,Ii)?Lr(Math.abs(e.x)/s,1,Ii)?Lr(Math.abs(e.z)/s,1,Ii)?r=P.Zero():r=new P(0,0,1):r=new P(1,0,0):r=new P(0,-1,0),i=P.Cross(e,r)}else i=P.Cross(e,t),P.CrossToRef(i,e,i);return i.normalize(),i}_updatePointAtData(e,t=!1){if(this._pointAtData.id===e)return this._pointAtData.interpolateReady||this._updateInterpolationMatrix(),this._pointAtData;this._pointAtData.id=e;const i=this.getPoints();if(e<=0)return this._setPointAtData(0,0,i[0],0,t);if(e>=1)return this._setPointAtData(1,1,i[i.length-1],i.length-1,t);let s=i[0],r,n=0;const o=e*this.length();for(let l=1;l<i.length;l++){r=i[l];const c=P.Distance(s,r);if(n+=c,n===o)return this._setPointAtData(e,1,r,l,t);if(n>o){const f=(n-o)/c,p=s.subtract(r),m=r.add(p.scaleInPlace(f));return this._setPointAtData(e,1-f,m,l-1,t)}s=r}return this._pointAtData}_setPointAtData(e,t,i,s,r){return this._pointAtData.point=i,this._pointAtData.position=e,this._pointAtData.subPosition=t,this._pointAtData.previousPointArrayIndex=s,this._pointAtData.interpolateReady=r,r&&this._updateInterpolationMatrix(),this._pointAtData}_updateInterpolationMatrix(){this._pointAtData.interpolationMatrix=me.Identity();const e=this._pointAtData.previousPointArrayIndex;if(e!==this._tangents.length-1){const t=e+1,i=this._tangents[e].clone(),s=this._normals[e].clone(),r=this._binormals[e].clone(),n=this._tangents[t].clone(),o=this._normals[t].clone(),l=this._binormals[t].clone(),c=Re.RotationQuaternionFromAxis(s,r,i),u=Re.RotationQuaternionFromAxis(o,l,n);Re.Slerp(c,u,this._pointAtData.subPosition).toRotationMatrix(this._pointAtData.interpolationMatrix)}}}class Yv{static CreateQuadraticBezier(e,t,i,s){s=s>2?s:3;const r=[],n=(o,l,c,u)=>(1-o)*(1-o)*l+2*o*(1-o)*c+o*o*u;for(let o=0;o<=s;o++)r.push(new P(n(o/s,e.x,t.x,i.x),n(o/s,e.y,t.y,i.y),n(o/s,e.z,t.z,i.z)));return new Yv(r)}static CreateCubicBezier(e,t,i,s,r){r=r>3?r:4;const n=[],o=(l,c,u,f,p)=>(1-l)*(1-l)*(1-l)*c+3*l*(1-l)*(1-l)*u+3*l*l*(1-l)*f+l*l*l*p;for(let l=0;l<=r;l++)n.push(new P(o(l/r,e.x,t.x,i.x,s.x),o(l/r,e.y,t.y,i.y,s.y),o(l/r,e.z,t.z,i.z,s.z)));return new Yv(n)}static CreateHermiteSpline(e,t,i,s,r){const n=[],o=1/r;for(let l=0;l<=r;l++)n.push(P.Hermite(e,t,i,s,l*o));return new Yv(n)}static CreateCatmullRomSpline(e,t,i){const s=[],r=1/t;let n=0;if(i){const o=e.length;for(let l=0;l<o;l++){n=0;for(let c=0;c<t;c++)s.push(P.CatmullRom(e[l%o],e[(l+1)%o],e[(l+2)%o],e[(l+3)%o],n)),n+=r}s.push(s[0])}else{const o=[];o.push(e[0].clone()),Array.prototype.push.apply(o,e),o.push(e[e.length-1].clone());let l=0;for(;l<o.length-3;l++){n=0;for(let c=0;c<t;c++)s.push(P.CatmullRom(o[l],o[l+1],o[l+2],o[l+3],n)),n+=r}l--,s.push(P.CatmullRom(o[l],o[l+1],o[l+2],o[l+3],n))}return new Yv(s)}static ArcThru3Points(e,t,i,s=32,r=!1,n=!1){const o=[],l=t.subtract(e),c=i.subtract(t),u=e.subtract(i),f=P.Cross(l,c),p=f.length();if(p<Math.pow(10,-8))return new Yv(o);const m=l.lengthSquared(),_=c.lengthSquared(),d=u.lengthSquared(),h=f.lengthSquared(),x=l.length(),A=c.length(),S=u.length(),E=.5*x*A*S/p,b=P.Dot(l,u),M=P.Dot(l,c),T=P.Dot(c,u),O=-.5*_*b/h,R=-.5*d*M/h,I=-.5*m*T/h,N=e.scale(O).add(t.scale(R)).add(i.scale(I)),D=e.subtract(N).normalize(),k=P.Cross(f,D).normalize();if(n){const Y=2*Math.PI/s;for(let V=0;V<=2*Math.PI;V+=Y)o.push(N.add(D.scale(E*Math.cos(V)).add(k.scale(E*Math.sin(V)))));o.push(e)}else{const Y=1/s;let V=0,ee=P.Zero();do ee=N.add(D.scale(E*Math.cos(V)).add(k.scale(E*Math.sin(V)))),o.push(ee),V+=Y;while(!ee.equalsWithEpsilon(i,E*Y*1.1));o.push(i),r&&o.push(e)}return new Yv(o)}constructor(e){this._length=0,this._points=e,this._length=this._computeLength(e)}getPoints(){return this._points}length(){return this._length}continue(e){const t=this._points[this._points.length-1],i=this._points.slice(),s=e.getPoints();for(let n=1;n<s.length;n++)i.push(s[n].subtract(s[0]).add(t));return new Yv(i)}_computeLength(e){let t=0;for(let i=1;i<e.length;i++)t+=e[i].subtract(e[i-1]).length();return t}}class RZ{constructor(e=P.Zero(),t=P.Up()){this.position=e,this.normal=t}clone(){return new RZ(this.position.clone(),this.normal.clone())}}class DZ{constructor(e=P.Zero(),t=P.Up(),i=Ue.Zero()){this.position=e,this.normal=t,this.uv=i}clone(){return new DZ(this.position.clone(),this.normal.clone(),this.uv.clone())}}const ib=[Math.sqrt(1/(4*Math.PI)),-Math.sqrt(3/(4*Math.PI)),Math.sqrt(3/(4*Math.PI)),-Math.sqrt(3/(4*Math.PI)),Math.sqrt(15/(4*Math.PI)),-Math.sqrt(15/(4*Math.PI)),Math.sqrt(5/(16*Math.PI)),-Math.sqrt(15/(4*Math.PI)),Math.sqrt(15/(16*Math.PI))],LRe=[()=>1,a=>a.y,a=>a.z,a=>a.x,a=>a.x*a.y,a=>a.y*a.z,a=>3*a.z*a.z-1,a=>a.x*a.z,a=>a.x*a.x-a.y*a.y],Ey=(a,e)=>ib[a]*LRe[a](e),Ty=[Math.PI,2*Math.PI/3,2*Math.PI/3,2*Math.PI/3,Math.PI/4,Math.PI/4,Math.PI/4,Math.PI/4,Math.PI/4];class FT{constructor(){this.preScaled=!1,this.l00=P.Zero(),this.l1_1=P.Zero(),this.l10=P.Zero(),this.l11=P.Zero(),this.l2_2=P.Zero(),this.l2_1=P.Zero(),this.l20=P.Zero(),this.l21=P.Zero(),this.l22=P.Zero()}addLight(e,t,i){ae.Vector3[0].set(t.r,t.g,t.b);const s=ae.Vector3[0],r=ae.Vector3[1];s.scaleToRef(i,r),r.scaleToRef(Ey(0,e),ae.Vector3[2]),this.l00.addInPlace(ae.Vector3[2]),r.scaleToRef(Ey(1,e),ae.Vector3[2]),this.l1_1.addInPlace(ae.Vector3[2]),r.scaleToRef(Ey(2,e),ae.Vector3[2]),this.l10.addInPlace(ae.Vector3[2]),r.scaleToRef(Ey(3,e),ae.Vector3[2]),this.l11.addInPlace(ae.Vector3[2]),r.scaleToRef(Ey(4,e),ae.Vector3[2]),this.l2_2.addInPlace(ae.Vector3[2]),r.scaleToRef(Ey(5,e),ae.Vector3[2]),this.l2_1.addInPlace(ae.Vector3[2]),r.scaleToRef(Ey(6,e),ae.Vector3[2]),this.l20.addInPlace(ae.Vector3[2]),r.scaleToRef(Ey(7,e),ae.Vector3[2]),this.l21.addInPlace(ae.Vector3[2]),r.scaleToRef(Ey(8,e),ae.Vector3[2]),this.l22.addInPlace(ae.Vector3[2])}scaleInPlace(e){this.l00.scaleInPlace(e),this.l1_1.scaleInPlace(e),this.l10.scaleInPlace(e),this.l11.scaleInPlace(e),this.l2_2.scaleInPlace(e),this.l2_1.scaleInPlace(e),this.l20.scaleInPlace(e),this.l21.scaleInPlace(e),this.l22.scaleInPlace(e)}convertIncidentRadianceToIrradiance(){this.l00.scaleInPlace(Ty[0]),this.l1_1.scaleInPlace(Ty[1]),this.l10.scaleInPlace(Ty[2]),this.l11.scaleInPlace(Ty[3]),this.l2_2.scaleInPlace(Ty[4]),this.l2_1.scaleInPlace(Ty[5]),this.l20.scaleInPlace(Ty[6]),this.l21.scaleInPlace(Ty[7]),this.l22.scaleInPlace(Ty[8])}convertIrradianceToLambertianRadiance(){this.scaleInPlace(1/Math.PI)}preScaleForRendering(){this.preScaled=!0,this.l00.scaleInPlace(ib[0]),this.l1_1.scaleInPlace(ib[1]),this.l10.scaleInPlace(ib[2]),this.l11.scaleInPlace(ib[3]),this.l2_2.scaleInPlace(ib[4]),this.l2_1.scaleInPlace(ib[5]),this.l20.scaleInPlace(ib[6]),this.l21.scaleInPlace(ib[7]),this.l22.scaleInPlace(ib[8])}updateFromArray(e){return P.FromArrayToRef(e[0],0,this.l00),P.FromArrayToRef(e[1],0,this.l1_1),P.FromArrayToRef(e[2],0,this.l10),P.FromArrayToRef(e[3],0,this.l11),P.FromArrayToRef(e[4],0,this.l2_2),P.FromArrayToRef(e[5],0,this.l2_1),P.FromArrayToRef(e[6],0,this.l20),P.FromArrayToRef(e[7],0,this.l21),P.FromArrayToRef(e[8],0,this.l22),this}updateFromFloatsArray(e){return P.FromFloatsToRef(e[0],e[1],e[2],this.l00),P.FromFloatsToRef(e[3],e[4],e[5],this.l1_1),P.FromFloatsToRef(e[6],e[7],e[8],this.l10),P.FromFloatsToRef(e[9],e[10],e[11],this.l11),P.FromFloatsToRef(e[12],e[13],e[14],this.l2_2),P.FromFloatsToRef(e[15],e[16],e[17],this.l2_1),P.FromFloatsToRef(e[18],e[19],e[20],this.l20),P.FromFloatsToRef(e[21],e[22],e[23],this.l21),P.FromFloatsToRef(e[24],e[25],e[26],this.l22),this}static FromArray(e){return new FT().updateFromArray(e)}static FromPolynomial(e){const t=new FT;return t.l00=e.xx.scale(.376127).add(e.yy.scale(.376127)).add(e.zz.scale(.376126)),t.l1_1=e.y.scale(.977204),t.l10=e.z.scale(.977204),t.l11=e.x.scale(.977204),t.l2_2=e.xy.scale(1.16538),t.l2_1=e.yz.scale(1.16538),t.l20=e.zz.scale(1.34567).subtract(e.xx.scale(.672834)).subtract(e.yy.scale(.672834)),t.l21=e.zx.scale(1.16538),t.l22=e.xx.scale(1.16538).subtract(e.yy.scale(1.16538)),t.l1_1.scaleInPlace(-1),t.l11.scaleInPlace(-1),t.l2_1.scaleInPlace(-1),t.l21.scaleInPlace(-1),t.scaleInPlace(Math.PI),t}}class Xv{constructor(){this.x=P.Zero(),this.y=P.Zero(),this.z=P.Zero(),this.xx=P.Zero(),this.yy=P.Zero(),this.zz=P.Zero(),this.xy=P.Zero(),this.yz=P.Zero(),this.zx=P.Zero()}get preScaledHarmonics(){return this._harmonics||(this._harmonics=FT.FromPolynomial(this)),this._harmonics.preScaled||this._harmonics.preScaleForRendering(),this._harmonics}addAmbient(e){ae.Vector3[0].copyFromFloats(e.r,e.g,e.b);const t=ae.Vector3[0];this.xx.addInPlace(t),this.yy.addInPlace(t),this.zz.addInPlace(t)}scaleInPlace(e){this.x.scaleInPlace(e),this.y.scaleInPlace(e),this.z.scaleInPlace(e),this.xx.scaleInPlace(e),this.yy.scaleInPlace(e),this.zz.scaleInPlace(e),this.yz.scaleInPlace(e),this.zx.scaleInPlace(e),this.xy.scaleInPlace(e)}updateFromHarmonics(e){return this._harmonics=e,this.x.copyFrom(e.l11),this.x.scaleInPlace(1.02333).scaleInPlace(-1),this.y.copyFrom(e.l1_1),this.y.scaleInPlace(1.02333).scaleInPlace(-1),this.z.copyFrom(e.l10),this.z.scaleInPlace(1.02333),this.xx.copyFrom(e.l00),ae.Vector3[0].copyFrom(e.l20).scaleInPlace(.247708),ae.Vector3[1].copyFrom(e.l22).scaleInPlace(.429043),this.xx.scaleInPlace(.886277).subtractInPlace(ae.Vector3[0]).addInPlace(ae.Vector3[1]),this.yy.copyFrom(e.l00),this.yy.scaleInPlace(.886277).subtractInPlace(ae.Vector3[0]).subtractInPlace(ae.Vector3[1]),this.zz.copyFrom(e.l00),ae.Vector3[0].copyFrom(e.l20).scaleInPlace(.495417),this.zz.scaleInPlace(.886277).addInPlace(ae.Vector3[0]),this.yz.copyFrom(e.l2_1),this.yz.scaleInPlace(.858086).scaleInPlace(-1),this.zx.copyFrom(e.l21),this.zx.scaleInPlace(.858086).scaleInPlace(-1),this.xy.copyFrom(e.l2_2),this.xy.scaleInPlace(.858086),this.scaleInPlace(1/Math.PI),this}static FromHarmonics(e){return new Xv().updateFromHarmonics(e)}static FromArray(e){const t=new Xv;return P.FromArrayToRef(e[0],0,t.x),P.FromArrayToRef(e[1],0,t.y),P.FromArrayToRef(e[2],0,t.z),P.FromArrayToRef(e[3],0,t.xx),P.FromArrayToRef(e[4],0,t.yy),P.FromArrayToRef(e[5],0,t.zz),P.FromArrayToRef(e[6],0,t.yz),P.FromArrayToRef(e[7],0,t.zx),P.FromArrayToRef(e[8],0,t.xy),t}}Zi.prototype.createPrefilteredCubeTexture=function(a,e,t,i,s=null,r=null,n,o=null,l=!0){const c=async u=>{if(!u){s&&s(null);return}const f=u.texture;if(l?u.info.sphericalPolynomial&&(f._sphericalPolynomial=u.info.sphericalPolynomial):f._sphericalPolynomial=new Xv,f._source=9,this.getCaps().textureLOD){s&&s(f);return}const p=3,m=this._gl,_=u.width;if(!_)return;const{DDSTools:d}=await Promise.resolve().then(()=>mFe),h=[];for(let x=0;x<p;x++){const S=1-x/(p-1),E=i,b=Math.log2(_)*t+i,M=E+(b-E)*S,T=Math.round(Math.min(Math.max(M,0),b)),O=new gr(this,2);if(O.type=f.type,O.format=f.format,O.width=Math.pow(2,Math.max(Math.log2(_)-T,0)),O.height=O.width,O.isCube=!0,O._cachedWrapU=0,O._cachedWrapV=0,this._bindTextureDirectly(m.TEXTURE_CUBE_MAP,O,!0),O.samplingMode=2,m.texParameteri(m.TEXTURE_CUBE_MAP,m.TEXTURE_MAG_FILTER,m.LINEAR),m.texParameteri(m.TEXTURE_CUBE_MAP,m.TEXTURE_MIN_FILTER,m.LINEAR),m.texParameteri(m.TEXTURE_CUBE_MAP,m.TEXTURE_WRAP_S,m.CLAMP_TO_EDGE),m.texParameteri(m.TEXTURE_CUBE_MAP,m.TEXTURE_WRAP_T,m.CLAMP_TO_EDGE),u.isDDS){const I=u.info,N=u.data;this._unpackFlipY(I.isCompressed),d.UploadDDSLevels(this,O,N,I,!0,6,T)}else de.Warn("DDS is the only prefiltered cube map supported so far.");this._bindTextureDirectly(m.TEXTURE_CUBE_MAP,null);const R=new vr(e);R._isCube=!0,R._texture=O,O.isReady=!0,h.push(R)}f._lodTextureHigh=h[2],f._lodTextureMid=h[1],f._lodTextureLow=h[0],s&&s(f)};return this.createCubeTexture(a,e,null,!1,c,r,n,o,l,t,i)},Zi.prototype.createUniformBuffer=function(a,e){const t=this._gl.createBuffer();if(!t)throw new Error("Unable to create uniform buffer");const i=new MP(t);return this.bindUniformBuffer(i),a instanceof Float32Array?this._gl.bufferData(this._gl.UNIFORM_BUFFER,a,this._gl.STATIC_DRAW):this._gl.bufferData(this._gl.UNIFORM_BUFFER,new Float32Array(a),this._gl.STATIC_DRAW),this.bindUniformBuffer(null),i.references=1,i},Zi.prototype.createDynamicUniformBuffer=function(a,e){const t=this._gl.createBuffer();if(!t)throw new Error("Unable to create dynamic uniform buffer");const i=new MP(t);return this.bindUniformBuffer(i),a instanceof Float32Array?this._gl.bufferData(this._gl.UNIFORM_BUFFER,a,this._gl.DYNAMIC_DRAW):this._gl.bufferData(this._gl.UNIFORM_BUFFER,new Float32Array(a),this._gl.DYNAMIC_DRAW),this.bindUniformBuffer(null),i.references=1,i},Zi.prototype.updateUniformBuffer=function(a,e,t,i){this.bindUniformBuffer(a),t===void 0&&(t=0),i===void 0?e instanceof Float32Array?this._gl.bufferSubData(this._gl.UNIFORM_BUFFER,t,e):this._gl.bufferSubData(this._gl.UNIFORM_BUFFER,t,new Float32Array(e)):e instanceof Float32Array?this._gl.bufferSubData(this._gl.UNIFORM_BUFFER,0,e.subarray(t,t+i)):this._gl.bufferSubData(this._gl.UNIFORM_BUFFER,0,new Float32Array(e).subarray(t,t+i)),this.bindUniformBuffer(null)},Zi.prototype.bindUniformBuffer=function(a){this._gl.bindBuffer(this._gl.UNIFORM_BUFFER,a?a.underlyingResource:null)},Zi.prototype.bindUniformBufferBase=function(a,e,t){this._gl.bindBufferBase(this._gl.UNIFORM_BUFFER,e,a?a.underlyingResource:null)},Zi.prototype.bindUniformBlock=function(a,e,t){const i=a.program,s=this._gl.getUniformBlockIndex(i,e);s!==4294967295&&this._gl.uniformBlockBinding(i,s,t)},dt.prototype.displayLoadingUI=function(){if(!Il())return;const a=this.loadingScreen;a&&a.displayLoadingUI()},dt.prototype.hideLoadingUI=function(){if(!Il())return;const a=this._loadingScreen;a&&a.hideLoadingUI()},Object.defineProperty(dt.prototype,"loadingScreen",{get:function(){return!this._loadingScreen&&this._renderingCanvas&&(this._loadingScreen=dt.DefaultLoadingScreenFactory(this._renderingCanvas)),this._loadingScreen},set:function(a){this._loadingScreen=a},enumerable:!0,configurable:!0}),Object.defineProperty(dt.prototype,"loadingUIText",{set:function(a){this.loadingScreen.loadingUIText=a},enumerable:!0,configurable:!0}),Object.defineProperty(dt.prototype,"loadingUIBackgroundColor",{set:function(a){this.loadingScreen.loadingUIBackgroundColor=a},enumerable:!0,configurable:!0}),dt.prototype.getInputElement=function(){return this._renderingCanvas},dt.prototype.getRenderingCanvasClientRect=function(){return this._renderingCanvas?this._renderingCanvas.getBoundingClientRect():null},dt.prototype.getInputElementClientRect=function(){return this._renderingCanvas?this.getInputElement().getBoundingClientRect():null},dt.prototype.getAspectRatio=function(a,e=!1){const t=a.viewport;return this.getRenderWidth(e)*t.width/(this.getRenderHeight(e)*t.height)},dt.prototype.getScreenAspectRatio=function(){return this.getRenderWidth(!0)/this.getRenderHeight(!0)},dt.prototype._verifyPointerLock=function(){var a;(a=this._onPointerLockChange)==null||a.call(this)},dt.prototype.setAlphaEquation=function(a){if(this._alphaEquation!==a){switch(a){case 0:this._alphaState.setAlphaEquationParameters(32774,32774);break;case 1:this._alphaState.setAlphaEquationParameters(32778,32778);break;case 2:this._alphaState.setAlphaEquationParameters(32779,32779);break;case 3:this._alphaState.setAlphaEquationParameters(32776,32776);break;case 4:this._alphaState.setAlphaEquationParameters(32775,32775);break;case 5:this._alphaState.setAlphaEquationParameters(32775,32774);break}this._alphaEquation=a}},dt.prototype.getInputElement=function(){return this._renderingCanvas},dt.prototype.getDepthFunction=function(){return this._depthCullingState.depthFunc},dt.prototype.setDepthFunction=function(a){this._depthCullingState.depthFunc=a},dt.prototype.setDepthFunctionToGreater=function(){this.setDepthFunction(516)},dt.prototype.setDepthFunctionToGreaterOrEqual=function(){this.setDepthFunction(518)},dt.prototype.setDepthFunctionToLess=function(){this.setDepthFunction(513)},dt.prototype.setDepthFunctionToLessOrEqual=function(){this.setDepthFunction(515)},dt.prototype.getDepthWrite=function(){return this._depthCullingState.depthMask},dt.prototype.setDepthWrite=function(a){this._depthCullingState.depthMask=a},dt.prototype.getStencilBuffer=function(){return this._stencilState.stencilTest},dt.prototype.setStencilBuffer=function(a){this._stencilState.stencilTest=a},dt.prototype.getStencilMask=function(){return this._stencilState.stencilMask},dt.prototype.setStencilMask=function(a){this._stencilState.stencilMask=a},dt.prototype.getStencilFunction=function(){return this._stencilState.stencilFunc},dt.prototype.getStencilFunctionReference=function(){return this._stencilState.stencilFuncRef},dt.prototype.getStencilFunctionMask=function(){return this._stencilState.stencilFuncMask},dt.prototype.setStencilFunction=function(a){this._stencilState.stencilFunc=a},dt.prototype.setStencilFunctionReference=function(a){this._stencilState.stencilFuncRef=a},dt.prototype.setStencilFunctionMask=function(a){this._stencilState.stencilFuncMask=a},dt.prototype.getStencilOperationFail=function(){return this._stencilState.stencilOpStencilFail},dt.prototype.getStencilOperationDepthFail=function(){return this._stencilState.stencilOpDepthFail},dt.prototype.getStencilOperationPass=function(){return this._stencilState.stencilOpStencilDepthPass},dt.prototype.setStencilOperationFail=function(a){this._stencilState.stencilOpStencilFail=a},dt.prototype.setStencilOperationDepthFail=function(a){this._stencilState.stencilOpDepthFail=a},dt.prototype.setStencilOperationPass=function(a){this._stencilState.stencilOpStencilDepthPass=a},dt.prototype.cacheStencilState=function(){this._cachedStencilBuffer=this.getStencilBuffer(),this._cachedStencilFunction=this.getStencilFunction(),this._cachedStencilMask=this.getStencilMask(),this._cachedStencilOperationPass=this.getStencilOperationPass(),this._cachedStencilOperationFail=this.getStencilOperationFail(),this._cachedStencilOperationDepthFail=this.getStencilOperationDepthFail(),this._cachedStencilReference=this.getStencilFunctionReference()},dt.prototype.restoreStencilState=function(){this.setStencilFunction(this._cachedStencilFunction),this.setStencilMask(this._cachedStencilMask),this.setStencilBuffer(this._cachedStencilBuffer),this.setStencilOperationPass(this._cachedStencilOperationPass),this.setStencilOperationFail(this._cachedStencilOperationFail),this.setStencilOperationDepthFail(this._cachedStencilOperationDepthFail),this.setStencilFunctionReference(this._cachedStencilReference)},dt.prototype.setAlphaConstants=function(a,e,t,i){this._alphaState.setAlphaBlendConstants(a,e,t,i)},dt.prototype.getAlphaMode=function(){return this._alphaMode},dt.prototype.getAlphaEquation=function(){return this._alphaEquation},dt.prototype.getRenderPassNames=function(){return this._renderPassNames},dt.prototype.getCurrentRenderPassName=function(){return this._renderPassNames[this.currentRenderPassId]},dt.prototype.createRenderPassId=function(a){const e=++dt._RenderPassIdCounter;return this._renderPassNames[e]=a??"NONAME",e},dt.prototype.releaseRenderPassId=function(a){this._renderPassNames[a]=void 0;for(let e=0;e<this.scenes.length;++e){const t=this.scenes[e];for(let i=0;i<t.meshes.length;++i){const s=t.meshes[i];if(s.subMeshes)for(let r=0;r<s.subMeshes.length;++r)s.subMeshes[r]._removeDrawWrapper(a)}}};function IRe(a){!a||!a.setAttribute||(a.setAttribute("touch-action","none"),a.style.touchAction="none",a.style.webkitTapHighlightColor="transparent")}function NZ(a,e,t){a._onCanvasFocus=()=>{a.onCanvasFocusObservable.notifyObservers(a)},a._onCanvasBlur=()=>{a.onCanvasBlurObservable.notifyObservers(a)},a._onCanvasContextMenu=s=>{a.disableContextMenu&&s.preventDefault()},e.addEventListener("focus",a._onCanvasFocus),e.addEventListener("blur",a._onCanvasBlur),e.addEventListener("contextmenu",a._onCanvasContextMenu),a._onBlur=()=>{a.disablePerformanceMonitorInBackground&&a.performanceMonitor.disable(),a._windowIsBackground=!0},a._onFocus=()=>{a.disablePerformanceMonitorInBackground&&a.performanceMonitor.enable(),a._windowIsBackground=!1},a._onCanvasPointerOut=s=>{document.elementFromPoint(s.clientX,s.clientY)!==e&&a.onCanvasPointerOutObservable.notifyObservers(s)};const i=a.getHostWindow();i&&typeof i.addEventListener=="function"&&(i.addEventListener("blur",a._onBlur),i.addEventListener("focus",a._onFocus)),e.addEventListener("pointerout",a._onCanvasPointerOut),t.doNotHandleTouchAction||IRe(e),!dt.audioEngine&&t.audioEngine&&dt.AudioEngineFactory&&(dt.audioEngine=dt.AudioEngineFactory(a.getRenderingCanvas(),a.getAudioContext(),a.getAudioDestination())),H6()&&(a._onFullscreenChange=()=>{a.isFullscreen=!!document.fullscreenElement,a.isFullscreen&&a._pointerLockRequested&&e&&EG(e)},document.addEventListener("fullscreenchange",a._onFullscreenChange,!1),document.addEventListener("webkitfullscreenchange",a._onFullscreenChange,!1),a._onPointerLockChange=()=>{a.isPointerLock=document.pointerLockElement===e},document.addEventListener("pointerlockchange",a._onPointerLockChange,!1),document.addEventListener("webkitpointerlockchange",a._onPointerLockChange,!1)),a.enableOfflineSupport=dt.OfflineProviderFactory!==void 0,a._deterministicLockstep=!!t.deterministicLockstep,a._lockstepMaxSteps=t.lockstepMaxSteps||0,a._timeStep=t.timeStep||1/60}function wZ(a,e){ei.Instances.length===1&&dt.audioEngine&&(dt.audioEngine.dispose(),dt.audioEngine=null);const t=a.getHostWindow();t&&typeof t.removeEventListener=="function"&&(t.removeEventListener("blur",a._onBlur),t.removeEventListener("focus",a._onFocus)),e&&(e.removeEventListener("focus",a._onCanvasFocus),e.removeEventListener("blur",a._onCanvasBlur),e.removeEventListener("pointerout",a._onCanvasPointerOut),e.removeEventListener("contextmenu",a._onCanvasContextMenu)),H6()&&(document.removeEventListener("fullscreenchange",a._onFullscreenChange),document.removeEventListener("mozfullscreenchange",a._onFullscreenChange),document.removeEventListener("webkitfullscreenchange",a._onFullscreenChange),document.removeEventListener("msfullscreenchange",a._onFullscreenChange),document.removeEventListener("pointerlockchange",a._onPointerLockChange),document.removeEventListener("mspointerlockchange",a._onPointerLockChange),document.removeEventListener("mozpointerlockchange",a._onPointerLockChange),document.removeEventListener("webkitpointerlockchange",a._onPointerLockChange))}function BZ(a){const e=document.createElement("span");e.textContent="Hg",e.style.font=a;const t=document.createElement("div");t.style.display="inline-block",t.style.width="1px",t.style.height="0px",t.style.verticalAlign="bottom";const i=document.createElement("div");i.style.whiteSpace="nowrap",i.appendChild(e),i.appendChild(t),document.body.appendChild(i);let s=0,r=0;try{r=t.getBoundingClientRect().top-e.getBoundingClientRect().top,t.style.verticalAlign="baseline",s=t.getBoundingClientRect().top-e.getBoundingClientRect().top}finally{document.body.removeChild(i)}return{ascent:s,height:r,descent:r-s}}function zZ(a,e,t){return new Promise((s,r)=>{const n=new Image;n.onload=()=>{n.decode().then(()=>{a.createImageBitmap(n,t).then(o=>{s(o)})})},n.onerror=()=>{r(`Error loading image ${n.src}`)},n.src=e})}function FZ(a,e,t,i){const r=a.createCanvas(t,i).getContext("2d");if(!r)throw new Error("Unable to get 2d context for resizeImageBitmap");return r.drawImage(e,0,0),r.getImageData(0,0,t,i).data}function kZ(a){const e=a.requestFullscreen||a.webkitRequestFullscreen;e&&e.call(a)}function UZ(){const a=document;document.exitFullscreen?document.exitFullscreen():a.webkitCancelFullScreen&&a.webkitCancelFullScreen()}function EG(a){if(a.requestPointerLock){const e=a.requestPointerLock();e instanceof Promise?e.then(()=>{a.focus()}).catch(()=>{}):a.focus()}}function jZ(){document.exitPointerLock&&document.exitPointerLock()}class Qt extends Zi{static get NpmPackage(){return dt.NpmPackage}static get Version(){return dt.Version}static get Instances(){return ei.Instances}static get LastCreatedEngine(){return ei.LastCreatedEngine}static get LastCreatedScene(){return ei.LastCreatedScene}static DefaultLoadingScreenFactory(e){return dt.DefaultLoadingScreenFactory(e)}get _supportsHardwareTextureRescaling(){return!!Qt._RescalePostProcessFactory}_measureFps(){this._performanceMonitor.sampleFrame(),this._fps=this._performanceMonitor.averageFPS,this._deltaTime=this._performanceMonitor.instantaneousFrameTime||0}get performanceMonitor(){return this._performanceMonitor}constructor(e,t,i,s=!1){super(e,t,i,s),this.customAnimationFrameRequester=null,this._performanceMonitor=new PZ,this._drawCalls=new wo,e&&(this._features.supportRenderPasses=!0,i=this._creationOptions)}_initGLContext(){super._initGLContext(),this._rescalePostProcess=null}_sharedInit(e){super._sharedInit(e),NZ(this,e,this._creationOptions)}resizeImageBitmap(e,t,i){return FZ(this,e,t,i)}_createImageBitmapFromSource(e,t){return zZ(this,e,t)}switchFullscreen(e){this.isFullscreen?this.exitFullscreen():this.enterFullscreen(e)}enterFullscreen(e){this.isFullscreen||(this._pointerLockRequested=e,this._renderingCanvas&&kZ(this._renderingCanvas))}exitFullscreen(){this.isFullscreen&&UZ()}setDitheringState(e){e?this._gl.enable(this._gl.DITHER):this._gl.disable(this._gl.DITHER)}setRasterizerState(e){e?this._gl.disable(this._gl.RASTERIZER_DISCARD):this._gl.enable(this._gl.RASTERIZER_DISCARD)}setDirectViewport(e,t,i,s){const r=this._cachedViewport;return this._cachedViewport=null,this._viewport(e,t,i,s),r}scissorClear(e,t,i,s,r){this.enableScissor(e,t,i,s),this.clear(r,!0,!0,!0),this.disableScissor()}enableScissor(e,t,i,s){const r=this._gl;r.enable(r.SCISSOR_TEST),r.scissor(e,t,i,s)}disableScissor(){const e=this._gl;e.disable(e.SCISSOR_TEST)}_loadFileAsync(e,t,i){return new Promise((s,r)=>{this._loadFile(e,n=>{s(n)},void 0,t,i,(n,o)=>{r(o)})})}getVertexShaderSource(e){const t=this._gl.getAttachedShaders(e);return t?this._gl.getShaderSource(t[0]):null}getFragmentShaderSource(e){const t=this._gl.getAttachedShaders(e);return t?this._gl.getShaderSource(t[1]):null}set framebufferDimensionsObject(e){this._framebufferDimensionsObject=e,this._framebufferDimensionsObject&&this.onResizeObservable.notifyObservers(this)}_rebuildBuffers(){for(const e of this.scenes)e.resetCachedMaterial(),e._rebuildGeometries();for(const e of this._virtualScenes)e.resetCachedMaterial(),e._rebuildGeometries();super._rebuildBuffers()}getFontOffset(e){return BZ(e)}_cancelFrame(){if(this.customAnimationFrameRequester){if(this._frameHandler!==0){this._frameHandler=0;const{cancelAnimationFrame:e}=this.customAnimationFrameRequester;e&&e(this.customAnimationFrameRequester.requestID)}}else super._cancelFrame()}_renderLoop(e){this._processFrame(e),this._activeRenderLoops.length>0&&this._frameHandler===0&&(this.customAnimationFrameRequester?(this.customAnimationFrameRequester.requestID=this._queueNewFrame(this.customAnimationFrameRequester.renderFunction||this._boundRenderFunction,this.customAnimationFrameRequester),this._frameHandler=this.customAnimationFrameRequester.requestID):this._frameHandler=this._queueNewFrame(this._boundRenderFunction,this.getHostWindow()))}enterPointerlock(){this._renderingCanvas&&EG(this._renderingCanvas)}exitPointerlock(){jZ()}beginFrame(){this._measureFps(),super.beginFrame()}_deletePipelineContext(e){const t=e;t&&t.program&&t.transformFeedback&&(this.deleteTransformFeedback(t.transformFeedback),t.transformFeedback=null),super._deletePipelineContext(e)}createShaderProgram(e,t,i,s,r,n=null){r=r||this._gl,this.onBeforeShaderCompilationObservable.notifyObservers(this);const o=super.createShaderProgram(e,t,i,s,r,n);return this.onAfterShaderCompilationObservable.notifyObservers(this),o}_createShaderProgram(e,t,i,s,r=null){const n=s.createProgram();if(e.program=n,!n)throw new Error("Unable to create program");if(s.attachShader(n,t),s.attachShader(n,i),this.webGLVersion>1&&r){const o=this.createTransformFeedback();this.bindTransformFeedback(o),this.setTranformFeedbackVaryings(n,r),e.transformFeedback=o}return s.linkProgram(n),this.webGLVersion>1&&r&&this.bindTransformFeedback(null),e.context=s,e.vertexShader=t,e.fragmentShader=i,e.isParallelCompiled||this._finalizePipelineContext(e),n}_releaseTexture(e){super._releaseTexture(e)}_releaseRenderTargetWrapper(e){super._releaseRenderTargetWrapper(e),this.scenes.forEach(t=>{t.postProcesses.forEach(i=>{i._outputTexture===e&&(i._outputTexture=null)}),t.cameras.forEach(i=>{i._postProcesses.forEach(s=>{s&&s._outputTexture===e&&(s._outputTexture=null)})})})}_rescaleTexture(e,t,i,s,r){this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MAG_FILTER,this._gl.LINEAR),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MIN_FILTER,this._gl.LINEAR),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_S,this._gl.CLAMP_TO_EDGE),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_T,this._gl.CLAMP_TO_EDGE);const n=this.createRenderTargetTexture({width:t.width,height:t.height},{generateMipMaps:!1,type:0,samplingMode:2,generateDepthBuffer:!1,generateStencilBuffer:!1});if(!this._rescalePostProcess&&Qt._RescalePostProcessFactory&&(this._rescalePostProcess=Qt._RescalePostProcessFactory(this)),this._rescalePostProcess){this._rescalePostProcess.externalTextureSamplerBinding=!0;const o=()=>{this._rescalePostProcess.onApply=function(u){u._bindTexture("textureSampler",e)};let c=i;c||(c=this.scenes[this.scenes.length-1]),c.postProcessManager.directRender([this._rescalePostProcess],n,!0),this._bindTextureDirectly(this._gl.TEXTURE_2D,t,!0),this._gl.copyTexImage2D(this._gl.TEXTURE_2D,0,s,0,0,t.width,t.height,0),this.unBindFramebuffer(n),n.dispose(),r&&r()},l=this._rescalePostProcess.getEffect();l?l.executeWhenCompiled(o):this._rescalePostProcess.onEffectCreatedObservable.addOnce(c=>{c.executeWhenCompiled(o)})}}wrapWebGLTexture(e,t=!1,i=3,s=0,r=0){const n=new J9(e,this._gl),o=new gr(this,0,!0);return o._hardwareTexture=n,o.baseWidth=s,o.baseHeight=r,o.width=s,o.height=r,o.isReady=!0,o.useMipMaps=t,this.updateTextureSamplingMode(i,o),o}_uploadImageToTexture(e,t,i=0,s=0){const r=this._gl,n=this._getWebGLTextureType(e.type),o=this._getInternalFormat(e.format),l=this._getRGBABufferInternalSizedFormat(e.type,o),c=e.isCube?r.TEXTURE_CUBE_MAP:r.TEXTURE_2D;this._bindTextureDirectly(c,e,!0),this._unpackFlipY(e.invertY);let u=r.TEXTURE_2D;e.isCube&&(u=r.TEXTURE_CUBE_MAP_POSITIVE_X+i),r.texImage2D(u,s,l,o,n,t),this._bindTextureDirectly(c,null,!0)}updateTextureComparisonFunction(e,t){if(this.webGLVersion===1){de.Error("WebGL 1 does not support texture comparison.");return}const i=this._gl;e.isCube?(this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,e,!0),t===0?(i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_COMPARE_FUNC,515),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_COMPARE_MODE,i.NONE)):(i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_COMPARE_FUNC,t),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null)):(this._bindTextureDirectly(this._gl.TEXTURE_2D,e,!0),t===0?(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_COMPARE_FUNC,515),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_COMPARE_MODE,i.NONE)):(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_COMPARE_FUNC,t),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_2D,null)),e._comparisonFunction=t}createInstancesBuffer(e){const t=this._gl.createBuffer();if(!t)throw new Error("Unable to create instance buffer");const i=new MP(t);return i.capacity=e,this.bindArrayBuffer(i),this._gl.bufferData(this._gl.ARRAY_BUFFER,e,this._gl.DYNAMIC_DRAW),i.references=1,i}deleteInstancesBuffer(e){this._gl.deleteBuffer(e)}_clientWaitAsync(e,t=0,i=10){const s=this._gl;return new Promise((r,n)=>{my(()=>{const o=s.clientWaitSync(e,t,0);if(o==s.WAIT_FAILED)throw new Error("clientWaitSync failed");return o!=s.TIMEOUT_EXPIRED},r,n,i)})}_readPixelsAsync(e,t,i,s,r,n,o){if(this._webGLVersion<2)throw new Error("_readPixelsAsync only work on WebGL2+");const l=this._gl,c=l.createBuffer();l.bindBuffer(l.PIXEL_PACK_BUFFER,c),l.bufferData(l.PIXEL_PACK_BUFFER,o.byteLength,l.STREAM_READ),l.readPixels(e,t,i,s,r,n,0),l.bindBuffer(l.PIXEL_PACK_BUFFER,null);const u=l.fenceSync(l.SYNC_GPU_COMMANDS_COMPLETE,0);return u?(l.flush(),this._clientWaitAsync(u,0,10).then(()=>(l.deleteSync(u),l.bindBuffer(l.PIXEL_PACK_BUFFER,c),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,o),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),l.deleteBuffer(c),o))):null}dispose(){this.hideLoadingUI(),this._rescalePostProcess&&this._rescalePostProcess.dispose(),wZ(this,this._renderingCanvas),super.dispose()}}Qt.ALPHA_DISABLE=0,Qt.ALPHA_ADD=1,Qt.ALPHA_COMBINE=2,Qt.ALPHA_SUBTRACT=3,Qt.ALPHA_MULTIPLY=4,Qt.ALPHA_MAXIMIZED=5,Qt.ALPHA_ONEONE=6,Qt.ALPHA_PREMULTIPLIED=7,Qt.ALPHA_PREMULTIPLIED_PORTERDUFF=8,Qt.ALPHA_INTERPOLATE=9,Qt.ALPHA_SCREENMODE=10,Qt.DELAYLOADSTATE_NONE=0,Qt.DELAYLOADSTATE_LOADED=1,Qt.DELAYLOADSTATE_LOADING=2,Qt.DELAYLOADSTATE_NOTLOADED=4,Qt.NEVER=512,Qt.ALWAYS=519,Qt.LESS=513,Qt.EQUAL=514,Qt.LEQUAL=515,Qt.GREATER=516,Qt.GEQUAL=518,Qt.NOTEQUAL=517,Qt.KEEP=7680,Qt.REPLACE=7681,Qt.INCR=7682,Qt.DECR=7683,Qt.INVERT=5386,Qt.INCR_WRAP=34055,Qt.DECR_WRAP=34056,Qt.TEXTURE_CLAMP_ADDRESSMODE=0,Qt.TEXTURE_WRAP_ADDRESSMODE=1,Qt.TEXTURE_MIRROR_ADDRESSMODE=2,Qt.TEXTUREFORMAT_ALPHA=0,Qt.TEXTUREFORMAT_LUMINANCE=1,Qt.TEXTUREFORMAT_LUMINANCE_ALPHA=2,Qt.TEXTUREFORMAT_RGB=4,Qt.TEXTUREFORMAT_RGBA=5,Qt.TEXTUREFORMAT_RED=6,Qt.TEXTUREFORMAT_R=6,Qt.TEXTUREFORMAT_R16_UNORM=33322,Qt.TEXTUREFORMAT_RG16_UNORM=33324,Qt.TEXTUREFORMAT_RGB16_UNORM=32852,Qt.TEXTUREFORMAT_RGBA16_UNORM=32859,Qt.TEXTUREFORMAT_R16_SNORM=36760,Qt.TEXTUREFORMAT_RG16_SNORM=36761,Qt.TEXTUREFORMAT_RGB16_SNORM=36762,Qt.TEXTUREFORMAT_RGBA16_SNORM=36763,Qt.TEXTUREFORMAT_RG=7,Qt.TEXTUREFORMAT_RED_INTEGER=8,Qt.TEXTUREFORMAT_R_INTEGER=8,Qt.TEXTUREFORMAT_RG_INTEGER=9,Qt.TEXTUREFORMAT_RGB_INTEGER=10,Qt.TEXTUREFORMAT_RGBA_INTEGER=11,Qt.TEXTURETYPE_UNSIGNED_BYTE=0,Qt.TEXTURETYPE_UNSIGNED_INT=0,Qt.TEXTURETYPE_FLOAT=1,Qt.TEXTURETYPE_HALF_FLOAT=2,Qt.TEXTURETYPE_BYTE=3,Qt.TEXTURETYPE_SHORT=4,Qt.TEXTURETYPE_UNSIGNED_SHORT=5,Qt.TEXTURETYPE_INT=6,Qt.TEXTURETYPE_UNSIGNED_INTEGER=7,Qt.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4=8,Qt.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1=9,Qt.TEXTURETYPE_UNSIGNED_SHORT_5_6_5=10,Qt.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV=11,Qt.TEXTURETYPE_UNSIGNED_INT_24_8=12,Qt.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV=13,Qt.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV=14,Qt.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV=15,Qt.TEXTURE_NEAREST_SAMPLINGMODE=1,Qt.TEXTURE_BILINEAR_SAMPLINGMODE=2,Qt.TEXTURE_TRILINEAR_SAMPLINGMODE=3,Qt.TEXTURE_NEAREST_NEAREST_MIPLINEAR=8,Qt.TEXTURE_LINEAR_LINEAR_MIPNEAREST=11,Qt.TEXTURE_LINEAR_LINEAR_MIPLINEAR=3,Qt.TEXTURE_NEAREST_NEAREST_MIPNEAREST=4,Qt.TEXTURE_NEAREST_LINEAR_MIPNEAREST=5,Qt.TEXTURE_NEAREST_LINEAR_MIPLINEAR=6,Qt.TEXTURE_NEAREST_LINEAR=7,Qt.TEXTURE_NEAREST_NEAREST=1,Qt.TEXTURE_LINEAR_NEAREST_MIPNEAREST=9,Qt.TEXTURE_LINEAR_NEAREST_MIPLINEAR=10,Qt.TEXTURE_LINEAR_LINEAR=2,Qt.TEXTURE_LINEAR_NEAREST=12,Qt.TEXTURE_EXPLICIT_MODE=0,Qt.TEXTURE_SPHERICAL_MODE=1,Qt.TEXTURE_PLANAR_MODE=2,Qt.TEXTURE_CUBIC_MODE=3,Qt.TEXTURE_PROJECTION_MODE=4,Qt.TEXTURE_SKYBOX_MODE=5,Qt.TEXTURE_INVCUBIC_MODE=6,Qt.TEXTURE_EQUIRECTANGULAR_MODE=7,Qt.TEXTURE_FIXED_EQUIRECTANGULAR_MODE=8,Qt.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE=9,Qt.SCALEMODE_FLOOR=1,Qt.SCALEMODE_NEAREST=2,Qt.SCALEMODE_CEILING=3;class sb extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>_z)]))):t.push(Promise.all([Promise.resolve().then(()=>UO)])),super._gatherImports(e,t)}constructor(e,t=null,i){super({...i,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:sb.FragmentUrl})}}sb.FragmentUrl="pass";class $9 extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>xXe)]))):t.push(Promise.all([Promise.resolve().then(()=>CXe)])),super._gatherImports(e,t)}constructor(e,t=null,i){super({...i,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:$9.FragmentUrl,defines:"#define POSITIVEX"}),this._face=0}get face(){return this._face}set face(e){if(!(e<0||e>5))switch(this._face=e,this._face){case 0:this.updateEffect("#define POSITIVEX");break;case 1:this.updateEffect("#define NEGATIVEX");break;case 2:this.updateEffect("#define POSITIVEY");break;case 3:this.updateEffect("#define NEGATIVEY");break;case 4:this.updateEffect("#define POSITIVEZ");break;case 5:this.updateEffect("#define NEGATIVEZ");break}}}$9.FragmentUrl="passCube";class q6 extends Mi{getClassName(){return"PassPostProcess"}constructor(e,t,i=null,s,r,n,o=0,l=!1){const c={size:typeof t=="number"?t:void 0,camera:i,samplingMode:s,engine:r,reusable:n,textureType:o,blockCompilation:l,...t};super(e,sb.FragmentUrl,{effectWrapper:typeof t=="number"||!t.effectWrapper?new sb(e,r,c):void 0,...c})}static _Parse(e,t,i,s){return It.Parse(()=>new q6(e.name,e.options,t,e.renderTargetSamplingMode,e._engine,e.reusable),e,i,s)}}ve("BABYLON.PassPostProcess",q6);class TG extends Mi{get face(){return this._effectWrapper.face}set face(e){this._effectWrapper.face=e}getClassName(){return"PassCubePostProcess"}constructor(e,t,i=null,s,r,n,o=0,l=!1){const c={size:typeof t=="number"?t:void 0,camera:i,samplingMode:s,engine:r,reusable:n,textureType:o,blockCompilation:l,...t};super(e,sb.FragmentUrl,{effectWrapper:typeof t=="number"||!t.effectWrapper?new $9(e,r,c):void 0,...c})}static _Parse(e,t,i,s){return It.Parse(()=>new TG(e.name,e.options,t,e.renderTargetSamplingMode,e._engine,e.reusable),e,i,s)}}F([G()],TG.prototype,"face",null),dt._RescalePostProcessFactory=a=>new q6("rescale",1,null,2,a,!1,0);function gde(a,e,t,i=!0){const s=a.getScene(),r=s.getEngine(),n=new Ir("resized"+a.name,{width:e,height:t},s,!a.noMipmap,!0,a._texture.type,!1,a.samplingMode,!1);n.wrapU=a.wrapU,n.wrapV=a.wrapV,n.uOffset=a.uOffset,n.vOffset=a.vOffset,n.uScale=a.uScale,n.vScale=a.vScale,n.uAng=a.uAng,n.vAng=a.vAng,n.wAng=a.wAng,n.coordinatesIndex=a.coordinatesIndex,n.level=a.level,n.anisotropicFilteringLevel=a.anisotropicFilteringLevel,n._texture.isReady=!1,a.wrapU=be.CLAMP_ADDRESSMODE,a.wrapV=be.CLAMP_ADDRESSMODE;const o=new q6("pass",1,null,i?be.BILINEAR_SAMPLINGMODE:be.NEAREST_SAMPLINGMODE,r,!1,0);return o.externalTextureSamplerBinding=!0,o.onEffectCreatedObservable.addOnce(l=>{l.executeWhenCompiled(()=>{o.onApply=function(u){u.setTexture("textureSampler",a)};const c=n.renderTarget;c&&(s.postProcessManager.directRender([o],c),r.unBindFramebuffer(c),n.disposeFramebufferObjects(),o.dispose(),n.getInternalTexture().isReady=!0)})}),n}function LG(a,e,t,i,s,r,n,o){const l=e.getEngine();return e.isReady=!1,s=s??e.samplingMode,i=i??e.type,r=r??e.format,n=n??e.width,o=o??e.height,i===-1&&(i=0),new Promise(c=>{const u=new Mi("postprocess",a,null,null,1,null,s,l,!1,void 0,i,void 0,null,!1,r);u.externalTextureSamplerBinding=!0;const f=l.createRenderTargetTexture({width:n,height:o},{generateDepthBuffer:!1,generateMipMaps:!1,generateStencilBuffer:!1,samplingMode:s,type:i,format:r});u.onEffectCreatedObservable.addOnce(p=>{p.executeWhenCompiled(()=>{u.onApply=m=>{m._bindTexture("textureSampler",e),m.setFloat2("scale",1,1)},t.postProcessManager.directRender([u],f,!0),l.restoreDefaultFramebuffer(),l._releaseTexture(e),u&&u.dispose(),f._swapAndDie(e),e.type=i,e.format=5,e.isReady=!0,c(e)})})})}let IG,_de;function H1(a){IG||(IG=new Float32Array(1),_de=new Int32Array(IG.buffer)),IG[0]=a;const e=_de[0];let t=e>>16&32768,i=e>>12&2047;const s=e>>23&255;return s<103?t:s>142?(t|=31744,t|=(s==255?0:1)&&e&8388607,t):s<113?(i|=2048,t|=(i>>114-s)+(i>>113-s&1),t):(t|=s-112<<10|i>>1,t+=i&1,t)}function Zv(a){const e=(a&32768)>>15,t=(a&31744)>>10,i=a&1023;return t===0?(e?-1:1)*Math.pow(2,-14)*(i/Math.pow(2,10)):t==31?i?NaN:(e?-1:1)*(1/0):(e?-1:1)*Math.pow(2,t-15)*(1+i/Math.pow(2,10))}const PRe=async(a,e,t,i,s)=>{const r=a.getScene(),n=r.getEngine();n.isWebGPU?a.isCube?await Promise.resolve().then(()=>THe):await Promise.resolve().then(()=>LHe):a.isCube?await Promise.resolve().then(()=>MHe):await Promise.resolve().then(()=>EHe);let o;if(!a.isCube)o=new Mi("lod","lod",{uniforms:["lod","gamma"],samplingMode:be.NEAREST_NEAREST_MIPNEAREST,engine:n,shaderLanguage:n.isWebGPU?1:0});else{const u=["#define POSITIVEX","#define NEGATIVEX","#define POSITIVEY","#define NEGATIVEY","#define POSITIVEZ","#define NEGATIVEZ"];o=new Mi("lodCube","lodCube",{uniforms:["lod","gamma"],samplingMode:be.NEAREST_NEAREST_MIPNEAREST,engine:n,defines:u[i],shaderLanguage:n.isWebGPU?1:0})}await new Promise(u=>{o.onEffectCreatedObservable.addOnce(f=>{f.executeWhenCompiled(()=>{u(0)})})});const l=new Ir("temp",{width:e,height:t},r,!1);o.onApply=function(u){u.setTexture("textureSampler",a),u.setFloat("lod",s),u.setInt("gamma",a.gammaSpace?1:0)};const c=a.getInternalTexture();try{if(l.renderTarget&&c){const u=c.samplingMode;s!==0?a.updateSamplingMode(be.NEAREST_NEAREST_MIPNEAREST):a.updateSamplingMode(be.NEAREST_NEAREST),r.postProcessManager.directRender([o],l.renderTarget,!0),a.updateSamplingMode(u);const f=await n.readPixels(0,0,e,t),p=new Uint8Array(f.buffer,0,f.byteLength);return n.unBindFramebuffer(l.renderTarget),p}else throw Error("Render to texture failed.")}finally{l.dispose(),o.dispose()}};async function vde(a,e,t,i=0,s=0){return!a.isReady()&&a._texture&&await new Promise((r,n)=>{if(a._texture===null){n(0);return}a._texture.onLoadedObservable.addOnce(()=>{r(0)})}),await PRe(a,e,t,i,s)}const Bw={CreateResizedCopy:gde,ApplyPostProcess:LG,ToHalfFloat:H1,FromHalfFloat:Zv,GetTextureDataAsync:vde};class PG{static ExpandRGBDTexture(e){const t=e._texture;if(!t||!e.isRGBD)return;const i=t.getEngine(),s=i.getCaps(),r=t.isReady;let n=!1;s.textureHalfFloatRender&&s.textureHalfFloatLinearFiltering?(n=!0,t.type=2):s.textureFloatRender&&s.textureFloatLinearFiltering&&(n=!0,t.type=1),n&&(t.isReady=!1,t._isRGBD=!1,t.invertY=!1);const o=async()=>{const l=i.isWebGPU,c=l?1:0;t.isReady=!1,l?await Promise.resolve().then(()=>ibe):await Promise.resolve().then(()=>Qxe);const u=new Mi("rgbdDecode","rgbdDecode",null,null,1,null,3,i,!1,void 0,t.type,void 0,null,!1,void 0,c);u.externalTextureSamplerBinding=!0;const f=i.createRenderTargetTexture(t.width,{generateDepthBuffer:!1,generateMipMaps:!1,generateStencilBuffer:!1,samplingMode:t.samplingMode,type:t.type,format:5});u.onEffectCreatedObservable.addOnce(p=>{p.executeWhenCompiled(()=>{u.onApply=m=>{m._bindTexture("textureSampler",t),m.setFloat2("scale",1,1)},e.getScene().postProcessManager.directRender([u],f,!0),i.restoreDefaultFramebuffer(),i._releaseTexture(t),u&&u.dispose(),f._swapAndDie(t),t.isReady=!0})})};n&&(r?o():e.onLoadObservable.addOnce(o))}static async EncodeTextureToRGBD(e,t,i=0){return t.getEngine().isWebGPU?await Promise.resolve().then(()=>VHe):await Promise.resolve().then(()=>jHe),LG("rgbdEncode",e,t,i,1,5)}}const ORe="data:image/png;base64,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";let RRe=0;const zw=a=>{if(!a.environmentBRDFTexture){const e=a.useDelayedTextureLoading;a.useDelayedTextureLoading=!1;const t=a._blockEntityCollection;a._blockEntityCollection=!1;const i=be.CreateFromBase64String(ORe,"EnvironmentBRDFTexture"+RRe++,a,!0,!1,be.BILINEAR_SAMPLINGMODE);a._blockEntityCollection=t;const s=a.getEngine().getLoadedTexturesCache(),r=s.indexOf(i.getInternalTexture());r!==-1&&s.splice(r,1),i.isRGBD=!0,i.wrapU=be.CLAMP_ADDRESSMODE,i.wrapV=be.CLAMP_ADDRESSMODE,a.environmentBRDFTexture=i,a.useDelayedTextureLoading=e,PG.ExpandRGBDTexture(i);const n=a.getEngine().onContextRestoredObservable.add(()=>{i.isRGBD=!0;const o=a.onBeforeRenderObservable.add(()=>{i.isReady()&&(a.onBeforeRenderObservable.remove(o),PG.ExpandRGBDTexture(i))})});a.onDisposeObservable.add(()=>{a.getEngine().onContextRestoredObservable.remove(n)})}return a.environmentBRDFTexture},DRe={GetEnvironmentBRDFTexture:zw};class Ade extends Br{constructor(){super(...arguments),this.BRDF_V_HEIGHT_CORRELATED=!1,this.MS_BRDF_ENERGY_CONSERVATION=!1,this.SPHERICAL_HARMONICS=!1,this.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION=!1,this.MIX_IBL_RADIANCE_WITH_IRRADIANCE=!0}}class Jl extends Uu{_markAllSubMeshesAsMiscDirty(){this._internalMarkAllSubMeshesAsMiscDirty()}isCompatible(){return!0}constructor(e,t=!0){super(e,"PBRBRDF",90,new Ade,t),this._useEnergyConservation=Jl.DEFAULT_USE_ENERGY_CONSERVATION,this.useEnergyConservation=Jl.DEFAULT_USE_ENERGY_CONSERVATION,this._useSmithVisibilityHeightCorrelated=Jl.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED,this.useSmithVisibilityHeightCorrelated=Jl.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED,this._useSphericalHarmonics=Jl.DEFAULT_USE_SPHERICAL_HARMONICS,this.useSphericalHarmonics=Jl.DEFAULT_USE_SPHERICAL_HARMONICS,this._useSpecularGlossinessInputEnergyConservation=Jl.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION,this.useSpecularGlossinessInputEnergyConservation=Jl.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION,this._mixIblRadianceWithIrradiance=Jl.DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE,this.mixIblRadianceWithIrradiance=Jl.DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE,this._internalMarkAllSubMeshesAsMiscDirty=e._dirtyCallbacks[16],this._enable(!0)}prepareDefines(e){e.BRDF_V_HEIGHT_CORRELATED=this._useSmithVisibilityHeightCorrelated,e.MS_BRDF_ENERGY_CONSERVATION=this._useEnergyConservation&&this._useSmithVisibilityHeightCorrelated,e.SPHERICAL_HARMONICS=this._useSphericalHarmonics,e.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION=this._useSpecularGlossinessInputEnergyConservation,e.MIX_IBL_RADIANCE_WITH_IRRADIANCE=this._mixIblRadianceWithIrradiance}getClassName(){return"PBRBRDFConfiguration"}}Jl.DEFAULT_USE_ENERGY_CONSERVATION=!0,Jl.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED=!0,Jl.DEFAULT_USE_SPHERICAL_HARMONICS=!0,Jl.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION=!0,Jl.DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE=!0,F([G(),et("_markAllSubMeshesAsMiscDirty")],Jl.prototype,"useEnergyConservation",void 0),F([G(),et("_markAllSubMeshesAsMiscDirty")],Jl.prototype,"useSmithVisibilityHeightCorrelated",void 0),F([G(),et("_markAllSubMeshesAsMiscDirty")],Jl.prototype,"useSphericalHarmonics",void 0),F([G(),et("_markAllSubMeshesAsMiscDirty")],Jl.prototype,"useSpecularGlossinessInputEnergyConservation",void 0),F([G(),et("_markAllSubMeshesAsMiscDirty")],Jl.prototype,"mixIblRadianceWithIrradiance",void 0);class LP{constructor(e,t,i,s){this.name=e,this.worldAxisForNormal=t,this.worldAxisForFileX=i,this.worldAxisForFileY=s}}class eL{static ConvertCubeMapTextureToSphericalPolynomial(e){var p;if(!e.isCube)return null;(p=e.getScene())==null||p.getEngine().flushFramebuffer();const t=e.getSize().width,i=e.readPixels(0,void 0,void 0,!1),s=e.readPixels(1,void 0,void 0,!1);let r,n;e.isRenderTarget?(r=e.readPixels(3,void 0,void 0,!1),n=e.readPixels(2,void 0,void 0,!1)):(r=e.readPixels(2,void 0,void 0,!1),n=e.readPixels(3,void 0,void 0,!1));const o=e.readPixels(4,void 0,void 0,!1),l=e.readPixels(5,void 0,void 0,!1),c=e.gammaSpace,u=5;let f=0;return(e.textureType==1||e.textureType==2)&&(f=1),new Promise(m=>{Promise.all([s,i,r,n,o,l]).then(([_,d,h,x,A,S])=>{const E={size:t,right:d,left:_,up:h,down:x,front:A,back:S,format:u,type:f,gammaSpace:c};m(this.ConvertCubeMapToSphericalPolynomial(E))})})}static _AreaElement(e,t){return Math.atan2(e*t,Math.sqrt(e*e+t*t+1))}static ConvertCubeMapToSphericalPolynomial(e){const t=new FT;let i=0;const s=2/e.size,r=s,n=.5*s,o=n-1;for(let p=0;p<6;p++){const m=this._FileFaces[p],_=e[m.name];let d=o;const h=e.format===5?4:3;for(let x=0;x<e.size;x++){let A=o;for(let S=0;S<e.size;S++){const E=m.worldAxisForFileX.scale(A).add(m.worldAxisForFileY.scale(d)).add(m.worldAxisForNormal);E.normalize();const b=this._AreaElement(A-n,d-n)-this._AreaElement(A-n,d+n)-this._AreaElement(A+n,d-n)+this._AreaElement(A+n,d+n);let M=_[x*e.size*h+S*h+0],T=_[x*e.size*h+S*h+1],O=_[x*e.size*h+S*h+2];isNaN(M)&&(M=0),isNaN(T)&&(T=0),isNaN(O)&&(O=0),e.type===0&&(M/=255,T/=255,O/=255),e.gammaSpace&&(M=Math.pow(Os(M),gw),T=Math.pow(Os(T),gw),O=Math.pow(Os(O),gw));const R=this.MAX_HDRI_VALUE;if(this.PRESERVE_CLAMPED_COLORS){const N=Math.max(M,T,O);if(N>R){const w=R/N;M*=w,T*=w,O*=w}}else M=Os(M,0,R),T=Os(T,0,R),O=Os(O,0,R);const I=new Pe(M,T,O);t.addLight(E,I,b),i+=b,A+=s}d+=r}}const f=4*Math.PI*6/6/i;return t.scaleInPlace(f),t.convertIncidentRadianceToIrradiance(),t.convertIrradianceToLambertianRadiance(),Xv.FromHarmonics(t)}}eL._FileFaces=[new LP("right",new P(1,0,0),new P(0,0,-1),new P(0,-1,0)),new LP("left",new P(-1,0,0),new P(0,0,1),new P(0,-1,0)),new LP("up",new P(0,1,0),new P(1,0,0),new P(0,0,1)),new LP("down",new P(0,-1,0),new P(1,0,0),new P(0,0,-1)),new LP("front",new P(0,0,1),new P(1,0,0),new P(0,-1,0)),new LP("back",new P(0,0,-1),new P(-1,0,0),new P(0,-1,0))],eL.MAX_HDRI_VALUE=4096,eL.PRESERVE_CLAMPED_COLORS=!1,vr.prototype.forceSphericalPolynomialsRecompute=function(){this._texture&&(this._texture._sphericalPolynomial=null,this._texture._sphericalPolynomialPromise=null,this._texture._sphericalPolynomialComputed=!1)},Object.defineProperty(vr.prototype,"sphericalPolynomial",{get:function(){if(this._texture){if(this._texture._sphericalPolynomial||this._texture._sphericalPolynomialComputed)return this._texture._sphericalPolynomial;if(this._texture.isReady)return this._texture._sphericalPolynomialPromise||(this._texture._sphericalPolynomialPromise=eL.ConvertCubeMapTextureToSphericalPolynomial(this),this._texture._sphericalPolynomialPromise===null?this._texture._sphericalPolynomialComputed=!0:this._texture._sphericalPolynomialPromise.then(a=>{this._texture._sphericalPolynomial=a,this._texture._sphericalPolynomialComputed=!0})),null}return null},set:function(a){this._texture&&(this._texture._sphericalPolynomial=a)},enumerable:!0,configurable:!0});class Cde extends Br{constructor(){super(...arguments),this.CLEARCOAT=!1,this.CLEARCOAT_DEFAULTIOR=!1,this.CLEARCOAT_TEXTURE=!1,this.CLEARCOAT_TEXTURE_ROUGHNESS=!1,this.CLEARCOAT_TEXTUREDIRECTUV=0,this.CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV=0,this.CLEARCOAT_BUMP=!1,this.CLEARCOAT_BUMPDIRECTUV=0,this.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE=!1,this.CLEARCOAT_REMAP_F0=!1,this.CLEARCOAT_TINT=!1,this.CLEARCOAT_TINT_TEXTURE=!1,this.CLEARCOAT_TINT_TEXTUREDIRECTUV=0,this.CLEARCOAT_TINT_GAMMATEXTURE=!1}}class $l extends Uu{_markAllSubMeshesAsTexturesDirty(){this._enable(this._isEnabled),this._internalMarkAllSubMeshesAsTexturesDirty()}isCompatible(){return!0}constructor(e,t=!0){super(e,"PBRClearCoat",100,new Cde,t),this._isEnabled=!1,this.isEnabled=!1,this.intensity=1,this.roughness=0,this._indexOfRefraction=$l._DefaultIndexOfRefraction,this.indexOfRefraction=$l._DefaultIndexOfRefraction,this._texture=null,this.texture=null,this._useRoughnessFromMainTexture=!0,this.useRoughnessFromMainTexture=!0,this._textureRoughness=null,this.textureRoughness=null,this._remapF0OnInterfaceChange=!0,this.remapF0OnInterfaceChange=!0,this._bumpTexture=null,this.bumpTexture=null,this._isTintEnabled=!1,this.isTintEnabled=!1,this.tintColor=Pe.White(),this.tintColorAtDistance=1,this.tintThickness=1,this._tintTexture=null,this.tintTexture=null,this._internalMarkAllSubMeshesAsTexturesDirty=e._dirtyCallbacks[1]}isReadyForSubMesh(e,t,i){if(!this._isEnabled)return!0;const s=this._material._disableBumpMap;return!(e._areTexturesDirty&&t.texturesEnabled&&(this._texture&&Pt.ClearCoatTextureEnabled&&!this._texture.isReadyOrNotBlocking()||this._textureRoughness&&Pt.ClearCoatTextureEnabled&&!this._textureRoughness.isReadyOrNotBlocking()||i.getCaps().standardDerivatives&&this._bumpTexture&&Pt.ClearCoatBumpTextureEnabled&&!s&&!this._bumpTexture.isReady()||this._isTintEnabled&&this._tintTexture&&Pt.ClearCoatTintTextureEnabled&&!this._tintTexture.isReadyOrNotBlocking()))}prepareDefinesBeforeAttributes(e,t){this._isEnabled?(e.CLEARCOAT=!0,e.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE=this._useRoughnessFromMainTexture,e.CLEARCOAT_REMAP_F0=this._remapF0OnInterfaceChange,e._areTexturesDirty&&t.texturesEnabled&&(this._texture&&Pt.ClearCoatTextureEnabled?En(this._texture,e,"CLEARCOAT_TEXTURE"):e.CLEARCOAT_TEXTURE=!1,this._textureRoughness&&Pt.ClearCoatTextureEnabled?En(this._textureRoughness,e,"CLEARCOAT_TEXTURE_ROUGHNESS"):e.CLEARCOAT_TEXTURE_ROUGHNESS=!1,this._bumpTexture&&Pt.ClearCoatBumpTextureEnabled?En(this._bumpTexture,e,"CLEARCOAT_BUMP"):e.CLEARCOAT_BUMP=!1,e.CLEARCOAT_DEFAULTIOR=this._indexOfRefraction===$l._DefaultIndexOfRefraction,this._isTintEnabled?(e.CLEARCOAT_TINT=!0,this._tintTexture&&Pt.ClearCoatTintTextureEnabled?(En(this._tintTexture,e,"CLEARCOAT_TINT_TEXTURE"),e.CLEARCOAT_TINT_GAMMATEXTURE=this._tintTexture.gammaSpace):e.CLEARCOAT_TINT_TEXTURE=!1):(e.CLEARCOAT_TINT=!1,e.CLEARCOAT_TINT_TEXTURE=!1))):(e.CLEARCOAT=!1,e.CLEARCOAT_TEXTURE=!1,e.CLEARCOAT_TEXTURE_ROUGHNESS=!1,e.CLEARCOAT_BUMP=!1,e.CLEARCOAT_TINT=!1,e.CLEARCOAT_TINT_TEXTURE=!1,e.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE=!1,e.CLEARCOAT_DEFAULTIOR=!1,e.CLEARCOAT_TEXTUREDIRECTUV=0,e.CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV=0,e.CLEARCOAT_BUMPDIRECTUV=0,e.CLEARCOAT_REMAP_F0=!1,e.CLEARCOAT_TINT_TEXTUREDIRECTUV=0,e.CLEARCOAT_TINT_GAMMATEXTURE=!1)}bindForSubMesh(e,t,i,s){var u,f,p,m;if(!this._isEnabled)return;const r=s.materialDefines,n=this._material.isFrozen,o=this._material._disableBumpMap,l=this._material._invertNormalMapX,c=this._material._invertNormalMapY;if(!e.useUbo||!n||!e.isSync){(this._texture||this._textureRoughness)&&Pt.ClearCoatTextureEnabled&&(e.updateFloat4("vClearCoatInfos",((u=this._texture)==null?void 0:u.coordinatesIndex)??0,((f=this._texture)==null?void 0:f.level)??0,((p=this._textureRoughness)==null?void 0:p.coordinatesIndex)??0,((m=this._textureRoughness)==null?void 0:m.level)??0),this._texture&&Tn(this._texture,e,"clearCoat"),this._textureRoughness&&!r.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE&&Tn(this._textureRoughness,e,"clearCoatRoughness")),this._bumpTexture&&i.getCaps().standardDerivatives&&Pt.ClearCoatTextureEnabled&&!o&&(e.updateFloat2("vClearCoatBumpInfos",this._bumpTexture.coordinatesIndex,this._bumpTexture.level),Tn(this._bumpTexture,e,"clearCoatBump"),t._mirroredCameraPosition?e.updateFloat2("vClearCoatTangentSpaceParams",l?1:-1,c?1:-1):e.updateFloat2("vClearCoatTangentSpaceParams",l?-1:1,c?-1:1)),this._tintTexture&&Pt.ClearCoatTintTextureEnabled&&(e.updateFloat2("vClearCoatTintInfos",this._tintTexture.coordinatesIndex,this._tintTexture.level),Tn(this._tintTexture,e,"clearCoatTint")),e.updateFloat2("vClearCoatParams",this.intensity,this.roughness);const _=1-this._indexOfRefraction,d=1+this._indexOfRefraction,h=Math.pow(-_/d,2),x=1/this._indexOfRefraction;e.updateFloat4("vClearCoatRefractionParams",h,x,_,d),this._isTintEnabled&&(e.updateFloat4("vClearCoatTintParams",this.tintColor.r,this.tintColor.g,this.tintColor.b,Math.max(1e-5,this.tintThickness)),e.updateFloat("clearCoatColorAtDistance",Math.max(1e-5,this.tintColorAtDistance)))}t.texturesEnabled&&(this._texture&&Pt.ClearCoatTextureEnabled&&e.setTexture("clearCoatSampler",this._texture),this._textureRoughness&&!r.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE&&Pt.ClearCoatTextureEnabled&&e.setTexture("clearCoatRoughnessSampler",this._textureRoughness),this._bumpTexture&&i.getCaps().standardDerivatives&&Pt.ClearCoatBumpTextureEnabled&&!o&&e.setTexture("clearCoatBumpSampler",this._bumpTexture),this._isTintEnabled&&this._tintTexture&&Pt.ClearCoatTintTextureEnabled&&e.setTexture("clearCoatTintSampler",this._tintTexture))}hasTexture(e){return this._texture===e||this._textureRoughness===e||this._bumpTexture===e||this._tintTexture===e}getActiveTextures(e){this._texture&&e.push(this._texture),this._textureRoughness&&e.push(this._textureRoughness),this._bumpTexture&&e.push(this._bumpTexture),this._tintTexture&&e.push(this._tintTexture)}getAnimatables(e){this._texture&&this._texture.animations&&this._texture.animations.length>0&&e.push(this._texture),this._textureRoughness&&this._textureRoughness.animations&&this._textureRoughness.animations.length>0&&e.push(this._textureRoughness),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&e.push(this._bumpTexture),this._tintTexture&&this._tintTexture.animations&&this._tintTexture.animations.length>0&&e.push(this._tintTexture)}dispose(e){var t,i,s,r;e&&((t=this._texture)==null||t.dispose(),(i=this._textureRoughness)==null||i.dispose(),(s=this._bumpTexture)==null||s.dispose(),(r=this._tintTexture)==null||r.dispose())}getClassName(){return"PBRClearCoatConfiguration"}addFallbacks(e,t,i){return e.CLEARCOAT_BUMP&&t.addFallback(i++,"CLEARCOAT_BUMP"),e.CLEARCOAT_TINT&&t.addFallback(i++,"CLEARCOAT_TINT"),e.CLEARCOAT&&t.addFallback(i++,"CLEARCOAT"),i}getSamplers(e){e.push("clearCoatSampler","clearCoatRoughnessSampler","clearCoatBumpSampler","clearCoatTintSampler")}getUniforms(){return{ubo:[{name:"vClearCoatParams",size:2,type:"vec2"},{name:"vClearCoatRefractionParams",size:4,type:"vec4"},{name:"vClearCoatInfos",size:4,type:"vec4"},{name:"clearCoatMatrix",size:16,type:"mat4"},{name:"clearCoatRoughnessMatrix",size:16,type:"mat4"},{name:"vClearCoatBumpInfos",size:2,type:"vec2"},{name:"vClearCoatTangentSpaceParams",size:2,type:"vec2"},{name:"clearCoatBumpMatrix",size:16,type:"mat4"},{name:"vClearCoatTintParams",size:4,type:"vec4"},{name:"clearCoatColorAtDistance",size:1,type:"float"},{name:"vClearCoatTintInfos",size:2,type:"vec2"},{name:"clearCoatTintMatrix",size:16,type:"mat4"}]}}}$l._DefaultIndexOfRefraction=1.5,F([G(),et("_markAllSubMeshesAsTexturesDirty")],$l.prototype,"isEnabled",void 0),F([G()],$l.prototype,"intensity",void 0),F([G()],$l.prototype,"roughness",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],$l.prototype,"indexOfRefraction",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],$l.prototype,"texture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],$l.prototype,"useRoughnessFromMainTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],$l.prototype,"textureRoughness",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],$l.prototype,"remapF0OnInterfaceChange",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],$l.prototype,"bumpTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],$l.prototype,"isTintEnabled",void 0),F([qs()],$l.prototype,"tintColor",void 0),F([G()],$l.prototype,"tintColorAtDistance",void 0),F([G()],$l.prototype,"tintThickness",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],$l.prototype,"tintTexture",void 0);class xde extends Br{constructor(){super(...arguments),this.IRIDESCENCE=!1,this.IRIDESCENCE_TEXTURE=!1,this.IRIDESCENCE_TEXTUREDIRECTUV=0,this.IRIDESCENCE_THICKNESS_TEXTURE=!1,this.IRIDESCENCE_THICKNESS_TEXTUREDIRECTUV=0}}class ld extends Uu{_markAllSubMeshesAsTexturesDirty(){this._enable(this._isEnabled),this._internalMarkAllSubMeshesAsTexturesDirty()}isCompatible(){return!0}constructor(e,t=!0){super(e,"PBRIridescence",110,new xde,t),this._isEnabled=!1,this.isEnabled=!1,this.intensity=1,this.minimumThickness=ld._DefaultMinimumThickness,this.maximumThickness=ld._DefaultMaximumThickness,this.indexOfRefraction=ld._DefaultIndexOfRefraction,this._texture=null,this.texture=null,this._thicknessTexture=null,this.thicknessTexture=null,this._internalMarkAllSubMeshesAsTexturesDirty=e._dirtyCallbacks[1]}isReadyForSubMesh(e,t){return this._isEnabled?!(e._areTexturesDirty&&t.texturesEnabled&&(this._texture&&Pt.IridescenceTextureEnabled&&!this._texture.isReadyOrNotBlocking()||this._thicknessTexture&&Pt.IridescenceTextureEnabled&&!this._thicknessTexture.isReadyOrNotBlocking())):!0}prepareDefinesBeforeAttributes(e,t){this._isEnabled?(e.IRIDESCENCE=!0,e._areTexturesDirty&&t.texturesEnabled&&(this._texture&&Pt.IridescenceTextureEnabled?En(this._texture,e,"IRIDESCENCE_TEXTURE"):e.IRIDESCENCE_TEXTURE=!1,this._thicknessTexture&&Pt.IridescenceTextureEnabled?En(this._thicknessTexture,e,"IRIDESCENCE_THICKNESS_TEXTURE"):e.IRIDESCENCE_THICKNESS_TEXTURE=!1)):(e.IRIDESCENCE=!1,e.IRIDESCENCE_TEXTURE=!1,e.IRIDESCENCE_THICKNESS_TEXTURE=!1,e.IRIDESCENCE_TEXTUREDIRECTUV=0,e.IRIDESCENCE_THICKNESS_TEXTUREDIRECTUV=0)}bindForSubMesh(e,t){var s,r,n,o;if(!this._isEnabled)return;const i=this._material.isFrozen;(!e.useUbo||!i||!e.isSync)&&((this._texture||this._thicknessTexture)&&Pt.IridescenceTextureEnabled&&(e.updateFloat4("vIridescenceInfos",((s=this._texture)==null?void 0:s.coordinatesIndex)??0,((r=this._texture)==null?void 0:r.level)??0,((n=this._thicknessTexture)==null?void 0:n.coordinatesIndex)??0,((o=this._thicknessTexture)==null?void 0:o.level)??0),this._texture&&Tn(this._texture,e,"iridescence"),this._thicknessTexture&&Tn(this._thicknessTexture,e,"iridescenceThickness")),e.updateFloat4("vIridescenceParams",this.intensity,this.indexOfRefraction,this.minimumThickness,this.maximumThickness)),t.texturesEnabled&&(this._texture&&Pt.IridescenceTextureEnabled&&e.setTexture("iridescenceSampler",this._texture),this._thicknessTexture&&Pt.IridescenceTextureEnabled&&e.setTexture("iridescenceThicknessSampler",this._thicknessTexture))}hasTexture(e){return this._texture===e||this._thicknessTexture===e}getActiveTextures(e){this._texture&&e.push(this._texture),this._thicknessTexture&&e.push(this._thicknessTexture)}getAnimatables(e){this._texture&&this._texture.animations&&this._texture.animations.length>0&&e.push(this._texture),this._thicknessTexture&&this._thicknessTexture.animations&&this._thicknessTexture.animations.length>0&&e.push(this._thicknessTexture)}dispose(e){var t,i;e&&((t=this._texture)==null||t.dispose(),(i=this._thicknessTexture)==null||i.dispose())}getClassName(){return"PBRIridescenceConfiguration"}addFallbacks(e,t,i){return e.IRIDESCENCE&&t.addFallback(i++,"IRIDESCENCE"),i}getSamplers(e){e.push("iridescenceSampler","iridescenceThicknessSampler")}getUniforms(){return{ubo:[{name:"vIridescenceParams",size:4,type:"vec4"},{name:"vIridescenceInfos",size:4,type:"vec4"},{name:"iridescenceMatrix",size:16,type:"mat4"},{name:"iridescenceThicknessMatrix",size:16,type:"mat4"}]}}}ld._DefaultMinimumThickness=100,ld._DefaultMaximumThickness=400,ld._DefaultIndexOfRefraction=1.3,F([G(),et("_markAllSubMeshesAsTexturesDirty")],ld.prototype,"isEnabled",void 0),F([G()],ld.prototype,"intensity",void 0),F([G()],ld.prototype,"minimumThickness",void 0),F([G()],ld.prototype,"maximumThickness",void 0),F([G()],ld.prototype,"indexOfRefraction",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],ld.prototype,"texture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],ld.prototype,"thicknessTexture",void 0);class bde extends Br{constructor(){super(...arguments),this.ANISOTROPIC=!1,this.ANISOTROPIC_TEXTURE=!1,this.ANISOTROPIC_TEXTUREDIRECTUV=0,this.ANISOTROPIC_LEGACY=!1,this.MAINUV1=!1}}class kT extends Uu{set angle(e){this.direction.x=Math.cos(e),this.direction.y=Math.sin(e)}get angle(){return Math.atan2(this.direction.y,this.direction.x)}_markAllSubMeshesAsTexturesDirty(){this._enable(this._isEnabled),this._internalMarkAllSubMeshesAsTexturesDirty()}_markAllSubMeshesAsMiscDirty(){this._enable(this._isEnabled),this._internalMarkAllSubMeshesAsMiscDirty()}isCompatible(){return!0}constructor(e,t=!0){super(e,"PBRAnisotropic",110,new bde,t),this._isEnabled=!1,this.isEnabled=!1,this.intensity=1,this.direction=new Ue(1,0),this._texture=null,this.texture=null,this._legacy=!1,this.legacy=!1,this._internalMarkAllSubMeshesAsTexturesDirty=e._dirtyCallbacks[1],this._internalMarkAllSubMeshesAsMiscDirty=e._dirtyCallbacks[16]}isReadyForSubMesh(e,t){return this._isEnabled?!(e._areTexturesDirty&&t.texturesEnabled&&this._texture&&Pt.AnisotropicTextureEnabled&&!this._texture.isReadyOrNotBlocking()):!0}prepareDefinesBeforeAttributes(e,t,i){this._isEnabled?(e.ANISOTROPIC=this._isEnabled,this._isEnabled&&!i.isVerticesDataPresent(q.TangentKind)&&(e._needUVs=!0,e.MAINUV1=!0),e._areTexturesDirty&&t.texturesEnabled&&(this._texture&&Pt.AnisotropicTextureEnabled?En(this._texture,e,"ANISOTROPIC_TEXTURE"):e.ANISOTROPIC_TEXTURE=!1),e._areMiscDirty&&(e.ANISOTROPIC_LEGACY=this._legacy)):(e.ANISOTROPIC=!1,e.ANISOTROPIC_TEXTURE=!1,e.ANISOTROPIC_TEXTUREDIRECTUV=0,e.ANISOTROPIC_LEGACY=!1)}bindForSubMesh(e,t){if(!this._isEnabled)return;const i=this._material.isFrozen;(!e.useUbo||!i||!e.isSync)&&(this._texture&&Pt.AnisotropicTextureEnabled&&(e.updateFloat2("vAnisotropyInfos",this._texture.coordinatesIndex,this._texture.level),Tn(this._texture,e,"anisotropy")),e.updateFloat3("vAnisotropy",this.direction.x,this.direction.y,this.intensity)),t.texturesEnabled&&this._texture&&Pt.AnisotropicTextureEnabled&&e.setTexture("anisotropySampler",this._texture)}hasTexture(e){return this._texture===e}getActiveTextures(e){this._texture&&e.push(this._texture)}getAnimatables(e){this._texture&&this._texture.animations&&this._texture.animations.length>0&&e.push(this._texture)}dispose(e){e&&this._texture&&this._texture.dispose()}getClassName(){return"PBRAnisotropicConfiguration"}addFallbacks(e,t,i){return e.ANISOTROPIC&&t.addFallback(i++,"ANISOTROPIC"),i}getSamplers(e){e.push("anisotropySampler")}getUniforms(){return{ubo:[{name:"vAnisotropy",size:3,type:"vec3"},{name:"vAnisotropyInfos",size:2,type:"vec2"},{name:"anisotropyMatrix",size:16,type:"mat4"}]}}parse(e,t,i){super.parse(e,t,i),e.legacy===void 0&&(this.legacy=!0)}}F([G(),et("_markAllSubMeshesAsTexturesDirty")],kT.prototype,"isEnabled",void 0),F([G()],kT.prototype,"intensity",void 0),F([vw()],kT.prototype,"direction",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],kT.prototype,"texture",void 0),F([G(),et("_markAllSubMeshesAsMiscDirty")],kT.prototype,"legacy",void 0);class Sde extends Br{constructor(){super(...arguments),this.SHEEN=!1,this.SHEEN_TEXTURE=!1,this.SHEEN_GAMMATEXTURE=!1,this.SHEEN_TEXTURE_ROUGHNESS=!1,this.SHEEN_TEXTUREDIRECTUV=0,this.SHEEN_TEXTURE_ROUGHNESSDIRECTUV=0,this.SHEEN_LINKWITHALBEDO=!1,this.SHEEN_ROUGHNESS=!1,this.SHEEN_ALBEDOSCALING=!1,this.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE=!1}}class Q6 extends Uu{_markAllSubMeshesAsTexturesDirty(){this._enable(this._isEnabled),this._internalMarkAllSubMeshesAsTexturesDirty()}isCompatible(){return!0}constructor(e,t=!0){super(e,"Sheen",120,new Sde,t),this._isEnabled=!1,this.isEnabled=!1,this._linkSheenWithAlbedo=!1,this.linkSheenWithAlbedo=!1,this.intensity=1,this.color=Pe.White(),this._texture=null,this.texture=null,this._useRoughnessFromMainTexture=!0,this.useRoughnessFromMainTexture=!0,this._roughness=null,this.roughness=null,this._textureRoughness=null,this.textureRoughness=null,this._albedoScaling=!1,this.albedoScaling=!1,this._internalMarkAllSubMeshesAsTexturesDirty=e._dirtyCallbacks[1]}isReadyForSubMesh(e,t){return this._isEnabled?!(e._areTexturesDirty&&t.texturesEnabled&&(this._texture&&Pt.SheenTextureEnabled&&!this._texture.isReadyOrNotBlocking()||this._textureRoughness&&Pt.SheenTextureEnabled&&!this._textureRoughness.isReadyOrNotBlocking())):!0}prepareDefinesBeforeAttributes(e,t){this._isEnabled?(e.SHEEN=!0,e.SHEEN_LINKWITHALBEDO=this._linkSheenWithAlbedo,e.SHEEN_ROUGHNESS=this._roughness!==null,e.SHEEN_ALBEDOSCALING=this._albedoScaling,e.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE=this._useRoughnessFromMainTexture,e._areTexturesDirty&&t.texturesEnabled&&(this._texture&&Pt.SheenTextureEnabled?(En(this._texture,e,"SHEEN_TEXTURE"),e.SHEEN_GAMMATEXTURE=this._texture.gammaSpace):e.SHEEN_TEXTURE=!1,this._textureRoughness&&Pt.SheenTextureEnabled?En(this._textureRoughness,e,"SHEEN_TEXTURE_ROUGHNESS"):e.SHEEN_TEXTURE_ROUGHNESS=!1)):(e.SHEEN=!1,e.SHEEN_TEXTURE=!1,e.SHEEN_TEXTURE_ROUGHNESS=!1,e.SHEEN_LINKWITHALBEDO=!1,e.SHEEN_ROUGHNESS=!1,e.SHEEN_ALBEDOSCALING=!1,e.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE=!1,e.SHEEN_GAMMATEXTURE=!1,e.SHEEN_TEXTUREDIRECTUV=0,e.SHEEN_TEXTURE_ROUGHNESSDIRECTUV=0)}bindForSubMesh(e,t,i,s){var o,l,c,u;if(!this._isEnabled)return;const r=s.materialDefines,n=this._material.isFrozen;(!e.useUbo||!n||!e.isSync)&&((this._texture||this._textureRoughness)&&Pt.SheenTextureEnabled&&(e.updateFloat4("vSheenInfos",((o=this._texture)==null?void 0:o.coordinatesIndex)??0,((l=this._texture)==null?void 0:l.level)??0,((c=this._textureRoughness)==null?void 0:c.coordinatesIndex)??0,((u=this._textureRoughness)==null?void 0:u.level)??0),this._texture&&Tn(this._texture,e,"sheen"),this._textureRoughness&&!r.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE&&Tn(this._textureRoughness,e,"sheenRoughness")),e.updateFloat4("vSheenColor",this.color.r,this.color.g,this.color.b,this.intensity),this._roughness!==null&&e.updateFloat("vSheenRoughness",this._roughness)),t.texturesEnabled&&(this._texture&&Pt.SheenTextureEnabled&&e.setTexture("sheenSampler",this._texture),this._textureRoughness&&!r.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE&&Pt.SheenTextureEnabled&&e.setTexture("sheenRoughnessSampler",this._textureRoughness))}hasTexture(e){return this._texture===e||this._textureRoughness===e}getActiveTextures(e){this._texture&&e.push(this._texture),this._textureRoughness&&e.push(this._textureRoughness)}getAnimatables(e){this._texture&&this._texture.animations&&this._texture.animations.length>0&&e.push(this._texture),this._textureRoughness&&this._textureRoughness.animations&&this._textureRoughness.animations.length>0&&e.push(this._textureRoughness)}dispose(e){var t,i;e&&((t=this._texture)==null||t.dispose(),(i=this._textureRoughness)==null||i.dispose())}getClassName(){return"PBRSheenConfiguration"}addFallbacks(e,t,i){return e.SHEEN&&t.addFallback(i++,"SHEEN"),i}getSamplers(e){e.push("sheenSampler","sheenRoughnessSampler")}getUniforms(){return{ubo:[{name:"vSheenColor",size:4,type:"vec4"},{name:"vSheenRoughness",size:1,type:"float"},{name:"vSheenInfos",size:4,type:"vec4"},{name:"sheenMatrix",size:16,type:"mat4"},{name:"sheenRoughnessMatrix",size:16,type:"mat4"}]}}}F([G(),et("_markAllSubMeshesAsTexturesDirty")],Q6.prototype,"isEnabled",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Q6.prototype,"linkSheenWithAlbedo",void 0),F([G()],Q6.prototype,"intensity",void 0),F([qs()],Q6.prototype,"color",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],Q6.prototype,"texture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Q6.prototype,"useRoughnessFromMainTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Q6.prototype,"roughness",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],Q6.prototype,"textureRoughness",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Q6.prototype,"albedoScaling",void 0);class yde extends Br{constructor(){super(...arguments),this.SUBSURFACE=!1,this.SS_REFRACTION=!1,this.SS_REFRACTION_USE_INTENSITY_FROM_THICKNESS=!1,this.SS_TRANSLUCENCY=!1,this.SS_TRANSLUCENCY_USE_INTENSITY_FROM_THICKNESS=!1,this.SS_SCATTERING=!1,this.SS_DISPERSION=!1,this.SS_THICKNESSANDMASK_TEXTURE=!1,this.SS_THICKNESSANDMASK_TEXTUREDIRECTUV=0,this.SS_HAS_THICKNESS=!1,this.SS_REFRACTIONINTENSITY_TEXTURE=!1,this.SS_REFRACTIONINTENSITY_TEXTUREDIRECTUV=0,this.SS_TRANSLUCENCYINTENSITY_TEXTURE=!1,this.SS_TRANSLUCENCYINTENSITY_TEXTUREDIRECTUV=0,this.SS_TRANSLUCENCYCOLOR_TEXTURE=!1,this.SS_TRANSLUCENCYCOLOR_TEXTUREDIRECTUV=0,this.SS_TRANSLUCENCYCOLOR_TEXTURE_GAMMA=!1,this.SS_REFRACTIONMAP_3D=!1,this.SS_REFRACTIONMAP_OPPOSITEZ=!1,this.SS_LODINREFRACTIONALPHA=!1,this.SS_GAMMAREFRACTION=!1,this.SS_RGBDREFRACTION=!1,this.SS_LINEARSPECULARREFRACTION=!1,this.SS_LINKREFRACTIONTOTRANSPARENCY=!1,this.SS_ALBEDOFORREFRACTIONTINT=!1,this.SS_ALBEDOFORTRANSLUCENCYTINT=!1,this.SS_USE_LOCAL_REFRACTIONMAP_CUBIC=!1,this.SS_USE_THICKNESS_AS_DEPTH=!1,this.SS_USE_GLTF_TEXTURES=!1}}class Na extends Uu{get scatteringDiffusionProfile(){return this._scene.subSurfaceConfiguration?this._scene.subSurfaceConfiguration.ssDiffusionProfileColors[this._scatteringDiffusionProfileIndex]:null}set scatteringDiffusionProfile(e){this._scene.enableSubSurfaceForPrePass()&&e&&(this._scatteringDiffusionProfileIndex=this._scene.subSurfaceConfiguration.addDiffusionProfile(e))}get volumeIndexOfRefraction(){return this._volumeIndexOfRefraction>=1?this._volumeIndexOfRefraction:this._indexOfRefraction}set volumeIndexOfRefraction(e){e>=1?this._volumeIndexOfRefraction=e:this._volumeIndexOfRefraction=-1}_markAllSubMeshesAsTexturesDirty(){this._enable(this._isRefractionEnabled||this._isTranslucencyEnabled||this._isScatteringEnabled),this._internalMarkAllSubMeshesAsTexturesDirty()}_markScenePrePassDirty(){this._enable(this._isRefractionEnabled||this._isTranslucencyEnabled||this._isScatteringEnabled),this._internalMarkAllSubMeshesAsTexturesDirty(),this._internalMarkScenePrePassDirty()}isCompatible(){return!0}constructor(e,t=!0){super(e,"PBRSubSurface",130,new yde,t),this._isRefractionEnabled=!1,this.isRefractionEnabled=!1,this._isTranslucencyEnabled=!1,this.isTranslucencyEnabled=!1,this._isDispersionEnabled=!1,this.isDispersionEnabled=!1,this._isScatteringEnabled=!1,this.isScatteringEnabled=!1,this._scatteringDiffusionProfileIndex=0,this.refractionIntensity=1,this.translucencyIntensity=1,this.useAlbedoToTintRefraction=!1,this.useAlbedoToTintTranslucency=!1,this._thicknessTexture=null,this.thicknessTexture=null,this._refractionTexture=null,this.refractionTexture=null,this._indexOfRefraction=1.5,this.indexOfRefraction=1.5,this._volumeIndexOfRefraction=-1,this._invertRefractionY=!1,this.invertRefractionY=!1,this._linkRefractionWithTransparency=!1,this.linkRefractionWithTransparency=!1,this.minimumThickness=0,this.maximumThickness=1,this.useThicknessAsDepth=!1,this.tintColor=Pe.White(),this.tintColorAtDistance=1,this.dispersion=0,this.diffusionDistance=Pe.White(),this._useMaskFromThicknessTexture=!1,this.useMaskFromThicknessTexture=!1,this._refractionIntensityTexture=null,this.refractionIntensityTexture=null,this._translucencyIntensityTexture=null,this.translucencyIntensityTexture=null,this.translucencyColor=null,this._translucencyColorTexture=null,this.translucencyColorTexture=null,this._useGltfStyleTextures=!0,this.useGltfStyleTextures=!0,this._scene=e.getScene(),this.registerForExtraEvents=!0,this._internalMarkAllSubMeshesAsTexturesDirty=e._dirtyCallbacks[1],this._internalMarkScenePrePassDirty=e._dirtyCallbacks[32]}isReadyForSubMesh(e,t){if(!this._isRefractionEnabled&&!this._isTranslucencyEnabled&&!this._isScatteringEnabled)return!0;if(e._areTexturesDirty&&t.texturesEnabled){if(this._thicknessTexture&&Pt.ThicknessTextureEnabled&&!this._thicknessTexture.isReadyOrNotBlocking()||this._translucencyColorTexture&&Pt.TranslucencyColorTextureEnabled&&!this._translucencyColorTexture.isReadyOrNotBlocking()||this._translucencyIntensityTexture&&Pt.TranslucencyIntensityTextureEnabled&&!this._translucencyIntensityTexture.isReadyOrNotBlocking())return!1;const i=this._getRefractionTexture(t);if(i&&Pt.RefractionTextureEnabled&&!i.isReadyOrNotBlocking())return!1}return!0}prepareDefinesBeforeAttributes(e,t){if(!this._isRefractionEnabled&&!this._isTranslucencyEnabled&&!this._isScatteringEnabled){e.SUBSURFACE=!1,e.SS_DISPERSION=!1,e.SS_TRANSLUCENCY=!1,e.SS_SCATTERING=!1,e.SS_REFRACTION=!1,e.SS_REFRACTION_USE_INTENSITY_FROM_THICKNESS=!1,e.SS_TRANSLUCENCY_USE_INTENSITY_FROM_THICKNESS=!1,e.SS_THICKNESSANDMASK_TEXTURE=!1,e.SS_THICKNESSANDMASK_TEXTUREDIRECTUV=0,e.SS_HAS_THICKNESS=!1,e.SS_REFRACTIONINTENSITY_TEXTURE=!1,e.SS_REFRACTIONINTENSITY_TEXTUREDIRECTUV=0,e.SS_TRANSLUCENCYINTENSITY_TEXTURE=!1,e.SS_TRANSLUCENCYINTENSITY_TEXTUREDIRECTUV=0,e.SS_REFRACTIONMAP_3D=!1,e.SS_REFRACTIONMAP_OPPOSITEZ=!1,e.SS_LODINREFRACTIONALPHA=!1,e.SS_GAMMAREFRACTION=!1,e.SS_RGBDREFRACTION=!1,e.SS_LINEARSPECULARREFRACTION=!1,e.SS_LINKREFRACTIONTOTRANSPARENCY=!1,e.SS_ALBEDOFORREFRACTIONTINT=!1,e.SS_ALBEDOFORTRANSLUCENCYTINT=!1,e.SS_USE_LOCAL_REFRACTIONMAP_CUBIC=!1,e.SS_USE_THICKNESS_AS_DEPTH=!1,e.SS_USE_GLTF_TEXTURES=!1,e.SS_TRANSLUCENCYCOLOR_TEXTURE=!1,e.SS_TRANSLUCENCYCOLOR_TEXTUREDIRECTUV=0,e.SS_TRANSLUCENCYCOLOR_TEXTURE_GAMMA=!1;return}if(e._areTexturesDirty){if(e.SUBSURFACE=!0,e.SS_DISPERSION=this._isDispersionEnabled,e.SS_TRANSLUCENCY=this._isTranslucencyEnabled,e.SS_TRANSLUCENCY_USE_INTENSITY_FROM_THICKNESS=!1,e.SS_SCATTERING=this._isScatteringEnabled,e.SS_THICKNESSANDMASK_TEXTURE=!1,e.SS_REFRACTIONINTENSITY_TEXTURE=!1,e.SS_TRANSLUCENCYINTENSITY_TEXTURE=!1,e.SS_HAS_THICKNESS=!1,e.SS_USE_GLTF_TEXTURES=!1,e.SS_REFRACTION=!1,e.SS_REFRACTION_USE_INTENSITY_FROM_THICKNESS=!1,e.SS_REFRACTIONMAP_3D=!1,e.SS_GAMMAREFRACTION=!1,e.SS_RGBDREFRACTION=!1,e.SS_LINEARSPECULARREFRACTION=!1,e.SS_REFRACTIONMAP_OPPOSITEZ=!1,e.SS_LODINREFRACTIONALPHA=!1,e.SS_LINKREFRACTIONTOTRANSPARENCY=!1,e.SS_ALBEDOFORREFRACTIONTINT=!1,e.SS_ALBEDOFORTRANSLUCENCYTINT=!1,e.SS_USE_LOCAL_REFRACTIONMAP_CUBIC=!1,e.SS_USE_THICKNESS_AS_DEPTH=!1,e.SS_TRANSLUCENCYCOLOR_TEXTURE=!1,e._areTexturesDirty&&t.texturesEnabled&&(this._thicknessTexture&&Pt.ThicknessTextureEnabled&&En(this._thicknessTexture,e,"SS_THICKNESSANDMASK_TEXTURE"),this._refractionIntensityTexture&&Pt.RefractionIntensityTextureEnabled&&En(this._refractionIntensityTexture,e,"SS_REFRACTIONINTENSITY_TEXTURE"),this._translucencyIntensityTexture&&Pt.TranslucencyIntensityTextureEnabled&&En(this._translucencyIntensityTexture,e,"SS_TRANSLUCENCYINTENSITY_TEXTURE"),this._translucencyColorTexture&&Pt.TranslucencyColorTextureEnabled&&(En(this._translucencyColorTexture,e,"SS_TRANSLUCENCYCOLOR_TEXTURE"),e.SS_TRANSLUCENCYCOLOR_TEXTURE_GAMMA=this._translucencyColorTexture.gammaSpace)),e.SS_HAS_THICKNESS=this.maximumThickness-this.minimumThickness!==0,e.SS_USE_GLTF_TEXTURES=this._useGltfStyleTextures,e.SS_REFRACTION_USE_INTENSITY_FROM_THICKNESS=this._useMaskFromThicknessTexture&&!this._refractionIntensityTexture,e.SS_TRANSLUCENCY_USE_INTENSITY_FROM_THICKNESS=this._useMaskFromThicknessTexture&&!this._translucencyIntensityTexture,this._isRefractionEnabled&&t.texturesEnabled){const i=this._getRefractionTexture(t);i&&Pt.RefractionTextureEnabled&&(e.SS_REFRACTION=!0,e.SS_REFRACTIONMAP_3D=i.isCube,e.SS_GAMMAREFRACTION=i.gammaSpace,e.SS_RGBDREFRACTION=i.isRGBD,e.SS_LINEARSPECULARREFRACTION=i.linearSpecularLOD,e.SS_REFRACTIONMAP_OPPOSITEZ=this._scene.useRightHandedSystem&&i.isCube?!i.invertZ:i.invertZ,e.SS_LODINREFRACTIONALPHA=i.lodLevelInAlpha,e.SS_LINKREFRACTIONTOTRANSPARENCY=this._linkRefractionWithTransparency,e.SS_ALBEDOFORREFRACTIONTINT=this.useAlbedoToTintRefraction,e.SS_USE_LOCAL_REFRACTIONMAP_CUBIC=i.isCube&&i.boundingBoxSize,e.SS_USE_THICKNESS_AS_DEPTH=this.useThicknessAsDepth)}this._isTranslucencyEnabled&&(e.SS_ALBEDOFORTRANSLUCENCYTINT=this.useAlbedoToTintTranslucency)}}hardBindForSubMesh(e,t,i,s){if(!(!this._isRefractionEnabled&&!this._isTranslucencyEnabled&&!this._isScatteringEnabled))if(this.maximumThickness===0&&this.minimumThickness===0)e.updateFloat2("vThicknessParam",0,0);else{s.getRenderingMesh().getWorldMatrix().decompose(ae.Vector3[0]);const r=Math.max(Math.abs(ae.Vector3[0].x),Math.abs(ae.Vector3[0].y),Math.abs(ae.Vector3[0].z));e.updateFloat2("vThicknessParam",this.minimumThickness*r,(this.maximumThickness-this.minimumThickness)*r)}}bindForSubMesh(e,t,i,s){if(!this._isRefractionEnabled&&!this._isTranslucencyEnabled&&!this._isScatteringEnabled)return;const r=s.materialDefines,n=this._material.isFrozen,o=this._material.realTimeFiltering,l=r.LODBASEDMICROSFURACE,c=this._getRefractionTexture(t);if(!e.useUbo||!n||!e.isSync){if(this._thicknessTexture&&Pt.ThicknessTextureEnabled&&(e.updateFloat2("vThicknessInfos",this._thicknessTexture.coordinatesIndex,this._thicknessTexture.level),Tn(this._thicknessTexture,e,"thickness")),this._refractionIntensityTexture&&Pt.RefractionIntensityTextureEnabled&&r.SS_REFRACTIONINTENSITY_TEXTURE&&(e.updateFloat2("vRefractionIntensityInfos",this._refractionIntensityTexture.coordinatesIndex,this._refractionIntensityTexture.level),Tn(this._refractionIntensityTexture,e,"refractionIntensity")),this._translucencyColorTexture&&Pt.TranslucencyColorTextureEnabled&&r.SS_TRANSLUCENCYCOLOR_TEXTURE&&(e.updateFloat2("vTranslucencyColorInfos",this._translucencyColorTexture.coordinatesIndex,this._translucencyColorTexture.level),Tn(this._translucencyColorTexture,e,"translucencyColor")),this._translucencyIntensityTexture&&Pt.TranslucencyIntensityTextureEnabled&&r.SS_TRANSLUCENCYINTENSITY_TEXTURE&&(e.updateFloat2("vTranslucencyIntensityInfos",this._translucencyIntensityTexture.coordinatesIndex,this._translucencyIntensityTexture.level),Tn(this._translucencyIntensityTexture,e,"translucencyIntensity")),c&&Pt.RefractionTextureEnabled){e.updateMatrix("refractionMatrix",c.getRefractionTextureMatrix());let u=1;c.isCube||c.depth&&(u=c.depth);const f=c.getSize().width,p=this.volumeIndexOfRefraction;if(e.updateFloat4("vRefractionInfos",c.level,1/p,u,this._invertRefractionY?-1:1),e.updateFloat4("vRefractionMicrosurfaceInfos",f,c.lodGenerationScale,c.lodGenerationOffset,1/this.indexOfRefraction),o&&e.updateFloat2("vRefractionFilteringInfo",f,Math.log2(f)),c.boundingBoxSize){const m=c;e.updateVector3("vRefractionPosition",m.boundingBoxPosition),e.updateVector3("vRefractionSize",m.boundingBoxSize)}}this._isScatteringEnabled&&e.updateFloat("scatteringDiffusionProfile",this._scatteringDiffusionProfileIndex),e.updateColor3("vDiffusionDistance",this.diffusionDistance),e.updateFloat4("vTintColor",this.tintColor.r,this.tintColor.g,this.tintColor.b,Math.max(1e-5,this.tintColorAtDistance)),e.updateColor4("vTranslucencyColor",this.translucencyColor??this.tintColor,0),e.updateFloat3("vSubSurfaceIntensity",this.refractionIntensity,this.translucencyIntensity,0),e.updateFloat("dispersion",this.dispersion)}t.texturesEnabled&&(this._thicknessTexture&&Pt.ThicknessTextureEnabled&&e.setTexture("thicknessSampler",this._thicknessTexture),this._refractionIntensityTexture&&Pt.RefractionIntensityTextureEnabled&&r.SS_REFRACTIONINTENSITY_TEXTURE&&e.setTexture("refractionIntensitySampler",this._refractionIntensityTexture),this._translucencyIntensityTexture&&Pt.TranslucencyIntensityTextureEnabled&&r.SS_TRANSLUCENCYINTENSITY_TEXTURE&&e.setTexture("translucencyIntensitySampler",this._translucencyIntensityTexture),this._translucencyColorTexture&&Pt.TranslucencyColorTextureEnabled&&r.SS_TRANSLUCENCYCOLOR_TEXTURE&&e.setTexture("translucencyColorSampler",this._translucencyColorTexture),c&&Pt.RefractionTextureEnabled&&(l?e.setTexture("refractionSampler",c):(e.setTexture("refractionSampler",c._lodTextureMid||c),e.setTexture("refractionSamplerLow",c._lodTextureLow||c),e.setTexture("refractionSamplerHigh",c._lodTextureHigh||c))))}_getRefractionTexture(e){return this._refractionTexture?this._refractionTexture:this._isRefractionEnabled?e.environmentTexture:null}get disableAlphaBlending(){return this._isRefractionEnabled&&this._linkRefractionWithTransparency}fillRenderTargetTextures(e){Pt.RefractionTextureEnabled&&this._refractionTexture&&this._refractionTexture.isRenderTarget&&e.push(this._refractionTexture)}hasTexture(e){return this._thicknessTexture===e||this._refractionTexture===e||this._refractionIntensityTexture===e||this._translucencyIntensityTexture===e||this._translucencyColorTexture===e}hasRenderTargetTextures(){return!!(Pt.RefractionTextureEnabled&&this._refractionTexture&&this._refractionTexture.isRenderTarget)}getActiveTextures(e){this._thicknessTexture&&e.push(this._thicknessTexture),this._refractionTexture&&e.push(this._refractionTexture),this._translucencyColorTexture&&e.push(this._translucencyColorTexture),this._translucencyIntensityTexture&&e.push(this._translucencyIntensityTexture)}getAnimatables(e){this._thicknessTexture&&this._thicknessTexture.animations&&this._thicknessTexture.animations.length>0&&e.push(this._thicknessTexture),this._refractionTexture&&this._refractionTexture.animations&&this._refractionTexture.animations.length>0&&e.push(this._refractionTexture),this._translucencyColorTexture&&this._translucencyColorTexture.animations&&this._translucencyColorTexture.animations.length>0&&e.push(this._translucencyColorTexture),this._translucencyIntensityTexture&&this._translucencyIntensityTexture.animations&&this._translucencyIntensityTexture.animations.length>0&&e.push(this._translucencyIntensityTexture)}dispose(e){e&&(this._thicknessTexture&&this._thicknessTexture.dispose(),this._refractionTexture&&this._refractionTexture.dispose(),this._translucencyColorTexture&&this._translucencyColorTexture.dispose(),this._translucencyIntensityTexture&&this._translucencyIntensityTexture.dispose())}getClassName(){return"PBRSubSurfaceConfiguration"}addFallbacks(e,t,i){return e.SS_SCATTERING&&t.addFallback(i++,"SS_SCATTERING"),e.SS_TRANSLUCENCY&&t.addFallback(i++,"SS_TRANSLUCENCY"),i}getSamplers(e){e.push("thicknessSampler","refractionIntensitySampler","translucencyIntensitySampler","refractionSampler","refractionSamplerLow","refractionSamplerHigh","translucencyColorSampler")}getUniforms(){return{ubo:[{name:"vRefractionMicrosurfaceInfos",size:4,type:"vec4"},{name:"vRefractionFilteringInfo",size:2,type:"vec2"},{name:"vTranslucencyIntensityInfos",size:2,type:"vec2"},{name:"vRefractionInfos",size:4,type:"vec4"},{name:"refractionMatrix",size:16,type:"mat4"},{name:"vThicknessInfos",size:2,type:"vec2"},{name:"vRefractionIntensityInfos",size:2,type:"vec2"},{name:"thicknessMatrix",size:16,type:"mat4"},{name:"refractionIntensityMatrix",size:16,type:"mat4"},{name:"translucencyIntensityMatrix",size:16,type:"mat4"},{name:"vThicknessParam",size:2,type:"vec2"},{name:"vDiffusionDistance",size:3,type:"vec3"},{name:"vTintColor",size:4,type:"vec4"},{name:"vSubSurfaceIntensity",size:3,type:"vec3"},{name:"vRefractionPosition",size:3,type:"vec3"},{name:"vRefractionSize",size:3,type:"vec3"},{name:"scatteringDiffusionProfile",size:1,type:"float"},{name:"dispersion",size:1,type:"float"},{name:"vTranslucencyColor",size:4,type:"vec4"},{name:"vTranslucencyColorInfos",size:2,type:"vec2"},{name:"translucencyColorMatrix",size:16,type:"mat4"}]}}}F([G(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"isRefractionEnabled",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"isTranslucencyEnabled",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"isDispersionEnabled",void 0),F([G(),et("_markScenePrePassDirty")],Na.prototype,"isScatteringEnabled",void 0),F([G()],Na.prototype,"_scatteringDiffusionProfileIndex",void 0),F([G()],Na.prototype,"refractionIntensity",void 0),F([G()],Na.prototype,"translucencyIntensity",void 0),F([G()],Na.prototype,"useAlbedoToTintRefraction",void 0),F([G()],Na.prototype,"useAlbedoToTintTranslucency",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"thicknessTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"refractionTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"indexOfRefraction",void 0),F([G()],Na.prototype,"_volumeIndexOfRefraction",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"volumeIndexOfRefraction",null),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"invertRefractionY",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"linkRefractionWithTransparency",void 0),F([G()],Na.prototype,"minimumThickness",void 0),F([G()],Na.prototype,"maximumThickness",void 0),F([G()],Na.prototype,"useThicknessAsDepth",void 0),F([qs()],Na.prototype,"tintColor",void 0),F([G()],Na.prototype,"tintColorAtDistance",void 0),F([G()],Na.prototype,"dispersion",void 0),F([qs()],Na.prototype,"diffusionDistance",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"useMaskFromThicknessTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"refractionIntensityTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"translucencyIntensityTexture",void 0),F([qs()],Na.prototype,"translucencyColor",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"translucencyColorTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Na.prototype,"useGltfStyleTextures",void 0);const IP={effect:null,subMesh:null};class VZ extends Br{constructor(e){super(e),this.PBR=!0,this.NUM_SAMPLES="0",this.REALTIME_FILTERING=!1,this.IBL_CDF_FILTERING=!1,this.MAINUV1=!1,this.MAINUV2=!1,this.MAINUV3=!1,this.MAINUV4=!1,this.MAINUV5=!1,this.MAINUV6=!1,this.UV1=!1,this.UV2=!1,this.UV3=!1,this.UV4=!1,this.UV5=!1,this.UV6=!1,this.ALBEDO=!1,this.GAMMAALBEDO=!1,this.ALBEDODIRECTUV=0,this.VERTEXCOLOR=!1,this.BASEWEIGHT=!1,this.BASEWEIGHTDIRECTUV=0,this.BAKED_VERTEX_ANIMATION_TEXTURE=!1,this.AMBIENT=!1,this.AMBIENTDIRECTUV=0,this.AMBIENTINGRAYSCALE=!1,this.OPACITY=!1,this.VERTEXALPHA=!1,this.OPACITYDIRECTUV=0,this.OPACITYRGB=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.ALPHABLEND=!1,this.ALPHAFROMALBEDO=!1,this.ALPHATESTVALUE="0.5",this.SPECULAROVERALPHA=!1,this.RADIANCEOVERALPHA=!1,this.ALPHAFRESNEL=!1,this.LINEARALPHAFRESNEL=!1,this.PREMULTIPLYALPHA=!1,this.EMISSIVE=!1,this.EMISSIVEDIRECTUV=0,this.GAMMAEMISSIVE=!1,this.REFLECTIVITY=!1,this.REFLECTIVITY_GAMMA=!1,this.REFLECTIVITYDIRECTUV=0,this.SPECULARTERM=!1,this.MICROSURFACEFROMREFLECTIVITYMAP=!1,this.MICROSURFACEAUTOMATIC=!1,this.LODBASEDMICROSFURACE=!1,this.MICROSURFACEMAP=!1,this.MICROSURFACEMAPDIRECTUV=0,this.METALLICWORKFLOW=!1,this.ROUGHNESSSTOREINMETALMAPALPHA=!1,this.ROUGHNESSSTOREINMETALMAPGREEN=!1,this.METALLNESSSTOREINMETALMAPBLUE=!1,this.AOSTOREINMETALMAPRED=!1,this.METALLIC_REFLECTANCE=!1,this.METALLIC_REFLECTANCE_GAMMA=!1,this.METALLIC_REFLECTANCEDIRECTUV=0,this.METALLIC_REFLECTANCE_USE_ALPHA_ONLY=!1,this.REFLECTANCE=!1,this.REFLECTANCE_GAMMA=!1,this.REFLECTANCEDIRECTUV=0,this.ENVIRONMENTBRDF=!1,this.ENVIRONMENTBRDF_RGBD=!1,this.NORMAL=!1,this.TANGENT=!1,this.BUMP=!1,this.BUMPDIRECTUV=0,this.OBJECTSPACE_NORMALMAP=!1,this.PARALLAX=!1,this.PARALLAX_RHS=!1,this.PARALLAXOCCLUSION=!1,this.NORMALXYSCALE=!0,this.LIGHTMAP=!1,this.LIGHTMAPDIRECTUV=0,this.USELIGHTMAPASSHADOWMAP=!1,this.GAMMALIGHTMAP=!1,this.RGBDLIGHTMAP=!1,this.REFLECTION=!1,this.REFLECTIONMAP_3D=!1,this.REFLECTIONMAP_SPHERICAL=!1,this.REFLECTIONMAP_PLANAR=!1,this.REFLECTIONMAP_CUBIC=!1,this.USE_LOCAL_REFLECTIONMAP_CUBIC=!1,this.REFLECTIONMAP_PROJECTION=!1,this.REFLECTIONMAP_SKYBOX=!1,this.REFLECTIONMAP_EXPLICIT=!1,this.REFLECTIONMAP_EQUIRECTANGULAR=!1,this.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,this.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,this.INVERTCUBICMAP=!1,this.USESPHERICALFROMREFLECTIONMAP=!1,this.USEIRRADIANCEMAP=!1,this.USESPHERICALINVERTEX=!1,this.REFLECTIONMAP_OPPOSITEZ=!1,this.LODINREFLECTIONALPHA=!1,this.GAMMAREFLECTION=!1,this.RGBDREFLECTION=!1,this.LINEARSPECULARREFLECTION=!1,this.RADIANCEOCCLUSION=!1,this.HORIZONOCCLUSION=!1,this.INSTANCES=!1,this.THIN_INSTANCES=!1,this.INSTANCESCOLOR=!1,this.PREPASS=!1,this.PREPASS_COLOR=!1,this.PREPASS_COLOR_INDEX=-1,this.PREPASS_IRRADIANCE=!1,this.PREPASS_IRRADIANCE_INDEX=-1,this.PREPASS_ALBEDO=!1,this.PREPASS_ALBEDO_INDEX=-1,this.PREPASS_ALBEDO_SQRT=!1,this.PREPASS_ALBEDO_SQRT_INDEX=-1,this.PREPASS_DEPTH=!1,this.PREPASS_DEPTH_INDEX=-1,this.PREPASS_SCREENSPACE_DEPTH=!1,this.PREPASS_SCREENSPACE_DEPTH_INDEX=-1,this.PREPASS_NORMAL=!1,this.PREPASS_NORMAL_INDEX=-1,this.PREPASS_NORMAL_WORLDSPACE=!1,this.PREPASS_WORLD_NORMAL=!1,this.PREPASS_WORLD_NORMAL_INDEX=-1,this.PREPASS_POSITION=!1,this.PREPASS_POSITION_INDEX=-1,this.PREPASS_LOCAL_POSITION=!1,this.PREPASS_LOCAL_POSITION_INDEX=-1,this.PREPASS_VELOCITY=!1,this.PREPASS_VELOCITY_INDEX=-1,this.PREPASS_VELOCITY_LINEAR=!1,this.PREPASS_VELOCITY_LINEAR_INDEX=-1,this.PREPASS_REFLECTIVITY=!1,this.PREPASS_REFLECTIVITY_INDEX=-1,this.SCENE_MRT_COUNT=0,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.BONETEXTURE=!1,this.BONES_VELOCITY_ENABLED=!1,this.NONUNIFORMSCALING=!1,this.MORPHTARGETS=!1,this.MORPHTARGETS_POSITION=!1,this.MORPHTARGETS_NORMAL=!1,this.MORPHTARGETS_TANGENT=!1,this.MORPHTARGETS_UV=!1,this.MORPHTARGETS_UV2=!1,this.MORPHTARGETS_COLOR=!1,this.MORPHTARGETTEXTURE_HASPOSITIONS=!1,this.MORPHTARGETTEXTURE_HASNORMALS=!1,this.MORPHTARGETTEXTURE_HASTANGENTS=!1,this.MORPHTARGETTEXTURE_HASUVS=!1,this.MORPHTARGETTEXTURE_HASUV2S=!1,this.MORPHTARGETTEXTURE_HASCOLORS=!1,this.NUM_MORPH_INFLUENCERS=0,this.MORPHTARGETS_TEXTURE=!1,this.IMAGEPROCESSING=!1,this.VIGNETTE=!1,this.VIGNETTEBLENDMODEMULTIPLY=!1,this.VIGNETTEBLENDMODEOPAQUE=!1,this.TONEMAPPING=0,this.CONTRAST=!1,this.COLORCURVES=!1,this.COLORGRADING=!1,this.COLORGRADING3D=!1,this.SAMPLER3DGREENDEPTH=!1,this.SAMPLER3DBGRMAP=!1,this.DITHER=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.EXPOSURE=!1,this.MULTIVIEW=!1,this.ORDER_INDEPENDENT_TRANSPARENCY=!1,this.ORDER_INDEPENDENT_TRANSPARENCY_16BITS=!1,this.USEPHYSICALLIGHTFALLOFF=!1,this.USEGLTFLIGHTFALLOFF=!1,this.TWOSIDEDLIGHTING=!1,this.SHADOWFLOAT=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.POINTSIZE=!1,this.FOG=!1,this.LOGARITHMICDEPTH=!1,this.CAMERA_ORTHOGRAPHIC=!1,this.CAMERA_PERSPECTIVE=!1,this.AREALIGHTSUPPORTED=!0,this.FORCENORMALFORWARD=!1,this.SPECULARAA=!1,this.UNLIT=!1,this.DECAL_AFTER_DETAIL=!1,this.DEBUGMODE=0,this.rebuild()}reset(){super.reset(),this.ALPHATESTVALUE="0.5",this.PBR=!0,this.NORMALXYSCALE=!0}}class Bs extends po{get realTimeFiltering(){return this._realTimeFiltering}set realTimeFiltering(e){this._realTimeFiltering=e,this.markAsDirty(1)}get realTimeFilteringQuality(){return this._realTimeFilteringQuality}set realTimeFilteringQuality(e){this._realTimeFilteringQuality=e,this.markAsDirty(1)}get canRenderToMRT(){return!0}_attachImageProcessingConfiguration(e){e!==this._imageProcessingConfiguration&&(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e?this._imageProcessingConfiguration=e:this._imageProcessingConfiguration=this.getScene().imageProcessingConfiguration,this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add(()=>{this._markAllSubMeshesAsImageProcessingDirty()})))}constructor(e,t,i=!1){super(e,t,void 0,i||Bs.ForceGLSL),this._directIntensity=1,this._emissiveIntensity=1,this._environmentIntensity=1,this._specularIntensity=1,this._lightingInfos=new Yt(this._directIntensity,this._emissiveIntensity,this._environmentIntensity,this._specularIntensity),this._disableBumpMap=!1,this._albedoTexture=null,this._baseWeightTexture=null,this._ambientTexture=null,this._ambientTextureStrength=1,this._ambientTextureImpactOnAnalyticalLights=Bs.DEFAULT_AO_ON_ANALYTICAL_LIGHTS,this._opacityTexture=null,this._reflectionTexture=null,this._emissiveTexture=null,this._reflectivityTexture=null,this._metallicTexture=null,this._metallic=null,this._roughness=null,this._metallicF0Factor=1,this._metallicReflectanceColor=Pe.White(),this._useOnlyMetallicFromMetallicReflectanceTexture=!1,this._metallicReflectanceTexture=null,this._reflectanceTexture=null,this._microSurfaceTexture=null,this._bumpTexture=null,this._lightmapTexture=null,this._ambientColor=new Pe(0,0,0),this._albedoColor=new Pe(1,1,1),this._baseWeight=1,this._reflectivityColor=new Pe(1,1,1),this._reflectionColor=new Pe(1,1,1),this._emissiveColor=new Pe(0,0,0),this._microSurface=.9,this._useLightmapAsShadowmap=!1,this._useHorizonOcclusion=!0,this._useRadianceOcclusion=!0,this._useAlphaFromAlbedoTexture=!1,this._useSpecularOverAlpha=!0,this._useMicroSurfaceFromReflectivityMapAlpha=!1,this._useRoughnessFromMetallicTextureAlpha=!0,this._useRoughnessFromMetallicTextureGreen=!1,this._useMetallnessFromMetallicTextureBlue=!1,this._useAmbientOcclusionFromMetallicTextureRed=!1,this._useAmbientInGrayScale=!1,this._useAutoMicroSurfaceFromReflectivityMap=!1,this._lightFalloff=Bs.LIGHTFALLOFF_PHYSICAL,this._useRadianceOverAlpha=!0,this._useObjectSpaceNormalMap=!1,this._useParallax=!1,this._useParallaxOcclusion=!1,this._parallaxScaleBias=.05,this._disableLighting=!1,this._maxSimultaneousLights=4,this._invertNormalMapX=!1,this._invertNormalMapY=!1,this._twoSidedLighting=!1,this._alphaCutOff=.4,this._useAlphaFresnel=!1,this._useLinearAlphaFresnel=!1,this._environmentBRDFTexture=null,this._forceIrradianceInFragment=!1,this._realTimeFiltering=!1,this._realTimeFilteringQuality=8,this._forceNormalForward=!1,this._enableSpecularAntiAliasing=!1,this._imageProcessingObserver=null,this._renderTargets=new dl(16),this._globalAmbientColor=new Pe(0,0,0),this._unlit=!1,this._applyDecalMapAfterDetailMap=!1,this._debugMode=0,this._shadersLoaded=!1,this._breakShaderLoadedCheck=!1,this.debugMode=0,this.debugLimit=-1,this.debugFactor=1,this._cacheHasRenderTargetTextures=!1,this.brdf=new Jl(this),this.clearCoat=new $l(this),this.iridescence=new ld(this),this.anisotropy=new kT(this),this.sheen=new Q6(this),this.subSurface=new Na(this),this.detailMap=new eb(this),this._attachImageProcessingConfiguration(null),this.getRenderTargetTextures=()=>(this._renderTargets.reset(),Pt.ReflectionTextureEnabled&&this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&this._renderTargets.push(this._reflectionTexture),this._eventInfo.renderTargets=this._renderTargets,this._callbackPluginEventFillRenderTargetTextures(this._eventInfo),this._renderTargets),this._environmentBRDFTexture=zw(this.getScene()),this.prePassConfiguration=new yG}get hasRenderTargetTextures(){return Pt.ReflectionTextureEnabled&&this._reflectionTexture&&this._reflectionTexture.isRenderTarget?!0:this._cacheHasRenderTargetTextures}get isPrePassCapable(){return!this.disableDepthWrite}getClassName(){return"PBRBaseMaterial"}get _disableAlphaBlending(){var e;return this._transparencyMode===Bs.PBRMATERIAL_OPAQUE||this._transparencyMode===Bs.PBRMATERIAL_ALPHATEST||((e=this.subSurface)==null?void 0:e.disableAlphaBlending)}needAlphaBlending(){return this._hasTransparencyMode?this._transparencyModeIsBlend:this._disableAlphaBlending?!1:this.alpha<1||this._opacityTexture!=null||this._shouldUseAlphaFromAlbedoTexture()}needAlphaTesting(){var e;return this._hasTransparencyMode?this._transparencyModeIsTest:(e=this.subSurface)!=null&&e.disableAlphaBlending?!1:this._hasAlphaChannel()&&(this._transparencyMode==null||this._transparencyMode===Bs.PBRMATERIAL_ALPHATEST)}_shouldUseAlphaFromAlbedoTexture(){return this._albedoTexture!=null&&this._albedoTexture.hasAlpha&&this._useAlphaFromAlbedoTexture&&this._transparencyMode!==Bs.PBRMATERIAL_OPAQUE}_hasAlphaChannel(){return this._albedoTexture!=null&&this._albedoTexture.hasAlpha||this._opacityTexture!=null}getAlphaTestTexture(){return this._albedoTexture}isReadyForSubMesh(e,t,i){var p;this._uniformBufferLayoutBuilt||this.buildUniformLayout();const s=t._drawWrapper;if(s.effect&&this.isFrozen&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(this._callbackPluginEventGeneric(4,this._eventInfo),t.materialDefines=new VZ(this._eventInfo.defineNames));const r=t.materialDefines;if(this._isReadyForSubMesh(t))return!0;const n=this.getScene(),o=n.getEngine();if(r._areTexturesDirty&&(this._eventInfo.hasRenderTargetTextures=!1,this._callbackPluginEventHasRenderTargetTextures(this._eventInfo),this._cacheHasRenderTargetTextures=this._eventInfo.hasRenderTargetTextures,n.texturesEnabled)){if(this._albedoTexture&&Pt.DiffuseTextureEnabled&&!this._albedoTexture.isReadyOrNotBlocking()||this._baseWeightTexture&&Pt.BaseWeightTextureEnabled&&!this._baseWeightTexture.isReadyOrNotBlocking()||this._ambientTexture&&Pt.AmbientTextureEnabled&&!this._ambientTexture.isReadyOrNotBlocking()||this._opacityTexture&&Pt.OpacityTextureEnabled&&!this._opacityTexture.isReadyOrNotBlocking())return!1;const m=this._getReflectionTexture();if(m&&Pt.ReflectionTextureEnabled){if(!m.isReadyOrNotBlocking())return!1;if(m.irradianceTexture){if(!m.irradianceTexture.isReadyOrNotBlocking())return!1}else if(!m.sphericalPolynomial&&((p=m.getInternalTexture())!=null&&p._sphericalPolynomialPromise))return!1}if(this._lightmapTexture&&Pt.LightmapTextureEnabled&&!this._lightmapTexture.isReadyOrNotBlocking()||this._emissiveTexture&&Pt.EmissiveTextureEnabled&&!this._emissiveTexture.isReadyOrNotBlocking())return!1;if(Pt.SpecularTextureEnabled){if(this._metallicTexture){if(!this._metallicTexture.isReadyOrNotBlocking())return!1}else if(this._reflectivityTexture&&!this._reflectivityTexture.isReadyOrNotBlocking())return!1;if(this._metallicReflectanceTexture&&!this._metallicReflectanceTexture.isReadyOrNotBlocking()||this._reflectanceTexture&&!this._reflectanceTexture.isReadyOrNotBlocking()||this._microSurfaceTexture&&!this._microSurfaceTexture.isReadyOrNotBlocking())return!1}if(o.getCaps().standardDerivatives&&this._bumpTexture&&Pt.BumpTextureEnabled&&!this._disableBumpMap&&!this._bumpTexture.isReady()||this._environmentBRDFTexture&&Pt.ReflectionTextureEnabled&&!this._environmentBRDFTexture.isReady())return!1}if(this._eventInfo.isReadyForSubMesh=!0,this._eventInfo.defines=r,this._eventInfo.subMesh=t,this._callbackPluginEventIsReadyForSubMesh(this._eventInfo),!this._eventInfo.isReadyForSubMesh||r._areImageProcessingDirty&&this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.isReady())return!1;if(r.AREALIGHTUSED){for(let m=0;m<e.lightSources.length;m++)if(!e.lightSources[m]._isReady())return!1}!o.getCaps().standardDerivatives&&!e.isVerticesDataPresent(q.NormalKind)&&(e.createNormals(!0),de.Warn("PBRMaterial: Normals have been created for the mesh: "+e.name));const l=t.effect,c=r._areLightsDisposed;let u=this._prepareEffect(e,r,this.onCompiled,this.onError,i,null,t.getRenderingMesh().hasThinInstances),f=!1;if(u)if(this._onEffectCreatedObservable&&(IP.effect=u,IP.subMesh=t,this._onEffectCreatedObservable.notifyObservers(IP)),this.allowShaderHotSwapping&&l&&!u.isReady()){if(u=l,r.markAsUnprocessed(),f=this.isFrozen,c)return r._areLightsDisposed=!0,!1}else n.resetCachedMaterial(),t.setEffect(u,r,this._materialContext);return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!f,s._wasPreviouslyUsingInstances=!!i,this._checkScenePerformancePriority(),!0)}isMetallicWorkflow(){return!!(this._metallic!=null||this._roughness!=null||this._metallicTexture)}_prepareEffect(e,t,i=null,s=null,r=null,n=null,o){if(this._prepareDefines(e,t,r,n,o),!t.isDirty)return null;t.markAsProcessed();const c=this.getScene().getEngine(),u=new Ra;let f=0;t.USESPHERICALINVERTEX&&u.addFallback(f++,"USESPHERICALINVERTEX"),t.FOG&&u.addFallback(f,"FOG"),t.SPECULARAA&&u.addFallback(f,"SPECULARAA"),t.POINTSIZE&&u.addFallback(f,"POINTSIZE"),t.LOGARITHMICDEPTH&&u.addFallback(f,"LOGARITHMICDEPTH"),t.PARALLAX&&u.addFallback(f,"PARALLAX"),t.PARALLAX_RHS&&u.addFallback(f,"PARALLAX_RHS"),t.PARALLAXOCCLUSION&&u.addFallback(f++,"PARALLAXOCCLUSION"),t.ENVIRONMENTBRDF&&u.addFallback(f++,"ENVIRONMENTBRDF"),t.TANGENT&&u.addFallback(f++,"TANGENT"),t.BUMP&&u.addFallback(f++,"BUMP"),f=Ql(t,u,this._maxSimultaneousLights,f++),t.SPECULARTERM&&u.addFallback(f++,"SPECULARTERM"),t.USESPHERICALFROMREFLECTIONMAP&&u.addFallback(f++,"USESPHERICALFROMREFLECTIONMAP"),t.USEIRRADIANCEMAP&&u.addFallback(f++,"USEIRRADIANCEMAP"),t.LIGHTMAP&&u.addFallback(f++,"LIGHTMAP"),t.NORMAL&&u.addFallback(f++,"NORMAL"),t.AMBIENT&&u.addFallback(f++,"AMBIENT"),t.EMISSIVE&&u.addFallback(f++,"EMISSIVE"),t.VERTEXCOLOR&&u.addFallback(f++,"VERTEXCOLOR"),t.MORPHTARGETS&&u.addFallback(f++,"MORPHTARGETS"),t.MULTIVIEW&&u.addFallback(0,"MULTIVIEW");const p=[q.PositionKind];t.NORMAL&&p.push(q.NormalKind),t.TANGENT&&p.push(q.TangentKind);for(let b=1;b<=6;++b)t["UV"+b]&&p.push(`uv${b===1?"":b}`);t.VERTEXCOLOR&&p.push(q.ColorKind),G1(p,e,t,u),Qo(p,t),vP(p,e,t),CP(p,e,t);let m="pbr";const _=["world","view","viewProjection","vEyePosition","vLightsType","vAmbientColor","vAlbedoColor","baseWeight","vReflectivityColor","vMetallicReflectanceFactors","vEmissiveColor","visibility","vReflectionColor","vFogInfos","vFogColor","pointSize","vAlbedoInfos","vBaseWeightInfos","vAmbientInfos","vOpacityInfos","vReflectionInfos","vReflectionPosition","vReflectionSize","vEmissiveInfos","vReflectivityInfos","vReflectionFilteringInfo","vMetallicReflectanceInfos","vReflectanceInfos","vMicroSurfaceSamplerInfos","vBumpInfos","vLightmapInfos","mBones","albedoMatrix","baseWeightMatrix","ambientMatrix","opacityMatrix","reflectionMatrix","emissiveMatrix","reflectivityMatrix","normalMatrix","microSurfaceSamplerMatrix","bumpMatrix","lightmapMatrix","metallicReflectanceMatrix","reflectanceMatrix","vLightingIntensity","logarithmicDepthConstant","vSphericalX","vSphericalY","vSphericalZ","vSphericalXX_ZZ","vSphericalYY_ZZ","vSphericalZZ","vSphericalXY","vSphericalYZ","vSphericalZX","vSphericalL00","vSphericalL1_1","vSphericalL10","vSphericalL11","vSphericalL2_2","vSphericalL2_1","vSphericalL20","vSphericalL21","vSphericalL22","vReflectionMicrosurfaceInfos","vTangentSpaceParams","boneTextureWidth","vDebugMode","morphTargetTextureInfo","morphTargetTextureIndices"],d=["albedoSampler","baseWeightSampler","reflectivitySampler","ambientSampler","emissiveSampler","bumpSampler","lightmapSampler","opacitySampler","reflectionSampler","reflectionSamplerLow","reflectionSamplerHigh","irradianceSampler","microSurfaceSampler","environmentBrdfSampler","boneSampler","metallicReflectanceSampler","reflectanceSampler","morphTargets","oitDepthSampler","oitFrontColorSampler","icdfSampler","areaLightsLTC1Sampler","areaLightsLTC2Sampler"],h=["Material","Scene","Mesh"],x={maxSimultaneousLights:this._maxSimultaneousLights,maxSimultaneousMorphTargets:t.NUM_MORPH_INFLUENCERS};this._eventInfo.fallbacks=u,this._eventInfo.fallbackRank=f,this._eventInfo.defines=t,this._eventInfo.uniforms=_,this._eventInfo.attributes=p,this._eventInfo.samplers=d,this._eventInfo.uniformBuffersNames=h,this._eventInfo.customCode=void 0,this._eventInfo.mesh=e,this._eventInfo.indexParameters=x,this._callbackPluginEventGeneric(128,this._eventInfo),Da.AddUniformsAndSamplers(_,d),yG.AddUniforms(_),qo(_),ws&&(ws.PrepareUniforms(_,t),ws.PrepareSamplers(d,t)),gl({uniformsNames:_,uniformBuffersNames:h,samplers:d,defines:t,maxSimultaneousLights:this._maxSimultaneousLights});const A={};this.customShaderNameResolve&&(m=this.customShaderNameResolve(m,_,h,d,t,p,A));const S=t.toString(),E=c.createEffect(m,{attributes:p,uniformsNames:_,uniformBuffersNames:h,samplers:d,defines:S,fallbacks:u,onCompiled:i,onError:s,indexParameters:x,processFinalCode:A.processFinalCode,processCodeAfterIncludes:this._eventInfo.customCode,multiTarget:t.PREPASS,shaderLanguage:this._shaderLanguage,extraInitializationsAsync:this._shadersLoaded?void 0:async()=>{this.shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>C6e),Promise.resolve().then(()=>m_e)]):await Promise.all([Promise.resolve().then(()=>O_e),Promise.resolve().then(()=>I8e)]),this._shadersLoaded=!0}},c);return this._eventInfo.customCode=void 0,E}_prepareDefines(e,t,i=null,s=null,r=!1){const n=this.getScene(),o=n.getEngine();Jd(n,e,t,!0,this._maxSimultaneousLights,this._disableLighting),t._needNormals=!0,xP(n,t);const l=this.needAlphaBlendingForMesh(e)&&this.getScene().useOrderIndependentTransparency;if(Ew(n,t,this.canRenderToMRT&&!l),vG(n,t,l),Da.PrepareDefines(o.currentRenderPassId,e,t),t.METALLICWORKFLOW=this.isMetallicWorkflow(),t._areTexturesDirty){t._needUVs=!1;for(let c=1;c<=6;++c)t["MAINUV"+c]=!1;if(n.texturesEnabled){t.ALBEDODIRECTUV=0,t.BASEWEIGHTDIRECTUV=0,t.AMBIENTDIRECTUV=0,t.OPACITYDIRECTUV=0,t.EMISSIVEDIRECTUV=0,t.REFLECTIVITYDIRECTUV=0,t.MICROSURFACEMAPDIRECTUV=0,t.METALLIC_REFLECTANCEDIRECTUV=0,t.REFLECTANCEDIRECTUV=0,t.BUMPDIRECTUV=0,t.LIGHTMAPDIRECTUV=0,o.getCaps().textureLOD&&(t.LODBASEDMICROSFURACE=!0),this._albedoTexture&&Pt.DiffuseTextureEnabled?(En(this._albedoTexture,t,"ALBEDO"),t.GAMMAALBEDO=this._albedoTexture.gammaSpace):t.ALBEDO=!1,this._baseWeightTexture&&Pt.BaseWeightTextureEnabled?En(this._baseWeightTexture,t,"BASEWEIGHT"):t.BASEWEIGHT=!1,this._ambientTexture&&Pt.AmbientTextureEnabled?(En(this._ambientTexture,t,"AMBIENT"),t.AMBIENTINGRAYSCALE=this._useAmbientInGrayScale):t.AMBIENT=!1,this._opacityTexture&&Pt.OpacityTextureEnabled?(En(this._opacityTexture,t,"OPACITY"),t.OPACITYRGB=this._opacityTexture.getAlphaFromRGB):t.OPACITY=!1;const c=this._getReflectionTexture();if(c&&Pt.ReflectionTextureEnabled){switch(t.REFLECTION=!0,t.GAMMAREFLECTION=c.gammaSpace,t.RGBDREFLECTION=c.isRGBD,t.LODINREFLECTIONALPHA=c.lodLevelInAlpha,t.LINEARSPECULARREFLECTION=c.linearSpecularLOD,this.realTimeFiltering&&this.realTimeFilteringQuality>0?(t.NUM_SAMPLES=""+this.realTimeFilteringQuality,o._features.needTypeSuffixInShaderConstants&&(t.NUM_SAMPLES=t.NUM_SAMPLES+"u"),t.REALTIME_FILTERING=!0,this.getScene().iblCdfGenerator&&(t.IBL_CDF_FILTERING=!0)):t.REALTIME_FILTERING=!1,t.INVERTCUBICMAP=c.coordinatesMode===be.INVCUBIC_MODE,t.REFLECTIONMAP_3D=c.isCube,t.REFLECTIONMAP_OPPOSITEZ=t.REFLECTIONMAP_3D&&this.getScene().useRightHandedSystem?!c.invertZ:c.invertZ,t.REFLECTIONMAP_CUBIC=!1,t.REFLECTIONMAP_EXPLICIT=!1,t.REFLECTIONMAP_PLANAR=!1,t.REFLECTIONMAP_PROJECTION=!1,t.REFLECTIONMAP_SKYBOX=!1,t.REFLECTIONMAP_SPHERICAL=!1,t.REFLECTIONMAP_EQUIRECTANGULAR=!1,t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,c.coordinatesMode){case be.EXPLICIT_MODE:t.REFLECTIONMAP_EXPLICIT=!0;break;case be.PLANAR_MODE:t.REFLECTIONMAP_PLANAR=!0;break;case be.PROJECTION_MODE:t.REFLECTIONMAP_PROJECTION=!0;break;case be.SKYBOX_MODE:t.REFLECTIONMAP_SKYBOX=!0;break;case be.SPHERICAL_MODE:t.REFLECTIONMAP_SPHERICAL=!0;break;case be.EQUIRECTANGULAR_MODE:t.REFLECTIONMAP_EQUIRECTANGULAR=!0;break;case be.FIXED_EQUIRECTANGULAR_MODE:t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!0;break;case be.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!0;break;case be.CUBIC_MODE:case be.INVCUBIC_MODE:default:t.REFLECTIONMAP_CUBIC=!0,t.USE_LOCAL_REFLECTIONMAP_CUBIC=!!c.boundingBoxSize;break}c.coordinatesMode!==be.SKYBOX_MODE&&(c.irradianceTexture?(t.USEIRRADIANCEMAP=!0,t.USESPHERICALFROMREFLECTIONMAP=!1,t.USESPHERICALINVERTEX=!1):c.isCube&&(t.USESPHERICALFROMREFLECTIONMAP=!0,t.USEIRRADIANCEMAP=!1,this._forceIrradianceInFragment||this.realTimeFiltering||this._twoSidedLighting||o.getCaps().maxVaryingVectors<=8?t.USESPHERICALINVERTEX=!1:t.USESPHERICALINVERTEX=!0))}else t.REFLECTION=!1,t.REFLECTIONMAP_3D=!1,t.REFLECTIONMAP_SPHERICAL=!1,t.REFLECTIONMAP_PLANAR=!1,t.REFLECTIONMAP_CUBIC=!1,t.USE_LOCAL_REFLECTIONMAP_CUBIC=!1,t.REFLECTIONMAP_PROJECTION=!1,t.REFLECTIONMAP_SKYBOX=!1,t.REFLECTIONMAP_EXPLICIT=!1,t.REFLECTIONMAP_EQUIRECTANGULAR=!1,t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,t.INVERTCUBICMAP=!1,t.USESPHERICALFROMREFLECTIONMAP=!1,t.USEIRRADIANCEMAP=!1,t.USESPHERICALINVERTEX=!1,t.REFLECTIONMAP_OPPOSITEZ=!1,t.LODINREFLECTIONALPHA=!1,t.GAMMAREFLECTION=!1,t.RGBDREFLECTION=!1,t.LINEARSPECULARREFLECTION=!1;this._lightmapTexture&&Pt.LightmapTextureEnabled?(En(this._lightmapTexture,t,"LIGHTMAP"),t.USELIGHTMAPASSHADOWMAP=this._useLightmapAsShadowmap,t.GAMMALIGHTMAP=this._lightmapTexture.gammaSpace,t.RGBDLIGHTMAP=this._lightmapTexture.isRGBD):t.LIGHTMAP=!1,this._emissiveTexture&&Pt.EmissiveTextureEnabled?(En(this._emissiveTexture,t,"EMISSIVE"),t.GAMMAEMISSIVE=this._emissiveTexture.gammaSpace):t.EMISSIVE=!1,Pt.SpecularTextureEnabled?(this._metallicTexture?(En(this._metallicTexture,t,"REFLECTIVITY"),t.ROUGHNESSSTOREINMETALMAPALPHA=this._useRoughnessFromMetallicTextureAlpha,t.ROUGHNESSSTOREINMETALMAPGREEN=!this._useRoughnessFromMetallicTextureAlpha&&this._useRoughnessFromMetallicTextureGreen,t.METALLNESSSTOREINMETALMAPBLUE=this._useMetallnessFromMetallicTextureBlue,t.AOSTOREINMETALMAPRED=this._useAmbientOcclusionFromMetallicTextureRed,t.REFLECTIVITY_GAMMA=!1):this._reflectivityTexture?(En(this._reflectivityTexture,t,"REFLECTIVITY"),t.MICROSURFACEFROMREFLECTIVITYMAP=this._useMicroSurfaceFromReflectivityMapAlpha,t.MICROSURFACEAUTOMATIC=this._useAutoMicroSurfaceFromReflectivityMap,t.REFLECTIVITY_GAMMA=this._reflectivityTexture.gammaSpace):t.REFLECTIVITY=!1,this._metallicReflectanceTexture||this._reflectanceTexture?(t.METALLIC_REFLECTANCE_USE_ALPHA_ONLY=this._useOnlyMetallicFromMetallicReflectanceTexture,this._metallicReflectanceTexture?(En(this._metallicReflectanceTexture,t,"METALLIC_REFLECTANCE"),t.METALLIC_REFLECTANCE_GAMMA=this._metallicReflectanceTexture.gammaSpace):t.METALLIC_REFLECTANCE=!1,this._reflectanceTexture&&(!this._metallicReflectanceTexture||this._metallicReflectanceTexture&&this._useOnlyMetallicFromMetallicReflectanceTexture)?(En(this._reflectanceTexture,t,"REFLECTANCE"),t.REFLECTANCE_GAMMA=this._reflectanceTexture.gammaSpace):t.REFLECTANCE=!1):(t.METALLIC_REFLECTANCE=!1,t.REFLECTANCE=!1),this._microSurfaceTexture?En(this._microSurfaceTexture,t,"MICROSURFACEMAP"):t.MICROSURFACEMAP=!1):(t.REFLECTIVITY=!1,t.MICROSURFACEMAP=!1),o.getCaps().standardDerivatives&&this._bumpTexture&&Pt.BumpTextureEnabled&&!this._disableBumpMap?(En(this._bumpTexture,t,"BUMP"),this._useParallax&&this._albedoTexture&&Pt.DiffuseTextureEnabled?(t.PARALLAX=!0,t.PARALLAX_RHS=n.useRightHandedSystem,t.PARALLAXOCCLUSION=!!this._useParallaxOcclusion):t.PARALLAX=!1,t.OBJECTSPACE_NORMALMAP=this._useObjectSpaceNormalMap):(t.BUMP=!1,t.PARALLAX=!1,t.PARALLAX_RHS=!1,t.PARALLAXOCCLUSION=!1,t.OBJECTSPACE_NORMALMAP=!1),this._environmentBRDFTexture&&Pt.ReflectionTextureEnabled?(t.ENVIRONMENTBRDF=!0,t.ENVIRONMENTBRDF_RGBD=this._environmentBRDFTexture.isRGBD):(t.ENVIRONMENTBRDF=!1,t.ENVIRONMENTBRDF_RGBD=!1),this._shouldUseAlphaFromAlbedoTexture()?t.ALPHAFROMALBEDO=!0:t.ALPHAFROMALBEDO=!1}t.SPECULAROVERALPHA=this._useSpecularOverAlpha,this._lightFalloff===Bs.LIGHTFALLOFF_STANDARD?(t.USEPHYSICALLIGHTFALLOFF=!1,t.USEGLTFLIGHTFALLOFF=!1):this._lightFalloff===Bs.LIGHTFALLOFF_GLTF?(t.USEPHYSICALLIGHTFALLOFF=!1,t.USEGLTFLIGHTFALLOFF=!0):(t.USEPHYSICALLIGHTFALLOFF=!0,t.USEGLTFLIGHTFALLOFF=!1),t.RADIANCEOVERALPHA=this._useRadianceOverAlpha,!this.backFaceCulling&&this._twoSidedLighting?t.TWOSIDEDLIGHTING=!0:t.TWOSIDEDLIGHTING=!1,t.SPECULARAA=o.getCaps().standardDerivatives&&this._enableSpecularAntiAliasing}(t._areTexturesDirty||t._areMiscDirty)&&(t.ALPHATESTVALUE=`${this._alphaCutOff}${this._alphaCutOff%1===0?".":""}`,t.PREMULTIPLYALPHA=this.alphaMode===7||this.alphaMode===8,t.ALPHABLEND=this.needAlphaBlendingForMesh(e),t.ALPHAFRESNEL=this._useAlphaFresnel||this._useLinearAlphaFresnel,t.LINEARALPHAFRESNEL=this._useLinearAlphaFresnel),t._areImageProcessingDirty&&this._imageProcessingConfiguration&&this._imageProcessingConfiguration.prepareDefines(t),t.FORCENORMALFORWARD=this._forceNormalForward,t.RADIANCEOCCLUSION=this._useRadianceOcclusion,t.HORIZONOCCLUSION=this._useHorizonOcclusion,t._areMiscDirty&&(ad(e,n,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),t,this._applyDecalMapAfterDetailMap),t.UNLIT=this._unlit||(this.pointsCloud||this.wireframe)&&!e.isVerticesDataPresent(q.NormalKind),t.DEBUGMODE=this._debugMode),od(n,o,this,t,!!i,s,r),this._eventInfo.defines=t,this._eventInfo.mesh=e,this._callbackPluginEventPrepareDefinesBeforeAttributes(this._eventInfo),zo(e,t,!0,!0,!0,this._transparencyMode!==Bs.PBRMATERIAL_OPAQUE),this._callbackPluginEventPrepareDefines(this._eventInfo)}forceCompilation(e,t,i){const s={clipPlane:!1,useInstances:!1,...i};this._uniformBufferLayoutBuilt||this.buildUniformLayout(),this._callbackPluginEventGeneric(4,this._eventInfo),(()=>{if(this._breakShaderLoadedCheck)return;const n=new VZ(this._eventInfo.defineNames),o=this._prepareEffect(e,n,void 0,void 0,s.useInstances,s.clipPlane,e.hasThinInstances);this._onEffectCreatedObservable&&(IP.effect=o,IP.subMesh=null,this._onEffectCreatedObservable.notifyObservers(IP)),o.isReady()?t&&t(this):o.onCompileObservable.add(()=>{t&&t(this)})})()}buildUniformLayout(){const e=this._uniformBuffer;e.addUniform("vAlbedoInfos",2),e.addUniform("vBaseWeightInfos",2),e.addUniform("vAmbientInfos",4),e.addUniform("vOpacityInfos",2),e.addUniform("vEmissiveInfos",2),e.addUniform("vLightmapInfos",2),e.addUniform("vReflectivityInfos",3),e.addUniform("vMicroSurfaceSamplerInfos",2),e.addUniform("vReflectionInfos",2),e.addUniform("vReflectionFilteringInfo",2),e.addUniform("vReflectionPosition",3),e.addUniform("vReflectionSize",3),e.addUniform("vBumpInfos",3),e.addUniform("albedoMatrix",16),e.addUniform("baseWeightMatrix",16),e.addUniform("ambientMatrix",16),e.addUniform("opacityMatrix",16),e.addUniform("emissiveMatrix",16),e.addUniform("lightmapMatrix",16),e.addUniform("reflectivityMatrix",16),e.addUniform("microSurfaceSamplerMatrix",16),e.addUniform("bumpMatrix",16),e.addUniform("vTangentSpaceParams",2),e.addUniform("reflectionMatrix",16),e.addUniform("vReflectionColor",3),e.addUniform("vAlbedoColor",4),e.addUniform("baseWeight",1),e.addUniform("vLightingIntensity",4),e.addUniform("vReflectionMicrosurfaceInfos",3),e.addUniform("pointSize",1),e.addUniform("vReflectivityColor",4),e.addUniform("vEmissiveColor",3),e.addUniform("vAmbientColor",3),e.addUniform("vDebugMode",2),e.addUniform("vMetallicReflectanceFactors",4),e.addUniform("vMetallicReflectanceInfos",2),e.addUniform("metallicReflectanceMatrix",16),e.addUniform("vReflectanceInfos",2),e.addUniform("reflectanceMatrix",16),e.addUniform("vSphericalL00",3),e.addUniform("vSphericalL1_1",3),e.addUniform("vSphericalL10",3),e.addUniform("vSphericalL11",3),e.addUniform("vSphericalL2_2",3),e.addUniform("vSphericalL2_1",3),e.addUniform("vSphericalL20",3),e.addUniform("vSphericalL21",3),e.addUniform("vSphericalL22",3),e.addUniform("vSphericalX",3),e.addUniform("vSphericalY",3),e.addUniform("vSphericalZ",3),e.addUniform("vSphericalXX_ZZ",3),e.addUniform("vSphericalYY_ZZ",3),e.addUniform("vSphericalZZ",3),e.addUniform("vSphericalXY",3),e.addUniform("vSphericalYZ",3),e.addUniform("vSphericalZX",3),super.buildUniformLayout()}bindForSubMesh(e,t,i){var f,p,m;const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;if(!n)return;this._activeEffect=n,t.getMeshUniformBuffer().bindToEffect(n,"Mesh"),t.transferToEffect(e);const o=s.getEngine();this._uniformBuffer.bindToEffect(n,"Material"),this.prePassConfiguration.bindForSubMesh(this._activeEffect,s,t,e,this.isFrozen),Da.Bind(o.currentRenderPassId,this._activeEffect,t,e,this),this._eventInfo.subMesh=i,this._callbackPluginEventHardBindForSubMesh(this._eventInfo),r.OBJECTSPACE_NORMALMAP&&(e.toNormalMatrix(this._normalMatrix),this.bindOnlyNormalMatrix(this._normalMatrix));const l=this._mustRebind(s,n,i,t.visibility);Pc(t,this._activeEffect,this.prePassConfiguration);let c=null;const u=this._uniformBuffer;if(l){if(this.bindViewProjection(n),c=this._getReflectionTexture(),!u.useUbo||!this.isFrozen||!u.isSync||i._drawWrapper._forceRebindOnNextCall){if(s.texturesEnabled){if(this._albedoTexture&&Pt.DiffuseTextureEnabled&&(u.updateFloat2("vAlbedoInfos",this._albedoTexture.coordinatesIndex,this._albedoTexture.level),Tn(this._albedoTexture,u,"albedo")),this._baseWeightTexture&&Pt.BaseWeightTextureEnabled&&(u.updateFloat2("vBaseWeightInfos",this._baseWeightTexture.coordinatesIndex,this._baseWeightTexture.level),Tn(this._baseWeightTexture,u,"baseWeight")),this._ambientTexture&&Pt.AmbientTextureEnabled&&(u.updateFloat4("vAmbientInfos",this._ambientTexture.coordinatesIndex,this._ambientTexture.level,this._ambientTextureStrength,this._ambientTextureImpactOnAnalyticalLights),Tn(this._ambientTexture,u,"ambient")),this._opacityTexture&&Pt.OpacityTextureEnabled&&(u.updateFloat2("vOpacityInfos",this._opacityTexture.coordinatesIndex,this._opacityTexture.level),Tn(this._opacityTexture,u,"opacity")),c&&Pt.ReflectionTextureEnabled){if(u.updateMatrix("reflectionMatrix",c.getReflectionTextureMatrix()),u.updateFloat2("vReflectionInfos",c.level*s.iblIntensity,0),c.boundingBoxSize){const _=c;u.updateVector3("vReflectionPosition",_.boundingBoxPosition),u.updateVector3("vReflectionSize",_.boundingBoxSize)}if(this.realTimeFiltering){const _=c.getSize().width;u.updateFloat2("vReflectionFilteringInfo",_,Math.log2(_))}if(!r.USEIRRADIANCEMAP){const _=c.sphericalPolynomial;if(r.USESPHERICALFROMREFLECTIONMAP&&_)if(r.SPHERICAL_HARMONICS){const d=_.preScaledHarmonics;u.updateVector3("vSphericalL00",d.l00),u.updateVector3("vSphericalL1_1",d.l1_1),u.updateVector3("vSphericalL10",d.l10),u.updateVector3("vSphericalL11",d.l11),u.updateVector3("vSphericalL2_2",d.l2_2),u.updateVector3("vSphericalL2_1",d.l2_1),u.updateVector3("vSphericalL20",d.l20),u.updateVector3("vSphericalL21",d.l21),u.updateVector3("vSphericalL22",d.l22)}else u.updateFloat3("vSphericalX",_.x.x,_.x.y,_.x.z),u.updateFloat3("vSphericalY",_.y.x,_.y.y,_.y.z),u.updateFloat3("vSphericalZ",_.z.x,_.z.y,_.z.z),u.updateFloat3("vSphericalXX_ZZ",_.xx.x-_.zz.x,_.xx.y-_.zz.y,_.xx.z-_.zz.z),u.updateFloat3("vSphericalYY_ZZ",_.yy.x-_.zz.x,_.yy.y-_.zz.y,_.yy.z-_.zz.z),u.updateFloat3("vSphericalZZ",_.zz.x,_.zz.y,_.zz.z),u.updateFloat3("vSphericalXY",_.xy.x,_.xy.y,_.xy.z),u.updateFloat3("vSphericalYZ",_.yz.x,_.yz.y,_.yz.z),u.updateFloat3("vSphericalZX",_.zx.x,_.zx.y,_.zx.z)}u.updateFloat3("vReflectionMicrosurfaceInfos",c.getSize().width,c.lodGenerationScale,c.lodGenerationOffset)}this._emissiveTexture&&Pt.EmissiveTextureEnabled&&(u.updateFloat2("vEmissiveInfos",this._emissiveTexture.coordinatesIndex,this._emissiveTexture.level),Tn(this._emissiveTexture,u,"emissive")),this._lightmapTexture&&Pt.LightmapTextureEnabled&&(u.updateFloat2("vLightmapInfos",this._lightmapTexture.coordinatesIndex,this._lightmapTexture.level),Tn(this._lightmapTexture,u,"lightmap")),Pt.SpecularTextureEnabled&&(this._metallicTexture?(u.updateFloat3("vReflectivityInfos",this._metallicTexture.coordinatesIndex,this._metallicTexture.level,this._ambientTextureStrength),Tn(this._metallicTexture,u,"reflectivity")):this._reflectivityTexture&&(u.updateFloat3("vReflectivityInfos",this._reflectivityTexture.coordinatesIndex,this._reflectivityTexture.level,1),Tn(this._reflectivityTexture,u,"reflectivity")),this._metallicReflectanceTexture&&(u.updateFloat2("vMetallicReflectanceInfos",this._metallicReflectanceTexture.coordinatesIndex,this._metallicReflectanceTexture.level),Tn(this._metallicReflectanceTexture,u,"metallicReflectance")),this._reflectanceTexture&&r.REFLECTANCE&&(u.updateFloat2("vReflectanceInfos",this._reflectanceTexture.coordinatesIndex,this._reflectanceTexture.level),Tn(this._reflectanceTexture,u,"reflectance")),this._microSurfaceTexture&&(u.updateFloat2("vMicroSurfaceSamplerInfos",this._microSurfaceTexture.coordinatesIndex,this._microSurfaceTexture.level),Tn(this._microSurfaceTexture,u,"microSurfaceSampler"))),this._bumpTexture&&o.getCaps().standardDerivatives&&Pt.BumpTextureEnabled&&!this._disableBumpMap&&(u.updateFloat3("vBumpInfos",this._bumpTexture.coordinatesIndex,this._bumpTexture.level,this._parallaxScaleBias),Tn(this._bumpTexture,u,"bump"),s._mirroredCameraPosition?u.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?1:-1,this._invertNormalMapY?1:-1):u.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?-1:1,this._invertNormalMapY?-1:1))}if(this.pointsCloud&&u.updateFloat("pointSize",this.pointSize),r.METALLICWORKFLOW){Sr.Color3[0].r=this._metallic===void 0||this._metallic===null?1:this._metallic,Sr.Color3[0].g=this._roughness===void 0||this._roughness===null?1:this._roughness,u.updateColor4("vReflectivityColor",Sr.Color3[0],1);const _=((f=this.subSurface)==null?void 0:f._indexOfRefraction)??1.5,d=1,h=Math.pow((_-d)/(_+d),2);this._metallicReflectanceColor.scaleToRef(h*this._metallicF0Factor,Sr.Color3[0]);const x=this._metallicF0Factor;u.updateColor4("vMetallicReflectanceFactors",Sr.Color3[0],x)}else u.updateColor4("vReflectivityColor",this._reflectivityColor,this._microSurface);u.updateColor3("vEmissiveColor",Pt.EmissiveTextureEnabled?this._emissiveColor:Pe.BlackReadOnly),u.updateColor3("vReflectionColor",this._reflectionColor),!r.SS_REFRACTION&&((p=this.subSurface)!=null&&p._linkRefractionWithTransparency)?u.updateColor4("vAlbedoColor",this._albedoColor,1):u.updateColor4("vAlbedoColor",this._albedoColor,this.alpha),u.updateFloat("baseWeight",this._baseWeight),this._lightingInfos.x=this._directIntensity,this._lightingInfos.y=this._emissiveIntensity,this._lightingInfos.z=this._environmentIntensity*s.environmentIntensity,this._lightingInfos.w=this._specularIntensity,u.updateVector4("vLightingIntensity",this._lightingInfos),s.ambientColor.multiplyToRef(this._ambientColor,this._globalAmbientColor),u.updateColor3("vAmbientColor",this._globalAmbientColor),u.updateFloat2("vDebugMode",this.debugLimit,this.debugFactor)}if(s.texturesEnabled){if(this._albedoTexture&&Pt.DiffuseTextureEnabled&&u.setTexture("albedoSampler",this._albedoTexture),this._baseWeightTexture&&Pt.BaseWeightTextureEnabled&&u.setTexture("baseWeightSampler",this._baseWeightTexture),this._ambientTexture&&Pt.AmbientTextureEnabled&&u.setTexture("ambientSampler",this._ambientTexture),this._opacityTexture&&Pt.OpacityTextureEnabled&&u.setTexture("opacitySampler",this._opacityTexture),c&&Pt.ReflectionTextureEnabled){r.LODBASEDMICROSFURACE?u.setTexture("reflectionSampler",c):(u.setTexture("reflectionSampler",c._lodTextureMid||c),u.setTexture("reflectionSamplerLow",c._lodTextureLow||c),u.setTexture("reflectionSamplerHigh",c._lodTextureHigh||c)),r.USEIRRADIANCEMAP&&u.setTexture("irradianceSampler",c.irradianceTexture);const _=this.getScene().iblCdfGenerator;this.realTimeFiltering&&_&&u.setTexture("icdfSampler",_.getIcdfTexture())}r.ENVIRONMENTBRDF&&u.setTexture("environmentBrdfSampler",this._environmentBRDFTexture),this._emissiveTexture&&Pt.EmissiveTextureEnabled&&u.setTexture("emissiveSampler",this._emissiveTexture),this._lightmapTexture&&Pt.LightmapTextureEnabled&&u.setTexture("lightmapSampler",this._lightmapTexture),Pt.SpecularTextureEnabled&&(this._metallicTexture?u.setTexture("reflectivitySampler",this._metallicTexture):this._reflectivityTexture&&u.setTexture("reflectivitySampler",this._reflectivityTexture),this._metallicReflectanceTexture&&u.setTexture("metallicReflectanceSampler",this._metallicReflectanceTexture),this._reflectanceTexture&&r.REFLECTANCE&&u.setTexture("reflectanceSampler",this._reflectanceTexture),this._microSurfaceTexture&&u.setTexture("microSurfaceSampler",this._microSurfaceTexture)),this._bumpTexture&&o.getCaps().standardDerivatives&&Pt.BumpTextureEnabled&&!this._disableBumpMap&&u.setTexture("bumpSampler",this._bumpTexture)}this.getScene().useOrderIndependentTransparency&&this.needAlphaBlendingForMesh(t)&&this.getScene().depthPeelingRenderer.bind(n),this._eventInfo.subMesh=i,this._callbackPluginEventBindForSubMesh(this._eventInfo),Bo(this._activeEffect,this,s),this.bindEyePosition(n)}else s.getEngine()._features.needToAlwaysBindUniformBuffers&&(this._needToBindSceneUbo=!0);(l||!this.isFrozen)&&(s.lightsEnabled&&!this._disableLighting&&Qd(s,t,this._activeEffect,r,this._maxSimultaneousLights),(s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE||c||this.subSurface.refractionTexture||t.receiveShadows||r.PREPASS)&&this.bindView(n),Ic(s,t,this._activeEffect,!0),r.NUM_MORPH_INFLUENCERS&&s3(t,this._activeEffect),r.BAKED_VERTEX_ANIMATION_TEXTURE&&((m=t.bakedVertexAnimationManager)==null||m.bind(n,r.INSTANCES)),this._imageProcessingConfiguration.bind(this._activeEffect),ml(r,this._activeEffect,s)),this._afterBind(t,this._activeEffect,i),u.update()}getAnimatables(){const e=super.getAnimatables();return this._albedoTexture&&this._albedoTexture.animations&&this._albedoTexture.animations.length>0&&e.push(this._albedoTexture),this._baseWeightTexture&&this._baseWeightTexture.animations&&this._baseWeightTexture.animations.length>0&&e.push(this._baseWeightTexture),this._ambientTexture&&this._ambientTexture.animations&&this._ambientTexture.animations.length>0&&e.push(this._ambientTexture),this._opacityTexture&&this._opacityTexture.animations&&this._opacityTexture.animations.length>0&&e.push(this._opacityTexture),this._reflectionTexture&&this._reflectionTexture.animations&&this._reflectionTexture.animations.length>0&&e.push(this._reflectionTexture),this._emissiveTexture&&this._emissiveTexture.animations&&this._emissiveTexture.animations.length>0&&e.push(this._emissiveTexture),this._metallicTexture&&this._metallicTexture.animations&&this._metallicTexture.animations.length>0?e.push(this._metallicTexture):this._reflectivityTexture&&this._reflectivityTexture.animations&&this._reflectivityTexture.animations.length>0&&e.push(this._reflectivityTexture),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&e.push(this._bumpTexture),this._lightmapTexture&&this._lightmapTexture.animations&&this._lightmapTexture.animations.length>0&&e.push(this._lightmapTexture),this._metallicReflectanceTexture&&this._metallicReflectanceTexture.animations&&this._metallicReflectanceTexture.animations.length>0&&e.push(this._metallicReflectanceTexture),this._reflectanceTexture&&this._reflectanceTexture.animations&&this._reflectanceTexture.animations.length>0&&e.push(this._reflectanceTexture),this._microSurfaceTexture&&this._microSurfaceTexture.animations&&this._microSurfaceTexture.animations.length>0&&e.push(this._microSurfaceTexture),e}_getReflectionTexture(){return this._reflectionTexture?this._reflectionTexture:this.getScene().environmentTexture}getActiveTextures(){const e=super.getActiveTextures();return this._albedoTexture&&e.push(this._albedoTexture),this._baseWeightTexture&&e.push(this._baseWeightTexture),this._ambientTexture&&e.push(this._ambientTexture),this._opacityTexture&&e.push(this._opacityTexture),this._reflectionTexture&&e.push(this._reflectionTexture),this._emissiveTexture&&e.push(this._emissiveTexture),this._reflectivityTexture&&e.push(this._reflectivityTexture),this._metallicTexture&&e.push(this._metallicTexture),this._metallicReflectanceTexture&&e.push(this._metallicReflectanceTexture),this._reflectanceTexture&&e.push(this._reflectanceTexture),this._microSurfaceTexture&&e.push(this._microSurfaceTexture),this._bumpTexture&&e.push(this._bumpTexture),this._lightmapTexture&&e.push(this._lightmapTexture),e}hasTexture(e){return!!(super.hasTexture(e)||this._albedoTexture===e||this._baseWeightTexture===e||this._ambientTexture===e||this._opacityTexture===e||this._reflectionTexture===e||this._emissiveTexture===e||this._reflectivityTexture===e||this._metallicTexture===e||this._metallicReflectanceTexture===e||this._reflectanceTexture===e||this._microSurfaceTexture===e||this._bumpTexture===e||this._lightmapTexture===e)}setPrePassRenderer(){var t;if(!((t=this.subSurface)!=null&&t.isScatteringEnabled))return!1;const e=this.getScene().enableSubSurfaceForPrePass();return e&&(e.enabled=!0),!0}dispose(e,t){var i,s,r,n,o,l,c,u,f,p,m,_,d;this._breakShaderLoadedCheck=!0,t&&(this._environmentBRDFTexture&&this.getScene().environmentBRDFTexture!==this._environmentBRDFTexture&&this._environmentBRDFTexture.dispose(),(i=this._albedoTexture)==null||i.dispose(),(s=this._baseWeightTexture)==null||s.dispose(),(r=this._ambientTexture)==null||r.dispose(),(n=this._opacityTexture)==null||n.dispose(),(o=this._reflectionTexture)==null||o.dispose(),(l=this._emissiveTexture)==null||l.dispose(),(c=this._metallicTexture)==null||c.dispose(),(u=this._reflectivityTexture)==null||u.dispose(),(f=this._bumpTexture)==null||f.dispose(),(p=this._lightmapTexture)==null||p.dispose(),(m=this._metallicReflectanceTexture)==null||m.dispose(),(_=this._reflectanceTexture)==null||_.dispose(),(d=this._microSurfaceTexture)==null||d.dispose()),this._renderTargets.dispose(),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),super.dispose(e,t)}}Bs.PBRMATERIAL_OPAQUE=ft.MATERIAL_OPAQUE,Bs.PBRMATERIAL_ALPHATEST=ft.MATERIAL_ALPHATEST,Bs.PBRMATERIAL_ALPHABLEND=ft.MATERIAL_ALPHABLEND,Bs.PBRMATERIAL_ALPHATESTANDBLEND=ft.MATERIAL_ALPHATESTANDBLEND,Bs.DEFAULT_AO_ON_ANALYTICAL_LIGHTS=0,Bs.LIGHTFALLOFF_PHYSICAL=0,Bs.LIGHTFALLOFF_GLTF=1,Bs.LIGHTFALLOFF_STANDARD=2,Bs.ForceGLSL=!1,F([LX()],Bs.prototype,"_imageProcessingConfiguration",void 0),F([et("_markAllSubMeshesAsMiscDirty")],Bs.prototype,"debugMode",void 0);class mi extends Bs{get refractionTexture(){return this.subSurface.refractionTexture}set refractionTexture(e){this.subSurface.refractionTexture=e,e?this.subSurface.isRefractionEnabled=!0:this.subSurface.linkRefractionWithTransparency||(this.subSurface.isRefractionEnabled=!1)}get indexOfRefraction(){return this.subSurface.indexOfRefraction}set indexOfRefraction(e){this.subSurface.indexOfRefraction=e}get invertRefractionY(){return this.subSurface.invertRefractionY}set invertRefractionY(e){this.subSurface.invertRefractionY=e}get linkRefractionWithTransparency(){return this.subSurface.linkRefractionWithTransparency}set linkRefractionWithTransparency(e){this.subSurface.linkRefractionWithTransparency=e,e&&(this.subSurface.isRefractionEnabled=!0)}get usePhysicalLightFalloff(){return this._lightFalloff===Bs.LIGHTFALLOFF_PHYSICAL}set usePhysicalLightFalloff(e){e!==this.usePhysicalLightFalloff&&(this._markAllSubMeshesAsTexturesDirty(),e?this._lightFalloff=Bs.LIGHTFALLOFF_PHYSICAL:this._lightFalloff=Bs.LIGHTFALLOFF_STANDARD)}get useGLTFLightFalloff(){return this._lightFalloff===Bs.LIGHTFALLOFF_GLTF}set useGLTFLightFalloff(e){e!==this.useGLTFLightFalloff&&(this._markAllSubMeshesAsTexturesDirty(),e?this._lightFalloff=Bs.LIGHTFALLOFF_GLTF:this._lightFalloff=Bs.LIGHTFALLOFF_STANDARD)}get imageProcessingConfiguration(){return this._imageProcessingConfiguration}set imageProcessingConfiguration(e){this._attachImageProcessingConfiguration(e),this._markAllSubMeshesAsTexturesDirty()}get cameraColorCurvesEnabled(){return this.imageProcessingConfiguration.colorCurvesEnabled}set cameraColorCurvesEnabled(e){this.imageProcessingConfiguration.colorCurvesEnabled=e}get cameraColorGradingEnabled(){return this.imageProcessingConfiguration.colorGradingEnabled}set cameraColorGradingEnabled(e){this.imageProcessingConfiguration.colorGradingEnabled=e}get cameraToneMappingEnabled(){return this._imageProcessingConfiguration.toneMappingEnabled}set cameraToneMappingEnabled(e){this._imageProcessingConfiguration.toneMappingEnabled=e}get cameraExposure(){return this._imageProcessingConfiguration.exposure}set cameraExposure(e){this._imageProcessingConfiguration.exposure=e}get cameraContrast(){return this._imageProcessingConfiguration.contrast}set cameraContrast(e){this._imageProcessingConfiguration.contrast=e}get cameraColorGradingTexture(){return this._imageProcessingConfiguration.colorGradingTexture}set cameraColorGradingTexture(e){this._imageProcessingConfiguration.colorGradingTexture=e}get cameraColorCurves(){return this._imageProcessingConfiguration.colorCurves}set cameraColorCurves(e){this._imageProcessingConfiguration.colorCurves=e}constructor(e,t,i=!1){super(e,t,i),this.directIntensity=1,this.emissiveIntensity=1,this.environmentIntensity=1,this.specularIntensity=1,this.disableBumpMap=!1,this.ambientTextureStrength=1,this.ambientTextureImpactOnAnalyticalLights=mi.DEFAULT_AO_ON_ANALYTICAL_LIGHTS,this.metallicF0Factor=1,this.metallicReflectanceColor=Pe.White(),this.useOnlyMetallicFromMetallicReflectanceTexture=!1,this.ambientColor=new Pe(0,0,0),this.albedoColor=new Pe(1,1,1),this.baseWeight=1,this.reflectivityColor=new Pe(1,1,1),this.reflectionColor=new Pe(1,1,1),this.emissiveColor=new Pe(0,0,0),this.microSurface=1,this.useLightmapAsShadowmap=!1,this.useAlphaFromAlbedoTexture=!1,this.forceAlphaTest=!1,this.alphaCutOff=.4,this.useSpecularOverAlpha=!0,this.useMicroSurfaceFromReflectivityMapAlpha=!1,this.useRoughnessFromMetallicTextureAlpha=!0,this.useRoughnessFromMetallicTextureGreen=!1,this.useMetallnessFromMetallicTextureBlue=!1,this.useAmbientOcclusionFromMetallicTextureRed=!1,this.useAmbientInGrayScale=!1,this.useAutoMicroSurfaceFromReflectivityMap=!1,this.useRadianceOverAlpha=!0,this.useObjectSpaceNormalMap=!1,this.useParallax=!1,this.useParallaxOcclusion=!1,this.parallaxScaleBias=.05,this.disableLighting=!1,this.forceIrradianceInFragment=!1,this.maxSimultaneousLights=4,this.invertNormalMapX=!1,this.invertNormalMapY=!1,this.twoSidedLighting=!1,this.useAlphaFresnel=!1,this.useLinearAlphaFresnel=!1,this.environmentBRDFTexture=null,this.forceNormalForward=!1,this.enableSpecularAntiAliasing=!1,this.useHorizonOcclusion=!0,this.useRadianceOcclusion=!0,this.unlit=!1,this.applyDecalMapAfterDetailMap=!1,this._environmentBRDFTexture=zw(this.getScene())}getClassName(){return"PBRMaterial"}clone(e,t=!0,i=""){const s=It.Clone(()=>new mi(e,this.getScene()),this,{cloneTexturesOnlyOnce:t});return s.id=e,s.name=e,this.stencil.copyTo(s.stencil),this._clonePlugins(s,i),s}serialize(){const e=super.serialize();return e.customType="BABYLON.PBRMaterial",e}static Parse(e,t,i){const s=It.Parse(()=>new mi(e.name,t),e,t,i);return e.stencil&&s.stencil.parse(e.stencil,t,i),ft._ParsePlugins(e,s,t,i),e.clearCoat&&s.clearCoat.parse(e.clearCoat,t,i),e.anisotropy&&s.anisotropy.parse(e.anisotropy,t,i),e.brdf&&s.brdf.parse(e.brdf,t,i),e.sheen&&s.sheen.parse(e.sheen,t,i),e.subSurface&&s.subSurface.parse(e.subSurface,t,i),e.iridescence&&s.iridescence.parse(e.iridescence,t,i),s}}mi.PBRMATERIAL_OPAQUE=Bs.PBRMATERIAL_OPAQUE,mi.PBRMATERIAL_ALPHATEST=Bs.PBRMATERIAL_ALPHATEST,mi.PBRMATERIAL_ALPHABLEND=Bs.PBRMATERIAL_ALPHABLEND,mi.PBRMATERIAL_ALPHATESTANDBLEND=Bs.PBRMATERIAL_ALPHATESTANDBLEND,mi.DEFAULT_AO_ON_ANALYTICAL_LIGHTS=Bs.DEFAULT_AO_ON_ANALYTICAL_LIGHTS,F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"directIntensity",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"emissiveIntensity",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"environmentIntensity",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"specularIntensity",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"disableBumpMap",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"albedoTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"baseWeightTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"ambientTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"ambientTextureStrength",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"ambientTextureImpactOnAnalyticalLights",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesAndMiscDirty")],mi.prototype,"opacityTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"reflectionTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"emissiveTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"reflectivityTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"metallicTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"metallic",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"roughness",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"metallicF0Factor",void 0),F([qs(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"metallicReflectanceColor",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useOnlyMetallicFromMetallicReflectanceTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"metallicReflectanceTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"reflectanceTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"microSurfaceTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"bumpTexture",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty",null)],mi.prototype,"lightmapTexture",void 0),F([qs("ambient"),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"ambientColor",void 0),F([qs("albedo"),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"albedoColor",void 0),F([G("baseWeight"),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"baseWeight",void 0),F([qs("reflectivity"),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"reflectivityColor",void 0),F([qs("reflection"),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"reflectionColor",void 0),F([qs("emissive"),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"emissiveColor",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"microSurface",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useLightmapAsShadowmap",void 0),F([G(),et("_markAllSubMeshesAsTexturesAndMiscDirty")],mi.prototype,"useAlphaFromAlbedoTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesAndMiscDirty")],mi.prototype,"forceAlphaTest",void 0),F([G(),et("_markAllSubMeshesAsTexturesAndMiscDirty")],mi.prototype,"alphaCutOff",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useSpecularOverAlpha",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useMicroSurfaceFromReflectivityMapAlpha",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useRoughnessFromMetallicTextureAlpha",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useRoughnessFromMetallicTextureGreen",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useMetallnessFromMetallicTextureBlue",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useAmbientOcclusionFromMetallicTextureRed",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useAmbientInGrayScale",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useAutoMicroSurfaceFromReflectivityMap",void 0),F([G()],mi.prototype,"usePhysicalLightFalloff",null),F([G()],mi.prototype,"useGLTFLightFalloff",null),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useRadianceOverAlpha",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useObjectSpaceNormalMap",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useParallax",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useParallaxOcclusion",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"parallaxScaleBias",void 0),F([G(),et("_markAllSubMeshesAsLightsDirty")],mi.prototype,"disableLighting",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"forceIrradianceInFragment",void 0),F([G(),et("_markAllSubMeshesAsLightsDirty")],mi.prototype,"maxSimultaneousLights",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"invertNormalMapX",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"invertNormalMapY",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"twoSidedLighting",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useAlphaFresnel",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useLinearAlphaFresnel",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"environmentBRDFTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"forceNormalForward",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"enableSpecularAntiAliasing",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useHorizonOcclusion",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],mi.prototype,"useRadianceOcclusion",void 0),F([G(),et("_markAllSubMeshesAsMiscDirty")],mi.prototype,"unlit",void 0),F([G(),et("_markAllSubMeshesAsMiscDirty")],mi.prototype,"applyDecalMapAfterDetailMap",void 0),ve("BABYLON.PBRMaterial",mi);class Kv{get influence(){return this._influence}set influence(e){if(this._influence===e)return;const t=this._influence;this._influence=e,this.onInfluenceChanged.hasObservers()&&this.onInfluenceChanged.notifyObservers(t===0||e===0)}get animationPropertiesOverride(){return!this._animationPropertiesOverride&&this._scene?this._scene.animationPropertiesOverride:this._animationPropertiesOverride}set animationPropertiesOverride(e){this._animationPropertiesOverride=e}constructor(e,t=0,i=null){this.name=e,this.animations=[],this._positions=null,this._normals=null,this._tangents=null,this._uvs=null,this._uv2s=null,this._colors=null,this._uniqueId=0,this.onInfluenceChanged=new xe,this._onDataLayoutChanged=new xe,this._animationPropertiesOverride=null,this.id=e,this._scene=i||ei.LastCreatedScene,this.influence=t,this._scene&&(this._uniqueId=this._scene.getUniqueId())}get uniqueId(){return this._uniqueId}get hasPositions(){return!!this._positions}get hasNormals(){return!!this._normals}get hasTangents(){return!!this._tangents}get hasUVs(){return!!this._uvs}get hasUV2s(){return!!this._uv2s}get hasColors(){return!!this._colors}get vertexCount(){return this._positions?this._positions.length/3:this._normals?this._normals.length/3:this._tangents?this._tangents.length/3:this._uvs?this._uvs.length/2:this._uv2s?this._uv2s.length/2:this._colors?this._colors.length/4:0}setPositions(e){const t=this.hasPositions;this._positions=e,t!==this.hasPositions&&this._onDataLayoutChanged.notifyObservers(void 0)}getPositions(){return this._positions}setNormals(e){const t=this.hasNormals;this._normals=e,t!==this.hasNormals&&this._onDataLayoutChanged.notifyObservers(void 0)}getNormals(){return this._normals}setTangents(e){const t=this.hasTangents;this._tangents=e,t!==this.hasTangents&&this._onDataLayoutChanged.notifyObservers(void 0)}getTangents(){return this._tangents}setUVs(e){const t=this.hasUVs;this._uvs=e,t!==this.hasUVs&&this._onDataLayoutChanged.notifyObservers(void 0)}getUVs(){return this._uvs}setUV2s(e){const t=this.hasUV2s;this._uv2s=e,t!==this.hasUV2s&&this._onDataLayoutChanged.notifyObservers(void 0)}getUV2s(){return this._uv2s}setColors(e){const t=this.hasColors;this._colors=e,t!==this.hasColors&&this._onDataLayoutChanged.notifyObservers(void 0)}getColors(){return this._colors}clone(){const e=It.Clone(()=>new Kv(this.name,this.influence,this._scene),this);return e._positions=this._positions,e._normals=this._normals,e._tangents=this._tangents,e._uvs=this._uvs,e._uv2s=this._uv2s,e._colors=this._colors,e}serialize(){const e={};return e.name=this.name,e.influence=this.influence,e.positions=Array.prototype.slice.call(this.getPositions()),this.id!=null&&(e.id=this.id),this.hasNormals&&(e.normals=Array.prototype.slice.call(this.getNormals())),this.hasTangents&&(e.tangents=Array.prototype.slice.call(this.getTangents())),this.hasUVs&&(e.uvs=Array.prototype.slice.call(this.getUVs())),this.hasUV2s&&(e.uv2s=Array.prototype.slice.call(this.getUV2s())),this.hasColors&&(e.colors=Array.prototype.slice.call(this.getColors())),It.AppendSerializedAnimations(this,e),e}getClassName(){return"MorphTarget"}static Parse(e,t){const i=new Kv(e.name,e.influence);if(i.setPositions(e.positions),e.id!=null&&(i.id=e.id),e.normals&&i.setNormals(e.normals),e.tangents&&i.setTangents(e.tangents),e.uvs&&i.setUVs(e.uvs),e.uv2s&&i.setUV2s(e.uv2s),e.colors&&i.setColors(e.colors),e.animations){for(let s=0;s<e.animations.length;s++){const r=e.animations[s],n=ea("BABYLON.Animation");n&&i.animations.push(n.Parse(r))}e.autoAnimate&&t&&t.beginAnimation(i,e.autoAnimateFrom,e.autoAnimateTo,e.autoAnimateLoop,e.autoAnimateSpeed||1)}return i}static FromMesh(e,t,i){t||(t=e.name);const s=new Kv(t,i,e.getScene());return s.setPositions(e.getVerticesData(q.PositionKind)),e.isVerticesDataPresent(q.NormalKind)&&s.setNormals(e.getVerticesData(q.NormalKind)),e.isVerticesDataPresent(q.TangentKind)&&s.setTangents(e.getVerticesData(q.TangentKind)),e.isVerticesDataPresent(q.UVKind)&&s.setUVs(e.getVerticesData(q.UVKind)),e.isVerticesDataPresent(q.UV2Kind)&&s.setUV2s(e.getVerticesData(q.UV2Kind)),e.isVerticesDataPresent(q.ColorKind)&&s.setColors(e.getVerticesData(q.ColorKind)),s}}F([G()],Kv.prototype,"id",void 0);class OG extends be{get depth(){return this._depth}constructor(e,t,i,s,r,n,o=!0,l=!1,c=be.TRILINEAR_SAMPLINGMODE,u=0,f){super(null,n,!o,l),this.format=r,this._texture=n.getEngine().createRawTexture2DArray(e,t,i,s,r,o,l,c,null,u,f),this._depth=s,this.is2DArray=!0}update(e){this._texture&&this._getEngine().updateRawTexture2DArray(this._texture,e,this._texture.format,this._texture.invertY,null,this._texture.type)}static CreateRGBATexture(e,t,i,s,r,n=!0,o=!1,l=3,c=0){return new OG(e,t,i,s,5,r,n,o,l,c)}}class J6{set areUpdatesFrozen(e){e?this._blockCounter++:(this._blockCounter--,this._blockCounter<=0&&(this._blockCounter=0,this._syncActiveTargets(this._forceUpdateWhenUnfrozen),this._forceUpdateWhenUnfrozen=!1))}get areUpdatesFrozen(){return this._blockCounter>0}constructor(e=null){if(this._targets=new Array,this._targetInfluenceChangedObservers=new Array,this._targetDataLayoutChangedObservers=new Array,this._activeTargets=new dl(16),this._supportsPositions=!1,this._supportsNormals=!1,this._supportsTangents=!1,this._supportsUVs=!1,this._supportsUV2s=!1,this._supportsColors=!1,this._vertexCount=0,this._uniqueId=0,this._tempInfluences=new Array,this._canUseTextureForTargets=!1,this._blockCounter=0,this._mustSynchronize=!0,this._forceUpdateWhenUnfrozen=!1,this._textureVertexStride=0,this._textureWidth=0,this._textureHeight=1,this._parentContainer=null,this.optimizeInfluencers=!0,this.enablePositionMorphing=!0,this.enableNormalMorphing=!0,this.enableTangentMorphing=!0,this.enableUVMorphing=!0,this.enableUV2Morphing=!0,this.enableColorMorphing=!0,this._numMaxInfluencers=0,this._useTextureToStoreTargets=!0,e||(e=ei.LastCreatedScene),this._scene=e,this._scene){this._scene.addMorphTargetManager(this),this._uniqueId=this._scene.getUniqueId();const t=this._scene.getEngine().getCaps();this._canUseTextureForTargets=t.canUseGLVertexID&&t.textureFloat&&t.maxVertexTextureImageUnits>0&&t.texture2DArrayMaxLayerCount>1}}get numMaxInfluencers(){return this._numMaxInfluencers}set numMaxInfluencers(e){this._numMaxInfluencers!==e&&(this._numMaxInfluencers=e,this._mustSynchronize=!0,this._syncActiveTargets())}get uniqueId(){return this._uniqueId}get vertexCount(){return this._vertexCount}get supportsPositions(){return this._supportsPositions&&this.enablePositionMorphing}get supportsNormals(){return this._supportsNormals&&this.enableNormalMorphing}get supportsTangents(){return this._supportsTangents&&this.enableTangentMorphing}get supportsUVs(){return this._supportsUVs&&this.enableUVMorphing}get supportsUV2s(){return this._supportsUV2s&&this.enableUV2Morphing}get supportsColors(){return this._supportsColors&&this.enableColorMorphing}get hasPositions(){return this._supportsPositions}get hasNormals(){return this._supportsNormals}get hasTangents(){return this._supportsTangents}get hasUVs(){return this._supportsUVs}get hasUV2s(){return this._supportsUV2s}get hasColors(){return this._supportsColors}get numTargets(){return this._targets.length}get numInfluencers(){return this._activeTargets.length}get influences(){return this._influences}get useTextureToStoreTargets(){return this._useTextureToStoreTargets}set useTextureToStoreTargets(e){this._useTextureToStoreTargets!==e&&(this._useTextureToStoreTargets=e,this._mustSynchronize=!0,this._syncActiveTargets())}get isUsingTextureForTargets(){var e;return J6.EnableTextureStorage&&this.useTextureToStoreTargets&&this._canUseTextureForTargets&&!((e=this._scene)!=null&&e.getEngine().getCaps().disableMorphTargetTexture)}getActiveTarget(e){return this._activeTargets.data[e]}getTarget(e){return this._targets[e]}getTargetByName(e){for(const t of this._targets)if(t.name===e)return t;return null}addTarget(e){this._targets.push(e),this._targetInfluenceChangedObservers.push(e.onInfluenceChanged.add(t=>{this.areUpdatesFrozen&&t&&(this._forceUpdateWhenUnfrozen=!0),this._syncActiveTargets(t)})),this._targetDataLayoutChangedObservers.push(e._onDataLayoutChanged.add(()=>{this._mustSynchronize=!0,this._syncActiveTargets()})),this._mustSynchronize=!0,this._syncActiveTargets()}removeTarget(e){const t=this._targets.indexOf(e);t>=0&&(this._targets.splice(t,1),e.onInfluenceChanged.remove(this._targetInfluenceChangedObservers.splice(t,1)[0]),e._onDataLayoutChanged.remove(this._targetDataLayoutChangedObservers.splice(t,1)[0]),this._mustSynchronize=!0,this._syncActiveTargets()),this._scene&&this._scene.stopAnimation(e)}_bind(e){e.setFloat3("morphTargetTextureInfo",this._textureVertexStride,this._textureWidth,this._textureHeight),e.setFloatArray("morphTargetTextureIndices",this._morphTargetTextureIndices),e.setTexture("morphTargets",this._targetStoreTexture),e.setInt("morphTargetCount",this.numInfluencers)}clone(){const e=new J6(this._scene);for(const t of this._targets)e.addTarget(t.clone());return e.enablePositionMorphing=this.enablePositionMorphing,e.enableNormalMorphing=this.enableNormalMorphing,e.enableTangentMorphing=this.enableTangentMorphing,e.enableUVMorphing=this.enableUVMorphing,e.enableUV2Morphing=this.enableUV2Morphing,e.enableColorMorphing=this.enableColorMorphing,e}serialize(){const e={};e.id=this.uniqueId,e.targets=[];for(const t of this._targets)e.targets.push(t.serialize());return e}_syncActiveTargets(e=!1){if(this.areUpdatesFrozen)return;const t=!!this._targetStoreTexture,i=this.isUsingTextureForTargets;(this._mustSynchronize||t!==i)&&(this._mustSynchronize=!1,this.synchronize());let s=0;this._activeTargets.reset(),(!this._morphTargetTextureIndices||this._morphTargetTextureIndices.length!==this._targets.length)&&(this._morphTargetTextureIndices=new Float32Array(this._targets.length));let r=-1;for(const n of this._targets)if(r++,!(n.influence===0&&this.optimizeInfluencers)){if(this._activeTargets.length>=J6.MaxActiveMorphTargetsInVertexAttributeMode&&!this.isUsingTextureForTargets)break;this._activeTargets.push(n),this._morphTargetTextureIndices[s]=r,this._tempInfluences[s++]=n.influence}this._morphTargetTextureIndices.length!==s&&(this._morphTargetTextureIndices=this._morphTargetTextureIndices.slice(0,s)),(!this._influences||this._influences.length!==s)&&(this._influences=new Float32Array(s));for(let n=0;n<s;n++)this._influences[n]=this._tempInfluences[n];if(e&&this._scene)for(const n of this._scene.meshes)n.morphTargetManager===this&&(i?n._markSubMeshesAsAttributesDirty():n._syncGeometryWithMorphTargetManager())}synchronize(){var t;if(!this._scene||this.areUpdatesFrozen)return;const e=this._scene.getEngine();this._supportsPositions=!0,this._supportsNormals=!0,this._supportsTangents=!0,this._supportsUVs=!0,this._supportsUV2s=!0,this._supportsColors=!0,this._vertexCount=0,(t=this._targetStoreTexture)==null||t.dispose(),this._targetStoreTexture=null,this.isUsingTextureForTargets&&this._targets.length>e.getCaps().texture2DArrayMaxLayerCount&&(this.useTextureToStoreTargets=!1);for(const i of this._targets){this._supportsPositions=this._supportsPositions&&i.hasPositions,this._supportsNormals=this._supportsNormals&&i.hasNormals,this._supportsTangents=this._supportsTangents&&i.hasTangents,this._supportsUVs=this._supportsUVs&&i.hasUVs,this._supportsUV2s=this._supportsUV2s&&i.hasUV2s,this._supportsColors=this._supportsColors&&i.hasColors;const s=i.vertexCount;if(this._vertexCount===0)this._vertexCount=s;else if(this._vertexCount!==s){de.Error(`Incompatible target. Targets must all have the same vertices count. Current vertex count: ${this._vertexCount}, vertex count for target "${i.name}": ${s}`);return}}if(this.isUsingTextureForTargets){this._textureVertexStride=0,this._supportsPositions&&this._textureVertexStride++,this._supportsNormals&&this._textureVertexStride++,this._supportsTangents&&this._textureVertexStride++,this._supportsUVs&&this._textureVertexStride++,this._supportsUV2s&&this._textureVertexStride++,this._supportsColors&&this._textureVertexStride++,this._textureWidth=this._vertexCount*this._textureVertexStride||1,this._textureHeight=1;const i=e.getCaps().maxTextureSize;this._textureWidth>i&&(this._textureHeight=Math.ceil(this._textureWidth/i),this._textureWidth=i);const s=this._targets.length,r=new Float32Array(s*this._textureWidth*this._textureHeight*4);let n=0;for(let o=0;o<s;o++){const l=this._targets[o],c=l.getPositions(),u=l.getNormals(),f=l.getUVs(),p=l.getTangents(),m=l.getUV2s(),_=l.getColors();n=o*this._textureWidth*this._textureHeight*4;for(let d=0;d<this._vertexCount;d++)this._supportsPositions&&c&&(r[n]=c[d*3],r[n+1]=c[d*3+1],r[n+2]=c[d*3+2],n+=4),this._supportsNormals&&u&&(r[n]=u[d*3],r[n+1]=u[d*3+1],r[n+2]=u[d*3+2],n+=4),this._supportsUVs&&f&&(r[n]=f[d*2],r[n+1]=f[d*2+1],n+=4),this._supportsTangents&&p&&(r[n]=p[d*3],r[n+1]=p[d*3+1],r[n+2]=p[d*3+2],n+=4),this._supportsUV2s&&m&&(r[n]=m[d*2],r[n+1]=m[d*2+1],n+=4),this._supportsColors&&_&&(r[n]=_[d*4],r[n+1]=_[d*4+1],r[n+2]=_[d*4+2],r[n+3]=_[d*4+3],n+=4)}this._targetStoreTexture=OG.CreateRGBATexture(r,this._textureWidth,this._textureHeight,s,this._scene,!1,!1,1,1),this._targetStoreTexture.name=`Morph texture_${this.uniqueId}`}for(const i of this._scene.meshes)i.morphTargetManager===this&&i._syncGeometryWithMorphTargetManager()}dispose(){if(this._targetStoreTexture&&this._targetStoreTexture.dispose(),this._targetStoreTexture=null,this._scene){if(this._scene.removeMorphTargetManager(this),this._parentContainer){const e=this._parentContainer.morphTargetManagers.indexOf(this);e>-1&&this._parentContainer.morphTargetManagers.splice(e,1),this._parentContainer=null}for(const e of this._targets)this._scene.stopAnimation(e)}}static Parse(e,t){const i=new J6(t);for(const s of e.targets)i.addTarget(Kv.Parse(s,t));return i}}J6.EnableTextureStorage=!0,J6.MaxActiveMorphTargetsInVertexAttributeMode=8;const GZ=new Map,Mde=GZ;function _n(a,e,t){ln(a)&&de.Warn(`Extension with the name '${a}' already exists`),GZ.set(a,{isGLTFExtension:e,factory:t})}function ln(a){return GZ.delete(a)}class NRe{constructor(e,t){this._gltf=e,this._infoTree=t}convert(e){let t=this._gltf,i=this._infoTree,s;if(!e.startsWith("/"))throw new Error("Path must start with a /");const r=e.split("/");if(r.shift(),r[r.length-1].includes(".length")){const l=r[r.length-1].split(".");r.pop(),r.push(...l)}let n=!1;for(const o of r){const l=o==="length";if(l&&!i.__array__)throw new Error(`Path ${e} is invalid`);if(i.__ignoreObjectTree__&&(n=!0),i.__array__&&!l)i=i.__array__;else if(i=i[o],!i)throw new Error(`Path ${e} is invalid`);if(!n){if(t===void 0)throw new Error(`Path ${e} is invalid`);l||(t=t==null?void 0:t[o])}(i.__target__||l)&&(s=t)}return{object:s,info:i}}}const wRe={length:{type:"number",get:a=>a.length,getTarget:a=>a.map(e=>e._babylonTransformNode),getPropertyName:[()=>"length"]},__array__:{__target__:!0,translation:{type:"Vector3",get:a=>{var e;return(e=a._babylonTransformNode)==null?void 0:e.position},set:(a,e)=>{var t;return(t=e._babylonTransformNode)==null?void 0:t.position.copyFrom(a)},getTarget:a=>a._babylonTransformNode,getPropertyName:[()=>"position"]},rotation:{type:"Quaternion",get:a=>{var e;return(e=a._babylonTransformNode)==null?void 0:e.rotationQuaternion},set:(a,e)=>{var t,i;return(i=(t=e._babylonTransformNode)==null?void 0:t.rotationQuaternion)==null?void 0:i.copyFrom(a)},getTarget:a=>a._babylonTransformNode,getPropertyName:[()=>"rotationQuaternion"]},scale:{type:"Vector3",get:a=>{var e;return(e=a._babylonTransformNode)==null?void 0:e.scaling},set:(a,e)=>{var t;return(t=e._babylonTransformNode)==null?void 0:t.scaling.copyFrom(a)},getTarget:a=>a._babylonTransformNode,getPropertyName:[()=>"scaling"]},weights:{length:{type:"number",get:a=>a._numMorphTargets,getTarget:a=>a._babylonTransformNode,getPropertyName:[()=>"influence"]},__array__:{__target__:!0,type:"number",get:(a,e)=>{var t,i;return e!==void 0?(i=(t=a._primitiveBabylonMeshes)==null?void 0:t[0].morphTargetManager)==null?void 0:i.getTarget(e).influence:void 0},getTarget:a=>a._babylonTransformNode,getPropertyName:[()=>"influence"]},type:"number[]",get:(a,e)=>[0],getTarget:a=>a._babylonTransformNode,getPropertyName:[()=>"influence"]},matrix:{type:"Matrix",get:a=>{var e,t,i;return me.Compose((e=a._babylonTransformNode)==null?void 0:e.scaling,(t=a._babylonTransformNode)==null?void 0:t.rotationQuaternion,(i=a._babylonTransformNode)==null?void 0:i.position)},getTarget:a=>a._babylonTransformNode,isReadOnly:!0},globalMatrix:{type:"Matrix",get:a=>{var s,r,n,o,l,c,u;const e=me.Identity();let t=a.parent;for(;t&&t.parent;)t=t.parent;const i=((s=a._babylonTransformNode)==null?void 0:s.position._isDirty)||((n=(r=a._babylonTransformNode)==null?void 0:r.rotationQuaternion)==null?void 0:n._isDirty)||((o=a._babylonTransformNode)==null?void 0:o.scaling._isDirty);if(t){const f=(l=t._babylonTransformNode)==null?void 0:l.computeWorldMatrix(!0).invert();f&&((u=(c=a._babylonTransformNode)==null?void 0:c.computeWorldMatrix(i))==null||u.multiplyToRef(f,e))}else a._babylonTransformNode&&e.copyFrom(a._babylonTransformNode.computeWorldMatrix(i));return e},getTarget:a=>a._babylonTransformNode,isReadOnly:!0},extensions:{EXT_lights_ies:{multiplier:{type:"number",get:a=>{var e,t;return(t=(e=a._babylonTransformNode)==null?void 0:e.getChildren(i=>i instanceof $o,!0)[0])==null?void 0:t.intensity},getTarget:a=>{var e;return(e=a._babylonTransformNode)==null?void 0:e.getChildren(t=>t instanceof $o,!0)[0]},set:(a,e)=>{if(e._babylonTransformNode){const t=e._babylonTransformNode.getChildren(i=>i instanceof $o,!0)[0];t&&(t.intensity=a)}}},color:{type:"Color3",get:a=>{var e,t;return(t=(e=a._babylonTransformNode)==null?void 0:e.getChildren(i=>i instanceof $o,!0)[0])==null?void 0:t.diffuse},getTarget:a=>{var e;return(e=a._babylonTransformNode)==null?void 0:e.getChildren(t=>t instanceof $o,!0)[0]},set:(a,e)=>{if(e._babylonTransformNode){const t=e._babylonTransformNode.getChildren(i=>i instanceof $o,!0)[0];t&&(t.diffuse=a)}}}}}}},BRe={length:{type:"number",get:a=>a.length,getTarget:a=>a.map(e=>e._babylonAnimationGroup),getPropertyName:[()=>"length"]},__array__:{}},zRe={length:{type:"number",get:a=>a.length,getTarget:a=>a.map(e=>{var t;return(t=e.primitives[0]._instanceData)==null?void 0:t.babylonSourceMesh}),getPropertyName:[()=>"length"]},__array__:{}},FRe={__array__:{__target__:!0,orthographic:{xmag:{componentsCount:2,type:"Vector2",get:a=>{var e,t;return new Ue(((e=a._babylonCamera)==null?void 0:e.orthoLeft)??0,((t=a._babylonCamera)==null?void 0:t.orthoRight)??0)},set:(a,e)=>{e._babylonCamera&&(e._babylonCamera.orthoLeft=a.x,e._babylonCamera.orthoRight=a.y)},getTarget:a=>a,getPropertyName:[()=>"orthoLeft",()=>"orthoRight"]},ymag:{componentsCount:2,type:"Vector2",get:a=>{var e,t;return new Ue(((e=a._babylonCamera)==null?void 0:e.orthoBottom)??0,((t=a._babylonCamera)==null?void 0:t.orthoTop)??0)},set:(a,e)=>{e._babylonCamera&&(e._babylonCamera.orthoBottom=a.x,e._babylonCamera.orthoTop=a.y)},getTarget:a=>a,getPropertyName:[()=>"orthoBottom",()=>"orthoTop"]},zfar:{type:"number",get:a=>{var e;return(e=a._babylonCamera)==null?void 0:e.maxZ},set:(a,e)=>{e._babylonCamera&&(e._babylonCamera.maxZ=a)},getTarget:a=>a,getPropertyName:[()=>"maxZ"]},znear:{type:"number",get:a=>{var e;return(e=a._babylonCamera)==null?void 0:e.minZ},set:(a,e)=>{e._babylonCamera&&(e._babylonCamera.minZ=a)},getTarget:a=>a,getPropertyName:[()=>"minZ"]}},perspective:{aspectRatio:{type:"number",get:a=>{var e;return(e=a._babylonCamera)==null?void 0:e.getEngine().getAspectRatio(a._babylonCamera)},getTarget:a=>a,getPropertyName:[()=>"aspectRatio"],isReadOnly:!0},yfov:{type:"number",get:a=>{var e;return(e=a._babylonCamera)==null?void 0:e.fov},set:(a,e)=>{e._babylonCamera&&(e._babylonCamera.fov=a)},getTarget:a=>a,getPropertyName:[()=>"fov"]},zfar:{type:"number",get:a=>{var e;return(e=a._babylonCamera)==null?void 0:e.maxZ},set:(a,e)=>{e._babylonCamera&&(e._babylonCamera.maxZ=a)},getTarget:a=>a,getPropertyName:[()=>"maxZ"]},znear:{type:"number",get:a=>{var e;return(e=a._babylonCamera)==null?void 0:e.minZ},set:(a,e)=>{e._babylonCamera&&(e._babylonCamera.minZ=a)},getTarget:a=>a,getPropertyName:[()=>"minZ"]}}}},kRe={__array__:{__target__:!0,emissiveFactor:{type:"Color3",get:(a,e,t)=>ss(a,e,t).emissiveColor,set:(a,e,t,i)=>ss(e,t,i).emissiveColor.copyFrom(a),getTarget:(a,e,t)=>ss(a,e,t),getPropertyName:[()=>"emissiveColor"]},emissiveTexture:{extensions:{KHR_texture_transform:cd("emissiveTexture")}},normalTexture:{scale:{type:"number",get:(a,e,t)=>{var i;return(i=UT(a,t,"bumpTexture"))==null?void 0:i.level},set:(a,e,t,i)=>{const s=UT(e,i,"bumpTexture");s&&(s.level=a)},getTarget:(a,e,t)=>ss(a,e,t),getPropertyName:[()=>"level"]},extensions:{KHR_texture_transform:cd("bumpTexture")}},occlusionTexture:{strength:{type:"number",get:(a,e,t)=>ss(a,e,t).ambientTextureStrength,set:(a,e,t,i)=>{const s=ss(e,t,i);s&&(s.ambientTextureStrength=a)},getTarget:(a,e,t)=>ss(a,e,t),getPropertyName:[()=>"ambientTextureStrength"]},extensions:{KHR_texture_transform:cd("ambientTexture")}},pbrMetallicRoughness:{baseColorFactor:{type:"Color4",get:(a,e,t)=>{const i=ss(a,e,t);return St.FromColor3(i.albedoColor,i.alpha)},set:(a,e,t,i)=>{const s=ss(e,t,i);s.albedoColor.set(a.r,a.g,a.b),s.alpha=a.a},getTarget:(a,e,t)=>ss(a,e,t),getPropertyName:[()=>"albedoColor",()=>"alpha"]},baseColorTexture:{extensions:{KHR_texture_transform:cd("albedoTexture")}},metallicFactor:{type:"number",get:(a,e,t)=>ss(a,e,t).metallic,set:(a,e,t,i)=>{const s=ss(e,t,i);s&&(s.metallic=a)},getTarget:(a,e,t)=>ss(a,e,t),getPropertyName:[()=>"metallic"]},roughnessFactor:{type:"number",get:(a,e,t)=>ss(a,e,t).roughness,set:(a,e,t,i)=>{const s=ss(e,t,i);s&&(s.roughness=a)},getTarget:(a,e,t)=>ss(a,e,t),getPropertyName:[()=>"roughness"]},metallicRoughnessTexture:{extensions:{KHR_texture_transform:cd("metallicTexture")}}},extensions:{KHR_materials_anisotropy:{anisotropyStrength:{type:"number",get:(a,e,t)=>ss(a,e,t).anisotropy.intensity,set:(a,e,t,i)=>{ss(e,t,i).anisotropy.intensity=a},getTarget:(a,e,t)=>ss(a,e,t),getPropertyName:[()=>"anisotropy.intensity"]},anisotropyRotation:{type:"number",get:(a,e,t)=>ss(a,e,t).anisotropy.angle,set:(a,e,t,i)=>{ss(e,t,i).anisotropy.angle=a},getTarget:(a,e,t)=>ss(a,e,t),getPropertyName:[()=>"anisotropy.angle"]},anisotropyTexture:{extensions:{KHR_texture_transform:cd("anisotropy","texture")}}},KHR_materials_clearcoat:{clearcoatFactor:{type:"number",get:(a,e,t)=>ss(a,e,t).clearCoat.intensity,set:(a,e,t,i)=>{ss(e,t,i).clearCoat.intensity=a},getTarget:(a,e,t)=>ss(a,e,t),getPropertyName:[()=>"clearCoat.intensity"]},clearcoatRoughnessFactor:{type:"number",get:(a,e,t)=>ss(a,e,t).clearCoat.roughness,set:(a,e,t,i)=>{ss(e,t,i).clearCoat.roughness=a},getTarget:(a,e,t)=>ss(a,e,t),getPropertyName:[()=>"clearCoat.roughness"]},clearcoatTexture:{extensions:{KHR_texture_transform:cd("clearCoat","texture")}},clearcoatNormalTexture:{scale:{type:"number",get:(a,e,t)=>{var i;return(i=ss(a,e,t).clearCoat.bumpTexture)==null?void 0:i.level},getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).clearCoat.bumpTexture.level=a},extensions:{KHR_texture_transform:cd("clearCoat","bumpTexture")}},clearcoatRoughnessTexture:{extensions:{KHR_texture_transform:cd("clearCoat","textureRoughness")}}},KHR_materials_dispersion:{dispersion:{type:"number",get:(a,e,t)=>ss(a,e,t).subSurface.dispersion,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).subSurface.dispersion=a}},KHR_materials_emissive_strength:{emissiveStrength:{type:"number",get:(a,e,t)=>ss(a,e,t).emissiveIntensity,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).emissiveIntensity=a}},KHR_materials_ior:{ior:{type:"number",get:(a,e,t)=>ss(a,e,t).indexOfRefraction,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).indexOfRefraction=a}},KHR_materials_iridescence:{iridescenceFactor:{type:"number",get:(a,e,t)=>ss(a,e,t).iridescence.intensity,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).iridescence.intensity=a},iridescenceIor:{type:"number",get:(a,e,t)=>ss(a,e,t).iridescence.indexOfRefraction,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).iridescence.indexOfRefraction=a},iridescenceTexture:{extensions:{KHR_texture_transform:cd("iridescence","texture")}},iridescenceThicknessMaximum:{type:"number",get:(a,e,t)=>ss(a,e,t).iridescence.maximumThickness,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).iridescence.maximumThickness=a},iridescenceThicknessMinimum:{type:"number",get:(a,e,t)=>ss(a,e,t).iridescence.minimumThickness,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).iridescence.minimumThickness=a},iridescenceThicknessTexture:{extensions:{KHR_texture_transform:cd("iridescence","thicknessTexture")}}},KHR_materials_sheen:{sheenColorFactor:{type:"Color3",get:(a,e,t)=>ss(a,e,t).sheen.color,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).sheen.color.copyFrom(a)},sheenColorTexture:{extensions:{KHR_texture_transform:cd("sheen","texture")}},sheenRoughnessFactor:{type:"number",get:(a,e,t)=>ss(a,e,t).sheen.intensity,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).sheen.intensity=a},sheenRoughnessTexture:{extensions:{KHR_texture_transform:cd("sheen","thicknessTexture")}}},KHR_materials_specular:{specularFactor:{type:"number",get:(a,e,t)=>ss(a,e,t).metallicF0Factor,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).metallicF0Factor=a,getPropertyName:[()=>"metallicF0Factor"]},specularColorFactor:{type:"Color3",get:(a,e,t)=>ss(a,e,t).metallicReflectanceColor,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).metallicReflectanceColor.copyFrom(a),getPropertyName:[()=>"metallicReflectanceColor"]},specularTexture:{extensions:{KHR_texture_transform:cd("metallicReflectanceTexture")}},specularColorTexture:{extensions:{KHR_texture_transform:cd("reflectanceTexture")}}},KHR_materials_transmission:{transmissionFactor:{type:"number",get:(a,e,t)=>ss(a,e,t).subSurface.refractionIntensity,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).subSurface.refractionIntensity=a,getPropertyName:[()=>"subSurface.refractionIntensity"]},transmissionTexture:{extensions:{KHR_texture_transform:cd("subSurface","refractionIntensityTexture")}}},KHR_materials_diffuse_transmission:{diffuseTransmissionFactor:{type:"number",get:(a,e,t)=>ss(a,e,t).subSurface.translucencyIntensity,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).subSurface.translucencyIntensity=a},diffuseTransmissionTexture:{extensions:{KHR_texture_transform:cd("subSurface","translucencyIntensityTexture")}},diffuseTransmissionColorFactor:{type:"Color3",get:(a,e,t)=>ss(a,e,t).subSurface.translucencyColor,getTarget:ss,set:(a,e,t,i)=>{var s;return a&&((s=ss(e,t,i).subSurface.translucencyColor)==null?void 0:s.copyFrom(a))}},diffuseTransmissionColorTexture:{extensions:{KHR_texture_transform:cd("subSurface","translucencyColorTexture")}}},KHR_materials_volume:{attenuationColor:{type:"Color3",get:(a,e,t)=>ss(a,e,t).subSurface.tintColor,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).subSurface.tintColor.copyFrom(a)},attenuationDistance:{type:"number",get:(a,e,t)=>ss(a,e,t).subSurface.tintColorAtDistance,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).subSurface.tintColorAtDistance=a},thicknessFactor:{type:"number",get:(a,e,t)=>ss(a,e,t).subSurface.maximumThickness,getTarget:ss,set:(a,e,t,i)=>ss(e,t,i).subSurface.maximumThickness=a},thicknessTexture:{extensions:{KHR_texture_transform:cd("subSurface","thicknessTexture")}}}}}},URe={KHR_lights_punctual:{lights:{length:{type:"number",get:a=>a.length,getTarget:a=>a.map(e=>e._babylonLight),getPropertyName:[a=>"length"]},__array__:{__target__:!0,color:{type:"Color3",get:a=>{var e;return(e=a._babylonLight)==null?void 0:e.diffuse},set:(a,e)=>{var t;return(t=e._babylonLight)==null?void 0:t.diffuse.copyFrom(a)},getTarget:a=>a._babylonLight,getPropertyName:[a=>"diffuse"]},intensity:{type:"number",get:a=>{var e;return(e=a._babylonLight)==null?void 0:e.intensity},set:(a,e)=>e._babylonLight?e._babylonLight.intensity=a:void 0,getTarget:a=>a._babylonLight,getPropertyName:[a=>"intensity"]},range:{type:"number",get:a=>{var e;return(e=a._babylonLight)==null?void 0:e.range},set:(a,e)=>e._babylonLight?e._babylonLight.range=a:void 0,getTarget:a=>a._babylonLight,getPropertyName:[a=>"range"]},spot:{innerConeAngle:{type:"number",get:a=>{var e;return(e=a._babylonLight)==null?void 0:e.innerAngle},set:(a,e)=>e._babylonLight?e._babylonLight.innerAngle=a:void 0,getTarget:a=>a._babylonLight,getPropertyName:[a=>"innerConeAngle"]},outerConeAngle:{type:"number",get:a=>{var e;return(e=a._babylonLight)==null?void 0:e.angle},set:(a,e)=>e._babylonLight?e._babylonLight.angle=a:void 0,getTarget:a=>a._babylonLight,getPropertyName:[a=>"outerConeAngle"]}}}}},EXT_lights_ies:{lights:{length:{type:"number",get:a=>a.length,getTarget:a=>a.map(e=>e._babylonLight),getPropertyName:[a=>"length"]}}},EXT_lights_image_based:{lights:{length:{type:"number",get:a=>a.length,getTarget:a=>a.map(e=>e._babylonTexture),getPropertyName:[a=>"length"]},__array__:{__target__:!0,intensity:{type:"number",get:a=>{var e;return(e=a._babylonTexture)==null?void 0:e.level},set:(a,e)=>{e._babylonTexture&&(e._babylonTexture.level=a)},getTarget:a=>a._babylonTexture},rotation:{type:"Quaternion",get:a=>{var e;return a._babylonTexture&&Re.FromRotationMatrix((e=a._babylonTexture)==null?void 0:e.getReflectionTextureMatrix())},set:(a,e)=>{var t;e._babylonTexture&&((t=e._babylonTexture.getScene())!=null&&t.useRightHandedSystem||(a=Re.Inverse(a)),me.FromQuaternionToRef(a,e._babylonTexture.getReflectionTextureMatrix()))},getTarget:a=>a._babylonTexture}}}}};function UT(a,e,t,i){const s=ss(a);return i?s[t][i]:s[t]}function ss(a,e,t){var i,s;return(s=(i=a._data)==null?void 0:i[(t==null?void 0:t.fillMode)??ze.MATERIAL_TriangleFillMode])==null?void 0:s.babylonMaterial}function cd(a,e){return{offset:{componentsCount:2,type:"Vector2",get:(t,i,s)=>{const r=UT(t,s,a,e);return new Ue(r==null?void 0:r.uOffset,r==null?void 0:r.vOffset)},getTarget:ss,set:(t,i,s,r)=>{const n=UT(i,r,a,e);n.uOffset=t.x,n.vOffset=t.y},getPropertyName:[()=>`${a}${e?"."+e:""}.uOffset`,()=>`${a}${e?"."+e:""}.vOffset`]},rotation:{type:"number",get:(t,i,s)=>{var r;return(r=UT(t,s,a,e))==null?void 0:r.wAng},getTarget:ss,set:(t,i,s,r)=>UT(i,r,a,e).wAng=t,getPropertyName:[()=>`${a}${e?"."+e:""}.wAng`]},scale:{componentsCount:2,type:"Vector2",get:(t,i,s)=>{const r=UT(t,s,a,e);return new Ue(r==null?void 0:r.uScale,r==null?void 0:r.vScale)},getTarget:ss,set:(t,i,s,r)=>{const n=UT(i,r,a,e);n.uScale=t.x,n.vScale=t.y},getPropertyName:[()=>`${a}${e?"."+e:""}.uScale`,()=>`${a}${e?"."+e:""}.vScale`]}}}const RG={cameras:FRe,nodes:wRe,materials:kRe,extensions:URe,animations:BRe,meshes:zRe};function WZ(a){return new NRe(a,RG)}function Fw(a){const e=a.split("/").map(i=>i.replace(/{}/g,"__array__"));let t=RG;for(const i of e)i&&(t=t[i]);if(t&&t.type&&t.get)return t}function Ri(a,e){const t=a.split("/").map(s=>s.replace(/{}/g,"__array__"));let i=RG;for(const s of t)s&&(i=i[s]);i&&i.type&&i.get&&(i.interpolation=e)}function qv(a,e){const t=a.split("/").map(s=>s.replace(/{}/g,"__array__"));let i=RG;for(const s of t)if(s){if(!i[s]){if(s==="?"){i.__ignoreObjectTree__=!0;continue}i[s]={},s==="__array__"&&(i[s].__target__=!0)}i=i[s]}Object.assign(i,e)}function DG(...a){const e=t=>!!t&&typeof t=="object";return a.reduce((t,i)=>(Object.keys(i).forEach(s=>{const r=t[s],n=i[s];Array.isArray(r)&&Array.isArray(n)?t[s]=r.concat(...n):e(r)&&e(n)?t[s]=DG(r,n):t[s]=n}),t),{})}class gs{static Get(e,t,i){if(!t||i==null||!t[i])throw new Error(`${e}: Failed to find index (${i})`);return t[i]}static TryGet(e,t){return!e||t==null||!e[t]?null:e[t]}static Assign(e){if(e)for(let t=0;t<e.length;t++)e[t].index=t}}function HZ(a){if(a.min&&a.max){const e=a.min,t=a.max,i=ae.Vector3[0].copyFromFloats(e[0],e[1],e[2]),s=ae.Vector3[1].copyFromFloats(t[0],t[1],t[2]);if(a.normalized&&a.componentType!==5126){let r=1;switch(a.componentType){case 5120:r=127;break;case 5121:r=255;break;case 5122:r=32767;break;case 5123:r=65535;break}const n=1/r;i.scaleInPlace(n),s.scaleInPlace(n)}return new nd(i,s)}return null}class Rs{static RegisterExtension(e,t){_n(e,!1,t)}static UnregisterExtension(e){return ln(e)}get gltf(){if(!this._gltf)throw new Error("glTF JSON is not available");return this._gltf}get bin(){return this._bin}get parent(){return this._parent}get babylonScene(){if(!this._babylonScene)throw new Error("Scene is not available");return this._babylonScene}get rootBabylonMesh(){return this._rootBabylonMesh}get rootUrl(){return this._rootUrl}constructor(e){this._completePromises=new Array,this._assetContainer=null,this._babylonLights=[],this._disableInstancedMesh=0,this._allMaterialsDirtyRequired=!1,this._skipStartAnimationStep=!1,this._extensions=new Array,this._disposed=!1,this._rootUrl=null,this._fileName=null,this._uniqueRootUrl=null,this._bin=null,this._rootBabylonMesh=null,this._defaultBabylonMaterialData={},this._postSceneLoadActions=new Array,this._parent=e}dispose(){this._disposed||(this._disposed=!0,this._completePromises.length=0,this._extensions.forEach(e=>e.dispose&&e.dispose()),this._extensions.length=0,this._gltf=null,this._bin=null,this._babylonScene=null,this._rootBabylonMesh=null,this._defaultBabylonMaterialData={},this._postSceneLoadActions.length=0,this._parent.dispose())}importMeshAsync(e,t,i,s,r,n,o=""){return Promise.resolve().then(()=>{this._babylonScene=t,this._assetContainer=i,this._loadData(s);let l=null;if(e){const c={};if(this._gltf.nodes)for(const f of this._gltf.nodes)f.name&&(c[f.name]=f.index);l=(e instanceof Array?e:[e]).map(f=>{const p=c[f];if(p===void 0)throw new Error(`Failed to find node '${f}'`);return p})}return this._loadAsync(r,o,l,()=>({meshes:this._getMeshes(),particleSystems:[],skeletons:this._getSkeletons(),animationGroups:this._getAnimationGroups(),lights:this._babylonLights,transformNodes:this._getTransformNodes(),geometries:this._getGeometries(),spriteManagers:[]}))})}loadAsync(e,t,i,s,r=""){return Promise.resolve().then(()=>(this._babylonScene=e,this._loadData(t),this._loadAsync(i,r,null,()=>{})))}_loadAsync(e,t,i,s){return Promise.resolve().then(async()=>{this._rootUrl=e,this._uniqueRootUrl=!e.startsWith("file:")&&t?e:`${e}${Date.now()}/`,this._fileName=t,this._allMaterialsDirtyRequired=!1,await this._loadExtensionsAsync();const r=`${C0[C0.LOADING]} => ${C0[C0.READY]}`,n=`${C0[C0.LOADING]} => ${C0[C0.COMPLETE]}`;this._parent._startPerformanceCounter(r),this._parent._startPerformanceCounter(n),this._parent._setState(C0.LOADING),this._extensionsOnLoading();const o=new Array,l=this._babylonScene.blockMaterialDirtyMechanism;if(this._babylonScene.blockMaterialDirtyMechanism=!0,!this.parent.loadOnlyMaterials){if(i)o.push(this.loadSceneAsync("/nodes",{nodes:i,index:-1}));else if(this._gltf.scene!=null||this._gltf.scenes&&this._gltf.scenes[0]){const u=gs.Get("/scene",this._gltf.scenes,this._gltf.scene||0);o.push(this.loadSceneAsync(`/scenes/${u.index}`,u))}}if(!this.parent.skipMaterials&&this.parent.loadAllMaterials&&this._gltf.materials)for(let u=0;u<this._gltf.materials.length;++u){const f=this._gltf.materials[u],p="/materials/"+u,m=ft.TriangleFillMode;o.push(this._loadMaterialAsync(p,f,null,m,()=>{}))}return this._allMaterialsDirtyRequired?this._babylonScene.blockMaterialDirtyMechanism=l:this._babylonScene._forceBlockMaterialDirtyMechanism(l),this._parent.compileMaterials&&o.push(this._compileMaterialsAsync()),this._parent.compileShadowGenerators&&o.push(this._compileShadowGeneratorsAsync()),Promise.all(o).then(()=>{this._rootBabylonMesh&&this._rootBabylonMesh!==this._parent.customRootNode&&this._rootBabylonMesh.setEnabled(!0);for(const u of this._babylonScene.materials){const f=u;f.maxSimultaneousLights!==void 0&&(f.maxSimultaneousLights=Math.max(f.maxSimultaneousLights,this._babylonScene.lights.length))}return this._extensionsOnReady(),this._parent._setState(C0.READY),this._skipStartAnimationStep||this._startAnimations(),s()}).then(u=>(this._parent._endPerformanceCounter(r),Le.SetImmediate(()=>{this._disposed||Promise.all(this._completePromises).then(()=>{this._parent._endPerformanceCounter(n),this._parent._setState(C0.COMPLETE),this._parent.onCompleteObservable.notifyObservers(void 0),this._parent.onCompleteObservable.clear(),this.dispose()},f=>{this._parent.onErrorObservable.notifyObservers(f),this._parent.onErrorObservable.clear(),this.dispose()})}),u))}).catch(r=>{throw this._disposed||(this._parent.onErrorObservable.notifyObservers(r),this._parent.onErrorObservable.clear(),this.dispose()),r})}_loadData(e){if(this._gltf=e.json,this._setupData(),e.bin){const t=this._gltf.buffers;if(t&&t[0]&&!t[0].uri){const i=t[0];(i.byteLength<e.bin.byteLength-3||i.byteLength>e.bin.byteLength)&&de.Warn(`Binary buffer length (${i.byteLength}) from JSON does not match chunk length (${e.bin.byteLength})`),this._bin=e.bin}else de.Warn("Unexpected BIN chunk")}}_setupData(){if(gs.Assign(this._gltf.accessors),gs.Assign(this._gltf.animations),gs.Assign(this._gltf.buffers),gs.Assign(this._gltf.bufferViews),gs.Assign(this._gltf.cameras),gs.Assign(this._gltf.images),gs.Assign(this._gltf.materials),gs.Assign(this._gltf.meshes),gs.Assign(this._gltf.nodes),gs.Assign(this._gltf.samplers),gs.Assign(this._gltf.scenes),gs.Assign(this._gltf.skins),gs.Assign(this._gltf.textures),this._gltf.nodes){const e={};for(const i of this._gltf.nodes)if(i.children)for(const s of i.children)e[s]=i.index;const t=this._createRootNode();for(const i of this._gltf.nodes){const s=e[i.index];i.parent=s===void 0?t:this._gltf.nodes[s]}}}async _loadExtensionsAsync(){var t;const e=[];if(Mde.forEach((i,s)=>{var r;((r=this.parent.extensionOptions[s])==null?void 0:r.enabled)===!1?i.isGLTFExtension&&this.isExtensionUsed(s)&&de.Warn(`Extension ${s} is used but has been explicitly disabled.`):(!i.isGLTFExtension||this.isExtensionUsed(s))&&e.push((async()=>{const n=await i.factory(this);return n.name!==s&&de.Warn(`The name of the glTF loader extension instance does not match the registered name: ${n.name} !== ${s}`),this._parent.onExtensionLoadedObservable.notifyObservers(n),n})())}),this._extensions.push(...await Promise.all(e)),this._extensions.sort((i,s)=>(i.order||Number.MAX_VALUE)-(s.order||Number.MAX_VALUE)),this._parent.onExtensionLoadedObservable.clear(),this._gltf.extensionsRequired){for(const i of this._gltf.extensionsRequired)if(!this._extensions.some(r=>r.name===i&&r.enabled))throw((t=this.parent.extensionOptions[i])==null?void 0:t.enabled)===!1?new Error(`Required extension ${i} is disabled`):new Error(`Required extension ${i} is not available`)}}_createRootNode(){if(this._parent.customRootNode!==void 0)return this._rootBabylonMesh=this._parent.customRootNode,{_babylonTransformNode:this._rootBabylonMesh===null?void 0:this._rootBabylonMesh,index:-1};this._babylonScene._blockEntityCollection=!!this._assetContainer;const e=new Ne("__root__",this._babylonScene);this._rootBabylonMesh=e,this._rootBabylonMesh._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,this._rootBabylonMesh.setEnabled(!1);const t={_babylonTransformNode:this._rootBabylonMesh,index:-1};switch(this._parent.coordinateSystemMode){case SP.AUTO:{this._babylonScene.useRightHandedSystem||(t.rotation=[0,1,0,0],t.scale=[1,1,-1],Rs._LoadTransform(t,this._rootBabylonMesh));break}case SP.FORCE_RIGHT_HANDED:{this._babylonScene.useRightHandedSystem=!0;break}default:throw new Error(`Invalid coordinate system mode (${this._parent.coordinateSystemMode})`)}return this._parent.onMeshLoadedObservable.notifyObservers(e),t}loadSceneAsync(e,t){const i=this._extensionsLoadSceneAsync(e,t);if(i)return i;const s=new Array;if(this.logOpen(`${e} ${t.name||""}`),t.nodes)for(const r of t.nodes){const n=gs.Get(`${e}/nodes/${r}`,this._gltf.nodes,r);s.push(this.loadNodeAsync(`/nodes/${n.index}`,n,o=>{o.parent=this._rootBabylonMesh}))}for(const r of this._postSceneLoadActions)r();return s.push(this._loadAnimationsAsync()),this.logClose(),Promise.all(s).then(()=>{})}_forEachPrimitive(e,t){if(e._primitiveBabylonMeshes)for(const i of e._primitiveBabylonMeshes)t(i)}_getGeometries(){const e=[],t=this._gltf.nodes;if(t)for(const i of t)this._forEachPrimitive(i,s=>{const r=s.geometry;r&&e.indexOf(r)===-1&&e.push(r)});return e}_getMeshes(){const e=[];this._rootBabylonMesh instanceof cr&&e.push(this._rootBabylonMesh);const t=this._gltf.nodes;if(t)for(const i of t)this._forEachPrimitive(i,s=>{e.push(s)});return e}_getTransformNodes(){const e=[],t=this._gltf.nodes;if(t)for(const i of t)i._babylonTransformNode&&i._babylonTransformNode.getClassName()==="TransformNode"&&e.push(i._babylonTransformNode),i._babylonTransformNodeForSkin&&e.push(i._babylonTransformNodeForSkin);return e}_getSkeletons(){const e=[],t=this._gltf.skins;if(t)for(const i of t)i._data&&e.push(i._data.babylonSkeleton);return e}_getAnimationGroups(){const e=[],t=this._gltf.animations;if(t)for(const i of t)i._babylonAnimationGroup&&e.push(i._babylonAnimationGroup);return e}_startAnimations(){switch(this._parent.animationStartMode){case Z9.NONE:break;case Z9.FIRST:{const e=this._getAnimationGroups();e.length!==0&&e[0].start(!0);break}case Z9.ALL:{const e=this._getAnimationGroups();for(const t of e)t.start(!0);break}default:{de.Error(`Invalid animation start mode (${this._parent.animationStartMode})`);return}}}loadNodeAsync(e,t,i=()=>{}){const s=this._extensionsLoadNodeAsync(e,t,i);if(s)return s;if(t._babylonTransformNode)throw new Error(`${e}: Invalid recursive node hierarchy`);const r=new Array;this.logOpen(`${e} ${t.name||""}`);const n=c=>{if(Rs.AddPointerMetadata(c,e),Rs._LoadTransform(t,c),t.camera!=null){const u=gs.Get(`${e}/camera`,this._gltf.cameras,t.camera);r.push(this.loadCameraAsync(`/cameras/${u.index}`,u,f=>{f.parent=c}))}if(t.children)for(const u of t.children){const f=gs.Get(`${e}/children/${u}`,this._gltf.nodes,u);r.push(this.loadNodeAsync(`/nodes/${f.index}`,f,p=>{p.parent=c}))}i(c)},o=t.mesh!=null,l=this._parent.loadSkins&&t.skin!=null;if(!o||l){const c=t.name||`node${t.index}`;this._babylonScene._blockEntityCollection=!!this._assetContainer;const u=new Si(c,this._babylonScene);u._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t.mesh==null?t._babylonTransformNode=u:t._babylonTransformNodeForSkin=u,n(u)}if(o)if(l){const c=gs.Get(`${e}/mesh`,this._gltf.meshes,t.mesh);r.push(this._loadMeshAsync(`/meshes/${c.index}`,t,c,u=>{const f=t._babylonTransformNodeForSkin;u.metadata=DG(f.metadata,u.metadata||{});const p=gs.Get(`${e}/skin`,this._gltf.skins,t.skin);r.push(this._loadSkinAsync(`/skins/${p.index}`,t,p,m=>{this._forEachPrimitive(t,_=>{_.skeleton=m}),this._postSceneLoadActions.push(()=>{if(p.skeleton!=null){const _=gs.Get(`/skins/${p.index}/skeleton`,this._gltf.nodes,p.skeleton).parent;t.index===_.index?u.parent=f.parent:u.parent=_._babylonTransformNode}else u.parent=this._rootBabylonMesh;this._parent.onSkinLoadedObservable.notifyObservers({node:f,skinnedNode:u})})}))}))}else{const c=gs.Get(`${e}/mesh`,this._gltf.meshes,t.mesh);r.push(this._loadMeshAsync(`/meshes/${c.index}`,t,c,n))}return this.logClose(),Promise.all(r).then(()=>(this._forEachPrimitive(t,c=>{const u=c;!u.isAnInstance&&u.geometry&&u.geometry.useBoundingInfoFromGeometry?c._updateBoundingInfo():c.refreshBoundingInfo(!0,!0)}),t._babylonTransformNode))}_loadMeshAsync(e,t,i,s){const r=i.primitives;if(!r||!r.length)throw new Error(`${e}: Primitives are missing`);r[0].index==null&&gs.Assign(r);const n=new Array;this.logOpen(`${e} ${i.name||""}`);const o=t.name||`node${t.index}`;if(r.length===1){const l=i.primitives[0];n.push(this._loadMeshPrimitiveAsync(`${e}/primitives/${l.index}`,o,t,i,l,c=>{t._babylonTransformNode=c,t._primitiveBabylonMeshes=[c]}))}else{this._babylonScene._blockEntityCollection=!!this._assetContainer,t._babylonTransformNode=new Si(o,this._babylonScene),t._babylonTransformNode._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t._primitiveBabylonMeshes=[];for(const l of r)n.push(this._loadMeshPrimitiveAsync(`${e}/primitives/${l.index}`,`${o}_primitive${l.index}`,t,i,l,c=>{c.parent=t._babylonTransformNode,t._primitiveBabylonMeshes.push(c)}))}return s(t._babylonTransformNode),this.logClose(),Promise.all(n).then(()=>t._babylonTransformNode)}_loadMeshPrimitiveAsync(e,t,i,s,r,n){const o=this._extensionsLoadMeshPrimitiveAsync(e,t,i,s,r,n);if(o)return o;this.logOpen(`${e}`);const l=this._disableInstancedMesh===0&&this._parent.createInstances&&i.skin==null&&!s.primitives[0].targets;let c,u;if(l&&r._instanceData)this._babylonScene._blockEntityCollection=!!this._assetContainer,c=r._instanceData.babylonSourceMesh.createInstance(t),c._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,u=r._instanceData.promise;else{const f=new Array;this._babylonScene._blockEntityCollection=!!this._assetContainer;const p=new Ne(t,this._babylonScene);p._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,p.sideOrientation=this._babylonScene.useRightHandedSystem?ft.CounterClockWiseSideOrientation:ft.ClockWiseSideOrientation,this._createMorphTargets(e,i,s,r,p),f.push(this._loadVertexDataAsync(e,r,p).then(_=>this._loadMorphTargetsAsync(e,r,p,_).then(()=>{this._disposed||(this._babylonScene._blockEntityCollection=!!this._assetContainer,_.applyToMesh(p),_._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1)})));const m=Rs._GetDrawMode(e,r.mode);if(r.material==null){let _=this._defaultBabylonMaterialData[m];_||(_=this._createDefaultMaterial("__GLTFLoader._default",m),this._parent.onMaterialLoadedObservable.notifyObservers(_),this._defaultBabylonMaterialData[m]=_),p.material=_}else if(!this.parent.skipMaterials){const _=gs.Get(`${e}/material`,this._gltf.materials,r.material);f.push(this._loadMaterialAsync(`/materials/${_.index}`,_,p,m,d=>{p.material=d}))}u=Promise.all(f),l&&(r._instanceData={babylonSourceMesh:p,promise:u}),c=p}return Rs.AddPointerMetadata(c,e),this._parent.onMeshLoadedObservable.notifyObservers(c),n(c),this.logClose(),u.then(()=>c)}_loadVertexDataAsync(e,t,i){const s=this._extensionsLoadVertexDataAsync(e,t,i);if(s)return s;const r=t.attributes;if(!r)throw new Error(`${e}: Attributes are missing`);const n=new Array,o=new Rl(i.name,this._babylonScene);if(t.indices==null)i.isUnIndexed=!0;else{const c=gs.Get(`${e}/indices`,this._gltf.accessors,t.indices);n.push(this._loadIndicesAccessorAsync(`/accessors/${c.index}`,c).then(u=>{o.setIndices(u)}))}const l=(c,u,f)=>{if(r[c]==null)return;i._delayInfo=i._delayInfo||[],i._delayInfo.indexOf(u)===-1&&i._delayInfo.push(u);const p=gs.Get(`${e}/attributes/${c}`,this._gltf.accessors,r[c]);n.push(this._loadVertexAccessorAsync(`/accessors/${p.index}`,p,u).then(m=>{if(m.getKind()===q.PositionKind&&!this.parent.alwaysComputeBoundingBox&&!i.skeleton){const _=HZ(p);_&&(o._boundingInfo=_,o.useBoundingInfoFromGeometry=!0)}o.setVerticesBuffer(m,p.count)})),u==q.MatricesIndicesExtraKind&&(i.numBoneInfluencers=8),f&&f(p)};return l("POSITION",q.PositionKind),l("NORMAL",q.NormalKind),l("TANGENT",q.TangentKind),l("TEXCOORD_0",q.UVKind),l("TEXCOORD_1",q.UV2Kind),l("TEXCOORD_2",q.UV3Kind),l("TEXCOORD_3",q.UV4Kind),l("TEXCOORD_4",q.UV5Kind),l("TEXCOORD_5",q.UV6Kind),l("JOINTS_0",q.MatricesIndicesKind),l("WEIGHTS_0",q.MatricesWeightsKind),l("JOINTS_1",q.MatricesIndicesExtraKind),l("WEIGHTS_1",q.MatricesWeightsExtraKind),l("COLOR_0",q.ColorKind,c=>{c.type==="VEC4"&&(i.hasVertexAlpha=!0)}),Promise.all(n).then(()=>o)}_createMorphTargets(e,t,i,s,r){if(!s.targets||!this._parent.loadMorphTargets)return;if(t._numMorphTargets==null)t._numMorphTargets=s.targets.length;else if(s.targets.length!==t._numMorphTargets)throw new Error(`${e}: Primitives do not have the same number of targets`);const n=i.extras?i.extras.targetNames:null;this._babylonScene._blockEntityCollection=!!this._assetContainer,r.morphTargetManager=new J6(this._babylonScene),r.morphTargetManager._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,r.morphTargetManager.areUpdatesFrozen=!0;for(let o=0;o<s.targets.length;o++){const l=t.weights?t.weights[o]:i.weights?i.weights[o]:0,c=n?n[o]:`morphTarget${o}`;r.morphTargetManager.addTarget(new Kv(c,l,r.getScene()))}}_loadMorphTargetsAsync(e,t,i,s){if(!t.targets||!this._parent.loadMorphTargets)return Promise.resolve();const r=new Array,n=i.morphTargetManager;for(let o=0;o<n.numTargets;o++){const l=n.getTarget(o);r.push(this._loadMorphTargetVertexDataAsync(`${e}/targets/${o}`,s,t.targets[o],l))}return Promise.all(r).then(()=>{n.areUpdatesFrozen=!1})}_loadMorphTargetVertexDataAsync(e,t,i,s){const r=new Array,n=(o,l,c)=>{if(i[o]==null)return;const u=t.getVertexBuffer(l);if(!u)return;const f=gs.Get(`${e}/${o}`,this._gltf.accessors,i[o]);r.push(this._loadFloatAccessorAsync(`/accessors/${f.index}`,f).then(p=>{c(u,p)}))};return n("POSITION",q.PositionKind,(o,l)=>{const c=new Float32Array(l.length);o.forEach(l.length,(u,f)=>{c[f]=l[f]+u}),s.setPositions(c)}),n("NORMAL",q.NormalKind,(o,l)=>{const c=new Float32Array(l.length);o.forEach(c.length,(u,f)=>{c[f]=l[f]+u}),s.setNormals(c)}),n("TANGENT",q.TangentKind,(o,l)=>{const c=new Float32Array(l.length/3*4);let u=0;o.forEach(l.length/3*4,(f,p)=>{(p+1)%4!==0&&(c[u]=l[u]+f,u++)}),s.setTangents(c)}),n("TEXCOORD_0",q.UVKind,(o,l)=>{const c=new Float32Array(l.length);o.forEach(l.length,(u,f)=>{c[f]=l[f]+u}),s.setUVs(c)}),n("TEXCOORD_1",q.UV2Kind,(o,l)=>{const c=new Float32Array(l.length);o.forEach(l.length,(u,f)=>{c[f]=l[f]+u}),s.setUV2s(c)}),n("COLOR_0",q.ColorKind,(o,l)=>{let c=null;const u=o.getSize();if(u===3){c=new Float32Array(l.length/3*4),o.forEach(l.length,(f,p)=>{const m=Math.floor(p/3),_=p%3;c[4*m+_]=l[3*m+_]+f});for(let f=0;f<l.length/3;++f)c[4*f+3]=1}else if(u===4)c=new Float32Array(l.length),o.forEach(l.length,(f,p)=>{c[p]=l[p]+f});else throw new Error(`${e}: Invalid number of components (${u}) for COLOR_0 attribute`);s.setColors(c)}),Promise.all(r).then(()=>{})}static _LoadTransform(e,t){if(e.skin!=null)return;let i=P.Zero(),s=Re.Identity(),r=P.One();e.matrix?me.FromArray(e.matrix).decompose(r,s,i):(e.translation&&(i=P.FromArray(e.translation)),e.rotation&&(s=Re.FromArray(e.rotation)),e.scale&&(r=P.FromArray(e.scale))),t.position=i,t.rotationQuaternion=s,t.scaling=r}_loadSkinAsync(e,t,i,s){if(!this._parent.loadSkins)return Promise.resolve();const r=this._extensionsLoadSkinAsync(e,t,i);if(r)return r;if(i._data)return s(i._data.babylonSkeleton),i._data.promise;const n=`skeleton${i.index}`;this._babylonScene._blockEntityCollection=!!this._assetContainer;const o=new Wv(i.name||n,n,this._babylonScene);o._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,this._loadBones(e,i,o);const l=this._loadSkinInverseBindMatricesDataAsync(e,i).then(c=>{this._updateBoneMatrices(o,c)});return i._data={babylonSkeleton:o,promise:l},s(o),l}_loadBones(e,t,i){if(t.skeleton==null||this._parent.alwaysComputeSkeletonRootNode){const r=this._findSkeletonRootNode(`${e}/joints`,t.joints);if(r)if(t.skeleton===void 0)t.skeleton=r.index;else{const n=(l,c)=>{for(;c.parent;c=c.parent)if(c.parent===l)return!0;return!1},o=gs.Get(`${e}/skeleton`,this._gltf.nodes,t.skeleton);o!==r&&!n(o,r)&&(de.Warn(`${e}/skeleton: Overriding with nearest common ancestor as skeleton node is not a common root`),t.skeleton=r.index)}else de.Warn(`${e}: Failed to find common root`)}const s={};for(const r of t.joints){const n=gs.Get(`${e}/joints/${r}`,this._gltf.nodes,r);this._loadBone(n,t,i,s)}}_findSkeletonRootNode(e,t){if(t.length===0)return null;const i={};for(const r of t){const n=[];let o=gs.Get(`${e}/${r}`,this._gltf.nodes,r);for(;o.index!==-1;)n.unshift(o),o=o.parent;i[r]=n}let s=null;for(let r=0;;++r){let n=i[t[0]];if(r>=n.length)return s;const o=n[r];for(let l=1;l<t.length;++l)if(n=i[t[l]],r>=n.length||o!==n[r])return s;s=o}}_loadBone(e,t,i,s){e._isJoint=!0;let r=s[e.index];if(r)return r;let n=null;e.index!==t.skeleton&&(e.parent&&e.parent.index!==-1?n=this._loadBone(e.parent,t,i,s):t.skeleton!==void 0&&de.Warn(`/skins/${t.index}/skeleton: Skeleton node is not a common root`));const o=t.joints.indexOf(e.index);return r=new gn(e.name||`joint${e.index}`,i,n,this._getNodeMatrix(e),null,null,o),s[e.index]=r,this._postSceneLoadActions.push(()=>{r.linkTransformNode(e._babylonTransformNode)}),r}_loadSkinInverseBindMatricesDataAsync(e,t){if(t.inverseBindMatrices==null)return Promise.resolve(null);const i=gs.Get(`${e}/inverseBindMatrices`,this._gltf.accessors,t.inverseBindMatrices);return this._loadFloatAccessorAsync(`/accessors/${i.index}`,i)}_updateBoneMatrices(e,t){for(const i of e.bones){const s=me.Identity(),r=i._index;t&&r!==-1&&(me.FromArrayToRef(t,r*16,s),s.invertToRef(s));const n=i.getParent();n&&s.multiplyToRef(n.getAbsoluteInverseBindMatrix(),s),i.updateMatrix(s,!1,!1),i._updateAbsoluteBindMatrices(void 0,!1)}}_getNodeMatrix(e){return e.matrix?me.FromArray(e.matrix):me.Compose(e.scale?P.FromArray(e.scale):P.One(),e.rotation?Re.FromArray(e.rotation):Re.Identity(),e.translation?P.FromArray(e.translation):P.Zero())}loadCameraAsync(e,t,i=()=>{}){const s=this._extensionsLoadCameraAsync(e,t,i);if(s)return s;const r=new Array;this.logOpen(`${e} ${t.name||""}`),this._babylonScene._blockEntityCollection=!!this._assetContainer;const n=new $d(t.name||`camera${t.index}`,P.Zero(),this._babylonScene,!1);switch(n._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,n.ignoreParentScaling=!0,t._babylonCamera=n,n.rotation.set(0,Math.PI,0),t.type){case"perspective":{const o=t.perspective;if(!o)throw new Error(`${e}: Camera perspective properties are missing`);n.fov=o.yfov,n.minZ=o.znear,n.maxZ=o.zfar||0;break}case"orthographic":{if(!t.orthographic)throw new Error(`${e}: Camera orthographic properties are missing`);n.mode=_i.ORTHOGRAPHIC_CAMERA,n.orthoLeft=-t.orthographic.xmag,n.orthoRight=t.orthographic.xmag,n.orthoBottom=-t.orthographic.ymag,n.orthoTop=t.orthographic.ymag,n.minZ=t.orthographic.znear,n.maxZ=t.orthographic.zfar;break}default:throw new Error(`${e}: Invalid camera type (${t.type})`)}return Rs.AddPointerMetadata(n,e),this._parent.onCameraLoadedObservable.notifyObservers(n),i(n),this.logClose(),Promise.all(r).then(()=>n)}_loadAnimationsAsync(){const e=this._gltf.animations;if(!e)return Promise.resolve();const t=new Array;for(let i=0;i<e.length;i++){const s=e[i];t.push(this.loadAnimationAsync(`/animations/${s.index}`,s).then(r=>{r.targetedAnimations.length===0&&r.dispose()}))}return Promise.all(t).then(()=>{})}loadAnimationAsync(e,t){const i=this._extensionsLoadAnimationAsync(e,t);return i||Promise.resolve().then(()=>QDe).then(({AnimationGroup:s})=>{this._babylonScene._blockEntityCollection=!!this._assetContainer;const r=new s(t.name||`animation${t.index}`,this._babylonScene);r._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t._babylonAnimationGroup=r;const n=new Array;gs.Assign(t.channels),gs.Assign(t.samplers);for(const o of t.channels)n.push(this._loadAnimationChannelAsync(`${e}/channels/${o.index}`,e,t,o,(l,c)=>{l.animations=l.animations||[],l.animations.push(c),r.addTargetedAnimation(c,l)}));return Promise.all(n).then(()=>(r.normalize(0),r))})}async _loadAnimationChannelAsync(e,t,i,s,r){var p,m,_,d;const n=this._extensionsLoadAnimationChannelAsync(e,t,i,s,r);if(n)return n;if(s.target.node==null)return Promise.resolve();const o=gs.Get(`${e}/target/node`,this._gltf.nodes,s.target.node),l=s.target.path,c=l==="weights";if(c&&!o._numMorphTargets||!c&&!o._babylonTransformNode||!this._parent.loadNodeAnimations&&!c&&!o._isJoint)return Promise.resolve();await Promise.resolve().then(()=>jRe);let u;switch(l){case"translation":{u=(p=Fw("/nodes/{}/translation"))==null?void 0:p.interpolation;break}case"rotation":{u=(m=Fw("/nodes/{}/rotation"))==null?void 0:m.interpolation;break}case"scale":{u=(_=Fw("/nodes/{}/scale"))==null?void 0:_.interpolation;break}case"weights":{u=(d=Fw("/nodes/{}/weights"))==null?void 0:d.interpolation;break}default:throw new Error(`${e}/target/path: Invalid value (${s.target.path})`)}if(!u)throw new Error(`${e}/target/path: Could not find interpolation properties for target path (${s.target.path})`);const f={object:o,info:u};return this._loadAnimationChannelFromTargetInfoAsync(e,t,i,s,f,r)}_loadAnimationChannelFromTargetInfoAsync(e,t,i,s,r,n){const o=this.parent.targetFps,l=1/o,c=gs.Get(`${e}/sampler`,i.samplers,s.sampler);return this._loadAnimationSamplerAsync(`${t}/samplers/${s.sampler}`,c).then(u=>{let f=0;const p=r.object,m=r.info;for(const _ of m){const d=_.getStride(p),h=u.input,x=u.output,A=new Array(h.length);let S=0;switch(u.interpolation){case"STEP":{for(let E=0;E<h.length;E++){const b=_.getValue(p,x,S,1);S+=d,A[E]={frame:h[E]*o,value:b,interpolation:1}}break}case"CUBICSPLINE":{for(let E=0;E<h.length;E++){const b=_.getValue(p,x,S,l);S+=d;const M=_.getValue(p,x,S,1);S+=d;const T=_.getValue(p,x,S,l);S+=d,A[E]={frame:h[E]*o,inTangent:b,value:M,outTangent:T}}break}case"LINEAR":{for(let E=0;E<h.length;E++){const b=_.getValue(p,x,S,1);S+=d,A[E]={frame:h[E]*o,value:b}}break}}if(S>0){const E=`${i.name||`animation${i.index}`}_channel${s.index}_${f}`,b=_.buildAnimations(p,E,o,A);for(const M of b)f++,n(M.babylonAnimatable,M.babylonAnimation)}}})}_loadAnimationSamplerAsync(e,t){if(t._data)return t._data;const i=t.interpolation||"LINEAR";switch(i){case"STEP":case"LINEAR":case"CUBICSPLINE":break;default:throw new Error(`${e}/interpolation: Invalid value (${t.interpolation})`)}const s=gs.Get(`${e}/input`,this._gltf.accessors,t.input),r=gs.Get(`${e}/output`,this._gltf.accessors,t.output);return t._data=Promise.all([this._loadFloatAccessorAsync(`/accessors/${s.index}`,s),this._loadFloatAccessorAsync(`/accessors/${r.index}`,r)]).then(([n,o])=>({input:n,interpolation:i,output:o})),t._data}loadBufferAsync(e,t,i,s){const r=this._extensionsLoadBufferAsync(e,t,i,s);if(r)return r;if(!t._data)if(t.uri)t._data=this.loadUriAsync(`${e}/uri`,t,t.uri);else{if(!this._bin)throw new Error(`${e}: Uri is missing or the binary glTF is missing its binary chunk`);t._data=this._bin.readAsync(0,t.byteLength)}return t._data.then(n=>{try{return new Uint8Array(n.buffer,n.byteOffset+i,s)}catch(o){throw new Error(`${e}: ${o.message}`)}})}loadBufferViewAsync(e,t){const i=this._extensionsLoadBufferViewAsync(e,t);if(i)return i;if(t._data)return t._data;const s=gs.Get(`${e}/buffer`,this._gltf.buffers,t.buffer);return t._data=this.loadBufferAsync(`/buffers/${s.index}`,s,t.byteOffset||0,t.byteLength),t._data}_loadAccessorAsync(e,t,i){if(t._data)return t._data;const s=Rs._GetNumComponents(e,t.type),r=s*q.GetTypeByteLength(t.componentType),n=s*t.count;if(t.bufferView==null)t._data=Promise.resolve(new i(n));else{const o=gs.Get(`${e}/bufferView`,this._gltf.bufferViews,t.bufferView);t._data=this.loadBufferViewAsync(`/bufferViews/${o.index}`,o).then(l=>{if(t.componentType===5126&&!t.normalized&&(!o.byteStride||o.byteStride===r))return Rs._GetTypedArray(e,t.componentType,l,t.byteOffset,n);{const c=new i(n);return q.ForEach(l,t.byteOffset||0,o.byteStride||r,s,t.componentType,c.length,t.normalized||!1,(u,f)=>{c[f]=u}),c}})}if(t.sparse){const o=t.sparse;t._data=t._data.then(l=>{const c=l,u=gs.Get(`${e}/sparse/indices/bufferView`,this._gltf.bufferViews,o.indices.bufferView),f=gs.Get(`${e}/sparse/values/bufferView`,this._gltf.bufferViews,o.values.bufferView);return Promise.all([this.loadBufferViewAsync(`/bufferViews/${u.index}`,u),this.loadBufferViewAsync(`/bufferViews/${f.index}`,f)]).then(([p,m])=>{const _=Rs._GetTypedArray(`${e}/sparse/indices`,o.indices.componentType,p,o.indices.byteOffset,o.count),d=s*o.count;let h;if(t.componentType===5126&&!t.normalized)h=Rs._GetTypedArray(`${e}/sparse/values`,t.componentType,m,o.values.byteOffset,d);else{const A=Rs._GetTypedArray(`${e}/sparse/values`,t.componentType,m,o.values.byteOffset,d);h=new i(d),q.ForEach(A,0,r,s,t.componentType,h.length,t.normalized||!1,(S,E)=>{h[E]=S})}let x=0;for(let A=0;A<_.length;A++){let S=_[A]*s;for(let E=0;E<s;E++)c[S++]=h[x++]}return c})})}return t._data}_loadFloatAccessorAsync(e,t){return this._loadAccessorAsync(e,t,Float32Array)}_loadIndicesAccessorAsync(e,t){if(t.type!=="SCALAR")throw new Error(`${e}/type: Invalid value ${t.type}`);if(t.componentType!==5121&&t.componentType!==5123&&t.componentType!==5125)throw new Error(`${e}/componentType: Invalid value ${t.componentType}`);if(t._data)return t._data;if(t.sparse){const i=Rs._GetTypedArrayConstructor(`${e}/componentType`,t.componentType);t._data=this._loadAccessorAsync(e,t,i)}else{const i=gs.Get(`${e}/bufferView`,this._gltf.bufferViews,t.bufferView);t._data=this.loadBufferViewAsync(`/bufferViews/${i.index}`,i).then(s=>Rs._GetTypedArray(e,t.componentType,s,t.byteOffset,t.count))}return t._data}_loadVertexBufferViewAsync(e){if(e._babylonBuffer)return e._babylonBuffer;const t=this._babylonScene.getEngine();return e._babylonBuffer=this.loadBufferViewAsync(`/bufferViews/${e.index}`,e).then(i=>new fl(t,i,!1)),e._babylonBuffer}_loadVertexAccessorAsync(e,t,i){var r;if((r=t._babylonVertexBuffer)!=null&&r[i])return t._babylonVertexBuffer[i];t._babylonVertexBuffer||(t._babylonVertexBuffer={});const s=this._babylonScene.getEngine();if(t.sparse||t.bufferView==null)t._babylonVertexBuffer[i]=this._loadFloatAccessorAsync(e,t).then(n=>new q(s,n,i,!1));else{const n=gs.Get(`${e}/bufferView`,this._gltf.bufferViews,t.bufferView);t._babylonVertexBuffer[i]=this._loadVertexBufferViewAsync(n).then(o=>{const l=Rs._GetNumComponents(e,t.type);return new q(s,o,i,!1,void 0,n.byteStride,void 0,t.byteOffset,l,t.componentType,t.normalized,!0,void 0,!0)})}return t._babylonVertexBuffer[i]}_loadMaterialMetallicRoughnessPropertiesAsync(e,t,i){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);const s=new Array;return t&&(t.baseColorFactor?(i.albedoColor=Pe.FromArray(t.baseColorFactor),i.alpha=t.baseColorFactor[3]):i.albedoColor=Pe.White(),i.metallic=t.metallicFactor==null?1:t.metallicFactor,i.roughness=t.roughnessFactor==null?1:t.roughnessFactor,t.baseColorTexture&&s.push(this.loadTextureInfoAsync(`${e}/baseColorTexture`,t.baseColorTexture,r=>{r.name=`${i.name} (Base Color)`,i.albedoTexture=r})),t.metallicRoughnessTexture&&(t.metallicRoughnessTexture.nonColorData=!0,s.push(this.loadTextureInfoAsync(`${e}/metallicRoughnessTexture`,t.metallicRoughnessTexture,r=>{r.name=`${i.name} (Metallic Roughness)`,i.metallicTexture=r})),i.useMetallnessFromMetallicTextureBlue=!0,i.useRoughnessFromMetallicTextureGreen=!0,i.useRoughnessFromMetallicTextureAlpha=!1)),Promise.all(s).then(()=>{})}_loadMaterialAsync(e,t,i,s,r=()=>{}){const n=this._extensionsLoadMaterialAsync(e,t,i,s,r);if(n)return n;t._data=t._data||{};let o=t._data[s];if(!o){this.logOpen(`${e} ${t.name||""}`);const l=this.createMaterial(e,t,s);o={babylonMaterial:l,babylonMeshes:[],promise:this.loadMaterialPropertiesAsync(e,t,l)},t._data[s]=o,Rs.AddPointerMetadata(l,e),this._parent.onMaterialLoadedObservable.notifyObservers(l),this.logClose()}return i&&(o.babylonMeshes.push(i),i.onDisposeObservable.addOnce(()=>{const l=o.babylonMeshes.indexOf(i);l!==-1&&o.babylonMeshes.splice(l,1)})),r(o.babylonMaterial),o.promise.then(()=>o.babylonMaterial)}_createDefaultMaterial(e,t){this._babylonScene._blockEntityCollection=!!this._assetContainer;const i=new mi(e,this._babylonScene);return i._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,i.fillMode=t,i.enableSpecularAntiAliasing=!0,i.useRadianceOverAlpha=!this._parent.transparencyAsCoverage,i.useSpecularOverAlpha=!this._parent.transparencyAsCoverage,i.transparencyMode=mi.PBRMATERIAL_OPAQUE,i.metallic=1,i.roughness=1,i}createMaterial(e,t,i){const s=this._extensionsCreateMaterial(e,t,i);if(s)return s;const r=t.name||`material${t.index}`;return this._createDefaultMaterial(r,i)}loadMaterialPropertiesAsync(e,t,i){const s=this._extensionsLoadMaterialPropertiesAsync(e,t,i);if(s)return s;const r=new Array;return r.push(this.loadMaterialBasePropertiesAsync(e,t,i)),t.pbrMetallicRoughness&&r.push(this._loadMaterialMetallicRoughnessPropertiesAsync(`${e}/pbrMetallicRoughness`,t.pbrMetallicRoughness,i)),this.loadMaterialAlphaProperties(e,t,i),Promise.all(r).then(()=>{})}loadMaterialBasePropertiesAsync(e,t,i){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);const s=new Array;return i.emissiveColor=t.emissiveFactor?Pe.FromArray(t.emissiveFactor):new Pe(0,0,0),t.doubleSided&&(i.backFaceCulling=!1,i.twoSidedLighting=!0),t.normalTexture&&(t.normalTexture.nonColorData=!0,s.push(this.loadTextureInfoAsync(`${e}/normalTexture`,t.normalTexture,r=>{r.name=`${i.name} (Normal)`,i.bumpTexture=r})),i.invertNormalMapX=!this._babylonScene.useRightHandedSystem,i.invertNormalMapY=this._babylonScene.useRightHandedSystem,t.normalTexture.scale!=null&&i.bumpTexture&&(i.bumpTexture.level=t.normalTexture.scale),i.forceIrradianceInFragment=!0),t.occlusionTexture&&(t.occlusionTexture.nonColorData=!0,s.push(this.loadTextureInfoAsync(`${e}/occlusionTexture`,t.occlusionTexture,r=>{r.name=`${i.name} (Occlusion)`,i.ambientTexture=r})),i.useAmbientInGrayScale=!0,t.occlusionTexture.strength!=null&&(i.ambientTextureStrength=t.occlusionTexture.strength)),t.emissiveTexture&&s.push(this.loadTextureInfoAsync(`${e}/emissiveTexture`,t.emissiveTexture,r=>{r.name=`${i.name} (Emissive)`,i.emissiveTexture=r})),Promise.all(s).then(()=>{})}loadMaterialAlphaProperties(e,t,i){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);switch(t.alphaMode||"OPAQUE"){case"OPAQUE":{i.transparencyMode=mi.PBRMATERIAL_OPAQUE,i.alpha=1;break}case"MASK":{i.transparencyMode=mi.PBRMATERIAL_ALPHATEST,i.alphaCutOff=t.alphaCutoff==null?.5:t.alphaCutoff,i.albedoTexture&&(i.albedoTexture.hasAlpha=!0);break}case"BLEND":{i.transparencyMode=mi.PBRMATERIAL_ALPHABLEND,i.albedoTexture&&(i.albedoTexture.hasAlpha=!0,i.useAlphaFromAlbedoTexture=!0);break}default:throw new Error(`${e}/alphaMode: Invalid value (${t.alphaMode})`)}}loadTextureInfoAsync(e,t,i=()=>{}){const s=this._extensionsLoadTextureInfoAsync(e,t,i);if(s)return s;if(this.logOpen(`${e}`),t.texCoord>=6)throw new Error(`${e}/texCoord: Invalid value (${t.texCoord})`);const r=gs.Get(`${e}/index`,this._gltf.textures,t.index);r._textureInfo=t;const n=this._loadTextureAsync(`/textures/${t.index}`,r,o=>{o.coordinatesIndex=t.texCoord||0,Rs.AddPointerMetadata(o,e),this._parent.onTextureLoadedObservable.notifyObservers(o),i(o)});return this.logClose(),n}_loadTextureAsync(e,t,i=()=>{}){const s=this._extensionsLoadTextureAsync(e,t,i);if(s)return s;this.logOpen(`${e} ${t.name||""}`);const r=t.sampler==null?Rs.DefaultSampler:gs.Get(`${e}/sampler`,this._gltf.samplers,t.sampler),n=gs.Get(`${e}/source`,this._gltf.images,t.source),o=this._createTextureAsync(e,r,n,i,void 0,!t._textureInfo.nonColorData);return this.logClose(),o}_createTextureAsync(e,t,i,s=()=>{},r,n){const o=this._loadSampler(`/samplers/${t.index}`,t),l=new Array,c=new Q9;this._babylonScene._blockEntityCollection=!!this._assetContainer;const u={noMipmap:o.noMipMaps,invertY:!1,samplingMode:o.samplingMode,onLoad:()=>{this._disposed||c.resolve()},onError:(p,m)=>{this._disposed||c.reject(new Error(`${e}: ${m&&m.message?m.message:p||"Failed to load texture"}`))},mimeType:i.mimeType,loaderOptions:r,useSRGBBuffer:!!n&&this._parent.useSRGBBuffers},f=new be(null,this._babylonScene,u);return f._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,l.push(c.promise),l.push(this.loadImageAsync(`/images/${i.index}`,i).then(p=>{const m=i.uri||`${this._fileName}#image${i.index}`,_=`data:${this._uniqueRootUrl}${m}`;f.updateURL(_,p);const d=f.getInternalTexture();d&&(d.label=i.name)})),f.wrapU=o.wrapU,f.wrapV=o.wrapV,s(f),this._parent.useGltfTextureNames&&(f.name=i.name||i.uri||`image${i.index}`),Promise.all(l).then(()=>f)}_loadSampler(e,t){return t._data||(t._data={noMipMaps:t.minFilter===9728||t.minFilter===9729,samplingMode:Rs._GetTextureSamplingMode(e,t),wrapU:Rs._GetTextureWrapMode(`${e}/wrapS`,t.wrapS),wrapV:Rs._GetTextureWrapMode(`${e}/wrapT`,t.wrapT)}),t._data}loadImageAsync(e,t){if(!t._data){if(this.logOpen(`${e} ${t.name||""}`),t.uri)t._data=this.loadUriAsync(`${e}/uri`,t,t.uri);else{const i=gs.Get(`${e}/bufferView`,this._gltf.bufferViews,t.bufferView);t._data=this.loadBufferViewAsync(`/bufferViews/${i.index}`,i)}this.logClose()}return t._data}loadUriAsync(e,t,i){const s=this._extensionsLoadUriAsync(e,t,i);if(s)return s;if(!Rs._ValidateUri(i))throw new Error(`${e}: '${i}' is invalid`);if(fw(i)){const r=new Uint8Array(aP(i));return this.log(`${e}: Decoded ${i.substring(0,64)}... (${r.length} bytes)`),Promise.resolve(r)}return this.log(`${e}: Loading ${i}`),this._parent.preprocessUrlAsync(this._rootUrl+i).then(r=>new Promise((n,o)=>{this._parent._loadFile(this._babylonScene,r,l=>{this._disposed||(this.log(`${e}: Loaded ${i} (${l.byteLength} bytes)`),n(new Uint8Array(l)))},!0,l=>{o(new sP(`${e}: Failed to load '${i}'${l?": "+l.status+" "+l.statusText:""}`,l))})}))}static AddPointerMetadata(e,t){e.metadata=e.metadata||{};const i=e._internalMetadata=e._internalMetadata||{},s=i.gltf=i.gltf||{};(s.pointers=s.pointers||[]).push(t)}static _GetTextureWrapMode(e,t){switch(t=t??10497,t){case 33071:return be.CLAMP_ADDRESSMODE;case 33648:return be.MIRROR_ADDRESSMODE;case 10497:return be.WRAP_ADDRESSMODE;default:return de.Warn(`${e}: Invalid value (${t})`),be.WRAP_ADDRESSMODE}}static _GetTextureSamplingMode(e,t){const i=t.magFilter==null?9729:t.magFilter,s=t.minFilter==null?9987:t.minFilter;if(i===9729)switch(s){case 9728:return be.LINEAR_NEAREST;case 9729:return be.LINEAR_LINEAR;case 9984:return be.LINEAR_NEAREST_MIPNEAREST;case 9985:return be.LINEAR_LINEAR_MIPNEAREST;case 9986:return be.LINEAR_NEAREST_MIPLINEAR;case 9987:return be.LINEAR_LINEAR_MIPLINEAR;default:return de.Warn(`${e}/minFilter: Invalid value (${s})`),be.LINEAR_LINEAR_MIPLINEAR}else switch(i!==9728&&de.Warn(`${e}/magFilter: Invalid value (${i})`),s){case 9728:return be.NEAREST_NEAREST;case 9729:return be.NEAREST_LINEAR;case 9984:return be.NEAREST_NEAREST_MIPNEAREST;case 9985:return be.NEAREST_LINEAR_MIPNEAREST;case 9986:return be.NEAREST_NEAREST_MIPLINEAR;case 9987:return be.NEAREST_LINEAR_MIPLINEAR;default:return de.Warn(`${e}/minFilter: Invalid value (${s})`),be.NEAREST_NEAREST_MIPNEAREST}}static _GetTypedArrayConstructor(e,t){try{return IX(t)}catch(i){throw new Error(`${e}: ${i.message}`)}}static _GetTypedArray(e,t,i,s,r){const n=i.buffer;s=i.byteOffset+(s||0);const o=Rs._GetTypedArrayConstructor(`${e}/componentType`,t),l=q.GetTypeByteLength(t);return s%l!==0?(de.Warn(`${e}: Copying buffer as byte offset (${s}) is not a multiple of component type byte length (${l})`),new o(n.slice(s,s+r*l),0)):new o(n,s,r)}static _GetNumComponents(e,t){switch(t){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":return 4;case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}throw new Error(`${e}: Invalid type (${t})`)}static _ValidateUri(e){return Le.IsBase64(e)||e.indexOf("..")===-1}static _GetDrawMode(e,t){switch(t==null&&(t=4),t){case 0:return ft.PointListDrawMode;case 1:return ft.LineListDrawMode;case 2:return ft.LineLoopDrawMode;case 3:return ft.LineStripDrawMode;case 4:return ft.TriangleFillMode;case 5:return ft.TriangleStripDrawMode;case 6:return ft.TriangleFanDrawMode}throw new Error(`${e}: Invalid mesh primitive mode (${t})`)}_compileMaterialsAsync(){this._parent._startPerformanceCounter("Compile materials");const e=new Array;if(this._gltf.materials){for(const t of this._gltf.materials)if(t._data)for(const i in t._data){const s=t._data[i];for(const r of s.babylonMeshes){r.computeWorldMatrix(!0);const n=s.babylonMaterial;e.push(n.forceCompilationAsync(r)),e.push(n.forceCompilationAsync(r,{useInstances:!0})),this._parent.useClipPlane&&(e.push(n.forceCompilationAsync(r,{clipPlane:!0})),e.push(n.forceCompilationAsync(r,{clipPlane:!0,useInstances:!0})))}}}return Promise.all(e).then(()=>{this._parent._endPerformanceCounter("Compile materials")})}_compileShadowGeneratorsAsync(){this._parent._startPerformanceCounter("Compile shadow generators");const e=new Array,t=this._babylonScene.lights;for(const i of t){const s=i.getShadowGenerator();s&&e.push(s.forceCompilationAsync())}return Promise.all(e).then(()=>{this._parent._endPerformanceCounter("Compile shadow generators")})}_forEachExtensions(e){for(const t of this._extensions)t.enabled&&e(t)}_applyExtensions(e,t,i){for(const s of this._extensions)if(s.enabled){const r=`${s.name}.${t}`,n=e;n._activeLoaderExtensionFunctions=n._activeLoaderExtensionFunctions||{};const o=n._activeLoaderExtensionFunctions;if(!o[r]){o[r]=!0;try{const l=i(s);if(l)return l}finally{delete o[r]}}}return null}_extensionsOnLoading(){this._forEachExtensions(e=>e.onLoading&&e.onLoading())}_extensionsOnReady(){this._forEachExtensions(e=>e.onReady&&e.onReady())}_extensionsLoadSceneAsync(e,t){return this._applyExtensions(t,"loadScene",i=>i.loadSceneAsync&&i.loadSceneAsync(e,t))}_extensionsLoadNodeAsync(e,t,i){return this._applyExtensions(t,"loadNode",s=>s.loadNodeAsync&&s.loadNodeAsync(e,t,i))}_extensionsLoadCameraAsync(e,t,i){return this._applyExtensions(t,"loadCamera",s=>s.loadCameraAsync&&s.loadCameraAsync(e,t,i))}_extensionsLoadVertexDataAsync(e,t,i){return this._applyExtensions(t,"loadVertexData",s=>s._loadVertexDataAsync&&s._loadVertexDataAsync(e,t,i))}_extensionsLoadMeshPrimitiveAsync(e,t,i,s,r,n){return this._applyExtensions(r,"loadMeshPrimitive",o=>o._loadMeshPrimitiveAsync&&o._loadMeshPrimitiveAsync(e,t,i,s,r,n))}_extensionsLoadMaterialAsync(e,t,i,s,r){return this._applyExtensions(t,"loadMaterial",n=>n._loadMaterialAsync&&n._loadMaterialAsync(e,t,i,s,r))}_extensionsCreateMaterial(e,t,i){return this._applyExtensions(t,"createMaterial",s=>s.createMaterial&&s.createMaterial(e,t,i))}_extensionsLoadMaterialPropertiesAsync(e,t,i){return this._applyExtensions(t,"loadMaterialProperties",s=>s.loadMaterialPropertiesAsync&&s.loadMaterialPropertiesAsync(e,t,i))}_extensionsLoadTextureInfoAsync(e,t,i){return this._applyExtensions(t,"loadTextureInfo",s=>s.loadTextureInfoAsync&&s.loadTextureInfoAsync(e,t,i))}_extensionsLoadTextureAsync(e,t,i){return this._applyExtensions(t,"loadTexture",s=>s._loadTextureAsync&&s._loadTextureAsync(e,t,i))}_extensionsLoadAnimationAsync(e,t){return this._applyExtensions(t,"loadAnimation",i=>i.loadAnimationAsync&&i.loadAnimationAsync(e,t))}_extensionsLoadAnimationChannelAsync(e,t,i,s,r){return this._applyExtensions(i,"loadAnimationChannel",n=>n._loadAnimationChannelAsync&&n._loadAnimationChannelAsync(e,t,i,s,r))}_extensionsLoadSkinAsync(e,t,i){return this._applyExtensions(i,"loadSkin",s=>s._loadSkinAsync&&s._loadSkinAsync(e,t,i))}_extensionsLoadUriAsync(e,t,i){return this._applyExtensions(t,"loadUri",s=>s._loadUriAsync&&s._loadUriAsync(e,t,i))}_extensionsLoadBufferViewAsync(e,t){return this._applyExtensions(t,"loadBufferView",i=>i.loadBufferViewAsync&&i.loadBufferViewAsync(e,t))}_extensionsLoadBufferAsync(e,t,i,s){return this._applyExtensions(t,"loadBuffer",r=>r.loadBufferAsync&&r.loadBufferAsync(e,t,i,s))}static LoadExtensionAsync(e,t,i,s){if(!t.extensions)return null;const n=t.extensions[i];return n?s(`${e}/extensions/${i}`,n):null}static LoadExtraAsync(e,t,i,s){if(!t.extras)return null;const n=t.extras[i];return n?s(`${e}/extras/${i}`,n):null}isExtensionUsed(e){return!!this._gltf.extensionsUsed&&this._gltf.extensionsUsed.indexOf(e)!==-1}logOpen(e){this._parent._logOpen(e)}logClose(){this._parent._logClose()}log(e){this._parent._log(e)}startPerformanceCounter(e){this._parent._startPerformanceCounter(e)}endPerformanceCounter(e){this._parent._endPerformanceCounter(e)}}Rs.DefaultSampler={index:-1},ku._CreateGLTF2Loader=a=>new Rs(a);function NG(a,e,t,i){return P.FromArray(e,t).scaleInPlace(i)}function YZ(a,e,t,i){return Re.FromArray(e,t).scaleInPlace(i)}function XZ(a,e,t,i){const s=new Array(a._numMorphTargets);for(let r=0;r<s.length;r++)s[r]=e[t++]*i;return s}class tL{constructor(e,t,i,s){this.type=e,this.name=t,this.getValue=i,this.getStride=s}_buildAnimation(e,t,i){const s=new He(e,this.name,t,this.type);return s.setKeys(i),s}}class kw extends tL{buildAnimations(e,t,i,s){const r=[];return r.push({babylonAnimatable:e._babylonTransformNode,babylonAnimation:this._buildAnimation(t,i,s)}),r}}class ZZ extends tL{buildAnimations(e,t,i,s){const r=[];if(e._numMorphTargets)for(let n=0;n<e._numMorphTargets;n++){const o=new He(`${t}_${n}`,this.name,i,this.type);if(o.setKeys(s.map(l=>({frame:l.frame,inTangent:l.inTangent?l.inTangent[n]:void 0,value:l.value[n],outTangent:l.outTangent?l.outTangent[n]:void 0,interpolation:l.interpolation}))),e._primitiveBabylonMeshes){for(const l of e._primitiveBabylonMeshes)if(l.morphTargetManager){const c=l.morphTargetManager.getTarget(n),u=o.clone();c.animations.push(u),r.push({babylonAnimatable:c,babylonAnimation:u})}}}return r}}Ri("/nodes/{}/translation",[new kw(He.ANIMATIONTYPE_VECTOR3,"position",NG,()=>3)]),Ri("/nodes/{}/rotation",[new kw(He.ANIMATIONTYPE_QUATERNION,"rotationQuaternion",YZ,()=>4)]),Ri("/nodes/{}/scale",[new kw(He.ANIMATIONTYPE_VECTOR3,"scaling",NG,()=>3)]),Ri("/nodes/{}/weights",[new ZZ(He.ANIMATIONTYPE_FLOAT,"influence",XZ,a=>a._numMorphTargets)]);const jRe=Object.freeze(Object.defineProperty({__proto__:null,AnimationPropertyInfo:tL,TransformNodeAnimationPropertyInfo:kw,WeightAnimationPropertyInfo:ZZ,getQuaternion:YZ,getVector3:NG,getWeights:XZ},Symbol.toStringTag,{value:"Module"}));let iL,sL=null;async function VRe(){return sL||(sL=new Promise((a,e)=>{let t,i=null;const s={preserveDrawingBuffer:!0,depth:!1,stencil:!1,alpha:!0,premultipliedAlpha:!1,antialias:!1,failIfMajorPerformanceCaveat:!1};Promise.resolve().then(()=>ERe).then(({ThinEngine:r})=>{var l;const n=ei.Instances.length;try{t=new OffscreenCanvas(100,100),i=new r(t,!1,s)}catch{n<ei.Instances.length&&((l=ei.Instances.pop())==null||l.dispose()),t=document.createElement("canvas"),i=new r(t,!1,s)}ei.Instances.pop(),ei.OnEnginesDisposedObservable.add(c=>{i&&c!==i&&!i.isDisposed&&ei.Instances.length===0&&qZ()}),i.getCaps().parallelShaderCompile=void 0;const o=new BT(i);Promise.resolve().then(()=>UO).then(({passPixelShader:c})=>{if(!i){e("Engine is not defined");return}const u=new Qr({engine:i,name:c.name,fragmentShader:c.shader,samplerNames:["textureSampler"]});iL={canvas:t,engine:i,renderer:o,wrapper:u},a(iL)})}).catch(e)})),await sL}async function KZ(a,e,t,i,s="image/png",r,n){const o=await t.readPixels(0,0,a,e),l=new Uint8Array(o.buffer);rL(a,e,l,i,s,r,!0,void 0,n)}function wG(a,e,t,i="image/png",s,r=!1,n=!1,o){return new Promise(l=>{rL(a,e,t,c=>l(c),i,s,r,n,o)})}function rL(a,e,t,i,s="image/png",r,n=!1,o=!1,l){VRe().then(c=>{if(c.engine.setSize(a,e,!0),t instanceof Float32Array){const f=new Uint8Array(t.length);let p=t.length;for(;p--;){const m=t[p];f[p]=Math.round(Os(m)*255)}t=f}const u=c.engine.createRawTexture(t,a,e,5,!1,!n,1);c.renderer.setViewport(),c.renderer.applyEffectWrapper(c.wrapper),c.wrapper.effect._bindTexture("textureSampler",u),c.renderer.draw(),o?Le.ToBlob(c.canvas,f=>{const p=new FileReader;p.onload=m=>{const _=m.target.result;i&&i(_)},p.readAsArrayBuffer(f)},s,l):Le.EncodeScreenshotCanvasData(c.canvas,i,s,r,l),u.dispose()})}function qZ(){iL?(iL.wrapper.dispose(),iL.renderer.dispose(),iL.engine.dispose()):sL==null||sL.then(a=>{a.wrapper.dispose(),a.renderer.dispose(),a.engine.dispose()}),sL=null,iL=null}const BG={DumpData:rL,DumpDataAsync:wG,DumpFramebuffer:KZ,Dispose:qZ};(()=>{Le.DumpData=rL,Le.DumpDataAsync=wG,Le.DumpFramebuffer=KZ})();const GRe=Object.freeze(Object.defineProperty({__proto__:null,Dispose:qZ,DumpData:rL,DumpDataAsync:wG,DumpFramebuffer:KZ,DumpTools:BG},Symbol.toStringTag,{value:"Module"})),Uw="image/png",QZ=2,jw=[134,22,135,150,246,214,150,54];function zG(a){const e=new DataView(a.buffer,a.byteOffset,a.byteLength);let t=0;for(let n=0;n<jw.length;n++)if(e.getUint8(t++)!==jw[n])return de.Error("Not a babylon environment map"),null;let i="",s=0;for(;s=e.getUint8(t++);)i+=String.fromCharCode(s);let r=JSON.parse(i);return r=PP(r),r.binaryDataPosition=t,r.specular&&(r.specular.lodGenerationScale=r.specular.lodGenerationScale||.8),r}function PP(a){if(a.version>QZ)throw new Error(`Unsupported babylon environment map version "${a.version}". Latest supported version is "${QZ}".`);return a.version===2||(a={...a,version:2,imageType:Uw}),a}async function Ede(a,e={}){var T;const t=a.getInternalTexture();if(!t)return Promise.reject("The cube texture is invalid.");const i=t.getEngine();if(a.textureType!==2&&a.textureType!==1&&a.textureType!==0&&a.textureType!==0&&a.textureType!==7&&a.textureType!==-1)return Promise.reject("The cube texture should allow HDR (Full Float or Half Float).");let s=1;if(!i.getCaps().textureFloatRender&&(s=2,!i.getCaps().textureHalfFloatRender))return Promise.reject("Env texture can only be created when the browser supports half float or full float rendering.");a.sphericalPolynomial;const r=(T=a.getInternalTexture())==null?void 0:T._sphericalPolynomialPromise,n=t.width,o=new ui(i),l={},c={};i.flushFramebuffer();const u=e.imageType??Uw,f=OT(t.width);for(let O=0;O<=f;O++){const R=Math.pow(2,f-O);for(let I=0;I<6;I++)l[O*6+I]=await Tde(o,a,s,I,O,R,u,e.imageQuality)}const p=e.disableIrradianceTexture?null:a.irradianceTexture;if(p){const O=p.getSize().width;for(let R=0;R<6;R++)c[R]=await Tde(o,p,s,R,0,O,u,e.imageQuality)}o.dispose(),r&&await r;const m={version:QZ,width:n,imageType:u,irradiance:WRe(a),specular:{mipmaps:[],lodGenerationScale:a.lodGenerationScale}};let _=0;for(let O=0;O<=f;O++)for(let R=0;R<6;R++){const I=l[O*6+R].byteLength;m.specular.mipmaps.push({length:I,position:_}),_+=I}if(p){m.irradiance=m.irradiance||{x:[0,0,0],xx:[0,0,0],y:[0,0,0],yy:[0,0,0],z:[0,0,0],zz:[0,0,0],yz:[0,0,0],zx:[0,0,0],xy:[0,0,0]},m.irradiance.irradianceTexture={size:p.getSize().width,faces:[]};for(let O=0;O<6;O++){const R=c[O].byteLength;m.irradiance.irradianceTexture.faces.push({length:R,position:_}),_+=R}}const d=JSON.stringify(m),h=new ArrayBuffer(d.length+1),x=new Uint8Array(h);for(let O=0,R=d.length;O<R;O++)x[O]=d.charCodeAt(O);x[d.length]=0;const A=jw.length+_+h.byteLength,S=new ArrayBuffer(A),E=new Uint8Array(S),b=new DataView(S);let M=0;for(let O=0;O<jw.length;O++)b.setUint8(M++,jw[O]);E.set(new Uint8Array(h),M),M+=h.byteLength;for(let O=0;O<=f;O++)for(let R=0;R<6;R++){const I=l[O*6+R];E.set(new Uint8Array(I),M),M+=I.byteLength}if(p)for(let O=0;O<6;O++){const R=c[O];E.set(new Uint8Array(R),M),M+=R.byteLength}return S}async function Tde(a,e,t,i,s,r,n,o){let l=await e.readPixels(i,s,void 0,!1);if(l&&l.byteLength===l.length){const m=new Float32Array(l.byteLength*4);for(let _=0;_<l.byteLength;_++)m[_]=l[_]/255,m[_]=Math.pow(m[_],2.2);l=m}else if(l&&e.gammaSpace){const m=l;for(let _=0;_<m.length;_++)m[_]=Math.pow(m[_],2.2)}const c=a.getEngine(),u=c.createRawTexture(l,r,r,5,!1,!0,1,null,t);await PG.EncodeTextureToRGBD(u,a,t);const f=await c._readTexturePixels(u,r,r),p=await wG(r,r,f,n,void 0,!1,!0,o);return u.dispose(),p}function WRe(a){const e=a.sphericalPolynomial;return e==null?null:{x:[e.x.x,e.x.y,e.x.z],y:[e.y.x,e.y.y,e.y.z],z:[e.z.x,e.z.y,e.z.z],xx:[e.xx.x,e.xx.y,e.xx.z],yy:[e.yy.x,e.yy.y,e.yy.z],zz:[e.zz.x,e.zz.y,e.zz.z],yz:[e.yz.x,e.yz.y,e.yz.z],zx:[e.zx.x,e.zx.y,e.zx.z],xy:[e.xy.x,e.xy.y,e.xy.z]}}function FG(a,e){e=PP(e);const t=e.specular;let i=Math.log2(e.width);if(i=Math.round(i)+1,t.mipmaps.length!==6*i)throw new Error(`Unsupported specular mipmaps number "${t.mipmaps.length}"`);const s=new Array(i);for(let r=0;r<i;r++){s[r]=new Array(6);for(let n=0;n<6;n++){const o=t.mipmaps[r*6+n];s[r][n]=new Uint8Array(a.buffer,a.byteOffset+e.binaryDataPosition+o.position,o.length)}}return s}function JZ(a,e){var s;e=PP(e);const t=new Array(6),i=(s=e.irradiance)==null?void 0:s.irradianceTexture;if(i){if(i.faces.length!==6)throw new Error(`Incorrect irradiance texture faces number "${i.faces.length}"`);for(let r=0;r<6;r++){const n=i.faces[r];t[r]=new Uint8Array(a.buffer,a.byteOffset+e.binaryDataPosition+n.position,n.length)}}return t}function $Z(a,e,t){var o;t=PP(t);const i=t.specular;if(!i)return Promise.resolve([]);a._lodGenerationScale=i.lodGenerationScale;const s=[],r=FG(e,t);s.push(Vw(a,r,t.imageType));const n=(o=t.irradiance)==null?void 0:o.irradianceTexture;if(n){const l=JZ(e,t);s.push(eK(a,l,n.size,t.imageType))}return Promise.all(s)}function Lde(a,e,t,i,s,r,n,o,l,c,u){return new Promise((f,p)=>{if(t){const m=e.createTexture(null,!0,!0,null,1,null,_=>{p(_)},a);i==null||i.onEffectCreatedObservable.addOnce(_=>{_.executeWhenCompiled(()=>{i.externalTextureSamplerBinding=!0,i.onApply=d=>{d._bindTexture("textureSampler",m),d.setFloat2("scale",1,e._features.needsInvertingBitmap&&a instanceof ImageBitmap?-1:1)},e.scenes.length&&(e.scenes[0].postProcessManager.directRender([i],c,!0,r,n),e.restoreDefaultFramebuffer(),m.dispose(),URL.revokeObjectURL(s),f())})})}else{if(e._uploadImageToTexture(u,a,r,n),o){const m=l[n];m&&e._uploadImageToTexture(m._texture,a,r,0)}f()}})}async function Vw(a,e,t=Uw){const i=a.getEngine();a.format=5,a.type=0,a.generateMipMaps=!0,a._cachedAnisotropicFilteringLevel=null,i.updateTextureSamplingMode(3,a),await Ide(a,e,!0,t),a.isReady=!0}async function eK(a,e,t,i=Uw){const s=a.getEngine(),r=new gr(s,5),n=new vr(s,r);a._irradianceTexture=n,r.isCube=!0,r.format=5,r.type=0,r.generateMipMaps=!0,r._cachedAnisotropicFilteringLevel=null,r.generateMipMaps=!0,r.width=t,r.height=t,s.updateTextureSamplingMode(3,r),await Ide(r,[e],!1,i),s.generateMipMapsForCubemap(r),r.isReady=!0}async function Ide(a,e,t,i=Uw){if(!Le.IsExponentOfTwo(a.width))throw new Error("Texture size must be a power of two");const s=OT(a.width)+1,r=a.getEngine();let n=!1,o=!1,l=null,c=null,u=null;const f=r.getCaps();f.textureLOD?r._features.supportRenderAndCopyToLodForFloatTextures?f.textureHalfFloatRender&&f.textureHalfFloatLinearFiltering?(n=!0,a.type=2):f.textureFloatRender&&f.textureFloatLinearFiltering&&(n=!0,a.type=1):n=!1:(n=!1,o=t);let p=0;if(n)r.isWebGPU?(p=1,await Promise.resolve().then(()=>ibe)):await Promise.resolve().then(()=>Qxe),l=new Mi("rgbdDecode","rgbdDecode",null,null,1,null,3,r,!1,void 0,a.type,void 0,null,!1,void 0,p),a._isRGBD=!1,a.invertY=!1,c=r.createRenderTargetCubeTexture(a.width,{generateDepthBuffer:!1,generateMipMaps:!0,generateStencilBuffer:!1,samplingMode:3,type:a.type,format:5});else if(a._isRGBD=!0,a.invertY=!0,o){u={};const d=a._lodGenerationScale,h=a._lodGenerationOffset;for(let x=0;x<3;x++){const S=1-x/2,E=h,b=(s-1)*d+h,M=E+(b-E)*S,T=Math.round(Math.min(Math.max(M,0),b)),O=new gr(r,2);O.isCube=!0,O.invertY=!0,O.generateMipMaps=!1,r.updateTextureSamplingMode(2,O);const R=new vr(null);switch(R._isCube=!0,R._texture=O,u[T]=R,x){case 0:a._lodTextureLow=R;break;case 1:a._lodTextureMid=R;break;case 2:a._lodTextureHigh=R;break}}}const m=[];for(let _=0;_<e.length;_++)for(let d=0;d<6;d++){const h=e[_][d],x=new Blob([h],{type:i}),A=URL.createObjectURL(x);let S;if(r._features.forceBitmapOverHTMLImageElement)S=r.createImageBitmap(x,{premultiplyAlpha:"none"}).then(E=>Lde(E,r,n,l,A,d,_,o,u,c,a));else{const E=new Image;E.src=A,S=new Promise((b,M)=>{E.onload=()=>{Lde(E,r,n,l,A,d,_,o,u,c,a).then(()=>b()).catch(T=>{M(T)})},E.onerror=T=>{M(T)}})}m.push(S)}if(await Promise.all(m),e.length<s){let _;const d=Math.pow(2,s-1-e.length),h=d*d*4;switch(a.type){case 0:{_=new Uint8Array(h);break}case 2:{_=new Uint16Array(h);break}case 1:{_=new Float32Array(h);break}}for(let x=e.length;x<s;x++)for(let A=0;A<6;A++)r._uploadArrayBufferViewToTexture((c==null?void 0:c.texture)||a,_,A,x)}if(c){const _=a._irradianceTexture;a._irradianceTexture=null,r._releaseTexture(a),c._swapAndDie(a),a._irradianceTexture=_}l&&l.dispose(),o&&(a._lodTextureHigh&&a._lodTextureHigh._texture&&(a._lodTextureHigh._texture.isReady=!0),a._lodTextureMid&&a._lodTextureMid._texture&&(a._lodTextureMid._texture.isReady=!0),a._lodTextureLow&&a._lodTextureLow._texture&&(a._lodTextureLow._texture.isReady=!0))}function kG(a,e){e=PP(e);const t=e.irradiance;if(!t)return;const i=new Xv;P.FromArrayToRef(t.x,0,i.x),P.FromArrayToRef(t.y,0,i.y),P.FromArrayToRef(t.z,0,i.z),P.FromArrayToRef(t.xx,0,i.xx),P.FromArrayToRef(t.yy,0,i.yy),P.FromArrayToRef(t.zz,0,i.zz),P.FromArrayToRef(t.yz,0,i.yz),P.FromArrayToRef(t.zx,0,i.zx),P.FromArrayToRef(t.xy,0,i.xy),a._sphericalPolynomial=i}function Pde(a,e,t,i,s){const r=a.getEngine().createRawCubeTexture(null,a.width,a.format,a.type,a.generateMipMaps,a.invertY,a.samplingMode,a._compression),n=Vw(r,e).then(()=>a);return a.onRebuildCallback=o=>({proxy:n,isReady:!0,isAsync:!0}),a._source=13,a._bufferViewArrayArray=e,a._lodGenerationScale=i,a._lodGenerationOffset=s,a._sphericalPolynomial=t,Vw(a,e).then(()=>(a.isReady=!0,a))}const HRe={GetEnvInfo:zG,CreateEnvTextureAsync:Ede,CreateRadianceImageDataArrayBufferViews:FG,CreateIrradianceImageDataArrayBufferViews:JZ,UploadEnvLevelsAsync:$Z,UploadRadianceLevelsAsync:Vw,UploadIrradianceLevelsAsync:eK,UploadEnvSpherical:kG};function Ode(a){const e=a.split("?")[0],t=e.lastIndexOf(".");return t>-1?e.substring(t).toLowerCase():""}dt.prototype._partialLoadFile=function(a,e,t,i,s=null){const r=o=>{t[e]=o,t._internalCount++,t._internalCount===6&&i(t)},n=(o,l)=>{s&&o&&s(o.status+" "+o.statusText,l)};this._loadFile(a,r,void 0,void 0,!0,n)},dt.prototype._cascadeLoadFiles=function(a,e,t,i=null){const s=[];s._internalCount=0;for(let r=0;r<6;r++)this._partialLoadFile(t[r],r,s,e,i)},dt.prototype._cascadeLoadImgs=function(a,e,t,i,s=null,r){const n=[];n._internalCount=0;for(let o=0;o<6;o++)this._partialLoadImg(i[o],o,n,a,e,t,s,r)},dt.prototype._partialLoadImg=function(a,e,t,i,s,r,n=null,o){const l=e3();rP(a,f=>{t[e]=f,t._internalCount++,i&&i.removePendingData(l),t._internalCount===6&&r&&r(s,t)},(f,p)=>{i&&i.removePendingData(l),n&&n(f,p)},i?i.offlineProvider:null,o),i&&i.addPendingData(l)},dt.prototype.createCubeTextureBase=function(a,e,t,i,s=null,r=null,n,o=null,l=!1,c=0,u=0,f=null,p=null,m=null,_=!1,d=null){const h=f||new gr(this,7);h.isCube=!0,h.url=a,h.generateMipMaps=!i,h._lodGenerationScale=c,h._lodGenerationOffset=u,h._useSRGBBuffer=!!_&&this._caps.supportSRGBBuffers&&(this.version>1||this.isWebGPU||!!i),h!==f&&(h.label=a.substring(0,60)),this._doNotHandleContextLost||(h._extension=o,h._files=t,h._buffer=d);const x=a;this._transformTextureUrl&&!f&&(a=this._transformTextureUrl(a));const A=o??Ode(a),S=eG(A),E=(b,M)=>{a===x?r&&b&&r(b.status+" "+b.statusText,M):(de.Warn(`Failed to load ${a}, falling back to the ${x}`),this.createCubeTextureBase(x,e,t,!!i,s,r,n,o,l,c,u,h,p,m,_,d))};if(S)S.then(b=>{const M=T=>{p&&p(h,T),b.loadCubeData(T,h,l,s,r)};d?M(d):t&&t.length===6?b.supportCascades?this._cascadeLoadFiles(e,T=>M(T.map(O=>new Uint8Array(O))),t,r):r?r("Textures type does not support cascades."):de.Warn("Texture loader does not support cascades."):this._loadFile(a,T=>M(new Uint8Array(T)),void 0,void 0,!0,E)});else{if(!t||t.length===0)throw new Error("Cannot load cubemap because files were not defined, or the correct loader was not found.");this._cascadeLoadImgs(e,h,(b,M)=>{m&&m(b,M)},t,r)}return this._internalTexturesCache.push(h),h};const Rde=.8;class ko extends vr{set boundingBoxSize(e){if(this._boundingBoxSize&&this._boundingBoxSize.equals(e))return;this._boundingBoxSize=e;const t=this.getScene();t&&t.markAllMaterialsAsDirty(1)}get boundingBoxSize(){return this._boundingBoxSize}set rotationY(e){this._rotationY=e,this.setReflectionTextureMatrix(me.RotationY(this._rotationY))}get rotationY(){return this._rotationY}get noMipmap(){return this._noMipmap}get forcedExtension(){return this._forcedExtension}static CreateFromImages(e,t,i){let s="";return e.forEach(r=>s+=r),new ko(s,t,null,i,e)}static CreateFromPrefilteredData(e,t,i=null,s=!0){const r=t.useDelayedTextureLoading;t.useDelayedTextureLoading=!1;const n=new ko(e,t,null,!1,null,null,null,void 0,!0,i,s);return t.useDelayedTextureLoading=r,n}constructor(e,t,i=null,s=!1,r=null,n=null,o=null,l=5,c=!1,u=null,f=!1,p=Rde,m=0,_,d){var A;super(t),this.onLoadObservable=new xe,this.boundingBoxPosition=P.Zero(),this._rotationY=0,this._files=null,this._forcedExtension=null,this._extensions=null,this._textureMatrixRefraction=new me,this._buffer=null,this.name=e,this.url=e,this._noMipmap=s,this.hasAlpha=!1,this.isCube=!0,this._textureMatrix=me.Identity(),this.coordinatesMode=be.CUBIC_MODE;let h=null,x=null;i!==null&&!Array.isArray(i)?(h=i.extensions??null,this._noMipmap=i.noMipmap??!1,r=i.files??null,x=i.buffer??null,this._format=i.format??5,c=i.prefiltered??!1,u=i.forcedExtension??null,this._createPolynomials=i.createPolynomials??!1,this._lodScale=i.lodScale??Rde,this._lodOffset=i.lodOffset??0,this._loaderOptions=i.loaderOptions,this._useSRGBBuffer=i.useSRGBBuffer,n=i.onLoad??null,o=i.onError??null):(this._noMipmap=s,this._format=l,this._createPolynomials=f,h=i,this._loaderOptions=_,this._useSRGBBuffer=d,this._lodScale=p,this._lodOffset=m),!(!e&&!r)&&this.updateURL(e,u,n,c,o,h,(A=this.getScene())==null?void 0:A.useDelayedTextureLoading,r,x)}getClassName(){return"CubeTexture"}updateURL(e,t=null,i=null,s=!1,r=null,n=null,o=!1,l=null,c=null){(!this.name||this.name.startsWith("data:"))&&(this.name=e),this.url=e,t&&(this._forcedExtension=t);const u=e.lastIndexOf("."),f=t||(u>-1?e.substring(u).toLowerCase():""),p=f.indexOf(".dds")===0,m=f.indexOf(".env")===0,_=f.indexOf(".basis")===0;if(m?(this.gammaSpace=!1,this._prefiltered=!1,this.anisotropicFilteringLevel=1):(this._prefiltered=s,s&&(this.gammaSpace=!1,this.anisotropicFilteringLevel=1)),l)this._files=l;else if(!_&&!m&&!p&&!n&&(n=["_px.jpg","_py.jpg","_pz.jpg","_nx.jpg","_ny.jpg","_nz.jpg"]),this._files=this._files||[],this._files.length=0,n){for(let d=0;d<n.length;d++)this._files.push(e+n[d]);this._extensions=n}this._buffer=c,o?(this.delayLoadState=4,this._delayedOnLoad=i,this._delayedOnError=r):this._loadTexture(i,r)}delayLoad(e){this.delayLoadState===4&&(e&&(this._forcedExtension=e),this.delayLoadState=1,this._loadTexture(this._delayedOnLoad,this._delayedOnError))}getReflectionTextureMatrix(){return this._textureMatrix}setReflectionTextureMatrix(e){var r,n;if(e.updateFlag===this._textureMatrix.updateFlag||(e.isIdentity()!==this._textureMatrix.isIdentity()&&((r=this.getScene())==null||r.markAllMaterialsAsDirty(1,o=>o.getActiveTextures().indexOf(this)!==-1)),this._textureMatrix=e,!((n=this.getScene())!=null&&n.useRightHandedSystem)))return;const t=ae.Vector3[0],i=ae.Quaternion[0],s=ae.Vector3[1];this._textureMatrix.decompose(t,i,s),i.z*=-1,i.w*=-1,me.ComposeToRef(t,i,s,this._textureMatrixRefraction)}getRefractionTextureMatrix(){var e;return(e=this.getScene())!=null&&e.useRightHandedSystem?this._textureMatrixRefraction:this._textureMatrix}_loadTexture(e=null,t=null){var o;const i=this.getScene(),s=this._texture;this._texture=this._getFromCache(this.url,this._noMipmap,void 0,void 0,this._useSRGBBuffer,this.isCube);const r=()=>{var l;this.onLoadObservable.notifyObservers(this),s&&(s.dispose(),(l=this.getScene())==null||l.markAllMaterialsAsDirty(1)),e&&e()},n=(l,c)=>{this._loadingError=!0,this._errorObject={message:l,exception:c},t&&t(l,c),be.OnTextureLoadErrorObservable.notifyObservers(this)};this._texture?this._texture.isReady?Le.SetImmediate(()=>r()):this._texture.onLoadedObservable.add(()=>r()):(this._prefiltered?this._texture=this._getEngine().createPrefilteredCubeTexture(this.url,i,this._lodScale,this._lodOffset,e,n,this._format,this._forcedExtension,this._createPolynomials):this._texture=this._getEngine().createCubeTexture(this.url,i,this._files,this._noMipmap,e,n,this._format,this._forcedExtension,!1,this._lodScale,this._lodOffset,null,this._loaderOptions,!!this._useSRGBBuffer,this._buffer),(o=this._texture)==null||o.onLoadedObservable.add(()=>this.onLoadObservable.notifyObservers(this)))}static Parse(e,t,i){const s=It.Parse(()=>{let r=!1;return e.prefiltered&&(r=e.prefiltered),new ko(i+(e.url??e.name),t,e.extensions,!1,e.files||null,null,null,void 0,r,e.forcedExtension)},e,t);if(e.boundingBoxPosition&&(s.boundingBoxPosition=P.FromArray(e.boundingBoxPosition)),e.boundingBoxSize&&(s.boundingBoxSize=P.FromArray(e.boundingBoxSize)),e.animations)for(let r=0;r<e.animations.length;r++){const n=e.animations[r],o=ea("BABYLON.Animation");o&&s.animations.push(o.Parse(n))}return s}clone(){let e=0;const t=It.Clone(()=>{const i=new ko(this.url,this.getScene()||this._getEngine(),this._extensions,this._noMipmap,this._files);return e=i.uniqueId,i},this);return t.uniqueId=e,t}}F([G()],ko.prototype,"url",void 0),F([Ma()],ko.prototype,"boundingBoxPosition",void 0),F([Ma()],ko.prototype,"boundingBoxSize",null),F([G("rotationY")],ko.prototype,"rotationY",null),F([G("files")],ko.prototype,"_files",void 0),F([G("forcedExtension")],ko.prototype,"_forcedExtension",void 0),F([G("extensions")],ko.prototype,"_extensions",void 0),F([uG("textureMatrix")],ko.prototype,"_textureMatrix",void 0),F([uG("textureMatrixRefraction")],ko.prototype,"_textureMatrixRefraction",void 0),be._CubeTextureParser=ko.Parse,ve("BABYLON.CubeTexture",ko);class UG extends ko{constructor(e,t,i,s=5,r=0,n=!1,o=!1,l=3,c=null){super("",e),this._texture=e.getEngine().createRawCubeTexture(t,i,s,r,n,o,l,c)}update(e,t,i,s,r=null){this._texture.getEngine().updateRawCubeTexture(this._texture,e,t,i,s,r)}updateRGBDAsync(e,t=null,i=.8,s=0){return Pde(this._texture,e,t,i,s).then(()=>{})}clone(){return It.Clone(()=>{const e=this.getScene(),t=this._texture,i=new UG(e,t._bufferViewArray,t.width,t.format,t.type,t.generateMipMaps,t.invertY,t.samplingMode,t._compression);return t.source===13&&i.updateRGBDAsync(t._bufferViewArrayArray,t._sphericalPolynomial,t._lodGenerationScale,t._lodGenerationOffset),i},this)}}const jG="EXT_lights_image_based";class Dde{constructor(e){this.name=jG,this._loader=e,this.enabled=this._loader.isExtensionUsed(jG)}dispose(){this._loader=null,delete this._lights}onLoading(){const e=this._loader.gltf.extensions;if(e&&e[this.name]){const t=e[this.name];this._lights=t.lights}}loadSceneAsync(e,t){return Rs.LoadExtensionAsync(e,t,this.name,(i,s)=>{this._loader._allMaterialsDirtyRequired=!0;const r=new Array;r.push(this._loader.loadSceneAsync(e,t)),this._loader.logOpen(`${i}`);const n=gs.Get(`${i}/light`,this._lights,s.light);return r.push(this._loadLightAsync(`/extensions/${this.name}/lights/${s.light}`,n).then(o=>{this._loader.babylonScene.environmentTexture=o})),this._loader.logClose(),Promise.all(r).then(()=>{})})}_loadLightAsync(e,t){if(!t._loaded){const i=new Array;this._loader.logOpen(`${e}`);const s=new Array(t.specularImages.length);for(let r=0;r<t.specularImages.length;r++){const n=t.specularImages[r];s[r]=new Array(n.length);for(let o=0;o<n.length;o++){const l=`${e}/specularImages/${r}/${o}`;this._loader.logOpen(`${l}`);const c=n[o],u=gs.Get(l,this._loader.gltf.images,c);i.push(this._loader.loadImageAsync(`/images/${c}`,u).then(f=>{s[r][o]=f})),this._loader.logClose()}}this._loader.logClose(),t._loaded=Promise.all(i).then(()=>{const r=new UG(this._loader.babylonScene,null,t.specularImageSize);if(r.name=t.name||"environment",t._babylonTexture=r,t.intensity!=null&&(r.level=t.intensity),t.rotation){let c=Re.FromArray(t.rotation);this._loader.babylonScene.useRightHandedSystem||(c=Re.Inverse(c)),me.FromQuaternionToRef(c,r.getReflectionTextureMatrix())}if(!t.irradianceCoefficients)throw new Error(`${e}: Irradiance coefficients are missing`);const n=FT.FromArray(t.irradianceCoefficients);n.scaleInPlace(t.intensity),n.convertIrradianceToLambertianRadiance();const o=Xv.FromHarmonics(n),l=(s.length-1)/Math.log2(t.specularImageSize);return r.updateRGBDAsync(s,o,l)})}return t._loaded.then(()=>t._babylonTexture)}}ln(jG),_n(jG,!0,a=>new Dde(a)),Ne.prototype.thinInstanceAdd=function(a,e=!0){if(!this.getScene().getEngine().getCaps().instancedArrays)return de.Error("Thin Instances are not supported on this device as Instanced Array extension not supported"),-1;this._thinInstanceUpdateBufferSize("matrix",Array.isArray(a)?a.length:1);const t=this._thinInstanceDataStorage.instancesCount;if(Array.isArray(a))for(let i=0;i<a.length;++i)this.thinInstanceSetMatrixAt(this._thinInstanceDataStorage.instancesCount++,a[i],i===a.length-1&&e);else this.thinInstanceSetMatrixAt(this._thinInstanceDataStorage.instancesCount++,a,e);return t},Ne.prototype.thinInstanceAddSelf=function(a=!0){return this.thinInstanceAdd(me.IdentityReadOnly,a)},Ne.prototype.thinInstanceRegisterAttribute=function(a,e){a===q.ColorKind&&(a=q.ColorInstanceKind),this.removeVerticesData(a),this._thinInstanceInitializeUserStorage(),this._userThinInstanceBuffersStorage.strides[a]=e,this._userThinInstanceBuffersStorage.sizes[a]=e*Math.max(32,this._thinInstanceDataStorage.instancesCount),this._userThinInstanceBuffersStorage.data[a]=new Float32Array(this._userThinInstanceBuffersStorage.sizes[a]),this._userThinInstanceBuffersStorage.vertexBuffers[a]=new q(this.getEngine(),this._userThinInstanceBuffersStorage.data[a],a,!0,!1,e,!0),this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[a])},Ne.prototype.thinInstanceSetMatrixAt=function(a,e,t=!0){if(!this._thinInstanceDataStorage.matrixData||a>=this._thinInstanceDataStorage.instancesCount)return!1;const i=this._thinInstanceDataStorage.matrixData;return e.copyToArray(i,a*16),this._thinInstanceDataStorage.worldMatrices&&(this._thinInstanceDataStorage.worldMatrices[a]=e),t&&(this.thinInstanceBufferUpdated("matrix"),this.doNotSyncBoundingInfo||this.thinInstanceRefreshBoundingInfo(!1)),!0},Ne.prototype.thinInstanceSetAttributeAt=function(a,e,t,i=!0){return a===q.ColorKind&&(a=q.ColorInstanceKind),!this._userThinInstanceBuffersStorage||!this._userThinInstanceBuffersStorage.data[a]||e>=this._thinInstanceDataStorage.instancesCount?!1:(this._thinInstanceUpdateBufferSize(a,0),this._userThinInstanceBuffersStorage.data[a].set(t,e*this._userThinInstanceBuffersStorage.strides[a]),i&&this.thinInstanceBufferUpdated(a),!0)},Object.defineProperty(Ne.prototype,"thinInstanceCount",{get:function(){return this._thinInstanceDataStorage.instancesCount},set:function(a){var i;const e=this._thinInstanceDataStorage.matrixData??((i=this.source)==null?void 0:i._thinInstanceDataStorage.matrixData),t=e?e.length/16:0;a<=t&&(this._thinInstanceDataStorage.instancesCount=a)},enumerable:!0,configurable:!0}),Ne.prototype._thinInstanceCreateMatrixBuffer=function(a,e,t=!0){const i=new fl(this.getEngine(),e,!t,16,!1,!0);for(let s=0;s<4;s++)this.setVerticesBuffer(i.createVertexBuffer(a+s,s*4,4));return i},Ne.prototype.thinInstanceSetBuffer=function(a,e,t=0,i=!0){var s,r,n;t=t||16,a==="matrix"?((s=this._thinInstanceDataStorage.matrixBuffer)==null||s.dispose(),this._thinInstanceDataStorage.matrixBuffer=null,this._thinInstanceDataStorage.matrixBufferSize=e?e.length:32*t,this._thinInstanceDataStorage.matrixData=e,this._thinInstanceDataStorage.worldMatrices=null,e!==null?(this._thinInstanceDataStorage.instancesCount=e.length/t,this._thinInstanceDataStorage.matrixBuffer=this._thinInstanceCreateMatrixBuffer("world",e,i),this.doNotSyncBoundingInfo||this.thinInstanceRefreshBoundingInfo(!1)):(this._thinInstanceDataStorage.instancesCount=0,this.doNotSyncBoundingInfo||this.refreshBoundingInfo())):a==="previousMatrix"?((r=this._thinInstanceDataStorage.previousMatrixBuffer)==null||r.dispose(),this._thinInstanceDataStorage.previousMatrixBuffer=null,this._thinInstanceDataStorage.previousMatrixData=e,e!==null&&(this._thinInstanceDataStorage.previousMatrixBuffer=this._thinInstanceCreateMatrixBuffer("previousWorld",e,i))):(a===q.ColorKind&&(a=q.ColorInstanceKind),e===null?(n=this._userThinInstanceBuffersStorage)!=null&&n.data[a]&&(this.removeVerticesData(a),delete this._userThinInstanceBuffersStorage.data[a],delete this._userThinInstanceBuffersStorage.strides[a],delete this._userThinInstanceBuffersStorage.sizes[a],delete this._userThinInstanceBuffersStorage.vertexBuffers[a]):(this._thinInstanceInitializeUserStorage(),this._userThinInstanceBuffersStorage.data[a]=e,this._userThinInstanceBuffersStorage.strides[a]=t,this._userThinInstanceBuffersStorage.sizes[a]=e.length,this._userThinInstanceBuffersStorage.vertexBuffers[a]=new q(this.getEngine(),e,a,!i,!1,t,!0),this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[a])))},Ne.prototype.thinInstanceBufferUpdated=function(a){var e,t,i;a==="matrix"?(this.thinInstanceAllowAutomaticStaticBufferRecreation&&this._thinInstanceDataStorage.matrixBuffer&&!this._thinInstanceDataStorage.matrixBuffer.isUpdatable()&&this._thinInstanceRecreateBuffer(a),(e=this._thinInstanceDataStorage.matrixBuffer)==null||e.updateDirectly(this._thinInstanceDataStorage.matrixData,0,this._thinInstanceDataStorage.instancesCount)):a==="previousMatrix"?(this.thinInstanceAllowAutomaticStaticBufferRecreation&&this._thinInstanceDataStorage.previousMatrixBuffer&&!this._thinInstanceDataStorage.previousMatrixBuffer.isUpdatable()&&this._thinInstanceRecreateBuffer(a),(t=this._thinInstanceDataStorage.previousMatrixBuffer)==null||t.updateDirectly(this._thinInstanceDataStorage.previousMatrixData,0,this._thinInstanceDataStorage.instancesCount)):(a===q.ColorKind&&(a=q.ColorInstanceKind),(i=this._userThinInstanceBuffersStorage)!=null&&i.vertexBuffers[a]&&(this.thinInstanceAllowAutomaticStaticBufferRecreation&&!this._userThinInstanceBuffersStorage.vertexBuffers[a].isUpdatable()&&this._thinInstanceRecreateBuffer(a),this._userThinInstanceBuffersStorage.vertexBuffers[a].updateDirectly(this._userThinInstanceBuffersStorage.data[a],0)))},Ne.prototype.thinInstancePartialBufferUpdate=function(a,e,t){var i;a==="matrix"?this._thinInstanceDataStorage.matrixBuffer&&this._thinInstanceDataStorage.matrixBuffer.updateDirectly(e,t):(a===q.ColorKind&&(a=q.ColorInstanceKind),(i=this._userThinInstanceBuffersStorage)!=null&&i.vertexBuffers[a]&&this._userThinInstanceBuffersStorage.vertexBuffers[a].updateDirectly(e,t))},Ne.prototype.thinInstanceGetWorldMatrices=function(){if(!this._thinInstanceDataStorage.matrixData||!this._thinInstanceDataStorage.matrixBuffer)return[];const a=this._thinInstanceDataStorage.matrixData;if(!this._thinInstanceDataStorage.worldMatrices){this._thinInstanceDataStorage.worldMatrices=[];for(let e=0;e<this._thinInstanceDataStorage.instancesCount;++e)this._thinInstanceDataStorage.worldMatrices[e]=me.FromArray(a,e*16)}return this._thinInstanceDataStorage.worldMatrices},Ne.prototype.thinInstanceRefreshBoundingInfo=function(a=!1,e=!1,t=!1){if(!this._thinInstanceDataStorage.matrixData||!this._thinInstanceDataStorage.matrixBuffer)return;const i=this._thinInstanceDataStorage.boundingVectors;if(a||!this.rawBoundingInfo){i.length=0,this.refreshBoundingInfo(e,t);const n=this.getBoundingInfo();this.rawBoundingInfo=new nd(n.minimum,n.maximum)}const s=this.getBoundingInfo(),r=this._thinInstanceDataStorage.matrixData;if(i.length===0)for(let n=0;n<s.boundingBox.vectors.length;++n)i.push(s.boundingBox.vectors[n].clone());ae.Vector3[0].setAll(Number.POSITIVE_INFINITY),ae.Vector3[1].setAll(Number.NEGATIVE_INFINITY);for(let n=0;n<this._thinInstanceDataStorage.instancesCount;++n){me.FromArrayToRef(r,n*16,ae.Matrix[0]);for(let o=0;o<i.length;++o)P.TransformCoordinatesToRef(i[o],ae.Matrix[0],ae.Vector3[2]),ae.Vector3[0].minimizeInPlace(ae.Vector3[2]),ae.Vector3[1].maximizeInPlace(ae.Vector3[2])}s.reConstruct(ae.Vector3[0],ae.Vector3[1]),this._updateBoundingInfo()},Ne.prototype._thinInstanceRecreateBuffer=function(a,e=!0){var t,i,s;a==="matrix"?((t=this._thinInstanceDataStorage.matrixBuffer)==null||t.dispose(),this._thinInstanceDataStorage.matrixBuffer=this._thinInstanceCreateMatrixBuffer("world",this._thinInstanceDataStorage.matrixData,e)):a==="previousMatrix"?this._scene.needsPreviousWorldMatrices&&((i=this._thinInstanceDataStorage.previousMatrixBuffer)==null||i.dispose(),this._thinInstanceDataStorage.previousMatrixBuffer=this._thinInstanceCreateMatrixBuffer("previousWorld",this._thinInstanceDataStorage.previousMatrixData??this._thinInstanceDataStorage.matrixData,e)):(a===q.ColorKind&&(a=q.ColorInstanceKind),(s=this._userThinInstanceBuffersStorage.vertexBuffers[a])==null||s.dispose(),this._userThinInstanceBuffersStorage.vertexBuffers[a]=new q(this.getEngine(),this._userThinInstanceBuffersStorage.data[a],a,!e,!1,this._userThinInstanceBuffersStorage.strides[a],!0),this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[a]))},Ne.prototype._thinInstanceUpdateBufferSize=function(a,e=1){var l,c,u;a===q.ColorKind&&(a=q.ColorInstanceKind);const t=a==="matrix";if(!t&&(!this._userThinInstanceBuffersStorage||!this._userThinInstanceBuffersStorage.strides[a]))return;const i=t?16:this._userThinInstanceBuffersStorage.strides[a],s=t?this._thinInstanceDataStorage.matrixBufferSize:this._userThinInstanceBuffersStorage.sizes[a];let r=t?this._thinInstanceDataStorage.matrixData:this._userThinInstanceBuffersStorage.data[a];const n=(this._thinInstanceDataStorage.instancesCount+e)*i;let o=s;for(;o<n;)o*=2;if(!r||s!=o){if(!r)r=new Float32Array(o);else{const f=new Float32Array(o);f.set(r,0),r=f}t?((l=this._thinInstanceDataStorage.matrixBuffer)==null||l.dispose(),this._thinInstanceDataStorage.matrixBuffer=this._thinInstanceCreateMatrixBuffer("world",r,!1),this._thinInstanceDataStorage.matrixData=r,this._thinInstanceDataStorage.matrixBufferSize=o,this._scene.needsPreviousWorldMatrices&&!this._thinInstanceDataStorage.previousMatrixData&&((c=this._thinInstanceDataStorage.previousMatrixBuffer)==null||c.dispose(),this._thinInstanceDataStorage.previousMatrixBuffer=this._thinInstanceCreateMatrixBuffer("previousWorld",r,!1))):((u=this._userThinInstanceBuffersStorage.vertexBuffers[a])==null||u.dispose(),this._userThinInstanceBuffersStorage.data[a]=r,this._userThinInstanceBuffersStorage.sizes[a]=o,this._userThinInstanceBuffersStorage.vertexBuffers[a]=new q(this.getEngine(),r,a,!0,!1,i,!0),this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[a]))}},Ne.prototype._thinInstanceInitializeUserStorage=function(){this._userThinInstanceBuffersStorage||(this._userThinInstanceBuffersStorage={data:{},sizes:{},vertexBuffers:{},strides:{}})},Ne.prototype._disposeThinInstanceSpecificData=function(){var a;(a=this._thinInstanceDataStorage)!=null&&a.matrixBuffer&&(this._thinInstanceDataStorage.matrixBuffer.dispose(),this._thinInstanceDataStorage.matrixBuffer=null)};const VG="EXT_mesh_gpu_instancing";let Nde=class{constructor(e){this.name=VG,this._loader=e,this.enabled=this._loader.isExtensionUsed(VG)}dispose(){this._loader=null}loadNodeAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{this._loader._disableInstancedMesh++;const n=this._loader.loadNodeAsync(`/nodes/${t.index}`,t,i);if(this._loader._disableInstancedMesh--,!t._primitiveBabylonMeshes)return n;const o=new Array;let l=0;const c=u=>{if(r.attributes[u]==null){o.push(Promise.resolve(null));return}const f=gs.Get(`${s}/attributes/${u}`,this._loader.gltf.accessors,r.attributes[u]);if(o.push(this._loader._loadFloatAccessorAsync(`/accessors/${f.bufferView}`,f)),l===0)l=f.count;else if(l!==f.count)throw new Error(`${s}/attributes: Instance buffer accessors do not have the same count.`)};return c("TRANSLATION"),c("ROTATION"),c("SCALE"),n.then(u=>Promise.all(o).then(([f,p,m])=>{const _=new Float32Array(l*16);ae.Vector3[0].copyFromFloats(0,0,0),ae.Quaternion[0].copyFromFloats(0,0,0,1),ae.Vector3[1].copyFromFloats(1,1,1);for(let d=0;d<l;++d)f&&P.FromArrayToRef(f,d*3,ae.Vector3[0]),p&&Re.FromArrayToRef(p,d*4,ae.Quaternion[0]),m&&P.FromArrayToRef(m,d*3,ae.Vector3[1]),me.ComposeToRef(ae.Vector3[1],ae.Quaternion[0],ae.Vector3[0],ae.Matrix[0]),ae.Matrix[0].copyToArray(_,d*16);for(const d of t._primitiveBabylonMeshes)d.thinInstanceSetBuffer("matrix",_,16,!0);return u}))})}};ln(VG),_n(VG,!0,a=>new Nde(a));let tK=0,GG=null;class rb{static get Default(){return rb._Default||(rb._Default=new rb),rb._Default}constructor(){const e=rb.Configuration.decoder;this._decoderModulePromise=Le.LoadBabylonScriptAsync(e.url).then(()=>MeshoptDecoder.ready)}dispose(){delete this._decoderModulePromise}decodeGltfBufferAsync(e,t,i,s,r){return this._decoderModulePromise.then(async()=>{tK===0&&(MeshoptDecoder.useWorkers(1),tK=1);const n=await MeshoptDecoder.decodeGltfBufferAsync(t,i,e,s,r);return GG!==null&&clearTimeout(GG),GG=setTimeout(()=>{MeshoptDecoder.useWorkers(0),tK=0,GG=null},1e3),n})}}rb.Configuration={decoder:{url:`${Le._DefaultCdnUrl}/meshopt_decoder.js`}},rb._Default=null;const WG="EXT_meshopt_compression";class wde{constructor(e){this.name=WG,this.enabled=e.isExtensionUsed(WG),this._loader=e}dispose(){this._loader=null}loadBufferViewAsync(e,t){return Rs.LoadExtensionAsync(e,t,this.name,(i,s)=>{const r=t;if(r._meshOptData)return r._meshOptData;const n=gs.Get(`${e}/buffer`,this._loader.gltf.buffers,s.buffer);return r._meshOptData=this._loader.loadBufferAsync(`/buffers/${n.index}`,n,s.byteOffset||0,s.byteLength).then(o=>rb.Default.decodeGltfBufferAsync(o,s.count,s.byteStride,s.mode,s.filter)),r._meshOptData})}}ln(WG),_n(WG,!0,a=>new wde(a));const HG="EXT_texture_webp";class Bde{constructor(e){this.name=HG,this._loader=e,this.enabled=e.isExtensionUsed(HG)}dispose(){this._loader=null}_loadTextureAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=t.sampler==null?Rs.DefaultSampler:gs.Get(`${e}/sampler`,this._loader.gltf.samplers,t.sampler),o=gs.Get(`${s}/source`,this._loader.gltf.images,r.source);return this._loader._createTextureAsync(e,n,o,l=>{i(l)},void 0,!t._textureInfo.nonColorData)})}}ln(HG),_n(HG,!0,a=>new Bde(a));const YG="EXT_texture_avif";class zde{constructor(e){this.name=YG,this._loader=e,this.enabled=e.isExtensionUsed(YG)}dispose(){this._loader=null}_loadTextureAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=t.sampler==null?Rs.DefaultSampler:gs.Get(`${e}/sampler`,this._loader.gltf.samplers,t.sampler),o=gs.Get(`${s}/source`,this._loader.gltf.images,r.source);return this._loader._createTextureAsync(e,n,o,l=>{i(l)},void 0,!t._textureInfo.nonColorData)})}}ln(YG),_n(YG,!0,a=>new zde(a));const XG="EXT_lights_ies";class Fde{constructor(e){this.name=XG,this._loader=e,this.enabled=this._loader.isExtensionUsed(XG)}dispose(){this._loader=null,delete this._lights}onLoading(){const e=this._loader.gltf.extensions;if(e&&e[this.name]){const t=e[this.name];this._lights=t.lights,gs.Assign(this._lights)}}loadNodeAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,async(s,r)=>{this._loader._allMaterialsDirtyRequired=!0;let n,o;const l=await this._loader.loadNodeAsync(e,t,u=>{o=gs.Get(s,this._lights,r.light);const f=o.name||u.name;this._loader.babylonScene._blockEntityCollection=!!this._loader._assetContainer,n=new $o(f,P.Zero(),P.Backward(),0,1,this._loader.babylonScene),n.angle=Math.PI/2,n.innerAngle=0,n._parentContainer=this._loader._assetContainer,this._loader.babylonScene._blockEntityCollection=!1,o._babylonLight=n,n.falloffType=vs.FALLOFF_GLTF,n.diffuse=r.color?Pe.FromArray(r.color):Pe.White(),n.intensity=r.multiplier||1,n.range=Number.MAX_VALUE,n.parent=u,this._loader._babylonLights.push(n),Rs.AddPointerMetadata(n,s),i(u)});let c;if(o.uri)c=await this._loader.loadUriAsync(e,o,o.uri);else{const u=gs.Get(`${e}/bufferView`,this._loader.gltf.bufferViews,o.bufferView);c=await this._loader.loadBufferViewAsync(`/bufferViews/${u.index}`,u)}return n.iesProfileTexture=new be(name+"_iesProfile",this._loader.babylonScene,!0,!1,void 0,null,null,c,!0,void 0,void 0,void 0,void 0,".ies"),l})}}ln(XG),_n(XG,!0,a=>new Fde(a));class kde{constructor(e){this._pendingActions=new Array,this._workerInfos=e.map(t=>({workerPromise:Promise.resolve(t),idle:!0}))}dispose(){for(const e of this._workerInfos)e.workerPromise.then(t=>{t.terminate()});this._workerInfos.length=0,this._pendingActions.length=0}push(e){this._executeOnIdleWorker(e)||this._pendingActions.push(e)}_executeOnIdleWorker(e){for(const t of this._workerInfos)if(t.idle)return this._execute(t,e),!0;return!1}_execute(e,t){e.idle=!1,e.workerPromise.then(i=>{t(i,()=>{const s=this._pendingActions.shift();s?this._execute(e,s):e.idle=!0})})}}class OP extends kde{constructor(e,t,i=OP.DefaultOptions){super([]),this._maxWorkers=e,this._createWorkerAsync=t,this._options=i}push(e){if(!this._executeOnIdleWorker(e))if(this._workerInfos.length<this._maxWorkers){const t={workerPromise:this._createWorkerAsync(),idle:!1};this._workerInfos.push(t),this._execute(t,e)}else this._pendingActions.push(e)}_execute(e,t){e.timeoutId&&(clearTimeout(e.timeoutId),delete e.timeoutId),super._execute(e,(i,s)=>{t(i,()=>{s(),e.idle&&(e.timeoutId=setTimeout(()=>{e.workerPromise.then(n=>{n.terminate()});const r=this._workerInfos.indexOf(e);r!==-1&&this._workerInfos.splice(r,1)},this._options.idleTimeElapsedBeforeRelease))})})}}OP.DefaultOptions={idleTimeElapsedBeforeRelease:1e3};function iK(a,e,t,i){const s=a;let r=null,n=null,o=null,l=null;const c={},u=e.find(f=>f.dracoName==="POSITION");if(!u)throw new Error("Position attribute is required for Draco encoding");if(!t){const f=u.data.length/u.size;t=new(f>65535?Uint32Array:Uint16Array)(f);for(let p=0;p<f;p++)t[p]=p}try{r=new s.Encoder,n=new s.MeshBuilder,o=new s.Mesh,n.AddFacesToMesh(o,t.length/3,t);const f=new Map([[Float32Array,(_,d,h,x,A,S)=>_.AddFloatAttribute(d,h,x,A,S)],[Uint32Array,(_,d,h,x,A,S)=>_.AddUInt32Attribute(d,h,x,A,S)],[Uint16Array,(_,d,h,x,A,S)=>_.AddUInt16Attribute(d,h,x,A,S)],[Uint8Array,(_,d,h,x,A,S)=>_.AddUInt8Attribute(d,h,x,A,S)],[Int32Array,(_,d,h,x,A,S)=>_.AddInt32Attribute(d,h,x,A,S)],[Int16Array,(_,d,h,x,A,S)=>_.AddInt16Attribute(d,h,x,A,S)],[Int8Array,(_,d,h,x,A,S)=>_.AddInt8Attribute(d,h,x,A,S)]]);for(const _ of e){_.data instanceof Uint8ClampedArray&&(_.data=new Uint8Array(_.data));const d=f.get(_.data.constructor),h=_.data.length/_.size;c[_.kind]=d(n,o,s[_.dracoName],h,_.size,_.data),i.quantizationBits&&i.quantizationBits[_.dracoName]&&r.SetAttributeQuantization(s[_.dracoName],i.quantizationBits[_.dracoName])}i.method&&r.SetEncodingMethod(s[i.method]),i.encodeSpeed!==void 0&&i.decodeSpeed!==void 0&&r.SetSpeedOptions(i.encodeSpeed,i.decodeSpeed),l=new s.DracoInt8Array;const p=r.EncodeMeshToDracoBuffer(o,l);if(p<=0)throw new Error("Draco encoding failed.");const m=new Int8Array(p);for(let _=0;_<p;_++)m[_]=l.GetValue(_);return{data:m,attributeIDs:c}}finally{o&&s.destroy(o),n&&s.destroy(n),r&&s.destroy(r),l&&s.destroy(l)}}function YRe(){let a;onmessage=e=>{const t=e.data;switch(t.id){case"init":{t.url&&importScripts(t.url);const i=t.wasmBinary?{wasmBinary:t.wasmBinary}:{};a=DracoEncoderModule(i),postMessage({id:"initDone"});break}case"encodeMesh":{if(!a)throw new Error("Draco encoder module is not available");a.then(i=>{const s=iK(i,t.attributes,t.indices,t.options);postMessage({id:"encodeMeshDone",encodedMeshData:s},s?[s.data.buffer]:void 0)});break}}}}function sK(a,e,t,i,s){const r=a;let n=null,o=null,l=null;try{n=new r.Decoder,o=new r.DecoderBuffer,o.Init(e,e.byteLength);let c;const u=n.GetEncodedGeometryType(o);switch(u){case r.TRIANGULAR_MESH:{const m=new r.Mesh;if(c=n.DecodeBufferToMesh(o,m),!c.ok()||m.ptr===0)throw new Error(c.error_msg());const d=m.num_faces()*3,h=d*4,x=r._malloc(h);try{n.GetTrianglesUInt32Array(m,h,x);const A=new Uint32Array(d);A.set(new Uint32Array(r.HEAPF32.buffer,x,d)),i(A)}finally{r._free(x)}l=m;break}case r.POINT_CLOUD:{const m=new r.PointCloud;if(c=n.DecodeBufferToPointCloud(o,m),!c.ok()||!m.ptr)throw new Error(c.error_msg());l=m;break}default:throw new Error(`Invalid geometry type ${u}`)}const f=l.num_points(),p=(m,_,d,h)=>{const x=h.data_type(),A=h.num_components(),S=h.normalized(),E=h.byte_stride(),b=h.byte_offset(),T={[r.DT_FLOAT32]:{typedArrayConstructor:Float32Array,heap:r.HEAPF32},[r.DT_INT8]:{typedArrayConstructor:Int8Array,heap:r.HEAP8},[r.DT_INT16]:{typedArrayConstructor:Int16Array,heap:r.HEAP16},[r.DT_INT32]:{typedArrayConstructor:Int32Array,heap:r.HEAP32},[r.DT_UINT8]:{typedArrayConstructor:Uint8Array,heap:r.HEAPU8},[r.DT_UINT16]:{typedArrayConstructor:Uint16Array,heap:r.HEAPU16},[r.DT_UINT32]:{typedArrayConstructor:Uint32Array,heap:r.HEAPU32}}[x];if(!T)throw new Error(`Invalid data type ${x}`);const O=f*A,R=O*T.typedArrayConstructor.BYTES_PER_ELEMENT,I=r._malloc(R);try{m.GetAttributeDataArrayForAllPoints(_,h,x,R,I);const N=new T.typedArrayConstructor(T.heap.buffer,I,O);s(d,N.slice(),A,b,E,S)}finally{r._free(I)}};if(t)for(const m in t){const _=t[m],d=n.GetAttributeByUniqueId(l,_);p(n,l,m,d)}else{const m={position:r.POSITION,normal:r.NORMAL,color:r.COLOR,uv:r.TEX_COORD};for(const _ in m){const d=n.GetAttributeId(l,m[_]);if(d!==-1){const h=n.GetAttribute(l,d);p(n,l,_,h)}}}return f}finally{l&&r.destroy(l),o&&r.destroy(o),n&&r.destroy(n)}}function XRe(){let a;onmessage=e=>{const t=e.data;switch(t.id){case"init":{t.url&&importScripts(t.url);const i=t.wasmBinary?{wasmBinary:t.wasmBinary}:{};a=DracoDecoderModule(i),postMessage({id:"initDone"});break}case"decodeMesh":{if(!a)throw new Error("Draco decoder module is not available");a.then(i=>{const s=sK(i,t.dataView,t.attributes,r=>{postMessage({id:"indices",data:r},[r.buffer])},(r,n,o,l,c,u)=>{postMessage({id:"attribute",kind:r,data:n,size:o,byteOffset:l,byteStride:c,normalized:u},[n.buffer])});postMessage({id:"decodeMeshDone",totalVertices:s})});break}}}}function ZRe(a,e,t){return new Promise((i,s)=>{const r=o=>{a.removeEventListener("error",r),a.removeEventListener("message",n),s(o)},n=o=>{o.data.id==="initDone"&&(a.removeEventListener("error",r),a.removeEventListener("message",n),i(a))};if(a.addEventListener("error",r),a.addEventListener("message",n),!e)a.postMessage({id:"init",url:t});else{const o=e.slice(0);a.postMessage({id:"init",url:t,wasmBinary:o},[o])}})}function Ude(){return typeof navigator!="object"||!navigator.hardwareConcurrency?1:Math.min(Math.floor(navigator.hardwareConcurrency*.5),4)}function rK(a){return!!(a.wasmUrl&&(a.wasmBinary||a.wasmBinaryUrl)&&typeof WebAssembly=="object"||a.fallbackUrl)}class jde{constructor(e){if(e.workerPool){this._workerPoolPromise=Promise.resolve(e.workerPool);return}const t=e.wasmBinary,i=e.numWorkers??Ude(),s=i&&typeof Worker=="function"&&typeof URL=="function",r=s||!e.jsModule,n=e.wasmUrl&&e.wasmBinaryUrl&&typeof WebAssembly=="object"?{url:r?Le.GetBabylonScriptURL(e.wasmUrl,!0):"",wasmBinaryPromise:t?Promise.resolve(t):Le.LoadFileAsync(Le.GetBabylonScriptURL(e.wasmBinaryUrl,!0))}:{url:r?Le.GetBabylonScriptURL(e.fallbackUrl):"",wasmBinaryPromise:Promise.resolve(void 0)};s?this._workerPoolPromise=n.wasmBinaryPromise.then(o=>{const l=this._getWorkerContent(),c=URL.createObjectURL(new Blob([l],{type:"application/javascript"}));return new OP(i,()=>{const u=new Worker(c);return ZRe(u,o,n.url)})}):this._modulePromise=n.wasmBinaryPromise.then(async o=>{if(!this._isModuleAvailable()&&!e.jsModule){if(!n.url)throw new Error("Draco codec module is not available");await Le.LoadBabylonScriptAsync(n.url)}return this._createModuleAsync(o,e.jsModule)})}async whenReadyAsync(){if(this._workerPoolPromise){await this._workerPoolPromise;return}if(this._modulePromise){await this._modulePromise;return}}dispose(){this._workerPoolPromise&&this._workerPoolPromise.then(e=>{e.dispose()}),delete this._workerPoolPromise,delete this._modulePromise}}class au extends jde{static get DefaultAvailable(){return rK(au.DefaultConfiguration)}static get Default(){return au._Default??(au._Default=new au),au._Default}static ResetDefault(e){au._Default&&(e||au._Default.dispose(),au._Default=null)}_isModuleAvailable(){return typeof DracoDecoderModule<"u"}async _createModuleAsync(e,t){return{module:await(t||DracoDecoderModule)({wasmBinary:e})}}_getWorkerContent(){return`${sK}(${XRe})()`}constructor(e=au.DefaultConfiguration){super(e)}decodeMeshToMeshDataAsync(e,t,i){const s=e instanceof ArrayBuffer?new Int8Array(e):new Int8Array(e.buffer,e.byteOffset,e.byteLength),r=(n,o)=>i&&i[n]!==void 0?(o!==i[n]&&de.Warn(`Normalized flag from Draco data (${o}) does not match normalized flag from glTF accessor (${i[n]}). Using flag from glTF accessor.`),i[n]):o;if(this._workerPoolPromise)return this._workerPoolPromise.then(n=>new Promise((o,l)=>{n.push((c,u)=>{let f=null;const p=[],m=h=>{c.removeEventListener("error",m),c.removeEventListener("message",_),l(h),u()},_=h=>{const x=h.data;switch(x.id){case"indices":{f=x.data;break}case"attribute":{p.push({kind:x.kind,data:x.data,size:x.size,byteOffset:x.byteOffset,byteStride:x.byteStride,normalized:r(x.kind,x.normalized)});break}case"decodeMeshDone":{c.removeEventListener("error",m),c.removeEventListener("message",_),o({indices:f,attributes:p,totalVertices:x.totalVertices}),u();break}}};c.addEventListener("error",m),c.addEventListener("message",_);const d=s.slice();c.postMessage({id:"decodeMesh",dataView:d,attributes:t},[d.buffer])})}));if(this._modulePromise)return this._modulePromise.then(n=>{let o=null;const l=[],c=sK(n.module,s,t,u=>{o=u},(u,f,p,m,_,d)=>{l.push({kind:u,data:f,size:p,byteOffset:m,byteStride:_,normalized:d})});return{indices:o,attributes:l,totalVertices:c}});throw new Error("Draco decoder module is not available")}async decodeMeshToGeometryAsync(e,t,i,s){const r=await this.decodeMeshToMeshDataAsync(i,s),n=new Rl(e,t);r.indices&&n.setIndices(r.indices);for(const o of r.attributes)n.setVerticesBuffer(new q(t.getEngine(),o.data,o.kind,!1,void 0,o.byteStride,void 0,o.byteOffset,o.size,void 0,o.normalized,!0),r.totalVertices);return n}async _decodeMeshToGeometryForGltfAsync(e,t,i,s,r,n){const o=await this.decodeMeshToMeshDataAsync(i,s,r),l=new Rl(e,t);n&&(l._boundingInfo=n,l.useBoundingInfoFromGeometry=!0),o.indices&&l.setIndices(o.indices);for(const c of o.attributes)l.setVerticesBuffer(new q(t.getEngine(),c.data,c.kind,!1,void 0,c.byteStride,void 0,c.byteOffset,c.size,void 0,c.normalized,!0),o.totalVertices);return l}}au.DefaultConfiguration={wasmUrl:`${Le._DefaultCdnUrl}/draco_wasm_wrapper_gltf.js`,wasmBinaryUrl:`${Le._DefaultCdnUrl}/draco_decoder_gltf.wasm`,fallbackUrl:`${Le._DefaultCdnUrl}/draco_decoder_gltf.js`},au._Default=null;const ZG="KHR_draco_mesh_compression";let Vde=class{constructor(e){this.name=ZG,this.useNormalizedFlagFromAccessor=!0,this._loader=e,this.enabled=au.DefaultAvailable&&this._loader.isExtensionUsed(ZG)}dispose(){delete this.dracoDecoder,this._loader=null}_loadVertexDataAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{if(t.mode!=null&&t.mode!==4&&t.mode!==5)throw new Error(`${e}: Unsupported mode ${t.mode}`);const n={},o={},l=(u,f)=>{const p=r.attributes[u];if(p!=null&&(i._delayInfo=i._delayInfo||[],i._delayInfo.indexOf(f)===-1&&i._delayInfo.push(f),n[f]=p,this.useNormalizedFlagFromAccessor)){const m=gs.TryGet(this._loader.gltf.accessors,t.attributes[u]);m&&(o[f]=m.normalized||!1)}};l("POSITION",q.PositionKind),l("NORMAL",q.NormalKind),l("TANGENT",q.TangentKind),l("TEXCOORD_0",q.UVKind),l("TEXCOORD_1",q.UV2Kind),l("TEXCOORD_2",q.UV3Kind),l("TEXCOORD_3",q.UV4Kind),l("TEXCOORD_4",q.UV5Kind),l("TEXCOORD_5",q.UV6Kind),l("JOINTS_0",q.MatricesIndicesKind),l("WEIGHTS_0",q.MatricesWeightsKind),l("COLOR_0",q.ColorKind);const c=gs.Get(s,this._loader.gltf.bufferViews,r.bufferView);return c._dracoBabylonGeometry||(c._dracoBabylonGeometry=this._loader.loadBufferViewAsync(`/bufferViews/${c.index}`,c).then(u=>{const f=this.dracoDecoder||au.Default,p=gs.TryGet(this._loader.gltf.accessors,t.attributes.POSITION),m=!this._loader.parent.alwaysComputeBoundingBox&&!i.skeleton&&p?HZ(p):null;return f._decodeMeshToGeometryForGltfAsync(i.name,this._loader.babylonScene,u,n,o,m).catch(_=>{throw new Error(`${e}: ${_.message}`)})})),c._dracoBabylonGeometry})}};ln(ZG),_n(ZG,!0,a=>new Vde(a));const KG="KHR_lights_punctual";class Gde{constructor(e){this.name=KG,this._loader=e,this.enabled=this._loader.isExtensionUsed(KG)}dispose(){this._loader=null,delete this._lights}onLoading(){const e=this._loader.gltf.extensions;if(e&&e[this.name]){const t=e[this.name];this._lights=t.lights,gs.Assign(this._lights)}}loadNodeAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>(this._loader._allMaterialsDirtyRequired=!0,this._loader.loadNodeAsync(e,t,n=>{let o;const l=gs.Get(s,this._lights,r.light),c=l.name||n.name;switch(this._loader.babylonScene._blockEntityCollection=!!this._loader._assetContainer,l.type){case"directional":{const u=new W1(c,P.Backward(),this._loader.babylonScene);u.position.setAll(0),o=u;break}case"point":{o=new NT(c,P.Zero(),this._loader.babylonScene);break}case"spot":{const u=new $o(c,P.Zero(),P.Backward(),0,1,this._loader.babylonScene);u.angle=(l.spot&&l.spot.outerConeAngle||Math.PI/4)*2,u.innerAngle=(l.spot&&l.spot.innerConeAngle||0)*2,o=u;break}default:throw this._loader.babylonScene._blockEntityCollection=!1,new Error(`${s}: Invalid light type (${l.type})`)}o._parentContainer=this._loader._assetContainer,this._loader.babylonScene._blockEntityCollection=!1,l._babylonLight=o,o.falloffType=vs.FALLOFF_GLTF,o.diffuse=l.color?Pe.FromArray(l.color):Pe.White(),o.intensity=l.intensity==null?1:l.intensity,o.range=l.range==null?Number.MAX_VALUE:l.range,o.parent=n,this._loader._babylonLights.push(o),Rs.AddPointerMetadata(o,s),i(n)})))}}ln(KG),_n(KG,!0,a=>new Gde(a));const qG="KHR_materials_pbrSpecularGlossiness";class Wde{constructor(e){this.name=qG,this.order=200,this._loader=e,this.enabled=this._loader.isExtensionUsed(qG)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=new Array;return n.push(this._loader.loadMaterialBasePropertiesAsync(e,t,i)),n.push(this._loadSpecularGlossinessPropertiesAsync(s,r,i)),this._loader.loadMaterialAlphaProperties(e,t,i),Promise.all(n).then(()=>{})})}_loadSpecularGlossinessPropertiesAsync(e,t,i){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);const s=new Array;return i.metallic=null,i.roughness=null,t.diffuseFactor?(i.albedoColor=Pe.FromArray(t.diffuseFactor),i.alpha=t.diffuseFactor[3]):i.albedoColor=Pe.White(),i.reflectivityColor=t.specularFactor?Pe.FromArray(t.specularFactor):Pe.White(),i.microSurface=t.glossinessFactor==null?1:t.glossinessFactor,t.diffuseTexture&&s.push(this._loader.loadTextureInfoAsync(`${e}/diffuseTexture`,t.diffuseTexture,r=>{r.name=`${i.name} (Diffuse)`,i.albedoTexture=r})),t.specularGlossinessTexture&&(s.push(this._loader.loadTextureInfoAsync(`${e}/specularGlossinessTexture`,t.specularGlossinessTexture,r=>{r.name=`${i.name} (Specular Glossiness)`,i.reflectivityTexture=r,i.reflectivityTexture.hasAlpha=!0})),i.useMicroSurfaceFromReflectivityMapAlpha=!0),Promise.all(s).then(()=>{})}}ln(qG),_n(qG,!0,a=>new Wde(a));const QG="KHR_materials_unlit";let Hde=class{constructor(e){this.name=QG,this.order=210,this._loader=e,this.enabled=this._loader.isExtensionUsed(QG)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,()=>this._loadUnlitPropertiesAsync(e,t,i))}_loadUnlitPropertiesAsync(e,t,i){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);const s=new Array;i.unlit=!0;const r=t.pbrMetallicRoughness;return r&&(r.baseColorFactor?(i.albedoColor=Pe.FromArray(r.baseColorFactor),i.alpha=r.baseColorFactor[3]):i.albedoColor=Pe.White(),r.baseColorTexture&&s.push(this._loader.loadTextureInfoAsync(`${e}/baseColorTexture`,r.baseColorTexture,n=>{n.name=`${i.name} (Base Color)`,i.albedoTexture=n}))),t.doubleSided&&(i.backFaceCulling=!1,i.twoSidedLighting=!0),this._loader.loadMaterialAlphaProperties(e,t,i),Promise.all(s).then(()=>{})}};ln(QG),_n(QG,!0,a=>new Hde(a));const JG="KHR_materials_clearcoat";let Yde=class{constructor(e){this.name=JG,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(JG)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=new Array;return n.push(this._loader.loadMaterialPropertiesAsync(e,t,i)),n.push(this._loadClearCoatPropertiesAsync(s,r,i)),Promise.all(n).then(()=>{})})}_loadClearCoatPropertiesAsync(e,t,i){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);const s=new Array;return i.clearCoat.isEnabled=!0,i.clearCoat.useRoughnessFromMainTexture=!1,i.clearCoat.remapF0OnInterfaceChange=!1,t.clearcoatFactor!=null?i.clearCoat.intensity=t.clearcoatFactor:i.clearCoat.intensity=0,t.clearcoatTexture&&s.push(this._loader.loadTextureInfoAsync(`${e}/clearcoatTexture`,t.clearcoatTexture,r=>{r.name=`${i.name} (ClearCoat)`,i.clearCoat.texture=r})),t.clearcoatRoughnessFactor!=null?i.clearCoat.roughness=t.clearcoatRoughnessFactor:i.clearCoat.roughness=0,t.clearcoatRoughnessTexture&&(t.clearcoatRoughnessTexture.nonColorData=!0,s.push(this._loader.loadTextureInfoAsync(`${e}/clearcoatRoughnessTexture`,t.clearcoatRoughnessTexture,r=>{r.name=`${i.name} (ClearCoat Roughness)`,i.clearCoat.textureRoughness=r}))),t.clearcoatNormalTexture&&(t.clearcoatNormalTexture.nonColorData=!0,s.push(this._loader.loadTextureInfoAsync(`${e}/clearcoatNormalTexture`,t.clearcoatNormalTexture,r=>{r.name=`${i.name} (ClearCoat Normal)`,i.clearCoat.bumpTexture=r})),i.invertNormalMapX=!i.getScene().useRightHandedSystem,i.invertNormalMapY=i.getScene().useRightHandedSystem,t.clearcoatNormalTexture.scale!=null&&(i.clearCoat.bumpTexture.level=t.clearcoatNormalTexture.scale)),Promise.all(s).then(()=>{})}};ln(JG),_n(JG,!0,a=>new Yde(a));const $G="KHR_materials_iridescence";let Xde=class{constructor(e){this.name=$G,this.order=195,this._loader=e,this.enabled=this._loader.isExtensionUsed($G)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=new Array;return n.push(this._loader.loadMaterialPropertiesAsync(e,t,i)),n.push(this._loadIridescencePropertiesAsync(s,r,i)),Promise.all(n).then(()=>{})})}_loadIridescencePropertiesAsync(e,t,i){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);const s=new Array;return i.iridescence.isEnabled=!0,i.iridescence.intensity=t.iridescenceFactor??0,i.iridescence.indexOfRefraction=t.iridescenceIor??t.iridescenceIOR??1.3,i.iridescence.minimumThickness=t.iridescenceThicknessMinimum??100,i.iridescence.maximumThickness=t.iridescenceThicknessMaximum??400,t.iridescenceTexture&&s.push(this._loader.loadTextureInfoAsync(`${e}/iridescenceTexture`,t.iridescenceTexture,r=>{r.name=`${i.name} (Iridescence)`,i.iridescence.texture=r})),t.iridescenceThicknessTexture&&s.push(this._loader.loadTextureInfoAsync(`${e}/iridescenceThicknessTexture`,t.iridescenceThicknessTexture,r=>{r.name=`${i.name} (Iridescence Thickness)`,i.iridescence.thicknessTexture=r})),Promise.all(s).then(()=>{})}};ln($G),_n($G,!0,a=>new Xde(a));const eW="KHR_materials_anisotropy";let Zde=class{constructor(e){this.name=eW,this.order=195,this._loader=e,this.enabled=this._loader.isExtensionUsed(eW)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=new Array;return n.push(this._loader.loadMaterialPropertiesAsync(e,t,i)),n.push(this._loadIridescencePropertiesAsync(s,r,i)),Promise.all(n).then(()=>{})})}_loadIridescencePropertiesAsync(e,t,i){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);const s=new Array;return i.anisotropy.isEnabled=!0,i.anisotropy.intensity=t.anisotropyStrength??0,i.anisotropy.angle=t.anisotropyRotation??0,t.anisotropyTexture&&(t.anisotropyTexture.nonColorData=!0,s.push(this._loader.loadTextureInfoAsync(`${e}/anisotropyTexture`,t.anisotropyTexture,r=>{r.name=`${i.name} (Anisotropy Intensity)`,i.anisotropy.texture=r}))),Promise.all(s).then(()=>{})}};ln(eW),_n(eW,!0,a=>new Zde(a));const tW="KHR_materials_emissive_strength";let Kde=class{constructor(e){this.name=tW,this.order=170,this._loader=e,this.enabled=this._loader.isExtensionUsed(tW)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>this._loader.loadMaterialPropertiesAsync(e,t,i).then(()=>{this._loadEmissiveProperties(s,r,i)}))}_loadEmissiveProperties(e,t,i){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);t.emissiveStrength!==void 0&&(i.emissiveIntensity=t.emissiveStrength)}};ln(tW),_n(tW,!0,a=>new Kde(a));const iW="KHR_materials_sheen";let qde=class{constructor(e){this.name=iW,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(iW)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=new Array;return n.push(this._loader.loadMaterialPropertiesAsync(e,t,i)),n.push(this._loadSheenPropertiesAsync(s,r,i)),Promise.all(n).then(()=>{})})}_loadSheenPropertiesAsync(e,t,i){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);const s=new Array;return i.sheen.isEnabled=!0,i.sheen.intensity=1,t.sheenColorFactor!=null?i.sheen.color=Pe.FromArray(t.sheenColorFactor):i.sheen.color=Pe.Black(),t.sheenColorTexture&&s.push(this._loader.loadTextureInfoAsync(`${e}/sheenColorTexture`,t.sheenColorTexture,r=>{r.name=`${i.name} (Sheen Color)`,i.sheen.texture=r})),t.sheenRoughnessFactor!==void 0?i.sheen.roughness=t.sheenRoughnessFactor:i.sheen.roughness=0,t.sheenRoughnessTexture&&(t.sheenRoughnessTexture.nonColorData=!0,s.push(this._loader.loadTextureInfoAsync(`${e}/sheenRoughnessTexture`,t.sheenRoughnessTexture,r=>{r.name=`${i.name} (Sheen Roughness)`,i.sheen.textureRoughness=r}))),i.sheen.albedoScaling=!0,i.sheen.useRoughnessFromMainTexture=!1,Promise.all(s).then(()=>{})}};ln(iW),_n(iW,!0,a=>new qde(a));const sW="KHR_materials_specular";let Qde=class{constructor(e){this.name=sW,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(sW)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=new Array;return n.push(this._loader.loadMaterialPropertiesAsync(e,t,i)),n.push(this._loadSpecularPropertiesAsync(s,r,i)),Promise.all(n).then(()=>{})})}_loadSpecularPropertiesAsync(e,t,i){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);const s=new Array;return t.specularFactor!==void 0&&(i.metallicF0Factor=t.specularFactor),t.specularColorFactor!==void 0&&(i.metallicReflectanceColor=Pe.FromArray(t.specularColorFactor)),t.specularTexture&&(t.specularTexture.nonColorData=!0,s.push(this._loader.loadTextureInfoAsync(`${e}/specularTexture`,t.specularTexture,r=>{r.name=`${i.name} (Specular)`,i.metallicReflectanceTexture=r,i.useOnlyMetallicFromMetallicReflectanceTexture=!0}))),t.specularColorTexture&&s.push(this._loader.loadTextureInfoAsync(`${e}/specularColorTexture`,t.specularColorTexture,r=>{r.name=`${i.name} (Specular Color)`,i.reflectanceTexture=r})),Promise.all(s).then(()=>{})}};ln(sW),_n(sW,!0,a=>new Qde(a));const rW="KHR_materials_ior";let nK=class QIe{constructor(e){this.name=rW,this.order=180,this._loader=e,this.enabled=this._loader.isExtensionUsed(rW)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=new Array;return n.push(this._loader.loadMaterialPropertiesAsync(e,t,i)),n.push(this._loadIorPropertiesAsync(s,r,i)),Promise.all(n).then(()=>{})})}_loadIorPropertiesAsync(e,t,i){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);return t.ior!==void 0?i.indexOfRefraction=t.ior:i.indexOfRefraction=QIe._DEFAULT_IOR,Promise.resolve()}};nK._DEFAULT_IOR=1.5,ln(rW),_n(rW,!0,a=>new nK(a));const Y1="KHR_materials_variants";class a3{constructor(e){this.name=Y1,this._loader=e,this.enabled=this._loader.isExtensionUsed(Y1)}dispose(){this._loader=null}static GetAvailableVariants(e){const t=this._GetExtensionMetadata(e);return t?Object.keys(t.variants):[]}getAvailableVariants(e){return a3.GetAvailableVariants(e)}static SelectVariant(e,t){const i=this._GetExtensionMetadata(e);if(!i)throw new Error(`Cannot select variant on a glTF mesh that does not have the ${Y1} extension`);const s=r=>{const n=i.variants[r];if(n)for(const o of n)o.mesh.material=o.material};if(t instanceof Array)for(const r of t)s(r);else s(t);i.lastSelected=t}selectVariant(e,t){a3.SelectVariant(e,t)}static Reset(e){const t=this._GetExtensionMetadata(e);if(!t)throw new Error(`Cannot reset on a glTF mesh that does not have the ${Y1} extension`);for(const i of t.original)i.mesh.material=i.material;t.lastSelected=null}reset(e){a3.Reset(e)}static GetLastSelectedVariant(e){const t=this._GetExtensionMetadata(e);if(!t)throw new Error(`Cannot get the last selected variant on a glTF mesh that does not have the ${Y1} extension`);return t.lastSelected}getLastSelectedVariant(e){return a3.GetLastSelectedVariant(e)}static _GetExtensionMetadata(e){var t,i;return((i=(t=e==null?void 0:e._internalMetadata)==null?void 0:t.gltf)==null?void 0:i[Y1])||null}onLoading(){const e=this._loader.gltf.extensions;if(e&&e[this.name]){const t=e[this.name];this._variants=t.variants}}onReady(){var t;const e=this._loader.rootBabylonMesh;if(e){const i=this._loader.parent.extensionOptions[Y1];i!=null&&i.defaultVariant&&a3.SelectVariant(e,i.defaultVariant),(t=i==null?void 0:i.onLoaded)==null||t.call(i,{get variants(){return a3.GetAvailableVariants(e)},get selectedVariant(){const s=a3.GetLastSelectedVariant(e);return s?Array.isArray(s)?s[0]:s:a3.GetAvailableVariants(e)[0]},set selectedVariant(s){a3.SelectVariant(e,s)}})}}_loadMeshPrimitiveAsync(e,t,i,s,r,n){return Rs.LoadExtensionAsync(e,r,this.name,(o,l)=>{const c=new Array;return c.push(this._loader._loadMeshPrimitiveAsync(e,t,i,s,r,u=>{if(n(u),u instanceof Ne){const f=Rs._GetDrawMode(e,r.mode),p=this._loader.rootBabylonMesh,m=p?p._internalMetadata=p._internalMetadata||{}:{},_=m.gltf=m.gltf||{},d=_[Y1]=_[Y1]||{lastSelected:null,original:[],variants:{}};d.original.push({mesh:u,material:u.material});for(let h=0;h<l.mappings.length;++h){const x=l.mappings[h],A=gs.Get(`${o}/mappings/${h}/material`,this._loader.gltf.materials,x.material);c.push(this._loader._loadMaterialAsync(`#/materials/${x.material}`,A,u,f,S=>{for(let E=0;E<x.variants.length;++E){const b=x.variants[E],M=gs.Get(`/extensions/${Y1}/variants/${b}`,this._variants,b);d.variants[M.name]=d.variants[M.name]||[],d.variants[M.name].push({mesh:u,material:S}),u.onClonedObservable.add(T=>{const O=T;let R=null,I=O;do{if(I=I.parent,!I)return;R=a3._GetExtensionMetadata(I)}while(R===null);if(p&&R===a3._GetExtensionMetadata(p)){I._internalMetadata={};for(const N in p._internalMetadata)I._internalMetadata[N]=p._internalMetadata[N];I._internalMetadata.gltf=[];for(const N in p._internalMetadata.gltf)I._internalMetadata.gltf[N]=p._internalMetadata.gltf[N];I._internalMetadata.gltf[Y1]={lastSelected:null,original:[],variants:{}};for(const N of R.original)I._internalMetadata.gltf[Y1].original.push({mesh:N.mesh,material:N.material});for(const N in R.variants)if(Object.prototype.hasOwnProperty.call(R.variants,N)){I._internalMetadata.gltf[Y1].variants[N]=[];for(const w of R.variants[N])I._internalMetadata.gltf[Y1].variants[N].push({mesh:w.mesh,material:w.material})}R=I._internalMetadata.gltf[Y1]}for(const N of R.original)N.mesh===u&&(N.mesh=O);for(const N of R.variants[M.name])N.mesh===u&&(N.mesh=O)})}}))}}})),Promise.all(c).then(([u])=>u)})}}ln(Y1),_n(Y1,!0,a=>new a3(a));class aK{static _GetDefaultOptions(){return{renderSize:1024,samples:4,lodGenerationScale:1,lodGenerationOffset:-4,renderTargetTextureType:ze.TEXTURETYPE_HALF_FLOAT,generateMipmaps:!0}}constructor(e,t){this._opaqueRenderTarget=null,this._opaqueMeshesCache=[],this._transparentMeshesCache=[],this._materialObservers={},this._options={...aK._GetDefaultOptions(),...e},this._scene=t,this._scene._transmissionHelper=this,this.onErrorObservable=new xe,this._scene.onDisposeObservable.addOnce(()=>{this.dispose()}),this._parseScene(),this._setupRenderTargets()}updateOptions(e){if(!Object.keys(e).filter(r=>this._options[r]!==e[r]).length)return;const i={...this._options,...e},s=this._options;this._options=i,i.renderSize!==s.renderSize||i.renderTargetTextureType!==s.renderTargetTextureType||i.generateMipmaps!==s.generateMipmaps||!this._opaqueRenderTarget?this._setupRenderTargets():(this._opaqueRenderTarget.samples=i.samples,this._opaqueRenderTarget.lodGenerationScale=i.lodGenerationScale,this._opaqueRenderTarget.lodGenerationOffset=i.lodGenerationOffset)}getOpaqueTarget(){return this._opaqueRenderTarget}_shouldRenderAsTransmission(e){return e?!!(e instanceof mi&&e.subSurface.isRefractionEnabled):!1}_addMesh(e){this._materialObservers[e.uniqueId]=e.onMaterialChangedObservable.add(this._onMeshMaterialChanged.bind(this)),Le.SetImmediate(()=>{this._shouldRenderAsTransmission(e.material)?(e.material.refractionTexture=this._opaqueRenderTarget,this._transparentMeshesCache.indexOf(e)===-1&&this._transparentMeshesCache.push(e)):this._opaqueMeshesCache.indexOf(e)===-1&&this._opaqueMeshesCache.push(e)})}_removeMesh(e){e.onMaterialChangedObservable.remove(this._materialObservers[e.uniqueId]),delete this._materialObservers[e.uniqueId];let t=this._transparentMeshesCache.indexOf(e);t!==-1&&this._transparentMeshesCache.splice(t,1),t=this._opaqueMeshesCache.indexOf(e),t!==-1&&this._opaqueMeshesCache.splice(t,1)}_parseScene(){this._scene.meshes.forEach(this._addMesh.bind(this)),this._scene.onNewMeshAddedObservable.add(this._addMesh.bind(this)),this._scene.onMeshRemovedObservable.add(this._removeMesh.bind(this))}_onMeshMaterialChanged(e){const t=this._transparentMeshesCache.indexOf(e),i=this._opaqueMeshesCache.indexOf(e);this._shouldRenderAsTransmission(e.material)?(e.material instanceof mi&&(e.material.subSurface.refractionTexture=this._opaqueRenderTarget),i!==-1?(this._opaqueMeshesCache.splice(i,1),this._transparentMeshesCache.push(e)):t===-1&&this._transparentMeshesCache.push(e)):t!==-1?(this._transparentMeshesCache.splice(t,1),this._opaqueMeshesCache.push(e)):i===-1&&this._opaqueMeshesCache.push(e)}_isRenderTargetValid(){var e;return((e=this._opaqueRenderTarget)==null?void 0:e.getInternalTexture())!==null}_setupRenderTargets(){var t;this._opaqueRenderTarget&&this._opaqueRenderTarget.dispose(),this._opaqueRenderTarget=new Ir("opaqueSceneTexture",this._options.renderSize,this._scene,this._options.generateMipmaps,void 0,this._options.renderTargetTextureType),this._opaqueRenderTarget.ignoreCameraViewport=!0,this._opaqueRenderTarget.renderList=this._opaqueMeshesCache,this._opaqueRenderTarget.clearColor=((t=this._options.clearColor)==null?void 0:t.clone())??this._scene.clearColor.clone(),this._opaqueRenderTarget.gammaSpace=!1,this._opaqueRenderTarget.lodGenerationScale=this._options.lodGenerationScale,this._opaqueRenderTarget.lodGenerationOffset=this._options.lodGenerationOffset,this._opaqueRenderTarget.samples=this._options.samples,this._opaqueRenderTarget.renderSprites=!0,this._opaqueRenderTarget.renderParticles=!0,this._opaqueRenderTarget.renderInLinearSpace=!0;let e;this._opaqueRenderTarget.onBeforeBindObservable.add(i=>{e=this._scene.environmentIntensity,this._scene.environmentIntensity=1,this._options.clearColor?i.clearColor.copyFrom(this._options.clearColor):this._scene.clearColor.toLinearSpaceToRef(i.clearColor,this._scene.getEngine().useExactSrgbConversions)}),this._opaqueRenderTarget.onAfterUnbindObservable.add(()=>{this._scene.environmentIntensity=e}),this._transparentMeshesCache.forEach(i=>{this._shouldRenderAsTransmission(i.material)&&(i.material.refractionTexture=this._opaqueRenderTarget)})}dispose(){this._scene._transmissionHelper=void 0,this._opaqueRenderTarget&&(this._opaqueRenderTarget.dispose(),this._opaqueRenderTarget=null),this._transparentMeshesCache=[],this._opaqueMeshesCache=[]}}const nW="KHR_materials_transmission";let Jde=class{constructor(e){this.name=nW,this.order=175,this._loader=e,this.enabled=this._loader.isExtensionUsed(nW),this.enabled&&(e.parent.transparencyAsCoverage=!0)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=new Array;return n.push(this._loader.loadMaterialPropertiesAsync(e,t,i)),n.push(this._loadTransparentPropertiesAsync(s,t,i,r)),Promise.all(n).then(()=>{})})}_loadTransparentPropertiesAsync(e,t,i,s){var n,o;if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);const r=i;if(r.subSurface.isRefractionEnabled=!0,r.subSurface.volumeIndexOfRefraction=1,r.subSurface.useAlbedoToTintRefraction=!0,s.transmissionFactor!==void 0){r.subSurface.refractionIntensity=s.transmissionFactor;const l=r.getScene();r.subSurface.refractionIntensity&&!l._transmissionHelper?new aK({},r.getScene()):r.subSurface.refractionIntensity&&!((n=l._transmissionHelper)!=null&&n._isRenderTargetValid())&&((o=l._transmissionHelper)==null||o._setupRenderTargets())}else return r.subSurface.refractionIntensity=0,r.subSurface.isRefractionEnabled=!1,Promise.resolve();return r.subSurface.minimumThickness=0,r.subSurface.maximumThickness=0,s.transmissionTexture?(s.transmissionTexture.nonColorData=!0,this._loader.loadTextureInfoAsync(`${e}/transmissionTexture`,s.transmissionTexture,void 0).then(l=>{l.name=`${i.name} (Transmission)`,r.subSurface.refractionIntensityTexture=l,r.subSurface.useGltfStyleTextures=!0})):Promise.resolve()}};ln(nW),_n(nW,!0,a=>new Jde(a));const aW="KHR_materials_diffuse_transmission";let $de=class{constructor(e){this.name=aW,this.order=174,this._loader=e,this.enabled=this._loader.isExtensionUsed(aW),this.enabled&&(e.parent.transparencyAsCoverage=!0)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=new Array;return n.push(this._loader.loadMaterialPropertiesAsync(e,t,i)),n.push(this._loadTranslucentPropertiesAsync(s,t,i,r)),Promise.all(n).then(()=>{})})}_loadTranslucentPropertiesAsync(e,t,i,s){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);const r=i;if(r.subSurface.isTranslucencyEnabled=!0,r.subSurface.volumeIndexOfRefraction=1,r.subSurface.minimumThickness=0,r.subSurface.maximumThickness=0,r.subSurface.useAlbedoToTintTranslucency=!1,s.diffuseTransmissionFactor!==void 0)r.subSurface.translucencyIntensity=s.diffuseTransmissionFactor;else return r.subSurface.translucencyIntensity=0,r.subSurface.isTranslucencyEnabled=!1,Promise.resolve();const n=new Array;return r.subSurface.useGltfStyleTextures=!0,s.diffuseTransmissionTexture&&(s.diffuseTransmissionTexture.nonColorData=!0,n.push(this._loader.loadTextureInfoAsync(`${e}/diffuseTransmissionTexture`,s.diffuseTransmissionTexture).then(o=>{o.name=`${i.name} (Diffuse Transmission)`,r.subSurface.translucencyIntensityTexture=o}))),s.diffuseTransmissionColorFactor!==void 0?r.subSurface.translucencyColor=Pe.FromArray(s.diffuseTransmissionColorFactor):r.subSurface.translucencyColor=Pe.White(),s.diffuseTransmissionColorTexture&&n.push(this._loader.loadTextureInfoAsync(`${e}/diffuseTransmissionColorTexture`,s.diffuseTransmissionColorTexture).then(o=>{o.name=`${i.name} (Diffuse Transmission Color)`,r.subSurface.translucencyColorTexture=o})),Promise.all(n).then(()=>{})}};ln(aW),_n(aW,!0,a=>new $de(a));const oW="KHR_materials_volume";let e1e=class{constructor(e){this.name=oW,this.order=173,this._loader=e,this.enabled=this._loader.isExtensionUsed(oW),this.enabled&&this._loader._disableInstancedMesh++}dispose(){this.enabled&&this._loader._disableInstancedMesh--,this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=new Array;return n.push(this._loader.loadMaterialPropertiesAsync(e,t,i)),n.push(this._loadVolumePropertiesAsync(s,t,i,r)),Promise.all(n).then(()=>{})})}_loadVolumePropertiesAsync(e,t,i,s){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);if(!i.subSurface.isRefractionEnabled&&!i.subSurface.isTranslucencyEnabled||!s.thicknessFactor)return Promise.resolve();i.subSurface.volumeIndexOfRefraction=i.indexOfRefraction;const r=s.attenuationDistance!==void 0?s.attenuationDistance:Number.MAX_VALUE;return i.subSurface.tintColorAtDistance=r,s.attenuationColor!==void 0&&s.attenuationColor.length==3&&i.subSurface.tintColor.copyFromFloats(s.attenuationColor[0],s.attenuationColor[1],s.attenuationColor[2]),i.subSurface.minimumThickness=0,i.subSurface.maximumThickness=s.thicknessFactor,i.subSurface.useThicknessAsDepth=!0,s.thicknessTexture?(s.thicknessTexture.nonColorData=!0,this._loader.loadTextureInfoAsync(`${e}/thicknessTexture`,s.thicknessTexture).then(n=>{n.name=`${i.name} (Thickness)`,i.subSurface.thicknessTexture=n,i.subSurface.useGltfStyleTextures=!0})):Promise.resolve()}};ln(oW),_n(oW,!0,a=>new e1e(a));const lW="KHR_materials_dispersion";let t1e=class{constructor(e){this.name=lW,this.order=174,this._loader=e,this.enabled=this._loader.isExtensionUsed(lW)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=new Array;return n.push(this._loader.loadMaterialPropertiesAsync(e,t,i)),n.push(this._loadDispersionPropertiesAsync(s,t,i,r)),Promise.all(n).then(()=>{})})}_loadDispersionPropertiesAsync(e,t,i,s){if(!(i instanceof mi))throw new Error(`${e}: Material type not supported`);return!i.subSurface.isRefractionEnabled||!s.dispersion||(i.subSurface.isDispersionEnabled=!0,i.subSurface.dispersion=s.dispersion),Promise.resolve()}};ln(lW),_n(lW,!0,a=>new t1e(a));const cW="KHR_mesh_quantization";class i1e{constructor(e){this.name=cW,this.enabled=e.isExtensionUsed(cW)}dispose(){}}ln(cW),_n(cW,!0,a=>new i1e(a));const uW="KHR_texture_basisu";class s1e{constructor(e){this.name=uW,this._loader=e,this.enabled=e.isExtensionUsed(uW)}dispose(){this._loader=null}_loadTextureAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=t.sampler==null?Rs.DefaultSampler:gs.Get(`${e}/sampler`,this._loader.gltf.samplers,t.sampler),o=gs.Get(`${s}/source`,this._loader.gltf.images,r.source);return this._loader._createTextureAsync(e,n,o,l=>{i(l)},t._textureInfo.nonColorData?{useRGBAIfASTCBC7NotAvailableWhenUASTC:!0}:void 0,!t._textureInfo.nonColorData)})}}ln(uW),_n(uW,!0,a=>new s1e(a));const hW="KHR_texture_transform";let r1e=class{constructor(e){this.name=hW,this._loader=e,this.enabled=this._loader.isExtensionUsed(hW)}dispose(){this._loader=null}loadTextureInfoAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>this._loader.loadTextureInfoAsync(e,t,n=>{if(!(n instanceof be))throw new Error(`${s}: Texture type not supported`);r.offset&&(n.uOffset=r.offset[0],n.vOffset=r.offset[1]),n.uRotationCenter=0,n.vRotationCenter=0,r.rotation&&(n.wAng=-r.rotation),r.scale&&(n.uScale=r.scale[0],n.vScale=r.scale[1]),r.texCoord!=null&&(n.coordinatesIndex=r.texCoord),i(n)}))}};ln(hW),_n(hW,!0,a=>new r1e(a));const dW="KHR_xmp_json_ld";class n1e{constructor(e){this.name=dW,this.order=100,this._loader=e,this.enabled=this._loader.isExtensionUsed(dW)}dispose(){this._loader=null}onLoading(){var i,s,r;if(this._loader.rootBabylonMesh===null)return;const e=(i=this._loader.gltf.extensions)==null?void 0:i.KHR_xmp_json_ld,t=(r=(s=this._loader.gltf.asset)==null?void 0:s.extensions)==null?void 0:r.KHR_xmp_json_ld;if(e&&t){const n=+t.packet;e.packets&&n<e.packets.length&&(this._loader.rootBabylonMesh.metadata=this._loader.rootBabylonMesh.metadata||{},this._loader.rootBabylonMesh.metadata.xmp=e.packets[n])}}}ln(dW),_n(dW,!0,a=>new n1e(a));function jT(a,e,t,i){return Pe.FromArray(e,t).scale(i)}function KRe(a,e,t,i){return e[t+3]*i}function wa(a,e,t,i){return e[t]*i}function oK(a,e,t,i){return-e[t]*i}function fW(a,e,t,i){return e[t+1]*i}function a1e(a,e,t,i){return e[t]*i*2}function ud(a){return{scale:[new fa(He.ANIMATIONTYPE_FLOAT,`${a}.uScale`,wa,()=>2),new fa(He.ANIMATIONTYPE_FLOAT,`${a}.vScale`,fW,()=>2)],offset:[new fa(He.ANIMATIONTYPE_FLOAT,`${a}.uOffset`,wa,()=>2),new fa(He.ANIMATIONTYPE_FLOAT,`${a}.vOffset`,fW,()=>2)],rotation:[new fa(He.ANIMATIONTYPE_FLOAT,`${a}.wAng`,oK,()=>1)]}}class Ly extends tL{buildAnimations(e,t,i,s){return[{babylonAnimatable:e._babylonCamera,babylonAnimation:this._buildAnimation(t,i,s)}]}}class fa extends tL{buildAnimations(e,t,i,s){const r=[];for(const n in e._data)r.push({babylonAnimatable:e._data[n].babylonMaterial,babylonAnimation:this._buildAnimation(t,i,s)});return r}}class nL extends tL{buildAnimations(e,t,i,s){return[{babylonAnimatable:e._babylonLight,babylonAnimation:this._buildAnimation(t,i,s)}]}}Ri("/cameras/{}/orthographic/xmag",[new Ly(He.ANIMATIONTYPE_FLOAT,"orthoLeft",oK,()=>1),new Ly(He.ANIMATIONTYPE_FLOAT,"orthoRight",fW,()=>1)]),Ri("/cameras/{}/orthographic/ymag",[new Ly(He.ANIMATIONTYPE_FLOAT,"orthoBottom",oK,()=>1),new Ly(He.ANIMATIONTYPE_FLOAT,"orthoTop",fW,()=>1)]),Ri("/cameras/{}/orthographic/zfar",[new Ly(He.ANIMATIONTYPE_FLOAT,"maxZ",wa,()=>1)]),Ri("/cameras/{}/orthographic/znear",[new Ly(He.ANIMATIONTYPE_FLOAT,"minZ",wa,()=>1)]),Ri("/cameras/{}/perspective/yfov",[new Ly(He.ANIMATIONTYPE_FLOAT,"fov",wa,()=>1)]),Ri("/cameras/{}/perspective/zfar",[new Ly(He.ANIMATIONTYPE_FLOAT,"maxZ",wa,()=>1)]),Ri("/cameras/{}/perspective/znear",[new Ly(He.ANIMATIONTYPE_FLOAT,"minZ",wa,()=>1)]),Ri("/materials/{}/pbrMetallicRoughness/baseColorFactor",[new fa(He.ANIMATIONTYPE_COLOR3,"albedoColor",jT,()=>4),new fa(He.ANIMATIONTYPE_FLOAT,"alpha",KRe,()=>4)]),Ri("/materials/{}/pbrMetallicRoughness/metallicFactor",[new fa(He.ANIMATIONTYPE_FLOAT,"metallic",wa,()=>1)]),Ri("/materials/{}/pbrMetallicRoughness/metallicFactor",[new fa(He.ANIMATIONTYPE_FLOAT,"roughness",wa,()=>1)]);const lK=ud("albedoTexture");Ri("/materials/{}/pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/scale",lK.scale),Ri("/materials/{}/pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/offset",lK.offset),Ri("/materials/{}/pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/rotation",lK.rotation);const cK=ud("metallicTexture");Ri("//materials/{}/pbrMetallicRoughness/metallicRoughnessTexture/scale",cK.scale),Ri("//materials/{}/pbrMetallicRoughness/metallicRoughnessTexture/offset",cK.offset),Ri("//materials/{}/pbrMetallicRoughness/metallicRoughnessTexture/rotation",cK.rotation),Ri("/materials/{}/emissiveFactor",[new fa(He.ANIMATIONTYPE_COLOR3,"emissiveColor",jT,()=>3)]);const uK=ud("bumpTexture");Ri("/materials/{}/normalTexture/scale",[new fa(He.ANIMATIONTYPE_FLOAT,"bumpTexture.level",wa,()=>1)]),Ri("/materials/{}/normalTexture/extensions/KHR_texture_transform/scale",uK.scale),Ri("/materials/{}/normalTexture/extensions/KHR_texture_transform/offset",uK.offset),Ri("/materials/{}/normalTexture/extensions/KHR_texture_transform/rotation",uK.rotation),Ri("/materials/{}/occlusionTexture/strength",[new fa(He.ANIMATIONTYPE_FLOAT,"ambientTextureStrength",wa,()=>1)]);const hK=ud("ambientTexture");Ri("/materials/{}/occlusionTexture/extensions/KHR_texture_transform/scale",hK.scale),Ri("/materials/{}/occlusionTexture/extensions/KHR_texture_transform/offset",hK.offset),Ri("/materials/{}/occlusionTexture/extensions/KHR_texture_transform/rotation",hK.rotation);const dK=ud("emissiveTexture");Ri("/materials/{}/emissiveTexture/extensions/KHR_texture_transform/scale",dK.scale),Ri("/materials/{}/emissiveTexture/extensions/KHR_texture_transform/offset",dK.offset),Ri("/materials/{}/emissiveTexture/extensions/KHR_texture_transform/rotation",dK.rotation),Ri("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyStrength",[new fa(He.ANIMATIONTYPE_FLOAT,"anisotropy.intensity",wa,()=>1)]),Ri("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyRotation",[new fa(He.ANIMATIONTYPE_FLOAT,"anisotropy.angle",wa,()=>1)]);const fK=ud("anisotropy.texture");Ri("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyTexture/extensions/KHR_texture_transform/scale",fK.scale),Ri("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyTexture/extensions/KHR_texture_transform/offset",fK.offset),Ri("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyTexture/extensions/KHR_texture_transform/rotation",fK.rotation),Ri("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatFactor",[new fa(He.ANIMATIONTYPE_FLOAT,"clearCoat.intensity",wa,()=>1)]),Ri("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatRoughnessFactor",[new fa(He.ANIMATIONTYPE_FLOAT,"clearCoat.roughness",wa,()=>1)]);const pK=ud("clearCoat.texture");Ri("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatTexture/extensions/KHR_texture_transform/scale",pK.scale),Ri("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatTexture/extensions/KHR_texture_transform/offset",pK.offset),Ri("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatTexture/extensions/KHR_texture_transform/rotation",pK.rotation);const mK=ud("clearCoat.bumpTexture");Ri("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatNormalTexture/scale",[new fa(He.ANIMATIONTYPE_FLOAT,"clearCoat.bumpTexture.level",wa,()=>1)]),Ri("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatNormalTexture/extensions/KHR_texture_transform/scale",mK.scale),Ri("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatNormalTexture/extensions/KHR_texture_transform/offset",mK.offset),Ri("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatNormalTexture/extensions/KHR_texture_transform/rotation",mK.rotation);const gK=ud("clearCoat.textureRoughness");Ri("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatRoughnessTexture/extensions/KHR_texture_transform/scale",gK.scale),Ri("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatRoughnessTexture/extensions/KHR_texture_transform/offset",gK.offset),Ri("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatRoughnessTexture/extensions/KHR_texture_transform/rotation",gK.rotation),Ri("/materials/{}/extensions/KHR_materials_dispersion/dispersionFactor",[new fa(He.ANIMATIONTYPE_FLOAT,"subSurface.dispersion",wa,()=>1)]),Ri("/materials/{}/extensions/KHR_materials_emissive_strength/emissiveStrength",[new fa(He.ANIMATIONTYPE_FLOAT,"emissiveIntensity",wa,()=>1)]),Ri("/materials/{}/extensions/KHR_materials_ior/ior",[new fa(He.ANIMATIONTYPE_FLOAT,"indexOfRefraction",wa,()=>1)]),Ri("/materials/{}/extensions/KHR_materials_iridescence/iridescenceFactor",[new fa(He.ANIMATIONTYPE_FLOAT,"iridescence.intensity",wa,()=>1)]),Ri("/materials/{}/extensions/KHR_materials_iridescence/iridescenceIor",[new fa(He.ANIMATIONTYPE_FLOAT,"iridescence.indexOfRefraction",wa,()=>1)]),Ri("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessMinimum",[new fa(He.ANIMATIONTYPE_FLOAT,"iridescence.minimumThickness",wa,()=>1)]),Ri("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessMaximum",[new fa(He.ANIMATIONTYPE_FLOAT,"iridescence.maximumThickness",wa,()=>1)]);const _K=ud("iridescence.texture");Ri("/materials/{}/extensions/KHR_materials_iridescence/iridescenceTexture/extensions/KHR_texture_transform/scale",_K.scale),Ri("/materials/{}/extensions/KHR_materials_iridescence/iridescenceTexture/extensions/KHR_texture_transform/offset",_K.offset),Ri("/materials/{}/extensions/KHR_materials_iridescence/iridescenceTexture/extensions/KHR_texture_transform/rotation",_K.rotation);const vK=ud("iridescence.thicknessTexture");Ri("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessTexture/extensions/KHR_texture_transform/scale",vK.scale),Ri("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessTexture/extensions/KHR_texture_transform/offset",vK.offset),Ri("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessTexture/extensions/KHR_texture_transform/rotation",vK.rotation),Ri("/materials/{}/extensions/KHR_materials_sheen/sheenColorFactor",[new fa(He.ANIMATIONTYPE_COLOR3,"sheen.color",jT,()=>3)]),Ri("/materials/{}/extensions/KHR_materials_sheen/sheenRoughnessFactor",[new fa(He.ANIMATIONTYPE_FLOAT,"sheen.roughness",wa,()=>1)]);const AK=ud("sheen.texture");Ri("/materials/{}/extensions/KHR_materials_sheen/sheenColorTexture/extensions/KHR_texture_transform/scale",AK.scale),Ri("/materials/{}/extensions/KHR_materials_sheen/sheenColorTexture/extensions/KHR_texture_transform/offset",AK.offset),Ri("/materials/{}/extensions/KHR_materials_sheen/sheenColorTexture/extensions/KHR_texture_transform/rotation",AK.rotation);const CK=ud("sheen.textureRoughness");Ri("/materials/{}/extensions/KHR_materials_sheen/sheenRoughnessTexture/extensions/KHR_texture_transform/scale",CK.scale),Ri("/materials/{}/extensions/KHR_materials_sheen/sheenRoughnessTexture/extensions/KHR_texture_transform/offset",CK.offset),Ri("/materials/{}/extensions/KHR_materials_sheen/sheenRoughnessTexture/extensions/KHR_texture_transform/rotation",CK.rotation),Ri("/materials/{}/extensions/KHR_materials_specular/specularFactor",[new fa(He.ANIMATIONTYPE_FLOAT,"metallicF0Factor",wa,()=>1)]),Ri("/materials/{}/extensions/KHR_materials_specular/specularColorFactor",[new fa(He.ANIMATIONTYPE_COLOR3,"metallicReflectanceColor",jT,()=>3)]);const xK=ud("metallicReflectanceTexture");Ri("/materials/{}/extensions/KHR_materials_specular/specularTexture/extensions/KHR_texture_transform/scale",xK.scale),Ri("/materials/{}/extensions/KHR_materials_specular/specularTexture/extensions/KHR_texture_transform/offset",xK.offset),Ri("/materials/{}/extensions/KHR_materials_specular/specularTexture/extensions/KHR_texture_transform/rotation",xK.rotation);const bK=ud("reflectanceTexture");Ri("/materials/{}/extensions/KHR_materials_specular/specularColorTexture/extensions/KHR_texture_transform/scale",bK.scale),Ri("/materials/{}/extensions/KHR_materials_specular/specularColorTexture/extensions/KHR_texture_transform/offset",bK.offset),Ri("/materials/{}/extensions/KHR_materials_specular/specularColorTexture/extensions/KHR_texture_transform/rotation",bK.rotation),Ri("/materials/{}/extensions/KHR_materials_transmission/transmissionFactor",[new fa(He.ANIMATIONTYPE_FLOAT,"subSurface.refractionIntensity",wa,()=>1)]);const SK=ud("subSurface.refractionIntensityTexture");Ri("/materials/{}/extensions/KHR_materials_transmission/transmissionTexture/extensions/KHR_texture_transform/scale",SK.scale),Ri("/materials/{}/extensions/KHR_materials_transmission/transmissionTexture/extensions/KHR_texture_transform/offset",SK.offset),Ri("/materials/{}/extensions/KHR_materials_transmission/transmissionTexture/extensions/KHR_texture_transform/rotation",SK.rotation),Ri("/materials/{}/extensions/KHR_materials_volume/attenuationColor",[new fa(He.ANIMATIONTYPE_COLOR3,"subSurface.tintColor",jT,()=>3)]),Ri("/materials/{}/extensions/KHR_materials_volume/attenuationDistance",[new fa(He.ANIMATIONTYPE_FLOAT,"subSurface.tintColorAtDistance",wa,()=>1)]),Ri("/materials/{}/extensions/KHR_materials_volume/thicknessFactor",[new fa(He.ANIMATIONTYPE_FLOAT,"subSurface.maximumThickness",wa,()=>1)]);const yK=ud("subSurface.thicknessTexture");Ri("/materials/{}/extensions/KHR_materials_volume/thicknessTexture/extensions/KHR_texture_transform/scale",yK.scale),Ri("/materials/{}/extensions/KHR_materials_volume/thicknessTexture/extensions/KHR_texture_transform/offset",yK.offset),Ri("/materials/{}/extensions/KHR_materials_volume/thicknessTexture/extensions/KHR_texture_transform/rotation",yK.rotation),Ri("/materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionFactor",[new fa(He.ANIMATIONTYPE_FLOAT,"subSurface.translucencyIntensity",wa,()=>1)]);const MK=ud("subSurface.translucencyIntensityTexture");Ri("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionTexture/extensions/KHR_texture_transform/scale",MK.scale),Ri("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionTexture/extensions/KHR_texture_transform/offset",MK.offset),Ri("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionTexture/extensions/KHR_texture_transform/rotation",MK.rotation),Ri("/materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorFactor",[new fa(He.ANIMATIONTYPE_COLOR3,"subSurface.translucencyColor",jT,()=>3)]);const EK=ud("subSurface.translucencyColorTexture");Ri("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorTexture/extensions/KHR_texture_transform/scale",EK.scale),Ri("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorTexture/extensions/KHR_texture_transform/offset",EK.offset),Ri("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorTexture/extensions/KHR_texture_transform/rotation",EK.rotation),Ri("/extensions/KHR_lights_punctual/lights/{}/color",[new nL(He.ANIMATIONTYPE_COLOR3,"diffuse",jT,()=>3)]),Ri("/extensions/KHR_lights_punctual/lights/{}/intensity",[new nL(He.ANIMATIONTYPE_FLOAT,"intensity",wa,()=>1)]),Ri("/extensions/KHR_lights_punctual/lights/{}/range",[new nL(He.ANIMATIONTYPE_FLOAT,"range",wa,()=>1)]),Ri("/extensions/KHR_lights_punctual/lights/{}/spot/innerConeAngle",[new nL(He.ANIMATIONTYPE_FLOAT,"innerAngle",a1e,()=>1)]),Ri("/extensions/KHR_lights_punctual/lights/{}/spot/outerConeAngle",[new nL(He.ANIMATIONTYPE_FLOAT,"angle",a1e,()=>1)]),Ri("/nodes/{}/extensions/EXT_lights_ies/color",[new nL(He.ANIMATIONTYPE_COLOR3,"diffuse",jT,()=>3)]),Ri("/nodes/{}/extensions/EXT_lights_ies/multiplier",[new nL(He.ANIMATIONTYPE_FLOAT,"intensity",wa,()=>1)]);const pW="KHR_animation_pointer";class o1e{constructor(e){this.name=pW,this._loader=e,this._pathToObjectConverter=WZ(this._loader.gltf)}get enabled(){return this._loader.isExtensionUsed(pW)}dispose(){this._loader=null,delete this._pathToObjectConverter}_loadAnimationChannelAsync(e,t,i,s,r){var c;const n=(c=s.target.extensions)==null?void 0:c.KHR_animation_pointer;if(!n||!this._pathToObjectConverter)return null;s.target.path!=="pointer"&&de.Warn(`${e}/target/path: Value (${s.target.path}) must be (pointer) when using the ${this.name} extension`),s.target.node!=null&&de.Warn(`${e}/target/node: Value (${s.target.node}) must not be present when using the ${this.name} extension`);const o=`${e}/extensions/${this.name}`,l=n.pointer;if(!l)throw new Error(`${o}: Pointer is missing`);try{const u=this._pathToObjectConverter.convert(l);if(!u.info.interpolation)throw new Error(`${o}/pointer: Interpolation is missing`);return this._loader._loadAnimationChannelFromTargetInfoAsync(e,t,i,s,{object:u.object,info:u.info.interpolation},r)}catch{return de.Warn(`${o}/pointer: Invalid pointer (${l}) skipped`),null}}}ln(pW),_n(pW,!0,a=>new o1e(a));class mW{constructor(e,t,i){this.frame=e,this.action=t,this.onlyOnce=i,this.isDone=!1}_clone(){return new mW(this.frame,this.action,this.onlyOnce)}}class S4{get loop(){return this._loop}set loop(e){e!==this._loop&&(this._loop=e,this.updateOptions({loop:e}))}get currentTime(){var e;if(this._htmlAudioElement)return this._htmlAudioElement.currentTime;if((e=dt.audioEngine)!=null&&e.audioContext&&(this.isPlaying||this.isPaused)){const t=this.isPaused?0:dt.audioEngine.audioContext.currentTime-this._startTime;return this._currentTime+t}return 0}get spatialSound(){return this._spatialSound}set spatialSound(e){if(e==this._spatialSound)return;const t=this.isPlaying;this.pause(),e?(this._spatialSound=e,this._updateSpatialParameters()):this._disableSpatialSound(),t&&this.play()}constructor(e,t,i,s=null,r){var n;if(this.autoplay=!1,this._loop=!1,this.useCustomAttenuation=!1,this.isPlaying=!1,this.isPaused=!1,this.refDistance=1,this.rolloffFactor=1,this.maxDistance=100,this.distanceModel="linear",this.metadata=null,this.onEndedObservable=new xe,this._spatialSound=!1,this._panningModel="equalpower",this._playbackRate=1,this._streaming=!1,this._startTime=0,this._currentTime=0,this._position=P.Zero(),this._localDirection=new P(1,0,0),this._volume=1,this._isReadyToPlay=!1,this._isDirectional=!1,this._coneInnerAngle=360,this._coneOuterAngle=360,this._coneOuterGain=0,this._isOutputConnected=!1,this._urlType="Unknown",this.name=e,i=i||ei.LastCreatedScene,!!i)if(this._scene=i,S4._SceneComponentInitialization(i),this._readyToPlayCallback=s,this._customAttenuationFunction=(o,l,c,u,f)=>l<c?o*(1-l/c):0,r&&(this.autoplay=r.autoplay||!1,this._loop=r.loop||!1,r.volume!==void 0&&(this._volume=r.volume),this._spatialSound=r.spatialSound??!1,this.maxDistance=r.maxDistance??100,this.useCustomAttenuation=r.useCustomAttenuation??!1,this.rolloffFactor=r.rolloffFactor||1,this.refDistance=r.refDistance||1,this.distanceModel=r.distanceModel||"linear",this._playbackRate=r.playbackRate||1,this._streaming=r.streaming??!1,this._length=r.length,this._offset=r.offset),(n=dt.audioEngine)!=null&&n.canUseWebAudio&&dt.audioEngine.audioContext){this._soundGain=dt.audioEngine.audioContext.createGain(),this._soundGain.gain.value=this._volume,this._inputAudioNode=this._soundGain,this._outputAudioNode=this._soundGain,this._spatialSound&&this._createSpatialParameters(),this._scene.mainSoundTrack.addSound(this);let o=!0;if(t)try{typeof t=="string"?(this._urlType="String",this._url=t):t instanceof ArrayBuffer?this._urlType="ArrayBuffer":t instanceof HTMLMediaElement?this._urlType="MediaElement":t instanceof MediaStream?this._urlType="MediaStream":t instanceof AudioBuffer?this._urlType="AudioBuffer":Array.isArray(t)&&(this._urlType="Array");let l=[],c=!1;switch(this._urlType){case"MediaElement":this._streaming=!0,this._isReadyToPlay=!0,this._streamingSource=dt.audioEngine.audioContext.createMediaElementSource(t),this.autoplay&&this.play(0,this._offset,this._length),this._readyToPlayCallback&&this._readyToPlayCallback();break;case"MediaStream":this._streaming=!0,this._isReadyToPlay=!0,this._streamingSource=dt.audioEngine.audioContext.createMediaStreamSource(t),this.autoplay&&this.play(0,this._offset,this._length),this._readyToPlayCallback&&this._readyToPlayCallback();break;case"ArrayBuffer":t.byteLength>0&&(c=!0,this._soundLoaded(t));break;case"AudioBuffer":this._audioBufferLoaded(t);break;case"String":l.push(t);case"Array":l.length===0&&(l=t);for(let u=0;u<l.length;u++){const f=l[u];if(c=r&&r.skipCodecCheck||f.indexOf(".mp3",f.length-4)!==-1&&dt.audioEngine.isMP3supported||f.indexOf(".ogg",f.length-4)!==-1&&dt.audioEngine.isOGGsupported||f.indexOf(".wav",f.length-4)!==-1||f.indexOf(".m4a",f.length-4)!==-1||f.indexOf(".mp4",f.length-4)!==-1||f.indexOf("blob:")!==-1,c){this._streaming?(this._htmlAudioElement=new Audio(f),this._htmlAudioElement.controls=!1,this._htmlAudioElement.loop=this.loop,Le.SetCorsBehavior(f,this._htmlAudioElement),this._htmlAudioElement.preload="auto",this._htmlAudioElement.addEventListener("canplaythrough",()=>{this._isReadyToPlay=!0,this.autoplay&&this.play(0,this._offset,this._length),this._readyToPlayCallback&&this._readyToPlayCallback()},{once:!0}),document.body.appendChild(this._htmlAudioElement),this._htmlAudioElement.load()):this._scene._loadFile(f,p=>{this._soundLoaded(p)},void 0,!0,!0,p=>{p&&de.Error("XHR "+p.status+" error on: "+f+"."),de.Error("Sound creation aborted."),this._scene.mainSoundTrack.removeSound(this)});break}}break;default:o=!1;break}o?c||(this._isReadyToPlay=!0,this._readyToPlayCallback&&setTimeout(()=>{this._readyToPlayCallback&&this._readyToPlayCallback()},1e3)):de.Error("Parameter must be a URL to the sound, an Array of URLs (.mp3 & .ogg) or an ArrayBuffer of the sound.")}catch{de.Error("Unexpected error. Sound creation aborted."),this._scene.mainSoundTrack.removeSound(this)}}else this._scene.mainSoundTrack.addSound(this),dt.audioEngine&&!dt.audioEngine.WarnedWebAudioUnsupported&&(de.Error("Web Audio is not supported by your browser."),dt.audioEngine.WarnedWebAudioUnsupported=!0),this._readyToPlayCallback&&setTimeout(()=>{this._readyToPlayCallback&&this._readyToPlayCallback()},1e3)}dispose(){var e;(e=dt.audioEngine)!=null&&e.canUseWebAudio&&(this.isPlaying&&this.stop(),this._isReadyToPlay=!1,this.soundTrackId===-1?this._scene.mainSoundTrack.removeSound(this):this._scene.soundTracks&&this._scene.soundTracks[this.soundTrackId].removeSound(this),this._soundGain&&(this._soundGain.disconnect(),this._soundGain=null),this._soundPanner&&(this._soundPanner.disconnect(),this._soundPanner=null),this._soundSource&&(this._soundSource.disconnect(),this._soundSource=null),this._audioBuffer=null,this._htmlAudioElement&&(this._htmlAudioElement.pause(),this._htmlAudioElement.src="",document.body.removeChild(this._htmlAudioElement),this._htmlAudioElement=null),this._streamingSource&&(this._streamingSource.disconnect(),this._streamingSource=null),this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._connectedTransformNode=null),this._clearTimeoutsAndObservers())}isReady(){return this._isReadyToPlay}getClassName(){return"Sound"}_audioBufferLoaded(e){var t;(t=dt.audioEngine)!=null&&t.audioContext&&(this._audioBuffer=e,this._isReadyToPlay=!0,this.autoplay&&this.play(0,this._offset,this._length),this._readyToPlayCallback&&this._readyToPlayCallback())}_soundLoaded(e){var t;(t=dt.audioEngine)!=null&&t.audioContext&&dt.audioEngine.audioContext.decodeAudioData(e,i=>{this._audioBufferLoaded(i)},i=>{de.Error("Error while decoding audio data for: "+this.name+" / Error: "+i)})}setAudioBuffer(e){var t;(t=dt.audioEngine)!=null&&t.canUseWebAudio&&(this._audioBuffer=e,this._isReadyToPlay=!0)}updateOptions(e){e&&(this.loop=e.loop??this.loop,this.maxDistance=e.maxDistance??this.maxDistance,this.useCustomAttenuation=e.useCustomAttenuation??this.useCustomAttenuation,this.rolloffFactor=e.rolloffFactor??this.rolloffFactor,this.refDistance=e.refDistance??this.refDistance,this.distanceModel=e.distanceModel??this.distanceModel,this._playbackRate=e.playbackRate??this._playbackRate,this._length=e.length??void 0,this.spatialSound=e.spatialSound??this._spatialSound,this._setOffset(e.offset??void 0),this.setVolume(e.volume??this._volume),this._updateSpatialParameters(),this.isPlaying&&(this._streaming&&this._htmlAudioElement?(this._htmlAudioElement.playbackRate=this._playbackRate,this._htmlAudioElement.loop!==this.loop&&(this._htmlAudioElement.loop=this.loop)):this._soundSource&&(this._soundSource.playbackRate.value=this._playbackRate,this._soundSource.loop!==this.loop&&(this._soundSource.loop=this.loop),this._offset!==void 0&&this._soundSource.loopStart!==this._offset&&(this._soundSource.loopStart=this._offset),this._length!==void 0&&this._length!==this._soundSource.loopEnd&&(this._soundSource.loopEnd=(this._offset|0)+this._length))))}_createSpatialParameters(){var e;(e=dt.audioEngine)!=null&&e.canUseWebAudio&&dt.audioEngine.audioContext&&(this._scene.headphone&&(this._panningModel="HRTF"),this._soundPanner=this._soundPanner??dt.audioEngine.audioContext.createPanner(),this._soundPanner&&this._outputAudioNode&&(this._updateSpatialParameters(),this._soundPanner.connect(this._outputAudioNode),this._inputAudioNode=this._soundPanner))}_disableSpatialSound(){var e;this._spatialSound&&(this._inputAudioNode=this._soundGain,(e=this._soundPanner)==null||e.disconnect(),this._soundPanner=null,this._spatialSound=!1)}_updateSpatialParameters(){this._spatialSound&&(this._soundPanner?this.useCustomAttenuation?(this._soundPanner.distanceModel="linear",this._soundPanner.maxDistance=Number.MAX_VALUE,this._soundPanner.refDistance=1,this._soundPanner.rolloffFactor=1,this._soundPanner.panningModel=this._panningModel):(this._soundPanner.distanceModel=this.distanceModel,this._soundPanner.maxDistance=this.maxDistance,this._soundPanner.refDistance=this.refDistance,this._soundPanner.rolloffFactor=this.rolloffFactor,this._soundPanner.panningModel=this._panningModel):this._createSpatialParameters())}switchPanningModelToHRTF(){this._panningModel="HRTF",this._switchPanningModel()}switchPanningModelToEqualPower(){this._panningModel="equalpower",this._switchPanningModel()}_switchPanningModel(){var e;(e=dt.audioEngine)!=null&&e.canUseWebAudio&&this._spatialSound&&this._soundPanner&&(this._soundPanner.panningModel=this._panningModel)}connectToSoundTrackAudioNode(e){var t;(t=dt.audioEngine)!=null&&t.canUseWebAudio&&this._outputAudioNode&&(this._isOutputConnected&&this._outputAudioNode.disconnect(),this._outputAudioNode.connect(e),this._isOutputConnected=!0)}setDirectionalCone(e,t,i){if(t<e){de.Error("setDirectionalCone(): outer angle of the cone must be superior or equal to the inner angle.");return}this._coneInnerAngle=e,this._coneOuterAngle=t,this._coneOuterGain=i,this._isDirectional=!0,this.isPlaying&&this.loop&&(this.stop(),this.play(0,this._offset,this._length))}get directionalConeInnerAngle(){return this._coneInnerAngle}set directionalConeInnerAngle(e){var t;if(e!=this._coneInnerAngle){if(this._coneOuterAngle<e){de.Error("directionalConeInnerAngle: outer angle of the cone must be superior or equal to the inner angle.");return}this._coneInnerAngle=e,(t=dt.audioEngine)!=null&&t.canUseWebAudio&&this._spatialSound&&this._soundPanner&&(this._soundPanner.coneInnerAngle=this._coneInnerAngle)}}get directionalConeOuterAngle(){return this._coneOuterAngle}set directionalConeOuterAngle(e){var t;if(e!=this._coneOuterAngle){if(e<this._coneInnerAngle){de.Error("directionalConeOuterAngle: outer angle of the cone must be superior or equal to the inner angle.");return}this._coneOuterAngle=e,(t=dt.audioEngine)!=null&&t.canUseWebAudio&&this._spatialSound&&this._soundPanner&&(this._soundPanner.coneOuterAngle=this._coneOuterAngle)}}setPosition(e){var t;e.equals(this._position)||(this._position.copyFrom(e),(t=dt.audioEngine)!=null&&t.canUseWebAudio&&this._spatialSound&&this._soundPanner&&!isNaN(this._position.x)&&!isNaN(this._position.y)&&!isNaN(this._position.z)&&(this._soundPanner.positionX.value=this._position.x,this._soundPanner.positionY.value=this._position.y,this._soundPanner.positionZ.value=this._position.z))}setLocalDirectionToMesh(e){var t;this._localDirection=e,(t=dt.audioEngine)!=null&&t.canUseWebAudio&&this._connectedTransformNode&&this.isPlaying&&this._updateDirection()}_updateDirection(){if(!this._connectedTransformNode||!this._soundPanner)return;const e=this._connectedTransformNode.getWorldMatrix(),t=P.TransformNormal(this._localDirection,e);t.normalize(),this._soundPanner.orientationX.value=t.x,this._soundPanner.orientationY.value=t.y,this._soundPanner.orientationZ.value=t.z}updateDistanceFromListener(){var e;if((e=dt.audioEngine)!=null&&e.canUseWebAudio&&this._connectedTransformNode&&this.useCustomAttenuation&&this._soundGain&&this._scene.activeCamera){const t=this._scene.audioListenerPositionProvider?this._connectedTransformNode.position.subtract(this._scene.audioListenerPositionProvider()).length():this._connectedTransformNode.getDistanceToCamera(this._scene.activeCamera);this._soundGain.gain.value=this._customAttenuationFunction(this._volume,t,this.maxDistance,this.refDistance,this.rolloffFactor)}}setAttenuationFunction(e){this._customAttenuationFunction=e}play(e,t,i){var s,r,n,o;if(this._isReadyToPlay&&this._scene.audioEnabled&&((s=dt.audioEngine)!=null&&s.audioContext))try{this._clearTimeoutsAndObservers();let l=e?((r=dt.audioEngine)==null?void 0:r.audioContext.currentTime)+e:(n=dt.audioEngine)==null?void 0:n.audioContext.currentTime;if((!this._soundSource||!this._streamingSource)&&this._spatialSound&&this._soundPanner&&(!isNaN(this._position.x)&&!isNaN(this._position.y)&&!isNaN(this._position.z)&&(this._soundPanner.positionX.value=this._position.x,this._soundPanner.positionY.value=this._position.y,this._soundPanner.positionZ.value=this._position.z),this._isDirectional&&(this._soundPanner.coneInnerAngle=this._coneInnerAngle,this._soundPanner.coneOuterAngle=this._coneOuterAngle,this._soundPanner.coneOuterGain=this._coneOuterGain,this._connectedTransformNode?this._updateDirection():this._soundPanner.setOrientation(this._localDirection.x,this._localDirection.y,this._localDirection.z))),this._streaming){if(!this._streamingSource&&this._htmlAudioElement&&(this._streamingSource=dt.audioEngine.audioContext.createMediaElementSource(this._htmlAudioElement),this._htmlAudioElement.onended=()=>{this._onended()},this._htmlAudioElement.playbackRate=this._playbackRate),this._streamingSource&&(this._streamingSource.disconnect(),this._inputAudioNode&&this._streamingSource.connect(this._inputAudioNode)),this._htmlAudioElement){const c=()=>{var u,f;if((u=dt.audioEngine)!=null&&u.unlocked){if(!this._htmlAudioElement)return;this._htmlAudioElement.currentTime=t??0;const p=this._htmlAudioElement.play();p!==void 0&&p.catch(()=>{var m,_;(m=dt.audioEngine)==null||m.lock(),(this.loop||this.autoplay)&&(this._audioUnlockedObserver=(_=dt.audioEngine)==null?void 0:_.onAudioUnlockedObservable.addOnce(()=>{c()}))})}else(this.loop||this.autoplay)&&(this._audioUnlockedObserver=(f=dt.audioEngine)==null?void 0:f.onAudioUnlockedObservable.addOnce(()=>{c()}))};c()}}else{const c=()=>{var u,f,p;if((u=dt.audioEngine)!=null&&u.audioContext){if(i=i||this._length,t!==void 0&&this._setOffset(t),this._soundSource){const m=this._soundSource;m.onended=()=>{m.disconnect()}}if(this._soundSource=(f=dt.audioEngine)==null?void 0:f.audioContext.createBufferSource(),this._soundSource&&this._inputAudioNode){this._soundSource.buffer=this._audioBuffer,this._soundSource.connect(this._inputAudioNode),this._soundSource.loop=this.loop,t!==void 0&&(this._soundSource.loopStart=t),i!==void 0&&(this._soundSource.loopEnd=(t|0)+i),this._soundSource.playbackRate.value=this._playbackRate,this._soundSource.onended=()=>{this._onended()},l=e?((p=dt.audioEngine)==null?void 0:p.audioContext.currentTime)+e:dt.audioEngine.audioContext.currentTime;const m=((this.isPaused?this.currentTime:0)+(this._offset??0))%this._soundSource.buffer.duration;this._soundSource.start(l,m,this.loop?void 0:i)}}};((o=dt.audioEngine)==null?void 0:o.audioContext.state)==="suspended"?this._tryToPlayTimeout=setTimeout(()=>{var u;((u=dt.audioEngine)==null?void 0:u.audioContext.state)==="suspended"?(dt.audioEngine.lock(),(this.loop||this.autoplay)&&(this._audioUnlockedObserver=dt.audioEngine.onAudioUnlockedObservable.addOnce(()=>{c()}))):c()},500):c()}this._startTime=l,this.isPlaying=!0,this.isPaused=!1}catch(l){de.Error("Error while trying to play audio: "+this.name+", "+l.message)}}_onended(){this.isPlaying=!1,this._startTime=0,this._currentTime=0,this.onended&&this.onended(),this.onEndedObservable.notifyObservers(this)}stop(e){var t,i;if(this.isPlaying)if(this._clearTimeoutsAndObservers(),this._streaming)this._htmlAudioElement?(this._htmlAudioElement.pause(),this._htmlAudioElement.currentTime>0&&(this._htmlAudioElement.currentTime=0)):(t=this._streamingSource)==null||t.disconnect(),this.isPlaying=!1;else if((i=dt.audioEngine)!=null&&i.audioContext&&this._soundSource){const s=e?dt.audioEngine.audioContext.currentTime+e:void 0;this._soundSource.onended=()=>{this.isPlaying=!1,this.isPaused=!1,this._startTime=0,this._currentTime=0,this._soundSource&&(this._soundSource.onended=()=>{}),this._onended()},this._soundSource.stop(s)}else this.isPlaying=!1;else this.isPaused&&(this.isPaused=!1,this._startTime=0,this._currentTime=0)}pause(){var e,t;this.isPlaying&&(this._clearTimeoutsAndObservers(),this._streaming?(this._htmlAudioElement?this._htmlAudioElement.pause():(e=this._streamingSource)==null||e.disconnect(),this.isPlaying=!1,this.isPaused=!0):(t=dt.audioEngine)!=null&&t.audioContext&&this._soundSource&&(this._soundSource.onended=()=>{},this._soundSource.stop(),this.isPlaying=!1,this.isPaused=!0,this._currentTime+=dt.audioEngine.audioContext.currentTime-this._startTime))}setVolume(e,t){var i;(i=dt.audioEngine)!=null&&i.canUseWebAudio&&this._soundGain&&(t&&dt.audioEngine.audioContext?(this._soundGain.gain.cancelScheduledValues(dt.audioEngine.audioContext.currentTime),this._soundGain.gain.setValueAtTime(this._soundGain.gain.value,dt.audioEngine.audioContext.currentTime),this._soundGain.gain.linearRampToValueAtTime(e,dt.audioEngine.audioContext.currentTime+t)):this._soundGain.gain.value=e),this._volume=e}setPlaybackRate(e){this._playbackRate=e,this.isPlaying&&(this._streaming&&this._htmlAudioElement?this._htmlAudioElement.playbackRate=this._playbackRate:this._soundSource&&(this._soundSource.playbackRate.value=this._playbackRate))}getPlaybackRate(){return this._playbackRate}getVolume(){return this._volume}attachToMesh(e){this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._registerFunc=null),this._connectedTransformNode=e,this._spatialSound||(this._spatialSound=!0,this._createSpatialParameters(),this.isPlaying&&this.loop&&(this.stop(),this.play(0,this._offset,this._length))),this._onRegisterAfterWorldMatrixUpdate(this._connectedTransformNode),this._registerFunc=t=>this._onRegisterAfterWorldMatrixUpdate(t),this._connectedTransformNode.registerAfterWorldMatrixUpdate(this._registerFunc)}detachFromMesh(){this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._registerFunc=null,this._connectedTransformNode=null)}_onRegisterAfterWorldMatrixUpdate(e){var t;if(!e.getBoundingInfo)this.setPosition(e.absolutePosition);else{const s=e.getBoundingInfo();this.setPosition(s.boundingSphere.centerWorld)}(t=dt.audioEngine)!=null&&t.canUseWebAudio&&this._isDirectional&&this.isPlaying&&this._updateDirection()}clone(){if(this._streaming)return null;{const e=()=>{my(()=>this._isReadyToPlay,()=>{i._audioBuffer=this.getAudioBuffer(),i._isReadyToPlay=!0,i.autoplay&&i.play(0,this._offset,this._length)},void 0,300)},t={autoplay:this.autoplay,loop:this.loop,volume:this._volume,spatialSound:this._spatialSound,maxDistance:this.maxDistance,useCustomAttenuation:this.useCustomAttenuation,rolloffFactor:this.rolloffFactor,refDistance:this.refDistance,distanceModel:this.distanceModel},i=new S4(this.name+"_cloned",new ArrayBuffer(0),this._scene,null,t);return this.useCustomAttenuation&&i.setAttenuationFunction(this._customAttenuationFunction),i.setPosition(this._position),i.setPlaybackRate(this._playbackRate),e(),i}}getAudioBuffer(){return this._audioBuffer}getSoundSource(){return this._soundSource}getSoundGain(){return this._soundGain}serialize(){const e={name:this.name,url:this._url,autoplay:this.autoplay,loop:this.loop,volume:this._volume,spatialSound:this._spatialSound,maxDistance:this.maxDistance,rolloffFactor:this.rolloffFactor,refDistance:this.refDistance,distanceModel:this.distanceModel,playbackRate:this._playbackRate,panningModel:this._panningModel,soundTrackId:this.soundTrackId,metadata:this.metadata};return this._spatialSound&&(this._connectedTransformNode&&(e.connectedMeshId=this._connectedTransformNode.id),e.position=this._position.asArray(),e.refDistance=this.refDistance,e.distanceModel=this.distanceModel,e.isDirectional=this._isDirectional,e.localDirectionToMesh=this._localDirection.asArray(),e.coneInnerAngle=this._coneInnerAngle,e.coneOuterAngle=this._coneOuterAngle,e.coneOuterGain=this._coneOuterGain),e}static Parse(e,t,i,s){const r=e.name;let n;e.url?n=i+e.url:n=i+r;const o={autoplay:e.autoplay,loop:e.loop,volume:e.volume,spatialSound:e.spatialSound,maxDistance:e.maxDistance,rolloffFactor:e.rolloffFactor,refDistance:e.refDistance,distanceModel:e.distanceModel,playbackRate:e.playbackRate};let l;if(!s)l=new S4(r,n,t,()=>{t.removePendingData(l)},o),t.addPendingData(l);else{const c=()=>{my(()=>s._isReadyToPlay,()=>{l._audioBuffer=s.getAudioBuffer(),l._isReadyToPlay=!0,l.autoplay&&l.play(0,l._offset,l._length)},void 0,300)};l=new S4(r,new ArrayBuffer(0),t,null,o),c()}if(e.position){const c=P.FromArray(e.position);l.setPosition(c)}if(e.isDirectional&&(l.setDirectionalCone(e.coneInnerAngle||360,e.coneOuterAngle||360,e.coneOuterGain||0),e.localDirectionToMesh)){const c=P.FromArray(e.localDirectionToMesh);l.setLocalDirectionToMesh(c)}if(e.connectedMeshId){const c=t.getMeshById(e.connectedMeshId);c&&l.attachToMesh(c)}return e.metadata&&(l.metadata=e.metadata),l}_setOffset(e){this._offset!==e&&(this.isPaused&&(this.stop(),this.isPaused=!1),this._offset=e)}_clearTimeoutsAndObservers(){var e;this._tryToPlayTimeout&&(clearTimeout(this._tryToPlayTimeout),this._tryToPlayTimeout=null),this._audioUnlockedObserver&&((e=dt.audioEngine)==null||e.onAudioUnlockedObservable.remove(this._audioUnlockedObserver),this._audioUnlockedObserver=null)}}S4._SceneComponentInitialization=a=>{throw as("AudioSceneComponent")},ve("BABYLON.Sound",S4);class l1e{constructor(e,t,i){if(this.loop=!1,this._coneInnerAngle=360,this._coneOuterAngle=360,this._volume=1,this.isPlaying=!1,this.isPaused=!1,this._sounds=[],this._weights=[],t.length!==i.length)throw new Error("Sounds length does not equal weights length");this.loop=e,this._weights=i;let s=0;for(const n of i)s+=n;const r=s>0?1/s:0;for(let n=0;n<this._weights.length;n++)this._weights[n]*=r;this._sounds=t;for(const n of this._sounds)n.onEndedObservable.add(()=>{this._onended()})}get directionalConeInnerAngle(){return this._coneInnerAngle}set directionalConeInnerAngle(e){if(e!==this._coneInnerAngle){if(this._coneOuterAngle<e){de.Error("directionalConeInnerAngle: outer angle of the cone must be superior or equal to the inner angle.");return}this._coneInnerAngle=e;for(const t of this._sounds)t.directionalConeInnerAngle=e}}get directionalConeOuterAngle(){return this._coneOuterAngle}set directionalConeOuterAngle(e){if(e!==this._coneOuterAngle){if(e<this._coneInnerAngle){de.Error("directionalConeOuterAngle: outer angle of the cone must be superior or equal to the inner angle.");return}this._coneOuterAngle=e;for(const t of this._sounds)t.directionalConeOuterAngle=e}}get volume(){return this._volume}set volume(e){if(e!==this._volume)for(const t of this._sounds)t.setVolume(e)}_onended(){this._currentIndex!==void 0&&(this._sounds[this._currentIndex].autoplay=!1),this.loop&&this.isPlaying?this.play():this.isPlaying=!1}pause(){this.isPlaying&&(this.isPaused=!0,this._currentIndex!==void 0&&this._sounds[this._currentIndex].pause())}stop(){this.isPlaying=!1,this._currentIndex!==void 0&&this._sounds[this._currentIndex].stop()}play(e){if(!this.isPaused){this.stop();const i=Math.random();let s=0;for(let r=0;r<this._weights.length;r++)if(s+=this._weights[r],i<=s){this._currentIndex=r;break}}const t=this._sounds[this._currentIndex??0];t.isReady()?t.play(0,this.isPaused?void 0:e):t.autoplay=!0,this.isPlaying=!0,this.isPaused=!1}}class c1e{constructor(e,t={}){this.id=-1,this._isInitialized=!1,e=e||ei.LastCreatedScene,e&&(this._scene=e,this.soundCollection=[],this._options=t,!this._options.mainTrack&&this._scene.soundTracks&&(this._scene.soundTracks.push(this),this.id=this._scene.soundTracks.length-1))}_initializeSoundTrackAudioGraph(){var e;(e=dt.audioEngine)!=null&&e.canUseWebAudio&&dt.audioEngine.audioContext&&(this._outputAudioNode=dt.audioEngine.audioContext.createGain(),this._outputAudioNode.connect(dt.audioEngine.masterGain),this._options&&this._options.volume&&(this._outputAudioNode.gain.value=this._options.volume),this._isInitialized=!0)}dispose(){if(dt.audioEngine&&dt.audioEngine.canUseWebAudio){for(this._connectedAnalyser&&this._connectedAnalyser.stopDebugCanvas();this.soundCollection.length;)this.soundCollection[0].dispose();this._outputAudioNode&&this._outputAudioNode.disconnect(),this._outputAudioNode=null}}addSound(e){var t;this._isInitialized||this._initializeSoundTrackAudioGraph(),(t=dt.audioEngine)!=null&&t.canUseWebAudio&&this._outputAudioNode&&e.connectToSoundTrackAudioNode(this._outputAudioNode),e.soundTrackId!==void 0&&(e.soundTrackId===-1?this._scene.mainSoundTrack.removeSound(e):this._scene.soundTracks&&this._scene.soundTracks[e.soundTrackId].removeSound(e)),this.soundCollection.push(e),e.soundTrackId=this.id}removeSound(e){const t=this.soundCollection.indexOf(e);t!==-1&&this.soundCollection.splice(t,1)}setVolume(e){var t;(t=dt.audioEngine)!=null&&t.canUseWebAudio&&this._outputAudioNode&&(this._outputAudioNode.gain.value=e)}switchPanningModelToHRTF(){var e;if((e=dt.audioEngine)!=null&&e.canUseWebAudio)for(let t=0;t<this.soundCollection.length;t++)this.soundCollection[t].switchPanningModelToHRTF()}switchPanningModelToEqualPower(){var e;if((e=dt.audioEngine)!=null&&e.canUseWebAudio)for(let t=0;t<this.soundCollection.length;t++)this.soundCollection[t].switchPanningModelToEqualPower()}connectToAnalyser(e){var t;this._connectedAnalyser&&this._connectedAnalyser.stopDebugCanvas(),this._connectedAnalyser=e,(t=dt.audioEngine)!=null&&t.canUseWebAudio&&this._outputAudioNode&&(this._outputAudioNode.disconnect(),this._connectedAnalyser.connectAudioNodes(this._outputAudioNode,dt.audioEngine.masterGain))}}dt.AudioEngineFactory=(a,e,t)=>new u1e(a,e,t);class u1e{get audioContext(){return this._audioContextInitialized||this._initializeAudioContext(),this._audioContext}constructor(e=null,t=null,i=null){if(this._audioContext=null,this._audioContextInitialized=!1,this._muteButton=null,this._audioDestination=null,this.canUseWebAudio=!1,this.WarnedWebAudioUnsupported=!1,this.isMP3supported=!1,this.isOGGsupported=!1,this.unlocked=!1,this.useCustomUnlockedButton=!1,this.onAudioUnlockedObservable=new xe,this.onAudioLockedObservable=new xe,this._tryToRun=!1,this._onResize=()=>{this._moveButtonToTopLeft()},!Il())return;typeof window.AudioContext<"u"&&(this.canUseWebAudio=!0);const s=document.createElement("audio");this._hostElement=e,this._audioContext=t,this._audioDestination=i;try{s&&s.canPlayType&&(s.canPlayType('audio/mpeg; codecs="mp3"').replace(/^no$/,"")||s.canPlayType("audio/mp3").replace(/^no$/,""))&&(this.isMP3supported=!0)}catch{}try{s&&s.canPlayType&&s.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,"")&&(this.isOGGsupported=!0)}catch{}}lock(){this._triggerSuspendedState()}unlock(){var e,t;if(((e=this._audioContext)==null?void 0:e.state)==="running"){this._hideMuteButton(),this.unlocked||(this.unlocked=!0,this.onAudioUnlockedObservable.notifyObservers(this));return}this._tryToRun?(t=this._audioContext)==null||t.suspend().then(()=>{this._tryToRun=!1,this._triggerRunningState()}):this._triggerRunningState()}_resumeAudioContextOnStateChange(){var e;(e=this._audioContext)==null||e.addEventListener("statechange",()=>{var t;this.unlocked&&((t=this._audioContext)==null?void 0:t.state)!=="running"&&this._resumeAudioContext()},{once:!0,passive:!0,signal:AbortSignal.timeout(3e3)})}_resumeAudioContext(){var e;return(e=this._audioContext)!=null&&e.resume?this._audioContext.resume():Promise.resolve()}_initializeAudioContext(){try{this.canUseWebAudio&&(this._audioContext||(this._audioContext=new AudioContext),this.masterGain=this._audioContext.createGain(),this.masterGain.gain.value=1,this._audioDestination||(this._audioDestination=this._audioContext.destination),this.masterGain.connect(this._audioDestination),this._audioContextInitialized=!0,this._audioContext.state==="running"&&this._triggerRunningState())}catch(e){this.canUseWebAudio=!1,de.Error("Web Audio: "+e.message)}}_triggerRunningState(){this._tryToRun||(this._tryToRun=!0,this._resumeAudioContext().then(()=>{this._tryToRun=!1,this._muteButton&&this._hideMuteButton(),this.unlocked=!0,this.onAudioUnlockedObservable.notifyObservers(this)}).catch(()=>{this._tryToRun=!1,this.unlocked=!1}))}_triggerSuspendedState(){this.unlocked=!1,this.onAudioLockedObservable.notifyObservers(this),this._displayMuteButton()}_displayMuteButton(){if(this.useCustomUnlockedButton||this._muteButton)return;this._muteButton=document.createElement("BUTTON"),this._muteButton.className="babylonUnmuteIcon",this._muteButton.id="babylonUnmuteIconBtn",this._muteButton.title="Unmute";const t=".babylonUnmuteIcon { position: absolute; left: 20px; top: 20px; height: 40px; width: 60px; background-color: rgba(51,51,51,0.7); background-image: url("+(window.SVGSVGElement?"data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2239%22%20height%3D%2232%22%20viewBox%3D%220%200%2039%2032%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M9.625%2018.938l-0.031%200.016h-4.953q-0.016%200-0.031-0.016v-12.453q0-0.016%200.031-0.016h4.953q0.031%200%200.031%200.016v12.453zM12.125%207.688l8.719-8.703v27.453l-8.719-8.719-0.016-0.047v-9.938zM23.359%207.875l1.406-1.406%204.219%204.203%204.203-4.203%201.422%201.406-4.219%204.219%204.219%204.203-1.484%201.359-4.141-4.156-4.219%204.219-1.406-1.422%204.219-4.203z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E":"https://cdn.babylonjs.com/Assets/audio.png")+");  background-size: 80%; background-repeat:no-repeat; background-position: center; background-position-y: 4px; border: none; outline: none; transition: transform 0.125s ease-out; cursor: pointer; z-index: 9999; } .babylonUnmuteIcon:hover { transform: scale(1.05) } .babylonUnmuteIcon:active { background-color: rgba(51,51,51,1) }",i=document.createElement("style");i.appendChild(document.createTextNode(t)),document.getElementsByTagName("head")[0].appendChild(i),document.body.appendChild(this._muteButton),this._moveButtonToTopLeft(),this._muteButton.addEventListener("touchend",()=>{this._triggerRunningState()},!0),this._muteButton.addEventListener("click",()=>{this.unlock()},!0),window.addEventListener("resize",this._onResize)}_moveButtonToTopLeft(){this._hostElement&&this._muteButton&&(this._muteButton.style.top=this._hostElement.offsetTop+20+"px",this._muteButton.style.left=this._hostElement.offsetLeft+20+"px")}_hideMuteButton(){this._muteButton&&(document.body.removeChild(this._muteButton),this._muteButton=null)}dispose(){this.canUseWebAudio&&this._audioContextInitialized&&(this._connectedAnalyser&&this._audioContext&&(this._connectedAnalyser.stopDebugCanvas(),this._connectedAnalyser.dispose(),this.masterGain.disconnect(),this.masterGain.connect(this._audioContext.destination),this._connectedAnalyser=null),this.masterGain.gain.value=1),this.WarnedWebAudioUnsupported=!1,this._hideMuteButton(),window.removeEventListener("resize",this._onResize),this.onAudioUnlockedObservable.clear(),this.onAudioLockedObservable.clear()}getGlobalVolume(){return this.canUseWebAudio&&this._audioContextInitialized?this.masterGain.gain.value:-1}setGlobalVolume(e){this.canUseWebAudio&&this._audioContextInitialized&&(this.masterGain.gain.value=e)}connectToAnalyser(e){this._connectedAnalyser&&this._connectedAnalyser.stopDebugCanvas(),this.canUseWebAudio&&this._audioContextInitialized&&this._audioContext&&(this._connectedAnalyser=e,this.masterGain.disconnect(),this._connectedAnalyser.connectAudioNodes(this.masterGain,this._audioContext.destination))}}const RP={},TK={};function aL(a,e){RP[a]=e}function qRe(a){return RP[a]?RP[a]:null}function h1e(a,e){TK[a]=e}function LK(a){return TK[a]?TK[a]:null}function d1e(a,e,t,i){for(const s in RP)Object.prototype.hasOwnProperty.call(RP,s)&&RP[s](a,e,t,i)}aL(jt.NAME_AUDIO,(a,e,t,i)=>{var n;let s=[],r;if(t.sounds=t.sounds||[],a.sounds!==void 0&&a.sounds!==null)for(let o=0,l=a.sounds.length;o<l;o++){const c=a.sounds[o];(n=dt.audioEngine)!=null&&n.canUseWebAudio?(c.url||(c.url=c.name),s[c.url]?t.sounds.push(S4.Parse(c,e,i,s[c.url])):(r=S4.Parse(c,e,i),s[c.url]=r,t.sounds.push(r))):t.sounds.push(new S4(c.name,null,e))}s=[]}),Object.defineProperty(ui.prototype,"mainSoundTrack",{get:function(){let a=this._getComponent(jt.NAME_AUDIO);return a||(a=new nf(this),this._addComponent(a)),this._mainSoundTrack||(this._mainSoundTrack=new c1e(this,{mainTrack:!0})),this._mainSoundTrack},enumerable:!0,configurable:!0}),ui.prototype.getSoundByName=function(a){let e;for(e=0;e<this.mainSoundTrack.soundCollection.length;e++)if(this.mainSoundTrack.soundCollection[e].name===a)return this.mainSoundTrack.soundCollection[e];if(this.soundTracks){for(let t=0;t<this.soundTracks.length;t++)for(e=0;e<this.soundTracks[t].soundCollection.length;e++)if(this.soundTracks[t].soundCollection[e].name===a)return this.soundTracks[t].soundCollection[e]}return null},Object.defineProperty(ui.prototype,"audioEnabled",{get:function(){let a=this._getComponent(jt.NAME_AUDIO);return a||(a=new nf(this),this._addComponent(a)),a.audioEnabled},set:function(a){let e=this._getComponent(jt.NAME_AUDIO);e||(e=new nf(this),this._addComponent(e)),a?e.enableAudio():e.disableAudio()},enumerable:!0,configurable:!0}),Object.defineProperty(ui.prototype,"headphone",{get:function(){let a=this._getComponent(jt.NAME_AUDIO);return a||(a=new nf(this),this._addComponent(a)),a.headphone},set:function(a){let e=this._getComponent(jt.NAME_AUDIO);e||(e=new nf(this),this._addComponent(e)),a?e.switchAudioModeForHeadphones():e.switchAudioModeForNormalSpeakers()},enumerable:!0,configurable:!0}),Object.defineProperty(ui.prototype,"audioListenerPositionProvider",{get:function(){let a=this._getComponent(jt.NAME_AUDIO);return a||(a=new nf(this),this._addComponent(a)),a.audioListenerPositionProvider},set:function(a){let e=this._getComponent(jt.NAME_AUDIO);if(e||(e=new nf(this),this._addComponent(e)),a&&typeof a!="function")throw new Error("The value passed to [Scene.audioListenerPositionProvider] must be a function that returns a Vector3");e.audioListenerPositionProvider=a},enumerable:!0,configurable:!0}),Object.defineProperty(ui.prototype,"audioListenerRotationProvider",{get:function(){let a=this._getComponent(jt.NAME_AUDIO);return a||(a=new nf(this),this._addComponent(a)),a.audioListenerRotationProvider},set:function(a){let e=this._getComponent(jt.NAME_AUDIO);if(e||(e=new nf(this),this._addComponent(e)),a&&typeof a!="function")throw new Error("The value passed to [Scene.audioListenerRotationProvider] must be a function that returns a Vector3");e.audioListenerRotationProvider=a},enumerable:!0,configurable:!0}),Object.defineProperty(ui.prototype,"audioPositioningRefreshRate",{get:function(){let a=this._getComponent(jt.NAME_AUDIO);return a||(a=new nf(this),this._addComponent(a)),a.audioPositioningRefreshRate},set:function(a){let e=this._getComponent(jt.NAME_AUDIO);e||(e=new nf(this),this._addComponent(e)),e.audioPositioningRefreshRate=a},enumerable:!0,configurable:!0});class nf{get audioEnabled(){return this._audioEnabled}get headphone(){return this._headphone}constructor(e){this.name=jt.NAME_AUDIO,this._audioEnabled=!0,this._headphone=!1,this.audioPositioningRefreshRate=500,this.audioListenerPositionProvider=null,this.audioListenerRotationProvider=null,this._cachedCameraDirection=new P,this._cachedCameraPosition=new P,this._lastCheck=0,this._invertMatrixTemp=new me,this._cameraDirectionTemp=new P,e=e||ei.LastCreatedScene,e&&(this.scene=e,e.soundTracks=[],e.sounds=[])}register(){this.scene._afterRenderStage.registerStep(jt.STEP_AFTERRENDER_AUDIO,this,this._afterRender)}rebuild(){}serialize(e){if(e.sounds=[],this.scene.soundTracks)for(let t=0;t<this.scene.soundTracks.length;t++){const i=this.scene.soundTracks[t];for(let s=0;s<i.soundCollection.length;s++)e.sounds.push(i.soundCollection[s].serialize())}}addFromContainer(e){e.sounds&&e.sounds.forEach(t=>{t.play(),t.autoplay=!0,this.scene.mainSoundTrack.addSound(t)})}removeFromContainer(e,t=!1){e.sounds&&e.sounds.forEach(i=>{i.stop(),i.autoplay=!1,this.scene.mainSoundTrack.removeSound(i),t&&i.dispose()})}dispose(){const e=this.scene;if(e._mainSoundTrack&&e.mainSoundTrack.dispose(),e.soundTracks)for(let t=0;t<e.soundTracks.length;t++)e.soundTracks[t].dispose()}disableAudio(){const e=this.scene;this._audioEnabled=!1,dt.audioEngine&&dt.audioEngine.audioContext&&dt.audioEngine.audioContext.suspend();let t;for(t=0;t<e.mainSoundTrack.soundCollection.length;t++)e.mainSoundTrack.soundCollection[t].pause();if(e.soundTracks)for(t=0;t<e.soundTracks.length;t++)for(let i=0;i<e.soundTracks[t].soundCollection.length;i++)e.soundTracks[t].soundCollection[i].pause()}enableAudio(){const e=this.scene;this._audioEnabled=!0,dt.audioEngine&&dt.audioEngine.audioContext&&dt.audioEngine.audioContext.resume();let t;for(t=0;t<e.mainSoundTrack.soundCollection.length;t++)e.mainSoundTrack.soundCollection[t].isPaused&&e.mainSoundTrack.soundCollection[t].play();if(e.soundTracks)for(t=0;t<e.soundTracks.length;t++)for(let i=0;i<e.soundTracks[t].soundCollection.length;i++)e.soundTracks[t].soundCollection[i].isPaused&&e.soundTracks[t].soundCollection[i].play()}switchAudioModeForHeadphones(){const e=this.scene;if(this._headphone=!0,e.mainSoundTrack.switchPanningModelToHRTF(),e.soundTracks)for(let t=0;t<e.soundTracks.length;t++)e.soundTracks[t].switchPanningModelToHRTF()}switchAudioModeForNormalSpeakers(){const e=this.scene;if(this._headphone=!1,e.mainSoundTrack.switchPanningModelToEqualPower(),e.soundTracks)for(let t=0;t<e.soundTracks.length;t++)e.soundTracks[t].switchPanningModelToEqualPower()}_afterRender(){const e=lr.Now;if(this._lastCheck&&e-this._lastCheck<this.audioPositioningRefreshRate)return;this._lastCheck=e;const t=this.scene;if(!this._audioEnabled||!t._mainSoundTrack||!t.soundTracks||t._mainSoundTrack.soundCollection.length===0&&t.soundTracks.length===1)return;const i=dt.audioEngine;if(i&&i.audioContext){let s=t.activeCamera;if(t.activeCameras&&t.activeCameras.length>0&&(s=t.activeCameras[0]),this.audioListenerPositionProvider){const n=this.audioListenerPositionProvider();i.audioContext.listener.setPosition(n.x||0,n.y||0,n.z||0)}else s?this._cachedCameraPosition.equals(s.globalPosition)||(this._cachedCameraPosition.copyFrom(s.globalPosition),i.audioContext.listener.setPosition(s.globalPosition.x,s.globalPosition.y,s.globalPosition.z)):i.audioContext.listener.setPosition(0,0,0);if(this.audioListenerRotationProvider){const n=this.audioListenerRotationProvider();i.audioContext.listener.setOrientation(n.x||0,n.y||0,n.z||0,0,1,0)}else s?(s.rigCameras&&s.rigCameras.length>0&&(s=s.rigCameras[0]),s.getViewMatrix().invertToRef(this._invertMatrixTemp),P.TransformNormalToRef(nf._CameraDirection,this._invertMatrixTemp,this._cameraDirectionTemp),this._cameraDirectionTemp.normalize(),!isNaN(this._cameraDirectionTemp.x)&&!isNaN(this._cameraDirectionTemp.y)&&!isNaN(this._cameraDirectionTemp.z)&&(this._cachedCameraDirection.equals(this._cameraDirectionTemp)||(this._cachedCameraDirection.copyFrom(this._cameraDirectionTemp),i.audioContext.listener.setOrientation(this._cameraDirectionTemp.x,this._cameraDirectionTemp.y,this._cameraDirectionTemp.z,0,1,0)))):i.audioContext.listener.setOrientation(0,0,0,0,1,0);let r;for(r=0;r<t.mainSoundTrack.soundCollection.length;r++){const n=t.mainSoundTrack.soundCollection[r];n.useCustomAttenuation&&n.updateDistanceFromListener()}if(t.soundTracks)for(r=0;r<t.soundTracks.length;r++)for(let n=0;n<t.soundTracks[r].soundCollection.length;n++){const o=t.soundTracks[r].soundCollection[n];o.useCustomAttenuation&&o.updateDistanceFromListener()}}}}nf._CameraDirection=new P(0,0,-1),S4._SceneComponentInitialization=a=>{let e=a._getComponent(jt.NAME_AUDIO);e||(e=new nf(a),a._addComponent(e))};const gW="MSFT_audio_emitter";class f1e{constructor(e){this.name=gW,this._loader=e,this.enabled=this._loader.isExtensionUsed(gW)}dispose(){this._loader=null,this._clips=null,this._emitters=null}onLoading(){const e=this._loader.gltf.extensions;if(e&&e[this.name]){const t=e[this.name];this._clips=t.clips,this._emitters=t.emitters,gs.Assign(this._clips),gs.Assign(this._emitters)}}loadSceneAsync(e,t){return Rs.LoadExtensionAsync(e,t,this.name,(i,s)=>{const r=new Array;r.push(this._loader.loadSceneAsync(e,t));for(const n of s.emitters){const o=gs.Get(`${i}/emitters`,this._emitters,n);if(o.refDistance!=null||o.maxDistance!=null||o.rolloffFactor!=null||o.distanceModel!=null||o.innerAngle!=null||o.outerAngle!=null)throw new Error(`${i}: Direction or Distance properties are not allowed on emitters attached to a scene`);r.push(this._loadEmitterAsync(`${i}/emitters/${o.index}`,o))}return Promise.all(r).then(()=>{})})}loadNodeAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{const n=new Array;return this._loader.loadNodeAsync(s,t,o=>{for(const l of r.emitters){const c=gs.Get(`${s}/emitters`,this._emitters,l);n.push(this._loadEmitterAsync(`${s}/emitters/${c.index}`,c).then(()=>{for(const u of c._babylonSounds)u.attachToMesh(o),(c.innerAngle!=null||c.outerAngle!=null)&&(u.setLocalDirectionToMesh(P.Forward()),u.setDirectionalCone(2*Le.ToDegrees(c.innerAngle==null?Math.PI:c.innerAngle),2*Le.ToDegrees(c.outerAngle==null?Math.PI:c.outerAngle),0))}))}i(o)}).then(o=>Promise.all(n).then(()=>o))})}loadAnimationAsync(e,t){return Rs.LoadExtensionAsync(e,t,this.name,(i,s)=>this._loader.loadAnimationAsync(e,t).then(r=>{const n=new Array;gs.Assign(s.events);for(const o of s.events)n.push(this._loadAnimationEventAsync(`${i}/events/${o.index}`,e,t,o,r));return Promise.all(n).then(()=>r)}))}_loadClipAsync(e,t){if(t._objectURL)return t._objectURL;let i;if(t.uri)i=this._loader.loadUriAsync(e,t,t.uri);else{const s=gs.Get(`${e}/bufferView`,this._loader.gltf.bufferViews,t.bufferView);i=this._loader.loadBufferViewAsync(`/bufferViews/${s.index}`,s)}return t._objectURL=i.then(s=>URL.createObjectURL(new Blob([s],{type:t.mimeType}))),t._objectURL}_loadEmitterAsync(e,t){if(t._babylonSounds=t._babylonSounds||[],!t._babylonData){const i=new Array,s=t.name||`emitter${t.index}`,r={loop:!1,autoplay:!1,volume:t.volume==null?1:t.volume};for(let o=0;o<t.clips.length;o++){const l=`/extensions/${this.name}/clips`,c=gs.Get(l,this._clips,t.clips[o].clip);i.push(this._loadClipAsync(`${l}/${t.clips[o].clip}`,c).then(u=>{const f=t._babylonSounds[o]=new S4(s,u,this._loader.babylonScene,null,r);f.refDistance=t.refDistance||1,f.maxDistance=t.maxDistance||256,f.rolloffFactor=t.rolloffFactor||1,f.distanceModel=t.distanceModel||"exponential"}))}const n=Promise.all(i).then(()=>{const o=t.clips.map(c=>c.weight||1),l=new l1e(t.loop||!1,t._babylonSounds,o);t.innerAngle&&(l.directionalConeInnerAngle=2*Le.ToDegrees(t.innerAngle)),t.outerAngle&&(l.directionalConeOuterAngle=2*Le.ToDegrees(t.outerAngle)),t.volume&&(l.volume=t.volume),t._babylonData.sound=l});t._babylonData={loaded:n}}return t._babylonData.loaded}_getEventAction(e,t,i,s,r){switch(i){case"play":return n=>{const o=(r||0)+(n-s);t.play(o)};case"stop":return()=>{t.stop()};case"pause":return()=>{t.pause()};default:throw new Error(`${e}: Unsupported action ${i}`)}}_loadAnimationEventAsync(e,t,i,s,r){if(r.targetedAnimations.length==0)return Promise.resolve();const n=r.targetedAnimations[0],o=s.emitter,l=gs.Get(`/extensions/${this.name}/emitters`,this._emitters,o);return this._loadEmitterAsync(e,l).then(()=>{const c=l._babylonData.sound;if(c){const u=new mW(s.time,this._getEventAction(e,c,s.action,s.time,s.startOffset));n.animation.addEvent(u),r.onAnimationGroupEndObservable.add(()=>{c.stop()}),r.onAnimationGroupPauseObservable.add(()=>{c.pause()})}})}}ln(gW),_n(gW,!0,a=>new f1e(a));const Gw="MSFT_lod";class p1e{constructor(e){var t;this.name=Gw,this.order=100,this.maxLODsToLoad=10,this.onNodeLODsLoadedObservable=new xe,this.onMaterialLODsLoadedObservable=new xe,this._bufferLODs=new Array,this._nodeIndexLOD=null,this._nodeSignalLODs=new Array,this._nodePromiseLODs=new Array,this._nodeBufferLODs=new Array,this._materialIndexLOD=null,this._materialSignalLODs=new Array,this._materialPromiseLODs=new Array,this._materialBufferLODs=new Array,this._loader=e,this.maxLODsToLoad=((t=this._loader.parent.extensionOptions[Gw])==null?void 0:t.maxLODsToLoad)??this.maxLODsToLoad,this.enabled=this._loader.isExtensionUsed(Gw)}dispose(){this._loader=null,this._nodeIndexLOD=null,this._nodeSignalLODs.length=0,this._nodePromiseLODs.length=0,this._nodeBufferLODs.length=0,this._materialIndexLOD=null,this._materialSignalLODs.length=0,this._materialPromiseLODs.length=0,this._materialBufferLODs.length=0,this.onMaterialLODsLoadedObservable.clear(),this.onNodeLODsLoadedObservable.clear()}onReady(){for(let e=0;e<this._nodePromiseLODs.length;e++){const t=Promise.all(this._nodePromiseLODs[e]).then(()=>{e!==0&&(this._loader.endPerformanceCounter(`Node LOD ${e}`),this._loader.log(`Loaded node LOD ${e}`)),this.onNodeLODsLoadedObservable.notifyObservers(e),e!==this._nodePromiseLODs.length-1&&(this._loader.startPerformanceCounter(`Node LOD ${e+1}`),this._loadBufferLOD(this._nodeBufferLODs,e+1),this._nodeSignalLODs[e]&&this._nodeSignalLODs[e].resolve())});this._loader._completePromises.push(t)}for(let e=0;e<this._materialPromiseLODs.length;e++){const t=Promise.all(this._materialPromiseLODs[e]).then(()=>{e!==0&&(this._loader.endPerformanceCounter(`Material LOD ${e}`),this._loader.log(`Loaded material LOD ${e}`)),this.onMaterialLODsLoadedObservable.notifyObservers(e),e!==this._materialPromiseLODs.length-1&&(this._loader.startPerformanceCounter(`Material LOD ${e+1}`),this._loadBufferLOD(this._materialBufferLODs,e+1),this._materialSignalLODs[e]&&this._materialSignalLODs[e].resolve())});this._loader._completePromises.push(t)}}loadSceneAsync(e,t){const i=this._loader.loadSceneAsync(e,t);return this._loadBufferLOD(this._bufferLODs,0),i}loadNodeAsync(e,t,i){return Rs.LoadExtensionAsync(e,t,this.name,(s,r)=>{let n;const o=this._getLODs(s,t,this._loader.gltf.nodes,r.ids);this._loader.logOpen(`${s}`);for(let l=0;l<o.length;l++){const c=o[l];l!==0&&(this._nodeIndexLOD=l,this._nodeSignalLODs[l]=this._nodeSignalLODs[l]||new Q9);const u=p=>{i(p),p.setEnabled(!1)},f=this._loader.loadNodeAsync(`/nodes/${c.index}`,c,u).then(p=>{if(l!==0){const m=o[l-1];m._babylonTransformNode&&(this._disposeTransformNode(m._babylonTransformNode),delete m._babylonTransformNode)}return p.setEnabled(!0),p});this._nodePromiseLODs[l]=this._nodePromiseLODs[l]||[],l===0?n=f:(this._nodeIndexLOD=null,this._nodePromiseLODs[l].push(f))}return this._loader.logClose(),n})}_loadMaterialAsync(e,t,i,s,r){return this._nodeIndexLOD?null:Rs.LoadExtensionAsync(e,t,this.name,(n,o)=>{let l;const c=this._getLODs(n,t,this._loader.gltf.materials,o.ids);this._loader.logOpen(`${n}`);for(let u=0;u<c.length;u++){const f=c[u];u!==0&&(this._materialIndexLOD=u);const p=this._loader._loadMaterialAsync(`/materials/${f.index}`,f,i,s,m=>{u===0&&r(m)}).then(m=>{if(u!==0){r(m);const _=c[u-1]._data;_[s]&&(this._disposeMaterials([_[s].babylonMaterial]),delete _[s])}return m});this._materialPromiseLODs[u]=this._materialPromiseLODs[u]||[],u===0?l=p:(this._materialIndexLOD=null,this._materialPromiseLODs[u].push(p))}return this._loader.logClose(),l})}_loadUriAsync(e,t,i){if(this._nodeIndexLOD!==null){this._loader.log("deferred");const s=this._nodeIndexLOD-1;return this._nodeSignalLODs[s]=this._nodeSignalLODs[s]||new Q9,this._nodeSignalLODs[this._nodeIndexLOD-1].promise.then(()=>this._loader.loadUriAsync(e,t,i))}else if(this._materialIndexLOD!==null){this._loader.log("deferred");const s=this._materialIndexLOD-1;return this._materialSignalLODs[s]=this._materialSignalLODs[s]||new Q9,this._materialSignalLODs[s].promise.then(()=>this._loader.loadUriAsync(e,t,i))}return null}loadBufferAsync(e,t,i,s){if(this._loader.parent.useRangeRequests&&!t.uri){if(!this._loader.bin)throw new Error(`${e}: Uri is missing or the binary glTF is missing its binary chunk`);const r=(n,o)=>{const l=i,c=l+s-1;let u=n[o];return u?(u.start=Math.min(u.start,l),u.end=Math.max(u.end,c)):(u={start:l,end:c,loaded:new Q9},n[o]=u),u.loaded.promise.then(f=>new Uint8Array(f.buffer,f.byteOffset+i-u.start,s))};return this._loader.log("deferred"),this._nodeIndexLOD!==null?r(this._nodeBufferLODs,this._nodeIndexLOD):this._materialIndexLOD!==null?r(this._materialBufferLODs,this._materialIndexLOD):r(this._bufferLODs,0)}return null}_loadBufferLOD(e,t){const i=e[t];i&&(this._loader.log(`Loading buffer range [${i.start}-${i.end}]`),this._loader.bin.readAsync(i.start,i.end-i.start+1).then(s=>{i.loaded.resolve(s)},s=>{i.loaded.reject(s)}))}_getLODs(e,t,i,s){if(this.maxLODsToLoad<=0)throw new Error("maxLODsToLoad must be greater than zero");const r=[];for(let n=s.length-1;n>=0;n--)if(r.push(gs.Get(`${e}/ids/${s[n]}`,i,s[n])),r.length===this.maxLODsToLoad)return r;return r.push(t),r}_disposeTransformNode(e){const t=[],i=e.material;i&&t.push(i);for(const r of e.getChildMeshes())r.material&&t.push(r.material);e.dispose();const s=t.filter(r=>this._loader.babylonScene.meshes.every(n=>n.material!=r));this._disposeMaterials(s)}_disposeMaterials(e){const t={};for(const i of e){for(const s of i.getActiveTextures())t[s.uniqueId]=s;i.dispose()}for(const i in t)for(const s of this._loader.babylonScene.materials)s.hasTexture(t[i])&&delete t[i];for(const i in t)t[i].dispose()}}ln(Gw),_n(Gw,!0,a=>new p1e(a));const _W="MSFT_minecraftMesh";class m1e{constructor(e){this.name=_W,this._loader=e,this.enabled=this._loader.isExtensionUsed(_W)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtraAsync(e,t,this.name,(s,r)=>{if(r){if(!(i instanceof mi))throw new Error(`${s}: Material type not supported`);const n=this._loader.loadMaterialPropertiesAsync(e,t,i);return i.needAlphaBlending()&&(i.forceDepthWrite=!0,i.separateCullingPass=!0),i.backFaceCulling=i.forceDepthWrite,i.twoSidedLighting=!0,n}return null})}}ln(_W),_n(_W,!0,a=>new m1e(a));const vW="MSFT_sRGBFactors";class g1e{constructor(e){this.name=vW,this._loader=e,this.enabled=this._loader.isExtensionUsed(vW)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,i){return Rs.LoadExtraAsync(e,t,this.name,(s,r)=>{if(r){if(!(i instanceof mi))throw new Error(`${s}: Material type not supported`);const n=this._loader.loadMaterialPropertiesAsync(e,t,i),o=i.getScene().getEngine().useExactSrgbConversions;return i.albedoTexture||i.albedoColor.toLinearSpaceToRef(i.albedoColor,o),i.reflectivityTexture||i.reflectivityColor.toLinearSpaceToRef(i.reflectivityColor,o),n}return null})}}ln(vW),_n(vW,!0,a=>new g1e(a));class Yr{constructor(e){this.value=this._toInt(e)}_toInt(e){return e|0}add(e){return new Yr(this.value+e.value)}subtract(e){return new Yr(this.value-e.value)}multiply(e){return new Yr(Math.imul(this.value,e.value))}divide(e){return new Yr(this.value/e.value)}getClassName(){return Yr.ClassName}equals(e){return this.value===e.value}static FromValue(e){return new Yr(e)}toString(){return this.value.toString()}}Yr.ClassName="FlowGraphInteger",ve("FlowGraphInteger",Yr);class X1{constructor(e=[1,0,0,1]){this._m=e}get m(){return this._m}transformVector(e){return this.transformVectorToRef(e,new Ue)}transformVectorToRef(e,t){return t.x=e.x*this._m[0]+e.y*this._m[1],t.y=e.x*this._m[2]+e.y*this._m[3],t}asArray(){return this.toArray()}toArray(e=[]){for(let t=0;t<4;t++)e[t]=this._m[t];return e}fromArray(e){for(let t=0;t<4;t++)this._m[t]=e[t];return this}multiplyToRef(e,t){const i=e._m,s=this._m,r=t._m;return r[0]=i[0]*s[0]+i[1]*s[2],r[1]=i[0]*s[1]+i[1]*s[3],r[2]=i[2]*s[0]+i[3]*s[2],r[3]=i[2]*s[1]+i[3]*s[3],t}multiply(e){return this.multiplyToRef(e,new X1)}divideToRef(e,t){const i=this._m,s=e._m,r=t._m;return r[0]=i[0]/s[0],r[1]=i[1]/s[1],r[2]=i[2]/s[2],r[3]=i[3]/s[3],t}divide(e){return this.divideToRef(e,new X1)}addToRef(e,t){const i=this._m,s=e.m,r=t.m;return r[0]=i[0]+s[0],r[1]=i[1]+s[1],r[2]=i[2]+s[2],r[3]=i[3]+s[3],t}add(e){return this.addToRef(e,new X1)}subtractToRef(e,t){const i=this._m,s=e.m,r=t.m;return r[0]=i[0]-s[0],r[1]=i[1]-s[1],r[2]=i[2]-s[2],r[3]=i[3]-s[3],t}subtract(e){return this.subtractToRef(e,new X1)}transpose(){const e=this._m;return new X1([e[0],e[2],e[1],e[3]])}determinant(){const e=this._m;return e[0]*e[3]-e[1]*e[2]}inverse(){const e=this.determinant();if(e===0)throw new Error("Matrix is not invertible");const t=this._m,i=1/e;return new X1([t[3]*i,-t[1]*i,-t[2]*i,t[0]*i])}equals(e,t=0){const i=this._m,s=e.m;return t===0?i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]&&i[3]===s[3]:Math.abs(i[0]-s[0])<t&&Math.abs(i[1]-s[1])<t&&Math.abs(i[2]-s[2])<t&&Math.abs(i[3]-s[3])<t}getClassName(){return"FlowGraphMatrix2D"}toString(){return`FlowGraphMatrix2D(${this._m.join(", ")})`}}class Z1{constructor(e=[1,0,0,0,1,0,0,0,1]){this._m=e}get m(){return this._m}transformVector(e){return this.transformVectorToRef(e,new P)}transformVectorToRef(e,t){const i=this._m;return t.x=e.x*i[0]+e.y*i[1]+e.z*i[2],t.y=e.x*i[3]+e.y*i[4]+e.z*i[5],t.z=e.x*i[6]+e.y*i[7]+e.z*i[8],t}multiplyToRef(e,t){const i=e._m,s=this._m,r=t.m;return r[0]=i[0]*s[0]+i[1]*s[3]+i[2]*s[6],r[1]=i[0]*s[1]+i[1]*s[4]+i[2]*s[7],r[2]=i[0]*s[2]+i[1]*s[5]+i[2]*s[8],r[3]=i[3]*s[0]+i[4]*s[3]+i[5]*s[6],r[4]=i[3]*s[1]+i[4]*s[4]+i[5]*s[7],r[5]=i[3]*s[2]+i[4]*s[5]+i[5]*s[8],r[6]=i[6]*s[0]+i[7]*s[3]+i[8]*s[6],r[7]=i[6]*s[1]+i[7]*s[4]+i[8]*s[7],r[8]=i[6]*s[2]+i[7]*s[5]+i[8]*s[8],t}multiply(e){return this.multiplyToRef(e,new Z1)}divideToRef(e,t){const i=this._m,s=e.m,r=t.m;return r[0]=i[0]/s[0],r[1]=i[1]/s[1],r[2]=i[2]/s[2],r[3]=i[3]/s[3],r[4]=i[4]/s[4],r[5]=i[5]/s[5],r[6]=i[6]/s[6],r[7]=i[7]/s[7],r[8]=i[8]/s[8],t}divide(e){return this.divideToRef(e,new Z1)}addToRef(e,t){const i=this._m,s=e.m,r=t.m;return r[0]=i[0]+s[0],r[1]=i[1]+s[1],r[2]=i[2]+s[2],r[3]=i[3]+s[3],r[4]=i[4]+s[4],r[5]=i[5]+s[5],r[6]=i[6]+s[6],r[7]=i[7]+s[7],r[8]=i[8]+s[8],t}add(e){return this.addToRef(e,new Z1)}subtractToRef(e,t){const i=this._m,s=e.m,r=t.m;return r[0]=i[0]-s[0],r[1]=i[1]-s[1],r[2]=i[2]-s[2],r[3]=i[3]-s[3],r[4]=i[4]-s[4],r[5]=i[5]-s[5],r[6]=i[6]-s[6],r[7]=i[7]-s[7],r[8]=i[8]-s[8],t}subtract(e){return this.subtractToRef(e,new Z1)}toArray(e=[]){for(let t=0;t<9;t++)e[t]=this._m[t];return e}asArray(){return this.toArray()}fromArray(e){for(let t=0;t<9;t++)this._m[t]=e[t];return this}transpose(){const e=this._m;return new Z1([e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8]])}determinant(){const e=this._m;return e[0]*(e[4]*e[8]-e[5]*e[7])-e[1]*(e[3]*e[8]-e[5]*e[6])+e[2]*(e[3]*e[7]-e[4]*e[6])}inverse(){const e=this.determinant();if(e===0)throw new Error("Matrix is not invertible");const t=this._m,i=1/e;return new Z1([(t[4]*t[8]-t[5]*t[7])*i,(t[2]*t[7]-t[1]*t[8])*i,(t[1]*t[5]-t[2]*t[4])*i,(t[5]*t[6]-t[3]*t[8])*i,(t[0]*t[8]-t[2]*t[6])*i,(t[2]*t[3]-t[0]*t[5])*i,(t[3]*t[7]-t[4]*t[6])*i,(t[1]*t[6]-t[0]*t[7])*i,(t[0]*t[4]-t[1]*t[3])*i])}equals(e,t=0){const i=this._m,s=e.m;return t===0?i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]&&i[3]===s[3]&&i[4]===s[4]&&i[5]===s[5]&&i[6]===s[6]&&i[7]===s[7]&&i[8]===s[8]:Math.abs(i[0]-s[0])<t&&Math.abs(i[1]-s[1])<t&&Math.abs(i[2]-s[2])<t&&Math.abs(i[3]-s[3])<t&&Math.abs(i[4]-s[4])<t&&Math.abs(i[5]-s[5])<t&&Math.abs(i[6]-s[6])<t&&Math.abs(i[7]-s[7])<t&&Math.abs(i[8]-s[8])<t}getClassName(){return"FlowGraphMatrix3D"}toString(){return`FlowGraphMatrix3D(${this._m.join(", ")})`}}var IK;(function(a){a.Any="any",a.String="string",a.Number="number",a.Boolean="boolean",a.Object="object",a.Integer="FlowGraphInteger",a.Vector2="Vector2",a.Vector3="Vector3",a.Vector4="Vector4",a.Quaternion="Quaternion",a.Matrix="Matrix",a.Matrix2D="Matrix2D",a.Matrix3D="Matrix3D",a.Color3="Color3",a.Color4="Color4"})(IK||(IK={}));class af{constructor(e,t,i=-1){this.typeName=e,this.defaultValue=t,this.animationType=i}serialize(e){e.typeName=this.typeName,e.defaultValue=this.defaultValue}}const ii=new af("any",void 0),AW=new af("string",""),ds=new af("number",0,0),ju=new af("boolean",!1),nb=new af("Vector2",Ue.Zero(),5),ou=new af("Vector3",P.Zero(),1),Ww=new af("Vector4",Yt.Zero()),Iy=new af("Matrix",me.Identity(),3),Hw=new af("Matrix2D",new X1),Yw=new af("Matrix3D",new Z1),CW=new af("Color3",Pe.Black(),4),xW=new af("Color4",new St(0,0,0,0),7),oL=new af("Quaternion",Re.Identity(),2);oL.typeTransformer=a=>a.getClassName&&a.getClassName()==="Vector4"?Re.FromArray(a.asArray()):a.getClassName&&a.getClassName()==="Vector3"?Re.FromEulerVector(a):a.getClassName&&a.getClassName()==="Matrix"?Re.FromRotationMatrix(a):a;const Dl=new af("FlowGraphInteger",new Yr(0),0);function _1e(a){const e=a;switch(typeof a){case"string":return AW;case"number":return ds;case"boolean":return ju;case"object":if(e.getClassName)switch(e.getClassName()){case"Vector2":return nb;case"Vector3":return ou;case"Vector4":return Ww;case"Matrix":return Iy;case"Color3":return CW;case"Color4":return xW;case"Quaternion":return oL;case"FlowGraphInteger":return Dl;case"Matrix2D":return Hw;case"Matrix3D":return Yw}return ii;default:return ii}}function vn(a){switch(a){case"string":return AW;case"number":return ds;case"boolean":return ju;case"Vector2":return nb;case"Vector3":return ou;case"Vector4":return Ww;case"Matrix":return Iy;case"Color3":return CW;case"Color4":return xW;case"Quaternion":return oL;case"FlowGraphInteger":return Dl;case"Matrix2D":return Hw;case"Matrix3D":return Yw;default:return ii}}function v1e(a){switch(a){case"number":return 0;case"Vector2":return 5;case"Vector3":return 1;case"Matrix":return 3;case"Color3":return 4;case"Color4":return 7;case"Quaternion":return 2;default:return 0}}function A1e(a){switch(a){case 0:return ds;case 5:return nb;case 1:return ou;case 3:return Iy;case 4:return CW;case 7:return xW;case 2:return oL;default:return ii}}function QRe(a){return a==="Mesh"||a==="AbstractMesh"||a==="GroundMesh"||a==="InstanceMesh"||a==="LinesMesh"||a==="GoldbergMesh"||a==="GreasedLineMesh"||a==="TrailMesh"}function C1e(a){return a==="Vector2"||a==="Vector3"||a==="Vector4"||a==="Quaternion"||a==="Color3"||a==="Color4"}function JRe(a){return a==="Matrix"||a==="Matrix2D"||a==="Matrix3D"}function $Re(a){return a==="AnimationGroup"}function eDe(a,e,t=!1){if(a==="Vector2")return Ue.FromArray(e);if(a==="Vector3")return t&&(e[2]*=-1),P.FromArray(e);if(a==="Vector4")return Yt.FromArray(e);if(a==="Quaternion")return t&&(e[2]*=-1,e[3]*=-1),Re.FromArray(e);if(a==="Color3")return new Pe(e[0],e[1],e[2]);if(a==="Color4")return new St(e[0],e[1],e[2],e[3]);throw new Error(`Unknown vector class name ${a}`)}function bW(a,e,t){var s;const i=((s=e==null?void 0:e.getClassName)==null?void 0:s.call(e))??"";if(C1e(i)||JRe(i))t[a]={value:e.asArray(),className:i};else if(i==="FlowGraphInteger")t[a]={value:e.value,className:i};else if(i&&(e.id||e.name))t[a]={id:e.id,name:e.name,className:i};else if(typeof e!="object")t[a]=e;else throw new Error(`Could not serialize value ${e}`)}function Xw(a,e,t,i){const s=e[a];let r;const n=(s==null?void 0:s.type)??(s==null?void 0:s.className);if(QRe(n)){let o=i.meshes.filter(l=>s.id?l.id===s.id:l.name===s.name);o.length===0&&(o=i.transformNodes.filter(l=>s.id?l.id===s.id:l.name===s.name)),r=s.uniqueId?o.find(l=>l.uniqueId===s.uniqueId):o[0]}else if(C1e(n))r=eDe(n,s.value);else if($Re(n)){const o=i.animationGroups.filter(l=>l.name===s.name);r=o.length===1?o[0]:o.find(l=>l.uniqueId===s.uniqueId)}else n==="Matrix"?r=me.FromArray(s.value):n==="Matrix2D"?r=new X1(s.value):n==="Matrix3D"?r=new Z1(s.value):n==="FlowGraphInteger"?r=Yr.FromValue(s.value):n==="number"||n==="string"||n==="boolean"?r=s.value[0]:s&&s.value!==void 0?r=s.value:Array.isArray(s)?r=s.reduce((o,l)=>(l.eventData&&(o[l.id]={type:vn(l.type)},typeof l.value<"u"&&(o[l.id].value=Xw("value",l,t,i))),o),{}):r=s;return r}function tDe(a){return a==="FlowGraphJsonPointerParserBlock"}var PK;(function(a){a.Animation="Animation",a.AnimationGroup="AnimationGroup",a.Mesh="Mesh",a.Material="Material",a.Camera="Camera",a.Light="Light"})(PK||(PK={}));function OK(a,e,t,i){switch(e){case"Animation":return i?a.animations.find(s=>s.uniqueId===t)??null:a.animations[t]??null;case"AnimationGroup":return i?a.animationGroups.find(s=>s.uniqueId===t)??null:a.animationGroups[t]??null;case"Mesh":return i?a.meshes.find(s=>s.uniqueId===t)??null:a.meshes[t]??null;case"Material":return i?a.materials.find(s=>s.uniqueId===t)??null:a.materials[t]??null;case"Camera":return i?a.cameras.find(s=>s.uniqueId===t)??null:a.cameras[t]??null;case"Light":return i?a.lights.find(s=>s.uniqueId===t)??null:a.lights[t]??null;default:return null}}var RK;(function(a){a.ExecuteBlock="ExecuteBlock",a.ExecuteEvent="ExecuteEvent",a.TriggerConnection="TriggerConnection",a.ContextVariableSet="ContextVariableSet",a.GlobalVariableSet="GlobalVariableSet",a.GlobalVariableDelete="GlobalVariableDelete",a.GlobalVariableGet="GlobalVariableGet",a.AddConnection="AddConnection",a.GetConnectionValue="GetConnectionValue",a.SetConnectionValue="SetConnectionValue",a.ActivateSignal="ActivateSignal",a.ContextVariableGet="ContextVariableGet"})(RK||(RK={}));class x1e{constructor(){this.logToConsole=!1,this.log=[]}addLogItem(e){var t;if(e.time||(e.time=Date.now()),this.log.push(e),this.logToConsole){const i=(t=e.payload)==null?void 0:t.value;typeof i=="object"&&i.getClassName?de.Log(`[FGLog] ${e.className}:${e.uniqueId.split("-")[0]} ${e.action} - ${JSON.stringify(i.getClassName())}: ${i.toString()}`):de.Log(`[FGLog] ${e.className}:${e.uniqueId.split("-")[0]} ${e.action} - ${JSON.stringify(e.payload)}`)}}getItemsOfType(e){return this.log.filter(t=>t.action===e)}}class DK{get enableLogging(){return this._enableLogging}set enableLogging(e){this._enableLogging!==e&&(this._enableLogging=e,this._enableLogging?(this.logger=new x1e,this.logger.logToConsole=!0):this.logger=null)}constructor(e){this.uniqueId=e3(),this._userVariables={},this._executionVariables={},this._globalContextVariables={},this._connectionValues={},this._pendingBlocks=[],this._executionId=0,this.onNodeExecutedObservable=new xe,this.treatDataAsRightHanded=!1,this._enableLogging=!1,this._configuration=e,this.assetsContext=e.assetsContext??e.scene}hasVariable(e){return e in this._userVariables}setVariable(e,t){var i;this._userVariables[e]=t,(i=this.logger)==null||i.addLogItem({time:Date.now(),className:this.getClassName(),uniqueId:this.uniqueId,action:"ContextVariableSet",payload:{name:e,value:t}})}getAsset(e,t){return OK(this.assetsContext,e,t)}getVariable(e){var t;return(t=this.logger)==null||t.addLogItem({time:Date.now(),className:this.getClassName(),uniqueId:this.uniqueId,action:"ContextVariableGet",payload:{name:e,value:this._userVariables[e]}}),this._userVariables[e]}get userVariables(){return this._userVariables}getScene(){return this._configuration.scene}_getUniqueIdPrefixedName(e,t){return`${e.uniqueId}_${t}`}_getGlobalContextVariable(e,t){var i;return(i=this.logger)==null||i.addLogItem({time:Date.now(),className:this.getClassName(),uniqueId:this.uniqueId,action:"GlobalVariableGet",payload:{name:e,defaultValue:t,possibleValue:this._globalContextVariables[e]}}),this._hasGlobalContextVariable(e)?this._globalContextVariables[e]:t}_setGlobalContextVariable(e,t){var i;(i=this.logger)==null||i.addLogItem({time:Date.now(),className:this.getClassName(),uniqueId:this.uniqueId,action:"GlobalVariableSet",payload:{name:e,value:t}}),this._globalContextVariables[e]=t}_deleteGlobalContextVariable(e){var t;(t=this.logger)==null||t.addLogItem({time:Date.now(),className:this.getClassName(),uniqueId:this.uniqueId,action:"GlobalVariableDelete",payload:{name:e}}),delete this._globalContextVariables[e]}_hasGlobalContextVariable(e){return e in this._globalContextVariables}_setExecutionVariable(e,t,i){this._executionVariables[this._getUniqueIdPrefixedName(e,t)]=i}_getExecutionVariable(e,t,i){return this._hasExecutionVariable(e,t)?this._executionVariables[this._getUniqueIdPrefixedName(e,t)]:i}_deleteExecutionVariable(e,t){delete this._executionVariables[this._getUniqueIdPrefixedName(e,t)]}_hasExecutionVariable(e,t){return this._getUniqueIdPrefixedName(e,t)in this._executionVariables}_hasConnectionValue(e){return e.uniqueId in this._connectionValues}_setConnectionValue(e,t){var i;this._connectionValues[e.uniqueId]=t,(i=this.logger)==null||i.addLogItem({time:Date.now(),className:this.getClassName(),uniqueId:this.uniqueId,action:"SetConnectionValue",payload:{connectionPointId:e.uniqueId,value:t}})}_setConnectionValueByKey(e,t){this._connectionValues[e]=t}_getConnectionValue(e){var t;return(t=this.logger)==null||t.addLogItem({time:Date.now(),className:this.getClassName(),uniqueId:this.uniqueId,action:"GetConnectionValue",payload:{connectionPointId:e.uniqueId,value:this._connectionValues[e.uniqueId]}}),this._connectionValues[e.uniqueId]}get configuration(){return this._configuration}get hasPendingBlocks(){return this._pendingBlocks.length>0}_addPendingBlock(e){this._pendingBlocks.includes(e)||(this._pendingBlocks.push(e),this._pendingBlocks.sort((t,i)=>t.priority-i.priority))}_removePendingBlock(e){const t=this._pendingBlocks.indexOf(e);t!==-1&&this._pendingBlocks.splice(t,1)}_clearPendingBlocks(){for(const e of this._pendingBlocks)e._cancelPendingTasks(this);this._pendingBlocks.length=0}_notifyExecuteNode(e){var t;this.onNodeExecutedObservable.notifyObservers(e),(t=this.logger)==null||t.addLogItem({time:Date.now(),className:e.getClassName(),uniqueId:e.uniqueId,action:"ExecuteBlock"})}_notifyOnTick(e){var t;this._setGlobalContextVariable("timeSinceStart",e.timeSinceStart),this._setGlobalContextVariable("deltaTime",e.deltaTime);for(const i of this._pendingBlocks)(t=i._executeOnTick)==null||t.call(i,this)}_increaseExecutionId(){this._executionId++}get executionId(){return this._executionId}serialize(e={},t=bW){var i;e.uniqueId=this.uniqueId,e._userVariables={};for(const s in this._userVariables)t(s,this._userVariables[s],e._userVariables);e._connectionValues={};for(const s in this._connectionValues)t(s,this._connectionValues[s],e._connectionValues);this.assetsContext!==this.getScene()&&(e._assetsContext={meshes:this.assetsContext.meshes.map(s=>s.id),materials:this.assetsContext.materials.map(s=>s.id),textures:this.assetsContext.textures.map(s=>s.name),animations:this.assetsContext.animations.map(s=>s.name),lights:this.assetsContext.lights.map(s=>s.id),cameras:this.assetsContext.cameras.map(s=>s.id),sounds:(i=this.assetsContext.sounds)==null?void 0:i.map(s=>s.name),skeletons:this.assetsContext.skeletons.map(s=>s.id),particleSystems:this.assetsContext.particleSystems.map(s=>s.name),geometries:this.assetsContext.geometries.map(s=>s.id),multiMaterials:this.assetsContext.multiMaterials.map(s=>s.id),transformNodes:this.assetsContext.transformNodes.map(s=>s.id)})}getClassName(){return"FlowGraphContext"}}F([G()],DK.prototype,"uniqueId",void 0);var NK;(function(a){a[a.Input=0]="Input",a[a.Output=1]="Output"})(NK||(NK={}));class wK{constructor(e,t,i){this._ownerBlock=i,this._connectedPoint=[],this.uniqueId=e3(),this.connectedPointIds=[],this.name=e,this._connectionType=t}get connectionType(){return this._connectionType}_isSingularConnection(){return!0}isConnected(){return this._connectedPoint.length>0}connectTo(e){if(this._connectionType===e._connectionType)throw new Error(`Cannot connect two points of type ${this.connectionType}`);if(this._isSingularConnection()&&this._connectedPoint.length>0||e._isSingularConnection()&&e._connectedPoint.length>0)throw new Error("Max number of connections for point reached");this._connectedPoint.push(e),e._connectedPoint.push(this)}disconnectFrom(e,t=!0){const i=this._connectedPoint.indexOf(e),s=e._connectedPoint.indexOf(this);i===-1||s===-1||(t&&this._connectedPoint.splice(i,1),e._connectedPoint.splice(s,1))}disconnectFromAll(){for(const e of this._connectedPoint)this.disconnectFrom(e,!1);this._connectedPoint.length=0}dispose(){for(const e of this._connectedPoint)this.disconnectFrom(e)}serialize(e={}){e.uniqueId=this.uniqueId,e.name=this.name,e._connectionType=this._connectionType,e.connectedPointIds=[],e.className=this.getClassName();for(const t of this._connectedPoint)e.connectedPointIds.push(t.uniqueId)}getClassName(){return"FGConnection"}deserialize(e){this.uniqueId=e.uniqueId,this.name=e.name,this._connectionType=e._connectionType,this.connectedPointIds=e.connectedPointIds}}class SW extends wK{constructor(e,t,i,s,r=s.defaultValue,n=!1){super(e,t,i),this.richType=s,this._defaultValue=r,this._optional=n,this._isDisabled=!1,this._lastValue=null,this.dataTransformer=null,this.onValueChangedObservable=new xe}get optional(){return this._optional}get isDisabled(){return this._isDisabled}set isDisabled(e){this._isDisabled!==e&&(this._isDisabled=e,this._isDisabled&&this.disconnectFromAll())}_isSingularConnection(){return this.connectionType===0}setValue(e,t){t._getConnectionValue(this)!==e&&(t._setConnectionValue(this,e),this.onValueChangedObservable.notifyObservers(e))}resetToDefaultValue(e){e._setConnectionValue(this,this._defaultValue)}connectTo(e){this._isDisabled||super.connectTo(e)}_getValueOrDefault(e){const t=e._getConnectionValue(this)??this._defaultValue;return this.dataTransformer?this.dataTransformer(t):t}getValue(e){if(this.connectionType===1){e._notifyExecuteNode(this._ownerBlock),this._ownerBlock._updateOutputs(e);const i=this._getValueOrDefault(e);return this._lastValue=i,this.richType.typeTransformer?this.richType.typeTransformer(i):i}const t=this.isConnected()?this._connectedPoint[0].getValue(e):this._getValueOrDefault(e);return this._lastValue=t,this.richType.typeTransformer?this.richType.typeTransformer(t):t}_getLastValue(){return this._lastValue}getClassName(){return"FlowGraphDataConnection"}serialize(e={}){super.serialize(e),e.richType={},this.richType.serialize(e.richType),e.optional=this._optional,bW("defaultValue",this._defaultValue,e)}}ve("FlowGraphDataConnection",SW);class Vu{constructor(e){var t;this.config=e,this.uniqueId=e3(),this.name=((t=this.config)==null?void 0:t.name)??this.getClassName(),this.dataInputs=[],this.dataOutputs=[]}_updateOutputs(e){}registerDataInput(e,t,i){const s=new SW(e,0,this,t,i);return this.dataInputs.push(s),s}registerDataOutput(e,t,i){const s=new SW(e,1,this,t,i);return this.dataOutputs.push(s),s}getDataInput(e){return this.dataInputs.find(t=>t.name===e)}getDataOutput(e){return this.dataOutputs.find(t=>t.name===e)}serialize(e={},t=bW){if(e.uniqueId=this.uniqueId,e.config={},this.config){const i=this.config;Object.keys(this.config).forEach(s=>{t(s,i[s],e.config)})}e.dataInputs=[],e.dataOutputs=[],e.className=this.getClassName();for(const i of this.dataInputs){const s={};i.serialize(s),e.dataInputs.push(s)}for(const i of this.dataOutputs){const s={};i.serialize(s),e.dataOutputs.push(s)}}deserialize(e){}_log(e,t,i){var s;(s=e.logger)==null||s.addLogItem({action:t,payload:i,className:this.getClassName(),uniqueId:this.uniqueId})}getClassName(){return"FlowGraphBlock"}}class yW extends wK{constructor(){super(...arguments),this.priority=0}_isSingularConnection(){return!1}connectTo(e){super.connectTo(e),this._connectedPoint.sort((t,i)=>i.priority-t.priority)}_activateSignal(e){var t;if((t=e.logger)==null||t.addLogItem({action:"ActivateSignal",className:this._ownerBlock.getClassName(),uniqueId:this._ownerBlock.uniqueId,payload:{connectionType:this.connectionType,name:this.name}}),this.connectionType===0)e._notifyExecuteNode(this._ownerBlock),this._ownerBlock._execute(e,this),e._increaseExecutionId();else for(const i of this._connectedPoint)i._activateSignal(e)}}ve("FlowGraphSignalConnection",yW);class ab extends Vu{constructor(e){super(e),this.priority=0,this.signalInputs=[],this.signalOutputs=[],this.in=this._registerSignalInput("in"),this.error=this._registerSignalOutput("error")}_registerSignalInput(e){const t=new yW(e,0,this);return this.signalInputs.push(t),t}_registerSignalOutput(e){const t=new yW(e,1,this);return this.signalOutputs.push(t),t}_unregisterSignalInput(e){const t=this.signalInputs.findIndex(i=>i.name===e);t!==-1&&(this.signalInputs[t].dispose(),this.signalInputs.splice(t,1))}_unregisterSignalOutput(e){const t=this.signalOutputs.findIndex(i=>i.name===e);t!==-1&&(this.signalOutputs[t].dispose(),this.signalOutputs.splice(t,1))}_reportError(e,t){this.error.payload=typeof t=="string"?new Error(t):t,this.error._activateSignal(e)}getSignalInput(e){return this.signalInputs.find(t=>t.name===e)}getSignalOutput(e){return this.signalOutputs.find(t=>t.name===e)}serialize(e={}){super.serialize(e),e.signalInputs=[],e.signalOutputs=[];for(const t of this.signalInputs){const i={};t.serialize(i),e.signalInputs.push(i)}for(const t of this.signalOutputs){const i={};t.serialize(i),e.signalOutputs.push(i)}}deserialize(e){for(let t=0;t<e.signalInputs.length;t++){const i=this.getSignalInput(e.signalInputs[t].name);if(i)i.deserialize(e.signalInputs[t]);else throw new Error("Could not find signal input with name "+e.signalInputs[t].name+" in block "+e.className)}for(let t=0;t<e.signalOutputs.length;t++){const i=this.getSignalOutput(e.signalOutputs[t].name);if(i)i.deserialize(e.signalOutputs[t]);else throw new Error("Could not find signal output with name "+e.signalOutputs[t].name+" in block "+e.className)}}getClassName(){return"FlowGraphExecutionBlock"}}class iDe{constructor(e){this.onEventTriggeredObservable=new xe,this.sceneReadyTriggered=!1,this._pointerUnderMeshState={},this._startingTime=0,this._scene=e,this._initialize()}_initialize(){this._sceneReadyObserver=this._scene.onReadyObservable.add(()=>{this.sceneReadyTriggered||(this.onEventTriggeredObservable.notifyObservers({type:"SceneReady"}),this.sceneReadyTriggered=!0)}),this._sceneDisposeObserver=this._scene.onDisposeObservable.add(()=>{this.onEventTriggeredObservable.notifyObservers({type:"SceneDispose"})}),this._sceneOnBeforeRenderObserver=this._scene.onBeforeRenderObservable.add(()=>{const e=this._scene.getEngine().getDeltaTime()/1e3;this.onEventTriggeredObservable.notifyObservers({type:"SceneBeforeRender",payload:{timeSinceStart:this._startingTime,deltaTime:e}}),this._startingTime+=e}),this._meshPickedObserver=this._scene.onPointerObservable.add(e=>{this.onEventTriggeredObservable.notifyObservers({type:"MeshPick",payload:e})},Xt.POINTERPICK),this._meshUnderPointerObserver=this._scene.onMeshUnderPointerUpdatedObservable.add(e=>{const t=e.pointerId,i=e.mesh,s=this._pointerUnderMeshState[t];!s&&i?this.onEventTriggeredObservable.notifyObservers({type:"PointerOver",payload:{pointerId:t,mesh:i}}):s&&!i?this.onEventTriggeredObservable.notifyObservers({type:"PointerOut",payload:{pointerId:t,mesh:s}}):s&&i&&s!==i&&(this.onEventTriggeredObservable.notifyObservers({type:"PointerOut",payload:{pointerId:t,mesh:s,over:i}}),this.onEventTriggeredObservable.notifyObservers({type:"PointerOver",payload:{pointerId:t,mesh:i,out:s}})),this._pointerUnderMeshState[t]=i},Xt.POINTERMOVE)}dispose(){var e,t,i,s,r;(e=this._sceneDisposeObserver)==null||e.remove(),(t=this._sceneReadyObserver)==null||t.remove(),(i=this._sceneOnBeforeRenderObserver)==null||i.remove(),(s=this._meshPickedObserver)==null||s.remove(),(r=this._meshUnderPointerObserver)==null||r.remove(),this.onEventTriggeredObservable.clear()}}function lL(a,e){return!!(a.parent&&(a.parent===e||lL(a.parent,e)))}function K1(a){if(a.getClassName)return a.getClassName()}function Zw(a,e){return a===e&&(a==="Vector2"||a==="Vector3"||a==="Vector4")}function Kw(a,e){return a===e&&(a==="Matrix"||a==="Matrix2D"||a==="Matrix3D")}function qw(a,e){return a==="FlowGraphInteger"&&e==="FlowGraphInteger"}function DP(a,e){const t=typeof a=="number"||typeof(a==null?void 0:a.value)=="number";return t&&!isNaN(b0(a))}function b0(a){return typeof a=="number"?a:a.value}var BK;(function(a){a[a.Stopped=0]="Stopped",a[a.Started=1]="Started"})(BK||(BK={}));class b1e{get state(){return this._state}set state(e){this._state=e,this.onStateChangedObservable.notifyObservers(e)}constructor(e){this.onStateChangedObservable=new xe,this._eventBlocks={SceneReady:[],SceneDispose:[],SceneBeforeRender:[],MeshPick:[],PointerDown:[],PointerUp:[],PointerMove:[],PointerOver:[],PointerOut:[],SceneAfterRender:[],NoTrigger:[]},this._executionContexts=[],this._state=0,this._scene=e.scene,this._sceneEventCoordinator=new iDe(this._scene),this._coordinator=e.coordinator,this._eventObserver=this._sceneEventCoordinator.onEventTriggeredObservable.add(t=>{for(const i of this._executionContexts){const s=this._getContextualOrder(t.type,i);for(const r of s)if(!r._executeEvent(i,t.payload))break}switch(t.type){case"SceneReady":this._sceneEventCoordinator.sceneReadyTriggered=!0;break;case"SceneBeforeRender":for(const i of this._executionContexts)i._notifyOnTick(t.payload);break;case"SceneDispose":this.dispose();break}})}createContext(){const e=new DK({scene:this._scene,coordinator:this._coordinator});return this._executionContexts.push(e),e}getContext(e){return this._executionContexts[e]}addEventBlock(e){if((e.type==="PointerOver"||e.type==="PointerOut")&&(this._scene.constantlyUpdateMeshUnderPointer=!0),e.type!=="NoTrigger"&&this._eventBlocks[e.type].push(e),this.state===1)for(const t of this._executionContexts)e._startPendingTasks(t);else this.onStateChangedObservable.addOnce(t=>{if(t===1)for(const i of this._executionContexts)e._startPendingTasks(i)})}start(){this.state!==1&&(this._executionContexts.length===0&&this.createContext(),this.onStateChangedObservable.add(e=>{e===1&&(this._startPendingEvents(),this._scene.isReady(!0)&&this._sceneEventCoordinator.onEventTriggeredObservable.notifyObservers({type:"SceneReady"}))}),this.state=1)}_startPendingEvents(){for(const e of this._executionContexts)for(const t in this._eventBlocks){const i=this._getContextualOrder(t,e);for(const s of i)s._startPendingTasks(e)}}_getContextualOrder(e,t){const i=this._eventBlocks[e].sort((s,r)=>r.initPriority-s.initPriority);if(e==="MeshPick"){const s=[];for(const r of i){const n=r.asset.getValue(t);let o=0;for(;o<i.length;o++){const c=i[o].asset.getValue(t);if(n&&c&&lL(n,c))break}s.splice(o,0,r)}return s}return i}dispose(){var e;if(this.state!==0){this.state=0;for(const t of this._executionContexts)t._clearPendingBlocks();this._executionContexts.length=0;for(const t in this._eventBlocks)this._eventBlocks[t].length=0;(e=this._eventObserver)==null||e.remove(),this._sceneEventCoordinator.dispose()}}visitAllBlocks(e){const t=[],i=new Set;for(const s in this._eventBlocks)for(const r of this._eventBlocks[s])t.push(r),i.add(r.uniqueId);for(;t.length>0;){const s=t.pop();e(s);for(const r of s.dataInputs)for(const n of r._connectedPoint)i.has(n._ownerBlock.uniqueId)||(t.push(n._ownerBlock),i.add(n._ownerBlock.uniqueId));if(s instanceof ab)for(const r of s.signalOutputs)for(const n of r._connectedPoint)i.has(n._ownerBlock.uniqueId)||(t.push(n._ownerBlock),i.add(n._ownerBlock.uniqueId))}}serialize(e={},t){e.allBlocks=[],this.visitAllBlocks(i=>{const s={};i.serialize(s),e.allBlocks.push(s)}),e.executionContexts=[];for(const i of this._executionContexts){const s={};i.serialize(s,t),e.executionContexts.push(s)}}}class y4{constructor(e){this.config=e,this.dispatchEventsSynchronously=!0,this._flowGraphs=[],this._customEventsMap=new Map,this._eventExecutionCounter=new Map,this._executeOnNextFrame=[],this._disposeObserver=this.config.scene.onDisposeObservable.add(()=>{this.dispose()}),this._onBeforeRenderObserver=this.config.scene.onBeforeRenderObservable.add(()=>{this._eventExecutionCounter.clear(),this._executeOnNextFrame.length&&(this._executeOnNextFrame.forEach(i=>{this.notifyCustomEvent(i.id,i.data,!1)}),this._executeOnNextFrame.length=0)}),(y4.SceneCoordinators.get(this.config.scene)??[]).push(this)}createGraph(){const e=new b1e({scene:this.config.scene,coordinator:this});return this._flowGraphs.push(e),e}removeGraph(e){const t=this._flowGraphs.indexOf(e);t!==-1&&(e.dispose(),this._flowGraphs.splice(t,1))}start(){this._flowGraphs.forEach(e=>e.start())}dispose(){var i,s;this._flowGraphs.forEach(r=>r.dispose()),this._flowGraphs.length=0,(i=this._disposeObserver)==null||i.remove(),(s=this._onBeforeRenderObserver)==null||s.remove();const e=y4.SceneCoordinators.get(this.config.scene)??[],t=e.indexOf(this);t!==-1&&e.splice(t,1)}serialize(e,t){e._flowGraphs=[],this._flowGraphs.forEach(i=>{const s={};i.serialize(s,t),e._flowGraphs.push(s)}),e.dispatchEventsSynchronously=this.dispatchEventsSynchronously}get flowGraphs(){return this._flowGraphs}getCustomEventObservable(e){let t=this._customEventsMap.get(e);return t||(t=new xe,this._customEventsMap.set(e,t)),t}notifyCustomEvent(e,t,i=!this.dispatchEventsSynchronously){if(i){this._executeOnNextFrame.push({id:e,data:t});return}if(this._eventExecutionCounter.has(e)){const r=this._eventExecutionCounter.get(e);if(this._eventExecutionCounter.set(e,r+1),r>=y4.MaxEventTypeExecutionPerFrame){r===y4.MaxEventTypeExecutionPerFrame&&de.Warn(`FlowGraphCoordinator: Too many executions of event "${e}".`);return}}else this._eventExecutionCounter.set(e,1);const s=this._customEventsMap.get(e);s&&s.notifyObservers(t)}}y4.MaxEventsPerType=30,y4.MaxEventTypeExecutionPerFrame=30,y4.SceneCoordinators=new Map;const zK={};function S1e(a,e,t){zK[`${a}/${e}`]=t}function FK(a){switch(a){case"FlowGraphPlayAnimationBlock":return async()=>(await Promise.resolve().then(()=>tze)).FlowGraphPlayAnimationBlock;case"FlowGraphStopAnimationBlock":return async()=>(await Promise.resolve().then(()=>ize)).FlowGraphStopAnimationBlock;case"FlowGraphPauseAnimationBlock":return async()=>(await Promise.resolve().then(()=>sze)).FlowGraphPauseAnimationBlock;case"FlowGraphInterpolationBlock":return async()=>(await Promise.resolve().then(()=>rze)).FlowGraphInterpolationBlock;case"FlowGraphSceneReadyEventBlock":return async()=>(await Promise.resolve().then(()=>Ize)).FlowGraphSceneReadyEventBlock;case"FlowGraphSceneTickEventBlock":return async()=>(await Promise.resolve().then(()=>Rze)).FlowGraphSceneTickEventBlock;case"FlowGraphSendCustomEventBlock":return async()=>(await Promise.resolve().then(()=>Oze)).FlowGraphSendCustomEventBlock;case"FlowGraphReceiveCustomEventBlock":return async()=>(await Promise.resolve().then(()=>Pze)).FlowGraphReceiveCustomEventBlock;case"FlowGraphMeshPickEventBlock":return async()=>(await Promise.resolve().then(()=>Lze)).FlowGraphMeshPickEventBlock;case"FlowGraphEBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphEBlock;case"FlowGraphPIBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphPiBlock;case"FlowGraphInfBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphInfBlock;case"FlowGraphNaNBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphNaNBlock;case"FlowGraphRandomBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphRandomBlock;case"FlowGraphAddBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphAddBlock;case"FlowGraphSubtractBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphSubtractBlock;case"FlowGraphMultiplyBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphMultiplyBlock;case"FlowGraphDivideBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphDivideBlock;case"FlowGraphAbsBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphAbsBlock;case"FlowGraphSignBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphSignBlock;case"FlowGraphTruncBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphTruncBlock;case"FlowGraphFloorBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphFloorBlock;case"FlowGraphCeilBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphCeilBlock;case"FlowGraphRoundBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphRoundBlock;case"FlowGraphFractBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphFractionBlock;case"FlowGraphNegationBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphNegationBlock;case"FlowGraphModuloBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphModuloBlock;case"FlowGraphMinBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphMinBlock;case"FlowGraphMaxBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphMaxBlock;case"FlowGraphClampBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphClampBlock;case"FlowGraphSaturateBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphSaturateBlock;case"FlowGraphMathInterpolationBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphMathInterpolationBlock;case"FlowGraphEqualityBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphEqualityBlock;case"FlowGraphLessThanBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphLessThanBlock;case"FlowGraphLessThanOrEqualBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphLessThanOrEqualBlock;case"FlowGraphGreaterThanBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphGreaterThanBlock;case"FlowGraphGreaterThanOrEqualBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphGreaterThanOrEqualBlock;case"FlowGraphIsNaNBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphIsNanBlock;case"FlowGraphIsInfBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphIsInfinityBlock;case"FlowGraphDegToRadBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphDegToRadBlock;case"FlowGraphRadToDegBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphRadToDegBlock;case"FlowGraphSinBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphSinBlock;case"FlowGraphCosBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphCosBlock;case"FlowGraphTanBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphTanBlock;case"FlowGraphASinBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphAsinBlock;case"FlowGraphACosBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphAcosBlock;case"FlowGraphATanBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphAtanBlock;case"FlowGraphATan2Block":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphAtan2Block;case"FlowGraphSinhBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphSinhBlock;case"FlowGraphCoshBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphCoshBlock;case"FlowGraphTanhBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphTanhBlock;case"FlowGraphASinhBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphAsinhBlock;case"FlowGraphACoshBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphAcoshBlock;case"FlowGraphATanhBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphAtanhBlock;case"FlowGraphExponentialBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphExpBlock;case"FlowGraphLogBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphLogBlock;case"FlowGraphLog2Block":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphLog2Block;case"FlowGraphLog10Block":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphLog10Block;case"FlowGraphSquareRootBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphSquareRootBlock;case"FlowGraphPowerBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphPowerBlock;case"FlowGraphCubeRootBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphCubeRootBlock;case"FlowGraphBitwiseAndBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphBitwiseAndBlock;case"FlowGraphBitwiseOrBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphBitwiseOrBlock;case"FlowGraphBitwiseNotBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphBitwiseNotBlock;case"FlowGraphBitwiseXorBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphBitwiseXorBlock;case"FlowGraphBitwiseLeftShiftBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphBitwiseLeftShiftBlock;case"FlowGraphBitwiseRightShiftBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphBitwiseRightShiftBlock;case"FlowGraphLengthBlock":return async()=>(await Promise.resolve().then(()=>i9)).FlowGraphLengthBlock;case"FlowGraphNormalizeBlock":return async()=>(await Promise.resolve().then(()=>i9)).FlowGraphNormalizeBlock;case"FlowGraphDotBlock":return async()=>(await Promise.resolve().then(()=>i9)).FlowGraphDotBlock;case"FlowGraphCrossBlock":return async()=>(await Promise.resolve().then(()=>i9)).FlowGraphCrossBlock;case"FlowGraphRotate2DBlock":return async()=>(await Promise.resolve().then(()=>i9)).FlowGraphRotate2DBlock;case"FlowGraphRotate3DBlock":return async()=>(await Promise.resolve().then(()=>i9)).FlowGraphRotate3DBlock;case"FlowGraphTransposeBlock":return async()=>(await Promise.resolve().then(()=>tO)).FlowGraphTransposeBlock;case"FlowGraphDeterminantBlock":return async()=>(await Promise.resolve().then(()=>tO)).FlowGraphDeterminantBlock;case"FlowGraphInvertMatrixBlock":return async()=>(await Promise.resolve().then(()=>tO)).FlowGraphInvertMatrixBlock;case"FlowGraphMatrixMultiplicationBlock":return async()=>(await Promise.resolve().then(()=>tO)).FlowGraphMatrixMultiplicationBlock;case"FlowGraphBranchBlock":return async()=>(await Promise.resolve().then(()=>jBe)).FlowGraphBranchBlock;case"FlowGraphSetDelayBlock":return async()=>(await Promise.resolve().then(()=>$Be)).FlowGraphSetDelayBlock;case"FlowGraphCancelDelayBlock":return async()=>(await Promise.resolve().then(()=>eze)).FlowGraphCancelDelayBlock;case"FlowGraphCallCounterBlock":return async()=>(await Promise.resolve().then(()=>ZBe)).FlowGraphCallCounterBlock;case"FlowGraphDebounceBlock":return async()=>(await Promise.resolve().then(()=>qBe)).FlowGraphDebounceBlock;case"FlowGraphThrottleBlock":return async()=>(await Promise.resolve().then(()=>WBe)).FlowGraphThrottleBlock;case"FlowGraphDoNBlock":return async()=>(await Promise.resolve().then(()=>VBe)).FlowGraphDoNBlock;case"FlowGraphFlipFlopBlock":return async()=>(await Promise.resolve().then(()=>QBe)).FlowGraphFlipFlopBlock;case"FlowGraphForLoopBlock":return async()=>(await Promise.resolve().then(()=>GBe)).FlowGraphForLoopBlock;case"FlowGraphMultiGateBlock":return async()=>(await Promise.resolve().then(()=>HBe)).FlowGraphMultiGateBlock;case"FlowGraphSequenceBlock":return async()=>(await Promise.resolve().then(()=>JBe)).FlowGraphSequenceBlock;case"FlowGraphSwitchBlock":return async()=>(await Promise.resolve().then(()=>YBe)).FlowGraphSwitchBlock;case"FlowGraphWaitAllBlock":return async()=>(await Promise.resolve().then(()=>XBe)).FlowGraphWaitAllBlock;case"FlowGraphWhileLoopBlock":return async()=>(await Promise.resolve().then(()=>KBe)).FlowGraphWhileLoopBlock;case"FlowGraphConsoleLogBlock":return async()=>(await Promise.resolve().then(()=>UBe)).FlowGraphConsoleLogBlock;case"FlowGraphConditionalBlock":return async()=>(await Promise.resolve().then(()=>lze)).FlowGraphConditionalDataBlock;case"FlowGraphConstantBlock":return async()=>(await Promise.resolve().then(()=>pze)).FlowGraphConstantBlock;case"FlowGraphTransformCoordinatesSystemBlock":return async()=>(await Promise.resolve().then(()=>hze)).FlowGraphTransformCoordinatesSystemBlock;case"FlowGraphGetAssetBlock":return async()=>(await Promise.resolve().then(()=>mze)).FlowGraphGetAssetBlock;case"FlowGraphGetPropertyBlock":return async()=>(await Promise.resolve().then(()=>dze)).FlowGraphGetPropertyBlock;case"FlowGraphSetPropertyBlock":return async()=>(await Promise.resolve().then(()=>fze)).FlowGraphSetPropertyBlock;case"FlowGraphGetVariableBlock":return async()=>(await Promise.resolve().then(()=>cze)).FlowGraphGetVariableBlock;case"FlowGraphSetVariableBlock":return async()=>(await Promise.resolve().then(()=>uze)).FlowGraphSetVariableBlock;case"FlowGraphJsonPointerParserBlock":return async()=>(await Promise.resolve().then(()=>bze)).FlowGraphJsonPointerParserBlock;case"FlowGraphLeadingZerosBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphLeadingZerosBlock;case"FlowGraphTrailingZerosBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphTrailingZerosBlock;case"FlowGraphOneBitsCounterBlock":return async()=>(await Promise.resolve().then(()=>Fs)).FlowGraphOneBitsCounterBlock;case"FlowGraphCombineVector2Block":return async()=>(await Promise.resolve().then(()=>t9)).FlowGraphCombineVector2Block;case"FlowGraphCombineVector3Block":return async()=>(await Promise.resolve().then(()=>t9)).FlowGraphCombineVector3Block;case"FlowGraphCombineVector4Block":return async()=>(await Promise.resolve().then(()=>t9)).FlowGraphCombineVector4Block;case"FlowGraphCombineMatrixBlock":return async()=>(await Promise.resolve().then(()=>t9)).FlowGraphCombineMatrixBlock;case"FlowGraphExtractVector2Block":return async()=>(await Promise.resolve().then(()=>t9)).FlowGraphExtractVector2Block;case"FlowGraphExtractVector3Block":return async()=>(await Promise.resolve().then(()=>t9)).FlowGraphExtractVector3Block;case"FlowGraphExtractVector4Block":return async()=>(await Promise.resolve().then(()=>t9)).FlowGraphExtractVector4Block;case"FlowGraphExtractMatrixBlock":return async()=>(await Promise.resolve().then(()=>t9)).FlowGraphExtractMatrixBlock;case"FlowGraphTransformVectorBlock":return async()=>(await Promise.resolve().then(()=>i9)).FlowGraphTransformBlock;case"FlowGraphTransformCoordinatesBlock":return async()=>(await Promise.resolve().then(()=>i9)).FlowGraphTransformCoordinatesBlock;case"FlowGraphMatrixDecompose":return async()=>(await Promise.resolve().then(()=>tO)).FlowGraphMatrixDecomposeBlock;case"FlowGraphMatrixCompose":return async()=>(await Promise.resolve().then(()=>tO)).FlowGraphMatrixComposeBlock;case"FlowGraphBooleanToFloat":return async()=>(await Promise.resolve().then(()=>iO)).FlowGraphBooleanToFloat;case"FlowGraphBooleanToInt":return async()=>(await Promise.resolve().then(()=>iO)).FlowGraphBooleanToInt;case"FlowGraphFloatToBoolean":return async()=>(await Promise.resolve().then(()=>iO)).FlowGraphFloatToBoolean;case"FlowGraphIntToBoolean":return async()=>(await Promise.resolve().then(()=>iO)).FlowGraphIntToBoolean;case"FlowGraphIntToFloat":return async()=>(await Promise.resolve().then(()=>iO)).FlowGraphIntToFloat;case"FlowGraphFloatToInt":return async()=>(await Promise.resolve().then(()=>iO)).FlowGraphFloatToInt;case"FlowGraphEasingBlock":return async()=>(await Promise.resolve().then(()=>aze)).FlowGraphEasingBlock;case"FlowGraphBezierCurveEasing":return async()=>(await Promise.resolve().then(()=>oze)).FlowGraphBezierCurveEasingBlock;case"FlowGraphPointerOverEventBlock":return async()=>(await Promise.resolve().then(()=>Nze)).FlowGraphPointerOverEventBlock;case"FlowGraphPointerOutEventBlock":return async()=>(await Promise.resolve().then(()=>Dze)).FlowGraphPointerOutEventBlock;case"FlowGraphContextBlock":return async()=>(await Promise.resolve().then(()=>Sze)).FlowGraphContextBlock;case"FlowGraphArrayIndexBlock":return async()=>(await Promise.resolve().then(()=>yze)).FlowGraphArrayIndexBlock;case"FlowGraphCodeExecutionBlock":return async()=>(await Promise.resolve().then(()=>Mze)).FlowGraphCodeExecutionBlock;case"FlowGraphIndexOfBlock":return async()=>(await Promise.resolve().then(()=>Eze)).FlowGraphIndexOfBlock;case"FlowGraphFunctionReference":return async()=>(await Promise.resolve().then(()=>Tze)).FlowGraphFunctionReferenceBlock;case"FlowGraphDataSwitchBlock":return async()=>(await Promise.resolve().then(()=>gze)).FlowGraphDataSwitchBlock;default:if(zK[a])return zK[a];throw new Error(`Unknown block name ${a}`)}}class o3 extends ab{constructor(e){super(e),this.out=this._registerSignalOutput("out")}}class MW extends o3{constructor(e,t){super(e),this._eventsSignalOutputs={},this.done=this._registerSignalOutput("done"),t==null||t.forEach(i=>{this._eventsSignalOutputs[i]=this._registerSignalOutput(i+"Event")})}_executeOnTick(e){}_startPendingTasks(e){e._getExecutionVariable(this,"_initialized",!1)&&(this._cancelPendingTasks(e),this._resetAfterCanceled(e)),this._preparePendingTasks(e),e._addPendingBlock(this),this.out._activateSignal(e),e._setExecutionVariable(this,"_initialized",!0)}_resetAfterCanceled(e){e._deleteExecutionVariable(this,"_initialized"),e._removePendingBlock(this)}}class VT extends MW{constructor(){super(...arguments),this.initPriority=0,this.type="NoTrigger"}_execute(e){e._notifyExecuteNode(this),this.done._activateSignal(e)}}function y1e(a,e){for(const t of a)for(const i of t.dataOutputs)if(i.uniqueId===e)return i;throw new Error("Could not find data out connection with unique id "+e)}function M1e(a,e){for(const t of a)if(t instanceof ab){for(const i of t.signalInputs)if(i.uniqueId===e)return i}throw new Error("Could not find signal in connection with unique id "+e)}async function sDe(a,e){var s;const t=e.valueParseFunction??Xw,i=new y4({scene:e.scene});if(a.dispatchEventsSynchronously&&(i.dispatchEventsSynchronously=a.dispatchEventsSynchronously),await e.scene.whenReadyAsync(),a._defaultValues)for(const r in a._defaultValues){const n=a._defaultValues[r];vn(r).defaultValue=n}return await Promise.all((s=a._flowGraphs)==null?void 0:s.map(r=>kK(r,{coordinator:i,valueParseFunction:t,pathConverter:e.pathConverter}))),i}async function kK(a,e){const t=await Promise.all(a.allBlocks.map(async i=>FK(i.className)()));return E1e(a,e,t)}function E1e(a,e,t){const i=e.coordinator.createGraph(),s=[],r=e.valueParseFunction??Xw;for(let n=0;n<a.allBlocks.length;n++){const o=a.allBlocks[n],l=UK(o,{scene:e.coordinator.config.scene,pathConverter:e.pathConverter,assetsContainer:e.coordinator.config.scene,valueParseFunction:r},t[n]);s.push(l),l instanceof VT&&i.addEventBlock(l)}for(const n of s){for(const o of n.dataInputs)for(const l of o.connectedPointIds){const c=y1e(s,l);o.connectTo(c)}if(n instanceof ab)for(const o of n.signalOutputs)for(const l of o.connectedPointIds){const c=M1e(s,l);o.connectTo(c)}}for(const n of a.executionContexts)T1e(n,{graph:i,valueParseFunction:r},a.rightHanded);return i}function T1e(a,e,t){var n,o,l,c,u,f,p,m,_,d;const i=e.graph.createContext();a.enableLogging&&(i.enableLogging=!0),i.treatDataAsRightHanded=t||!1;const s=e.valueParseFunction??Xw;i.uniqueId=a.uniqueId;const r=i.getScene();if(a._assetsContext){const h=a._assetsContext,x={meshes:(n=h.meshes)==null?void 0:n.map(A=>r.getMeshById(A)),lights:(o=h.lights)==null?void 0:o.map(A=>r.getLightByName(A)),cameras:(l=h.cameras)==null?void 0:l.map(A=>r.getCameraByName(A)),materials:(c=h.materials)==null?void 0:c.map(A=>r.getMaterialById(A)),textures:(u=h.textures)==null?void 0:u.map(A=>r.getTextureByName(A)),animations:(f=h.animations)==null?void 0:f.map(A=>r.animations.find(S=>S.name===A)),skeletons:(p=h.skeletons)==null?void 0:p.map(A=>r.getSkeletonByName(A)),particleSystems:(m=h.particleSystems)==null?void 0:m.map(A=>r.getParticleSystemById(A)),animationGroups:(_=h.animationGroups)==null?void 0:_.map(A=>r.getAnimationGroupByName(A)),transformNodes:(d=h.transformNodes)==null?void 0:d.map(A=>r.getTransformNodeById(A)),rootNodes:[],multiMaterials:[],morphTargetManagers:[],geometries:[],actionManagers:[],environmentTexture:null,postProcesses:[],sounds:null,effectLayers:[],layers:[],reflectionProbes:[],lensFlareSystems:[],proceduralTextures:[],getNodes:function(){throw new Error("Function not implemented.")}};i.assetsContext=x}for(const h in a._userVariables){const x=s(h,a._userVariables,i.assetsContext,r);i.userVariables[h]=x}for(const h in a._connectionValues){const x=s(h,a._connectionValues,i.assetsContext,r);i._setConnectionValueByKey(h,x)}return i}async function rDe(a,e){const i=await FK(a.className)();return UK(a,e,i)}function UK(a,e,t){const i={},s=e.valueParseFunction??Xw;if(a.config)for(const n in a.config)i[n]=s(n,a.config,e.assetsContainer||e.scene,e.scene);if(tDe(a.className)){if(!e.pathConverter)throw new Error("Path converter is required for this block");i.pathConverter=e.pathConverter}const r=new t(i);r.uniqueId=a.uniqueId;for(let n=0;n<a.dataInputs.length;n++){const o=r.getDataInput(a.dataInputs[n].name);if(o)o.deserialize(a.dataInputs[n]);else throw new Error("Could not find data input with name "+a.dataInputs[n].name+" in block "+a.className)}for(let n=0;n<a.dataOutputs.length;n++){const o=r.getDataOutput(a.dataOutputs[n].name);if(o)o.deserialize(a.dataOutputs[n]);else throw new Error("Could not find data output with name "+a.dataOutputs[n].name+" in block "+a.className)}return r.metadata=a.metadata,r.deserialize&&r.deserialize(a),r}function nDe(a={},e,t){const i=new t(a.name,a._connectionType,e);return i.deserialize(a),i}function aDe(a,e,t){const i=oDe(a.richType),s=a.defaultValue,r=new t(a.name,a._connectionType,e,i,s,!!a._optional);return r.deserialize(a),r}function oDe(a){return new af(a.typeName,a.defaultValue)}function jK(a){const[e,t]=a.split(":");return VK({op:e,extension:t})}function VK(a,e=!0){var i;const t=a.extension?(i=TW[a.extension])==null?void 0:i[a.op]:L1e[a.op];if(!t&&(de.Warn(`No mapping found for operation ${a.op} and extension ${a.extension||"KHR_interactivity"}`),e)){const s={},r={flows:{}};if(a.inputValueSockets){s.values={};for(const n in a.inputValueSockets)s.values[n]={name:n}}return a.outputValueSockets&&(r.values={},Object.keys(a.outputValueSockets).forEach(n=>{r.values[n]={name:n}})),{blocks:[],inputs:s,outputs:r}}return t}function EW(a,e,t){TW[e]||(TW[e]={}),TW[e][a]=t}const TW={BABYLON:{"flow/log":{blocks:["FlowGraphConsoleLogBlock"],inputs:{values:{message:{name:"message"}}}}}},L1e={"event/onStart":{blocks:["FlowGraphSceneReadyEventBlock"],outputs:{flows:{out:{name:"done"}}}},"event/onTick":{blocks:["FlowGraphSceneTickEventBlock"],inputs:{},outputs:{values:{timeSinceLastTick:{name:"deltaTime",gltfType:"number"}},flows:{out:{name:"done"}}}},"event/send":{blocks:["FlowGraphSendCustomEventBlock"],outputs:{flows:{out:{name:"done"}}},extraProcessor(a,e,t,i,s){if(e.op!=="event/send"||!a.configuration||Object.keys(a.configuration).length!==1)throw new Error("Receive event should have a single configuration object, the event itself");const n=a.configuration.event.value[0];if(typeof n!="number")throw new Error("Event id should be a number");const o=i.arrays.events[n],l=s[0];return l.config||(l.config={}),l.config.eventId=o.eventId,l.config.eventData=o.eventData,s}},"event/receive":{blocks:["FlowGraphReceiveCustomEventBlock"],outputs:{flows:{out:{name:"done"}}},validation(a,e){var r;if(!a.configuration)return de.Error("Receive event should have a configuration object"),!1;const t=a.configuration.event;if(!t)return de.Error("Receive event should have a single configuration object, the event itself"),!1;const i=t.value[0];return typeof i!="number"?(de.Error("Event id should be a number"),!1):((r=e.events)==null?void 0:r[i])?!0:(de.Error(`Event with id ${i} not found`),!1)},extraProcessor(a,e,t,i,s){if(e.op!=="event/receive"||!a.configuration||Object.keys(a.configuration).length!==1)throw new Error("Receive event should have a single configuration object, the event itself");const n=a.configuration.event.value[0];if(typeof n!="number")throw new Error("Event id should be a number");const o=i.arrays.events[n],l=s[0];return l.config||(l.config={}),l.config.eventId=o.eventId,l.config.eventData=o.eventData,s}},"math/e":Ts("FlowGraphEBlock"),"math/pi":Ts("FlowGraphPIBlock"),"math/inf":Ts("FlowGraphInfBlock"),"math/nan":Ts("FlowGraphNaNBlock"),"math/abs":Ts("FlowGraphAbsBlock"),"math/sign":Ts("FlowGraphSignBlock"),"math/trunc":Ts("FlowGraphTruncBlock"),"math/floor":Ts("FlowGraphFloorBlock"),"math/ceil":Ts("FlowGraphCeilBlock"),"math/round":{blocks:["FlowGraphRoundBlock"],configuration:{},inputs:{values:{a:{name:"a"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(a,e,t,i,s){return s[0].config=s[0].config||{},s[0].config.roundHalfAwayFromZero=!0,s}},"math/fract":Ts("FlowGraphFractBlock"),"math/neg":Ts("FlowGraphNegationBlock"),"math/add":Ts("FlowGraphAddBlock",["a","b"],!0),"math/sub":Ts("FlowGraphSubtractBlock",["a","b"],!0),"math/mul":{blocks:["FlowGraphMultiplyBlock"],extraProcessor(a,e,t,i,s){s[0].config=s[0].config||{},s[0].config.useMatrixPerComponent=!0;let r=-1;return Object.keys(a.values||{}).find(n=>{var o;return((o=a.values)==null?void 0:o[n].type)!==void 0?(r=a.values[n].type,!0):!1}),r!==-1&&(s[0].config.type=i.arrays.types[r].flowGraphType),s}},"math/div":Ts("FlowGraphDivideBlock",["a","b"],!0),"math/rem":Ts("FlowGraphModuloBlock",["a","b"]),"math/min":Ts("FlowGraphMinBlock",["a","b"]),"math/max":Ts("FlowGraphMaxBlock",["a","b"]),"math/clamp":Ts("FlowGraphClampBlock",["a","b","c"]),"math/saturate":Ts("FlowGraphSaturateBlock"),"math/mix":Ts("FlowGraphMathInterpolationBlock",["a","b","c"]),"math/eq":Ts("FlowGraphEqualityBlock",["a","b"]),"math/lt":Ts("FlowGraphLessThanBlock",["a","b"]),"math/le":Ts("FlowGraphLessThanOrEqualBlock",["a","b"]),"math/gt":Ts("FlowGraphGreaterThanBlock",["a","b"]),"math/ge":Ts("FlowGraphGreaterThanOrEqualBlock",["a","b"]),"math/isnan":Ts("FlowGraphIsNaNBlock"),"math/isinf":Ts("FlowGraphIsInfBlock"),"math/select":{blocks:["FlowGraphConditionalBlock"],inputs:{values:{condition:{name:"condition"},a:{name:"onTrue"},b:{name:"onFalse"}}},outputs:{values:{value:{name:"output"}}}},"math/random":{blocks:["FlowGraphRandomBlock"],outputs:{values:{value:{name:"value"}}}},"math/sin":Ts("FlowGraphSinBlock"),"math/cos":Ts("FlowGraphCosBlock"),"math/tan":Ts("FlowGraphTanBlock"),"math/asin":Ts("FlowGraphASinBlock"),"math/acos":Ts("FlowGraphACosBlock"),"math/atan":Ts("FlowGraphATanBlock"),"math/atan2":Ts("FlowGraphATan2Block",["a","b"]),"math/sinh":Ts("FlowGraphSinhBlock"),"math/cosh":Ts("FlowGraphCoshBlock"),"math/tanh":Ts("FlowGraphTanhBlock"),"math/asinh":Ts("FlowGraphASinhBlock"),"math/acosh":Ts("FlowGraphACoshBlock"),"math/atanh":Ts("FlowGraphATanhBlock"),"math/exp":Ts("FlowGraphExponentialBlock"),"math/log":Ts("FlowGraphLogBlock"),"math/log2":Ts("FlowGraphLog2Block"),"math/log10":Ts("FlowGraphLog10Block"),"math/sqrt":Ts("FlowGraphSquareRootBlock"),"math/cbrt":Ts("FlowGraphCubeRootBlock"),"math/pow":Ts("FlowGraphPowerBlock",["a","b"]),"math/length":Ts("FlowGraphLengthBlock"),"math/normalize":Ts("FlowGraphNormalizeBlock"),"math/dot":Ts("FlowGraphDotBlock",["a","b"]),"math/cross":Ts("FlowGraphCrossBlock",["a","b"]),"math/rotate2d":Ts("FlowGraphRotate2DBlock",["a","b"]),"math/rotate3d":Ts("FlowGraphRotate3DBlock",["a","b","c"]),"math/transform":{blocks:["FlowGraphTransformVectorBlock"],inputs:{values:{a:{name:"a"},b:{name:"b"}}},outputs:{values:{value:{name:"value"}}}},"math/combine2":{blocks:["FlowGraphCombineVector2Block"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/combine3":{blocks:["FlowGraphCombineVector3Block"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/combine4":{blocks:["FlowGraphCombineVector4Block"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"},d:{name:"input_3",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/extract2":{blocks:["FlowGraphExtractVector2Block"],inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"}}}},"math/extract3":{blocks:["FlowGraphExtractVector3Block"],inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"}}}},"math/extract4":{blocks:["FlowGraphExtractVector4Block"],inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"},3:{name:"output_3"}}}},"math/transpose":Ts("FlowGraphTransposeBlock"),"math/determinant":Ts("FlowGraphDeterminantBlock"),"math/inverse":Ts("FlowGraphInvertMatrixBlock"),"math/matmul":Ts("FlowGraphMatrixMultiplicationBlock",["a","b"]),"math/matCompose":{blocks:["FlowGraphMatrixCompose"],inputs:{values:{translation:{name:"position",gltfType:"float3"},rotation:{name:"rotationQuaternion",gltfType:"float4"},scale:{name:"scaling",gltfType:"float3"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(a,e,t,i,s,r){const n=s[0].dataInputs.find(o=>o.name==="rotationQuaternion");if(!n)throw new Error("Rotation quaternion input not found");return r._connectionValues[n.uniqueId]&&(r._connectionValues[n.uniqueId].type="Quaternion"),s}},"math/matDecompose":{blocks:["FlowGraphMatrixDecompose"],inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{translation:{name:"position"},rotation:{name:"rotationQuaternion"},scale:{name:"scaling"}}}},"math/combine2x2":{blocks:["FlowGraphCombineMatrix2DBlock"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"},d:{name:"input_3",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(a,e,t,i,s){return s[0].config=s[0].config||{},s[0].config.inputIsColumnMajor=!0,s}},"math/extract2x2":{blocks:["FlowGraphExtractMatrix2DBlock"],inputs:{values:{a:{name:"input",gltfType:"float2x2"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"},3:{name:"output_3"}}}},"math/combine3x3":{blocks:["FlowGraphCombineMatrix3DBlock"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"},d:{name:"input_3",gltfType:"number"},e:{name:"input_4",gltfType:"number"},f:{name:"input_5",gltfType:"number"},g:{name:"input_6",gltfType:"number"},h:{name:"input_7",gltfType:"number"},i:{name:"input_8",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(a,e,t,i,s){return s[0].config=s[0].config||{},s[0].config.inputIsColumnMajor=!0,s}},"math/extract3x3":{blocks:["FlowGraphExtractMatrix3DBlock"],inputs:{values:{a:{name:"input",gltfType:"float3x3"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"},3:{name:"output_3"},4:{name:"output_4"},5:{name:"output_5"},6:{name:"output_6"},7:{name:"output_7"},8:{name:"output_8"}}}},"math/combine4x4":{blocks:["FlowGraphCombineMatrixBlock"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"},d:{name:"input_3",gltfType:"number"},e:{name:"input_4",gltfType:"number"},f:{name:"input_5",gltfType:"number"},g:{name:"input_6",gltfType:"number"},h:{name:"input_7",gltfType:"number"},i:{name:"input_8",gltfType:"number"},j:{name:"input_9",gltfType:"number"},k:{name:"input_10",gltfType:"number"},l:{name:"input_11",gltfType:"number"},m:{name:"input_12",gltfType:"number"},n:{name:"input_13",gltfType:"number"},o:{name:"input_14",gltfType:"number"},p:{name:"input_15",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(a,e,t,i,s){return s[0].config=s[0].config||{},s[0].config.inputIsColumnMajor=!0,s}},"math/extract4x4":{blocks:["FlowGraphExtractMatrixBlock"],configuration:{},inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"},3:{name:"output_3"},4:{name:"output_4"},5:{name:"output_5"},6:{name:"output_6"},7:{name:"output_7"},8:{name:"output_8"},9:{name:"output_9"},10:{name:"output_10"},11:{name:"output_11"},12:{name:"output_12"},13:{name:"output_13"},14:{name:"output_14"},15:{name:"output_15"}}}},"math/compose":{blocks:["FlowGraphMatrixCompose"],configuration:{},inputs:{values:{translation:{name:"position",gltfType:"float3"},rotation:{name:"rotationQuaternion",gltfType:"float4"},scale:{name:"scaling",gltfType:"float3"}}},outputs:{values:{value:{name:"output"}}}},"math/decompose":{blocks:["FlowGraphMatrixDecompose"],configuration:{},inputs:{values:{a:{name:"input"}}},outputs:{values:{translation:{name:"position"},rotation:{name:"rotationQuaternion"},scale:{name:"scaling"}}}},"math/not":{blocks:["FlowGraphBitwiseNotBlock"],inputs:{values:{a:{name:"a"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(a,e,t,i,s,r){var o;s[0].config=s[0].config||{};const n=s[0].dataInputs[0];return s[0].config.valueType=((o=r._connectionValues[n.uniqueId])==null?void 0:o.type)??"FlowGraphInteger",s}},"math/and":{blocks:["FlowGraphBitwiseAndBlock"],inputs:{values:{a:{name:"a"},b:{name:"b"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(a,e,t,i,s,r){var l,c;s[0].config=s[0].config||{};const n=s[0].dataInputs[0],o=s[0].dataInputs[1];return s[0].config.valueType=((l=r._connectionValues[n.uniqueId])==null?void 0:l.type)??((c=r._connectionValues[o.uniqueId])==null?void 0:c.type)??"FlowGraphInteger",s}},"math/or":{blocks:["FlowGraphBitwiseOrBlock"],inputs:{values:{a:{name:"a"},b:{name:"b"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(a,e,t,i,s,r){var l,c;s[0].config=s[0].config||{};const n=s[0].dataInputs[0],o=s[0].dataInputs[1];return s[0].config.valueType=((l=r._connectionValues[n.uniqueId])==null?void 0:l.type)??((c=r._connectionValues[o.uniqueId])==null?void 0:c.type)??"FlowGraphInteger",s}},"math/xor":{blocks:["FlowGraphBitwiseXorBlock"],inputs:{values:{a:{name:"a"},b:{name:"b"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(a,e,t,i,s,r){var l,c;s[0].config=s[0].config||{};const n=s[0].dataInputs[0],o=s[0].dataInputs[1];return s[0].config.valueType=((l=r._connectionValues[n.uniqueId])==null?void 0:l.type)??((c=r._connectionValues[o.uniqueId])==null?void 0:c.type)??"FlowGraphInteger",s}},"math/asr":Ts("FlowGraphBitwiseRightShiftBlock",["a","b"]),"math/lsl":Ts("FlowGraphBitwiseLeftShiftBlock",["a","b"]),"math/clz":Ts("FlowGraphLeadingZerosBlock"),"math/ctz":Ts("FlowGraphTrailingZerosBlock"),"math/popcnt":Ts("FlowGraphOneBitsCounterBlock"),"math/rad":Ts("FlowGraphDegToRadBlock"),"math/deg":Ts("FlowGraphRadToDegBlock"),"type/boolToInt":Ts("FlowGraphBooleanToInt"),"type/boolToFloat":Ts("FlowGraphBooleanToFloat"),"type/intToBool":Ts("FlowGraphIntToBoolean"),"type/intToFloat":Ts("FlowGraphIntToFloat"),"type/floatToInt":Ts("FlowGraphFloatToInt"),"type/floatToBool":Ts("FlowGraphFloatToBoolean"),"flow/sequence":{blocks:["FlowGraphSequenceBlock"],extraProcessor(a,e,t,i,s){const r=s[0];return r.config||(r.config={}),r.config.outputSignalCount=Object.keys(a.flows||[]).length,r.signalOutputs.forEach((n,o)=>{n.name="out_"+o}),s}},"flow/branch":{blocks:["FlowGraphBranchBlock"],outputs:{flows:{true:{name:"onTrue"},false:{name:"onFalse"}}}},"flow/switch":{blocks:["FlowGraphSwitchBlock"],configuration:{cases:{name:"cases",inOptions:!0,defaultValue:[]}},inputs:{values:{selection:{name:"case"}}},validation(a){if(a.configuration&&a.configuration.cases){const e=a.configuration.cases.value;if(!e.every(s=>typeof s=="number"&&/^\d+$/.test(s.toString())))return a.configuration.cases.value=[],!0;const i=new Set(e);a.configuration.cases.value=Array.from(i)}return!0},extraProcessor(a,e,t,i,s){if(e.op!=="flow/switch"||!a.flows||Object.keys(a.flows).length===0)throw new Error("Switch should have a single configuration object, the cases array");return s[0].signalOutputs.forEach(n=>{n.name!=="default"&&(n.name="out_"+n.name)}),s}},"flow/while":{blocks:["FlowGraphWhileLoopBlock"],outputs:{flows:{loopBody:{name:"executionFlow"}}}},"flow/for":{blocks:["FlowGraphForLoopBlock"],configuration:{initialIndex:{name:"initialIndex",gltfType:"number",inOptions:!0,defaultValue:0}},inputs:{values:{startIndex:{name:"startIndex",gltfType:"number"},endIndex:{name:"endIndex",gltfType:"number"}}},outputs:{values:{index:{name:"index"}},flows:{loopBody:{name:"executionFlow"}}}},"flow/doN":{blocks:["FlowGraphDoNBlock"],configuration:{},inputs:{values:{n:{name:"maxExecutions",gltfType:"number"}}},outputs:{values:{currentCount:{name:"executionCount"}}}},"flow/multiGate":{blocks:["FlowGraphMultiGateBlock"],configuration:{isRandom:{name:"isRandom",gltfType:"boolean",inOptions:!0,defaultValue:!1},isLoop:{name:"isLoop",gltfType:"boolean",inOptions:!0,defaultValue:!1}},extraProcessor(a,e,t,i,s){if(e.op!=="flow/multiGate"||!a.flows||Object.keys(a.flows).length===0)throw new Error("MultiGate should have a single configuration object, the number of output flows");const r=s[0];return r.config||(r.config={}),r.config.outputSignalCount=Object.keys(a.flows).length,r.signalOutputs.forEach((n,o)=>{n.name="out_"+o}),s}},"flow/waitAll":{blocks:["FlowGraphWaitAllBlock"],configuration:{inputFlows:{name:"inputSignalCount",gltfType:"number",inOptions:!0,defaultValue:0}},inputs:{flows:{"[segment]":{name:"in_$1"}}},validation(a){var e,t;return typeof((t=(e=a.configuration)==null?void 0:e.inputFlows)==null?void 0:t.value[0])!="number"&&(a.configuration=a.configuration||{inputFlows:{value:[0]}},a.configuration.inputFlows.value=[0]),!0}},"flow/throttle":{blocks:["FlowGraphThrottleBlock"],outputs:{flows:{err:{name:"error"}}}},"flow/setDelay":{blocks:["FlowGraphSetDelayBlock"],outputs:{flows:{err:{name:"error"}}}},"flow/cancelDelay":{blocks:["FlowGraphCancelDelayBlock"]},"variable/get":{blocks:["FlowGraphGetVariableBlock"],validation(a){var e,t;return(t=(e=a.configuration)==null?void 0:e.variable)!=null&&t.value?!0:(de.Error("Variable get block should have a variable configuration"),!1)},configuration:{variable:{name:"variable",gltfType:"number",flowGraphType:"string",inOptions:!0,isVariable:!0,dataTransformer(a,e){return[e.getVariableName(a[0])]}}}},"variable/set":{blocks:["FlowGraphSetVariableBlock"],configuration:{variable:{name:"variable",gltfType:"number",flowGraphType:"string",inOptions:!0,isVariable:!0,dataTransformer(a,e){return[e.getVariableName(a[0])]}}}},"variable/setMultiple":{blocks:["FlowGraphSetVariableBlock"],configuration:{variables:{name:"variables",gltfType:"number",flowGraphType:"string",inOptions:!0,dataTransformer(a,e){return[a[0].map(t=>e.getVariableName(t))]}}},extraProcessor(a,e,t,i,s){return s[0].dataInputs.forEach(n=>{n.name=i.getVariableName(+n.name)}),s}},"variable/interpolate":{blocks:["FlowGraphInterpolationBlock","FlowGraphContextBlock","FlowGraphPlayAnimationBlock","FlowGraphBezierCurveEasing","FlowGraphGetVariableBlock"],configuration:{variable:{name:"propertyName",inOptions:!0,isVariable:!0,dataTransformer(a,e){return[e.getVariableName(a[0])]}},useSlerp:{name:"animationType",inOptions:!0,defaultValue:!1,dataTransformer:a=>a[0]===!0?["Quaternion"]:[void 0]}},inputs:{values:{value:{name:"value_1"},duration:{name:"duration_1",gltfType:"number"},p1:{name:"controlPoint1",toBlock:"FlowGraphBezierCurveEasing"},p2:{name:"controlPoint2",toBlock:"FlowGraphBezierCurveEasing"}},flows:{in:{name:"in",toBlock:"FlowGraphPlayAnimationBlock"}}},outputs:{flows:{err:{name:"error",toBlock:"FlowGraphPlayAnimationBlock"},out:{name:"out",toBlock:"FlowGraphPlayAnimationBlock"},done:{name:"done",toBlock:"FlowGraphPlayAnimationBlock"}}},interBlockConnectors:[{input:"object",output:"userVariables",inputBlockIndex:2,outputBlockIndex:1,isVariable:!0},{input:"animation",output:"animation",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0},{input:"easingFunction",output:"easingFunction",inputBlockIndex:0,outputBlockIndex:3,isVariable:!0},{input:"value_0",output:"value",inputBlockIndex:0,outputBlockIndex:4,isVariable:!0}],extraProcessor(a,e,t,i,s){var f;var r,n;const o=s[0],l=(f=a.configuration)==null?void 0:f.variable.value[0];if(typeof l!="number")throw de.Error("Variable index is not defined for variable interpolation block"),new Error("Variable index is not defined for variable interpolation block");const c=i.arrays.staticVariables[l];typeof o.config.animationType.value>"u"&&(i.arrays.staticVariables,o.config.animationType.value=v1e(c.type));const u=s[4];return u.config||(u.config={}),(r=u.config).variable||(r.variable={}),u.config.variable.value=i.getVariableName(l),(n=s[3]).config||(n.config={}),s}},"pointer/get":{blocks:["FlowGraphGetPropertyBlock","FlowGraphJsonPointerParserBlock"],configuration:{pointer:{name:"jsonPointer",toBlock:"FlowGraphJsonPointerParserBlock"}},inputs:{values:{"[segment]":{name:"$1",toBlock:"FlowGraphJsonPointerParserBlock"}}},interBlockConnectors:[{input:"object",output:"object",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"propertyName",output:"propertyName",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"customGetFunction",output:"getFunction",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0}],extraProcessor(a,e,t,i,s){return s.forEach(r=>{r.className==="FlowGraphJsonPointerParserBlock"&&(r.config||(r.config={}),r.config.outputValue=!0)}),s}},"pointer/set":{blocks:["FlowGraphSetPropertyBlock","FlowGraphJsonPointerParserBlock"],configuration:{pointer:{name:"jsonPointer",toBlock:"FlowGraphJsonPointerParserBlock"}},inputs:{values:{value:{name:"value"},"[segment]":{name:"$1",toBlock:"FlowGraphJsonPointerParserBlock"}}},outputs:{flows:{err:{name:"error"}}},interBlockConnectors:[{input:"object",output:"object",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"propertyName",output:"propertyName",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"customSetFunction",output:"setFunction",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0}],extraProcessor(a,e,t,i,s){return s.forEach(r=>{r.className==="FlowGraphJsonPointerParserBlock"&&(r.config||(r.config={}),r.config.outputValue=!0)}),s}},"pointer/interpolate":{blocks:["FlowGraphInterpolationBlock","FlowGraphJsonPointerParserBlock","FlowGraphPlayAnimationBlock","FlowGraphEasingBlock"],configuration:{pointer:{name:"jsonPointer",toBlock:"FlowGraphJsonPointerParserBlock"}},inputs:{values:{value:{name:"value_1"},"[segment]":{name:"$1",toBlock:"FlowGraphJsonPointerParserBlock"},duration:{name:"duration_1",gltfType:"number"},p1:{name:"controlPoint1",toBlock:"FlowGraphEasingBlock"},p2:{name:"controlPoint2",toBlock:"FlowGraphEasingBlock"}},flows:{in:{name:"in",toBlock:"FlowGraphPlayAnimationBlock"}}},outputs:{flows:{err:{name:"error",toBlock:"FlowGraphPlayAnimationBlock"},out:{name:"out",toBlock:"FlowGraphPlayAnimationBlock"},done:{name:"done",toBlock:"FlowGraphPlayAnimationBlock"}}},interBlockConnectors:[{input:"object",output:"object",inputBlockIndex:2,outputBlockIndex:1,isVariable:!0},{input:"propertyName",output:"propertyName",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"customBuildAnimation",output:"generateAnimationsFunction",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"animation",output:"animation",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0},{input:"easingFunction",output:"easingFunction",inputBlockIndex:0,outputBlockIndex:3,isVariable:!0},{input:"value_0",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0}],extraProcessor(a,e,t,i,s){return s.forEach(r=>{r.className==="FlowGraphJsonPointerParserBlock"?(r.config||(r.config={}),r.config.outputValue=!0):r.className==="FlowGraphInterpolationBlock"&&(r.config||(r.config={}),Object.keys(a.values||[]).forEach(n=>{var l;const o=(l=a.values)==null?void 0:l[n];if(n==="value"&&o){const c=o.type;c!==void 0&&(r.config.animationType=i.arrays.types[c].flowGraphType)}}))}),s}},"animation/start":{blocks:["FlowGraphPlayAnimationBlock","FlowGraphArrayIndexBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],inputs:{values:{animation:{name:"index",gltfType:"number",toBlock:"FlowGraphArrayIndexBlock"},speed:{name:"speed",gltfType:"number"},startTime:{name:"from",gltfType:"number",dataTransformer:(a,e)=>[a[0]*e._loader.parent.targetFps]},endTime:{name:"to",gltfType:"number",dataTransformer:(a,e)=>[a[0]*e._loader.parent.targetFps]}}},outputs:{flows:{err:{name:"error"}}},interBlockConnectors:[{input:"animationGroup",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"animationGroups",inputBlockIndex:1,outputBlockIndex:2,isVariable:!0}],extraProcessor(a,e,t,i,s,r,n){const o=s[s.length-1];return o.config||(o.config={}),o.config.glTF=n,s}},"animation/stop":{blocks:["FlowGraphStopAnimationBlock","FlowGraphArrayIndexBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],inputs:{values:{animation:{name:"index",gltfType:"number",toBlock:"FlowGraphArrayIndexBlock"}}},outputs:{flows:{err:{name:"error"}}},interBlockConnectors:[{input:"animationGroup",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"animationGroups",inputBlockIndex:1,outputBlockIndex:2,isVariable:!0}],extraProcessor(a,e,t,i,s,r,n){const o=s[s.length-1];return o.config||(o.config={}),o.config.glTF=n,s}},"animation/stopAt":{blocks:["FlowGraphStopAnimationBlock","FlowGraphArrayIndexBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{},inputs:{values:{animation:{name:"index",gltfType:"number",toBlock:"FlowGraphArrayIndexBlock"},stopTime:{name:"stopAtFrame",gltfType:"number",dataTransformer:(a,e)=>[a[0]*e._loader.parent.targetFps]}}},outputs:{flows:{err:{name:"error"}}},interBlockConnectors:[{input:"animationGroup",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"animationGroups",inputBlockIndex:1,outputBlockIndex:2,isVariable:!0}],extraProcessor(a,e,t,i,s,r,n){const o=s[s.length-1];return o.config||(o.config={}),o.config.glTF=n,s}},"math/switch":{blocks:["FlowGraphDataSwitchBlock"],configuration:{cases:{name:"cases",inOptions:!0,defaultValue:[]}},inputs:{values:{selection:{name:"case"}}},validation(a){if(a.configuration&&a.configuration.cases){const e=a.configuration.cases.value;if(!e.every(s=>typeof s=="number"&&/^\d+$/.test(s.toString())))return a.configuration.cases.value=[],!0;const i=new Set(e);a.configuration.cases.value=Array.from(i)}return!0},extraProcessor(a,e,t,i,s){return s[0].dataInputs.forEach(n=>{n.name!=="default"&&n.name!=="case"&&(n.name="in_"+n.name)}),s}},"debug/log":{blocks:["FlowGraphConsoleLogBlock"],configuration:{message:{name:"messageTemplate",inOptions:!0}}}};function Ts(a,e=["a"],t){return{blocks:[a],inputs:{values:e.reduce((i,s)=>(i[s]={name:s},i),{})},outputs:{values:{value:{name:"value"}}},extraProcessor(i,s,r,n,o){if(t){o[0].config=o[0].config||{};let l=-1;Object.keys(i.values||{}).find(c=>{var u;return((u=i.values)==null?void 0:u[c].type)!==void 0?(l=i.values[c].type,!0):!1}),l!==-1&&(o[0].config.type=n.arrays.types[l].flowGraphType)}return o}}}function lDe(){return Object.keys(L1e)}const I1e={float:{length:1,flowGraphType:"number",elementType:"number"},bool:{length:1,flowGraphType:"boolean",elementType:"boolean"},float2:{length:2,flowGraphType:"Vector2",elementType:"number"},float3:{length:3,flowGraphType:"Vector3",elementType:"number"},float4:{length:4,flowGraphType:"Vector4",elementType:"number"},float4x4:{length:16,flowGraphType:"Matrix",elementType:"number"},float2x2:{length:4,flowGraphType:"Matrix2D",elementType:"number"},float3x3:{length:9,flowGraphType:"Matrix3D",elementType:"number"},int:{length:1,flowGraphType:"FlowGraphInteger",elementType:"number"}};class P1e{constructor(e,t,i){this._interactivityGraph=e,this._gltf=t,this._loader=i,this._types=[],this._mappings=[],this._staticVariables=[],this._events=[],this._internalEventsCounter=0,this._nodes=[],this._parseTypes(),this._parseDeclarations(),this._parseVariables(),this._parseEvents(),this._parseNodes()}get arrays(){return{types:this._types,mappings:this._mappings,staticVariables:this._staticVariables,events:this._events,nodes:this._nodes}}_parseTypes(){if(this._interactivityGraph.types)for(const e of this._interactivityGraph.types)this._types.push(I1e[e.signature])}_parseDeclarations(){if(this._interactivityGraph.declarations)for(const e of this._interactivityGraph.declarations){const t=VK(e);if(!t)throw de.Error(["No mapping found for declaration",e]),new Error("Error parsing declarations");this._mappings.push({flowGraphMapping:t,fullOperationName:e.extension?e.op+":"+e.extension:e.op})}}_parseVariables(){if(this._interactivityGraph.variables)for(const e of this._interactivityGraph.variables){const t=this._parseVariable(e);this._staticVariables.push(t)}}_parseVariable(e,t){const i=this._types[e.type];if(!i)throw de.Error(["No type found for variable",e]),new Error("Error parsing variables");if(e.value&&e.value.length!==i.length)throw de.Error(["Invalid value length for variable",e,i]),new Error("Error parsing variables");const s=e.value||[];if(!s.length)switch(i.flowGraphType){case"boolean":s.push(!1);break;case"FlowGraphInteger":s.push(0);break;case"number":s.push(NaN);break;case"Vector2":s.push(NaN,NaN);break;case"Vector3":s.push(NaN,NaN,NaN);break;case"Vector4":case"Matrix2D":case"Quaternion":s.fill(NaN,0,4);break;case"Matrix":s.fill(NaN,0,16);break;case"Matrix3D":s.fill(NaN,0,9);break}return{type:i.flowGraphType,value:t?t(s,this):s}}_parseEvents(){if(this._interactivityGraph.events)for(const e of this._interactivityGraph.events){const t={eventId:e.id||"internalEvent_"+this._internalEventsCounter++};e.values&&(t.eventData=Object.keys(e.values).map(i=>{var o;const s=(o=e.values)==null?void 0:o[i];if(!s)throw de.Error(["No value found for event key",i]),new Error("Error parsing events");const r=this._types[s.type];if(!r)throw de.Error(["No type found for event value",s]),new Error("Error parsing events");const n=typeof s.value<"u"?this._parseVariable(s):void 0;return{id:i,type:r.flowGraphType,eventData:!0,value:n}})),this._events.push(t)}}_parseNodes(){if(this._interactivityGraph.nodes)for(const e of this._interactivityGraph.nodes){if(typeof e.declaration!="number")throw de.Error(["No declaration found for node",e]),new Error("Error parsing nodes");const t=this._mappings[e.declaration];if(!t)throw de.Error(["No mapping found for node",e]),new Error("Error parsing nodes");if(t.flowGraphMapping.validation&&!t.flowGraphMapping.validation(e,this._interactivityGraph,this._gltf))throw new Error(`Error validating interactivity node ${e}`);const i=[];for(const s of t.flowGraphMapping.blocks){const r=this._getEmptyBlock(s,t.fullOperationName);this._parseNodeConfiguration(e,r,t.flowGraphMapping,s),i.push(r)}this._nodes.push({blocks:i,fullOperationName:t.fullOperationName})}}_getEmptyBlock(e,t){return{uniqueId:e3(),className:e,dataInputs:[],dataOutputs:[],signalInputs:[],signalOutputs:[],config:{},type:t,metadata:{}}}_parseNodeConfiguration(e,t,i,s){const r=t.config;e.configuration&&Object.keys(e.configuration).forEach(n=>{var u,f;const o=(u=e.configuration)==null?void 0:u[n];if(!o)throw de.Error(["No value found for node configuration",n]),new Error("Error parsing node configuration");const l=(f=i.configuration)==null?void 0:f[n];if(l&&l.toBlock?l.toBlock===s:i.blocks.indexOf(s)===0){const p=(l==null?void 0:l.name)||n;(!o||typeof o.value>"u")&&typeof(l==null?void 0:l.defaultValue)<"u"?r[p]={value:l.defaultValue}:o.value.length>=1?r[p]={value:o.value.length===1?o.value[0]:o.value}:de.Warn(["Invalid value for node configuration",o]),l&&l.dataTransformer&&(r[p].value=l.dataTransformer([r[p].value],this)[0])}})}_parseNodeConnections(e){var t,i,s,r,n,o,l,c,u,f,p,m,_,d,h,x,A,S,E;for(let b=0;b<this._nodes.length;b++){const M=(t=this._interactivityGraph.nodes)==null?void 0:t[b];if(!M)throw de.Error(["No node found for interactivity node",this._nodes[b]]),new Error("Error parsing node connections");const T=this._nodes[b],O=this._mappings[M.declaration];if(!O)throw de.Error(["No mapping found for node",M]),new Error("Error parsing node connections");const R=M.flows||{},I=Object.keys(R).sort();for(const D of I){const k=R[D],Y=(s=(i=O.flowGraphMapping.outputs)==null?void 0:i.flows)==null?void 0:s[D],V=(Y==null?void 0:Y.name)||D,ee=this._createNewSocketConnection(V,!0);(Y&&Y.toBlock&&T.blocks.find(se=>se.className===Y.toBlock)||T.blocks[0]).signalOutputs.push(ee);const ie=k.node,ne=this._nodes[ie];if(!ne)throw de.Error(["No node found for input node id",ie]),new Error("Error parsing node connections");const te=jK(ne.fullOperationName);if(!te)throw de.Error(["No mapping found for input node",ne]),new Error("Error parsing node connections");let W=(n=(r=te.inputs)==null?void 0:r.flows)==null?void 0:n[k.socket||"in"],Q=!1;if(!W)for(const se in(o=te.inputs)==null?void 0:o.flows)se.startsWith("[")&&se.endsWith("]")&&(Q=!0,W=(c=(l=te.inputs)==null?void 0:l.flows)==null?void 0:c[se]);const re=W?Q?W.name.replace("$1",k.socket||""):W.name:k.socket||"in",oe=W&&W.toBlock&&ne.blocks.find(se=>se.className===W.toBlock)||ne.blocks[0];let X=oe.signalInputs.find(se=>se.name===re);X||(X=this._createNewSocketConnection(re),oe.signalInputs.push(X)),X.connectedPointIds.push(ee.uniqueId),ee.connectedPointIds.push(X.uniqueId)}const N=M.values||{},w=Object.keys(N);for(const D of w){const k=N[D];let Y=(f=(u=O.flowGraphMapping.inputs)==null?void 0:u.values)==null?void 0:f[D],V=!1;if(!Y)for(const ne in(p=O.flowGraphMapping.inputs)==null?void 0:p.values)ne.startsWith("[")&&ne.endsWith("]")&&(V=!0,Y=(_=(m=O.flowGraphMapping.inputs)==null?void 0:m.values)==null?void 0:_[ne]);const ee=Y?V?Y.name.replace("$1",D):Y.name:D,K=this._createNewSocketConnection(ee);if((Y&&Y.toBlock&&T.blocks.find(ne=>ne.className===Y.toBlock)||T.blocks[0]).dataInputs.push(K),k.value!==void 0){const ne=this._parseVariable(k,Y&&Y.dataTransformer);e._connectionValues[K.uniqueId]=ne}else if(typeof k.node<"u"){const ne=k.node,te=k.socket||"value",W=this._nodes[ne];if(!W)throw de.Error(["No node found for output socket reference",k]),new Error("Error parsing node connections");const Q=jK(W.fullOperationName);if(!Q)throw de.Error(["No mapping found for output socket reference",k]),new Error("Error parsing node connections");let re=(h=(d=Q.outputs)==null?void 0:d.values)==null?void 0:h[te],oe=!1;if(!re)for(const he in(x=Q.outputs)==null?void 0:x.values)he.startsWith("[")&&he.endsWith("]")&&(oe=!0,re=(S=(A=Q.outputs)==null?void 0:A.values)==null?void 0:S[he]);const X=re?oe?re.name.replace("$1",te):re==null?void 0:re.name:te,se=re&&re.toBlock&&W.blocks.find(he=>he.className===re.toBlock)||W.blocks[0];let ue=se.dataOutputs.find(he=>he.name===X);ue||(ue=this._createNewSocketConnection(X,!0),se.dataOutputs.push(ue)),K.connectedPointIds.push(ue.uniqueId),ue.connectedPointIds.push(K.uniqueId)}else throw de.Error(["Invalid value for value connection",k]),new Error("Error parsing node connections")}if(O.flowGraphMapping.interBlockConnectors)for(const D of O.flowGraphMapping.interBlockConnectors){const k=D.input,Y=D.output,V=D.isVariable;this._connectFlowGraphNodes(k,Y,T.blocks[D.inputBlockIndex],T.blocks[D.outputBlockIndex],V)}if(O.flowGraphMapping.extraProcessor){const D=(E=this._interactivityGraph.declarations)==null?void 0:E[M.declaration];if(!D)throw de.Error(["No declaration found for extra processor",M]),new Error("Error parsing node connections");T.blocks=O.flowGraphMapping.extraProcessor(M,D,O.flowGraphMapping,this,T.blocks,e,this._gltf)}}}_createNewSocketConnection(e,t){return{uniqueId:e3(),name:e,_connectionType:t?1:0,connectedPointIds:[]}}_connectFlowGraphNodes(e,t,i,s,r){const n=r?i.dataInputs:i.signalInputs,o=r?s.dataOutputs:s.signalOutputs,l=n.find(u=>u.name===e)||this._createNewSocketConnection(e),c=o.find(u=>u.name===t)||this._createNewSocketConnection(t,!0);n.find(u=>u.name===e)||n.push(l),o.find(u=>u.name===t)||o.push(c),l.connectedPointIds.push(c.uniqueId),c.connectedPointIds.push(l.uniqueId)}getVariableName(e){return"staticVariable_"+e}serializeToFlowGraph(){const e={uniqueId:e3(),_userVariables:{},_connectionValues:{}};this._parseNodeConnections(e);for(let i=0;i<this._staticVariables.length;i++){const s=this._staticVariables[i];e._userVariables[this.getVariableName(i)]=s}return{rightHanded:!0,allBlocks:this._nodes.reduce((i,s)=>i.concat(s.blocks),[]),executionContexts:[e]}}}const Qw="KHR_interactivity";class O1e{constructor(e){this._loader=e,this.name=Qw,this.enabled=this._loader.isExtensionUsed(Qw),this._pathConverter=WZ(this._loader.gltf),e._skipStartAnimationStep=!0;const t=e.babylonScene;t&&R1e(t)}dispose(){this._loader=null,delete this._pathConverter}async onReady(){var r;if(!this._loader.babylonScene||!this._pathConverter)return;const e=this._loader.babylonScene,t=(r=this._loader.gltf.extensions)==null?void 0:r.KHR_interactivity;if(!t)return;const i=new y4({scene:e}),s=t.graphs.map(n=>new P1e(n,this._loader.gltf,this._loader).serializeToFlowGraph());await Promise.all(s.map(n=>kK(n,{coordinator:i,pathConverter:this._pathConverter}))),i.start()}}function R1e(a){qv("/extensions/KHR_interactivity/?/activeCamera/rotation",{get:()=>a.activeCamera?Re.FromRotationMatrix(a.activeCamera.getWorldMatrix()).normalize():new Re(NaN,NaN,NaN,NaN),type:"Quaternion",getTarget:()=>a.activeCamera}),qv("/extensions/KHR_interactivity/?/activeCamera/position",{get:()=>a.activeCamera?a.activeCamera.position:new P(NaN,NaN,NaN),type:"Vector3",getTarget:()=>a.activeCamera}),qv("/animations/{}/extensions/KHR_interactivity/isPlaying",{get:e=>{var t;return((t=e._babylonAnimationGroup)==null?void 0:t.isPlaying)??!1},type:"boolean",getTarget:e=>e._babylonAnimationGroup}),qv("/animations/{}/extensions/KHR_interactivity/minTime",{get:e=>{var t;return(((t=e._babylonAnimationGroup)==null?void 0:t.from)??0)/60},type:"number",getTarget:e=>e._babylonAnimationGroup}),qv("/animations/{}/extensions/KHR_interactivity/maxTime",{get:e=>{var t;return(((t=e._babylonAnimationGroup)==null?void 0:t.to)??0)/60},type:"number",getTarget:e=>e._babylonAnimationGroup}),qv("/animations/{}/extensions/KHR_interactivity/playhead",{get:e=>{var t;return(((t=e._babylonAnimationGroup)==null?void 0:t.getCurrentFrame())??0)/60},type:"number",getTarget:e=>e._babylonAnimationGroup}),qv("/animations/{}/extensions/KHR_interactivity/virtualPlayhead",{get:e=>{var t;return(((t=e._babylonAnimationGroup)==null?void 0:t.getCurrentFrame())??0)/60},type:"number",getTarget:e=>e._babylonAnimationGroup})}S1e(Qw,"FlowGraphGLTFDataProvider",async()=>(await Promise.resolve().then(()=>cDe)).FlowGraphGLTFDataProvider),ln(Qw),_n(Qw,!0,a=>new O1e(a));const LW="KHR_node_visibility";qv("/nodes/{}/extensions/KHR_node_visibility/visible",{get:a=>{const e=a._babylonTransformNode;return e&&e.isVisible!==void 0?e.isVisible:!0},set:(a,e)=>{var t,i;(t=e._primitiveBabylonMeshes)==null||t.forEach(s=>{s.inheritVisibility=!0}),e._babylonTransformNode&&(e._babylonTransformNode.isVisible=a),(i=e._primitiveBabylonMeshes)==null||i.forEach(s=>{s.isVisible=a})},getTarget:a=>a._babylonTransformNode,getPropertyName:[()=>"isVisible"],type:"boolean"});class D1e{constructor(e){this.name=LW,this._loader=e,this.enabled=e.isExtensionUsed(LW)}async onReady(){var e;(e=this._loader.gltf.nodes)==null||e.forEach(t=>{var i,s,r,n;(i=t._primitiveBabylonMeshes)==null||i.forEach(o=>{o.inheritVisibility=!0}),(s=t.extensions)!=null&&s.KHR_node_visibility&&((r=t.extensions)==null?void 0:r.KHR_node_visibility.visible)===!1&&(t._babylonTransformNode&&(t._babylonTransformNode.isVisible=!1),(n=t._primitiveBabylonMeshes)==null||n.forEach(o=>{o.isVisible=!1}))})}dispose(){this._loader=null}}ln(LW),_n(LW,!0,a=>new D1e(a));const Jw="KHR_node_selectability";EW("event/onSelect",Jw,{blocks:["FlowGraphMeshPickEventBlock","FlowGraphGetVariableBlock","FlowGraphIndexOfBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{stopPropagation:{name:"stopPropagation"},nodeIndex:{name:"variable",toBlock:"FlowGraphGetVariableBlock",dataTransformer(a){return["pickedMesh_"+a[0]]}}},outputs:{values:{selectedNodeIndex:{name:"index",toBlock:"FlowGraphIndexOfBlock"},controllerIndex:{name:"pointerId"},selectionPoint:{name:"pickedPoint"},selectionRayOrigin:{name:"pickOrigin"}},flows:{out:{name:"done"}}},interBlockConnectors:[{input:"asset",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"nodes",inputBlockIndex:2,outputBlockIndex:3,isVariable:!0},{input:"object",output:"pickedMesh",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0}],extraProcessor(a,e,t,i,s,r,n){var u,f,p,m,_,d;const o=s[s.length-1];o.config=o.config||{},o.config.glTF=n;const l=(f=(u=a.configuration)==null?void 0:u.nodeIndex)==null?void 0:f.value[0];if(l===void 0||typeof l!="number")throw new Error("nodeIndex not found in configuration");const c="pickedMesh_"+l;return s[1].config.variable=c,r._userVariables[c]={className:"Mesh",id:(m=(p=n==null?void 0:n.nodes)==null?void 0:p[l]._babylonTransformNode)==null?void 0:m.id,uniqueId:(d=(_=n==null?void 0:n.nodes)==null?void 0:_[l]._babylonTransformNode)==null?void 0:d.uniqueId},s}}),qv("/nodes/{}/extensions/KHR_node_selectability/selectable",{get:a=>{const e=a._babylonTransformNode;return e&&e.isPickable!==void 0?e.isPickable:!0},set:(a,e)=>{var t;(t=e._primitiveBabylonMeshes)==null||t.forEach(i=>{i.isPickable=a})},getTarget:a=>a._babylonTransformNode,getPropertyName:[()=>"isPickable"],type:"boolean"});class N1e{constructor(e){this.name=Jw,this._loader=e,this.enabled=e.isExtensionUsed(Jw)}async onReady(){var e;(e=this._loader.gltf.nodes)==null||e.forEach(t=>{var i,s,r;(i=t.extensions)!=null&&i.KHR_node_selectability&&((s=t.extensions)==null?void 0:s.KHR_node_selectability.selectable)===!1&&((r=t._babylonTransformNode)==null||r.getChildMeshes().forEach(n=>{n.isPickable=!1}))})}dispose(){this._loader=null}}ln(Jw),_n(Jw,!0,a=>new N1e(a));const NP="KHR_node_hoverability",w1e="targetMeshPointerOver_";EW("event/onHoverIn",NP,{blocks:["FlowGraphPointerOverEventBlock","FlowGraphGetVariableBlock","FlowGraphIndexOfBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{stopPropagation:{name:"stopPropagation"},nodeIndex:{name:"variable",toBlock:"FlowGraphGetVariableBlock",dataTransformer(a){return[w1e+a[0]]}}},outputs:{values:{hoverNodeIndex:{name:"index",toBlock:"FlowGraphIndexOfBlock"},controllerIndex:{name:"pointerId"}},flows:{out:{name:"done"}}},interBlockConnectors:[{input:"targetMesh",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"nodes",inputBlockIndex:2,outputBlockIndex:3,isVariable:!0},{input:"object",output:"meshUnderPointer",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0}],extraProcessor(a,e,t,i,s,r,n){var u,f,p,m,_,d;const o=s[s.length-1];o.config=o.config||{},o.config.glTF=n;const l=(f=(u=a.configuration)==null?void 0:u.nodeIndex)==null?void 0:f.value[0];if(l===void 0||typeof l!="number")throw new Error("nodeIndex not found in configuration");const c=w1e+l;return s[1].config.variable=c,r._userVariables[c]={className:"Mesh",id:(m=(p=n==null?void 0:n.nodes)==null?void 0:p[l]._babylonTransformNode)==null?void 0:m.id,uniqueId:(d=(_=n==null?void 0:n.nodes)==null?void 0:_[l]._babylonTransformNode)==null?void 0:d.uniqueId},s}});const B1e="targetMeshPointerOut_";EW("event/onHoverOut",NP,{blocks:["FlowGraphPointerOutEventBlock","FlowGraphGetVariableBlock","FlowGraphIndexOfBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{stopPropagation:{name:"stopPropagation"},nodeIndex:{name:"variable",toBlock:"FlowGraphGetVariableBlock",dataTransformer(a){return[B1e+a[0]]}}},outputs:{values:{hoverNodeIndex:{name:"index",toBlock:"FlowGraphIndexOfBlock"},controllerIndex:{name:"pointerId"}},flows:{out:{name:"done"}}},interBlockConnectors:[{input:"targetMesh",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"nodes",inputBlockIndex:2,outputBlockIndex:3,isVariable:!0},{input:"object",output:"meshOutOfPointer",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0}],extraProcessor(a,e,t,i,s,r,n){var u,f,p,m,_,d;const o=s[s.length-1];o.config=o.config||{},o.config.glTF=n;const l=(f=(u=a.configuration)==null?void 0:u.nodeIndex)==null?void 0:f.value[0];if(l===void 0||typeof l!="number")throw new Error("nodeIndex not found in configuration");const c=B1e+l;return s[1].config.variable=c,r._userVariables[c]={className:"Mesh",id:(m=(p=n==null?void 0:n.nodes)==null?void 0:p[l]._babylonTransformNode)==null?void 0:m.id,uniqueId:(d=(_=n==null?void 0:n.nodes)==null?void 0:_[l]._babylonTransformNode)==null?void 0:d.uniqueId},s}}),qv("/nodes/{}/extensions/KHR_node_hoverability/hoverable",{get:a=>{const e=a._babylonTransformNode;return e&&e.pointerOverDisableMeshTesting!==void 0?e.pointerOverDisableMeshTesting:!0},set:(a,e)=>{var t;(t=e._primitiveBabylonMeshes)==null||t.forEach(i=>{i.pointerOverDisableMeshTesting=!a})},getTarget:a=>a._babylonTransformNode,getPropertyName:[()=>"pointerOverDisableMeshTesting"],type:"boolean"});class z1e{constructor(e){this.name=NP,this._loader=e,this.enabled=e.isExtensionUsed(NP)}async onReady(){var e;(e=this._loader.gltf.nodes)==null||e.forEach(t=>{var i,s,r;(i=t.extensions)!=null&&i.KHR_node_hoverability&&((s=t.extensions)==null?void 0:s.KHR_node_hoverability.hoverable)===!1&&((r=t._babylonTransformNode)==null||r.getChildMeshes().forEach(n=>{n.pointerOverDisableMeshTesting=!0}))})}dispose(){this._loader=null}}ln(NP),_n(NP,!0,a=>new z1e(a));const GK="ExtrasAsMetadata";class F1e{_assignExtras(e,t){if(t.extras&&Object.keys(t.extras).length>0){const i=e.metadata=e.metadata||{},s=i.gltf=i.gltf||{};s.extras=t.extras}}constructor(e){this.name=GK,this.enabled=!0,this._loader=e}dispose(){this._loader=null}loadNodeAsync(e,t,i){return this._loader.loadNodeAsync(e,t,s=>{this._assignExtras(s,t),i(s)})}loadCameraAsync(e,t,i){return this._loader.loadCameraAsync(e,t,s=>{this._assignExtras(s,t),i(s)})}createMaterial(e,t,i){const s=this._loader.createMaterial(e,t,i);return this._assignExtras(s,t),s}}ln(GK),_n(GK,!1,a=>new F1e(a));class k1e extends Vu{constructor(e){var r,n;super();const t=e.glTF,i=((r=t.animations)==null?void 0:r.map(o=>o._babylonAnimationGroup))||[];this.animationGroups=this.registerDataOutput("animationGroups",ii,i);const s=((n=t.nodes)==null?void 0:n.map(o=>o._babylonTransformNode))||[];this.nodes=this.registerDataOutput("nodes",ii,s)}getClassName(){return"FlowGraphGLTFDataProvider"}}const cDe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphGLTFDataProvider:k1e},Symbol.toStringTag,{value:"Module"})),uDe=Object.freeze(Object.defineProperty({__proto__:null,AddObjectAccessorToKey:qv,AnimationPropertyInfo:tL,ArrayItem:gs,EXT_lights_ies:Fde,EXT_lights_image_based:Dde,EXT_mesh_gpu_instancing:Nde,EXT_meshopt_compression:wde,EXT_texture_avif:zde,EXT_texture_webp:Bde,ExtrasAsMetadata:F1e,FlowGraphGLTFDataProvider:k1e,GLTFFileLoader:ku,GLTFLoader:Rs,GetMappingForKey:Fw,GetPathToObjectConverter:WZ,InteractivityGraphToFlowGraphParser:P1e,KHR_animation_pointer:o1e,KHR_draco_mesh_compression:Vde,KHR_interactivity:O1e,KHR_lights:Gde,KHR_materials_anisotropy:Zde,KHR_materials_clearcoat:Yde,KHR_materials_diffuse_transmission:$de,KHR_materials_dispersion:t1e,KHR_materials_emissive_strength:Kde,KHR_materials_ior:nK,KHR_materials_iridescence:Xde,KHR_materials_pbrSpecularGlossiness:Wde,KHR_materials_sheen:qde,KHR_materials_specular:Qde,KHR_materials_transmission:Jde,KHR_materials_unlit:Hde,KHR_materials_variants:a3,KHR_materials_volume:e1e,KHR_mesh_quantization:i1e,KHR_node_hoverability:z1e,KHR_node_selectability:N1e,KHR_node_visibility:D1e,KHR_texture_basisu:s1e,KHR_texture_transform:r1e,KHR_xmp_json_ld:n1e,LoadBoundingInfoFromPositionAccessor:HZ,MSFT_audio_emitter:f1e,MSFT_lod:p1e,MSFT_minecraftMesh:m1e,MSFT_sRGBFactors:g1e,SetInterpolationForKey:Ri,TransformNodeAnimationPropertyInfo:kw,WeightAnimationPropertyInfo:ZZ,_AddInteractivityObjectModel:R1e,addNewInteractivityFlowGraphMapping:EW,getAllSupportedNativeNodeTypes:lDe,getMappingForDeclaration:VK,getMappingForFullOperationName:jK,getQuaternion:YZ,getVector3:NG,getWeights:XZ,gltfTypeToBabylonType:I1e,registerGLTFExtension:_n,registeredGLTFExtensions:Mde,unregisterGLTFExtension:ln},Symbol.toStringTag,{value:"Module"}));function WK(a){let e=a.pathArray;const t=a.closeArray||!1,i=a.closePath||!1,s=a.invertUV||!1,r=Math.floor(e[0].length/2);let n=a.offset||r;n=n>r?r:Math.floor(n);const o=a.sideOrientation===0?0:a.sideOrientation||wt.DEFAULTSIDE,l=a.uvs,c=a.colors,u=[],f=[],p=[],m=[],_=[],d=[],h=[],x=[];let A;const S=[],E=[];let b,M,T;if(e.length<2){const Se=[],we=[];for(M=0;M<e[0].length-n;M++)Se.push(e[0][M]),we.push(e[0][M+n]);e=[Se,we]}let O=0;const R=i?1:0,I=t?1:0;let N,w;A=e[0].length;let D,k;for(b=0;b<e.length+I;b++){for(h[b]=0,_[b]=[0],N=b===e.length?e[0]:e[b],w=N.length,A=A<w?A:w,T=0;T<w;)u.push(N[T].x,N[T].y,N[T].z),T>0&&(D=N[T].subtract(N[T-1]).length(),k=D+h[b],_[b].push(k),h[b]=k),T++;i&&(T--,u.push(N[0].x,N[0].y,N[0].z),D=N[T].subtract(N[0]).length(),k=D+h[b],_[b].push(k),h[b]=k),S[b]=w+R,E[b]=O,O+=w+R}let Y,V,ee=null,K=null;for(M=0;M<A+R;M++)for(x[M]=0,d[M]=[0],b=0;b<e.length-1+I;b++)Y=e[b],V=b===e.length-1?e[0]:e[b+1],M===A?(ee=Y[0],K=V[0]):(ee=Y[M],K=V[M]),D=K.subtract(ee).length(),k=D+x[M],d[M].push(k),x[M]=k;let ie,ne;if(l)for(b=0;b<l.length;b++)m.push(l[b].x,_r?1-l[b].y:l[b].y);else for(b=0;b<e.length+I;b++)for(M=0;M<A+R;M++)ie=h[b]!=0?_[b][M]/h[b]:0,ne=x[M]!=0?d[M][b]/x[M]:0,s?m.push(ne,ie):m.push(ie,_r?1-ne:ne);b=0;let te=0,W=S[b]-1,Q=S[b+1]-1,re=W<Q?W:Q,oe=E[1]-E[0];const X=S.length-1;for(;te<=re&&b<X;)f.push(te,te+oe,te+1),f.push(te+oe+1,te+1,te+oe),te+=1,te===re&&(b++,oe=E[b+1]-E[b],W=S[b]-1,Q=S[b+1]-1,te=E[b],re=W<Q?W+te:Q+te);if(wt.ComputeNormals(u,f,p),i){let Se=0,we=0;for(b=0;b<e.length;b++){Se=E[b]*3,b+1<e.length?we=(E[b+1]-1)*3:we=p.length-3,p[Se]=(p[Se]+p[we])*.5,p[Se+1]=(p[Se+1]+p[we+1])*.5,p[Se+2]=(p[Se+2]+p[we+2])*.5;const ke=Math.sqrt(p[Se]*p[Se]+p[Se+1]*p[Se+1]+p[Se+2]*p[Se+2]);p[Se]/=ke,p[Se+1]/=ke,p[Se+2]/=ke,p[we]=p[Se],p[we+1]=p[Se+1],p[we+2]=p[Se+2]}}if(t){let Se=E[0]*3,we=E[e.length]*3;for(M=0;M<A+R;M++){p[Se]=(p[Se]+p[we])*.5,p[Se+1]=(p[Se+1]+p[we+1])*.5,p[Se+2]=(p[Se+2]+p[we+2])*.5;const ke=Math.sqrt(p[Se]*p[Se]+p[Se+1]*p[Se+1]+p[Se+2]*p[Se+2]);p[Se]/=ke,p[Se+1]/=ke,p[Se+2]/=ke,p[we]=p[Se],p[we+1]=p[Se+1],p[we+2]=p[Se+2],Se+=3,we+=3}}wt._ComputeSides(o,u,f,p,m,a.frontUVs,a.backUVs);let se=null;if(c){se=new Float32Array(c.length*4);for(let Se=0;Se<c.length;Se++)se[Se*4]=c[Se].r,se[Se*4+1]=c[Se].g,se[Se*4+2]=c[Se].b,se[Se*4+3]=c[Se].a}const ue=new wt,he=new Float32Array(u),fe=new Float32Array(p),Ae=new Float32Array(m);return ue.indices=f,ue.positions=he,ue.normals=fe,ue.uvs=Ae,se&&ue.set(se,q.ColorKind),i&&(ue._idx=E),ue}function Py(a,e,t=null){const i=e.pathArray,s=e.closeArray,r=e.closePath,n=Ne._GetDefaultSideOrientation(e.sideOrientation),o=e.instance,l=e.updatable;if(o){const c=ae.Vector3[0].setAll(Number.MAX_VALUE),u=ae.Vector3[1].setAll(-Number.MAX_VALUE),f=m=>{let _=i[0].length;const d=o;let h=0;const x=d._originalBuilderSideOrientation===Ne.DOUBLESIDE?2:1;for(let A=1;A<=x;++A)for(let S=0;S<i.length;++S){const E=i[S],b=E.length;_=_<b?_:b;for(let M=0;M<_;++M){const T=E[M];m[h]=T.x,m[h+1]=T.y,m[h+2]=T.z,c.minimizeInPlaceFromFloats(T.x,T.y,T.z),u.maximizeInPlaceFromFloats(T.x,T.y,T.z),h+=3}if(d._creationDataStorage&&d._creationDataStorage.closePath){const M=E[0];m[h]=M.x,m[h+1]=M.y,m[h+2]=M.z,h+=3}}},p=o.getVerticesData(q.PositionKind);if(f(p),o.hasBoundingInfo?o.getBoundingInfo().reConstruct(c,u,o._worldMatrix):o.buildBoundingInfo(c,u,o._worldMatrix),o.updateVerticesData(q.PositionKind,p,!1,!1),e.colors){const m=o.getVerticesData(q.ColorKind);for(let _=0,d=0;_<e.colors.length;_++,d+=4){const h=e.colors[_];m[d]=h.r,m[d+1]=h.g,m[d+2]=h.b,m[d+3]=h.a}o.updateVerticesData(q.ColorKind,m,!1,!1)}if(e.uvs){const m=o.getVerticesData(q.UVKind);for(let _=0;_<e.uvs.length;_++)m[_*2]=e.uvs[_].x,m[_*2+1]=_r?1-e.uvs[_].y:e.uvs[_].y;o.updateVerticesData(q.UVKind,m,!1,!1)}if(!o.areNormalsFrozen||o.isFacetDataEnabled){const m=o.getIndices(),_=o.getVerticesData(q.NormalKind),d=o.isFacetDataEnabled?o.getFacetDataParameters():null;if(wt.ComputeNormals(p,m,_,d),o._creationDataStorage&&o._creationDataStorage.closePath){let h=0,x=0;for(let A=0;A<i.length;A++)h=o._creationDataStorage.idx[A]*3,A+1<i.length?x=(o._creationDataStorage.idx[A+1]-1)*3:x=_.length-3,_[h]=(_[h]+_[x])*.5,_[h+1]=(_[h+1]+_[x+1])*.5,_[h+2]=(_[h+2]+_[x+2])*.5,_[x]=_[h],_[x+1]=_[h+1],_[x+2]=_[h+2]}o.areNormalsFrozen||o.updateVerticesData(q.NormalKind,_,!1,!1)}return o}else{const c=new Ne(a,t);c._originalBuilderSideOrientation=n,c._creationDataStorage=new rZ;const u=WK(e);return r&&(c._creationDataStorage.idx=u._idx),c._creationDataStorage.closePath=r,c._creationDataStorage.closeArray=s,u.applyToMesh(c,l),c}}const hDe={CreateRibbon:Py};wt.CreateRibbon=WK,Ne.CreateRibbon=(a,e,t=!1,i,s,r,n=!1,o,l)=>Py(a,{pathArray:e,closeArray:t,closePath:i,offset:s,updatable:n,sideOrientation:o,instance:l},r);function IW(a){const e=[],t=[],i=[],s=[],r=a.radius||.5,n=a.tessellation||64,o=a.arc&&(a.arc<=0||a.arc>1)?1:a.arc||1,l=a.sideOrientation===0?0:a.sideOrientation||wt.DEFAULTSIDE;e.push(0,0,0),s.push(.5,.5);const c=Math.PI*2*o,u=o===1?c/n:c/(n-1);let f=0;for(let _=0;_<n;_++){const d=Math.cos(f),h=Math.sin(f),x=(d+1)/2,A=(1-h)/2;e.push(r*d,r*h,0),s.push(x,_r?1-A:A),f+=u}o===1&&(e.push(e[3],e[4],e[5]),s.push(s[2],_r?1-s[3]:s[3]));const p=e.length/3;for(let _=1;_<p-1;_++)t.push(_+1,0,_);wt.ComputeNormals(e,t,i),wt._ComputeSides(l,e,t,i,s,a.frontUVs,a.backUVs);const m=new wt;return m.indices=t,m.positions=e,m.normals=i,m.uvs=s,m}function wP(a,e={},t=null){const i=new Ne(a,t);return e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation),i._originalBuilderSideOrientation=e.sideOrientation,IW(e).applyToMesh(i,e.updatable),i}const dDe={CreateDisc:wP};wt.CreateDisc=IW,Ne.CreateDisc=(a,e,t,i=null,s,r)=>wP(a,{radius:e,tessellation:t,sideOrientation:r,updatable:s},i),Ne._GroundMeshParser=(a,e)=>BP.Parse(a,e);class BP extends Ne{constructor(e,t){super(e,t),this.generateOctree=!1}getClassName(){return"GroundMesh"}get subdivisions(){return Math.min(this._subdivisionsX,this._subdivisionsY)}get subdivisionsX(){return this._subdivisionsX}get subdivisionsY(){return this._subdivisionsY}optimize(e,t=32){this._subdivisionsX=e,this._subdivisionsY=e,this.subdivide(e);const i=this;i.createOrUpdateSubmeshesOctree&&i.createOrUpdateSubmeshesOctree(t)}getHeightAtCoordinates(e,t){const i=this.getWorldMatrix(),s=ae.Matrix[5];i.invertToRef(s);const r=ae.Vector3[8];if(P.TransformCoordinatesFromFloatsToRef(e,0,t,s,r),e=r.x,t=r.z,e<this._minX||e>=this._maxX||t<=this._minZ||t>this._maxZ)return this.position.y;(!this._heightQuads||this._heightQuads.length==0)&&(this._initHeightQuads(),this._computeHeightQuads());const n=this._getFacetAt(e,t),o=-(n.x*e+n.z*t+n.w)/n.y;return P.TransformCoordinatesFromFloatsToRef(0,o,0,i,r),r.y}getNormalAtCoordinates(e,t){const i=new P(0,1,0);return this.getNormalAtCoordinatesToRef(e,t,i),i}getNormalAtCoordinatesToRef(e,t,i){const s=this.getWorldMatrix(),r=ae.Matrix[5];s.invertToRef(r);const n=ae.Vector3[8];if(P.TransformCoordinatesFromFloatsToRef(e,0,t,r,n),e=n.x,t=n.z,e<this._minX||e>this._maxX||t<this._minZ||t>this._maxZ)return this;(!this._heightQuads||this._heightQuads.length==0)&&(this._initHeightQuads(),this._computeHeightQuads());const o=this._getFacetAt(e,t);return P.TransformNormalFromFloatsToRef(o.x,o.y,o.z,s,i),this}updateCoordinateHeights(){return(!this._heightQuads||this._heightQuads.length==0)&&this._initHeightQuads(),this._computeHeightQuads(),this}_getFacetAt(e,t){const i=Math.floor((e+this._maxX)*this._subdivisionsX/this._width),s=Math.floor(-(t+this._maxZ)*this._subdivisionsY/this._height+this._subdivisionsY),r=this._heightQuads[s*this._subdivisionsX+i];let n;return t<r.slope.x*e+r.slope.y?n=r.facet1:n=r.facet2,n}_initHeightQuads(){const e=this._subdivisionsX,t=this._subdivisionsY;this._heightQuads=new Array;for(let i=0;i<t;i++)for(let s=0;s<e;s++){const r={slope:Ue.Zero(),facet1:new Yt(0,0,0,0),facet2:new Yt(0,0,0,0)};this._heightQuads[i*e+s]=r}return this}_computeHeightQuads(){const e=this.getVerticesData(q.PositionKind);if(!e)return this;const t=ae.Vector3[3],i=ae.Vector3[2],s=ae.Vector3[1],r=ae.Vector3[0],n=ae.Vector3[4],o=ae.Vector3[5],l=ae.Vector3[6],c=ae.Vector3[7],u=ae.Vector3[8];let f=0,p=0,m=0,_=0,d=0,h=0,x=0;const A=this._subdivisionsX,S=this._subdivisionsY;for(let E=0;E<S;E++)for(let b=0;b<A;b++){f=b*3,p=E*(A+1)*3,m=(E+1)*(A+1)*3,t.x=e[p+f],t.y=e[p+f+1],t.z=e[p+f+2],i.x=e[p+f+3],i.y=e[p+f+4],i.z=e[p+f+5],s.x=e[m+f],s.y=e[m+f+1],s.z=e[m+f+2],r.x=e[m+f+3],r.y=e[m+f+4],r.z=e[m+f+5],_=(r.z-t.z)/(r.x-t.x),d=t.z-_*t.x,i.subtractToRef(t,n),s.subtractToRef(t,o),r.subtractToRef(t,l),P.CrossToRef(l,o,c),P.CrossToRef(n,l,u),c.normalize(),u.normalize(),h=-(c.x*t.x+c.y*t.y+c.z*t.z),x=-(u.x*i.x+u.y*i.y+u.z*i.z);const M=this._heightQuads[E*A+b];M.slope.copyFromFloats(_,d),M.facet1.copyFromFloats(c.x,c.y,c.z,h),M.facet2.copyFromFloats(u.x,u.y,u.z,x)}return this}serialize(e){super.serialize(e),e.subdivisionsX=this._subdivisionsX,e.subdivisionsY=this._subdivisionsY,e.minX=this._minX,e.maxX=this._maxX,e.minZ=this._minZ,e.maxZ=this._maxZ,e.width=this._width,e.height=this._height}static Parse(e,t){const i=new BP(e.name,t);return i._subdivisionsX=e.subdivisionsX||1,i._subdivisionsY=e.subdivisionsY||1,i._minX=e.minX,i._maxX=e.maxX,i._minZ=e.minZ,i._maxZ=e.maxZ,i._width=e.width,i._height=e.height,i}}function Qv(a){const e=[],t=[],i=[],s=[];let r,n;const o=a.width||a.size||1,l=a.height||a.size||1,c=(a.subdivisionsX||a.subdivisions||1)|0,u=(a.subdivisionsY||a.subdivisions||1)|0;for(r=0;r<=u;r++)for(n=0;n<=c;n++){const p=new P(n*o/c-o/2,0,(u-r)*l/u-l/2),m=new P(0,1,0);t.push(p.x,p.y,p.z),i.push(m.x,m.y,m.z),s.push(n/c,_r?r/u:1-r/u)}for(r=0;r<u;r++)for(n=0;n<c;n++)e.push(n+1+(r+1)*(c+1)),e.push(n+1+r*(c+1)),e.push(n+r*(c+1)),e.push(n+(r+1)*(c+1)),e.push(n+1+(r+1)*(c+1)),e.push(n+r*(c+1));const f=new wt;return f.indices=e,f.positions=t,f.normals=i,f.uvs=s,f}function YK(a){const e=a.xmin!==void 0&&a.xmin!==null?a.xmin:-1,t=a.zmin!==void 0&&a.zmin!==null?a.zmin:-1,i=a.xmax!==void 0&&a.xmax!==null?a.xmax:1,s=a.zmax!==void 0&&a.zmax!==null?a.zmax:1,r=a.subdivisions||{w:1,h:1},n=a.precision||{w:1,h:1},o=[],l=[],c=[],u=[];let f,p,m,_;r.h=r.h<1?1:r.h,r.w=r.w<1?1:r.w,n.w=n.w<1?1:n.w,n.h=n.h<1?1:n.h;const d={w:(i-e)/r.w,h:(s-t)/r.h};function h(A,S,E,b){const M=l.length/3,T=n.w+1;for(f=0;f<n.h;f++)for(p=0;p<n.w;p++){const I=[M+p+f*T,M+(p+1)+f*T,M+(p+1)+(f+1)*T,M+p+(f+1)*T];o.push(I[1]),o.push(I[2]),o.push(I[3]),o.push(I[0]),o.push(I[1]),o.push(I[3])}const O=P.Zero(),R=new P(0,1,0);for(f=0;f<=n.h;f++)for(O.z=f*(b-S)/n.h+S,p=0;p<=n.w;p++)O.x=p*(E-A)/n.w+A,O.y=0,l.push(O.x,O.y,O.z),c.push(R.x,R.y,R.z),u.push(p/n.w,f/n.h)}for(m=0;m<r.h;m++)for(_=0;_<r.w;_++)h(e+_*d.w,t+m*d.h,e+(_+1)*d.w,t+(m+1)*d.h);const x=new wt;return x.indices=o,x.positions=l,x.normals=c,x.uvs=u,x}function XK(a){const e=[],t=[],i=[],s=[];let r,n;const o=a.colorFilter||new Pe(.3,.59,.11),l=a.alphaFilter||0;let c=!1;if(a.minHeight>a.maxHeight){c=!0;const f=a.maxHeight;a.maxHeight=a.minHeight,a.minHeight=f}for(r=0;r<=a.subdivisions;r++)for(n=0;n<=a.subdivisions;n++){const f=new P(n*a.width/a.subdivisions-a.width/2,0,(a.subdivisions-r)*a.height/a.subdivisions-a.height/2),p=(f.x+a.width/2)/a.width*(a.bufferWidth-1)|0,m=(1-(f.z+a.height/2)/a.height)*(a.bufferHeight-1)|0,_=(p+m*a.bufferWidth)*4;let d=a.buffer[_]/255,h=a.buffer[_+1]/255,x=a.buffer[_+2]/255;const A=a.buffer[_+3]/255;c&&(d=1-d,h=1-h,x=1-x);const S=d*o.r+h*o.g+x*o.b;A>=l?f.y=a.minHeight+(a.maxHeight-a.minHeight)*S:f.y=a.minHeight-Ii,a.heightBuffer&&(a.heightBuffer[r*(a.subdivisions+1)+n]=f.y),t.push(f.x,f.y,f.z),i.push(0,0,0),s.push(n/a.subdivisions,1-r/a.subdivisions)}for(r=0;r<a.subdivisions;r++)for(n=0;n<a.subdivisions;n++){const f=n+1+(r+1)*(a.subdivisions+1),p=n+1+r*(a.subdivisions+1),m=n+r*(a.subdivisions+1),_=n+(r+1)*(a.subdivisions+1),d=t[f*3+1]>=a.minHeight,h=t[p*3+1]>=a.minHeight,x=t[m*3+1]>=a.minHeight;d&&h&&x&&(e.push(f),e.push(p),e.push(m)),t[_*3+1]>=a.minHeight&&d&&x&&(e.push(_),e.push(f),e.push(m))}wt.ComputeNormals(t,e,i);const u=new wt;return u.indices=e,u.positions=t,u.normals=i,u.uvs=s,u}function cL(a,e={},t){const i=new BP(a,t);return i._setReady(!1),i._subdivisionsX=e.subdivisionsX||e.subdivisions||1,i._subdivisionsY=e.subdivisionsY||e.subdivisions||1,i._width=e.width||1,i._height=e.height||1,i._maxX=i._width/2,i._maxZ=i._height/2,i._minX=-i._maxX,i._minZ=-i._maxZ,Qv(e).applyToMesh(i,e.updatable),i._setReady(!0),i}function PW(a,e,t=null){const i=new Ne(a,t);return YK(e).applyToMesh(i,e.updatable),i}function OW(a,e,t={},i=null){const s=t.width||10,r=t.height||10,n=t.subdivisions||1,o=t.minHeight||0,l=t.maxHeight||1,c=t.colorFilter||new Pe(.3,.59,.11),u=t.alphaFilter||0,f=t.updatable,p=t.onReady;i=i||ei.LastCreatedScene;const m=new BP(a,i);m._subdivisionsX=n,m._subdivisionsY=n,m._width=s,m._height=r,m._maxX=m._width/2,m._maxZ=m._height/2,m._minX=-m._maxX,m._minZ=-m._maxZ,m._setReady(!1);let _;t.passHeightBufferInCallback&&(_=new Float32Array((n+1)*(n+1)));const d=(h,x,A)=>{XK({width:s,height:r,subdivisions:n,minHeight:o,maxHeight:l,colorFilter:c,buffer:h,bufferWidth:x,bufferHeight:A,alphaFilter:u,heightBuffer:_}).applyToMesh(m,f),p&&p(m,_),m._setReady(!0)};if(typeof e=="string"){const h=x=>{const A=x.width,S=x.height;if(i.isDisposed)return;const E=i==null?void 0:i.getEngine().resizeImageBitmap(x,A,S);d(E,A,S)};Le.LoadImage(e,h,t.onError?t.onError:()=>{},i.offlineProvider)}else d(e.data,e.width,e.height);return m}const fDe={CreateGround:cL,CreateGroundFromHeightMap:OW,CreateTiledGround:PW};wt.CreateGround=Qv,wt.CreateTiledGround=YK,wt.CreateGroundFromHeightMap=XK,Ne.CreateGround=(a,e,t,i,s,r)=>cL(a,{width:e,height:t,subdivisions:i,updatable:r},s),Ne.CreateTiledGround=(a,e,t,i,s,r,n,o,l)=>PW(a,{xmin:e,zmin:t,xmax:i,zmax:s,subdivisions:r,precision:n,updatable:l},o),Ne.CreateGroundFromHeightMap=(a,e,t,i,s,r,n,o,l,c,u)=>OW(a,e,{width:t,height:i,subdivisions:s,minHeight:r,maxHeight:n,updatable:l,onReady:c,alphaFilter:u},o);function RW(a){let t=[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23];const i=[0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0],s=[];let r=[];const n=a.width||a.size||1,o=a.height||a.size||1,l=a.depth||a.size||1,c=a.wrap||!1;let u=a.topBaseAt===void 0?1:a.topBaseAt,f=a.bottomBaseAt===void 0?0:a.bottomBaseAt;u=(u+4)%4,f=(f+4)%4;const p=[2,0,3,1],m=[2,0,1,3];let _=p[u],d=m[f],h=[1,-1,1,-1,-1,1,-1,1,1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,1,-1,1,-1,-1,1,-1,1,1,1,1,-1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,1,-1,1,-1,1,1,-1,1,1,1,1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1];if(c){t=[2,3,0,2,0,1,4,5,6,4,6,7,9,10,11,9,11,8,12,14,15,12,13,14],h=[-1,1,1,1,1,1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,1,1,1,1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,1,1,-1,-1,1,-1,-1,-1];let T=[[1,1,1],[-1,1,1],[-1,1,-1],[1,1,-1]],O=[[-1,-1,1],[1,-1,1],[1,-1,-1],[-1,-1,-1]];const R=[17,18,19,16],I=[22,23,20,21];for(;_>0;)T.unshift(T.pop()),R.unshift(R.pop()),_--;for(;d>0;)O.unshift(O.pop()),I.unshift(I.pop()),d--;T=T.flat(),O=O.flat(),h=h.concat(T).concat(O),t.push(R[0],R[2],R[3],R[0],R[1],R[2]),t.push(I[0],I[2],I[3],I[0],I[1],I[2])}const x=[n/2,o/2,l/2];r=h.reduce((T,O,R)=>T.concat(O*x[R%3]),[]);const A=a.sideOrientation===0?0:a.sideOrientation||wt.DEFAULTSIDE,S=a.faceUV||new Array(6),E=a.faceColors,b=[];for(let T=0;T<6;T++)S[T]===void 0&&(S[T]=new Yt(0,0,1,1)),E&&E[T]===void 0&&(E[T]=new St(1,1,1,1));for(let T=0;T<6;T++)if(s.push(S[T].z,_r?1-S[T].w:S[T].w),s.push(S[T].x,_r?1-S[T].w:S[T].w),s.push(S[T].x,_r?1-S[T].y:S[T].y),s.push(S[T].z,_r?1-S[T].y:S[T].y),E)for(let O=0;O<4;O++)b.push(E[T].r,E[T].g,E[T].b,E[T].a);wt._ComputeSides(A,r,t,i,s,a.frontUVs,a.backUVs);const M=new wt;if(M.indices=t,M.positions=r,M.normals=i,M.uvs=s,E){const T=A===wt.DOUBLESIDE?b.concat(b):b;M.colors=T}return M}function U1e(a){const e=a.width||a.size||1,t=a.height||a.size||1,i=a.depth||a.size||1,s=(a.widthSegments||a.segments||1)|0,r=(a.heightSegments||a.segments||1)|0,n=(a.depthSegments||a.segments||1)|0,o=new me,l=new me,c=new me,u=Qv({width:e,height:i,subdivisionsX:s,subdivisionsY:n});me.TranslationToRef(0,-t/2,0,l),me.RotationZToRef(Math.PI,o),o.multiplyToRef(l,c),u.transform(c);const f=Qv({width:e,height:i,subdivisionsX:s,subdivisionsY:n});me.TranslationToRef(0,t/2,0,c),f.transform(c);const p=Qv({width:t,height:i,subdivisionsX:r,subdivisionsY:n});me.TranslationToRef(-e/2,0,0,l),me.RotationZToRef(Math.PI/2,o),o.multiplyToRef(l,c),p.transform(c);const m=Qv({width:t,height:i,subdivisionsX:r,subdivisionsY:n});me.TranslationToRef(e/2,0,0,l),me.RotationZToRef(-Math.PI/2,o),o.multiplyToRef(l,c),m.transform(c);const _=Qv({width:e,height:t,subdivisionsX:s,subdivisionsY:r});me.TranslationToRef(0,0,-i/2,l),me.RotationXToRef(-Math.PI/2,o),o.multiplyToRef(l,c),_.transform(c);const d=Qv({width:e,height:t,subdivisionsX:s,subdivisionsY:r});return me.TranslationToRef(0,0,i/2,l),me.RotationXToRef(Math.PI/2,o),o.multiplyToRef(l,c),d.transform(c),u.merge([f,m,p,_,d],!0),u}function pa(a,e={},t=null){const i=new Ne(a,t);return e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation),i._originalBuilderSideOrientation=e.sideOrientation,RW(e).applyToMesh(i,e.updatable),i}const pDe={CreateBox:pa};wt.CreateBox=RW,Ne.CreateBox=(a,e,t=null,i,s)=>pa(a,{size:e,sideOrientation:s,updatable:i},t);function zP(a){const e=a.pattern||Ne.NO_FLIP,t=a.tileWidth||a.tileSize||1,i=a.tileHeight||a.tileSize||1,s=a.alignHorizontal||0,r=a.alignVertical||0,n=a.width||a.size||1,o=Math.floor(n/t);let l=n-o*t;const c=a.height||a.size||1,u=Math.floor(c/i);let f=c-u*i;const p=t*o/2,m=i*u/2;let _=0,d=0,h=0,x=0,A=0,S=0;if(l>0||f>0){switch(h=-p,x=-m,A=p,S=m,s){case Ne.CENTER:l/=2,h-=l,A+=l;break;case Ne.LEFT:A+=l,_=-l/2;break;case Ne.RIGHT:h-=l,_=l/2;break}switch(r){case Ne.CENTER:f/=2,x-=f,S+=f;break;case Ne.BOTTOM:S+=f,d=-f/2;break;case Ne.TOP:x-=f,d=f/2;break}}const E=[],b=[],M=[];M[0]=[0,0,1,0,1,1,0,1],M[1]=[0,0,1,0,1,1,0,1],(e===Ne.ROTATE_TILE||e===Ne.ROTATE_ROW)&&(M[1]=[1,1,0,1,0,0,1,0]),(e===Ne.FLIP_TILE||e===Ne.FLIP_ROW)&&(M[1]=[1,0,0,0,0,1,1,1]),(e===Ne.FLIP_N_ROTATE_TILE||e===Ne.FLIP_N_ROTATE_ROW)&&(M[1]=[0,1,1,1,1,0,0,0]);let T=[];const O=[],R=[];let I=0;for(let k=0;k<u;k++)for(let Y=0;Y<o;Y++)E.push(-p+Y*t+_,-m+k*i+d,0),E.push(-p+(Y+1)*t+_,-m+k*i+d,0),E.push(-p+(Y+1)*t+_,-m+(k+1)*i+d,0),E.push(-p+Y*t+_,-m+(k+1)*i+d,0),R.push(I,I+1,I+3,I+1,I+2,I+3),e===Ne.FLIP_TILE||e===Ne.ROTATE_TILE||e===Ne.FLIP_N_ROTATE_TILE?T=T.concat(M[(Y%2+k%2)%2]):e===Ne.FLIP_ROW||e===Ne.ROTATE_ROW||e===Ne.FLIP_N_ROTATE_ROW?T=T.concat(M[k%2]):T=T.concat(M[0]),O.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),b.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1),I+=4;if(l>0||f>0){const k=f>0&&(r===Ne.CENTER||r===Ne.TOP),Y=f>0&&(r===Ne.CENTER||r===Ne.BOTTOM),V=l>0&&(s===Ne.CENTER||s===Ne.RIGHT),ee=l>0&&(s===Ne.CENTER||s===Ne.LEFT);let K=[],ie,ne,te,W;if(k&&V&&(E.push(h+_,x+d,0),E.push(-p+_,x+d,0),E.push(-p+_,x+f+d,0),E.push(h+_,x+f+d,0),R.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,ie=1-l/t,ne=1-f/i,te=1,W=1,K=[ie,ne,te,ne,te,W,ie,W],e===Ne.ROTATE_ROW&&(K=[1-ie,1-ne,1-te,1-ne,1-te,1-W,1-ie,1-W]),e===Ne.FLIP_ROW&&(K=[1-ie,ne,1-te,ne,1-te,W,1-ie,W]),e===Ne.FLIP_N_ROTATE_ROW&&(K=[ie,1-ne,te,1-ne,te,1-W,ie,1-W]),T=T.concat(K),O.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),b.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),k&&ee&&(E.push(p+_,x+d,0),E.push(A+_,x+d,0),E.push(A+_,x+f+d,0),E.push(p+_,x+f+d,0),R.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,ie=0,ne=1-f/i,te=l/t,W=1,K=[ie,ne,te,ne,te,W,ie,W],(e===Ne.ROTATE_ROW||e===Ne.ROTATE_TILE&&o%2===0)&&(K=[1-ie,1-ne,1-te,1-ne,1-te,1-W,1-ie,1-W]),(e===Ne.FLIP_ROW||e===Ne.FLIP_TILE&&o%2===0)&&(K=[1-ie,ne,1-te,ne,1-te,W,1-ie,W]),(e===Ne.FLIP_N_ROTATE_ROW||e===Ne.FLIP_N_ROTATE_TILE&&o%2===0)&&(K=[ie,1-ne,te,1-ne,te,1-W,ie,1-W]),T=T.concat(K),O.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),b.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),Y&&V&&(E.push(h+_,m+d,0),E.push(-p+_,m+d,0),E.push(-p+_,S+d,0),E.push(h+_,S+d,0),R.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,ie=1-l/t,ne=0,te=1,W=f/i,K=[ie,ne,te,ne,te,W,ie,W],(e===Ne.ROTATE_ROW&&u%2===1||e===Ne.ROTATE_TILE&&u%1===0)&&(K=[1-ie,1-ne,1-te,1-ne,1-te,1-W,1-ie,1-W]),(e===Ne.FLIP_ROW&&u%2===1||e===Ne.FLIP_TILE&&u%2===0)&&(K=[1-ie,ne,1-te,ne,1-te,W,1-ie,W]),(e===Ne.FLIP_N_ROTATE_ROW&&u%2===1||e===Ne.FLIP_N_ROTATE_TILE&&u%2===0)&&(K=[ie,1-ne,te,1-ne,te,1-W,ie,1-W]),T=T.concat(K),O.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),b.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),Y&&ee&&(E.push(p+_,m+d,0),E.push(A+_,m+d,0),E.push(A+_,S+d,0),E.push(p+_,S+d,0),R.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,ie=0,ne=0,te=l/t,W=f/i,K=[ie,ne,te,ne,te,W,ie,W],(e===Ne.ROTATE_ROW&&u%2===1||e===Ne.ROTATE_TILE&&(u+o)%2===1)&&(K=[1-ie,1-ne,1-te,1-ne,1-te,1-W,1-ie,1-W]),(e===Ne.FLIP_ROW&&u%2===1||e===Ne.FLIP_TILE&&(u+o)%2===1)&&(K=[1-ie,ne,1-te,ne,1-te,W,1-ie,W]),(e===Ne.FLIP_N_ROTATE_ROW&&u%2===1||e===Ne.FLIP_N_ROTATE_TILE&&(u+o)%2===1)&&(K=[ie,1-ne,te,1-ne,te,1-W,ie,1-W]),T=T.concat(K),O.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),b.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),k){const Q=[];ie=0,ne=1-f/i,te=1,W=1,Q[0]=[ie,ne,te,ne,te,W,ie,W],Q[1]=[ie,ne,te,ne,te,W,ie,W],(e===Ne.ROTATE_TILE||e===Ne.ROTATE_ROW)&&(Q[1]=[1-ie,1-ne,1-te,1-ne,1-te,1-W,1-ie,1-W]),(e===Ne.FLIP_TILE||e===Ne.FLIP_ROW)&&(Q[1]=[1-ie,ne,1-te,ne,1-te,W,1-ie,W]),(e===Ne.FLIP_N_ROTATE_TILE||e===Ne.FLIP_N_ROTATE_ROW)&&(Q[1]=[ie,1-ne,te,1-ne,te,1-W,ie,1-W]);for(let re=0;re<o;re++)E.push(-p+re*t+_,x+d,0),E.push(-p+(re+1)*t+_,x+d,0),E.push(-p+(re+1)*t+_,x+f+d,0),E.push(-p+re*t+_,x+f+d,0),R.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,e===Ne.FLIP_TILE||e===Ne.ROTATE_TILE||e===Ne.FLIP_N_ROTATE_TILE?T=T.concat(Q[(re+1)%2]):e===Ne.FLIP_ROW||e===Ne.ROTATE_ROW||e===Ne.FLIP_N_ROTATE_ROW?T=T.concat(Q[1]):T=T.concat(Q[0]),O.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),b.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)}if(Y){const Q=[];ie=0,ne=0,te=1,W=f/i,Q[0]=[ie,ne,te,ne,te,W,ie,W],Q[1]=[ie,ne,te,ne,te,W,ie,W],(e===Ne.ROTATE_TILE||e===Ne.ROTATE_ROW)&&(Q[1]=[1-ie,1-ne,1-te,1-ne,1-te,1-W,1-ie,1-W]),(e===Ne.FLIP_TILE||e===Ne.FLIP_ROW)&&(Q[1]=[1-ie,ne,1-te,ne,1-te,W,1-ie,W]),(e===Ne.FLIP_N_ROTATE_TILE||e===Ne.FLIP_N_ROTATE_ROW)&&(Q[1]=[ie,1-ne,te,1-ne,te,1-W,ie,1-W]);for(let re=0;re<o;re++)E.push(-p+re*t+_,S-f+d,0),E.push(-p+(re+1)*t+_,S-f+d,0),E.push(-p+(re+1)*t+_,S+d,0),E.push(-p+re*t+_,S+d,0),R.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,e===Ne.FLIP_TILE||e===Ne.ROTATE_TILE||e===Ne.FLIP_N_ROTATE_TILE?T=T.concat(Q[(re+u)%2]):e===Ne.FLIP_ROW||e===Ne.ROTATE_ROW||e===Ne.FLIP_N_ROTATE_ROW?T=T.concat(Q[u%2]):T=T.concat(Q[0]),O.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),b.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)}if(V){const Q=[];ie=1-l/t,ne=0,te=1,W=1,Q[0]=[ie,ne,te,ne,te,W,ie,W],Q[1]=[ie,ne,te,ne,te,W,ie,W],(e===Ne.ROTATE_TILE||e===Ne.ROTATE_ROW)&&(Q[1]=[1-ie,1-ne,1-te,1-ne,1-te,1-W,1-ie,1-W]),(e===Ne.FLIP_TILE||e===Ne.FLIP_ROW)&&(Q[1]=[1-ie,ne,1-te,ne,1-te,W,1-ie,W]),(e===Ne.FLIP_N_ROTATE_TILE||e===Ne.FLIP_N_ROTATE_ROW)&&(Q[1]=[ie,1-ne,te,1-ne,te,1-W,ie,1-W]);for(let re=0;re<u;re++)E.push(h+_,-m+re*i+d,0),E.push(h+l+_,-m+re*i+d,0),E.push(h+l+_,-m+(re+1)*i+d,0),E.push(h+_,-m+(re+1)*i+d,0),R.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,e===Ne.FLIP_TILE||e===Ne.ROTATE_TILE||e===Ne.FLIP_N_ROTATE_TILE?T=T.concat(Q[(re+1)%2]):e===Ne.FLIP_ROW||e===Ne.ROTATE_ROW||e===Ne.FLIP_N_ROTATE_ROW?T=T.concat(Q[re%2]):T=T.concat(Q[0]),O.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),b.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)}if(ee){const Q=[];ie=0,ne=0,te=l/i,W=1,Q[0]=[ie,ne,te,ne,te,W,ie,W],Q[1]=[ie,ne,te,ne,te,W,ie,W],(e===Ne.ROTATE_TILE||e===Ne.ROTATE_ROW)&&(Q[1]=[1-ie,1-ne,1-te,1-ne,1-te,1-W,1-ie,1-W]),(e===Ne.FLIP_TILE||e===Ne.FLIP_ROW)&&(Q[1]=[1-ie,ne,1-te,ne,1-te,W,1-ie,W]),(e===Ne.FLIP_N_ROTATE_TILE||e===Ne.FLIP_N_ROTATE_ROW)&&(Q[1]=[ie,1-ne,te,1-ne,te,1-W,ie,1-W]);for(let re=0;re<u;re++)E.push(A-l+_,-m+re*i+d,0),E.push(A+_,-m+re*i+d,0),E.push(A+_,-m+(re+1)*i+d,0),E.push(A-l+_,-m+(re+1)*i+d,0),R.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,e===Ne.FLIP_TILE||e===Ne.ROTATE_TILE||e===Ne.FLIP_N_ROTATE_TILE?T=T.concat(Q[(re+o)%2]):e===Ne.FLIP_ROW||e===Ne.ROTATE_ROW||e===Ne.FLIP_N_ROTATE_ROW?T=T.concat(Q[re%2]):T=T.concat(Q[0]),O.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),b.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)}}const N=a.sideOrientation===0?0:a.sideOrientation||wt.DEFAULTSIDE;wt._ComputeSides(N,E,R,b,T,a.frontUVs,a.backUVs);const w=new wt;w.indices=R,w.positions=E,w.normals=b,w.uvs=T;const D=N===wt.DOUBLESIDE?O.concat(O):O;return w.colors=D,w}function ZK(a,e,t=null){const i=new Ne(a,t);return e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation),i._originalBuilderSideOrientation=e.sideOrientation,zP(e).applyToMesh(i,e.updatable),i}const mDe={CreateTiledPlane:ZK};wt.CreateTiledPlane=zP;function KK(a){const t=a.faceUV||new Array(6),i=a.faceColors,s=a.pattern||Ne.NO_FLIP,r=a.width||a.size||1,n=a.height||a.size||1,o=a.depth||a.size||1,l=a.tileWidth||a.tileSize||1,c=a.tileHeight||a.tileSize||1,u=a.alignHorizontal||0,f=a.alignVertical||0,p=a.sideOrientation===0?0:a.sideOrientation||wt.DEFAULTSIDE;for(let te=0;te<6;te++)t[te]===void 0&&(t[te]=new Yt(0,0,1,1)),i&&i[te]===void 0&&(i[te]=new St(1,1,1,1));const m=r/2,_=n/2,d=o/2,h=[];for(let te=0;te<2;te++)h[te]=zP({pattern:s,tileWidth:l,tileHeight:c,width:r,height:n,alignVertical:f,alignHorizontal:u,sideOrientation:p});for(let te=2;te<4;te++)h[te]=zP({pattern:s,tileWidth:l,tileHeight:c,width:o,height:n,alignVertical:f,alignHorizontal:u,sideOrientation:p});let x=f;f===Ne.BOTTOM?x=Ne.TOP:f===Ne.TOP&&(x=Ne.BOTTOM);for(let te=4;te<6;te++)h[te]=zP({pattern:s,tileWidth:l,tileHeight:c,width:r,height:o,alignVertical:x,alignHorizontal:u,sideOrientation:p});let A=[],S=[],E=[],b=[];const M=[],T=[],O=[],R=[];let I=0,N=0;for(let te=0;te<6;te++){const W=h[te].positions.length;T[te]=[],O[te]=[];for(let Q=0;Q<W/3;Q++)T[te].push(new P(h[te].positions[3*Q],h[te].positions[3*Q+1],h[te].positions[3*Q+2])),O[te].push(new P(h[te].normals[3*Q],h[te].normals[3*Q+1],h[te].normals[3*Q+2]));I=h[te].uvs.length,R[te]=[];for(let Q=0;Q<I;Q+=2)R[te][Q]=t[te].x+(t[te].z-t[te].x)*h[te].uvs[Q],R[te][Q+1]=t[te].y+(t[te].w-t[te].y)*h[te].uvs[Q+1],_r&&(R[te][Q+1]=1-R[te][Q+1]);if(E=E.concat(R[te]),b=b.concat(h[te].indices.map(Q=>Q+N)),N+=T[te].length,i)for(let Q=0;Q<4;Q++)M.push(i[te].r,i[te].g,i[te].b,i[te].a)}const w=new P(0,0,d),D=me.RotationY(Math.PI);A=T[0].map(te=>P.TransformNormal(te,D).add(w)).map(te=>[te.x,te.y,te.z]).reduce((te,W)=>te.concat(W),[]),S=O[0].map(te=>P.TransformNormal(te,D)).map(te=>[te.x,te.y,te.z]).reduce((te,W)=>te.concat(W),[]),A=A.concat(T[1].map(te=>te.subtract(w)).map(te=>[te.x,te.y,te.z]).reduce((te,W)=>te.concat(W),[])),S=S.concat(O[1].map(te=>[te.x,te.y,te.z]).reduce((te,W)=>te.concat(W),[]));const k=new P(m,0,0),Y=me.RotationY(-Math.PI/2);A=A.concat(T[2].map(te=>P.TransformNormal(te,Y).add(k)).map(te=>[te.x,te.y,te.z]).reduce((te,W)=>te.concat(W),[])),S=S.concat(O[2].map(te=>P.TransformNormal(te,Y)).map(te=>[te.x,te.y,te.z]).reduce((te,W)=>te.concat(W),[]));const V=me.RotationY(Math.PI/2);A=A.concat(T[3].map(te=>P.TransformNormal(te,V).subtract(k)).map(te=>[te.x,te.y,te.z]).reduce((te,W)=>te.concat(W),[])),S=S.concat(O[3].map(te=>P.TransformNormal(te,V)).map(te=>[te.x,te.y,te.z]).reduce((te,W)=>te.concat(W),[]));const ee=new P(0,_,0),K=me.RotationX(Math.PI/2);A=A.concat(T[4].map(te=>P.TransformNormal(te,K).add(ee)).map(te=>[te.x,te.y,te.z]).reduce((te,W)=>te.concat(W),[])),S=S.concat(O[4].map(te=>P.TransformNormal(te,K)).map(te=>[te.x,te.y,te.z]).reduce((te,W)=>te.concat(W),[]));const ie=me.RotationX(-Math.PI/2);A=A.concat(T[5].map(te=>P.TransformNormal(te,ie).subtract(ee)).map(te=>[te.x,te.y,te.z]).reduce((te,W)=>te.concat(W),[])),S=S.concat(O[5].map(te=>P.TransformNormal(te,ie)).map(te=>[te.x,te.y,te.z]).reduce((te,W)=>te.concat(W),[])),wt._ComputeSides(p,A,b,S,E);const ne=new wt;if(ne.indices=b,ne.positions=A,ne.normals=S,ne.uvs=E,i){const te=p===wt.DOUBLESIDE?M.concat(M):M;ne.colors=te}return ne}function qK(a,e,t=null){const i=new Ne(a,t);return e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation),i._originalBuilderSideOrientation=e.sideOrientation,KK(e).applyToMesh(i,e.updatable),i}const gDe={CreateTiledBox:qK};wt.CreateTiledBox=KK;function DW(a){const e=(a.segments||32)|0,t=a.diameterX||a.diameter||1,i=a.diameterY||a.diameter||1,s=a.diameterZ||a.diameter||1,r=a.arc&&(a.arc<=0||a.arc>1)?1:a.arc||1,n=a.slice&&a.slice<=0?1:a.slice||1,o=a.sideOrientation===0?0:a.sideOrientation||wt.DEFAULTSIDE,l=!!a.dedupTopBottomIndices,c=new P(t/2,i/2,s/2),u=2+e,f=2*u,p=[],m=[],_=[],d=[];for(let x=0;x<=u;x++){const A=x/u,S=A*Math.PI*n;for(let E=0;E<=f;E++){const b=E/f,M=b*Math.PI*2*r,T=me.RotationZ(-S),O=me.RotationY(M),R=P.TransformCoordinates(P.Up(),T),I=P.TransformCoordinates(R,O),N=I.multiply(c),w=I.divide(c).normalize();m.push(N.x,N.y,N.z),_.push(w.x,w.y,w.z),d.push(b,_r?1-A:A)}if(x>0){const E=m.length/3;for(let b=E-2*(f+1);b+f+2<E;b++)l?(x>1&&(p.push(b),p.push(b+1),p.push(b+f+1)),(x<u||n<1)&&(p.push(b+f+1),p.push(b+1),p.push(b+f+2))):(p.push(b),p.push(b+1),p.push(b+f+1),p.push(b+f+1),p.push(b+1),p.push(b+f+2))}}wt._ComputeSides(o,m,p,_,d,a.frontUVs,a.backUVs);const h=new wt;return h.indices=p,h.positions=m,h.normals=_,h.uvs=d,h}function hd(a,e={},t=null){const i=new Ne(a,t);return e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation),i._originalBuilderSideOrientation=e.sideOrientation,DW(e).applyToMesh(i,e.updatable),i}const _De={CreateSphere:hd};wt.CreateSphere=DW,Ne.CreateSphere=(a,e,t,i,s,r)=>hd(a,{segments:e,diameterX:t,diameterY:t,diameterZ:t,sideOrientation:r,updatable:s},i);function NW(a){const e=a.height||2;let t=a.diameterTop===0?0:a.diameterTop||a.diameter||1,i=a.diameterBottom===0?0:a.diameterBottom||a.diameter||1;t=t||1e-5,i=i||1e-5;const s=(a.tessellation||24)|0,r=(a.subdivisions||1)|0,n=!!a.hasRings,o=!!a.enclose,l=a.cap===0?0:a.cap||Ne.CAP_ALL,c=a.arc&&(a.arc<=0||a.arc>1)?1:a.arc||1,u=a.sideOrientation===0?0:a.sideOrientation||wt.DEFAULTSIDE,f=a.faceUV||new Array(3),p=a.faceColors,m=c!==1&&o?2:0,_=n?r:1,d=2+(1+m)*_;let h;for(h=0;h<d;h++)p&&p[h]===void 0&&(p[h]=new St(1,1,1,1));for(h=0;h<d;h++)f&&f[h]===void 0&&(f[h]=new Yt(0,0,1,1));const x=[],A=[],S=[],E=[],b=[],M=Math.PI*2*c/s;let T,O,R;const I=(i-t)/2/e,N=P.Zero(),w=P.Zero(),D=P.Zero(),k=P.Zero(),Y=P.Zero(),V=fo.Y;let ee,K,ie,ne=1,te=1,W=0,Q=0;for(ee=0;ee<=r;ee++)for(O=ee/r,R=(O*(t-i)+i)/2,ne=n&&ee!==0&&ee!==r?2:1,ie=0;ie<ne;ie++){for(n&&(te+=ie),o&&(te+=2*ie),K=0;K<=s;K++)T=K*M,N.x=Math.cos(-T)*R,N.y=-e/2+O*e,N.z=Math.sin(-T)*R,t===0&&ee===r?(w.x=S[S.length-(s+1)*3],w.y=S[S.length-(s+1)*3+1],w.z=S[S.length-(s+1)*3+2]):(w.x=N.x,w.z=N.z,w.y=Math.sqrt(w.x*w.x+w.z*w.z)*I,w.normalize()),K===0&&(D.copyFrom(N),k.copyFrom(w)),A.push(N.x,N.y,N.z),S.push(w.x,w.y,w.z),n?Q=W!==te?f[te].y:f[te].w:Q=f[te].y+(f[te].w-f[te].y)*O,E.push(f[te].x+(f[te].z-f[te].x)*K/s,_r?1-Q:Q),p&&b.push(p[te].r,p[te].g,p[te].b,p[te].a);c!==1&&o&&(A.push(N.x,N.y,N.z),A.push(0,N.y,0),A.push(0,N.y,0),A.push(D.x,D.y,D.z),P.CrossToRef(V,w,Y),Y.normalize(),S.push(Y.x,Y.y,Y.z,Y.x,Y.y,Y.z),P.CrossToRef(k,V,Y),Y.normalize(),S.push(Y.x,Y.y,Y.z,Y.x,Y.y,Y.z),n?Q=W!==te?f[te+1].y:f[te+1].w:Q=f[te+1].y+(f[te+1].w-f[te+1].y)*O,E.push(f[te+1].x,_r?1-Q:Q),E.push(f[te+1].z,_r?1-Q:Q),n?Q=W!==te?f[te+2].y:f[te+2].w:Q=f[te+2].y+(f[te+2].w-f[te+2].y)*O,E.push(f[te+2].x,_r?1-Q:Q),E.push(f[te+2].z,_r?1-Q:Q),p&&(b.push(p[te+1].r,p[te+1].g,p[te+1].b,p[te+1].a),b.push(p[te+1].r,p[te+1].g,p[te+1].b,p[te+1].a),b.push(p[te+2].r,p[te+2].g,p[te+2].b,p[te+2].a),b.push(p[te+2].r,p[te+2].g,p[te+2].b,p[te+2].a))),W!==te&&(W=te)}const re=c!==1&&o?s+4:s;for(ee=0,te=0;te<r;te++){let se=0,ue=0,he=0,fe=0;for(K=0;K<s;K++)se=ee*(re+1)+K,ue=(ee+1)*(re+1)+K,he=ee*(re+1)+(K+1),fe=(ee+1)*(re+1)+(K+1),x.push(se,ue,he),x.push(fe,he,ue);c!==1&&o&&(x.push(se+2,ue+2,he+2),x.push(fe+2,he+2,ue+2),x.push(se+4,ue+4,he+4),x.push(fe+4,he+4,ue+4)),ee=n?ee+2:ee+1}const oe=se=>{const ue=se?t/2:i/2;if(ue===0)return;let he,fe,Ae;const Se=se?f[d-1]:f[0];let we=null;p&&(we=se?p[d-1]:p[0]);const ke=A.length/3,st=se?e/2:-e/2,Ve=new P(0,st,0);A.push(Ve.x,Ve.y,Ve.z),S.push(0,se?1:-1,0);const Ke=Se.y+(Se.w-Se.y)*.5;E.push(Se.x+(Se.z-Se.x)*.5,_r?1-Ke:Ke),we&&b.push(we.r,we.g,we.b,we.a);const ct=new Ue(.5,.5);for(Ae=0;Ae<=s;Ae++){he=Math.PI*2*Ae*c/s;const nt=Math.cos(-he),at=Math.sin(-he);fe=new P(nt*ue,st,at*ue);const xt=new Ue(nt*ct.x+.5,at*ct.y+.5);A.push(fe.x,fe.y,fe.z),S.push(0,se?1:-1,0);const Qe=Se.y+(Se.w-Se.y)*xt.y;E.push(Se.x+(Se.z-Se.x)*xt.x,_r?1-Qe:Qe),we&&b.push(we.r,we.g,we.b,we.a)}for(Ae=0;Ae<s;Ae++)se?(x.push(ke),x.push(ke+(Ae+2)),x.push(ke+(Ae+1))):(x.push(ke),x.push(ke+(Ae+1)),x.push(ke+(Ae+2)))};(l===Ne.CAP_START||l===Ne.CAP_ALL)&&oe(!1),(l===Ne.CAP_END||l===Ne.CAP_ALL)&&oe(!0),wt._ComputeSides(u,A,x,S,E,a.frontUVs,a.backUVs);const X=new wt;return X.indices=x,X.positions=A,X.normals=S,X.uvs=E,p&&(X.colors=b),X}function e1(a,e={},t){const i=new Ne(a,t);return e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation),i._originalBuilderSideOrientation=e.sideOrientation,NW(e).applyToMesh(i,e.updatable),i}const vDe={CreateCylinder:e1};wt.CreateCylinder=NW,Ne.CreateCylinder=(a,e,t,i,s,r,n,o,l)=>((n===void 0||!(n instanceof ui))&&(n!==void 0&&(l=o||Ne.DEFAULTSIDE,o=n),n=r,r=1),e1(a,{height:e,diameterTop:t,diameterBottom:i,tessellation:s,subdivisions:r,sideOrientation:l,updatable:o},n));function wW(a){const e=[],t=[],i=[],s=[],r=a.diameter||1,n=a.thickness||.5,o=(a.tessellation||16)|0,l=a.sideOrientation===0?0:a.sideOrientation||wt.DEFAULTSIDE,c=o+1;for(let f=0;f<=o;f++){const p=f/o,m=f*Math.PI*2/o-Math.PI/2,_=me.Translation(r/2,0,0).multiply(me.RotationY(m));for(let d=0;d<=o;d++){const h=1-d/o,x=d*Math.PI*2/o+Math.PI,A=Math.cos(x),S=Math.sin(x);let E=new P(A,S,0),b=E.scale(n/2);const M=new Ue(p,h);b=P.TransformCoordinates(b,_),E=P.TransformNormal(E,_),t.push(b.x,b.y,b.z),i.push(E.x,E.y,E.z),s.push(M.x,_r?1-M.y:M.y);const T=(f+1)%c,O=(d+1)%c;e.push(f*c+d),e.push(f*c+O),e.push(T*c+d),e.push(f*c+O),e.push(T*c+O),e.push(T*c+d)}}wt._ComputeSides(l,t,e,i,s,a.frontUVs,a.backUVs);const u=new wt;return u.indices=e,u.positions=t,u.normals=i,u.uvs=s,u}function Jv(a,e={},t){const i=new Ne(a,t);return e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation),i._originalBuilderSideOrientation=e.sideOrientation,wW(e).applyToMesh(i,e.updatable),i}const ADe={CreateTorus:Jv};wt.CreateTorus=wW,Ne.CreateTorus=(a,e,t,i,s,r,n)=>Jv(a,{diameter:e,thickness:t,tessellation:i,sideOrientation:n,updatable:r},s);function QK(a){const e=[],t=[],i=[],s=[],r=a.radius||2,n=a.tube||.5,o=a.radialSegments||32,l=a.tubularSegments||32,c=a.p||2,u=a.q||3,f=a.sideOrientation===0?0:a.sideOrientation||wt.DEFAULTSIDE,p=h=>{const x=Math.cos(h),A=Math.sin(h),S=u/c*h,E=Math.cos(S),b=r*(2+E)*.5*x,M=r*(2+E)*A*.5,T=r*Math.sin(S)*.5;return new P(b,M,T)};let m,_;for(m=0;m<=o;m++){const x=m%o/o*2*c*Math.PI,A=p(x),S=p(x+.01),E=S.subtract(A);let b=S.add(A);const M=P.Cross(E,b);for(b=P.Cross(M,E),M.normalize(),b.normalize(),_=0;_<l;_++){const O=_%l/l*2*Math.PI,R=-n*Math.cos(O),I=n*Math.sin(O);t.push(A.x+R*b.x+I*M.x),t.push(A.y+R*b.y+I*M.y),t.push(A.z+R*b.z+I*M.z),s.push(m/o),s.push(_r?1-_/l:_/l)}}for(m=0;m<o;m++)for(_=0;_<l;_++){const h=(_+1)%l,x=m*l+_,A=(m+1)*l+_,S=(m+1)*l+h,E=m*l+h;e.push(E),e.push(A),e.push(x),e.push(E),e.push(S),e.push(A)}wt.ComputeNormals(t,e,i),wt._ComputeSides(f,t,e,i,s,a.frontUVs,a.backUVs);const d=new wt;return d.indices=e,d.positions=t,d.normals=i,d.uvs=s,d}function BW(a,e={},t){const i=new Ne(a,t);return e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation),i._originalBuilderSideOrientation=e.sideOrientation,QK(e).applyToMesh(i,e.updatable),i}const CDe={CreateTorusKnot:BW};wt.CreateTorusKnot=QK,Ne.CreateTorusKnot=(a,e,t,i,s,r,n,o,l,c)=>BW(a,{radius:e,tube:t,radialSegments:i,tubularSegments:s,p:r,q:n,sideOrientation:c,updatable:l},o),Ne._LinesMeshParser=(a,e)=>$6.Parse(a,e);class $6 extends Ne{_isShaderMaterial(e){return e.getClassName()==="ShaderMaterial"}constructor(e,t=null,i=null,s=null,r,n,o,l){super(e,t,i,s,r),this.useVertexColor=n,this.useVertexAlpha=o,this.color=new Pe(1,1,1),this.alpha=1,this._shaderLanguage=0,s&&(this.color=s.color.clone(),this.alpha=s.alpha,this.useVertexColor=s.useVertexColor,this.useVertexAlpha=s.useVertexAlpha),this.intersectionThreshold=.1;const c=[],u={attributes:[q.PositionKind],uniforms:["world","viewProjection"],needAlphaBlending:!0,defines:c,useClipPlane:null,shaderLanguage:0};this.useVertexAlpha?u.defines.push("#define VERTEXALPHA"):u.needAlphaBlending=!1,this.useVertexColor?(u.defines.push("#define VERTEXCOLOR"),u.attributes.push(q.ColorKind)):(u.uniforms.push("color"),this._color4=new St),l?this.material=l:(this.getScene().getEngine().isWebGPU&&!$6.ForceGLSL&&(this._shaderLanguage=1),u.shaderLanguage=this._shaderLanguage,u.extraInitializationsAsync=async()=>{this._shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>lHe),Promise.resolve().then(()=>oHe)]):await Promise.all([Promise.resolve().then(()=>MUe),Promise.resolve().then(()=>SUe)])},this.material=new Fo("colorShader",this.getScene(),"color",u,!1),this.material.doNotSerialize=!0)}isReady(){return this._lineMaterial.isReady(this,!!this._userInstancedBuffersStorage||this.hasThinInstances)?super.isReady():!1}getClassName(){return"LinesMesh"}get material(){return this._lineMaterial}set material(e){this._lineMaterial=e,this._lineMaterial.fillMode=ft.LineListDrawMode}get checkCollisions(){return!1}set checkCollisions(e){}_bind(e,t){if(!this._geometry)return this;const i=this.isUnIndexed?null:this._geometry.getIndexBuffer();if(!this._userInstancedBuffersStorage||this.hasThinInstances?this._geometry._bind(t,i):this._geometry._bind(t,i,this._userInstancedBuffersStorage.vertexBuffers,this._userInstancedBuffersStorage.vertexArrayObjects),!this.useVertexColor&&this._isShaderMaterial(this._lineMaterial)){const{r:s,g:r,b:n}=this.color;this._color4.set(s,r,n,this.alpha),this._lineMaterial.setColor4("color",this._color4)}return this}_draw(e,t,i){if(!this._geometry||!this._geometry.getVertexBuffers()||!this._unIndexed&&!this._geometry.getIndexBuffer())return this;const s=this.getScene().getEngine();return this._unIndexed?s.drawArraysType(ft.LineListDrawMode,e.verticesStart,e.verticesCount,i):s.drawElementsType(ft.LineListDrawMode,e.indexStart,e.indexCount,i),this}dispose(e,t=!1,i){i||this._lineMaterial.dispose(!1,!1,!0),super.dispose(e)}clone(e,t=null,i){return new $6(e,this.getScene(),t,this,i)}createInstance(e){const t=new JK(e,this);if(this.instancedBuffers){t.instancedBuffers={};for(const i in this.instancedBuffers)t.instancedBuffers[i]=this.instancedBuffers[i]}return t}serialize(e){super.serialize(e),e.color=this.color.asArray(),e.alpha=this.alpha}static Parse(e,t){const i=new $6(e.name,t);return i.color=Pe.FromArray(e.color),i.alpha=e.alpha,i}}$6.ForceGLSL=!1;class JK extends $x{constructor(e,t){super(e,t),this.intersectionThreshold=t.intersectionThreshold}getClassName(){return"InstancedLinesMesh"}}function $K(a){const e=[],t=[],i=a.lines,s=a.colors,r=[];let n=0;for(let l=0;l<i.length;l++){const c=i[l];for(let u=0;u<c.length;u++){const{x:f,y:p,z:m}=c[u];if(t.push(f,p,m),s){const _=s[l],{r:d,g:h,b:x,a:A}=_[u];r.push(d,h,x,A)}u>0&&(e.push(n-1),e.push(n)),n++}}const o=new wt;return o.indices=e,o.positions=t,s&&(o.colors=r),o}function eq(a){const e=a.dashSize||3,t=a.gapSize||1,i=a.dashNb||200,s=a.points,r=[],n=[],o=P.Zero();let l=0,c=0,u=0,f=0,p=0,m=0,_=0;for(_=0;_<s.length-1;_++)s[_+1].subtractToRef(s[_],o),l+=o.length();for(u=l/i,f=e*u/(e+t),_=0;_<s.length-1;_++){s[_+1].subtractToRef(s[_],o),c=Math.floor(o.length()/u),o.normalize();for(let h=0;h<c;h++)p=u*h,r.push(s[_].x+p*o.x,s[_].y+p*o.y,s[_].z+p*o.z),r.push(s[_].x+(p+f)*o.x,s[_].y+(p+f)*o.y,s[_].z+(p+f)*o.z),n.push(m,m+1),m+=2}const d=new wt;return d.positions=r,d.indices=n,d}function uL(a,e,t=null){const i=e.instance,s=e.lines,r=e.colors;if(i){const c=i.getVerticesData(q.PositionKind);let u,f;r&&(u=i.getVerticesData(q.ColorKind));let p=0,m=0;for(let _=0;_<s.length;_++){const d=s[_];for(let h=0;h<d.length;h++)c[p]=d[h].x,c[p+1]=d[h].y,c[p+2]=d[h].z,r&&u&&(f=r[_],u[m]=f[h].r,u[m+1]=f[h].g,u[m+2]=f[h].b,u[m+3]=f[h].a,m+=4),p+=3}return i.updateVerticesData(q.PositionKind,c,!1,!1),r&&u&&i.updateVerticesData(q.ColorKind,u,!1,!1),i.refreshBoundingInfo(),i}const n=!!r,o=new $6(a,t,null,void 0,void 0,n,e.useVertexAlpha,e.material);return $K(e).applyToMesh(o,e.updatable),o}function ta(a,e,t=null){const i=e.colors?[e.colors]:null;return uL(a,{lines:[e.points],updatable:e.updatable,instance:e.instance,colors:i,useVertexAlpha:e.useVertexAlpha,material:e.material},t)}function zW(a,e,t=null){const i=e.points,s=e.instance,r=e.gapSize||1,n=e.dashSize||3;if(s){const c=u=>{const f=P.Zero(),p=u.length/6;let m=0,_=0,d=0,h=0,x=0,A=0,S=0,E=0;for(S=0;S<i.length-1;S++)i[S+1].subtractToRef(i[S],f),m+=f.length();d=m/p;const b=s._creationDataStorage.dashSize,M=s._creationDataStorage.gapSize;for(h=b*d/(b+M),S=0;S<i.length-1;S++)for(i[S+1].subtractToRef(i[S],f),_=Math.floor(f.length()/d),f.normalize(),E=0;E<_&&A<u.length;)x=d*E,u[A]=i[S].x+x*f.x,u[A+1]=i[S].y+x*f.y,u[A+2]=i[S].z+x*f.z,u[A+3]=i[S].x+(x+h)*f.x,u[A+4]=i[S].y+(x+h)*f.y,u[A+5]=i[S].z+(x+h)*f.z,A+=6,E++;for(;A<u.length;)u[A]=i[S].x,u[A+1]=i[S].y,u[A+2]=i[S].z,A+=3};return(e.dashNb||e.dashSize||e.gapSize||e.useVertexAlpha||e.material)&&de.Warn("You have used an option other than points with the instance option. Please be aware that these other options will be ignored."),s.updateMeshPositions(c,!1),s}const o=new $6(a,t,null,void 0,void 0,void 0,e.useVertexAlpha,e.material);return eq(e).applyToMesh(o,e.updatable),o._creationDataStorage=new rZ,o._creationDataStorage.dashSize=n,o._creationDataStorage.gapSize=r,o}const xDe={CreateDashedLines:zW,CreateLineSystem:uL,CreateLines:ta};wt.CreateLineSystem=$K,wt.CreateDashedLines=eq,Ne.CreateLines=(a,e,t=null,i=!1,s=null)=>ta(a,{points:e,updatable:i,instance:s},t),Ne.CreateDashedLines=(a,e,t,i,s,r=null,n,o)=>zW(a,{points:e,dashSize:t,gapSize:i,dashNb:s,updatable:n,instance:o},r);class bDe extends Ue{constructor(e,t){super(e.x,e.y),this.index=t}}class tq{constructor(){this.elements=[]}add(e){const t=[];return e.forEach(i=>{const s=new bDe(i,this.elements.length);t.push(s),this.elements.push(s)}),t}computeBounds(){const e=new Ue(this.elements[0].x,this.elements[0].y),t=new Ue(this.elements[0].x,this.elements[0].y);return this.elements.forEach(i=>{i.x<e.x?e.x=i.x:i.x>t.x&&(t.x=i.x),i.y<e.y?e.y=i.y:i.y>t.y&&(t.y=i.y)}),{min:e,max:t,width:t.x-e.x,height:t.y-e.y}}}class SDe{static Rectangle(e,t,i,s){return[new Ue(e,t),new Ue(i,t),new Ue(i,s),new Ue(e,s)]}static Circle(e,t=0,i=0,s=32){const r=[];let n=0;const o=Math.PI*2/s;for(let l=0;l<s;l++)r.push(new Ue(t+Math.cos(n)*e,i+Math.sin(n)*e)),n-=o;return r}static Parse(e){const t=e.split(/[^-+eE.\d]+/).map(parseFloat).filter(r=>!isNaN(r));let i;const s=[];for(i=0;i<(t.length&2147483646);i+=2)s.push(new Ue(t[i],t[i+1]));return s}static StartingAt(e,t){return EP.StartingAt(e,t)}}class j1e{_addToepoint(e){for(const t of e)this._epoints.push(t.x,t.y)}constructor(e,t,i,s=earcut){this._points=new tq,this._outlinepoints=new tq,this._holes=new Array,this._epoints=new Array,this._eholes=new Array,this.bjsEarcut=s,this._name=e,this._scene=i||ei.LastCreatedScene;let r;t instanceof EP?r=t.getPoints():r=t,this._addToepoint(r),this._points.add(r),this._outlinepoints.add(r),typeof this.bjsEarcut>"u"&&de.Warn("Earcut was not found, the polygon will not be built.")}addHole(e){this._points.add(e);const t=new tq;return t.add(e),this._holes.push(t),this._eholes.push(this._epoints.length/2),this._addToepoint(e),this}build(e=!1,t=0,i=2){const s=new Ne(this._name,this._scene),r=this.buildVertexData(t,i);return s.setVerticesData(q.PositionKind,r.positions,e),s.setVerticesData(q.NormalKind,r.normals,e),s.setVerticesData(q.UVKind,r.uvs,e),s.setIndices(r.indices),s}buildVertexData(e=0,t=2){const i=new wt,s=[],r=[],n=[],o=this._points.computeBounds();this._points.elements.forEach(u=>{s.push(0,1,0),r.push(u.x,0,u.y),n.push((u.x-o.min.x)/o.width,(u.y-o.min.y)/o.height)});const l=[],c=this.bjsEarcut(this._epoints,this._eholes,2);for(let u=0;u<c.length;u++)l.push(c[u]);if(e>0){const u=r.length/3;this._points.elements.forEach(p=>{s.push(0,-1,0),r.push(p.x,-e,p.y),n.push(1-(p.x-o.min.x)/o.width,1-(p.y-o.min.y)/o.height)});const f=l.length;for(let p=0;p<f;p+=3){const m=l[p+0],_=l[p+1],d=l[p+2];l.push(d+u),l.push(_+u),l.push(m+u)}this._addSide(r,s,n,l,o,this._outlinepoints,e,!1,t),this._holes.forEach(p=>{this._addSide(r,s,n,l,o,p,e,!0,t)})}return i.indices=l,i.positions=r,i.normals=s,i.uvs=n,i}_addSide(e,t,i,s,r,n,o,l,c){let u=e.length/3,f=0;for(let p=0;p<n.elements.length;p++){const m=n.elements[p],_=n.elements[(p+1)%n.elements.length];e.push(m.x,0,m.y),e.push(m.x,-o,m.y),e.push(_.x,0,_.y),e.push(_.x,-o,_.y);const d=n.elements[(p+n.elements.length-1)%n.elements.length],h=n.elements[(p+2)%n.elements.length];let x=new P(-(_.y-m.y),0,_.x-m.x),A=new P(-(m.y-d.y),0,m.x-d.x),S=new P(-(h.y-_.y),0,h.x-_.x);l||(x=x.scale(-1),A=A.scale(-1),S=S.scale(-1));const E=x.normalizeToNew();let b=A.normalizeToNew(),M=S.normalizeToNew();const T=P.Dot(b,E);T>c?T<Ii-1?b=new P(m.x,0,m.y).subtract(new P(_.x,0,_.y)).normalize():b=A.add(x).normalize():b=E;const O=P.Dot(S,x);O>c?O<Ii-1?M=new P(_.x,0,_.y).subtract(new P(m.x,0,m.y)).normalize():M=S.add(x).normalize():M=E,i.push(f/r.width,0),i.push(f/r.width,1),f+=x.length(),i.push(f/r.width,0),i.push(f/r.width,1),t.push(b.x,b.y,b.z),t.push(b.x,b.y,b.z),t.push(M.x,M.y,M.z),t.push(M.x,M.y,M.z),l?(s.push(u),s.push(u+2),s.push(u+1),s.push(u+1),s.push(u+2),s.push(u+3)):(s.push(u),s.push(u+1),s.push(u+2),s.push(u+1),s.push(u+3),s.push(u+2)),u+=4}}}function iq(a,e,t,i,s,r,n){const o=t||new Array(3),l=i,c=[],u=n||!1;for(let R=0;R<3;R++)o[R]===void 0&&(o[R]=new Yt(0,0,1,1)),l&&l[R]===void 0&&(l[R]=new St(1,1,1,1));const f=a.getVerticesData(q.PositionKind),p=a.getVerticesData(q.NormalKind),m=a.getVerticesData(q.UVKind),_=a.getIndices(),d=f.length/9;let h=0,x=0,A=0,S=0,E=0;const b=[0];if(u)for(let R=d;R<f.length/3;R+=4)x=f[3*(R+2)]-f[3*R],A=f[3*(R+2)+2]-f[3*R+2],S=Math.sqrt(x*x+A*A),E+=S,b.push(E);let M=0,T=0;for(let R=0;R<p.length;R+=3)Math.abs(p[R+1])<.001&&(T=1),Math.abs(p[R+1]-1)<.001&&(T=0),Math.abs(p[R+1]+1)<.001&&(T=2),M=R/3,T===1?(h=M-d,h%4<1.5?u?m[2*M]=o[T].x+(o[T].z-o[T].x)*b[Math.floor(h/4)]/E:m[2*M]=o[T].x:u?m[2*M]=o[T].x+(o[T].z-o[T].x)*b[Math.floor(h/4)+1]/E:m[2*M]=o[T].z,h%2===0?m[2*M+1]=_r?1-o[T].w:o[T].w:m[2*M+1]=_r?1-o[T].y:o[T].y):(m[2*M]=(1-m[2*M])*o[T].x+m[2*M]*o[T].z,m[2*M+1]=(1-m[2*M+1])*o[T].y+m[2*M+1]*o[T].w,_r&&(m[2*M+1]=1-m[2*M+1])),l&&c.push(l[T].r,l[T].g,l[T].b,l[T].a);wt._ComputeSides(e,f,_,p,m,s,r);const O=new wt;if(O.indices=_,O.positions=f,O.normals=p,O.uvs=m,l){const R=e===wt.DOUBLESIDE?c.concat(c):c;O.colors=R}return O}function $w(a,e,t=null,i=earcut){e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation);const s=e.shape,r=e.holes||[],n=e.depth||0,o=e.smoothingThreshold||2,l=[];let c=[];for(let _=0;_<s.length;_++)l[_]=new Ue(s[_].x,s[_].z);l[0].equalsWithEpsilon(l[l.length-1],1e-8)&&l.pop();const f=new j1e(a,l,t||ei.LastCreatedScene,i);for(let _=0;_<r.length;_++){c=[];for(let d=0;d<r[_].length;d++)c.push(new Ue(r[_][d].x,r[_][d].z));f.addHole(c)}const p=f.build(!1,n,o);return p._originalBuilderSideOrientation=e.sideOrientation,iq(p,e.sideOrientation,e.faceUV,e.faceColors,e.frontUVs,e.backUVs,e.wrap).applyToMesh(p,e.updatable),p}function eB(a,e,t=null,i=earcut){return $w(a,e,t,i)}const yDe={ExtrudePolygon:eB,CreatePolygon:$w};wt.CreatePolygon=iq,Ne.CreatePolygon=(a,e,t,i,s,r,n=earcut)=>$w(a,{shape:e,holes:i,updatable:s,sideOrientation:r},t,n),Ne.ExtrudePolygon=(a,e,t,i,s,r,n,o=earcut)=>eB(a,{shape:e,holes:s,depth:t,updatable:r,sideOrientation:n},i,o);function tB(a,e,t=null){const i=e.path,s=e.shape,r=e.scale||1,n=e.rotation||0,o=e.cap===0?0:e.cap||Ne.NO_CAP,l=e.updatable,c=Ne._GetDefaultSideOrientation(e.sideOrientation),u=e.instance||null,f=e.invertUV||!1,p=e.closeShape||!1,m=e.closePath||!1,_=e.capFunction||null;return V1e(a,s,i,r,n,null,null,m,p,o,!1,t,!!l,c,u,f,e.frontUVs||null,e.backUVs||null,e.firstNormal||null,!!e.adjustFrame,_)}function iB(a,e,t=null){const i=e.path,s=e.shape,r=e.scaleFunction||(()=>1),n=e.rotationFunction||(()=>0),o=e.closePath||e.ribbonCloseArray||!1,l=e.closeShape||e.ribbonClosePath||!1,c=e.cap===0?0:e.cap||Ne.NO_CAP,u=e.updatable,f=e.firstNormal||null,p=e.adjustFrame||!1,m=Ne._GetDefaultSideOrientation(e.sideOrientation),_=e.instance,d=e.invertUV||!1,h=e.capFunction||null;return V1e(a,s,i,null,null,r,n,o,l,c,!0,t,!!u,m,_||null,d,e.frontUVs||null,e.backUVs||null,f,p,h||null)}function V1e(a,e,t,i,s,r,n,o,l,c,u,f,p,m,_,d,h,x,A,S,E){const b=(I,N,w,D,k,Y,V,ee,K,ie,ne)=>{const te=w.getTangents(),W=w.getNormals(),Q=w.getBinormals(),re=w.getDistances();if(ne){for(let ke=0;ke<te.length;ke++)if(te[ke].x==0&&te[ke].y==0&&te[ke].z==0&&te[ke].copyFrom(te[ke-1]),W[ke].x==0&&W[ke].y==0&&W[ke].z==0&&W[ke].copyFrom(W[ke-1]),Q[ke].x==0&&Q[ke].y==0&&Q[ke].z==0&&Q[ke].copyFrom(Q[ke-1]),ke>0){let st=te[ke-1];P.Dot(st,te[ke])<0&&te[ke].scaleInPlace(-1),st=W[ke-1],P.Dot(st,W[ke])<0&&W[ke].scaleInPlace(-1),st=Q[ke-1],P.Dot(st,Q[ke])<0&&Q[ke].scaleInPlace(-1)}}let oe=0;const X=()=>k!==null?k:1,ue=ie&&ee?ee:()=>Y!==null?Y:0,he=ie&&V?V:X;let fe=K===Ne.NO_CAP||K===Ne.CAP_END?0:2;const Ae=ae.Matrix[0];for(let ke=0;ke<N.length;ke++){const st=[],Ve=ue(ke,re[ke]),Ke=he(ke,re[ke]);me.RotationAxisToRef(te[ke],oe,Ae);for(let ct=0;ct<I.length;ct++){const nt=te[ke].scale(I[ct].z).add(W[ke].scale(I[ct].x)).add(Q[ke].scale(I[ct].y)),at=P.Zero();P.TransformCoordinatesToRef(nt,Ae,at),at.scaleInPlace(Ke).addInPlace(N[ke]),st[ct]=at}D[fe]=st,oe+=Ve,fe++}const we=E||(ke=>{const st=Array(),Ve=P.Zero();let Ke;for(Ke=0;Ke<ke.length;Ke++)Ve.addInPlace(ke[Ke]);for(Ve.scaleInPlace(1/ke.length),Ke=0;Ke<ke.length;Ke++)st.push(Ve);return st});switch(K){case Ne.NO_CAP:break;case Ne.CAP_START:D[0]=we(D[2]),D[1]=D[2];break;case Ne.CAP_END:D[fe]=D[fe-1],D[fe+1]=we(D[fe-1]);break;case Ne.CAP_ALL:D[0]=we(D[2]),D[1]=D[2],D[fe]=D[fe-1],D[fe+1]=we(D[fe-1]);break}return D};let M,T;if(_){const I=_._creationDataStorage;return M=A?I.path3D.update(t,A):I.path3D.update(t),T=b(e,t,I.path3D,I.pathArray,i,s,r,n,I.cap,u,S),_=Py("",{pathArray:T,closeArray:!1,closePath:!1,offset:0,updatable:!1,sideOrientation:0,instance:_},f||void 0),_}M=A?new TP(t,A):new TP(t);const O=new Array;c=c<0||c>3?0:c,T=b(e,t,M,O,i,s,r,n,c,u,S);const R=Py(a,{pathArray:T,closeArray:o,closePath:l,updatable:p,sideOrientation:m,invertUV:d,frontUVs:h||void 0,backUVs:x||void 0},f);return R._creationDataStorage.pathArray=T,R._creationDataStorage.path3D=M,R._creationDataStorage.cap=c,R}const MDe={ExtrudeShape:tB,ExtrudeShapeCustom:iB};Ne.ExtrudeShape=(a,e,t,i,s,r,n=null,o,l,c)=>{const u={shape:e,path:t,scale:i,rotation:s,cap:r===0?0:r||Ne.NO_CAP,sideOrientation:l,instance:c,updatable:o};return tB(a,u,n)},Ne.ExtrudeShapeCustom=(a,e,t,i,s,r,n,o,l,c,u,f)=>{const p={shape:e,path:t,scaleFunction:i,rotationFunction:s,ribbonCloseArray:r,ribbonClosePath:n,cap:o===0?0:o||Ne.NO_CAP,sideOrientation:u,instance:f,updatable:c};return iB(a,p,l)};function FW(a,e,t=null){const i=e.arc?e.arc<=0||e.arc>1?1:e.arc:1,s=e.closed===void 0?!0:e.closed,r=e.shape,n=e.radius||1,o=e.tessellation||64,l=e.clip||0,c=e.updatable,u=Ne._GetDefaultSideOrientation(e.sideOrientation),f=e.cap||Ne.NO_CAP,p=Math.PI*2,m=[],_=e.invertUV||!1;let d=0,h=0;const x=p/o*i;let A,S;for(d=0;d<=o-l;d++){for(S=[],(f==Ne.CAP_START||f==Ne.CAP_ALL)&&(S.push(new P(0,r[0].y,0)),S.push(new P(Math.cos(d*x)*r[0].x*n,r[0].y,Math.sin(d*x)*r[0].x*n))),h=0;h<r.length;h++)A=new P(Math.cos(d*x)*r[h].x*n,r[h].y,Math.sin(d*x)*r[h].x*n),S.push(A);(f==Ne.CAP_END||f==Ne.CAP_ALL)&&(S.push(new P(Math.cos(d*x)*r[r.length-1].x*n,r[r.length-1].y,Math.sin(d*x)*r[r.length-1].x*n)),S.push(new P(0,r[r.length-1].y,0))),m.push(S)}return Py(a,{pathArray:m,closeArray:s,sideOrientation:u,updatable:c,invertUV:_,frontUVs:e.frontUVs,backUVs:e.backUVs},t)}const EDe={CreateLathe:FW};Ne.CreateLathe=(a,e,t,i,s,r,n)=>FW(a,{shape:e,radius:t,tessellation:i,sideOrientation:n,updatable:r},s);function sq(a){const e=[],t=[],i=[],s=[],r=a.width!==void 0?a.width:a.size!==void 0?a.size:1,n=a.height!==void 0?a.height:a.size!==void 0?a.size:1,o=a.sideOrientation===0?0:a.sideOrientation||wt.DEFAULTSIDE,l=r/2,c=n/2;t.push(-l,-c,0),i.push(0,0,-1),s.push(0,_r?1:0),t.push(l,-c,0),i.push(0,0,-1),s.push(1,_r?1:0),t.push(l,c,0),i.push(0,0,-1),s.push(1,_r?0:1),t.push(-l,c,0),i.push(0,0,-1),s.push(0,_r?0:1),e.push(0),e.push(1),e.push(2),e.push(0),e.push(2),e.push(3),wt._ComputeSides(o,t,e,i,s,a.frontUVs,a.backUVs);const u=new wt;return u.indices=e,u.positions=t,u.normals=i,u.uvs=s,u}function Eh(a,e={},t=null){const i=new Ne(a,t);return e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation),i._originalBuilderSideOrientation=e.sideOrientation,sq(e).applyToMesh(i,e.updatable),e.sourcePlane&&(i.translate(e.sourcePlane.normal,-e.sourcePlane.d),i.setDirection(e.sourcePlane.normal.scale(-1))),i}const TDe={CreatePlane:Eh};wt.CreatePlane=sq,Ne.CreatePlane=(a,e,t,i,s)=>Eh(a,{size:e,width:e,height:e,sideOrientation:s,updatable:i},t);function kW(a,e,t=null){const i=e.path;let s=e.instance,r=1;e.radius!==void 0?r=e.radius:s&&(r=s._creationDataStorage.radius);const n=e.tessellation||64,o=e.radiusFunction||null;let l=e.cap||Ne.NO_CAP;const c=e.invertUV||!1,u=e.updatable,f=Ne._GetDefaultSideOrientation(e.sideOrientation);e.arc=e.arc&&(e.arc<=0||e.arc>1)?1:e.arc||1;const p=(x,A,S,E,b,M,T,O)=>{const R=A.getTangents(),I=A.getNormals(),N=A.getDistances(),D=Math.PI*2/b*O,Y=M||(()=>E);let V,ee,K,ie;const ne=ae.Matrix[0];let te=T===Ne.NO_CAP||T===Ne.CAP_END?0:2;for(let Q=0;Q<x.length;Q++){ee=Y(Q,N[Q]),V=Array(),K=I[Q];for(let re=0;re<b;re++)me.RotationAxisToRef(R[Q],D*re,ne),ie=V[re]?V[re]:P.Zero(),P.TransformCoordinatesToRef(K,ne,ie),ie.scaleInPlace(ee).addInPlace(x[Q]),V[re]=ie;S[te]=V,te++}const W=(Q,re)=>{const oe=Array();for(let X=0;X<Q;X++)oe.push(x[re]);return oe};switch(T){case Ne.NO_CAP:break;case Ne.CAP_START:S[0]=W(b,0),S[1]=S[2].slice(0);break;case Ne.CAP_END:S[te]=S[te-1].slice(0),S[te+1]=W(b,x.length-1);break;case Ne.CAP_ALL:S[0]=W(b,0),S[1]=S[2].slice(0),S[te]=S[te-1].slice(0),S[te+1]=W(b,x.length-1);break}return S};let m,_;if(s){const x=s._creationDataStorage,A=e.arc||x.arc;return m=x.path3D.update(i),_=p(i,m,x.pathArray,r,x.tessellation,o,x.cap,A),s=Py("",{pathArray:_,instance:s}),x.path3D=m,x.pathArray=_,x.arc=A,x.radius=r,s}m=new TP(i);const d=new Array;l=l<0||l>3?0:l,_=p(i,m,d,r,n,o,l,e.arc);const h=Py(a,{pathArray:_,closePath:!0,closeArray:!1,updatable:u,sideOrientation:f,invertUV:c,frontUVs:e.frontUVs,backUVs:e.backUVs},t);return h._creationDataStorage.pathArray=_,h._creationDataStorage.path3D=m,h._creationDataStorage.tessellation=n,h._creationDataStorage.cap=l,h._creationDataStorage.arc=e.arc,h._creationDataStorage.radius=r,h}const LDe={CreateTube:kW};Ne.CreateTube=(a,e,t,i,s,r,n,o,l,c)=>kW(a,{path:e,radius:t,tessellation:i,radiusFunction:s,arc:1,cap:r,updatable:o,sideOrientation:l,instance:c},n);function rq(a){const e=[];e[0]={vertex:[[0,0,1.732051],[1.632993,0,-.5773503],[-.8164966,1.414214,-.5773503],[-.8164966,-1.414214,-.5773503]],face:[[0,1,2],[0,2,3],[0,3,1],[1,3,2]]},e[1]={vertex:[[0,0,1.414214],[1.414214,0,0],[0,1.414214,0],[-1.414214,0,0],[0,-1.414214,0],[0,0,-1.414214]],face:[[0,1,2],[0,2,3],[0,3,4],[0,4,1],[1,4,5],[1,5,2],[2,5,3],[3,5,4]]},e[2]={vertex:[[0,0,1.070466],[.7136442,0,.7978784],[-.3568221,.618034,.7978784],[-.3568221,-.618034,.7978784],[.7978784,.618034,.3568221],[.7978784,-.618034,.3568221],[-.9341724,.381966,.3568221],[.1362939,1,.3568221],[.1362939,-1,.3568221],[-.9341724,-.381966,.3568221],[.9341724,.381966,-.3568221],[.9341724,-.381966,-.3568221],[-.7978784,.618034,-.3568221],[-.1362939,1,-.3568221],[-.1362939,-1,-.3568221],[-.7978784,-.618034,-.3568221],[.3568221,.618034,-.7978784],[.3568221,-.618034,-.7978784],[-.7136442,0,-.7978784],[0,0,-1.070466]],face:[[0,1,4,7,2],[0,2,6,9,3],[0,3,8,5,1],[1,5,11,10,4],[2,7,13,12,6],[3,9,15,14,8],[4,10,16,13,7],[5,8,14,17,11],[6,12,18,15,9],[10,11,17,19,16],[12,13,16,19,18],[14,15,18,19,17]]},e[3]={vertex:[[0,0,1.175571],[1.051462,0,.5257311],[.3249197,1,.5257311],[-.8506508,.618034,.5257311],[-.8506508,-.618034,.5257311],[.3249197,-1,.5257311],[.8506508,.618034,-.5257311],[.8506508,-.618034,-.5257311],[-.3249197,1,-.5257311],[-1.051462,0,-.5257311],[-.3249197,-1,-.5257311],[0,0,-1.175571]],face:[[0,1,2],[0,2,3],[0,3,4],[0,4,5],[0,5,1],[1,5,7],[1,7,6],[1,6,2],[2,6,8],[2,8,3],[3,8,9],[3,9,4],[4,9,10],[4,10,5],[5,10,7],[6,7,11],[6,11,8],[7,10,11],[8,11,9],[9,11,10]]},e[4]={vertex:[[0,0,1.070722],[.7148135,0,.7971752],[-.104682,.7071068,.7971752],[-.6841528,.2071068,.7971752],[-.104682,-.7071068,.7971752],[.6101315,.7071068,.5236279],[1.04156,.2071068,.1367736],[.6101315,-.7071068,.5236279],[-.3574067,1,.1367736],[-.7888348,-.5,.5236279],[-.9368776,.5,.1367736],[-.3574067,-1,.1367736],[.3574067,1,-.1367736],[.9368776,-.5,-.1367736],[.7888348,.5,-.5236279],[.3574067,-1,-.1367736],[-.6101315,.7071068,-.5236279],[-1.04156,-.2071068,-.1367736],[-.6101315,-.7071068,-.5236279],[.104682,.7071068,-.7971752],[.6841528,-.2071068,-.7971752],[.104682,-.7071068,-.7971752],[-.7148135,0,-.7971752],[0,0,-1.070722]],face:[[0,2,3],[1,6,5],[4,9,11],[7,15,13],[8,16,10],[12,14,19],[17,22,18],[20,21,23],[0,1,5,2],[0,3,9,4],[0,4,7,1],[1,7,13,6],[2,5,12,8],[2,8,10,3],[3,10,17,9],[4,11,15,7],[5,6,14,12],[6,13,20,14],[8,12,19,16],[9,17,18,11],[10,16,22,17],[11,18,21,15],[13,15,21,20],[14,20,23,19],[16,19,23,22],[18,22,23,21]]},e[5]={vertex:[[0,0,1.322876],[1.309307,0,.1889822],[-.9819805,.8660254,.1889822],[.1636634,-1.299038,.1889822],[.3273268,.8660254,-.9449112],[-.8183171,-.4330127,-.9449112]],face:[[0,3,1],[2,4,5],[0,1,4,2],[0,2,5,3],[1,3,5,4]]},e[6]={vertex:[[0,0,1.159953],[1.013464,0,.5642542],[-.3501431,.9510565,.5642542],[-.7715208,-.6571639,.5642542],[.6633206,.9510565,-.03144481],[.8682979,-.6571639,-.3996071],[-1.121664,.2938926,-.03144481],[-.2348831,-1.063314,-.3996071],[.5181548,.2938926,-.9953061],[-.5850262,-.112257,-.9953061]],face:[[0,1,4,2],[0,2,6,3],[1,5,8,4],[3,6,9,7],[5,7,9,8],[0,3,7,5,1],[2,4,8,9,6]]},e[7]={vertex:[[0,0,1.118034],[.8944272,0,.6708204],[-.2236068,.8660254,.6708204],[-.7826238,-.4330127,.6708204],[.6708204,.8660254,.2236068],[1.006231,-.4330127,-.2236068],[-1.006231,.4330127,.2236068],[-.6708204,-.8660254,-.2236068],[.7826238,.4330127,-.6708204],[.2236068,-.8660254,-.6708204],[-.8944272,0,-.6708204],[0,0,-1.118034]],face:[[0,1,4,2],[0,2,6,3],[1,5,8,4],[3,6,10,7],[5,9,11,8],[7,10,11,9],[0,3,7,9,5,1],[2,4,8,11,10,6]]},e[8]={vertex:[[-.729665,.670121,.319155],[-.655235,-.29213,-.754096],[-.093922,-.607123,.537818],[.702196,.595691,.485187],[.776626,-.36656,-.588064]],face:[[1,4,2],[0,1,2],[3,0,2],[4,3,2],[4,1,0,3]]},e[9]={vertex:[[-.868849,-.100041,.61257],[-.329458,.976099,.28078],[-.26629,-.013796,-.477654],[-.13392,-1.034115,.229829],[.738834,.707117,-.307018],[.859683,-.535264,-.338508]],face:[[3,0,2],[5,3,2],[4,5,2],[1,4,2],[0,1,2],[0,3,5,4,1]]},e[10]={vertex:[[-.610389,.243975,.531213],[-.187812,-.48795,-.664016],[-.187812,.9759,-.664016],[.187812,-.9759,.664016],[.798201,.243975,.132803]],face:[[1,3,0],[3,4,0],[3,1,4],[0,2,1],[0,4,2],[2,4,1]]},e[11]={vertex:[[-1.028778,.392027,-.048786],[-.640503,-.646161,.621837],[-.125162,-.395663,-.540059],[.004683,.888447,-.651988],[.125161,.395663,.540059],[.632925,-.791376,.433102],[1.031672,.157063,-.354165]],face:[[3,2,0],[2,1,0],[2,5,1],[0,4,3],[0,1,4],[4,1,5],[2,3,6],[3,4,6],[5,2,6],[4,5,6]]},e[12]={vertex:[[-.669867,.334933,-.529576],[-.669867,.334933,.529577],[-.4043,1.212901,0],[-.334933,-.669867,-.529576],[-.334933,-.669867,.529577],[.334933,.669867,-.529576],[.334933,.669867,.529577],[.4043,-1.212901,0],[.669867,-.334933,-.529576],[.669867,-.334933,.529577]],face:[[8,9,7],[6,5,2],[3,8,7],[5,0,2],[4,3,7],[0,1,2],[9,4,7],[1,6,2],[9,8,5,6],[8,3,0,5],[3,4,1,0],[4,9,6,1]]},e[13]={vertex:[[-.931836,.219976,-.264632],[-.636706,.318353,.692816],[-.613483,-.735083,-.264632],[-.326545,.979634,0],[-.318353,-.636706,.692816],[-.159176,.477529,-.856368],[.159176,-.477529,-.856368],[.318353,.636706,.692816],[.326545,-.979634,0],[.613482,.735082,-.264632],[.636706,-.318353,.692816],[.931835,-.219977,-.264632]],face:[[11,10,8],[7,9,3],[6,11,8],[9,5,3],[2,6,8],[5,0,3],[4,2,8],[0,1,3],[10,4,8],[1,7,3],[10,11,9,7],[11,6,5,9],[6,2,0,5],[2,4,1,0],[4,10,7,1]]},e[14]={vertex:[[-.93465,.300459,-.271185],[-.838689,-.260219,-.516017],[-.711319,.717591,.128359],[-.710334,-.156922,.080946],[-.599799,.556003,-.725148],[-.503838,-.004675,-.969981],[-.487004,.26021,.48049],[-.460089,-.750282,-.512622],[-.376468,.973135,-.325605],[-.331735,-.646985,.084342],[-.254001,.831847,.530001],[-.125239,-.494738,-.966586],[.029622,.027949,.730817],[.056536,-.982543,-.262295],[.08085,1.087391,.076037],[.125583,-.532729,.485984],[.262625,.599586,.780328],[.391387,-.726999,-.716259],[.513854,-.868287,.139347],[.597475,.85513,.326364],[.641224,.109523,.783723],[.737185,-.451155,.538891],[.848705,-.612742,-.314616],[.976075,.365067,.32976],[1.072036,-.19561,.084927]],face:[[15,18,21],[12,20,16],[6,10,2],[3,0,1],[9,7,13],[2,8,4,0],[0,4,5,1],[1,5,11,7],[7,11,17,13],[13,17,22,18],[18,22,24,21],[21,24,23,20],[20,23,19,16],[16,19,14,10],[10,14,8,2],[15,9,13,18],[12,15,21,20],[6,12,16,10],[3,6,2,0],[9,3,1,7],[9,15,12,6,3],[22,17,11,5,4,8,14,19,23,24]]};const t=a.type&&(a.type<0||a.type>=e.length)?0:a.type||0,i=a.size,s=a.sizeX||i||1,r=a.sizeY||i||1,n=a.sizeZ||i||1,o=a.custom||e[t],l=o.face.length,c=a.faceUV||new Array(l),u=a.faceColors,f=a.flat===void 0?!0:a.flat,p=a.sideOrientation===0?0:a.sideOrientation||wt.DEFAULTSIDE,m=[],_=[],d=[],h=[],x=[];let A=0,S=0;const E=[];let b=0,M=0,T,O,R,I,N,w;if(f)for(M=0;M<l;M++)u&&u[M]===void 0&&(u[M]=new St(1,1,1,1)),c&&c[M]===void 0&&(c[M]=new Yt(0,0,1,1));if(f)for(M=0;M<l;M++){const k=o.face[M].length;for(R=2*Math.PI/k,I=.5*Math.tan(R/2),N=.5,b=0;b<k;b++)m.push(o.vertex[o.face[M][b]][0]*s,o.vertex[o.face[M][b]][1]*r,o.vertex[o.face[M][b]][2]*n),E.push(A),A++,T=c[M].x+(c[M].z-c[M].x)*(.5+I),O=c[M].y+(c[M].w-c[M].y)*(N-.5),h.push(T,_r?1-O:O),w=I*Math.cos(R)-N*Math.sin(R),N=I*Math.sin(R)+N*Math.cos(R),I=w,u&&x.push(u[M].r,u[M].g,u[M].b,u[M].a);for(b=0;b<k-2;b++)_.push(E[0+S],E[b+2+S],E[b+1+S]);S+=k}else{for(b=0;b<o.vertex.length;b++)m.push(o.vertex[b][0]*s,o.vertex[b][1]*r,o.vertex[b][2]*n),h.push(0,_r?1:0);for(M=0;M<l;M++)for(b=0;b<o.face[M].length-2;b++)_.push(o.face[M][0],o.face[M][b+2],o.face[M][b+1])}wt.ComputeNormals(m,_,d),wt._ComputeSides(p,m,_,d,h,a.frontUVs,a.backUVs);const D=new wt;return D.positions=m,D.indices=_,D.normals=d,D.uvs=h,u&&f&&(D.colors=x),D}function hL(a,e={},t=null){const i=new Ne(a,t);return e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation),i._originalBuilderSideOrientation=e.sideOrientation,rq(e).applyToMesh(i,e.updatable),i}const IDe={CreatePolyhedron:hL};wt.CreatePolyhedron=rq,Ne.CreatePolyhedron=(a,e,t)=>hL(a,e,t);function UW(a){const e=a.sideOrientation||wt.DEFAULTSIDE,t=a.radius||1,i=a.flat===void 0?!0:a.flat,s=(a.subdivisions||4)|0,r=a.radiusX||t,n=a.radiusY||t,o=a.radiusZ||t,l=(1+Math.sqrt(5))/2,c=[-1,l,-0,1,l,0,-1,-l,0,1,-l,0,0,-1,-l,0,1,-l,0,-1,l,0,1,l,l,0,1,l,0,-1,-l,0,1,-l,0,-1],u=[0,11,5,0,5,1,0,1,7,0,7,10,12,22,23,1,5,20,5,11,4,23,22,13,22,18,6,7,1,8,14,21,4,14,4,2,16,13,6,15,6,19,3,8,9,4,21,5,13,17,23,6,13,22,19,6,18,9,8,1],f=[0,1,2,3,4,5,6,7,8,9,10,11,0,2,3,3,3,4,7,8,9,9,10,11],p=[5,1,3,1,6,4,0,0,5,3,4,2,2,2,4,0,2,0,1,1,6,0,6,2,0,4,3,3,4,4,3,1,4,2,4,4,0,2,1,1,2,2,3,3,1,3,2,4],m=138/1024,_=239/1024,d=60/1024,h=26/1024,x=-40/1024,A=20/1024,S=[0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0],E=[],b=[],M=[],T=[];let O=0;const R=new Array(3),I=new Array(3);let N;for(N=0;N<3;N++)R[N]=P.Zero(),I[N]=Ue.Zero();for(let D=0;D<20;D++){for(N=0;N<3;N++){const Y=u[3*D+N];R[N].copyFromFloats(c[3*f[Y]],c[3*f[Y]+1],c[3*f[Y]+2]),R[N].normalize(),I[N].copyFromFloats(p[2*Y]*m+d+S[D]*x,p[2*Y+1]*_+h+S[D]*A)}const k=(Y,V,ee,K)=>{const ie=P.Lerp(R[0],R[2],V/s),ne=P.Lerp(R[1],R[2],V/s),te=s===V?R[2]:P.Lerp(ie,ne,Y/(s-V));te.normalize();let W;if(i){const X=P.Lerp(R[0],R[2],K/s),se=P.Lerp(R[1],R[2],K/s);W=P.Lerp(X,se,ee/(s-K))}else W=new P(te.x,te.y,te.z);W.x/=r,W.y/=n,W.z/=o,W.normalize();const Q=Ue.Lerp(I[0],I[2],V/s),re=Ue.Lerp(I[1],I[2],V/s),oe=s===V?I[2]:Ue.Lerp(Q,re,Y/(s-V));b.push(te.x*r,te.y*n,te.z*o),M.push(W.x,W.y,W.z),T.push(oe.x,_r?1-oe.y:oe.y),E.push(O),O++};for(let Y=0;Y<s;Y++)for(let V=0;V+Y<s;V++)k(V,Y,V+1/3,Y+1/3),k(V+1,Y,V+1/3,Y+1/3),k(V,Y+1,V+1/3,Y+1/3),V+Y+1<s&&(k(V+1,Y,V+2/3,Y+2/3),k(V+1,Y+1,V+2/3,Y+2/3),k(V,Y+1,V+2/3,Y+2/3))}wt._ComputeSides(e,b,E,M,T,a.frontUVs,a.backUVs);const w=new wt;return w.indices=E,w.positions=b,w.normals=M,w.uvs=T,w}function FP(a,e={},t=null){const i=new Ne(a,t);return e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation),i._originalBuilderSideOrientation=e.sideOrientation,UW(e).applyToMesh(i,e.updatable),i}const PDe={CreateIcoSphere:FP};wt.CreateIcoSphere=UW,Ne.CreateIcoSphere=(a,e,t)=>FP(a,e,t);const ODe=new P(1,0,0),RDe=new P(-1,0,0),DDe=new P(0,1,0),NDe=new P(0,-1,0),wDe=new P(0,0,1),BDe=new P(0,0,-1);class jW{constructor(e=P.Zero(),t=P.Up(),i=Ue.Zero(),s=0,r=0,n=null,o=null,l=null,c=null){this.position=e,this.normal=t,this.uv=i,this.vertexIdx=s,this.vertexIdxForBones=r,this.localPositionOverride=n,this.localNormalOverride=o,this.matrixIndicesOverride=l,this.matrixWeightsOverride=c}clone(){var e,t,i,s;return new jW(this.position.clone(),this.normal.clone(),this.uv.clone(),this.vertexIdx,this.vertexIdxForBones,(e=this.localPositionOverride)==null?void 0:e.slice(),(t=this.localNormalOverride)==null?void 0:t.slice(),(i=this.matrixIndicesOverride)==null?void 0:i.slice(),(s=this.matrixWeightsOverride)==null?void 0:s.slice())}}function VW(a,e,t){var V,ee,K,ie;const i=!!e.skeleton,s=t.localMode||i,r=e.getIndices(),n=i?e.getPositionData(!0,!0):e.getVerticesData(q.PositionKind),o=i?e.getNormalsData(!0,!0):e.getVerticesData(q.NormalKind),l=s?i?e.getVerticesData(q.PositionKind):n:null,c=s?i?e.getVerticesData(q.NormalKind):o:null,u=e.getVerticesData(q.UVKind),f=i?e.getVerticesData(q.MatricesIndicesKind):null,p=i?e.getVerticesData(q.MatricesWeightsKind):null,m=i?e.getVerticesData(q.MatricesIndicesExtraKind):null,_=i?e.getVerticesData(q.MatricesWeightsExtraKind):null,d=t.position||P.Zero();let h=t.normal||P.Up();const x=t.size||P.One(),A=t.angle||0;if(!h){const ne=new P(0,0,1),te=e.getScene().activeCamera,W=P.TransformCoordinates(ne,te.getWorldMatrix());h=te.globalPosition.subtract(W)}const S=-Math.atan2(h.z,h.x)-Math.PI/2,E=Math.sqrt(h.x*h.x+h.z*h.z),b=Math.atan2(h.y,E),M=new wt;M.indices=[],M.positions=[],M.normals=[],M.uvs=[],M.matricesIndices=i?[]:null,M.matricesWeights=i?[]:null,M.matricesIndicesExtra=m?[]:null,M.matricesWeightsExtra=_?[]:null;let T=0;const O=(ne,te)=>{const W=new jW;if(!r||!n||!o)return W;const Q=r[ne];if(W.vertexIdx=Q*3,W.vertexIdxForBones=Q*4,W.position=new P(n[Q*3],n[Q*3+1],n[Q*3+2]),P.TransformCoordinatesToRef(W.position,te,W.position),W.normal=new P(o[Q*3],o[Q*3+1],o[Q*3+2]),P.TransformNormalToRef(W.normal,te,W.normal),t.captureUVS&&u){const re=u[Q*2+1];W.uv=new Ue(u[Q*2],_r?1-re:re)}return W},R=[0,0,0,0],I=(ne,te)=>{if(ne.length===0)return ne;const W=.5*Math.abs(P.Dot(x,te)),Q=(X,se,ue,he)=>{for(let fe=0;fe<he;++fe)if(X[ue+fe]===se)return ue+fe;return-1},re=(X,se)=>{const ue=P.GetClipFactor(X.position,se.position,te,W);let he=R,fe=R;if(f&&p){const je=X.matrixIndicesOverride?0:X.vertexIdxForBones,rt=X.matrixIndicesOverride??f,yt=X.matrixWeightsOverride??p,Rt=se.matrixIndicesOverride?0:se.vertexIdxForBones,Nt=se.matrixIndicesOverride??f,Kt=se.matrixWeightsOverride??p;he=[0,0,0,0],fe=[0,0,0,0];let si=0;for(let gi=0;gi<4;++gi)if(yt[je+gi]>0){const bi=Q(Nt,rt[je+gi],Rt,4);he[si]=rt[je+gi],fe[si]=Zl(yt[je+gi],bi>=0?Kt[bi]:0,ue),si++}for(let gi=0;gi<4&&si<4;++gi){const bi=Nt[Rt+gi];Q(rt,bi,je,4)===-1&&(he[si]=bi,fe[si]=Zl(0,Kt[Rt+gi],ue),si++)}const Pi=fe[0]+fe[1]+fe[2]+fe[3];fe[0]/=Pi,fe[1]/=Pi,fe[2]/=Pi,fe[3]/=Pi}const Ae=X.localPositionOverride?X.localPositionOverride[0]:(l==null?void 0:l[X.vertexIdx])??0,Se=X.localPositionOverride?X.localPositionOverride[1]:(l==null?void 0:l[X.vertexIdx+1])??0,we=X.localPositionOverride?X.localPositionOverride[2]:(l==null?void 0:l[X.vertexIdx+2])??0,ke=se.localPositionOverride?se.localPositionOverride[0]:(l==null?void 0:l[se.vertexIdx])??0,st=se.localPositionOverride?se.localPositionOverride[1]:(l==null?void 0:l[se.vertexIdx+1])??0,Ve=se.localPositionOverride?se.localPositionOverride[2]:(l==null?void 0:l[se.vertexIdx+2])??0,Ke=X.localNormalOverride?X.localNormalOverride[0]:(c==null?void 0:c[X.vertexIdx])??0,ct=X.localNormalOverride?X.localNormalOverride[1]:(c==null?void 0:c[X.vertexIdx+1])??0,nt=X.localNormalOverride?X.localNormalOverride[2]:(c==null?void 0:c[X.vertexIdx+2])??0,at=se.localNormalOverride?se.localNormalOverride[0]:(c==null?void 0:c[se.vertexIdx])??0,xt=se.localNormalOverride?se.localNormalOverride[1]:(c==null?void 0:c[se.vertexIdx+1])??0,Qe=se.localNormalOverride?se.localNormalOverride[2]:(c==null?void 0:c[se.vertexIdx+2])??0,kt=Ke+(at-Ke)*ue,ot=ct+(xt-ct)*ue,At=nt+(Qe-nt)*ue,Me=Math.sqrt(kt*kt+ot*ot+At*At);return new jW(P.Lerp(X.position,se.position,ue),P.Lerp(X.normal,se.normal,ue).normalize(),Ue.Lerp(X.uv,se.uv,ue),-1,-1,l?[Ae+(ke-Ae)*ue,Se+(st-Se)*ue,we+(Ve-we)*ue]:null,c?[kt/Me,ot/Me,At/Me]:null,he,fe)};let oe=null;ne.length>3&&(oe=[]);for(let X=0;X<ne.length;X+=3){let se=0,ue=null,he=null,fe=null,Ae=null;const Se=P.Dot(ne[X].position,te)-W,we=P.Dot(ne[X+1].position,te)-W,ke=P.Dot(ne[X+2].position,te)-W,st=Se>0,Ve=we>0,Ke=ke>0;switch(se=(st?1:0)+(Ve?1:0)+(Ke?1:0),se){case 0:ne.length>3?(oe.push(ne[X]),oe.push(ne[X+1]),oe.push(ne[X+2])):oe=ne;break;case 1:if(oe=oe??new Array,st&&(ue=ne[X+1],he=ne[X+2],fe=re(ne[X],ue),Ae=re(ne[X],he)),Ve){ue=ne[X],he=ne[X+2],fe=re(ne[X+1],ue),Ae=re(ne[X+1],he),oe.push(fe),oe.push(he.clone()),oe.push(ue.clone()),oe.push(he.clone()),oe.push(fe.clone()),oe.push(Ae);break}Ke&&(ue=ne[X],he=ne[X+1],fe=re(ne[X+2],ue),Ae=re(ne[X+2],he)),ue&&he&&fe&&Ae&&(oe.push(ue.clone()),oe.push(he.clone()),oe.push(fe),oe.push(Ae),oe.push(fe.clone()),oe.push(he.clone()));break;case 2:oe=oe??new Array,st||(ue=ne[X].clone(),he=re(ue,ne[X+1]),fe=re(ue,ne[X+2]),oe.push(ue),oe.push(he),oe.push(fe)),Ve||(ue=ne[X+1].clone(),he=re(ue,ne[X+2]),fe=re(ue,ne[X]),oe.push(ue),oe.push(he),oe.push(fe)),Ke||(ue=ne[X+2].clone(),he=re(ue,ne[X]),fe=re(ue,ne[X+1]),oe.push(ue),oe.push(he),oe.push(fe));break}}return oe},N=e instanceof Ne?e:null,w=N==null?void 0:N._thinInstanceDataStorage.matrixData,D=(N==null?void 0:N.thinInstanceCount)||1,k=ae.Matrix[0];k.copyFrom(me.IdentityReadOnly);for(let ne=0;ne<D;++ne){if(N!=null&&N.hasThinInstances&&w){const X=ne*16;k.setRowFromFloats(0,w[X+0],w[X+1],w[X+2],w[X+3]),k.setRowFromFloats(1,w[X+4],w[X+5],w[X+6],w[X+7]),k.setRowFromFloats(2,w[X+8],w[X+9],w[X+10],w[X+11]),k.setRowFromFloats(3,w[X+12],w[X+13],w[X+14],w[X+15])}const te=me.RotationYawPitchRoll(S,b,A).multiply(me.Translation(d.x,d.y,d.z)),W=me.Invert(te),Q=e.getWorldMatrix(),re=k.multiply(Q).multiply(W),oe=new Array(3);for(let X=0;X<r.length;X+=3){let se=oe;if(se[0]=O(X,re),se[1]=O(X+1,re),se[2]=O(X+2,re),!(t.cullBackFaces&&-se[0].normal.z<=0&&-se[1].normal.z<=0&&-se[2].normal.z<=0)&&(se=I(se,ODe),!!se&&(se=I(se,RDe),!!se&&(se=I(se,DDe),!!se&&(se=I(se,NDe),!!se&&(se=I(se,wDe),!!se&&(se=I(se,BDe),!!se)))))))for(let ue=0;ue<se.length;ue++){const he=se[ue];if(M.indices.push(T),s?(he.localPositionOverride?(M.positions[T*3]=he.localPositionOverride[0],M.positions[T*3+1]=he.localPositionOverride[1],M.positions[T*3+2]=he.localPositionOverride[2]):l&&(M.positions[T*3]=l[he.vertexIdx],M.positions[T*3+1]=l[he.vertexIdx+1],M.positions[T*3+2]=l[he.vertexIdx+2]),he.localNormalOverride?(M.normals[T*3]=he.localNormalOverride[0],M.normals[T*3+1]=he.localNormalOverride[1],M.normals[T*3+2]=he.localNormalOverride[2]):c&&(M.normals[T*3]=c[he.vertexIdx],M.normals[T*3+1]=c[he.vertexIdx+1],M.normals[T*3+2]=c[he.vertexIdx+2])):(he.position.toArray(M.positions,T*3),he.normal.toArray(M.normals,T*3)),M.matricesIndices&&M.matricesWeights&&(he.matrixIndicesOverride?(M.matricesIndices[T*4]=he.matrixIndicesOverride[0],M.matricesIndices[T*4+1]=he.matrixIndicesOverride[1],M.matricesIndices[T*4+2]=he.matrixIndicesOverride[2],M.matricesIndices[T*4+3]=he.matrixIndicesOverride[3]):(f&&(M.matricesIndices[T*4]=f[he.vertexIdxForBones],M.matricesIndices[T*4+1]=f[he.vertexIdxForBones+1],M.matricesIndices[T*4+2]=f[he.vertexIdxForBones+2],M.matricesIndices[T*4+3]=f[he.vertexIdxForBones+3]),m&&M.matricesIndicesExtra&&(M.matricesIndicesExtra[T*4]=m[he.vertexIdxForBones],M.matricesIndicesExtra[T*4+1]=m[he.vertexIdxForBones+1],M.matricesIndicesExtra[T*4+2]=m[he.vertexIdxForBones+2],M.matricesIndicesExtra[T*4+3]=m[he.vertexIdxForBones+3])),he.matrixWeightsOverride?(M.matricesWeights[T*4]=he.matrixWeightsOverride[0],M.matricesWeights[T*4+1]=he.matrixWeightsOverride[1],M.matricesWeights[T*4+2]=he.matrixWeightsOverride[2],M.matricesWeights[T*4+3]=he.matrixWeightsOverride[3]):(p&&(M.matricesWeights[T*4]=p[he.vertexIdxForBones],M.matricesWeights[T*4+1]=p[he.vertexIdxForBones+1],M.matricesWeights[T*4+2]=p[he.vertexIdxForBones+2],M.matricesWeights[T*4+3]=p[he.vertexIdxForBones+3]),_&&M.matricesWeightsExtra&&(M.matricesWeightsExtra[T*4]=_[he.vertexIdxForBones],M.matricesWeightsExtra[T*4+1]=_[he.vertexIdxForBones+1],M.matricesWeightsExtra[T*4+2]=_[he.vertexIdxForBones+2],M.matricesWeightsExtra[T*4+3]=_[he.vertexIdxForBones+3]))),t.captureUVS)he.uv.toArray(M.uvs,T*2);else{M.uvs.push(.5+he.position.x/x.x);const fe=.5+he.position.y/x.y;M.uvs.push(_r?1-fe:fe)}T++}}}M.indices.length===0&&(M.indices=null),M.positions.length===0&&(M.positions=null),M.normals.length===0&&(M.normals=null),M.uvs.length===0&&(M.uvs=null),((V=M.matricesIndices)==null?void 0:V.length)===0&&(M.matricesIndices=null),((ee=M.matricesWeights)==null?void 0:ee.length)===0&&(M.matricesWeights=null),((K=M.matricesIndicesExtra)==null?void 0:K.length)===0&&(M.matricesIndicesExtra=null),((ie=M.matricesWeightsExtra)==null?void 0:ie.length)===0&&(M.matricesWeightsExtra=null);const Y=new Ne(a,e.getScene());return M.applyToMesh(Y),s?(Y.skeleton=e.skeleton,Y.parent=e):(Y.position=d.clone(),Y.rotation=new P(b,S,A)),Y.computeWorldMatrix(!0),Y.refreshBoundingInfo(!0,!0),Y}const zDe={CreateDecal:VW};Ne.CreateDecal=(a,e,t,i,s,r)=>VW(a,e,{position:t,normal:i,size:s,angle:r});function GW(a={subdivisions:2,tessellation:16,height:1,radius:.25,capSubdivisions:6}){const e=Math.max(a.subdivisions?a.subdivisions:2,1)|0,t=Math.max(a.tessellation?a.tessellation:16,3)|0,i=Math.max(a.height?a.height:1,0),s=Math.max(a.radius?a.radius:.25,0),r=Math.max(a.capSubdivisions?a.capSubdivisions:6,1)|0,n=t,o=e,l=Math.max(a.radiusTop?a.radiusTop:s,0),c=Math.max(a.radiusBottom?a.radiusBottom:s,0),u=i-(l+c),f=0,p=2*Math.PI,m=Math.max(a.topCapSubdivisions?a.topCapSubdivisions:r,1),_=Math.max(a.bottomCapSubdivisions?a.bottomCapSubdivisions:r,1),d=Math.acos((c-l)/i);let h=[];const x=[],A=[],S=[];let E=0;const b=[],M=u*.5,T=Math.PI*.5;let O,R;const I=P.Zero(),N=P.Zero(),w=Math.cos(d),D=Math.sin(d),k=new Ue(l*D,M+l*w).subtract(new Ue(c*D,-M+c*w)).length(),Y=l*d+k+c*(T-d);let V=0;for(R=0;R<=m;R++){const ne=[],te=T-d*(R/m);V+=l*d/m;const W=Math.cos(te),Q=Math.sin(te),re=W*l;for(O=0;O<=n;O++){const oe=O/n,X=oe*p+f,se=Math.sin(X),ue=Math.cos(X);N.x=re*se,N.y=M+Q*l,N.z=re*ue,x.push(N.x,N.y,N.z),I.set(W*se,Q,W*ue),A.push(I.x,I.y,I.z),S.push(oe,_r?V/Y:1-V/Y),ne.push(E),E++}b.push(ne)}const ee=i-l-c+w*l-w*c,K=D*(c-l)/ee;for(R=1;R<=o;R++){const ne=[];V+=k/o;const te=D*(R*(c-l)/o+l);for(O=0;O<=n;O++){const W=O/n,Q=W*p+f,re=Math.sin(Q),oe=Math.cos(Q);N.x=te*re,N.y=M+w*l-R*ee/o,N.z=te*oe,x.push(N.x,N.y,N.z),I.set(re,K,oe).normalize(),A.push(I.x,I.y,I.z),S.push(W,_r?V/Y:1-V/Y),ne.push(E),E++}b.push(ne)}for(R=1;R<=_;R++){const ne=[],te=T-d-(Math.PI-d)*(R/_);V+=c*d/_;const W=Math.cos(te),Q=Math.sin(te),re=W*c;for(O=0;O<=n;O++){const oe=O/n,X=oe*p+f,se=Math.sin(X),ue=Math.cos(X);N.x=re*se,N.y=-M+Q*c,N.z=re*ue,x.push(N.x,N.y,N.z),I.set(W*se,Q,W*ue),A.push(I.x,I.y,I.z),S.push(oe,_r?V/Y:1-V/Y),ne.push(E),E++}b.push(ne)}for(O=0;O<n;O++)for(R=0;R<m+o+_;R++){const ne=b[R][O],te=b[R+1][O],W=b[R+1][O+1],Q=b[R][O+1];h.push(ne),h.push(te),h.push(Q),h.push(te),h.push(W),h.push(Q)}if(h=h.reverse(),a.orientation&&!a.orientation.equals(P.Up())){const ne=new me;a.orientation.clone().scale(Math.PI*.5).cross(P.Up()).toQuaternion().toRotationMatrix(ne);const te=P.Zero();for(let W=0;W<x.length;W+=3)te.set(x[W],x[W+1],x[W+2]),P.TransformCoordinatesToRef(te.clone(),ne,te),x[W]=te.x,x[W+1]=te.y,x[W+2]=te.z}const ie=new wt;return ie.positions=x,ie.normals=A,ie.uvs=S,ie.indices=h,ie}function sB(a,e={orientation:P.Up(),subdivisions:2,tessellation:16,height:1,radius:.25,capSubdivisions:6,updatable:!1},t=null){const i=new Ne(a,t);return GW(e).applyToMesh(i,e.updatable),i}const FDe={CreateCapsule:sB};Ne.CreateCapsule=(a,e,t)=>sB(a,e,t),wt.CreateCapsule=GW;class yo{constructor(e=0,t=0){this.x=e,this.y=t,e!==Math.floor(e)&&(e=Math.floor(e),de.Warn("x is not an integer, floor(x) used")),t!==Math.floor(t)&&(t=Math.floor(t),de.Warn("y is not an integer, floor(y) used"))}clone(){return new yo(this.x,this.y)}rotate60About(e){const t=this.x;return this.x=e.x+e.y-this.y,this.y=t+this.y-e.x,this}rotateNeg60About(e){const t=this.x;return this.x=t+this.y-e.y,this.y=e.x+e.y-t,this}rotate120(e,t){e!==Math.floor(e)&&(e=Math.floor(e),de.Warn("m not an integer only floor(m) used")),t!==Math.floor(t)&&(t=Math.floor(t),de.Warn("n not an integer only floor(n) used"));const i=this.x;return this.x=e-i-this.y,this.y=t+i,this}rotateNeg120(e,t){e!==Math.floor(e)&&(e=Math.floor(e),de.Warn("m is not an integer, floor(m) used")),t!==Math.floor(t)&&(t=Math.floor(t),de.Warn("n is not an integer,   floor(n) used"));const i=this.x;return this.x=this.y-t,this.y=e+t-i-this.y,this}toCartesianOrigin(e,t){const i=P.Zero();return i.x=e.x+2*this.x*t+this.y*t,i.y=e.y+Math.sqrt(3)*this.y*t,i}static Zero(){return new yo(0,0)}}class nq{constructor(){this.cartesian=[],this.vertices=[],this.max=[],this.min=[],this.closestTo=[],this.innerFacets=[],this.isoVecsABOB=[],this.isoVecsOBOA=[],this.isoVecsBAOA=[],this.vertexTypes=[],this.IDATA=new WW("icosahedron","Regular",[[0,Pl,-1],[-Pl,1,0],[-1,0,-Pl],[1,0,-Pl],[Pl,1,0],[0,Pl,1],[-1,0,Pl],[-Pl,-1,0],[0,-Pl,-1],[Pl,-1,0],[1,0,Pl],[0,-Pl,1]],[[0,2,1],[0,3,2],[0,4,3],[0,5,4],[0,1,5],[7,6,1],[8,7,2],[9,8,3],[10,9,4],[6,10,5],[2,7,1],[3,8,2],[4,9,3],[5,10,4],[1,6,5],[11,6,7],[11,7,8],[11,8,9],[11,9,10],[11,10,6]])}setIndices(){let e=12;const t={},i=this.m,s=this.n;let r=i,n=1,o=0;s!==0&&(r=_w(i,s)),n=i/r,o=s/r;let l,c,u,f,p;const m=yo.Zero(),_=new yo(i,s),d=new yo(-s,i+s),h=yo.Zero(),x=yo.Zero(),A=yo.Zero();let S=[],E,b,M,T;const O=[],R=this.vertByDist,I=(N,w,D,k)=>{E=N+"|"+D,b=w+"|"+k,E in t||b in t?E in t&&!(b in t)?t[b]=t[E]:b in t&&!(E in t)&&(t[E]=t[b]):(t[E]=e,t[b]=e,e++),R[D][0]>2?O[t[E]]=[-R[D][0],R[D][1],t[E]]:O[t[E]]=[S[R[D][0]],R[D][1],t[E]]};this.IDATA.edgematch=[[1,"B"],[2,"B"],[3,"B"],[4,"B"],[0,"B"],[10,"O",14,"A"],[11,"O",10,"A"],[12,"O",11,"A"],[13,"O",12,"A"],[14,"O",13,"A"],[0,"O"],[1,"O"],[2,"O"],[3,"O"],[4,"O"],[19,"B",5,"A"],[15,"B",6,"A"],[16,"B",7,"A"],[17,"B",8,"A"],[18,"B",9,"A"]];for(let N=0;N<20;N++){if(S=this.IDATA.face[N],u=S[2],f=S[1],p=S[0],M=m.x+"|"+m.y,E=N+"|"+M,E in t||(t[E]=u,O[u]=[S[R[M][0]],R[M][1]]),M=_.x+"|"+_.y,E=N+"|"+M,E in t||(t[E]=f,O[f]=[S[R[M][0]],R[M][1]]),M=d.x+"|"+d.y,E=N+"|"+M,E in t||(t[E]=p,O[p]=[S[R[M][0]],R[M][1]]),l=this.IDATA.edgematch[N][0],c=this.IDATA.edgematch[N][1],c==="B")for(let w=1;w<r;w++)x.x=i-w*(n+o),x.y=s+w*n,A.x=-w*o,A.y=w*(n+o),M=x.x+"|"+x.y,T=A.x+"|"+A.y,I(N,l,M,T);if(c==="O")for(let w=1;w<r;w++)A.x=-w*o,A.y=w*(n+o),h.x=w*n,h.y=w*o,M=A.x+"|"+A.y,T=h.x+"|"+h.y,I(N,l,M,T);if(l=this.IDATA.edgematch[N][2],c=this.IDATA.edgematch[N][3],c&&c==="A")for(let w=1;w<r;w++)h.x=w*n,h.y=w*o,x.x=i-(r-w)*(n+o),x.y=s+(r-w)*n,M=h.x+"|"+h.y,T=x.x+"|"+x.y,I(N,l,M,T);for(let w=0;w<this.vertices.length;w++)M=this.vertices[w].x+"|"+this.vertices[w].y,E=N+"|"+M,E in t||(t[E]=e++,R[M][0]>2?O[t[E]]=[-R[M][0],R[M][1],t[E]]:O[t[E]]=[S[R[M][0]],R[M][1],t[E]])}this.closestTo=O,this.vecToidx=t}calcCoeffs(){const e=this.m,t=this.n,i=Math.sqrt(3)/3,s=e*e+t*t+e*t;this.coau=(e+t)/s,this.cobu=-t/s,this.coav=-i*(e-t)/s,this.cobv=i*(2*e+t)/s}createInnerFacets(){const e=this.m,t=this.n;for(let i=0;i<t+e+1;i++)for(let s=this.min[i];s<this.max[i]+1;s++)s<this.max[i]&&s<this.max[i+1]+1&&this.innerFacets.push(["|"+s+"|"+i,"|"+s+"|"+(i+1),"|"+(s+1)+"|"+i]),i>0&&s<this.max[i-1]&&s+1<this.max[i]+1&&this.innerFacets.push(["|"+s+"|"+i,"|"+(s+1)+"|"+i,"|"+(s+1)+"|"+(i-1)])}edgeVecsABOB(){const e=this.m,t=this.n,i=new yo(-t,e+t);for(let s=1;s<e+t;s++){const r=new yo(this.min[s],s),n=new yo(this.min[s-1],s-1),o=new yo(this.min[s+1],s+1),l=r.clone(),c=n.clone(),u=o.clone();l.rotate60About(i),c.rotate60About(i),u.rotate60About(i);const f=new yo(this.max[l.y],l.y),p=new yo(this.max[l.y-1],l.y-1),m=new yo(this.max[l.y-1]-1,l.y-1);(l.x!==f.x||l.y!==f.y)&&(l.x!==p.x?(this.vertexTypes.push([1,0,0]),this.isoVecsABOB.push([r,p,m]),this.vertexTypes.push([1,0,0]),this.isoVecsABOB.push([r,m,f])):l.y===u.y?(this.vertexTypes.push([1,1,0]),this.isoVecsABOB.push([r,n,p]),this.vertexTypes.push([1,0,1]),this.isoVecsABOB.push([r,p,o])):(this.vertexTypes.push([1,1,0]),this.isoVecsABOB.push([r,n,p]),this.vertexTypes.push([1,0,0]),this.isoVecsABOB.push([r,p,f])))}}mapABOBtoOBOA(){const e=new yo(0,0);for(let t=0;t<this.isoVecsABOB.length;t++){const i=[];for(let s=0;s<3;s++)e.x=this.isoVecsABOB[t][s].x,e.y=this.isoVecsABOB[t][s].y,this.vertexTypes[t][s]===0&&e.rotateNeg120(this.m,this.n),i.push(e.clone());this.isoVecsOBOA.push(i)}}mapABOBtoBAOA(){const e=new yo(0,0);for(let t=0;t<this.isoVecsABOB.length;t++){const i=[];for(let s=0;s<3;s++)e.x=this.isoVecsABOB[t][s].x,e.y=this.isoVecsABOB[t][s].y,this.vertexTypes[t][s]===1&&e.rotate120(this.m,this.n),i.push(e.clone());this.isoVecsBAOA.push(i)}}MapToFace(e,t){const i=this.IDATA.face[e],s=i[2],r=i[1],n=i[0],o=P.FromArray(this.IDATA.vertex[s]),l=P.FromArray(this.IDATA.vertex[r]),c=P.FromArray(this.IDATA.vertex[n]),u=l.subtract(o),f=c.subtract(o),p=u.scale(this.coau).add(f.scale(this.cobu)),m=u.scale(this.coav).add(f.scale(this.cobv));let _,d=ae.Vector3[0];for(let h=0;h<this.cartesian.length;h++)d=p.scale(this.cartesian[h].x).add(m.scale(this.cartesian[h].y)).add(o),d.x,d.y,d.z,_=e+"|"+this.vertices[h].x+"|"+this.vertices[h].y,t.vertex[this.vecToidx[_]]=[d.x,d.y,d.z]}build(e,t){const i=[],s=yo.Zero(),r=new yo(e,t),n=new yo(-t,e+t);i.push(s,r,n);for(let b=t;b<e+1;b++)for(let M=0;M<e+1-b;M++)i.push(new yo(M,b));if(t>0){const b=_w(e,t),M=e/b,T=t/b;for(let R=1;R<b;R++)i.push(new yo(R*M,R*T)),i.push(new yo(-R*T,R*(M+T))),i.push(new yo(e-R*(M+T),t+R*M));const O=e/t;for(let R=1;R<t;R++)for(let I=0;I<R*O;I++)i.push(new yo(I,R)),i.push(new yo(I,R).rotate120(e,t)),i.push(new yo(I,R).rotateNeg120(e,t))}i.sort((b,M)=>b.x-M.x),i.sort((b,M)=>b.y-M.y);const o=new Array(e+t+1),l=new Array(e+t+1);for(let b=0;b<o.length;b++)o[b]=1/0,l[b]=-1/0;let c=0,u=0;const f=i.length;for(let b=0;b<f;b++)u=i[b].x,c=i[b].y,o[c]=Math.min(u,o[c]),l[c]=Math.max(u,l[c]);const p=(b,M)=>{const T=b.clone();return M==="A"&&T.rotateNeg120(e,t),M==="B"&&T.rotate120(e,t),T.x<0?T.y:T.x+T.y},m=[],_=[],d=[],h=[],x={},A=[];let S=-1,E=-1;for(let b=0;b<f;b++)m[b]=i[b].toCartesianOrigin(new yo(0,0),.5),_[b]=p(i[b],"O"),d[b]=p(i[b],"A"),h[b]=p(i[b],"B"),_[b]===d[b]&&d[b]===h[b]?(S=3,E=_[b]):_[b]===d[b]?(S=4,E=_[b]):d[b]===h[b]?(S=5,E=d[b]):h[b]===_[b]&&(S=6,E=_[b]),_[b]<d[b]&&_[b]<h[b]&&(S=2,E=_[b]),d[b]<_[b]&&d[b]<h[b]&&(S=1,E=d[b]),h[b]<d[b]&&h[b]<_[b]&&(S=0,E=h[b]),A.push([S,E,i[b].x,i[b].y]);A.sort((b,M)=>b[2]-M[2]),A.sort((b,M)=>b[3]-M[3]),A.sort((b,M)=>b[1]-M[1]),A.sort((b,M)=>b[0]-M[0]);for(let b=0;b<A.length;b++)x[A[b][2]+"|"+A[b][3]]=[A[b][0],A[b][1],b];return this.m=e,this.n=t,this.vertices=i,this.vertByDist=x,this.cartesian=m,this.min=o,this.max=l,this}}class WW{constructor(e,t,i,s){this.name=e,this.category=t,this.vertex=i,this.face=s}}class rB extends WW{innerToData(e,t){for(let i=0;i<t.innerFacets.length;i++)this.face.push(t.innerFacets[i].map(s=>t.vecToidx[e+s]))}mapABOBtoDATA(e,t){const i=t.IDATA.edgematch[e][0];for(let s=0;s<t.isoVecsABOB.length;s++){const r=[];for(let n=0;n<3;n++)t.vertexTypes[s][n]===0?r.push(e+"|"+t.isoVecsABOB[s][n].x+"|"+t.isoVecsABOB[s][n].y):r.push(i+"|"+t.isoVecsABOB[s][n].x+"|"+t.isoVecsABOB[s][n].y);this.face.push([t.vecToidx[r[0]],t.vecToidx[r[1]],t.vecToidx[r[2]]])}}mapOBOAtoDATA(e,t){const i=t.IDATA.edgematch[e][0];for(let s=0;s<t.isoVecsOBOA.length;s++){const r=[];for(let n=0;n<3;n++)t.vertexTypes[s][n]===1?r.push(e+"|"+t.isoVecsOBOA[s][n].x+"|"+t.isoVecsOBOA[s][n].y):r.push(i+"|"+t.isoVecsOBOA[s][n].x+"|"+t.isoVecsOBOA[s][n].y);this.face.push([t.vecToidx[r[0]],t.vecToidx[r[1]],t.vecToidx[r[2]]])}}mapBAOAtoDATA(e,t){const i=t.IDATA.edgematch[e][2];for(let s=0;s<t.isoVecsBAOA.length;s++){const r=[];for(let n=0;n<3;n++)t.vertexTypes[s][n]===1?r.push(e+"|"+t.isoVecsBAOA[s][n].x+"|"+t.isoVecsBAOA[s][n].y):r.push(i+"|"+t.isoVecsBAOA[s][n].x+"|"+t.isoVecsBAOA[s][n].y);this.face.push([t.vecToidx[r[0]],t.vecToidx[r[1]],t.vecToidx[r[2]]])}}orderData(e){const t=[];for(let n=0;n<13;n++)t[n]=[];const i=e.closestTo;for(let n=0;n<i.length;n++)i[n][0]>-1?i[n][1]>0&&t[i[n][0]].push([n,i[n][1]]):t[12].push([n,i[n][0]]);const s=[];for(let n=0;n<12;n++)s[n]=n;let r=12;for(let n=0;n<12;n++){t[n].sort((o,l)=>o[1]-l[1]);for(let o=0;o<t[n].length;o++)s[t[n][o][0]]=r++}for(let n=0;n<t[12].length;n++)s[t[12][n][0]]=r++;for(let n=0;n<this.vertex.length;n++)this.vertex[n].push(s[n]);this.vertex.sort((n,o)=>n[3]-o[3]);for(let n=0;n<this.vertex.length;n++)this.vertex[n].pop();for(let n=0;n<this.face.length;n++)for(let o=0;o<this.face[n].length;o++)this.face[n][o]=s[this.face[n][o]];this.sharedNodes=t[12].length,this.poleNodes=this.vertex.length-this.sharedNodes}setOrder(e,t){const i=[],s=[];let r=t.pop();s.push(r);let n=this.face[r].indexOf(e);n=(n+2)%3;let o=this.face[r][n];i.push(o);let l=0;for(;t.length>0;)r=t[l],this.face[r].indexOf(o)>-1?(n=(this.face[r].indexOf(o)+1)%3,o=this.face[r][n],i.push(o),s.push(r),t.splice(l,1),l=0):l++;return this.adjacentFaces.push(i),s}toGoldbergPolyhedronData(){const e=new WW("GeoDual","Goldberg",[],[]);e.name="GD dual";const t=this.vertex.length,i=new Array(t);for(let c=0;c<t;c++)i[c]=[];for(let c=0;c<this.face.length;c++)for(let u=0;u<3;u++)i[this.face[c][u]].push(c);let s=0,r=0,n=0,o=[],l=[];this.adjacentFaces=[];for(let c=0;c<i.length;c++)e.face[c]=this.setOrder(c,i[c].concat([])),i[c].forEach(u=>{s=0,r=0,n=0,o=this.face[u];for(let f=0;f<3;f++)l=this.vertex[o[f]],s+=l[0],r+=l[1],n+=l[2];e.vertex[u]=[s/3,r/3,n/3]});return e}static BuildGeodesicData(e){const t=new rB("Geodesic-m-n","Geodesic",[[0,Pl,-1],[-Pl,1,0],[-1,0,-Pl],[1,0,-Pl],[Pl,1,0],[0,Pl,1],[-1,0,Pl],[-Pl,-1,0],[0,-Pl,-1],[Pl,-1,0],[1,0,Pl],[0,-Pl,1]],[]);e.setIndices(),e.calcCoeffs(),e.createInnerFacets(),e.edgeVecsABOB(),e.mapABOBtoOBOA(),e.mapABOBtoBAOA();for(let s=0;s<e.IDATA.face.length;s++)e.MapToFace(s,t),t.innerToData(s,e),e.IDATA.edgematch[s][1]==="B"&&t.mapABOBtoDATA(s,e),e.IDATA.edgematch[s][1]==="O"&&t.mapOBOAtoDATA(s,e),e.IDATA.edgematch[s][3]==="A"&&t.mapBAOAtoDATA(s,e);t.orderData(e);const i=1;return t.vertex=t.vertex.map(function(s){const r=s[0],n=s[1],o=s[2],l=Math.sqrt(r*r+n*n+o*o);return s[0]*=i/l,s[1]*=i/l,s[2]*=i/l,s}),t}}function G1e(a,e,t=null){let i=e.m||1;i!==Math.floor(i)&&(i=Math.floor(i),de.Warn("m not an integer only floor(m) used"));let s=e.n||0;if(s!==Math.floor(s)&&(s=Math.floor(s),de.Warn("n not an integer only floor(n) used")),s>i){const c=s;s=i,i=c,de.Warn("n > m therefore m and n swapped")}const r=new nq;r.build(i,s);const o={custom:rB.BuildGeodesicData(r),size:e.size,sizeX:e.sizeX,sizeY:e.sizeY,sizeZ:e.sizeZ,faceUV:e.faceUV,faceColors:e.faceColors,flat:e.flat,updatable:e.updatable,sideOrientation:e.sideOrientation,frontUVs:e.frontUVs,backUVs:e.backUVs};return hL(a,o,t)}Ne._GoldbergMeshParser=(a,e)=>nB.Parse(a,e);class nB extends Ne{constructor(){super(...arguments),this.goldbergData={faceColors:[],faceCenters:[],faceZaxis:[],faceXaxis:[],faceYaxis:[],nbSharedFaces:0,nbUnsharedFaces:0,nbFaces:0,nbFacesAtPole:0,adjacentFaces:[]}}relatedGoldbergFace(e,t){return t===void 0?(e>this.goldbergData.nbUnsharedFaces-1&&(de.Warn("Maximum number of unshared faces used"),e=this.goldbergData.nbUnsharedFaces-1),this.goldbergData.nbUnsharedFaces+e):(e>11&&(de.Warn("Last pole used"),e=11),t>this.goldbergData.nbFacesAtPole-1&&(de.Warn("Maximum number of faces at a pole used"),t=this.goldbergData.nbFacesAtPole-1),12+e*this.goldbergData.nbFacesAtPole+t)}_changeGoldbergFaceColors(e){for(let i=0;i<e.length;i++){const s=e[i][0],r=e[i][1],n=e[i][2];for(let o=s;o<r+1;o++)this.goldbergData.faceColors[o]=n}const t=[];for(let i=0;i<12;i++)for(let s=0;s<5;s++)t.push(this.goldbergData.faceColors[i].r,this.goldbergData.faceColors[i].g,this.goldbergData.faceColors[i].b,this.goldbergData.faceColors[i].a);for(let i=12;i<this.goldbergData.faceColors.length;i++)for(let s=0;s<6;s++)t.push(this.goldbergData.faceColors[i].r,this.goldbergData.faceColors[i].g,this.goldbergData.faceColors[i].b,this.goldbergData.faceColors[i].a);return t}setGoldbergFaceColors(e){const t=this._changeGoldbergFaceColors(e);this.setVerticesData(q.ColorKind,t)}updateGoldbergFaceColors(e){const t=this._changeGoldbergFaceColors(e);this.updateVerticesData(q.ColorKind,t)}_changeGoldbergFaceUVs(e){const t=this.getVerticesData(q.UVKind);for(let i=0;i<e.length;i++){const s=e[i][0],r=e[i][1],n=e[i][2],o=e[i][3],l=e[i][4],c=[],u=[];let f,p;for(let m=0;m<5;m++)f=n.x+o*Math.cos(l+m*Math.PI/2.5),p=n.y+o*Math.sin(l+m*Math.PI/2.5),f<0&&(f=0),f>1&&(f=1),c.push(f,p);for(let m=0;m<6;m++)f=n.x+o*Math.cos(l+m*Math.PI/3),p=n.y+o*Math.sin(l+m*Math.PI/3),f<0&&(f=0),f>1&&(f=1),u.push(f,p);for(let m=s;m<Math.min(12,r+1);m++)for(let _=0;_<5;_++)t[10*m+2*_]=c[2*_],t[10*m+2*_+1]=c[2*_+1];for(let m=Math.max(12,s);m<r+1;m++)for(let _=0;_<6;_++)t[12*m-24+2*_]=u[2*_],t[12*m-23+2*_]=u[2*_+1]}return t}setGoldbergFaceUVs(e){const t=this._changeGoldbergFaceUVs(e);this.setVerticesData(q.UVKind,t)}updateGoldbergFaceUVs(e){const t=this._changeGoldbergFaceUVs(e);this.updateVerticesData(q.UVKind,t)}placeOnGoldbergFaceAt(e,t,i){const s=P.RotationFromAxis(this.goldbergData.faceXaxis[t],this.goldbergData.faceYaxis[t],this.goldbergData.faceZaxis[t]);e.rotation=s,e.position=this.goldbergData.faceCenters[t].add(this.goldbergData.faceXaxis[t].scale(i.x)).add(this.goldbergData.faceYaxis[t].scale(i.y)).add(this.goldbergData.faceZaxis[t].scale(i.z))}serialize(e){super.serialize(e),e.type="GoldbergMesh";const t={};if(t.adjacentFaces=this.goldbergData.adjacentFaces,t.nbSharedFaces=this.goldbergData.nbSharedFaces,t.nbUnsharedFaces=this.goldbergData.nbUnsharedFaces,t.nbFaces=this.goldbergData.nbFaces,t.nbFacesAtPole=this.goldbergData.nbFacesAtPole,this.goldbergData.faceColors){t.faceColors=[];for(const i of this.goldbergData.faceColors)t.faceColors.push(i.asArray())}if(this.goldbergData.faceCenters){t.faceCenters=[];for(const i of this.goldbergData.faceCenters)t.faceCenters.push(i.asArray())}if(this.goldbergData.faceZaxis){t.faceZaxis=[];for(const i of this.goldbergData.faceZaxis)t.faceZaxis.push(i.asArray())}if(this.goldbergData.faceYaxis){t.faceYaxis=[];for(const i of this.goldbergData.faceYaxis)t.faceYaxis.push(i.asArray())}if(this.goldbergData.faceXaxis){t.faceXaxis=[];for(const i of this.goldbergData.faceXaxis)t.faceXaxis.push(i.asArray())}e.goldbergData=t}static Parse(e,t){const i=e.goldbergData;i.faceColors=i.faceColors.map(r=>St.FromArray(r)),i.faceCenters=i.faceCenters.map(r=>P.FromArray(r)),i.faceZaxis=i.faceZaxis.map(r=>P.FromArray(r)),i.faceXaxis=i.faceXaxis.map(r=>P.FromArray(r)),i.faceYaxis=i.faceYaxis.map(r=>P.FromArray(r));const s=new nB(e.name,t);return s.goldbergData=i,s}}function W1e(a,e){const t=a.size,i=a.sizeX||t||1,s=a.sizeY||t||1,r=a.sizeZ||t||1,n=a.sideOrientation===0?0:a.sideOrientation||wt.DEFAULTSIDE,o=[],l=[],c=[],u=[];let f=1/0,p=-1/0,m=1/0,_=-1/0;for(let x=0;x<e.vertex.length;x++)f=Math.min(f,e.vertex[x][0]*i),p=Math.max(p,e.vertex[x][0]*i),m=Math.min(m,e.vertex[x][1]*s),_=Math.max(_,e.vertex[x][1]*s);let d=0;for(let x=0;x<e.face.length;x++){const A=e.face[x],S=P.FromArray(e.vertex[A[0]]),E=P.FromArray(e.vertex[A[2]]),b=P.FromArray(e.vertex[A[1]]),M=E.subtract(S),T=b.subtract(S),O=P.Cross(T,M).normalize();for(let R=0;R<A.length;R++){c.push(O.x,O.y,O.z);const I=e.vertex[A[R]];o.push(I[0]*i,I[1]*s,I[2]*r);const N=(I[1]*s-m)/(_-m);u.push((I[0]*i-f)/(p-f),_r?1-N:N)}for(let R=0;R<A.length-2;R++)l.push(d,d+R+2,d+R+1);d+=A.length}wt._ComputeSides(n,o,l,c,u);const h=new wt;return h.positions=o,h.indices=l,h.normals=c,h.uvs=u,h}function H1e(a,e,t=null){const i=e.size,s=e.sizeX||i||1,r=e.sizeY||i||1,n=e.sizeZ||i||1;let o=e.m||1;o!==Math.floor(o)&&(o=Math.floor(o),de.Warn("m not an integer only floor(m) used"));let l=e.n||0;if(l!==Math.floor(l)&&(l=Math.floor(l),de.Warn("n not an integer only floor(n) used")),l>o){const _=l;l=o,o=_,de.Warn("n > m therefore m and n swapped")}const c=new nq;c.build(o,l);const u=rB.BuildGeodesicData(c),f=u.toGoldbergPolyhedronData(),p=new nB(a,t);e.sideOrientation=Ne._GetDefaultSideOrientation(e.sideOrientation),p._originalBuilderSideOrientation=e.sideOrientation,W1e(e,f).applyToMesh(p,e.updatable),p.goldbergData.nbSharedFaces=u.sharedNodes,p.goldbergData.nbUnsharedFaces=u.poleNodes,p.goldbergData.adjacentFaces=u.adjacentFaces,p.goldbergData.nbFaces=p.goldbergData.nbSharedFaces+p.goldbergData.nbUnsharedFaces,p.goldbergData.nbFacesAtPole=(p.goldbergData.nbUnsharedFaces-12)/12;for(let _=0;_<u.vertex.length;_++)p.goldbergData.faceCenters.push(P.FromArray(u.vertex[_])),p.goldbergData.faceCenters[_].x*=s,p.goldbergData.faceCenters[_].y*=r,p.goldbergData.faceCenters[_].z*=n,p.goldbergData.faceColors.push(new St(1,1,1,1));for(let _=0;_<f.face.length;_++){const d=f.face[_],h=P.FromArray(f.vertex[d[0]]),x=P.FromArray(f.vertex[d[2]]),A=P.FromArray(f.vertex[d[1]]),S=x.subtract(h),E=A.subtract(h),b=P.Cross(E,S).normalize(),M=P.Cross(E,b).normalize();p.goldbergData.faceXaxis.push(E.normalize()),p.goldbergData.faceYaxis.push(b),p.goldbergData.faceZaxis.push(M)}return p}class kDe{constructor(e){this._paths=[],this._tempPaths=[],this._holes=[],this._resolution=e}moveTo(e,t){this._currentPath=new EP(e,t),this._tempPaths.push(this._currentPath)}lineTo(e,t){this._currentPath.addLineTo(e,t)}quadraticCurveTo(e,t,i,s){this._currentPath.addQuadraticCurveTo(e,t,i,s,this._resolution)}bezierCurveTo(e,t,i,s,r,n){this._currentPath.addBezierCurveTo(e,t,i,s,r,n,this._resolution)}extractHoles(){for(const e of this._tempPaths)e.area()>0?this._holes.push(e):this._paths.push(e);if(!this._paths.length&&this._holes.length){const e=this._holes;this._holes=this._paths,this._paths=e}this._tempPaths.length=0}get paths(){return this._paths}get holes(){return this._holes}}function UDe(a,e,t,i,s,r){const n=r.glyphs[a]||r.glyphs["?"];if(!n)return null;const o=new kDe(s);if(n.o){const l=n.o.split(" ");for(let c=0,u=l.length;c<u;)switch(l[c++]){case"m":{const p=parseInt(l[c++])*e+t,m=parseInt(l[c++])*e+i;o.moveTo(p,m);break}case"l":{const p=parseInt(l[c++])*e+t,m=parseInt(l[c++])*e+i;o.lineTo(p,m);break}case"q":{const p=parseInt(l[c++])*e+t,m=parseInt(l[c++])*e+i,_=parseInt(l[c++])*e+t,d=parseInt(l[c++])*e+i;o.quadraticCurveTo(_,d,p,m);break}case"b":{const p=parseInt(l[c++])*e+t,m=parseInt(l[c++])*e+i,_=parseInt(l[c++])*e+t,d=parseInt(l[c++])*e+i,h=parseInt(l[c++])*e+t,x=parseInt(l[c++])*e+i;o.bezierCurveTo(_,d,h,x,p,m);break}}}return o.extractHoles(),{offsetX:n.ha*e,shapePath:o}}function aq(a,e,t,i){const s=Array.from(a),r=e/i.resolution,n=(i.boundingBox.yMax-i.boundingBox.yMin+i.underlineThickness)*r,o=[];let l=0,c=0;for(let u=0;u<s.length;u++){const f=s[u];if(f===`
`)l=0,c-=n;else{const p=UDe(f,r,l,c,t,i);p&&(l+=p.offsetX,o.push(p.shapePath))}}return o}function Y1e(a,e,t,i={size:50,resolution:8,depth:1},s=null,r=earcut){var u,f;const n=aq(e,i.size||50,i.resolution||8,t),o=[];let l=0;for(const p of n){if(!p.paths.length)continue;const m=p.holes.slice();for(const _ of p.paths){const d=[],h=[],x=_.getPoints();for(const E of x)h.push(new P(E.x,0,E.y));const A=m.slice();for(const E of A){const b=E.getPoints();let M=!1;for(const O of b)if(_.isPointInside(O)){M=!0;break}if(!M)continue;const T=[];for(const O of b)T.push(new P(O.x,0,O.y));d.push(T),m.splice(m.indexOf(E),1)}if(!d.length&&m.length)for(const E of m){const b=E.getPoints(),M=[];for(const T of b)M.push(new P(T.x,0,T.y));d.push(M)}const S=eB(a,{shape:h,holes:d.length?d:void 0,depth:i.depth||1,faceUV:i.faceUV||((u=i.perLetterFaceUV)==null?void 0:u.call(i,l)),faceColors:i.faceColors||((f=i.perLetterFaceColors)==null?void 0:f.call(i,l)),sideOrientation:Ne._GetDefaultSideOrientation(i.sideOrientation||Ne.DOUBLESIDE)},s,r);o.push(S),l++}}const c=Ne.MergeMeshes(o,!0,!0);if(c){const p=c.getBoundingInfo().boundingBox;c.position.x+=-(p.minimumWorld.x+p.maximumWorld.x)/2,c.position.y+=-(p.minimumWorld.y+p.maximumWorld.y)/2,c.position.z+=-(p.minimumWorld.z+p.maximumWorld.z)/2+p.extendSize.z,c.name=a;const m=new Si("pivot",s);m.rotation.x=-Math.PI/2,c.parent=m,c.bakeCurrentTransformIntoVertices(),c.parent=null,m.dispose()}return c}const l3={CreateBox:pa,CreateTiledBox:qK,CreateSphere:hd,CreateDisc:wP,CreateIcoSphere:FP,CreateRibbon:Py,CreateCylinder:e1,CreateTorus:Jv,CreateTorusKnot:BW,CreateLineSystem:uL,CreateLines:ta,CreateDashedLines:zW,ExtrudeShape:tB,ExtrudeShapeCustom:iB,CreateLathe:FW,CreateTiledPlane:ZK,CreatePlane:Eh,CreateGround:cL,CreateTiledGround:PW,CreateGroundFromHeightMap:OW,CreatePolygon:$w,ExtrudePolygon:eB,CreateTube:kW,CreatePolyhedron:hL,CreateGeodesic:G1e,CreateGoldberg:H1e,CreateDecal:VW,CreateCapsule:sB,CreateText:Y1e};class X1e{constructor(){this._zoomStopsAnimation=!1,this._idleRotationSpeed=.05,this._idleRotationWaitTime=2e3,this._idleRotationSpinupTime=2e3,this.targetAlpha=null,this._isPointerDown=!1,this._lastFrameTime=null,this._lastInteractionTime=-1/0,this._cameraRotationSpeed=0,this._lastFrameRadius=0}get name(){return"AutoRotation"}set zoomStopsAnimation(e){this._zoomStopsAnimation=e}get zoomStopsAnimation(){return this._zoomStopsAnimation}set idleRotationSpeed(e){this._idleRotationSpeed=e}get idleRotationSpeed(){return this._idleRotationSpeed}set idleRotationWaitTime(e){this._idleRotationWaitTime=e}get idleRotationWaitTime(){return this._idleRotationWaitTime}set idleRotationSpinupTime(e){this._idleRotationSpinupTime=e}get idleRotationSpinupTime(){return this._idleRotationSpinupTime}get rotationInProgress(){return Math.abs(this._cameraRotationSpeed)>0}init(){}attach(e){this._attachedCamera=e;const t=this._attachedCamera.getScene();this._onPrePointerObservableObserver=t.onPrePointerObservable.add(i=>{if(i.type===Xt.POINTERDOWN){this._isPointerDown=!0;return}i.type===Xt.POINTERUP&&(this._isPointerDown=!1)}),this._onAfterCheckInputsObserver=e.onAfterCheckInputsObservable.add(()=>{if(this._reachTargetAlpha())return;const i=lr.Now;let s=0;this._lastFrameTime!=null&&(s=i-this._lastFrameTime),this._lastFrameTime=i,this._applyUserInteraction();const r=i-this._lastInteractionTime-this._idleRotationWaitTime,n=Math.max(Math.min(r/this._idleRotationSpinupTime,1),0);this._cameraRotationSpeed=this._idleRotationSpeed*n,this._attachedCamera&&(this._attachedCamera.alpha-=this._cameraRotationSpeed*(s/1e3))})}detach(){if(!this._attachedCamera)return;const e=this._attachedCamera.getScene();this._onPrePointerObservableObserver&&e.onPrePointerObservable.remove(this._onPrePointerObservableObserver),this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),this._attachedCamera=null,this._lastFrameTime=null}resetLastInteractionTime(e){this._lastInteractionTime=e??lr.Now}_reachTargetAlpha(){return this._attachedCamera&&this.targetAlpha?Math.abs(this._attachedCamera.alpha-this.targetAlpha)<Ii:!1}_userIsZooming(){return this._attachedCamera?this._attachedCamera.inertialRadiusOffset!==0:!1}_shouldAnimationStopForInteraction(){if(!this._attachedCamera)return!1;let e=!1;return this._lastFrameRadius===this._attachedCamera.radius&&this._attachedCamera.inertialRadiusOffset!==0&&(e=!0),this._lastFrameRadius=this._attachedCamera.radius,this._zoomStopsAnimation?e:this._userIsZooming()}_applyUserInteraction(){this._userIsMoving()&&!this._shouldAnimationStopForInteraction()&&(this._lastInteractionTime=lr.Now)}_userIsMoving(){return this._attachedCamera?this._attachedCamera.inertialAlphaOffset!==0||this._attachedCamera.inertialBetaOffset!==0||this._attachedCamera.inertialRadiusOffset!==0||this._attachedCamera.inertialPanningX!==0||this._attachedCamera.inertialPanningY!==0||this._isPointerDown:!1}}class Uo{constructor(){this._easingMode=Uo.EASINGMODE_EASEIN}setEasingMode(e){const t=Math.min(Math.max(e,0),2);this._easingMode=t}getEasingMode(){return this._easingMode}easeInCore(e){throw new Error("You must implement this method")}ease(e){switch(this._easingMode){case Uo.EASINGMODE_EASEIN:return this.easeInCore(e);case Uo.EASINGMODE_EASEOUT:return 1-this.easeInCore(1-e)}return e>=.5?(1-this.easeInCore((1-e)*2))*.5+.5:this.easeInCore(e*2)*.5}}Uo.EASINGMODE_EASEIN=0,Uo.EASINGMODE_EASEOUT=1,Uo.EASINGMODE_EASEINOUT=2;class Oy extends Uo{easeInCore(e){return e=Math.max(0,Math.min(1,e)),1-Math.sqrt(1-e*e)}}class Ry extends Uo{constructor(e=1){super(),this.amplitude=e}easeInCore(e){const t=Math.max(0,this.amplitude);return Math.pow(e,3)-e*t*Math.sin(3.141592653589793*e)}}class Z1e extends Uo{constructor(e=3,t=2){super(),this.bounces=e,this.bounciness=t}easeInCore(e){const t=Math.max(0,this.bounces);let i=this.bounciness;i<=1&&(i=1.001);const s=Math.pow(i,t),r=1-i,n=(1-s)/r+s*.5,o=e*n,l=Math.log(-o*(1-i)+1)/Math.log(i),c=Math.floor(l),u=c+1,f=(1-Math.pow(i,c))/(r*n),p=(1-Math.pow(i,u))/(r*n),m=(f+p)*.5,_=e-m,d=m-f;return-Math.pow(1/i,t-c)/(d*d)*(_-d)*(_+d)}}class GT extends Uo{easeInCore(e){return e*e*e}}class WT extends Uo{constructor(e=3,t=3){super(),this.oscillations=e,this.springiness=t}easeInCore(e){let t;const i=Math.max(0,this.oscillations),s=Math.max(0,this.springiness);return s==0?t=e:t=(Math.exp(s*e)-1)/(Math.exp(s)-1),t*Math.sin((6.283185307179586*i+1.5707963267948966)*e)}}class Dy extends Uo{constructor(e=2){super(),this.exponent=e}easeInCore(e){return this.exponent<=0?e:(Math.exp(this.exponent*e)-1)/(Math.exp(this.exponent)-1)}}class jDe extends Uo{constructor(e=2){super(),this.power=e}easeInCore(e){const t=Math.max(0,this.power);return Math.pow(e,t)}}class ob extends Uo{easeInCore(e){return e*e}}class dL extends Uo{easeInCore(e){return e*e*e*e}}class fL extends Uo{easeInCore(e){return e*e*e*e*e}}class lb extends Uo{easeInCore(e){return 1-Math.sin(1.5707963267948966*(1-e))}}class oq extends Uo{constructor(e=0,t=0,i=1,s=1){super(),this.x1=e,this.y1=t,this.x2=i,this.y2=s}easeInCore(e){return pde.Interpolate(e,this.x1,this.y1,this.x2,this.y2)}}class HT{constructor(){this.transitionDuration=450,this.lowerRadiusTransitionRange=2,this.upperRadiusTransitionRange=-2,this._autoTransitionRange=!1,this._radiusIsAnimating=!1,this._radiusBounceTransition=null,this._animatables=new Array}get name(){return"Bouncing"}get autoTransitionRange(){return this._autoTransitionRange}set autoTransitionRange(e){if(this._autoTransitionRange===e)return;this._autoTransitionRange=e;const t=this._attachedCamera;t&&(e?this._onMeshTargetChangedObserver=t.onMeshTargetChangedObservable.add(i=>{if(i&&(i.computeWorldMatrix(!0),i.getBoundingInfo)){const s=i.getBoundingInfo().diagonalLength;this.lowerRadiusTransitionRange=s*.05,this.upperRadiusTransitionRange=s*.05}}):this._onMeshTargetChangedObserver&&t.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver))}init(){}attach(e){this._attachedCamera=e,this._onAfterCheckInputsObserver=e.onAfterCheckInputsObservable.add(()=>{this._attachedCamera&&(this._isRadiusAtLimit(this._attachedCamera.lowerRadiusLimit)&&this._applyBoundRadiusAnimation(this.lowerRadiusTransitionRange),this._isRadiusAtLimit(this._attachedCamera.upperRadiusLimit)&&this._applyBoundRadiusAnimation(this.upperRadiusTransitionRange))})}detach(){this._attachedCamera&&(this._onAfterCheckInputsObserver&&this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),this._onMeshTargetChangedObserver&&this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver),this._attachedCamera=null)}_isRadiusAtLimit(e){return this._attachedCamera?this._attachedCamera.radius===e&&!this._radiusIsAnimating:!1}_applyBoundRadiusAnimation(e){if(!this._attachedCamera)return;this._radiusBounceTransition||(HT.EasingFunction.setEasingMode(HT.EasingMode),this._radiusBounceTransition=He.CreateAnimation("radius",He.ANIMATIONTYPE_FLOAT,60,HT.EasingFunction)),this._cachedWheelPrecision=this._attachedCamera.wheelPrecision,this._attachedCamera.wheelPrecision=1/0,this._attachedCamera.inertialRadiusOffset=0,this.stopAllAnimations(),this._radiusIsAnimating=!0;const t=He.TransitionTo("radius",this._attachedCamera.radius+e,this._attachedCamera,this._attachedCamera.getScene(),60,this._radiusBounceTransition,this.transitionDuration,()=>this._clearAnimationLocks());t&&this._animatables.push(t)}_clearAnimationLocks(){this._radiusIsAnimating=!1,this._attachedCamera&&(this._attachedCamera.wheelPrecision=this._cachedWheelPrecision)}stopAllAnimations(){for(this._attachedCamera&&(this._attachedCamera.animations=[]);this._animatables.length;)this._animatables[0].onAnimationEnd=null,this._animatables[0].stop(),this._animatables.shift()}}HT.EasingFunction=new Ry(.3),HT.EasingMode=Uo.EASINGMODE_EASEOUT;class of{constructor(){this.onTargetFramingAnimationEndObservable=new xe,this._mode=of.FitFrustumSidesMode,this._radiusScale=1,this._positionScale=.5,this._defaultElevation=.3,this._elevationReturnTime=1500,this._elevationReturnWaitTime=1e3,this._zoomStopsAnimation=!1,this._framingTime=1500,this.autoCorrectCameraLimitsAndSensibility=!0,this._isPointerDown=!1,this._lastInteractionTime=-1/0,this._animatables=new Array,this._betaIsAnimating=!1}get name(){return"Framing"}set mode(e){this._mode=e}get mode(){return this._mode}set radiusScale(e){this._radiusScale=e}get radiusScale(){return this._radiusScale}set positionScale(e){this._positionScale=e}get positionScale(){return this._positionScale}set defaultElevation(e){this._defaultElevation=e}get defaultElevation(){return this._defaultElevation}set elevationReturnTime(e){this._elevationReturnTime=e}get elevationReturnTime(){return this._elevationReturnTime}set elevationReturnWaitTime(e){this._elevationReturnWaitTime=e}get elevationReturnWaitTime(){return this._elevationReturnWaitTime}set zoomStopsAnimation(e){this._zoomStopsAnimation=e}get zoomStopsAnimation(){return this._zoomStopsAnimation}set framingTime(e){this._framingTime=e}get framingTime(){return this._framingTime}init(){}attach(e){this._attachedCamera=e;const t=this._attachedCamera.getScene();of.EasingFunction.setEasingMode(of.EasingMode),this._onPrePointerObservableObserver=t.onPrePointerObservable.add(i=>{if(i.type===Xt.POINTERDOWN){this._isPointerDown=!0;return}i.type===Xt.POINTERUP&&(this._isPointerDown=!1)}),this._onMeshTargetChangedObserver=e.onMeshTargetChangedObservable.add(i=>{i&&i.getBoundingInfo&&this.zoomOnMesh(i,void 0,()=>{this.onTargetFramingAnimationEndObservable.notifyObservers()})}),this._onAfterCheckInputsObserver=e.onAfterCheckInputsObservable.add(()=>{this._applyUserInteraction(),this._maintainCameraAboveGround()})}detach(){if(!this._attachedCamera)return;const e=this._attachedCamera.getScene();this._onPrePointerObservableObserver&&e.onPrePointerObservable.remove(this._onPrePointerObservableObserver),this._onAfterCheckInputsObserver&&this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),this._onMeshTargetChangedObserver&&this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver),this._attachedCamera=null}zoomOnMesh(e,t=!1,i=null){e.computeWorldMatrix(!0);const s=e.getBoundingInfo().boundingBox;this.zoomOnBoundingInfo(s.minimumWorld,s.maximumWorld,t,i)}zoomOnMeshHierarchy(e,t=!1,i=null){e.computeWorldMatrix(!0);const s=e.getHierarchyBoundingVectors(!0);this.zoomOnBoundingInfo(s.min,s.max,t,i)}zoomOnMeshesHierarchy(e,t=!1,i=null){const s=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),r=new P(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);for(let n=0;n<e.length;n++){const o=e[n].getHierarchyBoundingVectors(!0);P.CheckExtends(o.min,s,r),P.CheckExtends(o.max,s,r)}this.zoomOnBoundingInfo(s,r,t,i)}zoomOnBoundingInfo(e,t,i=!1,s=null){let r;if(!this._attachedCamera)return!1;const n=e.y,o=t.y,l=n+(o-n)*this._positionScale,c=t.subtract(e).scale(.5);if(!isFinite(l))return!1;if(i)r=new P(0,l,0);else{const p=e.add(c);r=new P(p.x,l,p.z)}this._vectorTransition||(this._vectorTransition=He.CreateAnimation("target",He.ANIMATIONTYPE_VECTOR3,60,of.EasingFunction)),this._betaIsAnimating=!0;let u=He.TransitionTo("target",r,this._attachedCamera,this._attachedCamera.getScene(),60,this._vectorTransition,this._framingTime);u&&this._animatables.push(u);let f=0;if(this._mode===of.FitFrustumSidesMode){const p=this._calculateLowerRadiusFromModelBoundingSphere(e,t);this.autoCorrectCameraLimitsAndSensibility&&(this._attachedCamera.lowerRadiusLimit=c.length()+this._attachedCamera.minZ),f=p}else this._mode===of.IgnoreBoundsSizeMode&&(f=this._calculateLowerRadiusFromModelBoundingSphere(e,t),this.autoCorrectCameraLimitsAndSensibility&&this._attachedCamera.lowerRadiusLimit===null&&(this._attachedCamera.lowerRadiusLimit=this._attachedCamera.minZ));if(this.autoCorrectCameraLimitsAndSensibility){const p=t.subtract(e).length();this._attachedCamera.panningSensibility=5e3/p,this._attachedCamera.wheelPrecision=100/f}return this._radiusTransition||(this._radiusTransition=He.CreateAnimation("radius",He.ANIMATIONTYPE_FLOAT,60,of.EasingFunction)),u=He.TransitionTo("radius",f,this._attachedCamera,this._attachedCamera.getScene(),60,this._radiusTransition,this._framingTime,()=>{this.stopAllAnimations(),s&&s(),this._attachedCamera&&this._attachedCamera.useInputToRestoreState&&this._attachedCamera.storeState()}),u&&this._animatables.push(u),!0}_calculateLowerRadiusFromModelBoundingSphere(e,t){const i=this._attachedCamera;if(!i)return 0;let s=i._calculateLowerRadiusFromModelBoundingSphere(e,t,this._radiusScale);return i.lowerRadiusLimit&&this._mode===of.IgnoreBoundsSizeMode&&(s=s<i.lowerRadiusLimit?i.lowerRadiusLimit:s),i.upperRadiusLimit&&(s=s>i.upperRadiusLimit?i.upperRadiusLimit:s),s}_maintainCameraAboveGround(){if(this._elevationReturnTime<0)return;const e=lr.Now-this._lastInteractionTime,t=Math.PI*.5-this._defaultElevation,i=Math.PI*.5;if(this._attachedCamera&&!this._betaIsAnimating&&this._attachedCamera.beta>i&&e>=this._elevationReturnWaitTime){this._betaIsAnimating=!0,this.stopAllAnimations(),this._betaTransition||(this._betaTransition=He.CreateAnimation("beta",He.ANIMATIONTYPE_FLOAT,60,of.EasingFunction));const s=He.TransitionTo("beta",t,this._attachedCamera,this._attachedCamera.getScene(),60,this._betaTransition,this._elevationReturnTime,()=>{this._clearAnimationLocks(),this.stopAllAnimations()});s&&this._animatables.push(s)}}_clearAnimationLocks(){this._betaIsAnimating=!1}_applyUserInteraction(){this.isUserIsMoving&&(this._lastInteractionTime=lr.Now,this.stopAllAnimations(),this._clearAnimationLocks())}stopAllAnimations(){for(this._attachedCamera&&(this._attachedCamera.animations=[]);this._animatables.length;)this._animatables[0]&&(this._animatables[0].onAnimationEnd=null,this._animatables[0].stop()),this._animatables.shift()}get isUserIsMoving(){return this._attachedCamera?this._attachedCamera.inertialAlphaOffset!==0||this._attachedCamera.inertialBetaOffset!==0||this._attachedCamera.inertialRadiusOffset!==0||this._attachedCamera.inertialPanningX!==0||this._attachedCamera.inertialPanningY!==0||this._isPointerDown:!1}}of.EasingFunction=new Dy,of.EasingMode=Uo.EASINGMODE_EASEINOUT,of.IgnoreBoundsSizeMode=0,of.FitFrustumSidesMode=1;class HW{constructor(){this._currentMousePointerIdDown=-1,this.buttons=[0,1,2]}attachControl(e){e=Le.BackCompatCameraNoPreventDefault(arguments);const t=this.camera.getEngine(),i=t.getInputElement();let s=0,r=null;this._pointA=null,this._pointB=null,this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._buttonsPressed=0,this._pointerInput=o=>{var f,p;const l=o.event,c=l.pointerType==="touch";if(o.type!==Xt.POINTERMOVE&&this.buttons.indexOf(l.button)===-1)return;const u=l.target;if(this._altKey=l.altKey,this._ctrlKey=l.ctrlKey,this._metaKey=l.metaKey,this._shiftKey=l.shiftKey,this._buttonsPressed=l.buttons,t.isPointerLock){const m=l.movementX,_=l.movementY;this.onTouch(null,m,_),this._pointA=null,this._pointB=null}else{if(o.type!==Xt.POINTERDOWN&&o.type!==Xt.POINTERDOUBLETAP&&c&&((f=this._pointA)==null?void 0:f.pointerId)!==l.pointerId&&((p=this._pointB)==null?void 0:p.pointerId)!==l.pointerId)return;if(o.type===Xt.POINTERDOWN&&(this._currentMousePointerIdDown===-1||c)){try{u==null||u.setPointerCapture(l.pointerId)}catch{}if(this._pointA===null)this._pointA={x:l.clientX,y:l.clientY,pointerId:l.pointerId,type:l.pointerType};else if(this._pointB===null)this._pointB={x:l.clientX,y:l.clientY,pointerId:l.pointerId,type:l.pointerType};else return;this._currentMousePointerIdDown===-1&&!c&&(this._currentMousePointerIdDown=l.pointerId),this.onButtonDown(l),e||(l.preventDefault(),i&&i.focus())}else if(o.type===Xt.POINTERDOUBLETAP)this.onDoubleTap(l.pointerType);else if(o.type===Xt.POINTERUP&&(this._currentMousePointerIdDown===l.pointerId||c)){try{u==null||u.releasePointerCapture(l.pointerId)}catch{}c||(this._pointB=null),t._badOS?this._pointA=this._pointB=null:this._pointB&&this._pointA&&this._pointA.pointerId==l.pointerId?(this._pointA=this._pointB,this._pointB=null):this._pointA&&this._pointB&&this._pointB.pointerId==l.pointerId?this._pointB=null:this._pointA=this._pointB=null,(s!==0||r)&&(this.onMultiTouch(this._pointA,this._pointB,s,0,r,null),s=0,r=null),this._currentMousePointerIdDown=-1,this.onButtonUp(l),e||l.preventDefault()}else if(o.type===Xt.POINTERMOVE){if(e||l.preventDefault(),this._pointA&&this._pointB===null){const m=l.clientX-this._pointA.x,_=l.clientY-this._pointA.y;this._pointA.x=l.clientX,this._pointA.y=l.clientY,this.onTouch(this._pointA,m,_)}else if(this._pointA&&this._pointB){const m=this._pointA.pointerId===l.pointerId?this._pointA:this._pointB;m.x=l.clientX,m.y=l.clientY;const _=this._pointA.x-this._pointB.x,d=this._pointA.y-this._pointB.y,h=_*_+d*d,x={x:(this._pointA.x+this._pointB.x)/2,y:(this._pointA.y+this._pointB.y)/2,pointerId:l.pointerId,type:o.type};this.onMultiTouch(this._pointA,this._pointB,s,h,r,x),r=x,s=h}}}},this._observer=this.camera.getScene()._inputManager._addCameraPointerObserver(this._pointerInput,Xt.POINTERDOWN|Xt.POINTERUP|Xt.POINTERMOVE|Xt.POINTERDOUBLETAP),this._onLostFocus=()=>{this._pointA=this._pointB=null,s=0,r=null,this.onLostFocus()},this._contextMenuBind=o=>this.onContextMenu(o),i&&i.addEventListener("contextmenu",this._contextMenuBind,!1);const n=this.camera.getScene().getEngine().getHostWindow();n&&Le.RegisterTopRootEvents(n,[{name:"blur",handler:this._onLostFocus}])}detachControl(){if(this._onLostFocus){const e=this.camera.getScene().getEngine().getHostWindow();e&&Le.UnregisterTopRootEvents(e,[{name:"blur",handler:this._onLostFocus}])}if(this._observer){if(this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer),this._observer=null,this._contextMenuBind){const e=this.camera.getScene().getEngine().getInputElement();e&&e.removeEventListener("contextmenu",this._contextMenuBind)}this._onLostFocus=null}this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._buttonsPressed=0,this._currentMousePointerIdDown=-1}getClassName(){return"BaseCameraPointersInput"}getSimpleName(){return"pointers"}onDoubleTap(e){}onTouch(e,t,i){}onMultiTouch(e,t,i,s,r,n){}onContextMenu(e){e.preventDefault()}onButtonDown(e){}onButtonUp(e){}onLostFocus(){}}F([G()],HW.prototype,"buttons",void 0);class lf extends HW{constructor(){super(...arguments),this.buttons=[0,1,2],this.angularSensibilityX=1e3,this.angularSensibilityY=1e3,this.pinchPrecision=12,this.pinchDeltaPercentage=0,this.useNaturalPinchZoom=!1,this.pinchZoom=!0,this.panningSensibility=1e3,this.multiTouchPanning=!0,this.multiTouchPanAndZoom=!0,this.pinchInwards=!0,this._isPanClick=!1,this._twoFingerActivityCount=0,this._isPinching=!1}getClassName(){return"ArcRotateCameraPointersInput"}_computeMultiTouchPanning(e,t){if(this.panningSensibility!==0&&e&&t){const i=t.x-e.x,s=t.y-e.y;this.camera.inertialPanningX+=-i/this.panningSensibility,this.camera.inertialPanningY+=s/this.panningSensibility}}_computePinchZoom(e,t){const i=this.camera.radius||lf.MinimumRadiusForPinch;this.useNaturalPinchZoom?this.camera.radius=i*Math.sqrt(e)/Math.sqrt(t):this.pinchDeltaPercentage?this.camera.inertialRadiusOffset+=(t-e)*.001*i*this.pinchDeltaPercentage:this.camera.inertialRadiusOffset+=(t-e)/(this.pinchPrecision*(this.pinchInwards?1:-1)*(this.angularSensibilityX+this.angularSensibilityY)/2)}onTouch(e,t,i){this.panningSensibility!==0&&(this._ctrlKey&&this.camera._useCtrlForPanning||this._isPanClick)?(this.camera.inertialPanningX+=-t/this.panningSensibility,this.camera.inertialPanningY+=i/this.panningSensibility):(this.camera.inertialAlphaOffset-=t/this.angularSensibilityX,this.camera.inertialBetaOffset-=i/this.angularSensibilityY)}onDoubleTap(){this.camera.useInputToRestoreState&&this.camera.restoreState()}onMultiTouch(e,t,i,s,r,n){i===0&&r===null||s===0&&n===null||(this.multiTouchPanAndZoom?(this._computePinchZoom(i,s),this._computeMultiTouchPanning(r,n)):this.multiTouchPanning&&this.pinchZoom?(this._twoFingerActivityCount++,this._isPinching||this._twoFingerActivityCount<20&&Math.abs(Math.sqrt(s)-Math.sqrt(i))>this.camera.pinchToPanMaxDistance?(this._computePinchZoom(i,s),this._isPinching=!0):this._computeMultiTouchPanning(r,n)):this.multiTouchPanning?this._computeMultiTouchPanning(r,n):this.pinchZoom&&this._computePinchZoom(i,s))}onButtonDown(e){this._isPanClick=e.button===this.camera._panningMouseButton}onButtonUp(e){this._twoFingerActivityCount=0,this._isPinching=!1}onLostFocus(){this._isPanClick=!1,this._twoFingerActivityCount=0,this._isPinching=!1}}lf.MinimumRadiusForPinch=.001,F([G()],lf.prototype,"buttons",void 0),F([G()],lf.prototype,"angularSensibilityX",void 0),F([G()],lf.prototype,"angularSensibilityY",void 0),F([G()],lf.prototype,"pinchPrecision",void 0),F([G()],lf.prototype,"pinchDeltaPercentage",void 0),F([G()],lf.prototype,"useNaturalPinchZoom",void 0),F([G()],lf.prototype,"pinchZoom",void 0),F([G()],lf.prototype,"panningSensibility",void 0),F([G()],lf.prototype,"multiTouchPanning",void 0),F([G()],lf.prototype,"multiTouchPanAndZoom",void 0),yh.ArcRotateCameraPointersInput=lf;class e_{constructor(){this.keysUp=[38],this.keysDown=[40],this.keysLeft=[37],this.keysRight=[39],this.keysReset=[220],this.panningSensibility=50,this.zoomingSensibility=25,this.useAltToZoom=!0,this.angularSpeed=.01,this._keys=new Array}attachControl(e){e=Le.BackCompatCameraNoPreventDefault(arguments),!this._onCanvasBlurObserver&&(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add(()=>{this._keys.length=0}),this._onKeyboardObserver=this._scene.onKeyboardObservable.add(t=>{const i=t.event;if(!i.metaKey){if(t.type===x4.KEYDOWN)this._ctrlPressed=i.ctrlKey,this._altPressed=i.altKey,(this.keysUp.indexOf(i.keyCode)!==-1||this.keysDown.indexOf(i.keyCode)!==-1||this.keysLeft.indexOf(i.keyCode)!==-1||this.keysRight.indexOf(i.keyCode)!==-1||this.keysReset.indexOf(i.keyCode)!==-1)&&(this._keys.indexOf(i.keyCode)===-1&&this._keys.push(i.keyCode),i.preventDefault&&(e||i.preventDefault()));else if(this.keysUp.indexOf(i.keyCode)!==-1||this.keysDown.indexOf(i.keyCode)!==-1||this.keysLeft.indexOf(i.keyCode)!==-1||this.keysRight.indexOf(i.keyCode)!==-1||this.keysReset.indexOf(i.keyCode)!==-1){const s=this._keys.indexOf(i.keyCode);s>=0&&this._keys.splice(s,1),i.preventDefault&&(e||i.preventDefault())}}}))}detachControl(){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys.length=0}checkInputs(){if(this._onKeyboardObserver){const e=this.camera;for(let t=0;t<this._keys.length;t++){const i=this._keys[t];this.keysLeft.indexOf(i)!==-1?this._ctrlPressed&&this.camera._useCtrlForPanning?e.inertialPanningX-=1/this.panningSensibility:e.inertialAlphaOffset-=this.angularSpeed:this.keysUp.indexOf(i)!==-1?this._ctrlPressed&&this.camera._useCtrlForPanning?e.inertialPanningY+=1/this.panningSensibility:this._altPressed&&this.useAltToZoom?e.inertialRadiusOffset+=1/this.zoomingSensibility:e.inertialBetaOffset-=this.angularSpeed:this.keysRight.indexOf(i)!==-1?this._ctrlPressed&&this.camera._useCtrlForPanning?e.inertialPanningX+=1/this.panningSensibility:e.inertialAlphaOffset+=this.angularSpeed:this.keysDown.indexOf(i)!==-1?this._ctrlPressed&&this.camera._useCtrlForPanning?e.inertialPanningY-=1/this.panningSensibility:this._altPressed&&this.useAltToZoom?e.inertialRadiusOffset-=1/this.zoomingSensibility:e.inertialBetaOffset+=this.angularSpeed:this.keysReset.indexOf(i)!==-1&&e.useInputToRestoreState&&e.restoreState()}}}getClassName(){return"ArcRotateCameraKeyboardMoveInput"}getSimpleName(){return"keyboard"}}F([G()],e_.prototype,"keysUp",void 0),F([G()],e_.prototype,"keysDown",void 0),F([G()],e_.prototype,"keysLeft",void 0),F([G()],e_.prototype,"keysRight",void 0),F([G()],e_.prototype,"keysReset",void 0),F([G()],e_.prototype,"panningSensibility",void 0),F([G()],e_.prototype,"zoomingSensibility",void 0),F([G()],e_.prototype,"useAltToZoom",void 0),F([G()],e_.prototype,"angularSpeed",void 0),yh.ArcRotateCameraKeyboardMoveInput=e_;const VDe=40;class kP{constructor(){this.wheelPrecision=3,this.zoomToMouseLocation=!1,this.wheelDeltaPercentage=0,this.customComputeDeltaFromMouseWheel=null,this._viewOffset=new P(0,0,0),this._globalOffset=new P(0,0,0),this._inertialPanning=P.Zero()}_computeDeltaFromMouseWheelLegacyEvent(e,t){let i=0;const s=e*.01*this.wheelDeltaPercentage*t;return e>0?i=s/(1+this.wheelDeltaPercentage):i=s*(1+this.wheelDeltaPercentage),i}attachControl(e){e=Le.BackCompatCameraNoPreventDefault(arguments),this._wheel=t=>{if(t.type!==Xt.POINTERWHEEL)return;const i=t.event;let s=0;const r=i.deltaMode===W9.DOM_DELTA_LINE?VDe:1,n=-(i.deltaY*r);if(this.customComputeDeltaFromMouseWheel)s=this.customComputeDeltaFromMouseWheel(n,this,i);else if(this.wheelDeltaPercentage){if(s=this._computeDeltaFromMouseWheelLegacyEvent(n,this.camera.radius),s>0){let o=this.camera.radius,l=this.camera.inertialRadiusOffset+s;for(let c=0;c<20&&Math.abs(l)>.001;c++)o-=l,l*=this.camera.inertia;o=Os(o,0,Number.MAX_VALUE),s=this._computeDeltaFromMouseWheelLegacyEvent(n,o)}}else s=n/(this.wheelPrecision*40);s&&(this.zoomToMouseLocation?(this._hitPlane||this._updateHitPlane(),this._zoomToMouse(s)):this.camera.inertialRadiusOffset+=s),i.preventDefault&&(e||i.preventDefault())},this._observer=this.camera.getScene()._inputManager._addCameraPointerObserver(this._wheel,Xt.POINTERWHEEL),this.zoomToMouseLocation&&this._inertialPanning.setAll(0)}detachControl(){this._observer&&(this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer),this._observer=null,this._wheel=null)}checkInputs(){if(!this.zoomToMouseLocation)return;const e=this.camera;0+e.inertialAlphaOffset+e.inertialBetaOffset+e.inertialRadiusOffset&&(this._updateHitPlane(),e.target.addInPlace(this._inertialPanning),this._inertialPanning.scaleInPlace(e.inertia),this._zeroIfClose(this._inertialPanning))}getClassName(){return"ArcRotateCameraMouseWheelInput"}getSimpleName(){return"mousewheel"}_updateHitPlane(){const e=this.camera,t=e.target.subtract(e.position);this._hitPlane=Sh.FromPositionAndNormal(e.target,t)}_getPosition(){const e=this.camera,t=e.getScene(),i=t.createPickingRay(t.pointerX,t.pointerY,me.Identity(),e,!1);(e.targetScreenOffset.x!==0||e.targetScreenOffset.y!==0)&&(this._viewOffset.set(e.targetScreenOffset.x,e.targetScreenOffset.y,0),e.getViewMatrix().invertToRef(e._cameraTransformMatrix),this._globalOffset=P.TransformNormal(this._viewOffset,e._cameraTransformMatrix),i.origin.addInPlace(this._globalOffset));let s=0;return this._hitPlane&&(s=i.intersectsPlane(this._hitPlane)??0),i.origin.addInPlace(i.direction.scaleInPlace(s))}_zoomToMouse(e){const t=this.camera,i=1-t.inertia;if(t.lowerRadiusLimit){const l=t.lowerRadiusLimit??0;t.radius-(t.inertialRadiusOffset+e)/i<l&&(e=(t.radius-l)*i-t.inertialRadiusOffset)}if(t.upperRadiusLimit){const l=t.upperRadiusLimit??0;t.radius-(t.inertialRadiusOffset+e)/i>l&&(e=(t.radius-l)*i-t.inertialRadiusOffset)}const r=e/i/t.radius,n=this._getPosition(),o=ae.Vector3[6];n.subtractToRef(t.target,o),o.scaleInPlace(r),o.scaleInPlace(i),this._inertialPanning.addInPlace(o),t.inertialRadiusOffset+=e}_zeroIfClose(e){Math.abs(e.x)<Ii&&(e.x=0),Math.abs(e.y)<Ii&&(e.y=0),Math.abs(e.z)<Ii&&(e.z=0)}}F([G()],kP.prototype,"wheelPrecision",void 0),F([G()],kP.prototype,"zoomToMouseLocation",void 0),F([G()],kP.prototype,"wheelDeltaPercentage",void 0),yh.ArcRotateCameraMouseWheelInput=kP;class YW extends Iw{constructor(e){super(e)}addMouseWheel(){return this.add(new kP),this}addPointers(){return this.add(new lf),this}addKeyboard(){return this.add(new e_),this}}Rr.AddNodeConstructor("ArcRotateCamera",(a,e)=>()=>new yr(a,0,0,1,P.Zero(),e));function K1e(a){let e=Math.PI/2;return a.x===0&&a.z===0||(e=Math.acos(a.x/Math.sqrt(Math.pow(a.x,2)+Math.pow(a.z,2)))),a.z<0&&(e=2*Math.PI-e),e}function q1e(a,e){return Math.acos(a/e)}class yr extends Ja{get target(){return this._target}set target(e){this.setTarget(e)}get targetHost(){return this._targetHost}set targetHost(e){e&&this.setTarget(e)}getTarget(){return this.target}get position(){return this._position}set position(e){this.setPosition(e)}set upVector(e){this._upToYMatrix||(this._yToUpMatrix=new me,this._upToYMatrix=new me,this._upVector=P.Zero()),e.normalize(),this._upVector.copyFrom(e),this.setMatUp()}get upVector(){return this._upVector}setMatUp(){me.RotationAlignToRef(P.UpReadOnly,this._upVector,this._yToUpMatrix),me.RotationAlignToRef(this._upVector,P.UpReadOnly,this._upToYMatrix)}get angularSensibilityX(){const e=this.inputs.attached.pointers;return e?e.angularSensibilityX:0}set angularSensibilityX(e){const t=this.inputs.attached.pointers;t&&(t.angularSensibilityX=e)}get angularSensibilityY(){const e=this.inputs.attached.pointers;return e?e.angularSensibilityY:0}set angularSensibilityY(e){const t=this.inputs.attached.pointers;t&&(t.angularSensibilityY=e)}get pinchPrecision(){const e=this.inputs.attached.pointers;return e?e.pinchPrecision:0}set pinchPrecision(e){const t=this.inputs.attached.pointers;t&&(t.pinchPrecision=e)}get pinchDeltaPercentage(){const e=this.inputs.attached.pointers;return e?e.pinchDeltaPercentage:0}set pinchDeltaPercentage(e){const t=this.inputs.attached.pointers;t&&(t.pinchDeltaPercentage=e)}get useNaturalPinchZoom(){const e=this.inputs.attached.pointers;return e?e.useNaturalPinchZoom:!1}set useNaturalPinchZoom(e){const t=this.inputs.attached.pointers;t&&(t.useNaturalPinchZoom=e)}get panningSensibility(){const e=this.inputs.attached.pointers;return e?e.panningSensibility:0}set panningSensibility(e){const t=this.inputs.attached.pointers;t&&(t.panningSensibility=e)}get keysUp(){const e=this.inputs.attached.keyboard;return e?e.keysUp:[]}set keysUp(e){const t=this.inputs.attached.keyboard;t&&(t.keysUp=e)}get keysDown(){const e=this.inputs.attached.keyboard;return e?e.keysDown:[]}set keysDown(e){const t=this.inputs.attached.keyboard;t&&(t.keysDown=e)}get keysLeft(){const e=this.inputs.attached.keyboard;return e?e.keysLeft:[]}set keysLeft(e){const t=this.inputs.attached.keyboard;t&&(t.keysLeft=e)}get keysRight(){const e=this.inputs.attached.keyboard;return e?e.keysRight:[]}set keysRight(e){const t=this.inputs.attached.keyboard;t&&(t.keysRight=e)}get wheelPrecision(){const e=this.inputs.attached.mousewheel;return e?e.wheelPrecision:0}set wheelPrecision(e){const t=this.inputs.attached.mousewheel;t&&(t.wheelPrecision=e)}get zoomToMouseLocation(){const e=this.inputs.attached.mousewheel;return e?e.zoomToMouseLocation:!1}set zoomToMouseLocation(e){const t=this.inputs.attached.mousewheel;t&&(t.zoomToMouseLocation=e)}get wheelDeltaPercentage(){const e=this.inputs.attached.mousewheel;return e?e.wheelDeltaPercentage:0}set wheelDeltaPercentage(e){const t=this.inputs.attached.mousewheel;t&&(t.wheelDeltaPercentage=e)}get bouncingBehavior(){return this._bouncingBehavior}get useBouncingBehavior(){return this._bouncingBehavior!=null}set useBouncingBehavior(e){e!==this.useBouncingBehavior&&(e?(this._bouncingBehavior=new HT,this.addBehavior(this._bouncingBehavior)):this._bouncingBehavior&&(this.removeBehavior(this._bouncingBehavior),this._bouncingBehavior=null))}get framingBehavior(){return this._framingBehavior}get useFramingBehavior(){return this._framingBehavior!=null}set useFramingBehavior(e){e!==this.useFramingBehavior&&(e?(this._framingBehavior=new of,this.addBehavior(this._framingBehavior)):this._framingBehavior&&(this.removeBehavior(this._framingBehavior),this._framingBehavior=null))}get autoRotationBehavior(){return this._autoRotationBehavior}get useAutoRotationBehavior(){return this._autoRotationBehavior!=null}set useAutoRotationBehavior(e){e!==this.useAutoRotationBehavior&&(e?(this._autoRotationBehavior=new X1e,this.addBehavior(this._autoRotationBehavior)):this._autoRotationBehavior&&(this.removeBehavior(this._autoRotationBehavior),this._autoRotationBehavior=null))}constructor(e,t,i,s,r,n,o=!0){super(e,P.Zero(),n,o),this.inertialAlphaOffset=0,this.inertialBetaOffset=0,this.inertialRadiusOffset=0,this.lowerAlphaLimit=null,this.upperAlphaLimit=null,this.lowerBetaLimit=.01,this.upperBetaLimit=Math.PI-.01,this.lowerRadiusLimit=null,this.upperRadiusLimit=null,this.lowerTargetYLimit=-1/0,this.inertialPanningX=0,this.inertialPanningY=0,this.pinchToPanMaxDistance=20,this.panningDistanceLimit=null,this.panningOriginTarget=P.Zero(),this.panningInertia=.9,this.zoomOnFactor=1,this.targetScreenOffset=Ue.Zero(),this.allowUpsideDown=!0,this.useInputToRestoreState=!0,this.restoreStateInterpolationFactor=0,this._currentInterpolationFactor=0,this._viewMatrix=new me,this.panningAxis=new P(1,1,0),this._transformedDirection=new P,this.mapPanning=!1,this._progressiveRestore=!1,this.onMeshTargetChangedObservable=new xe,this.checkCollisions=!1,this.collisionRadius=new P(.5,.5,.5),this._previousPosition=P.Zero(),this._collisionVelocity=P.Zero(),this._newPosition=P.Zero(),this._computationVector=P.Zero(),this._onCollisionPositionChange=(l,c,u=null)=>{u?(this.setPosition(c),this.onCollide&&this.onCollide(u)):this._previousPosition.copyFrom(this._position);const f=Math.cos(this.alpha),p=Math.sin(this.alpha),m=Math.cos(this.beta);let _=Math.sin(this.beta);_===0&&(_=1e-4);const d=this._getTargetPosition();this._computationVector.copyFromFloats(this.radius*f*_,this.radius*m,this.radius*p*_),d.addToRef(this._computationVector,this._newPosition),this._position.copyFrom(this._newPosition);let h=this.upVector;this.allowUpsideDown&&this.beta<0&&(h=h.clone(),h=h.negate()),this._computeViewMatrix(this._position,d,h),this._viewMatrix.addAtIndex(12,this.targetScreenOffset.x),this._viewMatrix.addAtIndex(13,this.targetScreenOffset.y),this._collisionTriggered=!1},this._target=P.Zero(),r&&this.setTarget(r),this.alpha=t,this.beta=i,this.radius=s,this.getViewMatrix(),this.inputs=new YW(this),this.inputs.addKeyboard().addMouseWheel().addPointers()}_initCache(){super._initCache(),this._cache._target=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cache.alpha=void 0,this._cache.beta=void 0,this._cache.radius=void 0,this._cache.targetScreenOffset=Ue.Zero()}_updateCache(e){e||super._updateCache(),this._cache._target.copyFrom(this._getTargetPosition()),this._cache.alpha=this.alpha,this._cache.beta=this.beta,this._cache.radius=this.radius,this._cache.targetScreenOffset.copyFrom(this.targetScreenOffset)}_getTargetPosition(){if(this._targetHost&&this._targetHost.getAbsolutePosition){const t=this._targetHost.getAbsolutePosition();this._targetBoundingCenter?t.addToRef(this._targetBoundingCenter,this._target):this._target.copyFrom(t)}const e=this._getLockedTargetPosition();return e||this._target}storeState(){return this._storedAlpha=this._goalAlpha=this.alpha,this._storedBeta=this._goalBeta=this.beta,this._storedRadius=this._goalRadius=this.radius,this._storedTarget=this._goalTarget=this._getTargetPosition().clone(),this._storedTargetScreenOffset=this._goalTargetScreenOffset=this.targetScreenOffset.clone(),super.storeState()}_restoreStateValues(){return this.hasStateStored()&&this.restoreStateInterpolationFactor>Ii&&this.restoreStateInterpolationFactor<1?(this.interpolateTo(this._storedAlpha,this._storedBeta,this._storedRadius,this._storedTarget,this._storedTargetScreenOffset,this.restoreStateInterpolationFactor),!0):super._restoreStateValues()?(this.setTarget(this._storedTarget.clone()),this.alpha=this._storedAlpha,this.beta=this._storedBeta,this.radius=this._storedRadius,this.targetScreenOffset=this._storedTargetScreenOffset.clone(),this.inertialAlphaOffset=0,this.inertialBetaOffset=0,this.inertialRadiusOffset=0,this.inertialPanningX=0,this.inertialPanningY=0,!0):!1}interpolateTo(e=this.alpha,t=this.beta,i=this.radius,s=this.target,r=this.targetScreenOffset,n){this._progressiveRestore=!0,this.inertialAlphaOffset=0,this.inertialBetaOffset=0,this.inertialRadiusOffset=0,this.inertialPanningX=0,this.inertialPanningY=0,n!=null?this._currentInterpolationFactor=n:this.restoreStateInterpolationFactor!==0?this._currentInterpolationFactor=this.restoreStateInterpolationFactor:this._currentInterpolationFactor=.1,e=Os(e,this.lowerAlphaLimit??-1/0,this.upperAlphaLimit??1/0),t=Os(t,this.lowerBetaLimit??-1/0,this.upperBetaLimit??1/0),i=Os(i,this.lowerRadiusLimit??-1/0,this.upperRadiusLimit??1/0),s.y=Os(s.y,this.lowerTargetYLimit??-1/0,1/0),this._goalAlpha=e,this._goalBeta=t,this._goalRadius=i,this._goalTarget=s,this._goalTargetScreenOffset=r}_isSynchronizedViewMatrix(){return super._isSynchronizedViewMatrix()?this._cache._target.equals(this._getTargetPosition())&&this._cache.alpha===this.alpha&&this._cache.beta===this.beta&&this._cache.radius===this.radius&&this._cache.targetScreenOffset.equals(this.targetScreenOffset):!1}attachControl(e,t,i=!0,s=2){const r=arguments;t=Le.BackCompatCameraNoPreventDefault(r),this._useCtrlForPanning=i,this._panningMouseButton=s,typeof r[0]=="boolean"&&(r.length>1&&(this._useCtrlForPanning=r[1]),r.length>2&&(this._panningMouseButton=r[2])),this.inputs.attachElement(t),this._reset=()=>{this.inertialAlphaOffset=0,this.inertialBetaOffset=0,this.inertialRadiusOffset=0,this.inertialPanningX=0,this.inertialPanningY=0}}detachControl(){this.inputs.detachElement(),this._reset&&this._reset()}_checkInputs(){if(!this._collisionTriggered){if(this.inputs.checkInputs(),this._progressiveRestore){const e=this._scene.getEngine().getDeltaTime()/1e3,t=1-Math.pow(2,-e/this._currentInterpolationFactor);this.setTarget(P.Lerp(this.getTarget(),this._goalTarget,t)),Re.RotationAlphaBetaGammaToRef(this._goalAlpha,this._goalBeta,0,ae.Quaternion[0]),Re.RotationAlphaBetaGammaToRef(this.alpha,this.beta,0,ae.Quaternion[1]),Re.SlerpToRef(ae.Quaternion[1],ae.Quaternion[0],t,ae.Quaternion[2]),ae.Quaternion[2].normalize(),ae.Quaternion[2].toAlphaBetaGammaToRef(ae.Vector3[0]),this.alpha=ae.Vector3[0].x,this.beta=ae.Vector3[0].y,this.radius+=(this._goalRadius-this.radius)*t,Ue.LerpToRef(this.targetScreenOffset,this._goalTargetScreenOffset,t,this.targetScreenOffset),(P.DistanceSquared(this.getTarget(),this._goalTarget)<Ii&&ae.Quaternion[2].isApprox(ae.Quaternion[0])&&Math.pow(this._goalRadius-this.radius,2)<Ii&&Ue.Distance(this.targetScreenOffset,this._goalTargetScreenOffset)<Ii||this.inertialAlphaOffset!==0||this.inertialBetaOffset!==0||this.inertialRadiusOffset!==0||this.inertialPanningX!==0||this.inertialPanningY!==0)&&(this._progressiveRestore=!1)}if(this.inertialAlphaOffset!==0||this.inertialBetaOffset!==0||this.inertialRadiusOffset!==0){const e=this.invertRotation?-1:1,t=this._calculateHandednessMultiplier();let i=this.inertialAlphaOffset*t;this.beta<0&&(i*=-1),this.alpha+=i*e,this.beta+=this.inertialBetaOffset*e,this.radius-=this.inertialRadiusOffset,this.inertialAlphaOffset*=this.inertia,this.inertialBetaOffset*=this.inertia,this.inertialRadiusOffset*=this.inertia,Math.abs(this.inertialAlphaOffset)<Ii&&(this.inertialAlphaOffset=0),Math.abs(this.inertialBetaOffset)<Ii&&(this.inertialBetaOffset=0),Math.abs(this.inertialRadiusOffset)<this.speed*Ii&&(this.inertialRadiusOffset=0)}if(this.inertialPanningX!==0||this.inertialPanningY!==0){const e=new P(this.inertialPanningX,this.inertialPanningY,this.inertialPanningY);if(this._viewMatrix.invertToRef(this._cameraTransformMatrix),e.multiplyInPlace(this.panningAxis),P.TransformNormalToRef(e,this._cameraTransformMatrix,this._transformedDirection),this.mapPanning){const t=this.upVector,i=P.CrossToRef(this._transformedDirection,t,this._transformedDirection);P.CrossToRef(t,i,this._transformedDirection)}else this.panningAxis.y||(this._transformedDirection.y=0);if(!this._targetHost)if(this.panningDistanceLimit)this._transformedDirection.addInPlace(this._target),P.DistanceSquared(this._transformedDirection,this.panningOriginTarget)<=this.panningDistanceLimit*this.panningDistanceLimit&&this._target.copyFrom(this._transformedDirection);else{if(this.parent){const t=ae.Matrix[0];this.parent.getWorldMatrix().getRotationMatrixToRef(t),t.transposeToRef(t),P.TransformCoordinatesToRef(this._transformedDirection,t,this._transformedDirection)}this._target.addInPlace(this._transformedDirection)}this.inertialPanningX*=this.panningInertia,this.inertialPanningY*=this.panningInertia,Math.abs(this.inertialPanningX)<this.speed*Ii&&(this.inertialPanningX=0),Math.abs(this.inertialPanningY)<this.speed*Ii&&(this.inertialPanningY=0)}this._checkLimits(),super._checkInputs()}}_checkLimits(){this.lowerBetaLimit===null||this.lowerBetaLimit===void 0?this.allowUpsideDown&&this.beta>Math.PI&&(this.beta=this.beta-2*Math.PI):this.beta<this.lowerBetaLimit&&(this.beta=this.lowerBetaLimit),this.upperBetaLimit===null||this.upperBetaLimit===void 0?this.allowUpsideDown&&this.beta<-Math.PI&&(this.beta=this.beta+2*Math.PI):this.beta>this.upperBetaLimit&&(this.beta=this.upperBetaLimit),this.lowerAlphaLimit!==null&&this.alpha<this.lowerAlphaLimit&&(this.alpha=this.lowerAlphaLimit),this.upperAlphaLimit!==null&&this.alpha>this.upperAlphaLimit&&(this.alpha=this.upperAlphaLimit),this.lowerRadiusLimit!==null&&this.radius<this.lowerRadiusLimit&&(this.radius=this.lowerRadiusLimit,this.inertialRadiusOffset=0),this.upperRadiusLimit!==null&&this.radius>this.upperRadiusLimit&&(this.radius=this.upperRadiusLimit,this.inertialRadiusOffset=0),this.target.y=Math.max(this.target.y,this.lowerTargetYLimit)}rebuildAnglesAndRadius(){this._position.subtractToRef(this._getTargetPosition(),this._computationVector),(this._upVector.x!==0||this._upVector.y!==1||this._upVector.z!==0)&&P.TransformCoordinatesToRef(this._computationVector,this._upToYMatrix,this._computationVector),this.radius=this._computationVector.length(),this.radius===0&&(this.radius=1e-4);const e=this.alpha;this.alpha=K1e(this._computationVector),this.beta=q1e(this._computationVector.y,this.radius);const t=Math.round((e-this.alpha)/(2*Math.PI));this.alpha+=t*2*Math.PI,this._checkLimits()}setPosition(e){this._position.equals(e)||(this._position.copyFrom(e),this.rebuildAnglesAndRadius())}setTarget(e,t=!1,i=!1,s=!1){if(s=this.overrideCloneAlphaBetaRadius??s,e.computeWorldMatrix)t&&e.getBoundingInfo?this._targetBoundingCenter=e.getBoundingInfo().boundingBox.centerWorld.clone():this._targetBoundingCenter=null,e.computeWorldMatrix(),this._targetHost=e,this._target=this._getTargetPosition(),this.onMeshTargetChangedObservable.notifyObservers(this._targetHost);else{const r=e,n=this._getTargetPosition();if(n&&!i&&n.equals(r))return;this._targetHost=null,this._target=r,this._targetBoundingCenter=null,this.onMeshTargetChangedObservable.notifyObservers(null)}s||this.rebuildAnglesAndRadius()}_getViewMatrix(){const e=Math.cos(this.alpha),t=Math.sin(this.alpha),i=Math.cos(this.beta);let s=Math.sin(this.beta);s===0&&(s=1e-4),this.radius===0&&(this.radius=1e-4);const r=this._getTargetPosition();if(this._computationVector.copyFromFloats(this.radius*e*s,this.radius*i,this.radius*t*s),(this._upVector.x!==0||this._upVector.y!==1||this._upVector.z!==0)&&P.TransformCoordinatesToRef(this._computationVector,this._yToUpMatrix,this._computationVector),r.addToRef(this._computationVector,this._newPosition),this.getScene().collisionsEnabled&&this.checkCollisions){const n=this.getScene().collisionCoordinator;this._collider||(this._collider=n.createCollider()),this._collider._radius=this.collisionRadius,this._newPosition.subtractToRef(this._position,this._collisionVelocity),this._collisionTriggered=!0,n.getNewPosition(this._position,this._collisionVelocity,this._collider,3,null,this._onCollisionPositionChange,this.uniqueId)}else{this._position.copyFrom(this._newPosition);let n=this.upVector;this.allowUpsideDown&&s<0&&(n=n.negate()),this._computeViewMatrix(this._position,r,n),this._viewMatrix.addAtIndex(12,this.targetScreenOffset.x),this._viewMatrix.addAtIndex(13,this.targetScreenOffset.y)}return this._currentTarget=r,this._viewMatrix}zoomOn(e,t=!1){e=e||this.getScene().meshes;const i=Ne.MinMax(e);let s=this._calculateLowerRadiusFromModelBoundingSphere(i.min,i.max);s=Math.max(Math.min(s,this.upperRadiusLimit||Number.MAX_VALUE),this.lowerRadiusLimit||0),this.radius=s*this.zoomOnFactor,this.focusOn({min:i.min,max:i.max,distance:s},t)}focusOn(e,t=!1){let i,s;if(e.min===void 0){const r=e||this.getScene().meshes;i=Ne.MinMax(r),s=P.Distance(i.min,i.max)}else{const r=e;i=r,s=r.distance}this._target=Ne.Center(i),t||(this.maxZ=s*2)}createRigCamera(e,t){let i=0;switch(this.cameraRigMode){case _i.RIG_MODE_STEREOSCOPIC_ANAGLYPH:case _i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:case _i.RIG_MODE_STEREOSCOPIC_OVERUNDER:case _i.RIG_MODE_STEREOSCOPIC_INTERLACED:case _i.RIG_MODE_VR:i=this._cameraRigParams.stereoHalfAngle*(t===0?1:-1);break;case _i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:i=this._cameraRigParams.stereoHalfAngle*(t===0?-1:1);break}const s=new yr(e,this.alpha+i,this.beta,this.radius,this._target,this.getScene());return s._cameraRigParams={},s.isRigCamera=!0,s.rigParent=this,s.upVector=this.upVector,s.mode=this.mode,s.orthoLeft=this.orthoLeft,s.orthoRight=this.orthoRight,s.orthoBottom=this.orthoBottom,s.orthoTop=this.orthoTop,s}_updateRigCameras(){const e=this._rigCameras[0],t=this._rigCameras[1];switch(e.beta=t.beta=this.beta,this.cameraRigMode){case _i.RIG_MODE_STEREOSCOPIC_ANAGLYPH:case _i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:case _i.RIG_MODE_STEREOSCOPIC_OVERUNDER:case _i.RIG_MODE_STEREOSCOPIC_INTERLACED:case _i.RIG_MODE_VR:e.alpha=this.alpha-this._cameraRigParams.stereoHalfAngle,t.alpha=this.alpha+this._cameraRigParams.stereoHalfAngle;break;case _i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:e.alpha=this.alpha+this._cameraRigParams.stereoHalfAngle,t.alpha=this.alpha-this._cameraRigParams.stereoHalfAngle;break}super._updateRigCameras()}_calculateLowerRadiusFromModelBoundingSphere(e,t,i=1){const s=P.Distance(e,t),n=this.getScene().getEngine().getAspectRatio(this),o=Math.tan(this.fov/2),l=o*n,u=s*.5*i,f=u*Math.sqrt(1+1/(l*l)),p=u*Math.sqrt(1+1/(o*o));return Math.max(f,p)}dispose(){this.inputs.clear(),super.dispose()}getClassName(){return"ArcRotateCamera"}}F([G()],yr.prototype,"alpha",void 0),F([G()],yr.prototype,"beta",void 0),F([G()],yr.prototype,"radius",void 0),F([G()],yr.prototype,"overrideCloneAlphaBetaRadius",void 0),F([Ma("target")],yr.prototype,"_target",void 0),F([uP("targetHost")],yr.prototype,"_targetHost",void 0),F([G()],yr.prototype,"inertialAlphaOffset",void 0),F([G()],yr.prototype,"inertialBetaOffset",void 0),F([G()],yr.prototype,"inertialRadiusOffset",void 0),F([G()],yr.prototype,"lowerAlphaLimit",void 0),F([G()],yr.prototype,"upperAlphaLimit",void 0),F([G()],yr.prototype,"lowerBetaLimit",void 0),F([G()],yr.prototype,"upperBetaLimit",void 0),F([G()],yr.prototype,"lowerRadiusLimit",void 0),F([G()],yr.prototype,"upperRadiusLimit",void 0),F([G()],yr.prototype,"lowerTargetYLimit",void 0),F([G()],yr.prototype,"inertialPanningX",void 0),F([G()],yr.prototype,"inertialPanningY",void 0),F([G()],yr.prototype,"pinchToPanMaxDistance",void 0),F([G()],yr.prototype,"panningDistanceLimit",void 0),F([Ma()],yr.prototype,"panningOriginTarget",void 0),F([G()],yr.prototype,"panningInertia",void 0),F([G()],yr.prototype,"zoomToMouseLocation",null),F([G()],yr.prototype,"zoomOnFactor",void 0),F([vw()],yr.prototype,"targetScreenOffset",void 0),F([G()],yr.prototype,"allowUpsideDown",void 0),F([G()],yr.prototype,"useInputToRestoreState",void 0),F([G()],yr.prototype,"restoreStateInterpolationFactor",void 0),ve("BABYLON.ArcRotateCamera",yr);class M4{}M4.COPY=1,M4.CUT=2,M4.PASTE=3;class XW{constructor(e,t){this.type=e,this.event=t}static GetTypeFromCharacter(e){switch(e){case 67:return M4.COPY;case 86:return M4.PASTE;case 88:return M4.CUT;default:return-1}}}const UP=[];function GDe(a,e=j1){let t;const i=new Set;function s(o){if(xue(a,o)&&(a=o,t)){const l=!UP.length;for(const c of i)c[1](),UP.push(c,a);if(l){for(let c=0;c<UP.length;c+=2)UP[c][0](UP[c+1]);UP.length=0}}}function r(o){s(o(a))}function n(o,l=j1){const c=[o,l];return i.add(c),i.size===1&&(t=e(s,r)||j1),o(a),()=>{i.delete(c),i.size===0&&t&&(t(),t=null)}}return{set:s,update:r,subscribe:n}}const WDe=GDe(!1);class HDe extends yr{constructor(t,i,s=!0){super("adomCamera",0,0,2500,new P(0,0,140),t);mr(this,"isPointerDownWithShiftAlt",!1);mr(this,"lastCamTarget",null);mr(this,"lastCamTargetMove");mr(this,"sphere");mr(this,"sphereHighlightLayer");mr(this,"isRotating",!1);mr(this,"sphereVisibilityThreshold",500);mr(this,"useClickToSetRotationPoint",!1);mr(this,"clickStartTime",0);mr(this,"clickDelayTimeout",null);mr(this,"clickDelayDuration",500);mr(this,"isSpacebarPressed",!1);mr(this,"orbitAnimationFrameId",null);mr(this,"orbitSpeed",.005);mr(this,"moveSpeed",2);mr(this,"keysPressed",{w:!1,s:!1,a:!1,d:!1,q:!1,e:!1});mr(this,"precisionMode",!1);mr(this,"baseOrbitSpeed",.005);mr(this,"baseMoveSpeed",2);mr(this,"targetBounds",{minX:null,maxX:null,minY:null,maxY:null,minZ:null,maxZ:null});mr(this,"enforceBounds",!1);mr(this,"lastAlpha",0);mr(this,"lastBeta",0);mr(this,"lastRadius",0);mr(this,"isMiddleMouseRotating",!1);mr(this,"rotationDetectionTimeout",null);mr(this,"isMiddleMouseDown",!1);mr(this,"pinchZoomMultiplier",1);mr(this,"canvas",null);mr(this,"wheelHandler",null);mr(this,"externalEventListeners",new Map);mr(this,"wasOrthoMode",!1);this.upVector=s?new P(0,0,1):new P(0,1,0),this.canvas=i,this.attachControl(i,!0),this.parent=null,this.setupCameraDefaults(),this.setupKeyboardEvents(),this.setupSphereAndHighlight(),this.setupPointerEvents(),this.setupPinchZoom(),this.initializeRotationDetection(),this.setupExternalEventListeners()}getCamera(){return this}getCameraCoords(){var i;let t=`Camera.moveCamTo(
        0, 0, 0, // Position values are ignored - will be calculated from other parameters
        ${this.target.x}, ${this.target.y}, ${this.target.z}, // target - what the camera looks at
        ${this.radius}, ${this.alpha}, ${this.beta}, // radius, alpha, beta - determine camera position
        60, // Optional: fps (defaults to 60)
        60); // Optional: totalframes (defaults to 60)`;return(i=navigator.clipboard)==null||i.writeText(t),t}setupCameraDefaults(){this.allowUpsideDown=!0,this.panningSensibility=5,this.panningInertia=.1,this.invertRotation=!1,this.panningAxis=new P(1,1,0),this.inertia=.1,this.angularSensibilityX=500,this.angularSensibilityY=500,this.lowerAlphaLimit=-100,this.lowerBetaLimit=-100,this.lowerRadiusLimit=-100,this.upperRadiusLimit=2700,this.wheelDeltaPercentage=.1,this.minZ=this.radius/1e3,this.alpha=Math.PI/2,this.beta=Math.PI/4,this.zoomToMouseLocation=!0,(typeof window<"u"?localStorage.getItem("adom_camera_mode"):null)==="orthographic"?(this.mode=yr.ORTHOGRAPHIC_CAMERA,this.wasOrthoMode=!0):this.mode=yr.PERSPECTIVE_CAMERA,this.updateOrthographicBounds(),this._scene.onBeforeRenderObservable.add(()=>{this.enforceBounds&&this.checkAndEnforceBounds(),this.processKeyboardInput(),this.detectAndShowRotationSphere(),this.updateClippingPlanes()})}updateOrthographicBounds(){const t=this.radius/2,i=this._scene.getEngine().getRenderWidth()/this._scene.getEngine().getRenderHeight();this.orthoLeft=-t*i,this.orthoRight=t*i,this.orthoTop=t,this.orthoBottom=-t}updateClippingPlanes(){this.mode===yr.ORTHOGRAPHIC_CAMERA?(this.updateOrthographicBounds(),this.minZ=-this.radius*20,this.maxZ=2e4,this.wasOrthoMode=!0):(this.wasOrthoMode&&(this.wasOrthoMode=!1),this.minZ=this.radius/1e3)}setupKeyboardEvents(){this._scene.onKeyboardObservable.add(t=>{switch(t.type){case x4.KEYDOWN:this.handleKeyDown(t.event);break;case x4.KEYUP:this.handleKeyUp(t.event);break}})}handleKeyDown(t){const i=t.key.toLowerCase(),s=t.code;if(s==="CapsLock"){this.precisionMode=!this.precisionMode,this.updateSpeeds();return}if(!tPe(WDe)){if(i===" "||s==="Space"){this.isSpacebarPressed||(this.isSpacebarPressed=!0,this.startOrbiting());return}i in this.keysPressed&&(this.keysPressed[i]=!0)}}handleKeyUp(t){const i=t.key.toLowerCase(),s=t.code;if(i===" "||s==="Space"){this.isSpacebarPressed=!1,this.stopOrbiting();return}i in this.keysPressed&&(this.keysPressed[i]=!1)}updateSpeeds(){this.precisionMode?(this.orbitSpeed=this.baseOrbitSpeed/4,this.moveSpeed=this.baseMoveSpeed/4):(this.orbitSpeed=this.baseOrbitSpeed,this.moveSpeed=this.baseMoveSpeed)}startOrbiting(){if(this.showRotationSphere(),this.orbitAnimationFrameId===null){const t=()=>{this.isSpacebarPressed&&(this.alpha+=this.orbitSpeed,this.updateRotationSphere(),this.orbitAnimationFrameId=requestAnimationFrame(t))};this.orbitAnimationFrameId=requestAnimationFrame(t)}}stopOrbiting(){this.orbitAnimationFrameId!==null&&(cancelAnimationFrame(this.orbitAnimationFrameId),this.orbitAnimationFrameId=null),this.sphere&&(this.sphere.isVisible=!1)}setOrbitSpeed(t){this.baseOrbitSpeed=t,this.orbitSpeed=this.precisionMode?t/4:t}getOrbitSpeed(){return this.orbitSpeed}initializeRotationDetection(){this.lastAlpha=this.alpha,this.lastBeta=this.beta,this.lastRadius=this.radius,this.isMiddleMouseRotating=!1,this.isMiddleMouseDown=!1,this.sphere&&(this.sphere.isVisible=!1)}setupExternalEventListeners(){const t=i=>{var n;const r=(n=i.detail)==null?void 0:n.orientation;if(r)switch(r){case"top":this.rotateToCubeTop();break;case"top_front_right":this.rotateToCubeTopFrontRight();break;case"top_front_left":this.rotateToCubeTopFrontLeft();break;case"top_back_right":this.rotateToCubeTopBackRight();break;case"top_back_left":this.rotateToCubeTopBackLeft();break}};this.externalEventListeners.set("camera:change_view",t),typeof window<"u"&&window.addEventListener("camera:change_view",t)}resetMiddleMouseState(){if(this.isMiddleMouseRotating=!1,this.lastCamTargetMove){const t=this.lastCamTargetMove;(t.animationEnded||!t.animationStarted||!t.runtimeAnimations||t.runtimeAnimations.length===0||t.runtimeAnimations.every(s=>!s.animation||s.animation._stopped))&&(this.lastCamTargetMove=null)}this.lastAlpha=this.alpha,this.lastBeta=this.beta,this.lastRadius=this.radius}detectAndShowRotationSphere(){const t=this.alpha,i=this.beta,s=this.radius,r=Math.abs(t-this.lastAlpha)>.001,n=Math.abs(i-this.lastBeta)>.001,o=Math.abs(s-this.lastRadius)>.1,l=r||n||o;let c=!1;if(this.lastCamTargetMove){const f=this.lastCamTargetMove;c=f.animationStarted&&!f.animationEnded&&f.runtimeAnimations&&f.runtimeAnimations.length>0&&f.runtimeAnimations.some(p=>p.animation&&!p.animation._stopped)}const u=!this.isSpacebarPressed&&!this.isPointerDownWithShiftAlt&&!this.isRotating&&!c;if(this.isMiddleMouseDown&&!this.isMiddleMouseRotating&&u?l&&(this.isMiddleMouseRotating=!0,this.showRotationSphere()):this.isMiddleMouseDown&&this.isMiddleMouseRotating,this.lastCamTargetMove){const f=this.lastCamTargetMove;(f.animationEnded||!f.animationStarted||!f.runtimeAnimations||f.runtimeAnimations.length===0||f.runtimeAnimations.every(m=>!m.animation||m.animation._stopped))&&(this.lastCamTargetMove=null)}this.isMiddleMouseRotating&&(this.isMiddleMouseDown?(this.updateRotationSphere(),this.rotationDetectionTimeout&&(clearTimeout(this.rotationDetectionTimeout),this.rotationDetectionTimeout=null)):(this.isMiddleMouseRotating=!1,this.sphere&&(this.sphere.isVisible=!1))),this.lastAlpha=t,this.lastBeta=i,this.lastRadius=s}setupSphereAndHighlight(){this.sphere=l3.CreateSphere("arcRotateIndicatorSphere",{segments:10,diameter:1},this._scene),this.sphere.isVisible=!1;const t=new Bt("rotationSphereMaterial",this._scene);t.emissiveColor=new Pe(0,.38,.94),this.sphere.material=t}setupPointerEvents(){this._scene.onPointerObservable.add(t=>{switch(t.type){case Xt.POINTERDOWN:if(t.event.button===1&&(this.isMiddleMouseDown=!0),t.event.shiftKey&&t.event.altKey){this.isPointerDownWithShiftAlt=!0;const i=t.pickInfo;if(i!=null&&i.hit){const s=i.pickedPoint;s&&this.handleShiftAltClick(s)}}else t.event.button===0&&(this.useClickToSetRotationPoint?(this.clickStartTime=performance.now(),this.clickDelayTimeout&&(clearTimeout(this.clickDelayTimeout),this.clickDelayTimeout=null),this.clickDelayTimeout=setTimeout(()=>{if(this.isRotating){const i=t.pickInfo;if(i!=null&&i.hit){const s=i.pickedPoint;s&&this.handleClick(s)}}this.clickDelayTimeout=null},this.clickDelayDuration),this.isRotating=!0,this.showRotationSphere()):(this.isRotating=!0,this.showRotationSphere()));break;case Xt.POINTERMOVE:this.isRotating&&!this.isPointerDownWithShiftAlt&&(!this.useClickToSetRotationPoint||this.clickDelayTimeout===null)&&this.updateRotationSphere();break;case Xt.POINTERUP:t.event.button===1&&(this.isMiddleMouseDown=!1),this.isPointerDownWithShiftAlt&&(this.isPointerDownWithShiftAlt=!1,this._resetCameraTarget(),this.resetMiddleMouseState()),this.isRotating&&t.event.button===0&&(this.isRotating=!1,this.clickDelayTimeout&&(clearTimeout(this.clickDelayTimeout),this.clickDelayTimeout=null),this.sphere&&!this.isSpacebarPressed&&!this.isMiddleMouseRotating&&(this.sphere.isVisible=!1),this.resetMiddleMouseState());break}})}setupPinchZoom(){this.canvas&&(this.wheelHandler=t=>{if(t.ctrlKey){t.preventDefault();const s=1+-t.deltaY*this.pinchZoomMultiplier*.01;let r=this.radius/s;if(this.lowerRadiusLimit!==null&&r<this.lowerRadiusLimit?r=this.lowerRadiusLimit:this.upperRadiusLimit!==null&&r>this.upperRadiusLimit&&(r=this.upperRadiusLimit),this.zoomToMouseLocation&&this._scene){const n=this.radius-r,o=this.canvas.getBoundingClientRect(),l=t.clientX-o.left,c=t.clientY-o.top,u=this._scene.createPickingRay(l,c,null,this,!1);let f;if(this.mode===yr.ORTHOGRAPHIC_CAMERA){const _=u.direction,d=P.Dot(this.target.subtract(u.origin),_);f=u.origin.add(_.scale(d))}else{const _=P.Distance(this.position,this.target);f=u.origin.add(u.direction.scale(_))}const p=n/this.radius,m=f.subtract(this.target).scale(p);this.target.addInPlace(m)}this.radius=r}},this.canvas.addEventListener("wheel",this.wheelHandler,{passive:!1}))}setPinchZoomMultiplier(t){this.pinchZoomMultiplier=Math.max(.5,Math.min(20,t))}getPinchZoomMultiplier(){return this.pinchZoomMultiplier}showRotationSphere(){if(!this.isPointerDownWithShiftAlt){this.sphere.position=this.target.clone(),this.sphere.isVisible=!0;const t=this.radius/100;this.sphere.scaling=new P(t,t,t)}}updateRotationSphere(){if(!this.isPointerDownWithShiftAlt&&this.sphere){this.sphere.position=this.target.clone();const t=this.radius/100;this.sphere.scaling=new P(t,t,t)}}handleShiftAltClick(t){const i=this.radius;this.lastCamTarget=this.target.clone(),this.sphere.position=t,this.sphere.isVisible=!0;const s=this.radius/100*2;this.sphere.scaling=new P(s,s,s),this.lastCamTargetMove=this.moveCamTargetTo(t._x,t._y,t._z,120,60),this.radius=i}handleClick(t){const i=this.radius;this.lastCamTarget=this.target.clone(),this.sphere.position=t,this.sphere.isVisible=!0;const s=this.radius/100;this.sphere.scaling=new P(s,s,s),this.lastCamTargetMove=this.moveCamTargetTo(t._x,t._y,t._z,120,60),this.radius=i}_resetCameraTarget(){!this.isMiddleMouseRotating&&!this.isSpacebarPressed&&(this.sphere.isVisible=!1),this.lastCamTargetMove&&(this.lastCamTargetMove.stop(),this.lastCamTargetMove=null)}moveCamTargetTo(t,i,s,r=60,n=60){const o=new He("target","target",r,He.ANIMATIONTYPE_VECTOR3,He.ANIMATIONLOOPMODE_CONSTANT);new ob().setEasingMode(Uo.EASINGMODE_EASEINOUT),o.setKeys([{frame:0,value:this.target},{frame:n,value:new P(t,i,s)}]),this.animations.push(o);const c=this._scene.beginAnimation(this,0,n,!1),u=n/r*1e3+100;return setTimeout(()=>{this.lastCamTargetMove===c&&(this.lastCamTargetMove=null)},u),c}teleportCamTo(t,i,s,r,n,o,l,c,u){this.target=new P(r,n,o),this.radius=l,this.alpha=c,this.beta=u,this.rebuildAnglesAndRadius()}async moveCamTo(t,i,s,r,n,o,l,c,u,f=60,p=60,m=new ob){m.setEasingMode(Uo.EASINGMODE_EASEINOUT);const _=new He("target","target",f,He.ANIMATIONTYPE_VECTOR3,He.ANIMATIONLOOPMODE_CONSTANT);_.setEasingFunction(m),_.setKeys([{frame:0,value:this.target},{frame:p,value:new P(r,n,o)}]),this.animations.push(_);const d=new He("radius","radius",f,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CONSTANT);d.setEasingFunction(m),d.setKeys([{frame:0,value:this.radius},{frame:p,value:l}]),this.animations.push(d);const h=new He("alpha","alpha",f,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CONSTANT);h.setEasingFunction(m),h.setKeys([{frame:0,value:this.alpha},{frame:p,value:c}]),this.animations.push(h);const x=new He("beta","beta",f,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CONSTANT);x.setEasingFunction(m),x.setKeys([{frame:0,value:this.beta},{frame:p,value:u}]),this.animations.push(x),Ar.scene&&await Ar.scene.beginAnimation(this,0,p,!1).waitAsync()}dispose(){this.orbitAnimationFrameId!==null&&(cancelAnimationFrame(this.orbitAnimationFrameId),this.orbitAnimationFrameId=null),this.clickDelayTimeout&&(clearTimeout(this.clickDelayTimeout),this.clickDelayTimeout=null),this.rotationDetectionTimeout&&(clearTimeout(this.rotationDetectionTimeout),this.rotationDetectionTimeout=null),Object.keys(this.keysPressed).forEach(t=>{this.keysPressed[t]=!1}),this.isMiddleMouseDown=!1,this.isMiddleMouseRotating=!1,typeof window<"u"&&(this.externalEventListeners.forEach((t,i)=>{window.removeEventListener(i,t)}),this.externalEventListeners.clear()),this.canvas&&this.wheelHandler&&(this.canvas.removeEventListener("wheel",this.wheelHandler),this.wheelHandler=null),this.canvas=null,this.sphere&&this.sphere.dispose(),this.sphereHighlightLayer&&this.sphereHighlightLayer.dispose(),super.dispose()}setTargetBounds(t=null,i=null,s=null,r=null,n=null,o=null){this.targetBounds={minX:t,maxX:i,minY:s,maxY:r,minZ:n,maxZ:o},this.enforceBounds=!0,this.checkAndEnforceBounds()}disableBounds(){this.enforceBounds=!1}checkAndEnforceBounds(){let t=this.target.clone();this.targetBounds.minX!==null&&t.x<this.targetBounds.minX&&(t.x=this.targetBounds.minX),this.targetBounds.maxX!==null&&t.x>this.targetBounds.maxX&&(t.x=this.targetBounds.maxX),this.targetBounds.minY!==null&&t.y<this.targetBounds.minY&&(t.y=this.targetBounds.minY),this.targetBounds.maxY!==null&&t.y>this.targetBounds.maxY&&(t.y=this.targetBounds.maxY),this.targetBounds.minZ!==null&&t.z<this.targetBounds.minZ&&(t.z=this.targetBounds.minZ),this.targetBounds.maxZ!==null&&t.z>this.targetBounds.maxZ&&(t.z=this.targetBounds.maxZ);{const i=this.sphere&&this.sphere.isVisible;i&&(this.sphere.isVisible=!1),this.setTarget(t),i&&(this.sphere.position=t.clone(),this.sphere.isVisible=!0)}}setClickToSetRotationPoint(t,i=500){this.useClickToSetRotationPoint=t,this.clickDelayDuration=i}getClickToSetRotationPoint(){return this.useClickToSetRotationPoint}processKeyboardInput(){if(!Object.values(this.keysPressed).some(l=>l))return;const t=this.getDirection(new P(0,0,-1)),i=this.getDirection(P.Right()),s=this.upVector,r=new P(t.x,t.y,0).normalize(),n=new P(i.x,i.y,0).normalize(),o=new P(0,0,0);if(this.keysPressed.w&&o.addInPlace(r),this.keysPressed.s&&o.addInPlace(r.scale(-1)),this.keysPressed.a&&o.addInPlace(n.scale(-1)),this.keysPressed.d&&o.addInPlace(n),this.keysPressed.q&&o.addInPlace(s.scale(-1)),this.keysPressed.e&&o.addInPlace(s),o.length()>0){o.normalize();const l=o.scale(this.moveSpeed);this.position.addInPlace(l),this.target.addInPlace(l),this.sphere&&this.sphere.isVisible&&(this.sphere.position=this.target.clone())}}setMoveSpeed(t){this.baseMoveSpeed=t,this.moveSpeed=this.precisionMode?t/4:t}getMoveSpeed(){return this.moveSpeed}rotateToCubeAngle(t,i,s=.5){const r=m=>m-Math.PI*2*Math.floor((m+Math.PI)/(2*Math.PI)),n=(m,_)=>{const d=r(m),x=r(_)-d;return x>Math.PI?x-Math.PI*2:x<-Math.PI?x+Math.PI*2:x},o=this.alpha+n(this.alpha,t),l=this.beta+n(this.beta,i);if(s<=0){this.alpha=o,this.beta=l;return}const c=60,u=c*s,f=new He("alphaAnimation","alpha",c,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CONSTANT);f.setKeys([{frame:0,value:this.alpha},{frame:u,value:o}]);const p=new He("betaAnimation","beta",c,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CONSTANT);p.setKeys([{frame:0,value:this.beta},{frame:u,value:l}]),this.animations=[f,p],this._scene.beginAnimation(this,0,u,!1)}rotateToCubeTop(t=.5){const i=this.alpha;this.rotateToCubeAngle(i,0,t)}rotateToCubeTopFrontRight(t=.5){const n=-Math.PI/2,o=Math.atan2(1.625,-1.625)+n,l=Math.acos(1.625/Math.sqrt(1.625*1.625+-1.625*-1.625+1.625*1.625));this.rotateToCubeAngle(o,l,t)}rotateToCubeTopFrontLeft(t=.5){const n=-Math.PI/2,o=Math.atan2(-1.625,-1.625)+n,l=Math.acos(1.625/Math.sqrt(-1.625*-1.625+-1.625*-1.625+1.625*1.625));this.rotateToCubeAngle(o,l,t)}rotateToCubeTopBackRight(t=.5){const n=-Math.PI/2,o=Math.atan2(1.625,1.625)+n,l=Math.acos(1.625/Math.sqrt(1.625*1.625+1.625*1.625+1.625*1.625));this.rotateToCubeAngle(o,l,t)}rotateToCubeTopBackLeft(t=.5){const n=-Math.PI/2,o=Math.atan2(-1.625,1.625)+n,l=Math.acos(1.625/Math.sqrt(-1.625*-1.625+1.625*1.625+1.625*1.625));this.rotateToCubeAngle(o,l,t)}toggleCameraMode(){return this.mode===yr.ORTHOGRAPHIC_CAMERA?this.mode=yr.PERSPECTIVE_CAMERA:(this.mode=yr.ORTHOGRAPHIC_CAMERA,this.updateOrthographicBounds()),this.mode}getCameraMode(){return this.mode}isOrthographic(){return this.mode===yr.ORTHOGRAPHIC_CAMERA}}class Un{constructor(e,t){this.triggerOptions=e,this.onBeforeExecuteObservable=new xe,e.parameter?(this.trigger=e.trigger,this._triggerParameter=e.parameter):e.trigger?this.trigger=e.trigger:this.trigger=e,this._nextActiveAction=this,this._condition=t}_prepare(){}getTriggerParameter(){return this._triggerParameter}setTriggerParameter(e){this._triggerParameter=e}_evaluateConditionForCurrentFrame(){const e=this._condition;if(!e)return!0;const t=this._actionManager.getScene().getRenderId();return e._evaluationId!==t&&(e._evaluationId=t,e._currentResult=e.isValid()),e._currentResult}_executeCurrent(e){this._evaluateConditionForCurrentFrame()&&(this.onBeforeExecuteObservable.notifyObservers(this),this._nextActiveAction.execute(e),this.skipToNextActiveAction())}execute(e){}skipToNextActiveAction(){this._nextActiveAction._child?(this._nextActiveAction._child._actionManager||(this._nextActiveAction._child._actionManager=this._actionManager),this._nextActiveAction=this._nextActiveAction._child):this._nextActiveAction=this}then(e){return this._child=e,e._actionManager=this._actionManager,e._prepare(),e}_getProperty(e){return this._actionManager._getProperty(e)}_getEffectiveTarget(e,t){return this._actionManager._getEffectiveTarget(e,t)}serialize(e){return null}_serialize(e,t){const i={type:1,children:[],name:e.name,properties:e.properties||[]};if(this._child&&this._child.serialize(i),this._condition){const s=this._condition.serialize();return s.children.push(i),t&&t.children.push(s),s}return t&&t.children.push(i),i}}Un._SerializeValueAsString=a=>typeof a=="number"?a.toString():typeof a=="boolean"?a?"true":"false":a instanceof Ue?a.x+", "+a.y:a instanceof P?a.x+", "+a.y+", "+a.z:a instanceof Pe?a.r+", "+a.g+", "+a.b:a instanceof St?a.r+", "+a.g+", "+a.b+", "+a.a:a,Un._GetTargetProperty=a=>({name:"target",targetType:a._isMesh?"MeshProperties":a._isLight?"LightProperties":a._isCamera?"CameraProperties":a._isMaterial?"MaterialProperties":"SceneProperties",value:a._isScene?"Scene":a.name}),ve("BABYLON.Action",Un);class jP{constructor(e){this._actionManager=e}isValid(){return!0}_getProperty(e){return this._actionManager._getProperty(e)}_getEffectiveTarget(e,t){return this._actionManager._getEffectiveTarget(e,t)}serialize(){}_serialize(e){return{type:2,children:[],name:e.name,properties:e.properties}}}class Rc extends jP{static get IsEqual(){return Rc._IsEqual}static get IsDifferent(){return Rc._IsDifferent}static get IsGreater(){return Rc._IsGreater}static get IsLesser(){return Rc._IsLesser}constructor(e,t,i,s,r=Rc.IsEqual){super(e),this.propertyPath=i,this.value=s,this.operator=r,this._target=t,this._effectiveTarget=this._getEffectiveTarget(t,this.propertyPath),this._property=this._getProperty(this.propertyPath)}isValid(){switch(this.operator){case Rc.IsGreater:return this._effectiveTarget[this._property]>this.value;case Rc.IsLesser:return this._effectiveTarget[this._property]<this.value;case Rc.IsEqual:case Rc.IsDifferent:{let e;return this.value.equals?e=this.value.equals(this._effectiveTarget[this._property]):e=this.value===this._effectiveTarget[this._property],this.operator===Rc.IsEqual?e:!e}}return!1}serialize(){return this._serialize({name:"ValueCondition",properties:[Un._GetTargetProperty(this._target),{name:"propertyPath",value:this.propertyPath},{name:"value",value:Un._SerializeValueAsString(this.value)},{name:"operator",value:Rc.GetOperatorName(this.operator)}]})}static GetOperatorName(e){switch(e){case Rc._IsEqual:return"IsEqual";case Rc._IsDifferent:return"IsDifferent";case Rc._IsGreater:return"IsGreater";case Rc._IsLesser:return"IsLesser";default:return""}}}Rc._IsEqual=0,Rc._IsDifferent=1,Rc._IsGreater=2,Rc._IsLesser=3;class Q1e extends jP{constructor(e,t){super(e),this.predicate=t}isValid(){return this.predicate()}}class J1e extends jP{constructor(e,t,i){super(e),this.value=i,this._target=t}isValid(){return this._target.state===this.value}serialize(){return this._serialize({name:"StateCondition",properties:[Un._GetTargetProperty(this._target),{name:"value",value:this.value}]})}}ve("BABYLON.ValueCondition",Rc),ve("BABYLON.PredicateCondition",Q1e),ve("BABYLON.StateCondition",J1e);class $1e extends Un{constructor(e,t,i,s){super(e,s),this.propertyPath=i,this._target=this._effectiveTarget=t}_prepare(){this._effectiveTarget=this._getEffectiveTarget(this._effectiveTarget,this.propertyPath),this._property=this._getProperty(this.propertyPath)}execute(){this._effectiveTarget[this._property]=!this._effectiveTarget[this._property]}serialize(e){return super._serialize({name:"SwitchBooleanAction",properties:[Un._GetTargetProperty(this._target),{name:"propertyPath",value:this.propertyPath}]},e)}}class e2e extends Un{constructor(e,t,i,s){super(e,s),this.value=i,this._target=t}execute(){this._target.state=this.value}serialize(e){return super._serialize({name:"SetStateAction",properties:[Un._GetTargetProperty(this._target),{name:"value",value:this.value}]},e)}}class t2e extends Un{constructor(e,t,i,s,r){super(e,r),this.propertyPath=i,this.value=s,this._target=this._effectiveTarget=t}_prepare(){this._effectiveTarget=this._getEffectiveTarget(this._effectiveTarget,this.propertyPath),this._property=this._getProperty(this.propertyPath)}execute(){this._effectiveTarget[this._property]=this.value,this._target.markAsDirty&&this._target.markAsDirty(this._property)}serialize(e){return super._serialize({name:"SetValueAction",properties:[Un._GetTargetProperty(this._target),{name:"propertyPath",value:this.propertyPath},{name:"value",value:Un._SerializeValueAsString(this.value)}]},e)}}class i2e extends Un{constructor(e,t,i,s,r){super(e,r),this.propertyPath=i,this.value=s,this._target=this._effectiveTarget=t}_prepare(){this._effectiveTarget=this._getEffectiveTarget(this._effectiveTarget,this.propertyPath),this._property=this._getProperty(this.propertyPath),typeof this._effectiveTarget[this._property]!="number"&&de.Warn("Warning: IncrementValueAction can only be used with number values")}execute(){this._effectiveTarget[this._property]+=this.value,this._target.markAsDirty&&this._target.markAsDirty(this._property)}serialize(e){return super._serialize({name:"IncrementValueAction",properties:[Un._GetTargetProperty(this._target),{name:"propertyPath",value:this.propertyPath},{name:"value",value:Un._SerializeValueAsString(this.value)}]},e)}}class s2e extends Un{constructor(e,t,i,s,r,n){super(e,n),this.from=i,this.to=s,this.loop=r,this._target=t}_prepare(){}execute(){this._actionManager.getScene().beginAnimation(this._target,this.from,this.to,this.loop)}serialize(e){return super._serialize({name:"PlayAnimationAction",properties:[Un._GetTargetProperty(this._target),{name:"from",value:String(this.from)},{name:"to",value:String(this.to)},{name:"loop",value:Un._SerializeValueAsString(this.loop)||!1}]},e)}}class r2e extends Un{constructor(e,t,i){super(e,i),this._target=t}_prepare(){}execute(){this._actionManager.getScene().stopAnimation(this._target)}serialize(e){return super._serialize({name:"StopAnimationAction",properties:[Un._GetTargetProperty(this._target)]},e)}}class lq extends Un{constructor(e=0,t){super(e,t)}execute(){}serialize(e){return super._serialize({name:"DoNothingAction",properties:[]},e)}}class n2e extends Un{constructor(e,t,i,s=!0){super(e,i),this.children=t,this.enableChildrenConditions=s}_prepare(){for(let e=0;e<this.children.length;e++)this.children[e]._actionManager=this._actionManager,this.children[e]._prepare()}execute(e){for(const t of this.children)(!this.enableChildrenConditions||t._evaluateConditionForCurrentFrame())&&t.execute(e)}serialize(e){const t=super._serialize({name:"CombineAction",properties:[],combine:[]},e);for(let i=0;i<this.children.length;i++)t.combine.push(this.children[i].serialize(null));return t}}class a2e extends Un{constructor(e,t,i){super(e,i),this.func=t}execute(e){this.func(e)}}class cq extends Un{constructor(e,t,i,s){super(e,s),this._target=t,this._parent=i}_prepare(){}execute(){if(this._target.parent===this._parent)return;const e=this._parent.getWorldMatrix().clone();e.invert(),this._target.position=P.TransformCoordinates(this._target.position,e),this._target.parent=this._parent}serialize(e){return super._serialize({name:"SetParentAction",properties:[Un._GetTargetProperty(this._target),Un._GetTargetProperty(this._parent)]},e)}}ve("BABYLON.SetParentAction",cq),ve("BABYLON.ExecuteCodeAction",a2e),ve("BABYLON.DoNothingAction",lq),ve("BABYLON.StopAnimationAction",r2e),ve("BABYLON.PlayAnimationAction",s2e),ve("BABYLON.IncrementValueAction",i2e),ve("BABYLON.SetValueAction",t2e),ve("BABYLON.SetStateAction",e2e),ve("BABYLON.SetParentAction",cq),ve("BABYLON.SwitchBooleanAction",$1e),ve("BABYLON.CombineAction",n2e);class Xr extends v0{constructor(e){super(),e=e||ei.LastCreatedScene,e&&(this._scene=e,e.actionManagers.push(this))}dispose(){const e=this._scene.actionManagers.indexOf(this);for(let i=0;i<this.actions.length;i++){const s=this.actions[i];Xr.Triggers[s.trigger]--,Xr.Triggers[s.trigger]===0&&delete Xr.Triggers[s.trigger]}this.actions.length=0,e>-1&&this._scene.actionManagers.splice(e,1);const t=this._scene.meshes.filter(i=>i.actionManager===this);for(const i of t)i.actionManager=null}getScene(){return this._scene}hasSpecificTriggers(e){for(let t=0;t<this.actions.length;t++){const i=this.actions[t];if(e.indexOf(i.trigger)>-1)return!0}return!1}hasSpecificTriggers2(e,t){for(let i=0;i<this.actions.length;i++){const s=this.actions[i];if(e==s.trigger||t==s.trigger)return!0}return!1}hasSpecificTrigger(e,t){for(let i=0;i<this.actions.length;i++){const s=this.actions[i];if(s.trigger===e)if(t){if(t(s.getTriggerParameter()))return!0}else return!0}return!1}get hasPointerTriggers(){for(let e=0;e<this.actions.length;e++){const t=this.actions[e];if(t.trigger>=Xr.OnPickTrigger&&t.trigger<=Xr.OnPointerOutTrigger)return!0}return!1}get hasPickTriggers(){for(let e=0;e<this.actions.length;e++){const t=this.actions[e];if(t.trigger>=Xr.OnPickTrigger&&t.trigger<=Xr.OnPickUpTrigger)return!0}return!1}registerAction(e){return e.trigger===Xr.OnEveryFrameTrigger&&this.getScene().actionManager!==this?(de.Warn("OnEveryFrameTrigger can only be used with scene.actionManager"),null):(this.actions.push(e),this.getScene()._registeredActions++,Xr.Triggers[e.trigger]?Xr.Triggers[e.trigger]++:Xr.Triggers[e.trigger]=1,e._actionManager=this,e._prepare(),e)}unregisterAction(e){const t=this.actions.indexOf(e);return t!==-1?(this.actions.splice(t,1),Xr.Triggers[e.trigger]-=1,Xr.Triggers[e.trigger]===0&&delete Xr.Triggers[e.trigger],e._actionManager=null,this.getScene()._registeredActions--,!0):!1}processTrigger(e,t){for(let i=0;i<this.actions.length;i++){const s=this.actions[i];if(s.trigger===e){if(t&&(e===Xr.OnKeyUpTrigger||e===Xr.OnKeyDownTrigger)){const r=s.getTriggerParameter();if(typeof r=="function"){if(!r(t))continue}else if(r&&r!==t.sourceEvent.keyCode){if(!r.toLowerCase)continue;const n=r.toLowerCase();if(n!==t.sourceEvent.key){const o=t.sourceEvent.charCode?t.sourceEvent.charCode:t.sourceEvent.keyCode;if(String.fromCharCode(o).toLowerCase()!==n)continue}}}s._executeCurrent(t)}}}_getEffectiveTarget(e,t){const i=t.split(".");for(let s=0;s<i.length-1;s++)e=e[i[s]];return e}_getProperty(e){const t=e.split(".");return t[t.length-1]}serialize(e){const t={children:new Array,name:e,type:3,properties:new Array};for(let i=0;i<this.actions.length;i++){const s={type:0,children:new Array,name:Xr.GetTriggerName(this.actions[i].trigger),properties:new Array},r=this.actions[i].triggerOptions;if(r&&typeof r!="number")if(r.parameter instanceof Node)s.properties.push(Un._GetTargetProperty(r.parameter));else if(typeof r.parameter=="object"){const n={};nu.DeepCopy(r.parameter,n,["mesh"]),r.parameter&&r.parameter.mesh&&(n._meshId=r.parameter.mesh.id),s.properties.push({name:"parameter",targetType:null,value:n})}else s.properties.push({name:"parameter",targetType:null,value:r.parameter});this.actions[i].serialize(s),t.children.push(s)}return t}static Parse(e,t,i){const s=new Xr(i);t===null?i.actionManager=s:t.actionManager=s;const r=(l,c)=>{const u=ea("BABYLON."+l);return u&&new u(...c)},n=(l,c,u,f)=>{if(f===null){const d=parseFloat(c);return c==="true"||c==="false"?c==="true":isNaN(d)?c:d}const p=f.split("."),m=c.split(",");for(let d=0;d<p.length;d++)u=u[p[d]];if(typeof u=="boolean")return m[0]==="true";if(typeof u=="string")return m[0];const _=[];for(let d=0;d<m.length;d++)_.push(parseFloat(m[d]));return u instanceof P?P.FromArray(_):u instanceof Yt?Yt.FromArray(_):u instanceof Pe?Pe.FromArray(_):u instanceof St?St.FromArray(_):parseFloat(m[0])},o=(l,c,u,f,p=null)=>{if(l.detached)return;const m=[];let _=null,d=null;const h=l.combine&&l.combine.length>0;if(l.type===2?m.push(s):m.push(c),h){const A=[];for(let S=0;S<l.combine.length;S++)o(l.combine[S],Xr.NothingTrigger,u,f,A);m.push(A)}else for(let A=0;A<l.properties.length;A++){let S=l.properties[A].value;const E=l.properties[A].name,b=l.properties[A].targetType;E==="target"?b==="SceneProperties"?S=_=i:b==="MaterialProperties"?S=_=i.getMaterialByName(S):S=_=i.getNodeByName(S):E==="parent"?S=i.getNodeByName(S):E==="sound"?i.getSoundByName&&(S=i.getSoundByName(S)):E!=="propertyPath"?l.type===2&&E==="operator"?S=Rc[S]:S=n(E,S,_,E==="value"?d:null):d=S,m.push(S)}if(p===null?m.push(u):m.push(null),l.name==="InterpolateValueAction"){const A=m[m.length-2];m[m.length-1]=A,m[m.length-2]=u}let x=r(l.name,m);if(x instanceof jP&&u!==null){const A=new lq(c,u);f?f.then(A):s.registerAction(A),f=A}p===null?x instanceof jP?(u=x,x=f):(u=null,f?f.then(x):s.registerAction(x)):p.push(x);for(let A=0;A<l.children.length;A++)o(l.children[A],c,u,x,null)};for(let l=0;l<e.children.length;l++){let c;const u=e.children[l];if(u.properties.length>0){const f=u.properties[0].value,p=u.properties[0].targetType===null?f:i.getMeshByName(f);p._meshId&&(p.mesh=i.getMeshById(p._meshId)),c={trigger:Xr[u.name],parameter:p}}else c=Xr[u.name];for(let f=0;f<u.children.length;f++)u.detached||o(u.children[f],c,null,null)}}static GetTriggerName(e){switch(e){case 0:return"NothingTrigger";case 1:return"OnPickTrigger";case 2:return"OnLeftPickTrigger";case 3:return"OnRightPickTrigger";case 4:return"OnCenterPickTrigger";case 5:return"OnPickDownTrigger";case 6:return"OnDoublePickTrigger";case 7:return"OnPickUpTrigger";case 8:return"OnLongPressTrigger";case 9:return"OnPointerOverTrigger";case 10:return"OnPointerOutTrigger";case 11:return"OnEveryFrameTrigger";case 12:return"OnIntersectionEnterTrigger";case 13:return"OnIntersectionExitTrigger";case 14:return"OnKeyDownTrigger";case 15:return"OnKeyUpTrigger";case 16:return"OnPickOutTrigger";default:return""}}}Xr.NothingTrigger=0,Xr.OnPickTrigger=1,Xr.OnLeftPickTrigger=2,Xr.OnRightPickTrigger=3,Xr.OnCenterPickTrigger=4,Xr.OnPickDownTrigger=5,Xr.OnDoublePickTrigger=6,Xr.OnPickUpTrigger=7,Xr.OnPickOutTrigger=16,Xr.OnLongPressTrigger=8,Xr.OnPointerOverTrigger=9,Xr.OnPointerOutTrigger=10,Xr.OnEveryFrameTrigger=11,Xr.OnIntersectionEnterTrigger=12,Xr.OnIntersectionExitTrigger=13,Xr.OnKeyDownTrigger=14,Xr.OnKeyUpTrigger=15;class o2e extends Un{constructor(e,t,i){super(e,i),this._sound=t}_prepare(){}execute(){this._sound!==void 0&&this._sound.play()}serialize(e){return super._serialize({name:"PlaySoundAction",properties:[{name:"sound",value:this._sound.name}]},e)}}class l2e extends Un{constructor(e,t,i){super(e,i),this._sound=t}_prepare(){}execute(){this._sound!==void 0&&this._sound.stop()}serialize(e){return super._serialize({name:"StopSoundAction",properties:[{name:"sound",value:this._sound.name}]},e)}}ve("BABYLON.PlaySoundAction",o2e),ve("BABYLON.StopSoundAction",l2e);class c2e extends Un{constructor(e,t,i,s,r=1e3,n,o,l){super(e,n),this.duration=1e3,this.onInterpolationDoneObservable=new xe,this.propertyPath=i,this.value=s,this.duration=r,this.stopOtherAnimations=o,this.onInterpolationDone=l,this._target=this._effectiveTarget=t}_prepare(){this._effectiveTarget=this._getEffectiveTarget(this._effectiveTarget,this.propertyPath),this._property=this._getProperty(this.propertyPath)}execute(){const e=this._actionManager.getScene(),t=[{frame:0,value:this._effectiveTarget[this._property]},{frame:100,value:this.value}];let i;if(typeof this.value=="number")i=He.ANIMATIONTYPE_FLOAT;else if(this.value instanceof Pe)i=He.ANIMATIONTYPE_COLOR3;else if(this.value instanceof P)i=He.ANIMATIONTYPE_VECTOR3;else if(this.value instanceof me)i=He.ANIMATIONTYPE_MATRIX;else if(this.value instanceof Re)i=He.ANIMATIONTYPE_QUATERNION;else{de.Warn("InterpolateValueAction: Unsupported type ("+typeof this.value+")");return}const s=new He("InterpolateValueAction",this._property,100*(1e3/this.duration),i,He.ANIMATIONLOOPMODE_CONSTANT);s.setKeys(t),this.stopOtherAnimations&&e.stopAnimation(this._effectiveTarget);const r=()=>{this.onInterpolationDoneObservable.notifyObservers(this),this.onInterpolationDone&&this.onInterpolationDone()};e.beginDirectAnimation(this._effectiveTarget,[s],0,100,!1,1,r)}serialize(e){return super._serialize({name:"InterpolateValueAction",properties:[Un._GetTargetProperty(this._target),{name:"propertyPath",value:this.propertyPath},{name:"value",value:Un._SerializeValueAsString(this.value)},{name:"duration",value:Un._SerializeValueAsString(this.duration)},{name:"stopOtherAnimations",value:Un._SerializeValueAsString(this.stopOtherAnimations)||!1}]},e)}}ve("BABYLON.InterpolateValueAction",c2e);class u2e{get currentFrame(){return this._currentFrame}get weight(){return this._weight}get currentValue(){return this._currentValue}get targetPath(){return this._targetPath}get target(){return this._currentActiveTarget}get isAdditive(){return this._host&&this._host.isAdditive}constructor(e,t,i,s){if(this._events=new Array,this._currentFrame=0,this._originalValue=new Array,this._originalBlendValue=null,this._offsetsCache={},this._highLimitsCache={},this._stopped=!1,this._blendingFactor=0,this._currentValue=null,this._currentActiveTarget=null,this._directTarget=null,this._targetPath="",this._weight=1,this._absoluteFrameOffset=0,this._previousElapsedTime=0,this._yoyoDirection=1,this._previousAbsoluteFrame=0,this._targetIsArray=!1,this._animation=t,this._target=e,this._scene=i,this._host=s,this._activeTargets=[],t._runtimeAnimations.push(this),this._animationState={key:0,repeatCount:0,loopMode:this._getCorrectLoopMode()},this._animation.dataType===He.ANIMATIONTYPE_MATRIX&&(this._animationState.workValue=me.Zero()),this._keys=this._animation.getKeys(),this._minFrame=this._keys[0].frame,this._maxFrame=this._keys[this._keys.length-1].frame,this._minValue=this._keys[0].value,this._maxValue=this._keys[this._keys.length-1].value,this._minFrame!==0){const n={frame:0,value:this._minValue};this._keys.splice(0,0,n)}if(this._target instanceof Array){let n=0;for(const o of this._target)this._preparePath(o,n),this._getOriginalValues(n),n++;this._targetIsArray=!0}else this._preparePath(this._target),this._getOriginalValues(),this._targetIsArray=!1,this._directTarget=this._activeTargets[0];const r=t.getEvents();r&&r.length>0&&r.forEach(n=>{this._events.push(n._clone())}),this._enableBlending=e&&e.animationPropertiesOverride?e.animationPropertiesOverride.enableBlending:this._animation.enableBlending}_preparePath(e,t=0){const i=this._animation.targetPropertyPath;if(i.length>1){let s=e;for(let r=0;r<i.length-1;r++){const n=i[r];if(s=s[n],s===void 0)throw new Error(`Invalid property (${n}) in property path (${i.join(".")})`)}this._targetPath=i[i.length-1],this._activeTargets[t]=s}else this._targetPath=i[0],this._activeTargets[t]=e;if(this._activeTargets[t][this._targetPath]===void 0)throw new Error(`Invalid property (${this._targetPath}) in property path (${i.join(".")})`)}get animation(){return this._animation}reset(e=!1){if(e)if(this._target instanceof Array){let t=0;for(const i of this._target)this._originalValue[t]!==void 0&&this._setValue(i,this._activeTargets[t],this._originalValue[t],-1,t),t++}else this._originalValue[0]!==void 0&&this._setValue(this._target,this._directTarget,this._originalValue[0],-1,0);this._offsetsCache={},this._highLimitsCache={},this._currentFrame=0,this._blendingFactor=0;for(let t=0;t<this._events.length;t++)this._events[t].isDone=!1}isStopped(){return this._stopped}dispose(){const e=this._animation.runtimeAnimations.indexOf(this);e>-1&&this._animation.runtimeAnimations.splice(e,1)}setValue(e,t){if(this._targetIsArray){for(let i=0;i<this._target.length;i++){const s=this._target[i];this._setValue(s,this._activeTargets[i],e,t,i)}return}this._setValue(this._target,this._directTarget,e,t,0)}_getOriginalValues(e=0){let t;const i=this._activeTargets[e];i.getLocalMatrix&&this._targetPath==="_matrix"?t=i.getLocalMatrix():t=i[this._targetPath],t&&t.clone?this._originalValue[e]=t.clone():this._originalValue[e]=t}_registerTargetForLateAnimationBinding(e,t){const i=e.target;this._scene._registeredForLateAnimationBindings.pushNoDuplicate(i),i._lateAnimationHolders||(i._lateAnimationHolders={}),i._lateAnimationHolders[e.targetPath]||(i._lateAnimationHolders[e.targetPath]={totalWeight:0,totalAdditiveWeight:0,animations:[],additiveAnimations:[],originalValue:t}),e.isAdditive?(i._lateAnimationHolders[e.targetPath].additiveAnimations.push(e),i._lateAnimationHolders[e.targetPath].totalAdditiveWeight+=e.weight):(i._lateAnimationHolders[e.targetPath].animations.push(e),i._lateAnimationHolders[e.targetPath].totalWeight+=e.weight)}_setValue(e,t,i,s,r){if(this._currentActiveTarget=t,this._weight=s,this._enableBlending&&this._blendingFactor<=1){if(!this._originalBlendValue){const o=t[this._targetPath];o.clone?this._originalBlendValue=o.clone():this._originalBlendValue=o}this._originalBlendValue.m?He.AllowMatrixDecomposeForInterpolation?this._currentValue?me.DecomposeLerpToRef(this._originalBlendValue,i,this._blendingFactor,this._currentValue):this._currentValue=me.DecomposeLerp(this._originalBlendValue,i,this._blendingFactor):this._currentValue?me.LerpToRef(this._originalBlendValue,i,this._blendingFactor,this._currentValue):this._currentValue=me.Lerp(this._originalBlendValue,i,this._blendingFactor):this._currentValue=He._UniversalLerp(this._originalBlendValue,i,this._blendingFactor);const n=e&&e.animationPropertiesOverride?e.animationPropertiesOverride.blendingSpeed:this._animation.blendingSpeed;this._blendingFactor+=n}else this._currentValue?this._currentValue.copyFrom?this._currentValue.copyFrom(i):this._currentValue=i:i!=null&&i.clone?this._currentValue=i.clone():this._currentValue=i;s!==-1?this._registerTargetForLateAnimationBinding(this,this._originalValue[r]):this._animationState.loopMode===He.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT?this._currentValue.addToRef?this._currentValue.addToRef(this._originalValue[r],t[this._targetPath]):t[this._targetPath]=this._originalValue[r]+this._currentValue:t[this._targetPath]=this._currentValue,e.markAsDirty&&e.markAsDirty(this._animation.targetProperty)}_getCorrectLoopMode(){return this._target&&this._target.animationPropertiesOverride?this._target.animationPropertiesOverride.loopMode:this._animation.loopMode}goToFrame(e,t=-1){const i=this._animation.getKeys();e<i[0].frame?e=i[0].frame:e>i[i.length-1].frame&&(e=i[i.length-1].frame);const s=this._events;if(s.length)for(let n=0;n<s.length;n++)s[n].onlyOnce||(s[n].isDone=s[n].frame<e);this._currentFrame=e;const r=this._animation._interpolate(e,this._animationState);this.setValue(r,t)}_prepareForSpeedRatioChange(e){const t=this._previousElapsedTime*(this._animation.framePerSecond*e)/1e3;this._absoluteFrameOffset=this._previousAbsoluteFrame-t}animate(e,t,i,s,r,n=-1){const o=this._animation,l=o.targetPropertyPath;if(!l||l.length<1)return this._stopped=!0,!1;let c=!0;(t<this._minFrame||t>this._maxFrame)&&(t=this._minFrame),(i<this._minFrame||i>this._maxFrame)&&(i=this._maxFrame);const u=i-t;let f,p=e*(o.framePerSecond*r)/1e3+this._absoluteFrameOffset,m=0,_=!1;const d=s&&this._animationState.loopMode===He.ANIMATIONLOOPMODE_YOYO;if(d){const S=(p-t)/u,E=Math.sin(S*Math.PI);p=Math.abs(E)*u+t;const M=E>=0?1:-1;this._yoyoDirection!==M&&(_=!0),this._yoyoDirection=M}if(this._previousElapsedTime=e,this._previousAbsoluteFrame=p,!s&&i>=t&&(p>=u&&r>0||p<=0&&r<0))c=!1,m=o._getKeyValue(this._maxValue);else if(!s&&t>=i&&(p<=u&&r<0||p>=0&&r>0))c=!1,m=o._getKeyValue(this._minValue);else if(this._animationState.loopMode!==He.ANIMATIONLOOPMODE_CYCLE){const S=i.toString()+t.toString();if(!this._offsetsCache[S]){this._animationState.repeatCount=0,this._animationState.loopMode=He.ANIMATIONLOOPMODE_CYCLE;const E=o._interpolate(t,this._animationState),b=o._interpolate(i,this._animationState);switch(this._animationState.loopMode=this._getCorrectLoopMode(),o.dataType){case He.ANIMATIONTYPE_FLOAT:this._offsetsCache[S]=b-E;break;case He.ANIMATIONTYPE_QUATERNION:this._offsetsCache[S]=b.subtract(E);break;case He.ANIMATIONTYPE_VECTOR3:this._offsetsCache[S]=b.subtract(E);break;case He.ANIMATIONTYPE_VECTOR2:this._offsetsCache[S]=b.subtract(E);break;case He.ANIMATIONTYPE_SIZE:this._offsetsCache[S]=b.subtract(E);break;case He.ANIMATIONTYPE_COLOR3:this._offsetsCache[S]=b.subtract(E);break}this._highLimitsCache[S]=b}m=this._highLimitsCache[S],f=this._offsetsCache[S]}if(f===void 0)switch(o.dataType){case He.ANIMATIONTYPE_FLOAT:f=0;break;case He.ANIMATIONTYPE_QUATERNION:f=uZ;break;case He.ANIMATIONTYPE_VECTOR3:f=hZ;break;case He.ANIMATIONTYPE_VECTOR2:f=dZ;break;case He.ANIMATIONTYPE_SIZE:f=fZ;break;case He.ANIMATIONTYPE_COLOR3:f=pZ;break;case He.ANIMATIONTYPE_COLOR4:f=mZ;break}let h;if(this._host&&this._host.syncRoot){const S=this._host.syncRoot,E=(S.masterFrame-S.fromFrame)/(S.toFrame-S.fromFrame);h=t+u*E}else p>0&&t>i||p<0&&t<i?h=c&&u!==0?i+p%u:t:h=c&&u!==0?t+p%u:i;const x=this._events;if(!d&&(r>0&&this.currentFrame>h||r<0&&this.currentFrame<h)||d&&_){this._onLoop();for(let S=0;S<x.length;S++)x[S].onlyOnce||(x[S].isDone=!1);this._animationState.key=r>0?0:o.getKeys().length-1}this._currentFrame=h,this._animationState.repeatCount=u===0?0:p/u>>0,this._animationState.highLimitValue=m,this._animationState.offsetValue=f;const A=o._interpolate(h,this._animationState);if(this.setValue(A,n),x.length){for(let S=0;S<x.length;S++)if(u>=0&&h>=x[S].frame&&x[S].frame>=t||u<0&&h<=x[S].frame&&x[S].frame<=t){const E=x[S];E.isDone||(E.onlyOnce&&(x.splice(S,1),S--),E.isDone=!0,E.action(h))}}return c||(this._stopped=!0),c}}class uq{get syncRoot(){return this._syncRoot}get masterFrame(){return this._runtimeAnimations.length===0?0:this._runtimeAnimations[0].currentFrame}get weight(){return this._weight}set weight(e){if(e===-1){this._weight=-1;return}this._weight=Math.min(Math.max(e,0),1)}get speedRatio(){return this._speedRatio}set speedRatio(e){for(let t=0;t<this._runtimeAnimations.length;t++)this._runtimeAnimations[t]._prepareForSpeedRatioChange(e);this._speedRatio=e,this._goToFrame!==null&&this.goToFrame(this._goToFrame)}get elapsedTime(){return this._localDelayOffset===null?0:this._scene._animationTime-this._localDelayOffset}constructor(e,t,i=0,s=100,r=!1,n=1,o,l,c,u=!1,f=0){this.target=t,this.fromFrame=i,this.toFrame=s,this.loopAnimation=r,this.onAnimationEnd=o,this.onAnimationLoop=c,this.isAdditive=u,this.playOrder=f,this._localDelayOffset=null,this._pausedDelay=null,this._manualJumpDelay=null,this._runtimeAnimations=new Array,this._paused=!1,this._speedRatio=1,this._weight=-1,this._previousWeight=-1,this._syncRoot=null,this._frameToSyncFromJump=null,this._goToFrame=null,this.disposeOnEnd=!0,this.animationStarted=!1,this.onAnimationEndObservable=new xe,this.onAnimationLoopObservable=new xe,this._scene=e,l&&this.appendAnimations(t,l),this._speedRatio=n,e._activeAnimatables.push(this)}syncWith(e){if(this._syncRoot=e,e){const t=this._scene._activeAnimatables.indexOf(this);t>-1&&(this._scene._activeAnimatables.splice(t,1),this._scene._activeAnimatables.push(this))}return this}getAnimations(){return this._runtimeAnimations}appendAnimations(e,t){for(let i=0;i<t.length;i++){const s=t[i],r=new u2e(e,s,this._scene,this);r._onLoop=()=>{this.onAnimationLoopObservable.notifyObservers(this),this.onAnimationLoop&&this.onAnimationLoop()},this._runtimeAnimations.push(r)}}getAnimationByTargetProperty(e){const t=this._runtimeAnimations;for(let i=0;i<t.length;i++)if(t[i].animation.targetProperty===e)return t[i].animation;return null}getRuntimeAnimationByTargetProperty(e){const t=this._runtimeAnimations;for(let i=0;i<t.length;i++)if(t[i].animation.targetProperty===e)return t[i];return null}reset(){const e=this._runtimeAnimations;for(let t=0;t<e.length;t++)e[t].reset(!0);this._localDelayOffset=null,this._pausedDelay=null}enableBlending(e){const t=this._runtimeAnimations;for(let i=0;i<t.length;i++)t[i].animation.enableBlending=!0,t[i].animation.blendingSpeed=e}disableBlending(){const e=this._runtimeAnimations;for(let t=0;t<e.length;t++)e[t].animation.enableBlending=!1}goToFrame(e,t=!1){const i=this._runtimeAnimations;if(i[0]){const s=i[0].animation.framePerSecond;this._frameToSyncFromJump=this._frameToSyncFromJump??i[0].currentFrame;const r=this.speedRatio===0?0:(e-this._frameToSyncFromJump)/s*1e3/this.speedRatio;this._manualJumpDelay=-r}for(let s=0;s<i.length;s++)i[s].goToFrame(e,t?this._weight:-1);this._goToFrame=e}get paused(){return this._paused}pause(){this._paused||(this._paused=!0)}restart(){this._paused=!1}_raiseOnAnimationEnd(){this.onAnimationEnd&&this.onAnimationEnd(),this.onAnimationEndObservable.notifyObservers(this)}stop(e,t,i=!1,s=!1){if(e||t){const r=this._scene._activeAnimatables.indexOf(this);if(r>-1){const n=this._runtimeAnimations;for(let o=n.length-1;o>=0;o--){const l=n[o];e&&l.animation.name!=e||t&&!t(l.target)||(l.dispose(),n.splice(o,1))}n.length==0&&(i||this._scene._activeAnimatables.splice(r,1),s||this._raiseOnAnimationEnd())}}else{const r=this._scene._activeAnimatables.indexOf(this);if(r>-1){i||this._scene._activeAnimatables.splice(r,1);const n=this._runtimeAnimations;for(let o=0;o<n.length;o++)n[o].dispose();this._runtimeAnimations.length=0,s||this._raiseOnAnimationEnd()}}}waitAsync(){return new Promise(e=>{this.onAnimationEndObservable.add(()=>{e(this)},void 0,void 0,this,!0)})}_animate(e){if(this._paused)return this.animationStarted=!1,this._pausedDelay===null&&(this._pausedDelay=e),!0;if(this._localDelayOffset===null?(this._localDelayOffset=e,this._pausedDelay=null):this._pausedDelay!==null&&(this._localDelayOffset+=e-this._pausedDelay,this._pausedDelay=null),this._manualJumpDelay!==null&&(this._localDelayOffset+=this._manualJumpDelay,this._manualJumpDelay=null,this._frameToSyncFromJump=null),this._goToFrame=null,this._weight===0&&this._previousWeight===0)return!0;this._previousWeight=this._weight;let t=!1;const i=this._runtimeAnimations;let s;for(s=0;s<i.length;s++){const n=i[s].animate(e-this._localDelayOffset,this.fromFrame,this.toFrame,this.loopAnimation,this._speedRatio,this._weight);t=t||n}if(this.animationStarted=t,!t){if(this.disposeOnEnd)for(s=this._scene._activeAnimatables.indexOf(this),this._scene._activeAnimatables.splice(s,1),s=0;s<i.length;s++)i[s].dispose();this._raiseOnAnimationEnd(),this.disposeOnEnd&&(this.onAnimationEnd=null,this.onAnimationLoop=null,this.onAnimationLoopObservable.clear(),this.onAnimationEndObservable.clear())}return t}}function YDe(a){if(a.totalWeight===0&&a.totalAdditiveWeight===0)return a.originalValue;let e=1;const t=ae.Vector3[0],i=ae.Vector3[1],s=ae.Quaternion[0];let r=0;const n=a.animations[0],o=a.originalValue;let l=1,c=!1;if(a.totalWeight<1)l=1-a.totalWeight,o.decompose(i,s,t);else{if(r=1,e=a.totalWeight,l=n.weight/e,l==1)if(a.totalAdditiveWeight)c=!0;else return n.currentValue;n.currentValue.decompose(i,s,t)}if(!c){i.scaleInPlace(l),t.scaleInPlace(l),s.scaleInPlace(l);for(let f=r;f<a.animations.length;f++){const p=a.animations[f];if(p.weight===0)continue;l=p.weight/e;const m=ae.Vector3[2],_=ae.Vector3[3],d=ae.Quaternion[1];p.currentValue.decompose(_,d,m),_.scaleAndAddToRef(l,i),d.scaleAndAddToRef(Re.Dot(s,d)>0?l:-l,s),m.scaleAndAddToRef(l,t)}s.normalize()}for(let f=0;f<a.additiveAnimations.length;f++){const p=a.additiveAnimations[f];if(p.weight===0)continue;const m=ae.Vector3[2],_=ae.Vector3[3],d=ae.Quaternion[1];p.currentValue.decompose(_,d,m),_.multiplyToRef(i,_),P.LerpToRef(i,_,p.weight,i),s.multiplyToRef(d,d),Re.SlerpToRef(s,d,p.weight,s),m.scaleAndAddToRef(p.weight,t)}const u=n?n._animationState.workValue:ae.Matrix[0].clone();return me.ComposeToRef(i,s,t,u),u}function XDe(a,e){if(a.totalWeight===0&&a.totalAdditiveWeight===0)return e;const t=a.animations[0],i=a.originalValue;let s=e;if(a.totalWeight===0&&a.totalAdditiveWeight>0)s.copyFrom(i);else if(a.animations.length===1){if(Re.SlerpToRef(i,t.currentValue,Math.min(1,a.totalWeight),s),a.totalAdditiveWeight===0)return s}else if(a.animations.length>1){let r=1,n,o;if(a.totalWeight<1){const c=1-a.totalWeight;n=[],o=[],n.push(i),o.push(c)}else{if(a.animations.length===2&&(Re.SlerpToRef(a.animations[0].currentValue,a.animations[1].currentValue,a.animations[1].weight/a.totalWeight,e),a.totalAdditiveWeight===0))return e;n=[],o=[],r=a.totalWeight}for(let c=0;c<a.animations.length;c++){const u=a.animations[c];n.push(u.currentValue),o.push(u.weight/r)}let l=0;for(let c=0;c<n.length;){if(!c){Re.SlerpToRef(n[c],n[c+1],o[c+1]/(o[c]+o[c+1]),e),s=e,l=o[c]+o[c+1],c+=2;continue}l+=o[c],Re.SlerpToRef(s,n[c],o[c]/l,s),c++}}for(let r=0;r<a.additiveAnimations.length;r++){const n=a.additiveAnimations[r];n.weight!==0&&(s.multiplyToRef(n.currentValue,ae.Quaternion[0]),Re.SlerpToRef(s,ae.Quaternion[0],n.weight,s))}return s}function ZDe(a){if(a._registeredForLateAnimationBindings.length){for(let e=0;e<a._registeredForLateAnimationBindings.length;e++){const t=a._registeredForLateAnimationBindings.data[e];for(const i in t._lateAnimationHolders){const s=t._lateAnimationHolders[i],r=s.animations[0],n=s.originalValue;if(n==null)continue;const o=He.AllowMatrixDecomposeForInterpolation&&n.m;let l=t[i];if(o)l=YDe(s);else if(n.w!==void 0)l=XDe(s,l||Re.Identity());else{let u=0,f=1;const p=r&&r._animationState.loopMode===He.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT;if(s.totalWeight<1)p?l=n.clone?n.clone():n:r&&n.scale?l=n.scale(1-s.totalWeight):r?l=n*(1-s.totalWeight):n.clone?l=n.clone():l=n;else if(r){f=s.totalWeight;const m=r.weight/f;m!==1?r.currentValue.scale?l=r.currentValue.scale(m):l=r.currentValue*m:l=r.currentValue,p&&(l.addToRef?l.addToRef(n,l):l+=n),u=1}for(let m=u;m<s.animations.length;m++){const _=s.animations[m],d=_.weight/f;if(d)_.currentValue.scaleAndAddToRef?_.currentValue.scaleAndAddToRef(d,l):l+=_.currentValue*d;else continue}for(let m=0;m<s.additiveAnimations.length;m++){const _=s.additiveAnimations[m],d=_.weight;if(d)_.currentValue.scaleAndAddToRef?_.currentValue.scaleAndAddToRef(d,l):l+=_.currentValue*d;else continue}}t[i]=l}t._lateAnimationHolders={}}a._registeredForLateAnimationBindings.reset()}}function KDe(a,e,t){const i=e.target;a._registeredForLateAnimationBindings.pushNoDuplicate(i),i._lateAnimationHolders||(i._lateAnimationHolders={}),i._lateAnimationHolders[e.targetPath]||(i._lateAnimationHolders[e.targetPath]={totalWeight:0,totalAdditiveWeight:0,animations:[],additiveAnimations:[],originalValue:t}),e.isAdditive?(i._lateAnimationHolders[e.targetPath].additiveAnimations.push(e),i._lateAnimationHolders[e.targetPath].totalAdditiveWeight+=e.weight):(i._lateAnimationHolders[e.targetPath].animations.push(e),i._lateAnimationHolders[e.targetPath].totalWeight+=e.weight)}function h2e(a,e){e&&(e.prototype.copyAnimationRange=function(t,i,s,r=!1,n=null){this.animations.length===0&&(this.animations.push(new He(this.name,"_matrix",t.animations[0].framePerSecond,He.ANIMATIONTYPE_MATRIX,0)),this.animations[0].setKeys([]));const o=t.animations[0].getRange(i);if(!o)return!1;const l=o.from,c=o.to,u=t.animations[0].getKeys(),f=t.length,p=t.getParent(),m=this.getParent(),_=r&&p&&f&&this.length&&f!==this.length,d=_&&m&&p?m.length/p.length:1,h=r&&!m&&n&&(n.x!==1||n.y!==1||n.z!==1),x=this.animations[0].getKeys();let A,S,E;for(let b=0,M=u.length;b<M;b++)A=u[b],A.frame>=l&&A.frame<=c&&(r?(E=A.value.clone(),_?(S=E.getTranslation(),E.setTranslation(S.scaleInPlace(d))):h&&n?(S=E.getTranslation(),E.setTranslation(S.multiplyInPlace(n))):E=A.value):E=A.value,x.push({frame:A.frame+s,value:E}));return this.animations[0].createRange(i,l+s,c+s),!0}),a&&(a.prototype._animate=function(t){if(!this.animationsEnabled)return;const i=lr.Now;if(!this._animationTimeLast){if(this._pendingData.length>0)return;this._animationTimeLast=i}this.deltaTime=t!==void 0?t:this.useConstantAnimationDeltaTime?16:(i-this._animationTimeLast)*this.animationTimeScale,this._animationTimeLast=i;const s=this._activeAnimatables;if(s.length===0)return;this._animationTime+=this.deltaTime;const r=this._animationTime;for(let n=0;n<s.length;n++){const o=s[n];!o._animate(r)&&o.disposeOnEnd&&n--}ZDe(this)},a.prototype.sortActiveAnimatables=function(){this._activeAnimatables.sort((t,i)=>t.playOrder-i.playOrder)},a.prototype.beginWeightedAnimation=function(t,i,s,r=1,n,o=1,l,c,u,f,p=!1){const m=this.beginAnimation(t,i,s,n,o,l,c,!1,u,f,p);return m.weight=r,m},a.prototype.beginAnimation=function(t,i,s,r,n=1,o,l,c=!0,u,f,p=!1){if(n<0){const _=i;i=s,s=_,n=-n}i>s&&(n=-n),c&&this.stopAnimation(t,void 0,u),l||(l=new uq(this,t,i,s,r,n,o,void 0,f,p));const m=u?u(t):!0;if(t.animations&&m&&l.appendAnimations(t,t.animations),t.getAnimatables){const _=t.getAnimatables();for(let d=0;d<_.length;d++)this.beginAnimation(_[d],i,s,r,n,o,l,c,u,f)}return l.reset(),l},a.prototype.beginHierarchyAnimation=function(t,i,s,r,n,o=1,l,c,u=!0,f,p,m=!1){const _=t.getDescendants(i),d=[];d.push(this.beginAnimation(t,s,r,n,o,l,c,u,f,void 0,m));for(const h of _)d.push(this.beginAnimation(h,s,r,n,o,l,c,u,f,void 0,m));return d},a.prototype.beginDirectAnimation=function(t,i,s,r,n,o=1,l,c,u=!1){if(o<0){const p=s;s=r,r=p,o=-o}return s>r&&(o=-o),new uq(this,t,s,r,n,o,l,i,c,u)},a.prototype.beginDirectHierarchyAnimation=function(t,i,s,r,n,o,l,c,u,f=!1){const p=t.getDescendants(i),m=[];m.push(this.beginDirectAnimation(t,s,r,n,o,l,c,u,f));for(const _ of p)m.push(this.beginDirectAnimation(_,s,r,n,o,l,c,u,f));return m},a.prototype.getAnimatableByTarget=function(t){for(let i=0;i<this._activeAnimatables.length;i++)if(this._activeAnimatables[i].target===t)return this._activeAnimatables[i];return null},a.prototype.getAllAnimatablesByTarget=function(t){const i=[];for(let s=0;s<this._activeAnimatables.length;s++)this._activeAnimatables[s].target===t&&i.push(this._activeAnimatables[s]);return i},a.prototype.stopAnimation=function(t,i,s){const r=this.getAllAnimatablesByTarget(t);for(const n of r)n.stop(i,s)},a.prototype.stopAllAnimations=function(){if(this._activeAnimatables){for(let t=0;t<this._activeAnimatables.length;t++)this._activeAnimatables[t].stop(void 0,void 0,!0);this._activeAnimatables.length=0}for(const t of this.animationGroups)t.stop()})}h2e(ui,gn);class qDe{constructor(){this.enableBlending=!1,this.blendingSpeed=.01,this.loopMode=He.ANIMATIONLOOPMODE_CYCLE}}class hq{getClassName(){return"TargetedAnimation"}serialize(){const e={};return e.animation=this.animation.serialize(),e.targetId=this.target.id,e}}class c3{get mask(){return this._mask}set mask(e){this._mask!==e&&(this._mask=e,this.syncWithMask(!0))}syncWithMask(e=!1){if(!this.mask&&!e){this._numActiveAnimatables=this._targetedAnimations.length;return}this._numActiveAnimatables=0;for(let t=0;t<this._animatables.length;++t){const i=this._animatables[t];!this.mask||this.mask.disabled||this.mask.retainsTarget(i.target.name)?(this._numActiveAnimatables++,i.paused&&i.restart()):i.paused||i.pause()}}removeUnmaskedAnimations(){if(!(!this.mask||this.mask.disabled)){for(let e=0;e<this._animatables.length;++e){const t=this._animatables[e];this.mask.retainsTarget(t.target.name)||(t.stop(),this._animatables.splice(e,1),--e)}for(let e=0;e<this._targetedAnimations.length;e++){const t=this._targetedAnimations[e];this.mask.retainsTarget(t.target.name)||(this._targetedAnimations.splice(e,1),--e)}}}get from(){return this._from}set from(e){if(this._from!==e){this._from=e;for(let t=0;t<this._animatables.length;t++){const i=this._animatables[t];i.fromFrame=this._from}}}get to(){return this._to}set to(e){if(this._to!==e){this._to=e;for(let t=0;t<this._animatables.length;t++){const i=this._animatables[t];i.toFrame=this._to}}}get isStarted(){return this._isStarted}get isPlaying(){return this._isStarted&&!this._isPaused}get speedRatio(){return this._speedRatio}set speedRatio(e){if(this._speedRatio!==e){this._speedRatio=e;for(let t=0;t<this._animatables.length;t++){const i=this._animatables[t];i.speedRatio=this._speedRatio}}}get loopAnimation(){return this._loopAnimation}set loopAnimation(e){if(this._loopAnimation!==e){this._loopAnimation=e;for(let t=0;t<this._animatables.length;t++){const i=this._animatables[t];i.loopAnimation=this._loopAnimation}}}get isAdditive(){return this._isAdditive}set isAdditive(e){if(this._isAdditive!==e){this._isAdditive=e;for(let t=0;t<this._animatables.length;t++){const i=this._animatables[t];i.isAdditive=this._isAdditive}}}get weight(){return this._weight}set weight(e){this._weight!==e&&(this._weight=e,this.setWeightForAllAnimatables(this._weight))}get targetedAnimations(){return this._targetedAnimations}get animatables(){return this._animatables}get children(){return this._targetedAnimations}get playOrder(){return this._playOrder}set playOrder(e){if(this._playOrder!==e&&(this._playOrder=e,this._animatables.length>0)){for(let t=0;t<this._animatables.length;t++)this._animatables[t].playOrder=this._playOrder;this._scene.sortActiveAnimatables()}}get enableBlending(){return this._enableBlending}set enableBlending(e){if(this._enableBlending!==e&&(this._enableBlending=e,e!==null))for(let t=0;t<this._targetedAnimations.length;++t)this._targetedAnimations[t].animation.enableBlending=e}get blendingSpeed(){return this._blendingSpeed}set blendingSpeed(e){if(this._blendingSpeed!==e&&(this._blendingSpeed=e,e!==null))for(let t=0;t<this._targetedAnimations.length;++t)this._targetedAnimations[t].animation.blendingSpeed=e}getLength(e,t){e=e??this._from,t=t??this._to;const i=this.targetedAnimations[0].animation.framePerSecond*this._speedRatio;return(t-e)/i}static MergeAnimationGroups(e,t=!0,i=!1,s){if(e.length===0)return null;s=s??e[0].weight;let r=Number.MAX_VALUE,n=-Number.MAX_VALUE;if(i)for(const l of e)l.from<r&&(r=l.from),l.to>n&&(n=l.to);const o=new c3(e[0].name+"_merged",e[0]._scene,s);for(const l of e){i&&l.normalize(r,n);for(const c of l.targetedAnimations)o.addTargetedAnimation(c.animation,c.target);t&&l.dispose()}return o}constructor(e,t=null,i=-1,s=0){this.name=e,this._targetedAnimations=new Array,this._animatables=new Array,this._from=Number.MAX_VALUE,this._to=-Number.MAX_VALUE,this._speedRatio=1,this._loopAnimation=!1,this._isAdditive=!1,this._weight=-1,this._playOrder=0,this._enableBlending=null,this._blendingSpeed=null,this._numActiveAnimatables=0,this._shouldStart=!0,this._parentContainer=null,this.onAnimationEndObservable=new xe,this.onAnimationLoopObservable=new xe,this.onAnimationGroupLoopObservable=new xe,this.onAnimationGroupEndObservable=new xe,this.onAnimationGroupPauseObservable=new xe,this.onAnimationGroupPlayObservable=new xe,this.metadata=null,this._mask=null,this._animationLoopFlags=[],this._scene=t||ei.LastCreatedScene,this._weight=i,this._playOrder=s,this.uniqueId=this._scene.getUniqueId(),this._scene.addAnimationGroup(this)}addTargetedAnimation(e,t){const i=new hq;i.animation=e,i.target=t;const s=e.getKeys();return this._from>s[0].frame&&(this._from=s[0].frame),this._to<s[s.length-1].frame&&(this._to=s[s.length-1].frame),this._enableBlending!==null&&(e.enableBlending=this._enableBlending),this._blendingSpeed!==null&&(e.blendingSpeed=this._blendingSpeed),this._targetedAnimations.push(i),this._shouldStart=!0,i}removeTargetedAnimation(e){for(let t=this._targetedAnimations.length-1;t>-1;t--)this._targetedAnimations[t].animation===e&&this._targetedAnimations.splice(t,1)}normalize(e=null,t=null){e==null&&(e=this._from),t==null&&(t=this._to);for(let i=0;i<this._targetedAnimations.length;i++){const r=this._targetedAnimations[i].animation.getKeys(),n=r[0],o=r[r.length-1];if(n.frame>e){const l={frame:e,value:n.value,inTangent:n.inTangent,outTangent:n.outTangent,interpolation:n.interpolation};r.splice(0,0,l)}if(o.frame<t){const l={frame:t,value:o.value,inTangent:o.inTangent,outTangent:o.outTangent,interpolation:o.interpolation};r.push(l)}}return this._from=e,this._to=t,this}_processLoop(e,t,i){e.onAnimationLoop=()=>{this.onAnimationLoopObservable.notifyObservers(t),!this._animationLoopFlags[i]&&(this._animationLoopFlags[i]=!0,this._animationLoopCount++,this._animationLoopCount===this._numActiveAnimatables&&(this.onAnimationGroupLoopObservable.notifyObservers(this),this._animationLoopCount=0,this._animationLoopFlags.length=0))}}start(e=!1,t=1,i,s,r){if(this._isStarted||this._targetedAnimations.length===0)return this;this._loopAnimation=e,this._shouldStart=!1,this._animationLoopCount=0,this._animationLoopFlags.length=0;for(let n=0;n<this._targetedAnimations.length;n++){const o=this._targetedAnimations[n],l=this._scene.beginDirectAnimation(o.target,[o.animation],i!==void 0?i:this._from,s!==void 0?s:this._to,e,t,void 0,void 0,r!==void 0?r:this._isAdditive);l.weight=this._weight,l.playOrder=this._playOrder,l.onAnimationEnd=()=>{this.onAnimationEndObservable.notifyObservers(o),this._checkAnimationGroupEnded(l)},this._processLoop(l,o,n),this._animatables.push(l)}return this.syncWithMask(),this._scene.sortActiveAnimatables(),this._speedRatio=t,this._isStarted=!0,this._isPaused=!1,this.onAnimationGroupPlayObservable.notifyObservers(this),this}pause(){if(!this._isStarted)return this;this._isPaused=!0;for(let e=0;e<this._animatables.length;e++)this._animatables[e].pause();return this.onAnimationGroupPauseObservable.notifyObservers(this),this}play(e){return this.isStarted&&this._animatables.length&&!this._shouldStart?(e!==void 0&&(this.loopAnimation=e),this.restart()):(this.stop(),this.start(e,this._speedRatio)),this}reset(){if(!this._isStarted)return this.play(),this.goToFrame(0),this.stop(!0),this;for(let e=0;e<this._animatables.length;e++)this._animatables[e].reset();return this}restart(){if(!this._isStarted)return this;for(let e=0;e<this._animatables.length;e++)this._animatables[e].restart();return this.syncWithMask(),this._isPaused=!1,this.onAnimationGroupPlayObservable.notifyObservers(this),this}stop(e=!1){if(!this._isStarted)return this;const t=this._animatables.slice();for(let s=0;s<t.length;s++)t[s].stop(void 0,void 0,!0,e);let i=0;for(let s=0;s<this._scene._activeAnimatables.length;s++){const r=this._scene._activeAnimatables[s];r._runtimeAnimations.length>0?this._scene._activeAnimatables[i++]=r:e&&this._checkAnimationGroupEnded(r,e)}return this._scene._activeAnimatables.length=i,this._isStarted=!1,this}setWeightForAllAnimatables(e){for(let t=0;t<this._animatables.length;t++){const i=this._animatables[t];i.weight=e}return this}syncAllAnimationsWith(e){for(let t=0;t<this._animatables.length;t++)this._animatables[t].syncWith(e);return this}goToFrame(e,t=!1){if(!this._isStarted)return this;for(let i=0;i<this._animatables.length;i++)this._animatables[i].goToFrame(e,t);return this}getCurrentFrame(){var e;return((e=this.animatables[0])==null?void 0:e.masterFrame)||0}dispose(){this.isStarted&&this.stop(),this._targetedAnimations.length=0,this._animatables.length=0;const e=this._scene.animationGroups.indexOf(this);if(e>-1&&this._scene.animationGroups.splice(e,1),this._parentContainer){const t=this._parentContainer.animationGroups.indexOf(this);t>-1&&this._parentContainer.animationGroups.splice(t,1),this._parentContainer=null}this.onAnimationEndObservable.clear(),this.onAnimationGroupEndObservable.clear(),this.onAnimationGroupPauseObservable.clear(),this.onAnimationGroupPlayObservable.clear(),this.onAnimationLoopObservable.clear(),this.onAnimationGroupLoopObservable.clear()}_checkAnimationGroupEnded(e,t=!1){const i=this._animatables.indexOf(e);i>-1&&this._animatables.splice(i,1),this._animatables.length===this._targetedAnimations.length-this._numActiveAnimatables&&(this._isStarted=!1,t||this.onAnimationGroupEndObservable.notifyObservers(this),this._animatables.length=0)}clone(e,t,i=!1){const s=new c3(e||this.name,this._scene,this._weight,this._playOrder);s._from=this.from,s._to=this.to,s._speedRatio=this.speedRatio,s._loopAnimation=this.loopAnimation,s._isAdditive=this.isAdditive,s._enableBlending=this.enableBlending,s._blendingSpeed=this.blendingSpeed,s.metadata=this.metadata,s.mask=this.mask;for(const r of this._targetedAnimations)s.addTargetedAnimation(i?r.animation.clone():r.animation,t?t(r.target):r.target);return s}serialize(){const e={};e.name=this.name,e.from=this.from,e.to=this.to,e.speedRatio=this.speedRatio,e.loopAnimation=this.loopAnimation,e.isAdditive=this.isAdditive,e.weight=this.weight,e.playOrder=this.playOrder,e.enableBlending=this.enableBlending,e.blendingSpeed=this.blendingSpeed,e.targetedAnimations=[];for(let t=0;t<this.targetedAnimations.length;t++){const i=this.targetedAnimations[t];e.targetedAnimations[t]=i.serialize()}return ar&&ar.HasTags(this)&&(e.tags=ar.GetTags(this)),this.metadata&&(e.metadata=this.metadata),e}static Parse(e,t){const i=new c3(e.name,t,e.weight,e.playOrder);for(let s=0;s<e.targetedAnimations.length;s++){const r=e.targetedAnimations[s],n=He.Parse(r.animation),o=r.targetId;if(r.animation.property==="influence"){const l=t.getMorphTargetById(o);l&&i.addTargetedAnimation(n,l)}else{const l=t.getNodeById(o);l!=null&&i.addTargetedAnimation(n,l)}}return ar&&ar.AddTagsTo(i,e.tags),e.from!==null&&e.to!==null&&i.normalize(e.from,e.to),e.speedRatio!==void 0&&(i._speedRatio=e.speedRatio),e.loopAnimation!==void 0&&(i._loopAnimation=e.loopAnimation),e.isAdditive!==void 0&&(i._isAdditive=e.isAdditive),e.weight!==void 0&&(i._weight=e.weight),e.playOrder!==void 0&&(i._playOrder=e.playOrder),e.enableBlending!==void 0&&(i._enableBlending=e.enableBlending),e.blendingSpeed!==void 0&&(i._blendingSpeed=e.blendingSpeed),e.metadata!==void 0&&(i.metadata=e.metadata),i}static MakeAnimationAdditive(e,t,i,s=!1,r){let n;typeof t=="object"?n=t:n={referenceFrame:t,range:i,cloneOriginalAnimationGroup:s,clonedAnimationName:r};let o=e;n.cloneOriginalAnimationGroup&&(o=e.clone(n.clonedAnimationGroupName||o.name));const l=o.targetedAnimations;for(let c=0;c<l.length;c++){const u=l[c];u.animation=He.MakeAnimationAdditive(u.animation,n)}if(o.isAdditive=!0,n.clipKeys){let c=Number.MAX_VALUE,u=-Number.MAX_VALUE;const f=o.targetedAnimations;for(let p=0;p<f.length;p++){const d=f[p].animation.getKeys();c>d[0].frame&&(c=d[0].frame),u<d[d.length-1].frame&&(u=d[d.length-1].frame)}o._from=c,o._to=u}return o}static ClipKeys(e,t,i,s,r){const n=e.clone(s||e.name);return c3.ClipKeysInPlace(n,t,i,r)}static ClipKeysInPlace(e,t,i,s){return c3.ClipInPlace(e,t,i,s,!1)}static ClipFrames(e,t,i,s,r){const n=e.clone(s||e.name);return c3.ClipFramesInPlace(n,t,i,r)}static ClipFramesInPlace(e,t,i,s){return c3.ClipInPlace(e,t,i,s,!0)}static ClipInPlace(e,t,i,s,r=!1){let n=Number.MAX_VALUE,o=-Number.MAX_VALUE;const l=e.targetedAnimations;for(let c=0;c<l.length;c++){const u=l[c],f=s?u.animation:u.animation.clone();r&&(f.createKeyForFrame(t),f.createKeyForFrame(i));const p=f.getKeys(),m=[];let _=Number.MAX_VALUE;for(let d=0;d<p.length;d++){const h=p[d];if(!r&&d>=t&&d<=i||r&&h.frame>=t&&h.frame<=i){const x={frame:h.frame,value:h.value.clone?h.value.clone():h.value,inTangent:h.inTangent,outTangent:h.outTangent,interpolation:h.interpolation,lockedTangent:h.lockedTangent};_===Number.MAX_VALUE&&(_=x.frame),x.frame-=_,m.push(x)}}if(m.length===0){l.splice(c,1),c--;continue}n>m[0].frame&&(n=m[0].frame),o<m[m.length-1].frame&&(o=m[m.length-1].frame),f.setKeys(m,!0),u.animation=f}return e._from=n,e._to=o,e}getClassName(){return"AnimationGroup"}toString(e){let t="Name: "+this.name;return t+=", type: "+this.getClassName(),e&&(t+=", from: "+this._from,t+=", to: "+this._to,t+=", isStarted: "+this._isStarted,t+=", speedRatio: "+this._speedRatio,t+=", targetedAnimations length: "+this._targetedAnimations.length,t+=", animatables length: "+this._animatables),t}}const QDe=Object.freeze(Object.defineProperty({__proto__:null,AnimationGroup:c3,TargetedAnimation:hq},Symbol.toStringTag,{value:"Module"}));var dq;(function(a){a[a.NONE=0]="NONE",a[a.STEP=1]="STEP"})(dq||(dq={}));class JDe{constructor(e){this._path=e,this._onchange=new Array,this.value=0,this.animations=[]}getPoint(){const e=this._path.getPointAtLengthPosition(this.value);return new P(e.x,0,e.y)}moveAhead(e=.002){return this.move(e),this}moveBack(e=.002){return this.move(-e),this}move(e){if(Math.abs(e)>1)throw"step size should be less than 1.";return this.value+=e,this._ensureLimits(),this._raiseOnChange(),this}_ensureLimits(){for(;this.value>1;)this.value-=1;for(;this.value<0;)this.value+=1;return this}_raiseOnChange(){return this._onchange.forEach(e=>e(this)),this}onchange(e){return this._onchange.push(e),this}}var fq;(function(a){a[a.Include=0]="Include",a[a.Exclude=1]="Exclude"})(fq||(fq={}));class $De{constructor(e,t=0){this.mode=t,this.disabled=!1,this._targetNames=new Set,e&&this.addTargetName(e)}addTargetName(e){if(Array.isArray(e)){for(const t of e)this._targetNames.add(t);return}this._targetNames.add(e)}removeTargetName(e){if(Array.isArray(e)){for(const t of e)this._targetNames.delete(t);return}this._targetNames.delete(e)}hasTarget(e){return this._targetNames.has(e)}retainsTarget(e){return this._targetNames.has(e)===(this.mode===0)}}class eNe{constructor(e){if(this.SMOOTHING=.75,this.FFT_SIZE=512,this.BARGRAPHAMPLITUDE=256,this.DEBUGCANVASPOS={x:20,y:20},this.DEBUGCANVASSIZE={width:320,height:200},e=e||ei.LastCreatedScene,!!e){if(this._scene=e,!dt.audioEngine){Le.Warn("No audio engine initialized, failed to create an audio analyser");return}this._audioEngine=dt.audioEngine,this._audioEngine.canUseWebAudio&&this._audioEngine.audioContext&&(this._webAudioAnalyser=this._audioEngine.audioContext.createAnalyser(),this._webAudioAnalyser.minDecibels=-140,this._webAudioAnalyser.maxDecibels=0,this._byteFreqs=new Uint8Array(this._webAudioAnalyser.frequencyBinCount),this._byteTime=new Uint8Array(this._webAudioAnalyser.frequencyBinCount),this._floatFreqs=new Float32Array(this._webAudioAnalyser.frequencyBinCount))}}getFrequencyBinCount(){return this._audioEngine.canUseWebAudio?this._webAudioAnalyser.frequencyBinCount:0}getByteFrequencyData(){return this._audioEngine.canUseWebAudio&&(this._webAudioAnalyser.smoothingTimeConstant=this.SMOOTHING,this._webAudioAnalyser.fftSize=this.FFT_SIZE,this._webAudioAnalyser.getByteFrequencyData(this._byteFreqs)),this._byteFreqs}getByteTimeDomainData(){return this._audioEngine.canUseWebAudio&&(this._webAudioAnalyser.smoothingTimeConstant=this.SMOOTHING,this._webAudioAnalyser.fftSize=this.FFT_SIZE,this._webAudioAnalyser.getByteTimeDomainData(this._byteTime)),this._byteTime}getFloatFrequencyData(){return this._audioEngine.canUseWebAudio&&(this._webAudioAnalyser.smoothingTimeConstant=this.SMOOTHING,this._webAudioAnalyser.fftSize=this.FFT_SIZE,this._webAudioAnalyser.getFloatFrequencyData(this._floatFreqs)),this._floatFreqs}drawDebugCanvas(){if(this._audioEngine.canUseWebAudio&&(this._debugCanvas||(this._debugCanvas=document.createElement("canvas"),this._debugCanvas.width=this.DEBUGCANVASSIZE.width,this._debugCanvas.height=this.DEBUGCANVASSIZE.height,this._debugCanvas.style.position="absolute",this._debugCanvas.style.top=this.DEBUGCANVASPOS.y+"px",this._debugCanvas.style.left=this.DEBUGCANVASPOS.x+"px",this._debugCanvasContext=this._debugCanvas.getContext("2d"),document.body.appendChild(this._debugCanvas),this._registerFunc=()=>{this.drawDebugCanvas()},this._scene.registerBeforeRender(this._registerFunc)),this._registerFunc&&this._debugCanvasContext)){const e=this.getByteFrequencyData();this._debugCanvasContext.fillStyle="rgb(0, 0, 0)",this._debugCanvasContext.fillRect(0,0,this.DEBUGCANVASSIZE.width,this.DEBUGCANVASSIZE.height);for(let t=0;t<this.getFrequencyBinCount();t++){const s=e[t]/this.BARGRAPHAMPLITUDE,r=this.DEBUGCANVASSIZE.height*s,n=this.DEBUGCANVASSIZE.height-r-1,o=this.DEBUGCANVASSIZE.width/this.getFrequencyBinCount(),l=t/this.getFrequencyBinCount()*360;this._debugCanvasContext.fillStyle="hsl("+l+", 100%, 50%)",this._debugCanvasContext.fillRect(t*o,n,o,r)}}}stopDebugCanvas(){this._debugCanvas&&(this._registerFunc&&(this._scene.unregisterBeforeRender(this._registerFunc),this._registerFunc=null),document.body.removeChild(this._debugCanvas),this._debugCanvas=null,this._debugCanvasContext=null)}connectAudioNodes(e,t){this._audioEngine.canUseWebAudio&&(e.connect(this._webAudioAnalyser),this._webAudioAnalyser.connect(t))}dispose(){this._audioEngine.canUseWebAudio&&this._webAudioAnalyser.disconnect()}}var pq;(function(a){a[a.HAS_INPUTS=1]="HAS_INPUTS",a[a.HAS_OUTPUTS=2]="HAS_OUTPUTS",a[a.HAS_INPUTS_AND_OUTPUTS=3]="HAS_INPUTS_AND_OUTPUTS"})(pq||(pq={}));class ZW{constructor(e,t){this.onDisposeObservable=new xe,this.engine=e,t&1&&(this._upstreamNodes=new Set),t&2&&(this._downstreamNodes=new Set)}dispose(){if(this._downstreamNodes){for(const e of Array.from(this._downstreamNodes))if(!this._disconnect(e))throw new Error("Disconnect failed");this._downstreamNodes.clear()}if(this._upstreamNodes){for(const e of Array.from(this._upstreamNodes))if(!e._disconnect(this))throw new Error("Disconnect failed");this._upstreamNodes.clear()}this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear()}_connect(e){return!this._downstreamNodes||this._downstreamNodes.has(e)||!e._onConnect(this)?!1:(this._downstreamNodes.add(e),!0)}_disconnect(e){return!this._downstreamNodes||!this._downstreamNodes.delete(e)?!1:e._onDisconnect(this)}_onConnect(e){return!this._upstreamNodes||this._upstreamNodes.has(e)?!1:(this._upstreamNodes.add(e),!0)}_onDisconnect(e){var t;return((t=this._upstreamNodes)==null?void 0:t.delete(e))??!1}}class KW extends ZW{constructor(e,t,i){super(t,i),this.onNameChangedObservable=new xe,this._name=e}get name(){return this._name}set name(e){if(this._name===e)return;const t=this._name;this._name=e,this.onNameChangedObservable.notifyObservers({newName:e,oldName:t,node:this})}dispose(){super.dispose(),this.onNameChangedObservable.clear()}}class qW extends KW{constructor(e,t){super(e,t,3)}connect(e){if(!this._connect(e))throw new Error("Connect failed")}disconnect(e){if(!this._disconnect(e))throw new Error("Disconnect failed")}disconnectAll(){if(!this._downstreamNodes)throw new Error("Disconnect failed");const e=this._downstreamNodes.values();for(let t=e.next();!t.done;t=e.next())if(!this._disconnect(t.value))throw new Error("Disconnect failed")}}const d2e={volume:1};class tNe extends qW{constructor(e){super("Volume",e)}setOptions(e){this.volume=e.volume??d2e.volume}}function VP(a){return a.getSubNode("Volume")}function f2e(a,e){var t;return((t=VP(a))==null?void 0:t[e])??d2e[e]}const GP={fftSize:2048,minDecibels:-100,maxDecibels:-30,smoothing:.8};function p2e(a){return a.analyzerEnabled||a.analyzerFFTSize!==void 0||a.analyzerMinDecibels!==void 0||a.analyzerMaxDecibels!==void 0||a.analyzerSmoothing!==void 0}class m2e{get frequencyBinCount(){return this.fftSize/2}}class iNe extends qW{constructor(e){super("Analyzer",e)}setOptions(e){this.fftSize=e.analyzerFFTSize??GP.fftSize,this.minDecibels=e.analyzerMinDecibels??GP.minDecibels,this.maxDecibels=e.analyzerMaxDecibels??GP.maxDecibels,this.smoothing=e.analyzerSmoothing??GP.smoothing}}function YT(a){return a.getSubNode("Analyzer")}function QW(a,e){var t;return((t=YT(a))==null?void 0:t[e])??GP[e]}function JW(a,e,t){a.callOnSubNode("Analyzer",i=>{i[e]=t})}let mq=null,gq=null;function g2e(){return mq||(mq=new Uint8Array),mq}function _2e(){return gq||(gq=new Float32Array),gq}class v2e extends m2e{constructor(e){super(),this._subGraph=e}get fftSize(){return QW(this._subGraph,"fftSize")}set fftSize(e){JW(this._subGraph,"fftSize",e)}get isEnabled(){return YT(this._subGraph)!==null}get minDecibels(){return QW(this._subGraph,"minDecibels")}set minDecibels(e){JW(this._subGraph,"minDecibels",e)}get maxDecibels(){return QW(this._subGraph,"maxDecibels")}set maxDecibels(e){JW(this._subGraph,"maxDecibels",e)}get smoothing(){return QW(this._subGraph,"smoothing")}set smoothing(e){JW(this._subGraph,"smoothing",e)}dispose(){const e=YT(this._subGraph);e&&(this._subGraph.removeSubNode(e),e.dispose())}async enableAsync(){return YT(this._subGraph)||await this._subGraph.createAndAddSubNode("Analyzer"),Promise.resolve()}getByteFrequencyData(){const e=YT(this._subGraph);return e?e.getByteFrequencyData():(de.Warn("AudioAnalyzer not enabled"),this.enableAsync(),g2e())}getFloatFrequencyData(){const e=YT(this._subGraph);return e?e.getFloatFrequencyData():(de.Warn("AudioAnalyzer not enabled"),this.enableAsync(),_2e())}}class _q extends KW{constructor(e,t){super(e,t,3),this._analyzer=null}get analyzer(){return this._analyzer??(this._analyzer=new v2e(this._subGraph))}get volume(){return f2e(this._subGraph,"volume")}set volume(e){const t=VP(this._subGraph);if(!t)throw new Error("No volume subnode");t.volume=e}dispose(){var e;super.dispose(),(e=this._analyzer)==null||e.dispose(),this._analyzer=null,this._subGraph.dispose()}}class vq extends KW{constructor(e,t){super(e,t,3),this._analyzer=null,this._newestInstance=null,this._outBus=null,this._privateInstances=new Set,this._state=1,this._instances=this._privateInstances,this.onEndedObservable=new xe,this._onInstanceEnded=i=>{this._newestInstance===i&&(this._newestInstance=null),this._privateInstances.delete(i),this._instances.size===0&&(this._state=1,this.onEndedObservable.notifyObservers(this))},this._onOutBusDisposed=()=>{this.outBus=null}}get analyzer(){return this._analyzer??(this._analyzer=new v2e(this._subGraph))}get autoplay(){return this._options.autoplay}get currentTime(){const e=this._getNewestInstance();return e?e.currentTime:0}set currentTime(e){this.startOffset=e;const t=this._getNewestInstance();t&&(t.currentTime=e)}get loop(){return this._options.loop}set loop(e){this._options.loop=e}get maxInstances(){return this._options.maxInstances}set maxInstances(e){this._options.maxInstances=e}get outBus(){return this._outBus}set outBus(e){if(this._outBus!==e){if(this._outBus&&(this._outBus.onDisposeObservable.removeCallback(this._onOutBusDisposed),!this._disconnect(this._outBus)))throw new Error("Disconnect failed");if(this._outBus=e,this._outBus&&(this._outBus.onDisposeObservable.add(this._onOutBusDisposed),!this._connect(this._outBus)))throw new Error("Connect failed")}}get startOffset(){return this._options.startOffset}set startOffset(e){this._options.startOffset=e}get state(){return this._state}get volume(){return f2e(this._subGraph,"volume")}set volume(e){const t=VP(this._subGraph);if(!t)throw new Error("No volume subnode");t.volume=e}dispose(){var e;super.dispose(),this.stop(),(e=this._analyzer)==null||e.dispose(),this._analyzer=null,this._newestInstance=null,this._outBus=null,this._privateInstances.clear(),this.onEndedObservable.clear()}pause(){const e=this._instances.values();for(let t=e.next();!t.done;t=e.next())t.value.pause();this._state=5}resume(){if(this._state!==5)return;const e=this._instances.values();for(let t=e.next();!t.done;t=e.next())t.value.resume();this._state=3}_beforePlay(e){if(this.state===5&&this._instances.size>0){this.resume();return}e.onEndedObservable.addOnce(this._onInstanceEnded),this._privateInstances.add(e),this._newestInstance=e}_afterPlay(e){this._state=e.state}_getNewestInstance(){if(this._instances.size===0)return null;if(!this._newestInstance){const e=this._instances.values();for(let t=e.next();!t.done;t=e.next())this._newestInstance=t.value}return this._newestInstance}_setState(e){this._state=e}_stopExcessInstances(){if(this.maxInstances<1/0){const e=Array.from(this._instances).filter(i=>i.state===3).length-this.maxInstances,t=this._instances.values();for(let i=0;i<e;i++)t.next().value.stop()}}}class A2e extends _q{constructor(e,t){super(e,t),this._outBus=null,this._onOutBusDisposed=()=>{this.outBus=this.engine.defaultMainBus}}get outBus(){return this._outBus}set outBus(e){if(this._outBus!==e){if(this._outBus&&(this._outBus.onDisposeObservable.removeCallback(this._onOutBusDisposed),!this._disconnect(this._outBus)))throw new Error("Disconnect failed");if(this._outBus=e,this._outBus&&(this._outBus.onDisposeObservable.add(this._onOutBusDisposed),!this._connect(this._outBus)))throw new Error("Connect failed")}}dispose(){super.dispose(),this._outBus=null}}const pL=[];function C2e(){return pL.length===0?null:pL[pL.length-1]}class x2e{constructor(e){this._mainBuses=new Set,this._nodes=new Set,this._defaultMainBus=null,this._parameterRampDuration=.01,pL.push(this),typeof e.parameterRampDuration=="number"&&(this.parameterRampDuration=e.parameterRampDuration)}get defaultMainBus(){return this._mainBuses.size===0?null:(this._defaultMainBus||(this._defaultMainBus=Array.from(this._mainBuses)[0]),this._defaultMainBus)}get parameterRampDuration(){return this._parameterRampDuration}set parameterRampDuration(e){this._parameterRampDuration=Math.max(0,e)}dispose(){pL.includes(this)&&pL.splice(pL.indexOf(this),1);const e=this._nodes.values();for(let t=e.next();!t.done;t=e.next())t.value.dispose();this._mainBuses.clear(),this._nodes.clear(),this._defaultMainBus=null}unlockAsync(){return this.resumeAsync()}_addMainBus(e){this._mainBuses.add(e),this._addNode(e)}_removeMainBus(e){this._mainBuses.delete(e),this._defaultMainBus=null,this._removeNode(e)}_addNode(e){this._nodes.add(e)}_removeNode(e){this._nodes.delete(e)}}function WP(a){if(a||(a=C2e()),a)return a;throw new Error("No audio engine.")}function sNe(a,e={},t=null){return t=WP(t),t.createBusAsync(a,e)}function rNe(a,e={},t=null){return t=WP(t),t.createMainBusAsync(a,e)}function nNe(a,e,t={},i=null){return i=WP(i),i.createSoundAsync(a,e,t)}async function aNe(a,e={},t=null){return t=WP(t),t.createSoundBufferAsync(a,e)}function oNe(a,e,t={},i=null){return i=WP(i),i.createStreamingSoundAsync(a,e,t)}class b2e extends _q{constructor(e,t){super(e,t)}}class S2e extends vq{constructor(e,t){super(e,t)}get duration(){return this._options.duration}set duration(e){this._options.duration=e}get loopStart(){return this._options.loopStart}set loopStart(e){this._options.loopStart=e}get loopEnd(){return this._options.loopEnd}set loopEnd(e){this._options.loopEnd=e}get pitch(){return this._options.pitch}set pitch(e){this._options.pitch=e;const t=this._instances.values();for(let i=t.next();!i.done;i=t.next())i.value.pitch=e}get playbackRate(){return this._options.playbackRate}set playbackRate(e){this._options.playbackRate=e;const t=this._instances.values();for(let i=t.next();!i.done;i=t.next())i.value.playbackRate=e}play(e={}){if(this.state===5){this.resume();return}e.duration??(e.duration=this.duration),e.loop??(e.loop=this.loop),e.loopStart??(e.loopStart=this.loopStart),e.loopEnd??(e.loopEnd=this.loopEnd),e.startOffset??(e.startOffset=this.startOffset),e.volume??(e.volume=1),e.waitTime??(e.waitTime=0);const t=this._createInstance();this._beforePlay(t),t.play(e),this._afterPlay(t),this._stopExcessInstances()}stop(e={}){if(e.waitTime&&0<e.waitTime?this._setState(0):this._setState(1),!!this._instances)for(const t of Array.from(this._instances))t.stop(e)}}class y2e{constructor(e){this.engine=e}}class M2e extends vq{constructor(e,t){super(e,t),this._preloadedInstances=new Array}get preloadCount(){return this._options.preloadCount??1}get preloadCompletedCount(){return this._preloadedInstances.length}preloadInstanceAsync(){const e=this._createInstance();return this._addPreloadedInstance(e),e.preloadedPromise}async preloadInstancesAsync(e){for(let t=0;t<e;t++)this.preloadInstanceAsync();await Promise.all(this._preloadedInstances.map(t=>t.preloadedPromise))}play(e={}){if(this.state===5){this.resume();return}let t;this.preloadCompletedCount>0?(t=this._preloadedInstances[0],t.startOffset=this.startOffset,this._removePreloadedInstance(t)):t=this._createInstance();const i=()=>{t.state===3&&(this._stopExcessInstances(),t.onStateChangedObservable.removeCallback(i))};t.onStateChangedObservable.add(i),e.startOffset??(e.startOffset=this.startOffset),e.loop??(e.loop=this.loop),e.volume??(e.volume=1),this._beforePlay(t),t.play(e),this._afterPlay(t)}stop(){if(this._setState(1),!!this._instances)for(const e of Array.from(this._instances))e.stop()}_addPreloadedInstance(e){this._preloadedInstances.includes(e)||this._preloadedInstances.push(e)}_removePreloadedInstance(e){const t=this._preloadedInstances.indexOf(e);t!==-1&&this._preloadedInstances.splice(t,1)}}const dd={coneInnerAngle:6.28318530718,coneOuterAngle:6.28318530718,coneOuterVolume:0,distanceModel:"linear",maxDistance:1e4,minDistance:1,panningModel:"equalpower",position:P.Zero(),rolloffFactor:1,rotation:P.Zero(),rotationQuaternion:new Re};function aB(a){return a.spatialEnabled||a.spatialAutoUpdate!==void 0||a.spatialConeInnerAngle!==void 0||a.spatialConeOuterAngle!==void 0||a.spatialConeOuterVolume!==void 0||a.spatialDistanceModel!==void 0||a.spatialMaxDistance!==void 0||a.spatialMinDistance!==void 0||a.spatialMinUpdateTime!==void 0||a.spatialPanningModel!==void 0||a.spatialPosition!==void 0||a.spatialRolloffFactor!==void 0||a.spatialRotation!==void 0||a.spatialRotationQuaternion!==void 0}class E2e{}const T2e={position:P.Zero(),rotation:P.Zero(),rotationQuaternion:new Re};function L2e(a){return a.listenerEnabled||a.listenerMinUpdateTime!==void 0||a.listenerPosition!==void 0||a.listenerRotation!==void 0||a.listenerRotationQuaternion!==void 0}class I2e{}const Aq={pan:0};function P2e(a){return a.stereoEnabled||a.stereoPan!==void 0}class O2e{}var Cq;(function(a){a[a.Stopping=0]="Stopping",a[a.Stopped=1]="Stopped",a[a.Starting=2]="Starting",a[a.Started=3]="Started",a[a.FailedToStart=4]="FailedToStart",a[a.Paused=5]="Paused"})(Cq||(Cq={}));var xq;(function(a){a[a.Position=1]="Position",a[a.Rotation=2]="Rotation",a[a.PositionAndRotation=3]="PositionAndRotation"})(xq||(xq={}));class lNe extends qW{constructor(e){super("Stereo",e)}setOptions(e){this.pan=e.stereoPan??Aq.pan}}function bq(a){return a.getSubNode("Stereo")}function cNe(a,e){var t;return((t=bq(a))==null?void 0:t[e])??Aq[e]}function uNe(a,e,t){a.callOnSubNode("Stereo",i=>{i[e]=t})}class Sq extends O2e{constructor(e){super(),this._subGraph=e}get pan(){return cNe(this._subGraph,"pan")}set pan(e){uNe(this._subGraph,"pan",e)}}class yq{constructor(e){this._attachmentType=3,this._position=new P,this._rotationQuaternion=new Re,this._sceneNode=null,this._useBoundingBox=!1,this.dispose=()=>{this.detach()},this._spatialAudioNode=e}get isAttached(){return this._sceneNode!==null}attach(e,t,i){this._sceneNode!==e&&(this.detach(),e&&(this._attachmentType=i,this._sceneNode=e,this._sceneNode.onDisposeObservable.add(this.dispose),this._useBoundingBox=t))}detach(){var e;(e=this._sceneNode)==null||e.onDisposeObservable.removeCallback(this.dispose),this._sceneNode=null}update(){var e,t;this._attachmentType&1&&(this._useBoundingBox&&this._sceneNode.getBoundingInfo?this._position.copyFrom(this._sceneNode.getBoundingInfo().boundingBox.centerWorld):(e=this._sceneNode)==null||e.getWorldMatrix().getTranslationToRef(this._position),this._spatialAudioNode.position.copyFrom(this._position),this._spatialAudioNode._updatePosition()),this._attachmentType&2&&((t=this._sceneNode)==null||t.getWorldMatrix().decompose(void 0,this._rotationQuaternion),this._spatialAudioNode.rotationQuaternion.copyFrom(this._rotationQuaternion),this._spatialAudioNode._updateRotation())}}class hNe extends qW{constructor(e){super("Spatial",e),this._attacherComponent=null}get isAttached(){return this._attacherComponent!==null&&this._attacherComponent.isAttached}attach(e,t,i){this.detach(),this._attacherComponent||(this._attacherComponent=new yq(this)),this._attacherComponent.attach(e,t,i)}detach(){var e;(e=this._attacherComponent)==null||e.detach()}dispose(){var e;super.dispose(),(e=this._attacherComponent)==null||e.dispose(),this._attacherComponent=null}setOptions(e){this.coneInnerAngle=e.spatialConeInnerAngle??dd.coneInnerAngle,this.coneOuterAngle=e.spatialConeOuterAngle??dd.coneOuterAngle,this.coneOuterVolume=e.spatialConeOuterVolume??dd.coneOuterVolume,this.distanceModel=e.spatialDistanceModel??dd.distanceModel,this.maxDistance=e.spatialMaxDistance??dd.maxDistance,this.minDistance=e.spatialMinDistance??dd.minDistance,this.panningModel=e.spatialPanningModel??dd.panningModel,this.rolloffFactor=e.spatialRolloffFactor??dd.rolloffFactor,e.spatialPosition&&(this.position=e.spatialPosition.clone()),e.spatialRotationQuaternion?this.rotationQuaternion=e.spatialRotationQuaternion.clone():e.spatialRotation?this.rotation=e.spatialRotation.clone():this.rotationQuaternion=dd.rotationQuaternion.clone(),this.update()}update(){var e;this.isAttached?(e=this._attacherComponent)==null||e.update():(this._updatePosition(),this._updateRotation())}}function Ny(a){return a.getSubNode("Spatial")}function XT(a,e){var t;return((t=Ny(a))==null?void 0:t[e])??dd[e]}function ZT(a,e,t){a.callOnSubNode("Spatial",i=>{i[e]=t})}const R2e=me.Zero(),Mq=new Re,$W=P.Zero();function D2e(a){return a*Math.PI/180}function N2e(a){return a*180/Math.PI}async function dNe(a){return new fNe(a)}class fNe extends hNe{constructor(e){super(e),this._lastPosition=P.Zero(),this._lastRotation=P.Zero(),this._lastRotationQuaternion=new Re,this.position=dd.position.clone(),this.rotation=dd.rotation.clone(),this.rotationQuaternion=dd.rotationQuaternion.clone(),this.node=new PannerNode(e._audioContext)}get coneInnerAngle(){return D2e(this.node.coneInnerAngle)}set coneInnerAngle(e){this.node.coneInnerAngle=N2e(e)}get coneOuterAngle(){return D2e(this.node.coneOuterAngle)}set coneOuterAngle(e){this.node.coneOuterAngle=N2e(e)}get coneOuterVolume(){return this.node.coneOuterGain}set coneOuterVolume(e){this.node.coneOuterGain=e}get distanceModel(){return this.node.distanceModel}set distanceModel(e){this.node.distanceModel=e;const t=this.node.maxDistance;this.node.maxDistance=t+.001,this.node.maxDistance=t}get minDistance(){return this.node.refDistance}set minDistance(e){this.node.refDistance=e}get maxDistance(){return this.node.maxDistance}set maxDistance(e){this.node.maxDistance=e}get panningModel(){return this.node.panningModel}set panningModel(e){this.node.panningModel=e}get rolloffFactor(){return this.node.rolloffFactor}set rolloffFactor(e){this.node.rolloffFactor=e}get _inNode(){return this.node}get _outNode(){return this.node}_updatePosition(){this._lastPosition.equalsWithEpsilon(this.position)||(this.engine._setAudioParam(this.node.positionX,this.position.x),this.engine._setAudioParam(this.node.positionY,this.position.y),this.engine._setAudioParam(this.node.positionZ,this.position.z),this._lastPosition.copyFrom(this.position))}_updateRotation(){if(!this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion))Mq.copyFrom(this.rotationQuaternion),this._lastRotationQuaternion.copyFrom(this.rotationQuaternion);else if(!this._lastRotation.equalsWithEpsilon(this.rotation))Re.FromEulerAnglesToRef(this.rotation.x,this.rotation.y,this.rotation.z,Mq),this._lastRotation.copyFrom(this.rotation);else return;me.FromQuaternionToRef(Mq,R2e),P.TransformNormalToRef(P.RightReadOnly,R2e,$W),this.engine._setAudioParam(this.node.orientationX,$W.x),this.engine._setAudioParam(this.node.orientationY,$W.y),this.engine._setAudioParam(this.node.orientationZ,$W.z)}_connect(e){return super._connect(e)?(e._inNode&&this.node.connect(e._inNode),!0):!1}_disconnect(e){return super._disconnect(e)?(e._inNode&&this.node.disconnect(e._inNode),!0):!1}getClassName(){return"_SpatialWebAudioSubNode"}}async function pNe(a){return new mNe(a)}class mNe extends lNe{constructor(e){super(e),this._pan=0,this.node=new StereoPannerNode(e._audioContext)}get pan(){return this._pan}set pan(e){this._pan=e,this.engine._setAudioParam(this.node.pan,e)}get _inNode(){return this.node}get _outNode(){return this.node}getClassName(){return"_StereoWebAudioSubNode"}_connect(e){return super._connect(e)?(e._inNode&&this.node.connect(e._inNode),!0):!1}_disconnect(e){return super._disconnect(e)?(e._inNode&&this.node.disconnect(e._inNode),!0):!1}}class gNe{constructor(){this._createSubNodePromises={},this._isDisposed=!1,this._subNodes={},this._onSubNodeDisposed=e=>{const t=e;delete this._subNodes[t.name],this._onSubNodesChanged()}}callOnSubNode(e,t){const i=this.getSubNode(e);if(i){t(i);return}this._createSubNodePromisesResolved().then(()=>{const s=this.getSubNode(e);if(s){t(s);return}this.createAndAddSubNode(e).then(r=>{t(r)})})}createAndAddSubNode(e){var t;return(t=this._createSubNodePromises)[e]||(t[e]=this._createSubNode(e).then(i=>(this._addSubNode(i),i))),this._createSubNodePromises[e]}dispose(){this._isDisposed=!0;const e=Object.values(this._subNodes);for(const t of e)t.dispose();this._subNodes={},this._createSubNodePromises={}}getSubNode(e){return this._subNodes[e]??null}async removeSubNode(e){await this._createSubNodePromisesResolved();const t=e.name;this._subNodes[t]&&delete this._subNodes[t],delete this._createSubNodePromises[t],this._onSubNodesChanged()}_createSubNodePromisesResolved(){return Promise.all(Object.values(this._createSubNodePromises))}_addSubNode(e){if(this._isDisposed){e.dispose();return}this._subNodes[e.name]=e,e.onDisposeObservable.addOnce(this._onSubNodeDisposed),this._onSubNodesChanged()}}async function _Ne(a){return new vNe(a)}class vNe extends tNe{constructor(e){super(e),this._volume=1,this.node=new GainNode(e._audioContext)}get volume(){return this._volume}set volume(e){this._volume=e,this.engine._setAudioParam(this.node.gain,e)}get _inNode(){return this.node}get _outNode(){return this.node}_connect(e){return super._connect(e)?(e._inNode&&this.node.connect(e._inNode),!0):!1}_disconnect(e){return super._disconnect(e)?(e._inNode&&this.node.disconnect(e._inNode),!0):!1}getClassName(){return"_VolumeWebAudioSubNode"}}async function ANe(a){return new CNe(a)}class CNe extends iNe{constructor(e){super(e),this._byteFrequencyData=null,this._floatFrequencyData=null,this._analyzerNode=new AnalyserNode(e._audioContext)}get fftSize(){return this._analyzerNode.fftSize}set fftSize(e){e!==this._analyzerNode.fftSize&&(this._analyzerNode.fftSize=e,this._clearArrays())}get _inNode(){return this._analyzerNode}get minDecibels(){return this._analyzerNode.minDecibels}set minDecibels(e){this._analyzerNode.minDecibels=e}get maxDecibels(){return this._analyzerNode.maxDecibels}set maxDecibels(e){this._analyzerNode.maxDecibels=e}get smoothing(){return this._analyzerNode.smoothingTimeConstant}set smoothing(e){this._analyzerNode.smoothingTimeConstant=e}dispose(){super.dispose(),this._clearArrays(),this._byteFrequencyData=null,this._floatFrequencyData=null,this._analyzerNode.disconnect()}getClassName(){return"_WebAudioAnalyzerSubNode"}getByteFrequencyData(){return(!this._byteFrequencyData||this._byteFrequencyData.length===0)&&(this._byteFrequencyData=new Uint8Array(this._analyzerNode.frequencyBinCount)),this._analyzerNode.getByteFrequencyData(this._byteFrequencyData),this._byteFrequencyData}getFloatFrequencyData(){return(!this._floatFrequencyData||this._floatFrequencyData.length===0)&&(this._floatFrequencyData=new Float32Array(this._analyzerNode.frequencyBinCount)),this._analyzerNode.getFloatFrequencyData(this._floatFrequencyData),this._floatFrequencyData}_clearArrays(){var e,t;(e=this._byteFrequencyData)==null||e.set(g2e()),(t=this._floatFrequencyData)==null||t.set(_2e())}}class w2e extends gNe{constructor(e){super(),this._outputNode=null,this._owner=e}async init(e){const t=p2e(e);if(t&&await this.createAndAddSubNode("Analyzer"),await this.createAndAddSubNode("Volume"),await this._createSubNodePromisesResolved(),t){const s=YT(this);if(!s)throw new Error("No analyzer subnode.");s.setOptions(e)}const i=VP(this);if(!i)throw new Error("No volume subnode.");if(i.setOptions(e),i.getClassName()!=="_VolumeWebAudioSubNode")throw new Error("Not a WebAudio subnode.");if(this._outputNode=i.node,this._outputNode&&this._downstreamNodes){const s=this._downstreamNodes.values();for(let r=s.next();!r.done;r=s.next()){const n=r.value._inNode;n&&this._outputNode.connect(n)}}}get _inNode(){return this._outputNode}get _outNode(){return this._outputNode}_createSubNode(e){switch(e){case"Analyzer":return ANe(this._owner.engine);case"Volume":return _Ne(this._owner.engine);default:throw new Error(`Unknown subnode name: ${e}`)}}_onSubNodesChanged(){const e=YT(this),t=VP(this);e&&t&&t.connect(e)}}class Eq extends w2e{constructor(){super(...arguments),this._rootNode=null,this._inputNode=null}async init(e){var s,r;await super.init(e);let t=!1,i=!1;(t=aB(e))&&await this.createAndAddSubNode("Spatial"),(i=P2e(e))&&await this.createAndAddSubNode("Stereo"),await this._createSubNodePromisesResolved(),t&&((s=Ny(this))==null||s.setOptions(e)),i&&((r=bq(this))==null||r.setOptions(e))}get _inNode(){return this._inputNode}_createSubNode(e){try{return super._createSubNode(e)}catch{}switch(e){case"Spatial":return dNe(this._owner.engine);case"Stereo":return pNe(this._owner.engine);default:throw new Error(`Unknown subnode name: ${e}`)}}_onSubNodesChanged(){var n,o,l;super._onSubNodesChanged();const e=Ny(this),t=bq(this),i=VP(this);if(e&&e.getClassName()!=="_SpatialWebAudioSubNode")throw new Error("Not a WebAudio subnode.");if(t&&t.getClassName()!=="_StereoWebAudioSubNode")throw new Error("Not a WebAudio subnode.");if(i&&i.getClassName()!=="_VolumeWebAudioSubNode")throw new Error("Not a WebAudio subnode.");e&&(e.disconnectAll(),i&&e.connect(i)),t&&(t.disconnectAll(),i&&t.connect(i)),e&&t?(this._rootNode=new GainNode(this._owner.engine._audioContext),this._rootNode.connect(e._outNode),this._rootNode.connect(t._outNode)):((n=this._rootNode)==null||n.disconnect(),this._rootNode=null);let s=null,r=null;if(this._rootNode?r=this._rootNode:(e?s=e:t?s=t:i&&(s=i),r=(s==null?void 0:s.node)??null),this._inputNode!==r){if(this._inputNode&&this._upstreamNodes){const c=this._upstreamNodes.values();for(let u=c.next();!u.done;u=c.next())(o=u.value._outNode)==null||o.disconnect(this._inputNode)}if(this._inputNode=r,r&&this._upstreamNodes){const c=this._upstreamNodes.values();for(let u=c.next();!u.done;u=c.next())(l=u.value._outNode)==null||l.connect(r)}}}}class xNe extends E2e{constructor(e){super();const t=Ny(e);t?(this._position=t.position.clone(),this._rotation=t.rotation.clone(),this._rotationQuaternion=t.rotationQuaternion.clone()):(this._position=dd.position.clone(),this._rotation=dd.rotation.clone(),this._rotationQuaternion=dd.rotationQuaternion.clone(),e.createAndAddSubNode("Spatial")),this._subGraph=e}get coneInnerAngle(){return XT(this._subGraph,"coneInnerAngle")??dd.coneInnerAngle}set coneInnerAngle(e){ZT(this._subGraph,"coneInnerAngle",e)}get coneOuterAngle(){return XT(this._subGraph,"coneOuterAngle")}set coneOuterAngle(e){ZT(this._subGraph,"coneOuterAngle",e)}get coneOuterVolume(){return XT(this._subGraph,"coneOuterVolume")}set coneOuterVolume(e){ZT(this._subGraph,"coneOuterVolume",e)}get distanceModel(){return XT(this._subGraph,"distanceModel")}set distanceModel(e){ZT(this._subGraph,"distanceModel",e)}get isAttached(){var e;return((e=this._subGraph.getSubNode("Spatial"))==null?void 0:e.isAttached)??!1}get maxDistance(){return XT(this._subGraph,"maxDistance")??dd.maxDistance}set maxDistance(e){e<=0&&(e=1e-6),ZT(this._subGraph,"maxDistance",e)}get minDistance(){return XT(this._subGraph,"minDistance")}set minDistance(e){ZT(this._subGraph,"minDistance",e)}get panningModel(){return XT(this._subGraph,"panningModel")}set panningModel(e){ZT(this._subGraph,"panningModel",e)}get position(){return this._position}set position(e){this._position=e,this._updatePosition()}get rolloffFactor(){return XT(this._subGraph,"rolloffFactor")}set rolloffFactor(e){ZT(this._subGraph,"rolloffFactor",e)}get rotation(){return this._rotation}set rotation(e){this._rotation=e,this._updateRotation()}get rotationQuaternion(){return this._rotationQuaternion}set rotationQuaternion(e){this._rotationQuaternion=e,this._updateRotation()}attach(e,t=!1,i=3){var s;(s=Ny(this._subGraph))==null||s.attach(e,t,i)}detach(){var e;(e=Ny(this._subGraph))==null||e.detach()}update(){const e=Ny(this._subGraph);e&&(e.isAttached?e.update():(this._updatePosition(e),this._updateRotation(e)))}_updatePosition(e=null){if(!e&&(e=Ny(this._subGraph),!e))return;e.position.equalsWithEpsilon(this._position)||(e.position.copyFrom(this._position),e._updatePosition())}_updateRotation(e=null){!e&&(e=Ny(this._subGraph),!e)||(e.rotationQuaternion.equalsWithEpsilon(this._rotationQuaternion)?e.rotation.equalsWithEpsilon(this._rotation)||(e.rotation.copyFrom(this._rotation),e._updateRotation()):(e.rotationQuaternion.copyFrom(this._rotationQuaternion),e._updateRotation()))}}class B2e{constructor(e,t,i){if(this._autoUpdate=!0,this._lastUpdateTime=0,this.minUpdateTime=0,!t)return;this.minUpdateTime=i;const s=()=>{if(!this._autoUpdate)return;let r=!1;if(0<this.minUpdateTime){const n=lr.Now;this._lastUpdateTime&&n-this._lastUpdateTime<this.minUpdateTime&&(r=!0),this._lastUpdateTime=n}r||e.update(),requestAnimationFrame(s)};requestAnimationFrame(s)}dispose(){this._autoUpdate=!1}}class Tq extends xNe{constructor(e,t,i){super(e),this._updaterComponent=new B2e(this,t,i)}get minUpdateTime(){return this._updaterComponent.minUpdateTime}set minUpdateTime(e){this._updaterComponent.minUpdateTime=e}dispose(){this._updaterComponent.dispose(),this._updaterComponent=null}}class oB extends A2e{constructor(e,t,i){super(e,t),this._spatial=null,this._spatialAutoUpdate=!0,this._spatialMinUpdateTime=0,this._stereo=null,typeof i.spatialAutoUpdate=="boolean"&&(this._spatialAutoUpdate=i.spatialAutoUpdate),typeof i.spatialMinUpdateTime=="number"&&(this._spatialMinUpdateTime=i.spatialMinUpdateTime),this._subGraph=new oB._SubGraph(this)}async _init(e){e.outBus?this.outBus=e.outBus:(await this.engine.isReadyPromise,this.outBus=this.engine.defaultMainBus),await this._subGraph.init(e),aB(e)&&this._initSpatialProperty(),this.engine._addNode(this)}dispose(){super.dispose(),this._spatial=null,this._stereo=null,this.engine._removeNode(this)}get _inNode(){return this._subGraph._inNode}get _outNode(){return this._subGraph._outNode}get spatial(){return this._spatial?this._spatial:this._initSpatialProperty()}get stereo(){return this._stereo??(this._stereo=new Sq(this._subGraph))}getClassName(){return"_WebAudioBus"}_connect(e){var i;return super._connect(e)?(e._inNode&&((i=this._outNode)==null||i.connect(e._inNode)),!0):!1}_disconnect(e){var i;return super._disconnect(e)?(e._inNode&&((i=this._outNode)==null||i.disconnect(e._inNode)),!0):!1}_initSpatialProperty(){return this._spatial||(this._spatial=new Tq(this._subGraph,this._spatialAutoUpdate,this._spatialMinUpdateTime)),this._spatial}}oB._SubGraph=class extends Eq{get _downstreamNodes(){return this._owner._downstreamNodes??null}get _upstreamNodes(){return this._owner._upstreamNodes??null}};const bNe=Object.freeze(Object.defineProperty({__proto__:null,_WebAudioBus:oB},Symbol.toStringTag,{value:"Module"}));class SNe extends I2e{constructor(){super(),this._attacherComponent=null,this._attacherComponent=new yq(this)}get isAttached(){return this._attacherComponent!==null&&this._attacherComponent.isAttached}attach(e,t=!1,i=3){this._attacherComponent||(this._attacherComponent=new yq(this)),this._attacherComponent.attach(e,t,i)}detach(){var e;(e=this._attacherComponent)==null||e.detach()}dispose(){var e;(e=this._attacherComponent)==null||e.dispose(),this._attacherComponent=null}setOptions(e){e.listenerMinUpdateTime!==void 0&&(this.minUpdateTime=e.listenerMinUpdateTime),e.listenerPosition&&(this.position=e.listenerPosition.clone()),e.listenerRotationQuaternion?this.rotationQuaternion=e.listenerRotationQuaternion.clone():e.listenerRotation?this.rotation=e.listenerRotation.clone():this.rotationQuaternion=T2e.rotationQuaternion.clone(),this.update()}}const Lq=me.Zero(),Iq=new Re,KT=P.Zero();function z2e(a,e,t){return new yNe(a,e,t)}class yNe extends SNe{constructor(e,t,i){super(),this._lastPosition=P.Zero(),this._lastRotation=P.Zero(),this._lastRotationQuaternion=new Re,this.position=P.Zero(),this.rotation=P.Zero(),this.rotationQuaternion=new Re,this.engine=e,this._audioContext=e._audioContext,this._updaterComponent=new B2e(this,t,i)}get minUpdateTime(){return this._updaterComponent.minUpdateTime}set minUpdateTime(e){this._updaterComponent.minUpdateTime=e}dispose(){super.dispose(),this._updaterComponent.dispose(),this._updaterComponent=null}update(){var e;this.isAttached?(e=this._attacherComponent)==null||e.update():(this._updatePosition(),this._updateRotation())}_updatePosition(){if(this._lastPosition.equalsWithEpsilon(this.position))return;const e=this._audioContext.listener;this.engine._setAudioParam(e.positionX,this.position.x),this.engine._setAudioParam(e.positionY,this.position.y),this.engine._setAudioParam(e.positionZ,this.position.z),this._lastPosition.copyFrom(this.position)}_updateRotation(){if(!this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion))Iq.copyFrom(this.rotationQuaternion),this._lastRotationQuaternion.copyFrom(this.rotationQuaternion);else if(!this._lastRotation.equalsWithEpsilon(this.rotation))Re.FromEulerAnglesToRef(this.rotation.x,this.rotation.y,this.rotation.z,Iq),this._lastRotation.copyFrom(this.rotation);else return;me.FromQuaternionToRef(Iq,Lq);const e=this._audioContext.listener;P.TransformNormalToRef(P.RightHandedForwardReadOnly,Lq,KT),this.engine._setAudioParam(e.forwardX,KT.x),this.engine._setAudioParam(e.forwardY,KT.y),this.engine._setAudioParam(e.forwardZ,KT.z),P.TransformNormalToRef(P.Up(),Lq,KT),this.engine._setAudioParam(e.upX,KT.x),this.engine._setAudioParam(e.upY,KT.y),this.engine._setAudioParam(e.upZ,KT.z)}}class MNe extends ZW{constructor(e){super(e,1)}}class ENe extends MNe{constructor(e){super(e),this._volume=1;const t=e._audioContext;this._gainNode=new GainNode(t),this._destinationNode=t.destination,this._gainNode.connect(this._destinationNode)}get _inNode(){return this._gainNode}get volume(){return this._volume}set volume(e){this._volume=e,this.engine._setAudioParam(this._gainNode.gain,e)}dispose(){super.dispose(),this._gainNode.disconnect(),this._destinationNode.disconnect()}getClassName(){return"_WebAudioMainOut"}}class TNe{constructor(e,t){var r,n;this._button=null,this._style=null,this._onStateChanged=()=>{this._button&&(this._engine.state==="running"?this._button.style.display="none":this._button.style.display="block")},this._engine=e;const i=t||((n=(r=ei.LastCreatedEngine)==null?void 0:r.getInputElement())==null?void 0:n.parentElement)||document.body,s=((i==null?void 0:i.offsetTop)||0)+20;this._style=document.createElement("style"),this._style.appendChild(document.createTextNode(`.babylonUnmute{position:absolute;top:${s}px;margin-left:20px;height:40px;width:60px;background-color:rgba(51,51,51,0.7);background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2239%22%20height%3D%2232%22%20viewBox%3D%220%200%2039%2032%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M9.625%2018.938l-0.031%200.016h-4.953q-0.016%200-0.031-0.016v-12.453q0-0.016%200.031-0.016h4.953q0.031%200%200.031%200.016v12.453zM12.125%207.688l8.719-8.703v27.453l-8.719-8.719-0.016-0.047v-9.938zM23.359%207.875l1.406-1.406%204.219%204.203%204.203-4.203%201.422%201.406-4.219%204.219%204.219%204.203-1.484%201.359-4.141-4.156-4.219%204.219-1.406-1.422%204.219-4.203z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");background-size:80%;background-repeat:no-repeat;background-position:center;background-position-y:4px;border:none;outline:none;transition:transform 0.125s ease-out;cursor:pointer;z-index:9999;}.babylonUnmute:hover{transform:scale(1.05)}`)),document.head.appendChild(this._style),this._button=document.createElement("button"),this._button.className="babylonUnmute",this._button.id="babylonUnmuteButton",this._button.addEventListener("click",()=>{this._engine.unlockAsync()}),i.appendChild(this._button),this._engine.stateChangedObservable.add(this._onStateChanged)}dispose(){var e,t;(e=this._button)==null||e.remove(),this._button=null,(t=this._style)==null||t.remove(),this._style=null,this._engine.stateChangedObservable.removeCallback(this._onStateChanged)}}async function LNe(a={}){const e=new F2e(a);return await e._init(a),e}const INe={aac:"audio/aac",ac3:"audio/ac3",flac:"audio/flac",m4a:"audio/mp4",mp3:'audio/mpeg; codecs="mp3"',mp4:"audio/mp4",ogg:'audio/ogg; codecs="vorbis"',wav:"audio/wav",webm:'audio/webm; codecs="vorbis"'};class F2e extends x2e{constructor(e={}){super(e),this._audioContextStarted=!1,this._invalidFormats=new Set,this._listener=null,this._pauseCalled=!1,this._resumeOnInteraction=!0,this._resumeOnPause=!0,this._resumeOnPauseRetryInterval=1e3,this._resumeOnPauseTimerId=null,this._resumePromise=null,this._listenerAutoUpdate=!0,this._listenerMinUpdateTime=0,this._unmuteUI=null,this._validFormats=new Set,this._volume=1,this.isReadyPromise=new Promise(t=>{this._resolveIsReadyPromise=t}),this.stateChangedObservable=new xe,this.userGestureObservable=new xe,this._initAudioContext=async()=>{this._audioContext.addEventListener("statechange",this._onAudioContextStateChange),this._mainOut=new ENe(this),this._mainOut.volume=this._volume,await this.createMainBusAsync("default")},this._onAudioContextStateChange=()=>{this.state==="running"&&(clearInterval(this._resumeOnPauseTimerId),this._audioContextStarted=!0,this._resumePromise=null),(this.state==="suspended"||this.state==="interrupted")&&this._audioContextStarted&&this._resumeOnPause&&!this._pauseCalled&&(clearInterval(this._resumeOnPauseTimerId),this._resumeOnPauseTimerId=setInterval(()=>{this.resumeAsync()},this._resumeOnPauseRetryInterval)),this.stateChangedObservable.notifyObservers(this.state)},this._onUserGesture=async()=>{this._resumeOnInteraction&&await this._audioContext.resume(),this.userGestureObservable.notifyObservers()},typeof e.listenerAutoUpdate=="boolean"&&(this._listenerAutoUpdate=e.listenerAutoUpdate),typeof e.listenerMinUpdateTime=="number"&&(this._listenerMinUpdateTime=e.listenerMinUpdateTime),this._volume=e.volume??1,this._audioContext=e.audioContext??new AudioContext,e.disableDefaultUI||(this._unmuteUI=new TNe(this,e.defaultUIParentElement))}async _init(e){this._resumeOnInteraction=typeof e.resumeOnInteraction=="boolean"?e.resumeOnInteraction:!0,this._resumeOnPause=typeof e.resumeOnPause=="boolean"?e.resumeOnPause:!0,this._resumeOnPauseRetryInterval=e.resumeOnPauseRetryInterval??1e3,document.addEventListener("click",this._onUserGesture),await this._initAudioContext(),L2e(e)&&(this._listener=z2e(this,this._listenerAutoUpdate,this._listenerMinUpdateTime),this._listener.setOptions(e)),this._resolveIsReadyPromise()}get currentTime(){return this._audioContext.currentTime??0}get _inNode(){return this._audioContext.destination}get mainOut(){return this._mainOut}get listener(){return this._listener??(this._listener=z2e(this,this._listenerAutoUpdate,this._listenerMinUpdateTime))}get state(){return this._audioContext.state}get volume(){return this._volume}set volume(e){this._volume!==e&&(this._volume=e,this._mainOut&&(this._mainOut.volume=e))}async createBusAsync(e,t={}){const i=await Promise.resolve().then(()=>bNe),s=new i._WebAudioBus(e,this,t);return await s._init(t),s}async createMainBusAsync(e,t={}){const i=await Promise.resolve().then(()=>PNe),s=new i._WebAudioMainBus(e,this);return await s._init(t),s}async createSoundAsync(e,t,i={}){const s=await Promise.resolve().then(()=>U2e),r=new s._WebAudioStaticSound(e,this,i);return await r._init(t,i),r}async createSoundBufferAsync(e,t={}){const i=await Promise.resolve().then(()=>U2e),s=new i._WebAudioStaticSoundBuffer(this);return await s._init(e,t),s}async createStreamingSoundAsync(e,t,i={}){const s=await Promise.resolve().then(()=>BNe),r=new s._WebAudioStreamingSound(e,this,i);return await r._init(t,i),r}dispose(){var e,t;super.dispose(),(e=this._listener)==null||e.dispose(),this._listener=null,this._audioContext.state!=="closed"&&this._audioContext.close(),document.removeEventListener("click",this._onUserGesture),this._audioContext.removeEventListener("statechange",this._onAudioContextStateChange),(t=this._unmuteUI)==null||t.dispose(),this._unmuteUI=null}flagInvalidFormat(e){this._invalidFormats.add(e)}isFormatValid(e){if(this._validFormats.has(e))return!0;if(this._invalidFormats.has(e))return!1;const t=INe[e];return t===void 0?!1:new Audio().canPlayType(t)===""?(this._invalidFormats.add(e),!1):(this._validFormats.add(e),!0)}async pauseAsync(){await this._audioContext.suspend(),this._pauseCalled=!0}resumeAsync(){return this._pauseCalled=!1,this._resumePromise?this._resumePromise:(this._resumePromise=this._audioContext.resume(),this._resumePromise)}_addMainBus(e){super._addMainBus(e)}_removeMainBus(e){super._removeMainBus(e)}_addNode(e){super._addNode(e)}_removeNode(e){super._removeNode(e)}_setAudioParam(e,t){e.linearRampToValueAtTime(t,this.currentTime+this.parameterRampDuration)}}class lB extends b2e{constructor(e,t){super(e,t),this._subGraph=new lB._SubGraph(this)}async _init(e){if(await this._subGraph.init(e),this.engine.mainOut&&!this._connect(this.engine.mainOut))throw new Error("Connect failed");this.engine._addMainBus(this)}dispose(){super.dispose(),this.engine._removeMainBus(this)}get _inNode(){return this._subGraph._inNode}get _outNode(){return this._subGraph._outNode}_connect(e){var i;return super._connect(e)?(e._inNode&&((i=this._outNode)==null||i.connect(e._inNode)),!0):!1}_disconnect(e){var i;return super._disconnect(e)?(e._inNode&&((i=this._outNode)==null||i.disconnect(e._inNode)),!0):!1}getClassName(){return"_WebAudioMainBus"}}lB._SubGraph=class extends w2e{get _downstreamNodes(){return this._owner._downstreamNodes??null}};const PNe=Object.freeze(Object.defineProperty({__proto__:null,_WebAudioMainBus:lB},Symbol.toStringTag,{value:"Module"}));class k2e extends ZW{constructor(e){super(e.engine,2),this._state=1,this.onEndedObservable=new xe,this.onErrorObservable=new xe,this.onStateChangedObservable=new xe,this._sound=e}get state(){return this._state}dispose(){super.dispose(),this.stop(),this.onEndedObservable.clear(),this.onStateChangedObservable.clear()}_setState(e){this._state!==e&&(this._state=e,this.onStateChangedObservable.notifyObservers(this))}}class ONe extends k2e{}const RNe=new RegExp("\\.(\\w{3,4})($|\\?)");function Pq(a){return a.replace(/#/gm,"%23")}class mL extends S2e{constructor(e,t,i){super(e,t),this._spatial=null,this._spatialAutoUpdate=!0,this._spatialMinUpdateTime=0,this._stereo=null,typeof i.spatialAutoUpdate=="boolean"&&(this._spatialAutoUpdate=i.spatialAutoUpdate),typeof i.spatialMinUpdateTime=="number"&&(this._spatialMinUpdateTime=i.spatialMinUpdateTime),this._options={autoplay:i.autoplay??!1,duration:i.duration??0,loop:i.loop??!1,loopEnd:i.loopEnd??0,loopStart:i.loopStart??0,maxInstances:i.maxInstances??1/0,pitch:i.pitch??0,playbackRate:i.playbackRate??1,startOffset:i.startOffset??0},this._subGraph=new mL._SubGraph(this)}async _init(e,t){this._audioContext=this.engine._audioContext,e instanceof Oq?this._buffer=e:(typeof e=="string"||Array.isArray(e)||e instanceof ArrayBuffer||e instanceof AudioBuffer)&&(this._buffer=await this.engine.createSoundBufferAsync(e,t)),t.outBus?this.outBus=t.outBus:(await this.engine.isReadyPromise,this.outBus=this.engine.defaultMainBus),await this._subGraph.init(t),aB(t)&&this._initSpatialProperty(),t.autoplay&&this.play(),this.engine._addNode(this)}get buffer(){return this._buffer}get _inNode(){return this._subGraph._inNode}get _outNode(){return this._subGraph._outNode}get spatial(){return this._spatial?this._spatial:this._initSpatialProperty()}get stereo(){return this._stereo??(this._stereo=new Sq(this._subGraph))}dispose(){var e;super.dispose(),(e=this._spatial)==null||e.dispose(),this._spatial=null,this._stereo=null,this._subGraph.dispose(),this.engine._removeNode(this)}getClassName(){return"_WebAudioStaticSound"}_createInstance(){return new DNe(this,this._options)}_connect(e){var i;return super._connect(e)?(e._inNode&&((i=this._outNode)==null||i.connect(e._inNode)),!0):!1}_disconnect(e){var i;return super._disconnect(e)?(e._inNode&&((i=this._outNode)==null||i.disconnect(e._inNode)),!0):!1}_initSpatialProperty(){return this._spatial||(this._spatial=new Tq(this._subGraph,this._spatialAutoUpdate,this._spatialMinUpdateTime)),this._spatial}}mL._SubGraph=class extends Eq{get _downstreamNodes(){return this._owner._downstreamNodes??null}get _upstreamNodes(){return this._owner._upstreamNodes??null}};class Oq extends y2e{constructor(e){super(e)}async _init(e,t){e instanceof AudioBuffer?this._audioBuffer=e:typeof e=="string"?await this._initFromUrl(e):Array.isArray(e)?await this._initFromUrls(e,t.skipCodecCheck??!1):e instanceof ArrayBuffer&&await this._initFromArrayBuffer(e)}get channelCount(){return this._audioBuffer.numberOfChannels}get duration(){return this._audioBuffer.duration}get length(){return this._audioBuffer.length}get sampleRate(){return this._audioBuffer.sampleRate}async _initFromArrayBuffer(e){this._audioBuffer=await this.engine._audioContext.decodeAudioData(e)}async _initFromUrl(e){e=Pq(e),await this._initFromArrayBuffer(await(await fetch(e)).arrayBuffer())}async _initFromUrls(e,t){for(const i of e){if(t)await this._initFromUrl(i);else{const s=i.match(RNe),r=s==null?void 0:s.at(1);if(r&&this.engine.isFormatValid(r))try{await this._initFromUrl(i)}catch{r&&0<r.length&&this.engine.flagInvalidFormat(r)}}if(this._audioBuffer)break}}}class DNe extends ONe{constructor(e,t){super(e),this._enginePlayTime=0,this._enginePauseTime=0,this._sourceNode=null,this._onEnded=()=>{this._enginePlayTime=0,this.onEndedObservable.notifyObservers(this),this._deinitSourceNode()},this._onEngineStateChanged=()=>{this.engine.state==="running"&&(this._options.loop&&this.state===2&&this.play(),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged))},this._options=t,this._volumeNode=new GainNode(e._audioContext),this._initSourceNode()}get currentTime(){if(this._state===1)return 0;const e=this._state===5?0:this.engine.currentTime-this._enginePlayTime;return this._enginePauseTime+e+this._options.startOffset}set currentTime(e){const t=this._state===2||this._state===3;t&&(this.stop(),this._deinitSourceNode()),this._options.startOffset=e,t&&this.play()}get _outNode(){return this._volumeNode}set pitch(e){this._sourceNode&&this.engine._setAudioParam(this._sourceNode.detune,e)}set playbackRate(e){this._sourceNode&&this.engine._setAudioParam(this._sourceNode.playbackRate,e)}get startTime(){return this._state===1?0:this._enginePlayTime}dispose(){super.dispose(),this._sourceNode=null,this.stop(),this._deinitSourceNode(),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged)}getClassName(){return"_WebAudioStaticSoundInstance"}play(e={}){var i;if(this._state===3)return;e.duration!==void 0&&(this._options.duration=e.duration),e.loop!==void 0&&(this._options.loop=e.loop),e.loopStart!==void 0&&(this._options.loopStart=e.loopStart),e.loopEnd!==void 0&&(this._options.loopEnd=e.loopEnd),e.startOffset!==void 0&&(this._options.startOffset=e.startOffset);let t=this._options.startOffset;this._state===5&&(t+=this.currentTime,t%=this._sound.buffer.duration),this._enginePlayTime=this.engine.currentTime+(e.waitTime??0),this._volumeNode.gain.value=e.volume??1,this._initSourceNode(),this.engine.state==="running"?(this._setState(3),(i=this._sourceNode)==null||i.start(this._enginePlayTime,t,this._options.duration>0?this._options.duration:void 0)):this._options.loop&&(this._setState(2),this.engine.stateChangedObservable.add(this._onEngineStateChanged))}pause(){var e;this._state!==5&&(this._setState(5),this._enginePauseTime+=this.engine.currentTime-this._enginePlayTime,(e=this._sourceNode)==null||e.stop(),this._deinitSourceNode())}resume(){this._state===5&&this.play()}stop(e={}){var i;if(this._state===1)return;this._setState(1);const t=this.engine.currentTime+(e.waitTime??0);(i=this._sourceNode)==null||i.stop(t),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged)}_connect(e){var i;return super._connect(e)?(e instanceof mL&&e._inNode&&((i=this._outNode)==null||i.connect(e._inNode)),!0):!1}_disconnect(e){var i;return super._disconnect(e)?(e instanceof mL&&e._inNode&&((i=this._outNode)==null||i.disconnect(e._inNode)),!0):!1}_deinitSourceNode(){if(this._sourceNode){if(!this._disconnect(this._sound))throw new Error("Disconnect failed");this._sourceNode.disconnect(this._volumeNode),this._sourceNode.removeEventListener("ended",this._onEnded),this._sourceNode=null}}_initSourceNode(){if(!this._sourceNode&&(this._sourceNode=new AudioBufferSourceNode(this._sound._audioContext,{buffer:this._sound.buffer._audioBuffer}),this._sourceNode.addEventListener("ended",this._onEnded,{once:!0}),this._sourceNode.connect(this._volumeNode),!this._connect(this._sound)))throw new Error("Connect failed");const e=this._sourceNode;e.detune.value=this._sound.pitch,e.loop=this._options.loop,e.loopEnd=this._options.loopEnd,e.loopStart=this._options.loopStart,e.playbackRate.value=this._sound.playbackRate}}const U2e=Object.freeze(Object.defineProperty({__proto__:null,_WebAudioStaticSound:mL,_WebAudioStaticSoundBuffer:Oq},Symbol.toStringTag,{value:"Module"}));class NNe extends k2e{constructor(e){super(e),this.onReadyObservable=new xe,this.preloadedPromise=new Promise((t,i)=>{this._rejectPreloadedProimse=i,this._resolvePreloadedPromise=t}),this.onErrorObservable.add(this._rejectPreloadedProimse),this.onReadyObservable.add(this._resolvePreloadedPromise)}set startOffset(e){this._options.startOffset=e}dispose(){super.dispose(),this.onErrorObservable.clear(),this.onReadyObservable.clear(),this._resolvePreloadedPromise()}}class gL extends M2e{constructor(e,t,i){super(e,t),this._spatial=null,this._spatialAutoUpdate=!0,this._spatialMinUpdateTime=0,this._stereo=null,typeof i.spatialAutoUpdate=="boolean"&&(this._spatialAutoUpdate=i.spatialAutoUpdate),typeof i.spatialMinUpdateTime=="number"&&(this._spatialMinUpdateTime=i.spatialMinUpdateTime),this._options={autoplay:i.autoplay??!1,loop:i.loop??!1,maxInstances:i.maxInstances??1/0,preloadCount:i.preloadCount??1,startOffset:i.startOffset??0},this._subGraph=new gL._SubGraph(this)}async _init(e,t){const i=this.engine._audioContext;if(!(i instanceof AudioContext))throw new Error("Unsupported audio context type.");this._audioContext=i,this._source=e,t.outBus?this.outBus=t.outBus:(await this.engine.isReadyPromise,this.outBus=this.engine.defaultMainBus),await this._subGraph.init(t),aB(t)&&this._initSpatialProperty(),this.preloadCount&&await this.preloadInstancesAsync(this.preloadCount),t.autoplay&&this.play(t),this.engine._addNode(this)}get _inNode(){return this._subGraph._inNode}get _outNode(){return this._subGraph._outNode}get spatial(){return this._spatial?this._spatial:this._initSpatialProperty()}get stereo(){return this._stereo??(this._stereo=new Sq(this._subGraph))}dispose(){super.dispose(),this._spatial=null,this._stereo=null,this._subGraph.dispose(),this.engine._removeNode(this)}getClassName(){return"_WebAudioStreamingSound"}_createInstance(){return new wNe(this,this._options)}_connect(e){var i;return super._connect(e)?(e._inNode&&((i=this._outNode)==null||i.connect(e._inNode)),!0):!1}_disconnect(e){var i;return super._disconnect(e)?(e._inNode&&((i=this._outNode)==null||i.disconnect(e._inNode)),!0):!1}_initSpatialProperty(){return this._spatial||(this._spatial=new Tq(this._subGraph,this._spatialAutoUpdate,this._spatialMinUpdateTime)),this._spatial}}gL._SubGraph=class extends Eq{get _downstreamNodes(){return this._owner._downstreamNodes??null}get _upstreamNodes(){return this._owner._upstreamNodes??null}};class wNe extends NNe{constructor(e,t){super(e),this._currentTimeChangedWhilePaused=!1,this._enginePlayTime=1/0,this._enginePauseTime=0,this._isReady=!1,this._isReadyPromise=new Promise((i,s)=>{this._resolveIsReadyPromise=i,this._rejectIsReadyPromise=s}),this._onCanPlayThrough=()=>{this._isReady=!0,this._resolveIsReadyPromise(this._mediaElement),this.onReadyObservable.notifyObservers(this)},this._onEnded=()=>{this.onEndedObservable.notifyObservers(this),this.dispose()},this._onError=i=>{this._setState(4),this.onErrorObservable.notifyObservers(i),this._rejectIsReadyPromise(i),this.dispose()},this._onEngineStateChanged=()=>{this.engine.state==="running"&&(this._options.loop&&this.state===2&&this.play(),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged))},this._onUserGesture=()=>{this.play()},this._options=t,this._volumeNode=new GainNode(e._audioContext),typeof e._source=="string"?this._initFromUrl(e._source):Array.isArray(e._source)?this._initFromUrls(e._source):e._source instanceof HTMLMediaElement&&this._initFromMediaElement(e._source)}get currentTime(){if(this._state===1)return 0;const e=this._state===5?0:this.engine.currentTime-this._enginePlayTime;return this._enginePauseTime+e+this._options.startOffset}set currentTime(e){const t=this._state===2||this._state===3;t&&(this._mediaElement.pause(),this._setState(1)),this._options.startOffset=e,t?this.play({startOffset:e}):this._state===5&&(this._currentTimeChangedWhilePaused=!0)}get _outNode(){return this._volumeNode}get startTime(){return this._state===1?0:this._enginePlayTime}dispose(){var e;super.dispose(),this.stop(),(e=this._sourceNode)==null||e.disconnect(this._volumeNode),this._sourceNode=null,this._mediaElement.removeEventListener("error",this._onError),this._mediaElement.removeEventListener("ended",this._onEnded),this._mediaElement.removeEventListener("canplaythrough",this._onCanPlayThrough);for(const t of Array.from(this._mediaElement.children))this._mediaElement.removeChild(t);this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged),this.engine.userGestureObservable.removeCallback(this._onUserGesture)}play(e={}){if(this._state===3)return;e.loop!==void 0&&(this._options.loop=e.loop),this._mediaElement.loop=this._options.loop;let t=e.startOffset;this._currentTimeChangedWhilePaused?(t=this._options.startOffset,this._currentTimeChangedWhilePaused=!1):this._state===5&&(t=this.currentTime+this._options.startOffset),t&&t>0&&(this._mediaElement.currentTime=t),this._volumeNode.gain.value=e.volume??1,this._play()}pause(){this._state!==2&&this._state!==3||(this._setState(5),this._enginePauseTime+=this.engine.currentTime-this._enginePlayTime,this._mediaElement.pause())}resume(){this._state===5?this.play():this._currentTimeChangedWhilePaused&&this.play()}stop(){this._state!==1&&this._stop()}getClassName(){return"_WebAudioStreamingSoundInstance"}_connect(e){var i;return super._connect(e)?(e instanceof gL&&e._inNode&&((i=this._outNode)==null||i.connect(e._inNode)),!0):!1}_disconnect(e){var i;return super._disconnect(e)?(e instanceof gL&&e._inNode&&((i=this._outNode)==null||i.disconnect(e._inNode)),!0):!1}_initFromMediaElement(e){if(Le.SetCorsBehavior(e.currentSrc,e),e.controls=!1,e.loop=this._options.loop,e.preload="auto",e.addEventListener("canplaythrough",this._onCanPlayThrough,{once:!0}),e.addEventListener("ended",this._onEnded,{once:!0}),e.addEventListener("error",this._onError,{once:!0}),e.load(),this._sourceNode=new MediaElementAudioSourceNode(this._sound._audioContext,{mediaElement:e}),this._sourceNode.connect(this._volumeNode),!this._connect(this._sound))throw new Error("Connect failed");this._mediaElement=e}_initFromUrl(e){const t=new Audio(Pq(e));this._initFromMediaElement(t)}_initFromUrls(e){const t=new Audio;for(const i of e){const s=document.createElement("source");s.src=Pq(i),t.appendChild(s)}this._initFromMediaElement(t)}_play(){if(this._setState(2),!this._isReady){this._playWhenReady();return}if(this._state===2)if(this.engine.state==="running"){const e=this._mediaElement.play();this._enginePlayTime=this.engine.currentTime,this._setState(3),e.catch(()=>{this._setState(4),this._options.loop&&this.engine.userGestureObservable.addOnce(this._onUserGesture)})}else this._options.loop?this.engine.stateChangedObservable.add(this._onEngineStateChanged):(this.stop(),this._setState(4))}_playWhenReady(){this._isReadyPromise.then(()=>{this._play()}).catch(()=>{de.Error("Streaming sound instance failed to play"),this._setState(4)})}_stop(){this._mediaElement.pause(),this._setState(1),this._onEnded(),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged)}}const BNe=Object.freeze(Object.defineProperty({__proto__:null,_WebAudioStreamingSound:gL},Symbol.toStringTag,{value:"Module"}));class _L{constructor(e){this._texture=null,this._isEnabled=!0,this.isEnabled=!0,this.time=0,e=e||ei.LastCreatedScene,e&&(this._scene=e,this.animationParameters=new Yt(0,0,0,30))}_markSubMeshesAsAttributesDirty(){for(const e of this._scene.meshes)e.bakedVertexAnimationManager===this&&e._markSubMeshesAsAttributesDirty()}bind(e,t=!1){if(!this._texture||!this._isEnabled)return;const i=this._texture.getSize();e.setFloat2("bakedVertexAnimationTextureSizeInverted",1/i.width,1/i.height),e.setFloat("bakedVertexAnimationTime",this.time),t||e.setVector4("bakedVertexAnimationSettings",this.animationParameters),e.setTexture("bakedVertexAnimationTexture",this._texture)}clone(){const e=new _L(this._scene);return this.copyTo(e),e}setAnimationParameters(e,t,i=0,s=30){this.animationParameters=new Yt(e,t,i,s)}dispose(e){var t;e&&((t=this._texture)==null||t.dispose())}getClassName(){return"BakedVertexAnimationManager"}copyTo(e){It.Clone(()=>e,this)}serialize(){return It.Serialize(this)}parse(e,t,i){It.Parse(()=>this,e,t,i)}}F([Yi(),et("_markSubMeshesAsAttributesDirty")],_L.prototype,"texture",void 0),F([G(),et("_markSubMeshesAsAttributesDirty")],_L.prototype,"isEnabled",void 0),F([G()],_L.prototype,"animationParameters",void 0),F([G()],_L.prototype,"time",void 0);class zNe{constructor(e,t){this._scene=e,t instanceof Wv?(this._skeleton=t,this._mesh=null):(this._mesh=t,this._skeleton=t.skeleton)}async bakeVertexData(e){if(!this._skeleton)throw new Error("No skeleton provided.");const t=this._skeleton.bones.length,i=e.reduce((o,l)=>o+l.to-l.from+1,0);if(isNaN(i))throw new Error("Invalid animation ranges.");let s=0;const r=(t+1)*4*4*i,n=new Float32Array(r);this._scene.stopAnimation(this._skeleton),this._skeleton.returnToRest();for(const o of e)for(let l=o.from;l<=o.to;l++)await this._executeAnimationFrame(n,l,s++);return n}async _executeAnimationFrame(e,t,i){return new Promise((s,r)=>{this._scene.beginAnimation(this._skeleton,t,t,!1,1,()=>{const n=this._skeleton.getTransformMatrices(this._mesh);e.set(n,i*n.length),s()})})}textureFromBakedVertexData(e){if(!this._skeleton)throw new Error("No skeleton provided.");const t=this._skeleton.bones.length,i=Ur.CreateRGBATexture(e,(t+1)*4,e.length/((t+1)*4*4),this._scene,!1,!1,be.NEAREST_NEAREST,1);return i.name="VAT"+this._skeleton.name,i}serializeBakedVertexDataToObject(e){if(!this._skeleton)throw new Error("No skeleton provided.");const t=this._skeleton.bones.length,i=(t+1)*4,s=e.length/((t+1)*4*4);return{vertexData:lw(e),width:i,height:s}}loadBakedVertexDataFromObject(e){return new Float32Array(cw(e.vertexData))}serializeBakedVertexDataToJSON(e){return JSON.stringify(this.serializeBakedVertexDataToObject(e))}loadBakedVertexDataFromJSON(e){return this.loadBakedVertexDataFromObject(JSON.parse(e))}}class HP{constructor(e,t=new P,i=0,s=!1){this.direction=e,this.rotatedDirection=t,this.diff=i,this.ignore=s}}class FNe{constructor(e){this._ui=e,this.name="AttachToBoxBehavior",this.distanceAwayFromFace=.15,this.distanceAwayFromBottomOfFace=.15,this._faceVectors=[new HP(P.Up()),new HP(P.Down()),new HP(P.Left()),new HP(P.Right()),new HP(P.Forward()),new HP(P.Forward().scaleInPlace(-1))],this._tmpMatrix=new me,this._tmpVector=new P,this._zeroVector=P.Zero(),this._lookAtTmpMatrix=new me}init(){}_closestFace(e){return this._faceVectors.forEach(t=>{this._target.rotationQuaternion||(this._target.rotationQuaternion=Re.RotationYawPitchRoll(this._target.rotation.y,this._target.rotation.x,this._target.rotation.z)),this._target.rotationQuaternion.toRotationMatrix(this._tmpMatrix),P.TransformCoordinatesToRef(t.direction,this._tmpMatrix,t.rotatedDirection),t.diff=P.GetAngleBetweenVectors(t.rotatedDirection,e,P.Cross(t.rotatedDirection,e))}),this._faceVectors.reduce((t,i)=>t.ignore?i:i.ignore||t.diff<i.diff?t:i,this._faceVectors[0])}_lookAtToRef(e,t=new P(0,1,0),i){me.LookAtLHToRef(this._zeroVector,e,t,this._lookAtTmpMatrix),this._lookAtTmpMatrix.invert(),Re.FromRotationMatrixToRef(this._lookAtTmpMatrix,i)}attach(e){this._target=e,this._scene=this._target.getScene(),this._onRenderObserver=this._scene.onBeforeRenderObservable.add(()=>{if(!this._scene.activeCamera)return;let t=this._scene.activeCamera.position;this._scene.activeCamera.devicePosition&&(t=this._scene.activeCamera.devicePosition);const i=this._closestFace(t.subtract(e.position));this._scene.activeCamera.leftCamera?this._scene.activeCamera.leftCamera.computeWorldMatrix().getRotationMatrixToRef(this._tmpMatrix):this._scene.activeCamera.computeWorldMatrix().getRotationMatrixToRef(this._tmpMatrix),P.TransformCoordinatesToRef(P.Up(),this._tmpMatrix,this._tmpVector),this._faceVectors.forEach(r=>{i.direction.x&&r.direction.x&&(r.ignore=!0),i.direction.y&&r.direction.y&&(r.ignore=!0),i.direction.z&&r.direction.z&&(r.ignore=!0)});const s=this._closestFace(this._tmpVector);this._faceVectors.forEach(r=>{r.ignore=!1}),this._ui.position.copyFrom(e.position),i.direction.x&&(i.rotatedDirection.scaleToRef(e.scaling.x/2+this.distanceAwayFromFace,this._tmpVector),this._ui.position.addInPlace(this._tmpVector)),i.direction.y&&(i.rotatedDirection.scaleToRef(e.scaling.y/2+this.distanceAwayFromFace,this._tmpVector),this._ui.position.addInPlace(this._tmpVector)),i.direction.z&&(i.rotatedDirection.scaleToRef(e.scaling.z/2+this.distanceAwayFromFace,this._tmpVector),this._ui.position.addInPlace(this._tmpVector)),this._ui.rotationQuaternion||(this._ui.rotationQuaternion=Re.RotationYawPitchRoll(this._ui.rotation.y,this._ui.rotation.x,this._ui.rotation.z)),i.rotatedDirection.scaleToRef(-1,this._tmpVector),this._lookAtToRef(this._tmpVector,s.rotatedDirection,this._ui.rotationQuaternion),s.direction.x&&this._ui.up.scaleToRef(this.distanceAwayFromBottomOfFace-e.scaling.x/2,this._tmpVector),s.direction.y&&this._ui.up.scaleToRef(this.distanceAwayFromBottomOfFace-e.scaling.y/2,this._tmpVector),s.direction.z&&this._ui.up.scaleToRef(this.distanceAwayFromBottomOfFace-e.scaling.z/2,this._tmpVector),this._ui.position.addInPlace(this._tmpVector)})}detach(){this._scene.onBeforeRenderObservable.remove(this._onRenderObserver)}}class eH{get delay(){return this.fadeInDelay}set delay(e){this.fadeInDelay=e,this.fadeOutDelay=e}constructor(){this.fadeInDelay=0,this.fadeOutDelay=0,this.fadeInTime=300,this.fadeOutTime=300,this._millisecondsPerFrame=1e3/60,this._hovered=!1,this._hoverValue=0,this._ownerNode=null,this._delay=0,this._time=300,this._update=()=>{if(this._ownerNode){if(this._hoverValue+=this._hovered?this._millisecondsPerFrame:-this._millisecondsPerFrame,this._setAllVisibility(this._ownerNode,(this._hoverValue-this._delay)/this._time),this._ownerNode.visibility>1){if(this._setAllVisibility(this._ownerNode,1),this._hoverValue>this._time){this._hoverValue=this._time,this._detachObserver();return}}else if(this._ownerNode.visibility<0&&(this._setAllVisibility(this._ownerNode,0),this._hoverValue<0)){this._hoverValue=0,this._detachObserver();return}this._attachObserver()}}}get name(){return"FadeInOut"}init(){}attach(e){this._ownerNode=e,this._setAllVisibility(this._ownerNode,0)}detach(){this._ownerNode=null}fadeIn(e=!0){this._delay=e?this.fadeInDelay:this.fadeOutDelay,this._time=e?this.fadeInTime:this.fadeOutTime,this._detachObserver(),!(this._ownerNode&&(e&&this._ownerNode.visibility>=1||!e&&this._ownerNode.visibility<=0))&&(this._hovered=e,this._hovered||(this._delay*=-1),this._ownerNode.visibility>=1?this._hoverValue=this._time:this._ownerNode.visibility<=0&&(this._hoverValue=0),this._update())}fadeOut(){this.fadeIn(!1)}_setAllVisibility(e,t){e.visibility=t,e.getChildMeshes().forEach(i=>{this._setAllVisibility(i,t)})}_attachObserver(){var e;this._onBeforeRenderObserver||(this._onBeforeRenderObserver=(e=this._ownerNode)==null?void 0:e.getScene().onBeforeRenderObservable.add(this._update))}_detachObserver(){var e;this._onBeforeRenderObserver&&((e=this._ownerNode)==null||e.getScene().onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=null)}}const Rq={internalPickerForMesh:void 0};class Is{constructor(e,t,i=Number.MAX_VALUE,s=Ii){this.origin=e,this.direction=t,this.length=i,this.epsilon=s}clone(){return new Is(this.origin.clone(),this.direction.clone(),this.length)}intersectsBoxMinMax(e,t,i=0){const s=Is._TmpVector3[0].copyFromFloats(e.x-i,e.y-i,e.z-i),r=Is._TmpVector3[1].copyFromFloats(t.x+i,t.y+i,t.z+i);let n=0,o=Number.MAX_VALUE,l,c,u,f;if(Math.abs(this.direction.x)<1e-7){if(this.origin.x<s.x||this.origin.x>r.x)return!1}else if(l=1/this.direction.x,c=(s.x-this.origin.x)*l,u=(r.x-this.origin.x)*l,u===-1/0&&(u=1/0),c>u&&(f=c,c=u,u=f),n=Math.max(c,n),o=Math.min(u,o),n>o)return!1;if(Math.abs(this.direction.y)<1e-7){if(this.origin.y<s.y||this.origin.y>r.y)return!1}else if(l=1/this.direction.y,c=(s.y-this.origin.y)*l,u=(r.y-this.origin.y)*l,u===-1/0&&(u=1/0),c>u&&(f=c,c=u,u=f),n=Math.max(c,n),o=Math.min(u,o),n>o)return!1;if(Math.abs(this.direction.z)<1e-7){if(this.origin.z<s.z||this.origin.z>r.z)return!1}else if(l=1/this.direction.z,c=(s.z-this.origin.z)*l,u=(r.z-this.origin.z)*l,u===-1/0&&(u=1/0),c>u&&(f=c,c=u,u=f),n=Math.max(c,n),o=Math.min(u,o),n>o)return!1;return!0}intersectsBox(e,t=0){return this.intersectsBoxMinMax(e.minimum,e.maximum,t)}intersectsSphere(e,t=0){const i=e.center.x-this.origin.x,s=e.center.y-this.origin.y,r=e.center.z-this.origin.z,n=i*i+s*s+r*r,o=e.radius+t,l=o*o;if(n<=l)return!0;const c=i*this.direction.x+s*this.direction.y+r*this.direction.z;return c<0?!1:n-c*c<=l}intersectsTriangle(e,t,i){const s=Is._TmpVector3[0],r=Is._TmpVector3[1],n=Is._TmpVector3[2],o=Is._TmpVector3[3],l=Is._TmpVector3[4];t.subtractToRef(e,s),i.subtractToRef(e,r),P.CrossToRef(this.direction,r,n);const c=P.Dot(s,n);if(c===0)return null;const u=1/c;this.origin.subtractToRef(e,o);const f=P.Dot(o,n)*u;if(f<-this.epsilon||f>1+this.epsilon)return null;P.CrossToRef(o,s,l);const p=P.Dot(this.direction,l)*u;if(p<-this.epsilon||f+p>1+this.epsilon)return null;const m=P.Dot(r,l)*u;return m>this.length?null:new fG(1-f-p,f,m)}intersectsPlane(e){let t;const i=P.Dot(e.normal,this.direction);if(Math.abs(i)<999999997475243e-21)return null;{const s=P.Dot(e.normal,this.origin);return t=(-e.d-s)/i,t<0?t<-999999997475243e-21?null:0:t}}intersectsAxis(e,t=0){switch(e){case"y":{const i=(this.origin.y-t)/this.direction.y;return i>0?null:new P(this.origin.x+this.direction.x*-i,t,this.origin.z+this.direction.z*-i)}case"x":{const i=(this.origin.x-t)/this.direction.x;return i>0?null:new P(t,this.origin.y+this.direction.y*-i,this.origin.z+this.direction.z*-i)}case"z":{const i=(this.origin.z-t)/this.direction.z;return i>0?null:new P(this.origin.x+this.direction.x*-i,this.origin.y+this.direction.y*-i,t)}default:return null}}intersectsMesh(e,t,i,s=!1,r,n=!1){const o=ae.Matrix[0];return e.getWorldMatrix().invertToRef(o),this._tmpRay?Is.TransformToRef(this,o,this._tmpRay):this._tmpRay=Is.Transform(this,o),e.intersects(this._tmpRay,t,i,s,r,n)}intersectsMeshes(e,t,i){i?i.length=0:i=[];for(let s=0;s<e.length;s++){const r=this.intersectsMesh(e[s],t);r.hit&&i.push(r)}return i.sort(this._comparePickingInfo),i}_comparePickingInfo(e,t){return e.distance<t.distance?-1:e.distance>t.distance?1:0}intersectionSegment(e,t,i){const s=this.origin,r=ae.Vector3[0],n=ae.Vector3[1],o=ae.Vector3[2],l=ae.Vector3[3];t.subtractToRef(e,r),this.direction.scaleToRef(Is._Rayl,o),s.addToRef(o,n),e.subtractToRef(s,l);const c=P.Dot(r,r),u=P.Dot(r,o),f=P.Dot(o,o),p=P.Dot(r,l),m=P.Dot(o,l),_=c*f-u*u;let d,h=_,x,A=_;_<Is._Smallnum?(d=0,h=1,x=m,A=f):(d=u*m-f*p,x=c*m-u*p,d<0?(d=0,x=m,A=f):d>h&&(d=h,x=m+u,A=f)),x<0?(x=0,-p<0?d=0:-p>c?d=h:(d=-p,h=c)):x>A&&(x=A,-p+u<0?d=0:-p+u>c?d=h:(d=-p+u,h=c));const S=Math.abs(d)<Is._Smallnum?0:d/h,E=Math.abs(x)<Is._Smallnum?0:x/A,b=ae.Vector3[4];o.scaleToRef(E,b);const M=ae.Vector3[5];r.scaleToRef(S,M),M.addInPlace(l);const T=ae.Vector3[6];return M.subtractToRef(b,T),E>0&&E<=this.length&&T.lengthSquared()<i*i?M.length():-1}update(e,t,i,s,r,n,o,l=!1){if(l){Is._RayDistant||(Is._RayDistant=Is.Zero()),Is._RayDistant.unprojectRayToRef(e,t,i,s,me.IdentityReadOnly,n,o);const c=ae.Matrix[0];r.invertToRef(c),Is.TransformToRef(Is._RayDistant,c,this)}else this.unprojectRayToRef(e,t,i,s,r,n,o);return this}static Zero(){return new Is(P.Zero(),P.Zero())}static CreateNew(e,t,i,s,r,n,o){return Is.Zero().update(e,t,i,s,r,n,o)}static CreateNewFromTo(e,t,i=me.IdentityReadOnly){const s=new Is(new P(0,0,0),new P(0,0,0));return Is.CreateFromToToRef(e,t,s,i)}static CreateFromToToRef(e,t,i,s=me.IdentityReadOnly){i.origin.copyFrom(e);const r=t.subtractToRef(e,i.direction),n=Math.sqrt(r.x*r.x+r.y*r.y+r.z*r.z);return i.length=n,i.direction.normalize(),Is.TransformToRef(i,s,i)}static Transform(e,t){const i=new Is(new P(0,0,0),new P(0,0,0));return Is.TransformToRef(e,t,i),i}static TransformToRef(e,t,i){P.TransformCoordinatesToRef(e.origin,t,i.origin),P.TransformNormalToRef(e.direction,t,i.direction),i.length=e.length,i.epsilon=e.epsilon;const s=i.direction,r=s.length();if(!(r===0||r===1)){const n=1/r;s.x*=n,s.y*=n,s.z*=n,i.length*=r}return i}unprojectRayToRef(e,t,i,s,r,n,o){const l=ae.Matrix[0];r.multiplyToRef(n,l),l.multiplyToRef(o,l),l.invert();const c=ei.LastCreatedEngine,u=ae.Vector3[0];u.x=e/i*2-1,u.y=-(t/s*2-1),u.z=c!=null&&c.useReverseDepthBuffer?1:c!=null&&c.isNDCHalfZRange?0:-1;const f=ae.Vector3[1].copyFromFloats(u.x,u.y,1-1e-8),p=ae.Vector3[2],m=ae.Vector3[3];P._UnprojectFromInvertedMatrixToRef(u,l,p),P._UnprojectFromInvertedMatrixToRef(f,l,m),this.origin.copyFrom(p),m.subtractToRef(p,this.direction),this.direction.normalize()}}Is._TmpVector3=V1(6,P.Zero),Is._RayDistant=Is.Zero(),Is._Smallnum=1e-8,Is._Rayl=1e9;function cB(a,e,t,i,s,r=!1){const n=Is.Zero();return uB(a,e,t,i,n,s,r),n}function uB(a,e,t,i,s,r,n=!1,o=!1){const l=a.getEngine();if(!r&&!(r=a.activeCamera))return a;const c=r.viewport,u=l.getRenderHeight(),{x:f,y:p,width:m,height:_}=c.toGlobal(l.getRenderWidth(),u),d=1/l.getHardwareScalingLevel();return e=e*d-f,t=t*d-(u-p-_),s.update(e,t,m,_,i||me.IdentityReadOnly,n?me.IdentityReadOnly:r.getViewMatrix(),r.getProjectionMatrix(),o),a}function Dq(a,e,t,i){const s=Is.Zero();return hB(a,e,t,s,i),s}function hB(a,e,t,i,s){if(!Kl)return a;const r=a.getEngine();if(!s&&!(s=a.activeCamera))throw new Error("Active camera not set");const n=s.viewport,o=r.getRenderHeight(),{x:l,y:c,width:u,height:f}=n.toGlobal(r.getRenderWidth(),o),p=me.Identity(),m=1/r.getHardwareScalingLevel();return e=e*m-l,t=t*m-(o-c-f),i.update(e,t,u,f,p,p,s.getProjectionMatrix()),a}function j2e(a,e,t,i,s,r,n,o){const l=e(i,t.enableDistantPicking),c=t.intersects(l,s,n,r,i,o);return!c||!c.hit||!s&&a!=null&&c.distance>=a.distance?null:c}function Nq(a,e,t,i,s,r){let n=null;const o=!!(a.activeCameras&&a.activeCameras.length>1&&a.cameraToUseForPointers!==a.activeCamera),l=a.cameraToUseForPointers||a.activeCamera,c=Rq.internalPickerForMesh||j2e;for(let u=0;u<a.meshes.length;u++){const f=a.meshes[u];if(t){if(!t(f,-1))continue}else if(!f.isEnabled()||!f.isVisible||!f.isPickable)continue;const p=o&&f.isWorldMatrixCameraDependent(),m=f.computeWorldMatrix(p,l);if(f.hasThinInstances&&f.thinInstanceEnablePicking){const _=c(n,e,f,m,!0,!0,r);if(_){if(s)return _;const d=ae.Matrix[1],h=f.thinInstanceGetWorldMatrices();for(let x=0;x<h.length;x++){if(t&&!t(f,x))continue;h[x].multiplyToRef(m,d);const S=c(n,e,f,d,i,s,r,!0);if(S&&(n=S,n.thinInstanceIndex=x,i))return n}}}else{const _=c(n,e,f,m,i,s,r);if(_&&(n=_,i))return n}}return n||new Kl}function V2e(a,e,t,i){if(!Kl)return null;const s=[],r=!!(a.activeCameras&&a.activeCameras.length>1&&a.cameraToUseForPointers!==a.activeCamera),n=a.cameraToUseForPointers||a.activeCamera,o=Rq.internalPickerForMesh||j2e;for(let l=0;l<a.meshes.length;l++){const c=a.meshes[l];if(t){if(!t(c,-1))continue}else if(!c.isEnabled()||!c.isVisible||!c.isPickable)continue;const u=r&&c.isWorldMatrixCameraDependent(),f=c.computeWorldMatrix(u,n);if(c.hasThinInstances&&c.thinInstanceEnablePicking){if(o(null,e,c,f,!0,!0,i)){const m=ae.Matrix[1],_=c.thinInstanceGetWorldMatrices();for(let d=0;d<_.length;d++){if(t&&!t(c,d))continue;_[d].multiplyToRef(f,m);const x=o(null,e,c,m,!1,!1,i,!0);x&&(x.thinInstanceIndex=d,s.push(x))}}}else{const p=o(null,e,c,f,!1,!1,i);p&&s.push(p)}}return s}function G2e(a,e,t,i,s,r){if(!Kl)return null;const n=Nq(a,o=>(a._tempPickingRay||(a._tempPickingRay=Is.Zero()),uB(a,e,t,o,a._tempPickingRay,r||null),a._tempPickingRay),i,s,!0);return n&&(n.ray=cB(a,e,t,me.Identity(),r||null)),n}function W2e(a,e,t,i,s,r,n,o=!1){const l=Nq(a,(c,u)=>(a._tempPickingRay||(a._tempPickingRay=Is.Zero()),uB(a,e,t,c,a._tempPickingRay,r||null,!1,u),a._tempPickingRay),i,s,!1,n);return l&&(l.ray=cB(a,e,t,me.Identity(),r||null)),l}function H2e(a,e,t,i,s){const r=Nq(a,n=>(a._pickWithRayInverseMatrix||(a._pickWithRayInverseMatrix=me.Identity()),n.invertToRef(a._pickWithRayInverseMatrix),a._cachedRayForTransform||(a._cachedRayForTransform=Is.Zero()),Is.TransformToRef(e,a._pickWithRayInverseMatrix,a._cachedRayForTransform),a._cachedRayForTransform),t,i,!1,s);return r&&(r.ray=e),r}function Y2e(a,e,t,i,s,r){return V2e(a,n=>cB(a,e,t,n,s||null),i,r)}function X2e(a,e,t,i){return V2e(a,s=>(a._pickWithRayInverseMatrix||(a._pickWithRayInverseMatrix=me.Identity()),s.invertToRef(a._pickWithRayInverseMatrix),a._cachedRayForTransform||(a._cachedRayForTransform=Is.Zero()),Is.TransformToRef(e,a._pickWithRayInverseMatrix,a._cachedRayForTransform),a._cachedRayForTransform),t,i)}function kNe(a,e=100,t,i){return tH(a,new Is(P.Zero(),P.Zero(),e),e,t,i)}function tH(a,e,t=100,i,s){i||(i=a.getWorldMatrix()),e.length=t,s?e.origin.copyFrom(s):e.origin.copyFrom(a.position);const r=ae.Vector3[2];r.set(0,0,a._scene.useRightHandedSystem?-1:1);const n=ae.Vector3[3];return P.TransformNormalToRef(r,i,n),P.NormalizeToRef(n,e.direction),e}function Z2e(a,e){e&&(e.prototype.getForwardRay=function(t=100,i,s){return tH(this,new Is(P.Zero(),P.Zero(),t),t,i,s)},e.prototype.getForwardRayToRef=function(t,i=100,s,r){return tH(this,t,i,s,r)}),a&&(VX._IsPickingAvailable=!0,a.prototype.createPickingRay=function(t,i,s,r,n=!1){return cB(this,t,i,s,r,n)})}Z2e(ui,_i),ui.prototype.createPickingRayToRef=function(a,e,t,i,s,r=!1,n=!1){return uB(this,a,e,t,i,s,r,n)},ui.prototype.createPickingRayInCameraSpace=function(a,e,t){return Dq(this,a,e,t)},ui.prototype.createPickingRayInCameraSpaceToRef=function(a,e,t,i){return hB(this,a,e,t,i)},ui.prototype.pickWithBoundingInfo=function(a,e,t,i,s){return G2e(this,a,e,t,i,s)},ui.prototype.pick=function(a,e,t,i,s,r,n=!1){return W2e(this,a,e,t,i,s,r,n)},ui.prototype.pickWithRay=function(a,e,t,i){return H2e(this,a,e,t,i)},ui.prototype.multiPick=function(a,e,t,i,s){return Y2e(this,a,e,t,i,s)},ui.prototype.multiPickWithRay=function(a,e,t){return X2e(this,a,e,t)};class zr{static _RemoveAndStorePivotPoint(e){e&&zr._PivotCached===0&&(e.getPivotPointToRef(zr._OldPivotPoint),zr._PivotPostMultiplyPivotMatrix=e._postMultiplyPivotMatrix,zr._OldPivotPoint.equalsToFloats(0,0,0)||(e.setPivotMatrix(me.IdentityReadOnly),zr._OldPivotPoint.subtractToRef(e.getPivotPoint(),zr._PivotTranslation),zr._PivotTmpVector.copyFromFloats(1,1,1),zr._PivotTmpVector.subtractInPlace(e.scaling),zr._PivotTmpVector.multiplyInPlace(zr._PivotTranslation),e.position.addInPlace(zr._PivotTmpVector))),zr._PivotCached++}static _RestorePivotPoint(e){e&&!zr._OldPivotPoint.equalsToFloats(0,0,0)&&zr._PivotCached===1&&(e.setPivotPoint(zr._OldPivotPoint),e._postMultiplyPivotMatrix=zr._PivotPostMultiplyPivotMatrix,zr._PivotTmpVector.copyFromFloats(1,1,1),zr._PivotTmpVector.subtractInPlace(e.scaling),zr._PivotTmpVector.multiplyInPlace(zr._PivotTranslation),e.position.subtractInPlace(zr._PivotTmpVector)),this._PivotCached--}}zr._PivotCached=0,zr._OldPivotPoint=new P,zr._PivotTranslation=new P,zr._PivotTmpVector=new P,zr._PivotPostMultiplyPivotMatrix=!1;class Nl{get currentDraggingPointerID(){return this.currentDraggingPointerId}set currentDraggingPointerID(e){this.currentDraggingPointerId=e}set enabled(e){e!=this._enabled&&this.onEnabledObservable.notifyObservers(e),this._enabled=e}get enabled(){return this._enabled}get options(){return this._options}set options(e){this._options=e}constructor(e){this._useAlternatePickedPointAboveMaxDragAngleDragSpeed=-1.1,this._activeDragButton=-1,this.maxDragAngle=0,this.dragButtons=[0,1,2],this._useAlternatePickedPointAboveMaxDragAngle=!1,this.currentDraggingPointerId=-1,this.dragging=!1,this.dragDeltaRatio=.2,this.updateDragPlane=!0,this._debugMode=!1,this._moving=!1,this.onDragObservable=new xe,this.onDragStartObservable=new xe,this.onDragEndObservable=new xe,this.onEnabledObservable=new xe,this.moveAttached=!0,this._enabled=!0,this.startAndReleaseDragOnPointerEvents=!0,this.detachCameraControls=!0,this.useObjectOrientationForDragging=!0,this.validateDrag=i=>!0,this._tmpVector=new P(0,0,0),this._alternatePickedPoint=new P(0,0,0),this._worldDragAxis=new P(0,0,0),this._targetPosition=new P(0,0,0),this._attachedToElement=!1,this._startDragRay=new Is(new P,new P),this._lastPointerRay={},this._dragDelta=new P,this._pointA=new P(0,0,0),this._pointC=new P(0,0,0),this._localAxis=new P(0,0,0),this._lookAt=new P(0,0,0),this._options=e||{};let t=0;if(this._options.dragAxis&&t++,this._options.dragPlaneNormal&&t++,t>1)throw"Multiple drag modes specified in dragBehavior options. Only one expected"}get name(){return"PointerDrag"}init(){}attach(e,t){this._scene=e.getScene(),e.isNearGrabbable=!0,this.attachedNode=e,Nl._PlaneScene||(this._debugMode?Nl._PlaneScene=this._scene:(Nl._PlaneScene=new ui(this._scene.getEngine(),{virtual:!0}),Nl._PlaneScene.detachControl(),this._scene.onDisposeObservable.addOnce(()=>{Nl._PlaneScene.dispose(),Nl._PlaneScene=null}))),this._dragPlane=Eh("pointerDragPlane",{size:this._debugMode?1:1e4,updatable:!1,sideOrientation:Ne.DOUBLESIDE},Nl._PlaneScene),this.lastDragPosition=new P(0,0,0);const i=t||(s=>this.attachedNode==s||s.isDescendantOf(this.attachedNode));this._pointerObserver=this._scene.onPointerObservable.add(s=>{if(!this.enabled){this._attachedToElement&&this.releaseDrag();return}if(this.dragging&&this.currentDraggingPointerId==s.event.pointerId&&s.event.button!==-1&&s.event.button!==this._activeDragButton){this.releaseDrag();return}if(s.type==Xt.POINTERDOWN)this.startAndReleaseDragOnPointerEvents&&!this.dragging&&s.pickInfo&&s.pickInfo.hit&&s.pickInfo.pickedMesh&&s.pickInfo.pickedPoint&&s.pickInfo.ray&&i(s.pickInfo.pickedMesh)&&this._activeDragButton===-1&&this.dragButtons.indexOf(s.event.button)!==-1&&(this._activeDragButton=s.event.button,this._activePointerInfo=s,this._startDrag(s.event.pointerId,s.pickInfo.ray,s.pickInfo.pickedPoint));else if(s.type==Xt.POINTERUP)this.startAndReleaseDragOnPointerEvents&&this.currentDraggingPointerId==s.event.pointerId&&(this._activeDragButton===s.event.button||this._activeDragButton===-1)&&this.releaseDrag();else if(s.type==Xt.POINTERMOVE){const r=s.event.pointerId;if(this.currentDraggingPointerId===Nl._AnyMouseId&&r!==Nl._AnyMouseId){const n=s.event;(n.pointerType==="mouse"||!this._scene.getEngine().hostInformation.isMobile&&n instanceof MouseEvent)&&(this._lastPointerRay[this.currentDraggingPointerId]&&(this._lastPointerRay[r]=this._lastPointerRay[this.currentDraggingPointerId],delete this._lastPointerRay[this.currentDraggingPointerId]),this.currentDraggingPointerId=r)}this._lastPointerRay[r]||(this._lastPointerRay[r]=new Is(new P,new P)),s.pickInfo&&s.pickInfo.ray&&(this._lastPointerRay[r].origin.copyFrom(s.pickInfo.ray.origin),this._lastPointerRay[r].direction.copyFrom(s.pickInfo.ray.direction),this.currentDraggingPointerId==r&&this.dragging&&this._moveDrag(s.pickInfo.ray))}}),this._beforeRenderObserver=this._scene.onBeforeRenderObservable.add(()=>{if(this._moving&&this.moveAttached){let s=!1;zr._RemoveAndStorePivotPoint(this.attachedNode),this._targetPosition.subtractToRef(this.attachedNode.absolutePosition,this._tmpVector),this._tmpVector.scaleInPlace(this.dragDeltaRatio),this.attachedNode.getAbsolutePosition().addToRef(this._tmpVector,this._tmpVector),this.validateDrag(this._tmpVector)&&(this.attachedNode.setAbsolutePosition(this._tmpVector),s=!0),zr._RestorePivotPoint(this.attachedNode),s&&this.attachedNode.computeWorldMatrix()}})}releaseDrag(){if(this.dragging&&(this.dragging=!1,this.onDragEndObservable.notifyObservers({dragPlanePoint:this.lastDragPosition,pointerId:this.currentDraggingPointerId,pointerInfo:this._activePointerInfo})),this.currentDraggingPointerId=-1,this._activeDragButton=-1,this._activePointerInfo=null,this._moving=!1,this.detachCameraControls&&this._attachedToElement&&this._scene.activeCamera&&!this._scene.activeCamera.leftCamera){if(this._scene.activeCamera.getClassName()==="ArcRotateCamera"){const e=this._scene.activeCamera;e.attachControl(e.inputs?e.inputs.noPreventDefault:!0,e._useCtrlForPanning,e._panningMouseButton)}else this._scene.activeCamera.attachControl(this._scene.activeCamera.inputs?this._scene.activeCamera.inputs.noPreventDefault:!0);this._attachedToElement=!1}}startDrag(e=Nl._AnyMouseId,t,i){this._startDrag(e,t,i);let s=this._lastPointerRay[e];e===Nl._AnyMouseId&&(s=this._lastPointerRay[Object.keys(this._lastPointerRay)[0]]),s&&this._moveDrag(s)}_startDrag(e,t,i){if(!this._scene.activeCamera||this.dragging||!this.attachedNode)return;zr._RemoveAndStorePivotPoint(this.attachedNode),t?(this._startDragRay.direction.copyFrom(t.direction),this._startDragRay.origin.copyFrom(t.origin)):(this._startDragRay.origin.copyFrom(this._scene.activeCamera.position),this.attachedNode.getWorldMatrix().getTranslationToRef(this._tmpVector),this._tmpVector.subtractToRef(this._scene.activeCamera.position,this._startDragRay.direction)),this._updateDragPlanePosition(this._startDragRay,i||this._tmpVector);const s=this._pickWithRayOnDragPlane(this._startDragRay);s?(this.dragging=!0,this.currentDraggingPointerId=e,this.lastDragPosition.copyFrom(s),this.onDragStartObservable.notifyObservers({dragPlanePoint:s,pointerId:this.currentDraggingPointerId,pointerInfo:this._activePointerInfo}),this._targetPosition.copyFrom(this.attachedNode.getAbsolutePosition()),this.detachCameraControls&&this._scene.activeCamera&&this._scene.activeCamera.inputs&&!this._scene.activeCamera.leftCamera&&(this._scene.activeCamera.inputs.attachedToElement?(this._scene.activeCamera.detachControl(),this._attachedToElement=!0):this._attachedToElement=!1)):this.releaseDrag(),zr._RestorePivotPoint(this.attachedNode)}_moveDrag(e){this._moving=!0;const t=this._pickWithRayOnDragPlane(e);if(t){zr._RemoveAndStorePivotPoint(this.attachedNode),this.updateDragPlane&&this._updateDragPlanePosition(e,t);let i=0;this._options.dragAxis?(this.useObjectOrientationForDragging?P.TransformCoordinatesToRef(this._options.dragAxis,this.attachedNode.getWorldMatrix().getRotationMatrix(),this._worldDragAxis):this._worldDragAxis.copyFrom(this._options.dragAxis),t.subtractToRef(this.lastDragPosition,this._tmpVector),this._worldDragAxis.normalize(),i=P.Dot(this._tmpVector,this._worldDragAxis),this._worldDragAxis.scaleToRef(i,this._dragDelta)):(i=this._dragDelta.length(),t.subtractToRef(this.lastDragPosition,this._dragDelta)),this._targetPosition.addInPlace(this._dragDelta),this.onDragObservable.notifyObservers({dragDistance:i,delta:this._dragDelta,dragPlanePoint:t,dragPlaneNormal:this._dragPlane.forward,pointerId:this.currentDraggingPointerId,pointerInfo:this._activePointerInfo}),this.lastDragPosition.copyFrom(t),zr._RestorePivotPoint(this.attachedNode)}}_pickWithRayOnDragPlane(e){if(!e)return null;let t=Math.acos(P.Dot(this._dragPlane.forward,e.direction));if(t>Math.PI/2&&(t=Math.PI-t),this.maxDragAngle>0&&t>this.maxDragAngle)if(this._useAlternatePickedPointAboveMaxDragAngle){this._tmpVector.copyFrom(e.direction),this.attachedNode.absolutePosition.subtractToRef(e.origin,this._alternatePickedPoint),this._alternatePickedPoint.normalize(),this._alternatePickedPoint.scaleInPlace(this._useAlternatePickedPointAboveMaxDragAngleDragSpeed*P.Dot(this._alternatePickedPoint,this._tmpVector)),this._tmpVector.addInPlace(this._alternatePickedPoint);const l=P.Dot(this._dragPlane.forward,this._tmpVector);return this._dragPlane.forward.scaleToRef(-l,this._alternatePickedPoint),this._alternatePickedPoint.addInPlace(this._tmpVector),this._alternatePickedPoint.addInPlace(this.attachedNode.absolutePosition),this._alternatePickedPoint}else return null;const i=this._dragPlane.forward,s=this._dragPlane.position,r=e.direction.dot(i);if(Math.abs(r)<Ii)return null;s.subtractToRef(e.origin,ae.Vector3[0]);const n=ae.Vector3[0].dot(i)/r;return n<0?null:(e.direction.scaleToRef(n,ae.Vector3[0]),e.origin.add(ae.Vector3[0]))}_updateDragPlanePosition(e,t){this._pointA.copyFrom(t),this._options.dragAxis?(this.useObjectOrientationForDragging?P.TransformCoordinatesToRef(this._options.dragAxis,this.attachedNode.getWorldMatrix().getRotationMatrix(),this._localAxis):this._localAxis.copyFrom(this._options.dragAxis),e.origin.subtractToRef(this._pointA,this._pointC),this._pointC.normalize(),Math.abs(P.Dot(this._localAxis,this._pointC))>.999?Math.abs(P.Dot(P.UpReadOnly,this._pointC))>.999?this._lookAt.copyFrom(P.Right()):this._lookAt.copyFrom(P.UpReadOnly):(P.CrossToRef(this._localAxis,this._pointC,this._lookAt),P.CrossToRef(this._localAxis,this._lookAt,this._lookAt),this._lookAt.normalize()),this._dragPlane.position.copyFrom(this._pointA),this._pointA.addToRef(this._lookAt,this._lookAt),this._dragPlane.lookAt(this._lookAt)):this._options.dragPlaneNormal?(this.useObjectOrientationForDragging?P.TransformCoordinatesToRef(this._options.dragPlaneNormal,this.attachedNode.getWorldMatrix().getRotationMatrix(),this._localAxis):this._localAxis.copyFrom(this._options.dragPlaneNormal),this._dragPlane.position.copyFrom(this._pointA),this._pointA.addToRef(this._localAxis,this._lookAt),this._dragPlane.lookAt(this._lookAt)):(this._scene.activeCamera&&this._scene.activeCamera.getForwardRay().direction.normalizeToRef(this._localAxis),this._dragPlane.position.copyFrom(this._pointA),this._dragPlane.lookAt(this._pointA.add(this._localAxis))),this._dragPlane.position.copyFrom(this.attachedNode.getAbsolutePosition()),this._dragPlane.computeWorldMatrix(!0)}detach(){this._lastPointerRay={},this.attachedNode&&(this.attachedNode.isNearGrabbable=!1),this._pointerObserver&&this._scene.onPointerObservable.remove(this._pointerObserver),this._beforeRenderObserver&&this._scene.onBeforeRenderObservable.remove(this._beforeRenderObserver),this._dragPlane&&this._dragPlane.dispose(),this.releaseDrag()}}Nl._AnyMouseId=-2;class UNe{constructor(){this._startDistance=0,this._initialScale=new P(0,0,0),this._targetScale=new P(0,0,0),this._sceneRenderObserver=null,this._dragBehaviorA=new Nl({}),this._dragBehaviorA.moveAttached=!1,this._dragBehaviorB=new Nl({}),this._dragBehaviorB.moveAttached=!1}get name(){return"MultiPointerScale"}init(){}_getCurrentDistance(){return this._dragBehaviorA.lastDragPosition.subtract(this._dragBehaviorB.lastDragPosition).length()}attach(e){this._ownerNode=e,this._dragBehaviorA.onDragStartObservable.add(()=>{this._dragBehaviorA.dragging&&this._dragBehaviorB.dragging&&(this._dragBehaviorA.currentDraggingPointerId==this._dragBehaviorB.currentDraggingPointerId?this._dragBehaviorA.releaseDrag():(this._initialScale.copyFrom(e.scaling),this._startDistance=this._getCurrentDistance()))}),this._dragBehaviorB.onDragStartObservable.add(()=>{this._dragBehaviorA.dragging&&this._dragBehaviorB.dragging&&(this._dragBehaviorA.currentDraggingPointerId==this._dragBehaviorB.currentDraggingPointerId?this._dragBehaviorB.releaseDrag():(this._initialScale.copyFrom(e.scaling),this._startDistance=this._getCurrentDistance()))}),[this._dragBehaviorA,this._dragBehaviorB].forEach(t=>{t.onDragObservable.add(()=>{if(this._dragBehaviorA.dragging&&this._dragBehaviorB.dragging){const i=this._getCurrentDistance()/this._startDistance;this._initialScale.scaleToRef(i,this._targetScale)}})}),e.addBehavior(this._dragBehaviorA),e.addBehavior(this._dragBehaviorB),this._sceneRenderObserver=e.getScene().onBeforeRenderObservable.add(()=>{if(this._dragBehaviorA.dragging&&this._dragBehaviorB.dragging){const t=this._targetScale.subtract(e.scaling).scaleInPlace(.1);t.length()>.01&&e.scaling.addInPlace(t)}})}detach(){this._ownerNode.getScene().onBeforeRenderObservable.remove(this._sceneRenderObserver),[this._dragBehaviorA,this._dragBehaviorB].forEach(e=>{e.onDragStartObservable.clear(),e.onDragObservable.clear(),this._ownerNode.removeBehavior(e)})}}class $v{constructor(){this._attachedToElement=!1,this._virtualMeshesInfo={},this._tmpVector=new P,this._tmpQuaternion=new Re,this._dragType={NONE:0,DRAG:1,DRAG_WITH_CONTROLLER:2,NEAR_DRAG:3},this._moving=!1,this._dragging=this._dragType.NONE,this.draggableMeshes=null,this.zDragFactor=3,this.currentDraggingPointerIds=[],this.detachCameraControls=!0,this.onDragStartObservable=new xe,this.onDragObservable=new xe,this.onDragEndObservable=new xe,this.allowMultiPointer=!0}get currentDraggingPointerId(){return this.currentDraggingPointerIds[0]!==void 0?this.currentDraggingPointerIds[0]:-1}set currentDraggingPointerId(e){this.currentDraggingPointerIds[0]=e}get currentDraggingPointerID(){return this.currentDraggingPointerId}set currentDraggingPointerID(e){this.currentDraggingPointerId=e}get name(){return"BaseSixDofDrag"}get isMoving(){return this._moving}init(){}get _pointerCamera(){return this._scene.cameraToUseForPointers?this._scene.cameraToUseForPointers:this._scene.activeCamera}_createVirtualMeshInfo(){const e=new Si("",$v._virtualScene);e.rotationQuaternion=new Re;const t=new Si("",$v._virtualScene);t.rotationQuaternion=new Re;const i=new Si("",$v._virtualScene);return i.rotationQuaternion=new Re,{dragging:!1,moving:!1,dragMesh:e,originMesh:t,pivotMesh:i,startingPivotPosition:new P,startingPivotOrientation:new Re,startingPosition:new P,startingOrientation:new Re,lastOriginPosition:new P,lastDragPosition:new P}}_resetVirtualMeshesPosition(){for(let e=0;e<this.currentDraggingPointerIds.length;e++)this._virtualMeshesInfo[this.currentDraggingPointerIds[e]].pivotMesh.position.copyFrom(this._ownerNode.getAbsolutePivotPoint()),this._virtualMeshesInfo[this.currentDraggingPointerIds[e]].pivotMesh.rotationQuaternion.copyFrom(this._ownerNode.rotationQuaternion),this._virtualMeshesInfo[this.currentDraggingPointerIds[e]].startingPivotPosition.copyFrom(this._virtualMeshesInfo[this.currentDraggingPointerIds[e]].pivotMesh.position),this._virtualMeshesInfo[this.currentDraggingPointerIds[e]].startingPivotOrientation.copyFrom(this._virtualMeshesInfo[this.currentDraggingPointerIds[e]].pivotMesh.rotationQuaternion),this._virtualMeshesInfo[this.currentDraggingPointerIds[e]].startingPosition.copyFrom(this._virtualMeshesInfo[this.currentDraggingPointerIds[e]].dragMesh.position),this._virtualMeshesInfo[this.currentDraggingPointerIds[e]].startingOrientation.copyFrom(this._virtualMeshesInfo[this.currentDraggingPointerIds[e]].dragMesh.rotationQuaternion)}_pointerUpdate2D(e,t,i){this._pointerCamera&&this._pointerCamera.cameraRigMode==_i.RIG_MODE_NONE&&!this._pointerCamera._isLeftCamera&&!this._pointerCamera._isRightCamera&&(e.origin.copyFrom(this._pointerCamera.globalPosition),i=0);const s=this._virtualMeshesInfo[t],r=ae.Vector3[11];e.origin.subtractToRef(s.lastOriginPosition,r),s.lastOriginPosition.copyFrom(e.origin);const n=-P.Dot(r,e.direction);s.originMesh.addChild(s.dragMesh),s.originMesh.addChild(s.pivotMesh),this._applyZOffset(s.dragMesh,n,i),this._applyZOffset(s.pivotMesh,n,i),s.originMesh.position.copyFrom(e.origin);const o=ae.Vector3[10];e.origin.addToRef(e.direction,o),s.originMesh.lookAt(o),s.originMesh.removeChild(s.dragMesh),s.originMesh.removeChild(s.pivotMesh)}_pointerUpdateXR(e,t,i,s){const r=this._virtualMeshesInfo[i];if(r.originMesh.position.copyFrom(e.position),this._dragging===this._dragType.NEAR_DRAG&&t?r.originMesh.rotationQuaternion.copyFrom(t.rotationQuaternion):r.originMesh.rotationQuaternion.copyFrom(e.rotationQuaternion),r.pivotMesh.computeWorldMatrix(!0),r.dragMesh.computeWorldMatrix(!0),s!==0){const n=ae.Vector3[10],o=ae.Vector3[11];n.copyFrom(this._pointerCamera.getForwardRay().direction),r.originMesh.position.subtractToRef(r.lastOriginPosition,o),r.lastOriginPosition.copyFrom(r.originMesh.position);const l=o.length();o.normalize();const c=ae.Vector3[12],u=ae.Vector3[9];r.dragMesh.absolutePosition.subtractToRef(this._pointerCamera.globalPosition,c),r.dragMesh.absolutePosition.subtractToRef(r.originMesh.position,u);const f=u.length();c.normalize(),u.normalize();let m=Math.abs(P.Dot(o,u))*P.Dot(o,n)*s*l*f;const _=.01;m<0&&_-f>m&&(m=Math.min(_-f,0)),u.scaleInPlace(m),u.addToRef(r.pivotMesh.absolutePosition,this._tmpVector),r.pivotMesh.setAbsolutePosition(this._tmpVector),u.addToRef(r.dragMesh.absolutePosition,this._tmpVector),r.dragMesh.setAbsolutePosition(this._tmpVector)}}attach(e){this._ownerNode=e,this._scene=this._ownerNode.getScene(),$v._virtualScene||($v._virtualScene=new ui(this._scene.getEngine(),{virtual:!0}),$v._virtualScene.detachControl());const t=i=>this._ownerNode===i||i.isDescendantOf(this._ownerNode)&&(!this.draggableMeshes||this.draggableMeshes.indexOf(i)!==-1);this._pointerObserver=this._scene.onPointerObservable.add(i=>{const s=i.event.pointerId;this._virtualMeshesInfo[s]||(this._virtualMeshesInfo[s]=this._createVirtualMeshInfo());const r=this._virtualMeshesInfo[s],n=i.event.pointerType==="xr-near"||i.event.pointerType==="xr",o=i.event.pointerType==="xr-near";if(i.type==Xt.POINTERDOWN){if(!r.dragging&&i.pickInfo&&i.pickInfo.hit&&i.pickInfo.pickedMesh&&i.pickInfo.pickedPoint&&i.pickInfo.ray&&(!o||i.pickInfo.aimTransform)&&t(i.pickInfo.pickedMesh)){if((!this.allowMultiPointer||n)&&this.currentDraggingPointerIds.length>0)return;this._pointerCamera&&this._pointerCamera.cameraRigMode===_i.RIG_MODE_NONE&&!this._pointerCamera._isLeftCamera&&!this._pointerCamera._isRightCamera&&i.pickInfo.ray.origin.copyFrom(this._pointerCamera.globalPosition),this._ownerNode.computeWorldMatrix(!0);const l=this._virtualMeshesInfo[s];n?(this._dragging=i.pickInfo.originMesh?this._dragType.NEAR_DRAG:this._dragType.DRAG_WITH_CONTROLLER,l.originMesh.position.copyFrom(i.pickInfo.aimTransform.position),this._dragging===this._dragType.NEAR_DRAG&&i.pickInfo.gripTransform?l.originMesh.rotationQuaternion.copyFrom(i.pickInfo.gripTransform.rotationQuaternion):l.originMesh.rotationQuaternion.copyFrom(i.pickInfo.aimTransform.rotationQuaternion)):(this._dragging=this._dragType.DRAG,l.originMesh.position.copyFrom(i.pickInfo.ray.origin)),l.lastOriginPosition.copyFrom(l.originMesh.position),l.dragMesh.position.copyFrom(i.pickInfo.pickedPoint),l.lastDragPosition.copyFrom(i.pickInfo.pickedPoint),l.pivotMesh.position.copyFrom(this._ownerNode.getAbsolutePivotPoint()),l.pivotMesh.rotationQuaternion.copyFrom(this._ownerNode.absoluteRotationQuaternion),l.startingPosition.copyFrom(l.dragMesh.position),l.startingPivotPosition.copyFrom(l.pivotMesh.position),l.startingOrientation.copyFrom(l.dragMesh.rotationQuaternion),l.startingPivotOrientation.copyFrom(l.pivotMesh.rotationQuaternion),o?(l.originMesh.addChild(l.dragMesh),l.originMesh.addChild(l.pivotMesh)):l.originMesh.lookAt(l.dragMesh.position),l.dragging=!0,this.currentDraggingPointerIds.indexOf(s)===-1&&this.currentDraggingPointerIds.push(s),this.detachCameraControls&&this._pointerCamera&&!this._pointerCamera.leftCamera&&(this._pointerCamera.inputs&&this._pointerCamera.inputs.attachedToElement?(this._pointerCamera.detachControl(),this._attachedToElement=!0):(!this.allowMultiPointer||this.currentDraggingPointerIds.length===0)&&(this._attachedToElement=!1)),this._targetDragStart(l.pivotMesh.position,l.pivotMesh.rotationQuaternion,s),this.onDragStartObservable.notifyObservers({position:l.pivotMesh.position})}}else if(i.type==Xt.POINTERUP||i.type==Xt.POINTERDOUBLETAP){const l=this.currentDraggingPointerIds.indexOf(s);r.dragging=!1,l!==-1&&(this.currentDraggingPointerIds.splice(l,1),this.currentDraggingPointerIds.length===0&&(this._moving=!1,this._dragging=this._dragType.NONE,this.detachCameraControls&&this._attachedToElement&&this._pointerCamera&&!this._pointerCamera.leftCamera&&(this._reattachCameraControls(),this._attachedToElement=!1)),r.originMesh.removeChild(r.dragMesh),r.originMesh.removeChild(r.pivotMesh),this._targetDragEnd(s),this.onDragEndObservable.notifyObservers({}))}else if(i.type==Xt.POINTERMOVE&&this.currentDraggingPointerIds.indexOf(s)!==-1&&r.dragging&&i.pickInfo&&(i.pickInfo.ray||i.pickInfo.aimTransform)){let c=this.zDragFactor;(this.currentDraggingPointerIds.length>1||i.pickInfo.originMesh)&&(c=0),this._ownerNode.computeWorldMatrix(!0),o?this._pointerUpdateXR(i.pickInfo.aimTransform,i.pickInfo.gripTransform,s,c):this._pointerUpdate2D(i.pickInfo.ray,s,c),this._tmpQuaternion.copyFrom(r.startingPivotOrientation),this._tmpQuaternion.x=-this._tmpQuaternion.x,this._tmpQuaternion.y=-this._tmpQuaternion.y,this._tmpQuaternion.z=-this._tmpQuaternion.z,r.pivotMesh.absoluteRotationQuaternion.multiplyToRef(this._tmpQuaternion,this._tmpQuaternion),r.pivotMesh.absolutePosition.subtractToRef(r.startingPivotPosition,this._tmpVector),this.onDragObservable.notifyObservers({delta:this._tmpVector,position:r.pivotMesh.position,pickInfo:i.pickInfo}),this._targetDrag(this._tmpVector,this._tmpQuaternion,s),r.lastDragPosition.copyFrom(r.dragMesh.absolutePosition),this._moving=!0}})}_applyZOffset(e,t,i){e.position.z-=e.position.z<1?t*i:t*i*e.position.z,e.position.z<0&&(e.position.z=0)}_targetDragStart(e,t,i){}_targetDrag(e,t,i){}_targetDragEnd(e){}_reattachCameraControls(){if(this._pointerCamera)if(this._pointerCamera.getClassName()==="ArcRotateCamera"){const e=this._pointerCamera;e.attachControl(e.inputs?e.inputs.noPreventDefault:!0,e._useCtrlForPanning,e._panningMouseButton)}else this._pointerCamera.attachControl(this._pointerCamera.inputs?this._pointerCamera.inputs.noPreventDefault:!0)}detach(){this._scene&&(this.detachCameraControls&&this._attachedToElement&&this._pointerCamera&&!this._pointerCamera.leftCamera&&(this._reattachCameraControls(),this._attachedToElement=!1),this._scene.onPointerObservable.remove(this._pointerObserver));for(const e in this._virtualMeshesInfo)this._virtualMeshesInfo[e].originMesh.dispose(),this._virtualMeshesInfo[e].dragMesh.dispose();this.onDragEndObservable.clear(),this.onDragObservable.clear(),this.onDragStartObservable.clear()}}class wq extends $v{constructor(){super(...arguments),this._sceneRenderObserver=null,this._targetPosition=new P(0,0,0),this._targetOrientation=new Re,this._targetScaling=new P(1,1,1),this._startingPosition=new P(0,0,0),this._startingOrientation=new Re,this._startingScaling=new P(1,1,1),this.onPositionChangedObservable=new xe,this.dragDeltaRatio=.2,this.rotateDraggedObject=!0,this.rotateAroundYOnly=!1,this.rotateWithMotionController=!0,this.disableMovement=!1,this.faceCameraOnDragStart=!1}get name(){return"SixDofDrag"}attach(e){super.attach(e),e.isNearGrabbable=!0,e.getChildMeshes().forEach(t=>{t.isNearGrabbable=!0}),this._virtualTransformNode=new Si("virtual_sixDof",$v._virtualScene),this._virtualTransformNode.rotationQuaternion=Re.Identity(),this._sceneRenderObserver=e.getScene().onBeforeRenderObservable.add(()=>{if(this.currentDraggingPointerIds.length===1&&this._moving&&!this.disableMovement){const t=ae.Vector3[0];t.copyFrom(this._targetPosition).subtractInPlace(e.absolutePosition).scaleInPlace(this.dragDeltaRatio);const i=ae.Vector3[1];if(i.copyFrom(t),e.parent){const s=ae.Matrix[0];e.parent.absoluteRotationQuaternion.toRotationMatrix(s),s.invert(),P.TransformNormalToRef(t,s,i)}if(e.position.addInPlace(i),this.onPositionChangedObservable.notifyObservers({position:e.absolutePosition}),!e.parent||e.parent.scaling&&!e.parent.scaling.isNonUniformWithinEpsilon(.001)){const s=ae.Quaternion[0];if(s.copyFrom(this._targetOrientation),e.parent){const r=ae.Quaternion[0];r.copyFrom(e.parent.absoluteRotationQuaternion),r.invertInPlace(),r.multiplyToRef(this._targetOrientation,s)}Re.SlerpToRef(e.rotationQuaternion,s,this.dragDeltaRatio,e.rotationQuaternion)}}})}_getPositionOffsetAround(e,t,i){const s=ae.Matrix[0],r=ae.Matrix[1],n=ae.Matrix[2],o=ae.Matrix[3],l=ae.Matrix[4];return me.TranslationToRef(e.x,e.y,e.z,s),me.TranslationToRef(-e.x,-e.y,-e.z,r),me.FromQuaternionToRef(i,n),me.ScalingToRef(t,t,t,o),r.multiplyToRef(n,l),l.multiplyToRef(o,l),l.multiplyToRef(s,l),l.getTranslation()}_onePointerPositionUpdated(e,t){ae.Vector3[0].setAll(0),this._dragging===this._dragType.DRAG?this.rotateDraggedObject&&(this.rotateAroundYOnly?Re.RotationYawPitchRollToRef(t.toEulerAngles().y,0,0,ae.Quaternion[0]):ae.Quaternion[0].copyFrom(t),ae.Quaternion[0].multiplyToRef(this._startingOrientation,this._targetOrientation)):(this._dragging===this._dragType.NEAR_DRAG||this._dragging===this._dragType.DRAG_WITH_CONTROLLER&&this.rotateWithMotionController)&&t.multiplyToRef(this._startingOrientation,this._targetOrientation),this._targetPosition.copyFrom(this._startingPosition).addInPlace(e)}_twoPointersPositionUpdated(){const e=this._virtualMeshesInfo[this.currentDraggingPointerIds[0]].startingPosition,t=this._virtualMeshesInfo[this.currentDraggingPointerIds[1]].startingPosition,i=ae.Vector3[0];e.addToRef(t,i),i.scaleInPlace(.5);const s=ae.Vector3[1];t.subtractToRef(e,s);const r=this._virtualMeshesInfo[this.currentDraggingPointerIds[0]].dragMesh.absolutePosition,n=this._virtualMeshesInfo[this.currentDraggingPointerIds[1]].dragMesh.absolutePosition,o=ae.Vector3[2];r.addToRef(n,o),o.scaleInPlace(.5);const l=ae.Vector3[3];n.subtractToRef(r,l);const c=l.length()/s.length(),u=o.subtract(i),f=Re.FromEulerAngles(0,P.GetAngleBetweenVectorsOnPlane(s.normalize(),l.normalize(),P.UpReadOnly),0),p=this._ownerNode.parent;this._ownerNode.setParent(null);const m=this._getPositionOffsetAround(i.subtract(this._virtualTransformNode.getAbsolutePivotPoint()),c,f);this._virtualTransformNode.rotationQuaternion.multiplyToRef(f,this._ownerNode.rotationQuaternion),this._virtualTransformNode.scaling.scaleToRef(c,this._ownerNode.scaling),this._virtualTransformNode.position.addToRef(u.addInPlace(m),this._ownerNode.position),this.onPositionChangedObservable.notifyObservers({position:this._ownerNode.position}),this._ownerNode.setParent(p)}_targetDragStart(){const e=this.currentDraggingPointerIds.length;this._ownerNode.rotationQuaternion||(this._ownerNode.rotationQuaternion=Re.RotationYawPitchRoll(this._ownerNode.rotation.y,this._ownerNode.rotation.x,this._ownerNode.rotation.z));const t=this._ownerNode.getAbsolutePivotPoint();if(e===1){if(this._targetPosition.copyFrom(this._ownerNode.absolutePosition),this._targetOrientation.copyFrom(this._ownerNode.rotationQuaternion),this._targetScaling.copyFrom(this._ownerNode.absoluteScaling),this.faceCameraOnDragStart&&this._scene.activeCamera){const i=ae.Vector3[0];this._scene.activeCamera.position.subtractToRef(t,i),i.normalize();const s=ae.Quaternion[0];this._scene.useRightHandedSystem?Re.FromLookDirectionRHToRef(i,new P(0,1,0),s):Re.FromLookDirectionLHToRef(i,new P(0,1,0),s),s.normalize(),Re.RotationYawPitchRollToRef(s.toEulerAngles().y,0,0,ae.Quaternion[0]),this._targetOrientation.copyFrom(ae.Quaternion[0])}this._startingPosition.copyFrom(this._targetPosition),this._startingOrientation.copyFrom(this._targetOrientation),this._startingScaling.copyFrom(this._targetScaling)}else e===2&&(this._virtualTransformNode.setPivotPoint(new P(0,0,0),0),this._virtualTransformNode.position.copyFrom(this._ownerNode.absolutePosition),this._virtualTransformNode.scaling.copyFrom(this._ownerNode.absoluteScaling),this._virtualTransformNode.rotationQuaternion.copyFrom(this._ownerNode.absoluteRotationQuaternion),this._virtualTransformNode.setPivotPoint(t,1),this._resetVirtualMeshesPosition())}_targetDrag(e,t){this.currentDraggingPointerIds.length===1?this._onePointerPositionUpdated(e,t):this.currentDraggingPointerIds.length===2&&this._twoPointersPositionUpdated()}_targetDragEnd(){if(this.currentDraggingPointerIds.length===1){this._resetVirtualMeshesPosition();const e=this.faceCameraOnDragStart;this.faceCameraOnDragStart=!1,this._targetDragStart(),this.faceCameraOnDragStart=e}}detach(){super.detach(),this._ownerNode&&this._ownerNode.getScene().onBeforeRenderObservable.remove(this._sceneRenderObserver),this._virtualTransformNode&&this._virtualTransformNode.dispose()}}class K2e{constructor(){this._attachPointLocalOffset=new P,this._workingPosition=new P,this._workingQuaternion=new Re,this._lastTick=-1,this._hit=!1,this.hitNormalOffset=.05,this.meshes=[],this.interpolatePose=!0,this.lerpTime=250,this.keepOrientationVertical=!0,this.enabled=!0,this.maxStickingDistance=.8}get name(){return"SurfaceMagnetism"}init(){}attach(e,t){this._attachedMesh=e,this._scene=t||e.getScene(),this._attachedMesh.rotationQuaternion||(this._attachedMesh.rotationQuaternion=Re.RotationYawPitchRoll(this._attachedMesh.rotation.y,this._attachedMesh.rotation.x,this._attachedMesh.rotation.z)),this.updateAttachPoint(),this._workingPosition.copyFrom(this._attachedMesh.position),this._workingQuaternion.copyFrom(this._attachedMesh.rotationQuaternion),this._addObservables()}detach(){this._attachedMesh=null,this._removeObservables()}_getTargetPose(e){if(!this._attachedMesh)return null;if(e&&e.hit){const t=e.getNormal(!0,!0),i=e.pickedPoint;if(!t||!i)return null;t.normalize();const s=ae.Vector3[0];return s.copyFrom(t),s.scaleInPlace(this.hitNormalOffset),s.addInPlace(i),this._attachedMesh.parent&&(ae.Matrix[0].copyFrom(this._attachedMesh.parent.getWorldMatrix()).invert(),P.TransformNormalToRef(s,ae.Matrix[0],s)),{position:s,quaternion:Re.RotationYawPitchRoll(-Math.atan2(t.x,-t.z),this.keepOrientationVertical?0:Math.atan2(t.y,Math.sqrt(t.z*t.z+t.x*t.x)),0)}}return null}updateAttachPoint(){this._getAttachPointOffsetToRef(this._attachPointLocalOffset)}findAndUpdateTarget(e){if(this._hit=!1,!e.ray)return!1;const t=e.ray.intersectsMeshes(this.meshes)[0];if(this._attachedMesh&&t&&t.hit&&t.pickedMesh){const i=this._getTargetPose(t);i&&P.Distance(this._attachedMesh.position,i.position)<this.maxStickingDistance&&(this._workingPosition.copyFrom(i.position),this._workingQuaternion.copyFrom(i.quaternion),this._hit=!0)}return this._hit}_getAttachPointOffsetToRef(e){if(!this._attachedMesh){e.setAll(0);return}const t=ae.Quaternion[0];t.copyFrom(this._attachedMesh.rotationQuaternion),this._attachedMesh.rotationQuaternion.copyFromFloats(0,0,0,1),this._attachedMesh.computeWorldMatrix();const i=this._attachedMesh.getHierarchyBoundingVectors(),s=ae.Vector3[0];i.max.addToRef(i.min,s),s.scaleInPlace(.5),s.z=i.max.z;const r=ae.Matrix[0];this._attachedMesh.getWorldMatrix().invertToRef(r),P.TransformCoordinatesToRef(s,r,e),this._attachedMesh.rotationQuaternion.copyFrom(t)}_updateTransformToGoal(e){if(!this._attachedMesh||!this._hit)return;const t=this._attachedMesh.parent;this._attachedMesh.setParent(null);const i=ae.Vector3[0];if(P.TransformNormalToRef(this._attachPointLocalOffset,this._attachedMesh.getWorldMatrix(),i),!this.interpolatePose){this._attachedMesh.position.copyFrom(this._workingPosition).subtractInPlace(i),this._attachedMesh.rotationQuaternion.copyFrom(this._workingQuaternion);return}const s=new P;P.SmoothToRef(this._attachedMesh.position,this._workingPosition,e,this.lerpTime,s),this._attachedMesh.position.copyFrom(s);const r=new Re;r.copyFrom(this._attachedMesh.rotationQuaternion),Re.SmoothToRef(r,this._workingQuaternion,e,this.lerpTime,this._attachedMesh.rotationQuaternion),this._attachedMesh.setParent(t)}_addObservables(){this._pointerObserver=this._scene.onPointerObservable.add(e=>{this.enabled&&e.type==Xt.POINTERMOVE&&e.pickInfo&&this.findAndUpdateTarget(e.pickInfo)}),this._lastTick=Date.now(),this._onBeforeRender=this._scene.onBeforeRenderObservable.add(()=>{const e=Date.now();this._updateTransformToGoal(e-this._lastTick),this._lastTick=e})}_removeObservables(){this._scene.onPointerObservable.remove(this._pointerObserver),this._scene.onBeforeRenderObservable.remove(this._onBeforeRender),this._pointerObserver=null,this._onBeforeRender=null}}class q2e{constructor(){this._tmpQuaternion=new Re,this._tmpVectors=[new P,new P,new P,new P,new P,new P,new P],this._tmpMatrix=new me,this._tmpInvertView=new me,this._tmpForward=new P,this._tmpNodeForward=new P,this._tmpPosition=new P,this._workingPosition=new P,this._workingQuaternion=new Re,this._lastTick=-1,this._recenterNextUpdate=!0,this.interpolatePose=!0,this.lerpTime=500,this.ignoreCameraPitchAndRoll=!1,this.pitchOffset=15,this.maxViewVerticalDegrees=30,this.maxViewHorizontalDegrees=30,this.orientToCameraDeadzoneDegrees=60,this.ignoreDistanceClamp=!1,this.ignoreAngleClamp=!1,this.verticalMaxDistance=0,this.defaultDistance=.8,this.maximumDistance=2,this.minimumDistance=.3,this.useFixedVerticalOffset=!1,this.fixedVerticalOffset=0,this._enabled=!0}get followedCamera(){return this._followedCamera||this._scene.activeCamera}set followedCamera(e){this._followedCamera=e}get name(){return"Follow"}init(){}attach(e,t){this._scene=e.getScene(),this.attachedNode=e,t&&(this.followedCamera=t),this._addObservables()}detach(){this.attachedNode=null,this._removeObservables()}recenter(){this._recenterNextUpdate=!0}_angleBetweenVectorAndPlane(e,t){return this._tmpVectors[0].copyFrom(e),e=this._tmpVectors[0],this._tmpVectors[1].copyFrom(t),t=this._tmpVectors[1],e.normalize(),t.normalize(),Math.PI/2-Math.acos(P.Dot(e,t))}_length2D(e){return Math.sqrt(e.x*e.x+e.z*e.z)}_distanceClamp(e,t=!1){let i=this.minimumDistance,s=this.maximumDistance;const r=this.defaultDistance,n=this._tmpVectors[0];n.copyFrom(e);let o=n.length();if(n.normalizeFromLength(o),this.ignoreCameraPitchAndRoll){i=this._length2D(n)*i,s=this._length2D(n)*s;const c=this._length2D(e);n.scaleInPlace(o/c),o=c}let l=o;return t?l=r:l=Os(o,i,s),e.copyFrom(n).scaleInPlace(l),o!==l}_applyVerticalClamp(e){this.verticalMaxDistance!==0&&(e.y=Os(e.y,-this.verticalMaxDistance,this.verticalMaxDistance))}_toOrientationQuatToRef(e,t){Re.RotationYawPitchRollToRef(Math.atan2(e.x,e.z),Math.atan2(e.y,Math.sqrt(e.z*e.z+e.x*e.x)),0,t)}_applyPitchOffset(e){const t=this._tmpVectors[0],i=this._tmpVectors[1];t.copyFromFloats(0,0,this._scene.useRightHandedSystem?-1:1),i.copyFromFloats(1,0,0),P.TransformNormalToRef(t,e,t),t.y=0,t.normalize(),P.TransformNormalToRef(i,e,i),Re.RotationAxisToRef(i,this.pitchOffset*Math.PI/180,this._tmpQuaternion),t.rotateByQuaternionToRef(this._tmpQuaternion,t),this._toOrientationQuatToRef(t,this._tmpQuaternion),this._tmpQuaternion.toRotationMatrix(this._tmpMatrix),e.copyFrom(this._tmpMatrix)}_angularClamp(e,t){const i=this._tmpVectors[5];i.copyFromFloats(0,0,this._scene.useRightHandedSystem?-1:1);const s=this._tmpVectors[6];s.copyFromFloats(1,0,0),P.TransformNormalToRef(i,e,i),P.TransformNormalToRef(s,e,s);const r=P.UpReadOnly;if(t.length()<Ii)return!1;let o=!1;const l=this._tmpQuaternion;if(this.ignoreCameraPitchAndRoll){const f=P.GetAngleBetweenVectorsOnPlane(t,i,s);Re.RotationAxisToRef(s,f,l),t.rotateByQuaternionToRef(l,t)}else{const f=-P.GetAngleBetweenVectorsOnPlane(t,i,s),p=this.maxViewVerticalDegrees*Math.PI/180*.5;f<-p?(Re.RotationAxisToRef(s,-f-p,l),t.rotateByQuaternionToRef(l,t),o=!0):f>p&&(Re.RotationAxisToRef(s,-f+p,l),t.rotateByQuaternionToRef(l,t),o=!0)}const c=this._angleBetweenVectorAndPlane(t,s)*(this._scene.useRightHandedSystem?-1:1),u=this.maxViewHorizontalDegrees*Math.PI/180*.5;return c<-u?(Re.RotationAxisToRef(r,-c-u,l),t.rotateByQuaternionToRef(l,t),o=!0):c>u&&(Re.RotationAxisToRef(r,-c+u,l),t.rotateByQuaternionToRef(l,t),o=!0),o}_orientationClamp(e,t){var o;const i=this._tmpVectors[0];i.copyFrom(e).scaleInPlace(-1).normalize();const s=this._tmpVectors[1],r=this._tmpVectors[2];s.copyFromFloats(0,1,0),P.CrossToRef(i,s,r);const n=r.length();n<Ii||(r.normalizeFromLength(n),P.CrossToRef(r,i,s),(o=this.attachedNode)!=null&&o.getScene().useRightHandedSystem?Re.FromLookDirectionRHToRef(i,s,t):Re.FromLookDirectionLHToRef(i,s,t))}_passedOrientationDeadzone(e,t){const i=this._tmpVectors[5];return i.copyFrom(e),i.normalize(),Math.abs(P.GetAngleBetweenVectorsOnPlane(t,i,P.UpReadOnly))*180/Math.PI>this.orientToCameraDeadzoneDegrees}_updateLeashing(e){if(this.attachedNode&&this._enabled){const t=this.attachedNode.parent;this.attachedNode.setParent(null);const i=this.attachedNode.getWorldMatrix(),s=this._workingPosition,r=this._workingQuaternion,n=this.attachedNode.getPivotPoint(),o=this._tmpInvertView;o.copyFrom(e.getViewMatrix()),o.invert(),P.TransformCoordinatesToRef(n,i,s);const l=this._tmpPosition;l.copyFromFloats(0,0,0),P.TransformCoordinatesToRef(l,i,l),l.scaleInPlace(-1).subtractInPlace(n),s.subtractInPlace(e.globalPosition),this.ignoreCameraPitchAndRoll&&this._applyPitchOffset(o);let c=!1;const u=this._tmpForward;u.copyFromFloats(0,0,this._scene.useRightHandedSystem?-1:1),P.TransformNormalToRef(u,o,u);const f=this._tmpNodeForward;if(f.copyFromFloats(0,0,this._scene.useRightHandedSystem?-1:1),P.TransformNormalToRef(f,i,f),this._recenterNextUpdate)s.copyFrom(u).scaleInPlace(this.defaultDistance);else if(this.ignoreAngleClamp){const m=s.length();s.copyFrom(u).scaleInPlace(m)}else c=this._angularClamp(o,s);let p=!1;this.ignoreDistanceClamp||(p=this._distanceClamp(s,c),this._applyVerticalClamp(s)),this.useFixedVerticalOffset&&(s.y=l.y-e.globalPosition.y+this.fixedVerticalOffset),(c||p||this._passedOrientationDeadzone(s,f)||this._recenterNextUpdate)&&this._orientationClamp(s,r),this._workingPosition.subtractInPlace(n),this._recenterNextUpdate=!1,this.attachedNode.setParent(t)}}_updateTransformToGoal(e){if(!this.attachedNode||!this.followedCamera||!this._enabled)return;this.attachedNode.rotationQuaternion||(this.attachedNode.rotationQuaternion=Re.Identity());const t=this.attachedNode.parent;if(this.attachedNode.setParent(null),!this.interpolatePose){this.attachedNode.position.copyFrom(this.followedCamera.globalPosition).addInPlace(this._workingPosition),this.attachedNode.rotationQuaternion.copyFrom(this._workingQuaternion);return}const i=new P;i.copyFrom(this.attachedNode.position).subtractInPlace(this.followedCamera.globalPosition),P.SmoothToRef(i,this._workingPosition,e,this.lerpTime,i),i.addInPlace(this.followedCamera.globalPosition),this.attachedNode.position.copyFrom(i);const s=new Re;s.copyFrom(this.attachedNode.rotationQuaternion),Re.SmoothToRef(s,this._workingQuaternion,e,this.lerpTime,this.attachedNode.rotationQuaternion),this.attachedNode.setParent(t)}_addObservables(){this._lastTick=Date.now(),this._onBeforeRender=this._scene.onBeforeRenderObservable.add(()=>{if(!this.followedCamera)return;const e=Date.now();this._updateLeashing(this.followedCamera),this._updateTransformToGoal(e-this._lastTick),this._lastTick=e})}_removeObservables(){this._onBeforeRender&&this._scene.onBeforeRenderObservable.remove(this._onBeforeRender)}}class ur{}ur.ANCHOR_SYSTEM="xr-anchor-system",ur.BACKGROUND_REMOVER="xr-background-remover",ur.HIT_TEST="xr-hit-test",ur.MESH_DETECTION="xr-mesh-detection",ur.PHYSICS_CONTROLLERS="xr-physics-controller",ur.PLANE_DETECTION="xr-plane-detection",ur.POINTER_SELECTION="xr-controller-pointer-selection",ur.TELEPORTATION="xr-controller-teleportation",ur.FEATURE_POINTS="xr-feature-points",ur.HAND_TRACKING="xr-hand-tracking",ur.IMAGE_TRACKING="xr-image-tracking",ur.NEAR_INTERACTION="xr-near-interaction",ur.DOM_OVERLAY="xr-dom-overlay",ur.MOVEMENT="xr-controller-movement",ur.LIGHT_ESTIMATION="xr-light-estimation",ur.EYE_TRACKING="xr-eye-tracking",ur.WALKING_LOCOMOTION="xr-walking-locomotion",ur.LAYERS="xr-layers",ur.DEPTH_SENSING="xr-depth-sensing",ur.SPACE_WARP="xr-space-warp",ur.RAW_CAMERA_ACCESS="xr-raw-camera-access";class $a{constructor(e){this._xrSessionManager=e,this._features={},this._xrSessionManager.onXRSessionInit.add(()=>{this.getEnabledFeatures().forEach(t=>{const i=this._features[t];i.enabled&&!i.featureImplementation.attached&&!i.featureImplementation.disableAutoAttach&&this.attachFeature(t)})}),this._xrSessionManager.onXRSessionEnded.add(()=>{this.getEnabledFeatures().forEach(t=>{const i=this._features[t];i.enabled&&i.featureImplementation.attached&&this.detachFeature(t)})})}static AddWebXRFeature(e,t,i=1,s=!1){this._AvailableFeatures[e]=this._AvailableFeatures[e]||{latest:i},i>this._AvailableFeatures[e].latest&&(this._AvailableFeatures[e].latest=i),s&&(this._AvailableFeatures[e].stable=i),this._AvailableFeatures[e][i]=t}static ConstructFeature(e,t=1,i,s){const r=this._AvailableFeatures[e][t];if(!r)throw new Error("feature not found");return r(i,s)}static GetAvailableFeatures(){return Object.keys(this._AvailableFeatures)}static GetAvailableVersions(e){return Object.keys(this._AvailableFeatures[e])}static GetLatestVersionOfFeature(e){return this._AvailableFeatures[e]&&this._AvailableFeatures[e].latest||-1}static GetStableVersionOfFeature(e){return this._AvailableFeatures[e]&&this._AvailableFeatures[e].stable||-1}attachFeature(e){const t=this._features[e];t&&t.enabled&&!t.featureImplementation.attached&&(t.featureImplementation.attach()||Le.Warn(`Feature ${e} failed to attach`))}detachFeature(e){const t=this._features[e];t&&t.featureImplementation.attached&&(t.featureImplementation.detach()||Le.Warn(`Feature ${e} failed to detach`))}disableFeature(e){const t=typeof e=="string"?e:e.Name,i=this._features[t];return i&&i.enabled?(i.enabled=!1,this.detachFeature(t),i.featureImplementation.dispose(),delete this._features[t],!0):!1}dispose(){this.getEnabledFeatures().forEach(e=>{this.disableFeature(e)})}enableFeature(e,t="latest",i={},s=!0,r=!0){const n=typeof e=="string"?e:e.Name;let o=0;if(typeof t=="string"){if(!t)throw new Error(`Error in provided version - ${n} (${t})`);if(t==="stable"?o=$a.GetStableVersionOfFeature(n):t==="latest"?o=$a.GetLatestVersionOfFeature(n):o=+t,o===-1||isNaN(o))throw new Error(`feature not found - ${n} (${t})`)}else o=t;const l=$a._ConflictingFeatures[n];if(l!==void 0&&this.getEnabledFeatures().indexOf(l)!==-1)throw new Error(`Feature ${n} cannot be enabled while ${l} is enabled.`);const c=this._features[n],u=$a.ConstructFeature(n,o,this._xrSessionManager,i);if(!u)throw new Error(`feature not found - ${n}`);c&&this.disableFeature(n);const f=u();if(f.dependsOn&&!f.dependsOn.every(m=>!!this._features[m]))throw new Error(`Dependant features missing. Make sure the following features are enabled - ${f.dependsOn.join(", ")}`);if(f.isCompatible())return this._features[n]={featureImplementation:f,enabled:!0,version:o,required:r},s?this._xrSessionManager.session&&!this._features[n].featureImplementation.attached&&this.attachFeature(n):this._features[n].featureImplementation.disableAutoAttach=!0,this._features[n].featureImplementation;if(r)throw new Error("required feature not compatible");return Le.Warn(`Feature ${n} not compatible with the current environment/browser and was not enabled.`),f}getEnabledFeature(e){return this._features[e]&&this._features[e].featureImplementation}getEnabledFeatures(){return Object.keys(this._features)}async _extendXRSessionInitObject(e){const t=this.getEnabledFeatures();for(const i of t){const s=this._features[i],r=s.featureImplementation.xrNativeFeatureName;if(r&&(s.required?(e.requiredFeatures=e.requiredFeatures||[],e.requiredFeatures.indexOf(r)===-1&&e.requiredFeatures.push(r)):(e.optionalFeatures=e.optionalFeatures||[],e.optionalFeatures.indexOf(r)===-1&&e.optionalFeatures.push(r))),s.featureImplementation.getXRSessionInitExtension){const n=await s.featureImplementation.getXRSessionInitExtension();e={...e,...n}}}return e}}$a._AvailableFeatures={},$a._ConflictingFeatures={[ur.TELEPORTATION]:ur.MOVEMENT,[ur.MOVEMENT]:ur.TELEPORTATION};var Bq;(function(a){a[a.ABOVE_FINGER_TIPS=0]="ABOVE_FINGER_TIPS",a[a.RADIAL_SIDE=1]="RADIAL_SIDE",a[a.ULNAR_SIDE=2]="ULNAR_SIDE",a[a.BELOW_WRIST=3]="BELOW_WRIST"})(Bq||(Bq={}));var zq;(function(a){a[a.LOOK_AT_CAMERA=0]="LOOK_AT_CAMERA",a[a.HAND_ROTATION=1]="HAND_ROTATION"})(zq||(zq={}));var Fq;(function(a){a[a.ALWAYS_VISIBLE=0]="ALWAYS_VISIBLE",a[a.PALM_UP=1]="PALM_UP",a[a.GAZE_FOCUS=2]="GAZE_FOCUS",a[a.PALM_AND_GAZE=3]="PALM_AND_GAZE"})(Fq||(Fq={}));class Q2e{constructor(){this._sceneRenderObserver=null,this._zoneAxis={},this.handConstraintVisibility=3,this.palmUpStrictness=.95,this.gazeProximityRadius=.15,this.targetOffset=.1,this.targetZone=2,this.zoneOrientationMode=1,this.nodeOrientationMode=1,this.handedness="none",this.lerpTime=100,this._zoneAxis[0]=new P(0,1,0),this._zoneAxis[1]=new P(-1,0,0),this._zoneAxis[2]=new P(1,0,0),this._zoneAxis[3]=new P(0,-1,0)}get name(){return"HandConstraint"}enable(){this._node.setEnabled(!0)}disable(){this._node.setEnabled(!1)}_getHandPose(){if(!this._handTracking)return null;let e;if(this.handedness==="none"?e=this._handTracking.getHandByHandedness("left")||this._handTracking.getHandByHandedness("right"):e=this._handTracking.getHandByHandedness(this.handedness),e){const t=e.getJointMesh("pinky-finger-metacarpal"),i=e.getJointMesh("middle-finger-metacarpal"),s=e.getJointMesh("wrist");if(s&&i&&t){const r={position:i.absolutePosition,quaternion:new Re,id:e.xrController.uniqueId},n=ae.Vector3[0],o=ae.Vector3[1],l=ae.Vector3[2];return n.copyFrom(i.absolutePosition).subtractInPlace(s.absolutePosition).normalize(),o.copyFrom(t.absolutePosition).subtractInPlace(i.absolutePosition).normalize(),P.CrossToRef(n,o,o),P.CrossToRef(o,n,l),Re.FromLookDirectionLHToRef(o,n,r.quaternion),r}}return null}init(){}attach(e){this._node=e,this._scene=e.getScene(),this._node.rotationQuaternion||(this._node.rotationQuaternion=Re.RotationYawPitchRoll(this._node.rotation.y,this._node.rotation.x,this._node.rotation.z));let t=Date.now();this._sceneRenderObserver=this._scene.onBeforeRenderObservable.add(()=>{const i=this._getHandPose();if(this._node.reservedDataStore=this._node.reservedDataStore||{},this._node.reservedDataStore.nearInteraction=this._node.reservedDataStore.nearInteraction||{},this._node.reservedDataStore.nearInteraction.excludedControllerId=null,i){const s=ae.Vector3[0],r=this._scene.activeCamera;s.copyFrom(this._zoneAxis[this.targetZone]);const n=ae.Quaternion[0];if(r&&(this.zoneOrientationMode===0||this.nodeOrientationMode===0)){const u=ae.Vector3[1];u.copyFrom(r.position).subtractInPlace(i.position).normalize(),this._scene.useRightHandedSystem?Re.FromLookDirectionRHToRef(u,P.UpReadOnly,n):Re.FromLookDirectionLHToRef(u,P.UpReadOnly,n)}this.zoneOrientationMode===1?i.quaternion.toRotationMatrix(ae.Matrix[0]):n.toRotationMatrix(ae.Matrix[0]),P.TransformNormalToRef(s,ae.Matrix[0],s),s.scaleInPlace(this.targetOffset);const o=ae.Vector3[2],l=ae.Quaternion[1];o.copyFrom(i.position).addInPlace(s),this.nodeOrientationMode===1?l.copyFrom(i.quaternion):l.copyFrom(n);const c=Date.now()-t;P.SmoothToRef(this._node.position,o,c,this.lerpTime,this._node.position),Re.SmoothToRef(this._node.rotationQuaternion,l,c,this.lerpTime,this._node.rotationQuaternion),this._node.reservedDataStore.nearInteraction.excludedControllerId=i.id}this._setVisibility(i),t=Date.now()})}_setVisibility(e){let t=!0,i=!0;const s=this._scene.activeCamera;if(s){const r=s.getForwardRay();if(this.handConstraintVisibility===2||this.handConstraintVisibility===3){i=!1;let n;this._eyeTracking&&(n=this._eyeTracking.getEyeGaze()),n=n||r;const o=ae.Vector3[0];e?e.position.subtractToRef(n.origin,o):this._node.getAbsolutePosition().subtractToRef(n.origin,o);const l=P.Dot(o,n.direction),c=l*l;l>0&&o.lengthSquared()-c<this.gazeProximityRadius*this.gazeProximityRadius&&(i=!0)}if((this.handConstraintVisibility===1||this.handConstraintVisibility===3)&&(t=!1,e)){const n=ae.Vector3[0];P.LeftHandedForwardReadOnly.rotateByQuaternionToRef(e.quaternion,n),P.Dot(n,r.direction)>this.palmUpStrictness*2-1&&(t=!0)}}this._node.setEnabled(t&&i)}detach(){this._scene.onBeforeRenderObservable.remove(this._sceneRenderObserver)}linkToXRExperience(e){const t=e.featuresManager?e.featuresManager:e;if(!t)Le.Error("XR features manager must be available or provided directly for the Hand Menu to work");else{try{this._eyeTracking=t.getEnabledFeature(ur.EYE_TRACKING)}catch{}try{this._handTracking=t.getEnabledFeature(ur.HAND_TRACKING)}catch{Le.Error("Hand tracking must be enabled for the Hand Menu to work")}}}}class u3{get maxAngle(){return this._maxAngle}set maxAngle(e){this._setMaxAngle(e)}constructor(e,t,i){this.targetPosition=P.Zero(),this.poleTargetPosition=P.Zero(),this.poleTargetLocalOffset=P.Zero(),this.poleAngle=0,this.slerpAmount=1,this._bone1Quat=Re.Identity(),this._bone1Mat=me.Identity(),this._bone2Ang=Math.PI,this._maxAngle=Math.PI,this._rightHandedSystem=!1,this._bendAxis=P.Right(),this._slerping=!1,this._adjustRoll=0,this._notEnoughInformation=!1,this._bone2=t;const s=t.getParent();if(!s){this._notEnoughInformation=!0,de.Error("BoneIKController: bone must have a parent for IK to work.");return}if(this._bone1=s,this._bone2.children.length===0&&!this._bone2.length){this._notEnoughInformation=!0,de.Error("BoneIKController: bone must not be a leaf or it should have a length for IK to work.");return}this.mesh=e,t.getSkeleton().computeAbsoluteMatrices();const r=t.getPosition();if(t.getAbsoluteMatrix().determinant()>0&&(this._rightHandedSystem=!0,this._bendAxis.x=0,this._bendAxis.y=0,this._bendAxis.z=-1,r.x>r.y&&r.x>r.z&&(this._adjustRoll=Math.PI*.5,this._bendAxis.z=1)),this._bone1.length&&this._bone2.length){const n=this._bone1.getScale(),o=this._bone2.getScale();this._bone1Length=this._bone1.length*n.y*this.mesh.scaling.y,this._bone2Length=this._bone2.length*o.y*this.mesh.scaling.y}else if(this._bone2.children[0]){e.computeWorldMatrix(!0);const n=this._bone2.children[0].getAbsolutePosition(e),o=this._bone2.getAbsolutePosition(e),l=this._bone1.getAbsolutePosition(e);this._bone2Length=P.Distance(n,o),this._bone1Length=P.Distance(o,l)}else{e.computeWorldMatrix(!0);const n=this._bone2.getScale();this._bone2Length=this._bone2.length*n.y*this.mesh.scaling.y;const o=this._bone2.getAbsolutePosition(e),l=this._bone1.getAbsolutePosition(e);this._bone1Length=P.Distance(o,l)}this._bone1.getRotationMatrixToRef(1,e,this._bone1Mat),this.maxAngle=Math.PI,i&&(i.targetMesh&&(this.targetMesh=i.targetMesh,this.targetMesh.computeWorldMatrix(!0)),i.poleTargetMesh?(this.poleTargetMesh=i.poleTargetMesh,this.poleTargetMesh.computeWorldMatrix(!0)):i.poleTargetBone?this.poleTargetBone=i.poleTargetBone:this._bone1.getParent()&&(this.poleTargetBone=this._bone1.getParent()),i.poleTargetLocalOffset&&this.poleTargetLocalOffset.copyFrom(i.poleTargetLocalOffset),i.poleAngle&&(this.poleAngle=i.poleAngle),i.bendAxis&&this._bendAxis.copyFrom(i.bendAxis),i.maxAngle&&(this.maxAngle=i.maxAngle),i.slerpAmount&&(this.slerpAmount=i.slerpAmount))}_setMaxAngle(e){e<0&&(e=0),(e>Math.PI||e==null)&&(e=Math.PI),this._maxAngle=e;const t=this._bone1Length,i=this._bone2Length;this._maxReach=Math.sqrt(t*t+i*i-2*t*i*Math.cos(e))}update(){if(this._notEnoughInformation)return;const e=this.targetPosition,t=this.poleTargetPosition,i=u3._TmpMats[0],s=u3._TmpMats[1];this.targetMesh&&e.copyFrom(this.targetMesh.getAbsolutePosition()),this.poleTargetBone?this.poleTargetBone.getAbsolutePositionFromLocalToRef(this.poleTargetLocalOffset,this.mesh,t):this.poleTargetMesh&&P.TransformCoordinatesToRef(this.poleTargetLocalOffset,this.poleTargetMesh.getWorldMatrix(),t);const r=u3._TmpVecs[0],n=u3._TmpVecs[1],o=u3._TmpVecs[2],l=u3._TmpVecs[3],c=u3._TmpVecs[4],u=u3._TmpQuat;this._bone1.getAbsolutePositionToRef(this.mesh,r),t.subtractToRef(r,c),c.x==0&&c.y==0&&c.z==0?c.y=1:c.normalize(),e.subtractToRef(r,l),l.normalize(),P.CrossToRef(l,c,n),n.normalize(),P.CrossToRef(l,n,o),o.normalize(),me.FromXYZAxesToRef(o,l,n,i);const f=this._bone1Length,p=this._bone2Length;let m=P.Distance(r,e);this._maxReach>0&&(m=Math.min(this._maxReach,m));let _=(p*p+m*m-f*f)/(2*p*m),d=(m*m+f*f-p*p)/(2*m*f);_>1&&(_=1),d>1&&(d=1),_<-1&&(_=-1),d<-1&&(d=-1);const h=Math.acos(_),x=Math.acos(d);let A=-h-x;if(this._rightHandedSystem)me.RotationYawPitchRollToRef(0,0,this._adjustRoll,s),s.multiplyToRef(i,i),me.RotationAxisToRef(this._bendAxis,x,s),s.multiplyToRef(i,i);else{const S=u3._TmpVecs[5];S.copyFrom(this._bendAxis),S.x*=-1,me.RotationAxisToRef(S,-x,s),s.multiplyToRef(i,i)}this.poleAngle&&(me.RotationAxisToRef(l,this.poleAngle,s),i.multiplyToRef(s,i)),this._bone1&&(this.slerpAmount<1?(this._slerping||Re.FromRotationMatrixToRef(this._bone1Mat,this._bone1Quat),Re.FromRotationMatrixToRef(i,u),Re.SlerpToRef(this._bone1Quat,u,this.slerpAmount,this._bone1Quat),A=this._bone2Ang*(1-this.slerpAmount)+A*this.slerpAmount,this._bone1.setRotationQuaternion(this._bone1Quat,1,this.mesh),this._slerping=!0):(this._bone1.setRotationMatrix(i,1,this.mesh),this._bone1Mat.copyFrom(i),this._slerping=!1),this._updateLinkedTransformRotation(this._bone1)),this._bone2.setAxisAngle(this._bendAxis,A,0),this._updateLinkedTransformRotation(this._bone2),this._bone2Ang=A}_updateLinkedTransformRotation(e){e._linkedTransformNode&&(e._linkedTransformNode.rotationQuaternion||(e._linkedTransformNode.rotationQuaternion=new Re),e.getRotationQuaternionToRef(0,null,e._linkedTransformNode.rotationQuaternion))}}u3._TmpVecs=[P.Zero(),P.Zero(),P.Zero(),P.Zero(),P.Zero(),P.Zero()],u3._TmpQuat=Re.Identity(),u3._TmpMats=[me.Identity(),me.Identity()];class Gu{get minYaw(){return this._minYaw}set minYaw(e){this._minYaw=e,this._minYawSin=Math.sin(e),this._minYawCos=Math.cos(e),this._maxYaw!=null&&(this._midYawConstraint=this._getAngleDiff(this._minYaw,this._maxYaw)*.5+this._minYaw,this._yawRange=this._maxYaw-this._minYaw)}get maxYaw(){return this._maxYaw}set maxYaw(e){this._maxYaw=e,this._maxYawSin=Math.sin(e),this._maxYawCos=Math.cos(e),this._minYaw!=null&&(this._midYawConstraint=this._getAngleDiff(this._minYaw,this._maxYaw)*.5+this._minYaw,this._yawRange=this._maxYaw-this._minYaw)}get minPitch(){return this._minPitch}set minPitch(e){this._minPitch=e,this._minPitchTan=Math.tan(e)}get maxPitch(){return this._maxPitch}set maxPitch(e){this._maxPitch=e,this._maxPitchTan=Math.tan(e)}constructor(e,t,i,s){if(this.upAxis=P.Up(),this.upAxisSpace=0,this.adjustYaw=0,this.adjustPitch=0,this.adjustRoll=0,this.slerpAmount=1,this._boneQuat=Re.Identity(),this._slerping=!1,this._firstFrameSkipped=!1,this._fowardAxis=P.Forward(),this.useAbsoluteValueForYaw=!1,this.mesh=e,this.bone=t,this.target=i,s){if(s.adjustYaw&&(this.adjustYaw=s.adjustYaw),s.adjustPitch&&(this.adjustPitch=s.adjustPitch),s.adjustRoll&&(this.adjustRoll=s.adjustRoll),s.maxYaw!=null?this.maxYaw=s.maxYaw:this.maxYaw=Math.PI,s.minYaw!=null?this.minYaw=s.minYaw:this.minYaw=-Math.PI,s.maxPitch!=null?this.maxPitch=s.maxPitch:this.maxPitch=Math.PI,s.minPitch!=null?this.minPitch=s.minPitch:this.minPitch=-Math.PI,s.slerpAmount!=null&&(this.slerpAmount=s.slerpAmount),s.upAxis!=null&&(this.upAxis=s.upAxis),s.upAxisSpace!=null&&(this.upAxisSpace=s.upAxisSpace),s.yawAxis!=null||s.pitchAxis!=null){let r=fo.Y,n=fo.X;s.yawAxis!=null&&(r=s.yawAxis.clone(),r.normalize()),s.pitchAxis!=null&&(n=s.pitchAxis.clone(),n.normalize());const o=P.Cross(n,r);this._transformYawPitch=me.Identity(),me.FromXYZAxesToRef(n,r,o,this._transformYawPitch),this._transformYawPitchInv=this._transformYawPitch.clone(),this._transformYawPitch.invert()}s.useAbsoluteValueForYaw!==void 0&&(this.useAbsoluteValueForYaw=s.useAbsoluteValueForYaw)}!t.getParent()&&this.upAxisSpace==2&&(this.upAxisSpace=0)}update(){if(this.slerpAmount<1&&!this._firstFrameSkipped){this._firstFrameSkipped=!0;return}const e=this.bone,t=Gu._TmpVecs[0];e.getAbsolutePositionToRef(this.mesh,t);let i=this.target;const s=Gu._TmpMats[0],r=Gu._TmpMats[1],n=this.mesh,o=e.getParent(),l=Gu._TmpVecs[1];l.copyFrom(this.upAxis),this.upAxisSpace==2&&o?(this._transformYawPitch&&P.TransformCoordinatesToRef(l,this._transformYawPitchInv,l),o.getDirectionToRef(l,this.mesh,l)):this.upAxisSpace==0&&(n.getDirectionToRef(l,l),(n.scaling.x!=1||n.scaling.y!=1||n.scaling.z!=1)&&l.normalize());let c=!1,u=!1;if((this._maxYaw!=Math.PI||this._minYaw!=-Math.PI)&&(c=!0),(this._maxPitch!=Math.PI||this._minPitch!=-Math.PI)&&(u=!0),c||u){const h=Gu._TmpMats[2],x=Gu._TmpMats[3];if(this.upAxisSpace==2&&l.y==1&&o)o.getRotationMatrixToRef(1,this.mesh,h);else if(this.upAxisSpace==0&&l.y==1&&!o)h.copyFrom(n.getWorldMatrix());else{let S=Gu._TmpVecs[2];S.copyFrom(this._fowardAxis),this._transformYawPitch&&P.TransformCoordinatesToRef(S,this._transformYawPitchInv,S),o?o.getDirectionToRef(S,this.mesh,S):n.getDirectionToRef(S,S);const E=P.Cross(l,S);E.normalize(),S=P.Cross(E,l),me.FromXYZAxesToRef(E,l,S,h)}h.invertToRef(x);let A=null;if(u){const S=Gu._TmpVecs[3];i.subtractToRef(t,S),P.TransformCoordinatesToRef(S,x,S),A=Math.sqrt(S.x*S.x+S.z*S.z);const E=Math.atan2(S.y,A);let b=E;E>this._maxPitch?(S.y=this._maxPitchTan*A,b=this._maxPitch):E<this._minPitch&&(S.y=this._minPitchTan*A,b=this._minPitch),E!=b&&(P.TransformCoordinatesToRef(S,h,S),S.addInPlace(t),i=S)}if(c){const S=Gu._TmpVecs[4];i.subtractToRef(t,S),P.TransformCoordinatesToRef(S,x,S);const E=Math.atan2(S.x,S.z),b=this.useAbsoluteValueForYaw?Math.abs(E):E;let M=E;if((b>this._maxYaw||b<this._minYaw)&&(A==null&&(A=Math.sqrt(S.x*S.x+S.z*S.z)),this._yawRange>Math.PI?this._isAngleBetween(E,this._maxYaw,this._midYawConstraint)?(S.z=this._maxYawCos*A,S.x=this._maxYawSin*A,M=this._maxYaw):this._isAngleBetween(E,this._midYawConstraint,this._minYaw)&&(S.z=this._minYawCos*A,S.x=this._minYawSin*A,M=this._minYaw):b>this._maxYaw?(S.z=this._maxYawCos*A,S.x=this._maxYawSin*A,E<0&&this.useAbsoluteValueForYaw&&(S.x*=-1),M=this._maxYaw):b<this._minYaw&&(S.z=this._minYawCos*A,S.x=this._minYawSin*A,E<0&&this.useAbsoluteValueForYaw&&(S.x*=-1),M=this._minYaw)),this._slerping&&this._yawRange>Math.PI){const T=Gu._TmpVecs[8];T.copyFrom(fo.Z),this._transformYawPitch&&P.TransformCoordinatesToRef(T,this._transformYawPitchInv,T);const O=Gu._TmpMats[4];this._boneQuat.toRotationMatrix(O),this.mesh.getWorldMatrix().multiplyToRef(O,O),P.TransformCoordinatesToRef(T,O,T),P.TransformCoordinatesToRef(T,x,T);const R=Math.atan2(T.x,T.z),I=this._getAngleBetween(R,E),N=this._getAngleBetween(R,this._midYawConstraint);if(I>N){A==null&&(A=Math.sqrt(S.x*S.x+S.z*S.z));const w=this._getAngleBetween(R,this._maxYaw);this._getAngleBetween(R,this._minYaw)<w?(M=R+Math.PI*.75,S.z=Math.cos(M)*A,S.x=Math.sin(M)*A):(M=R-Math.PI*.75,S.z=Math.cos(M)*A,S.x=Math.sin(M)*A)}}E!=M&&(P.TransformCoordinatesToRef(S,h,S),S.addInPlace(t),i=S)}}const f=Gu._TmpVecs[5],p=Gu._TmpVecs[6],m=Gu._TmpVecs[7],_=Gu._TmpQuat,d=Gu._TmpVecs[9];i.subtractToRef(t,f),f.normalize(),P.CrossToRef(l,f,p),p.normalize(),P.CrossToRef(f,p,m),m.normalize(),me.FromXYZAxesToRef(p,m,f,s),!(p.x===0&&p.y===0&&p.z===0)&&(m.x===0&&m.y===0&&m.z===0||f.x===0&&f.y===0&&f.z===0||((this.adjustYaw||this.adjustPitch||this.adjustRoll)&&(me.RotationYawPitchRollToRef(this.adjustYaw,this.adjustPitch,this.adjustRoll,r),r.multiplyToRef(s,s)),d.copyFrom(this.bone.getScale()),this.slerpAmount<1?(this._slerping||this.bone.getRotationQuaternionToRef(1,this.mesh,this._boneQuat),this._transformYawPitch&&this._transformYawPitch.multiplyToRef(s,s),Re.FromRotationMatrixToRef(s,_),Re.SlerpToRef(this._boneQuat,_,this.slerpAmount,this._boneQuat),this.bone.setRotationQuaternion(this._boneQuat,1,this.mesh),this._slerping=!0):(this._transformYawPitch&&this._transformYawPitch.multiplyToRef(s,s),this.bone.setRotationMatrix(s,1,this.mesh),this._slerping=!1),this.bone.setScale(d),this._updateLinkedTransformRotation()))}_getAngleDiff(e,t){let i=t-e;return i%=Math.PI*2,i>Math.PI?i-=Math.PI*2:i<-Math.PI&&(i+=Math.PI*2),i}_getAngleBetween(e,t){e%=2*Math.PI,e=e<0?e+2*Math.PI:e,t%=2*Math.PI,t=t<0?t+2*Math.PI:t;let i=0;return e<t?i=t-e:i=e-t,i>Math.PI&&(i=Math.PI*2-i),i}_isAngleBetween(e,t,i){if(e%=2*Math.PI,e=e<0?e+2*Math.PI:e,t%=2*Math.PI,t=t<0?t+2*Math.PI:t,i%=2*Math.PI,i=i<0?i+2*Math.PI:i,t<i){if(e>t&&e<i)return!0}else if(e>i&&e<t)return!0;return!1}_updateLinkedTransformRotation(){const e=this.bone;e._linkedTransformNode&&(e._linkedTransformNode.rotationQuaternion||(e._linkedTransformNode.rotationQuaternion=new Re),e.getRotationQuaternionToRef(0,null,e._linkedTransformNode.rotationQuaternion))}}Gu._TmpVecs=V1(10,P.Zero),Gu._TmpQuat=Re.Identity(),Gu._TmpMats=V1(5,me.Identity);class dB{constructor(e,t,i=3,s){this._engine=e,this._label=s,this._engine._storageBuffers.push(this),this._create(t,i)}_create(e,t){this._bufferSize=e,this._creationFlags=t,this._buffer=this._engine.createStorageBuffer(e,t,this._label)}_rebuild(){this._create(this._bufferSize,this._creationFlags)}getBuffer(){return this._buffer}update(e,t,i){this._buffer&&this._engine.updateStorageBuffer(this._buffer,e,t,i)}read(e,t,i,s){return this._engine.readFromStorageBuffer(this._buffer,e,t,i,s)}dispose(){const e=this._engine._storageBuffers,t=e.indexOf(this);t!==-1&&(e[t]=e[e.length-1],e.pop()),this._engine._releaseBuffer(this._buffer),this._buffer=null}}const fB=(()=>{const a=new Uint8Array(4),e=new Uint32Array(a.buffer);return!!((e[0]=1)&a[0])})();Object.defineProperty(q.prototype,"effectiveByteStride",{get:function(){return this._alignedBuffer&&this._alignedBuffer.byteStride||this.byteStride},enumerable:!0,configurable:!0}),Object.defineProperty(q.prototype,"effectiveByteOffset",{get:function(){return this._alignedBuffer?0:this.byteOffset},enumerable:!0,configurable:!0}),Object.defineProperty(q.prototype,"effectiveBuffer",{get:function(){return this._alignedBuffer&&this._alignedBuffer.getBuffer()||this._buffer.getBuffer()},enumerable:!0,configurable:!0}),q.prototype._rebuild=function(){var a,e;(a=this._buffer)==null||a._rebuild(),(e=this._alignedBuffer)==null||e._rebuild()},q.prototype.dispose=function(){var a;this._ownsBuffer&&this._buffer.dispose(),(a=this._alignedBuffer)==null||a.dispose(),this._alignedBuffer=void 0,this._isDisposed=!0},q.prototype.getWrapperBuffer=function(){return this._alignedBuffer||this._buffer},q.prototype._alignBuffer=function(){var f;const a=this._buffer.getData();if(!this.engine._features.forceVertexBufferStrideAndOffsetMultiple4Bytes||this.byteStride%4===0&&this.byteOffset%4===0||!a)return;const e=q.GetTypeByteLength(this.type),t=this.byteStride+3&-4,i=t/e,s=this._maxVerticesCount,n=s*t/e;let o;if(Array.isArray(a)){const p=new Float32Array(a);o=new DataView(p.buffer,p.byteOffset,p.byteLength)}else a instanceof ArrayBuffer?o=new DataView(a,0,a.byteLength):o=new DataView(a.buffer,a.byteOffset,a.byteLength);let l;this.type===q.BYTE?l=new Int8Array(n):this.type===q.UNSIGNED_BYTE?l=new Uint8Array(n):this.type===q.SHORT?l=new Int16Array(n):this.type===q.UNSIGNED_SHORT?l=new Uint16Array(n):this.type===q.INT?l=new Int32Array(n):this.type===q.UNSIGNED_INT?l=new Uint32Array(n):l=new Float32Array(n);const c=this.getSize();let u=this.byteOffset;for(let p=0;p<s;++p){for(let m=0;m<c;++m)switch(this.type){case q.BYTE:l[p*i+m]=o.getInt8(u+m);break;case q.UNSIGNED_BYTE:l[p*i+m]=o.getUint8(u+m);break;case q.SHORT:l[p*i+m]=o.getInt16(u+m*2,fB);break;case q.UNSIGNED_SHORT:l[p*i+m]=o.getUint16(u+m*2,fB);break;case q.INT:l[p*i+m]=o.getInt32(u+m*4,fB);break;case q.UNSIGNED_INT:l[p*i+m]=o.getUint32(u+m*4,fB);break;case q.FLOAT:l[p*i+m]=o.getFloat32(u+m*4,fB);break}u+=this.byteStride}(f=this._alignedBuffer)==null||f.dispose(),this._alignedBuffer=new fl(this.engine,l,!1,t,!1,this.getIsInstanced(),!0,this.instanceDivisor,(this._label??"VertexBuffer")+"_aligned")};class jNe{constructor(e,t){this.x=e,this.y=t}}class Dc{get isConnected(){return this._isConnected}constructor(e,t,i,s=0,r=1,n=2,o=3){this.id=e,this.index=t,this.browserGamepad=i,this._leftStick={x:0,y:0},this._rightStick={x:0,y:0},this._isConnected=!0,this._invertLeftStickY=!1,this.type=Dc.GAMEPAD,this._leftStickAxisX=s,this._leftStickAxisY=r,this._rightStickAxisX=n,this._rightStickAxisY=o,this.browserGamepad.axes.length>=2&&(this._leftStick={x:this.browserGamepad.axes[this._leftStickAxisX],y:this.browserGamepad.axes[this._leftStickAxisY]}),this.browserGamepad.axes.length>=4&&(this._rightStick={x:this.browserGamepad.axes[this._rightStickAxisX],y:this.browserGamepad.axes[this._rightStickAxisY]})}onleftstickchanged(e){this._onleftstickchanged=e}onrightstickchanged(e){this._onrightstickchanged=e}get leftStick(){return this._leftStick}set leftStick(e){this._onleftstickchanged&&(this._leftStick.x!==e.x||this._leftStick.y!==e.y)&&this._onleftstickchanged(e),this._leftStick=e}get rightStick(){return this._rightStick}set rightStick(e){this._onrightstickchanged&&(this._rightStick.x!==e.x||this._rightStick.y!==e.y)&&this._onrightstickchanged(e),this._rightStick=e}update(){this._leftStick&&(this.leftStick={x:this.browserGamepad.axes[this._leftStickAxisX],y:this.browserGamepad.axes[this._leftStickAxisY]},this._invertLeftStickY&&(this.leftStick.y*=-1)),this._rightStick&&(this.rightStick={x:this.browserGamepad.axes[this._rightStickAxisX],y:this.browserGamepad.axes[this._rightStickAxisY]})}dispose(){}}Dc.GAMEPAD=0,Dc.GENERIC=1,Dc.XBOX=2,Dc.POSE_ENABLED=3,Dc.DUALSHOCK=4;class J2e extends Dc{onbuttondown(e){this._onbuttondown=e}onbuttonup(e){this._onbuttonup=e}constructor(e,t,i){super(e,t,i),this.onButtonDownObservable=new xe,this.onButtonUpObservable=new xe,this.type=Dc.GENERIC,this._buttons=new Array(i.buttons.length)}_setButtonValue(e,t,i){return e!==t&&(e===1&&(this._onbuttondown&&this._onbuttondown(i),this.onButtonDownObservable.notifyObservers(i)),e===0&&(this._onbuttonup&&this._onbuttonup(i),this.onButtonUpObservable.notifyObservers(i))),e}update(){super.update();for(let e=0;e<this._buttons.length;e++)this._buttons[e]=this._setButtonValue(this.browserGamepad.buttons[e].value,this._buttons[e],e)}dispose(){super.dispose(),this.onButtonDownObservable.clear(),this.onButtonUpObservable.clear()}}class pB{constructor(){this.gamepadRotationSensibility=80,this.gamepadMoveSensibility=40,this._yAxisScale=1}get invertYAxis(){return this._yAxisScale!==1}set invertYAxis(e){this._yAxisScale=e?-1:1}attachControl(){const e=this.camera.getScene().gamepadManager;this._onGamepadConnectedObserver=e.onGamepadConnectedObservable.add(t=>{t.type!==Dc.POSE_ENABLED&&(!this.gamepad||t.type===Dc.XBOX)&&(this.gamepad=t)}),this._onGamepadDisconnectedObserver=e.onGamepadDisconnectedObservable.add(t=>{this.gamepad===t&&(this.gamepad=null)}),this.gamepad=e.getGamepadByType(Dc.XBOX),!this.gamepad&&e.gamepads.length&&(this.gamepad=e.gamepads[0])}detachControl(){this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver),this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver),this.gamepad=null}checkInputs(){if(this.gamepad){const e=this.camera,t=this.gamepad.rightStick;if(t){if(t.x!=0){const s=t.x/this.gamepadRotationSensibility;s!=0&&Math.abs(s)>.005&&(e.inertialAlphaOffset+=s)}if(t.y!=0){const s=t.y/this.gamepadRotationSensibility*this._yAxisScale;s!=0&&Math.abs(s)>.005&&(e.inertialBetaOffset+=s)}}const i=this.gamepad.leftStick;if(i&&i.y!=0){const s=i.y/this.gamepadMoveSensibility;s!=0&&Math.abs(s)>.005&&(this.camera.inertialRadiusOffset-=s)}}}getClassName(){return"ArcRotateCameraGamepadInput"}getSimpleName(){return"gamepad"}}F([G()],pB.prototype,"gamepadRotationSensibility",void 0),F([G()],pB.prototype,"gamepadMoveSensibility",void 0),yh.ArcRotateCameraGamepadInput=pB,YW.prototype.addVRDeviceOrientation=function(){return this.add(new kq),this};class kq{constructor(){this.alphaCorrection=1,this.gammaCorrection=1,this._alpha=0,this._gamma=0,this._dirty=!1,this._deviceOrientationHandler=e=>this._onOrientationEvent(e)}attachControl(e){e=Le.BackCompatCameraNoPreventDefault(arguments),this.camera.attachControl(e);const t=this.camera.getScene().getEngine().getHostWindow();t&&(typeof DeviceOrientationEvent<"u"&&typeof DeviceOrientationEvent.requestPermission=="function"?DeviceOrientationEvent.requestPermission().then(i=>{i==="granted"?t.addEventListener("deviceorientation",this._deviceOrientationHandler):Le.Warn("Permission not granted.")}).catch(i=>{Le.Error(i)}):t.addEventListener("deviceorientation",this._deviceOrientationHandler))}_onOrientationEvent(e){e.alpha!==null&&(this._alpha=(+e.alpha|0)*this.alphaCorrection),e.gamma!==null&&(this._gamma=(+e.gamma|0)*this.gammaCorrection),this._dirty=!0}checkInputs(){this._dirty&&(this._dirty=!1,this._gamma<0&&(this._gamma=180+this._gamma),this.camera.alpha=-this._alpha/180*Math.PI%Math.PI*2,this.camera.beta=this._gamma/180*Math.PI)}detachControl(){window.removeEventListener("deviceorientation",this._deviceOrientationHandler)}getClassName(){return"ArcRotateCameraVRDeviceOrientationInput"}getSimpleName(){return"VRDeviceOrientation"}}yh.ArcRotateCameraVRDeviceOrientationInput=kq;class wy{constructor(){this.keysForward=[87],this.keysBackward=[83],this.keysUp=[69],this.keysDown=[81],this.keysRight=[68],this.keysLeft=[65],this._keys=new Array}attachControl(e){e=Le.BackCompatCameraNoPreventDefault(arguments),!this._onCanvasBlurObserver&&(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add(()=>{this._keys.length=0}),this._onKeyboardObserver=this._scene.onKeyboardObservable.add(t=>{const i=t.event;if(t.type===x4.KEYDOWN)(this.keysForward.indexOf(i.keyCode)!==-1||this.keysBackward.indexOf(i.keyCode)!==-1||this.keysUp.indexOf(i.keyCode)!==-1||this.keysDown.indexOf(i.keyCode)!==-1||this.keysLeft.indexOf(i.keyCode)!==-1||this.keysRight.indexOf(i.keyCode)!==-1)&&(this._keys.indexOf(i.keyCode)===-1&&this._keys.push(i.keyCode),e||i.preventDefault());else if(this.keysForward.indexOf(i.keyCode)!==-1||this.keysBackward.indexOf(i.keyCode)!==-1||this.keysUp.indexOf(i.keyCode)!==-1||this.keysDown.indexOf(i.keyCode)!==-1||this.keysLeft.indexOf(i.keyCode)!==-1||this.keysRight.indexOf(i.keyCode)!==-1){const s=this._keys.indexOf(i.keyCode);s>=0&&this._keys.splice(s,1),e||i.preventDefault()}}))}detachControl(){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys.length=0}getClassName(){return"FlyCameraKeyboardInput"}_onLostFocus(){this._keys.length=0}getSimpleName(){return"keyboard"}checkInputs(){if(this._onKeyboardObserver){const e=this.camera;for(let t=0;t<this._keys.length;t++){const i=this._keys[t],s=e._computeLocalCameraSpeed();this.keysForward.indexOf(i)!==-1?e._localDirection.copyFromFloats(0,0,s):this.keysBackward.indexOf(i)!==-1?e._localDirection.copyFromFloats(0,0,-s):this.keysUp.indexOf(i)!==-1?e._localDirection.copyFromFloats(0,s,0):this.keysDown.indexOf(i)!==-1?e._localDirection.copyFromFloats(0,-s,0):this.keysRight.indexOf(i)!==-1?e._localDirection.copyFromFloats(s,0,0):this.keysLeft.indexOf(i)!==-1&&e._localDirection.copyFromFloats(-s,0,0),e.getScene().useRightHandedSystem&&(e._localDirection.z*=-1),e.getViewMatrix().invertToRef(e._cameraTransformMatrix),P.TransformNormalToRef(e._localDirection,e._cameraTransformMatrix,e._transformedDirection),e.cameraDirection.addInPlace(e._transformedDirection)}}}}F([G()],wy.prototype,"keysForward",void 0),F([G()],wy.prototype,"keysBackward",void 0),F([G()],wy.prototype,"keysUp",void 0),F([G()],wy.prototype,"keysDown",void 0),F([G()],wy.prototype,"keysRight",void 0),F([G()],wy.prototype,"keysLeft",void 0),yh.FlyCameraKeyboardInput=wy;class mB{constructor(){this.buttons=[0,1,2],this.buttonsYaw=[-1,0,1],this.buttonsPitch=[-1,0,1],this.buttonsRoll=[2],this.activeButton=-1,this.angularSensibility=1e3,this._previousPosition=null}attachControl(e){e=Le.BackCompatCameraNoPreventDefault(arguments),this._noPreventDefault=e,this._observer=this.camera.getScene()._inputManager._addCameraPointerObserver(t=>{this._pointerInput(t)},Xt.POINTERDOWN|Xt.POINTERUP|Xt.POINTERMOVE),this._rollObserver=this.camera.getScene().onBeforeRenderObservable.add(()=>{this.camera.rollCorrect&&this.camera.restoreRoll(this.camera.rollCorrect)})}detachControl(){this._observer&&(this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer),this.camera.getScene().onBeforeRenderObservable.remove(this._rollObserver),this._observer=null,this._rollObserver=null,this._previousPosition=null,this._noPreventDefault=void 0)}getClassName(){return"FlyCameraMouseInput"}getSimpleName(){return"mouse"}_pointerInput(e){const t=e.event,s=this.camera.getEngine();if(!this.touchEnabled&&t.pointerType==="touch"||e.type!==Xt.POINTERMOVE&&this.buttons.indexOf(t.button)===-1)return;const r=t.target;if(e.type===Xt.POINTERDOWN){try{r==null||r.setPointerCapture(t.pointerId)}catch{}this._previousPosition={x:t.clientX,y:t.clientY},this.activeButton=t.button,this._noPreventDefault||t.preventDefault(),s.isPointerLock&&this._onMouseMove(e.event)}else if(e.type===Xt.POINTERUP){try{r==null||r.releasePointerCapture(t.pointerId)}catch{}this.activeButton=-1,this._previousPosition=null,this._noPreventDefault||t.preventDefault()}else if(e.type===Xt.POINTERMOVE){if(!this._previousPosition){s.isPointerLock&&this._onMouseMove(e.event);return}const n=t.clientX-this._previousPosition.x,o=t.clientY-this._previousPosition.y;this._rotateCamera(n,o),this._previousPosition={x:t.clientX,y:t.clientY},this._noPreventDefault||t.preventDefault()}}_onMouseMove(e){if(!this.camera.getEngine().isPointerLock)return;const s=e.movementX,r=e.movementY;this._rotateCamera(s,r),this._previousPosition=null,this._noPreventDefault||e.preventDefault()}_rotateCamera(e,t){const i=this.camera,s=i._calculateHandednessMultiplier();e*=s;const r=e/this.angularSensibility,n=t/this.angularSensibility,o=Re.RotationYawPitchRoll(i.rotation.y,i.rotation.x,i.rotation.z);let l;if(this.buttonsPitch.some(c=>c===this.activeButton)&&(l=Re.RotationAxis(fo.X,n),o.multiplyInPlace(l)),this.buttonsYaw.some(c=>c===this.activeButton)){l=Re.RotationAxis(fo.Y,r),o.multiplyInPlace(l);const c=i.bankedTurnLimit+i._trackRoll;if(i.bankedTurn&&-c<i.rotation.z&&i.rotation.z<c){const u=i.bankedTurnMultiplier*-r;l=Re.RotationAxis(fo.Z,u),o.multiplyInPlace(l)}}this.buttonsRoll.some(c=>c===this.activeButton)&&(l=Re.RotationAxis(fo.Z,-r),i._trackRoll-=r,o.multiplyInPlace(l)),o.toEulerAnglesToRef(i.rotation)}}F([G()],mB.prototype,"buttons",void 0),F([G()],mB.prototype,"angularSensibility",void 0),yh.FlyCameraMouseInput=mB;class Wu{constructor(){this.keysHeightOffsetIncr=[38],this.keysHeightOffsetDecr=[40],this.keysHeightOffsetModifierAlt=!1,this.keysHeightOffsetModifierCtrl=!1,this.keysHeightOffsetModifierShift=!1,this.keysRotationOffsetIncr=[37],this.keysRotationOffsetDecr=[39],this.keysRotationOffsetModifierAlt=!1,this.keysRotationOffsetModifierCtrl=!1,this.keysRotationOffsetModifierShift=!1,this.keysRadiusIncr=[40],this.keysRadiusDecr=[38],this.keysRadiusModifierAlt=!0,this.keysRadiusModifierCtrl=!1,this.keysRadiusModifierShift=!1,this.heightSensibility=1,this.rotationSensibility=1,this.radiusSensibility=1,this._keys=new Array}attachControl(e){e=Le.BackCompatCameraNoPreventDefault(arguments),!this._onCanvasBlurObserver&&(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add(()=>{this._keys.length=0}),this._onKeyboardObserver=this._scene.onKeyboardObservable.add(t=>{const i=t.event;if(!i.metaKey){if(t.type===x4.KEYDOWN)this._ctrlPressed=i.ctrlKey,this._altPressed=i.altKey,this._shiftPressed=i.shiftKey,(this.keysHeightOffsetIncr.indexOf(i.keyCode)!==-1||this.keysHeightOffsetDecr.indexOf(i.keyCode)!==-1||this.keysRotationOffsetIncr.indexOf(i.keyCode)!==-1||this.keysRotationOffsetDecr.indexOf(i.keyCode)!==-1||this.keysRadiusIncr.indexOf(i.keyCode)!==-1||this.keysRadiusDecr.indexOf(i.keyCode)!==-1)&&(this._keys.indexOf(i.keyCode)===-1&&this._keys.push(i.keyCode),i.preventDefault&&(e||i.preventDefault()));else if(this.keysHeightOffsetIncr.indexOf(i.keyCode)!==-1||this.keysHeightOffsetDecr.indexOf(i.keyCode)!==-1||this.keysRotationOffsetIncr.indexOf(i.keyCode)!==-1||this.keysRotationOffsetDecr.indexOf(i.keyCode)!==-1||this.keysRadiusIncr.indexOf(i.keyCode)!==-1||this.keysRadiusDecr.indexOf(i.keyCode)!==-1){const s=this._keys.indexOf(i.keyCode);s>=0&&this._keys.splice(s,1),i.preventDefault&&(e||i.preventDefault())}}}))}detachControl(){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys.length=0}checkInputs(){this._onKeyboardObserver&&this._keys.forEach(e=>{this.keysHeightOffsetIncr.indexOf(e)!==-1&&this._modifierHeightOffset()?this.camera.heightOffset+=this.heightSensibility:this.keysHeightOffsetDecr.indexOf(e)!==-1&&this._modifierHeightOffset()?this.camera.heightOffset-=this.heightSensibility:this.keysRotationOffsetIncr.indexOf(e)!==-1&&this._modifierRotationOffset()?(this.camera.rotationOffset+=this.rotationSensibility,this.camera.rotationOffset%=360):this.keysRotationOffsetDecr.indexOf(e)!==-1&&this._modifierRotationOffset()?(this.camera.rotationOffset-=this.rotationSensibility,this.camera.rotationOffset%=360):this.keysRadiusIncr.indexOf(e)!==-1&&this._modifierRadius()?this.camera.radius+=this.radiusSensibility:this.keysRadiusDecr.indexOf(e)!==-1&&this._modifierRadius()&&(this.camera.radius-=this.radiusSensibility)})}getClassName(){return"FollowCameraKeyboardMoveInput"}getSimpleName(){return"keyboard"}_modifierHeightOffset(){return this.keysHeightOffsetModifierAlt===this._altPressed&&this.keysHeightOffsetModifierCtrl===this._ctrlPressed&&this.keysHeightOffsetModifierShift===this._shiftPressed}_modifierRotationOffset(){return this.keysRotationOffsetModifierAlt===this._altPressed&&this.keysRotationOffsetModifierCtrl===this._ctrlPressed&&this.keysRotationOffsetModifierShift===this._shiftPressed}_modifierRadius(){return this.keysRadiusModifierAlt===this._altPressed&&this.keysRadiusModifierCtrl===this._ctrlPressed&&this.keysRadiusModifierShift===this._shiftPressed}}F([G()],Wu.prototype,"keysHeightOffsetIncr",void 0),F([G()],Wu.prototype,"keysHeightOffsetDecr",void 0),F([G()],Wu.prototype,"keysHeightOffsetModifierAlt",void 0),F([G()],Wu.prototype,"keysHeightOffsetModifierCtrl",void 0),F([G()],Wu.prototype,"keysHeightOffsetModifierShift",void 0),F([G()],Wu.prototype,"keysRotationOffsetIncr",void 0),F([G()],Wu.prototype,"keysRotationOffsetDecr",void 0),F([G()],Wu.prototype,"keysRotationOffsetModifierAlt",void 0),F([G()],Wu.prototype,"keysRotationOffsetModifierCtrl",void 0),F([G()],Wu.prototype,"keysRotationOffsetModifierShift",void 0),F([G()],Wu.prototype,"keysRadiusIncr",void 0),F([G()],Wu.prototype,"keysRadiusDecr",void 0),F([G()],Wu.prototype,"keysRadiusModifierAlt",void 0),F([G()],Wu.prototype,"keysRadiusModifierCtrl",void 0),F([G()],Wu.prototype,"keysRadiusModifierShift",void 0),F([G()],Wu.prototype,"heightSensibility",void 0),F([G()],Wu.prototype,"rotationSensibility",void 0),F([G()],Wu.prototype,"radiusSensibility",void 0),yh.FollowCameraKeyboardMoveInput=Wu;class qT{constructor(){this.axisControlRadius=!0,this.axisControlHeight=!1,this.axisControlRotation=!1,this.wheelPrecision=3,this.wheelDeltaPercentage=0}attachControl(e){e=Le.BackCompatCameraNoPreventDefault(arguments),this._wheel=t=>{if(t.type!==Xt.POINTERWHEEL)return;const i=t.event;let s=0;const r=Math.max(-1,Math.min(1,i.deltaY));this.wheelDeltaPercentage?(+this.axisControlRadius+ +this.axisControlHeight+ +this.axisControlRotation&&de.Warn("wheelDeltaPercentage only usable when mouse wheel controls ONE axis. Currently enabled: axisControlRadius: "+this.axisControlRadius+", axisControlHeightOffset: "+this.axisControlHeight+", axisControlRotationOffset: "+this.axisControlRotation),this.axisControlRadius?s=r*.01*this.wheelDeltaPercentage*this.camera.radius:this.axisControlHeight?s=r*.01*this.wheelDeltaPercentage*this.camera.heightOffset:this.axisControlRotation&&(s=r*.01*this.wheelDeltaPercentage*this.camera.rotationOffset)):s=r*this.wheelPrecision,s&&(this.axisControlRadius?this.camera.radius+=s:this.axisControlHeight?this.camera.heightOffset-=s:this.axisControlRotation&&(this.camera.rotationOffset-=s)),i.preventDefault&&(e||i.preventDefault())},this._observer=this.camera.getScene()._inputManager._addCameraPointerObserver(this._wheel,Xt.POINTERWHEEL)}detachControl(){this._observer&&(this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer),this._observer=null,this._wheel=null)}getClassName(){return"ArcRotateCameraMouseWheelInput"}getSimpleName(){return"mousewheel"}}F([G()],qT.prototype,"axisControlRadius",void 0),F([G()],qT.prototype,"axisControlHeight",void 0),F([G()],qT.prototype,"axisControlRotation",void 0),F([G()],qT.prototype,"wheelPrecision",void 0),F([G()],qT.prototype,"wheelDeltaPercentage",void 0),yh.FollowCameraMouseWheelInput=qT;class cf extends HW{constructor(){super(...arguments),this.angularSensibilityX=1,this.angularSensibilityY=1,this.pinchPrecision=1e4,this.pinchDeltaPercentage=0,this.axisXControlRadius=!1,this.axisXControlHeight=!1,this.axisXControlRotation=!0,this.axisYControlRadius=!1,this.axisYControlHeight=!0,this.axisYControlRotation=!1,this.axisPinchControlRadius=!0,this.axisPinchControlHeight=!1,this.axisPinchControlRotation=!1,this.warningEnable=!0,this._warningCounter=0}getClassName(){return"FollowCameraPointersInput"}onTouch(e,t,i){this._warning(),this.axisXControlRotation?this.camera.rotationOffset+=t/this.angularSensibilityX:this.axisYControlRotation&&(this.camera.rotationOffset+=i/this.angularSensibilityX),this.axisXControlHeight?this.camera.heightOffset+=t/this.angularSensibilityY:this.axisYControlHeight&&(this.camera.heightOffset+=i/this.angularSensibilityY),this.axisXControlRadius?this.camera.radius-=t/this.angularSensibilityY:this.axisYControlRadius&&(this.camera.radius-=i/this.angularSensibilityY)}onMultiTouch(e,t,i,s,r,n){if(i===0&&r===null||s===0&&n===null)return;let o=(s-i)/(this.pinchPrecision*(this.angularSensibilityX+this.angularSensibilityY)/2);this.pinchDeltaPercentage?(o*=.01*this.pinchDeltaPercentage,this.axisPinchControlRotation&&(this.camera.rotationOffset+=o*this.camera.rotationOffset),this.axisPinchControlHeight&&(this.camera.heightOffset+=o*this.camera.heightOffset),this.axisPinchControlRadius&&(this.camera.radius-=o*this.camera.radius)):(this.axisPinchControlRotation&&(this.camera.rotationOffset+=o),this.axisPinchControlHeight&&(this.camera.heightOffset+=o),this.axisPinchControlRadius&&(this.camera.radius-=o))}_warning(){if(!this.warningEnable||this._warningCounter++%100!==0)return;const e="It probably only makes sense to control ONE camera property with each pointer axis. Set 'warningEnable = false' if you are sure. Currently enabled: ";+this.axisXControlRotation+ +this.axisXControlHeight+ +this.axisXControlRadius<=1&&de.Warn(e+"axisXControlRotation: "+this.axisXControlRotation+", axisXControlHeight: "+this.axisXControlHeight+", axisXControlRadius: "+this.axisXControlRadius),+this.axisYControlRotation+ +this.axisYControlHeight+ +this.axisYControlRadius<=1&&de.Warn(e+"axisYControlRotation: "+this.axisYControlRotation+", axisYControlHeight: "+this.axisYControlHeight+", axisYControlRadius: "+this.axisYControlRadius),+this.axisPinchControlRotation+ +this.axisPinchControlHeight+ +this.axisPinchControlRadius<=1&&de.Warn(e+"axisPinchControlRotation: "+this.axisPinchControlRotation+", axisPinchControlHeight: "+this.axisPinchControlHeight+", axisPinchControlRadius: "+this.axisPinchControlRadius)}}F([G()],cf.prototype,"angularSensibilityX",void 0),F([G()],cf.prototype,"angularSensibilityY",void 0),F([G()],cf.prototype,"pinchPrecision",void 0),F([G()],cf.prototype,"pinchDeltaPercentage",void 0),F([G()],cf.prototype,"axisXControlRadius",void 0),F([G()],cf.prototype,"axisXControlHeight",void 0),F([G()],cf.prototype,"axisXControlRotation",void 0),F([G()],cf.prototype,"axisYControlRadius",void 0),F([G()],cf.prototype,"axisYControlHeight",void 0),F([G()],cf.prototype,"axisYControlRotation",void 0),F([G()],cf.prototype,"axisPinchControlRadius",void 0),F([G()],cf.prototype,"axisPinchControlHeight",void 0),F([G()],cf.prototype,"axisPinchControlRotation",void 0),yh.FollowCameraPointersInput=cf,Dw.prototype.addDeviceOrientation=function(a){return this._deviceOrientationInput||(this._deviceOrientationInput=new Uq,a&&(this._deviceOrientationInput.smoothFactor=a),this.add(this._deviceOrientationInput)),this};class Uq{static WaitForOrientationChangeAsync(e){return new Promise((t,i)=>{let s=!1;const r=()=>{window.removeEventListener("deviceorientation",r),s=!0,t()};e&&setTimeout(()=>{s||(window.removeEventListener("deviceorientation",r),i("WaitForOrientationChangeAsync timed out"))},e),typeof DeviceOrientationEvent<"u"&&typeof DeviceOrientationEvent.requestPermission=="function"?DeviceOrientationEvent.requestPermission().then(n=>{n=="granted"?window.addEventListener("deviceorientation",r):Le.Warn("Permission not granted.")}).catch(n=>{Le.Error(n)}):window.addEventListener("deviceorientation",r)})}constructor(){this._screenOrientationAngle=0,this._screenQuaternion=new Re,this._alpha=0,this._beta=0,this._gamma=0,this.smoothFactor=0,this._onDeviceOrientationChangedObservable=new xe,this._orientationChanged=()=>{this._screenOrientationAngle=window.orientation!==void 0?+window.orientation:window.screen.orientation&&window.screen.orientation.angle?window.screen.orientation.angle:0,this._screenOrientationAngle=-Le.ToRadians(this._screenOrientationAngle/2),this._screenQuaternion.copyFromFloats(0,Math.sin(this._screenOrientationAngle),0,Math.cos(this._screenOrientationAngle))},this._deviceOrientation=e=>{this.smoothFactor?(this._alpha=e.alpha!==null?Le.SmoothAngleChange(this._alpha,e.alpha,this.smoothFactor):0,this._beta=e.beta!==null?Le.SmoothAngleChange(this._beta,e.beta,this.smoothFactor):0,this._gamma=e.gamma!==null?Le.SmoothAngleChange(this._gamma,e.gamma,this.smoothFactor):0):(this._alpha=e.alpha!==null?e.alpha:0,this._beta=e.beta!==null?e.beta:0,this._gamma=e.gamma!==null?e.gamma:0),e.alpha!==null&&this._onDeviceOrientationChangedObservable.notifyObservers()},this._constantTransform=new Re(-Math.sqrt(.5),0,0,Math.sqrt(.5)),this._orientationChanged()}get camera(){return this._camera}set camera(e){this._camera=e,this._camera!=null&&!this._camera.rotationQuaternion&&(this._camera.rotationQuaternion=new Re),this._camera&&this._camera.onDisposeObservable.add(()=>{this._onDeviceOrientationChangedObservable.clear()})}attachControl(){const e=this.camera.getScene().getEngine().getHostWindow();if(e){const t=()=>{e.addEventListener("orientationchange",this._orientationChanged),e.addEventListener("deviceorientation",this._deviceOrientation),this._orientationChanged()};typeof DeviceOrientationEvent<"u"&&typeof DeviceOrientationEvent.requestPermission=="function"?DeviceOrientationEvent.requestPermission().then(i=>{i==="granted"?t():Le.Warn("Permission not granted.")}).catch(i=>{Le.Error(i)}):t()}}detachControl(){window.removeEventListener("orientationchange",this._orientationChanged),window.removeEventListener("deviceorientation",this._deviceOrientation),this._alpha=0}checkInputs(){this._alpha&&(Re.RotationYawPitchRollToRef(Le.ToRadians(this._alpha),Le.ToRadians(this._beta),-Le.ToRadians(this._gamma),this.camera.rotationQuaternion),this._camera.rotationQuaternion.multiplyInPlace(this._screenQuaternion),this._camera.rotationQuaternion.multiplyInPlace(this._constantTransform),this._camera.getScene().useRightHandedSystem?this._camera.rotationQuaternion.y*=-1:this._camera.rotationQuaternion.z*=-1,this._camera.rotationQuaternion.w*=-1)}getClassName(){return"FreeCameraDeviceOrientationInput"}getSimpleName(){return"deviceOrientation"}}yh.FreeCameraDeviceOrientationInput=Uq;class gB{constructor(){this.gamepadAngularSensibility=200,this.gamepadMoveSensibility=40,this.deadzoneDelta=.1,this._yAxisScale=1,this._cameraTransform=me.Identity(),this._deltaTransform=P.Zero(),this._vector3=P.Zero(),this._vector2=Ue.Zero()}get invertYAxis(){return this._yAxisScale!==1}set invertYAxis(e){this._yAxisScale=e?-1:1}attachControl(){const e=this.camera.getScene().gamepadManager;this._onGamepadConnectedObserver=e.onGamepadConnectedObservable.add(t=>{t.type!==Dc.POSE_ENABLED&&(!this.gamepad||t.type===Dc.XBOX)&&(this.gamepad=t)}),this._onGamepadDisconnectedObserver=e.onGamepadDisconnectedObservable.add(t=>{this.gamepad===t&&(this.gamepad=null)}),this.gamepad=e.getGamepadByType(Dc.XBOX),!this.gamepad&&e.gamepads.length&&(this.gamepad=e.gamepads[0])}detachControl(){this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver),this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver),this.gamepad=null}checkInputs(){if(this.gamepad&&this.gamepad.leftStick){const e=this.camera,t=this.gamepad.leftStick;this.gamepadMoveSensibility!==0&&(t.x=Math.abs(t.x)>this.deadzoneDelta?t.x/this.gamepadMoveSensibility:0,t.y=Math.abs(t.y)>this.deadzoneDelta?t.y/this.gamepadMoveSensibility:0);let i=this.gamepad.rightStick;i&&this.gamepadAngularSensibility!==0?(i.x=Math.abs(i.x)>this.deadzoneDelta?i.x/this.gamepadAngularSensibility:0,i.y=(Math.abs(i.y)>this.deadzoneDelta?i.y/this.gamepadAngularSensibility:0)*this._yAxisScale):i={x:0,y:0},e.rotationQuaternion?e.rotationQuaternion.toRotationMatrix(this._cameraTransform):me.RotationYawPitchRollToRef(e.rotation.y,e.rotation.x,0,this._cameraTransform);const s=e._computeLocalCameraSpeed()*50;this._vector3.copyFromFloats(t.x*s,0,-t.y*s),P.TransformCoordinatesToRef(this._vector3,this._cameraTransform,this._deltaTransform),e.cameraDirection.addInPlace(this._deltaTransform),this._vector2.copyFromFloats(i.y,i.x),e.cameraRotation.addInPlace(this._vector2)}}getClassName(){return"FreeCameraGamepadInput"}getSimpleName(){return"gamepad"}}F([G()],gB.prototype,"gamepadAngularSensibility",void 0),F([G()],gB.prototype,"gamepadMoveSensibility",void 0),yh.FreeCameraGamepadInput=gB;var jq;(function(a){a[a.X=0]="X",a[a.Y=1]="Y",a[a.Z=2]="Z"})(jq||(jq={}));class Xi{static _GetDefaultOptions(){return{puckSize:40,containerSize:60,color:"cyan",puckImage:void 0,containerImage:void 0,position:void 0,alwaysVisible:!1,limitToContainer:!1}}constructor(e,t){this._released=!1;const i={...Xi._GetDefaultOptions(),...t};if(e?this._leftJoystick=!0:this._leftJoystick=!1,Xi._GlobalJoystickIndex++,this._axisTargetedByLeftAndRight=0,this._axisTargetedByUpAndDown=1,this.reverseLeftRight=!1,this.reverseUpDown=!1,this._touches=new nG,this.deltaPosition=P.Zero(),this._joystickSensibility=25,this._inversedSensibility=1/(this._joystickSensibility/1e3),this._onResize=()=>{Xi._VJCanvasWidth=window.innerWidth,Xi._VJCanvasHeight=window.innerHeight,Xi.Canvas&&(Xi.Canvas.width=Xi._VJCanvasWidth,Xi.Canvas.height=Xi._VJCanvasHeight),Xi._HalfWidth=Xi._VJCanvasWidth/2},!Xi.Canvas){window.addEventListener("resize",this._onResize,!1),Xi.Canvas=document.createElement("canvas"),Xi._VJCanvasWidth=window.innerWidth,Xi._VJCanvasHeight=window.innerHeight,Xi.Canvas.width=window.innerWidth,Xi.Canvas.height=window.innerHeight,Xi.Canvas.style.width="100%",Xi.Canvas.style.height="100%",Xi.Canvas.style.position="absolute",Xi.Canvas.style.backgroundColor="transparent",Xi.Canvas.style.top="0px",Xi.Canvas.style.left="0px",Xi.Canvas.style.zIndex="5",Xi.Canvas.style.touchAction="none",Xi.Canvas.setAttribute("touch-action","none");const s=Xi.Canvas.getContext("2d");if(!s)throw new Error("Unable to create canvas for virtual joystick");Xi._VJCanvasContext=s,Xi._VJCanvasContext.strokeStyle="#ffffff",Xi._VJCanvasContext.lineWidth=2,document.body.appendChild(Xi.Canvas)}Xi._HalfWidth=Xi.Canvas.width/2,this.pressed=!1,this.limitToContainer=i.limitToContainer,this._joystickColor=i.color,this.containerSize=i.containerSize,this.puckSize=i.puckSize,i.position&&this.setPosition(i.position.x,i.position.y),i.puckImage&&this.setPuckImage(i.puckImage),i.containerImage&&this.setContainerImage(i.containerImage),i.alwaysVisible&&Xi._AlwaysVisibleSticks++,this.alwaysVisible=i.alwaysVisible,this._joystickPointerId=-1,this._joystickPointerPos=new Ue(0,0),this._joystickPreviousPointerPos=new Ue(0,0),this._joystickPointerStartPos=new Ue(0,0),this._deltaJoystickVector=new Ue(0,0),this._onPointerDownHandlerRef=s=>{this._onPointerDown(s)},this._onPointerMoveHandlerRef=s=>{this._onPointerMove(s)},this._onPointerUpHandlerRef=s=>{this._onPointerUp(s)},Xi.Canvas.addEventListener("pointerdown",this._onPointerDownHandlerRef,!1),Xi.Canvas.addEventListener("pointermove",this._onPointerMoveHandlerRef,!1),Xi.Canvas.addEventListener("pointerup",this._onPointerUpHandlerRef,!1),Xi.Canvas.addEventListener("pointerout",this._onPointerUpHandlerRef,!1),Xi.Canvas.addEventListener("pointercancel",this._onPointerUpHandlerRef,!1),Xi.Canvas.addEventListener("contextmenu",s=>{s.preventDefault()},!1),requestAnimationFrame(()=>{this._drawVirtualJoystick()})}setJoystickSensibility(e){this._joystickSensibility=e,this._inversedSensibility=1/(this._joystickSensibility/1e3)}_onPointerDown(e){let t;e.preventDefault(),this._leftJoystick===!0?t=e.clientX<Xi._HalfWidth:t=e.clientX>Xi._HalfWidth,t&&this._joystickPointerId<0?(this._joystickPointerId=e.pointerId,this._joystickPosition?(this._joystickPointerStartPos=this._joystickPosition.clone(),this._joystickPointerPos=this._joystickPosition.clone(),this._joystickPreviousPointerPos=this._joystickPosition.clone(),this._onPointerMove(e)):(this._joystickPointerStartPos.x=e.clientX,this._joystickPointerStartPos.y=e.clientY,this._joystickPointerPos=this._joystickPointerStartPos.clone(),this._joystickPreviousPointerPos=this._joystickPointerStartPos.clone()),this._deltaJoystickVector.x=0,this._deltaJoystickVector.y=0,this.pressed=!0,this._touches.add(e.pointerId.toString(),e)):Xi._GlobalJoystickIndex<2&&this._action&&(this._action(),this._touches.add(e.pointerId.toString(),{x:e.clientX,y:e.clientY,prevX:e.clientX,prevY:e.clientY}))}_onPointerMove(e){if(this._joystickPointerId==e.pointerId){if(this.limitToContainer){const n=new Ue(e.clientX-this._joystickPointerStartPos.x,e.clientY-this._joystickPointerStartPos.y),o=n.length();o>this.containerSize&&n.scaleInPlace(this.containerSize/o),this._joystickPointerPos.x=this._joystickPointerStartPos.x+n.x,this._joystickPointerPos.y=this._joystickPointerStartPos.y+n.y}else this._joystickPointerPos.x=e.clientX,this._joystickPointerPos.y=e.clientY;this._deltaJoystickVector=this._joystickPointerPos.clone(),this._deltaJoystickVector=this._deltaJoystickVector.subtract(this._joystickPointerStartPos),0<Xi._AlwaysVisibleSticks&&(this._leftJoystick?this._joystickPointerPos.x=Math.min(Xi._HalfWidth,this._joystickPointerPos.x):this._joystickPointerPos.x=Math.max(Xi._HalfWidth,this._joystickPointerPos.x));const i=(this.reverseLeftRight?-1:1)*this._deltaJoystickVector.x/this._inversedSensibility;switch(this._axisTargetedByLeftAndRight){case 0:this.deltaPosition.x=Math.min(1,Math.max(-1,i));break;case 1:this.deltaPosition.y=Math.min(1,Math.max(-1,i));break;case 2:this.deltaPosition.z=Math.min(1,Math.max(-1,i));break}const r=(this.reverseUpDown?1:-1)*this._deltaJoystickVector.y/this._inversedSensibility;switch(this._axisTargetedByUpAndDown){case 0:this.deltaPosition.x=Math.min(1,Math.max(-1,r));break;case 1:this.deltaPosition.y=Math.min(1,Math.max(-1,r));break;case 2:this.deltaPosition.z=Math.min(1,Math.max(-1,r));break}}else{const t=this._touches.get(e.pointerId.toString());t&&(t.x=e.clientX,t.y=e.clientY)}}_onPointerUp(e){if(this._joystickPointerId==e.pointerId)this._clearPreviousDraw(),this._joystickPointerId=-1,this.pressed=!1;else{const t=this._touches.get(e.pointerId.toString());t&&Xi._VJCanvasContext.clearRect(t.prevX-44,t.prevY-44,88,88)}this._deltaJoystickVector.x=0,this._deltaJoystickVector.y=0,this._touches.remove(e.pointerId.toString())}setJoystickColor(e){this._joystickColor=e}set containerSize(e){this._joystickContainerSize=e,this._clearContainerSize=~~(this._joystickContainerSize*2.1),this._clearContainerSizeOffset=~~(this._clearContainerSize/2)}get containerSize(){return this._joystickContainerSize}set puckSize(e){this._joystickPuckSize=e,this._clearPuckSize=~~(this._joystickPuckSize*2.1),this._clearPuckSizeOffset=~~(this._clearPuckSize/2)}get puckSize(){return this._joystickPuckSize}clearPosition(){this.alwaysVisible=!1,this._joystickPosition=null}set alwaysVisible(e){this._alwaysVisible!==e&&(e&&this._joystickPosition?(Xi._AlwaysVisibleSticks++,this._alwaysVisible=!0):(Xi._AlwaysVisibleSticks--,this._alwaysVisible=!1))}get alwaysVisible(){return this._alwaysVisible}setPosition(e,t){this._joystickPointerStartPos&&this._clearPreviousDraw(),this._joystickPosition=new Ue(e,t)}setActionOnTouch(e){this._action=e}setAxisForLeftRight(e){switch(e){case 0:case 1:case 2:this._axisTargetedByLeftAndRight=e;break;default:this._axisTargetedByLeftAndRight=0;break}}setAxisForUpDown(e){switch(e){case 0:case 1:case 2:this._axisTargetedByUpAndDown=e;break;default:this._axisTargetedByUpAndDown=1;break}}_clearPreviousDraw(){const e=this._joystickPosition||this._joystickPointerStartPos;Xi._VJCanvasContext.clearRect(e.x-this._clearContainerSizeOffset,e.y-this._clearContainerSizeOffset,this._clearContainerSize,this._clearContainerSize),Xi._VJCanvasContext.clearRect(this._joystickPreviousPointerPos.x-this._clearPuckSizeOffset-1,this._joystickPreviousPointerPos.y-this._clearPuckSizeOffset-1,this._clearPuckSize+2,this._clearPuckSize+2)}setContainerImage(e){const t=new Image;t.src=e,t.onload=()=>this._containerImage=t}setPuckImage(e){const t=new Image;t.src=e,t.onload=()=>this._puckImage=t}_drawContainer(){const e=this._joystickPosition||this._joystickPointerStartPos;this._clearPreviousDraw(),this._containerImage?Xi._VJCanvasContext.drawImage(this._containerImage,e.x-this.containerSize,e.y-this.containerSize,this.containerSize*2,this.containerSize*2):(Xi._VJCanvasContext.beginPath(),Xi._VJCanvasContext.strokeStyle=this._joystickColor,Xi._VJCanvasContext.lineWidth=2,Xi._VJCanvasContext.arc(e.x,e.y,this.containerSize,0,Math.PI*2,!0),Xi._VJCanvasContext.stroke(),Xi._VJCanvasContext.closePath(),Xi._VJCanvasContext.beginPath(),Xi._VJCanvasContext.lineWidth=6,Xi._VJCanvasContext.strokeStyle=this._joystickColor,Xi._VJCanvasContext.arc(e.x,e.y,this.puckSize,0,Math.PI*2,!0),Xi._VJCanvasContext.stroke(),Xi._VJCanvasContext.closePath())}_drawPuck(){this._puckImage?Xi._VJCanvasContext.drawImage(this._puckImage,this._joystickPointerPos.x-this.puckSize,this._joystickPointerPos.y-this.puckSize,this.puckSize*2,this.puckSize*2):(Xi._VJCanvasContext.beginPath(),Xi._VJCanvasContext.strokeStyle=this._joystickColor,Xi._VJCanvasContext.lineWidth=2,Xi._VJCanvasContext.arc(this._joystickPointerPos.x,this._joystickPointerPos.y,this.puckSize,0,Math.PI*2,!0),Xi._VJCanvasContext.stroke(),Xi._VJCanvasContext.closePath())}_drawVirtualJoystick(){this._released||(this.alwaysVisible&&this._drawContainer(),this.pressed&&this._touches.forEach((e,t)=>{t.pointerId===this._joystickPointerId?(this.alwaysVisible||this._drawContainer(),this._drawPuck(),this._joystickPreviousPointerPos=this._joystickPointerPos.clone()):(Xi._VJCanvasContext.clearRect(t.prevX-44,t.prevY-44,88,88),Xi._VJCanvasContext.beginPath(),Xi._VJCanvasContext.fillStyle="white",Xi._VJCanvasContext.beginPath(),Xi._VJCanvasContext.strokeStyle="red",Xi._VJCanvasContext.lineWidth=6,Xi._VJCanvasContext.arc(t.x,t.y,40,0,Math.PI*2,!0),Xi._VJCanvasContext.stroke(),Xi._VJCanvasContext.closePath(),t.prevX=t.x,t.prevY=t.y)}),requestAnimationFrame(()=>{this._drawVirtualJoystick()}))}releaseCanvas(){Xi.Canvas&&(Xi.Canvas.removeEventListener("pointerdown",this._onPointerDownHandlerRef),Xi.Canvas.removeEventListener("pointermove",this._onPointerMoveHandlerRef),Xi.Canvas.removeEventListener("pointerup",this._onPointerUpHandlerRef),Xi.Canvas.removeEventListener("pointerout",this._onPointerUpHandlerRef),Xi.Canvas.removeEventListener("pointercancel",this._onPointerUpHandlerRef),window.removeEventListener("resize",this._onResize),document.body.removeChild(Xi.Canvas),Xi.Canvas=null),this._released=!0}}Xi._GlobalJoystickIndex=0,Xi._AlwaysVisibleSticks=0,Dw.prototype.addVirtualJoystick=function(){return this.add(new Vq),this};class Vq{getLeftJoystick(){return this._leftjoystick}getRightJoystick(){return this._rightjoystick}checkInputs(){if(this._leftjoystick){const e=this.camera,t=e._computeLocalCameraSpeed()*50,i=me.RotationYawPitchRoll(e.rotation.y,e.rotation.x,0),s=P.TransformCoordinates(new P(this._leftjoystick.deltaPosition.x*t,this._leftjoystick.deltaPosition.y*t,this._leftjoystick.deltaPosition.z*t),i);e.cameraDirection=e.cameraDirection.add(s),e.cameraRotation=e.cameraRotation.addVector3(this._rightjoystick.deltaPosition),this._leftjoystick.pressed||(this._leftjoystick.deltaPosition=this._leftjoystick.deltaPosition.scale(.9)),this._rightjoystick.pressed||(this._rightjoystick.deltaPosition=this._rightjoystick.deltaPosition.scale(.9))}}attachControl(){this._leftjoystick=new Xi(!0),this._leftjoystick.setAxisForUpDown(2),this._leftjoystick.setAxisForLeftRight(0),this._leftjoystick.setJoystickSensibility(.15),this._rightjoystick=new Xi(!1),this._rightjoystick.setAxisForUpDown(0),this._rightjoystick.setAxisForLeftRight(1),this._rightjoystick.reverseUpDown=!0,this._rightjoystick.setJoystickSensibility(.05),this._rightjoystick.setJoystickColor("yellow")}detachControl(){this._leftjoystick.releaseCanvas(),this._rightjoystick.releaseCanvas()}getClassName(){return"FreeCameraVirtualJoystickInput"}getSimpleName(){return"virtualJoystick"}}yh.FreeCameraVirtualJoystickInput=Vq,Rr.AddNodeConstructor("TouchCamera",(a,e)=>()=>new Gq(a,P.Zero(),e));class Gq extends $d{get touchAngularSensibility(){const e=this.inputs.attached.touch;return e?e.touchAngularSensibility:0}set touchAngularSensibility(e){const t=this.inputs.attached.touch;t&&(t.touchAngularSensibility=e)}get touchMoveSensibility(){const e=this.inputs.attached.touch;return e?e.touchMoveSensibility:0}set touchMoveSensibility(e){const t=this.inputs.attached.touch;t&&(t.touchMoveSensibility=e)}constructor(e,t,i){super(e,t,i),this.inputs.addTouch(),this._setupInputs()}getClassName(){return"TouchCamera"}_setupInputs(){const e=this.inputs.attached.touch,t=this.inputs.attached.mouse;t?t.touchEnabled=!e:e.allowMouse=!t}}Rr.AddNodeConstructor("DeviceOrientationCamera",(a,e)=>()=>new iH(a,P.Zero(),e));class iH extends $d{constructor(e,t,i){super(e,t,i),this._tmpDragQuaternion=new Re,this._disablePointerInputWhenUsingDeviceOrientation=!0,this._dragFactor=0,this._quaternionCache=new Re,this.inputs.addDeviceOrientation(),this.inputs._deviceOrientationInput&&this.inputs._deviceOrientationInput._onDeviceOrientationChangedObservable.addOnce(()=>{this._disablePointerInputWhenUsingDeviceOrientation&&this.inputs._mouseInput&&(this.inputs._mouseInput._allowCameraRotation=!1,this.inputs._mouseInput.onPointerMovedObservable.add(s=>{this._dragFactor!=0&&(this._initialQuaternion||(this._initialQuaternion=new Re),Re.FromEulerAnglesToRef(0,s.offsetX*this._dragFactor,0,this._tmpDragQuaternion),this._initialQuaternion.multiplyToRef(this._tmpDragQuaternion,this._initialQuaternion))}))})}get disablePointerInputWhenUsingDeviceOrientation(){return this._disablePointerInputWhenUsingDeviceOrientation}set disablePointerInputWhenUsingDeviceOrientation(e){this._disablePointerInputWhenUsingDeviceOrientation=e}enableHorizontalDragging(e=1/300){this._dragFactor=e}getClassName(){return"DeviceOrientationCamera"}_checkInputs(){super._checkInputs(),this._quaternionCache.copyFrom(this.rotationQuaternion),this._initialQuaternion&&this._initialQuaternion.multiplyToRef(this.rotationQuaternion,this.rotationQuaternion)}resetToCurrentRotation(e=fo.Y){this.rotationQuaternion&&(this._initialQuaternion||(this._initialQuaternion=new Re),this._initialQuaternion.copyFrom(this._quaternionCache||this.rotationQuaternion),["x","y","z"].forEach(t=>{e[t]?this._initialQuaternion[t]*=-1:this._initialQuaternion[t]=0}),this._initialQuaternion.normalize(),this._initialQuaternion.multiplyToRef(this.rotationQuaternion,this.rotationQuaternion))}}class $2e extends Iw{constructor(e){super(e)}addKeyboard(){return this.add(new wy),this}addMouse(){return this.add(new mB),this}}class YP extends Ja{get angularSensibility(){const e=this.inputs.attached.mouse;return e?e.angularSensibility:0}set angularSensibility(e){const t=this.inputs.attached.mouse;t&&(t.angularSensibility=e)}get keysForward(){const e=this.inputs.attached.keyboard;return e?e.keysForward:[]}set keysForward(e){const t=this.inputs.attached.keyboard;t&&(t.keysForward=e)}get keysBackward(){const e=this.inputs.attached.keyboard;return e?e.keysBackward:[]}set keysBackward(e){const t=this.inputs.attached.keyboard;t&&(t.keysBackward=e)}get keysUp(){const e=this.inputs.attached.keyboard;return e?e.keysUp:[]}set keysUp(e){const t=this.inputs.attached.keyboard;t&&(t.keysUp=e)}get keysDown(){const e=this.inputs.attached.keyboard;return e?e.keysDown:[]}set keysDown(e){const t=this.inputs.attached.keyboard;t&&(t.keysDown=e)}get keysLeft(){const e=this.inputs.attached.keyboard;return e?e.keysLeft:[]}set keysLeft(e){const t=this.inputs.attached.keyboard;t&&(t.keysLeft=e)}get keysRight(){const e=this.inputs.attached.keyboard;return e?e.keysRight:[]}set keysRight(e){const t=this.inputs.attached.keyboard;t&&(t.keysRight=e)}constructor(e,t,i,s=!0){super(e,t,i,s),this.ellipsoid=new P(1,1,1),this.ellipsoidOffset=new P(0,0,0),this.checkCollisions=!1,this.applyGravity=!1,this.cameraDirection=P.Zero(),this._trackRoll=0,this.rollCorrect=100,this.bankedTurn=!1,this.bankedTurnLimit=Math.PI/2,this.bankedTurnMultiplier=1,this._needMoveForGravity=!1,this._oldPosition=P.Zero(),this._diffPosition=P.Zero(),this._newPosition=P.Zero(),this._collisionMask=-1,this._onCollisionPositionChange=(r,n,o=null)=>{(c=>{this._newPosition.copyFrom(c),this._newPosition.subtractToRef(this._oldPosition,this._diffPosition),this._diffPosition.length()>dt.CollisionsEpsilon&&(this.position.addInPlace(this._diffPosition),this.onCollide&&o&&this.onCollide(o))})(n)},this.inputs=new $2e(this),this.inputs.addKeyboard().addMouse()}attachControl(e,t){t=Le.BackCompatCameraNoPreventDefault(arguments),this.inputs.attachElement(t)}detachControl(){this.inputs.detachElement(),this.cameraDirection=new P(0,0,0)}get collisionMask(){return this._collisionMask}set collisionMask(e){this._collisionMask=isNaN(e)?-1:e}_collideWithWorld(e){let t;this.parent?t=P.TransformCoordinates(this.position,this.parent.getWorldMatrix()):t=this.position,t.subtractFromFloatsToRef(0,this.ellipsoid.y,0,this._oldPosition),this._oldPosition.addInPlace(this.ellipsoidOffset);const i=this.getScene().collisionCoordinator;this._collider||(this._collider=i.createCollider()),this._collider._radius=this.ellipsoid,this._collider.collisionMask=this._collisionMask;let s=e;this.applyGravity&&(s=e.add(this.getScene().gravity)),i.getNewPosition(this._oldPosition,s,this._collider,3,null,this._onCollisionPositionChange,this.uniqueId)}_checkInputs(){this._localDirection||(this._localDirection=P.Zero(),this._transformedDirection=P.Zero()),this.inputs.checkInputs(),super._checkInputs()}set needMoveForGravity(e){this._needMoveForGravity=e}get needMoveForGravity(){return this._needMoveForGravity}_decideIfNeedsToMove(){return this._needMoveForGravity||Math.abs(this.cameraDirection.x)>0||Math.abs(this.cameraDirection.y)>0||Math.abs(this.cameraDirection.z)>0}_updatePosition(){this.checkCollisions&&this.getScene().collisionsEnabled?this._collideWithWorld(this.cameraDirection):super._updatePosition()}restoreRoll(e){const t=this._trackRoll,i=this.rotation.z,s=t-i,r=.001;Math.abs(s)>=r&&(this.rotation.z+=s/e,Math.abs(t-this.rotation.z)<=r&&(this.rotation.z=t))}dispose(){this.inputs.clear(),super.dispose()}getClassName(){return"FlyCamera"}}F([Ma()],YP.prototype,"ellipsoid",void 0),F([Ma()],YP.prototype,"ellipsoidOffset",void 0),F([G()],YP.prototype,"checkCollisions",void 0),F([G()],YP.prototype,"applyGravity",void 0),ve("BABYLON.FlyCamera",YP);class efe extends Iw{constructor(e){super(e)}addKeyboard(){return this.add(new Wu),this}addMouseWheel(){return this.add(new qT),this}addPointers(){return this.add(new cf),this}addVRDeviceOrientation(){return de.Warn("DeviceOrientation support not yet implemented for FollowCamera."),this}}Rr.AddNodeConstructor("FollowCamera",(a,e)=>()=>new S0(a,P.Zero(),e)),Rr.AddNodeConstructor("ArcFollowCamera",(a,e)=>()=>new Wq(a,0,0,1,null,e));class S0 extends Ja{constructor(e,t,i,s=null){super(e,t,i),this.radius=12,this.lowerRadiusLimit=null,this.upperRadiusLimit=null,this.rotationOffset=0,this.lowerRotationOffsetLimit=null,this.upperRotationOffsetLimit=null,this.heightOffset=4,this.lowerHeightOffsetLimit=null,this.upperHeightOffsetLimit=null,this.cameraAcceleration=.05,this.maxCameraSpeed=20,this.lockedTarget=s,this.inputs=new efe(this),this.inputs.addKeyboard().addMouseWheel().addPointers()}_follow(e){if(!e)return;const t=ae.Matrix[0];e.absoluteRotationQuaternion.toRotationMatrix(t);const i=Math.atan2(t.m[8],t.m[10]),s=Le.ToRadians(this.rotationOffset)+i,r=e.getAbsolutePosition(),n=r.x+Math.sin(s)*this.radius,o=r.z+Math.cos(s)*this.radius,l=n-this.position.x,c=r.y+this.heightOffset-this.position.y,u=o-this.position.z;let f=l*this.cameraAcceleration*2,p=c*this.cameraAcceleration,m=u*this.cameraAcceleration*2;(f>this.maxCameraSpeed||f<-this.maxCameraSpeed)&&(f=f<1?-this.maxCameraSpeed:this.maxCameraSpeed),(p>this.maxCameraSpeed||p<-this.maxCameraSpeed)&&(p=p<1?-this.maxCameraSpeed:this.maxCameraSpeed),(m>this.maxCameraSpeed||m<-this.maxCameraSpeed)&&(m=m<1?-this.maxCameraSpeed:this.maxCameraSpeed),this.position=new P(this.position.x+f,this.position.y+p,this.position.z+m),this.setTarget(r)}attachControl(e,t){t=Le.BackCompatCameraNoPreventDefault(arguments),this.inputs.attachElement(t),this._reset=()=>{}}detachControl(){this.inputs.detachElement(),this._reset&&this._reset()}_checkInputs(){this.inputs.checkInputs(),this._checkLimits(),super._checkInputs(),this.lockedTarget&&this._follow(this.lockedTarget)}_checkLimits(){this.lowerRadiusLimit!==null&&this.radius<this.lowerRadiusLimit&&(this.radius=this.lowerRadiusLimit),this.upperRadiusLimit!==null&&this.radius>this.upperRadiusLimit&&(this.radius=this.upperRadiusLimit),this.lowerHeightOffsetLimit!==null&&this.heightOffset<this.lowerHeightOffsetLimit&&(this.heightOffset=this.lowerHeightOffsetLimit),this.upperHeightOffsetLimit!==null&&this.heightOffset>this.upperHeightOffsetLimit&&(this.heightOffset=this.upperHeightOffsetLimit),this.lowerRotationOffsetLimit!==null&&this.rotationOffset<this.lowerRotationOffsetLimit&&(this.rotationOffset=this.lowerRotationOffsetLimit),this.upperRotationOffsetLimit!==null&&this.rotationOffset>this.upperRotationOffsetLimit&&(this.rotationOffset=this.upperRotationOffsetLimit)}getClassName(){return"FollowCamera"}}F([G()],S0.prototype,"radius",void 0),F([G()],S0.prototype,"lowerRadiusLimit",void 0),F([G()],S0.prototype,"upperRadiusLimit",void 0),F([G()],S0.prototype,"rotationOffset",void 0),F([G()],S0.prototype,"lowerRotationOffsetLimit",void 0),F([G()],S0.prototype,"upperRotationOffsetLimit",void 0),F([G()],S0.prototype,"heightOffset",void 0),F([G()],S0.prototype,"lowerHeightOffsetLimit",void 0),F([G()],S0.prototype,"upperHeightOffsetLimit",void 0),F([G()],S0.prototype,"cameraAcceleration",void 0),F([G()],S0.prototype,"maxCameraSpeed",void 0),F([uP("lockedTargetId")],S0.prototype,"lockedTarget",void 0);class Wq extends Ja{constructor(e,t,i,s,r,n){super(e,P.Zero(),n),this.alpha=t,this.beta=i,this.radius=s,this._cartesianCoordinates=P.Zero(),this.setMeshTarget(r)}setMeshTarget(e){this._meshTarget=e,this._follow()}_follow(){if(!this._meshTarget)return;this._cartesianCoordinates.x=this.radius*Math.cos(this.alpha)*Math.cos(this.beta),this._cartesianCoordinates.y=this.radius*Math.sin(this.beta),this._cartesianCoordinates.z=this.radius*Math.sin(this.alpha)*Math.cos(this.beta);const e=this._meshTarget.getAbsolutePosition();this.position=e.add(this._cartesianCoordinates),this.setTarget(e)}_checkInputs(){super._checkInputs(),this._follow()}getClassName(){return"ArcFollowCamera"}}ve("BABYLON.FollowCamera",S0),ve("BABYLON.ArcFollowCamera",Wq);var Hq;(function(a){a[a.A=0]="A",a[a.B=1]="B",a[a.X=2]="X",a[a.Y=3]="Y",a[a.LB=4]="LB",a[a.RB=5]="RB",a[a.Back=8]="Back",a[a.Start=9]="Start",a[a.LeftStick=10]="LeftStick",a[a.RightStick=11]="RightStick"})(Hq||(Hq={}));var Yq;(function(a){a[a.Up=12]="Up",a[a.Down=13]="Down",a[a.Left=14]="Left",a[a.Right=15]="Right"})(Yq||(Yq={}));class tfe extends Dc{constructor(e,t,i,s=!1){super(e,t,i,0,1,2,3),this._leftTrigger=0,this._rightTrigger=0,this.onButtonDownObservable=new xe,this.onButtonUpObservable=new xe,this.onPadDownObservable=new xe,this.onPadUpObservable=new xe,this._buttonA=0,this._buttonB=0,this._buttonX=0,this._buttonY=0,this._buttonBack=0,this._buttonStart=0,this._buttonLB=0,this._buttonRB=0,this._buttonLeftStick=0,this._buttonRightStick=0,this._dPadUp=0,this._dPadDown=0,this._dPadLeft=0,this._dPadRight=0,this._isXboxOnePad=!1,this.type=Dc.XBOX,this._isXboxOnePad=s}onlefttriggerchanged(e){this._onlefttriggerchanged=e}onrighttriggerchanged(e){this._onrighttriggerchanged=e}get leftTrigger(){return this._leftTrigger}set leftTrigger(e){this._onlefttriggerchanged&&this._leftTrigger!==e&&this._onlefttriggerchanged(e),this._leftTrigger=e}get rightTrigger(){return this._rightTrigger}set rightTrigger(e){this._onrighttriggerchanged&&this._rightTrigger!==e&&this._onrighttriggerchanged(e),this._rightTrigger=e}onbuttondown(e){this._onbuttondown=e}onbuttonup(e){this._onbuttonup=e}ondpaddown(e){this._ondpaddown=e}ondpadup(e){this._ondpadup=e}_setButtonValue(e,t,i){return e!==t&&(e===1&&(this._onbuttondown&&this._onbuttondown(i),this.onButtonDownObservable.notifyObservers(i)),e===0&&(this._onbuttonup&&this._onbuttonup(i),this.onButtonUpObservable.notifyObservers(i))),e}_setDPadValue(e,t,i){return e!==t&&(e===1&&(this._ondpaddown&&this._ondpaddown(i),this.onPadDownObservable.notifyObservers(i)),e===0&&(this._ondpadup&&this._ondpadup(i),this.onPadUpObservable.notifyObservers(i))),e}get buttonA(){return this._buttonA}set buttonA(e){this._buttonA=this._setButtonValue(e,this._buttonA,0)}get buttonB(){return this._buttonB}set buttonB(e){this._buttonB=this._setButtonValue(e,this._buttonB,1)}get buttonX(){return this._buttonX}set buttonX(e){this._buttonX=this._setButtonValue(e,this._buttonX,2)}get buttonY(){return this._buttonY}set buttonY(e){this._buttonY=this._setButtonValue(e,this._buttonY,3)}get buttonStart(){return this._buttonStart}set buttonStart(e){this._buttonStart=this._setButtonValue(e,this._buttonStart,9)}get buttonBack(){return this._buttonBack}set buttonBack(e){this._buttonBack=this._setButtonValue(e,this._buttonBack,8)}get buttonLB(){return this._buttonLB}set buttonLB(e){this._buttonLB=this._setButtonValue(e,this._buttonLB,4)}get buttonRB(){return this._buttonRB}set buttonRB(e){this._buttonRB=this._setButtonValue(e,this._buttonRB,5)}get buttonLeftStick(){return this._buttonLeftStick}set buttonLeftStick(e){this._buttonLeftStick=this._setButtonValue(e,this._buttonLeftStick,10)}get buttonRightStick(){return this._buttonRightStick}set buttonRightStick(e){this._buttonRightStick=this._setButtonValue(e,this._buttonRightStick,11)}get dPadUp(){return this._dPadUp}set dPadUp(e){this._dPadUp=this._setDPadValue(e,this._dPadUp,12)}get dPadDown(){return this._dPadDown}set dPadDown(e){this._dPadDown=this._setDPadValue(e,this._dPadDown,13)}get dPadLeft(){return this._dPadLeft}set dPadLeft(e){this._dPadLeft=this._setDPadValue(e,this._dPadLeft,14)}get dPadRight(){return this._dPadRight}set dPadRight(e){this._dPadRight=this._setDPadValue(e,this._dPadRight,15)}update(){super.update(),this._isXboxOnePad?(this.buttonA=this.browserGamepad.buttons[0].value,this.buttonB=this.browserGamepad.buttons[1].value,this.buttonX=this.browserGamepad.buttons[2].value,this.buttonY=this.browserGamepad.buttons[3].value,this.buttonLB=this.browserGamepad.buttons[4].value,this.buttonRB=this.browserGamepad.buttons[5].value,this.leftTrigger=this.browserGamepad.buttons[6].value,this.rightTrigger=this.browserGamepad.buttons[7].value,this.buttonBack=this.browserGamepad.buttons[8].value,this.buttonStart=this.browserGamepad.buttons[9].value,this.buttonLeftStick=this.browserGamepad.buttons[10].value,this.buttonRightStick=this.browserGamepad.buttons[11].value,this.dPadUp=this.browserGamepad.buttons[12].value,this.dPadDown=this.browserGamepad.buttons[13].value,this.dPadLeft=this.browserGamepad.buttons[14].value,this.dPadRight=this.browserGamepad.buttons[15].value):(this.buttonA=this.browserGamepad.buttons[0].value,this.buttonB=this.browserGamepad.buttons[1].value,this.buttonX=this.browserGamepad.buttons[2].value,this.buttonY=this.browserGamepad.buttons[3].value,this.buttonLB=this.browserGamepad.buttons[4].value,this.buttonRB=this.browserGamepad.buttons[5].value,this.leftTrigger=this.browserGamepad.buttons[6].value,this.rightTrigger=this.browserGamepad.buttons[7].value,this.buttonBack=this.browserGamepad.buttons[8].value,this.buttonStart=this.browserGamepad.buttons[9].value,this.buttonLeftStick=this.browserGamepad.buttons[10].value,this.buttonRightStick=this.browserGamepad.buttons[11].value,this.dPadUp=this.browserGamepad.buttons[12].value,this.dPadDown=this.browserGamepad.buttons[13].value,this.dPadLeft=this.browserGamepad.buttons[14].value,this.dPadRight=this.browserGamepad.buttons[15].value)}dispose(){super.dispose(),this.onButtonDownObservable.clear(),this.onButtonUpObservable.clear(),this.onPadDownObservable.clear(),this.onPadUpObservable.clear()}}var Xq;(function(a){a[a.Cross=0]="Cross",a[a.Circle=1]="Circle",a[a.Square=2]="Square",a[a.Triangle=3]="Triangle",a[a.L1=4]="L1",a[a.R1=5]="R1",a[a.Share=8]="Share",a[a.Options=9]="Options",a[a.LeftStick=10]="LeftStick",a[a.RightStick=11]="RightStick"})(Xq||(Xq={}));var Zq;(function(a){a[a.Up=12]="Up",a[a.Down=13]="Down",a[a.Left=14]="Left",a[a.Right=15]="Right"})(Zq||(Zq={}));class ife extends Dc{constructor(e,t,i){super(e.replace("STANDARD GAMEPAD","SONY PLAYSTATION DUALSHOCK"),t,i,0,1,2,3),this._leftTrigger=0,this._rightTrigger=0,this.onButtonDownObservable=new xe,this.onButtonUpObservable=new xe,this.onPadDownObservable=new xe,this.onPadUpObservable=new xe,this._buttonCross=0,this._buttonCircle=0,this._buttonSquare=0,this._buttonTriangle=0,this._buttonShare=0,this._buttonOptions=0,this._buttonL1=0,this._buttonR1=0,this._buttonLeftStick=0,this._buttonRightStick=0,this._dPadUp=0,this._dPadDown=0,this._dPadLeft=0,this._dPadRight=0,this.type=Dc.DUALSHOCK}onlefttriggerchanged(e){this._onlefttriggerchanged=e}onrighttriggerchanged(e){this._onrighttriggerchanged=e}get leftTrigger(){return this._leftTrigger}set leftTrigger(e){this._onlefttriggerchanged&&this._leftTrigger!==e&&this._onlefttriggerchanged(e),this._leftTrigger=e}get rightTrigger(){return this._rightTrigger}set rightTrigger(e){this._onrighttriggerchanged&&this._rightTrigger!==e&&this._onrighttriggerchanged(e),this._rightTrigger=e}onbuttondown(e){this._onbuttondown=e}onbuttonup(e){this._onbuttonup=e}ondpaddown(e){this._ondpaddown=e}ondpadup(e){this._ondpadup=e}_setButtonValue(e,t,i){return e!==t&&(e===1&&(this._onbuttondown&&this._onbuttondown(i),this.onButtonDownObservable.notifyObservers(i)),e===0&&(this._onbuttonup&&this._onbuttonup(i),this.onButtonUpObservable.notifyObservers(i))),e}_setDPadValue(e,t,i){return e!==t&&(e===1&&(this._ondpaddown&&this._ondpaddown(i),this.onPadDownObservable.notifyObservers(i)),e===0&&(this._ondpadup&&this._ondpadup(i),this.onPadUpObservable.notifyObservers(i))),e}get buttonCross(){return this._buttonCross}set buttonCross(e){this._buttonCross=this._setButtonValue(e,this._buttonCross,0)}get buttonCircle(){return this._buttonCircle}set buttonCircle(e){this._buttonCircle=this._setButtonValue(e,this._buttonCircle,1)}get buttonSquare(){return this._buttonSquare}set buttonSquare(e){this._buttonSquare=this._setButtonValue(e,this._buttonSquare,2)}get buttonTriangle(){return this._buttonTriangle}set buttonTriangle(e){this._buttonTriangle=this._setButtonValue(e,this._buttonTriangle,3)}get buttonOptions(){return this._buttonOptions}set buttonOptions(e){this._buttonOptions=this._setButtonValue(e,this._buttonOptions,9)}get buttonShare(){return this._buttonShare}set buttonShare(e){this._buttonShare=this._setButtonValue(e,this._buttonShare,8)}get buttonL1(){return this._buttonL1}set buttonL1(e){this._buttonL1=this._setButtonValue(e,this._buttonL1,4)}get buttonR1(){return this._buttonR1}set buttonR1(e){this._buttonR1=this._setButtonValue(e,this._buttonR1,5)}get buttonLeftStick(){return this._buttonLeftStick}set buttonLeftStick(e){this._buttonLeftStick=this._setButtonValue(e,this._buttonLeftStick,10)}get buttonRightStick(){return this._buttonRightStick}set buttonRightStick(e){this._buttonRightStick=this._setButtonValue(e,this._buttonRightStick,11)}get dPadUp(){return this._dPadUp}set dPadUp(e){this._dPadUp=this._setDPadValue(e,this._dPadUp,12)}get dPadDown(){return this._dPadDown}set dPadDown(e){this._dPadDown=this._setDPadValue(e,this._dPadDown,13)}get dPadLeft(){return this._dPadLeft}set dPadLeft(e){this._dPadLeft=this._setDPadValue(e,this._dPadLeft,14)}get dPadRight(){return this._dPadRight}set dPadRight(e){this._dPadRight=this._setDPadValue(e,this._dPadRight,15)}update(){super.update(),this.buttonCross=this.browserGamepad.buttons[0].value,this.buttonCircle=this.browserGamepad.buttons[1].value,this.buttonSquare=this.browserGamepad.buttons[2].value,this.buttonTriangle=this.browserGamepad.buttons[3].value,this.buttonL1=this.browserGamepad.buttons[4].value,this.buttonR1=this.browserGamepad.buttons[5].value,this.leftTrigger=this.browserGamepad.buttons[6].value,this.rightTrigger=this.browserGamepad.buttons[7].value,this.buttonShare=this.browserGamepad.buttons[8].value,this.buttonOptions=this.browserGamepad.buttons[9].value,this.buttonLeftStick=this.browserGamepad.buttons[10].value,this.buttonRightStick=this.browserGamepad.buttons[11].value,this.dPadUp=this.browserGamepad.buttons[12].value,this.dPadDown=this.browserGamepad.buttons[13].value,this.dPadLeft=this.browserGamepad.buttons[14].value,this.dPadRight=this.browserGamepad.buttons[15].value}dispose(){super.dispose(),this.onButtonDownObservable.clear(),this.onButtonUpObservable.clear(),this.onPadDownObservable.clear(),this.onPadUpObservable.clear()}}class sfe{constructor(e){if(this._scene=e,this._babylonGamepads=[],this._oneGamepadConnected=!1,this._isMonitoring=!1,this.onGamepadDisconnectedObservable=new xe,Il()?(this._gamepadEventSupported="GamepadEvent"in window,this._gamepadSupport=navigator&&navigator.getGamepads):this._gamepadEventSupported=!1,this.onGamepadConnectedObservable=new xe(t=>{for(const i in this._babylonGamepads){const s=this._babylonGamepads[i];s&&s._isConnected&&this.onGamepadConnectedObservable.notifyObserver(t,s)}}),this._onGamepadConnectedEvent=t=>{const i=t.gamepad;if(i.index in this._babylonGamepads&&this._babylonGamepads[i.index].isConnected)return;let s;this._babylonGamepads[i.index]?(s=this._babylonGamepads[i.index],s.browserGamepad=i,s._isConnected=!0):s=this._addNewGamepad(i),this.onGamepadConnectedObservable.notifyObservers(s),this._startMonitoringGamepads()},this._onGamepadDisconnectedEvent=t=>{const i=t.gamepad;for(const s in this._babylonGamepads)if(this._babylonGamepads[s].index===i.index){const r=this._babylonGamepads[s];r._isConnected=!1,this.onGamepadDisconnectedObservable.notifyObservers(r),r.dispose&&r.dispose();break}},this._gamepadSupport)if(this._updateGamepadObjects(),this._babylonGamepads.length&&this._startMonitoringGamepads(),this._gamepadEventSupported){const t=this._scene?this._scene.getEngine().getHostWindow():window;t&&(t.addEventListener("gamepadconnected",this._onGamepadConnectedEvent,!1),t.addEventListener("gamepaddisconnected",this._onGamepadDisconnectedEvent,!1))}else this._startMonitoringGamepads()}get gamepads(){return this._babylonGamepads}getGamepadByType(e=Dc.XBOX){for(const t of this._babylonGamepads)if(t&&t.type===e)return t;return null}dispose(){this._gamepadEventSupported&&(this._onGamepadConnectedEvent&&window.removeEventListener("gamepadconnected",this._onGamepadConnectedEvent),this._onGamepadDisconnectedEvent&&window.removeEventListener("gamepaddisconnected",this._onGamepadDisconnectedEvent),this._onGamepadConnectedEvent=null,this._onGamepadDisconnectedEvent=null),this._babylonGamepads.forEach(e=>{e.dispose()}),this.onGamepadConnectedObservable.clear(),this.onGamepadDisconnectedObservable.clear(),this._oneGamepadConnected=!1,this._stopMonitoringGamepads(),this._babylonGamepads=[]}_addNewGamepad(e){this._oneGamepadConnected||(this._oneGamepadConnected=!0);let t;const i=e.id.search("054c")!==-1&&e.id.search("0ce6")===-1,s=e.id.search("Xbox One")!==-1;return s||e.id.search("Xbox 360")!==-1||e.id.search("xinput")!==-1||e.id.search("045e")!==-1&&e.id.search("Surface Dock")===-1?t=new tfe(e.id,e.index,e,s):i?t=new ife(e.id,e.index,e):t=new J2e(e.id,e.index,e),this._babylonGamepads[t.index]=t,t}_startMonitoringGamepads(){this._isMonitoring||(this._isMonitoring=!0,this._checkGamepadsStatus())}_stopMonitoringGamepads(){this._isMonitoring=!1}_checkGamepadsStatus(){this._updateGamepadObjects();for(const e in this._babylonGamepads){const t=this._babylonGamepads[e];if(!(!t||!t.isConnected))try{t.update()}catch{this._loggedErrors.indexOf(t.index)===-1&&(Le.Warn(`Error updating gamepad ${t.id}`),this._loggedErrors.push(t.index))}}this._isMonitoring&&dt.QueueNewFrame(()=>{this._checkGamepadsStatus()})}_updateGamepadObjects(){const e=navigator.getGamepads?navigator.getGamepads():[];for(let t=0;t<e.length;t++){const i=e[t];if(i)if(this._babylonGamepads[i.index])this._babylonGamepads[t].browserGamepad=i,this._babylonGamepads[t].isConnected||(this._babylonGamepads[t]._isConnected=!0,this.onGamepadConnectedObservable.notifyObservers(this._babylonGamepads[t]));else{const s=this._addNewGamepad(i);this.onGamepadConnectedObservable.notifyObservers(s)}}}}Object.defineProperty(ui.prototype,"gamepadManager",{get:function(){if(!this._gamepadManager){this._gamepadManager=new sfe(this);let a=this._getComponent(jt.NAME_GAMEPAD);a||(a=new rfe(this),this._addComponent(a))}return this._gamepadManager},enumerable:!0,configurable:!0}),Dw.prototype.addGamepad=function(){return this.add(new gB),this},YW.prototype.addGamepad=function(){return this.add(new pB),this};class rfe{constructor(e){this.name=jt.NAME_GAMEPAD,this.scene=e}register(){}rebuild(){}dispose(){const e=this.scene._gamepadManager;e&&(e.dispose(),this.scene._gamepadManager=null)}}Rr.AddNodeConstructor("FreeCamera",(a,e)=>()=>new QT(a,P.Zero(),e));class QT extends Gq{get gamepadAngularSensibility(){const e=this.inputs.attached.gamepad;return e?e.gamepadAngularSensibility:0}set gamepadAngularSensibility(e){const t=this.inputs.attached.gamepad;t&&(t.gamepadAngularSensibility=e)}get gamepadMoveSensibility(){const e=this.inputs.attached.gamepad;return e?e.gamepadMoveSensibility:0}set gamepadMoveSensibility(e){const t=this.inputs.attached.gamepad;t&&(t.gamepadMoveSensibility=e)}constructor(e,t,i){super(e,t,i),this.inputs.addGamepad()}getClassName(){return"UniversalCamera"}}_i._CreateDefaultParsedCamera=(a,e)=>new QT(a,P.Zero(),e),Rr.AddNodeConstructor("GamepadCamera",(a,e)=>()=>new sH(a,P.Zero(),e));class sH extends QT{constructor(e,t,i){super(e,t,i)}getClassName(){return"GamepadCamera"}}class e5 extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>HXe))):t.push(Promise.resolve().then(()=>WXe))}constructor(e,t=null,i){super({...i,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:e5.FragmentUrl,samplers:e5.Samplers})}}e5.FragmentUrl="anaglyph",e5.Samplers=["leftSampler"];class Kq extends Mi{getClassName(){return"AnaglyphPostProcess"}constructor(e,t,i,s,r,n){const o={samplers:e5.Samplers,size:typeof t=="number"?t:void 0,camera:i[1],samplingMode:s,engine:r,reusable:n,...t};super(e,e5.FragmentUrl,{effectWrapper:typeof t=="number"||!t.effectWrapper?new e5(e,r,o):void 0,...o}),this._passedProcess=i[0]._rigPostProcess,this.onApplyObservable.add(l=>{l.setTextureFromPostProcess("leftSampler",this._passedProcess)})}}ve("BABYLON.AnaglyphPostProcess",Kq);function _B(a){a._rigCameras[0]._rigPostProcess=new q6(a.name+"_passthru",1,a._rigCameras[0]),a._rigCameras[1]._rigPostProcess=new Kq(a.name+"_anaglyph",1,a._rigCameras)}Rr.AddNodeConstructor("AnaglyphArcRotateCamera",(a,e,t)=>()=>new nfe(a,0,0,1,P.Zero(),t.interaxial_distance,e));class nfe extends yr{constructor(e,t,i,s,r,n,o){super(e,t,i,s,r,o),this._setRigMode=()=>_B(this),this.interaxialDistance=n,this.setCameraRigMode(_i.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:n})}getClassName(){return"AnaglyphArcRotateCamera"}}Rr.AddNodeConstructor("AnaglyphFreeCamera",(a,e,t)=>()=>new afe(a,P.Zero(),t.interaxial_distance,e));class afe extends $d{constructor(e,t,i,s){super(e,t,s),this._setRigMode=()=>_B(this),this.interaxialDistance=i,this.setCameraRigMode(_i.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:i})}getClassName(){return"AnaglyphFreeCamera"}}Rr.AddNodeConstructor("AnaglyphGamepadCamera",(a,e,t)=>()=>new ofe(a,P.Zero(),t.interaxial_distance,e));class ofe extends sH{constructor(e,t,i,s){super(e,t,s),this._setRigMode=()=>_B(this),this.interaxialDistance=i,this.setCameraRigMode(_i.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:i})}getClassName(){return"AnaglyphGamepadCamera"}}Rr.AddNodeConstructor("AnaglyphUniversalCamera",(a,e,t)=>()=>new lfe(a,P.Zero(),t.interaxial_distance,e));class lfe extends QT{constructor(e,t,i,s){super(e,t,s),this._setRigMode=()=>_B(this),this.interaxialDistance=i,this.setCameraRigMode(_i.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:i})}getClassName(){return"AnaglyphUniversalCamera"}}const cfe="stereoscopicInterlacePixelShader",VNe=`const vec3 TWO=vec3(2.0,2.0,2.0);varying vec2 vUV;uniform sampler2D camASampler;uniform sampler2D textureSampler;uniform vec2 stepSize;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{bool useCamA;bool useCamB;vec2 texCoord1;vec2 texCoord2;vec3 frag1;vec3 frag2;
#ifdef IS_STEREOSCOPIC_HORIZ
useCamB=vUV.x>0.5;useCamA=!useCamB;texCoord1=vec2(useCamB ? (vUV.x-0.5)*2.0 : vUV.x*2.0,vUV.y);texCoord2=vec2(texCoord1.x+stepSize.x,vUV.y);
#else
#ifdef IS_STEREOSCOPIC_INTERLACED
float rowNum=floor(vUV.y/stepSize.y);useCamA=mod(rowNum,2.0)==1.0;useCamB=mod(rowNum,2.0)==0.0;texCoord1=vec2(vUV.x,vUV.y);texCoord2=vec2(vUV.x,vUV.y);
#else
useCamB=vUV.y>0.5;useCamA=!useCamB;texCoord1=vec2(vUV.x,useCamB ? (vUV.y-0.5)*2.0 : vUV.y*2.0);texCoord2=vec2(vUV.x,texCoord1.y+stepSize.y);
#endif
#endif
if (useCamB){frag1=texture2D(textureSampler,texCoord1).rgb;frag2=texture2D(textureSampler,texCoord2).rgb;}else if (useCamA){frag1=texture2D(camASampler ,texCoord1).rgb;frag2=texture2D(camASampler ,texCoord2).rgb;}else {discard;}
gl_FragColor=vec4((frag1+frag2)/TWO,1.0);}
`;H.ShadersStore[cfe]||(H.ShadersStore[cfe]=VNe);class ufe extends Mi{getClassName(){return"StereoscopicInterlacePostProcessI"}constructor(e,t,i,s,r,n,o){super(e,"stereoscopicInterlace",["stepSize"],["camASampler"],1,t[1],r,n,o,s?"#define IS_STEREOSCOPIC_INTERLACED 1":i?"#define IS_STEREOSCOPIC_HORIZ 1":void 0),this._passedProcess=t[0]._rigPostProcess,this._stepSize=new Ue(1/this.width,1/this.height),this.onSizeChangedObservable.add(()=>{this._stepSize=new Ue(1/this.width,1/this.height)}),this.onApplyObservable.add(l=>{l.setTextureFromPostProcess("camASampler",this._passedProcess),l.setFloat2("stepSize",this._stepSize.x,this._stepSize.y)})}}class GNe extends Mi{getClassName(){return"StereoscopicInterlacePostProcess"}constructor(e,t,i,s,r,n){super(e,"stereoscopicInterlace",["stepSize"],["camASampler"],1,t[1],s,r,n,i?"#define IS_STEREOSCOPIC_HORIZ 1":void 0),this._passedProcess=t[0]._rigPostProcess,this._stepSize=new Ue(1/this.width,1/this.height),this.onSizeChangedObservable.add(()=>{this._stepSize=new Ue(1/this.width,1/this.height)}),this.onApplyObservable.add(o=>{o.setTextureFromPostProcess("camASampler",this._passedProcess),o.setFloat2("stepSize",this._stepSize.x,this._stepSize.y)})}}function vB(a){const e=a.cameraRigMode===_i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL||a.cameraRigMode===_i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED,t=a.cameraRigMode===_i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED;a.cameraRigMode===_i.RIG_MODE_STEREOSCOPIC_INTERLACED?(a._rigCameras[0]._rigPostProcess=new q6(a.name+"_passthru",1,a._rigCameras[0]),a._rigCameras[1]._rigPostProcess=new ufe(a.name+"_stereoInterlace",a._rigCameras,!1,!0)):(a._rigCameras[t?1:0].viewport=new Tc(0,0,e?.5:1,e?1:.5),a._rigCameras[t?0:1].viewport=new Tc(e?.5:0,e?0:.5,e?.5:1,e?1:.5))}Rr.AddNodeConstructor("StereoscopicArcRotateCamera",(a,e,t)=>()=>new hfe(a,0,0,1,P.Zero(),t.interaxial_distance,t.isStereoscopicSideBySide,e));class hfe extends yr{constructor(e,t,i,s,r,n,o,l){super(e,t,i,s,r,l),this._setRigMode=()=>vB(this),this.interaxialDistance=n,this.isStereoscopicSideBySide=o,this.setCameraRigMode(o?_i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:_i.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:n})}getClassName(){return"StereoscopicArcRotateCamera"}}Rr.AddNodeConstructor("StereoscopicFreeCamera",(a,e,t)=>()=>new dfe(a,P.Zero(),t.interaxial_distance,t.isStereoscopicSideBySide,e));class dfe extends $d{constructor(e,t,i,s,r){super(e,t,r),this._setRigMode=()=>vB(this),this.interaxialDistance=i,this.isStereoscopicSideBySide=s,this.setCameraRigMode(s?_i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:_i.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:i})}getClassName(){return"StereoscopicFreeCamera"}}Rr.AddNodeConstructor("StereoscopicGamepadCamera",(a,e,t)=>()=>new ffe(a,P.Zero(),t.interaxial_distance,t.isStereoscopicSideBySide,e));class ffe extends sH{constructor(e,t,i,s,r){super(e,t,r),this._setRigMode=()=>vB(this),this.interaxialDistance=i,this.isStereoscopicSideBySide=s,this.setCameraRigMode(s?_i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:_i.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:i})}getClassName(){return"StereoscopicGamepadCamera"}}Rr.AddNodeConstructor("StereoscopicFreeCamera",(a,e,t)=>()=>new pfe(a,P.Zero(),t.interaxial_distance,t.isStereoscopicSideBySide,e));class pfe extends QT{constructor(e,t,i,s,r){super(e,t,r),this._setRigMode=()=>vB(this),this.interaxialDistance=i,this.isStereoscopicSideBySide=s,this.setCameraRigMode(s?_i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:_i.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:i})}getClassName(){return"StereoscopicUniversalCamera"}}class WNe extends QT{set distanceBetweenEyes(e){this._distanceBetweenEyes=e}get distanceBetweenEyes(){return this._distanceBetweenEyes}set distanceToProjectionPlane(e){this._distanceToProjectionPlane=e}get distanceToProjectionPlane(){return this._distanceToProjectionPlane}constructor(e,t,i,s=1,r=.065){super(e,t,i),this._distanceBetweenEyes=r,this._distanceToProjectionPlane=s,this.setCameraRigMode(_i.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL,{stereoHalfAngle:0}),this._cameraRigParams.stereoHalfAngle=0,this._cameraRigParams.interaxialDistance=r}getClassName(){return"StereoscopicUniversalCamera"}createRigCamera(e){const t=new Ja(e,P.Zero(),this.getScene()),i=new Si("tm_"+e,this.getScene());return t.parent=i,i.setPivotMatrix(me.Identity(),!1),t.isRigCamera=!0,t.rigParent=this,t}_updateRigCameras(){for(let e=0;e<this._rigCameras.length;e++){const t=this._rigCameras[e];t.minZ=this.minZ,t.maxZ=this.maxZ,t.fov=this.fov,t.upVector.copyFrom(this.upVector),t.rotationQuaternion?t.rotationQuaternion.copyFrom(this.rotationQuaternion):t.rotation.copyFrom(this.rotation),this._updateCamera(this._rigCameras[e],e)}}_updateCamera(e,t){const i=this.distanceBetweenEyes/2,s=i/this.distanceToProjectionPlane;e.position.copyFrom(this.position),e.position.addInPlaceFromFloats(t===0?-i:i,0,-this._distanceToProjectionPlane);const r=e.parent,n=r.getPivotMatrix();n.setTranslationFromFloats(t===0?i:-i,0,0),n.setRowFromFloats(2,t===0?s:-s,0,1,0),r.setPivotMatrix(n,!1)}_setRigMode(){this._rigCameras[0].viewport=new Tc(0,0,.5,1),this._rigCameras[1].viewport=new Tc(.5,0,.5,1);for(let e=0;e<this._rigCameras.length;e++)this._updateCamera(this._rigCameras[e],e)}}Rr.AddNodeConstructor("VirtualJoysticksCamera",(a,e)=>()=>new mfe(a,P.Zero(),e));class mfe extends $d{constructor(e,t,i){super(e,t,i),this.inputs.addVirtualJoystick()}getClassName(){return"VirtualJoysticksCamera"}}class vL{constructor(){this.compensateDistortion=!0,this.multiviewEnabled=!1}get aspectRatio(){return this.hResolution/(2*this.vResolution)}get aspectRatioFov(){return 2*Math.atan(this.postProcessScaleFactor*this.vScreenSize/(2*this.eyeToScreenDistance))}get leftHMatrix(){const t=4*(this.hScreenSize/4-this.lensSeparationDistance/2)/this.hScreenSize;return me.Translation(t,0,0)}get rightHMatrix(){const t=4*(this.hScreenSize/4-this.lensSeparationDistance/2)/this.hScreenSize;return me.Translation(-t,0,0)}get leftPreViewMatrix(){return me.Translation(.5*this.interpupillaryDistance,0,0)}get rightPreViewMatrix(){return me.Translation(-.5*this.interpupillaryDistance,0,0)}static GetDefault(){const e=new vL;return e.hResolution=1280,e.vResolution=800,e.hScreenSize=.149759993,e.vScreenSize=.0935999975,e.vScreenCenter=.0467999987,e.eyeToScreenDistance=.0410000011,e.lensSeparationDistance=.063500002,e.interpupillaryDistance=.064000003,e.distortionK=[1,.219999999,.239999995,0],e.chromaAbCorrection=[.995999992,-.00400000019,1.01400006,0],e.postProcessScaleFactor=1.714605507808412,e.lensCenterOffset=.151976421,e}}class qq extends Mi{getClassName(){return"VRDistortionCorrectionPostProcess"}constructor(e,t,i,s){super(e,"vrDistortionCorrection",["LensCenter","Scale","ScaleIn","HmdWarpParam"],null,s.postProcessScaleFactor,t,be.BILINEAR_SAMPLINGMODE),this._isRightEye=i,this._distortionFactors=s.distortionK,this._postProcessScaleFactor=s.postProcessScaleFactor,this._lensCenterOffset=s.lensCenterOffset,this.adaptScaleToCurrentViewport=!0,this.onSizeChangedObservable.add(()=>{this._scaleIn=new Ue(2,2/this.aspectRatio),this._scaleFactor=new Ue(.5*(1/this._postProcessScaleFactor),.5*(1/this._postProcessScaleFactor)*this.aspectRatio),this._lensCenter=new Ue(this._isRightEye?.5-this._lensCenterOffset*.5:.5+this._lensCenterOffset*.5,.5)}),this.onApplyObservable.add(r=>{r.setFloat2("LensCenter",this._lensCenter.x,this._lensCenter.y),r.setFloat2("Scale",this._scaleFactor.x,this._scaleFactor.y),r.setFloat2("ScaleIn",this._scaleIn.x,this._scaleIn.y),r.setFloat4("HmdWarpParam",this._distortionFactors[0],this._distortionFactors[1],this._distortionFactors[2],this._distortionFactors[3])})}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>SXe))):t.push(Promise.resolve().then(()=>bXe)),super._gatherImports(e,t)}}const gfe="vrMultiviewToSingleviewPixelShader",HNe=`precision mediump sampler2DArray;varying vec2 vUV;uniform sampler2DArray multiviewSampler;uniform int imageIndex;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{gl_FragColor=texture2D(multiviewSampler,vec3(vUV,imageIndex));}`;H.ShadersStore[gfe]||(H.ShadersStore[gfe]=HNe);class Qq extends Ir{set samples(e){this._samples=e}get samples(){return this._samples}constructor(e,t=512){super("multiview rtt",t,e,!1,!0,0,!1,void 0,!1,!1,!0,void 0,!0),this._renderTarget=this.getScene().getEngine().createMultiviewRenderTargetTexture(this.getRenderWidth(),this.getRenderHeight()),this._texture=this._renderTarget.texture,this._texture.isMultiview=!0,this._texture.format=5,this.samples=this._getEngine().getCaps().maxSamples||this.samples,this._texture.samples=this._samples}_bindFrameBuffer(){this._renderTarget&&this.getScene().getEngine().bindMultiviewFramebuffer(this._renderTarget)}getViewCount(){return 2}}Qt.prototype.createMultiviewRenderTargetTexture=function(a,e,t,i){const s=this._gl;if(!this.getCaps().multiview)throw"Multiview is not supported";const r=this._createHardwareRenderTargetWrapper(!1,!1,{width:a,height:e});r._framebuffer=s.createFramebuffer();const n=new gr(this,0,!0);return n.width=a,n.height=e,n.isMultiview=!0,t||(t=s.createTexture(),s.bindTexture(s.TEXTURE_2D_ARRAY,t),s.texStorage3D(s.TEXTURE_2D_ARRAY,1,s.RGBA8,a,e,2)),r._colorTextureArray=t,i||(i=s.createTexture(),s.bindTexture(s.TEXTURE_2D_ARRAY,i),s.texStorage3D(s.TEXTURE_2D_ARRAY,1,s.DEPTH24_STENCIL8,a,e,2)),r._depthStencilTextureArray=i,n.isReady=!0,r.setTextures(n),r._depthStencilTexture=n,r},Qt.prototype.bindMultiviewFramebuffer=function(a){const e=a,t=this._gl,i=this.getCaps().oculusMultiview||this.getCaps().multiview;if(this.bindFramebuffer(e,void 0,void 0,void 0,!0),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,e._framebuffer),e._colorTextureArray&&e._depthStencilTextureArray)this.getCaps().oculusMultiview?(i.framebufferTextureMultisampleMultiviewOVR(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,e._colorTextureArray,0,e.samples,0,2),i.framebufferTextureMultisampleMultiviewOVR(t.DRAW_FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,e._depthStencilTextureArray,0,e.samples,0,2)):(i.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,e._colorTextureArray,0,0,2),i.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,e._depthStencilTextureArray,0,0,2));else throw"Invalid multiview frame buffer"},Qt.prototype.bindSpaceWarpFramebuffer=function(a){const e=a,t=this._gl,i=this.getCaps().oculusMultiview||this.getCaps().multiview;if(this.bindFramebuffer(e,void 0,void 0,void 0,!0),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,e._framebuffer),e._colorTextureArray&&e._depthStencilTextureArray)i.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,e._colorTextureArray,0,0,2),i.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER,t.DEPTH_ATTACHMENT,e._depthStencilTextureArray,0,0,2);else throw new Error("Invalid Space Warp framebuffer")},_i.prototype._useMultiviewToSingleView=!1,_i.prototype._multiviewTexture=null,_i.prototype._resizeOrCreateMultiviewTexture=function(a,e){this._multiviewTexture?(this._multiviewTexture.getRenderWidth()!=a||this._multiviewTexture.getRenderHeight()!=e)&&(this._multiviewTexture.dispose(),this._multiviewTexture=new Qq(this.getScene(),{width:a,height:e})):this._multiviewTexture=new Qq(this.getScene(),{width:a,height:e})};function _fe(a,e){const t=new Ti(a,void 0,!0,e);return t.addUniform("viewProjection",16),t.addUniform("viewProjectionR",16),t.addUniform("view",16),t.addUniform("projection",16),t.addUniform("vEyePosition",4),t}const YNe=ui.prototype.createSceneUniformBuffer;ui.prototype._transformMatrixR=me.Zero(),ui.prototype._multiviewSceneUbo=null,ui.prototype._createMultiviewUbo=function(){this._multiviewSceneUbo=_fe(this.getEngine(),"scene_multiview")},ui.prototype.createSceneUniformBuffer=function(a){return this._multiviewSceneUbo?_fe(this.getEngine(),a):YNe.bind(this)(a)},ui.prototype._updateMultiviewUbo=function(a,e){a&&e&&a.multiplyToRef(e,this._transformMatrixR),a&&e&&(a.multiplyToRef(e,ae.Matrix[0]),t3.GetRightPlaneToRef(ae.Matrix[0],this._frustumPlanes[3])),this._multiviewSceneUbo&&(this._multiviewSceneUbo.updateMatrix("viewProjection",this.getTransformMatrix()),this._multiviewSceneUbo.updateMatrix("viewProjectionR",this._transformMatrixR),this._multiviewSceneUbo.updateMatrix("view",this._viewMatrix),this._multiviewSceneUbo.updateMatrix("projection",this._projectionMatrix))},ui.prototype._renderMultiviewToSingleView=function(a){a._resizeOrCreateMultiviewTexture(a._rigPostProcess&&a._rigPostProcess&&a._rigPostProcess.width>0?a._rigPostProcess.width:this.getEngine().getRenderWidth(!0),a._rigPostProcess&&a._rigPostProcess&&a._rigPostProcess.height>0?a._rigPostProcess.height:this.getEngine().getRenderHeight(!0)),this._multiviewSceneUbo||this._createMultiviewUbo(),a.outputRenderTarget=a._multiviewTexture,this._renderForCamera(a),a.outputRenderTarget=null;for(let e=0;e<a._rigCameras.length;e++){const t=this.getEngine();this._activeCamera=a._rigCameras[e],t.setViewport(this._activeCamera.viewport),this.postProcessManager&&(this.postProcessManager._prepareFrame(),this.postProcessManager._finalizeFrame(this._activeCamera.isIntermediate))}};class vfe extends Mi{getClassName(){return"VRMultiviewToSingleviewPostProcess"}constructor(e,t,i){super(e,"vrMultiviewToSingleview",["imageIndex"],["multiviewSampler"],i,t,be.BILINEAR_SAMPLINGMODE);const s=t??this.getCamera();this.onSizeChangedObservable.add(()=>{}),this.onApplyObservable.add(r=>{s._scene.activeCamera&&s._scene.activeCamera.isLeftCamera?r.setInt("imageIndex",0):r.setInt("imageIndex",1),r.setTexture("multiviewSampler",s._multiviewTexture)})}}function rH(a,e){const t=e.vrCameraMetrics||vL.GetDefault();a._rigCameras[0]._cameraRigParams.vrMetrics=t,a._rigCameras[0].viewport=new Tc(0,0,.5,1),a._rigCameras[0]._cameraRigParams.vrWorkMatrix=new me,a._rigCameras[0]._cameraRigParams.vrHMatrix=t.leftHMatrix,a._rigCameras[0]._cameraRigParams.vrPreViewMatrix=t.leftPreViewMatrix,a._rigCameras[0].getProjectionMatrix=a._rigCameras[0]._getVRProjectionMatrix,a._rigCameras[1]._cameraRigParams.vrMetrics=t,a._rigCameras[1].viewport=new Tc(.5,0,.5,1),a._rigCameras[1]._cameraRigParams.vrWorkMatrix=new me,a._rigCameras[1]._cameraRigParams.vrHMatrix=t.rightHMatrix,a._rigCameras[1]._cameraRigParams.vrPreViewMatrix=t.rightPreViewMatrix,a._rigCameras[1].getProjectionMatrix=a._rigCameras[1]._getVRProjectionMatrix,t.multiviewEnabled&&(a.getScene().getEngine().getCaps().multiview?(a._useMultiviewToSingleView=!0,a._rigPostProcess=new vfe("VRMultiviewToSingleview",a,t.postProcessScaleFactor)):(de.Warn("Multiview is not supported, falling back to standard rendering"),t.multiviewEnabled=!1)),t.compensateDistortion&&(a._rigCameras[0]._rigPostProcess=new qq("VR_Distort_Compensation_Left",a._rigCameras[0],!1,t),a._rigCameras[1]._rigPostProcess=new qq("VR_Distort_Compensation_Right",a._rigCameras[1],!0,t))}Rr.AddNodeConstructor("VRDeviceOrientationArcRotateCamera",(a,e)=>()=>new Afe(a,0,0,1,P.Zero(),e));class Afe extends yr{constructor(e,t,i,s,r,n,o=!0,l=vL.GetDefault()){super(e,t,i,s,r,n),this._setRigMode=c=>rH(this,c),l.compensateDistortion=o,this.setCameraRigMode(_i.RIG_MODE_VR,{vrCameraMetrics:l}),this.inputs.addVRDeviceOrientation()}getClassName(){return"VRDeviceOrientationArcRotateCamera"}}Rr.AddNodeConstructor("VRDeviceOrientationFreeCamera",(a,e)=>()=>new nH(a,P.Zero(),e));class nH extends iH{constructor(e,t,i,s=!0,r=vL.GetDefault()){super(e,t,i),this._setRigMode=n=>rH(this,n),r.compensateDistortion=s,this.setCameraRigMode(_i.RIG_MODE_VR,{vrCameraMetrics:r})}getClassName(){return"VRDeviceOrientationFreeCamera"}}Rr.AddNodeConstructor("VRDeviceOrientationGamepadCamera",(a,e)=>()=>new Cfe(a,P.Zero(),e));class Cfe extends nH{constructor(e,t,i,s=!0,r=vL.GetDefault()){super(e,t,i,s,r),this._setRigMode=n=>rH(this,n),this.inputs.addGamepad()}getClassName(){return"VRDeviceOrientationGamepadCamera"}}Zi.prototype.createDynamicTexture=function(a,e,t,i){const s=new gr(this,4);return s.baseWidth=a,s.baseHeight=e,t&&(a=this.needPOTTextures?g0(a,this._caps.maxTextureSize):a,e=this.needPOTTextures?g0(e,this._caps.maxTextureSize):e),s.width=a,s.height=e,s.isReady=!1,s.generateMipMaps=t,s.samplingMode=i,this.updateTextureSamplingMode(i,s),this._internalTexturesCache.push(s),s},Zi.prototype.updateDynamicTexture=function(a,e,t,i=!1,s,r=!1,n=!1){if(!a)return;const o=this._gl,l=o.TEXTURE_2D,c=this._bindTextureDirectly(l,a,!0,r);this._unpackFlipY(t===void 0?a.invertY:t),i&&o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1);const u=this._getWebGLTextureType(a.type),f=this._getInternalFormat(s||a.format),p=this._getRGBABufferInternalSizedFormat(a.type,f);o.texImage2D(l,0,p,f,u,e),a.generateMipMaps&&o.generateMipmap(l),c||this._bindTextureDirectly(l,null),i&&o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),s&&(a.format=s),a._dynamicTextureSource=e,a._premulAlpha=i,a.invertY=t||!1,a.isReady=!0};class uf extends be{constructor(e,t,i,s=!1,r=3,n=5,o){const l=!i||i._isScene,c=l?i:i==null?void 0:i.scene,u=l?!s:i;super(null,c,u,o,r,void 0,void 0,void 0,void 0,n),this.name=e,this.wrapU=be.CLAMP_ADDRESSMODE,this.wrapV=be.CLAMP_ADDRESSMODE,this._generateMipMaps=s;const f=this._getEngine();if(!f)return;if(t.getContext)this._canvas=t,this._ownCanvas=!1,this._texture=f.createDynamicTexture(this._canvas.width,this._canvas.height,s,r);else{this._canvas=f.createCanvas(1,1),this._ownCanvas=!0;const m=t;m.width||m.width===0?this._texture=f.createDynamicTexture(m.width,m.height,s,r):this._texture=f.createDynamicTexture(t,t,s,r)}const p=this.getSize();this._canvas.width!==p.width&&(this._canvas.width=p.width),this._canvas.height!==p.height&&(this._canvas.height=p.height),this._context=this._canvas.getContext("2d")}getClassName(){return"DynamicTexture"}get canRescale(){return!0}_recreate(e){this._canvas.width=e.width,this._canvas.height=e.height,this.releaseInternalTexture(),this._texture=this._getEngine().createDynamicTexture(e.width,e.height,this._generateMipMaps,this.samplingMode)}scale(e){const t=this.getSize();t.width*=e,t.height*=e,this._recreate(t)}scaleTo(e,t){const i=this.getSize();i.width=e,i.height=t,this._recreate(i)}getContext(){return this._context}clear(e){const t=this.getSize();e&&(this._context.fillStyle=e),this._context.clearRect(0,0,t.width,t.height)}update(e,t=!1,i=!1){this._getEngine().updateDynamicTexture(this._texture,this._canvas,e===void 0?!0:e,t,this._format||void 0,void 0,i)}drawText(e,t,i,s,r,n,o,l=!0){const c=this.getSize();if(n&&(this._context.fillStyle=n,this._context.fillRect(0,0,c.width,c.height)),this._context.font=s,t==null){const u=this._context.measureText(e);t=(c.width-u.width)/2}if(i==null){const u=parseInt(s.replace(/\D/g,""));i=c.height/2+u/3.65}this._context.fillStyle=r||"",this._context.fillText(e,t,i),l&&this.update(o)}dispose(){var e,t;super.dispose(),this._ownCanvas&&((t=(e=this._canvas)==null?void 0:e.remove)==null||t.call(e)),this._canvas=null,this._context=null}clone(){const e=this.getScene();if(!e)return this;const t=this.getSize(),i=new uf(this.name,t,e,this._generateMipMaps);return i.hasAlpha=this.hasAlpha,i.level=this.level,i.wrapU=this.wrapU,i.wrapV=this.wrapV,i}serialize(){const e=this.getScene();e&&!e.isReady()&&de.Warn("The scene must be ready before serializing the dynamic texture");const t=super.serialize();return uf._IsCanvasElement(this._canvas)&&(t.base64String=this._canvas.toDataURL()),t.invertY=this._invertY,t.samplingMode=this.samplingMode,t}static _IsCanvasElement(e){return e.toDataURL!==void 0}_rebuild(){this.update()}}class Jq{get isFixedFoveationSupported(){return this.layerType=="XRWebGLLayer"&&typeof this.layer.fixedFoveation=="number"}get fixedFoveation(){return this.isFixedFoveationSupported?this.layer.fixedFoveation:null}set fixedFoveation(e){if(this.isFixedFoveationSupported){const t=Math.max(0,Math.min(1,e||0));this.layer.fixedFoveation=t}}createRenderTargetTextureProvider(e){return this._rttWrapper=this._createRenderTargetTextureProvider(e),this._rttWrapper}dispose(){this._rttWrapper&&(this._rttWrapper.dispose(),this._rttWrapper=null)}constructor(e,t,i,s,r){this.getWidth=e,this.getHeight=t,this.layer=i,this.layerType=s,this._createRenderTargetTextureProvider=r,this._rttWrapper=null}}class aH{constructor(e,t){this._scene=e,this.layerWrapper=t,this._renderTargetTextures=new Array,this._engine=e.getEngine()}_createInternalTexture(e,t){const i=new gr(this._engine,0,!0);return i.width=e.width,i.height=e.height,i._hardwareTexture=new J9(t,this._engine._gl),i.isReady=!0,i}_createRenderTargetTexture(e,t,i,s,r,n){if(!this._engine)throw new Error("Engine is disposed");const o={width:e,height:t},l=n?new Qq(this._scene,o):new Ir("XR renderTargetTexture",o,this._scene),c=l.renderTarget;if(c._samples=l.samples,(i||!s)&&(c._framebuffer=i),s)if(n)c._colorTextureArray=s;else{const u=this._createInternalTexture(o,s);c.setTexture(u,0),l._texture=u}return r&&(n?c._depthStencilTextureArray=r:c._depthStencilTexture=this._createInternalTexture(o,r)),l.disableRescaling(),this._renderTargetTextures.push(l),l}_destroyRenderTargetTexture(e){this._renderTargetTextures.splice(this._renderTargetTextures.indexOf(e),1),e.dispose()}getFramebufferDimensions(){return this._framebufferDimensions}dispose(){this._renderTargetTextures.forEach(e=>e.dispose()),this._renderTargetTextures.length=0}}class $q extends Jq{constructor(e){super(()=>e.framebufferWidth,()=>e.framebufferHeight,e,"XRWebGLLayer",t=>new XNe(t.scene,this)),this.layer=e}}class XNe extends aH{constructor(e,t){super(e,t),this.layerWrapper=t,this._layer=t.layer,this._framebufferDimensions={framebufferWidth:this._layer.framebufferWidth,framebufferHeight:this._layer.framebufferHeight}}trySetViewportForView(e,t){const i=this._layer.getViewport(t);if(!i)return!1;const s=this._framebufferDimensions.framebufferWidth,r=this._framebufferDimensions.framebufferHeight;return e.x=i.x/s,e.y=i.y/r,e.width=i.width/s,e.height=i.height/r,!0}getRenderTargetTextureForEye(e){const t=this._layer.framebufferWidth,i=this._layer.framebufferHeight,s=this._layer.framebuffer;return(!this._rtt||t!==this._framebufferDimensions.framebufferWidth||i!==this._framebufferDimensions.framebufferHeight||s!==this._framebuffer)&&(this._rtt=this._createRenderTargetTexture(t,i,s),this._framebufferDimensions.framebufferWidth=t,this._framebufferDimensions.framebufferHeight=i,this._framebuffer=s),this._rtt}getRenderTargetTextureForView(e){return this.getRenderTargetTextureForEye(e.eye)}}class AB{static GetDefaults(e){const t=new AB;return t.canvasOptions={antialias:!0,depth:!0,stencil:e?e.isStencilEnable:!0,alpha:!0,framebufferScaleFactor:1},t.newCanvasCssStyle="position:absolute; bottom:0px;right:0px;z-index:10;width:90%;height:100%;background-color: #000000;",t}}class xfe{constructor(e,t=AB.GetDefaults()){if(this._options=t,this._canvas=null,this._engine=null,this.xrLayer=null,this._xrLayerWrapper=null,this.onXRLayerInitObservable=new xe,this._engine=e.scene.getEngine(),this._engine.onDisposeObservable.addOnce(()=>{this._engine=null}),t.canvasElement)this._setManagedOutputCanvas(t.canvasElement);else{const i=document.createElement("canvas");i.style.cssText=this._options.newCanvasCssStyle||"position:absolute; bottom:0px;right:0px;",this._setManagedOutputCanvas(i)}e.onXRSessionInit.add(()=>{this._addCanvas()}),e.onXRSessionEnded.add(()=>{this._removeCanvas()}),this._makeCanvasCompatibleAsync()}dispose(){this._removeCanvas(),this._setManagedOutputCanvas(null),this.onXRLayerInitObservable.clear()}_makeCanvasCompatibleAsync(){this._canvasCompatiblePromise=new Promise((e,t)=>{try{this.canvasContext&&this.canvasContext.makeXRCompatible?this.canvasContext.makeXRCompatible().then(()=>{e()},()=>{Le.Warn("Error executing makeXRCompatible. This does not mean that the session will work incorrectly."),e()}):e()}catch(i){t(i)}})}async initializeXRLayerAsync(e){const t=()=>(this.xrLayer=new XRWebGLLayer(e,this.canvasContext,this._options.canvasOptions),this._xrLayerWrapper=new $q(this.xrLayer),this.onXRLayerInitObservable.notifyObservers(this.xrLayer),this.xrLayer);return this._canvasCompatiblePromise.then(()=>{},()=>{}).then(()=>t())}_addCanvas(){this._canvas&&this._engine&&this._canvas!==this._engine.getRenderingCanvas()&&document.body.appendChild(this._canvas),this.xrLayer?this._setCanvasSize(!0):this.onXRLayerInitObservable.addOnce(()=>{this._setCanvasSize(!0)})}_removeCanvas(){this._canvas&&this._engine&&document.body.contains(this._canvas)&&this._canvas!==this._engine.getRenderingCanvas()&&document.body.removeChild(this._canvas),this._setCanvasSize(!1)}_setCanvasSize(e=!0,t=this._xrLayerWrapper){!this._canvas||!this._engine||(e?t&&(this._canvas!==this._engine.getRenderingCanvas()?(this._canvas.style.width=t.getWidth()+"px",this._canvas.style.height=t.getHeight()+"px"):this._engine.setSize(t.getWidth(),t.getHeight())):this._originalCanvasSize&&(this._canvas!==this._engine.getRenderingCanvas()?(this._canvas.style.width=this._originalCanvasSize.width+"px",this._canvas.style.height=this._originalCanvasSize.height+"px"):this._engine.setSize(this._originalCanvasSize.width,this._originalCanvasSize.height)))}_setManagedOutputCanvas(e){this._removeCanvas(),e?(this._originalCanvasSize={width:e.offsetWidth,height:e.offsetHeight},this._canvas=e,this.canvasContext=this._canvas.getContext("webgl2"),this.canvasContext||(this.canvasContext=this._canvas.getContext("webgl"))):(this._canvas=null,this.canvasContext=null)}}class bfe extends Jq{constructor(e){super(()=>e.framebufferWidth,()=>e.framebufferHeight,e,"XRWebGLLayer",t=>new Sfe(t,this)),this.layer=e}}class Sfe extends aH{constructor(e,t){super(e.scene,t),this.layerWrapper=t,this._nativeRTTProvider=navigator.xr.getNativeRenderTargetProvider(e.session,this._createRenderTargetTexture.bind(this),this._destroyRenderTargetTexture.bind(this)),this._nativeLayer=t.layer}trySetViewportForView(e){return e.x=0,e.y=0,e.width=1,e.height=1,!0}getRenderTargetTextureForEye(e){return this._nativeRTTProvider.getRenderTargetForEye(e)}getRenderTargetTextureForView(e){return this._nativeRTTProvider.getRenderTargetForEye(e.eye)}getFramebufferDimensions(){return{framebufferWidth:this._nativeLayer.framebufferWidth,framebufferHeight:this._nativeLayer.framebufferHeight}}}class yfe{constructor(e){this._nativeRenderTarget=navigator.xr.getWebXRRenderTarget(e.scene.getEngine())}async initializeXRLayerAsync(e){return await this._nativeRenderTarget.initializeXRLayerAsync(e),this.xrLayer=this._nativeRenderTarget.xrLayer,this.xrLayer}dispose(){}}class CB{get worldScalingFactor(){return this._worldScalingFactor}set worldScalingFactor(e){const t=this._worldScalingFactor;this._worldScalingFactor=e,this.onWorldScaleFactorChangedObservable.notifyObservers({previousScaleFactor:t,newScaleFactor:e})}constructor(e){this.scene=e,this.currentTimestamp=-1,this.defaultHeightCompensation=1.7,this.onXRFrameObservable=new xe,this.onXRReferenceSpaceChanged=new xe,this.onXRSessionEnded=new xe,this.onXRSessionInit=new xe,this.onXRReferenceSpaceInitialized=new xe,this.onXRReady=new xe,this.inXRFrameLoop=!1,this.inXRSession=!1,this._worldScalingFactor=1,this.onWorldScaleFactorChangedObservable=new xe(void 0,!0),this._engine=e.getEngine(),this._onEngineDisposedObserver=this._engine.onDisposeObservable.addOnce(()=>{this._engine=null}),e.onDisposeObservable.addOnce(()=>{this.dispose()})}get referenceSpace(){return this._referenceSpace}set referenceSpace(e){this._referenceSpace=e,this.onXRReferenceSpaceChanged.notifyObservers(this._referenceSpace)}get sessionMode(){return this._sessionMode}dispose(){var e;this.inXRSession&&this.exitXRAsync(),this.onXRReady.clear(),this.onXRFrameObservable.clear(),this.onXRSessionEnded.clear(),this.onXRReferenceSpaceChanged.clear(),this.onXRSessionInit.clear(),this.onWorldScaleFactorChangedObservable.clear(),(e=this._engine)==null||e.onDisposeObservable.remove(this._onEngineDisposedObserver),this._engine=null}async exitXRAsync(){if(this.session&&this.inXRSession){this.inXRSession=!1;try{return await this.session.end()}catch{de.Warn("Could not end XR session.")}}return Promise.resolve()}trySetViewportForView(e,t){var i;return((i=this._baseLayerRTTProvider)==null?void 0:i.trySetViewportForView(e,t))||!1}getRenderTargetTextureForEye(e){var t;return((t=this._baseLayerRTTProvider)==null?void 0:t.getRenderTargetTextureForEye(e))||null}getRenderTargetTextureForView(e){var t;return((t=this._baseLayerRTTProvider)==null?void 0:t.getRenderTargetTextureForView(e))||null}getWebXRRenderTarget(e){const t=this.scene.getEngine();return this._xrNavigator.xr.native?new yfe(this):(e=e||AB.GetDefaults(t),e.canvasElement=e.canvasElement||t.getRenderingCanvas()||void 0,new xfe(this,e))}initializeAsync(){return this._xrNavigator=navigator,this._xrNavigator.xr?Promise.resolve():Promise.reject("WebXR not available")}initializeSessionAsync(e="immersive-vr",t={}){return this._xrNavigator.xr.requestSession(e,t).then(i=>(this.session=i,this._sessionMode=e,this.inXRSession=!0,this.onXRSessionInit.notifyObservers(i),this.session.addEventListener("end",()=>{var s;this.inXRSession=!1,this.onXRSessionEnded.notifyObservers(null),this._engine&&(this._engine.framebufferDimensionsObject=null,this._engine.restoreDefaultFramebuffer(),this._engine.customAnimationFrameRequester=null,this._engine._renderLoop()),this.isNative&&((s=this._baseLayerRTTProvider)==null||s.dispose()),this._baseLayerRTTProvider=null,this._baseLayerWrapper=null},{once:!0}),this.session))}isSessionSupportedAsync(e){return CB.IsSessionSupportedAsync(e)}resetReferenceSpace(){this.referenceSpace=this.baseReferenceSpace}runXRRenderLoop(){var e;!this.inXRSession||!this._engine||(this._engine.customAnimationFrameRequester={requestAnimationFrame:t=>this.session.requestAnimationFrame(t),renderFunction:(t,i)=>{var s;if(!(!this.inXRSession||!this._engine)&&(this.currentFrame=i,this.currentTimestamp=t,i)){this.inXRFrameLoop=!0;const r=((s=this._baseLayerRTTProvider)==null?void 0:s.getFramebufferDimensions())||null;this._engine.framebufferDimensionsObject!==r&&(this._engine.framebufferDimensionsObject=r),this.onXRFrameObservable.notifyObservers(i),this._engine._renderLoop(),this._engine.framebufferDimensionsObject=null,this.inXRFrameLoop=!1}}},this._engine.framebufferDimensionsObject=((e=this._baseLayerRTTProvider)==null?void 0:e.getFramebufferDimensions())||null,this.onXRFrameObservable.addOnce(()=>{this.onXRReady.notifyObservers(this)}),typeof window<"u"&&window.cancelAnimationFrame&&window.cancelAnimationFrame(this._engine._frameHandler),this._engine._renderLoop())}setReferenceSpaceTypeAsync(e="local-floor"){return this.session.requestReferenceSpace(e).then(t=>t,t=>(de.Error("XR.requestReferenceSpace failed for the following reason: "),de.Error(t),de.Log('Defaulting to universally-supported "viewer" reference space type.'),this.session.requestReferenceSpace("viewer").then(i=>{const s=new XRRigidTransform({x:0,y:-this.defaultHeightCompensation,z:0});return i.getOffsetReferenceSpace(s)},i=>{throw de.Error(i),'XR initialization failed: required "viewer" reference space type not supported.'}))).then(t=>this.session.requestReferenceSpace("viewer").then(i=>(this.viewerReferenceSpace=i,t))).then(t=>(this.referenceSpace=this.baseReferenceSpace=t,this.onXRReferenceSpaceInitialized.notifyObservers(t),this.referenceSpace))}updateRenderStateAsync(e){return Promise.resolve(this.session.updateRenderState(e))}_setBaseLayerWrapper(e){var t,i;this.isNative&&((t=this._baseLayerRTTProvider)==null||t.dispose()),this._baseLayerWrapper=e,this._baseLayerRTTProvider=((i=this._baseLayerWrapper)==null?void 0:i.createRenderTargetTextureProvider(this))||null}_getBaseLayerWrapper(){return this._baseLayerWrapper}updateRenderState(e){e.baseLayer&&this._setBaseLayerWrapper(this.isNative?new bfe(e.baseLayer):new $q(e.baseLayer)),this.session.updateRenderState(e)}static IsSessionSupportedAsync(e){if(!navigator.xr)return Promise.resolve(!1);const t=navigator.xr.isSessionSupported||navigator.xr.supportsSession;return t?t.call(navigator.xr,e).then(i=>{const s=typeof i>"u"?!0:i;return Promise.resolve(s)}).catch(i=>(de.Warn(i),Promise.resolve(!1))):Promise.resolve(!1)}get isNative(){return this._xrNavigator.xr.native??!1}get currentFrameRate(){var e;return(e=this.session)==null?void 0:e.frameRate}get supportedFrameRates(){var e;return(e=this.session)==null?void 0:e.supportedFrameRates}updateTargetFrameRate(e){return this.session.updateTargetFrameRate(e)}runInXRFrame(e,t=!0){this.inXRFrameLoop?e():(this.inXRSession||!t)&&this.onXRFrameObservable.addOnce(e)}get isFixedFoveationSupported(){var e;return((e=this._baseLayerWrapper)==null?void 0:e.isFixedFoveationSupported)||!1}get fixedFoveation(){var e;return((e=this._baseLayerWrapper)==null?void 0:e.fixedFoveation)||null}set fixedFoveation(e){const t=Math.max(0,Math.min(1,e||0));this._baseLayerWrapper&&(this._baseLayerWrapper.fixedFoveation=t)}get enabledFeatures(){var e;return((e=this.session)==null?void 0:e.enabledFeatures)??null}}class oH{constructor(e,t=null){if(this.scene=e,this._pointerDownOnMeshAsked=!1,this._isActionableMesh=!1,this._teleportationRequestInitiated=!1,this._teleportationBackRequestInitiated=!1,this._rotationRightAsked=!1,this._rotationLeftAsked=!1,this._dpadPressed=!0,this._activePointer=!1,this._id=oH._IdCounter++,t)this._gazeTracker=t.clone("gazeTracker");else{this._gazeTracker=Jv("gazeTracker",{diameter:.0035,thickness:.0025,tessellation:20,updatable:!1},e),this._gazeTracker.bakeCurrentTransformIntoVertices(),this._gazeTracker.isPickable=!1,this._gazeTracker.isVisible=!1;const i=new Bt("targetMat",e);i.specularColor=Pe.Black(),i.emissiveColor=new Pe(.7,.7,.7),i.backFaceCulling=!1,this._gazeTracker.material=i}}_getForwardRay(e){return new Is(P.Zero(),new P(0,0,e))}_selectionPointerDown(){this._pointerDownOnMeshAsked=!0,this._currentHit&&this.scene.simulatePointerDown(this._currentHit,{pointerId:this._id})}_selectionPointerUp(){this._currentHit&&this.scene.simulatePointerUp(this._currentHit,{pointerId:this._id}),this._pointerDownOnMeshAsked=!1}_activatePointer(){this._activePointer=!0}_deactivatePointer(){this._activePointer=!1}_updatePointerDistance(e=100){}dispose(){this._interactionsEnabled=!1,this._teleportationEnabled=!1,this._gazeTracker&&this._gazeTracker.dispose()}}oH._IdCounter=0;class Mfe extends oH{constructor(e,t){super(t),this._getCamera=e}_getForwardRay(e){const t=this._getCamera();return t?t.getForwardRay(e):new Is(P.Zero(),P.Forward())}}class ZNe{}class AL{get onEnteringVR(){return this.onEnteringVRObservable}get onExitingVR(){return this.onExitingVRObservable}get teleportationTarget(){return this._teleportationTarget}set teleportationTarget(e){e&&(e.name="teleportationTarget",this._isDefaultTeleportationTarget=!1,this._teleportationTarget=e)}get gazeTrackerMesh(){return this._cameraGazer._gazeTracker}set gazeTrackerMesh(e){e&&(this._cameraGazer._gazeTracker&&this._cameraGazer._gazeTracker.dispose(),this._cameraGazer._gazeTracker=e,this._cameraGazer._gazeTracker.bakeCurrentTransformIntoVertices(),this._cameraGazer._gazeTracker.isPickable=!1,this._cameraGazer._gazeTracker.isVisible=!1,this._cameraGazer._gazeTracker.name="gazeTracker")}get displayGaze(){return this._displayGaze}set displayGaze(e){this._displayGaze=e,e||(this._cameraGazer._gazeTracker.isVisible=!1)}get displayLaserPointer(){return this._displayLaserPointer}set displayLaserPointer(e){this._displayLaserPointer=e}get deviceOrientationCamera(){return this._deviceOrientationCamera}get currentVRCamera(){return this._scene.activeCamera}get vrDeviceOrientationCamera(){return this._vrDeviceOrientationCamera}get vrButton(){return this._btnVR}get _teleportationRequestInitiated(){return this._cameraGazer._teleportationRequestInitiated}constructor(e,t={}){if(this.webVROptions=t,this._fullscreenVRpresenting=!1,this.enableGazeEvenWhenNoPointerLock=!1,this.exitVROnDoubleTap=!0,this.onEnteringVRObservable=new xe,this.onAfterEnteringVRObservable=new xe,this.onExitingVRObservable=new xe,this._useCustomVRButton=!1,this._teleportActive=!1,this._floorMeshesCollection=[],this._teleportationMode=AL.TELEPORTATIONMODE_CONSTANTTIME,this._teleportationTime=122,this._teleportationSpeed=20,this._rotationAllowed=!0,this._teleportBackwardsVector=new P(0,-1,-1),this._isDefaultTeleportationTarget=!0,this._teleportationFillColor="#444444",this._teleportationBorderColor="#FFFFFF",this._rotationAngle=0,this._haloCenter=new P(0,0,0),this._padSensibilityUp=.65,this._padSensibilityDown=.35,this._pickedLaserColor=new Pe(.2,.2,1),this._pickedGazeColor=new Pe(0,0,1),this.onNewMeshSelected=new xe,this.onNewMeshPicked=new xe,this.onBeforeCameraTeleport=new xe,this.onAfterCameraTeleport=new xe,this.onSelectedMeshUnselected=new xe,this.teleportationEnabled=!0,this._teleportationInitialized=!1,this._interactionsEnabled=!1,this._displayGaze=!0,this._displayLaserPointer=!0,this.updateGazeTrackerScale=!0,this.updateGazeTrackerColor=!0,this.updateControllerLaserColor=!0,this.requestPointerLockOnFullScreen=!0,this.xrTestDone=!1,this._onResize=()=>{this._moveButtonToBottomRight()},this._onFullscreenChange=()=>{this._fullscreenVRpresenting=!!document.fullscreenElement,!this._fullscreenVRpresenting&&this._inputElement&&(this.exitVR(),!this._useCustomVRButton&&this._btnVR&&(this._btnVR.style.top=this._inputElement.offsetTop+this._inputElement.offsetHeight-70+"px",this._btnVR.style.left=this._inputElement.offsetLeft+this._inputElement.offsetWidth-100+"px",this._updateButtonVisibility()))},this._cachedAngularSensibility={angularSensibilityX:null,angularSensibilityY:null,angularSensibility:null},this._beforeRender=()=>{this._scene.getEngine().isPointerLock||this.enableGazeEvenWhenNoPointerLock||(this._cameraGazer._gazeTracker.isVisible=!1)},this._onNewGamepadConnected=s=>{s.type!==Dc.POSE_ENABLED&&(s.leftStick&&s.onleftstickchanged(r=>{this._teleportationInitialized&&this.teleportationEnabled&&(this._checkTeleportWithRay(r,this._cameraGazer),this._checkTeleportBackwards(r,this._cameraGazer))}),s.rightStick&&s.onrightstickchanged(r=>{this._teleportationInitialized&&this._checkRotate(r,this._cameraGazer)}),s.type===Dc.XBOX&&(s.onbuttondown(r=>{this._interactionsEnabled&&r===0&&this._cameraGazer._selectionPointerDown()}),s.onbuttonup(r=>{this._interactionsEnabled&&r===0&&this._cameraGazer._selectionPointerUp()})))},this._workingVector=P.Zero(),this._workingQuaternion=Re.Identity(),this._workingMatrix=me.Identity(),de.Warn("WebVR is deprecated. Please avoid using this experience helper and use the WebXR experience helper instead"),this._scene=e,this._inputElement=e.getEngine().getInputElement(),!("getVRDisplays"in navigator)&&t.useXR===void 0&&(t.useXR=!0),t.createFallbackVRDeviceOrientationFreeCamera===void 0&&(t.createFallbackVRDeviceOrientationFreeCamera=!0),t.createDeviceOrientationCamera===void 0&&(t.createDeviceOrientationCamera=!0),t.laserToggle===void 0&&(t.laserToggle=!0),this._hasEnteredVR=!1,this._scene.activeCamera?this._position=this._scene.activeCamera.position.clone():this._position=new P(0,this._defaultHeight,0),t.createDeviceOrientationCamera||!this._scene.activeCamera){if(this._deviceOrientationCamera=new iH("deviceOrientationVRHelper",this._position.clone(),e),this._scene.activeCamera&&(this._deviceOrientationCamera.minZ=this._scene.activeCamera.minZ,this._deviceOrientationCamera.maxZ=this._scene.activeCamera.maxZ,this._scene.activeCamera instanceof Ja&&this._scene.activeCamera.rotation)){const s=this._scene.activeCamera;s.rotationQuaternion?this._deviceOrientationCamera.rotationQuaternion.copyFrom(s.rotationQuaternion):this._deviceOrientationCamera.rotationQuaternion.copyFrom(Re.RotationYawPitchRoll(s.rotation.y,s.rotation.x,s.rotation.z)),this._deviceOrientationCamera.rotation=s.rotation.clone()}this._scene.activeCamera=this._deviceOrientationCamera,this._inputElement&&this._scene.activeCamera.attachControl()}else this._existingCamera=this._scene.activeCamera;this.webVROptions.useXR&&navigator.xr?CB.IsSessionSupportedAsync("immersive-vr").then(s=>{s?(de.Log("Using WebXR. It is recommended to use the WebXRDefaultExperience directly"),e.createDefaultXRExperienceAsync({floorMeshes:t.floorMeshes||[]}).then(r=>{this.xr=r,this.xrTestDone=!0,this._cameraGazer=new Mfe(()=>this.xr.baseExperience.camera,e),this.xr.baseExperience.onStateChangedObservable.add(n=>{switch(n){case 0:this.onEnteringVRObservable.notifyObservers(this),this._interactionsEnabled||this.xr.pointerSelection.detach(),this.xr.pointerSelection.displayLaserPointer=this._displayLaserPointer;break;case 1:this.onExitingVRObservable.notifyObservers(this),this._scene.getEngine().resize();break;case 2:this._hasEnteredVR=!0;break;case 3:this._hasEnteredVR=!1;break}})})):this._completeVRInit(e,t)}):this._completeVRInit(e,t)}_completeVRInit(e,t){if(this.xrTestDone=!0,t.createFallbackVRDeviceOrientationFreeCamera&&(this._vrDeviceOrientationCamera=new nH("VRDeviceOrientationVRHelper",this._position,this._scene,!0,t.vrDeviceOrientationCameraMetrics),this._vrDeviceOrientationCamera.angularSensibility=Number.MAX_VALUE),this._cameraGazer=new Mfe(()=>this.currentVRCamera,e),!this._useCustomVRButton){this._btnVR=document.createElement("BUTTON"),this._btnVR.className="babylonVRicon",this._btnVR.id="babylonVRiconbtn",this._btnVR.title="Click to switch to VR";let r=".babylonVRicon { position: absolute; right: 20px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url("+(window.SVGSVGElement?"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A":"https://cdn.babylonjs.com/Assets/vrButton.png")+"); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }";r+=".babylonVRicon.vrdisplaypresenting { display: none; }";const n=document.createElement("style");n.appendChild(document.createTextNode(r)),document.getElementsByTagName("head")[0].appendChild(n),this._moveButtonToBottomRight()}this._btnVR&&this._btnVR.addEventListener("click",()=>{this.isInVRMode||this.enterVR()});const i=this._scene.getEngine().getHostWindow();i&&(i.addEventListener("resize",this._onResize),document.addEventListener("fullscreenchange",this._onFullscreenChange,!1),t.createFallbackVRDeviceOrientationFreeCamera&&this._displayVRButton(),this._onKeyDown=s=>{s.keyCode===27&&this.isInVRMode&&this.exitVR()},document.addEventListener("keydown",this._onKeyDown),this._scene.onPrePointerObservable.add(()=>{this._hasEnteredVR&&this.exitVROnDoubleTap&&(this.exitVR(),this._fullscreenVRpresenting&&this._scene.getEngine().exitFullscreen())},Xt.POINTERDOUBLETAP,!1),e.onDisposeObservable.add(()=>{this.dispose()}),this._updateButtonVisibility(),this._circleEase=new Oy,this._circleEase.setEasingMode(Uo.EASINGMODE_EASEINOUT),this._teleportationEasing=this._circleEase,e.onPointerObservable.add(s=>{this._interactionsEnabled&&e.activeCamera===this.vrDeviceOrientationCamera&&s.event.pointerType==="mouse"&&(s.type===Xt.POINTERDOWN?this._cameraGazer._selectionPointerDown():s.type===Xt.POINTERUP&&this._cameraGazer._selectionPointerUp())}),this.webVROptions.floorMeshes&&this.enableTeleportation({floorMeshes:this.webVROptions.floorMeshes}))}get isInVRMode(){return this.xr&&this.webVROptions.useXR&&this.xr.baseExperience.state===2||this._fullscreenVRpresenting}_moveButtonToBottomRight(){if(this._inputElement&&!this._useCustomVRButton&&this._btnVR){const e=this._inputElement.getBoundingClientRect();this._btnVR.style.top=e.top+e.height-70+"px",this._btnVR.style.left=e.left+e.width-100+"px"}}_displayVRButton(){!this._useCustomVRButton&&!this._btnVRDisplayed&&this._btnVR&&(document.body.appendChild(this._btnVR),this._btnVRDisplayed=!0)}_updateButtonVisibility(){!this._btnVR||this._useCustomVRButton||(this._btnVR.className="babylonVRicon",this.isInVRMode&&(this._btnVR.className+=" vrdisplaypresenting"))}enterVR(){if(this.xr){this.xr.baseExperience.enterXRAsync("immersive-vr","local-floor",this.xr.renderTarget);return}if(this.onEnteringVRObservable)try{this.onEnteringVRObservable.notifyObservers(this)}catch(e){de.Warn("Error in your custom logic onEnteringVR: "+e)}this._scene.activeCamera&&(this._position=this._scene.activeCamera.position.clone(),this.vrDeviceOrientationCamera&&(this.vrDeviceOrientationCamera.rotation=Re.FromRotationMatrix(this._scene.activeCamera.getWorldMatrix().getRotationMatrix()).toEulerAngles(),this.vrDeviceOrientationCamera.angularSensibility=2e3),this._existingCamera=this._scene.activeCamera,this._existingCamera.angularSensibilityX&&(this._cachedAngularSensibility.angularSensibilityX=this._existingCamera.angularSensibilityX,this._existingCamera.angularSensibilityX=Number.MAX_VALUE),this._existingCamera.angularSensibilityY&&(this._cachedAngularSensibility.angularSensibilityY=this._existingCamera.angularSensibilityY,this._existingCamera.angularSensibilityY=Number.MAX_VALUE),this._existingCamera.angularSensibility&&(this._cachedAngularSensibility.angularSensibility=this._existingCamera.angularSensibility,this._existingCamera.angularSensibility=Number.MAX_VALUE)),this._vrDeviceOrientationCamera&&(this._vrDeviceOrientationCamera.position=this._position,this._scene.activeCamera&&(this._vrDeviceOrientationCamera.minZ=this._scene.activeCamera.minZ),this._scene.activeCamera=this._vrDeviceOrientationCamera,this._scene.getEngine().enterFullscreen(this.requestPointerLockOnFullScreen),this._updateButtonVisibility(),this._vrDeviceOrientationCamera.onViewMatrixChangedObservable.addOnce(()=>{this.onAfterEnteringVRObservable.notifyObservers({success:!0})})),this._scene.activeCamera&&this._inputElement&&this._scene.activeCamera.attachControl(),this._interactionsEnabled&&this._scene.registerBeforeRender(this._beforeRender),this._hasEnteredVR=!0}exitVR(){if(this.xr){this.xr.baseExperience.exitXRAsync();return}if(this._hasEnteredVR){if(this.onExitingVRObservable)try{this.onExitingVRObservable.notifyObservers(this)}catch(e){de.Warn("Error in your custom logic onExitingVR: "+e)}this._scene.activeCamera&&(this._position=this._scene.activeCamera.position.clone()),this.vrDeviceOrientationCamera&&(this.vrDeviceOrientationCamera.angularSensibility=Number.MAX_VALUE),this._deviceOrientationCamera?(this._deviceOrientationCamera.position=this._position,this._scene.activeCamera=this._deviceOrientationCamera,this._cachedAngularSensibility.angularSensibilityX&&(this._deviceOrientationCamera.angularSensibilityX=this._cachedAngularSensibility.angularSensibilityX,this._cachedAngularSensibility.angularSensibilityX=null),this._cachedAngularSensibility.angularSensibilityY&&(this._deviceOrientationCamera.angularSensibilityY=this._cachedAngularSensibility.angularSensibilityY,this._cachedAngularSensibility.angularSensibilityY=null),this._cachedAngularSensibility.angularSensibility&&(this._deviceOrientationCamera.angularSensibility=this._cachedAngularSensibility.angularSensibility,this._cachedAngularSensibility.angularSensibility=null)):this._existingCamera&&(this._existingCamera.position=this._position,this._scene.activeCamera=this._existingCamera,this._inputElement&&this._scene.activeCamera.attachControl(),this._cachedAngularSensibility.angularSensibilityX&&(this._existingCamera.angularSensibilityX=this._cachedAngularSensibility.angularSensibilityX,this._cachedAngularSensibility.angularSensibilityX=null),this._cachedAngularSensibility.angularSensibilityY&&(this._existingCamera.angularSensibilityY=this._cachedAngularSensibility.angularSensibilityY,this._cachedAngularSensibility.angularSensibilityY=null),this._cachedAngularSensibility.angularSensibility&&(this._existingCamera.angularSensibility=this._cachedAngularSensibility.angularSensibility,this._cachedAngularSensibility.angularSensibility=null)),this._updateButtonVisibility(),this._interactionsEnabled&&(this._scene.unregisterBeforeRender(this._beforeRender),this._cameraGazer._gazeTracker.isVisible=!1),this._scene.getEngine().resize(),this._hasEnteredVR=!1}}get position(){return this._position}set position(e){this._position=e,this._scene.activeCamera&&(this._scene.activeCamera.position=e)}enableInteractions(){if(!this._interactionsEnabled){if(this.xr){this.xr.baseExperience.state===2&&this.xr.pointerSelection.attach();return}this.raySelectionPredicate=e=>e.isVisible&&(e.isPickable||e.name===this._floorMeshName),this.meshSelectionPredicate=()=>!0,this._raySelectionPredicate=e=>this._isTeleportationFloor(e)||e.name.indexOf("gazeTracker")===-1&&e.name.indexOf("teleportationTarget")===-1&&e.name.indexOf("torusTeleportation")===-1?this.raySelectionPredicate(e):!1,this._interactionsEnabled=!0}}_isTeleportationFloor(e){for(let t=0;t<this._floorMeshesCollection.length;t++)if(this._floorMeshesCollection[t].id===e.id)return!0;return!!(this._floorMeshName&&e.name===this._floorMeshName)}addFloorMesh(e){this._floorMeshesCollection&&(this._floorMeshesCollection.indexOf(e)>-1||this._floorMeshesCollection.push(e))}removeFloorMesh(e){if(!this._floorMeshesCollection)return;const t=this._floorMeshesCollection.indexOf(e);t!==-1&&this._floorMeshesCollection.splice(t,1)}enableTeleportation(e={}){if(!this._teleportationInitialized){if(this.enableInteractions(),this.webVROptions.useXR&&(e.floorMeshes||e.floorMeshName)){const i=e.floorMeshes||[];if(!i.length){const s=this._scene.getMeshByName(e.floorMeshName);s&&i.push(s)}if(this.xr){i.forEach(s=>{this.xr.teleportation.addFloorMesh(s)}),this.xr.teleportation.attached||this.xr.teleportation.attach();return}else if(!this.xrTestDone){const s=()=>{this.xrTestDone&&(this._scene.unregisterBeforeRender(s),this.xr?this.xr.teleportation.attached||this.xr.teleportation.attach():this.enableTeleportation(e))};this._scene.registerBeforeRender(s);return}}e.floorMeshName&&(this._floorMeshName=e.floorMeshName),e.floorMeshes&&(this._floorMeshesCollection=e.floorMeshes),e.teleportationMode&&(this._teleportationMode=e.teleportationMode),e.teleportationTime&&e.teleportationTime>0&&(this._teleportationTime=e.teleportationTime),e.teleportationSpeed&&e.teleportationSpeed>0&&(this._teleportationSpeed=e.teleportationSpeed),e.easingFunction!==void 0&&(this._teleportationEasing=e.easingFunction);const t=new ws;t.vignetteColor=new St(0,0,0,0),t.vignetteEnabled=!0,this._teleportationInitialized=!0,this._isDefaultTeleportationTarget&&this._createTeleportationCircles()}}_checkTeleportWithRay(e,t){this._teleportationRequestInitiated&&!t._teleportationRequestInitiated||(t._teleportationRequestInitiated?Math.sqrt(e.y*e.y+e.x*e.x)<this._padSensibilityDown&&(this._teleportActive&&this.teleportCamera(this._haloCenter),t._teleportationRequestInitiated=!1):e.y<-this._padSensibilityUp&&t._dpadPressed&&(t._activatePointer(),t._teleportationRequestInitiated=!0))}_checkRotate(e,t){t._teleportationRequestInitiated||(t._rotationLeftAsked?e.x>-this._padSensibilityDown&&(t._rotationLeftAsked=!1):e.x<-this._padSensibilityUp&&t._dpadPressed&&(t._rotationLeftAsked=!0,this._rotationAllowed&&this._rotateCamera(!1)),t._rotationRightAsked?e.x<this._padSensibilityDown&&(t._rotationRightAsked=!1):e.x>this._padSensibilityUp&&t._dpadPressed&&(t._rotationRightAsked=!0,this._rotationAllowed&&this._rotateCamera(!0)))}_checkTeleportBackwards(e,t){if(!t._teleportationRequestInitiated)if(e.y>this._padSensibilityUp&&t._dpadPressed){if(!t._teleportationBackRequestInitiated){if(!this.currentVRCamera)return;const i=Re.FromRotationMatrix(this.currentVRCamera.getWorldMatrix().getRotationMatrix()),s=this.currentVRCamera.position;i.toEulerAnglesToRef(this._workingVector),this._workingVector.z=0,this._workingVector.x=0,Re.RotationYawPitchRollToRef(this._workingVector.y,this._workingVector.x,this._workingVector.z,this._workingQuaternion),this._workingQuaternion.toRotationMatrix(this._workingMatrix),P.TransformCoordinatesToRef(this._teleportBackwardsVector,this._workingMatrix,this._workingVector);const r=new Is(s,this._workingVector),n=this._scene.pickWithRay(r,this._raySelectionPredicate);n&&n.pickedPoint&&n.pickedMesh&&this._isTeleportationFloor(n.pickedMesh)&&n.distance<5&&this.teleportCamera(n.pickedPoint),t._teleportationBackRequestInitiated=!0}}else t._teleportationBackRequestInitiated=!1}_createTeleportationCircles(){this._teleportationTarget=cL("teleportationTarget",{width:2,height:2,subdivisions:2},this._scene),this._teleportationTarget.isPickable=!1;const e=512,t=new uf("DynamicTexture",e,this._scene,!0);t.hasAlpha=!0;const i=t.getContext(),s=e/2,r=e/2,n=200;i.beginPath(),i.arc(s,r,n,0,2*Math.PI,!1),i.fillStyle=this._teleportationFillColor,i.fill(),i.lineWidth=10,i.strokeStyle=this._teleportationBorderColor,i.stroke(),i.closePath(),t.update();const o=new Bt("TextPlaneMaterial",this._scene);o.diffuseTexture=t,this._teleportationTarget.material=o;const l=Jv("torusTeleportation",{diameter:.75,thickness:.1,tessellation:25,updatable:!1},this._scene);l.isPickable=!1,l.parent=this._teleportationTarget;const c=new He("animationInnerCircle","position.y",30,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CYCLE),u=[];u.push({frame:0,value:0}),u.push({frame:30,value:.4}),u.push({frame:60,value:0}),c.setKeys(u);const f=new lb;f.setEasingMode(Uo.EASINGMODE_EASEINOUT),c.setEasingFunction(f),l.animations=[],l.animations.push(c),this._scene.beginAnimation(l,0,60,!0),this._hideTeleportationTarget()}_hideTeleportationTarget(){this._teleportActive=!1,this._teleportationInitialized&&(this._teleportationTarget.isVisible=!1,this._isDefaultTeleportationTarget&&(this._teleportationTarget.getChildren()[0].isVisible=!1))}_rotateCamera(e){if(!(this.currentVRCamera instanceof $d))return;e?this._rotationAngle++:this._rotationAngle--,this.currentVRCamera.animations=[];const t=Re.FromRotationMatrix(me.RotationY(Math.PI/4*this._rotationAngle)),i=new He("animationRotation","rotationQuaternion",90,He.ANIMATIONTYPE_QUATERNION,He.ANIMATIONLOOPMODE_CONSTANT),s=[];s.push({frame:0,value:this.currentVRCamera.rotationQuaternion}),s.push({frame:6,value:t}),i.setKeys(s),i.setEasingFunction(this._circleEase),this.currentVRCamera.animations.push(i),this._postProcessMove.animations=[];const r=new He("animationPP","vignetteWeight",90,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CONSTANT),n=[];n.push({frame:0,value:0}),n.push({frame:3,value:4}),n.push({frame:6,value:0}),r.setKeys(n),r.setEasingFunction(this._circleEase),this._postProcessMove.animations.push(r);const o=new He("animationPP2","vignetteStretch",90,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CONSTANT),l=[];l.push({frame:0,value:0}),l.push({frame:3,value:10}),l.push({frame:6,value:0}),o.setKeys(l),o.setEasingFunction(this._circleEase),this._postProcessMove.animations.push(o),this._postProcessMove.imageProcessingConfiguration.vignetteWeight=0,this._postProcessMove.imageProcessingConfiguration.vignetteStretch=0,this._postProcessMove.samples=4,this._scene.beginAnimation(this.currentVRCamera,0,6,!1,1)}teleportCamera(e){if(!(this.currentVRCamera instanceof $d))return;this._workingVector.copyFrom(e),this.isInVRMode||(this._workingVector.y+=this._defaultHeight),this.onBeforeCameraTeleport.notifyObservers(this._workingVector);const t=90;let i,s;if(this._teleportationMode==AL.TELEPORTATIONMODE_CONSTANTSPEED){s=t;const p=P.Distance(this.currentVRCamera.position,this._workingVector);i=this._teleportationSpeed/p}else s=Math.round(this._teleportationTime*t/1e3),i=1;this.currentVRCamera.animations=[];const r=new He("animationCameraTeleportation","position",t,He.ANIMATIONTYPE_VECTOR3,He.ANIMATIONLOOPMODE_CONSTANT),n=[{frame:0,value:this.currentVRCamera.position},{frame:s,value:this._workingVector}];r.setKeys(n),r.setEasingFunction(this._teleportationEasing),this.currentVRCamera.animations.push(r),this._postProcessMove.animations=[];const o=Math.round(s/2),l=new He("animationPP","vignetteWeight",t,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CONSTANT),c=[];c.push({frame:0,value:0}),c.push({frame:o,value:8}),c.push({frame:s,value:0}),l.setKeys(c),this._postProcessMove.animations.push(l);const u=new He("animationPP2","vignetteStretch",t,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CONSTANT),f=[];f.push({frame:0,value:0}),f.push({frame:o,value:10}),f.push({frame:s,value:0}),u.setKeys(f),this._postProcessMove.animations.push(u),this._postProcessMove.imageProcessingConfiguration.vignetteWeight=0,this._postProcessMove.imageProcessingConfiguration.vignetteStretch=0,this._scene.beginAnimation(this.currentVRCamera,0,s,!1,i,()=>{this.onAfterCameraTeleport.notifyObservers(this._workingVector)}),this._hideTeleportationTarget()}setLaserColor(e,t=this._pickedLaserColor){this._pickedLaserColor=t}setLaserLightingState(e=!0){}setGazeColor(e,t=this._pickedGazeColor){this._pickedGazeColor=t}changeLaserColor(e){this.updateControllerLaserColor}changeGazeColor(e){this.updateGazeTrackerColor&&this._cameraGazer._gazeTracker.material&&(this._cameraGazer._gazeTracker.material.emissiveColor=e)}dispose(){this.isInVRMode&&this.exitVR(),this._postProcessMove&&this._postProcessMove.dispose(),this._vrDeviceOrientationCamera&&this._vrDeviceOrientationCamera.dispose(),!this._useCustomVRButton&&this._btnVR&&this._btnVR.parentNode&&document.body.removeChild(this._btnVR),this._deviceOrientationCamera&&this._scene.activeCamera!=this._deviceOrientationCamera&&this._deviceOrientationCamera.dispose(),this._cameraGazer&&this._cameraGazer.dispose(),this._teleportationTarget&&this._teleportationTarget.dispose(),this.xr&&this.xr.dispose(),this._floorMeshesCollection.length=0,document.removeEventListener("keydown",this._onKeyDown),window.removeEventListener("vrdisplaypresentchange",this._onVrDisplayPresentChangeBind),window.removeEventListener("resize",this._onResize),document.removeEventListener("fullscreenchange",this._onFullscreenChange),this._scene.gamepadManager.onGamepadConnectedObservable.removeCallback(this._onNewGamepadConnected),this._scene.unregisterBeforeRender(this._beforeRender)}getClassName(){return"VRExperienceHelper"}}AL.TELEPORTATIONMODE_CONSTANTTIME=0,AL.TELEPORTATIONMODE_CONSTANTSPEED=1;const KNe=(a,e,t,i)=>!(a.x>t.x+i||t.x-i>e.x||a.y>t.y+i||t.y-i>e.y||a.z>t.z+i||t.z-i>e.z),XP=function(){const a={root:0,found:!1};return function(e,t,i,s){a.root=0,a.found=!1;const r=t*t-4*e*i;if(r<0)return a;const n=Math.sqrt(r);let o=(-t-n)/(2*e),l=(-t+n)/(2*e);if(o>l){const c=l;l=o,o=c}return o>0&&o<s?(a.root=o,a.found=!0,a):(l>0&&l<s&&(a.root=l,a.found=!0),a)}}();class xB{constructor(){this._collisionPoint=P.Zero(),this._planeIntersectionPoint=P.Zero(),this._tempVector=P.Zero(),this._tempVector2=P.Zero(),this._tempVector3=P.Zero(),this._tempVector4=P.Zero(),this._edge=P.Zero(),this._baseToVertex=P.Zero(),this._destinationPoint=P.Zero(),this._slidePlaneNormal=P.Zero(),this._displacementVector=P.Zero(),this._radius=P.One(),this._retry=0,this._basePointWorld=P.Zero(),this._velocityWorld=P.Zero(),this._normalizedVelocity=P.Zero(),this._collisionMask=-1}get collisionMask(){return this._collisionMask}set collisionMask(e){this._collisionMask=isNaN(e)?-1:e}get slidePlaneNormal(){return this._slidePlaneNormal}_initialize(e,t,i){this._velocity=t,this._velocitySquaredLength=this._velocity.lengthSquared();const s=Math.sqrt(this._velocitySquaredLength);s===0||s===1?this._normalizedVelocity.copyFromFloats(t._x,t._y,t._z):t.scaleToRef(1/s,this._normalizedVelocity),this._basePoint=e,e.multiplyToRef(this._radius,this._basePointWorld),t.multiplyToRef(this._radius,this._velocityWorld),this._velocityWorldLength=this._velocityWorld.length(),this._epsilon=i,this.collisionFound=!1}_checkPointInTriangle(e,t,i,s,r){t.subtractToRef(e,this._tempVector),i.subtractToRef(e,this._tempVector2),P.CrossToRef(this._tempVector,this._tempVector2,this._tempVector4);let n=P.Dot(this._tempVector4,r);return n<0||(s.subtractToRef(e,this._tempVector3),P.CrossToRef(this._tempVector2,this._tempVector3,this._tempVector4),n=P.Dot(this._tempVector4,r),n<0)?!1:(P.CrossToRef(this._tempVector3,this._tempVector,this._tempVector4),n=P.Dot(this._tempVector4,r),n>=0)}_canDoCollision(e,t,i,s){const r=P.Distance(this._basePointWorld,e),n=Math.max(this._radius.x,this._radius.y,this._radius.z);return!(r>this._velocityWorldLength+n+t||!KNe(i,s,this._basePointWorld,this._velocityWorldLength+n))}_testTriangle(e,t,i,s,r,n,o){let l,c=!1;t||(t=[]),t[e]||(t[e]=new Sh(0,0,0,0),t[e].copyFromPoints(i,s,r));const u=t[e];if(!n&&!u.isFrontFacingTo(this._normalizedVelocity,0))return;const f=u.signedDistanceTo(this._basePoint),p=P.Dot(u.normal,this._velocity);if(xB.DoubleSidedCheck&&p>1e-4)return;if(p==0){if(Math.abs(f)>=1)return;c=!0,l=0}else{l=(-1-f)/p;let d=(1-f)/p;if(l>d){const h=d;d=l,l=h}if(l>1||d<0)return;l<0&&(l=0),l>1&&(l=1)}this._collisionPoint.copyFromFloats(0,0,0);let m=!1,_=1;if(c||(this._basePoint.subtractToRef(u.normal,this._planeIntersectionPoint),this._velocity.scaleToRef(l,this._tempVector),this._planeIntersectionPoint.addInPlace(this._tempVector),this._checkPointInTriangle(this._planeIntersectionPoint,i,s,r,u.normal)&&(m=!0,_=l,this._collisionPoint.copyFrom(this._planeIntersectionPoint))),!m){let d=this._velocitySquaredLength;this._basePoint.subtractToRef(i,this._tempVector);let h=2*P.Dot(this._velocity,this._tempVector),x=this._tempVector.lengthSquared()-1,A=XP(d,h,x,_);A.found&&(_=A.root,m=!0,this._collisionPoint.copyFrom(i)),this._basePoint.subtractToRef(s,this._tempVector),h=2*P.Dot(this._velocity,this._tempVector),x=this._tempVector.lengthSquared()-1,A=XP(d,h,x,_),A.found&&(_=A.root,m=!0,this._collisionPoint.copyFrom(s)),this._basePoint.subtractToRef(r,this._tempVector),h=2*P.Dot(this._velocity,this._tempVector),x=this._tempVector.lengthSquared()-1,A=XP(d,h,x,_),A.found&&(_=A.root,m=!0,this._collisionPoint.copyFrom(r)),s.subtractToRef(i,this._edge),i.subtractToRef(this._basePoint,this._baseToVertex);let S=this._edge.lengthSquared(),E=P.Dot(this._edge,this._velocity),b=P.Dot(this._edge,this._baseToVertex);if(d=S*-this._velocitySquaredLength+E*E,h=2*(S*P.Dot(this._velocity,this._baseToVertex)-E*b),x=S*(1-this._baseToVertex.lengthSquared())+b*b,A=XP(d,h,x,_),A.found){const M=(E*A.root-b)/S;M>=0&&M<=1&&(_=A.root,m=!0,this._edge.scaleInPlace(M),i.addToRef(this._edge,this._collisionPoint))}if(r.subtractToRef(s,this._edge),s.subtractToRef(this._basePoint,this._baseToVertex),S=this._edge.lengthSquared(),E=P.Dot(this._edge,this._velocity),b=P.Dot(this._edge,this._baseToVertex),d=S*-this._velocitySquaredLength+E*E,h=2*(S*P.Dot(this._velocity,this._baseToVertex)-E*b),x=S*(1-this._baseToVertex.lengthSquared())+b*b,A=XP(d,h,x,_),A.found){const M=(E*A.root-b)/S;M>=0&&M<=1&&(_=A.root,m=!0,this._edge.scaleInPlace(M),s.addToRef(this._edge,this._collisionPoint))}if(i.subtractToRef(r,this._edge),r.subtractToRef(this._basePoint,this._baseToVertex),S=this._edge.lengthSquared(),E=P.Dot(this._edge,this._velocity),b=P.Dot(this._edge,this._baseToVertex),d=S*-this._velocitySquaredLength+E*E,h=2*(S*P.Dot(this._velocity,this._baseToVertex)-E*b),x=S*(1-this._baseToVertex.lengthSquared())+b*b,A=XP(d,h,x,_),A.found){const M=(E*A.root-b)/S;M>=0&&M<=1&&(_=A.root,m=!0,this._edge.scaleInPlace(M),r.addToRef(this._edge,this._collisionPoint))}}if(m){const d=_*_*this._velocitySquaredLength;(!this.collisionFound||d<this._nearestDistanceSquared)&&(o.collisionResponse&&(this.intersectionPoint?this.intersectionPoint.copyFrom(this._collisionPoint):this.intersectionPoint=this._collisionPoint.clone(),this._nearestDistanceSquared=d,this._nearestDistance=Math.sqrt(d),this.collisionFound=!0),this.collidedMesh=o)}}_collide(e,t,i,s,r,n,o,l,c,u=!1){if(u)if(!i||i.length===0)for(let f=0;f<t.length-2;f+=1){const p=t[f],m=t[f+1],_=t[f+2];!p||!m||!_||((c?1:0)^f%2?this._testTriangle(f,e,p,m,_,o,l):this._testTriangle(f,e,m,p,_,o,l))}else for(let f=s;f<r-2;f+=1){const p=i[f],m=i[f+1],_=i[f+2];if(_===4294967295){f+=2;continue}const d=t[p],h=t[m],x=t[_];!d||!h||!x||((c?1:0)^f%2?this._testTriangle(f,e,d,h,x,o,l):this._testTriangle(f,e,h,d,x,o,l))}else if(!i||i.length===0)for(let f=0;f<t.length;f+=3){const p=t[f],m=t[f+1],_=t[f+2];c?this._testTriangle(f,e,p,m,_,o,l):this._testTriangle(f,e,_,m,p,o,l)}else for(let f=s;f<r;f+=3){const p=t[i[f]-n],m=t[i[f+1]-n],_=t[i[f+2]-n];c?this._testTriangle(f,e,p,m,_,o,l):this._testTriangle(f,e,_,m,p,o,l)}}_getResponse(e,t){e.addToRef(t,this._destinationPoint),t.scaleInPlace(this._nearestDistance/t.length()),this._basePoint.addToRef(t,e),e.subtractToRef(this.intersectionPoint,this._slidePlaneNormal),this._slidePlaneNormal.normalize(),this._slidePlaneNormal.scaleToRef(this._epsilon,this._displacementVector),e.addInPlace(this._displacementVector),this.intersectionPoint.addInPlace(this._displacementVector),this._slidePlaneNormal.scaleInPlace(Sh.SignedDistanceToPlaneFromPositionAndNormal(this.intersectionPoint,this._slidePlaneNormal,this._destinationPoint)),this._destinationPoint.subtractInPlace(this._slidePlaneNormal),this._destinationPoint.subtractToRef(this.intersectionPoint,t)}}xB.DoubleSidedCheck=!1;class Efe{constructor(){this._scaledPosition=P.Zero(),this._scaledVelocity=P.Zero(),this._finalPosition=P.Zero()}getNewPosition(e,t,i,s,r,n,o){e.divideToRef(i._radius,this._scaledPosition),t.divideToRef(i._radius,this._scaledVelocity),i.collidedMesh=null,i._retry=0,i._initialVelocity=this._scaledVelocity,i._initialPosition=this._scaledPosition,this._collideWithWorld(this._scaledPosition,this._scaledVelocity,i,s,this._finalPosition,r),this._finalPosition.multiplyInPlace(i._radius),n(o,this._finalPosition,i.collidedMesh)}createCollider(){return new xB}init(e){this._scene=e}_collideWithWorld(e,t,i,s,r,n=null){const o=dt.CollisionsEpsilon*10;if(i._retry>=s){r.copyFrom(e);return}const l=n?n.collisionMask:i.collisionMask;i._initialize(e,t,o);const c=n&&n.surroundingMeshes||this._scene.meshes;for(let u=0;u<c.length;u++){const f=c[u];f.isEnabled()&&f.checkCollisions&&f.subMeshes&&f!==n&&l&f.collisionGroup&&f._checkCollision(i)}if(!i.collisionFound){e.addToRef(t,r);return}if((t.x!==0||t.y!==0||t.z!==0)&&i._getResponse(e,t),t.length()<=o){r.copyFrom(e);return}i._retry++,this._collideWithWorld(e,t,i,s,r,n)}}ui.CollisionCoordinatorFactory=()=>new Efe;class ec{constructor(){this._pickingTexture=null,this._idMap=[],this._thinIdMap=[],this._idColors=[],this._meshMaterialMap=new Map,this._meshRenderingCount=0,this._attributeName="instanceMeshID",this._shaderLanguage=0,this._pickingInProgress=!1}get shaderLanguage(){return this._shaderLanguage}get pickingInProgress(){return this._pickingInProgress}static _IdToRgb(e){ec._TempColor.r=(e&16711680)>>16,ec._TempColor.g=(e&65280)>>8,ec._TempColor.b=(e&255)>>0}_getColorIdFromReadBuffer(e){const t=this._readbuffer[e],i=this._readbuffer[e+1],s=this._readbuffer[e+2];return(t<<16)+(i<<8)+s}static _SetColorData(e,t,i,s,r){e[t]=i/255,e[t+1]=s/255,e[t+2]=r/255,e[t+3]=1}_createRenderTarget(e,t,i){this._pickingTexture&&this._pickingTexture.dispose(),this._pickingTexture=new Ir("pickingTexure",{width:t,height:i},e,!1,void 0,0,!1,1)}async _createColorMaterialAsync(e){this._defaultRenderMaterial&&this._defaultRenderMaterial.dispose(),this._defaultRenderMaterial=null,e.getEngine().isWebGPU&&(this._shaderLanguage=1);const i=[],s={attributes:[q.PositionKind,this._attributeName,"bakedVertexAnimationSettingsInstanced"],uniforms:["world","viewProjection","meshID"],needAlphaBlending:!1,defines:i,useClipPlane:null,shaderLanguage:this._shaderLanguage,extraInitializationsAsync:async()=>{this.shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>lwe),Promise.resolve().then(()=>Awe)]):await Promise.all([Promise.resolve().then(()=>qNe),Promise.resolve().then(()=>owe)])}};this._defaultRenderMaterial=new Fo("pickingShader",e,"picking",s,!1),this._defaultRenderMaterial.onBindObservable.add(this._materialBindCallback,void 0,void 0,this)}_materialBindCallback(e){if(!e)return;const i=this._meshMaterialMap.get(e).getEffect();!e.hasInstances&&!e.isAnInstance&&!e.hasThinInstances&&i.setColor4("meshID",this._idColors[e.uniqueId],1),this._meshRenderingCount++}_generateColorData(e,t,i,s,r,n,o){const l=new Float32Array(4*(e+1));ec._SetColorData(l,0,s,r,n);for(let c=0;c<e;c++)ec._IdToRgb(t),o(c,t),ec._SetColorData(l,(c+1)*4,ec._TempColor.r,ec._TempColor.g,ec._TempColor.b),t++;return l}_generateThinInstanceColorData(e,t,i){const s=new Float32Array(4*e);for(let r=0;r<e;r++)ec._IdToRgb(t),i(r,t),ec._SetColorData(s,r*4,ec._TempColor.r,ec._TempColor.g,ec._TempColor.b),t++;return s}setPickingList(e){if(this._pickableMeshes){for(let o=0;o<this._pickableMeshes.length;o++){const l=this._pickableMeshes[o];l.hasInstances&&l.removeVerticesData(this._attributeName),l.hasThinInstances&&l.thinInstanceSetBuffer(this._attributeName,null),this._pickingTexture&&this._pickingTexture.setMaterialForRendering(l,void 0);const c=this._meshMaterialMap.get(l);c!==this._defaultRenderMaterial&&c.onBindObservable.removeCallback(this._materialBindCallback)}this._pickableMeshes.length=0,this._meshMaterialMap.clear(),this._idMap.length=0,this._thinIdMap.length=0,this._idColors.length=0,this._pickingTexture&&(this._pickingTexture.renderList=[])}if(!e||e.length===0)return;this._pickableMeshes=e;const t=("mesh"in e[0]?e[0].mesh:e[0]).getScene(),i=t.getEngine(),s=i.getRenderWidth(),r=i.getRenderHeight();if(!this._pickingTexture)this._createRenderTarget(t,s,r);else{const o=this._pickingTexture.getSize();(o.width!==s||o.height!==r||this._cachedScene!==t)&&this._createRenderTarget(t,s,r)}(!this._cachedScene||this._cachedScene!==t)&&this._createColorMaterialAsync(t),this._cachedScene=t,this._engine=t.getEngine();for(let o=0;o<e.length;o++){const l=e[o];"mesh"in l?(this._meshMaterialMap.set(l.mesh,l.material),e[o]=l.mesh):this._meshMaterialMap.set(l,this._defaultRenderMaterial)}this._pickingTexture.renderList=[];let n=1;for(let o=0;o<this._pickableMeshes.length;o++){const l=this._pickableMeshes[o],c=this._meshMaterialMap.get(l);if(c!==this._defaultRenderMaterial&&c.onBindObservable.add(this._materialBindCallback,void 0,void 0,this),this._pickingTexture.setMaterialForRendering(l,c),this._pickingTexture.renderList.push(l),!l.isAnInstance)if(ec._IdToRgb(n),l.hasThinInstances){const u=this._generateThinInstanceColorData(l.thinInstanceCount,n,(f,p)=>{this._thinIdMap[p]={meshId:o,thinId:f}});n+=l.thinInstanceCount,l.thinInstanceSetBuffer(this._attributeName,u,4)}else if(this._idMap[n]=o,n++,l.hasInstances){const u=l.instances,f=this._generateColorData(u.length,n,o,ec._TempColor.r,ec._TempColor.g,ec._TempColor.b,(_,d)=>{const h=u[_];this._idMap[d]=this._pickableMeshes.indexOf(h)});n+=u.length;const p=l.getEngine(),m=new q(p,f,this._attributeName,!1,!1,4,!0);l.setVerticesBuffer(m,!0)}else this._idColors[l.uniqueId]=Pe.FromInts(ec._TempColor.r,ec._TempColor.g,ec._TempColor.b)}}async pickAsync(e,t,i=!1){if(this._pickingInProgress||!this._pickableMeshes||this._pickableMeshes.length===0)return null;const{x:s,y:r,rttSizeW:n,rttSizeH:o}=this._prepareForPicking(e,t);if(s<0||r<0||s>=n||r>=o)return null;this._pickingInProgress=!0;const l=o-r-1;return this._preparePickingBuffer(this._engine,n,o,s,l),this._executePicking(s,l,i)}async multiPickAsync(e,t=!1){if(this._pickingInProgress||!this._pickableMeshes||this._pickableMeshes.length===0||e.length===0)return null;if(e.length===1){const p=await this.pickAsync(e[0].x,e[0].y,t);return{meshes:[(p==null?void 0:p.mesh)??null],thinInstanceIndexes:p!=null&&p.thinInstanceIndex?[p.thinInstanceIndex]:void 0}}this._pickingInProgress=!0;let i=e[0].x,s=e[0].x,r=e[0].y,n=e[0].y;for(let p=1;p<e.length;p++){const{x:m,y:_}=e[p];i=Math.min(i,m),s=Math.max(s,m),r=Math.min(r,_),n=Math.max(n,_)}const{rttSizeW:o,rttSizeH:l}=this._prepareForPicking(i,r),c=Math.max(s-i,1),u=Math.max(n-r,1),f=l-n-1;return this._preparePickingBuffer(this._engine,o,l,i,f,c,u),this._executeMultiPicking(e,i,n,l,c,u,t)}_prepareForPicking(e,t){const s=this._cachedScene.getEngine(),r=s.getRenderWidth(),n=s.getRenderHeight(),o=1/s._hardwareScalingLevel,l=o*e>>0,c=o*t>>0;return{x:l,y:c,rttSizeW:r,rttSizeH:n}}_preparePickingBuffer(e,t,i,s,r,n=1,o=1){this._meshRenderingCount=0;const l=e.isWebGPU?4*n*o+255&-256:4*n*o;(!this._readbuffer||this._readbuffer.length<l)&&(this._readbuffer=new Uint8Array(l));const c=this._pickingTexture.getSize();(c.width!==t||c.height!==i)&&(this._createRenderTarget(this._cachedScene,t,i),this._updateRenderList()),this._pickingTexture.clearColor=new St(0,0,0,0),this._pickingTexture.onBeforeRender=()=>{this._enableScissor(s,r,n,o)},this._cachedScene.customRenderTargets.push(this._pickingTexture)}_executePicking(e,t,i){return new Promise((s,r)=>{if(!this._pickingTexture){this._pickingInProgress=!1,r();return}this._pickingTexture.onAfterRender=async()=>{if(this._disableScissor(),this._checkRenderStatus()){this._pickingTexture.onAfterRender=null;let n=null,o;const l=this._cachedScene.customRenderTargets.indexOf(this._pickingTexture);if(l>-1&&this._cachedScene.customRenderTargets.splice(l,1),await this._readTexturePixelsAsync(e,t)){const c=this._getColorIdFromReadBuffer(0);this._thinIdMap[c]?(n=this._pickableMeshes[this._thinIdMap[c].meshId],o=this._thinIdMap[c].thinId):n=this._pickableMeshes[this._idMap[c]]}i&&this.dispose(),this._pickingInProgress=!1,s(n?{mesh:n,thinInstanceIndex:o}:null)}}})}_executeMultiPicking(e,t,i,s,r,n,o){return new Promise((l,c)=>{if(!this._pickingTexture){this._pickingInProgress=!1,c();return}this._pickingTexture.onAfterRender=async()=>{if(this._disableScissor(),this._checkRenderStatus()){this._pickingTexture.onAfterRender=null;const u=[],f=[];if(await this._readTexturePixelsAsync(t,s-i-1,r,n))for(let p=0;p<e.length;p++){const{pickedMesh:m,thinInstanceIndex:_}=this._getMeshFromMultiplePoints(e[p].x,e[p].y,t,i,r);u.push(m),f.push(_??0)}o&&this.dispose(),this._pickingInProgress=!1,l({meshes:u,thinInstanceIndexes:f})}}})}_enableScissor(e,t,i=1,s=1){this._engine.enableScissor&&this._engine.enableScissor(e,t,i,s)}_disableScissor(){this._engine.disableScissor&&this._engine.disableScissor()}_checkRenderStatus(){if(this._meshRenderingCount>0){const t=this._cachedScene.customRenderTargets.indexOf(this._pickingTexture);return t>-1&&this._cachedScene.customRenderTargets.splice(t,1),!0}return this._meshRenderingCount=0,!1}_getMeshFromMultiplePoints(e,t,i,s,r){let n=(e-i-1)*4,o=(s-t-1)*r*4;n=Math.max(n,0),o=Math.max(o,0);const l=this._getColorIdFromReadBuffer(n+o);let c=null,u;return l>0&&(this._thinIdMap[l]?(c=this._pickableMeshes[this._thinIdMap[l].meshId],u=this._thinIdMap[l].thinId):c=this._pickableMeshes[this._idMap[l]]),{pickedMesh:c,thinInstanceIndex:u}}_updateRenderList(){this._pickingTexture.renderList=[];for(const e of this._pickableMeshes)this._pickingTexture.setMaterialForRendering(e,this._meshMaterialMap.get(e)),this._pickingTexture.renderList.push(e)}async _readTexturePixelsAsync(e,t,i=1,s=1){var n;return!this._cachedScene||!((n=this._pickingTexture)!=null&&n._texture)?!1:(await this._cachedScene.getEngine()._readTexturePixels(this._pickingTexture._texture,i,s,-1,0,this._readbuffer,!0,!0,e,t),!0)}dispose(){var e,t;this.setPickingList(null),this._cachedScene=null,(e=this._pickingTexture)==null||e.dispose(),this._pickingTexture=null,(t=this._defaultRenderMaterial)==null||t.dispose(),this._defaultRenderMaterial=null}}ec._TempColor={r:0,g:0,b:0};const eQ="pickingPixelShader",Tfe=`#if defined(INSTANCES)
varying vec4 vMeshID;
#else
uniform vec4 meshID;
#endif
void main(void) {
#if defined(INSTANCES)
gl_FragColor=vMeshID;
#else
gl_FragColor=meshID;
#endif
}`;H.ShadersStore[eQ]||(H.ShadersStore[eQ]=Tfe);const Lfe={name:eQ,shader:Tfe},qNe=Object.freeze(Object.defineProperty({__proto__:null,pickingPixelShader:Lfe},Symbol.toStringTag,{value:"Module"})),tQ="bonesDeclaration",Ife=`#if NUM_BONE_INFLUENCERS>0
attribute vec4 matricesIndices;attribute vec4 matricesWeights;
#if NUM_BONE_INFLUENCERS>4
attribute vec4 matricesIndicesExtra;attribute vec4 matricesWeightsExtra;
#endif
#ifndef BAKED_VERTEX_ANIMATION_TEXTURE
#ifdef BONETEXTURE
uniform highp sampler2D boneSampler;uniform float boneTextureWidth;
#else
uniform mat4 mBones[BonesPerMesh];
#endif
#ifdef BONES_VELOCITY_ENABLED
uniform mat4 mPreviousBones[BonesPerMesh];
#endif
#ifdef BONETEXTURE
#define inline
mat4 readMatrixFromRawSampler(sampler2D smp,float index)
{float offset=index *4.0;float dx=1.0/boneTextureWidth;vec4 m0=texture2D(smp,vec2(dx*(offset+0.5),0.));vec4 m1=texture2D(smp,vec2(dx*(offset+1.5),0.));vec4 m2=texture2D(smp,vec2(dx*(offset+2.5),0.));vec4 m3=texture2D(smp,vec2(dx*(offset+3.5),0.));return mat4(m0,m1,m2,m3);}
#endif
#endif
#endif
`;H.IncludesShadersStore[tQ]||(H.IncludesShadersStore[tQ]=Ife);const Pfe={name:tQ,shader:Ife},QNe=Object.freeze(Object.defineProperty({__proto__:null,bonesDeclaration:Pfe},Symbol.toStringTag,{value:"Module"})),Ofe="bakedVertexAnimationDeclaration",JNe=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
uniform float bakedVertexAnimationTime;uniform vec2 bakedVertexAnimationTextureSizeInverted;uniform vec4 bakedVertexAnimationSettings;uniform sampler2D bakedVertexAnimationTexture;
#ifdef INSTANCES
attribute vec4 bakedVertexAnimationSettingsInstanced;
#endif
#define inline
mat4 readMatrixFromRawSamplerVAT(sampler2D smp,float index,float frame)
{float offset=index*4.0;float frameUV=(frame+0.5)*bakedVertexAnimationTextureSizeInverted.y;float dx=bakedVertexAnimationTextureSizeInverted.x;vec4 m0=texture2D(smp,vec2(dx*(offset+0.5),frameUV));vec4 m1=texture2D(smp,vec2(dx*(offset+1.5),frameUV));vec4 m2=texture2D(smp,vec2(dx*(offset+2.5),frameUV));vec4 m3=texture2D(smp,vec2(dx*(offset+3.5),frameUV));return mat4(m0,m1,m2,m3);}
#endif
`;H.IncludesShadersStore[Ofe]||(H.IncludesShadersStore[Ofe]=JNe);const iQ="morphTargetsVertexGlobalDeclaration",Rfe=`#ifdef MORPHTARGETS
uniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];
#ifdef MORPHTARGETS_TEXTURE 
uniform float morphTargetTextureIndices[NUM_MORPH_INFLUENCERS];uniform vec3 morphTargetTextureInfo;uniform highp sampler2DArray morphTargets;vec3 readVector3FromRawSampler(int targetIndex,float vertexIndex)
{ 
float y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV).xyz;}
vec4 readVector4FromRawSampler(int targetIndex,float vertexIndex)
{ 
float y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV);}
#endif
#endif
`;H.IncludesShadersStore[iQ]||(H.IncludesShadersStore[iQ]=Rfe);const Dfe={name:iQ,shader:Rfe},$Ne=Object.freeze(Object.defineProperty({__proto__:null,morphTargetsVertexGlobalDeclaration:Dfe},Symbol.toStringTag,{value:"Module"})),sQ="morphTargetsVertexDeclaration",Nfe=`#ifdef MORPHTARGETS
#ifndef MORPHTARGETS_TEXTURE
#ifdef MORPHTARGETS_POSITION
attribute vec3 position{X};
#endif
#ifdef MORPHTARGETS_NORMAL
attribute vec3 normal{X};
#endif
#ifdef MORPHTARGETS_TANGENT
attribute vec3 tangent{X};
#endif
#ifdef MORPHTARGETS_UV
attribute vec2 uv_{X};
#endif
#ifdef MORPHTARGETS_UV2
attribute vec2 uv2_{X};
#endif
#elif {X}==0
uniform int morphTargetCount;
#endif
#endif
`;H.IncludesShadersStore[sQ]||(H.IncludesShadersStore[sQ]=Nfe);const wfe={name:sQ,shader:Nfe},ewe=Object.freeze(Object.defineProperty({__proto__:null,morphTargetsVertexDeclaration:wfe},Symbol.toStringTag,{value:"Module"})),Bfe="instancesDeclaration",twe=`#ifdef INSTANCES
attribute vec4 world0;attribute vec4 world1;attribute vec4 world2;attribute vec4 world3;
#ifdef INSTANCESCOLOR
attribute vec4 instanceColor;
#endif
#if defined(THIN_INSTANCES) && !defined(WORLD_UBO)
uniform mat4 world;
#endif
#if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
attribute vec4 previousWorld0;attribute vec4 previousWorld1;attribute vec4 previousWorld2;attribute vec4 previousWorld3;
#ifdef THIN_INSTANCES
uniform mat4 previousWorld;
#endif
#endif
#else
#if !defined(WORLD_UBO)
uniform mat4 world;
#endif
#if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
uniform mat4 previousWorld;
#endif
#endif
`;H.IncludesShadersStore[Bfe]||(H.IncludesShadersStore[Bfe]=twe);const rQ="morphTargetsVertexGlobal",zfe=`#ifdef MORPHTARGETS
#ifdef MORPHTARGETS_TEXTURE
float vertexID;
#endif
#endif
`;H.IncludesShadersStore[rQ]||(H.IncludesShadersStore[rQ]=zfe);const Ffe={name:rQ,shader:zfe},iwe=Object.freeze(Object.defineProperty({__proto__:null,morphTargetsVertexGlobal:Ffe},Symbol.toStringTag,{value:"Module"})),nQ="morphTargetsVertex",kfe=`#ifdef MORPHTARGETS
#ifdef MORPHTARGETS_TEXTURE
#if {X}==0
for (int i=0; i<NUM_MORPH_INFLUENCERS; i++) {if (i>=morphTargetCount) break;vertexID=float(gl_VertexID)*morphTargetTextureInfo.x;
#ifdef MORPHTARGETS_POSITION
positionUpdated+=(readVector3FromRawSampler(i,vertexID)-position)*morphTargetInfluences[i];
#endif
#ifdef MORPHTARGETTEXTURE_HASPOSITIONS
vertexID+=1.0;
#endif
#ifdef MORPHTARGETS_NORMAL
normalUpdated+=(readVector3FromRawSampler(i,vertexID) -normal)*morphTargetInfluences[i];
#endif
#ifdef MORPHTARGETTEXTURE_HASNORMALS
vertexID+=1.0;
#endif
#ifdef MORPHTARGETS_UV
uvUpdated+=(readVector3FromRawSampler(i,vertexID).xy-uv)*morphTargetInfluences[i];
#endif
#ifdef MORPHTARGETTEXTURE_HASUVS
vertexID+=1.0;
#endif
#ifdef MORPHTARGETS_TANGENT
tangentUpdated.xyz+=(readVector3FromRawSampler(i,vertexID) -tangent.xyz)*morphTargetInfluences[i];
#endif
#ifdef MORPHTARGETTEXTURE_HASTANGENTS
vertexID+=1.0;
#endif
#ifdef MORPHTARGETS_UV2
uv2Updated+=(readVector3FromRawSampler(i,vertexID).xy-uv2)*morphTargetInfluences[i];
#endif
#ifdef MORPHTARGETTEXTURE_HASUV2S
vertexID+=1.0;
#endif
#ifdef MORPHTARGETS_COLOR
colorUpdated+=(readVector4FromRawSampler(i,vertexID)-color)*morphTargetInfluences[i];
#endif
}
#endif
#else
#ifdef MORPHTARGETS_POSITION
positionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];
#endif
#ifdef MORPHTARGETS_NORMAL
normalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];
#endif
#ifdef MORPHTARGETS_TANGENT
tangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];
#endif
#ifdef MORPHTARGETS_UV
uvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];
#endif
#ifdef MORPHTARGETS_UV2
uv2Updated+=(uv2_{X}-uv2)*morphTargetInfluences[{X}];
#endif
#ifdef MORPHTARGETS_COLOR
colorUpdated+=(color{X}-color)*morphTargetInfluences[{X}];
#endif
#endif
#endif
`;H.IncludesShadersStore[nQ]||(H.IncludesShadersStore[nQ]=kfe);const Ufe={name:nQ,shader:kfe},swe=Object.freeze(Object.defineProperty({__proto__:null,morphTargetsVertex:Ufe},Symbol.toStringTag,{value:"Module"})),jfe="instancesVertex",rwe=`#ifdef INSTANCES
mat4 finalWorld=mat4(world0,world1,world2,world3);
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
mat4 finalPreviousWorld=mat4(previousWorld0,previousWorld1,
previousWorld2,previousWorld3);
#endif
#ifdef THIN_INSTANCES
finalWorld=world*finalWorld;
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
finalPreviousWorld=previousWorld*finalPreviousWorld;
#endif
#endif
#else
mat4 finalWorld=world;
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
mat4 finalPreviousWorld=previousWorld;
#endif
#endif
`;H.IncludesShadersStore[jfe]||(H.IncludesShadersStore[jfe]=rwe);const aQ="bonesVertex",Vfe=`#ifndef BAKED_VERTEX_ANIMATION_TEXTURE
#if NUM_BONE_INFLUENCERS>0
mat4 influence;
#ifdef BONETEXTURE
influence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];
#if NUM_BONE_INFLUENCERS>1
influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];
#endif
#if NUM_BONE_INFLUENCERS>2
influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];
#endif
#if NUM_BONE_INFLUENCERS>3
influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];
#endif
#if NUM_BONE_INFLUENCERS>4
influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0];
#endif
#if NUM_BONE_INFLUENCERS>5
influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1];
#endif
#if NUM_BONE_INFLUENCERS>6
influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[2])*matricesWeightsExtra[2];
#endif
#if NUM_BONE_INFLUENCERS>7
influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[3])*matricesWeightsExtra[3];
#endif
#else
influence=mBones[int(matricesIndices[0])]*matricesWeights[0];
#if NUM_BONE_INFLUENCERS>1
influence+=mBones[int(matricesIndices[1])]*matricesWeights[1];
#endif
#if NUM_BONE_INFLUENCERS>2
influence+=mBones[int(matricesIndices[2])]*matricesWeights[2];
#endif
#if NUM_BONE_INFLUENCERS>3
influence+=mBones[int(matricesIndices[3])]*matricesWeights[3];
#endif
#if NUM_BONE_INFLUENCERS>4
influence+=mBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];
#endif
#if NUM_BONE_INFLUENCERS>5
influence+=mBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];
#endif
#if NUM_BONE_INFLUENCERS>6
influence+=mBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];
#endif
#if NUM_BONE_INFLUENCERS>7
influence+=mBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];
#endif
#endif
finalWorld=finalWorld*influence;
#endif
#endif
`;H.IncludesShadersStore[aQ]||(H.IncludesShadersStore[aQ]=Vfe);const Gfe={name:aQ,shader:Vfe},nwe=Object.freeze(Object.defineProperty({__proto__:null,bonesVertex:Gfe},Symbol.toStringTag,{value:"Module"})),Wfe="bakedVertexAnimation",awe=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
{
#ifdef INSTANCES
#define BVASNAME bakedVertexAnimationSettingsInstanced
#else
#define BVASNAME bakedVertexAnimationSettings
#endif
float VATStartFrame=BVASNAME.x;float VATEndFrame=BVASNAME.y;float VATOffsetFrame=BVASNAME.z;float VATSpeed=BVASNAME.w;float totalFrames=VATEndFrame-VATStartFrame+1.0;float time=bakedVertexAnimationTime*VATSpeed/totalFrames;float frameCorrection=time<1.0 ? 0.0 : 1.0;float numOfFrames=totalFrames-frameCorrection;float VATFrameNum=fract(time)*numOfFrames;VATFrameNum=mod(VATFrameNum+VATOffsetFrame,numOfFrames);VATFrameNum=floor(VATFrameNum);VATFrameNum+=VATStartFrame+frameCorrection;mat4 VATInfluence;VATInfluence=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[0],VATFrameNum)*matricesWeights[0];
#if NUM_BONE_INFLUENCERS>1
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[1],VATFrameNum)*matricesWeights[1];
#endif
#if NUM_BONE_INFLUENCERS>2
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[2],VATFrameNum)*matricesWeights[2];
#endif
#if NUM_BONE_INFLUENCERS>3
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[3],VATFrameNum)*matricesWeights[3];
#endif
#if NUM_BONE_INFLUENCERS>4
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[0],VATFrameNum)*matricesWeightsExtra[0];
#endif
#if NUM_BONE_INFLUENCERS>5
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[1],VATFrameNum)*matricesWeightsExtra[1];
#endif
#if NUM_BONE_INFLUENCERS>6
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[2],VATFrameNum)*matricesWeightsExtra[2];
#endif
#if NUM_BONE_INFLUENCERS>7
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[3],VATFrameNum)*matricesWeightsExtra[3];
#endif
finalWorld=finalWorld*VATInfluence;}
#endif
`;H.IncludesShadersStore[Wfe]||(H.IncludesShadersStore[Wfe]=awe);const oQ="pickingVertexShader",Hfe=`attribute vec3 position;
#if defined(INSTANCES)
attribute vec4 instanceMeshID;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<instancesDeclaration>
uniform mat4 viewProjection;
#if defined(INSTANCES)
varying vec4 vMeshID;
#endif
void main(void) {
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;
#if defined(INSTANCES)
vMeshID=instanceMeshID;
#endif
}`;H.ShadersStore[oQ]||(H.ShadersStore[oQ]=Hfe);const Yfe={name:oQ,shader:Hfe},owe=Object.freeze(Object.defineProperty({__proto__:null,pickingVertexShader:Yfe},Symbol.toStringTag,{value:"Module"})),lQ="pickingPixelShader",Xfe=`#if defined(INSTANCES)
varying vMeshID: vec4f;
#else
uniform meshID: vec4f;
#endif
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#if defined(INSTANCES)
fragmentOutputs.color=input.vMeshID;
#else
fragmentOutputs.color=uniforms.meshID;
#endif
}`;H.ShadersStoreWGSL[lQ]||(H.ShadersStoreWGSL[lQ]=Xfe);const Zfe={name:lQ,shader:Xfe},lwe=Object.freeze(Object.defineProperty({__proto__:null,pickingPixelShaderWGSL:Zfe},Symbol.toStringTag,{value:"Module"})),cQ="bonesDeclaration",Kfe=`#if NUM_BONE_INFLUENCERS>0
attribute matricesIndices : vec4<f32>;attribute matricesWeights : vec4<f32>;
#if NUM_BONE_INFLUENCERS>4
attribute matricesIndicesExtra : vec4<f32>;attribute matricesWeightsExtra : vec4<f32>;
#endif
#ifndef BAKED_VERTEX_ANIMATION_TEXTURE
#ifdef BONETEXTURE
var boneSampler : texture_2d<f32>;uniform boneTextureWidth : f32;
#else
uniform mBones : array<mat4x4,BonesPerMesh>;
#ifdef BONES_VELOCITY_ENABLED
uniform mPreviousBones : array<mat4x4,BonesPerMesh>;
#endif
#endif
#ifdef BONETEXTURE
fn readMatrixFromRawSampler(smp : texture_2d<f32>,index : f32)->mat4x4<f32>
{let offset=i32(index) *4; 
let m0=textureLoad(smp,vec2<i32>(offset+0,0),0);let m1=textureLoad(smp,vec2<i32>(offset+1,0),0);let m2=textureLoad(smp,vec2<i32>(offset+2,0),0);let m3=textureLoad(smp,vec2<i32>(offset+3,0),0);return mat4x4<f32>(m0,m1,m2,m3);}
#endif
#endif
#endif
`;H.IncludesShadersStoreWGSL[cQ]||(H.IncludesShadersStoreWGSL[cQ]=Kfe);const qfe={name:cQ,shader:Kfe},cwe=Object.freeze(Object.defineProperty({__proto__:null,bonesDeclarationWGSL:qfe},Symbol.toStringTag,{value:"Module"})),Qfe="bakedVertexAnimationDeclaration",uwe=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
uniform bakedVertexAnimationTime: f32;uniform bakedVertexAnimationTextureSizeInverted: vec2<f32>;uniform bakedVertexAnimationSettings: vec4<f32>;var bakedVertexAnimationTexture : texture_2d<f32>;
#ifdef INSTANCES
attribute bakedVertexAnimationSettingsInstanced : vec4<f32>;
#endif
fn readMatrixFromRawSamplerVAT(smp : texture_2d<f32>,index : f32,frame : f32)->mat4x4<f32>
{let offset=i32(index)*4;let frameUV=i32(frame);let m0=textureLoad(smp,vec2<i32>(offset+0,frameUV),0);let m1=textureLoad(smp,vec2<i32>(offset+1,frameUV),0);let m2=textureLoad(smp,vec2<i32>(offset+2,frameUV),0);let m3=textureLoad(smp,vec2<i32>(offset+3,frameUV),0);return mat4x4<f32>(m0,m1,m2,m3);}
#endif
`;H.IncludesShadersStoreWGSL[Qfe]||(H.IncludesShadersStoreWGSL[Qfe]=uwe);const uQ="morphTargetsVertexGlobalDeclaration",Jfe=`#ifdef MORPHTARGETS
uniform morphTargetInfluences : array<f32,NUM_MORPH_INFLUENCERS>;
#ifdef MORPHTARGETS_TEXTURE 
uniform morphTargetTextureIndices : array<f32,NUM_MORPH_INFLUENCERS>;uniform morphTargetTextureInfo : vec3<f32>;var morphTargets : texture_2d_array<f32>;var morphTargetsSampler : sampler;fn readVector3FromRawSampler(targetIndex : i32,vertexIndex : f32)->vec3<f32>
{ 
let y=floor(vertexIndex/uniforms.morphTargetTextureInfo.y);let x=vertexIndex-y*uniforms.morphTargetTextureInfo.y;let textureUV=vec2<f32>((x+0.5)/uniforms.morphTargetTextureInfo.y,(y+0.5)/uniforms.morphTargetTextureInfo.z);return textureSampleLevel(morphTargets,morphTargetsSampler,textureUV,i32(uniforms.morphTargetTextureIndices[targetIndex]),0.0).xyz;}
fn readVector4FromRawSampler(targetIndex : i32,vertexIndex : f32)->vec4<f32>
{ 
let y=floor(vertexIndex/uniforms.morphTargetTextureInfo.y);let x=vertexIndex-y*uniforms.morphTargetTextureInfo.y;let textureUV=vec2<f32>((x+0.5)/uniforms.morphTargetTextureInfo.y,(y+0.5)/uniforms.morphTargetTextureInfo.z);return textureSampleLevel(morphTargets,morphTargetsSampler,textureUV,i32(uniforms.morphTargetTextureIndices[targetIndex]),0.0);}
#endif
#endif
`;H.IncludesShadersStoreWGSL[uQ]||(H.IncludesShadersStoreWGSL[uQ]=Jfe);const $fe={name:uQ,shader:Jfe},hwe=Object.freeze(Object.defineProperty({__proto__:null,morphTargetsVertexGlobalDeclarationWGSL:$fe},Symbol.toStringTag,{value:"Module"})),hQ="morphTargetsVertexDeclaration",e0e=`#ifdef MORPHTARGETS
#ifndef MORPHTARGETS_TEXTURE
#ifdef MORPHTARGETS_POSITION
attribute position{X} : vec3<f32>;
#endif
#ifdef MORPHTARGETS_NORMAL
attribute normal{X} : vec3<f32>;
#endif
#ifdef MORPHTARGETS_TANGENT
attribute tangent{X} : vec3<f32>;
#endif
#ifdef MORPHTARGETS_UV
attribute uv_{X} : vec2<f32>;
#endif
#ifdef MORPHTARGETS_UV2
attribute uv2_{X} : vec2<f32>;
#endif
#elif {X}==0
uniform morphTargetCount: i32;
#endif
#endif
`;H.IncludesShadersStoreWGSL[hQ]||(H.IncludesShadersStoreWGSL[hQ]=e0e);const t0e={name:hQ,shader:e0e},dwe=Object.freeze(Object.defineProperty({__proto__:null,morphTargetsVertexDeclarationWGSL:t0e},Symbol.toStringTag,{value:"Module"})),i0e="instancesDeclaration",fwe=`#ifdef INSTANCES
attribute world0 : vec4<f32>;attribute world1 : vec4<f32>;attribute world2 : vec4<f32>;attribute world3 : vec4<f32>;
#ifdef INSTANCESCOLOR
attribute instanceColor : vec4<f32>;
#endif
#if defined(THIN_INSTANCES) && !defined(WORLD_UBO)
uniform world : mat4x4<f32>;
#endif
#if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
attribute previousWorld0 : vec4<f32>;attribute previousWorld1 : vec4<f32>;attribute previousWorld2 : vec4<f32>;attribute previousWorld3 : vec4<f32>;
#ifdef THIN_INSTANCES
uniform previousWorld : mat4x4<f32>;
#endif
#endif
#else
#if !defined(WORLD_UBO)
uniform world : mat4x4<f32>;
#endif
#if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
uniform previousWorld : mat4x4<f32>;
#endif
#endif
`;H.IncludesShadersStoreWGSL[i0e]||(H.IncludesShadersStoreWGSL[i0e]=fwe);const dQ="morphTargetsVertexGlobal",s0e=`#ifdef MORPHTARGETS
#ifdef MORPHTARGETS_TEXTURE
var vertexID : f32;
#endif
#endif
`;H.IncludesShadersStoreWGSL[dQ]||(H.IncludesShadersStoreWGSL[dQ]=s0e);const r0e={name:dQ,shader:s0e},pwe=Object.freeze(Object.defineProperty({__proto__:null,morphTargetsVertexGlobalWGSL:r0e},Symbol.toStringTag,{value:"Module"})),fQ="morphTargetsVertex",n0e=`#ifdef MORPHTARGETS
#ifdef MORPHTARGETS_TEXTURE
#if {X}==0
for (var i=0; i<NUM_MORPH_INFLUENCERS; i=i+1) {if (i>=uniforms.morphTargetCount) {break;}
vertexID=f32(vertexInputs.vertexIndex)*uniforms.morphTargetTextureInfo.x;
#ifdef MORPHTARGETS_POSITION
positionUpdated=positionUpdated+(readVector3FromRawSampler(i,vertexID)-vertexInputs.position)*uniforms.morphTargetInfluences[i];
#endif
#ifdef MORPHTARGETTEXTURE_HASPOSITIONS
vertexID=vertexID+1.0;
#endif
#ifdef MORPHTARGETS_NORMAL
normalUpdated=normalUpdated+(readVector3FromRawSampler(i,vertexID) -vertexInputs.normal)*uniforms.morphTargetInfluences[i];
#endif
#ifdef MORPHTARGETTEXTURE_HASNORMALS
vertexID=vertexID+1.0;
#endif
#ifdef MORPHTARGETS_UV
uvUpdated=uvUpdated+(readVector3FromRawSampler(i,vertexID).xy-vertexInputs.uv)*uniforms.morphTargetInfluences[i];
#endif
#ifdef MORPHTARGETTEXTURE_HASUVS
vertexID=vertexID+1.0;
#endif
#ifdef MORPHTARGETS_TANGENT
tangentUpdated=vec4f(tangentUpdated.xyz+(readVector3FromRawSampler(i,vertexID) -vertexInputs.tangent.xyz)*uniforms.morphTargetInfluences[i],tangentUpdated.a);
#endif
#ifdef MORPHTARGETTEXTURE_HASTANGENTS
vertexID=vertexID+1.0;
#endif
#ifdef MORPHTARGETS_UV2
uv2Updated=uv2Updated+(readVector3FromRawSampler(i,vertexID).xy-vertexInputs.uv2)*uniforms.morphTargetInfluences[i];
#endif
#ifdef MORPHTARGETS_COLOR
colorUpdated=colorUpdated+(readVector4FromRawSampler(i,vertexID)-vertexInputs.color)*uniforms.morphTargetInfluences[i];
#endif
}
#endif
#else
#ifdef MORPHTARGETS_POSITION
positionUpdated=positionUpdated+(vertexInputs.position{X}-vertexInputs.position)*uniforms.morphTargetInfluences[{X}];
#endif
#ifdef MORPHTARGETS_NORMAL
normalUpdated=normalUpdated+(vertexInputs.normal{X}-vertexInputs.normal)*uniforms.morphTargetInfluences[{X}];
#endif
#ifdef MORPHTARGETS_TANGENT
tangentUpdated=vec4f(tangentUpdated.xyz+(vertexInputs.tangent{X}-vertexInputs.tangent.xyz)*uniforms.morphTargetInfluences[{X}],tangentUpdated.a);
#endif
#ifdef MORPHTARGETS_UV
uvUpdated=uvUpdated+(vertexInputs.uv_{X}-vertexInputs.uv)*uniforms.morphTargetInfluences[{X}];
#endif
#ifdef MORPHTARGETS_UV2
uv2Updated=uv2Updated+(vertexInputs.uv2_{X}-vertexInputs.uv2)*uniforms.morphTargetInfluences[{X}];
#endif
#ifdef MORPHTARGETS_COLOR
colorUpdated=colorUpdated+(vertexInputs.color{X}-vertexInputs.color)*uniforms.morphTargetInfluences[{X}];
#endif
#endif
#endif
`;H.IncludesShadersStoreWGSL[fQ]||(H.IncludesShadersStoreWGSL[fQ]=n0e);const a0e={name:fQ,shader:n0e},mwe=Object.freeze(Object.defineProperty({__proto__:null,morphTargetsVertexWGSL:a0e},Symbol.toStringTag,{value:"Module"})),o0e="instancesVertex",gwe=`#ifdef INSTANCES
var finalWorld=mat4x4<f32>(vertexInputs.world0,vertexInputs.world1,vertexInputs.world2,vertexInputs.world3);
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
var finalPreviousWorld=mat4x4<f32>(
vertexInputs.previousWorld0,vertexInputs.previousWorld1,
vertexInputs.previousWorld2,vertexInputs.previousWorld3);
#endif
#ifdef THIN_INSTANCES
#if !defined(WORLD_UBO)
finalWorld=uniforms.world*finalWorld;
#else
finalWorld=mesh.world*finalWorld;
#endif
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
finalPreviousWorld=uniforms.previousWorld*finalPreviousWorld;
#endif
#endif
#else
#if !defined(WORLD_UBO)
var finalWorld=uniforms.world;
#else
var finalWorld=mesh.world;
#endif
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
var finalPreviousWorld=uniforms.previousWorld;
#endif
#endif
`;H.IncludesShadersStoreWGSL[o0e]||(H.IncludesShadersStoreWGSL[o0e]=gwe);const pQ="bonesVertex",l0e=`#ifndef BAKED_VERTEX_ANIMATION_TEXTURE
#if NUM_BONE_INFLUENCERS>0
var influence : mat4x4<f32>;
#ifdef BONETEXTURE
influence=readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[0])*vertexInputs.matricesWeights[0];
#if NUM_BONE_INFLUENCERS>1
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[1])*vertexInputs.matricesWeights[1];
#endif 
#if NUM_BONE_INFLUENCERS>2
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[2])*vertexInputs.matricesWeights[2];
#endif 
#if NUM_BONE_INFLUENCERS>3
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[3])*vertexInputs.matricesWeights[3];
#endif 
#if NUM_BONE_INFLUENCERS>4
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[0])*vertexInputs.matricesWeightsExtra[0];
#endif 
#if NUM_BONE_INFLUENCERS>5
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[1])*vertexInputs.matricesWeightsExtra[1];
#endif 
#if NUM_BONE_INFLUENCERS>6
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[2])*vertexInputs.matricesWeightsExtra[2];
#endif 
#if NUM_BONE_INFLUENCERS>7
influence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[3])*vertexInputs.matricesWeightsExtra[3];
#endif 
#else 
influence=uniforms.mBones[int(vertexInputs.matricesIndices[0])]*vertexInputs.matricesWeights[0];
#if NUM_BONE_INFLUENCERS>1
influence=influence+uniforms.mBones[int(vertexInputs.matricesIndices[1])]*vertexInputs.matricesWeights[1];
#endif 
#if NUM_BONE_INFLUENCERS>2
influence=influence+uniforms.mBones[int(vertexInputs.matricesIndices[2])]*vertexInputs.matricesWeights[2];
#endif 
#if NUM_BONE_INFLUENCERS>3
influence=influence+uniforms.mBones[int(vertexInputs.matricesIndices[3])]*vertexInputs.matricesWeights[3];
#endif 
#if NUM_BONE_INFLUENCERS>4
influence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[0])]*vertexInputs.matricesWeightsExtra[0];
#endif 
#if NUM_BONE_INFLUENCERS>5
influence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[1])]*vertexInputs.matricesWeightsExtra[1];
#endif 
#if NUM_BONE_INFLUENCERS>6
influence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[2])]*vertexInputs.matricesWeightsExtra[2];
#endif 
#if NUM_BONE_INFLUENCERS>7
influence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[3])]*vertexInputs.matricesWeightsExtra[3];
#endif 
#endif
finalWorld=finalWorld*influence;
#endif
#endif
`;H.IncludesShadersStoreWGSL[pQ]||(H.IncludesShadersStoreWGSL[pQ]=l0e);const c0e={name:pQ,shader:l0e},_we=Object.freeze(Object.defineProperty({__proto__:null,bonesVertexWGSL:c0e},Symbol.toStringTag,{value:"Module"})),u0e="bakedVertexAnimation",vwe=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
{
#ifdef INSTANCES
let VATStartFrame: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.x;let VATEndFrame: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.y;let VATOffsetFrame: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.z;let VATSpeed: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.w;
#else
let VATStartFrame: f32=uniforms.bakedVertexAnimationSettings.x;let VATEndFrame: f32=uniforms.bakedVertexAnimationSettings.y;let VATOffsetFrame: f32=uniforms.bakedVertexAnimationSettings.z;let VATSpeed: f32=uniforms.bakedVertexAnimationSettings.w;
#endif
let totalFrames: f32=VATEndFrame-VATStartFrame+1.0;let time: f32=uniforms.bakedVertexAnimationTime*VATSpeed/totalFrames;let frameCorrection: f32=select(1.0,0.0,time<1.0);let numOfFrames: f32=totalFrames-frameCorrection;var VATFrameNum: f32=fract(time)*numOfFrames;VATFrameNum=(VATFrameNum+VATOffsetFrame) % numOfFrames;VATFrameNum=floor(VATFrameNum);VATFrameNum=VATFrameNum+VATStartFrame+frameCorrection;var VATInfluence : mat4x4<f32>;VATInfluence=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[0],VATFrameNum)*vertexInputs.matricesWeights[0];
#if NUM_BONE_INFLUENCERS>1
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[1],VATFrameNum)*vertexInputs.matricesWeights[1];
#endif
#if NUM_BONE_INFLUENCERS>2
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[2],VATFrameNum)*vertexInputs.matricesWeights[2];
#endif
#if NUM_BONE_INFLUENCERS>3
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[3],VATFrameNum)*vertexInputs.matricesWeights[3];
#endif
#if NUM_BONE_INFLUENCERS>4
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[0],VATFrameNum)*vertexInputs.matricesWeightsExtra[0];
#endif
#if NUM_BONE_INFLUENCERS>5
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[1],VATFrameNum)*vertexInputs.matricesWeightsExtra[1];
#endif
#if NUM_BONE_INFLUENCERS>6
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[2],VATFrameNum)*vertexInputs.matricesWeightsExtra[2];
#endif
#if NUM_BONE_INFLUENCERS>7
VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[3],VATFrameNum)*vertexInputs.matricesWeightsExtra[3];
#endif
finalWorld=finalWorld*VATInfluence;}
#endif
`;H.IncludesShadersStoreWGSL[u0e]||(H.IncludesShadersStoreWGSL[u0e]=vwe);const mQ="pickingVertexShader",h0e=`attribute position: vec3f;
#if defined(INSTANCES)
attribute instanceMeshID: vec4f;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<instancesDeclaration>
uniform viewProjection: mat4x4f;
#if defined(INSTANCES)
varying vMeshID: vec4f;
#endif
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
var worldPos: vec4f=finalWorld*vec4f(input.position,1.0);vertexOutputs.position=uniforms.viewProjection*worldPos;
#if defined(INSTANCES)
vertexOutputs.vMeshID=input.instanceMeshID;
#endif
}`;H.ShadersStoreWGSL[mQ]||(H.ShadersStoreWGSL[mQ]=h0e);const d0e={name:mQ,shader:h0e},Awe=Object.freeze(Object.defineProperty({__proto__:null,pickingVertexShaderWGSL:d0e},Symbol.toStringTag,{value:"Module"}));class CL{constructor(e,t,i,s=""){this.defines="",this.onCompiled=null,this.onError=null,this.uniqueId=0,this.onCompileObservable=new xe,this.onErrorObservable=new xe,this.onBindObservable=new xe,this._wasPreviouslyReady=!1,this._isReady=!1,this._compilationError="",this._key="",this._computeSourceCodeOverride="",this._pipelineContext=null,this._computeSourceCode="",this._rawComputeSourceCode="",this._shaderLanguage=1,this.name=e,this._key=s,this._engine=i,this.uniqueId=CL._UniqueIdSeed++,this.defines=t.defines??"",this.onError=t.onError,this.onCompiled=t.onCompiled,this._entryPoint=t.entryPoint??"main",this._shaderStore=H.GetShadersStore(this._shaderLanguage),this._shaderRepository=H.GetShadersRepository(this._shaderLanguage),this._includeShaderStore=H.GetIncludesShadersStore(this._shaderLanguage);let r;const n=Il()?this._engine.getHostDocument():null;typeof e=="string"?r=e:e.computeSource?r="source:"+e.computeSource:e.computeElement?r=(n==null?void 0:n.getElementById(e.computeElement))||e.computeElement:r=e.compute||e;const o={defines:this.defines.split(`
`),indexParameters:void 0,isFragment:!1,shouldUseHighPrecisionShader:!1,processor:null,supportsUniformBuffers:this._engine.supportsUniformBuffers,shadersRepository:this._shaderRepository,includesShadersStore:this._includeShaderStore,version:(this._engine.version*100).toString(),platformName:this._engine.shaderPlatformName,processingContext:null,isNDCHalfZRange:this._engine.isNDCHalfZRange,useReverseDepthBuffer:this._engine.useReverseDepthBuffer,processCodeAfterIncludes:(l,c,u)=>{if(!u)return c;for(const f of u){const m=f.replace("#define","").replace(";","").trim().split(" ");if(m.length===2){const _=m[0],d=m[1];(!isNaN(parseInt(d))||!isNaN(parseFloat(d)))&&(c=`const ${_} = ${d};
`+c)}}return c}};this._loadShader(r,"Compute","",l=>{oX(o),zPe(l,o,c=>{this._rawComputeSourceCode=l,t.processFinalCode&&(c=t.processFinalCode(c));const u=lX(c,"",o);this._useFinalCode(u.vertexCode,e)},this._engine)})}_useFinalCode(e,t){if(t){const i=t.computeElement||t.compute||t.spectorName||t;this._computeSourceCode="//#define SHADER_NAME compute:"+i+`
`+e}else this._computeSourceCode=e;this._prepareEffect()}get key(){return this._key}isReady(){try{return this._isReadyInternal()}catch{return!1}}_isReadyInternal(){return this._isReady?!0:this._pipelineContext?this._pipelineContext.isReady:!1}getEngine(){return this._engine}getPipelineContext(){return this._pipelineContext}getCompilationError(){return this._compilationError}executeWhenCompiled(e){if(this.isReady()){e(this);return}this.onCompileObservable.add(t=>{e(t)}),(!this._pipelineContext||this._pipelineContext.isAsync)&&this._checkIsReady(null)}_checkIsReady(e){my(()=>this._isReadyInternal(),()=>{},t=>{this._processCompilationErrors(t,e)},void 0,void 0,!1)}_loadShader(e,t,i,s){if(typeof HTMLElement<"u"&&e instanceof HTMLElement){const n=ow(e);s(n);return}if(e.substring(0,7)==="source:"){s(e.substring(7));return}if(e.substring(0,7)==="base64:"){const n=window.atob(e.substring(7));s(n);return}if(this._shaderStore[e+t+"Shader"]){s(this._shaderStore[e+t+"Shader"]);return}if(i&&this._shaderStore[e+i+"Shader"]){s(this._shaderStore[e+i+"Shader"]);return}let r;e[0]==="."||e[0]==="/"||e.indexOf("http")>-1?r=e:r=this._shaderRepository+e,this._engine._loadFile(r+"."+t.toLowerCase()+".fx",s)}get computeSourceCode(){var e;return this._computeSourceCodeOverride?this._computeSourceCodeOverride:((e=this._pipelineContext)==null?void 0:e._getComputeShaderCode())??this._computeSourceCode}get rawComputeSourceCode(){return this._rawComputeSourceCode}_prepareEffect(){const e=this.defines,t=this._pipelineContext;this._isReady=!1;try{const i=this._engine;this._pipelineContext=i.createComputePipelineContext(),this._pipelineContext._name=this._key,i._prepareComputePipelineContext(this._pipelineContext,this._computeSourceCodeOverride?this._computeSourceCodeOverride:this._computeSourceCode,this._rawComputeSourceCode,this._computeSourceCodeOverride?null:e,this._entryPoint),i._executeWhenComputeStateIsCompiled(this._pipelineContext,s=>{if(s&&s.numErrors>0){this._processCompilationErrors(s,t);return}this._compilationError="",this._isReady=!0,this.onCompiled&&this.onCompiled(this),this.onCompileObservable.notifyObservers(this),this.onCompileObservable.clear(),t&&this.getEngine()._deleteComputePipelineContext(t)}),this._pipelineContext.isAsync&&this._checkIsReady(t)}catch(i){this._processCompilationErrors(i,t)}}_processCompilationErrors(e,t=null){var i;if(this._compilationError="",de.Error("Unable to compile compute effect:"),this.defines&&de.Error(`Defines:
`+this.defines),CL.LogShaderCodeOnCompilationError){const s=(i=this._pipelineContext)==null?void 0:i._getComputeShaderCode();s&&(de.Error("Compute code:"),de.Error(s))}if(typeof e=="string")this._compilationError=e,de.Error("Error: "+this._compilationError);else for(const s of e.messages){let r="";s.line!==void 0&&(r+="Line "+s.line+", "),s.offset!==void 0&&(r+="Offset "+s.offset+", "),s.length!==void 0&&(r+="Length "+s.length+", "),r+=s.type+": "+s.text,this._compilationError&&(this._compilationError+=`
`),this._compilationError+=r,de.Error(r)}t&&(this._pipelineContext=t,this._isReady=!0),this.onError&&this.onError(this,this._compilationError),this.onErrorObservable.notifyObservers(this)}dispose(){this._pipelineContext&&this._pipelineContext.dispose(),this._engine._releaseComputeEffect(this)}static RegisterShader(e,t){H.GetShadersStore(1)[`${e}ComputeShader`]=t}}CL._UniqueIdSeed=0,CL.LogShaderCodeOnCompilationError=!0;class gQ{constructor(){this._gpuTimeInFrameId=-1,this.counter=new wo}_addDuration(e,t){e<this._gpuTimeInFrameId||(this._gpuTimeInFrameId!==e?(this.counter._fetchResult(),this.counter.fetchNewFrame(),this.counter.addCount(t,!1),this._gpuTimeInFrameId=e):this.counter.addCount(t,!1))}}class t5{get options(){return this._options}get shaderPath(){return this._shaderPath}constructor(e,t,i,s={}){if(this._bindings={},this._samplers={},this._contextIsDirty=!1,this.fastMode=!1,this.onCompiled=null,this.onError=null,this.name=e,this._engine=t,this.uniqueId=gP.UniqueId,t.enableGPUTimingMeasurements&&(this.gpuTimeInFrame=new gQ),!this._engine.getCaps().supportComputeShaders){de.Error("This engine does not support compute shaders!");return}if(!s.bindingsMapping){de.Error("You must provide the binding mappings as browsers don't support reflection for wgsl shaders yet!");return}this._context=t.createComputeContext(),this._shaderPath=i,this._options={bindingsMapping:{},defines:[],...s}}getClassName(){return"ComputeShader"}setTexture(e,t,i=!0){const s=this._bindings[e];this._bindings[e]={type:i?0:4,object:t,indexInGroupEntries:s==null?void 0:s.indexInGroupEntries},this._contextIsDirty||(this._contextIsDirty=!s||s.object!==t||s.type!==this._bindings[e].type)}setStorageTexture(e,t){const i=this._bindings[e];this._contextIsDirty||(this._contextIsDirty=!i||i.object!==t),this._bindings[e]={type:1,object:t,indexInGroupEntries:i==null?void 0:i.indexInGroupEntries}}setExternalTexture(e,t){const i=this._bindings[e];this._contextIsDirty||(this._contextIsDirty=!i||i.object!==t),this._bindings[e]={type:6,object:t,indexInGroupEntries:i==null?void 0:i.indexInGroupEntries}}setVideoTexture(e,t){return t.externalTexture?(this.setExternalTexture(e,t.externalTexture),!0):!1}setUniformBuffer(e,t){const i=this._bindings[e];this._contextIsDirty||(this._contextIsDirty=!i||i.object!==t),this._bindings[e]={type:t5._BufferIsDataBuffer(t)?7:2,object:t,indexInGroupEntries:i==null?void 0:i.indexInGroupEntries}}setStorageBuffer(e,t){const i=this._bindings[e];this._contextIsDirty||(this._contextIsDirty=!i||i.object!==t),this._bindings[e]={type:t5._BufferIsDataBuffer(t)?7:3,object:t,indexInGroupEntries:i==null?void 0:i.indexInGroupEntries}}setTextureSampler(e,t){const i=this._bindings[e];this._contextIsDirty||(this._contextIsDirty=!i||!t.compareSampler(i.object)),this._bindings[e]={type:5,object:t,indexInGroupEntries:i==null?void 0:i.indexInGroupEntries}}isReady(){let e=this._effect;for(const r in this._bindings){const n=this._bindings[r],o=n.type,l=n.object;switch(o){case 0:case 4:case 1:{if(!l.isReady())return!1;break}case 6:{if(!l.isReady())return!1;break}}}const t=[],i=this._shaderPath;if(this._options.defines)for(let r=0;r<this._options.defines.length;r++)t.push(this._options.defines[r]);const s=t.join(`
`);return this._cachedDefines!==s&&(this._cachedDefines=s,e=this._engine.createComputeEffect(i,{defines:s,entryPoint:this._options.entryPoint,onCompiled:this.onCompiled,onError:this.onError}),this._effect=e),!!e.isReady()}dispatch(e,t,i){return!this.fastMode&&!this._checkContext()?!1:(this._engine.computeDispatch(this._effect,this._context,this._bindings,e,t,i,this._options.bindingsMapping,this.gpuTimeInFrame),!0)}dispatchIndirect(e,t=0){if(!this.fastMode&&!this._checkContext())return!1;const i=t5._BufferIsDataBuffer(e)?e:e.getBuffer();return this._engine.computeDispatchIndirect(this._effect,this._context,this._bindings,i,t,this._options.bindingsMapping,this.gpuTimeInFrame),!0}_checkContext(){var e;if(!this.isReady())return!1;for(const t in this._bindings){const i=this._bindings[t];if(!this._options.bindingsMapping[t])throw new Error("ComputeShader ('"+this.name+"'): No binding mapping has been provided for the property '"+t+"'");switch(i.type){case 0:{const s=this._samplers[t],r=i.object;(!s||!r._texture||!s.compareSampler(r._texture))&&(this._samplers[t]=new JV().setParameters(r.wrapU,r.wrapV,r.wrapR,r.anisotropicFilteringLevel,r._texture.samplingMode,(e=r._texture)==null?void 0:e._comparisonFunction),this._contextIsDirty=!0);break}case 6:{this._contextIsDirty=!0;break}case 2:{const s=i.object;s.getBuffer()!==i.buffer&&(i.buffer=s.getBuffer(),this._contextIsDirty=!0);break}}}return this._contextIsDirty&&(this._contextIsDirty=!1,this._context.clear()),!0}dispatchWhenReady(e,t,i,s=10){return new Promise(r=>{my(()=>this.dispatch(e,t,i),r,void 0,s)})}serialize(){const e=It.Serialize(this);e.options=this._options,e.shaderPath=this._shaderPath,e.bindings={},e.textures={};for(const t in this._bindings){const i=this._bindings[t],s=i.object;switch(i.type){case 0:case 4:case 1:{const r=s.serialize();r&&(e.textures[t]=r,e.bindings[t]={type:i.type});break}}}return e}static Parse(e,t,i){const s=It.Parse(()=>new t5(e.name,t.getEngine(),e.shaderPath,e.options),e,t,i);for(const r in e.textures){const n=e.bindings[r],o=be.Parse(e.textures[r],t,i);n.type===0?s.setTexture(r,o):n.type===4?s.setTexture(r,o,!1):s.setStorageTexture(r,o)}return s}static _BufferIsDataBuffer(e){return e.underlyingResource!==void 0}}F([G()],t5.prototype,"name",void 0),F([G()],t5.prototype,"fastMode",void 0),ve("BABYLON.ComputeShader",t5);class Cwe{constructor(e){this._engine=e}async _initializePlatform(){if(!this._platform)if(this._engine.getCaps().supportComputeShaders){const e=await Promise.resolve().then(()=>Mwe);this._platform=new e.ComputeShaderBoundingHelper(this._engine)}else if(this._engine.getCaps().supportTransformFeedbacks){const e=await Promise.resolve().then(()=>Swe);this._platform=new e.TransformFeedbackBoundingHelper(this._engine)}else throw new Error("Your engine does not support Compute Shaders or Transform Feedbacks")}async computeAsync(e){return await this._initializePlatform(),this._platform.processAsync(e)}async batchInitializeAsync(e){return await this._initializePlatform(),this._platform.registerMeshListAsync(e)}batchProcess(){this._platform.processMeshList()}async batchFetchResultsAsync(){return this._platform.fetchResultsForMeshListAsync()}dispose(){this._platform.dispose()}}const f0e="gpuTransformVertexShader",xwe=`attribute vec3 position;
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
out vec3 outPosition;const mat4 identity=mat4(
vec4(1.0,0.0,0.0,0.0),
vec4(0.0,1.0,0.0,0.0),
vec4(0.0,0.0,1.0,0.0),
vec4(0.0,0.0,0.0,1.0)
);void main(void) {vec3 positionUpdated=position;
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
mat4 finalWorld=identity;
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(positionUpdated,1.0);outPosition=worldPos.xyz;}`;H.ShadersStore[f0e]||(H.ShadersStore[f0e]=xwe);const p0e="gpuTransformPixelShader",bwe=`#version 300 es
void main() {discard;}
`;H.ShadersStore[p0e]||(H.ShadersStore[p0e]=bwe);class By{constructor(e){this._buffers={},this._effects={},this._meshListCounter=0,this._engine=e}processAsync(e){return Array.isArray(e)||(e=[e]),this._meshListCounter=0,this._processMeshList(e),Promise.resolve()}_processMeshList(e){const t=this._engine.getCaps().parallelShaderCompile;this._engine.getCaps().parallelShaderCompile=void 0;for(let i=0;i<e.length;++i){const s=e[i];if(s.getTotalVertices()===0||!s.getVertexBuffer||!s.getVertexBuffer(q.PositionKind))continue;let n;const o=[],l=[q.PositionKind];s&&s.useBones&&s.computeBonesUsingShaders&&s.skeleton?(l.push(q.MatricesIndicesKind),l.push(q.MatricesWeightsKind),s.numBoneInfluencers>4&&(l.push(q.MatricesIndicesExtraKind),l.push(q.MatricesWeightsExtraKind)),o.push("#define NUM_BONE_INFLUENCERS "+s.numBoneInfluencers),o.push("#define BONETEXTURE "+s.skeleton.isUsingTextureForMatrices),o.push("#define BonesPerMesh "+(s.skeleton.bones.length+1))):o.push("#define NUM_BONE_INFLUENCERS 0");const c=s.morphTargetManager?xy(s.morphTargetManager,o,l,s,!0,!1,!1,!1,!1,!1):0,u=s.bakedVertexAnimationManager;u&&u.isEnabled&&(o.push("#define BAKED_VERTEX_ANIMATION_TEXTURE"),CP(l,s,o));const f=o.join(`
`);if(this._effects[f])n=this._effects[f];else{const _={attributes:l,uniformsNames:["boneTextureWidth","mBones","morphTargetInfluences","morphTargetCount","morphTargetTextureInfo","morphTargetTextureIndices","bakedVertexAnimationSettings","bakedVertexAnimationTextureSizeInverted","bakedVertexAnimationTime"],uniformBuffersNames:[],samplers:["boneSampler","morphTargets","bakedVertexAnimationTexture"],defines:f,fallbacks:null,onCompiled:null,onError:null,indexParameters:{maxSimultaneousMorphTargets:c},maxSimultaneousLights:0,transformFeedbackVaryings:["outPosition"]};n=this._engine.createEffect("gpuTransform",_,this._engine),this._effects[f]=n}this._compute(s,n)}this._engine.getCaps().parallelShaderCompile=t}_compute(e,t){var l;const i=this._engine;let s;const r=e.getTotalVertices();if(this._buffers[e.uniqueId])s=this._buffers[e.uniqueId];else{const c=new Float32Array(r*3);s=new fl(e.getEngine(),c,!0,3),this._buffers[e.uniqueId]=s}t.getEngine().enableEffect(t),e._bindDirect(t,null,!0),Pc(e,t),s3(e,t),e.morphTargetManager&&e.morphTargetManager.isUsingTextureForTargets&&e.morphTargetManager._bind(t);const n=e.bakedVertexAnimationManager;n&&n.isEnabled&&((l=e.bakedVertexAnimationManager)==null||l.bind(t,!1));const o=s.getData();if(i.bindTransformFeedbackBuffer(s.getBuffer()),i.setRasterizerState(!1),i.beginTransformFeedback(!0),i.drawArraysType(2,0,r),i.endTransformFeedback(),i.setRasterizerState(!0),i.readTransformFeedbackBuffer(o),i.bindTransformFeedbackBuffer(null),this._meshListCounter===0)e._refreshBoundingInfo(o,null);else{const c=e.getBoundingInfo().boundingBox,u=vy(o,0,r);By._Min.copyFrom(c.minimum).minimizeInPlace(u.minimum),By._Max.copyFrom(c.maximum).maximizeInPlace(u.maximum),e._refreshBoundingInfoDirect({minimum:By._Min,maximum:By._Max})}}registerMeshListAsync(e){return Array.isArray(e)||(e=[e]),this._meshList=e,this._meshListCounter=0,Promise.resolve()}processMeshList(){this._meshList.length!==0&&(this._processMeshList(this._meshList),this._meshListCounter++)}fetchResultsForMeshListAsync(){return this._meshListCounter=0,Promise.resolve()}dispose(){for(const e in this._buffers)this._buffers[e].dispose();this._buffers={},this._effects={},this._engine=null}}By._Min=new P,By._Max=new P;const Swe=Object.freeze(Object.defineProperty({__proto__:null,TransformFeedbackBoundingHelper:By},Symbol.toStringTag,{value:"Module"})),m0e="boundingInfoComputeShader",ywe=`struct Results {minX : atomic<i32>,
minY : atomic<i32>,
minZ : atomic<i32>,
maxX : atomic<i32>,
maxY : atomic<i32>,
maxZ : atomic<i32>,
dummy1 : i32,
dummy2 : i32,};fn floatToBits(value: f32)->i32 {return bitcast<i32>(value);}
fn bitsToFloat(value: i32)->f32 {return bitcast<f32>(value);}
fn atomicMinFloat(atomicVar: ptr<storage,atomic<i32>,read_write>,value: f32) {let intValue=floatToBits(value);loop {let oldIntValue=atomicLoad(atomicVar);let oldValue=bitsToFloat(oldIntValue);if (value>=oldValue) {break;}
if (atomicCompareExchangeWeak(atomicVar,oldIntValue,intValue).old_value==oldIntValue) {break;}}}
fn atomicMaxFloat(atomicVar: ptr<storage,atomic<i32>,read_write>,value: f32) {let intValue=floatToBits(value);loop {let oldIntValue=atomicLoad(atomicVar);let oldValue=bitsToFloat(oldIntValue);if (value<=oldValue) {break;}
if (atomicCompareExchangeWeak(atomicVar,oldIntValue,intValue).old_value==oldIntValue) {break;}}}
fn readMatrixFromRawSampler(smp : texture_2d<f32>,index : f32)->mat4x4<f32>
{let offset=i32(index) *4; 
let m0=textureLoad(smp,vec2<i32>(offset+0,0),0);let m1=textureLoad(smp,vec2<i32>(offset+1,0),0);let m2=textureLoad(smp,vec2<i32>(offset+2,0),0);let m3=textureLoad(smp,vec2<i32>(offset+3,0),0);return mat4x4<f32>(m0,m1,m2,m3);}
const identity=mat4x4f(
vec4f(1.0,0.0,0.0,0.0),
vec4f(0.0,1.0,0.0,0.0),
vec4f(0.0,0.0,1.0,0.0),
vec4f(0.0,0.0,0.0,1.0)
);struct Settings {morphTargetTextureInfo: vec3f,
morphTargetCount: i32,
indexResult : u32,};@group(0) @binding(0) var<storage,read> positionBuffer : array<f32>;@group(0) @binding(1) var<storage,read_write> resultBuffer : array<Results>;@group(0) @binding(7) var<uniform> settings : Settings;
#if NUM_BONE_INFLUENCERS>0
@group(0) @binding(2) var boneSampler : texture_2d<f32>;@group(0) @binding(3) var<storage,read> indexBuffer : array<vec4f>;@group(0) @binding(4) var<storage,read> weightBuffer : array<vec4f>;
#if NUM_BONE_INFLUENCERS>4
@group(0) @binding(5) var<storage,read> indexExtraBuffer : array<vec4f>;@group(0) @binding(6) var<storage,read> weightExtraBuffer : array<vec4f>;
#endif
#endif
#ifdef MORPHTARGETS
@group(0) @binding(8) var morphTargets : texture_2d_array<f32>;@group(0) @binding(9) var<storage,read> morphTargetInfluences : array<f32>;@group(0) @binding(10) var<storage,read> morphTargetTextureIndices : array<f32>;
#endif
#ifdef MORPHTARGETS
fn readVector3FromRawSampler(targetIndex : i32,vertexIndex : u32)->vec3f
{ 
let vertexID=f32(vertexIndex)*settings.morphTargetTextureInfo.x;let y=floor(vertexID/settings.morphTargetTextureInfo.y);let x=vertexID-y*settings.morphTargetTextureInfo.y;let textureUV=vec2<i32>(i32(x),i32(y));return textureLoad(morphTargets,textureUV,i32(morphTargetTextureIndices[targetIndex]),0).xyz;}
fn readVector4FromRawSampler(targetIndex : i32,vertexIndex : u32)->vec4f
{ 
let vertexID=f32(vertexIndex)*settings.morphTargetTextureInfo.x;let y=floor(vertexID/settings.morphTargetTextureInfo.y);let x=vertexID-y*settings.morphTargetTextureInfo.y;let textureUV=vec2<i32>(i32(x),i32(y));return textureLoad(morphTargets,textureUV,i32(morphTargetTextureIndices[targetIndex]),0);}
#endif
@compute @workgroup_size(256,1,1)
fn main(@builtin(global_invocation_id) global_id : vec3<u32>) {let index=global_id.x;if (index>=arrayLength(&positionBuffer)/3) {return;}
let position=vec3f(positionBuffer[index*3],positionBuffer[index*3+1],positionBuffer[index*3+2]);var finalWorld=identity;var positionUpdated=position;
#if NUM_BONE_INFLUENCERS>0
var influence : mat4x4<f32>;let matricesIndices=indexBuffer[index];let matricesWeights=weightBuffer[index];influence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];
#if NUM_BONE_INFLUENCERS>1
influence=influence+readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];
#endif 
#if NUM_BONE_INFLUENCERS>2
influence=influence+readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];
#endif 
#if NUM_BONE_INFLUENCERS>3
influence=influence+readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];
#endif 
#if NUM_BONE_INFLUENCERS>4
let matricesIndicesExtra=indexExtraBuffer[index];let matricesWeightsExtra=weightExtraBuffer[index];influence=influence+readMatrixFromRawSampler(boneSampler,matricesIndicesExtra.x)*matricesWeightsExtra.x;
#if NUM_BONE_INFLUENCERS>5
influence=influence+readMatrixFromRawSampler(boneSampler,matricesIndicesExtra.y)*matricesWeightsExtra.y;
#endif 
#if NUM_BONE_INFLUENCERS>6
influence=influence+readMatrixFromRawSampler(boneSampler,matricesIndicesExtra.z)*matricesWeightsExtra.z;
#endif 
#if NUM_BONE_INFLUENCERS>7
influence=influence+readMatrixFromRawSampler(boneSampler,matricesIndicesExtra.w)*matricesWeightsExtra.w;
#endif 
#endif 
finalWorld=finalWorld*influence;
#endif
#ifdef MORPHTARGETS
for (var i=0; i<NUM_MORPH_INFLUENCERS; i=i+1) {if (i>=settings.morphTargetCount) {break;}
positionUpdated=positionUpdated+(readVector3FromRawSampler(i,index)-position)*morphTargetInfluences[i];}
#endif
var worldPos=finalWorld*vec4f(positionUpdated.x,positionUpdated.y,positionUpdated.z,1.0);atomicMinFloat(&resultBuffer[settings.indexResult].minX,worldPos.x);atomicMinFloat(&resultBuffer[settings.indexResult].minY,worldPos.y);atomicMinFloat(&resultBuffer[settings.indexResult].minZ,worldPos.z);atomicMaxFloat(&resultBuffer[settings.indexResult].maxX,worldPos.x);atomicMaxFloat(&resultBuffer[settings.indexResult].maxY,worldPos.y);atomicMaxFloat(&resultBuffer[settings.indexResult].maxZ,worldPos.z);}
`;H.ShadersStoreWGSL[m0e]||(H.ShadersStoreWGSL[m0e]=ywe);class g0e{constructor(e){this._computeShadersCache={},this._positionBuffers={},this._indexBuffers={},this._weightBuffers={},this._indexExtraBuffers={},this._weightExtraBuffers={},this._morphTargetInfluenceBuffers={},this._morphTargetTextureIndexBuffers={},this._ubos=[],this._uboIndex=0,this._processedMeshes=[],this._computeShaders=[],this._uniqueComputeShaders=new Set,this._resultBuffers=[],this._engine=e}_getComputeShader(e,t,i){let s;const r=e.join(`
`);if(this._computeShadersCache[r])s=this._computeShadersCache[r];else{const n={positionBuffer:{group:0,binding:0},resultBuffer:{group:0,binding:1},settings:{group:0,binding:7}};t&&(n.boneSampler={group:0,binding:2},n.indexBuffer={group:0,binding:3},n.weightBuffer={group:0,binding:4},n.indexExtraBuffer={group:0,binding:5},n.weightExtraBuffer={group:0,binding:6}),i&&(n.morphTargets={group:0,binding:8},n.morphTargetInfluences={group:0,binding:9},n.morphTargetTextureIndices={group:0,binding:10}),s=new t5(`boundingInfoCompute${t?"_bones":""}${i?"_morphs":""}`,this._engine,"boundingInfo",{bindingsMapping:n,defines:e}),this._computeShadersCache[r]=s}return s}_getUBO(){if(this._uboIndex>=this._ubos.length){const e=new Ti(this._engine);e.addFloat3("morphTargetTextureInfo",0,0,0),e.addUniform("morphTargetCount",1),e.addUniform("indexResult",1),this._ubos.push(e)}return this._ubos[this._uboIndex++]}_extractDataAndLink(e,t,i,s,r,n){var c;let o;const l=t.getTotalVertices();if(n[t.uniqueId])o=n[t.uniqueId];else{const u=(c=t.getVertexBuffer(i))==null?void 0:c.getFloatData(l);o=new dB(this._engine,Float32Array.BYTES_PER_ELEMENT*l*s),o.update(u),n[t.uniqueId]=o}e.setStorageBuffer(r,o)}_prepareStorage(e,t,i,s,r,n){let o;s[i]?o=s[i]:(o=new dB(this._engine,Float32Array.BYTES_PER_ELEMENT*r),s[i]=o),o.update(n),e.setStorageBuffer(t,o)}async processAsync(e){await this.registerMeshListAsync(e),this.processMeshList(),await this.fetchResultsForMeshListAsync()}registerMeshListAsync(e){this._disposeForMeshList(),Array.isArray(e)||(e=[e]);let t=0;for(let i=0;i<e.length;i++){const s=e[i];if(s.getTotalVertices()===0||!s.getVertexBuffer||!s.getVertexBuffer(q.PositionKind))continue;this._processedMeshes.push(s);const n=s.morphTargetManager;n&&n.supportsPositions&&(t=Math.max(t,n.numTargets))}for(let i=0;i<this._processedMeshes.length;i++){const s=this._processedMeshes[i];let r=[""],n=!1;s&&s.useBones&&s.computeBonesUsingShaders&&s.skeleton&&(r.push("#define NUM_BONE_INFLUENCERS "+s.numBoneInfluencers),n=!0);const o=this._getComputeShader(r,n,!1);this._uniqueComputeShaders.add(o);const l=s.morphTargetManager;if(l&&l.supportsPositions){r=r.slice(),r.push("#define MORPHTARGETS"),r.push("#define NUM_MORPH_INFLUENCERS "+t);const u=this._getComputeShader(r,n,!0);this._uniqueComputeShaders.add(u),this._computeShaders.push([o,u])}else this._computeShaders.push([o,o]);const c=this._getUBO();c.updateUInt("indexResult",i),c.update()}return new Promise(i=>{my(()=>{const s=this._uniqueComputeShaders.keys();for(let r=s.next();r.done!==!0;r=s.next())if(!r.value.isReady())return!1;return!0},i)})}processMeshList(){if(this._processedMeshes.length===0)return;this._uboIndex=0;const e=8*this._processedMeshes.length,t=new Float32Array(e),i=new dB(this._engine,Float32Array.BYTES_PER_ELEMENT*e);this._resultBuffers.push(i);for(let s=0;s<this._processedMeshes.length;s++)t[s*8+0]=Number.POSITIVE_INFINITY,t[s*8+1]=Number.POSITIVE_INFINITY,t[s*8+2]=Number.POSITIVE_INFINITY,t[s*8+3]=Number.NEGATIVE_INFINITY,t[s*8+4]=Number.NEGATIVE_INFINITY,t[s*8+5]=Number.NEGATIVE_INFINITY;i.update(t);for(let s=0;s<this._processedMeshes.length;s++){const r=this._processedMeshes[s],n=r.getTotalVertices(),[o,l]=this._computeShaders[s],c=r.morphTargetManager,u=c&&c.numInfluencers>0&&c.supportsPositions,f=u?l:o;if(this._extractDataAndLink(f,r,q.PositionKind,3,"positionBuffer",this._positionBuffers),r&&r.useBones&&r.computeBonesUsingShaders&&r.skeleton&&r.skeleton.useTextureToStoreBoneMatrices){this._extractDataAndLink(f,r,q.MatricesIndicesKind,4,"indexBuffer",this._indexBuffers),this._extractDataAndLink(f,r,q.MatricesWeightsKind,4,"weightBuffer",this._weightBuffers);const m=r.skeleton.getTransformMatrixTexture(r);f.setTexture("boneSampler",m,!1),r.numBoneInfluencers>4&&(this._extractDataAndLink(f,r,q.MatricesIndicesExtraKind,4,"indexExtraBuffer",this._indexExtraBuffers),this._extractDataAndLink(f,r,q.MatricesWeightsExtraKind,4,"weightExtraBuffer",this._weightExtraBuffers))}const p=this._getUBO();if(u){const m=c._targetStoreTexture;f.setTexture("morphTargets",m,!1),this._prepareStorage(f,"morphTargetInfluences",r.uniqueId,this._morphTargetInfluenceBuffers,c.numInfluencers,c.influences),this._prepareStorage(f,"morphTargetTextureIndices",r.uniqueId,this._morphTargetTextureIndexBuffers,c.numInfluencers,c._morphTargetTextureIndices),p.updateFloat3("morphTargetTextureInfo",c._textureVertexStride,c._textureWidth,c._textureHeight),p.updateInt("morphTargetCount",c.numInfluencers),p.update()}f.setStorageBuffer("resultBuffer",i),f.setUniformBuffer("settings",p),f.dispatch(Math.ceil(n/256)),this._engine.flushFramebuffer()}}fetchResultsForMeshListAsync(){return new Promise(e=>{const t=[];let i=0;for(let l=0;l<this._resultBuffers.length;l++){const c=this._resultBuffers[l].getBuffer();t.push(c),i+=c.capacity}const s=new Float32Array(i/Float32Array.BYTES_PER_ELEMENT),r=P.Zero(),n=P.Zero(),o={minimum:r,maximum:n};this._engine.readFromMultipleStorageBuffers(t,0,void 0,s,!0).then(()=>{let l=0;for(let c=0;c<this._resultBuffers.length;c++){for(let u=0;u<this._processedMeshes.length;u++){const f=this._processedMeshes[u];P.FromArrayToRef(s,l+u*8,r),P.FromArrayToRef(s,l+u*8+3,n),c>0&&(r.minimizeInPlace(f.getBoundingInfo().minimum),n.maximizeInPlace(f.getBoundingInfo().maximum)),f._refreshBoundingInfoDirect(o)}l+=8*this._processedMeshes.length}for(const c of this._resultBuffers)c.dispose();this._resultBuffers=[],this._uboIndex=0,e()})})}_disposeCache(e){for(const t in e)e[t].dispose()}_disposeForMeshList(){for(const e of this._resultBuffers)e.dispose();this._resultBuffers=[],this._processedMeshes=[],this._computeShaders=[],this._uniqueComputeShaders=new Set}dispose(){this._disposeCache(this._positionBuffers),this._positionBuffers={},this._disposeCache(this._indexBuffers),this._indexBuffers={},this._disposeCache(this._weightBuffers),this._weightBuffers={},this._disposeCache(this._morphTargetInfluenceBuffers),this._morphTargetInfluenceBuffers={},this._disposeCache(this._morphTargetTextureIndexBuffers),this._morphTargetTextureIndexBuffers={};for(const e of this._ubos)e.dispose();this._ubos=[],this._computeShadersCache={},this._engine=void 0,this._disposeForMeshList()}}const Mwe=Object.freeze(Object.defineProperty({__proto__:null,ComputeShaderBoundingHelper:g0e},Symbol.toStringTag,{value:"Module"}));class bB{constructor(e,t,i,s,r,n){this.entries=[],this._boundingVectors=new Array,this._capacity=i,this._depth=s,this._maxDepth=r,this._creationFunc=n,this._minPoint=e,this._maxPoint=t,this._boundingVectors.push(e.clone()),this._boundingVectors.push(t.clone()),this._boundingVectors.push(e.clone()),this._boundingVectors[2].x=t.x,this._boundingVectors.push(e.clone()),this._boundingVectors[3].y=t.y,this._boundingVectors.push(e.clone()),this._boundingVectors[4].z=t.z,this._boundingVectors.push(t.clone()),this._boundingVectors[5].z=e.z,this._boundingVectors.push(t.clone()),this._boundingVectors[6].x=e.x,this._boundingVectors.push(t.clone()),this._boundingVectors[7].y=e.y}get capacity(){return this._capacity}get minPoint(){return this._minPoint}get maxPoint(){return this._maxPoint}addEntry(e){if(this.blocks){for(let t=0;t<this.blocks.length;t++)this.blocks[t].addEntry(e);return}this._creationFunc(e,this),this.entries.length>this.capacity&&this._depth<this._maxDepth&&this.createInnerBlocks()}removeEntry(e){if(this.blocks){for(let i=0;i<this.blocks.length;i++)this.blocks[i].removeEntry(e);return}const t=this.entries.indexOf(e);t>-1&&this.entries.splice(t,1)}addEntries(e){for(let t=0;t<e.length;t++){const i=e[t];this.addEntry(i)}}select(e,t,i){if(ef.IsInFrustum(this._boundingVectors,e)){if(this.blocks){for(let s=0;s<this.blocks.length;s++)this.blocks[s].select(e,t,i);return}i?t.concat(this.entries):t.concatWithNoDuplicate(this.entries)}}intersects(e,t,i,s){if(ef.IntersectsSphere(this._minPoint,this._maxPoint,e,t)){if(this.blocks){for(let r=0;r<this.blocks.length;r++)this.blocks[r].intersects(e,t,i,s);return}s?i.concat(this.entries):i.concatWithNoDuplicate(this.entries)}}intersectsRay(e,t){if(e.intersectsBoxMinMax(this._minPoint,this._maxPoint)){if(this.blocks){for(let i=0;i<this.blocks.length;i++)this.blocks[i].intersectsRay(e,t);return}t.concatWithNoDuplicate(this.entries)}}createInnerBlocks(){bB._CreateBlocks(this._minPoint,this._maxPoint,this.entries,this._capacity,this._depth,this._maxDepth,this,this._creationFunc),this.entries.splice(0)}static _CreateBlocks(e,t,i,s,r,n,o,l){o.blocks=new Array;const c=new P((t.x-e.x)/2,(t.y-e.y)/2,(t.z-e.z)/2);for(let u=0;u<2;u++)for(let f=0;f<2;f++)for(let p=0;p<2;p++){const m=e.add(c.multiplyByFloats(u,f,p)),_=e.add(c.multiplyByFloats(u+1,f+1,p+1)),d=new bB(m,_,s,r+1,n,l);d.addEntries(i),o.blocks.push(d)}}}class xL{constructor(e,t,i=2){this.maxDepth=i,this.dynamicContent=[],this._maxBlockCapacity=t||64,this._selectionContent=new _y(1024),this._creationFunc=e}update(e,t,i){bB._CreateBlocks(e,t,i,this._maxBlockCapacity,0,this.maxDepth,this,this._creationFunc)}addMesh(e){for(let t=0;t<this.blocks.length;t++)this.blocks[t].addEntry(e)}removeMesh(e){for(let t=0;t<this.blocks.length;t++)this.blocks[t].removeEntry(e)}select(e,t){this._selectionContent.reset();for(let i=0;i<this.blocks.length;i++)this.blocks[i].select(e,this._selectionContent,t);return t?this._selectionContent.concat(this.dynamicContent):this._selectionContent.concatWithNoDuplicate(this.dynamicContent),this._selectionContent}intersects(e,t,i){this._selectionContent.reset();for(let s=0;s<this.blocks.length;s++)this.blocks[s].intersects(e,t,this._selectionContent,i);return i?this._selectionContent.concat(this.dynamicContent):this._selectionContent.concatWithNoDuplicate(this.dynamicContent),this._selectionContent}intersectsRay(e){this._selectionContent.reset();for(let t=0;t<this.blocks.length;t++)this.blocks[t].intersectsRay(e,this._selectionContent);return this._selectionContent.concatWithNoDuplicate(this.dynamicContent),this._selectionContent}}xL.CreationFuncForMeshes=(a,e)=>{const t=a.getBoundingInfo();!a.isBlocked&&t.boundingBox.intersectsMinMax(e.minPoint,e.maxPoint)&&e.entries.push(a)},xL.CreationFuncForSubMeshes=(a,e)=>{a.getBoundingInfo().boundingBox.intersectsMinMax(e.minPoint,e.maxPoint)&&e.entries.push(a)},ui.prototype.createOrUpdateSelectionOctree=function(a=64,e=2){let t=this._getComponent(jt.NAME_OCTREE);t||(t=new _Q(this),this._addComponent(t)),this._selectionOctree||(this._selectionOctree=new xL(xL.CreationFuncForMeshes,a,e));const i=this.getWorldExtends();return this._selectionOctree.update(i.min,i.max,this.meshes),this._selectionOctree},Object.defineProperty(ui.prototype,"selectionOctree",{get:function(){return this._selectionOctree},enumerable:!0,configurable:!0}),cr.prototype.createOrUpdateSubmeshesOctree=function(a=64,e=2){const t=this.getScene();let i=t._getComponent(jt.NAME_OCTREE);i||(i=new _Q(t),t._addComponent(i)),this._submeshesOctree||(this._submeshesOctree=new xL(xL.CreationFuncForSubMeshes,a,e)),this.computeWorldMatrix(!0);const r=this.getBoundingInfo().boundingBox;return this._submeshesOctree.update(r.minimumWorld,r.maximumWorld,this.subMeshes),this._submeshesOctree};class _Q{constructor(e){this.name=jt.NAME_OCTREE,this.checksIsEnabled=!0,this._tempRay=new Is(P.Zero(),new P(1,1,1)),e=e||ei.LastCreatedScene,e&&(this.scene=e,this.scene.getActiveMeshCandidates=()=>this.getActiveMeshCandidates(),this.scene.getActiveSubMeshCandidates=t=>this.getActiveSubMeshCandidates(t),this.scene.getCollidingSubMeshCandidates=(t,i)=>this.getCollidingSubMeshCandidates(t,i),this.scene.getIntersectingSubMeshCandidates=(t,i)=>this.getIntersectingSubMeshCandidates(t,i))}register(){this.scene.onMeshRemovedObservable.add(e=>{const t=this.scene.selectionOctree;if(t!=null){const i=t.dynamicContent.indexOf(e);i!==-1&&t.dynamicContent.splice(i,1)}}),this.scene.onMeshImportedObservable.add(e=>{const t=this.scene.selectionOctree;t!=null&&t.addMesh(e)})}getActiveMeshCandidates(){var e;return((e=this.scene._selectionOctree)==null?void 0:e.select(this.scene.frustumPlanes))||this.scene._getDefaultMeshCandidates()}getActiveSubMeshCandidates(e){return e._submeshesOctree&&e.useOctreeForRenderingSelection?e._submeshesOctree.select(this.scene.frustumPlanes):this.scene._getDefaultSubMeshCandidates(e)}getIntersectingSubMeshCandidates(e,t){return e._submeshesOctree&&e.useOctreeForPicking?(Is.TransformToRef(t,e.getWorldMatrix(),this._tempRay),e._submeshesOctree.intersectsRay(this._tempRay)):this.scene._getDefaultSubMeshCandidates(e)}getCollidingSubMeshCandidates(e,t){if(e._submeshesOctree&&e.useOctreeForCollisions){const i=t._velocityWorldLength+Math.max(t._radius.x,t._radius.y,t._radius.z);return e._submeshesOctree.intersects(t._basePointWorld,i)}return this.scene._getDefaultSubMeshCandidates(e)}rebuild(){}dispose(){}}class Dr{getRenderCamera(e){if(this._renderCamera)return this._renderCamera;{let t;return this.originalScene.activeCameras&&this.originalScene.activeCameras.length>1?t=this.originalScene.activeCameras[this.originalScene.activeCameras.length-1]:t=this.originalScene.activeCamera,e&&t&&t.isRigCamera?t.rigParent:t}}setRenderCamera(e){this._renderCamera=e}_getSharedGizmoLight(){return this._sharedGizmoLight||(this._sharedGizmoLight=new b4("shared gizmo light",new P(0,1,0),this.utilityLayerScene),this._sharedGizmoLight.intensity=2,this._sharedGizmoLight.groundColor=Pe.Gray()),this._sharedGizmoLight}static get DefaultUtilityLayer(){return Dr._DefaultUtilityLayer==null?Dr._CreateDefaultUtilityLayerFromScene(ei.LastCreatedScene):Dr._DefaultUtilityLayer}static _CreateDefaultUtilityLayerFromScene(e){return Dr._DefaultUtilityLayer=new Dr(e),Dr._DefaultUtilityLayer.originalScene.onDisposeObservable.addOnce(()=>{Dr._DefaultUtilityLayer=null}),Dr._DefaultUtilityLayer}static get DefaultKeepDepthUtilityLayer(){return Dr._DefaultKeepDepthUtilityLayer==null&&(Dr._DefaultKeepDepthUtilityLayer=new Dr(ei.LastCreatedScene),Dr._DefaultKeepDepthUtilityLayer.utilityLayerScene.autoClearDepthAndStencil=!1,Dr._DefaultKeepDepthUtilityLayer.originalScene.onDisposeObservable.addOnce(()=>{Dr._DefaultKeepDepthUtilityLayer=null})),Dr._DefaultKeepDepthUtilityLayer}constructor(e,t=!0,i=!1){this.originalScene=e,this.handleEvents=t,this._pointerCaptures={},this._lastPointerEvents={},this._sharedGizmoLight=null,this._renderCamera=null,this.pickUtilitySceneFirst=!0,this.shouldRender=!0,this.onlyCheckPointerDownEvents=!0,this.processAllEvents=!1,this.pickingEnabled=!0,this.onPointerOutObservable=new xe,this.utilityLayerScene=new ui(e.getEngine(),{virtual:!0}),this.utilityLayerScene.useRightHandedSystem=e.useRightHandedSystem,this.utilityLayerScene._allowPostProcessClearColor=!1,this.utilityLayerScene.postProcessesEnabled=!1,this.utilityLayerScene.detachControl(),t&&(this._originalPointerObserver=e.onPrePointerObservable.add(s=>{var l;if(!this.utilityLayerScene.activeCamera||!this.pickingEnabled||!this.processAllEvents&&s.type!==Xt.POINTERMOVE&&s.type!==Xt.POINTERUP&&s.type!==Xt.POINTERDOWN&&s.type!==Xt.POINTERDOUBLETAP)return;this.utilityLayerScene.pointerX=e.pointerX,this.utilityLayerScene.pointerY=e.pointerY;const r=s.event;if(e.isPointerCaptured(r.pointerId)){this._pointerCaptures[r.pointerId]=!1;return}const n=c=>{let u=null;if(s.nearInteractionPickingInfo)s.nearInteractionPickingInfo.pickedMesh.getScene()==c?u=s.nearInteractionPickingInfo:u=new Kl;else if(c!==this.utilityLayerScene&&s.originalPickingInfo)u=s.originalPickingInfo;else{let f=null;this._renderCamera&&(f=c._activeCamera,c._activeCamera=this._renderCamera,s.ray=null),u=s.ray?c.pickWithRay(s.ray):c.pick(e.pointerX,e.pointerY),f&&(c._activeCamera=f)}return u},o=n(this.utilityLayerScene);if(!s.ray&&o&&(s.ray=o.ray),(l=s.originalPickingInfo)!=null&&l.aimTransform&&o&&(o.aimTransform=s.originalPickingInfo.aimTransform,o.gripTransform=s.originalPickingInfo.gripTransform),this.utilityLayerScene.onPrePointerObservable.notifyObservers(s),this.onlyCheckPointerDownEvents&&s.type!=Xt.POINTERDOWN){s.skipOnPointerObservable||this.utilityLayerScene.onPointerObservable.notifyObservers(new C4(s.type,s.event,o),s.type),s.type===Xt.POINTERUP&&this._pointerCaptures[r.pointerId]&&(this._pointerCaptures[r.pointerId]=!1);return}if(this.utilityLayerScene.autoClearDepthAndStencil||this.pickUtilitySceneFirst)o&&o.hit&&(s.skipOnPointerObservable||this.utilityLayerScene.onPointerObservable.notifyObservers(new C4(s.type,s.event,o),s.type),s.skipOnPointerObservable=!0);else{const c=n(e),u=s.event;c&&o&&(o.distance===0&&c.pickedMesh?this.mainSceneTrackerPredicate&&this.mainSceneTrackerPredicate(c.pickedMesh)?(this._notifyObservers(s,c,u),s.skipOnPointerObservable=!0):s.type===Xt.POINTERDOWN?(this._pointerCaptures[u.pointerId]=!0,this._notifyObservers(s,c,u)):(s.type===Xt.POINTERMOVE||s.type===Xt.POINTERUP)&&(this._lastPointerEvents[u.pointerId]&&(this.onPointerOutObservable.notifyObservers(u.pointerId),delete this._lastPointerEvents[u.pointerId]),this._notifyObservers(s,c,u)):!this._pointerCaptures[u.pointerId]&&(o.distance<c.distance||c.distance===0)?(this._notifyObservers(s,o,u),s.skipOnPointerObservable||(s.skipOnPointerObservable=o.distance>0)):!this._pointerCaptures[u.pointerId]&&o.distance>=c.distance&&(this.mainSceneTrackerPredicate&&this.mainSceneTrackerPredicate(c.pickedMesh)?(this._notifyObservers(s,c,u),s.skipOnPointerObservable=!0):((s.type===Xt.POINTERMOVE||s.type===Xt.POINTERUP)&&this._lastPointerEvents[u.pointerId]&&(this.onPointerOutObservable.notifyObservers(u.pointerId),delete this._lastPointerEvents[u.pointerId]),this._notifyObservers(s,o,u))),s.type===Xt.POINTERUP&&this._pointerCaptures[u.pointerId]&&(this._pointerCaptures[u.pointerId]=!1))}}),this._originalPointerObserver&&e.onPrePointerObservable.makeObserverTopPriority(this._originalPointerObserver)),this.utilityLayerScene.autoClear=!1,i||(this._afterRenderObserver=this.originalScene.onAfterRenderCameraObservable.add(s=>{this.shouldRender&&s==this.getRenderCamera()&&this.render()})),this._sceneDisposeObserver=this.originalScene.onDisposeObservable.add(()=>{this.dispose()}),this._updateCamera()}_notifyObservers(e,t,i){e.skipOnPointerObservable||(this.utilityLayerScene.onPointerObservable.notifyObservers(new C4(e.type,e.event,t),e.type),this._lastPointerEvents[i.pointerId]=!0)}render(){if(this._updateCamera(),this.utilityLayerScene.activeCamera){const e=this.utilityLayerScene.activeCamera.getScene(),t=this.utilityLayerScene.activeCamera;t._scene=this.utilityLayerScene,t.leftCamera&&(t.leftCamera._scene=this.utilityLayerScene),t.rightCamera&&(t.rightCamera._scene=this.utilityLayerScene),this.utilityLayerScene.render(!1),t._scene=e,t.leftCamera&&(t.leftCamera._scene=e),t.rightCamera&&(t.rightCamera._scene=e)}}dispose(){this.onPointerOutObservable.clear(),this._afterRenderObserver&&this.originalScene.onAfterCameraRenderObservable.remove(this._afterRenderObserver),this._sceneDisposeObserver&&this.originalScene.onDisposeObservable.remove(this._sceneDisposeObserver),this._originalPointerObserver&&this.originalScene.onPrePointerObservable.remove(this._originalPointerObserver),this.utilityLayerScene.dispose()}_updateCamera(){this.utilityLayerScene.cameraToUseForPointers=this.getRenderCamera(),this.utilityLayerScene.activeCamera=this.getRenderCamera()}}Dr._DefaultUtilityLayer=null,Dr._DefaultKeepDepthUtilityLayer=null;var vQ;(function(a){a[a.Origin=0]="Origin",a[a.Pivot=1]="Pivot"})(vQ||(vQ={}));var AQ;(function(a){a[a.World=0]="World",a[a.Local=1]="Local"})(AQ||(AQ={}));class Ba{set scaleRatio(e){this._scaleRatio=e}get scaleRatio(){return this._scaleRatio}get isHovered(){return this._isHovered}get attachedMesh(){return this._attachedMesh}set attachedMesh(e){this._attachedMesh=e,e&&(this._attachedNode=e),this._rootMesh.setEnabled(!!e),this._attachedNodeChanged(e)}get attachedNode(){return this._attachedNode}set attachedNode(e){this._attachedNode=e,this._attachedMesh=null,this._rootMesh.setEnabled(!!e),this._attachedNodeChanged(e)}setCustomMesh(e){if(e.getScene()!=this.gizmoLayer.utilityLayerScene)throw"When setting a custom mesh on a gizmo, the custom meshes scene must be the same as the gizmos (eg. gizmo.gizmoLayer.utilityLayerScene)";this._rootMesh.getChildMeshes().forEach(t=>{t.dispose()}),e.parent=this._rootMesh,this._customMeshSet=!0}get additionalTransformNode(){return this._additionalTransformNode}set additionalTransformNode(e){this._additionalTransformNode=e}set updateGizmoRotationToMatchAttachedMesh(e){this._updateGizmoRotationToMatchAttachedMesh=e}get updateGizmoRotationToMatchAttachedMesh(){return this._updateGizmoRotationToMatchAttachedMesh}set updateGizmoPositionToMatchAttachedMesh(e){this._updateGizmoPositionToMatchAttachedMesh=e}get updateGizmoPositionToMatchAttachedMesh(){return this._updateGizmoPositionToMatchAttachedMesh}set anchorPoint(e){this._anchorPoint=e}get anchorPoint(){return this._anchorPoint}set coordinatesMode(e){this._coordinatesMode=e;const t=e==1;this.updateGizmoRotationToMatchAttachedMesh=t,this.updateGizmoPositionToMatchAttachedMesh=!0}get coordinatesMode(){return this._coordinatesMode}set updateScale(e){this._updateScale=e}get updateScale(){return this._updateScale}_attachedNodeChanged(e){}constructor(e=Dr.DefaultUtilityLayer){this.gizmoLayer=e,this._attachedMesh=null,this._attachedNode=null,this._customRotationQuaternion=null,this._scaleRatio=1,this._isHovered=!1,this._customMeshSet=!1,this._updateGizmoRotationToMatchAttachedMesh=!0,this._updateGizmoPositionToMatchAttachedMesh=!0,this._anchorPoint=0,this._updateScale=!0,this._coordinatesMode=1,this._interactionsEnabled=!0,this._rightHandtoLeftHandMatrix=me.RotationY(Math.PI),this._rootMesh=new Ne("gizmoRootNode",e.utilityLayerScene),this._rootMesh.rotationQuaternion=Re.Identity(),this._beforeRenderObserver=this.gizmoLayer.utilityLayerScene.onBeforeRenderObservable.add(()=>{this._update()})}get customRotationQuaternion(){return this._customRotationQuaternion}set customRotationQuaternion(e){this._customRotationQuaternion=e}_update(){if(this.attachedNode){let e=this.attachedNode;if(this.attachedMesh&&(e=this.attachedMesh||this.attachedNode),this.updateGizmoPositionToMatchAttachedMesh)if(this.anchorPoint==1&&e.getAbsolutePivotPoint){const t=e.getAbsolutePivotPoint();this._rootMesh.position.copyFrom(t)}else{const t=e.getWorldMatrix().getRow(3),i=t?t.toVector3():new P(0,0,0);this._rootMesh.position.copyFrom(i)}if(this.updateGizmoRotationToMatchAttachedMesh){const i=e._isMesh||e.getClassName()==="AbstractMesh"||e.getClassName()==="TransformNode"||e.getClassName()==="InstancedMesh"?e:void 0;e.getWorldMatrix().decompose(void 0,this._rootMesh.rotationQuaternion,void 0,Ba.PreserveScaling?i:void 0),this._rootMesh.rotationQuaternion.normalize()}else this._customRotationQuaternion?this._rootMesh.rotationQuaternion.copyFrom(this._customRotationQuaternion):this._rootMesh.rotationQuaternion.set(0,0,0,1);if(this.updateScale){const t=this.gizmoLayer.utilityLayerScene.activeCamera,i=t.globalPosition;this._rootMesh.position.subtractToRef(i,ae.Vector3[0]);let s=this.scaleRatio;if(t.mode==_i.ORTHOGRAPHIC_CAMERA){if(t.orthoTop&&t.orthoBottom){const r=t.orthoTop-t.orthoBottom;s*=r}}else{const r=t.getScene().useRightHandedSystem?P.RightHandedForwardReadOnly:P.LeftHandedForwardReadOnly,n=t.getDirection(r);s*=P.Dot(ae.Vector3[0],n)}this._rootMesh.scaling.setAll(s),e._getWorldMatrixDeterminant()<0&&!Ba.PreserveScaling&&(this._rootMesh.scaling.y*=-1)}else this._rootMesh.scaling.setAll(this.scaleRatio)}this.additionalTransformNode&&(this._rootMesh.computeWorldMatrix(!0),this._rootMesh.getWorldMatrix().multiplyToRef(this.additionalTransformNode.getWorldMatrix(),ae.Matrix[0]),ae.Matrix[0].decompose(this._rootMesh.scaling,this._rootMesh.rotationQuaternion,this._rootMesh.position))}_handlePivotMatrixInverse(e,t,i){if(e.isUsingPivotMatrix()&&!e.isUsingPostMultiplyPivotMatrix()){e.getPivotMatrix().invertToRef(ae.Matrix[5]),ae.Matrix[5].multiplyToRef(t,i);return}i.copyFrom(t)}_matrixChanged(){if(this._attachedNode)if(this._attachedNode._isCamera){const e=this._attachedNode;let t,i;if(e.parent){const r=ae.Matrix[1];e.parent._worldMatrix.invertToRef(r),this._attachedNode._worldMatrix.multiplyToRef(r,ae.Matrix[0]),t=ae.Matrix[0]}else t=this._attachedNode._worldMatrix;if(e.getScene().useRightHandedSystem?(this._rightHandtoLeftHandMatrix.multiplyToRef(t,ae.Matrix[1]),i=ae.Matrix[1]):i=t,i.decompose(ae.Vector3[1],ae.Quaternion[0],ae.Vector3[0]),this._attachedNode.getClassName()==="FreeCamera"||this._attachedNode.getClassName()==="FlyCamera"||this._attachedNode.getClassName()==="ArcFollowCamera"||this._attachedNode.getClassName()==="TargetCamera"||this._attachedNode.getClassName()==="TouchCamera"||this._attachedNode.getClassName()==="UniversalCamera"){const r=this._attachedNode;r.rotation=ae.Quaternion[0].toEulerAngles(),r.rotationQuaternion&&(r.rotationQuaternion.copyFrom(ae.Quaternion[0]),r.rotationQuaternion.normalize())}e.position.copyFrom(ae.Vector3[0])}else if(this._attachedNode._isMesh||this._attachedNode.getClassName()==="AbstractMesh"||this._attachedNode.getClassName()==="TransformNode"||this._attachedNode.getClassName()==="InstancedMesh"){const e=this._attachedNode;if(e.parent){const t=ae.Matrix[0],i=ae.Matrix[1];e.parent.getWorldMatrix().invertToRef(t),this._attachedNode.getWorldMatrix().multiplyToRef(t,i);const s=ae.Matrix[4];if(this._handlePivotMatrixInverse(e,i,s),s.decompose(ae.Vector3[0],ae.Quaternion[0],e.position,Ba.PreserveScaling?e:void 0,Ba.UseAbsoluteScaling),ae.Quaternion[0].normalize(),e.isUsingPivotMatrix()){const r=ae.Quaternion[1];Re.RotationYawPitchRollToRef(e.rotation.y,e.rotation.x,e.rotation.z,r);const n=ae.Matrix[2];me.ScalingToRef(e.scaling.x,e.scaling.y,e.scaling.z,n);const o=ae.Matrix[2];r.toRotationMatrix(o);const l=e.getPivotMatrix(),c=ae.Matrix[3];l.invertToRef(c),l.multiplyToRef(n,ae.Matrix[4]),ae.Matrix[4].multiplyToRef(o,ae.Matrix[5]),ae.Matrix[5].multiplyToRef(c,ae.Matrix[6]),ae.Matrix[6].getTranslationToRef(ae.Vector3[1]),e.position.subtractInPlace(ae.Vector3[1])}}else{const t=ae.Matrix[4];this._handlePivotMatrixInverse(e,this._attachedNode._worldMatrix,t),t.decompose(ae.Vector3[0],ae.Quaternion[0],e.position,Ba.PreserveScaling?e:void 0,Ba.UseAbsoluteScaling)}ae.Vector3[0].scaleInPlace(1/e.scalingDeterminant),e.scaling.copyFrom(ae.Vector3[0]),e.billboardMode||(e.rotationQuaternion?(e.rotationQuaternion.copyFrom(ae.Quaternion[0]),e.rotationQuaternion.normalize()):e.rotation=ae.Quaternion[0].toEulerAngles())}else if(this._attachedNode.getClassName()==="Bone"){const e=this._attachedNode,t=e.getParent();if(t){const i=ae.Matrix[0],s=ae.Matrix[1];t.getFinalMatrix().invertToRef(i),e.getFinalMatrix().multiplyToRef(i,s),e.getLocalMatrix().copyFrom(s)}else e.getLocalMatrix().copyFrom(e.getFinalMatrix());e.markAsDirty()}else{const e=this._attachedNode;if(e.getTypeID){const t=e.getTypeID();if(t===vs.LIGHTTYPEID_DIRECTIONALLIGHT||t===vs.LIGHTTYPEID_SPOTLIGHT||t===vs.LIGHTTYPEID_POINTLIGHT){const i=e.parent;if(i){const s=ae.Matrix[0],r=ae.Matrix[1];i.getWorldMatrix().invertToRef(s),e.getWorldMatrix().multiplyToRef(s,r),r.decompose(void 0,ae.Quaternion[0],ae.Vector3[0])}else this._attachedNode._worldMatrix.decompose(void 0,ae.Quaternion[0],ae.Vector3[0]);e.position=new P(ae.Vector3[0].x,ae.Vector3[0].y,ae.Vector3[0].z),e.direction&&(e.direction=new P(e.direction.x,e.direction.y,e.direction.z))}}}}_setGizmoMeshMaterial(e,t){e&&e.forEach(i=>{i.material=t,i.color&&(i.color=t.diffuseColor)})}static GizmoAxisPointerObserver(e,t){let i=!1,s=-1,r=!1;return e.utilityLayerScene.onPointerObservable.add(o=>{var l,c;if(o.pickInfo){if(r=i&&o.event.button!==-1&&o.event.button!==s,r||o.type===Xt.POINTERUP)t.forEach(u=>{u.active=!1,i=!1,s=-1,u.gizmoMeshes.forEach(f=>{f.material=u.dragBehavior.enabled?u.material:u.disableMaterial,f.color&&(f.color=u.material.diffuseColor)})});else if(o.type===Xt.POINTERMOVE){if(i)return;t.forEach(u=>{var f,p;if(u.colliderMeshes&&u.gizmoMeshes){const m=((p=u.colliderMeshes)==null?void 0:p.indexOf((f=o==null?void 0:o.pickInfo)==null?void 0:f.pickedMesh))!=-1,_=u.dragBehavior.enabled?m||u.active?u.hoverMaterial:u.material:u.disableMaterial;u.gizmoMeshes.forEach(d=>{d.material=_,d.color&&(d.color=_.diffuseColor)})}})}else if(o.type===Xt.POINTERDOWN&&t.has((l=o.pickInfo.pickedMesh)==null?void 0:l.parent)){i=!0,s=o.event.button;const u=t.get((c=o.pickInfo.pickedMesh)==null?void 0:c.parent);u.active=!0,t.forEach(f=>{var _,d;const m=(((d=f.colliderMeshes)==null?void 0:d.indexOf((_=o==null?void 0:o.pickInfo)==null?void 0:_.pickedMesh))!=-1||f.active)&&f.dragBehavior.enabled?f.hoverMaterial:f.disableMaterial;f.gizmoMeshes.forEach(h=>{h.material=m,h.color&&(h.color=m.diffuseColor)})})}}})}dispose(){this._rootMesh.dispose(),this._beforeRenderObserver&&this.gizmoLayer.utilityLayerScene.onBeforeRenderObservable.remove(this._beforeRenderObserver)}}Ba.PreserveScaling=!1,Ba.UseAbsoluteScaling=!0;class E4 extends Ba{get coloredMaterial(){return this._coloredMaterial}get hoverMaterial(){return this._hoverMaterial}get disableMaterial(){return this._disableMaterial}static _CreateArrow(e,t,i=1,s=!1){const r=new Si("arrow",e),n=e1("cylinder",{diameterTop:0,height:.075,diameterBottom:.0375*(1+(i-1)/4),tessellation:96},e),o=e1("cylinder",{diameterTop:.005*i,height:.275,diameterBottom:.005*i,tessellation:96},e);return n.parent=r,n.material=t,n.rotation.x=Math.PI/2,n.position.z+=.3,o.parent=r,o.material=t,o.position.z+=.275/2,o.rotation.x=Math.PI/2,s&&(o.visibility=0,n.visibility=0),r}static _CreateArrowInstance(e,t){const i=new Si("arrow",e);for(const s of t.getChildMeshes()){const r=s.createInstance(s.name);r.parent=i}return i}constructor(e,t=Pe.Gray(),i=Dr.DefaultUtilityLayer,s=null,r=1,n=Pe.Yellow(),o=Pe.Gray()){var _;super(i),this._pointerObserver=null,this.snapDistance=0,this.onSnapObservable=new xe,this._isEnabled=!0,this._parent=null,this._dragging=!1,this._parent=s,this._coloredMaterial=new Bt("",i.utilityLayerScene),this._coloredMaterial.diffuseColor=t,this._coloredMaterial.specularColor=t.subtract(new Pe(.1,.1,.1)),this._hoverMaterial=new Bt("",i.utilityLayerScene),this._hoverMaterial.diffuseColor=n,this._disableMaterial=new Bt("",i.utilityLayerScene),this._disableMaterial.diffuseColor=o,this._disableMaterial.alpha=.4;const l=E4._CreateArrow(i.utilityLayerScene,this._coloredMaterial,r),c=E4._CreateArrow(i.utilityLayerScene,this._coloredMaterial,r+4,!0);this._gizmoMesh=new Ne("",i.utilityLayerScene),this._gizmoMesh.addChild(l),this._gizmoMesh.addChild(c),this._gizmoMesh.lookAt(this._rootMesh.position.add(e)),this._gizmoMesh.scaling.scaleInPlace(1/3),this._gizmoMesh.parent=this._rootMesh;let u=0;const f={snapDistance:0};this.dragBehavior=new Nl({dragAxis:e}),this.dragBehavior.moveAttached=!1,this.dragBehavior.updateDragPlane=!1,this._rootMesh.addBehavior(this.dragBehavior),this.dragBehavior.onDragObservable.add(d=>{if(this.attachedNode){let h=!1;if(this.snapDistance==0)this.attachedNode.getWorldMatrix().getTranslationToRef(ae.Vector3[2]),ae.Vector3[2].addInPlace(d.delta),this.dragBehavior.validateDrag(ae.Vector3[2])&&(this.attachedNode.position&&this.attachedNode.position.addInPlaceFromFloats(d.delta.x,d.delta.y,d.delta.z),this.attachedNode.getWorldMatrix().addTranslationFromFloats(d.delta.x,d.delta.y,d.delta.z),this.attachedNode.updateCache(),h=!0);else if(u+=d.dragDistance,Math.abs(u)>this.snapDistance){const x=Math.floor(Math.abs(u)/this.snapDistance);u=u%this.snapDistance,d.delta.normalizeToRef(ae.Vector3[1]),ae.Vector3[1].scaleInPlace(this.snapDistance*x),this.attachedNode.getWorldMatrix().getTranslationToRef(ae.Vector3[2]),ae.Vector3[2].addInPlace(ae.Vector3[1]),this.dragBehavior.validateDrag(ae.Vector3[2])&&(this.attachedNode.getWorldMatrix().addTranslationFromFloats(ae.Vector3[1].x,ae.Vector3[1].y,ae.Vector3[1].z),this.attachedNode.updateCache(),f.snapDistance=this.snapDistance*x*Math.sign(u),this.onSnapObservable.notifyObservers(f),h=!0)}h&&this._matrixChanged()}}),this.dragBehavior.onDragStartObservable.add(()=>{this._dragging=!0}),this.dragBehavior.onDragEndObservable.add(()=>{this._dragging=!1});const p=i._getSharedGizmoLight();p.includedOnlyMeshes=p.includedOnlyMeshes.concat(this._rootMesh.getChildMeshes(!1));const m={gizmoMeshes:l.getChildMeshes(),colliderMeshes:c.getChildMeshes(),material:this._coloredMaterial,hoverMaterial:this._hoverMaterial,disableMaterial:this._disableMaterial,active:!1,dragBehavior:this.dragBehavior};(_=this._parent)==null||_.addToAxisCache(c,m),this._pointerObserver=i.utilityLayerScene.onPointerObservable.add(d=>{var h;if(!this._customMeshSet&&(this._isHovered=m.colliderMeshes.indexOf((h=d==null?void 0:d.pickInfo)==null?void 0:h.pickedMesh)!=-1,!this._parent)){const x=this.dragBehavior.enabled?this._isHovered||this._dragging?this._hoverMaterial:this._coloredMaterial:this._disableMaterial;this._setGizmoMeshMaterial(m.gizmoMeshes,x)}}),this.dragBehavior.onEnabledObservable.add(d=>{this._setGizmoMeshMaterial(m.gizmoMeshes,d?m.material:m.disableMaterial)})}_attachedNodeChanged(e){this.dragBehavior&&(this.dragBehavior.enabled=!!e)}set isEnabled(e){this._isEnabled=e,e?this._parent&&(this.attachedMesh=this._parent.attachedMesh,this.attachedNode=this._parent.attachedNode):(this.attachedMesh=null,this.attachedNode=null)}get isEnabled(){return this._isEnabled}dispose(){this.onSnapObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.dragBehavior.detach(),this._gizmoMesh&&this._gizmoMesh.dispose(),[this._coloredMaterial,this._hoverMaterial,this._disableMaterial].forEach(e=>{e&&e.dispose()}),super.dispose()}}class zy{get scaleLines(){return this._scaleLines}set scaleLines(e){this._scaleLines=e,this._xAxis.scaling.setAll(this._scaleLines*this._scaleLinesFactor),this._yAxis.scaling.setAll(this._scaleLines*this._scaleLinesFactor),this._zAxis.scaling.setAll(this._scaleLines*this._scaleLinesFactor)}get xAxis(){return this._xAxis}get yAxis(){return this._yAxis}get zAxis(){return this._zAxis}constructor(e,t=1,i=2,s,r,n,o=1){if(this._scaleLinesFactor=4,this._instanced=!1,this.scene=null,this._scaleLines=1,e=e||ei.LastCreatedScene,!!e){if(!s){const l=new Bt("xAxisMaterial",e);l.disableLighting=!0,l.emissiveColor=Pe.Red().scale(.5),s=E4._CreateArrow(e,l,o)}if(!r){const l=new Bt("yAxisMaterial",e);l.disableLighting=!0,l.emissiveColor=Pe.Green().scale(.5),r=E4._CreateArrow(e,l,o)}if(!n){const l=new Bt("zAxisMaterial",e);l.disableLighting=!0,l.emissiveColor=Pe.Blue().scale(.5),n=E4._CreateArrow(e,l,o)}this._xAxis=s,this._yAxis=r,this._zAxis=n,this.scaleLines=t,i!=null&&(zy._SetRenderingGroupId(this._xAxis,i),zy._SetRenderingGroupId(this._yAxis,i),zy._SetRenderingGroupId(this._zAxis,i)),this.scene=e,this.update(new P,P.Right(),P.Up(),P.Forward())}}update(e,t,i,s){this._xAxis.position.copyFrom(e),this._xAxis.setDirection(t),this._yAxis.position.copyFrom(e),this._yAxis.setDirection(i),this._zAxis.position.copyFrom(e),this._zAxis.setDirection(s)}createInstance(){const e=E4._CreateArrowInstance(this.scene,this._xAxis),t=E4._CreateArrowInstance(this.scene,this._yAxis),i=E4._CreateArrowInstance(this.scene,this._zAxis),s=new zy(this.scene,this.scaleLines,null,e,t,i);return s._instanced=!0,s}dispose(){this._xAxis&&this._xAxis.dispose(!1,!this._instanced),this._yAxis&&this._yAxis.dispose(!1,!this._instanced),this._zAxis&&this._zAxis.dispose(!1,!this._instanced),this.scene=null}static _SetRenderingGroupId(e,t){e.getChildMeshes().forEach(i=>{i.renderingGroupId=t})}}class Ewe extends zy{constructor(e,t,i,s=1){super(e,s),this.pos=P.Zero(),this.xaxis=P.Zero(),this.yaxis=P.Zero(),this.zaxis=P.Zero(),this.mesh=i,this.bone=t}update(){if(!this.mesh||!this.bone)return;const e=this.bone;e.getAbsolutePositionToRef(this.mesh,this.pos),e.getDirectionToRef(fo.X,this.mesh,this.xaxis),e.getDirectionToRef(fo.Y,this.mesh,this.yaxis),e.getDirectionToRef(fo.Z,this.mesh,this.zaxis),super.update(this.pos,this.xaxis,this.yaxis,this.zaxis)}dispose(){this.mesh&&(this.mesh=null,this.bone=null,super.dispose())}}Object.defineProperty(ui.prototype,"debugLayer",{get:function(){return this._debugLayer||(this._debugLayer=new JT(this)),this._debugLayer},enumerable:!0,configurable:!0});var lH;(function(a){a[a.Properties=0]="Properties",a[a.Debug=1]="Debug",a[a.Statistics=2]="Statistics",a[a.Tools=3]="Tools",a[a.Settings=4]="Settings"})(lH||(lH={}));class JT{get onPropertyChangedObservable(){return this.BJSINSPECTOR&&this.BJSINSPECTOR.Inspector?this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable:(this._onPropertyChangedObservable||(this._onPropertyChangedObservable=new xe),this._onPropertyChangedObservable)}get onSelectionChangedObservable(){return this.BJSINSPECTOR&&this.BJSINSPECTOR.Inspector?this.BJSINSPECTOR.Inspector.OnSelectionChangeObservable:(this._onSelectionChangedObservable||(this._onSelectionChangedObservable=new xe),this._onSelectionChangedObservable)}constructor(e){this.BJSINSPECTOR=this._getGlobalInspector(),this._scene=e||ei.LastCreatedScene,this._scene&&this._scene.onDisposeObservable.add(()=>{this._scene._debugLayer&&this._scene._debugLayer.hide()})}_createInspector(e){if(this.isVisible())return;if(this._onPropertyChangedObservable){for(const i of this._onPropertyChangedObservable.observers)this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable.add(i);this._onPropertyChangedObservable.clear(),this._onPropertyChangedObservable=void 0}if(this._onSelectionChangedObservable){for(const i of this._onSelectionChangedObservable.observers)this.BJSINSPECTOR.Inspector.OnSelectionChangedObservable.add(i);this._onSelectionChangedObservable.clear(),this._onSelectionChangedObservable=void 0}const t={...JT.Config,...e};this.BJSINSPECTOR=this.BJSINSPECTOR||this._getGlobalInspector(),this.BJSINSPECTOR.Inspector.Show(this._scene,t)}select(e,t){this.BJSINSPECTOR&&(t&&(Object.prototype.toString.call(t)=="[object String]"?this.BJSINSPECTOR.Inspector.MarkLineContainerTitleForHighlighting(t):this.BJSINSPECTOR.Inspector.MarkMultipleLineContainerTitlesForHighlighting(t)),this.BJSINSPECTOR.Inspector.OnSelectionChangeObservable.notifyObservers(e))}_getGlobalInspector(){if(typeof INSPECTOR<"u")return INSPECTOR;if(typeof BABYLON<"u"&&typeof BABYLON.Inspector<"u")return BABYLON}isVisible(){return this.BJSINSPECTOR&&this.BJSINSPECTOR.Inspector.IsVisible}hide(){this.BJSINSPECTOR&&this.BJSINSPECTOR.Inspector.Hide()}get openedPanes(){return this.BJSINSPECTOR?this.BJSINSPECTOR.Inspector._OpenedPane:0}setAsActiveScene(){this.BJSINSPECTOR&&this.BJSINSPECTOR.Inspector._SetNewScene(this._scene)}popupSceneExplorer(){this.BJSINSPECTOR&&this.BJSINSPECTOR.Inspector.PopupSceneExplorer()}popupInspector(){this.BJSINSPECTOR&&this.BJSINSPECTOR.Inspector.PopupInspector()}popupEmbed(){this.BJSINSPECTOR&&this.BJSINSPECTOR.Inspector.PopupEmbed()}show(e){return new Promise(t=>{if(typeof this.BJSINSPECTOR>"u"){const i=e&&e.inspectorURL?e.inspectorURL:JT.InspectorURL;Le.LoadBabylonScript(i,()=>{this._createInspector(e),t(this)})}else this._createInspector(e),t(this)})}}JT.InspectorURL=`${Le._DefaultCdnUrl}/v${dt.Version}/inspector/babylon.inspector.bundle.js`,JT.Config={overlay:!1,showExplorer:!0,showInspector:!0,embedMode:!1,handleResize:!0,enablePopup:!0};const Twe=Object.freeze(Object.defineProperty({__proto__:null,DebugLayer:JT,get DebugLayerTab(){return lH}},Symbol.toStringTag,{value:"Module"}));class cn{constructor(e,t){this.type=e,this.jointData=t,t.nativeParams=t.nativeParams||{}}get physicsJoint(){return this._physicsJoint}set physicsJoint(e){this._physicsJoint=e}set physicsPlugin(e){this._physicsPlugin=e}executeNativeFunction(e){e(this._physicsPlugin.world,this._physicsJoint)}}cn.DistanceJoint=0,cn.HingeJoint=1,cn.BallAndSocketJoint=2,cn.WheelJoint=3,cn.SliderJoint=4,cn.PrismaticJoint=5,cn.UniversalJoint=6,cn.Hinge2Joint=cn.WheelJoint,cn.PointToPointJoint=8,cn.SpringJoint=9,cn.LockJoint=10;class Lwe extends cn{constructor(e){super(cn.DistanceJoint,e)}updateDistance(e,t){this._physicsPlugin.updateDistanceJoint(this,e,t)}}class CQ extends cn{constructor(e,t){super(e,t)}setMotor(e,t){this._physicsPlugin.setMotor(this,e||0,t)}setLimit(e,t){this._physicsPlugin.setLimit(this,e,t)}}class Iwe extends CQ{constructor(e){super(cn.HingeJoint,e)}setMotor(e,t){this._physicsPlugin.setMotor(this,e||0,t)}setLimit(e,t){this._physicsPlugin.setLimit(this,e,t)}}class Pwe extends CQ{constructor(e){super(cn.Hinge2Joint,e)}setMotor(e,t,i=0){this._physicsPlugin.setMotor(this,e||0,t,i)}setLimit(e,t,i=0){this._physicsPlugin.setLimit(this,e,t,i)}}Ne._PhysicsImpostorParser=function(a,e,t){return new $i(e,t.physicsImpostor,{mass:t.physicsMass,friction:t.physicsFriction,restitution:t.physicsRestitution},a)};class $i{get isDisposed(){return this._isDisposed}get mass(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getBodyMass(this):0}set mass(e){this.setMass(e)}get friction(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getBodyFriction(this):0}set friction(e){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setBodyFriction(this,e)}get restitution(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getBodyRestitution(this):0}set restitution(e){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setBodyRestitution(this,e)}get pressure(){if(!this._physicsEngine)return 0;const e=this._physicsEngine.getPhysicsPlugin();return e.setBodyPressure?e.getBodyPressure(this):0}set pressure(e){if(!this._physicsEngine)return;const t=this._physicsEngine.getPhysicsPlugin();t.setBodyPressure&&t.setBodyPressure(this,e)}get stiffness(){if(!this._physicsEngine)return 0;const e=this._physicsEngine.getPhysicsPlugin();return e.getBodyStiffness?e.getBodyStiffness(this):0}set stiffness(e){if(!this._physicsEngine)return;const t=this._physicsEngine.getPhysicsPlugin();t.setBodyStiffness&&t.setBodyStiffness(this,e)}get velocityIterations(){if(!this._physicsEngine)return 0;const e=this._physicsEngine.getPhysicsPlugin();return e.getBodyVelocityIterations?e.getBodyVelocityIterations(this):0}set velocityIterations(e){if(!this._physicsEngine)return;const t=this._physicsEngine.getPhysicsPlugin();t.setBodyVelocityIterations&&t.setBodyVelocityIterations(this,e)}get positionIterations(){if(!this._physicsEngine)return 0;const e=this._physicsEngine.getPhysicsPlugin();return e.getBodyPositionIterations?e.getBodyPositionIterations(this):0}set positionIterations(e){if(!this._physicsEngine)return;const t=this._physicsEngine.getPhysicsPlugin();t.setBodyPositionIterations&&t.setBodyPositionIterations(this,e)}constructor(e,t,i={mass:0},s){if(this.object=e,this.type=t,this._options=i,this._scene=s,this._pluginData={},this._bodyUpdateRequired=!1,this._onBeforePhysicsStepCallbacks=new Array,this._onAfterPhysicsStepCallbacks=new Array,this._onPhysicsCollideCallbacks=[],this._deltaPosition=P.Zero(),this._isDisposed=!1,this.soft=!1,this.segments=0,this._tmpQuat=new Re,this._tmpQuat2=new Re,this.beforeStep=()=>{this._physicsEngine&&(this.object.translate(this._deltaPosition,-1),this._deltaRotationConjugated&&this.object.rotationQuaternion&&this.object.rotationQuaternion.multiplyToRef(this._deltaRotationConjugated,this.object.rotationQuaternion),this.object.computeWorldMatrix(!1),this.object.parent&&this.object.rotationQuaternion?(this.getParentsRotation(),this._tmpQuat.multiplyToRef(this.object.rotationQuaternion,this._tmpQuat)):this._tmpQuat.copyFrom(this.object.rotationQuaternion||new Re),this._options.disableBidirectionalTransformation||this.object.rotationQuaternion&&this._physicsEngine.getPhysicsPlugin().setPhysicsBodyTransformation(this,this.object.getAbsolutePosition(),this._tmpQuat),this._onBeforePhysicsStepCallbacks.forEach(r=>{r(this)}))},this.afterStep=()=>{this._physicsEngine&&(this._onAfterPhysicsStepCallbacks.forEach(r=>{r(this)}),this._physicsEngine.getPhysicsPlugin().setTransformationFromPhysicsBody(this),this.object.parent&&this.object.rotationQuaternion&&(this.getParentsRotation(),this._tmpQuat.conjugateInPlace(),this._tmpQuat.multiplyToRef(this.object.rotationQuaternion,this.object.rotationQuaternion)),this.object.setAbsolutePosition(this.object.position),this._deltaRotation?(this.object.rotationQuaternion&&this.object.rotationQuaternion.multiplyToRef(this._deltaRotation,this.object.rotationQuaternion),this._deltaPosition.applyRotationQuaternionToRef(this._deltaRotation,$i._TmpVecs[0]),this.object.translate($i._TmpVecs[0],1)):this.object.translate(this._deltaPosition,1),this.object.computeWorldMatrix(!0))},this.onCollideEvent=null,this.onCollide=r=>{if(!this._onPhysicsCollideCallbacks.length&&!this.onCollideEvent||!this._physicsEngine)return;const n=this._physicsEngine.getImpostorWithPhysicsBody(r.body);n&&(this.onCollideEvent&&this.onCollideEvent(this,n),this._onPhysicsCollideCallbacks.filter(o=>o.otherImpostors.indexOf(n)!==-1).forEach(o=>{o.callback(this,n,r.point,r.distance,r.impulse,r.normal)}))},!this.object){de.Error("No object was provided. A physics object is obligatory");return}this.object.parent&&i.mass!==0&&de.Warn("A physics impostor has been created for an object which has a parent. Babylon physics currently works in local space so unexpected issues may occur."),!this._scene&&e.getScene&&(this._scene=e.getScene()),this._scene&&(this.type>100&&(this.soft=!0),this._physicsEngine=this._scene.getPhysicsEngine(),this._physicsEngine?(this.object.rotationQuaternion||(this.object.rotation?this.object.rotationQuaternion=Re.RotationYawPitchRoll(this.object.rotation.y,this.object.rotation.x,this.object.rotation.z):this.object.rotationQuaternion=new Re),this._options.mass=i.mass===void 0?0:i.mass,this._options.friction=i.friction===void 0?.2:i.friction,this._options.restitution=i.restitution===void 0?.2:i.restitution,this.soft&&(this._options.mass=this._options.mass>0?this._options.mass:1,this._options.pressure=i.pressure===void 0?200:i.pressure,this._options.stiffness=i.stiffness===void 0?1:i.stiffness,this._options.velocityIterations=i.velocityIterations===void 0?20:i.velocityIterations,this._options.positionIterations=i.positionIterations===void 0?20:i.positionIterations,this._options.fixedPoints=i.fixedPoints===void 0?0:i.fixedPoints,this._options.margin=i.margin===void 0?0:i.margin,this._options.damping=i.damping===void 0?0:i.damping,this._options.path=i.path===void 0?null:i.path,this._options.shape=i.shape===void 0?null:i.shape),this._joints=[],!this.object.parent||this._options.ignoreParent?this._init():this.object.parent.physicsImpostor&&de.Warn("You must affect impostors to children before affecting impostor to parent.")):de.Error("Physics not enabled. Please use scene.enablePhysics(...) before creating impostors."))}_init(){this._physicsEngine&&(this._physicsEngine.removeImpostor(this),this.physicsBody=null,this._parent=this._parent||this._getPhysicsParent(),!this._isDisposed&&(!this.parent||this._options.ignoreParent)&&this._physicsEngine.addImpostor(this))}_getPhysicsParent(){return this.object.parent instanceof cr?this.object.parent.physicsImpostor:null}isBodyInitRequired(){return this._bodyUpdateRequired||!this._physicsBody&&(!this._parent||!!this._options.ignoreParent)}setScalingUpdated(){this.forceUpdate()}forceUpdate(){this._init(),this.parent&&!this._options.ignoreParent&&this.parent.forceUpdate()}get physicsBody(){return this._parent&&!this._options.ignoreParent?this._parent.physicsBody:this._physicsBody}get parent(){return!this._options.ignoreParent&&this._parent?this._parent:null}set parent(e){this._parent=e}set physicsBody(e){this._physicsBody&&this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().removePhysicsBody(this),this._physicsBody=e,this.resetUpdateFlags()}resetUpdateFlags(){this._bodyUpdateRequired=!1}getObjectExtents(){if(this.object.getBoundingInfo){const e=this.object.rotationQuaternion,t=this.object.scaling.clone();this.object.rotationQuaternion=$i.IDENTITY_QUATERNION;const i=this.object.computeWorldMatrix&&this.object.computeWorldMatrix(!0);i&&i.decompose(t,void 0,void 0);const r=this.object.getBoundingInfo().boundingBox.extendSize.scale(2).multiplyInPlace(t);return r.x=Math.abs(r.x),r.y=Math.abs(r.y),r.z=Math.abs(r.z),this.object.rotationQuaternion=e,this.object.computeWorldMatrix&&this.object.computeWorldMatrix(!0),r}else return $i.DEFAULT_OBJECT_SIZE}getObjectCenter(){return this.object.getBoundingInfo?this.object.getBoundingInfo().boundingBox.centerWorld:this.object.position}getParam(e){return this._options[e]}setParam(e,t){this._options[e]=t,this._bodyUpdateRequired=!0}setMass(e){this.getParam("mass")!==e&&this.setParam("mass",e),this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setBodyMass(this,e)}getLinearVelocity(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getLinearVelocity(this):P.Zero()}setLinearVelocity(e){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setLinearVelocity(this,e)}getAngularVelocity(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getAngularVelocity(this):P.Zero()}setAngularVelocity(e){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setAngularVelocity(this,e)}executeNativeFunction(e){this._physicsEngine&&e(this._physicsEngine.getPhysicsPlugin().world,this.physicsBody)}registerBeforePhysicsStep(e){this._onBeforePhysicsStepCallbacks.push(e)}unregisterBeforePhysicsStep(e){const t=this._onBeforePhysicsStepCallbacks.indexOf(e);t>-1?this._onBeforePhysicsStepCallbacks.splice(t,1):de.Warn("Function to remove was not found")}registerAfterPhysicsStep(e){this._onAfterPhysicsStepCallbacks.push(e)}unregisterAfterPhysicsStep(e){const t=this._onAfterPhysicsStepCallbacks.indexOf(e);t>-1?this._onAfterPhysicsStepCallbacks.splice(t,1):de.Warn("Function to remove was not found")}registerOnPhysicsCollide(e,t){const i=e instanceof Array?e:[e];this._onPhysicsCollideCallbacks.push({callback:t,otherImpostors:i})}unregisterOnPhysicsCollide(e,t){const i=e instanceof Array?e:[e];let s=-1;this._onPhysicsCollideCallbacks.some((n,o)=>{if(n.callback===t&&n.otherImpostors.length===i.length){const l=n.otherImpostors.every(c=>i.indexOf(c)>-1);return l&&(s=o),l}return!1})?this._onPhysicsCollideCallbacks.splice(s,1):de.Warn("Function to remove was not found")}getParentsRotation(){let e=this.object.parent;for(this._tmpQuat.copyFromFloats(0,0,0,1);e;)e.rotationQuaternion?this._tmpQuat2.copyFrom(e.rotationQuaternion):Re.RotationYawPitchRollToRef(e.rotation.y,e.rotation.x,e.rotation.z,this._tmpQuat2),this._tmpQuat.multiplyToRef(this._tmpQuat2,this._tmpQuat),e=e.parent;return this._tmpQuat}applyForce(e,t){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().applyForce(this,e,t),this}applyImpulse(e,t){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().applyImpulse(this,e,t),this}createJoint(e,t,i){const s=new cn(t,i);return this.addJoint(e,s),this}addJoint(e,t){return this._joints.push({otherImpostor:e,joint:t}),this._physicsEngine&&this._physicsEngine.addJoint(this,e,t),this}addAnchor(e,t,i,s,r){if(!this._physicsEngine)return this;const n=this._physicsEngine.getPhysicsPlugin();return n.appendAnchor?(this._physicsEngine&&n.appendAnchor(this,e,t,i,s,r),this):this}addHook(e,t,i,s){if(!this._physicsEngine)return this;const r=this._physicsEngine.getPhysicsPlugin();return r.appendAnchor?(this._physicsEngine&&r.appendHook(this,e,t,i,s),this):this}sleep(){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().sleepBody(this),this}wakeUp(){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().wakeUpBody(this),this}clone(e){return e?new $i(e,this.type,this._options,this._scene):null}dispose(){this._physicsEngine&&(this._joints.forEach(e=>{this._physicsEngine&&this._physicsEngine.removeJoint(this,e.otherImpostor,e.joint)}),this._physicsEngine.removeImpostor(this),this.parent&&this.parent.forceUpdate(),this._isDisposed=!0)}setDeltaPosition(e){this._deltaPosition.copyFrom(e)}setDeltaRotation(e){this._deltaRotation||(this._deltaRotation=new Re),this._deltaRotation.copyFrom(e),this._deltaRotationConjugated=this._deltaRotation.conjugate()}getBoxSizeToRef(e){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().getBoxSizeToRef(this,e),this}getRadius(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getRadius(this):0}syncBoneWithImpostor(e,t,i,s,r){const n=$i._TmpVecs[0],o=this.object;if(o.rotationQuaternion)if(r){const l=$i._TmpQuat;o.rotationQuaternion.multiplyToRef(r,l),e.setRotationQuaternion(l,1,t)}else e.setRotationQuaternion(o.rotationQuaternion,1,t);n.x=0,n.y=0,n.z=0,i&&(n.x=i.x,n.y=i.y,n.z=i.z,e.getDirectionToRef(n,t,n),s==null&&(s=i.length()),n.x*=s,n.y*=s,n.z*=s),e.getParent()?(n.addInPlace(o.getAbsolutePosition()),e.setAbsolutePosition(n,t)):(t.setAbsolutePosition(o.getAbsolutePosition()),t.position.x-=n.x,t.position.y-=n.y,t.position.z-=n.z)}syncImpostorWithBone(e,t,i,s,r,n){const o=this.object;if(o.rotationQuaternion)if(r){const u=$i._TmpQuat;e.getRotationQuaternionToRef(1,t,u),u.multiplyToRef(r,o.rotationQuaternion)}else e.getRotationQuaternionToRef(1,t,o.rotationQuaternion);const l=$i._TmpVecs[0],c=$i._TmpVecs[1];n||(n=$i._TmpVecs[2],n.x=0,n.y=1,n.z=0),e.getDirectionToRef(n,t,c),e.getAbsolutePositionToRef(t,l),s==null&&i&&(s=i.length()),s!=null&&(l.x+=c.x*s,l.y+=c.y*s,l.z+=c.z*s),o.setAbsolutePosition(l)}}$i.DEFAULT_OBJECT_SIZE=new P(1,1,1),$i.IDENTITY_QUATERNION=Re.Identity(),$i._TmpVecs=V1(3,P.Zero),$i._TmpQuat=Re.Identity(),$i.NoImpostor=0,$i.SphereImpostor=1,$i.BoxImpostor=2,$i.PlaneImpostor=3,$i.MeshImpostor=4,$i.CapsuleImpostor=6,$i.CylinderImpostor=7,$i.ParticleImpostor=8,$i.HeightmapImpostor=9,$i.ConvexHullImpostor=10,$i.CustomImpostor=100,$i.RopeImpostor=101,$i.ClothImpostor=102,$i.SoftbodyImpostor=103;class Owe{constructor(e,t){if(this._impostors=[],this._meshes=[],this._bodies=[],this._inertiaBodies=[],this._constraints=[],this._bodyMeshes=[],this._inertiaMeshes=[],this._constraintMeshes=[],this._numMeshes=0,this._numBodies=0,this._numInertiaBodies=0,this._numConstraints=0,this._debugMeshMeshes=new Array,this._constraintAxesSize=.4,this._constraintAngularSize=.4,this._scene=e||ei.LastCreatedScene,!this._scene)return;const i=this._scene.getPhysicsEngine();i&&(this._physicsEnginePlugin=i.getPhysicsPlugin()),this._utilityLayer=new Dr(this._scene,!1),this._utilityLayer.pickUtilitySceneFirst=!1,this._utilityLayer.utilityLayerScene.autoClearDepthAndStencil=!0,t&&(this._constraintAxesSize=.4*t,this._constraintAngularSize=.4*t)}_updateDebugMeshes(){const e=this._physicsEnginePlugin;(e==null?void 0:e.getPluginVersion())===1?this._updateDebugMeshesV1():this._updateDebugMeshesV2()}_updateDebugMeshesV1(){const e=this._physicsEnginePlugin;for(let t=0;t<this._numMeshes;t++){const i=this._impostors[t];if(i)if(i.isDisposed)this.hideImpostor(this._impostors[t--]);else{if(i.type===$i.MeshImpostor)continue;const s=this._meshes[t];s&&e&&e.syncMeshWithImpostor(s,i)}}}_updateDebugMeshesV2(){const e=this._physicsEnginePlugin;for(let t=0;t<this._numBodies;){const i=this._bodies[t];if(i&&i.isDisposed&&this.hideBody(i))continue;const s=this._bodyMeshes[t];i&&s&&e.syncTransform(i,s),t++}}_updateInertiaMeshes(){for(let e=0;e<this._numInertiaBodies;){const t=this._inertiaBodies[e];if(t&&t.isDisposed&&this.hideInertia(t))continue;const i=this._inertiaMeshes[e];t&&i&&this._updateDebugInertia(t,i),e++}}_updateDebugInertia(e,t){var n;const i=me.Identity(),s=me.Identity(),r=me.Identity();if(e._pluginDataInstances.length){const o=t,l=o._thinInstanceDataStorage.matrixData,c=e.transformNode._thinInstanceDataStorage.matrixData;for(let u=0;u<e._pluginDataInstances.length;u++){const f=e.getMassProperties(u);this._getMeshDebugInertiaMatrixToRef(f,i),me.FromArrayToRef(c,u*16,s),i.multiplyToRef(s,r),r.copyToArray(l,u*16)}o.thinInstanceBufferUpdated("matrix")}else{const o=e.getMassProperties();if(this._getMeshDebugInertiaMatrixToRef(o,i),(n=e.transformNode.rotationQuaternion)==null||n.toRotationMatrix(s),s.setTranslation(e.transformNode.position),e.transformNode.parent){const l=e.transformNode.parent.computeWorldMatrix(!0);s.multiplyToRef(l,s)}i.multiplyToRef(s,i),i.decomposeToTransformNode(t)}}_updateDebugConstraints(){for(let e=0;e<this._numConstraints;e++){const t=this._constraints[e],i=this._constraintMeshes[e];t&&i&&this._updateDebugConstraint(t,i[0])}}_makeScalingUnitInPlace(e){Math.abs(e.x-1)>Ii&&(e.x=1*Math.sign(e.x)),Math.abs(e.y-1)>Ii&&(e.y=1*Math.sign(e.y)),Math.abs(e.z-1)>Ii&&(e.z=1*Math.sign(e.z))}_updateDebugConstraint(e,t){if(!e._initOptions)return;const{pivotA:i,pivotB:s,axisA:r,axisB:n,perpAxisA:o,perpAxisB:l}=e._initOptions;!i||!s||!r||!n||!o||!l||t.getDescendants(!0).forEach(c=>{const u=c.getDescendants(!0)[0],f=c.getDescendants(!0)[1],{parentBody:p,parentBodyIndex:m}=u.metadata,{childBody:_,childBodyIndex:d}=f.metadata,h=this._getTransformFromBodyToRef(p,ae.Matrix[0],m),x=this._getTransformFromBodyToRef(_,ae.Matrix[1],d);h.decomposeToTransformNode(u),this._makeScalingUnitInPlace(u.scaling),x.decomposeToTransformNode(f),this._makeScalingUnitInPlace(f.scaling);const A=u.getDescendants(!0)[0];A.position.copyFrom(i);const S=f.getDescendants(!0)[0];S.position.copyFrom(s),Re.FromRotationMatrixToRef(me.FromXYZAxesToRef(r,o,P.CrossToRef(r,o,ae.Vector3[0]),ae.Matrix[0]),A.rotationQuaternion),Re.FromRotationMatrixToRef(me.FromXYZAxesToRef(n,l,P.CrossToRef(n,l,ae.Vector3[1]),ae.Matrix[1]),S.rotationQuaternion)})}showImpostor(e,t){if(!this._scene)return null;for(let s=0;s<this._numMeshes;s++)if(this._impostors[s]==e)return null;const i=this._getDebugMesh(e,t);return i&&(this._impostors[this._numMeshes]=e,this._meshes[this._numMeshes]=i,this._numMeshes===0&&(this._renderFunction=()=>this._updateDebugMeshes(),this._scene.registerBeforeRender(this._renderFunction)),this._numMeshes++),i}showBody(e){if(!this._scene)return null;for(let i=0;i<this._numBodies;i++)if(this._bodies[i]==e)return null;const t=this._getDebugBodyMesh(e);return t&&(this._bodies[this._numBodies]=e,this._bodyMeshes[this._numBodies]=t,this._numBodies===0&&(this._renderFunction=()=>this._updateDebugMeshes(),this._scene.registerBeforeRender(this._renderFunction)),this._numBodies++),t}showInertia(e){if(!this._scene)return null;for(let i=0;i<this._numInertiaBodies;i++)if(this._inertiaBodies[i]==e)return null;const t=this._getDebugInertiaMesh(e);return t&&(this._inertiaBodies[this._numInertiaBodies]=e,this._inertiaMeshes[this._numInertiaBodies]=t,this._numInertiaBodies===0&&(this._inertiaRenderFunction=()=>this._updateInertiaMeshes(),this._scene.registerBeforeRender(this._inertiaRenderFunction)),this._numInertiaBodies++),t}showConstraint(e){if(!this._scene)return null;for(let i=0;i<this._numConstraints;i++)if(this._constraints[i]==e)return null;const t=this._getDebugConstraintMesh(e);return t&&(this._constraints[this._numConstraints]=e,this._constraintMeshes[this._numConstraints]=t,this._numConstraints===0&&(this._constraintRenderFunction=()=>this._updateDebugConstraints(),this._scene.registerBeforeRender(this._constraintRenderFunction)),this._numConstraints++),t?t[0]:null}hideImpostor(e){if(!e||!this._scene||!this._utilityLayer)return;let t=!1;const i=this._utilityLayer.utilityLayerScene;for(let s=0;s<this._numMeshes;s++)if(this._impostors[s]==e){const r=this._meshes[s];if(!r)continue;i.removeMesh(r),r.dispose();const n=this._debugMeshMeshes.indexOf(r);n>-1&&this._debugMeshMeshes.splice(n,1),this._numMeshes--,this._numMeshes>0?(this._meshes[s]=this._meshes[this._numMeshes],this._impostors[s]=this._impostors[this._numMeshes],this._meshes[this._numMeshes]=null,this._impostors[this._numMeshes]=null):(this._meshes[0]=null,this._impostors[0]=null),t=!0;break}t&&this._numMeshes===0&&this._scene.unregisterBeforeRender(this._renderFunction)}hideBody(e){if(!e||!this._scene||!this._utilityLayer)return!1;let t=!1;const i=this._utilityLayer.utilityLayerScene;for(let s=0;s<this._numBodies;s++)if(this._bodies[s]===e){const r=this._bodyMeshes[s];if(!r)continue;i.removeMesh(r),r.dispose(),this._numBodies--,this._numBodies>0?(this._bodyMeshes[s]=this._bodyMeshes[this._numBodies],this._bodies[s]=this._bodies[this._numBodies],this._bodyMeshes[this._numBodies]=null,this._bodies[this._numBodies]=null):(this._bodyMeshes[0]=null,this._bodies[0]=null),t=!0;break}return t&&this._numBodies===0&&this._scene.unregisterBeforeRender(this._renderFunction),t}hideInertia(e){if(!e||!this._scene||!this._utilityLayer)return!1;let t=!1;const i=this._utilityLayer.utilityLayerScene;for(let s=0;s<this._numInertiaBodies;s++)if(this._inertiaBodies[s]===e){const r=this._inertiaMeshes[s];if(!r)continue;i.removeMesh(r),r.dispose(),this._inertiaBodies.splice(s,1),this._inertiaMeshes.splice(s,1),this._numInertiaBodies--,t=!0;break}return t&&this._numInertiaBodies===0&&this._scene.unregisterBeforeRender(this._inertiaRenderFunction),t}hideConstraint(e){if(!e||!this._scene||!this._utilityLayer)return;let t=!1;const i=this._utilityLayer.utilityLayerScene;for(let s=0;s<this._numConstraints;s++)if(this._constraints[s]===e){const r=this._constraintMeshes[s];if(!r)continue;r.forEach(n=>{i.removeMesh(n),n.dispose()}),this._constraints.splice(s,1),this._constraintMeshes.splice(s,1),this._numConstraints--,this._numConstraints>0?(this._constraints[s]=this._constraints[this._numConstraints],this._constraintMeshes[s]=this._constraintMeshes[this._numConstraints],this._constraints[this._numConstraints]=null,this._constraintMeshes[this._numConstraints]=null):(this._constraints[0]=null,this._constraintMeshes[0]=null),t=!0;break}t&&this._numConstraints===0&&this._scene.unregisterBeforeRender(this._constraintRenderFunction)}_getDebugMaterial(e){return this._debugMaterial||(this._debugMaterial=new Bt("",e),this._debugMaterial.wireframe=!0,this._debugMaterial.emissiveColor=Pe.White(),this._debugMaterial.disableLighting=!0),this._debugMaterial}_getDebugInertiaMaterial(e){return this._debugInertiaMaterial||(this._debugInertiaMaterial=new Bt("",e),this._debugInertiaMaterial.disableLighting=!0,this._debugInertiaMaterial.alpha=0),this._debugInertiaMaterial}_getDebugAxisColoredMaterial(e,t){const i=new Bt("",t);return i.emissiveColor=e==0?Pe.Red():e==1?Pe.Green():Pe.Blue(),i.disableLighting=!0,i}_getDebugBoxMesh(e){return this._debugBoxMesh||(this._debugBoxMesh=pa("physicsBodyBoxViewMesh",{size:1},e),this._debugBoxMesh.rotationQuaternion=Re.Identity(),this._debugBoxMesh.material=this._getDebugMaterial(e),this._debugBoxMesh.setEnabled(!1)),this._debugBoxMesh.createInstance("physicsBodyBoxViewInstance")}_getDebugSphereMesh(e){return this._debugSphereMesh||(this._debugSphereMesh=hd("physicsBodySphereViewMesh",{diameter:1},e),this._debugSphereMesh.rotationQuaternion=Re.Identity(),this._debugSphereMesh.material=this._getDebugMaterial(e),this._debugSphereMesh.setEnabled(!1)),this._debugSphereMesh.createInstance("physicsBodySphereViewInstance")}_getDebugCapsuleMesh(e){return this._debugCapsuleMesh||(this._debugCapsuleMesh=sB("physicsBodyCapsuleViewMesh",{height:1},e),this._debugCapsuleMesh.rotationQuaternion=Re.Identity(),this._debugCapsuleMesh.material=this._getDebugMaterial(e),this._debugCapsuleMesh.setEnabled(!1)),this._debugCapsuleMesh.createInstance("physicsBodyCapsuleViewInstance")}_getDebugCylinderMesh(e){return this._debugCylinderMesh||(this._debugCylinderMesh=e1("physicsBodyCylinderViewMesh",{diameterTop:1,diameterBottom:1,height:1},e),this._debugCylinderMesh.rotationQuaternion=Re.Identity(),this._debugCylinderMesh.material=this._getDebugMaterial(e),this._debugCylinderMesh.setEnabled(!1)),this._debugCylinderMesh.createInstance("physicsBodyCylinderViewInstance")}_getDebugMeshMesh(e,t){const i=new Ne(e.name,t,null,e);return i.setParent(e),i.position=P.Zero(),i.material=this._getDebugMaterial(t),this._debugMeshMeshes.push(i),i}_getDebugMesh(e,t){if(!this._utilityLayer||t&&t.parent&&t.parent.physicsImpostor)return null;let i=null;const s=this._utilityLayer.utilityLayerScene;if(!e.physicsBody)return de.Warn("Unable to get physicsBody of impostor. It might be initialized later by its parent's impostor."),null;switch(e.type){case $i.BoxImpostor:i=this._getDebugBoxMesh(s),e.getBoxSizeToRef(i.scaling);break;case $i.SphereImpostor:{i=this._getDebugSphereMesh(s);const r=e.getRadius();i.scaling.x=r*2,i.scaling.y=r*2,i.scaling.z=r*2;break}case $i.CapsuleImpostor:{i=this._getDebugCapsuleMesh(s);const r=e.object.getBoundingInfo();i.scaling.x=(r.boundingBox.maximum.x-r.boundingBox.minimum.x)*2*e.object.scaling.x,i.scaling.y=(r.boundingBox.maximum.y-r.boundingBox.minimum.y)*e.object.scaling.y,i.scaling.z=(r.boundingBox.maximum.z-r.boundingBox.minimum.z)*2*e.object.scaling.z;break}case $i.MeshImpostor:t&&(i=this._getDebugMeshMesh(t,s));break;case $i.NoImpostor:t?t.getChildMeshes().filter(n=>n.physicsImpostor?1:0).forEach(n=>{if(n.physicsImpostor&&n.getClassName()==="Mesh"){const o=n.getBoundingInfo(),l=o.boundingBox.minimum,c=o.boundingBox.maximum;switch(n.physicsImpostor.type){case $i.BoxImpostor:i=this._getDebugBoxMesh(s),i.position.copyFrom(l),i.position.addInPlace(c),i.position.scaleInPlace(.5);break;case $i.SphereImpostor:i=this._getDebugSphereMesh(s);break;case $i.CylinderImpostor:i=this._getDebugCylinderMesh(s);break;default:i=null;break}i&&(i.scaling.x=c.x-l.x,i.scaling.y=c.y-l.y,i.scaling.z=c.z-l.z,i.parent=n)}}):de.Warn("No target mesh parameter provided for NoImpostor. Skipping."),i=null;break;case $i.CylinderImpostor:{i=this._getDebugCylinderMesh(s);const r=e.object.getBoundingInfo();i.scaling.x=(r.boundingBox.maximum.x-r.boundingBox.minimum.x)*e.object.scaling.x,i.scaling.y=(r.boundingBox.maximum.y-r.boundingBox.minimum.y)*e.object.scaling.y,i.scaling.z=(r.boundingBox.maximum.z-r.boundingBox.minimum.z)*e.object.scaling.z;break}}return i}_getDebugBodyMesh(e){if(!this._utilityLayer)return null;const t=this._utilityLayer.utilityLayerScene,i=new Ne("custom",t),s=new wt,r=e.getGeometry();if(s.positions=r.positions,s.indices=r.indices,s.applyToMesh(i),e._pluginDataInstances){const n=new Float32Array(e._pluginDataInstances.length*16);i.thinInstanceSetBuffer("matrix",n,16,!1)}return i.material=this._getDebugMaterial(t),i}_getMeshDebugInertiaMatrixToRef(e,t){const i=e.inertiaOrientation??Re.Identity(),s=e.inertia??P.Zero(),r=e.centerOfMass??P.Zero(),n=(s.x-s.y+s.z)*6,o=Math.sqrt(Math.max(n,0)),l=s.x*12-n,c=Math.sqrt(Math.max(l,0)),u=s.z*12-n,f=Math.sqrt(Math.max(u,0)),p=ae.Vector3[0];p.set(f,o,c);const m=me.ScalingToRef(p.x,p.y,p.z,ae.Matrix[0]),_=i.toRotationMatrix(ae.Matrix[1]),d=me.TranslationToRef(r.x,r.y,r.z,ae.Matrix[2]);return m.multiplyToRef(_,t),t.multiplyToRef(d,t),t}_getDebugInertiaMesh(e){if(!this._utilityLayer)return null;const t=this._utilityLayer.utilityLayerScene,i=l3.CreateBox("custom",{size:1},t),s=me.Identity();if(e._pluginDataInstances.length){const r=new Float32Array(e._pluginDataInstances.length*16);for(let n=0;n<e._pluginDataInstances.length;++n){const o=e.getMassProperties(n);this._getMeshDebugInertiaMatrixToRef(o,s),s.copyToArray(r,n*16)}i.thinInstanceSetBuffer("matrix",r,16,!1)}else{const r=e.getMassProperties();this._getMeshDebugInertiaMatrixToRef(r,s),s.decomposeToTransformNode(i)}return i.enableEdgesRendering(),i.edgesWidth=2,i.edgesColor=new St(1,0,1,1),i.material=this._getDebugInertiaMaterial(t),i}_getTransformFromBodyToRef(e,t,i){const s=e.transformNode;return i&&i>=0?me.FromArrayToRef(s._thinInstanceDataStorage.matrixData,i,t):t.copyFrom(s.getWorldMatrix())}_createAngularConstraintMesh(e,t,i,s,r){const n=(t-e)/(Math.PI*2),o=l3.CreateCylinder("ConstraintCylinder",{height:1e-4,diameter:3*this._constraintAngularSize,arc:n},r);o.material=this._getDebugAxisColoredMaterial(i,r),o.parent=s;const l=s.absoluteScaling;switch(i){case 0:o.rotation.z=Math.PI*.5,o.rotation.x=-e+Math.PI*.5,o.scaling.x=1/l.x,o.scaling.y=1/l.z,o.scaling.z=1/l.y;break;case 1:o.rotation.y=Math.PI*1.5+e,o.scaling.x=1/l.z,o.scaling.y=1/l.y,o.scaling.z=1/l.x;break;case 2:o.rotation.x=Math.PI*.5,o.scaling.x=1/l.x,o.scaling.y=1/l.z,o.scaling.z=1/l.y;break}return o}_createCage(e,t){const i=l3.CreateBox("cage",{size:1},t);i.setPivotPoint(new P(-.5,-.5,-.5));const s=new Bt("cage_material",t);return s.alpha=0,i.material=s,i.enableEdgesRendering(),i.edgesWidth=4,i.edgesColor=new St(1,1,1,1),i.parent=e,i}_getDebugConstraintMesh(e){if(!this._utilityLayer)return null;const t=this._utilityLayer.utilityLayerScene;if(!e._initOptions)return null;const{pivotA:i,pivotB:s,axisA:r,axisB:n,perpAxisA:o,perpAxisB:l}=e._initOptions;if(!i||!s||!r||!n||!o||!l)return null;const c=new Ne("parentingDebugConstraint",t),u=e.getBodiesUsingConstraint(),f=[];f.push(c);for(const p of u){const m=new Si("parentOfPair",t);m.parent=c;const{parentBody:_,parentBodyIndex:d,childBody:h,childBodyIndex:x}=p,A=this._getTransformFromBodyToRef(_,ae.Matrix[0],d),S=this._getTransformFromBodyToRef(h,ae.Matrix[1],x),E=new Si("parentCoordSystem",t);E.parent=m,E.metadata={parentBody:_,parentBodyIndex:d},A.decomposeToTransformNode(E);const b=new Si("childCoordSystem",t);b.parent=m,b.metadata={childBody:h,childBodyIndex:x},S.decomposeToTransformNode(b);const M=Re.FromRotationMatrix(me.FromXYZAxesToRef(r,o,r.cross(o),ae.Matrix[0])),T=Re.FromRotationMatrix(me.FromXYZAxesToRef(n,l,n.cross(l),ae.Matrix[0])),O=i,R=s,I=new Si("constraint_parent",t);I.position.copyFrom(O),I.rotationQuaternion=M,I.parent=E;const N=new Si("constraint_child",t);N.parent=b,N.position.copyFrom(R),N.rotationQuaternion=T;const w=new zy(t,this._constraintAxesSize);w.xAxis.parent=I,w.yAxis.parent=I,w.zAxis.parent=I;const D=new zy(t,this._constraintAxesSize);D.xAxis.parent=N,D.yAxis.parent=N,D.zAxis.parent=N;const k=this._physicsEnginePlugin,Y=[3,4,5],ee=[Y,[0,1,2]],K=[0,0];for(let ie=0;ie<2;ie++)for(let ne=0;ne<3;ne++){const te=ee[ie][ne];k.getAxisMode(e,te)==2&&K[ie]++}if(K[1]!=3){const ie=this._createCage(I,t),ne=ae.Vector3[0],te=ae.Vector3[1],W=[!1,!1,!1];W[0]=k.getAxisMode(e,0)==1,W[1]=k.getAxisMode(e,1)==1,W[2]=k.getAxisMode(e,2)==1,ne.x=W[0]?k.getAxisMinLimit(e,0):0,te.x=W[0]?k.getAxisMaxLimit(e,0):0,ne.y=W[1]?k.getAxisMinLimit(e,1):0,te.y=W[1]?k.getAxisMaxLimit(e,1):0,ne.z=W[2]?k.getAxisMinLimit(e,2):0,te.z=W[2]?k.getAxisMaxLimit(e,2):0,ie.position.x=ne.x+.5,ie.position.y=ne.y+.5,ie.position.z=ne.z+.5,ie.scaling.x=te.x-ne.x+Ii,ie.scaling.y=te.y-ne.y+Ii,ie.scaling.z=te.z-ne.z+Ii,f.push(ie)}if(K[0]!=3)for(let ie=0;ie<3;ie++){const ne=Y[ie],te=k.getAxisMode(e,ne);let W=0,Q=Math.PI*2;if(te==1&&(W=k.getAxisMinLimit(e,ne),Q=k.getAxisMaxLimit(e,ne)),te!=2&&e.options.pivotB){const re=this._createAngularConstraintMesh(W,Q,ie,h.transformNode,t);re.position.copyFrom(e.options.pivotB),f.push(re)}}}return f}dispose(){for(let e=this._numMeshes-1;e>=0;e--)this.hideImpostor(this._impostors[0]);for(let e=this._numBodies-1;e>=0;e--)this.hideBody(this._bodies[0]);for(let e=this._numInertiaBodies-1;e>=0;e--)this.hideInertia(this._inertiaBodies[0]);this._debugBoxMesh&&this._debugBoxMesh.dispose(),this._debugSphereMesh&&this._debugSphereMesh.dispose(),this._debugCylinderMesh&&this._debugCylinderMesh.dispose(),this._debugMaterial&&this._debugMaterial.dispose(),this._impostors.length=0,this._scene=null,this._physicsEnginePlugin=null,this._utilityLayer&&(this._utilityLayer.dispose(),this._utilityLayer=null)}}class xQ{static CreateAndShow(e,t,i){const s=new xQ(e);return s.show(t,i),s}constructor(e){this.ray=e}show(e,t){if(!this._renderFunction&&this.ray){const i=this.ray;this._renderFunction=()=>this._render(),this._scene=e,this._renderPoints=[i.origin,i.origin.add(i.direction.scale(i.length))],this._renderLine=ta("ray",{points:this._renderPoints,updatable:!0},e),this._renderLine.isPickable=!1,this._renderFunction&&this._scene.registerBeforeRender(this._renderFunction)}t&&this._renderLine&&this._renderLine.color.copyFrom(t)}hide(){this._renderFunction&&this._scene&&(this._scene.unregisterBeforeRender(this._renderFunction),this._scene=null,this._renderFunction=null,this._renderLine&&(this._renderLine.dispose(),this._renderLine=null),this._renderPoints=[])}_render(){var s;const e=this.ray;if(!e)return;const t=this._renderPoints[1],i=Math.min(e.length,1e6);t.copyFrom(e.direction),t.scaleInPlace(i),t.addInPlace(e.origin),this._renderPoints[0].copyFrom(e.origin),ta("ray",{points:this._renderPoints,updatable:!0,instance:this._renderLine},this._scene),(s=this._renderLine)==null||s.refreshBoundingInfo()}attachToMesh(e,t,i,s){this._attachedToMesh=e;const r=this.ray;r&&(r.direction||(r.direction=P.Zero()),r.origin||(r.origin=P.Zero()),s&&(r.length=s),i||(i=P.Zero()),t||(t=new P(0,0,-1)),this._scene||(this._scene=e.getScene()),this._meshSpaceDirection?(this._meshSpaceDirection.copyFrom(t),this._meshSpaceOrigin.copyFrom(i)):(this._meshSpaceDirection=t.clone(),this._meshSpaceOrigin=i.clone()),this._onAfterRenderObserver||(this._onAfterRenderObserver=this._scene.onBeforeRenderObservable.add(()=>this._updateToMesh()),this._onAfterStepObserver=this._scene.onAfterStepObservable.add(()=>this._updateToMesh())),this._attachedToMesh.computeWorldMatrix(!0),this._updateToMesh())}detachFromMesh(){this._attachedToMesh&&this._scene&&(this._onAfterRenderObserver&&(this._scene.onBeforeRenderObservable.remove(this._onAfterRenderObserver),this._scene.onAfterStepObservable.remove(this._onAfterStepObserver)),this._attachedToMesh=null,this._onAfterRenderObserver=null,this._onAfterStepObserver=null,this._scene=null)}_updateToMesh(){const e=this.ray;if(!(!this._attachedToMesh||!e)){if(this._attachedToMesh.isDisposed()){this.detachFromMesh();return}this._attachedToMesh.getDirectionToRef(this._meshSpaceDirection,e.direction),P.TransformCoordinatesToRef(this._meshSpaceOrigin,this._attachedToMesh.getWorldMatrix(),e.origin)}}dispose(){this.hide(),this.detachFromMesh(),this.ray=null}}class hf{static CreateBoneWeightShader(e,t){const i=e.skeleton,s=e.colorBase??Pe.Black(),r=e.colorZero??Pe.Blue(),n=e.colorQuarter??Pe.Green(),o=e.colorHalf??Pe.Yellow(),l=e.colorFull??Pe.Red(),c=e.targetBoneIndex??0;Ls.ShadersStore["boneWeights:"+i.name+"VertexShader"]=`precision highp float;

        attribute vec3 position;
        attribute vec2 uv;

        uniform mat4 view;
        uniform mat4 projection;
        uniform mat4 worldViewProjection;

        #include<bonesDeclaration>
        #if NUM_BONE_INFLUENCERS == 0
            attribute vec4 matricesIndices;
            attribute vec4 matricesWeights;
        #endif
        #include<bakedVertexAnimationDeclaration>

        #include<instancesDeclaration>

        varying vec3 vColor;

        uniform vec3 colorBase;
        uniform vec3 colorZero;
        uniform vec3 colorQuarter;
        uniform vec3 colorHalf;
        uniform vec3 colorFull;

        uniform float targetBoneIndex;

        void main() {
            vec3 positionUpdated = position;

            #include<instancesVertex>
            #include<bonesVertex>
            #include<bakedVertexAnimation>

            vec4 worldPos = finalWorld * vec4(positionUpdated, 1.0);

            vec3 color = colorBase;
            float totalWeight = 0.;
            if(matricesIndices[0] == targetBoneIndex && matricesWeights[0] > 0.){
                totalWeight += matricesWeights[0];
            }
            if(matricesIndices[1] == targetBoneIndex && matricesWeights[1] > 0.){
                totalWeight += matricesWeights[1];
            }
            if(matricesIndices[2] == targetBoneIndex && matricesWeights[2] > 0.){
                totalWeight += matricesWeights[2];
            }
            if(matricesIndices[3] == targetBoneIndex && matricesWeights[3] > 0.){
                totalWeight += matricesWeights[3];
            }

            color = mix(color, colorZero, smoothstep(0., 0.25, totalWeight));
            color = mix(color, colorQuarter, smoothstep(0.25, 0.5, totalWeight));
            color = mix(color, colorHalf, smoothstep(0.5, 0.75, totalWeight));
            color = mix(color, colorFull, smoothstep(0.75, 1.0, totalWeight));
            vColor = color;

        gl_Position = projection * view * worldPos;
        }`,Ls.ShadersStore["boneWeights:"+i.name+"FragmentShader"]=`
            precision highp float;
            varying vec3 vPosition;

            varying vec3 vColor;

            void main() {
                vec4 color = vec4(vColor, 1.0);
                gl_FragColor = color;
            }
        `;const u=new Fo("boneWeight:"+i.name,t,{vertex:"boneWeights:"+i.name,fragment:"boneWeights:"+i.name},{attributes:["position","normal","matricesIndices","matricesWeights"],uniforms:["world","worldView","worldViewProjection","view","projection","viewProjection","colorBase","colorZero","colorQuarter","colorHalf","colorFull","targetBoneIndex"]});return u.setColor3("colorBase",s),u.setColor3("colorZero",r),u.setColor3("colorQuarter",n),u.setColor3("colorHalf",o),u.setColor3("colorFull",l),u.setFloat("targetBoneIndex",c),u.getClassName=()=>"BoneWeightShader",u.transparencyMode=ft.MATERIAL_OPAQUE,u}static CreateSkeletonMapShader(e,t){const i=e.skeleton,s=e.colorMap??[{color:new Pe(1,.38,.18),location:0},{color:new Pe(.59,.18,1),location:.2},{color:new Pe(.59,1,.18),location:.4},{color:new Pe(1,.87,.17),location:.6},{color:new Pe(1,.17,.42),location:.8},{color:new Pe(.17,.68,1),location:1}],r=i.bones.length+1,n=hf._CreateBoneMapColorBuffer(r,s,t),o=new Fo("boneWeights:"+i.name,t,{vertexSource:`precision highp float;

            attribute vec3 position;
            attribute vec2 uv;

            uniform mat4 view;
            uniform mat4 projection;
            uniform mat4 worldViewProjection;
            uniform float colorMap[`+i.bones.length*4+`];

            #include<bonesDeclaration>
            #if NUM_BONE_INFLUENCERS == 0
                attribute vec4 matricesIndices;
                attribute vec4 matricesWeights;
            #endif
            #include<bakedVertexAnimationDeclaration>
            #include<instancesDeclaration>

            varying vec3 vColor;

            void main() {
                vec3 positionUpdated = position;

                #include<instancesVertex>
                #include<bonesVertex>
                #include<bakedVertexAnimation>

                vec3 color = vec3(0.);
                bool first = true;

                for (int i = 0; i < 4; i++) {
                    int boneIdx = int(matricesIndices[i]);
                    float boneWgt = matricesWeights[i];

                    vec3 c = vec3(colorMap[boneIdx * 4 + 0], colorMap[boneIdx * 4 + 1], colorMap[boneIdx * 4 + 2]);

                    if (boneWgt > 0.) {
                        if (first) {
                            first = false;
                            color = c;
                        } else {
                            color = mix(color, c, boneWgt);
                        }
                    }
                }

                vColor = color;

                vec4 worldPos = finalWorld * vec4(positionUpdated, 1.0);

                gl_Position = projection * view * worldPos;
            }`,fragmentSource:`
            precision highp float;
            varying vec3 vColor;

            void main() {
                vec4 color = vec4( vColor, 1.0 );
                gl_FragColor = color;
            }
            `},{attributes:["position","normal","matricesIndices","matricesWeights"],uniforms:["world","worldView","worldViewProjection","view","projection","viewProjection","colorMap"]});return o.setFloats("colorMap",n),o.getClassName=()=>"SkeletonMapShader",o.transparencyMode=ft.MATERIAL_OPAQUE,o}static _CreateBoneMapColorBuffer(e,t,i){const s=new uf("temp",{width:e,height:1},i,!1),r=s.getContext(),n=r.createLinearGradient(0,0,e,0);t.forEach(u=>{n.addColorStop(u.location,u.color.toHexString())}),r.fillStyle=n,r.fillRect(0,0,e,1),s.update();const o=[],l=r.getImageData(0,0,e,1).data,c=1/255;for(let u=0;u<l.length;u++)o.push(l[u]*c);return s.dispose(),o}get scene(){return this._scene}get utilityLayer(){return this._utilityLayer}get isReady(){return this._ready}set ready(e){this._ready=e}get debugMesh(){return this._debugMesh}set debugMesh(e){this._debugMesh=e}get displayMode(){return this.options.displayMode||hf.DISPLAY_LINES}set displayMode(e){e>hf.DISPLAY_SPHERE_AND_SPURS&&(e=hf.DISPLAY_LINES),this.options.displayMode=e}constructor(e,t,i,s=!0,r=3,n={}){if(this.skeleton=e,this.mesh=t,this.autoUpdateBonesMatrices=s,this.renderingGroupId=r,this.options=n,this.color=Pe.White(),this._debugLines=new Array,this._localAxes=null,this._isEnabled=!0,this._obs=null,this._scene=i,this._ready=!1,n.pauseAnimations=n.pauseAnimations??!0,n.returnToRest=n.returnToRest??!1,n.displayMode=n.displayMode??hf.DISPLAY_LINES,n.displayOptions=n.displayOptions??{},n.displayOptions.midStep=n.displayOptions.midStep??.235,n.displayOptions.midStepFactor=n.displayOptions.midStepFactor??.155,n.displayOptions.sphereBaseSize=n.displayOptions.sphereBaseSize??.15,n.displayOptions.sphereScaleUnit=n.displayOptions.sphereScaleUnit??2,n.displayOptions.sphereFactor=n.displayOptions.sphereFactor??.865,n.displayOptions.spurFollowsChild=n.displayOptions.spurFollowsChild??!1,n.displayOptions.showLocalAxes=n.displayOptions.showLocalAxes??!1,n.displayOptions.localAxesSize=n.displayOptions.localAxesSize??.075,n.computeBonesUsingShaders=n.computeBonesUsingShaders??!0,n.useAllBones=n.useAllBones??!0,this._boneIndices=new Set,!n.useAllBones){const l=t==null?void 0:t.getVerticesData(q.MatricesIndicesKind),c=t==null?void 0:t.getVerticesData(q.MatricesWeightsKind);if(l&&c)for(let u=0;u<l.length;++u){const f=l[u];c[u]!==0&&this._boneIndices.add(f)}}this._utilityLayer=new Dr(this._scene,!1),this._utilityLayer.pickUtilitySceneFirst=!1,this._utilityLayer.utilityLayerScene.autoClearDepthAndStencil=!0;let o=this.options.displayMode||0;o>hf.DISPLAY_SPHERE_AND_SPURS&&(o=hf.DISPLAY_LINES),this.displayMode=o,this.update(),this._bindObs()}_bindObs(){switch(this.displayMode){case hf.DISPLAY_LINES:{this._obs=this.scene.onBeforeRenderObservable.add(()=>{this._displayLinesUpdate()});break}}}update(){switch(this.displayMode){case hf.DISPLAY_LINES:{this._displayLinesUpdate();break}case hf.DISPLAY_SPHERES:{this._buildSpheresAndSpurs(!0);break}case hf.DISPLAY_SPHERE_AND_SPURS:{this._buildSpheresAndSpurs(!1);break}}this._buildLocalAxes()}set isEnabled(e){this.isEnabled!==e&&(this._isEnabled=e,this.debugMesh&&this.debugMesh.setEnabled(e),e&&!this._obs?this._bindObs():!e&&this._obs&&(this.scene.onBeforeRenderObservable.remove(this._obs),this._obs=null))}get isEnabled(){return this._isEnabled}_getBonePosition(e,t,i,s=0,r=0,n=0){const o=ae.Matrix[0],l=t.getParent();if(o.copyFrom(t.getLocalMatrix()),s!==0||r!==0||n!==0){const c=ae.Matrix[1];me.IdentityToRef(c),c.setTranslationFromFloats(s,r,n),c.multiplyToRef(o,o)}l&&o.multiplyToRef(l.getAbsoluteMatrix(),o),o.multiplyToRef(i,o),e.x=o.m[12],e.y=o.m[13],e.z=o.m[14]}_getLinesForBonesWithLength(e,t){const i=e.length;let s,r;t?(s=t.getWorldMatrix(),r=t.position):(s=new me,r=e[0].position);let n=0;for(let o=0;o<i;o++){const l=e[o];let c=this._debugLines[n];l._index===-1||!this._boneIndices.has(l.getIndex())&&!this.options.useAllBones||(c||(c=[P.Zero(),P.Zero()],this._debugLines[n]=c),this._getBonePosition(c[0],l,s),this._getBonePosition(c[1],l,s,0,l.length,0),c[0].subtractInPlace(r),c[1].subtractInPlace(r),n++)}}_getLinesForBonesNoLength(e){const t=e.length;let i=0;const s=this.mesh;let r,n;s?(r=s,n=s.position):(r=new Si(""),n=e[0].position);for(let o=t-1;o>=0;o--){const l=e[o],c=l.getParent();if(!c||!this._boneIndices.has(l.getIndex())&&!this.options.useAllBones)continue;let u=this._debugLines[i];u||(u=[P.Zero(),P.Zero()],this._debugLines[i]=u),l.getAbsolutePositionToRef(r,u[0]),c.getAbsolutePositionToRef(r,u[1]),u[0].subtractInPlace(n),u[1].subtractInPlace(n),i++}s||r.dispose()}_revert(e){this.options.pauseAnimations&&(this.scene.animationsEnabled=e,this.utilityLayer.utilityLayerScene.animationsEnabled=e)}_getAbsoluteBindPoseToRef(e,t){if(e===null||e._index===-1){t.copyFrom(me.Identity());return}this._getAbsoluteBindPoseToRef(e.getParent(),t),e.getBindMatrix().multiplyToRef(t,t)}_createSpur(e,t,i,s,r,n){const o=i.subtract(e),l=o.length(),c=o.normalize().scale(l),u=r.midStep||.165,f=r.midStepFactor||.215,p=c.scale(u),m=iB("skeletonViewer",{shape:[new P(1,-1,0),new P(1,1,0),new P(-1,1,0),new P(-1,-1,0),new P(1,-1,0)],path:[P.Zero(),p,c],scaleFunction:x=>{switch(x){case 0:case 2:return 0;case 1:return l*f}return 0},sideOrientation:Ne.DEFAULTSIDE,updatable:!1},n),_=m.getTotalVertices(),d=[],h=[];for(let x=0;x<_;x++)d.push(1,0,0,0),s&&r.spurFollowsChild&&x>9?h.push(s.getIndex(),0,0,0):h.push(t.getIndex(),0,0,0);return m.position=e.clone(),m.setVerticesData(q.MatricesWeightsKind,d,!1),m.setVerticesData(q.MatricesIndicesKind,h,!1),m.convertToFlatShadedMesh(),m}_getBoundingSphereForBone(e){if(!this.mesh)return null;const t=this.mesh.getVerticesData(q.PositionKind),i=this.mesh.getIndices(),s=this.mesh.getVerticesData(q.MatricesWeightsKind),r=this.mesh.getVerticesData(q.MatricesIndicesKind);if(!t||!i||!s||!r)return null;const n=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),o=new P(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);let l=0;for(let c=0;c<i.length;++c){const u=i[c];for(let f=0;f<4;++f){const p=r[u*4+f],m=s[u*4+f];if(p===e&&m>1e-5){P.FromArrayToRef(t,u*3,ae.Vector3[0]),n.minimizeInPlace(ae.Vector3[0]),o.maximizeInPlace(ae.Vector3[0]),l++;break}}}return l>1?{center:P.Center(n,o),radius:P.Distance(n,o)/2}:null}_buildSpheresAndSpurs(e=!0){var o;this._debugMesh&&(this._debugMesh.dispose(),this._debugMesh=null,this.ready=!1),this._ready=!1;const t=(o=this.utilityLayer)==null?void 0:o.utilityLayerScene,i=this.skeleton.bones,s=[],r=[],n=this.scene.animationsEnabled;try{this.options.pauseAnimations&&(this.scene.animationsEnabled=!1,t.animationsEnabled=!1),this.options.returnToRest&&this.skeleton.returnToRest(),this.autoUpdateBonesMatrices&&this.skeleton.computeAbsoluteMatrices();let l=Number.NEGATIVE_INFINITY;const c=this.options.displayOptions||{};for(let _=0;_<i.length;_++){const d=i[_];if(d._index===-1||!this._boneIndices.has(d.getIndex())&&!this.options.useAllBones)continue;const h=new me;this._getAbsoluteBindPoseToRef(d,h);const x=new P;if(h.decompose(void 0,void 0,x),d.children.length>0)d.children.forEach(T=>{const O=new me;T.getLocalMatrix().multiplyToRef(h,O);const R=new P;O.decompose(void 0,void 0,R);const I=P.Distance(x,R);I>l&&(l=I),!e&&r.push(this._createSpur(x,d,R,T,c,t))});else{const T=this._getBoundingSphereForBone(d.getIndex());if(T&&(T.radius>l&&(l=T.radius),!e)){let O;const R=d.getParent();R?(this._getAbsoluteBindPoseToRef(R,h),h.decompose(void 0,void 0,ae.Vector3[0]),O=x.subtract(ae.Vector3[0]).normalize().scale(T.radius).add(x)):O=T.center.subtract(x).normalize().scale(T.radius).add(x),r.push(this._createSpur(x,d,O,null,c,t))}}const A=c.sphereBaseSize||.2,S=hd("skeletonViewer",{segments:6,diameter:A,updatable:!0},t),E=S.getTotalVertices(),b=[],M=[];for(let T=0;T<E;T++)b.push(1,0,0,0),M.push(d.getIndex(),0,0,0);S.setVerticesData(q.MatricesWeightsKind,b,!1),S.setVerticesData(q.MatricesIndicesKind,M,!1),S.position=x.clone(),s.push([S,d])}const u=c.sphereScaleUnit||2,f=c.sphereFactor||.85,p=[];for(let _=0;_<s.length;_++){const[d,h]=s[_],x=1/(u/l);let A=0,S=h;for(;S.getParent()&&S.getParent().getIndex()!==-1;)A++,S=S.getParent();d.scaling.scaleInPlace(x*Math.pow(f,A)),p.push(d)}this.debugMesh=Ne.MergeMeshes(p.concat(r),!0,!0),this.debugMesh&&(this.debugMesh.renderingGroupId=this.renderingGroupId,this.debugMesh.skeleton=this.skeleton,this.debugMesh.parent=this.mesh,this.debugMesh.computeBonesUsingShaders=this.options.computeBonesUsingShaders??!0,this.debugMesh.alwaysSelectAsActiveMesh=!0);const m=this.utilityLayer._getSharedGizmoLight();m.intensity=.7,this._revert(n),this.ready=!0}catch(l){de.Error(l),this._revert(n),this.dispose()}}_buildLocalAxes(){this._localAxes&&this._localAxes.dispose(),this._localAxes=null;const e=this.options.displayOptions||{};if(!e.showLocalAxes)return;const t=this._utilityLayer.utilityLayerScene,i=e.localAxesSize||.075,s=[],r=[],n=new St(1,0,0,1),o=new St(0,1,0,1),l=new St(0,0,1,1),c=[],u=[],f=6;for(const p in this.skeleton.bones){const m=this.skeleton.bones[p];if(m._index===-1||!this._boneIndices.has(m.getIndex())&&!this.options.useAllBones)continue;const _=new me,d=new P;this._getAbsoluteBindPoseToRef(m,_),_.decompose(void 0,ae.Quaternion[0],d);const h=new me;ae.Quaternion[0].toRotationMatrix(h);const x=P.TransformCoordinates(new P(0+i,0,0),h),A=P.TransformCoordinates(new P(0,0+i,0),h),S=P.TransformCoordinates(new P(0,0,0+i),h),E=[d,d.add(x)],b=[d,d.add(A)],M=[d,d.add(S)],T=[E,b,M],O=[[n,n],[o,o],[l,l]];s.push(...T),r.push(...O);for(let R=0;R<f;R++)c.push(1,0,0,0),u.push(m.getIndex(),0,0,0)}this._localAxes=uL("localAxes",{lines:s,colors:r,updatable:!0},t),this._localAxes.setVerticesData(q.MatricesWeightsKind,c,!1),this._localAxes.setVerticesData(q.MatricesIndicesKind,u,!1),this._localAxes.skeleton=this.skeleton,this._localAxes.renderingGroupId=this.renderingGroupId+1,this._localAxes.parent=this.mesh,this._localAxes.computeBonesUsingShaders=this.options.computeBonesUsingShaders??!0}_displayLinesUpdate(){if(!this._utilityLayer)return;this.autoUpdateBonesMatrices&&this.skeleton.computeAbsoluteMatrices(),this.skeleton.bones[0].length===void 0?this._getLinesForBonesNoLength(this.skeleton.bones):this._getLinesForBonesWithLength(this.skeleton.bones,this.mesh);const e=this._utilityLayer.utilityLayerScene;e&&(this._debugMesh?uL("",{lines:this._debugLines,updatable:!0,instance:this._debugMesh},e):(this._debugMesh=uL("",{lines:this._debugLines,updatable:!0,instance:null},e),this._debugMesh.renderingGroupId=this.renderingGroupId),this.mesh?this._debugMesh.position.copyFrom(this.mesh.position):this._debugMesh.position.copyFrom(this.skeleton.bones[0].position),this._debugMesh.color=this.color)}changeDisplayMode(e){const t=!!this.isEnabled;this.displayMode!==e&&(this.isEnabled=!1,this._debugMesh&&(this._debugMesh.dispose(),this._debugMesh=null,this.ready=!1),this.displayMode=e,this.update(),this._bindObs(),this.isEnabled=t)}changeDisplayOptions(e,t){const i=!!this.isEnabled;this.options.displayOptions[e]=t,this.isEnabled=!1,this._debugMesh&&(this._debugMesh.dispose(),this._debugMesh=null,this.ready=!1),this.update(),this._bindObs(),this.isEnabled=i}dispose(){this.isEnabled=!1,this._debugMesh&&(this._debugMesh.dispose(),this._debugMesh=null),this._utilityLayer&&(this._utilityLayer.dispose(),this._utilityLayer=null),this.ready=!1}}hf.DISPLAY_LINES=0,hf.DISPLAY_SPHERES=1,hf.DISPLAY_SPHERE_AND_SPURS=2;class Rwe{get transparency(){return this._transparency}set transparency(e){this._transparency=e;for(let t=6;t<12;++t)this._lightHelperFrustumMeshes[t].material.alpha=e}get showLines(){return this._showLines}set showLines(e){if(this._showLines!==e){this._showLines=e;for(let t=0;t<6;++t)this._lightHelperFrustumMeshes[t].setEnabled(e)}}get showPlanes(){return this._showPlanes}set showPlanes(e){if(this._showPlanes!==e){this._showPlanes=e;for(let t=6;t<12;++t)this._lightHelperFrustumMeshes[t].setEnabled(e)}}constructor(e,t=null){this._oldPosition=new P(Number.NaN,Number.NaN,Number.NaN),this._oldDirection=new P(Number.NaN,Number.NaN,Number.NaN),this._transparency=.3,this._showLines=!0,this._showPlanes=!0,this._scene=e.getScene(),this._light=e,this._camera=t,this._inverseViewMatrix=me.Identity(),this._lightHelperFrustumMeshes=[],this._createGeometry(),this.show(),this.update()}show(){this._lightHelperFrustumMeshes.forEach((e,t)=>{e.setEnabled(t<6&&this._showLines||t>=6&&this._showPlanes)}),this._oldPosition.set(Number.NaN,Number.NaN,Number.NaN),this._visible=!0}hide(){this._lightHelperFrustumMeshes.forEach(e=>{e.setEnabled(!1)}),this._visible=!1}update(){var t,i,s,r,n,o,l,c;if(!this._visible||this._oldPosition.equals(this._light.position)&&this._oldDirection.equals(this._light.direction)&&this._oldAutoCalc===this._light.autoCalcShadowZBounds&&this._oldMinZ===this._light.shadowMinZ&&this._oldMaxZ===this._light.shadowMaxZ)return;this._oldPosition.copyFrom(this._light.position),this._oldDirection.copyFrom(this._light.direction),this._oldAutoCalc=this._light.autoCalcShadowZBounds,this._oldMinZ=this._light.shadowMinZ,this._oldMaxZ=this._light.shadowMaxZ,ae.Vector3[0].set(this._light.orthoLeft,this._light.orthoBottom,this._light.shadowMinZ!==void 0?this._light.shadowMinZ:((t=this._camera)==null?void 0:t.minZ)??0),ae.Vector3[1].set(this._light.orthoRight,this._light.orthoTop,this._light.shadowMaxZ!==void 0?this._light.shadowMaxZ:((i=this._camera)==null?void 0:i.maxZ)??1e4);const e=this._getInvertViewMatrix();ae.Vector3[2].copyFromFloats(ae.Vector3[1].x,ae.Vector3[1].y,ae.Vector3[0].z),ae.Vector3[3].copyFromFloats(ae.Vector3[1].x,ae.Vector3[0].y,ae.Vector3[0].z),ae.Vector3[4].copyFromFloats(ae.Vector3[0].x,ae.Vector3[0].y,ae.Vector3[0].z),ae.Vector3[5].copyFromFloats(ae.Vector3[0].x,ae.Vector3[1].y,ae.Vector3[0].z),P.TransformCoordinatesToRef(ae.Vector3[2],e,ae.Vector3[2]),P.TransformCoordinatesToRef(ae.Vector3[3],e,ae.Vector3[3]),P.TransformCoordinatesToRef(ae.Vector3[4],e,ae.Vector3[4]),P.TransformCoordinatesToRef(ae.Vector3[5],e,ae.Vector3[5]),ae.Vector3[6].copyFromFloats(ae.Vector3[1].x,ae.Vector3[1].y,ae.Vector3[1].z),ae.Vector3[7].copyFromFloats(ae.Vector3[1].x,ae.Vector3[0].y,ae.Vector3[1].z),ae.Vector3[8].copyFromFloats(ae.Vector3[0].x,ae.Vector3[0].y,ae.Vector3[1].z),ae.Vector3[9].copyFromFloats(ae.Vector3[0].x,ae.Vector3[1].y,ae.Vector3[1].z),P.TransformCoordinatesToRef(ae.Vector3[6],e,ae.Vector3[6]),P.TransformCoordinatesToRef(ae.Vector3[7],e,ae.Vector3[7]),P.TransformCoordinatesToRef(ae.Vector3[8],e,ae.Vector3[8]),P.TransformCoordinatesToRef(ae.Vector3[9],e,ae.Vector3[9]),ta("nearlines",{updatable:!0,points:this._nearLinesPoints,instance:this._lightHelperFrustumMeshes[0]},this._scene),ta("farlines",{updatable:!0,points:this._farLinesPoints,instance:this._lightHelperFrustumMeshes[1]},this._scene),ta("trlines",{updatable:!0,points:this._trLinesPoints,instance:this._lightHelperFrustumMeshes[2]},this._scene),ta("brlines",{updatable:!0,points:this._brLinesPoints,instance:this._lightHelperFrustumMeshes[3]},this._scene),ta("tllines",{updatable:!0,points:this._tlLinesPoints,instance:this._lightHelperFrustumMeshes[4]},this._scene),ta("bllines",{updatable:!0,points:this._blLinesPoints,instance:this._lightHelperFrustumMeshes[5]},this._scene),ae.Vector3[2].toArray(this._nearPlaneVertices,0),ae.Vector3[3].toArray(this._nearPlaneVertices,3),ae.Vector3[4].toArray(this._nearPlaneVertices,6),ae.Vector3[5].toArray(this._nearPlaneVertices,9),(s=this._lightHelperFrustumMeshes[6].geometry)==null||s.updateVerticesDataDirectly("position",this._nearPlaneVertices,0),ae.Vector3[6].toArray(this._farPlaneVertices,0),ae.Vector3[7].toArray(this._farPlaneVertices,3),ae.Vector3[8].toArray(this._farPlaneVertices,6),ae.Vector3[9].toArray(this._farPlaneVertices,9),(r=this._lightHelperFrustumMeshes[7].geometry)==null||r.updateVerticesDataDirectly("position",this._farPlaneVertices,0),ae.Vector3[2].toArray(this._rightPlaneVertices,0),ae.Vector3[6].toArray(this._rightPlaneVertices,3),ae.Vector3[7].toArray(this._rightPlaneVertices,6),ae.Vector3[3].toArray(this._rightPlaneVertices,9),(n=this._lightHelperFrustumMeshes[8].geometry)==null||n.updateVerticesDataDirectly("position",this._rightPlaneVertices,0),ae.Vector3[5].toArray(this._leftPlaneVertices,0),ae.Vector3[9].toArray(this._leftPlaneVertices,3),ae.Vector3[8].toArray(this._leftPlaneVertices,6),ae.Vector3[4].toArray(this._leftPlaneVertices,9),(o=this._lightHelperFrustumMeshes[9].geometry)==null||o.updateVerticesDataDirectly("position",this._leftPlaneVertices,0),ae.Vector3[2].toArray(this._topPlaneVertices,0),ae.Vector3[6].toArray(this._topPlaneVertices,3),ae.Vector3[9].toArray(this._topPlaneVertices,6),ae.Vector3[5].toArray(this._topPlaneVertices,9),(l=this._lightHelperFrustumMeshes[10].geometry)==null||l.updateVerticesDataDirectly("position",this._topPlaneVertices,0),ae.Vector3[3].toArray(this._bottomPlaneVertices,0),ae.Vector3[7].toArray(this._bottomPlaneVertices,3),ae.Vector3[8].toArray(this._bottomPlaneVertices,6),ae.Vector3[4].toArray(this._bottomPlaneVertices,9),(c=this._lightHelperFrustumMeshes[11].geometry)==null||c.updateVerticesDataDirectly("position",this._bottomPlaneVertices,0)}dispose(){this._lightHelperFrustumMeshes.forEach(e=>{var t;(t=e.material)==null||t.dispose(),e.dispose()}),this._rootNode.dispose()}_createGeometry(){this._rootNode=new Si("directionalLightHelperRoot_"+this._light.name,this._scene),this._rootNode.parent=this._light.parent,this._nearLinesPoints=[ae.Vector3[0],ae.Vector3[1],ae.Vector3[2],ae.Vector3[3],ae.Vector3[4]];const e=ta("nearlines",{updatable:!0,points:this._nearLinesPoints},this._scene);e.parent=this._rootNode,e.alwaysSelectAsActiveMesh=!0,this._farLinesPoints=[ae.Vector3[5],ae.Vector3[6],ae.Vector3[7],ae.Vector3[8],ae.Vector3[9]];const t=ta("farlines",{updatable:!0,points:this._farLinesPoints},this._scene);t.parent=this._rootNode,t.alwaysSelectAsActiveMesh=!0,this._trLinesPoints=[ae.Vector3[10],ae.Vector3[11]];const i=ta("trlines",{updatable:!0,points:this._trLinesPoints},this._scene);i.parent=this._rootNode,i.alwaysSelectAsActiveMesh=!0,this._brLinesPoints=[ae.Vector3[12],ae.Vector3[0]];const s=ta("brlines",{updatable:!0,points:this._brLinesPoints},this._scene);s.parent=this._rootNode,s.alwaysSelectAsActiveMesh=!0,this._tlLinesPoints=[ae.Vector3[1],ae.Vector3[2]];const r=ta("tllines",{updatable:!0,points:this._tlLinesPoints},this._scene);r.parent=this._rootNode,r.alwaysSelectAsActiveMesh=!0,this._blLinesPoints=[ae.Vector3[3],ae.Vector3[4]];const n=ta("bllines",{updatable:!0,points:this._blLinesPoints},this._scene);n.parent=this._rootNode,n.alwaysSelectAsActiveMesh=!0,this._lightHelperFrustumMeshes.push(e,t,i,s,r,n);const o=(l,c,u)=>{const f=new Ne(l+"plane",this._scene),p=new Bt(l+"PlaneMat",this._scene);f.material=p,f.parent=this._rootNode,f.alwaysSelectAsActiveMesh=!0,p.emissiveColor=c,p.alpha=this.transparency,p.backFaceCulling=!1,p.disableLighting=!0;const m=[0,1,2,0,2,3],_=new wt;_.positions=u,_.indices=m,_.applyToMesh(f,!0),this._lightHelperFrustumMeshes.push(f)};this._nearPlaneVertices=[0,0,0,0,0,0,0,0,0,0,0,0],this._farPlaneVertices=[0,0,0,0,0,0,0,0,0,0,0,0],this._rightPlaneVertices=[0,0,0,0,0,0,0,0,0,0,0,0],this._leftPlaneVertices=[0,0,0,0,0,0,0,0,0,0,0,0],this._topPlaneVertices=[0,0,0,0,0,0,0,0,0,0,0,0],this._bottomPlaneVertices=[0,0,0,0,0,0,0,0,0,0,0,0],o("near",new Pe(1,0,0),this._nearPlaneVertices),o("far",new Pe(.3,0,0),this._farPlaneVertices),o("right",new Pe(0,1,0),this._rightPlaneVertices),o("left",new Pe(0,.3,0),this._leftPlaneVertices),o("top",new Pe(0,0,1),this._topPlaneVertices),o("bottom",new Pe(0,0,.3),this._bottomPlaneVertices),this._nearLinesPoints[0]=ae.Vector3[2],this._nearLinesPoints[1]=ae.Vector3[3],this._nearLinesPoints[2]=ae.Vector3[4],this._nearLinesPoints[3]=ae.Vector3[5],this._nearLinesPoints[4]=ae.Vector3[2],this._farLinesPoints[0]=ae.Vector3[6],this._farLinesPoints[1]=ae.Vector3[7],this._farLinesPoints[2]=ae.Vector3[8],this._farLinesPoints[3]=ae.Vector3[9],this._farLinesPoints[4]=ae.Vector3[6],this._trLinesPoints[0]=ae.Vector3[2],this._trLinesPoints[1]=ae.Vector3[6],this._brLinesPoints[0]=ae.Vector3[3],this._brLinesPoints[1]=ae.Vector3[7],this._tlLinesPoints[0]=ae.Vector3[4],this._tlLinesPoints[1]=ae.Vector3[8],this._blLinesPoints[0]=ae.Vector3[5],this._blLinesPoints[1]=ae.Vector3[9]}_getInvertViewMatrix(){return me.LookAtLHToRef(this._light.position,this._light.position.add(this._light.direction),P.UpReadOnly,this._inverseViewMatrix),this._inverseViewMatrix.invertToRef(this._inverseViewMatrix),this._inverseViewMatrix}}class _0e{constructor(){this.renderWidth=512,this.renderHeight=256,this.textureSize=512,this.deterministicLockstep=!1,this.lockstepMaxSteps=4}}class v0e extends Qt{isDeterministicLockStep(){return this._options.deterministicLockstep}getLockstepMaxSteps(){return this._options.lockstepMaxSteps}getHardwareScalingLevel(){return 1}constructor(e=new _0e){super(null),e.deterministicLockstep===void 0&&(e.deterministicLockstep=!1),e.timeStep!==void 0&&(this._timeStep=e.timeStep),e.lockstepMaxSteps===void 0&&(e.lockstepMaxSteps=4),this._options=e,Ec.SetMatrixPrecision(!!e.useHighPrecisionMatrix),this._caps={maxTexturesImageUnits:16,maxVertexTextureImageUnits:16,maxCombinedTexturesImageUnits:32,maxTextureSize:512,maxCubemapTextureSize:512,maxDrawBuffers:0,maxRenderTextureSize:512,maxVertexAttribs:16,maxVaryingVectors:16,maxFragmentUniformVectors:16,maxVertexUniformVectors:16,standardDerivatives:!1,astc:null,pvrtc:null,etc1:null,etc2:null,bptc:null,maxAnisotropy:0,uintIndices:!1,fragmentDepthSupported:!1,highPrecisionShaderSupported:!0,colorBufferFloat:!1,supportFloatTexturesResolve:!1,rg11b10ufColorRenderable:!1,textureFloat:!1,textureFloatLinearFiltering:!1,textureFloatRender:!1,textureHalfFloat:!1,textureHalfFloatLinearFiltering:!1,textureHalfFloatRender:!1,textureLOD:!1,texelFetch:!1,drawBuffersExtension:!1,depthTextureExtension:!1,vertexArrayObject:!1,instancedArrays:!1,supportOcclusionQuery:!1,canUseTimestampForTimerQuery:!1,maxMSAASamples:1,blendMinMax:!1,canUseGLInstanceID:!1,canUseGLVertexID:!1,supportComputeShaders:!1,supportSRGBBuffers:!1,supportTransformFeedbacks:!1,textureMaxLevel:!1,texture2DArrayMaxLayerCount:128,disableMorphTargetTexture:!1,textureNorm16:!1},this._features={forceBitmapOverHTMLImageElement:!1,supportRenderAndCopyToLodForFloatTextures:!1,supportDepthStencilTexture:!1,supportShadowSamplers:!1,uniformBufferHardCheckMatrix:!1,allowTexturePrefiltering:!1,trackUbosInFrame:!1,checkUbosContentBeforeUpload:!1,supportCSM:!1,basisNeedsPOT:!1,support3DTextures:!1,needTypeSuffixInShaderConstants:!1,supportMSAA:!1,supportSSAO2:!1,supportIBLShadows:!1,supportExtendedTextureFormats:!1,supportSwitchCaseInShader:!1,supportSyncTextureRead:!1,needsInvertingBitmap:!1,useUBOBindingCache:!1,needShaderCodeInlining:!1,needToAlwaysBindUniformBuffers:!1,supportRenderPasses:!0,supportSpriteInstancing:!1,forceVertexBufferStrideAndOffsetMultiple4Bytes:!1,_checkNonFloatVertexBuffersDontRecreatePipelineContext:!1,_collectUbosUpdatedInFrame:!1},e.renderingCanvas&&(this._renderingCanvas=e.renderingCanvas),de.Log(`Babylon.js v${Qt.Version} - Null engine`);const t=typeof self<"u"?self:typeof global<"u"?global:window;typeof URL>"u"&&(t.URL={createObjectURL:function(){},revokeObjectURL:function(){}}),typeof Blob>"u"&&(t.Blob=function(){})}createVertexBuffer(e){const t=new Fv;return t.references=1,t}createIndexBuffer(e){const t=new Fv;return t.references=1,t}clear(e,t,i,s=!1){}getRenderWidth(e=!1){return!e&&this._currentRenderTarget?this._currentRenderTarget.width:this._options.renderWidth}getRenderHeight(e=!1){return!e&&this._currentRenderTarget?this._currentRenderTarget.height:this._options.renderHeight}setViewport(e,t,i){this._cachedViewport=e}createShaderProgram(e,t,i,s,r){return{__SPECTOR_rebuildProgram:null}}getUniforms(e,t){return[]}getAttributes(e,t){return[]}bindSamplers(e){this._currentEffect=null}enableEffect(e){e=e!==null&&MG(e)?e.effect:e,this._currentEffect=e,e&&(e.onBind&&e.onBind(e),e._onBindObservable&&e._onBindObservable.notifyObservers(e))}setStateCullFaceType(e,t){}setState(e,t=0,i,s=!1,r,n,o=0){}setIntArray(e,t){return!0}setIntArray2(e,t){return!0}setIntArray3(e,t){return!0}setIntArray4(e,t){return!0}setFloatArray(e,t){return!0}setFloatArray2(e,t){return!0}setFloatArray3(e,t){return!0}setFloatArray4(e,t){return!0}setArray(e,t){return!0}setArray2(e,t){return!0}setArray3(e,t){return!0}setArray4(e,t){return!0}setMatrices(e,t){return!0}setMatrix3x3(e,t){return!0}setMatrix2x2(e,t){return!0}setFloat(e,t){return!0}setFloat2(e,t,i){return!0}setFloat3(e,t,i,s){return!0}setBool(e,t){return!0}setFloat4(e,t,i,s,r){return!0}setAlphaMode(e,t=!1){this._alphaMode!==e&&(this.alphaState.alphaBlend=e!==0,t||this.setDepthWrite(e===0),this._alphaMode=e)}bindBuffers(e,t,i){}wipeCaches(e){this.preventCacheWipeBetweenFrames||(this.resetTextureCache(),this._currentEffect=null,e&&(this._currentProgram=null,this._stencilStateComposer.reset(),this.depthCullingState.reset(),this.alphaState.reset()),this._cachedVertexBuffers=null,this._cachedIndexBuffer=null,this._cachedEffectForVertexBuffers=null)}draw(e,t,i,s){}drawElementsType(e,t,i,s){}drawArraysType(e,t,i,s){}_createTexture(){return{}}_releaseTexture(e){}createTexture(e,t,i,s,r=3,n=null,o=null,l=null,c=null,u=null,f=null,p){const m=new gr(this,1),_=String(e);return m.url=_,m.generateMipMaps=!t,m.samplingMode=r,m.invertY=i,m.baseWidth=this._options.textureSize,m.baseHeight=this._options.textureSize,m.width=this._options.textureSize,m.height=this._options.textureSize,u&&(m.format=u),m.isReady=!0,n&&setTimeout(()=>{n(m)}),this._internalTexturesCache.push(m),m}_createHardwareRenderTargetWrapper(e,t,i){const s=new ww(e,t,i,this);return this._renderTargetWrapperCache.push(s),s}createRenderTargetTexture(e,t){const i=this._createHardwareRenderTargetWrapper(!1,!1,e),s={};t!==void 0&&typeof t=="object"?(s.generateMipMaps=t.generateMipMaps,s.generateDepthBuffer=t.generateDepthBuffer===void 0?!0:t.generateDepthBuffer,s.generateStencilBuffer=s.generateDepthBuffer&&t.generateStencilBuffer,s.type=t.type===void 0?0:t.type,s.samplingMode=t.samplingMode===void 0?3:t.samplingMode):(s.generateMipMaps=t,s.generateDepthBuffer=!0,s.generateStencilBuffer=!1,s.type=0,s.samplingMode=3);const r=new gr(this,5),n=e.width||e,o=e.height||e;return i._generateDepthBuffer=s.generateDepthBuffer,i._generateStencilBuffer=!!s.generateStencilBuffer,r.baseWidth=n,r.baseHeight=o,r.width=n,r.height=o,r.isReady=!0,r.samples=1,r.generateMipMaps=!!s.generateMipMaps,r.samplingMode=s.samplingMode,r.type=s.type,this._internalTexturesCache.push(r),i}createRenderTargetCubeTexture(e,t){const i=this._createHardwareRenderTargetWrapper(!1,!0,e),s={generateMipMaps:!0,generateDepthBuffer:!0,generateStencilBuffer:!1,type:0,samplingMode:3,...t};s.generateStencilBuffer=s.generateDepthBuffer&&s.generateStencilBuffer,(s.type===1&&!this._caps.textureFloatLinearFiltering||s.type===2&&!this._caps.textureHalfFloatLinearFiltering)&&(s.samplingMode=1),i._generateDepthBuffer=s.generateDepthBuffer,i._generateStencilBuffer=!!s.generateStencilBuffer;const r=new gr(this,5);return r.baseWidth=e,r.baseHeight=e,r.width=e,r.height=e,r.isReady=!0,r.isCube=!0,r.samples=1,r.generateMipMaps=!!s.generateMipMaps,r.samplingMode=s.samplingMode,r.type=s.type,this._internalTexturesCache.push(r),i}updateTextureSamplingMode(e,t){t.samplingMode=e}createRawTexture(e,t,i,s,r,n,o,l=null,c=0,u=0,f=!1){const p=new gr(this,3);return p.baseWidth=t,p.baseHeight=i,p.width=t,p.height=i,p.format=s,p.generateMipMaps=r,p.samplingMode=o,p.invertY=n,p._compression=l,p.type=c,p._useSRGBBuffer=f,this._doNotHandleContextLost||(p._bufferView=e),p}updateRawTexture(e,t,i,s,r=null,n=0,o=!1){e&&(e._bufferView=t,e.format=i,e.invertY=s,e._compression=r,e.type=n,e._useSRGBBuffer=o)}bindFramebuffer(e,t,i,s,r){this._currentRenderTarget&&this.unBindFramebuffer(this._currentRenderTarget),this._currentRenderTarget=e,this._currentFramebuffer=null,this._cachedViewport&&!r&&this.setViewport(this._cachedViewport,i,s)}unBindFramebuffer(e,t=!1,i){this._currentRenderTarget=null,i&&i(),this._currentFramebuffer=null}createDynamicVertexBuffer(e){const t=new Fv;return t.references=1,t.capacity=1,t}updateDynamicTexture(e,t,i,s=!1,r){}areAllEffectsReady(){return!0}getError(){return 0}_getUnpackAlignement(){return 1}_unpackFlipY(e){}updateDynamicIndexBuffer(e,t,i=0){}updateDynamicVertexBuffer(e,t,i,s){}_bindTextureDirectly(e,t){return this._boundTexturesCache[this._activeChannel]!==t?(this._boundTexturesCache[this._activeChannel]=t,!0):!1}_bindTexture(e,t){e<0||this._bindTextureDirectly(0,t)}_deleteBuffer(e){}releaseEffects(){}displayLoadingUI(){}hideLoadingUI(){}set loadingUIText(e){}flushFramebuffer(){}_uploadCompressedDataToTextureDirectly(e,t,i,s,r,n=0,o=0){}_uploadDataToTextureDirectly(e,t,i=0,s=0){}_uploadArrayBufferViewToTexture(e,t,i=0,s=0){}_uploadImageToTexture(e,t,i=0,s=0){}}dt.prototype.getGPUFrameTimeCounter=function(){return this._gpuFrameTime||(this._gpuFrameTime=new wo),this._gpuFrameTime},dt.prototype.captureGPUFrameTime=function(a){};class A0e{constructor(){this.occlusionInternalRetryCounter=0,this.isOcclusionQueryInProgress=!1,this.isOccluded=!1,this.occlusionRetryCount=-1,this.occlusionType=cr.OCCLUSION_TYPE_NONE,this.occlusionQueryAlgorithmType=cr.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE,this.forceRenderingWhenOccluded=!1}}dt.prototype.createQuery=function(){return null},dt.prototype.deleteQuery=function(a){return this},dt.prototype.isQueryResultAvailable=function(a){return!1},dt.prototype.getQueryResult=function(a){return 0},dt.prototype.beginOcclusionQuery=function(a,e){return!1},dt.prototype.endOcclusionQuery=function(a){return this},Object.defineProperty(cr.prototype,"isOcclusionQueryInProgress",{get:function(){return this._occlusionDataStorage.isOcclusionQueryInProgress},set:function(a){this._occlusionDataStorage.isOcclusionQueryInProgress=a},enumerable:!1,configurable:!0}),Object.defineProperty(cr.prototype,"_occlusionDataStorage",{get:function(){return this.__occlusionDataStorage||(this.__occlusionDataStorage=new A0e),this.__occlusionDataStorage},enumerable:!1,configurable:!0}),Object.defineProperty(cr.prototype,"isOccluded",{get:function(){return this._occlusionDataStorage.isOccluded},set:function(a){this._occlusionDataStorage.isOccluded=a},enumerable:!0,configurable:!0}),Object.defineProperty(cr.prototype,"occlusionQueryAlgorithmType",{get:function(){return this._occlusionDataStorage.occlusionQueryAlgorithmType},set:function(a){this._occlusionDataStorage.occlusionQueryAlgorithmType=a},enumerable:!0,configurable:!0}),Object.defineProperty(cr.prototype,"occlusionType",{get:function(){return this._occlusionDataStorage.occlusionType},set:function(a){this._occlusionDataStorage.occlusionType=a},enumerable:!0,configurable:!0}),Object.defineProperty(cr.prototype,"occlusionRetryCount",{get:function(){return this._occlusionDataStorage.occlusionRetryCount},set:function(a){this._occlusionDataStorage.occlusionRetryCount=a},enumerable:!0,configurable:!0}),Object.defineProperty(cr.prototype,"forceRenderingWhenOccluded",{get:function(){return this._occlusionDataStorage.forceRenderingWhenOccluded},set:function(a){this._occlusionDataStorage.forceRenderingWhenOccluded=a},enumerable:!0,configurable:!0}),cr.prototype._checkOcclusionQuery=function(){const a=this._occlusionDataStorage;if(a.occlusionType===cr.OCCLUSION_TYPE_NONE)return a.isOccluded=!1,!1;const e=this.getEngine();if(!e.getCaps().supportOcclusionQuery||!e.isQueryResultAvailable)return a.isOccluded=!1,!1;if(this.isOcclusionQueryInProgress&&this._occlusionQuery!==null&&this._occlusionQuery!==void 0)if(e.isQueryResultAvailable(this._occlusionQuery)){const s=e.getQueryResult(this._occlusionQuery);a.isOcclusionQueryInProgress=!1,a.occlusionInternalRetryCounter=0,a.isOccluded=!(s>0)}else if(a.occlusionInternalRetryCounter++,a.occlusionRetryCount!==-1&&a.occlusionInternalRetryCounter>a.occlusionRetryCount)a.isOcclusionQueryInProgress=!1,a.occlusionInternalRetryCounter=0,a.isOccluded=a.occlusionType===cr.OCCLUSION_TYPE_OPTIMISTIC?!1:a.isOccluded;else return a.occlusionType===cr.OCCLUSION_TYPE_OPTIMISTIC?!1:a.isOccluded;const t=this.getScene();if(t.getBoundingBoxRenderer){const i=t.getBoundingBoxRenderer();this._occlusionQuery===null&&(this._occlusionQuery=e.createQuery()),this._occlusionQuery&&e.beginOcclusionQuery(a.occlusionQueryAlgorithmType,this._occlusionQuery)&&(i.renderOcclusionBoundingBox(this),e.endOcclusionQuery(a.occlusionQueryAlgorithmType),this._occlusionDataStorage.isOcclusionQueryInProgress=!0)}return a.isOccluded};class Dwe{}const C0e=new xe,x0e=new xe;Object.defineProperty(dt.prototype,"onBeforeViewRenderObservable",{get:function(){return C0e}}),Object.defineProperty(dt.prototype,"onAfterViewRenderObservable",{get:function(){return x0e}}),Object.defineProperty(dt.prototype,"inputElement",{get:function(){return this._inputElement},set:function(a){var e;this._inputElement!==a&&(this._inputElement=a,(e=this._onEngineViewChanged)==null||e.call(this))}}),dt.prototype.getInputElement=function(){return this.inputElement||this.getRenderingCanvas()},dt.prototype.registerView=function(a,e,t){this.views||(this.views=[]);for(const r of this.views)if(r.target===a)return r;const i=this.getRenderingCanvas();i&&(a.width=i.width,a.height=i.height);const s={target:a,camera:e,clearBeforeCopy:t,enabled:!0,id:(Math.random()*1e5).toFixed()};return this.views.push(s),e&&!Array.isArray(e)&&e.onDisposeObservable.add(()=>{this.unRegisterView(a)}),s},dt.prototype.unRegisterView=function(a){if(!this.views||this.views.length===0)return this;for(const e of this.views)if(e.target===a){const t=this.views.indexOf(e);t!==-1&&this.views.splice(t,1);break}return this},dt.prototype._renderViewStep=function(a){const e=a.target,t=e.getContext("2d");if(!t)return!0;const i=this.getRenderingCanvas();C0e.notifyObservers(a);const s=a.camera;let r=null,n=null,o=null;if(s&&(o=Array.isArray(s)?s[0].getScene():s.getScene(),r=o.activeCamera,n=o.activeCameras,Array.isArray(s)?o.activeCameras=s:(o.activeCamera=s,o.activeCameras=null)),this.activeView=a,a.customResize)a.customResize(e);else{const l=Math.floor(e.clientWidth/this._hardwareScalingLevel),c=Math.floor(e.clientHeight/this._hardwareScalingLevel),u=l!==e.width||i.width!==e.width||c!==e.height||i.height!==e.height;e.clientWidth&&e.clientHeight&&u&&(e.width=l,e.height=c,this.setSize(l,c))}return!i.width||!i.height?!1:(this._renderFrame(),this.flushFramebuffer(),a.clearBeforeCopy&&t.clearRect(0,0,i.width,i.height),t.drawImage(i,0,0),o&&(o.activeCameras=n,o.activeCamera=r),x0e.notifyObservers(a),!0)},dt.prototype._renderViews=function(){if(!this.views||this.views.length===0||!this.getRenderingCanvas())return!1;let e;for(const t of this.views){if(!t.enabled)continue;if(t.target===this.inputElement){e=t;continue}if(!this._renderViewStep(t))return!1}return e&&!this._renderViewStep(e)?!1:(this.activeView=null,!0)},dt.prototype._debugPushGroup=function(a,e){},dt.prototype._debugPopGroup=function(a){},dt.prototype._debugInsertMarker=function(a,e){},dt.prototype._debugFlushPendingCommands=function(){};class bQ{constructor(){this._timeElapsedQueryEnded=!1}}Zi.prototype.createQuery=function(){const a=this._gl.createQuery();if(!a)throw new Error("Unable to create Occlusion Query");return a},Zi.prototype.deleteQuery=function(a){return this._gl.deleteQuery(a),this},Zi.prototype.isQueryResultAvailable=function(a){return this._gl.getQueryParameter(a,this._gl.QUERY_RESULT_AVAILABLE)},Zi.prototype.getQueryResult=function(a){return this._gl.getQueryParameter(a,this._gl.QUERY_RESULT)},Zi.prototype.beginOcclusionQuery=function(a,e){const t=this._getGlAlgorithmType(a);return this._gl.beginQuery(t,e),!0},Zi.prototype.endOcclusionQuery=function(a){const e=this._getGlAlgorithmType(a);return this._gl.endQuery(e),this},Zi.prototype._createTimeQuery=function(){const a=this.getCaps().timerQuery;return a.createQueryEXT?a.createQueryEXT():this.createQuery()},Zi.prototype._deleteTimeQuery=function(a){const e=this.getCaps().timerQuery;if(e.deleteQueryEXT){e.deleteQueryEXT(a);return}this.deleteQuery(a)},Zi.prototype._getTimeQueryResult=function(a){const e=this.getCaps().timerQuery;return e.getQueryObjectEXT?e.getQueryObjectEXT(a,e.QUERY_RESULT_EXT):this.getQueryResult(a)},Zi.prototype._getTimeQueryAvailability=function(a){const e=this.getCaps().timerQuery;return e.getQueryObjectEXT?e.getQueryObjectEXT(a,e.QUERY_RESULT_AVAILABLE_EXT):this.isQueryResultAvailable(a)},Zi.prototype.startTimeQuery=function(){const a=this.getCaps(),e=a.timerQuery;if(!e)return null;const t=new bQ;if(this._gl.getParameter(e.GPU_DISJOINT_EXT),a.canUseTimestampForTimerQuery)t._startTimeQuery=this._createTimeQuery(),t._startTimeQuery&&e.queryCounterEXT(t._startTimeQuery,e.TIMESTAMP_EXT);else{if(this._currentNonTimestampToken)return this._currentNonTimestampToken;t._timeElapsedQuery=this._createTimeQuery(),t._timeElapsedQuery&&(e.beginQueryEXT?e.beginQueryEXT(e.TIME_ELAPSED_EXT,t._timeElapsedQuery):this._gl.beginQuery(e.TIME_ELAPSED_EXT,t._timeElapsedQuery)),this._currentNonTimestampToken=t}return t},Zi.prototype.endTimeQuery=function(a){const e=this.getCaps(),t=e.timerQuery;if(!t||!a)return-1;if(e.canUseTimestampForTimerQuery){if(!a._startTimeQuery)return-1;a._endTimeQuery||(a._endTimeQuery=this._createTimeQuery(),a._endTimeQuery&&t.queryCounterEXT(a._endTimeQuery,t.TIMESTAMP_EXT))}else if(!a._timeElapsedQueryEnded){if(!a._timeElapsedQuery)return-1;t.endQueryEXT?t.endQueryEXT(t.TIME_ELAPSED_EXT):(this._gl.endQuery(t.TIME_ELAPSED_EXT),this._currentNonTimestampToken=null),a._timeElapsedQueryEnded=!0}const i=this._gl.getParameter(t.GPU_DISJOINT_EXT);let s=!1;if(a._endTimeQuery?s=this._getTimeQueryAvailability(a._endTimeQuery):a._timeElapsedQuery&&(s=this._getTimeQueryAvailability(a._timeElapsedQuery)),s&&!i){let r=0;if(e.canUseTimestampForTimerQuery){if(!a._startTimeQuery||!a._endTimeQuery)return-1;const n=this._getTimeQueryResult(a._startTimeQuery);r=this._getTimeQueryResult(a._endTimeQuery)-n,this._deleteTimeQuery(a._startTimeQuery),this._deleteTimeQuery(a._endTimeQuery),a._startTimeQuery=null,a._endTimeQuery=null}else{if(!a._timeElapsedQuery)return-1;r=this._getTimeQueryResult(a._timeElapsedQuery),this._deleteTimeQuery(a._timeElapsedQuery),a._timeElapsedQuery=null,a._timeElapsedQueryEnded=!1}return r}return-1},Zi.prototype.captureGPUFrameTime=function(a){if(a!==this._captureGPUFrameTime)if(this._captureGPUFrameTime=a,a){const e=this.getGPUFrameTimeCounter();this._onBeginFrameObserver=this.onBeginFrameObservable.add(()=>{this._gpuFrameTimeToken||(this._gpuFrameTimeToken=this.startTimeQuery())}),this._onEndFrameObserver=this.onEndFrameObservable.add(()=>{if(!this._gpuFrameTimeToken)return;const t=this.endTimeQuery(this._gpuFrameTimeToken);t>-1&&(this._gpuFrameTimeToken=null,e.fetchNewFrame(),e.addCount(t,!0))})}else this.onBeginFrameObservable.remove(this._onBeginFrameObserver),this._onBeginFrameObserver=null,this.onEndFrameObservable.remove(this._onEndFrameObserver),this._onEndFrameObserver=null},Zi.prototype._getGlAlgorithmType=function(a){return a===cr.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE?this._gl.ANY_SAMPLES_PASSED_CONSERVATIVE:this._gl.ANY_SAMPLES_PASSED};var Nwe=!0;Qt.prototype.createTransformFeedback=function(){const a=this._gl.createTransformFeedback();if(!a)throw new Error("Unable to create Transform Feedback");return a},Qt.prototype.deleteTransformFeedback=function(a){this._gl.deleteTransformFeedback(a)},Qt.prototype.bindTransformFeedback=function(a){this._gl.bindTransformFeedback(this._gl.TRANSFORM_FEEDBACK,a)},Qt.prototype.beginTransformFeedback=function(a=!0){this._gl.beginTransformFeedback(a?this._gl.POINTS:this._gl.TRIANGLES)},Qt.prototype.endTransformFeedback=function(){this._gl.endTransformFeedback()},Qt.prototype.setTranformFeedbackVaryings=function(a,e){this._gl.transformFeedbackVaryings(a,e,this._gl.INTERLEAVED_ATTRIBS)},Qt.prototype.bindTransformFeedbackBuffer=function(a){this._gl.bindBufferBase(this._gl.TRANSFORM_FEEDBACK_BUFFER,0,a?a.underlyingResource:null)},Qt.prototype.readTransformFeedbackBuffer=function(a){this._gl.getBufferSubData(this._gl.TRANSFORM_FEEDBACK_BUFFER,0,a)},Zi.prototype.updateVideoTexture=function(a,e,t){if(!a||a._isDisabled)return;const i=this._getInternalFormat(a.format),s=this._getRGBABufferInternalSizedFormat(0,a.format),r=this._bindTextureDirectly(this._gl.TEXTURE_2D,a,!0);this._unpackFlipY(!t);try{if(this._videoTextureSupported===void 0&&(this._gl.getError(),this._gl.texImage2D(this._gl.TEXTURE_2D,0,s,i,this._gl.UNSIGNED_BYTE,e),this._gl.getError()!==0?this._videoTextureSupported=!1:this._videoTextureSupported=!0),this._videoTextureSupported)this._gl.texImage2D(this._gl.TEXTURE_2D,0,s,i,this._gl.UNSIGNED_BYTE,e);else{if(!a._workingCanvas){a._workingCanvas=this.createCanvas(a.width,a.height);const n=a._workingCanvas.getContext("2d");if(!n)throw new Error("Unable to get 2d context");a._workingContext=n,a._workingCanvas.width=a.width,a._workingCanvas.height=a.height}a._workingContext.clearRect(0,0,a.width,a.height),a._workingContext.drawImage(e,0,0,e.videoWidth,e.videoHeight,0,0,a.width,a.height),this._gl.texImage2D(this._gl.TEXTURE_2D,0,s,i,this._gl.UNSIGNED_BYTE,a._workingCanvas)}a.generateMipMaps&&this._gl.generateMipmap(this._gl.TEXTURE_2D),r||this._bindTextureDirectly(this._gl.TEXTURE_2D,null),a.isReady=!0}catch{a._isDisabled=!0}},Zi.prototype.restoreSingleAttachment=function(){const a=this._gl;this.bindAttachments([a.BACK])},Zi.prototype.restoreSingleAttachmentForRenderTarget=function(){const a=this._gl;this.bindAttachments([a.COLOR_ATTACHMENT0])},Zi.prototype.buildTextureLayout=function(a){const e=this._gl,t=[];for(let i=0;i<a.length;i++)a[i]?t.push(e["COLOR_ATTACHMENT"+i]):t.push(e.NONE);return t},Zi.prototype.bindAttachments=function(a){this._gl.drawBuffers(a)},Zi.prototype.unBindMultiColorAttachmentFramebuffer=function(a,e=!1,t){this._currentRenderTarget=null,a.disableAutomaticMSAAResolve||this.resolveMultiFramebuffer(a),e||this.generateMipMapsMultiFramebuffer(a),t&&(a._MSAAFramebuffer&&this._bindUnboundFramebuffer(a._framebuffer),t()),this._bindUnboundFramebuffer(null)},Zi.prototype.createMultipleRenderTarget=function(a,e,t=!0){let i=!1,s=!0,r=!1,n=!1,o,l=1,c=1;const u=0,f=3,p=!1,m=5,_=3553;let d=[],h=[],x=[],A=[],S=[],E=[],b=[],M=[],T=[],O=!1;const R=this._createHardwareRenderTargetWrapper(!0,!1,a);e!==void 0&&(i=e.generateMipMaps===void 0?!1:e.generateMipMaps,s=e.generateDepthBuffer===void 0?!0:e.generateDepthBuffer,r=e.generateStencilBuffer===void 0?!1:e.generateStencilBuffer,n=e.generateDepthTexture===void 0?!1:e.generateDepthTexture,l=e.textureCount??1,c=e.samples??c,d=e.types||d,h=e.samplingModes||h,x=e.useSRGBBuffers||x,A=e.formats||A,S=e.targetTypes||S,E=e.faceIndex||E,b=e.layerIndex||b,M=e.layerCounts||M,T=e.labels||T,O=e.dontCreateTextures??!1,this.webGLVersion>1&&(e.depthTextureFormat===13||e.depthTextureFormat===17||e.depthTextureFormat===16||e.depthTextureFormat===14||e.depthTextureFormat===18)&&(o=e.depthTextureFormat)),o===void 0&&(o=r?13:14);const I=this._gl,N=this._currentFramebuffer,w=I.createFramebuffer();this._bindUnboundFramebuffer(w);const D=a.width??a,k=a.height??a,Y=[],V=[],ee=this.webGLVersion>1&&(o===13||o===17||o===18);R.label=(e==null?void 0:e.label)??"MultiRenderTargetWrapper",R._framebuffer=w,R._generateDepthBuffer=n||s,R._generateStencilBuffer=n?ee:r,R._depthStencilBuffer=this._setupFramebufferDepthAttachments(R._generateStencilBuffer,R._generateDepthBuffer,D,k,1,o),R._attachments=V;for(let K=0;K<l;K++){let ie=h[K]||f,ne=d[K]||u,te=x[K]||p;const W=A[K]||m,Q=S[K]||_,re=M[K]??1;(ne===1&&!this._caps.textureFloatLinearFiltering||ne===2&&!this._caps.textureHalfFloatLinearFiltering)&&(ie=1);const oe=this._getSamplingParameters(ie,i);ne===1&&!this._caps.textureFloat&&(ne=0,de.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type")),te=te&&this._caps.supportSRGBBuffers&&(this.webGLVersion>1||this.isWebGPU);const X=this.webGLVersion>1,se=I[X?"COLOR_ATTACHMENT"+K:"COLOR_ATTACHMENT"+K+"_WEBGL"];if(V.push(se),Q===-1||O)continue;const ue=new gr(this,6);Y[K]=ue,I.activeTexture(I["TEXTURE"+K]),I.bindTexture(Q,ue._hardwareTexture.underlyingResource),I.texParameteri(Q,I.TEXTURE_MAG_FILTER,oe.mag),I.texParameteri(Q,I.TEXTURE_MIN_FILTER,oe.min),I.texParameteri(Q,I.TEXTURE_WRAP_S,I.CLAMP_TO_EDGE),I.texParameteri(Q,I.TEXTURE_WRAP_T,I.CLAMP_TO_EDGE);const he=this._getRGBABufferInternalSizedFormat(ne,W,te),fe=this._getInternalFormat(W),Ae=this._getWebGLTextureType(ne);if(X&&(Q===35866||Q===32879))Q===35866?ue.is2DArray=!0:ue.is3D=!0,ue.baseDepth=ue.depth=re,I.texImage3D(Q,0,he,D,k,re,0,fe,Ae,null);else if(Q===34067){for(let Se=0;Se<6;Se++)I.texImage2D(I.TEXTURE_CUBE_MAP_POSITIVE_X+Se,0,he,D,k,0,fe,Ae,null);ue.isCube=!0}else I.texImage2D(I.TEXTURE_2D,0,he,D,k,0,fe,Ae,null);i&&I.generateMipmap(Q),this._bindTextureDirectly(Q,null),ue.baseWidth=D,ue.baseHeight=k,ue.width=D,ue.height=k,ue.isReady=!0,ue.samples=1,ue.generateMipMaps=i,ue.samplingMode=ie,ue.type=ne,ue._useSRGBBuffer=te,ue.format=W,ue.label=T[K]??R.label+"-Texture"+K,this._internalTexturesCache.push(ue)}if(n&&this._caps.depthTextureExtension&&!O){const K=new gr(this,14);let ie=5,ne=I.DEPTH_COMPONENT16,te=I.DEPTH_COMPONENT,W=I.UNSIGNED_SHORT,Q=I.DEPTH_ATTACHMENT;this.webGLVersion<2?ne=I.DEPTH_COMPONENT:o===14?(ie=1,W=I.FLOAT,ne=I.DEPTH_COMPONENT32F):o===18?(ie=0,W=I.FLOAT_32_UNSIGNED_INT_24_8_REV,ne=I.DEPTH32F_STENCIL8,te=I.DEPTH_STENCIL,Q=I.DEPTH_STENCIL_ATTACHMENT):o===16?(ie=0,W=I.UNSIGNED_INT,ne=I.DEPTH_COMPONENT24,Q=I.DEPTH_ATTACHMENT):(o===13||o===17)&&(ie=12,W=I.UNSIGNED_INT_24_8,ne=I.DEPTH24_STENCIL8,te=I.DEPTH_STENCIL,Q=I.DEPTH_STENCIL_ATTACHMENT),this._bindTextureDirectly(I.TEXTURE_2D,K,!0),I.texParameteri(I.TEXTURE_2D,I.TEXTURE_MAG_FILTER,I.NEAREST),I.texParameteri(I.TEXTURE_2D,I.TEXTURE_MIN_FILTER,I.NEAREST),I.texParameteri(I.TEXTURE_2D,I.TEXTURE_WRAP_S,I.CLAMP_TO_EDGE),I.texParameteri(I.TEXTURE_2D,I.TEXTURE_WRAP_T,I.CLAMP_TO_EDGE),I.texImage2D(I.TEXTURE_2D,0,ne,D,k,0,te,W,null),I.framebufferTexture2D(I.FRAMEBUFFER,Q,I.TEXTURE_2D,K._hardwareTexture.underlyingResource,0),this._bindTextureDirectly(I.TEXTURE_2D,null),R._depthStencilTexture=K,R._depthStencilTextureWithStencil=ee,K.baseWidth=D,K.baseHeight=k,K.width=D,K.height=k,K.isReady=!0,K.samples=1,K.generateMipMaps=i,K.samplingMode=1,K.format=o,K.type=ie,K.label=R.label+"-DepthStencil",Y[l]=K,this._internalTexturesCache.push(K)}if(R.setTextures(Y),t&&I.drawBuffers(V),this._bindUnboundFramebuffer(N),R.setLayerAndFaceIndices(b,E),this.resetTextureCache(),!O)this.updateMultipleRenderTargetTextureSampleCount(R,c,t);else if(c>1){const K=I.createFramebuffer();if(!K)throw new Error("Unable to create multi sampled framebuffer");R._samples=c,R._MSAAFramebuffer=K,l>0&&t&&(this._bindUnboundFramebuffer(K),I.drawBuffers(V),this._bindUnboundFramebuffer(N))}return R},Zi.prototype.updateMultipleRenderTargetTextureSampleCount=function(a,e,t=!0){if(this.webGLVersion<2||!a)return 1;if(a.samples===e)return e;const i=this._gl;e=Math.min(e,this.getCaps().maxMSAASamples),a._depthStencilBuffer&&(i.deleteRenderbuffer(a._depthStencilBuffer),a._depthStencilBuffer=null),a._MSAAFramebuffer&&(i.deleteFramebuffer(a._MSAAFramebuffer),a._MSAAFramebuffer=null);const s=a._attachments.length;for(let n=0;n<s;n++){const l=a.textures[n]._hardwareTexture;l==null||l.releaseMSAARenderBuffers()}if(e>1&&typeof i.renderbufferStorageMultisample=="function"){const n=i.createFramebuffer();if(!n)throw new Error("Unable to create multi sampled framebuffer");a._MSAAFramebuffer=n,this._bindUnboundFramebuffer(n);const o=[];for(let l=0;l<s;l++){const c=a.textures[l],u=c._hardwareTexture,f=i[this.webGLVersion>1?"COLOR_ATTACHMENT"+l:"COLOR_ATTACHMENT"+l+"_WEBGL"],p=this._createRenderBuffer(c.width,c.height,e,-1,this._getRGBABufferInternalSizedFormat(c.type,c.format,c._useSRGBBuffer),f);if(!p)throw new Error("Unable to create multi sampled framebuffer");u.addMSAARenderBuffer(p),c.samples=e,o.push(f)}t&&i.drawBuffers(o)}else this._bindUnboundFramebuffer(a._framebuffer);const r=a._depthStencilTexture?a._depthStencilTexture.format:void 0;return a._depthStencilBuffer=this._setupFramebufferDepthAttachments(a._generateStencilBuffer,a._generateDepthBuffer,a.width,a.height,e,r),this._bindUnboundFramebuffer(null),a._samples=e,e},Zi.prototype.generateMipMapsMultiFramebuffer=function(a){const e=a,t=this._gl;if(e.isMulti)for(let i=0;i<e._attachments.length;i++){const s=e.textures[i];s!=null&&s.generateMipMaps&&!(s!=null&&s.isCube)&&!(s!=null&&s.is3D)&&(this._bindTextureDirectly(t.TEXTURE_2D,s,!0),t.generateMipmap(t.TEXTURE_2D),this._bindTextureDirectly(t.TEXTURE_2D,null))}},Zi.prototype.resolveMultiFramebuffer=function(a){const e=a,t=this._gl;if(!e._MSAAFramebuffer||!e.isMulti)return;let i=e.resolveMSAAColors?t.COLOR_BUFFER_BIT:0;i|=e._generateDepthBuffer&&e.resolveMSAADepth?t.DEPTH_BUFFER_BIT:0,i|=e._generateStencilBuffer&&e.resolveMSAAStencil?t.STENCIL_BUFFER_BIT:0;const s=e._attachments,r=s.length;t.bindFramebuffer(t.READ_FRAMEBUFFER,e._MSAAFramebuffer),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,e._framebuffer);for(let n=0;n<r;n++){const o=e.textures[n];for(let l=0;l<r;l++)s[l]=t.NONE;s[n]=t[this.webGLVersion>1?"COLOR_ATTACHMENT"+n:"COLOR_ATTACHMENT"+n+"_WEBGL"],t.readBuffer(s[n]),t.drawBuffers(s),t.blitFramebuffer(0,0,o.width,o.height,0,0,o.width,o.height,i,t.NEAREST)}for(let n=0;n<r;n++)s[n]=t[this.webGLVersion>1?"COLOR_ATTACHMENT"+n:"COLOR_ATTACHMENT"+n+"_WEBGL"];t.drawBuffers(s),t.bindFramebuffer(this._gl.FRAMEBUFFER,e._MSAAFramebuffer)};var SQ;(function(a){a[a.Texture=0]="Texture",a[a.StorageTexture=1]="StorageTexture",a[a.UniformBuffer=2]="UniformBuffer",a[a.StorageBuffer=3]="StorageBuffer",a[a.TextureWithoutSampler=4]="TextureWithoutSampler",a[a.Sampler=5]="Sampler",a[a.ExternalTexture=6]="ExternalTexture",a[a.DataBuffer=7]="DataBuffer"})(SQ||(SQ={})),Zi.prototype.createComputeEffect=function(a,e){throw new Error("createComputeEffect: This engine does not support compute shaders!")},Zi.prototype.createComputePipelineContext=function(){throw new Error("createComputePipelineContext: This engine does not support compute shaders!")},Zi.prototype.createComputeContext=function(){},Zi.prototype.computeDispatch=function(a,e,t,i,s,r,n){throw new Error("computeDispatch: This engine does not support compute shaders!")},Zi.prototype.computeDispatchIndirect=function(a,e,t,i,s,r){throw new Error("computeDispatchIndirect: This engine does not support compute shaders!")},Zi.prototype.areAllComputeEffectsReady=function(){return!0},Zi.prototype.releaseComputeEffects=function(){},Zi.prototype._prepareComputePipelineContext=function(a,e,t,i,s){},Zi.prototype._rebuildComputeEffects=function(){},dt.prototype._executeWhenComputeStateIsCompiled=function(a,e){e(null)},Zi.prototype._releaseComputeEffect=function(a){},Zi.prototype._deleteComputePipelineContext=function(a){};function wwe(a){const e=r=>{const n="\\b"+r+"\\b";return a&&(a===r||a.match(new RegExp(n,"g")))};if(this._excludedCompressedTextures&&this._excludedCompressedTextures.some(e))return a;const t=a.lastIndexOf("."),i=a.lastIndexOf("?"),s=i>-1?a.substring(i,a.length):"";return(t>-1?a.substring(0,t):a)+this._textureFormatInUse+s}Object.defineProperty(Qt.prototype,"texturesSupported",{get:function(){const a=[];return this._caps.astc&&a.push("-astc.ktx"),this._caps.s3tc&&a.push("-dxt.ktx"),this._caps.pvrtc&&a.push("-pvrtc.ktx"),this._caps.etc2&&a.push("-etc2.ktx"),this._caps.etc1&&a.push("-etc1.ktx"),a},enumerable:!0,configurable:!0}),Object.defineProperty(Qt.prototype,"textureFormatInUse",{get:function(){return this._textureFormatInUse||null},enumerable:!0,configurable:!0}),Qt.prototype.setCompressedTextureExclusions=function(a){this._excludedCompressedTextures=a},Qt.prototype.setTextureFormatToUse=function(a){const e=this.texturesSupported;for(let t=0,i=e.length;t<i;t++)for(let s=0,r=a.length;s<r;s++)if(e[t]===a[s].toLowerCase())return this._transformTextureUrl=wwe.bind(this),this._textureFormatInUse=e[t];return this._textureFormatInUse="",this._transformTextureUrl=null,null};class $T{constructor(){const e=new ArrayBuffer($T.DEFAULT_BUFFER_SIZE);this._uint32s=new Uint32Array(e),this._int32s=new Int32Array(e),this._float32s=new Float32Array(e),this._length=$T.DEFAULT_BUFFER_SIZE/4,this._position=0,this._nativeDataStream=new _native.NativeDataStream(()=>{this._flush()})}writeUint32(e){this._flushIfNecessary(1),this._uint32s[this._position++]=e}writeInt32(e){this._flushIfNecessary(1),this._int32s[this._position++]=e}writeFloat32(e){this._flushIfNecessary(1),this._float32s[this._position++]=e}writeUint32Array(e){this._flushIfNecessary(1+e.length),this._uint32s[this._position++]=e.length,this._uint32s.set(e,this._position),this._position+=e.length}writeInt32Array(e){this._flushIfNecessary(1+e.length),this._uint32s[this._position++]=e.length,this._int32s.set(e,this._position),this._position+=e.length}writeFloat32Array(e){this._flushIfNecessary(1+e.length),this._uint32s[this._position++]=e.length,this._float32s.set(e,this._position),this._position+=e.length}writeNativeData(e){this._flushIfNecessary(e.length),this._uint32s.set(e,this._position),this._position+=e.length}writeBoolean(e){this.writeUint32(e?1:0)}_flushIfNecessary(e){this._position+e>this._length&&this._flush()}_flush(){this._nativeDataStream.writeBuffer(this._uint32s.buffer,this._position),this._position=0}}$T.DEFAULT_BUFFER_SIZE=65536;function cH(a,e,t,i){let s=i,r=0,n="";for(;s<t.length;){const o=t.charAt(s);if(n)o===n?n==='"'||n==="'"?t.charAt(s-1)!=="\\"&&(n=""):n="":n==="*/"&&o==="*"&&s+1<t.length&&(t.charAt(s+1)==="/"&&(n=""),n===""&&s++);else switch(o){case a:r++;break;case e:r--;break;case'"':case"'":case"`":n=o;break;case"/":if(s+1<t.length){const l=t.charAt(s+1);l==="/"?n=`
`:l==="*"&&(n="*/")}break}if(s++,r===0)break}return r===0?s-1:-1}function b0e(a,e){for(;e<a.length;){const t=a[e];if(t!==" "&&t!==`
`&&t!=="\r"&&t!=="	"&&t!==`
`&&t!==" ")break;e++}return e}function yQ(a){const e=a.charCodeAt(0);return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e==95}function MQ(a){let e=0,t="",i=!1;const s=[];for(;e<a.length;){const r=a.charAt(e);if(t)r===t?t==='"'||t==="'"?(a.charAt(e-1)!=="\\"&&(t=""),s.push(r)):(t="",i=!1):t==="*/"&&r==="*"&&e+1<a.length?(a.charAt(e+1)==="/"&&(t=""),t===""&&(i=!1,e++)):i||s.push(r);else{switch(r){case'"':case"'":case"`":t=r;break;case"/":if(e+1<a.length){const n=a.charAt(e+1);n==="/"?(t=`
`,i=!0):n==="*"&&(t="*/",i=!0)}break}i||s.push(r)}e++}return s.join("")}function Bwe(a,e,t,i){for(;e>=0&&a.charAt(e)!==t&&a.charAt(e)!==i;)e--;return e}function zwe(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function uH(a,e,t,i){let s=a.indexOf(e);if(s<0)return a;if(t){for(;s++<a.length&&a.charAt(s)!="{";);if(s<a.length){const r=a.substring(0,s+1),n=a.substring(s+1);a=r+t+n}}if(i){const r=a.lastIndexOf("}");a=a.substring(0,r),a+=i+`
}`}return a}class Fy{get code(){return this._sourceCode}constructor(e,t=20){this.debug=!1,this._sourceCode=e,this._numMaxIterations=t,this._functionDescr=[],this.inlineToken="#define inline"}processCode(){this.debug&&de.Log(`Start inlining process (code size=${this._sourceCode.length})...`),this._collectFunctions(),this._processInlining(this._numMaxIterations),this.debug&&de.Log("End of inlining process.")}_collectFunctions(){let e=0;for(;e<this._sourceCode.length;){const t=this._sourceCode.indexOf(this.inlineToken,e);if(t<0)break;const i=this._sourceCode.indexOf("(",t+this.inlineToken.length);if(i<0){this.debug&&de.Warn(`Could not find the opening parenthesis after the token. startIndex=${e}`),e=t+this.inlineToken.length;continue}const s=Fy._RegexpFindFunctionNameAndType.exec(this._sourceCode.substring(t+this.inlineToken.length,i));if(!s){this.debug&&de.Warn(`Could not extract the name/type of the function from: ${this._sourceCode.substring(t+this.inlineToken.length,i)}`),e=t+this.inlineToken.length;continue}const[r,n]=[s[3],s[4]],o=cH("(",")",this._sourceCode,i);if(o<0){this.debug&&de.Warn(`Could not extract the parameters the function '${n}' (type=${r}). funcParamsStartIndex=${i}`),e=t+this.inlineToken.length;continue}const l=this._sourceCode.substring(i+1,o),c=b0e(this._sourceCode,o+1);if(c===this._sourceCode.length){this.debug&&de.Warn(`Could not extract the body of the function '${n}' (type=${r}). funcParamsEndIndex=${o}`),e=t+this.inlineToken.length;continue}const u=cH("{","}",this._sourceCode,c);if(u<0){this.debug&&de.Warn(`Could not extract the body of the function '${n}' (type=${r}). funcBodyStartIndex=${c}`),e=t+this.inlineToken.length;continue}const f=this._sourceCode.substring(c,u+1),p=MQ(l).split(","),m=[];for(let h=0;h<p.length;++h){const x=p[h].trim(),A=x.lastIndexOf(" ");A>=0&&m.push(x.substring(A+1))}r!=="void"&&m.push("return"),this._functionDescr.push({name:n,type:r,parameters:m,body:f,callIndex:0}),e=u+1;const _=t>0?this._sourceCode.substring(0,t):"",d=u+1<this._sourceCode.length-1?this._sourceCode.substring(u+1):"";this._sourceCode=_+d,e-=u+1-t}this.debug&&de.Log(`Collect functions: ${this._functionDescr.length} functions found. functionDescr=${this._functionDescr}`)}_processInlining(e=20){for(;e-->=0&&this._replaceFunctionCallsByCode(););return this.debug&&de.Log(`numMaxIterations is ${e} after inlining process`),e>=0}_replaceFunctionCallsByCode(){let e=!1;for(const t of this._functionDescr){const{name:i,type:s,parameters:r,body:n}=t;let o=0;for(;o<this._sourceCode.length;){const l=this._sourceCode.indexOf(i,o);if(l<0)break;if(l===0||yQ(this._sourceCode.charAt(l-1))){o=l+i.length;continue}const c=b0e(this._sourceCode,l+i.length);if(c===this._sourceCode.length||this._sourceCode.charAt(c)!=="("){o=l+i.length;continue}const u=cH("(",")",this._sourceCode,c);if(u<0){this.debug&&de.Warn(`Could not extract the parameters of the function call. Function '${i}' (type=${s}). callParamsStartIndex=${c}`),o=l+i.length;continue}const f=this._sourceCode.substring(c+1,u),m=(S=>{const E=[];let b=0,M=0;for(;b<S.length;){if(S.charAt(b)==="("){const T=cH("(",")",S,b);if(T<0)return null;b=T}else S.charAt(b)===","&&(E.push(S.substring(M,b)),M=b+1);b++}return M<b&&E.push(S.substring(M,b)),E})(MQ(f));if(m===null){this.debug&&de.Warn(`Invalid function call: can't extract the parameters of the function call. Function '${i}' (type=${s}). callParamsStartIndex=${c}, callParams=`+f),o=l+i.length;continue}const _=[];for(let S=0;S<m.length;++S){const E=m[S].trim();_.push(E)}const d=s!=="void"?i+"_"+t.callIndex++:null;if(d&&_.push(d+" ="),_.length!==r.length){this.debug&&de.Warn(`Invalid function call: not the same number of parameters for the call than the number expected by the function. Function '${i}' (type=${s}). function parameters=${r}, call parameters=${_}`),o=l+i.length;continue}o=u+1;const h=this._replaceNames(n,r,_);let x=l>0?this._sourceCode.substring(0,l):"";const A=u+1<this._sourceCode.length-1?this._sourceCode.substring(u+1):"";if(d){const S=Bwe(this._sourceCode,l-1,`
`,"{");x=this._sourceCode.substring(0,S+1);const E=this._sourceCode.substring(S+1,l);this._sourceCode=x+s+" "+d+`;
`+h+`
`+E+d+A,this.debug&&de.Log(`Replace function call by code. Function '${i}' (type=${s}). injectDeclarationIndex=${S}, call parameters=${_}`)}else this._sourceCode=x+h+A,o+=h.length-(u+1-l),this.debug&&de.Log(`Replace function call by code. Function '${i}' (type=${s}). functionCallIndex=${l}, call parameters=${_}`);e=!0}}return e}_replaceNames(e,t,i){for(let s=0;s<t.length;++s){const r=new RegExp(zwe(t[s]),"g"),n=t[s].length,o=i[s];e=e.replace(r,(l,...c)=>{const u=c[0];return yQ(e.charAt(u-1))||yQ(e.charAt(u+n))?t[s]:o})}return e}}Fy._RegexpFindFunctionNameAndType=/((\s+?)(\w+)\s+(\w+)\s*?)$/;const Fwe=/(flat\s)?\s*varying\s*.*/;class kwe{constructor(){this.shaderLanguage=0}initializeShaders(e){this._nativeProcessingContext=e,this._nativeProcessingContext&&(this._nativeProcessingContext.remappedAttributeNames={},this._nativeProcessingContext.injectInVertexMain="")}attributeProcessor(e){if(!this._nativeProcessingContext)return e.replace("attribute","in");const i=/\s*(?:attribute|in)\s+(\S+)\s+(\S+)\s*;/gm.exec(e);if(i!==null){const s=i[1],r=i[2],n=this._nativeProcessingContext.vertexBufferKindToNumberOfComponents[r];if(n!==void 0){const o=n<0?n===-1?"int":"ivec"+-n:n===1?"uint":"uvec"+n,l=`_int_${r}_`;e=e.replace(i[0],`in ${o} ${l}; ${s} ${r};`),this._nativeProcessingContext.injectInVertexMain+=`${r} = ${s}(${l});
`,this._nativeProcessingContext.remappedAttributeNames[r]=l}else e=e.replace(i[0],`in ${s} ${r};`)}return e}varyingCheck(e,t){return Fwe.test(e)}varyingProcessor(e,t){return e.replace("varying",t?"in":"out")}postProcessor(e,t,i){var n;const s=e.search(/#extension.+GL_EXT_draw_buffers.+require/)!==-1,r=/#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g;if(e=e.replace(r,""),e=e.replace(/texture2D\s*\(/g,"texture("),i){const o=e.search(/layout *\(location *= *0\) *out/g)!==-1;e=e.replace(/texture2DLodEXT\s*\(/g,"textureLod("),e=e.replace(/textureCubeLodEXT\s*\(/g,"textureLod("),e=e.replace(/textureCube\s*\(/g,"texture("),e=e.replace(/gl_FragDepthEXT/g,"gl_FragDepth"),e=e.replace(/gl_FragColor/g,"glFragColor"),e=e.replace(/gl_FragData/g,"glFragData"),e=e.replace(/void\s+?main\s*\(/g,(s||o?"":`layout(location = 0) out vec4 glFragColor;
`)+"void main(")}else if((n=this._nativeProcessingContext)!=null&&n.injectInVertexMain&&(e=uH(e,"void main",this._nativeProcessingContext.injectInVertexMain)),t.indexOf("#define MULTIVIEW")!==-1)return`#extension GL_OVR_multiview2 : require
layout (num_views = 2) in;
`+e;return e}}class Uwe{get isReady(){if(this.compilationError){const e=this.compilationError.message;throw new Error("SHADER ERROR"+(typeof e=="string"?`
`+e:""))}return this.isCompiled}_getVertexShaderCode(){return null}_getFragmentShaderCode(){return null}constructor(e,t,i){this.isCompiled=!1,this.vertexBufferKindToType={},this._valueCache={},this._engine=e,this.isAsync=t,this.shaderProcessingContext=i}_fillEffectInformation(e,t,i,s,r,n,o,l){const c=this._engine;if(c.supportsUniformBuffers)for(const p in t)e.bindUniformBlock(p,t[p]);this._engine.getUniforms(this,i).forEach((p,m)=>{s[i[m]]=p}),this._uniforms=s;let f;for(f=0;f<r.length;f++)e.getUniform(r[f])==null&&(r.splice(f,1),f--);r.forEach((p,m)=>{n[p]=m}),l.push(...c.getAttributes(this,o))}setEngine(e){this._engine=e}dispose(){this._uniforms={}}_cacheMatrix(e,t){const i=this._valueCache[e],s=t.updateFlag;return i!==void 0&&i===s?!1:(this._valueCache[e]=s,!0)}_cacheFloat2(e,t,i){let s=this._valueCache[e];if(!s)return s=[t,i],this._valueCache[e]=s,!0;let r=!1;return s[0]!==t&&(s[0]=t,r=!0),s[1]!==i&&(s[1]=i,r=!0),r}_cacheFloat3(e,t,i,s){let r=this._valueCache[e];if(!r)return r=[t,i,s],this._valueCache[e]=r,!0;let n=!1;return r[0]!==t&&(r[0]=t,n=!0),r[1]!==i&&(r[1]=i,n=!0),r[2]!==s&&(r[2]=s,n=!0),n}_cacheFloat4(e,t,i,s,r){let n=this._valueCache[e];if(!n)return n=[t,i,s,r],this._valueCache[e]=n,!0;let o=!1;return n[0]!==t&&(n[0]=t,o=!0),n[1]!==i&&(n[1]=i,o=!0),n[2]!==s&&(n[2]=s,o=!0),n[3]!==r&&(n[3]=r,o=!0),o}setInt(e,t){const i=this._valueCache[e];i!==void 0&&i===t||this._engine.setInt(this._uniforms[e],t)&&(this._valueCache[e]=t)}setInt2(e,t,i){this._cacheFloat2(e,t,i)&&(this._engine.setInt2(this._uniforms[e],t,i)||(this._valueCache[e]=null))}setInt3(e,t,i,s){this._cacheFloat3(e,t,i,s)&&(this._engine.setInt3(this._uniforms[e],t,i,s)||(this._valueCache[e]=null))}setInt4(e,t,i,s,r){this._cacheFloat4(e,t,i,s,r)&&(this._engine.setInt4(this._uniforms[e],t,i,s,r)||(this._valueCache[e]=null))}setIntArray(e,t){this._valueCache[e]=null,this._engine.setIntArray(this._uniforms[e],t)}setIntArray2(e,t){this._valueCache[e]=null,this._engine.setIntArray2(this._uniforms[e],t)}setIntArray3(e,t){this._valueCache[e]=null,this._engine.setIntArray3(this._uniforms[e],t)}setIntArray4(e,t){this._valueCache[e]=null,this._engine.setIntArray4(this._uniforms[e],t)}setUInt(e,t){const i=this._valueCache[e];i!==void 0&&i===t||this._engine.setUInt(this._uniforms[e],t)&&(this._valueCache[e]=t)}setUInt2(e,t,i){this._cacheFloat2(e,t,i)&&(this._engine.setUInt2(this._uniforms[e],t,i)||(this._valueCache[e]=null))}setUInt3(e,t,i,s){this._cacheFloat3(e,t,i,s)&&(this._engine.setUInt3(this._uniforms[e],t,i,s)||(this._valueCache[e]=null))}setUInt4(e,t,i,s,r){this._cacheFloat4(e,t,i,s,r)&&(this._engine.setUInt4(this._uniforms[e],t,i,s,r)||(this._valueCache[e]=null))}setUIntArray(e,t){this._valueCache[e]=null,this._engine.setUIntArray(this._uniforms[e],t)}setUIntArray2(e,t){this._valueCache[e]=null,this._engine.setUIntArray2(this._uniforms[e],t)}setUIntArray3(e,t){this._valueCache[e]=null,this._engine.setUIntArray3(this._uniforms[e],t)}setUIntArray4(e,t){this._valueCache[e]=null,this._engine.setUIntArray4(this._uniforms[e],t)}setFloatArray(e,t){this._valueCache[e]=null,this._engine.setFloatArray(this._uniforms[e],t)}setFloatArray2(e,t){this._valueCache[e]=null,this._engine.setFloatArray2(this._uniforms[e],t)}setFloatArray3(e,t){this._valueCache[e]=null,this._engine.setFloatArray3(this._uniforms[e],t)}setFloatArray4(e,t){this._valueCache[e]=null,this._engine.setFloatArray4(this._uniforms[e],t)}setArray(e,t){this._valueCache[e]=null,this._engine.setArray(this._uniforms[e],t)}setArray2(e,t){this._valueCache[e]=null,this._engine.setArray2(this._uniforms[e],t)}setArray3(e,t){this._valueCache[e]=null,this._engine.setArray3(this._uniforms[e],t)}setArray4(e,t){this._valueCache[e]=null,this._engine.setArray4(this._uniforms[e],t)}setMatrices(e,t){t&&(this._valueCache[e]=null,this._engine.setMatrices(this._uniforms[e],t))}setMatrix(e,t){this._cacheMatrix(e,t)&&(this._engine.setMatrices(this._uniforms[e],t.asArray())||(this._valueCache[e]=null))}setMatrix3x3(e,t){this._valueCache[e]=null,this._engine.setMatrix3x3(this._uniforms[e],t)}setMatrix2x2(e,t){this._valueCache[e]=null,this._engine.setMatrix2x2(this._uniforms[e],t)}setFloat(e,t){const i=this._valueCache[e];i!==void 0&&i===t||this._engine.setFloat(this._uniforms[e],t)&&(this._valueCache[e]=t)}setBool(e,t){const i=this._valueCache[e];i!==void 0&&i===t||this._engine.setInt(this._uniforms[e],t?1:0)&&(this._valueCache[e]=t?1:0)}setVector2(e,t){this._cacheFloat2(e,t.x,t.y)&&(this._engine.setFloat2(this._uniforms[e],t.x,t.y)||(this._valueCache[e]=null))}setFloat2(e,t,i){this._cacheFloat2(e,t,i)&&(this._engine.setFloat2(this._uniforms[e],t,i)||(this._valueCache[e]=null))}setVector3(e,t){this._cacheFloat3(e,t.x,t.y,t.z)&&(this._engine.setFloat3(this._uniforms[e],t.x,t.y,t.z)||(this._valueCache[e]=null))}setFloat3(e,t,i,s){this._cacheFloat3(e,t,i,s)&&(this._engine.setFloat3(this._uniforms[e],t,i,s)||(this._valueCache[e]=null))}setVector4(e,t){this._cacheFloat4(e,t.x,t.y,t.z,t.w)&&(this._engine.setFloat4(this._uniforms[e],t.x,t.y,t.z,t.w)||(this._valueCache[e]=null))}setQuaternion(e,t){this._cacheFloat4(e,t.x,t.y,t.z,t.w)&&(this._engine.setFloat4(this._uniforms[e],t.x,t.y,t.z,t.w)||(this._valueCache[e]=null))}setFloat4(e,t,i,s,r){this._cacheFloat4(e,t,i,s,r)&&(this._engine.setFloat4(this._uniforms[e],t,i,s,r)||(this._valueCache[e]=null))}setColor3(e,t){this._cacheFloat3(e,t.r,t.g,t.b)&&(this._engine.setFloat3(this._uniforms[e],t.r,t.g,t.b)||(this._valueCache[e]=null))}setColor4(e,t,i){this._cacheFloat4(e,t.r,t.g,t.b,i)&&(this._engine.setFloat4(this._uniforms[e],t.r,t.g,t.b,i)||(this._valueCache[e]=null))}setDirectColor4(e,t){this._cacheFloat4(e,t.r,t.g,t.b,t.a)&&(this._engine.setFloat4(this._uniforms[e],t.r,t.g,t.b,t.a)||(this._valueCache[e]=null))}}class jwe extends ww{get _framebuffer(){return this.__framebuffer}set _framebuffer(e){this.__framebuffer&&this._engine._releaseFramebufferObjects(this.__framebuffer),this.__framebuffer=e}get _framebufferDepthStencil(){return this.__framebufferDepthStencil}set _framebufferDepthStencil(e){this.__framebufferDepthStencil&&this._engine._releaseFramebufferObjects(this.__framebufferDepthStencil),this.__framebufferDepthStencil=e}constructor(e,t,i,s){super(e,t,i,s),this.__framebuffer=null,this.__framebufferDepthStencil=null,this._engine=s}dispose(e=!1){this._framebuffer=null,this._framebufferDepthStencil=null,super.dispose(e)}}class S0e{get underlyingResource(){return this._nativeTexture}constructor(e,t){this._engine=t,this.set(e)}setUsage(){}set(e){this._nativeTexture=e}reset(){this._nativeTexture=null}release(){this._nativeTexture&&this._engine.deleteTexture(this._nativeTexture),this.reset()}}function EQ(a,e){switch(a){case 15:return _native.Engine.TEXTURE_FORMAT_D16;case 16:return _native.Engine.TEXTURE_FORMAT_D24;case 13:return _native.Engine.TEXTURE_FORMAT_D24S8;case 14:return _native.Engine.TEXTURE_FORMAT_D32F;case 36492:return _native.Engine.TEXTURE_FORMAT_BC7;case 36494:return _native.Engine.TEXTURE_FORMAT_BC6H;case 33779:return _native.Engine.TEXTURE_FORMAT_BC3;case 33778:return _native.Engine.TEXTURE_FORMAT_BC2;case 33777:return _native.Engine.TEXTURE_FORMAT_BC1;case 33776:return _native.Engine.TEXTURE_FORMAT_BC1;case 37808:return _native.Engine.TEXTURE_FORMAT_ASTC4x4;case 36196:return _native.Engine.TEXTURE_FORMAT_ETC1;case 37492:return _native.Engine.TEXTURE_FORMAT_ETC2;case 37496:return _native.Engine.TEXTURE_FORMAT_ETC2A;case 4:{switch(e){case 0:return _native.Engine.TEXTURE_FORMAT_RGB8;case 3:return _native.Engine.TEXTURE_FORMAT_RGB8S;case 6:return _native.Engine.TEXTURE_FORMAT_RGB8I;case 7:return _native.Engine.TEXTURE_FORMAT_RGB8U}break}case 5:{switch(e){case 0:return _native.Engine.TEXTURE_FORMAT_RGBA8;case 1:return _native.Engine.TEXTURE_FORMAT_RGBA32F;case 2:return _native.Engine.TEXTURE_FORMAT_RGBA16F;case 3:return _native.Engine.TEXTURE_FORMAT_RGBA8S;case 4:return _native.Engine.TEXTURE_FORMAT_RGBA16I;case 5:return _native.Engine.TEXTURE_FORMAT_RGBA16U;case 6:return _native.Engine.TEXTURE_FORMAT_RGBA32I;case 7:return _native.Engine.TEXTURE_FORMAT_RGBA32U}break}case 6:{switch(e){case 0:return _native.Engine.TEXTURE_FORMAT_R8;case 1:return _native.Engine.TEXTURE_FORMAT_R32F;case 2:return _native.Engine.TEXTURE_FORMAT_R16F;case 3:return _native.Engine.TEXTURE_FORMAT_R8S;case 4:return _native.Engine.TEXTURE_FORMAT_R16S;case 5:return _native.Engine.TEXTURE_FORMAT_R16U;case 6:return _native.Engine.TEXTURE_FORMAT_R32I;case 7:return _native.Engine.TEXTURE_FORMAT_R32U}break}case 7:{switch(e){case 0:return _native.Engine.TEXTURE_FORMAT_RG8;case 1:return _native.Engine.TEXTURE_FORMAT_RG32F;case 2:return _native.Engine.TEXTURE_FORMAT_RG16F;case 3:return _native.Engine.TEXTURE_FORMAT_RG8S;case 4:return _native.Engine.TEXTURE_FORMAT_RG16S;case 5:return _native.Engine.TEXTURE_FORMAT_RG16U;case 6:return _native.Engine.TEXTURE_FORMAT_RG32I;case 7:return _native.Engine.TEXTURE_FORMAT_RG32U}break}case 12:{switch(e){case 0:return _native.Engine.TEXTURE_FORMAT_BGRA8}break}}throw new Y6(`Unsupported texture format or type: format ${a}, type ${e}.`,Xx.UnsupportedTextureError)}function SB(a){switch(a){case 1:return _native.Engine.TEXTURE_NEAREST_NEAREST;case 2:return _native.Engine.TEXTURE_LINEAR_LINEAR;case 3:return _native.Engine.TEXTURE_LINEAR_LINEAR_MIPLINEAR;case 4:return _native.Engine.TEXTURE_NEAREST_NEAREST_MIPNEAREST;case 5:return _native.Engine.TEXTURE_NEAREST_LINEAR_MIPNEAREST;case 6:return _native.Engine.TEXTURE_NEAREST_LINEAR_MIPLINEAR;case 7:return _native.Engine.TEXTURE_NEAREST_LINEAR;case 8:return _native.Engine.TEXTURE_NEAREST_NEAREST_MIPLINEAR;case 9:return _native.Engine.TEXTURE_LINEAR_NEAREST_MIPNEAREST;case 10:return _native.Engine.TEXTURE_LINEAR_NEAREST_MIPLINEAR;case 11:return _native.Engine.TEXTURE_LINEAR_LINEAR_MIPNEAREST;case 12:return _native.Engine.TEXTURE_LINEAR_NEAREST;default:throw new Error(`Unsupported sampling mode: ${a}.`)}}function TQ(a){switch(a){case 1:return _native.Engine.ADDRESS_MODE_WRAP;case 0:return _native.Engine.ADDRESS_MODE_CLAMP;case 2:return _native.Engine.ADDRESS_MODE_MIRROR;default:throw new Error("Unexpected wrap mode: "+a+".")}}function Vwe(a){switch(a){case 513:return _native.Engine.STENCIL_TEST_LESS;case 515:return _native.Engine.STENCIL_TEST_LEQUAL;case 514:return _native.Engine.STENCIL_TEST_EQUAL;case 518:return _native.Engine.STENCIL_TEST_GEQUAL;case 516:return _native.Engine.STENCIL_TEST_GREATER;case 517:return _native.Engine.STENCIL_TEST_NOTEQUAL;case 512:return _native.Engine.STENCIL_TEST_NEVER;case 519:return _native.Engine.STENCIL_TEST_ALWAYS;default:throw new Error(`Unsupported stencil func mode: ${a}.`)}}function Gwe(a){switch(a){case 7680:return _native.Engine.STENCIL_OP_FAIL_S_KEEP;case 0:return _native.Engine.STENCIL_OP_FAIL_S_ZERO;case 7681:return _native.Engine.STENCIL_OP_FAIL_S_REPLACE;case 7682:return _native.Engine.STENCIL_OP_FAIL_S_INCR;case 7683:return _native.Engine.STENCIL_OP_FAIL_S_DECR;case 5386:return _native.Engine.STENCIL_OP_FAIL_S_INVERT;case 34055:return _native.Engine.STENCIL_OP_FAIL_S_INCRSAT;case 34056:return _native.Engine.STENCIL_OP_FAIL_S_DECRSAT;default:throw new Error(`Unsupported stencil OpFail mode: ${a}.`)}}function Wwe(a){switch(a){case 7680:return _native.Engine.STENCIL_OP_FAIL_Z_KEEP;case 0:return _native.Engine.STENCIL_OP_FAIL_Z_ZERO;case 7681:return _native.Engine.STENCIL_OP_FAIL_Z_REPLACE;case 7682:return _native.Engine.STENCIL_OP_FAIL_Z_INCR;case 7683:return _native.Engine.STENCIL_OP_FAIL_Z_DECR;case 5386:return _native.Engine.STENCIL_OP_FAIL_Z_INVERT;case 34055:return _native.Engine.STENCIL_OP_FAIL_Z_INCRSAT;case 34056:return _native.Engine.STENCIL_OP_FAIL_Z_DECRSAT;default:throw new Error(`Unsupported stencil depthFail mode: ${a}.`)}}function Hwe(a){switch(a){case 7680:return _native.Engine.STENCIL_OP_PASS_Z_KEEP;case 0:return _native.Engine.STENCIL_OP_PASS_Z_ZERO;case 7681:return _native.Engine.STENCIL_OP_PASS_Z_REPLACE;case 7682:return _native.Engine.STENCIL_OP_PASS_Z_INCR;case 7683:return _native.Engine.STENCIL_OP_PASS_Z_DECR;case 5386:return _native.Engine.STENCIL_OP_PASS_Z_INVERT;case 34055:return _native.Engine.STENCIL_OP_PASS_Z_INCRSAT;case 34056:return _native.Engine.STENCIL_OP_PASS_Z_DECRSAT;default:throw new Error(`Unsupported stencil opPass mode: ${a}.`)}}function Ywe(a){switch(a){case 0:return _native.Engine.ALPHA_DISABLE;case 1:return _native.Engine.ALPHA_ADD;case 2:return _native.Engine.ALPHA_COMBINE;case 3:return _native.Engine.ALPHA_SUBTRACT;case 4:return _native.Engine.ALPHA_MULTIPLY;case 5:return _native.Engine.ALPHA_MAXIMIZED;case 6:return _native.Engine.ALPHA_ONEONE;case 7:return _native.Engine.ALPHA_PREMULTIPLIED;case 8:return _native.Engine.ALPHA_PREMULTIPLIED_PORTERDUFF;case 9:return _native.Engine.ALPHA_INTERPOLATE;case 10:return _native.Engine.ALPHA_SCREENMODE;default:throw new Error(`Unsupported alpha mode: ${a}.`)}}function Xwe(a){switch(a){case q.BYTE:return _native.Engine.ATTRIB_TYPE_INT8;case q.UNSIGNED_BYTE:return _native.Engine.ATTRIB_TYPE_UINT8;case q.SHORT:return _native.Engine.ATTRIB_TYPE_INT16;case q.UNSIGNED_SHORT:return _native.Engine.ATTRIB_TYPE_UINT16;case q.FLOAT:return _native.Engine.ATTRIB_TYPE_FLOAT;default:throw new Error(`Unsupported attribute type: ${a}.`)}}const Zwe={[q.PositionKind]:!0,[q.NormalKind]:!0,[q.TangentKind]:!0,[q.UVKind]:!0,[q.UV2Kind]:!0,[q.UV3Kind]:!0,[q.UV4Kind]:!0,[q.UV5Kind]:!0,[q.UV6Kind]:!0,[q.ColorKind]:!0,[q.ColorInstanceKind]:!0,[q.MatricesIndicesKind]:!0,[q.MatricesWeightsKind]:!0,[q.MatricesIndicesExtraKind]:!0,[q.MatricesWeightsExtraKind]:!0};function Kwe(a){switch(a){case q.BYTE:case q.SHORT:case q.INT:case q.FLOAT:return!0;case q.UNSIGNED_BYTE:case q.UNSIGNED_SHORT:case q.UNSIGNED_INT:return!1;default:throw new Error(`Invalid type '${a}'`)}}function y0e(a,e){const t=e.getEngine(),i=e._pipelineContext;if(!(i!=null&&i.vertexBufferKindToType))return;let s=null;for(const r in a){const n=a[r];if(!n||!Zwe[r])continue;const o=n.normalized?q.FLOAT:n.type,l=i.vertexBufferKindToType[r];(o!==q.FLOAT&&l===void 0||l!==void 0&&l!==o)&&(s||(s=t._getShaderProcessingContext(e.shaderLanguage,!1)),i.vertexBufferKindToType[r]=o,o!==q.FLOAT&&(s.vertexBufferKindToNumberOfComponents[r]=q.DeduceStride(r),Kwe(o)&&(s.vertexBufferKindToNumberOfComponents[r]*=-1)))}if(s){const r=t._caps.parallelShaderCompile;t._caps.parallelShaderCompile=void 0,e._processShaderCodeAsync(null,t._features._checkNonFloatVertexBuffersDontRecreatePipelineContext,s),t._caps.parallelShaderCompile=r}}class qwe{constructor(){this.vertexBufferKindToNumberOfComponents={},this.remappedAttributeNames={},this.injectInVertexMain=""}}const M0e=new xe;if(typeof self<"u"&&!Object.prototype.hasOwnProperty.call(self,"_native")){let a;Object.defineProperty(self,"_native",{get:()=>a,set:e=>{a=e,a&&M0e.notifyObservers(a)}})}function E0e(){return new Promise(a=>{typeof _native>"u"?M0e.addOnce(e=>a(e)):a(_native)})}async function T0e(a,e){(await E0e())[a]=e}class L0e extends Fv{}class Qwe{constructor(e){this._engine=e,this._pending=new Array,this._isCommandBufferScopeActive=!1,this._commandStream=bL._createNativeDataStream(),this._engine.setCommandDataStream(this._commandStream)}beginCommandScope(){if(this._isCommandBufferScopeActive)throw new Error("Command scope already active.");this._isCommandBufferScopeActive=!0}endCommandScope(){if(!this._isCommandBufferScopeActive)throw new Error("Command scope is not active.");this._isCommandBufferScopeActive=!1,this._submit()}startEncodingCommand(e){this._commandStream.writeNativeData(e)}encodeCommandArgAsUInt32(e){this._commandStream.writeUint32(e)}encodeCommandArgAsUInt32s(e){this._commandStream.writeUint32Array(e)}encodeCommandArgAsInt32(e){this._commandStream.writeInt32(e)}encodeCommandArgAsInt32s(e){this._commandStream.writeInt32Array(e)}encodeCommandArgAsFloat32(e){this._commandStream.writeFloat32(e)}encodeCommandArgAsFloat32s(e){this._commandStream.writeFloat32Array(e)}encodeCommandArgAsNativeData(e){this._commandStream.writeNativeData(e),this._pending.push(e)}finishEncodingCommand(){this._isCommandBufferScopeActive||this._submit()}_submit(){this._engine.submitCommands(),this._pending.length=0}}const LQ=[];class bL extends Qt{setHardwareScalingLevel(e){super.setHardwareScalingLevel(e),this._engine.setHardwareScalingLevel(e)}constructor(e={}){if(super(null,!1,void 0,e.adaptToDeviceRatio),this._engine=new _native.Engine({version:Qt.Version,nonFloatVertexBuffers:!0}),this._camera=_native.Camera?new _native.Camera:null,this._commandBufferEncoder=new Qwe(this._engine),this._frameStats={gpuTimeNs:Number.NaN},this._boundBuffersVertexArray=null,this._currentDepthTest=_native.Engine.DEPTH_TEST_LEQUAL,this._stencilTest=!1,this._stencilMask=255,this._stencilFunc=519,this._stencilFuncRef=0,this._stencilFuncMask=255,this._stencilOpStencilFail=7680,this._stencilOpDepthFail=7680,this._stencilOpStencilDepthPass=7681,this._zOffset=0,this._zOffsetUnits=0,this._depthWrite=!0,this._fillModeWarningDisplayed=!1,_native.Engine.PROTOCOL_VERSION!==bL.PROTOCOL_VERSION)throw new Error(`Protocol version mismatch: ${_native.Engine.PROTOCOL_VERSION} (Native) !== ${bL.PROTOCOL_VERSION} (JS)`);this._engine.setDeviceLostCallback&&this._engine.setDeviceLostCallback(()=>{this.onContextLostObservable.notifyObservers(this),this._contextWasLost=!0,this._restoreEngineAfterContextLost()}),this._webGLVersion=2,this.disableUniformBuffers=!0,this._shaderPlatformName="NATIVE",this._caps={maxTexturesImageUnits:16,maxVertexTextureImageUnits:16,maxCombinedTexturesImageUnits:32,maxTextureSize:_native.Engine.CAPS_LIMITS_MAX_TEXTURE_SIZE,maxCubemapTextureSize:512,maxRenderTextureSize:512,maxVertexAttribs:16,maxVaryingVectors:16,maxDrawBuffers:8,maxFragmentUniformVectors:16,maxVertexUniformVectors:16,standardDerivatives:!0,astc:null,pvrtc:null,etc1:null,etc2:null,bptc:null,maxAnisotropy:16,uintIndices:!0,fragmentDepthSupported:!1,highPrecisionShaderSupported:!0,colorBufferFloat:!1,supportFloatTexturesResolve:!1,rg11b10ufColorRenderable:!1,textureFloat:!0,textureFloatLinearFiltering:!0,textureFloatRender:!0,textureHalfFloat:!0,textureHalfFloatLinearFiltering:!0,textureHalfFloatRender:!0,textureLOD:!0,texelFetch:!1,drawBuffersExtension:!1,depthTextureExtension:!1,vertexArrayObject:!0,instancedArrays:!0,supportOcclusionQuery:!1,canUseTimestampForTimerQuery:!1,blendMinMax:!1,maxMSAASamples:16,canUseGLInstanceID:!0,canUseGLVertexID:!0,supportComputeShaders:!1,supportSRGBBuffers:!0,supportTransformFeedbacks:!1,textureMaxLevel:!1,texture2DArrayMaxLayerCount:_native.Engine.CAPS_LIMITS_MAX_TEXTURE_LAYERS,disableMorphTargetTexture:!1,parallelShaderCompile:{COMPLETION_STATUS_KHR:0},textureNorm16:!1},this._features={forceBitmapOverHTMLImageElement:!0,supportRenderAndCopyToLodForFloatTextures:!1,supportDepthStencilTexture:!1,supportShadowSamplers:!1,uniformBufferHardCheckMatrix:!1,allowTexturePrefiltering:!1,trackUbosInFrame:!1,checkUbosContentBeforeUpload:!1,supportCSM:!1,basisNeedsPOT:!1,support3DTextures:!1,needTypeSuffixInShaderConstants:!1,supportMSAA:!0,supportSSAO2:!1,supportIBLShadows:!1,supportExtendedTextureFormats:!1,supportSwitchCaseInShader:!1,supportSyncTextureRead:!1,needsInvertingBitmap:!0,useUBOBindingCache:!0,needShaderCodeInlining:!0,needToAlwaysBindUniformBuffers:!1,supportRenderPasses:!0,supportSpriteInstancing:!1,forceVertexBufferStrideAndOffsetMultiple4Bytes:!0,_checkNonFloatVertexBuffersDontRecreatePipelineContext:!1,_collectUbosUpdatedInFrame:!1},Le.Log("Babylon Native (v"+Qt.Version+") launched"),Le.LoadScript=function(s,r,n,o){Le.LoadFile(s,l=>{Function(l).apply(null),r&&r()},void 0,void 0,!1,(l,c)=>{n&&n("LoadScript Error",c)})},typeof URL>"u"&&(window.URL={createObjectURL:function(){},revokeObjectURL:function(){}}),typeof Blob>"u"&&(window.Blob=function(s){return s}),Array.prototype.flat||Object.defineProperty(Array.prototype,"flat",{configurable:!0,value:function s(){const r=isNaN(arguments[0])?1:Number(arguments[0]);return r?Array.prototype.reduce.call(this,function(n,o){return Array.isArray(o)?n.push.apply(n,s.call(o,r-1)):n.push(o),n},[]):Array.prototype.slice.call(this)},writable:!0});const t=window&&window.devicePixelRatio||1;this._hardwareScalingLevel=e.adaptToDeviceRatio?1/t:1,this._engine.setHardwareScalingLevel(this._hardwareScalingLevel),this._lastDevicePixelRatio=t,this.resize();const i=this.getDepthFunction();i&&this.setDepthFunction(i),this._shaderProcessor=new kwe,this.onNewSceneAddedObservable.add(s=>{const r=s.render;s.render=(...n)=>{this._commandBufferEncoder.beginCommandScope(),r.apply(s,n),this._commandBufferEncoder.endCommandScope()}})}dispose(){super.dispose(),this._boundBuffersVertexArray&&this._deleteVertexArray(this._boundBuffersVertexArray),this._engine.dispose()}static _createNativeDataStream(){return new $T}_queueNewFrame(e,t){return t.requestAnimationFrame&&t!==window?t.requestAnimationFrame(e):this._engine.requestAnimationFrame(e),0}_restoreEngineAfterContextLost(){this._clearEmptyResources();const e=this._depthCullingState.depthTest,t=this._depthCullingState.depthFunc,i=this._depthCullingState.depthMask,s=this._stencilState.stencilTest;this._rebuildGraphicsResources(),this._depthCullingState.depthTest=e,this._depthCullingState.depthFunc=t,this._depthCullingState.depthMask=i,this._stencilState.stencilTest=s,this._flagContextRestored()}_bindUnboundFramebuffer(e){this._currentFramebuffer!==e&&(this._currentFramebuffer&&(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_UNBINDFRAMEBUFFER),this._commandBufferEncoder.encodeCommandArgAsNativeData(this._currentFramebuffer),this._commandBufferEncoder.finishEncodingCommand()),e&&(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_BINDFRAMEBUFFER),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.finishEncodingCommand()),this._currentFramebuffer=e)}getHostDocument(){return null}clear(e,t,i,s=!1){if(this.useReverseDepthBuffer)throw new Error("reverse depth buffer is not currently implemented");this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_CLEAR),this._commandBufferEncoder.encodeCommandArgAsUInt32(t&&e?1:0),this._commandBufferEncoder.encodeCommandArgAsFloat32(e?e.r:0),this._commandBufferEncoder.encodeCommandArgAsFloat32(e?e.g:0),this._commandBufferEncoder.encodeCommandArgAsFloat32(e?e.b:0),this._commandBufferEncoder.encodeCommandArgAsFloat32(e?e.a:1),this._commandBufferEncoder.encodeCommandArgAsUInt32(i?1:0),this._commandBufferEncoder.encodeCommandArgAsFloat32(1),this._commandBufferEncoder.encodeCommandArgAsUInt32(s?1:0),this._commandBufferEncoder.encodeCommandArgAsUInt32(0),this._commandBufferEncoder.finishEncodingCommand()}createIndexBuffer(e,t,i){const s=this._normalizeIndexData(e),r=new L0e;return r.references=1,r.is32Bits=s.BYTES_PER_ELEMENT===4,s.byteLength&&(r.nativeIndexBuffer=this._engine.createIndexBuffer(s.buffer,s.byteOffset,s.byteLength,r.is32Bits,t??!1)),r}createVertexBuffer(e,t,i){const s=ArrayBuffer.isView(e)?e:new Float32Array(e),r=new L0e;return r.references=1,s.byteLength&&(r.nativeVertexBuffer=this._engine.createVertexBuffer(s.buffer,s.byteOffset,s.byteLength,t??!1)),r}_recordVertexArrayObject(e,t,i,s,r){s._checkedNonFloatVertexBuffers||(y0e(t,s),s._checkedNonFloatVertexBuffers=!0),i&&this._engine.recordIndexBuffer(e,i.nativeIndexBuffer);const n=s.getAttributesNames();for(let o=0;o<n.length;o++){const l=s.getAttributeLocation(o);if(l>=0){const c=n[o];let u=null;if(r&&(u=r[c]),u||(u=t[c]),u){const f=u.effectiveBuffer;f&&f.nativeVertexBuffer&&this._engine.recordVertexBuffer(e,f.nativeVertexBuffer,l,u.effectiveByteOffset,u.effectiveByteStride,u.getSize(),Xwe(u.type),u.normalized,u.getInstanceDivisor())}}}}bindBuffers(e,t,i){this._boundBuffersVertexArray&&this._deleteVertexArray(this._boundBuffersVertexArray),this._boundBuffersVertexArray=this._engine.createVertexArray(),this._recordVertexArrayObject(this._boundBuffersVertexArray,e,t,i),this.bindVertexArrayObject(this._boundBuffersVertexArray)}recordVertexArrayObject(e,t,i,s){const r=this._engine.createVertexArray();return this._recordVertexArrayObject(r,e,t,i,s),r}_deleteVertexArray(e){this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEVERTEXARRAY),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.finishEncodingCommand()}bindVertexArrayObject(e){this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_BINDVERTEXARRAY),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.finishEncodingCommand()}releaseVertexArrayObject(e){this._deleteVertexArray(e)}getAttributes(e,t){const i=e,s=i.shaderProcessingContext;LQ.length=0;for(let r=0;r<t.length;r++){const n=t[r],o=s.remappedAttributeNames[n]??n;LQ[r]=o}return this._engine.getAttributes(i.program,LQ)}_checkSupportedFillMode(e){return e==5||e==8?(this._fillModeWarningDisplayed||(de.Warn("Line Loop and Triangle Fan are not supported fill modes with Babylon Native. Elements with these fill mode will not be visible."),this._fillModeWarningDisplayed=!0),!1):!0}drawElementsType(e,t,i,s){this._checkSupportedFillMode(e)&&(this._drawCalls.addCount(1,!1),s&&_native.Engine.COMMAND_DRAWINDEXEDINSTANCED?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DRAWINDEXEDINSTANCED),this._commandBufferEncoder.encodeCommandArgAsUInt32(e),this._commandBufferEncoder.encodeCommandArgAsUInt32(t),this._commandBufferEncoder.encodeCommandArgAsUInt32(i),this._commandBufferEncoder.encodeCommandArgAsUInt32(s)):(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DRAWINDEXED),this._commandBufferEncoder.encodeCommandArgAsUInt32(e),this._commandBufferEncoder.encodeCommandArgAsUInt32(t),this._commandBufferEncoder.encodeCommandArgAsUInt32(i)),this._commandBufferEncoder.finishEncodingCommand())}drawArraysType(e,t,i,s){this._checkSupportedFillMode(e)&&(this._drawCalls.addCount(1,!1),s&&_native.Engine.COMMAND_DRAWINSTANCED?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DRAWINSTANCED),this._commandBufferEncoder.encodeCommandArgAsUInt32(e),this._commandBufferEncoder.encodeCommandArgAsUInt32(t),this._commandBufferEncoder.encodeCommandArgAsUInt32(i),this._commandBufferEncoder.encodeCommandArgAsUInt32(s)):(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DRAW),this._commandBufferEncoder.encodeCommandArgAsUInt32(e),this._commandBufferEncoder.encodeCommandArgAsUInt32(t),this._commandBufferEncoder.encodeCommandArgAsUInt32(i)),this._commandBufferEncoder.finishEncodingCommand())}createPipelineContext(e){const t=!!(this._caps.parallelShaderCompile&&this._engine.createProgramAsync);return new Uwe(this,t,e)}createMaterialContext(){}createDrawContext(){}_preparePipelineContext(e,t,i,s,r,n,o,l,c,u,f){s?this.createRawShaderProgram():this.createShaderProgram(e,t,i,l),f()}_getShaderProcessingContext(e){return new qwe}_executeWhenRenderingStateIsCompiled(e,t){const i=e;if(i.isAsync)if(i.onCompiled){const s=i.onCompiled;i.onCompiled=()=>{s(),t()}}else i.onCompiled=t;else t()}createRawShaderProgram(){throw new Error("Not Supported")}createShaderProgram(e,t,i,s){const r=e;this.onBeforeShaderCompilationObservable.notifyObservers(this);const n=new Fy(t);n.processCode(),t=n.code;const o=new Fy(i);o.processCode(),i=o.code,t=Zi._ConcatenateShader(t,s),i=Zi._ConcatenateShader(i,s);const l=()=>{var c;r.isCompiled=!0,(c=r.onCompiled)==null||c.call(r),this.onAfterShaderCompilationObservable.notifyObservers(this)};if(e.isAsync)r.program=this._engine.createProgramAsync(t,i,l,c=>{r.compilationError=c});else try{r.program=this._engine.createProgram(t,i),l()}catch(c){const u=c==null?void 0:c.message;throw new Error("SHADER ERROR"+(typeof u=="string"?`
`+u:""))}return r.program}inlineShaderCode(e){const t=new Fy(e);return t.debug=!1,t.processCode(),t.code}_setProgram(e){this._currentProgram!==e&&(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETPROGRAM),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.finishEncodingCommand(),this._currentProgram=e)}_deletePipelineContext(e){const t=e;t&&t.program&&(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEPROGRAM),this._commandBufferEncoder.encodeCommandArgAsNativeData(t.program),this._commandBufferEncoder.finishEncodingCommand())}getUniforms(e,t){const i=e;return this._engine.getUniforms(i.program,t)}bindUniformBlock(e,t,i){throw new Error("Not Implemented")}bindSamplers(e){const t=e.getPipelineContext();this._setProgram(t.program);const i=e.getSamplers();for(let s=0;s<i.length;s++){const r=e.getUniform(i[s]);r&&(this._boundUniforms[s]=r)}this._currentEffect=null}getRenderWidth(e=!1){return!e&&this._currentRenderTarget?this._currentRenderTarget.width:this._engine.getRenderWidth()}getRenderHeight(e=!1){return!e&&this._currentRenderTarget?this._currentRenderTarget.height:this._engine.getRenderHeight()}setViewport(e,t,i){this._cachedViewport=e,this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETVIEWPORT),this._commandBufferEncoder.encodeCommandArgAsFloat32(e.x),this._commandBufferEncoder.encodeCommandArgAsFloat32(e.y),this._commandBufferEncoder.encodeCommandArgAsFloat32(e.width),this._commandBufferEncoder.encodeCommandArgAsFloat32(e.height),this._commandBufferEncoder.finishEncodingCommand()}enableScissor(e,t,i,s){this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETSCISSOR),this._commandBufferEncoder.encodeCommandArgAsFloat32(e),this._commandBufferEncoder.encodeCommandArgAsFloat32(t),this._commandBufferEncoder.encodeCommandArgAsFloat32(i),this._commandBufferEncoder.encodeCommandArgAsFloat32(s),this._commandBufferEncoder.finishEncodingCommand()}disableScissor(){this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETSCISSOR),this._commandBufferEncoder.encodeCommandArgAsFloat32(0),this._commandBufferEncoder.encodeCommandArgAsFloat32(0),this._commandBufferEncoder.encodeCommandArgAsFloat32(0),this._commandBufferEncoder.encodeCommandArgAsFloat32(0),this._commandBufferEncoder.finishEncodingCommand()}setStateCullFaceType(e,t){throw new Error("setStateCullFaceType: Not Implemented")}setState(e,t=0,i,s=!1,r,n,o=0){this._zOffset=t,this._zOffsetUnits=o,this._zOffset!==0&&Le.Warn("zOffset is not supported in Native engine."),this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETSTATE),this._commandBufferEncoder.encodeCommandArgAsUInt32(e?1:0),this._commandBufferEncoder.encodeCommandArgAsFloat32(t),this._commandBufferEncoder.encodeCommandArgAsFloat32(o),this._commandBufferEncoder.encodeCommandArgAsUInt32(this.cullBackFaces??r??!0?1:0),this._commandBufferEncoder.encodeCommandArgAsUInt32(s?1:0),this._commandBufferEncoder.finishEncodingCommand()}getInputElementClientRect(){return{bottom:this.getRenderHeight(),height:this.getRenderHeight(),left:0,right:this.getRenderWidth(),top:0,width:this.getRenderWidth(),x:0,y:0,toJSON:()=>{}}}setZOffset(e){e!==this._zOffset&&(this._zOffset=e,this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETZOFFSET),this._commandBufferEncoder.encodeCommandArgAsFloat32(this.useReverseDepthBuffer?-e:e),this._commandBufferEncoder.finishEncodingCommand())}getZOffset(){return this._zOffset}setZOffsetUnits(e){e!==this._zOffsetUnits&&(this._zOffsetUnits=e,this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETZOFFSETUNITS),this._commandBufferEncoder.encodeCommandArgAsFloat32(this.useReverseDepthBuffer?-e:e),this._commandBufferEncoder.finishEncodingCommand())}getZOffsetUnits(){return this._zOffsetUnits}setDepthBuffer(e){this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETDEPTHTEST),this._commandBufferEncoder.encodeCommandArgAsUInt32(e?this._currentDepthTest:_native.Engine.DEPTH_TEST_ALWAYS),this._commandBufferEncoder.finishEncodingCommand()}getDepthWrite(){return this._depthWrite}getDepthFunction(){switch(this._currentDepthTest){case _native.Engine.DEPTH_TEST_NEVER:return 512;case _native.Engine.DEPTH_TEST_ALWAYS:return 519;case _native.Engine.DEPTH_TEST_GREATER:return 516;case _native.Engine.DEPTH_TEST_GEQUAL:return 518;case _native.Engine.DEPTH_TEST_NOTEQUAL:return 517;case _native.Engine.DEPTH_TEST_EQUAL:return 514;case _native.Engine.DEPTH_TEST_LESS:return 513;case _native.Engine.DEPTH_TEST_LEQUAL:return 515}return null}setDepthFunction(e){let t=0;switch(e){case 512:t=_native.Engine.DEPTH_TEST_NEVER;break;case 519:t=_native.Engine.DEPTH_TEST_ALWAYS;break;case 516:t=_native.Engine.DEPTH_TEST_GREATER;break;case 518:t=_native.Engine.DEPTH_TEST_GEQUAL;break;case 517:t=_native.Engine.DEPTH_TEST_NOTEQUAL;break;case 514:t=_native.Engine.DEPTH_TEST_EQUAL;break;case 513:t=_native.Engine.DEPTH_TEST_LESS;break;case 515:t=_native.Engine.DEPTH_TEST_LEQUAL;break}this._currentDepthTest=t,this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETDEPTHTEST),this._commandBufferEncoder.encodeCommandArgAsUInt32(this._currentDepthTest),this._commandBufferEncoder.finishEncodingCommand()}setDepthWrite(e){this._depthWrite=e,this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETDEPTHWRITE),this._commandBufferEncoder.encodeCommandArgAsUInt32(Number(e)),this._commandBufferEncoder.finishEncodingCommand()}setColorWrite(e){this._colorWrite=e,this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETCOLORWRITE),this._commandBufferEncoder.encodeCommandArgAsUInt32(Number(e)),this._commandBufferEncoder.finishEncodingCommand()}getColorWrite(){return this._colorWrite}applyStencil(){this._setStencil(this._stencilMask,Gwe(this._stencilOpStencilFail),Wwe(this._stencilOpDepthFail),Hwe(this._stencilOpStencilDepthPass),Vwe(this._stencilFunc),this._stencilFuncRef)}_setStencil(e,t,i,s,r,n){this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETSTENCIL),this._commandBufferEncoder.encodeCommandArgAsUInt32(e),this._commandBufferEncoder.encodeCommandArgAsUInt32(t),this._commandBufferEncoder.encodeCommandArgAsUInt32(i),this._commandBufferEncoder.encodeCommandArgAsUInt32(s),this._commandBufferEncoder.encodeCommandArgAsUInt32(r),this._commandBufferEncoder.encodeCommandArgAsUInt32(n),this._commandBufferEncoder.finishEncodingCommand()}setStencilBuffer(e){this._stencilTest=e,e?this.applyStencil():this._setStencil(255,_native.Engine.STENCIL_OP_FAIL_S_KEEP,_native.Engine.STENCIL_OP_FAIL_Z_KEEP,_native.Engine.STENCIL_OP_PASS_Z_KEEP,_native.Engine.STENCIL_TEST_ALWAYS,0)}getStencilBuffer(){return this._stencilTest}getStencilOperationPass(){return this._stencilOpStencilDepthPass}setStencilOperationPass(e){this._stencilOpStencilDepthPass=e,this.applyStencil()}setStencilMask(e){this._stencilMask=e,this.applyStencil()}setStencilFunction(e){this._stencilFunc=e,this.applyStencil()}setStencilFunctionReference(e){this._stencilFuncRef=e,this.applyStencil()}setStencilFunctionMask(e){this._stencilFuncMask=e}setStencilOperationFail(e){this._stencilOpStencilFail=e,this.applyStencil()}setStencilOperationDepthFail(e){this._stencilOpDepthFail=e,this.applyStencil()}getStencilMask(){return this._stencilMask}getStencilFunction(){return this._stencilFunc}getStencilFunctionReference(){return this._stencilFuncRef}getStencilFunctionMask(){return this._stencilFuncMask}getStencilOperationFail(){return this._stencilOpStencilFail}getStencilOperationDepthFail(){return this._stencilOpDepthFail}setAlphaConstants(e,t,i,s){throw new Error("Setting alpha blend constant color not yet implemented.")}setAlphaMode(e,t=!1){if(this._alphaMode===e)return;const i=Ywe(e);this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETBLENDMODE),this._commandBufferEncoder.encodeCommandArgAsUInt32(i),this._commandBufferEncoder.finishEncodingCommand(),t||this.setDepthWrite(e===0),this._alphaMode=e}setInt(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINT),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsInt32(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setIntArray(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINTARRAY),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsInt32s(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setIntArray2(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINTARRAY2),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsInt32s(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setIntArray3(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINTARRAY3),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsInt32s(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setIntArray4(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINTARRAY4),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsInt32s(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setFloatArray(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOATARRAY),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsFloat32s(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setFloatArray2(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOATARRAY2),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsFloat32s(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setFloatArray3(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOATARRAY3),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsFloat32s(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setFloatArray4(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOATARRAY4),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsFloat32s(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setArray(e,t){return e?this.setFloatArray(e,new Float32Array(t)):!1}setArray2(e,t){return e?this.setFloatArray2(e,new Float32Array(t)):!1}setArray3(e,t){return e?this.setFloatArray3(e,new Float32Array(t)):!1}setArray4(e,t){return e?this.setFloatArray4(e,new Float32Array(t)):!1}setMatrices(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETMATRICES),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsFloat32s(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setMatrix3x3(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETMATRIX3X3),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsFloat32s(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setMatrix2x2(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETMATRIX2X2),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsFloat32s(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setFloat(e,t){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOAT),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsFloat32(t),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setFloat2(e,t,i){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOAT2),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsFloat32(t),this._commandBufferEncoder.encodeCommandArgAsFloat32(i),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setFloat3(e,t,i,s){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOAT3),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsFloat32(t),this._commandBufferEncoder.encodeCommandArgAsFloat32(i),this._commandBufferEncoder.encodeCommandArgAsFloat32(s),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setFloat4(e,t,i,s,r){return e?(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOAT4),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsFloat32(t),this._commandBufferEncoder.encodeCommandArgAsFloat32(i),this._commandBufferEncoder.encodeCommandArgAsFloat32(s),this._commandBufferEncoder.encodeCommandArgAsFloat32(r),this._commandBufferEncoder.finishEncodingCommand(),!0):!1}setColor3(e,t){return e?(this.setFloat3(e,t.r,t.g,t.b),!0):!1}setColor4(e,t,i){return e?(this.setFloat4(e,t.r,t.g,t.b,i),!0):!1}wipeCaches(e){this.preventCacheWipeBetweenFrames||(this.resetTextureCache(),this._currentEffect=null,e&&(this._currentProgram=null,this._stencilStateComposer.reset(),this._depthCullingState.reset(),this._alphaState.reset()),this._cachedVertexBuffers=null,this._cachedIndexBuffer=null,this._cachedEffectForVertexBuffers=null)}_createTexture(){return this._engine.createTexture()}_deleteTexture(e){e&&this._engine.deleteTexture(e.underlyingResource)}updateDynamicTexture(e,t,i,s=!1,r){if(s===void 0&&(s=!1),e&&e._hardwareTexture){const n=t.getCanvasTexture(),o=e._hardwareTexture.underlyingResource;this._engine.copyTexture(o,n),e.isReady=!0}}createDynamicTexture(e,t,i,s){return e=Math.max(e,1),t=Math.max(t,1),this.createRawTexture(new Uint8Array(e*t*4),e,t,5,!1,!1,s)}createVideoElement(e){return this._camera?this._camera.createVideo(e):null}updateVideoTexture(e,t,i){if(e&&e._hardwareTexture&&this._camera){const s=e._hardwareTexture.underlyingResource;this._camera.updateVideoTexture(s,t,i)}}createRawTexture(e,t,i,s,r,n,o,l=null,c=0,u=0,f=!1){const p=new gr(this,3);if(p.format=s,p.generateMipMaps=r,p.samplingMode=o,p.invertY=n,p.baseWidth=t,p.baseHeight=i,p.width=p.baseWidth,p.height=p.baseHeight,p._compression=l,p.type=c,p._useSRGBBuffer=this._getUseSRGBBuffer(f,!r),this.updateRawTexture(p,e,s,n,l,c,p._useSRGBBuffer),p._hardwareTexture){const m=p._hardwareTexture.underlyingResource,_=SB(o);this._setTextureSampling(m,_)}return this._internalTexturesCache.push(p),p}createRawTexture2DArray(e,t,i,s,r,n,o,l,c=null,u=0){const f=new gr(this,11);if(f.baseWidth=t,f.baseHeight=i,f.baseDepth=s,f.width=t,f.height=i,f.depth=s,f.format=r,f.type=u,f.generateMipMaps=n,f.samplingMode=l,f.is2DArray=!0,f._hardwareTexture){const p=f._hardwareTexture.underlyingResource;this._engine.loadRawTexture2DArray(p,e,t,i,s,EQ(r,u),n,o);const m=SB(l);this._setTextureSampling(p,m)}return f.isReady=!0,this._internalTexturesCache.push(f),f}updateRawTexture(e,t,i,s,r=null,n=0,o=!1){if(e){if(t&&e._hardwareTexture){const l=e._hardwareTexture.underlyingResource;this._engine.loadRawTexture(l,t,e.width,e.height,EQ(i,n),e.generateMipMaps,e.invertY)}e.isReady=!0}}createTexture(e,t,i,s,r=3,n=null,o=null,l=null,c=null,u=null,f=null,p,m,_,d=!1){e=e||"";const h=e.substring(0,5)==="data:",x=h&&e.indexOf(";base64,")!==-1,A=c||new gr(this,1),S=e;this._transformTextureUrl&&!x&&!c&&!l&&(e=this._transformTextureUrl(e));const E=e.lastIndexOf("."),b=f||(E>-1?e.substring(E).toLowerCase():"");let M=null;(b.endsWith(".basis")||b.endsWith(".ktx")||b.endsWith(".ktx2")||p==="image/ktx"||p==="image/ktx2")&&(M=eG(b)),s&&s.addPendingData(A),A.url=e,A.generateMipMaps=!t,A.samplingMode=r,A.invertY=i,A._useSRGBBuffer=this._getUseSRGBBuffer(d,t),this.doNotHandleContextLost||(A._buffer=l);let T=null;n&&!c&&(T=A.onLoadedObservable.add(n)),c||this._internalTexturesCache.push(A);const O=(R,I)=>{s&&s.removePendingData(A),e===S?(T&&A.onLoadedObservable.remove(T),ei.UseFallbackTexture&&this.createTexture(ei.FallbackTexture,t,A.invertY,s,r,null,o,l,A),o&&o((R||"Unknown error")+(ei.UseFallbackTexture?" - Fallback texture was used":""),I)):(de.Warn(`Failed to load ${e}, falling back to ${S}`),this.createTexture(S,t,A.invertY,s,r,n,o,l,A,u,f,p,m))};if(M)throw new Error("Loading textures from IInternalTextureLoader not yet implemented.");{const R=I=>{if(!A._hardwareTexture){s&&s.removePendingData(A);return}const N=A._hardwareTexture.underlyingResource;this._engine.loadTexture(N,I,!t,i,A._useSRGBBuffer,()=>{A.baseWidth=this._engine.getTextureWidth(N),A.baseHeight=this._engine.getTextureHeight(N),A.width=A.baseWidth,A.height=A.baseHeight,A.isReady=!0;const w=SB(r);this._setTextureSampling(N,w),s&&s.removePendingData(A),A.onLoadedObservable.notifyObservers(A),A.onLoadedObservable.clear()},()=>{throw new Error("Could not load a native texture.")})};if(h&&l)if(l instanceof ArrayBuffer)R(new Uint8Array(l));else if(ArrayBuffer.isView(l))R(l);else if(typeof l=="string")R(new Uint8Array(Le.DecodeBase64(l)));else throw new Error("Unsupported buffer type");else x?R(new Uint8Array(Le.DecodeBase64(e))):this._loadFile(e,I=>R(new Uint8Array(I)),void 0,void 0,!0,(I,N)=>{O("Unable to load "+(I&&I.responseURL,N))})}return A}wrapNativeTexture(e,t=!1,i=3){const s=new S0e(e,this._engine),r=new gr(this,0,!0);return r._hardwareTexture=s,r.baseWidth=this._engine.getTextureWidth(e),r.baseHeight=this._engine.getTextureHeight(e),r.width=r.baseWidth,r.height=r.baseHeight,r.isReady=!0,r.useMipMaps=t,this.updateTextureSamplingMode(i,r),r}wrapWebGLTexture(){throw new Error("wrapWebGLTexture is not supported, use wrapNativeTexture instead.")}_createDepthStencilTexture(e,t,i){const s=t.generateStencil||!1,r=t.samples||1,n=i,o=new gr(this,12),l=e.width??e,c=e.height??e,u=this._engine.createFrameBuffer(o._hardwareTexture.underlyingResource,l,c,s,!0,r);return n._framebufferDepthStencil=u,o}_releaseFramebufferObjects(e){e&&(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEFRAMEBUFFER),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.finishEncodingCommand())}_createImageBitmapFromSource(e,t){return new Promise((s,r)=>{const n=this.createCanvasImage();n.onload=()=>{try{const o=this._engine.createImageBitmap(n);s(o)}catch(o){r(`Error loading image ${n.src} with exception: ${o}`)}},n.onerror=o=>{r(`Error loading image ${n.src} with exception: ${o}`)},n.src=e})}createImageBitmap(e,t){return new Promise((i,s)=>{if(Array.isArray(e)){const r=e;if(r.length){const n=this._engine.createImageBitmap(r[0]);if(n){i(n);return}}}s("Unsupported data for createImageBitmap.")})}resizeImageBitmap(e,t,i){return this._engine.resizeImageBitmap(e,t,i)}createCubeTexture(e,t,i,s,r=null,n=null,o,l=null,c=!1,u=0,f=0,p=null,m,_=!1,d=null){const h=p||new gr(this,7);h.isCube=!0,h.url=e,h.generateMipMaps=!s,h._lodGenerationScale=u,h._lodGenerationOffset=f,h._useSRGBBuffer=this._getUseSRGBBuffer(_,!!s),this._doNotHandleContextLost||(h._extension=l,h._files=i,h._buffer=d);const x=e.lastIndexOf(".");if((l||(x>-1?e.substring(x).toLowerCase():""))===".env"){const S=E=>{const b=zG(E);h.width=b.width,h.height=b.width,kG(h,b);const M=b.specular;if(!M)throw new Error("Nothing else parsed so far");h._lodGenerationScale=M.lodGenerationScale;const T=FG(E,b);h.format=5,h.type=0,h.generateMipMaps=!0,h.getEngine().updateTextureSamplingMode(be.TRILINEAR_SAMPLINGMODE,h),h._isRGBD=!0,h.invertY=!0,this._engine.loadCubeTextureWithMips(h._hardwareTexture.underlyingResource,T,!1,h._useSRGBBuffer,()=>{h.isReady=!0,r&&r()},()=>{throw new Error("Could not load a native cube texture.")})};if(d)S(d);else{if(i&&i.length===6)throw new Error("Multi-file loading not allowed on env files.");{const E=(b,M)=>{n&&b&&n(b.status+" "+b.statusText,M)};this._loadFile(e,b=>{S(new Uint8Array(b,0,b.byteLength))},void 0,void 0,!0,E)}}}else{if(!i||i.length!==6)throw new Error("Cannot load cubemap because 6 files were not defined");const S=[i[0],i[3],i[1],i[4],i[2],i[5]];Promise.all(S.map(E=>this._loadFileAsync(E,void 0,!0).then(b=>new Uint8Array(b,0,b.byteLength)))).then(E=>new Promise((b,M)=>{this._engine.loadCubeTexture(h._hardwareTexture.underlyingResource,E,!s,!0,h._useSRGBBuffer,b,M)})).then(()=>{h.isReady=!0,r&&r()},E=>{n&&n(`Failed to load cubemap: ${E.message}`,E)})}return this._internalTexturesCache.push(h),h}_createHardwareTexture(){return new S0e(this._createTexture(),this._engine)}_createHardwareRenderTargetWrapper(e,t,i){const s=new jwe(e,t,i,this);return this._renderTargetWrapperCache.push(s),s}_createInternalTexture(e,t,i=!0,s=0){let r=!1,n=0,o=3,l=5,c=!1,u=1,f;t!==void 0&&typeof t=="object"?(r=!!t.generateMipMaps,n=t.type===void 0?0:t.type,o=t.samplingMode===void 0?3:t.samplingMode,l=t.format===void 0?5:t.format,c=t.useSRGBBuffer===void 0?!1:t.useSRGBBuffer,u=t.samples??1,f=t.label):r=!!t,c=this._getUseSRGBBuffer(c,!r),(n===1&&!this._caps.textureFloatLinearFiltering||n===2&&!this._caps.textureHalfFloatLinearFiltering)&&(o=1),n===1&&!this._caps.textureFloat&&(n=0,de.Warn("Float textures are not supported. Type forced to TEXTURETYPE_UNSIGNED_BYTE"));const p=new gr(this,s),m=e.width??e,_=e.height??e,d=e.layers||0;if(d!==0)throw new Error("Texture layers are not supported in Babylon Native");const h=p._hardwareTexture.underlyingResource,x=EQ(l,n);return this._engine.initializeTexture(h,m,_,r,x,!0,c,u),this._setTextureSampling(h,SB(o)),p._useSRGBBuffer=c,p.baseWidth=m,p.baseHeight=_,p.width=m,p.height=_,p.depth=d,p.isReady=!0,p.samples=u,p.generateMipMaps=r,p.samplingMode=o,p.type=n,p.format=l,p.label=f,this._internalTexturesCache.push(p),p}createRenderTargetTexture(e,t){const i=this._createHardwareRenderTargetWrapper(!1,!1,e);let s=!0,r=!1,n=!1,o,l=1;t!==void 0&&typeof t=="object"&&(s=t.generateDepthBuffer??!0,r=!!t.generateStencilBuffer,n=!!t.noColorAttachment,o=t.colorAttachment,l=t.samples??1);const c=o||(n?null:this._createInternalTexture(e,t,!0,5)),u=e.width??e,f=e.height??e,p=this._engine.createFrameBuffer(c?c._hardwareTexture.underlyingResource:null,u,f,r,s,l);return i._framebuffer=p,i._generateDepthBuffer=s,i._generateStencilBuffer=r,i._samples=l,i.setTextures(c),i}updateRenderTargetTextureSampleCount(e,t){return de.Warn("Updating render target sample count is not currently supported"),e.samples}updateTextureSamplingMode(e,t){if(t._hardwareTexture){const i=SB(e);this._setTextureSampling(t._hardwareTexture.underlyingResource,i)}t.samplingMode=e}bindFramebuffer(e,t,i,s,r){const n=e;if(this._currentRenderTarget&&this.unBindFramebuffer(this._currentRenderTarget),this._currentRenderTarget=e,t)throw new Error("Cuboid frame buffers are not yet supported in NativeEngine.");if(i||s)throw new Error("Required width/height for frame buffers not yet supported in NativeEngine.");n._framebufferDepthStencil?this._bindUnboundFramebuffer(n._framebufferDepthStencil):this._bindUnboundFramebuffer(n._framebuffer)}unBindFramebuffer(e,t=!1,i){this._currentRenderTarget=null,i&&i(),this._bindUnboundFramebuffer(null)}createDynamicVertexBuffer(e){return this.createVertexBuffer(e,!0)}updateDynamicIndexBuffer(e,t,i=0){const s=e,r=this._normalizeIndexData(t);s.is32Bits=r.BYTES_PER_ELEMENT===4,this._engine.updateDynamicIndexBuffer(s.nativeIndexBuffer,r.buffer,r.byteOffset,r.byteLength,i)}updateDynamicVertexBuffer(e,t,i=0,s){const r=e,n=t instanceof Array?new Float32Array(t):t instanceof ArrayBuffer?new Uint8Array(t):t,o=new Uint8Array(n.buffer,n.byteOffset,s??n.byteLength);this._engine.updateDynamicVertexBuffer(r.nativeVertexBuffer,o.buffer,o.byteOffset,o.byteLength,i)}_setTexture(e,t,i=!1,s=!1){const r=this._boundUniforms[e];if(!r)return!1;if(!t)return this._boundTexturesCache[e]!=null&&(this._activeChannel=e,this._boundTexturesCache[e]=null,this._unsetNativeTexture(r)),!1;if(t.video)this._activeChannel=e,t.update();else if(t.delayLoadState===4)return t.delayLoad(),!1;let n;return s?n=t.depthStencilTexture:t.isReady()?n=t.getInternalTexture():t.isCube?n=this.emptyCubeTexture:t.is3D?n=this.emptyTexture3D:t.is2DArray?n=this.emptyTexture2DArray:n=this.emptyTexture,this._activeChannel=e,!n||!n._hardwareTexture?!1:(this._setTextureWrapMode(n._hardwareTexture.underlyingResource,TQ(t.wrapU),TQ(t.wrapV),TQ(t.wrapR)),this._updateAnisotropicLevel(t),this._setNativeTexture(r,n._hardwareTexture.underlyingResource),!0)}_setTextureSampling(e,t){this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETTEXTURESAMPLING),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsUInt32(t),this._commandBufferEncoder.finishEncodingCommand()}_setTextureWrapMode(e,t,i,s){this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETTEXTUREWRAPMODE),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsUInt32(t),this._commandBufferEncoder.encodeCommandArgAsUInt32(i),this._commandBufferEncoder.encodeCommandArgAsUInt32(s),this._commandBufferEncoder.finishEncodingCommand()}_setNativeTexture(e,t){this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETTEXTURE),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.encodeCommandArgAsNativeData(t),this._commandBufferEncoder.finishEncodingCommand()}_unsetNativeTexture(e){_native.Engine.COMMAND_UNSETTEXTURE&&(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_UNSETTEXTURE),this._commandBufferEncoder.encodeCommandArgAsNativeData(e),this._commandBufferEncoder.finishEncodingCommand())}_updateAnisotropicLevel(e){const t=e.getInternalTexture(),i=e.anisotropicFilteringLevel;!t||!t._hardwareTexture||t._cachedAnisotropicFilteringLevel!==i&&(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETTEXTUREANISOTROPICLEVEL),this._commandBufferEncoder.encodeCommandArgAsNativeData(t._hardwareTexture.underlyingResource),this._commandBufferEncoder.encodeCommandArgAsUInt32(i),this._commandBufferEncoder.finishEncodingCommand(),t._cachedAnisotropicFilteringLevel=i)}_bindTexture(e,t){const i=this._boundUniforms[e];if(i)if(t&&t._hardwareTexture){const s=t._hardwareTexture.underlyingResource;this._setNativeTexture(i,s)}else this._unsetNativeTexture(i)}unbindAllTextures(){_native.Engine.COMMAND_DISCARDALLTEXTURES&&(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DISCARDALLTEXTURES),this._commandBufferEncoder.finishEncodingCommand())}_deleteBuffer(e){e.nativeIndexBuffer&&(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEINDEXBUFFER),this._commandBufferEncoder.encodeCommandArgAsNativeData(e.nativeIndexBuffer),this._commandBufferEncoder.finishEncodingCommand(),delete e.nativeIndexBuffer),e.nativeVertexBuffer&&(this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEVERTEXBUFFER),this._commandBufferEncoder.encodeCommandArgAsNativeData(e.nativeVertexBuffer),this._commandBufferEncoder.finishEncodingCommand(),delete e.nativeVertexBuffer)}createCanvas(e,t){if(!_native.Canvas)throw new Error("Native Canvas plugin not available.");const i=new _native.Canvas;return i.width=e,i.height=t,i}createCanvasImage(){if(!_native.Canvas)throw new Error("Native Canvas plugin not available.");return new _native.Image}createCanvasPath2D(e){if(!_native.Canvas)throw new Error("Native Canvas plugin not available.");return new _native.Path2D(e)}updateTextureData(e,t,i,s,r,n,o=0,l=0,c=!1){throw new Error("updateTextureData not implemented.")}_uploadCompressedDataToTextureDirectly(e,t,i,s,r,n=0,o=0){throw new Error("_uploadCompressedDataToTextureDirectly not implemented.")}_uploadDataToTextureDirectly(e,t,i=0,s=0){throw new Error("_uploadDataToTextureDirectly not implemented.")}_uploadArrayBufferViewToTexture(e,t,i=0,s=0){throw new Error("_uploadArrayBufferViewToTexture not implemented.")}_uploadImageToTexture(e,t,i=0,s=0){throw new Error("_uploadArrayBufferViewToTexture not implemented.")}getFontOffset(e){return{ascent:0,height:0,descent:0}}flushFramebuffer(){}_readTexturePixels(e,t,i,s,r,n,o,l,c,u){var f;if(s!==void 0&&s!==-1)throw new Error(`Reading cubemap faces is not supported, but faceIndex is ${s}.`);return this._engine.readTexture((f=e._hardwareTexture)==null?void 0:f.underlyingResource,r??0,c??0,u??0,t,i,(n==null?void 0:n.buffer)??null,(n==null?void 0:n.byteOffset)??0,(n==null?void 0:n.byteLength)??0).then(p=>(n||(n=new Uint8Array(p)),n))}startTimeQuery(){return this._gpuFrameTimeToken||(this._gpuFrameTimeToken=new bQ),this._gpuFrameTimeToken}endTimeQuery(e){var t,i;return(i=(t=this._engine).populateFrameStats)==null||i.call(t,this._frameStats),this._frameStats.gpuTimeNs}}bL.PROTOCOL_VERSION=8,bL._createNativeDataStream=function(){return _native.NativeDataStream.VALIDATION_ENABLED?new I0e:new $T};class I0e extends $T{constructor(){super()}writeUint32(e){super.writeUint32(_native.NativeDataStream.VALIDATION_UINT_32),super.writeUint32(e)}writeInt32(e){super.writeUint32(_native.NativeDataStream.VALIDATION_INT_32),super.writeInt32(e)}writeFloat32(e){super.writeUint32(_native.NativeDataStream.VALIDATION_FLOAT_32),super.writeFloat32(e)}writeUint32Array(e){super.writeUint32(_native.NativeDataStream.VALIDATION_UINT_32_ARRAY),super.writeUint32Array(e)}writeInt32Array(e){super.writeUint32(_native.NativeDataStream.VALIDATION_INT_32_ARRAY),super.writeInt32Array(e)}writeFloat32Array(e){super.writeUint32(_native.NativeDataStream.VALIDATION_FLOAT_32_ARRAY),super.writeFloat32Array(e)}writeNativeData(e){super.writeUint32(_native.NativeDataStream.VALIDATION_NATIVE_DATA),super.writeNativeData(e)}writeBoolean(e){super.writeUint32(_native.NativeDataStream.VALIDATION_BOOLEAN),super.writeBoolean(e)}}class rn{static ComputeNumMipmapLevels(e,t){return OT(Math.max(e,t))+1}static GetTextureTypeFromFormat(e){switch(e){case"r8unorm":case"r8uint":case"rg8unorm":case"rg8uint":case"rgba8unorm":case"rgba8unorm-srgb":case"rgba8uint":case"bgra8unorm":case"bgra8unorm-srgb":case"rgb10a2uint":case"rgb10a2unorm":case"rgb9e5ufloat":case"rg11b10ufloat":case"bc7-rgba-unorm":case"bc7-rgba-unorm-srgb":case"bc6h-rgb-ufloat":case"bc5-rg-unorm":case"bc3-rgba-unorm":case"bc3-rgba-unorm-srgb":case"bc2-rgba-unorm":case"bc2-rgba-unorm-srgb":case"bc4-r-unorm":case"bc1-rgba-unorm":case"bc1-rgba-unorm-srgb":case"etc2-rgb8unorm":case"etc2-rgb8unorm-srgb":case"etc2-rgb8a1unorm":case"etc2-rgb8a1unorm-srgb":case"etc2-rgba8unorm":case"etc2-rgba8unorm-srgb":case"eac-r11unorm":case"eac-rg11unorm":case"astc-4x4-unorm":case"astc-4x4-unorm-srgb":case"astc-5x4-unorm":case"astc-5x4-unorm-srgb":case"astc-5x5-unorm":case"astc-5x5-unorm-srgb":case"astc-6x5-unorm":case"astc-6x5-unorm-srgb":case"astc-6x6-unorm":case"astc-6x6-unorm-srgb":case"astc-8x5-unorm":case"astc-8x5-unorm-srgb":case"astc-8x6-unorm":case"astc-8x6-unorm-srgb":case"astc-8x8-unorm":case"astc-8x8-unorm-srgb":case"astc-10x5-unorm":case"astc-10x5-unorm-srgb":case"astc-10x6-unorm":case"astc-10x6-unorm-srgb":case"astc-10x8-unorm":case"astc-10x8-unorm-srgb":case"astc-10x10-unorm":case"astc-10x10-unorm-srgb":case"astc-12x10-unorm":case"astc-12x10-unorm-srgb":case"astc-12x12-unorm":case"astc-12x12-unorm-srgb":case"stencil8":return 0;case"r8snorm":case"r8sint":case"rg8snorm":case"rg8sint":case"rgba8snorm":case"rgba8sint":case"bc6h-rgb-float":case"bc5-rg-snorm":case"bc4-r-snorm":case"eac-r11snorm":case"eac-rg11snorm":return 3;case"r16uint":case"r16unorm":case"rg16unorm":case"rgba16unorm":case"rg16uint":case"rgba16uint":case"depth16unorm":return 5;case"r16sint":case"r16snorm":case"rg16snorm":case"rgba16snorm":case"rg16sint":case"rgba16sint":return 4;case"r16float":case"rg16float":case"rgba16float":return 2;case"r32uint":case"rg32uint":case"rgba32uint":return 7;case"r32sint":case"rg32sint":case"rgba32sint":return 7;case"r32float":case"rg32float":case"rgba32float":case"depth32float":case"depth32float-stencil8":case"depth24plus":case"depth24plus-stencil8":return 1}return 0}static GetBlockInformationFromFormat(e){switch(e){case"r8unorm":case"r8snorm":case"r8uint":case"r8sint":return{width:1,height:1,length:1};case"r16uint":case"r16sint":case"r16unorm":case"rg16unorm":case"rgba16unorm":case"r16snorm":case"rg16snorm":case"rgba16snorm":case"r16float":case"rg8unorm":case"rg8snorm":case"rg8uint":case"rg8sint":return{width:1,height:1,length:2};case"r32uint":case"r32sint":case"r32float":case"rg16uint":case"rg16sint":case"rg16float":case"rgba8unorm":case"rgba8unorm-srgb":case"rgba8snorm":case"rgba8uint":case"rgba8sint":case"bgra8unorm":case"bgra8unorm-srgb":case"rgb9e5ufloat":case"rgb10a2uint":case"rgb10a2unorm":case"rg11b10ufloat":return{width:1,height:1,length:4};case"rg32uint":case"rg32sint":case"rg32float":case"rgba16uint":case"rgba16sint":case"rgba16float":return{width:1,height:1,length:8};case"rgba32uint":case"rgba32sint":case"rgba32float":return{width:1,height:1,length:16};case"stencil8":throw"No fixed size for Stencil8 format!";case"depth16unorm":return{width:1,height:1,length:2};case"depth24plus":throw"No fixed size for Depth24Plus format!";case"depth24plus-stencil8":throw"No fixed size for Depth24PlusStencil8 format!";case"depth32float":return{width:1,height:1,length:4};case"depth32float-stencil8":return{width:1,height:1,length:5};case"bc7-rgba-unorm":case"bc7-rgba-unorm-srgb":case"bc6h-rgb-ufloat":case"bc6h-rgb-float":case"bc5-rg-unorm":case"bc5-rg-snorm":case"bc3-rgba-unorm":case"bc3-rgba-unorm-srgb":case"bc2-rgba-unorm":case"bc2-rgba-unorm-srgb":return{width:4,height:4,length:16};case"bc4-r-unorm":case"bc4-r-snorm":case"bc1-rgba-unorm":case"bc1-rgba-unorm-srgb":return{width:4,height:4,length:8};case"etc2-rgb8unorm":case"etc2-rgb8unorm-srgb":case"etc2-rgb8a1unorm":case"etc2-rgb8a1unorm-srgb":case"eac-r11unorm":case"eac-r11snorm":return{width:4,height:4,length:8};case"etc2-rgba8unorm":case"etc2-rgba8unorm-srgb":case"eac-rg11unorm":case"eac-rg11snorm":return{width:4,height:4,length:16};case"astc-4x4-unorm":case"astc-4x4-unorm-srgb":return{width:4,height:4,length:16};case"astc-5x4-unorm":case"astc-5x4-unorm-srgb":return{width:5,height:4,length:16};case"astc-5x5-unorm":case"astc-5x5-unorm-srgb":return{width:5,height:5,length:16};case"astc-6x5-unorm":case"astc-6x5-unorm-srgb":return{width:6,height:5,length:16};case"astc-6x6-unorm":case"astc-6x6-unorm-srgb":return{width:6,height:6,length:16};case"astc-8x5-unorm":case"astc-8x5-unorm-srgb":return{width:8,height:5,length:16};case"astc-8x6-unorm":case"astc-8x6-unorm-srgb":return{width:8,height:6,length:16};case"astc-8x8-unorm":case"astc-8x8-unorm-srgb":return{width:8,height:8,length:16};case"astc-10x5-unorm":case"astc-10x5-unorm-srgb":return{width:10,height:5,length:16};case"astc-10x6-unorm":case"astc-10x6-unorm-srgb":return{width:10,height:6,length:16};case"astc-10x8-unorm":case"astc-10x8-unorm-srgb":return{width:10,height:8,length:16};case"astc-10x10-unorm":case"astc-10x10-unorm-srgb":return{width:10,height:10,length:16};case"astc-12x10-unorm":case"astc-12x10-unorm-srgb":return{width:12,height:10,length:16};case"astc-12x12-unorm":case"astc-12x12-unorm-srgb":return{width:12,height:12,length:16}}return{width:1,height:1,length:4}}static IsHardwareTexture(e){return!!e.release}static IsInternalTexture(e){return!!e.dispose}static IsImageBitmap(e){return e.close!==void 0}static IsImageBitmapArray(e){return Array.isArray(e)&&e[0].close!==void 0}static IsCompressedFormat(e){switch(e){case"bc7-rgba-unorm-srgb":case"bc7-rgba-unorm":case"bc6h-rgb-float":case"bc6h-rgb-ufloat":case"bc5-rg-snorm":case"bc5-rg-unorm":case"bc4-r-snorm":case"bc4-r-unorm":case"bc3-rgba-unorm-srgb":case"bc3-rgba-unorm":case"bc2-rgba-unorm-srgb":case"bc2-rgba-unorm":case"bc1-rgba-unorm-srgb":case"bc1-rgba-unorm":case"etc2-rgb8unorm":case"etc2-rgb8unorm-srgb":case"etc2-rgb8a1unorm":case"etc2-rgb8a1unorm-srgb":case"etc2-rgba8unorm":case"etc2-rgba8unorm-srgb":case"eac-r11unorm":case"eac-r11snorm":case"eac-rg11unorm":case"eac-rg11snorm":case"astc-4x4-unorm":case"astc-4x4-unorm-srgb":case"astc-5x4-unorm":case"astc-5x4-unorm-srgb":case"astc-5x5-unorm":case"astc-5x5-unorm-srgb":case"astc-6x5-unorm":case"astc-6x5-unorm-srgb":case"astc-6x6-unorm":case"astc-6x6-unorm-srgb":case"astc-8x5-unorm":case"astc-8x5-unorm-srgb":case"astc-8x6-unorm":case"astc-8x6-unorm-srgb":case"astc-8x8-unorm":case"astc-8x8-unorm-srgb":case"astc-10x5-unorm":case"astc-10x5-unorm-srgb":case"astc-10x6-unorm":case"astc-10x6-unorm-srgb":case"astc-10x8-unorm":case"astc-10x8-unorm-srgb":case"astc-10x10-unorm":case"astc-10x10-unorm-srgb":case"astc-12x10-unorm":case"astc-12x10-unorm-srgb":case"astc-12x12-unorm":case"astc-12x12-unorm-srgb":return!0}return!1}static GetWebGPUTextureFormat(e,t,i=!1){switch(t){case 15:return"depth16unorm";case 16:return"depth24plus";case 13:return"depth24plus-stencil8";case 14:return"depth32float";case 18:return"depth32float-stencil8";case 19:return"stencil8";case 36492:return i?"bc7-rgba-unorm-srgb":"bc7-rgba-unorm";case 36495:return"bc6h-rgb-ufloat";case 36494:return"bc6h-rgb-float";case 33779:return i?"bc3-rgba-unorm-srgb":"bc3-rgba-unorm";case 33778:return i?"bc2-rgba-unorm-srgb":"bc2-rgba-unorm";case 33777:case 33776:return i?"bc1-rgba-unorm-srgb":"bc1-rgba-unorm";case 37808:return i?"astc-4x4-unorm-srgb":"astc-4x4-unorm";case 36196:case 37492:return i?"etc2-rgb8unorm-srgb":"etc2-rgb8unorm";case 37496:return i?"etc2-rgba8unorm-srgb":"etc2-rgba8unorm"}switch(e){case 3:switch(t){case 6:return"r8snorm";case 7:return"rg8snorm";case 4:throw"RGB format not supported in WebGPU";case 8:return"r8sint";case 9:return"rg8sint";case 10:throw"RGB_INTEGER format not supported in WebGPU";case 11:return"rgba8sint";default:return"rgba8snorm"}case 0:switch(t){case 6:return"r8unorm";case 7:return"rg8unorm";case 4:throw"TEXTUREFORMAT_RGB format not supported in WebGPU";case 5:return i?"rgba8unorm-srgb":"rgba8unorm";case 12:return i?"bgra8unorm-srgb":"bgra8unorm";case 8:return"r8uint";case 9:return"rg8uint";case 10:throw"RGB_INTEGER format not supported in WebGPU";case 11:return"rgba8uint";case 0:throw"TEXTUREFORMAT_ALPHA format not supported in WebGPU";case 1:throw"TEXTUREFORMAT_LUMINANCE format not supported in WebGPU";case 2:throw"TEXTUREFORMAT_LUMINANCE_ALPHA format not supported in WebGPU";default:return"rgba8unorm"}case 4:switch(t){case 8:return"r16sint";case 9:return"rg16sint";case 10:throw"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU";case 11:return"rgba16sint";default:return"rgba16sint"}case 5:switch(t){case 8:return"r16uint";case 9:return"rg16uint";case 10:throw"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU";case 11:return"rgba16uint";default:return"rgba16uint"}case 6:switch(t){case 8:return"r32sint";case 9:return"rg32sint";case 10:throw"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU";case 11:return"rgba32sint";default:return"rgba32sint"}case 7:switch(t){case 8:return"r32uint";case 9:return"rg32uint";case 10:throw"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU";case 11:return"rgba32uint";default:return"rgba32uint"}case 1:switch(t){case 6:return"r32float";case 7:return"rg32float";case 4:throw"TEXTUREFORMAT_RGB format not supported in WebGPU";case 5:return"rgba32float";default:return"rgba32float"}case 2:switch(t){case 6:return"r16float";case 7:return"rg16float";case 4:throw"TEXTUREFORMAT_RGB format not supported in WebGPU";case 5:return"rgba16float";default:return"rgba16float"}case 10:throw"TEXTURETYPE_UNSIGNED_SHORT_5_6_5 format not supported in WebGPU";case 13:switch(t){case 5:return"rg11b10ufloat";case 11:throw"TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV";default:return"rg11b10ufloat"}case 14:switch(t){case 5:return"rgb9e5ufloat";case 11:throw"TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV";default:return"rgb9e5ufloat"}case 8:throw"TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 format not supported in WebGPU";case 9:throw"TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 format not supported in WebGPU";case 11:switch(t){case 5:return"rgb10a2unorm";case 11:return"rgb10a2uint";default:return"rgb10a2unorm"}}return i?"rgba8unorm-srgb":"rgba8unorm"}static GetNumChannelsFromWebGPUTextureFormat(e){switch(e){case"r8unorm":case"r8snorm":case"r8uint":case"r8sint":case"bc4-r-unorm":case"bc4-r-snorm":case"r16uint":case"r16sint":case"depth16unorm":case"r16float":case"r16unorm":case"r16snorm":case"r32uint":case"r32sint":case"r32float":case"depth32float":case"stencil8":case"depth24plus":case"eac-r11unorm":case"eac-r11snorm":return 1;case"rg8unorm":case"rg8snorm":case"rg8uint":case"rg8sint":case"depth32float-stencil8":case"bc5-rg-unorm":case"bc5-rg-snorm":case"rg16uint":case"rg16sint":case"rg16float":case"rg16unorm":case"rg16snorm":case"rg32uint":case"rg32sint":case"rg32float":case"depth24plus-stencil8":case"eac-rg11unorm":case"eac-rg11snorm":return 2;case"rgb9e5ufloat":case"rg11b10ufloat":case"bc6h-rgb-ufloat":case"bc6h-rgb-float":case"etc2-rgb8unorm":case"etc2-rgb8unorm-srgb":return 3;case"rgba8unorm":case"rgba8unorm-srgb":case"rgba8snorm":case"rgba8uint":case"rgba8sint":case"bgra8unorm":case"bgra8unorm-srgb":case"rgba16unorm":case"rgba16snorm":case"rgb10a2uint":case"rgb10a2unorm":case"bc7-rgba-unorm":case"bc7-rgba-unorm-srgb":case"bc3-rgba-unorm":case"bc3-rgba-unorm-srgb":case"bc2-rgba-unorm":case"bc2-rgba-unorm-srgb":case"bc1-rgba-unorm":case"bc1-rgba-unorm-srgb":case"rgba16uint":case"rgba16sint":case"rgba16float":case"rgba32uint":case"rgba32sint":case"rgba32float":case"etc2-rgb8a1unorm":case"etc2-rgb8a1unorm-srgb":case"etc2-rgba8unorm":case"etc2-rgba8unorm-srgb":case"astc-4x4-unorm":case"astc-4x4-unorm-srgb":case"astc-5x4-unorm":case"astc-5x4-unorm-srgb":case"astc-5x5-unorm":case"astc-5x5-unorm-srgb":case"astc-6x5-unorm":case"astc-6x5-unorm-srgb":case"astc-6x6-unorm":case"astc-6x6-unorm-srgb":case"astc-8x5-unorm":case"astc-8x5-unorm-srgb":case"astc-8x6-unorm":case"astc-8x6-unorm-srgb":case"astc-8x8-unorm":case"astc-8x8-unorm-srgb":case"astc-10x5-unorm":case"astc-10x5-unorm-srgb":case"astc-10x6-unorm":case"astc-10x6-unorm-srgb":case"astc-10x8-unorm":case"astc-10x8-unorm-srgb":case"astc-10x10-unorm":case"astc-10x10-unorm-srgb":case"astc-12x10-unorm":case"astc-12x10-unorm-srgb":case"astc-12x12-unorm":case"astc-12x12-unorm-srgb":return 4}throw`Unknown format ${e}!`}static HasStencilAspect(e){switch(e){case"stencil8":case"depth32float-stencil8":case"depth24plus-stencil8":return!0}return!1}static HasDepthAndStencilAspects(e){switch(e){case"depth32float-stencil8":case"depth24plus-stencil8":return!0}return!1}static GetDepthFormatOnly(e){switch(e){case"depth16unorm":return"depth16unorm";case"depth24plus":return"depth24plus";case"depth24plus-stencil8":return"depth24plus";case"depth32float":return"depth32float";case"depth32float-stencil8":return"depth32float"}return e}static GetSample(e){return e>1?4:1}}class Ea extends dt{constructor(){super(...arguments),this.dbgShowShaderCode=!1,this.dbgSanityChecks=!0,this.dbgVerboseLogsNumFrames=10,this.dbgLogIfNotDrawWrapper=!0,this.dbgShowEmptyEnableEffectCalls=!0,this.dbgVerboseLogsForFirstFrames=!1,this._currentRenderPass=null,this._snapshotRenderingMode=0,this._timestampIndex=0,this._debugStackRenderPass=[]}get enableGPUTimingMeasurements(){return this._timestampQuery.enable}set enableGPUTimingMeasurements(e){this._timestampQuery.enable!==e&&(this.gpuTimeInFrameForMainPass=e?new gQ:void 0,this._timestampQuery.enable=e)}_currentPassIsMainPass(){return this._currentRenderTarget===null}_endCurrentRenderPass(){var t,i,s;if(!this._currentRenderPass)return 0;if(this._debugStackRenderPass.length!==0)for(let r=0;r<this._debugStackRenderPass.length;++r)this._currentRenderPass.popDebugGroup();const e=this._currentPassIsMainPass()?2:1;return!this._snapshotRendering.endRenderPass(this._currentRenderPass)&&!this.compatibilityMode&&(this._bundleList.run(this._currentRenderPass),this._bundleList.reset()),this._currentRenderPass.end(),this._timestampQuery.endPass(this._timestampIndex,this._currentRenderTarget&&this._currentRenderTarget.gpuTimeInFrame?this._currentRenderTarget.gpuTimeInFrame:this.gpuTimeInFrameForMainPass),this._timestampIndex+=2,this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),(!this._count||this._count<this.dbgVerboseLogsNumFrames)&&de.Log("frame #"+this._count+" - "+(e===2?"main":"render target")+" end pass"+(e===1?" - internalTexture.uniqueId="+((i=(t=this._currentRenderTarget)==null?void 0:t.texture)==null?void 0:i.uniqueId):""))),(s=this._debugPopGroup)==null||s.call(this,0),this._currentRenderPass=null,e}_generateMipmaps(e,t){t=t??this._renderEncoder;const i=e._hardwareTexture;if(!i)return;t===this._renderEncoder&&this._endCurrentRenderPass();const s=e._hardwareTexture.format,r=rn.ComputeNumMipmapLevels(e.width,e.height);this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),(!this._count||this._count<this.dbgVerboseLogsNumFrames)&&de.Log("frame #"+this._count+" - generate mipmaps - width="+e.width+", height="+e.height+", isCube="+e.isCube+", command encoder="+(t===this._renderEncoder?"render":"copy"))),e.isCube?this._textureHelper.generateCubeMipmaps(i,s,r,t):this._textureHelper.generateMipmaps(i,s,r,0,e.is3D,t)}}Ea.prototype.setAlphaMode=function(a,e=!1){if(this._alphaMode===a&&(a===0&&!this._alphaState.alphaBlend||a!==0&&this._alphaState.alphaBlend)){if(!e){const t=a===0;this.depthCullingState.depthMask!==t&&(this.setDepthWrite(t),this._cacheRenderPipeline.setDepthWriteEnabled(t))}return}switch(a){case 0:this._alphaState.alphaBlend=!1;break;case 7:this._alphaState.setAlphaBlendFunctionParameters(1,771,1,1),this._alphaState.alphaBlend=!0;break;case 8:this._alphaState.setAlphaBlendFunctionParameters(1,771,1,771),this._alphaState.alphaBlend=!0;break;case 2:this._alphaState.setAlphaBlendFunctionParameters(770,771,1,1),this._alphaState.alphaBlend=!0;break;case 6:this._alphaState.setAlphaBlendFunctionParameters(1,1,0,1),this._alphaState.alphaBlend=!0;break;case 1:this._alphaState.setAlphaBlendFunctionParameters(770,1,0,1),this._alphaState.alphaBlend=!0;break;case 3:this._alphaState.setAlphaBlendFunctionParameters(0,769,1,1),this._alphaState.alphaBlend=!0;break;case 4:this._alphaState.setAlphaBlendFunctionParameters(774,0,1,1),this._alphaState.alphaBlend=!0;break;case 5:this._alphaState.setAlphaBlendFunctionParameters(770,769,1,1),this._alphaState.alphaBlend=!0;break;case 9:this._alphaState.setAlphaBlendFunctionParameters(32769,32770,32771,32772),this._alphaState.alphaBlend=!0;break;case 10:this._alphaState.setAlphaBlendFunctionParameters(1,769,1,771),this._alphaState.alphaBlend=!0;break;case 11:this._alphaState.setAlphaBlendFunctionParameters(1,1,1,1),this._alphaState.alphaBlend=!0;break;case 12:this._alphaState.setAlphaBlendFunctionParameters(772,1,0,0),this._alphaState.alphaBlend=!0;break;case 13:this._alphaState.setAlphaBlendFunctionParameters(775,769,773,771),this._alphaState.alphaBlend=!0;break;case 14:this._alphaState.setAlphaBlendFunctionParameters(1,771,1,771),this._alphaState.alphaBlend=!0;break;case 15:this._alphaState.setAlphaBlendFunctionParameters(1,1,1,0),this._alphaState.alphaBlend=!0;break;case 16:this._alphaState.setAlphaBlendFunctionParameters(775,769,0,1),this._alphaState.alphaBlend=!0;break;case 17:this._alphaState.setAlphaBlendFunctionParameters(770,771,1,771),this._alphaState.alphaBlend=!0;break}e||(this.setDepthWrite(a===0),this._cacheRenderPipeline.setDepthWriteEnabled(a===0)),this._alphaMode=a,this._cacheRenderPipeline.setAlphaBlendEnabled(this._alphaState.alphaBlend),this._cacheRenderPipeline.setAlphaBlendFactors(this._alphaState._blendFunctionParameters,this._alphaState._blendEquationParameters)},Ea.prototype.setAlphaEquation=function(a){dt.prototype.setAlphaEquation.call(this,a),this._cacheRenderPipeline.setAlphaBlendFactors(this._alphaState._blendFunctionParameters,this._alphaState._blendEquationParameters)};var IQ;(function(a){a.LowPower="low-power",a.HighPerformance="high-performance"})(IQ||(IQ={}));var PQ;(function(a){a.DepthClipControl="depth-clip-control",a.Depth32FloatStencil8="depth32float-stencil8",a.TextureCompressionBC="texture-compression-bc",a.TextureCompressionBCSliced3D="texture-compression-bc-sliced-3d",a.TextureCompressionETC2="texture-compression-etc2",a.TextureCompressionASTC="texture-compression-astc",a.TextureCompressionASTCSliced3D="texture-compression-astc-sliced-3d",a.TimestampQuery="timestamp-query",a.IndirectFirstInstance="indirect-first-instance",a.ShaderF16="shader-f16",a.RG11B10UFloatRenderable="rg11b10ufloat-renderable",a.BGRA8UnormStorage="bgra8unorm-storage",a.Float32Filterable="float32-filterable",a.Float32Blendable="float32-blendable",a.ClipDistances="clip-distances",a.DualSourceBlending="dual-source-blending"})(PQ||(PQ={}));var OQ;(function(a){a.Unmapped="unmapped",a.Pending="pending",a.Mapped="mapped"})(OQ||(OQ={}));var nn;(function(a){a[a.MapRead=1]="MapRead",a[a.MapWrite=2]="MapWrite",a[a.CopySrc=4]="CopySrc",a[a.CopyDst=8]="CopyDst",a[a.Index=16]="Index",a[a.Vertex=32]="Vertex",a[a.Uniform=64]="Uniform",a[a.Storage=128]="Storage",a[a.Indirect=256]="Indirect",a[a.QueryResolve=512]="QueryResolve"})(nn||(nn={}));var RQ;(function(a){a[a.Read=1]="Read",a[a.Write=2]="Write"})(RQ||(RQ={}));var DQ;(function(a){a.E1d="1d",a.E2d="2d",a.E3d="3d"})(DQ||(DQ={}));var NQ;(function(a){a[a.CopySrc=1]="CopySrc",a[a.CopyDst=2]="CopyDst",a[a.TextureBinding=4]="TextureBinding",a[a.StorageBinding=8]="StorageBinding",a[a.RenderAttachment=16]="RenderAttachment"})(NQ||(NQ={}));var wQ;(function(a){a.E1d="1d",a.E2d="2d",a.E2dArray="2d-array",a.Cube="cube",a.CubeArray="cube-array",a.E3d="3d"})(wQ||(wQ={}));var BQ;(function(a){a.All="all",a.StencilOnly="stencil-only",a.DepthOnly="depth-only"})(BQ||(BQ={}));var zQ;(function(a){a.R8Unorm="r8unorm",a.R8Snorm="r8snorm",a.R8Uint="r8uint",a.R8Sint="r8sint",a.R16Uint="r16uint",a.R16Sint="r16sint",a.R16Float="r16float",a.RG8Unorm="rg8unorm",a.RG8Snorm="rg8snorm",a.RG8Uint="rg8uint",a.RG8Sint="rg8sint",a.R16Unorm="r16unorm",a.R16Snorm="r16snorm",a.RG16Unorm="rg16unorm",a.RG16Snorm="rg16snorm",a.RGBA16Unorm="rgba16unorm",a.RGBA16Snorm="rgba16snorm",a.R32Uint="r32uint",a.R32Sint="r32sint",a.R32Float="r32float",a.RG16Uint="rg16uint",a.RG16Sint="rg16sint",a.RG16Float="rg16float",a.RGBA8Unorm="rgba8unorm",a.RGBA8UnormSRGB="rgba8unorm-srgb",a.RGBA8Snorm="rgba8snorm",a.RGBA8Uint="rgba8uint",a.RGBA8Sint="rgba8sint",a.BGRA8Unorm="bgra8unorm",a.BGRA8UnormSRGB="bgra8unorm-srgb",a.RGB9E5UFloat="rgb9e5ufloat",a.RGB10A2UINT="rgb10a2uint",a.RGB10A2Unorm="rgb10a2unorm",a.RG11B10UFloat="rg11b10ufloat",a.RG32Uint="rg32uint",a.RG32Sint="rg32sint",a.RG32Float="rg32float",a.RGBA16Uint="rgba16uint",a.RGBA16Sint="rgba16sint",a.RGBA16Float="rgba16float",a.RGBA32Uint="rgba32uint",a.RGBA32Sint="rgba32sint",a.RGBA32Float="rgba32float",a.Stencil8="stencil8",a.Depth16Unorm="depth16unorm",a.Depth24Plus="depth24plus",a.Depth24PlusStencil8="depth24plus-stencil8",a.Depth32Float="depth32float",a.BC1RGBAUnorm="bc1-rgba-unorm",a.BC1RGBAUnormSRGB="bc1-rgba-unorm-srgb",a.BC2RGBAUnorm="bc2-rgba-unorm",a.BC2RGBAUnormSRGB="bc2-rgba-unorm-srgb",a.BC3RGBAUnorm="bc3-rgba-unorm",a.BC3RGBAUnormSRGB="bc3-rgba-unorm-srgb",a.BC4RUnorm="bc4-r-unorm",a.BC4RSnorm="bc4-r-snorm",a.BC5RGUnorm="bc5-rg-unorm",a.BC5RGSnorm="bc5-rg-snorm",a.BC6HRGBUFloat="bc6h-rgb-ufloat",a.BC6HRGBFloat="bc6h-rgb-float",a.BC7RGBAUnorm="bc7-rgba-unorm",a.BC7RGBAUnormSRGB="bc7-rgba-unorm-srgb",a.ETC2RGB8Unorm="etc2-rgb8unorm",a.ETC2RGB8UnormSRGB="etc2-rgb8unorm-srgb",a.ETC2RGB8A1Unorm="etc2-rgb8a1unorm",a.ETC2RGB8A1UnormSRGB="etc2-rgb8a1unorm-srgb",a.ETC2RGBA8Unorm="etc2-rgba8unorm",a.ETC2RGBA8UnormSRGB="etc2-rgba8unorm-srgb",a.EACR11Unorm="eac-r11unorm",a.EACR11Snorm="eac-r11snorm",a.EACRG11Unorm="eac-rg11unorm",a.EACRG11Snorm="eac-rg11snorm",a.ASTC4x4Unorm="astc-4x4-unorm",a.ASTC4x4UnormSRGB="astc-4x4-unorm-srgb",a.ASTC5x4Unorm="astc-5x4-unorm",a.ASTC5x4UnormSRGB="astc-5x4-unorm-srgb",a.ASTC5x5Unorm="astc-5x5-unorm",a.ASTC5x5UnormSRGB="astc-5x5-unorm-srgb",a.ASTC6x5Unorm="astc-6x5-unorm",a.ASTC6x5UnormSRGB="astc-6x5-unorm-srgb",a.ASTC6x6Unorm="astc-6x6-unorm",a.ASTC6x6UnormSRGB="astc-6x6-unorm-srgb",a.ASTC8x5Unorm="astc-8x5-unorm",a.ASTC8x5UnormSRGB="astc-8x5-unorm-srgb",a.ASTC8x6Unorm="astc-8x6-unorm",a.ASTC8x6UnormSRGB="astc-8x6-unorm-srgb",a.ASTC8x8Unorm="astc-8x8-unorm",a.ASTC8x8UnormSRGB="astc-8x8-unorm-srgb",a.ASTC10x5Unorm="astc-10x5-unorm",a.ASTC10x5UnormSRGB="astc-10x5-unorm-srgb",a.ASTC10x6Unorm="astc-10x6-unorm",a.ASTC10x6UnormSRGB="astc-10x6-unorm-srgb",a.ASTC10x8Unorm="astc-10x8-unorm",a.ASTC10x8UnormSRGB="astc-10x8-unorm-srgb",a.ASTC10x10Unorm="astc-10x10-unorm",a.ASTC10x10UnormSRGB="astc-10x10-unorm-srgb",a.ASTC12x10Unorm="astc-12x10-unorm",a.ASTC12x10UnormSRGB="astc-12x10-unorm-srgb",a.ASTC12x12Unorm="astc-12x12-unorm",a.ASTC12x12UnormSRGB="astc-12x12-unorm-srgb",a.Depth32FloatStencil8="depth32float-stencil8"})(zQ||(zQ={}));var FQ;(function(a){a.ClampToEdge="clamp-to-edge",a.Repeat="repeat",a.MirrorRepeat="mirror-repeat"})(FQ||(FQ={}));var kQ;(function(a){a.Nearest="nearest",a.Linear="linear"})(kQ||(kQ={}));var UQ;(function(a){a.Nearest="nearest",a.Linear="linear"})(UQ||(UQ={}));var jQ;(function(a){a.Never="never",a.Less="less",a.Equal="equal",a.LessEqual="less-equal",a.Greater="greater",a.NotEqual="not-equal",a.GreaterEqual="greater-equal",a.Always="always"})(jQ||(jQ={}));var VQ;(function(a){a[a.Vertex=1]="Vertex",a[a.Fragment=2]="Fragment",a[a.Compute=4]="Compute"})(VQ||(VQ={}));var GQ;(function(a){a.Uniform="uniform",a.Storage="storage",a.ReadOnlyStorage="read-only-storage"})(GQ||(GQ={}));var WQ;(function(a){a.Filtering="filtering",a.NonFiltering="non-filtering",a.Comparison="comparison"})(WQ||(WQ={}));var HQ;(function(a){a.Float="float",a.UnfilterableFloat="unfilterable-float",a.Depth="depth",a.Sint="sint",a.Uint="uint"})(HQ||(HQ={}));var YQ;(function(a){a.WriteOnly="write-only",a.ReadOnly="read-only",a.ReadWrite="read-write"})(YQ||(YQ={}));var XQ;(function(a){a.Error="error",a.Warning="warning",a.Info="info"})(XQ||(XQ={}));var ZQ;(function(a){a.Validation="validation",a.Internal="internal"})(ZQ||(ZQ={}));var KQ;(function(a){a.Auto="auto"})(KQ||(KQ={}));var qQ;(function(a){a.PointList="point-list",a.LineList="line-list",a.LineStrip="line-strip",a.TriangleList="triangle-list",a.TriangleStrip="triangle-strip"})(qQ||(qQ={}));var QQ;(function(a){a.CCW="ccw",a.CW="cw"})(QQ||(QQ={}));var JQ;(function(a){a.None="none",a.Front="front",a.Back="back"})(JQ||(JQ={}));var $Q;(function(a){a[a.Red=1]="Red",a[a.Green=2]="Green",a[a.Blue=4]="Blue",a[a.Alpha=8]="Alpha",a[a.All=15]="All"})($Q||($Q={}));var eJ;(function(a){a.Zero="zero",a.One="one",a.Src="src",a.OneMinusSrc="one-minus-src",a.SrcAlpha="src-alpha",a.OneMinusSrcAlpha="one-minus-src-alpha",a.Dst="dst",a.OneMinusDst="one-minus-dst",a.DstAlpha="dst-alpha",a.OneMinusDstAlpha="one-minus-dst-alpha",a.SrcAlphaSaturated="src-alpha-saturated",a.Constant="constant",a.OneMinusConstant="one-minus-constant",a.Src1="src1",a.OneMinusSrc1="one-minus-src1",a.Src1Alpha="src1-alpha",a.OneMinusSrc1Alpha="one-minus-src1-alpha"})(eJ||(eJ={}));var tJ;(function(a){a.Add="add",a.Subtract="subtract",a.ReverseSubtract="reverse-subtract",a.Min="min",a.Max="max"})(tJ||(tJ={}));var iJ;(function(a){a.Keep="keep",a.Zero="zero",a.Replace="replace",a.Invert="invert",a.IncrementClamp="increment-clamp",a.DecrementClamp="decrement-clamp",a.IncrementWrap="increment-wrap",a.DecrementWrap="decrement-wrap"})(iJ||(iJ={}));var sJ;(function(a){a.Uint16="uint16",a.Uint32="uint32"})(sJ||(sJ={}));var rJ;(function(a){a.Uint8x2="uint8x2",a.Uint8x4="uint8x4",a.Sint8x2="sint8x2",a.Sint8x4="sint8x4",a.Unorm8x2="unorm8x2",a.Unorm8x4="unorm8x4",a.Snorm8x2="snorm8x2",a.Snorm8x4="snorm8x4",a.Uint16x2="uint16x2",a.Uint16x4="uint16x4",a.Sint16x2="sint16x2",a.Sint16x4="sint16x4",a.Unorm16x2="unorm16x2",a.Unorm16x4="unorm16x4",a.Snorm16x2="snorm16x2",a.Snorm16x4="snorm16x4",a.Float16x2="float16x2",a.Float16x4="float16x4",a.Float32="float32",a.Float32x2="float32x2",a.Float32x3="float32x3",a.Float32x4="float32x4",a.Uint32="uint32",a.Uint32x2="uint32x2",a.Uint32x3="uint32x3",a.Uint32x4="uint32x4",a.Sint32="sint32",a.Sint32x2="sint32x2",a.Sint32x3="sint32x3",a.Sint32x4="sint32x4",a.UNORM10x10x10x2="unorm10-10-10-2"})(rJ||(rJ={}));var nJ;(function(a){a.Vertex="vertex",a.Instance="instance"})(nJ||(nJ={}));var aJ;(function(a){a.Beginning="beginning",a.End="end"})(aJ||(aJ={}));var oJ;(function(a){a.Beginning="beginning",a.End="end"})(oJ||(oJ={}));var lJ;(function(a){a.Load="load",a.Clear="clear"})(lJ||(lJ={}));var cJ;(function(a){a.Store="store",a.Discard="discard"})(cJ||(cJ={}));var uJ;(function(a){a.Occlusion="occlusion",a.Timestamp="timestamp"})(uJ||(uJ={}));var hJ;(function(a){a.Opaque="opaque",a.Premultiplied="premultiplied"})(hJ||(hJ={}));var dJ;(function(a){a.Standard="standard",a.Extended="extended"})(dJ||(dJ={}));var fJ;(function(a){a.Unknown="unknown",a.Destroyed="destroyed"})(fJ||(fJ={}));var pJ;(function(a){a.Validation="validation",a.OutOfMemory="out-of-memory",a.Internal="internal"})(pJ||(pJ={}));class wl{constructor(){this.shaderLanguage=0}_addUniformToLeftOverUBO(e,t,i){let s=0;[e,t,s]=this._getArraySize(e,t,i);for(let r=0;r<this._webgpuProcessingContext.leftOverUniforms.length;r++)if(this._webgpuProcessingContext.leftOverUniforms[r].name===e)return;this._webgpuProcessingContext.leftOverUniforms.push({name:e,type:t,length:s})}_buildLeftOverUBO(){if(!this._webgpuProcessingContext.leftOverUniforms.length)return"";const e=wl.LeftOvertUBOName;let t=this._webgpuProcessingContext.availableBuffers[e];return t||(t={binding:this._webgpuProcessingContext.getNextFreeUBOBinding()},this._webgpuProcessingContext.availableBuffers[e]=t,this._addBufferBindingDescription(e,t,"uniform",!0),this._addBufferBindingDescription(e,t,"uniform",!1)),this._generateLeftOverUBOCode(e,t)}_collectBindingNames(){for(let e=0;e<this._webgpuProcessingContext.bindGroupLayoutEntries.length;e++){const t=this._webgpuProcessingContext.bindGroupLayoutEntries[e];if(t===void 0){this._webgpuProcessingContext.bindGroupLayoutEntries[e]=[];continue}for(let i=0;i<t.length;i++){const s=this._webgpuProcessingContext.bindGroupLayoutEntries[e][i],r=this._webgpuProcessingContext.bindGroupLayoutEntryInfo[e][s.binding].name,n=this._webgpuProcessingContext.bindGroupLayoutEntryInfo[e][s.binding].nameInArrayOfTexture;s&&(s.texture||s.externalTexture||s.storageTexture?this._webgpuProcessingContext.textureNames.push(n):s.sampler?this._webgpuProcessingContext.samplerNames.push(r):s.buffer&&this._webgpuProcessingContext.bufferNames.push(r))}}}_preCreateBindGroupEntries(){const e=this._webgpuProcessingContext.bindGroupEntries;for(let t=0;t<this._webgpuProcessingContext.bindGroupLayoutEntries.length;t++){const i=this._webgpuProcessingContext.bindGroupLayoutEntries[t],s=[];for(let r=0;r<i.length;r++){const n=this._webgpuProcessingContext.bindGroupLayoutEntries[t][r];n.sampler||n.texture||n.storageTexture||n.externalTexture?s.push({binding:n.binding,resource:void 0}):n.buffer&&s.push({binding:n.binding,resource:{buffer:void 0,offset:0,size:0}})}e[t]=s}}_addTextureBindingDescription(e,t,i,s,r,n){let{groupIndex:o,bindingIndex:l}=t.textures[i];if(this._webgpuProcessingContext.bindGroupLayoutEntries[o]||(this._webgpuProcessingContext.bindGroupLayoutEntries[o]=[],this._webgpuProcessingContext.bindGroupLayoutEntryInfo[o]=[]),!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[o][l]){let c;s===null?c=this._webgpuProcessingContext.bindGroupLayoutEntries[o].push({binding:l,visibility:0,externalTexture:{}}):r?c=this._webgpuProcessingContext.bindGroupLayoutEntries[o].push({binding:l,visibility:0,storageTexture:{access:"write-only",format:r,viewDimension:s}}):c=this._webgpuProcessingContext.bindGroupLayoutEntries[o].push({binding:l,visibility:0,texture:{sampleType:t.sampleType,viewDimension:s,multisampled:!1}});const u=t.isTextureArray?e+i:e;this._webgpuProcessingContext.bindGroupLayoutEntryInfo[o][l]={name:e,index:c-1,nameInArrayOfTexture:u}}l=this._webgpuProcessingContext.bindGroupLayoutEntryInfo[o][l].index,n?this._webgpuProcessingContext.bindGroupLayoutEntries[o][l].visibility|=1:this._webgpuProcessingContext.bindGroupLayoutEntries[o][l].visibility|=2}_addSamplerBindingDescription(e,t,i){let{groupIndex:s,bindingIndex:r}=t.binding;if(this._webgpuProcessingContext.bindGroupLayoutEntries[s]||(this._webgpuProcessingContext.bindGroupLayoutEntries[s]=[],this._webgpuProcessingContext.bindGroupLayoutEntryInfo[s]=[]),!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[s][r]){const n=this._webgpuProcessingContext.bindGroupLayoutEntries[s].push({binding:r,visibility:0,sampler:{type:t.type}});this._webgpuProcessingContext.bindGroupLayoutEntryInfo[s][r]={name:e,index:n-1}}r=this._webgpuProcessingContext.bindGroupLayoutEntryInfo[s][r].index,i?this._webgpuProcessingContext.bindGroupLayoutEntries[s][r].visibility|=1:this._webgpuProcessingContext.bindGroupLayoutEntries[s][r].visibility|=2}_addBufferBindingDescription(e,t,i,s){let{groupIndex:r,bindingIndex:n}=t.binding;if(this._webgpuProcessingContext.bindGroupLayoutEntries[r]||(this._webgpuProcessingContext.bindGroupLayoutEntries[r]=[],this._webgpuProcessingContext.bindGroupLayoutEntryInfo[r]=[]),!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[r][n]){const o=this._webgpuProcessingContext.bindGroupLayoutEntries[r].push({binding:n,visibility:0,buffer:{type:i}});this._webgpuProcessingContext.bindGroupLayoutEntryInfo[r][n]={name:e,index:o-1}}n=this._webgpuProcessingContext.bindGroupLayoutEntryInfo[r][n].index,s?this._webgpuProcessingContext.bindGroupLayoutEntries[r][n].visibility|=1:this._webgpuProcessingContext.bindGroupLayoutEntries[r][n].visibility|=2}}wl.LeftOvertUBOName="LeftOver",wl.InternalsUBOName="Internals",wl.UniformSizes={bool:1,int:1,float:1,vec2:2,ivec2:2,uvec2:2,vec3:3,ivec3:3,uvec3:3,vec4:4,ivec4:4,uvec4:4,mat2:4,mat3:12,mat4:16,i32:1,u32:1,f32:1,mat2x2:4,mat3x3:12,mat4x4:16,mat2x2f:4,mat3x3f:12,mat4x4f:16,vec2i:2,vec3i:3,vec4i:4,vec2u:2,vec3u:3,vec4u:4,vec2f:2,vec3f:3,vec4f:4,vec2h:1,vec3h:2,vec4h:2},wl._SamplerFunctionByWebGLSamplerType={sampler2D:"sampler2D",sampler2DArray:"sampler2DArray",sampler2DShadow:"sampler2DShadow",sampler2DArrayShadow:"sampler2DArrayShadow",samplerCube:"samplerCube",sampler3D:"sampler3D"},wl._TextureTypeByWebGLSamplerType={sampler2D:"texture2D",sampler2DArray:"texture2DArray",sampler2DShadow:"texture2D",sampler2DArrayShadow:"texture2DArray",samplerCube:"textureCube",samplerCubeArray:"textureCubeArray",sampler3D:"texture3D"},wl._GpuTextureViewDimensionByWebGPUTextureType={textureCube:"cube",textureCubeArray:"cube-array",texture2D:"2d",texture2DArray:"2d-array",texture3D:"3d"},wl._SamplerTypeByWebGLSamplerType={sampler2DShadow:"samplerShadow",sampler2DArrayShadow:"samplerShadow"},wl._IsComparisonSamplerByWebGPUSamplerType={samplerShadow:!0,samplerArrayShadow:!0,sampler:!1};class P0e{get isAsync(){return!1}get isReady(){return!!this.stages}constructor(e,t){this.bindGroupLayouts={},this._name="unnamed",this.shaderProcessingContext=e,this._leftOverUniformsByName={},this.engine=t,this.vertexBufferKindToType={}}_handlesSpectorRebuildCallback(){}_fillEffectInformation(e,t,i,s,r,n,o,l){const c=this.engine;c._doNotHandleContextLost&&(e._fragmentSourceCode="",e._vertexSourceCode="");const u=this.shaderProcessingContext.availableTextures;let f;for(f=0;f<r.length;f++){const _=r[f],d=u[r[f]];d==null||d==null?(r.splice(f,1),f--):n[_]=f}for(const _ of c.getAttributes(this,o))l.push(_);this.buildUniformLayout();const p=[],m=[];for(f=0;f<o.length;f++){const _=l[f];_>=0&&(p.push(o[f]),m.push(_))}this.shaderProcessingContext.attributeNamesFromEffect=p,this.shaderProcessingContext.attributeLocationsFromEffect=m}buildUniformLayout(){var e;if(this.shaderProcessingContext.leftOverUniforms.length){(e=this.uniformBuffer)==null||e.dispose(),this.uniformBuffer=new Ti(this.engine,void 0,void 0,"leftOver-"+this._name);for(const t of this.shaderProcessingContext.leftOverUniforms){const i=t.type.replace(/^(.*?)(<.*>)?$/,"$1"),s=wl.UniformSizes[i];this.uniformBuffer.addUniform(t.name,s,t.length),this._leftOverUniformsByName[t.name]=t.type}this.uniformBuffer.create()}}setEngine(e){this.engine=e}dispose(){this.uniformBuffer&&this.uniformBuffer.dispose()}setInt(e,t){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateInt(e,t)}setInt2(e,t,i){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateInt2(e,t,i)}setInt3(e,t,i,s){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateInt3(e,t,i,s)}setInt4(e,t,i,s,r){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateInt4(e,t,i,s,r)}setIntArray(e,t){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateIntArray(e,t)}setIntArray2(e,t){this.setIntArray(e,t)}setIntArray3(e,t){this.setIntArray(e,t)}setIntArray4(e,t){this.setIntArray(e,t)}setUInt(e,t){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateUInt(e,t)}setUInt2(e,t,i){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateUInt2(e,t,i)}setUInt3(e,t,i,s){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateUInt3(e,t,i,s)}setUInt4(e,t,i,s,r){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateUInt4(e,t,i,s,r)}setUIntArray(e,t){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateUIntArray(e,t)}setUIntArray2(e,t){this.setUIntArray(e,t)}setUIntArray3(e,t){this.setUIntArray(e,t)}setUIntArray4(e,t){this.setUIntArray(e,t)}setArray(e,t){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateArray(e,t)}setArray2(e,t){this.setArray(e,t)}setArray3(e,t){this.setArray(e,t)}setArray4(e,t){this.setArray(e,t)}setMatrices(e,t){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateMatrices(e,t)}setMatrix(e,t){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateMatrix(e,t)}setMatrix3x3(e,t){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateMatrix3x3(e,t)}setMatrix2x2(e,t){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateMatrix2x2(e,t)}setFloat(e,t){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateFloat(e,t)}setVector2(e,t){this.setFloat2(e,t.x,t.y)}setFloat2(e,t,i){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateFloat2(e,t,i)}setVector3(e,t){this.setFloat3(e,t.x,t.y,t.z)}setFloat3(e,t,i,s){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateFloat3(e,t,i,s)}setVector4(e,t){this.setFloat4(e,t.x,t.y,t.z,t.w)}setQuaternion(e,t){this.setFloat4(e,t.x,t.y,t.z,t.w)}setFloat4(e,t,i,s,r){!this.uniformBuffer||!this._leftOverUniformsByName[e]||this.uniformBuffer.updateFloat4(e,t,i,s,r)}setColor3(e,t){this.setFloat3(e,t.r,t.g,t.b)}setColor4(e,t,i){this.setFloat4(e,t.r,t.g,t.b,i)}setDirectColor4(e,t){this.setFloat4(e,t.r,t.g,t.b,t.a)}_getVertexShaderCode(){var e;return(e=this.sources)==null?void 0:e.vertex}_getFragmentShaderCode(){var e;return(e=this.sources)==null?void 0:e.fragment}}const Jwe=4,$we=65536,O0e={mat2:2,mat3:3,mat4:4,mat2x2:2,mat3x3:3,mat4x4:4};class h3{static get KnownUBOs(){return h3._SimplifiedKnownBindings?h3._SimplifiedKnownUBOs:h3._KnownUBOs}constructor(e,t=!1){this.vertexBufferKindToNumberOfComponents={},this.shaderLanguage=e,this._attributeNextLocation=0,this._varyingNextLocation=0,this.freeGroupIndex=0,this.freeBindingIndex=0,this.availableVaryings={},this.availableAttributes={},this.availableBuffers={},this.availableTextures={},this.availableSamplers={},this.orderedAttributes=[],this.bindGroupLayoutEntries=[],this.bindGroupLayoutEntryInfo=[],this.bindGroupEntries=[],this.bufferNames=[],this.textureNames=[],this.samplerNames=[],this.leftOverUniforms=[],t||this._findStartingGroupBinding()}_findStartingGroupBinding(){const e=h3.KnownUBOs,t=[];for(const i in e){const s=e[i].binding;s.groupIndex!==-1&&(t[s.groupIndex]===void 0?t[s.groupIndex]=s.bindingIndex:t[s.groupIndex]=Math.max(t[s.groupIndex],s.bindingIndex))}this.freeGroupIndex=t.length-1,this.freeGroupIndex===0?(this.freeGroupIndex++,this.freeBindingIndex=0):this.freeBindingIndex=t[t.length-1]+1}getAttributeNextLocation(e,t=0){const i=this._attributeNextLocation;return this._attributeNextLocation+=(O0e[e]??1)*(t||1),i}getVaryingNextLocation(e,t=0){const i=this._varyingNextLocation;return this._varyingNextLocation+=(O0e[e]??1)*(t||1),i}getNextFreeUBOBinding(){return this._getNextFreeBinding(1)}_getNextFreeBinding(e){if(this.freeBindingIndex>$we-e&&(this.freeGroupIndex++,this.freeBindingIndex=0),this.freeGroupIndex===Jwe)throw"Too many textures or UBOs have been declared and it is not supported in WebGPU.";const t={groupIndex:this.freeGroupIndex,bindingIndex:this.freeBindingIndex};return this.freeBindingIndex+=e,t}}h3._SimplifiedKnownBindings=!0,h3._SimplifiedKnownUBOs={Scene:{binding:{groupIndex:0,bindingIndex:0}},Light0:{binding:{groupIndex:-1,bindingIndex:-1}},Light1:{binding:{groupIndex:-1,bindingIndex:-1}},Light2:{binding:{groupIndex:-1,bindingIndex:-1}},Light3:{binding:{groupIndex:-1,bindingIndex:-1}},Light4:{binding:{groupIndex:-1,bindingIndex:-1}},Light5:{binding:{groupIndex:-1,bindingIndex:-1}},Light6:{binding:{groupIndex:-1,bindingIndex:-1}},Light7:{binding:{groupIndex:-1,bindingIndex:-1}},Light8:{binding:{groupIndex:-1,bindingIndex:-1}},Light9:{binding:{groupIndex:-1,bindingIndex:-1}},Light10:{binding:{groupIndex:-1,bindingIndex:-1}},Light11:{binding:{groupIndex:-1,bindingIndex:-1}},Light12:{binding:{groupIndex:-1,bindingIndex:-1}},Light13:{binding:{groupIndex:-1,bindingIndex:-1}},Light14:{binding:{groupIndex:-1,bindingIndex:-1}},Light15:{binding:{groupIndex:-1,bindingIndex:-1}},Light16:{binding:{groupIndex:-1,bindingIndex:-1}},Light17:{binding:{groupIndex:-1,bindingIndex:-1}},Light18:{binding:{groupIndex:-1,bindingIndex:-1}},Light19:{binding:{groupIndex:-1,bindingIndex:-1}},Light20:{binding:{groupIndex:-1,bindingIndex:-1}},Light21:{binding:{groupIndex:-1,bindingIndex:-1}},Light22:{binding:{groupIndex:-1,bindingIndex:-1}},Light23:{binding:{groupIndex:-1,bindingIndex:-1}},Light24:{binding:{groupIndex:-1,bindingIndex:-1}},Light25:{binding:{groupIndex:-1,bindingIndex:-1}},Light26:{binding:{groupIndex:-1,bindingIndex:-1}},Light27:{binding:{groupIndex:-1,bindingIndex:-1}},Light28:{binding:{groupIndex:-1,bindingIndex:-1}},Light29:{binding:{groupIndex:-1,bindingIndex:-1}},Light30:{binding:{groupIndex:-1,bindingIndex:-1}},Light31:{binding:{groupIndex:-1,bindingIndex:-1}},Material:{binding:{groupIndex:-1,bindingIndex:-1}},Mesh:{binding:{groupIndex:-1,bindingIndex:-1}},Internals:{binding:{groupIndex:-1,bindingIndex:-1}}},h3._KnownUBOs={Scene:{binding:{groupIndex:0,bindingIndex:0}},Light0:{binding:{groupIndex:1,bindingIndex:0}},Light1:{binding:{groupIndex:1,bindingIndex:1}},Light2:{binding:{groupIndex:1,bindingIndex:2}},Light3:{binding:{groupIndex:1,bindingIndex:3}},Light4:{binding:{groupIndex:1,bindingIndex:4}},Light5:{binding:{groupIndex:1,bindingIndex:5}},Light6:{binding:{groupIndex:1,bindingIndex:6}},Light7:{binding:{groupIndex:1,bindingIndex:7}},Light8:{binding:{groupIndex:1,bindingIndex:8}},Light9:{binding:{groupIndex:1,bindingIndex:9}},Light10:{binding:{groupIndex:1,bindingIndex:10}},Light11:{binding:{groupIndex:1,bindingIndex:11}},Light12:{binding:{groupIndex:1,bindingIndex:12}},Light13:{binding:{groupIndex:1,bindingIndex:13}},Light14:{binding:{groupIndex:1,bindingIndex:14}},Light15:{binding:{groupIndex:1,bindingIndex:15}},Light16:{binding:{groupIndex:1,bindingIndex:16}},Light17:{binding:{groupIndex:1,bindingIndex:17}},Light18:{binding:{groupIndex:1,bindingIndex:18}},Light19:{binding:{groupIndex:1,bindingIndex:19}},Light20:{binding:{groupIndex:1,bindingIndex:20}},Light21:{binding:{groupIndex:1,bindingIndex:21}},Light22:{binding:{groupIndex:1,bindingIndex:22}},Light23:{binding:{groupIndex:1,bindingIndex:23}},Light24:{binding:{groupIndex:1,bindingIndex:24}},Light25:{binding:{groupIndex:1,bindingIndex:25}},Light26:{binding:{groupIndex:1,bindingIndex:26}},Light27:{binding:{groupIndex:1,bindingIndex:27}},Light28:{binding:{groupIndex:1,bindingIndex:28}},Light29:{binding:{groupIndex:1,bindingIndex:29}},Light30:{binding:{groupIndex:1,bindingIndex:30}},Light31:{binding:{groupIndex:1,bindingIndex:31}},Material:{binding:{groupIndex:2,bindingIndex:0}},Mesh:{binding:{groupIndex:2,bindingIndex:1}},Internals:{binding:{groupIndex:2,bindingIndex:2}}};class eBe extends wl{constructor(){super(...arguments),this._missingVaryings=[],this._textureArrayProcessing=[],this._vertexIsGLES3=!1,this._fragmentIsGLES3=!1,this.shaderLanguage=0,this.parseGLES3=!0}_getArraySize(e,t,i){let s=0;const r=e.indexOf("["),n=e.indexOf("]");if(r>0&&n>0){const o=e.substring(r+1,n);s=+o,isNaN(s)&&(s=+i[o.trim()]),e=e.substring(0,r)}return[e,t,s]}initializeShaders(e){this._webgpuProcessingContext=e,this._missingVaryings.length=0,this._textureArrayProcessing.length=0,this.attributeKeywordName=void 0,this.varyingVertexKeywordName=void 0,this.varyingFragmentKeywordName=void 0}preProcessShaderCode(e,t){const i=`// Internals UBO
uniform ${wl.InternalsUBOName} {
float yFactor_;
float textureOutputHeight_;
};
`,s=e.indexOf("// Internals UBO")!==-1;return t?(this._fragmentIsGLES3=e.indexOf("#version 3")!==-1,this._fragmentIsGLES3&&(this.varyingFragmentKeywordName="in"),s?e:i+`##INJECTCODE##
`+e):(this._vertexIsGLES3=e.indexOf("#version 3")!==-1,this._vertexIsGLES3&&(this.attributeKeywordName="in",this.varyingVertexKeywordName="out"),s?e:i+e)}varyingCheck(e,t){const i=/(flat\s)?\s*\bout\b/,s=/(flat\s)?\s*\bin\b/,r=/(flat\s)?\s*\bvarying\b/;return(t&&this._fragmentIsGLES3?s:!t&&this._vertexIsGLES3?i:r).test(e)}varyingProcessor(e,t,i){this._preProcessors=i;const s=/\s*(flat)?\s*out\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm,r=/\s*(flat)?\s*in\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm,n=/\s*(flat)?\s*varying\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm,l=(t&&this._fragmentIsGLES3?r:!t&&this._vertexIsGLES3?s:n).exec(e);if(l!==null){const c=l[1]??"",u=l[2],f=l[3];let p;t?(p=this._webgpuProcessingContext.availableVaryings[f],this._missingVaryings[p]="",p===void 0&&de.Warn(`Invalid fragment shader: The varying named "${f}" is not declared in the vertex shader! This declaration will be ignored.`)):(p=this._webgpuProcessingContext.getVaryingNextLocation(u,this._getArraySize(f,u,i)[2]),this._webgpuProcessingContext.availableVaryings[f]=p,this._missingVaryings[p]=`layout(location = ${p}) ${c} in ${u} ${f};`),e=e.replace(l[0],p===void 0?"":`layout(location = ${p}) ${c} ${t?"in":"out"} ${u} ${f};`)}return e}attributeProcessor(e,t){this._preProcessors=t;const i=/\s*in\s+(\S+)\s+(\S+)\s*;/gm,s=/\s*attribute\s+(\S+)\s+(\S+)\s*;/gm,n=(this._vertexIsGLES3?i:s).exec(e);if(n!==null){const o=n[1],l=n[2],c=this._webgpuProcessingContext.getAttributeNextLocation(o,this._getArraySize(l,o,t)[2]);this._webgpuProcessingContext.availableAttributes[l]=c,this._webgpuProcessingContext.orderedAttributes[c]=l;const u=this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents[l];if(u!==void 0){const f=u<0?u===-1?"int":"ivec"+-u:u===1?"uint":"uvec"+u,p=`_int_${l}_`;e=e.replace(n[0],`layout(location = ${c}) in ${f} ${p}; ${o} ${l} = ${o}(${p});`)}else e=e.replace(n[0],`layout(location = ${c}) in ${o} ${l};`)}return e}uniformProcessor(e,t,i){this._preProcessors=i;const r=/\s*uniform\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm.exec(e);if(r!==null){let n=r[1],o=r[2];if(n.indexOf("sampler")===0||n.indexOf("sampler")===1){let l=0;[o,n,l]=this._getArraySize(o,n,i);let c=this._webgpuProcessingContext.availableTextures[o];if(!c){c={autoBindSampler:!0,isTextureArray:l>0,isStorageTexture:!1,textures:[],sampleType:"float"};for(let T=0;T<(l||1);++T)c.textures.push(this._webgpuProcessingContext.getNextFreeUBOBinding())}const u=wl._SamplerTypeByWebGLSamplerType[n]??"sampler",f=!!wl._IsComparisonSamplerByWebGPUSamplerType[u],p=f?"comparison":"filtering",m=o+"Sampler";let _=this._webgpuProcessingContext.availableSamplers[m];_||(_={binding:this._webgpuProcessingContext.getNextFreeUBOBinding(),type:p});const d=n.charAt(0)==="u"?"u":n.charAt(0)==="i"?"i":"";d&&(n=n.substring(1));const h=f?"depth":d==="u"?"uint":d==="i"?"sint":"float";c.sampleType=h;const x=l>0,A=_.binding.groupIndex,S=_.binding.bindingIndex,E=wl._SamplerFunctionByWebGLSamplerType[n],b=wl._TextureTypeByWebGLSamplerType[n],M=wl._GpuTextureViewDimensionByWebGPUTextureType[b];if(!x)l=1,e=`layout(set = ${A}, binding = ${S}) uniform ${u} ${m};
                        layout(set = ${c.textures[0].groupIndex}, binding = ${c.textures[0].bindingIndex}) uniform ${d}${b} ${o}Texture;
                        #define ${o} ${d}${E}(${o}Texture, ${m})`;else{const T=[];T.push(`layout(set = ${A}, binding = ${S}) uniform ${d}${u} ${m};`),e=`
`;for(let O=0;O<l;++O){const R=c.textures[O].groupIndex,I=c.textures[O].bindingIndex;T.push(`layout(set = ${R}, binding = ${I}) uniform ${b} ${o}Texture${O};`),e+=`${O>0?`
`:""}#define ${o}${O} ${d}${E}(${o}Texture${O}, ${m})`}e=T.join(`
`)+e,this._textureArrayProcessing.push(o)}this._webgpuProcessingContext.availableTextures[o]=c,this._webgpuProcessingContext.availableSamplers[m]=_,this._addSamplerBindingDescription(m,_,!t);for(let T=0;T<l;++T)this._addTextureBindingDescription(o,c,T,M,null,!t)}else this._addUniformToLeftOverUBO(o,n,i),e=""}return e}uniformBufferProcessor(e,t){const s=/uniform\s+(\w+)/gm.exec(e);if(s!==null){const r=s[1];let n=this._webgpuProcessingContext.availableBuffers[r];if(!n){const o=h3.KnownUBOs[r];let l;o&&o.binding.groupIndex!==-1?l=o.binding:l=this._webgpuProcessingContext.getNextFreeUBOBinding(),n={binding:l},this._webgpuProcessingContext.availableBuffers[r]=n}this._addBufferBindingDescription(r,n,"uniform",!t),e=e.replace("uniform",`layout(set = ${n.binding.groupIndex}, binding = ${n.binding.bindingIndex}) uniform`)}return e}postProcessor(e,t,i,s,r){const n=e.search(/#extension.+GL_EXT_draw_buffers.+require/)!==-1,o=/#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g;if(e=e.replace(o,""),e=e.replace(/texture2D\s*\(/g,"texture("),i){const l=e.indexOf("gl_FragCoord")>=0,c=`
                glFragCoord_ = gl_FragCoord;
                if (yFactor_ == 1.) {
                    glFragCoord_.y = textureOutputHeight_ - glFragCoord_.y;
                }
            `,u=l?`vec4 glFragCoord_;
`:"",f=e.search(/layout *\(location *= *0\) *out/g)!==-1;if(e=e.replace(/texture2DLodEXT\s*\(/g,"textureLod("),e=e.replace(/textureCubeLodEXT\s*\(/g,"textureLod("),e=e.replace(/textureCube\s*\(/g,"texture("),e=e.replace(/gl_FragDepthEXT/g,"gl_FragDepth"),e=e.replace(/gl_FragColor/g,"glFragColor"),e=e.replace(/gl_FragData/g,"glFragData"),e=e.replace(/gl_FragCoord/g,"glFragCoord_"),!this._fragmentIsGLES3)e=e.replace(/void\s+?main\s*\(/g,(n||f?"":`layout(location = 0) out vec4 glFragColor;
`)+"void main(");else{const p=/^\s*out\s+\S+\s+\S+\s*;/gm.exec(e);p!==null&&(e=e.substring(0,p.index)+"layout(location = 0) "+e.substring(p.index))}e=e.replace(/dFdy/g,"(-yFactor_)*dFdy"),e=e.replace("##INJECTCODE##",u),l&&(e=uH(e,"void main",c))}else if(e=e.replace(/gl_InstanceID/g,"gl_InstanceIndex"),e=e.replace(/gl_VertexID/g,"gl_VertexIndex"),t.indexOf("#define MULTIVIEW")!==-1)return`#extension GL_OVR_multiview2 : require
layout (num_views = 2) in;
`+e;if(!i){const l=e.lastIndexOf("}");e=e.substring(0,l),e+=`gl_Position.y *= yFactor_;
`,e+="}"}return e}_applyTextureArrayProcessing(e,t){const i=new RegExp(t+"\\s*\\[(.+)?\\]","gm");let s=i.exec(e);for(;s!==null;){const r=s[1];let n=+r;this._preProcessors&&isNaN(n)&&(n=+this._preProcessors[r.trim()]),e=e.replace(s[0],t+n),s=i.exec(e)}return e}_generateLeftOverUBOCode(e,t){let i=`layout(set = ${t.binding.groupIndex}, binding = ${t.binding.bindingIndex}) uniform ${e} {
    `;for(const s of this._webgpuProcessingContext.leftOverUniforms)s.length>0?i+=`    ${s.type} ${s.name}[${s.length}];
`:i+=`    ${s.type} ${s.name};
`;return i+=`};

`,i}finalizeShaders(e,t){for(let s=0;s<this._textureArrayProcessing.length;++s){const r=this._textureArrayProcessing[s];e=this._applyTextureArrayProcessing(e,r),t=this._applyTextureArrayProcessing(t,r)}for(let s=0;s<this._missingVaryings.length;++s){const r=this._missingVaryings[s];r&&r.length>0&&(t=r+`
`+t)}const i=this._buildLeftOverUBO();return e=i+e,t=i+t,this._collectBindingNames(),this._preCreateBindGroupEntries(),this._preProcessors=null,this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents={},{vertexCode:e,fragmentCode:t}}}const mJ="helperFunctions",R0e=`const PI: f32=3.1415926535897932384626433832795;const TWO_PI: f32=6.283185307179586;const HALF_PI: f32=1.5707963267948966;const RECIPROCAL_PI: f32=0.3183098861837907;const RECIPROCAL_PI2: f32=0.15915494309189535;const RECIPROCAL_PI4: f32=0.07957747154594767;const HALF_MIN: f32=5.96046448e-08; 
const LinearEncodePowerApprox: f32=2.2;const GammaEncodePowerApprox: f32=1.0/LinearEncodePowerApprox;const LuminanceEncodeApprox: vec3f=vec3f(0.2126,0.7152,0.0722);const Epsilon:f32=0.0000001;fn square(x: f32)->f32 {return x*x;}
fn saturate(x: f32)->f32 {return clamp(x,0.0,1.0);}
fn saturateVec3(x: vec3f)->vec3f {return clamp(x,vec3f(),vec3f(1.0));}
fn saturateEps(x: f32)->f32 {return clamp(x,Epsilon,1.0);}
fn maxEps(x: f32)->f32 {return max(x,Epsilon);}
fn maxEpsVec3(x: vec3f)->vec3f {return max(x,vec3f(Epsilon));}
fn absEps(x: f32)->f32 {return abs(x)+Epsilon;}
fn transposeMat3(inMatrix: mat3x3f)->mat3x3f {let i0: vec3f=inMatrix[0];let i1: vec3f=inMatrix[1];let i2: vec3f=inMatrix[2];let outMatrix:mat3x3f=mat3x3f(
vec3(i0.x,i1.x,i2.x),
vec3(i0.y,i1.y,i2.y),
vec3(i0.z,i1.z,i2.z)
);return outMatrix;}
fn inverseMat3(inMatrix: mat3x3f)->mat3x3f {let a00: f32=inMatrix[0][0];let a01: f32=inMatrix[0][1];let a02: f32=inMatrix[0][2];let a10: f32=inMatrix[1][0];let a11: f32=inMatrix[1][1];let a12: f32=inMatrix[1][2];let a20: f32=inMatrix[2][0];let a21: f32=inMatrix[2][1];let a22: f32=inMatrix[2][2];let b01: f32=a22*a11-a12*a21;let b11: f32=-a22*a10+a12*a20;let b21: f32=a21*a10-a11*a20;let det: f32=a00*b01+a01*b11+a02*b21;return mat3x3f(b01/det,(-a22*a01+a02*a21)/det,(a12*a01-a02*a11)/det,
b11/det,(a22*a00-a02*a20)/det,(-a12*a00+a02*a10)/det,
b21/det,(-a21*a00+a01*a20)/det,(a11*a00-a01*a10)/det);}
#if USE_EXACT_SRGB_CONVERSIONS
fn toLinearSpaceExact(color: vec3f)->vec3f
{let nearZeroSection: vec3f=0.0773993808*color;let remainingSection: vec3f=pow(0.947867299*(color+vec3f(0.055)),vec3f(2.4));return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3f(0.04045)));}
fn toGammaSpaceExact(color: vec3f)->vec3f
{let nearZeroSection: vec3f=12.92*color;let remainingSection: vec3f=1.055*pow(color,vec3f(0.41666))-vec3f(0.055);return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3f(0.0031308)));}
#endif
fn toLinearSpace(color: f32)->f32
{
#if USE_EXACT_SRGB_CONVERSIONS
var nearZeroSection=0.0773993808*color;var remainingSection=pow(0.947867299*(color+0.055),2.4);return select(remainingSection,nearZeroSection,color<=0.04045);
#else
return pow(color,LinearEncodePowerApprox);
#endif
}
fn toLinearSpaceVec3(color: vec3f)->vec3f
{
#if USE_EXACT_SRGB_CONVERSIONS
return toLinearSpaceExact(color);
#else
return pow(color,vec3f(LinearEncodePowerApprox));
#endif
}
fn toLinearSpaceVec4(color: vec4<f32>)->vec4<f32>
{
#if USE_EXACT_SRGB_CONVERSIONS
return vec4f(toLinearSpaceExact(color.rgb),color.a);
#else
return vec4f(pow(color.rgb,vec3f(LinearEncodePowerApprox)),color.a);
#endif
}
fn toGammaSpace(color: vec4<f32>)->vec4<f32>
{
#if USE_EXACT_SRGB_CONVERSIONS
return vec4<f32>(toGammaSpaceExact(color.rgb),color.a);
#else
return vec4<f32>(pow(color.rgb,vec3f(GammaEncodePowerApprox)),color.a);
#endif
}
fn toGammaSpaceVec3(color: vec3f)->vec3f
{
#if USE_EXACT_SRGB_CONVERSIONS
return toGammaSpaceExact(color);
#else
return pow(color,vec3f(GammaEncodePowerApprox));
#endif
}
fn squareVec3(value: vec3f)->vec3f
{return value*value;}
fn pow5(value: f32)->f32 {let sq: f32=value*value;return sq*sq*value;}
fn getLuminance(color: vec3f)->f32
{return saturate(dot(color,LuminanceEncodeApprox));}
fn getRand(seed: vec2<f32>)->f32 {return fract(sin(dot(seed.xy ,vec2<f32>(12.9898,78.233)))*43758.5453);}
fn dither(seed: vec2<f32>,varianceAmount: f32)->f32 {let rand: f32=getRand(seed);let normVariance: f32=varianceAmount/255.0;let dither: f32=mix(-normVariance,normVariance,rand);return dither;}
const rgbdMaxRange: f32=255.0;fn toRGBD(color: vec3f)->vec4<f32> {let maxRGB: f32=max(max(color.r,max(color.g,color.b)),Epsilon);var D: f32 =max(rgbdMaxRange/maxRGB,1.);D =clamp(floor(D)/255.0,0.,1.);var rgb: vec3f =color.rgb*D;rgb=toGammaSpaceVec3(rgb);return vec4<f32>(saturateVec3(rgb),D);}
fn fromRGBD(rgbd: vec4<f32>)->vec3f {let rgb=toLinearSpaceVec3(rgbd.rgb);return rgb/rgbd.a;}
fn parallaxCorrectNormal(vertexPos: vec3f,origVec: vec3f,cubeSize: vec3f,cubePos: vec3f)->vec3f {let invOrigVec: vec3f=vec3f(1.)/origVec;let halfSize: vec3f=cubeSize*0.5;let intersecAtMaxPlane: vec3f=(cubePos+halfSize-vertexPos)*invOrigVec;let intersecAtMinPlane: vec3f=(cubePos-halfSize-vertexPos)*invOrigVec;let largestIntersec: vec3f=max(intersecAtMaxPlane,intersecAtMinPlane);let distance: f32=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);let intersectPositionWS: vec3f=vertexPos+origVec*distance;return intersectPositionWS-cubePos;}
fn equirectangularToCubemapDirection(uv : vec2f)->vec3f {var longitude : f32=uv.x*TWO_PI-PI;var latitude : f32=HALF_PI-uv.y*PI;var direction : vec3f;direction.x=cos(latitude)*sin(longitude);direction.y=sin(latitude);direction.z=cos(latitude)*cos(longitude);return direction;}
fn sqrtClamped(value: f32)->f32 {return sqrt(max(value,0.));}
fn avg(value: vec3f)->f32 {return dot(value,vec3f(0.333333333));}
`;H.IncludesShadersStoreWGSL[mJ]||(H.IncludesShadersStoreWGSL[mJ]=R0e);const D0e={name:mJ,shader:R0e},N0e=Object.freeze(Object.defineProperty({__proto__:null,helperFunctionsWGSL:D0e},Symbol.toStringTag,{value:"Module"})),w0e="fresnelFunction",tBe=`#ifdef FRESNEL
fn computeFresnelTerm(viewDirection: vec3f,worldNormal: vec3f,bias: f32,power: f32)->f32
{let fresnelTerm: f32=pow(bias+abs(dot(viewDirection,worldNormal)),power);return clamp(fresnelTerm,0.,1.);}
#endif
`;H.IncludesShadersStoreWGSL[w0e]||(H.IncludesShadersStoreWGSL[w0e]=tBe);const B0e="meshUboDeclaration",iBe=`struct Mesh {world : mat4x4<f32>,
visibility : f32,};var<uniform> mesh : Mesh;
#define WORLD_UBO
`;H.IncludesShadersStoreWGSL[B0e]||(H.IncludesShadersStoreWGSL[B0e]=iBe);const z0e="sceneUboDeclaration",sBe=`struct Scene {viewProjection : mat4x4<f32>,
#ifdef MULTIVIEW
viewProjectionR : mat4x4<f32>,
#endif 
view : mat4x4<f32>,
projection : mat4x4<f32>,
vEyePosition : vec4<f32>,};
#define SCENE_UBO
var<uniform> scene : Scene;
`;H.IncludesShadersStoreWGSL[z0e]||(H.IncludesShadersStoreWGSL[z0e]=sBe);const F0e="decalFragment",rBe=`#ifdef DECAL
var decalTempColor=decalColor.rgb;var decalTempAlpha=decalColor.a;
#ifdef GAMMADECAL
decalTempColor=toLinearSpaceVec3(decalColor.rgb);
#endif
#ifdef DECAL_SMOOTHALPHA
decalTempAlpha=decalColor.a*decalColor.a;
#endif
surfaceAlbedo=mix(surfaceAlbedo.rgb,decalTempColor,decalTempAlpha);
#endif
`;H.IncludesShadersStoreWGSL[F0e]||(H.IncludesShadersStoreWGSL[F0e]=rBe);const k0e="fragmentOutputs.fragDepth",nBe="uniforms",aBe="internals",oBe={texture_1d:"1d",texture_2d:"2d",texture_2d_array:"2d-array",texture_3d:"3d",texture_cube:"cube",texture_cube_array:"cube-array",texture_multisampled_2d:"2d",texture_depth_2d:"2d",texture_depth_2d_array:"2d-array",texture_depth_cube:"cube",texture_depth_cube_array:"cube-array",texture_depth_multisampled_2d:"2d",texture_storage_1d:"1d",texture_storage_2d:"2d",texture_storage_2d_array:"2d-array",texture_storage_3d:"3d",texture_external:null};class lBe extends wl{constructor(){super(...arguments),this.shaderLanguage=1,this.uniformRegexp=/uniform\s+(\w+)\s*:\s*(.+)\s*;/,this.textureRegexp=/var\s+(\w+)\s*:\s*((array<\s*)?(texture_\w+)\s*(<\s*(.+)\s*>)?\s*(,\s*\w+\s*>\s*)?);/,this.noPrecision=!0,this.pureMode=!1}preProcessor(e,t,i,s,r){for(const n in i){if(n==="__VERSION__")continue;const o=i[n];(!isNaN(parseInt(o))||!isNaN(parseFloat(o)))&&(e=`const ${n} = ${o};
`+e)}return e}_getArraySize(e,t,i){let s=0;const r=t.lastIndexOf(">");if(t.indexOf("array")>=0&&r>0){let n=r;for(;n>0&&t.charAt(n)!==" "&&t.charAt(n)!==",";)n--;const o=t.substring(n+1,r);for(s=+o,isNaN(s)&&(s=+i[o.trim()]);n>0&&(t.charAt(n)===" "||t.charAt(n)===",");)n--;t=t.substring(t.indexOf("<")+1,n+1)}return[e,t,s]}initializeShaders(e){this._webgpuProcessingContext=e,this._attributesInputWGSL=[],this._attributesWGSL=[],this._attributesConversionCodeWGSL=[],this._hasNonFloatAttribute=!1,this._varyingsWGSL=[],this._varyingNamesWGSL=[],this._stridedUniformArrays=[]}preProcessShaderCode(e){const t=this.pureMode?"":`struct ${wl.InternalsUBOName} {
  yFactor_: f32,
  textureOutputHeight_: f32,
};
var<uniform> ${aBe} : ${wl.InternalsUBOName};
`;return e.indexOf(t)!==-1?e:t+MQ(e)}varyingCheck(e){return/(flat|linear|perspective)?\s*(center|centroid|sample)?\s*\bvarying\b/.test(e)}varyingProcessor(e,t,i){const r=/\s*(flat|linear|perspective)?\s*(center|centroid|sample)?\s*varying\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s*:\s*(.+)\s*;/gm.exec(e);if(r!==null){const n=r[1]??"perspective",o=r[2]??"center",l=r[4],c=r[3],u=n==="flat"?`@interpolate(${n})`:`@interpolate(${n}, ${o})`;let f;t?(f=this._webgpuProcessingContext.availableVaryings[c],f===void 0&&de.Warn(`Invalid fragment shader: The varying named "${c}" is not declared in the vertex shader! This declaration will be ignored.`)):(f=this._webgpuProcessingContext.getVaryingNextLocation(l,this._getArraySize(c,l,i)[2]),this._webgpuProcessingContext.availableVaryings[c]=f,this._varyingsWGSL.push(`  @location(${f}) ${u} ${c} : ${l},`),this._varyingNamesWGSL.push(c)),e=""}return e}attributeProcessor(e,t){const s=/\s*attribute\s+(\S+)\s*:\s*(.+)\s*;/gm.exec(e);if(s!==null){const r=s[2],n=s[1],o=this._webgpuProcessingContext.getAttributeNextLocation(r,this._getArraySize(n,r,t)[2]);this._webgpuProcessingContext.availableAttributes[n]=o,this._webgpuProcessingContext.orderedAttributes[o]=n;const l=this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents[n];if(l!==void 0){const c=l<0?l===-1?"i32":"vec"+-l+"<i32>":l===1?"u32":"vec"+l+"<u32>",u=`_int_${n}_`;this._attributesInputWGSL.push(`@location(${o}) ${u} : ${c},`),this._attributesWGSL.push(`${n} : ${r},`),this._attributesConversionCodeWGSL.push(`vertexInputs.${n} = ${r}(vertexInputs_.${u});`),this._hasNonFloatAttribute=!0}else this._attributesInputWGSL.push(`@location(${o}) ${n} : ${r},`),this._attributesWGSL.push(`${n} : ${r},`),this._attributesConversionCodeWGSL.push(`vertexInputs.${n} = vertexInputs_.${n};`);e=""}return e}uniformProcessor(e,t,i){const s=this.uniformRegexp.exec(e);if(s!==null){const r=s[2],n=s[1];this._addUniformToLeftOverUBO(n,r,i),e=""}return e}textureProcessor(e,t,i){const s=this.textureRegexp.exec(e);if(s!==null){const r=s[1],n=s[2],o=!!s[3],l=s[4],c=l.indexOf("storage")>0,u=s[6],f=c?u.substring(0,u.indexOf(",")).trim():null;let p=o?this._getArraySize(r,n,i)[2]:0,m=this._webgpuProcessingContext.availableTextures[r];if(m)p=m.textures.length;else{m={isTextureArray:p>0,isStorageTexture:c,textures:[],sampleType:"float"},p=p||1;for(let x=0;x<p;++x)m.textures.push(this._webgpuProcessingContext.getNextFreeUBOBinding())}this._webgpuProcessingContext.availableTextures[r]=m;const _=l.indexOf("depth")>0,d=oBe[l],h=_?"depth":u==="u32"?"uint":u==="i32"?"sint":"float";if(m.sampleType=h,d===void 0)throw`Can't get the texture dimension corresponding to the texture function "${l}"!`;for(let x=0;x<p;++x){const{groupIndex:A,bindingIndex:S}=m.textures[x];x===0&&(e=`@group(${A}) @binding(${S}) ${e}`),this._addTextureBindingDescription(r,m,x,d,f,!t)}}return e}postProcessor(e){const t=/#define (.+?) (.+?)$/gm;let i;for(;(i=t.exec(e))!==null;)e=e.replace(new RegExp(i[1],"g"),i[2]);return e}finalizeShaders(e,t){const i=t.indexOf("fragmentInputs.position")>=0&&!this.pureMode?`
            if (internals.yFactor_ == 1.) {
                fragmentInputs.position.y = internals.textureOutputHeight_ - fragmentInputs.position.y;
            }
        `:"";e=this._processSamplers(e,!0),t=this._processSamplers(t,!1),e=this._processCustomBuffers(e,!0),t=this._processCustomBuffers(t,!1);const s=this._buildLeftOverUBO();e=s+e,t=s+t,e=e.replace(/#define (\w+)\s+(\d+\.?\d*)/g,"const $1 = $2;"),e=e.replace(/#define /g,"//#define "),e=this._processStridedUniformArrays(e);let r=`struct VertexInputs {
  @builtin(vertex_index) vertexIndex : u32,
  @builtin(instance_index) instanceIndex : u32,
`;this._attributesInputWGSL.length>0&&(r+=this._attributesInputWGSL.join(`
`)),r+=`
};
var<private> vertexInputs`+(this._hasNonFloatAttribute?"_":"")+` : VertexInputs;
`,this._hasNonFloatAttribute&&(r+=`struct VertexInputs_ {
  vertexIndex : u32, instanceIndex : u32,
`,r+=this._attributesWGSL.join(`
`),r+=`
};
var<private> vertexInputs : VertexInputs_;
`);let n=`struct FragmentInputs {
  @builtin(position) position : vec4<f32>,
`;this._varyingsWGSL.length>0&&(n+=this._varyingsWGSL.join(`
`)),n+=`
};
var<private> vertexOutputs : FragmentInputs;
`,e=r+n+e;let o=`
  vertexInputs${this._hasNonFloatAttribute?"_":""} = input;
`;this._hasNonFloatAttribute&&(o+=`vertexInputs.vertexIndex = vertexInputs_.vertexIndex;
vertexInputs.instanceIndex = vertexInputs_.instanceIndex;
`,o+=this._attributesConversionCodeWGSL.join(`
`),o+=`
`);const l=this.pureMode?"  return vertexOutputs;":`  vertexOutputs.position.y = vertexOutputs.position.y * internals.yFactor_;
  return vertexOutputs;`;let c=e.indexOf("#define DISABLE_UNIFORMITY_ANALYSIS")!==-1;e=(c?`diagnostic(off, derivative_uniformity);
`:"")+`diagnostic(off, chromium.unreachable_code);
`+uH(e,"fn main",o,l),t=t.replace(/#define (\w+)\s+(\d+\.?\d*)/g,"const $1 = $2;"),t=t.replace(/#define /g,"//#define "),t=this._processStridedUniformArrays(t),this.pureMode||(t=t.replace(/dpdy/g,"(-internals.yFactor_)*dpdy"));let u=`struct FragmentInputs {
  @builtin(position) position : vec4<f32>,
  @builtin(front_facing) frontFacing : bool,
`;this._varyingsWGSL.length>0&&(u+=this._varyingsWGSL.join(`
`)),u+=`
};
var<private> fragmentInputs : FragmentInputs;
`;let f=`struct FragmentOutputs {
`;const p="fragmentOutputs\\.fragData";let m=t.match(new RegExp(p+"0","g")),_=0;if(m){f+=` @location(${_}) fragData0 : vec4<f32>,
`,_++;for(let E=1;E<8;E++)m=t.match(new RegExp(p+E,"g")),m&&(f+=` @location(${_}) fragData${_} : vec4<f32>,
`,_++);t.indexOf("MRT_AND_COLOR")!==-1&&(f+=`  @location(${_}) color : vec4<f32>,
`,_++)}const d=/oitDepthSampler/;m=t.match(d),m&&(f+=` @location(${_++}) depth : vec2<f32>,
`,f+=` @location(${_++}) frontColor : vec4<f32>,
`,f+=` @location(${_++}) backColor : vec4<f32>,
`),_===0&&(f+=`  @location(0) color : vec4<f32>,
`,_++);let h=!1,x=0;for(;!h&&(x=t.indexOf(k0e,x),!(x<0));){const E=x;for(h=!0;x>1&&t.charAt(x)!==`
`;){if(t.charAt(x)==="/"&&t.charAt(x-1)==="/"){h=!1;break}x--}x=E+k0e.length}h&&(f+=`  @builtin(frag_depth) fragDepth: f32,
`),f+=`};
var<private> fragmentOutputs : FragmentOutputs;
`,t=u+f+t;const A=`  fragmentInputs = input;
  `+i,S="  return fragmentOutputs;";return c=t.indexOf("#define DISABLE_UNIFORMITY_ANALYSIS")!==-1,t=(c?`diagnostic(off, derivative_uniformity);
`:"")+`diagnostic(off, chromium.unreachable_code);
`+uH(t,"fn main",A,S),this._collectBindingNames(),this._preCreateBindGroupEntries(),this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents={},{vertexCode:e,fragmentCode:t}}_generateLeftOverUBOCode(e,t){let i="",s=`struct ${e} {
`;for(const r of this._webgpuProcessingContext.leftOverUniforms){const n=r.type.replace(/^(.*?)(<.*>)?$/,"$1"),o=wl.UniformSizes[n];if(r.length>0)if(o<=2){const l=`${e}_${this._stridedUniformArrays.length}_strided_arr`;i+=`struct ${l} {
                        @size(16)
                        el: ${n},
                    }`,this._stridedUniformArrays.push(r.name),s+=` @align(16) ${r.name} : array<${l}, ${r.length}>,
`}else s+=` ${r.name} : array<${r.type}, ${r.length}>,
`;else s+=`  ${r.name} : ${r.type},
`}return s+=`};
`,s=`${i}
${s}`,s+=`@group(${t.binding.groupIndex}) @binding(${t.binding.bindingIndex}) var<uniform> ${nBe} : ${e};
`,s}_processSamplers(e,t){const i=/var\s+(\w+Sampler)\s*:\s*(sampler|sampler_comparison)\s*;/gm;for(;;){const s=i.exec(e);if(s===null)break;const r=s[1],n=s[2],o=r.length-7,l=r.lastIndexOf("Sampler")===o?r.substring(0,o):null,c=n==="sampler_comparison"?"comparison":"filtering";if(l){const _=this._webgpuProcessingContext.availableTextures[l];_&&(_.autoBindSampler=!0)}let u=this._webgpuProcessingContext.availableSamplers[r];u||(u={binding:this._webgpuProcessingContext.getNextFreeUBOBinding(),type:c},this._webgpuProcessingContext.availableSamplers[r]=u),this._addSamplerBindingDescription(r,u,t);const f=e.substring(0,s.index),p=`@group(${u.binding.groupIndex}) @binding(${u.binding.bindingIndex}) `,m=e.substring(s.index);e=f+p+m,i.lastIndex+=p.length}return e}_processCustomBuffers(e,t){var s;const i=/var<\s*(uniform|storage)\s*(,\s*(read|read_write)\s*)?>\s+(\S+)\s*:\s*(\S+)\s*;/gm;for(;;){const r=i.exec(e);if(r===null)break;const n=r[1],o=r[3];let l=r[4];const c=r[5];let u=this._webgpuProcessingContext.availableBuffers[l];if(!u){const h=n==="uniform"?h3.KnownUBOs[c]:null;let x;h?(l=c,x=h.binding,x.groupIndex===-1&&(x=(s=this._webgpuProcessingContext.availableBuffers[l])==null?void 0:s.binding,x||(x=this._webgpuProcessingContext.getNextFreeUBOBinding()))):x=this._webgpuProcessingContext.getNextFreeUBOBinding(),u={binding:x},this._webgpuProcessingContext.availableBuffers[l]=u}this._addBufferBindingDescription(l,this._webgpuProcessingContext.availableBuffers[l],o==="read_write"?"storage":n==="storage"?"read-only-storage":"uniform",t);const f=u.binding.groupIndex,p=u.binding.bindingIndex,m=e.substring(0,r.index),_=`@group(${f}) @binding(${p}) `,d=e.substring(r.index);e=m+_+d,i.lastIndex+=_.length}return e}_processStridedUniformArrays(e){for(const t of this._stridedUniformArrays)e=e.replace(new RegExp(`${t}\\s*\\[(.*?)\\]`,"g"),`${t}[$1].el`);return e}}class hH{get underlyingResource(){return this._webgpuTexture}getMSAATexture(e){var t;return((t=this._webgpuMSAATexture)==null?void 0:t[e])??null}setMSAATexture(e,t){this._webgpuMSAATexture||(this._webgpuMSAATexture=[]),this._webgpuMSAATexture[t]=e}releaseMSAATexture(e){if(this._webgpuMSAATexture)if(e!==void 0)this._engine._textureHelper.releaseTexture(this._webgpuMSAATexture[e]),delete this._webgpuMSAATexture[e];else{for(const t of this._webgpuMSAATexture)this._engine._textureHelper.releaseTexture(t);this._webgpuMSAATexture=null}}constructor(e,t=null){this._engine=e,this._originalFormatIsRGB=!1,this.format="rgba8unorm",this.textureUsages=0,this.textureAdditionalUsages=0,this._webgpuTexture=t,this._webgpuMSAATexture=null,this.view=null,this.viewForWriting=null}set(e){this._webgpuTexture=e}setUsage(e,t,i,s,r,n,o,l){let c="2d",u=1;s?(c=i?"cube-array":"cube",u=6*(l||1)):r?(c="3d",u=1):i&&(c="2d-array",u=l);const f=rn.GetDepthFormatOnly(this.format),p=rn.HasDepthAndStencilAspects(this.format)?"depth-only":"all";this.createView({label:`TextureView${r?"3D":s?"Cube":"2D"}${i?"_Array"+u:""}_${n}x${o}_${t?"wmips":"womips"}_${this.format}_${c}`,format:f,dimension:c,mipLevelCount:t?OT(Math.max(n,o))+1:1,baseArrayLayer:0,baseMipLevel:0,arrayLayerCount:u,aspect:p})}createView(e,t=!1){if(this.view=this._webgpuTexture.createView(e),t&&e){const i=e.mipLevelCount;e.mipLevelCount=1,this.viewForWriting=this._webgpuTexture.createView(e),e.mipLevelCount=i}}reset(){this._webgpuTexture=null,this._webgpuMSAATexture=null,this.view=null,this.viewForWriting=null}release(){var e,t;(e=this._webgpuTexture)==null||e.destroy(),this.releaseMSAATexture(),(t=this._copyInvertYTempTexture)==null||t.destroy(),this.reset()}}const cBe=`
    const pos = array<vec2<f32>, 4>( vec2f(-1.0f, 1.0f),  vec2f(1.0f, 1.0f),  vec2f(-1.0f, -1.0f),  vec2f(1.0f, -1.0f));
    const tex = array<vec2<f32>, 4>( vec2f(0.0f, 0.0f),  vec2f(1.0f, 0.0f),  vec2f(0.0f, 1.0f),  vec2f(1.0f, 1.0f));

    varying vTex: vec2f;

    @vertex
    fn main(input : VertexInputs) -> FragmentInputs {
        vertexOutputs.vTex = tex[input.vertexIndex];
        vertexOutputs.position = vec4f(pos[input.vertexIndex], 0.0, 1.0);
    }
    `,uBe=`
    var imgSampler: sampler;
    var img: texture_2d<f32>;

    varying vTex: vec2f;

    @fragment
    fn main(input: FragmentInputs) -> FragmentOutputs {
        fragmentOutputs.color = textureSample(img, imgSampler, input.vTex);
    }
    `,U0e=`
    const pos = array<vec2<f32>, 4>( vec2f(-1.0f, 1.0f),  vec2f(1.0f, 1.0f),  vec2f(-1.0f, -1.0f),  vec2f(1.0f, -1.0f));
    const tex = array<vec2<f32>, 4>( vec2f(0.0f, 0.0f),  vec2f(1.0f, 0.0f),  vec2f(0.0f, 1.0f),  vec2f(1.0f, 1.0f));

    var img: texture_2d<f32>;

    #ifdef INVERTY
        varying vTextureSize: vec2f;
    #endif

    @vertex
    fn main(input : VertexInputs) -> FragmentInputs {
        #ifdef INVERTY
            vertexOutputs.vTextureSize = vec2f(textureDimensions(img, 0));
        #endif
        vertexOutputs.position =  vec4f(pos[input.vertexIndex], 0.0, 1.0);
    }
    `,hBe=`
    var img: texture_2d<f32>;

    #ifdef INVERTY
        varying vTextureSize: vec2f;
    #endif

    @fragment
    fn main(input: FragmentInputs) -> FragmentOutputs {
    #ifdef INVERTY
        var color: vec4f = textureLoad(img, vec2i(i32(input.position.x), i32(input.vTextureSize.y - input.position.y)), 0);
    #else
        var color: vec4f = textureLoad(img, vec2i(input.position.xy), 0);
    #endif
    #ifdef PREMULTIPLYALPHA
        color = vec4f(color.rgb * color.a, color.a);
    #endif
        fragmentOutputs.color = color;
    }
    `,dBe=U0e,fBe=`
    var img: texture_2d<f32>;
    uniform ofstX: f32;
    uniform ofstY: f32;
    uniform width: f32;
    uniform height: f32;

    #ifdef INVERTY
        varying vTextureSize: vec2f;
    #endif

    @fragment
    fn main(input: FragmentInputs) -> FragmentOutputs {
        if (input.position.x < uniforms.ofstX || input.position.x >= uniforms.ofstX + uniforms.width) {
            discard;
        }
        if (input.position.y < uniforms.ofstY || input.position.y >= uniforms.ofstY + uniforms.height) {
            discard;
        }
    #ifdef INVERTY
        var color: vec4f = textureLoad(img, vec2i(i32(input.position.x), i32(uniforms.ofstY + uniforms.height - (input.position.y - uniforms.ofstY))), 0);
    #else
        var color: vec4f = textureLoad(img, vec2i(input.position.xy), 0);
    #endif
    #ifdef PREMULTIPLYALPHA
        color = vec4f(color.rgb * color.a, color.a);
    #endif
        fragmentOutputs.color = color;
    }
    `,pBe=`
    const pos = array<vec2<f32>, 4>( vec2f(-1.0f, 1.0f),  vec2f(1.0f, 1.0f),  vec2f(-1.0f, -1.0f),  vec2f(1.0f, -1.0f));

    @vertex
    fn main(input : VertexInputs) -> FragmentInputs {
        vertexOutputs.position =  vec4f(pos[input.vertexIndex], 0.0, 1.0);
    }
    `,mBe=`
    uniform color: vec4f;


    @fragment
    fn main(input: FragmentInputs) -> FragmentOutputs {
        fragmentOutputs.color = uniforms.color;
    }
    `,gBe=`
    struct VertexOutput {
        @builtin(position) Position : vec4<f32>,
        @location(0) fragUV : vec2<f32>
    }

    @vertex
    fn main(
        @builtin(vertex_index) VertexIndex : u32
    ) -> VertexOutput {
        var pos = array<vec2<f32>, 4>(
            vec2(-1.0,  1.0),
            vec2( 1.0,  1.0),
            vec2(-1.0, -1.0),
            vec2( 1.0, -1.0)
        );
        var tex = array<vec2<f32>, 4>(
            vec2(0.0, 0.0),
            vec2(1.0, 0.0),
            vec2(0.0, 1.0),
            vec2(1.0, 1.0)
        );

        var output: VertexOutput;

        output.Position = vec4<f32>(pos[VertexIndex], 0.0, 1.0);
        output.fragUV = tex[VertexIndex];

        return output;
    }
    `,_Be=`
    @group(0) @binding(0) var videoSampler: sampler;
    @group(0) @binding(1) var videoTexture: texture_external;

    @fragment
    fn main(
        @location(0) fragUV: vec2<f32>
    ) -> @location(0) vec4<f32> {
        return textureSampleBaseClampToEdge(videoTexture, videoSampler, fragUV);
    }
    `,vBe=`
    @group(0) @binding(0) var videoSampler: sampler;
    @group(0) @binding(1) var videoTexture: texture_external;

    @fragment
    fn main(
        @location(0) fragUV: vec2<f32>
    ) -> @location(0) vec4<f32> {
        return textureSampleBaseClampToEdge(videoTexture, videoSampler, vec2<f32>(fragUV.x, 1.0 - fragUV.y));
    }
    `;var i5;(function(a){a[a.MipMap=0]="MipMap",a[a.InvertYPremultiplyAlpha=1]="InvertYPremultiplyAlpha",a[a.Clear=2]="Clear",a[a.InvertYPremultiplyAlphaWithOfst=3]="InvertYPremultiplyAlphaWithOfst"})(i5||(i5={}));var ZP;(function(a){a[a.DontInvertY=0]="DontInvertY",a[a.InvertY=1]="InvertY"})(ZP||(ZP={}));const j0e=[{vertex:cBe,fragment:uBe},{vertex:U0e,fragment:hBe},{vertex:pBe,fragment:mBe},{vertex:dBe,fragment:fBe}],cb={"":0,r8unorm:1,r8uint:2,r8sint:3,r16uint:4,r16sint:5,r16float:6,rg8unorm:7,rg8uint:8,rg8sint:9,r32uint:10,r32sint:11,r32float:12,rg16uint:13,rg16sint:14,rg16float:15,rgba8unorm:16,"rgba8unorm-srgb":17,rgba8uint:18,rgba8sint:19,bgra8unorm:20,"bgra8unorm-srgb":21,rgb10a2uint:22,rgb10a2unorm:23,rg32uint:24,rg32sint:25,rg32float:26,rgba16uint:27,rgba16sint:28,rgba16float:29,rgba32uint:30,rgba32sint:31,rgba32float:32,stencil8:33,depth16unorm:34,depth24plus:35,"depth24plus-stencil8":36,depth32float:37,"depth32float-stencil8":38,r16unorm:39,rg16unorm:40,rgba16unorm:41,r16snorm:42,rg16snorm:43,rgba16snorm:44};class ABe{constructor(e,t,i,s){if(this._pipelines={},this._compiledShaders=[],this._videoPipelines={},this._videoCompiledShaders=[],this._deferredReleaseTextures=[],this._engine=e,this._device=t,this._bufferManager=i,s.indexOf("rg11b10ufloat-renderable")!==-1){const r=Object.keys(cb);cb.rg11b10ufloat=cb[r[r.length-1]]+1}this._mipmapSampler=t.createSampler({minFilter:"linear"}),this._videoSampler=t.createSampler({minFilter:"linear"}),this._ubCopyWithOfst=this._bufferManager.createBuffer(4*4,nn.Uniform|nn.CopyDst,"UBCopyWithOffset").underlyingResource,this._getPipeline("rgba8unorm"),this._getVideoPipeline("rgba8unorm")}_getPipeline(e,t=i5.MipMap,i){const s=t===i5.MipMap?1:t===i5.InvertYPremultiplyAlpha?((i.invertY?1:0)<<1)+((i.premultiplyAlpha?1:0)<<2):t===i5.Clear?8:t===i5.InvertYPremultiplyAlphaWithOfst?((i.invertY?1:0)<<4)+((i.premultiplyAlpha?1:0)<<5):0;this._pipelines[e]||(this._pipelines[e]=[]);let r=this._pipelines[e][s];if(!r){let n="";(t===i5.InvertYPremultiplyAlpha||t===i5.InvertYPremultiplyAlphaWithOfst)&&(i.invertY&&(n+=`#define INVERTY
`),i.premultiplyAlpha&&(n+=`#define PREMULTIPLYALPHA
`));let o=this._compiledShaders[s];if(!o){let c=j0e[t].vertex,u=j0e[t].fragment;const f={defines:n.split(`
`),indexParameters:null,isFragment:!1,shouldUseHighPrecisionShader:!0,processor:this._engine._getShaderProcessor(1),supportsUniformBuffers:!0,shadersRepository:"",includesShadersStore:{},version:(this._engine.version*100).toString(),platformName:this._engine.shaderPlatformName,processingContext:this._engine._getShaderProcessingContext(1,!0),isNDCHalfZRange:this._engine.isNDCHalfZRange,useReverseDepthBuffer:this._engine.useReverseDepthBuffer};oX(f),f.processor.pureMode=!0,KV(c,f,d=>{c=d},this._engine),f.isFragment=!0,KV(u,f,d=>{u=d},this._engine);const p=lX(c,u,f);f.processor.pureMode=!1;const m=this._device.createShaderModule({label:`BabylonWebGPUDevice${this._engine.uniqueId}_InternalVertexShader_${s}`,code:p.vertexCode}),_=this._device.createShaderModule({label:`BabylonWebGPUDevice${this._engine.uniqueId}_InternalFragmentShader_${s}`,code:p.fragmentCode});o=this._compiledShaders[s]=[m,_]}const l=this._device.createRenderPipeline({label:`BabylonWebGPUDevice${this._engine.uniqueId}_InternalPipeline_${e}_${s}`,layout:"auto",vertex:{module:o[0],entryPoint:"main"},fragment:{module:o[1],entryPoint:"main",targets:[{format:e}]},primitive:{topology:"triangle-strip",stripIndexFormat:"uint16"}});r=this._pipelines[e][s]=[l,l.getBindGroupLayout(0)]}return r}_getVideoPipeline(e,t=ZP.DontInvertY){const i=t===ZP.InvertY?1:0;this._videoPipelines[e]||(this._videoPipelines[e]=[]);let s=this._videoPipelines[e][i];if(!s){let r=this._videoCompiledShaders[i];if(!r){const o=this._device.createShaderModule({code:gBe,label:`BabylonWebGPUDevice${this._engine.uniqueId}_CopyVideoToTexture_VertexShader`}),l=this._device.createShaderModule({code:i===0?_Be:vBe,label:`BabylonWebGPUDevice${this._engine.uniqueId}_CopyVideoToTexture_FragmentShader_${i===0?"DontInvertY":"InvertY"}`});r=this._videoCompiledShaders[i]=[o,l]}const n=this._device.createRenderPipeline({label:`BabylonWebGPUDevice${this._engine.uniqueId}_InternalVideoPipeline_${e}_${i===0?"DontInvertY":"InvertY"}`,layout:"auto",vertex:{module:r[0],entryPoint:"main"},fragment:{module:r[1],entryPoint:"main",targets:[{format:e}]},primitive:{topology:"triangle-strip",stripIndexFormat:"uint16"}});s=this._videoPipelines[e][i]=[n,n.getBindGroupLayout(0)]}return s}setCommandEncoder(e){this._commandEncoderForCreation=e}copyVideoToTexture(e,t,i,s=!1,r){var _,d;const n=r===void 0,[o,l]=this._getVideoPipeline(i,s?ZP.InvertY:ZP.DontInvertY);n&&(r=this._device.createCommandEncoder({})),(_=r.pushDebugGroup)==null||_.call(r,`copy video to texture - invertY=${s}`);const c=t._hardwareTexture,u={label:`BabylonWebGPUDevice${this._engine.uniqueId}_copyVideoToTexture_${i}_${s?"InvertY":"DontInvertY"}${t.label?"_"+t.label:""}`,colorAttachments:[{view:c.underlyingResource.createView({format:i,dimension:"2d",mipLevelCount:1,baseArrayLayer:0,baseMipLevel:0,arrayLayerCount:1,aspect:"all"}),loadOp:"load",storeOp:"store"}]},f=r.beginRenderPass(u),p={layout:l,entries:[{binding:0,resource:this._videoSampler},{binding:1,resource:this._device.importExternalTexture({source:e.underlyingResource})}]},m=this._device.createBindGroup(p);f.setPipeline(o),f.setBindGroup(0,m),f.draw(4,1,0,0),f.end(),(d=r.popDebugGroup)==null||d.call(r),n&&(this._device.queue.submit([r.finish()]),r=null)}invertYPreMultiplyAlpha(e,t,i,s,r=!1,n=!1,o=0,l=0,c=1,u=0,f=0,p=0,m=0,_,d){var I,N;const h=p!==0,x=_===void 0,[A,S]=this._getPipeline(s,h?i5.InvertYPremultiplyAlphaWithOfst:i5.InvertYPremultiplyAlpha,{invertY:r,premultiplyAlpha:n});o=Math.max(o,0),x&&(_=this._device.createCommandEncoder({})),(I=_.pushDebugGroup)==null||I.call(_,`internal process texture - invertY=${r} premultiplyAlpha=${n}`);let E;if(rn.IsHardwareTexture(e)?(E=e.underlyingResource,r&&!n&&c===1&&o===0||(e=void 0)):(E=e,e=void 0),!E)return;h&&this._bufferManager.setRawData(this._ubCopyWithOfst,0,new Float32Array([u,f,p,m]),0,4*4);const b=e,M=(b==null?void 0:b._copyInvertYTempTexture)??this.createTexture({width:t,height:i,layers:1},!1,!1,!1,!1,!1,s,1,_,21,void 0,"TempTextureForCopyWithInvertY"),T=(b==null?void 0:b._copyInvertYRenderPassDescr)??{label:`BabylonWebGPUDevice${this._engine.uniqueId}_invertYPreMultiplyAlpha_${s}_${r?"InvertY":"DontInvertY"}_${n?"PremultiplyAlpha":"DontPremultiplyAlpha"}`,colorAttachments:[{view:M.createView({format:s,dimension:"2d",baseMipLevel:0,mipLevelCount:1,arrayLayerCount:1,baseArrayLayer:0}),loadOp:"load",storeOp:"store"}]},O=_.beginRenderPass(T);let R=h?b==null?void 0:b._copyInvertYBindGroupWithOfst:b==null?void 0:b._copyInvertYBindGroup;if(!R){const w={layout:S,entries:[{binding:0,resource:E.createView({format:s,dimension:"2d",baseMipLevel:l,mipLevelCount:1,arrayLayerCount:c,baseArrayLayer:o})}]};h&&w.entries.push({binding:1,resource:{buffer:this._ubCopyWithOfst}}),R=this._device.createBindGroup(w)}O.setPipeline(A),O.setBindGroup(0,R),O.draw(4,1,0,0),O.end(),_.copyTextureToTexture({texture:M},{texture:E,mipLevel:l,origin:{x:0,y:0,z:o}},{width:p||t,height:m||i,depthOrArrayLayers:1}),b?(b._copyInvertYTempTexture=M,b._copyInvertYRenderPassDescr=T,h?b._copyInvertYBindGroupWithOfst=R:b._copyInvertYBindGroup=R):this._deferredReleaseTextures.push([M,null]),(N=_.popDebugGroup)==null||N.call(_),x&&(this._device.queue.submit([_.finish()]),_=null)}createTexture(e,t=!1,i=!1,s=!1,r=!1,n=!1,o="rgba8unorm",l=1,c,u=-1,f=0,p){l=rn.GetSample(l);const m=e.layers||1,_={width:e.width,height:e.height,depthOrArrayLayers:m},d=cb[o]?16:0,h=rn.IsCompressedFormat(o),x=t?rn.ComputeNumMipmapLevels(e.width,e.height):1,A=u>=0?u:7;f|=t&&!h?1|d:0,!h&&!n&&(f|=d|2);const S=this._device.createTexture({label:`BabylonWebGPUDevice${this._engine.uniqueId}_Texture${n?"3D":"2D"}_${p?p+"_":""}${_.width}x${_.height}x${_.depthOrArrayLayers}_${t?"wmips":"womips"}_${o}_samples${l}`,size:_,dimension:n?"3d":"2d",format:o,usage:A|f,sampleCount:l,mipLevelCount:x});return rn.IsImageBitmap(e)&&(this.updateTexture(e,S,e.width,e.height,m,o,0,0,s,r,0,0),t&&i&&this.generateMipmaps(S,o,x,0,n,c)),S}createCubeTexture(e,t=!1,i=!1,s=!1,r=!1,n="rgba8unorm",o=1,l,c=-1,u=0,f){o=rn.GetSample(o);const p=rn.IsImageBitmapArray(e)?e[0].width:e.width,m=rn.IsImageBitmapArray(e)?e[0].height:e.height,_=cb[n]?16:0,d=rn.IsCompressedFormat(n),h=t?rn.ComputeNumMipmapLevels(p,m):1,x=c>=0?c:7;u|=t&&!d?1|_:0,d||(u|=_|2);const A=this._device.createTexture({label:`BabylonWebGPUDevice${this._engine.uniqueId}_TextureCube_${f?f+"_":""}${p}x${m}x6_${t?"wmips":"womips"}_${n}_samples${o}`,size:{width:p,height:m,depthOrArrayLayers:6},dimension:"2d",format:n,usage:x|u,sampleCount:o,mipLevelCount:h});return rn.IsImageBitmapArray(e)&&(this.updateCubeTextures(e,A,p,m,n,s,r,0,0),t&&i&&this.generateCubeMipmaps(A,n,h,l)),A}generateCubeMipmaps(e,t,i,s){var n,o;const r=s===void 0;r&&(s=this._device.createCommandEncoder({})),(n=s.pushDebugGroup)==null||n.call(s,`create cube mipmaps - ${i} levels`);for(let l=0;l<6;++l)this.generateMipmaps(e,t,i,l,!1,s);(o=s.popDebugGroup)==null||o.call(s),r&&(this._device.queue.submit([s.finish()]),s=null)}generateMipmaps(e,t,i,s=0,r=!1,n){var p,m,_,d;const o=n===void 0,[l,c]=this._getPipeline(t);s=Math.max(s,0),o&&(n=this._device.createCommandEncoder({})),(p=n.pushDebugGroup)==null||p.call(n,`create mipmaps for face #${s} - ${i} levels`);let u;if(rn.IsHardwareTexture(e)?(u=e.underlyingResource,e._mipmapGenRenderPassDescr=e._mipmapGenRenderPassDescr||[],e._mipmapGenBindGroup=e._mipmapGenBindGroup||[]):(u=e,e=void 0),!u)return;const f=e;for(let h=1;h<i;++h){const x=((m=f==null?void 0:f._mipmapGenRenderPassDescr[s])==null?void 0:m[h-1])??{label:`BabylonWebGPUDevice${this._engine.uniqueId}_generateMipmaps_${t}_faceIndex${s}_level${h}`,colorAttachments:[{view:u.createView({format:t,dimension:r?"3d":"2d",baseMipLevel:h,mipLevelCount:1,arrayLayerCount:1,baseArrayLayer:s}),loadOp:"load",storeOp:"store"}]};f&&(f._mipmapGenRenderPassDescr[s]=f._mipmapGenRenderPassDescr[s]||[],f._mipmapGenRenderPassDescr[s][h-1]=x);const A=n.beginRenderPass(x),S=((_=f==null?void 0:f._mipmapGenBindGroup[s])==null?void 0:_[h-1])??this._device.createBindGroup({layout:c,entries:[{binding:0,resource:u.createView({format:t,dimension:r?"3d":"2d",baseMipLevel:h-1,mipLevelCount:1,arrayLayerCount:1,baseArrayLayer:s})},{binding:1,resource:this._mipmapSampler}]});f&&(f._mipmapGenBindGroup[s]=f._mipmapGenBindGroup[s]||[],f._mipmapGenBindGroup[s][h-1]=S),A.setPipeline(l),A.setBindGroup(0,S),A.draw(4,1,0,0),A.end()}(d=n.popDebugGroup)==null||d.call(n),o&&(this._device.queue.submit([n.finish()]),n=null)}createGPUTextureForInternalTexture(e,t,i,s,r,n){e._hardwareTexture||(e._hardwareTexture=new hH(this._engine)),t===void 0&&(t=e.width),i===void 0&&(i=e.height),s===void 0&&(s=e.depth);const o=e._hardwareTexture,l=((r??0)&1)!==0;o.format=rn.GetWebGPUTextureFormat(e.type,e.format,e._useSRGBBuffer),o.textureUsages=e._source===5||e.source===6?21:e._source===12?20:-1,o.textureAdditionalUsages=l?8:0;const c=e.generateMipMaps,u=s||1;let f;if(e._maxLodLevel!==null?f=e._maxLodLevel:f=c?rn.ComputeNumMipmapLevels(t,i):1,e.isCube){const p=this.createCubeTexture({width:t,height:i},e.generateMipMaps,e.generateMipMaps,e.invertY,!1,o.format,1,this._commandEncoderForCreation,o.textureUsages,o.textureAdditionalUsages,e.label);o.set(p);const m=e.is3D?1:u,_=rn.GetDepthFormatOnly(o.format),d=rn.HasDepthAndStencilAspects(o.format)?"depth-only":"all",h=e.is2DArray?"cube-array":"cube";o.createView({label:`BabylonWebGPUDevice${this._engine.uniqueId}_TextureViewCube${e.is2DArray?"_Array"+m:""}_${t}x${i}_${c?"wmips":"womips"}_${_}_${h}_${d}_${e.label??"noname"}`,format:_,dimension:h,mipLevelCount:f,baseArrayLayer:0,baseMipLevel:0,arrayLayerCount:6,aspect:d},l)}else{const p=this.createTexture({width:t,height:i,layers:u},e.generateMipMaps,e.generateMipMaps,e.invertY,!1,e.is3D,o.format,1,this._commandEncoderForCreation,o.textureUsages,o.textureAdditionalUsages,e.label);o.set(p);const m=e.is3D?1:u,_=rn.GetDepthFormatOnly(o.format),d=rn.HasDepthAndStencilAspects(o.format)?"depth-only":"all",h=e.is2DArray?"2d-array":e.is3D?"3d":"2d";o.createView({label:`BabylonWebGPUDevice${this._engine.uniqueId}_TextureView${e.is3D?"3D":"2D"}${e.is2DArray?"_Array"+m:""}_${t}x${i}${e.is3D?"x"+u:""}_${c?"wmips":"womips"}_${_}_${h}_${d}_${e.label??"noname"}`,format:_,dimension:h,mipLevelCount:f,baseArrayLayer:0,baseMipLevel:0,arrayLayerCount:m,aspect:d},l)}return e.width=e.baseWidth=t,e.height=e.baseHeight=i,e.depth=e.baseDepth=s,n||this.createMSAATexture(e,e.samples),o}createMSAATexture(e,t,i=!0,s=0){const r=e._hardwareTexture;if(i&&(r==null||r.releaseMSAATexture()),!r||(t??1)<=1)return;const n=e.width,o=e.height,l=this.createTexture({width:n,height:o,layers:1},!1,!1,!1,!1,!1,r.format,t,this._commandEncoderForCreation,16,0,e.label?"MSAA_"+e.label:"MSAA");r.setMSAATexture(l,s)}updateCubeTextures(e,t,i,s,r,n=!1,o=!1,l=0,c=0){const u=[0,3,1,4,2,5];for(let f=0;f<u.length;++f){const p=e[u[f]];this.updateTexture(p,t,i,s,1,r,f,0,n,o,l,c)}}updateTexture(e,t,i,s,r,n,o=0,l=0,c=!1,u=!1,f=0,p=0,m){const _=rn.IsInternalTexture(t)?t._hardwareTexture.underlyingResource:t,d=rn.GetBlockInformationFromFormat(n),h=rn.IsInternalTexture(t)?t._hardwareTexture:t,x={texture:_,origin:{x:f,y:p,z:Math.max(o,0)},mipLevel:l,premultipliedAlpha:u},A={width:Math.ceil(i/d.width)*d.width,height:Math.ceil(s/d.height)*d.height,depthOrArrayLayers:r||1};if(e.byteLength!==void 0){e=e;const S=Math.ceil(i/d.width)*d.length;if(Math.ceil(S/256)*256===S){const b=this._device.createCommandEncoder({}),M=this._bufferManager.createRawBuffer(e.byteLength,nn.MapWrite|nn.CopySrc,!0,"TempBufferForUpdateTexture"+(_?"_"+_.label:"")),T=M.getMappedRange();new Uint8Array(T).set(e),M.unmap(),b.copyBufferToTexture({buffer:M,offset:0,bytesPerRow:S,rowsPerImage:s},x,A),this._device.queue.submit([b.finish()]),this._bufferManager.releaseBuffer(M)}else this._device.queue.writeTexture(x,e,{offset:0,bytesPerRow:S,rowsPerImage:s},A);if(c||u)if(rn.IsInternalTexture(t)){const b=f===0&&p===0&&i===t.width&&s===t.height;this.invertYPreMultiplyAlpha(h,t.width,t.height,n,c,u,o,l,r||1,f,p,b?0:i,b?0:s,void 0,m)}else throw"updateTexture: Can't process the texture data because a GPUTexture was provided instead of an InternalTexture!"}else e=e,this._device.queue.copyExternalImageToTexture({source:e,flipY:c},x,A)}readPixels(e,t,i,s,r,n,o=0,l=0,c=null,u=!1){const f=rn.GetBlockInformationFromFormat(n),p=Math.ceil(s/f.width)*f.length,m=Math.ceil(p/256)*256,_=m*r,d=this._bufferManager.createRawBuffer(_,nn.MapRead|nn.CopyDst,void 0,"TempBufferForReadPixels"+(e.label?"_"+e.label:"")),h=this._device.createCommandEncoder({});return h.copyTextureToBuffer({texture:e,mipLevel:l,origin:{x:t,y:i,z:Math.max(o,0)}},{buffer:d,offset:0,bytesPerRow:m},{width:s,height:r,depthOrArrayLayers:1}),this._device.queue.submit([h.finish()]),this._bufferManager.readDataFromBuffer(d,_,s,r,p,m,rn.GetTextureTypeFromFormat(n),0,c,!0,u)}releaseTexture(e){if(rn.IsInternalTexture(e)){const t=e._hardwareTexture,i=e._irradianceTexture;this._deferredReleaseTextures.push([t,i])}else this._deferredReleaseTextures.push([e,null])}destroyDeferredTextures(){for(let e=0;e<this._deferredReleaseTextures.length;++e){const[t,i]=this._deferredReleaseTextures[e];t&&(rn.IsHardwareTexture(t)?t.release():t.destroy()),i==null||i.dispose()}this._deferredReleaseTextures.length=0}}class V0e extends Fv{set buffer(e){this._buffer=e}constructor(e,t=0){super(),this.engineId=-1,this.capacity=t,e&&(this._buffer=e)}get underlyingResource(){return this._buffer}}class dH{static _IsGPUBuffer(e){return e.underlyingResource===void 0}static _FlagsToString(e,t=""){let i=t;for(let s=0;s<=9;++s)e&1<<s&&(i&&(i+="_"),i+=nn[1<<s]);return i}constructor(e,t){this._deferredReleaseBuffers=[],this._engine=e,this._device=t}createRawBuffer(e,t,i=!1,s){const r=e.byteLength!==void 0?e.byteLength+3&-4:e+3&-4,n={label:"BabylonWebGPUDevice"+this._engine.uniqueId+"_"+dH._FlagsToString(t,s??"Buffer")+"_size"+r,mappedAtCreation:i,size:r,usage:t};return this._device.createBuffer(n)}createBuffer(e,t,i){const s=e.byteLength!==void 0,r=new V0e,n="DataBufferUniqueId="+r.uniqueId;return r.buffer=this.createRawBuffer(e,t,void 0,i?n+"-"+i:n),r.references=1,r.capacity=s?e.byteLength:e,r.engineId=this._engine.uniqueId,s&&this.setSubData(r,0,e),r}setRawData(e,t,i,s,r){s+=i.byteOffset,this._device.queue.writeBuffer(e,t,i.buffer,s,r)}setSubData(e,t,i,s=0,r=0){const n=e.underlyingResource;r=r||i.byteLength-s;const o=t&3;s-=o,t-=o;const l=r;if(r=r+o+3&-4,i.buffer.byteLength-i.byteOffset<r){const u=new Uint8Array(r);u.set(new Uint8Array(i.buffer,i.byteOffset+s,l)),i=u,s=0}this.setRawData(n,t,i,s,r)}_getHalfFloatAsFloatRGBAArrayBuffer(e,t,i){i||(i=new Float32Array(e));const s=new Uint16Array(t);for(;e--;)i[e]=Zv(s[e]);return i}readDataFromBuffer(e,t,i,s,r,n,o=0,l=0,c=null,u=!0,f=!1){const p=o===1?2:o===2?1:0,m=this._engine.uniqueId;return new Promise((_,d)=>{e.mapAsync(1,l,t).then(()=>{const h=e.getMappedRange(l,t);let x=c;if(f)x===null?x=XV(o,t,!0,h):x=XV(o,x.buffer,void 0,h);else if(x===null)switch(p){case 0:x=new Uint8Array(t),x.set(new Uint8Array(h));break;case 1:x=this._getHalfFloatAsFloatRGBAArrayBuffer(t/2,h);break;case 2:x=new Float32Array(t/4),x.set(new Float32Array(h));break}else switch(p){case 0:x=new Uint8Array(x.buffer),x.set(new Uint8Array(h));break;case 1:x=this._getHalfFloatAsFloatRGBAArrayBuffer(t/2,h,c);break;case 2:x=new Float32Array(x.buffer),x.set(new Float32Array(h));break}if(r!==n){p===1&&!f&&(r*=2,n*=2);const A=new Uint8Array(x.buffer);let S=r,E=0;for(let b=1;b<s;++b){E=b*n;for(let M=0;M<r;++M)A[S++]=A[E++]}p!==0&&!f?x=new Float32Array(A.buffer,0,S/4):x=new Uint8Array(A.buffer,0,S)}e.unmap(),u&&this.releaseBuffer(e),_(x)},h=>{this._engine.isDisposed||this._engine.uniqueId!==m?_(new Uint8Array):d(h)})})}releaseBuffer(e){return dH._IsGPUBuffer(e)?(this._deferredReleaseBuffers.push(e),!0):(e.references--,e.references===0?(this._deferredReleaseBuffers.push(e.underlyingResource),!0):!1)}destroyDeferredBuffers(){for(let e=0;e<this._deferredReleaseBuffers.length;++e)this._deferredReleaseBuffers[e].destroy();this._deferredReleaseBuffers.length=0}}const CBe=[0,0,3,7,0,2,6,2,4,1,5,3,1],xBe=[0,64,32,96,16,80,48,112,8],bBe=[0,128,128,0,0,0,0,128,0,0,0,0,128];class e9{constructor(e){this._samplers={},this._device=e,this.disabled=!1}static GetSamplerHashCode(e){const t=e._cachedAnisotropicFilteringLevel?e._cachedAnisotropicFilteringLevel:1;return CBe[e.samplingMode]+xBe[(e._comparisonFunction||514)-512+1]+bBe[e.samplingMode]+((e._cachedWrapU??1)<<8)+((e._cachedWrapV??1)<<10)+((e._cachedWrapR??1)<<12)+((e.useMipMaps?1:0)<<14)+(t<<15)}static _GetSamplerFilterDescriptor(e,t){let i,s,r,n,o;const l=e.useMipMaps;switch(e.samplingMode){case 11:i="linear",s="linear",r="nearest",l||(n=o=0);break;case 3:case 3:i="linear",s="linear",l?r="linear":(r="nearest",n=o=0);break;case 8:i="nearest",s="nearest",l?r="linear":(r="nearest",n=o=0);break;case 4:i="nearest",s="nearest",r="nearest",l||(n=o=0);break;case 5:i="nearest",s="linear",r="nearest",l||(n=o=0);break;case 6:i="nearest",s="linear",l?r="linear":(r="nearest",n=o=0);break;case 7:i="nearest",s="linear",r="nearest",n=o=0;break;case 1:case 1:i="nearest",s="nearest",r="nearest",n=o=0;break;case 9:i="linear",s="nearest",r="nearest",l||(n=o=0);break;case 10:i="linear",s="nearest",l?r="linear":(r="nearest",n=o=0);break;case 2:case 2:i="linear",s="linear",t>1?r="linear":(r="nearest",n=o=0);break;case 12:i="linear",s="nearest",r="nearest",n=o=0;break;default:i="nearest",s="nearest",r="nearest",n=o=0;break}return t>1&&(n!==0||o!==0)?{magFilter:"linear",minFilter:"linear",mipmapFilter:"linear",anisotropyEnabled:!0}:{magFilter:i,minFilter:s,mipmapFilter:r,lodMinClamp:n,lodMaxClamp:o}}static _GetWrappingMode(e){switch(e){case 1:return"repeat";case 0:return"clamp-to-edge";case 2:return"mirror-repeat"}return"repeat"}static _GetSamplerWrappingDescriptor(e){return{addressModeU:this._GetWrappingMode(e._cachedWrapU),addressModeV:this._GetWrappingMode(e._cachedWrapV),addressModeW:this._GetWrappingMode(e._cachedWrapR)}}static _GetSamplerDescriptor(e,t){let i=(e.useMipMaps||e.samplingMode===2)&&e._cachedAnisotropicFilteringLevel?e._cachedAnisotropicFilteringLevel:1;e.samplingMode!==11&&e.samplingMode!==3&&e.samplingMode!==2&&(i=1);const s=this._GetSamplerFilterDescriptor(e,i);return{label:t,...s,...this._GetSamplerWrappingDescriptor(e),compare:e._comparisonFunction?e9.GetCompareFunction(e._comparisonFunction):void 0,maxAnisotropy:s.anisotropyEnabled?i:1}}static GetCompareFunction(e){switch(e){case 519:return"always";case 514:return"equal";case 516:return"greater";case 518:return"greater-equal";case 513:return"less";case 515:return"less-equal";case 512:return"never";case 517:return"not-equal";default:return"less"}}getSampler(e,t=!1,i=0,s){if(this.disabled)return this._device.createSampler(e9._GetSamplerDescriptor(e,s));t?i=0:i===0&&(i=e9.GetSamplerHashCode(e));let r=t?void 0:this._samplers[i];return r||(r=this._device.createSampler(e9._GetSamplerDescriptor(e,s)),t||(this._samplers[i]=r)),r}}var _l;(function(a){a[a.StencilReadMask=0]="StencilReadMask",a[a.StencilWriteMask=1]="StencilWriteMask",a[a.DepthBias=2]="DepthBias",a[a.DepthBiasSlopeScale=3]="DepthBiasSlopeScale",a[a.DepthStencilState=4]="DepthStencilState",a[a.MRTAttachments1=5]="MRTAttachments1",a[a.MRTAttachments2=6]="MRTAttachments2",a[a.RasterizationState=7]="RasterizationState",a[a.ColorStates=8]="ColorStates",a[a.ShaderStage=9]="ShaderStage",a[a.TextureStage=10]="TextureStage",a[a.VertexState=11]="VertexState",a[a.NumStates=12]="NumStates"})(_l||(_l={}));const fH={0:1,1:2,768:3,769:4,770:5,771:6,772:7,773:8,774:9,775:10,776:11,32769:12,32770:13,32771:12,32772:13},KP={0:0,7680:1,7681:2,7682:3,7683:4,5386:5,34055:6,34056:7};class Ta{constructor(e,t){this.mrtTextureCount=0,this._device=e,this._useTextureStage=!0,this._states=new Array(30),this._statesLength=0,this._stateDirtyLowestIndex=0,this._emptyVertexBuffer=t,this._mrtFormats=[],this._parameter={token:void 0,pipeline:null},this.disabled=!1,this.vertexBuffers=[],this._kMaxVertexBufferStride=e.limits.maxVertexBufferArrayStride||2048,this.reset()}reset(){this._isDirty=!0,this.vertexBuffers.length=0,this.setAlphaToCoverage(!1),this.resetDepthCullingState(),this.setClampDepth(!1),this.setDepthBias(0),this._webgpuColorFormat=["bgra8unorm"],this.setColorFormat("bgra8unorm"),this.setMRT([]),this.setAlphaBlendEnabled(!1),this.setAlphaBlendFactors([null,null,null,null],[null,null]),this.setWriteMask(15),this.setDepthStencilFormat("depth24plus-stencil8"),this.setStencilEnabled(!1),this.resetStencilState(),this.setBuffers(null,null,null),this._setTextureState(0)}get colorFormats(){return this._mrtAttachments1>0?this._mrtFormats:this._webgpuColorFormat}getRenderPipeline(e,t,i,s=0){if(i=rn.GetSample(i),this.disabled){const n=Ta._GetTopology(e);return this._setVertexState(t),this._setTextureState(s),this._parameter.pipeline=this._createRenderPipeline(t,n,i),Ta.NumCacheMiss++,Ta._NumPipelineCreationCurrentFrame++,this._parameter.pipeline}if(this._setShaderStage(t.uniqueId),this._setRasterizationState(e,i),this._setColorStates(),this._setDepthStencilState(),this._setVertexState(t),this._setTextureState(s),this.lastStateDirtyLowestIndex=this._stateDirtyLowestIndex,!this._isDirty&&this._parameter.pipeline)return this._stateDirtyLowestIndex=this._statesLength,Ta.NumCacheHitWithoutHash++,this._parameter.pipeline;if(this._getRenderPipeline(this._parameter),this._isDirty=!1,this._stateDirtyLowestIndex=this._statesLength,this._parameter.pipeline)return Ta.NumCacheHitWithHash++,this._parameter.pipeline;const r=Ta._GetTopology(e);return this._parameter.pipeline=this._createRenderPipeline(t,r,i),this._setRenderPipeline(this._parameter),Ta.NumCacheMiss++,Ta._NumPipelineCreationCurrentFrame++,this._parameter.pipeline}endFrame(){Ta.NumPipelineCreationLastFrame=Ta._NumPipelineCreationCurrentFrame,Ta._NumPipelineCreationCurrentFrame=0}setAlphaToCoverage(e){this._alphaToCoverageEnabled=e}setFrontFace(e){this._frontFace=e}setCullEnabled(e){this._cullEnabled=e}setCullFace(e){this._cullFace=e}setClampDepth(e){this._clampDepth=e}resetDepthCullingState(){this.setDepthCullingState(!1,2,1,0,0,!0,!0,519)}setDepthCullingState(e,t,i,s,r,n,o,l){this._depthWriteEnabled=o,this._depthTestEnabled=n,this._depthCompare=(l??519)-512,this._cullFace=i,this._cullEnabled=e,this._frontFace=t,this.setDepthBiasSlopeScale(s),this.setDepthBias(r)}setDepthBias(e){this._depthBias!==e&&(this._depthBias=e,this._states[_l.DepthBias]=e,this._isDirty=!0,this._stateDirtyLowestIndex=Math.min(this._stateDirtyLowestIndex,_l.DepthBias))}setDepthBiasSlopeScale(e){this._depthBiasSlopeScale!==e&&(this._depthBiasSlopeScale=e,this._states[_l.DepthBiasSlopeScale]=e,this._isDirty=!0,this._stateDirtyLowestIndex=Math.min(this._stateDirtyLowestIndex,_l.DepthBiasSlopeScale))}setColorFormat(e){this._webgpuColorFormat[0]=e,this._colorFormat=cb[e??""]}setMRTAttachments(e){this.mrtAttachments=e;let t=0;for(let i=0;i<e.length;++i)e[i]!==0&&(t+=1<<i);this._mrtEnabledMask!==t&&(this._mrtEnabledMask=t,this._isDirty=!0,this._stateDirtyLowestIndex=Math.min(this._stateDirtyLowestIndex,_l.MRTAttachments1))}setMRT(e,t){if(t=t??e.length,t>10)throw"Can't handle more than 10 attachments for a MRT in cache render pipeline!";this.mrtTextureArray=e,this.mrtTextureCount=t,this._mrtEnabledMask=65535;const i=[0,0];let s=0,r=0,n=0;for(let o=0;o<t;++o){const l=e[o],c=l==null?void 0:l._hardwareTexture;this._mrtFormats[n]=(c==null?void 0:c.format)??this._webgpuColorFormat[0],i[s]+=cb[this._mrtFormats[n]??""]<<r,r+=6,n++,r>=32&&(r=0,s++)}this._mrtFormats.length=n,(this._mrtAttachments1!==i[0]||this._mrtAttachments2!==i[1])&&(this._mrtAttachments1=i[0],this._mrtAttachments2=i[1],this._states[_l.MRTAttachments1]=i[0],this._states[_l.MRTAttachments2]=i[1],this._isDirty=!0,this._stateDirtyLowestIndex=Math.min(this._stateDirtyLowestIndex,_l.MRTAttachments1))}setAlphaBlendEnabled(e){this._alphaBlendEnabled=e}setAlphaBlendFactors(e,t){this._alphaBlendFuncParams=e,this._alphaBlendEqParams=t}setWriteMask(e){this._writeMask=e}setDepthStencilFormat(e){this._webgpuDepthStencilFormat=e,this._depthStencilFormat=e===void 0?0:cb[e]}setDepthTestEnabled(e){this._depthTestEnabled=e}setDepthWriteEnabled(e){this._depthWriteEnabled=e}setDepthCompare(e){this._depthCompare=(e??519)-512}setStencilEnabled(e){this._stencilEnabled=e}setStencilCompare(e){this._stencilFrontCompare=(e??519)-512}setStencilDepthFailOp(e){this._stencilFrontDepthFailOp=e===null?1:KP[e]}setStencilPassOp(e){this._stencilFrontPassOp=e===null?2:KP[e]}setStencilFailOp(e){this._stencilFrontFailOp=e===null?1:KP[e]}setStencilReadMask(e){this._stencilReadMask!==e&&(this._stencilReadMask=e,this._states[_l.StencilReadMask]=e,this._isDirty=!0,this._stateDirtyLowestIndex=Math.min(this._stateDirtyLowestIndex,_l.StencilReadMask))}setStencilWriteMask(e){this._stencilWriteMask!==e&&(this._stencilWriteMask=e,this._states[_l.StencilWriteMask]=e,this._isDirty=!0,this._stateDirtyLowestIndex=Math.min(this._stateDirtyLowestIndex,_l.StencilWriteMask))}resetStencilState(){this.setStencilState(!1,519,7680,7681,7680,255,255)}setStencilState(e,t,i,s,r,n,o){this._stencilEnabled=e,this._stencilFrontCompare=(t??519)-512,this._stencilFrontDepthFailOp=i===null?1:KP[i],this._stencilFrontPassOp=s===null?2:KP[s],this._stencilFrontFailOp=r===null?1:KP[r],this.setStencilReadMask(n),this.setStencilWriteMask(o)}setBuffers(e,t,i){this._vertexBuffers=e,this._overrideVertexBuffers=i,this._indexBuffer=t}static _GetTopology(e){switch(e){case 0:return"triangle-list";case 2:return"point-list";case 1:return"line-list";case 3:return"point-list";case 4:return"line-list";case 5:throw"LineLoop is an unsupported fillmode in WebGPU";case 6:return"line-strip";case 7:return"triangle-strip";case 8:throw"TriangleFan is an unsupported fillmode in WebGPU";default:return"triangle-list"}}static _GetAphaBlendOperation(e){switch(e){case 32774:return"add";case 32778:return"subtract";case 32779:return"reverse-subtract";case 32775:return"min";case 32776:return"max";default:return"add"}}static _GetAphaBlendFactor(e){switch(e){case 0:return"zero";case 1:return"one";case 768:return"src";case 769:return"one-minus-src";case 770:return"src-alpha";case 771:return"one-minus-src-alpha";case 772:return"dst-alpha";case 773:return"one-minus-dst-alpha";case 774:return"dst";case 775:return"one-minus-dst";case 776:return"src-alpha-saturated";case 32769:return"constant";case 32770:return"one-minus-constant";case 32771:return"constant";case 32772:return"one-minus-constant";case 35065:return"src1";case 35066:return"one-minus-src1";case 34185:return"src1-alpha";case 35067:return"one-minus-src1-alpha";default:return"one"}}static _GetCompareFunction(e){switch(e){case 0:return"never";case 1:return"less";case 2:return"equal";case 3:return"less-equal";case 4:return"greater";case 5:return"not-equal";case 6:return"greater-equal";case 7:return"always"}return"never"}static _GetStencilOpFunction(e){switch(e){case 0:return"zero";case 1:return"keep";case 2:return"replace";case 3:return"increment-clamp";case 4:return"decrement-clamp";case 5:return"invert";case 6:return"increment-wrap";case 7:return"decrement-wrap"}return"keep"}static _GetVertexInputDescriptorFormat(e){const t=e.type,i=e.normalized,s=e.getSize();switch(t){case q.BYTE:switch(s){case 1:case 2:return i?"snorm8x2":"sint8x2";case 3:case 4:return i?"snorm8x4":"sint8x4"}break;case q.UNSIGNED_BYTE:switch(s){case 1:case 2:return i?"unorm8x2":"uint8x2";case 3:case 4:return i?"unorm8x4":"uint8x4"}break;case q.SHORT:switch(s){case 1:case 2:return i?"snorm16x2":"sint16x2";case 3:case 4:return i?"snorm16x4":"sint16x4"}break;case q.UNSIGNED_SHORT:switch(s){case 1:case 2:return i?"unorm16x2":"uint16x2";case 3:case 4:return i?"unorm16x4":"uint16x4"}break;case q.INT:switch(s){case 1:return"sint32";case 2:return"sint32x2";case 3:return"sint32x3";case 4:return"sint32x4"}break;case q.UNSIGNED_INT:switch(s){case 1:return"uint32";case 2:return"uint32x2";case 3:return"uint32x3";case 4:return"uint32x4"}break;case q.FLOAT:switch(s){case 1:return"float32";case 2:return"float32x2";case 3:return"float32x3";case 4:return"float32x4"}break}throw new Error(`Invalid Format '${e.getKind()}' - type=${t}, normalized=${i}, size=${s}`)}_getAphaBlendState(){return this._alphaBlendEnabled?{srcFactor:Ta._GetAphaBlendFactor(this._alphaBlendFuncParams[2]),dstFactor:Ta._GetAphaBlendFactor(this._alphaBlendFuncParams[3]),operation:Ta._GetAphaBlendOperation(this._alphaBlendEqParams[1])}:null}_getColorBlendState(){return this._alphaBlendEnabled?{srcFactor:Ta._GetAphaBlendFactor(this._alphaBlendFuncParams[0]),dstFactor:Ta._GetAphaBlendFactor(this._alphaBlendFuncParams[1]),operation:Ta._GetAphaBlendOperation(this._alphaBlendEqParams[0])}:null}_setShaderStage(e){this._shaderId!==e&&(this._shaderId=e,this._states[_l.ShaderStage]=e,this._isDirty=!0,this._stateDirtyLowestIndex=Math.min(this._stateDirtyLowestIndex,_l.ShaderStage))}_setRasterizationState(e,t){const i=this._frontFace,s=this._cullEnabled?this._cullFace:0,r=this._clampDepth?1:0,n=this._alphaToCoverageEnabled?1:0,o=i-1+(s<<1)+(r<<3)+(n<<4)+(e<<5)+(t<<8);this._rasterizationState!==o&&(this._rasterizationState=o,this._states[_l.RasterizationState]=this._rasterizationState,this._isDirty=!0,this._stateDirtyLowestIndex=Math.min(this._stateDirtyLowestIndex,_l.RasterizationState))}_setColorStates(){let e=((this._writeMask?1:0)<<22)+(this._colorFormat<<23)+((this._depthWriteEnabled?1:0)<<29);this._alphaBlendEnabled&&(e+=((this._alphaBlendFuncParams[0]===null?2:fH[this._alphaBlendFuncParams[0]])<<0)+((this._alphaBlendFuncParams[1]===null?2:fH[this._alphaBlendFuncParams[1]])<<4)+((this._alphaBlendFuncParams[2]===null?2:fH[this._alphaBlendFuncParams[2]])<<8)+((this._alphaBlendFuncParams[3]===null?2:fH[this._alphaBlendFuncParams[3]])<<12)+((this._alphaBlendEqParams[0]===null?1:this._alphaBlendEqParams[0]-32773)<<16)+((this._alphaBlendEqParams[1]===null?1:this._alphaBlendEqParams[1]-32773)<<19)),e!==this._colorStates&&(this._colorStates=e,this._states[_l.ColorStates]=this._colorStates,this._isDirty=!0,this._stateDirtyLowestIndex=Math.min(this._stateDirtyLowestIndex,_l.ColorStates))}_setDepthStencilState(){const e=this._stencilEnabled?this._stencilFrontCompare+(this._stencilFrontDepthFailOp<<3)+(this._stencilFrontPassOp<<6)+(this._stencilFrontFailOp<<9):591,t=this._depthStencilFormat+((this._depthTestEnabled?this._depthCompare:7)<<6)+(e<<10);this._depthStencilState!==t&&(this._depthStencilState=t,this._states[_l.DepthStencilState]=this._depthStencilState,this._isDirty=!0,this._stateDirtyLowestIndex=Math.min(this._stateDirtyLowestIndex,_l.DepthStencilState))}_setVertexState(e){var c;const t=this._statesLength;let i=_l.VertexState;const s=e._pipelineContext,r=s.shaderProcessingContext.attributeNamesFromEffect,n=s.shaderProcessingContext.attributeLocationsFromEffect;let o,l=0;for(let u=0;u<r.length;u++){const f=n[u];let p=(this._overrideVertexBuffers&&this._overrideVertexBuffers[r[u]])??this._vertexBuffers[r[u]];p||(p=this._emptyVertexBuffer,Ta.LogErrorIfNoVertexBuffer&&de.Error(`No vertex buffer is provided for the "${r[u]}" attribute. A default empty vertex buffer will be used, but this may generate errors in some browsers.`));const m=(c=p.effectiveBuffer)==null?void 0:c.underlyingResource;if(p._validOffsetRange===void 0){const d=p.effectiveByteOffset,h=p.getSize(!0),x=p.effectiveByteStride;p._validOffsetRange=d+h<=this._kMaxVertexBufferStride&&x===0||x!==0&&d+h<=x}o&&o===m&&p._validOffsetRange||(this.vertexBuffers[l++]=p,o=p._validOffsetRange?m:null);const _=p.hashCode+(f<<7);this._isDirty=this._isDirty||this._states[i]!==_,this._states[i++]=_}this.vertexBuffers.length=l,this._statesLength=i,this._isDirty=this._isDirty||i!==t,this._isDirty&&(this._stateDirtyLowestIndex=Math.min(this._stateDirtyLowestIndex,_l.VertexState))}_setTextureState(e){this._textureState!==e&&(this._textureState=e,this._states[_l.TextureStage]=this._textureState,this._isDirty=!0,this._stateDirtyLowestIndex=Math.min(this._stateDirtyLowestIndex,_l.TextureStage))}_createPipelineLayout(e){if(this._useTextureStage)return this._createPipelineLayoutWithTextureStage(e);const t=[],i=e.shaderProcessingContext.bindGroupLayoutEntries;for(let s=0;s<i.length;s++){const r=i[s];t[s]=this._device.createBindGroupLayout({entries:r})}return e.bindGroupLayouts[0]=t,this._device.createPipelineLayout({bindGroupLayouts:t})}_createPipelineLayoutWithTextureStage(e){const t=e.shaderProcessingContext,i=t.bindGroupLayoutEntries;let s=1;for(let n=0;n<i.length;n++){const o=i[n];for(let l=0;l<o.length;l++){const c=i[n][l];if(c.texture){const u=t.bindGroupLayoutEntryInfo[n][c.binding].name,f=t.availableTextures[u],p=f.autoBindSampler?t.availableSamplers[u+"Sampler"]:null;let m=f.sampleType,_=(p==null?void 0:p.type)??"filtering";if(this._textureState&s&&m!=="depth"&&(f.autoBindSampler&&(_="non-filtering"),m="unfilterable-float"),c.texture.sampleType=m,p){const d=t.bindGroupLayoutEntryInfo[p.binding.groupIndex][p.binding.bindingIndex].index;i[p.binding.groupIndex][d].sampler.type=_}s=s<<1}}}const r=[];for(let n=0;n<i.length;++n)r[n]=this._device.createBindGroupLayout({entries:i[n]});return e.bindGroupLayouts[this._textureState]=r,this._device.createPipelineLayout({bindGroupLayouts:r})}_getVertexInputDescriptor(e){var l;const t=[],i=e._pipelineContext,s=i.shaderProcessingContext.attributeNamesFromEffect,r=i.shaderProcessingContext.attributeLocationsFromEffect;let n,o;for(let c=0;c<s.length;c++){const u=r[c];let f=(this._overrideVertexBuffers&&this._overrideVertexBuffers[s[c]])??this._vertexBuffers[s[c]];f||(f=this._emptyVertexBuffer);let p=(l=f.effectiveBuffer)==null?void 0:l.underlyingResource,m=f.effectiveByteOffset;const _=!f._validOffsetRange;if(!(n&&o&&n===p)||_){const d={arrayStride:f.effectiveByteStride,stepMode:f.getIsInstanced()?"instance":"vertex",attributes:[]};t.push(d),o=d.attributes,_&&(m=0,p=null)}o.push({shaderLocation:u,offset:m,format:Ta._GetVertexInputDescriptorFormat(f)}),n=p}return t}_createRenderPipeline(e,t,i){var _;const s=e._pipelineContext,r=this._getVertexInputDescriptor(e),n=this._createPipelineLayout(s),o=[],l=this._getAphaBlendState(),c=this._getColorBlendState();if(this._vertexBuffers&&y0e(this._vertexBuffers,e),this._mrtAttachments1>0)for(let d=0;d<this._mrtFormats.length;++d){const h=this._mrtFormats[d];if(h){const x={format:h,writeMask:this._mrtEnabledMask&1<<d?this._writeMask:0};l&&c&&(x.blend={alpha:l,color:c}),o.push(x)}else o.push(null)}else if(this._webgpuColorFormat[0]){const d={format:this._webgpuColorFormat[0],writeMask:this._writeMask};l&&c&&(d.blend={alpha:l,color:c}),o.push(d)}else o.push(null);const u={compare:Ta._GetCompareFunction(this._stencilEnabled?this._stencilFrontCompare:7),depthFailOp:Ta._GetStencilOpFunction(this._stencilEnabled?this._stencilFrontDepthFailOp:1),failOp:Ta._GetStencilOpFunction(this._stencilEnabled?this._stencilFrontFailOp:1),passOp:Ta._GetStencilOpFunction(this._stencilEnabled?this._stencilFrontPassOp:1)},f=t==="triangle-list"||t==="triangle-strip";let p;(t==="line-strip"||t==="triangle-strip")&&(p=!this._indexBuffer||this._indexBuffer.is32Bits?"uint32":"uint16");const m=this._webgpuDepthStencilFormat?rn.HasStencilAspect(this._webgpuDepthStencilFormat):!1;return this._device.createRenderPipeline({label:`RenderPipeline_${((_=o[0])==null?void 0:_.format)??"nooutput"}_${this._webgpuDepthStencilFormat??"nodepth"}_samples${i}_textureState${this._textureState}`,layout:n,vertex:{module:s.stages.vertexStage.module,entryPoint:s.stages.vertexStage.entryPoint,buffers:r},primitive:{topology:t,stripIndexFormat:p,frontFace:this._frontFace===1?"ccw":"cw",cullMode:this._cullEnabled?this._cullFace===2?"front":"back":"none"},fragment:s.stages.fragmentStage?{module:s.stages.fragmentStage.module,entryPoint:s.stages.fragmentStage.entryPoint,targets:o}:void 0,multisample:{count:i},depthStencil:this._webgpuDepthStencilFormat===void 0?void 0:{depthWriteEnabled:this._depthWriteEnabled,depthCompare:this._depthTestEnabled?Ta._GetCompareFunction(this._depthCompare):"always",format:this._webgpuDepthStencilFormat,stencilFront:this._stencilEnabled&&m?u:void 0,stencilBack:this._stencilEnabled&&m?u:void 0,stencilReadMask:this._stencilEnabled&&m?this._stencilReadMask:void 0,stencilWriteMask:this._stencilEnabled&&m?this._stencilWriteMask:void 0,depthBias:this._depthBias,depthBiasClamp:f?this._depthBiasClamp:0,depthBiasSlopeScale:f?this._depthBiasSlopeScale:0}})}}Ta.LogErrorIfNoVertexBuffer=!1,Ta.NumCacheHitWithoutHash=0,Ta.NumCacheHitWithHash=0,Ta.NumCacheMiss=0,Ta.NumPipelineCreationLastFrame=0,Ta._NumPipelineCreationCurrentFrame=0;class gJ{constructor(){this.values={}}count(){let e=0,t=this.pipeline?1:0;for(const i in this.values){const s=this.values[i],[r,n]=s.count();e+=r,t+=n,e++}return[e,t]}}class t_ extends Ta{static GetNodeCounts(){const e=t_._Cache.count();return{nodeCount:e[0],pipelineCount:e[1]}}static _GetPipelines(e,t,i,s){if(e.pipeline){const r=i.slice();r.length=s,t.push(r)}for(const r in e.values){const n=e.values[r];i[s]=parseInt(r),t_._GetPipelines(n,t,i,s+1)}}static GetPipelines(){const e=[];return t_._GetPipelines(t_._Cache,e,[],0),e}static ResetCache(){t_._Cache=new gJ}reset(){this._nodeStack=[],this._nodeStack[0]=t_._Cache,super.reset()}_getRenderPipeline(e){let t=this._nodeStack[this._stateDirtyLowestIndex];for(let i=this._stateDirtyLowestIndex;i<this._statesLength;++i){let s=t.values[this._states[i]];s||(s=new gJ,t.values[this._states[i]]=s),t=s,this._nodeStack[i+1]=t}e.token=t,e.pipeline=t.pipeline}_setRenderPipeline(e){e.token.pipeline=e.pipeline}}t_._Cache=new gJ;class SBe extends AX{constructor(e){super(!1),this._cache=e,this.reset()}get func(){return this._func}set func(e){this._func!==e&&(this._func=e,this._cache.setStencilCompare(e))}get funcMask(){return this._funcMask}set funcMask(e){this._funcMask!==e&&(this._funcMask=e,this._cache.setStencilReadMask(e))}get opStencilFail(){return this._opStencilFail}set opStencilFail(e){this._opStencilFail!==e&&(this._opStencilFail=e,this._cache.setStencilFailOp(e))}get opDepthFail(){return this._opDepthFail}set opDepthFail(e){this._opDepthFail!==e&&(this._opDepthFail=e,this._cache.setStencilDepthFailOp(e))}get opStencilDepthPass(){return this._opStencilDepthPass}set opStencilDepthPass(e){this._opStencilDepthPass!==e&&(this._opStencilDepthPass=e,this._cache.setStencilPassOp(e))}get mask(){return this._mask}set mask(e){this._mask!==e&&(this._mask=e,this._cache.setStencilWriteMask(e))}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&(this._enabled=e,this._cache.setStencilEnabled(e))}reset(){super.reset(),this._cache.resetStencilState()}apply(){var t;const e=(t=this.stencilMaterial)==null?void 0:t.enabled;this.enabled=e?this.stencilMaterial.enabled:this.stencilGlobal.enabled,this.enabled&&(this.func=e?this.stencilMaterial.func:this.stencilGlobal.func,this.funcRef=e?this.stencilMaterial.funcRef:this.stencilGlobal.funcRef,this.funcMask=e?this.stencilMaterial.funcMask:this.stencilGlobal.funcMask,this.opStencilFail=e?this.stencilMaterial.opStencilFail:this.stencilGlobal.opStencilFail,this.opDepthFail=e?this.stencilMaterial.opDepthFail:this.stencilGlobal.opDepthFail,this.opStencilDepthPass=e?this.stencilMaterial.opStencilDepthPass:this.stencilGlobal.opStencilDepthPass,this.mask=e?this.stencilMaterial.mask:this.stencilGlobal.mask)}}class yBe extends vX{constructor(e){super(!1),this._cache=e,this.reset()}get zOffset(){return this._zOffset}set zOffset(e){this._zOffset!==e&&(this._zOffset=e,this._isZOffsetDirty=!0,this._cache.setDepthBiasSlopeScale(e))}get zOffsetUnits(){return this._zOffsetUnits}set zOffsetUnits(e){this._zOffsetUnits!==e&&(this._zOffsetUnits=e,this._isZOffsetDirty=!0,this._cache.setDepthBias(e))}get cullFace(){return this._cullFace}set cullFace(e){this._cullFace!==e&&(this._cullFace=e,this._isCullFaceDirty=!0,this._cache.setCullFace(e??1))}get cull(){return this._cull}set cull(e){this._cull!==e&&(this._cull=e,this._isCullDirty=!0,this._cache.setCullEnabled(!!e))}get depthFunc(){return this._depthFunc}set depthFunc(e){this._depthFunc!==e&&(this._depthFunc=e,this._isDepthFuncDirty=!0,this._cache.setDepthCompare(e))}get depthMask(){return this._depthMask}set depthMask(e){this._depthMask!==e&&(this._depthMask=e,this._isDepthMaskDirty=!0,this._cache.setDepthWriteEnabled(e))}get depthTest(){return this._depthTest}set depthTest(e){this._depthTest!==e&&(this._depthTest=e,this._isDepthTestDirty=!0,this._cache.setDepthTestEnabled(e))}get frontFace(){return this._frontFace}set frontFace(e){this._frontFace!==e&&(this._frontFace=e,this._isFrontFaceDirty=!0,this._cache.setFrontFace(e??2))}reset(){super.reset(),this._cache.resetDepthCullingState()}apply(){}}class _J{static IsExternalTexture(e){return e.underlyingResource!==void 0}getClassName(){return"ExternalTexture"}get underlyingResource(){return this._video}constructor(e){this.useMipMaps=!1,this.type=16,this.format=4294967295,this._video=e,this.uniqueId=gr._Counter++}isReady(){return this._video.readyState>=this._video.HAVE_CURRENT_DATA}dispose(){}}class pH{get forceBindGroupCreation(){return this._numExternalTextures>0}get hasFloatOrDepthTextures(){return this._numFloatOrDepthTextures>0}constructor(){this.uniqueId=pH._Counter++,this.updateId=0,this.textureState=0,this.reset()}reset(){this.samplers={},this.textures={},this.isDirty=!0,this._numFloatOrDepthTextures=0,this._numExternalTextures=0}setSampler(e,t){let i=this.samplers[e],s=-1;i?s=i.hashCode:this.samplers[e]=i={sampler:t,hashCode:0},i.sampler=t,i.hashCode=t?e9.GetSamplerHashCode(t):0;const r=s!==i.hashCode;r&&this.updateId++,this.isDirty||(this.isDirty=r)}setTexture(e,t){var n;let i=this.textures[e],s=-1;i?s=((n=i.texture)==null?void 0:n.uniqueId)??-1:this.textures[e]=i={texture:t,isFloatOrDepthTexture:!1,isExternalTexture:!1},i.isExternalTexture&&this._numExternalTextures--,i.isFloatOrDepthTexture&&this._numFloatOrDepthTextures--,t?(i.isFloatOrDepthTexture=t.type===1||t.format>=13&&t.format<=18,i.isExternalTexture=_J.IsExternalTexture(t),i.isFloatOrDepthTexture&&this._numFloatOrDepthTextures++,i.isExternalTexture&&this._numExternalTextures++):(i.isFloatOrDepthTexture=!1,i.isExternalTexture=!1),i.texture=t;const r=s!==((t==null?void 0:t.uniqueId)??-1);r&&this.updateId++,this.isDirty||(this.isDirty=r)}}pH._Counter=0;class yB{isDirty(e){return this._isDirty||this._materialContextUpdateId!==e}resetIsDirty(e){this._isDirty=!1,this._materialContextUpdateId=e}get useInstancing(){return this._useInstancing}set useInstancing(e){this._useInstancing!==e&&(e?(this.indirectDrawBuffer=this._bufferManager.createRawBuffer(20,nn.CopyDst|nn.Indirect|nn.Storage,void 0,"IndirectDrawBuffer"),this._indirectDrawData=new Uint32Array(5),this._indirectDrawData[3]=0,this._indirectDrawData[4]=0):(this.indirectDrawBuffer&&this._bufferManager.releaseBuffer(this.indirectDrawBuffer),this.indirectDrawBuffer=void 0,this._indirectDrawData=void 0),this._useInstancing=e,this._currentInstanceCount=-1)}constructor(e){this._bufferManager=e,this.uniqueId=yB._Counter++,this._useInstancing=!1,this._currentInstanceCount=0,this.reset()}reset(){this.buffers={},this._isDirty=!0,this._materialContextUpdateId=0,this.fastBundle=void 0,this.bindGroups=void 0}setBuffer(e,t){var i;this._isDirty||(this._isDirty=(t==null?void 0:t.uniqueId)!==((i=this.buffers[e])==null?void 0:i.uniqueId)),this.buffers[e]=t}setIndirectData(e,t,i){t===this._currentInstanceCount||!this.indirectDrawBuffer||!this._indirectDrawData||(this._currentInstanceCount=t,this._indirectDrawData[0]=e,this._indirectDrawData[1]=t,this._indirectDrawData[2]=i,this._bufferManager.setRawData(this.indirectDrawBuffer,0,this._indirectDrawData,0,20))}dispose(){this.indirectDrawBuffer&&(this._bufferManager.releaseBuffer(this.indirectDrawBuffer),this.indirectDrawBuffer=void 0,this._indirectDrawData=void 0),this.fastBundle=void 0,this.bindGroups=void 0,this.buffers=void 0}}yB._Counter=0;const MBe=1<<20,EBe=2**35;class MB{constructor(){this.values={}}}class An{static get Statistics(){return{totalCreated:An.NumBindGroupsCreatedTotal,lastFrameCreated:An.NumBindGroupsCreatedLastFrame,lookupLastFrame:An.NumBindGroupsLookupLastFrame,noLookupLastFrame:An.NumBindGroupsNoLookupLastFrame}}static ResetCache(){An._Cache=new MB,An.NumBindGroupsCreatedTotal=0,An.NumBindGroupsCreatedLastFrame=0,An.NumBindGroupsLookupLastFrame=0,An.NumBindGroupsNoLookupLastFrame=0,An._NumBindGroupsCreatedCurrentFrame=0,An._NumBindGroupsLookupCurrentFrame=0,An._NumBindGroupsNoLookupCurrentFrame=0}constructor(e,t,i){this.disabled=!1,this._device=e,this._cacheSampler=t,this._engine=i}endFrame(){An.NumBindGroupsCreatedLastFrame=An._NumBindGroupsCreatedCurrentFrame,An.NumBindGroupsLookupLastFrame=An._NumBindGroupsLookupCurrentFrame,An.NumBindGroupsNoLookupLastFrame=An._NumBindGroupsNoLookupCurrentFrame,An._NumBindGroupsCreatedCurrentFrame=0,An._NumBindGroupsLookupCurrentFrame=0,An._NumBindGroupsNoLookupCurrentFrame=0}getBindGroups(e,t,i){var l,c,u,f,p,m;let s,r=An._Cache;const n=this.disabled||i.forceBindGroupCreation;if(!n){if(!t.isDirty(i.updateId)&&!i.isDirty)return An._NumBindGroupsNoLookupCurrentFrame++,t.bindGroups;for(const _ of e.shaderProcessingContext.bufferNames){const d=(((l=t.buffers[_])==null?void 0:l.uniqueId)??0)+MBe;let h=r.values[d];h||(h=new MB,r.values[d]=h),r=h}for(const _ of e.shaderProcessingContext.samplerNames){const d=((c=i.samplers[_])==null?void 0:c.hashCode)??0;let h=r.values[d];h||(h=new MB,r.values[d]=h),r=h}for(const _ of e.shaderProcessingContext.textureNames){const d=(((f=(u=i.textures[_])==null?void 0:u.texture)==null?void 0:f.uniqueId)??0)+EBe;let h=r.values[d];h||(h=new MB,r.values[d]=h),r=h}s=r.bindGroups}if(t.resetIsDirty(i.updateId),i.isDirty=!1,s)return t.bindGroups=s,An._NumBindGroupsLookupCurrentFrame++,s;s=[],t.bindGroups=s,n||(r.bindGroups=s),An.NumBindGroupsCreatedTotal++,An._NumBindGroupsCreatedCurrentFrame++;const o=e.bindGroupLayouts[i.textureState];for(let _=0;_<e.shaderProcessingContext.bindGroupLayoutEntries.length;_++){const d=e.shaderProcessingContext.bindGroupLayoutEntries[_],h=e.shaderProcessingContext.bindGroupEntries[_];for(let A=0;A<d.length;A++){const S=e.shaderProcessingContext.bindGroupLayoutEntries[_][A],E=e.shaderProcessingContext.bindGroupLayoutEntryInfo[_][S.binding],b=E.nameInArrayOfTexture??E.name;if(S.sampler){const M=i.samplers[b];if(M){const T=M.sampler;if(!T){this._engine.dbgSanityChecks&&de.Error(`Trying to bind a null sampler! entry=${JSON.stringify(S)}, name=${b}, bindingInfo=${JSON.stringify(M,(O,R)=>O==="texture"?"<no dump>":R)}, materialContext.uniqueId=${i.uniqueId}`,50);continue}h[A].resource=this._cacheSampler.getSampler(T,!1,M.hashCode,T.label)}else de.Error(`Sampler "${b}" could not be bound. entry=${JSON.stringify(S)}, materialContext=${JSON.stringify(i,(T,O)=>T==="texture"||T==="sampler"?"<no dump>":O)}`,50)}else if(S.texture||S.storageTexture){const M=i.textures[b];if(M){if(this._engine.dbgSanityChecks&&M.texture===null){de.Error(`Trying to bind a null texture! entry=${JSON.stringify(S)}, bindingInfo=${JSON.stringify(M,(O,R)=>O==="texture"?"<no dump>":R)}, materialContext.uniqueId=${i.uniqueId}`,50);continue}const T=M.texture._hardwareTexture;if(this._engine.dbgSanityChecks&&(!T||S.texture&&!T.view||S.storageTexture&&!T.viewForWriting)){de.Error(`Trying to bind a null gpu texture or view! entry=${JSON.stringify(S)}, name=${b}, bindingInfo=${JSON.stringify(M,(O,R)=>O==="texture"?"<no dump>":R)}, isReady=${(p=M.texture)==null?void 0:p.isReady}, materialContext.uniqueId=${i.uniqueId}`,50);continue}h[A].resource=S.storageTexture?T.viewForWriting:T.view}else de.Error(`Texture "${b}" could not be bound. entry=${JSON.stringify(S)}, materialContext=${JSON.stringify(i,(T,O)=>T==="texture"||T==="sampler"?"<no dump>":O)}`,50)}else if(S.externalTexture){const M=i.textures[b];if(M){if(this._engine.dbgSanityChecks&&M.texture===null){de.Error(`Trying to bind a null external texture! entry=${JSON.stringify(S)}, name=${b}, bindingInfo=${JSON.stringify(M,(O,R)=>O==="texture"?"<no dump>":R)}, materialContext.uniqueId=${i.uniqueId}`,50);continue}const T=M.texture.underlyingResource;if(this._engine.dbgSanityChecks&&!T){de.Error(`Trying to bind a null gpu external texture! entry=${JSON.stringify(S)}, name=${b}, bindingInfo=${JSON.stringify(M,(O,R)=>O==="texture"?"<no dump>":R)}, isReady=${(m=M.texture)==null?void 0:m.isReady}, materialContext.uniqueId=${i.uniqueId}`,50);continue}h[A].resource=this._device.importExternalTexture({source:T})}else de.Error(`Texture "${b}" could not be bound. entry=${JSON.stringify(S)}, materialContext=${JSON.stringify(i,(T,O)=>T==="texture"||T==="sampler"?"<no dump>":O)}`,50)}else if(S.buffer){const M=t.buffers[b];if(M){const T=M.underlyingResource;h[A].resource.buffer=T,h[A].resource.size=M.capacity}else de.Error(`Can't find buffer "${b}". entry=${JSON.stringify(S)}, buffers=${JSON.stringify(t.buffers)}, drawContext.uniqueId=${t.uniqueId}`,50)}}const x=o[_];s[_]=this._device.createBindGroup({layout:x,entries:h})}return s}}An.NumBindGroupsCreatedTotal=0,An.NumBindGroupsCreatedLastFrame=0,An.NumBindGroupsLookupLastFrame=0,An.NumBindGroupsNoLookupLastFrame=0,An._Cache=new MB,An._NumBindGroupsCreatedCurrentFrame=0,An._NumBindGroupsLookupCurrentFrame=0,An._NumBindGroupsNoLookupCurrentFrame=0;const G0e="clearQuadVertexShader",TBe=`uniform depthValue: f32;const pos=array(
vec2f(-1.0,1.0),
vec2f(1.0,1.0),
vec2f(-1.0,-1.0),
vec2f(1.0,-1.0)
);
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
vertexOutputs.position=vec4f(pos[input.vertexIndex],uniforms.depthValue,1.0);
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStoreWGSL[G0e]||(H.ShadersStoreWGSL[G0e]=TBe);const W0e="clearQuadPixelShader",LBe=`uniform color: vec4f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=uniforms.color;}
`;H.ShadersStoreWGSL[W0e]||(H.ShadersStoreWGSL[W0e]=LBe);class IBe{setDepthStencilFormat(e){this._depthTextureFormat=e,this._cacheRenderPipeline.setDepthStencilFormat(e)}setColorFormat(e){this._cacheRenderPipeline.setColorFormat(e)}setMRTAttachments(e,t,i){this._cacheRenderPipeline.setMRT(t,i),this._cacheRenderPipeline.setMRTAttachments(e)}constructor(e,t,i){this._bindGroups={},this._bundleCache={},this._keyTemp=[],this._device=e,this._engine=t,this._cacheRenderPipeline=new t_(this._device,i),this._cacheRenderPipeline.setDepthTestEnabled(!1),this._cacheRenderPipeline.setStencilReadMask(255),this._effect=t.createEffect("clearQuad",[],["color","depthValue"],void 0,void 0,void 0,void 0,void 0,void 0,1)}clear(e,t,i,s,r=1){let n,o=null,l;const c=!!this._engine._currentRenderTarget;if(e)n=e;else{let h=0;this._keyTemp.length=0;for(let A=0;A<this._cacheRenderPipeline.colorFormats.length;++A)this._keyTemp[h++]=cb[this._cacheRenderPipeline.colorFormats[A]??""];const x=cb[this._depthTextureFormat??0];if(this._keyTemp[h]=(t?t.r+t.g*256+t.b*256*256+t.a*256*256*256:0)+(i?2**32:0)+(s?2**33:0)+(this._engine.useReverseDepthBuffer?2**34:0)+(c?2**35:0)+(r>1?2**36:0)+x*2**37,l=this._keyTemp.join("_"),o=this._bundleCache[l],o)return o;n=this._device.createRenderBundleEncoder({label:"clearQuadRenderBundle",colorFormats:this._cacheRenderPipeline.colorFormats,depthStencilFormat:this._depthTextureFormat,sampleCount:rn.GetSample(r)})}this._cacheRenderPipeline.setDepthWriteEnabled(!!i),this._cacheRenderPipeline.setStencilEnabled(!!s&&!!this._depthTextureFormat&&rn.HasStencilAspect(this._depthTextureFormat)),this._cacheRenderPipeline.setStencilWriteMask(s?255:0),this._cacheRenderPipeline.setStencilCompare(s?519:512),this._cacheRenderPipeline.setStencilPassOp(s?7681:7680),this._cacheRenderPipeline.setWriteMask(t?15:0);const u=this._cacheRenderPipeline.getRenderPipeline(7,this._effect,r),f=this._effect._pipelineContext;t&&this._effect.setDirectColor4("color",t),this._effect.setFloat("depthValue",this._engine.useReverseDepthBuffer?this._engine._clearReverseDepthValue:this._engine._clearDepthValue),f.uniformBuffer.update();const p=c?this._engine._ubInvertY:this._engine._ubDontInvertY,m=f.uniformBuffer.getBuffer(),_=m.uniqueId+"-"+p.uniqueId;let d=this._bindGroups[_];if(!d){const h=f.bindGroupLayouts[0];d=this._bindGroups[_]=[],d.push(this._device.createBindGroup({label:`clearQuadBindGroup0-${_}`,layout:h[0],entries:[]})),h3._SimplifiedKnownBindings||d.push(this._device.createBindGroup({label:`clearQuadBindGroup1-${_}`,layout:h[1],entries:[]})),d.push(this._device.createBindGroup({label:`clearQuadBindGroup${h3._SimplifiedKnownBindings?1:2}-${_}`,layout:h[h3._SimplifiedKnownBindings?1:2],entries:[{binding:0,resource:{buffer:p.underlyingResource,size:p.capacity}},{binding:1,resource:{buffer:m.underlyingResource,size:m.capacity}}]}))}n.setPipeline(u);for(let h=0;h<d.length;++h)n.setBindGroup(h,d[h]);return n.draw(4,1,0,0),e||(o=n.finish(),this._bundleCache[l]=o),o}}class vJ{constructor(e,t,i,s){this.x=Math.floor(e),this.y=Math.floor(t),this.w=Math.floor(i),this.h=Math.floor(s)}run(e){e.setViewport(this.x,this.y,this.w,this.h,0,1)}clone(){return new vJ(this.x,this.y,this.w,this.h)}}class AJ{constructor(e,t,i,s){this.x=e,this.y=t,this.w=i,this.h=s}run(e){e.setScissorRect(this.x,this.y,this.w,this.h)}clone(){return new AJ(this.x,this.y,this.w,this.h)}}class mH{constructor(e){this.ref=e}run(e){e.setStencilReference(this.ref)}clone(){return new mH(this.ref)}}class CJ{constructor(e){this.color=e}run(e){e.setBlendConstant(this.color)}clone(){return new CJ(this.color)}}class xJ{constructor(e){this.query=e}run(e){e.beginOcclusionQuery(this.query)}clone(){return new xJ(this.query)}}class bJ{constructor(){}run(e){e.endOcclusionQuery()}clone(){return new bJ}}class SJ{constructor(){this.bundles=[]}run(e){e.executeBundles(this.bundles)}clone(){const e=new SJ;return e.bundles=this.bundles,e}}class yJ{constructor(e){this.numDrawCalls=0,this._device=e,this._list=new Array(10),this._listLength=0}addBundle(e){if(!this._currentItemIsBundle){const t=new SJ;this._list[this._listLength++]=t,this._currentBundleList=t.bundles,this._currentItemIsBundle=!0}e&&this._currentBundleList.push(e)}_finishBundle(){this._currentItemIsBundle&&this._bundleEncoder&&(this._currentBundleList.push(this._bundleEncoder.finish()),this._bundleEncoder=void 0,this._currentItemIsBundle=!1)}addItem(e){this._finishBundle(),this._list[this._listLength++]=e,this._currentItemIsBundle=!1}getBundleEncoder(e,t,i){return this._currentItemIsBundle||(this.addBundle(),this._bundleEncoder=this._device.createRenderBundleEncoder({colorFormats:e,depthStencilFormat:t,sampleCount:rn.GetSample(i)})),this._bundleEncoder}close(){this._finishBundle()}run(e){this.close();for(let t=0;t<this._listLength;++t)this._list[t].run(e)}reset(){this._listLength=0,this._currentItemIsBundle=!1,this.numDrawCalls=0}clone(){this.close();const e=new yJ(this._device);e._list=new Array(this._listLength),e._listLength=this._listLength,e.numDrawCalls=this.numDrawCalls;for(let t=0;t<this._listLength;++t)e._list[t]=this._list[t].clone();return e}}class H0e{get querySet(){return this._querySet}constructor(e,t,i,s,r,n=!0,o){this._dstBuffers=[],this._engine=e,this._device=s,this._bufferManager=r,this._count=t,this._canUseMultipleBuffers=n,this._querySet=s.createQuerySet({label:o??"QuerySet",type:i,count:t}),this._queryBuffer=r.createRawBuffer(8*t,nn.QueryResolve|nn.CopySrc,void 0,"QueryBuffer"),n||this._dstBuffers.push(this._bufferManager.createRawBuffer(8*this._count,nn.MapRead|nn.CopyDst,void 0,"QueryBufferNoMultipleBuffers"))}_getBuffer(e,t){if(!this._canUseMultipleBuffers&&this._dstBuffers.length===0)return null;const i=this._device.createCommandEncoder();let s;return this._dstBuffers.length===0?s=this._bufferManager.createRawBuffer(8*this._count,nn.MapRead|nn.CopyDst,void 0,"QueryBufferAdditionalBuffer"):(s=this._dstBuffers[this._dstBuffers.length-1],this._dstBuffers.length--),i.resolveQuerySet(this._querySet,e,t,this._queryBuffer,0),i.copyBufferToBuffer(this._queryBuffer,0,s,0,8*t),this._device.queue.submit([i.finish()]),s}async readValues(e=0,t=1){const i=this._getBuffer(e,t);if(i===null)return null;const s=this._engine.uniqueId;return i.mapAsync(1).then(()=>{const r=new BigUint64Array(i.getMappedRange()).slice();return i.unmap(),this._dstBuffers[this._dstBuffers.length]=i,r},r=>{if(this._engine.isDisposed||this._engine.uniqueId!==s)return null;throw r})}async readValue(e=0){const t=this._getBuffer(e,1);if(t===null)return null;const i=this._engine.uniqueId;return t.mapAsync(1).then(()=>{const s=new BigUint64Array(t.getMappedRange()),r=Number(s[0]);return t.unmap(),this._dstBuffers[this._dstBuffers.length]=t,r},s=>{if(this._engine.isDisposed||this._engine.uniqueId!==i)return 0;throw s})}async readTwoValuesAndSubtract(e=0){const t=this._getBuffer(e,2);if(t===null)return null;const i=this._engine.uniqueId;return t.mapAsync(1).then(()=>{const s=new BigUint64Array(t.getMappedRange()),r=Number(s[1]-s[0]);return t.unmap(),this._dstBuffers[this._dstBuffers.length]=t,r},s=>{if(this._engine.isDisposed||this._engine.uniqueId!==i)return 0;throw s})}dispose(){this._querySet.destroy(),this._bufferManager.releaseBuffer(this._queryBuffer);for(let e=0;e<this._dstBuffers.length;++e)this._bufferManager.releaseBuffer(this._dstBuffers[e])}}class PBe{get gpuFrameTimeCounter(){return this._gpuFrameTimeCounter}constructor(e,t,i){this._enabled=!1,this._gpuFrameTimeCounter=new wo,this._measureDurationState=0,this._engine=e,this._device=t,this._bufferManager=i}get enable(){return this._enabled}set enable(e){if(this._enabled!==e)if(this._enabled=e,this._measureDurationState=0,e)try{this._measureDuration=new OBe(this._engine,this._device,this._bufferManager,2e3,"QuerySet_TimestampQuery")}catch(t){this._enabled=!1,de.Error(`Could not create a WebGPUDurationMeasure!
Error: `+t.message+`
Make sure timestamp query is supported and enabled in your browser.`);return}else this._measureDuration.dispose()}startFrame(e){this._enabled&&this._measureDurationState===0&&(this._measureDuration.start(e),this._measureDurationState=1)}endFrame(e){this._measureDurationState===1&&(this._measureDurationState=2,this._measureDuration.stop(e).then(t=>{t!==null&&t>=0&&(this._gpuFrameTimeCounter.fetchNewFrame(),this._gpuFrameTimeCounter.addCount(t,!0)),this._measureDurationState=0}))}startPass(e,t){this._enabled?this._measureDuration.startPass(e,t):e.timestampWrites=void 0}endPass(e,t){if(!this._enabled||!t)return;const i=this._engine.frameId;this._measureDuration.stopPass(e).then(s=>{t._addDuration(i,s!==null&&s>0?s:0)})}dispose(){var e;(e=this._measureDuration)==null||e.dispose()}}class OBe{constructor(e,t,i,s=2,r){this._count=s,this._querySet=new H0e(e,s,"timestamp",t,i,!0,r)}start(e){var t;(t=e.writeTimestamp)==null||t.call(e,this._querySet.querySet,0)}async stop(e){var t;return(t=e.writeTimestamp)==null||t.call(e,this._querySet.querySet,1),e.writeTimestamp?this._querySet.readTwoValuesAndSubtract(0):0}startPass(e,t){if(t+3>this._count)throw new Error("WebGPUDurationMeasure: index out of range ("+t+")");e.timestampWrites={querySet:this._querySet.querySet,beginningOfPassWriteIndex:t+2,endOfPassWriteIndex:t+3}}async stopPass(e){return this._querySet.readTwoValuesAndSubtract(e+2)}dispose(){this._querySet.dispose()}}class RBe{get querySet(){return this._querySet.querySet}get hasQueries(){return this._currentTotalIndices!==this._availableIndices.length}canBeginQuery(e){if(this._frameQuerySetIsDirty===this._engine.frameId||this._queryFrameId[e]===this._engine.frameId)return!1;const t=this._engine._getCurrentRenderPassWrapper().renderPassDescriptor.occlusionQuerySet!==void 0;return t&&(this._queryFrameId[e]=this._engine.frameId),t}constructor(e,t,i,s=50,r=100){this._availableIndices=[],this._frameQuerySetIsDirty=-1,this._queryFrameId=[],this._engine=e,this._device=t,this._bufferManager=i,this._frameLastBuffer=-1,this._currentTotalIndices=0,this._countIncrement=r,this._allocateNewIndices(s)}createQuery(){this._availableIndices.length===0&&this._allocateNewIndices();const e=this._availableIndices[this._availableIndices.length-1];return this._availableIndices.length--,e}deleteQuery(e){this._availableIndices[this._availableIndices.length]=e}isQueryResultAvailable(e){return this._retrieveQueryBuffer(),!!this._lastBuffer&&e<this._lastBuffer.length}getQueryResult(e){var t;return Number(((t=this._lastBuffer)==null?void 0:t[e])??-1)}_retrieveQueryBuffer(){this._lastBuffer&&this._frameLastBuffer===this._engine.frameId||this._frameLastBuffer!==this._engine.frameId&&(this._frameLastBuffer=this._engine.frameId,this._querySet.readValues(0,this._currentTotalIndices).then(e=>{this._lastBuffer=e}))}_allocateNewIndices(e){e=e??this._countIncrement,this._delayQuerySetDispose();for(let t=0;t<e;++t)this._availableIndices.push(this._currentTotalIndices+t);this._currentTotalIndices+=e,this._querySet=new H0e(this._engine,this._currentTotalIndices,"occlusion",this._device,this._bufferManager,!1,"QuerySet_OcclusionQuery_count_"+this._currentTotalIndices),this._frameQuerySetIsDirty=this._engine.frameId}_delayQuerySetDispose(){const e=this._querySet;e&&setTimeout(()=>e.dispose,1e3)}dispose(){var e;(e=this._querySet)==null||e.dispose(),this._availableIndices.length=0}}class y0{async initTwgsl(e){if(!y0._Twgsl)return e=e||{},e={...y0._TWgslDefaultOptions,...e},e.twgsl?(y0._Twgsl=e.twgsl,Promise.resolve()):(e.jsPath&&e.wasmPath&&await Le.LoadBabylonScriptAsync(e.jsPath),self.twgsl?(y0._Twgsl=await self.twgsl(Le.GetBabylonScriptURL(e.wasmPath)),Promise.resolve()):Promise.reject("twgsl is not available."))}convertSpirV2WGSL(e,t=!1){const i=y0._Twgsl.convertSpirV2WGSL(e,y0.DisableUniformityAnalysis||t);return y0.ShowWGSLShaderCode&&(de.Log(i),de.Log("***********************************************")),y0.DisableUniformityAnalysis||t?`diagnostic(off, derivative_uniformity);
`+i:i}}y0._TWgslDefaultOptions={jsPath:`${Le._DefaultCdnUrl}/twgsl/twgsl.js`,wasmPath:`${Le._DefaultCdnUrl}/twgsl/twgsl.wasm`},y0.ShowWGSLShaderCode=!1,y0.DisableUniformityAnalysis=!1,y0._Twgsl=null;class DBe{constructor(e,t,i){this._record=!1,this._play=!1,this._playBundleListIndex=0,this._allBundleLists=[],this._enabled=!1,this.showDebugLogs=!1,this._engine=e,this._mode=t,this._bundleList=i}get enabled(){return this._enabled}get play(){return this._play}get record(){return this._record}set enabled(e){this._log("enabled",`activate=${e}, mode=${this._mode}`),this._allBundleLists.length=0,this._record=this._enabled=e,this._play=!1,e&&(this._modeSaved=this._mode,this._mode=0)}get mode(){return this._mode}set mode(e){this._record?this._modeSaved=e:this._mode=e}endRenderPass(e){if(!this._record&&!this._play)return!1;let t=null;return this._record?(t=this._bundleList.clone(),this._allBundleLists.push(t),this._bundleList.reset(),this._log("endRenderPass",`bundleList recorded at position #${this._allBundleLists.length-1}`)):this._playBundleListIndex>=this._allBundleLists.length?this._log("endRenderPass",`empty or out-of-sync bundleList (_allBundleLists.length=${this._allBundleLists.length}, playBundleListIndex=${this._playBundleListIndex})`):(this._log("endRenderPass",`run bundleList #${this._playBundleListIndex}`),t=this._allBundleLists[this._playBundleListIndex++]),t&&(t.run(e),this._mode===1&&this._engine._reportDrawCall(t.numDrawCalls)),!0}endFrame(){this._record&&(this._record=!1,this._play=!0,this._mode=this._modeSaved,this._log("endFrame","bundles recorded, switching to play mode")),this._playBundleListIndex=0}reset(){this._log("reset","called"),this._record&&(this._mode=this._modeSaved),this.enabled=!1,this.enabled=!0}_log(e,t){this.showDebugLogs&&de.Log(`[Frame: ${this._engine.frameId}] WebGPUSnapshotRendering:${e} - ${t}`)}}class NBe extends _J{constructor(e){super(e)}}Ea.prototype.createRawTexture=function(a,e,t,i,s,r,n,o=null,l=0,c=0,u=!1){const f=new gr(this,3);return f.baseWidth=e,f.baseHeight=t,f.width=e,f.height=t,f.format=i,f.generateMipMaps=s,f.samplingMode=n,f.invertY=r,f._compression=o,f.type=l,f._creationFlags=c,f._useSRGBBuffer=u,this._doNotHandleContextLost||(f._bufferView=a),this._textureHelper.createGPUTextureForInternalTexture(f,e,t,void 0,c),this.updateRawTexture(f,a,i,r,o,l,u),this._internalTexturesCache.push(f),f},Ea.prototype.updateRawTexture=function(a,e,t,i,s=null,r=0,n=!1){if(a){if(this._doNotHandleContextLost||(a._bufferView=e,a.invertY=i,a._compression=s,a._useSRGBBuffer=n),e){const o=a._hardwareTexture;t===4&&(e=EB(e,a.width,a.height,r));const c=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);this._textureHelper.updateTexture(c,a,a.width,a.height,a.depth,o.format,0,0,i,!1,0,0),a.generateMipMaps&&this._generateMipmaps(a,this._uploadEncoder)}a.isReady=!0}},Ea.prototype.createRawCubeTexture=function(a,e,t,i,s,r,n,o=null){const l=new gr(this,8);if(i===1&&!this._caps.textureFloatLinearFiltering?(s=!1,n=1,de.Warn("Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.")):i===2&&!this._caps.textureHalfFloatLinearFiltering?(s=!1,n=1,de.Warn("Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.")):i===1&&!this._caps.textureFloatRender?(s=!1,de.Warn("Render to float textures is not supported. Mipmap generation forced to false.")):i===2&&!this._caps.colorBufferFloat&&(s=!1,de.Warn("Render to half float textures is not supported. Mipmap generation forced to false.")),l.isCube=!0,l._originalFormat=t,l.format=t===4?5:t,l.type=i,l.generateMipMaps=s,l.width=e,l.height=e,l.samplingMode=n,this._doNotHandleContextLost||(l._bufferViewArray=a),l.invertY=r,l._compression=o,l._cachedWrapU=0,l._cachedWrapV=0,this._textureHelper.createGPUTextureForInternalTexture(l),t===4){const c=l._hardwareTexture;c._originalFormatIsRGB=!0}return a&&this.updateRawCubeTexture(l,a,t,i,r,o),l.isReady=!0,l},Ea.prototype.updateRawCubeTexture=function(a,e,t,i,s,r=null){a._bufferViewArray=e,a.invertY=s,a._compression=r;const n=a._hardwareTexture,o=n._originalFormatIsRGB,l=[0,2,4,1,3,5],c=[];for(let u=0;u<e.length;++u){let f=e[l[u]];o&&(f=EB(f,a.width,a.height,i)),c.push(new Uint8Array(f.buffer,f.byteOffset,f.byteLength))}this._textureHelper.updateCubeTextures(c,n.underlyingResource,a.width,a.height,n.format,s,!1,0,0),a.generateMipMaps&&this._generateMipmaps(a,this._uploadEncoder),a.isReady=!0},Ea.prototype.createRawCubeTextureFromUrl=function(a,e,t,i,s,r,n,o,l=null,c=null,u=3,f=!1){const p=this.createRawCubeTexture(null,t,i,s,!r,f,u,null);e==null||e.addPendingData(p),p.url=a,p.isReady=!1,this._internalTexturesCache.push(p);const m=(d,h)=>{e==null||e.removePendingData(p),c&&d&&c(d.status+" "+d.statusText,h)},_=d=>{const h=p.width,x=n(d);if(x){if(o){const A=i===4,S=o(x),E=p._hardwareTexture,b=[0,1,2,3,4,5];for(let M=0;M<S.length;M++){const T=h>>M,O=[];for(let R=0;R<6;R++){let I=S[M][b[R]];A&&(I=EB(I,T,T,s)),O.push(new Uint8Array(I.buffer,I.byteOffset,I.byteLength))}this._textureHelper.updateCubeTextures(O,E.underlyingResource,T,T,E.format,f,!1,0,0)}}else this.updateRawCubeTexture(p,x,i,s,f);p.isReady=!0,e==null||e.removePendingData(p),l&&l()}};return this._loadFile(a,d=>{_(d)},void 0,e==null?void 0:e.offlineProvider,!0,m),p},Ea.prototype.createRawTexture3D=function(a,e,t,i,s,r,n,o,l=null,c=0,u=0){const p=new gr(this,10);return p.baseWidth=e,p.baseHeight=t,p.baseDepth=i,p.width=e,p.height=t,p.depth=i,p.format=s,p.type=c,p.generateMipMaps=r,p.samplingMode=o,p.is3D=!0,p._creationFlags=u,this._doNotHandleContextLost||(p._bufferView=a),this._textureHelper.createGPUTextureForInternalTexture(p,e,t,void 0,u),this.updateRawTexture3D(p,a,s,n,l,c),this._internalTexturesCache.push(p),p},Ea.prototype.updateRawTexture3D=function(a,e,t,i,s=null,r=0){if(this._doNotHandleContextLost||(a._bufferView=e,a.format=t,a.invertY=i,a._compression=s),e){const n=a._hardwareTexture;t===4&&(e=EB(e,a.width,a.height,r));const l=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);this._textureHelper.updateTexture(l,a,a.width,a.height,a.depth,n.format,0,0,i,!1,0,0),a.generateMipMaps&&this._generateMipmaps(a,this._uploadEncoder)}a.isReady=!0},Ea.prototype.createRawTexture2DArray=function(a,e,t,i,s,r,n,o,l=null,c=0,u=0){const p=new gr(this,11);return p.baseWidth=e,p.baseHeight=t,p.baseDepth=i,p.width=e,p.height=t,p.depth=i,p.format=s,p.type=c,p.generateMipMaps=r,p.samplingMode=o,p.is2DArray=!0,p._creationFlags=u,this._doNotHandleContextLost||(p._bufferView=a),this._textureHelper.createGPUTextureForInternalTexture(p,e,t,i,u),this.updateRawTexture2DArray(p,a,s,n,l,c),this._internalTexturesCache.push(p),p},Ea.prototype.updateRawTexture2DArray=function(a,e,t,i,s=null,r=0){if(this._doNotHandleContextLost||(a._bufferView=e,a.format=t,a.invertY=i,a._compression=s),e){const n=a._hardwareTexture;t===4&&(e=EB(e,a.width,a.height,r));const l=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);this._textureHelper.updateTexture(l,a,a.width,a.height,a.depth,n.format,0,0,i,!1,0,0),a.generateMipMaps&&this._generateMipmaps(a,this._uploadEncoder)}a.isReady=!0};function EB(a,e,t,i){let s,r=1;i===1?s=new Float32Array(e*t*4):i===2?(s=new Uint16Array(e*t*4),r=15360):i===7?s=new Uint32Array(e*t*4):s=new Uint8Array(e*t*4);for(let n=0;n<e;n++)for(let o=0;o<t;o++){const l=(o*e+n)*3,c=(o*e+n)*4;s[c+0]=a[l+0],s[c+1]=a[l+1],s[c+2]=a[l+2],s[c+3]=r}return s}Ea.prototype._readTexturePixels=function(a,e,t,i=-1,s=0,r=null,n=!0,o=!1,l=0,c=0){const u=a._hardwareTexture;return n&&this.flushFramebuffer(),this._textureHelper.readPixels(u.underlyingResource,l,c,e,t,u.format,i,s,r,o)},Ea.prototype._readTexturePixelsSync=function(){throw"_readTexturePixelsSync is unsupported in WebGPU!"},Ea.prototype._createDepthStencilCubeTexture=function(a,e){const t=new gr(this,e.generateStencil?12:14);t.isCube=!0,t.label=e.label;const i={bilinearFiltering:!1,comparisonFunction:0,samples:1,depthTextureFormat:e.generateStencil?13:14,...e};t.format=i.depthTextureFormat,this._setupDepthStencilTexture(t,a,i.bilinearFiltering,i.comparisonFunction,i.samples),this._textureHelper.createGPUTextureForInternalTexture(t);const s=t._hardwareTexture;return t.type=rn.GetTextureTypeFromFormat(s.format),this._internalTexturesCache.push(t),t},Ea.prototype.createCubeTexture=function(a,e,t,i,s=null,r=null,n,o=null,l=!1,c=0,u=0,f=null,p,m=!1,_=null){return this.createCubeTextureBase(a,e,t,!!i,s,r,n,o,l,c,u,f,null,(d,h)=>{const x=h,A=x[0].width,S=A;this._setCubeMapTextureParams(d,!i),d.format=n??-1;const E=this._textureHelper.createGPUTextureForInternalTexture(d,A,S);this._textureHelper.updateCubeTextures(x,E.underlyingResource,A,S,E.format,!1,!1,0,0),i||this._generateMipmaps(d,this._uploadEncoder),d.isReady=!0,d.onLoadedObservable.notifyObservers(d),d.onLoadedObservable.clear(),s&&s()},!!m,_)},Ea.prototype._setCubeMapTextureParams=function(a,e,t){a.samplingMode=e?3:2,a._cachedWrapU=0,a._cachedWrapV=0,t&&(a._maxLodLevel=t)},Ea.prototype.generateMipMapsForCubemap=function(a){var e;a.generateMipMaps&&((e=a._hardwareTexture)!=null&&e.underlyingResource||this._textureHelper.createGPUTextureForInternalTexture(a),this._generateMipmaps(a))};class Y0e extends ww{constructor(e,t,i,s,r){super(e,t,i,s,r),s.enableGPUTimingMeasurements&&(this.gpuTimeInFrame=new gQ)}}Ea.prototype._createHardwareRenderTargetWrapper=function(a,e,t){const i=new Y0e(a,e,t,this);return this._renderTargetWrapperCache.push(i),i},Ea.prototype.createRenderTargetTexture=function(a,e){var r;const t=this._createHardwareRenderTargetWrapper(!1,!1,a),i={};e!==void 0&&typeof e=="object"?(i.generateMipMaps=e.generateMipMaps,i.generateDepthBuffer=e.generateDepthBuffer===void 0?!0:e.generateDepthBuffer,i.generateStencilBuffer=i.generateDepthBuffer&&e.generateStencilBuffer,i.samplingMode=e.samplingMode===void 0?3:e.samplingMode,i.creationFlags=e.creationFlags??0,i.noColorAttachment=!!e.noColorAttachment,i.colorAttachment=e.colorAttachment,i.samples=e.samples,i.label=e.label,i.format=e.format,i.type=e.type):(i.generateMipMaps=e,i.generateDepthBuffer=!0,i.generateStencilBuffer=!1,i.samplingMode=3,i.creationFlags=0,i.noColorAttachment=!1);const s=i.colorAttachment||(i.noColorAttachment?null:this._createInternalTexture(a,i,!0,5));return t.label=i.label??"RenderTargetWrapper",t._samples=((r=i.colorAttachment)==null?void 0:r.samples)??i.samples??1,t._generateDepthBuffer=i.generateDepthBuffer,t._generateStencilBuffer=!!i.generateStencilBuffer,t.setTextures(s),(t._generateDepthBuffer||t._generateStencilBuffer)&&t.createDepthStencilTexture(0,!1,t._generateStencilBuffer,t.samples,i.generateStencilBuffer?13:14,i.label?i.label+"-DepthStencil":void 0),s&&!i.colorAttachment&&(e!==void 0&&typeof e=="object"&&e.createMipMaps&&!i.generateMipMaps&&(s.generateMipMaps=!0),this._textureHelper.createGPUTextureForInternalTexture(s,void 0,void 0,void 0,i.creationFlags),e!==void 0&&typeof e=="object"&&e.createMipMaps&&!i.generateMipMaps&&(s.generateMipMaps=!1)),t},Ea.prototype._createDepthStencilTexture=function(a,e,t){const i={bilinearFiltering:!1,comparisonFunction:0,samples:1,depthTextureFormat:e.generateStencil?13:14,...e},s=zT(i.depthTextureFormat);t._depthStencilTextureWithStencil=s;const r=new gr(this,s?12:14);return r.label=e.label,r.format=i.depthTextureFormat,r.type=cde(r.format),this._setupDepthStencilTexture(r,a,i.bilinearFiltering,i.comparisonFunction,i.samples),this._textureHelper.createGPUTextureForInternalTexture(r),this._internalTexturesCache.push(r),r},Ea.prototype._setupDepthStencilTexture=function(a,e,t,i,s=1){const r=e.width??e,n=e.height??e,o=e.layers||0,l=e.depth||0;a.baseWidth=r,a.baseHeight=n,a.width=r,a.height=n,a.is2DArray=o>0,a.is3D=l>0,a.depth=o||l,a.isReady=!0,a.samples=s,a.generateMipMaps=!1,a.samplingMode=t?2:1,a.type=1,a._comparisonFunction=i,a._cachedWrapU=0,a._cachedWrapV=0},Ea.prototype.updateRenderTargetTextureSampleCount=function(a,e){return!a||!a.texture||a.samples===e||(e=Math.min(e,this.getCaps().maxMSAASamples),this._textureHelper.createMSAATexture(a.texture,e),a._depthStencilTexture&&(this._textureHelper.createMSAATexture(a._depthStencilTexture,e),a._depthStencilTexture.samples=e),a._samples=e,a.texture.samples=e),e},Ea.prototype.setDepthStencilTexture=function(a,e,t,i){!t||!t.depthStencilTexture?this._setTexture(a,null,void 0,void 0,i):this._setTexture(a,t,!1,!0,i)},Ea.prototype.createRenderTargetCubeTexture=function(a,e){const t=this._createHardwareRenderTargetWrapper(!1,!0,a),i={generateMipMaps:!0,generateDepthBuffer:!0,generateStencilBuffer:!1,type:0,samplingMode:3,format:5,samples:1,...e};i.generateStencilBuffer=i.generateDepthBuffer&&i.generateStencilBuffer,t.label=i.label??"RenderTargetWrapper",t._generateDepthBuffer=i.generateDepthBuffer,t._generateStencilBuffer=i.generateStencilBuffer;const s=new gr(this,5);return s.width=a,s.height=a,s.depth=0,s.isReady=!0,s.isCube=!0,s.samples=i.samples,s.generateMipMaps=i.generateMipMaps,s.samplingMode=i.samplingMode,s.type=i.type,s.format=i.format,this._internalTexturesCache.push(s),t.setTextures(s),(t._generateDepthBuffer||t._generateStencilBuffer)&&t.createDepthStencilTexture(0,i.samplingMode===void 0||i.samplingMode===2||i.samplingMode===2||i.samplingMode===3||i.samplingMode===3||i.samplingMode===5||i.samplingMode===6||i.samplingMode===7||i.samplingMode===11,t._generateStencilBuffer,t.samples),e&&e.createMipMaps&&!i.generateMipMaps&&(s.generateMipMaps=!0),this._textureHelper.createGPUTextureForInternalTexture(s),e&&e.createMipMaps&&!i.generateMipMaps&&(s.generateMipMaps=!1),t},Ea.prototype.getGPUFrameTimeCounter=function(){return this._timestampQuery.gpuFrameTimeCounter},Ea.prototype.captureGPUFrameTime=function(a){this._timestampQuery.enable=a&&!!this._caps.timerQuery},Ea.prototype.createQuery=function(){return this._occlusionQuery.createQuery()},Ea.prototype.deleteQuery=function(a){return this._occlusionQuery.deleteQuery(a),this},Ea.prototype.isQueryResultAvailable=function(a){return this._occlusionQuery.isQueryResultAvailable(a)},Ea.prototype.getQueryResult=function(a){return this._occlusionQuery.getQueryResult(a)},Ea.prototype.beginOcclusionQuery=function(a,e){var t;if(this.compatibilityMode){if(this._occlusionQuery.canBeginQuery(e))return(t=this._currentRenderPass)==null||t.beginOcclusionQuery(e),!0}else return this._bundleList.addItem(new xJ(e)),!0;return!1},Ea.prototype.endOcclusionQuery=function(){var a;return this.compatibilityMode?(a=this._currentRenderPass)==null||a.endOcclusionQuery():this._bundleList.addItem(new bJ),this};const X0e={label:"TextureView_SwapChain_ResolveTarget",dimension:"2d",format:void 0,mipLevelCount:1,arrayLayerCount:1},Z0e={label:"TextureView_SwapChain",dimension:"2d",format:void 0,mipLevelCount:1,arrayLayerCount:1},wBe=new St;class un extends Ea{get snapshotRenderingMode(){return this._snapshotRendering.mode}set snapshotRenderingMode(e){this._snapshotRendering.mode=e}snapshotRenderingReset(){this._snapshotRendering.reset()}get snapshotRendering(){return this._snapshotRendering.enabled}set snapshotRendering(e){this._snapshotRendering.enabled=e}get disableCacheSamplers(){return this._cacheSampler?this._cacheSampler.disabled:!1}set disableCacheSamplers(e){this._cacheSampler&&(this._cacheSampler.disabled=e)}get disableCacheRenderPipelines(){return this._cacheRenderPipeline?this._cacheRenderPipeline.disabled:!1}set disableCacheRenderPipelines(e){this._cacheRenderPipeline&&(this._cacheRenderPipeline.disabled=e)}get disableCacheBindGroups(){return this._cacheBindGroups?this._cacheBindGroups.disabled:!1}set disableCacheBindGroups(e){this._cacheBindGroups&&(this._cacheBindGroups.disabled=e)}areAllEffectsReady(){return!0}getFontOffset(e){return BZ(e)}static get IsSupportedAsync(){return navigator.gpu?navigator.gpu.requestAdapter().then(e=>!!e,()=>!1).catch(()=>!1):Promise.resolve(!1)}static get IsSupported(){return de.Warn("You must call IsSupportedAsync for WebGPU!"),!1}get supportsUniformBuffers(){return!0}get supportedExtensions(){return this._adapterSupportedExtensions}get enabledExtensions(){return this._deviceEnabledExtensions}get supportedLimits(){return this._adapterSupportedLimits}get currentLimits(){return this._deviceLimits}get description(){return this.name+this.version}get version(){return 1}getInfo(){return{vendor:this._adapterInfo.vendor||"unknown vendor",renderer:this._adapterInfo.architecture||"unknown renderer",version:this._adapterInfo.description||"unknown version"}}get compatibilityMode(){return this._compatibilityMode}set compatibilityMode(e){this._compatibilityMode=e}get currentSampleCount(){return this._currentRenderTarget?this._currentRenderTarget.samples:this._mainPassSampleCount}static CreateAsync(e,t={}){const i=new un(e,t);return new Promise(s=>{i.initAsync(t.glslangOptions,t.twgslOptions).then(()=>s(i))})}constructor(e,t={}){if(super(t.antialias??!0,t),this.uniqueId=-1,this._uploadEncoderDescriptor={label:"upload"},this._renderEncoderDescriptor={label:"render"},this._clearDepthValue=1,this._clearReverseDepthValue=0,this._clearStencilValue=0,this._defaultSampleCount=4,this._glslang=null,this._tintWASM=null,this._glslangAndTintAreFullyLoaded=!1,this._adapterInfo={vendor:"",architecture:"",device:"",description:""},this._compiledComputeEffects={},this._counters={numEnableEffects:0,numEnableDrawWrapper:0,numBundleCreationNonCompatMode:0,numBundleReuseNonCompatMode:0},this.countersLastFrame={numEnableEffects:0,numEnableDrawWrapper:0,numBundleCreationNonCompatMode:0,numBundleReuseNonCompatMode:0},this.numMaxUncapturedErrors=20,this.scenes=[],this._virtualScenes=new Array,this._commandBuffers=[null,null],this._mainRenderPassWrapper={renderPassDescriptor:null,colorAttachmentViewDescriptor:null,depthAttachmentViewDescriptor:null,colorAttachmentGPUTextures:[],depthTextureFormat:void 0},this._rttRenderPassWrapper={renderPassDescriptor:null,colorAttachmentViewDescriptor:null,depthAttachmentViewDescriptor:null,colorAttachmentGPUTextures:[],depthTextureFormat:void 0},this._pendingDebugCommands=[],this._currentOverrideVertexBuffers=null,this._currentIndexBuffer=null,this._colorWriteLocal=!0,this._forceEnableEffect=!1,this.isNDCHalfZRange=!0,this.hasOriginBottomLeft=!1,this._workingGlslangAndTintPromise=null,this._viewportsCurrent={x:0,y:0,w:0,h:0},this._scissorsCurrent={x:0,y:0,w:0,h:0},this._scissorCached={x:0,y:0,z:0,w:0},this._stencilRefsCurrent=-1,this._blendColorsCurrent=[null,null,null,null],this._performanceMonitor=new PZ,this._name="WebGPU",this._drawCalls=new wo,t.deviceDescriptor=t.deviceDescriptor||{},t.enableGPUDebugMarkers=t.enableGPUDebugMarkers??!1,de.Log(`Babylon.js v${dt.Version} - ${this.description} engine`),!navigator.gpu){de.Error("WebGPU is not supported by your browser.");return}t.swapChainFormat=t.swapChainFormat||navigator.gpu.getPreferredCanvasFormat(),this._isWebGPU=!0,this._shaderPlatformName="WEBGPU",this._renderingCanvas=e,this._options=t,this._mainPassSampleCount=t.antialias?this._defaultSampleCount:1,navigator&&navigator.userAgent&&this._setupMobileChecks(),this._sharedInit(this._renderingCanvas),this._shaderProcessor=new eBe,this._shaderProcessorWGSL=new lBe}prepareGlslangAndTintAsync(){return this._workingGlslangAndTintPromise||(this._workingGlslangAndTintPromise=new Promise(e=>{var t;this._initGlslang(this._glslangOptions??((t=this._options)==null?void 0:t.glslangOptions)).then(i=>{var s;this._glslang=i,this._tintWASM=new y0,this._tintWASM.initTwgsl(this._twgslOptions??((s=this._options)==null?void 0:s.twgslOptions)).then(()=>{this._glslangAndTintAreFullyLoaded=!0,e()})})})),this._workingGlslangAndTintPromise}initAsync(e,t){return this.uniqueId=un._InstanceId++,this._glslangOptions=e,this._twgslOptions=t,navigator.gpu.requestAdapter(this._options).then(i=>{var s;if(i){this._adapter=i,this._adapterSupportedExtensions=[],(s=this._adapter.features)==null||s.forEach(o=>this._adapterSupportedExtensions.push(o)),this._adapterSupportedLimits=this._adapter.limits,this._adapterInfo=this._adapter.info;const r=this._options.deviceDescriptor??{},n=(r==null?void 0:r.requiredFeatures)??(this._options.enableAllFeatures?this._adapterSupportedExtensions:void 0);if(n){const o=n,l=[];for(const c of o)this._adapterSupportedExtensions.indexOf(c)!==-1&&l.push(c);r.requiredFeatures=l}if(this._options.setMaximumLimits&&!r.requiredLimits){r.requiredLimits={};for(const o in this._adapterSupportedLimits)o==="minSubgroupSize"||o==="maxSubgroupSize"||(r.requiredLimits[o]=this._adapterSupportedLimits[o])}return r.label=`BabylonWebGPUDevice${this.uniqueId}`,this._adapter.requestDevice(r)}else throw"Could not retrieve a WebGPU adapter (adapter is null)."}).then(i=>{var r,n;this._device=i,this._deviceEnabledExtensions=[],(r=this._device.features)==null||r.forEach(o=>this._deviceEnabledExtensions.push(o)),this._deviceLimits=i.limits;let s=-1;this._device.addEventListener("uncapturederror",o=>{++s<this.numMaxUncapturedErrors?de.Warn(`WebGPU uncaptured error (${s+1}): ${o.error} - ${o.error.message}`):s++===this.numMaxUncapturedErrors&&de.Warn(`WebGPU uncaptured error: too many warnings (${this.numMaxUncapturedErrors}), no more warnings will be reported to the console for this engine.`)}),this._doNotHandleContextLost||(n=this._device.lost)==null||n.then(o=>{this._isDisposed||(this._contextWasLost=!0,de.Warn("WebGPU context lost. "+o),this.onContextLostObservable.notifyObservers(this),this._restoreEngineAfterContextLost(async()=>{var _,d;const l=this.snapshotRenderingMode,c=this.snapshotRendering,u=this.disableCacheSamplers,f=this.disableCacheRenderPipelines,p=this.disableCacheBindGroups,m=this.enableGPUTimingMeasurements;await this.initAsync(this._glslangOptions??((_=this._options)==null?void 0:_.glslangOptions),this._twgslOptions??((d=this._options)==null?void 0:d.twgslOptions)),this.snapshotRenderingMode=l,this.snapshotRendering=c,this.disableCacheSamplers=u,this.disableCacheRenderPipelines=f,this.disableCacheBindGroups=p,this.enableGPUTimingMeasurements=m,this._currentRenderPass=null}))})}).then(()=>{this._initializeLimits(),this._bufferManager=new dH(this,this._device),this._textureHelper=new ABe(this,this._device,this._bufferManager,this._deviceEnabledExtensions),this._cacheSampler=new e9(this._device),this._cacheBindGroups=new An(this._device,this._cacheSampler,this),this._timestampQuery=new PBe(this,this._device,this._bufferManager),this._occlusionQuery=this._device.createQuerySet?new RBe(this,this._device,this._bufferManager):void 0,this._bundleList=new yJ(this._device),this._snapshotRendering=new DBe(this,this._snapshotRenderingMode,this._bundleList),this._ubInvertY=this._bufferManager.createBuffer(new Float32Array([-1,0]),nn.Uniform|nn.CopyDst,"UBInvertY"),this._ubDontInvertY=this._bufferManager.createBuffer(new Float32Array([1,0]),nn.Uniform|nn.CopyDst,"UBDontInvertY"),this.dbgVerboseLogsForFirstFrames&&this._count===void 0&&(this._count=0,de.Log(["%c frame #"+this._count+" - begin","background: #ffff00"])),this._uploadEncoder=this._device.createCommandEncoder(this._uploadEncoderDescriptor),this._renderEncoder=this._device.createCommandEncoder(this._renderEncoderDescriptor),this._emptyVertexBuffer=new q(this,[0],"",{stride:1,offset:0,size:1,label:"EmptyVertexBuffer"}),this._cacheRenderPipeline=new t_(this._device,this._emptyVertexBuffer),this._depthCullingState=new yBe(this._cacheRenderPipeline),this._stencilStateComposer=new SBe(this._cacheRenderPipeline),this._stencilStateComposer.stencilGlobal=this._stencilState,this._depthCullingState.depthTest=!0,this._depthCullingState.depthFunc=515,this._depthCullingState.depthMask=!0,this._textureHelper.setCommandEncoder(this._uploadEncoder),this._clearQuad=new IBe(this._device,this,this._emptyVertexBuffer),this._defaultDrawContext=this.createDrawContext(),this._currentDrawContext=this._defaultDrawContext,this._defaultMaterialContext=this.createMaterialContext(),this._currentMaterialContext=this._defaultMaterialContext,this._initializeContextAndSwapChain(),this._initializeMainAttachments(),this.resize()}).catch(i=>{throw de.Error("A fatal error occurred during WebGPU creation/initialization."),i})}_initGlslang(e){return e=e||{},e={...un._GlslangDefaultOptions,...e},e.glslang?Promise.resolve(e.glslang):self.glslang?self.glslang(e.wasmPath):e.jsPath&&e.wasmPath?Le.LoadBabylonScriptAsync(e.jsPath).then(()=>self.glslang(Le.GetBabylonScriptURL(e.wasmPath))):Promise.reject("gslang is not available.")}_initializeLimits(){this._caps={maxTexturesImageUnits:this._deviceLimits.maxSampledTexturesPerShaderStage,maxVertexTextureImageUnits:this._deviceLimits.maxSampledTexturesPerShaderStage,maxCombinedTexturesImageUnits:this._deviceLimits.maxSampledTexturesPerShaderStage*2,maxTextureSize:this._deviceLimits.maxTextureDimension2D,maxCubemapTextureSize:this._deviceLimits.maxTextureDimension2D,maxRenderTextureSize:this._deviceLimits.maxTextureDimension2D,maxVertexAttribs:this._deviceLimits.maxVertexAttributes,maxDrawBuffers:8,maxVaryingVectors:this._deviceLimits.maxInterStageShaderVariables,maxFragmentUniformVectors:Math.floor(this._deviceLimits.maxUniformBufferBindingSize/4),maxVertexUniformVectors:Math.floor(this._deviceLimits.maxUniformBufferBindingSize/4),standardDerivatives:!0,astc:this._deviceEnabledExtensions.indexOf("texture-compression-astc")>=0?!0:void 0,s3tc:this._deviceEnabledExtensions.indexOf("texture-compression-bc")>=0?!0:void 0,pvrtc:null,etc1:null,etc2:this._deviceEnabledExtensions.indexOf("texture-compression-etc2")>=0?!0:void 0,bptc:this._deviceEnabledExtensions.indexOf("texture-compression-bc")>=0?!0:void 0,maxAnisotropy:16,uintIndices:!0,fragmentDepthSupported:!0,highPrecisionShaderSupported:!0,colorBufferFloat:!0,supportFloatTexturesResolve:!1,rg11b10ufColorRenderable:this._deviceEnabledExtensions.indexOf("rg11b10ufloat-renderable")>=0,textureFloat:!0,textureFloatLinearFiltering:this._deviceEnabledExtensions.indexOf("float32-filterable")>=0,textureFloatRender:!0,textureHalfFloat:!0,textureHalfFloatLinearFiltering:!0,textureHalfFloatRender:!0,textureLOD:!0,texelFetch:!0,drawBuffersExtension:!0,depthTextureExtension:!0,vertexArrayObject:!1,instancedArrays:!0,timerQuery:typeof BigUint64Array<"u"&&this._deviceEnabledExtensions.indexOf("timestamp-query")!==-1?!0:void 0,supportOcclusionQuery:typeof BigUint64Array<"u",canUseTimestampForTimerQuery:!0,multiview:!1,oculusMultiview:!1,parallelShaderCompile:void 0,blendMinMax:!0,maxMSAASamples:4,canUseGLInstanceID:!0,canUseGLVertexID:!0,supportComputeShaders:!0,supportSRGBBuffers:!0,supportTransformFeedbacks:!1,textureMaxLevel:!0,texture2DArrayMaxLayerCount:this._deviceLimits.maxTextureArrayLayers,disableMorphTargetTexture:!1,textureNorm16:!1},this._features={forceBitmapOverHTMLImageElement:!0,supportRenderAndCopyToLodForFloatTextures:!0,supportDepthStencilTexture:!0,supportShadowSamplers:!0,uniformBufferHardCheckMatrix:!1,allowTexturePrefiltering:!0,trackUbosInFrame:!0,checkUbosContentBeforeUpload:!0,supportCSM:!0,basisNeedsPOT:!1,support3DTextures:!0,needTypeSuffixInShaderConstants:!0,supportMSAA:!0,supportSSAO2:!0,supportIBLShadows:!0,supportExtendedTextureFormats:!0,supportSwitchCaseInShader:!0,supportSyncTextureRead:!1,needsInvertingBitmap:!1,useUBOBindingCache:!1,needShaderCodeInlining:!0,needToAlwaysBindUniformBuffers:!0,supportRenderPasses:!0,supportSpriteInstancing:!0,forceVertexBufferStrideAndOffsetMultiple4Bytes:!0,_checkNonFloatVertexBuffersDontRecreatePipelineContext:!0,_collectUbosUpdatedInFrame:!1}}_initializeContextAndSwapChain(){if(!this._renderingCanvas)throw"The rendering canvas has not been set!";this._context=this._renderingCanvas.getContext("webgpu"),this._configureContext(),this._colorFormat=this._options.swapChainFormat,this._mainRenderPassWrapper.colorAttachmentGPUTextures=[new hH(this)],this._mainRenderPassWrapper.colorAttachmentGPUTextures[0].format=this._colorFormat,this._setColorFormat(this._mainRenderPassWrapper)}_initializeMainAttachments(){if(!this._bufferManager)return;this.flushFramebuffer(),this._mainTextureExtends={width:this.getRenderWidth(!0),height:this.getRenderHeight(!0),depthOrArrayLayers:1};const e=new Float32Array([this.getRenderHeight(!0)]);this._bufferManager.setSubData(this._ubInvertY,4,e),this._bufferManager.setSubData(this._ubDontInvertY,4,e);let t;if(this._options.antialias){const r={label:`Texture_MainColor_${this._mainTextureExtends.width}x${this._mainTextureExtends.height}_antialiasing`,size:this._mainTextureExtends,mipLevelCount:1,sampleCount:this._mainPassSampleCount,dimension:"2d",format:this._options.swapChainFormat,usage:16};this._mainTexture&&this._textureHelper.releaseTexture(this._mainTexture),this._mainTexture=this._device.createTexture(r),t=[{view:this._mainTexture.createView({label:"TextureView_MainColor_antialiasing",dimension:"2d",format:this._options.swapChainFormat,mipLevelCount:1,arrayLayerCount:1}),clearValue:new St(0,0,0,1),loadOp:"clear",storeOp:"store"}]}else t=[{view:void 0,clearValue:new St(0,0,0,1),loadOp:"clear",storeOp:"store"}];this._mainRenderPassWrapper.depthTextureFormat=this.isStencilEnable?"depth24plus-stencil8":"depth32float",this._setDepthTextureFormat(this._mainRenderPassWrapper),this._setColorFormat(this._mainRenderPassWrapper);const i={label:`Texture_MainDepthStencil_${this._mainTextureExtends.width}x${this._mainTextureExtends.height}`,size:this._mainTextureExtends,mipLevelCount:1,sampleCount:this._mainPassSampleCount,dimension:"2d",format:this._mainRenderPassWrapper.depthTextureFormat,usage:16};this._depthTexture&&this._textureHelper.releaseTexture(this._depthTexture),this._depthTexture=this._device.createTexture(i);const s={view:this._depthTexture.createView({label:`TextureView_MainDepthStencil_${this._mainTextureExtends.width}x${this._mainTextureExtends.height}`,dimension:"2d",format:this._depthTexture.format,mipLevelCount:1,arrayLayerCount:1}),depthClearValue:this._clearDepthValue,depthLoadOp:"clear",depthStoreOp:"store",stencilClearValue:this._clearStencilValue,stencilLoadOp:this.isStencilEnable?"clear":void 0,stencilStoreOp:this.isStencilEnable?"store":void 0};this._mainRenderPassWrapper.renderPassDescriptor={label:"MainRenderPass",colorAttachments:t,depthStencilAttachment:s}}_sharedInit(e){super._sharedInit(e),NZ(this,e,this._creationOptions)}_configureContext(){this._context.configure({device:this._device,format:this._options.swapChainFormat,usage:17,alphaMode:this.premultipliedAlpha?"premultiplied":"opaque"})}resizeImageBitmap(e,t,i){return FZ(this,e,t,i)}_createImageBitmapFromSource(e,t){return zZ(this,e,t)}switchFullscreen(e){this.isFullscreen?this.exitFullscreen():this.enterFullscreen(e)}enterFullscreen(e){this.isFullscreen||(this._pointerLockRequested=e,this._renderingCanvas&&kZ(this._renderingCanvas))}exitFullscreen(){this.isFullscreen&&UZ()}enterPointerlock(){this._renderingCanvas&&EG(this._renderingCanvas)}exitPointerlock(){jZ()}_rebuildBuffers(){super._rebuildBuffers();for(const e of this._storageBuffers)e.getBuffer().engineId!==this.uniqueId&&e._rebuild()}_restoreEngineAfterContextLost(e){t_.ResetCache(),An.ResetCache();const t=s=>{var r;for(const n of s){for(const o of n.meshes){const l=o.subMeshes;if(l)for(const c of l)c._drawWrappers=[]}for(const o of n.materials)(r=o._materialContext)==null||r.reset()}};t(this.scenes),t(this._virtualScenes);const i=[];for(const s of this._uniformBuffers)s.name.indexOf("leftOver")<0&&i.push(s);this._uniformBuffers=i,super._restoreEngineAfterContextLost(e)}setSize(e,t,i=!1){return super.setSize(e,t,i)?(this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),(!this._count||this._count<this.dbgVerboseLogsNumFrames)&&de.Log(["frame #"+this._count+" - setSize -",e,t])),this._initializeMainAttachments(),this.snapshotRendering&&this.snapshotRenderingReset(),!0):!1}_getShaderProcessor(e){return e===1?this._shaderProcessorWGSL:this._shaderProcessor}_getShaderProcessingContext(e,t){return new h3(e,t)}_getCurrentRenderPass(){return this._currentRenderTarget&&!this._currentRenderPass?this._startRenderTargetRenderPass(this._currentRenderTarget,!1,null,!1,!1):this._currentRenderPass||this._startMainRenderPass(!1),this._currentRenderPass}_getCurrentRenderPassWrapper(){return this._currentRenderTarget?this._rttRenderPassWrapper:this._mainRenderPassWrapper}applyStates(){this._stencilStateComposer.apply(),this._cacheRenderPipeline.setAlphaBlendEnabled(this._alphaState.alphaBlend)}wipeCaches(e){this.preventCacheWipeBetweenFrames&&!e||(this._forceEnableEffect=!0,this._currentIndexBuffer=null,this._currentOverrideVertexBuffers=null,this._cacheRenderPipeline.setBuffers(null,null,null),e&&(this._stencilStateComposer.reset(),this._depthCullingState.reset(),this._depthCullingState.depthFunc=515,this._alphaState.reset(),this._alphaMode=1,this._alphaEquation=0,this._cacheRenderPipeline.setAlphaBlendFactors(this._alphaState._blendFunctionParameters,this._alphaState._blendEquationParameters),this._cacheRenderPipeline.setAlphaBlendEnabled(!1),this.setColorWrite(!0)),this._cachedVertexBuffers=null,this._cachedIndexBuffer=null,this._cachedEffectForVertexBuffers=null)}setColorWrite(e){this._colorWriteLocal=e,this._cacheRenderPipeline.setWriteMask(e?15:0)}getColorWrite(){return this._colorWriteLocal}_mustUpdateViewport(){const e=this._viewportCached.x,t=this._viewportCached.y,i=this._viewportCached.z,s=this._viewportCached.w,r=this._viewportsCurrent.x!==e||this._viewportsCurrent.y!==t||this._viewportsCurrent.w!==i||this._viewportsCurrent.h!==s;return r&&(this._viewportsCurrent.x=this._viewportCached.x,this._viewportsCurrent.y=this._viewportCached.y,this._viewportsCurrent.w=this._viewportCached.z,this._viewportsCurrent.h=this._viewportCached.w),r}_applyViewport(e){const t=Math.floor(this._viewportCached.x),i=Math.floor(this._viewportCached.z),s=Math.floor(this._viewportCached.w);let r=Math.floor(this._viewportCached.y);this._currentRenderTarget||(r=this.getRenderHeight(!0)-r-s),e?e.addItem(new vJ(t,r,i,s)):this._getCurrentRenderPass().setViewport(t,r,i,s,0,1),this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),(!this._count||this._count<this.dbgVerboseLogsNumFrames)&&de.Log(["frame #"+this._count+" - viewport applied - (",this._viewportCached.x,this._viewportCached.y,this._viewportCached.z,this._viewportCached.w,") current pass is main pass="+this._currentPassIsMainPass()]))}_viewport(e,t,i,s){this._viewportCached.x=e,this._viewportCached.y=t,this._viewportCached.z=i,this._viewportCached.w=s}_mustUpdateScissor(){const e=this._scissorCached.x,t=this._scissorCached.y,i=this._scissorCached.z,s=this._scissorCached.w,r=this._scissorsCurrent.x!==e||this._scissorsCurrent.y!==t||this._scissorsCurrent.w!==i||this._scissorsCurrent.h!==s;return r&&(this._scissorsCurrent.x=this._scissorCached.x,this._scissorsCurrent.y=this._scissorCached.y,this._scissorsCurrent.w=this._scissorCached.z,this._scissorsCurrent.h=this._scissorCached.w),r}_applyScissor(e){const t=this._currentRenderTarget?this._scissorCached.y:this.getRenderHeight()-this._scissorCached.w-this._scissorCached.y;e?e.addItem(new AJ(this._scissorCached.x,t,this._scissorCached.z,this._scissorCached.w)):this._getCurrentRenderPass().setScissorRect(this._scissorCached.x,t,this._scissorCached.z,this._scissorCached.w),this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),(!this._count||this._count<this.dbgVerboseLogsNumFrames)&&de.Log(["frame #"+this._count+" - scissor applied - (",this._scissorCached.x,this._scissorCached.y,this._scissorCached.z,this._scissorCached.w,") current pass is main pass="+this._currentPassIsMainPass()]))}_scissorIsActive(){return this._scissorCached.x!==0||this._scissorCached.y!==0||this._scissorCached.z!==0||this._scissorCached.w!==0}enableScissor(e,t,i,s){this._scissorCached.x=e,this._scissorCached.y=t,this._scissorCached.z=i,this._scissorCached.w=s}disableScissor(){this._scissorCached.x=this._scissorCached.y=this._scissorCached.z=this._scissorCached.w=0,this._scissorsCurrent.x=this._scissorsCurrent.y=this._scissorsCurrent.w=this._scissorsCurrent.h=0}_mustUpdateStencilRef(){const e=this._stencilStateComposer.funcRef!==this._stencilRefsCurrent;return e&&(this._stencilRefsCurrent=this._stencilStateComposer.funcRef),e}_applyStencilRef(e){e?e.addItem(new mH(this._stencilStateComposer.funcRef??0)):this._getCurrentRenderPass().setStencilReference(this._stencilStateComposer.funcRef??0)}_mustUpdateBlendColor(){const e=this._alphaState._blendConstants,t=e[0]!==this._blendColorsCurrent[0]||e[1]!==this._blendColorsCurrent[1]||e[2]!==this._blendColorsCurrent[2]||e[3]!==this._blendColorsCurrent[3];return t&&(this._blendColorsCurrent[0]=e[0],this._blendColorsCurrent[1]=e[1],this._blendColorsCurrent[2]=e[2],this._blendColorsCurrent[3]=e[3]),t}_applyBlendColor(e){e?e.addItem(new CJ(this._alphaState._blendConstants.slice())):this._getCurrentRenderPass().setBlendConstant(this._alphaState._blendConstants)}_resetRenderPassStates(){this._viewportsCurrent.x=this._viewportsCurrent.y=this._viewportsCurrent.w=this._viewportsCurrent.h=0,this._scissorsCurrent.x=this._scissorsCurrent.y=this._scissorsCurrent.w=this._scissorsCurrent.h=0,this._stencilRefsCurrent=-1,this._blendColorsCurrent[0]=this._blendColorsCurrent[1]=this._blendColorsCurrent[2]=this._blendColorsCurrent[3]=null}clear(e,t,i,s=!1){e&&e.a===void 0&&(e.a=1);const r=this._scissorIsActive();this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),(!this._count||this._count<this.dbgVerboseLogsNumFrames)&&de.Log(["frame #"+this._count+" - clear - backBuffer=",t," depth=",i," stencil=",s," scissor is active=",r])),this._currentRenderTarget?r?(this._currentRenderPass||this._startRenderTargetRenderPass(this._currentRenderTarget,!1,t?e:null,i,s),this._applyScissor(this.compatibilityMode?null:this._bundleList),this._clearFullQuad(t?e:null,i,s)):(this._currentRenderPass&&this._endCurrentRenderPass(),this._startRenderTargetRenderPass(this._currentRenderTarget,!0,t?e:null,i,s)):((!this._currentRenderPass||!r)&&this._startMainRenderPass(!r,t?e:null,i,s),r&&(this._applyScissor(this.compatibilityMode?null:this._bundleList),this._clearFullQuad(t?e:null,i,s)))}_clearFullQuad(e,t,i){const s=this.compatibilityMode?this._getCurrentRenderPass():null;this._clearQuad.setColorFormat(this._colorFormat),this._clearQuad.setDepthStencilFormat(this._depthTextureFormat),this._clearQuad.setMRTAttachments(this._cacheRenderPipeline.mrtAttachments??[],this._cacheRenderPipeline.mrtTextureArray??[],this._cacheRenderPipeline.mrtTextureCount),this.compatibilityMode?s.setStencilReference(this._clearStencilValue):this._bundleList.addItem(new mH(this._clearStencilValue));const r=this._clearQuad.clear(s,e,t,i,this.currentSampleCount);this.compatibilityMode?this._applyStencilRef(null):(this._bundleList.addBundle(r),this._applyStencilRef(this._bundleList),this._reportDrawCall())}createVertexBuffer(e,t,i){let s;return e instanceof Array?s=new Float32Array(e):e instanceof ArrayBuffer?s=new Uint8Array(e):s=e,this._bufferManager.createBuffer(s,nn.Vertex|nn.CopyDst,i)}createDynamicVertexBuffer(e,t){return this.createVertexBuffer(e,void 0,t)}createIndexBuffer(e,t,i){let s=!0,r;if(e instanceof Uint32Array||e instanceof Int32Array)r=e;else if(e instanceof Uint16Array)r=e,s=!1;else{for(let o=0;o<e.length;o++)if(e[o]>65535){r=new Uint32Array(e);break}r||(r=new Uint16Array(e),s=!1)}const n=this._bufferManager.createBuffer(r,nn.Index|nn.CopyDst,i);return n.is32Bits=s,n}updateDynamicIndexBuffer(e,t,i=0){const s=e;let r;e.is32Bits?r=t instanceof Uint32Array?t:new Uint32Array(t):r=t instanceof Uint16Array?t:new Uint16Array(t),this._bufferManager.setSubData(s,i,r)}updateDynamicVertexBuffer(e,t,i,s){const r=e;i===void 0&&(i=0);let n;s===void 0?(t instanceof Array?n=new Float32Array(t):t instanceof ArrayBuffer?n=new Uint8Array(t):n=t,s=n.byteLength):t instanceof Array?n=new Float32Array(t):t instanceof ArrayBuffer?n=new Uint8Array(t):n=t,this._bufferManager.setSubData(r,i,n,0,s)}_createBuffer(e,t,i){let s;e instanceof Array?s=new Float32Array(e):e instanceof ArrayBuffer?s=new Uint8Array(e):s=e;let r=0;return t&1&&(r|=nn.CopySrc),t&2&&(r|=nn.CopyDst),t&4&&(r|=nn.Uniform),t&8&&(r|=nn.Vertex),t&16&&(r|=nn.Index),t&32&&(r|=nn.Storage),t&64&&(r|=nn.Indirect),this._bufferManager.createBuffer(s,r,i)}bindBuffersDirectly(){throw"Not implemented on WebGPU"}updateAndBindInstancesBuffer(){throw"Not implemented on WebGPU"}unbindInstanceAttributes(){}bindBuffers(e,t,i,s){this._currentIndexBuffer=t,this._currentOverrideVertexBuffers=s??null,this._cacheRenderPipeline.setBuffers(e,t,this._currentOverrideVertexBuffers)}_releaseBuffer(e){return this._bufferManager.releaseBuffer(e)}createUniformBuffer(e,t){let i;return e instanceof Array?i=new Float32Array(e):i=e,this._bufferManager.createBuffer(i,nn.Uniform|nn.CopyDst,t)}createDynamicUniformBuffer(e,t){return this.createUniformBuffer(e,t)}updateUniformBuffer(e,t,i,s){i===void 0&&(i=0);const r=e;let n;s===void 0?(t instanceof Float32Array?n=t:n=new Float32Array(t),s=n.byteLength):t instanceof Float32Array?n=t:n=new Float32Array(t),this._bufferManager.setSubData(r,i,n,0,s)}bindUniformBufferBase(e,t,i){this._currentDrawContext.setBuffer(i,e)}bindUniformBlock(){}createEffect(e,t,i,s,r,n,o,l,c,u=0,f){const p=typeof e=="string"?e:e.vertexToken||e.vertexSource||e.vertexElement||e.vertex,m=typeof e=="string"?e:e.fragmentToken||e.fragmentSource||e.fragmentElement||e.fragment,_=this._getGlobalDefines(),d=t.attributes!==void 0;let h=r??t.defines??"";_&&(h+=`
`+_);const x=p+"+"+m+"@"+h;if(this._compiledEffects[x]){const S=this._compiledEffects[x];return o&&S.isReady()&&o(S),S._refCount++,S}const A=new Ls(e,t,d?this:i,s,this,r,n,o,l,c,x,t.shaderLanguage??u,t.extraInitializationsAsync??f);return this._compiledEffects[x]=A,A}_compileRawShaderToSpirV(e,t){return this._glslang.compileGLSL(e,t)}_compileShaderToSpirV(e,t,i,s){return this._compileRawShaderToSpirV(s+(i?i+`
`:"")+e,t)}_getWGSLShader(e,t,i){return i?i="//"+i.split(`
`).join(`
//`)+`
`:i="",i+e}_createPipelineStageDescriptor(e,t,i,s,r){return this._tintWASM&&i===0&&(e=this._tintWASM.convertSpirV2WGSL(e,s),t=this._tintWASM.convertSpirV2WGSL(t,r)),{vertexStage:{module:this._device.createShaderModule({label:"vertex",code:e}),entryPoint:"main"},fragmentStage:{module:this._device.createShaderModule({label:"fragment",code:t}),entryPoint:"main"}}}_compileRawPipelineStageDescriptor(e,t,i){const s=e.indexOf("#define DISABLE_UNIFORMITY_ANALYSIS")>=0,r=t.indexOf("#define DISABLE_UNIFORMITY_ANALYSIS")>=0,n=i===0?this._compileRawShaderToSpirV(e,"vertex"):e,o=i===0?this._compileRawShaderToSpirV(t,"fragment"):t;return this._createPipelineStageDescriptor(n,o,i,s,r)}_compilePipelineStageDescriptor(e,t,i,s){this.onBeforeShaderCompilationObservable.notifyObservers(this);const r=e.indexOf("#define DISABLE_UNIFORMITY_ANALYSIS")>=0,n=t.indexOf("#define DISABLE_UNIFORMITY_ANALYSIS")>=0,o=`#version 450
`,l=s===0?this._compileShaderToSpirV(e,"vertex",i,o):this._getWGSLShader(e,"vertex",i),c=s===0?this._compileShaderToSpirV(t,"fragment",i,o):this._getWGSLShader(t,"fragment",i),u=this._createPipelineStageDescriptor(l,c,s,r,n);return this.onAfterShaderCompilationObservable.notifyObservers(this),u}createRawShaderProgram(){throw"Not available on WebGPU"}createShaderProgram(){throw"Not available on WebGPU"}inlineShaderCode(e){const t=new Fy(e);return t.debug=!1,t.processCode(),t.code}createPipelineContext(e){return new P0e(e,this)}createMaterialContext(){return new pH}createDrawContext(){return new yB(this._bufferManager)}async _preparePipelineContext(e,t,i,s,r,n,o,l,c,u,f){const p=e,m=p.shaderProcessingContext.shaderLanguage;m===0&&!this._glslangAndTintAreFullyLoaded&&await this.prepareGlslangAndTintAsync(),this.dbgShowShaderCode&&(de.Log(["defines",l]),de.Log(t),de.Log(i),de.Log("***********************************************")),p.sources={fragment:i,vertex:t,rawVertex:r,rawFragment:n},s?p.stages=this._compileRawPipelineStageDescriptor(t,i,m):p.stages=this._compilePipelineStageDescriptor(t,i,l,m),f()}getAttributes(e,t){const i=new Array(t.length),s=e;for(let r=0;r<t.length;r++){const n=t[r],o=s.shaderProcessingContext.availableAttributes[n];o!==void 0&&(i[r]=o)}return i}enableEffect(e){if(e){if(!MG(e))this._currentEffect=e,this._currentMaterialContext=this._defaultMaterialContext,this._currentDrawContext=this._defaultDrawContext,this._counters.numEnableEffects++,this.dbgLogIfNotDrawWrapper&&de.Warn(`enableEffect has been called with an Effect and not a Wrapper! effect.uniqueId=${e.uniqueId}, effect.name=${e.name}, effect.name.vertex=${typeof e.name=="string"?"":e.name.vertex}, effect.name.fragment=${typeof e.name=="string"?"":e.name.fragment}`,10);else if(!e.effect||e.effect===this._currentEffect&&e.materialContext===this._currentMaterialContext&&e.drawContext===this._currentDrawContext&&!this._forceEnableEffect){if(!e.effect&&this.dbgShowEmptyEnableEffectCalls)throw de.Log(["drawWrapper=",e]),"Invalid call to enableEffect: the effect property is empty!";return}else if(this._currentEffect=e.effect,this._currentMaterialContext=e.materialContext,this._currentDrawContext=e.drawContext,this._counters.numEnableDrawWrapper++,!this._currentMaterialContext)throw de.Log(["drawWrapper=",e]),"Invalid call to enableEffect: the materialContext property is empty!";this._stencilStateComposer.stencilMaterial=void 0,this._forceEnableEffect=!1,this._currentEffect.onBind&&this._currentEffect.onBind(this._currentEffect),this._currentEffect._onBindObservable&&this._currentEffect._onBindObservable.notifyObservers(this._currentEffect)}}_releaseEffect(e){this._compiledEffects[e._key]&&(delete this._compiledEffects[e._key],this._deletePipelineContext(e.getPipelineContext()))}releaseEffects(){for(const e in this._compiledEffects){const t=this._compiledEffects[e].getPipelineContext();this._deletePipelineContext(t)}this._compiledEffects={},this.onReleaseEffectsObservable.notifyObservers(this)}_deletePipelineContext(e){const t=e;t&&_X(t)}get needPOTTextures(){return!1}_createHardwareTexture(){return new hH(this)}_releaseTexture(e){const t=this._internalTexturesCache.indexOf(e);t!==-1&&this._internalTexturesCache.splice(t,1),this._textureHelper.releaseTexture(e)}_getRGBABufferInternalSizedFormat(){return 5}updateTextureComparisonFunction(e,t){e._comparisonFunction=t}_createInternalTexture(e,t,i=!0,s=0){const r={};t!==void 0&&typeof t=="object"?(r.generateMipMaps=t.generateMipMaps,r.createMipMaps=t.createMipMaps,r.type=t.type===void 0?0:t.type,r.samplingMode=t.samplingMode===void 0?3:t.samplingMode,r.format=t.format===void 0?5:t.format,r.samples=t.samples??1,r.creationFlags=t.creationFlags??0,r.useSRGBBuffer=t.useSRGBBuffer??!1,r.label=t.label):(r.generateMipMaps=t,r.type=0,r.samplingMode=3,r.format=5,r.samples=1,r.creationFlags=0,r.useSRGBBuffer=!1),(r.type===1&&!this._caps.textureFloatLinearFiltering||r.type===2&&!this._caps.textureHalfFloatLinearFiltering)&&(r.samplingMode=1),r.type===1&&!this._caps.textureFloat&&(r.type=0,de.Warn("Float textures are not supported. Type forced to TEXTURETYPE_UNSIGNED_BYTE"));const n=new gr(this,s),o=e.width??e,l=e.height??e,c=e.depth??0,u=e.layers??0;if(n.baseWidth=o,n.baseHeight=l,n.width=o,n.height=l,n.depth=c||u,n.isReady=!0,n.samples=r.samples,n.generateMipMaps=!!r.generateMipMaps,n.samplingMode=r.samplingMode,n.type=r.type,n.format=r.format,n.is2DArray=u>0,n.is3D=c>0,n._cachedWrapU=0,n._cachedWrapV=0,n._useSRGBBuffer=r.useSRGBBuffer,n.label=r.label,this._internalTexturesCache.push(n),!i){const f=!r.generateMipMaps&&r.createMipMaps;f&&(n.generateMipMaps=!0),this._textureHelper.createGPUTextureForInternalTexture(n,o,l,u||1,r.creationFlags),f&&(n.generateMipMaps=!1)}return n}createTexture(e,t,i,s,r=3,n=null,o=null,l=null,c=null,u=null,f=null,p,m,_,d){return this._createTextureBase(e,t,i,s,r,n,o,(h,x,A,S,E,b,M,T)=>{var R;const O=S;if(h.baseWidth=O.width,h.baseHeight=O.height,h.width=O.width,h.height=O.height,h.format=h.format!==-1?h.format:u??5,h.type=h.type!==-1?h.type:0,h._creationFlags=_??0,T(h.width,h.height,O,x,h,()=>{}),(R=h._hardwareTexture)!=null&&R.underlyingResource)!b&&!M&&this._generateMipmaps(h,this._uploadEncoder);else{const I=this._textureHelper.createGPUTextureForInternalTexture(h,O.width,O.height,void 0,_);rn.IsImageBitmap(O)&&(this._textureHelper.updateTexture(O,h,O.width,O.height,h.depth,I.format,0,0,E,!1,0,0),!b&&!M&&this._generateMipmaps(h,this._uploadEncoder))}A&&A.removePendingData(h),h.isReady=!0,h.onLoadedObservable.notifyObservers(h),h.onLoadedObservable.clear()},()=>!1,l,c,u,f,p,m,d)}wrapWebGPUTexture(e){const t=new hH(this,e),i=new gr(this,0,!0);return i._hardwareTexture=t,i.isReady=!0,i}wrapWebGLTexture(){throw new Error("wrapWebGLTexture is not supported, use wrapWebGPUTexture instead.")}_getUseSRGBBuffer(e,t){return e&&this._caps.supportSRGBBuffers}_unpackFlipY(e){}updateTextureSamplingMode(e,t,i=!1){i&&(t.generateMipMaps=!0,this._generateMipmaps(t)),t.samplingMode=e}updateTextureWrappingMode(e,t,i=null,s=null){t!==null&&(e._cachedWrapU=t),i!==null&&(e._cachedWrapV=i),(e.is2DArray||e.is3D)&&s!==null&&(e._cachedWrapR=s)}updateTextureDimensions(e,t,i,s=1){if(!e._hardwareTexture||e.width===t&&e.height===i&&e.depth===s)return;const r=e._hardwareTexture.textureAdditionalUsages;e._hardwareTexture.release(),this._textureHelper.createGPUTextureForInternalTexture(e,t,i,s,r)}_setInternalTexture(e,t,i){if(i=i??e,this._currentEffect){const r=this._currentEffect._pipelineContext.shaderProcessingContext.availableTextures[i];if(this._currentMaterialContext.setTexture(e,t),r&&r.autoBindSampler){const n=i+"Sampler";this._currentMaterialContext.setSampler(n,t)}}}createPrefilteredCubeTexture(e,t,i,s,r=null,n=null,o,l=null,c=!0){const u=f=>{if(!f){r&&r(null);return}const p=f.texture;c?f.info.sphericalPolynomial&&(p._sphericalPolynomial=f.info.sphericalPolynomial):p._sphericalPolynomial=new Xv,p._source=9,r&&r(p)};return this.createCubeTexture(e,t,null,!1,u,n,o,l,c,i,s)}setTexture(e,t,i,s){this._setTexture(e,i,!1,!1,s,s)}setTextureArray(e,t,i,s){for(let r=0;r<i.length;r++)this._setTexture(-1,i[r],!0,!1,s+r.toString(),s)}_setTexture(e,t,i=!1,s=!1,r="",n){if(n=n??r,this._currentEffect){if(!t)return this._currentMaterialContext.setTexture(r,null),!1;if(t.video)t.update();else if(t.delayLoadState===4)return t.delayLoad(),!1;let o=null;if(s?o=t.depthStencilTexture:t.isReady()?o=t.getInternalTexture():t.isCube?o=this.emptyCubeTexture:t.is3D?o=this.emptyTexture3D:t.is2DArray?o=this.emptyTexture2DArray:o=this.emptyTexture,o&&!o.isMultiview){if(o.isCube&&o._cachedCoordinatesMode!==t.coordinatesMode){o._cachedCoordinatesMode=t.coordinatesMode;const l=t.coordinatesMode!==3&&t.coordinatesMode!==5?1:0;t.wrapU=l,t.wrapV=l}o._cachedWrapU=t.wrapU,o._cachedWrapV=t.wrapV,o.is3D&&(o._cachedWrapR=t.wrapR),this._setAnisotropicLevel(0,o,t.anisotropicFilteringLevel)}this._setInternalTexture(r,o,n)}else this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),(!this._count||this._count<this.dbgVerboseLogsNumFrames)&&de.Log(["frame #"+this._count+" - _setTexture called with a null _currentEffect! texture=",t]));return!0}_setAnisotropicLevel(e,t,i){t._cachedAnisotropicFilteringLevel!==i&&(t._cachedAnisotropicFilteringLevel=Math.min(i,this._caps.maxAnisotropy))}_bindTexture(e,t,i){e!==void 0&&this._setInternalTexture(i,t)}generateMipmaps(e){this._generateMipmaps(e)}updateTextureData(e,t,i,s,r,n,o=0,l=0,c=!1){var p;let u=e._hardwareTexture;(p=e._hardwareTexture)!=null&&p.underlyingResource||(u=this._textureHelper.createGPUTextureForInternalTexture(e));const f=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);this._textureHelper.updateTexture(f,e,r,n,e.depth,u.format,o,l,e.invertY,!1,i,s),c&&this._generateMipmaps(e)}_uploadCompressedDataToTextureDirectly(e,t,i,s,r,n=0,o=0){var u;let l=e._hardwareTexture;(u=e._hardwareTexture)!=null&&u.underlyingResource||(e.format=t,l=this._textureHelper.createGPUTextureForInternalTexture(e,i,s));const c=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);this._textureHelper.updateTexture(c,e,i,s,e.depth,l.format,n,o,!1,!1,0,0)}_uploadDataToTextureDirectly(e,t,i=0,s=0,r,n=!1){var m;const o=Math.round(Math.log(e.width)*Math.LOG2E),l=Math.round(Math.log(e.height)*Math.LOG2E),c=n?e.width:Math.pow(2,Math.max(o-s,0)),u=n?e.height:Math.pow(2,Math.max(l-s,0));let f=e._hardwareTexture;(m=e._hardwareTexture)!=null&&m.underlyingResource||(f=this._textureHelper.createGPUTextureForInternalTexture(e,c,u));const p=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);this._textureHelper.updateTexture(p,e,c,u,e.depth,f.format,i,s,e.invertY,!1,0,0)}_uploadArrayBufferViewToTexture(e,t,i=0,s=0){this._uploadDataToTextureDirectly(e,t,i,s)}_uploadImageToTexture(e,t,i=0,s=0){var c;let r=e._hardwareTexture;if((c=e._hardwareTexture)!=null&&c.underlyingResource||(r=this._textureHelper.createGPUTextureForInternalTexture(e)),t instanceof HTMLImageElement)throw"WebGPU engine: HTMLImageElement not supported in _uploadImageToTexture!";const n=t,o=Math.ceil(e.width/(1<<s)),l=Math.ceil(e.height/(1<<s));this._textureHelper.updateTexture(n,e,o,l,e.depth,r.format,i,s,e.invertY,!1,0,0)}readPixels(e,t,i,s,r=!0,n=!0,o=null){const c=this._getCurrentRenderPassWrapper().colorAttachmentGPUTextures[0];if(!c)return Promise.resolve(new Uint8Array(0));const u=c.underlyingResource,f=c.format;return u?(n&&this.flushFramebuffer(),this._textureHelper.readPixels(u,e,t,i,s,f,void 0,void 0,o)):Promise.resolve(new Uint8Array(0))}_measureFps(){this._performanceMonitor.sampleFrame(),this._fps=this._performanceMonitor.averageFPS,this._deltaTime=this._performanceMonitor.instantaneousFrameTime||0}get performanceMonitor(){return this._performanceMonitor}beginFrame(){this._measureFps(),super.beginFrame()}endFrame(){if(this._endCurrentRenderPass(),this._snapshotRendering.endFrame(),this._timestampQuery.endFrame(this._renderEncoder),this._timestampIndex=0,this.flushFramebuffer(),this._textureHelper.destroyDeferredTextures(),this._bufferManager.destroyDeferredBuffers(),this._features._collectUbosUpdatedInFrame){if(this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),!this._count||this._count<this.dbgVerboseLogsNumFrames)){const e=[];for(const t in Ti._UpdatedUbosInFrame)e.push(t+":"+Ti._UpdatedUbosInFrame[t]);de.Log(["frame #"+this._count+" - updated ubos -",e.join(", ")])}Ti._UpdatedUbosInFrame={}}this.countersLastFrame.numEnableEffects=this._counters.numEnableEffects,this.countersLastFrame.numEnableDrawWrapper=this._counters.numEnableDrawWrapper,this.countersLastFrame.numBundleCreationNonCompatMode=this._counters.numBundleCreationNonCompatMode,this.countersLastFrame.numBundleReuseNonCompatMode=this._counters.numBundleReuseNonCompatMode,this._counters.numEnableEffects=0,this._counters.numEnableDrawWrapper=0,this._counters.numBundleCreationNonCompatMode=0,this._counters.numBundleReuseNonCompatMode=0,this._cacheRenderPipeline.endFrame(),this._cacheBindGroups.endFrame(),this._pendingDebugCommands.length=0,this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),this._count<this.dbgVerboseLogsNumFrames&&de.Log(["%c frame #"+this._count+" - end","background: #ffff00"]),this._count<this.dbgVerboseLogsNumFrames&&(this._count++,this._count!==this.dbgVerboseLogsNumFrames&&de.Log(["%c frame #"+this._count+" - begin","background: #ffff00"]))),super.endFrame()}extractDriverInfo(){return""}flushFramebuffer(){this._endCurrentRenderPass(),this._commandBuffers[0]=this._uploadEncoder.finish(),this._commandBuffers[1]=this._renderEncoder.finish(),this._device.queue.submit(this._commandBuffers),this._uploadEncoder=this._device.createCommandEncoder(this._uploadEncoderDescriptor),this._renderEncoder=this._device.createCommandEncoder(this._renderEncoderDescriptor),this._timestampQuery.startFrame(this._uploadEncoder),this._textureHelper.setCommandEncoder(this._uploadEncoder),this._bundleList.reset()}_currentFrameBufferIsDefaultFrameBuffer(){return this._currentPassIsMainPass()}_startRenderTargetRenderPass(e,t,i,s,r){var S,E,b,M;this._endCurrentRenderPass();const n=e,o=n._depthStencilTexture,l=o==null?void 0:o._hardwareTexture,c=l==null?void 0:l.underlyingResource,u=l==null?void 0:l.getMSAATexture(0),f=c==null?void 0:c.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor),p=u==null?void 0:u.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor),m=l?rn.HasStencilAspect(l.format):!1,_=[];this.useReverseDepthBuffer&&this.setDepthFunctionToGreaterOrEqual();const d=wBe;i&&(d.r=i.r*255,d.g=i.g*255,d.b=i.b*255,d.a=i.a*255);const h=t&&i,x=t&&s,A=t&&r;if(n._attachments&&n.isMulti){(!this._mrtAttachments||this._mrtAttachments.length===0)&&(this._mrtAttachments=n._defaultAttachments);for(let T=0;T<this._mrtAttachments.length;++T){const O=this._mrtAttachments[T],R=n.textures[T],I=R==null?void 0:R._hardwareTexture,N=I==null?void 0:I.underlyingResource;if(I&&N){const w=n.getBaseArrayLayer(T),D=I.getMSAATexture(w),k={...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,dimension:R.is3D?"3d":"2d",format:I.format,baseArrayLayer:w},Y={...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,dimension:R.is3D?"3d":"2d",format:I.format,baseArrayLayer:0},V=R.type===7||R.type===5,ee=N.createView(k),K=D==null?void 0:D.createView(Y);_.push({view:K||ee,resolveTarget:D?ee:void 0,depthSlice:R.is3D?((S=n.layerIndices)==null?void 0:S[T])??0:void 0,clearValue:O!==0&&h?V?d:i:void 0,loadOp:O!==0&&h?"clear":"load",storeOp:"store"})}}this._cacheRenderPipeline.setMRT(n.textures,this._mrtAttachments.length),this._cacheRenderPipeline.setMRTAttachments(this._mrtAttachments)}else{const T=n.texture;if(T){const O=T._hardwareTexture,R=O.underlyingResource;let I;n.is3D&&(I=this._rttRenderPassWrapper.colorAttachmentViewDescriptor.baseArrayLayer,this._rttRenderPassWrapper.colorAttachmentViewDescriptor.baseArrayLayer=0);const N=O.getMSAATexture(0),w=R.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor),D=N==null?void 0:N.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor),k=T.type===7||T.type===5;_.push({view:D||w,resolveTarget:N?w:void 0,depthSlice:I,clearValue:h?k?d:i:void 0,loadOp:h?"clear":"load",storeOp:"store"})}else _.push(null)}if((E=this._debugPushGroup)==null||E.call(this,"render target pass"+(e.label?" ("+e.label+")":""),0),this._rttRenderPassWrapper.renderPassDescriptor={label:(e.label??"RTT")+" - RenderPass",colorAttachments:_,depthStencilAttachment:o&&c?{view:p||f,depthClearValue:x?this.useReverseDepthBuffer?this._clearReverseDepthValue:this._clearDepthValue:void 0,depthLoadOp:x?"clear":"load",depthStoreOp:"store",stencilClearValue:n._depthStencilTextureWithStencil&&A?this._clearStencilValue:void 0,stencilLoadOp:m?n._depthStencilTextureWithStencil&&A?"clear":"load":void 0,stencilStoreOp:m?"store":void 0}:void 0,occlusionQuerySet:(b=this._occlusionQuery)!=null&&b.hasQueries?this._occlusionQuery.querySet:void 0},this._timestampQuery.startPass(this._rttRenderPassWrapper.renderPassDescriptor,this._timestampIndex),this._currentRenderPass=this._renderEncoder.beginRenderPass(this._rttRenderPassWrapper.renderPassDescriptor),this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),!this._count||this._count<this.dbgVerboseLogsNumFrames)){const T=n.texture;de.Log(["frame #"+this._count+" - render target begin pass - rtt name="+e.label+", internalTexture.uniqueId="+T.uniqueId+", width="+T.width+", height="+T.height+", setClearStates="+t,"renderPassDescriptor=",this._rttRenderPassWrapper.renderPassDescriptor])}(M=this._debugFlushPendingCommands)==null||M.call(this),this._resetRenderPassStates(),(!l||!rn.HasStencilAspect(l.format))&&(this._stencilStateComposer.enabled=!1)}_startMainRenderPass(e,t,i,s){var c,u,f;this._endCurrentRenderPass(),this.useReverseDepthBuffer&&this.setDepthFunctionToGreaterOrEqual();const r=e&&t,n=e&&i,o=e&&s;this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].clearValue=r?t:void 0,this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].loadOp=r?"clear":"load",this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.depthClearValue=n?this.useReverseDepthBuffer?this._clearReverseDepthValue:this._clearDepthValue:void 0,this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.depthLoadOp=n?"clear":"load",this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.stencilClearValue=o?this._clearStencilValue:void 0,this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.stencilLoadOp=this.isStencilEnable?o?"clear":"load":void 0,this._mainRenderPassWrapper.renderPassDescriptor.occlusionQuerySet=(c=this._occlusionQuery)!=null&&c.hasQueries?this._occlusionQuery.querySet:void 0;const l=this._context.getCurrentTexture();this._mainRenderPassWrapper.colorAttachmentGPUTextures[0].set(l),this._options.antialias?(X0e.format=l.format,this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].resolveTarget=l.createView(X0e)):(Z0e.format=l.format,this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].view=l.createView(Z0e)),this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),(!this._count||this._count<this.dbgVerboseLogsNumFrames)&&de.Log(["frame #"+this._count+" - main begin pass - texture width="+this._mainTextureExtends.width," height="+this._mainTextureExtends.height+", setClearStates="+e,"renderPassDescriptor=",this._mainRenderPassWrapper.renderPassDescriptor])),(u=this._debugPushGroup)==null||u.call(this,"main pass",0),this._timestampQuery.startPass(this._mainRenderPassWrapper.renderPassDescriptor,this._timestampIndex),this._currentRenderPass=this._renderEncoder.beginRenderPass(this._mainRenderPassWrapper.renderPassDescriptor),this._setDepthTextureFormat(this._mainRenderPassWrapper),this._setColorFormat(this._mainRenderPassWrapper),(f=this._debugFlushPendingCommands)==null||f.call(this),this._resetRenderPassStates(),this._isStencilEnable||(this._stencilStateComposer.enabled=!1)}bindFramebuffer(e,t=0,i,s,r,n=0,o=0){var u,f;const l=(u=e.texture)==null?void 0:u._hardwareTexture;this._currentRenderTarget?this.unBindFramebuffer(this._currentRenderTarget):this._endCurrentRenderPass(),this._currentRenderTarget=e;const c=this._currentRenderTarget._depthStencilTexture;this._rttRenderPassWrapper.colorAttachmentGPUTextures[0]=l,this._rttRenderPassWrapper.depthTextureFormat=c?rn.GetWebGPUTextureFormat(-1,c.format):void 0,this._setDepthTextureFormat(this._rttRenderPassWrapper),this._setColorFormat(this._rttRenderPassWrapper),this._rttRenderPassWrapper.colorAttachmentViewDescriptor={format:this._colorFormat,dimension:e.is3D?"3d":"2d",mipLevelCount:1,baseArrayLayer:e.isCube?o*6+t:o,baseMipLevel:n,arrayLayerCount:1,aspect:"all"},this._rttRenderPassWrapper.depthAttachmentViewDescriptor={format:this._depthTextureFormat,dimension:c&&c.is3D?"3d":"2d",mipLevelCount:1,baseArrayLayer:c?c.isCube?o*6+t:o:0,baseMipLevel:0,arrayLayerCount:1,aspect:"all"},this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),(!this._count||this._count<this.dbgVerboseLogsNumFrames)&&de.Log(["frame #"+this._count+" - bindFramebuffer - rtt name="+e.label+", internalTexture.uniqueId="+((f=e.texture)==null?void 0:f.uniqueId)+", face="+t+", lodLevel="+n+", layer="+o,"colorAttachmentViewDescriptor=",this._rttRenderPassWrapper.colorAttachmentViewDescriptor,"depthAttachmentViewDescriptor=",this._rttRenderPassWrapper.depthAttachmentViewDescriptor])),this._cachedViewport&&!r?this.setViewport(this._cachedViewport,i,s):(i||(i=e.width,n&&(i=i/Math.pow(2,n))),s||(s=e.height,n&&(s=s/Math.pow(2,n))),this._viewport(0,0,i,s)),this.wipeCaches()}unBindFramebuffer(e,t=!1,i){var r;const s=this._currentRenderTarget;this._currentRenderTarget=null,i&&i(),this._currentRenderTarget=s,this._endCurrentRenderPass(),t||(e.isMulti?this.generateMipMapsMultiFramebuffer(e):this.generateMipMapsFramebuffer(e)),this._currentRenderTarget=null,this.dbgVerboseLogsForFirstFrames&&(this._count===void 0&&(this._count=0),(!this._count||this._count<this.dbgVerboseLogsNumFrames)&&de.Log("frame #"+this._count+" - unBindFramebuffer - rtt name="+e.label+", internalTexture.uniqueId=",(r=e.texture)==null?void 0:r.uniqueId)),this._mrtAttachments=[],this._cacheRenderPipeline.setMRT([]),this._cacheRenderPipeline.setMRTAttachments(this._mrtAttachments)}generateMipMapsFramebuffer(e){var t;!e.isMulti&&((t=e.texture)!=null&&t.generateMipMaps)&&!e.isCube&&this._generateMipmaps(e.texture)}resolveFramebuffer(e){throw new Error("resolveFramebuffer is not yet implemented in WebGPU!")}restoreDefaultFramebuffer(){this._currentRenderTarget?this.unBindFramebuffer(this._currentRenderTarget):this._currentRenderPass||this._startMainRenderPass(!1),this._cachedViewport&&this.setViewport(this._cachedViewport),this.wipeCaches()}_setColorFormat(e){var i;const t=((i=e.colorAttachmentGPUTextures[0])==null?void 0:i.format)??null;this._cacheRenderPipeline.setColorFormat(t),this._colorFormat!==t&&(this._colorFormat=t)}_setDepthTextureFormat(e){this._cacheRenderPipeline.setDepthStencilFormat(e.depthTextureFormat),this._depthTextureFormat!==e.depthTextureFormat&&(this._depthTextureFormat=e.depthTextureFormat)}setDitheringState(){}setRasterizerState(){}_executeWhenRenderingStateIsCompiled(e,t){t()}bindSamplers(){}_getUnpackAlignement(){return 1}_bindTextureDirectly(){return!1}setStateCullFaceType(e,t=!1){const i=this.cullBackFaces??e??!0?1:2;(this._depthCullingState.cullFace!==i||t)&&(this._depthCullingState.cullFace=i)}setState(e,t=0,i,s=!1,r,n,o=0){(this._depthCullingState.cull!==e||i)&&(this._depthCullingState.cull=e),this.setStateCullFaceType(r,i),this.setZOffset(t),this.setZOffsetUnits(o);const l=s?this._currentRenderTarget?1:2:this._currentRenderTarget?2:1;(this._depthCullingState.frontFace!==l||i)&&(this._depthCullingState.frontFace=l),this._stencilStateComposer.stencilMaterial=n}_applyRenderPassChanges(e){const t=this._stencilStateComposer.enabled?this._mustUpdateStencilRef():!1,i=this._alphaState.alphaBlend?this._mustUpdateBlendColor():!1;this._mustUpdateViewport()&&this._applyViewport(e),this._mustUpdateScissor()&&this._applyScissor(e),t&&this._applyStencilRef(e),i&&this._applyBlendColor(e)}_draw(e,t,i,s,r){var h;const n=this._getCurrentRenderPass(),o=this._bundleList;this.applyStates();const l=this._currentEffect._pipelineContext;if(this.bindUniformBufferBase(this._currentRenderTarget?this._ubInvertY:this._ubDontInvertY,0,wl.InternalsUBOName),l.uniformBuffer&&(l.uniformBuffer.update(),this.bindUniformBufferBase(l.uniformBuffer.getBuffer(),0,wl.LeftOvertUBOName)),this._snapshotRendering.play){this._reportDrawCall();return}!this.compatibilityMode&&(this._currentDrawContext.isDirty(this._currentMaterialContext.updateId)||this._currentMaterialContext.isDirty||this._currentMaterialContext.forceBindGroupCreation)&&(this._currentDrawContext.fastBundle=void 0);const c=!this.compatibilityMode&&this._currentDrawContext.fastBundle;let u=n;if(c||this._snapshotRendering.record){if(this._applyRenderPassChanges(o),!this._snapshotRendering.record){this._counters.numBundleReuseNonCompatMode++,this._currentDrawContext.indirectDrawBuffer&&this._currentDrawContext.setIndirectData(s,r||1,i),o.addBundle(this._currentDrawContext.fastBundle),this._reportDrawCall();return}u=o.getBundleEncoder(this._cacheRenderPipeline.colorFormats,this._depthTextureFormat,this.currentSampleCount),o.numDrawCalls++}let f=0;if(this._currentMaterialContext.hasFloatOrDepthTextures){let x=1;for(let A=0;A<l.shaderProcessingContext.textureNames.length;++A){const S=l.shaderProcessingContext.textureNames[A],E=(h=this._currentMaterialContext.textures[S])==null?void 0:h.texture,b=E&&E.format>=13&&E.format<=18;((E==null?void 0:E.type)===1&&!this._caps.textureFloatLinearFiltering||b)&&(f|=x),x=x<<1}}this._currentMaterialContext.textureState=f;const p=this._cacheRenderPipeline.getRenderPipeline(t,this._currentEffect,this.currentSampleCount,f),m=this._cacheBindGroups.getBindGroups(l,this._currentDrawContext,this._currentMaterialContext);this._snapshotRendering.record||(this._applyRenderPassChanges(this.compatibilityMode?null:o),this.compatibilityMode||(this._counters.numBundleCreationNonCompatMode++,u=this._device.createRenderBundleEncoder({colorFormats:this._cacheRenderPipeline.colorFormats,depthStencilFormat:this._depthTextureFormat,sampleCount:rn.GetSample(this.currentSampleCount)}))),u.setPipeline(p),this._currentIndexBuffer&&u.setIndexBuffer(this._currentIndexBuffer.underlyingResource,this._currentIndexBuffer.is32Bits?"uint32":"uint16",0);const _=this._cacheRenderPipeline.vertexBuffers;for(let x=0;x<_.length;x++){const A=_[x],S=A.effectiveBuffer;S&&u.setVertexBuffer(x,S.underlyingResource,A._validOffsetRange?0:A.byteOffset)}for(let x=0;x<m.length;x++)u.setBindGroup(x,m[x]);const d=!this.compatibilityMode&&!this._snapshotRendering.record;d&&this._currentDrawContext.indirectDrawBuffer?(this._currentDrawContext.setIndirectData(s,r||1,i),e===0?u.drawIndexedIndirect(this._currentDrawContext.indirectDrawBuffer,0):u.drawIndirect(this._currentDrawContext.indirectDrawBuffer,0)):e===0?u.drawIndexed(s,r||1,i,0,0):u.draw(s,r||1,i,0),d&&(this._currentDrawContext.fastBundle=u.finish(),o.addBundle(this._currentDrawContext.fastBundle)),this._reportDrawCall()}drawElementsType(e,t,i,s=1){this._draw(0,e,t,i,s)}drawArraysType(e,t,i,s=1){this._currentIndexBuffer=null,this._draw(1,e,t,i,s)}dispose(){var e,t;this._isDisposed=!0,this.hideLoadingUI(),this._timestampQuery.dispose(),(e=this._mainTexture)==null||e.destroy(),(t=this._depthTexture)==null||t.destroy(),this._textureHelper.destroyDeferredTextures(),this._bufferManager.destroyDeferredBuffers(),this._device.destroy(),wZ(this,this._renderingCanvas),super.dispose()}getRenderWidth(e=!1){var t;return!e&&this._currentRenderTarget?this._currentRenderTarget.width:((t=this._renderingCanvas)==null?void 0:t.width)??0}getRenderHeight(e=!1){var t;return!e&&this._currentRenderTarget?this._currentRenderTarget.height:((t=this._renderingCanvas)==null?void 0:t.height)??0}getError(){return 0}createExternalTexture(e){return new NBe(e)}setExternalTexture(e,t){if(!t){this._currentMaterialContext.setTexture(e,null);return}this._setInternalTexture(e,t)}setTextureSampler(e,t){var i;(i=this._currentMaterialContext)==null||i.setSampler(e,t)}createStorageBuffer(e,t,i){return this._createBuffer(e,t|32,i)}updateStorageBuffer(e,t,i,s){const r=e;i===void 0&&(i=0);let n;s===void 0?(t instanceof Array?n=new Float32Array(t):t instanceof ArrayBuffer?n=new Uint8Array(t):n=t,s=n.byteLength):t instanceof Array?n=new Float32Array(t):t instanceof ArrayBuffer?n=new Uint8Array(t):n=t,this._bufferManager.setSubData(r,i,n,0,s)}_readFromGPUBuffer(e,t,i,s){return new Promise((r,n)=>{const o=()=>{e.mapAsync(1,0,t).then(()=>{const l=e.getMappedRange(0,t);let c=i;if(c===void 0)c=new Uint8Array(t),c.set(new Uint8Array(l));else{const u=c.constructor;c=new u(c.buffer),c.set(new u(l))}e.unmap(),this._bufferManager.releaseBuffer(e),r(c)},l=>{this.isDisposed?r(new Uint8Array):n(l)})};s?(this.flushFramebuffer(),o()):this.onEndFrameObservable.addOnce(()=>{o()})})}readFromStorageBuffer(e,t,i,s,r){i=i||e.capacity;const n=this._bufferManager.createRawBuffer(i,nn.MapRead|nn.CopyDst,void 0,"TempReadFromStorageBuffer");return this._renderEncoder.copyBufferToBuffer(e.underlyingResource,t??0,n,0,i),this._readFromGPUBuffer(n,i,s,r)}readFromMultipleStorageBuffers(e,t,i,s,r){i=i||e[0].capacity;const n=this._bufferManager.createRawBuffer(i*e.length,nn.MapRead|nn.CopyDst,void 0,"TempReadFromMultipleStorageBuffers");for(let o=0;o<e.length;o++)this._renderEncoder.copyBufferToBuffer(e[o].underlyingResource,t??0,n,o*i,i);return this._readFromGPUBuffer(n,i*e.length,s,r)}setStorageBuffer(e,t){var i;(i=this._currentDrawContext)==null||i.setBuffer(e,(t==null?void 0:t.getBuffer())??null)}}un._GlslangDefaultOptions={jsPath:`${Le._DefaultCdnUrl}/glslang/glslang.js`,wasmPath:`${Le._DefaultCdnUrl}/glslang/glslang.wasm`},un._InstanceId=0;class gH{getBindGroups(e,t,i){if(!i)throw new Error("WebGPUComputeContext.getBindGroups: bindingsMapping is required until browsers support reflection for wgsl shaders!");if(this._bindGroups.length===0){const s=this._bindGroupEntries.length>0;for(const r in e){const n=e[r],o=i[r],l=o.group,c=o.binding,u=n.type,f=n.object;let p=n.indexInGroupEntries,m=this._bindGroupEntries[l];switch(m||(m=this._bindGroupEntries[l]=[]),u){case 5:{const _=f;p!==void 0&&s?m[p].resource=this._cacheSampler.getSampler(_):(n.indexInGroupEntries=m.length,m.push({binding:c,resource:this._cacheSampler.getSampler(_)}));break}case 0:case 4:{const _=f,d=_._texture._hardwareTexture;p!==void 0&&s?(u===0&&(m[p++].resource=this._cacheSampler.getSampler(_._texture)),m[p].resource=d.view):(n.indexInGroupEntries=m.length,u===0&&m.push({binding:c-1,resource:this._cacheSampler.getSampler(_._texture)}),m.push({binding:c,resource:d.view}));break}case 1:{const _=f,d=_._texture._hardwareTexture;d.textureAdditionalUsages&8||de.Error(`computeDispatch: The texture (name=${_.name}, uniqueId=${_.uniqueId}) is not a storage texture!`,50),p!==void 0&&s?m[p].resource=d.viewForWriting:(n.indexInGroupEntries=m.length,m.push({binding:c,resource:d.viewForWriting}));break}case 6:{const d=f.underlyingResource;p!==void 0&&s?m[p].resource=this._device.importExternalTexture({source:d}):(n.indexInGroupEntries=m.length,m.push({binding:c,resource:this._device.importExternalTexture({source:d})}));break}case 2:case 3:case 7:{const _=u===7?f:f.getBuffer(),d=_.underlyingResource;p!==void 0&&s?(m[p].resource.buffer=d,m[p].resource.size=_.capacity):(n.indexInGroupEntries=m.length,m.push({binding:c,resource:{buffer:d,offset:0,size:_.capacity}}));break}}}for(let r=0;r<this._bindGroupEntries.length;++r){const n=this._bindGroupEntries[r];if(!n){this._bindGroups[r]=void 0;continue}this._bindGroups[r]=this._device.createBindGroup({layout:t.getBindGroupLayout(r),entries:n})}this._bindGroups.length=this._bindGroupEntries.length}return this._bindGroups}constructor(e,t){this._device=e,this._cacheSampler=t,this.uniqueId=gH._Counter++,this._bindGroupEntries=[],this.clear()}clear(){this._bindGroups=[]}}gH._Counter=0;class BBe{get isAsync(){return!1}get isReady(){return this.isAsync,!1}constructor(e){this._name="unnamed",this.engine=e}_getComputeShaderCode(){var e;return(e=this.sources)==null?void 0:e.compute}dispose(){}}const K0e={};un.prototype.createComputeContext=function(){return new gH(this._device,this._cacheSampler)},un.prototype.createComputeEffect=function(a,e){const i=(typeof a=="string"?a:a.computeToken||a.computeSource||a.computeElement||a.compute)+"@"+e.defines;if(this._compiledComputeEffects[i]){const r=this._compiledComputeEffects[i];return e.onCompiled&&r.isReady()&&e.onCompiled(r),r}const s=new CL(a,e,this,i);return this._compiledComputeEffects[i]=s,s},un.prototype.createComputePipelineContext=function(){return new BBe(this)},un.prototype.areAllComputeEffectsReady=function(){for(const a in this._compiledComputeEffects)if(!this._compiledComputeEffects[a].isReady())return!1;return!0},un.prototype.computeDispatch=function(a,e,t,i,s=1,r=1,n,o){this._computeDispatch(a,e,t,i,s,r,void 0,void 0,n,o)},un.prototype.computeDispatchIndirect=function(a,e,t,i,s=0,r,n){this._computeDispatch(a,e,t,void 0,void 0,void 0,i,s,r,n)},un.prototype._computeDispatch=function(a,e,t,i,s,r,n,o,l,c){this._endCurrentRenderPass();const u=a._pipelineContext,f=e;u.computePipeline||(u.computePipeline=this._device.createComputePipeline({layout:"auto",compute:u.stage})),c&&this._timestampQuery.startPass(K0e,this._timestampIndex);const p=this._renderEncoder.beginComputePass(K0e);p.setPipeline(u.computePipeline);const m=f.getBindGroups(t,u.computePipeline,l);for(let _=0;_<m.length;++_){const d=m[_];d&&p.setBindGroup(_,d)}n!==void 0?p.dispatchWorkgroupsIndirect(n.underlyingResource,o):i+s+r>0&&p.dispatchWorkgroups(i,s,r),p.end(),c&&(this._timestampQuery.endPass(this._timestampIndex,c),this._timestampIndex+=2)},un.prototype.releaseComputeEffects=function(){for(const a in this._compiledComputeEffects){const e=this._compiledComputeEffects[a].getPipelineContext();this._deleteComputePipelineContext(e)}this._compiledComputeEffects={}},un.prototype._prepareComputePipelineContext=function(a,e,t,i,s){const r=a;this.dbgShowShaderCode&&(de.Log(i),de.Log(e)),r.sources={compute:e,rawCompute:t},r.stage=this._createComputePipelineStageDescriptor(e,i,s)},un.prototype._releaseComputeEffect=function(a){this._compiledComputeEffects[a._key]&&(delete this._compiledComputeEffects[a._key],this._deleteComputePipelineContext(a.getPipelineContext()))},un.prototype._rebuildComputeEffects=function(){for(const a in this._compiledComputeEffects){const e=this._compiledComputeEffects[a];e._pipelineContext=null,e._wasPreviouslyReady=!1,e._prepareEffect()}},un.prototype._executeWhenComputeStateIsCompiled=function(a,e){a.stage.module.getCompilationInfo().then(t=>{const i={numErrors:0,messages:[]};for(const s of t.messages)s.type==="error"&&i.numErrors++,i.messages.push({type:s.type,text:s.message,line:s.lineNum,column:s.linePos,length:s.length,offset:s.offset});e(i)})},un.prototype._deleteComputePipelineContext=function(a){a&&a.dispose()},un.prototype._createComputePipelineStageDescriptor=function(a,e,t){return e?e="//"+e.split(`
`).join(`
//`)+`
`:e="",{module:this._device.createShaderModule({code:e+a}),entryPoint:t}},un.prototype._debugPushGroup=function(a,e){this._options.enableGPUDebugMarkers&&(e===0||e===1?(e===1&&(this._currentRenderTarget?this.unBindFramebuffer(this._currentRenderTarget):this._endCurrentRenderPass()),this._renderEncoder.pushDebugGroup(a)):this._currentRenderPass?(this._currentRenderPass.pushDebugGroup(a),this._debugStackRenderPass.push(a)):this._pendingDebugCommands.push(["push",a,e]))},un.prototype._debugPopGroup=function(a){this._options.enableGPUDebugMarkers&&(a===0||a===1?(a===1&&(this._currentRenderTarget?this.unBindFramebuffer(this._currentRenderTarget):this._endCurrentRenderPass()),this._renderEncoder.popDebugGroup()):this._currentRenderPass?(this._currentRenderPass.popDebugGroup(),this._debugStackRenderPass.pop()):this._pendingDebugCommands.push(["pop",null,a]))},un.prototype._debugInsertMarker=function(a,e){this._options.enableGPUDebugMarkers&&(e===0||e===1?(e===1&&(this._currentRenderTarget?this.unBindFramebuffer(this._currentRenderTarget):this._endCurrentRenderPass()),this._renderEncoder.insertDebugMarker(a)):this._currentRenderPass?this._currentRenderPass.insertDebugMarker(a):this._pendingDebugCommands.push(["insert",a,e]))},un.prototype._debugFlushPendingCommands=function(){if(this._debugStackRenderPass.length!==0){const a=this._debugStackRenderPass.slice();this._debugStackRenderPass.length=0;for(let e=0;e<a.length;++e)this._debugPushGroup(a[e],2)}for(let a=0;a<this._pendingDebugCommands.length;++a){const[e,t,i]=this._pendingDebugCommands[a];switch(e){case"push":this._debugPushGroup(t,i);break;case"pop":this._debugPopGroup(i);break;case"insert":this._debugInsertMarker(t,i);break}}this._pendingDebugCommands.length=0},un.prototype.createDynamicTexture=function(a,e,t,i){const s=new gr(this,4);return s.baseWidth=a,s.baseHeight=e,t&&(a=this.needPOTTextures?g0(a,this._caps.maxTextureSize):a,e=this.needPOTTextures?g0(e,this._caps.maxTextureSize):e),s.width=a,s.height=e,s.isReady=!1,s.generateMipMaps=t,s.samplingMode=i,this.updateTextureSamplingMode(i,s),this._internalTexturesCache.push(s),a&&e&&this._textureHelper.createGPUTextureForInternalTexture(s,a,e),s},un.prototype.updateDynamicTexture=function(a,e,t,i=!1,s,r,n){var u;if(!a)return;const o=e.width,l=e.height;let c=a._hardwareTexture;(u=a._hardwareTexture)!=null&&u.underlyingResource||(c=this._textureHelper.createGPUTextureForInternalTexture(a,o,l)),this._textureHelper.updateTexture(e,a,o,l,a.depth,c.format,0,0,t,i,0,0,n),a.generateMipMaps&&this._generateMipmaps(a),a._dynamicTextureSource=e,a._premulAlpha=i,a.invertY=t||!1,a.isReady=!0},un.prototype.unBindMultiColorAttachmentFramebuffer=function(a,e=!1,t){t&&t(),this._endCurrentRenderPass(),e||this.generateMipMapsMultiFramebuffer(a),this._currentRenderTarget=null,this._mrtAttachments=[],this._cacheRenderPipeline.setMRT([]),this._cacheRenderPipeline.setMRTAttachments(this._mrtAttachments)},un.prototype.createMultipleRenderTarget=function(a,e,t){let i=!1,s=!0,r=!1,n=!1,o=15,l=1,c=1;const u=0,f=3,p=!1,m=5,_=3553;let d=[],h=[],x=[],A=[],S=[],E=[],b=[],M=[],T=[],O=[],R=!1;const I=this._createHardwareRenderTargetWrapper(!0,!1,a);e!==void 0&&(i=e.generateMipMaps??!1,s=e.generateDepthBuffer??!0,r=e.generateStencilBuffer??!1,n=e.generateDepthTexture??!1,l=e.textureCount??1,o=e.depthTextureFormat??15,d=e.types||d,h=e.samplingModes||h,x=e.useSRGBBuffers||x,A=e.formats||A,S=e.targetTypes||S,E=e.faceIndex||E,b=e.layerIndex||b,M=e.layerCounts||M,T=e.labels||T,O=e.creationFlags||O,c=e.samples??c,R=e.dontCreateTextures??!1);const N=a.width??a,w=a.height??a,D=[],k=[],Y=[];I.label=(e==null?void 0:e.label)??"MultiRenderTargetWrapper",I._generateDepthBuffer=s,I._generateStencilBuffer=r,I._attachments=k,I._defaultAttachments=Y;let V=null;(s||r||n)&&!R&&(n||(s&&r?o=13:s?o=14:o=19),V=I.createDepthStencilTexture(0,!1,r,1,o,I.label+"-DepthStencil"));const ee=e!==void 0&&typeof e=="object"&&e.createMipMaps&&!i;for(let K=0;K<l;K++){let ie=h[K]||f,ne=d[K]||u;const te=A[K]||m,W=(x[K]||p)&&this._caps.supportSRGBBuffers,Q=S[K]||_,re=M[K]??1,oe=O[K];if((ne===1&&!this._caps.textureFloatLinearFiltering||ne===2&&!this._caps.textureHalfFloatLinearFiltering)&&(ie=1),ne===1&&!this._caps.textureFloat&&(ne=0,de.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type")),k.push(K+1),Y.push(t?K+1:K===0?1:0),Q===-1||R)continue;const X=new gr(this,6);switch(D[K]=X,Q){case 34067:X.isCube=!0;break;case 32879:X.is3D=!0,X.baseDepth=X.depth=re;break;case 35866:X.is2DArray=!0,X.baseDepth=X.depth=re;break}X.baseWidth=N,X.baseHeight=w,X.width=N,X.height=w,X.isReady=!0,X.samples=1,X.generateMipMaps=i,X.samplingMode=ie,X.type=ne,X._cachedWrapU=0,X._cachedWrapV=0,X._useSRGBBuffer=W,X.format=te,X.label=T[K]??I.label+"-Texture"+K,this._internalTexturesCache.push(X),ee&&(X.generateMipMaps=!0),this._textureHelper.createGPUTextureForInternalTexture(X,void 0,void 0,void 0,oe,!0),ee&&(X.generateMipMaps=!1)}return V&&(V.incrementReferences(),D[l]=V,this._internalTexturesCache.push(V)),I.setTextures(D),I.setLayerAndFaceIndices(b,E),R?I._samples=c:this.updateMultipleRenderTargetTextureSampleCount(I,c),I},un.prototype.updateMultipleRenderTargetTextureSampleCount=function(a,e){if(!a||!a.textures||a.textures.length===0||a.textures[0].samples===e)return e;const t=a.textures.length;if(t===0)return 1;e=Math.min(e,this.getCaps().maxMSAASamples);for(let s=0;s<t;++s){const n=a.textures[s]._hardwareTexture;n==null||n.releaseMSAATexture(a.getBaseArrayLayer(s))}const i=a._depthStencilTexture===a.textures[t-1];for(let s=0;s<t;++s){const r=a.textures[s];this._textureHelper.createMSAATexture(r,e,!1,a.getBaseArrayLayer(s)),r.samples=e}return a._depthStencilTexture&&!i&&(this._textureHelper.createMSAATexture(a._depthStencilTexture,e),a._depthStencilTexture.samples=e),a._samples=e,e},un.prototype.generateMipMapsMultiFramebuffer=function(a){const e=a;if(!e.isMulti)return;const i=e._attachments.length;for(let s=0;s<i;s++){const r=e.textures[s];r.generateMipMaps&&!r.isCube&&!r.is3D&&this._generateMipmaps(r)}},un.prototype.resolveMultiFramebuffer=function(a){throw new Error("resolveMultiFramebuffer is not yet implemented in WebGPU!")},un.prototype.bindAttachments=function(a){a.length===0||!this._currentRenderTarget||(this._mrtAttachments=a,this._currentRenderPass&&this._cacheRenderPipeline.setMRTAttachments(a))},un.prototype.buildTextureLayout=function(a){const e=[];for(let t=0;t<a.length;t++)a[t]?e.push(t+1):e.push(0);return e},un.prototype.restoreSingleAttachment=function(){},un.prototype.restoreSingleAttachmentForRenderTarget=function(){};function zBe(a){return!!(a&&a.underlyingResource!==void 0)}un.prototype.updateVideoTexture=function(a,e,t){var s;if(!a||a._isDisabled)return;this._videoTextureSupported===void 0&&(this._videoTextureSupported=!0);let i=a._hardwareTexture;if((s=a._hardwareTexture)!=null&&s.underlyingResource||(i=this._textureHelper.createGPUTextureForInternalTexture(a)),zBe(e)){if(e.isReady()){try{this._textureHelper.copyVideoToTexture(e,a,i.format,!t),a.generateMipMaps&&this._generateMipmaps(a)}catch{}a.isReady=!0}}else e&&this.createImageBitmap(e).then(r=>{this._textureHelper.updateTexture(r,a,a.width,a.height,a.depth,i.format,0,0,!t,!1,0,0),a.generateMipMaps&&this._generateMipmaps(a),a.isReady=!0}).catch(()=>{a.isReady=!0})};class FBe{static async CreateAsync(e,t){return await un.IsSupportedAsync?un.CreateAsync(e,t):Qt.IsSupported?new Qt(e,void 0,t):new v0e(t)}}class kBe{constructor(e,t="/"){this._context=e,this._separator=t}convert(e){const t=e.split(this._separator);if(t.length<2)throw new Error(`Path ${e} is invalid`);let i=this._context.getVariable(t[0]);const s=t[t.length-1];for(let r=1;r<t.length-1;r++)i=i[t[r]];return{object:i,info:{type:"object",get:()=>i[s],set:r=>i[s]=r,getTarget:()=>i,getPropertyName:[()=>s]}}}}const q0e=new RegExp(/\/\{(\w+)\}\//g);class Q0e{constructor(e,t){this.path=e,this.ownerBlock=t,this.templatedInputs=[];let i=q0e.exec(e);const s=new Set;for(;i;){const[,r]=i;if(s.has(r))throw new Error("Duplicate template variable detected.");s.add(r),this.templatedInputs.push(t.registerDataInput(r,Dl,new Yr(0))),i=q0e.exec(e)}}getAccessor(e,t){let i=this.path;for(const s of this.templatedInputs){const r=s.getValue(t).value;if(typeof r!="number"||r<0)throw new Error("Invalid value for templated input.");i=i.replace(`{${s.name}}`,r.toString())}return e.convert(i)}}class MJ extends o3{constructor(e){if(super(e),this.message=this.registerDataInput("message",ii),this.logType=this.registerDataInput("logType",ii,"log"),e!=null&&e.messageTemplate){const t=this._getTemplateMatches(e.messageTemplate);for(const i of t)this.registerDataInput(i,ii)}}_execute(e){const t=this.logType.getValue(e),i=this._getMessageValue(e);t==="warn"?de.Warn(i):t==="error"?de.Error(i):de.Log(i),this.out._activateSignal(e)}getClassName(){return"FlowGraphConsoleLogBlock"}_getMessageValue(e){var t,i;if((t=this.config)!=null&&t.messageTemplate){let s=this.config.messageTemplate;const r=this._getTemplateMatches(s);for(const n of r){const o=(i=this.getDataInput(n))==null?void 0:i.getValue(e);o!==void 0&&(s=s.replace(new RegExp(`\\{${n}\\}`,"g"),o.toString()))}return s}else return this.message.getValue(e)}_getTemplateMatches(e){const t=/\{([^}]+)\}/g,i=[];let s;for(;(s=t.exec(e))!==null;)i.push(s[1]);return i}}ve("FlowGraphConsoleLogBlock",MJ);const UBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphConsoleLogBlock:MJ},Symbol.toStringTag,{value:"Module"}));class EJ extends ab{constructor(e){super(e),this.condition=this.registerDataInput("condition",ju),this.onTrue=this._registerSignalOutput("onTrue"),this.onFalse=this._registerSignalOutput("onFalse")}_execute(e){this.condition.getValue(e)?this.onTrue._activateSignal(e):this.onFalse._activateSignal(e)}getClassName(){return"FlowGraphBranchBlock"}}ve("FlowGraphBranchBlock",EJ);const jBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphBranchBlock:EJ},Symbol.toStringTag,{value:"Module"}));class TJ extends o3{constructor(e={}){super(e),this.config=e,this.config.startIndex=e.startIndex??new Yr(0),this.reset=this._registerSignalInput("reset"),this.maxExecutions=this.registerDataInput("maxExecutions",Dl),this.executionCount=this.registerDataOutput("executionCount",Dl,new Yr(0))}_execute(e,t){if(t===this.reset)this.executionCount.setValue(this.config.startIndex,e);else{const i=this.executionCount.getValue(e);i.value<this.maxExecutions.getValue(e).value&&(this.executionCount.setValue(new Yr(i.value+1),e),this.out._activateSignal(e))}}getClassName(){return"FlowGraphDoNBlock"}}ve("FlowGraphDoNBlock",TJ);const VBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphDoNBlock:TJ},Symbol.toStringTag,{value:"Module"}));class qP extends o3{constructor(e){super(e),this.startIndex=this.registerDataInput("startIndex",ii,0),this.endIndex=this.registerDataInput("endIndex",ii),this.step=this.registerDataInput("step",ds,1),this.index=this.registerDataOutput("index",Dl,new Yr(b0((e==null?void 0:e.initialIndex)??0))),this.executionFlow=this._registerSignalOutput("executionFlow"),this.completed=this._registerSignalOutput("completed"),this._unregisterSignalOutput("out")}_execute(e){const t=b0(this.startIndex.getValue(e)),i=this.step.getValue(e);let s=b0(this.endIndex.getValue(e));for(let r=t;r<s&&(this.index.setValue(new Yr(r),e),this.executionFlow._activateSignal(e),s=b0(this.endIndex.getValue(e)),!(r>qP.MaxLoopIterations));r+=i);this.completed._activateSignal(e)}getClassName(){return"FlowGraphForLoopBlock"}}qP.MaxLoopIterations=1e3,ve("FlowGraphForLoopBlock",qP);const GBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphForLoopBlock:qP},Symbol.toStringTag,{value:"Module"}));class LJ extends o3{constructor(e){super(e),this.reset=this._registerSignalInput("reset"),this.duration=this.registerDataInput("duration",ds),this.lastRemainingTime=this.registerDataOutput("lastRemainingTime",ds,NaN)}_execute(e,t){if(t===this.reset){this.lastRemainingTime.setValue(NaN,e),e._setExecutionVariable(this,"lastRemainingTime",NaN),e._setExecutionVariable(this,"timestamp",0);return}const i=this.duration.getValue(e);if(i<=0||isNaN(i)||!isFinite(i))return this._reportError(e,"Invalid duration in Throttle block");const s=e._getExecutionVariable(this,"lastRemainingTime",NaN),r=Date.now();if(isNaN(s))return this.lastRemainingTime.setValue(0,e),e._setExecutionVariable(this,"lastRemainingTime",0),e._setExecutionVariable(this,"timestamp",r),this.out._activateSignal(e);{const n=r-e._getExecutionVariable(this,"timestamp",0),o=i*1e3;if(o<=n)return this.lastRemainingTime.setValue(0,e),e._setExecutionVariable(this,"lastRemainingTime",0),e._setExecutionVariable(this,"timestamp",r),this.out._activateSignal(e);{const l=o-n;this.lastRemainingTime.setValue(l/1e3,e),e._setExecutionVariable(this,"lastRemainingTime",l)}}}getClassName(){return"FlowGraphThrottleBlock"}}ve("FlowGraphThrottleBlock",LJ);const WBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphThrottleBlock:LJ},Symbol.toStringTag,{value:"Module"}));class IJ extends ab{constructor(e){super(e),this.config=e,this.outputSignals=[],this.reset=this._registerSignalInput("reset"),this.lastIndex=this.registerDataOutput("lastIndex",Dl,new Yr(-1)),this.setNumberOfOutputSignals(e==null?void 0:e.outputSignalCount)}_getNextIndex(e){if(e.includes(!1)||this.config.isLoop&&e.fill(!1),this.config.isRandom){const t=e.map((i,s)=>i?-1:s).filter(i=>i!==-1);return t.length?t[Math.floor(Math.random()*t.length)]:-1}else return e.indexOf(!1)}setNumberOfOutputSignals(e=1){for(;this.outputSignals.length>e;){const t=this.outputSignals.pop();t&&(t.disconnectFromAll(),this._unregisterSignalOutput(t.name))}for(;this.outputSignals.length<e;)this.outputSignals.push(this._registerSignalOutput(`out_${this.outputSignals.length}`))}_execute(e,t){if(e._hasExecutionVariable(this,"indexesUsed")||e._setExecutionVariable(this,"indexesUsed",this.outputSignals.map(()=>!1)),t===this.reset){e._deleteExecutionVariable(this,"indexesUsed"),this.lastIndex.setValue(new Yr(-1),e);return}const i=e._getExecutionVariable(this,"indexesUsed",[]),s=this._getNextIndex(i);s>-1&&(this.lastIndex.setValue(new Yr(s),e),i[s]=!0,e._setExecutionVariable(this,"indexesUsed",i),this.outputSignals[s]._activateSignal(e))}getClassName(){return"FlowGraphMultiGateBlock"}serialize(e){super.serialize(e),e.config.outputSignalCount=this.config.outputSignalCount,e.config.isRandom=this.config.isRandom,e.config.loop=this.config.isLoop,e.config.startIndex=this.config.startIndex}}ve("FlowGraphMultiGateBlock",IJ);const HBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphMultiGateBlock:IJ},Symbol.toStringTag,{value:"Module"}));class PJ extends ab{constructor(e){super(e),this.config=e,this.default=this._registerSignalOutput("default"),this._caseToOutputFlow=new Map,this.case=this.registerDataInput("case",ii),(this.config.cases||[]).forEach(t=>{this._caseToOutputFlow.set(t,this._registerSignalOutput(`out_${t}`))})}_execute(e,t){const i=this.case.getValue(e);let s;DP(i)?s=this._getOutputFlowForCase(b0(i)):s=this._getOutputFlowForCase(i),s?s._activateSignal(e):this.default._activateSignal(e)}addCase(e){this.config.cases.includes(e)||(this.config.cases.push(e),this._caseToOutputFlow.set(e,this._registerSignalOutput(`out_${e}`)))}removeCase(e){if(!this.config.cases.includes(e))return;const t=this.config.cases.indexOf(e);this.config.cases.splice(t,1),this._caseToOutputFlow.delete(e)}_getOutputFlowForCase(e){return this._caseToOutputFlow.get(e)}getClassName(){return"FlowGraphSwitchBlock"}serialize(e){super.serialize(e),e.cases=this.config.cases}}ve("FlowGraphSwitchBlock",PJ);const YBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphSwitchBlock:PJ},Symbol.toStringTag,{value:"Module"}));class OJ extends o3{constructor(e){super(e),this.config=e,this.inFlows=[],this._cachedActivationState=[],this.reset=this._registerSignalInput("reset"),this.completed=this._registerSignalOutput("completed"),this.remainingInputs=this.registerDataOutput("remainingInputs",ds,this.config.inputSignalCount||0);for(let t=0;t<this.config.inputSignalCount;t++)this.inFlows.push(this._registerSignalInput(`in_${t}`));this._unregisterSignalInput("in")}_getCurrentActivationState(e){const t=this._cachedActivationState;if(t.length=0,e._hasExecutionVariable(this,"activationState")){const i=e._getExecutionVariable(this,"activationState",[]);for(let s=0;s<i.length;s++)t.push(i[s])}else for(let i=0;i<this.config.inputSignalCount;i++)t.push(!1);return t}_execute(e,t){const i=this._getCurrentActivationState(e);if(t===this.reset)for(let s=0;s<this.config.inputSignalCount;s++)i[s]=!1;else{const s=this.inFlows.indexOf(t);s>=0&&(i[s]=!0)}if(this.remainingInputs.setValue(i.filter(s=>!s).length,e),e._setExecutionVariable(this,"activationState",i.slice()),i.includes(!1))t!==this.reset&&this.out._activateSignal(e);else{this.completed._activateSignal(e);for(let s=0;s<this.config.inputSignalCount;s++)i[s]=!1}}getClassName(){return"FlowGraphWaitAllBlock"}serialize(e){super.serialize(e),e.config.inputFlows=this.config.inputSignalCount}}ve("FlowGraphWaitAllBlock",OJ);const XBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphWaitAllBlock:OJ},Symbol.toStringTag,{value:"Module"}));class RJ extends o3{constructor(e){super(e),this.count=this.registerDataOutput("count",ds),this.reset=this._registerSignalInput("reset")}_execute(e,t){if(t===this.reset){e._setExecutionVariable(this,"count",0),this.count.setValue(0,e);return}const i=e._getExecutionVariable(this,"count",0)+1;e._setExecutionVariable(this,"count",i),this.count.setValue(i,e),this.out._activateSignal(e)}getClassName(){return"FlowGraphCallCounterBlock"}}ve("FlowGraphCallCounterBlock",RJ);const ZBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphCallCounterBlock:RJ},Symbol.toStringTag,{value:"Module"}));class QP extends o3{constructor(e){super(e),this.config=e,this.condition=this.registerDataInput("condition",ju),this.executionFlow=this._registerSignalOutput("executionFlow"),this.completed=this._registerSignalOutput("completed"),this._unregisterSignalOutput("out")}_execute(e,t){var r;let i=this.condition.getValue(e);(r=this.config)!=null&&r.doWhile&&!i&&this.executionFlow._activateSignal(e);let s=0;for(;i;){if(this.executionFlow._activateSignal(e),++s,s>=QP.MaxLoopCount){de.Warn("FlowGraphWhileLoopBlock: Max loop count reached. Breaking.");break}i=this.condition.getValue(e)}this.completed._activateSignal(e)}getClassName(){return"FlowGraphWhileLoopBlock"}}QP.MaxLoopCount=1e3,ve("FlowGraphWhileLoopBlock",QP);const KBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphWhileLoopBlock:QP},Symbol.toStringTag,{value:"Module"}));class DJ extends o3{constructor(e){super(e),this.count=this.registerDataInput("count",ds),this.reset=this._registerSignalInput("reset"),this.currentCount=this.registerDataOutput("currentCount",ds)}_execute(e,t){if(t===this.reset){e._setExecutionVariable(this,"debounceCount",0);return}const i=this.count.getValue(e),r=e._getExecutionVariable(this,"debounceCount",0)+1;this.currentCount.setValue(r,e),e._setExecutionVariable(this,"debounceCount",r),r>=i&&(this.out._activateSignal(e),e._setExecutionVariable(this,"debounceCount",0))}getClassName(){return"FlowGraphDebounceBlock"}}ve("FlowGraphDebounceBlock",DJ);const qBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphDebounceBlock:DJ},Symbol.toStringTag,{value:"Module"}));class NJ extends ab{constructor(e){super(e),this.onOn=this._registerSignalOutput("onOn"),this.onOff=this._registerSignalOutput("onOff"),this.value=this.registerDataOutput("value",ju)}_execute(e,t){var s;let i=e._getExecutionVariable(this,"value",typeof((s=this.config)==null?void 0:s.startValue)=="boolean"?!this.config.startValue:!1);i=!i,e._setExecutionVariable(this,"value",i),this.value.setValue(i,e),i?this.onOn._activateSignal(e):this.onOff._activateSignal(e)}getClassName(){return"FlowGraphFlipFlopBlock"}}ve("FlowGraphFlipFlopBlock",NJ);const QBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphFlipFlopBlock:NJ},Symbol.toStringTag,{value:"Module"}));class wJ extends ab{constructor(e){super(e),this.config=e,this.executionSignals=[],this.setNumberOfOutputSignals(this.config.outputSignalCount)}_execute(e){for(let t=0;t<this.executionSignals.length;t++)this.executionSignals[t]._activateSignal(e)}setNumberOfOutputSignals(e=1){for(;this.executionSignals.length>e;){const t=this.executionSignals.pop();t&&(t.disconnectFromAll(),this._unregisterSignalOutput(t.name))}for(;this.executionSignals.length<e;)this.executionSignals.push(this._registerSignalOutput(`out_${this.executionSignals.length}`))}getClassName(){return"FlowGraphSequenceBlock"}}ve("FlowGraphSequenceBlock",wJ);const JBe=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphSequenceBlock:wJ},Symbol.toStringTag,{value:"Module"}));var BJ;(function(a){a[a.INIT=0]="INIT",a[a.STARTED=1]="STARTED",a[a.ENDED=2]="ENDED"})(BJ||(BJ={}));function TB(a){let e=0;const t=Date.now();a.observableParameters=a.observableParameters??{};const i=a.contextObservable.add(s=>{const r=Date.now();e=r-t;const n={startTime:t,currentTime:r,deltaTime:e,completeRate:e/a.timeout,payload:s};a.onTick&&a.onTick(n),a.breakCondition&&a.breakCondition()&&(a.contextObservable.remove(i),a.onAborted&&a.onAborted(n)),e>=a.timeout&&(a.contextObservable.remove(i),a.onEnded&&a.onEnded(n))},a.observableParameters.mask,a.observableParameters.insertFirst,a.observableParameters.scope);return i}class J0e{constructor(e){this.onEachCountObservable=new xe,this.onTimerAbortedObservable=new xe,this.onTimerEndedObservable=new xe,this.onStateChangedObservable=new xe,this._observer=null,this._breakOnNextTick=!1,this._tick=t=>{const i=Date.now();this._timer=i-this._startTime;const s={startTime:this._startTime,currentTime:i,deltaTime:this._timer,completeRate:this._timer/this._timeToEnd,payload:t},r=this._breakOnNextTick||this._breakCondition(s);r||this._timer>=this._timeToEnd?this._stop(s,r):this.onEachCountObservable.notifyObservers(s)},this._setState(0),this._contextObservable=e.contextObservable,this._observableParameters=e.observableParameters??{},this._breakCondition=e.breakCondition??(()=>!1),this._timeToEnd=e.timeout,e.onEnded&&this.onTimerEndedObservable.add(e.onEnded),e.onTick&&this.onEachCountObservable.add(e.onTick),e.onAborted&&this.onTimerAbortedObservable.add(e.onAborted)}set breakCondition(e){this._breakCondition=e}clearObservables(){this.onEachCountObservable.clear(),this.onTimerAbortedObservable.clear(),this.onTimerEndedObservable.clear(),this.onStateChangedObservable.clear()}start(e=this._timeToEnd){if(this._state===1)throw new Error("Timer already started. Please stop it before starting again");this._timeToEnd=e,this._startTime=Date.now(),this._timer=0,this._observer=this._contextObservable.add(this._tick,this._observableParameters.mask,this._observableParameters.insertFirst,this._observableParameters.scope),this._setState(1)}stop(){this._state===1&&(this._breakOnNextTick=!0)}dispose(){this._observer&&this._contextObservable.remove(this._observer),this.clearObservables()}_setState(e){this._state=e,this.onStateChangedObservable.notifyObservers(this._state)}_stop(e,t=!1){this._contextObservable.remove(this._observer),this._setState(2),t?this.onTimerAbortedObservable.notifyObservers(e):this.onTimerEndedObservable.notifyObservers(e)}}class JP extends MW{constructor(e){super(e),this.cancel=this._registerSignalInput("cancel"),this.duration=this.registerDataInput("duration",ds),this.lastDelayIndex=this.registerDataOutput("lastDelayIndex",ds,-1)}_preparePendingTasks(e){const t=this.duration.getValue(e);if(t<0||isNaN(t)||!isFinite(t))return this._reportError(e,"Invalid duration in SetDelay block");if(e._getGlobalContextVariable("activeDelays",0)>=JP.MaxParallelDelayCount)return this._reportError(e,"Max parallel delays reached");const s=e._getGlobalContextVariable("lastDelayIndex",-1),r=e._getExecutionVariable(this,"pendingDelays",[]),n=e.configuration.scene,o=new J0e({timeout:t*1e3,contextObservable:n.onBeforeRenderObservable,onEnded:()=>this._onEnded(o,e)});o.start();const l=s+1;this.lastDelayIndex.setValue(l,e),e._setGlobalContextVariable("lastDelayIndex",l),r[l]=o,e._setExecutionVariable(this,"pendingDelays",r)}_cancelPendingTasks(e){const t=e._getExecutionVariable(this,"pendingDelays",[]);for(const i of t)i==null||i.dispose();e._deleteExecutionVariable(this,"pendingDelays"),this.lastDelayIndex.setValue(-1,e)}_execute(e,t){if(t===this.cancel){this._cancelPendingTasks(e);return}else this._preparePendingTasks(e),this.out._activateSignal(e)}getClassName(){return"FlowGraphSetDelayBlock"}_onEnded(e,t){const i=t._getExecutionVariable(this,"pendingDelays",[]),s=i.indexOf(e);s!==-1?i.splice(s,1):de.Warn("FlowGraphTimerBlock: Timer ended but was not found in the running timers list"),t._removePendingBlock(this),this.done._activateSignal(t)}}JP.MaxParallelDelayCount=100,ve("FlowGraphSetDelayBlock",JP);const $Be=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphSetDelayBlock:JP},Symbol.toStringTag,{value:"Module"}));class zJ extends o3{constructor(e){super(e),this.delayIndex=this.registerDataInput("delayIndex",ds)}_execute(e,t){const i=this.delayIndex.getValue(e);if(i<=0||isNaN(i)||!isFinite(i))return this._reportError(e,"Invalid delay index");const r=e._getExecutionVariable(this,"pendingDelays",[])[i];r&&r.dispose(),this.out._activateSignal(e)}getClassName(){return"FlowGraphCancelDelayBlock"}}ve("FlowGraphCancelDelayBlock",zJ);const eze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphCancelDelayBlock:zJ},Symbol.toStringTag,{value:"Module"}));class FJ extends MW{constructor(e){super(e,["animationLoop","animationEnd","animationGroupLoop"]),this.config=e,this.speed=this.registerDataInput("speed",ds),this.loop=this.registerDataInput("loop",ju),this.from=this.registerDataInput("from",ds,0),this.to=this.registerDataInput("to",ds),this.currentFrame=this.registerDataOutput("currentFrame",ds),this.currentTime=this.registerDataOutput("currentTime",ds),this.currentAnimationGroup=this.registerDataOutput("currentAnimationGroup",ii),this.animationGroup=this.registerDataInput("animationGroup",ii,e==null?void 0:e.animationGroup),this.animation=this.registerDataInput("animation",ii),this.object=this.registerDataInput("object",ii)}_preparePendingTasks(e){const t=this.animationGroup.getValue(e),i=this.animation.getValue(e);if(!t&&!i)return this._reportError(e,"No animation or animation group provided");{const s=this.currentAnimationGroup.getValue(e);s&&s!==t&&s.dispose();let r=t;if(i&&!r){const f=this.object.getValue(e);if(!f)return this._reportError(e,"No target object provided");const p=Array.isArray(i)?i:[i],m=p[0].name;r=new c3("flowGraphAnimationGroup-"+m+"-"+f.name,e.configuration.scene);let _=!1;const d=e._getGlobalContextVariable("interpolationAnimations",[]);for(const h of p)r.addTargetedAnimation(h,f),d.indexOf(h.uniqueId)!==-1&&(_=!0);_&&this._checkInterpolationDuplications(e,p,f)}const n=this.speed.getValue(e)||1,o=this.from.getValue(e)??0,l=this.to.getValue(e)||r.to,c=!isFinite(l)||this.loop.getValue(e);this.currentAnimationGroup.setValue(r,e);const u=e._getGlobalContextVariable("currentlyRunningAnimationGroups",[]);u.indexOf(r.uniqueId)!==-1&&r.stop();try{r.start(c,n,o,l),r.onAnimationGroupEndObservable.add(()=>this._onAnimationGroupEnd(e)),r.onAnimationEndObservable.add(()=>this._eventsSignalOutputs.animationEnd._activateSignal(e)),r.onAnimationLoopObservable.add(()=>this._eventsSignalOutputs.animationLoop._activateSignal(e)),r.onAnimationGroupLoopObservable.add(()=>this._eventsSignalOutputs.animationGroupLoop._activateSignal(e)),u.push(r.uniqueId),e._setGlobalContextVariable("currentlyRunningAnimationGroups",u)}catch(f){this._reportError(e,f)}}}_reportError(e,t){super._reportError(e,t),this.currentFrame.setValue(-1,e),this.currentTime.setValue(-1,e)}_executeOnTick(e){var i;const t=this.currentAnimationGroup.getValue(e);t&&(this.currentFrame.setValue(t.getCurrentFrame(),e),this.currentTime.setValue(((i=t.animatables[0])==null?void 0:i.elapsedTime)??0,e))}_execute(e){this._startPendingTasks(e)}_onAnimationGroupEnd(e){this._removeFromCurrentlyRunning(e,this.currentAnimationGroup.getValue(e)),this._resetAfterCanceled(e),this.done._activateSignal(e)}_checkInterpolationDuplications(e,t,i){const s=e._getGlobalContextVariable("currentlyRunningAnimationGroups",[]);for(const r of s){const n=e.assetsContext.animationGroups.find(o=>o.uniqueId===r);if(n)for(const o of n.targetedAnimations)for(const l of t)o.animation.targetProperty===l.targetProperty&&o.target===i&&this._stopAnimationGroup(e,n)}}_stopAnimationGroup(e,t){t.stop(!0),t.dispose(),this._removeFromCurrentlyRunning(e,t)}_removeFromCurrentlyRunning(e,t){const i=e._getGlobalContextVariable("currentlyRunningAnimationGroups",[]),s=i.indexOf(t.uniqueId);s!==-1&&(i.splice(s,1),e._setGlobalContextVariable("currentlyRunningAnimationGroups",i))}_cancelPendingTasks(e){const t=this.currentAnimationGroup.getValue(e);t&&this._stopAnimationGroup(e,t)}getClassName(){return"FlowGraphPlayAnimationBlock"}}ve("FlowGraphPlayAnimationBlock",FJ);const tze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphPlayAnimationBlock:FJ},Symbol.toStringTag,{value:"Module"}));class kJ extends MW{constructor(e){super(e),this.animationGroup=this.registerDataInput("animationGroup",ii),this.stopAtFrame=this.registerDataInput("stopAtFrame",ds,-1)}_preparePendingTasks(e){const t=this.animationGroup.getValue(e),i=this.stopAtFrame.getValue(e)??-1,s=e._getGlobalContextVariable("pendingStopAnimations",[]);s.push({uniqueId:t.uniqueId,stopAtFrame:i}),e._setGlobalContextVariable("pendingStopAnimations",s)}_cancelPendingTasks(e){const t=this.animationGroup.getValue(e),i=e._getGlobalContextVariable("pendingStopAnimations",[]);for(let s=0;s<i.length;s++)if(i[s].uniqueId===t.uniqueId){i.splice(s,1),e._setGlobalContextVariable("pendingStopAnimations",i);break}}_execute(e){const t=this.animationGroup.getValue(e),i=this.stopAtFrame.getValue(e)??-1;if(!t)return de.Warn("No animation group provided to stop."),this._reportError(e,"No animation group provided to stop.");if(isNaN(i))return this._reportError(e,"Invalid stop time.");i>0?this._startPendingTasks(e):this._stopAnimation(t,e),this.out._activateSignal(e)}_executeOnTick(e){const t=this.animationGroup.getValue(e),i=e._getGlobalContextVariable("pendingStopAnimations",[]);for(let s=0;s<i.length;s++)if(i[s].uniqueId===t.uniqueId&&t.getCurrentFrame()>=i[s].stopAtFrame){this._stopAnimation(t,e),i.splice(s,1),e._setGlobalContextVariable("pendingStopAnimations",i),this.done._activateSignal(e),e._removePendingBlock(this);break}}getClassName(){return"FlowGraphStopAnimationBlock"}_stopAnimation(e,t){const i=t._getGlobalContextVariable("currentlyRunningAnimationGroups",[]),s=i.indexOf(e.uniqueId);s!==-1&&(e.stop(),i.splice(s,1),t._setGlobalContextVariable("currentlyRunningAnimationGroups",i))}}ve("FlowGraphStopAnimationBlock",kJ);const ize=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphStopAnimationBlock:kJ},Symbol.toStringTag,{value:"Module"}));class UJ extends o3{constructor(e){super(e),this.animationToPause=this.registerDataInput("animationToPause",ii)}_execute(e){this.animationToPause.getValue(e).pause(),this.out._activateSignal(e)}getClassName(){return"FlowGraphPauseAnimationBlock"}}ve("FlowGraphPauseAnimationBlock",UJ);const sze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphPauseAnimationBlock:UJ},Symbol.toStringTag,{value:"Module"}));class jJ extends Vu{constructor(e={}){super(e),this.keyFrames=[];const t=typeof(e==null?void 0:e.animationType)=="string"?vn(e.animationType):A1e((e==null?void 0:e.animationType)??0),i=(e==null?void 0:e.keyFramesCount)??1,s=this.registerDataInput("duration_0",ds,0),r=this.registerDataInput("value_0",t);this.keyFrames.push({duration:s,value:r});for(let n=1;n<i+1;n++){const o=this.registerDataInput(`duration_${n}`,ds,n===i?e.duration:void 0),l=this.registerDataInput(`value_${n}`,t);this.keyFrames.push({duration:o,value:l})}this.initialValue=this.keyFrames[0].value,this.endValue=this.keyFrames[i].value,this.easingFunction=this.registerDataInput("easingFunction",ii),this.animation=this.registerDataOutput("animation",ii),this.propertyName=this.registerDataInput("propertyName",ii,e==null?void 0:e.propertyName),this.customBuildAnimation=this.registerDataInput("customBuildAnimation",ii)}_updateOutputs(e){const t=e._getGlobalContextVariable("interpolationAnimations",[]),i=this.propertyName.getValue(e),s=this.easingFunction.getValue(e),r=this._createAnimation(e,i,s);if(this.animation.setValue(r,e),Array.isArray(r))for(const n of r)t.push(n.uniqueId);else t.push(r.uniqueId);e._setGlobalContextVariable("interpolationAnimations",t)}_createAnimation(e,t,i){var c,u,f;const s=this.initialValue.richType,r=[],n=this.initialValue.getValue(e)||s.defaultValue;r.push({frame:0,value:n});const o=((c=this.config)==null?void 0:c.numberOfKeyFrames)??1;for(let p=1;p<o+1;p++){const m=(u=this.keyFrames[p].duration)==null?void 0:u.getValue(e);let _=(f=this.keyFrames[p].value)==null?void 0:f.getValue(e);p===o-1&&(_=_||s.defaultValue),m!==void 0&&_&&r.push({frame:m*60,value:_})}const l=this.customBuildAnimation.getValue(e);if(l)return l()(r,60,s.animationType,i);if(typeof t=="string"){const p=He.CreateAnimation(t,s.animationType,60,i);return p.setKeys(r),[p]}else return t.map(m=>{const _=He.CreateAnimation(m,s.animationType,60,i);return _.setKeys(r),_})}getClassName(){return"FlowGraphInterpolationBlock"}}ve("FlowGraphInterpolationBlock",jJ);const rze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphInterpolationBlock:jJ},Symbol.toStringTag,{value:"Module"}));var _H;(function(a){a[a.CircleEase=0]="CircleEase",a[a.BackEase=1]="BackEase",a[a.BounceEase=2]="BounceEase",a[a.CubicEase=3]="CubicEase",a[a.ElasticEase=4]="ElasticEase",a[a.ExponentialEase=5]="ExponentialEase",a[a.PowerEase=6]="PowerEase",a[a.QuadraticEase=7]="QuadraticEase",a[a.QuarticEase=8]="QuarticEase",a[a.QuinticEase=9]="QuinticEase",a[a.SineEase=10]="SineEase",a[a.BezierCurveEase=11]="BezierCurveEase"})(_H||(_H={}));function nze(a,...e){switch(a){case 11:return new oq(...e);case 0:return new Oy;case 1:return new Ry(...e);case 2:return new Z1e(...e);case 3:return new GT;case 4:return new WT(...e);case 5:return new Dy(...e);default:throw new Error("Easing type not yet implemented")}}class VJ extends Vu{constructor(e){super(e),this.config=e,this._easingFunctions={},this.type=this.registerDataInput("type",ii,11),this.mode=this.registerDataInput("mode",ds,0),this.parameters=this.registerDataInput("parameters",ii,[1,0,0,1]),this.easingFunction=this.registerDataOutput("easingFunction",ii)}_updateOutputs(e){const t=this.type.getValue(e),i=this.mode.getValue(e),s=this.parameters.getValue(e);if(t===void 0||i===void 0)return;const r=`${t}-${i}-${s.join("-")}`;if(!this._easingFunctions[r]){const n=nze(t,...s);n.setEasingMode(i),this._easingFunctions[r]=n}this.easingFunction.setValue(this._easingFunctions[r],e)}getClassName(){return"FlowGraphEasingBlock"}}ve("FlowGraphEasingBlock",VJ);const aze=Object.freeze(Object.defineProperty({__proto__:null,get EasingFunctionType(){return _H},FlowGraphEasingBlock:VJ},Symbol.toStringTag,{value:"Module"}));class GJ extends Vu{constructor(e){super(e),this.config=e,this._easingFunctions={},this.mode=this.registerDataInput("mode",ds,0),this.controlPoint1=this.registerDataInput("controlPoint1",nb),this.controlPoint2=this.registerDataInput("controlPoint2",nb),this.easingFunction=this.registerDataOutput("easingFunction",ii)}_updateOutputs(e){const t=this.mode.getValue(e),i=this.controlPoint1.getValue(e),s=this.controlPoint2.getValue(e);if(t===void 0)return;const r=`${t}-${i.x}-${i.y}-${s.x}-${s.y}`;if(!this._easingFunctions[r]){const n=new oq(i.x,i.y,s.x,s.y);n.setEasingMode(t),this._easingFunctions[r]=n}this.easingFunction.setValue(this._easingFunctions[r],e)}getClassName(){return"FlowGraphBezierCurveEasing"}}ve("FlowGraphBezierCurveEasing",GJ);const oze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphBezierCurveEasingBlock:GJ},Symbol.toStringTag,{value:"Module"}));class WJ extends Vu{constructor(e){super(e),this.condition=this.registerDataInput("condition",ju),this.onTrue=this.registerDataInput("onTrue",ii),this.onFalse=this.registerDataInput("onFalse",ii),this.output=this.registerDataOutput("output",ii)}_updateOutputs(e){const t=this.condition.getValue(e);this.output.setValue(t?this.onTrue.getValue(e):this.onFalse.getValue(e),e)}getClassName(){return"FlowGraphConditionalBlock"}}ve("FlowGraphConditionalBlock",WJ);const lze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphConditionalDataBlock:WJ},Symbol.toStringTag,{value:"Module"}));class HJ extends Vu{constructor(e){super(e),this.config=e,this.value=this.registerDataOutput("value",ii,e.initialValue)}_updateOutputs(e){const t=this.config.variable;e.hasVariable(t)&&this.value.setValue(e.getVariable(t),e)}serialize(e){super.serialize(e),e.config.variable=this.config.variable}getClassName(){return"FlowGraphGetVariableBlock"}}ve("FlowGraphGetVariableBlock",HJ);const cze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphGetVariableBlock:HJ},Symbol.toStringTag,{value:"Module"}));class YJ extends o3{constructor(e){if(super(e),!e.variable&&!e.variables)throw new Error("FlowGraphSetVariableBlock: variable/variables is not defined");if(e.variables&&e.variable)throw new Error("FlowGraphSetVariableBlock: variable and variables are both defined");if(e.variables)for(const t of e.variables)this.registerDataInput(t,ii);else this.registerDataInput("value",ii)}_execute(e,t){var i,s;if((i=this.config)!=null&&i.variables)for(const r of this.config.variables)this._saveVariable(e,r);else this._saveVariable(e,(s=this.config)==null?void 0:s.variable,"value");this.out._activateSignal(e)}_saveVariable(e,t,i){var n;const s=e._getGlobalContextVariable("currentlyRunningAnimationGroups",[]);for(const o of s){const l=e.assetsContext.animationGroups[o];for(const c of l.targetedAnimations)if(c.target===e&&c.target===e&&c.animation.targetProperty===t){l.stop();const u=s.indexOf(o);u>-1&&s.splice(u,1),e._setGlobalContextVariable("currentlyRunningAnimationGroups",s);break}}const r=(n=this.getDataInput(i||t))==null?void 0:n.getValue(e);e.setVariable(t,r)}getClassName(){return"FlowGraphSetVariableBlock"}serialize(e){var t;super.serialize(e),e.config.variable=(t=this.config)==null?void 0:t.variable}}ve("FlowGraphSetVariableBlock",YJ);const uze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphSetVariableBlock:YJ},Symbol.toStringTag,{value:"Module"}));class XJ extends Vu{constructor(e){super(e),this.sourceSystem=this.registerDataInput("sourceSystem",ii),this.destinationSystem=this.registerDataInput("destinationSystem",ii),this.inputCoordinates=this.registerDataInput("inputCoordinates",ou),this.outputCoordinates=this.registerDataOutput("outputCoordinates",ou)}_updateOutputs(e){const t=this.sourceSystem.getValue(e),i=this.destinationSystem.getValue(e),s=this.inputCoordinates.getValue(e),r=t.getWorldMatrix(),n=i.getWorldMatrix(),o=ae.Matrix[0].copyFrom(n);o.invert();const l=ae.Matrix[1];o.multiplyToRef(r,l);const c=this.outputCoordinates.getValue(e);P.TransformCoordinatesToRef(s,l,c)}getClassName(){return"FlowGraphTransformCoordinatesSystemBlock"}}ve("FlowGraphTransformCoordinatesSystemBlock",XJ);const hze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphTransformCoordinatesSystemBlock:XJ},Symbol.toStringTag,{value:"Module"})),$0e="cachedOperationValue",epe="cachedExecutionId";class SL extends Vu{constructor(e,t){super(t),this.value=this.registerDataOutput("value",e),this.isValid=this.registerDataOutput("isValid",ju)}_updateOutputs(e){const t=e._getExecutionVariable(this,epe,-1),i=e._getExecutionVariable(this,$0e,null);if(i!=null&&t===e.executionId)this.isValid.setValue(!0,e),this.value.setValue(i,e);else try{const s=this._doOperation(e);if(s==null){this.isValid.setValue(!1,e);return}e._setExecutionVariable(this,$0e,s),e._setExecutionVariable(this,epe,e.executionId),this.value.setValue(s,e),this.isValid.setValue(!0,e)}catch{this.isValid.setValue(!1,e)}}}class ZJ extends SL{constructor(e){super(ii,e),this.config=e,this.object=this.registerDataInput("object",ii,e.object),this.propertyName=this.registerDataInput("propertyName",ii,e.propertyName),this.customGetFunction=this.registerDataInput("customGetFunction",ii)}_doOperation(e){const t=this.customGetFunction.getValue(e);let i;if(t)i=t(this.object.getValue(e),this.propertyName.getValue(e),e);else{const s=this.object.getValue(e),r=this.propertyName.getValue(e);i=s&&r?this._getPropertyValue(s,r):void 0}return i}_getPropertyValue(e,t){const i=t.split(".");let s=e;for(const r of i)if(s=s[r],s===void 0)return;return s}getClassName(){return"FlowGraphGetPropertyBlock"}}ve("FlowGraphGetPropertyBlock",ZJ);const dze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphGetPropertyBlock:ZJ},Symbol.toStringTag,{value:"Module"}));class KJ extends o3{constructor(e){super(e),this.config=e,this.object=this.registerDataInput("object",ii,e.target),this.value=this.registerDataInput("value",ii),this.propertyName=this.registerDataInput("propertyName",ii,e.propertyName),this.customSetFunction=this.registerDataInput("customSetFunction",ii)}_execute(e,t){try{const i=this.object.getValue(e),s=this.value.getValue(e),r=this.customSetFunction.getValue(e);r?r(i,this.propertyName.getValue(e),s,e):this._setPropertyValue(i,this.propertyName.getValue(e),s)}catch(i){this._reportError(e,i)}this.out._activateSignal(e)}_setPropertyValue(e,t,i){const s=t.split(".");let r=e;for(let n=0;n<s.length-1;n++){const o=s[n];r[o]===void 0&&(r[o]={}),r=r[o]}r[s[s.length-1]]=i}getClassName(){return"FlowGraphSetPropertyBlock"}}ve("FlowGraphSetPropertyBlock",KJ);const fze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphSetPropertyBlock:KJ},Symbol.toStringTag,{value:"Module"}));class qJ extends Vu{constructor(e){super(e),this.config=e,this.output=this.registerDataOutput("output",_1e(e.value))}_updateOutputs(e){this.output.setValue(this.config.value,e)}getClassName(){return"FlowGraphConstantBlock"}serialize(e={},t=bW){super.serialize(e),t("value",this.config.value,e.config)}}ve("FlowGraphConstantBlock",qJ);const pze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphConstantBlock:qJ},Symbol.toStringTag,{value:"Module"}));class QJ extends Vu{constructor(e){super(e),this.config=e,this.type=this.registerDataInput("type",ii,e.type),this.value=this.registerDataOutput("value",ii),this.index=this.registerDataInput("index",ii,new Yr(b0(e.index??-1)))}_updateOutputs(e){const t=this.type.getValue(e),i=this.index.getValue(e),s=OK(e.assetsContext,t,b0(i),this.config.useIndexAsUniqueId);this.value.setValue(s,e)}getClassName(){return"FlowGraphGetAssetBlock"}}ve("FlowGraphGetAssetBlock",QJ);const mze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphGetAssetBlock:QJ},Symbol.toStringTag,{value:"Module"}));class JJ extends Vu{constructor(e){super(e),this.config=e,this._inputCases=new Map,this.case=this.registerDataInput("case",ii,NaN),this.default=this.registerDataInput("default",ii),this.value=this.registerDataOutput("value",ii),(this.config.cases||[]).forEach(t=>{t=b0(t),!(this.config.treatCasesAsIntegers&&(t=t|0,this._inputCases.has(t)))&&this._inputCases.set(t,this.registerDataInput(`in_${t}`,ii))})}_updateOutputs(e){const t=this.case.getValue(e);let i;DP(t)?i=this._getOutputValueForCase(b0(t),e):i=this.default.getValue(e),this.value.setValue(i,e)}_getOutputValueForCase(e,t){var i;return(i=this._inputCases.get(e))==null?void 0:i.getValue(t)}getClassName(){return"FlowGraphDataSwitchBlock"}}ve("FlowGraphDataSwitchBlock",JJ);const gze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphDataSwitchBlock:JJ},Symbol.toStringTag,{value:"Module"}));class Bl extends SL{constructor(e,t,i,s,r,n){super(i,n),this._operation=s,this._className=r,this.a=this.registerDataInput("a",e),this.b=this.registerDataInput("b",t)}_doOperation(e){const t=this.a.getValue(e),i=this.b.getValue(e);return this._operation(t,i)}getClassName(){return this._className}}class LB extends SL{constructor(e,t,i,s){super(e,s),this._operation=t,this._className=i}_doOperation(e){return this._operation(e)}getClassName(){return this._className}}class Pr extends SL{constructor(e,t,i,s,r){super(t,r),this._operation=i,this._className=s,this.a=this.registerDataInput("a",e)}_doOperation(e){return this._operation(this.a.getValue(e))}getClassName(){return this._className}}class $J extends SL{constructor(e,t,i,s,r,n,o){super(s,o),this._operation=r,this._className=n,this.a=this.registerDataInput("a",e),this.b=this.registerDataInput("b",t),this.c=this.registerDataInput("c",i)}_doOperation(e){return this._operation(this.a.getValue(e),this.b.getValue(e),this.c.getValue(e))}getClassName(){return this._className}}class e$ extends Bl{constructor(e){super(vn(e==null?void 0:e.type),vn(e==null?void 0:e.type),vn(e==null?void 0:e.type),(t,i)=>this._polymorphicAdd(t,i),"FlowGraphAddBlock",e)}_polymorphicAdd(e,t){const i=K1(e),s=K1(t);return Zw(i,s)||Kw(i,s)||qw(i,s)||i==="Quaternion"||s==="Quaternion"?e.add(t):e+t}}ve("FlowGraphAddBlock",e$);class t$ extends Bl{constructor(e){super(vn(e==null?void 0:e.type),vn(e==null?void 0:e.type),vn(e==null?void 0:e.type),(t,i)=>this._polymorphicSubtract(t,i),"FlowGraphSubtractBlock",e)}_polymorphicSubtract(e,t){const i=K1(e),s=K1(t);return Zw(i,s)||qw(i,s)||Kw(i,s)||i==="Quaternion"||s==="Quaternion"?e.subtract(t):e-t}}ve("FlowGraphSubtractBlock",t$);class i$ extends Bl{constructor(e){super(vn(e==null?void 0:e.type),vn(e==null?void 0:e.type),vn(e==null?void 0:e.type),(t,i)=>this._polymorphicMultiply(t,i),"FlowGraphMultiplyBlock",e)}_polymorphicMultiply(e,t){var r;const i=K1(e),s=K1(t);if(Zw(i,s)||qw(i,s))return e.multiply(t);if(i==="Quaternion"||s==="Quaternion"){const n=e.clone();return n.x*=t.x,n.y*=t.y,n.z*=t.z,n.w*=t.w,n}else if(Kw(i,s))if((r=this.config)!=null&&r.useMatrixPerComponent){const n=e.m;for(let o=0;o<n.length;o++)n[o]*=t.m[o];return i==="Matrix2D"?new X1(n):i==="Matrix3D"?new Z1(n):me.FromArray(n)}else return e=e,t=t,t.multiply(e);else return e*t}}ve("FlowGraphMultiplyBlock",i$);class s$ extends Bl{constructor(e){super(vn(e==null?void 0:e.type),vn(e==null?void 0:e.type),vn(e==null?void 0:e.type),(t,i)=>this._polymorphicDivide(t,i),"FlowGraphDivideBlock",e)}_polymorphicDivide(e,t){var r;const i=K1(e),s=K1(t);if(Zw(i,s)||qw(i,s))return e.divide(t);if(i==="Quaternion"||s==="Quaternion"){const n=e.clone();return n.x/=t.x,n.y/=t.y,n.z/=t.z,n.w/=t.w,n}else if(Kw(i,s))if((r=this.config)!=null&&r.useMatrixPerComponent){const n=e.m;for(let o=0;o<n.length;o++)n[o]/=t.m[o];return i==="Matrix2D"?new X1(n):i==="Matrix3D"?new Z1(n):me.FromArray(n)}else return e=e,t=t,e.divide(t);else return e/t}}ve("FlowGraphDivideBlock",s$);class r$ extends LB{constructor(e){super(ds,t=>this._random(t),"FlowGraphRandomBlock",e),this.min=this.registerDataInput("min",ds,(e==null?void 0:e.min)??0),this.max=this.registerDataInput("max",ds,(e==null?void 0:e.max)??1),e!=null&&e.seed&&(this._seed=e.seed)}_isSeed(e=this._seed){return e!==void 0}_getRandomValue(){if(this._isSeed(this._seed)){const e=Math.sin(this._seed++)*1e4;return e-Math.floor(e)}return Math.random()}_random(e){const t=this.min.getValue(e),i=this.max.getValue(e);return this._getRandomValue()*(i-t)+t}}ve("FlowGraphRandomBlock",r$);class n$ extends LB{constructor(e){super(ds,()=>Math.E,"FlowGraphEBlock",e)}}ve("FlowGraphEBlock",n$);class a$ extends LB{constructor(e){super(ds,()=>Math.PI,"FlowGraphPIBlock",e)}}ve("FlowGraphPIBlock",a$);class o$ extends LB{constructor(e){super(ds,()=>Number.POSITIVE_INFINITY,"FlowGraphInfBlock",e)}}ve("FlowGraphInfBlock",o$);class l$ extends LB{constructor(e){super(ds,()=>Number.NaN,"FlowGraphNaNBlock",e)}}ve("FlowGraphNaNBlock",l$);function Mo(a,e){switch(K1(a)){case"FlowGraphInteger":return a=a,new Yr(e(a.value));case"Vector2":return a=a,new Ue(e(a.x),e(a.y));case"Vector3":return a=a,new P(e(a.x),e(a.y),e(a.z));case"Vector4":return a=a,new Yt(e(a.x),e(a.y),e(a.z),e(a.w));case"Quaternion":return a=a,new Re(e(a.x),e(a.y),e(a.z),e(a.w));case"Matrix":return a=a,me.FromArray(a.m.map(e));case"Matrix2D":return a=a,new X1(a.m.map(e));case"Matrix3D":return a=a,new Z1(a.m.map(e));default:return a=a,e(a)}}class c$ extends Pr{constructor(e){super(ds,ds,t=>this._polymorphicAbs(t),"FlowGraphAbsBlock",e)}_polymorphicAbs(e){return Mo(e,Math.abs)}}ve("FlowGraphAbsBlock",c$);class u$ extends Pr{constructor(e){super(ds,ds,t=>this._polymorphicSign(t),"FlowGraphSignBlock",e)}_polymorphicSign(e){return Mo(e,Math.sign)}}ve("FlowGraphSignBlock",u$);class h$ extends Pr{constructor(e){super(ds,ds,t=>this._polymorphicTrunc(t),"FlowGraphTruncBlock",e)}_polymorphicTrunc(e){return Mo(e,Math.trunc)}}ve("FlowGraphTruncBlock",h$);class d$ extends Pr{constructor(e){super(ds,ds,t=>this._polymorphicFloor(t),"FlowGraphFloorBlock",e)}_polymorphicFloor(e){return Mo(e,Math.floor)}}ve("FlowGraphFloorBlock",d$);class f$ extends Pr{constructor(e){super(ii,ii,t=>this._polymorphicCeiling(t),"FlowGraphCeilBlock",e)}_polymorphicCeiling(e){return Mo(e,Math.ceil)}}ve("FlowGraphCeilBlock",f$);class p$ extends Pr{constructor(e){super(ii,ii,t=>this._polymorphicRound(t),"FlowGraphRoundBlock",e)}_polymorphicRound(e){return Mo(e,t=>{var i;return t<0&&((i=this.config)!=null&&i.roundHalfAwayFromZero)?-Math.round(-t):Math.round(t)})}}ve("FlowGraphRoundBlock",p$);class m$ extends Pr{constructor(e){super(ii,ii,t=>this._polymorphicFraction(t),"FlowGraphFractBlock",e)}_polymorphicFraction(e){return Mo(e,t=>t-Math.floor(t))}}ve("FlowGraphFractBlock",m$);class g$ extends Pr{constructor(e){super(ii,ii,t=>this._polymorphicNeg(t),"FlowGraphNegationBlock",e)}_polymorphicNeg(e){return Mo(e,t=>-t)}}ve("FlowGraphNegationBlock",g$);function IB(a,e,t){switch(K1(a)){case"FlowGraphInteger":return a=a,e=e,new Yr(t(a.value,e.value));case"Vector2":return a=a,e=e,new Ue(t(a.x,e.x),t(a.y,e.y));case"Vector3":return a=a,e=e,new P(t(a.x,e.x),t(a.y,e.y),t(a.z,e.z));case"Vector4":return a=a,e=e,new Yt(t(a.x,e.x),t(a.y,e.y),t(a.z,e.z),t(a.w,e.w));case"Quaternion":return a=a,e=e,new Re(t(a.x,e.x),t(a.y,e.y),t(a.z,e.z),t(a.w,e.w));case"Matrix":return a=a,me.FromArray(a.m.map((s,r)=>t(s,e.m[r])));case"Matrix2D":return a=a,new X1(a.m.map((s,r)=>t(s,e.m[r])));case"Matrix3D":return a=a,new Z1(a.m.map((s,r)=>t(s,e.m[r])));default:return t(a,e)}}class _$ extends Bl{constructor(e){super(ii,ii,ii,(t,i)=>this._polymorphicRemainder(t,i),"FlowGraphModuloBlock",e)}_polymorphicRemainder(e,t){return IB(e,t,(i,s)=>i%s)}}ve("FlowGraphModuloBlock",_$);class v$ extends Bl{constructor(e){super(ii,ii,ii,(t,i)=>this._polymorphicMin(t,i),"FlowGraphMinBlock",e)}_polymorphicMin(e,t){return IB(e,t,Math.min)}}ve("FlowGraphMinBlock",v$);class A$ extends Bl{constructor(e){super(ii,ii,ii,(t,i)=>this._polymorphicMax(t,i),"FlowGraphMaxBlock",e)}_polymorphicMax(e,t){return IB(e,t,Math.max)}}ve("FlowGraphMaxBlock",A$);function _ze(a,e,t){return Math.min(Math.max(a,Math.min(e,t)),Math.max(e,t))}function tpe(a,e,t,i){switch(K1(a)){case"FlowGraphInteger":return a=a,e=e,t=t,new Yr(i(a.value,e.value,t.value));case"Vector2":return a=a,e=e,t=t,new Ue(i(a.x,e.x,t.x),i(a.y,e.y,t.y));case"Vector3":return a=a,e=e,t=t,new P(i(a.x,e.x,t.x),i(a.y,e.y,t.y),i(a.z,e.z,t.z));case"Vector4":return a=a,e=e,t=t,new Yt(i(a.x,e.x,t.x),i(a.y,e.y,t.y),i(a.z,e.z,t.z),i(a.w,e.w,t.w));case"Quaternion":return a=a,e=e,t=t,new Re(i(a.x,e.x,t.x),i(a.y,e.y,t.y),i(a.z,e.z,t.z),i(a.w,e.w,t.w));case"Matrix":return me.FromArray(a.m.map((r,n)=>i(r,e.m[n],t.m[n])));case"Matrix2D":return new X1(a.m.map((r,n)=>i(r,e.m[n],t.m[n])));case"Matrix3D":return new Z1(a.m.map((r,n)=>i(r,e.m[n],t.m[n])));default:return i(a,e,t)}}class C$ extends $J{constructor(e){super(ii,ii,ii,ii,(t,i,s)=>this._polymorphicClamp(t,i,s),"FlowGraphClampBlock",e)}_polymorphicClamp(e,t,i){return tpe(e,t,i,_ze)}}ve("FlowGraphClampBlock",C$);function vze(a){return Math.min(Math.max(a,0),1)}class x$ extends Pr{constructor(e){super(ii,ii,t=>this._polymorphicSaturate(t),"FlowGraphSaturateBlock",e)}_polymorphicSaturate(e){return Mo(e,vze)}}ve("FlowGraphSaturateBlock",x$);function Aze(a,e,t){return(1-t)*a+t*e}class b$ extends $J{constructor(e){super(ii,ii,ii,ii,(t,i,s)=>this._polymorphicInterpolate(t,i,s),"FlowGraphMathInterpolationBlock",e)}_polymorphicInterpolate(e,t,i){return tpe(e,t,i,Aze)}}ve("FlowGraphMathInterpolationBlock",b$);class S$ extends Bl{constructor(e){super(ii,ii,ju,(t,i)=>this._polymorphicEq(t,i),"FlowGraphEqualityBlock",e)}_polymorphicEq(e,t){const i=K1(e),s=K1(t);return Zw(i,s)||Kw(i,s)||qw(i,s)?e.equals(t):e===t}}ve("FlowGraphEqualityBlock",S$);function vH(a,e,t){if(DP(a)&&DP(e))return t(b0(a),b0(e));throw new Error(`Cannot compare ${a} and ${e}`)}class y$ extends Bl{constructor(e){super(ii,ii,ju,(t,i)=>this._polymorphicLessThan(t,i),"FlowGraphLessThanBlock",e)}_polymorphicLessThan(e,t){return vH(e,t,(i,s)=>i<s)}}ve("FlowGraphLessThanBlock",y$);class M$ extends Bl{constructor(e){super(ii,ii,ju,(t,i)=>this._polymorphicLessThanOrEqual(t,i),"FlowGraphLessThanOrEqualBlock",e)}_polymorphicLessThanOrEqual(e,t){return vH(e,t,(i,s)=>i<=s)}}ve("FlowGraphLessThanOrEqualBlock",M$);class E$ extends Bl{constructor(e){super(ii,ii,ju,(t,i)=>this._polymorphicGreaterThan(t,i),"FlowGraphGreaterThanBlock",e)}_polymorphicGreaterThan(e,t){return vH(e,t,(i,s)=>i>s)}}ve("FlowGraphGreaterThanBlock",E$);class T$ extends Bl{constructor(e){super(ii,ii,ju,(t,i)=>this._polymorphicGreaterThanOrEqual(t,i),"FlowGraphGreaterThanOrEqualBlock",e)}_polymorphicGreaterThanOrEqual(e,t){return vH(e,t,(i,s)=>i>=s)}}ve("FlowGraphGreaterThanOrEqualBlock",T$);class L$ extends Pr{constructor(e){super(ii,ju,t=>this._polymorphicIsNan(t),"FlowGraphIsNaNBlock",e)}_polymorphicIsNan(e){if(DP(e))return isNaN(b0(e));throw new Error(`Cannot get NaN of ${e}`)}}ve("FlowGraphIsNaNBlock",L$);class I$ extends Pr{constructor(e){super(ii,ju,t=>this._polymorphicIsInf(t),"FlowGraphIsInfBlock",e)}_polymorphicIsInf(e){if(DP(e))return!isFinite(b0(e));throw new Error(`Cannot get isInf of ${e}`)}}ve("FlowGraphIsInfBlock",I$);class P$ extends Pr{constructor(e){super(ii,ii,t=>this._polymorphicDegToRad(t),"FlowGraphDegToRadBlock",e)}_degToRad(e){return e*Math.PI/180}_polymorphicDegToRad(e){return Mo(e,this._degToRad)}}ve("FlowGraphDegToRadBlock",P$);class O$ extends Pr{constructor(e){super(ii,ii,t=>this._polymorphicRadToDeg(t),"FlowGraphRadToDegBlock",e)}_radToDeg(e){return e*180/Math.PI}_polymorphicRadToDeg(e){return Mo(e,this._radToDeg)}}ve("FlowGraphRadToDegBlock",O$);class ipe extends Pr{constructor(e){super(ds,ds,t=>this._polymorphicSin(t),"FlowGraphSinBlock",e)}_polymorphicSin(e){return Mo(e,Math.sin)}}class spe extends Pr{constructor(e){super(ds,ds,t=>this._polymorphicCos(t),"FlowGraphCosBlock",e)}_polymorphicCos(e){return Mo(e,Math.cos)}}class rpe extends Pr{constructor(e){super(ds,ds,t=>this._polymorphicTan(t),"FlowGraphTanBlock",e)}_polymorphicTan(e){return Mo(e,Math.tan)}}class R$ extends Pr{constructor(e){super(ds,ds,t=>this._polymorphicAsin(t),"FlowGraphASinBlock",e)}_polymorphicAsin(e){return Mo(e,Math.asin)}}ve("FlowGraphASinBlock",R$);class D$ extends Pr{constructor(e){super(ds,ds,t=>this._polymorphicAcos(t),"FlowGraphACosBlock",e)}_polymorphicAcos(e){return Mo(e,Math.acos)}}ve("FlowGraphACosBlock",D$);class N$ extends Pr{constructor(e){super(ds,ds,t=>this._polymorphicAtan(t),"FlowGraphATanBlock",e)}_polymorphicAtan(e){return Mo(e,Math.atan)}}ve("FlowGraphATanBlock",N$);class w$ extends Bl{constructor(e){super(ii,ii,ii,(t,i)=>this._polymorphicAtan2(t,i),"FlowGraphATan2Block",e)}_polymorphicAtan2(e,t){return IB(e,t,Math.atan2)}}ve("FlowGraphATan2Block",w$);class B$ extends Pr{constructor(e){super(ii,ii,t=>this._polymorphicSinh(t),"FlowGraphSinhBlock",e)}_polymorphicSinh(e){return Mo(e,Math.sinh)}}ve("FlowGraphSinhBlock",B$);class z$ extends Pr{constructor(e){super(ii,ii,t=>this._polymorphicCosh(t),"FlowGraphCoshBlock",e)}_polymorphicCosh(e){return Mo(e,Math.cosh)}}ve("FlowGraphCoshBlock",z$);class F$ extends Pr{constructor(e){super(ii,ii,t=>this._polymorphicTanh(t),"FlowGraphTanhBlock",e)}_polymorphicTanh(e){return Mo(e,Math.tanh)}}ve("FlowGraphTanhBlock",F$);class k$ extends Pr{constructor(e){super(ii,ds,t=>this._polymorphicAsinh(t),"FlowGraphASinhBlock",e)}_polymorphicAsinh(e){return Mo(e,Math.asinh)}}ve("FlowGraphASinhBlock",k$);class U$ extends Pr{constructor(e){super(ii,ds,t=>this._polymorphicAcosh(t),"FlowGraphACoshBlock",e)}_polymorphicAcosh(e){return Mo(e,Math.acosh)}}ve("FlowGraphACoshBlock",U$);class j$ extends Pr{constructor(e){super(ii,ds,t=>this._polymorphicAtanh(t),"FlowGraphATanhBlock",e)}_polymorphicAtanh(e){return Mo(e,Math.atanh)}}ve("FlowGraphATanhBlock",j$);class V$ extends Pr{constructor(e){super(ii,ds,t=>this._polymorphicExp(t),"FlowGraphExponentialBlock",e)}_polymorphicExp(e){return Mo(e,Math.exp)}}ve("FlowGraphExponentialBlock",V$);class G$ extends Pr{constructor(e){super(ii,ds,t=>this._polymorphicLog(t),"FlowGraphLogBlock",e)}_polymorphicLog(e){return Mo(e,Math.log)}}ve("FlowGraphLogBlock",G$);class W$ extends Pr{constructor(e){super(ii,ds,t=>this._polymorphicLog2(t),"FlowGraphLog2Block",e)}_polymorphicLog2(e){return Mo(e,Math.log2)}}ve("FlowGraphLog2Block",W$);class H$ extends Pr{constructor(e){super(ii,ds,t=>this._polymorphicLog10(t),"FlowGraphLog10Block",e)}_polymorphicLog10(e){return Mo(e,Math.log10)}}ve("FlowGraphLog10Block",H$);class Y$ extends Pr{constructor(e){super(ii,ds,t=>this._polymorphicSqrt(t),"FlowGraphSquareRootBlock",e)}_polymorphicSqrt(e){return Mo(e,Math.sqrt)}}ve("FlowGraphSquareRootBlock",Y$);class X$ extends Pr{constructor(e){super(ii,ds,t=>this._polymorphicCubeRoot(t),"FlowGraphCubeRootBlock",e)}_polymorphicCubeRoot(e){return Mo(e,Math.cbrt)}}ve("FlowGraphCubeRootBlock",X$);class Z$ extends Bl{constructor(e){super(ii,ds,ds,(t,i)=>this._polymorphicPow(t,i),"FlowGraphPowerBlock",e)}_polymorphicPow(e,t){return IB(e,t,Math.pow)}}ve("FlowGraphPowerBlock",Z$);class K$ extends Pr{constructor(e){super(vn((e==null?void 0:e.valueType)||"FlowGraphInteger"),vn((e==null?void 0:e.valueType)||"FlowGraphInteger"),t=>typeof t=="boolean"?!t:typeof t=="number"?~t:new Yr(~t.value),"FlowGraphBitwiseNotBlock",e)}}ve("FlowGraphBitwiseNotBlock",K$);class q$ extends Bl{constructor(e){super(vn((e==null?void 0:e.valueType)||"FlowGraphInteger"),vn((e==null?void 0:e.valueType)||"FlowGraphInteger"),vn((e==null?void 0:e.valueType)||"FlowGraphInteger"),(t,i)=>{if(typeof t=="boolean"&&typeof i=="boolean")return t&&i;if(typeof t=="number"&&typeof i=="number")return t&i;if(typeof t=="object"&&typeof i=="object")return new Yr(t.value&i.value);throw new Error(`Cannot perform bitwise AND on ${t} and ${i}`)},"FlowGraphBitwiseAndBlock",e)}}ve("FlowGraphBitwiseAndBlock",q$);class Q$ extends Bl{constructor(e){super(vn((e==null?void 0:e.valueType)||"FlowGraphInteger"),vn((e==null?void 0:e.valueType)||"FlowGraphInteger"),vn((e==null?void 0:e.valueType)||"FlowGraphInteger"),(t,i)=>{if(typeof t=="boolean"&&typeof i=="boolean")return t||i;if(typeof t=="number"&&typeof i=="number")return t|i;if(typeof t=="object"&&typeof i=="object")return new Yr(t.value|i.value);throw new Error(`Cannot perform bitwise OR on ${t} and ${i}`)},"FlowGraphBitwiseOrBlock",e)}}ve("FlowGraphBitwiseOrBlock",Q$);class J$ extends Bl{constructor(e){super(vn((e==null?void 0:e.valueType)||"FlowGraphInteger"),vn((e==null?void 0:e.valueType)||"FlowGraphInteger"),vn((e==null?void 0:e.valueType)||"FlowGraphInteger"),(t,i)=>{if(typeof t=="boolean"&&typeof i=="boolean")return t!==i;if(typeof t=="number"&&typeof i=="number")return t^i;if(typeof t=="object"&&typeof i=="object")return new Yr(t.value^i.value);throw new Error(`Cannot perform bitwise XOR on ${t} and ${i}`)},"FlowGraphBitwiseXorBlock",e)}}ve("FlowGraphBitwiseXorBlock",J$);class $$ extends Bl{constructor(e){super(Dl,Dl,Dl,(t,i)=>new Yr(t.value<<i.value),"FlowGraphBitwiseLeftShiftBlock",e)}}ve("FlowGraphBitwiseLeftShiftBlock",$$);class eee extends Bl{constructor(e){super(Dl,Dl,Dl,(t,i)=>new Yr(t.value>>i.value),"FlowGraphBitwiseRightShiftBlock",e)}}ve("FlowGraphBitwiseRightShiftBlock",eee);class tee extends Pr{constructor(e){super(Dl,Dl,t=>new Yr(Math.clz32(t.value)),"FlowGraphLeadingZerosBlock",e)}}ve("FlowGraphLeadingZerosBlock",tee);class iee extends Pr{constructor(e){super(Dl,Dl,t=>new Yr(t.value?31-Math.clz32(t.value&-t.value):32),"FlowGraphTrailingZerosBlock",e)}}ve("FlowGraphTrailingZerosBlock",iee);function Cze(a){let e=0;for(;a;)e+=a&1,a>>=1;return e}class see extends Pr{constructor(e){super(Dl,Dl,t=>new Yr(Cze(t.value)),"FlowGraphOneBitsCounterBlock",e)}}ve("FlowGraphOneBitsCounterBlock",see);const Fs=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphAbsBlock:c$,FlowGraphAcosBlock:D$,FlowGraphAcoshBlock:U$,FlowGraphAddBlock:e$,FlowGraphAsinBlock:R$,FlowGraphAsinhBlock:k$,FlowGraphAtan2Block:w$,FlowGraphAtanBlock:N$,FlowGraphAtanhBlock:j$,FlowGraphBitwiseAndBlock:q$,FlowGraphBitwiseLeftShiftBlock:$$,FlowGraphBitwiseNotBlock:K$,FlowGraphBitwiseOrBlock:Q$,FlowGraphBitwiseRightShiftBlock:eee,FlowGraphBitwiseXorBlock:J$,FlowGraphCeilBlock:f$,FlowGraphClampBlock:C$,FlowGraphCosBlock:spe,FlowGraphCoshBlock:z$,FlowGraphCubeRootBlock:X$,FlowGraphDegToRadBlock:P$,FlowGraphDivideBlock:s$,FlowGraphEBlock:n$,FlowGraphEqualityBlock:S$,FlowGraphExpBlock:V$,FlowGraphFloorBlock:d$,FlowGraphFractionBlock:m$,FlowGraphGreaterThanBlock:E$,FlowGraphGreaterThanOrEqualBlock:T$,FlowGraphInfBlock:o$,FlowGraphIsInfinityBlock:I$,FlowGraphIsNanBlock:L$,FlowGraphLeadingZerosBlock:tee,FlowGraphLessThanBlock:y$,FlowGraphLessThanOrEqualBlock:M$,FlowGraphLog10Block:H$,FlowGraphLog2Block:W$,FlowGraphLogBlock:G$,FlowGraphMathInterpolationBlock:b$,FlowGraphMaxBlock:A$,FlowGraphMinBlock:v$,FlowGraphModuloBlock:_$,FlowGraphMultiplyBlock:i$,FlowGraphNaNBlock:l$,FlowGraphNegationBlock:g$,FlowGraphOneBitsCounterBlock:see,FlowGraphPiBlock:a$,FlowGraphPowerBlock:Z$,FlowGraphRadToDegBlock:O$,FlowGraphRandomBlock:r$,FlowGraphRoundBlock:p$,FlowGraphSaturateBlock:x$,FlowGraphSignBlock:u$,FlowGraphSinBlock:ipe,FlowGraphSinhBlock:B$,FlowGraphSquareRootBlock:Y$,FlowGraphSubtractBlock:t$,FlowGraphTanBlock:rpe,FlowGraphTanhBlock:F$,FlowGraphTrailingZerosBlock:iee,FlowGraphTruncBlock:h$},Symbol.toStringTag,{value:"Module"}));class $P extends SL{constructor(e,t,i){super(t,i);for(let s=0;s<e;s++)this.registerDataInput(`input_${s}`,ds,0)}}class eO extends Vu{constructor(e,t,i){super(i),this.registerDataInput("input",t);for(let s=0;s<e;s++)this.registerDataOutput(`output_${s}`,ds,0)}}class ree extends $P{constructor(e){super(2,nb,e)}_doOperation(e){e._hasExecutionVariable(this,"cachedVector")||e._setExecutionVariable(this,"cachedVector",new Ue);const t=e._getExecutionVariable(this,"cachedVector",null);return t.set(this.getDataInput("input_0").getValue(e),this.getDataInput("input_1").getValue(e)),t}getClassName(){return"FlowGraphCombineVector2Block"}}ve("FlowGraphCombineVector2Block",ree);class nee extends $P{constructor(e){super(3,ou,e)}_doOperation(e){e._hasExecutionVariable(this,"cachedVector")||e._setExecutionVariable(this,"cachedVector",new P);const t=e._getExecutionVariable(this,"cachedVector",null);return t.set(this.getDataInput("input_0").getValue(e),this.getDataInput("input_1").getValue(e),this.getDataInput("input_2").getValue(e)),t}getClassName(){return"FlowGraphCombineVector3Block"}}ve("FlowGraphCombineVector3Block",nee);class aee extends $P{constructor(e){super(4,Ww,e)}_doOperation(e){e._hasExecutionVariable(this,"cachedVector")||e._setExecutionVariable(this,"cachedVector",new Yt);const t=e._getExecutionVariable(this,"cachedVector",null);return t.set(this.getDataInput("input_0").getValue(e),this.getDataInput("input_1").getValue(e),this.getDataInput("input_2").getValue(e),this.getDataInput("input_3").getValue(e)),t}getClassName(){return"FlowGraphCombineVector4Block"}}ve("FlowGraphCombineVector4Block",aee);class oee extends $P{constructor(e){super(16,Iy,e)}_doOperation(e){var i;e._hasExecutionVariable(this,"cachedMatrix")||e._setExecutionVariable(this,"cachedMatrix",new me);const t=e._getExecutionVariable(this,"cachedMatrix",null);return(i=this.config)!=null&&i.inputIsColumnMajor?t.set(this.getDataInput("input_0").getValue(e),this.getDataInput("input_4").getValue(e),this.getDataInput("input_8").getValue(e),this.getDataInput("input_12").getValue(e),this.getDataInput("input_1").getValue(e),this.getDataInput("input_5").getValue(e),this.getDataInput("input_9").getValue(e),this.getDataInput("input_13").getValue(e),this.getDataInput("input_2").getValue(e),this.getDataInput("input_6").getValue(e),this.getDataInput("input_10").getValue(e),this.getDataInput("input_14").getValue(e),this.getDataInput("input_3").getValue(e),this.getDataInput("input_7").getValue(e),this.getDataInput("input_11").getValue(e),this.getDataInput("input_15").getValue(e)):t.set(this.getDataInput("input_0").getValue(e),this.getDataInput("input_1").getValue(e),this.getDataInput("input_2").getValue(e),this.getDataInput("input_3").getValue(e),this.getDataInput("input_4").getValue(e),this.getDataInput("input_5").getValue(e),this.getDataInput("input_6").getValue(e),this.getDataInput("input_7").getValue(e),this.getDataInput("input_8").getValue(e),this.getDataInput("input_9").getValue(e),this.getDataInput("input_10").getValue(e),this.getDataInput("input_11").getValue(e),this.getDataInput("input_12").getValue(e),this.getDataInput("input_13").getValue(e),this.getDataInput("input_14").getValue(e),this.getDataInput("input_15").getValue(e)),t}getClassName(){return"FlowGraphCombineMatrixBlock"}}ve("FlowGraphCombineMatrixBlock",oee);class lee extends $P{constructor(e){super(4,Hw,e)}_doOperation(e){var s;e._hasExecutionVariable(this,"cachedMatrix")||e._setExecutionVariable(this,"cachedMatrix",new X1);const t=e._getExecutionVariable(this,"cachedMatrix",null),i=(s=this.config)!=null&&s.inputIsColumnMajor?[this.getDataInput("input_0").getValue(e),this.getDataInput("input_2").getValue(e),this.getDataInput("input_1").getValue(e),this.getDataInput("input_3").getValue(e)]:[this.getDataInput("input_0").getValue(e),this.getDataInput("input_1").getValue(e),this.getDataInput("input_2").getValue(e),this.getDataInput("input_3").getValue(e)];return t.fromArray(i),t}getClassName(){return"FlowGraphCombineMatrix2DBlock"}}ve("FlowGraphCombineMatrix2DBlock",lee);class cee extends $P{constructor(e){super(9,Yw,e)}_doOperation(e){var s;e._hasExecutionVariable(this,"cachedMatrix")||e._setExecutionVariable(this,"cachedMatrix",new Z1);const t=e._getExecutionVariable(this,"cachedMatrix",null),i=(s=this.config)!=null&&s.inputIsColumnMajor?[this.getDataInput("input_0").getValue(e),this.getDataInput("input_3").getValue(e),this.getDataInput("input_6").getValue(e),this.getDataInput("input_1").getValue(e),this.getDataInput("input_4").getValue(e),this.getDataInput("input_7").getValue(e),this.getDataInput("input_2").getValue(e),this.getDataInput("input_5").getValue(e),this.getDataInput("input_8").getValue(e)]:[this.getDataInput("input_0").getValue(e),this.getDataInput("input_1").getValue(e),this.getDataInput("input_2").getValue(e),this.getDataInput("input_3").getValue(e),this.getDataInput("input_4").getValue(e),this.getDataInput("input_5").getValue(e),this.getDataInput("input_6").getValue(e),this.getDataInput("input_7").getValue(e),this.getDataInput("input_8").getValue(e)];return t.fromArray(i),t}getClassName(){return"FlowGraphCombineMatrix3DBlock"}}ve("FlowGraphCombineMatrix3DBlock",cee);class uee extends eO{constructor(e){super(2,nb,e)}_updateOutputs(e){var i;let t=(i=this.getDataInput("input"))==null?void 0:i.getValue(e);t||(t=Ue.Zero(),this.getDataInput("input").setValue(t,e)),this.getDataOutput("output_0").setValue(t.x,e),this.getDataOutput("output_1").setValue(t.y,e)}getClassName(){return"FlowGraphExtractVector2Block"}}ve("FlowGraphExtractVector2Block",uee);class hee extends eO{constructor(e){super(3,ou,e)}_updateOutputs(e){var i;let t=(i=this.getDataInput("input"))==null?void 0:i.getValue(e);t||(t=P.Zero(),this.getDataInput("input").setValue(t,e)),this.getDataOutput("output_0").setValue(t.x,e),this.getDataOutput("output_1").setValue(t.y,e),this.getDataOutput("output_2").setValue(t.z,e)}getClassName(){return"FlowGraphExtractVector3Block"}}ve("FlowGraphExtractVector3Block",hee);class dee extends eO{constructor(e){super(4,Ww,e)}_updateOutputs(e){var i;let t=(i=this.getDataInput("input"))==null?void 0:i.getValue(e);t||(t=Yt.Zero(),this.getDataInput("input").setValue(t,e)),this.getDataOutput("output_0").setValue(t.x,e),this.getDataOutput("output_1").setValue(t.y,e),this.getDataOutput("output_2").setValue(t.z,e),this.getDataOutput("output_3").setValue(t.w,e)}getClassName(){return"FlowGraphExtractVector4Block"}}ve("FlowGraphExtractVector4Block",dee);class fee extends eO{constructor(e){super(16,Iy,e)}_updateOutputs(e){var i;let t=(i=this.getDataInput("input"))==null?void 0:i.getValue(e);t||(t=me.Identity(),this.getDataInput("input").setValue(t,e));for(let s=0;s<16;s++)this.getDataOutput(`output_${s}`).setValue(t.m[s],e)}getClassName(){return"FlowGraphExtractMatrixBlock"}}ve("FlowGraphExtractMatrixBlock",fee);class pee extends eO{constructor(e){super(4,Hw,e)}_updateOutputs(e){var i;let t=(i=this.getDataInput("input"))==null?void 0:i.getValue(e);t||(t=new X1,this.getDataInput("input").setValue(t,e));for(let s=0;s<4;s++)this.getDataOutput(`output_${s}`).setValue(t.m[s],e)}getClassName(){return"FlowGraphExtractMatrix2DBlock"}}ve("FlowGraphExtractMatrix2DBlock",pee);class mee extends eO{constructor(e){super(9,Yw,e)}_updateOutputs(e){var i;let t=(i=this.getDataInput("input"))==null?void 0:i.getValue(e);t||(t=new Z1,this.getDataInput("input").setValue(t,e));for(let s=0;s<9;s++)this.getDataOutput(`output_${s}`).setValue(t.m[s],e)}getClassName(){return"FlowGraphExtractMatrix3DBlock"}}ve("FlowGraphExtractMatrix3DBlock",mee);const t9=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphCombineMatrix2DBlock:lee,FlowGraphCombineMatrix3DBlock:cee,FlowGraphCombineMatrixBlock:oee,FlowGraphCombineVector2Block:ree,FlowGraphCombineVector3Block:nee,FlowGraphCombineVector4Block:aee,FlowGraphExtractMatrix2DBlock:pee,FlowGraphExtractMatrix3DBlock:mee,FlowGraphExtractMatrixBlock:fee,FlowGraphExtractVector2Block:uee,FlowGraphExtractVector3Block:hee,FlowGraphExtractVector4Block:dee},Symbol.toStringTag,{value:"Module"}));class gee extends Pr{constructor(e){super(vn((e==null?void 0:e.matrixType)||"Matrix"),vn((e==null?void 0:e.matrixType)||"Matrix"),t=>t.transpose?t.transpose():me.Transpose(t),"FlowGraphTransposeBlock",e)}}ve("FlowGraphTransposeBlock",gee);class _ee extends Pr{constructor(e){super(vn((e==null?void 0:e.matrixType)||"Matrix"),ds,t=>t.determinant(),"FlowGraphDeterminantBlock",e)}}ve("FlowGraphDeterminantBlock",_ee);class vee extends Pr{constructor(e){super(vn((e==null?void 0:e.matrixType)||"Matrix"),vn((e==null?void 0:e.matrixType)||"Matrix"),t=>t.inverse?t.inverse():me.Invert(t),"FlowGraphInvertMatrixBlock",e)}}ve("FlowGraphInvertMatrixBlock",vee);class Aee extends Bl{constructor(e){super(vn((e==null?void 0:e.matrixType)||"Matrix"),vn((e==null?void 0:e.matrixType)||"Matrix"),vn((e==null?void 0:e.matrixType)||"Matrix"),(t,i)=>i.multiply(t),"FlowGraphMatrixMultiplicationBlock",e)}}ve("FlowGraphMatrixMultiplicationBlock",Aee);class Cee extends Vu{constructor(e){super(e),this.input=this.registerDataInput("input",Iy),this.position=this.registerDataOutput("position",ou),this.rotationQuaternion=this.registerDataOutput("rotationQuaternion",oL),this.scaling=this.registerDataOutput("scaling",ou),this.isValid=this.registerDataOutput("isValid",ju,!1)}_updateOutputs(e){const t=e._getExecutionVariable(this,"executionId",-1),i=e._getExecutionVariable(this,"cachedPosition",null),s=e._getExecutionVariable(this,"cachedRotation",null),r=e._getExecutionVariable(this,"cachedScaling",null);if(t===e.executionId&&i&&s&&r)this.position.setValue(i,e),this.rotationQuaternion.setValue(s,e),this.scaling.setValue(r,e);else{const n=this.input.getValue(e),o=i||new P,l=s||new Re,c=r||new P,u=Math.round(n.m[3]*1e4)/1e4,f=Math.round(n.m[7]*1e4)/1e4,p=Math.round(n.m[11]*1e4)/1e4,m=Math.round(n.m[15]*1e4)/1e4;if(u!==0||f!==0||p!==0||m!==1){this.isValid.setValue(!1,e),this.position.setValue(P.Zero(),e),this.rotationQuaternion.setValue(Re.Identity(),e),this.scaling.setValue(P.One(),e);return}const _=n.decompose(c,l,o);this.isValid.setValue(_,e),this.position.setValue(o,e),this.rotationQuaternion.setValue(l,e),this.scaling.setValue(c,e),e._setExecutionVariable(this,"cachedPosition",o),e._setExecutionVariable(this,"cachedRotation",l),e._setExecutionVariable(this,"cachedScaling",c),e._setExecutionVariable(this,"executionId",e.executionId)}}getClassName(){return"FlowGraphMatrixDecompose"}}ve("FlowGraphMatrixDecompose",Cee);class xee extends Vu{constructor(e){super(e),this.position=this.registerDataInput("position",ou),this.rotationQuaternion=this.registerDataInput("rotationQuaternion",oL),this.scaling=this.registerDataInput("scaling",ou),this.value=this.registerDataOutput("value",Iy)}_updateOutputs(e){const t=e._getExecutionVariable(this,"executionId",-1),i=e._getExecutionVariable(this,"cachedMatrix",null);if(t===e.executionId&&i)this.value.setValue(i,e);else{const s=me.Compose(this.scaling.getValue(e),this.rotationQuaternion.getValue(e),this.position.getValue(e));this.value.setValue(s,e),e._setExecutionVariable(this,"cachedMatrix",s),e._setExecutionVariable(this,"executionId",e.executionId)}}getClassName(){return"FlowGraphMatrixCompose"}}ve("FlowGraphMatrixCompose",xee);const tO=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphDeterminantBlock:_ee,FlowGraphInvertMatrixBlock:vee,FlowGraphMatrixComposeBlock:xee,FlowGraphMatrixDecomposeBlock:Cee,FlowGraphMatrixMultiplicationBlock:Aee,FlowGraphTransposeBlock:gee},Symbol.toStringTag,{value:"Module"}));class bee extends Pr{constructor(e){super(ii,ds,t=>this._polymorphicLength(t),"FlowGraphLengthBlock",e)}_polymorphicLength(e){switch(K1(e)){case"Vector2":case"Vector3":case"Vector4":case"Quaternion":return e.length();default:throw new Error(`Cannot compute length of value ${e}`)}}}ve("FlowGraphLengthBlock",bee);class See extends Pr{constructor(e){super(ii,ii,t=>this._polymorphicNormalize(t),"FlowGraphNormalizeBlock",e)}_polymorphicNormalize(e){var s;const t=K1(e);let i;switch(t){case"Vector2":case"Vector3":case"Vector4":case"Quaternion":return i=e.normalizeToNew(),(s=this.config)!=null&&s.nanOnZeroLength&&e.length()===0&&i.setAll(NaN),i;default:throw new Error(`Cannot normalize value ${e}`)}}}ve("FlowGraphNormalizeBlock",See);class yee extends Bl{constructor(e){super(ii,ii,ds,(t,i)=>this._polymorphicDot(t,i),"FlowGraphDotBlock",e)}_polymorphicDot(e,t){switch(K1(e)){case"Vector2":case"Vector3":case"Vector4":case"Quaternion":return e.dot(t);default:throw new Error(`Cannot get dot product of ${e} and ${t}`)}}}ve("FlowGraphDotBlock",yee);class Mee extends Bl{constructor(e){super(ou,ou,ou,(t,i)=>P.Cross(t,i),"FlowGraphCrossBlock",e)}}ve("FlowGraphCrossBlock",Mee);class Eee extends Bl{constructor(e){super(nb,ds,nb,(t,i)=>Ue.Transform(t,me.RotationZ(i)),"FlowGraphRotate2DBlock",e)}}ve("FlowGraphRotate2DBlock",Eee);class Tee extends $J{constructor(e){super(ou,ou,ds,ou,(t,i,s)=>P.TransformCoordinates(t,me.RotationAxis(i,s)),"FlowGraphRotate3DBlock",e)}}ve("FlowGraphRotate3DBlock",Tee);function xze(a,e){switch(K1(a)){case"Vector2":return e.transformVector(a);case"Vector3":return e.transformVector(a);case"Vector4":return a=a,new Yt(a.x*e.m[0]+a.y*e.m[1]+a.z*e.m[2]+a.w*e.m[3],a.x*e.m[4]+a.y*e.m[5]+a.z*e.m[6]+a.w*e.m[7],a.x*e.m[8]+a.y*e.m[9]+a.z*e.m[10]+a.w*e.m[11],a.x*e.m[12]+a.y*e.m[13]+a.z*e.m[14]+a.w*e.m[15]);default:throw new Error(`Cannot transform value ${a}`)}}class Lee extends Bl{constructor(e){const t=(e==null?void 0:e.vectorType)||"Vector3",i=t==="Vector2"?"Matrix2D":t==="Vector3"?"Matrix3D":"Matrix";super(vn(t),vn(i),vn(t),xze,"FlowGraphTransformVectorBlock",e)}}ve("FlowGraphTransformVectorBlock",Lee);class Iee extends Bl{constructor(e){super(ou,Iy,ou,(t,i)=>P.TransformCoordinates(t,i),"FlowGraphTransformCoordinatesBlock",e)}}ve("FlowGraphTransformCoordinatesBlock",Iee);const i9=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphCrossBlock:Mee,FlowGraphDotBlock:yee,FlowGraphLengthBlock:bee,FlowGraphNormalizeBlock:See,FlowGraphRotate2DBlock:Eee,FlowGraphRotate3DBlock:Tee,FlowGraphTransformBlock:Lee,FlowGraphTransformCoordinatesBlock:Iee},Symbol.toStringTag,{value:"Module"}));class Pee extends SL{constructor(e){super(ii,e),this.config=e,this.object=this.registerDataOutput("object",ii),this.propertyName=this.registerDataOutput("propertyName",ii),this.setterFunction=this.registerDataOutput("setFunction",ii,this._setPropertyValue.bind(this)),this.getterFunction=this.registerDataOutput("getFunction",ii,this._getPropertyValue.bind(this)),this.generateAnimationsFunction=this.registerDataOutput("generateAnimationsFunction",ii,this._getInterpolationAnimationPropertyInfo.bind(this)),this.templateComponent=new Q0e(e.jsonPointer,this)}_doOperation(e){var n,o,l;const t=this.templateComponent.getAccessor(this.config.pathConverter,e),i=t.info.get(t.object),s=(o=(n=t.info).getTarget)==null?void 0:o.call(n,t.object),r=(l=t.info.getPropertyName)==null?void 0:l[0](t.object);if(s)this.object.setValue(s,e),r&&this.propertyName.setValue(r,e);else throw new Error("Object is undefined");return i}_setPropertyValue(e,t,i,s){var o,l;const r=this.templateComponent.getAccessor(this.config.pathConverter,s),n=r.info.type;n.startsWith("Color")&&(i=npe(i,n)),(l=(o=r.info).set)==null||l.call(o,i,r.object)}_getPropertyValue(e,t,i){const s=this.templateComponent.getAccessor(this.config.pathConverter,i);return s.info.get(s.object)}_getInterpolationAnimationPropertyInfo(e,t,i){const s=this.templateComponent.getAccessor(this.config.pathConverter,i);return(r,n,o,l)=>{var f;const c=[],u=s.info.type;return u.startsWith("Color")&&(r=r.map(p=>({frame:p.frame,value:npe(p.value,u)}))),(f=s.info.interpolation)==null||f.forEach((p,m)=>{var x;const _=((x=s.info.getPropertyName)==null?void 0:x[m](s.object))||"Animation-interpolation-"+m;let d=r;o!==p.type&&(d=r.map(A=>({frame:A.frame,value:p.getValue(void 0,A.value.asArray?A.value.asArray():[A.value],0,1)}))),p.buildAnimations(s.object,_,60,d).forEach(A=>{l&&A.babylonAnimation.setEasingFunction(l),c.push(A.babylonAnimation)})}),c}}getClassName(){return"FlowGraphJsonPointerParserBlock"}}function npe(a,e){return a.getClassName().startsWith("Color")?a:e==="Color3"?new Pe(a.x,a.y,a.z):e==="Color4"?new St(a.x,a.y,a.z,a.w):a}ve("FlowGraphJsonPointerParserBlock",Pee);const bze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphJsonPointerParserBlock:Pee},Symbol.toStringTag,{value:"Module"}));class Oee extends Pr{constructor(e){super(ju,ds,t=>+t,"FlowGraphBooleanToFloat",e)}}ve("FlowGraphBooleanToFloat",Oee);class Ree extends Pr{constructor(e){super(ju,Dl,t=>Yr.FromValue(+t),"FlowGraphBooleanToInt",e)}}ve("FlowGraphBooleanToInt",Ree);class Dee extends Pr{constructor(e){super(ds,ju,t=>!!t,"FlowGraphFloatToBoolean",e)}}ve("FlowGraphFloatToBoolean",Dee);class Nee extends Pr{constructor(e){super(Dl,ju,t=>!!t.value,"FlowGraphIntToBoolean",e)}}ve("FlowGraphIntToBoolean",Nee);class wee extends Pr{constructor(e){super(Dl,ds,t=>t.value,"FlowGraphIntToFloat",e)}}ve("FlowGraphIntToFloat",wee);class Bee extends Pr{constructor(e){super(ds,Dl,t=>{switch(e==null?void 0:e.roundingMode){case"floor":return Yr.FromValue(Math.floor(t));case"ceil":return Yr.FromValue(Math.ceil(t));case"round":return Yr.FromValue(Math.round(t));default:return Yr.FromValue(t)}},"FlowGraphFloatToInt",e)}}ve("FlowGraphFloatToInt",Bee);const iO=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphBooleanToFloat:Oee,FlowGraphBooleanToInt:Ree,FlowGraphFloatToBoolean:Dee,FlowGraphFloatToInt:Bee,FlowGraphIntToBoolean:Nee,FlowGraphIntToFloat:wee},Symbol.toStringTag,{value:"Module"}));class zee extends Vu{constructor(e){super(e),this.userVariables=this.registerDataOutput("userVariables",ii),this.executionId=this.registerDataOutput("executionId",ds)}_updateOutputs(e){this.userVariables.setValue(e.userVariables,e),this.executionId.setValue(e.executionId,e)}serialize(e){super.serialize(e)}getClassName(){return"FlowGraphContextBlock"}}ve("FlowGraphContextBlock",zee);const Sze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphContextBlock:zee},Symbol.toStringTag,{value:"Module"}));class Fee extends Vu{constructor(e){super(e),this.config=e,this.array=this.registerDataInput("array",ii),this.index=this.registerDataInput("index",ii,new Yr(-1)),this.value=this.registerDataOutput("value",ii)}_updateOutputs(e){const t=this.array.getValue(e),i=b0(this.index.getValue(e));t&&i>=0&&i<t.length?this.value.setValue(t[i],e):this.value.setValue(null,e)}serialize(e){super.serialize(e)}getClassName(){return"FlowGraphArrayIndexBlock"}}ve("FlowGraphArrayIndexBlock",Fee);const yze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphArrayIndexBlock:Fee},Symbol.toStringTag,{value:"Module"}));class ape extends Vu{constructor(e){super(e),this.config=e,this.executionFunction=this.registerDataInput("function",ii),this.value=this.registerDataInput("value",ii),this.result=this.registerDataOutput("result",ii)}_updateOutputs(e){const t=this.executionFunction.getValue(e),i=this.value.getValue(e);t&&this.result.setValue(t(i,e),e)}getClassName(){return"FlowGraphCodeExecutionBlock"}}const Mze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphCodeExecutionBlock:ape},Symbol.toStringTag,{value:"Module"}));class kee extends Vu{constructor(e){super(e),this.config=e,this.object=this.registerDataInput("object",ii),this.array=this.registerDataInput("array",ii),this.index=this.registerDataOutput("index",Dl,new Yr(-1))}_updateOutputs(e){const t=this.object.getValue(e),i=this.array.getValue(e);i&&this.index.setValue(new Yr(i.indexOf(t)),e)}serialize(e){super.serialize(e)}getClassName(){return"FlowGraphIndexOfBlock"}}ve("FlowGraphIndexOfBlock",kee);const Eze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphIndexOfBlock:kee},Symbol.toStringTag,{value:"Module"}));class Uee extends Vu{constructor(e){super(e),this.functionName=this.registerDataInput("functionName",AW),this.object=this.registerDataInput("object",ii),this.context=this.registerDataInput("context",ii,null),this.output=this.registerDataOutput("output",ii)}_updateOutputs(e){const t=this.functionName.getValue(e),i=this.object.getValue(e),s=this.context.getValue(e);if(i&&t){const r=i[t];r&&typeof r=="function"&&this.output.setValue(r.bind(s),e)}}getClassName(){return"FlowGraphFunctionReference"}}ve("FlowGraphFunctionReference",Uee);const Tze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphFunctionReferenceBlock:Uee},Symbol.toStringTag,{value:"Module"}));class jee extends VT{constructor(e){super(e),this.config=e,this.type="MeshPick",this.asset=this.registerDataInput("asset",ii,e==null?void 0:e.targetMesh),this.pickedPoint=this.registerDataOutput("pickedPoint",ou),this.pickOrigin=this.registerDataOutput("pickOrigin",ou),this.pointerId=this.registerDataOutput("pointerId",ds),this.pickedMesh=this.registerDataOutput("pickedMesh",ii),this.pointerType=this.registerDataInput("pointerType",ii,Xt.POINTERPICK)}_getReferencedMesh(e){return this.asset.getValue(e)}_executeEvent(e,t){var r,n,o,l,c;if(this.pointerType.getValue(e)!==t.type)return!0;const s=this._getReferencedMesh(e);return s&&((r=t.pickInfo)!=null&&r.pickedMesh)&&(((n=t.pickInfo)==null?void 0:n.pickedMesh)===s||lL((o=t.pickInfo)==null?void 0:o.pickedMesh,s))?(this.pointerId.setValue(t.event.pointerId,e),this.pickOrigin.setValue((l=t.pickInfo.ray)==null?void 0:l.origin,e),this.pickedPoint.setValue(t.pickInfo.pickedPoint,e),this.pickedMesh.setValue(t.pickInfo.pickedMesh,e),this._execute(e),!((c=this.config)!=null&&c.stopPropagation)):(this.pointerId.resetToDefaultValue(e),this.pickOrigin.resetToDefaultValue(e),this.pickedPoint.resetToDefaultValue(e),this.pickedMesh.resetToDefaultValue(e),!0)}_preparePendingTasks(e){}_cancelPendingTasks(e){}getClassName(){return"FlowGraphMeshPickEventBlock"}}ve("FlowGraphMeshPickEventBlock",jee);const Lze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphMeshPickEventBlock:jee},Symbol.toStringTag,{value:"Module"}));class Vee extends VT{constructor(){super(...arguments),this.initPriority=-1,this.type="SceneReady"}_executeEvent(e,t){return this._execute(e),!0}_preparePendingTasks(e){}_cancelPendingTasks(e){}getClassName(){return"FlowGraphSceneReadyEventBlock"}}ve("FlowGraphSceneReadyEventBlock",Vee);const Ize=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphSceneReadyEventBlock:Vee},Symbol.toStringTag,{value:"Module"}));class Gee extends VT{constructor(e){super(e),this.config=e,this.initPriority=1;for(const t in this.config.eventData)this.registerDataOutput(t,this.config.eventData[t].type)}_preparePendingTasks(e){const t=e.configuration.coordinator.getCustomEventObservable(this.config.eventId);if(t&&t.hasObservers()&&t.observers.length>y4.MaxEventsPerType){this._reportError(e,`FlowGraphReceiveCustomEventBlock: Too many observers for event ${this.config.eventId}. Max is ${y4.MaxEventsPerType}.`);return}const i=t.add(s=>{Object.keys(s).forEach(r=>{var n;(n=this.getDataOutput(r))==null||n.setValue(s[r],e)}),this._execute(e)});e._setExecutionVariable(this,"_eventObserver",i)}_cancelPendingTasks(e){const t=e.configuration.coordinator.getCustomEventObservable(this.config.eventId);if(t){const i=e._getExecutionVariable(this,"_eventObserver",null);t.remove(i)}else Le.Warn(`FlowGraphReceiveCustomEventBlock: Missing observable for event ${this.config.eventId}`)}_executeEvent(e,t){return!0}getClassName(){return"FlowGraphReceiveCustomEventBlock"}}ve("FlowGraphReceiveCustomEventBlock",Gee);const Pze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphReceiveCustomEventBlock:Gee},Symbol.toStringTag,{value:"Module"}));class Wee extends o3{constructor(e){super(e),this.config=e;for(const t in this.config.eventData)this.registerDataInput(t,this.config.eventData[t].type,this.config.eventData[t].value)}_execute(e){const t=this.config.eventId,i={};this.dataInputs.forEach(s=>{i[s.name]=s.getValue(e)}),e.configuration.coordinator.notifyCustomEvent(t,i),this.out._activateSignal(e)}getClassName(){return"FlowGraphReceiveCustomEventBlock"}}ve("FlowGraphReceiveCustomEventBlock",Wee);const Oze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphSendCustomEventBlock:Wee},Symbol.toStringTag,{value:"Module"}));class Hee extends VT{constructor(){super(),this.type="SceneBeforeRender",this.timeSinceStart=this.registerDataOutput("timeSinceStart",ds),this.deltaTime=this.registerDataOutput("deltaTime",ds)}_preparePendingTasks(e){}_executeEvent(e,t){return this.timeSinceStart.setValue(t.timeSinceStart,e),this.deltaTime.setValue(t.deltaTime,e),this._execute(e),!0}_cancelPendingTasks(e){}getClassName(){return"FlowGraphSceneTickEventBlock"}}ve("FlowGraphSceneTickEventBlock",Hee);const Rze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphSceneTickEventBlock:Hee},Symbol.toStringTag,{value:"Module"}));class Yee extends VT{constructor(e){super(e),this.type="PointerOut",this.pointerId=this.registerDataOutput("pointerId",ds),this.targetMesh=this.registerDataInput("targetMesh",ii,e==null?void 0:e.targetMesh),this.meshOutOfPointer=this.registerDataOutput("meshOutOfPointer",ii)}_executeEvent(e,t){var r;const i=this.targetMesh.getValue(e);return this.meshOutOfPointer.setValue(t.mesh,e),this.pointerId.setValue(t.pointerId,e),!(t.over&&lL(t.mesh,i))&&(t.mesh===i||lL(t.mesh,i))?(this._execute(e),!((r=this.config)!=null&&r.stopPropagation)):!0}_preparePendingTasks(e){}_cancelPendingTasks(e){}getClassName(){return"FlowGraphPointerOutEventBlock"}}ve("FlowGraphPointerOutEventBlock",Yee);const Dze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphPointerOutEventBlock:Yee},Symbol.toStringTag,{value:"Module"}));class Xee extends VT{constructor(e){super(e),this.type="PointerOver",this.pointerId=this.registerDataOutput("pointerId",ds),this.targetMesh=this.registerDataInput("targetMesh",ii,e==null?void 0:e.targetMesh),this.meshUnderPointer=this.registerDataOutput("meshUnderPointer",ii)}_executeEvent(e,t){var r;const i=this.targetMesh.getValue(e);this.meshUnderPointer.setValue(t.mesh,e);const s=t.out&&lL(t.out,i);return this.pointerId.setValue(t.pointerId,e),!s&&(t.mesh===i||lL(t.mesh,i))?(this._execute(e),!((r=this.config)!=null&&r.stopPropagation)):!0}_preparePendingTasks(e){}_cancelPendingTasks(e){}getClassName(){return"FlowGraphPointerOverEventBlock"}}ve("FlowGraphPointerOverEventBlock",Xee);const Nze=Object.freeze(Object.defineProperty({__proto__:null,FlowGraphPointerOverEventBlock:Xee},Symbol.toStringTag,{value:"Module"}));var Zee;(function(a){a.PlayAnimation="FlowGraphPlayAnimationBlock",a.StopAnimation="FlowGraphStopAnimationBlock",a.PauseAnimation="FlowGraphPauseAnimationBlock",a.ValueInterpolation="FlowGraphInterpolationBlock",a.SceneReadyEvent="FlowGraphSceneReadyEventBlock",a.SceneTickEvent="FlowGraphSceneTickEventBlock",a.SendCustomEvent="FlowGraphSendCustomEventBlock",a.ReceiveCustomEvent="FlowGraphReceiveCustomEventBlock",a.MeshPickEvent="FlowGraphMeshPickEventBlock",a.PointerEvent="FlowGraphPointerEventBlock",a.PointerDownEvent="FlowGraphPointerDownEventBlock",a.PointerUpEvent="FlowGraphPointerUpEventBlock",a.PointerMoveEvent="FlowGraphPointerMoveEventBlock",a.PointerOverEvent="FlowGraphPointerOverEventBlock",a.PointerOutEvent="FlowGraphPointerOutEventBlock",a.E="FlowGraphEBlock",a.PI="FlowGraphPIBlock",a.Inf="FlowGraphInfBlock",a.NaN="FlowGraphNaNBlock",a.Random="FlowGraphRandomBlock",a.Add="FlowGraphAddBlock",a.Subtract="FlowGraphSubtractBlock",a.Multiply="FlowGraphMultiplyBlock",a.Divide="FlowGraphDivideBlock",a.Abs="FlowGraphAbsBlock",a.Sign="FlowGraphSignBlock",a.Trunc="FlowGraphTruncBlock",a.Floor="FlowGraphFloorBlock",a.Ceil="FlowGraphCeilBlock",a.Round="FlowGraphRoundBlock",a.Fraction="FlowGraphFractBlock",a.Negation="FlowGraphNegationBlock",a.Modulo="FlowGraphModuloBlock",a.Min="FlowGraphMinBlock",a.Max="FlowGraphMaxBlock",a.Clamp="FlowGraphClampBlock",a.Saturate="FlowGraphSaturateBlock",a.MathInterpolation="FlowGraphMathInterpolationBlock",a.Equality="FlowGraphEqualityBlock",a.LessThan="FlowGraphLessThanBlock",a.LessThanOrEqual="FlowGraphLessThanOrEqualBlock",a.GreaterThan="FlowGraphGreaterThanBlock",a.GreaterThanOrEqual="FlowGraphGreaterThanOrEqualBlock",a.IsNaN="FlowGraphIsNaNBlock",a.IsInfinity="FlowGraphIsInfBlock",a.DegToRad="FlowGraphDegToRadBlock",a.RadToDeg="FlowGraphRadToDegBlock",a.Sin="FlowGraphSinBlock",a.Cos="FlowGraphCosBlock",a.Tan="FlowGraphTanBlock",a.Asin="FlowGraphASinBlock",a.Acos="FlowGraphACosBlock",a.Atan="FlowGraphATanBlock",a.Atan2="FlowGraphATan2Block",a.Sinh="FlowGraphSinhBlock",a.Cosh="FlowGraphCoshBlock",a.Tanh="FlowGraphTanhBlock",a.Asinh="FlowGraphASinhBlock",a.Acosh="FlowGraphACoshBlock",a.Atanh="FlowGraphATanhBlock",a.Exponential="FlowGraphExponentialBlock",a.Log="FlowGraphLogBlock",a.Log2="FlowGraphLog2Block",a.Log10="FlowGraphLog10Block",a.SquareRoot="FlowGraphSquareRootBlock",a.CubeRoot="FlowGraphCubeRootBlock",a.Power="FlowGraphPowerBlock",a.Length="FlowGraphLengthBlock",a.Normalize="FlowGraphNormalizeBlock",a.Dot="FlowGraphDotBlock",a.Cross="FlowGraphCrossBlock",a.Rotate2D="FlowGraphRotate2DBlock",a.Rotate3D="FlowGraphRotate3DBlock",a.Transpose="FlowGraphTransposeBlock",a.Determinant="FlowGraphDeterminantBlock",a.InvertMatrix="FlowGraphInvertMatrixBlock",a.MatrixMultiplication="FlowGraphMatrixMultiplicationBlock",a.BitwiseAnd="FlowGraphBitwiseAndBlock",a.BitwiseOr="FlowGraphBitwiseOrBlock",a.BitwiseXor="FlowGraphBitwiseXorBlock",a.BitwiseNot="FlowGraphBitwiseNotBlock",a.BitwiseLeftShift="FlowGraphBitwiseLeftShiftBlock",a.BitwiseRightShift="FlowGraphBitwiseRightShiftBlock",a.LeadingZeros="FlowGraphLeadingZerosBlock",a.TrailingZeros="FlowGraphTrailingZerosBlock",a.OneBitsCounter="FlowGraphOneBitsCounterBlock",a.Branch="FlowGraphBranchBlock",a.SetDelay="FlowGraphSetDelayBlock",a.CancelDelay="FlowGraphCancelDelayBlock",a.CallCounter="FlowGraphCallCounterBlock",a.Debounce="FlowGraphDebounceBlock",a.Throttle="FlowGraphThrottleBlock",a.DoN="FlowGraphDoNBlock",a.FlipFlop="FlowGraphFlipFlopBlock",a.ForLoop="FlowGraphForLoopBlock",a.MultiGate="FlowGraphMultiGateBlock",a.Sequence="FlowGraphSequenceBlock",a.Switch="FlowGraphSwitchBlock",a.WaitAll="FlowGraphWaitAllBlock",a.WhileLoop="FlowGraphWhileLoopBlock",a.ConsoleLog="FlowGraphConsoleLogBlock",a.Conditional="FlowGraphConditionalBlock",a.Constant="FlowGraphConstantBlock",a.TransformCoordinatesSystem="FlowGraphTransformCoordinatesSystemBlock",a.GetAsset="FlowGraphGetAssetBlock",a.GetProperty="FlowGraphGetPropertyBlock",a.SetProperty="FlowGraphSetPropertyBlock",a.GetVariable="FlowGraphGetVariableBlock",a.SetVariable="FlowGraphSetVariableBlock",a.JsonPointerParser="FlowGraphJsonPointerParserBlock",a.CombineVector2="FlowGraphCombineVector2Block",a.CombineVector3="FlowGraphCombineVector3Block",a.CombineVector4="FlowGraphCombineVector4Block",a.CombineMatrix="FlowGraphCombineMatrixBlock",a.CombineMatrix2D="FlowGraphCombineMatrix2DBlock",a.CombineMatrix3D="FlowGraphCombineMatrix3DBlock",a.ExtractVector2="FlowGraphExtractVector2Block",a.ExtractVector3="FlowGraphExtractVector3Block",a.ExtractVector4="FlowGraphExtractVector4Block",a.ExtractMatrix="FlowGraphExtractMatrixBlock",a.ExtractMatrix2D="FlowGraphExtractMatrix2DBlock",a.ExtractMatrix3D="FlowGraphExtractMatrix3DBlock",a.TransformVector="FlowGraphTransformVectorBlock",a.TransformCoordinates="FlowGraphTransformCoordinatesBlock",a.MatrixDecompose="FlowGraphMatrixDecompose",a.MatrixCompose="FlowGraphMatrixCompose",a.BooleanToFloat="FlowGraphBooleanToFloat",a.BooleanToInt="FlowGraphBooleanToInt",a.FloatToBoolean="FlowGraphFloatToBoolean",a.IntToBoolean="FlowGraphIntToBoolean",a.IntToFloat="FlowGraphIntToFloat",a.FloatToInt="FlowGraphFloatToInt",a.Easing="FlowGraphEasingBlock",a.Context="FlowGraphContextBlock",a.ArrayIndex="FlowGraphArrayIndexBlock",a.CodeExecution="FlowGraphCodeExecutionBlock",a.IndexOf="FlowGraphIndexOfBlock",a.FunctionReference="FlowGraphFunctionReference",a.BezierCurveEasing="FlowGraphBezierCurveEasing",a.DataSwitch="FlowGraphDataSwitchBlock"})(Zee||(Zee={}));var zt;(function(a){a[a.Texture=1]="Texture",a[a.TextureBackBuffer=2]="TextureBackBuffer",a[a.TextureBackBufferDepthStencilAttachment=4]="TextureBackBufferDepthStencilAttachment",a[a.TextureDepthStencilAttachment=8]="TextureDepthStencilAttachment",a[a.TextureViewDepth=16]="TextureViewDepth",a[a.TextureViewNormal=32]="TextureViewNormal",a[a.TextureAlbedo=64]="TextureAlbedo",a[a.TextureReflectivity=128]="TextureReflectivity",a[a.TextureWorldPosition=256]="TextureWorldPosition",a[a.TextureVelocity=512]="TextureVelocity",a[a.TextureIrradiance=1024]="TextureIrradiance",a[a.TextureAlbedoSqrt=2048]="TextureAlbedoSqrt",a[a.TextureScreenDepth=4096]="TextureScreenDepth",a[a.TextureWorldNormal=8192]="TextureWorldNormal",a[a.TextureLocalPosition=16384]="TextureLocalPosition",a[a.TextureLinearVelocity=32768]="TextureLinearVelocity",a[a.TextureAllButBackBufferDepthStencil=1048571]="TextureAllButBackBufferDepthStencil",a[a.TextureAllButBackBuffer=1048569]="TextureAllButBackBuffer",a[a.TextureAll=1048575]="TextureAll",a[a.ResourceContainer=1048576]="ResourceContainer",a[a.ShadowGenerator=2097152]="ShadowGenerator",a[a.ShadowLight=4194304]="ShadowLight",a[a.Camera=16777216]="Camera",a[a.ObjectList=33554432]="ObjectList",a[a.AutoDetect=268435456]="AutoDetect",a[a.BasedOnInput=536870912]="BasedOnInput",a[a.Undefined=1073741824]="Undefined",a[a.Object=2147483648]="Object",a[a.All=4294967295]="All"})(zt||(zt={}));var Kee;(function(a){a[a.Compatible=0]="Compatible",a[a.TypeIncompatible=1]="TypeIncompatible",a[a.HierarchyIssue=2]="HierarchyIssue"})(Kee||(Kee={}));var qee;(function(a){a[a.Input=0]="Input",a[a.Output=1]="Output"})(qee||(qee={}));class s9{get direction(){return this._direction}static IsTextureHandle(e){return e!==void 0&&Number.isFinite(e)}static IsShadowGenerator(e){return e!==void 0&&e.mapSize!==void 0}static IsShadowLight(e){return e!==void 0&&e.setShadowProjectionMatrix!==void 0}get type(){if(this._type===zt.AutoDetect){if(this._ownerBlock.isInput)return this._ownerBlock.type;if(this._connectedPoint)return this._connectedPoint.type;if(this._linkedConnectionSource){if(this._linkedConnectionSource.isConnected)return this._linkedConnectionSource.type;if(this._linkedConnectionSource._defaultConnectionPointType)return this._linkedConnectionSource._defaultConnectionPointType}if(this._defaultConnectionPointType)return this._defaultConnectionPointType}if(this._type===zt.BasedOnInput){if(this._typeConnectionSource){const e=typeof this._typeConnectionSource=="function"?this._typeConnectionSource():this._typeConnectionSource;return e.isConnected?e._connectedPoint.type:this._defaultConnectionPointType??e.type}else if(this._defaultConnectionPointType)return this._defaultConnectionPointType}return this._type}set type(e){this._type=e}get isConnected(){return this.connectedPoint!==null||this.hasEndpoints}get connectedPoint(){return this._connectedPoint}get ownerBlock(){return this._ownerBlock}get sourceBlock(){return this._connectedPoint?this._connectedPoint.ownerBlock:null}get connectedBlocks(){return this._endpoints.length===0?[]:this._endpoints.map(e=>e.ownerBlock)}get endpoints(){return this._endpoints}get hasEndpoints(){return this._endpoints&&this._endpoints.length>0}get innerType(){return this._linkedConnectionSource&&!this._isMainLinkSource&&this._linkedConnectionSource.isConnected?this.type:this._type}createCustomInputBlock(){return null}constructor(e,t,i){this._connectedPoint=null,this._acceptedConnectionPointType=null,this._endpoints=new Array,this._type=zt.Undefined,this._linkedConnectionSource=null,this._isMainLinkSource=!1,this._typeConnectionSource=null,this._defaultConnectionPointType=null,this.needDualDirectionValidation=!1,this.acceptedConnectionPointTypes=[],this.excludedConnectionPointTypes=[],this.onConnectionObservable=new xe,this.onDisconnectionObservable=new xe,this.isExposedOnFrame=!1,this.exposedPortPosition=-1,this._ownerBlock=t,this.name=e,this._direction=i}getClassName(){return"NodeRenderGraphConnectionPoint"}canConnectTo(e){return this.checkCompatibilityState(e)===0}checkCompatibilityState(e){const t=this._ownerBlock,i=e.ownerBlock;if(this.type!==e.type&&e.innerType!==zt.AutoDetect)return e.acceptedConnectionPointTypes&&e.acceptedConnectionPointTypes.indexOf(this.type)!==-1?0:1;if(e.excludedConnectionPointTypes&&e.excludedConnectionPointTypes.indexOf(this.type)!==-1)return 1;let s=i,r=t;return this.direction===0&&(s=t,r=i),s.isAnAncestorOf(r)?2:0}connectTo(e,t=!1){if(!t&&!this.canConnectTo(e))throw"Cannot connect these two connectors.";return this._endpoints.push(e),e._connectedPoint=this,this.onConnectionObservable.notifyObservers(e),e.onConnectionObservable.notifyObservers(this),this}disconnectFrom(e){const t=this._endpoints.indexOf(e);return t===-1?this:(this._endpoints.splice(t,1),e._connectedPoint=null,this.onDisconnectionObservable.notifyObservers(e),e.onDisconnectionObservable.notifyObservers(this),this)}addExcludedConnectionPointFromAllowedTypes(e){let t=0,i=2**t;for(;i<zt.All;)e&i||this.excludedConnectionPointTypes.push(i),t++,i=2**t}addAcceptedConnectionPointTypes(e){let t=0,i=2**t;for(;i<zt.All;)e&i&&this.acceptedConnectionPointTypes.indexOf(i)===-1&&this.acceptedConnectionPointTypes.push(i),t++,i=2**t}serialize(e=!0){const t={};return t.name=this.name,t.displayName=this.displayName,e&&this.connectedPoint&&(t.inputName=this.name,t.targetBlockId=this.connectedPoint.ownerBlock.uniqueId,t.targetConnectionName=this.connectedPoint.name,t.isExposedOnFrame=!0,t.exposedPortPosition=this.exposedPortPosition),(this.isExposedOnFrame||this.exposedPortPosition>=0)&&(t.isExposedOnFrame=!0,t.exposedPortPosition=this.exposedPortPosition),t}dispose(){this.onConnectionObservable.clear(),this.onDisconnectionObservable.clear()}}class Hu{get disabled(){var e;return!!((e=this._frameGraphTask)!=null&&e.disabled)}set disabled(e){this._frameGraphTask&&(this._frameGraphTask.disabled=e)}get task(){return this._frameGraphTask}get inputs(){return this._inputs}get outputs(){return this._outputs}get name(){return this._name}set name(e){this._name=e}get isInput(){return this._isInput}get isTeleportOut(){return this._isTeleportOut}get isTeleportIn(){return this._isTeleportIn}get isDebug(){return this._isDebug}get isUnique(){return this._isUnique}getClassName(){return"NodeRenderGraphBlock"}_inputRename(e){return e}_outputRename(e){return e}isAnAncestorOf(e){for(const t of this._outputs)if(t.hasEndpoints){for(const i of t.endpoints)if(i.ownerBlock===e||i.ownerBlock.isAnAncestorOf(e))return!0}return!1}isAnAncestorOfType(e){if(this.getClassName()===e)return!0;for(const t of this._outputs)if(t.hasEndpoints){for(const i of t.endpoints)if(i.ownerBlock.isAnAncestorOfType(e))return!0}return!1}getDescendantOfPredicate(e){if(e(this))return this;for(const t of this._outputs)if(t.hasEndpoints)for(const i of t.endpoints){const s=i.ownerBlock.getDescendantOfPredicate(e);if(s)return s}return null}constructor(e,t,i,...s){this._name="",this._isInput=!1,this._isTeleportOut=!1,this._isTeleportIn=!1,this._isDebug=!1,this._isUnique=!1,this.onBuildObservable=new xe,this._inputs=new Array,this._outputs=new Array,this._codeVariableName="",this._additionalConstructionParameters=null,this.visibleOnFrame=!1,this._name=e,this._frameGraph=t,this._scene=i,this._engine=i.getEngine(),this.uniqueId=gP.UniqueId}registerInput(e,t,i=!1,s){return s=s??new s9(e,this,0),s.type=t,s.isOptional=i,this._inputs.push(s),this}registerOutput(e,t,i){return i=i??new s9(e,this,1),i.type=t,this._outputs.push(i),this}_addDependenciesInput(e=0){this.registerInput("dependencies",zt.AutoDetect,!0);const t=this.getInputByName("dependencies");return t.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer|zt.ResourceContainer|zt.ShadowGenerator|e),t}_buildBlock(e){}_customBuildStep(e){}_propagateInputValueToOutput(e,t){e.connectedPoint&&(t.value=e.connectedPoint.value)}build(e){var t;if(this._buildId===e.buildId)return!0;this._buildId=e.buildId;for(const i of this._inputs){if(!i.connectedPoint){i.isOptional||e._notConnectedNonOptionalInputs.push(i);continue}const s=i.connectedPoint.ownerBlock;s&&s!==this&&s.build(e)}if(this._customBuildStep(e),e.verbose&&de.Log(`Building ${this.name} [${this.getClassName()}]`),this._frameGraphTask&&(this._frameGraphTask.name=this.name),this._buildBlock(e),this._frameGraphTask){this._frameGraphTask.dependencies=void 0;const i=(t=this.getInputByName("dependencies"))==null?void 0:t.connectedPoint;if(i)if(i.type===zt.ResourceContainer){const s=i.ownerBlock;for(let r=0;r<s.inputs.length;r++){const n=s.inputs[r];n.connectedPoint&&n.connectedPoint.value!==void 0&&s9.IsTextureHandle(n.connectedPoint.value)&&(this._frameGraphTask.dependencies=this._frameGraphTask.dependencies||new Set,this._frameGraphTask.dependencies.add(n.connectedPoint.value))}}else s9.IsTextureHandle(i.value)&&(this._frameGraphTask.dependencies=this._frameGraphTask.dependencies||new Set,this._frameGraphTask.dependencies.add(i.value));this._frameGraph.addTask(this._frameGraphTask)}return this.onBuildObservable.notifyObservers(this),!1}_linkConnectionTypes(e,t,i=!1){i?this._inputs[t]._acceptedConnectionPointType=this._inputs[e]:(this._inputs[e]._linkedConnectionSource=this._inputs[t],this._inputs[e]._isMainLinkSource=!0),this._inputs[t]._linkedConnectionSource=this._inputs[e]}initialize(){}autoConfigure(){}getInputByName(e){const t=this._inputs.filter(i=>i.name===e);return t.length?t[0]:null}getOutputByName(e){const t=this._outputs.filter(i=>i.name===e);return t.length?t[0]:null}serialize(){const e={};e.customType="BABYLON."+this.getClassName(),e.id=this.uniqueId,e.name=this.name,e.visibleOnFrame=this.visibleOnFrame,e.disabled=this.disabled,this._additionalConstructionParameters&&(e.additionalConstructionParameters=this._additionalConstructionParameters),e.inputs=[],e.outputs=[];for(const t of this.inputs)e.inputs.push(t.serialize());for(const t of this.outputs)e.outputs.push(t.serialize(!1));return e}_deserialize(e){this._name=e.name,this.comments=e.comments,this.visibleOnFrame=e.visibleOnFrame,this.disabled=e.disabled,this._deserializePortDisplayNamesAndExposedOnFrame(e)}_deserializePortDisplayNamesAndExposedOnFrame(e){const t=e.inputs,i=e.outputs;t&&t.forEach(s=>{const r=this.inputs.find(n=>n.name===s.name);r&&(s.displayName&&(r.displayName=s.displayName),s.isExposedOnFrame&&(r.isExposedOnFrame=s.isExposedOnFrame,r.exposedPortPosition=s.exposedPortPosition))}),i&&i.forEach((s,r)=>{s.displayName&&(this.outputs[r].displayName=s.displayName),s.isExposedOnFrame&&(this.outputs[r].isExposedOnFrame=s.isExposedOnFrame,this.outputs[r].exposedPortPosition=s.exposedPortPosition)})}_dumpPropertiesCode(){const e=this._codeVariableName;return`${e}.visibleOnFrame = ${this.visibleOnFrame};
${e}.disabled = ${this.disabled};
`}_dumpCodeForOutputConnections(e){let t="";if(e.indexOf(this)!==-1)return t;e.push(this);for(const i of this.inputs){if(!i.isConnected)continue;const s=i.connectedPoint,r=s.ownerBlock;t+=r._dumpCodeForOutputConnections(e),t+=`${r._codeVariableName}.${r._outputRename(s.name)}.connectTo(${this._codeVariableName}.${this._inputRename(i.name)});
`}return t}_dumpCode(e,t){t.push(this);const i=this.name.replace(/[^A-Za-z_]+/g,"");if(this._codeVariableName=i||`${this.getClassName()}_${this.uniqueId}`,e.indexOf(this._codeVariableName)!==-1){let n=0;do n++,this._codeVariableName=i+n;while(e.indexOf(this._codeVariableName)!==-1)}e.push(this._codeVariableName);let s=`
// ${this.getClassName()}
`;this.comments&&(s+=`// ${this.comments}
`);const r=this.getClassName();if(r==="RenderGraphInputBlock"){const o=this.type;s+=`var ${this._codeVariableName} = new BABYLON.NodeRenderGraphInputBlock("${this.name}", nodeRenderGraph.frameGraph, scene, BABYLON.NodeRenderGraphBlockConnectionPointTypes.${zt[o]});
`}else this._additionalConstructionParameters?s+=`var ${this._codeVariableName} = new BABYLON.${r}("${this.name}", nodeRenderGraph.frameGraph, scene, ...${JSON.stringify(this._additionalConstructionParameters)});
`:s+=`var ${this._codeVariableName} = new BABYLON.${r}("${this.name}", nodeRenderGraph.frameGraph, scene);
`;s+=this._dumpPropertiesCode()+`
`;for(const n of this.inputs){if(!n.isConnected)continue;const l=n.connectedPoint.ownerBlock;t.indexOf(l)===-1&&(s+=l._dumpCode(e,t))}for(const n of this.outputs)if(n.hasEndpoints)for(const o of n.endpoints){const l=o.ownerBlock;l&&t.indexOf(l)===-1&&(s+=l._dumpCode(e,t))}return s}clone(){const e=this.serialize(),t=ea(e.customType);if(t){const i=e.additionalConstructionParameters,s=i?new t("",this._frameGraph,this._scene,...i):new t("",this._frameGraph,this._scene);return s._deserialize(e),s}return null}dispose(){var e;for(const t of this.inputs)t.dispose();for(const t of this.outputs)t.dispose();(e=this._frameGraphTask)==null||e.dispose(),this._frameGraphTask=void 0,this.onBuildObservable.clear()}}F([G("comment")],Hu.prototype,"comments",void 0);const M0=0,d3=1;class AH{constructor(e,t,i){this.name=e,this._parentTask=t,this._context=i,this.disabled=!1}setExecuteFunc(e){this._executeFunc=e}_execute(){this.disabled||this._executeFunc(this._context)}_isValid(){return this._executeFunc!==void 0?null:"Execute function is not set (call setExecuteFunc to set it)"}}class CH extends AH{static IsCullPass(e){return e.setObjectList!==void 0}get objectList(){return this._objectList}setObjectList(e){this._objectList=e}constructor(e,t,i,s){super(e,t,i),this._engine=s}_isValid(){const e=super._isValid();return e||(this._objectList!==void 0?null:"Object list is not set (call setObjectList to set it)")}}class PB extends AH{static IsRenderPass(e){return e.setRenderTarget!==void 0}get renderTarget(){return this._renderTarget}get renderTargetDepth(){return this._renderTargetDepth}constructor(e,t,i,s){super(e,t,i),this._dependencies=new Set,this._engine=s}setRenderTarget(e){this._renderTarget=e}setRenderTargetDepth(e){this._renderTargetDepth=e}addDependencies(e){if(Array.isArray(e))for(const t of e)this._dependencies.add(t);else this._dependencies.add(e)}collectDependencies(e){const t=this._dependencies.keys();for(let i=t.next();i.done!==!0;i=t.next())e.add(i.value);if(this._renderTarget)if(Array.isArray(this._renderTarget))for(const i of this._renderTarget)i!==void 0&&e.add(i);else e.add(this._renderTarget);this._renderTargetDepth&&e.add(this._renderTargetDepth)}_execute(){this._frameGraphRenderTarget=this._frameGraphRenderTarget||this._context.createRenderTarget(this.name,this._renderTarget,this._renderTargetDepth),this._context.bindRenderTarget(this._frameGraphRenderTarget,`frame graph render pass - ${this.name}`),super._execute(),this._context._flushDebugMessages()}_isValid(){const e=super._isValid();return e||(this._renderTarget!==void 0||this.renderTargetDepth!==void 0?null:"Render target and render target depth cannot both be undefined.")}}class q1{get name(){return this._name}set name(e){this._name=e}get disabled(){return this._disabled}set disabled(e){this._disabled=e}get passes(){return this._passes}get passesDisabled(){return this._passesDisabled}isReady(){return!0}dispose(){this._reset(),this.onTexturesAllocatedObservable.clear()}constructor(e,t){this._passes=[],this._passesDisabled=[],this._disabled=!1,this.onTexturesAllocatedObservable=new xe,this.name=e,this._frameGraph=t,this._reset()}_reset(){this._passes.length=0,this._passesDisabled.length=0}_addPass(e,t){t?this._passesDisabled.push(e):this._passes.push(e)}_checkTask(){let e=null,t=null,i;for(const l of this._passes){const c=l._isValid();if(c)throw new Error(`Pass "${l.name}" is not valid. ${c}`);if(PB.IsRenderPass(l)){const u=Array.isArray(l.renderTarget)?l.renderTarget:[l.renderTarget];e=[];for(const f of u)f!==void 0&&e.push(this._frameGraph.textureManager.getTextureFromHandle(f));t=l.renderTargetDepth!==void 0?this._frameGraph.textureManager.getTextureFromHandle(l.renderTargetDepth):null}else CH.IsCullPass(l)&&(i=l.objectList)}let s=null,r=[],n=null,o;for(const l of this._passesDisabled){const c=l._isValid();if(c)throw new Error(`Pass "${l.name}" is not valid. ${c}`);if(PB.IsRenderPass(l)){const u=Array.isArray(l.renderTarget)?l.renderTarget:[l.renderTarget];s=[];for(const f of u)f!==void 0&&s.push(this._frameGraph.textureManager.getTextureFromHandle(f));r=u,n=l.renderTargetDepth!==void 0?this._frameGraph.textureManager.getTextureFromHandle(l.renderTargetDepth):null}else CH.IsCullPass(l)&&(o=l.objectList)}if(this._passesDisabled.length>0){if(!this._checkSameRenderTarget(e,s)){let l=!0;for(const c of r)if(c!==void 0&&!this._frameGraph.textureManager.isHistoryTexture(c)){l=!1;break}if(!l)throw new Error(`The output texture of the task "${this.name}" is different when it is enabled or disabled.`)}if(t!==n)throw new Error(`The output depth texture of the task "${this.name}" is different when it is enabled or disabled.`);if(i!==o)throw new Error(`The output object list of the task "${this.name}" is different when it is enabled or disabled.`)}}_getPasses(){return this.disabled&&this._passesDisabled.length>0?this._passesDisabled:this._passes}_checkSameRenderTarget(e,t){if(e===null||t===null)return e===t;if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}}class ope extends q1{record(){if(this.sourceTexture===void 0)throw new Error(`FrameGraphCopyToBackbufferColorTask "${this.name}": sourceTexture is required`);const e=this._frameGraph.addRenderPass(this.name);e.addDependencies(this.sourceTexture),e.setRenderTarget(M0),e.setExecuteFunc(i=>{i.isBackbuffer(this.sourceTexture)||i.copyTexture(this.sourceTexture)});const t=this._frameGraph.addRenderPass(this.name+"_disabled",!0);t.setRenderTarget(M0),t.setExecuteFunc(i=>{})}}class Qee extends Hu{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this._isUnique=!0,this.registerInput("texture",zt.Texture),this.texture.addAcceptedConnectionPointTypes(zt.TextureAll),this._frameGraphTask=new ope(e,t)}getClassName(){return"NodeRenderGraphOutputBlock"}get texture(){return this._inputs[0]}_buildBlock(e){super._buildBlock(e),this._frameGraphTask.name=this.name;const t=this.texture.connectedPoint;t&&(this._frameGraphTask.sourceTexture=t.value)}}ve("BABYLON.NodeRenderGraphOutputBlock",Qee);var Jee;(function(a){a[a.None=0]="None",a[a.ToLinearSpace=1]="ToLinearSpace",a[a.ToGammaSpace=2]="ToGammaSpace"})(Jee||(Jee={}));class $ee{get shaderLanguage(){return this._shaderLanguage}_textureIsInternal(e){return e.getInternalTexture===void 0}constructor(e,t=!1){this._shaderLanguage=0,this._shadersLoaded=!1,this._engine=e,this._isDepthTexture=t,this._renderer=new BT(e),this._initShaderSourceAsync(t)}async _initShaderSourceAsync(e){const t=this._engine;t.isWebGPU?(this._shaderLanguage=1,await Promise.resolve().then(()=>WHe)):await Promise.resolve().then(()=>GHe),this._shadersLoaded=!0,this._effectWrapper=new Qr({engine:t,name:"CopyTextureToTexture",fragmentShader:"copyTextureToTexture",useShaderStore:!0,uniformNames:["conversion"],samplerNames:["textureSampler"],defines:e?["#define DEPTH_TEXTURE"]:[],shaderLanguage:this._shaderLanguage}),this._effectWrapper.onApplyObservable.add(()=>{e?(t.setState(!1),t.setDepthBuffer(!0),t.depthCullingState.depthMask=!0,t.depthCullingState.depthFunc=519):t.depthCullingState.depthMask=!1,this._textureIsInternal(this._source)?this._effectWrapper.effect._bindTexture("textureSampler",this._source):this._effectWrapper.effect.setTexture("textureSampler",this._source),this._effectWrapper.effect.setFloat("conversion",this._conversion)})}isReady(){var e,t;return this._shadersLoaded&&!!((t=(e=this._effectWrapper)==null?void 0:e.effect)!=null&&t.isReady())}copy(e,t=null,i=0){if(!this.isReady())return!1;this._source=e,this._conversion=i;const s=this._engine.getDepthFunction(),r=this._engine.getDepthWrite();return this._renderer.render(this._effectWrapper,t),this._engine.setDepthWrite(r),this._isDepthTexture&&s&&this._engine.setDepthFunction(s),!0}dispose(){var e;(e=this._effectWrapper)==null||e.dispose(),this._renderer.dispose()}}class ete{}class xH extends ete{static _IsObjectRenderer(e){return e.initRender!==void 0}constructor(e,t,i){super(),this._engine=e,this._textureManager=t,this._scene=i,this._debugMessageHasBeenPushed=!1,this._renderTargetIsBound=!0,this._effectRenderer=new BT(this._engine),this._copyTexture=new $ee(this._engine)}isBackbuffer(e){return this._textureManager.isBackbuffer(e)}isBackbufferColor(e){return this._textureManager.isBackbufferColor(e)}isBackbufferDepthStencil(e){return this._textureManager.isBackbufferDepthStencil(e)}createRenderTarget(e,t,i){return this._textureManager.createRenderTarget(e,t,i)}clear(e,t,i,s){this._applyRenderTarget(),this._engine.clear(e,t,i,s)}clearColorAttachments(e,t){this._applyRenderTarget(),this._engine.bindAttachments(t),this._engine.clear(e,!0,!1,!1)}bindAttachments(e){this._applyRenderTarget(),this._engine.bindAttachments(e)}generateMipMaps(){var t;if(((t=this._currentRenderTarget)==null?void 0:t.renderTargetWrapper)===void 0)return;this._renderTargetIsBound&&this._engine._currentRenderTarget&&(this._flushDebugMessages(),this._engine.unBindFramebuffer(this._engine._currentRenderTarget),this._renderTargetIsBound=!1);const e=this._currentRenderTarget.renderTargetWrapper.textures;if(e)for(const i of e)this._engine.generateMipmaps(i)}setTextureSamplingMode(e,t){const i=this._textureManager.getTextureFromHandle(e);i&&i.samplingMode!==t&&this._engine.updateTextureSamplingMode(t,i)}bindTextureHandle(e,t,i){let s;const r=this._textureManager._historyTextures.get(i);r?(s=r.textures[r.index],this._currentRenderTarget!==void 0&&this._currentRenderTarget.renderTargetWrapper!==void 0&&this._currentRenderTarget.renderTargetWrapper.textures.includes(s)&&(s=r.textures[r.index^1])):s=this._textureManager._textures.get(i).texture,e._bindTexture(t,s)}saveDepthStates(){this._depthTest=this._engine.getDepthBuffer(),this._depthWrite=this._engine.getDepthWrite()}restoreDepthStates(){this._engine.setDepthBuffer(this._depthTest),this._engine.setDepthWrite(this._depthWrite)}setDepthStates(e,t){this._engine.setDepthBuffer(e),this._engine.setDepthWrite(t)}applyFullScreenEffect(e,t){var s;if(!((s=e.effect)!=null&&s.isReady()))return!1;this._applyRenderTarget();const i=this._engine.getDepthWrite();return this._effectRenderer.saveStates(),this._effectRenderer.setViewport(),this._engine.enableEffect(e),this._engine.setState(!1),this._engine.setDepthBuffer(!1),this._engine.setDepthWrite(!1),this._effectRenderer.bindBuffers(e.effect),t==null||t(),this._effectRenderer.draw(),this._effectRenderer.restoreStates(),this._engine.setDepthWrite(i),this._engine.setAlphaMode(0),!0}copyTexture(e,t=!1){t&&this.bindRenderTarget(),this._applyRenderTarget(),this._copyTexture.copy(this._textureManager.getTextureFromHandle(e))}render(e,t,i){xH._IsObjectRenderer(e)?e.shouldRender()&&(this._scene.incrementRenderId(),this._scene.resetCachedMaterial(),this._applyRenderTarget(),e.prepareRenderList(),e.initRender(t,i),e.render(),e.finishRender()):(this._applyRenderTarget(),e.render())}bindRenderTarget(e,t){var i,s;if((e==null?void 0:e.renderTargetWrapper)===void 0&&this._currentRenderTarget===void 0||e&&this._currentRenderTarget&&e.equals(this._currentRenderTarget)){this._flushDebugMessages(),t!==void 0&&((s=(i=this._engine)._debugPushGroup)==null||s.call(i,t,2),this._debugMessageWhenTargetBound=void 0,this._debugMessageHasBeenPushed=!0);return}this._currentRenderTarget=(e==null?void 0:e.renderTargetWrapper)===void 0?void 0:e,this._debugMessageWhenTargetBound=t,this._renderTargetIsBound=!1}_flushDebugMessages(){var e,t;this._debugMessageHasBeenPushed&&((t=(e=this._engine)._debugPopGroup)==null||t.call(e,2),this._debugMessageHasBeenPushed=!1)}_applyRenderTarget(){var t,i,s;if(this._renderTargetIsBound)return;this._flushDebugMessages();const e=(t=this._currentRenderTarget)==null?void 0:t.renderTargetWrapper;e===void 0?this._engine.restoreDefaultFramebuffer():(this._engine._currentRenderTarget&&this._engine.unBindFramebuffer(this._engine._currentRenderTarget),this._engine.bindFramebuffer(e)),this._debugMessageWhenTargetBound!==void 0&&((s=(i=this._engine)._debugPushGroup)==null||s.call(i,this._debugMessageWhenTargetBound,2),this._debugMessageWhenTargetBound=void 0,this._debugMessageHasBeenPushed=!0),this._renderTargetIsBound=!0}_isReady(){return this._copyTexture.isReady()}_dispose(){this._effectRenderer.dispose(),this._copyTexture.dispose()}}function ky(a){return a.width!==void 0}function OB(a){return ky(a)?{width:a.width,height:a.height}:{width:a,height:a}}class lpe{constructor(e,t,i,s){this._isBackBuffer=!1,this.name=e,this._textureManager=t,this._renderTargets=i===void 0?void 0:Array.isArray(i)?i:[i],this._renderTargetDepth=s}get renderTargetWrapper(){var e;if(!this._isBackBuffer){if(!this._renderTargetWrapper){const t=this._textureManager.engine,i=this._renderTargets===void 0?this._renderTargetDepth:this._renderTargets[0];if(this._textureManager.isBackbuffer(i)){this._isBackBuffer=!0;return}const s=this._textureManager.getTextureDescription(i),r={textureCount:((e=this._renderTargets)==null?void 0:e.length)??0,generateDepthBuffer:!1,label:this.name,samples:s.options.samples??1,dontCreateTextures:!0};this._renderTargetWrapper=t.createMultipleRenderTarget(s.size,r,!0);for(let n=0;n<r.textureCount;n++){const o=this._renderTargets[n],l=this._textureManager.getTextureFromHandle(o);if(!l)throw new Error(`FrameGraphRenderTarget.renderTargetWrapper: Failed to get texture from handle. handle: ${o}, name: ${this.name}, index: ${n}, renderTargets: ${this._renderTargets}`);this._renderTargetWrapper.setTexture(l,n,!1)}this._renderTargetDepth!==void 0&&this._renderTargetWrapper.setDepthStencilTexture(this._textureManager.getTextureFromHandle(this._renderTargetDepth),!1)}return this._renderTargetWrapper}}equals(e){const t=this._renderTargets,i=e._renderTargets;if(t!==void 0&&i!==void 0){if(t.length!==i.length)return!1;for(let s=0;s<t.length;s++)if(t[s]!==i[s])return!1}else if(t===void 0&&i!==void 0||t!==void 0&&i===void 0)return!1;return this._renderTargetDepth===e._renderTargetDepth}}var E0;(function(a){a[a.Task=0]="Task",a[a.Graph=1]="Graph",a[a.External=2]="External"})(E0||(E0={}));class i_{constructor(e,t=!1,i){this.engine=e,this._debugTextures=t,this._scene=i,this._textures=new Map,this._historyTextures=new Map,this._isRecordingTask=!1,this.showDebugLogsForTextureAllcationOptimization=!1,this._addSystemTextures()}isBackbuffer(e){if(e===M0||e===d3)return!0;const t=this._textures.get(e);return t?t.refHandle===M0||t.refHandle===d3:!1}isBackbufferColor(e){if(e===M0)return!0;const t=this._textures.get(e);return t?t.refHandle===M0:!1}isBackbufferDepthStencil(e){if(e===d3)return!0;const t=this._textures.get(e);return t?t.refHandle===d3:!1}isHistoryTexture(e){const t=this._textures.get(e);return t?(e=t.refHandle??e,this._historyTextures.has(e)):!1}getTextureCreationOptions(e){const t=this._textures.get(e),i=t.creationOptions;return{size:ky(i.size)?{...i.size}:i.size,sizeIsPercentage:i.sizeIsPercentage,options:i_.CloneTextureOptions(i.options,t.textureIndex),isHistoryTexture:i.isHistoryTexture}}getTextureDescription(e){const t=this.getTextureCreationOptions(e);return{size:t.sizeIsPercentage?this.getAbsoluteDimensions(t.size):ky(t.size)?t.size:{width:t.size,height:t.size},options:t.options}}getTextureHandleOrCreateTexture(e,t,i){if(e===void 0){if(t===void 0||i===void 0)throw new Error("getTextureHandleOrCreateTexture: Either handle or newTextureName and creationOptions must be provided.");return this.createRenderTargetTexture(t,i)}return e}getTextureFromHandle(e){const t=this._historyTextures.get(e);return t?t.textures[t.index^1]:this._textures.get(e).texture}importTexture(e,t,i){i!==void 0&&this._freeEntry(i);const s={size:{width:t.width,height:t.height},sizeIsPercentage:!1,isHistoryTexture:!1,options:{createMipMaps:t.generateMipMaps,samples:t.samples,types:[t.type],formats:[t.format],useSRGBBuffers:[t._useSRGBBuffer],creationFlags:[t._creationFlags],labels:t.label?[t.label]:["imported"]}};return this._createHandleForTexture(e,t,s,E0.External,i)}createRenderTargetTexture(e,t,i){return this._createHandleForTexture(e,null,{size:ky(t.size)?{...t.size}:t.size,sizeIsPercentage:t.sizeIsPercentage,isHistoryTexture:t.isHistoryTexture,options:i_.CloneTextureOptions(t.options,void 0,!0)},this._isRecordingTask?E0.Task:E0.Graph,i)}createRenderTarget(e,t,i){var n;const s=new lpe(e,this,t,i),r=s.renderTargetWrapper;if(r!==void 0&&t){const o=Array.isArray(t)?t:[t];for(let l=0;l<o.length;l++){let c=o[l];c=((n=this._textures.get(c))==null?void 0:n.refHandle)??c;const u=this._historyTextures.get(c);u&&(u.references.push({renderTargetWrapper:r,textureIndex:l}),r.setTexture(u.textures[u.index],l,!1))}}return s}createDanglingHandle(){return i_._Counter++}resolveDanglingHandle(e,t,i,s){if(t===void 0){if(i===void 0||s===void 0)throw new Error("resolveDanglingHandle: Either handle or newTextureName and creationOptions must be provided.");this.createRenderTargetTexture(i,s,e);return}const r=this._textures.get(t);if(r===void 0)throw new Error(`resolveDanglingHandle: Handle ${t} does not exist!`);this._textures.set(e,{texture:r.texture,refHandle:t,name:r.name,creationOptions:{size:{...r.creationOptions.size},options:i_.CloneTextureOptions(r.creationOptions.options),sizeIsPercentage:r.creationOptions.sizeIsPercentage,isHistoryTexture:!1},namespace:r.namespace,textureIndex:r.textureIndex})}getAbsoluteDimensions(e,t=this.engine.getRenderWidth(!0),i=this.engine.getRenderHeight(!0)){const{width:s,height:r}=OB(e);return{width:Math.floor(s*t/100),height:Math.floor(r*i/100)}}computeTotalTextureSize(e,t,i){let s=0;return this._textures.forEach((r,n)=>{var m;if(n===M0||n===d3||r.refHandle!==void 0||e&&r.aliasHandle!==void 0)return;const o=r.creationOptions,l=r.textureIndex||0,c=o.sizeIsPercentage?this.getAbsoluteDimensions(o.size,t,i):OB(o.size),u=i_._GetTextureBlockInformation(((m=o.options.types)==null?void 0:m[l])??0,o.options.formats[l]),f=Math.ceil(c.width/u.width)*Math.ceil(c.height/u.height)*u.length;let p=f;o.options.createMipMaps&&(p=Math.floor(p*4/3)),(o.options.samples||1)>1&&(p+=f),s+=p}),s}_dispose(){this._releaseTextures()}_allocateTextures(e){e&&this._optimizeTextureAllocation(e),this._textures.forEach(t=>{var i,s,r,n,o,l;if(!t.texture){if(t.refHandle!==void 0){const c=this._textures.get(t.refHandle);t.texture=c.texture,c.refHandle===M0&&(t.refHandle=M0),c.refHandle===d3&&(t.refHandle=d3)}else if(t.namespace!==E0.External)if(t.aliasHandle!==void 0){const c=this._textures.get(t.aliasHandle);t.texture=c.texture,t.texture.incrementReferences()}else{const c=t.creationOptions,u=c.sizeIsPercentage?this.getAbsoluteDimensions(c.size):c.size,f=t.textureIndex||0,p={createMipMaps:c.options.createMipMaps,samples:c.options.samples,type:(i=c.options.types)==null?void 0:i[f],format:(s=c.options.formats)==null?void 0:s[f],useSRGBBuffer:(r=c.options.useSRGBBuffers)==null?void 0:r[f],creationFlags:(n=c.options.creationFlags)==null?void 0:n[f],label:((o=c.options.labels)==null?void 0:o[f])??`${t.name}${f>0?"#"+f:""}`,samplingMode:1,createMSAATexture:c.options.samples>1},m=IZ(p.format),_=zT(p.format),d=m&&_?12:m||_?14:5,h=this.engine._createInternalTexture(u,p,!1,d);m&&(h.type=cde(h.format)),t.texture=h}}t.texture&&t.refHandle===void 0&&((l=t.debug)==null||l.dispose(),t.debug=this._createDebugTexture(t.name,t.texture))}),this._historyTextures.forEach(t=>{for(let i=0;i<t.handles.length;i++)t.textures[i]=this._textures.get(t.handles[i]).texture})}_releaseTextures(e=!0){this._textures.forEach((t,i)=>{var s,r;t.lifespan&&(t.lifespan.firstTask=Number.MAX_VALUE,t.lifespan.lastTask=0),t.aliasHandle=void 0,(e||t.namespace!==E0.External)&&((s=t.debug)==null||s.dispose(),t.debug=void 0),t.namespace!==E0.External&&((r=t.texture)==null||r.dispose(),t.texture=null,(e||t.namespace===E0.Task)&&this._textures.delete(i))}),this._historyTextures.forEach(t=>{for(let i=0;i<t.handles.length;i++)t.textures[i]=null}),e&&(this._textures.clear(),this._historyTextures.clear(),this._addSystemTextures())}_updateHistoryTextures(){this._historyTextures.forEach(e=>{e.index=e.index^1;const t=e.textures[e.index];if(t)for(const{renderTargetWrapper:i,textureIndex:s}of e.references)i.setTexture(t,s,!1)})}_addSystemTextures(){const e={width:this.engine.getRenderWidth(!0),height:this.engine.getRenderHeight(!0)};this._textures.set(M0,{name:"backbuffer color",texture:null,creationOptions:{size:e,options:{createMipMaps:!1,samples:this.engine.getCreationOptions().antialias?4:1,types:[0],formats:[5],useSRGBBuffers:[!1],creationFlags:[0],labels:["backbuffer color"]},sizeIsPercentage:!1},namespace:E0.External}),this._textures.set(d3,{name:"backbuffer depth/stencil",texture:null,creationOptions:{size:e,options:{createMipMaps:!1,samples:this.engine.getCreationOptions().antialias?4:1,types:[0],formats:[16],useSRGBBuffers:[!1],creationFlags:[0],labels:["backbuffer depth/stencil"]},sizeIsPercentage:!1},namespace:E0.External})}_createDebugTexture(e,t){if(!this._debugTextures)return;const i=new be(null,this._scene);return i.name=e,i._texture=t,i._texture.incrementReferences(),i}_freeEntry(e){var i;const t=this._textures.get(e);t&&((i=t.debug)==null||i.dispose(),this._textures.delete(e))}_createHandleForTexture(e,t,i,s,r,n){var u;r=r??i_._Counter++,n=n||0;const o=i.isHistoryTexture?`${e} ping`:e;let l=((u=i.options.labels)==null?void 0:u[n])??"";l===o&&(l="");const c={texture:t,name:`${o}${l?" "+l:""}`,creationOptions:{size:ky(i.size)?i.size:{width:i.size,height:i.size},options:i.options,sizeIsPercentage:i.sizeIsPercentage,isHistoryTexture:i.isHistoryTexture},namespace:s,textureIndex:n,textureDescriptionHash:this._createTextureDescriptionHash(i),lifespan:{firstTask:Number.MAX_VALUE,lastTask:0}};if(this._textures.set(r,c),s===E0.External)return r;if(i.isHistoryTexture){const f={size:{...c.creationOptions.size},options:{...c.creationOptions.options},sizeIsPercentage:c.creationOptions.sizeIsPercentage,isHistoryTexture:!1},p=this._createHandleForTexture(`${e} pong`,null,f,s);return this._historyTextures.set(r,{textures:[null,null],handles:[r,p],index:0,references:[]}),r}if(i.options.types&&i.options.types.length>1&&n===0){const f=i.options.types.length,p={size:ky(i.size)?i.size:{width:i.size,height:i.size},options:i.options,sizeIsPercentage:i.sizeIsPercentage};for(let m=1;m<f;m++)this._createHandleForTexture(o,null,p,s,r+m,m);i_._Counter+=f-1}return r}_createTextureDescriptionHash(e){const t=[];return t.push(ky(e.size)?`${e.size.width}_${e.size.height}`:`${e.size}`),t.push(e.sizeIsPercentage?"%":"A"),t.push(e.options.createMipMaps?"M":"N"),t.push(e.options.samples?`${e.options.samples}`:"S1"),t.push(e.options.types?e.options.types.join("_"):"0"),t.push(e.options.formats?e.options.formats.join("_"):"5"),t.push(e.options.useSRGBBuffers?e.options.useSRGBBuffers.join("_"):"false"),t.push(e.options.creationFlags?e.options.creationFlags.join("_"):"0"),t.join("_")}_optimizeTextureAllocation(e){this._computeTextureLifespan(e),this.showDebugLogsForTextureAllcationOptimization&&de.Log("================== Optimization of texture allocation ==================");const t=new Map,i=this._textures.keys();for(let s=i.next();s.done!==!0;s=i.next()){const r=s.value,n=this._textures.get(r);if(n.refHandle!==void 0||n.namespace===E0.External||this._historyTextures.has(r))continue;const o=n.textureDescriptionHash,l=n.lifespan,c=t.get(o);if(c){let u=!1;for(const f of c){const[p,m]=f;let _=!1;for(const d of m)if(d.firstTask<=l.lastTask&&d.lastTask>=l.firstTask){_=!0;break}if(!_){this.showDebugLogsForTextureAllcationOptimization&&de.Log(`Texture ${r} (${n.name}) reuses cache entry ${p}`),m.push(l),n.aliasHandle=p,u=!0;break}}u||c.push([r,[l]])}else t.set(o,[[r,[l]]])}}_computeTextureLifespan(e){this.showDebugLogsForTextureAllcationOptimization&&de.Log("================== Dump of texture dependencies for all tasks/passes ==================");for(let t=0;t<e.length;++t){const i=e[t];i.passes.length>0&&this._computeTextureLifespanForPasses(i,t,i.passes),i.passesDisabled.length>0&&this._computeTextureLifespanForPasses(i,t,i.passesDisabled),i.dependencies&&(this.showDebugLogsForTextureAllcationOptimization&&de.Log(`task#${t} (${i.name}), global dependencies`),this._updateLifespan(t*100+99,i.dependencies))}if(this.showDebugLogsForTextureAllcationOptimization){de.Log("================== Texture lifespans ==================");const t=this._textures.keys();for(let i=t.next();i.done!==!0;i=t.next()){const s=i.value,r=this._textures.get(s);r.refHandle!==void 0||r.namespace===E0.External||this._historyTextures.has(s)||de.Log(`${s} (${r.name}): ${r.lifespan.firstTask} - ${r.lifespan.lastTask}`)}}}_computeTextureLifespanForPasses(e,t,i){for(let s=0;s<i.length;++s){const r=new Set,n=i[s];PB.IsRenderPass(n)&&(n.collectDependencies(r),this.showDebugLogsForTextureAllcationOptimization&&de.Log(`task#${t} (${e.name}), pass#${s} (${n.name})`),this._updateLifespan(t*100+s,r))}}_updateLifespan(e,t){const i=t.keys();for(let s=i.next();s.done!==!0;s=i.next()){const r=s.value;let n=this._textures.get(r);if(!n)throw new Error(`FrameGraph._computeTextureLifespan: Texture handle "${r}" not found in the texture manager.`);let o=r;for(;n.refHandle!==void 0;)if(o=n.refHandle,n=this._textures.get(o),!n)throw new Error(`FrameGraph._computeTextureLifespan: Texture handle "${o}" not found in the texture manager (source handle="${r}").`);n.namespace===E0.External||this._historyTextures.has(o)||(this.showDebugLogsForTextureAllcationOptimization&&de.Log(`    ${o} (${n.name})`),n.lifespan.firstTask=Math.min(n.lifespan.firstTask,e),n.lifespan.lastTask=Math.max(n.lifespan.lastTask,e))}}static CloneTextureOptions(e,t,i){return t!==void 0?{createMipMaps:e.createMipMaps,samples:e.samples,types:e.types?[e.types[t]]:void 0,formats:e.formats?[e.formats[t]]:void 0,useSRGBBuffers:e.useSRGBBuffers?[e.useSRGBBuffers[t]]:void 0,creationFlags:e.creationFlags?[e.creationFlags[t]]:void 0,labels:e.labels?[e.labels[t]]:void 0}:{createMipMaps:e.createMipMaps,samples:e.samples,types:e.types?[...e.types]:void 0,formats:e.formats?[...e.formats]:void 0,useSRGBBuffers:e.useSRGBBuffers?[...e.useSRGBBuffers]:void 0,creationFlags:e.creationFlags?[...e.creationFlags]:void 0,labels:e.labels&&i?[...e.labels]:void 0}}static _GetTextureBlockInformation(e,t){switch(t){case 15:return{width:1,height:1,length:2};case 16:return{width:1,height:1,length:3};case 13:return{width:1,height:1,length:4};case 14:return{width:1,height:1,length:4};case 18:return{width:1,height:1,length:5};case 19:return{width:1,height:1,length:1};case 36492:return{width:4,height:4,length:16};case 36495:return{width:4,height:4,length:16};case 36494:return{width:4,height:4,length:16};case 33779:return{width:4,height:4,length:16};case 33778:return{width:4,height:4,length:16};case 33777:case 33776:return{width:4,height:4,length:8};case 37808:return{width:4,height:4,length:16};case 36196:case 37492:return{width:4,height:4,length:8};case 37496:return{width:4,height:4,length:16}}switch(e){case 3:case 0:switch(t){case 6:case 8:case 0:case 1:case 2:return{width:1,height:1,length:1};case 7:case 9:return{width:1,height:1,length:2};case 4:case 10:return{width:1,height:1,length:3};case 11:return{width:1,height:1,length:4};default:return{width:1,height:1,length:4}}case 4:case 5:switch(t){case 8:return{width:1,height:1,length:2};case 9:return{width:1,height:1,length:4};case 10:return{width:1,height:1,length:6};case 11:return{width:1,height:1,length:8};default:return{width:1,height:1,length:8}}case 6:case 7:switch(t){case 8:return{width:1,height:1,length:4};case 9:return{width:1,height:1,length:8};case 10:return{width:1,height:1,length:12};case 11:return{width:1,height:1,length:16};default:return{width:1,height:1,length:16}}case 1:switch(t){case 6:return{width:1,height:1,length:4};case 7:return{width:1,height:1,length:8};case 4:return{width:1,height:1,length:12};case 5:return{width:1,height:1,length:16};default:return{width:1,height:1,length:16}}case 2:switch(t){case 6:return{width:1,height:1,length:2};case 7:return{width:1,height:1,length:4};case 4:return{width:1,height:1,length:6};case 5:return{width:1,height:1,length:8};default:return{width:1,height:1,length:8}}case 10:return{width:1,height:1,length:2};case 13:switch(t){case 5:case 11:return{width:1,height:1,length:4};default:return{width:1,height:1,length:4}}case 14:switch(t){case 5:case 11:return{width:1,height:1,length:4};default:return{width:1,height:1,length:4}}case 8:return{width:1,height:1,length:2};case 9:return{width:1,height:1,length:2};case 11:switch(t){case 5:return{width:1,height:1,length:4};case 11:return{width:1,height:1,length:4};default:return{width:1,height:1,length:4}}}return{width:1,height:1,length:4}}}i_._Counter=2;var yL;(function(a){a[a.Normal=0]="Normal",a[a.Render=1]="Render",a[a.Cull=2]="Cull"})(yL||(yL={}));class cpe{get engine(){return this._engine}get scene(){return this._scene}get tasks(){return this._tasks}getLinkedNodeRenderGraph(){return this._linkedNodeRenderGraph}constructor(e,t=!1,i=null){this._linkedNodeRenderGraph=i,this._tasks=[],this._currentProcessedTask=null,this._whenReadyAsyncCancel=null,this.name="Frame Graph",this.optimizeTextureAllocation=!0,this.onBuildObservable=new xe,this._scene=e,this._engine=e.getEngine(),this.textureManager=new i_(this._engine,t,e),this._passContext=new ete,this._renderContext=new xH(this._engine,this.textureManager,e),this._scene.frameGraphs.push(this)}getClassName(){return"FrameGraph"}getTaskByName(e){return this._tasks.find(t=>t.name===e)}addTask(e){if(this._currentProcessedTask!==null)throw new Error(`FrameGraph.addTask: Can't add the task "${e.name}" while another task is currently building (task: ${this._currentProcessedTask.name}).`);this._tasks.push(e)}addPass(e,t=!1){return this._addPass(e,yL.Normal,t)}addRenderPass(e,t=!1){return this._addPass(e,yL.Render,t)}addCullPass(e,t=!1){return this._addPass(e,yL.Cull,t)}_addPass(e,t,i=!1){if(!this._currentProcessedTask)throw new Error("FrameGraph: A pass must be created during a Task.record execution only.");let s;switch(t){case yL.Render:s=new PB(e,this._currentProcessedTask,this._renderContext,this._engine);break;case yL.Cull:s=new CH(e,this._currentProcessedTask,this._passContext,this._engine);break;default:s=new AH(e,this._currentProcessedTask,this._passContext);break}return this._currentProcessedTask._addPass(s,i),s}build(){this.textureManager._releaseTextures(!1);try{for(const e of this._tasks)e._reset(),this._currentProcessedTask=e,this.textureManager._isRecordingTask=!0,e.record(),this.textureManager._isRecordingTask=!1,this._currentProcessedTask=null;this.textureManager._allocateTextures(this.optimizeTextureAllocation?this._tasks:void 0);for(const e of this._tasks)e._checkTask();for(const e of this._tasks)e.onTexturesAllocatedObservable.notifyObservers(this._renderContext);this.onBuildObservable.notifyObservers(this)}catch(e){throw this._tasks.length=0,this._currentProcessedTask=null,this.textureManager._isRecordingTask=!1,e}}whenReadyAsync(e=16,t=3e4){let i=null;return new Promise(s=>{this._whenReadyAsyncCancel=my(()=>{let r=this._renderContext._isReady();for(const n of this._tasks){const o=n.isReady();!o&&!i&&(i=n),r&&(r=o)}return r},()=>{this._whenReadyAsyncCancel=null,s()},(r,n)=>{this._whenReadyAsyncCancel=null,n?(de.Error(`FrameGraph: Timeout while waiting for the frame graph to be ready.${i?` First task not ready: ${i.name}`:""}`),r&&de.Error(r)):(de.Error("FrameGraph: An unexpected error occurred while waiting for the frame graph to be ready."),r&&(de.Error(r),r.stack&&de.Error(r.stack)))},e,t)})}execute(){this._renderContext.bindRenderTarget(),this.textureManager._updateHistoryTextures();for(const e of this._tasks){const t=e._getPasses();for(const i of t)i._execute()}}clear(){var e;(e=this._whenReadyAsyncCancel)==null||e.call(this),this._whenReadyAsyncCancel=null;for(const t of this._tasks)t._reset();this._tasks.length=0,this.textureManager._releaseTextures(),this._currentProcessedTask=null}dispose(){var t;(t=this._whenReadyAsyncCancel)==null||t.call(this),this._whenReadyAsyncCancel=null,this.clear(),this.textureManager._dispose(),this._renderContext._dispose();const e=this._scene.frameGraphs.indexOf(this);e!==-1&&this._scene.frameGraphs.splice(e,1)}}var tte;(function(a){a[a.Boolean=0]="Boolean",a[a.Float=1]="Float",a[a.Int=2]="Int",a[a.Vector2=3]="Vector2",a[a.List=4]="List",a[a.Color4=5]="Color4",a[a.SamplingMode=6]="SamplingMode",a[a.TextureFormat=7]="TextureFormat",a[a.TextureType=8]="TextureType"})(tte||(tte={}));function lt(a,e=0,t="PROPERTIES",i){return(s,r)=>{let n=s._propStore;n||(n=[],s._propStore=n),n.push({propertyName:r,displayName:a,type:e,groupName:t,options:i??{},className:s.getClassName()})}}class ML extends Hu{get type(){return this._type}constructor(e,t,i,s=zt.Undefined){super(e,t,i),this._storedValue=null,this._type=zt.Undefined,this.onValueChangedObservable=new xe,this.isExternal=!1,this._type=s,this._isInput=!0,this.registerOutput("output",s),this.setDefaultValue()}setDefaultValue(){switch(this.type){case zt.Texture:case zt.TextureViewDepth:case zt.TextureScreenDepth:case zt.TextureViewNormal:case zt.TextureWorldNormal:case zt.TextureAlbedo:case zt.TextureReflectivity:case zt.TextureLocalPosition:case zt.TextureWorldPosition:case zt.TextureVelocity:case zt.TextureLinearVelocity:case zt.TextureIrradiance:case zt.TextureAlbedoSqrt:{const e={size:{width:100,height:100},options:{createMipMaps:!1,types:[0],formats:[5],samples:1,useSRGBBuffers:[!1]},sizeIsPercentage:!0};this.creationOptions=e;break}case zt.TextureDepthStencilAttachment:{const e={size:{width:100,height:100},options:{createMipMaps:!1,types:[0],formats:[13],useSRGBBuffers:[!1],labels:[this.name],samples:1},sizeIsPercentage:!0};this.creationOptions=e;break}case zt.ObjectList:this.value={meshes:[],particleSystems:[]},this.isExternal=!0;break;case zt.Camera:this.value=this._scene.cameras[0],this.isExternal=!0;break;default:this.isExternal=!0}}get value(){return this._storedValue}set value(e){this._storedValue=e,this.output.value=void 0,this.onValueChangedObservable.notifyObservers(this)}getTypedValue(){return this._storedValue}getInternalTextureFromValue(){return this._storedValue._swapAndDie?this._storedValue:null}getClassName(){return"NodeRenderGraphInputBlock"}get output(){return this._outputs[0]}isAnyTexture(){return(this.type&zt.TextureAll)!==0}isBackBuffer(){return(this.type&zt.TextureBackBuffer)!==0}isBackBufferDepthStencilAttachment(){return(this.type&zt.TextureBackBufferDepthStencilAttachment)!==0}isCamera(){return(this.type&zt.Camera)!==0}isObjectList(){return(this.type&zt.ObjectList)!==0}isShadowLight(){return(this.type&zt.ShadowLight)!==0}_buildBlock(e){if(super._buildBlock(e),this.isExternal){if(this.isBackBuffer())this.output.value=M0;else if(this.isBackBufferDepthStencilAttachment())this.output.value=d3;else if(this.isCamera())this.output.value=this.getTypedValue();else if(this.isObjectList())this.output.value=this.getTypedValue();else if(this.isShadowLight())this.output.value=this.getTypedValue();else{if(this._storedValue===void 0||this._storedValue===null)throw new Error(`NodeRenderGraphInputBlock: External input "${this.name}" is not set`);const t=this.getInternalTextureFromValue();t&&(this.output.value=this._frameGraph.textureManager.importTexture(this.name,t,this.output.value))}return}if(this.type&zt.TextureAllButBackBuffer){const t=this.creationOptions;if(!t)throw new Error(`NodeRenderGraphInputBlock: Creation options are missing for texture "${this.name}"`);this.output.value=this._frameGraph.textureManager.createRenderTargetTexture(this.name,t)}}dispose(){this._storedValue=null,this.onValueChangedObservable.clear(),super.dispose()}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.isExternal = ${this.isExternal};`),this.isAnyTexture()?this.isExternal?e.push(`${this._codeVariableName}.value = EXTERNAL_TEXTURE; // TODO: set the external texture`):e.push(`${this._codeVariableName}.creationOptions = ${JSON.stringify(this.creationOptions)};`):this.isCamera()?e.push(`${this._codeVariableName}.value = EXTERNAL_CAMERA; // TODO: set the external camera`):this.isObjectList()?e.push(`${this._codeVariableName}.value = EXTERNAL_OBJECT_LIST; // TODO: set the external object list`):this.isShadowLight()&&e.push(`${this._codeVariableName}.value = EXTERNAL_SHADOW_LIGHT; // TODO: set the external shadow light`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.type=this.type,e.isExternal=this.isExternal,this.creationOptions&&(e.creationOptions=this.creationOptions),e}_deserialize(e){super._deserialize(e),this._type=e.type,this.output.type=this._type,this.isExternal=e.isExternal,e.creationOptions&&(e.creationOptions.options.depthTextureFormat!==void 0&&(e.creationOptions.options.formats=[e.creationOptions.options.depthTextureFormat]),this.creationOptions=e.creationOptions)}}F([lt("Is external",0,"PROPERTIES")],ML.prototype,"isExternal",void 0),ve("BABYLON.NodeRenderGraphInputBlock",ML);class ite extends q1{constructor(e,t){super(e,t),this.color=new St(.2,.2,.3,1),this.clearColor=!0,this.convertColorToLinearSpace=!1,this.clearDepth=!1,this.clearStencil=!1,this.outputTexture=this._frameGraph.textureManager.createDanglingHandle(),this.outputDepthTexture=this._frameGraph.textureManager.createDanglingHandle()}record(){if(this.targetTexture===void 0&&this.depthTexture===void 0)throw new Error(`FrameGraphClearTextureTask ${this.name}: targetTexture and depthTexture can't both be undefined.`);let e=0,t=0;if(this.targetTexture!==void 0&&(e=this._frameGraph.textureManager.getTextureDescription(this.targetTexture).options.samples||1,this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,this.targetTexture)),this.depthTexture!==void 0&&(t=this._frameGraph.textureManager.getTextureDescription(this.depthTexture).options.samples||1,this._frameGraph.textureManager.resolveDanglingHandle(this.outputDepthTexture,this.depthTexture)),e!==t&&e!==0&&t!==0)throw new Error(`FrameGraphClearTextureTask ${this.name}: the depth texture and the target texture must have the same number of samples.`);const i=Sr.Color4[0],s=this._frameGraph.addRenderPass(this.name);s.setRenderTarget(this.targetTexture),s.setRenderTargetDepth(this.depthTexture),s.setExecuteFunc(n=>{i.copyFrom(this.color),this.convertColorToLinearSpace&&i.toLinearSpaceToRef(i),n.clear(i,!!this.clearColor,!!this.clearDepth,!!this.clearStencil)});const r=this._frameGraph.addRenderPass(this.name+"_disabled",!0);return r.setRenderTarget(this.targetTexture),r.setRenderTargetDepth(this.depthTexture),r.setExecuteFunc(n=>{}),s}}class r9 extends Hu{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this.registerInput("target",zt.AutoDetect,!0),this.registerInput("depth",zt.AutoDetect,!0),this._addDependenciesInput(),this.registerOutput("output",zt.BasedOnInput),this.registerOutput("outputDepth",zt.BasedOnInput),this.target.addExcludedConnectionPointFromAllowedTypes(zt.TextureAll),this.depth.addExcludedConnectionPointFromAllowedTypes(zt.TextureDepthStencilAttachment|zt.TextureBackBufferDepthStencilAttachment),this.output._typeConnectionSource=this.target,this.outputDepth._typeConnectionSource=this.depth,this._frameGraphTask=new ite(e,t)}get color(){return this._frameGraphTask.color}set color(e){this._frameGraphTask.color=e}get clearColor(){return!!this._frameGraphTask.clearColor}set clearColor(e){this._frameGraphTask.clearColor=e}get convertColorToLinearSpace(){return!!this._frameGraphTask.convertColorToLinearSpace}set convertColorToLinearSpace(e){this._frameGraphTask.convertColorToLinearSpace=e}get clearDepth(){return!!this._frameGraphTask.clearDepth}set clearDepth(e){this._frameGraphTask.clearDepth=e}get clearStencil(){return!!this._frameGraphTask.clearStencil}set clearStencil(e){this._frameGraphTask.clearStencil=e}getClassName(){return"NodeRenderGraphClearBlock"}get target(){return this._inputs[0]}get depth(){return this._inputs[1]}get output(){return this._outputs[0]}get outputDepth(){return this._outputs[1]}_buildBlock(e){var t,i;super._buildBlock(e),this._propagateInputValueToOutput(this.target,this.output),this._propagateInputValueToOutput(this.depth,this.outputDepth),this._frameGraphTask.targetTexture=(t=this.target.connectedPoint)==null?void 0:t.value,this._frameGraphTask.depthTexture=(i=this.depth.connectedPoint)==null?void 0:i.value}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.color = new BABYLON.Color4(${this.color.r}, ${this.color.g}, ${this.color.b}, ${this.color.a});`),e.push(`${this._codeVariableName}.clearColor = ${this.clearColor};`),e.push(`${this._codeVariableName}.convertColorToLinearSpace = ${this.convertColorToLinearSpace};`),e.push(`${this._codeVariableName}.clearDepth = ${this.clearDepth};`),e.push(`${this._codeVariableName}.clearStencil = ${this.clearStencil};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.color=this.color.asArray(),e.clearColor=this.clearColor,e.convertColorToLinearSpace=this.convertColorToLinearSpace,e.clearDepth=this.clearDepth,e.clearStencil=this.clearStencil,e}_deserialize(e){super._deserialize(e),this.color=St.FromArray(e.color),this.clearColor=e.clearColor,this.convertColorToLinearSpace=!!e.convertColorToLinearSpace,this.clearDepth=e.clearDepth,this.clearStencil=e.clearStencil}}F([lt("Color",5)],r9.prototype,"color",null),F([lt("Clear color",0,void 0,{embedded:!0})],r9.prototype,"clearColor",null),F([lt("Convert color to linear space",0)],r9.prototype,"convertColorToLinearSpace",null),F([lt("Clear depth",0,void 0,{embedded:!0})],r9.prototype,"clearDepth",null),F([lt("Clear stencil",0,void 0,{embedded:!0})],r9.prototype,"clearStencil",null),ve("BABYLON.NodeRenderGraphClearBlock",r9);class jo extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>_Xe),Promise.resolve().then(()=>AXe)]))):t.push(Promise.all([Promise.resolve().then(()=>hXe),Promise.resolve().then(()=>fXe)]))}constructor(e,t=null,i,s,r){const n=!!(r!=null&&r.blockCompilation);super({...r,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:jo.FragmentUrl,uniforms:jo.Uniforms,samplers:jo.Samplers,vertexUrl:jo.VertexUrl,blockCompilation:!0}),this._packedFloat=!1,this._staticDefines="",this.textureWidth=0,this.textureHeight=0,this.options.blockCompilation=n,i!==void 0&&(this.direction=i),s!==void 0&&(this.kernel=s)}set kernel(e){this._idealKernel!==e&&(e=Math.max(e,1),this._idealKernel=e,this._kernel=this._nearestBestKernel(e),this.options.blockCompilation||this._updateParameters())}get kernel(){return this._idealKernel}set packedFloat(e){this._packedFloat!==e&&(this._packedFloat=e,this.options.blockCompilation||this._updateParameters())}get packedFloat(){return this._packedFloat}bind(){super.bind(),this._drawWrapper.effect.setFloat2("delta",1/this.textureWidth*this.direction.x,1/this.textureHeight*this.direction.y)}_updateParameters(e,t){const i=this._kernel,s=(i-1)/2;let r=[],n=[],o=0;for(let h=0;h<i;h++){const x=h/(i-1),A=this._gaussianWeight(x*2-1);r[h]=h-s,n[h]=A,o+=A}for(let h=0;h<n.length;h++)n[h]/=o;const l=[],c=[],u=[];for(let h=0;h<=s;h+=2){const x=Math.min(h+1,Math.floor(s));if(h===x)u.push({o:r[h],w:n[h]});else{const S=x===s,E=n[h]+n[x]*(S?.5:1),b=r[h]+1/(1+n[h]/n[x]);b===0?(u.push({o:r[h],w:n[h]}),u.push({o:r[h+1],w:n[h+1]})):(u.push({o:b,w:E}),u.push({o:-b,w:E}))}}for(let h=0;h<u.length;h++)c[h]=u[h].o,l[h]=u[h].w;r=c,n=l;const f=this.options.engine.getCaps().maxVaryingVectors-(this.options.shaderLanguage===1?1:0),p=Math.max(f,0)-1;let m=Math.min(r.length,p),_="";_+=this._staticDefines,this._staticDefines.indexOf("DOF")!=-1&&(_+=`#define CENTER_WEIGHT ${this._glslFloat(n[m-1])}
`,m--);for(let h=0;h<m;h++)_+=`#define KERNEL_OFFSET${h} ${this._glslFloat(r[h])}
`,_+=`#define KERNEL_WEIGHT${h} ${this._glslFloat(n[h])}
`;let d=0;for(let h=p;h<r.length;h++)_+=`#define KERNEL_DEP_OFFSET${d} ${this._glslFloat(r[h])}
`,_+=`#define KERNEL_DEP_WEIGHT${d} ${this._glslFloat(n[h])}
`,d++;this.packedFloat&&(_+="#define PACKEDFLOAT 1"),this.options.blockCompilation=!1,this.updateEffect(_,null,null,{varyingCount:m,depCount:d},e,t)}_nearestBestKernel(e){const t=Math.round(e);for(const i of[t,t-1,t+1,t-2,t+2])if(i%2!==0&&Math.floor(i/2)%2===0&&i>0)return Math.max(i,3);return Math.max(t,3)}_gaussianWeight(e){const t=.3333333333333333,i=Math.sqrt(2*Math.PI)*t,s=-(e*e/(2*t*t));return 1/i*Math.exp(s)}_glslFloat(e,t=8){return e.toFixed(t).replace(/0+$/,"")}}jo.VertexUrl="kernelBlur",jo.FragmentUrl="kernelBlur",jo.Uniforms=["delta","direction"],jo.Samplers=["circleOfConfusionSampler"];class tc extends Mi{get direction(){return this._effectWrapper.direction}set direction(e){this._effectWrapper.direction=e}set kernel(e){this._effectWrapper.kernel=e}get kernel(){return this._effectWrapper.kernel}set packedFloat(e){this._effectWrapper.packedFloat=e}get packedFloat(){return this._effectWrapper.packedFloat}getClassName(){return"BlurPostProcess"}constructor(e,t,i,s,r=null,n=be.BILINEAR_SAMPLINGMODE,o,l,c=0,u="",f=!1,p=5){const m=typeof s=="number"?f:!!s.blockCompilation,_={uniforms:jo.Uniforms,samplers:jo.Samplers,size:typeof s=="number"?s:void 0,camera:r,samplingMode:n,engine:o,reusable:l,textureType:c,vertexUrl:jo.VertexUrl,indexParameters:{varyingCount:0,depCount:0},textureFormat:p,defines:u,...s,blockCompilation:!0};super(e,jo.FragmentUrl,{effectWrapper:typeof s=="number"||!s.effectWrapper?new jo(e,o,void 0,void 0,_):void 0,..._}),this._effectWrapper.options.blockCompilation=m,this.direction=t,this.onApplyObservable.add(()=>{this._effectWrapper.textureWidth=this._outputTexture?this._outputTexture.width:this.width,this._effectWrapper.textureHeight=this._outputTexture?this._outputTexture.height:this.height}),this.kernel=i}updateEffect(e=null,t=null,i=null,s,r,n){this._effectWrapper._updateParameters(r,n)}static _Parse(e,t,i,s){return It.Parse(()=>new tc(e.name,e.direction,e.kernel,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.reusable,e.textureType,void 0,!1),e,i,s)}}F([vw()],tc.prototype,"direction",null),F([G()],tc.prototype,"kernel",null),F([G()],tc.prototype,"packedFloat",null),ve("BABYLON.BlurPostProcess",tc);class Bi{get bias(){return this._bias}set bias(e){this._bias=e}get normalBias(){return this._normalBias}set normalBias(e){this._normalBias=e}get blurBoxOffset(){return this._blurBoxOffset}set blurBoxOffset(e){this._blurBoxOffset!==e&&(this._blurBoxOffset=e,this._disposeBlurPostProcesses())}get blurScale(){return this._blurScale}set blurScale(e){this._blurScale!==e&&(this._blurScale=e,this._disposeBlurPostProcesses())}get blurKernel(){return this._blurKernel}set blurKernel(e){this._blurKernel!==e&&(this._blurKernel=e,this._disposeBlurPostProcesses())}get useKernelBlur(){return this._useKernelBlur}set useKernelBlur(e){this._useKernelBlur!==e&&(this._useKernelBlur=e,this._disposeBlurPostProcesses())}get depthScale(){return this._depthScale!==void 0?this._depthScale:this._light.getDepthScale()}set depthScale(e){this._depthScale=e}_validateFilter(e){return e}get filter(){return this._filter}set filter(e){if(e=this._validateFilter(e),this._light.needCube()){if(e===Bi.FILTER_BLUREXPONENTIALSHADOWMAP){this.useExponentialShadowMap=!0;return}else if(e===Bi.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP){this.useCloseExponentialShadowMap=!0;return}else if(e===Bi.FILTER_PCF||e===Bi.FILTER_PCSS){this.usePoissonSampling=!0;return}}if((e===Bi.FILTER_PCF||e===Bi.FILTER_PCSS)&&!this._scene.getEngine()._features.supportShadowSamplers){this.usePoissonSampling=!0;return}this._filter!==e&&(this._filter=e,this._disposeBlurPostProcesses(),this._applyFilterValues(),this._light._markMeshesAsLightDirty())}get usePoissonSampling(){return this.filter===Bi.FILTER_POISSONSAMPLING}set usePoissonSampling(e){const t=this._validateFilter(Bi.FILTER_POISSONSAMPLING);!e&&this.filter!==Bi.FILTER_POISSONSAMPLING||(this.filter=e?t:Bi.FILTER_NONE)}get useExponentialShadowMap(){return this.filter===Bi.FILTER_EXPONENTIALSHADOWMAP}set useExponentialShadowMap(e){const t=this._validateFilter(Bi.FILTER_EXPONENTIALSHADOWMAP);!e&&this.filter!==Bi.FILTER_EXPONENTIALSHADOWMAP||(this.filter=e?t:Bi.FILTER_NONE)}get useBlurExponentialShadowMap(){return this.filter===Bi.FILTER_BLUREXPONENTIALSHADOWMAP}set useBlurExponentialShadowMap(e){const t=this._validateFilter(Bi.FILTER_BLUREXPONENTIALSHADOWMAP);!e&&this.filter!==Bi.FILTER_BLUREXPONENTIALSHADOWMAP||(this.filter=e?t:Bi.FILTER_NONE)}get useCloseExponentialShadowMap(){return this.filter===Bi.FILTER_CLOSEEXPONENTIALSHADOWMAP}set useCloseExponentialShadowMap(e){const t=this._validateFilter(Bi.FILTER_CLOSEEXPONENTIALSHADOWMAP);!e&&this.filter!==Bi.FILTER_CLOSEEXPONENTIALSHADOWMAP||(this.filter=e?t:Bi.FILTER_NONE)}get useBlurCloseExponentialShadowMap(){return this.filter===Bi.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP}set useBlurCloseExponentialShadowMap(e){const t=this._validateFilter(Bi.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP);!e&&this.filter!==Bi.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP||(this.filter=e?t:Bi.FILTER_NONE)}get usePercentageCloserFiltering(){return this.filter===Bi.FILTER_PCF}set usePercentageCloserFiltering(e){const t=this._validateFilter(Bi.FILTER_PCF);!e&&this.filter!==Bi.FILTER_PCF||(this.filter=e?t:Bi.FILTER_NONE)}get filteringQuality(){return this._filteringQuality}set filteringQuality(e){this._filteringQuality!==e&&(this._filteringQuality=e,this._disposeBlurPostProcesses(),this._applyFilterValues(),this._light._markMeshesAsLightDirty())}get useContactHardeningShadow(){return this.filter===Bi.FILTER_PCSS}set useContactHardeningShadow(e){const t=this._validateFilter(Bi.FILTER_PCSS);!e&&this.filter!==Bi.FILTER_PCSS||(this.filter=e?t:Bi.FILTER_NONE)}get contactHardeningLightSizeUVRatio(){return this._contactHardeningLightSizeUVRatio}set contactHardeningLightSizeUVRatio(e){this._contactHardeningLightSizeUVRatio=e}get darkness(){return this._darkness}set darkness(e){this.setDarkness(e)}getDarkness(){return this._darkness}setDarkness(e){return e>=1?this._darkness=1:e<=0?this._darkness=0:this._darkness=e,this}get transparencyShadow(){return this._transparencyShadow}set transparencyShadow(e){this.setTransparencyShadow(e)}setTransparencyShadow(e){return this._transparencyShadow=e,this}getShadowMap(){return this._shadowMap}getShadowMapForRendering(){return this._shadowMap2?this._shadowMap2:this._shadowMap}getClassName(){return Bi.CLASSNAME}addShadowCaster(e,t=!0){if(!this._shadowMap)return this;if(this._shadowMap.renderList||(this._shadowMap.renderList=[]),this._shadowMap.renderList.indexOf(e)===-1&&this._shadowMap.renderList.push(e),t)for(const i of e.getChildMeshes())this._shadowMap.renderList.indexOf(i)===-1&&this._shadowMap.renderList.push(i);return this}removeShadowCaster(e,t=!0){if(!this._shadowMap||!this._shadowMap.renderList)return this;const i=this._shadowMap.renderList.indexOf(e);if(i!==-1&&this._shadowMap.renderList.splice(i,1),t)for(const s of e.getChildren())this.removeShadowCaster(s);return this}getLight(){return this._light}get shaderLanguage(){return this._shaderLanguage}_getCamera(){return this._camera??this._scene.activeCamera}get mapSize(){return this._mapSize}set mapSize(e){this._mapSize=e,this._light._markMeshesAsLightDirty(),this.recreateShadowMap()}constructor(e,t,i,s,r,n=!1){this.onBeforeShadowMapRenderObservable=new xe,this.onAfterShadowMapRenderObservable=new xe,this.onBeforeShadowMapRenderMeshObservable=new xe,this.onAfterShadowMapRenderMeshObservable=new xe,this.doNotSerialize=!1,this._bias=5e-5,this._normalBias=0,this._blurBoxOffset=1,this._blurScale=2,this._blurKernel=1,this._useKernelBlur=!1,this._filter=Bi.FILTER_NONE,this._filteringQuality=Bi.QUALITY_HIGH,this._contactHardeningLightSizeUVRatio=.1,this._darkness=0,this._transparencyShadow=!1,this.enableSoftTransparentShadow=!1,this.useOpacityTextureForTransparentShadow=!1,this.frustumEdgeFalloff=0,this._shaderLanguage=0,this.forceBackFacesOnly=!1,this._lightDirection=P.Zero(),this._viewMatrix=me.Zero(),this._projectionMatrix=me.Zero(),this._transformMatrix=me.Zero(),this._cachedPosition=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cachedDirection=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._currentFaceIndex=0,this._currentFaceIndexCache=0,this._defaultTextureMatrix=me.Identity(),this._shadersLoaded=!1,this._mapSize=e,this._light=t,this._scene=t.getScene(),this._camera=s??null,this._useRedTextureType=!!r,this._initShaderSourceAsync(n);let o=t._shadowGenerators;o||(o=t._shadowGenerators=new Map),o.set(this._camera,this),this.id=t.id,this._useUBO=this._scene.getEngine().supportsUniformBuffers,this._useUBO&&(this._sceneUBOs=[],this._sceneUBOs.push(this._scene.createSceneUniformBuffer(`Scene for Shadow Generator (light "${this._light.name}")`))),Bi._SceneComponentInitialization(this._scene);const l=this._scene.getEngine().getCaps();i?l.textureFloatRender&&l.textureFloatLinearFiltering?this._textureType=1:l.textureHalfFloatRender&&l.textureHalfFloatLinearFiltering?this._textureType=2:this._textureType=0:l.textureHalfFloatRender&&l.textureHalfFloatLinearFiltering?this._textureType=2:l.textureFloatRender&&l.textureFloatLinearFiltering?this._textureType=1:this._textureType=0,this._initializeGenerator(),this._applyFilterValues()}_initializeGenerator(){this._light._markMeshesAsLightDirty(),this._initializeShadowMap()}_createTargetRenderTexture(){const e=this._scene.getEngine();e._features.supportDepthStencilTexture?(this._shadowMap=new Ir(this._light.name+"_shadowMap",this._mapSize,this._scene,!1,!0,this._textureType,this._light.needCube(),void 0,!1,!1,void 0,this._useRedTextureType?6:5),this._shadowMap.createDepthStencilTexture(e.useReverseDepthBuffer?516:513,!0,void 0,void 0,void 0,`DepthStencilForShadowGenerator-${this._light.name}`)):this._shadowMap=new Ir(this._light.name+"_shadowMap",this._mapSize,this._scene,!1,!0,this._textureType,this._light.needCube()),this._shadowMap.noPrePassRenderer=!0}_initializeShadowMap(){if(this._createTargetRenderTexture(),this._shadowMap===null)return;this._shadowMap.wrapU=be.CLAMP_ADDRESSMODE,this._shadowMap.wrapV=be.CLAMP_ADDRESSMODE,this._shadowMap.anisotropicFilteringLevel=1,this._shadowMap.updateSamplingMode(be.BILINEAR_SAMPLINGMODE),this._shadowMap.renderParticles=!1,this._shadowMap.ignoreCameraViewport=!0,this._storedUniqueId&&(this._shadowMap.uniqueId=this._storedUniqueId),this._shadowMap.customRenderFunction=(s,r,n,o)=>this._renderForShadowMap(s,r,n,o),this._shadowMap.customIsReadyFunction=(s,r,n)=>{if(!n||!s.subMeshes)return!0;let o=!0;for(const l of s.subMeshes){const c=l.getRenderingMesh(),f=this._scene.getEngine(),p=l.getMaterial();if(!p||l.verticesCount===0||this.customAllowRendering&&!this.customAllowRendering(l))continue;const m=c._getInstancesRenderList(l._id,!!l.getReplacementMesh());if(m.mustReturn)continue;const _=f.getCaps().instancedArrays&&(m.visibleInstances[l._id]!==null&&m.visibleInstances[l._id]!==void 0||c.hasThinInstances),d=p.needAlphaBlendingForMesh(c);o=this.isReady(l,_,d)&&o}return o};const e=this._scene.getEngine();this._shadowMap.onBeforeBindObservable.add(()=>{var s;this._currentSceneUBO=this._scene.getSceneUniformBuffer(),(s=e._debugPushGroup)==null||s.call(e,`shadow map generation for pass id ${e.currentRenderPassId}`,1)}),this._shadowMap.onBeforeRenderObservable.add(s=>{this._sceneUBOs&&this._scene.setSceneUniformBuffer(this._sceneUBOs[0]),this._currentFaceIndex=s,this._filter===Bi.FILTER_PCF&&e.setColorWrite(!1),this.getTransformMatrix(),this._scene.setTransformMatrix(this._viewMatrix,this._projectionMatrix),this._useUBO&&(this._scene.getSceneUniformBuffer().unbindEffect(),this._scene.finalizeSceneUbo())}),this._shadowMap.onAfterUnbindObservable.add(()=>{var r,n;if(this._sceneUBOs&&this._scene.setSceneUniformBuffer(this._currentSceneUBO),this._scene.updateTransformMatrix(),this._filter===Bi.FILTER_PCF&&e.setColorWrite(!0),!this.useBlurExponentialShadowMap&&!this.useBlurCloseExponentialShadowMap){(r=e._debugPopGroup)==null||r.call(e,1);return}const s=this.getShadowMapForRendering();s&&(this._scene.postProcessManager.directRender(this._blurPostProcesses,s.renderTarget,!0),e.unBindFramebuffer(s.renderTarget,!0)),(n=e._debugPopGroup)==null||n.call(e,1)});const t=new St(0,0,0,0),i=new St(1,1,1,1);this._shadowMap.onClearObservable.add(s=>{this._filter===Bi.FILTER_PCF?s.clear(i,!1,!0,!1):this.useExponentialShadowMap||this.useBlurExponentialShadowMap?s.clear(t,!0,!0,!1):s.clear(i,!0,!0,!1)}),this._shadowMap.onResizeObservable.add(s=>{this._storedUniqueId=this._shadowMap.uniqueId,this._mapSize=s.getRenderSize(),this._light._markMeshesAsLightDirty(),this.recreateShadowMap()});for(let s=Fu.MIN_RENDERINGGROUPS;s<Fu.MAX_RENDERINGGROUPS;s++)this._shadowMap.setRenderingAutoClearDepthStencil(s,!1)}async _initShaderSourceAsync(e=!1){this._scene.getEngine().isWebGPU&&!e&&!Bi.ForceGLSL?(this._shaderLanguage=1,await Promise.all([Promise.resolve().then(()=>QFe),Promise.resolve().then(()=>tke),Promise.resolve().then(()=>ike),Promise.resolve().then(()=>ske)])):await Promise.all([Promise.resolve().then(()=>oke),Promise.resolve().then(()=>_ke),Promise.resolve().then(()=>vke),Promise.resolve().then(()=>Ake)]),this._shadersLoaded=!0}_initializeBlurRTTAndPostProcesses(){const e=this._scene.getEngine(),t=this._mapSize/this.blurScale;(!this.useKernelBlur||this.blurScale!==1)&&(this._shadowMap2=new Ir(this._light.name+"_shadowMap2",t,this._scene,!1,!0,this._textureType,void 0,void 0,!1),this._shadowMap2.wrapU=be.CLAMP_ADDRESSMODE,this._shadowMap2.wrapV=be.CLAMP_ADDRESSMODE,this._shadowMap2.updateSamplingMode(be.BILINEAR_SAMPLINGMODE)),this.useKernelBlur?(this._kernelBlurXPostprocess=new tc(this._light.name+"KernelBlurX",new Ue(1,0),this.blurKernel,1,null,be.BILINEAR_SAMPLINGMODE,e,!1,this._textureType),this._kernelBlurXPostprocess.width=t,this._kernelBlurXPostprocess.height=t,this._kernelBlurXPostprocess.externalTextureSamplerBinding=!0,this._kernelBlurXPostprocess.onApplyObservable.add(i=>{i.setTexture("textureSampler",this._shadowMap)}),this._kernelBlurYPostprocess=new tc(this._light.name+"KernelBlurY",new Ue(0,1),this.blurKernel,1,null,be.BILINEAR_SAMPLINGMODE,e,!1,this._textureType),this._kernelBlurXPostprocess.autoClear=!1,this._kernelBlurYPostprocess.autoClear=!1,this._textureType===0&&(this._kernelBlurXPostprocess.packedFloat=!0,this._kernelBlurYPostprocess.packedFloat=!0),this._blurPostProcesses=[this._kernelBlurXPostprocess,this._kernelBlurYPostprocess]):(this._boxBlurPostprocess=new Mi(this._light.name+"DepthBoxBlur","depthBoxBlur",["screenSize","boxOffset"],[],1,null,be.BILINEAR_SAMPLINGMODE,e,!1,"#define OFFSET "+this._blurBoxOffset,this._textureType,void 0,void 0,void 0,void 0,this._shaderLanguage),this._boxBlurPostprocess.externalTextureSamplerBinding=!0,this._boxBlurPostprocess.onApplyObservable.add(i=>{i.setFloat2("screenSize",t,t),i.setTexture("textureSampler",this._shadowMap)}),this._boxBlurPostprocess.autoClear=!1,this._blurPostProcesses=[this._boxBlurPostprocess])}_renderForShadowMap(e,t,i,s){let r;if(s.length)for(r=0;r<s.length;r++)this._renderSubMeshForShadowMap(s.data[r]);for(r=0;r<e.length;r++)this._renderSubMeshForShadowMap(e.data[r]);for(r=0;r<t.length;r++)this._renderSubMeshForShadowMap(t.data[r]);if(this._transparencyShadow)for(r=0;r<i.length;r++)this._renderSubMeshForShadowMap(i.data[r],!0);else for(r=0;r<i.length;r++)i.data[r].getEffectiveMesh()._internalAbstractMeshDataInfo._isActiveIntermediate=!1}_bindCustomEffectForRenderSubMeshForShadowMap(e,t,i){t.setMatrix("viewProjection",this.getTransformMatrix())}_renderSubMeshForShadowMap(e,t=!1){var _;const i=e.getRenderingMesh(),s=e.getEffectiveMesh(),r=this._scene,n=r.getEngine(),o=e.getMaterial();if(s._internalAbstractMeshDataInfo._isActiveIntermediate=!1,!o||e.verticesCount===0||e._renderId===r.getRenderId())return;const l=r.useRightHandedSystem,c=s._getWorldMatrixDeterminant()<0;let u=o._getEffectiveOrientation(i);(c&&!l||!c&&l)&&(u=u===0?1:0);const f=u===0;n.setState(o.backFaceCulling,void 0,void 0,f,o.cullBackFaces);const p=i._getInstancesRenderList(e._id,!!e.getReplacementMesh());if(p.mustReturn)return;const m=n.getCaps().instancedArrays&&(p.visibleInstances[e._id]!==null&&p.visibleInstances[e._id]!==void 0||i.hasThinInstances);if(!(this.customAllowRendering&&!this.customAllowRendering(e)))if(this.isReady(e,m,t)){e._renderId=r.getRenderId();const d=o.shadowDepthWrapper,h=(d==null?void 0:d.getEffect(e,this,n.currentRenderPassId))??e._getDrawWrapper(),x=ql.GetEffect(h);n.enableEffect(h),m||i._bind(e,x,o.fillMode),this.getTransformMatrix(),x.setFloat3("biasAndScaleSM",this.bias,this.normalBias,this.depthScale),this.getLight().getTypeID()===vs.LIGHTTYPEID_DIRECTIONALLIGHT?x.setVector3("lightDataSM",this._cachedDirection):x.setVector3("lightDataSM",this._cachedPosition);const A=this._getCamera();if(x.setFloat2("depthValuesSM",this.getLight().getDepthMinZ(A),this.getLight().getDepthMinZ(A)+this.getLight().getDepthMaxZ(A)),t&&this.enableSoftTransparentShadow&&x.setFloat2("softTransparentShadowSM",s.visibility*o.alpha,(_=this._opacityTexture)!=null&&_.getAlphaFromRGB?1:0),d)e._setMainDrawWrapperOverride(h),d.standalone?d.baseMaterial.bindForSubMesh(s.getWorldMatrix(),i,e):o.bindForSubMesh(s.getWorldMatrix(),i,e),e._setMainDrawWrapperOverride(null);else{if(this._opacityTexture&&(x.setTexture("diffuseSampler",this._opacityTexture),x.setMatrix("diffuseMatrix",this._opacityTexture.getTextureMatrix()||this._defaultTextureMatrix)),i.useBones&&i.computeBonesUsingShaders&&i.skeleton){const b=i.skeleton;if(b.isUsingTextureForMatrices){const M=b.getTransformMatrixTexture(i);if(!M)return;x.setTexture("boneSampler",M),x.setFloat("boneTextureWidth",4*(b.bones.length+1))}else x.setMatrices("mBones",b.getTransformMatrices(i))}s3(i,x),i.morphTargetManager&&i.morphTargetManager.isUsingTextureForTargets&&i.morphTargetManager._bind(x);const E=e.getMesh().bakedVertexAnimationManager;E&&E.isEnabled&&E.bind(x,m),Bo(x,o,r)}!this._useUBO&&!d&&this._bindCustomEffectForRenderSubMeshForShadowMap(e,x,s),AP(x,this._scene.getSceneUniformBuffer()),this._scene.getSceneUniformBuffer().bindUniformBuffer();const S=s.getWorldMatrix();m&&(s.getMeshUniformBuffer().bindToEffect(x,"Mesh"),s.transferToEffect(S)),this.forceBackFacesOnly&&n.setState(!0,0,!1,!0,o.cullBackFaces),this.onBeforeShadowMapRenderMeshObservable.notifyObservers(i),this.onBeforeShadowMapRenderObservable.notifyObservers(x),i._processRendering(s,e,x,o.fillMode,p,m,(E,b)=>{s!==i&&!E?(i.getMeshUniformBuffer().bindToEffect(x,"Mesh"),i.transferToEffect(b)):(s.getMeshUniformBuffer().bindToEffect(x,"Mesh"),s.transferToEffect(E?b:S))}),this.forceBackFacesOnly&&n.setState(!0,0,!1,!1,o.cullBackFaces),this.onAfterShadowMapRenderObservable.notifyObservers(x),this.onAfterShadowMapRenderMeshObservable.notifyObservers(i)}else this._shadowMap&&this._shadowMap.resetRefreshCounter()}_applyFilterValues(){this._shadowMap&&(this.filter===Bi.FILTER_NONE||this.filter===Bi.FILTER_PCSS?this._shadowMap.updateSamplingMode(be.NEAREST_SAMPLINGMODE):this._shadowMap.updateSamplingMode(be.BILINEAR_SAMPLINGMODE))}forceCompilation(e,t){const i={useInstances:!1,...t},s=this.getShadowMap();if(!s){e&&e(this);return}const r=s.renderList;if(!r){e&&e(this);return}const n=[];for(const c of r)n.push(...c.subMeshes);if(n.length===0){e&&e(this);return}let o=0;const l=()=>{var c;if(!(!this._scene||!this._scene.getEngine())){for(;this.isReady(n[o],i.useInstances,((c=n[o].getMaterial())==null?void 0:c.needAlphaBlendingForMesh(n[o].getMesh()))??!1);)if(o++,o>=n.length){e&&e(this);return}setTimeout(l,16)}};l()}forceCompilationAsync(e){return new Promise(t=>{this.forceCompilation(()=>{t()},e)})}_isReadyCustomDefines(e,t,i){}_prepareShadowDefines(e,t,i,s){i.push("#define SM_LIGHTTYPE_"+this._light.getClassName().toUpperCase()),i.push("#define SM_FLOAT "+(this._textureType!==0?"1":"0")),i.push("#define SM_ESM "+(this.useExponentialShadowMap||this.useBlurExponentialShadowMap?"1":"0")),i.push("#define SM_DEPTHTEXTURE "+(this.usePercentageCloserFiltering||this.useContactHardeningShadow?"1":"0"));const r=e.getMesh();return i.push("#define SM_NORMALBIAS "+(this.normalBias&&r.isVerticesDataPresent(q.NormalKind)?"1":"0")),i.push("#define SM_DIRECTIONINLIGHTDATA "+(this.getLight().getTypeID()===vs.LIGHTTYPEID_DIRECTIONALLIGHT?"1":"0")),i.push("#define SM_USEDISTANCE "+(this._light.needCube()?"1":"0")),i.push("#define SM_SOFTTRANSPARENTSHADOW "+(this.enableSoftTransparentShadow&&s?"1":"0")),this._isReadyCustomDefines(i,e,t),i}isReady(e,t,i){if(!this._shadersLoaded)return!1;const s=e.getMaterial(),r=s==null?void 0:s.shadowDepthWrapper;if(this._opacityTexture=null,!s)return!1;const n=[];if(this._prepareShadowDefines(e,t,n,i),r){if(!r.isReadyForSubMesh(e,n,this,t,this._scene.getEngine().currentRenderPassId))return!1}else{const o=e._getDrawWrapper(void 0,!0);let l=o.effect,c=o.defines;const u=[q.PositionKind],f=e.getMesh();let p=!1,m=!1,_=!1;const d=!1;this.normalBias&&f.isVerticesDataPresent(q.NormalKind)&&(u.push(q.NormalKind),n.push("#define NORMAL"),p=!0,f.nonUniformScaling&&n.push("#define NONUNIFORMSCALING"));const h=s.needAlphaTestingForMesh(f);if((h||s.needAlphaBlendingForMesh(f))&&(this.useOpacityTextureForTransparentShadow?this._opacityTexture=s.opacityTexture:this._opacityTexture=s.getAlphaTestTexture(),this._opacityTexture)){if(!this._opacityTexture.isReady())return!1;const b=s.alphaCutOff??Bi.DEFAULT_ALPHA_CUTOFF;n.push("#define ALPHATEXTURE"),h&&n.push(`#define ALPHATESTVALUE ${b}${b%1===0?".":""}`),f.isVerticesDataPresent(q.UVKind)&&(u.push(q.UVKind),n.push("#define UV1"),m=!0),f.isVerticesDataPresent(q.UV2Kind)&&this._opacityTexture.coordinatesIndex===1&&(u.push(q.UV2Kind),n.push("#define UV2"),_=!0)}const x=new Ra;if(f.useBones&&f.computeBonesUsingShaders&&f.skeleton){u.push(q.MatricesIndicesKind),u.push(q.MatricesWeightsKind),f.numBoneInfluencers>4&&(u.push(q.MatricesIndicesExtraKind),u.push(q.MatricesWeightsExtraKind));const b=f.skeleton;n.push("#define NUM_BONE_INFLUENCERS "+f.numBoneInfluencers),f.numBoneInfluencers>0&&x.addCPUSkinningFallback(0,f),b.isUsingTextureForMatrices?n.push("#define BONETEXTURE"):n.push("#define BonesPerMesh "+(b.bones.length+1))}else n.push("#define NUM_BONE_INFLUENCERS 0");const A=f.morphTargetManager?xy(f.morphTargetManager,n,u,f,!0,p,!1,m,_,d):0;if(Cy(s,this._scene,n),t&&(n.push("#define INSTANCES"),Qx(u),e.getRenderingMesh().hasThinInstances&&n.push("#define THIN_INSTANCES")),this.customShaderOptions&&this.customShaderOptions.defines)for(const b of this.customShaderOptions.defines)n.indexOf(b)===-1&&n.push(b);const S=f.bakedVertexAnimationManager;S&&S.isEnabled&&(n.push("#define BAKED_VERTEX_ANIMATION_TEXTURE"),t&&u.push("bakedVertexAnimationSettingsInstanced"));const E=n.join(`
`);if(c!==E){c=E;let b="shadowMap";const M=["world","mBones","viewProjection","diffuseMatrix","lightDataSM","depthValuesSM","biasAndScaleSM","morphTargetInfluences","morphTargetCount","boneTextureWidth","softTransparentShadowSM","morphTargetTextureInfo","morphTargetTextureIndices","bakedVertexAnimationSettings","bakedVertexAnimationTextureSizeInverted","bakedVertexAnimationTime","bakedVertexAnimationTexture"],T=["diffuseSampler","boneSampler","morphTargets","bakedVertexAnimationTexture"],O=["Scene","Mesh"];if(qo(M),this.customShaderOptions){if(b=this.customShaderOptions.shaderName,this.customShaderOptions.attributes)for(const I of this.customShaderOptions.attributes)u.indexOf(I)===-1&&u.push(I);if(this.customShaderOptions.uniforms)for(const I of this.customShaderOptions.uniforms)M.indexOf(I)===-1&&M.push(I);if(this.customShaderOptions.samplers)for(const I of this.customShaderOptions.samplers)T.indexOf(I)===-1&&T.push(I)}const R=this._scene.getEngine();l=R.createEffect(b,{attributes:u,uniformsNames:M,uniformBuffersNames:O,samplers:T,defines:E,fallbacks:x,onCompiled:null,onError:null,indexParameters:{maxSimultaneousMorphTargets:A},shaderLanguage:this._shaderLanguage},R),o.setEffect(l,c)}if(!l.isReady())return!1}return(this.useBlurExponentialShadowMap||this.useBlurCloseExponentialShadowMap)&&(!this._blurPostProcesses||!this._blurPostProcesses.length)&&this._initializeBlurRTTAndPostProcesses(),!(this._kernelBlurXPostprocess&&!this._kernelBlurXPostprocess.isReady()||this._kernelBlurYPostprocess&&!this._kernelBlurYPostprocess.isReady()||this._boxBlurPostprocess&&!this._boxBlurPostprocess.isReady())}prepareDefines(e,t){const i=this._scene,s=this._light;!i.shadowsEnabled||!s.shadowEnabled||(e["SHADOW"+t]=!0,this.useContactHardeningShadow?(e["SHADOWPCSS"+t]=!0,this._filteringQuality===Bi.QUALITY_LOW?e["SHADOWLOWQUALITY"+t]=!0:this._filteringQuality===Bi.QUALITY_MEDIUM&&(e["SHADOWMEDIUMQUALITY"+t]=!0)):this.usePercentageCloserFiltering?(e["SHADOWPCF"+t]=!0,this._filteringQuality===Bi.QUALITY_LOW?e["SHADOWLOWQUALITY"+t]=!0:this._filteringQuality===Bi.QUALITY_MEDIUM&&(e["SHADOWMEDIUMQUALITY"+t]=!0)):this.usePoissonSampling?e["SHADOWPOISSON"+t]=!0:this.useExponentialShadowMap||this.useBlurExponentialShadowMap?e["SHADOWESM"+t]=!0:(this.useCloseExponentialShadowMap||this.useBlurCloseExponentialShadowMap)&&(e["SHADOWCLOSEESM"+t]=!0),s.needCube()&&(e["SHADOWCUBE"+t]=!0))}bindShadowLight(e,t){const i=this._light;if(!this._scene.shadowsEnabled||!i.shadowEnabled)return;const r=this._getCamera(),n=this.getShadowMap();if(!n)return;i.needCube()||t.setMatrix("lightMatrix"+e,this.getTransformMatrix());const o=this.getShadowMapForRendering();this._filter===Bi.FILTER_PCF?(t.setDepthStencilTexture("shadowTexture"+e,o),i._uniformBuffer.updateFloat4("shadowsInfo",this.getDarkness(),n.getSize().width,1/n.getSize().width,this.frustumEdgeFalloff,e)):this._filter===Bi.FILTER_PCSS?(t.setDepthStencilTexture("shadowTexture"+e,o),t.setTexture("depthTexture"+e,o),i._uniformBuffer.updateFloat4("shadowsInfo",this.getDarkness(),1/n.getSize().width,this._contactHardeningLightSizeUVRatio*n.getSize().width,this.frustumEdgeFalloff,e)):(t.setTexture("shadowTexture"+e,o),i._uniformBuffer.updateFloat4("shadowsInfo",this.getDarkness(),this.blurScale/n.getSize().width,this.depthScale,this.frustumEdgeFalloff,e)),i._uniformBuffer.updateFloat2("depthValues",this.getLight().getDepthMinZ(r),this.getLight().getDepthMinZ(r)+this.getLight().getDepthMaxZ(r),e)}get viewMatrix(){return this._viewMatrix}get projectionMatrix(){return this._projectionMatrix}getTransformMatrix(){const e=this._scene;if(this._currentRenderId===e.getRenderId()&&this._currentFaceIndexCache===this._currentFaceIndex)return this._transformMatrix;this._currentRenderId=e.getRenderId(),this._currentFaceIndexCache=this._currentFaceIndex;let t=this._light.position;if(this._light.computeTransformedInformation()&&(t=this._light.transformedPosition),P.NormalizeToRef(this._light.getShadowDirection(this._currentFaceIndex),this._lightDirection),Math.abs(P.Dot(this._lightDirection,P.Up()))===1&&(this._lightDirection.z=1e-13),this._light.needProjectionMatrixCompute()||!this._cachedPosition||!this._cachedDirection||!t.equals(this._cachedPosition)||!this._lightDirection.equals(this._cachedDirection)){this._cachedPosition.copyFrom(t),this._cachedDirection.copyFrom(this._lightDirection),me.LookAtLHToRef(t,t.add(this._lightDirection),P.Up(),this._viewMatrix);const i=this.getShadowMap();if(i){const s=i.renderList;s&&this._light.setShadowProjectionMatrix(this._projectionMatrix,this._viewMatrix,s)}this._viewMatrix.multiplyToRef(this._projectionMatrix,this._transformMatrix)}return this._transformMatrix}recreateShadowMap(){const e=this._shadowMap;if(!e)return;const t=e.renderList;if(this._disposeRTTandPostProcesses(),this._initializeGenerator(),this.filter=this._filter,this._applyFilterValues(),t){this._shadowMap.renderList||(this._shadowMap.renderList=[]);for(const i of t)this._shadowMap.renderList.push(i)}else this._shadowMap.renderList=null}_disposeBlurPostProcesses(){this._shadowMap2&&(this._shadowMap2.dispose(),this._shadowMap2=null),this._boxBlurPostprocess&&(this._boxBlurPostprocess.dispose(),this._boxBlurPostprocess=null),this._kernelBlurXPostprocess&&(this._kernelBlurXPostprocess.dispose(),this._kernelBlurXPostprocess=null),this._kernelBlurYPostprocess&&(this._kernelBlurYPostprocess.dispose(),this._kernelBlurYPostprocess=null),this._blurPostProcesses=[]}_disposeRTTandPostProcesses(){this._shadowMap&&(this._shadowMap.dispose(),this._shadowMap=null),this._disposeBlurPostProcesses()}_disposeSceneUBOs(){if(this._sceneUBOs){for(const e of this._sceneUBOs)e.dispose();this._sceneUBOs=[]}}dispose(){if(this._disposeRTTandPostProcesses(),this._disposeSceneUBOs(),this._light){if(this._light._shadowGenerators){const e=this._light._shadowGenerators.entries();for(let t=e.next();t.done!==!0;t=e.next()){const[i,s]=t.value;s===this&&this._light._shadowGenerators.delete(i)}this._light._shadowGenerators.size===0&&(this._light._shadowGenerators=null)}this._light._markMeshesAsLightDirty()}this.onBeforeShadowMapRenderMeshObservable.clear(),this.onBeforeShadowMapRenderObservable.clear(),this.onAfterShadowMapRenderMeshObservable.clear(),this.onAfterShadowMapRenderObservable.clear()}serialize(){var i;const e={},t=this.getShadowMap();if(!t)return e;if(e.className=this.getClassName(),e.lightId=this._light.id,e.cameraId=(i=this._camera)==null?void 0:i.id,e.id=this.id,e.mapSize=t.getRenderSize(),e.forceBackFacesOnly=this.forceBackFacesOnly,e.darkness=this.getDarkness(),e.transparencyShadow=this._transparencyShadow,e.frustumEdgeFalloff=this.frustumEdgeFalloff,e.bias=this.bias,e.normalBias=this.normalBias,e.usePercentageCloserFiltering=this.usePercentageCloserFiltering,e.useContactHardeningShadow=this.useContactHardeningShadow,e.contactHardeningLightSizeUVRatio=this.contactHardeningLightSizeUVRatio,e.filteringQuality=this.filteringQuality,e.useExponentialShadowMap=this.useExponentialShadowMap,e.useBlurExponentialShadowMap=this.useBlurExponentialShadowMap,e.useCloseExponentialShadowMap=this.useBlurExponentialShadowMap,e.useBlurCloseExponentialShadowMap=this.useBlurExponentialShadowMap,e.usePoissonSampling=this.usePoissonSampling,e.depthScale=this.depthScale,e.blurBoxOffset=this.blurBoxOffset,e.blurKernel=this.blurKernel,e.blurScale=this.blurScale,e.useKernelBlur=this.useKernelBlur,e.renderList=[],t.renderList)for(let s=0;s<t.renderList.length;s++){const r=t.renderList[s];e.renderList.push(r.id)}return e}static Parse(e,t,i){const s=t.getLightById(e.lightId),r=e.cameraId!==void 0?t.getCameraById(e.cameraId):null,n=i?i(e.mapSize,s,r):new Bi(e.mapSize,s,void 0,r),o=n.getShadowMap();for(let l=0;l<e.renderList.length;l++)t.getMeshesById(e.renderList[l]).forEach(function(u){o&&(o.renderList||(o.renderList=[]),o.renderList.push(u))});return e.id!==void 0&&(n.id=e.id),n.forceBackFacesOnly=!!e.forceBackFacesOnly,e.darkness!==void 0&&n.setDarkness(e.darkness),e.transparencyShadow&&n.setTransparencyShadow(!0),e.frustumEdgeFalloff!==void 0&&(n.frustumEdgeFalloff=e.frustumEdgeFalloff),e.bias!==void 0&&(n.bias=e.bias),e.normalBias!==void 0&&(n.normalBias=e.normalBias),e.usePercentageCloserFiltering?n.usePercentageCloserFiltering=!0:e.useContactHardeningShadow?n.useContactHardeningShadow=!0:e.usePoissonSampling?n.usePoissonSampling=!0:e.useExponentialShadowMap?n.useExponentialShadowMap=!0:e.useBlurExponentialShadowMap?n.useBlurExponentialShadowMap=!0:e.useCloseExponentialShadowMap?n.useCloseExponentialShadowMap=!0:e.useBlurCloseExponentialShadowMap?n.useBlurCloseExponentialShadowMap=!0:e.useVarianceShadowMap?n.useExponentialShadowMap=!0:e.useBlurVarianceShadowMap&&(n.useBlurExponentialShadowMap=!0),e.contactHardeningLightSizeUVRatio!==void 0&&(n.contactHardeningLightSizeUVRatio=e.contactHardeningLightSizeUVRatio),e.filteringQuality!==void 0&&(n.filteringQuality=e.filteringQuality),e.depthScale&&(n.depthScale=e.depthScale),e.blurScale&&(n.blurScale=e.blurScale),e.blurBoxOffset&&(n.blurBoxOffset=e.blurBoxOffset),e.useKernelBlur&&(n.useKernelBlur=e.useKernelBlur),e.blurKernel&&(n.blurKernel=e.blurKernel),n}}Bi.CLASSNAME="ShadowGenerator",Bi.ForceGLSL=!1,Bi.FILTER_NONE=0,Bi.FILTER_EXPONENTIALSHADOWMAP=1,Bi.FILTER_POISSONSAMPLING=2,Bi.FILTER_BLUREXPONENTIALSHADOWMAP=3,Bi.FILTER_CLOSEEXPONENTIALSHADOWMAP=4,Bi.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP=5,Bi.FILTER_PCF=6,Bi.FILTER_PCSS=7,Bi.QUALITY_HIGH=0,Bi.QUALITY_MEDIUM=1,Bi.QUALITY_LOW=2,Bi.DEFAULT_ALPHA_CUTOFF=.5,Bi._SceneComponentInitialization=a=>{throw as("ShadowGeneratorSceneComponent")};const ste="clipPlaneFragmentDeclaration",upe=`#ifdef CLIPPLANE
varying float fClipDistance;
#endif
#ifdef CLIPPLANE2
varying float fClipDistance2;
#endif
#ifdef CLIPPLANE3
varying float fClipDistance3;
#endif
#ifdef CLIPPLANE4
varying float fClipDistance4;
#endif
#ifdef CLIPPLANE5
varying float fClipDistance5;
#endif
#ifdef CLIPPLANE6
varying float fClipDistance6;
#endif
`;H.IncludesShadersStore[ste]||(H.IncludesShadersStore[ste]=upe);const hpe={name:ste,shader:upe},wze=Object.freeze(Object.defineProperty({__proto__:null,clipPlaneFragmentDeclaration:hpe},Symbol.toStringTag,{value:"Module"})),rte="packingFunctions",dpe=`vec4 pack(float depth)
{const vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const vec4 bit_mask=vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}
float unpack(vec4 color)
{const vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(color,bit_shift);}`;H.IncludesShadersStore[rte]||(H.IncludesShadersStore[rte]=dpe);const fpe={name:rte,shader:dpe},Bze=Object.freeze(Object.defineProperty({__proto__:null,packingFunctions:fpe},Symbol.toStringTag,{value:"Module"})),nte="clipPlaneFragment",ppe=`#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)
if (false) {}
#endif
#ifdef CLIPPLANE
else if (fClipDistance>0.0)
{discard;}
#endif
#ifdef CLIPPLANE2
else if (fClipDistance2>0.0)
{discard;}
#endif
#ifdef CLIPPLANE3
else if (fClipDistance3>0.0)
{discard;}
#endif
#ifdef CLIPPLANE4
else if (fClipDistance4>0.0)
{discard;}
#endif
#ifdef CLIPPLANE5
else if (fClipDistance5>0.0)
{discard;}
#endif
#ifdef CLIPPLANE6
else if (fClipDistance6>0.0)
{discard;}
#endif
`;H.IncludesShadersStore[nte]||(H.IncludesShadersStore[nte]=ppe);const mpe={name:nte,shader:ppe},zze=Object.freeze(Object.defineProperty({__proto__:null,clipPlaneFragment:mpe},Symbol.toStringTag,{value:"Module"})),ate="depthPixelShader",gpe=`#ifdef ALPHATEST
varying vec2 vUV;uniform sampler2D diffuseSampler;
#endif
#include<clipPlaneFragmentDeclaration>
varying float vDepthMetric;
#ifdef PACKED
#include<packingFunctions>
#endif
#ifdef STORE_CAMERASPACE_Z
varying vec4 vViewPos;
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{
#include<clipPlaneFragment>
#ifdef ALPHATEST
if (texture2D(diffuseSampler,vUV).a<0.4)
discard;
#endif
#ifdef STORE_CAMERASPACE_Z
#ifdef PACKED
gl_FragColor=pack(vViewPos.z);
#else
gl_FragColor=vec4(vViewPos.z,0.0,0.0,1.0);
#endif
#else
#ifdef NONLINEARDEPTH
#ifdef PACKED
gl_FragColor=pack(gl_FragCoord.z);
#else
gl_FragColor=vec4(gl_FragCoord.z,0.0,0.0,0.0);
#endif
#else
#ifdef PACKED
gl_FragColor=pack(vDepthMetric);
#else
gl_FragColor=vec4(vDepthMetric,0.0,0.0,1.0);
#endif
#endif
#endif
}`;H.ShadersStore[ate]||(H.ShadersStore[ate]=gpe);const _pe={name:ate,shader:gpe},Fze=Object.freeze(Object.defineProperty({__proto__:null,depthPixelShader:_pe},Symbol.toStringTag,{value:"Module"})),ote="clipPlaneVertexDeclaration",vpe=`#ifdef CLIPPLANE
uniform vec4 vClipPlane;varying float fClipDistance;
#endif
#ifdef CLIPPLANE2
uniform vec4 vClipPlane2;varying float fClipDistance2;
#endif
#ifdef CLIPPLANE3
uniform vec4 vClipPlane3;varying float fClipDistance3;
#endif
#ifdef CLIPPLANE4
uniform vec4 vClipPlane4;varying float fClipDistance4;
#endif
#ifdef CLIPPLANE5
uniform vec4 vClipPlane5;varying float fClipDistance5;
#endif
#ifdef CLIPPLANE6
uniform vec4 vClipPlane6;varying float fClipDistance6;
#endif
`;H.IncludesShadersStore[ote]||(H.IncludesShadersStore[ote]=vpe);const Ape={name:ote,shader:vpe},kze=Object.freeze(Object.defineProperty({__proto__:null,clipPlaneVertexDeclaration:Ape},Symbol.toStringTag,{value:"Module"})),Cpe="pointCloudVertexDeclaration",Uze=`#ifdef POINTSIZE
uniform float pointSize;
#endif
`;H.IncludesShadersStore[Cpe]||(H.IncludesShadersStore[Cpe]=Uze);const lte="clipPlaneVertex",xpe=`#ifdef CLIPPLANE
fClipDistance=dot(worldPos,vClipPlane);
#endif
#ifdef CLIPPLANE2
fClipDistance2=dot(worldPos,vClipPlane2);
#endif
#ifdef CLIPPLANE3
fClipDistance3=dot(worldPos,vClipPlane3);
#endif
#ifdef CLIPPLANE4
fClipDistance4=dot(worldPos,vClipPlane4);
#endif
#ifdef CLIPPLANE5
fClipDistance5=dot(worldPos,vClipPlane5);
#endif
#ifdef CLIPPLANE6
fClipDistance6=dot(worldPos,vClipPlane6);
#endif
`;H.IncludesShadersStore[lte]||(H.IncludesShadersStore[lte]=xpe);const bpe={name:lte,shader:xpe},jze=Object.freeze(Object.defineProperty({__proto__:null,clipPlaneVertex:bpe},Symbol.toStringTag,{value:"Module"})),Spe="pointCloudVertex",Vze=`#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
`;H.IncludesShadersStore[Spe]||(H.IncludesShadersStore[Spe]=Vze);const cte="depthVertexShader",ype=`attribute vec3 position;
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<clipPlaneVertexDeclaration>
#include<instancesDeclaration>
uniform mat4 viewProjection;uniform vec2 depthValues;
#if defined(ALPHATEST) || defined(NEED_UV)
varying vec2 vUV;uniform mat4 diffuseMatrix;
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#endif
#ifdef STORE_CAMERASPACE_Z
uniform mat4 view;varying vec4 vViewPos;
#endif
#include<pointCloudVertexDeclaration>
varying float vDepthMetric;
#define CUSTOM_VERTEX_DEFINITIONS
void main(void)
{vec3 positionUpdated=position;
#ifdef UV1
vec2 uvUpdated=uv;
#endif
#ifdef UV2
vec2 uv2Updated=uv2;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(positionUpdated,1.0);
#include<clipPlaneVertex>
gl_Position=viewProjection*worldPos;
#ifdef STORE_CAMERASPACE_Z
vViewPos=view*worldPos;
#else
#ifdef USE_REVERSE_DEPTHBUFFER
vDepthMetric=((-gl_Position.z+depthValues.x)/(depthValues.y));
#else
vDepthMetric=((gl_Position.z+depthValues.x)/(depthValues.y));
#endif
#endif
#if defined(ALPHATEST) || defined(BASIC_RENDER)
#ifdef UV1
vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));
#endif
#ifdef UV2
vUV=vec2(diffuseMatrix*vec4(uv2Updated,1.0,0.0));
#endif
#endif
#include<pointCloudVertex>
}
`;H.ShadersStore[cte]||(H.ShadersStore[cte]=ype);const Mpe={name:cte,shader:ype},Gze=Object.freeze(Object.defineProperty({__proto__:null,depthVertexShader:Mpe},Symbol.toStringTag,{value:"Module"}));class ub{get shaderLanguage(){return this._shaderLanguage}setMaterialForRendering(e,t){this._depthMap.setMaterialForRendering(e,t)}constructor(e,t=1,i=null,s=!1,r=be.TRILINEAR_SAMPLINGMODE,n=!1,o){this._shaderLanguage=0,this.enabled=!0,this.forceDepthWriteTransparentMeshes=!1,this.useOnlyInActiveCamera=!1,this.reverseCulling=!1,this._shadersLoaded=!1,this._scene=e,this._storeNonLinearDepth=s,this._storeCameraSpaceZ=n,this.isPacked=t===0,this.isPacked?this.clearColor=new St(1,1,1,1):this.clearColor=new St(n?1e8:1,0,0,1),this._initShaderSourceAsync(),ub._SceneComponentInitialization(this._scene);const l=e.getEngine();this._camera=i,r!==be.NEAREST_SAMPLINGMODE&&(t===1&&!l._caps.textureFloatLinearFiltering&&(r=be.NEAREST_SAMPLINGMODE),t===2&&!l._caps.textureHalfFloatLinearFiltering&&(r=be.NEAREST_SAMPLINGMODE));const c=this.isPacked||!l._features.supportExtendedTextureFormats?5:6;this._depthMap=new Ir(o??"DepthRenderer",{width:l.getRenderWidth(),height:l.getRenderHeight()},this._scene,!1,!0,t,!1,r,void 0,void 0,void 0,c),this._depthMap.wrapU=be.CLAMP_ADDRESSMODE,this._depthMap.wrapV=be.CLAMP_ADDRESSMODE,this._depthMap.refreshRate=1,this._depthMap.renderParticles=!1,this._depthMap.renderList=null,this._depthMap.noPrePassRenderer=!0,this._depthMap.activeCamera=this._camera,this._depthMap.ignoreCameraViewport=!0,this._depthMap.useCameraPostProcesses=!1,this._depthMap.onClearObservable.add(f=>{f.clear(this.clearColor,!0,!0,!0)}),this._depthMap.onBeforeBindObservable.add(()=>{var f;(f=l._debugPushGroup)==null||f.call(l,"depth renderer",1)}),this._depthMap.onAfterUnbindObservable.add(()=>{var f;(f=l._debugPopGroup)==null||f.call(l,1)}),this._depthMap.customIsReadyFunction=(f,p,m)=>{if((m||p===0)&&f.subMeshes)for(let _=0;_<f.subMeshes.length;++_){const d=f.subMeshes[_],h=d.getRenderingMesh(),x=h._getInstancesRenderList(d._id,!!d.getReplacementMesh()),A=l.getCaps().instancedArrays&&(x.visibleInstances[d._id]!==null&&x.visibleInstances[d._id]!==void 0||h.hasThinInstances);if(!this.isReady(d,A))return!1}return!0};const u=f=>{var T;const p=f.getRenderingMesh(),m=f.getEffectiveMesh(),_=this._scene,d=_.getEngine(),h=f.getMaterial();if(m._internalAbstractMeshDataInfo._isActiveIntermediate=!1,!h||m.infiniteDistance||h.disableDepthWrite||f.verticesCount===0||f._renderId===_.getRenderId())return;const x=m._getWorldMatrixDeterminant()<0;let A=h._getEffectiveOrientation(p);x&&(A=A===0?1:0);const S=A===0;d.setState(h.backFaceCulling,0,!1,S,this.reverseCulling?!h.cullBackFaces:h.cullBackFaces);const E=p._getInstancesRenderList(f._id,!!f.getReplacementMesh());if(E.mustReturn)return;const b=d.getCaps().instancedArrays&&(E.visibleInstances[f._id]!==null&&E.visibleInstances[f._id]!==void 0||p.hasThinInstances),M=this._camera||_.activeCamera;if(this.isReady(f,b)&&M){f._renderId=_.getRenderId();const O=(T=m._internalAbstractMeshDataInfo._materialForRenderPass)==null?void 0:T[d.currentRenderPassId];let R=f._getDrawWrapper();!R&&O&&(R=O._getDrawWrapper());const I=M.mode===_i.ORTHOGRAPHIC_CAMERA;if(!R)return;const N=R.effect;d.enableEffect(R),b||p._bind(f,N,h.fillMode),O?O.bindForSubMesh(m.getWorldMatrix(),m,f):(N.setMatrix("viewProjection",_.getTransformMatrix()),N.setMatrix("world",m.getWorldMatrix()),this._storeCameraSpaceZ&&N.setMatrix("view",_.getViewMatrix()));let w,D;if(I?(w=!d.useReverseDepthBuffer&&d.isNDCHalfZRange?0:1,D=d.useReverseDepthBuffer&&d.isNDCHalfZRange?0:1):(w=d.useReverseDepthBuffer&&d.isNDCHalfZRange?M.minZ:d.isNDCHalfZRange?0:M.minZ,D=d.useReverseDepthBuffer&&d.isNDCHalfZRange?0:M.maxZ),N.setFloat2("depthValues",w,w+D),!O){if(h.needAlphaTestingForMesh(m)){const Y=h.getAlphaTestTexture();Y&&(N.setTexture("diffuseSampler",Y),N.setMatrix("diffuseMatrix",Y.getTextureMatrix()))}Pc(p,N),Bo(N,h,_),s3(p,N),p.morphTargetManager&&p.morphTargetManager.isUsingTextureForTargets&&p.morphTargetManager._bind(N);const k=f.getMesh().bakedVertexAnimationManager;k&&k.isEnabled&&k.bind(N,b),h.pointsCloud&&N.setFloat("pointSize",h.pointSize)}p._processRendering(m,f,N,h.fillMode,E,b,(k,Y)=>N.setMatrix("world",Y))}};this._depthMap.customRenderFunction=(f,p,m,_)=>{let d;if(_.length)for(d=0;d<_.length;d++)u(_.data[d]);for(d=0;d<f.length;d++)u(f.data[d]);for(d=0;d<p.length;d++)u(p.data[d]);if(this.forceDepthWriteTransparentMeshes)for(d=0;d<m.length;d++)u(m.data[d]);else for(d=0;d<m.length;d++)m.data[d].getEffectiveMesh()._internalAbstractMeshDataInfo._isActiveIntermediate=!1}}async _initShaderSourceAsync(e=!1){this._scene.getEngine().isWebGPU&&!e&&!ub.ForceGLSL?(this._shaderLanguage=1,await Promise.all([Promise.resolve().then(()=>eKe),Promise.resolve().then(()=>$Ze)])):await Promise.all([Promise.resolve().then(()=>Gze),Promise.resolve().then(()=>Fze)]),this._shadersLoaded=!0}isReady(e,t){var S;if(!this._shadersLoaded)return!1;const i=this._scene.getEngine(),s=e.getMesh(),r=s.getScene(),n=(S=s._internalAbstractMeshDataInfo._materialForRenderPass)==null?void 0:S[i.currentRenderPassId];if(n)return n.isReadyForSubMesh(s,e,t);const o=e.getMaterial();if(!o||o.disableDepthWrite)return!1;const l=[],c=[q.PositionKind];let u=!1,f=!1;const p=!1;o.needAlphaTestingForMesh(s)&&o.getAlphaTestTexture()&&(l.push("#define ALPHATEST"),s.isVerticesDataPresent(q.UVKind)&&(c.push(q.UVKind),l.push("#define UV1"),u=!0),s.isVerticesDataPresent(q.UV2Kind)&&(c.push(q.UV2Kind),l.push("#define UV2"),f=!0));const m=new Ra;if(s.useBones&&s.computeBonesUsingShaders&&s.skeleton){c.push(q.MatricesIndicesKind),c.push(q.MatricesWeightsKind),s.numBoneInfluencers>4&&(c.push(q.MatricesIndicesExtraKind),c.push(q.MatricesWeightsExtraKind)),l.push("#define NUM_BONE_INFLUENCERS "+s.numBoneInfluencers),s.numBoneInfluencers>0&&m.addCPUSkinningFallback(0,s);const E=s.skeleton;E.isUsingTextureForMatrices?l.push("#define BONETEXTURE"):l.push("#define BonesPerMesh "+(E.bones.length+1))}else l.push("#define NUM_BONE_INFLUENCERS 0");const _=s.morphTargetManager?xy(s.morphTargetManager,l,c,s,!0,!1,!1,u,f,p):0;o.pointsCloud&&l.push("#define POINTSIZE"),t&&(l.push("#define INSTANCES"),Qx(c),e.getRenderingMesh().hasThinInstances&&l.push("#define THIN_INSTANCES"));const d=s.bakedVertexAnimationManager;d&&d.isEnabled&&(l.push("#define BAKED_VERTEX_ANIMATION_TEXTURE"),t&&c.push("bakedVertexAnimationSettingsInstanced")),this._storeNonLinearDepth&&l.push("#define NONLINEARDEPTH"),this._storeCameraSpaceZ&&l.push("#define STORE_CAMERASPACE_Z"),this.isPacked&&l.push("#define PACKED"),Cy(o,r,l);const h=e._getDrawWrapper(void 0,!0),x=h.defines,A=l.join(`
`);if(x!==A){const E=["world","mBones","boneTextureWidth","pointSize","viewProjection","view","diffuseMatrix","depthValues","morphTargetInfluences","morphTargetCount","morphTargetTextureInfo","morphTargetTextureIndices","bakedVertexAnimationSettings","bakedVertexAnimationTextureSizeInverted","bakedVertexAnimationTime","bakedVertexAnimationTexture"],b=["diffuseSampler","morphTargets","boneSampler","bakedVertexAnimationTexture"];qo(E),h.setEffect(i.createEffect("depth",{attributes:c,uniformsNames:E,uniformBuffersNames:[],samplers:b,defines:A,fallbacks:m,onCompiled:null,onError:null,indexParameters:{maxSimultaneousMorphTargets:_},shaderLanguage:this._shaderLanguage},i),A)}return h.effect.isReady()}getDepthMap(){return this._depthMap}dispose(){const e=[];for(const t in this._scene._depthRenderer)this._scene._depthRenderer[t]===this&&e.push(t);if(e.length>0){this._depthMap.dispose();for(const t of e)delete this._scene._depthRenderer[t]}}}ub.ForceGLSL=!1,ub._SceneComponentInitialization=a=>{throw as("DepthRendererSceneComponent")};const Epe="minmaxReduxPixelShader",Wze=`varying vec2 vUV;uniform sampler2D textureSampler;
#if defined(INITIAL)
uniform sampler2D sourceTexture;uniform vec2 texSize;void main(void)
{ivec2 coord=ivec2(vUV*(texSize-1.0));float f1=texelFetch(sourceTexture,coord,0).r;float f2=texelFetch(sourceTexture,coord+ivec2(1,0),0).r;float f3=texelFetch(sourceTexture,coord+ivec2(1,1),0).r;float f4=texelFetch(sourceTexture,coord+ivec2(0,1),0).r;float minz=min(min(min(f1,f2),f3),f4);
#ifdef DEPTH_REDUX
float maxz=max(max(max(sign(1.0-f1)*f1,sign(1.0-f2)*f2),sign(1.0-f3)*f3),sign(1.0-f4)*f4);
#else
float maxz=max(max(max(f1,f2),f3),f4);
#endif
glFragColor=vec4(minz,maxz,0.,0.);}
#elif defined(MAIN)
uniform vec2 texSize;void main(void)
{ivec2 coord=ivec2(vUV*(texSize-1.0));vec2 f1=texelFetch(textureSampler,coord,0).rg;vec2 f2=texelFetch(textureSampler,coord+ivec2(1,0),0).rg;vec2 f3=texelFetch(textureSampler,coord+ivec2(1,1),0).rg;vec2 f4=texelFetch(textureSampler,coord+ivec2(0,1),0).rg;float minz=min(min(min(f1.x,f2.x),f3.x),f4.x);float maxz=max(max(max(f1.y,f2.y),f3.y),f4.y);glFragColor=vec4(minz,maxz,0.,0.);}
#elif defined(ONEBEFORELAST)
uniform ivec2 texSize;void main(void)
{ivec2 coord=ivec2(vUV*vec2(texSize-1));vec2 f1=texelFetch(textureSampler,coord % texSize,0).rg;vec2 f2=texelFetch(textureSampler,(coord+ivec2(1,0)) % texSize,0).rg;vec2 f3=texelFetch(textureSampler,(coord+ivec2(1,1)) % texSize,0).rg;vec2 f4=texelFetch(textureSampler,(coord+ivec2(0,1)) % texSize,0).rg;float minz=min(f1.x,f2.x);float maxz=max(f1.y,f2.y);glFragColor=vec4(minz,maxz,0.,0.);}
#elif defined(LAST)
void main(void)
{glFragColor=vec4(0.);if (true) { 
discard;}}
#endif
`;H.ShadersStore[Epe]||(H.ShadersStore[Epe]=Wze);class Tpe{constructor(e){this.onAfterReductionPerformed=new xe,this._forceFullscreenViewport=!0,this._activated=!1,this._camera=e,this._postProcessManager=new Aw(e.getScene()),this._onContextRestoredObserver=e.getEngine().onContextRestoredObservable.add(()=>{this._postProcessManager._rebuild()})}get sourceTexture(){return this._sourceTexture}setSourceTexture(e,t,i=2,s=!0){if(e===this._sourceTexture)return;this.dispose(!1),this._sourceTexture=e,this._reductionSteps=[],this._forceFullscreenViewport=s;const r=this._camera.getScene(),n=new Mi("Initial reduction phase","minmaxRedux",["texSize"],["sourceTexture"],1,null,1,r.getEngine(),!1,"#define INITIAL"+(t?`
#define DEPTH_REDUX`:""),i,void 0,void 0,void 0,7);n.autoClear=!1,n.forceFullscreenViewport=s;let o=this._sourceTexture.getRenderWidth(),l=this._sourceTexture.getRenderHeight();n.onApply=((u,f)=>p=>{p.setTexture("sourceTexture",this._sourceTexture),p.setFloat2("texSize",u,f)})(o,l),this._reductionSteps.push(n);let c=1;for(;o>1||l>1;){o=Math.max(Math.round(o/2),1),l=Math.max(Math.round(l/2),1);const u=new Mi("Reduction phase "+c,"minmaxRedux",["texSize"],null,{width:o,height:l},null,1,r.getEngine(),!1,"#define "+(o==1&&l==1?"LAST":o==1||l==1?"ONEBEFORELAST":"MAIN"),i,void 0,void 0,void 0,7);if(u.autoClear=!1,u.forceFullscreenViewport=s,u.onApply=((f,p)=>m=>{f==1||p==1?m.setInt2("texSize",f,p):m.setFloat2("texSize",f,p)})(o,l),this._reductionSteps.push(u),c++,o==1&&l==1){const f=(p,m,_)=>{const d=new Float32Array(4*p*m),h={min:0,max:0};return()=>{r.getEngine()._readTexturePixels(_.inputTexture.texture,p,m,-1,0,d,!1),h.min=d[0],h.max=d[1],this.onAfterReductionPerformed.notifyObservers(h)}};u.onAfterRenderObservable.add(f(o,l,u))}}}get refreshRate(){return this._sourceTexture?this._sourceTexture.refreshRate:-1}set refreshRate(e){this._sourceTexture&&(this._sourceTexture.refreshRate=e)}get activated(){return this._activated}activate(){this._onAfterUnbindObserver||!this._sourceTexture||(this._onAfterUnbindObserver=this._sourceTexture.onAfterUnbindObservable.add(()=>{var t,i;const e=this._camera.getScene().getEngine();(t=e._debugPushGroup)==null||t.call(e,"min max reduction",1),this._reductionSteps[0].activate(this._camera),this._postProcessManager.directRender(this._reductionSteps,this._reductionSteps[0].inputTexture,this._forceFullscreenViewport),e.unBindFramebuffer(this._reductionSteps[0].inputTexture,!1),(i=e._debugPopGroup)==null||i.call(e,1)}),this._activated=!0)}deactivate(){!this._onAfterUnbindObserver||!this._sourceTexture||(this._sourceTexture.onAfterUnbindObservable.remove(this._onAfterUnbindObserver),this._onAfterUnbindObserver=null,this._activated=!1)}dispose(e=!0){if(e&&(this.onAfterReductionPerformed.clear(),this._onContextRestoredObserver&&(this._camera.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null)),this.deactivate(),this._reductionSteps){for(let t=0;t<this._reductionSteps.length;++t)this._reductionSteps[t].dispose();this._reductionSteps=null}this._postProcessManager&&e&&this._postProcessManager.dispose(),this._sourceTexture=null}}class Lpe extends Tpe{get depthRenderer(){return this._depthRenderer}constructor(e){super(e)}setDepthRenderer(e=null,t=2,i=!0){const s=this._camera.getScene();this._depthRenderer&&(delete s._depthRenderer[this._depthRendererId],this._depthRenderer.dispose(),this._depthRenderer=null),e===null&&(s._depthRenderer||(s._depthRenderer={}),e=this._depthRenderer=new ub(s,t,this._camera,!1,1),e.enabled=!1,this._depthRendererId="minmax"+this._camera.id,s._depthRenderer[this._depthRendererId]=e),super.setSourceTexture(e.getDepthMap(),!0,t,i)}setSourceTexture(e,t,i=2,s=!0){super.setSourceTexture(e,t,i,s)}activate(){this._depthRenderer&&(this._depthRenderer.enabled=!0),super.activate()}deactivate(){super.deactivate(),this._depthRenderer&&(this._depthRenderer.enabled=!1)}dispose(e=!0){if(super.dispose(e),this._depthRenderer&&e){const t=this._depthRenderer.getDepthMap().getScene();t&&delete t._depthRenderer[this._depthRendererId],this._depthRenderer.dispose(),this._depthRenderer=null}}}const Ipe=P.Up(),Hze=P.Zero(),Nc=new P,sO=new P,bH=new me;class ic extends Bi{_validateFilter(e){return e===Bi.FILTER_NONE||e===Bi.FILTER_PCF||e===Bi.FILTER_PCSS?e:(de.Error('Unsupported filter "'+e+'"!'),Bi.FILTER_NONE)}get numCascades(){return this._numCascades}set numCascades(e){e=Math.min(Math.max(e,ic.MIN_CASCADES_COUNT),ic.MAX_CASCADES_COUNT),e!==this._numCascades&&(this._numCascades=e,this.recreateShadowMap(),this._recreateSceneUBOs())}get freezeShadowCastersBoundingInfo(){return this._freezeShadowCastersBoundingInfo}set freezeShadowCastersBoundingInfo(e){this._freezeShadowCastersBoundingInfoObservable&&e&&(this._scene.onBeforeRenderObservable.remove(this._freezeShadowCastersBoundingInfoObservable),this._freezeShadowCastersBoundingInfoObservable=null),!this._freezeShadowCastersBoundingInfoObservable&&!e&&(this._freezeShadowCastersBoundingInfoObservable=this._scene.onBeforeRenderObservable.add(()=>this._computeShadowCastersBoundingInfo())),this._freezeShadowCastersBoundingInfo=e,e&&this._computeShadowCastersBoundingInfo()}_computeShadowCastersBoundingInfo(){if(this._scbiMin.copyFromFloats(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._scbiMax.copyFromFloats(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),this._shadowMap&&this._shadowMap.renderList){const e=this._shadowMap.renderList;for(let t=0;t<e.length;t++){const i=e[t];if(!i)continue;const s=i.getBoundingInfo(),r=s.boundingBox;this._scbiMin.minimizeInPlace(r.minimumWorld),this._scbiMax.maximizeInPlace(r.maximumWorld)}}this._shadowCastersBoundingInfo.reConstruct(this._scbiMin,this._scbiMax)}get shadowCastersBoundingInfo(){return this._shadowCastersBoundingInfo}set shadowCastersBoundingInfo(e){this._shadowCastersBoundingInfo=e}setMinMaxDistance(e,t){this._minDistance===e&&this._maxDistance===t||(e>t&&(e=0,t=1),e<0&&(e=0),t>1&&(t=1),this._minDistance=e,this._maxDistance=t,this._breaksAreDirty=!0)}get minDistance(){return this._minDistance}get maxDistance(){return this._maxDistance}getClassName(){return ic.CLASSNAME}getCascadeMinExtents(e){return e>=0&&e<this._numCascades?this._cascadeMinExtents[e]:null}getCascadeMaxExtents(e){return e>=0&&e<this._numCascades?this._cascadeMaxExtents[e]:null}get shadowMaxZ(){return this._getCamera()?this._shadowMaxZ:0}set shadowMaxZ(e){const t=this._getCamera();if(!t){this._shadowMaxZ=e;return}this._shadowMaxZ===e||e<t.minZ||e>t.maxZ&&t.maxZ!==0||(this._shadowMaxZ=e,this._light._markMeshesAsLightDirty(),this._breaksAreDirty=!0)}get debug(){return this._debug}set debug(e){this._debug=e,this._light._markMeshesAsLightDirty()}get depthClamp(){return this._depthClamp}set depthClamp(e){this._depthClamp=e}get cascadeBlendPercentage(){return this._cascadeBlendPercentage}set cascadeBlendPercentage(e){this._cascadeBlendPercentage=e,this._light._markMeshesAsLightDirty()}get lambda(){return this._lambda}set lambda(e){const t=Math.min(Math.max(e,0),1);this._lambda!=t&&(this._lambda=t,this._breaksAreDirty=!0)}getCascadeViewMatrix(e){return e>=0&&e<this._numCascades?this._viewMatrices[e]:null}getCascadeProjectionMatrix(e){return e>=0&&e<this._numCascades?this._projectionMatrices[e]:null}getCascadeTransformMatrix(e){return e>=0&&e<this._numCascades?this._transformMatrices[e]:null}setDepthRenderer(e){this._depthRenderer=e,this._depthReducer&&this._depthReducer.setDepthRenderer(this._depthRenderer)}get autoCalcDepthBounds(){return this._autoCalcDepthBounds}set autoCalcDepthBounds(e){const t=this._getCamera();if(t){if(this._autoCalcDepthBounds=e,!e){this._depthReducer&&this._depthReducer.deactivate(),this.setMinMaxDistance(0,1);return}this._depthReducer||(this._depthReducer=new Lpe(t),this._depthReducer.onAfterReductionPerformed.add(i=>{let s=i.min,r=i.max;s>=r&&(s=0,r=1),(s!=this._minDistance||r!=this._maxDistance)&&this.setMinMaxDistance(s,r)}),this._depthReducer.setDepthRenderer(this._depthRenderer)),this._depthReducer.activate()}}get autoCalcDepthBoundsRefreshRate(){var e,t;return((t=(e=this._depthReducer)==null?void 0:e.depthRenderer)==null?void 0:t.getDepthMap().refreshRate)??-1}set autoCalcDepthBoundsRefreshRate(e){var t;(t=this._depthReducer)!=null&&t.depthRenderer&&(this._depthReducer.depthRenderer.getDepthMap().refreshRate=e)}splitFrustum(){this._breaksAreDirty=!0}_splitFrustum(){const e=this._getCamera();if(!e)return;const t=e.minZ,i=e.maxZ||this._shadowMaxZ,s=i-t,r=this._minDistance,n=this._shadowMaxZ<i&&this._shadowMaxZ>=t?Math.min((this._shadowMaxZ-t)/(i-t),this._maxDistance):this._maxDistance,o=t+r*s,l=t+n*s,c=l-o,u=l/o;for(let f=0;f<this._cascades.length;++f){const p=(f+1)/this._numCascades,m=o*u**p,_=o+c*p,d=this._lambda*(m-_)+_;this._cascades[f].prevBreakDistance=f===0?r:this._cascades[f-1].breakDistance,this._cascades[f].breakDistance=(d-t)/s,this._viewSpaceFrustumsZ[f]=d,this._frustumLengths[f]=(this._cascades[f].breakDistance-this._cascades[f].prevBreakDistance)*s}this._breaksAreDirty=!1}_computeMatrices(){const e=this._scene;if(!this._getCamera())return;P.NormalizeToRef(this._light.getShadowDirection(0),this._lightDirection),Math.abs(P.Dot(this._lightDirection,P.Up()))===1&&(this._lightDirection.z=1e-13),this._cachedDirection.copyFrom(this._lightDirection);const i=e.getEngine().useReverseDepthBuffer;for(let s=0;s<this._numCascades;++s){this._computeFrustumInWorldSpace(s),this._computeCascadeFrustum(s),this._cascadeMaxExtents[s].subtractToRef(this._cascadeMinExtents[s],Nc),this._frustumCenter[s].addToRef(this._lightDirection.scale(this._cascadeMinExtents[s].z),this._shadowCameraPos[s]),me.LookAtLHToRef(this._shadowCameraPos[s],this._frustumCenter[s],Ipe,this._viewMatrices[s]);let r=0,n=Nc.z;const o=this._shadowCastersBoundingInfo;o.update(this._viewMatrices[s]);const l=o.boundingBox.minimumWorld.z,c=o.boundingBox.maximumWorld.z;l>n||(!this._depthClamp||this.filter===Bi.FILTER_PCSS?(r=Math.min(r,l),this.filter!==Bi.FILTER_PCSS&&(n=Math.min(n,c))):(n=Math.min(n,c),r=Math.max(r,l),n=Math.max(r+1,n))),me.OrthoOffCenterLHToRef(this._cascadeMinExtents[s].x,this._cascadeMaxExtents[s].x,this._cascadeMinExtents[s].y,this._cascadeMaxExtents[s].y,i?n:r,i?r:n,this._projectionMatrices[s],e.getEngine().isNDCHalfZRange),this._cascadeMinExtents[s].z=r,this._cascadeMaxExtents[s].z=n,this._viewMatrices[s].multiplyToRef(this._projectionMatrices[s],this._transformMatrices[s]),P.TransformCoordinatesToRef(Hze,this._transformMatrices[s],Nc),Nc.scaleInPlace(this._mapSize/2),sO.copyFromFloats(Math.round(Nc.x),Math.round(Nc.y),Math.round(Nc.z)),sO.subtractInPlace(Nc).scaleInPlace(2/this._mapSize),me.TranslationToRef(sO.x,sO.y,0,bH),this._projectionMatrices[s].multiplyToRef(bH,this._projectionMatrices[s]),this._viewMatrices[s].multiplyToRef(this._projectionMatrices[s],this._transformMatrices[s]),this._transformMatrices[s].copyToArray(this._transformMatricesAsArray,s*16)}}_computeFrustumInWorldSpace(e){const t=this._getCamera();if(!t)return;const i=this._cascades[e].prevBreakDistance,s=this._cascades[e].breakDistance,r=this._scene.getEngine().isNDCHalfZRange;t.getViewMatrix();const n=t.maxZ===0,o=t.maxZ;n&&(t.maxZ=this._shadowMaxZ,t.getProjectionMatrix(!0));const l=me.Invert(t.getTransformationMatrix());n&&(t.maxZ=o,t.getProjectionMatrix(!0));const c=this._scene.getEngine().useReverseDepthBuffer?4:0;for(let u=0;u<ic._FrustumCornersNDCSpace.length;++u)Nc.copyFrom(ic._FrustumCornersNDCSpace[(u+c)%ic._FrustumCornersNDCSpace.length]),r&&Nc.z===-1&&(Nc.z=0),P.TransformCoordinatesToRef(Nc,l,this._frustumCornersWorldSpace[e][u]);for(let u=0;u<ic._FrustumCornersNDCSpace.length/2;++u)Nc.copyFrom(this._frustumCornersWorldSpace[e][u+4]).subtractInPlace(this._frustumCornersWorldSpace[e][u]),sO.copyFrom(Nc).scaleInPlace(i),Nc.scaleInPlace(s),Nc.addInPlace(this._frustumCornersWorldSpace[e][u]),this._frustumCornersWorldSpace[e][u+4].copyFrom(Nc),this._frustumCornersWorldSpace[e][u].addInPlace(sO)}_computeCascadeFrustum(e){if(this._cascadeMinExtents[e].copyFromFloats(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cascadeMaxExtents[e].copyFromFloats(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),this._frustumCenter[e].copyFromFloats(0,0,0),!!this._getCamera()){for(let i=0;i<this._frustumCornersWorldSpace[e].length;++i)this._frustumCenter[e].addInPlace(this._frustumCornersWorldSpace[e][i]);if(this._frustumCenter[e].scaleInPlace(1/this._frustumCornersWorldSpace[e].length),this.stabilizeCascades){let i=0;for(let s=0;s<this._frustumCornersWorldSpace[e].length;++s){const r=this._frustumCornersWorldSpace[e][s].subtractToRef(this._frustumCenter[e],Nc).length();i=Math.max(i,r)}i=Math.ceil(i*16)/16,this._cascadeMaxExtents[e].copyFromFloats(i,i,i),this._cascadeMinExtents[e].copyFromFloats(-i,-i,-i)}else{const i=this._frustumCenter[e];this._frustumCenter[e].addToRef(this._lightDirection,Nc),me.LookAtLHToRef(i,Nc,Ipe,bH);for(let s=0;s<this._frustumCornersWorldSpace[e].length;++s)P.TransformCoordinatesToRef(this._frustumCornersWorldSpace[e][s],bH,Nc),this._cascadeMinExtents[e].minimizeInPlace(Nc),this._cascadeMaxExtents[e].maximizeInPlace(Nc)}}}_recreateSceneUBOs(){if(this._disposeSceneUBOs(),this._sceneUBOs)for(let e=0;e<this._numCascades;++e)this._sceneUBOs.push(this._scene.createSceneUniformBuffer(`Scene for CSM Shadow Generator (light "${this._light.name}" cascade #${e})`))}static get IsSupported(){const e=ei.LastCreatedEngine;return e?e._features.supportCSM:!1}constructor(e,t,i,s,r=!0){if(!ic.IsSupported){de.Error("CascadedShadowMap is not supported by the current engine.");return}super(e,t,i,s,r),this.usePercentageCloserFiltering=!0}_initializeGenerator(){var e;this.penumbraDarkness=this.penumbraDarkness??1,this._numCascades=this._numCascades??ic.DEFAULT_CASCADES_COUNT,this.stabilizeCascades=this.stabilizeCascades??!1,this._freezeShadowCastersBoundingInfoObservable=this._freezeShadowCastersBoundingInfoObservable??null,this.freezeShadowCastersBoundingInfo=this.freezeShadowCastersBoundingInfo??!1,this._scbiMin=this._scbiMin??new P(0,0,0),this._scbiMax=this._scbiMax??new P(0,0,0),this._shadowCastersBoundingInfo=this._shadowCastersBoundingInfo??new nd(new P(0,0,0),new P(0,0,0)),this._breaksAreDirty=this._breaksAreDirty??!0,this._minDistance=this._minDistance??0,this._maxDistance=this._maxDistance??1,this._currentLayer=this._currentLayer??0,this._shadowMaxZ=this._shadowMaxZ??((e=this._getCamera())==null?void 0:e.maxZ)??1e4,this._debug=this._debug??!1,this._depthClamp=this._depthClamp??!0,this._cascadeBlendPercentage=this._cascadeBlendPercentage??.1,this._lambda=this._lambda??.5,this._autoCalcDepthBounds=this._autoCalcDepthBounds??!1,this._recreateSceneUBOs(),super._initializeGenerator()}_createTargetRenderTexture(){const e=this._scene.getEngine(),t={width:this._mapSize,height:this._mapSize,layers:this.numCascades};this._shadowMap=new Ir(this._light.name+"_CSMShadowMap",t,this._scene,!1,!0,this._textureType,!1,void 0,!1,!1,void 0,this._useRedTextureType?6:5),this._shadowMap.createDepthStencilTexture(e.useReverseDepthBuffer?516:513,!0,void 0,void 0,void 0,`DepthStencilForCSMShadowGenerator-${this._light.name}`),this._shadowMap.noPrePassRenderer=!0}_initializeShadowMap(){if(super._initializeShadowMap(),this._shadowMap===null)return;this._transformMatricesAsArray=new Float32Array(this._numCascades*16),this._viewSpaceFrustumsZ=new Array(this._numCascades),this._frustumLengths=new Array(this._numCascades),this._lightSizeUVCorrection=new Array(this._numCascades*2),this._depthCorrection=new Array(this._numCascades),this._cascades=[],this._viewMatrices=[],this._projectionMatrices=[],this._transformMatrices=[],this._cascadeMinExtents=[],this._cascadeMaxExtents=[],this._frustumCenter=[],this._shadowCameraPos=[],this._frustumCornersWorldSpace=[];for(let t=0;t<this._numCascades;++t){this._cascades[t]={prevBreakDistance:0,breakDistance:0},this._viewMatrices[t]=me.Zero(),this._projectionMatrices[t]=me.Zero(),this._transformMatrices[t]=me.Zero(),this._cascadeMinExtents[t]=new P,this._cascadeMaxExtents[t]=new P,this._frustumCenter[t]=new P,this._shadowCameraPos[t]=new P,this._frustumCornersWorldSpace[t]=new Array(ic._FrustumCornersNDCSpace.length);for(let i=0;i<ic._FrustumCornersNDCSpace.length;++i)this._frustumCornersWorldSpace[t][i]=new P}const e=this._scene.getEngine();this._shadowMap.onBeforeBindObservable.clear(),this._shadowMap.onBeforeRenderObservable.clear(),this._shadowMap.onBeforeRenderObservable.add(t=>{this._sceneUBOs&&this._scene.setSceneUniformBuffer(this._sceneUBOs[t]),this._currentLayer=t,this._filter===Bi.FILTER_PCF&&e.setColorWrite(!1),this._scene.setTransformMatrix(this.getCascadeViewMatrix(t),this.getCascadeProjectionMatrix(t)),this._useUBO&&(this._scene.getSceneUniformBuffer().unbindEffect(),this._scene.finalizeSceneUbo())}),this._shadowMap.onBeforeBindObservable.add(()=>{var t;this._currentSceneUBO=this._scene.getSceneUniformBuffer(),(t=e._debugPushGroup)==null||t.call(e,`cascaded shadow map generation for pass id ${e.currentRenderPassId}`,1),this._breaksAreDirty&&this._splitFrustum(),this._computeMatrices()}),this._splitFrustum()}_bindCustomEffectForRenderSubMeshForShadowMap(e,t){t.setMatrix("viewProjection",this.getCascadeTransformMatrix(this._currentLayer))}_isReadyCustomDefines(e){e.push("#define SM_DEPTHCLAMP "+(this._depthClamp&&this._filter!==Bi.FILTER_PCSS?"1":"0"))}prepareDefines(e,t){super.prepareDefines(e,t);const i=this._scene,s=this._light;if(!i.shadowsEnabled||!s.shadowEnabled)return;e["SHADOWCSM"+t]=!0,e["SHADOWCSMDEBUG"+t]=this.debug,e["SHADOWCSMNUM_CASCADES"+t]=this.numCascades,e["SHADOWCSM_RIGHTHANDED"+t]=i.useRightHandedSystem;const r=this._getCamera();r&&this._shadowMaxZ<=(r.maxZ||this._shadowMaxZ)&&(e["SHADOWCSMUSESHADOWMAXZ"+t]=!0),this.cascadeBlendPercentage===0&&(e["SHADOWCSMNOBLEND"+t]=!0)}bindShadowLight(e,t){const i=this._light;if(!this._scene.shadowsEnabled||!i.shadowEnabled)return;const r=this._getCamera();if(!r)return;const n=this.getShadowMap();if(!n)return;const o=n.getSize().width;if(t.setMatrices("lightMatrix"+e,this._transformMatricesAsArray),t.setArray("viewFrustumZ"+e,this._viewSpaceFrustumsZ),t.setFloat("cascadeBlendFactor"+e,this.cascadeBlendPercentage===0?1e4:1/this.cascadeBlendPercentage),t.setArray("frustumLengths"+e,this._frustumLengths),this._filter===Bi.FILTER_PCF)t.setDepthStencilTexture("shadowTexture"+e,n),i._uniformBuffer.updateFloat4("shadowsInfo",this.getDarkness(),o,1/o,this.frustumEdgeFalloff,e);else if(this._filter===Bi.FILTER_PCSS){for(let l=0;l<this._numCascades;++l)this._lightSizeUVCorrection[l*2+0]=l===0?1:(this._cascadeMaxExtents[0].x-this._cascadeMinExtents[0].x)/(this._cascadeMaxExtents[l].x-this._cascadeMinExtents[l].x),this._lightSizeUVCorrection[l*2+1]=l===0?1:(this._cascadeMaxExtents[0].y-this._cascadeMinExtents[0].y)/(this._cascadeMaxExtents[l].y-this._cascadeMinExtents[l].y),this._depthCorrection[l]=l===0?1:(this._cascadeMaxExtents[l].z-this._cascadeMinExtents[l].z)/(this._cascadeMaxExtents[0].z-this._cascadeMinExtents[0].z);t.setDepthStencilTexture("shadowTexture"+e,n),t.setTexture("depthTexture"+e,n),t.setArray2("lightSizeUVCorrection"+e,this._lightSizeUVCorrection),t.setArray("depthCorrection"+e,this._depthCorrection),t.setFloat("penumbraDarkness"+e,this.penumbraDarkness),i._uniformBuffer.updateFloat4("shadowsInfo",this.getDarkness(),1/o,this._contactHardeningLightSizeUVRatio*o,this.frustumEdgeFalloff,e)}else t.setTexture("shadowTexture"+e,n),i._uniformBuffer.updateFloat4("shadowsInfo",this.getDarkness(),o,1/o,this.frustumEdgeFalloff,e);i._uniformBuffer.updateFloat2("depthValues",this.getLight().getDepthMinZ(r),this.getLight().getDepthMinZ(r)+this.getLight().getDepthMaxZ(r),e)}getTransformMatrix(){return this.getCascadeTransformMatrix(0)}dispose(){super.dispose(),this._freezeShadowCastersBoundingInfoObservable&&(this._scene.onBeforeRenderObservable.remove(this._freezeShadowCastersBoundingInfoObservable),this._freezeShadowCastersBoundingInfoObservable=null),this._depthReducer&&(this._depthReducer.dispose(),this._depthReducer=null)}serialize(){const e=super.serialize(),t=this.getShadowMap();if(!t)return e;if(e.numCascades=this._numCascades,e.debug=this._debug,e.stabilizeCascades=this.stabilizeCascades,e.lambda=this._lambda,e.cascadeBlendPercentage=this.cascadeBlendPercentage,e.depthClamp=this._depthClamp,e.autoCalcDepthBounds=this.autoCalcDepthBounds,e.shadowMaxZ=this._shadowMaxZ,e.penumbraDarkness=this.penumbraDarkness,e.freezeShadowCastersBoundingInfo=this._freezeShadowCastersBoundingInfo,e.minDistance=this.minDistance,e.maxDistance=this.maxDistance,e.renderList=[],t.renderList)for(let i=0;i<t.renderList.length;i++){const s=t.renderList[i];e.renderList.push(s.id)}return e}static Parse(e,t){const i=Bi.Parse(e,t,(s,r,n)=>new ic(s,r,void 0,n));return e.numCascades!==void 0&&(i.numCascades=e.numCascades),e.debug!==void 0&&(i.debug=e.debug),e.stabilizeCascades!==void 0&&(i.stabilizeCascades=e.stabilizeCascades),e.lambda!==void 0&&(i.lambda=e.lambda),e.cascadeBlendPercentage!==void 0&&(i.cascadeBlendPercentage=e.cascadeBlendPercentage),e.depthClamp!==void 0&&(i.depthClamp=e.depthClamp),e.autoCalcDepthBounds!==void 0&&(i.autoCalcDepthBounds=e.autoCalcDepthBounds),e.shadowMaxZ!==void 0&&(i.shadowMaxZ=e.shadowMaxZ),e.penumbraDarkness!==void 0&&(i.penumbraDarkness=e.penumbraDarkness),e.freezeShadowCastersBoundingInfo!==void 0&&(i.freezeShadowCastersBoundingInfo=e.freezeShadowCastersBoundingInfo),e.minDistance!==void 0&&e.maxDistance!==void 0&&i.setMinMaxDistance(e.minDistance,e.maxDistance),i}}ic._FrustumCornersNDCSpace=[new P(-1,1,-1),new P(1,1,-1),new P(1,-1,-1),new P(-1,-1,-1),new P(-1,1,1),new P(1,1,1),new P(1,-1,1),new P(-1,-1,1)],ic.CLASSNAME="CascadedShadowGenerator",ic.DEFAULT_CASCADES_COUNT=4,ic.MIN_CASCADES_COUNT=2,ic.MAX_CASCADES_COUNT=4,ic._SceneComponentInitialization=a=>{throw as("ShadowGeneratorSceneComponent")};class ute extends q1{get light(){return this._light}set light(e){e!==this._light&&(this._light=e,this._setupShadowGenerator())}get camera(){return this._camera}set camera(e){this._camera=e,this._setupShadowGenerator()}get mapSize(){return this._mapSize}set mapSize(e){e!==this._mapSize&&(this._mapSize=e,this._setupShadowGenerator())}get useFloat32TextureType(){return this._useFloat32TextureType}set useFloat32TextureType(e){e!==this._useFloat32TextureType&&(this._useFloat32TextureType=e,this._setupShadowGenerator())}get useRedTextureFormat(){return this._useRedTextureFormat}set useRedTextureFormat(e){e!==this._useRedTextureFormat&&(this._useRedTextureFormat=e,this._setupShadowGenerator())}get bias(){return this._bias}set bias(e){e!==this._bias&&(this._bias=e,this._shadowGenerator&&(this._shadowGenerator.bias=e))}get normalBias(){return this._normalBias}set normalBias(e){e!==this._normalBias&&(this._normalBias=e,this._shadowGenerator&&(this._shadowGenerator.normalBias=e))}get darkness(){return this._darkness}set darkness(e){e!==this._darkness&&(this._darkness=e,this._shadowGenerator&&(this._shadowGenerator.darkness=e))}get transparencyShadow(){return this._transparencyShadow}set transparencyShadow(e){e!==this._transparencyShadow&&(this._transparencyShadow=e,this._shadowGenerator&&(this._shadowGenerator.transparencyShadow=e))}get enableSoftTransparentShadow(){return this._enableSoftTransparentShadow}set enableSoftTransparentShadow(e){e!==this._enableSoftTransparentShadow&&(this._enableSoftTransparentShadow=e,this._shadowGenerator&&(this._shadowGenerator.enableSoftTransparentShadow=e))}get useOpacityTextureForTransparentShadow(){return this._useOpacityTextureForTransparentShadow}set useOpacityTextureForTransparentShadow(e){e!==this._useOpacityTextureForTransparentShadow&&(this._useOpacityTextureForTransparentShadow=e,this._shadowGenerator&&(this._shadowGenerator.useOpacityTextureForTransparentShadow=e))}get filter(){return this._filter}set filter(e){e!==this._filter&&(this._filter=e,this._shadowGenerator&&(this._shadowGenerator.filter=e))}get filteringQuality(){return this._filteringQuality}set filteringQuality(e){e!==this._filteringQuality&&(this._filteringQuality=e,this._shadowGenerator&&(this._shadowGenerator.filteringQuality=e))}_createShadowGenerator(){this._shadowGenerator=new Bi(this._mapSize,this._light,this._useFloat32TextureType,void 0,this._useRedTextureFormat)}_setupShadowGenerator(){var e;if((e=this._shadowGenerator)==null||e.dispose(),this._shadowGenerator=void 0,this._light!==void 0){this._createShadowGenerator();const t=this._shadowGenerator;if(t===void 0)return;t.bias=this._bias,t.normalBias=this._normalBias,t.darkness=this._darkness,t.transparencyShadow=this._transparencyShadow,t.enableSoftTransparentShadow=this._enableSoftTransparentShadow,t.useOpacityTextureForTransparentShadow=this._useOpacityTextureForTransparentShadow,t.filter=this._filter,t.filteringQuality=this._filteringQuality;const i=t.getShadowMap();i._disableEngineStages=!0,i.cameraForLOD=this._camera,this.shadowGenerator=t}}isReady(){var e;return!!this._shadowGenerator&&!!((e=this._shadowGenerator.getShadowMap())!=null&&e.isReadyForRendering())}constructor(e,t,i){super(e,t),this._mapSize=1024,this._useFloat32TextureType=!1,this._useRedTextureFormat=!0,this._bias=.01,this._normalBias=0,this._darkness=0,this._transparencyShadow=!1,this._enableSoftTransparentShadow=!1,this._useOpacityTextureForTransparentShadow=!1,this._filter=Bi.FILTER_PCF,this._filteringQuality=Bi.QUALITY_HIGH,this._engine=i.getEngine(),this._scene=i,this.outputTexture=this._frameGraph.textureManager.createDanglingHandle()}record(){if(this.light===void 0||this.objectList===void 0||this.camera===void 0)throw new Error(`FrameGraphShadowGeneratorTask ${this.name}: light, objectList and camera are required`);const e=this._shadowGenerator.getShadowMap();e.renderList=this.objectList.meshes,e.particleSystemList=this.objectList.particleSystems;const t=this._frameGraph.textureManager.importTexture(`${this.name} shadowmap`,this._shadowGenerator.getShadowMap().getInternalTexture());this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,t),this._frameGraph.addPass(this.name).setExecuteFunc(r=>{if(!this.light.isEnabled()||!this.light.shadowEnabled)return;const n=this._shadowGenerator.getShadowMap();n.renderList=this.objectList.meshes,n.particleSystemList=this.objectList.particleSystems;const o=this._engine._currentRenderTarget;this._scene.incrementRenderId(),this._scene.resetCachedMaterial(),n.render(),this._engine._currentRenderTarget!==o&&(o?this._engine.bindFramebuffer(o):this._engine.restoreDefaultFramebuffer())}),this._frameGraph.addPass(this.name+"_disabled",!0).setExecuteFunc(r=>{})}dispose(){var e;(e=this._shadowGenerator)==null||e.dispose(),this._shadowGenerator=void 0}}class hte extends ute{constructor(){super(...arguments),this._numCascades=ic.DEFAULT_CASCADES_COUNT,this._debug=!1,this._stabilizeCascades=!1,this._lambda=.5,this._cascadeBlendPercentage=.1,this._depthClamp=!0,this._autoCalcDepthBounds=!1,this._shadowMaxZ=1e4}static IsCascadedShadowGenerator(e){return e.numCascades!==void 0}get numCascades(){return this._numCascades}set numCascades(e){e!==this._numCascades&&(this._numCascades=e,this._setupShadowGenerator())}get debug(){return this._debug}set debug(e){e!==this._debug&&(this._debug=e,this._shadowGenerator&&(this._shadowGenerator.debug=e))}get stabilizeCascades(){return this._stabilizeCascades}set stabilizeCascades(e){e!==this._stabilizeCascades&&(this._stabilizeCascades=e,this._shadowGenerator&&(this._shadowGenerator.stabilizeCascades=e))}get lambda(){return this._lambda}set lambda(e){e!==this._lambda&&(this._lambda=e,this._shadowGenerator&&(this._shadowGenerator.lambda=e))}get cascadeBlendPercentage(){return this._cascadeBlendPercentage}set cascadeBlendPercentage(e){e!==this._cascadeBlendPercentage&&(this._cascadeBlendPercentage=e,this._shadowGenerator&&(this._shadowGenerator.cascadeBlendPercentage=e))}get depthClamp(){return this._depthClamp}set depthClamp(e){e!==this._depthClamp&&(this._depthClamp=e,this._shadowGenerator&&(this._shadowGenerator.depthClamp=e))}get autoCalcDepthBounds(){return this._autoCalcDepthBounds}set autoCalcDepthBounds(e){e!==this._autoCalcDepthBounds&&(this._autoCalcDepthBounds=e,this._shadowGenerator&&(this._shadowGenerator.autoCalcDepthBounds=e))}get shadowMaxZ(){return this._shadowMaxZ}set shadowMaxZ(e){e!==this._shadowMaxZ&&(this._shadowMaxZ=e,this._shadowGenerator&&(this._shadowGenerator.shadowMaxZ=e))}_createShadowGenerator(){if(!(this.light instanceof W1))throw new Error(`FrameGraphCascadedShadowGeneratorTask ${this.name}: the CSM shadow generator only supports directional lights.`);this._shadowGenerator=new ic(this.mapSize,this.light,this.useFloat32TextureType,this.camera,this.useRedTextureFormat),this._shadowGenerator.numCascades=this._numCascades}_setupShadowGenerator(){super._setupShadowGenerator();const e=this._shadowGenerator;e!==void 0&&(e.debug=this._debug,e.stabilizeCascades=this._stabilizeCascades,e.lambda=this._lambda,e.cascadeBlendPercentage=this._cascadeBlendPercentage,e.depthClamp=this._depthClamp,e.autoCalcDepthBounds=this._autoCalcDepthBounds,e.shadowMaxZ=this._shadowMaxZ)}}class RB extends q1{get camera(){return this._camera}set camera(e){this._camera=e,this._renderer.activeCamera=this.camera}get objectRenderer(){return this._renderer}get name(){return this._name}set name(e){this._name=e,this._renderer&&(this._renderer.name=e)}constructor(e,t,i,s,r){super(e,t),this.shadowGenerators=[],this.depthTest=!0,this.depthWrite=!0,this.disableShadows=!1,this.renderInLinearSpace=!1,this._onBeforeRenderObservable=null,this._onAfterRenderObservable=null,this._externalObjectRenderer=!1,this._scene=i,this._externalObjectRenderer=!!r,this._renderer=r??new x0(e,i,s),this.name=e,this._externalObjectRenderer||this._renderer.onBeforeRenderingManagerRenderObservable.add(()=>{this._renderer.options.doNotChangeAspectRatio||i.updateTransformMatrix(!0)}),this.outputTexture=this._frameGraph.textureManager.createDanglingHandle(),this.outputDepthTexture=this._frameGraph.textureManager.createDanglingHandle()}isReady(){return this._renderer.isReadyForRendering(this._textureWidth,this._textureHeight)}record(e=!1,t){if(this.targetTexture===void 0||this.objectList===void 0)throw new Error(`FrameGraphObjectRendererTask ${this.name}: targetTexture and objectList are required`);this._renderer.renderList=this.objectList.meshes,this._renderer.particleSystemList=this.objectList.particleSystems,this._renderer.renderInLinearSpace=this.renderInLinearSpace;const i=this._frameGraph.textureManager.getTextureDescription(this.targetTexture);let s=!1;if(this.depthTexture!==void 0){if(this.depthTexture===d3&&this.targetTexture!==M0)throw new Error(`FrameGraphObjectRendererTask ${this.name}: the back buffer color texture is the only color texture allowed when the depth is the back buffer depth/stencil`);if(this.depthTexture!==d3&&this.targetTexture===M0)throw new Error(`FrameGraphObjectRendererTask ${this.name}: the back buffer depth/stencil texture is the only depth texture allowed when the target is the back buffer color`);if(this._frameGraph.textureManager.getTextureDescription(this.depthTexture).options.samples!==i.options.samples)throw new Error(`FrameGraphObjectRendererTask ${this.name}: the depth texture and the output texture must have the same number of samples`);s=!0}this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,this.targetTexture),this.depthTexture!==void 0&&this._frameGraph.textureManager.resolveDanglingHandle(this.outputDepthTexture,this.depthTexture),this._textureWidth=i.size.width,this._textureHeight=i.size.height,this._setLightsForShadow();const r=this._frameGraph.addRenderPass(this.name);if(r.setRenderTarget(this.targetTexture),r.setRenderTargetDepth(this.depthTexture),r.setExecuteFunc(n=>{this._renderer.renderList=this.objectList.meshes,this._renderer.particleSystemList=this.objectList.particleSystems,this._renderer.renderInLinearSpace=this.renderInLinearSpace,n.setDepthStates(this.depthTest&&s,this.depthWrite&&s),n.render(this._renderer,this._textureWidth,this._textureHeight),t==null||t(n)}),!e){const n=this._frameGraph.addRenderPass(this.name+"_disabled",!0);n.setRenderTarget(this.targetTexture),n.setRenderTargetDepth(this.depthTexture),n.setExecuteFunc(o=>{})}return r}dispose(){this._renderer.onBeforeRenderObservable.remove(this._onBeforeRenderObservable),this._renderer.onAfterRenderObservable.remove(this._onAfterRenderObservable),this._externalObjectRenderer||this._renderer.dispose(),super.dispose()}_setLightsForShadow(){const e=new Set,t=new Map;if(this.shadowGenerators)for(const i of this.shadowGenerators){const s=i.shadowGenerator,r=s.getLight();r.isEnabled()&&r.shadowEnabled&&(e.add(r),hte.IsCascadedShadowGenerator(i)?r._shadowGenerators.set(i.camera,s):r._shadowGenerators.set(null,s))}this._renderer.onBeforeRenderObservable.remove(this._onBeforeRenderObservable),this._onBeforeRenderObservable=this._renderer.onBeforeRenderObservable.add(()=>{for(let i=0;i<this._scene.lights.length;i++){const s=this._scene.lights[i];t.set(s,s.shadowEnabled),s.shadowEnabled=!this.disableShadows&&e.has(s)}}),this._renderer.onAfterRenderObservable.remove(this._onAfterRenderObservable),this._onAfterRenderObservable=this._renderer.onAfterRenderObservable.add(()=>{for(let i=0;i<this._scene.lights.length;i++){const s=this._scene.lights[i];s.shadowEnabled=t.get(s)}})}}class DB extends s9{constructor(e,t,i,s,r){super(e,t,i),this._blockType=s,this._blockName=r,this.needDualDirectionValidation=!0}checkCompatibilityState(e){return e instanceof DB&&e._blockName===this._blockName?0:1}createCustomInputBlock(){return[new this._blockType(this._blockName),this.name]}}class hb extends Hu{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this.registerInput("target",zt.AutoDetect),this.registerInput("depth",zt.AutoDetect,!0),this.registerInput("camera",zt.Camera),this.registerInput("objects",zt.ObjectList),this._addDependenciesInput(),this.registerInput("shadowGenerators",zt.AutoDetect,!0),this.registerOutput("output",zt.BasedOnInput),this.registerOutput("outputDepth",zt.BasedOnInput),this.registerOutput("objectRenderer",zt.Object,new DB("objectRenderer",this,1,hb,"NodeRenderGraphBaseObjectRendererBlock")),this.target.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBufferDepthStencil),this.depth.addExcludedConnectionPointFromAllowedTypes(zt.TextureDepthStencilAttachment|zt.TextureBackBufferDepthStencilAttachment),this.shadowGenerators.addExcludedConnectionPointFromAllowedTypes(zt.ShadowGenerator|zt.ResourceContainer),this.output._typeConnectionSource=this.target,this.outputDepth._typeConnectionSource=this.depth}get depthTest(){return this._frameGraphTask.depthTest}set depthTest(e){this._frameGraphTask.depthTest=e}get depthWrite(){return this._frameGraphTask.depthWrite}set depthWrite(e){this._frameGraphTask.depthWrite=e}get disableShadows(){return this._frameGraphTask.disableShadows}set disableShadows(e){this._frameGraphTask.disableShadows=e}get renderInLinearSpace(){return this._frameGraphTask.renderInLinearSpace}set renderInLinearSpace(e){this._frameGraphTask.renderInLinearSpace=e}getClassName(){return"NodeRenderGraphBaseObjectRendererBlock"}get target(){return this._inputs[0]}get depth(){return this._inputs[1]}get camera(){return this._inputs[2]}get objects(){return this._inputs[3]}get dependencies(){return this._inputs[4]}get shadowGenerators(){return this._inputs[5]}get output(){return this._outputs[0]}get outputDepth(){return this._outputs[1]}get objectRenderer(){return this._outputs[2]}_buildBlock(e){var i,s,r,n;super._buildBlock(e),this.output.value=this._frameGraphTask.outputTexture,this.outputDepth.value=this._frameGraphTask.outputDepthTexture,this.objectRenderer.value=this._frameGraphTask,this._frameGraphTask.targetTexture=(i=this.target.connectedPoint)==null?void 0:i.value,this._frameGraphTask.depthTexture=(s=this.depth.connectedPoint)==null?void 0:s.value,this._frameGraphTask.camera=(r=this.camera.connectedPoint)==null?void 0:r.value,this._frameGraphTask.objectList=(n=this.objects.connectedPoint)==null?void 0:n.value,this._frameGraphTask.shadowGenerators=[];const t=this.shadowGenerators.connectedPoint;t&&(t.type===zt.ResourceContainer?t.ownerBlock.inputs.forEach(l=>{l.connectedPoint&&l.connectedPoint.value!==void 0&&s9.IsShadowGenerator(l.connectedPoint.value)&&this._frameGraphTask.shadowGenerators.push(l.connectedPoint.value)}):s9.IsShadowGenerator(t.value)&&(this._frameGraphTask.shadowGenerators[0]=t.value))}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`),e.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`),e.push(`${this._codeVariableName}.disableShadows = ${this.disableShadows};`),e.push(`${this._codeVariableName}.renderInLinearSpace = ${this.renderInLinearSpace};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.depthTest=this.depthTest,e.depthWrite=this.depthWrite,e.disableShadows=this.disableShadows,e.renderInLinearSpace=this.renderInLinearSpace,e}_deserialize(e){super._deserialize(e),this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.disableShadows=e.disableShadows,this.renderInLinearSpace=!!e.renderInLinearSpace}}F([lt("Depth test",0,"PROPERTIES")],hb.prototype,"depthTest",null),F([lt("Depth write",0,"PROPERTIES")],hb.prototype,"depthWrite",null),F([lt("Disable shadows",0,"PROPERTIES")],hb.prototype,"disableShadows",null),F([lt("Render in linear space",0,"PROPERTIES")],hb.prototype,"renderInLinearSpace",null);class SH extends hb{constructor(e,t,i,s=!0){super(e,t,i),this._additionalConstructionParameters=[s],this._frameGraphTask=new RB(this.name,t,i,{doNotChangeAspectRatio:s})}get doNotChangeAspectRatio(){return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio}set doNotChangeAspectRatio(e){const t=this._frameGraphTask.disabled,i=this.depthTest,s=this.depthWrite,r=this.disableShadows,n=this.renderInLinearSpace;this._frameGraphTask.dispose(),this._frameGraphTask=new RB(this.name,this._frameGraph,this._scene,{doNotChangeAspectRatio:e}),this._additionalConstructionParameters=[e],this.depthTest=i,this.depthWrite=s,this.disableShadows=r,this.renderInLinearSpace=n,this._frameGraphTask.disabled=t}getClassName(){return"NodeRenderGraphObjectRendererBlock"}}F([lt("Do not change aspect ratio",0,"PROPERTIES")],SH.prototype,"doNotChangeAspectRatio",null),ve("BABYLON.NodeRenderGraphObjectRendererBlock",SH);class Ppe{constructor(){this.verbose=!1,this._notConnectedNonOptionalInputs=[]}emitErrors(e=null){let t="";for(const i of this._notConnectedNonOptionalInputs)t+=`input "${i.name}" from block "${i.ownerBlock.name}"[${i.ownerBlock.getClassName()}] is not connected and is not optional.
`;return t?(e&&e.notifyObservers(t),de.Error(`Build of node render graph failed:
`+t),!1):!0}}class T0{_getGlobalNodeRenderGraphEditor(){if(typeof NODERENDERGRAPHEDITOR<"u")return NODERENDERGRAPHEDITOR;if(typeof BABYLON<"u"&&typeof BABYLON.NodeRenderGraphEditor<"u")return BABYLON}get frameGraph(){return this._frameGraph}getScene(){return this._scene}constructor(e,t,i){this._buildId=T0._BuildIdGenerator++,this.BJSNODERENDERGRAPHEDITOR=this._getGlobalNodeRenderGraphEditor(),this.editorData=null,this.attachedBlocks=[],this.onBuildObservable=new xe,this.onBuildErrorObservable=new xe,this.outputBlock=null,this._resizeObserver=null,this.name=e,this._scene=t,this._engine=t.getEngine(),i={debugTextures:!1,autoConfigure:!1,verbose:!1,rebuildGraphOnEngineResize:!0,autoFillExternalInputs:!0,...i},this._options=i,this._frameGraph=new cpe(this._scene,i.debugTextures,this),this._frameGraph.name=e,i.rebuildGraphOnEngineResize&&(this._resizeObserver=this._engine.onResizeObservable.add(()=>{this.build()}))}getClassName(){return"NodeRenderGraph"}getBlockByName(e){let t=null;for(const i of this.attachedBlocks)if(i.name===e)if(!t)t=i;else return Le.Warn("More than one block was found with the name `"+e+"`"),t;return t}getBlockByPredicate(e){for(const t of this.attachedBlocks)if(e(t))return t;return null}getBlocksByPredicate(e){const t=[];for(const i of this.attachedBlocks)e(i)&&t.push(i);return t}getInputBlocks(){const e=[];for(const t of this.attachedBlocks)t.isInput&&e.push(t);return e}edit(e){return new Promise(t=>{if(this.BJSNODERENDERGRAPHEDITOR=this.BJSNODERENDERGRAPHEDITOR||this._getGlobalNodeRenderGraphEditor(),typeof this.BJSNODERENDERGRAPHEDITOR>"u"){const i=e&&e.editorURL?e.editorURL:T0.EditorURL;Le.LoadBabylonScript(i,()=>{this.BJSNODERENDERGRAPHEDITOR=this.BJSNODERENDERGRAPHEDITOR||this._getGlobalNodeRenderGraphEditor(),this._createNodeEditor(e==null?void 0:e.nodeRenderGraphEditorConfig),t()})}else this._createNodeEditor(e==null?void 0:e.nodeRenderGraphEditorConfig),t()})}_createNodeEditor(e){const t={nodeRenderGraph:this,...e};this.BJSNODERENDERGRAPHEDITOR.NodeRenderGraphEditor.Show(t)}build(){if(!this.outputBlock)throw new Error("You must define the outputBlock property before building the node render graph");this._initializeBlock(this.outputBlock),this._frameGraph.clear();const e=new Ppe;e.buildId=this._buildId,e.verbose=this._options.verbose,this._options.autoFillExternalInputs&&this._autoFillExternalInputs();try{this.outputBlock.build(e),this._frameGraph.build()}finally{this._buildId=T0._BuildIdGenerator++,e.emitErrors(this.onBuildErrorObservable)&&this.onBuildObservable.notifyObservers(this)}}_autoFillExternalInputs(){const e=this.getInputBlocks(),t=[];for(const r of this._scene.lights)r.setShadowProjectionMatrix!==void 0&&t.push(r);let i=0,s=0;for(const r of e)if(r.isExternal&&r.isAnAncestorOfType("NodeRenderGraphOutputBlock")&&!(r.type&zt.TextureAllButBackBuffer))if(r.isCamera()){const n=this._scene.cameras[i++]||this._scene.cameras[0];this._scene.cameraToUseForPointers||(this._scene.cameraToUseForPointers=n),r.value=n}else r.isObjectList()?r.value={meshes:this._scene.meshes,particleSystems:this._scene.particleSystems}:r.isShadowLight()&&s<t.length&&(r.value=t[s++],s=s%t.length)}whenReadyAsync(e=16,t=3e4){return this._frameGraph.whenReadyAsync(e,t)}execute(){this._frameGraph.execute()}_initializeBlock(e){e.initialize(),this._options.autoConfigure&&e.autoConfigure(),this.attachedBlocks.indexOf(e)===-1&&this.attachedBlocks.push(e);for(const t of e.inputs){const i=t.connectedPoint;if(i){const s=i.ownerBlock;s!==e&&this._initializeBlock(s)}}}clear(){this.outputBlock=null,this.attachedBlocks.length=0}removeBlock(e){const t=this.attachedBlocks.indexOf(e);t>-1&&this.attachedBlocks.splice(t,1),e===this.outputBlock&&(this.outputBlock=null)}parseSerializedObject(e,t=!1){t||this.clear();const i={};for(const s of e.blocks){const r=ea(s.customType);if(r){const n=s.additionalConstructionParameters,o=n?new r("",this._frameGraph,this._scene,...n):new r("",this._frameGraph,this._scene);o._deserialize(s),i[s.id]=o,this.attachedBlocks.push(o)}}for(const s of this.attachedBlocks)if(s.isTeleportOut){const r=s,n=r._tempEntryPointUniqueId;if(n){const o=i[n];o&&o.attachToEndpoint(r)}}for(let s=0;s<e.blocks.length;s++){const r=e.blocks[s],n=i[r.id];n&&(n.inputs.length&&r.inputs.some(o=>o.targetConnectionName)&&!t||this._restoreConnections(n,e,i))}if(e.outputNodeId&&(this.outputBlock=i[e.outputNodeId]),e.locations||e.editorData&&e.editorData.locations){const s=e.locations||e.editorData.locations;for(const n of s)i[n.blockId]&&(n.blockId=i[n.blockId].uniqueId);t&&this.editorData&&this.editorData.locations&&s.concat(this.editorData.locations),e.locations?this.editorData={locations:s}:(this.editorData=e.editorData,this.editorData.locations=s);const r=[];for(const n in i)r[n]=i[n].uniqueId;this.editorData.map=r}this.comment=e.comment}_restoreConnections(e,t,i){for(const s of e.outputs)for(const r of t.blocks){const n=i[r.id];if(n){for(const o of r.inputs)if(i[o.targetBlockId]===e&&o.targetConnectionName===s.name){const l=n.getInputByName(o.inputName);if(!l||l.isConnected)continue;s.connectTo(l,!0),this._restoreConnections(n,t,i);continue}}}}generateCode(){let e=[];const t=[],i=["const","var","let"];this.outputBlock&&this._gatherBlocks(this.outputBlock,t);const s=JSON.stringify(this._options);let r=`let nodeRenderGraph = new BABYLON.NodeRenderGraph("${this.name||"render graph"}", scene, ${s});
`;for(const n of t)n.isInput&&e.indexOf(n)===-1&&(r+=n._dumpCode(i,e)+`
`);return this.outputBlock&&(e=[],r+=`// Connections
`,r+=this.outputBlock._dumpCodeForOutputConnections(e),r+=`// Output nodes
`,r+=`nodeRenderGraph.outputBlock = ${this.outputBlock._codeVariableName};
`,r+=`nodeRenderGraph.build();
`),r}_gatherBlocks(e,t){if(t.indexOf(e)===-1){t.push(e);for(const i of e.inputs){const s=i.connectedPoint;if(s){const r=s.ownerBlock;r!==e&&this._gatherBlocks(r,t)}}if(e.isTeleportOut){const i=e;i.entryPoint&&this._gatherBlocks(i.entryPoint,t)}}}setToDefault(){this.clear(),this.editorData=null;const e=new ML("Color Texture",this._frameGraph,this._scene,zt.Texture);e.creationOptions.options.samples=4;const t=new ML("Depth Texture",this._frameGraph,this._scene,zt.TextureDepthStencilAttachment);t.creationOptions.options.samples=4;const i=new r9("Clear",this._frameGraph,this._scene);i.clearDepth=!0,i.clearStencil=!0,e.output.connectTo(i.target),t.output.connectTo(i.depth);const s=new ML("Camera",this._frameGraph,this._scene,zt.Camera),r=new ML("Object List",this._frameGraph,this._scene,zt.ObjectList),n=new SH("Main Rendering",this._frameGraph,this._scene);s.output.connectTo(n.camera),r.output.connectTo(n.objects),i.output.connectTo(n.target),i.outputDepth.connectTo(n.depth);const o=new Qee("Output",this._frameGraph,this._scene);n.output.connectTo(o.texture),this.outputBlock=o}clone(e){const t=this.serialize(),i=It.Clone(()=>new T0(e,this._scene),this);return i.name=e,i.parseSerializedObject(t),i._buildId=this._buildId,i.build(),i}serialize(e){const t=e?{}:It.Serialize(this);t.editorData=JSON.parse(JSON.stringify(this.editorData));let i=[];e?i=e:(t.customType="BABYLON.NodeRenderGraph",this.outputBlock&&(t.outputNodeId=this.outputBlock.uniqueId)),t.blocks=[];for(const s of i)t.blocks.push(s.serialize());if(!e)for(const s of this.attachedBlocks)i.indexOf(s)===-1&&t.blocks.push(s.serialize());return t}dispose(){for(const e of this.attachedBlocks)e.dispose();this._frameGraph.dispose(),this._frameGraph=void 0,this._engine.onResizeObservable.remove(this._resizeObserver),this._resizeObserver=null,this.attachedBlocks.length=0,this.onBuildObservable.clear(),this.onBuildErrorObservable.clear()}static CreateDefault(e,t,i){const s=new T0(e,t,i);return s.setToDefault(),s.build(),s}static Parse(e,t,i,s=!0){const r=It.Parse(()=>new T0(e.name,t,i),e,null);return r.parseSerializedObject(e),s||r.build(),r}static ParseFromSnippetAsync(e,t,i,s,r=!0){return e==="_BLANK"?Promise.resolve(T0.CreateDefault("blank",t,i)):new Promise((n,o)=>{const l=new ha;l.addEventListener("readystatechange",()=>{if(l.readyState==4)if(l.status==200){const c=JSON.parse(JSON.parse(l.responseText).jsonPayload),u=JSON.parse(c.nodeRenderGraph);s||(s=It.Parse(()=>new T0(e,t,i),u,null)),s.parseSerializedObject(u),s.snippetId=e;try{r||s.build(),n(s)}catch(f){o(f)}}else o("Unable to load the snippet "+e)}),l.open("GET",this.SnippetUrl+"/"+e.replace(/#/g,"/")),l.send()})}}T0._BuildIdGenerator=0,T0.EditorURL=`${Le._DefaultCdnUrl}/v${Qt.Version}/NodeRenderGraph/babylon.nodeRenderGraph.js`,T0.SnippetUrl="https://snippet.babylonjs.com",F([G()],T0.prototype,"name",void 0),F([G("comment")],T0.prototype,"comment",void 0);class Ope extends q1{constructor(e,t,i){super(e,t),this._scene=i,this.outputObjectList={meshes:[],particleSystems:[]}}record(){if(this.objectList===void 0||this.camera===void 0)throw new Error(`FrameGraphCullObjectsTask ${this.name}: objectList and camera are required`);const e=this._frameGraph.addCullPass(this.name);e.setObjectList(this.outputObjectList),e.setExecuteFunc(i=>{this.outputObjectList.meshes=[],this.camera._updateFrustumPlanes();const s=this.camera._frustumPlanes,r=this.objectList.meshes||this._scene.meshes;for(let n=0;n<r.length;n++){const o=r[n];o.isBlocked||!o.isReady()||!o.isEnabled()||o.scaling.hasAZeroComponent||o.isVisible&&o.visibility>0&&o.layerMask&this.camera.layerMask&&(this._scene.skipFrustumClipping||o.alwaysSelectAsActiveMesh||o.isInFrustum(s))&&this.outputObjectList.meshes.push(o)}});const t=this._frameGraph.addCullPass(this.name+"_disabled",!0);t.setObjectList(this.outputObjectList),t.setExecuteFunc(i=>{this.outputObjectList.meshes=this.objectList.meshes,this.outputObjectList.particleSystems=this.objectList.particleSystems})}}class Rpe extends Hu{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this.registerInput("camera",zt.Camera),this.registerInput("objects",zt.ObjectList),this._addDependenciesInput(),this.registerOutput("output",zt.ObjectList),this._frameGraphTask=new Ope(this.name,t,i)}getClassName(){return"NodeRenderGraphCullObjectsBlock"}get camera(){return this._inputs[0]}get objects(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){var t,i;super._buildBlock(e),this.output.value=this._frameGraphTask.outputObjectList,this._frameGraphTask.camera=(t=this.camera.connectedPoint)==null?void 0:t.value,this._frameGraphTask.objectList=(i=this.objects.connectedPoint)==null?void 0:i.value}_dumpPropertiesCode(){const e=[];return super._dumpPropertiesCode()+e.join(`
`)}serialize(){return super.serialize()}_deserialize(e){super._deserialize(e)}}ve("BABYLON.NodeRenderGraphCullObjectsBlock",Rpe);class Dpe extends Hu{constructor(e,t,i){super(e,t,i),this.registerInput("input",zt.AutoDetect),this.registerOutput("output",zt.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0]}getClassName(){return"NodeRenderGraphElbowBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=this._inputs[0];this._propagateInputValueToOutput(i,t)}}ve("BABYLON.NodeRenderGraphElbowBlock",Dpe);class yH extends q1{constructor(e,t){super(e,t)}record(){if(!this.func)throw new Error("FrameGraphExecuteTask: Execute task must have a function.");const e=this._frameGraph.addPass(this.name);return e.setExecuteFunc(i=>{this.func(i)}),this._frameGraph.addPass(this.name+"_disabled",!0).setExecuteFunc(i=>{var s;(s=this.funcDisabled)==null||s.call(this,i)}),e}}class Npe extends Hu{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this._addDependenciesInput(zt.Camera|zt.ShadowLight|zt.ObjectList),this.registerOutput("output",zt.ResourceContainer),this._frameGraphTask=new yH(e,t)}getClassName(){return"NodeRenderGraphExecuteBlock"}get output(){return this._outputs[0]}}ve("BABYLON.NodeRenderGraphExecuteBlock",Npe);class wpe extends Hu{constructor(e,t,i){super(e,t,i),this.registerInput("resource0",zt.AutoDetect,!0),this.registerInput("resource1",zt.AutoDetect,!0),this.registerInput("resource2",zt.AutoDetect,!0),this.registerInput("resource3",zt.AutoDetect,!0),this.registerInput("resource4",zt.AutoDetect,!0),this.registerInput("resource5",zt.AutoDetect,!0),this.registerInput("resource6",zt.AutoDetect,!0),this.registerInput("resource7",zt.AutoDetect,!0),this.registerOutput("output",zt.ResourceContainer),this.resource0.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer|zt.ShadowGenerator),this.resource1.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer|zt.ShadowGenerator),this.resource2.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer|zt.ShadowGenerator),this.resource3.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer|zt.ShadowGenerator),this.resource4.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer|zt.ShadowGenerator),this.resource5.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer|zt.ShadowGenerator),this.resource6.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer|zt.ShadowGenerator),this.resource7.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer|zt.ShadowGenerator)}getClassName(){return"NodeRenderGraphResourceContainerBlock"}get resource0(){return this._inputs[0]}get resource1(){return this._inputs[1]}get resource2(){return this._inputs[2]}get resource3(){return this._inputs[3]}get resource4(){return this._inputs[4]}get resource5(){return this._inputs[5]}get resource6(){return this._inputs[6]}get resource7(){return this._inputs[7]}get output(){return this._outputs[0]}}ve("BABYLON.NodeRenderGraphResourceContainerBlock",wpe);class s_ extends Qr{constructor(e,t=null,i,s,r){super({...r,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:s_.FragmentUrl,uniforms:s_.Uniforms}),this.direction=i,this.kernel=s,this.textureWidth=0,this.textureHeight=0}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>zH))):t.push(Promise.resolve().then(()=>BH)),super._gatherImports(e,t)}bind(){super.bind(),this._drawWrapper.effect.setFloat2("screenSize",this.textureWidth,this.textureHeight),this._drawWrapper.effect.setVector2("direction",this.direction),this._drawWrapper.effect.setFloat("blurWidth",this.kernel)}}s_.FragmentUrl="glowBlurPostProcess",s_.Uniforms=["screenSize","direction","blurWidth"];class Uy{get camera(){return this._options.camera}set camera(e){this._options.camera=e}get renderingGroupId(){return this._options.renderingGroupId}set renderingGroupId(e){this._options.renderingGroupId=e}get objectRenderer(){return this._objectRenderer}get shaderLanguage(){return this._shaderLanguage}setMaterialForRendering(e,t){if(this._objectRenderer.setMaterialForRendering(e,t),Array.isArray(e))for(let i=0;i<e.length;++i){const s=e[i];t?this._materialForRendering[s.uniqueId]=[s,t]:delete this._materialForRendering[s.uniqueId]}else t?this._materialForRendering[e.uniqueId]=[e,t]:delete this._materialForRendering[e.uniqueId]}getEffectIntensity(e){return this._effectIntensity[e.uniqueId]??1}setEffectIntensity(e,t){this._effectIntensity[e.uniqueId]=t}constructor(e,t,i=!1,s=!1,r){this._additionalImportShadersAsync=r,this._vertexBuffers={},this._dontCheckIfReady=!1,this._shouldRender=!0,this._emissiveTextureAndColor={texture:null,color:new St},this._effectIntensity={},this._postProcesses=[],this.neutralColor=new St,this.isEnabled=!0,this.disableBoundingBoxesFromEffectLayer=!1,this.onDisposeObservable=new xe,this.onBeforeRenderLayerObservable=new xe,this.onBeforeComposeObservable=new xe,this.onBeforeRenderMeshToEffect=new xe,this.onAfterRenderMeshToEffect=new xe,this.onAfterComposeObservable=new xe,this.onBeforeBlurObservable=new xe,this.onAfterBlurObservable=new xe,this._shaderLanguage=0,this._materialForRendering={},this._shadersLoaded=!1,this.name=e,this._scene=t||ei.LastCreatedScene,this._dontCheckIfReady=s,this._scene.getEngine().isWebGPU&&!i&&!Uy.ForceGLSL&&(this._shaderLanguage=1),this._engine=this._scene.getEngine(),this._mergeDrawWrapper=[],this._generateIndexBuffer(),this._generateVertexBuffer()}getEffectName(){return""}isReady(e,t){return!0}needStencil(){return!1}_createMergeEffect(){throw new Error("Effect Layer: no merge effect defined")}_createTextureAndPostProcesses(){}_internalCompose(e,t){}_setEmissiveTextureAndColor(e,t,i){}_numInternalDraws(){return 1}_init(e){this._options={mainTextureRatio:.5,mainTextureFixedSize:0,mainTextureType:0,alphaBlendingMode:2,camera:null,renderingGroupId:-1,...e},this._createObjectRenderer()}_generateIndexBuffer(){const e=[];e.push(0),e.push(1),e.push(2),e.push(0),e.push(2),e.push(3),this._indexBuffer=this._engine.createIndexBuffer(e)}_generateVertexBuffer(){const e=[];e.push(1,1),e.push(-1,1),e.push(-1,-1),e.push(1,-1);const t=new q(this._engine,e,q.PositionKind,!1,!1,2);this._vertexBuffers[q.PositionKind]=t}_createObjectRenderer(){this._objectRenderer=new x0(`ObjectRenderer for thin effect layer ${this.name}`,this._scene,{doNotChangeAspectRatio:!0}),this._objectRenderer.activeCamera=this._options.camera,this._objectRenderer.renderParticles=!1,this._objectRenderer.renderList=null;const e=!!this._scene.getBoundingBoxRenderer;let t=!1;e&&(this._objectRenderer.onBeforeRenderObservable.add(()=>{t=this._scene.getBoundingBoxRenderer().enabled,this._scene.getBoundingBoxRenderer().enabled=!this.disableBoundingBoxesFromEffectLayer&&t}),this._objectRenderer.onAfterRenderObservable.add(()=>{this._scene.getBoundingBoxRenderer().enabled=t})),this._objectRenderer.customIsReadyFunction=(i,s,r)=>{if((r||s===0)&&i.subMeshes)for(let n=0;n<i.subMeshes.length;++n){const o=i.subMeshes[n],l=o.getMaterial(),c=o.getRenderingMesh();if(!l)continue;const f=c._getInstancesRenderList(o._id,!!o.getReplacementMesh()).hardwareInstancedRendering[o._id]||c.hasThinInstances;if(this._setEmissiveTextureAndColor(c,o,l),!this._isSubMeshReady(o,f,this._emissiveTextureAndColor.texture))return!1}return!0},this._objectRenderer.customRenderFunction=(i,s,r,n)=>{this.onBeforeRenderLayerObservable.notifyObservers(this);let o;const l=this._scene.getEngine();if(n.length){for(l.setColorWrite(!1),o=0;o<n.length;o++)this._renderSubMesh(n.data[o]);l.setColorWrite(!0)}for(o=0;o<i.length;o++)this._renderSubMesh(i.data[o]);for(o=0;o<s.length;o++)this._renderSubMesh(s.data[o]);const c=l.getAlphaMode();for(o=0;o<r.length;o++){const u=r.data[o],f=u.getMaterial();if(f&&f.needDepthPrePass){const p=f.getScene().getEngine();p.setColorWrite(!1),this._renderSubMesh(u),p.setColorWrite(!0)}this._renderSubMesh(u,!0)}l.setAlphaMode(c)}}_addCustomEffectDefines(e){}_internalIsSubMeshReady(e,t,i){var S;const s=this._scene.getEngine(),r=e.getMesh(),n=(S=r._internalAbstractMeshDataInfo._materialForRenderPass)==null?void 0:S[s.currentRenderPassId];if(n)return n.isReadyForSubMesh(r,e,t);const o=e.getMaterial();if(!o)return!1;if(this._useMeshMaterial(e.getRenderingMesh()))return o.isReadyForSubMesh(e.getMesh(),e,t);const l=[],c=[q.PositionKind];let u=!1,f=!1;const p=!1;if(o){const E=o.needAlphaTestingForMesh(r),b=o.getAlphaTestTexture(),M=b&&b.hasAlpha&&(o.useAlphaFromDiffuseTexture||o._useAlphaFromAlbedoTexture);b&&(E||M)&&(l.push("#define DIFFUSE"),r.isVerticesDataPresent(q.UV2Kind)&&b.coordinatesIndex===1?(l.push("#define DIFFUSEUV2"),f=!0):r.isVerticesDataPresent(q.UVKind)&&(l.push("#define DIFFUSEUV1"),u=!0),E&&(l.push("#define ALPHATEST"),l.push("#define ALPHATESTVALUE 0.4")),b.gammaSpace||l.push("#define DIFFUSE_ISLINEAR"));const T=o.opacityTexture;T&&(l.push("#define OPACITY"),r.isVerticesDataPresent(q.UV2Kind)&&T.coordinatesIndex===1?(l.push("#define OPACITYUV2"),f=!0):r.isVerticesDataPresent(q.UVKind)&&(l.push("#define OPACITYUV1"),u=!0))}i&&(l.push("#define EMISSIVE"),r.isVerticesDataPresent(q.UV2Kind)&&i.coordinatesIndex===1?(l.push("#define EMISSIVEUV2"),f=!0):r.isVerticesDataPresent(q.UVKind)&&(l.push("#define EMISSIVEUV1"),u=!0),i.gammaSpace||l.push("#define EMISSIVE_ISLINEAR")),r.useVertexColors&&r.isVerticesDataPresent(q.ColorKind)&&r.hasVertexAlpha&&o.transparencyMode!==ft.MATERIAL_OPAQUE&&(c.push(q.ColorKind),l.push("#define VERTEXALPHA")),u&&(c.push(q.UVKind),l.push("#define UV1")),f&&(c.push(q.UV2Kind),l.push("#define UV2"));const m=new Ra;if(r.useBones&&r.computeBonesUsingShaders){c.push(q.MatricesIndicesKind),c.push(q.MatricesWeightsKind),r.numBoneInfluencers>4&&(c.push(q.MatricesIndicesExtraKind),c.push(q.MatricesWeightsExtraKind)),l.push("#define NUM_BONE_INFLUENCERS "+r.numBoneInfluencers);const E=r.skeleton;E&&E.isUsingTextureForMatrices?l.push("#define BONETEXTURE"):l.push("#define BonesPerMesh "+(E?E.bones.length+1:0)),r.numBoneInfluencers>0&&m.addCPUSkinningFallback(0,r)}else l.push("#define NUM_BONE_INFLUENCERS 0");const _=r.morphTargetManager?xy(r.morphTargetManager,l,c,r,!0,!1,!1,u,f,p):0;t&&(l.push("#define INSTANCES"),Qx(c),e.getRenderingMesh().hasThinInstances&&l.push("#define THIN_INSTANCES")),Cy(o,this._scene,l),this._addCustomEffectDefines(l);const d=e._getDrawWrapper(void 0,!0),h=d.defines,x=l.join(`
`);if(h!==x){const E=["world","mBones","viewProjection","glowColor","morphTargetInfluences","morphTargetCount","boneTextureWidth","diffuseMatrix","emissiveMatrix","opacityMatrix","opacityIntensity","morphTargetTextureInfo","morphTargetTextureIndices","glowIntensity"];qo(E),d.setEffect(this._engine.createEffect("glowMapGeneration",c,E,["diffuseSampler","emissiveSampler","opacitySampler","boneSampler","morphTargets"],x,m,void 0,void 0,{maxSimultaneousMorphTargets:_},this._shaderLanguage,this._shadersLoaded?void 0:async()=>{await this._importShadersAsync(),this._shadersLoaded=!0}),x)}return d.effect.isReady()&&(this._dontCheckIfReady||!this._dontCheckIfReady&&this.isLayerReady())}_isSubMeshReady(e,t,i){return this._internalIsSubMeshReady(e,t,i)}async _importShadersAsync(){var e;this._shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>FFe),Promise.resolve().then(()=>wFe)]):await Promise.all([Promise.resolve().then(()=>RFe),Promise.resolve().then(()=>OFe)]),(e=this._additionalImportShadersAsync)==null||e.call(this)}_internalIsLayerReady(){let e=!0;for(let i=0;i<this._postProcesses.length;i++)e=this._postProcesses[i].isReady()&&e;const t=this._numInternalDraws();for(let i=0;i<t;++i){let s=this._mergeDrawWrapper[i];s||(s=this._mergeDrawWrapper[i]=new ql(this._engine),s.setEffect(this._createMergeEffect())),e=s.effect.isReady()&&e}return e}isLayerReady(){return this._internalIsLayerReady()}compose(){if(!this._dontCheckIfReady&&!this.isLayerReady())return!1;const e=this._scene.getEngine(),t=this._numInternalDraws();this.onBeforeComposeObservable.notifyObservers(this);const i=e.getAlphaMode();for(let s=0;s<t;++s){const r=this._mergeDrawWrapper[s];e.enableEffect(r),e.setState(!1),e.bindBuffers(this._vertexBuffers,this._indexBuffer,r.effect),e.setAlphaMode(this._options.alphaBlendingMode),this._internalCompose(r.effect,s)}return e.setAlphaMode(i),this.onAfterComposeObservable.notifyObservers(this),!0}_internalHasMesh(e){return this.renderingGroupId===-1||e.renderingGroupId===this.renderingGroupId}hasMesh(e){return this._internalHasMesh(e)}_internalShouldRender(){return this.isEnabled&&this._shouldRender}shouldRender(){return this._internalShouldRender()}_shouldRenderMesh(e){return!0}_internalCanRenderMesh(e,t){return!t.needAlphaBlendingForMesh(e)}_canRenderMesh(e,t){return this._internalCanRenderMesh(e,t)}_renderSubMesh(e,t=!1){var d;if(!this._internalShouldRender())return;const i=e.getMaterial(),s=e.getMesh(),r=e.getReplacementMesh(),n=e.getRenderingMesh(),o=e.getEffectiveMesh(),l=this._scene,c=l.getEngine();if(o._internalAbstractMeshDataInfo._isActiveIntermediate=!1,!i||!this._canRenderMesh(n,i))return;let u=i._getEffectiveOrientation(n);o._getWorldMatrixDeterminant()<0&&(u=u===ft.ClockWiseSideOrientation?ft.CounterClockWiseSideOrientation:ft.ClockWiseSideOrientation);const p=u===ft.ClockWiseSideOrientation;c.setState(i.backFaceCulling,i.zOffset,void 0,p,i.cullBackFaces,void 0,i.zOffsetUnits);const m=n._getInstancesRenderList(e._id,!!r);if(m.mustReturn||!this._shouldRenderMesh(n))return;const _=m.hardwareInstancedRendering[e._id]||n.hasThinInstances;if(this._setEmissiveTextureAndColor(n,e,i),this.onBeforeRenderMeshToEffect.notifyObservers(s),this._useMeshMaterial(n))e.getMaterial()._glowModeEnabled=!0,n.render(e,t,r||void 0),e.getMaterial()._glowModeEnabled=!1;else if(this._isSubMeshReady(e,_,this._emissiveTextureAndColor.texture)){const h=(d=o._internalAbstractMeshDataInfo._materialForRenderPass)==null?void 0:d[c.currentRenderPassId];let x=e._getDrawWrapper();if(!x&&h&&(x=h._getDrawWrapper()),!x)return;const A=x.effect;if(c.enableEffect(x),_||n._bind(e,A,i.fillMode),h?h.bindForSubMesh(o.getWorldMatrix(),o,e):(A.setMatrix("viewProjection",l.getTransformMatrix()),A.setMatrix("world",o.getWorldMatrix()),A.setFloat4("glowColor",this._emissiveTextureAndColor.color.r,this._emissiveTextureAndColor.color.g,this._emissiveTextureAndColor.color.b,this._emissiveTextureAndColor.color.a)),!h){const S=i.needAlphaTestingForMesh(o),E=i.getAlphaTestTexture(),b=E&&E.hasAlpha&&(i.useAlphaFromDiffuseTexture||i._useAlphaFromAlbedoTexture);if(E&&(S||b)){A.setTexture("diffuseSampler",E);const T=E.getTextureMatrix();T&&A.setMatrix("diffuseMatrix",T)}const M=i.opacityTexture;if(M){A.setTexture("opacitySampler",M),A.setFloat("opacityIntensity",M.level);const T=M.getTextureMatrix();T&&A.setMatrix("opacityMatrix",T)}if(this._emissiveTextureAndColor.texture&&(A.setTexture("emissiveSampler",this._emissiveTextureAndColor.texture),A.setMatrix("emissiveMatrix",this._emissiveTextureAndColor.texture.getTextureMatrix())),n.useBones&&n.computeBonesUsingShaders&&n.skeleton){const T=n.skeleton;if(T.isUsingTextureForMatrices){const O=T.getTransformMatrixTexture(n);if(!O)return;A.setTexture("boneSampler",O),A.setFloat("boneTextureWidth",4*(T.bones.length+1))}else A.setMatrices("mBones",T.getTransformMatrices(n))}s3(n,A),n.morphTargetManager&&n.morphTargetManager.isUsingTextureForTargets&&n.morphTargetManager._bind(A),t&&c.setAlphaMode(i.alphaMode),A.setFloat("glowIntensity",this.getEffectIntensity(n)),Bo(A,i,l)}n._processRendering(o,e,A,i.fillMode,m,_,(S,E)=>A.setMatrix("world",E))}else this._objectRenderer.resetRefreshCounter();this.onAfterRenderMeshToEffect.notifyObservers(s)}_useMeshMaterial(e){return!1}_rebuild(){const e=this._vertexBuffers[q.PositionKind];e&&e._rebuild(),this._generateIndexBuffer()}dispose(){const e=this._vertexBuffers[q.PositionKind];e&&(e.dispose(),this._vertexBuffers[q.PositionKind]=null),this._indexBuffer&&(this._scene.getEngine()._releaseBuffer(this._indexBuffer),this._indexBuffer=null);for(const t of this._mergeDrawWrapper)t.dispose();this._mergeDrawWrapper=[],this._objectRenderer.dispose(),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onBeforeRenderLayerObservable.clear(),this.onBeforeComposeObservable.clear(),this.onBeforeRenderMeshToEffect.clear(),this.onAfterRenderMeshToEffect.clear(),this.onAfterComposeObservable.clear()}}Uy.ForceGLSL=!1;class n9 extends Uy{get ldrMerge(){return this._options.ldrMerge}set blurKernelSize(e){if(e===this._options.blurKernelSize)return;this._options.blurKernelSize=e;const t=this._getEffectiveBlurKernelSize();this._horizontalBlurPostprocess1.kernel=t,this._verticalBlurPostprocess1.kernel=t,this._horizontalBlurPostprocess2.kernel=t,this._verticalBlurPostprocess2.kernel=t}get blurKernelSize(){return this._options.blurKernelSize}set intensity(e){this._intensity=e}get intensity(){return this._intensity}constructor(e,t,i,s=!1){super(e,t,!1,s),this._intensity=1,this._includedOnlyMeshes=[],this._excludedMeshes=[],this._meshesUsingTheirOwnMaterials=[],this._renderPassId=0,this.neutralColor=new St(0,0,0,1),this._options={mainTextureRatio:.5,mainTextureFixedSize:0,mainTextureType:0,blurKernelSize:32,camera:null,renderingGroupId:-1,ldrMerge:!1,alphaBlendingMode:1,...i},this._init(this._options),s&&this._createTextureAndPostProcesses()}getClassName(){return"GlowLayer"}async _importShadersAsync(){this._shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>Ame),Promise.resolve().then(()=>bme),Promise.resolve().then(()=>zH)]):await Promise.all([Promise.resolve().then(()=>hme),Promise.resolve().then(()=>pme),Promise.resolve().then(()=>BH)]),await super._importShadersAsync()}getEffectName(){return n9.EffectName}_createMergeEffect(){let e=`#define EMISSIVE 
`;return this._options.ldrMerge&&(e+=`#define LDR 
`),this._engine.createEffect("glowMapMerge",[q.PositionKind],["offset"],["textureSampler","textureSampler2"],e,void 0,void 0,void 0,void 0,this.shaderLanguage,this._shadersLoaded?void 0:async()=>{await this._importShadersAsync(),this._shadersLoaded=!0})}_createTextureAndPostProcesses(){const e=this._getEffectiveBlurKernelSize();this._horizontalBlurPostprocess1=new jo("GlowLayerHBP1",this._scene.getEngine(),new Ue(1,0),e),this._verticalBlurPostprocess1=new jo("GlowLayerVBP1",this._scene.getEngine(),new Ue(0,1),e),this._horizontalBlurPostprocess2=new jo("GlowLayerHBP2",this._scene.getEngine(),new Ue(1,0),e),this._verticalBlurPostprocess2=new jo("GlowLayerVBP2",this._scene.getEngine(),new Ue(0,1),e),this._postProcesses=[this._horizontalBlurPostprocess1,this._verticalBlurPostprocess1,this._horizontalBlurPostprocess2,this._verticalBlurPostprocess2]}_getEffectiveBlurKernelSize(){return this._options.blurKernelSize/2}isReady(e,t){const i=e.getMaterial(),s=e.getRenderingMesh();if(!i||!s)return!1;const r=i.emissiveTexture;return super._isSubMeshReady(e,t,r)}_canRenderMesh(e,t){return!0}_internalCompose(e){this.bindTexturesForCompose(e),e.setFloat("offset",this._intensity);const t=this._engine,i=t.getStencilBuffer();t.setStencilBuffer(!1),t.drawElementsType(ft.TriangleFillMode,0,6),t.setStencilBuffer(i)}_setEmissiveTextureAndColor(e,t,i){let s=1;if(this.customEmissiveTextureSelector?this._emissiveTextureAndColor.texture=this.customEmissiveTextureSelector(e,t,i):i?(this._emissiveTextureAndColor.texture=i.emissiveTexture,this._emissiveTextureAndColor.texture&&(s=this._emissiveTextureAndColor.texture.level)):this._emissiveTextureAndColor.texture=null,this.customEmissiveColorSelector)this.customEmissiveColorSelector(e,t,i,this._emissiveTextureAndColor.color);else if(i.emissiveColor){const r=i.emissiveIntensity??1;s*=r,this._emissiveTextureAndColor.color.set(i.emissiveColor.r*s,i.emissiveColor.g*s,i.emissiveColor.b*s,i.alpha)}else this._emissiveTextureAndColor.color.set(this.neutralColor.r,this.neutralColor.g,this.neutralColor.b,this.neutralColor.a)}_shouldRenderMesh(e){return this.hasMesh(e)}_addCustomEffectDefines(e){e.push("#define GLOW")}addExcludedMesh(e){this._excludedMeshes.indexOf(e.uniqueId)===-1&&this._excludedMeshes.push(e.uniqueId)}removeExcludedMesh(e){const t=this._excludedMeshes.indexOf(e.uniqueId);t!==-1&&this._excludedMeshes.splice(t,1)}addIncludedOnlyMesh(e){this._includedOnlyMeshes.indexOf(e.uniqueId)===-1&&this._includedOnlyMeshes.push(e.uniqueId)}removeIncludedOnlyMesh(e){const t=this._includedOnlyMeshes.indexOf(e.uniqueId);t!==-1&&this._includedOnlyMeshes.splice(t,1)}hasMesh(e){return super.hasMesh(e)?this._includedOnlyMeshes.length?this._includedOnlyMeshes.indexOf(e.uniqueId)!==-1:this._excludedMeshes.length?this._excludedMeshes.indexOf(e.uniqueId)===-1:!0:!1}_useMeshMaterial(e){var t;return(t=e.material)!=null&&t._supportGlowLayer?!0:this._meshesUsingTheirOwnMaterials.length==0?!1:this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId)>-1}referenceMeshToUseItsOwnMaterial(e){e.resetDrawCache(this._renderPassId),this._meshesUsingTheirOwnMaterials.push(e.uniqueId),e.onDisposeObservable.add(()=>{this._disposeMesh(e)})}unReferenceMeshFromUsingItsOwnMaterial(e,t){let i=this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId);for(;i>=0;)this._meshesUsingTheirOwnMaterials.splice(i,1),i=this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId);e.resetDrawCache(t)}_disposeMesh(e){this.removeIncludedOnlyMesh(e),this.removeExcludedMesh(e)}}n9.EffectName="GlowLayer",n9.DefaultBlurKernelSize=32;class L0 extends q1{get drawWrapper(){return this._postProcessDrawWrapper}constructor(e,t,i){super(e,t),this.sourceSamplingMode=2,this.postProcess=i,this._postProcessDrawWrapper=this.postProcess.drawWrapper,this.outputTexture=this._frameGraph.textureManager.createDanglingHandle(),this.onTexturesAllocatedObservable.add(s=>{s.setTextureSamplingMode(this.sourceTexture,this.sourceSamplingMode)})}isReady(){return this.postProcess.isReady()}record(e=!1,t,i){if(this.sourceTexture===void 0)throw new Error(`FrameGraphPostProcessTask "${this.name}": sourceTexture is required`);const s=this._frameGraph.textureManager.getTextureCreationOptions(this.sourceTexture);s.options.samples=1,this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,this.targetTexture,this.name,s);const r=s.sizeIsPercentage?this._frameGraph.textureManager.getAbsoluteDimensions(s.size):ky(s.size)?s.size:{width:s.size,height:s.size};this._sourceWidth=r.width,this._sourceHeight=r.height;const n=this._frameGraph.textureManager.getTextureDescription(this.outputTexture);this._outputWidth=n.size.width,this._outputHeight=n.size.height;const o=this._frameGraph.addRenderPass(this.name);if(o.addDependencies(this.sourceTexture),o.setRenderTarget(this.outputTexture),o.setExecuteFunc(l=>{t==null||t(l),l.applyFullScreenEffect(this._postProcessDrawWrapper,()=>{l.bindTextureHandle(this._postProcessDrawWrapper.effect,"textureSampler",this.sourceTexture),i==null||i(l),this.postProcess.bind()})}),!e){const l=this._frameGraph.addRenderPass(this.name+"_disabled",!0);l.addDependencies(this.sourceTexture),l.setRenderTarget(this.outputTexture),l.setExecuteFunc(c=>{c.copyTexture(this.sourceTexture)})}return o}dispose(){this.postProcess.dispose(),super.dispose()}}class EL extends L0{constructor(e,t,i){super(e,t,i||new jo(e,t.engine,new Ue(1,0),10))}record(e=!1,t,i){const s=super.record(e,t,i);return this.postProcess.textureWidth=this._outputWidth,this.postProcess.textureHeight=this._outputHeight,s}}class Bpe extends L0{constructor(e,t,i){super(e,t,i||new s_(e,t.engine,new Ue(1,0),1))}record(e=!1,t,i){const s=super.record(e,t,i);return this.postProcess.textureWidth=this._outputWidth,this.postProcess.textureHeight=this._outputHeight,s}}class zpe extends q1{get name(){return this._name}set name(e){if(this._name=e,this._blurX)for(let t=0;t<this._blurX.length;t++)this._blurX[t].name=`${e} Blur X${t}`,this._blurY[t].name=`${e} Blur Y${t}`;this._clearLayerTextures&&(this._clearLayerTextures.name=e+" Clear Layer"),this._objectRendererForLayer&&(this._objectRendererForLayer.name=e+" Render to Layer")}constructor(e,t,i,s,r,n=!1,o=!1,l=!1){super(e,t),this._setRenderTargetDepth=o,this._notifyBlurObservable=l,this._blurX=[],this._blurY=[],this._onBeforeBlurTask=null,this._onAfterBlurTask=null,this._onBeforeObservableObserver=null,this._onAfterObservableObserver=null,this._onAfterRenderingGroupObserver=null,this._scene=i,this._engine=i.getEngine(),this.layer=s;for(let c=0;c<r;c++)n?(this._blurX.push(new Bpe(`${e} Blur X${c}`,this._frameGraph,this.layer._postProcesses[1+c*2+0])),this._blurY.push(new Bpe(`${e} Blur Y${c}`,this._frameGraph,this.layer._postProcesses[1+c*2+1]))):(this._blurX.push(new EL(`${e} Blur X${c}`,this._frameGraph,this.layer._postProcesses[c*2+0])),this._blurY.push(new EL(`${e} Blur Y${c}`,this._frameGraph,this.layer._postProcesses[c*2+1])));this._clearLayerTextures=new ite(e+" Clear Layer",t),this._clearLayerTextures.clearColor=!0,this._clearLayerTextures.clearDepth=!0,this._objectRendererForLayer=new RB(e+" Render to Layer",t,i,void 0,this.layer.objectRenderer),this._notifyBlurObservable&&(this._onBeforeBlurTask=new yH(e+" On Before Blur",t),this._onAfterBlurTask=new yH(e+" On After Blur",t),this._onBeforeBlurTask.func=()=>{this.layer.onBeforeBlurObservable.hasObservers()&&this.layer.onBeforeBlurObservable.notifyObservers(this.layer)},this._onAfterBlurTask.func=()=>{this.layer.onAfterBlurObservable.hasObservers()&&this.layer.onAfterBlurObservable.notifyObservers(this.layer)}),this.outputTexture=this._frameGraph.textureManager.createDanglingHandle(),this.onTexturesAllocatedObservable.add(c=>{for(let u=0;u<this._blurX.length;u++)this._blurX[u].onTexturesAllocatedObservable.notifyObservers(c),this._blurY[u].onTexturesAllocatedObservable.notifyObservers(c);c.setTextureSamplingMode(this._blurY[this._blurY.length-1].targetTexture,2)})}isReady(){return this._objectRendererForLayer.isReady()&&this.layer.isLayerReady()}record(){var d,h;if(this.targetTexture===void 0||this.objectRendererTask===void 0)throw new Error(`${this.constructor.name} "${this.name}": targetTexture and objectRendererTask are required`);this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,this.targetTexture);let e,t,i;if(this.layerTexture)i=this.layerTexture,t=this._frameGraph.textureManager.getTextureCreationOptions(this.layerTexture),e=OB(t.size),t.size=e;else{const x=this._frameGraph.textureManager.getTextureCreationOptions(this.targetTexture),A=this.layer._options.mainTextureFixedSize?Math.max(2,this.layer._options.mainTextureFixedSize):0;e=OB(x.size),e.width=A||Math.floor(e.width*(this.layer._options.mainTextureRatio||.1))||1,e.height=A||Math.floor(e.height*(this.layer._options.mainTextureRatio||.1))||1,t={size:e,options:{createMipMaps:!1,types:[this.layer._options.mainTextureType],formats:[5],samples:1,useSRGBBuffers:[!1],creationFlags:[0]},sizeIsPercentage:this.layer._options.mainTextureFixedSize?!1:x.sizeIsPercentage},i=this._frameGraph.textureManager.createRenderTargetTexture(`${this.name} Color`,t)}const s={size:e,options:i_.CloneTextureOptions(t.options),sizeIsPercentage:t.sizeIsPercentage};s.options.formats[0]=14;const r=this._frameGraph.textureManager.createRenderTargetTexture(`${this.name} Depth`,s);this._clearLayerTextures.targetTexture=i,this._clearLayerTextures.depthTexture=r,this._clearLayerTextures.color=this.layer.neutralColor,this._clearLayerTextures.clearDepth=!0;const n=this._clearLayerTextures.record();this._objectRendererForLayer.targetTexture=this._clearLayerTextures.outputTexture,this._objectRendererForLayer.depthTexture=this._clearLayerTextures.outputDepthTexture,this._objectRendererForLayer.camera=this.objectRendererTask.camera,this._objectRendererForLayer.objectList=this.objectRendererTask.objectList,this._objectRendererForLayer.disableShadows=!0;const o=this._objectRendererForLayer.record();let l=0;this._engine.getCaps().textureHalfFloatRender?l=2:l=0,t.options.types[0]=l;const c=this.layer._options.blurTextureSizeRatio!==void 0?this.layer._options.blurTextureSizeRatio||.1:void 0;c!==void 0&&(e.width=Math.floor(e.width*c)||1,e.height=Math.floor(e.height*c)||1);const u=(d=this._onBeforeBlurTask)==null?void 0:d.record(),f=[];for(let x=0;x<this._blurX.length;x++){const A=this._frameGraph.textureManager.createRenderTargetTexture(this._blurX[x].name,t);this._blurX[x].sourceTexture=x===0?this._objectRendererForLayer.outputTexture:this._blurY[x-1].outputTexture,this._blurX[x].sourceSamplingMode=2,this._blurX[x].targetTexture=A,f.push(this._blurX[x].record(!0));const S=this._frameGraph.textureManager.createRenderTargetTexture(this._blurY[x].name,t);this._blurY[x].sourceTexture=this._blurX[x].outputTexture,this._blurY[x].sourceSamplingMode=2,this._blurY[x].targetTexture=S,f.push(this._blurY[x].record(!0)),e.width=e.width>>1,e.height=e.height>>1}const p=(h=this._onAfterBlurTask)==null?void 0:h.record();this.objectRendererTask.objectRenderer.onBeforeRenderObservable.remove(this._onBeforeObservableObserver),this._onBeforeObservableObserver=this.objectRendererTask.objectRenderer.onBeforeRenderObservable.add(()=>{const x=this.layer.shouldRender();n.disabled=!x,o.disabled=!x,u&&(u.disabled=!x);for(let A=0;A<f.length;A++)f[A].disabled=!x;p&&(p.disabled=!x),x&&this.layer.needStencil()&&(this._engine.setStencilBuffer(!0),this._engine.setStencilFunctionReference(1))}),this.objectRendererTask.objectRenderer.onAfterRenderObservable.remove(this._onAfterObservableObserver),this._onAfterObservableObserver=this.objectRendererTask.objectRenderer.onAfterRenderObservable.add(()=>{this.layer.shouldRender()&&this.layer.needStencil()&&this._engine.setStencilBuffer(!1)}),this.layer.bindTexturesForCompose=void 0,this._clearAfterRenderingGroupObserver();const m=this._frameGraph.addRenderPass(this.name);for(let x=0;x<this._blurY.length;x++)m.addDependencies(this._blurY[x].outputTexture);m.setRenderTarget(this.outputTexture),this._setRenderTargetDepth&&m.setRenderTargetDepth(this.objectRendererTask.depthTexture),m.setExecuteFunc(x=>{this.layer.bindTexturesForCompose||(this.layer.bindTexturesForCompose=A=>{for(let S=0;S<this._blurY.length;S++)x.bindTextureHandle(A,`textureSampler${S>0?S+1:""}`,this._blurY[S].outputTexture)}),this.layer._options.renderingGroupId!==-1?this._onAfterRenderingGroupObserver||(this._onAfterRenderingGroupObserver=this._scene.onAfterRenderingGroupObservable.add(A=>{!this.layer.shouldRender()||A.renderingGroupId!==this.layer._options.renderingGroupId||A.renderingManager!==this.objectRendererTask.objectRenderer._renderingManager||(this._objectRendererForLayer.objectList=this.objectRendererTask.objectList,x.saveDepthStates(),x.setDepthStates(!1,!1),x._applyRenderTarget(),this.layer.compose(),x.restoreDepthStates())})):(this._clearAfterRenderingGroupObserver(),this.layer.shouldRender()&&(this._objectRendererForLayer.objectList=this.objectRendererTask.objectList,x.setDepthStates(!1,!1),x._applyRenderTarget(),this.layer.compose()))});const _=this._frameGraph.addRenderPass(this.name+"_disabled",!0);_.setRenderTarget(this.outputTexture),this._setRenderTargetDepth&&_.setRenderTargetDepth(this.objectRendererTask.depthTexture),_.setExecuteFunc(x=>{})}_clearAfterRenderingGroupObserver(){this._scene.onAfterRenderingGroupObservable.remove(this._onAfterRenderingGroupObserver),this._onAfterRenderingGroupObserver=null}dispose(){var e,t;this._clearAfterRenderingGroupObserver(),this._clearLayerTextures.dispose(),this._objectRendererForLayer.dispose(),(e=this._onBeforeBlurTask)==null||e.dispose(),(t=this._onAfterBlurTask)==null||t.dispose(),this.layer.dispose();for(let i=0;i<this._blurX.length;i++)this._blurX[i].dispose(),this._blurY[i].dispose();super.dispose()}}class dte extends zpe{constructor(e,t,i,s){super(e,t,i,new n9(e,i,s,!0),2),this.layer._renderPassId=this._objectRendererForLayer.objectRenderer.renderPassId}}class a9 extends Hu{get task(){return this._frameGraphTask}constructor(e,t,i,s=!1,r=.5,n,o=0){super(e,t,i),this._additionalConstructionParameters=[s,r,n,o],this.registerInput("target",zt.AutoDetect),this.registerInput("layer",zt.AutoDetect,!0),this.registerInput("objectRenderer",zt.Object,!0,new DB("objectRenderer",this,0,hb,"NodeRenderGraphBaseObjectRendererBlock")),this._addDependenciesInput(),this.registerOutput("output",zt.BasedOnInput),this.target.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBufferDepthStencil),this.layer.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer),this.output._typeConnectionSource=this.target,this._frameGraphTask=new dte(this.name,this._frameGraph,this._scene,{ldrMerge:s,mainTextureRatio:r,mainTextureFixedSize:n,mainTextureType:o})}_createTask(e,t,i,s){var o;const r=this.blurKernelSize,n=this.intensity;(o=this._frameGraphTask)==null||o.dispose(),this._frameGraphTask=new dte(this.name,this._frameGraph,this._scene,{ldrMerge:e,mainTextureRatio:t,mainTextureFixedSize:i,mainTextureType:s}),this.blurKernelSize=r,this.intensity=n,this._additionalConstructionParameters=[e,t,i,s]}get ldrMerge(){return this._frameGraphTask.layer.ldrMerge}set ldrMerge(e){const t=this._frameGraphTask.layer._options;this._createTask(e,t.mainTextureRatio,t.mainTextureFixedSize,t.mainTextureType)}get layerTextureRatio(){return this._frameGraphTask.layer._options.mainTextureRatio}set layerTextureRatio(e){const t=this._frameGraphTask.layer._options;this._createTask(t.ldrMerge,e,t.mainTextureFixedSize,t.mainTextureType)}get layerTextureFixedSize(){return this._frameGraphTask.layer._options.mainTextureFixedSize}set layerTextureFixedSize(e){const t=this._frameGraphTask.layer._options;this._createTask(t.ldrMerge,t.mainTextureRatio,e,t.mainTextureType)}get layerTextureType(){return this._frameGraphTask.layer._options.mainTextureType}set layerTextureType(e){const t=this._frameGraphTask.layer._options;this._createTask(t.ldrMerge,t.mainTextureRatio,t.mainTextureFixedSize,e)}get blurKernelSize(){return this._frameGraphTask.layer.blurKernelSize}set blurKernelSize(e){this._frameGraphTask.layer.blurKernelSize=e}get intensity(){return this._frameGraphTask.layer.intensity}set intensity(e){this._frameGraphTask.layer.intensity=e}getClassName(){return"NodeRenderGraphGlowLayerBlock"}get target(){return this._inputs[0]}get layer(){return this._inputs[1]}get objectRenderer(){return this._inputs[2]}get output(){return this._outputs[0]}_buildBlock(e){var t,i,s;super._buildBlock(e),this.output.value=this._frameGraphTask.outputTexture,this._frameGraphTask.targetTexture=(t=this.target.connectedPoint)==null?void 0:t.value,this._frameGraphTask.layerTexture=(i=this.layer.connectedPoint)==null?void 0:i.value,this._frameGraphTask.objectRendererTask=(s=this.objectRenderer.connectedPoint)==null?void 0:s.value}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.blurKernelSize = ${this.blurKernelSize};`),e.push(`${this._codeVariableName}.intensity = ${this.intensity};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.blurKernelSize=this.blurKernelSize,e.intensity=this.intensity,e}_deserialize(e){super._deserialize(e),this.blurKernelSize=e.blurKernelSize,this.intensity=e.intensity}}F([lt("LDR merge",0,"PROPERTIES")],a9.prototype,"ldrMerge",null),F([lt("Layer texture ratio",1,"PROPERTIES")],a9.prototype,"layerTextureRatio",null),F([lt("Layer texture fixed size",1,"PROPERTIES")],a9.prototype,"layerTextureFixedSize",null),F([lt("Layer texture type",8,"PROPERTIES")],a9.prototype,"layerTextureType",null),F([lt("Blur kernel size",2,"PROPERTIES",{min:1,max:256})],a9.prototype,"blurKernelSize",null),F([lt("Intensity",1,"PROPERTIES",{min:0,max:5})],a9.prototype,"intensity",null),ve("BABYLON.NodeRenderGraphGlowLayerBlock",a9);class f3 extends Uy{set blurHorizontalSize(e){this._horizontalBlurPostprocess.kernel=e,this._options.blurHorizontalSize=e}set blurVerticalSize(e){this._verticalBlurPostprocess.kernel=e,this._options.blurVerticalSize=e}get blurHorizontalSize(){return this._horizontalBlurPostprocess.kernel}get blurVerticalSize(){return this._verticalBlurPostprocess.kernel}constructor(e,t,i,s=!1){super(e,t,i!==void 0?!!i.forceGLSL:!1),this.innerGlow=!0,this.outerGlow=!0,this._instanceGlowingMeshStencilReference=f3.GlowingMeshStencilReference++,this._meshes={},this._excludedMeshes={},this._mainObjectRendererRenderPassId=-1,this.neutralColor=f3.NeutralColor,this._options={mainTextureRatio:.5,blurTextureSizeRatio:.5,mainTextureFixedSize:0,blurHorizontalSize:1,blurVerticalSize:1,alphaBlendingMode:2,camera:null,renderingGroupId:-1,forceGLSL:!1,mainTextureType:0,isStroke:!1,...i},this._init(this._options),this._shouldRender=!1,s&&this._createTextureAndPostProcesses()}getClassName(){return"HighlightLayer"}async _importShadersAsync(){this._shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>Ame),Promise.resolve().then(()=>bme),Promise.resolve().then(()=>zH)]):await Promise.all([Promise.resolve().then(()=>hme),Promise.resolve().then(()=>pme),Promise.resolve().then(()=>BH)]),await super._importShadersAsync()}getEffectName(){return f3.EffectName}_numInternalDraws(){return 2}_createMergeEffect(){return this._engine.createEffect("glowMapMerge",[q.PositionKind],["offset"],["textureSampler"],this._options.isStroke?`#define STROKE 
`:void 0,void 0,void 0,void 0,void 0,this._shaderLanguage,this._shadersLoaded?void 0:async()=>{await this._importShadersAsync(),this._shadersLoaded=!0})}_createTextureAndPostProcesses(){this._options.alphaBlendingMode===2?(this._downSamplePostprocess=new sb("HighlightLayerPPP",this._scene.getEngine()),this._horizontalBlurPostprocess=new s_("HighlightLayerHBP",this._scene.getEngine(),new Ue(1,0),this._options.blurHorizontalSize),this._verticalBlurPostprocess=new s_("HighlightLayerVBP",this._scene.getEngine(),new Ue(0,1),this._options.blurVerticalSize),this._postProcesses=[this._downSamplePostprocess,this._horizontalBlurPostprocess,this._verticalBlurPostprocess]):(this._horizontalBlurPostprocess=new jo("HighlightLayerHBP",this._scene.getEngine(),new Ue(1,0),this._options.blurHorizontalSize/2),this._verticalBlurPostprocess=new jo("HighlightLayerVBP",this._scene.getEngine(),new Ue(0,1),this._options.blurVerticalSize/2),this._postProcesses=[this._horizontalBlurPostprocess,this._verticalBlurPostprocess])}needStencil(){return!0}isReady(e,t){const i=e.getMaterial(),s=e.getRenderingMesh();if(!i||!s||!this._meshes)return!1;let r=null;const n=this._meshes[s.uniqueId];return n&&n.glowEmissiveOnly&&i&&(r=i.emissiveTexture),super._isSubMeshReady(e,t,r)}_canRenderMesh(e,t){return!0}_internalCompose(e,t){this.bindTexturesForCompose(e);const i=this._engine;i.cacheStencilState(),i.setStencilOperationPass(7681),i.setStencilOperationFail(7680),i.setStencilOperationDepthFail(7680),i.setStencilMask(0),i.setStencilBuffer(!0),i.setStencilFunctionReference(this._instanceGlowingMeshStencilReference),this.outerGlow&&t===0&&(e.setFloat("offset",0),i.setStencilFunction(517),i.drawElementsType(ft.TriangleFillMode,0,6)),this.innerGlow&&t===1&&(e.setFloat("offset",1),i.setStencilFunction(514),i.drawElementsType(ft.TriangleFillMode,0,6)),i.restoreStencilState()}_setEmissiveTextureAndColor(e,t,i){const s=this._meshes[e.uniqueId];s?this._emissiveTextureAndColor.color.set(s.color.r,s.color.g,s.color.b,1):this._emissiveTextureAndColor.color.set(this.neutralColor.r,this.neutralColor.g,this.neutralColor.b,this.neutralColor.a),s&&s.glowEmissiveOnly&&i?(this._emissiveTextureAndColor.texture=i.emissiveTexture,this._emissiveTextureAndColor.color.set(1,1,1,1)):this._emissiveTextureAndColor.texture=null}shouldRender(){return!!(this._meshes&&super.shouldRender())}_shouldRenderMesh(e){return this._excludedMeshes&&this._excludedMeshes[e.uniqueId]?!1:super.hasMesh(e)}_addCustomEffectDefines(e){e.push("#define HIGHLIGHT")}addExcludedMesh(e){if(!this._excludedMeshes)return;if(!this._excludedMeshes[e.uniqueId]){const i={mesh:e,beforeBind:null,afterRender:null,stencilState:!1};i.beforeBind=e.onBeforeBindObservable.add(s=>{this._mainObjectRendererRenderPassId!==-1&&this._mainObjectRendererRenderPassId!==this._engine.currentRenderPassId||(i.stencilState=s.getEngine().getStencilBuffer(),s.getEngine().setStencilBuffer(!1))}),i.afterRender=e.onAfterRenderObservable.add(s=>{this._mainObjectRendererRenderPassId!==-1&&this._mainObjectRendererRenderPassId!==this._engine.currentRenderPassId||s.getEngine().setStencilBuffer(i.stencilState)}),this._excludedMeshes[e.uniqueId]=i}}removeExcludedMesh(e){if(!this._excludedMeshes)return;const t=this._excludedMeshes[e.uniqueId];t&&(t.beforeBind&&e.onBeforeBindObservable.remove(t.beforeBind),t.afterRender&&e.onAfterRenderObservable.remove(t.afterRender)),this._excludedMeshes[e.uniqueId]=null}hasMesh(e){return!this._meshes||!super.hasMesh(e)?!1:!!this._meshes[e.uniqueId]}addMesh(e,t,i=!1){if(!this._meshes)return;const s=this._meshes[e.uniqueId];s?s.color=t:(this._meshes[e.uniqueId]={mesh:e,color:t,observerHighlight:e.onBeforeBindObservable.add(r=>{this._mainObjectRendererRenderPassId!==-1&&this._mainObjectRendererRenderPassId!==this._engine.currentRenderPassId||this.isEnabled&&(this._excludedMeshes&&this._excludedMeshes[r.uniqueId]?this._defaultStencilReference(r):r.getScene().getEngine().setStencilFunctionReference(this._instanceGlowingMeshStencilReference))}),observerDefault:e.onAfterRenderObservable.add(r=>{this._mainObjectRendererRenderPassId!==-1&&this._mainObjectRendererRenderPassId!==this._engine.currentRenderPassId||this.isEnabled&&this._defaultStencilReference(r)}),glowEmissiveOnly:i},e.onDisposeObservable.add(()=>{this._disposeMesh(e)})),this._shouldRender=!0}removeMesh(e){if(!this._meshes)return;const t=this._meshes[e.uniqueId];t&&(t.observerHighlight&&e.onBeforeBindObservable.remove(t.observerHighlight),t.observerDefault&&e.onAfterRenderObservable.remove(t.observerDefault),delete this._meshes[e.uniqueId]),this._shouldRender=!1;for(const i in this._meshes)if(this._meshes[i]){this._shouldRender=!0;break}}removeAllMeshes(){if(this._meshes){for(const e in this._meshes)if(Object.prototype.hasOwnProperty.call(this._meshes,e)){const t=this._meshes[e];t&&this.removeMesh(t.mesh)}}}_defaultStencilReference(e){e.getScene().getEngine().setStencilFunctionReference(f3.NormalMeshStencilReference)}_disposeMesh(e){this.removeMesh(e),this.removeExcludedMesh(e)}dispose(){if(this._meshes){for(const e in this._meshes){const t=this._meshes[e];t&&t.mesh&&(t.observerHighlight&&t.mesh.onBeforeBindObservable.remove(t.observerHighlight),t.observerDefault&&t.mesh.onAfterRenderObservable.remove(t.observerDefault))}this._meshes=null}if(this._excludedMeshes){for(const e in this._excludedMeshes){const t=this._excludedMeshes[e];t&&(t.beforeBind&&t.mesh.onBeforeBindObservable.remove(t.beforeBind),t.afterRender&&t.mesh.onAfterRenderObservable.remove(t.afterRender))}this._excludedMeshes=null}super.dispose()}}f3.EffectName="HighlightLayer",f3.NeutralColor=new St(0,0,0,0),f3.GlowingMeshStencilReference=2,f3.NormalMeshStencilReference=1;class fte extends zpe{constructor(e,t,i,s){const r=(s==null?void 0:s.alphaBlendingMode)??2;super(e,t,i,new f3(e,i,s,!0),1,r===2,!0,!0)}record(){if(!this.objectRendererTask.depthTexture)throw new Error(`FrameGraphHighlightLayerTask "${this.name}": objectRendererTask must have a depthTexture input`);const e=this._frameGraph.textureManager.getTextureCreationOptions(this.objectRendererTask.depthTexture);if(!e.options.formats||!zT(e.options.formats[0]))throw new Error(`FrameGraphHighlightLayerTask "${this.name}": objectRendererTask depthTexture must have a stencil aspect`);super.record(),this.layer._mainObjectRendererRenderPassId=this.objectRendererTask.objectRenderer.renderPassId}}class jy extends Hu{get task(){return this._frameGraphTask}constructor(e,t,i,s=.5,r,n=.5,o=!1,l=0){super(e,t,i),this._additionalConstructionParameters=[s,r,n,o,l],this.registerInput("target",zt.AutoDetect),this.registerInput("layer",zt.AutoDetect,!0),this.registerInput("objectRenderer",zt.Object,!0,new DB("objectRenderer",this,0,hb,"NodeRenderGraphBaseObjectRendererBlock")),this._addDependenciesInput(),this.registerOutput("output",zt.BasedOnInput),this.target.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBufferDepthStencil),this.layer.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer),this.output._typeConnectionSource=this.target,this._frameGraphTask=new fte(this.name,this._frameGraph,this._scene,{mainTextureRatio:s,mainTextureFixedSize:r,blurTextureSizeRatio:n,isStroke:o,mainTextureType:l})}_createTask(e,t,i,s,r){var l;const n=this.blurHorizontalSize,o=this.blurVerticalSize;(l=this._frameGraphTask)==null||l.dispose(),this._frameGraphTask=new fte(this.name,this._frameGraph,this._scene,{mainTextureRatio:e,mainTextureFixedSize:t,blurTextureSizeRatio:i,isStroke:s,mainTextureType:r}),this.blurHorizontalSize=n,this.blurVerticalSize=o,this._additionalConstructionParameters=[e,t,i,s,r]}get layerTextureRatio(){return this._frameGraphTask.layer._options.mainTextureRatio}set layerTextureRatio(e){const t=this._frameGraphTask.layer._options;this._createTask(e,t.mainTextureFixedSize,t.blurTextureSizeRatio,t.isStroke,t.mainTextureType)}get layerTextureFixedSize(){return this._frameGraphTask.layer._options.mainTextureFixedSize}set layerTextureFixedSize(e){const t=this._frameGraphTask.layer._options;this._createTask(t.mainTextureRatio,e,t.blurTextureSizeRatio,t.isStroke,t.mainTextureType)}get blurTextureSizeRatio(){return this._frameGraphTask.layer._options.blurTextureSizeRatio}set blurTextureSizeRatio(e){const t=this._frameGraphTask.layer._options;this._createTask(t.mainTextureRatio,t.mainTextureFixedSize,e,t.isStroke,t.mainTextureType)}get isStroke(){return this._frameGraphTask.layer._options.isStroke}set isStroke(e){const t=this._frameGraphTask.layer._options;this._createTask(t.mainTextureRatio,t.mainTextureFixedSize,t.blurTextureSizeRatio,e,t.mainTextureType)}get layerTextureType(){return this._frameGraphTask.layer._options.mainTextureType}set layerTextureType(e){const t=this._frameGraphTask.layer._options;this._createTask(t.mainTextureRatio,t.mainTextureFixedSize,t.blurTextureSizeRatio,t.isStroke,e)}get blurHorizontalSize(){return this._frameGraphTask.layer.blurHorizontalSize}set blurHorizontalSize(e){this._frameGraphTask.layer.blurHorizontalSize=e}get blurVerticalSize(){return this._frameGraphTask.layer.blurVerticalSize}set blurVerticalSize(e){this._frameGraphTask.layer.blurVerticalSize=e}getClassName(){return"NodeRenderGraphHighlightLayerBlock"}get target(){return this._inputs[0]}get layer(){return this._inputs[1]}get objectRenderer(){return this._inputs[2]}get output(){return this._outputs[0]}_buildBlock(e){var t,i,s;super._buildBlock(e),this.output.value=this._frameGraphTask.outputTexture,this._frameGraphTask.targetTexture=(t=this.target.connectedPoint)==null?void 0:t.value,this._frameGraphTask.layerTexture=(i=this.layer.connectedPoint)==null?void 0:i.value,this._frameGraphTask.objectRendererTask=(s=this.objectRenderer.connectedPoint)==null?void 0:s.value}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.blurHorizontalSize = ${this.blurHorizontalSize};`),e.push(`${this._codeVariableName}.blurVerticalSize = ${this.blurVerticalSize};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.blurHorizontalSize=this.blurHorizontalSize,e.blurVerticalSize=this.blurVerticalSize,e}_deserialize(e){super._deserialize(e),this.blurHorizontalSize=e.blurHorizontalSize,this.blurVerticalSize=e.blurVerticalSize}}F([lt("Layer texture ratio",1,"PROPERTIES")],jy.prototype,"layerTextureRatio",null),F([lt("Layer texture fixed size",1,"PROPERTIES")],jy.prototype,"layerTextureFixedSize",null),F([lt("Blur texture size ratio",1,"PROPERTIES")],jy.prototype,"blurTextureSizeRatio",null),F([lt("Is stroke",0,"PROPERTIES")],jy.prototype,"isStroke",null),F([lt("Layer texture type",8,"PROPERTIES")],jy.prototype,"layerTextureType",null),F([lt("Blur horizontal size",1,"PROPERTIES",{min:0,max:4})],jy.prototype,"blurHorizontalSize",null),F([lt("Blur vertical size",1,"PROPERTIES",{min:0,max:4})],jy.prototype,"blurVerticalSize",null),ve("BABYLON.NodeRenderGraphHighlightLayerBlock",jy);class Fpe extends L0{constructor(e,t,i){super(e,t,i||new e5(e,t.engine))}record(e=!1){if(this.sourceTexture===void 0||this.leftTexture===void 0)throw new Error(`FrameGraphAnaglyphTask "${this.name}": sourceTexture and leftTexture are required`);const t=super.record(e,void 0,i=>{i.bindTextureHandle(this._postProcessDrawWrapper.effect,"leftSampler",this.leftTexture)});return t.addDependencies(this.leftTexture),t}}class r_ extends Hu{constructor(e,t,i){super(e,t,i),this.registerInput("source",zt.AutoDetect),this.registerInput("target",zt.AutoDetect,!0),this.source.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer),this.target.addExcludedConnectionPointFromAllowedTypes(zt.TextureAll)}_finalizeInputOutputRegistering(){this._addDependenciesInput(),this.registerOutput("output",zt.BasedOnInput),this.output._typeConnectionSource=()=>this.target.isConnected?this.target:this.source}get sourceSamplingMode(){return this._frameGraphTask.sourceSamplingMode}set sourceSamplingMode(e){this._frameGraphTask.sourceSamplingMode=e}getClassName(){return"NodeRenderGraphBasePostProcessBlock"}get source(){return this._inputs[0]}get target(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){var t,i;super._buildBlock(e),this.output.value=this._frameGraphTask.outputTexture,this._frameGraphTask.sourceTexture=(t=this.source.connectedPoint)==null?void 0:t.value,this._frameGraphTask.targetTexture=(i=this.target.connectedPoint)==null?void 0:i.value}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.sourceSamplingMode = ${this.sourceSamplingMode};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.sourceSamplingMode=this.sourceSamplingMode,e}_deserialize(e){super._deserialize(e),this.sourceSamplingMode=e.sourceSamplingMode}}F([lt("Source sampling mode",6,"PROPERTIES")],r_.prototype,"sourceSamplingMode",null);class kpe extends r_{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this.registerInput("leftTexture",zt.AutoDetect),this.leftTexture.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer),this._finalizeInputOutputRegistering(),this._frameGraphTask=new Fpe(this.name,t,new e5(e,i.getEngine()))}getClassName(){return"NodeRenderGraphAnaglyphPostProcessBlock"}get leftTexture(){return this._inputs[2]}_buildBlock(e){var t;super._buildBlock(e),this._frameGraphTask.leftTexture=(t=this.leftTexture.connectedPoint)==null?void 0:t.value}}ve("BABYLON.NodeRenderGraphAnaglyphPostProcessBlock",kpe);class s5 extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>GXe))):t.push(Promise.resolve().then(()=>VXe))}constructor(e,t=null,i){super({...i,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:s5.FragmentUrl,uniforms:s5.Uniforms}),this.degree=1}bind(){super.bind(),this._drawWrapper.effect.setFloat("degree",this.degree)}}s5.FragmentUrl="blackAndWhite",s5.Uniforms=["degree"];class Upe extends L0{constructor(e,t,i){super(e,t,i||new s5(e,t.engine))}}class pte extends r_{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this._finalizeInputOutputRegistering(),this._frameGraphTask=new Upe(this.name,t,new s5(e,i.getEngine()))}get degree(){return this._frameGraphTask.postProcess.degree}set degree(e){this._frameGraphTask.postProcess.degree=e}getClassName(){return"NodeRenderGraphBlackAndWhitePostProcessBlock"}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.degree = ${this.degree};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.degree=this.degree,e}_deserialize(e){super._deserialize(e),this.degree=e.degree}}F([lt("Degree",1,"PROPERTIES",{min:0,max:1})],pte.prototype,"degree",null),ve("BABYLON.NodeRenderGraphBlackAndWhitePostProcessBlock",pte);class T4 extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>wXe))):t.push(Promise.resolve().then(()=>NXe))}constructor(e,t=null,i){super({...i,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:T4.FragmentUrl,uniforms:T4.Uniforms,samplers:T4.Samplers}),this.weight=1}bind(){super.bind(),this._drawWrapper.effect.setFloat("bloomWeight",this.weight)}}T4.FragmentUrl="bloomMerge",T4.Uniforms=["bloomWeight"],T4.Samplers=["bloomBlur"];class Yze extends L0{constructor(e,t,i){super(e,t,i||new T4(e,t.engine))}record(e=!1){if(this.sourceTexture===void 0||this.blurTexture===void 0)throw new Error(`FrameGraphBloomMergeTask "${this.name}": sourceTexture and blurTexture are required`);const t=super.record(e,void 0,i=>{i.bindTextureHandle(this._postProcessDrawWrapper.effect,"bloomBlur",this.blurTexture)});return t.addDependencies(this.blurTexture),t}}class n_ extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>zXe))):t.push(Promise.resolve().then(()=>BXe))}constructor(e,t=null,i){super({...i,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:n_.FragmentUrl,uniforms:n_.Uniforms}),this.threshold=.9,this._exposure=1}bind(){super.bind();const e=this._drawWrapper.effect;e.setFloat("threshold",Math.pow(this.threshold,lP)),e.setFloat("exposure",this._exposure)}}n_.FragmentUrl="extractHighlights",n_.Uniforms=["threshold","exposure"];class mte{get threshold(){return this._downscale.threshold}set threshold(e){this._downscale.threshold=e}get weight(){return this._merge.weight}set weight(e){this._merge.weight=e}get kernel(){return this._blurX.kernel/this.scale}set kernel(e){this._blurX.kernel=e*this.scale,this._blurY.kernel=e*this.scale}constructor(e,t,i,s=!1){this.scale=i,this._downscale=new n_(e+"_downscale",t,{blockCompilation:s}),this._blurX=new jo(e+"_blurX",t,new Ue(1,0),10,{blockCompilation:s}),this._blurY=new jo(e+"_blurY",t,new Ue(0,1),10,{blockCompilation:s}),this._merge=new T4(e+"_merge",t,{blockCompilation:s})}isReady(){return this._downscale.isReady()&&this._blurX.isReady()&&this._blurY.isReady()&&this._merge.isReady()}}class gte extends L0{constructor(e,t,i){super(e,t,i||new n_(e,t.engine))}}class _te extends q1{get name(){return this._name}set name(e){this._name=e,this._downscale&&(this._downscale.name=`${e} Downscale`),this._blurX&&(this._blurX.name=`${e} Blur X`),this._blurY&&(this._blurY.name=`${e} Blur Y`),this._merge&&(this._merge.name=`${e} Merge`)}constructor(e,t,i,s,r,n=!1,o=.5){if(super(e,t),this.sourceSamplingMode=2,this.hdr=n,this._defaultPipelineTextureType=0,n){const l=t.engine.getCaps();l.textureHalfFloatRender?this._defaultPipelineTextureType=2:l.textureFloatRender&&(this._defaultPipelineTextureType=1)}this.bloom=new mte(e,t.engine,o),this.bloom.threshold=r,this.bloom.kernel=s,this.bloom.weight=i,this._downscale=new gte(`${e} Downscale`,this._frameGraph,this.bloom._downscale),this._blurX=new EL(`${e} Blur X`,this._frameGraph,this.bloom._blurX),this._blurY=new EL(`${e} Blur Y`,this._frameGraph,this.bloom._blurY),this._merge=new Yze(`${e} Merge`,this._frameGraph,this.bloom._merge),this.onTexturesAllocatedObservable.add(l=>{this._downscale.onTexturesAllocatedObservable.notifyObservers(l),this._blurX.onTexturesAllocatedObservable.notifyObservers(l),this._blurY.onTexturesAllocatedObservable.notifyObservers(l),this._merge.onTexturesAllocatedObservable.notifyObservers(l)}),this.outputTexture=this._frameGraph.textureManager.createDanglingHandle()}isReady(){return this.bloom.isReady()}record(){if(this.sourceTexture===void 0)throw new Error("FrameGraphBloomTask: sourceTexture is required");const e=this._frameGraph.textureManager.getTextureDescription(this.sourceTexture),t={size:{width:Math.floor(e.size.width*this.bloom.scale)||1,height:Math.floor(e.size.height*this.bloom.scale)||1},options:{createMipMaps:!1,types:[this._defaultPipelineTextureType],formats:[5],samples:1,useSRGBBuffers:[!1],labels:[""]},sizeIsPercentage:!1},i=this._frameGraph.textureManager.createRenderTargetTexture(this._downscale.name,t);this._downscale.sourceTexture=this.sourceTexture,this._downscale.sourceSamplingMode=2,this._downscale.targetTexture=i,this._downscale.record(!0);const s=this._frameGraph.textureManager.createRenderTargetTexture(this._blurX.name,t);this._blurX.sourceTexture=i,this._blurX.sourceSamplingMode=2,this._blurX.targetTexture=s,this._blurX.record(!0);const r=this._frameGraph.textureManager.createRenderTargetTexture(this._blurY.name,t);this._blurY.sourceTexture=s,this._blurY.sourceSamplingMode=2,this._blurY.targetTexture=r,this._blurY.record(!0);const n=this._frameGraph.textureManager.getTextureCreationOptions(this.sourceTexture);this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,this.targetTexture,this._merge.name,n),this._merge.sourceTexture=this.sourceTexture,this._merge.sourceSamplingMode=this.sourceSamplingMode,this._merge.blurTexture=r,this._merge.targetTexture=this.outputTexture,this._merge.record(!0);const o=this._frameGraph.addRenderPass(this.name+"_disabled",!0);o.addDependencies(this.sourceTexture),o.setRenderTarget(this.outputTexture),o.setExecuteFunc(l=>{l.copyTexture(this.sourceTexture)})}dispose(){this._downscale.dispose(),this._blurX.dispose(),this._blurY.dispose(),this._merge.dispose(),super.dispose()}}class TL extends r_{get task(){return this._frameGraphTask}constructor(e,t,i,s=!1,r=.5){super(e,t,i),this._additionalConstructionParameters=[s,r],this._finalizeInputOutputRegistering(),this._frameGraphTask=new _te(this.name,t,.75,64,.2,s,r)}_createTask(e,t){const i=this._frameGraphTask.sourceSamplingMode,s=this._frameGraphTask.bloom.threshold,r=this._frameGraphTask.bloom.weight,n=this._frameGraphTask.bloom.kernel;this._frameGraphTask.dispose(),this._frameGraphTask=new _te(this.name,this._frameGraph,r,n,s,t,e),this._frameGraphTask.sourceSamplingMode=i,this._additionalConstructionParameters=[t,e]}get bloomScale(){return this._frameGraphTask.bloom.scale}set bloomScale(e){this._createTask(e,this._frameGraphTask.hdr)}get hdr(){return this._frameGraphTask.hdr}set hdr(e){this._createTask(this._frameGraphTask.bloom.scale,e)}get threshold(){return this._frameGraphTask.bloom.threshold}set threshold(e){this._frameGraphTask.bloom.threshold=e}get weight(){return this._frameGraphTask.bloom.weight}set weight(e){this._frameGraphTask.bloom.weight=e}get kernel(){return this._frameGraphTask.bloom.kernel}set kernel(e){this._frameGraphTask.bloom.kernel=e}getClassName(){return"NodeRenderGraphBloomPostProcessBlock"}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.threshold = ${this.threshold};`),e.push(`${this._codeVariableName}.weight = ${this.weight};`),e.push(`${this._codeVariableName}.kernel = ${this.kernel};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.threshold=this.threshold,e.weight=this.weight,e.kernel=this.kernel,e}_deserialize(e){super._deserialize(e),this.threshold=e.threshold,this.weight=e.weight,this.kernel=e.kernel}}F([lt("Bloom scale",1,"PROPERTIES")],TL.prototype,"bloomScale",null),F([lt("HDR",0,"PROPERTIES")],TL.prototype,"hdr",null),F([lt("Threshold",1,"PROPERTIES",{min:0,max:2})],TL.prototype,"threshold",null),F([lt("Weight",1,"PROPERTIES",{min:0,max:3})],TL.prototype,"weight",null),F([lt("Kernel",2,"PROPERTIES",{min:1,max:128})],TL.prototype,"kernel",null),ve("BABYLON.NodeRenderGraphBloomPostProcessBlock",TL);class MH extends r_{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this._finalizeInputOutputRegistering(),this._frameGraphTask=new EL(this.name,t,new jo(e,i.getEngine(),new Ue(1,0),32))}get direction(){return this._frameGraphTask.postProcess.direction}set direction(e){this._frameGraphTask.postProcess.direction=e}get kernel(){return this._frameGraphTask.postProcess.kernel}set kernel(e){this._frameGraphTask.postProcess.kernel=e}getClassName(){return"NodeRenderGraphBlurPostProcessBlock"}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.direction = new BABYLON.Vector2(${this.direction.x}, ${this.direction.y});`),e.push(`${this._codeVariableName}.kernel = ${this.kernel};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.direction=this.direction.asArray(),e.kernel=this.kernel,e}_deserialize(e){super._deserialize(e),this.direction.fromArray(e.direction),this.kernel=e.kernel}}F([lt("Direction",3,"PROPERTIES")],MH.prototype,"direction",null),F([lt("Kernel",2,"PROPERTIES",{min:1,max:256})],MH.prototype,"kernel",null),ve("BABYLON.NodeRenderGraphBlurPostProcessBlock",MH);class r5 extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>IXe))):t.push(Promise.resolve().then(()=>wYe))}constructor(e,t=null,i){super({...i,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:r5.FragmentUrl,uniforms:r5.Uniforms}),this.aberrationAmount=30,this.radialIntensity=0,this.direction=new Ue(.707,.707),this.centerPosition=new Ue(.5,.5)}bind(){super.bind();const e=this._drawWrapper.effect;e.setFloat("chromatic_aberration",this.aberrationAmount),e.setFloat("screen_width",this.screenWidth),e.setFloat("screen_height",this.screenHeight),e.setFloat("radialIntensity",this.radialIntensity),e.setFloat2("direction",this.direction.x,this.direction.y),e.setFloat2("centerPosition",this.centerPosition.x,this.centerPosition.y)}}r5.FragmentUrl="chromaticAberration",r5.Uniforms=["chromatic_aberration","screen_width","screen_height","direction","radialIntensity","centerPosition"];class jpe extends L0{constructor(e,t,i){super(e,t,i||new r5(e,t.engine))}record(e=!1,t,i){const s=super.record(e,t,i);return this.postProcess.screenWidth=this._sourceWidth,this.postProcess.screenHeight=this._sourceHeight,s}}class NB extends r_{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this._finalizeInputOutputRegistering(),this._frameGraphTask=new jpe(this.name,t,new r5(e,i.getEngine()))}get aberrationAmount(){return this._frameGraphTask.postProcess.aberrationAmount}set aberrationAmount(e){this._frameGraphTask.postProcess.aberrationAmount=e}get radialIntensity(){return this._frameGraphTask.postProcess.radialIntensity}set radialIntensity(e){this._frameGraphTask.postProcess.radialIntensity=e}get direction(){return this._frameGraphTask.postProcess.direction}set direction(e){this._frameGraphTask.postProcess.direction=e}getClassName(){return"NodeRenderGraphChromaticAberrationPostProcessBlock"}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.aberrationAmount = ${this.aberrationAmount};`),e.push(`${this._codeVariableName}.radialIntensity = ${this.radialIntensity};`),e.push(`${this._codeVariableName}.direction = new BABYLON.Vector2(${this.direction.x}, ${this.direction.y});`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.aberrationAmount=this.aberrationAmount,e.radialIntensity=this.radialIntensity,e.direction=this.direction.asArray(),e}_deserialize(e){super._deserialize(e),this.aberrationAmount=e.aberrationAmount,this.radialIntensity=e.radialIntensity,this.direction=Ue.FromArray(e.direction)}}F([lt("Amount",1,"PROPERTIES",{min:-1e3,max:1e3})],NB.prototype,"aberrationAmount",null),F([lt("Radial intensity",1,"PROPERTIES",{min:.1,max:5})],NB.prototype,"radialIntensity",null),F([lt("Direction",3,"PROPERTIES")],NB.prototype,"direction",null),ve("BABYLON.NodeRenderGraphChromaticAberrationPostProcessBlock",NB);class t1 extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>DXe))):t.push(Promise.resolve().then(()=>RXe))}constructor(e,t=null,i){super({...i,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:t1.FragmentUrl,uniforms:t1.Uniforms,samplers:t1.Samplers,defines:i!=null&&i.depthNotNormalized?t1.DefinesDepthNotNormalized:void 0}),this.lensSize=50,this.fStop=1.4,this.focusDistance=2e3,this.focalLength=50}bind(){super.bind();const e=this.options,t=this._drawWrapper.effect;e.depthNotNormalized||t.setFloat2("cameraMinMaxZ",this.camera.minZ,this.camera.maxZ-this.camera.minZ);const s=this.lensSize/this.fStop*this.focalLength/(this.focusDistance-this.focalLength);t.setFloat("focusDistance",this.focusDistance),t.setFloat("cocPrecalculation",s)}}t1.FragmentUrl="circleOfConfusion",t1.Uniforms=["cameraMinMaxZ","focusDistance","cocPrecalculation"],t1.Samplers=["depthSampler"],t1.DefinesDepthNotNormalized="#define COC_DEPTH_NOT_NORMALIZED";class vte extends L0{constructor(e,t,i){super(e,t,i||new t1(e,t.engine)),this.depthSamplingMode=2,this.onTexturesAllocatedObservable.add(s=>{s.setTextureSamplingMode(this.depthTexture,this.depthSamplingMode)})}record(e=!1){if(this.sourceTexture===void 0||this.depthTexture===void 0||this.camera===void 0)throw new Error(`FrameGraphCircleOfConfusionTask "${this.name}": sourceTexture, depthTexture and camera are required`);const t=super.record(e,void 0,i=>{this.postProcess.camera=this.camera,i.bindTextureHandle(this._postProcessDrawWrapper.effect,"depthSampler",this.depthTexture)});return t.addDependencies(this.depthTexture),t}}class LL extends r_{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this.registerInput("geomViewDepth",zt.TextureViewDepth),this.registerInput("camera",zt.Camera),this._finalizeInputOutputRegistering(),this._frameGraphTask=new vte(this.name,t,new t1(e,i.getEngine(),{depthNotNormalized:!0}))}get depthSamplingMode(){return this._frameGraphTask.depthSamplingMode}set depthSamplingMode(e){this._frameGraphTask.depthSamplingMode=e}get lensSize(){return this._frameGraphTask.postProcess.lensSize}set lensSize(e){this._frameGraphTask.postProcess.lensSize=e}get fStop(){return this._frameGraphTask.postProcess.fStop}set fStop(e){this._frameGraphTask.postProcess.fStop=e}get focusDistance(){return this._frameGraphTask.postProcess.focusDistance}set focusDistance(e){this._frameGraphTask.postProcess.focusDistance=e}get focalLength(){return this._frameGraphTask.postProcess.focalLength}set focalLength(e){this._frameGraphTask.postProcess.focalLength=e}getClassName(){return"NodeRenderGraphCircleOfConfusionPostProcessBlock"}get geomViewDepth(){return this._inputs[2]}get camera(){return this._inputs[3]}_buildBlock(e){var t,i;super._buildBlock(e),this._frameGraphTask.depthTexture=(t=this.geomViewDepth.connectedPoint)==null?void 0:t.value,this._frameGraphTask.camera=(i=this.camera.connectedPoint)==null?void 0:i.value}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.lensSize = ${this.lensSize};`),e.push(`${this._codeVariableName}.fStop = ${this.fStop};`),e.push(`${this._codeVariableName}.focusDistance = ${this.focusDistance};`),e.push(`${this._codeVariableName}.focalLength = ${this.focalLength};`),e.push(`${this._codeVariableName}.depthSamplingMode = ${this.depthSamplingMode};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.lensSize=this.lensSize,e.fStop=this.fStop,e.focusDistance=this.focusDistance,e.focalLength=this.focalLength,e.depthSamplingMode=this.depthSamplingMode,e}_deserialize(e){super._deserialize(e),this.lensSize=e.lensSize,this.fStop=e.fStop,this.focusDistance=e.focusDistance,this.focalLength=e.focalLength,this.depthSamplingMode=e.depthSamplingMode}}F([lt("Depth sampling mode",6,"PROPERTIES")],LL.prototype,"depthSamplingMode",null),F([lt("Lens size",1,"PROPERTIES")],LL.prototype,"lensSize",null),F([lt("F-Stop",1,"PROPERTIES")],LL.prototype,"fStop",null),F([lt("Focus distance",1,"PROPERTIES")],LL.prototype,"focusDistance",null),F([lt("Focal length",1,"PROPERTIES")],LL.prototype,"focalLength",null),ve("BABYLON.NodeRenderGraphCircleOfConfusionPostProcessBlock",LL);class db extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>OXe))):t.push(Promise.resolve().then(()=>PXe))}constructor(e,t=null,i){super({...i,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:db.FragmentUrl,samplers:db.Samplers})}}db.FragmentUrl="depthOfFieldMerge",db.Samplers=["circleOfConfusionSampler","blurStep0","blurStep1","blurStep2"];class Xze extends L0{constructor(e,t,i){super(e,t,i||new db(e,t.engine)),this.blurSteps=[],this.onTexturesAllocatedObservable.add(s=>{s.setTextureSamplingMode(this.blurSteps[this.blurSteps.length-1],2)})}record(e=!1){if(this.sourceTexture===void 0||this.circleOfConfusionTexture===void 0||this.blurSteps.length===0)throw new Error(`FrameGraphBloomMergeTask "${this.name}": sourceTexture, circleOfConfusionTexture and blurSteps are required`);this.postProcess.updateEffect("#define BLUR_LEVEL "+(this.blurSteps.length-1)+`
`);const t=super.record(e,void 0,i=>{i.bindTextureHandle(this._postProcessDrawWrapper.effect,"circleOfConfusionSampler",this.circleOfConfusionTexture),this.blurSteps.forEach((s,r)=>{i.bindTextureHandle(this._postProcessDrawWrapper.effect,"blurStep"+(this.blurSteps.length-r-1),s)})});return t.addDependencies(this.circleOfConfusionTexture),t.addDependencies(this.blurSteps),t}}class Zze extends jo{constructor(e,t=null,i,s,r){super(e,t,i,s,{...r,defines:`#define DOF 1
`})}}class Vpe extends EL{constructor(e,t,i){super(e,t,i||new Zze(e,t.engine,new Ue(1,0),10)),this.circleOfConfusionSamplingMode=2,this.onTexturesAllocatedObservable.add(s=>{s.setTextureSamplingMode(this.circleOfConfusionTexture,this.circleOfConfusionSamplingMode)})}record(e=!1){if(this.sourceTexture===void 0||this.circleOfConfusionTexture===void 0)throw new Error(`FrameGraphDepthOfFieldBlurTask "${this.name}": sourceTexture and circleOfConfusionTexture are required`);const t=super.record(e,void 0,i=>{i.bindTextureHandle(this._postProcessDrawWrapper.effect,"circleOfConfusionSampler",this.circleOfConfusionTexture)});return t.addDependencies(this.circleOfConfusionTexture),t}}var Ate;(function(a){a[a.Low=0]="Low",a[a.Medium=1]="Medium",a[a.High=2]="High"})(Ate||(Ate={}));class Cte{set focalLength(e){this._circleOfConfusion.focalLength=e}get focalLength(){return this._circleOfConfusion.focalLength}set fStop(e){this._circleOfConfusion.fStop=e}get fStop(){return this._circleOfConfusion.fStop}set focusDistance(e){this._circleOfConfusion.focusDistance=e}get focusDistance(){return this._circleOfConfusion.focusDistance}set lensSize(e){this._circleOfConfusion.lensSize=e}get lensSize(){return this._circleOfConfusion.lensSize}constructor(e,t,i=0,s=!1,r=!1){this._depthOfFieldBlurX=[],this._depthOfFieldBlurY=[],this._circleOfConfusion=new t1(e,t,{depthNotNormalized:s,blockCompilation:r}),this.blurLevel=i;let n=1,o=15;switch(i){case 2:{n=3,o=51;break}case 1:{n=2,o=31;break}default:{o=15,n=1;break}}const l=o/Math.pow(2,n-1);let c=1;for(let u=0;u<n;u++)this._depthOfFieldBlurY.push([new jo(e,t,new Ue(0,1),l,{blockCompilation:r}),c]),c=.75/Math.pow(2,u),this._depthOfFieldBlurX.push([new jo(e,t,new Ue(1,0),l,{blockCompilation:r}),c]);this._dofMerge=new db(e,t,{blockCompilation:r})}isReady(){let e=this._circleOfConfusion.isReady()&&this._dofMerge.isReady();for(let t=0;t<this._depthOfFieldBlurX.length;t++)e=e&&this._depthOfFieldBlurX[t][0].isReady()&&this._depthOfFieldBlurY[t][0].isReady();return e}}class xte extends q1{get name(){return this._name}set name(e){if(this._name=e,this._circleOfConfusion&&(this._circleOfConfusion.name=`${e} Circle of Confusion`),this._blurX)for(let t=0;t<this._blurX.length;t++)this._blurX[t].name=`${e} Blur X${t}`,this._blurY[t].name=`${e} Blur Y${t}`;this._merge&&(this._merge.name=`${e} Merge`)}constructor(e,t,i=0,s=!1){if(super(e,t),this.sourceSamplingMode=2,this.depthSamplingMode=2,this._blurX=[],this._blurY=[],this._engine=t.engine,this.hdr=s,this._defaultPipelineTextureType=0,s){const n=t.engine.getCaps();n.textureHalfFloatRender?this._defaultPipelineTextureType=2:n.textureFloatRender&&(this._defaultPipelineTextureType=1)}this.depthOfField=new Cte(e,t.engine,i,!0),this._circleOfConfusion=new vte(`${e} Circle of Confusion`,this._frameGraph,this.depthOfField._circleOfConfusion);const r=this.depthOfField._depthOfFieldBlurX.length;for(let n=0;n<r;n++)this._blurX.push(new Vpe(`${e} Blur X${n}`,this._frameGraph,this.depthOfField._depthOfFieldBlurX[n][0])),this._blurY.push(new Vpe(`${e} Blur Y${n}`,this._frameGraph,this.depthOfField._depthOfFieldBlurY[n][0]));this._merge=new Xze(`${e} Merge`,this._frameGraph,this.depthOfField._dofMerge),this.onTexturesAllocatedObservable.add(n=>{this._circleOfConfusion.onTexturesAllocatedObservable.notifyObservers(n);for(let o=0;o<r;o++)this._blurX[o].onTexturesAllocatedObservable.notifyObservers(n),this._blurY[o].onTexturesAllocatedObservable.notifyObservers(n);this._merge.onTexturesAllocatedObservable.notifyObservers(n)}),this.outputTexture=this._frameGraph.textureManager.createDanglingHandle()}isReady(){return this.depthOfField.isReady()}record(){if(this.sourceTexture===void 0||this.depthTexture===void 0||this.camera===void 0)throw new Error("FrameGraphDepthOfFieldTask: sourceTexture, depthTexture and camera are required");const e=this._frameGraph.textureManager.getTextureDescription(this.sourceTexture),t={width:e.size.width,height:e.size.height},i=this._engine.isWebGPU||this._engine.version>1?6:5,s={size:t,options:{createMipMaps:!1,types:[this._defaultPipelineTextureType],formats:[i],samples:1,useSRGBBuffers:[!1],labels:[""]},sizeIsPercentage:!1},r=this._frameGraph.textureManager.createRenderTargetTexture(this._circleOfConfusion.name,s);this._circleOfConfusion.sourceTexture=this.sourceTexture,this._circleOfConfusion.depthTexture=this.depthTexture,this._circleOfConfusion.depthSamplingMode=this.depthSamplingMode,this._circleOfConfusion.camera=this.camera,this._circleOfConfusion.targetTexture=r,this._circleOfConfusion.record(!0),s.options.formats=[5];const n=[];for(let c=0;c<this._blurX.length;c++){const u=this.depthOfField._depthOfFieldBlurX[c][1];t.width=Math.floor(e.size.width*u)||1,t.height=Math.floor(e.size.height*u)||1,s.options.labels[0]="step "+(c+1);const f=this._frameGraph.textureManager.createRenderTargetTexture(this._blurY[c].name,s);this._blurY[c].sourceTexture=c===0?this.sourceTexture:this._blurX[c-1].outputTexture,this._blurY[c].sourceSamplingMode=2,this._blurY[c].circleOfConfusionTexture=r,this._blurY[c].targetTexture=f,this._blurY[c].record(!0);const p=this._frameGraph.textureManager.createRenderTargetTexture(this._blurX[c].name,s);this._blurX[c].sourceTexture=this._blurY[c].outputTexture,this._blurX[c].sourceSamplingMode=2,this._blurX[c].circleOfConfusionTexture=r,this._blurX[c].targetTexture=p,this._blurX[c].record(!0),n.push(p)}const o=this._frameGraph.textureManager.getTextureCreationOptions(this.sourceTexture);this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,this.targetTexture,this._merge.name,o),this._merge.sourceTexture=this.sourceTexture,this._merge.sourceSamplingMode=this.sourceSamplingMode,this._merge.circleOfConfusionTexture=r,this._merge.blurSteps=n,this._merge.targetTexture=this.outputTexture,this._merge.record(!0);const l=this._frameGraph.addRenderPass(this.name+"_disabled",!0);l.addDependencies(this.sourceTexture),l.setRenderTarget(this.outputTexture),l.setExecuteFunc(c=>{c.copyTexture(this.sourceTexture)})}dispose(){this._circleOfConfusion.dispose();for(let e=0;e<this._blurX.length;e++)this._blurX[e].dispose(),this._blurY[e].dispose();this._merge.dispose(),super.dispose()}}class Vy extends r_{get task(){return this._frameGraphTask}constructor(e,t,i,s=0,r=!1){super(e,t,i),this._additionalConstructionParameters=[s,r],this.registerInput("geomViewDepth",zt.TextureViewDepth),this.registerInput("camera",zt.Camera),this._finalizeInputOutputRegistering(),this._frameGraphTask=new xte(this.name,t,s,r)}_createTask(e,t){const i=this._frameGraphTask.sourceSamplingMode,s=this._frameGraphTask.depthSamplingMode,r=this._frameGraphTask.depthOfField.focalLength,n=this._frameGraphTask.depthOfField.fStop,o=this._frameGraphTask.depthOfField.focusDistance,l=this._frameGraphTask.depthOfField.lensSize;this._frameGraphTask.dispose(),this._frameGraphTask=new xte(this.name,this._frameGraph,e,t),this._frameGraphTask.sourceSamplingMode=i,this._frameGraphTask.depthSamplingMode=s,this._frameGraphTask.depthOfField.focalLength=r,this._frameGraphTask.depthOfField.fStop=n,this._frameGraphTask.depthOfField.focusDistance=o,this._frameGraphTask.depthOfField.lensSize=l,this._additionalConstructionParameters=[e,t]}get blurLevel(){return this._frameGraphTask.depthOfField.blurLevel}set blurLevel(e){this._createTask(e,this._frameGraphTask.hdr)}get hdr(){return this._frameGraphTask.hdr}set hdr(e){this._createTask(this._frameGraphTask.depthOfField.blurLevel,e)}get depthSamplingMode(){return this._frameGraphTask.depthSamplingMode}set depthSamplingMode(e){this._frameGraphTask.depthSamplingMode=e}get focalLength(){return this._frameGraphTask.depthOfField.focalLength}set focalLength(e){this._frameGraphTask.depthOfField.focalLength=e}get fStop(){return this._frameGraphTask.depthOfField.fStop}set fStop(e){this._frameGraphTask.depthOfField.fStop=e}get focusDistance(){return this._frameGraphTask.depthOfField.focusDistance}set focusDistance(e){this._frameGraphTask.depthOfField.focusDistance=e}get lensSize(){return this._frameGraphTask.depthOfField.lensSize}set lensSize(e){this._frameGraphTask.depthOfField.lensSize=e}getClassName(){return"NodeRenderGraphDepthOfFieldPostProcessBlock"}get geomViewDepth(){return this._inputs[2]}get camera(){return this._inputs[3]}_buildBlock(e){var t,i;super._buildBlock(e),this.output.value=this._frameGraphTask.outputTexture,this._frameGraphTask.depthTexture=(t=this.geomViewDepth.connectedPoint)==null?void 0:t.value,this._frameGraphTask.camera=(i=this.camera.connectedPoint)==null?void 0:i.value}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.lensSize = ${this.lensSize};`),e.push(`${this._codeVariableName}.fStop = ${this.fStop};`),e.push(`${this._codeVariableName}.focusDistance = ${this.focusDistance};`),e.push(`${this._codeVariableName}.focalLength = ${this.focalLength};`),e.push(`${this._codeVariableName}.depthSamplingMode = ${this.depthSamplingMode};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.lensSize=this.lensSize,e.fStop=this.fStop,e.focusDistance=this.focusDistance,e.focalLength=this.focalLength,e.depthSamplingMode=this.depthSamplingMode,e}_deserialize(e){super._deserialize(e),this.lensSize=e.lensSize,this.fStop=e.fStop,this.focusDistance=e.focusDistance,this.focalLength=e.focalLength,this.depthSamplingMode=e.depthSamplingMode}}F([lt("Blur level",4,"PROPERTIES",{options:[{label:"Low",value:0},{label:"Medium",value:1},{label:"High",value:2}]})],Vy.prototype,"blurLevel",null),F([lt("HDR",0,"PROPERTIES")],Vy.prototype,"hdr",null),F([lt("Depth sampling mode",6,"PROPERTIES")],Vy.prototype,"depthSamplingMode",null),F([lt("Focal length",1,"PROPERTIES")],Vy.prototype,"focalLength",null),F([lt("F-Stop",1,"PROPERTIES")],Vy.prototype,"fStop",null),F([lt("Focus distance",1,"PROPERTIES")],Vy.prototype,"focusDistance",null),F([lt("Lens size",1,"PROPERTIES")],Vy.prototype,"lensSize",null),ve("BABYLON.NodeRenderGraphDepthOfFieldPostProcessBlock",Vy);class bte extends r_{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this._finalizeInputOutputRegistering(),this._frameGraphTask=new gte(this.name,t,new n_(e,i.getEngine()))}get threshold(){return this._frameGraphTask.postProcess.threshold}set threshold(e){this._frameGraphTask.postProcess.threshold=e}getClassName(){return"NodeRenderGraphExtractHighlightsPostProcessBlock"}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.threshold = ${this.threshold};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.threshold=this.threshold,e}_deserialize(e){super._deserialize(e),this.threshold=e.threshold}}F([lt("Threshold",1,"PROPERTIES",{min:0,max:1})],bte.prototype,"threshold",null),ve("BABYLON.NodeRenderGraphExtractHighlightsPostProcessBlock",bte);class Gpe extends L0{constructor(e,t,i){super(e,t,i||new sb(e,t.engine))}}class Wpe extends L0{constructor(e,t,i){super(e,t,i||new $9(e,t.engine))}}class Hpe extends r_{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this._finalizeInputOutputRegistering(),this._frameGraphTask=new Gpe(this.name,t,new sb(e,i.getEngine()))}getClassName(){return"NodeRenderGraphPassPostProcessBlock"}}ve("BABYLON.NodeRenderGraphPassPostProcessBlock",Hpe);class Ype extends r_{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this._finalizeInputOutputRegistering(),this._frameGraphTask=new Wpe(this.name,t,new $9(e,i.getEngine()))}getClassName(){return"NodeRenderGraphPassCubePostProcessBlock"}}ve("BABYLON.NodeRenderGraphPassCubePostProcessBlock",Ype);const Kze=me.Compose(new P(.5,.5,.5),Re.Identity(),new P(.5,.5,.5)),qze=me.Compose(new P(.5,.5,1),Re.Identity(),new P(.5,.5,0));class a_ extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>JYe))):t.push(Promise.resolve().then(()=>ZYe))}get reflectivityThreshold(){return this._reflectivityThreshold}set reflectivityThreshold(e){e!==this._reflectivityThreshold&&(e===0&&this._reflectivityThreshold!==0||e!==0&&this._reflectivityThreshold===0?(this._reflectivityThreshold=e,this._updateEffectDefines()):this._reflectivityThreshold=e)}get useBlur(){return this._useBlur}set useBlur(e){this._useBlur!==e&&(this._useBlur=e,this._updateEffectDefines())}get enableSmoothReflections(){return this._enableSmoothReflections}set enableSmoothReflections(e){e!==this._enableSmoothReflections&&(this._enableSmoothReflections=e,this._updateEffectDefines())}get environmentTexture(){return this._environmentTexture}set environmentTexture(e){this._environmentTexture=e,this._updateEffectDefines()}get environmentTextureIsProbe(){return this._environmentTextureIsProbe}set environmentTextureIsProbe(e){this._environmentTextureIsProbe=e,this._updateEffectDefines()}get attenuateScreenBorders(){return this._attenuateScreenBorders}set attenuateScreenBorders(e){this._attenuateScreenBorders!==e&&(this._attenuateScreenBorders=e,this._updateEffectDefines())}get attenuateIntersectionDistance(){return this._attenuateIntersectionDistance}set attenuateIntersectionDistance(e){this._attenuateIntersectionDistance!==e&&(this._attenuateIntersectionDistance=e,this._updateEffectDefines())}get attenuateIntersectionIterations(){return this._attenuateIntersectionIterations}set attenuateIntersectionIterations(e){this._attenuateIntersectionIterations!==e&&(this._attenuateIntersectionIterations=e,this._updateEffectDefines())}get attenuateFacingCamera(){return this._attenuateFacingCamera}set attenuateFacingCamera(e){this._attenuateFacingCamera!==e&&(this._attenuateFacingCamera=e,this._updateEffectDefines())}get attenuateBackfaceReflection(){return this._attenuateBackfaceReflection}set attenuateBackfaceReflection(e){this._attenuateBackfaceReflection!==e&&(this._attenuateBackfaceReflection=e,this._updateEffectDefines())}get clipToFrustum(){return this._clipToFrustum}set clipToFrustum(e){this._clipToFrustum!==e&&(this._clipToFrustum=e,this._updateEffectDefines())}get useFresnel(){return this._useFresnel}set useFresnel(e){this._useFresnel!==e&&(this._useFresnel=e,this._updateEffectDefines())}get enableAutomaticThicknessComputation(){return this._enableAutomaticThicknessComputation}set enableAutomaticThicknessComputation(e){this._enableAutomaticThicknessComputation!==e&&(this._enableAutomaticThicknessComputation=e,this._updateEffectDefines())}get inputTextureColorIsInGammaSpace(){return this._inputTextureColorIsInGammaSpace}set inputTextureColorIsInGammaSpace(e){this._inputTextureColorIsInGammaSpace!==e&&(this._inputTextureColorIsInGammaSpace=e,this._updateEffectDefines())}get generateOutputInGammaSpace(){return this._generateOutputInGammaSpace}set generateOutputInGammaSpace(e){this._generateOutputInGammaSpace!==e&&(this._generateOutputInGammaSpace=e,this._updateEffectDefines())}get debug(){return this._debug}set debug(e){this._debug!==e&&(this._debug=e,this._updateEffectDefines())}get textureWidth(){return this._textureWidth}set textureWidth(e){this._textureWidth!==e&&(this._textureWidth=e)}get textureHeight(){return this._textureHeight}set textureHeight(e){this._textureHeight!==e&&(this._textureHeight=e)}get useScreenspaceDepth(){return this._useScreenspaceDepth}set useScreenspaceDepth(e){this._useScreenspaceDepth!==e&&(this._useScreenspaceDepth=e,this._updateEffectDefines())}get normalsAreInWorldSpace(){return this._normalsAreInWorldSpace}set normalsAreInWorldSpace(e){this._normalsAreInWorldSpace!==e&&(this._normalsAreInWorldSpace=e,this._updateEffectDefines())}get normalsAreUnsigned(){return this._normalsAreUnsigned}set normalsAreUnsigned(e){this._normalsAreUnsigned!==e&&(this._normalsAreUnsigned=e,this._updateEffectDefines())}constructor(e,t,i){super({...i,name:e,engine:t.getEngine()||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:a_.FragmentUrl,uniforms:a_.Uniforms,samplers:a_.Samplers,shaderLanguage:t.getEngine().isWebGPU?1:0}),this.isSSRSupported=!0,this.maxDistance=1e3,this.step=1,this.thickness=.5,this.strength=1,this.reflectionSpecularFalloffExponent=1,this.maxSteps=1e3,this.roughnessFactor=.2,this.selfCollisionNumSkip=1,this._reflectivityThreshold=.04,this._useBlur=!1,this._enableSmoothReflections=!1,this._environmentTextureIsProbe=!1,this._attenuateScreenBorders=!0,this._attenuateIntersectionDistance=!0,this._attenuateIntersectionIterations=!0,this._attenuateFacingCamera=!1,this._attenuateBackfaceReflection=!1,this._clipToFrustum=!0,this._useFresnel=!1,this._enableAutomaticThicknessComputation=!1,this._inputTextureColorIsInGammaSpace=!0,this._generateOutputInGammaSpace=!0,this._debug=!1,this._textureWidth=0,this._textureHeight=0,this.camera=null,this._useScreenspaceDepth=!1,this._normalsAreInWorldSpace=!1,this._normalsAreUnsigned=!1,this._scene=t,this._updateEffectDefines()}bind(){super.bind();const e=this._drawWrapper.effect,t=this.camera;if(!t)return;const i=t.getViewMatrix(),s=t.getProjectionMatrix();s.invertToRef(ae.Matrix[0]),i.invertToRef(ae.Matrix[1]),e.setMatrix("projection",s),e.setMatrix("view",i),e.setMatrix("invView",ae.Matrix[1]),e.setMatrix("invProjectionMatrix",ae.Matrix[0]),e.setFloat("thickness",this.thickness),e.setFloat("reflectionSpecularFalloffExponent",this.reflectionSpecularFalloffExponent),e.setFloat("strength",this.strength),e.setFloat("stepSize",this.step),e.setFloat("maxSteps",this.maxSteps),e.setFloat("roughnessFactor",this.roughnessFactor),e.setFloat("nearPlaneZ",t.minZ),e.setFloat("farPlaneZ",t.maxZ),e.setFloat("maxDistance",this.maxDistance),e.setFloat("selfCollisionNumSkip",this.selfCollisionNumSkip),e.setFloat("reflectivityThreshold",this._reflectivityThreshold),me.ScalingToRef(this.textureWidth,this.textureHeight,1,ae.Matrix[2]),s.multiplyToRef(this._scene.getEngine().isWebGPU?qze:Kze,ae.Matrix[3]),ae.Matrix[3].multiplyToRef(ae.Matrix[2],ae.Matrix[4]),e.setMatrix("projectionPixel",ae.Matrix[4]),this._environmentTexture&&(e.setTexture("envCubeSampler",this._environmentTexture),this._environmentTexture.boundingBoxSize&&(e.setVector3("vReflectionPosition",this._environmentTexture.boundingBoxPosition),e.setVector3("vReflectionSize",this._environmentTexture.boundingBoxSize)))}_updateEffectDefines(){const e=[];this.isSSRSupported&&e.push("#define SSR_SUPPORTED"),this._enableSmoothReflections&&e.push("#define SSRAYTRACE_ENABLE_REFINEMENT"),this._scene.useRightHandedSystem&&e.push("#define SSRAYTRACE_RIGHT_HANDED_SCENE"),this._useScreenspaceDepth&&e.push("#define SSRAYTRACE_SCREENSPACE_DEPTH"),this._environmentTexture&&(e.push("#define SSR_USE_ENVIRONMENT_CUBE"),this._environmentTexture.boundingBoxSize&&e.push("#define SSR_USE_LOCAL_REFLECTIONMAP_CUBIC"),this._environmentTexture.gammaSpace&&e.push("#define SSR_ENVIRONMENT_CUBE_IS_GAMMASPACE")),this._environmentTextureIsProbe&&e.push("#define SSR_INVERTCUBICMAP"),this._enableAutomaticThicknessComputation&&e.push("#define SSRAYTRACE_USE_BACK_DEPTHBUFFER"),this._attenuateScreenBorders&&e.push("#define SSR_ATTENUATE_SCREEN_BORDERS"),this._attenuateIntersectionDistance&&e.push("#define SSR_ATTENUATE_INTERSECTION_DISTANCE"),this._attenuateIntersectionIterations&&e.push("#define SSR_ATTENUATE_INTERSECTION_NUMITERATIONS"),this._attenuateFacingCamera&&e.push("#define SSR_ATTENUATE_FACING_CAMERA"),this._attenuateBackfaceReflection&&e.push("#define SSR_ATTENUATE_BACKFACE_REFLECTION"),this._clipToFrustum&&e.push("#define SSRAYTRACE_CLIP_TO_FRUSTUM"),this.useBlur&&e.push("#define SSR_USE_BLUR"),this._debug&&e.push("#define SSRAYTRACE_DEBUG"),this._inputTextureColorIsInGammaSpace&&e.push("#define SSR_INPUT_IS_GAMMA_SPACE"),this._generateOutputInGammaSpace&&e.push("#define SSR_OUTPUT_IS_GAMMA_SPACE"),this._useFresnel&&e.push("#define SSR_BLEND_WITH_FRESNEL"),this._reflectivityThreshold===0&&e.push("#define SSR_DISABLE_REFLECTIVITY_TEST"),this._normalsAreInWorldSpace&&e.push("#define SSR_NORMAL_IS_IN_WORLDSPACE"),this._normalsAreUnsigned&&e.push("#define SSR_DECODE_NORMAL"),this.camera&&this.camera.mode===1&&e.push("#define ORTHOGRAPHIC_CAMERA"),this.updateEffect(e.join(`
`))}}a_.FragmentUrl="screenSpaceReflection2",a_.Uniforms=["projection","invProjectionMatrix","view","invView","thickness","reflectionSpecularFalloffExponent","strength","stepSize","maxSteps","roughnessFactor","projectionPixel","nearPlaneZ","farPlaneZ","maxDistance","selfCollisionNumSkip","vReflectionPosition","vReflectionSize","backSizeFactor","reflectivityThreshold"],a_.Samplers=["textureSampler","normalSampler","reflectivitySampler","depthSampler","envCubeSampler","backDepthSampler"];class df extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>$Ye))):t.push(Promise.resolve().then(()=>KYe))}constructor(e,t=null,i,s,r){super({...r,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:df.FragmentUrl,uniforms:df.Uniforms,samplers:df.Samplers}),this.textureWidth=0,this.textureHeight=0,this.direction=new Ue(1,0),this.blurStrength=.03,i!==void 0&&(this.direction=i),s!==void 0&&(this.blurStrength=s)}bind(){super.bind(),this._drawWrapper.effect.setFloat2("texelOffsetScale",1/this.textureWidth*this.direction.x*this.blurStrength,1/this.textureHeight*this.direction.y*this.blurStrength)}}df.FragmentUrl="screenSpaceReflection2Blur",df.Uniforms=["texelOffsetScale"],df.Samplers=["textureSampler"];class n5 extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>eXe))):t.push(Promise.resolve().then(()=>qYe))}constructor(e,t=null,i){super({...i,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:n5.FragmentUrl,uniforms:n5.Uniforms,samplers:n5.Samplers}),this.strength=1,this.reflectionSpecularFalloffExponent=1,this.camera=null,this._useFresnel=!1,this._useScreenspaceDepth=!1,this._inputTextureColorIsInGammaSpace=!0,this._generateOutputInGammaSpace=!0,this._debug=!1,this._reflectivityThreshold=.04,this._normalsAreInWorldSpace=!1,this._normalsAreUnsigned=!1,this._updateEffectDefines()}get useFresnel(){return this._useFresnel}set useFresnel(e){this._useFresnel!==e&&(this._useFresnel=e,this._updateEffectDefines())}get useScreenspaceDepth(){return this._useScreenspaceDepth}set useScreenspaceDepth(e){this._useScreenspaceDepth!==e&&(this._useScreenspaceDepth=e,this._updateEffectDefines())}get inputTextureColorIsInGammaSpace(){return this._inputTextureColorIsInGammaSpace}set inputTextureColorIsInGammaSpace(e){this._inputTextureColorIsInGammaSpace!==e&&(this._inputTextureColorIsInGammaSpace=e,this._updateEffectDefines())}get generateOutputInGammaSpace(){return this._generateOutputInGammaSpace}set generateOutputInGammaSpace(e){this._generateOutputInGammaSpace!==e&&(this._generateOutputInGammaSpace=e,this._updateEffectDefines())}get debug(){return this._debug}set debug(e){this._debug!==e&&(this._debug=e,this._updateEffectDefines())}get reflectivityThreshold(){return this._reflectivityThreshold}set reflectivityThreshold(e){e!==this._reflectivityThreshold&&(e===0&&this._reflectivityThreshold!==0||e!==0&&this._reflectivityThreshold===0?(this._reflectivityThreshold=e,this._updateEffectDefines()):this._reflectivityThreshold=e)}get normalsAreInWorldSpace(){return this._normalsAreInWorldSpace}set normalsAreInWorldSpace(e){this._normalsAreInWorldSpace!==e&&(this._normalsAreInWorldSpace=e,this._updateEffectDefines())}get normalsAreUnsigned(){return this._normalsAreUnsigned}set normalsAreUnsigned(e){this._normalsAreUnsigned!==e&&(this._normalsAreUnsigned=e,this._updateEffectDefines())}bind(){super.bind();const e=this._drawWrapper.effect;if(e.setFloat("strength",this.strength),e.setFloat("reflectionSpecularFalloffExponent",this.reflectionSpecularFalloffExponent),e.setFloat("reflectivityThreshold",this.reflectivityThreshold),this.useFresnel&&this.camera){const t=this.camera.getProjectionMatrix();t.invertToRef(ae.Matrix[0]),e.setMatrix("projection",t),e.setMatrix("invProjectionMatrix",ae.Matrix[0]),e.setMatrix("view",this.camera.getViewMatrix()),this.useScreenspaceDepth&&(e.setFloat("nearPlaneZ",this.camera.minZ),e.setFloat("farPlaneZ",this.camera.maxZ))}}_updateEffectDefines(){let e="";this._debug&&(e+=`#define SSRAYTRACE_DEBUG
`),this._inputTextureColorIsInGammaSpace&&(e+=`#define SSR_INPUT_IS_GAMMA_SPACE
`),this._generateOutputInGammaSpace&&(e+=`#define SSR_OUTPUT_IS_GAMMA_SPACE
`),this._useFresnel&&(e+=`#define SSR_BLEND_WITH_FRESNEL
`),this._useScreenspaceDepth&&(e+=`#define SSRAYTRACE_SCREENSPACE_DEPTH
`),this._reflectivityThreshold===0&&(e+=`#define SSR_DISABLE_REFLECTIVITY_TEST
`),this._normalsAreInWorldSpace&&(e+=`#define SSR_NORMAL_IS_IN_WORLDSPACE
`),this._normalsAreUnsigned&&(e+=`#define SSR_DECODE_NORMAL
`),this.updateEffect(e)}}n5.FragmentUrl="screenSpaceReflection2BlurCombiner",n5.Uniforms=["strength","reflectionSpecularFalloffExponent","reflectivityThreshold","projection","invProjectionMatrix","nearPlaneZ","farPlaneZ","view"],n5.Samplers=["textureSampler","depthSampler","normalSampler","mainSampler","reflectivitySampler"];class Xpe{get isSSRSupported(){return this._ssrPostProcess.isSSRSupported}set isSSRSupported(e){this._ssrPostProcess.isSSRSupported=e}get maxDistance(){return this._ssrPostProcess.maxDistance}set maxDistance(e){this._ssrPostProcess.maxDistance=e}get step(){return this._ssrPostProcess.step}set step(e){this._ssrPostProcess.step=e}get thickness(){return this._ssrPostProcess.thickness}set thickness(e){this._ssrPostProcess.thickness=e}get strength(){return this._ssrPostProcess.strength}set strength(e){this._ssrPostProcess.strength=e,this._ssrBlurCombinerPostProcess.strength=e}get reflectionSpecularFalloffExponent(){return this._ssrPostProcess.reflectionSpecularFalloffExponent}set reflectionSpecularFalloffExponent(e){this._ssrPostProcess.reflectionSpecularFalloffExponent=e,this._ssrBlurCombinerPostProcess.reflectionSpecularFalloffExponent=e}get maxSteps(){return this._ssrPostProcess.maxSteps}set maxSteps(e){this._ssrPostProcess.maxSteps=e}get roughnessFactor(){return this._ssrPostProcess.roughnessFactor}set roughnessFactor(e){this._ssrPostProcess.roughnessFactor=e}get selfCollisionNumSkip(){return this._ssrPostProcess.selfCollisionNumSkip}set selfCollisionNumSkip(e){this._ssrPostProcess.selfCollisionNumSkip=e}get reflectivityThreshold(){return this._ssrPostProcess.reflectivityThreshold}set reflectivityThreshold(e){const t=this._ssrPostProcess.reflectivityThreshold;e!==t&&(this._ssrPostProcess.reflectivityThreshold=e,this._ssrBlurCombinerPostProcess.reflectivityThreshold=e)}get blurDispersionStrength(){return this._ssrBlurXPostProcess.blurStrength}set blurDispersionStrength(e){e!==this._ssrBlurXPostProcess.blurStrength&&(this._ssrPostProcess.useBlur=e>0,this._ssrBlurXPostProcess.blurStrength=e,this._ssrBlurYPostProcess.blurStrength=e)}get enableSmoothReflections(){return this._ssrPostProcess.enableSmoothReflections}set enableSmoothReflections(e){this._ssrPostProcess.enableSmoothReflections=e}get environmentTexture(){return this._ssrPostProcess.environmentTexture}set environmentTexture(e){this._ssrPostProcess.environmentTexture=e}get environmentTextureIsProbe(){return this._ssrPostProcess.environmentTextureIsProbe}set environmentTextureIsProbe(e){this._ssrPostProcess.environmentTextureIsProbe=e}get attenuateScreenBorders(){return this._ssrPostProcess.attenuateScreenBorders}set attenuateScreenBorders(e){this._ssrPostProcess.attenuateScreenBorders=e}get attenuateIntersectionDistance(){return this._ssrPostProcess.attenuateIntersectionDistance}set attenuateIntersectionDistance(e){this._ssrPostProcess.attenuateIntersectionDistance=e}get attenuateIntersectionIterations(){return this._ssrPostProcess.attenuateIntersectionIterations}set attenuateIntersectionIterations(e){this._ssrPostProcess.attenuateIntersectionIterations=e}get attenuateFacingCamera(){return this._ssrPostProcess.attenuateFacingCamera}set attenuateFacingCamera(e){this._ssrPostProcess.attenuateFacingCamera=e}get attenuateBackfaceReflection(){return this._ssrPostProcess.attenuateBackfaceReflection}set attenuateBackfaceReflection(e){this._ssrPostProcess.attenuateBackfaceReflection=e}get clipToFrustum(){return this._ssrPostProcess.clipToFrustum}set clipToFrustum(e){this._ssrPostProcess.clipToFrustum=e}get useFresnel(){return this._ssrPostProcess.useFresnel}set useFresnel(e){this._ssrPostProcess.useFresnel=e,this._ssrBlurCombinerPostProcess.useFresnel=e}get enableAutomaticThicknessComputation(){return this._ssrPostProcess.enableAutomaticThicknessComputation}set enableAutomaticThicknessComputation(e){this._ssrPostProcess.enableAutomaticThicknessComputation!==e&&(this._ssrPostProcess.enableAutomaticThicknessComputation=e)}get inputTextureColorIsInGammaSpace(){return this._ssrPostProcess.inputTextureColorIsInGammaSpace}set inputTextureColorIsInGammaSpace(e){this._ssrPostProcess.inputTextureColorIsInGammaSpace!==e&&(this._ssrPostProcess.inputTextureColorIsInGammaSpace=e,this._ssrBlurCombinerPostProcess.inputTextureColorIsInGammaSpace=e)}get generateOutputInGammaSpace(){return this._ssrPostProcess.generateOutputInGammaSpace}set generateOutputInGammaSpace(e){this._ssrPostProcess.generateOutputInGammaSpace!==e&&(this._ssrPostProcess.generateOutputInGammaSpace=e,this._ssrBlurCombinerPostProcess.generateOutputInGammaSpace=e)}get debug(){return this._ssrPostProcess.debug}set debug(e){this._ssrPostProcess.debug!==e&&(this._ssrPostProcess.debug=e,this._ssrBlurCombinerPostProcess.debug=e)}get camera(){return this._ssrPostProcess.camera}set camera(e){this._ssrPostProcess.camera=e,this._ssrBlurCombinerPostProcess.camera=e}get useScreenspaceDepth(){return this._ssrPostProcess.useScreenspaceDepth}set useScreenspaceDepth(e){this._ssrPostProcess.useScreenspaceDepth=e,this._ssrBlurCombinerPostProcess.useScreenspaceDepth=e}get normalsAreInWorldSpace(){return this._ssrPostProcess.normalsAreInWorldSpace}set normalsAreInWorldSpace(e){this._ssrPostProcess.normalsAreInWorldSpace=e,this._ssrBlurCombinerPostProcess.normalsAreInWorldSpace=e}get normalsAreUnsigned(){return this._ssrPostProcess.normalsAreUnsigned}set normalsAreUnsigned(e){this._ssrPostProcess.normalsAreUnsigned=e,this._ssrBlurCombinerPostProcess.normalsAreUnsigned=e}isReady(){return this._ssrPostProcess.isReady()&&this._ssrBlurXPostProcess.isReady()&&this._ssrBlurYPostProcess.isReady()&&this._ssrBlurCombinerPostProcess.isReady()}constructor(e,t){this.ssrDownsample=0,this.blurDownsample=0,this.name=e,this._scene=t,this._ssrPostProcess=new a_(this.name,this._scene),this._ssrBlurXPostProcess=new df(this.name+" BlurX",this._scene.getEngine(),new Ue(1,0)),this._ssrBlurYPostProcess=new df(this.name+" BlurY",this._scene.getEngine(),new Ue(0,1)),this._ssrBlurCombinerPostProcess=new n5(this.name+" BlurCombiner",this._scene.getEngine()),this._ssrPostProcess.useBlur=this._ssrBlurXPostProcess.blurStrength>0}dispose(){var e,t,i,s;(e=this._ssrPostProcess)==null||e.dispose(),(t=this._ssrBlurXPostProcess)==null||t.dispose(),(i=this._ssrBlurYPostProcess)==null||i.dispose(),(s=this._ssrBlurCombinerPostProcess)==null||s.dispose()}}class Qze extends L0{constructor(e,t,i){super(e,t,i||new a_(e,t.scene)),this.onTexturesAllocatedObservable.add(s=>{s.setTextureSamplingMode(this.normalTexture,2),s.setTextureSamplingMode(this.depthTexture,2),s.setTextureSamplingMode(this.reflectivityTexture,2),this.backDepthTexture&&s.setTextureSamplingMode(this.backDepthTexture,1)})}record(e=!1){if(this.sourceTexture===void 0||this.normalTexture===void 0||this.depthTexture===void 0||this.reflectivityTexture===void 0||this.camera===void 0)throw new Error(`FrameGraphSSRTask "${this.name}": sourceTexture, normalTexture, depthTexture, reflectivityTexture and camera are required`);const t=super.record(e,void 0,i=>{this.postProcess.camera=this.camera,i.bindTextureHandle(this._postProcessDrawWrapper.effect,"normalSampler",this.normalTexture),i.bindTextureHandle(this._postProcessDrawWrapper.effect,"depthSampler",this.depthTexture),i.bindTextureHandle(this._postProcessDrawWrapper.effect,"reflectivitySampler",this.reflectivityTexture),this.backDepthTexture&&i.bindTextureHandle(this._postProcessDrawWrapper.effect,"backDepthSampler",this.backDepthTexture),this.postProcess.enableAutomaticThicknessComputation&&this._postProcessDrawWrapper.effect.setFloat("backSizeFactor",1)});return t.addDependencies([this.normalTexture,this.depthTexture,this.reflectivityTexture]),this.postProcess.textureWidth=this._sourceWidth,this.postProcess.textureHeight=this._sourceHeight,t}}class Zpe extends L0{constructor(e,t,i){super(e,t,i||new df(e,t.engine,new Ue(1,0),.03))}record(e=!1,t,i){const s=super.record(e,t,i);return this.postProcess.textureWidth=this._sourceWidth,this.postProcess.textureHeight=this._sourceHeight,s}}class Ste extends q1{get camera(){return this._camera}set camera(e){e!==this._camera&&(this._camera=e,this.ssr.camera=e)}get name(){return this._name}set name(e){this._name=e,this._ssr&&(this._ssr.name=`${e} SSR`),this._ssrBlurX&&(this._ssrBlurX.name=`${e} SSR Blur X`),this._ssrBlurY&&(this._ssrBlurY.name=`${e} SSR Blur Y`),this._ssrBlurCombiner&&(this._ssrBlurCombiner.name=`${e} SSR Blur Combiner`)}constructor(e,t,i=0){super(e,t),this.sourceSamplingMode=2,this.textureType=i,this.ssr=new Xpe(e,t.scene),this._ssr=new Qze(`${e} SSR`,this._frameGraph,this.ssr._ssrPostProcess),this._ssrBlurX=new Zpe(`${e} SSR Blur X`,this._frameGraph,this.ssr._ssrBlurXPostProcess),this._ssrBlurY=new Zpe(`${e} SSR Blur Y`,this._frameGraph,this.ssr._ssrBlurYPostProcess),this._ssrBlurCombiner=new L0(`${e} SSR Blur Combiner`,this._frameGraph,this.ssr._ssrBlurCombinerPostProcess),this.onTexturesAllocatedObservable.add(s=>{this._ssr.onTexturesAllocatedObservable.notifyObservers(s),this.ssr.blurDispersionStrength!==0&&(this._ssrBlurX.onTexturesAllocatedObservable.notifyObservers(s),this._ssrBlurY.onTexturesAllocatedObservable.notifyObservers(s),this._ssrBlurCombiner.onTexturesAllocatedObservable.notifyObservers(s))}),this.outputTexture=this._frameGraph.textureManager.createDanglingHandle()}isReady(){return this.ssr.isReady()}record(){if(this.sourceTexture===void 0||this.normalTexture===void 0||this.depthTexture===void 0||this.reflectivityTexture===void 0||this.camera===void 0)throw new Error(`FrameGraphSSRRenderingPipelineTask "${this.name}": sourceTexture, normalTexture, depthTexture, reflectivityTexture and camera are required`);const e=this._frameGraph.textureManager.getTextureDescription(this.sourceTexture);this._ssr.sourceTexture=this.sourceTexture,this._ssr.sourceSamplingMode=this.sourceSamplingMode,this._ssr.camera=this.camera,this._ssr.normalTexture=this.normalTexture,this._ssr.depthTexture=this.depthTexture,this._ssr.backDepthTexture=this.backDepthTexture,this._ssr.reflectivityTexture=this.reflectivityTexture;let t;const i={width:Math.floor(e.size.width/(this.ssr.ssrDownsample+1))||1,height:Math.floor(e.size.height/(this.ssr.ssrDownsample+1))||1},s={size:i,options:{createMipMaps:!1,types:[this.textureType],formats:[5],samples:1,useSRGBBuffers:[!1],labels:[""]},sizeIsPercentage:!1};if((this.ssr.blurDispersionStrength>0||!this.targetTexture)&&(t=this._frameGraph.textureManager.createRenderTargetTexture(this._ssr.name,s)),this.ssr.blurDispersionStrength===0)this._ssr.targetTexture=this.outputTexture,t!==void 0?this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,t):this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,this.targetTexture),this._ssr.record(!0);else{this._ssr.targetTexture=t,this._ssr.record(!0),i.width=Math.floor(e.size.width/(this.ssr.blurDownsample+1))||1,i.height=Math.floor(e.size.height/(this.ssr.blurDownsample+1))||1;const n=this._frameGraph.textureManager.getTextureCreationOptions(this.sourceTexture);this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,this.targetTexture,this.name+" Output",n);const o=this._frameGraph.textureManager.createRenderTargetTexture(this._ssrBlurX.name,s);this._ssrBlurX.sourceTexture=t,this._ssrBlurX.sourceSamplingMode=2,this._ssrBlurX.targetTexture=o,this._ssrBlurX.record(!0);const l=this._frameGraph.textureManager.createRenderTargetTexture(this._ssrBlurY.name,s);this._ssrBlurY.sourceTexture=o,this._ssrBlurY.sourceSamplingMode=2,this._ssrBlurY.targetTexture=l,this._ssrBlurY.record(!0),this._ssrBlurCombiner.sourceTexture=this.sourceTexture,this._ssrBlurCombiner.sourceSamplingMode=this.sourceSamplingMode,this._ssrBlurCombiner.targetTexture=this.outputTexture,this._ssrBlurCombiner.record(!0,void 0,u=>{u.bindTextureHandle(this._ssrBlurCombiner.drawWrapper.effect,"mainSampler",this.sourceTexture),u.bindTextureHandle(this._ssrBlurCombiner.drawWrapper.effect,"textureSampler",l),u.bindTextureHandle(this._ssrBlurCombiner.drawWrapper.effect,"reflectivitySampler",this.reflectivityTexture),this.ssr.useFresnel&&(u.bindTextureHandle(this._ssrBlurCombiner.drawWrapper.effect,"normalSampler",this.normalTexture),u.bindTextureHandle(this._ssrBlurCombiner.drawWrapper.effect,"depthSampler",this.depthTexture))}).addDependencies(l)}const r=this._frameGraph.addRenderPass(this.name+"_disabled",!0);r.addDependencies(this.sourceTexture),r.setRenderTarget(this.outputTexture),r.setExecuteFunc(n=>{n.copyTexture(this.sourceTexture)})}dispose(){this._ssr.dispose(),this._ssrBlurX.dispose(),this._ssrBlurY.dispose(),this._ssrBlurCombiner.dispose(),this.ssr.dispose(),super.dispose()}}class el extends r_{get task(){return this._frameGraphTask}constructor(e,t,i,s=0){super(e,t,i),this._additionalConstructionParameters=[s],this.registerInput("camera",zt.Camera),this.registerInput("geomDepth",zt.AutoDetect),this.registerInput("geomNormal",zt.AutoDetect),this.registerInput("geomReflectivity",zt.TextureReflectivity),this.registerInput("geomBackDepth",zt.AutoDetect,!0),this.geomNormal.addExcludedConnectionPointFromAllowedTypes(zt.TextureWorldNormal|zt.TextureViewNormal),this.geomDepth.addExcludedConnectionPointFromAllowedTypes(zt.TextureScreenDepth|zt.TextureViewDepth),this.geomBackDepth.addExcludedConnectionPointFromAllowedTypes(zt.TextureScreenDepth|zt.TextureViewDepth),this._finalizeInputOutputRegistering(),this._frameGraphTask=new Ste(this.name,t,s)}_createTask(e){const t=this.sourceSamplingMode,i=this.maxDistance,s=this.step,r=this.thickness,n=this.strength,o=this.reflectionSpecularFalloffExponent,l=this.maxSteps,c=this.roughnessFactor,u=this.selfCollisionNumSkip,f=this.reflectivityThreshold,p=this.ssrDownsample,m=this.blurDispersionStrength,_=this.blurDownsample,d=this.enableSmoothReflections,h=this.attenuateScreenBorders,x=this.attenuateIntersectionDistance,A=this.attenuateIntersectionIterations,S=this.attenuateFacingCamera,E=this.attenuateBackfaceReflection,b=this.clipToFrustum,M=this.enableAutomaticThicknessComputation,T=this.useFresnel,O=this.inputTextureColorIsInGammaSpace,R=this.generateOutputInGammaSpace,I=this.debug;this._frameGraphTask.dispose(),this._frameGraphTask=new Ste(this.name,this._frameGraph,e),this.sourceSamplingMode=t,this.maxDistance=i,this.step=s,this.thickness=r,this.strength=n,this.reflectionSpecularFalloffExponent=o,this.maxSteps=l,this.roughnessFactor=c,this.selfCollisionNumSkip=u,this.reflectivityThreshold=f,this.ssrDownsample=p,this.blurDispersionStrength=m,this.blurDownsample=_,this.enableSmoothReflections=d,this.attenuateScreenBorders=h,this.attenuateIntersectionDistance=x,this.attenuateIntersectionIterations=A,this.attenuateFacingCamera=S,this.attenuateBackfaceReflection=E,this.clipToFrustum=b,this.useFresnel=T,this.enableAutomaticThicknessComputation=M,this.inputTextureColorIsInGammaSpace=O,this.generateOutputInGammaSpace=R,this.debug=I,this._additionalConstructionParameters=[e]}get textureType(){return this._frameGraphTask.textureType}set textureType(e){this._createTask(e)}get debug(){return this._frameGraphTask.ssr.debug}set debug(e){this._frameGraphTask.ssr.debug=e}get strength(){return this._frameGraphTask.ssr.strength}set strength(e){this._frameGraphTask.ssr.strength=e}get reflectionSpecularFalloffExponent(){return this._frameGraphTask.ssr.reflectionSpecularFalloffExponent}set reflectionSpecularFalloffExponent(e){this._frameGraphTask.ssr.reflectionSpecularFalloffExponent=e}get reflectivityThreshold(){return this._frameGraphTask.ssr.reflectivityThreshold}set reflectivityThreshold(e){this._frameGraphTask.ssr.reflectivityThreshold=e}get thickness(){return this._frameGraphTask.ssr.thickness}set thickness(e){this._frameGraphTask.ssr.thickness=e}get step(){return this._frameGraphTask.ssr.step}set step(e){this._frameGraphTask.ssr.step=e}get enableSmoothReflections(){return this._frameGraphTask.ssr.enableSmoothReflections}set enableSmoothReflections(e){this._frameGraphTask.ssr.enableSmoothReflections=e}get maxSteps(){return this._frameGraphTask.ssr.maxSteps}set maxSteps(e){this._frameGraphTask.ssr.maxSteps=e}get maxDistance(){return this._frameGraphTask.ssr.maxDistance}set maxDistance(e){this._frameGraphTask.ssr.maxDistance=e}get roughnessFactor(){return this._frameGraphTask.ssr.roughnessFactor}set roughnessFactor(e){this._frameGraphTask.ssr.roughnessFactor=e}get selfCollisionNumSkip(){return this._frameGraphTask.ssr.selfCollisionNumSkip}set selfCollisionNumSkip(e){this._frameGraphTask.ssr.selfCollisionNumSkip=e}get ssrDownsample(){return this._frameGraphTask.ssr.ssrDownsample}set ssrDownsample(e){this._frameGraphTask.ssr.ssrDownsample=e}get clipToFrustum(){return this._frameGraphTask.ssr.clipToFrustum}set clipToFrustum(e){this._frameGraphTask.ssr.clipToFrustum=e}get enableAutomaticThicknessComputation(){return this._frameGraphTask.ssr.enableAutomaticThicknessComputation}set enableAutomaticThicknessComputation(e){this._frameGraphTask.ssr.enableAutomaticThicknessComputation=e}get useFresnel(){return this._frameGraphTask.ssr.useFresnel}set useFresnel(e){this._frameGraphTask.ssr.useFresnel=e}get blurDispersionStrength(){return this._frameGraphTask.ssr.blurDispersionStrength}set blurDispersionStrength(e){this._frameGraphTask.ssr.blurDispersionStrength=e}get blurDownsample(){return this._frameGraphTask.ssr.blurDownsample}set blurDownsample(e){this._frameGraphTask.ssr.blurDownsample=e}get attenuateScreenBorders(){return this._frameGraphTask.ssr.attenuateScreenBorders}set attenuateScreenBorders(e){this._frameGraphTask.ssr.attenuateScreenBorders=e}get attenuateIntersectionDistance(){return this._frameGraphTask.ssr.attenuateIntersectionDistance}set attenuateIntersectionDistance(e){this._frameGraphTask.ssr.attenuateIntersectionDistance=e}get attenuateIntersectionIterations(){return this._frameGraphTask.ssr.attenuateIntersectionIterations}set attenuateIntersectionIterations(e){this._frameGraphTask.ssr.attenuateIntersectionIterations=e}get attenuateFacingCamera(){return this._frameGraphTask.ssr.attenuateFacingCamera}set attenuateFacingCamera(e){this._frameGraphTask.ssr.attenuateFacingCamera=e}get attenuateBackfaceReflection(){return this._frameGraphTask.ssr.attenuateBackfaceReflection}set attenuateBackfaceReflection(e){this._frameGraphTask.ssr.attenuateBackfaceReflection=e}get inputTextureColorIsInGammaSpace(){return this._frameGraphTask.ssr.inputTextureColorIsInGammaSpace}set inputTextureColorIsInGammaSpace(e){this._frameGraphTask.ssr.inputTextureColorIsInGammaSpace=e}get generateOutputInGammaSpace(){return this._frameGraphTask.ssr.generateOutputInGammaSpace}set generateOutputInGammaSpace(e){this._frameGraphTask.ssr.generateOutputInGammaSpace=e}getClassName(){return"NodeRenderGraphSSRPostProcessBlock"}get camera(){return this._inputs[2]}get geomDepth(){return this._inputs[3]}get geomNormal(){return this._inputs[4]}get geomReflectivity(){return this._inputs[5]}get geomBackDepth(){return this._inputs[6]}_buildBlock(e){var t,i,s,r,n;if(super._buildBlock(e),this._frameGraphTask.normalTexture=(t=this.geomNormal.connectedPoint)==null?void 0:t.value,this._frameGraphTask.depthTexture=(i=this.geomDepth.connectedPoint)==null?void 0:i.value,this._frameGraphTask.reflectivityTexture=(s=this.geomReflectivity.connectedPoint)==null?void 0:s.value,this._frameGraphTask.backDepthTexture=(r=this.geomBackDepth.connectedPoint)==null?void 0:r.value,this._frameGraphTask.camera=(n=this.camera.connectedPoint)==null?void 0:n.value,this.enableAutomaticThicknessComputation){if(!this._frameGraphTask.backDepthTexture)throw new Error(`SSR post process "${this.name}": Automatic thickness computation requires a back depth texture to be connected!`);const o=this.geomBackDepth.connectedPoint.ownerBlock;if(o.getClassName()==="NodeRenderGraphGeometryRendererBlock"){if(!o.reverseCulling)throw new Error(`SSR post process "${this.name}": Automatic thickness computation requires the geometry renderer block for the back depth texture to have reverse culling enabled!`);if(this._frameGraphTask.depthTexture&&this.geomDepth.connectedPoint.ownerBlock.getClassName()==="NodeRenderGraphGeometryRendererBlock"){const u=this.geomDepth.connectedPoint.type,f=this.geomBackDepth.connectedPoint.type;if(u!==f)throw new Error(`SSR post process "${this.name}": Automatic thickness computation requires that geomDepth and geomBackDepth have the same type (view or screen space depth)!`)}}}this.geomNormal.connectedPoint&&this.geomNormal.connectedPoint.type===zt.TextureWorldNormal&&(this._frameGraphTask.ssr.normalsAreInWorldSpace=!0,this._frameGraphTask.ssr.normalsAreUnsigned=!0),this.geomDepth.connectedPoint&&this.geomDepth.connectedPoint.type===zt.TextureScreenDepth&&(this._frameGraphTask.ssr.useScreenspaceDepth=!0)}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.debug = ${this.debug};`),e.push(`${this._codeVariableName}.strength = ${this.strength};`),e.push(`${this._codeVariableName}.reflectionSpecularFalloffExponent = ${this.reflectionSpecularFalloffExponent};`),e.push(`${this._codeVariableName}.reflectivityThreshold = ${this.reflectivityThreshold};`),e.push(`${this._codeVariableName}.thickness = ${this.thickness};`),e.push(`${this._codeVariableName}.step = ${this.step};`),e.push(`${this._codeVariableName}.enableSmoothReflections = ${this.enableSmoothReflections};`),e.push(`${this._codeVariableName}.maxSteps = ${this.maxSteps};`),e.push(`${this._codeVariableName}.maxDistance = ${this.maxDistance};`),e.push(`${this._codeVariableName}.roughnessFactor = ${this.roughnessFactor};`),e.push(`${this._codeVariableName}.selfCollisionNumSkip = ${this.selfCollisionNumSkip};`),e.push(`${this._codeVariableName}.ssrDownsample = ${this.ssrDownsample};`),e.push(`${this._codeVariableName}.clipToFrustum = ${this.clipToFrustum};`),e.push(`${this._codeVariableName}.useFresnel = ${this.useFresnel};`),e.push(`${this._codeVariableName}.enableAutomaticThicknessComputation = ${this.enableAutomaticThicknessComputation};`),e.push(`${this._codeVariableName}.blurDispersionStrength = ${this.blurDispersionStrength};`),e.push(`${this._codeVariableName}.blurDownsample = ${this.blurDownsample};`),e.push(`${this._codeVariableName}.attenuateScreenBorders = ${this.attenuateScreenBorders};`),e.push(`${this._codeVariableName}.attenuateIntersectionDistance = ${this.attenuateIntersectionDistance};`),e.push(`${this._codeVariableName}.attenuateIntersectionIterations = ${this.attenuateIntersectionIterations};`),e.push(`${this._codeVariableName}.attenuateFacingCamera = ${this.attenuateFacingCamera};`),e.push(`${this._codeVariableName}.attenuateBackfaceReflection = ${this.attenuateBackfaceReflection};`),e.push(`${this._codeVariableName}.inputTextureColorIsInGammaSpace = ${this.inputTextureColorIsInGammaSpace};`),e.push(`${this._codeVariableName}.generateOutputInGammaSpace = ${this.generateOutputInGammaSpace};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.debug=this.debug,e.strength=this.strength,e.reflectionSpecularFalloffExponent=this.reflectionSpecularFalloffExponent,e.reflectivityThreshold=this.reflectivityThreshold,e.thickness=this.thickness,e.step=this.step,e.enableSmoothReflections=this.enableSmoothReflections,e.maxSteps=this.maxSteps,e.maxDistance=this.maxDistance,e.roughnessFactor=this.roughnessFactor,e.selfCollisionNumSkip=this.selfCollisionNumSkip,e.ssrDownsample=this.ssrDownsample,e.clipToFrustum=this.clipToFrustum,e.useFresnel=this.useFresnel,e.enableAutomaticThicknessComputation=this.enableAutomaticThicknessComputation,e.blurDispersionStrength=this.blurDispersionStrength,e.blurDownsample=this.blurDownsample,e.attenuateScreenBorders=this.attenuateScreenBorders,e.attenuateIntersectionDistance=this.attenuateIntersectionDistance,e.attenuateIntersectionIterations=this.attenuateIntersectionIterations,e.attenuateFacingCamera=this.attenuateFacingCamera,e.attenuateBackfaceReflection=this.attenuateBackfaceReflection,e.inputTextureColorIsInGammaSpace=this.inputTextureColorIsInGammaSpace,e.generateOutputInGammaSpace=this.generateOutputInGammaSpace,e}_deserialize(e){super._deserialize(e),this.debug=e.debug,this.strength=e.strength,this.reflectionSpecularFalloffExponent=e.reflectionSpecularFalloffExponent,this.reflectivityThreshold=e.reflectivityThreshold,this.thickness=e.thickness,this.step=e.step,this.enableSmoothReflections=e.enableSmoothReflections,this.maxSteps=e.maxSteps,this.maxDistance=e.maxDistance,this.roughnessFactor=e.roughnessFactor,this.selfCollisionNumSkip=e.selfCollisionNumSkip,this.ssrDownsample=e.ssrDownsample,this.clipToFrustum=e.clipToFrustum,this.useFresnel=e.useFresnel,this.enableAutomaticThicknessComputation=e.enableAutomaticThicknessComputation,this.blurDispersionStrength=e.blurDispersionStrength,this.blurDownsample=e.blurDownsample,this.attenuateScreenBorders=e.attenuateScreenBorders,this.attenuateIntersectionDistance=e.attenuateIntersectionDistance,this.attenuateIntersectionIterations=e.attenuateIntersectionIterations,this.attenuateFacingCamera=e.attenuateFacingCamera,this.attenuateBackfaceReflection=e.attenuateBackfaceReflection,this.inputTextureColorIsInGammaSpace=e.inputTextureColorIsInGammaSpace,this.generateOutputInGammaSpace=e.generateOutputInGammaSpace}}F([lt("Texture type",8,"SSR")],el.prototype,"textureType",null),F([lt("Debug",0,"SSR")],el.prototype,"debug",null),F([lt("Strength",1,"SSR",{min:0,max:5})],el.prototype,"strength",null),F([lt("Reflection exponent",1,"SSR",{min:0,max:5})],el.prototype,"reflectionSpecularFalloffExponent",null),F([lt("Reflectivity threshold",1,"SSR",{min:0,max:1})],el.prototype,"reflectivityThreshold",null),F([lt("Thickness",1,"SSR",{min:0,max:10})],el.prototype,"thickness",null),F([lt("Step",2,"SSR",{min:1,max:50})],el.prototype,"step",null),F([lt("Smooth reflections",0,"SSR")],el.prototype,"enableSmoothReflections",null),F([lt("Max steps",2,"SSR",{min:1,max:3e3})],el.prototype,"maxSteps",null),F([lt("Max distance",1,"SSR",{min:1,max:3e3})],el.prototype,"maxDistance",null),F([lt("Roughness factor",1,"SSR",{min:0,max:1})],el.prototype,"roughnessFactor",null),F([lt("Self collision skips",2,"SSR",{min:1,max:10})],el.prototype,"selfCollisionNumSkip",null),F([lt("SSR downsample",2,"SSR",{min:0,max:5})],el.prototype,"ssrDownsample",null),F([lt("Clip to frustum",0,"SSR")],el.prototype,"clipToFrustum",null),F([lt("Automatic thickness computation",0,"SSR")],el.prototype,"enableAutomaticThicknessComputation",null),F([lt("Use Fresnel",0,"SSR")],el.prototype,"useFresnel",null),F([lt("Strength",1,"Blur",{min:0,max:.15})],el.prototype,"blurDispersionStrength",null),F([lt("Blur downsample",2,"Blur",{min:0,max:5})],el.prototype,"blurDownsample",null),F([lt("Screen borders",0,"Attenuations")],el.prototype,"attenuateScreenBorders",null),F([lt("Distance",0,"Attenuations")],el.prototype,"attenuateIntersectionDistance",null),F([lt("Step iterations",0,"Attenuations")],el.prototype,"attenuateIntersectionIterations",null),F([lt("Facing camera",0,"Attenuations")],el.prototype,"attenuateFacingCamera",null),F([lt("Backface reflections",0,"Attenuations")],el.prototype,"attenuateBackfaceReflection",null),F([lt("Input is in gamma space",0,"Color space")],el.prototype,"inputTextureColorIsInGammaSpace",null),F([lt("Output to gamma space",0,"Color space")],el.prototype,"generateOutputInGammaSpace",null),ve("BABYLON.NodeRenderGraphSSRPostProcessBlock",el);class L4 extends Hu{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this.registerInput("light",zt.ShadowLight),this.registerInput("objects",zt.ObjectList),this.registerInput("camera",zt.Camera),this._addDependenciesInput(),this.registerOutput("generator",zt.ShadowGenerator),this.registerOutput("output",zt.Texture)}get mapSize(){return this._frameGraphTask.mapSize}set mapSize(e){this._frameGraphTask.mapSize=e}get useFloat32TextureType(){return this._frameGraphTask.useFloat32TextureType}set useFloat32TextureType(e){this._frameGraphTask.useFloat32TextureType=e}get useRedTextureFormat(){return this._frameGraphTask.useRedTextureFormat}set useRedTextureFormat(e){this._frameGraphTask.useRedTextureFormat=e}get bias(){return this._frameGraphTask.bias}set bias(e){this._frameGraphTask.bias=e}get normalBias(){return this._frameGraphTask.normalBias}set normalBias(e){this._frameGraphTask.normalBias=e}get darkness(){return this._frameGraphTask.darkness}set darkness(e){this._frameGraphTask.darkness=e}get filter(){return this._frameGraphTask.filter}set filter(e){this._frameGraphTask.filter=e}get filteringQuality(){return this._frameGraphTask.filteringQuality}set filteringQuality(e){this._frameGraphTask.filteringQuality=e}get transparencyShadow(){return this._frameGraphTask.transparencyShadow}set transparencyShadow(e){this._frameGraphTask.transparencyShadow=e}get enableSoftTransparentShadow(){return this._frameGraphTask.enableSoftTransparentShadow}set enableSoftTransparentShadow(e){this._frameGraphTask.enableSoftTransparentShadow=e}get useOpacityTextureForTransparentShadow(){return this._frameGraphTask.useOpacityTextureForTransparentShadow}set useOpacityTextureForTransparentShadow(e){this._frameGraphTask.useOpacityTextureForTransparentShadow=e}getClassName(){return"NodeRenderGraphBaseShadowGeneratorBlock"}get light(){return this._inputs[0]}get objects(){return this._inputs[1]}get camera(){return this._inputs[2]}get generator(){return this._outputs[0]}get output(){return this._outputs[1]}_buildBlock(e){var t,i,s;super._buildBlock(e),this._frameGraphTask.light=(t=this.light.connectedPoint)==null?void 0:t.value,this._frameGraphTask.objectList=(i=this.objects.connectedPoint)==null?void 0:i.value,this._frameGraphTask.camera=(s=this.camera.connectedPoint)==null?void 0:s.value,this.generator.value=this._frameGraphTask,this.output.value=this._frameGraphTask.outputTexture}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.mapSize = ${this.mapSize};`),e.push(`${this._codeVariableName}.useFloat32TextureType = ${this.useFloat32TextureType};`),e.push(`${this._codeVariableName}.useRedTextureFormat = ${this.useRedTextureFormat};`),e.push(`${this._codeVariableName}.bias = ${this.bias};`),e.push(`${this._codeVariableName}.normalBias = ${this.normalBias};`),e.push(`${this._codeVariableName}.darkness = ${this.darkness};`),e.push(`${this._codeVariableName}.filter = ${this.filter};`),e.push(`${this._codeVariableName}.filteringQuality = ${this.filteringQuality};`),e.push(`${this._codeVariableName}.transparencyShadow = ${this.transparencyShadow};`),e.push(`${this._codeVariableName}.enableSoftTransparentShadow = ${this.enableSoftTransparentShadow};`),e.push(`${this._codeVariableName}.useOpacityTextureForTransparentShadow = ${this.useOpacityTextureForTransparentShadow};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.mapSize=this.mapSize,e.useFloat32TextureType=this.useFloat32TextureType,e.useRedTextureFormat=this.useRedTextureFormat,e.bias=this.bias,e.normalBias=this.normalBias,e.darkness=this.darkness,e.filter=this.filter,e.filteringQuality=this.filteringQuality,e.transparencyShadow=this.transparencyShadow,e.enableSoftTransparentShadow=this.enableSoftTransparentShadow,e.useOpacityTextureForTransparentShadow=this.useOpacityTextureForTransparentShadow,e}_deserialize(e){super._deserialize(e),this.mapSize=e.mapSize,this.useFloat32TextureType=e.useFloat32TextureType,this.useRedTextureFormat=e.useRedTextureFormat,this.bias=e.bias,this.normalBias=e.normalBias,this.darkness=e.darkness,this.filter=e.filter,this.filteringQuality=e.filteringQuality,this.transparencyShadow=e.transparencyShadow,this.enableSoftTransparentShadow=e.enableSoftTransparentShadow,this.useOpacityTextureForTransparentShadow=e.useOpacityTextureForTransparentShadow}}F([lt("Map size",4,"PROPERTIES",{options:[{label:"128",value:128},{label:"256",value:256},{label:"512",value:512},{label:"1024",value:1024},{label:"2048",value:2048},{label:"4096",value:4096},{label:"8192",value:8192}]})],L4.prototype,"mapSize",null),F([lt("Use 32 bits float texture type",0,"PROPERTIES")],L4.prototype,"useFloat32TextureType",null),F([lt("Use red texture format",0,"PROPERTIES")],L4.prototype,"useRedTextureFormat",null),F([lt("Bias",1,"PROPERTIES",{min:0,max:1})],L4.prototype,"bias",null),F([lt("Normal bias",1,"PROPERTIES",{min:0,max:1})],L4.prototype,"normalBias",null),F([lt("Darkness",1,"PROPERTIES",{min:0,max:1})],L4.prototype,"darkness",null),F([lt("Filter",4,"PROPERTIES",{options:[{label:"None",value:Bi.FILTER_NONE},{label:"Exponential",value:Bi.FILTER_EXPONENTIALSHADOWMAP},{label:"Poisson Sampling",value:Bi.FILTER_POISSONSAMPLING},{label:"Blur exponential",value:Bi.FILTER_BLUREXPONENTIALSHADOWMAP},{label:"Close exponential",value:Bi.FILTER_CLOSEEXPONENTIALSHADOWMAP},{label:"Blur close exponential",value:Bi.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP},{label:"PCF",value:Bi.FILTER_PCF},{label:"PCSS",value:Bi.FILTER_PCSS}]})],L4.prototype,"filter",null),F([lt("Filter quality",4,"PROPERTIES",{options:[{label:"Low",value:Bi.QUALITY_LOW},{label:"Medium",value:Bi.QUALITY_MEDIUM},{label:"High",value:Bi.QUALITY_HIGH}]})],L4.prototype,"filteringQuality",null),F([lt("Transparency shadow",0,"PROPERTIES")],L4.prototype,"transparencyShadow",null),F([lt("Enable soft transparent shadows",0,"PROPERTIES")],L4.prototype,"enableSoftTransparentShadow",null),F([lt("Use opacity texture for transparent shadows",0,"PROPERTIES")],L4.prototype,"useOpacityTextureForTransparentShadow",null);class fb extends L4{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this._frameGraphTask=new hte(this.name,t,i)}get numCascades(){return this._frameGraphTask.numCascades}set numCascades(e){this._frameGraphTask.numCascades=e}get debug(){return this._frameGraphTask.debug}set debug(e){this._frameGraphTask.debug=e}get stabilizeCascades(){return this._frameGraphTask.stabilizeCascades}set stabilizeCascades(e){this._frameGraphTask.stabilizeCascades=e}get lambda(){return this._frameGraphTask.lambda}set lambda(e){this._frameGraphTask.lambda=e}get cascadeBlendPercentage(){return this._frameGraphTask.cascadeBlendPercentage}set cascadeBlendPercentage(e){this._frameGraphTask.cascadeBlendPercentage=e}get depthClamp(){return this._frameGraphTask.depthClamp}set depthClamp(e){this._frameGraphTask.depthClamp=e}get autoCalcDepthBounds(){return this._frameGraphTask.autoCalcDepthBounds}set autoCalcDepthBounds(e){this._frameGraphTask.autoCalcDepthBounds=e}get shadowMaxZ(){return this._frameGraphTask.shadowMaxZ}set shadowMaxZ(e){this._frameGraphTask.shadowMaxZ=e}getClassName(){return"NodeRenderGraphCascadedShadowGeneratorBlock"}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.numCascades = ${this.numCascades};`),e.push(`${this._codeVariableName}.debug = ${this.debug};`),e.push(`${this._codeVariableName}.stabilizeCascades = ${this.stabilizeCascades};`),e.push(`${this._codeVariableName}.lambda = ${this.lambda};`),e.push(`${this._codeVariableName}.cascadeBlendPercentage = ${this.cascadeBlendPercentage};`),e.push(`${this._codeVariableName}.depthClamp = ${this.depthClamp};`),e.push(`${this._codeVariableName}.autoCalcDepthBounds = ${this.autoCalcDepthBounds};`),e.push(`${this._codeVariableName}.shadowMaxZ = ${this.shadowMaxZ};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.numCascades=this.numCascades,e.debug=this.debug,e.stabilizeCascades=this.stabilizeCascades,e.lambda=this.lambda,e.cascadeBlendPercentage=this.cascadeBlendPercentage,e.depthClamp=this.depthClamp,e.autoCalcDepthBounds=this.autoCalcDepthBounds,e.shadowMaxZ=this.shadowMaxZ,e}_deserialize(e){super._deserialize(e),this.numCascades=e.numCascades,this.debug=e.debug,this.stabilizeCascades=e.stabilizeCascades,this.lambda=e.lambda,this.cascadeBlendPercentage=e.cascadeBlendPercentage,this.depthClamp=e.depthClamp,this.autoCalcDepthBounds=e.autoCalcDepthBounds,this.shadowMaxZ=e.shadowMaxZ}}F([lt("Number of cascades",4,"CSM PROPERTIES",{options:[{label:"2",value:2},{label:"3",value:3},{label:"4",value:4}]})],fb.prototype,"numCascades",null),F([lt("Debug mode",0,"CSM PROPERTIES")],fb.prototype,"debug",null),F([lt("Stabilize cascades",0,"CSM PROPERTIES")],fb.prototype,"stabilizeCascades",null),F([lt("Lambda",1,"CSM PROPERTIES",{min:0,max:1})],fb.prototype,"lambda",null),F([lt("Cascade blend",1,"CSM PROPERTIES",{min:0,max:1})],fb.prototype,"cascadeBlendPercentage",null),F([lt("Depth clamp",0,"CSM PROPERTIES")],fb.prototype,"depthClamp",null),F([lt("Auto-Calc depth bounds",0,"CSM PROPERTIES")],fb.prototype,"autoCalcDepthBounds",null),F([lt("Shadow maxZ",1,"CSM PROPERTIES")],fb.prototype,"shadowMaxZ",null),ve("BABYLON.NodeRenderGraphCascadedShadowGeneratorBlock",fb);const Jze=[new St(0,0,0,0),new St(1,1,1,1),new St(1e8,1e8,1e8,1e8)];class yte extends q1{get camera(){return this._camera}set camera(e){this._camera=e,this._renderer.activeCamera=this.camera}get reverseCulling(){return this._reverseCulling}set reverseCulling(e){this._reverseCulling=e;const t=Da.GetConfiguration(this._renderer.renderPassId);t&&(t.reverseCulling=e)}get objectRenderer(){return this._renderer}get name(){return this._name}set name(e){this._name=e,this._renderer&&(this._renderer.name=e)}constructor(e,t,i,s){super(e,t),this.depthTest=!0,this.depthWrite=!0,this.size={width:100,height:100},this.sizeIsPercentage=!0,this.samples=1,this._reverseCulling=!1,this.dontRenderWhenMaterialDepthWriteIsDisabled=!0,this.textureDescriptions=[],this._scene=i,this._engine=this._scene.getEngine(),this._renderer=new x0(e,i,s),this._renderer.renderSprites=!1,this._renderer.renderParticles=!1,this._renderer.customIsReadyFunction=(r,n,o)=>this.dontRenderWhenMaterialDepthWriteIsDisabled&&r.material&&r.material.disableDepthWrite?!!o:r.isReady(n===0),this._renderer.onBeforeRenderingManagerRenderObservable.add(()=>{this._renderer.options.doNotChangeAspectRatio||i.updateTransformMatrix(!0)}),this.name=e,this._clearAttachmentsLayout=new Map,this._allAttachmentsLayout=[],this.outputDepthTexture=this._frameGraph.textureManager.createDanglingHandle(),this.geometryViewDepthTexture=this._frameGraph.textureManager.createDanglingHandle(),this.geometryScreenDepthTexture=this._frameGraph.textureManager.createDanglingHandle(),this.geometryViewNormalTexture=this._frameGraph.textureManager.createDanglingHandle(),this.geometryWorldNormalTexture=this._frameGraph.textureManager.createDanglingHandle(),this.geometryLocalPositionTexture=this._frameGraph.textureManager.createDanglingHandle(),this.geometryWorldPositionTexture=this._frameGraph.textureManager.createDanglingHandle(),this.geometryAlbedoTexture=this._frameGraph.textureManager.createDanglingHandle(),this.geometryReflectivityTexture=this._frameGraph.textureManager.createDanglingHandle(),this.geometryVelocityTexture=this._frameGraph.textureManager.createDanglingHandle(),this.geometryLinearVelocityTexture=this._frameGraph.textureManager.createDanglingHandle()}get excludedSkinnedMeshFromVelocityTexture(){return Da.GetConfiguration(this._renderer.renderPassId).excludedSkinnedMesh}isReady(){return this._renderer.isReadyForRendering(this._textureWidth,this._textureHeight)}record(){if(this.textureDescriptions.length===0||this.objectList===void 0)throw new Error(`FrameGraphGeometryRendererTask ${this.name}: object list and at least one geometry texture description must be provided`);this._renderer.renderList=this.objectList.meshes,this._renderer.particleSystemList=this.objectList.particleSystems;const e=this._createMultiRenderTargetTexture(),t=this._checkDepthTextureCompatibility();this._buildClearAttachmentsLayout(),this._registerForRenderPassId(this._renderer.renderPassId);const i=this._frameGraph.textureManager.getTextureDescription(e[0]);this._textureWidth=i.size.width,this._textureHeight=i.size.height,Da.MarkAsDirty(this._renderer.renderPassId,this.objectList.meshes||this._scene.meshes);const s=this._frameGraph.addRenderPass(this.name);s.setRenderTarget(e);for(let n=0;n<this.textureDescriptions.length;n++){const o=this.textureDescriptions[n],l=e[n],c=Da.GeometryTextureDescriptions.findIndex(f=>f.type===o.type);switch(Da.GeometryTextureDescriptions[c].type){case 5:this._frameGraph.textureManager.resolveDanglingHandle(this.geometryViewDepthTexture,l);break;case 10:this._frameGraph.textureManager.resolveDanglingHandle(this.geometryScreenDepthTexture,l);break;case 6:this._frameGraph.textureManager.resolveDanglingHandle(this.geometryViewNormalTexture,l);break;case 8:this._frameGraph.textureManager.resolveDanglingHandle(this.geometryWorldNormalTexture,l);break;case 9:this._frameGraph.textureManager.resolveDanglingHandle(this.geometryLocalPositionTexture,l);break;case 1:this._frameGraph.textureManager.resolveDanglingHandle(this.geometryWorldPositionTexture,l);break;case 12:this._frameGraph.textureManager.resolveDanglingHandle(this.geometryAlbedoTexture,l);break;case 3:this._frameGraph.textureManager.resolveDanglingHandle(this.geometryReflectivityTexture,l);break;case 2:this._frameGraph.textureManager.resolveDanglingHandle(this.geometryVelocityTexture,l);break;case 11:this._frameGraph.textureManager.resolveDanglingHandle(this.geometryLinearVelocityTexture,l);break}}s.setRenderTargetDepth(this.depthTexture),s.setExecuteFunc(n=>{this._renderer.renderList=this.objectList.meshes,this._renderer.particleSystemList=this.objectList.particleSystems,n.setDepthStates(this.depthTest&&t,this.depthWrite&&t),this._clearAttachmentsLayout.forEach((o,l)=>{n.clearColorAttachments(Jze[l],o)}),n.bindAttachments(this._allAttachmentsLayout),n.render(this._renderer,this._textureWidth,this._textureHeight)});const r=this._frameGraph.addRenderPass(this.name+"_disabled",!0);r.setRenderTarget(e),r.setRenderTargetDepth(this.depthTexture),r.setExecuteFunc(n=>{})}dispose(){Da.DeleteConfiguration(this._renderer.renderPassId),this._renderer.dispose(),super.dispose()}_createMultiRenderTargetTexture(){const e=[],t=[],i=[],s=[];for(let o=0;o<this.textureDescriptions.length;o++){const l=this.textureDescriptions[o],c=Da.GeometryTextureDescriptions.findIndex(u=>u.type===l.type);if(c===-1)throw new Error(`FrameGraphGeometryRendererTask ${this.name}: unknown texture type ${l.type}`);e[o]=l.textureType,t[o]=l.textureFormat,i[o]=Da.GeometryTextureDescriptions[c].name,s[o]=!1}const r=this._frameGraph.textureManager.createRenderTargetTexture(this.name,{size:this.size,sizeIsPercentage:this.sizeIsPercentage,options:{createMipMaps:!1,samples:this.samples,types:e,formats:t,useSRGBBuffers:s,labels:i}}),n=[];for(let o=0;o<this.textureDescriptions.length;o++)n.push(r+o);return n}_checkDepthTextureCompatibility(){let e=!1;if(this.depthTexture!==void 0){if(this.depthTexture===d3)throw new Error(`FrameGraphGeometryRendererTask ${this.name}: the depth/stencil back buffer is not allowed as a depth texture`);if(this._frameGraph.textureManager.getTextureDescription(this.depthTexture).options.samples!==this.samples)throw new Error(`FrameGraphGeometryRendererTask ${this.name}: the depth texture and the output texture must have the same number of samples`);this._frameGraph.textureManager.resolveDanglingHandle(this.outputDepthTexture,this.depthTexture),e=!0}return e}_buildClearAttachmentsLayout(){const e=new Map,t=[];for(let i=0;i<this.textureDescriptions.length;i++){const s=this.textureDescriptions[i],r=Da.GeometryTextureDescriptions.findIndex(l=>l.type===s.type),n=Da.GeometryTextureDescriptions[r];let o=e.get(n.clearType);if(o===void 0){o=[],e.set(n.clearType,o);for(let l=0;l<i;l++)o[l]=!1}e.forEach((l,c)=>{l.push(c===n.clearType)}),t.push(!0)}this._clearAttachmentsLayout=new Map,e.forEach((i,s)=>{this._clearAttachmentsLayout.set(s,this._engine.buildTextureLayout(i))}),this._allAttachmentsLayout=this._engine.buildTextureLayout(t)}_registerForRenderPassId(e){const t=Da.CreateConfiguration(e);for(let i=0;i<this.textureDescriptions.length;i++){const s=this.textureDescriptions[i],r=Da.GeometryTextureDescriptions.findIndex(o=>o.type===s.type),n=Da.GeometryTextureDescriptions[r];t.defines[n.defineIndex]=i}t.reverseCulling=this.reverseCulling}}class eo extends Hu{get task(){return this._frameGraphTask}constructor(e,t,i,s=!0){super(e,t,i),this.viewDepthFormat=6,this.viewDepthType=1,this.screenDepthFormat=6,this.screenDepthType=1,this.viewNormalFormat=5,this.viewNormalType=2,this.worldNormalFormat=5,this.worldNormalType=0,this.localPositionFormat=5,this.localPositionType=2,this.worldPositionFormat=5,this.worldPositionType=2,this.albedoFormat=5,this.albedoType=0,this.reflectivityFormat=5,this.reflectivityType=0,this.velocityFormat=5,this.velocityType=0,this.linearVelocityFormat=5,this.linearVelocityType=0,this._additionalConstructionParameters=[s],this.registerInput("depth",zt.AutoDetect,!0),this.registerInput("camera",zt.Camera),this.registerInput("objects",zt.ObjectList),this._addDependenciesInput(),this.registerOutput("outputDepth",zt.BasedOnInput),this.registerOutput("geomViewDepth",zt.TextureViewDepth),this.registerOutput("geomScreenDepth",zt.TextureScreenDepth),this.registerOutput("geomViewNormal",zt.TextureViewNormal),this.registerOutput("geomWorldNormal",zt.TextureWorldNormal),this.registerOutput("geomLocalPosition",zt.TextureLocalPosition),this.registerOutput("geomWorldPosition",zt.TextureWorldPosition),this.registerOutput("geomAlbedo",zt.TextureAlbedo),this.registerOutput("geomReflectivity",zt.TextureReflectivity),this.registerOutput("geomVelocity",zt.TextureVelocity),this.registerOutput("geomLinearVelocity",zt.TextureLinearVelocity),this.depth.addExcludedConnectionPointFromAllowedTypes(zt.TextureDepthStencilAttachment|zt.TextureBackBufferDepthStencilAttachment),this.outputDepth._typeConnectionSource=this.depth,this._frameGraphTask=new yte(this.name,t,i,{doNotChangeAspectRatio:s})}get depthTest(){return this._frameGraphTask.depthTest}set depthTest(e){this._frameGraphTask.depthTest=e}get depthWrite(){return this._frameGraphTask.depthWrite}set depthWrite(e){this._frameGraphTask.depthWrite=e}get doNotChangeAspectRatio(){return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio}set doNotChangeAspectRatio(e){const t=this._frameGraphTask.disabled,i=this.depthTest,s=this.depthWrite,r=this.width,n=this.height,o=this.sizeInPercentage,l=this.samples,c=this.reverseCulling,u=this.dontRenderWhenMaterialDepthWriteIsDisabled;this._frameGraphTask.dispose(),this._frameGraphTask=new yte(this.name,this._frameGraph,this._scene,{doNotChangeAspectRatio:e}),this._additionalConstructionParameters=[e],this.depthTest=i,this.depthWrite=s,this.width=r,this.height=n,this.sizeInPercentage=o,this.samples=l,this.reverseCulling=c,this.dontRenderWhenMaterialDepthWriteIsDisabled=u,this._frameGraphTask.disabled=t}get width(){return this._frameGraphTask.size.width}set width(e){this._frameGraphTask.size.width=e}get height(){return this._frameGraphTask.size.height}set height(e){this._frameGraphTask.size.height=e}get sizeInPercentage(){return this._frameGraphTask.sizeIsPercentage}set sizeInPercentage(e){this._frameGraphTask.sizeIsPercentage=e}get samples(){return this._frameGraphTask.samples}set samples(e){this._frameGraphTask.samples=e}get reverseCulling(){return this._frameGraphTask.reverseCulling}set reverseCulling(e){this._frameGraphTask.reverseCulling=e}get dontRenderWhenMaterialDepthWriteIsDisabled(){return this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled}set dontRenderWhenMaterialDepthWriteIsDisabled(e){this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled=e}getClassName(){return"NodeRenderGraphGeometryRendererBlock"}get depth(){return this._inputs[0]}get camera(){return this._inputs[1]}get objects(){return this._inputs[2]}get outputDepth(){return this._outputs[0]}get geomViewDepth(){return this._outputs[1]}get geomScreenDepth(){return this._outputs[2]}get geomViewNormal(){return this._outputs[3]}get geomWorldNormal(){return this._outputs[4]}get geomLocalPosition(){return this._outputs[5]}get geomWorldPosition(){return this._outputs[6]}get geomAlbedo(){return this._outputs[7]}get geomReflectivity(){return this._outputs[8]}get geomVelocity(){return this._outputs[9]}get geomLinearVelocity(){return this._outputs[10]}_buildBlock(e){var n,o,l;super._buildBlock(e);const t=[this.geomViewDepth.isConnected,this.geomScreenDepth.isConnected,this.geomViewNormal.isConnected,this.geomWorldNormal.isConnected,this.geomLocalPosition.isConnected,this.geomWorldPosition.isConnected,this.geomAlbedo.isConnected,this.geomReflectivity.isConnected,this.geomVelocity.isConnected,this.geomLinearVelocity.isConnected];if(t.every(c=>!c))throw new Error("NodeRenderGraphGeometryRendererBlock: At least one output geometry buffer must be connected");this.outputDepth.value=this._frameGraphTask.outputDepthTexture,this.geomViewDepth.value=this._frameGraphTask.geometryViewDepthTexture,this.geomScreenDepth.value=this._frameGraphTask.geometryScreenDepthTexture,this.geomViewNormal.value=this._frameGraphTask.geometryViewNormalTexture,this.geomWorldNormal.value=this._frameGraphTask.geometryWorldNormalTexture,this.geomLocalPosition.value=this._frameGraphTask.geometryLocalPositionTexture,this.geomWorldPosition.value=this._frameGraphTask.geometryWorldPositionTexture,this.geomAlbedo.value=this._frameGraphTask.geometryAlbedoTexture,this.geomReflectivity.value=this._frameGraphTask.geometryReflectivityTexture,this.geomVelocity.value=this._frameGraphTask.geometryVelocityTexture,this.geomLinearVelocity.value=this._frameGraphTask.geometryLinearVelocityTexture,this._frameGraphTask.depthTexture=(n=this.depth.connectedPoint)==null?void 0:n.value,this._frameGraphTask.camera=(o=this.camera.connectedPoint)==null?void 0:o.value,this._frameGraphTask.objectList=(l=this.objects.connectedPoint)==null?void 0:l.value,this._frameGraphTask.textureDescriptions=[];const i=[this.viewDepthFormat,this.screenDepthFormat,this.viewNormalFormat,this.worldNormalFormat,this.localPositionFormat,this.worldPositionFormat,this.albedoFormat,this.reflectivityFormat,this.velocityFormat,this.linearVelocityFormat],s=[this.viewDepthType,this.screenDepthType,this.viewNormalType,this.worldNormalType,this.localPositionType,this.worldPositionType,this.albedoType,this.reflectivityType,this.velocityType,this.linearVelocityType],r=[5,10,6,8,9,1,12,3,2,11];for(let c=0;c<t.length;c++)t[c]&&this._frameGraphTask.textureDescriptions.push({textureFormat:i[c],textureType:s[c],type:r[c]})}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`),e.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`),e.push(`${this._codeVariableName}.samples = ${this.samples};`),e.push(`${this._codeVariableName}.reverseCulling = ${this.reverseCulling};`),e.push(`${this._codeVariableName}.dontRenderWhenMaterialDepthWriteIsDisabled = ${this.dontRenderWhenMaterialDepthWriteIsDisabled};`),e.push(`${this._codeVariableName}.viewDepthFormat = ${this.viewDepthFormat};`),e.push(`${this._codeVariableName}.viewDepthType = ${this.viewDepthType};`),e.push(`${this._codeVariableName}.screenDepthFormat = ${this.screenDepthFormat};`),e.push(`${this._codeVariableName}.screenDepthType = ${this.screenDepthType};`),e.push(`${this._codeVariableName}.localPositionFormat = ${this.localPositionFormat};`),e.push(`${this._codeVariableName}.localPositionType = ${this.localPositionType};`),e.push(`${this._codeVariableName}.worldPositionFormat = ${this.worldPositionFormat};`),e.push(`${this._codeVariableName}.worldPositionType = ${this.worldPositionType};`),e.push(`${this._codeVariableName}.viewNormalFormat = ${this.viewNormalFormat};`),e.push(`${this._codeVariableName}.viewNormalType = ${this.viewNormalType};`),e.push(`${this._codeVariableName}.worldNormalFormat = ${this.worldNormalFormat};`),e.push(`${this._codeVariableName}.worldNormalType = ${this.worldNormalType};`),e.push(`${this._codeVariableName}.albedoFormat = ${this.albedoFormat};`),e.push(`${this._codeVariableName}.albedoType = ${this.albedoType};`),e.push(`${this._codeVariableName}.reflectivityFormat = ${this.reflectivityFormat};`),e.push(`${this._codeVariableName}.reflectivityType = ${this.reflectivityType};`),e.push(`${this._codeVariableName}.velocityFormat = ${this.velocityFormat};`),e.push(`${this._codeVariableName}.velocityType = ${this.velocityType};`),e.push(`${this._codeVariableName}.linearVelocityFormat = ${this.linearVelocityFormat};`),e.push(`${this._codeVariableName}.linearVelocityType = ${this.linearVelocityType};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.depthTest=this.depthTest,e.depthWrite=this.depthWrite,e.samples=this.samples,e.reverseCulling=this.reverseCulling,e.dontRenderWhenMaterialDepthWriteIsDisabled=this.dontRenderWhenMaterialDepthWriteIsDisabled,e.viewDepthFormat=this.viewDepthFormat,e.viewDepthType=this.viewDepthType,e.screenDepthFormat=this.screenDepthFormat,e.screenDepthType=this.screenDepthType,e.localPositionFormat=this.localPositionFormat,e.localPositionType=this.localPositionType,e.worldPositionFormat=this.worldPositionFormat,e.worldPositionType=this.worldPositionType,e.viewNormalFormat=this.viewNormalFormat,e.viewNormalType=this.viewNormalType,e.worldNormalFormat=this.worldNormalFormat,e.worldNormalType=this.worldNormalType,e.albedoFormat=this.albedoFormat,e.albedoType=this.albedoType,e.reflectivityFormat=this.reflectivityFormat,e.reflectivityType=this.reflectivityType,e.velocityFormat=this.velocityFormat,e.velocityType=this.velocityType,e.linearVelocityFormat=this.linearVelocityFormat,e.linearVelocityType=this.linearVelocityType,e}_deserialize(e){super._deserialize(e),this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.samples=e.samples,this.reverseCulling=e.reverseCulling,this.dontRenderWhenMaterialDepthWriteIsDisabled=e.dontRenderWhenMaterialDepthWriteIsDisabled,this.viewDepthFormat=e.viewDepthFormat,this.viewDepthType=e.viewDepthType,this.screenDepthFormat=e.screenDepthFormat,this.screenDepthType=e.screenDepthType,this.localPositionFormat=e.localPositionFormat,this.localPositionType=e.localPositionType,this.worldPositionFormat=e.worldPositionFormat,this.worldPositionType=e.worldPositionType,this.viewNormalFormat=e.viewNormalFormat,this.viewNormalType=e.viewNormalType,this.worldNormalFormat=e.worldNormalFormat,this.worldNormalType=e.worldNormalType,this.albedoFormat=e.albedoFormat,this.albedoType=e.albedoType,this.reflectivityFormat=e.reflectivityFormat,this.reflectivityType=e.reflectivityType,this.velocityFormat=e.velocityFormat,this.velocityType=e.velocityType,this.linearVelocityFormat=e.linearVelocityFormat,this.linearVelocityType=e.linearVelocityType}}F([lt("Depth test",0,"PROPERTIES")],eo.prototype,"depthTest",null),F([lt("Depth write",0,"PROPERTIES")],eo.prototype,"depthWrite",null),F([lt("Do not change aspect ratio",0,"PROPERTIES")],eo.prototype,"doNotChangeAspectRatio",null),F([lt("Texture width",2,"PROPERTIES")],eo.prototype,"width",null),F([lt("Texture height",2,"PROPERTIES")],eo.prototype,"height",null),F([lt("Size is in percentage",0,"PROPERTIES")],eo.prototype,"sizeInPercentage",null),F([lt("Samples",2,"PROPERTIES",{min:1,max:8})],eo.prototype,"samples",null),F([lt("Reverse culling",0,"PROPERTIES")],eo.prototype,"reverseCulling",null),F([lt("Don't render if material depth write is disabled",0,"PROPERTIES")],eo.prototype,"dontRenderWhenMaterialDepthWriteIsDisabled",null),F([lt("View depth format",7,"GEOMETRY BUFFERS")],eo.prototype,"viewDepthFormat",void 0),F([lt("View depth type",8,"GEOMETRY BUFFERS")],eo.prototype,"viewDepthType",void 0),F([lt("Screen depth format",7,"GEOMETRY BUFFERS")],eo.prototype,"screenDepthFormat",void 0),F([lt("Screen depth type",8,"GEOMETRY BUFFERS")],eo.prototype,"screenDepthType",void 0),F([lt("View normal format",7,"GEOMETRY BUFFERS")],eo.prototype,"viewNormalFormat",void 0),F([lt("View normal type",8,"GEOMETRY BUFFERS")],eo.prototype,"viewNormalType",void 0),F([lt("World normal format",7,"GEOMETRY BUFFERS")],eo.prototype,"worldNormalFormat",void 0),F([lt("World normal type",8,"GEOMETRY BUFFERS")],eo.prototype,"worldNormalType",void 0),F([lt("Local position format",7,"GEOMETRY BUFFERS")],eo.prototype,"localPositionFormat",void 0),F([lt("Local position type",8,"GEOMETRY BUFFERS")],eo.prototype,"localPositionType",void 0),F([lt("World position format",7,"GEOMETRY BUFFERS")],eo.prototype,"worldPositionFormat",void 0),F([lt("World position type",8,"GEOMETRY BUFFERS")],eo.prototype,"worldPositionType",void 0),F([lt("Albedo format",7,"GEOMETRY BUFFERS")],eo.prototype,"albedoFormat",void 0),F([lt("Albedo type",8,"GEOMETRY BUFFERS")],eo.prototype,"albedoType",void 0),F([lt("Reflectivity format",7,"GEOMETRY BUFFERS")],eo.prototype,"reflectivityFormat",void 0),F([lt("Reflectivity type",8,"GEOMETRY BUFFERS")],eo.prototype,"reflectivityType",void 0),F([lt("Velocity format",7,"GEOMETRY BUFFERS")],eo.prototype,"velocityFormat",void 0),F([lt("Velocity type",8,"GEOMETRY BUFFERS")],eo.prototype,"velocityType",void 0),F([lt("Linear velocity format",7,"GEOMETRY BUFFERS")],eo.prototype,"linearVelocityFormat",void 0),F([lt("Linear velocity type",8,"GEOMETRY BUFFERS")],eo.prototype,"linearVelocityType",void 0),ve("BABYLON.NodeRenderGraphGeometryRendererBlock",eo);class Kpe extends L4{constructor(e,t,i){super(e,t,i),this._frameGraphTask=new ute(this.name,t,i)}getClassName(){return"NodeRenderGraphShadowGeneratorBlock"}}ve("BABYLON.NodeRenderGraphShadowGeneratorBlock",Kpe);class qpe{constructor(e,t=2,i=3,s=1,r=1){this._curIndex=0,this._sequence=[],this._numSamples=0,this.x=0,this.y=0,this._width=s,this._height=r,this._baseX=t,this._baseY=i,this._generateSequence(e),this.next()}regenerate(e){this._generateSequence(e),this.next()}setDimensions(e,t){this._width=e,this._height=t}next(){this.x=this._sequence[this._curIndex]/this._width,this.y=this._sequence[this._curIndex+1]/this._height,this._curIndex+=2,this._curIndex>=this._numSamples*2&&(this._curIndex=0)}_generateSequence(e){this._sequence=[],this._curIndex=0,this._numSamples=e;for(let t=1;t<=e;++t)this._sequence.push(this._halton(t,this._baseX)-.5,this._halton(t,this._baseY)-.5)}_halton(e,t){let i=1,s=0;for(;e>0;)i/=t,s+=i*(e%t),e=~~(e/t);return s}}class Gy extends Qr{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>iXe))):t.push(Promise.resolve().then(()=>tXe))}set samples(e){this._samples!==e&&(this._samples=e,this._hs.regenerate(e))}get samples(){return this._samples}get disabled(){return this._disabled}set disabled(e){this._disabled!==e&&(this._disabled=e,this._reset())}get textureWidth(){return this._textureWidth}set textureWidth(e){this._textureWidth!==e&&(this._textureWidth=e,this._reset())}get textureHeight(){return this._textureHeight}set textureHeight(e){this._textureHeight!==e&&(this._textureHeight=e,this._reset())}constructor(e,t=null,i){super({...i,name:e,engine:t||Qt.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:Gy.FragmentUrl,uniforms:Gy.Uniforms,samplers:Gy.Samplers}),this._samples=8,this.factor=.05,this._disabled=!1,this._textureWidth=0,this._textureHeight=0,this.disableOnCameraMove=!0,this._firstUpdate=!0,this._hs=new qpe(this.samples)}_reset(){this._hs.setDimensions(this._textureWidth/2,this._textureHeight/2),this._hs.next(),this._firstUpdate=!0}updateProjectionMatrix(){if(!this.disabled){if(this.camera&&!this.camera.hasMoved)if(this.camera.mode===_i.PERSPECTIVE_CAMERA){const e=this.camera.getProjectionMatrix();e.setRowFromFloats(2,this._hs.x,this._hs.y,e.m[10],e.m[11])}else{const e=this.camera.getProjectionMatrix(!0);e.setRowFromFloats(3,this._hs.x+e.m[12],this._hs.y+e.m[13],e.m[14],e.m[15])}this._hs.next()}}bind(){var t;if(super.bind(),this.disabled)return;this._drawWrapper.effect.setFloat("factor",(t=this.camera)!=null&&t.hasMoved&&this.disableOnCameraMove||this._firstUpdate?1:this.factor),this._firstUpdate=!1}}Gy.FragmentUrl="taa",Gy.Uniforms=["factor"],Gy.Samplers=["historySampler"];class Mte extends RB{constructor(e,t,i,s){super(e,t,i,s),this.postProcess=new Gy(`${e} post-process`,i.getEngine()),this._postProcessDrawWrapper=this.postProcess.drawWrapper}record(){if(this.targetTexture===void 0||this.objectList===void 0)throw new Error(`FrameGraphTAAObjectRendererTask ${this.name}: destinationTexture and objectList are required`);if(this.targetTexture===M0||this.depthTexture===d3)throw new Error(`FrameGraphTAAObjectRendererTask ${this.name}: the back buffer color/depth textures are not allowed. Use regular textures instead.`);this._renderer.renderList=this.objectList.meshes,this._renderer.particleSystemList=this.objectList.particleSystems;const e=this._frameGraph.textureManager.getTextureDescription(this.targetTexture);let t=!1;if(this.depthTexture!==void 0){if(this._frameGraph.textureManager.getTextureDescription(this.depthTexture).options.samples!==e.options.samples)throw new Error(`FrameGraphTAAObjectRendererTask ${this.name}: the depth texture and the output texture must have the same number of samples`);t=!0}this.postProcess.camera=this.camera,this.postProcess.textureWidth=e.size.width,this.postProcess.textureHeight=e.size.height;const i={size:e.size,options:{createMipMaps:e.options.createMipMaps,types:[2],formats:[5],samples:1,useSRGBBuffers:[!1],creationFlags:[0],labels:[""]},sizeIsPercentage:!1,isHistoryTexture:!0},s=this._frameGraph.textureManager.createRenderTargetTexture(`${this.name} history`,i);this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,s),this.depthTexture!==void 0&&this._frameGraph.textureManager.resolveDanglingHandle(this.outputDepthTexture,this.depthTexture),this._textureWidth=e.size.width,this._textureHeight=e.size.height;let r;this._setLightsForShadow();const n=this._frameGraph.addRenderPass(this.name);n.setRenderTarget(this.targetTexture),n.setRenderTargetDepth(this.depthTexture),n.setExecuteFunc(l=>{this._renderer.renderList=this.objectList.meshes,this._renderer.particleSystemList=this.objectList.particleSystems,this._renderer.renderInLinearSpace=this.renderInLinearSpace,this.postProcess.updateProjectionMatrix(),l.setDepthStates(this.depthTest&&t,this.depthWrite&&t),this.postProcess.disabled||(this._scene.activeCamera=this.camera,this._scene.setTransformMatrix(this.camera.getViewMatrix(),this.camera.getProjectionMatrix())),l.render(this._renderer,this._textureWidth,this._textureHeight),this._scene.activeCamera=null,r=r||l.createRenderTarget(`${this.name} ping/pong`,s),l.bindRenderTarget(r,"frame graph - TAA merge with history texture"),this.postProcess.disabled?l.copyTexture(this.targetTexture):l.applyFullScreenEffect(this._postProcessDrawWrapper,()=>{this.postProcess.bind(),l.bindTextureHandle(this._postProcessDrawWrapper.effect,"textureSampler",this.targetTexture),l.bindTextureHandle(this._postProcessDrawWrapper.effect,"historySampler",s)})});const o=this._frameGraph.addRenderPass(this.name+"_disabled",!0);return o.setRenderTarget(this.outputTexture),o.setRenderTargetDepth(this.depthTexture),o.setExecuteFunc(l=>{l.copyTexture(this.targetTexture)}),n}}class IL extends hb{get task(){return this._frameGraphTask}constructor(e,t,i,s=!0){super(e,t,i),this._additionalConstructionParameters=[s],this._frameGraphTask=new Mte(this.name,t,i,{doNotChangeAspectRatio:s})}get doNotChangeAspectRatio(){return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio}set doNotChangeAspectRatio(e){const t=this._frameGraphTask.disabled;this._frameGraphTask.dispose(),this._frameGraphTask=new Mte(this.name,this._frameGraph,this._scene,{doNotChangeAspectRatio:e}),this._additionalConstructionParameters=[e],this._frameGraphTask.disabled=t}get samples(){return this._frameGraphTask.postProcess.samples}set samples(e){this._frameGraphTask.postProcess.samples=e}get factor(){return this._frameGraphTask.postProcess.factor}set factor(e){this._frameGraphTask.postProcess.factor=e}get disableOnCameraMove(){return this._frameGraphTask.postProcess.disableOnCameraMove}set disableOnCameraMove(e){this._frameGraphTask.postProcess.disableOnCameraMove=e}get disableTAA(){return this._frameGraphTask.postProcess.disabled}set disableTAA(e){this._frameGraphTask.postProcess.disabled=e}getClassName(){return"NodeRenderGraphTAAObjectRendererBlock"}_dumpPropertiesCode(){const e=[];return e.push(`${this._codeVariableName}.doNotChangeAspectRatio = ${this.doNotChangeAspectRatio};`),e.push(`${this._codeVariableName}.samples = ${this.samples};`),e.push(`${this._codeVariableName}.factor = ${this.factor};`),e.push(`${this._codeVariableName}.disableOnCameraMove = ${this.disableOnCameraMove};`),e.push(`${this._codeVariableName}.disableTAA = ${this.disableTAA};`),super._dumpPropertiesCode()+e.join(`
`)}serialize(){const e=super.serialize();return e.doNotChangeAspectRatio=this.doNotChangeAspectRatio,e.samples=this.samples,e.factor=this.factor,e.disableOnCameraMove=this.disableOnCameraMove,e.disableTAA=this.disableTAA,e}_deserialize(e){super._deserialize(e),this.doNotChangeAspectRatio=e.doNotChangeAspectRatio,this.samples=e.samples,this.factor=e.factor,this.disableOnCameraMove=e.disableOnCameraMove,this.disableTAA=e.disableTAA}}F([lt("Do not change aspect ratio",0,"PROPERTIES")],IL.prototype,"doNotChangeAspectRatio",null),F([lt("Samples",2,"TEMPORAL ANTI-ALIASING")],IL.prototype,"samples",null),F([lt("Factor",1,"TEMPORAL ANTI-ALIASING")],IL.prototype,"factor",null),F([lt("Disable on camera move",0,"TEMPORAL ANTI-ALIASING")],IL.prototype,"disableOnCameraMove",null),F([lt("Disable TAA",0,"TEMPORAL ANTI-ALIASING")],IL.prototype,"disableTAA",null),ve("BABYLON.NodeRenderGraphTAAObjectRendererBlock",IL);class Ete extends q1{constructor(e,t,i,s=!0){super(e,t),this.layer=new Dr(i,s,!0),this.layer.utilityLayerScene._useCurrentFrameBuffer=!0,this.outputTexture=this._frameGraph.textureManager.createDanglingHandle()}record(){if(!this.targetTexture||!this.camera)throw new Error("FrameGraphUtilityLayerRendererTask: targetTexture and camera are required");this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,this.targetTexture);const e=this._frameGraph.addRenderPass(this.name);e.setRenderTarget(this.outputTexture),e.setExecuteFunc(i=>{this.layer.setRenderCamera(this.camera),i.render(this.layer)});const t=this._frameGraph.addRenderPass(this.name+"_disabled",!0);t.setRenderTarget(this.outputTexture),t.setExecuteFunc(i=>{})}dispose(){this.layer.dispose(),super.dispose()}}class Tte extends Hu{get task(){return this._frameGraphTask}constructor(e,t,i,s=!0){super(e,t,i),this._additionalConstructionParameters=[s],this.registerInput("target",zt.AutoDetect),this.registerInput("camera",zt.Camera),this._addDependenciesInput(),this.registerOutput("output",zt.BasedOnInput),this.target.addExcludedConnectionPointFromAllowedTypes(zt.TextureAll),this.output._typeConnectionSource=this.target,this._frameGraphTask=new Ete(e,t,i,s)}_createTask(e){const t=this._frameGraphTask.disabled;this._frameGraphTask.dispose(),this._frameGraphTask=new Ete(this.name,this._frameGraph,this._scene,e),this._additionalConstructionParameters=[e],this._frameGraphTask.disabled=t}get handleEvents(){return this._frameGraphTask.layer.handleEvents}set handleEvents(e){this._createTask(e)}getClassName(){return"NodeRenderGraphUtilityLayerRendererBlock"}get target(){return this._inputs[0]}get camera(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){var t,i;super._buildBlock(e),this.output.value=this._frameGraphTask.outputTexture,this._frameGraphTask.targetTexture=(t=this.target.connectedPoint)==null?void 0:t.value,this._frameGraphTask.camera=(i=this.camera.connectedPoint)==null?void 0:i.value}}F([lt("Handle events",0,"PROPERTIES")],Tte.prototype,"handleEvents",null),ve("BABYLON.NodeRenderGraphUtilityLayerRendererBlock",Tte);class Qpe extends Hu{get endpoints(){return this._endpoints}constructor(e,t,i){super(e,t,i),this._endpoints=[],this._isTeleportIn=!0,this.registerInput("input",zt.AutoDetect)}getClassName(){return"NodeRenderGraphTeleportInBlock"}get input(){return this._inputs[0]}_dumpCode(e,t){let i=super._dumpCode(e,t);for(const s of this.endpoints)t.indexOf(s)===-1&&(i+=s._dumpCode(e,t));return i}isAnAncestorOfType(e){if(this.getClassName()===e)return!0;for(const t of this.endpoints)if(t.isAnAncestorOfType(e))return!0;return!1}isAnAncestorOf(e){for(const t of this.endpoints)if(t===e||t.isAnAncestorOf(e))return!0;return!1}getDescendantOfPredicate(e){if(e(this))return this;for(const t of this.endpoints){const i=t.getDescendantOfPredicate(e);if(i)return i}return null}attachToEndpoint(e){e.detach(),this._endpoints.push(e),e._entryPoint=this,e._outputs[0]._typeConnectionSource=this._inputs[0],e._tempEntryPointUniqueId=null,e.name="> "+this.name}detachFromEndpoint(e){const t=this._endpoints.indexOf(e);t!==-1&&(this._endpoints.splice(t,1),e._outputs[0]._typeConnectionSource=null,e._entryPoint=null)}dispose(){super.dispose();for(const e of this._endpoints)this.detachFromEndpoint(e);this._endpoints=[]}}ve("BABYLON.NodeRenderGraphTeleportInBlock",Qpe);class Jpe extends Hu{constructor(e,t,i){super(e,t,i),this._entryPoint=null,this._tempEntryPointUniqueId=null,this._isTeleportOut=!0,this.registerOutput("output",zt.BasedOnInput)}get entryPoint(){return this._entryPoint}getClassName(){return"NodeRenderGraphTeleportOutBlock"}get output(){return this._outputs[0]}detach(){this._entryPoint&&this._entryPoint.detachFromEndpoint(this)}_buildBlock(){}_customBuildStep(e){this.entryPoint&&this.entryPoint.build(e)}_dumpCode(e,t){let i="";return this.entryPoint&&t.indexOf(this.entryPoint)===-1&&(i+=this.entryPoint._dumpCode(e,t)),i+super._dumpCode(e,t)}_dumpCodeForOutputConnections(e){let t=super._dumpCodeForOutputConnections(e);return this.entryPoint&&(t+=this.entryPoint._dumpCodeForOutputConnections(e)),t}clone(){const e=super.clone();return this.entryPoint&&this.entryPoint.attachToEndpoint(e),e}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return this.entryPoint&&(e+=`${this.entryPoint._codeVariableName}.attachToEndpoint(${this._codeVariableName});
`),e}serialize(){var t;const e=super.serialize();return e.entryPoint=((t=this.entryPoint)==null?void 0:t.uniqueId)??"",e}_deserialize(e){super._deserialize(e),this._tempEntryPointUniqueId=e.entryPoint}}ve("BABYLON.NodeRenderGraphTeleportOutBlock",Jpe);class $pe extends q1{constructor(e,t){super(e,t),this.outputTexture=this._frameGraph.textureManager.createDanglingHandle()}record(){if(this.sourceTexture===void 0||this.targetTexture===void 0)throw new Error(`FrameGraphCopyToTextureTask "${this.name}": sourceTexture and targetTexture are required`);this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,this.targetTexture);const e=this._frameGraph.addRenderPass(this.name);e.addDependencies(this.sourceTexture),e.setRenderTarget(this.outputTexture),e.setExecuteFunc(i=>{i.copyTexture(this.sourceTexture)});const t=this._frameGraph.addRenderPass(this.name+"_disabled",!0);t.setRenderTarget(this.outputTexture),t.setExecuteFunc(i=>{})}}class e3e extends Hu{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this.registerInput("source",zt.AutoDetect),this.registerInput("target",zt.AutoDetect),this._addDependenciesInput(),this.registerOutput("output",zt.BasedOnInput),this.source.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer),this.target.addExcludedConnectionPointFromAllowedTypes(zt.TextureAll),this.output._typeConnectionSource=this.target,this._frameGraphTask=new $pe(e,t)}getClassName(){return"NodeRenderGraphCopyTextureBlock"}get source(){return this._inputs[0]}get target(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){var t,i;super._buildBlock(e),this.output.value=this._frameGraphTask.outputTexture,this._frameGraphTask.sourceTexture=(t=this.source.connectedPoint)==null?void 0:t.value,this._frameGraphTask.targetTexture=(i=this.target.connectedPoint)==null?void 0:i.value}}ve("BABYLON.NodeRenderGraphCopyTextureBlock",e3e);class t3e extends q1{constructor(e,t){super(e,t),this.outputTexture=this._frameGraph.textureManager.createDanglingHandle()}record(){if(this.targetTexture===void 0)throw new Error(`FrameGraphGenerateMipMapsTask ${this.name}: targetTexture is required`);if(this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,this.targetTexture),!this._frameGraph.textureManager.getTextureDescription(this.targetTexture).options.createMipMaps)throw new Error(`FrameGraphGenerateMipMapsTask ${this.name}: targetTexture must have createMipMaps set to true`);const t=this._frameGraph.addRenderPass(this.name);t.setRenderTarget(this.outputTexture),t.setExecuteFunc(s=>{s.generateMipMaps()});const i=this._frameGraph.addRenderPass(this.name+"_disabled",!0);i.setRenderTarget(this.outputTexture),i.setExecuteFunc(s=>{})}}class i3e extends Hu{get task(){return this._frameGraphTask}constructor(e,t,i){super(e,t,i),this.registerInput("target",zt.AutoDetect),this._addDependenciesInput(),this.registerOutput("output",zt.BasedOnInput),this.target.addExcludedConnectionPointFromAllowedTypes(zt.TextureAllButBackBuffer),this.output._typeConnectionSource=this.target,this._frameGraphTask=new t3e(e,t)}getClassName(){return"NodeRenderGraphGenerateMipmapsBlock"}get target(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){var t;super._buildBlock(e),this._propagateInputValueToOutput(this.target,this.output),this._frameGraphTask.targetTexture=(t=this.target.connectedPoint)==null?void 0:t.value}}ve("BABYLON.NodeRenderGraphGenerateMipmapsBlock",i3e);class $ze{}class I4 extends Ba{get coloredMaterial(){return this._coloredMaterial}get hoverMaterial(){return this._hoverMaterial}get disableMaterial(){return this._disableMaterial}constructor(e,t=Pe.Gray(),i=Dr.DefaultUtilityLayer,s=null,r=1,n=Pe.Yellow(),o=Pe.Gray()){var b,M,T,O,R,I,N;super(i),this._pointerObserver=null,this.snapDistance=0,this.onSnapObservable=new xe,this.uniformScaling=!1,this.sensitivity=1,this.dragScale=1,this.incrementalSnap=!1,this._isEnabled=!0,this._parent=null,this._dragging=!1,this._tmpVector=new P(0,0,0),this._incrementalStartupValue=P.Zero(),this._parent=s,this._coloredMaterial=new Bt("",i.utilityLayerScene),this._coloredMaterial.diffuseColor=t,this._coloredMaterial.specularColor=t.subtract(new Pe(.1,.1,.1)),this._hoverMaterial=new Bt("",i.utilityLayerScene),this._hoverMaterial.diffuseColor=n,this._disableMaterial=new Bt("",i.utilityLayerScene),this._disableMaterial.diffuseColor=o,this._disableMaterial.alpha=.4,this._gizmoMesh=new Ne("axis",i.utilityLayerScene);const{arrowMesh:l,arrowTail:c}=this._createGizmoMesh(this._gizmoMesh,r),u=this._createGizmoMesh(this._gizmoMesh,r+4,!0);this._gizmoMesh.lookAt(this._rootMesh.position.add(e)),this._rootMesh.addChild(this._gizmoMesh,Ba.PreserveScaling),this._gizmoMesh.scaling.scaleInPlace(1/3);const f=l.position.clone(),p=c.position.clone(),m=c.scaling.clone(),_=w=>{const D=w*(3/this._rootMesh.scaling.length())*6;l.position.z+=D/3.5,c.scaling.y+=D,this.dragScale=c.scaling.y,c.position.z=l.position.z/2},d=()=>{l.position.set(f.x,f.y,f.z),c.position.set(p.x,p.y,p.z),c.scaling.set(m.x,m.y,m.z),this.dragScale=c.scaling.y,this._dragging=!1};this.dragBehavior=new Nl({dragAxis:e}),this.dragBehavior.moveAttached=!1,this.dragBehavior.updateDragPlane=!1,this._rootMesh.addBehavior(this.dragBehavior);let h=0,x=0;const A={snapDistance:0};this.dragBehavior.onDragObservable.add(w=>{if(this.attachedNode){const D=this.sensitivity*w.dragDistance*(this.scaleRatio*3/this._rootMesh.scaling.length()),k=this._tmpVector;let Y=!1,V=0;if(this.uniformScaling?k.setAll(.57735):k.copyFrom(e),this.snapDistance==0)k.scaleToRef(D,k);else{h+=D,x+=D;const ie=this.incrementalSnap?x:h;Math.abs(ie)>this.snapDistance?(V=Math.floor(Math.abs(ie)/this.snapDistance),ie<0&&(V*=-1),h=h%this.snapDistance,k.scaleToRef(this.snapDistance*V,k),Y=!0):k.scaleInPlace(0)}k.addInPlaceFromFloats(1,1,1),k.x=Math.abs(k.x)<I4.MinimumAbsoluteScale?I4.MinimumAbsoluteScale*(k.x<0?-1:1):k.x,k.y=Math.abs(k.y)<I4.MinimumAbsoluteScale?I4.MinimumAbsoluteScale*(k.y<0?-1:1):k.y,k.z=Math.abs(k.z)<I4.MinimumAbsoluteScale?I4.MinimumAbsoluteScale*(k.z<0?-1:1):k.z;const ee=this.attachedNode._isMesh?this.attachedNode:void 0;Math.abs(this.snapDistance)>0&&this.incrementalSnap?(this.attachedNode.getWorldMatrix().decompose(void 0,ae.Quaternion[0],ae.Vector3[2],Ba.PreserveScaling?ee:void 0),k.addInPlace(this._incrementalStartupValue),k.addInPlaceFromFloats(-1,-1,-1),k.x=Math.abs(k.x)*(this._incrementalStartupValue.x>0?1:-1),k.y=Math.abs(k.y)*(this._incrementalStartupValue.y>0?1:-1),k.z=Math.abs(k.z)*(this._incrementalStartupValue.z>0?1:-1),me.ComposeToRef(k,ae.Quaternion[0],ae.Vector3[2],ae.Matrix[1])):(me.ScalingToRef(k.x,k.y,k.z,ae.Matrix[2]),ae.Matrix[2].multiplyToRef(this.attachedNode.getWorldMatrix(),ae.Matrix[1])),ae.Matrix[1].decompose(ae.Vector3[1],void 0,void 0,Ba.PreserveScaling?ee:void 0);const K=1e5;Math.abs(ae.Vector3[1].x)<K&&Math.abs(ae.Vector3[1].y)<K&&Math.abs(ae.Vector3[1].z)<K&&this.attachedNode.getWorldMatrix().copyFrom(ae.Matrix[1]),Y&&(A.snapDistance=this.snapDistance*V,this.onSnapObservable.notifyObservers(A)),this._matrixChanged()}}),this.dragBehavior.onDragStartObservable.add(()=>{var D;this._dragging=!0;const w=this.attachedNode._isMesh?this.attachedNode:void 0;(D=this.attachedNode)==null||D.getWorldMatrix().decompose(this._incrementalStartupValue,void 0,void 0,Ba.PreserveScaling?w:void 0),h=0,x=0}),this.dragBehavior.onDragObservable.add(w=>_(w.dragDistance)),this.dragBehavior.onDragEndObservable.add(d),(T=(M=(b=s==null?void 0:s.uniformScaleGizmo)==null?void 0:b.dragBehavior)==null?void 0:M.onDragObservable)==null||T.add(w=>_(w.delta.y)),(I=(R=(O=s==null?void 0:s.uniformScaleGizmo)==null?void 0:O.dragBehavior)==null?void 0:R.onDragEndObservable)==null||I.add(d);const S={gizmoMeshes:[l,c],colliderMeshes:[u.arrowMesh,u.arrowTail],material:this._coloredMaterial,hoverMaterial:this._hoverMaterial,disableMaterial:this._disableMaterial,active:!1,dragBehavior:this.dragBehavior};(N=this._parent)==null||N.addToAxisCache(this._gizmoMesh,S),this._pointerObserver=i.utilityLayerScene.onPointerObservable.add(w=>{var k,Y,V,ee;if(this._customMeshSet)return;let D=(k=this._parent)==null?void 0:k.getAxisCache(this._gizmoMesh);if(this._isHovered=!!D&&D.colliderMeshes.indexOf((Y=w==null?void 0:w.pickInfo)==null?void 0:Y.pickedMesh)!=-1,D=(V=this._parent)==null?void 0:V.getAxisCache(this._rootMesh),this._isHovered||(this._isHovered=!!D&&D.colliderMeshes.indexOf((ee=w==null?void 0:w.pickInfo)==null?void 0:ee.pickedMesh)!=-1),!this._parent){const K=this.dragBehavior.enabled?this._isHovered||this._dragging?this._hoverMaterial:this._coloredMaterial:this._disableMaterial;this._setGizmoMeshMaterial(S.gizmoMeshes,K)}}),this.dragBehavior.onEnabledObservable.add(w=>{this._setGizmoMeshMaterial(S.gizmoMeshes,w?this._coloredMaterial:this._disableMaterial)});const E=i._getSharedGizmoLight();E.includedOnlyMeshes=E.includedOnlyMeshes.concat(this._rootMesh.getChildMeshes())}_createGizmoMesh(e,t,i=!1){const s=pa("yPosMesh",{size:.4*(1+(t-1)/4)},this.gizmoLayer.utilityLayerScene),r=e1("cylinder",{diameterTop:.005*t,height:.275,diameterBottom:.005*t,tessellation:96},this.gizmoLayer.utilityLayerScene);return s.scaling.scaleInPlace(.1),s.material=this._coloredMaterial,s.rotation.x=Math.PI/2,s.position.z+=.3,r.material=this._coloredMaterial,r.position.z+=.275/2,r.rotation.x=Math.PI/2,i&&(s.visibility=0,r.visibility=0),e.addChild(s),e.addChild(r),{arrowMesh:s,arrowTail:r}}_attachedNodeChanged(e){this.dragBehavior&&(this.dragBehavior.enabled=!!e)}set isEnabled(e){this._isEnabled=e,e?this._parent&&(this.attachedMesh=this._parent.attachedMesh,this.attachedNode=this._parent.attachedNode):(this.attachedMesh=null,this.attachedNode=null)}get isEnabled(){return this._isEnabled}dispose(){this.onSnapObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.dragBehavior.detach(),this._gizmoMesh&&this._gizmoMesh.dispose(),[this._coloredMaterial,this._hoverMaterial,this._disableMaterial].forEach(e=>{e&&e.dispose()}),super.dispose()}setCustomMesh(e,t=!1){super.setCustomMesh(e),t&&(this._rootMesh.getChildMeshes().forEach(i=>{i.material=this._coloredMaterial,i.color&&(i.color=this._coloredMaterial.diffuseColor)}),this._customMeshSet=!1)}}I4.MinimumAbsoluteScale=Ii;var Lte;(function(a){a[a.Rotation=0]="Rotation",a[a.Scaling=1]="Scaling"})(Lte||(Lte={}));class s3e extends Ba{set axisFactor(e){this._axisFactor=e;const t=this._scaleBoxesParent.getChildMeshes();let i=0;for(let s=0;s<3;s++)for(let r=0;r<3;r++)for(let n=0;n<3;n++){const o=(s===1?1:0)+(r===1?1:0)+(n===1?1:0);if(!(o===1||o===3)){if(t[i]){const l=new P(s-1,r-1,n-1);l.multiplyInPlace(this._axisFactor),t[i].setEnabled(l.lengthSquared()>Ii)}i++}}}get axisFactor(){return this._axisFactor}set scaleDragSpeed(e){this._scaleDragSpeed=e}get scaleDragSpeed(){return this._scaleDragSpeed}get coloredMaterial(){return this._coloredMaterial}get hoverMaterial(){return this._hoverColoredMaterial}get pointerDragBehavior(){return this._pointerDragBehavior}get isDragging(){return this._dragging||this._pointerDragBehavior.dragging}setColor(e){this._coloredMaterial.emissiveColor=e,this._hoverColoredMaterial.emissiveColor=e.clone().add(new Pe(.3,.3,.3)),this._lineBoundingBox.getChildren().forEach(t=>{t.color&&(t.color=e)})}constructor(e=Pe.Gray(),t=Dr.DefaultKeepDepthUtilityLayer){super(t),this._boundingDimensions=new P(1,1,1),this._renderObserver=null,this._pointerObserver=null,this._scaleDragSpeed=.2,this._rotateAnchorsDragBehaviors=[],this._scaleBoxesDragBehaviors=[],this._dragging=!1,this._tmpQuaternion=new Re,this._tmpVector=new P(0,0,0),this._tmpRotationMatrix=new me,this._incrementalStartupValue=P.Zero(),this._incrementalAnchorStartupValue=P.Zero(),this.ignoreChildren=!1,this.includeChildPredicate=null,this.rotationSphereSize=.1,this.scaleBoxSize=.1,this.fixedDragMeshScreenSize=!1,this.fixedDragMeshBoundsSize=!1,this.fixedDragMeshScreenSizeDistanceFactor=10,this.scalingSnapDistance=0,this.rotationSnapDistance=0,this.onDragStartObservable=new xe,this.onHoverStartObservable=new xe,this.onHoverEndObservable=new xe,this.onScaleBoxDragObservable=new xe,this.onScaleBoxDragEndObservable=new xe,this.onRotationSphereDragObservable=new xe,this.onRotationSphereDragEndObservable=new xe,this.scalePivot=null,this._axisFactor=new P(1,1,1),this.incrementalSnap=!1,this._existingMeshScale=new P,this._dragMesh=null,this._pointerDragBehavior=new Nl,this._cornerMesh=null,this.updateScale=!1,this._anchorMesh=new Si("anchor",t.utilityLayerScene),this._coloredMaterial=new Bt("",t.utilityLayerScene),this._coloredMaterial.disableLighting=!0,this._hoverColoredMaterial=new Bt("",t.utilityLayerScene),this._hoverColoredMaterial.disableLighting=!0,this._lineBoundingBox=new Si("",t.utilityLayerScene),this._lineBoundingBox.rotationQuaternion=new Re;const i=[];i.push(ta("lines",{points:[new P(0,0,0),new P(this._boundingDimensions.x,0,0)]},t.utilityLayerScene)),i.push(ta("lines",{points:[new P(0,0,0),new P(0,this._boundingDimensions.y,0)]},t.utilityLayerScene)),i.push(ta("lines",{points:[new P(0,0,0),new P(0,0,this._boundingDimensions.z)]},t.utilityLayerScene)),i.push(ta("lines",{points:[new P(this._boundingDimensions.x,0,0),new P(this._boundingDimensions.x,this._boundingDimensions.y,0)]},t.utilityLayerScene)),i.push(ta("lines",{points:[new P(this._boundingDimensions.x,0,0),new P(this._boundingDimensions.x,0,this._boundingDimensions.z)]},t.utilityLayerScene)),i.push(ta("lines",{points:[new P(0,this._boundingDimensions.y,0),new P(this._boundingDimensions.x,this._boundingDimensions.y,0)]},t.utilityLayerScene)),i.push(ta("lines",{points:[new P(0,this._boundingDimensions.y,0),new P(0,this._boundingDimensions.y,this._boundingDimensions.z)]},t.utilityLayerScene)),i.push(ta("lines",{points:[new P(0,0,this._boundingDimensions.z),new P(this._boundingDimensions.x,0,this._boundingDimensions.z)]},t.utilityLayerScene)),i.push(ta("lines",{points:[new P(0,0,this._boundingDimensions.z),new P(0,this._boundingDimensions.y,this._boundingDimensions.z)]},t.utilityLayerScene)),i.push(ta("lines",{points:[new P(this._boundingDimensions.x,this._boundingDimensions.y,this._boundingDimensions.z),new P(0,this._boundingDimensions.y,this._boundingDimensions.z)]},t.utilityLayerScene)),i.push(ta("lines",{points:[new P(this._boundingDimensions.x,this._boundingDimensions.y,this._boundingDimensions.z),new P(this._boundingDimensions.x,0,this._boundingDimensions.z)]},t.utilityLayerScene)),i.push(ta("lines",{points:[new P(this._boundingDimensions.x,this._boundingDimensions.y,this._boundingDimensions.z),new P(this._boundingDimensions.x,this._boundingDimensions.y,0)]},t.utilityLayerScene)),i.forEach(r=>{r.color=e,r.position.addInPlace(new P(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),r.isPickable=!1,this._lineBoundingBox.addChild(r)}),this._rootMesh.addChild(this._lineBoundingBox),this.setColor(e),this._rotateAnchorsParent=new Si("",t.utilityLayerScene),this._rotateAnchorsParent.rotationQuaternion=new Re;for(let r=0;r<12;r++){const n=pa("",{width:r<4||r>=8?1.6:.4,height:r>=4&&r<8?1.6:.4,depth:.4},t.utilityLayerScene);n.rotation.x=r<4||r>=8?Math.PI*.25:0,n.rotation.y=r>=4&&r<8?Math.PI*.25:0,n.bakeTransformIntoVertices(n.computeWorldMatrix(!0)),n.rotationQuaternion=new Re,n.material=this._coloredMaterial,n.isNearGrabbable=!0;const o=new Nl({});o.moveAttached=!1,o.updateDragPlane=!1,n.addBehavior(o);const l=new P(1,0,0);let c=0,u=0;o.onDragStartObservable.add(()=>{l.copyFrom(n.forward),c=0,u=0});const f=function(){const p=Math.floor(r/4);return ae.Vector3[0].set(p==0?1:0,p==1?1:0,p==2?1:0),ae.Vector3[0]};o.onDragObservable.add(p=>{if(this.onRotationSphereDragObservable.notifyObservers({dragOperation:0,dragAxis:f().clone()}),this.attachedMesh){const m=this.attachedMesh.parent;if(m&&m.scaling&&m.scaling.isNonUniformWithinEpsilon(.001)){de.Warn("BoundingBoxGizmo controls are not supported on child meshes with non-uniform parent scaling");return}zr._RemoveAndStorePivotPoint(this.attachedMesh);const _=l,d=p.dragPlaneNormal.scale(P.Dot(p.dragPlaneNormal,_)),h=_.subtract(d).normalizeToNew();let x=P.Dot(h,p.delta)<0?Math.abs(p.delta.length()):-Math.abs(p.delta.length());if(x=x/this._boundingDimensions.length()*this._anchorMesh.scaling.length(),this.attachedMesh.rotationQuaternion||(this.attachedMesh.rotationQuaternion=Re.RotationYawPitchRoll(this.attachedMesh.rotation.y,this.attachedMesh.rotation.x,this.attachedMesh.rotation.z)),this._anchorMesh.rotationQuaternion||(this._anchorMesh.rotationQuaternion=Re.RotationYawPitchRoll(this._anchorMesh.rotation.y,this._anchorMesh.rotation.x,this._anchorMesh.rotation.z)),c+=x,Math.abs(c)<=2*Math.PI){if(this.rotationSnapDistance>0){const A=Math.floor(Math.abs(c)/this.rotationSnapDistance)*(c<0?-1:1),S=this.rotationSnapDistance*A;x=S-u,u=S}r>=8?Re.RotationYawPitchRollToRef(0,0,x,this._tmpQuaternion):r>=4?Re.RotationYawPitchRollToRef(x,0,0,this._tmpQuaternion):Re.RotationYawPitchRollToRef(0,x,0,this._tmpQuaternion),this.attachedMesh.isUsingPivotMatrix()&&this._anchorMesh.position.copyFrom(this.attachedMesh.position),this._anchorMesh.addChild(this.attachedMesh),this._anchorMesh.getScene().useRightHandedSystem&&this._tmpQuaternion.conjugateInPlace(),this._tmpQuaternion.normalize(),this._anchorMesh.rotationQuaternion.multiplyToRef(this._tmpQuaternion,this._anchorMesh.rotationQuaternion),this._anchorMesh.rotationQuaternion.normalize(),this._anchorMesh.removeChild(this.attachedMesh),this.attachedMesh.setParent(m)}this.updateBoundingBox(),zr._RestorePivotPoint(this.attachedMesh)}this._updateDummy()}),o.onDragStartObservable.add(()=>{this.onDragStartObservable.notifyObservers({dragOperation:0,dragAxis:f().clone()}),this._dragging=!0,this._selectNode(n)}),o.onDragEndObservable.add(p=>{this.onRotationSphereDragEndObservable.notifyObservers({dragOperation:0,dragAxis:f().clone()}),this._dragging=!1,this._selectNode(null),this._updateDummy(),this._unhoverMeshOnTouchUp(p.pointerInfo,n)}),this._rotateAnchorsDragBehaviors.push(o),this._rotateAnchorsParent.addChild(n)}this._rootMesh.addChild(this._rotateAnchorsParent),this._scaleBoxesParent=new Si("",t.utilityLayerScene),this._scaleBoxesParent.rotationQuaternion=new Re;for(let r=0;r<3;r++)for(let n=0;n<3;n++)for(let o=0;o<3;o++){const l=(r===1?1:0)+(n===1?1:0)+(o===1?1:0);if(l===1||l===3)continue;const c=l===2?pa("",{size:1},t.utilityLayerScene):this._getCornerMesh(t);l===0&&(c.rotationQuaternion=Re.FromEulerAngles(n*.25*Math.PI,(o+3*r-r*o)*.25*Math.PI,0)),c.material=this._coloredMaterial,c._internalMetadata=l===2,c.isNearGrabbable=!0,ae.Vector3[0].set(r-1,n-1,o-1),ae.Vector3[0].normalize(),c.computeWorldMatrix(!0).invertToRef(ae.Matrix[0]);const u=P.TransformCoordinates(ae.Vector3[0],ae.Matrix[0]);u.normalize();const f=new Nl({dragAxis:u});f.updateDragPlane=!1,f.moveAttached=!1;let p=0,m=0;c.addBehavior(f),f.onDragObservable.add(_=>{if(this.onScaleBoxDragObservable.notifyObservers({dragOperation:1,dragAxis:new P(r-1,n-1,o-1)}),this.attachedMesh){const d=this.attachedMesh.parent;if(d&&d.scaling&&d.scaling.isNonUniformWithinEpsilon(.001)){de.Warn("BoundingBoxGizmo controls are not supported on child meshes with non-uniform parent scaling");return}zr._RemoveAndStorePivotPoint(this.attachedMesh);let h=_.dragDistance/this._boundingDimensions.length()*this._anchorMesh.scaling.length();if(p+=h,this.scalingSnapDistance>0){const S=Math.floor(Math.abs(p)/this.scalingSnapDistance)*(p<0?-1:1),E=this.scalingSnapDistance*S;h=E-m,m=E}const x=new P(h,h,h),A=new P(m,m,m);l===2&&(x.x*=Math.abs(u.x),x.y*=Math.abs(u.y),x.z*=Math.abs(u.z)),x.scaleInPlace(this._scaleDragSpeed),x.multiplyInPlace(this._axisFactor),A.scaleInPlace(this._scaleDragSpeed),A.multiplyInPlace(this._axisFactor),A.addInPlace(this._incrementalStartupValue),this.updateBoundingBox(),this.scalePivot?(this.attachedMesh.getWorldMatrix().getRotationMatrixToRef(this._tmpRotationMatrix),this._boundingDimensions.scaleToRef(.5,this._tmpVector),P.TransformCoordinatesToRef(this._tmpVector,this._tmpRotationMatrix,this._tmpVector),this._anchorMesh.position.subtractInPlace(this._tmpVector),this._boundingDimensions.multiplyToRef(this.scalePivot,this._tmpVector),P.TransformCoordinatesToRef(this._tmpVector,this._tmpRotationMatrix,this._tmpVector),this._anchorMesh.position.addInPlace(this._tmpVector)):(c.absolutePosition.subtractToRef(this._anchorMesh.position,this._tmpVector),this._anchorMesh.position.subtractInPlace(this._tmpVector),this.attachedMesh.isUsingPivotMatrix()&&this._anchorMesh.position.subtractInPlace(this.attachedMesh.getPivotPoint())),this._anchorMesh.addChild(this.attachedMesh),this.incrementalSnap?(A.x/=Math.abs(this._incrementalStartupValue.x)<Ii?1:this._incrementalStartupValue.x,A.y/=Math.abs(this._incrementalStartupValue.y)<Ii?1:this._incrementalStartupValue.y,A.z/=Math.abs(this._incrementalStartupValue.z)<Ii?1:this._incrementalStartupValue.z,A.x=Math.max(this._incrementalAnchorStartupValue.x*A.x,this.scalingSnapDistance),A.y=Math.max(this._incrementalAnchorStartupValue.y*A.y,this.scalingSnapDistance),A.z=Math.max(this._incrementalAnchorStartupValue.z*A.z,this.scalingSnapDistance),this._anchorMesh.scaling.x+=(A.x-this._anchorMesh.scaling.x)*Math.abs(u.x),this._anchorMesh.scaling.y+=(A.y-this._anchorMesh.scaling.y)*Math.abs(u.y),this._anchorMesh.scaling.z+=(A.z-this._anchorMesh.scaling.z)*Math.abs(u.z)):(this._anchorMesh.scaling.addInPlace(x),(this._anchorMesh.scaling.x<0||this._anchorMesh.scaling.y<0||this._anchorMesh.scaling.z<0)&&this._anchorMesh.scaling.subtractInPlace(x)),this._anchorMesh.removeChild(this.attachedMesh),this.attachedMesh.setParent(d),zr._RestorePivotPoint(this.attachedMesh)}this._updateDummy()}),f.onDragStartObservable.add(()=>{this.onDragStartObservable.notifyObservers({dragOperation:1,dragAxis:new P(r-1,n-1,o-1)}),this._dragging=!0,this._selectNode(c),p=0,m=0,this._incrementalStartupValue.copyFrom(this.attachedMesh.scaling),this._incrementalAnchorStartupValue.copyFrom(this._anchorMesh.scaling)}),f.onDragEndObservable.add(_=>{this.onScaleBoxDragEndObservable.notifyObservers({dragOperation:1,dragAxis:new P(r-1,n-1,o-1)}),this._dragging=!1,this._selectNode(null),this._updateDummy(),this._unhoverMeshOnTouchUp(_.pointerInfo,c)}),this._scaleBoxesParent.addChild(c),this._scaleBoxesDragBehaviors.push(f)}this._rootMesh.addChild(this._scaleBoxesParent);const s=[];this._pointerObserver=t.utilityLayerScene.onPointerObservable.add(r=>{s[r.event.pointerId]?r.pickInfo&&r.pickInfo.pickedMesh!=s[r.event.pointerId]&&(s[r.event.pointerId].material=this._coloredMaterial,delete s[r.event.pointerId],this.onHoverEndObservable.notifyObservers(),this._isHovered=!1):this._rotateAnchorsParent.getChildMeshes().concat(this._scaleBoxesParent.getChildMeshes()).forEach(n=>{r.pickInfo&&r.pickInfo.pickedMesh==n&&(s[r.event.pointerId]=n,n.material=this._hoverColoredMaterial,this.onHoverStartObservable.notifyObservers(),this._isHovered=!0)})}),this._renderObserver=this.gizmoLayer.originalScene.onBeforeRenderObservable.add(()=>{this.attachedMesh&&!this._existingMeshScale.equals(this.attachedMesh.scaling)?this.updateBoundingBox():(this.fixedDragMeshScreenSize||this.fixedDragMeshBoundsSize)&&(this._updateRotationAnchors(),this._updateScaleBoxes()),this._dragMesh&&this.attachedMesh&&this._pointerDragBehavior.dragging&&(this._lineBoundingBox.position.rotateByQuaternionToRef(this._rootMesh.rotationQuaternion,this._tmpVector),this.attachedMesh.setAbsolutePosition(this._dragMesh.position.add(this._tmpVector.scale(-1))))}),this.updateBoundingBox()}_getCornerMesh(e){if(!this._cornerMesh){const t=pa("",{width:.4,height:.4,depth:1.6},e.utilityLayerScene);t.position.z=.6;const i=pa("",{width:.4,height:1.6,depth:.4},e.utilityLayerScene);i.position.y=.6;const s=pa("",{width:1.6,height:.4,depth:.4},e.utilityLayerScene);return s.position.x=.6,this._cornerMesh=Ne.MergeMeshes([s,i,t],!0),this._cornerMesh}return this._cornerMesh.clone()}_attachedNodeChanged(e){if(e){this._anchorMesh.scaling.setAll(1),zr._RemoveAndStorePivotPoint(e);const t=e.parent;this._anchorMesh.addChild(e),this._anchorMesh.removeChild(e),e.setParent(t),zr._RestorePivotPoint(e),this.updateBoundingBox(),e.getChildMeshes(!1).forEach(i=>{i.markAsDirty("scaling")}),this.gizmoLayer.utilityLayerScene.onAfterRenderObservable.addOnce(()=>{this._updateDummy()})}}_selectNode(e){this._rotateAnchorsParent.getChildMeshes().concat(this._scaleBoxesParent.getChildMeshes()).forEach(t=>{t.isVisible=!e||t==e})}_unhoverMeshOnTouchUp(e,t){(e==null?void 0:e.event)instanceof PointerEvent&&(e==null?void 0:e.event.pointerType)==="touch"&&(t.material=this._coloredMaterial)}getScaleBoxes(){return this._scaleBoxesParent.getChildMeshes()}updateBoundingBox(){if(this.attachedMesh){zr._RemoveAndStorePivotPoint(this.attachedMesh);const e=this.attachedMesh.parent;this.attachedMesh.setParent(null),this._update(),this.attachedMesh.rotationQuaternion||(this.attachedMesh.rotationQuaternion=Re.RotationYawPitchRoll(this.attachedMesh.rotation.y,this.attachedMesh.rotation.x,this.attachedMesh.rotation.z)),this._anchorMesh.rotationQuaternion||(this._anchorMesh.rotationQuaternion=Re.RotationYawPitchRoll(this._anchorMesh.rotation.y,this._anchorMesh.rotation.x,this._anchorMesh.rotation.z)),this._anchorMesh.rotationQuaternion.copyFrom(this.attachedMesh.rotationQuaternion),this._tmpQuaternion.copyFrom(this.attachedMesh.rotationQuaternion),this._tmpVector.copyFrom(this.attachedMesh.position),this.attachedMesh.rotationQuaternion.set(0,0,0,1),this.attachedMesh.position.set(0,0,0);const t=this.attachedMesh.getHierarchyBoundingVectors(!this.ignoreChildren,this.includeChildPredicate);t.max.subtractToRef(t.min,this._boundingDimensions),this._lineBoundingBox.scaling.copyFrom(this._boundingDimensions),this._lineBoundingBox.position.set((t.max.x+t.min.x)/2,(t.max.y+t.min.y)/2,(t.max.z+t.min.z)/2),this._rotateAnchorsParent.position.copyFrom(this._lineBoundingBox.position),this._scaleBoxesParent.position.copyFrom(this._lineBoundingBox.position),this._lineBoundingBox.computeWorldMatrix(),this._anchorMesh.position.copyFrom(this._lineBoundingBox.absolutePosition),this.attachedMesh.rotationQuaternion.copyFrom(this._tmpQuaternion),this.attachedMesh.position.copyFrom(this._tmpVector),this.attachedMesh.setParent(e)}this._updateRotationAnchors(),this._updateScaleBoxes(),this.attachedMesh&&(this._existingMeshScale.copyFrom(this.attachedMesh.scaling),zr._RestorePivotPoint(this.attachedMesh))}_updateRotationAnchors(){const e=this._rotateAnchorsParent.getChildMeshes();for(let t=0;t<3;t++)for(let i=0;i<2;i++)for(let s=0;s<2;s++){const r=t*4+i*2+s;e[r].position.normalizeToRef(ae.Vector3[0]),t==0&&(e[r].position.set(0,this._boundingDimensions.y*(i-.5),this._boundingDimensions.z*(s-.5)),ae.Vector3[1].set(1,0,0)),t==1&&(e[r].position.set(this._boundingDimensions.x*(i-.5),0,this._boundingDimensions.z*(s-.5)),ae.Vector3[1].set(0,1,0)),t==2&&(e[r].position.set(this._boundingDimensions.x*(i-.5),this._boundingDimensions.y*(s-.5),0),ae.Vector3[1].set(0,0,1));const n=ae.Vector3[2];if(P.CrossToRef(ae.Vector3[0],ae.Vector3[1],n),n.normalize(),n.addInPlace(e[r].position),e[r].lookAt(n),this.fixedDragMeshScreenSize&&this.gizmoLayer.utilityLayerScene.activeCamera){e[r].absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position,this._tmpVector);const o=this.rotationSphereSize*this._tmpVector.length()/this.fixedDragMeshScreenSizeDistanceFactor;e[r].scaling.set(o,o,o)}else this.fixedDragMeshBoundsSize?e[r].scaling.set(this.rotationSphereSize*this._boundingDimensions.x,this.rotationSphereSize*this._boundingDimensions.y,this.rotationSphereSize*this._boundingDimensions.z):e[r].scaling.set(this.rotationSphereSize,this.rotationSphereSize,this.rotationSphereSize)}}_updateScaleBoxes(){const e=this._scaleBoxesParent.getChildMeshes();let t=0;for(let i=0;i<3;i++)for(let s=0;s<3;s++)for(let r=0;r<3;r++){const n=(i===1?1:0)+(s===1?1:0)+(r===1?1:0);if(!(n===1||n===3)){if(e[t])if(e[t].position.set(this._boundingDimensions.x*(i/2),this._boundingDimensions.y*(s/2),this._boundingDimensions.z*(r/2)),e[t].position.addInPlace(new P(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),this.fixedDragMeshScreenSize&&this.gizmoLayer.utilityLayerScene.activeCamera){e[t].absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.globalPosition,this._tmpVector);const o=this.scaleBoxSize*this._tmpVector.length()/this.fixedDragMeshScreenSizeDistanceFactor;e[t].scaling.set(o,o,o)}else this.fixedDragMeshBoundsSize?e[t].scaling.set(this.scaleBoxSize*this._boundingDimensions.x,this.scaleBoxSize*this._boundingDimensions.y,this.scaleBoxSize*this._boundingDimensions.z):e[t].scaling.set(this.scaleBoxSize,this.scaleBoxSize,this.scaleBoxSize);t++}}}setEnabledRotationAxis(e){this._rotateAnchorsParent.getChildMeshes().forEach((t,i)=>{i<4?t.setEnabled(e.indexOf("x")!=-1):i<8?t.setEnabled(e.indexOf("y")!=-1):t.setEnabled(e.indexOf("z")!=-1)})}setEnabledScaling(e,t=!1){this._scaleBoxesParent.getChildMeshes().forEach(i=>{let s=e;t&&i._internalMetadata===!0&&(s=!1),i.setEnabled(s)})}_updateDummy(){this._dragMesh&&(this._dragMesh.position.copyFrom(this._lineBoundingBox.getAbsolutePosition()),this._dragMesh.scaling.copyFrom(this._lineBoundingBox.scaling),this._dragMesh.rotationQuaternion.copyFrom(this._rootMesh.rotationQuaternion))}enableDragBehavior(){this._dragMesh=pa("dummy",{size:1},this.gizmoLayer.utilityLayerScene),this._dragMesh.visibility=0,this._dragMesh.rotationQuaternion=new Re,this._pointerDragBehavior.useObjectOrientationForDragging=!1,this._dragMesh.addBehavior(this._pointerDragBehavior)}releaseDrag(){this._scaleBoxesDragBehaviors.forEach(e=>{e.releaseDrag()}),this._rotateAnchorsDragBehaviors.forEach(e=>{e.releaseDrag()}),this._pointerDragBehavior.releaseDrag()}dispose(){this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.gizmoLayer.originalScene.onBeforeRenderObservable.remove(this._renderObserver),this._lineBoundingBox.dispose(),this._rotateAnchorsParent.dispose(),this._scaleBoxesParent.dispose(),this._dragMesh&&this._dragMesh.dispose(),this._scaleBoxesDragBehaviors.length=0,this._rotateAnchorsDragBehaviors.length=0,this.onDragStartObservable.clear(),this.onHoverStartObservable.clear(),this.onHoverEndObservable.clear(),this.onScaleBoxDragObservable.clear(),this.onScaleBoxDragEndObservable.clear(),this.onRotationSphereDragObservable.clear(),this.onRotationSphereDragEndObservable.clear(),super.dispose()}static MakeNotPickableAndWrapInBoundingBox(e){const t=o=>{o.isPickable=!1,o.getChildMeshes().forEach(l=>{t(l)})};t(e),e.rotationQuaternion||(e.rotationQuaternion=Re.RotationYawPitchRoll(e.rotation.y,e.rotation.x,e.rotation.z));const i=e.position.clone(),s=e.rotationQuaternion.clone();e.rotationQuaternion.set(0,0,0,1),e.position.set(0,0,0);const r=pa("box",{size:1},e.getScene()),n=e.getHierarchyBoundingVectors();return n.max.subtractToRef(n.min,r.scaling),r.scaling.y===0&&(r.scaling.y=Ii),r.scaling.x===0&&(r.scaling.x=Ii),r.scaling.z===0&&(r.scaling.z=Ii),r.position.set((n.max.x+n.min.x)/2,(n.max.y+n.min.y)/2,(n.max.z+n.min.z)/2),e.addChild(r),e.rotationQuaternion.copyFrom(s),e.position.copyFrom(i),e.removeChild(r),r.addChild(e),r.visibility=0,r}setCustomMesh(){de.Error("Custom meshes are not supported on this gizmo")}}class o_ extends Ba{get coloredMaterial(){return this._coloredMaterial}get hoverMaterial(){return this._hoverMaterial}set rotationColor(e){this._rotationShaderMaterial.setColor3("rotationColor",e)}get disableMaterial(){return this._disableMaterial}constructor(e,t=Pe.Gray(),i=Dr.DefaultUtilityLayer,s=32,r=null,n=!1,o=1,l=Pe.Yellow(),c=Pe.Gray()){var M;super(i),this._pointerObserver=null,this.snapDistance=0,this.onSnapObservable=new xe,this.angle=0,this.sensitivity=1,this._isEnabled=!0,this._parent=null,this._dragging=!1,this._angles=new P,this._parent=r,this._coloredMaterial=new Bt("",i.utilityLayerScene),this._coloredMaterial.diffuseColor=t,this._coloredMaterial.specularColor=t.subtract(new Pe(.1,.1,.1)),this._hoverMaterial=new Bt("",i.utilityLayerScene),this._hoverMaterial.diffuseColor=l,this._hoverMaterial.specularColor=l,this._disableMaterial=new Bt("",i.utilityLayerScene),this._disableMaterial.diffuseColor=c,this._disableMaterial.alpha=.4,this._gizmoMesh=new Ne("",i.utilityLayerScene);const{rotationMesh:u,collider:f}=this._createGizmoMesh(this._gizmoMesh,o,s);this._rotationDisplayPlane=Eh("rotationDisplay",{size:.6,updatable:!1},this.gizmoLayer.utilityLayerScene),this._rotationDisplayPlane.rotation.z=Math.PI*.5,this._rotationDisplayPlane.parent=this._gizmoMesh,this._rotationDisplayPlane.setEnabled(!1),Ls.ShadersStore.rotationGizmoVertexShader=o_._RotationGizmoVertexShader,Ls.ShadersStore.rotationGizmoFragmentShader=o_._RotationGizmoFragmentShader,this._rotationShaderMaterial=new Fo("shader",this.gizmoLayer.utilityLayerScene,{vertex:"rotationGizmo",fragment:"rotationGizmo"},{attributes:["position","uv"],uniforms:["worldViewProjection","angles","rotationColor"]}),this._rotationShaderMaterial.backFaceCulling=!1,this.rotationColor=l,this._rotationDisplayPlane.material=this._rotationShaderMaterial,this._rotationDisplayPlane.visibility=.999,this._gizmoMesh.lookAt(this._rootMesh.position.add(e)),this._rootMesh.addChild(this._gizmoMesh,Ba.PreserveScaling),this._gizmoMesh.scaling.scaleInPlace(1/3),this.dragBehavior=new Nl({dragPlaneNormal:e}),this.dragBehavior.moveAttached=!1,this.dragBehavior.maxDragAngle=o_.MaxDragAngle,this.dragBehavior._useAlternatePickedPointAboveMaxDragAngle=!0,this._rootMesh.addBehavior(this.dragBehavior);const p=new P,m=new me,_=new P;let d=new P;this.dragBehavior.onDragStartObservable.add(T=>{this.attachedNode&&(p.copyFrom(T.dragPlanePoint),this._rotationDisplayPlane.setEnabled(!0),this._rotationDisplayPlane.getWorldMatrix().invertToRef(m),P.TransformCoordinatesToRef(T.dragPlanePoint,m,p),this._angles.x=Math.atan2(p.y,p.x)+Math.PI,this._angles.y=0,this._angles.z=this.updateGizmoRotationToMatchAttachedMesh?1:0,this._dragging=!0,p.copyFrom(T.dragPlanePoint),this._rotationShaderMaterial.setVector3("angles",this._angles),this.angle=0)}),this.dragBehavior.onDragEndObservable.add(()=>{this._dragging=!1,this._rotationDisplayPlane.setEnabled(!1)});const h={snapDistance:0};let x=0;const A=new me,S=new Re;this.dragBehavior.onDragObservable.add(T=>{if(this.attachedNode){const O=new P(1,1,1),R=new Re(0,0,0,1),I=new P(0,0,0),N=this._attachedNode;if(N&&N.isUsingPivotMatrix&&N.isUsingPivotMatrix()&&N.position&&N.getWorldMatrix().setTranslation(N.position),this.attachedNode.getWorldMatrix().decompose(O,R,I),!(Math.abs(Math.abs(O.x)-Math.abs(O.y))<=Ii&&Math.abs(Math.abs(O.x)-Math.abs(O.z))<=Ii)&&this.updateGizmoRotationToMatchAttachedMesh){de.Warn("Unable to use a rotation gizmo matching mesh rotation with non uniform scaling. Use uniform scaling or set updateGizmoRotationToMatchAttachedMesh to false.");return}R.normalize();const D=this.updateGizmoPositionToMatchAttachedMesh?I:this._rootMesh.absolutePosition,k=T.dragPlanePoint.subtract(D).normalize(),Y=p.subtract(D).normalize(),V=P.Cross(k,Y),ee=P.Dot(k,Y);let K=Math.atan2(V.length(),ee)*this.sensitivity;_.copyFrom(e),d.copyFrom(e),this.updateGizmoRotationToMatchAttachedMesh&&(R.toRotationMatrix(m),d=P.TransformCoordinates(_,m));let ie=!1;if(i.utilityLayerScene.activeCamera){const Q=i.utilityLayerScene.activeCamera.position.subtract(D).normalize();P.Dot(Q,d)>0&&(_.scaleInPlace(-1),d.scaleInPlace(-1),ie=!0)}P.Dot(d,V)>0&&(K=-K),ae.Vector3[0].set(K,0,0),this.dragBehavior.validateDrag(ae.Vector3[0])||(K=0);let te=!1;if(this.snapDistance!=0)if(x+=K,Math.abs(x)>this.snapDistance){let Q=Math.floor(Math.abs(x)/this.snapDistance);x<0&&(Q*=-1),x=x%this.snapDistance,K=this.snapDistance*Q,te=!0}else K=0;const W=Math.sin(K/2);if(S.set(_.x*W,_.y*W,_.z*W,Math.cos(K/2)),A.determinant()>0){const Q=new P;S.toEulerAnglesToRef(Q),Re.RotationYawPitchRollToRef(Q.y,-Q.x,-Q.z,S)}if(this.updateGizmoRotationToMatchAttachedMesh)R.multiplyToRef(S,R),R.normalize(),me.ComposeToRef(O,R,I,this.attachedNode.getWorldMatrix());else{S.toRotationMatrix(ae.Matrix[0]);const Q=this.attachedNode.getWorldMatrix().getTranslation();this.attachedNode.getWorldMatrix().multiplyToRef(ae.Matrix[0],this.attachedNode.getWorldMatrix()),this.attachedNode.getWorldMatrix().setTranslation(Q)}p.copyFrom(T.dragPlanePoint),te&&(h.snapDistance=K,this.onSnapObservable.notifyObservers(h)),this._angles.y+=K,this.angle+=ie?-K:K,this._rotationShaderMaterial.setVector3("angles",this._angles),this._matrixChanged()}});const E=i._getSharedGizmoLight();E.includedOnlyMeshes=E.includedOnlyMeshes.concat(this._rootMesh.getChildMeshes(!1));const b={colliderMeshes:[f],gizmoMeshes:[u],material:this._coloredMaterial,hoverMaterial:this._hoverMaterial,disableMaterial:this._disableMaterial,active:!1,dragBehavior:this.dragBehavior};(M=this._parent)==null||M.addToAxisCache(this._gizmoMesh,b),this._pointerObserver=i.utilityLayerScene.onPointerObservable.add(T=>{var O;if(!this._customMeshSet&&(this.dragBehavior.maxDragAngle=o_.MaxDragAngle,this._isHovered=b.colliderMeshes.indexOf((O=T==null?void 0:T.pickInfo)==null?void 0:O.pickedMesh)!=-1,!this._parent)){const R=b.dragBehavior.enabled?this._isHovered||this._dragging?this._hoverMaterial:this._coloredMaterial:this._disableMaterial;this._setGizmoMeshMaterial(b.gizmoMeshes,R)}}),this.dragBehavior.onEnabledObservable.add(T=>{this._setGizmoMeshMaterial(b.gizmoMeshes,T?this._coloredMaterial:this._disableMaterial)})}_createGizmoMesh(e,t,i){const s=Jv("ignore",{diameter:.6,thickness:.03*t,tessellation:i},this.gizmoLayer.utilityLayerScene);s.visibility=0;const r=Jv("",{diameter:.6,thickness:.005*t,tessellation:i},this.gizmoLayer.utilityLayerScene);return r.material=this._coloredMaterial,r.rotation.x=Math.PI/2,s.rotation.x=Math.PI/2,e.addChild(r,Ba.PreserveScaling),e.addChild(s,Ba.PreserveScaling),{rotationMesh:r,collider:s}}_attachedNodeChanged(e){this.dragBehavior&&(this.dragBehavior.enabled=!!e)}set isEnabled(e){this._isEnabled=e,e?this._parent&&(this.attachedMesh=this._parent.attachedMesh):this.attachedMesh=null}get isEnabled(){return this._isEnabled}dispose(){this.onSnapObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.dragBehavior.detach(),this._gizmoMesh&&this._gizmoMesh.dispose(),this._rotationDisplayPlane&&this._rotationDisplayPlane.dispose(),this._rotationShaderMaterial&&this._rotationShaderMaterial.dispose(),[this._coloredMaterial,this._hoverMaterial,this._disableMaterial].forEach(e=>{e&&e.dispose()}),super.dispose()}}o_.MaxDragAngle=Math.PI*9/20,o_._RotationGizmoVertexShader=`
        precision highp float;
        attribute vec3 position;
        attribute vec2 uv;
        uniform mat4 worldViewProjection;
        varying vec3 vPosition;
        varying vec2 vUV;

        void main(void) {
            gl_Position = worldViewProjection * vec4(position, 1.0);
            vUV = uv;
        }`,o_._RotationGizmoFragmentShader=`
        precision highp float;
        varying vec2 vUV;
        varying vec3 vPosition;
        uniform vec3 angles;
        uniform vec3 rotationColor;

        #define twopi 6.283185307

        void main(void) {
            vec2 uv = vUV - vec2(0.5);
            float angle = atan(uv.y, uv.x) + 3.141592;
            float delta = gl_FrontFacing ? angles.y : -angles.y;
            float begin = angles.x - delta * angles.z;
            float start = (begin < (begin + delta)) ? begin : (begin + delta);
            float end = (begin > (begin + delta)) ? begin : (begin + delta);
            float len = sqrt(dot(uv,uv));
            float opacity = 1. - step(0.5, len);

            float base = abs(floor(start / twopi)) * twopi;
            start += base;
            end += base;

            float intensity = 0.;
            for (int i = 0; i < 5; i++)
            {
                intensity += max(step(start, angle) - step(end, angle), 0.);
                angle += twopi;
            }
            gl_FragColor = vec4(rotationColor, min(intensity * 0.25, 0.8)) * opacity;
        }
    `;class r3e extends Ba{get attachedMesh(){return this._meshAttached}set attachedMesh(e){this._meshAttached=e,this._nodeAttached=e,this._checkBillboardTransform(),[this.xGizmo,this.yGizmo,this.zGizmo].forEach(t=>{t.isEnabled?t.attachedMesh=e:t.attachedMesh=null})}get attachedNode(){return this._nodeAttached}set attachedNode(e){this._meshAttached=null,this._nodeAttached=e,this._checkBillboardTransform(),[this.xGizmo,this.yGizmo,this.zGizmo].forEach(t=>{t.isEnabled?t.attachedNode=e:t.attachedNode=null})}_checkBillboardTransform(){this._nodeAttached&&this._nodeAttached.billboardMode&&de.Log("Rotation Gizmo will not work with transforms in billboard mode.")}set sensitivity(e){this._sensitivity=e,[this.xGizmo,this.yGizmo,this.zGizmo].forEach(t=>{t&&(t.sensitivity=e)})}get sensitivity(){return this._sensitivity}get isHovered(){return this.xGizmo.isHovered||this.yGizmo.isHovered||this.zGizmo.isHovered}get isDragging(){return this.xGizmo.dragBehavior.dragging||this.yGizmo.dragBehavior.dragging||this.zGizmo.dragBehavior.dragging}get additionalTransformNode(){return this._additionalTransformNode}set additionalTransformNode(e){[this.xGizmo,this.yGizmo,this.zGizmo].forEach(t=>{t.additionalTransformNode=e})}constructor(e=Dr.DefaultUtilityLayer,t=32,i=!1,s=1,r,n){super(e),this.onDragStartObservable=new xe,this.onDragObservable=new xe,this.onDragEndObservable=new xe,this._observables=[],this._sensitivity=1,this._gizmoAxisCache=new Map;const o=n&&n.xOptions&&n.xOptions.color?n.xOptions.color:Pe.Red().scale(.5),l=n&&n.yOptions&&n.yOptions.color?n.yOptions.color:Pe.Green().scale(.5),c=n&&n.zOptions&&n.zOptions.color?n.zOptions.color:Pe.Blue().scale(.5);this.xGizmo=new o_(new P(1,0,0),o,e,t,this,i,s),this.yGizmo=new o_(new P(0,1,0),l,e,t,this,i,s),this.zGizmo=new o_(new P(0,0,1),c,e,t,this,i,s),this.additionalTransformNode=n==null?void 0:n.additionalTransformNode,[this.xGizmo,this.yGizmo,this.zGizmo].forEach(u=>{n&&n.updateScale!=null&&(u.updateScale=n.updateScale),u.dragBehavior.onDragStartObservable.add(()=>{this.onDragStartObservable.notifyObservers({})}),u.dragBehavior.onDragObservable.add(()=>{this.onDragObservable.notifyObservers({})}),u.dragBehavior.onDragEndObservable.add(()=>{this.onDragEndObservable.notifyObservers({})})}),this.attachedMesh=null,this.attachedNode=null,r?r.addToAxisCache(this._gizmoAxisCache):Ba.GizmoAxisPointerObserver(e,this._gizmoAxisCache)}set updateGizmoRotationToMatchAttachedMesh(e){this.xGizmo&&(this.xGizmo.updateGizmoRotationToMatchAttachedMesh=e,this.yGizmo.updateGizmoRotationToMatchAttachedMesh=e,this.zGizmo.updateGizmoRotationToMatchAttachedMesh=e)}get updateGizmoRotationToMatchAttachedMesh(){return this.xGizmo.updateGizmoRotationToMatchAttachedMesh}set updateGizmoPositionToMatchAttachedMesh(e){this.xGizmo&&(this.xGizmo.updateGizmoPositionToMatchAttachedMesh=e,this.yGizmo.updateGizmoPositionToMatchAttachedMesh=e,this.zGizmo.updateGizmoPositionToMatchAttachedMesh=e)}get updateGizmoPositionToMatchAttachedMesh(){return this.xGizmo.updateGizmoPositionToMatchAttachedMesh}set anchorPoint(e){this._anchorPoint=e,[this.xGizmo,this.yGizmo,this.zGizmo].forEach(t=>{t.anchorPoint=e})}get anchorPoint(){return this._anchorPoint}set coordinatesMode(e){[this.xGizmo,this.yGizmo,this.zGizmo].forEach(t=>{t.coordinatesMode=e})}set updateScale(e){this.xGizmo&&(this.xGizmo.updateScale=e,this.yGizmo.updateScale=e,this.zGizmo.updateScale=e)}get updateScale(){return this.xGizmo.updateScale}set snapDistance(e){this.xGizmo&&(this.xGizmo.snapDistance=e,this.yGizmo.snapDistance=e,this.zGizmo.snapDistance=e)}get snapDistance(){return this.xGizmo.snapDistance}set scaleRatio(e){this.xGizmo&&(this.xGizmo.scaleRatio=e,this.yGizmo.scaleRatio=e,this.zGizmo.scaleRatio=e)}get scaleRatio(){return this.xGizmo.scaleRatio}get customRotationQuaternion(){return this._customRotationQuaternion}set customRotationQuaternion(e){this._customRotationQuaternion=e,[this.xGizmo,this.yGizmo,this.zGizmo].forEach(t=>{t&&(t.customRotationQuaternion=e)})}addToAxisCache(e,t){this._gizmoAxisCache.set(e,t)}releaseDrag(){this.xGizmo.dragBehavior.releaseDrag(),this.yGizmo.dragBehavior.releaseDrag(),this.zGizmo.dragBehavior.releaseDrag()}dispose(){this.xGizmo.dispose(),this.yGizmo.dispose(),this.zGizmo.dispose(),this.onDragStartObservable.clear(),this.onDragObservable.clear(),this.onDragEndObservable.clear(),this._observables.forEach(e=>{this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(e)}),super.dispose()}setCustomMesh(){de.Error("Custom meshes are not supported on this gizmo, please set the custom meshes on the gizmos contained within this one (gizmo.xGizmo, gizmo.yGizmo, gizmo.zGizmo)")}}class rO extends Ba{get coloredMaterial(){return this._coloredMaterial}get hoverMaterial(){return this._hoverMaterial}get disableMaterial(){return this._disableMaterial}static _CreatePlane(e,t){const i=new Si("plane",e),s=Eh("dragPlane",{width:.1375,height:.1375,sideOrientation:2},e);return s.material=t,s.parent=i,i}constructor(e,t=Pe.Gray(),i=Dr.DefaultUtilityLayer,s=null,r=Pe.Yellow(),n=Pe.Gray()){var p;super(i),this._pointerObserver=null,this.snapDistance=0,this.onSnapObservable=new xe,this._isEnabled=!1,this._parent=null,this._dragging=!1,this._parent=s,this._coloredMaterial=new Bt("",i.utilityLayerScene),this._coloredMaterial.diffuseColor=t,this._coloredMaterial.specularColor=t.subtract(new Pe(.1,.1,.1)),this._hoverMaterial=new Bt("",i.utilityLayerScene),this._hoverMaterial.diffuseColor=r,this._disableMaterial=new Bt("",i.utilityLayerScene),this._disableMaterial.diffuseColor=n,this._disableMaterial.alpha=.4,this._gizmoMesh=rO._CreatePlane(i.utilityLayerScene,this._coloredMaterial),this._gizmoMesh.lookAt(this._rootMesh.position.add(e)),this._gizmoMesh.scaling.scaleInPlace(1/3),this._gizmoMesh.parent=this._rootMesh;let o=0;const l=new P,c={snapDistance:0};this.dragBehavior=new Nl({dragPlaneNormal:e}),this.dragBehavior.moveAttached=!1,this._rootMesh.addBehavior(this.dragBehavior),this.dragBehavior.onDragObservable.add(m=>{if(this.attachedNode){if(this.snapDistance==0)this.attachedNode.getWorldMatrix().getTranslationToRef(ae.Vector3[0]),ae.Vector3[0].addToRef(m.delta,ae.Vector3[0]),this.dragBehavior.validateDrag(ae.Vector3[0])&&this.attachedNode.getWorldMatrix().addTranslationFromFloats(m.delta.x,m.delta.y,m.delta.z);else if(o+=m.dragDistance,Math.abs(o)>this.snapDistance){const _=Math.floor(Math.abs(o)/this.snapDistance);o=o%this.snapDistance,m.delta.normalizeToRef(l),l.scaleInPlace(this.snapDistance*_),this.attachedNode.getWorldMatrix().getTranslationToRef(ae.Vector3[0]),ae.Vector3[0].addToRef(l,ae.Vector3[0]),this.dragBehavior.validateDrag(ae.Vector3[0])&&(this.attachedNode.getWorldMatrix().addTranslationFromFloats(l.x,l.y,l.z),c.snapDistance=this.snapDistance*_,this.onSnapObservable.notifyObservers(c))}this._matrixChanged()}}),this.dragBehavior.onDragStartObservable.add(()=>{this._dragging=!0}),this.dragBehavior.onDragEndObservable.add(()=>{this._dragging=!1});const u=i._getSharedGizmoLight();u.includedOnlyMeshes=u.includedOnlyMeshes.concat(this._rootMesh.getChildMeshes(!1));const f={gizmoMeshes:this._gizmoMesh.getChildMeshes(),colliderMeshes:this._gizmoMesh.getChildMeshes(),material:this._coloredMaterial,hoverMaterial:this._hoverMaterial,disableMaterial:this._disableMaterial,active:!1,dragBehavior:this.dragBehavior};(p=this._parent)==null||p.addToAxisCache(this._gizmoMesh,f),this._pointerObserver=i.utilityLayerScene.onPointerObservable.add(m=>{var _;if(!this._customMeshSet&&(this._isHovered=f.colliderMeshes.indexOf((_=m==null?void 0:m.pickInfo)==null?void 0:_.pickedMesh)!=-1,!this._parent)){const d=f.dragBehavior.enabled?this._isHovered||this._dragging?this._hoverMaterial:this._coloredMaterial:this._disableMaterial;this._setGizmoMeshMaterial(f.gizmoMeshes,d)}}),this.dragBehavior.onEnabledObservable.add(m=>{this._setGizmoMeshMaterial(f.gizmoMeshes,m?this._coloredMaterial:this._disableMaterial)})}_attachedNodeChanged(e){this.dragBehavior&&(this.dragBehavior.enabled=!!e)}set isEnabled(e){this._isEnabled=e,e?this._parent&&(this.attachedNode=this._parent.attachedNode):this.attachedNode=null}get isEnabled(){return this._isEnabled}dispose(){this.onSnapObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.dragBehavior.detach(),super.dispose(),this._gizmoMesh&&this._gizmoMesh.dispose(),[this._coloredMaterial,this._hoverMaterial,this._disableMaterial].forEach(e=>{e&&e.dispose()})}}class n3e extends Ba{get attachedMesh(){return this._meshAttached}set attachedMesh(e){this._meshAttached=e,this._nodeAttached=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(t=>{t.isEnabled?t.attachedMesh=e:t.attachedMesh=null})}get attachedNode(){return this._nodeAttached}set attachedNode(e){this._meshAttached=null,this._nodeAttached=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(t=>{t.isEnabled?t.attachedNode=e:t.attachedNode=null})}get isHovered(){return this.xGizmo.isHovered||this.yGizmo.isHovered||this.zGizmo.isHovered||this.xPlaneGizmo.isHovered||this.yPlaneGizmo.isHovered||this.zPlaneGizmo.isHovered}get isDragging(){return this.xGizmo.dragBehavior.dragging||this.yGizmo.dragBehavior.dragging||this.zGizmo.dragBehavior.dragging||this.xPlaneGizmo.dragBehavior.dragging||this.yPlaneGizmo.dragBehavior.dragging||this.zPlaneGizmo.dragBehavior.dragging}get additionalTransformNode(){return this._additionalTransformNode}set additionalTransformNode(e){[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(t=>{t.additionalTransformNode=e})}constructor(e=Dr.DefaultUtilityLayer,t=1,i,s){super(e),this._meshAttached=null,this._nodeAttached=null,this._observables=[],this._gizmoAxisCache=new Map,this.onDragStartObservable=new xe,this.onDragObservable=new xe,this.onDragEndObservable=new xe,this._planarGizmoEnabled=!1,this.xGizmo=new E4(new P(1,0,0),Pe.Red().scale(.5),e,this,t),this.yGizmo=new E4(new P(0,1,0),Pe.Green().scale(.5),e,this,t),this.zGizmo=new E4(new P(0,0,1),Pe.Blue().scale(.5),e,this,t),this.xPlaneGizmo=new rO(new P(1,0,0),Pe.Red().scale(.5),this.gizmoLayer,this),this.yPlaneGizmo=new rO(new P(0,1,0),Pe.Green().scale(.5),this.gizmoLayer,this),this.zPlaneGizmo=new rO(new P(0,0,1),Pe.Blue().scale(.5),this.gizmoLayer,this),this.additionalTransformNode=s==null?void 0:s.additionalTransformNode,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(r=>{r.dragBehavior.onDragStartObservable.add(()=>{this.onDragStartObservable.notifyObservers({})}),r.dragBehavior.onDragObservable.add(()=>{this.onDragObservable.notifyObservers({})}),r.dragBehavior.onDragEndObservable.add(()=>{this.onDragEndObservable.notifyObservers({})})}),this.attachedMesh=null,i?i.addToAxisCache(this._gizmoAxisCache):Ba.GizmoAxisPointerObserver(e,this._gizmoAxisCache)}set planarGizmoEnabled(e){this._planarGizmoEnabled=e,[this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(t=>{t&&(t.isEnabled=e,e&&(t.attachedMesh?t.attachedMesh=this.attachedMesh:t.attachedNode=this.attachedNode))},this)}get planarGizmoEnabled(){return this._planarGizmoEnabled}get customRotationQuaternion(){return this._customRotationQuaternion}set customRotationQuaternion(e){this._customRotationQuaternion=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(t=>{t&&(t.customRotationQuaternion=e)})}set updateGizmoRotationToMatchAttachedMesh(e){this._updateGizmoRotationToMatchAttachedMesh=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(t=>{t&&(t.updateGizmoRotationToMatchAttachedMesh=e)})}get updateGizmoRotationToMatchAttachedMesh(){return this._updateGizmoRotationToMatchAttachedMesh}set updateGizmoPositionToMatchAttachedMesh(e){this._updateGizmoPositionToMatchAttachedMesh=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(t=>{t&&(t.updateGizmoPositionToMatchAttachedMesh=e)})}get updateGizmoPositionToMatchAttachedMesh(){return this._updateGizmoPositionToMatchAttachedMesh}set anchorPoint(e){this._anchorPoint=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(t=>{t.anchorPoint=e})}get anchorPoint(){return this._anchorPoint}set coordinatesMode(e){[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(t=>{t.coordinatesMode=e})}set updateScale(e){this.xGizmo&&(this.xGizmo.updateScale=e,this.yGizmo.updateScale=e,this.zGizmo.updateScale=e)}get updateScale(){return this.xGizmo.updateScale}set snapDistance(e){this._snapDistance=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(t=>{t&&(t.snapDistance=e)})}get snapDistance(){return this._snapDistance}set scaleRatio(e){this._scaleRatio=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(t=>{t&&(t.scaleRatio=e)})}get scaleRatio(){return this._scaleRatio}addToAxisCache(e,t){this._gizmoAxisCache.set(e,t)}releaseDrag(){this.xGizmo.dragBehavior.releaseDrag(),this.yGizmo.dragBehavior.releaseDrag(),this.zGizmo.dragBehavior.releaseDrag(),this.xPlaneGizmo.dragBehavior.releaseDrag(),this.yPlaneGizmo.dragBehavior.releaseDrag(),this.zPlaneGizmo.dragBehavior.releaseDrag()}dispose(){[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(e=>{e&&e.dispose()}),this._observables.forEach(e=>{this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(e)}),this.onDragStartObservable.clear(),this.onDragObservable.clear(),this.onDragEndObservable.clear(),super.dispose()}setCustomMesh(){de.Error("Custom meshes are not supported on this gizmo, please set the custom meshes on the gizmos contained within this one (gizmo.xGizmo, gizmo.yGizmo, gizmo.zGizmo,gizmo.xPlaneGizmo, gizmo.yPlaneGizmo, gizmo.zPlaneGizmo)")}}class a3e extends Ba{get coloredMaterial(){return this._coloredMaterial}get hoverMaterial(){return this._hoverMaterial}get disableMaterial(){return this._disableMaterial}get attachedMesh(){return this._meshAttached}set attachedMesh(e){this._meshAttached=e,this._nodeAttached=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(t=>{t.isEnabled?t.attachedMesh=e:t.attachedMesh=null})}get attachedNode(){return this._nodeAttached}set attachedNode(e){this._meshAttached=null,this._nodeAttached=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(t=>{t.isEnabled?t.attachedNode=e:t.attachedNode=null})}set updateScale(e){this.xGizmo&&(this.xGizmo.updateScale=e,this.yGizmo.updateScale=e,this.zGizmo.updateScale=e)}get updateScale(){return this.xGizmo.updateScale}get isHovered(){return this.xGizmo.isHovered||this.yGizmo.isHovered||this.zGizmo.isHovered||this.uniformScaleGizmo.isHovered}get isDragging(){return this.xGizmo.dragBehavior.dragging||this.yGizmo.dragBehavior.dragging||this.zGizmo.dragBehavior.dragging||this.uniformScaleGizmo.dragBehavior.dragging}get additionalTransformNode(){return this._additionalTransformNode}set additionalTransformNode(e){[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(t=>{t.additionalTransformNode=e})}constructor(e=Dr.DefaultUtilityLayer,t=1,i,s){super(e),this._meshAttached=null,this._nodeAttached=null,this._incrementalSnap=!1,this._sensitivity=1,this._observables=[],this._gizmoAxisCache=new Map,this.onDragStartObservable=new xe,this.onDragObservable=new xe,this.onDragEndObservable=new xe,this.uniformScaleGizmo=this._createUniformScaleMesh(),this.xGizmo=new I4(new P(1,0,0),Pe.Red().scale(.5),e,this,t),this.yGizmo=new I4(new P(0,1,0),Pe.Green().scale(.5),e,this,t),this.zGizmo=new I4(new P(0,0,1),Pe.Blue().scale(.5),e,this,t),this.additionalTransformNode=s==null?void 0:s.additionalTransformNode,[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(r=>{r.dragBehavior.onDragStartObservable.add(()=>{this.onDragStartObservable.notifyObservers({})}),r.dragBehavior.onDragObservable.add(()=>{this.onDragObservable.notifyObservers({})}),r.dragBehavior.onDragEndObservable.add(()=>{this.onDragEndObservable.notifyObservers({})})}),this.attachedMesh=null,this.attachedNode=null,i?i.addToAxisCache(this._gizmoAxisCache):Ba.GizmoAxisPointerObserver(e,this._gizmoAxisCache)}_createUniformScaleMesh(){this._coloredMaterial=new Bt("",this.gizmoLayer.utilityLayerScene),this._coloredMaterial.diffuseColor=Pe.Gray(),this._hoverMaterial=new Bt("",this.gizmoLayer.utilityLayerScene),this._hoverMaterial.diffuseColor=Pe.Yellow(),this._disableMaterial=new Bt("",this.gizmoLayer.utilityLayerScene),this._disableMaterial.diffuseColor=Pe.Gray(),this._disableMaterial.alpha=.4;const e=new I4(new P(0,1,0),Pe.Gray().scale(.5),this.gizmoLayer,this);e.updateGizmoRotationToMatchAttachedMesh=!1,e.uniformScaling=!0,this._uniformScalingMesh=hL("uniform",{type:1},e.gizmoLayer.utilityLayerScene),this._uniformScalingMesh.scaling.scaleInPlace(.01),this._uniformScalingMesh.visibility=0,this._octahedron=hL("",{type:1},e.gizmoLayer.utilityLayerScene),this._octahedron.scaling.scaleInPlace(.007),this._uniformScalingMesh.addChild(this._octahedron),e.setCustomMesh(this._uniformScalingMesh,!0);const t=this.gizmoLayer._getSharedGizmoLight();t.includedOnlyMeshes=t.includedOnlyMeshes.concat(this._octahedron);const i={gizmoMeshes:[this._octahedron,this._uniformScalingMesh],colliderMeshes:[this._octahedron,this._uniformScalingMesh],material:this._coloredMaterial,hoverMaterial:this._hoverMaterial,disableMaterial:this._disableMaterial,active:!1,dragBehavior:e.dragBehavior};return this.addToAxisCache(e._rootMesh,i),e}set updateGizmoRotationToMatchAttachedMesh(e){e?(this._updateGizmoRotationToMatchAttachedMesh=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(t=>{t&&(t.updateGizmoRotationToMatchAttachedMesh=e)})):de.Warn("Setting updateGizmoRotationToMatchAttachedMesh = false on scaling gizmo is not supported.")}get updateGizmoRotationToMatchAttachedMesh(){return this._updateGizmoRotationToMatchAttachedMesh}set anchorPoint(e){this._anchorPoint=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(t=>{t&&(t.anchorPoint=e)})}get anchorPoint(){return this._anchorPoint}get customRotationQuaternion(){return this._customRotationQuaternion}set customRotationQuaternion(e){this._customRotationQuaternion=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(t=>{t&&(t.customRotationQuaternion=e)})}set coordinatesMode(e){e==0&&de.Warn("Setting coordinates Mode to world on scaling gizmo is not supported."),[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(t=>{t.coordinatesMode=1})}set snapDistance(e){this._snapDistance=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(t=>{t&&(t.snapDistance=e)})}get snapDistance(){return this._snapDistance}set incrementalSnap(e){this._incrementalSnap=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(t=>{t&&(t.incrementalSnap=e)})}get incrementalSnap(){return this._incrementalSnap}set scaleRatio(e){this._scaleRatio=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(t=>{t&&(t.scaleRatio=e)})}get scaleRatio(){return this._scaleRatio}set sensitivity(e){this._sensitivity=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(t=>{t&&(t.sensitivity=e)})}get sensitivity(){return this._sensitivity}addToAxisCache(e,t){this._gizmoAxisCache.set(e,t)}getAxisCache(e){return this._gizmoAxisCache.get(e)}releaseDrag(){this.xGizmo.dragBehavior.releaseDrag(),this.yGizmo.dragBehavior.releaseDrag(),this.zGizmo.dragBehavior.releaseDrag(),this.uniformScaleGizmo.dragBehavior.releaseDrag()}dispose(){[this.xGizmo,this.yGizmo,this.zGizmo,this.uniformScaleGizmo].forEach(e=>{e&&e.dispose()}),this._observables.forEach(e=>{this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(e)}),this.onDragStartObservable.clear(),this.onDragObservable.clear(),this.onDragEndObservable.clear(),[this._uniformScalingMesh,this._octahedron].forEach(e=>{e&&e.dispose()}),[this._coloredMaterial,this._hoverMaterial,this._disableMaterial].forEach(e=>{e&&e.dispose()})}}class eFe{get keepDepthUtilityLayer(){return this._defaultKeepDepthUtilityLayer}get utilityLayer(){return this._defaultUtilityLayer}get isHovered(){let e=!1;for(const t in this.gizmos){const i=this.gizmos[t];if(i&&i.isHovered){e=!0;break}}return e}get isDragging(){let e=!1;return[this.gizmos.positionGizmo,this.gizmos.rotationGizmo,this.gizmos.scaleGizmo,this.gizmos.boundingBoxGizmo].forEach(t=>{t&&t.isDragging&&(e=!0)}),e}set scaleRatio(e){this._scaleRatio=e,[this.gizmos.positionGizmo,this.gizmos.rotationGizmo,this.gizmos.scaleGizmo].forEach(t=>{t&&(t.scaleRatio=e)})}get scaleRatio(){return this._scaleRatio}set coordinatesMode(e){this._coordinatesMode=e,[this.gizmos.positionGizmo,this.gizmos.rotationGizmo,this.gizmos.scaleGizmo].forEach(t=>{t&&(t.coordinatesMode=e)})}get coordinatesMode(){return this._coordinatesMode}get attachedMesh(){return this._attachedMesh}get attachedNode(){return this._attachedNode}get additionalTransformNode(){return this._additionalTransformNode}constructor(e,t=1,i=Dr.DefaultUtilityLayer,s=Dr.DefaultKeepDepthUtilityLayer){this._scene=e,this.clearGizmoOnEmptyPointerEvent=!1,this.enableAutoPicking=!0,this.onAttachedToMeshObservable=new xe,this.onAttachedToNodeObservable=new xe,this._gizmosEnabled={positionGizmo:!1,rotationGizmo:!1,scaleGizmo:!1,boundingBoxGizmo:!1},this._pointerObservers=[],this._attachedMesh=null,this._attachedNode=null,this._boundingBoxColor=Pe.FromHexString("#0984e3"),this._thickness=1,this._scaleRatio=1,this._coordinatesMode=1,this._gizmoAxisCache=new Map,this.boundingBoxDragBehavior=new wq,this.attachableMeshes=null,this.attachableNodes=null,this.usePointerToAttachGizmos=!0,this._defaultUtilityLayer=i,this._defaultKeepDepthUtilityLayer=s,this._defaultKeepDepthUtilityLayer.utilityLayerScene.autoClearDepthAndStencil=!1,this._thickness=t,this.gizmos={positionGizmo:null,rotationGizmo:null,scaleGizmo:null,boundingBoxGizmo:null};const r=this._attachToMeshPointerObserver(e),n=Ba.GizmoAxisPointerObserver(this._defaultUtilityLayer,this._gizmoAxisCache);this._pointerObservers=[r,n]}_attachToMeshPointerObserver(e){return e.onPointerObservable.add(i=>{if(this.usePointerToAttachGizmos&&i.type==Xt.POINTERDOWN)if(i.pickInfo&&i.pickInfo.pickedMesh){if(this.enableAutoPicking){let s=i.pickInfo.pickedMesh;if(this.attachableMeshes==null)for(;s&&s.parent!=null;)s=s.parent;else{let r=!1;this.attachableMeshes.forEach(n=>{s&&(s==n||s.isDescendantOf(n))&&(s=n,r=!0)}),r||(s=null)}s instanceof cr?this._attachedMesh!=s&&this.attachToMesh(s):this.clearGizmoOnEmptyPointerEvent&&this.attachToMesh(null)}}else this.clearGizmoOnEmptyPointerEvent&&this.attachToMesh(null)})}attachToMesh(e){this._attachedMesh&&this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior),this._attachedNode&&this._attachedNode.removeBehavior(this.boundingBoxDragBehavior),this._attachedMesh=e,this._attachedNode=null;for(const t in this.gizmos){const i=this.gizmos[t];i&&this._gizmosEnabled[t]&&(i.attachedMesh=e)}this.boundingBoxGizmoEnabled&&this._attachedMesh&&this._attachedMesh.addBehavior(this.boundingBoxDragBehavior),this.onAttachedToMeshObservable.notifyObservers(e)}attachToNode(e){this._attachedMesh&&this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior),this._attachedNode&&this._attachedNode.removeBehavior(this.boundingBoxDragBehavior),this._attachedMesh=null,this._attachedNode=e;for(const t in this.gizmos){const i=this.gizmos[t];i&&this._gizmosEnabled[t]&&(i.attachedNode=e)}this.boundingBoxGizmoEnabled&&this._attachedNode&&this._attachedNode.addBehavior(this.boundingBoxDragBehavior),this.onAttachedToNodeObservable.notifyObservers(e)}set positionGizmoEnabled(e){e?(this.gizmos.positionGizmo||(this.gizmos.positionGizmo=new n3e(this._defaultUtilityLayer,this._thickness,this)),this._attachedNode?this.gizmos.positionGizmo.attachedNode=this._attachedNode:this.gizmos.positionGizmo.attachedMesh=this._attachedMesh):this.gizmos.positionGizmo&&(this.gizmos.positionGizmo.attachedNode=null),this._gizmosEnabled.positionGizmo=e,this._setAdditionalTransformNode()}get positionGizmoEnabled(){return this._gizmosEnabled.positionGizmo}set rotationGizmoEnabled(e){e?(this.gizmos.rotationGizmo||(this.gizmos.rotationGizmo=new r3e(this._defaultUtilityLayer,32,!1,this._thickness,this)),this._attachedNode?this.gizmos.rotationGizmo.attachedNode=this._attachedNode:this.gizmos.rotationGizmo.attachedMesh=this._attachedMesh):this.gizmos.rotationGizmo&&(this.gizmos.rotationGizmo.attachedNode=null),this._gizmosEnabled.rotationGizmo=e,this._setAdditionalTransformNode()}get rotationGizmoEnabled(){return this._gizmosEnabled.rotationGizmo}set scaleGizmoEnabled(e){e?(this.gizmos.scaleGizmo=this.gizmos.scaleGizmo||new a3e(this._defaultUtilityLayer,this._thickness,this),this._attachedNode?this.gizmos.scaleGizmo.attachedNode=this._attachedNode:this.gizmos.scaleGizmo.attachedMesh=this._attachedMesh):this.gizmos.scaleGizmo&&(this.gizmos.scaleGizmo.attachedNode=null),this._gizmosEnabled.scaleGizmo=e,this._setAdditionalTransformNode()}get scaleGizmoEnabled(){return this._gizmosEnabled.scaleGizmo}set boundingBoxGizmoEnabled(e){e?(this.gizmos.boundingBoxGizmo=this.gizmos.boundingBoxGizmo||new s3e(this._boundingBoxColor,this._defaultKeepDepthUtilityLayer),this._attachedMesh?this.gizmos.boundingBoxGizmo.attachedMesh=this._attachedMesh:this.gizmos.boundingBoxGizmo.attachedNode=this._attachedNode,this._attachedMesh?(this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior),this._attachedMesh.addBehavior(this.boundingBoxDragBehavior)):this._attachedNode&&(this._attachedNode.removeBehavior(this.boundingBoxDragBehavior),this._attachedNode.addBehavior(this.boundingBoxDragBehavior))):this.gizmos.boundingBoxGizmo&&(this._attachedMesh?this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior):this._attachedNode&&this._attachedNode.removeBehavior(this.boundingBoxDragBehavior),this.gizmos.boundingBoxGizmo.attachedNode=null),this._gizmosEnabled.boundingBoxGizmo=e,this._setAdditionalTransformNode()}get boundingBoxGizmoEnabled(){return this._gizmosEnabled.boundingBoxGizmo}set additionalTransformNode(e){this._additionalTransformNode=e,this._setAdditionalTransformNode()}_setAdditionalTransformNode(){for(const e in this.gizmos){const t=this.gizmos[e];t&&this._gizmosEnabled[e]&&(t.additionalTransformNode=this._additionalTransformNode)}}addToAxisCache(e){e.size>0&&e.forEach((t,i)=>{this._gizmoAxisCache.set(i,t)})}releaseDrag(){[this.gizmos.positionGizmo,this.gizmos.rotationGizmo,this.gizmos.scaleGizmo,this.gizmos.boundingBoxGizmo].forEach(e=>{e==null||e.releaseDrag()})}dispose(){var e,t;this._pointerObservers.forEach(i=>{this._scene.onPointerObservable.remove(i)});for(const i in this.gizmos){const s=this.gizmos[i];s&&s.dispose()}this._defaultKeepDepthUtilityLayer!==Dr._DefaultKeepDepthUtilityLayer&&((e=this._defaultKeepDepthUtilityLayer)==null||e.dispose()),this._defaultUtilityLayer!==Dr._DefaultUtilityLayer&&((t=this._defaultUtilityLayer)==null||t.dispose()),this.boundingBoxDragBehavior.detach(),this.onAttachedToMeshObservable.clear()}}function wB(a,e={},t){e.diameter||(e.diameter=1),e.segments||(e.segments=16);const i=hd("",{slice:.5,diameter:e.diameter,segments:e.segments},t),s=wP("",{radius:e.diameter/2,tessellation:e.segments*3+(4-e.segments)},t);s.rotation.x=-Math.PI/2,s.parent=i;const r=Ne.MergeMeshes([s,i],!0);return r.name=a,r}const tFe={CreateHemisphere:wB};Ne.CreateHemisphere=(a,e,t,i)=>wB(a,{segments:e,diameter:t},i);class l_ extends Ba{constructor(e=Dr.DefaultUtilityLayer){super(e),this._cachedPosition=new P,this._cachedForward=new P(0,0,1),this._pointerObserver=null,this.onClickedObservable=new xe,this._light=null,this.attachedMesh=new Ne("",this.gizmoLayer.utilityLayerScene),this._attachedMeshParent=new Si("parent",this.gizmoLayer.utilityLayerScene),this.attachedMesh.parent=this._attachedMeshParent,this._material=new Bt("light",this.gizmoLayer.utilityLayerScene),this._material.diffuseColor=new Pe(.5,.5,.5),this._material.specularColor=new Pe(.1,.1,.1),this._pointerObserver=e.utilityLayerScene.onPointerObservable.add(t=>{this._light&&(this._isHovered=!!(t.pickInfo&&this._rootMesh.getChildMeshes().indexOf(t.pickInfo.pickedMesh)!=-1),this._isHovered&&t.event.button===0&&this.onClickedObservable.notifyObservers(this._light))},Xt.POINTERDOWN)}get attachedNode(){return this.attachedMesh}set attachedNode(e){de.Warn("Nodes cannot be attached to LightGizmo. Attach to a mesh instead.")}set light(e){if(this._light=e,e){this._lightMesh&&this._lightMesh.dispose(),e instanceof b4?this._lightMesh=l_._CreateHemisphericLightMesh(this.gizmoLayer.utilityLayerScene):e instanceof W1?this._lightMesh=l_._CreateDirectionalLightMesh(this.gizmoLayer.utilityLayerScene):e instanceof $o?this._lightMesh=l_._CreateSpotLightMesh(this.gizmoLayer.utilityLayerScene):this._lightMesh=l_._CreatePointLightMesh(this.gizmoLayer.utilityLayerScene),this._lightMesh.getChildMeshes(!1).forEach(i=>{i.material=this._material}),this._lightMesh.parent=this._rootMesh;const t=this.gizmoLayer._getSharedGizmoLight();if(t.includedOnlyMeshes=t.includedOnlyMeshes.concat(this._lightMesh.getChildMeshes(!1)),this._lightMesh.rotationQuaternion=new Re,this.attachedMesh.reservedDataStore||(this.attachedMesh.reservedDataStore={}),this.attachedMesh.reservedDataStore.lightGizmo=this,e.parent&&this._attachedMeshParent.freezeWorldMatrix(e.parent.getWorldMatrix()),e.position&&(this.attachedMesh.position.copyFrom(e.position),this.attachedMesh.computeWorldMatrix(!0),this._cachedPosition.copyFrom(this.attachedMesh.position)),e.direction){this.attachedMesh.setDirection(e.direction),this.attachedMesh.computeWorldMatrix(!0);const i=this._getMeshForward();this._cachedForward.copyFrom(i)}this._update()}}get light(){return this._light}get material(){return this._material}_getMeshForward(){let e=this.attachedMesh.forward;return this.attachedMesh.getScene().useRightHandedSystem&&(e.negateToRef(ae.Vector3[0]),e=ae.Vector3[0]),e}_update(){if(super._update(),!!this._light){if(this._light.parent&&this._attachedMeshParent.freezeWorldMatrix(this._light.parent.getWorldMatrix()),this._light.position)if(this.attachedMesh.position.equals(this._cachedPosition))this.attachedMesh.position.copyFrom(this._light.position),this.attachedMesh.computeWorldMatrix(!0),this._cachedPosition.copyFrom(this.attachedMesh.position);else{const e=this.attachedMesh.position;this._light.position=new P(e.x,e.y,e.z),this._cachedPosition.copyFrom(this.attachedMesh.position)}if(this._light.direction){const e=this._getMeshForward();if(P.DistanceSquared(e,this._cachedForward)>1e-4){const t=e;this._light.direction=new P(t.x,t.y,t.z),this._cachedForward.copyFrom(e)}else P.DistanceSquared(e,this._light.direction)>1e-4&&(this.attachedMesh.setDirection(this._light.direction),this.attachedMesh.computeWorldMatrix(!0),this._cachedForward.copyFrom(e))}}}dispose(){this.onClickedObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this._material.dispose(),super.dispose(),this._attachedMeshParent.dispose()}static _CreateHemisphericLightMesh(e){const t=new Ne("hemisphereLight",e),i=wB(t.name,{segments:10,diameter:1},e);i.position.z=-.15,i.rotation.x=Math.PI/2,i.parent=t;const s=this._CreateLightLines(3,e);return s.parent=t,t.scaling.scaleInPlace(l_._Scale),t.rotation.x=Math.PI/2,t}static _CreatePointLightMesh(e){const t=new Ne("pointLight",e),i=hd(t.name,{segments:10,diameter:1},e);i.rotation.x=Math.PI/2,i.parent=t;const s=this._CreateLightLines(5,e);return s.parent=t,t.scaling.scaleInPlace(l_._Scale),t.rotation.x=Math.PI/2,t}static _CreateSpotLightMesh(e){const t=new Ne("spotLight",e),i=hd(t.name,{segments:10,diameter:1},e);i.parent=t;const s=wB(t.name,{segments:10,diameter:2},e);s.parent=t,s.rotation.x=-Math.PI/2;const r=this._CreateLightLines(2,e);return r.parent=t,t.scaling.scaleInPlace(l_._Scale),t.rotation.x=Math.PI/2,t}static _CreateDirectionalLightMesh(e){const t=new Ne("directionalLight",e),i=new Ne(t.name,e);i.parent=t;const s=hd(t.name,{diameter:1.2,segments:10},e);s.parent=i;const r=e1(t.name,{updatable:!1,height:6,diameterTop:.3,diameterBottom:.3,tessellation:6,subdivisions:1},e);r.parent=i;let n=r.clone(t.name);n.scaling.y=.5,n.position.x+=1.25;let o=r.clone(t.name);o.scaling.y=.5,o.position.x+=-1.25;const l=e1(t.name,{updatable:!1,height:1,diameterTop:0,diameterBottom:.6,tessellation:6,subdivisions:1},e);return l.position.y+=3,l.parent=i,n=l.clone(t.name),n.position.y=1.5,n.position.x+=1.25,o=l.clone(t.name),o.position.y=1.5,o.position.x+=-1.25,i.scaling.scaleInPlace(l_._Scale),i.rotation.z=Math.PI/2,i.rotation.y=Math.PI/2,t}}l_._Scale=.007,l_._CreateLightLines=(a,e)=>{const i=new Ne("root",e);i.rotation.x=Math.PI/2;const s=new Ne("linePivot",e);s.parent=i;const r=e1("line",{updatable:!1,height:2,diameterTop:.2,diameterBottom:.3,tessellation:6,subdivisions:1},e);if(r.position.y=r.scaling.y/2+1.2,r.parent=s,a<2)return s;for(let o=0;o<4;o++){const l=s.clone("lineParentClone");l.rotation.z=Math.PI/4,l.rotation.y=Math.PI/2+Math.PI/2*o,l.getChildMeshes()[0].scaling.y=.5,l.getChildMeshes()[0].scaling.x=l.getChildMeshes()[0].scaling.z=.8,l.getChildMeshes()[0].position.y=l.getChildMeshes()[0].scaling.y/2+1.2}if(a<3)return i;for(let o=0;o<4;o++){const l=s.clone("linePivotClone");l.rotation.z=Math.PI/2,l.rotation.y=Math.PI/2*o}if(a<4)return i;for(let o=0;o<4;o++){const l=s.clone("linePivotClone");l.rotation.z=Math.PI+Math.PI/4,l.rotation.y=Math.PI/2+Math.PI/2*o,l.getChildMeshes()[0].scaling.y=.5,l.getChildMeshes()[0].scaling.x=l.getChildMeshes()[0].scaling.z=.8,l.getChildMeshes()[0].position.y=l.getChildMeshes()[0].scaling.y/2+1.2}if(a<5)return i;const n=s.clone("linePivotClone");return n.rotation.z=Math.PI,i};class nO extends Ba{constructor(e=Dr.DefaultUtilityLayer,t,i){super(e),this._pointerObserver=null,this.onClickedObservable=new xe,this._camera=null,this._invProjection=new me,this._material=new Bt("cameraGizmoMaterial",this.gizmoLayer.utilityLayerScene),this._frustumLinesColor=i,this._material.diffuseColor=t??new Pe(.5,.5,.5),this._material.specularColor=new Pe(.1,.1,.1),this._pointerObserver=e.utilityLayerScene.onPointerObservable.add(s=>{this._camera&&(this._isHovered=!!(s.pickInfo&&this._rootMesh.getChildMeshes().indexOf(s.pickInfo.pickedMesh)!=-1),this._isHovered&&s.event.button===0&&this.onClickedObservable.notifyObservers(this._camera))},Xt.POINTERDOWN)}get displayFrustum(){return this._cameraLinesMesh.isEnabled()}set displayFrustum(e){this._cameraLinesMesh.setEnabled(e)}set camera(e){var t;if(this._camera=e,this.attachedNode=e,e){this._customMeshSet||(this._cameraMesh&&this._cameraMesh.dispose(),this._cameraMesh=nO._CreateCameraMesh(this.gizmoLayer.utilityLayerScene),this._cameraMesh.getChildMeshes(!1).forEach(r=>{r.material=this._material}),this._cameraMesh.parent=this._rootMesh),this._cameraLinesMesh&&this._cameraLinesMesh.dispose();const i=((t=this._frustumLinesColor)==null?void 0:t.toColor4(1))??new St(1,1,1,1);this._cameraLinesMesh=nO._CreateCameraFrustum(this.gizmoLayer.utilityLayerScene,i),this._cameraLinesMesh.parent=this._rootMesh,this.gizmoLayer.utilityLayerScene.activeCamera&&this.gizmoLayer.utilityLayerScene.activeCamera.maxZ<e.maxZ*1.5&&(this.gizmoLayer.utilityLayerScene.activeCamera.maxZ=e.maxZ*1.5),this.attachedNode.reservedDataStore||(this.attachedNode.reservedDataStore={}),this.attachedNode.reservedDataStore.cameraGizmo=this;const s=this.gizmoLayer._getSharedGizmoLight();s.includedOnlyMeshes=s.includedOnlyMeshes.concat(this._cameraMesh.getChildMeshes(!1)),this._update()}}get camera(){return this._camera}get material(){return this._material}_update(){super._update(),this._camera&&(this._camera.getProjectionMatrix().invertToRef(this._invProjection),this._cameraLinesMesh.setPivotMatrix(this._invProjection,!1),this._cameraLinesMesh.scaling.x=1/this._rootMesh.scaling.x,this._cameraLinesMesh.scaling.y=1/this._rootMesh.scaling.y,this._cameraLinesMesh.scaling.z=1/this._rootMesh.scaling.z,this._cameraMesh.parent=null,this._cameraMesh.rotation.y=Math.PI*.5*(this._camera.getScene().useRightHandedSystem?1:-1),this._cameraMesh.parent=this._rootMesh)}setCustomMesh(e){if(e.getScene()!=this.gizmoLayer.utilityLayerScene)throw"When setting a custom mesh on a gizmo, the custom meshes scene must be the same as the gizmos (eg. gizmo.gizmoLayer.utilityLayerScene)";this._cameraMesh&&this._cameraMesh.dispose(),this._cameraMesh=e,this._cameraMesh.parent=this._rootMesh,this._customMeshSet=!0}dispose(){this.onClickedObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this._cameraMesh&&this._cameraMesh.dispose(),this._cameraLinesMesh&&this._cameraLinesMesh.dispose(),this._material.dispose(),super.dispose()}static _CreateCameraMesh(e){const t=new Ne("rootCameraGizmo",e),i=new Ne(t.name,e);i.parent=t;const s=pa(t.name,{width:1,height:.8,depth:.5},e);s.parent=i;const r=e1(t.name,{height:.5,diameterTop:.8,diameterBottom:.8},e);r.parent=i,r.position.y=.3,r.position.x=-.6,r.rotation.x=Math.PI*.5;const n=e1(t.name,{height:.5,diameterTop:.6,diameterBottom:.6},e);n.parent=i,n.position.y=.5,n.position.x=.4,n.rotation.x=Math.PI*.5;const o=e1(t.name,{height:.5,diameterTop:.5,diameterBottom:.5},e);return o.parent=i,o.position.y=0,o.position.x=.6,o.rotation.z=Math.PI*.5,t.scaling.scaleInPlace(nO._Scale),i.position.x=-.9,t}static _CreateCameraFrustum(e,t){const i=new Ne("rootCameraGizmo",e),s=new Ne(i.name,e);s.parent=i;for(let r=0;r<4;r+=2)for(let n=0;n<4;n+=2){let o=ta("lines",{points:[new P(-1+n,-1+r,-1),new P(-1+n,-1+r,1)],colors:[t,t]},e);o.parent=s,o.alwaysSelectAsActiveMesh=!0,o.isPickable=!1,o=ta("lines",{points:[new P(-1,-1+n,-1+r),new P(1,-1+n,-1+r)],colors:[t,t]},e),o.parent=s,o.alwaysSelectAsActiveMesh=!0,o.isPickable=!1,o=ta("lines",{points:[new P(-1+n,-1,-1+r),new P(-1+n,1,-1+r)],colors:[t,t]},e),o.parent=s,o.alwaysSelectAsActiveMesh=!0,o.isPickable=!1}return i}}nO._Scale=.05;class BB extends Ir{set blurRatio(e){this._blurRatio!==e&&(this._blurRatio=e,this._preparePostProcesses())}get blurRatio(){return this._blurRatio}set adaptiveBlurKernel(e){this._adaptiveBlurKernel=e,this._autoComputeBlurKernel()}set blurKernel(e){this.blurKernelX=e,this.blurKernelY=e}set blurKernelX(e){this._blurKernelX!==e&&(this._blurKernelX=e,this._preparePostProcesses())}get blurKernelX(){return this._blurKernelX}set blurKernelY(e){this._blurKernelY!==e&&(this._blurKernelY=e,this._preparePostProcesses())}get blurKernelY(){return this._blurKernelY}_autoComputeBlurKernel(){const e=this.getScene().getEngine(),t=this.getRenderWidth()/e.getRenderWidth(),i=this.getRenderHeight()/e.getRenderHeight();this.blurKernelX=this._adaptiveBlurKernel*t,this.blurKernelY=this._adaptiveBlurKernel*i}_onRatioRescale(){this._sizeRatio&&(this.resize(this._initialSizeParameter),this._adaptiveBlurKernel||this._preparePostProcesses()),this._adaptiveBlurKernel&&this._autoComputeBlurKernel()}_updateGammaSpace(){const e=this.getScene();e&&(this.gammaSpace=!e.imageProcessingConfiguration.isEnabled||!e.imageProcessingConfiguration.applyByPostProcess)}constructor(e,t,i,s,r=0,n=be.BILINEAR_SAMPLINGMODE,o=!0){if(super(e,t,i,s,!0,r,!1,n,o),this.mirrorPlane=new Sh(0,1,0,1),this._transformMatrix=me.Zero(),this._mirrorMatrix=me.Zero(),this._adaptiveBlurKernel=0,this._blurKernelX=0,this._blurKernelY=0,this._blurRatio=1,i=this.getScene(),!i)return this;this.ignoreCameraViewport=!0,this._updateGammaSpace(),this._imageProcessingConfigChangeObserver=i.imageProcessingConfiguration.onUpdateParameters.add(()=>{this._updateGammaSpace()}),i.getEngine().supportsUniformBuffers&&(this._sceneUBO=i.createSceneUniformBuffer(`Scene for Mirror Texture (name "${e}")`));let c;this.onBeforeRenderObservable.add(()=>{this._sceneUBO&&(this._currentSceneUBO=i.getSceneUniformBuffer(),i.setSceneUniformBuffer(this._sceneUBO),i.getSceneUniformBuffer().unbindEffect()),me.ReflectionToRef(this.mirrorPlane,this._mirrorMatrix),this._mirrorMatrix.multiplyToRef(i.getViewMatrix(),this._transformMatrix),i.setTransformMatrix(this._transformMatrix,i.getProjectionMatrix()),c=i.clipPlane,i.clipPlane=this.mirrorPlane,i._mirroredCameraPosition=P.TransformCoordinates(i.activeCamera.globalPosition,this._mirrorMatrix)}),this.onAfterRenderObservable.add(()=>{this._sceneUBO&&i.setSceneUniformBuffer(this._currentSceneUBO),i.updateTransformMatrix(),i._mirroredCameraPosition=null,i.clipPlane=c})}_preparePostProcesses(){if(this.clearPostProcesses(!0),this._blurKernelX&&this._blurKernelY){const e=this.getScene().getEngine(),t=e.getCaps().textureFloatRender&&e.getCaps().textureFloatLinearFiltering?1:2;this._blurX=new tc("horizontal blur",new Ue(1,0),this._blurKernelX,this._blurRatio,null,be.BILINEAR_SAMPLINGMODE,e,!1,t),this._blurX.autoClear=!1,this._blurRatio===1&&this.samples<2&&this._texture?this._blurX.inputTexture=this._renderTarget:this._blurX.alwaysForcePOT=!0,this._blurY=new tc("vertical blur",new Ue(0,1),this._blurKernelY,this._blurRatio,null,be.BILINEAR_SAMPLINGMODE,e,!1,t),this._blurY.autoClear=!1,this._blurY.alwaysForcePOT=this._blurRatio!==1,this.addPostProcess(this._blurX),this.addPostProcess(this._blurY)}else this._blurY&&(this.removePostProcess(this._blurY),this._blurY.dispose(),this._blurY=null),this._blurX&&(this.removePostProcess(this._blurX),this._blurX.dispose(),this._blurX=null)}clone(){const e=this.getScene();if(!e)return this;const t=this.getSize(),i=new BB(this.name,t.width,e,this._renderTargetOptions.generateMipMaps,this._renderTargetOptions.type,this._renderTargetOptions.samplingMode,this._renderTargetOptions.generateDepthBuffer);return i.hasAlpha=this.hasAlpha,i.level=this.level,i.mirrorPlane=this.mirrorPlane.clone(),this.renderList&&(i.renderList=this.renderList.slice(0)),i}serialize(){if(!this.name)return null;const e=super.serialize();return e.mirrorPlane=this.mirrorPlane.asArray(),e}dispose(){var t;super.dispose();const e=this.getScene();e&&e.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigChangeObserver),(t=this._sceneUBO)==null||t.dispose()}}be._CreateMirror=(a,e,t,i)=>new BB(a,e,t,i);class iFe extends Br{constructor(){super(),this.DIFFUSE=!1,this.DIFFUSEDIRECTUV=0,this.GAMMADIFFUSE=!1,this.DIFFUSEHASALPHA=!1,this.OPACITYFRESNEL=!1,this.REFLECTIONBLUR=!1,this.REFLECTIONFRESNEL=!1,this.REFLECTIONFALLOFF=!1,this.TEXTURELODSUPPORT=!1,this.PREMULTIPLYALPHA=!1,this.USERGBCOLOR=!1,this.USEHIGHLIGHTANDSHADOWCOLORS=!1,this.BACKMAT_SHADOWONLY=!1,this.NOISE=!1,this.REFLECTIONBGR=!1,this.PROJECTED_GROUND=!1,this.IMAGEPROCESSING=!1,this.VIGNETTE=!1,this.VIGNETTEBLENDMODEMULTIPLY=!1,this.VIGNETTEBLENDMODEOPAQUE=!1,this.TONEMAPPING=0,this.CONTRAST=!1,this.COLORCURVES=!1,this.COLORGRADING=!1,this.COLORGRADING3D=!1,this.SAMPLER3DGREENDEPTH=!1,this.SAMPLER3DBGRMAP=!1,this.DITHER=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.EXPOSURE=!1,this.MULTIVIEW=!1,this.REFLECTION=!1,this.REFLECTIONMAP_3D=!1,this.REFLECTIONMAP_SPHERICAL=!1,this.REFLECTIONMAP_PLANAR=!1,this.REFLECTIONMAP_CUBIC=!1,this.REFLECTIONMAP_PROJECTION=!1,this.REFLECTIONMAP_SKYBOX=!1,this.REFLECTIONMAP_EXPLICIT=!1,this.REFLECTIONMAP_EQUIRECTANGULAR=!1,this.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,this.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,this.INVERTCUBICMAP=!1,this.REFLECTIONMAP_OPPOSITEZ=!1,this.LODINREFLECTIONALPHA=!1,this.GAMMAREFLECTION=!1,this.RGBDREFLECTION=!1,this.EQUIRECTANGULAR_RELFECTION_FOV=!1,this.MAINUV1=!1,this.MAINUV2=!1,this.UV1=!1,this.UV2=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.POINTSIZE=!1,this.FOG=!1,this.NORMAL=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.INSTANCES=!1,this.SHADOWFLOAT=!1,this.LOGARITHMICDEPTH=!1,this.NONUNIFORMSCALING=!1,this.ALPHATEST=!1,this.rebuild()}}class Qs extends po{get _perceptualColor(){return this.__perceptualColor}set _perceptualColor(e){this.__perceptualColor=e,this._computePrimaryColorFromPerceptualColor(),this._markAllSubMeshesAsLightsDirty()}get primaryColorShadowLevel(){return this._primaryColorShadowLevel}set primaryColorShadowLevel(e){this._primaryColorShadowLevel=e,this._computePrimaryColors(),this._markAllSubMeshesAsLightsDirty()}get primaryColorHighlightLevel(){return this._primaryColorHighlightLevel}set primaryColorHighlightLevel(e){this._primaryColorHighlightLevel=e,this._computePrimaryColors(),this._markAllSubMeshesAsLightsDirty()}set reflectionStandardFresnelWeight(e){let t=e;t<.5?(t=t*2,this.reflectionReflectance0=Qs.StandardReflectance0*t,this.reflectionReflectance90=Qs.StandardReflectance90*t):(t=t*2-1,this.reflectionReflectance0=Qs.StandardReflectance0+(1-Qs.StandardReflectance0)*t,this.reflectionReflectance90=Qs.StandardReflectance90+(1-Qs.StandardReflectance90)*t)}get fovMultiplier(){return this._fovMultiplier}set fovMultiplier(e){isNaN(e)&&(e=1),this._fovMultiplier=Math.max(0,Math.min(2,e))}_attachImageProcessingConfiguration(e){e!==this._imageProcessingConfiguration&&(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e?this._imageProcessingConfiguration=e:this._imageProcessingConfiguration=this.getScene().imageProcessingConfiguration,this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add(()=>{this._computePrimaryColorFromPerceptualColor(),this._markAllSubMeshesAsImageProcessingDirty()})))}get imageProcessingConfiguration(){return this._imageProcessingConfiguration}set imageProcessingConfiguration(e){this._attachImageProcessingConfiguration(e),this._markAllSubMeshesAsTexturesDirty()}get cameraColorCurvesEnabled(){return this.imageProcessingConfiguration.colorCurvesEnabled}set cameraColorCurvesEnabled(e){this.imageProcessingConfiguration.colorCurvesEnabled=e}get cameraColorGradingEnabled(){return this.imageProcessingConfiguration.colorGradingEnabled}set cameraColorGradingEnabled(e){this.imageProcessingConfiguration.colorGradingEnabled=e}get cameraToneMappingEnabled(){return this._imageProcessingConfiguration.toneMappingEnabled}set cameraToneMappingEnabled(e){this._imageProcessingConfiguration.toneMappingEnabled=e}get cameraExposure(){return this._imageProcessingConfiguration.exposure}set cameraExposure(e){this._imageProcessingConfiguration.exposure=e}get cameraContrast(){return this._imageProcessingConfiguration.contrast}set cameraContrast(e){this._imageProcessingConfiguration.contrast=e}get cameraColorGradingTexture(){return this._imageProcessingConfiguration.colorGradingTexture}set cameraColorGradingTexture(e){this.imageProcessingConfiguration.colorGradingTexture=e}get cameraColorCurves(){return this.imageProcessingConfiguration.colorCurves}set cameraColorCurves(e){this.imageProcessingConfiguration.colorCurves=e}constructor(e,t,i=!1){super(e,t,void 0,i),this.primaryColor=Pe.White(),this._primaryColorShadowLevel=0,this._primaryColorHighlightLevel=0,this.reflectionTexture=null,this.reflectionBlur=0,this.diffuseTexture=null,this._shadowLights=null,this.shadowLights=null,this.shadowLevel=0,this.sceneCenter=P.Zero(),this.opacityFresnel=!0,this.reflectionFresnel=!1,this.reflectionFalloffDistance=0,this.reflectionAmount=1,this.reflectionReflectance0=.05,this.reflectionReflectance90=.5,this.useRGBColor=!0,this.enableNoise=!1,this._fovMultiplier=1,this.useEquirectangularFOV=!1,this._maxSimultaneousLights=4,this.maxSimultaneousLights=4,this._shadowOnly=!1,this.shadowOnly=!1,this._imageProcessingObserver=null,this.switchToBGR=!1,this._enableGroundProjection=!1,this.enableGroundProjection=!1,this.projectedGroundRadius=1e3,this.projectedGroundHeight=10,this._renderTargets=new dl(16),this._reflectionControls=Yt.Zero(),this._white=Pe.White(),this._primaryShadowColor=Pe.Black(),this._primaryHighlightColor=Pe.Black(),this._shadersLoaded=!1,this._attachImageProcessingConfiguration(null),this.getRenderTargetTextures=()=>(this._renderTargets.reset(),this._diffuseTexture&&this._diffuseTexture.isRenderTarget&&this._renderTargets.push(this._diffuseTexture),this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&this._renderTargets.push(this._reflectionTexture),this._renderTargets)}get hasRenderTargetTextures(){return!!(this._diffuseTexture&&this._diffuseTexture.isRenderTarget||this._reflectionTexture&&this._reflectionTexture.isRenderTarget)}needAlphaTesting(){return!0}needAlphaBlending(){return this.alpha<1||this._diffuseTexture!=null&&this._diffuseTexture.hasAlpha||this._shadowOnly}isReadyForSubMesh(e,t,i=!1){const s=t._drawWrapper;if(s.effect&&this.isFrozen&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new iFe);const r=this.getScene(),n=t.materialDefines;if(this._isReadyForSubMesh(t))return!0;const o=r.getEngine();if(Jd(r,e,n,!1,this._maxSimultaneousLights),n._needNormals=!0,xP(r,n),n._areTexturesDirty){if(n._needUVs=!1,r.texturesEnabled){if(r.getEngine().getCaps().textureLOD&&(n.TEXTURELODSUPPORT=!0),this._diffuseTexture&&Pt.DiffuseTextureEnabled){if(!this._diffuseTexture.isReadyOrNotBlocking())return!1;En(this._diffuseTexture,n,"DIFFUSE"),n.DIFFUSEHASALPHA=this._diffuseTexture.hasAlpha,n.GAMMADIFFUSE=this._diffuseTexture.gammaSpace,n.OPACITYFRESNEL=this._opacityFresnel}else n.DIFFUSE=!1,n.DIFFUSEDIRECTUV=0,n.DIFFUSEHASALPHA=!1,n.GAMMADIFFUSE=!1,n.OPACITYFRESNEL=!1;const l=this._reflectionTexture;if(l&&Pt.ReflectionTextureEnabled){if(!l.isReadyOrNotBlocking())return!1;switch(n.REFLECTION=!0,n.GAMMAREFLECTION=l.gammaSpace,n.RGBDREFLECTION=l.isRGBD,n.REFLECTIONBLUR=this._reflectionBlur>0,n.LODINREFLECTIONALPHA=l.lodLevelInAlpha,n.EQUIRECTANGULAR_RELFECTION_FOV=this.useEquirectangularFOV,n.REFLECTIONBGR=this.switchToBGR,l.coordinatesMode===be.INVCUBIC_MODE&&(n.INVERTCUBICMAP=!0),n.REFLECTIONMAP_3D=l.isCube,n.REFLECTIONMAP_OPPOSITEZ=n.REFLECTIONMAP_3D&&this.getScene().useRightHandedSystem?!l.invertZ:l.invertZ,l.coordinatesMode){case be.EXPLICIT_MODE:n.REFLECTIONMAP_EXPLICIT=!0;break;case be.PLANAR_MODE:n.REFLECTIONMAP_PLANAR=!0;break;case be.PROJECTION_MODE:n.REFLECTIONMAP_PROJECTION=!0;break;case be.SKYBOX_MODE:n.REFLECTIONMAP_SKYBOX=!0;break;case be.SPHERICAL_MODE:n.REFLECTIONMAP_SPHERICAL=!0;break;case be.EQUIRECTANGULAR_MODE:n.REFLECTIONMAP_EQUIRECTANGULAR=!0;break;case be.FIXED_EQUIRECTANGULAR_MODE:n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!0;break;case be.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!0;break;case be.CUBIC_MODE:case be.INVCUBIC_MODE:default:n.REFLECTIONMAP_CUBIC=!0;break}this.reflectionFresnel?(n.REFLECTIONFRESNEL=!0,n.REFLECTIONFALLOFF=this.reflectionFalloffDistance>0,this._reflectionControls.x=this.reflectionAmount,this._reflectionControls.y=this.reflectionReflectance0,this._reflectionControls.z=this.reflectionReflectance90,this._reflectionControls.w=1/this.reflectionFalloffDistance):(n.REFLECTIONFRESNEL=!1,n.REFLECTIONFALLOFF=!1)}else n.REFLECTION=!1,n.REFLECTIONFRESNEL=!1,n.REFLECTIONFALLOFF=!1,n.REFLECTIONBLUR=!1,n.REFLECTIONMAP_3D=!1,n.REFLECTIONMAP_SPHERICAL=!1,n.REFLECTIONMAP_PLANAR=!1,n.REFLECTIONMAP_CUBIC=!1,n.REFLECTIONMAP_PROJECTION=!1,n.REFLECTIONMAP_SKYBOX=!1,n.REFLECTIONMAP_EXPLICIT=!1,n.REFLECTIONMAP_EQUIRECTANGULAR=!1,n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,n.INVERTCUBICMAP=!1,n.REFLECTIONMAP_OPPOSITEZ=!1,n.LODINREFLECTIONALPHA=!1,n.GAMMAREFLECTION=!1,n.RGBDREFLECTION=!1}n.PREMULTIPLYALPHA=this.alphaMode===7||this.alphaMode===8,n.USERGBCOLOR=this._useRGBColor,n.NOISE=this._enableNoise}if(n._areLightsDirty&&(n.USEHIGHLIGHTANDSHADOWCOLORS=!this._useRGBColor&&(this._primaryColorShadowLevel!==0||this._primaryColorHighlightLevel!==0),n.BACKMAT_SHADOWONLY=this._shadowOnly),n._areImageProcessingDirty&&this._imageProcessingConfiguration){if(!this._imageProcessingConfiguration.isReady())return!1;this._imageProcessingConfiguration.prepareDefines(n)}if(n._areMiscDirty&&(n.REFLECTIONMAP_3D&&this._enableGroundProjection?(n.PROJECTED_GROUND=!0,n.REFLECTIONMAP_SKYBOX=!0):n.PROJECTED_GROUND=!1),ad(e,r,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),n),od(r,o,this,n,i,null,t.getRenderingMesh().hasThinInstances),zo(e,n,!1,!0,!1)&&e&&!r.getEngine().getCaps().standardDerivatives&&!e.isVerticesDataPresent(q.NormalKind)&&(e.createNormals(!0),de.Warn("BackgroundMaterial: Normals have been created for the mesh: "+e.name)),n.isDirty){n.markAsProcessed(),r.resetCachedMaterial();const l=new Ra;n.FOG&&l.addFallback(0,"FOG"),n.POINTSIZE&&l.addFallback(1,"POINTSIZE"),n.MULTIVIEW&&l.addFallback(0,"MULTIVIEW"),Ql(n,l,this._maxSimultaneousLights);const c=[q.PositionKind];n.NORMAL&&c.push(q.NormalKind),n.UV1&&c.push(q.UVKind),n.UV2&&c.push(q.UV2Kind),G1(c,e,n,l),Qo(c,n);const u=["world","view","viewProjection","vEyePosition","vLightsType","vFogInfos","vFogColor","pointSize","mBones","vPrimaryColor","vPrimaryColorShadow","vReflectionInfos","reflectionMatrix","vReflectionMicrosurfaceInfos","fFovMultiplier","shadowLevel","alpha","vBackgroundCenter","vReflectionControl","vDiffuseInfos","diffuseMatrix","projectedGroundInfos","logarithmicDepthConstant"];qo(u);const f=["diffuseSampler","reflectionSampler","reflectionSamplerLow","reflectionSamplerHigh"],p=["Material","Scene"];ws&&(ws.PrepareUniforms(u,n),ws.PrepareSamplers(f,n)),gl({uniformsNames:u,uniformBuffersNames:p,samplers:f,defines:n,maxSimultaneousLights:this._maxSimultaneousLights});const m=n.toString(),_=r.getEngine().createEffect("background",{attributes:c,uniformsNames:u,uniformBuffersNames:p,samplers:f,defines:m,fallbacks:l,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:this._maxSimultaneousLights},shaderLanguage:this._shaderLanguage,extraInitializationsAsync:this._shadersLoaded?void 0:async()=>{this.shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>Fke),Promise.resolve().then(()=>Qke)]):await Promise.all([Promise.resolve().then(()=>oUe),Promise.resolve().then(()=>bUe)]),this._shadersLoaded=!0}},o);t.setEffect(_,n,this._materialContext),this.buildUniformLayout()}return!t.effect||!t.effect.isReady()?!1:(n._renderId=r.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=i,this._checkScenePerformancePriority(),!0)}_computePrimaryColorFromPerceptualColor(){this.__perceptualColor&&(this._primaryColor.copyFrom(this.__perceptualColor),this._primaryColor.toLinearSpaceToRef(this._primaryColor,this.getScene().getEngine().useExactSrgbConversions),this._imageProcessingConfiguration&&this._primaryColor.scaleToRef(1/this._imageProcessingConfiguration.exposure,this._primaryColor),this._computePrimaryColors())}_computePrimaryColors(){this._primaryColorShadowLevel===0&&this._primaryColorHighlightLevel===0||(this._primaryColor.scaleToRef(this._primaryColorShadowLevel,this._primaryShadowColor),this._primaryColor.subtractToRef(this._primaryShadowColor,this._primaryShadowColor),this._white.subtractToRef(this._primaryColor,this._primaryHighlightColor),this._primaryHighlightColor.scaleToRef(this._primaryColorHighlightLevel,this._primaryHighlightColor),this._primaryColor.addToRef(this._primaryHighlightColor,this._primaryHighlightColor))}buildUniformLayout(){this._uniformBuffer.addUniform("vPrimaryColor",4),this._uniformBuffer.addUniform("vPrimaryColorShadow",4),this._uniformBuffer.addUniform("vDiffuseInfos",2),this._uniformBuffer.addUniform("vReflectionInfos",2),this._uniformBuffer.addUniform("diffuseMatrix",16),this._uniformBuffer.addUniform("reflectionMatrix",16),this._uniformBuffer.addUniform("vReflectionMicrosurfaceInfos",3),this._uniformBuffer.addUniform("fFovMultiplier",1),this._uniformBuffer.addUniform("pointSize",1),this._uniformBuffer.addUniform("shadowLevel",1),this._uniformBuffer.addUniform("alpha",1),this._uniformBuffer.addUniform("vBackgroundCenter",3),this._uniformBuffer.addUniform("vReflectionControl",4),this._uniformBuffer.addUniform("projectedGroundInfos",2),this._uniformBuffer.create()}unbind(){this._diffuseTexture&&this._diffuseTexture.isRenderTarget&&this._uniformBuffer.setTexture("diffuseSampler",null),this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&this._uniformBuffer.setTexture("reflectionSampler",null),super.unbind()}bindOnlyWorldMatrix(e){this._activeEffect.setMatrix("world",e)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;if(!n)return;this._activeEffect=n,this.bindOnlyWorldMatrix(e),Pc(t,this._activeEffect);const o=this._mustRebind(s,n,i,t.visibility);if(o){this._uniformBuffer.bindToEffect(n,"Material"),this.bindViewProjection(n);const l=this._reflectionTexture;(!this._uniformBuffer.useUbo||!this.isFrozen||!this._uniformBuffer.isSync||i._drawWrapper._forceRebindOnNextCall)&&(s.texturesEnabled&&(this._diffuseTexture&&Pt.DiffuseTextureEnabled&&(this._uniformBuffer.updateFloat2("vDiffuseInfos",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),Tn(this._diffuseTexture,this._uniformBuffer,"diffuse")),l&&Pt.ReflectionTextureEnabled&&(this._uniformBuffer.updateMatrix("reflectionMatrix",l.getReflectionTextureMatrix()),this._uniformBuffer.updateFloat2("vReflectionInfos",l.level,this._reflectionBlur),this._uniformBuffer.updateFloat3("vReflectionMicrosurfaceInfos",l.getSize().width,l.lodGenerationScale,l.lodGenerationOffset))),this.shadowLevel>0&&this._uniformBuffer.updateFloat("shadowLevel",this.shadowLevel),this._uniformBuffer.updateFloat("alpha",this.alpha),this.pointsCloud&&this._uniformBuffer.updateFloat("pointSize",this.pointSize),r.USEHIGHLIGHTANDSHADOWCOLORS?(this._uniformBuffer.updateColor4("vPrimaryColor",this._primaryHighlightColor,1),this._uniformBuffer.updateColor4("vPrimaryColorShadow",this._primaryShadowColor,1)):this._uniformBuffer.updateColor4("vPrimaryColor",this._primaryColor,1)),this._uniformBuffer.updateFloat("fFovMultiplier",this._fovMultiplier),s.texturesEnabled&&(this._diffuseTexture&&Pt.DiffuseTextureEnabled&&this._uniformBuffer.setTexture("diffuseSampler",this._diffuseTexture),l&&Pt.ReflectionTextureEnabled&&(r.REFLECTIONBLUR&&r.TEXTURELODSUPPORT?this._uniformBuffer.setTexture("reflectionSampler",l):r.REFLECTIONBLUR?(this._uniformBuffer.setTexture("reflectionSampler",l._lodTextureMid||l),this._uniformBuffer.setTexture("reflectionSamplerLow",l._lodTextureLow||l),this._uniformBuffer.setTexture("reflectionSamplerHigh",l._lodTextureHigh||l)):this._uniformBuffer.setTexture("reflectionSampler",l),r.REFLECTIONFRESNEL&&(this._uniformBuffer.updateFloat3("vBackgroundCenter",this.sceneCenter.x,this.sceneCenter.y,this.sceneCenter.z),this._uniformBuffer.updateFloat4("vReflectionControl",this._reflectionControls.x,this._reflectionControls.y,this._reflectionControls.z,this._reflectionControls.w))),r.PROJECTED_GROUND&&this._uniformBuffer.updateFloat2("projectedGroundInfos",this.projectedGroundRadius,this.projectedGroundHeight)),Bo(this._activeEffect,this,s),s.bindEyePosition(n)}else s.getEngine()._features.needToAlwaysBindUniformBuffers&&(this._uniformBuffer.bindToEffect(n,"Material"),this._needToBindSceneUbo=!0);(o||!this.isFrozen)&&(s.lightsEnabled&&Qd(s,t,this._activeEffect,r,this._maxSimultaneousLights),this.bindView(n),Ic(s,t,this._activeEffect,!0),this._useLogarithmicDepth&&ml(r,n,s),this._imageProcessingConfiguration&&this._imageProcessingConfiguration.bind(this._activeEffect)),this._afterBind(t,this._activeEffect,i),this._uniformBuffer.update()}hasTexture(e){return!!(super.hasTexture(e)||this._reflectionTexture===e||this._diffuseTexture===e)}dispose(e=!1,t=!1){t&&(this.diffuseTexture&&this.diffuseTexture.dispose(),this.reflectionTexture&&this.reflectionTexture.dispose()),this._renderTargets.dispose(),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),super.dispose(e)}clone(e){return It.Clone(()=>new Qs(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.BackgroundMaterial",e}getClassName(){return"BackgroundMaterial"}static Parse(e,t,i){return It.Parse(()=>new Qs(e.name,t),e,t,i)}}Qs.StandardReflectance0=.05,Qs.StandardReflectance90=.5,F([qs()],Qs.prototype,"_primaryColor",void 0),F([et("_markAllSubMeshesAsLightsDirty")],Qs.prototype,"primaryColor",void 0),F([qs()],Qs.prototype,"__perceptualColor",void 0),F([G()],Qs.prototype,"_primaryColorShadowLevel",void 0),F([G()],Qs.prototype,"_primaryColorHighlightLevel",void 0),F([et("_markAllSubMeshesAsLightsDirty")],Qs.prototype,"primaryColorHighlightLevel",null),F([Yi()],Qs.prototype,"_reflectionTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"reflectionTexture",void 0),F([G()],Qs.prototype,"_reflectionBlur",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"reflectionBlur",void 0),F([Yi()],Qs.prototype,"_diffuseTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"diffuseTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"shadowLights",void 0),F([G()],Qs.prototype,"_shadowLevel",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"shadowLevel",void 0),F([Ma()],Qs.prototype,"_sceneCenter",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"sceneCenter",void 0),F([G()],Qs.prototype,"_opacityFresnel",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"opacityFresnel",void 0),F([G()],Qs.prototype,"_reflectionFresnel",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"reflectionFresnel",void 0),F([G()],Qs.prototype,"_reflectionFalloffDistance",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"reflectionFalloffDistance",void 0),F([G()],Qs.prototype,"_reflectionAmount",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"reflectionAmount",void 0),F([G()],Qs.prototype,"_reflectionReflectance0",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"reflectionReflectance0",void 0),F([G()],Qs.prototype,"_reflectionReflectance90",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"reflectionReflectance90",void 0),F([G()],Qs.prototype,"_useRGBColor",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"useRGBColor",void 0),F([G()],Qs.prototype,"_enableNoise",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"enableNoise",void 0),F([G()],Qs.prototype,"_maxSimultaneousLights",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Qs.prototype,"maxSimultaneousLights",void 0),F([G()],Qs.prototype,"_shadowOnly",void 0),F([et("_markAllSubMeshesAsLightsDirty")],Qs.prototype,"shadowOnly",void 0),F([LX()],Qs.prototype,"_imageProcessingConfiguration",void 0),F([G(),et("_markAllSubMeshesAsMiscDirty")],Qs.prototype,"enableGroundProjection",void 0),F([G()],Qs.prototype,"projectedGroundRadius",void 0),F([G()],Qs.prototype,"projectedGroundHeight",void 0),ve("BABYLON.BackgroundMaterial",Qs);class o9{static _GetDefaultOptions(e){return{createGround:!0,groundSize:15,groundTexture:Le.GetAssetUrl(this._GroundTextureCDNUrl),groundColor:new Pe(.2,.2,.3).toLinearSpace(e.getEngine().useExactSrgbConversions).scale(3),groundOpacity:.9,enableGroundShadow:!0,groundShadowLevel:.5,enableGroundMirror:!1,groundMirrorSizeRatio:.3,groundMirrorBlurKernel:64,groundMirrorAmount:1,groundMirrorFresnelWeight:1,groundMirrorFallOffDistance:0,groundMirrorTextureType:0,groundYBias:1e-5,createSkybox:!0,skyboxSize:20,skyboxTexture:Le.GetAssetUrl(this._SkyboxTextureCDNUrl),skyboxColor:new Pe(.2,.2,.3).toLinearSpace(e.getEngine().useExactSrgbConversions).scale(3),backgroundYRotation:0,sizeAuto:!0,rootPosition:P.Zero(),setupImageProcessing:!0,environmentTexture:Le.GetAssetUrl(this._EnvironmentTextureCDNUrl),cameraExposure:.8,cameraContrast:1.2,toneMappingEnabled:!0}}get rootMesh(){return this._rootMesh}get skybox(){return this._skybox}get skyboxTexture(){return this._skyboxTexture}get skyboxMaterial(){return this._skyboxMaterial}get ground(){return this._ground}get groundTexture(){return this._groundTexture}get groundMirror(){return this._groundMirror}get groundMirrorRenderList(){return this._groundMirror?this._groundMirror.renderList:null}get groundMaterial(){return this._groundMaterial}constructor(e,t){this._errorHandler=(i,s)=>{this.onErrorObservable.notifyObservers({message:i,exception:s})},this._options={...o9._GetDefaultOptions(t),...e},this._scene=t,this.onErrorObservable=new xe,this._setupBackground(),this._setupImageProcessing()}updateOptions(e){const t={...this._options,...e};this._ground&&!t.createGround&&(this._ground.dispose(),this._ground=null),this._groundMaterial&&!t.createGround&&(this._groundMaterial.dispose(),this._groundMaterial=null),this._groundTexture&&this._options.groundTexture!=t.groundTexture&&(this._groundTexture.dispose(),this._groundTexture=null),this._skybox&&!t.createSkybox&&(this._skybox.dispose(),this._skybox=null),this._skyboxMaterial&&!t.createSkybox&&(this._skyboxMaterial.dispose(),this._skyboxMaterial=null),this._skyboxTexture&&this._options.skyboxTexture!=t.skyboxTexture&&(this._skyboxTexture.dispose(),this._skyboxTexture=null),this._groundMirror&&!t.enableGroundMirror&&(this._groundMirror.dispose(),this._groundMirror=null),this._scene.environmentTexture&&this._options.environmentTexture!=t.environmentTexture&&this._scene.environmentTexture.dispose(),this._options=t,this._setupBackground(),this._setupImageProcessing()}setMainColor(e){this.groundMaterial&&(this.groundMaterial.primaryColor=e),this.skyboxMaterial&&(this.skyboxMaterial.primaryColor=e),this.groundMirror&&(this.groundMirror.clearColor=new St(e.r,e.g,e.b,1))}_setupImageProcessing(){this._options.setupImageProcessing&&(this._scene.imageProcessingConfiguration.contrast=this._options.cameraContrast,this._scene.imageProcessingConfiguration.exposure=this._options.cameraExposure,this._scene.imageProcessingConfiguration.toneMappingEnabled=this._options.toneMappingEnabled,this._setupEnvironmentTexture())}_setupEnvironmentTexture(){if(this._scene.environmentTexture)return;if(this._options.environmentTexture instanceof vr){this._scene.environmentTexture=this._options.environmentTexture;return}const e=ko.CreateFromPrefilteredData(this._options.environmentTexture,this._scene);this._scene.environmentTexture=e}_setupBackground(){this._rootMesh||(this._rootMesh=new Ne("BackgroundHelper",this._scene)),this._rootMesh.rotation.y=this._options.backgroundYRotation;const e=this._getSceneSize();this._options.createGround&&(this._setupGround(e),this._setupGroundMaterial(),this._setupGroundDiffuseTexture(),this._options.enableGroundMirror&&this._setupGroundMirrorTexture(e),this._setupMirrorInGroundMaterial()),this._options.createSkybox&&(this._setupSkybox(e),this._setupSkyboxMaterial(),this._setupSkyboxReflectionTexture()),this._rootMesh.position.x=e.rootPosition.x,this._rootMesh.position.z=e.rootPosition.z,this._rootMesh.position.y=e.rootPosition.y}_getSceneSize(){let e=this._options.groundSize,t=this._options.skyboxSize,i=this._options.rootPosition;if(!this._scene.meshes||this._scene.meshes.length===1)return{groundSize:e,skyboxSize:t,rootPosition:i};const s=this._scene.getWorldExtends(n=>n!==this._ground&&n!==this._rootMesh&&n!==this._skybox),r=s.max.subtract(s.min);if(this._options.sizeAuto){this._scene.activeCamera instanceof yr&&this._scene.activeCamera.upperRadiusLimit&&(e=this._scene.activeCamera.upperRadiusLimit*2,t=e);const n=r.length();n>e&&(e=n*2,t=e),e*=1.1,t*=1.5,i=s.min.add(r.scale(.5)),i.y=s.min.y-this._options.groundYBias}return{groundSize:e,skyboxSize:t,rootPosition:i}}_setupGround(e){(!this._ground||this._ground.isDisposed())&&(this._ground=Eh("BackgroundPlane",{size:e.groundSize},this._scene),this._ground.rotation.x=Math.PI/2,this._ground.isPickable=!1,this._ground.parent=this._rootMesh,this._ground.onDisposeObservable.add(()=>{this._ground=null})),this._ground.receiveShadows=this._options.enableGroundShadow}_setupGroundMaterial(){this._groundMaterial||(this._groundMaterial=new Qs("BackgroundPlaneMaterial",this._scene)),this._groundMaterial.alpha=this._options.groundOpacity,this._groundMaterial.alphaMode=8,this._groundMaterial.shadowLevel=this._options.groundShadowLevel,this._groundMaterial.primaryColor=this._options.groundColor,this._groundMaterial.useRGBColor=!1,this._groundMaterial.enableNoise=!0,this._ground&&(this._ground.material=this._groundMaterial)}_setupGroundDiffuseTexture(){if(this._groundMaterial&&!this._groundTexture){if(this._options.groundTexture instanceof vr){this._groundMaterial.diffuseTexture=this._options.groundTexture;return}this._groundTexture=new be(this._options.groundTexture,this._scene,void 0,void 0,void 0,void 0,this._errorHandler),this._groundTexture.gammaSpace=!1,this._groundTexture.hasAlpha=!0,this._groundMaterial.diffuseTexture=this._groundTexture}}_setupGroundMirrorTexture(e){const t=be.CLAMP_ADDRESSMODE;if(!this._groundMirror&&(this._groundMirror=new BB("BackgroundPlaneMirrorTexture",{ratio:this._options.groundMirrorSizeRatio},this._scene,!1,this._options.groundMirrorTextureType,be.BILINEAR_SAMPLINGMODE,!0),this._groundMirror.mirrorPlane=new Sh(0,-1,0,e.rootPosition.y),this._groundMirror.anisotropicFilteringLevel=1,this._groundMirror.wrapU=t,this._groundMirror.wrapV=t,this._groundMirror.renderList))for(let s=0;s<this._scene.meshes.length;s++){const r=this._scene.meshes[s];r!==this._ground&&r!==this._skybox&&r!==this._rootMesh&&this._groundMirror.renderList.push(r)}const i=this._options.groundColor.toGammaSpace(this._scene.getEngine().useExactSrgbConversions);this._groundMirror.clearColor=new St(i.r,i.g,i.b,1),this._groundMirror.adaptiveBlurKernel=this._options.groundMirrorBlurKernel}_setupMirrorInGroundMaterial(){this._groundMaterial&&(this._groundMaterial.reflectionTexture=this._groundMirror,this._groundMaterial.reflectionFresnel=!0,this._groundMaterial.reflectionAmount=this._options.groundMirrorAmount,this._groundMaterial.reflectionStandardFresnelWeight=this._options.groundMirrorFresnelWeight,this._groundMaterial.reflectionFalloffDistance=this._options.groundMirrorFallOffDistance)}_setupSkybox(e){(!this._skybox||this._skybox.isDisposed())&&(this._skybox=pa("BackgroundSkybox",{size:e.skyboxSize,sideOrientation:Ne.BACKSIDE},this._scene),this._skybox.isPickable=!1,this._skybox.onDisposeObservable.add(()=>{this._skybox=null})),this._skybox.parent=this._rootMesh}_setupSkyboxMaterial(){this._skybox&&(this._skyboxMaterial||(this._skyboxMaterial=new Qs("BackgroundSkyboxMaterial",this._scene)),this._skyboxMaterial.useRGBColor=!1,this._skyboxMaterial.primaryColor=this._options.skyboxColor,this._skyboxMaterial.enableNoise=!0,this._skybox.material=this._skyboxMaterial)}_setupSkyboxReflectionTexture(){if(this._skyboxMaterial&&!this._skyboxTexture){if(this._options.skyboxTexture instanceof vr){this._skyboxMaterial.reflectionTexture=this._options.skyboxTexture;return}this._skyboxTexture=new ko(this._options.skyboxTexture,this._scene,void 0,void 0,void 0,void 0,this._errorHandler),this._skyboxTexture.coordinatesMode=be.SKYBOX_MODE,this._skyboxTexture.gammaSpace=!1,this._skyboxMaterial.reflectionTexture=this._skyboxTexture}}dispose(){this._groundMaterial&&this._groundMaterial.dispose(!0,!0),this._skyboxMaterial&&this._skyboxMaterial.dispose(!0,!0),this._rootMesh.dispose(!1)}}o9._GroundTextureCDNUrl="https://assets.babylonjs.com/core/environments/backgroundGround.png",o9._SkyboxTextureCDNUrl="https://assets.babylonjs.com/core/environments/backgroundSkybox.dds",o9._EnvironmentTextureCDNUrl="https://assets.babylonjs.com/core/environments/environmentSpecular.env";class ff extends Si{get texture(){return this._texture}set texture(e){this._texture!==e&&(this._texture=e,this._useDirectMapping?(this._texture.wrapU=be.CLAMP_ADDRESSMODE,this._texture.wrapV=be.CLAMP_ADDRESSMODE,this._material.diffuseTexture=this._texture):(this._texture.coordinatesMode=be.FIXED_EQUIRECTANGULAR_MIRRORED_MODE,this._texture.wrapV=be.CLAMP_ADDRESSMODE,this._material.reflectionTexture=this._texture),this._changeTextureMode(this._textureMode))}get mesh(){return this._mesh}get fovMultiplier(){return this._material.fovMultiplier}set fovMultiplier(e){this._material.fovMultiplier=e}get textureMode(){return this._textureMode}set textureMode(e){this._textureMode!==e&&this._changeTextureMode(e)}get halfDome(){return this._halfDome}set halfDome(e){this._halfDome=e,this._halfDomeMask.setEnabled(e),this._changeTextureMode(this._textureMode)}set crossEye(e){this._crossEye=e,this._changeTextureMode(this._textureMode)}get crossEye(){return this._crossEye}get material(){return this._material}constructor(e,t,i,s,r=null){super(e,s),this.onError=r,this._halfDome=!1,this._crossEye=!1,this._useDirectMapping=!1,this._textureMode=ff.MODE_MONOSCOPIC,this._onBeforeCameraRenderObserver=null,this.onLoadErrorObservable=new xe,this.onLoadObservable=new xe,s=this.getScene(),e=e||"textureDome",i.resolution=Math.abs(i.resolution)|0||32,i.clickToPlay=!!i.clickToPlay,i.autoPlay=i.autoPlay===void 0?!0:!!i.autoPlay,i.loop=i.loop===void 0?!0:!!i.loop,i.size=Math.abs(i.size)||(s.activeCamera?s.activeCamera.maxZ*.48:1e3),i.useDirectMapping===void 0?this._useDirectMapping=!0:this._useDirectMapping=i.useDirectMapping,i.faceForward===void 0&&(i.faceForward=!0),this._setReady(!1),i.mesh?this._mesh=i.mesh:this._mesh=hd(e+"_mesh",{segments:i.resolution,diameter:i.size,updatable:!1,sideOrientation:Ne.BACKSIDE},s);const n=this._material=new Qs(e+"_material",s);n.useEquirectangularFOV=!0,n.fovMultiplier=1,n.opacityFresnel=!1;const o=this._initTexture(t,s,i);if(this.texture=o,this._mesh.material=n,this._mesh.parent=this,this._halfDomeMask=hd("",{slice:.5,diameter:i.size*.98,segments:i.resolution*2,sideOrientation:Ne.BACKSIDE},s),this._halfDomeMask.rotate(fo.X,-Math.PI/2),this._halfDomeMask.parent=this._mesh,this._halfDome=!!i.halfDomeMode,this._halfDomeMask.setEnabled(this._halfDome),this._crossEye=!!i.crossEyeMode,this._texture.anisotropicFilteringLevel=1,this._texture.onLoadObservable.addOnce(()=>{this._setReady(!0)}),i.faceForward&&s.activeCamera){const l=s.activeCamera,c=P.Forward(),u=P.TransformNormal(c,l.getViewMatrix());u.normalize(),this.rotation.y=Math.acos(P.Dot(c,u))}this._changeTextureMode(this._textureMode)}_changeTextureMode(e){switch(this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),this._textureMode=e,this._texture.uScale=1,this._texture.vScale=1,this._texture.uOffset=0,this._texture.vOffset=0,this._texture.vAng=0,e){case ff.MODE_MONOSCOPIC:this._halfDome&&(this._texture.uScale=2,this._texture.uOffset=-1);break;case ff.MODE_SIDEBYSIDE:{this._texture.uScale=this._halfDome?.99999:.5;const t=this._halfDome?0:.5,i=this._halfDome?-.5:0;this._onBeforeCameraRenderObserver=this._scene.onBeforeCameraRenderObservable.add(s=>{let r=s.isRightCamera;this._crossEye&&(r=!r),r?this._texture.uOffset=t:this._texture.uOffset=i});break}case ff.MODE_TOPBOTTOM:this._texture.vScale=this._halfDome?.99999:.5,this._onBeforeCameraRenderObserver=this._scene.onBeforeCameraRenderObservable.add(t=>{let i=t.isRightCamera;this._crossEye&&(i=!i),this._texture.vOffset=i?.5:0});break}}dispose(e,t=!1){this._texture.dispose(),this._mesh.dispose(),this._material.dispose(),this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),this.onLoadErrorObservable.clear(),this.onLoadObservable.clear(),super.dispose(e,t)}}ff.MODE_MONOSCOPIC=0,ff.MODE_TOPBOTTOM=1,ff.MODE_SIDEBYSIDE=2;class EH extends ff{get photoTexture(){return this.texture}set photoTexture(e){this.texture=e}get imageMode(){return this.textureMode}set imageMode(e){this.textureMode=e}_initTexture(e,t,i){return new be(e,t,!i.generateMipMaps,!this._useDirectMapping,void 0,()=>{this.onLoadObservable.notifyObservers()},(s,r)=>{this.onLoadErrorObservable.notifyObservers(s||"Unknown error occured"),this.onError&&this.onError(s,r)})}}EH.MODE_MONOSCOPIC=ff.MODE_MONOSCOPIC,EH.MODE_TOPBOTTOM=ff.MODE_TOPBOTTOM,EH.MODE_SIDEBYSIDE=ff.MODE_SIDEBYSIDE;const sFe=542327876,o3e=131072,l3e=512,c3e=4,u3e=64,h3e=131072;function TH(a){return a.charCodeAt(0)+(a.charCodeAt(1)<<8)+(a.charCodeAt(2)<<16)+(a.charCodeAt(3)<<24)}function rFe(a){return String.fromCharCode(a&255,a>>8&255,a>>16&255,a>>24&255)}const d3e=TH("DXT1"),f3e=TH("DXT3"),p3e=TH("DXT5"),Ite=TH("DX10"),m3e=113,g3e=116,_3e=2,v3e=10,nFe=88,Pte=31,aFe=0,oFe=1,A3e=2,C3e=3,Ote=4,x3e=7,Rte=20,b3e=21,lFe=22,cFe=23,uFe=24,hFe=25,dFe=26,fFe=28,pFe=32;class Cn{static GetDDSInfo(e){const t=new Int32Array(e.buffer,e.byteOffset,Pte),i=new Int32Array(e.buffer,e.byteOffset,Pte+4);let s=1;t[A3e]&o3e&&(s=Math.max(1,t[x3e]));const r=t[b3e],n=r===Ite?i[pFe]:0;let o=0;switch(r){case m3e:o=2;break;case g3e:o=1;break;case Ite:if(n===v3e){o=2;break}if(n===_3e){o=1;break}}return{width:t[Ote],height:t[C3e],mipmapCount:s,isFourCC:(t[Rte]&c3e)===c3e,isRGB:(t[Rte]&u3e)===u3e,isLuminance:(t[Rte]&h3e)===h3e,isCube:(t[fFe]&l3e)===l3e,isCompressed:r===d3e||r===f3e||r===p3e,dxgiFormat:n,textureType:o}}static _GetHalfFloatAsFloatRGBAArrayBuffer(e,t,i,s,r,n){const o=new Float32Array(s),l=new Uint16Array(r,i);let c=0;for(let u=0;u<t;u++)for(let f=0;f<e;f++){const p=(f+u*e)*4;o[c]=Zv(l[p]),o[c+1]=Zv(l[p+1]),o[c+2]=Zv(l[p+2]),Cn.StoreLODInAlphaChannel?o[c+3]=n:o[c+3]=Zv(l[p+3]),c+=4}return o}static _GetHalfFloatRGBAArrayBuffer(e,t,i,s,r,n){if(Cn.StoreLODInAlphaChannel){const o=new Uint16Array(s),l=new Uint16Array(r,i);let c=0;for(let u=0;u<t;u++)for(let f=0;f<e;f++){const p=(f+u*e)*4;o[c]=l[p],o[c+1]=l[p+1],o[c+2]=l[p+2],o[c+3]=H1(n),c+=4}return o}return new Uint16Array(r,i,s)}static _GetFloatRGBAArrayBuffer(e,t,i,s,r,n){if(Cn.StoreLODInAlphaChannel){const o=new Float32Array(s),l=new Float32Array(r,i);let c=0;for(let u=0;u<t;u++)for(let f=0;f<e;f++){const p=(f+u*e)*4;o[c]=l[p],o[c+1]=l[p+1],o[c+2]=l[p+2],o[c+3]=n,c+=4}return o}return new Float32Array(r,i,s)}static _GetFloatAsHalfFloatRGBAArrayBuffer(e,t,i,s,r,n){const o=new Uint16Array(s),l=new Float32Array(r,i);let c=0;for(let u=0;u<t;u++)for(let f=0;f<e;f++)o[c]=H1(l[c]),o[c+1]=H1(l[c+1]),o[c+2]=H1(l[c+2]),Cn.StoreLODInAlphaChannel?o[c+3]=H1(n):o[c+3]=H1(l[c+3]),c+=4;return o}static _GetFloatAsUIntRGBAArrayBuffer(e,t,i,s,r,n){const o=new Uint8Array(s),l=new Float32Array(r,i);let c=0;for(let u=0;u<t;u++)for(let f=0;f<e;f++){const p=(f+u*e)*4;o[c]=Os(l[p])*255,o[c+1]=Os(l[p+1])*255,o[c+2]=Os(l[p+2])*255,Cn.StoreLODInAlphaChannel?o[c+3]=n:o[c+3]=Os(l[p+3])*255,c+=4}return o}static _GetHalfFloatAsUIntRGBAArrayBuffer(e,t,i,s,r,n){const o=new Uint8Array(s),l=new Uint16Array(r,i);let c=0;for(let u=0;u<t;u++)for(let f=0;f<e;f++){const p=(f+u*e)*4;o[c]=Os(Zv(l[p]))*255,o[c+1]=Os(Zv(l[p+1]))*255,o[c+2]=Os(Zv(l[p+2]))*255,Cn.StoreLODInAlphaChannel?o[c+3]=n:o[c+3]=Os(Zv(l[p+3]))*255,c+=4}return o}static _GetRGBAArrayBuffer(e,t,i,s,r,n,o,l,c){const u=new Uint8Array(s),f=new Uint8Array(r,i);let p=0;for(let m=0;m<t;m++)for(let _=0;_<e;_++){const d=(_+m*e)*4;u[p]=f[d+n],u[p+1]=f[d+o],u[p+2]=f[d+l],u[p+3]=f[d+c],p+=4}return u}static _ExtractLongWordOrder(e){return e===0||e===255||e===-16777216?0:1+Cn._ExtractLongWordOrder(e>>8)}static _GetRGBArrayBuffer(e,t,i,s,r,n,o,l){const c=new Uint8Array(s),u=new Uint8Array(r,i);let f=0;for(let p=0;p<t;p++)for(let m=0;m<e;m++){const _=(m+p*e)*3;c[f]=u[_+n],c[f+1]=u[_+o],c[f+2]=u[_+l],f+=3}return c}static _GetLuminanceArrayBuffer(e,t,i,s,r){const n=new Uint8Array(s),o=new Uint8Array(r,i);let l=0;for(let c=0;c<t;c++)for(let u=0;u<e;u++){const f=u+c*e;n[l]=o[f],l++}return n}static UploadDDSLevels(e,t,i,s,r,n,o=-1,l,c=!0){let u=null;s.sphericalPolynomial&&(u=[]);const f=!!e.getCaps().s3tc;t.generateMipMaps=r;const p=new Int32Array(i.buffer,i.byteOffset,Pte);let m,_,d,h=0,x,A,S,E,b=0,M=1;if(p[aFe]!==sFe){de.Error("Invalid magic number in DDS header");return}if(!s.isFourCC&&!s.isRGB&&!s.isLuminance){de.Error("Unsupported format, must contain a FourCC, RGB or LUMINANCE code");return}if(s.isCompressed&&!f){de.Error("Compressed textures are not supported on this platform.");return}let T=p[lFe];x=p[oFe]+4;let O=!1;if(s.isFourCC)switch(m=p[b3e],m){case d3e:M=8,b=33777;break;case f3e:M=16,b=33778;break;case p3e:M=16,b=33779;break;case m3e:O=!0,T=64;break;case g3e:O=!0,T=128;break;case Ite:{x+=5*4;let Y=!1;switch(s.dxgiFormat){case v3e:O=!0,T=64,Y=!0;break;case _3e:O=!0,T=128,Y=!0;break;case nFe:s.isRGB=!0,s.isFourCC=!1,T=32,Y=!0;break}if(Y)break}default:de.Error(["Unsupported FourCC code:",rFe(m)]);return}const R=Cn._ExtractLongWordOrder(p[cFe]),I=Cn._ExtractLongWordOrder(p[uFe]),N=Cn._ExtractLongWordOrder(p[hFe]),w=Cn._ExtractLongWordOrder(p[dFe]);O&&(b=e._getRGBABufferInternalSizedFormat(s.textureType)),S=1,p[A3e]&o3e&&r!==!1&&(S=Math.max(1,p[x3e]));const D=l||0,k=e.getCaps();for(let Y=D;Y<n;Y++){for(_=p[Ote],d=p[C3e],E=0;E<S;++E){if(o===-1||o===E){const V=o===-1?E:0;if(!s.isCompressed&&s.isFourCC){t.format=5,h=_*d*4;let ee=null;if(e._badOS||e._badDesktopOS||!k.textureHalfFloat&&!k.textureFloat)T===128?(ee=Cn._GetFloatAsUIntRGBAArrayBuffer(_,d,i.byteOffset+x,h,i.buffer,V),u&&V==0&&u.push(Cn._GetFloatRGBAArrayBuffer(_,d,i.byteOffset+x,h,i.buffer,V))):T===64&&(ee=Cn._GetHalfFloatAsUIntRGBAArrayBuffer(_,d,i.byteOffset+x,h,i.buffer,V),u&&V==0&&u.push(Cn._GetHalfFloatAsFloatRGBAArrayBuffer(_,d,i.byteOffset+x,h,i.buffer,V))),t.type=0;else{const K=k.textureFloat&&(c&&k.textureFloatLinearFiltering||!c),ie=k.textureHalfFloat&&(c&&k.textureHalfFloatLinearFiltering||!c),ne=(T===128||T===64&&!ie)&&K?1:(T===64||T===128&&!K)&&ie?2:0;let te,W=null;switch(T){case 128:{switch(ne){case 1:te=Cn._GetFloatRGBAArrayBuffer,W=null;break;case 2:te=Cn._GetFloatAsHalfFloatRGBAArrayBuffer,W=Cn._GetFloatRGBAArrayBuffer;break;case 0:te=Cn._GetFloatAsUIntRGBAArrayBuffer,W=Cn._GetFloatRGBAArrayBuffer;break}break}default:{switch(ne){case 1:te=Cn._GetHalfFloatAsFloatRGBAArrayBuffer,W=null;break;case 2:te=Cn._GetHalfFloatRGBAArrayBuffer,W=Cn._GetHalfFloatAsFloatRGBAArrayBuffer;break;case 0:te=Cn._GetHalfFloatAsUIntRGBAArrayBuffer,W=Cn._GetHalfFloatAsFloatRGBAArrayBuffer;break}break}}t.type=ne,ee=te(_,d,i.byteOffset+x,h,i.buffer,V),u&&V==0&&u.push(W?W(_,d,i.byteOffset+x,h,i.buffer,V):ee)}ee&&e._uploadDataToTextureDirectly(t,ee,Y,V)}else if(s.isRGB)t.type=0,T===24?(t.format=4,h=_*d*3,A=Cn._GetRGBArrayBuffer(_,d,i.byteOffset+x,h,i.buffer,R,I,N),e._uploadDataToTextureDirectly(t,A,Y,V)):(t.format=5,h=_*d*4,A=Cn._GetRGBAArrayBuffer(_,d,i.byteOffset+x,h,i.buffer,R,I,N,w),e._uploadDataToTextureDirectly(t,A,Y,V));else if(s.isLuminance){const ee=e._getUnpackAlignement(),K=_;h=Math.floor((_+ee-1)/ee)*ee*(d-1)+K,A=Cn._GetLuminanceArrayBuffer(_,d,i.byteOffset+x,h,i.buffer),t.format=1,t.type=0,e._uploadDataToTextureDirectly(t,A,Y,V)}else h=Math.max(4,_)/4*Math.max(4,d)/4*M,A=new Uint8Array(i.buffer,i.byteOffset+x,h),t.type=0,e._uploadCompressedDataToTextureDirectly(t,b,_,d,A,Y,V)}x+=T?_*d*(T/8):h,_*=.5,d*=.5,_=Math.max(1,_),d=Math.max(1,d)}if(l!==void 0)break}u&&u.length>0?s.sphericalPolynomial=eL.ConvertCubeMapToSphericalPolynomial({size:p[Ote],right:u[0],left:u[1],up:u[2],down:u[3],front:u[4],back:u[5],format:5,type:1,gammaSpace:!1}):s.sphericalPolynomial=void 0}}Cn.StoreLODInAlphaChannel=!1;const mFe=Object.freeze(Object.defineProperty({__proto__:null,DDSTools:Cn},Symbol.toStringTag,{value:"Module"}));class S3e{constructor(){this.supportCascades=!0}loadCubeData(e,t,i,s){const r=t.getEngine();let n,o=!1,l=1e3;if(Array.isArray(e))for(let c=0;c<e.length;c++){const u=e[c];n=Cn.GetDDSInfo(u),t.width=n.width,t.height=n.height,o=(n.isRGB||n.isLuminance||n.mipmapCount>1)&&t.generateMipMaps,r._unpackFlipY(n.isCompressed),Cn.UploadDDSLevels(r,t,u,n,o,6,-1,c),!n.isFourCC&&n.mipmapCount===1?r.generateMipMapsForCubemap(t):l=n.mipmapCount-1}else{const c=e;n=Cn.GetDDSInfo(c),t.width=n.width,t.height=n.height,i&&(n.sphericalPolynomial=new Xv),o=(n.isRGB||n.isLuminance||n.mipmapCount>1)&&t.generateMipMaps,r._unpackFlipY(n.isCompressed),Cn.UploadDDSLevels(r,t,c,n,o,6),!n.isFourCC&&n.mipmapCount===1?r.generateMipMapsForCubemap(t,!1):l=n.mipmapCount-1}r._setCubeMapTextureParams(t,o,l),t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),s&&s({isDDS:!0,width:t.width,info:n,data:e,texture:t})}loadData(e,t,i){const s=Cn.GetDDSInfo(e),r=(s.isRGB||s.isLuminance||s.mipmapCount>1)&&t.generateMipMaps&&Math.max(s.width,s.height)>>s.mipmapCount-1===1;i(s.width,s.height,r,s.isFourCC,()=>{Cn.UploadDDSLevels(t.getEngine(),t,e,s,r,1)})}}const gFe=Object.freeze(Object.defineProperty({__proto__:null,_DDSTextureLoader:S3e},Symbol.toStringTag,{value:"Module"}));class y3e{constructor(){this.supportCascades=!1}loadCubeData(e,t,i,s,r){if(Array.isArray(e))return;const n=zG(e);if(n){t.width=n.width,t.height=n.width;try{kG(t,n),$Z(t,e,n).then(()=>{t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),s&&s()},o=>{r==null||r("Can not upload environment levels",o)})}catch(o){r==null||r("Can not upload environment file",o)}}else r&&r("Can not parse the environment file",null)}loadData(){throw".env not supported in 2d."}}const _Fe=Object.freeze(Object.defineProperty({__proto__:null,_ENVTextureLoader:y3e},Symbol.toStringTag,{value:"Module"}));class Q1{constructor(e,t){if(this.data=e,this.isInvalid=!1,!Q1.IsValid(e)){this.isInvalid=!0,de.Error("texture missing KTX identifier");return}const i=Uint32Array.BYTES_PER_ELEMENT,s=new DataView(this.data.buffer,this.data.byteOffset+12,13*i),n=s.getUint32(0,!0)===67305985;if(this.glType=s.getUint32(1*i,n),this.glTypeSize=s.getUint32(2*i,n),this.glFormat=s.getUint32(3*i,n),this.glInternalFormat=s.getUint32(4*i,n),this.glBaseInternalFormat=s.getUint32(5*i,n),this.pixelWidth=s.getUint32(6*i,n),this.pixelHeight=s.getUint32(7*i,n),this.pixelDepth=s.getUint32(8*i,n),this.numberOfArrayElements=s.getUint32(9*i,n),this.numberOfFaces=s.getUint32(10*i,n),this.numberOfMipmapLevels=s.getUint32(11*i,n),this.bytesOfKeyValueData=s.getUint32(12*i,n),this.glType!==0){de.Error("only compressed formats currently supported"),this.isInvalid=!0;return}else this.numberOfMipmapLevels=Math.max(1,this.numberOfMipmapLevels);if(this.pixelHeight===0||this.pixelDepth!==0){de.Error("only 2D textures currently supported"),this.isInvalid=!0;return}if(this.numberOfArrayElements!==0){de.Error("texture arrays not currently supported"),this.isInvalid=!0;return}if(this.numberOfFaces!==t){de.Error("number of faces expected"+t+", but found "+this.numberOfFaces),this.isInvalid=!0;return}this.loadType=Q1.COMPRESSED_2D}uploadLevels(e,t){switch(this.loadType){case Q1.COMPRESSED_2D:this._upload2DCompressedLevels(e,t);break;case Q1.TEX_2D:case Q1.COMPRESSED_3D:case Q1.TEX_3D:}}_upload2DCompressedLevels(e,t){let i=Q1.HEADER_LEN+this.bytesOfKeyValueData,s=this.pixelWidth,r=this.pixelHeight;const n=t?this.numberOfMipmapLevels:1;for(let o=0;o<n;o++){const l=new Int32Array(this.data.buffer,this.data.byteOffset+i,1)[0];i+=4;for(let c=0;c<this.numberOfFaces;c++){const u=new Uint8Array(this.data.buffer,this.data.byteOffset+i,l);e.getEngine()._uploadCompressedDataToTextureDirectly(e,e.format,s,r,u,c,o),i+=l,i+=3-(l+3)%4}s=Math.max(1,s*.5),r=Math.max(1,r*.5)}}static IsValid(e){if(e.byteLength>=12){const t=new Uint8Array(e.buffer,e.byteOffset,12);if(t[0]===171&&t[1]===75&&t[2]===84&&t[3]===88&&t[4]===32&&t[5]===49&&t[6]===49&&t[7]===187&&t[8]===13&&t[9]===10&&t[10]===26&&t[11]===10)return!0}return!1}}Q1.HEADER_LEN=12+13*4,Q1.COMPRESSED_2D=0,Q1.COMPRESSED_3D=1,Q1.TEX_2D=2,Q1.TEX_3D=3;var Dte;(function(a){a[a.ETC1S=0]="ETC1S",a[a.UASTC4x4=1]="UASTC4x4"})(Dte||(Dte={}));var aO;(function(a){a[a.ASTC_4X4_RGBA=0]="ASTC_4X4_RGBA",a[a.BC7_RGBA=1]="BC7_RGBA",a[a.BC3_RGBA=2]="BC3_RGBA",a[a.BC1_RGB=3]="BC1_RGB",a[a.PVRTC1_4_RGBA=4]="PVRTC1_4_RGBA",a[a.PVRTC1_4_RGB=5]="PVRTC1_4_RGB",a[a.ETC2_RGBA=6]="ETC2_RGBA",a[a.ETC1_RGB=7]="ETC1_RGB",a[a.RGBA32=8]="RGBA32",a[a.R8=9]="R8",a[a.RG8=10]="RG8"})(aO||(aO={}));var Nte;(function(a){a[a.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",a[a.COMPRESSED_RGBA_ASTC_4X4_KHR=37808]="COMPRESSED_RGBA_ASTC_4X4_KHR",a[a.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",a[a.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",a[a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",a[a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",a[a.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",a[a.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",a[a.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",a[a.RGBA8Format=32856]="RGBA8Format",a[a.R8Format=33321]="R8Format",a[a.RG8Format=33323]="RG8Format"})(Nte||(Nte={}));function LH(a,e){const t=(e==null?void 0:e.jsDecoderModule)||KTX2DECODER;a&&(a.wasmUASTCToASTC&&(t.LiteTranscoder_UASTC_ASTC.WasmModuleURL=a.wasmUASTCToASTC),a.wasmUASTCToBC7&&(t.LiteTranscoder_UASTC_BC7.WasmModuleURL=a.wasmUASTCToBC7),a.wasmUASTCToRGBA_UNORM&&(t.LiteTranscoder_UASTC_RGBA_UNORM.WasmModuleURL=a.wasmUASTCToRGBA_UNORM),a.wasmUASTCToRGBA_SRGB&&(t.LiteTranscoder_UASTC_RGBA_SRGB.WasmModuleURL=a.wasmUASTCToRGBA_SRGB),a.wasmUASTCToR8_UNORM&&(t.LiteTranscoder_UASTC_R8_UNORM.WasmModuleURL=a.wasmUASTCToR8_UNORM),a.wasmUASTCToRG8_UNORM&&(t.LiteTranscoder_UASTC_RG8_UNORM.WasmModuleURL=a.wasmUASTCToRG8_UNORM),a.jsMSCTranscoder&&(t.MSCTranscoder.JSModuleURL=a.jsMSCTranscoder),a.wasmMSCTranscoder&&(t.MSCTranscoder.WasmModuleURL=a.wasmMSCTranscoder),a.wasmZSTDDecoder&&(t.ZSTDDecoder.WasmModuleURL=a.wasmZSTDDecoder)),e&&(e.wasmUASTCToASTC&&(t.LiteTranscoder_UASTC_ASTC.WasmBinary=e.wasmUASTCToASTC),e.wasmUASTCToBC7&&(t.LiteTranscoder_UASTC_BC7.WasmBinary=e.wasmUASTCToBC7),e.wasmUASTCToRGBA_UNORM&&(t.LiteTranscoder_UASTC_RGBA_UNORM.WasmBinary=e.wasmUASTCToRGBA_UNORM),e.wasmUASTCToRGBA_SRGB&&(t.LiteTranscoder_UASTC_RGBA_SRGB.WasmBinary=e.wasmUASTCToRGBA_SRGB),e.wasmUASTCToR8_UNORM&&(t.LiteTranscoder_UASTC_R8_UNORM.WasmBinary=e.wasmUASTCToR8_UNORM),e.wasmUASTCToRG8_UNORM&&(t.LiteTranscoder_UASTC_RG8_UNORM.WasmBinary=e.wasmUASTCToRG8_UNORM),e.jsMSCTranscoder&&(t.MSCTranscoder.JSModule=e.jsMSCTranscoder),e.wasmMSCTranscoder&&(t.MSCTranscoder.WasmBinary=e.wasmMSCTranscoder),e.wasmZSTDDecoder&&(t.ZSTDDecoder.WasmBinary=e.wasmZSTDDecoder))}function vFe(a){typeof a>"u"&&typeof KTX2DECODER<"u"&&(a=KTX2DECODER);let e;onmessage=t=>{if(t.data)switch(t.data.action){case"init":{const i=t.data.urls;i&&(i.jsDecoderModule&&typeof a>"u"&&(importScripts(i.jsDecoderModule),a=KTX2DECODER),LH(i)),t.data.wasmBinaries&&LH(void 0,{...t.data.wasmBinaries,jsDecoderModule:a}),e=new a.KTX2Decoder,postMessage({action:"init"});break}case"setDefaultDecoderOptions":{a.KTX2Decoder.DefaultDecoderOptions=t.data.options;break}case"decode":e.decode(t.data.data,t.data.caps,t.data.options).then(i=>{const s=[];for(let r=0;r<i.mipmaps.length;++r){const n=i.mipmaps[r];n&&n.data&&s.push(n.data.buffer)}postMessage({action:"decoded",success:!0,decodedData:i},s)}).catch(i=>{postMessage({action:"decoded",success:!1,msg:i})});break}}}function AFe(a,e,t){return new Promise((i,s)=>{const r=o=>{a.removeEventListener("error",r),a.removeEventListener("message",n),s(o)},n=o=>{o.data.action==="init"&&(a.removeEventListener("error",r),a.removeEventListener("message",n),i(a))};a.addEventListener("error",r),a.addEventListener("message",n),a.postMessage({action:"init",urls:t,wasmBinaries:e})})}class M3e{constructor(){this._isDirty=!0,this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC=!0,this._ktx2DecoderOptions={}}get isDirty(){return this._isDirty}get useRGBAIfASTCBC7NotAvailableWhenUASTC(){return this._useRGBAIfASTCBC7NotAvailableWhenUASTC}set useRGBAIfASTCBC7NotAvailableWhenUASTC(e){this._useRGBAIfASTCBC7NotAvailableWhenUASTC!==e&&(this._useRGBAIfASTCBC7NotAvailableWhenUASTC=e,this._isDirty=!0)}get useRGBAIfOnlyBC1BC3AvailableWhenUASTC(){return this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC}set useRGBAIfOnlyBC1BC3AvailableWhenUASTC(e){this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC!==e&&(this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC=e,this._isDirty=!0)}get forceRGBA(){return this._forceRGBA}set forceRGBA(e){this._forceRGBA!==e&&(this._forceRGBA=e,this._isDirty=!0)}get forceR8(){return this._forceR8}set forceR8(e){this._forceR8!==e&&(this._forceR8=e,this._isDirty=!0)}get forceRG8(){return this._forceRG8}set forceRG8(e){this._forceRG8!==e&&(this._forceRG8=e,this._isDirty=!0)}get bypassTranscoders(){return this._bypassTranscoders}set bypassTranscoders(e){this._bypassTranscoders!==e&&(this._bypassTranscoders=e,this._isDirty=!0)}_getKTX2DecoderOptions(){if(!this._isDirty)return this._ktx2DecoderOptions;this._isDirty=!1;const e={useRGBAIfASTCBC7NotAvailableWhenUASTC:this._useRGBAIfASTCBC7NotAvailableWhenUASTC,forceRGBA:this._forceRGBA,forceR8:this._forceR8,forceRG8:this._forceRG8,bypassTranscoders:this._bypassTranscoders};return this.useRGBAIfOnlyBC1BC3AvailableWhenUASTC&&(e.transcodeFormatDecisionTree={UASTC:{transcodeFormat:[aO.BC1_RGB,aO.BC3_RGBA],yes:{transcodeFormat:aO.RGBA32,engineFormat:32856,roundToMultiple4:!1}}}),this._ktx2DecoderOptions=e,e}}class Ln{static GetDefaultNumWorkers(){return typeof navigator!="object"||!navigator.hardwareConcurrency?1:Math.min(Math.floor(navigator.hardwareConcurrency*.5),4)}static _Initialize(e){if(Ln._WorkerPoolPromise||Ln._DecoderModulePromise)return;const t={jsDecoderModule:Le.GetBabylonScriptURL(this.URLConfig.jsDecoderModule,!0),wasmUASTCToASTC:Le.GetBabylonScriptURL(this.URLConfig.wasmUASTCToASTC,!0),wasmUASTCToBC7:Le.GetBabylonScriptURL(this.URLConfig.wasmUASTCToBC7,!0),wasmUASTCToRGBA_UNORM:Le.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_UNORM,!0),wasmUASTCToRGBA_SRGB:Le.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_SRGB,!0),wasmUASTCToR8_UNORM:Le.GetBabylonScriptURL(this.URLConfig.wasmUASTCToR8_UNORM,!0),wasmUASTCToRG8_UNORM:Le.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRG8_UNORM,!0),jsMSCTranscoder:Le.GetBabylonScriptURL(this.URLConfig.jsMSCTranscoder,!0),wasmMSCTranscoder:Le.GetBabylonScriptURL(this.URLConfig.wasmMSCTranscoder,!0),wasmZSTDDecoder:Le.GetBabylonScriptURL(this.URLConfig.wasmZSTDDecoder,!0)};e&&typeof Worker=="function"&&typeof URL<"u"?Ln._WorkerPoolPromise=new Promise(i=>{const s=`${LH}(${vFe})()`,r=URL.createObjectURL(new Blob([s],{type:"application/javascript"}));i(new OP(e,()=>AFe(new Worker(r),void 0,t)))}):typeof Ln._KTX2DecoderModule>"u"?Ln._DecoderModulePromise=Le.LoadBabylonScriptAsync(t.jsDecoderModule).then(()=>(Ln._KTX2DecoderModule=KTX2DECODER,Ln._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread=!1,Ln._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread=!0,LH(t,Ln._KTX2DecoderModule),new Ln._KTX2DecoderModule.KTX2Decoder)):(Ln._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread=!1,Ln._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread=!0,Ln._DecoderModulePromise=Promise.resolve(new Ln._KTX2DecoderModule.KTX2Decoder))}constructor(e,t=Ln.DefaultNumWorkers){var s;this._engine=e;const i=typeof t=="object"&&t.workerPool||Ln.WorkerPool;if(i)Ln._WorkerPoolPromise=Promise.resolve(i);else{typeof t=="object"?Ln._KTX2DecoderModule=(s=t==null?void 0:t.binariesAndModulesContainer)==null?void 0:s.jsDecoderModule:typeof KTX2DECODER<"u"&&(Ln._KTX2DecoderModule=KTX2DECODER);const r=typeof t=="number"?t:t.numWorkers??Ln.DefaultNumWorkers;Ln._Initialize(r)}}_uploadAsync(e,t,i){const s=this._engine.getCaps(),r={astc:!!s.astc,bptc:!!s.bptc,s3tc:!!s.s3tc,pvrtc:!!s.pvrtc,etc2:!!s.etc2,etc1:!!s.etc1};if(Ln._WorkerPoolPromise)return Ln._WorkerPoolPromise.then(n=>new Promise((o,l)=>{n.push((c,u)=>{const f=_=>{c.removeEventListener("error",f),c.removeEventListener("message",p),l(_),u()},p=_=>{if(_.data.action==="decoded"){if(c.removeEventListener("error",f),c.removeEventListener("message",p),!_.data.success)l({message:_.data.msg});else try{this._createTexture(_.data.decodedData,t,i),o()}catch(d){l({message:d})}u()}};c.addEventListener("error",f),c.addEventListener("message",p),c.postMessage({action:"setDefaultDecoderOptions",options:Ln.DefaultDecoderOptions._getKTX2DecoderOptions()});const m=new Uint8Array(e.byteLength);m.set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),c.postMessage({action:"decode",data:m,caps:r,options:i},[m.buffer])})}));if(Ln._DecoderModulePromise)return Ln._DecoderModulePromise.then(n=>(Ln.DefaultDecoderOptions.isDirty&&(Ln._KTX2DecoderModule.KTX2Decoder.DefaultDecoderOptions=Ln.DefaultDecoderOptions._getKTX2DecoderOptions()),new Promise((o,l)=>{n.decode(e,s).then(c=>{this._createTexture(c,t),o()}).catch(c=>{l({message:c})})})));throw new Error("KTX2 decoder module is not available")}_createTexture(e,t,i){this._engine._bindTextureDirectly(3553,t),i&&(i.transcodedFormat=e.transcodedFormat,i.isInGammaSpace=e.isInGammaSpace,i.hasAlpha=e.hasAlpha,i.transcoderName=e.transcoderName);let r=!0;switch(e.transcodedFormat){case 32856:t.type=0,t.format=5;break;case 33321:t.type=0,t.format=6;break;case 33323:t.type=0,t.format=7;break;default:t.format=e.transcodedFormat,r=!1;break}if(t._gammaSpace=e.isInGammaSpace,t.generateMipMaps=e.mipmaps.length>1,e.errors)throw new Error("KTX2 container - could not transcode the data. "+e.errors);for(let n=0;n<e.mipmaps.length;++n){const o=e.mipmaps[n];if(!o||!o.data)throw new Error("KTX2 container - could not transcode one of the image");r?(t.width=o.width,t.height=o.height,this._engine._uploadDataToTextureDirectly(t,o.data,0,n,void 0,!0)):this._engine._uploadCompressedDataToTextureDirectly(t,e.transcodedFormat,o.width,o.height,o.data,0,n)}t._extension=".ktx2",t.width=e.mipmaps[0].width,t.height=e.mipmaps[0].height,t.isReady=!0,this._engine._bindTextureDirectly(3553,null)}static IsValid(e){if(e.byteLength>=12){const t=new Uint8Array(e.buffer,e.byteOffset,12);if(t[0]===171&&t[1]===75&&t[2]===84&&t[3]===88&&t[4]===32&&t[5]===50&&t[6]===48&&t[7]===187&&t[8]===13&&t[9]===10&&t[10]===26&&t[11]===10)return!0}return!1}}Ln.URLConfig={jsDecoderModule:"https://cdn.babylonjs.com/babylon.ktx2Decoder.js",wasmUASTCToASTC:null,wasmUASTCToBC7:null,wasmUASTCToRGBA_UNORM:null,wasmUASTCToRGBA_SRGB:null,wasmUASTCToR8_UNORM:null,wasmUASTCToRG8_UNORM:null,jsMSCTranscoder:null,wasmMSCTranscoder:null,wasmZSTDDecoder:null},Ln.DefaultNumWorkers=Ln.GetDefaultNumWorkers(),Ln.DefaultDecoderOptions=new M3e;function CFe(a){switch(a){case 35916:return 33776;case 35918:return 33778;case 35919:return 33779;case 37493:return 37492;case 37497:return 37496;case 37495:return 37494;case 37840:return 37808;case 36493:return 36492}return null}class E3e{constructor(){this.supportCascades=!1}loadCubeData(e,t,i,s){if(Array.isArray(e))return;t._invertVScale=!t.invertY;const r=t.getEngine(),n=new Q1(e,6),o=n.numberOfMipmapLevels>1&&t.generateMipMaps;r._unpackFlipY(!0),n.uploadLevels(t,t.generateMipMaps),t.width=n.pixelWidth,t.height=n.pixelHeight,r._setCubeMapTextureParams(t,o,n.numberOfMipmapLevels-1),t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),s&&s()}loadData(e,t,i,s){if(Q1.IsValid(e)){t._invertVScale=!t.invertY;const r=new Q1(e,1),n=CFe(r.glInternalFormat);n?(t.format=n,t._useSRGBBuffer=t.getEngine()._getUseSRGBBuffer(!0,t.generateMipMaps),t._gammaSpace=!0):t.format=r.glInternalFormat,i(r.pixelWidth,r.pixelHeight,t.generateMipMaps,!0,()=>{r.uploadLevels(t,t.generateMipMaps)},r.isInvalid)}else Ln.IsValid(e)?new Ln(t.getEngine())._uploadAsync(e,t,s).then(()=>{i(t.width,t.height,t.generateMipMaps,!0,()=>{},!1)},n=>{de.Warn(`Failed to load KTX2 texture data: ${n.message}`),i(0,0,!1,!1,()=>{},!0)}):(de.Error("texture missing KTX identifier"),i(0,0,!1,!1,()=>{},!0))}}const T3e=Object.freeze(Object.defineProperty({__proto__:null,_KTXTextureLoader:E3e},Symbol.toStringTag,{value:"Module"}));class oO extends $d{constructor(e,t,i){super(e,P.Zero(),t),this._xrSessionManager=i,this._firstFrame=!1,this._referenceQuaternion=Re.Identity(),this._referencedPosition=new P,this._trackingState=0,this.onXRCameraInitializedObservable=new xe,this.onBeforeCameraTeleport=new xe,this.onAfterCameraTeleport=new xe,this.onTrackingStateChanged=new xe,this.compensateOnFirstFrame=!0,this._rotate180=new Re(0,1,0,0),this.minZ=.1,this.rotationQuaternion=new Re,this.cameraRigMode=_i.RIG_MODE_CUSTOM,this.updateUpVectorFromRotation=!0,this._updateNumberOfRigCameras(1),this.freezeProjectionMatrix(),this._deferOnly=!0,this._xrSessionManager.onXRSessionInit.add(()=>{this._referencedPosition.copyFromFloats(0,0,0),this._referenceQuaternion.copyFromFloats(0,0,0,1),this._firstFrame=this.compensateOnFirstFrame,this._xrSessionManager.onWorldScaleFactorChangedObservable.add(()=>{this._xrSessionManager.currentFrame&&this._updateDepthNearFar()})}),this._xrSessionManager.onXRFrameObservable.add(()=>{this._firstFrame&&this._updateFromXRSession(),this.onXRCameraInitializedObservable.hasObservers()&&(this.onXRCameraInitializedObservable.notifyObservers(this),this.onXRCameraInitializedObservable.clear()),this._deferredUpdated&&(this.position.copyFrom(this._deferredPositionUpdate),this.rotationQuaternion.copyFrom(this._deferredRotationQuaternionUpdate)),this._updateReferenceSpace(),this._updateFromXRSession()},void 0,!0)}get trackingState(){return this._trackingState}_setTrackingState(e){this._trackingState!==e&&(this._trackingState=e,this.onTrackingStateChanged.notifyObservers(e))}get realWorldHeight(){const e=this._xrSessionManager.currentFrame&&this._xrSessionManager.currentFrame.getViewerPose(this._xrSessionManager.baseReferenceSpace);return e&&e.transform?e.transform.position.y*this._xrSessionManager.worldScalingFactor:0}_updateForDualEyeDebugging(){this._updateNumberOfRigCameras(2),this.rigCameras[0].viewport=new Tc(0,0,.5,1),this.rigCameras[0].outputRenderTarget=null,this.rigCameras[1].viewport=new Tc(.5,0,.5,1),this.rigCameras[1].outputRenderTarget=null}setTransformationFromNonVRCamera(e=this.getScene().activeCamera,t=!0){if(!e||e===this)return;e.computeWorldMatrix().decompose(void 0,this.rotationQuaternion,this.position),this.position.y=0,Re.FromEulerAnglesToRef(0,this.rotationQuaternion.toEulerAngles().y,0,this.rotationQuaternion),this._firstFrame=!0,t&&this._xrSessionManager.resetReferenceSpace()}getClassName(){return"WebXRCamera"}setTarget(e){const t=ae.Vector3[1];e.subtractToRef(this.position,t),t.y=0,t.normalize();const i=Math.atan2(t.x,t.z);this.rotationQuaternion.toEulerAnglesToRef(t),Re.FromEulerAnglesToRef(t.x,i,t.z,this.rotationQuaternion)}dispose(){super.dispose(),this._lastXRViewerPose=void 0,this.onTrackingStateChanged.clear()}_updateDepthNearFar(){const e=(this.maxZ||1e4)*this._xrSessionManager.worldScalingFactor,t={depthFar:e,depthNear:this.minZ};this._xrSessionManager.updateRenderState(t),this._cache.minZ=this.minZ,this._cache.maxZ=e}_updateFromXRSession(){const e=this._xrSessionManager.currentFrame&&this._xrSessionManager.currentFrame.getViewerPose(this._xrSessionManager.referenceSpace);if(this._lastXRViewerPose=e||void 0,!e){this._setTrackingState(0);return}const t=e.emulatedPosition?1:2;if(this._setTrackingState(t),(this.minZ!==this._cache.minZ||this.maxZ!==this._cache.maxZ)&&this._updateDepthNearFar(),e.transform){const i=e.transform.orientation;if(e.transform.orientation.x===void 0)return;const s=e.transform.position;this._referencedPosition.set(s.x,s.y,s.z).scaleInPlace(this._xrSessionManager.worldScalingFactor),this._referenceQuaternion.set(i.x,i.y,i.z,i.w),this._scene.useRightHandedSystem?this._referenceQuaternion.multiplyInPlace(this._rotate180):(this._referencedPosition.z*=-1,this._referenceQuaternion.z*=-1,this._referenceQuaternion.w*=-1),this._firstFrame?(this._firstFrame=!1,this.position.y+=this._referencedPosition.y,this._referenceQuaternion.copyFromFloats(0,0,0,1)):(this.rotationQuaternion.copyFrom(this._referenceQuaternion),this.position.copyFrom(this._referencedPosition))}this.rigCameras.length!==e.views.length&&this._updateNumberOfRigCameras(e.views.length),e.views.forEach((i,s)=>{var f;const r=this.rigCameras[s];!r.isLeftCamera&&!r.isRightCamera&&(i.eye==="right"?r._isRightCamera=!0:i.eye==="left"&&(r._isLeftCamera=!0));const n=this.getScene().customRenderTargets;for(let p=0;p<n.length;p++){const m=n[p];r.customRenderTargets.indexOf(m)===-1&&r.customRenderTargets.push(m)}const o=i.transform.position,l=i.transform.orientation;r.parent=this.parent,r.position.set(o.x,o.y,o.z).scaleInPlace(this._xrSessionManager.worldScalingFactor),r.rotationQuaternion.set(l.x,l.y,l.z,l.w),this._scene.useRightHandedSystem?r.rotationQuaternion.multiplyInPlace(this._rotate180):(r.position.z*=-1,r.rotationQuaternion.z*=-1,r.rotationQuaternion.w*=-1),me.FromFloat32ArrayToRefScaled(i.projectionMatrix,0,1,r._projectionMatrix),this._scene.useRightHandedSystem||r._projectionMatrix.toggleProjectionMatrixHandInPlace();const c=Math.atan2(1,i.projectionMatrix[5])*2;r.fov=c,s===0&&(this.fov=c,this._projectionMatrix.copyFrom(r._projectionMatrix));const u=this._xrSessionManager.getRenderTargetTextureForView(i);this._renderingMultiview=((f=u==null?void 0:u._texture)==null?void 0:f.isMultiview)||!1,this._renderingMultiview?s==0&&(this._xrSessionManager.trySetViewportForView(this.viewport,i),this.outputRenderTarget=u):(this._xrSessionManager.trySetViewportForView(r.viewport,i),r.outputRenderTarget=u||this._xrSessionManager.getRenderTargetTextureForView(i)),r.layerMask=this.layerMask})}_updateNumberOfRigCameras(e=1){for(;this.rigCameras.length<e;){const t=new Ja("XR-RigCamera: "+this.rigCameras.length,P.Zero(),this.getScene());t.minZ=.1,t.rotationQuaternion=new Re,t.updateUpVectorFromRotation=!0,t.isRigCamera=!0,t.rigParent=this,t.freezeProjectionMatrix(),this.rigCameras.push(t)}for(;this.rigCameras.length>e;){const t=this.rigCameras.pop();t&&t.dispose()}}_updateReferenceSpace(){if(!this.position.equals(this._referencedPosition)||!this.rotationQuaternion.equals(this._referenceQuaternion)){const e=ae.Matrix[0],t=ae.Matrix[1],i=ae.Matrix[2];me.ComposeToRef(oO._ScaleReadOnly,this._referenceQuaternion,this._referencedPosition,e),me.ComposeToRef(oO._ScaleReadOnly,this.rotationQuaternion,this.position,t),e.invert().multiplyToRef(t,i),i.invert(),this._scene.useRightHandedSystem||i.toggleModelMatrixHandInPlace(),i.decompose(void 0,this._referenceQuaternion,this._referencedPosition);const s=new XRRigidTransform({x:this._referencedPosition.x/this._xrSessionManager.worldScalingFactor,y:this._referencedPosition.y/this._xrSessionManager.worldScalingFactor,z:this._referencedPosition.z/this._xrSessionManager.worldScalingFactor},{x:this._referenceQuaternion.x,y:this._referenceQuaternion.y,z:this._referenceQuaternion.z,w:this._referenceQuaternion.w});this._xrSessionManager.referenceSpace=this._xrSessionManager.referenceSpace.getOffsetReferenceSpace(s)}}}oO._ScaleReadOnly=P.One();class IH{constructor(e){this._scene=e,this._nonVRCamera=null,this._attachedToElement=!1,this._spectatorCamera=null,this._originalSceneAutoClear=!0,this._supported=!1,this._spectatorMode=!1,this._lastTimestamp=0,this.onInitialXRPoseSetObservable=new xe,this.onStateChangedObservable=new xe,this.state=3,this.sessionManager=new CB(e),this.camera=new oO("webxr",e,this.sessionManager),this.featuresManager=new $a(this.sessionManager),e.onDisposeObservable.addOnce(()=>{this.dispose()})}static CreateAsync(e){const t=new IH(e);return t.sessionManager.initializeAsync().then(()=>(t._supported=!0,t)).catch(i=>{throw t._setState(3),t.dispose(),i})}dispose(){var e;this.exitXRAsync(),this.camera.dispose(),this.onStateChangedObservable.clear(),this.onInitialXRPoseSetObservable.clear(),this.sessionManager.dispose(),(e=this._spectatorCamera)==null||e.dispose(),this._nonVRCamera&&(this._scene.activeCamera=this._nonVRCamera)}async enterXRAsync(e,t,i=this.sessionManager.getWebXRRenderTarget(),s={}){var r,n,o,l;if(!this._supported)throw"WebXR not supported in this browser or environment";this._setState(0),t!=="viewer"&&t!=="local"&&(s.optionalFeatures=s.optionalFeatures||[],s.optionalFeatures.push(t)),s=await this.featuresManager._extendXRSessionInitObject(s),e==="immersive-ar"&&t!=="unbounded"&&de.Warn("We recommend using 'unbounded' reference space type when using 'immersive-ar' session mode");try{await this.sessionManager.initializeSessionAsync(e,s),await this.sessionManager.setReferenceSpaceTypeAsync(t);const c={depthFar:this.camera.maxZ||1e4,depthNear:this.camera.minZ};if(!this.featuresManager.getEnabledFeature(ur.LAYERS)){const u=await i.initializeXRLayerAsync(this.sessionManager.session);c.baseLayer=u}return this.sessionManager.updateRenderState(c),this.sessionManager.runXRRenderLoop(),this._originalSceneAutoClear=this._scene.autoClear,this._nonVRCamera=this._scene.activeCamera,this._attachedToElement=!!((n=(r=this._nonVRCamera)==null?void 0:r.inputs)!=null&&n.attachedToElement),(o=this._nonVRCamera)==null||o.detachControl(),this._scene.activeCamera=this.camera,e!=="immersive-ar"?this._nonXRToXRCamera():(this._scene.autoClear=!1,this.camera.compensateOnFirstFrame=!1,this.camera.position.set(0,0,0),this.camera.rotationQuaternion.set(0,0,0,1),this.onInitialXRPoseSetObservable.notifyObservers(this.camera)),(l=dt.audioEngine)==null||l._resumeAudioContextOnStateChange(),this.sessionManager.onXRSessionEnded.addOnce(()=>{this.state!==1&&this._setState(1),this.camera.rigCameras.forEach(u=>{u.outputRenderTarget=null}),this._scene.autoClear=this._originalSceneAutoClear,this._scene.activeCamera=this._nonVRCamera,this._attachedToElement&&this._nonVRCamera&&this._nonVRCamera.attachControl(!!this._nonVRCamera.inputs.noPreventDefault),e!=="immersive-ar"&&this.camera.compensateOnFirstFrame&&(this._nonVRCamera.setPosition?this._nonVRCamera.setPosition(this.camera.position):this._nonVRCamera.position.copyFrom(this.camera.position)),this._setState(3)}),this.sessionManager.onXRFrameObservable.addOnce(()=>{this._setState(2)}),this.sessionManager}catch(c){throw de.Log(c),de.Log(c.message),this._setState(3),c}}exitXRAsync(){return this.state!==2?Promise.resolve():(this._setState(1),this.sessionManager.exitXRAsync())}enableSpectatorMode(e){this._spectatorMode||(this._spectatorMode=!0,this._switchSpectatorMode(e))}disableSpecatatorMode(){this._spectatorMode&&(this._spectatorMode=!1,this._switchSpectatorMode())}_switchSpectatorMode(e){const i=1/(e!=null&&e.fps?e.fps:1e3)*1e3,s=e!=null&&e.preferredCameraIndex?e==null?void 0:e.preferredCameraIndex:0,r=()=>{this._spectatorCamera&&this.sessionManager.currentTimestamp-this._lastTimestamp>=i&&(this._lastTimestamp=this.sessionManager.currentTimestamp,this._spectatorCamera.position.copyFrom(this.camera.rigCameras[s].globalPosition),this._spectatorCamera.rotationQuaternion.copyFrom(this.camera.rigCameras[s].absoluteRotation))};if(this._spectatorMode){if(s>=this.camera.rigCameras.length)throw new Error("the preferred camera index is beyond the length of rig camera array.");const n=()=>{this.state===2?(this._spectatorCamera=new QT("webxr-spectator",P.Zero(),this._scene),this._spectatorCamera.rotationQuaternion=new Re,this._scene.activeCameras=[this.camera,this._spectatorCamera],this.sessionManager.onXRFrameObservable.add(r),this._scene.onAfterRenderCameraObservable.add(o=>{o===this.camera&&(this._scene.getEngine().framebufferDimensionsObject=null)})):this.state===1&&(this.sessionManager.onXRFrameObservable.removeCallback(r),this._scene.activeCameras=null)};this.onStateChangedObservable.add(n),n()}else this.sessionManager.onXRFrameObservable.removeCallback(r),this._scene.activeCameras=[this.camera]}_nonXRToXRCamera(){this.camera.setTransformationFromNonVRCamera(this._nonVRCamera),this.onInitialXRPoseSetObservable.notifyObservers(this.camera)}_setState(e){this.state!==e&&(this.state=e,this.onStateChangedObservable.notifyObservers(this.state))}}class I0{constructor(e,t,i=-1,s=[]){this.id=e,this.type=t,this._buttonIndex=i,this._axesIndices=s,this._axes={x:0,y:0},this._changes={},this._currentValue=0,this._hasChanges=!1,this._pressed=!1,this._touched=!1,this.onAxisValueChangedObservable=new xe,this.onButtonStateChangedObservable=new xe}get axes(){return this._axes}get changes(){return this._changes}get hasChanges(){return this._hasChanges}get pressed(){return this._pressed}get touched(){return this._touched}get value(){return this._currentValue}dispose(){this.onAxisValueChangedObservable.clear(),this.onButtonStateChangedObservable.clear()}isAxes(){return this._axesIndices.length!==0}isButton(){return this._buttonIndex!==-1}update(e){let t=!1,i=!1;if(this._hasChanges=!1,this._changes={},this.isButton()){const s=e.buttons[this._buttonIndex];if(!s)return;this._currentValue!==s.value&&(this.changes.value={current:s.value,previous:this._currentValue},t=!0,this._currentValue=s.value),this._touched!==s.touched&&(this.changes.touched={current:s.touched,previous:this._touched},t=!0,this._touched=s.touched),this._pressed!==s.pressed&&(this.changes.pressed={current:s.pressed,previous:this._pressed},t=!0,this._pressed=s.pressed)}this.isAxes()&&(this._axes.x!==e.axes[this._axesIndices[0]]&&(this.changes.axes={current:{x:e.axes[this._axesIndices[0]],y:this._axes.y},previous:{x:this._axes.x,y:this._axes.y}},this._axes.x=e.axes[this._axesIndices[0]],i=!0),this._axes.y!==e.axes[this._axesIndices[1]]&&(this.changes.axes?this.changes.axes.current.y=e.axes[this._axesIndices[1]]:this.changes.axes={current:{x:this._axes.x,y:e.axes[this._axesIndices[1]]},previous:{x:this._axes.x,y:this._axes.y}},this._axes.y=e.axes[this._axesIndices[1]],i=!0)),t&&(this._hasChanges=!0,this.onButtonStateChangedObservable.notifyObservers(this)),i&&(this._hasChanges=!0,this.onAxisValueChangedObservable.notifyObservers(this._axes))}}I0.BUTTON_TYPE="button",I0.SQUEEZE_TYPE="squeeze",I0.THUMBSTICK_TYPE="thumbstick",I0.TOUCHPAD_TYPE="touchpad",I0.TRIGGER_TYPE="trigger";class PL{constructor(e,t,i,s,r=!1,n){this.scene=e,this.layout=t,this.gamepadObject=i,this.handedness=s,this._doNotLoadControllerMesh=r,this._controllerCache=n,this._initComponent=o=>{if(!o)return;const l=this.layout.components[o],c=l.type,u=l.gamepadIndices.button,f=[];l.gamepadIndices.xAxis!==void 0&&l.gamepadIndices.yAxis!==void 0&&f.push(l.gamepadIndices.xAxis,l.gamepadIndices.yAxis),this.components[o]=new I0(o,c,u,f)},this._modelReady=!1,this.components={},this.disableAnimation=!1,this.onModelLoadedObservable=new xe,t.components&&Object.keys(t.components).forEach(this._initComponent)}dispose(){this.getComponentIds().forEach(e=>this.getComponent(e).dispose()),this.rootMesh&&(this.rootMesh.getChildren(void 0,!0).forEach(e=>{e.setEnabled(!1)}),this.rootMesh.dispose(!!this._controllerCache,!this._controllerCache)),this.onModelLoadedObservable.clear()}getAllComponentsOfType(e){return this.getComponentIds().map(t=>this.components[t]).filter(t=>t.type===e)}getComponent(e){return this.components[e]}getComponentIds(){return Object.keys(this.components)}getComponentOfType(e){return this.getAllComponentsOfType(e)[0]||null}getMainComponent(){return this.getComponent(this.layout.selectComponentId)}async loadModel(){const e=!this._getModelLoadingConstraints();let t=this._getGenericFilenameAndPath();return e?de.Warn("Falling back to generic models"):t=this._getFilenameAndPath(),new Promise((i,s)=>{const r=n=>{e?this._getGenericParentMesh(n):this._setRootMesh(n),this._processLoadedModel(n),this._modelReady=!0,this.onModelLoadedObservable.notifyObservers(this),i(!0)};if(this._controllerCache){const n=this._controllerCache.filter(o=>o.filename===t.filename&&o.path===t.path);if(n[0]){n[0].meshes.forEach(o=>o.setEnabled(!0)),r(n[0].meshes);return}}wr.ImportMesh("",t.path,t.filename,this.scene,n=>{this._controllerCache&&this._controllerCache.push({...t,meshes:n}),r(n)},null,(n,o)=>{de.Log(o),de.Warn(`Failed to retrieve controller model of type ${this.profileId} from the remote server: ${t.path}${t.filename}`),s(o)})})}updateFromXRFrame(e){this.getComponentIds().forEach(t=>this.getComponent(t).update(this.gamepadObject)),this.updateModel(e)}get handness(){return this.handedness}pulse(e,t,i=0){return this.gamepadObject.hapticActuators&&this.gamepadObject.hapticActuators[i]?this.gamepadObject.hapticActuators[i].pulse(e,t):Promise.resolve(!1)}_getChildByName(e,t){return e.getChildren(i=>i.name===t,!1)[0]}_getImmediateChildByName(e,t){return e.getChildren(i=>i.name==t,!0)[0]}_lerpTransform(e,t,i){if(!e.minMesh||!e.maxMesh||!e.valueMesh||!e.minMesh.rotationQuaternion||!e.maxMesh.rotationQuaternion||!e.valueMesh.rotationQuaternion)return;const s=i?t*.5+.5:t;Re.SlerpToRef(e.minMesh.rotationQuaternion,e.maxMesh.rotationQuaternion,s,e.valueMesh.rotationQuaternion),P.LerpToRef(e.minMesh.position,e.maxMesh.position,s,e.valueMesh.position)}updateModel(e){this._modelReady&&this._updateModel(e)}_getGenericFilenameAndPath(){return{filename:"generic.babylon",path:"https://controllers.babylonjs.com/generic/"}}_getGenericParentMesh(e){this.rootMesh=new Ne(this.profileId+" "+this.handedness,this.scene),e.forEach(t=>{t.parent||(t.isPickable=!1,t.setParent(this.rootMesh))}),this.rootMesh.rotationQuaternion=Re.FromEulerAngles(0,Math.PI,0)}}class lO extends PL{constructor(e,t,i){super(e,xFe[i],t,i),this.profileId=lO.ProfileId}_getFilenameAndPath(){return{filename:"generic.babylon",path:"https://controllers.babylonjs.com/generic/"}}_getModelLoadingConstraints(){return!0}_processLoadedModel(e){}_setRootMesh(e){this.rootMesh=new Ne(this.profileId+" "+this.handedness,this.scene),e.forEach(t=>{t.isPickable=!1,t.parent||t.setParent(this.rootMesh)}),this.rootMesh.rotationQuaternion=Re.FromEulerAngles(0,Math.PI,0)}_updateModel(){}}lO.ProfileId="generic-trigger";const xFe={left:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr_standard_trigger",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"generic-trigger-left",assetPath:"left.glb"},right:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr_standard_trigger",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"generic-trigger-right",assetPath:"right.glb"},none:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr_standard_trigger",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"generic-trigger-none",assetPath:"none.glb"}};class L3e extends PL{constructor(e,t,i,s,r){super(e,i.layouts[t.handedness||"none"],t.gamepad,t.handedness,void 0,r),this._repositoryUrl=s,this.controllerCache=r,this._buttonMeshMapping={},this._touchDots={},this.profileId=i.profileId}dispose(){super.dispose(),this.controllerCache||Object.keys(this._touchDots).forEach(e=>{this._touchDots[e].dispose()})}_getFilenameAndPath(){return{filename:this.layout.assetPath,path:`${this._repositoryUrl}/profiles/${this.profileId}/`}}_getModelLoadingConstraints(){const e=wr.IsPluginForExtensionAvailable(".glb");return e||de.Warn("glTF / glb loader was not registered, using generic controller instead"),e}_processLoadedModel(e){this.getComponentIds().forEach(t=>{const i=this.layout.components[t];this._buttonMeshMapping[t]={mainMesh:this._getChildByName(this.rootMesh,i.rootNodeName),states:{}},Object.keys(i.visualResponses).forEach(s=>{const r=i.visualResponses[s];if(r.valueNodeProperty==="transform")this._buttonMeshMapping[t].states[s]={valueMesh:this._getChildByName(this.rootMesh,r.valueNodeName),minMesh:this._getChildByName(this.rootMesh,r.minNodeName),maxMesh:this._getChildByName(this.rootMesh,r.maxNodeName)};else{const n=i.type===I0.TOUCHPAD_TYPE&&i.touchPointNodeName?i.touchPointNodeName:r.valueNodeName;if(this._buttonMeshMapping[t].states[s]={valueMesh:this._getChildByName(this.rootMesh,n)},i.type===I0.TOUCHPAD_TYPE&&!this._touchDots[s]){const o=hd(s+"dot",{diameter:.0015,segments:8},this.scene);o.material=new Bt(s+"mat",this.scene),o.material.diffuseColor=Pe.Red(),o.parent=this._buttonMeshMapping[t].states[s].valueMesh||null,o.isVisible=!1,this._touchDots[s]=o}}})})}_setRootMesh(e){this.rootMesh=new Ne(this.profileId+"-"+this.handedness,this.scene),this.rootMesh.isPickable=!1;let t;for(let i=0;i<e.length;i++){const s=e[i];s.isPickable=!1,s.parent||(t=s)}t&&t.setParent(this.rootMesh),this.scene.useRightHandedSystem||this.rootMesh.rotate(fo.Y,Math.PI,1)}_updateModel(e){this.disableAnimation||this.getComponentIds().forEach(t=>{const i=this.getComponent(t);if(!i.hasChanges)return;const s=this._buttonMeshMapping[t],r=this.layout.components[t];Object.keys(r.visualResponses).forEach(n=>{const o=r.visualResponses[n];let l=i.value;if(o.componentProperty==="xAxis"?l=i.axes.x:o.componentProperty==="yAxis"&&(l=i.axes.y),o.valueNodeProperty==="transform")this._lerpTransform(s.states[n],l,o.componentProperty!=="button");else{const c=s.states[n].valueMesh;c&&(c.isVisible=i.touched||i.pressed),this._touchDots[n]&&(this._touchDots[n].isVisible=i.touched||i.pressed)}})})}}const wte=[];class wc{static ClearProfilesCache(){this._ProfilesList=null,this._ProfileLoadingPromises={}}static DefaultFallbacks(){this.RegisterFallbacksForProfileId("google-daydream",["generic-touchpad"]),this.RegisterFallbacksForProfileId("htc-vive-focus",["generic-trigger-touchpad"]),this.RegisterFallbacksForProfileId("htc-vive",["generic-trigger-squeeze-touchpad"]),this.RegisterFallbacksForProfileId("magicleap-one",["generic-trigger-squeeze-touchpad"]),this.RegisterFallbacksForProfileId("windows-mixed-reality",["generic-trigger-squeeze-touchpad-thumbstick"]),this.RegisterFallbacksForProfileId("microsoft-mixed-reality",["windows-mixed-reality","generic-trigger-squeeze-touchpad-thumbstick"]),this.RegisterFallbacksForProfileId("oculus-go",["generic-trigger-touchpad"]),this.RegisterFallbacksForProfileId("oculus-touch-v2",["oculus-touch","generic-trigger-squeeze-thumbstick"]),this.RegisterFallbacksForProfileId("oculus-touch",["generic-trigger-squeeze-thumbstick"]),this.RegisterFallbacksForProfileId("samsung-gearvr",["windows-mixed-reality","generic-trigger-squeeze-touchpad-thumbstick"]),this.RegisterFallbacksForProfileId("samsung-odyssey",["generic-touchpad"]),this.RegisterFallbacksForProfileId("valve-index",["generic-trigger-squeeze-touchpad-thumbstick"]),this.RegisterFallbacksForProfileId("generic-hand-select",["generic-trigger"])}static FindFallbackWithProfileId(e){const t=this._Fallbacks[e]||[];return t.unshift(e),t}static GetMotionControllerWithXRInput(e,t,i){const s=[];if(i&&s.push(i),s.push(...e.profiles||[]),s.length&&!s[0]&&s.pop(),e.gamepad&&e.gamepad.id)switch(e.gamepad.id){case(e.gamepad.id.match(/oculus touch/gi)?e.gamepad.id:void 0):s.push("oculus-touch-v2");break}const r=s.indexOf("windows-mixed-reality");if(r!==-1&&s.splice(r,0,"microsoft-mixed-reality"),s.length||s.push("generic-trigger"),this.UseOnlineRepository){const n=this.PrioritizeOnlineRepository?this._LoadProfileFromRepository:this._LoadProfilesFromAvailableControllers,o=this.PrioritizeOnlineRepository?this._LoadProfilesFromAvailableControllers:this._LoadProfileFromRepository;return n.call(this,s,e,t).catch(()=>o.call(this,s,e,t))}else return this._LoadProfilesFromAvailableControllers(s,e,t)}static RegisterController(e,t){this._AvailableControllers[e]=t}static RegisterFallbacksForProfileId(e,t){this._Fallbacks[e]?this._Fallbacks[e].push(...t):this._Fallbacks[e]=t}static UpdateProfilesList(){return this._ProfilesList=Le.LoadFileAsync(this.BaseRepositoryUrl+"/profiles/profilesList.json",!1).then(e=>JSON.parse(e)),this._ProfilesList}static ClearControllerCache(){wte.forEach(e=>{e.meshes.forEach(t=>{t.dispose(!1,!0)})}),wte.length=0}static _LoadProfileFromRepository(e,t,i){return Promise.resolve().then(()=>this._ProfilesList?this._ProfilesList:this.UpdateProfilesList()).then(s=>{for(let r=0;r<e.length;++r)if(e[r]&&s[e[r]])return e[r];throw new Error(`neither controller ${e[0]} nor all fallbacks were found in the repository,`)}).then(s=>(this._ProfileLoadingPromises[s]||(this._ProfileLoadingPromises[s]=Le.LoadFileAsync(`${this.BaseRepositoryUrl}/profiles/${s}/profile.json`,!1).then(r=>JSON.parse(r))),this._ProfileLoadingPromises[s])).then(s=>new L3e(i,t,s,this.BaseRepositoryUrl,this.DisableControllerCache?void 0:wte))}static _LoadProfilesFromAvailableControllers(e,t,i){for(let s=0;s<e.length;++s){if(!e[s])continue;const r=this.FindFallbackWithProfileId(e[s]);for(let n=0;n<r.length;++n){const o=this._AvailableControllers[r[n]];if(o)return Promise.resolve(o(t,i))}}throw new Error("no controller requested was found in the available controllers list")}}wc._AvailableControllers={},wc._Fallbacks={},wc._ProfileLoadingPromises={},wc.BaseRepositoryUrl="https://immersive-web.github.io/webxr-input-profiles/packages/viewer/dist",wc.PrioritizeOnlineRepository=!0,wc.UseOnlineRepository=!0,wc.DisableControllerCache=!0,wc.RegisterController(lO.ProfileId,(a,e)=>new lO(e,a.gamepad,a.handedness)),wc.DefaultFallbacks();let bFe=0;class I3e{constructor(e,t,i={}){this._scene=e,this.inputSource=t,this._options=i,this._tmpVector=new P,this._disposed=!1,this.onDisposeObservable=new xe,this.onMeshLoadedObservable=new xe,this.onMotionControllerInitObservable=new xe,this._uniqueId=`controller-${bFe++}-${t.targetRayMode}-${t.handedness}`,this.pointer=new Ne(`${this._uniqueId}-pointer`,e),this.pointer.rotationQuaternion=new Re,this.inputSource.gripSpace&&(this.grip=new Ne(`${this._uniqueId}-grip`,this._scene),this.grip.rotationQuaternion=new Re),this._tmpVector.set(0,0,this._scene.useRightHandedSystem?-1:1),this.inputSource.gamepad&&this.inputSource.targetRayMode==="tracked-pointer"&&wc.GetMotionControllerWithXRInput(t,e,this._options.forceControllerProfile).then(s=>{this.motionController=s,this.onMotionControllerInitObservable.notifyObservers(s),!this._options.doNotLoadControllerMesh&&!this.motionController._doNotLoadControllerMesh&&this.motionController.loadModel().then(r=>{var n;r&&this.motionController&&this.motionController.rootMesh&&(this._options.renderingGroupId&&(this.motionController.rootMesh.renderingGroupId=this._options.renderingGroupId,this.motionController.rootMesh.getChildMeshes(!1).forEach(o=>o.renderingGroupId=this._options.renderingGroupId)),this.onMeshLoadedObservable.notifyObservers(this.motionController.rootMesh),this.motionController.rootMesh.parent=this.grip||this.pointer,this.motionController.disableAnimation=!!this._options.disableMotionControllerAnimation),this._disposed&&((n=this.motionController)==null||n.dispose())})},()=>{Le.Warn("Could not find a matching motion controller for the registered input source")})}get uniqueId(){return this._uniqueId}dispose(){this.grip&&this.grip.dispose(!0),this.motionController&&this.motionController.dispose(),this.pointer.dispose(!0),this.onMotionControllerInitObservable.clear(),this.onMeshLoadedObservable.clear(),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this._disposed=!0}getWorldPointerRayToRef(e,t=!1){const i=t&&this.grip?this.grip:this.pointer;P.TransformNormalToRef(this._tmpVector,i.getWorldMatrix(),e.direction),e.direction.normalize(),e.origin.copyFrom(i.absolutePosition),e.length=1e3}updateFromXRFrame(e,t,i,s){const r=e.getPose(this.inputSource.targetRaySpace,t);if(this._lastXRPose=r,r){const n=r.transform.position;this.pointer.position.set(n.x,n.y,n.z).scaleInPlace(s.worldScalingFactor);const o=r.transform.orientation;this.pointer.rotationQuaternion.set(o.x,o.y,o.z,o.w),this._scene.useRightHandedSystem||(this.pointer.position.z*=-1,this.pointer.rotationQuaternion.z*=-1,this.pointer.rotationQuaternion.w*=-1),this.pointer.parent=i.parent,this.pointer.scaling.setAll(s.worldScalingFactor)}if(this.inputSource.gripSpace&&this.grip){const n=e.getPose(this.inputSource.gripSpace,t);if(n){const o=n.transform.position,l=n.transform.orientation;this.grip.position.set(o.x,o.y,o.z).scaleInPlace(s.worldScalingFactor),this.grip.rotationQuaternion.set(l.x,l.y,l.z,l.w),this._scene.useRightHandedSystem||(this.grip.position.z*=-1,this.grip.rotationQuaternion.z*=-1,this.grip.rotationQuaternion.w*=-1)}this.grip.parent=i.parent,this.grip.scaling.setAll(s.worldScalingFactor)}this.motionController&&this.motionController.updateFromXRFrame(e)}}class P3e{constructor(e,t,i={}){if(this.xrSessionManager=e,this.xrCamera=t,this._options=i,this.controllers=[],this.onControllerAddedObservable=new xe,this.onControllerRemovedObservable=new xe,this._onInputSourcesChange=s=>{this._addAndRemoveControllers(s.added,s.removed)},this._sessionEndedObserver=this.xrSessionManager.onXRSessionEnded.add(()=>{this._addAndRemoveControllers([],this.controllers.map(s=>s.inputSource))}),this._sessionInitObserver=this.xrSessionManager.onXRSessionInit.add(s=>{s.addEventListener("inputsourceschange",this._onInputSourcesChange)}),this._frameObserver=this.xrSessionManager.onXRFrameObservable.add(s=>{this.controllers.forEach(r=>{r.updateFromXRFrame(s,this.xrSessionManager.referenceSpace,this.xrCamera,this.xrSessionManager)})}),this._options.customControllersRepositoryURL&&(wc.BaseRepositoryUrl=this._options.customControllersRepositoryURL),wc.UseOnlineRepository=!this._options.disableOnlineControllerRepository,wc.UseOnlineRepository)try{wc.UpdateProfilesList().catch(()=>{wc.UseOnlineRepository=!1})}catch{wc.UseOnlineRepository=!1}}_addAndRemoveControllers(e,t){const i=this.controllers.map(n=>n.inputSource);for(const n of e)if(i.indexOf(n)===-1){const o=new I3e(this.xrSessionManager.scene,n,{...this._options.controllerOptions||{},forceControllerProfile:this._options.forceInputProfile,doNotLoadControllerMesh:this._options.doNotLoadControllerMeshes,disableMotionControllerAnimation:this._options.disableControllerAnimation});this.controllers.push(o),this.onControllerAddedObservable.notifyObservers(o)}const s=[],r=[];this.controllers.forEach(n=>{t.indexOf(n.inputSource)===-1?s.push(n):r.push(n)}),this.controllers=s,r.forEach(n=>{this.onControllerRemovedObservable.notifyObservers(n),n.dispose()})}dispose(){this.controllers.forEach(e=>{e.dispose()}),this.xrSessionManager.onXRFrameObservable.remove(this._frameObserver),this.xrSessionManager.onXRSessionInit.remove(this._sessionInitObserver),this.xrSessionManager.onXRSessionEnded.remove(this._sessionEndedObserver),this.onControllerAddedObservable.clear(),this.onControllerRemovedObservable.clear(),wc.ClearControllerCache()}}class Bc{get xrNativeFeatureName(){return this._xrNativeFeatureName}set xrNativeFeatureName(e){var t;!this._xrSessionManager.isNative&&e&&this._xrSessionManager.inXRSession&&((t=this._xrSessionManager.enabledFeatures)==null?void 0:t.indexOf(e))===-1&&de.Warn(`The feature ${e} needs to be enabled before starting the XR session. Note - It is still possible it is not supported.`),this._xrNativeFeatureName=e}constructor(e){this._xrSessionManager=e,this._attached=!1,this._removeOnDetach=[],this.isDisposed=!1,this.disableAutoAttach=!1,this._xrNativeFeatureName="",this.onFeatureAttachObservable=new xe,this.onFeatureDetachObservable=new xe}get attached(){return this._attached}attach(e){if(this.isDisposed)return!1;if(e)this.attached&&this.detach();else if(this.attached)return!1;if(!this._xrSessionManager.enabledFeatures)de.Warn("session.enabledFeatures is not available on this device. It is possible that this feature is not supported.");else if(!this._xrSessionManager.isNative&&this.xrNativeFeatureName&&this._xrSessionManager.enabledFeatures.indexOf(this.xrNativeFeatureName)===-1)return!1;return this._attached=!0,this._addNewAttachObserver(this._xrSessionManager.onXRFrameObservable,t=>this._onXRFrame(t)),this.onFeatureAttachObservable.notifyObservers(this),!0}detach(){return this._attached?(this._attached=!1,this._removeOnDetach.forEach(e=>{e.observable.remove(e.observer)}),this.onFeatureDetachObservable.notifyObservers(this),!0):(this.disableAutoAttach=!0,!1)}dispose(){this.detach(),this.isDisposed=!0,this.onFeatureAttachObservable.clear(),this.onFeatureDetachObservable.clear()}isCompatible(){return!0}_addNewAttachObserver(e,t,i){this._removeOnDetach.push({observable:e,observer:e.add(t,void 0,i)})}}class a5 extends Bc{constructor(e,t){super(e),this._options=t,this._attachController=i=>{if(this._controllers[i.uniqueId])return;const{laserPointer:s,selectionMesh:r}=this._generateNewMeshPair(this._options.forceGripIfAvailable&&i.grip?i.grip:i.pointer);switch(this._controllers[i.uniqueId]={xrController:i,laserPointer:s,selectionMesh:r,meshUnderPointer:null,pick:null,tmpRay:new Is(new P,new P),disabledByNearInteraction:!1,id:a5._IdCounter++},this._attachedController?!this._options.enablePointerSelectionOnAllControllers&&this._options.preferredHandedness&&i.inputSource.handedness===this._options.preferredHandedness&&(this._attachedController=i.uniqueId):this._options.enablePointerSelectionOnAllControllers||(this._attachedController=i.uniqueId),i.inputSource.targetRayMode){case"tracked-pointer":return this._attachTrackedPointerRayMode(i);case"gaze":return this._attachGazeMode(i);case"screen":case"transient-pointer":return this._attachScreenRayMode(i)}},this._controllers={},this._tmpVectorForPickCompare=new P,this.disablePointerLighting=!0,this.disableSelectionMeshLighting=!0,this.displayLaserPointer=!0,this.displaySelectionMesh=!0,this.laserPointerPickedColor=new Pe(.9,.9,.9),this.laserPointerDefaultColor=new Pe(.7,.7,.7),this.selectionMeshDefaultColor=new Pe(.8,.8,.8),this.selectionMeshPickedColor=new Pe(.3,.3,1),this._identityMatrix=me.Identity(),this._screenCoordinatesRef=P.Zero(),this._viewportRef=new Tc(0,0,0,0),this._scene=this._xrSessionManager.scene,this._options.lookAndPickMode===void 0&&(this._scene.getEngine()._badDesktopOS||this._scene.getEngine()._badOS)&&(this._options.lookAndPickMode=!0),this._options.lookAndPickMode&&(this._options.enablePointerSelectionOnAllControllers=!0,this.displayLaserPointer=!1)}attach(){if(!super.attach())return!1;if(this._options.xrInput.controllers.forEach(this._attachController),this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable,this._attachController,!0),this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable,e=>{this._detachController(e.uniqueId)},!0),this._scene.constantlyUpdateMeshUnderPointer=!0,this._options.gazeCamera){const e=this._options.gazeCamera,{laserPointer:t,selectionMesh:i}=this._generateNewMeshPair(e);this._controllers.camera={webXRCamera:e,laserPointer:t,selectionMesh:i,meshUnderPointer:null,pick:null,tmpRay:new Is(new P,new P),disabledByNearInteraction:!1,id:a5._IdCounter++},this._attachGazeMode()}return!0}detach(){return super.detach()?(Object.keys(this._controllers).forEach(e=>{this._detachController(e)}),!0):!1}getMeshUnderPointer(e){return this._controllers[e]?this._controllers[e].meshUnderPointer:null}getXRControllerByPointerId(e){const t=Object.keys(this._controllers);for(let i=0;i<t.length;++i)if(this._controllers[t[i]].id===e)return this._controllers[t[i]].xrController||null;return null}_getPointerSelectionDisabledByPointerId(e){const t=Object.keys(this._controllers);for(let i=0;i<t.length;++i)if(this._controllers[t[i]].id===e)return this._controllers[t[i]].disabledByNearInteraction;return!0}_setPointerSelectionDisabledByPointerId(e,t){const i=Object.keys(this._controllers);for(let s=0;s<i.length;++s)if(this._controllers[i[s]].id===e){this._controllers[i[s]].disabledByNearInteraction=t;return}}_onXRFrame(e){Object.keys(this._controllers).forEach(t=>{var l;const i=this._controllers[t];if(this._options.lookAndPickMode&&((l=i.xrController)==null?void 0:l.inputSource.targetRayMode)!=="transient-pointer")return;if(!this._options.enablePointerSelectionOnAllControllers&&t!==this._attachedController||i.disabledByNearInteraction){i.selectionMesh.isVisible=!1,i.laserPointer.isVisible=!1,i.pick=null;return}i.laserPointer.isVisible=this.displayLaserPointer;let s;if(i.xrController)s=this._options.forceGripIfAvailable&&i.xrController.grip?i.xrController.grip.position:i.xrController.pointer.position,i.xrController.getWorldPointerRayToRef(i.tmpRay,this._options.forceGripIfAvailable);else if(i.webXRCamera)s=i.webXRCamera.position,i.webXRCamera.getForwardRayToRef(i.tmpRay);else return;if(this._options.maxPointerDistance&&(i.tmpRay.length=this._options.maxPointerDistance),!this._options.disableScenePointerVectorUpdate&&s){const c=this._xrSessionManager.scene,u=this._options.xrInput.xrCamera;u&&(u.viewport.toGlobalToRef(c.getEngine().getRenderWidth()/u.rigCameras.length,c.getEngine().getRenderHeight(),this._viewportRef),P.ProjectToRef(s,this._identityMatrix,u.getTransformationMatrix(),this._viewportRef,this._screenCoordinatesRef),typeof this._screenCoordinatesRef.x=="number"&&typeof this._screenCoordinatesRef.y=="number"&&!isNaN(this._screenCoordinatesRef.x)&&!isNaN(this._screenCoordinatesRef.y)&&this._screenCoordinatesRef.x!==1/0&&this._screenCoordinatesRef.y!==1/0&&(c.pointerX=this._screenCoordinatesRef.x,c.pointerY=this._screenCoordinatesRef.y,i.screenCoordinates={x:this._screenCoordinatesRef.x,y:this._screenCoordinatesRef.y}))}let r=null;this._utilityLayerScene&&(r=this._utilityLayerScene.pickWithRay(i.tmpRay,this._utilityLayerScene.pointerMovePredicate||this.raySelectionPredicate));const n=this._scene.pickWithRay(i.tmpRay,this._scene.pointerMovePredicate||this.raySelectionPredicate);!r||!r.hit?i.pick=n:!n||!n.hit||r.distance<n.distance?i.pick=r:i.pick=n,i.pick&&i.xrController&&(i.pick.aimTransform=i.xrController.pointer,i.pick.gripTransform=i.xrController.grip||null,i.pick.originMesh=i.xrController.pointer,i.tmpRay.length=i.pick.distance);const o=i.pick;if(o&&o.pickedPoint&&o.hit){this._updatePointerDistance(i.laserPointer,o.distance),i.selectionMesh.position.copyFrom(o.pickedPoint),i.selectionMesh.scaling.x=Math.sqrt(o.distance),i.selectionMesh.scaling.y=Math.sqrt(o.distance),i.selectionMesh.scaling.z=Math.sqrt(o.distance);const c=this._convertNormalToDirectionOfRay(o.getNormal(!0),i.tmpRay),u=.001;if(i.selectionMesh.position.copyFrom(o.pickedPoint),c){const f=P.Cross(fo.Y,c),p=P.Cross(c,f);P.RotationFromAxisToRef(p,c,f,i.selectionMesh.rotation),i.selectionMesh.position.addInPlace(c.scale(u))}i.selectionMesh.isVisible=this.displaySelectionMesh,i.meshUnderPointer=o.pickedMesh}else i.selectionMesh.isVisible=!1,this._updatePointerDistance(i.laserPointer,1),i.meshUnderPointer=null})}get _utilityLayerScene(){return this._options.customUtilityLayerScene||Dr.DefaultUtilityLayer.utilityLayerScene}_attachGazeMode(e){const t=this._controllers[e&&e.uniqueId||"camera"],i=this._options.timeToSelect||3e3,s=this._options.useUtilityLayer?this._utilityLayerScene:this._scene;let r=new Kl;const n=Jv("selection",{diameter:.0035*15,thickness:.0025*6,tessellation:20},s);n.isVisible=!1,n.isPickable=!1,n.parent=t.selectionMesh;let o=0,l=!1;const c={pointerId:t.id,pointerType:"xr"};t.onFrameObserver=this._xrSessionManager.onXRFrameObservable.add(()=>{if(t.pick){if(this._augmentPointerInit(c,t.id,t.screenCoordinates),t.laserPointer.material.alpha=0,n.isVisible=!1,t.pick.hit)if(this._pickingMoved(r,t.pick))l&&(this._options.disablePointerUpOnTouchOut||this._scene.simulatePointerUp(t.pick,c)),l=!1,o=0;else if(o>i/10&&(n.isVisible=!0),o+=this._scene.getEngine().getDeltaTime(),o>=i)this._scene.simulatePointerDown(t.pick,c),l=!0,this._options.disablePointerUpOnTouchOut&&this._scene.simulatePointerUp(t.pick,c),n.isVisible=!1;else{const u=1-o/i;n.scaling.set(u,u,u)}else l=!1,o=0;this._scene.simulatePointerMove(t.pick,c),r=t.pick}}),this._options.renderingGroupId!==void 0&&(n.renderingGroupId=this._options.renderingGroupId),e&&e.onDisposeObservable.addOnce(()=>{t.pick&&!this._options.disablePointerUpOnTouchOut&&l&&(this._scene.simulatePointerUp(t.pick,c),t.finalPointerUpTriggered=!0),n.dispose()})}_attachScreenRayMode(e){const t=this._controllers[e.uniqueId];let i=!1;const s={pointerId:t.id,pointerType:"xr"};t.onFrameObserver=this._xrSessionManager.onXRFrameObservable.add(()=>{this._augmentPointerInit(s,t.id,t.screenCoordinates),!(!t.pick||this._options.disablePointerUpOnTouchOut&&i)&&(i?this._scene.simulatePointerMove(t.pick,s):(this._scene.simulatePointerDown(t.pick,s),t.pointerDownTriggered=!0,i=!0,this._options.disablePointerUpOnTouchOut&&this._scene.simulatePointerUp(t.pick,s)))}),e.onDisposeObservable.addOnce(()=>{this._augmentPointerInit(s,t.id,t.screenCoordinates),this._xrSessionManager.runInXRFrame(()=>{t.pick&&!t.finalPointerUpTriggered&&i&&!this._options.disablePointerUpOnTouchOut&&(this._scene.simulatePointerUp(t.pick,s),t.finalPointerUpTriggered=!0)})})}_attachTrackedPointerRayMode(e){const t=this._controllers[e.uniqueId];if(this._options.forceGazeMode)return this._attachGazeMode(e);const i={pointerId:t.id,pointerType:"xr"};if(t.onFrameObserver=this._xrSessionManager.onXRFrameObservable.add(()=>{t.laserPointer.material.disableLighting=this.disablePointerLighting,t.selectionMesh.material.disableLighting=this.disableSelectionMeshLighting,t.pick&&(this._augmentPointerInit(i,t.id,t.screenCoordinates),this._scene.simulatePointerMove(t.pick,i))}),e.inputSource.gamepad){const s=r=>{this._options.overrideButtonId&&(t.selectionComponent=r.getComponent(this._options.overrideButtonId)),t.selectionComponent||(t.selectionComponent=r.getMainComponent()),t.onButtonChangedObserver=t.selectionComponent.onButtonStateChangedObservable.add(n=>{if(n.changes.pressed){const o=n.changes.pressed.current;if(t.pick)(this._options.enablePointerSelectionOnAllControllers||e.uniqueId===this._attachedController)&&(this._augmentPointerInit(i,t.id,t.screenCoordinates),o?(this._scene.simulatePointerDown(t.pick,i),t.pointerDownTriggered=!0,t.selectionMesh.material.emissiveColor=this.selectionMeshPickedColor,t.laserPointer.material.emissiveColor=this.laserPointerPickedColor):(this._scene.simulatePointerUp(t.pick,i),t.selectionMesh.material.emissiveColor=this.selectionMeshDefaultColor,t.laserPointer.material.emissiveColor=this.laserPointerDefaultColor));else if(o&&!this._options.enablePointerSelectionOnAllControllers&&!this._options.disableSwitchOnClick){const l=this._controllers[this._attachedController];l&&l.pointerDownTriggered&&!l.finalPointerUpTriggered&&(this._augmentPointerInit(i,l.id,l.screenCoordinates),this._scene.simulatePointerUp(new Kl,{pointerId:l.id,pointerType:"xr"}),l.finalPointerUpTriggered=!0),this._attachedController=e.uniqueId}}})};e.motionController?s(e.motionController):e.onMotionControllerInitObservable.add(s)}else{const s=n=>{this._xrSessionManager.onXRFrameObservable.addOnce(()=>{this._augmentPointerInit(i,t.id,t.screenCoordinates),t.xrController&&n.inputSource===t.xrController.inputSource&&t.pick&&(this._scene.simulatePointerDown(t.pick,i),t.pointerDownTriggered=!0,t.selectionMesh.material.emissiveColor=this.selectionMeshPickedColor,t.laserPointer.material.emissiveColor=this.laserPointerPickedColor)})},r=n=>{this._xrSessionManager.onXRFrameObservable.addOnce(()=>{this._augmentPointerInit(i,t.id,t.screenCoordinates),t.xrController&&n.inputSource===t.xrController.inputSource&&t.pick&&(this._scene.simulatePointerUp(t.pick,i),t.selectionMesh.material.emissiveColor=this.selectionMeshDefaultColor,t.laserPointer.material.emissiveColor=this.laserPointerDefaultColor)})};t.eventListeners={selectend:r,selectstart:s},this._xrSessionManager.session.addEventListener("selectstart",s),this._xrSessionManager.session.addEventListener("selectend",r)}}_convertNormalToDirectionOfRay(e,t){return e&&Math.acos(P.Dot(e,t.direction))<Math.PI/2&&e.scaleInPlace(-1),e}_detachController(e){const t=this._controllers[e];if(t){if(t.selectionComponent&&t.onButtonChangedObserver&&t.selectionComponent.onButtonStateChangedObservable.remove(t.onButtonChangedObserver),t.onFrameObserver&&this._xrSessionManager.onXRFrameObservable.remove(t.onFrameObserver),t.eventListeners&&Object.keys(t.eventListeners).forEach(i=>{const s=t.eventListeners&&t.eventListeners[i];s&&this._xrSessionManager.session.removeEventListener(i,s)}),!t.finalPointerUpTriggered&&t.pointerDownTriggered){const i={pointerId:t.id,pointerType:"xr"};this._xrSessionManager.runInXRFrame(()=>{this._augmentPointerInit(i,t.id,t.screenCoordinates),this._scene.simulatePointerUp(t.pick||new Kl,i),t.finalPointerUpTriggered=!0})}this._xrSessionManager.scene.onBeforeRenderObservable.addOnce(()=>{try{if(t.selectionMesh.dispose(),t.laserPointer.dispose(),delete this._controllers[e],this._attachedController===e){const i=Object.keys(this._controllers);i.length?this._attachedController=i[0]:this._attachedController=""}}catch{Le.Warn("controller already detached.")}})}}_generateNewMeshPair(e){const t=this._options.useUtilityLayer?this._options.customUtilityLayerScene||Dr.DefaultUtilityLayer.utilityLayerScene:this._scene,i=this._options.customLasterPointerMeshGenerator?this._options.customLasterPointerMeshGenerator():e1("laserPointer",{height:1,diameterTop:2e-4,diameterBottom:.004,tessellation:20,subdivisions:1},t);i.parent=e;const s=new Bt("laserPointerMat",t);s.emissiveColor=this.laserPointerDefaultColor,s.alpha=.7,i.material=s,i.rotation.x=Math.PI/2,this._updatePointerDistance(i,1),i.isPickable=!1,i.isVisible=!1;const r=this._options.customSelectionMeshGenerator?this._options.customSelectionMeshGenerator():Jv("gazeTracker",{diameter:.0035*3,thickness:.0025*3,tessellation:20},t);r.bakeCurrentTransformIntoVertices(),r.isPickable=!1,r.isVisible=!1;const n=new Bt("targetMat",t);return n.specularColor=Pe.Black(),n.emissiveColor=this.selectionMeshDefaultColor,n.backFaceCulling=!1,r.material=n,this._options.renderingGroupId!==void 0&&(i.renderingGroupId=this._options.renderingGroupId,r.renderingGroupId=this._options.renderingGroupId),{laserPointer:i,selectionMesh:r}}_pickingMoved(e,t){var r;if(!e.hit||!t.hit||!e.pickedMesh||!e.pickedPoint||!t.pickedMesh||!t.pickedPoint||e.pickedMesh!==t.pickedMesh)return!0;(r=e.pickedPoint)==null||r.subtractToRef(t.pickedPoint,this._tmpVectorForPickCompare),this._tmpVectorForPickCompare.set(Math.abs(this._tmpVectorForPickCompare.x),Math.abs(this._tmpVectorForPickCompare.y),Math.abs(this._tmpVectorForPickCompare.z));const i=(this._options.gazeModePointerMovedFactor||1)*.01*t.distance;return this._tmpVectorForPickCompare.length()>i}_updatePointerDistance(e,t=100){e.scaling.y=t,this._scene.useRightHandedSystem&&(t*=-1),e.position.z=t/2+.05}_augmentPointerInit(e,t,i){e.pointerId=t,e.pointerType="xr",i&&(e.screenX=i.x,e.screenY=i.y)}get lasterPointerDefaultColor(){return this.laserPointerDefaultColor}}a5._IdCounter=200,a5.Name=ur.POINTER_SELECTION,a5.Version=1,$a.AddWebXRFeature(a5.Name,(a,e)=>()=>new a5(a,e),a5.Version,!0);var $;(function(a){a[a.Float=1]="Float",a[a.Int=2]="Int",a[a.Vector2=4]="Vector2",a[a.Vector3=8]="Vector3",a[a.Vector4=16]="Vector4",a[a.Color3=32]="Color3",a[a.Color4=64]="Color4",a[a.Matrix=128]="Matrix",a[a.Object=256]="Object",a[a.AutoDetect=1024]="AutoDetect",a[a.BasedOnInput=2048]="BasedOnInput",a[a.All=4095]="All"})($||($={}));var Te;(function(a){a[a.Vertex=1]="Vertex",a[a.Fragment=2]="Fragment",a[a.Neutral=4]="Neutral",a[a.VertexAndFragment=3]="VertexAndFragment"})(Te||(Te={}));class O3e{constructor(){this.supportUniformBuffers=!1,this.attributes=[],this.uniforms=[],this.constants=[],this.samplers=[],this.functions={},this.extensions={},this.prePassOutput={},this.counters={},this._terminalBlocks=new Set,this._attributeDeclaration="",this._uniformDeclaration="",this._constantDeclaration="",this._samplerDeclaration="",this._varyingTransfer="",this._injectAtEnd="",this._repeatableContentAnchorIndex=0,this._builtCompilationString="",this.compilationString=""}get shaderLanguage(){return this.sharedData.nodeMaterial.shaderLanguage}get fSuffix(){return this.shaderLanguage===1?"f":""}finalize(e){const t=e.sharedData.emitComments,i=this.target===Te.Fragment;this.shaderLanguage===1?i?this.compilationString=`
${t?`//Entry point
`:""}@fragment
fn main(input: FragmentInputs) -> FragmentOutputs {
${this.sharedData.varyingInitializationsFragment}${this.compilationString}`:this.compilationString=`
${t?`//Entry point
`:""}@vertex
fn main(input: VertexInputs) -> FragmentInputs{
${this.compilationString}`:this.compilationString=`
${t?`//Entry point
`:""}void main(void) {
${this.compilationString}`,this._constantDeclaration&&(this.compilationString=`
${t?`//Constants
`:""}${this._constantDeclaration}
${this.compilationString}`);let s="";for(const r in this.functions)s+=this.functions[r]+`
`;if(this.compilationString=`
${s}
${this.compilationString}`,!i&&this._varyingTransfer&&(this.compilationString=`${this.compilationString}
${this._varyingTransfer}`),this._injectAtEnd&&(this.compilationString=`${this.compilationString}
${this._injectAtEnd}`),this.compilationString=`${this.compilationString}
}`,this.sharedData.varyingDeclaration&&(this.compilationString=`
${t?`//Varyings
`:""}${i?this.sharedData.varyingDeclarationFragment:this.sharedData.varyingDeclaration}
${this.compilationString}`),this._samplerDeclaration&&(this.compilationString=`
${t?`//Samplers
`:""}${this._samplerDeclaration}
${this.compilationString}`),this._uniformDeclaration&&(this.compilationString=`
${t?`//Uniforms
`:""}${this._uniformDeclaration}
${this.compilationString}`),this._attributeDeclaration&&!i&&(this.compilationString=`
${t?`//Attributes
`:""}${this._attributeDeclaration}
${this.compilationString}`),this.shaderLanguage!==1){this.compilationString=`precision highp float;
`+this.compilationString,this.compilationString=`#if defined(WEBGL2) || defined(WEBGPU)
precision highp sampler2DArray;
#endif
`+this.compilationString,i&&(this.compilationString=`#if defined(PREPASS)\r
#extension GL_EXT_draw_buffers : require\r
layout(location = 0) out highp vec4 glFragData[SCENE_MRT_COUNT];\r
highp vec4 gl_FragColor;\r
#endif\r
`+this.compilationString);for(const r in this.extensions){const n=this.extensions[r];this.compilationString=`
${n}
${this.compilationString}`}}this._builtCompilationString=this.compilationString}get _repeatableContentAnchor(){return`###___ANCHOR${this._repeatableContentAnchorIndex++}___###`}_getFreeVariableName(e){return e=e.replace(/[^a-zA-Z_]+/g,""),this.sharedData.variableNames[e]===void 0?(this.sharedData.variableNames[e]=0,e==="output"||e==="texture"?e+this.sharedData.variableNames[e]:e):(this.sharedData.variableNames[e]++,e+this.sharedData.variableNames[e])}_getFreeDefineName(e){return this.sharedData.defineNames[e]===void 0?this.sharedData.defineNames[e]=0:this.sharedData.defineNames[e]++,e+this.sharedData.defineNames[e]}_excludeVariableName(e){this.sharedData.variableNames[e]=0}_emit2DSampler(e,t="",i=!1){(this.samplers.indexOf(e)<0||i)&&(t&&(this._samplerDeclaration+=`#if ${t}
`),this.shaderLanguage===1?(this._samplerDeclaration+=`var ${e+"Sampler"}: sampler;
`,this._samplerDeclaration+=`var ${e}: texture_2d<f32>;
`):this._samplerDeclaration+=`uniform sampler2D ${e};
`,t&&(this._samplerDeclaration+=`#endif
`),i||this.samplers.push(e))}_emitCubeSampler(e,t="",i=!1){(this.samplers.indexOf(e)<0||i)&&(t&&(this._samplerDeclaration+=`#if ${t}
`),this.shaderLanguage===1?(this._samplerDeclaration+=`var ${e+"Sampler"}: sampler;
`,this._samplerDeclaration+=`var ${e}: texture_cube<f32>;
`):this._samplerDeclaration+=`uniform samplerCube ${e};
`,t&&(this._samplerDeclaration+=`#endif
`),i||this.samplers.push(e))}_emit2DArraySampler(e){this.samplers.indexOf(e)<0&&(this._samplerDeclaration+=`uniform sampler2DArray ${e};
`,this.samplers.push(e))}_getGLType(e){switch(e){case $.Float:return"float";case $.Int:return"int";case $.Vector2:return"vec2";case $.Color3:case $.Vector3:return"vec3";case $.Color4:case $.Vector4:return"vec4";case $.Matrix:return"mat4"}return""}_getShaderType(e){const t=this.shaderLanguage===1;switch(e){case $.Float:return t?"f32":"float";case $.Int:return t?"i32":"int";case $.Vector2:return t?"vec2f":"vec2";case $.Color3:case $.Vector3:return t?"vec3f":"vec3";case $.Color4:case $.Vector4:return t?"vec4f":"vec4";case $.Matrix:return t?"mat4x4f":"mat4"}return""}_emitExtension(e,t,i=""){this.extensions[e]||(i&&(t=`#if ${i}
${t}
#endif`),this.extensions[e]=t)}_emitFunction(e,t,i){this.functions[e]||(this.sharedData.emitComments&&(t=i+`
`+t),this.functions[e]=t)}_emitCodeFromInclude(e,t,i){const s=H.GetIncludesShadersStore(this.shaderLanguage);if(i&&i.repeatKey)return`#include<${e}>${i.substitutionVars?"("+i.substitutionVars+")":""}[0..${i.repeatKey}]
`;let r=s[e]+`
`;if(this.sharedData.emitComments&&(r=t+`
`+r),!i)return r;if(i.replaceStrings)for(let n=0;n<i.replaceStrings.length;n++){const o=i.replaceStrings[n];r=r.replace(o.search,o.replace)}return r}_emitFunctionFromInclude(e,t,i,s=""){const r=e+s;if(this.functions[r])return;const n=H.GetIncludesShadersStore(this.shaderLanguage);if(!i||!i.removeAttributes&&!i.removeUniforms&&!i.removeVaryings&&!i.removeIfDef&&!i.replaceStrings){i&&i.repeatKey?this.functions[r]=`#include<${e}>${i.substitutionVars?"("+i.substitutionVars+")":""}[0..${i.repeatKey}]
`:this.functions[r]=`#include<${e}>${i!=null&&i.substitutionVars?"("+(i==null?void 0:i.substitutionVars)+")":""}
`,this.sharedData.emitComments&&(this.functions[r]=t+`
`+this.functions[r]);return}if(this.functions[r]=n[e],this.sharedData.emitComments&&(this.functions[r]=t+`
`+this.functions[r]),i.removeIfDef&&(this.functions[r]=this.functions[r].replace(/^\s*?#ifdef.+$/gm,""),this.functions[r]=this.functions[r].replace(/^\s*?#endif.*$/gm,""),this.functions[r]=this.functions[r].replace(/^\s*?#else.*$/gm,""),this.functions[r]=this.functions[r].replace(/^\s*?#elif.*$/gm,"")),i.removeAttributes&&(this.functions[r]=this.functions[r].replace(/\s*?attribute .+?;/g,`
`)),i.removeUniforms&&(this.functions[r]=this.functions[r].replace(/\s*?uniform .*?;/g,`
`)),i.removeVaryings&&(this.functions[r]=this.functions[r].replace(/\s*?(varying|in) .+?;/g,`
`)),i.replaceStrings)for(let o=0;o<i.replaceStrings.length;o++){const l=i.replaceStrings[o];this.functions[r]=this.functions[r].replace(l.search,l.replace)}}_registerTempVariable(e){return this.sharedData.temps.indexOf(e)!==-1?!1:(this.sharedData.temps.push(e),!0)}_emitVaryingFromString(e,t,i="",s=!1){if(this.sharedData.varyings.indexOf(e)!==-1)return!1;this.sharedData.varyings.push(e);const r=this._getShaderType(t),n=(o=!1)=>{let l="";if(i&&(i.startsWith("defined(")?l+=`#if ${i}
`:l+=`${s?"#ifndef":"#ifdef"} ${i}
`),this.shaderLanguage===1)switch(r){case"mat4x4f":l+=`varying ${e}_r0: vec4f;
`,l+=`varying ${e}_r1: vec4f;
`,l+=`varying ${e}_r2: vec4f;
`,l+=`varying ${e}_r3: vec4f;
`,o&&(l+=`var<private> ${e}: mat4x4f;
`,this.sharedData.varyingInitializationsFragment+=`${e} = mat4x4f(fragmentInputs.${e}_r0, fragmentInputs.${e}_r1, fragmentInputs.${e}_r2, fragmentInputs.${e}_r3);
`);break;default:l+=`varying ${e}: ${r};
`;break}else l+=`varying ${r} ${e};
`;return i&&(l+=`#endif
`),l};if(this.shaderLanguage===1)this.sharedData.varyingDeclaration+=n(!1),this.sharedData.varyingDeclarationFragment+=n(!0);else{const o=n();this.sharedData.varyingDeclaration+=o,this.sharedData.varyingDeclarationFragment+=o}return!0}_getVaryingName(e){return this.shaderLanguage===1?(this.target!==Te.Fragment?"vertexOutputs.":"fragmentInputs.")+e:e}_emitUniformFromString(e,t,i="",s=!1){if(this.uniforms.indexOf(e)!==-1)return;this.uniforms.push(e),i&&(i.startsWith("defined(")?this._uniformDeclaration+=`#if ${i}
`:this._uniformDeclaration+=`${s?"#ifndef":"#ifdef"} ${i}
`);const r=this._getShaderType(t);this.shaderLanguage===1?this._uniformDeclaration+=`uniform ${e}: ${r};
`:this._uniformDeclaration+=`uniform ${r} ${e};
`,i&&(this._uniformDeclaration+=`#endif
`)}_generateTernary(e,t,i){return this.shaderLanguage===1?`select(${t}, ${e}, ${i})`:`(${i}) ? ${e} : ${t}`}_emitFloat(e){return e.toString()===e.toFixed(0)?`${e}.0`:e.toString()}_declareOutput(e,t){return this._declareLocalVar(e.associatedVariableName,e.type,t)}_declareLocalVar(e,t,i){return this.shaderLanguage===1?`${i?"const":"var"} ${e}: ${this._getShaderType(t)}`:`${this._getShaderType(t)} ${e}`}_samplerCubeFunc(){return this.shaderLanguage===1?"textureSample":"textureCube"}_samplerFunc(){return this.shaderLanguage===1?"textureSample":"texture2D"}_samplerLODFunc(){return this.shaderLanguage===1?"textureSampleLevel":"texture2DLodEXT"}_toLinearSpace(e){return this.shaderLanguage===1?e.type===$.Color3||e.type===$.Vector3?`toLinearSpaceVec3(${e.associatedVariableName})`:`toLinearSpace(${e.associatedVariableName})`:`toLinearSpace(${e.associatedVariableName})`}_generateTextureSample(e,t){return this.shaderLanguage===1?`${this._samplerFunc()}(${t},${t+"Sampler"}, ${e})`:`${this._samplerFunc()}(${t}, ${e})`}_generateTextureSampleLOD(e,t,i){return this.shaderLanguage===1?`${this._samplerLODFunc()}(${t},${t+"Sampler"}, ${e}, ${i})`:`${this._samplerLODFunc()}(${t}, ${e}, ${i})`}_generateTextureSampleCube(e,t){return this.shaderLanguage===1?`${this._samplerCubeFunc()}(${t},${t+"Sampler"}, ${e})`:`${this._samplerCubeFunc()}(${t}, ${e})`}_generateTextureSampleCubeLOD(e,t,i){return this.shaderLanguage===1?`${this._samplerCubeFunc()}(${t},${t+"Sampler"}, ${e}, ${i})`:`${this._samplerCubeFunc()}(${t}, ${e}, ${i})`}_convertVariableDeclarationToWGSL(e,t,i){return i.replace(new RegExp(`(${e})\\s+(\\w+)`,"g"),`var $2: ${t}`)}_convertVariableConstructorsToWGSL(e,t,i){return i.replace(new RegExp(`(${e})\\(`,"g"),` ${t}(`)}_convertOutParametersToWGSL(e){return e.replace(new RegExp("out\\s+var\\s+(\\w+)\\s*:\\s*(\\w+)","g"),"$1: ptr<function, $2>")}_convertTernaryOperandsToWGSL(e){return e.replace(new RegExp("\\[(.*?)\\?(.*?):(.*)\\]","g"),(t,i,s,r)=>`select(${r}, ${s}, ${i})`)}_convertModOperatorsToWGSL(e){return e.replace(new RegExp("mod\\((.+?),\\s*(.+?)\\)","g"),(t,i,s)=>`((${i})%(${s}))`)}_convertConstToWGSL(e){return e.replace(new RegExp("const var","g"),"const")}_convertInnerFunctionsToWGSL(e){return e.replace(new RegExp("inversesqrt","g"),"inverseSqrt")}_convertFunctionsToWGSL(e){const t=/var\s+(\w+)\s*:\s*(\w+)\((.*)\)/g;let i;for(;(i=t.exec(e))!==null;){const s=i[1],r=i[2],o=i[3].replace(/var\s/g,"");e=e.replace(i[0],`fn ${s}(${o}) -> ${r}`)}return e}_babylonSLtoWGSL(e){return e=this._convertVariableDeclarationToWGSL("void","voidnull",e),e=this._convertVariableDeclarationToWGSL("bool","bool",e),e=this._convertVariableDeclarationToWGSL("int","i32",e),e=this._convertVariableDeclarationToWGSL("uint","u32",e),e=this._convertVariableDeclarationToWGSL("float","f32",e),e=this._convertVariableDeclarationToWGSL("vec2","vec2f",e),e=this._convertVariableDeclarationToWGSL("vec3","vec3f",e),e=this._convertVariableDeclarationToWGSL("vec4","vec4f",e),e=this._convertVariableDeclarationToWGSL("mat2","mat2x2f",e),e=this._convertVariableDeclarationToWGSL("mat3","mat3x3f",e),e=this._convertVariableDeclarationToWGSL("mat4","mat4x4f",e),e=this._convertVariableConstructorsToWGSL("float","f32",e),e=this._convertVariableConstructorsToWGSL("vec2","vec2f",e),e=this._convertVariableConstructorsToWGSL("vec3","vec3f",e),e=this._convertVariableConstructorsToWGSL("vec4","vec4f",e),e=this._convertVariableConstructorsToWGSL("mat2","mat2x2f",e),e=this._convertVariableConstructorsToWGSL("mat3","mat3x3f",e),e=this._convertVariableConstructorsToWGSL("mat4","mat4x4f",e),e=this._convertTernaryOperandsToWGSL(e),e=this._convertModOperatorsToWGSL(e),e=this._convertConstToWGSL(e),e=this._convertInnerFunctionsToWGSL(e),e=this._convertOutParametersToWGSL(e),e=e.replace(/\[\*\]/g,"*"),e=this._convertFunctionsToWGSL(e),e=e.replace(/\s->\svoidnull/g,""),e=e.replace(/dFdx/g,"dpdx"),e=e.replace(/dFdy/g,"dpdy"),e}_convertTernaryOperandsToGLSL(e){return e.replace(new RegExp("\\[(.+?)\\?(.+?):(.+)\\]","g"),(t,i,s,r)=>`${i} ? ${s} : ${r}`)}_babylonSLtoGLSL(e){return e=e.replace(/\[\*\]/g,""),e=this._convertTernaryOperandsToGLSL(e),e}}class SFe{constructor(){this.temps=[],this.varyings=[],this.varyingDeclaration="",this.varyingDeclarationFragment="",this.varyingInitializationsFragment="",this.inputBlocks=[],this.textureBlocks=[],this.bindableBlocks=[],this.forcedBindableBlocks=[],this.blocksWithFallbacks=[],this.blocksWithDefines=[],this.repeatableContentBlocks=[],this.dynamicUniformBlocks=[],this.blockingBlocks=[],this.animatedInputs=[],this.variableNames={},this.defineNames={},this.hints={needWorldViewMatrix:!1,needWorldViewProjectionMatrix:!1,needAlphaBlending:!1,needAlphaTesting:!1},this.checks={emitVertex:!1,emitFragment:!1,notConnectedNonOptionalInputs:new Array},this.allowEmptyVertexProgram=!1,this.variableNames.position=0,this.variableNames.normal=0,this.variableNames.tangent=0,this.variableNames.uv=0,this.variableNames.uv2=0,this.variableNames.uv3=0,this.variableNames.uv4=0,this.variableNames.uv5=0,this.variableNames.uv6=0,this.variableNames.color=0,this.variableNames.matricesIndices=0,this.variableNames.matricesWeights=0,this.variableNames.matricesIndicesExtra=0,this.variableNames.matricesWeightsExtra=0,this.variableNames.diffuseBase=0,this.variableNames.specularBase=0,this.variableNames.worldPos=0,this.variableNames.shadow=0,this.variableNames.view=0,this.variableNames.vTBN=0,this.defineNames.MAINUV0=0,this.defineNames.MAINUV1=0,this.defineNames.MAINUV2=0,this.defineNames.MAINUV3=0,this.defineNames.MAINUV4=0,this.defineNames.MAINUV5=0,this.defineNames.MAINUV6=0,this.defineNames.MAINUV7=0}emitErrors(e=null){let t="";!this.checks.emitVertex&&!this.allowEmptyVertexProgram&&(t+=`NodeMaterial does not have a vertex output. You need to at least add a block that generates a position value.
`),this.checks.emitFragment||(t+=`NodeMaterial does not have a fragment output. You need to at least add a block that generates a color value.
`);for(const i of this.checks.notConnectedNonOptionalInputs)t+=`input ${i.name} from block ${i.ownerBlock.name}[${i.ownerBlock.getClassName()}] is not connected and is not optional.
`;return t?(e&&e.notifyObservers(t),de.Error(`Build of NodeMaterial failed:
`+t),!1):!0}}var Bte;(function(a){a[a.Compatible=0]="Compatible",a[a.TypeIncompatible=1]="TypeIncompatible",a[a.TargetIncompatible=2]="TargetIncompatible",a[a.HierarchyIssue=3]="HierarchyIssue"})(Bte||(Bte={}));var zte;(function(a){a[a.Input=0]="Input",a[a.Output=1]="Output"})(zte||(zte={}));class OL{static AreEquivalentTypes(e,t){switch(e){case $.Vector3:{if(t===$.Color3)return!0;break}case $.Vector4:{if(t===$.Color4)return!0;break}case $.Color3:{if(t===$.Vector3)return!0;break}case $.Color4:{if(t===$.Vector4)return!0;break}}return!1}get _connectedPoint(){return this._connectedPointBackingField}set _connectedPoint(e){var t;this._connectedPointBackingField!==e&&((t=this._connectedPointTypeChangedObserver)==null||t.remove(),this._updateTypeDependentState(()=>this._connectedPointBackingField=e),this._connectedPointBackingField&&(this._connectedPointTypeChangedObserver=this._connectedPointBackingField.onTypeChangedObservable.add(()=>{this._notifyTypeChanged()})))}get _typeConnectionSource(){return this._typeConnectionSourceBackingField}set _typeConnectionSource(e){var t;this._typeConnectionSourceBackingField!==e&&((t=this._typeConnectionSourceTypeChangedObserver)==null||t.remove(),this._updateTypeDependentState(()=>this._typeConnectionSourceBackingField=e),this._typeConnectionSourceBackingField&&(this._typeConnectionSourceTypeChangedObserver=this._typeConnectionSourceBackingField.onTypeChangedObservable.add(()=>{this._notifyTypeChanged()})))}get _defaultConnectionPointType(){return this._defaultConnectionPointTypeBackingField}set _defaultConnectionPointType(e){this._updateTypeDependentState(()=>this._defaultConnectionPointTypeBackingField=e)}get _linkedConnectionSource(){return this._linkedConnectionSourceBackingField}set _linkedConnectionSource(e){var t;this._linkedConnectionSourceBackingField!==e&&((t=this._linkedConnectionSourceTypeChangedObserver)==null||t.remove(),this._updateTypeDependentState(()=>this._linkedConnectionSourceBackingField=e),this._isMainLinkSource=!1,this._linkedConnectionSourceBackingField&&(this._linkedConnectionSourceTypeChangedObserver=this._linkedConnectionSourceBackingField.onTypeChangedObservable.add(()=>{this._notifyTypeChanged()})))}get direction(){return this._direction}get declarationVariableName(){return this._ownerBlock.isInput?this._ownerBlock.declarationVariableName:(!this._enforceAssociatedVariableName||!this._associatedVariableName)&&this._connectedPoint?this._connectedPoint.declarationVariableName:this._associatedVariableName}get associatedVariableName(){return this._ownerBlock.isInput?this._ownerBlock.associatedVariableName:(!this._enforceAssociatedVariableName||!this._associatedVariableName)&&this._connectedPoint?this._connectedPoint.associatedVariableName:this._associatedVariableName}set associatedVariableName(e){this._associatedVariableName=e}get innerType(){return this._linkedConnectionSource&&!this._isMainLinkSource&&this._linkedConnectionSource.isConnected?this.type:this._type}get type(){if(this._type===$.AutoDetect){if(this._ownerBlock.isInput)return this._ownerBlock.type;if(this._connectedPoint)return this._connectedPoint.type;if(this._linkedConnectionSource){if(this._linkedConnectionSource.isConnected)return this._linkedConnectionSource.connectedPoint._redirectedSource&&this._linkedConnectionSource.connectedPoint._redirectedSource.isConnected?this._linkedConnectionSource.connectedPoint._redirectedSource.type:this._linkedConnectionSource.type;if(this._linkedConnectionSource._defaultConnectionPointType)return this._linkedConnectionSource._defaultConnectionPointType}if(this._defaultConnectionPointType)return this._defaultConnectionPointType}if(this._type===$.BasedOnInput){if(this._typeConnectionSource)return!this._typeConnectionSource.isConnected&&this._defaultConnectionPointType?this._defaultConnectionPointType:this._typeConnectionSource.type;if(this._defaultConnectionPointType)return this._defaultConnectionPointType}return this._type}set type(e){this._updateTypeDependentState(()=>this._type=e)}get target(){return!this._prioritizeVertex||!this._ownerBlock?this._target:this._target!==Te.VertexAndFragment?this._target:this._ownerBlock.target===Te.Fragment?Te.Fragment:Te.Vertex}set target(e){this._target=e}get isConnected(){return this.connectedPoint!==null||this.hasEndpoints}get isConnectedToInputBlock(){return this.connectedPoint!==null&&this.connectedPoint.ownerBlock.isInput}get connectInputBlock(){return this.isConnectedToInputBlock?this.connectedPoint.ownerBlock:null}get connectedPoint(){return this._connectedPoint}get ownerBlock(){return this._ownerBlock}get sourceBlock(){return this._connectedPoint?this._connectedPoint.ownerBlock:null}get connectedBlocks(){return this._endpoints.length===0?[]:this._endpoints.map(e=>e.ownerBlock)}get endpoints(){return this._endpoints}get hasEndpoints(){return this._endpoints&&this._endpoints.length>0}get isDirectlyConnectedToVertexOutput(){if(!this.hasEndpoints)return!1;for(const e of this._endpoints)if(e.ownerBlock.target===Te.Vertex||(e.ownerBlock.target===Te.Neutral||e.ownerBlock.target===Te.VertexAndFragment)&&e.ownerBlock.outputs.some(t=>t.isDirectlyConnectedToVertexOutput))return!0;return!1}get isConnectedInVertexShader(){if(this.target===Te.Vertex)return!0;if(!this.hasEndpoints)return!1;for(const e of this._endpoints)if(e.ownerBlock.target===Te.Vertex||e.target===Te.Vertex||(e.ownerBlock.target===Te.Neutral||e.ownerBlock.target===Te.VertexAndFragment)&&e.ownerBlock.outputs.some(t=>t.isConnectedInVertexShader))return!0;return!1}get isConnectedInFragmentShader(){if(this.target===Te.Fragment)return!0;if(!this.hasEndpoints)return!1;for(const e of this._endpoints)if(e.ownerBlock.target===Te.Fragment||(e.ownerBlock.target===Te.Neutral||e.ownerBlock.target===Te.VertexAndFragment)&&e.ownerBlock.isConnectedInFragmentShader())return!0;return!1}createCustomInputBlock(){return null}constructor(e,t,i){this._preventBubbleUp=!1,this._connectedPointBackingField=null,this._endpoints=new Array,this._redirectedSource=null,this._typeConnectionSourceBackingField=null,this._defaultConnectionPointTypeBackingField=null,this._isMainLinkSource=!1,this._linkedConnectionSourceBackingField=null,this._acceptedConnectionPointType=null,this._type=$.Float,this._enforceAssociatedVariableName=!1,this._forPostBuild=!1,this.needDualDirectionValidation=!1,this.acceptedConnectionPointTypes=[],this.excludedConnectionPointTypes=[],this.onConnectionObservable=new xe,this.onDisconnectionObservable=new xe,this.onTypeChangedObservable=new xe,this._isTypeChangeObservableNotifying=!1,this.isExposedOnFrame=!1,this.exposedPortPosition=-1,this._prioritizeVertex=!1,this._target=Te.VertexAndFragment,this._ownerBlock=t,this.name=e,this._direction=i}getClassName(){return"NodeMaterialConnectionPoint"}canConnectTo(e){return this.checkCompatibilityState(e)===0}checkCompatibilityState(e){const t=this._ownerBlock,i=e.ownerBlock;if(t.target===Te.Fragment){if(i.target===Te.Vertex)return 2;for(const n of i.outputs)if(n.ownerBlock.target!=Te.Neutral&&n.isConnectedInVertexShader)return 2}if(this.type!==e.type&&e.innerType!==$.AutoDetect)return OL.AreEquivalentTypes(this.type,e.type)||e.acceptedConnectionPointTypes&&e.acceptedConnectionPointTypes.indexOf(this.type)!==-1||e._acceptedConnectionPointType&&OL.AreEquivalentTypes(e._acceptedConnectionPointType.type,this.type)?0:1;if(e.excludedConnectionPointTypes&&e.excludedConnectionPointTypes.indexOf(this.type)!==-1)return 1;let s=i,r=t;return this.direction===0&&(s=t,r=i),s.isAnAncestorOf(r)?3:0}connectTo(e,t=!1){if(!t&&!this.canConnectTo(e))throw"Cannot connect these two connectors.";return this._endpoints.push(e),e._connectedPoint=this,this._enforceAssociatedVariableName=!1,this.onConnectionObservable.notifyObservers(e),e.onConnectionObservable.notifyObservers(this),this}disconnectFrom(e){const t=this._endpoints.indexOf(e);return t===-1?this:(this._endpoints.splice(t,1),e._connectedPoint=null,this._enforceAssociatedVariableName=!1,e._enforceAssociatedVariableName=!1,this.onDisconnectionObservable.notifyObservers(e),e.onDisconnectionObservable.notifyObservers(this),this)}addExcludedConnectionPointFromAllowedTypes(e){let t=1;for(;t<$.All;)e&t||this.excludedConnectionPointTypes.push(t),t=t<<1}serialize(e=!0){const t={};return t.name=this.name,this.displayName&&(t.displayName=this.displayName),e&&this.connectedPoint&&(t.inputName=this.name,t.targetBlockId=this.connectedPoint.ownerBlock.uniqueId,t.targetConnectionName=this.connectedPoint.name,t.isExposedOnFrame=!0,t.exposedPortPosition=this.exposedPortPosition),(this.isExposedOnFrame||this.exposedPortPosition>=0)&&(t.isExposedOnFrame=!0,t.exposedPortPosition=this.exposedPortPosition),t}dispose(){this.onConnectionObservable.clear(),this.onDisconnectionObservable.clear(),this.onTypeChangedObservable.clear(),this._connectedPoint=null,this._typeConnectionSource=null,this._linkedConnectionSource=null}_updateTypeDependentState(e){const t=this.type;e(),this.type!==t&&this._notifyTypeChanged()}_notifyTypeChanged(){this._isTypeChangeObservableNotifying||(this._isTypeChangeObservableNotifying=!0,this.onTypeChangedObservable.notifyObservers(this.type),this._isTypeChangeObservableNotifying=!1)}}class Di{get _isFinalOutputAndActive(){return this._isFinalOutput}get _hasPrecedence(){return!1}get name(){return this._name}get codeIsReady(){return this._codeIsReady}set name(e){this.validateBlockName(e)&&(this._name=e)}get isUnique(){return this._isUnique}get isFinalMerger(){return this._isFinalMerger}get isInput(){return this._isInput}get isTeleportOut(){return this._isTeleportOut}get isTeleportIn(){return this._isTeleportIn}get isLoop(){return this._isLoop}get buildId(){return this._buildId}set buildId(e){this._buildId=e}get target(){return this._target}set target(e){this._target&e||(this._target=e)}get inputs(){return this._inputs}get outputs(){return this._outputs}getInputByName(e){const t=this._inputs.filter(i=>i.name===e);return t.length?t[0]:null}getOutputByName(e){const t=this._outputs.filter(i=>i.name===e);return t.length?t[0]:null}constructor(e,t=Te.Vertex,i=!1,s=!1){switch(this._isFinalMerger=!1,this._isInput=!1,this._isLoop=!1,this._isTeleportOut=!1,this._isTeleportIn=!1,this._name="",this._isUnique=!1,this._codeIsReady=!0,this._isFinalOutput=!1,this.onCodeIsReadyObservable=new xe,this.inputsAreExclusive=!1,this._codeVariableName="",this._inputs=new Array,this._outputs=new Array,this.comments="",this.visibleInInspector=!1,this.visibleOnFrame=!1,this._target=t,this._originalTargetIsNeutral=t===Te.Neutral,this._isFinalMerger=i,this._isFinalOutput=s,this.getClassName()){case"InputBlock":this._isInput=!0;break;case"NodeMaterialTeleportOutBlock":this._isTeleportOut=!0;break;case"NodeMaterialTeleportInBlock":this._isTeleportIn=!0;break;case"LoopBlock":this._isLoop=!0;break}this._name=e,this.uniqueId=gP.UniqueId}_setInitialTarget(e){this._target=e,this._originalTargetIsNeutral=e===Te.Neutral}initialize(e){}bind(e,t,i,s){}_writeVariable(e){return e.connectedPoint?`${e.associatedVariableName}`:"0."}_writeFloat(e){let t=e.toString();return t.indexOf(".")===-1&&(t+=".0"),`${t}`}getClassName(){return"NodeMaterialBlock"}isConnectedInFragmentShader(){return this.outputs.some(e=>e.isConnectedInFragmentShader)}registerInput(e,t,i=!1,s,r){return r=r??new OL(e,this,0),r.type=t,r.isOptional=i,s&&(r.target=s),this._inputs.push(r),this}registerOutput(e,t,i,s){return s=s??new OL(e,this,1),s.type=t,i&&(s.target=i),this._outputs.push(s),this}getFirstAvailableInput(e=null){for(const t of this._inputs)if(!t.connectedPoint&&(!e||e.type===t.type||t.type===$.AutoDetect||t.acceptedConnectionPointTypes.indexOf(e.type)!==-1))return t;return null}getFirstAvailableOutput(e=null){for(const t of this._outputs)if(!e||!e.target||e.target===Te.Neutral||e.target&t.target)return t;return null}getSiblingOutput(e){const t=this._outputs.indexOf(e);return t===-1||t>=this._outputs.length?null:this._outputs[t+1]}isAnAncestorOf(e){for(const t of this._outputs)if(t.hasEndpoints){for(const i of t.endpoints)if(i.ownerBlock===e||i.ownerBlock.isAnAncestorOf(e))return!0}return!1}connectTo(e,t){if(this._outputs.length===0)return;let i=t&&t.output?this.getOutputByName(t.output):this.getFirstAvailableOutput(e),s=!0;for(;s;){const r=t&&t.input?e.getInputByName(t.input):e.getFirstAvailableInput(i);if(i&&r&&i.canConnectTo(r))i.connectTo(r),s=!1;else if(i)i=this.getSiblingOutput(i);else throw"Unable to find a compatible match"}return this}_buildBlock(e){}_postBuildBlock(e){}updateUniformsAndSamples(e,t,i,s){}provideFallbacks(e,t){}initializeDefines(e,t,i,s=!1){}prepareDefines(e,t,i,s=!1,r){}autoConfigure(e,t=()=>!0){}replaceRepeatableContent(e,t,i,s){}get willBeGeneratedIntoVertexShaderFromFragmentShader(){return this.isInput||this.isFinalMerger||this._outputs.some(e=>e.isDirectlyConnectedToVertexOutput)||this.target===Te.Vertex?!1:!!((this.target===Te.VertexAndFragment||this.target===Te.Neutral)&&this._outputs.some(e=>e.isConnectedInVertexShader))}isReady(e,t,i,s=!1){return!0}_linkConnectionTypes(e,t,i=!1){i?this._inputs[t]._acceptedConnectionPointType=this._inputs[e]:(this._inputs[e]._linkedConnectionSource=this._inputs[t],this._inputs[e]._isMainLinkSource=!0),this._inputs[t]._linkedConnectionSource=this._inputs[e]}_processBuild(e,t,i,s){e.build(t,s);const r=t._vertexState!=null,n=e._buildTarget===Te.Vertex&&e.target!==Te.VertexAndFragment;if(r&&(!(e.target&e._buildTarget)||!(e.target&i.target)||this.target!==Te.VertexAndFragment&&n)&&(!e.isInput&&t.target!==e._buildTarget||e.isInput&&e.isAttribute&&!e._noContextSwitch)){const o=i.connectedPoint;if(t._vertexState._emitVaryingFromString("v_"+o.declarationVariableName,o.type)){const c=t.shaderLanguage===1?"vertexOutputs.":"";t.shaderLanguage===1&&o.type===$.Matrix?(t._vertexState.compilationString+=`${c}${"v_"+o.declarationVariableName}_r0 = ${o.associatedVariableName}[0];
`,t._vertexState.compilationString+=`${c}${"v_"+o.declarationVariableName}_r1 = ${o.associatedVariableName}[1];
`,t._vertexState.compilationString+=`${c}${"v_"+o.declarationVariableName}_r2 = ${o.associatedVariableName}[2];
`,t._vertexState.compilationString+=`${c}${"v_"+o.declarationVariableName}_r3 = ${o.associatedVariableName}[3];
`):t._vertexState.compilationString+=`${c}${"v_"+o.declarationVariableName} = ${o.associatedVariableName};
`}const l=t.shaderLanguage===1&&o.type!==$.Matrix?"fragmentInputs.":"";i.associatedVariableName=l+"v_"+o.declarationVariableName,i._enforceAssociatedVariableName=!0}}validateBlockName(e){const t=["position","normal","tangent","particle_positionw","uv","uv2","uv3","uv4","uv5","uv6","position2d","particle_uv","matricesIndices","matricesWeights","world0","world1","world2","world3","particle_color","particle_texturemask"];for(const i of t)if(e===i)return!1;return!0}_customBuildStep(e,t){}build(e,t){if(this._buildId===e.sharedData.buildId)return!0;if(!this.isInput)for(const i of this._outputs)i.associatedVariableName||(i.associatedVariableName=e._getFreeVariableName(i.name));for(const i of this._inputs){if(!i.connectedPoint){i.isOptional||e.sharedData.checks.notConnectedNonOptionalInputs.push(i);continue}if(this.target!==Te.Neutral&&(!(i.target&this.target)||!(i.target&e.target)))continue;const s=i.connectedPoint.ownerBlock;s&&s!==this&&this._processBuild(s,e,i,t)}if(this._customBuildStep(e,t),this._buildId===e.sharedData.buildId)return!0;if(e.sharedData.verbose&&de.Log(`${e.target===Te.Vertex?"Vertex shader":"Fragment shader"}: Building ${this.name} [${this.getClassName()}]`),this.isFinalMerger)switch(e.target){case Te.Vertex:e.sharedData.checks.emitVertex=!0;break;case Te.Fragment:e.sharedData.checks.emitFragment=!0;break}!this.isInput&&e.sharedData.emitComments&&(e.compilationString+=`
//${this.name}
`),this._buildBlock(e),this._buildId=e.sharedData.buildId,this._buildTarget=e.target;for(const i of this._outputs)if(!i._forPostBuild&&i.target&e.target)for(const s of i.endpoints){const r=s.ownerBlock;r&&(r.target&e.target&&t.indexOf(r)!==-1||e._terminalBlocks.has(r))&&this._processBuild(r,e,s,t)}this._postBuildBlock(e);for(const i of this._outputs)if(i._forPostBuild&&i.target&e.target)for(const s of i.endpoints){const r=s.ownerBlock;r&&r.target&e.target&&t.indexOf(r)!==-1&&this._processBuild(r,e,s,t)}return!1}_inputRename(e){return e}_outputRename(e){return e}_dumpPropertiesCode(){const e=this._codeVariableName;return`${e}.visibleInInspector = ${this.visibleInInspector};
${e}.visibleOnFrame = ${this.visibleOnFrame};
${e}.target = ${this.target};
`}_dumpCode(e,t){t.push(this);const i=this.name.replace(/[^A-Za-z_]+/g,"");if(this._codeVariableName=i||`${this.getClassName()}_${this.uniqueId}`,e.indexOf(this._codeVariableName)!==-1){let r=0;do r++,this._codeVariableName=i+r;while(e.indexOf(this._codeVariableName)!==-1)}e.push(this._codeVariableName);let s=`
// ${this.getClassName()}
`;this.comments&&(s+=`// ${this.comments}
`),s+=`var ${this._codeVariableName} = new BABYLON.${this.getClassName()}("${this.name}");
`,s+=this._dumpPropertiesCode();for(const r of this.inputs){if(!r.isConnected)continue;const o=r.connectedPoint.ownerBlock;t.indexOf(o)===-1&&(s+=o._dumpCode(e,t))}for(const r of this.outputs)if(r.hasEndpoints)for(const n of r.endpoints){const o=n.ownerBlock;o&&t.indexOf(o)===-1&&(s+=o._dumpCode(e,t))}return s}_dumpCodeForOutputConnections(e){let t="";if(e.indexOf(this)!==-1)return t;e.push(this);for(const i of this.inputs){if(!i.isConnected)continue;const s=i.connectedPoint,r=s.ownerBlock;t+=r._dumpCodeForOutputConnections(e),t+=`${r._codeVariableName}.${r._outputRename(s.name)}.connectTo(${this._codeVariableName}.${this._inputRename(i.name)});
`}return t}clone(e,t=""){const i=this.serialize(),s=ea(i.customType);if(s){const r=new s;return r._deserialize(i,e,t),r}return null}serialize(){const e={};e.customType="BABYLON."+this.getClassName(),e.id=this.uniqueId,e.name=this.name,e.comments=this.comments,e.visibleInInspector=this.visibleInInspector,e.visibleOnFrame=this.visibleOnFrame,e.target=this.target,e.inputs=[],e.outputs=[];for(const t of this.inputs)e.inputs.push(t.serialize());for(const t of this.outputs)e.outputs.push(t.serialize(!1));return e}_deserialize(e,t,i,s){this.name=e.name,this.comments=e.comments,this.visibleInInspector=!!e.visibleInInspector,this.visibleOnFrame=!!e.visibleOnFrame,this._target=e.target??this.target,this._deserializePortDisplayNamesAndExposedOnFrame(e)}_deserializePortDisplayNamesAndExposedOnFrame(e){const t=e.inputs,i=e.outputs;t&&t.forEach((s,r)=>{s.displayName&&(this.inputs[r].displayName=s.displayName),s.isExposedOnFrame&&(this.inputs[r].isExposedOnFrame=s.isExposedOnFrame,this.inputs[r].exposedPortPosition=s.exposedPortPosition)}),i&&i.forEach((s,r)=>{s.displayName&&(this.outputs[r].displayName=s.displayName),s.isExposedOnFrame&&(this.outputs[r].isExposedOnFrame=s.isExposedOnFrame,this.outputs[r].exposedPortPosition=s.exposedPortPosition)})}dispose(){this.onCodeIsReadyObservable.clear();for(const e of this.inputs)e.dispose();for(const e of this.outputs)e.dispose()}}class cO extends Di{get transformAsDirection(){return this.complementW===0}set transformAsDirection(e){this.complementW=e?0:1}constructor(e){super(e,Te.Neutral),this.complementW=1,this.complementZ=0,this.target=Te.Vertex,this.registerInput("vector",$.AutoDetect),this.registerInput("transform",$.Matrix),this.registerOutput("output",$.Vector4),this.registerOutput("xyz",$.Vector3),this._inputs[0].onConnectionObservable.add(t=>{if(t.ownerBlock.isInput){const i=t.ownerBlock;(i.name==="normal"||i.name==="tangent")&&(this.complementW=0)}})}getClassName(){return"TransformBlock"}get vector(){return this._inputs[0]}get output(){return this._outputs[0]}get xyz(){return this._outputs[1]}get transform(){return this._inputs[1]}_buildBlock(e){super._buildBlock(e);const t=this.vector,i=this.transform,s=e._getShaderType($.Vector4),r=e._getShaderType($.Vector3);if(t.connectedPoint){if(this.complementW===0||this.transformAsDirection){const n=`//${this.name}`;e._emitFunctionFromInclude("helperFunctions",n),e.sharedData.blocksWithDefines.push(this);const o=e._getFreeVariableName(`${i.associatedVariableName}_NUS`);switch(e.shaderLanguage===1?e.compilationString+=`var ${o}: mat3x3f = mat3x3f(${i.associatedVariableName}[0].xyz, ${i.associatedVariableName}[1].xyz, ${i.associatedVariableName}[2].xyz);
`:e.compilationString+=`mat3 ${o} = mat3(${i.associatedVariableName});
`,e.compilationString+=`#ifdef NONUNIFORMSCALING
`,e.compilationString+=`${o} = transposeMat3(inverseMat3(${o}));
`,e.compilationString+=`#endif
`,t.connectedPoint.type){case $.Vector2:e.compilationString+=e._declareOutput(this.output)+` = ${s}(${o} * ${r}(${t.associatedVariableName}, ${this._writeFloat(this.complementZ)}), ${this._writeFloat(this.complementW)});
`;break;case $.Vector3:case $.Color3:e.compilationString+=e._declareOutput(this.output)+` = ${s}(${o} * ${t.associatedVariableName}, ${this._writeFloat(this.complementW)});
`;break;default:e.compilationString+=e._declareOutput(this.output)+` = ${s}(${o} * ${t.associatedVariableName}.xyz, ${this._writeFloat(this.complementW)});
`;break}}else{const n=i.associatedVariableName;switch(t.connectedPoint.type){case $.Vector2:e.compilationString+=e._declareOutput(this.output)+` = ${n} * ${s}(${t.associatedVariableName}, ${this._writeFloat(this.complementZ)}, ${this._writeFloat(this.complementW)});
`;break;case $.Vector3:case $.Color3:e.compilationString+=e._declareOutput(this.output)+` = ${n} * ${s}(${t.associatedVariableName}, ${this._writeFloat(this.complementW)});
`;break;default:e.compilationString+=e._declareOutput(this.output)+` = ${n} * ${t.associatedVariableName};
`;break}}this.xyz.hasEndpoints&&(e.compilationString+=e._declareOutput(this.xyz)+` = ${this.output.associatedVariableName}.xyz;
`)}return this}prepareDefines(e,t,i){e.nonUniformScaling&&i.setValue("NONUNIFORMSCALING",!0)}serialize(){const e=super.serialize();return e.complementZ=this.complementZ,e.complementW=this.complementW,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.complementZ=e.complementZ!==void 0?e.complementZ:0,this.complementW=e.complementW!==void 0?e.complementW:1}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.complementZ = ${this.complementZ};
`;return e+=`${this._codeVariableName}.complementW = ${this.complementW};
`,e}}F([lt("Transform as direction",0,void 0,{embedded:!0})],cO.prototype,"transformAsDirection",null),ve("BABYLON.TransformBlock",cO);class uO extends Di{constructor(e){super(e,Te.Vertex,!0),this.registerInput("vector",$.Vector4)}getClassName(){return"VertexOutputBlock"}get vector(){return this._inputs[0]}_isLogarithmicDepthEnabled(e,t){if(t)return!0;for(const i of e)if(i.useLogarithmicDepth)return!0;return!1}_buildBlock(e){super._buildBlock(e);const t=this.vector,i=e.shaderLanguage===1;if(e.shaderLanguage===1?e.compilationString+=`vertexOutputs.position = ${t.associatedVariableName};
`:e.compilationString+=`gl_Position = ${t.associatedVariableName};
`,this._isLogarithmicDepthEnabled(e.sharedData.fragmentOutputNodes,e.sharedData.nodeMaterial.useLogarithmicDepth)){e._emitUniformFromString("logarithmicDepthConstant",$.Float),e._emitVaryingFromString("vFragmentDepth",$.Float);const s=i?"vertexOutputs.vFragmentDepth":"vFragmentDepth",r=i?"uniforms.":"",n=i?"vertexOutputs.position":"gl_Position";e.compilationString+=`${s} = 1.0 + ${n}.w;
`,e.compilationString+=`${n}.z = log2(max(0.000001, ${s})) * ${r}logarithmicDepthConstant;
`}return this}}ve("BABYLON.VertexOutputBlock",uO);var o5;(function(a){a[a.NoColorSpace=0]="NoColorSpace",a[a.Gamma=1]="Gamma",a[a.Linear=2]="Linear"})(o5||(o5={}));class Wy extends Di{constructor(e){super(e,Te.Fragment,!0,!0),this.convertToGammaSpace=!1,this.convertToLinearSpace=!1,this.useLogarithmicDepth=!1,this.registerInput("rgba",$.Color4,!0),this.registerInput("rgb",$.Color3,!0),this.registerInput("a",$.Float,!0),this.registerInput("glow",$.Color3,!0),this.rgb.acceptedConnectionPointTypes.push($.Vector3),this.rgb.acceptedConnectionPointTypes.push($.Float),this.additionalColor.acceptedConnectionPointTypes.push($.Vector3),this.additionalColor.acceptedConnectionPointTypes.push($.Float)}get colorSpace(){return this.convertToGammaSpace?o5.Gamma:this.convertToLinearSpace?o5.Linear:o5.NoColorSpace}set colorSpace(e){this.convertToGammaSpace=e===o5.Gamma,this.convertToLinearSpace=e===o5.Linear}getClassName(){return"FragmentOutputBlock"}initialize(e){e._excludeVariableName("logarithmicDepthConstant"),e._excludeVariableName("vFragmentDepth")}get rgba(){return this._inputs[0]}get rgb(){return this._inputs[1]}get a(){return this._inputs[2]}get additionalColor(){return this._inputs[3]}prepareDefines(e,t,i){i.setValue(this._linearDefineName,this.convertToLinearSpace,!0),i.setValue(this._gammaDefineName,this.convertToGammaSpace,!0),i.setValue(this._additionalColorDefineName,this.additionalColor.connectedPoint&&t._useAdditionalColor,!0)}bind(e,t,i){(this.useLogarithmicDepth||t.useLogarithmicDepth)&&i&&ml(void 0,e,i.getScene())}_buildBlock(e){super._buildBlock(e);const t=this.rgba,i=this.rgb,s=this.a,r=this.additionalColor,n=e.shaderLanguage===1;e.sharedData.hints.needAlphaBlending=t.isConnected||s.isConnected,e.sharedData.blocksWithDefines.push(this),(this.useLogarithmicDepth||e.sharedData.nodeMaterial.useLogarithmicDepth)&&(e._emitUniformFromString("logarithmicDepthConstant",$.Float),e._emitVaryingFromString("vFragmentDepth",$.Float),e.sharedData.bindableBlocks.push(this)),r.connectedPoint&&(e._excludeVariableName("useAdditionalColor"),e._emitUniformFromString("useAdditionalColor",$.Float),this._additionalColorDefineName=e._getFreeDefineName("USEADDITIONALCOLOR")),this._linearDefineName=e._getFreeDefineName("CONVERTTOLINEAR"),this._gammaDefineName=e._getFreeDefineName("CONVERTTOGAMMA");const o=`//${this.name}`;e._emitFunctionFromInclude("helperFunctions",o);let l="gl_FragColor";e.shaderLanguage===1&&(e.compilationString+=`var fragmentOutputsColor : vec4<f32>;\r
`,l="fragmentOutputsColor");const c=e._getShaderType($.Vector4);if(r.connectedPoint){let u="1.0";s.connectedPoint&&(u=s.associatedVariableName),e.compilationString+=`#ifdef ${this._additionalColorDefineName}
`,r.connectedPoint.type===$.Float?e.compilationString+=`${l}  = ${c}(${r.associatedVariableName}, ${r.associatedVariableName}, ${r.associatedVariableName}, ${u});
`:e.compilationString+=`${l}  = ${c}(${r.associatedVariableName}, ${u});
`,e.compilationString+=`#else
`}if(t.connectedPoint)s.isConnected?e.compilationString+=`${l} = ${c}(${t.associatedVariableName}.rgb, ${s.associatedVariableName});
`:e.compilationString+=`${l}  = ${t.associatedVariableName};
`;else if(i.connectedPoint){let u="1.0";s.connectedPoint&&(u=s.associatedVariableName),i.connectedPoint.type===$.Float?e.compilationString+=`${l}  = ${c}(${i.associatedVariableName}, ${i.associatedVariableName}, ${i.associatedVariableName}, ${u});
`:e.compilationString+=`${l}  = ${c}(${i.associatedVariableName}, ${u});
`}else e.sharedData.checks.notConnectedNonOptionalInputs.push(t);if(r.connectedPoint&&(e.compilationString+=`#endif
`),e.compilationString+=`#ifdef ${this._linearDefineName}
`,e.compilationString+=`${l}  = toLinearSpace(${l});
`,e.compilationString+=`#endif
`,e.compilationString+=`#ifdef ${this._gammaDefineName}
`,e.compilationString+=`${l}  = toGammaSpace(${l});
`,e.compilationString+=`#endif
`,e.shaderLanguage===1&&(e.compilationString+=`#if !defined(PREPASS)\r
`,e.compilationString+=`fragmentOutputs.color = fragmentOutputsColor;\r
`,e.compilationString+=`#endif\r
`),this.useLogarithmicDepth||e.sharedData.nodeMaterial.useLogarithmicDepth){const u=n?"input.vFragmentDepth":"vFragmentDepth",f=n?"uniforms.":"",p=n?"fragmentOutputs.fragDepth":"gl_FragDepthEXT";e.compilationString+=`${p} = log2(${u}) * ${f}logarithmicDepthConstant * 0.5;
`}return e.compilationString+=`#if defined(PREPASS)\r
`,e.compilationString+=`${n?"fragmentOutputs.fragData0":"gl_FragData[0]"} = ${l};\r
`,e.compilationString+=`#endif\r
`,this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return e+=`${this._codeVariableName}.convertToGammaSpace = ${this.convertToGammaSpace};
`,e+=`${this._codeVariableName}.convertToLinearSpace = ${this.convertToLinearSpace};
`,e+=`${this._codeVariableName}.useLogarithmicDepth = ${this.useLogarithmicDepth};
`,e}serialize(){const e=super.serialize();return e.convertToGammaSpace=this.convertToGammaSpace,e.convertToLinearSpace=this.convertToLinearSpace,e.useLogarithmicDepth=this.useLogarithmicDepth,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.convertToGammaSpace=!!e.convertToGammaSpace,this.convertToLinearSpace=!!e.convertToLinearSpace,this.useLogarithmicDepth=e.useLogarithmicDepth??!1}}F([lt("Use logarithmic depth",0,"PROPERTIES",{embedded:!0})],Wy.prototype,"useLogarithmicDepth",void 0),F([lt("Color space",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"No color space",value:o5.NoColorSpace},{label:"Gamma",value:o5.Gamma},{label:"Linear",value:o5.Linear}]})],Wy.prototype,"colorSpace",null),ve("BABYLON.FragmentOutputBlock",Wy);var Ds;(function(a){a[a.World=1]="World",a[a.View=2]="View",a[a.Projection=3]="Projection",a[a.ViewProjection=4]="ViewProjection",a[a.WorldView=5]="WorldView",a[a.WorldViewProjection=6]="WorldViewProjection",a[a.CameraPosition=7]="CameraPosition",a[a.FogColor=8]="FogColor",a[a.DeltaTime=9]="DeltaTime",a[a.CameraParameters=10]="CameraParameters",a[a.MaterialAlpha=11]="MaterialAlpha"})(Ds||(Ds={}));var pb;(function(a){a[a.None=0]="None",a[a.Time=1]="Time",a[a.RealTime=2]="RealTime",a[a.MouseInfo=3]="MouseInfo"})(pb||(pb={}));const yFe={position2d:"position",particle_uv:"vUV",particle_color:"vColor",particle_texturemask:"textureMask",particle_positionw:"vPositionW"},Fte={particle_uv:!0,particle_color:!0,particle_texturemask:!0,particle_positionw:!0},R3e={particle_texturemask:!0},D3e={normal:"NORMAL",tangent:"TANGENT",uv:"UV1",uv2:"UV2",uv3:"UV3",uv4:"UV4",uv5:"UV5",uv6:"UV6",uv7:"UV7",uv8:"UV8"};class ys extends Di{get type(){if(this._type===$.AutoDetect){if(this.isUniform&&this.value!=null){if(!isNaN(this.value))return this._type=$.Float,this._type;switch(this.value.getClassName()){case"Vector2":return this._type=$.Vector2,this._type;case"Vector3":return this._type=$.Vector3,this._type;case"Vector4":return this._type=$.Vector4,this._type;case"Color3":return this._type=$.Color3,this._type;case"Color4":return this._type=$.Color4,this._type;case"Matrix":return this._type=$.Matrix,this._type}}if(this.isAttribute)switch(this.name){case"splatIndex":return this._type=$.Float,this._type;case"position":case"normal":case"particle_positionw":case"splatPosition":return this._type=$.Vector3,this._type;case"uv":case"uv2":case"uv3":case"uv4":case"uv5":case"uv6":case"position2d":case"particle_uv":case"splatScale":return this._type=$.Vector2,this._type;case"matricesIndices":case"matricesWeights":case"matricesIndicesExtra":case"matricesWeightsExtra":case"world0":case"world1":case"world2":case"world3":case"tangent":return this._type=$.Vector4,this._type;case"color":case"instanceColor":case"particle_color":case"particle_texturemask":case"splatColor":return this._type=$.Color4,this._type}if(this.isSystemValue)switch(this._systemValue){case Ds.World:case Ds.WorldView:case Ds.WorldViewProjection:case Ds.View:case Ds.ViewProjection:case Ds.Projection:return this._type=$.Matrix,this._type;case Ds.CameraPosition:return this._type=$.Vector3,this._type;case Ds.FogColor:return this._type=$.Color3,this._type;case Ds.DeltaTime:case Ds.MaterialAlpha:return this._type=$.Float,this._type;case Ds.CameraParameters:return this._type=$.Vector4,this._type}}return this._type}constructor(e,t=Te.Vertex,i=$.AutoDetect){super(e,t,!1),this._mode=3,this._animationType=pb.None,this._prefix="",this.min=0,this.max=0,this.isBoolean=!1,this.matrixMode=0,this._systemValue=null,this.isConstant=!1,this.groupInInspector="",this.onValueChangedObservable=new xe,this.convertToGammaSpace=!1,this.convertToLinearSpace=!1,this._type=i,this.setDefaultValue(),this.registerOutput("output",i)}validateBlockName(e){return this.isAttribute?!0:super.validateBlockName(e)}get output(){return this._outputs[0]}setAsAttribute(e){return this._mode=1,e&&(this.name=e),this}setAsSystemValue(e){return this.systemValue=e,this}get value(){return this._storedValue}set value(e){this.type===$.Float&&(this.isBoolean?e=e?1:0:this.min!==this.max&&(e=Math.max(this.min,e),e=Math.min(this.max,e))),this._storedValue=e,this._mode=0,this.onValueChangedObservable.notifyObservers(this)}get valueCallback(){return this._valueCallback}set valueCallback(e){this._valueCallback=e,this._mode=0}get declarationVariableName(){return this._associatedVariableName}get associatedVariableName(){return this._prefix+this._associatedVariableName}set associatedVariableName(e){this._associatedVariableName=e}get animationType(){return this._animationType}set animationType(e){this._animationType=e}get isUndefined(){return this._mode===3}get isUniform(){return this._mode===0}set isUniform(e){this._mode=e?0:3,this.associatedVariableName=""}get isAttribute(){return this._mode===1}set isAttribute(e){this._mode=e?1:3,this.associatedVariableName=""}get isVarying(){return this._mode===2}set isVarying(e){this._mode=e?2:3,this.associatedVariableName=""}get isSystemValue(){return this._systemValue!=null}get systemValue(){return this._systemValue}set systemValue(e){this._mode=0,this.associatedVariableName="",this._systemValue=e}getClassName(){return"InputBlock"}animate(e){switch(this._animationType){case pb.Time:{this.type===$.Float&&(this.value+=e.getAnimationRatio()*.01);break}case pb.RealTime:{this.type===$.Float&&(this.value=(lr.Now-e.getEngine().startTime)/1e3);break}case pb.MouseInfo:{if(this.type===$.Vector4){const t=e._inputManager._originMouseEvent;if(t){const i=t.offsetX,s=t.offsetY,r=t.buttons&1?1:0,n=t.buttons&2?1:0;this.value=new Yt(i,s,r,n)}else this.value=new Yt(0,0,0,0)}break}}}_emitDefine(e){return e[0]==="!"?`#ifndef ${e.substring(1)}
`:`#ifdef ${e}
`}initialize(){this.associatedVariableName=""}setDefaultValue(){switch(this.type){case $.Float:this.value=0;break;case $.Vector2:this.value=Ue.Zero();break;case $.Vector3:this.value=P.Zero();break;case $.Vector4:this.value=Yt.Zero();break;case $.Color3:this.value=Pe.White();break;case $.Color4:this.value=new St(1,1,1,1);break;case $.Matrix:this.value=me.Identity();break}}_emitConstant(e){switch(this.type){case $.Float:return`${e._emitFloat(this.value)}`;case $.Vector2:return`vec2(${this.value.x}, ${this.value.y})`;case $.Vector3:return`vec3(${this.value.x}, ${this.value.y}, ${this.value.z})`;case $.Vector4:return`vec4(${this.value.x}, ${this.value.y}, ${this.value.z}, ${this.value.w})`;case $.Color3:return Sr.Color3[0].set(this.value.r,this.value.g,this.value.b),this.convertToGammaSpace&&Sr.Color3[0].toGammaSpaceToRef(Sr.Color3[0],e.sharedData.scene.getEngine().useExactSrgbConversions),this.convertToLinearSpace&&Sr.Color3[0].toLinearSpaceToRef(Sr.Color3[0],e.sharedData.scene.getEngine().useExactSrgbConversions),`vec3(${Sr.Color3[0].r}, ${Sr.Color3[0].g}, ${Sr.Color3[0].b})`;case $.Color4:return Sr.Color4[0].set(this.value.r,this.value.g,this.value.b,this.value.a),this.convertToGammaSpace&&Sr.Color4[0].toGammaSpaceToRef(Sr.Color4[0],e.sharedData.scene.getEngine().useExactSrgbConversions),this.convertToLinearSpace&&Sr.Color4[0].toLinearSpaceToRef(Sr.Color4[0],e.sharedData.scene.getEngine().useExactSrgbConversions),`vec4(${Sr.Color4[0].r}, ${Sr.Color4[0].g}, ${Sr.Color4[0].b}, ${Sr.Color4[0].a})`}return""}get _noContextSwitch(){return Fte[this.name]}_emit(e,t){if(this.isUniform){if(this._associatedVariableName||(this._associatedVariableName=e._getFreeVariableName("u_"+this.name)),this.isConstant){if(e.constants.indexOf(this.associatedVariableName)!==-1)return;e.constants.push(this.associatedVariableName),e._constantDeclaration+=e._declareOutput(this.output,!0)+` = ${this._emitConstant(e)};
`;return}if(e.uniforms.indexOf(this.associatedVariableName)!==-1)return;e.uniforms.push(this.associatedVariableName),t&&(e._uniformDeclaration+=this._emitDefine(t));const i=e._getShaderType(this.type);e.shaderLanguage===1?(e._uniformDeclaration+=`uniform ${this._associatedVariableName}: ${i};
`,this._prefix="uniforms."):e._uniformDeclaration+=`uniform ${i} ${this.associatedVariableName};
`,t&&(e._uniformDeclaration+=`#endif
`);const s=e.sharedData.hints;if(this._systemValue!==null&&this._systemValue!==void 0)switch(this._systemValue){case Ds.WorldView:s.needWorldViewMatrix=!0;break;case Ds.WorldViewProjection:s.needWorldViewProjectionMatrix=!0;break}else this._animationType!==pb.None&&e.sharedData.animatedInputs.push(this);return}if(this.isAttribute){if(this.associatedVariableName=yFe[this.name]??this.name,this.target===Te.Vertex&&e._vertexState){Fte[this.name]?R3e[this.name]?(e._emitUniformFromString(this.declarationVariableName,this.type,t),e.shaderLanguage===1&&(this._prefix="vertexInputs.")):e._emitVaryingFromString(this.declarationVariableName,this.type,t):this._emit(e._vertexState,t);return}const i=e.attributes.indexOf(this.declarationVariableName)!==-1;if(i||e.attributes.push(this.declarationVariableName),Fte[this.name])R3e[this.name]?(i||e._emitUniformFromString(this.declarationVariableName,this.type,t),e.shaderLanguage===1&&(this._prefix="uniforms.")):(i||e._emitVaryingFromString(this.declarationVariableName,this.type,t),e.shaderLanguage===1&&(this._prefix="fragmentInputs."));else{if(t&&!i&&(e._attributeDeclaration+=this._emitDefine(t)),e.shaderLanguage===1){if(!i){const s=D3e[this.name];s?(e._attributeDeclaration+=`#ifdef ${s}
`,e._attributeDeclaration+=`attribute ${this.declarationVariableName}: ${e._getShaderType(this.type)};
`,e._attributeDeclaration+=`#else
`,e._attributeDeclaration+=`var<private> ${this.declarationVariableName}: ${e._getShaderType(this.type)} = ${e._getShaderType(this.type)}(0.);
`,e._attributeDeclaration+=`#endif
`):e._attributeDeclaration+=`attribute ${this.declarationVariableName}: ${e._getShaderType(this.type)};
`}this._prefix="vertexInputs."}else if(!i){const s=D3e[this.name];s?(e._attributeDeclaration+=`#ifdef ${s}
`,e._attributeDeclaration+=`attribute ${e._getShaderType(this.type)} ${this.declarationVariableName};
`,e._attributeDeclaration+=`#else
`,e._attributeDeclaration+=`${e._getShaderType(this.type)} ${this.declarationVariableName} = ${e._getShaderType(this.type)}(0.);
`,e._attributeDeclaration+=`#endif
`):e._attributeDeclaration+=`attribute ${e._getShaderType(this.type)} ${this.declarationVariableName};
`}t&&!i&&(e._attributeDeclaration+=`#endif
`)}}}_transmitWorld(e,t,i,s){if(!this._systemValue)return;const r=this._associatedVariableName;switch(this._systemValue){case Ds.World:e.setMatrix(r,t);break;case Ds.WorldView:e.setMatrix(r,i);break;case Ds.WorldViewProjection:e.setMatrix(r,s);break}}_transmit(e,t,i){if(this.isAttribute)return;const s=this._associatedVariableName;if(this._systemValue){switch(this._systemValue){case Ds.World:case Ds.WorldView:case Ds.WorldViewProjection:return;case Ds.View:e.setMatrix(s,t.getViewMatrix());break;case Ds.Projection:e.setMatrix(s,t.getProjectionMatrix());break;case Ds.ViewProjection:e.setMatrix(s,t.getTransformMatrix());break;case Ds.CameraPosition:t.bindEyePosition(e,s,!0);break;case Ds.FogColor:e.setColor3(s,t.fogColor);break;case Ds.DeltaTime:e.setFloat(s,t.deltaTime/1e3);break;case Ds.CameraParameters:t.activeCamera&&e.setFloat4(s,t.getEngine().hasOriginBottomLeft?-1:1,t.activeCamera.minZ,t.activeCamera.maxZ,1/t.activeCamera.maxZ);break;case Ds.MaterialAlpha:e.setFloat(s,i.alpha);break}return}const r=this._valueCallback?this._valueCallback():this._storedValue;if(r!==null)switch(this.type){case $.Float:e.setFloat(s,r);break;case $.Int:e.setInt(s,r);break;case $.Color3:Sr.Color3[0].set(this.value.r,this.value.g,this.value.b),this.convertToGammaSpace&&Sr.Color3[0].toGammaSpaceToRef(Sr.Color3[0],t.getEngine().useExactSrgbConversions),this.convertToLinearSpace&&Sr.Color3[0].toLinearSpaceToRef(Sr.Color3[0],t.getEngine().useExactSrgbConversions),e.setColor3(s,Sr.Color3[0]);break;case $.Color4:Sr.Color4[0].set(this.value.r,this.value.g,this.value.b,this.value.a),this.convertToGammaSpace&&Sr.Color4[0].toGammaSpaceToRef(Sr.Color4[0],t.getEngine().useExactSrgbConversions),this.convertToLinearSpace&&Sr.Color4[0].toLinearSpaceToRef(Sr.Color4[0],t.getEngine().useExactSrgbConversions),e.setDirectColor4(s,Sr.Color4[0]);break;case $.Vector2:e.setVector2(s,r);break;case $.Vector3:e.setVector3(s,r);break;case $.Vector4:e.setVector4(s,r);break;case $.Matrix:e.setMatrix(s,r);break}}_buildBlock(e){super._buildBlock(e),(this.isUniform||this.isSystemValue)&&e.sharedData.inputBlocks.push(this),this._emit(e)}_dumpPropertiesCode(){const e=this._codeVariableName;if(this.isAttribute)return super._dumpPropertiesCode()+`${e}.setAsAttribute("${this.name}");
`;if(this.isSystemValue)return super._dumpPropertiesCode()+`${e}.setAsSystemValue(BABYLON.NodeMaterialSystemValues.${Ds[this._systemValue]});
`;if(this.isUniform){const t=[];let i="";switch(this.type){case $.Float:i=`${this.value}`;break;case $.Vector2:i=`new BABYLON.Vector2(${this.value.x}, ${this.value.y})`;break;case $.Vector3:i=`new BABYLON.Vector3(${this.value.x}, ${this.value.y}, ${this.value.z})`;break;case $.Vector4:i=`new BABYLON.Vector4(${this.value.x}, ${this.value.y}, ${this.value.z}, ${this.value.w})`;break;case $.Color3:i=`new BABYLON.Color3(${this.value.r}, ${this.value.g}, ${this.value.b})`,this.convertToGammaSpace&&(i+=".toGammaSpace()"),this.convertToLinearSpace&&(i+=".toLinearSpace()");break;case $.Color4:i=`new BABYLON.Color4(${this.value.r}, ${this.value.g}, ${this.value.b}, ${this.value.a})`,this.convertToGammaSpace&&(i+=".toGammaSpace()"),this.convertToLinearSpace&&(i+=".toLinearSpace()");break;case $.Matrix:i=`BABYLON.Matrix.FromArray([${this.value.m}])`;break}return t.push(`${e}.value = ${i}`),this.type===$.Float&&t.push(`${e}.min = ${this.min}`,`${e}.max = ${this.max}`,`${e}.isBoolean = ${this.isBoolean}`,`${e}.matrixMode = ${this.matrixMode}`,`${e}.animationType = BABYLON.AnimatedInputBlockTypes.${pb[this.animationType]}`),t.push(`${e}.isConstant = ${this.isConstant}`),t.push(""),super._dumpPropertiesCode()+t.join(`;
`)}return super._dumpPropertiesCode()}dispose(){this.onValueChangedObservable.clear(),super.dispose()}serialize(){const e=super.serialize();return e.type=this.type,e.mode=this._mode,e.systemValue=this._systemValue,e.animationType=this._animationType,e.min=this.min,e.max=this.max,e.isBoolean=this.isBoolean,e.matrixMode=this.matrixMode,e.isConstant=this.isConstant,e.groupInInspector=this.groupInInspector,e.convertToGammaSpace=this.convertToGammaSpace,e.convertToLinearSpace=this.convertToLinearSpace,this._storedValue!=null&&this._mode===0&&(this._storedValue.asArray?(e.valueType="BABYLON."+this._storedValue.getClassName(),e.value=this._storedValue.asArray()):(e.valueType="number",e.value=this._storedValue)),e}_deserialize(e,t,i){if(this._mode=e.mode,super._deserialize(e,t,i),this._type=e.type,this._systemValue=e.systemValue||e.wellKnownValue,this._animationType=e.animationType,this.min=e.min||0,this.max=e.max||0,this.isBoolean=!!e.isBoolean,this.matrixMode=e.matrixMode||0,this.isConstant=!!e.isConstant,this.groupInInspector=e.groupInInspector||"",this.convertToGammaSpace=!!e.convertToGammaSpace,this.convertToLinearSpace=!!e.convertToLinearSpace,e.name==="tangent"&&e.mode===1&&e.type===$.Vector3&&(this._type=$.Vector4),!!e.valueType)if(e.valueType==="number")this._storedValue=e.value;else{const s=ea(e.valueType);s&&(this._storedValue=s.FromArray(e.value))}}}ve("BABYLON.InputBlock",ys);class kte extends Di{constructor(e){super(e,Te.VertexAndFragment),this._samplerName="textureSampler",this.convertToGammaSpace=!1,this.convertToLinearSpace=!1,this._isUnique=!1,this.registerInput("uv",$.AutoDetect,!1,Te.VertexAndFragment),this.registerOutput("rgba",$.Color4,Te.Neutral),this.registerOutput("rgb",$.Color3,Te.Neutral),this.registerOutput("r",$.Float,Te.Neutral),this.registerOutput("g",$.Float,Te.Neutral),this.registerOutput("b",$.Float,Te.Neutral),this.registerOutput("a",$.Float,Te.Neutral),this._inputs[0].addExcludedConnectionPointFromAllowedTypes($.Vector2|$.Vector3|$.Vector4),this._inputs[0]._prioritizeVertex=!1}getClassName(){return"CurrentScreenBlock"}get uv(){return this._inputs[0]}get rgba(){return this._outputs[0]}get rgb(){return this._outputs[1]}get r(){return this._outputs[2]}get g(){return this._outputs[3]}get b(){return this._outputs[4]}get a(){return this._outputs[5]}initialize(e){e._excludeVariableName(this._samplerName)}get target(){return!this.uv.isConnected||this.uv.sourceBlock.isInput?Te.VertexAndFragment:Te.Fragment}prepareDefines(e,t,i){i.setValue(this._linearDefineName,this.convertToGammaSpace,!0),i.setValue(this._gammaDefineName,this.convertToLinearSpace,!0)}isReady(){return!(this.texture&&!this.texture.isReadyOrNotBlocking())}_injectVertexCode(e){const t=this.uv;if(t.connectedPoint.ownerBlock.isInput&&(t.connectedPoint.ownerBlock.isAttribute||e._emitUniformFromString(t.associatedVariableName,$.Vector2)),this._mainUVName="vMain"+t.associatedVariableName,e._emitVaryingFromString(this._mainUVName,$.Vector2),e.compilationString+=`${this._mainUVName} = ${t.associatedVariableName}.xy;
`,!!this._outputs.some(i=>i.isConnectedInVertexShader)){this._writeTextureRead(e,!0);for(const i of this._outputs)i.hasEndpoints&&this._writeOutput(e,i,i.name,!0)}}_writeTextureRead(e,t=!1){const i=this.uv;if(t){if(e.target===Te.Fragment)return;const r=e.shaderLanguage===0?`texture2D(${this._samplerName},`:`textureSampleLevel(${this._samplerName}, ${this._samplerName+"Sampler"},`,n=e.shaderLanguage===0?"":", 0";e.compilationString+=`${e._declareLocalVar(this._tempTextureRead,$.Vector4)} = ${r} ${i.associatedVariableName}${n});
`;return}const s=e.shaderLanguage===0?`texture2D(${this._samplerName},`:`textureSample(${this._samplerName}, ${this._samplerName+"Sampler"},`;if(this.uv.ownerBlock.target===Te.Fragment){e.compilationString+=`${e._declareLocalVar(this._tempTextureRead,$.Vector4)} = ${s} ${i.associatedVariableName});
`;return}e.compilationString+=`${e._declareLocalVar(this._tempTextureRead,$.Vector4)} = ${s} ${this._mainUVName});
`}_writeOutput(e,t,i,s=!1){if(s){if(e.target===Te.Fragment)return;e.compilationString+=`${e._declareOutput(t)} = ${this._tempTextureRead}.${i};
`;return}if(this.uv.ownerBlock.target===Te.Fragment){e.compilationString+=`${e._declareOutput(t)} = ${this._tempTextureRead}.${i};
`;return}e.compilationString+=`${e._declareOutput(t)} = ${this._tempTextureRead}.${i};
`,e.compilationString+=`#ifdef ${this._linearDefineName}
`,e.compilationString+=`${t.associatedVariableName} = toGammaSpace(${t.associatedVariableName});
`,e.compilationString+=`#endif
`,e.compilationString+=`#ifdef ${this._gammaDefineName}
`,e.compilationString+=`${t.associatedVariableName} = toLinearSpace(${t.associatedVariableName});
`,e.compilationString+=`#endif
`}_buildBlock(e){if(super._buildBlock(e),this._tempTextureRead=e._getFreeVariableName("tempTextureRead"),e.sharedData.blockingBlocks.indexOf(this)<0&&e.sharedData.blockingBlocks.push(this),e.sharedData.textureBlocks.indexOf(this)<0&&e.sharedData.textureBlocks.push(this),e.sharedData.blocksWithDefines.indexOf(this)<0&&e.sharedData.blocksWithDefines.push(this),e.target!==Te.Fragment){e._emit2DSampler(this._samplerName),this._injectVertexCode(e);return}if(!this._outputs.some(i=>i.isConnectedInFragmentShader))return;e._emit2DSampler(this._samplerName),this._linearDefineName=e._getFreeDefineName("ISLINEAR"),this._gammaDefineName=e._getFreeDefineName("ISGAMMA");const t=`//${this.name}`;e._emitFunctionFromInclude("helperFunctions",t),this._writeTextureRead(e);for(const i of this._outputs)i.hasEndpoints&&this._writeOutput(e,i,i.name);return this}serialize(){const e=super.serialize();return e.convertToGammaSpace=this.convertToGammaSpace,e.convertToLinearSpace=this.convertToLinearSpace,this.texture&&!this.texture.isRenderTarget&&(e.texture=this.texture.serialize()),e}_deserialize(e,t,i){super._deserialize(e,t,i),this.convertToGammaSpace=e.convertToGammaSpace,this.convertToLinearSpace=!!e.convertToLinearSpace,e.texture&&(i=e.texture.url.indexOf("data:")===0?"":i,this.texture=be.Parse(e.texture,t,i))}}ve("BABYLON.CurrentScreenBlock",kte);class Ute extends Di{constructor(e){super(e,Te.Fragment),this._samplerName="diffuseSampler",this.convertToGammaSpace=!1,this.convertToLinearSpace=!1,this._isUnique=!1,this.registerInput("uv",$.AutoDetect,!1,Te.VertexAndFragment),this.registerOutput("rgba",$.Color4,Te.Neutral),this.registerOutput("rgb",$.Color3,Te.Neutral),this.registerOutput("r",$.Float,Te.Neutral),this.registerOutput("g",$.Float,Te.Neutral),this.registerOutput("b",$.Float,Te.Neutral),this.registerOutput("a",$.Float,Te.Neutral),this._inputs[0].addExcludedConnectionPointFromAllowedTypes($.Vector2|$.Vector3|$.Vector4)}getClassName(){return"ParticleTextureBlock"}get uv(){return this._inputs[0]}get rgba(){return this._outputs[0]}get rgb(){return this._outputs[1]}get r(){return this._outputs[2]}get g(){return this._outputs[3]}get b(){return this._outputs[4]}get a(){return this._outputs[5]}initialize(e){e._excludeVariableName("diffuseSampler")}autoConfigure(e,t=()=>!0){if(!this.uv.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="particle_uv"&&t(s));i||(i=new ys("uv"),i.setAsAttribute("particle_uv")),i.output.connectTo(this.uv)}}prepareDefines(e,t,i){i.setValue(this._linearDefineName,this.convertToGammaSpace,!0),i.setValue(this._gammaDefineName,this.convertToLinearSpace,!0)}isReady(){return!(this.texture&&!this.texture.isReadyOrNotBlocking())}_writeOutput(e,t,i){e.compilationString+=`${e._declareOutput(t)} = ${this._tempTextureRead}.${i};
`,e.compilationString+=`#ifdef ${this._linearDefineName}
`,e.compilationString+=`${t.associatedVariableName} = toGammaSpace(${t.associatedVariableName});
`,e.compilationString+=`#endif
`,e.compilationString+=`#ifdef ${this._gammaDefineName}
`,e.compilationString+=`${t.associatedVariableName} = toLinearSpace(${t.associatedVariableName});
`,e.compilationString+=`#endif
`}_buildBlock(e){if(super._buildBlock(e),e.target===Te.Vertex)return;this._tempTextureRead=e._getFreeVariableName("tempTextureRead"),e._emit2DSampler(this._samplerName),e.sharedData.blockingBlocks.push(this),e.sharedData.textureBlocks.push(this),e.sharedData.blocksWithDefines.push(this),this._linearDefineName=e._getFreeDefineName("ISLINEAR"),this._gammaDefineName=e._getFreeDefineName("ISGAMMA");const t=`//${this.name}`;e._emitFunctionFromInclude("helperFunctions",t),e.compilationString+=`${e._declareLocalVar(this._tempTextureRead,$.Vector4)} = ${e._generateTextureSample(this.uv.associatedVariableName,this._samplerName)};
`;for(const i of this._outputs)i.hasEndpoints&&this._writeOutput(e,i,i.name);return this}serialize(){const e=super.serialize();return e.convertToGammaSpace=this.convertToGammaSpace,e.convertToLinearSpace=this.convertToLinearSpace,this.texture&&!this.texture.isRenderTarget&&(e.texture=this.texture.serialize()),e}_deserialize(e,t,i){super._deserialize(e,t,i),this.convertToGammaSpace=e.convertToGammaSpace,this.convertToLinearSpace=!!e.convertToLinearSpace,e.texture&&(i=e.texture.url.indexOf("data:")===0?"":i,this.texture=be.Parse(e.texture,t,i))}}ve("BABYLON.ParticleTextureBlock",Ute);class jte extends Di{constructor(e){super(e,Te.Fragment),this._isUnique=!0,this.registerInput("color",$.Color4,!1,Te.Fragment),this.registerOutput("rampColor",$.Color4,Te.Fragment)}getClassName(){return"ParticleRampGradientBlock"}get color(){return this._inputs[0]}get rampColor(){return this._outputs[0]}initialize(e){e._excludeVariableName("remapRanges"),e._excludeVariableName("rampSampler"),e._excludeVariableName("baseColor"),e._excludeVariableName("alpha"),e._excludeVariableName("remappedColorIndex"),e._excludeVariableName("rampColor")}_buildBlock(e){if(super._buildBlock(e),e.target===Te.Vertex)return;e._emit2DSampler("rampSampler","RAMPGRADIENT"),e._emitVaryingFromString("remapRanges",$.Vector4,"RAMPGRADIENT");const t=e.shaderLanguage===0?"":"fragmentInputs.";return e.compilationString+=`
            #ifdef RAMPGRADIENT
                ${e._declareLocalVar("baseColor",$.Vector4)} = ${this.color.associatedVariableName};
                ${e._declareLocalVar("alpha",$.Float)} = ${this.color.associatedVariableName}.a;

                ${e._declareLocalVar("remappedColorIndex",$.Float)} = clamp((alpha - ${t}remapRanges.x) / ${t}remapRanges.y, 0.0, 1.0);

                ${e._declareLocalVar("rampColor",$.Vector4)} = ${e._generateTextureSample("vec2(1.0 - remappedColorIndex, 0.)","rampSampler")};

                // Remapped alpha
                ${e._declareOutput(this.rampColor)} = vec4${e.fSuffix}(baseColor.rgb * rampColor.rgb, clamp((alpha * rampColor.a - ${t}remapRanges.z) / ${t}remapRanges.w, 0.0, 1.0));
            #else
                ${e._declareOutput(this.rampColor)} = ${this.color.associatedVariableName};
            #endif
        `,this}}ve("BABYLON.ParticleRampGradientBlock",jte);class Vte extends Di{constructor(e){super(e,Te.Fragment),this._isUnique=!0,this.registerInput("color",$.Color4,!1,Te.Fragment),this.registerInput("alphaTexture",$.Float,!1,Te.Fragment),this.registerInput("alphaColor",$.Float,!1,Te.Fragment),this.registerOutput("blendColor",$.Color4,Te.Fragment)}getClassName(){return"ParticleBlendMultiplyBlock"}get color(){return this._inputs[0]}get alphaTexture(){return this._inputs[1]}get alphaColor(){return this._inputs[2]}get blendColor(){return this._outputs[0]}initialize(e){e._excludeVariableName("sourceAlpha")}_buildBlock(e){if(super._buildBlock(e),e.target!==Te.Vertex)return e.compilationString+=`
            #ifdef BLENDMULTIPLYMODE
                ${e._declareOutput(this.blendColor)};
                ${e._declareLocalVar("sourceAlpha",$.Float)}  = ${this.alphaColor.associatedVariableName} * ${this.alphaTexture.associatedVariableName};
                ${this.blendColor.associatedVariableName} = vec4${e.fSuffix}(${this.color.associatedVariableName}.rgb * sourceAlpha + vec3(1.0) * (1.0 - sourceAlpha), ${this.color.associatedVariableName}.a);
            #else
                ${e._declareOutput(this.blendColor)} = ${this.color.associatedVariableName};
            #endif
        `,this}}ve("BABYLON.ParticleBlendMultiplyBlock",Vte);class zB extends Di{constructor(e){super(e,Te.Neutral),this.xSwizzle="x",this.ySwizzle="y",this.zSwizzle="z",this.wSwizzle="w",this.registerInput("xyzw ",$.Vector4,!0),this.registerInput("xyz ",$.Vector3,!0),this.registerInput("xy ",$.Vector2,!0),this.registerInput("zw ",$.Vector2,!0),this.registerInput("x",$.Float,!0),this.registerInput("y",$.Float,!0),this.registerInput("z",$.Float,!0),this.registerInput("w",$.Float,!0),this.registerOutput("xyzw",$.Vector4),this.registerOutput("xyz",$.Vector3),this.registerOutput("xy",$.Vector2),this.registerOutput("zw",$.Vector2)}getClassName(){return"VectorMergerBlock"}get xyzwIn(){return this._inputs[0]}get xyzIn(){return this._inputs[1]}get xyIn(){return this._inputs[2]}get zwIn(){return this._inputs[3]}get x(){return this._inputs[4]}get y(){return this._inputs[5]}get z(){return this._inputs[6]}get w(){return this._inputs[7]}get xyzw(){return this._outputs[0]}get xyzOut(){return this._outputs[1]}get xyOut(){return this._outputs[2]}get zwOut(){return this._outputs[3]}get xy(){return this.xyOut}get xyz(){return this.xyzOut}_inputRename(e){return e==="xyzw "?"xyzwIn":e==="xyz "?"xyzIn":e==="xy "?"xyIn":e==="zw "?"zwIn":e}_buildSwizzle(e){return"."+(this.xSwizzle+this.ySwizzle+this.zSwizzle+this.wSwizzle).substring(0,e)}_buildBlock(e){super._buildBlock(e);const t=this.x,i=this.y,s=this.z,r=this.w,n=this.xyIn,o=this.zwIn,l=this.xyzIn,c=this.xyzwIn,u=this._outputs[0],f=this._outputs[1],p=this._outputs[2],m=this._outputs[3],_=e._getShaderType($.Vector4),d=e._getShaderType($.Vector3),h=e._getShaderType($.Vector2);return c.isConnected?(u.hasEndpoints&&(e.compilationString+=e._declareOutput(u)+` = ${c.associatedVariableName}${this._buildSwizzle(4)};
`),f.hasEndpoints&&(e.compilationString+=e._declareOutput(f)+` = ${c.associatedVariableName}${this._buildSwizzle(3)};
`),p.hasEndpoints&&(e.compilationString+=e._declareOutput(p)+` = ${c.associatedVariableName}${this._buildSwizzle(2)};
`)):l.isConnected?(u.hasEndpoints&&(e.compilationString+=e._declareOutput(u)+` = ${_}(${l.associatedVariableName}, ${r.isConnected?this._writeVariable(r):"0.0"})${this._buildSwizzle(4)};
`),f.hasEndpoints&&(e.compilationString+=e._declareOutput(f)+` = ${l.associatedVariableName}${this._buildSwizzle(3)};
`),p.hasEndpoints&&(e.compilationString+=e._declareOutput(p)+` = ${l.associatedVariableName}${this._buildSwizzle(2)};
`)):n.isConnected?(u.hasEndpoints&&(o.isConnected?e.compilationString+=e._declareOutput(u)+` = ${_}(${n.associatedVariableName}, ${o.associatedVariableName})${this._buildSwizzle(4)};
`:e.compilationString+=e._declareOutput(u)+` = ${_}(${n.associatedVariableName}, ${s.isConnected?this._writeVariable(s):"0.0"}, ${r.isConnected?this._writeVariable(r):"0.0"})${this._buildSwizzle(4)};
`),f.hasEndpoints&&(e.compilationString+=e._declareOutput(f)+` = ${d}(${n.associatedVariableName}, ${s.isConnected?this._writeVariable(s):"0.0"})${this._buildSwizzle(3)};
`),p.hasEndpoints&&(e.compilationString+=e._declareOutput(p)+` = ${n.associatedVariableName}${this._buildSwizzle(2)};
`),m.hasEndpoints&&(o.isConnected?e.compilationString+=e._declareOutput(m)+` = ${o.associatedVariableName}${this._buildSwizzle(2)};
`:e.compilationString+=e._declareOutput(m)+` = ${h}(${s.isConnected?this._writeVariable(s):"0.0"}, ${r.isConnected?this._writeVariable(r):"0.0"})${this._buildSwizzle(2)};
`)):(u.hasEndpoints&&(o.isConnected?e.compilationString+=e._declareOutput(u)+` = ${_}(${t.isConnected?this._writeVariable(t):"0.0"}, ${i.isConnected?this._writeVariable(i):"0.0"}, ${o.associatedVariableName})${this._buildSwizzle(4)};
`:e.compilationString+=e._declareOutput(u)+` = ${_}(${t.isConnected?this._writeVariable(t):"0.0"}, ${i.isConnected?this._writeVariable(i):"0.0"}, ${s.isConnected?this._writeVariable(s):"0.0"}, ${r.isConnected?this._writeVariable(r):"0.0"})${this._buildSwizzle(4)};
`),f.hasEndpoints&&(e.compilationString+=e._declareOutput(f)+` = ${d}(${t.isConnected?this._writeVariable(t):"0.0"}, ${i.isConnected?this._writeVariable(i):"0.0"}, ${s.isConnected?this._writeVariable(s):"0.0"})${this._buildSwizzle(3)};
`),p.hasEndpoints&&(e.compilationString+=e._declareOutput(p)+` = ${h}(${t.isConnected?this._writeVariable(t):"0.0"}, ${i.isConnected?this._writeVariable(i):"0.0"})${this._buildSwizzle(2)};
`),m.hasEndpoints&&(o.isConnected?e.compilationString+=e._declareOutput(m)+` = ${o.associatedVariableName}${this._buildSwizzle(2)};
`:e.compilationString+=e._declareOutput(m)+` = ${h}(${s.isConnected?this._writeVariable(s):"0.0"}, ${r.isConnected?this._writeVariable(r):"0.0"})${this._buildSwizzle(2)};
`)),this}serialize(){const e=super.serialize();return e.xSwizzle=this.xSwizzle,e.ySwizzle=this.ySwizzle,e.zSwizzle=this.zSwizzle,e.wSwizzle=this.wSwizzle,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.xSwizzle=e.xSwizzle??"x",this.ySwizzle=e.ySwizzle??"y",this.zSwizzle=e.zSwizzle??"z",this.wSwizzle=e.wSwizzle??"w"}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return e+=`${this._codeVariableName}.xSwizzle = "${this.xSwizzle}";
`,e+=`${this._codeVariableName}.ySwizzle = "${this.ySwizzle}";
`,e+=`${this._codeVariableName}.zSwizzle = "${this.zSwizzle}";
`,e+=`${this._codeVariableName}.wSwizzle = "${this.wSwizzle}";
`,e}}ve("BABYLON.VectorMergerBlock",zB);class FB extends Di{constructor(e){super(e,Te.Neutral),this.sourceRange=new Ue(-1,1),this.targetRange=new Ue(0,1),this.registerInput("input",$.AutoDetect),this.registerInput("sourceMin",$.Float,!0),this.registerInput("sourceMax",$.Float,!0),this.registerInput("targetMin",$.Float,!0),this.registerInput("targetMax",$.Float,!0),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0]}getClassName(){return"RemapBlock"}get input(){return this._inputs[0]}get sourceMin(){return this._inputs[1]}get sourceMax(){return this._inputs[2]}get targetMin(){return this._inputs[3]}get targetMax(){return this._inputs[4]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=this.sourceMin.isConnected?this.sourceMin.associatedVariableName:this._writeFloat(this.sourceRange.x),s=this.sourceMax.isConnected?this.sourceMax.associatedVariableName:this._writeFloat(this.sourceRange.y),r=this.targetMin.isConnected?this.targetMin.associatedVariableName:this._writeFloat(this.targetRange.x),n=this.targetMax.isConnected?this.targetMax.associatedVariableName:this._writeFloat(this.targetRange.y);return e.compilationString+=e._declareOutput(t)+` = ${r} + (${this._inputs[0].associatedVariableName} - ${i}) * (${n} - ${r}) / (${s} - ${i});
`,this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.sourceRange = new BABYLON.Vector2(${this.sourceRange.x}, ${this.sourceRange.y});
`;return e+=`${this._codeVariableName}.targetRange = new BABYLON.Vector2(${this.targetRange.x}, ${this.targetRange.y});
`,e}serialize(){const e=super.serialize();return e.sourceRange=this.sourceRange.asArray(),e.targetRange=this.targetRange.asArray(),e}_deserialize(e,t,i){super._deserialize(e,t,i),this.sourceRange=Ue.FromArray(e.sourceRange),this.targetRange=Ue.FromArray(e.targetRange)}}F([lt("From",3)],FB.prototype,"sourceRange",void 0),F([lt("To",3)],FB.prototype,"targetRange",void 0),ve("BABYLON.RemapBlock",FB);class PH extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("left",$.AutoDetect),this.registerInput("right",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this.output._typeConnectionSource=this.left,this._linkConnectionTypes(0,1,!0),this.left.acceptedConnectionPointTypes.push($.Float),this.right.acceptedConnectionPointTypes.push($.Float),this._connectionObservers=[this.left.onTypeChangedObservable.add(()=>this._updateInputOutputTypes()),this.right.onTypeChangedObservable.add(()=>this._updateInputOutputTypes())]}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get output(){return this._outputs[0]}_updateInputOutputTypes(){if(this.output._typeConnectionSource=this.left,this.left.isConnected&&this.right.isConnected?(this.left.type===$.Int||this.left.type===$.Float&&this.right.type!==$.Int)&&(this.output._typeConnectionSource=this.right):this.left.isConnected!==this.right.isConnected&&(this.output._typeConnectionSource=this.left.isConnected?this.left:this.right),this.left.isConnected||this.right.isConnected)for(const[e,t]of[[this.left,this.right],[this.right,this.left]])e.acceptedConnectionPointTypes=[$.Int,$.Float],t.isConnected&&(e.acceptedConnectionPointTypes.push(t.type),(t.type===$.Int||t.type===$.Float)&&e.acceptedConnectionPointTypes.push($.Vector2,$.Vector3,$.Vector4,$.Color3,$.Color4,$.Matrix))}dispose(){super.dispose(),this._connectionObservers.forEach(e=>e.remove()),this._connectionObservers.length=0}}class OH extends PH{constructor(e){super(e)}getClassName(){return"MultiplyBlock"}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = ${this.left.associatedVariableName} * ${this.right.associatedVariableName};
`,this}}ve("BABYLON.MultiplyBlock",OH);var fd;(function(a){a[a.Material=0]="Material",a[a.PostProcess=1]="PostProcess",a[a.Particle=2]="Particle",a[a.ProceduralTexture=3]="ProceduralTexture",a[a.GaussianSplatting=4]="GaussianSplatting"})(fd||(fd={}));class MFe extends Br{constructor(){super(),this.IMAGEPROCESSING=!1,this.VIGNETTE=!1,this.VIGNETTEBLENDMODEMULTIPLY=!1,this.VIGNETTEBLENDMODEOPAQUE=!1,this.TONEMAPPING=0,this.CONTRAST=!1,this.COLORCURVES=!1,this.COLORGRADING=!1,this.COLORGRADING3D=!1,this.SAMPLER3DGREENDEPTH=!1,this.SAMPLER3DBGRMAP=!1,this.DITHER=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.EXPOSURE=!1,this.SKIPFINALCOLORCLAMP=!1,this.rebuild()}}class sc{get noiseTexture(){return this._noiseTexture}set noiseTexture(e){this._noiseTexture!==e&&(this._noiseTexture=e,this._reset())}get isAnimationSheetEnabled(){return this._isAnimationSheetEnabled}set isAnimationSheetEnabled(e){this._isAnimationSheetEnabled!=e&&(this._isAnimationSheetEnabled=e,this._reset())}get useLogarithmicDepth(){return this._useLogarithmicDepth}set useLogarithmicDepth(e){this._useLogarithmicDepth=e&&this.getScene().getEngine().getCaps().fragmentDepthSupported}getScene(){return this._scene}_hasTargetStopDurationDependantGradient(){return this._startSizeGradients&&this._startSizeGradients.length>0||this._emitRateGradients&&this._emitRateGradients.length>0||this._lifeTimeGradients&&this._lifeTimeGradients.length>0}getDragGradients(){return this._dragGradients}getLimitVelocityGradients(){return this._limitVelocityGradients}getColorGradients(){return this._colorGradients}getSizeGradients(){return this._sizeGradients}getColorRemapGradients(){return this._colorRemapGradients}getAlphaRemapGradients(){return this._alphaRemapGradients}getLifeTimeGradients(){return this._lifeTimeGradients}getAngularSpeedGradients(){return this._angularSpeedGradients}getVelocityGradients(){return this._velocityGradients}getStartSizeGradients(){return this._startSizeGradients}getEmitRateGradients(){return this._emitRateGradients}get direction1(){return this.particleEmitterType.direction1?this.particleEmitterType.direction1:P.Zero()}set direction1(e){this.particleEmitterType.direction1&&(this.particleEmitterType.direction1=e)}get direction2(){return this.particleEmitterType.direction2?this.particleEmitterType.direction2:P.Zero()}set direction2(e){this.particleEmitterType.direction2&&(this.particleEmitterType.direction2=e)}get minEmitBox(){return this.particleEmitterType.minEmitBox?this.particleEmitterType.minEmitBox:P.Zero()}set minEmitBox(e){this.particleEmitterType.minEmitBox&&(this.particleEmitterType.minEmitBox=e)}get maxEmitBox(){return this.particleEmitterType.maxEmitBox?this.particleEmitterType.maxEmitBox:P.Zero()}set maxEmitBox(e){this.particleEmitterType.maxEmitBox&&(this.particleEmitterType.maxEmitBox=e)}get billboardMode(){return this._billboardMode}set billboardMode(e){this._billboardMode!==e&&(this._billboardMode=e,this._reset())}get isBillboardBased(){return this._isBillboardBased}set isBillboardBased(e){this._isBillboardBased!==e&&(this._isBillboardBased=e,this._reset())}get imageProcessingConfiguration(){return this._imageProcessingConfiguration}set imageProcessingConfiguration(e){this._attachImageProcessingConfiguration(e)}_attachImageProcessingConfiguration(e){e!==this._imageProcessingConfiguration&&(!e&&this._scene?this._imageProcessingConfiguration=this._scene.imageProcessingConfiguration:this._imageProcessingConfiguration=e)}_reset(){}_removeGradientAndTexture(e,t,i){if(!t)return this;let s=0;for(const r of t){if(r.gradient===e){t.splice(s,1);break}s++}return i&&i.dispose(),this}constructor(e){this.animations=[],this.renderingGroupId=0,this.emitter=P.Zero(),this.emitRate=10,this.manualEmitCount=-1,this.updateSpeed=.01,this.targetStopDuration=0,this.disposeOnStop=!1,this.minEmitPower=1,this.maxEmitPower=1,this.minLifeTime=1,this.maxLifeTime=1,this.minSize=1,this.maxSize=1,this.minScaleX=1,this.maxScaleX=1,this.minScaleY=1,this.maxScaleY=1,this.minInitialRotation=0,this.maxInitialRotation=0,this.minAngularSpeed=0,this.maxAngularSpeed=0,this.layerMask=268435455,this.customShader=null,this.preventAutoStart=!1,this.applyFog=!1,this._wasDispatched=!1,this._rootUrl="",this.noiseStrength=new P(10,10,10),this.onAnimationEnd=null,this.blendMode=sc.BLENDMODE_ONEONE,this.forceDepthWrite=!1,this.preWarmCycles=0,this.preWarmStepOffset=1,this.spriteCellChangeSpeed=1,this.startSpriteCellID=0,this.endSpriteCellID=0,this.spriteCellWidth=0,this.spriteCellHeight=0,this.spriteCellLoop=!0,this.spriteRandomStartCell=!1,this.translationPivot=new Ue(0,0),this.beginAnimationOnStart=!1,this.beginAnimationFrom=0,this.beginAnimationTo=60,this.beginAnimationLoop=!1,this.worldOffset=new P(0,0,0),this._useLogarithmicDepth=!1,this.gravity=P.Zero(),this._colorGradients=null,this._sizeGradients=null,this._lifeTimeGradients=null,this._angularSpeedGradients=null,this._velocityGradients=null,this._limitVelocityGradients=null,this._dragGradients=null,this._emitRateGradients=null,this._startSizeGradients=null,this._rampGradients=null,this._colorRemapGradients=null,this._alphaRemapGradients=null,this.startDelay=0,this.limitVelocityDamping=.4,this.color1=new St(1,1,1,1),this.color2=new St(1,1,1,1),this.colorDead=new St(0,0,0,1),this.textureMask=new St(1,1,1,1),this._isSubEmitter=!1,this._billboardMode=7,this._isBillboardBased=!0,this._imageProcessingConfigurationDefines=new MFe,this.id=e,this.name=e}createPointEmitter(e,t){throw new Error("Method not implemented.")}createHemisphericEmitter(e=1,t=1){throw new Error("Method not implemented.")}createSphereEmitter(e=1,t=1){throw new Error("Method not implemented.")}createDirectedSphereEmitter(e=1,t=new P(0,1,0),i=new P(0,1,0)){throw new Error("Method not implemented.")}createCylinderEmitter(e=1,t=1,i=1,s=0){throw new Error("Method not implemented.")}createDirectedCylinderEmitter(e=1,t=1,i=1,s=new P(0,1,0),r=new P(0,1,0)){throw new Error("Method not implemented.")}createConeEmitter(e=1,t=Math.PI/4){throw new Error("Method not implemented.")}createDirectedConeEmitter(e=1,t=Math.PI/4,i=new P(0,1,0),s=new P(0,1,0)){throw new Error("Method not implemented.")}createBoxEmitter(e,t,i,s){throw new Error("Method not implemented.")}}sc.BLENDMODE_ONEONE=0,sc.BLENDMODE_STANDARD=1,sc.BLENDMODE_ADD=2,sc.BLENDMODE_MULTIPLY=3,sc.BLENDMODE_MULTIPLYADD=4,ve("BABYLON.BaseParticleSystem",sc);class Gte extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("rgba",$.Color4,!0),this.registerInput("rgb ",$.Color3,!0),this.registerOutput("rgb",$.Color3),this.registerOutput("r",$.Float),this.registerOutput("g",$.Float),this.registerOutput("b",$.Float),this.registerOutput("a",$.Float),this.inputsAreExclusive=!0}getClassName(){return"ColorSplitterBlock"}get rgba(){return this._inputs[0]}get rgbIn(){return this._inputs[1]}get rgbOut(){return this._outputs[0]}get r(){return this._outputs[1]}get g(){return this._outputs[2]}get b(){return this._outputs[3]}get a(){return this._outputs[4]}_inputRename(e){return e==="rgb "?"rgbIn":e}_outputRename(e){return e==="rgb"?"rgbOut":e}_buildBlock(e){super._buildBlock(e);const t=this.rgba.isConnected?this.rgba:this.rgbIn;if(!t.isConnected)return;const i=this._outputs[0],s=this._outputs[1],r=this._outputs[2],n=this._outputs[3],o=this._outputs[4];return i.hasEndpoints&&(e.compilationString+=e._declareOutput(i)+` = ${t.associatedVariableName}.rgb;
`),s.hasEndpoints&&(e.compilationString+=e._declareOutput(s)+` = ${t.associatedVariableName}.r;
`),r.hasEndpoints&&(e.compilationString+=e._declareOutput(r)+` = ${t.associatedVariableName}.g;
`),n.hasEndpoints&&(e.compilationString+=e._declareOutput(n)+` = ${t.associatedVariableName}.b;
`),o.hasEndpoints&&(e.compilationString+=e._declareOutput(o)+` = ${t.associatedVariableName}.a;
`),this}}ve("BABYLON.ColorSplitterBlock",Gte);class N3e{constructor(e){this.name=jt.NAME_PROCEDURALTEXTURE,this.scene=e}register(){this.scene._beforeClearStage.registerStep(jt.STEP_BEFORECLEAR_PROCEDURALTEXTURE,this,this._beforeClear)}rebuild(){}dispose(){}_beforeClear(){if(this.scene.proceduralTexturesEnabled){Le.StartPerformanceCounter("Procedural textures",this.scene.proceduralTextures.length>0);for(let e=0;e<this.scene.proceduralTextures.length;e++){const t=this.scene.proceduralTextures[e];t._shouldRender()&&t.render()}Le.EndPerformanceCounter("Procedural textures",this.scene.proceduralTextures.length>0)}}}class zc extends be{get shaderLanguage(){return this._shaderLanguage}constructor(e,t,i,s,r=null,n=!0,o=!1,l=0){super(null,s,!n),this.isEnabled=!0,this.autoClear=!0,this.onGeneratedObservable=new xe,this.onBeforeGenerationObservable=new xe,this.nodeMaterialSource=null,this.defines="",this._textures={},this._currentRefreshId=-1,this._frameId=-1,this._refreshRate=1,this._vertexBuffers={},this._uniforms=new Array,this._samplers=new Array,this._floats={},this._ints={},this._floatsArrays={},this._colors3={},this._colors4={},this._vectors2={},this._vectors3={},this._vectors4={},this._matrices={},this._fallbackTextureUsed=!1,this._cachedDefines=null,this._contentUpdateId=-1,this._rtWrapper=null,r!==null&&!(r instanceof be)?(this._options=r,this._fallbackTexture=r.fallbackTexture??null):(this._options={},this._fallbackTexture=r),this._shaderLanguage=this._options.shaderLanguage??0,s=this.getScene()||ei.LastCreatedScene;let c=s._getComponent(jt.NAME_PROCEDURALTEXTURE);c||(c=new N3e(s),s._addComponent(c)),s.proceduralTextures.push(this),this._fullEngine=s.getEngine(),this.name=e,this.isRenderTarget=!0,this._size=t,this._textureType=l,this._generateMipMaps=n,this._drawWrapper=new ql(this._fullEngine),this.setFragment(i);const u=this._createRtWrapper(o,t,n,l);this._texture=u.texture;const f=[];f.push(1,1),f.push(-1,1),f.push(-1,-1),f.push(1,-1),this._vertexBuffers[q.PositionKind]=new q(this._fullEngine,f,q.PositionKind,!1,!1,2),this._createIndexBuffer()}_createRtWrapper(e,t,i,s){return e?(this._rtWrapper=this._fullEngine.createRenderTargetCubeTexture(t,{generateMipMaps:i,generateDepthBuffer:!1,generateStencilBuffer:!1,type:s,...this._options}),this.setFloat("face",0)):(this._rtWrapper=this._fullEngine.createRenderTargetTexture(t,{generateMipMaps:i,generateDepthBuffer:!1,generateStencilBuffer:!1,type:s,...this._options}),this._rtWrapper.is3D&&(this.setFloat("layer",0),this.setInt("layerNum",0))),this._rtWrapper}getEffect(){return this._drawWrapper.effect}_setEffect(e){this._drawWrapper.effect=e}getContent(){return this._contentData&&this._frameId===this._contentUpdateId?this._contentData:(this._contentData?this._contentData.then(e=>{this._contentData=this.readPixels(0,0,e),this._contentUpdateId=this._frameId}):(this._contentData=this.readPixels(0,0),this._contentUpdateId=this._frameId),this._contentData)}_createIndexBuffer(){const e=this._fullEngine,t=[];t.push(0),t.push(1),t.push(2),t.push(0),t.push(2),t.push(3),this._indexBuffer=e.createIndexBuffer(t)}_rebuild(){const e=this._vertexBuffers[q.PositionKind];e&&e._rebuild(),this._createIndexBuffer(),this.refreshRate===Ir.REFRESHRATE_RENDER_ONCE&&(this.refreshRate=Ir.REFRESHRATE_RENDER_ONCE)}reset(){var e;(e=this._drawWrapper.effect)==null||e.dispose(),this._drawWrapper.effect=null,this._cachedDefines=null}_getDefines(){return this.defines}executeWhenReady(e){if(this.isReady()){e(this);return}const t=this.getEffect();t&&t.executeWhenCompiled(()=>{e(this)})}isReady(){const e=this._fullEngine;if(this.nodeMaterialSource)return this._drawWrapper.effect.isReady();if(!this._fragment)return!1;if(this._fallbackTextureUsed)return!0;if(!this._texture)return!1;const t=this._getDefines();if(this._drawWrapper.effect&&t===this._cachedDefines&&this._drawWrapper.effect.isReady())return!0;const i={vertex:"procedural",fragmentElement:this._fragment.fragmentElement,fragmentSource:this._fragment.fragmentSource,fragment:typeof this._fragment=="string"?this._fragment:void 0};return this._cachedDefines!==t&&(this._cachedDefines=t,this._drawWrapper.effect=e.createEffect(i,[q.PositionKind],this._uniforms,this._samplers,t,void 0,void 0,()=>{var s;(s=this._rtWrapper)==null||s.dispose(),this._rtWrapper=this._texture=null,this._fallbackTexture&&(this._texture=this._fallbackTexture._texture,this._texture&&this._texture.incrementReferences()),this._fallbackTextureUsed=!0},void 0,this._shaderLanguage,async()=>{this._options.extraInitializationsAsync?this.shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>fve),this._options.extraInitializationsAsync()]):await Promise.all([Promise.resolve().then(()=>gve),this._options.extraInitializationsAsync()]):this.shaderLanguage===1?await Promise.resolve().then(()=>fve):await Promise.resolve().then(()=>gve)})),this._drawWrapper.effect.isReady()}resetRefreshCounter(){this._currentRefreshId=-1}setFragment(e){this._fragment=e}get refreshRate(){return this._refreshRate}set refreshRate(e){this._refreshRate=e,this.resetRefreshCounter()}_shouldRender(){return!this.isEnabled||!this.isReady()||!this._texture?(this._texture&&(this._texture.isReady=!1),!1):this._fallbackTextureUsed?!1:this._currentRefreshId===-1?(this._currentRefreshId=1,this._frameId++,!0):this.refreshRate===this._currentRefreshId?(this._currentRefreshId=1,this._frameId++,!0):(this._currentRefreshId++,!1)}getRenderSize(){return this._size}resize(e,t){if(this._fallbackTextureUsed||!this._rtWrapper||!this._texture)return;const i=this._texture.isCube;this._rtWrapper.dispose();const s=this._createRtWrapper(i,e,t,this._textureType);this._texture=s.texture,this._size=e,this._generateMipMaps=t}_checkUniform(e){this._uniforms.indexOf(e)===-1&&this._uniforms.push(e)}setTexture(e,t){return this._samplers.indexOf(e)===-1&&this._samplers.push(e),this._textures[e]=t,this}setFloat(e,t){return this._checkUniform(e),this._floats[e]=t,this}setInt(e,t){return this._checkUniform(e),this._ints[e]=t,this}setFloats(e,t){return this._checkUniform(e),this._floatsArrays[e]=t,this}setColor3(e,t){return this._checkUniform(e),this._colors3[e]=t,this}setColor4(e,t){return this._checkUniform(e),this._colors4[e]=t,this}setVector2(e,t){return this._checkUniform(e),this._vectors2[e]=t,this}setVector3(e,t){return this._checkUniform(e),this._vectors3[e]=t,this}setVector4(e,t){return this._checkUniform(e),this._vectors4[e]=t,this}setMatrix(e,t){return this._checkUniform(e),this._matrices[e]=t,this}render(e){var r,n,o,l;const t=this.getScene();if(!t)return;const i=this._fullEngine;if(i.enableEffect(this._drawWrapper),this.onBeforeGenerationObservable.notifyObservers(this),i.setState(!1),!this.nodeMaterialSource){for(const c in this._textures)this._drawWrapper.effect.setTexture(c,this._textures[c]);for(const c in this._ints)this._drawWrapper.effect.setInt(c,this._ints[c]);for(const c in this._floats)this._drawWrapper.effect.setFloat(c,this._floats[c]);for(const c in this._floatsArrays)this._drawWrapper.effect.setArray(c,this._floatsArrays[c]);for(const c in this._colors3)this._drawWrapper.effect.setColor3(c,this._colors3[c]);for(const c in this._colors4){const u=this._colors4[c];this._drawWrapper.effect.setFloat4(c,u.r,u.g,u.b,u.a)}for(const c in this._vectors2)this._drawWrapper.effect.setVector2(c,this._vectors2[c]);for(const c in this._vectors3)this._drawWrapper.effect.setVector3(c,this._vectors3[c]);for(const c in this._vectors4)this._drawWrapper.effect.setVector4(c,this._vectors4[c]);for(const c in this._matrices)this._drawWrapper.effect.setMatrix(c,this._matrices[c])}if(!this._texture||!this._rtWrapper)return;(r=i._debugPushGroup)==null||r.call(i,`procedural texture generation for ${this.name}`,1);const s=i.currentViewport;if(this.isCube)for(let c=0;c<6;c++)i.bindFramebuffer(this._rtWrapper,c,void 0,void 0,!0),i.bindBuffers(this._vertexBuffers,this._indexBuffer,this._drawWrapper.effect),this._drawWrapper.effect.setFloat("face",c),this.autoClear&&i.clear(t.clearColor,!0,!1,!1),i.drawElementsType(ft.TriangleFillMode,0,6),i.unBindFramebuffer(this._rtWrapper,!0);else{let c=1;this._rtWrapper.is3D?c=this._rtWrapper.depth:this._rtWrapper.is2DArray&&(c=this._rtWrapper.layers);for(let u=0;u<c;u++){if(i.bindFramebuffer(this._rtWrapper,0,void 0,void 0,!0,0,u),i.bindBuffers(this._vertexBuffers,this._indexBuffer,this._drawWrapper.effect),this._rtWrapper.is3D||this._rtWrapper.is2DArray){(n=this._drawWrapper.effect)==null||n.setFloat("layer",c!==1?u/(c-1):0),(o=this._drawWrapper.effect)==null||o.setInt("layerNum",u);for(const f in this._textures)this._drawWrapper.effect.setTexture(f,this._textures[f])}this.autoClear&&i.clear(t.clearColor,!0,!1,!1),i.drawElementsType(ft.TriangleFillMode,0,6),i.unBindFramebuffer(this._rtWrapper,!this._generateMipMaps)}}s&&i.setViewport(s),this.isCube&&i.generateMipMapsForCubemap(this._texture,!0),(l=i._debugPopGroup)==null||l.call(i,1),this.onGenerated&&this.onGenerated(),this.onGeneratedObservable.notifyObservers(this)}clone(){const e=this.getSize(),t=new zc(this.name,e.width,this._fragment,this.getScene(),this._fallbackTexture,this._generateMipMaps);return t.hasAlpha=this.hasAlpha,t.level=this.level,t.coordinatesMode=this.coordinatesMode,t}dispose(){const e=this.getScene();if(!e)return;const t=e.proceduralTextures.indexOf(this);t>=0&&e.proceduralTextures.splice(t,1);const i=this._vertexBuffers[q.PositionKind];i&&(i.dispose(),this._vertexBuffers[q.PositionKind]=null),this._indexBuffer&&this._fullEngine._releaseBuffer(this._indexBuffer)&&(this._indexBuffer=null),this.onGeneratedObservable.clear(),this.onBeforeGenerationObservable.clear(),super.dispose()}}F([G()],zc.prototype,"isEnabled",void 0),F([G()],zc.prototype,"autoClear",void 0),F([G()],zc.prototype,"_generateMipMaps",void 0),F([G()],zc.prototype,"_size",void 0),F([G()],zc.prototype,"refreshRate",null),ve("BABYLON.ProceduralTexture",zc);var Fr;(function(a){a[a.Cos=0]="Cos",a[a.Sin=1]="Sin",a[a.Abs=2]="Abs",a[a.Exp=3]="Exp",a[a.Exp2=4]="Exp2",a[a.Round=5]="Round",a[a.Floor=6]="Floor",a[a.Ceiling=7]="Ceiling",a[a.Sqrt=8]="Sqrt",a[a.Log=9]="Log",a[a.Tan=10]="Tan",a[a.ArcTan=11]="ArcTan",a[a.ArcCos=12]="ArcCos",a[a.ArcSin=13]="ArcSin",a[a.Fract=14]="Fract",a[a.Sign=15]="Sign",a[a.Radians=16]="Radians",a[a.Degrees=17]="Degrees",a[a.Set=18]="Set"})(Fr||(Fr={}));class RH extends Di{constructor(e){super(e,Te.Neutral),this.operation=Fr.Cos,this.registerInput("input",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0]}getClassName(){return"TrigonometryBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];let i="";switch(this.operation){case Fr.Cos:{i="cos";break}case Fr.Sin:{i="sin";break}case Fr.Abs:{i="abs";break}case Fr.Exp:{i="exp";break}case Fr.Exp2:{i="exp2";break}case Fr.Round:{i="round";break}case Fr.Floor:{i="floor";break}case Fr.Ceiling:{i="ceil";break}case Fr.Sqrt:{i="sqrt";break}case Fr.Log:{i="log";break}case Fr.Tan:{i="tan";break}case Fr.ArcTan:{i="atan";break}case Fr.ArcCos:{i="acos";break}case Fr.ArcSin:{i="asin";break}case Fr.Fract:{i="fract";break}case Fr.Sign:{i="sign";break}case Fr.Radians:{i="radians";break}case Fr.Degrees:{i="degrees";break}case Fr.Set:{i="";break}}return e.compilationString+=e._declareOutput(t)+` = ${i}(${this.input.associatedVariableName});
`,this}serialize(){const e=super.serialize();return e.operation=this.operation,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.operation=e.operation}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.operation = BABYLON.TrigonometryBlockOperations.${Fr[this.operation]};
`}}F([lt("Operation",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"Cos",value:Fr.Cos},{label:"Sin",value:Fr.Sin},{label:"Abs",value:Fr.Abs},{label:"Exp",value:Fr.Exp},{label:"Exp2",value:Fr.Exp2},{label:"Round",value:Fr.Round},{label:"Floor",value:Fr.Floor},{label:"Ceiling",value:Fr.Ceiling},{label:"Sqrt",value:Fr.Sqrt},{label:"Log",value:Fr.Log},{label:"Tan",value:Fr.Tan},{label:"ArcTan",value:Fr.ArcTan},{label:"ArcCos",value:Fr.ArcCos},{label:"ArcSin",value:Fr.ArcSin},{label:"Fract",value:Fr.Fract},{label:"Sign",value:Fr.Sign},{label:"Radians",value:Fr.Radians},{label:"Degrees",value:Fr.Degrees},{label:"Set",value:Fr.Set}]})],RH.prototype,"operation",void 0),ve("BABYLON.TrigonometryBlock",RH);const Wte={effect:null,subMesh:null};class kB extends Br{constructor(){super(),this.NORMAL=!1,this.TANGENT=!1,this.VERTEXCOLOR_NME=!1,this.UV1=!1,this.UV2=!1,this.UV3=!1,this.UV4=!1,this.UV5=!1,this.UV6=!1,this.PREPASS=!1,this.PREPASS_NORMAL=!1,this.PREPASS_NORMAL_INDEX=-1,this.PREPASS_WORLD_NORMAL=!1,this.PREPASS_WORLD_NORMAL_INDEX=-1,this.PREPASS_POSITION=!1,this.PREPASS_POSITION_INDEX=-1,this.PREPASS_LOCAL_POSITION=!1,this.PREPASS_LOCAL_POSITION_INDEX=-1,this.PREPASS_DEPTH=!1,this.PREPASS_DEPTH_INDEX=-1,this.PREPASS_SCREENSPACE_DEPTH=!1,this.PREPASS_SCREENSPACE_DEPTH_INDEX=-1,this.SCENE_MRT_COUNT=0,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.BONETEXTURE=!1,this.MORPHTARGETS=!1,this.MORPHTARGETS_POSITION=!1,this.MORPHTARGETS_NORMAL=!1,this.MORPHTARGETS_TANGENT=!1,this.MORPHTARGETS_UV=!1,this.MORPHTARGETS_UV2=!1,this.MORPHTARGETS_COLOR=!1,this.MORPHTARGETTEXTURE_HASPOSITIONS=!1,this.MORPHTARGETTEXTURE_HASNORMALS=!1,this.MORPHTARGETTEXTURE_HASTANGENTS=!1,this.MORPHTARGETTEXTURE_HASUVS=!1,this.MORPHTARGETTEXTURE_HASUV2S=!1,this.MORPHTARGETTEXTURE_HASCOLORS=!1,this.NUM_MORPH_INFLUENCERS=0,this.MORPHTARGETS_TEXTURE=!1,this.IMAGEPROCESSING=!1,this.VIGNETTE=!1,this.VIGNETTEBLENDMODEMULTIPLY=!1,this.VIGNETTEBLENDMODEOPAQUE=!1,this.TONEMAPPING=0,this.CONTRAST=!1,this.EXPOSURE=!1,this.COLORCURVES=!1,this.COLORGRADING=!1,this.COLORGRADING3D=!1,this.SAMPLER3DGREENDEPTH=!1,this.SAMPLER3DBGRMAP=!1,this.DITHER=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.BUMPDIRECTUV=0,this.CAMERA_ORTHOGRAPHIC=!1,this.CAMERA_PERSPECTIVE=!1,this.AREALIGHTSUPPORTED=!0,this.AREALIGHTNOROUGHTNESS=!0,this.rebuild()}setValue(e,t,i=!1){this[e]===void 0&&this._keys.push(e),i&&this[e]!==t&&this.markAsUnprocessed(),this[e]=t}}class jn extends po{static _BlockIsTextureBlock(e){return e.getClassName()==="TextureBlock"||e.getClassName()==="ReflectionTextureBaseBlock"||e.getClassName()==="ReflectionTextureBlock"||e.getClassName()==="ReflectionBlock"||e.getClassName()==="RefractionBlock"||e.getClassName()==="CurrentScreenBlock"||e.getClassName()==="ParticleTextureBlock"||e.getClassName()==="ImageSourceBlock"||e.getClassName()==="TriPlanarBlock"||e.getClassName()==="BiPlanarBlock"||e.getClassName()==="PrePassTextureBlock"}set _glowModeEnabled(e){this._useAdditionalColor=e}_getGlobalNodeMaterialEditor(){if(typeof NODEEDITOR<"u")return NODEEDITOR;if(typeof BABYLON<"u"&&typeof BABYLON.NodeEditor<"u")return BABYLON}get shaderLanguage(){var e;return((e=this._options)==null?void 0:e.shaderLanguage)||jn.DefaultShaderLanguage}set shaderLanguage(e){this._options.shaderLanguage=e}get options(){return this._options}set options(e){this._options=e}get imageProcessingConfiguration(){return this._imageProcessingConfiguration}set imageProcessingConfiguration(e){this._attachImageProcessingConfiguration(e),this._markAllSubMeshesAsTexturesDirty()}get mode(){return this._mode}set mode(e){this._mode=e}get buildId(){return this._buildId}set buildId(e){this._buildId=e}constructor(e,t,i={}){if(super(e,t||ei.LastCreatedScene),this._buildId=jn._BuildIdGenerator++,this._buildWasSuccessful=!1,this._cachedWorldViewMatrix=new me,this._cachedWorldViewProjectionMatrix=new me,this._optimizers=new Array,this._animationFrame=-1,this._buildIsInProgress=!1,this.BJSNODEMATERIALEDITOR=this._getGlobalNodeMaterialEditor(),this._useAdditionalColor=!1,this.editorData=null,this.ignoreAlpha=!1,this.maxSimultaneousLights=4,this.onBuildObservable=new xe,this.onBuildErrorObservable=new xe,this._vertexOutputNodes=new Array,this._fragmentOutputNodes=new Array,this.attachedBlocks=[],this._mode=fd.Material,this.forceAlphaBlending=!1,!jn.UseNativeShaderLanguageOfEngine&&i&&i.shaderLanguage===1&&!this.getScene().getEngine().isWebGPU)throw new Error("WebGPU shader language is only supported with WebGPU engine");this._options={emitComments:!1,shaderLanguage:jn.DefaultShaderLanguage,...i},jn.UseNativeShaderLanguageOfEngine&&(this._options.shaderLanguage=this.getScene().getEngine().isWebGPU?1:0),this._attachImageProcessingConfiguration(null)}getClassName(){return"NodeMaterial"}_attachImageProcessingConfiguration(e){e!==this._imageProcessingConfiguration&&(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e?this._imageProcessingConfiguration=e:this._imageProcessingConfiguration=this.getScene().imageProcessingConfiguration,this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add(()=>{this._markAllSubMeshesAsImageProcessingDirty()})))}getBlockByName(e){let t=null;for(const i of this.attachedBlocks)if(i.name===e)if(!t)t=i;else return Le.Warn("More than one block was found with the name `"+e+"`"),t;return t}getBlockByPredicate(e){for(const t of this.attachedBlocks)if(e(t))return t;return null}getInputBlockByPredicate(e){for(const t of this.attachedBlocks)if(t.isInput&&e(t))return t;return null}getInputBlocks(){const e=[];for(const t of this.attachedBlocks)t.isInput&&e.push(t);return e}registerOptimizer(e){if(!(this._optimizers.indexOf(e)>-1))return this._optimizers.push(e),this}unregisterOptimizer(e){const t=this._optimizers.indexOf(e);if(t!==-1)return this._optimizers.splice(t,1),this}addOutputNode(e){if(e.target===null)throw"This node is not meant to be an output node. You may want to explicitly set its target value.";return e.target&Te.Vertex&&this._addVertexOutputNode(e),e.target&Te.Fragment&&this._addFragmentOutputNode(e),this}removeOutputNode(e){return e.target===null?this:(e.target&Te.Vertex&&this._removeVertexOutputNode(e),e.target&Te.Fragment&&this._removeFragmentOutputNode(e),this)}_addVertexOutputNode(e){if(this._vertexOutputNodes.indexOf(e)===-1)return e.target=Te.Vertex,this._vertexOutputNodes.push(e),this}_removeVertexOutputNode(e){const t=this._vertexOutputNodes.indexOf(e);if(t!==-1)return this._vertexOutputNodes.splice(t,1),this}_addFragmentOutputNode(e){if(this._fragmentOutputNodes.indexOf(e)===-1)return e.target=Te.Fragment,this._fragmentOutputNodes.push(e),this}_removeFragmentOutputNode(e){const t=this._fragmentOutputNodes.indexOf(e);if(t!==-1)return this._fragmentOutputNodes.splice(t,1),this}get _supportGlowLayer(){return this._fragmentOutputNodes.length===0?!1:!!this._fragmentOutputNodes.some(e=>e.additionalColor&&e.additionalColor.isConnected)}needAlphaBlending(){return this.ignoreAlpha?!1:this.forceAlphaBlending||this.alpha<1||this._sharedData&&this._sharedData.hints.needAlphaBlending}needAlphaTesting(){return this._sharedData&&this._sharedData.hints.needAlphaTesting}_processInitializeOnLink(e,t,i,s=!0){(e.target===Te.VertexAndFragment||t.target===Te.Fragment&&e.target===Te.Vertex&&e._preparationId!==this._buildId)&&i.push(e),this._initializeBlock(e,t,i,s)}_attachBlock(e){if(this.attachedBlocks.indexOf(e)===-1){if(e.isUnique){const t=e.getClassName();for(const i of this.attachedBlocks)if(i.getClassName()===t)throw`Cannot have multiple blocks of type ${t} in the same NodeMaterial`}this.attachedBlocks.push(e)}}_initializeBlock(e,t,i,s=!0){e.initialize(t),s&&e.autoConfigure(this),e._preparationId=this._buildId,this._attachBlock(e);for(const r of e.inputs){r.associatedVariableName="";const n=r.connectedPoint;if(n&&!n._preventBubbleUp){const o=n.ownerBlock;o!==e&&this._processInitializeOnLink(o,t,i,s)}}if(e.isLoop){const r=e;if(r.loopID.hasEndpoints)for(const n of r.loopID.endpoints){const o=n.ownerBlock;o.outputs.length===0&&(t._terminalBlocks.add(o),this._processInitializeOnLink(o,t,i,s))}}else if(e.isTeleportOut){const r=e;r.entryPoint&&this._processInitializeOnLink(r.entryPoint,t,i,s)}for(const r of e.outputs)r.associatedVariableName=""}_resetDualBlocks(e,t){e.target===Te.VertexAndFragment&&(e.buildId=t);for(const i of e.inputs){const s=i.connectedPoint;if(s&&!s._preventBubbleUp){const r=s.ownerBlock;r!==e&&this._resetDualBlocks(r,t)}}if(e.isTeleportOut){const i=e;i.entryPoint&&this._resetDualBlocks(i.entryPoint,t)}else if(e.isLoop){const i=e;if(i.loopID.hasEndpoints)for(const s of i.loopID.endpoints){const r=s.ownerBlock;r.outputs.length===0&&this._resetDualBlocks(r,t)}}}removeBlock(e){const t=this.attachedBlocks.indexOf(e);t>-1&&this.attachedBlocks.splice(t,1),e.isFinalMerger&&this.removeOutputNode(e)}build(e=!1,t=!0,i=!1){if(this._buildIsInProgress){de.Warn("Build is already in progress, You can use NodeMaterial.onBuildObservable to determine when the build is completed.");return}this._buildIsInProgress=!0,!this._vertexCompilationState&&!i&&(i=!0),this._buildWasSuccessful=!1;const s=this.getScene().getEngine(),r=this._mode===fd.Particle;if(this._vertexOutputNodes.length===0&&!r)throw"You must define at least one vertexOutputNode";if(this._fragmentOutputNodes.length===0)throw"You must define at least one fragmentOutputNode";this._vertexCompilationState=new O3e,this._vertexCompilationState.supportUniformBuffers=s.supportsUniformBuffers,this._vertexCompilationState.target=Te.Vertex,this._fragmentCompilationState=new O3e,this._fragmentCompilationState.supportUniformBuffers=s.supportsUniformBuffers,this._fragmentCompilationState.target=Te.Fragment;const n=this._fragmentOutputNodes.filter(f=>f._isFinalOutputAndActive).length>1;let o=this._fragmentOutputNodes;n&&(o=this._fragmentOutputNodes.filter(f=>!f._isFinalOutputAndActive),o.push(this._fragmentOutputNodes.filter(f=>f._isFinalOutputAndActive&&f._hasPrecedence)[0])),this._sharedData=new SFe,this._sharedData.nodeMaterial=this,this._sharedData.fragmentOutputNodes=o,this._vertexCompilationState.sharedData=this._sharedData,this._fragmentCompilationState.sharedData=this._sharedData,this._sharedData.buildId=this._buildId,this._sharedData.emitComments=this._options.emitComments,this._sharedData.verbose=e,this._sharedData.scene=this.getScene(),this._sharedData.allowEmptyVertexProgram=r;const l=[],c=[];for(const f of this._vertexOutputNodes)l.push(f),this._initializeBlock(f,this._vertexCompilationState,c,i);for(const f of o)c.push(f),this._initializeBlock(f,this._fragmentCompilationState,l,i);let u=0;for(const f of this.attachedBlocks)f.codeIsReady||(u++,f.onCodeIsReadyObservable.addOnce(()=>{u--,u===0&&this._finishBuildProcess(e,t,l,c)}));u===0&&this._finishBuildProcess(e,t,l,c)}_finishBuildProcess(e=!1,t=!0,i,s){this.optimize();for(const l of i)l.build(this._vertexCompilationState,i);this._fragmentCompilationState.uniforms=this._vertexCompilationState.uniforms.slice(0),this._fragmentCompilationState._uniformDeclaration=this._vertexCompilationState._uniformDeclaration,this._fragmentCompilationState._constantDeclaration=this._vertexCompilationState._constantDeclaration,this._fragmentCompilationState._vertexState=this._vertexCompilationState;for(const l of s)this._resetDualBlocks(l,this._buildId-1);for(const l of s)l.build(this._fragmentCompilationState,s);this._vertexCompilationState.finalize(this._vertexCompilationState),this._fragmentCompilationState.finalize(this._fragmentCompilationState),t&&(this._buildId=jn._BuildIdGenerator++);const r=this._sharedData.emitErrors(this.onBuildErrorObservable);e&&(de.Log("Vertex shader:"),de.Log(this._vertexCompilationState.compilationString),de.Log("Fragment shader:"),de.Log(this._fragmentCompilationState.compilationString)),this._buildIsInProgress=!1,this._buildWasSuccessful=!0,r&&this.onBuildObservable.notifyObservers(this);const n=this.getScene().meshes;for(const l of n)if(l.subMeshes)for(const c of l.subMeshes){if(c.getMaterial()!==this||!c.materialDefines)continue;const u=c.materialDefines;u.markAllAsDirty(),u.reset()}this.prePassTextureInputs.length&&this.getScene().enablePrePassRenderer();const o=this.getScene().prePassRenderer;o&&o.markAsDirty()}optimize(){for(const e of this._optimizers)e.optimize(this._vertexOutputNodes,this._fragmentOutputNodes)}_prepareDefinesForAttributes(e,t){const i=t.NORMAL,s=t.TANGENT,r=t.VERTEXCOLOR_NME;t.NORMAL=e.isVerticesDataPresent(q.NormalKind),t.TANGENT=e.isVerticesDataPresent(q.TangentKind);const n=e.useVertexColors&&e.isVerticesDataPresent(q.ColorKind);t.VERTEXCOLOR_NME=n;let o=!1;for(let c=1;c<=6;++c){const u=t["UV"+c];t["UV"+c]=e.isVerticesDataPresent(`uv${c===1?"":c}`),o=o||t["UV"+c]!==u}const l=this.needAlphaBlendingForMesh(e)&&this.getScene().useOrderIndependentTransparency;Ew(this.getScene(),t,!l),Da.PrepareDefines(this.getScene().getEngine().currentRenderPassId,e,t),(i!==t.NORMAL||s!==t.TANGENT||r!==t.VERTEXCOLOR_NME||o)&&t.markAsAttributesDirty()}get isPrePassCapable(){return!0}get prePassTextureOutputs(){const e=this.getBlockByPredicate(i=>i.getClassName()==="PrePassOutputBlock"),t=[4];return!e||this.prePassTextureInputs.length||(e.viewDepth.isConnected&&t.push(5),e.screenDepth.isConnected&&t.push(10),e.viewNormal.isConnected&&t.push(6),e.worldNormal.isConnected&&t.push(8),e.worldPosition.isConnected&&t.push(1),e.localPosition.isConnected&&t.push(9),e.reflectivity.isConnected&&t.push(3),e.velocity.isConnected&&t.push(2),e.velocityLinear.isConnected&&t.push(11)),t}get prePassTextureInputs(){const e=this.getAllTextureBlocks().filter(i=>i.getClassName()==="PrePassTextureBlock"),t=[];for(const i of e)i.position.isConnected&&!t.includes(1)&&t.push(1),i.localPosition.isConnected&&!t.includes(9)&&t.push(9),i.depth.isConnected&&!t.includes(5)&&t.push(5),i.screenDepth.isConnected&&!t.includes(10)&&t.push(10),i.normal.isConnected&&!t.includes(6)&&t.push(6),i.worldNormal.isConnected&&!t.includes(8)&&t.push(8);return t}setPrePassRenderer(e){const t=this.prePassTextureInputs.concat(this.prePassTextureOutputs);if(e&&t.length>1){let i=e.getEffectConfiguration("nodeMaterial");i||(i=e.addEffectConfiguration({enabled:!0,needsImageProcessing:!1,name:"nodeMaterial",texturesRequired:[]}));for(const s of t)i.texturesRequired.includes(s)||i.texturesRequired.push(s);i.enabled=!0}return t.length>1}createPostProcess(e,t=1,i=1,s,r,n=0,o=5){return this.mode!==fd.PostProcess?(de.Log("Incompatible material mode"),null):this._createEffectForPostProcess(null,e,t,i,s,r,n,o)}createEffectForPostProcess(e){this._createEffectForPostProcess(e)}_createEffectForPostProcess(e,t,i=1,s=1,r,n,o=0,l=5){let c=this.name+this._buildId;const u=new kB,f=new Ne(c+"PostProcess",this.getScene());let p=this._buildId;return this._processDefines(f,u),Ls.RegisterShader(c,this._fragmentCompilationState._builtCompilationString,this._vertexCompilationState._builtCompilationString,this.shaderLanguage),e?e.updateEffect(u.toString(),this._fragmentCompilationState.uniforms,this._fragmentCompilationState.samplers,{maxSimultaneousLights:this.maxSimultaneousLights},void 0,void 0,c,c):e=new Mi(this.name+"PostProcess",c,this._fragmentCompilationState.uniforms,this._fragmentCompilationState.samplers,i,t,s,r,n,u.toString(),o,c,{maxSimultaneousLights:this.maxSimultaneousLights},!1,l,this.shaderLanguage),e.nodeMaterialSource=this,e.onDisposeObservable.add(()=>{f.dispose()}),e.onApplyObservable.add(m=>{p!==this._buildId&&(delete Ls.ShadersStore[c+"VertexShader"],delete Ls.ShadersStore[c+"PixelShader"],c=this.name+this._buildId,u.markAllAsDirty(),p=this._buildId),this._processDefines(f,u)&&(Ls.RegisterShader(c,this._fragmentCompilationState._builtCompilationString,this._vertexCompilationState._builtCompilationString),V9.SetImmediate(()=>e.updateEffect(u.toString(),this._fragmentCompilationState.uniforms,this._fragmentCompilationState.samplers,{maxSimultaneousLights:this.maxSimultaneousLights},void 0,void 0,c,c))),this._checkInternals(m)}),e}createProceduralTexture(e,t){if(this.mode!==fd.ProceduralTexture)return de.Log("Incompatible material mode"),null;let i=this.name+this._buildId;const s=new zc(i,e,null,t),r=new Ne(i+"Procedural",this.getScene());r.reservedDataStore={hidden:!0};const n=new kB,o=this._processDefines(r,n);Ls.RegisterShader(i,this._fragmentCompilationState._builtCompilationString,this._vertexCompilationState._builtCompilationString,this.shaderLanguage);let l=this.getScene().getEngine().createEffect({vertexElement:i,fragmentElement:i},[q.PositionKind],this._fragmentCompilationState.uniforms,this._fragmentCompilationState.samplers,n.toString(),o==null?void 0:o.fallbacks,void 0,void 0,void 0,this.shaderLanguage);s.nodeMaterialSource=this,s._setEffect(l);let c=this._buildId;const u=()=>{c!==this._buildId&&(delete Ls.ShadersStore[i+"VertexShader"],delete Ls.ShadersStore[i+"PixelShader"],i=this.name+this._buildId,n.markAllAsDirty(),c=this._buildId);const f=this._processDefines(r,n);f&&(Ls.RegisterShader(i,this._fragmentCompilationState._builtCompilationString,this._vertexCompilationState._builtCompilationString,this.shaderLanguage),V9.SetImmediate(()=>{l=this.getScene().getEngine().createEffect({vertexElement:i,fragmentElement:i},[q.PositionKind],this._fragmentCompilationState.uniforms,this._fragmentCompilationState.samplers,n.toString(),f==null?void 0:f.fallbacks,void 0),s._setEffect(l)})),this._checkInternals(l)};return s.onBeforeGenerationObservable.add(()=>{u()}),this.onBuildObservable.add(()=>{u()}),s}_createEffectForParticles(e,t,i,s,r,n,o,l=""){let c=this.name+this._buildId+"_"+t;n||(n=new kB),o||(o=this.getScene().getMeshByName(this.name+"Particle"),o||(o=new Ne(this.name+"Particle",this.getScene()),o.reservedDataStore={hidden:!0}));let u=this._buildId;const f=[];let p=l;if(!r){const m=this._processDefines(o,n);Ls.RegisterShader(c,this._fragmentCompilationState._builtCompilationString,void 0,this.shaderLanguage),e.fillDefines(f,t,!1),p=f.join(`
`),r=this.getScene().getEngine().createEffectForParticles(c,this._fragmentCompilationState.uniforms,this._fragmentCompilationState.samplers,n.toString()+`
`+p,m==null?void 0:m.fallbacks,i,s,e,this.shaderLanguage),e.setCustomEffect(r,t)}r.onBindObservable.add(m=>{u!==this._buildId&&(delete Ls.ShadersStore[c+"PixelShader"],c=this.name+this._buildId+"_"+t,n.markAllAsDirty(),u=this._buildId),f.length=0,e.fillDefines(f,t,!1);const _=f.join(`
`);_!==p&&(n.markAllAsDirty(),p=_);const d=this._processDefines(o,n);if(d){Ls.RegisterShader(c,this._fragmentCompilationState._builtCompilationString,void 0,this.shaderLanguage),m=this.getScene().getEngine().createEffectForParticles(c,this._fragmentCompilationState.uniforms,this._fragmentCompilationState.samplers,n.toString()+`
`+p,d==null?void 0:d.fallbacks,i,s,e),e.setCustomEffect(m,t),this._createEffectForParticles(e,t,i,s,m,n,o,l);return}this._checkInternals(m)})}_checkInternals(e){if(this._sharedData.animatedInputs){const t=this.getScene(),i=t.getFrameId();if(this._animationFrame!==i){for(const s of this._sharedData.animatedInputs)s.animate(t);this._animationFrame=i}}for(const t of this._sharedData.bindableBlocks)t.bind(e,this);for(const t of this._sharedData.inputBlocks)t._transmit(e,this.getScene(),this)}createEffectForParticles(e,t,i){if(this.mode!==fd.Particle){de.Log("Incompatible material mode");return}this._createEffectForParticles(e,sc.BLENDMODE_ONEONE,t,i),this._createEffectForParticles(e,sc.BLENDMODE_MULTIPLY,t,i)}createAsShadowDepthWrapper(e){if(this.mode!==fd.Material){de.Log("Incompatible material mode");return}e.shadowDepthWrapper=new BABYLON.ShadowDepthWrapper(this,this.getScene())}_processDefines(e,t,i=!1,s){let r=null;const n=this.getScene();if(AG(n,t)&&t.markAsMiscDirty(),this._sharedData.blocksWithDefines.forEach(o=>{o.initializeDefines(e,this,t,i)}),this._sharedData.blocksWithDefines.forEach(o=>{o.prepareDefines(e,this,t,i,s)}),t.isDirty){const o=t._areLightsDisposed;t.markAsProcessed(),this._vertexCompilationState.compilationString=this._vertexCompilationState._builtCompilationString,this._fragmentCompilationState.compilationString=this._fragmentCompilationState._builtCompilationString,this._sharedData.repeatableContentBlocks.forEach(p=>{p.replaceRepeatableContent(this._vertexCompilationState,this._fragmentCompilationState,e,t)});const l=[];this._sharedData.dynamicUniformBlocks.forEach(p=>{p.updateUniformsAndSamples(this._vertexCompilationState,this,t,l)});const c=this._vertexCompilationState.uniforms;this._fragmentCompilationState.uniforms.forEach(p=>{c.indexOf(p)===-1&&c.push(p)});const u=this._vertexCompilationState.samplers;this._fragmentCompilationState.samplers.forEach(p=>{u.indexOf(p)===-1&&u.push(p)});const f=new Ra;this._sharedData.blocksWithFallbacks.forEach(p=>{p.provideFallbacks(e,f)}),r={lightDisposed:o,uniformBuffers:l,mergedUniforms:c,mergedSamplers:u,fallbacks:f}}return r}isReadyForSubMesh(e,t,i=!1){if(!this._buildWasSuccessful)return!1;const s=this.getScene();if(this._sharedData.animatedInputs){const c=s.getFrameId();if(this._animationFrame!==c){for(const u of this._sharedData.animatedInputs)u.animate(s);this._animationFrame=c}}const r=t._drawWrapper;if(r.effect&&this.isFrozen&&r._wasPreviouslyReady&&r._wasPreviouslyUsingInstances===i)return!0;(!t.materialDefines||typeof t.materialDefines=="string")&&(t.materialDefines=new kB);const n=t.materialDefines;if(this._isReadyForSubMesh(t))return!0;const o=s.getEngine();if(this._prepareDefinesForAttributes(e,n),this._sharedData.blockingBlocks.some(c=>!c.isReady(e,this,n,i)))return!1;const l=this._processDefines(e,n,i,t);if(l){const c=t.effect,u=n.toString();let f=o.createEffect({vertex:"nodeMaterial"+this._buildId,fragment:"nodeMaterial"+this._buildId,vertexSource:this._vertexCompilationState.compilationString,fragmentSource:this._fragmentCompilationState.compilationString},{attributes:this._vertexCompilationState.attributes,uniformsNames:l.mergedUniforms,uniformBuffersNames:l.uniformBuffers,samplers:l.mergedSamplers,defines:u,fallbacks:l.fallbacks,onCompiled:this.onCompiled,onError:this.onError,multiTarget:n.PREPASS,indexParameters:{maxSimultaneousLights:this.maxSimultaneousLights,maxSimultaneousMorphTargets:n.NUM_MORPH_INFLUENCERS},shaderLanguage:this.shaderLanguage},o);if(f)if(this._onEffectCreatedObservable&&(Wte.effect=f,Wte.subMesh=t,this._onEffectCreatedObservable.notifyObservers(Wte)),this.allowShaderHotSwapping&&c&&!f.isReady()){if(f=c,n.markAsUnprocessed(),l.lightDisposed)return n._areLightsDisposed=!0,!1}else s.resetCachedMaterial(),t.setEffect(f,n,this._materialContext)}if(n.AREALIGHTUSED){for(let c=0;c<e.lightSources.length;c++)if(!e.lightSources[c]._isReady())return!1}return!t.effect||!t.effect.isReady()?!1:(n._renderId=s.getRenderId(),r._wasPreviouslyReady=!0,r._wasPreviouslyUsingInstances=i,this._checkScenePerformancePriority(),!0)}get compiledShaders(){return this._buildWasSuccessful||this.build(),`// Vertex shader
${this._vertexCompilationState.compilationString}

// Fragment shader
${this._fragmentCompilationState.compilationString}`}bindOnlyWorldMatrix(e){const t=this.getScene();if(!this._activeEffect)return;const i=this._sharedData.hints;i.needWorldViewMatrix&&e.multiplyToRef(t.getViewMatrix(),this._cachedWorldViewMatrix),i.needWorldViewProjectionMatrix&&e.multiplyToRef(t.getTransformMatrix(),this._cachedWorldViewProjectionMatrix);for(const s of this._sharedData.inputBlocks)s._transmitWorld(this._activeEffect,e,this._cachedWorldViewMatrix,this._cachedWorldViewProjectionMatrix)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.effect;if(!r)return;this._activeEffect=r,this.bindOnlyWorldMatrix(e);const n=this._mustRebind(s,r,i,t.visibility),o=this._sharedData;if(n){for(const l of o.bindableBlocks)l.bind(r,this,t,i);for(const l of o.forcedBindableBlocks)l.bind(r,this,t,i);for(const l of o.inputBlocks)l._transmit(r,s,this)}else if(!this.isFrozen)for(const l of o.forcedBindableBlocks)l.bind(r,this,t,i);this._afterBind(t,this._activeEffect,i)}getActiveTextures(){const e=super.getActiveTextures();return this._sharedData&&e.push(...this._sharedData.textureBlocks.filter(t=>t.texture).map(t=>t.texture)),e}getTextureBlocks(){return this._sharedData?this._sharedData.textureBlocks:[]}getAllTextureBlocks(){const e=[];for(const t of this.attachedBlocks)jn._BlockIsTextureBlock(t)&&e.push(t);return e}hasTexture(e){if(super.hasTexture(e))return!0;if(!this._sharedData)return!1;for(const t of this._sharedData.textureBlocks)if(t.texture===e)return!0;return!1}dispose(e,t,i){if(t)for(const s of this.getTextureBlocks().filter(r=>r.texture).map(r=>r.texture))s.dispose();for(const s of this.attachedBlocks)s.dispose();this.attachedBlocks.length=0,this._sharedData=null,this._vertexCompilationState=null,this._fragmentCompilationState=null,this.onBuildObservable.clear(),this.onBuildErrorObservable.clear(),this._imageProcessingObserver&&(this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),this._imageProcessingObserver=null),super.dispose(e,t,i)}_createNodeEditor(e){const t={nodeMaterial:this,...e};this.BJSNODEMATERIALEDITOR.NodeEditor.Show(t)}edit(e){return new Promise(t=>{if(this.BJSNODEMATERIALEDITOR=this.BJSNODEMATERIALEDITOR||this._getGlobalNodeMaterialEditor(),typeof this.BJSNODEMATERIALEDITOR>"u"){const i=e&&e.editorURL?e.editorURL:jn.EditorURL;Le.LoadBabylonScript(i,()=>{this.BJSNODEMATERIALEDITOR=this.BJSNODEMATERIALEDITOR||this._getGlobalNodeMaterialEditor(),this._createNodeEditor(e==null?void 0:e.nodeEditorConfig),t()})}else this._createNodeEditor(e==null?void 0:e.nodeEditorConfig),t()})}clear(){this._vertexOutputNodes.length=0,this._fragmentOutputNodes.length=0,this.attachedBlocks.length=0,this._buildIsInProgress=!1}setToDefault(){this.clear(),this.editorData=null;const e=new ys("Position");e.setAsAttribute("position");const t=new ys("World");t.setAsSystemValue(Ds.World);const i=new cO("WorldPos");e.connectTo(i),t.connectTo(i);const s=new ys("ViewProjection");s.setAsSystemValue(Ds.ViewProjection);const r=new cO("WorldPos * ViewProjectionTransform");i.connectTo(r),s.connectTo(r);const n=new uO("VertexOutput");r.connectTo(n);const o=new ys("color");o.value=new St(.8,.8,.8,1);const l=new Wy("FragmentOutput");o.connectTo(l),this.addOutputNode(n),this.addOutputNode(l),this._mode=fd.Material}setToDefaultPostProcess(){this.clear(),this.editorData=null;const e=new ys("Position");e.setAsAttribute("position2d");const t=new ys("Constant1");t.isConstant=!0,t.value=1;const i=new zB("Position3D");e.connectTo(i),t.connectTo(i,{input:"w"});const s=new uO("VertexOutput");i.connectTo(s);const r=new ys("Scale");r.visibleInInspector=!0,r.value=new Ue(1,1);const n=new FB("uv0");e.connectTo(n);const o=new OH("UV scale");n.connectTo(o),r.connectTo(o);const l=new kte("CurrentScreen");o.connectTo(l);const c=Le.GetAssetUrl("https://assets.babylonjs.com/core/nme/currentScreenPostProcess.png");l.texture=new be(c,this.getScene());const u=new Wy("FragmentOutput");l.connectTo(u,{output:"rgba"}),this.addOutputNode(s),this.addOutputNode(u),this._mode=fd.PostProcess}setToDefaultProceduralTexture(){this.clear(),this.editorData=null;const e=new ys("Position");e.setAsAttribute("position2d");const t=new ys("Constant1");t.isConstant=!0,t.value=1;const i=new zB("Position3D");e.connectTo(i),t.connectTo(i,{input:"w"});const s=new uO("VertexOutput");i.connectTo(s);const r=new ys("Time");r.value=0,r.min=0,r.max=0,r.isBoolean=!1,r.matrixMode=0,r.animationType=pb.Time,r.isConstant=!1;const n=new ys("Color3");n.value=new Pe(1,1,1),n.isConstant=!1;const o=new Wy("FragmentOutput"),l=new zB("VectorMerger");l.visibleInInspector=!1;const c=new RH("Cos");c.operation=Fr.Cos,e.connectTo(l),r.output.connectTo(c.input),c.output.connectTo(l.z),l.xyzOut.connectTo(o.rgb),this.addOutputNode(s),this.addOutputNode(o),this._mode=fd.ProceduralTexture}setToDefaultParticle(){this.clear(),this.editorData=null;const e=new ys("uv");e.setAsAttribute("particle_uv");const t=new Ute("ParticleTexture");e.connectTo(t);const i=new ys("Color");i.setAsAttribute("particle_color");const s=new OH("Texture * Color");t.connectTo(s),i.connectTo(s);const r=new jte("ParticleRampGradient");s.connectTo(r);const n=new Gte("ColorSplitter");i.connectTo(n);const o=new Vte("ParticleBlendMultiply");r.connectTo(o),t.connectTo(o,{output:"a"}),n.connectTo(o,{output:"a"});const l=new Wy("FragmentOutput");o.connectTo(l),this.addOutputNode(l),this._mode=fd.Particle}async loadAsync(e,t=""){return jn.ParseFromFileAsync("",e,this.getScene(),t,!0,this)}_gatherBlocks(e,t){if(t.indexOf(e)===-1){t.push(e);for(const i of e.inputs){const s=i.connectedPoint;if(s){const r=s.ownerBlock;r!==e&&this._gatherBlocks(r,t)}}if(e.isTeleportOut){const i=e;i.entryPoint&&this._gatherBlocks(i.entryPoint,t)}}}generateCode(){let e=[];const t=[],i=["const","var","let"];for(const n of this._vertexOutputNodes)this._gatherBlocks(n,t);const s=[];for(const n of this._fragmentOutputNodes)this._gatherBlocks(n,s);let r=`var nodeMaterial = new BABYLON.NodeMaterial("${this.name||"node material"}");
`;r+=`nodeMaterial.mode = BABYLON.NodeMaterialModes.${fd[this.mode]};
`;for(const n of t)n.isInput&&e.indexOf(n)===-1&&(r+=n._dumpCode(i,e));for(const n of s)n.isInput&&e.indexOf(n)===-1&&(r+=n._dumpCode(i,e));e=[],r+=`
// Connections
`;for(const n of this._vertexOutputNodes)r+=n._dumpCodeForOutputConnections(e);for(const n of this._fragmentOutputNodes)r+=n._dumpCodeForOutputConnections(e);r+=`
// Output nodes
`;for(const n of this._vertexOutputNodes)r+=`nodeMaterial.addOutputNode(${n._codeVariableName});
`;for(const n of this._fragmentOutputNodes)r+=`nodeMaterial.addOutputNode(${n._codeVariableName});
`;return r+=`nodeMaterial.build();
`,r}serialize(e){const t=e?{}:It.Serialize(this);t.editorData=JSON.parse(JSON.stringify(this.editorData));let i=[];if(e)i=e;else{t.customType="BABYLON.NodeMaterial",t.outputNodes=[];for(const s of this._vertexOutputNodes)this._gatherBlocks(s,i),t.outputNodes.push(s.uniqueId);for(const s of this._fragmentOutputNodes)this._gatherBlocks(s,i),t.outputNodes.indexOf(s.uniqueId)===-1&&t.outputNodes.push(s.uniqueId)}t.blocks=[];for(const s of i)t.blocks.push(s.serialize());if(!e)for(const s of this.attachedBlocks)i.indexOf(s)===-1&&t.blocks.push(s.serialize());return t.uniqueId=this.uniqueId,t}_restoreConnections(e,t,i){for(const s of e.outputs)for(const r of t.blocks){const n=i[r.id];if(n){for(const o of r.inputs)if(i[o.targetBlockId]===e&&o.targetConnectionName===s.name){const l=n.getInputByName(o.inputName);if(!l||l.isConnected)continue;s.connectTo(l,!0),this._restoreConnections(n,t,i);continue}}}}parseSerializedObject(e,t="",i=!1,s){i||this.clear();const r={};for(const n of e.blocks){const o=ea(n.customType);if(o){const l=new o;l._deserialize(n,this.getScene(),t,s),r[n.id]=l,this.attachedBlocks.push(l)}}for(const n of this.attachedBlocks)if(n.isTeleportOut){const o=n,l=o._tempEntryPointUniqueId;l&&r[l].attachToEndpoint(o)}for(let n=0;n<e.blocks.length;n++){const o=e.blocks[n],l=r[o.id];l&&(l.inputs.length&&!i||this._restoreConnections(l,e,r))}if(e.outputNodes)for(const n of e.outputNodes)this.addOutputNode(r[n]);if(e.locations||e.editorData&&e.editorData.locations){const n=e.locations||e.editorData.locations;for(const l of n)r[l.blockId]&&(l.blockId=r[l.blockId].uniqueId);i&&this.editorData&&this.editorData.locations&&n.concat(this.editorData.locations),e.locations?this.editorData={locations:n}:(this.editorData=e.editorData,this.editorData.locations=n);const o=[];for(const l in r)o[l]=r[l].uniqueId;this.editorData.map=o}this.comment=e.comment,e.forceAlphaBlending!==void 0&&(this.forceAlphaBlending=e.forceAlphaBlending),e.alphaMode!==void 0&&(this.alphaMode=e.alphaMode),i||(this._mode=e.mode??fd.Material)}loadFromSerialization(e,t="",i=!1){this.parseSerializedObject(e,t,i)}clone(e,t=!1){const i=this.serialize(),s=It.Clone(()=>new jn(e,this.getScene(),this.options),this);return s.id=e,s.name=e,s.parseSerializedObject(i),s._buildId=this._buildId,s.build(!1,!t),s}whenTexturesReadyAsync(){const e=[];return this.getActiveTextures().forEach(t=>{const i=t.getInternalTexture();i&&!i.isReady&&e.push(new Promise((s,r)=>{i.onLoadedObservable.addOnce(()=>{s()}),i.onErrorObservable.addOnce(n=>{r(n)})}))}),Promise.all(e)}static Parse(e,t,i="",s=0){const r=It.Parse(()=>new jn(e.name,t,{shaderLanguage:s}),e,t,i);return r.parseSerializedObject(e,i),r.build(),r}static async ParseFromFileAsync(e,t,i,s="",r=!1,n,o,l){const c=n??new jn(e,i,l),u=await i._loadFileAsync(t),f=JSON.parse(u);return c.parseSerializedObject(f,s,void 0,o),r||c.build(),c}static ParseFromSnippetAsync(e,t=ei.LastCreatedScene,i="",s,r=!1,n=!1,o,l){return e==="_BLANK"?Promise.resolve(jn.CreateDefault("blank",t)):new Promise((c,u)=>{const f=new ha;f.addEventListener("readystatechange",()=>{if(f.readyState==4)if(f.status==200){const p=JSON.parse(JSON.parse(f.responseText).jsonPayload),m=JSON.parse(p.nodeMaterial);s||(s=It.Parse(()=>new jn(e,t,l),m,t,i),s.uniqueId=t.getUniqueId()),s.parseSerializedObject(m,void 0,void 0,o),s.snippetId=e,s.sideOrientation=null;try{r||s.build()}catch(_){u(_)}n?s.whenTexturesReadyAsync().then(()=>{c(s)}).catch(_=>{u(_)}):c(s)}else u("Unable to load the snippet "+e)}),f.open("GET",this.SnippetUrl+"/"+e.replace(/#/g,"/")),f.send()})}static CreateDefault(e,t){const i=new jn(e,t);return i.setToDefault(),i.build(),i}}jn._BuildIdGenerator=0,jn.EditorURL=`${Le._DefaultCdnUrl}/v${dt.Version}/nodeEditor/babylon.nodeEditor.js`,jn.SnippetUrl="https://snippet.babylonjs.com",jn.IgnoreTexturesAtLoadTime=!1,jn.DefaultShaderLanguage=0,jn.UseNativeShaderLanguageOfEngine=!1,F([G()],jn.prototype,"ignoreAlpha",void 0),F([G()],jn.prototype,"maxSimultaneousLights",void 0),F([G("mode")],jn.prototype,"_mode",void 0),F([G("comment")],jn.prototype,"comment",void 0),F([G()],jn.prototype,"forceAlphaBlending",void 0),ve("BABYLON.NodeMaterial",jn),Lc.prototype._projectOnTrianglesToRef=function(a,e,t,i,s,r){const n=ae.Vector3[0],o=ae.Vector3[1];let l=1/0;for(let c=this.indexStart;c<this.indexStart+this.indexCount-(3-i);c+=i){const u=t[c],f=t[c+1],p=t[c+2];if(s&&p===4294967295){c+=2;continue}const m=e[u],_=e[f],d=e[p];if(!m||!_||!d)continue;const h=P.ProjectOnTriangleToRef(a,m,_,d,o);h<l&&(n.copyFrom(o),l=h)}return r.copyFrom(n),l},Lc.prototype._projectOnUnIndexedTrianglesToRef=function(a,e,t,i){const s=ae.Vector3[0],r=ae.Vector3[1];let n=1/0;for(let o=this.verticesStart;o<this.verticesStart+this.verticesCount;o+=3){const l=e[o],c=e[o+1],u=e[o+2],f=P.ProjectOnTriangleToRef(a,l,c,u,r);f<n&&(s.copyFrom(r),n=f)}return i.copyFrom(s),n},Lc.prototype.projectToRef=function(a,e,t,i){const s=this.getMaterial();if(!s)return-1;let r=3,n=!1;switch(s.fillMode){case 3:case 5:case 6:case 8:return-1;case 7:r=1,n=!0;break}return s.fillMode===4?-1:!t.length&&this._mesh._unIndexed?this._projectOnUnIndexedTrianglesToRef(a,e,t,i):this._projectOnTrianglesToRef(a,e,t,r,n,i)};var p3;(function(a){a[a.DEHYDRATED=0]="DEHYDRATED",a[a.HOVER=1]="HOVER",a[a.TOUCH=2]="TOUCH"})(p3||(p3={}));var Hte;(function(a){a[a.DISABLED=0]="DISABLED",a[a.CENTERED_ON_CONTROLLER=1]="CENTERED_ON_CONTROLLER",a[a.CENTERED_IN_FRONT=2]="CENTERED_IN_FRONT"})(Hte||(Hte={}));const hO=[new P,new P,new P,new P];class l5 extends Bc{constructor(e,t){super(e),this._options=t,this._tmpRay=new Is(new P,new P),this._attachController=i=>{if(this._controllers[i.uniqueId])return;const{touchCollisionMesh:s,touchCollisionMeshFunction:r,hydrateCollisionMeshFunction:n}=this._generateNewTouchPointMesh(),o=this._generateVisualCue();switch(this._controllers[i.uniqueId]={xrController:i,meshUnderPointer:null,nearInteractionTargetMesh:null,pick:null,stalePick:null,touchCollisionMesh:s,touchCollisionMeshFunction:r,hydrateCollisionMeshFunction:n,currentAnimationState:p3.DEHYDRATED,grabRay:new Is(new P,new P),hoverInteraction:!1,nearInteraction:!1,grabInteraction:!1,downTriggered:!1,id:l5._IdCounter++,pickedPointVisualCue:o},this._controllers[i.uniqueId]._worldScaleObserver=this._controllers[i.uniqueId]._worldScaleObserver||this._xrSessionManager.onWorldScaleFactorChangedObservable.add(l=>{if(l.newScaleFactor!==l.previousScaleFactor){this._controllers[i.uniqueId].touchCollisionMesh.dispose(),this._controllers[i.uniqueId].pickedPointVisualCue.dispose();const{touchCollisionMesh:c,touchCollisionMeshFunction:u,hydrateCollisionMeshFunction:f}=this._generateNewTouchPointMesh();this._controllers[i.uniqueId].touchCollisionMesh=c,this._controllers[i.uniqueId].touchCollisionMeshFunction=u,this._controllers[i.uniqueId].hydrateCollisionMeshFunction=f,this._controllers[i.uniqueId].pickedPointVisualCue=this._generateVisualCue()}}),this._attachedController?!this._options.enableNearInteractionOnAllControllers&&this._options.preferredHandedness&&i.inputSource.handedness===this._options.preferredHandedness&&(this._attachedController=i.uniqueId):this._options.enableNearInteractionOnAllControllers||(this._attachedController=i.uniqueId),i.inputSource.targetRayMode){case"tracked-pointer":return this._attachNearInteractionMode(i);case"gaze":return null;case"screen":return null}},this._controllers={},this._farInteractionFeature=null,this.selectionMeshDefaultColor=new Pe(.8,.8,.8),this.selectionMeshPickedColor=new Pe(.3,.3,1),this.alwaysHideSelectionMesh=!1,this._hoverRadius=.1,this._pickRadius=.02,this._controllerPickRadius=.03,this._nearGrabLengthScale=5,this._scene=this._xrSessionManager.scene,this._options.nearInteractionControllerMode===void 0&&(this._options.nearInteractionControllerMode=2),this._options.farInteractionFeature&&(this._farInteractionFeature=this._options.farInteractionFeature)}attach(){return super.attach()?(this._options.xrInput.controllers.forEach(this._attachController),this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable,this._attachController),this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable,e=>{this._detachController(e.uniqueId)}),this._scene.constantlyUpdateMeshUnderPointer=!0,!0):!1}detach(){return super.detach()?(Object.keys(this._controllers).forEach(e=>{this._detachController(e)}),!0):!1}getMeshUnderPointer(e){return this._controllers[e]?this._controllers[e].meshUnderPointer:null}getXRControllerByPointerId(e){const t=Object.keys(this._controllers);for(let i=0;i<t.length;++i)if(this._controllers[t[i]].id===e)return this._controllers[t[i]].xrController||null;return null}setFarInteractionFeature(e){this._farInteractionFeature=e}_nearPickPredicate(e){return e.isEnabled()&&e.isVisible&&e.isPickable&&e.isNearPickable}_nearGrabPredicate(e){return e.isEnabled()&&e.isVisible&&e.isPickable&&e.isNearGrabbable}_nearInteractionPredicate(e){return e.isEnabled()&&e.isVisible&&e.isPickable&&(e.isNearPickable||e.isNearGrabbable)}_controllerAvailablePredicate(e,t){let i=e;for(;i;){if(i.reservedDataStore&&i.reservedDataStore.nearInteraction&&i.reservedDataStore.nearInteraction.excludedControllerId===t)return!1;i=i.parent}return!0}_handleTransitionAnimation(e,t){var i;if(!(e.currentAnimationState===t||this._options.nearInteractionControllerMode!==2||(i=e.xrController)!=null&&i.inputSource.hand)){if(t>e.currentAnimationState)switch(e.currentAnimationState){case p3.DEHYDRATED:if(e.hydrateCollisionMeshFunction(!0),t===p3.HOVER)break;case p3.HOVER:if(e.touchCollisionMeshFunction(!0),t===p3.TOUCH)break}else switch(e.currentAnimationState){case p3.TOUCH:if(e.touchCollisionMeshFunction(!1),t===p3.HOVER)break;case p3.HOVER:if(e.hydrateCollisionMeshFunction(!1),t===p3.DEHYDRATED)break}e.currentAnimationState=t}}_processTouchPoint(e,t,i){var r;const s=this._controllers[e];s.grabRay.origin.copyFrom(t),i.toEulerAnglesToRef(ae.Vector3[0]),s.grabRay.direction.copyFrom(ae.Vector3[0]),this._options.nearInteractionControllerMode===2&&!((r=s.xrController)!=null&&r.inputSource.hand)&&(s.xrController.getWorldPointerRayToRef(this._tmpRay),s.grabRay.origin.addInPlace(this._tmpRay.direction.scale(.05))),s.grabRay.length=this._nearGrabLengthScale*this._hoverRadius*this._xrSessionManager.worldScalingFactor,s.touchCollisionMesh.position.copyFrom(s.grabRay.origin).scaleInPlace(this._xrSessionManager.worldScalingFactor)}_onXRFrame(e){Object.keys(this._controllers).forEach(t=>{var l;const i=this._controllers[t],s=(l=i.xrController)==null?void 0:l.inputSource.hand;if(!this._options.enableNearInteractionOnAllControllers&&t!==this._attachedController||!i.xrController||!s&&(!this._options.nearInteractionControllerMode||!i.xrController.inputSource.gamepad)){i.pick=null;return}if(i.hoverInteraction=!1,i.nearInteraction=!1,i.xrController){if(s){const c=s.get("index-finger-tip");if(c){const u=e.getJointPose(c,this._xrSessionManager.referenceSpace);if(u&&u.transform){const f=this._scene.useRightHandedSystem?1:-1;ae.Vector3[0].set(u.transform.position.x,u.transform.position.y,u.transform.position.z*f),ae.Quaternion[0].set(u.transform.orientation.x,u.transform.orientation.y,u.transform.orientation.z*f,u.transform.orientation.w*f),this._processTouchPoint(t,ae.Vector3[0],ae.Quaternion[0])}}}else if(i.xrController.inputSource.gamepad&&this._options.nearInteractionControllerMode!==0){let c=i.xrController.pointer;i.xrController.grip&&this._options.nearInteractionControllerMode===1&&(c=i.xrController.grip),this._processTouchPoint(t,c.position,c.rotationQuaternion)}}else return;const r=(c,u)=>{let f=null;return!u||!u.hit?f=c:!c||!c.hit||u.distance<c.distance?f=u:f=c,f},n=c=>{let u=new Kl,f=!1;const p=c&&c.pickedPoint&&c.hit;return c!=null&&c.pickedPoint&&(f=c.pickedPoint.x===0&&c.pickedPoint.y===0&&c.pickedPoint.z===0),p&&!f&&(u=c),u};if(!i.grabInteraction){let c=null,u=null;this._options.useUtilityLayer&&this._utilityLayerScene&&(u=this._pickWithSphere(i,this._hoverRadius*this._xrSessionManager.worldScalingFactor,this._utilityLayerScene,m=>this._nearInteractionPredicate(m)));const f=this._pickWithSphere(i,this._hoverRadius*this._xrSessionManager.worldScalingFactor,this._scene,m=>this._nearInteractionPredicate(m)),p=r(f,u);if(p&&p.hit&&(c=n(p),c.hit&&(i.hoverInteraction=!0)),i.hoverInteraction){let m=null;const _=(s?this._pickRadius:this._controllerPickRadius)*this._xrSessionManager.worldScalingFactor;this._options.useUtilityLayer&&this._utilityLayerScene&&(m=this._pickWithSphere(i,_,this._utilityLayerScene,A=>this._nearPickPredicate(A)));const d=this._pickWithSphere(i,_,this._scene,A=>this._nearPickPredicate(A)),h=r(d,m),x=n(h);x.hit&&(c=x,i.nearInteraction=!0)}i.stalePick=i.pick,i.pick=c,i.pick&&i.pick.pickedPoint&&i.pick.hit?(i.meshUnderPointer=i.pick.pickedMesh,i.pickedPointVisualCue.position.copyFrom(i.pick.pickedPoint),i.pickedPointVisualCue.isVisible=!this.alwaysHideSelectionMesh,this._farInteractionFeature&&this._farInteractionFeature.attached&&this._farInteractionFeature._setPointerSelectionDisabledByPointerId(i.id,!0)):(i.meshUnderPointer=null,i.pickedPointVisualCue.isVisible=!1,this._farInteractionFeature&&this._farInteractionFeature.attached&&this._farInteractionFeature._setPointerSelectionDisabledByPointerId(i.id,!1))}let o=p3.DEHYDRATED;i.grabInteraction||i.nearInteraction?o=p3.TOUCH:i.hoverInteraction&&(o=p3.HOVER),this._handleTransitionAnimation(i,o)})}get _utilityLayerScene(){return this._options.customUtilityLayerScene||Dr.DefaultUtilityLayer.utilityLayerScene}_generateVisualCue(){const e=this._options.useUtilityLayer?this._options.customUtilityLayerScene||Dr.DefaultUtilityLayer.utilityLayerScene:this._scene,t=hd("nearInteraction",{diameter:.0035*3*this._xrSessionManager.worldScalingFactor},e);t.bakeCurrentTransformIntoVertices(),t.isPickable=!1,t.isVisible=!1,t.rotationQuaternion=Re.Identity();const i=new Bt("targetMat",e);return i.specularColor=Pe.Black(),i.emissiveColor=this.selectionMeshDefaultColor,i.backFaceCulling=!1,t.material=i,t}_isControllerReadyForNearInteraction(e){return this._farInteractionFeature?this._farInteractionFeature._getPointerSelectionDisabledByPointerId(e):!0}_attachNearInteractionMode(e){const t=this._controllers[e.uniqueId],i={pointerId:t.id,pointerType:"xr-near"};t.onFrameObserver=this._xrSessionManager.onXRFrameObservable.add(()=>{!this._options.enableNearInteractionOnAllControllers&&e.uniqueId!==this._attachedController||!t.xrController||!t.xrController.inputSource.hand&&(!this._options.nearInteractionControllerMode||!t.xrController.inputSource.gamepad)||(t.pick&&(t.pick.ray=t.grabRay),t.pick&&this._isControllerReadyForNearInteraction(t.id)&&this._scene.simulatePointerMove(t.pick,i),t.nearInteraction&&t.pick&&t.pick.hit?t.nearInteractionTargetMesh||(this._scene.simulatePointerDown(t.pick,i),t.nearInteractionTargetMesh=t.meshUnderPointer,t.downTriggered=!0):t.nearInteractionTargetMesh&&t.stalePick&&(this._scene.simulatePointerUp(t.stalePick,i),t.downTriggered=!1,t.nearInteractionTargetMesh=null))});const s=r=>{this._options.enableNearInteractionOnAllControllers||e.uniqueId===this._attachedController&&this._isControllerReadyForNearInteraction(t.id)?(t.pick&&(t.pick.ray=t.grabRay),r&&t.pick&&t.meshUnderPointer&&this._nearGrabPredicate(t.meshUnderPointer)?(t.grabInteraction=!0,t.pickedPointVisualCue.isVisible=!1,this._scene.simulatePointerDown(t.pick,i),t.downTriggered=!0):!r&&t.pick&&t.grabInteraction&&(this._scene.simulatePointerUp(t.pick,i),t.downTriggered=!1,t.grabInteraction=!1,t.pickedPointVisualCue.isVisible=!this.alwaysHideSelectionMesh)):r&&!this._options.enableNearInteractionOnAllControllers&&!this._options.disableSwitchOnClick&&(this._attachedController=e.uniqueId)};if(e.inputSource.gamepad){const r=n=>{t.squeezeComponent=n.getComponent("grasp"),t.squeezeComponent?t.onSqueezeButtonChangedObserver=t.squeezeComponent.onButtonStateChangedObservable.add(o=>{if(o.changes.pressed){const l=o.changes.pressed.current;s(l)}}):(t.selectionComponent=n.getMainComponent(),t.onButtonChangedObserver=t.selectionComponent.onButtonStateChangedObservable.add(o=>{if(o.changes.pressed){const l=o.changes.pressed.current;s(l)}}))};e.motionController?r(e.motionController):e.onMotionControllerInitObservable.add(r)}else{const r=o=>{t.xrController&&o.inputSource===t.xrController.inputSource&&t.pick&&this._isControllerReadyForNearInteraction(t.id)&&t.meshUnderPointer&&this._nearGrabPredicate(t.meshUnderPointer)&&(t.grabInteraction=!0,t.pickedPointVisualCue.isVisible=!1,this._scene.simulatePointerDown(t.pick,i),t.downTriggered=!0)},n=o=>{t.xrController&&o.inputSource===t.xrController.inputSource&&t.pick&&this._isControllerReadyForNearInteraction(t.id)&&(this._scene.simulatePointerUp(t.pick,i),t.grabInteraction=!1,t.pickedPointVisualCue.isVisible=!this.alwaysHideSelectionMesh,t.downTriggered=!1)};t.eventListeners={selectend:n,selectstart:r},this._xrSessionManager.session.addEventListener("selectstart",r),this._xrSessionManager.session.addEventListener("selectend",n)}}_detachController(e){const t=this._controllers[e];if(t&&(t.squeezeComponent&&t.onSqueezeButtonChangedObserver&&t.squeezeComponent.onButtonStateChangedObservable.remove(t.onSqueezeButtonChangedObserver),t.selectionComponent&&t.onButtonChangedObserver&&t.selectionComponent.onButtonStateChangedObservable.remove(t.onButtonChangedObserver),t.onFrameObserver&&this._xrSessionManager.onXRFrameObservable.remove(t.onFrameObserver),t.eventListeners&&Object.keys(t.eventListeners).forEach(i=>{const s=t.eventListeners&&t.eventListeners[i];s&&this._xrSessionManager.session.removeEventListener(i,s)}),t.touchCollisionMesh.dispose(),t.pickedPointVisualCue.dispose(),this._xrSessionManager.runInXRFrame(()=>{if(!t.downTriggered)return;const i={pointerId:t.id,pointerType:"xr-near"};this._scene.simulatePointerUp(new Kl,i)}),t._worldScaleObserver&&this._xrSessionManager.onWorldScaleFactorChangedObservable.remove(t._worldScaleObserver),delete this._controllers[e],this._attachedController===e)){const i=Object.keys(this._controllers);i.length?this._attachedController=i[0]:this._attachedController=""}}_generateNewTouchPointMesh(){const e=this._xrSessionManager.worldScalingFactor,t=this._options.useUtilityLayer?this._options.customUtilityLayerScene||Dr.DefaultUtilityLayer.utilityLayerScene:this._scene,i=hd("PickSphere",{diameter:1*e},t);if(i.isVisible=!1,this._options.motionControllerOrbMaterial)i.material=this._options.motionControllerOrbMaterial;else{let O;this._options.motionControllerTouchMaterialSnippetUrl?O=jn.ParseFromFileAsync("motionControllerTouchMaterial",this._options.motionControllerTouchMaterialSnippetUrl,t):O=jn.ParseFromSnippetAsync("8RUNKL#3",t),O.then(R=>{i.material=R}).catch(R=>{de.Warn(`Error creating touch material in WebXRNearInteraction: ${R}`)})}const s=new ob;s.setEasingMode(Uo.EASINGMODE_EASEINOUT);const r=new P(this._controllerPickRadius,this._controllerPickRadius,this._controllerPickRadius).scaleInPlace(e),n=this._controllerPickRadius*(4/3),o=new P(n,n,n).scaleInPlace(e),l=this._controllerPickRadius*(7/6),c=new P(l,l,l).scaleInPlace(e),u=this._controllerPickRadius*(4/5),f=new P(u,u,u).scaleInPlace(e),p=this._controllerPickRadius*(3/2),m=new P(p,p,p).scaleInPlace(e),_=[{frame:0,value:r},{frame:10,value:m},{frame:18,value:o}],d=[{frame:0,value:o},{frame:10,value:f},{frame:18,value:r}],h=[{frame:0,value:P.ZeroReadOnly},{frame:12,value:c},{frame:15,value:r}],x=[{frame:0,value:r},{frame:10,value:P.ZeroReadOnly},{frame:15,value:P.ZeroReadOnly}],A=new He("touch","scaling",60,He.ANIMATIONTYPE_VECTOR3,He.ANIMATIONLOOPMODE_CONSTANT),S=new He("release","scaling",60,He.ANIMATIONTYPE_VECTOR3,He.ANIMATIONLOOPMODE_CONSTANT),E=new He("hydrate","scaling",60,He.ANIMATIONTYPE_VECTOR3,He.ANIMATIONLOOPMODE_CONSTANT),b=new He("dehydrate","scaling",60,He.ANIMATIONTYPE_VECTOR3,He.ANIMATIONLOOPMODE_CONSTANT);return A.setEasingFunction(s),S.setEasingFunction(s),E.setEasingFunction(s),b.setEasingFunction(s),A.setKeys(_),S.setKeys(d),E.setKeys(h),b.setKeys(x),{touchCollisionMesh:i,touchCollisionMeshFunction:O=>{const R=O?A:S;t.beginDirectAnimation(i,[R],0,18,!1,1)},hydrateCollisionMeshFunction:O=>{const R=O?E:b;O&&(i.isVisible=!0),t.beginDirectAnimation(i,[R],0,15,!1,1,()=>{O||(i.isVisible=!1)})}}}_pickWithSphere(e,t,i,s){const r=new Kl;if(r.distance=1/0,e.touchCollisionMesh&&e.xrController){const n=e.touchCollisionMesh.position,o=Vv.CreateFromCenterAndRadius(n,t);for(let l=0;l<i.meshes.length;l++){const c=i.meshes[l];if(!s(c)||!this._controllerAvailablePredicate(c,e.xrController.uniqueId))continue;const u=l5.PickMeshWithSphere(c,o);u&&u.hit&&u.distance<r.distance&&(r.hit=u.hit,r.pickedMesh=c,r.pickedPoint=u.pickedPoint,r.aimTransform=e.xrController.pointer,r.gripTransform=e.xrController.grip||null,r.originMesh=e.touchCollisionMesh,r.distance=u.distance,r.bu=u.bu,r.bv=u.bv,r.faceId=u.faceId,r.subMeshId=u.subMeshId)}}return r}static PickMeshWithSphere(e,t,i=!1){const s=e.subMeshes,r=new Kl,n=e.getBoundingInfo();if(!e._generatePointsArray()||!e.subMeshes||!n||!i&&!Vv.Intersects(n.boundingSphere,t))return r;const o=hO[0],l=hO[1];hO[2].setAll(0),hO[3].setAll(0);const c=new Is(hO[2],hO[3],1);let u=1/0,f,p,m,_;const d=ae.Vector3[2],h=ae.Matrix[0];h.copyFrom(e.getWorldMatrix()),h.invert(),P.TransformCoordinatesToRef(t.center,h,d);for(let x=0;x<s.length;x++)s[x].projectToRef(d,e._positions,e.getIndices(),l),P.TransformCoordinatesToRef(l,e.getWorldMatrix(),l),f=P.Distance(l,t.center),m=P.DistanceSquared(l,e.getAbsolutePosition()),p=P.DistanceSquared(t.center,e.getAbsolutePosition()),p!==-1&&m!==-1&&m>p&&(f=0,l.copyFrom(t.center)),f!==-1&&f<u&&(u=f,Is.CreateFromToToRef(t.center,l,c),c.length=u*2,_=c.intersectsMesh(e),o.copyFrom(l));return u<t.radius&&(r.hit=!0,r.distance=u,r.pickedMesh=e,r.pickedPoint=o.clone(),_&&_.bu!==null&&_.bv!==null&&(r.faceId=_.faceId,r.subMeshId=_.subMeshId,r.bu=_.bu,r.bv=_.bv)),r}}l5._IdCounter=200,l5.Name=ur.NEAR_INTERACTION,l5.Version=1,$a.AddWebXRFeature(l5.Name,(a,e)=>()=>new l5(a,e),l5.Version,!0);class w3e{constructor(e,t,i){this.element=e,this.sessionMode=t,this.referenceSpaceType=i}update(e){}}class EFe{}class DH{constructor(e,t){if(this._scene=e,this.options=t,this._activeButton=null,this._buttons=[],this.activeButtonChangedObservable=new xe,this._onSessionGranted=s=>{this._helper&&this._enterXRWithButtonIndex(0)},this.overlay=document.createElement("div"),this.overlay.classList.add("xr-button-overlay"),!t.ignoreSessionGrantedEvent&&navigator.xr&&navigator.xr.addEventListener("sessiongranted",this._onSessionGranted),typeof window<"u"&&window.location&&window.location.protocol==="http:"&&window.location.hostname!=="localhost")throw Le.Warn("WebXR can only be served over HTTPS"),new Error("WebXR can only be served over HTTPS");if(t.customButtons)this._buttons=t.customButtons;else{this.overlay.style.cssText="z-index:11;position: absolute; right: 20px;bottom: 50px;";const s=t.sessionMode||"immersive-vr",r=t.referenceSpaceType||"local-floor";let o=".babylonVRicon { color: #868686; border-color: #868686; border-style: solid; margin-left: 10px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url("+(typeof SVGSVGElement>"u"?"https://cdn.babylonjs.com/Assets/vrButton.png":"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A")+"); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }";o+='.babylonVRicon.vrdisplaypresenting { background-image: none;} .vrdisplaypresenting::after { content: "EXIT"} .xr-error::after { content: "ERROR"}';const l=document.createElement("style");l.appendChild(document.createTextNode(o)),document.getElementsByTagName("head")[0].appendChild(l);const c=document.createElement("button");c.className="babylonVRicon",c.title=`${s} - ${r}`,this._buttons.push(new w3e(c,s,r)),this._buttons[this._buttons.length-1].update=function(u){this.element.style.display=u===null||u===this?"":"none",c.className="babylonVRicon"+(u===this?" vrdisplaypresenting":"")},this._updateButtons(null)}const i=e.getEngine().getInputElement();i&&i.parentNode&&(i.parentNode.appendChild(this.overlay),e.onDisposeObservable.addOnce(()=>{this.dispose()}))}async setHelperAsync(e,t){this._helper=e,this._renderTarget=t;const i=this._buttons.map(r=>e.sessionManager.isSessionSupportedAsync(r.sessionMode));e.onStateChangedObservable.add(r=>{r==3&&this._updateButtons(null)}),(await Promise.all(i)).forEach((r,n)=>{r?(this.overlay.appendChild(this._buttons[n].element),this._buttons[n].element.onclick=this._enterXRWithButtonIndex.bind(this,n)):Le.Warn(`Session mode "${this._buttons[n].sessionMode}" not supported in browser`)})}static async CreateAsync(e,t,i){const s=new DH(e,i);return await s.setHelperAsync(t,i.renderTarget||void 0),s}async _enterXRWithButtonIndex(e=0){if(this._helper.state==2)await this._helper.exitXRAsync(),this._updateButtons(null);else if(this._helper.state==3)try{await this._helper.enterXRAsync(this._buttons[e].sessionMode,this._buttons[e].referenceSpaceType,this._renderTarget,{optionalFeatures:this.options.optionalFeatures,requiredFeatures:this.options.requiredFeatures}),this._updateButtons(this._buttons[e])}catch(t){this._updateButtons(null);const i=this._buttons[e].element,s=i.title;i.title="Error entering XR session : "+s,i.classList.add("xr-error"),this.options.onError&&this.options.onError(t)}}dispose(){const e=this._scene.getEngine().getInputElement();e&&e.parentNode&&e.parentNode.contains(this.overlay)&&e.parentNode.removeChild(this.overlay),this.activeButtonChangedObservable.clear(),navigator.xr.removeEventListener("sessiongranted",this._onSessionGranted)}_updateButtons(e){this._activeButton=e,this._buttons.forEach(t=>{t.update(this._activeButton)}),this.activeButtonChangedObservable.notifyObservers(this._activeButton)}}var Yte;(function(a){a.WRIST="wrist",a.THUMB="thumb",a.INDEX="index",a.MIDDLE="middle",a.RING="ring",a.LITTLE="little"})(Yte||(Yte={}));var Xte;(function(a){a.WRIST="wrist",a.THUMB_METACARPAL="thumb-metacarpal",a.THUMB_PHALANX_PROXIMAL="thumb-phalanx-proximal",a.THUMB_PHALANX_DISTAL="thumb-phalanx-distal",a.THUMB_TIP="thumb-tip",a.INDEX_FINGER_METACARPAL="index-finger-metacarpal",a.INDEX_FINGER_PHALANX_PROXIMAL="index-finger-phalanx-proximal",a.INDEX_FINGER_PHALANX_INTERMEDIATE="index-finger-phalanx-intermediate",a.INDEX_FINGER_PHALANX_DISTAL="index-finger-phalanx-distal",a.INDEX_FINGER_TIP="index-finger-tip",a.MIDDLE_FINGER_METACARPAL="middle-finger-metacarpal",a.MIDDLE_FINGER_PHALANX_PROXIMAL="middle-finger-phalanx-proximal",a.MIDDLE_FINGER_PHALANX_INTERMEDIATE="middle-finger-phalanx-intermediate",a.MIDDLE_FINGER_PHALANX_DISTAL="middle-finger-phalanx-distal",a.MIDDLE_FINGER_TIP="middle-finger-tip",a.RING_FINGER_METACARPAL="ring-finger-metacarpal",a.RING_FINGER_PHALANX_PROXIMAL="ring-finger-phalanx-proximal",a.RING_FINGER_PHALANX_INTERMEDIATE="ring-finger-phalanx-intermediate",a.RING_FINGER_PHALANX_DISTAL="ring-finger-phalanx-distal",a.RING_FINGER_TIP="ring-finger-tip",a.PINKY_FINGER_METACARPAL="pinky-finger-metacarpal",a.PINKY_FINGER_PHALANX_PROXIMAL="pinky-finger-phalanx-proximal",a.PINKY_FINGER_PHALANX_INTERMEDIATE="pinky-finger-phalanx-intermediate",a.PINKY_FINGER_PHALANX_DISTAL="pinky-finger-phalanx-distal",a.PINKY_FINGER_TIP="pinky-finger-tip"})(Xte||(Xte={}));const c5=["wrist","thumb-metacarpal","thumb-phalanx-proximal","thumb-phalanx-distal","thumb-tip","index-finger-metacarpal","index-finger-phalanx-proximal","index-finger-phalanx-intermediate","index-finger-phalanx-distal","index-finger-tip","middle-finger-metacarpal","middle-finger-phalanx-proximal","middle-finger-phalanx-intermediate","middle-finger-phalanx-distal","middle-finger-tip","ring-finger-metacarpal","ring-finger-phalanx-proximal","ring-finger-phalanx-intermediate","ring-finger-phalanx-distal","ring-finger-tip","pinky-finger-metacarpal","pinky-finger-phalanx-proximal","pinky-finger-phalanx-intermediate","pinky-finger-phalanx-distal","pinky-finger-tip"],TFe={wrist:["wrist"],thumb:["thumb-metacarpal","thumb-phalanx-proximal","thumb-phalanx-distal","thumb-tip"],index:["index-finger-metacarpal","index-finger-phalanx-proximal","index-finger-phalanx-intermediate","index-finger-phalanx-distal","index-finger-tip"],middle:["middle-finger-metacarpal","middle-finger-phalanx-proximal","middle-finger-phalanx-intermediate","middle-finger-phalanx-distal","middle-finger-tip"],ring:["ring-finger-metacarpal","ring-finger-phalanx-proximal","ring-finger-phalanx-intermediate","ring-finger-phalanx-distal","ring-finger-tip"],little:["pinky-finger-metacarpal","pinky-finger-phalanx-proximal","pinky-finger-phalanx-intermediate","pinky-finger-phalanx-distal","pinky-finger-tip"]};class B3e{get handMesh(){return this._handMesh}getHandPartMeshes(e){return TFe[e].map(t=>this._jointMeshes[c5.indexOf(t)])}getJointMesh(e){return this._jointMeshes[c5.indexOf(e)]}constructor(e,t,i,s,r=!1,n=!1,o=1){var l;this.xrController=e,this._jointMeshes=t,this._handMesh=i,this.rigMapping=s,this._leftHandedMeshes=r,this._jointsInvisible=n,this._jointScaleFactor=o,this.onHandMeshSetObservable=new xe,this._jointTransforms=new Array(c5.length),this._jointTransformMatrices=new Float32Array(c5.length*16),this._tempJointMatrix=new me,this._jointRadii=new Float32Array(c5.length),this._scene=t[0].getScene();for(let c=0;c<this._jointTransforms.length;c++)this._jointTransforms[c]=new Si(c5[c],this._scene),this._jointTransforms[c].rotationQuaternion=new Re,t[c].rotationQuaternion?t[c].rotationQuaternion=new Re:(l=t[c].rotationQuaternion)==null||l.set(0,0,0,1);i&&this.setHandMesh(i,s),this.xrController.motionController&&this.xrController.motionController.rootMesh&&this.xrController.motionController.rootMesh.dispose(!1,!0),this.xrController.onMotionControllerInitObservable.add(c=>{c._doNotLoadControllerMesh=!0})}setHandMesh(e,t,i){if(this._handMesh=e,e.alwaysSelectAsActiveMesh=!0,e.getChildMeshes().forEach(s=>{s.alwaysSelectAsActiveMesh=!0}),this._handMesh.skeleton){const s=this._handMesh.skeleton;c5.forEach((r,n)=>{const o=s.getBoneIndexByName(t?t[r]:r);o!==-1&&s.bones[o].linkTransformNode(this._jointTransforms[n])})}this.onHandMeshSetObservable.notifyObservers(this)}updateFromXRFrame(e,t){const i=this.xrController.inputSource.hand;if(!i)return;const s=i,r=c5.map(o=>s[o]||i.get(o));let n=!1;if(e.fillPoses&&e.fillJointRadii)n=e.fillPoses(r,t,this._jointTransformMatrices)&&e.fillJointRadii(r,this._jointRadii);else if(e.getJointPose){n=!0;for(let o=0;o<r.length;o++){const l=e.getJointPose(r[o],t);if(l)this._jointTransformMatrices.set(l.transform.matrix,o*16),this._jointRadii[o]=l.radius||.008;else{n=!1;break}}}n&&(c5.forEach((o,l)=>{const c=this._jointTransforms[l];me.FromArrayToRef(this._jointTransformMatrices,l*16,this._tempJointMatrix),this._tempJointMatrix.decompose(void 0,c.rotationQuaternion,c.position);const u=this._jointRadii[l]*this._jointScaleFactor,f=this._jointMeshes[l];f.isVisible=!this._handMesh&&!this._jointsInvisible,f.position.copyFrom(c.position),f.rotationQuaternion.copyFrom(c.rotationQuaternion),f.scaling.setAll(u),this._scene.useRightHandedSystem||(f.position.z*=-1,f.rotationQuaternion.z*=-1,f.rotationQuaternion.w*=-1,this._leftHandedMeshes&&this._handMesh&&(c.position.z*=-1,c.rotationQuaternion.z*=-1,c.rotationQuaternion.w*=-1))}),this._handMesh&&(this._handMesh.isVisible=!0))}dispose(e=!1){var t;this._handMesh&&(e?((t=this._handMesh.skeleton)==null||t.dispose(),this._handMesh.dispose(!1,!0)):this._handMesh.isVisible=!1),this._jointTransforms.forEach(i=>i.dispose()),this._jointTransforms.length=0,this.onHandMeshSetObservable.clear()}}class Nr extends Bc{static _GenerateTrackedJointMeshes(e,t=FP("jointParent",Nr._ICOSPHERE_PARAMS)){const i={};return["left","right"].map(s=>{var n,o,l,c;const r=[];t.isVisible=!!((n=e.jointMeshes)!=null&&n.keepOriginalVisible);for(let u=0;u<c5.length;++u){let f=t.createInstance(`${s}-handJoint-${u}`);if((o=e.jointMeshes)!=null&&o.onHandJointMeshGenerated){const p=e.jointMeshes.onHandJointMeshGenerated(f,u,s);p&&p!==f&&(f.dispose(),f=p)}if(f.isPickable=!1,(l=e.jointMeshes)!=null&&l.enablePhysics){const p=((c=e.jointMeshes)==null?void 0:c.physicsProps)||{};f.scaling.setAll(.02);const m=p.impostorType!==void 0?p.impostorType:$i.SphereImpostor;f.physicsImpostor=new $i(f,m,{mass:0,...p})}f.rotationQuaternion=new Re,f.isVisible=!1,r.push(f)}i[s]=r}),{left:i.left,right:i.right}}static _GenerateDefaultHandMeshesAsync(e,t,i){return new Promise(async s=>{var _,d,h,x,A,S;const r={};(d=(_=Nr._RightHandGLB)==null?void 0:_.meshes[1])!=null&&d.isDisposed()&&(Nr._RightHandGLB=null),(x=(h=Nr._LeftHandGLB)==null?void 0:h.meshes[1])!=null&&x.isDisposed()&&(Nr._LeftHandGLB=null);const n=!!(Nr._RightHandGLB&&Nr._LeftHandGLB),o=Le.GetAssetUrl(Nr.DEFAULT_HAND_MODEL_BASE_URL),l=await Promise.all([Nr._RightHandGLB||wr.ImportMeshAsync("",o,Nr.DEFAULT_HAND_MODEL_RIGHT_FILENAME,e),Nr._LeftHandGLB||wr.ImportMeshAsync("",o,Nr.DEFAULT_HAND_MODEL_LEFT_FILENAME,e)]);Nr._RightHandGLB=l[0],Nr._LeftHandGLB=l[1];const c=Le.GetAssetUrl(Nr.DEFAULT_HAND_MODEL_SHADER_URL),u=await jn.ParseFromFileAsync("handShader",c,e,void 0,!0);u.needDepthPrePass=!0,u.transparencyMode=ft.MATERIAL_ALPHABLEND,u.alphaMode=2,u.build(!1);const f={base:Pe.FromInts(116,63,203),fresnel:Pe.FromInts(149,102,229),fingerColor:Pe.FromInts(177,130,255),tipFresnel:Pe.FromInts(220,200,255),...(A=i==null?void 0:i.handMeshes)==null?void 0:A.customColors},p={base:u.getBlockByName("baseColor"),fresnel:u.getBlockByName("fresnelColor"),fingerColor:u.getBlockByName("fingerColor"),tipFresnel:u.getBlockByName("tipFresnelColor")};p.base.value=f.base,p.fresnel.value=f.fresnel,p.fingerColor.value=f.fingerColor,p.tipFresnel.value=f.tipFresnel;const m=(S=t._getBaseLayerWrapper())==null?void 0:S.isMultiview;["left","right"].forEach(E=>{var T;const b=E=="left"?Nr._LeftHandGLB:Nr._RightHandGLB;if(!b)throw new Error("Could not load hand model");const M=b.meshes[1];M._internalAbstractMeshDataInfo._computeBonesUsingShaders=!0,!m&&!((T=i==null?void 0:i.handMeshes)!=null&&T.disableHandShader)&&(M.material=u.clone(`${E}HandShaderClone`,!0)),M.isVisible=!1,r[E]=M,!n&&!e.useRightHandedSystem&&b.meshes[1].rotate(fo.Y,Math.PI)}),u.dispose(),s({left:r.left,right:r.right})})}static _GenerateDefaultHandMeshRigMapping(e){const t=e=="right"?"R":"L";return{wrist:`wrist_${t}`,"thumb-metacarpal":`thumb_metacarpal_${t}`,"thumb-phalanx-proximal":`thumb_proxPhalanx_${t}`,"thumb-phalanx-distal":`thumb_distPhalanx_${t}`,"thumb-tip":`thumb_tip_${t}`,"index-finger-metacarpal":`index_metacarpal_${t}`,"index-finger-phalanx-proximal":`index_proxPhalanx_${t}`,"index-finger-phalanx-intermediate":`index_intPhalanx_${t}`,"index-finger-phalanx-distal":`index_distPhalanx_${t}`,"index-finger-tip":`index_tip_${t}`,"middle-finger-metacarpal":`middle_metacarpal_${t}`,"middle-finger-phalanx-proximal":`middle_proxPhalanx_${t}`,"middle-finger-phalanx-intermediate":`middle_intPhalanx_${t}`,"middle-finger-phalanx-distal":`middle_distPhalanx_${t}`,"middle-finger-tip":`middle_tip_${t}`,"ring-finger-metacarpal":`ring_metacarpal_${t}`,"ring-finger-phalanx-proximal":`ring_proxPhalanx_${t}`,"ring-finger-phalanx-intermediate":`ring_intPhalanx_${t}`,"ring-finger-phalanx-distal":`ring_distPhalanx_${t}`,"ring-finger-tip":`ring_tip_${t}`,"pinky-finger-metacarpal":`little_metacarpal_${t}`,"pinky-finger-phalanx-proximal":`little_proxPhalanx_${t}`,"pinky-finger-phalanx-intermediate":`little_intPhalanx_${t}`,"pinky-finger-phalanx-distal":`little_distPhalanx_${t}`,"pinky-finger-tip":`little_tip_${t}`}}isCompatible(){return typeof XRHand<"u"}getHandByControllerId(e){return this._attachedHands[e]}getHandByHandedness(e){return e=="none"?null:this._trackingHands[e]}constructor(e,t){super(e),this.options=t,this._attachedHands={},this._trackingHands={left:null,right:null},this._handResources={jointMeshes:null,handMeshes:null,rigMappings:null},this._worldScaleObserver=null,this.onHandAddedObservable=new xe,this.onHandRemovedObservable=new xe,this._attachHand=r=>{var l,c,u;if(!r.inputSource.hand||r.inputSource.handedness=="none"||!this._handResources.jointMeshes)return;const n=r.inputSource.handedness,o=new B3e(r,this._handResources.jointMeshes[n],this._handResources.handMeshes&&this._handResources.handMeshes[n],this._handResources.rigMappings&&this._handResources.rigMappings[n],(l=this.options.handMeshes)==null?void 0:l.meshesUseLeftHandedCoordinates,(c=this.options.jointMeshes)==null?void 0:c.invisible,(u=this.options.jointMeshes)==null?void 0:u.scaleFactor);this._attachedHands[r.uniqueId]=o,this._trackingHands[n]=o,this.onHandAddedObservable.notifyObservers(o)},this._detachHand=r=>{this._detachHandById(r.uniqueId)},this.xrNativeFeatureName="hand-tracking";const s=t.jointMeshes;if(s&&(typeof s.disableDefaultHandMesh<"u"&&(t.handMeshes=t.handMeshes||{},t.handMeshes.disableDefaultMeshes=s.disableDefaultHandMesh),typeof s.handMeshes<"u"&&(t.handMeshes=t.handMeshes||{},t.handMeshes.customMeshes=s.handMeshes),typeof s.leftHandedSystemMeshes<"u"&&(t.handMeshes=t.handMeshes||{},t.handMeshes.meshesUseLeftHandedCoordinates=s.leftHandedSystemMeshes),typeof s.rigMapping<"u")){t.handMeshes=t.handMeshes||{};const r={},n={};[[s.rigMapping.left,r],[s.rigMapping.right,n]].forEach(o=>{const l=o[0],c=o[1];l.forEach((u,f)=>{c[c5[f]]=u})}),t.handMeshes.customRigMappings={left:r,right:n}}}attach(){var e,t,i,s,r;return super.attach()?(this._handResources.jointMeshes||(this._originalMesh=this._originalMesh||((e=this.options.jointMeshes)==null?void 0:e.sourceMesh)||FP("jointParent",Nr._ICOSPHERE_PARAMS),this._originalMesh.isVisible=!1,this._handResources.jointMeshes=Nr._GenerateTrackedJointMeshes(this.options,this._originalMesh)),this._handResources.handMeshes=((t=this.options.handMeshes)==null?void 0:t.customMeshes)||null,this._handResources.rigMappings=((i=this.options.handMeshes)==null?void 0:i.customRigMappings)||null,!((s=this.options.handMeshes)!=null&&s.customMeshes)&&!((r=this.options.handMeshes)!=null&&r.disableDefaultMeshes)&&(Nr._GenerateDefaultHandMeshesAsync(ei.LastCreatedScene,this._xrSessionManager,this.options).then(n=>{var o,l;this._handResources.handMeshes=n,this._handResources.rigMappings={left:Nr._GenerateDefaultHandMeshRigMapping("left"),right:Nr._GenerateDefaultHandMeshRigMapping("right")},(o=this._trackingHands.left)==null||o.setHandMesh(this._handResources.handMeshes.left,this._handResources.rigMappings.left,this._xrSessionManager),(l=this._trackingHands.right)==null||l.setHandMesh(this._handResources.handMeshes.right,this._handResources.rigMappings.right,this._xrSessionManager),this._handResources.handMeshes.left.scaling.setAll(this._xrSessionManager.worldScalingFactor),this._handResources.handMeshes.right.scaling.setAll(this._xrSessionManager.worldScalingFactor)}),this._worldScaleObserver=this._xrSessionManager.onWorldScaleFactorChangedObservable.add(n=>{this._handResources.handMeshes&&(this._handResources.handMeshes.left.scaling.scaleInPlace(n.newScaleFactor/n.previousScaleFactor),this._handResources.handMeshes.right.scaling.scaleInPlace(n.newScaleFactor/n.previousScaleFactor))})),this.options.xrInput.controllers.forEach(this._attachHand),this._addNewAttachObserver(this.options.xrInput.onControllerAddedObservable,this._attachHand),this._addNewAttachObserver(this.options.xrInput.onControllerRemovedObservable,this._detachHand),!0):!1}_onXRFrame(e){var t,i;(t=this._trackingHands.left)==null||t.updateFromXRFrame(e,this._xrSessionManager.referenceSpace),(i=this._trackingHands.right)==null||i.updateFromXRFrame(e,this._xrSessionManager.referenceSpace)}_detachHandById(e,t){var s;const i=this.getHandByControllerId(e);if(i){const r=i.xrController.inputSource.handedness=="left"?"left":"right";((s=this._trackingHands[r])==null?void 0:s.xrController.uniqueId)===e&&(this._trackingHands[r]=null),this.onHandRemovedObservable.notifyObservers(i),i.dispose(t),delete this._attachedHands[e]}}detach(){var e,t,i,s;return super.detach()?(Object.keys(this._attachedHands).forEach(r=>{var n;return this._detachHandById(r,(n=this.options.handMeshes)==null?void 0:n.disposeOnSessionEnd)}),(e=this.options.handMeshes)!=null&&e.disposeOnSessionEnd&&(this._handResources.jointMeshes&&(this._handResources.jointMeshes.left.forEach(r=>r.dispose()),this._handResources.jointMeshes.right.forEach(r=>r.dispose()),this._handResources.jointMeshes=null),this._handResources.handMeshes&&(this._handResources.handMeshes.left.dispose(),this._handResources.handMeshes.right.dispose(),this._handResources.handMeshes=null),(t=Nr._RightHandGLB)==null||t.meshes.forEach(r=>r.dispose()),(i=Nr._LeftHandGLB)==null||i.meshes.forEach(r=>r.dispose()),Nr._RightHandGLB=null,Nr._LeftHandGLB=null,(s=this._originalMesh)==null||s.dispose(),this._originalMesh=void 0),this._worldScaleObserver&&this._xrSessionManager.onWorldScaleFactorChangedObservable.remove(this._worldScaleObserver),!0):!1}dispose(){var e,t,i;super.dispose(),this.onHandAddedObservable.clear(),this.onHandRemovedObservable.clear(),this._handResources.handMeshes&&!((e=this.options.handMeshes)!=null&&e.customMeshes)&&(this._handResources.handMeshes.left.dispose(),this._handResources.handMeshes.right.dispose(),(t=Nr._RightHandGLB)==null||t.meshes.forEach(s=>s.dispose()),(i=Nr._LeftHandGLB)==null||i.meshes.forEach(s=>s.dispose()),Nr._RightHandGLB=null,Nr._LeftHandGLB=null),this._handResources.jointMeshes&&(this._handResources.jointMeshes.left.forEach(s=>s.dispose()),this._handResources.jointMeshes.right.forEach(s=>s.dispose()))}}Nr.Name=ur.HAND_TRACKING,Nr.Version=1,Nr.DEFAULT_HAND_MODEL_BASE_URL="https://assets.babylonjs.com/core/HandMeshes/",Nr.DEFAULT_HAND_MODEL_RIGHT_FILENAME="r_hand_rhs.glb",Nr.DEFAULT_HAND_MODEL_LEFT_FILENAME="l_hand_rhs.glb",Nr.DEFAULT_HAND_MODEL_SHADER_URL="https://assets.babylonjs.com/core/HandMeshes/handsShader.json",Nr._ICOSPHERE_PARAMS={radius:.5,flat:!1,subdivisions:2},Nr._RightHandGLB=null,Nr._LeftHandGLB=null,$a.AddWebXRFeature(Nr.Name,(a,e)=>()=>new Nr(a,e),Nr.Version,!1);class RL extends Bc{get rotationEnabled(){return this._rotationEnabled}set rotationEnabled(e){if(this._rotationEnabled=e,this._options.teleportationTargetMesh){const t=this._options.teleportationTargetMesh.getChildMeshes(!1,i=>i.name==="rotationCone");t[0]&&t[0].setEnabled(e)}}get teleportationTargetMesh(){return this._options.teleportationTargetMesh||null}constructor(e,t){super(e),this._options=t,this._controllers={},this._snappedToPoint=!1,this._cachedColor4White=new St(1,1,1,1),this._tmpRay=new Is(new P,new P),this._tmpVector=new P,this._tmpQuaternion=new Re,this._worldScaleObserver=null,this.skipNextTeleportation=!1,this.backwardsMovementEnabled=!0,this.backwardsTeleportationDistance=.7,this.parabolicCheckRadius=5,this.parabolicRayEnabled=!0,this.straightRayEnabled=!0,this.rotationAngle=Math.PI/8,this.onTargetMeshPositionUpdatedObservable=new xe,this.teleportationEnabled=!0,this._rotationEnabled=!0,this.onBeforeCameraTeleportRotation=new xe,this.onAfterCameraTeleportRotation=new xe,this._attachController=i=>{if(this._controllers[i.uniqueId]||this._options.forceHandedness&&i.inputSource.handedness!==this._options.forceHandedness)return;this._controllers[i.uniqueId]={xrController:i,teleportationState:{forward:!1,backwards:!1,rotating:!1,currentRotation:0,baseRotation:0,blocked:!1,initialHit:!1,mainComponentUsed:!1}};const s=this._controllers[i.uniqueId];if(s.xrController.inputSource.targetRayMode==="tracked-pointer"&&s.xrController.inputSource.gamepad){const r=()=>{if(i.motionController){const n=i.motionController.getComponentOfType(I0.THUMBSTICK_TYPE)||i.motionController.getComponentOfType(I0.TOUCHPAD_TYPE);if(!n||this._options.useMainComponentOnly){const o=i.motionController.getMainComponent();if(!o)return;s.teleportationState.mainComponentUsed=!0,s.teleportationComponent=o,s.onButtonChangedObserver=o.onButtonStateChangedObservable.add(()=>{if(!this.teleportationEnabled)return;const l=()=>{s.teleportationState.forward=!0,s.teleportationState.initialHit=!1,this._currentTeleportationControllerId=s.xrController.uniqueId,s.teleportationState.baseRotation=this._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y,s.teleportationState.currentRotation=0;const c=this._options.timeToTeleport||3e3;TB({timeout:c,contextObservable:this._xrSessionManager.onXRFrameObservable,breakCondition:()=>!o.pressed,onEnded:()=>{this._currentTeleportationControllerId===s.xrController.uniqueId&&s.teleportationState.forward&&this._teleportForward(i.uniqueId)}})};o.changes.pressed&&(o.changes.pressed.current?this._options.timeToTeleportStart?TB({timeout:this._options.timeToTeleportStart,contextObservable:this._xrSessionManager.onXRFrameObservable,onEnded:()=>{o.pressed&&l()}}):l():(s.teleportationState.forward=!1,this._currentTeleportationControllerId=""))})}else s.teleportationComponent=n,s.onAxisChangedObserver=n.onAxisValueChangedObservable.add(o=>{if(o.y<=.7&&s.teleportationState.backwards&&(s.teleportationState.backwards=!1),o.y>.7&&!s.teleportationState.forward&&this.backwardsMovementEnabled&&!this.snapPointsOnly&&!s.teleportationState.backwards){s.teleportationState.backwards=!0,this._tmpQuaternion.copyFrom(this._options.xrInput.xrCamera.rotationQuaternion),this._tmpQuaternion.toEulerAnglesToRef(this._tmpVector),this._tmpVector.x=0,this._tmpVector.z=0,Re.FromEulerVectorToRef(this._tmpVector,this._tmpQuaternion),this._tmpVector.set(0,0,this.backwardsTeleportationDistance*(this._xrSessionManager.scene.useRightHandedSystem?1:-1)),this._tmpVector.rotateByQuaternionToRef(this._tmpQuaternion,this._tmpVector),this._tmpVector.addInPlace(this._options.xrInput.xrCamera.position),this._tmpRay.origin.copyFrom(this._tmpVector),this._tmpRay.length=this._options.xrInput.xrCamera.realWorldHeight+.1,this._tmpRay.direction.set(0,-1,0);const l=this._xrSessionManager.scene.pickWithRay(this._tmpRay,c=>this._floorMeshes.indexOf(c)!==-1);l&&l.pickedPoint&&(this._options.xrInput.xrCamera.position.x=l.pickedPoint.x,this._options.xrInput.xrCamera.position.z=l.pickedPoint.z)}if(o.y<-.7&&!this._currentTeleportationControllerId&&!s.teleportationState.rotating&&this.teleportationEnabled&&(s.teleportationState.forward=!0,this._currentTeleportationControllerId=s.xrController.uniqueId,s.teleportationState.baseRotation=this._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y),o.x){if(s.teleportationState.forward)this._currentTeleportationControllerId===s.xrController.uniqueId&&(this.rotationEnabled?setTimeout(()=>{s.teleportationState.currentRotation=Math.atan2(o.x,o.y*(this._xrSessionManager.scene.useRightHandedSystem?1:-1))}):s.teleportationState.currentRotation=0);else if(!s.teleportationState.rotating&&Math.abs(o.x)>.7){s.teleportationState.rotating=!0;const l=this.rotationAngle*(o.x>0?1:-1)*(this._xrSessionManager.scene.useRightHandedSystem?-1:1);this.onBeforeCameraTeleportRotation.notifyObservers(l),Re.FromEulerAngles(0,l,0).multiplyToRef(this._options.xrInput.xrCamera.rotationQuaternion,this._options.xrInput.xrCamera.rotationQuaternion),this.onAfterCameraTeleportRotation.notifyObservers(this._options.xrInput.xrCamera.rotationQuaternion)}}else s.teleportationState.rotating=!1;o.x===0&&o.y===0&&(s.teleportationState.blocked&&(s.teleportationState.blocked=!1,this._setTargetMeshVisibility(!1)),s.teleportationState.forward&&this._teleportForward(i.uniqueId))})}};i.motionController?r():i.onMotionControllerInitObservable.addOnce(()=>{r()})}else{s.teleportationState.mainComponentUsed=!0;let r=!1;const n=()=>{this._currentTeleportationControllerId=s.xrController.uniqueId,s.teleportationState.forward=!0,s.teleportationState.initialHit=!1,s.teleportationState.baseRotation=this._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y,s.teleportationState.currentRotation=0;const o=this._options.timeToTeleport||3e3;TB({timeout:o,contextObservable:this._xrSessionManager.onXRFrameObservable,onEnded:()=>{this._currentTeleportationControllerId===s.xrController.uniqueId&&s.teleportationState.forward&&this._teleportForward(i.uniqueId)}})};this._xrSessionManager.scene.onPointerObservable.add(o=>{o.type===Xt.POINTERDOWN?(r=!1,this._options.timeToTeleportStart?TB({timeout:this._options.timeToTeleportStart,contextObservable:this._xrSessionManager.onXRFrameObservable,onEnded:()=>{this._currentTeleportationControllerId===s.xrController.uniqueId&&n()},breakCondition:()=>r?(r=!1,!0):!1}):n()):o.type===Xt.POINTERUP&&(r=!0,s.teleportationState.forward=!1,this._currentTeleportationControllerId="")})}},this._colorArray=Array(24).fill(this._cachedColor4White),this._options.teleportationTargetMesh||this._createDefaultTargetMesh(),this._floorMeshes=this._options.floorMeshes||[],this._snapToPositions=this._options.snapPositions||[],this._blockedRayColor=this._options.blockedRayColor||new St(1,0,0,.75),this._setTargetMeshVisibility(!1),this.onBeforeCameraTeleport=t.xrInput.xrCamera.onBeforeCameraTeleport,this.onAfterCameraTeleport=t.xrInput.xrCamera.onAfterCameraTeleport,this.parabolicCheckRadius*=this._xrSessionManager.worldScalingFactor,this._worldScaleObserver=e.onWorldScaleFactorChangedObservable.add(i=>{var s;this.parabolicCheckRadius=this.parabolicCheckRadius/i.previousScaleFactor*i.newScaleFactor,(s=this._options.teleportationTargetMesh)==null||s.scaling.scaleInPlace(i.newScaleFactor/i.previousScaleFactor)})}get snapPointsOnly(){return!!this._options.snapPointsOnly}set snapPointsOnly(e){this._options.snapPointsOnly=e}addFloorMesh(e){this._floorMeshes.push(e)}addBlockerMesh(e){this._options.pickBlockerMeshes=this._options.pickBlockerMeshes||[],this._options.pickBlockerMeshes.push(e)}addSnapPoint(e){this._snapToPositions.push(e)}attach(){return super.attach()?(this._currentTeleportationControllerId="",this._options.xrInput.controllers.forEach(this._attachController),this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable,this._attachController),this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable,e=>{this._detachController(e.uniqueId)}),!0):!1}detach(){return super.detach()?(Object.keys(this._controllers).forEach(e=>{this._detachController(e)}),this._setTargetMeshVisibility(!1),this._currentTeleportationControllerId="",this._controllers={},!0):!1}dispose(){super.dispose(),this._options.teleportationTargetMesh&&this._options.teleportationTargetMesh.dispose(!1,!0),this._worldScaleObserver&&this._xrSessionManager.onWorldScaleFactorChangedObservable.remove(this._worldScaleObserver),this.onTargetMeshPositionUpdatedObservable.clear(),this.onTargetMeshPositionUpdatedObservable.clear(),this.onBeforeCameraTeleportRotation.clear(),this.onAfterCameraTeleportRotation.clear(),this.onBeforeCameraTeleport.clear(),this.onAfterCameraTeleport.clear()}removeFloorMesh(e){const t=this._floorMeshes.indexOf(e);t!==-1&&this._floorMeshes.splice(t,1)}removeBlockerMesh(e){this._options.pickBlockerMeshes=this._options.pickBlockerMeshes||[];const t=this._options.pickBlockerMeshes.indexOf(e);t!==-1&&this._options.pickBlockerMeshes.splice(t,1)}removeFloorMeshByName(e){const t=this._xrSessionManager.scene.getMeshByName(e);t&&this.removeFloorMesh(t)}removeSnapPoint(e){let t=this._snapToPositions.indexOf(e);if(t===-1){for(let i=0;i<this._snapToPositions.length;++i)if(this._snapToPositions[i].equals(e)){t=i;break}}return t!==-1?(this._snapToPositions.splice(t,1),!0):!1}setSelectionFeature(e){this._selectionFeature=e}_onXRFrame(e){const t=this._xrSessionManager.currentFrame,i=this._xrSessionManager.scene;if(!this.attach||!t)return;const s=this._options.teleportationTargetMesh;if(this._currentTeleportationControllerId){if(!s)return;s.rotationQuaternion=s.rotationQuaternion||new Re;const r=this._controllers[this._currentTeleportationControllerId];if(r&&r.teleportationState.forward){Re.RotationYawPitchRollToRef(r.teleportationState.currentRotation+r.teleportationState.baseRotation,0,0,s.rotationQuaternion);let n=!1;const o=r.xrController.inputSource.targetRayMode!=="transient-pointer";if(r.xrController.getWorldPointerRayToRef(this._tmpRay),this.straightRayEnabled){const l=i.pickWithRay(this._tmpRay,u=>{if(this._options.blockerMeshesPredicate&&this._options.blockerMeshesPredicate(u)||this._options.blockAllPickableMeshes&&u.isPickable||this._options.pickBlockerMeshes&&this._options.pickBlockerMeshes.indexOf(u)!==-1)return!0;const f=this._floorMeshes.indexOf(u);return f===-1?!1:this._floorMeshes[f].absolutePosition.y<this._options.xrInput.xrCamera.globalPosition.y}),c=l&&l.pickedMesh&&this._floorMeshes.indexOf(l.pickedMesh)!==-1;if(l&&l.pickedMesh&&!c){if(r.teleportationState.mainComponentUsed&&!r.teleportationState.initialHit){r.teleportationState.forward=!1;return}r.teleportationState.blocked=!0,this._setTargetMeshVisibility(!1,!1,o),this._showParabolicPath(l);return}else l&&l.pickedPoint&&(r.teleportationState.initialHit=!0,r.teleportationState.blocked=!1,n=!0,this._setTargetMeshPosition(l),this._setTargetMeshVisibility(!0,!1,o),this._showParabolicPath(l))}if(this.parabolicRayEnabled&&!n){const l=r.xrController.pointer.rotationQuaternion.toEulerAngles().x,c=1+(Math.PI/2-Math.abs(l)),u=this.parabolicCheckRadius*c;this._tmpRay.origin.addToRef(this._tmpRay.direction.scale(u*2),this._tmpVector),this._tmpVector.y=this._tmpRay.origin.y,this._tmpRay.origin.addInPlace(this._tmpRay.direction.scale(u)),this._tmpVector.subtractToRef(this._tmpRay.origin,this._tmpRay.direction),this._tmpRay.direction.normalize();const f=i.pickWithRay(this._tmpRay,m=>this._options.blockerMeshesPredicate&&this._options.blockerMeshesPredicate(m)||this._options.blockAllPickableMeshes&&m.isPickable||this._options.pickBlockerMeshes&&this._options.pickBlockerMeshes.indexOf(m)!==-1?!0:this._floorMeshes.indexOf(m)!==-1),p=f&&f.pickedMesh&&this._floorMeshes.indexOf(f.pickedMesh)!==-1;if(f&&f.pickedMesh&&!p){if(r.teleportationState.mainComponentUsed&&!r.teleportationState.initialHit){r.teleportationState.forward=!1;return}r.teleportationState.blocked=!0,this._setTargetMeshVisibility(!1,!1,o),this._showParabolicPath(f);return}else f&&f.pickedPoint&&(r.teleportationState.initialHit=!0,r.teleportationState.blocked=!1,n=!0,this._setTargetMeshPosition(f),this._setTargetMeshVisibility(!0,!1,o),this._showParabolicPath(f))}this._setTargetMeshVisibility(n,!1,o)}else this._setTargetMeshVisibility(!1,!1,!0)}else this._disposeBezierCurve(),this._setTargetMeshVisibility(!1,!1,!0)}_createDefaultTargetMesh(){this._options.defaultTargetMeshOptions=this._options.defaultTargetMeshOptions||{};const e=this._options.useUtilityLayer?this._options.customUtilityLayerScene||Dr.DefaultUtilityLayer.utilityLayerScene:this._xrSessionManager.scene,t=cL("teleportationTarget",{width:2,height:2,subdivisions:2},e);if(t.isPickable=!1,this._options.defaultTargetMeshOptions.teleportationCircleMaterial)t.material=this._options.defaultTargetMeshOptions.teleportationCircleMaterial;else{const n=new uf("teleportationPlaneDynamicTexture",512,e,!0);n.hasAlpha=!0;const o=n.getContext(),l=512/2,c=512/2,u=200;o.beginPath(),o.arc(l,c,u,0,2*Math.PI,!1),o.fillStyle=this._options.defaultTargetMeshOptions.teleportationFillColor||"#444444",o.fill(),o.lineWidth=10,o.strokeStyle=this._options.defaultTargetMeshOptions.teleportationBorderColor||"#FFFFFF",o.stroke(),o.closePath(),n.update();const f=new Bt("teleportationPlaneMaterial",e);f.diffuseTexture=n,t.material=f}const i=Jv("torusTeleportation",{diameter:.75,thickness:.1,tessellation:20},e);if(i.isPickable=!1,i.parent=t,!this._options.defaultTargetMeshOptions.disableAnimation){const r=new He("animationInnerCircle","position.y",30,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CYCLE),n=[];n.push({frame:0,value:0}),n.push({frame:30,value:.4}),n.push({frame:60,value:0}),r.setKeys(n);const o=new lb;o.setEasingMode(Uo.EASINGMODE_EASEINOUT),r.setEasingFunction(o),i.animations=[],i.animations.push(r),e.beginAnimation(i,0,60,!0)}const s=e1("rotationCone",{diameterTop:0,tessellation:4},e);if(s.isPickable=!1,s.scaling.set(.5,.12,.2),s.rotate(fo.X,Math.PI/2),s.position.z=.6,s.parent=i,this._options.defaultTargetMeshOptions.torusArrowMaterial)i.material=this._options.defaultTargetMeshOptions.torusArrowMaterial,s.material=this._options.defaultTargetMeshOptions.torusArrowMaterial;else{const r=new Bt("torusConsMat",e);r.disableLighting=!!this._options.defaultTargetMeshOptions.disableLighting,r.disableLighting?r.emissiveColor=new Pe(.3,.3,1):r.diffuseColor=new Pe(.3,.3,1),r.alpha=.9,i.material=r,s.material=r,this._teleportationRingMaterial=r}this._options.renderingGroupId!==void 0&&(t.renderingGroupId=this._options.renderingGroupId,i.renderingGroupId=this._options.renderingGroupId,s.renderingGroupId=this._options.renderingGroupId),this._options.teleportationTargetMesh=t,this._options.teleportationTargetMesh.scaling.setAll(this._xrSessionManager.worldScalingFactor),this._setTargetMeshVisibility(!1)}_detachController(e){const t=this._controllers[e];t&&(t.teleportationComponent&&(t.onAxisChangedObserver&&t.teleportationComponent.onAxisValueChangedObservable.remove(t.onAxisChangedObserver),t.onButtonChangedObserver&&t.teleportationComponent.onButtonStateChangedObservable.remove(t.onButtonChangedObserver)),delete this._controllers[e])}_findClosestSnapPointWithRadius(e,t=this._options.snapToPositionRadius||.8){let i=null,s=Number.MAX_VALUE;if(this._snapToPositions.length){const r=t*t;this._snapToPositions.forEach(n=>{const o=P.DistanceSquared(n,e);o<=r&&o<s&&(s=o,i=n)})}return i}_setTargetMeshPosition(e){const t=e.pickedPoint;if(!this._options.teleportationTargetMesh||!t)return;const i=this._findClosestSnapPointWithRadius(t);this._snappedToPoint=!!i,this.snapPointsOnly&&!this._snappedToPoint&&this._teleportationRingMaterial?this._teleportationRingMaterial.diffuseColor.set(1,.3,.3):this.snapPointsOnly&&this._snappedToPoint&&this._teleportationRingMaterial&&this._teleportationRingMaterial.diffuseColor.set(.3,.3,1),this._options.teleportationTargetMesh.position.copyFrom(i||t),this._options.teleportationTargetMesh.position.y+=.01,this.onTargetMeshPositionUpdatedObservable.notifyObservers(e)}_setTargetMeshVisibility(e,t,i){this._options.teleportationTargetMesh&&(this._options.teleportationTargetMesh.isVisible===e&&!t||(this._options.teleportationTargetMesh.isVisible=e,this._options.teleportationTargetMesh.getChildren(void 0,!1).forEach(s=>{s.isVisible=e}),e?this._selectionFeature&&i&&this._selectionFeature.detach():(this._quadraticBezierCurve&&(this._quadraticBezierCurve.dispose(),this._quadraticBezierCurve=null),this._selectionFeature&&i&&this._selectionFeature.attach())))}_disposeBezierCurve(){this._quadraticBezierCurve&&(this._quadraticBezierCurve.dispose(),this._quadraticBezierCurve=null)}_showParabolicPath(e){if(!e.pickedPoint||!this._currentTeleportationControllerId)return;const t=this._options.useUtilityLayer?this._options.customUtilityLayerScene||Dr.DefaultUtilityLayer.utilityLayerScene:this._xrSessionManager.scene,i=this._controllers[this._currentTeleportationControllerId],s=Yv.CreateQuadraticBezier(i.xrController.pointer.absolutePosition,e.ray.origin,e.pickedPoint,25),r=i.teleportationState.blocked?this._blockedRayColor:void 0,n=this._colorArray.fill(r||this._cachedColor4White),o=s.getPoints();o.shift(),o.shift(),this._options.generateRayPathMesh?this._quadraticBezierCurve=this._options.generateRayPathMesh(s.getPoints(),e):this._quadraticBezierCurve=ta("teleportation path line",{points:o,instance:this._quadraticBezierCurve,updatable:!0,colors:n},t),this._quadraticBezierCurve.isPickable=!1,this._options.renderingGroupId!==void 0&&(this._quadraticBezierCurve.renderingGroupId=this._options.renderingGroupId)}_teleportForward(e){const t=this._controllers[e];if(!(!t||!t.teleportationState.forward||!this.teleportationEnabled)&&(t.teleportationState.forward=!1,this._currentTeleportationControllerId="",!(this.snapPointsOnly&&!this._snappedToPoint))){if(this.skipNextTeleportation){this.skipNextTeleportation=!1;return}if(this._options.teleportationTargetMesh&&this._options.teleportationTargetMesh.isVisible){const i=this._options.xrInput.xrCamera.realWorldHeight;this.onBeforeCameraTeleport.notifyObservers(this._options.xrInput.xrCamera.position),this._options.xrInput.xrCamera.position.copyFrom(this._options.teleportationTargetMesh.position),this._options.xrInput.xrCamera.position.y+=i,Re.FromEulerAngles(0,t.teleportationState.currentRotation-(this._xrSessionManager.scene.useRightHandedSystem?Math.PI:0),0).multiplyToRef(this._options.xrInput.xrCamera.rotationQuaternion,this._options.xrInput.xrCamera.rotationQuaternion),this.onAfterCameraTeleport.notifyObservers(this._options.xrInput.xrCamera.position)}}}}RL.Name=ur.TELEPORTATION,RL.Version=1,$a.AddWebXRFeature(RL.Name,(a,e)=>()=>new RL(a,e),RL.Version,!0);class LFe{}class NH{constructor(){}static CreateAsync(e,t={}){const i=new NH;if(e.onDisposeObservable.addOnce(()=>{i.dispose()}),!t.disableDefaultUI){const s={renderTarget:i.renderTarget,...t.uiOptions||{}};t.optionalFeatures&&(typeof t.optionalFeatures=="boolean"?s.optionalFeatures=["hit-test","anchors","plane-detection","hand-tracking"]:s.optionalFeatures=t.optionalFeatures),i.enterExitUI=new DH(e,s)}return IH.CreateAsync(e).then(s=>{if(i.baseExperience=s,t.ignoreNativeCameraTransformation&&(i.baseExperience.camera.compensateOnFirstFrame=!1),i.input=new P3e(s.sessionManager,s.camera,{controllerOptions:{renderingGroupId:t.renderingGroupId},...t.inputOptions||{}}),!t.disablePointerSelection){const r={...t.pointerSelectionOptions,xrInput:i.input,renderingGroupId:t.renderingGroupId};i.pointerSelection=i.baseExperience.featuresManager.enableFeature(a5.Name,t.useStablePlugins?"stable":"latest",r),t.disableTeleportation||(i.teleportation=i.baseExperience.featuresManager.enableFeature(RL.Name,t.useStablePlugins?"stable":"latest",{floorMeshes:t.floorMeshes,xrInput:i.input,renderingGroupId:t.renderingGroupId,...t.teleportationOptions}),i.teleportation.setSelectionFeature(i.pointerSelection))}if(t.disableNearInteraction||(i.nearInteraction=i.baseExperience.featuresManager.enableFeature(l5.Name,t.useStablePlugins?"stable":"latest",{xrInput:i.input,farInteractionFeature:i.pointerSelection,renderingGroupId:t.renderingGroupId,useUtilityLayer:!0,enableNearInteractionOnAllControllers:!0,...t.nearInteractionOptions})),t.disableHandTracking||i.baseExperience.featuresManager.enableFeature(Nr.Name,t.useStablePlugins?"stable":"latest",{xrInput:i.input,...t.handSupportOptions},void 0,!1),i.renderTarget=i.baseExperience.sessionManager.getWebXRRenderTarget(t.outputCanvasOptions),!t.disableDefaultUI)return i.enterExitUI.setHelperAsync(i.baseExperience,i.renderTarget)}).then(()=>i).catch(s=>(de.Error("Error initializing XR"),de.Error(s),i))}dispose(){this.baseExperience&&this.baseExperience.dispose(),this.input&&this.input.dispose(),this.enterExitUI&&this.enterExitUI.dispose(),this.renderTarget&&this.renderTarget.dispose()}}var IFe=!0;ui.prototype.createDefaultLight=function(a=!1){if(a&&this.lights)for(let e=0;e<this.lights.length;e++)this.lights[e].dispose();this.lights.length===0&&new b4("default light",P.Up(),this)},ui.prototype.createDefaultCamera=function(a=!1,e=!1,t=!1){if(e&&this.activeCamera&&(this.activeCamera.dispose(),this.activeCamera=null),!this.activeCamera){const i=this.getWorldExtends(l=>l.isVisible&&l.isEnabled()),s=i.max.subtract(i.min),r=i.min.add(s.scale(.5));let n,o=s.length()*1.5;if(isFinite(o)||(o=1,r.copyFromFloats(0,0,0)),a){const l=new yr("default camera",-(Math.PI/2),Math.PI/2,o,r,this);l.lowerRadiusLimit=o*.01,l.wheelPrecision=100/o,n=l}else{const l=new $d("default camera",new P(r.x,r.y,-o),this);l.setTarget(r),n=l}n.minZ=o*.01,n.maxZ=o*1e3,n.speed=o*.2,this.activeCamera=n,t&&n.attachControl()}},ui.prototype.createDefaultCameraOrLight=function(a=!1,e=!1,t=!1){this.createDefaultLight(e),this.createDefaultCamera(a,e,t)},ui.prototype.createDefaultSkybox=function(a,e=!1,t=1e3,i=0,s=!0){if(!a)return de.Warn("Can not create default skybox without environment texture."),null;s&&a&&(this.environmentTexture=a);const r=pa("hdrSkyBox",{size:t},this);if(e){const n=new mi("skyBox",this);n.backFaceCulling=!1,n.reflectionTexture=a.clone(),n.reflectionTexture&&(n.reflectionTexture.coordinatesMode=be.SKYBOX_MODE),n.microSurface=1-i,n.disableLighting=!0,n.twoSidedLighting=!0,r.material=n}else{const n=new Bt("skyBox",this);n.backFaceCulling=!1,n.reflectionTexture=a.clone(),n.reflectionTexture&&(n.reflectionTexture.coordinatesMode=be.SKYBOX_MODE),n.disableLighting=!0,r.material=n}return r.isPickable=!1,r.infiniteDistance=!0,r.ignoreCameraMaxZ=!0,r},ui.prototype.createDefaultEnvironment=function(a){return o9?new o9(a,this):null},ui.prototype.createDefaultVRExperience=function(a={}){return new AL(this,a)},ui.prototype.createDefaultXRExperienceAsync=function(a={}){return NH.CreateAsync(this,a).then(e=>e)};function z3e(a){for(;a.firstChild;)a.removeChild(a.firstChild);a.srcObject=null,a.src="",a.removeAttribute("src")}class mb extends be{get onUserActionRequestedObservable(){return this._onUserActionRequestedObservable||(this._onUserActionRequestedObservable=new xe),this._onUserActionRequestedObservable}_processError(e){this._errorFound=!0,this._onError?this._onError(e==null?void 0:e.message):de.Error(e==null?void 0:e.message)}_handlePlay(){this._errorFound=!1,this.video.play().catch(e=>{if((e==null?void 0:e.name)==="NotAllowedError"){if(this._onUserActionRequestedObservable&&this._onUserActionRequestedObservable.hasObservers()){this._onUserActionRequestedObservable.notifyObservers(this);return}else if(!this.video.muted){de.Warn("Unable to autoplay a video with sound. Trying again with muted turned true"),this.video.muted=!0,this._errorFound=!1,this.video.play().catch(t=>{this._processError(t)});return}}this._processError(e)})}constructor(e,t,i,s=!1,r=!1,n=be.TRILINEAR_SAMPLINGMODE,o={},l,c=5){super(null,i,!s,r),this._externalTexture=null,this._onUserActionRequestedObservable=null,this._stillImageCaptured=!1,this._displayingPosterTexture=!1,this._frameId=-1,this._currentSrc=null,this._errorFound=!1,this.isVideo=!0,this._resizeInternalTexture=()=>{this._texture!=null&&this._texture.dispose(),!this._getEngine().needPOTTextures||Le.IsExponentOfTwo(this.video.videoWidth)&&Le.IsExponentOfTwo(this.video.videoHeight)?(this.wrapU=be.WRAP_ADDRESSMODE,this.wrapV=be.WRAP_ADDRESSMODE):(this.wrapU=be.CLAMP_ADDRESSMODE,this.wrapV=be.CLAMP_ADDRESSMODE,this._generateMipMaps=!1),this._texture=this._getEngine().createDynamicTexture(this.video.videoWidth,this.video.videoHeight,this._generateMipMaps,this.samplingMode),this._texture.format=this._format??5,this._frameId=-1,this._updateInternalTexture()},this._createInternalTexture=()=>{if(this._texture!=null)if(this._displayingPosterTexture)this._displayingPosterTexture=!1;else return;if(this.video.addEventListener("resize",this._resizeInternalTexture),this._resizeInternalTexture(),!this.video.autoplay&&!this._settings.poster&&!this._settings.independentVideoSource){const m=this.video.onplaying,_=this.video.muted;this.video.muted=!0,this.video.onplaying=()=>{this.video.muted=_,this.video.onplaying=m,this._updateInternalTexture(),this._errorFound||this.video.pause(),this.onLoadObservable.hasObservers()&&this.onLoadObservable.notifyObservers(this)},this._handlePlay()}else this._updateInternalTexture(),this.onLoadObservable.hasObservers()&&this.onLoadObservable.notifyObservers(this)},this._reset=()=>{this._texture!=null&&(this._displayingPosterTexture||(this._texture.dispose(),this._texture=null))},this._updateInternalTexture=()=>{if(this._texture==null||this.video.readyState<this.video.HAVE_CURRENT_DATA||this._displayingPosterTexture)return;const m=this.getScene().getFrameId();this._frameId!==m&&(this._frameId=m,this._getEngine().updateVideoTexture(this._texture,this._externalTexture?this._externalTexture:this.video,this._invertY))},this._settings={autoPlay:!0,loop:!0,autoUpdateTexture:!0,...o},this._onError=l,this._generateMipMaps=s,this._initialSamplingMode=n,this.autoUpdateTexture=this._settings.autoUpdateTexture,this._currentSrc=t,this.name=e||this._getName(t),this.video=this._getVideo(t);const u=this._engine,f=u==null?void 0:u.createExternalTexture;f&&(this._externalTexture=f.call(u,this.video)),this._settings.independentVideoSource||(this._settings.poster&&(this.video.poster=this._settings.poster),this._settings.autoPlay!==void 0&&(this.video.autoplay=this._settings.autoPlay),this._settings.loop!==void 0&&(this.video.loop=this._settings.loop),this._settings.muted!==void 0&&(this.video.muted=this._settings.muted),this.video.setAttribute("playsinline",""),this.video.addEventListener("paused",this._updateInternalTexture),this.video.addEventListener("seeked",this._updateInternalTexture),this.video.addEventListener("loadeddata",this._updateInternalTexture),this.video.addEventListener("emptied",this._reset),this._settings.autoPlay&&this._handlePlay()),this._createInternalTextureOnEvent=this._settings.poster&&!this._settings.autoPlay?"play":"canplay",this.video.addEventListener(this._createInternalTextureOnEvent,this._createInternalTexture),this._format=c;const p=this.video.readyState>=this.video.HAVE_CURRENT_DATA;this._settings.poster&&(!this._settings.autoPlay||!p)?(this._texture=this._getEngine().createTexture(this._settings.poster,!1,!this.invertY,i),this._displayingPosterTexture=!0):p&&this._createInternalTexture()}getClassName(){return"VideoTexture"}_getName(e){return e instanceof HTMLVideoElement?e.currentSrc:typeof e=="object"?e.toString():e}_getVideo(e){if(e.isNative)return e;if(e instanceof HTMLVideoElement)return Le.SetCorsBehavior(e.currentSrc,e),e;const t=document.createElement("video");return typeof e=="string"?(Le.SetCorsBehavior(e,t),t.src=e):(Le.SetCorsBehavior(e[0],t),e.forEach(i=>{const s=document.createElement("source");s.src=i,t.appendChild(s)})),this.onDisposeObservable.addOnce(()=>{z3e(t)}),t}_rebuild(){this.update()}update(){this.autoUpdateTexture&&this.updateTexture(!0)}updateTexture(e){e&&(this.video.paused&&this._stillImageCaptured||(this._stillImageCaptured=!0,this._updateInternalTexture()))}get externalTexture(){return this._externalTexture}updateURL(e){this.video.src=e,this._currentSrc=e}clone(){return new mb(this.name,this._currentSrc,this.getScene(),this._generateMipMaps,this.invertY,this.samplingMode,this._settings)}dispose(){var e;super.dispose(),this._currentSrc=null,this._onUserActionRequestedObservable&&(this._onUserActionRequestedObservable.clear(),this._onUserActionRequestedObservable=null),this.video.removeEventListener(this._createInternalTextureOnEvent,this._createInternalTexture),this._settings.independentVideoSource||(this.video.removeEventListener("paused",this._updateInternalTexture),this.video.removeEventListener("seeked",this._updateInternalTexture),this.video.removeEventListener("loadeddata",this._updateInternalTexture),this.video.removeEventListener("emptied",this._reset),this.video.removeEventListener("resize",this._resizeInternalTexture),this.video.pause()),(e=this._externalTexture)==null||e.dispose()}static CreateFromStreamAsync(e,t,i,s=!0){const r=e.getEngine().createVideoElement(i);return e.getEngine()._badOS&&(document.body.appendChild(r),r.style.transform="scale(0.0001, 0.0001)",r.style.opacity="0",r.style.position="fixed",r.style.bottom="0px",r.style.right="0px"),r.setAttribute("autoplay",""),r.setAttribute("muted","true"),r.setAttribute("playsinline",""),r.muted=!0,r.isNative||(typeof r.srcObject=="object"?r.srcObject=t:r.src=window.URL&&window.URL.createObjectURL(t)),new Promise(n=>{const o=()=>{const l=new mb("video",r,e,!0,s,void 0,void 0,void 0,4);e.getEngine()._badOS&&l.onDisposeObservable.addOnce(()=>{r.remove()}),l.onDisposeObservable.addOnce(()=>{z3e(r)}),n(l),r.removeEventListener("playing",o)};r.addEventListener("playing",o),r.play()})}static async CreateFromWebCamAsync(e,t,i=!1,s=!0){if(navigator.mediaDevices){const r=await navigator.mediaDevices.getUserMedia({video:t,audio:i}),n=await this.CreateFromStreamAsync(e,r,t,s);return n.onDisposeObservable.addOnce(()=>{r.getTracks().forEach(o=>{o.stop()})}),n}return Promise.reject("No support for userMedia on this device")}static CreateFromWebCam(e,t,i,s=!1,r=!0){this.CreateFromWebCamAsync(e,i,s,r).then(function(n){t&&t(n)}).catch(function(n){de.Error(n.name)})}}F([G("settings")],mb.prototype,"_settings",void 0),F([G("src")],mb.prototype,"_currentSrc",void 0),F([G()],mb.prototype,"isVideo",void 0),be._CreateVideoTexture=(a,e,t,i=!1,s=!1,r=be.TRILINEAR_SAMPLINGMODE,n={},o,l=5)=>new mb(a,e,t,i,s,r,n,o,l),ve("BABYLON.VideoTexture",mb);class wH extends ff{get videoTexture(){return this._texture}get videoMode(){return this.textureMode}set videoMode(e){this.textureMode=e}_initTexture(e,t,i){const s={loop:i.loop,autoPlay:i.autoPlay,autoUpdateTexture:!0,poster:i.poster},r=new mb((this.name||"videoDome")+"_texture",e,t,i.generateMipMaps,this._useDirectMapping,be.TRILINEAR_SAMPLINGMODE,s);return i.clickToPlay&&(this._pointerObserver=t.onPointerObservable.add(n=>{var o;((o=n.pickInfo)==null?void 0:o.pickedMesh)===this.mesh&&this._texture.video.play()},Xt.POINTERDOWN)),this._textureObserver=r.onLoadObservable.add(()=>{this.onLoadObservable.notifyObservers()}),r}dispose(e,t=!1){this._texture.onLoadObservable.remove(this._textureObserver),this._scene.onPointerObservable.remove(this._pointerObserver),super.dispose(e,t)}}wH.MODE_MONOSCOPIC=ff.MODE_MONOSCOPIC,wH.MODE_TOPBOTTOM=ff.MODE_TOPBOTTOM,wH.MODE_SIDEBYSIDE=ff.MODE_SIDEBYSIDE;function PFe(a,e,t,i,s){return(1-a)*(1-a)*(1-a)*e+3*(1-a)*(1-a)*a*t+3*(1-a)*a*a*i+a*a*a*s}function F3e(a,e=new Ue(0,1),t=new Ue(0,.1),i=new Ue(0,.1),s=new Ue(1300,.1)){const r=Math.pow(a/s.x,.333333);return PFe(r,e.y,t.y,i.y,s.y)}class k3e{get gpuFrameTimeCounter(){return this.engine.getGPUFrameTimeCounter()}get captureGPUFrameTime(){return this._captureGPUFrameTime}set captureGPUFrameTime(e){e!==this._captureGPUFrameTime&&(this._captureGPUFrameTime=e,this.engine.captureGPUFrameTime(e))}get shaderCompilationTimeCounter(){return this._shaderCompilationTime}get captureShaderCompilationTime(){return this._captureShaderCompilationTime}set captureShaderCompilationTime(e){e!==this._captureShaderCompilationTime&&(this._captureShaderCompilationTime=e,e?(this._onBeforeShaderCompilationObserver=this.engine.onBeforeShaderCompilationObservable.add(()=>{this._shaderCompilationTime.fetchNewFrame(),this._shaderCompilationTime.beginMonitoring()}),this._onAfterShaderCompilationObserver=this.engine.onAfterShaderCompilationObservable.add(()=>{this._shaderCompilationTime.endMonitoring()})):(this.engine.onBeforeShaderCompilationObservable.remove(this._onBeforeShaderCompilationObserver),this._onBeforeShaderCompilationObserver=null,this.engine.onAfterShaderCompilationObservable.remove(this._onAfterShaderCompilationObserver),this._onAfterShaderCompilationObserver=null))}constructor(e){this.engine=e,this._captureGPUFrameTime=!1,this._captureShaderCompilationTime=!1,this._shaderCompilationTime=new wo,this._onBeginFrameObserver=null,this._onEndFrameObserver=null,this._onBeforeShaderCompilationObserver=null,this._onAfterShaderCompilationObserver=null}dispose(){this.engine.onBeginFrameObservable.remove(this._onBeginFrameObserver),this._onBeginFrameObserver=null,this.engine.onEndFrameObservable.remove(this._onEndFrameObserver),this._onEndFrameObserver=null,this.engine.onBeforeShaderCompilationObservable.remove(this._onBeforeShaderCompilationObserver),this._onBeforeShaderCompilationObserver=null,this.engine.onAfterShaderCompilationObservable.remove(this._onAfterShaderCompilationObserver),this._onAfterShaderCompilationObserver=null,this.engine=null}}class U3e{get activeMeshesEvaluationTimeCounter(){return this._activeMeshesEvaluationTime}get captureActiveMeshesEvaluationTime(){return this._captureActiveMeshesEvaluationTime}set captureActiveMeshesEvaluationTime(e){e!==this._captureActiveMeshesEvaluationTime&&(this._captureActiveMeshesEvaluationTime=e,e?(this._onBeforeActiveMeshesEvaluationObserver=this.scene.onBeforeActiveMeshesEvaluationObservable.add(()=>{Le.StartPerformanceCounter("Active meshes evaluation"),this._activeMeshesEvaluationTime.beginMonitoring()}),this._onAfterActiveMeshesEvaluationObserver=this.scene.onAfterActiveMeshesEvaluationObservable.add(()=>{Le.EndPerformanceCounter("Active meshes evaluation"),this._activeMeshesEvaluationTime.endMonitoring(!1)})):(this.scene.onBeforeActiveMeshesEvaluationObservable.remove(this._onBeforeActiveMeshesEvaluationObserver),this._onBeforeActiveMeshesEvaluationObserver=null,this.scene.onAfterActiveMeshesEvaluationObservable.remove(this._onAfterActiveMeshesEvaluationObserver),this._onAfterActiveMeshesEvaluationObserver=null))}get renderTargetsRenderTimeCounter(){return this._renderTargetsRenderTime}get captureRenderTargetsRenderTime(){return this._captureRenderTargetsRenderTime}set captureRenderTargetsRenderTime(e){e!==this._captureRenderTargetsRenderTime&&(this._captureRenderTargetsRenderTime=e,e?(this._onBeforeRenderTargetsRenderObserver=this.scene.onBeforeRenderTargetsRenderObservable.add(()=>{Le.StartPerformanceCounter("Render targets rendering"),this._renderTargetsRenderTime.beginMonitoring()}),this._onAfterRenderTargetsRenderObserver=this.scene.onAfterRenderTargetsRenderObservable.add(()=>{Le.EndPerformanceCounter("Render targets rendering"),this._renderTargetsRenderTime.endMonitoring(!1)})):(this.scene.onBeforeRenderTargetsRenderObservable.remove(this._onBeforeRenderTargetsRenderObserver),this._onBeforeRenderTargetsRenderObserver=null,this.scene.onAfterRenderTargetsRenderObservable.remove(this._onAfterRenderTargetsRenderObserver),this._onAfterRenderTargetsRenderObserver=null))}get particlesRenderTimeCounter(){return this._particlesRenderTime}get captureParticlesRenderTime(){return this._captureParticlesRenderTime}set captureParticlesRenderTime(e){e!==this._captureParticlesRenderTime&&(this._captureParticlesRenderTime=e,e?(this._onBeforeParticlesRenderingObserver=this.scene.onBeforeParticlesRenderingObservable.add(()=>{Le.StartPerformanceCounter("Particles"),this._particlesRenderTime.beginMonitoring()}),this._onAfterParticlesRenderingObserver=this.scene.onAfterParticlesRenderingObservable.add(()=>{Le.EndPerformanceCounter("Particles"),this._particlesRenderTime.endMonitoring(!1)})):(this.scene.onBeforeParticlesRenderingObservable.remove(this._onBeforeParticlesRenderingObserver),this._onBeforeParticlesRenderingObserver=null,this.scene.onAfterParticlesRenderingObservable.remove(this._onAfterParticlesRenderingObserver),this._onAfterParticlesRenderingObserver=null))}get spritesRenderTimeCounter(){return this._spritesRenderTime}get captureSpritesRenderTime(){return this._captureSpritesRenderTime}set captureSpritesRenderTime(e){e!==this._captureSpritesRenderTime&&(this._captureSpritesRenderTime=e,this.scene.spriteManagers&&(e?(this._onBeforeSpritesRenderingObserver=this.scene.onBeforeSpritesRenderingObservable.add(()=>{Le.StartPerformanceCounter("Sprites"),this._spritesRenderTime.beginMonitoring()}),this._onAfterSpritesRenderingObserver=this.scene.onAfterSpritesRenderingObservable.add(()=>{Le.EndPerformanceCounter("Sprites"),this._spritesRenderTime.endMonitoring(!1)})):(this.scene.onBeforeSpritesRenderingObservable.remove(this._onBeforeSpritesRenderingObserver),this._onBeforeSpritesRenderingObserver=null,this.scene.onAfterSpritesRenderingObservable.remove(this._onAfterSpritesRenderingObserver),this._onAfterSpritesRenderingObserver=null)))}get physicsTimeCounter(){return this._physicsTime}get capturePhysicsTime(){return this._capturePhysicsTime}set capturePhysicsTime(e){e!==this._capturePhysicsTime&&this.scene.onBeforePhysicsObservable&&(this._capturePhysicsTime=e,e?(this._onBeforePhysicsObserver=this.scene.onBeforePhysicsObservable.add(()=>{Le.StartPerformanceCounter("Physics"),this._physicsTime.beginMonitoring()}),this._onAfterPhysicsObserver=this.scene.onAfterPhysicsObservable.add(()=>{Le.EndPerformanceCounter("Physics"),this._physicsTime.endMonitoring()})):(this.scene.onBeforePhysicsObservable.remove(this._onBeforePhysicsObserver),this._onBeforePhysicsObserver=null,this.scene.onAfterPhysicsObservable.remove(this._onAfterPhysicsObserver),this._onAfterPhysicsObserver=null))}get animationsTimeCounter(){return this._animationsTime}get captureAnimationsTime(){return this._captureAnimationsTime}set captureAnimationsTime(e){e!==this._captureAnimationsTime&&(this._captureAnimationsTime=e,e?this._onAfterAnimationsObserver=this.scene.onAfterAnimationsObservable.add(()=>{this._animationsTime.endMonitoring()}):(this.scene.onAfterAnimationsObservable.remove(this._onAfterAnimationsObserver),this._onAfterAnimationsObserver=null))}get frameTimeCounter(){return this._frameTime}get captureFrameTime(){return this._captureFrameTime}set captureFrameTime(e){this._captureFrameTime=e}get interFrameTimeCounter(){return this._interFrameTime}get captureInterFrameTime(){return this._captureInterFrameTime}set captureInterFrameTime(e){this._captureInterFrameTime=e}get renderTimeCounter(){return this._renderTime}get captureRenderTime(){return this._captureRenderTime}set captureRenderTime(e){e!==this._captureRenderTime&&(this._captureRenderTime=e,e?(this._onBeforeDrawPhaseObserver=this.scene.onBeforeDrawPhaseObservable.add(()=>{this._renderTime.beginMonitoring(),Le.StartPerformanceCounter("Main render")}),this._onAfterDrawPhaseObserver=this.scene.onAfterDrawPhaseObservable.add(()=>{this._renderTime.endMonitoring(!1),Le.EndPerformanceCounter("Main render")})):(this.scene.onBeforeDrawPhaseObservable.remove(this._onBeforeDrawPhaseObserver),this._onBeforeDrawPhaseObserver=null,this.scene.onAfterDrawPhaseObservable.remove(this._onAfterDrawPhaseObserver),this._onAfterDrawPhaseObserver=null))}get cameraRenderTimeCounter(){return this._cameraRenderTime}get captureCameraRenderTime(){return this._captureCameraRenderTime}set captureCameraRenderTime(e){e!==this._captureCameraRenderTime&&(this._captureCameraRenderTime=e,e?(this._onBeforeCameraRenderObserver=this.scene.onBeforeCameraRenderObservable.add(t=>{this._cameraRenderTime.beginMonitoring(),Le.StartPerformanceCounter(`Rendering camera ${t.name}`)}),this._onAfterCameraRenderObserver=this.scene.onAfterCameraRenderObservable.add(t=>{this._cameraRenderTime.endMonitoring(!1),Le.EndPerformanceCounter(`Rendering camera ${t.name}`)})):(this.scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),this._onBeforeCameraRenderObserver=null,this.scene.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver),this._onAfterCameraRenderObserver=null))}get drawCallsCounter(){return this.scene.getEngine()._drawCalls}constructor(e){this.scene=e,this._captureActiveMeshesEvaluationTime=!1,this._activeMeshesEvaluationTime=new wo,this._captureRenderTargetsRenderTime=!1,this._renderTargetsRenderTime=new wo,this._captureFrameTime=!1,this._frameTime=new wo,this._captureRenderTime=!1,this._renderTime=new wo,this._captureInterFrameTime=!1,this._interFrameTime=new wo,this._captureParticlesRenderTime=!1,this._particlesRenderTime=new wo,this._captureSpritesRenderTime=!1,this._spritesRenderTime=new wo,this._capturePhysicsTime=!1,this._physicsTime=new wo,this._captureAnimationsTime=!1,this._animationsTime=new wo,this._captureCameraRenderTime=!1,this._cameraRenderTime=new wo,this._onBeforeActiveMeshesEvaluationObserver=null,this._onAfterActiveMeshesEvaluationObserver=null,this._onBeforeRenderTargetsRenderObserver=null,this._onAfterRenderTargetsRenderObserver=null,this._onAfterRenderObserver=null,this._onBeforeDrawPhaseObserver=null,this._onAfterDrawPhaseObserver=null,this._onBeforeAnimationsObserver=null,this._onBeforeParticlesRenderingObserver=null,this._onAfterParticlesRenderingObserver=null,this._onBeforeSpritesRenderingObserver=null,this._onAfterSpritesRenderingObserver=null,this._onBeforePhysicsObserver=null,this._onAfterPhysicsObserver=null,this._onAfterAnimationsObserver=null,this._onBeforeCameraRenderObserver=null,this._onAfterCameraRenderObserver=null,this._onBeforeAnimationsObserver=e.onBeforeAnimationsObservable.add(()=>{this._captureActiveMeshesEvaluationTime&&this._activeMeshesEvaluationTime.fetchNewFrame(),this._captureRenderTargetsRenderTime&&this._renderTargetsRenderTime.fetchNewFrame(),this._captureFrameTime&&(Le.StartPerformanceCounter("Scene rendering"),this._frameTime.beginMonitoring()),this._captureInterFrameTime&&this._interFrameTime.endMonitoring(),this._captureParticlesRenderTime&&this._particlesRenderTime.fetchNewFrame(),this._captureSpritesRenderTime&&this._spritesRenderTime.fetchNewFrame(),this._captureAnimationsTime&&this._animationsTime.beginMonitoring(),this._captureRenderTime&&this._renderTime.fetchNewFrame(),this._captureCameraRenderTime&&this._cameraRenderTime.fetchNewFrame(),this.scene.getEngine()._drawCalls.fetchNewFrame()}),this._onAfterRenderObserver=e.onAfterRenderObservable.add(()=>{this._captureFrameTime&&(Le.EndPerformanceCounter("Scene rendering"),this._frameTime.endMonitoring()),this._captureRenderTime&&this._renderTime.endMonitoring(!1),this._captureInterFrameTime&&this._interFrameTime.beginMonitoring(),this._captureActiveMeshesEvaluationTime&&this._activeMeshesEvaluationTime.endFrame(),this._captureRenderTargetsRenderTime&&this._renderTargetsRenderTime.endFrame(),this._captureParticlesRenderTime&&this._particlesRenderTime.endFrame(),this._captureSpritesRenderTime&&this._spritesRenderTime.endFrame(),this._captureRenderTime&&this._renderTime.endFrame(),this._captureCameraRenderTime&&this._cameraRenderTime.endFrame()})}dispose(){this.scene.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=null,this.scene.onBeforeActiveMeshesEvaluationObservable.remove(this._onBeforeActiveMeshesEvaluationObserver),this._onBeforeActiveMeshesEvaluationObserver=null,this.scene.onAfterActiveMeshesEvaluationObservable.remove(this._onAfterActiveMeshesEvaluationObserver),this._onAfterActiveMeshesEvaluationObserver=null,this.scene.onBeforeRenderTargetsRenderObservable.remove(this._onBeforeRenderTargetsRenderObserver),this._onBeforeRenderTargetsRenderObserver=null,this.scene.onAfterRenderTargetsRenderObservable.remove(this._onAfterRenderTargetsRenderObserver),this._onAfterRenderTargetsRenderObserver=null,this.scene.onBeforeAnimationsObservable.remove(this._onBeforeAnimationsObserver),this._onBeforeAnimationsObserver=null,this.scene.onBeforeParticlesRenderingObservable.remove(this._onBeforeParticlesRenderingObserver),this._onBeforeParticlesRenderingObserver=null,this.scene.onAfterParticlesRenderingObservable.remove(this._onAfterParticlesRenderingObserver),this._onAfterParticlesRenderingObserver=null,this._onBeforeSpritesRenderingObserver&&(this.scene.onBeforeSpritesRenderingObservable.remove(this._onBeforeSpritesRenderingObserver),this._onBeforeSpritesRenderingObserver=null),this._onAfterSpritesRenderingObserver&&(this.scene.onAfterSpritesRenderingObservable.remove(this._onAfterSpritesRenderingObserver),this._onAfterSpritesRenderingObserver=null),this.scene.onBeforeDrawPhaseObservable.remove(this._onBeforeDrawPhaseObserver),this._onBeforeDrawPhaseObserver=null,this.scene.onAfterDrawPhaseObservable.remove(this._onAfterDrawPhaseObserver),this._onAfterDrawPhaseObserver=null,this._onBeforePhysicsObserver&&(this.scene.onBeforePhysicsObservable.remove(this._onBeforePhysicsObserver),this._onBeforePhysicsObserver=null),this._onAfterPhysicsObserver&&(this.scene.onAfterPhysicsObservable.remove(this._onAfterPhysicsObserver),this._onAfterPhysicsObserver=null),this.scene.onAfterAnimationsObservable.remove(this._onAfterAnimationsObserver),this._onAfterAnimationsObserver=null,this.scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),this._onBeforeCameraRenderObserver=null,this.scene.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver),this._onAfterCameraRenderObserver=null,this.scene=null}}class m3{get _shouldRender(){return this._thinEffectLayer._shouldRender}set _shouldRender(e){this._thinEffectLayer._shouldRender=e}get _emissiveTextureAndColor(){return this._thinEffectLayer._emissiveTextureAndColor}set _emissiveTextureAndColor(e){this._thinEffectLayer._emissiveTextureAndColor=e}get _effectIntensity(){return this._thinEffectLayer._effectIntensity}set _effectIntensity(e){this._thinEffectLayer._effectIntensity=e}static get ForceGLSL(){return Uy.ForceGLSL}static set ForceGLSL(e){Uy.ForceGLSL=e}get name(){return this._thinEffectLayer.name}set name(e){this._thinEffectLayer.name=e}get neutralColor(){return this._thinEffectLayer.neutralColor}set neutralColor(e){this._thinEffectLayer.neutralColor=e}get isEnabled(){return this._thinEffectLayer.isEnabled}set isEnabled(e){this._thinEffectLayer.isEnabled=e}get camera(){return this._thinEffectLayer.camera}get renderingGroupId(){return this._thinEffectLayer.renderingGroupId}set renderingGroupId(e){this._thinEffectLayer.renderingGroupId=e}get disableBoundingBoxesFromEffectLayer(){return this._thinEffectLayer.disableBoundingBoxesFromEffectLayer}set disableBoundingBoxesFromEffectLayer(e){this._thinEffectLayer.disableBoundingBoxesFromEffectLayer=e}get mainTexture(){return this._mainTexture}get _shaderLanguage(){return this._thinEffectLayer.shaderLanguage}get shaderLanguage(){return this._thinEffectLayer.shaderLanguage}setMaterialForRendering(e,t){this._thinEffectLayer.setMaterialForRendering(e,t)}getEffectIntensity(e){return this._thinEffectLayer.getEffectIntensity(e)}setEffectIntensity(e,t){this._thinEffectLayer.setEffectIntensity(e,t)}constructor(e,t,i=!1,s){this._maxSize=0,this._mainTextureDesiredSize={width:0,height:0},this._postProcesses=[],this._textures=[],this.onDisposeObservable=new xe,this.onBeforeRenderMainTextureObservable=new xe,this.onBeforeComposeObservable=new xe,this.onBeforeRenderMeshToEffect=new xe,this.onAfterRenderMeshToEffect=new xe,this.onAfterComposeObservable=new xe,this.onSizeChangedObservable=new xe,this._internalThinEffectLayer=!s,s||(s=new Uy(e,t,i,!1,this._importShadersAsync.bind(this)),s.getEffectName=this.getEffectName.bind(this),s.isReady=this.isReady.bind(this),s._createMergeEffect=this._createMergeEffect.bind(this),s._createTextureAndPostProcesses=this._createTextureAndPostProcesses.bind(this),s._internalCompose=this._internalRender.bind(this),s._setEmissiveTextureAndColor=this._setEmissiveTextureAndColor.bind(this),s._numInternalDraws=this._numInternalDraws.bind(this),s._addCustomEffectDefines=this._addCustomEffectDefines.bind(this),s.hasMesh=this.hasMesh.bind(this),s.shouldRender=this.shouldRender.bind(this),s._shouldRenderMesh=this._shouldRenderMesh.bind(this),s._canRenderMesh=this._canRenderMesh.bind(this),s._useMeshMaterial=this._useMeshMaterial.bind(this)),this._thinEffectLayer=s,this.name=e,this._scene=t||ei.LastCreatedScene,m3._SceneComponentInitialization(this._scene),this._engine=this._scene.getEngine(),this._maxSize=this._engine.getCaps().maxTextureSize,this._scene.effectLayers.push(this),this._thinEffectLayer.onDisposeObservable.add(()=>{this.onDisposeObservable.notifyObservers(this)}),this._thinEffectLayer.onBeforeRenderLayerObservable.add(()=>{this.onBeforeRenderMainTextureObservable.notifyObservers(this)}),this._thinEffectLayer.onBeforeComposeObservable.add(()=>{this.onBeforeComposeObservable.notifyObservers(this)}),this._thinEffectLayer.onBeforeRenderMeshToEffect.add(r=>{this.onBeforeRenderMeshToEffect.notifyObservers(r)}),this._thinEffectLayer.onAfterRenderMeshToEffect.add(r=>{this.onAfterRenderMeshToEffect.notifyObservers(r)}),this._thinEffectLayer.onAfterComposeObservable.add(()=>{this.onAfterComposeObservable.notifyObservers(this)})}get _shadersLoaded(){return this._thinEffectLayer._shadersLoaded}set _shadersLoaded(e){this._thinEffectLayer._shadersLoaded=e}_numInternalDraws(){return this._internalThinEffectLayer?1:this._thinEffectLayer._numInternalDraws()}_init(e){this._effectLayerOptions={mainTextureRatio:.5,alphaBlendingMode:2,camera:null,renderingGroupId:-1,mainTextureType:0,generateStencilBuffer:!1,...e},this._setMainTextureSize(),this._thinEffectLayer._init(e),this._createMainTexture(),this._createTextureAndPostProcesses()}_setMainTextureSize(){this._effectLayerOptions.mainTextureFixedSize?(this._mainTextureDesiredSize.width=this._effectLayerOptions.mainTextureFixedSize,this._mainTextureDesiredSize.height=this._effectLayerOptions.mainTextureFixedSize):(this._mainTextureDesiredSize.width=this._engine.getRenderWidth()*this._effectLayerOptions.mainTextureRatio,this._mainTextureDesiredSize.height=this._engine.getRenderHeight()*this._effectLayerOptions.mainTextureRatio,this._mainTextureDesiredSize.width=this._engine.needPOTTextures?g0(this._mainTextureDesiredSize.width,this._maxSize):this._mainTextureDesiredSize.width,this._mainTextureDesiredSize.height=this._engine.needPOTTextures?g0(this._mainTextureDesiredSize.height,this._maxSize):this._mainTextureDesiredSize.height),this._mainTextureDesiredSize.width=Math.floor(this._mainTextureDesiredSize.width),this._mainTextureDesiredSize.height=Math.floor(this._mainTextureDesiredSize.height)}_createMainTexture(){this._mainTexture=new Ir("EffectLayerMainRTT",{width:this._mainTextureDesiredSize.width,height:this._mainTextureDesiredSize.height},this._scene,{type:this._effectLayerOptions.mainTextureType,samplingMode:be.TRILINEAR_SAMPLINGMODE,generateStencilBuffer:this._effectLayerOptions.generateStencilBuffer,existingObjectRenderer:this._thinEffectLayer.objectRenderer}),this._mainTexture.activeCamera=this._effectLayerOptions.camera,this._mainTexture.wrapU=be.CLAMP_ADDRESSMODE,this._mainTexture.wrapV=be.CLAMP_ADDRESSMODE,this._mainTexture.anisotropicFilteringLevel=1,this._mainTexture.updateSamplingMode(be.BILINEAR_SAMPLINGMODE),this._mainTexture.renderParticles=!1,this._mainTexture.renderList=null,this._mainTexture.ignoreCameraViewport=!0,this._mainTexture.onClearObservable.add(e=>{e.clear(this.neutralColor,!0,!0,!0)})}_addCustomEffectDefines(e){}_isReady(e,t,i){return this._internalThinEffectLayer?this._thinEffectLayer._internalIsSubMeshReady(e,t,i):this._thinEffectLayer._isSubMeshReady(e,t,i)}async _importShadersAsync(){}_arePostProcessAndMergeReady(){return this._internalThinEffectLayer?this._thinEffectLayer._internalIsLayerReady():this._thinEffectLayer.isLayerReady()}isLayerReady(){return this._arePostProcessAndMergeReady()&&this._mainTexture.isReady()}render(){if(!this._thinEffectLayer.compose())return;const e=this._mainTexture.getSize();this._setMainTextureSize(),(e.width!==this._mainTextureDesiredSize.width||e.height!==this._mainTextureDesiredSize.height)&&this._mainTextureDesiredSize.width!==0&&this._mainTextureDesiredSize.height!==0&&(this.onSizeChangedObservable.notifyObservers(this),this._disposeTextureAndPostProcesses(),this._createMainTexture(),this._createTextureAndPostProcesses())}hasMesh(e){return this._internalThinEffectLayer?this._thinEffectLayer._internalHasMesh(e):this._thinEffectLayer.hasMesh(e)}shouldRender(){return this._internalThinEffectLayer?this._thinEffectLayer._internalShouldRender():this._thinEffectLayer.shouldRender()}_shouldRenderMesh(e){return this._internalThinEffectLayer?!0:this._thinEffectLayer._shouldRenderMesh(e)}_canRenderMesh(e,t){return this._internalThinEffectLayer?this._thinEffectLayer._internalCanRenderMesh(e,t):this._thinEffectLayer._canRenderMesh(e,t)}_shouldRenderEmissiveTextureForMesh(){return!0}_useMeshMaterial(e){return this._internalThinEffectLayer?!1:this._thinEffectLayer._useMeshMaterial(e)}_rebuild(){this._thinEffectLayer._rebuild()}_disposeTextureAndPostProcesses(){this._mainTexture.dispose();for(let e=0;e<this._postProcesses.length;e++)this._postProcesses[e]&&this._postProcesses[e].dispose();this._postProcesses=[];for(let e=0;e<this._textures.length;e++)this._textures[e]&&this._textures[e].dispose();this._textures=[]}dispose(){this._thinEffectLayer.dispose(),this._disposeTextureAndPostProcesses();const e=this._scene.effectLayers.indexOf(this,0);e>-1&&this._scene.effectLayers.splice(e,1),this.onDisposeObservable.clear(),this.onBeforeRenderMainTextureObservable.clear(),this.onBeforeComposeObservable.clear(),this.onBeforeRenderMeshToEffect.clear(),this.onAfterRenderMeshToEffect.clear(),this.onAfterComposeObservable.clear(),this.onSizeChangedObservable.clear()}getClassName(){return"EffectLayer"}static Parse(e,t,i){return Le.Instantiate(e.customType).Parse(e,t,i)}}m3._SceneComponentInitialization=a=>{throw as("EffectLayerSceneComponent")},F([G()],m3.prototype,"name",null),F([hP()],m3.prototype,"neutralColor",null),F([G()],m3.prototype,"isEnabled",null),F([ohe()],m3.prototype,"camera",null),F([G()],m3.prototype,"renderingGroupId",null),F([G()],m3.prototype,"disableBoundingBoxesFromEffectLayer",null),aL(jt.NAME_EFFECTLAYER,(a,e,t,i)=>{if(a.effectLayers){t.effectLayers||(t.effectLayers=[]);for(let s=0;s<a.effectLayers.length;s++){const r=m3.Parse(a.effectLayers[s],e,i);t.effectLayers.push(r)}}}),ui.prototype.removeEffectLayer=function(a){const e=this.effectLayers.indexOf(a);return e!==-1&&this.effectLayers.splice(e,1),e},ui.prototype.addEffectLayer=function(a){this.effectLayers.push(a)};class j3e{constructor(e){this.name=jt.NAME_EFFECTLAYER,this._renderEffects=!1,this._needStencil=!1,this._previousStencilState=!1,this.scene=e||ei.LastCreatedScene,this.scene&&(this._engine=this.scene.getEngine())}register(){this.scene._isReadyForMeshStage.registerStep(jt.STEP_ISREADYFORMESH_EFFECTLAYER,this,this._isReadyForMesh),this.scene._cameraDrawRenderTargetStage.registerStep(jt.STEP_CAMERADRAWRENDERTARGET_EFFECTLAYER,this,this._renderMainTexture),this.scene._beforeCameraDrawStage.registerStep(jt.STEP_BEFORECAMERADRAW_EFFECTLAYER,this,this._setStencil),this.scene._afterRenderingGroupDrawStage.registerStep(jt.STEP_AFTERRENDERINGGROUPDRAW_EFFECTLAYER_DRAW,this,this._drawRenderingGroup),this.scene._afterCameraDrawStage.registerStep(jt.STEP_AFTERCAMERADRAW_EFFECTLAYER,this,this._setStencilBack),this.scene._afterCameraDrawStage.registerStep(jt.STEP_AFTERCAMERADRAW_EFFECTLAYER_DRAW,this,this._drawCamera)}rebuild(){const e=this.scene.effectLayers;for(const t of e)t._rebuild()}serialize(e){e.effectLayers=[];const t=this.scene.effectLayers;for(const i of t)i.serialize&&e.effectLayers.push(i.serialize())}addFromContainer(e){e.effectLayers&&e.effectLayers.forEach(t=>{this.scene.addEffectLayer(t)})}removeFromContainer(e,t){e.effectLayers&&e.effectLayers.forEach(i=>{this.scene.removeEffectLayer(i),t&&i.dispose()})}dispose(){const e=this.scene.effectLayers;for(;e.length;)e[0].dispose()}_isReadyForMesh(e,t){const i=this._engine.currentRenderPassId,s=this.scene.effectLayers;for(const r of s){if(!r.hasMesh(e))continue;const n=r._mainTexture;this._engine.currentRenderPassId=n.renderPassId;for(const o of e.subMeshes)if(!r.isReady(o,t))return this._engine.currentRenderPassId=i,!1}return this._engine.currentRenderPassId=i,!0}_renderMainTexture(e){this._renderEffects=!1,this._needStencil=!1;let t=!1;const i=this.scene.effectLayers;if(i&&i.length>0){this._previousStencilState=this._engine.getStencilBuffer();for(const s of i)if(s.shouldRender()&&(!s.camera||s.camera.cameraRigMode===_i.RIG_MODE_NONE&&e===s.camera||s.camera.cameraRigMode!==_i.RIG_MODE_NONE&&s.camera._rigCameras.indexOf(e)>-1)){this._renderEffects=!0,this._needStencil=this._needStencil||s.needStencil();const r=s._mainTexture;r._shouldRender()&&(this.scene.incrementRenderId(),r.render(!1,!1),t=!0)}this.scene.incrementRenderId()}return t}_setStencil(){this._needStencil&&this._engine.setStencilBuffer(!0)}_setStencilBack(){this._needStencil&&this._engine.setStencilBuffer(this._previousStencilState)}_draw(e){if(this._renderEffects){this._engine.setDepthBuffer(!1);const t=this.scene.effectLayers;for(let i=0;i<t.length;i++){const s=t[i];s.renderingGroupId===e&&s.shouldRender()&&s.render()}this._engine.setDepthBuffer(!0)}}_drawCamera(){this._renderEffects&&this._draw(-1)}_drawRenderingGroup(e){!this.scene._isInIntermediateRendering()&&this._renderEffects&&this._draw(e)}}m3._SceneComponentInitialization=a=>{let e=a._getComponent(jt.NAME_EFFECTLAYER);e||(e=new j3e(a),a._addComponent(e))},ui.prototype.getGlowLayerByName=function(a){var e;for(let t=0;t<((e=this.effectLayers)==null?void 0:e.length);t++)if(this.effectLayers[t].name===a&&this.effectLayers[t].getEffectName()===P4.EffectName)return this.effectLayers[t];return null};class P4 extends m3{static get EffectName(){return n9.EffectName}set blurKernelSize(e){this._thinEffectLayer.blurKernelSize=e}get blurKernelSize(){return this._thinEffectLayer.blurKernelSize}set intensity(e){this._thinEffectLayer.intensity=e}get intensity(){return this._thinEffectLayer.intensity}get customEmissiveColorSelector(){return this._thinEffectLayer.customEmissiveColorSelector}set customEmissiveColorSelector(e){this._thinEffectLayer.customEmissiveColorSelector=e}get customEmissiveTextureSelector(){return this._thinEffectLayer.customEmissiveTextureSelector}set customEmissiveTextureSelector(e){this._thinEffectLayer.customEmissiveTextureSelector=e}constructor(e,t,i){super(e,t,!1,new n9(e,t,i)),this._options={mainTextureRatio:P4.DefaultTextureRatio,blurKernelSize:32,mainTextureFixedSize:void 0,camera:null,mainTextureSamples:1,renderingGroupId:-1,ldrMerge:!1,alphaBlendingMode:1,mainTextureType:0,generateStencilBuffer:!1,...i},this._init(this._options)}getEffectName(){return P4.EffectName}_createMergeEffect(){return this._thinEffectLayer._createMergeEffect()}_createTextureAndPostProcesses(){this._thinEffectLayer._renderPassId=this._mainTexture.renderPassId;let e=this._mainTextureDesiredSize.width,t=this._mainTextureDesiredSize.height;e=this._engine.needPOTTextures?g0(e,this._maxSize):e,t=this._engine.needPOTTextures?g0(t,this._maxSize):t;let i=0;this._engine.getCaps().textureHalfFloatRender?i=2:i=0,this._blurTexture1=new Ir("GlowLayerBlurRTT",{width:e,height:t},this._scene,!1,!0,i),this._blurTexture1.wrapU=be.CLAMP_ADDRESSMODE,this._blurTexture1.wrapV=be.CLAMP_ADDRESSMODE,this._blurTexture1.updateSamplingMode(be.BILINEAR_SAMPLINGMODE),this._blurTexture1.renderParticles=!1,this._blurTexture1.ignoreCameraViewport=!0;const s=Math.floor(e/2),r=Math.floor(t/2);this._blurTexture2=new Ir("GlowLayerBlurRTT2",{width:s,height:r},this._scene,!1,!0,i),this._blurTexture2.wrapU=be.CLAMP_ADDRESSMODE,this._blurTexture2.wrapV=be.CLAMP_ADDRESSMODE,this._blurTexture2.updateSamplingMode(be.BILINEAR_SAMPLINGMODE),this._blurTexture2.renderParticles=!1,this._blurTexture2.ignoreCameraViewport=!0,this._textures=[this._blurTexture1,this._blurTexture2],this._thinEffectLayer.bindTexturesForCompose=u=>{u.setTexture("textureSampler",this._blurTexture1),u.setTexture("textureSampler2",this._blurTexture2),u.setFloat("offset",this.intensity)},this._thinEffectLayer._createTextureAndPostProcesses();const n=this._thinEffectLayer._postProcesses[0];this._horizontalBlurPostprocess1=new tc("GlowLayerHBP1",n.direction,n.kernel,{samplingMode:be.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),width:e,height:t,textureType:i,effectWrapper:n}),this._horizontalBlurPostprocess1.width=e,this._horizontalBlurPostprocess1.height=t,this._horizontalBlurPostprocess1.externalTextureSamplerBinding=!0,this._horizontalBlurPostprocess1.onApplyObservable.add(u=>{u.setTexture("textureSampler",this._mainTexture)});const o=this._thinEffectLayer._postProcesses[1];this._verticalBlurPostprocess1=new tc("GlowLayerVBP1",o.direction,o.kernel,{samplingMode:be.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),width:e,height:t,textureType:i,effectWrapper:o});const l=this._thinEffectLayer._postProcesses[2];this._horizontalBlurPostprocess2=new tc("GlowLayerHBP2",l.direction,l.kernel,{samplingMode:be.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),width:s,height:r,textureType:i,effectWrapper:l}),this._horizontalBlurPostprocess2.width=s,this._horizontalBlurPostprocess2.height=r,this._horizontalBlurPostprocess2.externalTextureSamplerBinding=!0,this._horizontalBlurPostprocess2.onApplyObservable.add(u=>{u.setTexture("textureSampler",this._blurTexture1)});const c=this._thinEffectLayer._postProcesses[3];this._verticalBlurPostprocess2=new tc("GlowLayerVBP2",c.direction,c.kernel,{samplingMode:be.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),width:s,height:r,textureType:i,effectWrapper:c}),this._postProcesses=[this._horizontalBlurPostprocess1,this._verticalBlurPostprocess1,this._horizontalBlurPostprocess2,this._verticalBlurPostprocess2],this._postProcesses1=[this._horizontalBlurPostprocess1,this._verticalBlurPostprocess1],this._postProcesses2=[this._horizontalBlurPostprocess2,this._verticalBlurPostprocess2],this._mainTexture.samples=this._options.mainTextureSamples,this._mainTexture.onAfterUnbindObservable.add(()=>{const u=this._blurTexture1.renderTarget;if(u){this._scene.postProcessManager.directRender(this._postProcesses1,u,!0);const f=this._blurTexture2.renderTarget;f&&this._scene.postProcessManager.directRender(this._postProcesses2,f,!0),this._engine.unBindFramebuffer(f??u,!0)}}),this._postProcesses.map(u=>{u.autoClear=!1})}isReady(e,t){return this._thinEffectLayer.isReady(e,t)}needStencil(){return!1}_canRenderMesh(e,t){return this._thinEffectLayer._canRenderMesh(e,t)}_internalRender(e){this._thinEffectLayer._internalCompose(e)}_setEmissiveTextureAndColor(e,t,i){this._thinEffectLayer._setEmissiveTextureAndColor(e,t,i)}_shouldRenderMesh(e){return this._thinEffectLayer._shouldRenderMesh(e)}_addCustomEffectDefines(e){this._thinEffectLayer._addCustomEffectDefines(e)}addExcludedMesh(e){this._thinEffectLayer.addExcludedMesh(e)}removeExcludedMesh(e){this._thinEffectLayer.removeExcludedMesh(e)}addIncludedOnlyMesh(e){this._thinEffectLayer.addIncludedOnlyMesh(e)}removeIncludedOnlyMesh(e){this._thinEffectLayer.removeIncludedOnlyMesh(e)}hasMesh(e){return this._thinEffectLayer.hasMesh(e)}_useMeshMaterial(e){return this._thinEffectLayer._useMeshMaterial(e)}referenceMeshToUseItsOwnMaterial(e){this._thinEffectLayer.referenceMeshToUseItsOwnMaterial(e)}unReferenceMeshFromUsingItsOwnMaterial(e){this._thinEffectLayer.unReferenceMeshFromUsingItsOwnMaterial(e,this._mainTexture.renderPassId)}_disposeMesh(e){this._thinEffectLayer._disposeMesh(e)}getClassName(){return"GlowLayer"}serialize(){const e=It.Serialize(this);e.customType="BABYLON.GlowLayer";let t;e.includedMeshes=[];const i=this._thinEffectLayer._includedOnlyMeshes;if(i.length)for(t=0;t<i.length;t++){const r=this._scene.getMeshByUniqueId(i[t]);r&&e.includedMeshes.push(r.id)}e.excludedMeshes=[];const s=this._thinEffectLayer._excludedMeshes;if(s.length)for(t=0;t<s.length;t++){const r=this._scene.getMeshByUniqueId(s[t]);r&&e.excludedMeshes.push(r.id)}return e}static Parse(e,t,i){const s=It.Parse(()=>new P4(e.name,t,e.options),e,t,i);let r;for(r=0;r<e.excludedMeshes.length;r++){const n=t.getMeshById(e.excludedMeshes[r]);n&&s.addExcludedMesh(n)}for(r=0;r<e.includedMeshes.length;r++){const n=t.getMeshById(e.includedMeshes[r]);n&&s.addIncludedOnlyMesh(n)}return s}}P4.DefaultBlurKernelSize=32,P4.DefaultTextureRatio=.5,F([G()],P4.prototype,"blurKernelSize",null),F([G()],P4.prototype,"intensity",null),F([G("options")],P4.prototype,"_options",void 0),ve("BABYLON.GlowLayer",P4),ui.prototype.getHighlightLayerByName=function(a){var e;for(let t=0;t<((e=this.effectLayers)==null?void 0:e.length);t++)if(this.effectLayers[t].name===a&&this.effectLayers[t].getEffectName()===c_.EffectName)return this.effectLayers[t];return null};class V3e extends Mi{constructor(e,t,i,s,r=null,n=be.BILINEAR_SAMPLINGMODE,o,l){const c={uniforms:s_.Uniforms,size:typeof s=="number"?s:void 0,camera:r,samplingMode:n,engine:o,reusable:l,...s};super(e,s_.FragmentUrl,{effectWrapper:typeof s=="number"||!s.effectWrapper?new s_(e,o,t,i,c):void 0,...c}),this.direction=t,this.kernel=i,this.onApplyObservable.add(()=>{this._effectWrapper.textureWidth=this.width,this._effectWrapper.textureHeight=this.height})}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>zH))):t.push(Promise.resolve().then(()=>BH)),super._gatherImports(e,t)}}class c_ extends m3{static get NeutralColor(){return f3.NeutralColor}static set NeutralColor(e){f3.NeutralColor=e}get innerGlow(){return this._thinEffectLayer.innerGlow}set innerGlow(e){this._thinEffectLayer.innerGlow=e}get outerGlow(){return this._thinEffectLayer.outerGlow}set outerGlow(e){this._thinEffectLayer.outerGlow=e}set blurHorizontalSize(e){this._thinEffectLayer.blurHorizontalSize=e}set blurVerticalSize(e){this._thinEffectLayer.blurVerticalSize=e}get blurHorizontalSize(){return this._thinEffectLayer.blurHorizontalSize}get blurVerticalSize(){return this._thinEffectLayer.blurVerticalSize}constructor(e,t,i){super(e,t,i!==void 0?!!i.forceGLSL:!1,new f3(e,t,i)),this.onBeforeBlurObservable=new xe,this.onAfterBlurObservable=new xe,this._engine.isStencilEnable||de.Warn("Rendering the Highlight Layer requires the stencil to be active on the canvas. var engine = new Engine(canvas, antialias, { stencil: true }"),this._options={mainTextureRatio:.5,blurTextureSizeRatio:.5,mainTextureFixedSize:0,blurHorizontalSize:1,blurVerticalSize:1,alphaBlendingMode:2,camera:null,renderingGroupId:-1,mainTextureType:0,forceGLSL:!1,isStroke:!1,...i},this._init(this._options),this._shouldRender=!1}getEffectName(){return c_.EffectName}_numInternalDraws(){return 2}_createMergeEffect(){return this._thinEffectLayer._createMergeEffect()}_createTextureAndPostProcesses(){let e=this._mainTextureDesiredSize.width*this._options.blurTextureSizeRatio,t=this._mainTextureDesiredSize.height*this._options.blurTextureSizeRatio;e=this._engine.needPOTTextures?g0(e,this._maxSize):e,t=this._engine.needPOTTextures?g0(t,this._maxSize):t;let i=0;this._engine.getCaps().textureHalfFloatRender?i=2:i=0,this._blurTexture=new Ir("HighlightLayerBlurRTT",{width:e,height:t},this._scene,!1,!0,i),this._blurTexture.wrapU=be.CLAMP_ADDRESSMODE,this._blurTexture.wrapV=be.CLAMP_ADDRESSMODE,this._blurTexture.anisotropicFilteringLevel=16,this._blurTexture.updateSamplingMode(be.TRILINEAR_SAMPLINGMODE),this._blurTexture.renderParticles=!1,this._blurTexture.ignoreCameraViewport=!0,this._textures=[this._blurTexture],this._thinEffectLayer.bindTexturesForCompose=s=>{s.setTexture("textureSampler",this._blurTexture)},this._thinEffectLayer._createTextureAndPostProcesses(),this._options.alphaBlendingMode===2?(this._downSamplePostprocess=new q6("HighlightLayerPPP",{size:this._options.blurTextureSizeRatio,samplingMode:be.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),effectWrapper:this._thinEffectLayer._postProcesses[0]}),this._downSamplePostprocess.externalTextureSamplerBinding=!0,this._downSamplePostprocess.onApplyObservable.add(s=>{s.setTexture("textureSampler",this._mainTexture)}),this._horizontalBlurPostprocess=new V3e("HighlightLayerHBP",new Ue(1,0),this._options.blurHorizontalSize,{samplingMode:be.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),effectWrapper:this._thinEffectLayer._postProcesses[1]}),this._horizontalBlurPostprocess.onApplyObservable.add(s=>{s.setFloat2("screenSize",e,t)}),this._verticalBlurPostprocess=new V3e("HighlightLayerVBP",new Ue(0,1),this._options.blurVerticalSize,{samplingMode:be.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),effectWrapper:this._thinEffectLayer._postProcesses[2]}),this._verticalBlurPostprocess.onApplyObservable.add(s=>{s.setFloat2("screenSize",e,t)}),this._postProcesses=[this._downSamplePostprocess,this._horizontalBlurPostprocess,this._verticalBlurPostprocess]):(this._horizontalBlurPostprocess=new tc("HighlightLayerHBP",new Ue(1,0),this._options.blurHorizontalSize/2,{size:{width:e,height:t},samplingMode:be.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),textureType:i,effectWrapper:this._thinEffectLayer._postProcesses[0]}),this._horizontalBlurPostprocess.width=e,this._horizontalBlurPostprocess.height=t,this._horizontalBlurPostprocess.externalTextureSamplerBinding=!0,this._horizontalBlurPostprocess.onApplyObservable.add(s=>{s.setTexture("textureSampler",this._mainTexture)}),this._verticalBlurPostprocess=new tc("HighlightLayerVBP",new Ue(0,1),this._options.blurVerticalSize/2,{size:{width:e,height:t},samplingMode:be.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),textureType:i}),this._postProcesses=[this._horizontalBlurPostprocess,this._verticalBlurPostprocess]),this._mainTexture.onAfterUnbindObservable.add(()=>{this.onBeforeBlurObservable.notifyObservers(this);const s=this._blurTexture.renderTarget;s&&(this._scene.postProcessManager.directRender(this._postProcesses,s,!0),this._engine.unBindFramebuffer(s,!0)),this.onAfterBlurObservable.notifyObservers(this)}),this._postProcesses.map(s=>{s.autoClear=!1})}needStencil(){return this._thinEffectLayer.needStencil()}isReady(e,t){return this._thinEffectLayer.isReady(e,t)}_internalRender(e,t){this._thinEffectLayer._internalCompose(e,t)}shouldRender(){return this._thinEffectLayer.shouldRender()}_shouldRenderMesh(e){return this._thinEffectLayer._shouldRenderMesh(e)}_canRenderMesh(e,t){return this._thinEffectLayer._canRenderMesh(e,t)}_addCustomEffectDefines(e){this._thinEffectLayer._addCustomEffectDefines(e)}_setEmissiveTextureAndColor(e,t,i){this._thinEffectLayer._setEmissiveTextureAndColor(e,t,i)}addExcludedMesh(e){this._thinEffectLayer.addExcludedMesh(e)}removeExcludedMesh(e){this._thinEffectLayer.removeExcludedMesh(e)}hasMesh(e){return this._thinEffectLayer.hasMesh(e)}addMesh(e,t,i=!1){this._thinEffectLayer.addMesh(e,t,i)}removeMesh(e){this._thinEffectLayer.removeMesh(e)}removeAllMeshes(){this._thinEffectLayer.removeAllMeshes()}_disposeMesh(e){this._thinEffectLayer._disposeMesh(e)}getClassName(){return"HighlightLayer"}serialize(){const e=It.Serialize(this);e.customType="BABYLON.HighlightLayer",e.meshes=[];const t=this._thinEffectLayer._meshes;if(t)for(const s in t){const r=t[s];r&&e.meshes.push({glowEmissiveOnly:r.glowEmissiveOnly,color:r.color.asArray(),meshId:r.mesh.id})}e.excludedMeshes=[];const i=this._thinEffectLayer._excludedMeshes;if(i)for(const s in i){const r=i[s];r&&e.excludedMeshes.push(r.mesh.id)}return e}static Parse(e,t,i){const s=It.Parse(()=>new c_(e.name,t,e.options),e,t,i);let r;for(r=0;r<e.excludedMeshes.length;r++){const n=t.getMeshById(e.excludedMeshes[r]);n&&s.addExcludedMesh(n)}for(r=0;r<e.meshes.length;r++){const n=e.meshes[r],o=t.getMeshById(n.meshId);o&&s.addMesh(o,Pe.FromArray(n.color),n.glowEmissiveOnly)}return s}}c_.EffectName="HighlightLayer",F([G()],c_.prototype,"innerGlow",null),F([G()],c_.prototype,"outerGlow",null),F([G()],c_.prototype,"blurHorizontalSize",null),F([G()],c_.prototype,"blurVerticalSize",null),F([G("options")],c_.prototype,"_options",void 0),ve("BABYLON.HighlightLayer",c_);class G3e{constructor(e){this.name=jt.NAME_LAYER,this.scene=e||ei.LastCreatedScene,this.scene&&(this._engine=this.scene.getEngine())}register(){this.scene._beforeCameraDrawStage.registerStep(jt.STEP_BEFORECAMERADRAW_LAYER,this,this._drawCameraBackground),this.scene._afterCameraDrawStage.registerStep(jt.STEP_AFTERCAMERADRAW_LAYER,this,this._drawCameraForegroundWithPostProcessing),this.scene._afterCameraPostProcessStage.registerStep(jt.STEP_AFTERCAMERAPOSTPROCESS_LAYER,this,this._drawCameraForegroundWithoutPostProcessing),this.scene._beforeRenderTargetDrawStage.registerStep(jt.STEP_BEFORERENDERTARGETDRAW_LAYER,this,this._drawRenderTargetBackground),this.scene._afterRenderTargetDrawStage.registerStep(jt.STEP_AFTERRENDERTARGETDRAW_LAYER,this,this._drawRenderTargetForegroundWithPostProcessing),this.scene._afterRenderTargetPostProcessStage.registerStep(jt.STEP_AFTERRENDERTARGETPOSTPROCESS_LAYER,this,this._drawRenderTargetForegroundWithoutPostProcessing)}rebuild(){const e=this.scene.layers;for(const t of e)t._rebuild()}dispose(){const e=this.scene.layers;for(;e.length;)e[0].dispose()}_draw(e){const t=this.scene.layers;if(t.length){this._engine.setDepthBuffer(!1);for(const i of t)e(i)&&i.render();this._engine.setDepthBuffer(!0)}}_drawCameraPredicate(e,t,i,s){return!e.renderOnlyInRenderTargetTextures&&e.isBackground===t&&e.applyPostProcess===i&&(e.layerMask&s)!==0}_drawCameraBackground(e){this._draw(t=>this._drawCameraPredicate(t,!0,!0,e.layerMask))}_drawCameraForegroundWithPostProcessing(e){this._draw(t=>this._drawCameraPredicate(t,!1,!0,e.layerMask))}_drawCameraForegroundWithoutPostProcessing(e){this._draw(t=>this._drawCameraPredicate(t,!1,!1,e.layerMask))}_drawRenderTargetPredicate(e,t,i,s,r){return e.renderTargetTextures.length>0&&e.isBackground===t&&e.applyPostProcess===i&&e.renderTargetTextures.indexOf(r)>-1&&(e.layerMask&s)!==0}_drawRenderTargetBackground(e){this._draw(t=>this._drawRenderTargetPredicate(t,!0,!0,this.scene.activeCamera.layerMask,e))}_drawRenderTargetForegroundWithPostProcessing(e){this._draw(t=>this._drawRenderTargetPredicate(t,!1,!0,this.scene.activeCamera.layerMask,e))}_drawRenderTargetForegroundWithoutPostProcessing(e){this._draw(t=>this._drawRenderTargetPredicate(t,!1,!1,this.scene.activeCamera.layerMask,e))}addFromContainer(e){e.layers&&e.layers.forEach(t=>{this.scene.layers.push(t)})}removeFromContainer(e,t=!1){e.layers&&e.layers.forEach(i=>{const s=this.scene.layers.indexOf(i);s!==-1&&this.scene.layers.splice(s,1),t&&i.dispose()})}}class dO{set applyPostProcess(e){this._applyPostProcess=e}get applyPostProcess(){return this.isBackground||this._applyPostProcess}set onDispose(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)}set onBeforeRender(e){this._onBeforeRenderObserver&&this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=this.onBeforeRenderObservable.add(e)}set onAfterRender(e){this._onAfterRenderObserver&&this.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=this.onAfterRenderObservable.add(e)}get shaderLanguage(){return this._shaderLanguage}constructor(e,t,i,s,r,n=!1){this.name=e,this._applyPostProcess=!0,this.scale=new Ue(1,1),this.offset=new Ue(0,0),this.alphaBlendingMode=2,this.layerMask=268435455,this.renderTargetTextures=[],this.renderOnlyInRenderTargetTextures=!1,this.convertToLinearSpace=!1,this.isEnabled=!0,this._vertexBuffers={},this.onDisposeObservable=new xe,this.onBeforeRenderObservable=new xe,this.onAfterRenderObservable=new xe,this._shaderLanguage=0,this._shadersLoaded=!1,this.texture=t?new be(t,i,!0):null,this.isBackground=s===void 0?!0:s,this.color=r===void 0?new St(1,1,1,1):r,this._scene=i||ei.LastCreatedScene;const o=this._scene.getEngine();o.isWebGPU&&!n&&!dO.ForceGLSL&&(this._shaderLanguage=1);let l=this._scene._getComponent(jt.NAME_LAYER);l||(l=new G3e(this._scene),this._scene._addComponent(l)),this._scene.layers.push(this),this._drawWrapper=new ql(o);const c=[];c.push(1,1),c.push(-1,1),c.push(-1,-1),c.push(1,-1);const u=new q(o,c,q.PositionKind,!1,!1,2);this._vertexBuffers[q.PositionKind]=u,this._createIndexBuffer()}_createIndexBuffer(){const e=this._scene.getEngine(),t=[];t.push(0),t.push(1),t.push(2),t.push(0),t.push(2),t.push(3),this._indexBuffer=e.createIndexBuffer(t)}_rebuild(){const e=this._vertexBuffers[q.PositionKind];e&&e._rebuild(),this._createIndexBuffer()}isReady(){const e=this._scene.getEngine();let t="";this.alphaTest&&(t="#define ALPHATEST"),this.texture&&(this.texture.gammaSpace?this.convertToLinearSpace&&(t+=`
#define CONVERT_TO_LINEAR`):this.convertToLinearSpace||(t+=`
#define CONVERT_TO_GAMMA`)),this._previousDefines!==t&&(this._previousDefines=t,this._drawWrapper.effect=e.createEffect("layer",[q.PositionKind],["textureMatrix","color","scale","offset"],["textureSampler"],t,void 0,void 0,void 0,void 0,this._shaderLanguage,this._shadersLoaded?void 0:async()=>{this._shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>VFe),Promise.resolve().then(()=>jFe)]):await Promise.all([Promise.resolve().then(()=>UFe),Promise.resolve().then(()=>kFe)]),this._shadersLoaded=!0}));const i=this._drawWrapper.effect;return!!(i!=null&&i.isReady())&&(!this.texture||this.texture.isReady())}render(){if(!this.isEnabled)return;const e=this._scene.getEngine();if(!this.isReady())return;const t=this._drawWrapper.effect;this.onBeforeRenderObservable.notifyObservers(this),e.enableEffect(this._drawWrapper),e.setState(!1),this.texture&&(t.setTexture("textureSampler",this.texture),t.setMatrix("textureMatrix",this.texture.getTextureMatrix())),t.setFloat4("color",this.color.r,this.color.g,this.color.b,this.color.a),t.setVector2("offset",this.offset),t.setVector2("scale",this.scale),e.bindBuffers(this._vertexBuffers,this._indexBuffer,t),this.alphaTest?e.drawElementsType(ft.TriangleFillMode,0,6):(e.setAlphaMode(this.alphaBlendingMode),e.drawElementsType(ft.TriangleFillMode,0,6),e.setAlphaMode(0)),this.onAfterRenderObservable.notifyObservers(this)}dispose(){const e=this._vertexBuffers[q.PositionKind];e&&(e.dispose(),this._vertexBuffers[q.PositionKind]=null),this._indexBuffer&&(this._scene.getEngine()._releaseBuffer(this._indexBuffer),this._indexBuffer=null),this.texture&&(this.texture.dispose(),this.texture=null),this.renderTargetTextures=[];const t=this._scene.layers.indexOf(this);this._scene.layers.splice(t,1),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onAfterRenderObservable.clear(),this.onBeforeRenderObservable.clear()}}dO.ForceGLSL=!1;const Zte="helperFunctions",W3e=`const float PI=3.1415926535897932384626433832795;const float TWO_PI=6.283185307179586;const float HALF_PI=1.5707963267948966;const float RECIPROCAL_PI=0.3183098861837907;const float RECIPROCAL_PI2=0.15915494309189535;const float RECIPROCAL_PI4=0.07957747154594767;const float HALF_MIN=5.96046448e-08; 
const float LinearEncodePowerApprox=2.2;const float GammaEncodePowerApprox=1.0/LinearEncodePowerApprox;const vec3 LuminanceEncodeApprox=vec3(0.2126,0.7152,0.0722);const float Epsilon=0.0000001;
#define saturate(x) clamp(x,0.0,1.0)
#define absEps(x) abs(x)+Epsilon
#define maxEps(x) max(x,Epsilon)
#define saturateEps(x) clamp(x,Epsilon,1.0)
mat3 transposeMat3(mat3 inMatrix) {vec3 i0=inMatrix[0];vec3 i1=inMatrix[1];vec3 i2=inMatrix[2];mat3 outMatrix=mat3(
vec3(i0.x,i1.x,i2.x),
vec3(i0.y,i1.y,i2.y),
vec3(i0.z,i1.z,i2.z)
);return outMatrix;}
mat3 inverseMat3(mat3 inMatrix) {float a00=inMatrix[0][0],a01=inMatrix[0][1],a02=inMatrix[0][2];float a10=inMatrix[1][0],a11=inMatrix[1][1],a12=inMatrix[1][2];float a20=inMatrix[2][0],a21=inMatrix[2][1],a22=inMatrix[2][2];float b01=a22*a11-a12*a21;float b11=-a22*a10+a12*a20;float b21=a21*a10-a11*a20;float det=a00*b01+a01*b11+a02*b21;return mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),
b11,(a22*a00-a02*a20),(-a12*a00+a02*a10),
b21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;}
#if USE_EXACT_SRGB_CONVERSIONS
vec3 toLinearSpaceExact(vec3 color)
{vec3 nearZeroSection=0.0773993808*color;vec3 remainingSection=pow(0.947867299*(color+vec3(0.055)),vec3(2.4));
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.04045)));
#else
return
vec3(
color.r<=0.04045 ? nearZeroSection.r : remainingSection.r,
color.g<=0.04045 ? nearZeroSection.g : remainingSection.g,
color.b<=0.04045 ? nearZeroSection.b : remainingSection.b);
#endif
}
vec3 toGammaSpaceExact(vec3 color)
{vec3 nearZeroSection=12.92*color;vec3 remainingSection=1.055*pow(color,vec3(0.41666))-vec3(0.055);
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.0031308)));
#else
return
vec3(
color.r<=0.0031308 ? nearZeroSection.r : remainingSection.r,
color.g<=0.0031308 ? nearZeroSection.g : remainingSection.g,
color.b<=0.0031308 ? nearZeroSection.b : remainingSection.b);
#endif
}
#endif
float toLinearSpace(float color)
{
#if USE_EXACT_SRGB_CONVERSIONS
float nearZeroSection=0.0773993808*color;float remainingSection=pow(0.947867299*(color+0.055),2.4);return color<=0.04045 ? nearZeroSection : remainingSection;
#else
return pow(color,LinearEncodePowerApprox);
#endif
}
vec3 toLinearSpace(vec3 color)
{
#if USE_EXACT_SRGB_CONVERSIONS
return toLinearSpaceExact(color);
#else
return pow(color,vec3(LinearEncodePowerApprox));
#endif
}
vec4 toLinearSpace(vec4 color)
{
#if USE_EXACT_SRGB_CONVERSIONS
return vec4(toLinearSpaceExact(color.rgb),color.a);
#else
return vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a);
#endif
}
float toGammaSpace(float color)
{
#if USE_EXACT_SRGB_CONVERSIONS
float nearZeroSection=12.92*color;float remainingSection=1.055*pow(color,0.41666)-0.055;return color<=0.0031308 ? nearZeroSection : remainingSection;
#else
return pow(color,GammaEncodePowerApprox);
#endif
}
vec3 toGammaSpace(vec3 color)
{
#if USE_EXACT_SRGB_CONVERSIONS
return toGammaSpaceExact(color);
#else
return pow(color,vec3(GammaEncodePowerApprox));
#endif
}
vec4 toGammaSpace(vec4 color)
{
#if USE_EXACT_SRGB_CONVERSIONS
return vec4(toGammaSpaceExact(color.rgb),color.a);
#else
return vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a);
#endif
}
float square(float value)
{return value*value;}
vec3 square(vec3 value)
{return value*value;}
float pow5(float value) {float sq=value*value;return sq*sq*value;}
float getLuminance(vec3 color)
{return saturate(dot(color,LuminanceEncodeApprox));}
float getRand(vec2 seed) {return fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453);}
float dither(vec2 seed,float varianceAmount) {float rand=getRand(seed);float normVariance=varianceAmount/255.0;float dither=mix(-normVariance,normVariance,rand);return dither;}
const float rgbdMaxRange=255.;vec4 toRGBD(vec3 color) {float maxRGB=maxEps(max(color.r,max(color.g,color.b)));float D =max(rgbdMaxRange/maxRGB,1.);D =saturate(floor(D)/255.);vec3 rgb=color.rgb*D;rgb=toGammaSpace(rgb);return vec4(saturate(rgb),D);}
vec3 fromRGBD(vec4 rgbd) {rgbd.rgb=toLinearSpace(rgbd.rgb);return rgbd.rgb/rgbd.a;}
vec3 parallaxCorrectNormal( vec3 vertexPos,vec3 origVec,vec3 cubeSize,vec3 cubePos ) {vec3 invOrigVec=vec3(1.)/origVec;vec3 halfSize=cubeSize*0.5;vec3 intersecAtMaxPlane=(cubePos+halfSize-vertexPos)*invOrigVec;vec3 intersecAtMinPlane=(cubePos-halfSize-vertexPos)*invOrigVec;vec3 largestIntersec=max(intersecAtMaxPlane,intersecAtMinPlane);float distance=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);vec3 intersectPositionWS=vertexPos+origVec*distance;return intersectPositionWS-cubePos;}
vec3 equirectangularToCubemapDirection(vec2 uv) {float longitude=uv.x*TWO_PI-PI;float latitude=HALF_PI-uv.y*PI;vec3 direction;direction.x=cos(latitude)*sin(longitude);direction.y=sin(latitude);direction.z=cos(latitude)*cos(longitude);return direction;}
float sqrtClamped(float value) {return sqrt(max(value,0.));}
float avg(vec3 value) {return dot(value,vec3(0.333333333));}`;H.IncludesShadersStore[Zte]||(H.IncludesShadersStore[Zte]=W3e);const H3e={name:Zte,shader:W3e},Y3e=Object.freeze(Object.defineProperty({__proto__:null,helperFunctions:H3e},Symbol.toStringTag,{value:"Module"})),Kte="glowMapGenerationPixelShader",X3e=`#if defined(DIFFUSE_ISLINEAR) || defined(EMISSIVE_ISLINEAR)
#include<helperFunctions>
#endif
#ifdef DIFFUSE
varying vec2 vUVDiffuse;uniform sampler2D diffuseSampler;
#endif
#ifdef OPACITY
varying vec2 vUVOpacity;uniform sampler2D opacitySampler;uniform float opacityIntensity;
#endif
#ifdef EMISSIVE
varying vec2 vUVEmissive;uniform sampler2D emissiveSampler;
#endif
#ifdef VERTEXALPHA
varying vec4 vColor;
#endif
uniform vec4 glowColor;uniform float glowIntensity;
#include<clipPlaneFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{
#include<clipPlaneFragment>
vec4 finalColor=glowColor;
#ifdef DIFFUSE
vec4 albedoTexture=texture2D(diffuseSampler,vUVDiffuse);
#ifdef DIFFUSE_ISLINEAR
albedoTexture=toGammaSpace(albedoTexture);
#endif
#ifdef GLOW
finalColor.a*=albedoTexture.a;
#endif
#ifdef HIGHLIGHT
finalColor.a=albedoTexture.a;
#endif
#endif
#ifdef OPACITY
vec4 opacityMap=texture2D(opacitySampler,vUVOpacity);
#ifdef OPACITYRGB
finalColor.a*=getLuminance(opacityMap.rgb);
#else
finalColor.a*=opacityMap.a;
#endif
finalColor.a*=opacityIntensity;
#endif
#ifdef VERTEXALPHA
finalColor.a*=vColor.a;
#endif
#ifdef ALPHATEST
if (finalColor.a<ALPHATESTVALUE)
discard;
#endif
#ifdef EMISSIVE
vec4 emissive=texture2D(emissiveSampler,vUVEmissive);
#ifdef EMISSIVE_ISLINEAR
emissive=toGammaSpace(emissive);
#endif
gl_FragColor=emissive*finalColor*glowIntensity;
#else
gl_FragColor=finalColor*glowIntensity;
#endif
#ifdef HIGHLIGHT
gl_FragColor.a=glowColor.a;
#endif
}`;H.ShadersStore[Kte]||(H.ShadersStore[Kte]=X3e);const Z3e={name:Kte,shader:X3e},OFe=Object.freeze(Object.defineProperty({__proto__:null,glowMapGenerationPixelShader:Z3e},Symbol.toStringTag,{value:"Module"})),qte="glowMapGenerationVertexShader",K3e=`attribute vec3 position;
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<clipPlaneVertexDeclaration>
#include<instancesDeclaration>
uniform mat4 viewProjection;varying vec4 vPosition;
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#ifdef DIFFUSE
varying vec2 vUVDiffuse;uniform mat4 diffuseMatrix;
#endif
#ifdef OPACITY
varying vec2 vUVOpacity;uniform mat4 opacityMatrix;
#endif
#ifdef EMISSIVE
varying vec2 vUVEmissive;uniform mat4 emissiveMatrix;
#endif
#ifdef VERTEXALPHA
attribute vec4 color;varying vec4 vColor;
#endif
#define CUSTOM_VERTEX_DEFINITIONS
void main(void)
{vec3 positionUpdated=position;
#ifdef UV1
vec2 uvUpdated=uv;
#endif
#ifdef UV2
vec2 uv2Updated=uv2;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(positionUpdated,1.0);
#ifdef CUBEMAP
vPosition=worldPos;gl_Position=viewProjection*finalWorld*vec4(position,1.0);
#else
vPosition=viewProjection*worldPos;gl_Position=vPosition;
#endif
#ifdef DIFFUSE
#ifdef DIFFUSEUV1
vUVDiffuse=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));
#endif
#ifdef DIFFUSEUV2
vUVDiffuse=vec2(diffuseMatrix*vec4(uv2Updated,1.0,0.0));
#endif
#endif
#ifdef OPACITY
#ifdef OPACITYUV1
vUVOpacity=vec2(opacityMatrix*vec4(uvUpdated,1.0,0.0));
#endif
#ifdef OPACITYUV2
vUVOpacity=vec2(opacityMatrix*vec4(uv2Updated,1.0,0.0));
#endif
#endif
#ifdef EMISSIVE
#ifdef EMISSIVEUV1
vUVEmissive=vec2(emissiveMatrix*vec4(uvUpdated,1.0,0.0));
#endif
#ifdef EMISSIVEUV2
vUVEmissive=vec2(emissiveMatrix*vec4(uv2Updated,1.0,0.0));
#endif
#endif
#ifdef VERTEXALPHA
vColor=color;
#endif
#include<clipPlaneVertex>
}`;H.ShadersStore[qte]||(H.ShadersStore[qte]=K3e);const q3e={name:qte,shader:K3e},RFe=Object.freeze(Object.defineProperty({__proto__:null,glowMapGenerationVertexShader:q3e},Symbol.toStringTag,{value:"Module"})),Qte="clipPlaneFragmentDeclaration",Q3e=`#ifdef CLIPPLANE
varying fClipDistance: f32;
#endif
#ifdef CLIPPLANE2
varying fClipDistance2: f32;
#endif
#ifdef CLIPPLANE3
varying fClipDistance3: f32;
#endif
#ifdef CLIPPLANE4
varying fClipDistance4: f32;
#endif
#ifdef CLIPPLANE5
varying fClipDistance5: f32;
#endif
#ifdef CLIPPLANE6
varying fClipDistance6: f32;
#endif
`;H.IncludesShadersStoreWGSL[Qte]||(H.IncludesShadersStoreWGSL[Qte]=Q3e);const J3e={name:Qte,shader:Q3e},DFe=Object.freeze(Object.defineProperty({__proto__:null,clipPlaneFragmentDeclarationWGSL:J3e},Symbol.toStringTag,{value:"Module"})),Jte="clipPlaneFragment",$3e=`#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)
if (false) {}
#endif
#ifdef CLIPPLANE
else if (fragmentInputs.fClipDistance>0.0)
{discard;}
#endif
#ifdef CLIPPLANE2
else if (fragmentInputs.fClipDistance2>0.0)
{discard;}
#endif
#ifdef CLIPPLANE3
else if (fragmentInputs.fClipDistance3>0.0)
{discard;}
#endif
#ifdef CLIPPLANE4
else if (fragmentInputs.fClipDistance4>0.0)
{discard;}
#endif
#ifdef CLIPPLANE5
else if (fragmentInputs.fClipDistance5>0.0)
{discard;}
#endif
#ifdef CLIPPLANE6
else if (fragmentInputs.fClipDistance6>0.0)
{discard;}
#endif
`;H.IncludesShadersStoreWGSL[Jte]||(H.IncludesShadersStoreWGSL[Jte]=$3e);const eme={name:Jte,shader:$3e},NFe=Object.freeze(Object.defineProperty({__proto__:null,clipPlaneFragmentWGSL:eme},Symbol.toStringTag,{value:"Module"})),$te="glowMapGenerationPixelShader",tme=`#if defined(DIFFUSE_ISLINEAR) || defined(EMISSIVE_ISLINEAR)
#include<helperFunctions>
#endif
#ifdef DIFFUSE
varying vUVDiffuse: vec2f;var diffuseSamplerSampler: sampler;var diffuseSampler: texture_2d<f32>;
#endif
#ifdef OPACITY
varying vUVOpacity: vec2f;var opacitySamplerSampler: sampler;var opacitySampler: texture_2d<f32>;uniform opacityIntensity: f32;
#endif
#ifdef EMISSIVE
varying vUVEmissive: vec2f;var emissiveSamplerSampler: sampler;var emissiveSampler: texture_2d<f32>;
#endif
#ifdef VERTEXALPHA
varying vColor: vec4f;
#endif
uniform glowColor: vec4f;uniform glowIntensity: f32;
#include<clipPlaneFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#include<clipPlaneFragment>
var finalColor: vec4f=uniforms.glowColor;
#ifdef DIFFUSE
var albedoTexture: vec4f=textureSample(diffuseSampler,diffuseSamplerSampler,fragmentInputs.vUVDiffuse);
#ifdef DIFFUSE_ISLINEAR
albedoTexture=toGammaSpace(albedoTexture);
#endif
#ifdef GLOW
finalColor=vec4f(finalColor.rgb,finalColor.a*albedoTexture.a);
#endif
#ifdef HIGHLIGHT
finalColor=vec4f(finalColor.rgb,albedoTexture.a);
#endif
#endif
#ifdef OPACITY
var opacityMap: vec4f=textureSample(opacitySampler,opacitySamplerSampler,fragmentInputs.vUVOpacity);
#ifdef OPACITYRGB
finalColor=vec4f(finalColor.rgb,finalColor.a*getLuminance(opacityMap.rgb));
#else
finalColor=vec4f(finalColor.rgb,finalColor.a*opacityMap.a);
#endif
finalColor=vec4f(finalColor.rgb,finalColor.a*uniforms.opacityIntensity);
#endif
#ifdef VERTEXALPHA
finalColor=vec4f(finalColor.rgb,finalColor.a*fragmentInputs.vColor.a);
#endif
#ifdef ALPHATEST
if (finalColor.a<ALPHATESTVALUE) {discard;}
#endif
#ifdef EMISSIVE
var emissive: vec4f=textureSample(emissiveSampler,emissiveSamplerSampler,fragmentInputs.vUVEmissive);
#ifdef EMISSIVE_ISLINEAR
emissive=toGammaSpace(emissive);
#endif
fragmentOutputs.color=emissive*finalColor*uniforms.glowIntensity;
#else
fragmentOutputs.color=finalColor*uniforms.glowIntensity;
#endif
#ifdef HIGHLIGHT
fragmentOutputs.color=vec4f(fragmentOutputs.color.rgb,uniforms.glowColor.a);
#endif
}
`;H.ShadersStoreWGSL[$te]||(H.ShadersStoreWGSL[$te]=tme);const ime={name:$te,shader:tme},wFe=Object.freeze(Object.defineProperty({__proto__:null,glowMapGenerationPixelShaderWGSL:ime},Symbol.toStringTag,{value:"Module"})),eie="clipPlaneVertexDeclaration",sme=`#ifdef CLIPPLANE
uniform vClipPlane: vec4<f32>;varying fClipDistance: f32;
#endif
#ifdef CLIPPLANE2
uniform vClipPlane2: vec4<f32>;varying fClipDistance2: f32;
#endif
#ifdef CLIPPLANE3
uniform vClipPlane3: vec4<f32>;varying fClipDistance3: f32;
#endif
#ifdef CLIPPLANE4
uniform vClipPlane4: vec4<f32>;varying fClipDistance4: f32;
#endif
#ifdef CLIPPLANE5
uniform vClipPlane5: vec4<f32>;varying fClipDistance5: f32;
#endif
#ifdef CLIPPLANE6
uniform vClipPlane6: vec4<f32>;varying fClipDistance6: f32;
#endif
`;H.IncludesShadersStoreWGSL[eie]||(H.IncludesShadersStoreWGSL[eie]=sme);const rme={name:eie,shader:sme},BFe=Object.freeze(Object.defineProperty({__proto__:null,clipPlaneVertexDeclarationWGSL:rme},Symbol.toStringTag,{value:"Module"})),tie="clipPlaneVertex",nme=`#ifdef CLIPPLANE
vertexOutputs.fClipDistance=dot(worldPos,uniforms.vClipPlane);
#endif
#ifdef CLIPPLANE2
vertexOutputs.fClipDistance2=dot(worldPos,uniforms.vClipPlane2);
#endif
#ifdef CLIPPLANE3
vertexOutputs.fClipDistance3=dot(worldPos,uniforms.vClipPlane3);
#endif
#ifdef CLIPPLANE4
vertexOutputs.fClipDistance4=dot(worldPos,uniforms.vClipPlane4);
#endif
#ifdef CLIPPLANE5
vertexOutputs.fClipDistance5=dot(worldPos,uniforms.vClipPlane5);
#endif
#ifdef CLIPPLANE6
vertexOutputs.fClipDistance6=dot(worldPos,uniforms.vClipPlane6);
#endif
`;H.IncludesShadersStoreWGSL[tie]||(H.IncludesShadersStoreWGSL[tie]=nme);const ame={name:tie,shader:nme},zFe=Object.freeze(Object.defineProperty({__proto__:null,clipPlaneVertexWGSL:ame},Symbol.toStringTag,{value:"Module"})),iie="glowMapGenerationVertexShader",ome=`attribute position: vec3f;
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<clipPlaneVertexDeclaration>
#include<instancesDeclaration>
uniform viewProjection: mat4x4f;varying vPosition: vec4f;
#ifdef UV1
attribute uv: vec2f;
#endif
#ifdef UV2
attribute uv2: vec2f;
#endif
#ifdef DIFFUSE
varying vUVDiffuse: vec2f;uniform diffuseMatrix: mat4x4f;
#endif
#ifdef OPACITY
varying vUVOpacity: vec2f;uniform opacityMatrix: mat4x4f;
#endif
#ifdef EMISSIVE
varying vUVEmissive: vec2f;uniform emissiveMatrix: mat4x4f;
#endif
#ifdef VERTEXALPHA
attribute color: vec4f;varying vColor: vec4f;
#endif
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {var positionUpdated: vec3f=input.position;
#ifdef UV1
var uvUpdated: vec2f=input.uv;
#endif
#ifdef UV2
var uv2Updated: vec2f=input.uv2;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
var worldPos: vec4f=finalWorld* vec4f(positionUpdated,1.0);
#ifdef CUBEMAP
vertexOutputs.vPosition=worldPos;vertexOutputs.position=uniforms.viewProjection*finalWorld* vec4f(input.position,1.0);
#else
vertexOutputs.vPosition=uniforms.viewProjection*worldPos;vertexOutputs.position=vertexOutputs.vPosition;
#endif
#ifdef DIFFUSE
#ifdef DIFFUSEUV1
vertexOutputs.vUVDiffuse= (uniforms.diffuseMatrix* vec4f(uvUpdated,1.0,0.0)).xy;
#endif
#ifdef DIFFUSEUV2
vertexOutputs.vUVDiffuse= (uniforms.diffuseMatrix* vec4f(uv2Updated,1.0,0.0)).xy;
#endif
#endif
#ifdef OPACITY
#ifdef OPACITYUV1
vertexOutputs.vUVOpacity= (uniforms.opacityMatrix* vec4f(uvUpdated,1.0,0.0)).xy;
#endif
#ifdef OPACITYUV2
vertexOutputs.vUVOpacity= (uniforms.opacityMatrix* vec4f(uv2Updated,1.0,0.0)).xy;
#endif
#endif
#ifdef EMISSIVE
#ifdef EMISSIVEUV1
vertexOutputs.vUVEmissive= (uniforms.emissiveMatrix* vec4f(uvUpdated,1.0,0.0)).xy;
#endif
#ifdef EMISSIVEUV2
vertexOutputs.vUVEmissive= (uniforms.emissiveMatrix* vec4f(uv2Updated,1.0,0.0)).xy;
#endif
#endif
#ifdef VERTEXALPHA
vertexOutputs.vColor=vertexInputs.color;
#endif
#include<clipPlaneVertex>
}`;H.ShadersStoreWGSL[iie]||(H.ShadersStoreWGSL[iie]=ome);const lme={name:iie,shader:ome},FFe=Object.freeze(Object.defineProperty({__proto__:null,glowMapGenerationVertexShaderWGSL:lme},Symbol.toStringTag,{value:"Module"})),sie="glowMapMergePixelShader",cme=`varying vec2 vUV;uniform sampler2D textureSampler;
#ifdef EMISSIVE
uniform sampler2D textureSampler2;
#endif
uniform float offset;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
vec4 baseColor=texture2D(textureSampler,vUV);
#ifdef EMISSIVE
baseColor+=texture2D(textureSampler2,vUV);baseColor*=offset;
#else
baseColor.a=abs(offset-baseColor.a);
#ifdef STROKE
float alpha=smoothstep(.0,.1,baseColor.a);baseColor.a=alpha;baseColor.rgb=baseColor.rgb*alpha;
#endif
#endif
#if LDR
baseColor=clamp(baseColor,0.,1.0);
#endif
gl_FragColor=baseColor;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[sie]||(H.ShadersStore[sie]=cme);const ume={name:sie,shader:cme},hme=Object.freeze(Object.defineProperty({__proto__:null,glowMapMergePixelShader:ume},Symbol.toStringTag,{value:"Module"})),rie="glowMapMergeVertexShader",dme=`attribute vec2 position;varying vec2 vUV;const vec2 madd=vec2(0.5,0.5);
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
vUV=position*madd+madd;gl_Position=vec4(position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[rie]||(H.ShadersStore[rie]=dme);const fme={name:rie,shader:dme},pme=Object.freeze(Object.defineProperty({__proto__:null,glowMapMergeVertexShader:fme},Symbol.toStringTag,{value:"Module"})),nie="glowBlurPostProcessPixelShader",mme=`varying vec2 vUV;uniform sampler2D textureSampler;uniform vec2 screenSize;uniform vec2 direction;uniform float blurWidth;float getLuminance(vec3 color)
{return dot(color,vec3(0.2126,0.7152,0.0722));}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{float weights[7];weights[0]=0.05;weights[1]=0.1;weights[2]=0.2;weights[3]=0.3;weights[4]=0.2;weights[5]=0.1;weights[6]=0.05;vec2 texelSize=vec2(1.0/screenSize.x,1.0/screenSize.y);vec2 texelStep=texelSize*direction*blurWidth;vec2 start=vUV-3.0*texelStep;vec4 baseColor=vec4(0.,0.,0.,0.);vec2 texelOffset=vec2(0.,0.);for (int i=0; i<7; i++)
{vec4 texel=texture2D(textureSampler,start+texelOffset);baseColor.a+=texel.a*weights[i];float luminance=getLuminance(baseColor.rgb);float luminanceTexel=getLuminance(texel.rgb);float choice=step(luminanceTexel,luminance);baseColor.rgb=choice*baseColor.rgb+(1.0-choice)*texel.rgb;texelOffset+=texelStep;}
gl_FragColor=baseColor;}`;H.ShadersStore[nie]||(H.ShadersStore[nie]=mme);const gme={name:nie,shader:mme},BH=Object.freeze(Object.defineProperty({__proto__:null,glowBlurPostProcessPixelShader:gme},Symbol.toStringTag,{value:"Module"})),aie="glowMapMergePixelShader",_me=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;
#ifdef EMISSIVE
var textureSampler2Sampler: sampler;var textureSampler2: texture_2d<f32>;
#endif
uniform offset: f32;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
var baseColor: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV);
#ifdef EMISSIVE
baseColor+=textureSample(textureSampler2,textureSampler2Sampler,input.vUV);baseColor*=uniforms.offset;
#else
baseColor=vec4f(baseColor.rgb,abs(uniforms.offset-baseColor.a));
#ifdef STROKE
var alpha: f32=smoothstep(.0,.1,baseColor.a);baseColor=vec4f(baseColor.rgb*alpha,alpha);
#endif
#endif
#if LDR
baseColor=clamp(baseColor,vec4f(0.),vec4f(1.0));
#endif
fragmentOutputs.color=baseColor;
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStoreWGSL[aie]||(H.ShadersStoreWGSL[aie]=_me);const vme={name:aie,shader:_me},Ame=Object.freeze(Object.defineProperty({__proto__:null,glowMapMergePixelShaderWGSL:vme},Symbol.toStringTag,{value:"Module"})),oie="glowMapMergeVertexShader",Cme=`attribute position: vec2f;varying vUV: vec2f;
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {const madd: vec2f= vec2f(0.5,0.5);
#define CUSTOM_VERTEX_MAIN_BEGIN
vertexOutputs.vUV=input.position*madd+madd;vertexOutputs.position= vec4f(input.position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[oie]||(H.ShadersStoreWGSL[oie]=Cme);const xme={name:oie,shader:Cme},bme=Object.freeze(Object.defineProperty({__proto__:null,glowMapMergeVertexShaderWGSL:xme},Symbol.toStringTag,{value:"Module"})),lie="glowBlurPostProcessPixelShader",Sme=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform screenSize: vec2f;uniform direction: vec2f;uniform blurWidth: f32;fn getLuminance(color: vec3f)->f32
{return dot(color, vec3f(0.2126,0.7152,0.0722));}
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var weights: array<f32 ,7>;weights[0]=0.05;weights[1]=0.1;weights[2]=0.2;weights[3]=0.3;weights[4]=0.2;weights[5]=0.1;weights[6]=0.05;var texelSize: vec2f= vec2f(1.0/uniforms.screenSize.x,1.0/uniforms.screenSize.y);var texelStep: vec2f=texelSize*uniforms.direction*uniforms.blurWidth;var start: vec2f=input.vUV-3.0*texelStep;var baseColor: vec4f= vec4f(0.,0.,0.,0.);var texelOffset: vec2f= vec2f(0.,0.);for (var i: i32=0; i<7; i++)
{var texel: vec4f=textureSample(textureSampler,textureSamplerSampler,start+texelOffset);baseColor=vec4f(baseColor.rgb,baseColor.a+texel.a*weights[i]);var luminance: f32=getLuminance(baseColor.rgb);var luminanceTexel: f32=getLuminance(texel.rgb);var choice: f32=step(luminanceTexel,luminance);baseColor=vec4f(choice*baseColor.rgb+(1.0-choice)*texel.rgb,baseColor.a);texelOffset+=texelStep;}
fragmentOutputs.color=baseColor;}`;H.ShadersStoreWGSL[lie]||(H.ShadersStoreWGSL[lie]=Sme);const yme={name:lie,shader:Sme},zH=Object.freeze(Object.defineProperty({__proto__:null,glowBlurPostProcessPixelShaderWGSL:yme},Symbol.toStringTag,{value:"Module"})),cie="layerPixelShader",Mme=`varying vec2 vUV;uniform sampler2D textureSampler;uniform vec4 color;
#include<helperFunctions>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
vec4 baseColor=texture2D(textureSampler,vUV);
#if defined(CONVERT_TO_GAMMA)
baseColor.rgb=toGammaSpace(baseColor.rgb);
#elif defined(CONVERT_TO_LINEAR)
baseColor.rgb=toLinearSpace(baseColor.rgb);
#endif
#ifdef ALPHATEST
if (baseColor.a<0.4)
discard;
#endif
gl_FragColor=baseColor*color;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[cie]||(H.ShadersStore[cie]=Mme);const Eme={name:cie,shader:Mme},kFe=Object.freeze(Object.defineProperty({__proto__:null,layerPixelShader:Eme},Symbol.toStringTag,{value:"Module"})),uie="layerVertexShader",Tme=`attribute vec2 position;uniform vec2 scale;uniform vec2 offset;uniform mat4 textureMatrix;varying vec2 vUV;const vec2 madd=vec2(0.5,0.5);
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
vec2 shiftedPosition=position*scale+offset;vUV=vec2(textureMatrix*vec4(shiftedPosition*madd+madd,1.0,0.0));gl_Position=vec4(shiftedPosition,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[uie]||(H.ShadersStore[uie]=Tme);const Lme={name:uie,shader:Tme},UFe=Object.freeze(Object.defineProperty({__proto__:null,layerVertexShader:Lme},Symbol.toStringTag,{value:"Module"})),hie="layerPixelShader",Ime=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform color: vec4f;
#include<helperFunctions>
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
var baseColor: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV);
#if defined(CONVERT_TO_GAMMA)
baseColor=toGammaSpace(baseColor);
#elif defined(CONVERT_TO_LINEAR)
baseColor=toLinearSpaceVec4(baseColor);
#endif
#ifdef ALPHATEST
if (baseColor.a<0.4) {discard;}
#endif
fragmentOutputs.color=baseColor*uniforms.color;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStoreWGSL[hie]||(H.ShadersStoreWGSL[hie]=Ime);const Pme={name:hie,shader:Ime},jFe=Object.freeze(Object.defineProperty({__proto__:null,layerPixelShaderWGSL:Pme},Symbol.toStringTag,{value:"Module"})),die="layerVertexShader",Ome=`attribute position: vec2f;uniform scale: vec2f;uniform offset: vec2f;uniform textureMatrix: mat4x4f;varying vUV: vec2f;const madd: vec2f= vec2f(0.5,0.5);
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
var shiftedPosition: vec2f=input.position*uniforms.scale+uniforms.offset;vertexOutputs.vUV=(uniforms.textureMatrix* vec4f(shiftedPosition*madd+madd,1.0,0.0)).xy;vertexOutputs.position= vec4f(shiftedPosition,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[die]||(H.ShadersStoreWGSL[die]=Ome);const Rme={name:die,shader:Ome},VFe=Object.freeze(Object.defineProperty({__proto__:null,layerVertexShaderWGSL:Rme},Symbol.toStringTag,{value:"Module"}));class FH{static AddFlare(e,t,i,s,r){return new FH(e,t,i,s,r)}constructor(e,t,i,s,r){this.size=e,this.position=t,this.alphaMode=6,this.color=i||new Pe(1,1,1),this.texture=s?new be(s,r.getScene(),!0):null,this._system=r;const n=r.scene.getEngine();r._onShadersLoaded.addOnce(()=>{this._drawWrapper=new ql(n),this._drawWrapper.effect=n.createEffect("lensFlare",[q.PositionKind],["color","viewportMatrix"],["textureSampler"],"",void 0,void 0,void 0,void 0,r.shaderLanguage)}),r.lensFlares.push(this)}dispose(){this.texture&&this.texture.dispose();const e=this._system.lensFlares.indexOf(this);this._system.lensFlares.splice(e,1)}}class Hy{get scene(){return this._scene}get shaderLanguage(){return this._shaderLanguage}constructor(e,t,i){this.name=e,this.lensFlares=[],this.borderLimit=300,this.viewportBorder=0,this.layerMask=268435455,this._shaderLanguage=0,this._vertexBuffers={},this._isEnabled=!0,this._onShadersLoaded=new xe(void 0,!0),this._shadersLoaded=!1,this._scene=i||ei.LastCreatedScene,Hy._SceneComponentInitialization(this._scene),this._emitter=t,this.id=e,i.lensFlareSystems.push(this),this.meshesSelectionPredicate=n=>i.activeCamera&&n.material&&n.isVisible&&n.isEnabled()&&n.isBlocker&&(n.layerMask&i.activeCamera.layerMask)!=0;const s=i.getEngine(),r=[];r.push(1,1),r.push(-1,1),r.push(-1,-1),r.push(1,-1),this._vertexBuffers[q.PositionKind]=new q(s,r,q.PositionKind,!1,!1,2),this._createIndexBuffer(),this._initShaderSourceAsync()}async _initShaderSourceAsync(){this._scene.getEngine().isWebGPU&&!Hy.ForceGLSL?(this._shaderLanguage=1,await Promise.all([Promise.resolve().then(()=>HFe),Promise.resolve().then(()=>YFe)])):await Promise.all([Promise.resolve().then(()=>GFe),Promise.resolve().then(()=>WFe)]),this._shadersLoaded=!0,this._onShadersLoaded.notifyObservers()}_createIndexBuffer(){const e=[];e.push(0),e.push(1),e.push(2),e.push(0),e.push(2),e.push(3),this._indexBuffer=this._scene.getEngine().createIndexBuffer(e)}get isEnabled(){return this._isEnabled}set isEnabled(e){this._isEnabled=e}getScene(){return this._scene}getEmitter(){return this._emitter}setEmitter(e){this._emitter=e}getEmitterPosition(){return this._emitter.getAbsolutePosition?this._emitter.getAbsolutePosition():this._emitter.position}computeEffectivePosition(e){let t=this.getEmitterPosition();t=P.Project(t,me.Identity(),this._scene.getTransformMatrix(),e),this._positionX=t.x,this._positionY=t.y,t=P.TransformCoordinates(this.getEmitterPosition(),this._scene.getViewMatrix()),this.viewportBorder>0&&(e.x-=this.viewportBorder,e.y-=this.viewportBorder,e.width+=this.viewportBorder*2,e.height+=this.viewportBorder*2,t.x+=this.viewportBorder,t.y+=this.viewportBorder,this._positionX+=this.viewportBorder,this._positionY+=this.viewportBorder);const i=this._scene.useRightHandedSystem;return t.z>0&&!i||t.z<0&&i?(this._positionX>e.x&&this._positionX<e.x+e.width&&this._positionY>e.y&&this._positionY<e.y+e.height,!0):!1}_isVisible(){if(!this._isEnabled||!this._scene.activeCamera)return!1;const t=this.getEmitterPosition().subtract(this._scene.activeCamera.globalPosition),i=t.length();t.normalize();const s=new Is(this._scene.activeCamera.globalPosition,t),r=this._scene.pickWithRay(s,this.meshesSelectionPredicate,!0);return!r||!r.hit||r.distance>i}render(){if(!this._scene.activeCamera||!this._shadersLoaded)return!1;const e=this._scene.getEngine(),i=this._scene.activeCamera.viewport.toGlobal(e.getRenderWidth(!0),e.getRenderHeight(!0));if(!this.computeEffectivePosition(i)||!this._isVisible())return!1;let s,r;this._positionX<this.borderLimit+i.x?s=this.borderLimit+i.x-this._positionX:this._positionX>i.x+i.width-this.borderLimit?s=this._positionX-i.x-i.width+this.borderLimit:s=0,this._positionY<this.borderLimit+i.y?r=this.borderLimit+i.y-this._positionY:this._positionY>i.y+i.height-this.borderLimit?r=this._positionY-i.y-i.height+this.borderLimit:r=0;let n=s>r?s:r;n-=this.viewportBorder,n>this.borderLimit&&(n=this.borderLimit);let o=1-Os(n/this.borderLimit,0,1);if(o<0)return!1;o>1&&(o=1),this.viewportBorder>0&&(i.x+=this.viewportBorder,i.y+=this.viewportBorder,i.width-=this.viewportBorder*2,i.height-=this.viewportBorder*2,this._positionX-=this.viewportBorder,this._positionY-=this.viewportBorder);const l=i.x+i.width/2,c=i.y+i.height/2,u=l-this._positionX,f=c-this._positionY;e.setState(!1),e.setDepthBuffer(!1);for(let p=0;p<this.lensFlares.length;p++){const m=this.lensFlares[p];if(!m._drawWrapper.effect.isReady()||m.texture&&!m.texture.isReady())continue;e.enableEffect(m._drawWrapper),e.bindBuffers(this._vertexBuffers,this._indexBuffer,m._drawWrapper.effect),e.setAlphaMode(m.alphaMode);const _=l-u*m.position,d=c-f*m.position,h=m.size,x=m.size*e.getAspectRatio(this._scene.activeCamera,!0),A=2*((_-i.x)/i.width)-1,S=1-2*((d-i.y)/i.height),E=me.FromValues(h/2,0,0,0,0,x/2,0,0,0,0,1,0,A,S,0,1);m._drawWrapper.effect.setMatrix("viewportMatrix",E),m._drawWrapper.effect.setTexture("textureSampler",m.texture),m._drawWrapper.effect.setFloat4("color",m.color.r*o,m.color.g*o,m.color.b*o,1),e.drawElementsType(ft.TriangleFillMode,0,6)}return e.setDepthBuffer(!0),e.setAlphaMode(0),!0}rebuild(){var e;this._createIndexBuffer();for(const t in this._vertexBuffers)(e=this._vertexBuffers[t])==null||e._rebuild()}dispose(){this._onShadersLoaded.clear();const e=this._vertexBuffers[q.PositionKind];for(e&&(e.dispose(),this._vertexBuffers[q.PositionKind]=null),this._indexBuffer&&(this._scene.getEngine()._releaseBuffer(this._indexBuffer),this._indexBuffer=null);this.lensFlares.length;)this.lensFlares[0].dispose();const t=this._scene.lensFlareSystems.indexOf(this);this._scene.lensFlareSystems.splice(t,1)}static Parse(e,t,i){const s=t.getLastEntryById(e.emitterId),r=e.name||"lensFlareSystem#"+e.emitterId,n=new Hy(r,s,t);n.id=e.id||r,n.borderLimit=e.borderLimit;for(let o=0;o<e.flares.length;o++){const l=e.flares[o];FH.AddFlare(l.size,l.position,Pe.FromArray(l.color),l.textureName?i+l.textureName:"",n)}return n}serialize(){const e={};e.id=this.id,e.name=this.name,e.emitterId=this.getEmitter().id,e.borderLimit=this.borderLimit,e.flares=[];for(let t=0;t<this.lensFlares.length;t++){const i=this.lensFlares[t];e.flares.push({size:i.size,position:i.position,color:i.color.asArray(),textureName:Le.GetFilename(i.texture?i.texture.name:"")})}return e}}Hy.ForceGLSL=!1,Hy._SceneComponentInitialization=a=>{throw as("LensFlareSystemSceneComponent")},aL(jt.NAME_LENSFLARESYSTEM,(a,e,t,i)=>{if(a.lensFlareSystems!==void 0&&a.lensFlareSystems!==null){t.lensFlareSystems||(t.lensFlareSystems=[]);for(let s=0,r=a.lensFlareSystems.length;s<r;s++){const n=a.lensFlareSystems[s],o=Hy.Parse(n,e,i);t.lensFlareSystems.push(o)}}}),ui.prototype.getLensFlareSystemByName=function(a){for(let e=0;e<this.lensFlareSystems.length;e++)if(this.lensFlareSystems[e].name===a)return this.lensFlareSystems[e];return null},ui.prototype.getLensFlareSystemById=function(a){for(let e=0;e<this.lensFlareSystems.length;e++)if(this.lensFlareSystems[e].id===a)return this.lensFlareSystems[e];return null},ui.prototype.getLensFlareSystemByID=function(a){return this.getLensFlareSystemById(a)},ui.prototype.removeLensFlareSystem=function(a){const e=this.lensFlareSystems.indexOf(a);return e!==-1&&this.lensFlareSystems.splice(e,1),e},ui.prototype.addLensFlareSystem=function(a){this.lensFlareSystems.push(a)};class Dme{constructor(e){this.name=jt.NAME_LENSFLARESYSTEM,this.scene=e}register(){this.scene._afterCameraDrawStage.registerStep(jt.STEP_AFTERCAMERADRAW_LENSFLARESYSTEM,this,this._draw)}rebuild(){for(let e=0;e<this.scene.lensFlareSystems.length;e++)this.scene.lensFlareSystems[e].rebuild()}addFromContainer(e){e.lensFlareSystems&&e.lensFlareSystems.forEach(t=>{this.scene.addLensFlareSystem(t)})}removeFromContainer(e,t){e.lensFlareSystems&&e.lensFlareSystems.forEach(i=>{this.scene.removeLensFlareSystem(i),t&&i.dispose()})}serialize(e){e.lensFlareSystems=[];const t=this.scene.lensFlareSystems;for(const i of t)e.lensFlareSystems.push(i.serialize())}dispose(){const e=this.scene.lensFlareSystems;for(;e.length;)e[0].dispose()}_draw(e){if(this.scene.lensFlaresEnabled){const t=this.scene.lensFlareSystems;Le.StartPerformanceCounter("Lens flares",t.length>0);for(const i of t)e.layerMask&i.layerMask&&i.render();Le.EndPerformanceCounter("Lens flares",t.length>0)}}}Hy._SceneComponentInitialization=a=>{let e=a._getComponent(jt.NAME_LENSFLARESYSTEM);e||(e=new Dme(a),a._addComponent(e))};const fie="lensFlarePixelShader",Nme=`varying vec2 vUV;uniform sampler2D textureSampler;uniform vec4 color;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
vec4 baseColor=texture2D(textureSampler,vUV);gl_FragColor=baseColor*color;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[fie]||(H.ShadersStore[fie]=Nme);const wme={name:fie,shader:Nme},GFe=Object.freeze(Object.defineProperty({__proto__:null,lensFlarePixelShader:wme},Symbol.toStringTag,{value:"Module"})),pie="lensFlareVertexShader",Bme=`attribute vec2 position;uniform mat4 viewportMatrix;varying vec2 vUV;const vec2 madd=vec2(0.5,0.5);
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
vUV=position*madd+madd;gl_Position=viewportMatrix*vec4(position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[pie]||(H.ShadersStore[pie]=Bme);const zme={name:pie,shader:Bme},WFe=Object.freeze(Object.defineProperty({__proto__:null,lensFlareVertexShader:zme},Symbol.toStringTag,{value:"Module"})),mie="lensFlarePixelShader",Fme=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform color: vec4f;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
var baseColor: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV);fragmentOutputs.color=baseColor*uniforms.color;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStoreWGSL[mie]||(H.ShadersStoreWGSL[mie]=Fme);const kme={name:mie,shader:Fme},HFe=Object.freeze(Object.defineProperty({__proto__:null,lensFlarePixelShaderWGSL:kme},Symbol.toStringTag,{value:"Module"})),gie="lensFlareVertexShader",Ume=`attribute position: vec2f;uniform viewportMatrix: mat4x4f;varying vUV: vec2f;const madd: vec2f= vec2f(0.5,0.5);
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
vertexOutputs.vUV=input.position*madd+madd;vertexOutputs.position=uniforms.viewportMatrix* vec4f(input.position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[gie]||(H.ShadersStoreWGSL[gie]=Ume);const jme={name:gie,shader:Ume},YFe=Object.freeze(Object.defineProperty({__proto__:null,lensFlareVertexShaderWGSL:jme},Symbol.toStringTag,{value:"Module"}));aL(jt.NAME_SHADOWGENERATOR,(a,e)=>{if(a.shadowGenerators!==void 0&&a.shadowGenerators!==null)for(let t=0,i=a.shadowGenerators.length;t<i;t++){const s=a.shadowGenerators[t];s.className===ic.CLASSNAME?ic.Parse(s,e):Bi.Parse(s,e)}});class Vme{constructor(e){this.name=jt.NAME_SHADOWGENERATOR,this.scene=e}register(){this.scene._gatherRenderTargetsStage.registerStep(jt.STEP_GATHERRENDERTARGETS_SHADOWGENERATOR,this,this._gatherRenderTargets)}rebuild(){}serialize(e){e.shadowGenerators=[];const t=this.scene.lights;for(const i of t){if(i.doNotSerialize)continue;const s=i.getShadowGenerators();if(s){const r=s.values();for(let n=r.next();n.done!==!0;n=r.next()){const o=n.value;o.doNotSerialize||e.shadowGenerators.push(o.serialize())}}}}addFromContainer(e){}removeFromContainer(e,t){}dispose(){}_gatherRenderTargets(e){const t=this.scene;if(this.scene.shadowsEnabled)for(let i=0;i<t.lights.length;i++){const s=t.lights[i],r=s.getShadowGenerators();if(s.isEnabled()&&s.shadowEnabled&&r){const n=r.values();for(let o=n.next();o.done!==!0;o=n.next()){const c=o.value.getShadowMap();t.textures.indexOf(c)!==-1&&e.push(c)}}}}}Bi._SceneComponentInitialization=a=>{let e=a._getComponent(jt.NAME_SHADOWGENERATOR);e||(e=new Vme(a),a._addComponent(e))};const _ie="packingFunctions",Gme=`fn pack(depth: f32)->vec4f
{const bit_shift: vec4f= vec4f(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const bit_mask: vec4f= vec4f(0.0,1.0/255.0,1.0/255.0,1.0/255.0);var res: vec4f=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}
fn unpack(color: vec4f)->f32
{const bit_shift: vec4f= vec4f(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(color,bit_shift);}`;H.IncludesShadersStoreWGSL[_ie]||(H.IncludesShadersStoreWGSL[_ie]=Gme);const Wme={name:_ie,shader:Gme},XFe=Object.freeze(Object.defineProperty({__proto__:null,packingFunctionsWGSL:Wme},Symbol.toStringTag,{value:"Module"})),Hme="bayerDitherFunctions",ZFe=`fn bayerDither2(_P: vec2f)->f32 {return ((2.0*_P.y+_P.x+1.0)%(4.0));}
fn bayerDither4(_P: vec2f)->f32 {var P1: vec2f=((_P)%(2.0)); 
var P2: vec2f=floor(0.5*((_P)%(4.0))); 
return 4.0*bayerDither2(P1)+bayerDither2(P2);}
fn bayerDither8(_P: vec2f)->f32 {var P1: vec2f=((_P)%(2.0)); 
var P2: vec2f=floor(0.5 *((_P)%(4.0))); 
var P4: vec2f=floor(0.25*((_P)%(8.0))); 
return 4.0*(4.0*bayerDither2(P1)+bayerDither2(P2))+bayerDither2(P4);}
`;H.IncludesShadersStoreWGSL[Hme]||(H.IncludesShadersStoreWGSL[Hme]=ZFe);const Yme="shadowMapFragmentExtraDeclaration",KFe=`#if SM_FLOAT==0
#include<packingFunctions>
#endif
#if SM_SOFTTRANSPARENTSHADOW==1
#include<bayerDitherFunctions>
uniform softTransparentShadowSM: vec2f;
#endif
varying vDepthMetricSM: f32;
#if SM_USEDISTANCE==1
uniform lightDataSM: vec3f;varying vPositionWSM: vec3f;
#endif
uniform biasAndScaleSM: vec3f;uniform depthValuesSM: vec2f;
#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP==1
varying zSM: f32;
#endif
`;H.IncludesShadersStoreWGSL[Yme]||(H.IncludesShadersStoreWGSL[Yme]=KFe);const vie="shadowMapFragment",Xme=`var depthSM: f32=fragmentInputs.vDepthMetricSM;
#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP==1
#if SM_USEDISTANCE==1
depthSM=(length(fragmentInputs.vPositionWSM-uniforms.lightDataSM)+uniforms.depthValuesSM.x)/uniforms.depthValuesSM.y+uniforms.biasAndScaleSM.x;
#else
#ifdef USE_REVERSE_DEPTHBUFFER
depthSM=(-fragmentInputs.zSM+uniforms.depthValuesSM.x)/uniforms.depthValuesSM.y+uniforms.biasAndScaleSM.x;
#else
depthSM=(fragmentInputs.zSM+uniforms.depthValuesSM.x)/uniforms.depthValuesSM.y+uniforms.biasAndScaleSM.x;
#endif
#endif
depthSM=clamp(depthSM,0.0,1.0);
#ifdef USE_REVERSE_DEPTHBUFFER
fragmentOutputs.fragDepth=clamp(1.0-depthSM,0.0,1.0);
#else
fragmentOutputs.fragDepth=clamp(depthSM,0.0,1.0); 
#endif
#elif SM_USEDISTANCE==1
depthSM=(length(fragmentInputs.vPositionWSM-uniforms.lightDataSM)+uniforms.depthValuesSM.x)/uniforms.depthValuesSM.y+uniforms.biasAndScaleSM.x;
#endif
#if SM_ESM==1
depthSM=clamp(exp(-min(87.,uniforms.biasAndScaleSM.z*depthSM)),0.,1.);
#endif
#if SM_FLOAT==1
fragmentOutputs.color= vec4f(depthSM,1.0,1.0,1.0);
#else
fragmentOutputs.color=pack(depthSM);
#endif
`;H.IncludesShadersStoreWGSL[vie]||(H.IncludesShadersStoreWGSL[vie]=Xme);const Zme={name:vie,shader:Xme},qFe=Object.freeze(Object.defineProperty({__proto__:null,shadowMapFragmentWGSL:Zme},Symbol.toStringTag,{value:"Module"})),Aie="shadowMapPixelShader",Kme=`#include<shadowMapFragmentExtraDeclaration>
#ifdef ALPHATEXTURE
varying vUV: vec2f;var diffuseSamplerSampler: sampler;var diffuseSampler: texture_2d<f32>;
#endif
#include<clipPlaneFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#include<clipPlaneFragment>
#ifdef ALPHATEXTURE
var opacityMap: vec4f=textureSample(diffuseSampler,diffuseSamplerSampler,fragmentInputs.vUV);var alphaFromAlphaTexture: f32=opacityMap.a;
#if SM_SOFTTRANSPARENTSHADOW==1
if (uniforms.softTransparentShadowSM.y==1.0) {opacityMap=vec4f(opacityMap.rgb* vec3f(0.3,0.59,0.11),opacityMap.a);alphaFromAlphaTexture=opacityMap.x+opacityMap.y+opacityMap.z;}
#endif
#ifdef ALPHATESTVALUE
if (alphaFromAlphaTexture<ALPHATESTVALUE) {discard;}
#endif
#endif
#if SM_SOFTTRANSPARENTSHADOW==1
#ifdef ALPHATEXTURE
if ((bayerDither8(floor(((fragmentInputs.position.xy)%(8.0)))))/64.0>=uniforms.softTransparentShadowSM.x*alphaFromAlphaTexture) {discard;}
#else
if ((bayerDither8(floor(((fragmentInputs.position.xy)%(8.0)))))/64.0>=uniforms.softTransparentShadowSM.x) {discard;} 
#endif
#endif
#include<shadowMapFragment>
}`;H.ShadersStoreWGSL[Aie]||(H.ShadersStoreWGSL[Aie]=Kme);const qme={name:Aie,shader:Kme},QFe=Object.freeze(Object.defineProperty({__proto__:null,shadowMapPixelShaderWGSL:qme},Symbol.toStringTag,{value:"Module"})),Qme="shadowMapVertexExtraDeclaration",JFe=`#if SM_NORMALBIAS==1
uniform lightDataSM: vec3f;
#endif
uniform biasAndScaleSM: vec3f;uniform depthValuesSM: vec2f;varying vDepthMetricSM: f32;
#if SM_USEDISTANCE==1
varying vPositionWSM: vec3f;
#endif
#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP==1
varying zSM: f32;
#endif
`;H.IncludesShadersStoreWGSL[Qme]||(H.IncludesShadersStoreWGSL[Qme]=JFe);const Jme="shadowMapVertexNormalBias",$Fe=`#if SM_NORMALBIAS==1
#if SM_DIRECTIONINLIGHTDATA==1
var worldLightDirSM: vec3f=normalize(-uniforms.lightDataSM.xyz);
#else
var directionToLightSM: vec3f=uniforms.lightDataSM.xyz-worldPos.xyz;var worldLightDirSM: vec3f=normalize(directionToLightSM);
#endif
var ndlSM: f32=dot(vNormalW,worldLightDirSM);var sinNLSM: f32=sqrt(1.0-ndlSM*ndlSM);var normalBiasSM: f32=uniforms.biasAndScaleSM.y*sinNLSM;worldPos=vec4f(worldPos.xyz-vNormalW*normalBiasSM,worldPos.w);
#endif
`;H.IncludesShadersStoreWGSL[Jme]||(H.IncludesShadersStoreWGSL[Jme]=$Fe);const Cie="shadowMapVertexMetric",$me=`#if SM_USEDISTANCE==1
vertexOutputs.vPositionWSM=worldPos.xyz;
#endif
#if SM_DEPTHTEXTURE==1
#ifdef IS_NDC_HALF_ZRANGE
#define BIASFACTOR 0.5
#else
#define BIASFACTOR 1.0
#endif
#ifdef USE_REVERSE_DEPTHBUFFER
vertexOutputs.position.z-=uniforms.biasAndScaleSM.x*vertexOutputs.position.w*BIASFACTOR;
#else
vertexOutputs.position.z+=uniforms.biasAndScaleSM.x*vertexOutputs.position.w*BIASFACTOR;
#endif
#endif
#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP==1
vertexOutputs.zSM=vertexOutputs.position.z;vertexOutputs.position.z=0.0;
#elif SM_USEDISTANCE==0
#ifdef USE_REVERSE_DEPTHBUFFER
vertexOutputs.vDepthMetricSM=(-vertexOutputs.position.z+uniforms.depthValuesSM.x)/uniforms.depthValuesSM.y+uniforms.biasAndScaleSM.x;
#else
vertexOutputs.vDepthMetricSM=(vertexOutputs.position.z+uniforms.depthValuesSM.x)/uniforms.depthValuesSM.y+uniforms.biasAndScaleSM.x;
#endif
#endif
`;H.IncludesShadersStoreWGSL[Cie]||(H.IncludesShadersStoreWGSL[Cie]=$me);const e4e={name:Cie,shader:$me},eke=Object.freeze(Object.defineProperty({__proto__:null,shadowMapVertexMetricWGSL:e4e},Symbol.toStringTag,{value:"Module"})),xie="shadowMapVertexShader",t4e=`attribute position: vec3f;
#ifdef NORMAL
attribute normal: vec3f;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#ifdef INSTANCES
attribute world0: vec4f;attribute world1: vec4f;attribute world2: vec4f;attribute world3: vec4f;
#endif
#include<helperFunctions>
#include<sceneUboDeclaration>
#include<meshUboDeclaration>
#ifdef ALPHATEXTURE
varying vUV: vec2f;uniform diffuseMatrix: mat4x4f;
#ifdef UV1
attribute uv: vec2f;
#endif
#ifdef UV2
attribute uv2: vec2f;
#endif
#endif
#include<shadowMapVertexExtraDeclaration>
#include<clipPlaneVertexDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {var positionUpdated: vec3f=input.position;
#ifdef UV1
var uvUpdated: vec2f=input.uv;
#endif
#ifdef UV2
var uv2Updated: vec2f=input.uv2;
#endif
#ifdef NORMAL
var normalUpdated: vec3f=input.normal;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
var worldPos: vec4f=finalWorld* vec4f(positionUpdated,1.0);
#ifdef NORMAL
var normWorldSM: mat3x3f= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz);
#if defined(INSTANCES) && defined(THIN_INSTANCES)
var vNormalW: vec3f=normalUpdated/ vec3f(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2]));vNormalW=normalize(normWorldSM*vNormalW);
#else
#ifdef NONUNIFORMSCALING
normWorldSM=transposeMat3(inverseMat3(normWorldSM));
#endif
var vNormalW: vec3f=normalize(normWorldSM*normalUpdated);
#endif
#endif
#include<shadowMapVertexNormalBias>
vertexOutputs.position=scene.viewProjection*worldPos;
#include<shadowMapVertexMetric>
#ifdef ALPHATEXTURE
#ifdef UV1
vertexOutputs.vUV= (uniforms.diffuseMatrix* vec4f(uvUpdated,1.0,0.0)).xy;
#endif
#ifdef UV2
vertexOutputs.vUV= (uniforms.diffuseMatrix* vec4f(uv2Updated,1.0,0.0)).xy;
#endif
#endif
#include<clipPlaneVertex>
}`;H.ShadersStoreWGSL[xie]||(H.ShadersStoreWGSL[xie]=t4e);const i4e={name:xie,shader:t4e},tke=Object.freeze(Object.defineProperty({__proto__:null,shadowMapVertexShaderWGSL:i4e},Symbol.toStringTag,{value:"Module"})),bie="depthBoxBlurPixelShader",s4e=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform screenSize: vec2f;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var colorDepth: vec4f=vec4f(0.0);for (var x: i32=-OFFSET; x<=OFFSET; x++) {for (var y: i32=-OFFSET; y<=OFFSET; y++) {colorDepth+=textureSample(textureSampler,textureSamplerSampler,input.vUV+ vec2f(f32(x),f32(y))/uniforms.screenSize);}}
fragmentOutputs.color=(colorDepth/ f32((OFFSET*2+1)*(OFFSET*2+1)));}`;H.ShadersStoreWGSL[bie]||(H.ShadersStoreWGSL[bie]=s4e);const r4e={name:bie,shader:s4e},ike=Object.freeze(Object.defineProperty({__proto__:null,depthBoxBlurPixelShaderWGSL:r4e},Symbol.toStringTag,{value:"Module"})),Sie="shadowMapFragmentSoftTransparentShadow",n4e=`#if SM_SOFTTRANSPARENTSHADOW==1
if ((bayerDither8(floor(((fragmentInputs.position.xy)%(8.0)))))/64.0>=uniforms.softTransparentShadowSM.x*alpha) {discard;}
#endif
`;H.IncludesShadersStoreWGSL[Sie]||(H.IncludesShadersStoreWGSL[Sie]=n4e);const a4e={name:Sie,shader:n4e},ske=Object.freeze(Object.defineProperty({__proto__:null,shadowMapFragmentSoftTransparentShadowWGSL:a4e},Symbol.toStringTag,{value:"Module"})),o4e="bayerDitherFunctions",rke=`float bayerDither2(vec2 _P) {return mod(2.0*_P.y+_P.x+1.0,4.0);}
float bayerDither4(vec2 _P) {vec2 P1=mod(_P,2.0); 
vec2 P2=floor(0.5*mod(_P,4.0)); 
return 4.0*bayerDither2(P1)+bayerDither2(P2);}
float bayerDither8(vec2 _P) {vec2 P1=mod(_P,2.0); 
vec2 P2=floor(0.5 *mod(_P,4.0)); 
vec2 P4=floor(0.25*mod(_P,8.0)); 
return 4.0*(4.0*bayerDither2(P1)+bayerDither2(P2))+bayerDither2(P4);}
`;H.IncludesShadersStore[o4e]||(H.IncludesShadersStore[o4e]=rke);const l4e="shadowMapFragmentExtraDeclaration",nke=`#if SM_FLOAT==0
#include<packingFunctions>
#endif
#if SM_SOFTTRANSPARENTSHADOW==1
#include<bayerDitherFunctions>
uniform vec2 softTransparentShadowSM;
#endif
varying float vDepthMetricSM;
#if SM_USEDISTANCE==1
uniform vec3 lightDataSM;varying vec3 vPositionWSM;
#endif
uniform vec3 biasAndScaleSM;uniform vec2 depthValuesSM;
#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP==1
varying float zSM;
#endif
`;H.IncludesShadersStore[l4e]||(H.IncludesShadersStore[l4e]=nke);const yie="shadowMapFragment",c4e=`float depthSM=vDepthMetricSM;
#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP==1
#if SM_USEDISTANCE==1
depthSM=(length(vPositionWSM-lightDataSM)+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;
#else
#ifdef USE_REVERSE_DEPTHBUFFER
depthSM=(-zSM+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;
#else
depthSM=(zSM+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;
#endif
#endif
depthSM=clamp(depthSM,0.0,1.0);
#ifdef USE_REVERSE_DEPTHBUFFER
gl_FragDepth=clamp(1.0-depthSM,0.0,1.0);
#else
gl_FragDepth=clamp(depthSM,0.0,1.0); 
#endif
#elif SM_USEDISTANCE==1
depthSM=(length(vPositionWSM-lightDataSM)+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;
#endif
#if SM_ESM==1
depthSM=clamp(exp(-min(87.,biasAndScaleSM.z*depthSM)),0.,1.);
#endif
#if SM_FLOAT==1
gl_FragColor=vec4(depthSM,1.0,1.0,1.0);
#else
gl_FragColor=pack(depthSM);
#endif
return;`;H.IncludesShadersStore[yie]||(H.IncludesShadersStore[yie]=c4e);const u4e={name:yie,shader:c4e},ake=Object.freeze(Object.defineProperty({__proto__:null,shadowMapFragment:u4e},Symbol.toStringTag,{value:"Module"})),Mie="shadowMapPixelShader",h4e=`#include<shadowMapFragmentExtraDeclaration>
#ifdef ALPHATEXTURE
varying vec2 vUV;uniform sampler2D diffuseSampler;
#endif
#include<clipPlaneFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{
#include<clipPlaneFragment>
#ifdef ALPHATEXTURE
vec4 opacityMap=texture2D(diffuseSampler,vUV);float alphaFromAlphaTexture=opacityMap.a;
#if SM_SOFTTRANSPARENTSHADOW==1
if (softTransparentShadowSM.y==1.0) {opacityMap.rgb=opacityMap.rgb*vec3(0.3,0.59,0.11);alphaFromAlphaTexture=opacityMap.x+opacityMap.y+opacityMap.z;}
#endif
#ifdef ALPHATESTVALUE
if (alphaFromAlphaTexture<ALPHATESTVALUE)
discard;
#endif
#endif
#if SM_SOFTTRANSPARENTSHADOW==1
#ifdef ALPHATEXTURE
if ((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM.x*alphaFromAlphaTexture) discard;
#else
if ((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM.x) discard;
#endif
#endif
#include<shadowMapFragment>
}`;H.ShadersStore[Mie]||(H.ShadersStore[Mie]=h4e);const d4e={name:Mie,shader:h4e},oke=Object.freeze(Object.defineProperty({__proto__:null,shadowMapPixelShader:d4e},Symbol.toStringTag,{value:"Module"})),f4e="sceneVertexDeclaration",lke=`uniform mat4 viewProjection;
#ifdef MULTIVIEW
uniform mat4 viewProjectionR;
#endif
uniform mat4 view;uniform mat4 projection;uniform vec4 vEyePosition;
`;H.IncludesShadersStore[f4e]||(H.IncludesShadersStore[f4e]=lke);const p4e="meshVertexDeclaration",cke=`uniform mat4 world;uniform float visibility;
`;H.IncludesShadersStore[p4e]||(H.IncludesShadersStore[p4e]=cke);const m4e="shadowMapVertexDeclaration",uke=`#include<sceneVertexDeclaration>
#include<meshVertexDeclaration>
`;H.IncludesShadersStore[m4e]||(H.IncludesShadersStore[m4e]=uke);const g4e="sceneUboDeclaration",hke=`layout(std140,column_major) uniform;uniform Scene {mat4 viewProjection;
#ifdef MULTIVIEW
mat4 viewProjectionR;
#endif 
mat4 view;mat4 projection;vec4 vEyePosition;};
`;H.IncludesShadersStore[g4e]||(H.IncludesShadersStore[g4e]=hke);const _4e="meshUboDeclaration",dke=`#ifdef WEBGL2
uniform mat4 world;uniform float visibility;
#else
layout(std140,column_major) uniform;uniform Mesh
{mat4 world;float visibility;};
#endif
#define WORLD_UBO
`;H.IncludesShadersStore[_4e]||(H.IncludesShadersStore[_4e]=dke);const v4e="shadowMapUboDeclaration",fke=`layout(std140,column_major) uniform;
#include<sceneUboDeclaration>
#include<meshUboDeclaration>
`;H.IncludesShadersStore[v4e]||(H.IncludesShadersStore[v4e]=fke);const A4e="shadowMapVertexExtraDeclaration",pke=`#if SM_NORMALBIAS==1
uniform vec3 lightDataSM;
#endif
uniform vec3 biasAndScaleSM;uniform vec2 depthValuesSM;varying float vDepthMetricSM;
#if SM_USEDISTANCE==1
varying vec3 vPositionWSM;
#endif
#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP==1
varying float zSM;
#endif
`;H.IncludesShadersStore[A4e]||(H.IncludesShadersStore[A4e]=pke);const C4e="shadowMapVertexNormalBias",mke=`#if SM_NORMALBIAS==1
#if SM_DIRECTIONINLIGHTDATA==1
vec3 worldLightDirSM=normalize(-lightDataSM.xyz);
#else
vec3 directionToLightSM=lightDataSM.xyz-worldPos.xyz;vec3 worldLightDirSM=normalize(directionToLightSM);
#endif
float ndlSM=dot(vNormalW,worldLightDirSM);float sinNLSM=sqrt(1.0-ndlSM*ndlSM);float normalBiasSM=biasAndScaleSM.y*sinNLSM;worldPos.xyz-=vNormalW*normalBiasSM;
#endif
`;H.IncludesShadersStore[C4e]||(H.IncludesShadersStore[C4e]=mke);const Eie="shadowMapVertexMetric",x4e=`#if SM_USEDISTANCE==1
vPositionWSM=worldPos.xyz;
#endif
#if SM_DEPTHTEXTURE==1
#ifdef IS_NDC_HALF_ZRANGE
#define BIASFACTOR 0.5
#else
#define BIASFACTOR 1.0
#endif
#ifdef USE_REVERSE_DEPTHBUFFER
gl_Position.z-=biasAndScaleSM.x*gl_Position.w*BIASFACTOR;
#else
gl_Position.z+=biasAndScaleSM.x*gl_Position.w*BIASFACTOR;
#endif
#endif
#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP==1
zSM=gl_Position.z;gl_Position.z=0.0;
#elif SM_USEDISTANCE==0
#ifdef USE_REVERSE_DEPTHBUFFER
vDepthMetricSM=(-gl_Position.z+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;
#else
vDepthMetricSM=(gl_Position.z+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;
#endif
#endif
`;H.IncludesShadersStore[Eie]||(H.IncludesShadersStore[Eie]=x4e);const b4e={name:Eie,shader:x4e},gke=Object.freeze(Object.defineProperty({__proto__:null,shadowMapVertexMetric:b4e},Symbol.toStringTag,{value:"Module"})),Tie="shadowMapVertexShader",S4e=`attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#ifdef INSTANCES
attribute vec4 world0;attribute vec4 world1;attribute vec4 world2;attribute vec4 world3;
#endif
#include<helperFunctions>
#include<__decl__shadowMapVertex>
#ifdef ALPHATEXTURE
varying vec2 vUV;uniform mat4 diffuseMatrix;
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#endif
#include<shadowMapVertexExtraDeclaration>
#include<clipPlaneVertexDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
void main(void)
{vec3 positionUpdated=position;
#ifdef UV1
vec2 uvUpdated=uv;
#endif
#ifdef UV2
vec2 uv2Updated=uv2;
#endif
#ifdef NORMAL
vec3 normalUpdated=normal;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(positionUpdated,1.0);
#ifdef NORMAL
mat3 normWorldSM=mat3(finalWorld);
#if defined(INSTANCES) && defined(THIN_INSTANCES)
vec3 vNormalW=normalUpdated/vec3(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2]));vNormalW=normalize(normWorldSM*vNormalW);
#else
#ifdef NONUNIFORMSCALING
normWorldSM=transposeMat3(inverseMat3(normWorldSM));
#endif
vec3 vNormalW=normalize(normWorldSM*normalUpdated);
#endif
#endif
#include<shadowMapVertexNormalBias>
gl_Position=viewProjection*worldPos;
#include<shadowMapVertexMetric>
#ifdef ALPHATEXTURE
#ifdef UV1
vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));
#endif
#ifdef UV2
vUV=vec2(diffuseMatrix*vec4(uv2Updated,1.0,0.0));
#endif
#endif
#include<clipPlaneVertex>
}`;H.ShadersStore[Tie]||(H.ShadersStore[Tie]=S4e);const y4e={name:Tie,shader:S4e},_ke=Object.freeze(Object.defineProperty({__proto__:null,shadowMapVertexShader:y4e},Symbol.toStringTag,{value:"Module"})),Lie="depthBoxBlurPixelShader",M4e=`varying vec2 vUV;uniform sampler2D textureSampler;uniform vec2 screenSize;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{vec4 colorDepth=vec4(0.0);for (int x=-OFFSET; x<=OFFSET; x++)
for (int y=-OFFSET; y<=OFFSET; y++)
colorDepth+=texture2D(textureSampler,vUV+vec2(x,y)/screenSize);gl_FragColor=(colorDepth/float((OFFSET*2+1)*(OFFSET*2+1)));}`;H.ShadersStore[Lie]||(H.ShadersStore[Lie]=M4e);const E4e={name:Lie,shader:M4e},vke=Object.freeze(Object.defineProperty({__proto__:null,depthBoxBlurPixelShader:E4e},Symbol.toStringTag,{value:"Module"})),Iie="shadowMapFragmentSoftTransparentShadow",T4e=`#if SM_SOFTTRANSPARENTSHADOW==1
if ((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM.x*alpha) discard;
#endif
`;H.IncludesShadersStore[Iie]||(H.IncludesShadersStore[Iie]=T4e);const L4e={name:Iie,shader:T4e},Ake=Object.freeze(Object.defineProperty({__proto__:null,shadowMapFragmentSoftTransparentShadow:L4e},Symbol.toStringTag,{value:"Module"}));async function Cke(){const a=new Uint16Array(16384),e=new Uint16Array(64*64*4),t=await Le.LoadFileAsync(Le.GetAssetUrl("https://assets.babylonjs.com/core/areaLights/areaLightsLTC.bin")),i=new Uint16Array(t),s=i.length/8;for(let r=0;r<s;r++)a[r*4]=i[r*8],a[r*4+1]=i[r*8+1],a[r*4+2]=i[r*8+2],a[r*4+3]=i[r*8+3],e[r*4]=i[r*8+4],e[r*4+1]=i[r*8+5],e[r*4+2]=i[r*8+6],e[r*4+3]=i[r*8+7];return[a,e]}function xke(a){const e=a.useDelayedTextureLoading;a.useDelayedTextureLoading=!1;const t=a._blockEntityCollection;a._blockEntityCollection=!1,a._ltcTextures={LTC1:Ur.CreateRGBATexture(null,64,64,a.getEngine(),!1,!1,2,2,0,!1,!0),LTC2:Ur.CreateRGBATexture(null,64,64,a.getEngine(),!1,!1,2,2,0,!1,!0)},a._blockEntityCollection=t,a._ltcTextures.LTC1.wrapU=be.CLAMP_ADDRESSMODE,a._ltcTextures.LTC1.wrapV=be.CLAMP_ADDRESSMODE,a._ltcTextures.LTC2.wrapU=be.CLAMP_ADDRESSMODE,a._ltcTextures.LTC2.wrapV=be.CLAMP_ADDRESSMODE,a.useDelayedTextureLoading=e,Cke().then(i=>{var s,r;a._ltcTextures&&(((s=a._ltcTextures)==null?void 0:s.LTC1).update(i[0]),((r=a._ltcTextures)==null?void 0:r.LTC2).update(i[1]),a.onDisposeObservable.addOnce(()=>{var l,c;(l=a._ltcTextures)==null||l.LTC1.dispose(),(c=a._ltcTextures)==null||c.LTC2.dispose()}))}).catch(i=>{de.Error(`Area Light fail to get LTC textures data. Error: ${i}`)})}class I4e extends vs{constructor(e,t,i){super(e,i),this.position=t,this._scene._ltcTextures||xke(this._scene)}transferTexturesToEffect(e){return this._scene._ltcTextures&&(e.setTexture("areaLightsLTC1Sampler",this._scene._ltcTextures.LTC1),e.setTexture("areaLightsLTC2Sampler",this._scene._ltcTextures.LTC2)),this}prepareLightSpecificDefines(e,t){e["AREALIGHT"+t]=!0,e.AREALIGHTUSED=!0}_isReady(){return this._scene._ltcTextures?this._scene._ltcTextures.LTC1.isReady()&&this._scene._ltcTextures.LTC2.isReady():!1}}Rr.AddNodeConstructor("Light_Type_4",(a,e)=>()=>new UB(a,P.Zero(),1,1,e));class UB extends I4e{get width(){return this._width.x}set width(e){this._width.x=e}get height(){return this._height.y}set height(e){this._height.y=e}constructor(e,t,i,s,r){super(e,t,r),this._width=new P(i,0,0),this._height=new P(0,s,0),this._pointTransformedPosition=P.Zero(),this._pointTransformedWidth=P.Zero(),this._pointTransformedHeight=P.Zero()}getClassName(){return"RectAreaLight"}getTypeID(){return vs.LIGHTTYPEID_RECT_AREALIGHT}_buildUniformLayout(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("vLightWidth",4),this._uniformBuffer.addUniform("vLightHeight",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()}_computeTransformedInformation(){return this.parent&&this.parent.getWorldMatrix?(P.TransformCoordinatesToRef(this.position,this.parent.getWorldMatrix(),this._pointTransformedPosition),P.TransformNormalToRef(this._width,this.parent.getWorldMatrix(),this._pointTransformedWidth),P.TransformNormalToRef(this._height,this.parent.getWorldMatrix(),this._pointTransformedHeight),!0):!1}transferToEffect(e,t){return this._computeTransformedInformation()?(this._uniformBuffer.updateFloat4("vLightData",this._pointTransformedPosition.x,this._pointTransformedPosition.y,this._pointTransformedPosition.z,0,t),this._uniformBuffer.updateFloat4("vLightWidth",this._pointTransformedWidth.x/2,this._pointTransformedWidth.y/2,this._pointTransformedWidth.z/2,0,t),this._uniformBuffer.updateFloat4("vLightHeight",this._pointTransformedHeight.x/2,this._pointTransformedHeight.y/2,this._pointTransformedHeight.z/2,0,t)):(this._uniformBuffer.updateFloat4("vLightData",this.position.x,this.position.y,this.position.z,0,t),this._uniformBuffer.updateFloat4("vLightWidth",this._width.x/2,this._width.y/2,this._width.z/2,0,t),this._uniformBuffer.updateFloat4("vLightHeight",this._height.x/2,this._height.y/2,this._height.z/2,0,t)),this}transferToNodeMaterialEffect(e,t){return this._computeTransformedInformation()?e.setFloat3(t,this._pointTransformedPosition.x,this._pointTransformedPosition.y,this._pointTransformedPosition.z):e.setFloat3(t,this.position.x,this.position.y,this.position.z),this}}F([G()],UB.prototype,"width",null),F([G()],UB.prototype,"height",null),ve("BABYLON.RectAreaLight",UB);function Pie(a){return a.split(" ").filter(e=>e!=="").map(e=>parseFloat(e))}function Oie(a,e,t){for(;t.length!==e;){const i=Pie(a.lines[a.index++]);t.push(...i)}}function bke(a,e,t){let i=0,s=0,r=0,n=0,o=0,l=0;for(let x=0;x<a.numberOfHorizontalAngles-1;x++)if(t<a.horizontalAngles[x+1]||x===a.numberOfHorizontalAngles-2){s=x,r=a.horizontalAngles[x],n=a.horizontalAngles[x+1];break}for(let x=0;x<a.numberOfVerticalAngles-1;x++)if(e<a.verticalAngles[x+1]||x===a.numberOfVerticalAngles-2){i=x,o=a.verticalAngles[x],l=a.verticalAngles[x+1];break}const c=n-r,u=l-o;if(u===0)return 0;const f=c===0?0:(t-r)/c,p=(e-o)/u,m=c===0?s:s+1,_=Zl(a.candelaValues[s][i],a.candelaValues[m][i],f),d=Zl(a.candelaValues[s][i+1],a.candelaValues[m][i+1],f);return Zl(_,d,p)}function P4e(a){const i={lines:new TextDecoder("utf-8").decode(a).split(`
`),index:0},s={version:i.lines[0],candelaValues:[],horizontalAngles:[],verticalAngles:[],numberOfHorizontalAngles:0,numberOfVerticalAngles:0};for(i.index=1;i.lines.length>0&&!i.lines[i.index].includes("TILT=");)i.index++;i.lines[i.index].includes("INCLUDE"),i.index++;const r=Pie(i.lines[i.index++]);s.numberOfLights=r[0],s.lumensPerLamp=r[1],s.candelaMultiplier=r[2],s.numberOfVerticalAngles=r[3],s.numberOfHorizontalAngles=r[4],s.photometricType=r[5],s.unitsType=r[6],s.width=r[7],s.length=r[8],s.height=r[9];const n=Pie(i.lines[i.index++]);s.ballastFactor=n[0],s.fileGenerationType=n[1],s.inputWatts=n[2];for(let _=0;_<s.numberOfHorizontalAngles;_++)s.candelaValues[_]=[];Oie(i,s.numberOfVerticalAngles,s.verticalAngles),Oie(i,s.numberOfHorizontalAngles,s.horizontalAngles);for(let _=0;_<s.numberOfHorizontalAngles;_++)Oie(i,s.numberOfVerticalAngles,s.candelaValues[_]);let o=-1;for(let _=0;_<s.numberOfHorizontalAngles;_++)for(let d=0;d<s.numberOfVerticalAngles;d++)s.candelaValues[_][d]*=s.candelaValues[_][d]*s.candelaMultiplier*s.ballastFactor*s.fileGenerationType,o=Math.max(o,s.candelaValues[_][d]);if(o>0)for(let _=0;_<s.numberOfHorizontalAngles;_++)for(let d=0;d<s.numberOfVerticalAngles;d++)s.candelaValues[_][d]/=o;const l=180,c=l*2,u=c*l,f=new Float32Array(c*l),p=s.horizontalAngles[0],m=s.horizontalAngles[s.numberOfHorizontalAngles-1];for(let _=0;_<u;_++){let d=_%c;const h=Math.floor(_/c);m-p!==0&&(d<p||d>=m)&&(d%=m*2,d>m&&(d=m*2-d)),f[h+d*l]=bke(s,h,d)}return{width:c/2,height:1,data:f}}class Yy{constructor(e,t="",i="black"){this._renderingCanvas=e,this._loadingText=t,this._loadingDivBackgroundColor=i,this._loadingDivToRenderingCanvasMap=new Map,this._resizeLoadingUI=()=>{this._isLoading&&this._loadingDivToRenderingCanvasMap.forEach(([s,r],n)=>{const o=s.getBoundingClientRect();if(this._isCanvasLayoutChanged(r,o)){const l=window.getComputedStyle(s).position;n.style.position=l==="fixed"?"fixed":"absolute",n.style.left=o.left+window.scrollX+"px",n.style.top=o.top+window.scrollY+"px",n.style.width=o.width+"px",n.style.height=o.height+"px",this._loadingDivToRenderingCanvasMap.set(n,[s,o])}})}}displayLoadingUI(){if(this._isLoading)return;this._isLoading=!0,this._engine=ei.Instances.find(c=>c.getRenderingCanvas()===this._renderingCanvas);const e=document.createElement("div");e.id="babylonjsLoadingDiv",e.style.opacity="0",e.style.transition="opacity 1.5s ease",e.style.pointerEvents="none",e.style.display="grid",e.style.gridTemplateRows="100%",e.style.gridTemplateColumns="100%",e.style.justifyItems="center",e.style.alignItems="center",this._loadingTextDiv=document.createElement("div"),this._loadingTextDiv.style.position="absolute",this._loadingTextDiv.style.left="0",this._loadingTextDiv.style.top="50%",this._loadingTextDiv.style.marginTop="80px",this._loadingTextDiv.style.width="100%",this._loadingTextDiv.style.height="20px",this._loadingTextDiv.style.fontFamily="Arial",this._loadingTextDiv.style.fontSize="14px",this._loadingTextDiv.style.color="white",this._loadingTextDiv.style.textAlign="center",this._loadingTextDiv.style.zIndex="1",this._loadingTextDiv.innerHTML="Loading",e.appendChild(this._loadingTextDiv),this._loadingTextDiv.innerHTML=this._loadingText,this._style=document.createElement("style"),this._style.type="text/css";const t=`@-webkit-keyframes spin1 {                            0% { -webkit-transform: rotate(0deg);}
                            100% { -webkit-transform: rotate(360deg);}
                        }                        @keyframes spin1 {                            0% { transform: rotate(0deg);}
                            100% { transform: rotate(360deg);}
                        }`;this._style.innerHTML=t,document.getElementsByTagName("head")[0].appendChild(this._style);const i=!!window.SVGSVGElement,s=new Image;Yy.DefaultLogoUrl?s.src=Yy.DefaultLogoUrl:s.src=i?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxODAuMTcgMjA4LjA0Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6I2UwNjg0Yjt9LmNscy0ze2ZpbGw6I2JiNDY0Yjt9LmNscy00e2ZpbGw6I2UwZGVkODt9LmNscy01e2ZpbGw6I2Q1ZDJjYTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPkJhYnlsb25Mb2dvPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iUGFnZV9FbGVtZW50cyIgZGF0YS1uYW1lPSJQYWdlIEVsZW1lbnRzIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik05MC4wOSwwLDAsNTJWMTU2bDkwLjA5LDUyLDkwLjA4LTUyVjUyWiIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxODAuMTcgNTIuMDEgMTUxLjk3IDM1LjczIDEyNC44NSA1MS4zOSAxNTMuMDUgNjcuNjcgMTgwLjE3IDUyLjAxIi8+PHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjI3LjEyIDY3LjY3IDExNy4yMSAxNS42NiA5MC4wOCAwIDAgNTIuMDEgMjcuMTIgNjcuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iNjEuODkgMTIwLjMgOTAuMDggMTM2LjU4IDExOC4yOCAxMjAuMyA5MC4wOCAxMDQuMDIgNjEuODkgMTIwLjMiLz48cG9seWdvbiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iMTUzLjA1IDY3LjY3IDE1My4wNSAxNDAuMzcgOTAuMDggMTc2LjcyIDI3LjEyIDE0MC4zNyAyNy4xMiA2Ny42NyAwIDUyLjAxIDAgMTU2LjAzIDkwLjA4IDIwOC4wNCAxODAuMTcgMTU2LjAzIDE4MC4xNyA1Mi4wMSAxNTMuMDUgNjcuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iOTAuMDggNzEuNDYgNjEuODkgODcuNzQgNjEuODkgMTIwLjMgOTAuMDggMTA0LjAyIDExOC4yOCAxMjAuMyAxMTguMjggODcuNzQgOTAuMDggNzEuNDYiLz48cG9seWdvbiBjbGFzcz0iY2xzLTQiIHBvaW50cz0iMTUzLjA1IDY3LjY3IDExOC4yOCA4Ny43NCAxMTguMjggMTIwLjMgOTAuMDggMTM2LjU4IDkwLjA4IDE3Ni43MiAxNTMuMDUgMTQwLjM3IDE1My4wNSA2Ny42NyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtNSIgcG9pbnRzPSIyNy4xMiA2Ny42NyA2MS44OSA4Ny43NCA2MS44OSAxMjAuMyA5MC4wOCAxMzYuNTggOTAuMDggMTc2LjcyIDI3LjEyIDE0MC4zNyAyNy4xMiA2Ny42NyIvPjwvZz48L2c+PC9zdmc+":"https://cdn.babylonjs.com/Assets/babylonLogo.png",s.style.width="150px",s.style.gridColumn="1",s.style.gridRow="1",s.style.top="50%",s.style.left="50%",s.style.transform="translate(-50%, -50%)",s.style.position="absolute";const r=document.createElement("div");r.style.width="300px",r.style.gridColumn="1",r.style.gridRow="1",r.style.top="50%",r.style.left="50%",r.style.transform="translate(-50%, -50%)",r.style.position="absolute";const n=new Image;if(Yy.DefaultSpinnerUrl?n.src=Yy.DefaultSpinnerUrl:n.src=i?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzOTIgMzkyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2UwNjg0Yjt9LmNscy0ye2ZpbGw6bm9uZTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPlNwaW5uZXJJY29uPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iU3Bpbm5lciI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDAuMjEsMTI2LjQzYzMuNy03LjMxLDcuNjctMTQuNDQsMTItMjEuMzJsMy4zNi01LjEsMy41Mi01YzEuMjMtMS42MywyLjQxLTMuMjksMy42NS00LjkxczIuNTMtMy4yMSwzLjgyLTQuNzlBMTg1LjIsMTg1LjIsMCwwLDEsODMuNCw2Ny40M2EyMDgsMjA4LDAsMCwxLDE5LTE1LjY2YzMuMzUtMi40MSw2Ljc0LTQuNzgsMTAuMjUtN3M3LjExLTQuMjgsMTAuNzUtNi4zMmM3LjI5LTQsMTQuNzMtOCwyMi41My0xMS40OSwzLjktMS43Miw3Ljg4LTMuMywxMi00LjY0YTEwNC4yMiwxMDQuMjIsMCwwLDEsMTIuNDQtMy4yMyw2Mi40NCw2Mi40NCwwLDAsMSwxMi43OC0xLjM5QTI1LjkyLDI1LjkyLDAsMCwxLDE5NiwyMS40NGE2LjU1LDYuNTUsMCwwLDEsMi4wNSw5LDYuNjYsNi42NiwwLDAsMS0xLjY0LDEuNzhsLS40MS4yOWEyMi4wNywyMi4wNywwLDAsMS01Ljc4LDMsMzAuNDIsMzAuNDIsMCwwLDEtNS42NywxLjYyLDM3LjgyLDM3LjgyLDAsMCwxLTUuNjkuNzFjLTEsMC0xLjkuMTgtMi44NS4yNmwtMi44NS4yNHEtNS43Mi41MS0xMS40OCwxLjFjLTMuODQuNC03LjcxLjgyLTExLjU4LDEuNGExMTIuMzQsMTEyLjM0LDAsMCwwLTIyLjk0LDUuNjFjLTMuNzIsMS4zNS03LjM0LDMtMTAuOTQsNC42NHMtNy4xNCwzLjUxLTEwLjYsNS41MUExNTEuNiwxNTEuNiwwLDAsMCw2OC41Niw4N0M2Ny4yMyw4OC40OCw2Niw5MCw2NC42NCw5MS41NnMtMi41MSwzLjE1LTMuNzUsNC43M2wtMy41NCw0LjljLTEuMTMsMS42Ni0yLjIzLDMuMzUtMy4zMyw1YTEyNywxMjcsMCwwLDAtMTAuOTMsMjEuNDksMS41OCwxLjU4LDAsMSwxLTMtMS4xNVM0MC4xOSwxMjYuNDcsNDAuMjEsMTI2LjQzWiIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgd2lkdGg9IjM5MiIgaGVpZ2h0PSIzOTIiLz48L2c+PC9nPjwvc3ZnPg==":"https://cdn.babylonjs.com/Assets/loadingIcon.png",n.style.animation="spin1 0.75s infinite linear",n.style.transformOrigin="50% 50%",!i){const c={w:16,h:18.5},u={w:30,h:30};s.style.width=`${c.w}vh`,s.style.height=`${c.h}vh`,s.style.left=`calc(50% - ${c.w/2}vh)`,s.style.top=`calc(50% - ${c.h/2}vh)`,n.style.width=`${u.w}vh`,n.style.height=`${u.h}vh`,n.style.left=`calc(50% - ${u.w/2}vh)`,n.style.top=`calc(50% - ${u.h/2}vh)`}r.appendChild(n),e.appendChild(s),e.appendChild(r),e.style.backgroundColor=this._loadingDivBackgroundColor,e.style.opacity="1";const o=[],l=this._engine.views;if(l!=null&&l.length)for(const c of l)c.enabled&&o.push(c.target);else o.push(this._renderingCanvas);o.forEach((c,u)=>{const f=e.cloneNode(!0);f.id+=`-${u}`,this._loadingDivToRenderingCanvasMap.set(f,[c,null])}),this._resizeLoadingUI(),this._resizeObserver=this._engine.onResizeObservable.add(()=>{this._resizeLoadingUI()}),this._loadingDivToRenderingCanvasMap.forEach((c,u)=>{document.body.appendChild(u)})}hideLoadingUI(){if(!this._isLoading)return;let e=0;const t=i=>{const s=i.target;this._loadingDivToRenderingCanvasMap.has(s)&&(e++,s.remove(),e===this._loadingDivToRenderingCanvasMap.size&&(this._loadingTextDiv&&(this._loadingTextDiv.remove(),this._loadingTextDiv=null),this._style&&(this._style.remove(),this._style=null),window.removeEventListener("transitionend",t),this._engine.onResizeObservable.remove(this._resizeObserver),this._loadingDivToRenderingCanvasMap.clear(),this._engine=null,this._isLoading=!1))};this._loadingDivToRenderingCanvasMap.forEach((i,s)=>{s.style.opacity="0"}),window.addEventListener("transitionend",t)}set loadingUIText(e){this._loadingText=e,this._loadingTextDiv&&this._loadingDivToRenderingCanvasMap.forEach((t,i)=>{i.children[0].innerHTML=this._loadingText})}get loadingUIText(){return this._loadingText}get loadingUIBackgroundColor(){return this._loadingDivBackgroundColor}set loadingUIBackgroundColor(e){this._loadingDivBackgroundColor=e,this._isLoading&&this._loadingDivToRenderingCanvasMap.forEach((t,i)=>{i.style.backgroundColor=this._loadingDivBackgroundColor})}_isCanvasLayoutChanged(e,t){return!e||e.left!==t.left||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.width!==t.width||e.height!==t.height||e.x!==t.x||e.y!==t.y}}Yy.DefaultLogoUrl="",Yy.DefaultSpinnerUrl="",dt.DefaultLoadingScreenFactory=a=>new Yy(a);class Xy{static ConvertPanoramaToCubemap(e,t,i,s,r=!1){if(!e)throw"ConvertPanoramaToCubemap: input cannot be null";if(e.length!=t*i*3)throw"ConvertPanoramaToCubemap: input size is wrong";const n=this.CreateCubemapTexture(s,this.FACE_FRONT,e,t,i,r),o=this.CreateCubemapTexture(s,this.FACE_BACK,e,t,i,r),l=this.CreateCubemapTexture(s,this.FACE_LEFT,e,t,i,r),c=this.CreateCubemapTexture(s,this.FACE_RIGHT,e,t,i,r),u=this.CreateCubemapTexture(s,this.FACE_UP,e,t,i,r),f=this.CreateCubemapTexture(s,this.FACE_DOWN,e,t,i,r);return{front:n,back:o,left:l,right:c,up:u,down:f,size:s,type:1,format:4,gammaSpace:!1}}static CreateCubemapTexture(e,t,i,s,r,n=!1){const o=new ArrayBuffer(e*e*4*3),l=new Float32Array(o),c=n?Math.max(1,Math.round(s/4/e)):1,u=1/c,f=u*u,p=t[1].subtract(t[0]).scale(u/e),m=t[3].subtract(t[2]).scale(u/e),_=1/e;let d=0;for(let h=0;h<e;h++)for(let x=0;x<c;x++){let A=t[0],S=t[2];for(let E=0;E<e;E++)for(let b=0;b<c;b++){const M=S.subtract(A).scale(d).add(A);M.normalize();const T=this.CalcProjectionSpherical(M,i,s,r);l[h*e*3+E*3+0]+=T.r*f,l[h*e*3+E*3+1]+=T.g*f,l[h*e*3+E*3+2]+=T.b*f,A=A.add(p),S=S.add(m)}d+=_*u}return l}static CalcProjectionSpherical(e,t,i,s){let r=Math.atan2(e.z,e.x);const n=Math.acos(e.y);for(;r<-Math.PI;)r+=2*Math.PI;for(;r>Math.PI;)r-=2*Math.PI;let o=r/Math.PI;const l=n/Math.PI;o=o*.5+.5;let c=Math.round(o*i);c<0?c=0:c>=i&&(c=i-1);let u=Math.round(l*s);u<0?u=0:u>=s&&(u=s-1);const f=s-u-1,p=t[f*i*3+c*3+0],m=t[f*i*3+c*3+1],_=t[f*i*3+c*3+2];return{r:p,g:m,b:_}}}Xy.FACE_LEFT=[new P(-1,-1,-1),new P(1,-1,-1),new P(-1,1,-1),new P(1,1,-1)],Xy.FACE_RIGHT=[new P(1,-1,1),new P(-1,-1,1),new P(1,1,1),new P(-1,1,1)],Xy.FACE_FRONT=[new P(1,-1,-1),new P(1,-1,1),new P(1,1,-1),new P(1,1,1)],Xy.FACE_BACK=[new P(-1,-1,1),new P(-1,-1,-1),new P(-1,1,1),new P(-1,1,-1)],Xy.FACE_DOWN=[new P(1,1,-1),new P(1,1,1),new P(-1,1,-1),new P(-1,1,1)],Xy.FACE_UP=[new P(-1,-1,-1),new P(-1,-1,1),new P(1,-1,-1),new P(1,-1,1)];function Ske(a,e){return e>1023?a*Math.pow(2,1023)*Math.pow(2,e-1023):e<-1074?a*Math.pow(2,-1074)*Math.pow(2,e+1074):a*Math.pow(2,e)}function O4e(a,e,t,i,s,r){s>0?(s=Ske(1,s-136),a[r+0]=e*s,a[r+1]=t*s,a[r+2]=i*s):(a[r+0]=0,a[r+1]=0,a[r+2]=0)}function Rie(a,e){let t="",i="";for(let s=e;s<a.length-e&&(i=String.fromCharCode(a[s]),i!=`
`);s++)t+=i;return t}function Die(a){let e=0,t=0,i=Rie(a,0);if(i[0]!="#"||i[1]!="?")throw"Bad HDR Format.";let s=!1,r=!1,n=0;do n+=i.length+1,i=Rie(a,n),i=="FORMAT=32-bit_rle_rgbe"?r=!0:i.length==0&&(s=!0);while(!s);if(!r)throw"HDR Bad header format, unsupported FORMAT";n+=i.length+1,i=Rie(a,n);const l=/^-Y (.*) \+X (.*)$/g.exec(i);if(!l||l.length<3)throw"HDR Bad header format, no size";if(t=parseInt(l[2]),e=parseInt(l[1]),t<8||t>32767)throw"HDR Bad header format, unsupported size";return n+=i.length+1,{height:e,width:t,dataPosition:n}}function R4e(a,e,t=!1){const i=new Uint8Array(a),s=Die(i),r=Nie(i,s);return Xy.ConvertPanoramaToCubemap(r,s.width,s.height,e,t)}function Nie(a,e){return yke(a,e)}function yke(a,e){let t=e.height;const i=e.width;let s,r,n,o,l,c=e.dataPosition,u=0,f=0,p=0;const m=new ArrayBuffer(i*4),_=new Uint8Array(m),d=new ArrayBuffer(e.width*e.height*4*3),h=new Float32Array(d);for(;t>0;){if(s=a[c++],r=a[c++],n=a[c++],o=a[c++],s!=2||r!=2||n&128||e.width<8||e.width>32767)return Mke(a,e);if((n<<8|o)!=i)throw"HDR Bad header format, wrong scan line width";for(u=0,p=0;p<4;p++)for(f=(p+1)*i;u<f;)if(s=a[c++],r=a[c++],s>128){if(l=s-128,l==0||l>f-u)throw"HDR Bad Format, bad scanline data (run)";for(;l-- >0;)_[u++]=r}else{if(l=s,l==0||l>f-u)throw"HDR Bad Format, bad scanline data (non-run)";if(_[u++]=r,--l>0)for(let x=0;x<l;x++)_[u++]=a[c++]}for(p=0;p<i;p++)s=_[p],r=_[p+i],n=_[p+2*i],o=_[p+3*i],O4e(h,s,r,n,o,(e.height-t)*i*3+p*3);t--}return h}function Mke(a,e){let t=e.height;const i=e.width;let s,r,n,o,l,c=e.dataPosition;const u=new ArrayBuffer(e.width*e.height*4*3),f=new Float32Array(u);for(;t>0;){for(l=0;l<e.width;l++)s=a[c++],r=a[c++],n=a[c++],o=a[c++],O4e(f,s,r,n,o,(e.height-t)*i*3+l*3);t--}return f}const Eke={RGBE_ReadHeader:Die,GetCubeMapTextureData:R4e,RGBE_ReadPixels:Nie};class wie{constructor(e,t={}){this._lodGenerationOffset=0,this._lodGenerationScale=.8,this.quality=4096,this.hdrScale=1,this._engine=e,this.hdrScale=t.hdrScale||this.hdrScale,this.quality=t.quality||this.quality}_createRenderTarget(e){let t=0;this._engine.getCaps().textureHalfFloatRender?t=2:this._engine.getCaps().textureFloatRender&&(t=1);const i=this._engine.createRenderTargetCubeTexture(e,{format:5,type:t,createMipMaps:!0,generateMipMaps:!1,generateDepthBuffer:!1,generateStencilBuffer:!1,samplingMode:1,label:"HDR_Radiance_Filtering_Target"});return this._engine.updateTextureWrappingMode(i.texture,0,0,0),this._engine.updateTextureSamplingMode(3,i.texture,!0),i}_prefilterInternal(e){const t=e.getSize().width,i=OT(t)+1,s=this._effectWrapper.effect,r=this._createRenderTarget(t);this._effectRenderer.saveStates(),this._effectRenderer.setViewport();const n=e.getInternalTexture();n&&this._engine.updateTextureSamplingMode(3,n,!0),this._effectRenderer.applyEffectWrapper(this._effectWrapper);const o=[[new P(0,0,-1),new P(0,-1,0),new P(1,0,0)],[new P(0,0,1),new P(0,-1,0),new P(-1,0,0)],[new P(1,0,0),new P(0,0,1),new P(0,1,0)],[new P(1,0,0),new P(0,0,-1),new P(0,-1,0)],[new P(1,0,0),new P(0,-1,0),new P(0,0,1)],[new P(-1,0,0),new P(0,-1,0),new P(0,0,-1)]];s.setFloat("hdrScale",this.hdrScale),s.setFloat2("vFilteringInfo",e.getSize().width,i),s.setTexture("inputTexture",e);for(let u=0;u<6;u++){s.setVector3("up",o[u][0]),s.setVector3("right",o[u][1]),s.setVector3("front",o[u][2]);for(let f=0;f<i;f++){this._engine.bindFramebuffer(r,u,void 0,void 0,!0,f),this._effectRenderer.applyEffectWrapper(this._effectWrapper);let p=Math.pow(2,(f-this._lodGenerationOffset)/this._lodGenerationScale)/t;f===0&&(p=0),s.setFloat("alphaG",p),this._effectRenderer.draw()}}this._effectRenderer.restoreStates(),this._engine.restoreDefaultFramebuffer(),this._engine._releaseTexture(e._texture);const l=r.texture.type,c=r.texture.format;return r._swapAndDie(e._texture),e._texture.type=l,e._texture.format=c,e.gammaSpace=!1,e.lodGenerationOffset=this._lodGenerationOffset,e.lodGenerationScale=this._lodGenerationScale,e._prefiltered=!0,e}_createEffect(e,t){const i=[];e.gammaSpace&&i.push("#define GAMMA_INPUT"),i.push("#define NUM_SAMPLES "+this.quality+"u");const s=this._engine.isWebGPU;return new Qr({engine:this._engine,name:"hdrFiltering",vertexShader:"hdrFiltering",fragmentShader:"hdrFiltering",samplerNames:["inputTexture"],uniformNames:["vSampleDirections","vWeights","up","right","front","vFilteringInfo","hdrScale","alphaG"],useShaderStore:!0,defines:i,onCompiled:t,shaderLanguage:s?1:0,extraInitializationsAsync:async()=>{s?await Promise.all([Promise.resolve().then(()=>zGe),Promise.resolve().then(()=>FGe)]):await Promise.all([Promise.resolve().then(()=>wGe),Promise.resolve().then(()=>BGe)])}})}isReady(e){return e.isReady()&&this._effectWrapper.effect.isReady()}async prefilter(e){if(!this._engine._features.allowTexturePrefiltering)throw new Error("HDR prefiltering is not available in WebGL 1., you can use real time filtering instead.");this._effectRenderer=new BT(this._engine),this._effectWrapper=this._createEffect(e),await this._effectWrapper.effect.whenCompiledAsync(),this._prefilterInternal(e),this._effectRenderer.dispose(),this._effectWrapper.dispose()}}class l9{get iblSource(){return this._iblSource}set iblSource(e){this._iblSource!==e&&(this._disposeTextures(),this._iblSource=e,e&&(e.isCube?e.isReadyOrNotBlocking()?this._recreateAssetsFromNewIbl():e.onLoadObservable.addOnce(this._recreateAssetsFromNewIbl.bind(this,e)):e.isReadyOrNotBlocking()?this._recreateAssetsFromNewIbl():e.onLoadObservable.addOnce(this._recreateAssetsFromNewIbl.bind(this,e))))}_recreateAssetsFromNewIbl(){this._debugPass&&this._debugPass.dispose(),this._createTextures(),this._debugPass&&this._createDebugPass()}getIcdfTexture(){return this._icdfPT?this._icdfPT:this._dummyTexture}setDebugDisplayParams(e,t,i,s){this._debugSizeParams.set(e,t,i,s)}get debugPassName(){return this._debugPassName}getDebugPassPP(){return this._debugPass||this._createDebugPass(),this._debugPass}constructor(e){this.debugEnabled=!1,this._debugSizeParams=new Yt(0,0,1,1),this._debugPassName="CDF Debug",this.onGeneratedObservable=new xe,e?l9._IsScene(e)?this._scene=e:this._engine=e:this._scene=ei.LastCreatedScene,this._scene&&(this._engine=this._scene.getEngine());const t=new Uint16Array([0,0,0,255]);this._dummyTexture=new Ur(t,1,1,Qt.TEXTUREFORMAT_RGBA,e,!1,!1,void 0,2),this._scene&&l9._SceneComponentInitialization(this._scene)}_createTextures(){const e=this._iblSource?{width:this._iblSource.getSize().width,height:this._iblSource.getSize().height}:{width:1,height:1};this._iblSource||(this._iblSource=Ur.CreateRTexture(new Uint8Array([255]),1,1,this._engine,!1,!1,1,0),this._iblSource.name="Placeholder IBL Source"),this._iblSource.isCube&&(e.width*=4,e.height*=2,e.width=1<<Math.floor(Math.log2(e.width)),e.height=1<<Math.floor(Math.log2(e.height)));const t=this._engine.isWebGPU,i={generateDepthBuffer:!1,generateMipMaps:!1,format:6,type:1,samplingMode:1,shaderLanguage:t?1:0,gammaSpace:!1,extraInitializationsAsync:async()=>{t?await Promise.all([Promise.resolve().then(()=>RKe),Promise.resolve().then(()=>NKe),Promise.resolve().then(()=>UKe)]):await Promise.all([Promise.resolve().then(()=>DKe),Promise.resolve().then(()=>wKe),Promise.resolve().then(()=>jKe)])}},s={generateDepthBuffer:!1,generateMipMaps:!1,format:5,type:2,samplingMode:1,shaderLanguage:t?1:0,gammaSpace:!1,extraInitializationsAsync:async()=>{t?await Promise.all([Promise.resolve().then(()=>BKe)]):await Promise.all([Promise.resolve().then(()=>zKe)])}};this._cdfyPT=new zc("cdfyTexture",{width:e.width,height:e.height+1},"iblCdfy",this._scene,i,!1,!1),this._cdfyPT.autoClear=!1,this._cdfyPT.setTexture("iblSource",this._iblSource),this._cdfyPT.setInt("iblHeight",e.height),this._cdfyPT.wrapV=0,this._cdfyPT.refreshRate=0,this._iblSource.isCube&&(this._cdfyPT.defines=`#define IBL_USE_CUBE_MAP
`),this._cdfxPT=new zc("cdfxTexture",{width:e.width+1,height:1},"iblCdfx",this._scene,i,!1,!1),this._cdfxPT.autoClear=!1,this._cdfxPT.setTexture("cdfy",this._cdfyPT),this._cdfxPT.refreshRate=0,this._cdfxPT.wrapU=0,this._scaledLuminancePT=new zc("iblScaledLuminance",{width:e.width,height:e.height},"iblScaledLuminance",this._scene,{...i,samplingMode:3,generateMipMaps:!0},!0,!1),this._scaledLuminancePT.autoClear=!1,this._scaledLuminancePT.setTexture("iblSource",this._iblSource),this._scaledLuminancePT.setInt("iblHeight",e.height),this._scaledLuminancePT.setInt("iblWidth",e.width),this._scaledLuminancePT.refreshRate=0,this._iblSource.isCube&&(this._scaledLuminancePT.defines=`#define IBL_USE_CUBE_MAP
`),this._icdfPT=new zc("icdfTexture",{width:e.width,height:e.height},"iblIcdf",this._scene,s,!1,!1),this._icdfPT.autoClear=!1,this._icdfPT.setTexture("cdfy",this._cdfyPT),this._icdfPT.setTexture("cdfx",this._cdfxPT),this._icdfPT.setTexture("iblSource",this._iblSource),this._icdfPT.setTexture("scaledLuminanceSampler",this._scaledLuminancePT),this._icdfPT.refreshRate=0,this._icdfPT.wrapV=0,this._icdfPT.wrapU=0,this._iblSource.isCube&&(this._icdfPT.defines=`#define IBL_USE_CUBE_MAP
`),this._icdfPT.onGeneratedObservable.addOnce(()=>{this.onGeneratedObservable.notifyObservers()})}_disposeTextures(){var e,t,i,s;(e=this._cdfyPT)==null||e.dispose(),(t=this._cdfxPT)==null||t.dispose(),(i=this._icdfPT)==null||i.dispose(),(s=this._scaledLuminancePT)==null||s.dispose()}_createDebugPass(){var s,r,n;this._debugPass&&this._debugPass.dispose();const e=this._engine.isWebGPU,t={width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight(),samplingMode:be.BILINEAR_SAMPLINGMODE,engine:this._engine,textureType:0,uniforms:["sizeParams"],samplers:["cdfy","icdf","cdfx","iblSource"],defines:(s=this._iblSource)!=null&&s.isCube?`#define IBL_USE_CUBE_MAP
`:"",shaderLanguage:e?1:0,extraInitializations:(o,l)=>{o?l.push(Promise.resolve().then(()=>FKe)):l.push(Promise.resolve().then(()=>kKe))}};this._debugPass=new Mi(this._debugPassName,"iblCdfDebug",t);const i=this._debugPass.getEffect();i&&(i.defines=(r=this._iblSource)!=null&&r.isCube?`#define IBL_USE_CUBE_MAP
`:""),(n=this._iblSource)!=null&&n.isCube&&this._debugPass.updateEffect(`#define IBL_USE_CUBE_MAP
`),this._debugPass.onApplyObservable.add(o=>{o.setTexture("cdfy",this._cdfyPT),o.setTexture("icdf",this._icdfPT),o.setTexture("cdfx",this._cdfxPT),o.setTexture("iblSource",this._iblSource),o.setFloat4("sizeParams",this._debugSizeParams.x,this._debugSizeParams.y,this._debugSizeParams.z,this._debugSizeParams.w)})}isReady(){return this._iblSource&&this._iblSource.name!=="Placeholder IBL Source"&&this._iblSource.isReady()&&this._cdfyPT&&this._cdfyPT.isReady()&&this._icdfPT&&this._icdfPT.isReady()&&this._cdfxPT&&this._cdfxPT.isReady()&&this._scaledLuminancePT&&this._scaledLuminancePT.isReady()}renderWhenReady(){this._icdfPT.onGeneratedObservable.addOnce(()=>{this.onGeneratedObservable.notifyObservers()});const e=[],t=[this._cdfyPT,this._cdfxPT,this._scaledLuminancePT,this._icdfPT];return t.forEach(i=>{e.push(new Promise(s=>{i.isReady()?s():i.getEffect().executeWhenCompiled(()=>{s()})}))}),Promise.all(e).then(()=>{t.forEach(i=>{i.render()})})}dispose(){this._disposeTextures(),this._dummyTexture.dispose(),this._debugPass&&this._debugPass.dispose(),this.onGeneratedObservable.clear()}static _IsScene(e){return e.getClassName()==="Scene"}}l9._SceneComponentInitialization=a=>{throw as("IblCdfGeneratorSceneComponentSceneComponent")};class Tke{constructor(e,t={}){this.quality=4096,this.hdrScale=1,this.useCdf=!1,this._engine=e,this.hdrScale=t.hdrScale||this.hdrScale,this.quality=t.quality||this.quality,this.useCdf=t.useCdf||this.useCdf}_createRenderTarget(e){let t=0;this._engine.getCaps().textureHalfFloatRender?t=2:this._engine.getCaps().textureFloatRender&&(t=1);const i=this._engine.createRenderTargetCubeTexture(e,{format:5,type:t,createMipMaps:!1,generateMipMaps:!1,generateDepthBuffer:!1,generateStencilBuffer:!1,samplingMode:2,label:"HDR_Irradiance_Filtering_Target"});return this._engine.updateTextureWrappingMode(i.texture,0,0,0),i}_prefilterInternal(e){const t=e.getSize().width,i=OT(t),s=this._effectWrapper.effect,r=Math.max(32,1<<OT(t>>3)),n=this._createRenderTarget(r);this._effectRenderer.saveStates(),this._effectRenderer.setViewport(),this._effectRenderer.applyEffectWrapper(this._effectWrapper);const o=[[new P(0,0,-1),new P(0,-1,0),new P(1,0,0)],[new P(0,0,1),new P(0,-1,0),new P(-1,0,0)],[new P(1,0,0),new P(0,0,1),new P(0,1,0)],[new P(1,0,0),new P(0,0,-1),new P(0,-1,0)],[new P(1,0,0),new P(0,-1,0),new P(0,0,1)],[new P(-1,0,0),new P(0,-1,0),new P(0,0,-1)]];s.setFloat("hdrScale",this.hdrScale),s.setFloat2("vFilteringInfo",e.getSize().width,i),s.setTexture("inputTexture",e),this._cdfGenerator&&s.setTexture("icdfTexture",this._cdfGenerator.getIcdfTexture());for(let c=0;c<6;c++)s.setVector3("up",o[c][0]),s.setVector3("right",o[c][1]),s.setVector3("front",o[c][2]),this._engine.bindFramebuffer(n,c,void 0,void 0,!0),this._effectRenderer.applyEffectWrapper(this._effectWrapper),this._effectRenderer.draw();this._effectRenderer.restoreStates(),this._engine.restoreDefaultFramebuffer(),s.setTexture("inputTexture",null),s.setTexture("icdfTexture",null);const l=new vr(e.getScene(),n.texture);return l.name=e.name+"_irradiance",l.displayName=e.name+"_irradiance",l.gammaSpace=!1,l}_createEffect(e,t){const i=[];e.gammaSpace&&i.push("#define GAMMA_INPUT"),i.push("#define NUM_SAMPLES "+this.quality+"u");const s=this._engine.isWebGPU,r=["inputTexture"];return this._cdfGenerator&&(r.push("icdfTexture"),i.push("#define IBL_CDF_FILTERING")),new Qr({engine:this._engine,name:"HDRIrradianceFiltering",vertexShader:"hdrIrradianceFiltering",fragmentShader:"hdrIrradianceFiltering",samplerNames:r,uniformNames:["vSampleDirections","vWeights","up","right","front","vFilteringInfo","hdrScale"],useShaderStore:!0,defines:i,onCompiled:t,shaderLanguage:s?1:0,extraInitializationsAsync:async()=>{s?await Promise.all([Promise.resolve().then(()=>jGe),Promise.resolve().then(()=>VGe)]):await Promise.all([Promise.resolve().then(()=>kGe),Promise.resolve().then(()=>UGe)])}})}isReady(e){return e.isReady()&&this._effectWrapper.effect.isReady()}async prefilter(e){var i;if(!this._engine._features.allowTexturePrefiltering)throw new Error("HDR prefiltering is not available in WebGL 1., you can use real time filtering instead.");this.useCdf&&(this._cdfGenerator=new l9(this._engine),this._cdfGenerator.iblSource=e,await this._cdfGenerator.renderWhenReady()),this._effectRenderer=new BT(this._engine),this._effectWrapper=this._createEffect(e),await this._effectWrapper.effect.whenCompiledAsync();const t=this._prefilterInternal(e);return this._effectRenderer.dispose(),this._effectWrapper.dispose(),(i=this._cdfGenerator)==null||i.dispose(),t}}class Zy extends vr{set isBlocking(e){this._isBlocking=e}get isBlocking(){return this._isBlocking}set rotationY(e){this._rotationY=e,this.setReflectionTextureMatrix(me.RotationY(this._rotationY))}get rotationY(){return this._rotationY}set boundingBoxSize(e){if(this._boundingBoxSize&&this._boundingBoxSize.equals(e))return;this._boundingBoxSize=e;const t=this.getScene();t&&t.markAllMaterialsAsDirty(1)}get boundingBoxSize(){return this._boundingBoxSize}constructor(e,t,i,s=!1,r=!0,n=!1,o=!1,l=null,c=null,u=!1,f=!1,p=!1){var m;super(t),this._generateHarmonics=!0,this._onError=null,this._isBlocking=!0,this._rotationY=0,this.boundingBoxPosition=P.Zero(),this.onLoadObservable=new xe,e&&(this._coordinatesMode=be.CUBIC_MODE,this.name=e,this.url=e,this.hasAlpha=!1,this.isCube=!0,this._textureMatrix=me.Identity(),this._prefilterOnLoad=o,this._prefilterIrradianceOnLoad=f,this._prefilterUsingCdf=p,this._onLoad=()=>{this.onLoadObservable.notifyObservers(this),l&&l()},this._onError=c,this.gammaSpace=n,this._noMipmap=s,this._size=i,this._supersample=u||p,this._generateHarmonics=r,this._texture=this._getFromCache(e,this._noMipmap,void 0,void 0,void 0,this.isCube),this._texture?this._texture.isReady?Le.SetImmediate(()=>this._onLoad()):this._texture.onLoadedObservable.add(this._onLoad):(m=this.getScene())!=null&&m.useDelayedTextureLoading?this.delayLoadState=4:this._loadTexture())}getClassName(){return"HDRCubeTexture"}_loadTexture(){const e=this._getEngine(),t=e.getCaps();let i=0;t.textureFloat&&t.textureFloatLinearFiltering?i=1:t.textureHalfFloat&&t.textureHalfFloatLinearFiltering&&(i=2);const s=r=>{this.lodGenerationOffset=0,this.lodGenerationScale=.8;const n=R4e(r,this._size,this._supersample);if(this._generateHarmonics){const u=eL.ConvertCubeMapToSphericalPolynomial(n);this.sphericalPolynomial=u}const o=[];let l=null,c=null;for(let u=0;u<6;u++){i===2?c=new Uint16Array(this._size*this._size*3):i===0&&(l=new Uint8Array(this._size*this._size*3));const f=n[Zy._FacesMapping[u]];if(this.gammaSpace||c||l){for(let p=0;p<this._size*this._size;p++)if(this.gammaSpace&&(f[p*3+0]=Math.pow(f[p*3+0],lP),f[p*3+1]=Math.pow(f[p*3+1],lP),f[p*3+2]=Math.pow(f[p*3+2],lP)),c&&(c[p*3+0]=H1(f[p*3+0]),c[p*3+1]=H1(f[p*3+1]),c[p*3+2]=H1(f[p*3+2])),l){let m=Math.max(f[p*3+0]*255,0),_=Math.max(f[p*3+1]*255,0),d=Math.max(f[p*3+2]*255,0);const h=Math.max(Math.max(m,_),d);if(h>255){const x=255/h;m*=x,_*=x,d*=x}l[p*3+0]=m,l[p*3+1]=_,l[p*3+2]=d}}c?o.push(c):l?o.push(l):o.push(f)}return o};if(e._features.allowTexturePrefiltering&&(this._prefilterOnLoad||this._prefilterIrradianceOnLoad)){const r=this._onLoad,n=new wie(e);this._onLoad=()=>{let o=Promise.resolve(null),l=Promise.resolve();this._prefilterIrradianceOnLoad&&(o=new Tke(e,{useCdf:this._prefilterUsingCdf}).prefilter(this)),this._prefilterOnLoad&&(l=n.prefilter(this)),Promise.all([o,l]).then(c=>{const u=c[0];if(this._prefilterIrradianceOnLoad&&u){this.irradianceTexture=u;const f=this.getScene();f&&f.markAllMaterialsAsDirty(1)}r&&r()})}}this._texture=e.createRawCubeTextureFromUrl(this.url,this.getScene(),this._size,4,i,this._noMipmap,s,null,this._onLoad,this._onError)}clone(){const e=new Zy(this.url,this.getScene()||this._getEngine(),this._size,this._noMipmap,this._generateHarmonics,this.gammaSpace);return e.level=this.level,e.wrapU=this.wrapU,e.wrapV=this.wrapV,e.coordinatesIndex=this.coordinatesIndex,e.coordinatesMode=this.coordinatesMode,e}delayLoad(){this.delayLoadState===4&&(this.delayLoadState=1,this._texture=this._getFromCache(this.url,this._noMipmap),this._texture||this._loadTexture())}getReflectionTextureMatrix(){return this._textureMatrix}setReflectionTextureMatrix(e){var t;this._textureMatrix=e,e.updateFlag!==this._textureMatrix.updateFlag&&e.isIdentity()!==this._textureMatrix.isIdentity()&&((t=this.getScene())==null||t.markAllMaterialsAsDirty(1,i=>i.getActiveTextures().indexOf(this)!==-1))}dispose(){this.onLoadObservable.clear(),super.dispose()}static Parse(e,t,i){let s=null;return e.name&&!e.isRenderTarget&&(s=new Zy(i+e.name,t,e.size,e.noMipmap,e.generateHarmonics,e.useInGammaSpace),s.name=e.name,s.hasAlpha=e.hasAlpha,s.level=e.level,s.coordinatesMode=e.coordinatesMode,s.isBlocking=e.isBlocking),s&&(e.boundingBoxPosition&&(s.boundingBoxPosition=P.FromArray(e.boundingBoxPosition)),e.boundingBoxSize&&(s.boundingBoxSize=P.FromArray(e.boundingBoxSize)),e.rotationY&&(s.rotationY=e.rotationY)),s}serialize(){if(!this.name)return null;const e={};return e.name=this.name,e.hasAlpha=this.hasAlpha,e.isCube=!0,e.level=this.level,e.size=this._size,e.coordinatesMode=this.coordinatesMode,e.useInGammaSpace=this.gammaSpace,e.generateHarmonics=this._generateHarmonics,e.customType="BABYLON.HDRCubeTexture",e.noMipmap=this._noMipmap,e.isBlocking=this._isBlocking,e.rotationY=this._rotationY,e}}Zy._FacesMapping=["right","left","up","down","front","back"],ve("BABYLON.HDRCubeTexture",Zy);class Bie{constructor(){this._hasHit=!1,this._hitNormal=P.Zero(),this._hitPoint=P.Zero(),this._triangleIndex=-1}get hitPoint(){return this._hitPoint}get hitNormal(){return this._hitNormal}get hasHit(){return this._hasHit}get triangleIndex(){return this._triangleIndex}setHitData(e,t,i){this._hasHit=!0,this._hitNormal.set(e.x,e.y,e.z),this._hitPoint.set(t.x,t.y,t.z),this._triangleIndex=i??-1}reset(){this._hasHit=!1,this._hitNormal.setAll(0),this._hitPoint.setAll(0),this._triangleIndex=-1,this.body=void 0,this.bodyIndex=void 0,this.shape=void 0}}class jB extends Bie{constructor(){super(...arguments),this._hitDistance=0,this._rayFromWorld=P.Zero(),this._rayToWorld=P.Zero()}get hitDistance(){return this._hitDistance}get hitNormalWorld(){return this._hitNormal}get hitPointWorld(){return this._hitPoint}get rayFromWorld(){return this._rayFromWorld}get rayToWorld(){return this._rayToWorld}setHitDistance(e){this._hitDistance=e}calculateHitDistance(){this._hitDistance=P.Distance(this._rayFromWorld,this._hitPoint)}reset(e=P.Zero(),t=P.Zero()){super.reset(),this._rayFromWorld.copyFrom(e),this._rayToWorld.copyFrom(t),this._hitDistance=0}}let zie=class JIe{getPluginVersion(){return this._physicsPlugin.getPluginVersion()}static DefaultPluginFactory(){throw as("CannonJSPlugin")}constructor(e,t=JIe.DefaultPluginFactory()){if(this._physicsPlugin=t,this._impostors=[],this._joints=[],this._subTimeStep=0,this._uniqueIdCounter=0,!this._physicsPlugin.isSupported())throw new Error("Physics Engine "+this._physicsPlugin.name+" cannot be found. Please make sure it is included.");e=e||new P(0,-9.807,0),this.setGravity(e),this.setTimeStep()}setGravity(e){this.gravity=e,this._physicsPlugin.setGravity(this.gravity)}setTimeStep(e=1/60){this._physicsPlugin.setTimeStep(e)}getTimeStep(){return this._physicsPlugin.getTimeStep()}setSubTimeStep(e=0){this._subTimeStep=e}getSubTimeStep(){return this._subTimeStep}dispose(){this._impostors.forEach(function(e){e.dispose()}),this._physicsPlugin.dispose()}getPhysicsPluginName(){return this._physicsPlugin.name}addImpostor(e){this._impostors.push(e),e.uniqueId=this._uniqueIdCounter++,e.parent||this._physicsPlugin.generatePhysicsBody(e)}removeImpostor(e){const t=this._impostors.indexOf(e);t>-1&&this._impostors.splice(t,1).length&&this.getPhysicsPlugin().removePhysicsBody(e)}addJoint(e,t,i){const s={mainImpostor:e,connectedImpostor:t,joint:i};i.physicsPlugin=this._physicsPlugin,this._joints.push(s),this._physicsPlugin.generateJoint(s)}removeJoint(e,t,i){const s=this._joints.filter(function(r){return r.connectedImpostor===t&&r.joint===i&&r.mainImpostor===e});s.length&&this._physicsPlugin.removeJoint(s[0])}_step(e){this._impostors.forEach(t=>{t.isBodyInitRequired()&&this._physicsPlugin.generatePhysicsBody(t)}),e>.1?e=.1:e<=0&&(e=1/60),this._physicsPlugin.executeStep(e,this._impostors)}getPhysicsPlugin(){return this._physicsPlugin}getImpostors(){return this._impostors}getImpostorForPhysicsObject(e){for(let t=0;t<this._impostors.length;++t)if(this._impostors[t].object===e)return this._impostors[t];return null}getImpostorWithPhysicsBody(e){for(let t=0;t<this._impostors.length;++t)if(this._impostors[t].physicsBody===e)return this._impostors[t];return null}raycast(e,t){return this._physicsPlugin.raycast(e,t)}raycastToRef(e,t,i){return this._physicsPlugin.raycastToRef(e,t,i)}};class kH{constructor(e=!0,t=10,i=CANNON){if(this._useDeltaForWorldStep=e,this.name="CannonJSPlugin",this._physicsMaterials=new Array,this._fixedTimeStep=1/60,this._physicsBodiesToRemoveAfterStep=new Array,this._firstFrame=!0,this._tmpQuaternion=new Re,this._minus90X=new Re(-.7071067811865475,0,0,.7071067811865475),this._plus90X=new Re(.7071067811865475,0,0,.7071067811865475),this._tmpPosition=P.Zero(),this._tmpDeltaPosition=P.Zero(),this._tmpUnityRotation=new Re,this.BJSCANNON=i,!this.isSupported()){de.Error("CannonJS is not available. Please make sure you included the js file.");return}this._extendNamespace(),this.world=new this.BJSCANNON.World,this.world.broadphase=new this.BJSCANNON.NaiveBroadphase,this.world.solver.iterations=t,this._cannonRaycastResult=new this.BJSCANNON.RaycastResult,this._raycastResult=new jB}getPluginVersion(){return 1}setGravity(e){const t=e;this.world.gravity.set(t.x,t.y,t.z)}setTimeStep(e){this._fixedTimeStep=e}getTimeStep(){return this._fixedTimeStep}executeStep(e,t){if(this._firstFrame){this._firstFrame=!1;for(const i of t)i.type==$i.HeightmapImpostor||i.type===$i.PlaneImpostor||i.beforeStep()}this.world.step(this._useDeltaForWorldStep?e:this._fixedTimeStep),this._removeMarkedPhysicsBodiesFromWorld()}_removeMarkedPhysicsBodiesFromWorld(){this._physicsBodiesToRemoveAfterStep.length>0&&(this._physicsBodiesToRemoveAfterStep.forEach(e=>{typeof this.world.removeBody=="function"?this.world.removeBody(e):this.world.remove(e)}),this._physicsBodiesToRemoveAfterStep.length=0)}applyImpulse(e,t,i){const s=new this.BJSCANNON.Vec3(i.x,i.y,i.z),r=new this.BJSCANNON.Vec3(t.x,t.y,t.z);e.physicsBody.applyImpulse(r,s)}applyForce(e,t,i){const s=new this.BJSCANNON.Vec3(i.x,i.y,i.z),r=new this.BJSCANNON.Vec3(t.x,t.y,t.z);e.physicsBody.applyForce(r,s)}generatePhysicsBody(e){if(this._removeMarkedPhysicsBodiesFromWorld(),e.parent){e.physicsBody&&(this.removePhysicsBody(e),e.forceUpdate());return}if(e.isBodyInitRequired()){const t=this._createShape(e);if(!t){de.Warn("It was not possible to create a physics body for this object.");return}const i=e.physicsBody;i&&this.removePhysicsBody(e);const s=this._addMaterial("mat-"+e.uniqueId,e.getParam("friction"),e.getParam("restitution")),r={mass:e.getParam("mass"),material:s},n=e.getParam("nativeOptions");for(const o in n)Object.prototype.hasOwnProperty.call(n,o)&&(r[o]=n[o]);e.physicsBody=new this.BJSCANNON.Body(r),e.physicsBody.addEventListener("collide",e.onCollide),this.world.addEventListener("preStep",e.beforeStep),this.world.addEventListener("postStep",e.afterStep),e.physicsBody.addShape(t),typeof this.world.addBody=="function"?this.world.addBody(e.physicsBody):this.world.add(e.physicsBody),i&&["force","torque","velocity","angularVelocity"].forEach(function(o){const l=i[o];e.physicsBody[o].set(l.x,l.y,l.z)}),this._processChildMeshes(e)}this._updatePhysicsBodyTransformation(e)}_processChildMeshes(e){const t=e.object.getChildMeshes?e.object.getChildMeshes(!0):[],i=e.object.rotationQuaternion;if(i?i.conjugateToRef(this._tmpQuaternion):this._tmpQuaternion.set(0,0,0,1),t.length){const s=r=>{if(!r.rotationQuaternion)return;const n=r.getPhysicsImpostor();if(n&&n.parent!==e&&r.parent){const l=r.getAbsolutePosition().subtract(r.parent.getAbsolutePosition()),c=r.rotationQuaternion.multiply(this._tmpQuaternion);n.physicsBody&&(this.removePhysicsBody(n),n.physicsBody=null),n.parent=e,n.resetUpdateFlags(),e.physicsBody.addShape(this._createShape(n),new this.BJSCANNON.Vec3(l.x,l.y,l.z),new this.BJSCANNON.Quaternion(c.x,c.y,c.z,c.w)),e.physicsBody.mass+=n.getParam("mass")}r.getChildMeshes(!0).filter(o=>!!o.physicsImpostor).forEach(s)};t.filter(r=>!!r.physicsImpostor).forEach(s)}}removePhysicsBody(e){e.physicsBody.removeEventListener("collide",e.onCollide),this.world.removeEventListener("preStep",e.beforeStep),this.world.removeEventListener("postStep",e.afterStep),this._physicsBodiesToRemoveAfterStep.indexOf(e.physicsBody)===-1&&this._physicsBodiesToRemoveAfterStep.push(e.physicsBody)}generateJoint(e){const t=e.mainImpostor.physicsBody,i=e.connectedImpostor.physicsBody;if(!t||!i)return;let s;const r=e.joint.jointData,n={pivotA:r.mainPivot?new this.BJSCANNON.Vec3().set(r.mainPivot.x,r.mainPivot.y,r.mainPivot.z):null,pivotB:r.connectedPivot?new this.BJSCANNON.Vec3().set(r.connectedPivot.x,r.connectedPivot.y,r.connectedPivot.z):null,axisA:r.mainAxis?new this.BJSCANNON.Vec3().set(r.mainAxis.x,r.mainAxis.y,r.mainAxis.z):null,axisB:r.connectedAxis?new this.BJSCANNON.Vec3().set(r.connectedAxis.x,r.connectedAxis.y,r.connectedAxis.z):null,maxForce:r.nativeParams.maxForce,collideConnected:!!r.collision};switch(e.joint.type){case cn.HingeJoint:case cn.Hinge2Joint:s=new this.BJSCANNON.HingeConstraint(t,i,n);break;case cn.DistanceJoint:s=new this.BJSCANNON.DistanceConstraint(t,i,r.maxDistance||2);break;case cn.SpringJoint:{const o=r;s=new this.BJSCANNON.Spring(t,i,{restLength:o.length,stiffness:o.stiffness,damping:o.damping,localAnchorA:n.pivotA,localAnchorB:n.pivotB});break}case cn.LockJoint:s=new this.BJSCANNON.LockConstraint(t,i,n);break;case cn.PointToPointJoint:case cn.BallAndSocketJoint:default:s=new this.BJSCANNON.PointToPointConstraint(t,n.pivotA,i,n.pivotB,n.maxForce);break}s.collideConnected=!!r.collision,e.joint.physicsJoint=s,e.joint.type!==cn.SpringJoint?this.world.addConstraint(s):(e.joint.jointData.forceApplicationCallback=e.joint.jointData.forceApplicationCallback||function(){s.applyForce()},e.mainImpostor.registerAfterPhysicsStep(e.joint.jointData.forceApplicationCallback))}removeJoint(e){e.joint.type!==cn.SpringJoint?this.world.removeConstraint(e.joint.physicsJoint):e.mainImpostor.unregisterAfterPhysicsStep(e.joint.jointData.forceApplicationCallback)}_addMaterial(e,t,i){let s,r;for(s=0;s<this._physicsMaterials.length;s++)if(r=this._physicsMaterials[s],r.friction===t&&r.restitution===i)return r;const n=new this.BJSCANNON.Material(e);return n.friction=t,n.restitution=i,this._physicsMaterials.push(n),n}_checkWithEpsilon(e){return e<Ii?Ii:e}_createShape(e){const t=e.object;let i;const s=e.getObjectExtents();switch(e.type){case $i.SphereImpostor:{const r=s.x,n=s.y,o=s.z;i=new this.BJSCANNON.Sphere(Math.max(this._checkWithEpsilon(r),this._checkWithEpsilon(n),this._checkWithEpsilon(o))/2);break}case $i.CylinderImpostor:{let r=e.getParam("nativeOptions");r||(r={});const n=r.radiusTop!==void 0?r.radiusTop:this._checkWithEpsilon(s.x)/2,o=r.radiusBottom!==void 0?r.radiusBottom:this._checkWithEpsilon(s.x)/2,l=r.height!==void 0?r.height:this._checkWithEpsilon(s.y),c=r.numSegments!==void 0?r.numSegments:16;i=new this.BJSCANNON.Cylinder(n,o,l,c);const u=new this.BJSCANNON.Quaternion;u.setFromAxisAngle(new this.BJSCANNON.Vec3(1,0,0),-Math.PI/2);const f=new this.BJSCANNON.Vec3(0,0,0);i.transformAllPoints(f,u);break}case $i.BoxImpostor:{const r=s.scale(.5);i=new this.BJSCANNON.Box(new this.BJSCANNON.Vec3(this._checkWithEpsilon(r.x),this._checkWithEpsilon(r.y),this._checkWithEpsilon(r.z)));break}case $i.PlaneImpostor:de.Warn("Attention, PlaneImposter might not behave as you expect. Consider using BoxImposter instead"),i=new this.BJSCANNON.Plane;break;case $i.MeshImpostor:{const r=t.getVerticesData?t.getVerticesData(q.PositionKind):[],n=t.getIndices?t.getIndices():[];if(!r){de.Warn("Tried to create a MeshImpostor for an object without vertices. This will fail.");return}const o=t.position.clone(),l=t.rotation&&t.rotation.clone(),c=t.rotationQuaternion&&t.rotationQuaternion.clone();t.position.copyFromFloats(0,0,0),t.rotation&&t.rotation.copyFromFloats(0,0,0),t.rotationQuaternion&&t.rotationQuaternion.copyFrom(e.getParentsRotation()),t.rotationQuaternion&&t.parent&&t.rotationQuaternion.conjugateInPlace();const u=t.computeWorldMatrix(!0),f=[];let p;for(p=0;p<r.length;p+=3)P.TransformCoordinates(P.FromArray(r,p),u).toArray(f,p);de.Warn("MeshImpostor only collides against spheres."),i=new this.BJSCANNON.Trimesh(f,n),t.position.copyFrom(o),l&&t.rotation&&t.rotation.copyFrom(l),c&&t.rotationQuaternion&&t.rotationQuaternion.copyFrom(c);break}case $i.HeightmapImpostor:{const r=t.position.clone(),n=t.rotation&&t.rotation.clone(),o=t.rotationQuaternion&&t.rotationQuaternion.clone();t.position.copyFromFloats(0,0,0),t.rotation&&t.rotation.copyFromFloats(0,0,0),t.rotationQuaternion&&t.rotationQuaternion.copyFrom(e.getParentsRotation()),t.rotationQuaternion&&t.parent&&t.rotationQuaternion.conjugateInPlace(),t.rotationQuaternion&&t.rotationQuaternion.multiplyInPlace(this._minus90X),i=this._createHeightmap(t),t.position.copyFrom(r),n&&t.rotation&&t.rotation.copyFrom(n),o&&t.rotationQuaternion&&t.rotationQuaternion.copyFrom(o),t.computeWorldMatrix(!0);break}case $i.ParticleImpostor:i=new this.BJSCANNON.Particle;break;case $i.NoImpostor:i=new this.BJSCANNON.Box(new this.BJSCANNON.Vec3(0,0,0));break}return i}_createHeightmap(e,t){let i=e.getVerticesData(q.PositionKind);const s=e.computeWorldMatrix(!0),r=[];let n;for(n=0;n<i.length;n+=3)P.TransformCoordinates(P.FromArray(i,n),s).toArray(r,n);i=r;const o=new Array,l=t||~~(Math.sqrt(i.length/3)-1),c=e.getBoundingInfo(),u=Math.min(c.boundingBox.extendSizeWorld.x,c.boundingBox.extendSizeWorld.y),f=c.boundingBox.extendSizeWorld.z,p=u*2/l;for(let _=0;_<i.length;_=_+3){const d=Math.round(i[_+0]/p+l/2),h=Math.round((i[_+1]/p-l/2)*-1),x=-i[_+2]+f;o[d]||(o[d]=[]),o[d][h]||(o[d][h]=x),o[d][h]=Math.max(x,o[d][h])}for(let _=0;_<=l;++_){if(!o[_]){let d=1;for(;!o[(_+d)%l];)d++;o[_]=o[(_+d)%l].slice()}for(let d=0;d<=l;++d)if(!o[_][d]){let h=1,x;for(;x===void 0;)x=o[_][(d+h++)%l];o[_][d]=x}}const m=new this.BJSCANNON.Heightfield(o,{elementSize:p});return m.minY=f,m}_updatePhysicsBodyTransformation(e){const t=e.object;if(t.computeWorldMatrix&&t.computeWorldMatrix(!0),!t.getBoundingInfo())return;const i=e.getObjectCenter();this._tmpDeltaPosition.copyFrom(t.getAbsolutePivotPoint().subtract(i)),this._tmpDeltaPosition.divideInPlace(e.object.scaling),this._tmpPosition.copyFrom(i);let s=t.rotationQuaternion;if(s){if((e.type===$i.PlaneImpostor||e.type===$i.HeightmapImpostor)&&(s=s.multiply(this._minus90X),e.setDeltaRotation(this._plus90X)),e.type===$i.HeightmapImpostor){const r=t;let n=r.getBoundingInfo();const o=r.rotationQuaternion;r.rotationQuaternion=this._tmpUnityRotation,r.computeWorldMatrix(!0);const l=i.clone();let c=r.getPivotMatrix();c?c=c.clone():c=me.Identity();const u=me.Translation(n.boundingBox.extendSizeWorld.x,0,-n.boundingBox.extendSizeWorld.z);r.setPreTransformMatrix(u),r.computeWorldMatrix(!0),n=r.getBoundingInfo();const f=n.boundingBox.centerWorld.subtract(i).subtract(r.position).negate();this._tmpPosition.copyFromFloats(f.x,f.y-n.boundingBox.extendSizeWorld.y,f.z),this._tmpDeltaPosition.copyFrom(n.boundingBox.centerWorld.subtract(l)),this._tmpDeltaPosition.y+=n.boundingBox.extendSizeWorld.y,r.rotationQuaternion=o,r.setPreTransformMatrix(c),r.computeWorldMatrix(!0)}else e.type===$i.MeshImpostor&&this._tmpDeltaPosition.copyFromFloats(0,0,0);e.setDeltaPosition(this._tmpDeltaPosition),e.physicsBody.position.set(this._tmpPosition.x,this._tmpPosition.y,this._tmpPosition.z),e.physicsBody.quaternion.set(s.x,s.y,s.z,s.w)}}setTransformationFromPhysicsBody(e){if(e.object.position.set(e.physicsBody.position.x,e.physicsBody.position.y,e.physicsBody.position.z),e.object.rotationQuaternion){const t=e.physicsBody.quaternion;e.object.rotationQuaternion.set(t.x,t.y,t.z,t.w)}}setPhysicsBodyTransformation(e,t,i){e.physicsBody.position.set(t.x,t.y,t.z),e.physicsBody.quaternion.set(i.x,i.y,i.z,i.w)}isSupported(){return this.BJSCANNON!==void 0}setLinearVelocity(e,t){e.physicsBody.velocity.set(t.x,t.y,t.z)}setAngularVelocity(e,t){e.physicsBody.angularVelocity.set(t.x,t.y,t.z)}getLinearVelocity(e){const t=e.physicsBody.velocity;return t?new P(t.x,t.y,t.z):null}getAngularVelocity(e){const t=e.physicsBody.angularVelocity;return t?new P(t.x,t.y,t.z):null}setBodyMass(e,t){e.physicsBody.mass=t,e.physicsBody.updateMassProperties()}getBodyMass(e){return e.physicsBody.mass}getBodyFriction(e){return e.physicsBody.material.friction}setBodyFriction(e,t){e.physicsBody.material.friction=t}getBodyRestitution(e){return e.physicsBody.material.restitution}setBodyRestitution(e,t){e.physicsBody.material.restitution=t}sleepBody(e){e.physicsBody.sleep()}wakeUpBody(e){e.physicsBody.wakeUp()}updateDistanceJoint(e,t){e.physicsJoint.distance=t}setMotor(e,t,i,s){s||(e.physicsJoint.enableMotor(),e.physicsJoint.setMotorSpeed(t),i&&this.setLimit(e,i))}setLimit(e,t,i){e.physicsJoint.motorEquation.maxForce=i,e.physicsJoint.motorEquation.minForce=t===void 0?-t:t}syncMeshWithImpostor(e,t){const i=t.physicsBody;e.position.x=i.position.x,e.position.y=i.position.y,e.position.z=i.position.z,e.rotationQuaternion&&(e.rotationQuaternion.x=i.quaternion.x,e.rotationQuaternion.y=i.quaternion.y,e.rotationQuaternion.z=i.quaternion.z,e.rotationQuaternion.w=i.quaternion.w)}getRadius(e){return e.physicsBody.shapes[0].boundingSphereRadius}getBoxSizeToRef(e,t){const i=e.physicsBody.shapes[0];t.x=i.halfExtents.x*2,t.y=i.halfExtents.y*2,t.z=i.halfExtents.z*2}dispose(){}_extendNamespace(){const e=new this.BJSCANNON.Vec3,t=this.BJSCANNON;this.BJSCANNON.World.prototype.step=function(i,s,r){if(r=r||10,s=s||0,s===0)this.internalStep(i),this.time+=i;else{let n=Math.floor((this.time+s)/i)-Math.floor(this.time/i);n=Math.min(n,r)||1;const o=performance.now();for(let p=0;p!==n&&(this.internalStep(i),!(performance.now()-o>i*1e3));p++);this.time+=s;const c=this.time%i/i,u=e,f=this.bodies;for(let p=0;p!==f.length;p++){const m=f[p];m.type!==t.Body.STATIC&&m.sleepState!==t.Body.SLEEPING?(m.position.vsub(m.previousPosition,u),u.scale(c,u),m.position.vadd(u,m.interpolatedPosition)):(m.interpolatedPosition.set(m.position.x,m.position.y,m.position.z),m.interpolatedQuaternion.set(m.quaternion.x,m.quaternion.y,m.quaternion.z,m.quaternion.w))}}}}raycast(e,t){return this._raycastResult.reset(e,t),this.raycastToRef(e,t,this._raycastResult),this._raycastResult}raycastToRef(e,t,i){this._cannonRaycastResult.reset(),this.world.raycastClosest(e,t,{},this._cannonRaycastResult),i.reset(e,t),this._cannonRaycastResult.hasHit&&(i.setHitData({x:this._cannonRaycastResult.hitNormalWorld.x,y:this._cannonRaycastResult.hitNormalWorld.y,z:this._cannonRaycastResult.hitNormalWorld.z},{x:this._cannonRaycastResult.hitPointWorld.x,y:this._cannonRaycastResult.hitPointWorld.y,z:this._cannonRaycastResult.hitPointWorld.z}),i.setHitDistance(this._cannonRaycastResult.distance))}}zie.DefaultPluginFactory=()=>new kH;class Fie{constructor(e=!0,t,i=OIMO){this._useDeltaForWorldStep=e,this.name="OimoJSPlugin",this._fixedTimeStep=1/60,this._tmpImpostorsArray=[],this._tmpPositionVector=P.Zero(),this.BJSOIMO=i,this.world=new this.BJSOIMO.World({iterations:t}),this.world.clear(),this._raycastResult=new jB}getPluginVersion(){return 1}setGravity(e){this.world.gravity.set(e.x,e.y,e.z)}setTimeStep(e){this.world.timeStep=e}getTimeStep(){return this.world.timeStep}executeStep(e,t){t.forEach(function(s){s.beforeStep()}),this.world.timeStep=this._useDeltaForWorldStep?e:this._fixedTimeStep,this.world.step(),t.forEach(s=>{s.afterStep(),this._tmpImpostorsArray[s.uniqueId]=s});let i=this.world.contacts;for(;i!==null;){if(i.touching&&!i.body1.sleeping&&!i.body2.sleeping){i=i.next;continue}const s=this._tmpImpostorsArray[+i.body1.name],r=this._tmpImpostorsArray[+i.body2.name];if(!s||!r){i=i.next;continue}s.onCollide({body:r.physicsBody,point:null,distance:0,impulse:0,normal:null}),r.onCollide({body:s.physicsBody,point:null,distance:0,impulse:0,normal:null}),i=i.next}}applyImpulse(e,t,i){const s=e.physicsBody.mass;e.physicsBody.applyImpulse(i.scale(this.world.invScale),t.scale(this.world.invScale*s))}applyForce(e,t,i){de.Warn("Oimo doesn't support applying force. Using impulse instead."),this.applyImpulse(e,t,i)}generatePhysicsBody(e){if(e.parent){e.physicsBody&&(this.removePhysicsBody(e),e.forceUpdate());return}if(e.isBodyInitRequired()){const t={name:e.uniqueId,config:[e.getParam("mass")||.001,e.getParam("friction"),e.getParam("restitution")],size:[],type:[],pos:[],posShape:[],rot:[],rotShape:[],move:e.getParam("mass")!==0,density:e.getParam("mass"),friction:e.getParam("friction"),restitution:e.getParam("restitution"),world:this.world},i=[e];(o=>{o.getChildMeshes&&o.getChildMeshes().forEach(function(l){l.physicsImpostor&&i.push(l.physicsImpostor)})})(e.object);const r=o=>Math.max(o,Ii),n=new Re;i.forEach(o=>{if(!o.object.rotationQuaternion)return;const l=o.object.rotationQuaternion;n.copyFrom(l),o.object.rotationQuaternion.set(0,0,0,1),o.object.computeWorldMatrix(!0);const c=n.toEulerAngles(),u=o.getObjectExtents(),f=57.29577951308232;if(o===e){const p=e.getObjectCenter();e.object.getAbsolutePivotPoint().subtractToRef(p,this._tmpPositionVector),this._tmpPositionVector.divideInPlace(e.object.scaling),t.pos.push(p.x),t.pos.push(p.y),t.pos.push(p.z),t.posShape.push(0,0,0),t.rotShape.push(0,0,0)}else{const p=o.object.position.clone();t.posShape.push(p.x),t.posShape.push(p.y),t.posShape.push(p.z),t.rotShape.push(c.x*f,c.y*f,c.z*f)}switch(o.object.rotationQuaternion.copyFrom(n),o.type){case $i.ParticleImpostor:de.Warn("No Particle support in OIMO.js. using SphereImpostor instead");case $i.SphereImpostor:{const p=u.x,m=u.y,_=u.z,d=Math.max(r(p),r(m),r(_))/2;t.type.push("sphere"),t.size.push(d),t.size.push(d),t.size.push(d);break}case $i.CylinderImpostor:{const p=r(u.x)/2,m=r(u.y);t.type.push("cylinder"),t.size.push(p),t.size.push(m),t.size.push(m);break}case $i.PlaneImpostor:case $i.BoxImpostor:default:{const p=r(u.x),m=r(u.y),_=r(u.z);t.type.push("box"),t.size.push(p),t.size.push(m),t.size.push(_);break}}o.object.rotationQuaternion=l}),e.physicsBody=this.world.add(t),e.physicsBody.resetQuaternion(n),e.physicsBody.updatePosition(0)}else this._tmpPositionVector.copyFromFloats(0,0,0);e.setDeltaPosition(this._tmpPositionVector)}removePhysicsBody(e){this.world.removeRigidBody(e.physicsBody)}generateJoint(e){const t=e.mainImpostor.physicsBody,i=e.connectedImpostor.physicsBody;if(!t||!i)return;const s=e.joint.jointData,r=s.nativeParams||{};let n;const o={body1:t,body2:i,axe1:r.axe1||(s.mainAxis?s.mainAxis.asArray():null),axe2:r.axe2||(s.connectedAxis?s.connectedAxis.asArray():null),pos1:r.pos1||(s.mainPivot?s.mainPivot.asArray():null),pos2:r.pos2||(s.connectedPivot?s.connectedPivot.asArray():null),min:r.min,max:r.max,collision:r.collision||s.collision,spring:r.spring,world:this.world};switch(e.joint.type){case cn.BallAndSocketJoint:n="jointBall";break;case cn.SpringJoint:{de.Warn("OIMO.js doesn't support Spring Constraint. Simulating using DistanceJoint instead");const l=s;o.min=l.length||o.min,o.max=Math.max(o.min,o.max)}case cn.DistanceJoint:n="jointDistance",o.max=s.maxDistance;break;case cn.PrismaticJoint:n="jointPrisme";break;case cn.SliderJoint:n="jointSlide";break;case cn.WheelJoint:n="jointWheel";break;case cn.HingeJoint:default:n="jointHinge";break}o.type=n,e.joint.physicsJoint=this.world.add(o)}removeJoint(e){try{this.world.removeJoint(e.joint.physicsJoint)}catch(t){de.Warn(t)}}isSupported(){return this.BJSOIMO!==void 0}setTransformationFromPhysicsBody(e){if(!e.physicsBody.sleeping){if(e.physicsBody.shapes.next){let t=e.physicsBody.shapes;for(;t.next;)t=t.next;e.object.position.set(t.position.x,t.position.y,t.position.z)}else{const t=e.physicsBody.getPosition();e.object.position.set(t.x,t.y,t.z)}if(e.object.rotationQuaternion){const t=e.physicsBody.getQuaternion();e.object.rotationQuaternion.set(t.x,t.y,t.z,t.w)}}}setPhysicsBodyTransformation(e,t,i){const s=e.physicsBody;e.physicsBody.shapes.next||(s.position.set(t.x,t.y,t.z),s.orientation.set(i.x,i.y,i.z,i.w),s.syncShapes(),s.awake())}setLinearVelocity(e,t){e.physicsBody.linearVelocity.set(t.x,t.y,t.z)}setAngularVelocity(e,t){e.physicsBody.angularVelocity.set(t.x,t.y,t.z)}getLinearVelocity(e){const t=e.physicsBody.linearVelocity;return t?new P(t.x,t.y,t.z):null}getAngularVelocity(e){const t=e.physicsBody.angularVelocity;return t?new P(t.x,t.y,t.z):null}setBodyMass(e,t){const i=t===0;e.physicsBody.shapes.density=i?1:t,e.physicsBody.setupMass(i?2:1)}getBodyMass(e){return e.physicsBody.shapes.density}getBodyFriction(e){return e.physicsBody.shapes.friction}setBodyFriction(e,t){e.physicsBody.shapes.friction=t}getBodyRestitution(e){return e.physicsBody.shapes.restitution}setBodyRestitution(e,t){e.physicsBody.shapes.restitution=t}sleepBody(e){e.physicsBody.sleep()}wakeUpBody(e){e.physicsBody.awake()}updateDistanceJoint(e,t,i){e.physicsJoint.limitMotor.upperLimit=t,i!==void 0&&(e.physicsJoint.limitMotor.lowerLimit=i)}setMotor(e,t,i,s){i!==void 0?de.Warn("OimoJS plugin currently has unexpected behavior when using setMotor with force parameter"):i=1e6,t*=-1;const r=s?e.physicsJoint.rotationalLimitMotor2:e.physicsJoint.rotationalLimitMotor1||e.physicsJoint.rotationalLimitMotor||e.physicsJoint.limitMotor;r&&r.setMotor(t,i)}setLimit(e,t,i,s){const r=s?e.physicsJoint.rotationalLimitMotor2:e.physicsJoint.rotationalLimitMotor1||e.physicsJoint.rotationalLimitMotor||e.physicsJoint.limitMotor;r&&r.setLimit(t,i===void 0?-t:i)}syncMeshWithImpostor(e,t){const i=t.physicsBody;e.position.x=i.position.x,e.position.y=i.position.y,e.position.z=i.position.z,e.rotationQuaternion&&(e.rotationQuaternion.x=i.orientation.x,e.rotationQuaternion.y=i.orientation.y,e.rotationQuaternion.z=i.orientation.z,e.rotationQuaternion.w=i.orientation.w)}getRadius(e){return e.physicsBody.shapes.radius}getBoxSizeToRef(e,t){const i=e.physicsBody.shapes;t.x=i.halfWidth*2,t.y=i.halfHeight*2,t.z=i.halfDepth*2}dispose(){this.world.clear()}raycast(e,t){return de.Warn("raycast is not currently supported by the Oimo physics plugin"),this._raycastResult.reset(e,t),this._raycastResult}raycastToRef(e,t,i){de.Warn("raycast is not currently supported by the Oimo physics plugin"),i.reset(e,t)}}class u5{constructor(e=!0,t=Ammo,i=null){if(this._useDeltaForWorldStep=e,this.bjsAMMO={},this.name="AmmoJSPlugin",this._timeStep=1/60,this._fixedTimeStep=1/60,this._maxSteps=5,this._tmpQuaternion=new Re,this._tmpContactCallbackResult=!1,this._tmpContactPoint=new P,this._tmpContactNormal=new P,this._tmpVec3=new P,this._tmpMatrix=new me,typeof t=="function"){de.Error("AmmoJS is not ready. Please make sure you await Ammo() before using the plugin.");return}else this.bjsAMMO=t;if(!this.isSupported()){de.Error("AmmoJS is not available. Please make sure you included the js file.");return}this._collisionConfiguration=new this.bjsAMMO.btSoftBodyRigidBodyCollisionConfiguration,this._dispatcher=new this.bjsAMMO.btCollisionDispatcher(this._collisionConfiguration),this._overlappingPairCache=i||new this.bjsAMMO.btDbvtBroadphase,this._solver=new this.bjsAMMO.btSequentialImpulseConstraintSolver,this._softBodySolver=new this.bjsAMMO.btDefaultSoftBodySolver,this.world=new this.bjsAMMO.btSoftRigidDynamicsWorld(this._dispatcher,this._overlappingPairCache,this._solver,this._collisionConfiguration,this._softBodySolver),this._tmpAmmoConcreteContactResultCallback=new this.bjsAMMO.ConcreteContactResultCallback,this._tmpAmmoConcreteContactResultCallback.addSingleResult=s=>{s=this.bjsAMMO.wrapPointer(s,this.bjsAMMO.btManifoldPoint);const r=s.getPositionWorldOnA(),n=s.m_normalWorldOnB;this._tmpContactPoint.x=r.x(),this._tmpContactPoint.y=r.y(),this._tmpContactPoint.z=r.z(),this._tmpContactNormal.x=n.x(),this._tmpContactNormal.y=n.y(),this._tmpContactNormal.z=n.z(),this._tmpContactImpulse=s.getAppliedImpulse(),this._tmpContactDistance=s.getDistance(),this._tmpContactCallbackResult=!0},this._raycastResult=new jB,this._tmpAmmoTransform=new this.bjsAMMO.btTransform,this._tmpAmmoTransform.setIdentity(),this._tmpAmmoQuaternion=new this.bjsAMMO.btQuaternion(0,0,0,1),this._tmpAmmoVectorA=new this.bjsAMMO.btVector3(0,0,0),this._tmpAmmoVectorB=new this.bjsAMMO.btVector3(0,0,0),this._tmpAmmoVectorC=new this.bjsAMMO.btVector3(0,0,0),this._tmpAmmoVectorD=new this.bjsAMMO.btVector3(0,0,0)}getPluginVersion(){return 1}setGravity(e){this._tmpAmmoVectorA.setValue(e.x,e.y,e.z),this.world.setGravity(this._tmpAmmoVectorA),this.world.getWorldInfo().set_m_gravity(this._tmpAmmoVectorA)}setTimeStep(e){this._timeStep=e}setFixedTimeStep(e){this._fixedTimeStep=e}setMaxSteps(e){this._maxSteps=e}getTimeStep(){return this._timeStep}_isImpostorInContact(e){return this._tmpContactCallbackResult=!1,this.world.contactTest(e.physicsBody,this._tmpAmmoConcreteContactResultCallback),this._tmpContactCallbackResult}_isImpostorPairInContact(e,t){return this._tmpContactCallbackResult=!1,this.world.contactPairTest(e.physicsBody,t.physicsBody,this._tmpAmmoConcreteContactResultCallback),this._tmpContactCallbackResult}_stepSimulation(e=1/60,t=10,i=1/60){if(t==0)this.world.stepSimulation(e,0);else for(;t>0&&e>0;)e-i<i?(this.world.stepSimulation(e,0),e=0):(e-=i,this.world.stepSimulation(i,0)),t--}executeStep(e,t){for(const i of t)i.soft||i.beforeStep();this._stepSimulation(this._useDeltaForWorldStep?e:this._timeStep,this._maxSteps,this._fixedTimeStep);for(const i of t)if(i.soft?this._afterSoftStep(i):i.afterStep(),i._onPhysicsCollideCallbacks.length>0&&this._isImpostorInContact(i))for(const s of i._onPhysicsCollideCallbacks)for(const r of s.otherImpostors)(i.physicsBody.isActive()||r.physicsBody.isActive())&&this._isImpostorPairInContact(i,r)&&(i.onCollide({body:r.physicsBody,point:this._tmpContactPoint,distance:this._tmpContactDistance,impulse:this._tmpContactImpulse,normal:this._tmpContactNormal}),r.onCollide({body:i.physicsBody,point:this._tmpContactPoint,distance:this._tmpContactDistance,impulse:this._tmpContactImpulse,normal:this._tmpContactNormal}))}_afterSoftStep(e){e.type===$i.RopeImpostor?this._ropeStep(e):this._softbodyOrClothStep(e)}_ropeStep(e){const t=e.physicsBody.get_m_nodes(),i=t.size();let s,r,n,o,l;const c=new Array;for(let p=0;p<i;p++)s=t.at(p),r=s.get_m_x(),n=r.x(),o=r.y(),l=r.z(),c.push(new P(n,o,l));const u=e.object,f=e.getParam("shape");e._isFromLine?e.object=ta("lines",{points:c,instance:u}):e.object=tB("ext",{shape:f,path:c,instance:u})}_softbodyOrClothStep(e){const t=e.type===$i.ClothImpostor?1:-1,i=e.object;let s=i.getVerticesData(q.PositionKind);s||(s=[]);let r=i.getVerticesData(q.NormalKind);r||(r=[]);const n=s.length/3,o=e.physicsBody.get_m_nodes();let l,c,u,f,p,m,_,d;for(let x=0;x<n;x++){l=o.at(x),c=l.get_m_x(),u=c.x(),f=c.y(),p=c.z()*t;const A=l.get_m_n();m=A.x(),_=A.y(),d=A.z()*t,s[3*x]=u,s[3*x+1]=f,s[3*x+2]=p,r[3*x]=m,r[3*x+1]=_,r[3*x+2]=d}const h=new wt;h.positions=s,h.normals=r,h.uvs=i.getVerticesData(q.UVKind),h.colors=i.getVerticesData(q.ColorKind),i&&i.getIndices&&(h.indices=i.getIndices()),h.applyToMesh(i)}applyImpulse(e,t,i){if(e.soft)de.Warn("Cannot be applied to a soft body");else{e.physicsBody.activate();const s=this._tmpAmmoVectorA,r=this._tmpAmmoVectorB;e.object&&e.object.getWorldMatrix&&i.subtractInPlace(e.object.getWorldMatrix().getTranslation()),s.setValue(i.x,i.y,i.z),r.setValue(t.x,t.y,t.z),e.physicsBody.applyImpulse(r,s)}}applyForce(e,t,i){if(e.soft)de.Warn("Cannot be applied to a soft body");else{e.physicsBody.activate();const s=this._tmpAmmoVectorA,r=this._tmpAmmoVectorB;if(e.object&&e.object.getWorldMatrix){const n=e.object.getWorldMatrix().getTranslation();s.setValue(i.x-n.x,i.y-n.y,i.z-n.z)}else s.setValue(i.x,i.y,i.z);r.setValue(t.x,t.y,t.z),e.physicsBody.applyForce(r,s)}}generatePhysicsBody(e){if(e._pluginData.toDispose=[],e.parent){e.physicsBody&&(this.removePhysicsBody(e),e.forceUpdate());return}if(e.isBodyInitRequired()){const t=this._createShape(e),i=e.getParam("mass");if(e._pluginData.mass=i,e.soft)t.get_m_cfg().set_collisions(17),t.get_m_cfg().set_kDP(e.getParam("damping")),this.bjsAMMO.castObject(t,this.bjsAMMO.btCollisionObject).getCollisionShape().setMargin(e.getParam("margin")),t.setActivationState(u5._DISABLE_DEACTIVATION_FLAG),this.world.addSoftBody(t,1,-1),e.physicsBody=t,e._pluginData.toDispose.push(t),this.setBodyPressure(e,0),e.type===$i.SoftbodyImpostor&&this.setBodyPressure(e,e.getParam("pressure")),this.setBodyStiffness(e,e.getParam("stiffness")),this.setBodyVelocityIterations(e,e.getParam("velocityIterations")),this.setBodyPositionIterations(e,e.getParam("positionIterations"));else{const s=new this.bjsAMMO.btVector3(0,0,0),r=new this.bjsAMMO.btTransform;e.object.computeWorldMatrix(!0),r.setIdentity(),i!==0&&t.calculateLocalInertia(i,s),this._tmpAmmoVectorA.setValue(e.object.position.x,e.object.position.y,e.object.position.z),this._tmpAmmoQuaternion.setValue(e.object.rotationQuaternion.x,e.object.rotationQuaternion.y,e.object.rotationQuaternion.z,e.object.rotationQuaternion.w),r.setOrigin(this._tmpAmmoVectorA),r.setRotation(this._tmpAmmoQuaternion);const n=new this.bjsAMMO.btDefaultMotionState(r),o=new this.bjsAMMO.btRigidBodyConstructionInfo(i,n,t,s),l=new this.bjsAMMO.btRigidBody(o);if(i===0&&(l.setCollisionFlags(l.getCollisionFlags()|u5._KINEMATIC_FLAG),l.setActivationState(u5._DISABLE_DEACTIVATION_FLAG)),e.type==$i.NoImpostor&&!t.getChildShape&&l.setCollisionFlags(l.getCollisionFlags()|u5._DISABLE_COLLISION_FLAG),e.type!==$i.MeshImpostor&&e.type!==$i.NoImpostor){const f=e.object.getBoundingInfo();this._tmpVec3.copyFrom(e.object.getAbsolutePosition()),this._tmpVec3.subtractInPlace(f.boundingBox.centerWorld),this._tmpVec3.x/=e.object.scaling.x,this._tmpVec3.y/=e.object.scaling.y,this._tmpVec3.z/=e.object.scaling.z,e.setDeltaPosition(this._tmpVec3)}const c=e.getParam("group"),u=e.getParam("mask");c&&u?this.world.addRigidBody(l,c,u):this.world.addRigidBody(l),e.physicsBody=l,e._pluginData.toDispose=e._pluginData.toDispose.concat([l,o,n,r,s,t])}this.setBodyRestitution(e,e.getParam("restitution")),this.setBodyFriction(e,e.getParam("friction"))}}removePhysicsBody(e){this.world&&(e.soft?this.world.removeSoftBody(e.physicsBody):this.world.removeRigidBody(e.physicsBody),e._pluginData&&(e._pluginData.toDispose.forEach(t=>{this.bjsAMMO.destroy(t)}),e._pluginData.toDispose=[]))}generateJoint(e){const t=e.mainImpostor.physicsBody,i=e.connectedImpostor.physicsBody;if(!t||!i||e.joint.physicsJoint)return;const s=e.joint.jointData;s.mainPivot||(s.mainPivot=new P(0,0,0)),s.connectedPivot||(s.connectedPivot=new P(0,0,0));let r;switch(e.joint.type){case cn.DistanceJoint:{const n=s.maxDistance;n&&(s.mainPivot=new P(0,-n/2,0),s.connectedPivot=new P(0,n/2,0));const o=this._tmpAmmoVectorA;o.setValue(s.mainPivot.x,s.mainPivot.y,s.mainPivot.z);const l=this._tmpAmmoVectorB;l.setValue(s.connectedPivot.x,s.connectedPivot.y,s.connectedPivot.z),r=new this.bjsAMMO.btPoint2PointConstraint(t,i,o,l);break}case cn.HingeJoint:{s.mainAxis||(s.mainAxis=new P(0,0,0)),s.connectedAxis||(s.connectedAxis=new P(0,0,0));const n=this._tmpAmmoVectorA;n.setValue(s.mainPivot.x,s.mainPivot.y,s.mainPivot.z);const o=this._tmpAmmoVectorB;o.setValue(s.connectedPivot.x,s.connectedPivot.y,s.connectedPivot.z);const l=this._tmpAmmoVectorC;l.setValue(s.mainAxis.x,s.mainAxis.y,s.mainAxis.z);const c=this._tmpAmmoVectorD;c.setValue(s.connectedAxis.x,s.connectedAxis.y,s.connectedAxis.z),r=new this.bjsAMMO.btHingeConstraint(t,i,n,o,l,c);break}case cn.BallAndSocketJoint:{const n=this._tmpAmmoVectorA;n.setValue(s.mainPivot.x,s.mainPivot.y,s.mainPivot.z);const o=this._tmpAmmoVectorB;o.setValue(s.connectedPivot.x,s.connectedPivot.y,s.connectedPivot.z),r=new this.bjsAMMO.btPoint2PointConstraint(t,i,n,o);break}default:{de.Warn("JointType not currently supported by the Ammo plugin, falling back to PhysicsJoint.BallAndSocketJoint");const n=this._tmpAmmoVectorA;n.setValue(s.mainPivot.x,s.mainPivot.y,s.mainPivot.z);const o=this._tmpAmmoVectorB;o.setValue(s.connectedPivot.x,s.connectedPivot.y,s.connectedPivot.z),r=new this.bjsAMMO.btPoint2PointConstraint(t,i,n,o);break}}this.world.addConstraint(r,!e.joint.jointData.collision),e.joint.physicsJoint=r}removeJoint(e){this.world&&this.world.removeConstraint(e.joint.physicsJoint),this.bjsAMMO.destroy(e.joint.physicsJoint)}_addMeshVerts(e,t,i){let s=0;if(i&&i.getIndices&&i.getWorldMatrix&&i.getChildMeshes){let r=i.getIndices();r||(r=[]);let n=i.getVerticesData(q.PositionKind);n||(n=[]);let o;if(t&&t!==i){let c;t.rotationQuaternion?c=t.rotationQuaternion:t.rotation?c=Re.FromEulerAngles(t.rotation.x,t.rotation.y,t.rotation.z):c=Re.Identity(),me.Compose(P.One(),c,t.position).invertToRef(this._tmpMatrix),o=i.computeWorldMatrix(!1).multiply(this._tmpMatrix)}else me.ScalingToRef(i.scaling.x,i.scaling.y,i.scaling.z,this._tmpMatrix),o=this._tmpMatrix;const l=r.length/3;for(let c=0;c<l;c++){const u=[];for(let f=0;f<3;f++){let p=new P(n[r[c*3+f]*3+0],n[r[c*3+f]*3+1],n[r[c*3+f]*3+2]);p=P.TransformCoordinates(p,o);let m;f==0?m=this._tmpAmmoVectorA:f==1?m=this._tmpAmmoVectorB:m=this._tmpAmmoVectorC,m.setValue(p.x,p.y,p.z),u.push(m)}e.addTriangle(u[0],u[1],u[2]),s++}i.getChildMeshes().forEach(c=>{s+=this._addMeshVerts(e,t,c)})}return s}_softVertexData(e){const t=e.object;if(t&&t.getIndices&&t.getWorldMatrix&&t.getChildMeshes){t.getIndices();let i=t.getVerticesData(q.PositionKind);i||(i=[]);let s=t.getVerticesData(q.NormalKind);s||(s=[]),t.computeWorldMatrix(!1);const r=[],n=[];for(let l=0;l<i.length;l+=3){let c=new P(i[l],i[l+1],i[l+2]),u=new P(s[l],s[l+1],s[l+2]);c=P.TransformCoordinates(c,t.getWorldMatrix()),u=P.TransformNormal(u,t.getWorldMatrix()),r.push(c.x,c.y,c.z),n.push(u.x,u.y,u.z)}const o=new wt;return o.positions=r,o.normals=n,o.uvs=t.getVerticesData(q.UVKind),o.colors=t.getVerticesData(q.ColorKind),t&&t.getIndices&&(o.indices=t.getIndices()),o.applyToMesh(t),t.position=P.Zero(),t.rotationQuaternion=null,t.rotation=P.Zero(),t.computeWorldMatrix(!0),o}return wt.ExtractFromMesh(t)}_createSoftbody(e){const t=e.object;if(t&&t.getIndices){let i=t.getIndices();i||(i=[]);const s=this._softVertexData(e),r=s.positions,n=s.normals;if(r===null||n===null)return new this.bjsAMMO.btCompoundShape;{const o=[],l=[];for(let _=0;_<r.length;_+=3){const d=new P(r[_],r[_+1],r[_+2]),h=new P(n[_],n[_+1],n[_+2]);o.push(d.x,d.y,-d.z),l.push(h.x,h.y,-h.z)}const c=new this.bjsAMMO.btSoftBodyHelpers().CreateFromTriMesh(this.world.getWorldInfo(),o,t.getIndices(),i.length/3,!0),u=r.length/3,f=c.get_m_nodes();let p,m;for(let _=0;_<u;_++)p=f.at(_),m=p.get_m_n(),m.setX(l[3*_]),m.setY(l[3*_+1]),m.setZ(l[3*_+2]);return c}}}_createCloth(e){const t=e.object;if(t&&t.getIndices){t.getIndices();const i=this._softVertexData(e),s=i.positions,r=i.normals;if(s===null||r===null)return new this.bjsAMMO.btCompoundShape;{const n=s.length,o=Math.sqrt(n/3);e.segments=o;const l=o-1;return this._tmpAmmoVectorA.setValue(s[0],s[1],s[2]),this._tmpAmmoVectorB.setValue(s[3*l],s[3*l+1],s[3*l+2]),this._tmpAmmoVectorD.setValue(s[n-3],s[n-2],s[n-1]),this._tmpAmmoVectorC.setValue(s[n-3-3*l],s[n-2-3*l],s[n-1-3*l]),new this.bjsAMMO.btSoftBodyHelpers().CreatePatch(this.world.getWorldInfo(),this._tmpAmmoVectorA,this._tmpAmmoVectorB,this._tmpAmmoVectorC,this._tmpAmmoVectorD,o,o,e.getParam("fixedPoints"),!0)}}}_createRope(e){let t,i;const s=this._softVertexData(e),r=s.positions,n=s.normals;if(r===null||n===null)return new this.bjsAMMO.btCompoundShape;s.applyToMesh(e.object,!0),e._isFromLine=!0;const o=n.map(p=>p*p),l=(p,m)=>p+m;if(o.reduce(l)===0)t=r.length,i=t/3-1,this._tmpAmmoVectorA.setValue(r[0],r[1],r[2]),this._tmpAmmoVectorB.setValue(r[t-3],r[t-2],r[t-1]);else{e._isFromLine=!1;const p=e.getParam("path");if(e.getParam("shape")===null)return de.Warn("No shape available for extruded mesh"),new this.bjsAMMO.btCompoundShape;t=p.length,i=t-1,this._tmpAmmoVectorA.setValue(p[0].x,p[0].y,p[0].z),this._tmpAmmoVectorB.setValue(p[t-1].x,p[t-1].y,p[t-1].z)}e.segments=i;let u=e.getParam("fixedPoints");u=u>3?3:u;const f=new this.bjsAMMO.btSoftBodyHelpers().CreateRope(this.world.getWorldInfo(),this._tmpAmmoVectorA,this._tmpAmmoVectorB,i-1,u);return f.get_m_cfg().set_collisions(17),f}_createCustom(e){let t=null;return this.onCreateCustomShape&&(t=this.onCreateCustomShape(e)),t==null&&(t=new this.bjsAMMO.btCompoundShape),t}_addHullVerts(e,t,i){let s=0;if(i&&i.getIndices&&i.getWorldMatrix&&i.getChildMeshes){let r=i.getIndices();r||(r=[]);let n=i.getVerticesData(q.PositionKind);n||(n=[]),i.computeWorldMatrix(!1);const o=r.length/3;for(let l=0;l<o;l++){const c=[];for(let u=0;u<3;u++){let f=new P(n[r[l*3+u]*3+0],n[r[l*3+u]*3+1],n[r[l*3+u]*3+2]);me.ScalingToRef(i.scaling.x,i.scaling.y,i.scaling.z,this._tmpMatrix),f=P.TransformCoordinates(f,this._tmpMatrix);let p;u==0?p=this._tmpAmmoVectorA:u==1?p=this._tmpAmmoVectorB:p=this._tmpAmmoVectorC,p.setValue(f.x,f.y,f.z),c.push(p)}e.addPoint(c[0],!0),e.addPoint(c[1],!0),e.addPoint(c[2],!0),s++}i.getChildMeshes().forEach(l=>{s+=this._addHullVerts(e,t,l)})}return s}_createShape(e,t=!1){const i=e.object;let s;const r=e.getObjectExtents();if(!t){const n=e.object.getChildMeshes?e.object.getChildMeshes(!0):[];s=new this.bjsAMMO.btCompoundShape;let o=0;if(n.forEach(l=>{const c=l.getPhysicsImpostor();if(c){if(c.type==$i.MeshImpostor)throw"A child MeshImpostor is not supported. Only primitive impostors are supported as children (eg. box or sphere)";const u=this._createShape(c),f=l.parent.getWorldMatrix().clone(),p=new P;f.decompose(p),this._tmpAmmoTransform.getOrigin().setValue(l.position.x*p.x,l.position.y*p.y,l.position.z*p.z),this._tmpAmmoQuaternion.setValue(l.rotationQuaternion.x,l.rotationQuaternion.y,l.rotationQuaternion.z,l.rotationQuaternion.w),this._tmpAmmoTransform.setRotation(this._tmpAmmoQuaternion),s.addChildShape(this._tmpAmmoTransform,u),c.dispose(),o++}}),o>0){if(e.type!=$i.NoImpostor){const l=this._createShape(e,!0);l&&(this._tmpAmmoTransform.getOrigin().setValue(0,0,0),this._tmpAmmoQuaternion.setValue(0,0,0,1),this._tmpAmmoTransform.setRotation(this._tmpAmmoQuaternion),s.addChildShape(this._tmpAmmoTransform,l))}return s}else this.bjsAMMO.destroy(s),s=null}switch(e.type){case $i.SphereImpostor:if(Lr(r.x,r.y,1e-4)&&Lr(r.x,r.z,1e-4))s=new this.bjsAMMO.btSphereShape(r.x/2);else{this._tmpAmmoVectorA.setValue(0,0,0);const n=[this._tmpAmmoVectorA],o=[1];s=new this.bjsAMMO.btMultiSphereShape(n,o,1),this._tmpAmmoVectorA.setValue(r.x/2,r.y/2,r.z/2),s.setLocalScaling(this._tmpAmmoVectorA)}break;case $i.CapsuleImpostor:{const n=r.x/2;s=new this.bjsAMMO.btCapsuleShape(n,r.y-n*2)}break;case $i.CylinderImpostor:this._tmpAmmoVectorA.setValue(r.x/2,r.y/2,r.z/2),s=new this.bjsAMMO.btCylinderShape(this._tmpAmmoVectorA);break;case $i.PlaneImpostor:case $i.BoxImpostor:this._tmpAmmoVectorA.setValue(r.x/2,r.y/2,r.z/2),s=new this.bjsAMMO.btBoxShape(this._tmpAmmoVectorA);break;case $i.MeshImpostor:if(e.getParam("mass")==0){if(this.onCreateCustomMeshImpostor)s=this.onCreateCustomMeshImpostor(e);else{const n=new this.bjsAMMO.btTriangleMesh;e._pluginData.toDispose.push(n),this._addMeshVerts(n,i,i)==0?s=new this.bjsAMMO.btCompoundShape:s=new this.bjsAMMO.btBvhTriangleMeshShape(n)}break}case $i.ConvexHullImpostor:{if(this.onCreateCustomConvexHullImpostor)s=this.onCreateCustomConvexHullImpostor(e);else{const n=new this.bjsAMMO.btConvexHullShape;this._addHullVerts(n,i,i)==0?(e._pluginData.toDispose.push(n),s=new this.bjsAMMO.btCompoundShape):s=n}break}case $i.NoImpostor:s=new this.bjsAMMO.btSphereShape(r.x/2);break;case $i.CustomImpostor:s=this._createCustom(e);break;case $i.SoftbodyImpostor:s=this._createSoftbody(e);break;case $i.ClothImpostor:s=this._createCloth(e);break;case $i.RopeImpostor:s=this._createRope(e);break;default:de.Warn("The impostor type is not currently supported by the ammo plugin.");break}return s}setTransformationFromPhysicsBody(e){e.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform),e.object.position.set(this._tmpAmmoTransform.getOrigin().x(),this._tmpAmmoTransform.getOrigin().y(),this._tmpAmmoTransform.getOrigin().z()),e.object.rotationQuaternion?e.object.rotationQuaternion.set(this._tmpAmmoTransform.getRotation().x(),this._tmpAmmoTransform.getRotation().y(),this._tmpAmmoTransform.getRotation().z(),this._tmpAmmoTransform.getRotation().w()):e.object.rotation&&(this._tmpQuaternion.set(this._tmpAmmoTransform.getRotation().x(),this._tmpAmmoTransform.getRotation().y(),this._tmpAmmoTransform.getRotation().z(),this._tmpAmmoTransform.getRotation().w()),this._tmpQuaternion.toEulerAnglesToRef(e.object.rotation))}setPhysicsBodyTransformation(e,t,i){const s=e.physicsBody.getWorldTransform();if(Math.abs(s.getOrigin().x()-t.x)>Ii||Math.abs(s.getOrigin().y()-t.y)>Ii||Math.abs(s.getOrigin().z()-t.z)>Ii||Math.abs(s.getRotation().x()-i.x)>Ii||Math.abs(s.getRotation().y()-i.y)>Ii||Math.abs(s.getRotation().z()-i.z)>Ii||Math.abs(s.getRotation().w()-i.w)>Ii)if(this._tmpAmmoVectorA.setValue(t.x,t.y,t.z),s.setOrigin(this._tmpAmmoVectorA),this._tmpAmmoQuaternion.setValue(i.x,i.y,i.z,i.w),s.setRotation(this._tmpAmmoQuaternion),e.physicsBody.setWorldTransform(s),e.mass==0){const r=e.physicsBody.getMotionState();r&&r.setWorldTransform(s)}else e.physicsBody.activate()}isSupported(){return this.bjsAMMO!==void 0}setLinearVelocity(e,t){this._tmpAmmoVectorA.setValue(t.x,t.y,t.z),e.soft?e.physicsBody.linearVelocity(this._tmpAmmoVectorA):e.physicsBody.setLinearVelocity(this._tmpAmmoVectorA)}setAngularVelocity(e,t){this._tmpAmmoVectorA.setValue(t.x,t.y,t.z),e.soft?e.physicsBody.angularVelocity(this._tmpAmmoVectorA):e.physicsBody.setAngularVelocity(this._tmpAmmoVectorA)}getLinearVelocity(e){let t;if(e.soft?t=e.physicsBody.linearVelocity():t=e.physicsBody.getLinearVelocity(),!t)return null;const i=new P(t.x(),t.y(),t.z());return this.bjsAMMO.destroy(t),i}getAngularVelocity(e){let t;if(e.soft?t=e.physicsBody.angularVelocity():t=e.physicsBody.getAngularVelocity(),!t)return null;const i=new P(t.x(),t.y(),t.z());return this.bjsAMMO.destroy(t),i}setBodyMass(e,t){e.soft?e.physicsBody.setTotalMass(t,!1):e.physicsBody.setMassProps(t),e._pluginData.mass=t}getBodyMass(e){return e._pluginData.mass||0}getBodyFriction(e){return e._pluginData.friction||0}setBodyFriction(e,t){e.soft?e.physicsBody.get_m_cfg().set_kDF(t):e.physicsBody.setFriction(t),e._pluginData.friction=t}getBodyRestitution(e){return e._pluginData.restitution||0}setBodyRestitution(e,t){e.physicsBody.setRestitution(t),e._pluginData.restitution=t}getBodyPressure(e){return e.soft?e._pluginData.pressure||0:(de.Warn("Pressure is not a property of a rigid body"),0)}setBodyPressure(e,t){e.soft?e.type===$i.SoftbodyImpostor?(e.physicsBody.get_m_cfg().set_kPR(t),e._pluginData.pressure=t):(e.physicsBody.get_m_cfg().set_kPR(0),e._pluginData.pressure=0):de.Warn("Pressure can only be applied to a softbody")}getBodyStiffness(e){return e.soft?e._pluginData.stiffness||0:(de.Warn("Stiffness is not a property of a rigid body"),0)}setBodyStiffness(e,t){e.soft?(t=t<0?0:t,t=t>1?1:t,e.physicsBody.get_m_materials().at(0).set_m_kLST(t),e._pluginData.stiffness=t):de.Warn("Stiffness cannot be applied to a rigid body")}getBodyVelocityIterations(e){return e.soft?e._pluginData.velocityIterations||0:(de.Warn("Velocity iterations is not a property of a rigid body"),0)}setBodyVelocityIterations(e,t){e.soft?(t=t<0?0:t,e.physicsBody.get_m_cfg().set_viterations(t),e._pluginData.velocityIterations=t):de.Warn("Velocity iterations cannot be applied to a rigid body")}getBodyPositionIterations(e){return e.soft?e._pluginData.positionIterations||0:(de.Warn("Position iterations is not a property of a rigid body"),0)}setBodyPositionIterations(e,t){e.soft?(t=t<0?0:t,e.physicsBody.get_m_cfg().set_piterations(t),e._pluginData.positionIterations=t):de.Warn("Position iterations cannot be applied to a rigid body")}appendAnchor(e,t,i,s,r=1,n=!1){const o=e.segments,l=Math.round((o-1)*i),c=Math.round((o-1)*s),u=o-1-c,f=l+o*u;e.physicsBody.appendAnchor(f,t.physicsBody,n,r)}appendHook(e,t,i,s=1,r=!1){const n=Math.round(e.segments*i);e.physicsBody.appendAnchor(n,t.physicsBody,r,s)}sleepBody(e){e.physicsBody.forceActivationState(0)}wakeUpBody(e){e.physicsBody.activate()}updateDistanceJoint(){de.Warn("updateDistanceJoint is not currently supported by the Ammo physics plugin")}setMotor(e,t,i){e.physicsJoint.enableAngularMotor(!0,t,i)}setLimit(){de.Warn("setLimit is not currently supported by the Ammo physics plugin")}syncMeshWithImpostor(e,t){t.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform),e.position.x=this._tmpAmmoTransform.getOrigin().x(),e.position.y=this._tmpAmmoTransform.getOrigin().y(),e.position.z=this._tmpAmmoTransform.getOrigin().z(),e.rotationQuaternion&&(e.rotationQuaternion.x=this._tmpAmmoTransform.getRotation().x(),e.rotationQuaternion.y=this._tmpAmmoTransform.getRotation().y(),e.rotationQuaternion.z=this._tmpAmmoTransform.getRotation().z(),e.rotationQuaternion.w=this._tmpAmmoTransform.getRotation().w())}getRadius(e){return e.getObjectExtents().x/2}getBoxSizeToRef(e,t){const i=e.getObjectExtents();t.x=i.x,t.y=i.y,t.z=i.z}dispose(){this.bjsAMMO.destroy(this.world),this.bjsAMMO.destroy(this._softBodySolver),this.bjsAMMO.destroy(this._solver),this.bjsAMMO.destroy(this._overlappingPairCache),this.bjsAMMO.destroy(this._dispatcher),this.bjsAMMO.destroy(this._collisionConfiguration),this.bjsAMMO.destroy(this._tmpAmmoVectorA),this.bjsAMMO.destroy(this._tmpAmmoVectorB),this.bjsAMMO.destroy(this._tmpAmmoVectorC),this.bjsAMMO.destroy(this._tmpAmmoVectorD),this.bjsAMMO.destroy(this._tmpAmmoTransform),this.bjsAMMO.destroy(this._tmpAmmoQuaternion),this.bjsAMMO.destroy(this._tmpAmmoConcreteContactResultCallback),this.world=null}raycast(e,t){return this.raycastToRef(e,t,this._raycastResult),this._raycastResult}raycastToRef(e,t,i){this._tmpAmmoVectorRCA=new this.bjsAMMO.btVector3(e.x,e.y,e.z),this._tmpAmmoVectorRCB=new this.bjsAMMO.btVector3(t.x,t.y,t.z);const s=new this.bjsAMMO.ClosestRayResultCallback(this._tmpAmmoVectorRCA,this._tmpAmmoVectorRCB);this.world.rayTest(this._tmpAmmoVectorRCA,this._tmpAmmoVectorRCB,s),i.reset(e,t),s.hasHit()&&(i.setHitData({x:s.get_m_hitNormalWorld().x(),y:s.get_m_hitNormalWorld().y(),z:s.get_m_hitNormalWorld().z()},{x:s.get_m_hitPointWorld().x(),y:s.get_m_hitPointWorld().y(),z:s.get_m_hitPointWorld().z()}),i.calculateHitDistance()),this.bjsAMMO.destroy(s),this.bjsAMMO.destroy(this._tmpAmmoVectorRCA),this.bjsAMMO.destroy(this._tmpAmmoVectorRCB)}}u5._DISABLE_COLLISION_FLAG=4,u5._KINEMATIC_FLAG=2,u5._DISABLE_DEACTIVATION_FLAG=4,ui.prototype.removeReflectionProbe=function(a){if(!this.reflectionProbes)return-1;const e=this.reflectionProbes.indexOf(a);return e!==-1&&this.reflectionProbes.splice(e,1),e},ui.prototype.addReflectionProbe=function(a){this.reflectionProbes||(this.reflectionProbes=[]),this.reflectionProbes.push(a)};class DL{constructor(e,t,i,s=!0,r=!1,n=!1){if(this.name=e,this._viewMatrix=me.Identity(),this._target=P.Zero(),this._add=P.Zero(),this._invertYAxis=!1,this.position=P.Zero(),this.metadata=null,this._parentContainer=null,this._scene=i,i.getEngine().supportsUniformBuffers){this._sceneUBOs=[];for(let u=0;u<6;++u)this._sceneUBOs.push(i.createSceneUniformBuffer(`Scene for Reflection Probe (name "${e}") face #${u}`))}this._scene.reflectionProbes||(this._scene.reflectionProbes=[]),this._scene.reflectionProbes.push(this);let o=0;if(r){const u=this._scene.getEngine().getCaps();u.textureHalfFloatRender?o=2:u.textureFloatRender&&(o=1)}this._renderTargetTexture=new Ir(e,t,i,s,!0,o,!0),this._renderTargetTexture.gammaSpace=!n,this._renderTargetTexture.invertZ=i.useRightHandedSystem;const l=i.getEngine().useReverseDepthBuffer;this._renderTargetTexture.onBeforeRenderObservable.add(u=>{switch(this._sceneUBOs&&(i.setSceneUniformBuffer(this._sceneUBOs[u]),i.getSceneUniformBuffer().unbindEffect()),u){case 0:this._add.copyFromFloats(1,0,0);break;case 1:this._add.copyFromFloats(-1,0,0);break;case 2:this._add.copyFromFloats(0,this._invertYAxis?1:-1,0);break;case 3:this._add.copyFromFloats(0,this._invertYAxis?-1:1,0);break;case 4:this._add.copyFromFloats(0,0,i.useRightHandedSystem?-1:1);break;case 5:this._add.copyFromFloats(0,0,i.useRightHandedSystem?1:-1);break}this._attachedMesh&&this.position.copyFrom(this._attachedMesh.getAbsolutePosition()),this.position.addToRef(this._add,this._target);const f=i.useRightHandedSystem?me.LookAtRHToRef:me.LookAtLHToRef,p=i.useRightHandedSystem?me.PerspectiveFovRH:me.PerspectiveFovLH;f(this.position,this._target,P.Up(),this._viewMatrix),i.activeCamera&&(this._projectionMatrix=p(Math.PI/2,1,l?i.activeCamera.maxZ:i.activeCamera.minZ,l?i.activeCamera.minZ:i.activeCamera.maxZ,this._scene.getEngine().isNDCHalfZRange),i.setTransformMatrix(this._viewMatrix,this._projectionMatrix),i.activeCamera.isRigCamera&&!this._renderTargetTexture.activeCamera&&(this._renderTargetTexture.activeCamera=i.activeCamera.rigParent||null)),i._forcedViewPosition=this.position});let c;this._renderTargetTexture.onBeforeBindObservable.add(()=>{var u,f;this._currentSceneUBO=i.getSceneUniformBuffer(),(f=(u=i.getEngine())._debugPushGroup)==null||f.call(u,`reflection probe generation for ${e}`,1),c=this._scene.imageProcessingConfiguration.applyByPostProcess,n&&(i.imageProcessingConfiguration.applyByPostProcess=!0)}),this._renderTargetTexture.onAfterUnbindObservable.add(()=>{var u,f;i.imageProcessingConfiguration.applyByPostProcess=c,i._forcedViewPosition=null,this._sceneUBOs&&i.setSceneUniformBuffer(this._currentSceneUBO),i.updateTransformMatrix(!0),(f=(u=i.getEngine())._debugPopGroup)==null||f.call(u,1)})}get samples(){return this._renderTargetTexture.samples}set samples(e){this._renderTargetTexture.samples=e}get refreshRate(){return this._renderTargetTexture.refreshRate}set refreshRate(e){this._renderTargetTexture.refreshRate=e}getScene(){return this._scene}get cubeTexture(){return this._renderTargetTexture}get renderList(){return this._renderTargetTexture.renderList}set renderList(e){this._renderTargetTexture.renderList=e}attachToMesh(e){this._attachedMesh=e}setRenderingAutoClearDepthStencil(e,t){this._renderTargetTexture.setRenderingAutoClearDepthStencil(e,t)}dispose(){const e=this._scene.reflectionProbes.indexOf(this);if(e!==-1&&this._scene.reflectionProbes.splice(e,1),this._parentContainer){const t=this._parentContainer.reflectionProbes.indexOf(this);t>-1&&this._parentContainer.reflectionProbes.splice(t,1),this._parentContainer=null}if(this._renderTargetTexture&&(this._renderTargetTexture.dispose(),this._renderTargetTexture=null),this._sceneUBOs){for(const t of this._sceneUBOs)t.dispose();this._sceneUBOs=[]}}toString(e){let t="Name: "+this.name;return e&&(t+=", position: "+this.position.toString(),this._attachedMesh&&(t+=", attached mesh: "+this._attachedMesh.name)),t}getClassName(){return"ReflectionProbe"}serialize(){const e=It.Serialize(this,this._renderTargetTexture.serialize());return e.isReflectionProbe=!0,e.metadata=this.metadata,e}static Parse(e,t,i){let s=null;if(t.reflectionProbes)for(let r=0;r<t.reflectionProbes.length;r++){const n=t.reflectionProbes[r];if(n.name===e.name){s=n;break}}return s=It.Parse(()=>s||new DL(e.name,e.renderTargetSize,t,e._generateMipMaps),e,t,i),s.cubeTexture._waitingRenderList=e.renderList,e._attachedMesh&&s.attachToMesh(t.getMeshById(e._attachedMesh)),e.metadata&&(s.metadata=e.metadata),s}}F([uP()],DL.prototype,"_attachedMesh",void 0),F([Ma()],DL.prototype,"position",void 0);class Lke{get animationStarted(){return this._animationStarted}get fromIndex(){return this._fromIndex}get toIndex(){return this._toIndex}get loopAnimation(){return this._loopAnimation}get delay(){return Math.max(this._delay,1)}constructor(){this.width=1,this.height=1,this.angle=0,this.invertU=!1,this.invertV=!1,this.isVisible=!0,this._animationStarted=!1,this._loopAnimation=!1,this._fromIndex=0,this._toIndex=0,this._delay=0,this._direction=1,this._time=0,this._onBaseAnimationEnd=null,this.position={x:1,y:1,z:1},this.color={r:1,g:1,b:1,a:1}}playAnimation(e,t,i,s,r){this._fromIndex=e,this._toIndex=t,this._loopAnimation=i,this._delay=s||1,this._animationStarted=!0,this._onBaseAnimationEnd=r,e<t?this._direction=1:(this._direction=-1,this._toIndex=e,this._fromIndex=t),this.cellIndex=e,this._time=0}stopAnimation(){this._animationStarted=!1}_animate(e){this._animationStarted&&(this._time+=e,this._time>this._delay&&(this._time=this._time%this._delay,this.cellIndex+=this._direction,(this._direction>0&&this.cellIndex>this._toIndex||this._direction<0&&this.cellIndex<this._fromIndex)&&(this._loopAnimation?this.cellIndex=this._direction>0?this._fromIndex:this._toIndex:(this.cellIndex=this._toIndex,this._animationStarted=!1,this._onBaseAnimationEnd&&this._onBaseAnimationEnd()))))}}class UH extends Lke{get size(){return this.width}set size(e){this.width=e,this.height=e}get manager(){return this._manager}constructor(e,t){super(),this.name=e,this.animations=new Array,this.isPickable=!1,this.useAlphaForPicking=!1,this.onDisposeObservable=new xe,this._onAnimationEnd=null,this._endAnimation=()=>{this._onAnimationEnd&&this._onAnimationEnd(),this.disposeWhenFinishedAnimating&&this.dispose()},this.color=new St(1,1,1,1),this.position=P.Zero(),this._manager=t,this._manager.sprites.push(this),this.uniqueId=this._manager.scene.getUniqueId()}getClassName(){return"Sprite"}get fromIndex(){return this._fromIndex}set fromIndex(e){this.playAnimation(e,this._toIndex,this._loopAnimation,this._delay,this._onAnimationEnd)}get toIndex(){return this._toIndex}set toIndex(e){this.playAnimation(this._fromIndex,e,this._loopAnimation,this._delay,this._onAnimationEnd)}get loopAnimation(){return this._loopAnimation}set loopAnimation(e){this.playAnimation(this._fromIndex,this._toIndex,e,this._delay,this._onAnimationEnd)}get delay(){return Math.max(this._delay,1)}set delay(e){this.playAnimation(this._fromIndex,this._toIndex,this._loopAnimation,e,this._onAnimationEnd)}playAnimation(e,t,i,s,r=null){this._onAnimationEnd=r,super.playAnimation(e,t,i,s,this._endAnimation)}dispose(){for(let e=0;e<this._manager.sprites.length;e++)this._manager.sprites[e]==this&&this._manager.sprites.splice(e,1);this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear()}serialize(){const e={};return e.name=this.name,e.position=this.position.asArray(),e.color=this.color.asArray(),e.width=this.width,e.height=this.height,e.angle=this.angle,e.cellIndex=this.cellIndex,e.cellRef=this.cellRef,e.invertU=this.invertU,e.invertV=this.invertV,e.disposeWhenFinishedAnimating=this.disposeWhenFinishedAnimating,e.isPickable=this.isPickable,e.isVisible=this.isVisible,e.useAlphaForPicking=this.useAlphaForPicking,e.animationStarted=this.animationStarted,e.fromIndex=this.fromIndex,e.toIndex=this.toIndex,e.loopAnimation=this.loopAnimation,e.delay=this.delay,e}static Parse(e,t){const i=new UH(e.name,t);return i.position=P.FromArray(e.position),i.color=St.FromArray(e.color),i.width=e.width,i.height=e.height,i.angle=e.angle,i.cellIndex=e.cellIndex,i.cellRef=e.cellRef,i.invertU=e.invertU,i.invertV=e.invertV,i.disposeWhenFinishedAnimating=e.disposeWhenFinishedAnimating,i.isPickable=e.isPickable,i.isVisible=e.isVisible,i.useAlphaForPicking=e.useAlphaForPicking,i._fromIndex=e.fromIndex,i._toIndex=e.toIndex,i._loopAnimation=e.loopAnimation,i._delay=e.delay,e.animationStarted&&i.playAnimation(i.fromIndex,i.toIndex,i.loopAnimation,i.delay),i}}ui.prototype._internalPickSprites=function(a,e,t,i){if(!Kl)return null;let s=null;if(!i){if(!this.activeCamera)return null;i=this.activeCamera}if(this.spriteManagers&&this.spriteManagers.length>0)for(let r=0;r<this.spriteManagers.length;r++){const n=this.spriteManagers[r];if(!n.isPickable)continue;const o=n.intersects(a,i,e,t);if(!(!o||!o.hit)&&!(!t&&s!=null&&o.distance>=s.distance)&&(s=o,t))break}return s||new Kl},ui.prototype._internalMultiPickSprites=function(a,e,t){if(!Kl)return null;let i=[];if(!t){if(!this.activeCamera)return null;t=this.activeCamera}if(this.spriteManagers&&this.spriteManagers.length>0)for(let s=0;s<this.spriteManagers.length;s++){const r=this.spriteManagers[s];if(!r.isPickable)continue;const n=r.multiIntersects(a,t,e);n!==null&&(i=i.concat(n))}return i},ui.prototype.pickSprite=function(a,e,t,i,s){if(!this._tempSpritePickingRay)return null;hB(this,a,e,this._tempSpritePickingRay,s);const r=this._internalPickSprites(this._tempSpritePickingRay,t,i,s);return r&&(r.ray=Dq(this,a,e,s)),r},ui.prototype.pickSpriteWithRay=function(a,e,t,i){if(!this._tempSpritePickingRay)return null;if(!i){if(!this.activeCamera)return null;i=this.activeCamera}Is.TransformToRef(a,i.getViewMatrix(),this._tempSpritePickingRay);const s=this._internalPickSprites(this._tempSpritePickingRay,e,t,i);return s&&(s.ray=a),s},ui.prototype.multiPickSprite=function(a,e,t,i){return hB(this,a,e,this._tempSpritePickingRay,i),this._internalMultiPickSprites(this._tempSpritePickingRay,t,i)},ui.prototype.multiPickSpriteWithRay=function(a,e,t){if(!this._tempSpritePickingRay)return null;if(!t){if(!this.activeCamera)return null;t=this.activeCamera}return Is.TransformToRef(a,t.getViewMatrix(),this._tempSpritePickingRay),this._internalMultiPickSprites(this._tempSpritePickingRay,e,t)},ui.prototype.setPointerOverSprite=function(a){this._pointerOverSprite!==a&&(this._pointerOverSprite&&this._pointerOverSprite.actionManager&&this._pointerOverSprite.actionManager.processTrigger(10,Qa.CreateNewFromSprite(this._pointerOverSprite,this)),this._pointerOverSprite=a,this._pointerOverSprite&&this._pointerOverSprite.actionManager&&this._pointerOverSprite.actionManager.processTrigger(9,Qa.CreateNewFromSprite(this._pointerOverSprite,this)))},ui.prototype.getPointerOverSprite=function(){return this._pointerOverSprite};class D4e{constructor(e){this.name=jt.NAME_SPRITE,this.scene=e,this.scene.spriteManagers=[],this.scene._tempSpritePickingRay=Is?Is.Zero():null,this.scene.onBeforeSpritesRenderingObservable=new xe,this.scene.onAfterSpritesRenderingObservable=new xe,this._spritePredicate=t=>t.actionManager?t.isPickable&&t.actionManager.hasPointerTriggers:!1}register(){this.scene._pointerMoveStage.registerStep(jt.STEP_POINTERMOVE_SPRITE,this,this._pointerMove),this.scene._pointerDownStage.registerStep(jt.STEP_POINTERDOWN_SPRITE,this,this._pointerDown),this.scene._pointerUpStage.registerStep(jt.STEP_POINTERUP_SPRITE,this,this._pointerUp)}rebuild(){}dispose(){this.scene.onBeforeSpritesRenderingObservable.clear(),this.scene.onAfterSpritesRenderingObservable.clear();const e=this.scene.spriteManagers;if(e)for(;e.length;)e[0].dispose()}_pickSpriteButKeepRay(e,t,i,s,r){const n=this.scene.pickSprite(t,i,this._spritePredicate,s,r);return n&&(n.ray=e?e.ray:null),n}_pointerMove(e,t,i,s,r){const n=this.scene;return s?n.setPointerOverSprite(null):(i=this._pickSpriteButKeepRay(i,e,t,!1,n.cameraToUseForPointers||void 0),i&&i.hit&&i.pickedSprite?(n.setPointerOverSprite(i.pickedSprite),!n.doNotHandleCursors&&r&&(n._pointerOverSprite&&n._pointerOverSprite.actionManager&&n._pointerOverSprite.actionManager.hoverCursor?r.style.cursor=n._pointerOverSprite.actionManager.hoverCursor:r.style.cursor=n.hoverCursor)):n.setPointerOverSprite(null)),i}_pointerDown(e,t,i,s){const r=this.scene;if(r._pickedDownSprite=null,r.spriteManagers&&r.spriteManagers.length>0&&(i=r.pickSprite(e,t,this._spritePredicate,!1,r.cameraToUseForPointers||void 0),i&&i.hit&&i.pickedSprite&&i.pickedSprite.actionManager)){switch(r._pickedDownSprite=i.pickedSprite,s.button){case 0:i.pickedSprite.actionManager.processTrigger(2,Qa.CreateNewFromSprite(i.pickedSprite,r,s));break;case 1:i.pickedSprite.actionManager.processTrigger(4,Qa.CreateNewFromSprite(i.pickedSprite,r,s));break;case 2:i.pickedSprite.actionManager.processTrigger(3,Qa.CreateNewFromSprite(i.pickedSprite,r,s));break}i.pickedSprite.actionManager&&i.pickedSprite.actionManager.processTrigger(5,Qa.CreateNewFromSprite(i.pickedSprite,r,s))}return i}_pointerUp(e,t,i,s,r){const n=this.scene;if(n.spriteManagers&&n.spriteManagers.length>0){const o=n.pickSprite(e,t,this._spritePredicate,!1,n.cameraToUseForPointers||void 0);o&&(o.hit&&o.pickedSprite&&o.pickedSprite.actionManager&&(o.pickedSprite.actionManager.processTrigger(7,Qa.CreateNewFromSprite(o.pickedSprite,n,s)),o.pickedSprite.actionManager&&(this.scene._inputManager._isPointerSwiping()||o.pickedSprite.actionManager.processTrigger(1,Qa.CreateNewFromSprite(o.pickedSprite,n,s)),r&&o.pickedSprite.actionManager.processTrigger(6,Qa.CreateNewFromSprite(o.pickedSprite,n,s)))),n._pickedDownSprite&&n._pickedDownSprite.actionManager&&n._pickedDownSprite!==o.pickedSprite&&n._pickedDownSprite.actionManager.processTrigger(16,Qa.CreateNewFromSprite(n._pickedDownSprite,n,s)))}return i}}class jH{get fogEnabled(){return this._fogEnabled}set fogEnabled(e){this._fogEnabled!==e&&(this._fogEnabled=e,this._createEffects())}get useLogarithmicDepth(){return this._useLogarithmicDepth}set useLogarithmicDepth(e){var i;const t=!!((i=this._scene)!=null&&i.getEngine().getCaps().fragmentDepthSupported);e&&!t&&de.Warn("Logarithmic depth has been requested for a sprite renderer on a device that doesn't support it."),this._useLogarithmicDepth=e&&t,this._createEffects()}get capacity(){return this._capacity}get pixelPerfect(){return this._pixelPerfect}set pixelPerfect(e){this._pixelPerfect!==e&&(this._pixelPerfect=e,this._createEffects())}get shaderLanguage(){return this._shaderLanguage}constructor(e,t,i=.01,s=null,r){this.blendMode=2,this.autoResetAlpha=!0,this.disableDepthWrite=!1,this._fogEnabled=!0,this._pixelPerfect=!1,this._shaderLanguage=0,this._useVAO=!1,this._useInstancing=!1,this._vertexBuffers={},this._isDisposed=!1,this._shadersLoaded=!1,this._pixelPerfect=(r==null?void 0:r.pixelPerfect)??!1,this._capacity=t,this._epsilon=i,this._engine=e,this._useInstancing=e.getCaps().instancedArrays&&e._features.supportSpriteInstancing,this._useVAO=e.getCaps().vertexArrayObject&&!e.disableVertexArrayObjects,this._scene=s,this._useInstancing||this._buildIndexBuffer(),this._vertexBufferSize=this._useInstancing?16:18,this._vertexData=new Float32Array(t*this._vertexBufferSize*(this._useInstancing?1:4)),this._buffer=new fl(e,this._vertexData,!0,this._vertexBufferSize);const n=this._buffer.createVertexBuffer(q.PositionKind,0,4,this._vertexBufferSize,this._useInstancing),o=this._buffer.createVertexBuffer("options",4,2,this._vertexBufferSize,this._useInstancing);let l=6,c;if(this._useInstancing){const m=new Float32Array([this._epsilon,this._epsilon,1-this._epsilon,this._epsilon,this._epsilon,1-this._epsilon,1-this._epsilon,1-this._epsilon]);this._spriteBuffer=new fl(e,m,!1,2),c=this._spriteBuffer.createVertexBuffer("offsets",0,2)}else c=this._buffer.createVertexBuffer("offsets",l,2,this._vertexBufferSize,this._useInstancing),l+=2;const u=this._buffer.createVertexBuffer("inverts",l,2,this._vertexBufferSize,this._useInstancing),f=this._buffer.createVertexBuffer("cellInfo",l+2,4,this._vertexBufferSize,this._useInstancing),p=this._buffer.createVertexBuffer(q.ColorKind,l+6,4,this._vertexBufferSize,this._useInstancing);this._vertexBuffers[q.PositionKind]=n,this._vertexBuffers.options=o,this._vertexBuffers.offsets=c,this._vertexBuffers.inverts=u,this._vertexBuffers.cellInfo=f,this._vertexBuffers[q.ColorKind]=p,this._initShaderSourceAsync()}async _initShaderSourceAsync(){this._engine.isWebGPU&&!jH.ForceGLSL?(this._shaderLanguage=1,await Promise.all([Promise.resolve().then(()=>hqe),Promise.resolve().then(()=>uqe)])):await Promise.all([Promise.resolve().then(()=>lqe),Promise.resolve().then(()=>oqe)]),this._shadersLoaded=!0,this._createEffects()}_createEffects(){var t,i;if(this._isDisposed||!this._shadersLoaded)return;(t=this._drawWrapperBase)==null||t.dispose(),(i=this._drawWrapperDepth)==null||i.dispose(),this._drawWrapperBase=new ql(this._engine),this._drawWrapperDepth=new ql(this._engine,!1),this._drawWrapperBase.drawContext&&(this._drawWrapperBase.drawContext.useInstancing=this._useInstancing),this._drawWrapperDepth.drawContext&&(this._drawWrapperDepth.drawContext.useInstancing=this._useInstancing);let e="";this._pixelPerfect&&(e+=`#define PIXEL_PERFECT
`),this._scene&&this._scene.fogEnabled&&this._scene.fogMode!==0&&this._fogEnabled&&(e+=`#define FOG
`),this._useLogarithmicDepth&&(e+=`#define LOGARITHMICDEPTH
`),this._drawWrapperBase.effect=this._engine.createEffect("sprites",[q.PositionKind,"options","offsets","inverts","cellInfo",q.ColorKind],["view","projection","textureInfos","alphaTest","vFogInfos","vFogColor","logarithmicDepthConstant"],["diffuseSampler"],e,void 0,void 0,void 0,void 0,this._shaderLanguage),this._drawWrapperDepth.effect=this._drawWrapperBase.effect,this._drawWrapperBase.effect._refCount++,this._drawWrapperDepth.materialContext=this._drawWrapperBase.materialContext}render(e,t,i,s,r=null){if(!this._shadersLoaded||!this.texture||!this.texture.isReady()||!e.length)return;const n=this._drawWrapperBase,o=this._drawWrapperDepth,l=this.fogEnabled&&this._scene&&this._scene.fogEnabled&&this._scene.fogMode!==0,c=n.effect;if(!c.isReady())return;const u=this._engine,f=!!(this._scene&&this._scene.useRightHandedSystem),p=Math.min(this._capacity,e.length);let m=0,_=!0;for(let A=0;A<p;A++){const S=e[A];if(!S||!S.isVisible)continue;_=!1,S._animate(t);const E=this.texture.getBaseSize();this._appendSpriteVertex(m++,S,0,0,E,f,r),this._useInstancing||(this._appendSpriteVertex(m++,S,1,0,E,f,r),this._appendSpriteVertex(m++,S,1,1,E,f,r),this._appendSpriteVertex(m++,S,0,1,E,f,r))}if(_)return;this._buffer.update(this._vertexData);const d=!!u.depthCullingState.cull,h=u.depthCullingState.zOffset,x=u.depthCullingState.zOffsetUnits;if(u.setState(d,h,!1,!1,void 0,void 0,x),u.enableEffect(n),c.setTexture("diffuseSampler",this.texture),c.setMatrix("view",i),c.setMatrix("projection",s),l){const A=this._scene;c.setFloat4("vFogInfos",A.fogMode,A.fogStart,A.fogEnd,A.fogDensity),c.setColor3("vFogColor",A.fogColor)}this.useLogarithmicDepth&&this._scene&&ml(n.defines,c,this._scene),this._useVAO?(this._vertexArrayObject||(this._vertexArrayObject=u.recordVertexArrayObject(this._vertexBuffers,this._indexBuffer,c)),u.bindVertexArrayObject(this._vertexArrayObject,this._indexBuffer)):u.bindBuffers(this._vertexBuffers,this._indexBuffer,c),u.depthCullingState.depthFunc=u.useReverseDepthBuffer?518:515,this.disableDepthWrite||(c.setBool("alphaTest",!0),u.setColorWrite(!1),u.enableEffect(o),this._useInstancing?u.drawArraysType(7,0,4,m):u.drawElementsType(0,0,m/4*6),u.enableEffect(n),u.setColorWrite(!0),c.setBool("alphaTest",!1)),u.setAlphaMode(this.blendMode),this._useInstancing?u.drawArraysType(7,0,4,m):u.drawElementsType(0,0,m/4*6),this.autoResetAlpha&&u.setAlphaMode(0),f&&this._scene.getEngine().setState(d,h,!1,!0,void 0,void 0,x),u.unbindInstanceAttributes()}_appendSpriteVertex(e,t,i,s,r,n,o){let l=e*this._vertexBufferSize;if(i===0?i=this._epsilon:i===1&&(i=1-this._epsilon),s===0?s=this._epsilon:s===1&&(s=1-this._epsilon),o)o(t,r);else{t.cellIndex||(t.cellIndex=0);const c=r.width/this.cellWidth,u=t.cellIndex/c>>0;t._xOffset=(t.cellIndex-u*c)*this.cellWidth/r.width,t._yOffset=u*this.cellHeight/r.height,t._xSize=this.cellWidth,t._ySize=this.cellHeight}this._vertexData[l]=t.position.x,this._vertexData[l+1]=t.position.y,this._vertexData[l+2]=t.position.z,this._vertexData[l+3]=t.angle,this._vertexData[l+4]=t.width,this._vertexData[l+5]=t.height,this._useInstancing?l-=2:(this._vertexData[l+6]=i,this._vertexData[l+7]=s),n?this._vertexData[l+8]=t.invertU?0:1:this._vertexData[l+8]=t.invertU?1:0,this._vertexData[l+9]=t.invertV?1:0,this._vertexData[l+10]=t._xOffset,this._vertexData[l+11]=t._yOffset,this._vertexData[l+12]=t._xSize/r.width,this._vertexData[l+13]=t._ySize/r.height,this._vertexData[l+14]=t.color.r,this._vertexData[l+15]=t.color.g,this._vertexData[l+16]=t.color.b,this._vertexData[l+17]=t.color.a}_buildIndexBuffer(){const e=[];let t=0;for(let i=0;i<this._capacity;i++)e.push(t),e.push(t+1),e.push(t+2),e.push(t),e.push(t+2),e.push(t+3),t+=4;this._indexBuffer=this._engine.createIndexBuffer(e)}rebuild(){var e;this._indexBuffer&&this._buildIndexBuffer(),this._useVAO&&(this._vertexArrayObject=void 0),this._buffer._rebuild();for(const t in this._vertexBuffers)this._vertexBuffers[t]._rebuild();(e=this._spriteBuffer)==null||e._rebuild()}dispose(){var e,t;this._buffer&&(this._buffer.dispose(),this._buffer=null),this._spriteBuffer&&(this._spriteBuffer.dispose(),this._spriteBuffer=null),this._indexBuffer&&(this._engine._releaseBuffer(this._indexBuffer),this._indexBuffer=null),this._vertexArrayObject&&(this._engine.releaseVertexArrayObject(this._vertexArrayObject),this._vertexArrayObject=null),this.texture&&(this.texture.dispose(),this.texture=null),(e=this._drawWrapperBase)==null||e.dispose(),(t=this._drawWrapperDepth)==null||t.dispose(),this._isDisposed=!0}}jH.ForceGLSL=!1;class h5{set onDispose(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)}get children(){return this.sprites}get scene(){return this._scene}get capacity(){return this._spriteRenderer.capacity}get texture(){return this._spriteRenderer.texture}set texture(e){e.wrapU=be.CLAMP_ADDRESSMODE,e.wrapV=be.CLAMP_ADDRESSMODE,this._spriteRenderer.texture=e,this._textureContent=null}get cellWidth(){return this._spriteRenderer.cellWidth}set cellWidth(e){this._spriteRenderer.cellWidth=e}get cellHeight(){return this._spriteRenderer.cellHeight}set cellHeight(e){this._spriteRenderer.cellHeight=e}get fogEnabled(){return this._spriteRenderer.fogEnabled}set fogEnabled(e){this._spriteRenderer.fogEnabled=e}get useLogarithmicDepth(){return this._spriteRenderer.useLogarithmicDepth}set useLogarithmicDepth(e){this._spriteRenderer.useLogarithmicDepth=e}get blendMode(){return this._spriteRenderer.blendMode}set blendMode(e){this._spriteRenderer.blendMode=e}get disableDepthWrite(){return this._disableDepthWrite}set disableDepthWrite(e){this._disableDepthWrite=e,this._spriteRenderer.disableDepthWrite=e}get pixelPerfect(){return this._spriteRenderer.pixelPerfect}set pixelPerfect(e){this._spriteRenderer.pixelPerfect=e,e&&this.texture.samplingMode!==3&&this.texture.updateSamplingMode(3)}constructor(e,t,i,s,r,n=.01,o=be.TRILINEAR_SAMPLINGMODE,l=!1,c=null,u){this.name=e,this.sprites=[],this.renderingGroupId=0,this.layerMask=268435455,this.isPickable=!1,this.metadata=null,this._wasDispatched=!1,this.onDisposeObservable=new xe,this._disableDepthWrite=!1,this._packedAndReady=!1,this._customUpdate=(p,m)=>{p.cellRef||(p.cellIndex=0);const _=p.cellIndex;typeof _=="number"&&isFinite(_)&&Math.floor(_)===_&&(p.cellRef=this._spriteMap[p.cellIndex]),p._xOffset=this._cellData[p.cellRef].frame.x/m.width,p._yOffset=this._cellData[p.cellRef].frame.y/m.height,p._xSize=this._cellData[p.cellRef].frame.w,p._ySize=this._cellData[p.cellRef].frame.h},r||(r=ei.LastCreatedScene),r._getComponent(jt.NAME_SPRITE)||r._addComponent(new D4e(r)),this._fromPacked=l,this._scene=r;const f=this._scene.getEngine();if(this._spriteRenderer=new jH(f,i,n,r,u==null?void 0:u.spriteRendererOptions),s.width&&s.height)this.cellWidth=s.width,this.cellHeight=s.height;else if(s!==void 0)this.cellWidth=s,this.cellHeight=s;else{this._spriteRenderer=null;return}this._scene.spriteManagers&&this._scene.spriteManagers.push(this),this.uniqueId=this.scene.getUniqueId(),t&&(this.texture=new be(t,r,!0,!1,o)),this._fromPacked&&this._makePacked(t,c)}getClassName(){return"SpriteManager"}_makePacked(e,t){if(t!==null)try{let i;if(typeof t=="string"?i=JSON.parse(t):i=t,i.frames.length){const r={};for(let n=0;n<i.frames.length;n++){const o=i.frames[n];if(typeof Object.keys(o)[0]!="string")throw new Error("Invalid JSON Format.  Check the frame values and make sure the name is the first parameter.");const l=o[Object.keys(o)[0]];r[l]=o}i.frames=r}const s=Reflect.ownKeys(i.frames);this._spriteMap=s,this._packedAndReady=!0,this._cellData=i.frames}catch{throw this._fromPacked=!1,this._packedAndReady=!1,new Error("Invalid JSON from string. Spritesheet managed with constant cell size.")}else{const i=/\./g;let s;do s=i.lastIndex,i.test(e);while(i.lastIndex>0);const r=e.substring(0,s-1)+".json",n=()=>{de.Error("JSON ERROR: Unable to load JSON file."),this._fromPacked=!1,this._packedAndReady=!1},o=l=>{try{const c=JSON.parse(l),u=Reflect.ownKeys(c.frames);this._spriteMap=u,this._packedAndReady=!0,this._cellData=c.frames}catch{throw this._fromPacked=!1,this._packedAndReady=!1,new Error("Invalid JSON format. Please check documentation for format specifications.")}};Le.LoadFile(r,o,void 0,void 0,!1,n)}}_checkTextureAlpha(e,t,i,s,r){var m;if(!e.useAlphaForPicking||!((m=this.texture)!=null&&m.isReady()))return!0;const n=this.texture.getSize();this._textureContent||(this._textureContent=new Uint8Array(n.width*n.height*4),this.texture.readPixels(0,0,this._textureContent));const o=ae.Vector3[0];o.copyFrom(t.direction),o.normalize(),o.scaleInPlace(i),o.addInPlace(t.origin);const l=(o.x-s.x)/(r.x-s.x),c=1-(o.y-s.y)/(r.y-s.y),u=e._xOffset*n.width+l*e._xSize|0,f=e._yOffset*n.height+c*e._ySize|0;return this._textureContent[(u+f*n.width)*4+3]>.5}intersects(e,t,i,s){const r=Math.min(this.capacity,this.sprites.length),n=P.Zero(),o=P.Zero();let l=Number.MAX_VALUE,c=null;const u=ae.Vector3[0],f=ae.Vector3[1],p=t.getViewMatrix();let m=e,_=e;for(let d=0;d<r;d++){const h=this.sprites[d];if(h){if(i){if(!i(h))continue}else if(!h.isPickable)continue;if(P.TransformCoordinatesToRef(h.position,p,f),h.angle?(me.TranslationToRef(-f.x,-f.y,0,ae.Matrix[1]),me.TranslationToRef(f.x,f.y,0,ae.Matrix[2]),me.RotationZToRef(-h.angle,ae.Matrix[3]),ae.Matrix[1].multiplyToRef(ae.Matrix[3],ae.Matrix[4]),ae.Matrix[4].multiplyToRef(ae.Matrix[2],ae.Matrix[0]),m=e.clone(),P.TransformCoordinatesToRef(e.origin,ae.Matrix[0],m.origin),P.TransformNormalToRef(e.direction,ae.Matrix[0],m.direction)):m=e,n.copyFromFloats(f.x-h.width/2,f.y-h.height/2,f.z),o.copyFromFloats(f.x+h.width/2,f.y+h.height/2,f.z),m.intersectsBoxMinMax(n,o)){const x=P.Distance(f,m.origin);if(l>x){if(!this._checkTextureAlpha(h,m,x,n,o))continue;if(_=m,l=x,c=h,s)break}}}}if(c){const d=new Kl;p.invertToRef(ae.Matrix[0]),d.hit=!0,d.pickedSprite=c,d.distance=l;const h=ae.Vector3[2];return h.copyFrom(_.direction),h.normalize(),h.scaleInPlace(l),_.origin.addToRef(h,u),d.pickedPoint=P.TransformCoordinates(u,ae.Matrix[0]),d}return null}multiIntersects(e,t,i){const s=Math.min(this.capacity,this.sprites.length),r=P.Zero(),n=P.Zero();let o;const l=[],c=ae.Vector3[0].copyFromFloats(0,0,0),u=ae.Vector3[1].copyFromFloats(0,0,0),f=t.getViewMatrix();for(let p=0;p<s;p++){const m=this.sprites[p];if(m){if(i){if(!i(m))continue}else if(!m.isPickable)continue;if(P.TransformCoordinatesToRef(m.position,f,u),r.copyFromFloats(u.x-m.width/2,u.y-m.height/2,u.z),n.copyFromFloats(u.x+m.width/2,u.y+m.height/2,u.z),e.intersectsBoxMinMax(r,n)){if(o=P.Distance(u,e.origin),!this._checkTextureAlpha(m,e,o,r,n))continue;const _=new Kl;l.push(_),f.invertToRef(ae.Matrix[0]),_.hit=!0,_.pickedSprite=m,_.distance=o;const d=ae.Vector3[2];d.copyFrom(e.direction),d.normalize(),d.scaleInPlace(o),e.origin.addToRef(d,c),_.pickedPoint=P.TransformCoordinates(c,ae.Matrix[0])}}}return l}render(){if(this._fromPacked&&(!this._packedAndReady||!this._spriteMap||!this._cellData))return;const t=this._scene.getEngine().getDeltaTime();this._packedAndReady?this._spriteRenderer.render(this.sprites,t,this._scene.getViewMatrix(),this._scene.getProjectionMatrix(),this._customUpdate):this._spriteRenderer.render(this.sprites,t,this._scene.getViewMatrix(),this._scene.getProjectionMatrix())}rebuild(){var e;(e=this._spriteRenderer)==null||e.rebuild()}dispose(){if(this._spriteRenderer&&(this._spriteRenderer.dispose(),this._spriteRenderer=null),this._textureContent=null,this._scene.spriteManagers){const e=this._scene.spriteManagers.indexOf(this);this._scene.spriteManagers.splice(e,1)}this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.metadata=null}serialize(e=!1){const t={};t.name=this.name,t.capacity=this.capacity,t.cellWidth=this.cellWidth,t.cellHeight=this.cellHeight,t.fogEnabled=this.fogEnabled,t.blendMode=this.blendMode,t.disableDepthWrite=this.disableDepthWrite,t.pixelPerfect=this.pixelPerfect,t.useLogarithmicDepth=this.useLogarithmicDepth,this.texture&&(e?t.texture=this.texture.serialize():(t.textureUrl=this.texture.name,t.invertY=this.texture._invertY)),t.sprites=[];for(const i of this.sprites)t.sprites.push(i.serialize());return t.metadata=this.metadata,t}static Parse(e,t,i){const s=new h5(e.name,"",e.capacity,{width:e.cellWidth,height:e.cellHeight},t);e.fogEnabled!==void 0&&(s.fogEnabled=e.fogEnabled),e.blendMode!==void 0&&(s.blendMode=e.blendMode),e.disableDepthWrite!==void 0&&(s.disableDepthWrite=e.disableDepthWrite),e.pixelPerfect!==void 0&&(s.pixelPerfect=e.pixelPerfect),e.useLogarithmicDepth!==void 0&&(s.useLogarithmicDepth=e.useLogarithmicDepth),e.metadata!==void 0&&(s.metadata=e.metadata),e.texture?s.texture=be.Parse(e.texture,t,i):e.textureName&&(s.texture=new be(i+e.textureUrl,t,!1,e.invertY!==void 0?e.invertY:!0));for(const r of e.sprites)UH.Parse(r,s);return s}static ParseFromFileAsync(e,t,i,s=""){return new Promise((r,n)=>{const o=new ha;o.addEventListener("readystatechange",()=>{if(o.readyState==4)if(o.status==200){const l=JSON.parse(o.responseText),c=h5.Parse(l,i||ei.LastCreatedScene,s);e&&(c.name=e),r(c)}else n("Unable to load the sprite manager")}),o.open("GET",t),o.send()})}static ParseFromSnippetAsync(e,t,i=""){return e==="_BLANK"?Promise.resolve(new h5("Default sprite manager","//playground.babylonjs.com/textures/player.png",500,64,t)):new Promise((s,r)=>{const n=new ha;n.addEventListener("readystatechange",()=>{if(n.readyState==4)if(n.status==200){const o=JSON.parse(JSON.parse(n.responseText).jsonPayload),l=JSON.parse(o.spriteManager),c=h5.Parse(l,t||ei.LastCreatedScene,i);c.snippetId=e,s(c)}else r("Unable to load the snippet "+e)}),n.open("GET",this.SnippetUrl+"/"+e.replace(/#/g,"/")),n.send()})}}h5.SnippetUrl="https://snippet.babylonjs.com",h5.CreateFromSnippetAsync=h5.ParseFromSnippetAsync;var Ike=!0;class VB{}VB.LoaderInjectedPhysicsEngine=void 0;let fO={},c9={},pO={};const N4e=(a,e,t,i)=>{if(!e.materials)return null;for(let s=0,r=e.materials.length;s<r;s++){const n=e.materials[s];if(a(n))return{parsedMaterial:n,material:ft.Parse(n,t,i)}}return null},Pke=(a,e,t)=>{for(const i in e)if(a.name===e[i])return t.push(a.id),!0;return a.parentId!==void 0&&t.indexOf(a.parentId)!==-1?(t.push(a.id),!0):!1},mO=(a,e)=>a+" of "+(e?e.file+" from "+e.name+" version: "+e.version+", exporter version: "+e.exporter_version:"unknown"),w4e=(a,e)=>{const t=e;if(e._waitingData.lods){if(e._waitingData.lods.ids&&e._waitingData.lods.ids.length>0){const i=e._waitingData.lods.ids,s=t.isEnabled(!1);if(e._waitingData.lods.distances){const r=e._waitingData.lods.distances;if(r.length>=i.length){const n=r.length>i.length?r[r.length-1]:0;t.setEnabled(!1);for(let o=0;o<i.length;o++){const l=i[o],c=a.getMeshById(l);c!=null&&t.addLODLevel(r[o],c)}n>0&&t.addLODLevel(n,null),s===!0&&t.setEnabled(!0)}else Le.Warn("Invalid level of detail distances for "+e.name)}}e._waitingData.lods=null}},VH=(a,e,t)=>{if(typeof a!="number"){const s=t.getLastEntryById(a);return s&&e!==void 0&&e!==null?s.instances[parseInt(e)]:s}const i=fO[a];return i&&e!==void 0&&e!==null?i.instances[parseInt(e)]:i},GH=(a,e)=>typeof a!="number"?e.getLastMaterialById(a,!0):c9[a],B4e=(a,e,t,i,s=!1)=>{const r=new bP(a);let n="importScene has failed JSON parse";try{var o=JSON.parse(e);n="";const l=wr.loggingLevel===wr.DETAILED_LOGGING;let c,u;if(o.environmentTexture!==void 0&&o.environmentTexture!==null){const p=o.isPBR!==void 0?o.isPBR:!0;if(o.environmentTextureType&&o.environmentTextureType==="BABYLON.HDRCubeTexture"){const m=o.environmentTextureSize?o.environmentTextureSize:128,_=new Zy((o.environmentTexture.match(/https?:\/\//g)?"":t)+o.environmentTexture,a,m,!0,!p,void 0,o.environmentTexturePrefilterOnLoad);o.environmentTextureRotationY&&(_.rotationY=o.environmentTextureRotationY),a.environmentTexture=_}else if(typeof o.environmentTexture=="object"){const m=ko.Parse(o.environmentTexture,a,t);a.environmentTexture=m}else if(o.environmentTexture.endsWith(".env")){const m=new ko((o.environmentTexture.match(/https?:\/\//g)?"":t)+o.environmentTexture,a,o.environmentTextureForcedExtension);o.environmentTextureRotationY&&(m.rotationY=o.environmentTextureRotationY),a.environmentTexture=m}else{const m=ko.CreateFromPrefilteredData((o.environmentTexture.match(/https?:\/\//g)?"":t)+o.environmentTexture,a,o.environmentTextureForcedExtension);o.environmentTextureRotationY&&(m.rotationY=o.environmentTextureRotationY),a.environmentTexture=m}if(o.createDefaultSkybox===!0){const m=a.activeCamera!==void 0&&a.activeCamera!==null?(a.activeCamera.maxZ-a.activeCamera.minZ)/2:1e3,_=o.skyboxBlurLevel||0;a.createDefaultSkybox(a.environmentTexture,p,m,_)}r.environmentTexture=a.environmentTexture}if(o.environmentIntensity!==void 0&&o.environmentIntensity!==null&&(a.environmentIntensity=o.environmentIntensity),o.iblIntensity!==void 0&&o.iblIntensity!==null&&(a.iblIntensity=o.iblIntensity),o.lights!==void 0&&o.lights!==null)for(c=0,u=o.lights.length;c<u;c++){const p=o.lights[c],m=vs.Parse(p,a);m&&(fO[p.uniqueId]=m,r.lights.push(m),m._parentContainer=r,n+=c===0?`
	Lights:`:"",n+=`
		`+m.toString(l))}if(o.reflectionProbes!==void 0&&o.reflectionProbes!==null)for(c=0,u=o.reflectionProbes.length;c<u;c++){const p=o.reflectionProbes[c],m=DL.Parse(p,a,t);m&&(r.reflectionProbes.push(m),m._parentContainer=r,n+=c===0?`
	Reflection Probes:`:"",n+=`
		`+m.toString(l))}if(o.animations!==void 0&&o.animations!==null)for(c=0,u=o.animations.length;c<u;c++){const p=o.animations[c],m=ea("BABYLON.Animation");if(m){const _=m.Parse(p);a.animations.push(_),r.animations.push(_),n+=c===0?`
	Animations:`:"",n+=`
		`+_.toString(l)}}if(o.materials!==void 0&&o.materials!==null)for(c=0,u=o.materials.length;c<u;c++){const p=o.materials[c],m=ft.Parse(p,a,t);m&&(c9[p.uniqueId||p.id]=m,r.materials.push(m),m._parentContainer=r,n+=c===0?`
	Materials:`:"",n+=`
		`+m.toString(l),m.getActiveTextures().forEach(d=>{r.textures.indexOf(d)==-1&&(r.textures.push(d),d._parentContainer=r)}))}if(o.multiMaterials!==void 0&&o.multiMaterials!==null)for(c=0,u=o.multiMaterials.length;c<u;c++){const p=o.multiMaterials[c],m=tf.ParseMultiMaterial(p,a);c9[p.uniqueId||p.id]=m,r.multiMaterials.push(m),m._parentContainer=r,n+=c===0?`
	MultiMaterials:`:"",n+=`
		`+m.toString(l),m.getActiveTextures().forEach(d=>{r.textures.indexOf(d)==-1&&(r.textures.push(d),d._parentContainer=r)})}if(o.morphTargetManagers!==void 0&&o.morphTargetManagers!==null)for(const p of o.morphTargetManagers){const m=J6.Parse(p,a);pO[p.id]=m,r.morphTargetManagers.push(m),m._parentContainer=r}if(o.skeletons!==void 0&&o.skeletons!==null)for(c=0,u=o.skeletons.length;c<u;c++){const p=o.skeletons[c],m=Wv.Parse(p,a);r.skeletons.push(m),m._parentContainer=r,n+=c===0?`
	Skeletons:`:"",n+=`
		`+m.toString(l)}const f=o.geometries;if(f!=null){const p=new Array,m=f.vertexData;if(m!=null)for(c=0,u=m.length;c<u;c++){const _=m[c];p.push(Rl.Parse(_,a,t))}p.forEach(_=>{_&&(r.geometries.push(_),_._parentContainer=r)})}if(o.transformNodes!==void 0&&o.transformNodes!==null)for(c=0,u=o.transformNodes.length;c<u;c++){const p=o.transformNodes[c],m=Si.Parse(p,a,t);fO[p.uniqueId]=m,r.transformNodes.push(m),m._parentContainer=r}if(o.meshes!==void 0&&o.meshes!==null)for(c=0,u=o.meshes.length;c<u;c++){const p=o.meshes[c],m=Ne.Parse(p,a,t);if(fO[p.uniqueId]=m,r.meshes.push(m),m._parentContainer=r,m.hasInstances)for(const _ of m.instances)r.meshes.push(_),_._parentContainer=r;n+=c===0?`
	Meshes:`:"",n+=`
		`+m.toString(l)}if(o.cameras!==void 0&&o.cameras!==null)for(c=0,u=o.cameras.length;c<u;c++){const p=o.cameras[c],m=_i.Parse(p,a);fO[p.uniqueId]=m,r.cameras.push(m),m._parentContainer=r,n+=c===0?`
	Cameras:`:"",n+=`
		`+m.toString(l)}if(o.postProcesses!==void 0&&o.postProcesses!==null)for(c=0,u=o.postProcesses.length;c<u;c++){const p=o.postProcesses[c],m=Mi.Parse(p,a,t);m&&(r.postProcesses.push(m),m._parentContainer=r,n+=c===0?`
Postprocesses:`:"",n+=`
		`+m.toString())}if(o.animationGroups!==void 0&&o.animationGroups!==null)for(c=0,u=o.animationGroups.length;c<u;c++){const p=o.animationGroups[c],m=c3.Parse(p,a);r.animationGroups.push(m),m._parentContainer=r,n+=c===0?`
	AnimationGroups:`:"",n+=`
		`+m.toString(l)}if(o.spriteManagers)for(let p=0,m=o.spriteManagers.length;p<m;p++){const _=o.spriteManagers[p],d=h5.Parse(_,a,t);n+=`
		SpriteManager `+d.name}for(c=0,u=a.cameras.length;c<u;c++){const p=a.cameras[c];p._waitingParentId!==null&&(p.parent=VH(p._waitingParentId,p._waitingParentInstanceIndex,a),p._waitingParentId=null,p._waitingParentInstanceIndex=null)}for(c=0,u=a.lights.length;c<u;c++){const p=a.lights[c];p&&p._waitingParentId!==null&&(p.parent=VH(p._waitingParentId,p._waitingParentInstanceIndex,a),p._waitingParentId=null,p._waitingParentInstanceIndex=null)}for(c=0,u=a.transformNodes.length;c<u;c++){const p=a.transformNodes[c];p._waitingParentId!==null&&(p.parent=VH(p._waitingParentId,p._waitingParentInstanceIndex,a),p._waitingParentId=null,p._waitingParentInstanceIndex=null)}for(c=0,u=a.meshes.length;c<u;c++){const p=a.meshes[c];p._waitingParentId!==null&&(p.parent=VH(p._waitingParentId,p._waitingParentInstanceIndex,a),p._waitingParentId=null,p._waitingParentInstanceIndex=null),p._waitingData.lods&&w4e(a,p)}for(a.multiMaterials.forEach(p=>{p._waitingSubMaterialsUniqueIds.forEach(m=>{p.subMaterials.push(GH(m,a))}),p._waitingSubMaterialsUniqueIds=[]}),a.meshes.forEach(p=>{p._waitingMaterialId!==null&&(p.material=GH(p._waitingMaterialId,a),p._waitingMaterialId=null)}),a.meshes.forEach(p=>{p._waitingMorphTargetManagerId!==null&&(p.morphTargetManager=pO[p._waitingMorphTargetManagerId],p._waitingMorphTargetManagerId=null)}),c=0,u=a.skeletons.length;c<u;c++){const p=a.skeletons[c];p._hasWaitingData&&(p.bones!=null&&p.bones.forEach(m=>{if(m._waitingTransformNodeId){const _=a.getLastEntryById(m._waitingTransformNodeId);_&&m.linkTransformNode(_),m._waitingTransformNodeId=null}}),p._hasWaitingData=null)}for(c=0,u=a.meshes.length;c<u;c++){const p=a.meshes[c];p._waitingData.freezeWorldMatrix?(p.freezeWorldMatrix(),p._waitingData.freezeWorldMatrix=null):p.computeWorldMatrix(!0)}for(c=0,u=a.lights.length;c<u;c++){const p=a.lights[c];if(p._excludedMeshesIds.length>0){for(let m=0;m<p._excludedMeshesIds.length;m++){const _=a.getMeshById(p._excludedMeshesIds[m]);_&&p.excludedMeshes.push(_)}p._excludedMeshesIds=[]}if(p._includedOnlyMeshesIds.length>0){for(let m=0;m<p._includedOnlyMeshesIds.length;m++){const _=a.getMeshById(p._includedOnlyMeshesIds[m]);_&&p.includedOnlyMeshes.push(_)}p._includedOnlyMeshesIds=[]}}for(a.geometries.forEach(p=>{p._loadedUniqueId=""}),d1e(o,a,r,t),c=0,u=a.meshes.length;c<u;c++){const p=a.meshes[c];p._waitingData.actions&&(Xr.Parse(p._waitingData.actions,p,a),p._waitingData.actions=null)}o.actions!==void 0&&o.actions!==null&&Xr.Parse(o.actions,null,a)}catch(l){const c=mO("loadAssets",o?o.producer:"Unknown")+n;if(i)i(c,l);else throw de.Log(c),l}finally{fO={},c9={},pO={},s||r.removeAllFromScene(),n!==null&&wr.loggingLevel!==wr.NO_LOGGING&&de.Log(mO("loadAssets",o?o.producer:"Unknown")+(wr.loggingLevel!==wr.MINIMAL_LOGGING?n:""))}return r};wr.RegisterPlugin({name:"babylon.js",extensions:".babylon",canDirectLoad:a=>a.indexOf("babylon")!==-1,importMesh:(a,e,t,i,s,r,n,o)=>{let l="importMesh has failed JSON parse";try{var c=JSON.parse(t);l="";const u=wr.loggingLevel===wr.DETAILED_LOGGING;a?Array.isArray(a)||(a=[a]):a=null;const f=[],p=new Map,m=[];if(c.transformNodes!==void 0&&c.transformNodes!==null)for(let _=0,d=c.transformNodes.length;_<d;_++){const h=c.transformNodes[_],x=Si.Parse(h,e,i);m.push(x),p.set(x._waitingParsedUniqueId,x),x._waitingParsedUniqueId=null}if(c.meshes!==void 0&&c.meshes!==null){const _=[],d=[],h=[],x=[];for(let S=0,E=c.meshes.length;S<E;S++){const b=c.meshes[S];if(a===null||Pke(b,a,f)){if(a!==null&&delete a[a.indexOf(b.name)],b.geometryId!==void 0&&b.geometryId!==null&&c.geometries!==void 0&&c.geometries!==null){let T=!1;["boxes","spheres","cylinders","toruses","grounds","planes","torusKnots","vertexData"].forEach(O=>{T===!0||!c.geometries[O]||!Array.isArray(c.geometries[O])||c.geometries[O].forEach(R=>{if(R.id===b.geometryId){switch(O){case"vertexData":Rl.Parse(R,e,i);break}T=!0}})}),T===!1&&de.Warn("Geometry not found for mesh "+b.id)}if(b.materialUniqueId||b.materialId){const T=b.materialUniqueId?h:d;let O=T.indexOf(b.materialUniqueId||b.materialId)!==-1;if(O===!1&&c.multiMaterials!==void 0&&c.multiMaterials!==null){const R=(I,N)=>{T.push(I);const w=N4e(N,c,e,i);w&&w.material&&(c9[w.parsedMaterial.uniqueId||w.parsedMaterial.id]=w.material,l+=`
	Material `+w.material.toString(u))};for(let I=0,N=c.multiMaterials.length;I<N;I++){const w=c.multiMaterials[I];if(b.materialUniqueId&&w.uniqueId===b.materialUniqueId||w.id===b.materialId){w.materialsUniqueIds?w.materialsUniqueIds.forEach(k=>R(k,Y=>Y.uniqueId===k)):w.materials.forEach(k=>R(k,Y=>Y.id===k)),T.push(w.uniqueId||w.id);const D=tf.ParseMultiMaterial(w,e);c9[w.uniqueId||w.id]=D,D&&(O=!0,l+=`
	Multi-Material `+D.toString(u));break}}}if(O===!1){T.push(b.materialUniqueId||b.materialId);const R=N4e(I=>b.materialUniqueId&&I.uniqueId===b.materialUniqueId||I.id===b.materialId,c,e,i);!R||!R.material?de.Warn("Material not found for mesh "+b.id):(c9[R.parsedMaterial.uniqueId||R.parsedMaterial.id]=R.material,l+=`
	Material `+R.material.toString(u))}}if(b.skeletonId!==null&&b.skeletonId!==void 0&&c.skeletonId!==-1&&c.skeletons!==void 0&&c.skeletons!==null&&!(_.indexOf(b.skeletonId)>-1))for(let O=0,R=c.skeletons.length;O<R;O++){const I=c.skeletons[O];if(I.id===b.skeletonId){const N=Wv.Parse(I,e);n.push(N),_.push(I.id),l+=`
	Skeleton `+N.toString(u)}}if(b.morphTargetManagerId>-1&&c.morphTargetManagers!==void 0&&c.morphTargetManagers!==null&&!(x.indexOf(b.morphTargetManagerId)>-1))for(let O=0;O<c.morphTargetManagers.length;O++){const R=c.morphTargetManagers[O];if(R.id===b.morphTargetManagerId){const I=J6.Parse(R,e);pO[R.id]=I,x.push(R.id),l+=`
Morph target manager`+I.toString()}}const M=Ne.Parse(b,e,i);s.push(M),p.set(M._waitingParsedUniqueId,M),M._waitingParsedUniqueId=null,l+=`
	Mesh `+M.toString(u)}}e.multiMaterials.forEach(S=>{S._waitingSubMaterialsUniqueIds.forEach(E=>{S.subMaterials.push(GH(E,e))}),S._waitingSubMaterialsUniqueIds=[]}),e.meshes.forEach(S=>{S._waitingMaterialId!==null&&(S.material=GH(S._waitingMaterialId,e),S._waitingMaterialId=null)}),e.meshes.forEach(S=>{S._waitingMorphTargetManagerId!==null&&(S.morphTargetManager=pO[S._waitingMorphTargetManagerId],S._waitingMorphTargetManagerId=null)});for(let S=0,E=e.transformNodes.length;S<E;S++){const b=e.transformNodes[S];if(b._waitingParentId!==null){let M=p.get(parseInt(b._waitingParentId))||null;M===null&&(M=e.getLastEntryById(b._waitingParentId));let T=M;b._waitingParentInstanceIndex&&(T=M.instances[parseInt(b._waitingParentInstanceIndex)],b._waitingParentInstanceIndex=null),b.parent=T,b._waitingParentId=null}}let A;for(let S=0,E=e.meshes.length;S<E;S++){if(A=e.meshes[S],A._waitingParentId){let b=p.get(parseInt(A._waitingParentId))||null;b===null&&(b=e.getLastEntryById(A._waitingParentId));let M=b;A._waitingParentInstanceIndex&&(M=b.instances[parseInt(A._waitingParentInstanceIndex)],A._waitingParentInstanceIndex=null),A.parent=M,A._waitingParentId=null}A._waitingData.lods&&w4e(e,A)}for(const S of m)S.getChildMeshes(!1).length||S.dispose();for(let S=0,E=e.skeletons.length;S<E;S++){const b=e.skeletons[S];b._hasWaitingData&&(b.bones!=null&&b.bones.forEach(M=>{if(M._waitingTransformNodeId){const T=e.getLastEntryById(M._waitingTransformNodeId);T&&M.linkTransformNode(T),M._waitingTransformNodeId=null}}),b._hasWaitingData=null)}for(let S=0,E=e.meshes.length;S<E;S++)A=e.meshes[S],A._waitingData.freezeWorldMatrix?(A.freezeWorldMatrix(),A._waitingData.freezeWorldMatrix=null):A.computeWorldMatrix(!0)}if(c.particleSystems!==void 0&&c.particleSystems!==null){const _=LK(jt.NAME_PARTICLESYSTEM);if(_)for(let d=0,h=c.particleSystems.length;d<h;d++){const x=c.particleSystems[d];f.indexOf(x.emitterId)!==-1&&r.push(_(x,e,i))}}return e.geometries.forEach(_=>{_._loadedUniqueId=""}),!0}catch(u){const f=mO("importMesh",c?c.producer:"Unknown")+l;if(o)o(f,u);else throw de.Log(f),u}finally{l!==null&&wr.loggingLevel!==wr.NO_LOGGING&&de.Log(mO("importMesh",c?c.producer:"Unknown")+(wr.loggingLevel!==wr.MINIMAL_LOGGING?l:"")),c9={},pO={}}return!1},load:(a,e,t,i)=>{let s="importScene has failed JSON parse";try{var r=JSON.parse(e);switch(s="",r.useDelayedTextureLoading!==void 0&&r.useDelayedTextureLoading!==null&&(a.useDelayedTextureLoading=r.useDelayedTextureLoading&&!wr.ForceFullSceneLoadingForIncremental),r.autoClear!==void 0&&r.autoClear!==null&&(a.autoClear=r.autoClear),r.clearColor!==void 0&&r.clearColor!==null&&(a.clearColor=St.FromArray(r.clearColor)),r.ambientColor!==void 0&&r.ambientColor!==null&&(a.ambientColor=Pe.FromArray(r.ambientColor)),r.gravity!==void 0&&r.gravity!==null&&(a.gravity=P.FromArray(r.gravity)),r.useRightHandedSystem!==void 0&&(a.useRightHandedSystem=!!r.useRightHandedSystem),r.fogMode!==void 0&&r.fogMode!==null&&(a.fogMode=r.fogMode),r.fogColor!==void 0&&r.fogColor!==null&&(a.fogColor=Pe.FromArray(r.fogColor)),r.fogStart!==void 0&&r.fogStart!==null&&(a.fogStart=r.fogStart),r.fogEnd!==void 0&&r.fogEnd!==null&&(a.fogEnd=r.fogEnd),r.fogDensity!==void 0&&r.fogDensity!==null&&(a.fogDensity=r.fogDensity),s+="	Fog mode for scene:  ",a.fogMode){case 0:s+=`none
`;break;case 1:s+=`exp
`;break;case 2:s+=`exp2
`;break;case 3:s+=`linear
`;break}if(r.physicsEnabled){let o;r.physicsEngine==="cannon"||r.physicsEngine===kH.name?o=new kH(void 0,void 0,VB.LoaderInjectedPhysicsEngine):r.physicsEngine==="oimo"||r.physicsEngine===Fie.name?o=new Fie(void 0,VB.LoaderInjectedPhysicsEngine):(r.physicsEngine==="ammo"||r.physicsEngine===u5.name)&&(o=new u5(void 0,VB.LoaderInjectedPhysicsEngine,void 0)),s="	Physics engine "+(r.physicsEngine?r.physicsEngine:"oimo")+` enabled
`;const l=r.gravity?P.FromArray(r.gravity):r.physicsGravity?P.FromArray(r.physicsGravity):null;a.enablePhysics(l,o)}return r.metadata!==void 0&&r.metadata!==null&&(a.metadata=r.metadata),r.collisionsEnabled!==void 0&&r.collisionsEnabled!==null&&(a.collisionsEnabled=r.collisionsEnabled),B4e(a,e,t,i,!0)?(r.autoAnimate&&a.beginAnimation(a,r.autoAnimateFrom,r.autoAnimateTo,r.autoAnimateLoop,r.autoAnimateSpeed||1),r.activeCameraID!==void 0&&r.activeCameraID!==null&&a.setActiveCameraById(r.activeCameraID),!0):!1}catch(n){const o=mO("importScene",r?r.producer:"Unknown")+s;if(i)i(o,n);else throw de.Log(o),n}finally{s!==null&&wr.loggingLevel!==wr.NO_LOGGING&&de.Log(mO("importScene",r?r.producer:"Unknown")+(wr.loggingLevel!==wr.MINIMAL_LOGGING?s:""))}return!1},loadAssetContainer:(a,e,t,i)=>B4e(a,e,t,i)});const z4e="backgroundUboDeclaration",Oke=`uniform vPrimaryColor: vec4f;uniform vPrimaryColorShadow: vec4f;uniform vDiffuseInfos: vec2f;uniform vReflectionInfos: vec2f;uniform diffuseMatrix: mat4x4f;uniform reflectionMatrix: mat4x4f;uniform vReflectionMicrosurfaceInfos: vec3f;uniform fFovMultiplier: f32;uniform pointSize: f32;uniform shadowLevel: f32;uniform alpha: f32;uniform vBackgroundCenter: vec3f;uniform vReflectionControl: vec4f;uniform projectedGroundInfos: vec2f;
#include<sceneUboDeclaration>
`;H.IncludesShadersStoreWGSL[z4e]||(H.IncludesShadersStoreWGSL[z4e]=Oke);const F4e="fogVertexDeclaration",Rke=`#ifdef FOG
varying vFogDistance: vec3f;
#endif
`;H.IncludesShadersStoreWGSL[F4e]||(H.IncludesShadersStoreWGSL[F4e]=Rke);const kie="lightVxUboDeclaration",k4e=`#ifdef LIGHT{X}
struct Light{X}
{vLightData: vec4f,
vLightDiffuse: vec4f,
vLightSpecular: vec4f,
#ifdef SPOTLIGHT{X}
vLightDirection: vec4f,
vLightFalloff: vec4f,
#elif defined(POINTLIGHT{X})
vLightFalloff: vec4f,
#elif defined(HEMILIGHT{X})
vLightGround: vec3f,
#endif
#if defined(AREALIGHT{X})
vLightWidth: vec4f,
vLightHeight: vec4f,
#endif
shadowsInfo: vec4f,
depthValues: vec2f} ;var<uniform> light{X} : Light{X};
#ifdef SHADOW{X}
#ifdef SHADOWCSM{X}
uniform lightMatrix{X}: array<mat4x4f,SHADOWCSMNUM_CASCADES{X}>;varying vPositionFromLight{X}_0: vec4f;varying vDepthMetric{X}_0: f32;varying vPositionFromLight{X}_1: vec4f;varying vDepthMetric{X}_1: f32;varying vPositionFromLight{X}_2: vec4f;varying vDepthMetric{X}_2: f32;varying vPositionFromLight{X}_3: vec4f;varying vDepthMetric{X}_3: f32;varying vPositionFromCamera{X}: vec4f;
#elif defined(SHADOWCUBE{X})
#else
varying vPositionFromLight{X}: vec4f;varying vDepthMetric{X}: f32;uniform lightMatrix{X}: mat4x4f;
#endif
#endif
#endif
`;H.IncludesShadersStoreWGSL[kie]||(H.IncludesShadersStoreWGSL[kie]=k4e);const U4e={name:kie,shader:k4e},Dke=Object.freeze(Object.defineProperty({__proto__:null,lightVxUboDeclarationWGSL:U4e},Symbol.toStringTag,{value:"Module"})),j4e="logDepthDeclaration",Nke=`#ifdef LOGARITHMICDEPTH
uniform logarithmicDepthConstant: f32;varying vFragmentDepth: f32;
#endif
`;H.IncludesShadersStoreWGSL[j4e]||(H.IncludesShadersStoreWGSL[j4e]=Nke);const V4e="fogVertex",wke=`#ifdef FOG
#ifdef SCENE_UBO
vertexOutputs.vFogDistance=(scene.view*worldPos).xyz;
#else
vertexOutputs.vFogDistance=(uniforms.view*worldPos).xyz;
#endif
#endif
`;H.IncludesShadersStoreWGSL[V4e]||(H.IncludesShadersStoreWGSL[V4e]=wke);const Uie="shadowsVertex",G4e=`#ifdef SHADOWS
#if defined(SHADOWCSM{X})
vertexOutputs.vPositionFromCamera{X}=scene.view*worldPos;
#if SHADOWCSMNUM_CASCADES{X}>0
vertexOutputs.vPositionFromLight{X}_0=uniforms.lightMatrix{X}[0]*worldPos;
#ifdef USE_REVERSE_DEPTHBUFFER
vertexOutputs.vDepthMetric{X}_0=(-vertexOutputs.vPositionFromLight{X}_0.z+light{X}.depthValues.x)/light{X}.depthValues.y;
#else
vertexOutputs.vDepthMetric{X}_0= (vertexOutputs.vPositionFromLight{X}_0.z+light{X}.depthValues.x)/light{X}.depthValues.y;
#endif
#endif
#if SHADOWCSMNUM_CASCADES{X}>1
vertexOutputs.vPositionFromLight{X}_1=uniforms.lightMatrix{X}[1]*worldPos;
#ifdef USE_REVERSE_DEPTHBUFFER
vertexOutputs.vDepthMetric{X}_1=(-vertexOutputs.vPositionFromLight{X}_1.z+light{X}.depthValues.x)/light{X}.depthValues.y;
#else
vertexOutputs.vDepthMetric{X}_1= (vertexOutputs.vPositionFromLight{X}_1.z+light{X}.depthValues.x)/light{X}.depthValues.y;
#endif
#endif 
#if SHADOWCSMNUM_CASCADES{X}>2
vertexOutputs.vPositionFromLight{X}_2=uniforms.lightMatrix{X}[2]*worldPos;
#ifdef USE_REVERSE_DEPTHBUFFER
vertexOutputs.vDepthMetric{X}_2=(-vertexOutputs.vPositionFromLight{X}_2.z+light{X}.depthValues.x)/light{X}.depthValues.y;
#else
vertexOutputs.vDepthMetric{X}_2= (vertexOutputs.vPositionFromLight{X}_2.z+light{X}.depthValues.x)/light{X}.depthValues.y;
#endif
#endif 
#if SHADOWCSMNUM_CASCADES{X}>3
vertexOutputs.vPositionFromLight{X}_3=uniforms.lightMatrix{X}[3]*worldPos;
#ifdef USE_REVERSE_DEPTHBUFFER
vertexOutputs.vDepthMetric{X}_3=(-vertexOutputs.vPositionFromLight{X}_3.z+light{X}.depthValues.x)/light{X}.depthValues.y;
#else
vertexOutputs.vDepthMetric{X}_3= (vertexOutputs.vPositionFromLight{X}_3.z+light{X}.depthValues.x)/light{X}.depthValues.y;
#endif
#endif 
#elif defined(SHADOW{X}) && !defined(SHADOWCUBE{X})
vertexOutputs.vPositionFromLight{X}=uniforms.lightMatrix{X}*worldPos;
#ifdef USE_REVERSE_DEPTHBUFFER
vertexOutputs.vDepthMetric{X}=(-vertexOutputs.vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;
#else
vertexOutputs.vDepthMetric{X}=(vertexOutputs.vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;
#endif
#endif
#endif
`;H.IncludesShadersStoreWGSL[Uie]||(H.IncludesShadersStoreWGSL[Uie]=G4e);const W4e={name:Uie,shader:G4e},Bke=Object.freeze(Object.defineProperty({__proto__:null,shadowsVertexWGSL:W4e},Symbol.toStringTag,{value:"Module"})),H4e="logDepthVertex",zke=`#ifdef LOGARITHMICDEPTH
vertexOutputs.vFragmentDepth=1.0+vertexOutputs.position.w;vertexOutputs.position.z=log2(max(0.000001,vertexOutputs.vFragmentDepth))*uniforms.logarithmicDepthConstant;
#endif
`;H.IncludesShadersStoreWGSL[H4e]||(H.IncludesShadersStoreWGSL[H4e]=zke);const jie="backgroundVertexShader",Y4e=`#include<backgroundUboDeclaration>
#include<helperFunctions>
attribute position: vec3f;
#ifdef NORMAL
attribute normal: vec3f;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
varying vPositionW: vec3f;
#ifdef NORMAL
varying vNormalW: vec3f;
#endif
#ifdef UV1
attribute uv: vec2f;
#endif
#ifdef UV2
attribute uv2: vec2f;
#endif
#ifdef MAINUV1
varying vMainUV1: vec2f;
#endif
#ifdef MAINUV2
varying vMainUV2: vec2f;
#endif
#if defined(DIFFUSE) && DIFFUSEDIRECTUV==0
varying vDiffuseUV: vec2f;
#endif
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#include<lightVxUboDeclaration>[0..maxSimultaneousLights]
#ifdef REFLECTIONMAP_SKYBOX
varying vPositionUVW: vec3f;
#endif
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
varying vDirectionW: vec3f;
#endif
#include<logDepthDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef REFLECTIONMAP_SKYBOX
vertexOutputs.vPositionUVW=input.position;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
#ifdef MULTIVIEW
if (gl_ViewID_OVR==0u) {vertexOutputs.position=scene.viewProjection*finalWorld* vec4f(input.position,1.0);} else {vertexOutputs.position=scene.viewProjectionR*finalWorld* vec4f(input.position,1.0);}
#else
vertexOutputs.position=scene.viewProjection*finalWorld* vec4f(input.position,1.0);
#endif
var worldPos: vec4f=finalWorld* vec4f(input.position,1.0);vertexOutputs.vPositionW= worldPos.xyz;
#ifdef NORMAL
var normalWorld: mat3x3f=mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz);
#ifdef NONUNIFORMSCALING
normalWorld=transposeMat3(inverseMat3(normalWorld));
#endif
vertexOutputs.vNormalW=normalize(normalWorld*input.normal);
#endif
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
vertexOutputs.vDirectionW=normalize((finalWorld*vec4f(input.position,0.0)).xyz);
#ifdef EQUIRECTANGULAR_RELFECTION_FOV
var screenToWorld: mat3x3f=inverseMat3( mat3x3f(finalWorld*scene.viewProjection));var segment: vec3f=mix(vertexOutputs.vDirectionW,screenToWorld* vec3f(0.0,0.0,1.0),abs(fFovMultiplier-1.0));if (fFovMultiplier<=1.0) {vertexOutputs.vDirectionW=normalize(segment);} else {vertexOutputs.vDirectionW=normalize(vertexOutputs.vDirectionW+(vertexOutputs.vDirectionW-segment));}
#endif
#endif
#ifndef UV1
var uv: vec2f=vec2f(0.,0.);
#else
var uv=input.uv;
#endif
#ifndef UV2
var uv2: vec2f=vec2f(0.,0.);
#else
var uv2=input.uv2;
#endif
#ifdef MAINUV1
vertexOutputs.vMainUV1=uv;
#endif
#ifdef MAINUV2
vertexOutputs.vMainUV2=uv2;
#endif
#if defined(DIFFUSE) && DIFFUSEDIRECTUV==0
if (uniforms.vDiffuseInfos.x==0.)
{vertexOutputs.vDiffuseUV= (uniforms.diffuseMatrix* vec4f(uv,1.0,0.0)).xy;}
else
{vertexOutputs.vDiffuseUV= (uniforms.diffuseMatrix* vec4f(uv2,1.0,0.0)).xy;}
#endif
#include<clipPlaneVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#ifdef VERTEXCOLOR
vertexOutputs.vColor=vertexInputs.color;
#endif
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStoreWGSL[jie]||(H.ShadersStoreWGSL[jie]=Y4e);const X4e={name:jie,shader:Y4e},Fke=Object.freeze(Object.defineProperty({__proto__:null,backgroundVertexShaderWGSL:X4e},Symbol.toStringTag,{value:"Module"})),Vie="reflectionFunction",Z4e=`fn computeFixedEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,direction: vec3f)->vec3f
{var lon: f32=atan2(direction.z,direction.x);var lat: f32=acos(direction.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(s,t,0); }
fn computeMirroredFixedEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,direction: vec3f)->vec3f
{var lon: f32=atan2(direction.z,direction.x);var lat: f32=acos(direction.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(1.0-s,t,0); }
fn computeEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f
{var cameraToVertex: vec3f=normalize(worldPos.xyz-eyePosition);var r: vec3f=normalize(reflect(cameraToVertex,worldNormal));r= (reflectionMatrix* vec4f(r,0)).xyz;var lon: f32=atan2(r.z,r.x);var lat: f32=acos(r.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(s,t,0);}
fn computeSphericalCoords(worldPos: vec4f,worldNormal: vec3f,view: mat4x4f,reflectionMatrix: mat4x4f)->vec3f
{var viewDir: vec3f=normalize((view*worldPos).xyz);var viewNormal: vec3f=normalize((view* vec4f(worldNormal,0.0)).xyz);var r: vec3f=reflect(viewDir,viewNormal);r= (reflectionMatrix* vec4f(r,0)).xyz;r.z=r.z-1.0;var m: f32=2.0*length(r);return vec3f(r.x/m+0.5,1.0-r.y/m-0.5,0);}
fn computePlanarCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f
{var viewDir: vec3f=worldPos.xyz-eyePosition;var coords: vec3f=normalize(reflect(viewDir,worldNormal));return (reflectionMatrix* vec4f(coords,1)).xyz;}
fn computeCubicCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f
{var viewDir: vec3f=normalize(worldPos.xyz-eyePosition);var coords: vec3f=reflect(viewDir,worldNormal);coords= (reflectionMatrix* vec4f(coords,0)).xyz;
#ifdef INVERTCUBICMAP
coords.y*=-1.0;
#endif
return coords;}
fn computeCubicLocalCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f,reflectionSize: vec3f,reflectionPosition: vec3f)->vec3f
{var viewDir: vec3f=normalize(worldPos.xyz-eyePosition);var coords: vec3f=reflect(viewDir,worldNormal);coords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);coords=(reflectionMatrix* vec4f(coords,0)).xyz;
#ifdef INVERTCUBICMAP
coords.y*=-1.0;
#endif
return coords;}
fn computeProjectionCoords(worldPos: vec4f,view: mat4x4f,reflectionMatrix: mat4x4f)->vec3f
{return (reflectionMatrix*(view*worldPos)).xyz;}
fn computeSkyBoxCoords(positionW: vec3f,reflectionMatrix: mat4x4f)->vec3f
{return (reflectionMatrix* vec4f(positionW,1.)).xyz;}
#ifdef REFLECTION
fn computeReflectionCoords(worldPos: vec4f,worldNormal: vec3f)->vec3f
{
#ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED
var direction: vec3f=normalize(fragmentInputs.vDirectionW);return computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);
#endif
#ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED
var direction: vec3f=normalize(fragmentInputs.vDirectionW);return computeFixedEquirectangularCoords(worldPos,worldNormal,direction);
#endif
#ifdef REFLECTIONMAP_EQUIRECTANGULAR
return computeEquirectangularCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix);
#endif
#ifdef REFLECTIONMAP_SPHERICAL
return computeSphericalCoords(worldPos,worldNormal,scene.view,uniforms.reflectionMatrix);
#endif
#ifdef REFLECTIONMAP_PLANAR
return computePlanarCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix);
#endif
#ifdef REFLECTIONMAP_CUBIC
#ifdef USE_LOCAL_REFLECTIONMAP_CUBIC
return computeCubicLocalCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix,uniforms.vReflectionSize,uniforms.vReflectionPosition);
#else
return computeCubicCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix);
#endif
#endif
#ifdef REFLECTIONMAP_PROJECTION
return computeProjectionCoords(worldPos,scene.view,uniforms.reflectionMatrix);
#endif
#ifndef REFLECTIONMAP_CUBIC
#ifdef REFLECTIONMAP_SKYBOX
return computeSkyBoxCoords(fragmentInputs.vPositionUVW,uniforms.reflectionMatrix);
#endif
#endif
#ifdef REFLECTIONMAP_EXPLICIT
return vec3f(0,0,0);
#endif
}
#endif
`;H.IncludesShadersStoreWGSL[Vie]||(H.IncludesShadersStoreWGSL[Vie]=Z4e);const K4e={name:Vie,shader:Z4e},kke=Object.freeze(Object.defineProperty({__proto__:null,reflectionFunctionWGSL:K4e},Symbol.toStringTag,{value:"Module"})),Gie="imageProcessingDeclaration",q4e=`#ifdef EXPOSURE
uniform exposureLinear: f32;
#endif
#ifdef CONTRAST
uniform contrast: f32;
#endif
#if defined(VIGNETTE) || defined(DITHER)
uniform vInverseScreenSize: vec2f;
#endif
#ifdef VIGNETTE
uniform vignetteSettings1: vec4f;uniform vignetteSettings2: vec4f;
#endif
#ifdef COLORCURVES
uniform vCameraColorCurveNegative: vec4f;uniform vCameraColorCurveNeutral: vec4f;uniform vCameraColorCurvePositive: vec4f;
#endif
#ifdef COLORGRADING
#ifdef COLORGRADING3D
var txColorTransformSampler: sampler;var txColorTransform: texture_3d<f32>;
#else
var txColorTransformSampler: sampler;var txColorTransform: texture_2d<f32>;
#endif
uniform colorTransformSettings: vec4f;
#endif
#ifdef DITHER
uniform ditherIntensity: f32;
#endif
`;H.IncludesShadersStoreWGSL[Gie]||(H.IncludesShadersStoreWGSL[Gie]=q4e);const Q4e={name:Gie,shader:q4e},Uke=Object.freeze(Object.defineProperty({__proto__:null,imageProcessingDeclarationWGSL:Q4e},Symbol.toStringTag,{value:"Module"})),Wie="lightUboDeclaration",J4e=`#ifdef LIGHT{X}
struct Light{X}
{vLightData: vec4f,
vLightDiffuse: vec4f,
vLightSpecular: vec4f,
#ifdef SPOTLIGHT{X}
vLightDirection: vec4f,
vLightFalloff: vec4f,
#elif defined(POINTLIGHT{X})
vLightFalloff: vec4f,
#elif defined(HEMILIGHT{X})
vLightGround: vec3f,
#endif
#if defined(AREALIGHT{X})
vLightWidth: vec4f,
vLightHeight: vec4f,
#endif
shadowsInfo: vec4f,
depthValues: vec2f} ;var<uniform> light{X} : Light{X};
#ifdef IESLIGHTTEXTURE{X}
var iesLightTexture{X}Sampler: sampler;var iesLightTexture{X}: texture_2d<f32>;
#endif
#ifdef PROJECTEDLIGHTTEXTURE{X}
uniform textureProjectionMatrix{X}: mat4x4f;var projectionLightTexture{X}Sampler: sampler;var projectionLightTexture{X}: texture_2d<f32>;
#endif
#ifdef SHADOW{X}
#ifdef SHADOWCSM{X}
uniform lightMatrix{X}: array<mat4x4f,SHADOWCSMNUM_CASCADES{X}>;uniform viewFrustumZ{X}: array<f32,SHADOWCSMNUM_CASCADES{X}>;uniform frustumLengths{X}: array<f32,SHADOWCSMNUM_CASCADES{X}>;uniform cascadeBlendFactor{X}: f32;varying vPositionFromLight{X}_0: vec4f;varying vDepthMetric{X}_0: f32;varying vPositionFromLight{X}_1: vec4f;varying vDepthMetric{X}_1: f32;varying vPositionFromLight{X}_2: vec4f;varying vDepthMetric{X}_2: f32;varying vPositionFromLight{X}_3: vec4f;varying vDepthMetric{X}_3: f32;varying vPositionFromCamera{X}: vec4f;var<private> vPositionFromLight{X}: array<vec4f,4>;var<private> vDepthMetric{X} : array<f32,4>;
#if defined(SHADOWPCSS{X})
var shadowTexture{X}Sampler: sampler_comparison; 
var shadowTexture{X}: texture_depth_2d_array;var depthTexture{X}Sampler: sampler;var depthTexture{X}: texture_2d_array<f32>;uniform lightSizeUVCorrection{X}: array<vec2f,SHADOWCSMNUM_CASCADES{X}>;uniform depthCorrection{X}: array<f32,SHADOWCSMNUM_CASCADES{X}>;uniform penumbraDarkness{X}: f32;
#elif defined(SHADOWPCF{X})
var shadowTexture{X}Sampler: sampler_comparison;var shadowTexture{X}: texture_depth_2d_array;
#else 
var shadowTexture{X}Sampler: sampler; 
var shadowTexture{X}: texture_2d_array<f32>;
#endif
#ifdef SHADOWCSMDEBUG{X}
const vCascadeColorsMultiplier{X}: array<vec3f,8>=array<vec3f,8>
(
vec3f ( 1.5,0.0,0.0 ),
vec3f ( 0.0,1.5,0.0 ),
vec3f ( 0.0,0.0,5.5 ),
vec3f ( 1.5,0.0,5.5 ),
vec3f ( 1.5,1.5,0.0 ),
vec3f ( 1.0,1.0,1.0 ),
vec3f ( 0.0,1.0,5.5 ),
vec3f ( 0.5,3.5,0.75 )
);
#endif
#elif defined(SHADOWCUBE{X})
var shadowTexture{X}Sampler: sampler;var shadowTexture{X}: texture_cube<f32>;
#else
varying vPositionFromLight{X}: vec4f;varying vDepthMetric{X}: f32;
#if defined(SHADOWPCSS{X})
var shadowTexture{X}Sampler: sampler_comparison; 
var shadowTexture{X}: texture_depth_2d;var depthTexture{X}Sampler: sampler; 
var depthTexture{X}: texture_2d<f32>;
#elif defined(SHADOWPCF{X})
var shadowTexture{X}Sampler: sampler_comparison;var shadowTexture{X}: texture_depth_2d;
#else
var shadowTexture{X}Sampler: sampler; 
var shadowTexture{X}: texture_2d<f32>;
#endif
uniform lightMatrix{X}: mat4x4f;
#endif
#endif
#endif
`;H.IncludesShadersStoreWGSL[Wie]||(H.IncludesShadersStoreWGSL[Wie]=J4e);const $4e={name:Wie,shader:J4e},jke=Object.freeze(Object.defineProperty({__proto__:null,lightUboDeclarationWGSL:$4e},Symbol.toStringTag,{value:"Module"})),ege="ltcHelperFunctions",Vke=`fn LTCUv(N: vec3f,V: vec3f,roughness: f32)->vec2f {var LUTSIZE: f32=64.0;var LUTSCALE: f32=( LUTSIZE-1.0 )/LUTSIZE;var LUTBIAS:f32=0.5/LUTSIZE;var dotNV:f32=saturate( dot( N,V ) );var uv:vec2f=vec2f( roughness,sqrt( 1.0-dotNV ) );uv=uv*LUTSCALE+LUTBIAS;return uv;}
fn LTCClippedSphereFormFactor( f:vec3f )->f32 {var l: f32=length( f );return max( ( l*l+f.z )/( l+1.0 ),0.0 );}
fn LTCEdgeVectorFormFactor( v1:vec3f,v2:vec3f )->vec3f {var x:f32=dot( v1,v2 );var y:f32=abs( x );var a:f32=0.8543985+( 0.4965155+0.0145206*y )*y;var b:f32=3.4175940+( 4.1616724+y )*y;var v:f32=a/b;var thetaSintheta:f32=0.0;if( x>0.0 )
{thetaSintheta=v;}
else
{thetaSintheta=0.5*inverseSqrt( max( 1.0-x*x,0.00000001 ) )-v;}
return cross( v1,v2 )*thetaSintheta;}
fn LTCEvaluate( N:vec3f,V:vec3f,P:vec3f,mInv: mat3x3<f32>,rectCoords0:vec3f,rectCoords1:vec3f,rectCoords2:vec3f,rectCoords3:vec3f )->vec3f {var v1:vec3f=rectCoords1-rectCoords0;var v2:vec3f=rectCoords3-rectCoords0;var lightNormal:vec3f=cross( v1,v2 );if( dot( lightNormal,P-rectCoords0 )<0.0 ){return vec3f( 0.0 );}
var T1:vec3f=normalize( V-N*dot( V,N ) );var T2:vec3f=- cross( N,T1 ); 
var mat: mat3x3<f32>=mInv*transposeMat3( mat3x3<f32>( T1,T2,N ) );var coords0: vec3f=mat*( rectCoords0-P );var coords1: vec3f=mat*( rectCoords1-P );var coords2: vec3f=mat*( rectCoords2-P );var coords3: vec3f=mat*( rectCoords3-P );coords0=normalize( coords0 );coords1=normalize( coords1 );coords2=normalize( coords2 );coords3=normalize( coords3 );var vectorFormFactor:vec3f=vec3( 0.0 );vectorFormFactor+=LTCEdgeVectorFormFactor( coords0,coords1 );vectorFormFactor+=LTCEdgeVectorFormFactor( coords1,coords2 );vectorFormFactor+=LTCEdgeVectorFormFactor( coords2,coords3 );vectorFormFactor+=LTCEdgeVectorFormFactor( coords3,coords0 );var result:f32=LTCClippedSphereFormFactor( vectorFormFactor );return vec3f( result );}
struct areaLightData
{Diffuse: vec3f,
Specular: vec3f,
Fresnel: vec4f};fn computeAreaLightSpecularDiffuseFresnel(ltc1: texture_2d<f32>,ltc1Sampler:sampler,ltc2:texture_2d<f32>,ltc2Sampler:sampler,viewDir: vec3f,normal:vec3f,position:vec3f,lightPos:vec3f,halfWidth:vec3f, halfHeight:vec3f,roughness:f32)->areaLightData {var result: areaLightData;var rectCoords0:vec3f=lightPos+halfWidth-halfHeight; 
var rectCoords1:vec3f=lightPos-halfWidth-halfHeight;var rectCoords2:vec3f=lightPos-halfWidth+halfHeight;var rectCoords3:vec3f=lightPos+halfWidth+halfHeight;
#ifdef SPECULARTERM
var uv:vec2f=LTCUv( normal,viewDir,roughness );var t1:vec4f=textureSample( ltc1,ltc1Sampler,uv );var t2:vec4f=textureSample( ltc2,ltc2Sampler,uv );var mInv:mat3x3<f32>=mat3x3<f32>(
vec3f( t1.x,0,t1.y ),
vec3f( 0,1, 0 ),
vec3f( t1.z,0,t1.w )
);result.Fresnel=t2;result.Specular=LTCEvaluate( normal,viewDir,position,mInv,rectCoords0,rectCoords1,rectCoords2,rectCoords3 );
#endif
var mInvEmpty:mat3x3<f32>=mat3x3<f32>(
vec3f( 1,0,0 ),
vec3f( 0,1,0 ),
vec3f( 0,0,1 )
);result.Diffuse+=LTCEvaluate( normal,viewDir,position,mInvEmpty,rectCoords0,rectCoords1,rectCoords2,rectCoords3 );return result;}`;H.IncludesShadersStoreWGSL[ege]||(H.IncludesShadersStoreWGSL[ege]=Vke);const Hie="lightsFragmentFunctions",tge=`struct lightingInfo
{diffuse: vec3f,
#ifdef SPECULARTERM
specular: vec3f,
#endif
#ifdef NDOTL
ndl: f32,
#endif
};fn computeLighting(viewDirectionW: vec3f,vNormal: vec3f,lightData: vec4f,diffuseColor: vec3f,specularColor: vec3f,range: f32,glossiness: f32)->lightingInfo {var result: lightingInfo;var lightVectorW: vec3f;var attenuation: f32=1.0;if (lightData.w==0.)
{var direction: vec3f=lightData.xyz-fragmentInputs.vPositionW;var attenuation: f32=max(0.,1.0-length(direction)/range);lightVectorW=normalize(direction);}
else
{lightVectorW=normalize(-lightData.xyz);}
var ndl: f32=max(0.,dot(vNormal,lightVectorW));
#ifdef NDOTL
result.ndl=ndl;
#endif
result.diffuse=ndl*diffuseColor*attenuation;
#ifdef SPECULARTERM
var angleW: vec3f=normalize(viewDirectionW+lightVectorW);var specComp: f32=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;
#endif
return result;}
fn getAttenuation(cosAngle: f32,exponent: f32)->f32 {return max(0.,pow(cosAngle,exponent));}
fn getIESAttenuation(cosAngle: f32,iesLightTexture: texture_2d<f32>,iesLightTextureSampler: sampler)->f32 {var angle=acos(cosAngle)/PI;return textureSampleLevel(iesLightTexture,iesLightTextureSampler,vec2f(angle,0),0.).r;}
fn computeBasicSpotLighting(viewDirectionW: vec3f,lightVectorW: vec3f,vNormal: vec3f,attenuation: f32,diffuseColor: vec3f,specularColor: vec3f,glossiness: f32)->lightingInfo {var result: lightingInfo;var ndl: f32=max(0.,dot(vNormal,lightVectorW));
#ifdef NDOTL
result.ndl=ndl;
#endif
result.diffuse=ndl*diffuseColor*attenuation;
#ifdef SPECULARTERM
var angleW: vec3f=normalize(viewDirectionW+lightVectorW);var specComp: f32=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;
#endif
return result;}
fn computeIESSpotLighting(viewDirectionW: vec3f,vNormal: vec3f,lightData: vec4f,lightDirection: vec4f,diffuseColor: vec3f,specularColor: vec3f,range: f32,glossiness: f32,iesLightTexture: texture_2d<f32>,iesLightTextureSampler: sampler)->lightingInfo {var direction: vec3f=lightData.xyz-fragmentInputs.vPositionW;var lightVectorW: vec3f=normalize(direction);var attenuation: f32=max(0.,1.0-length(direction)/range);var dotProduct=dot(lightDirection.xyz,-lightVectorW);var cosAngle: f32=max(0.,dotProduct);if (cosAngle>=lightDirection.w)
{attenuation*=getIESAttenuation(dotProduct,iesLightTexture,iesLightTextureSampler);return computeBasicSpotLighting(viewDirectionW,lightVectorW,vNormal,attenuation,diffuseColor,specularColor,glossiness);}
var result: lightingInfo;result.diffuse=vec3f(0.);
#ifdef SPECULARTERM
result.specular=vec3f(0.);
#endif
#ifdef NDOTL
result.ndl=0.;
#endif
return result;}
fn computeSpotLighting(viewDirectionW: vec3f,vNormal: vec3f ,lightData: vec4f,lightDirection: vec4f,diffuseColor: vec3f,specularColor: vec3f,range: f32,glossiness: f32)->lightingInfo {var direction: vec3f=lightData.xyz-fragmentInputs.vPositionW;var lightVectorW: vec3f=normalize(direction);var attenuation: f32=max(0.,1.0-length(direction)/range);var cosAngle: f32=max(0.,dot(lightDirection.xyz,-lightVectorW));if (cosAngle>=lightDirection.w)
{attenuation*=getAttenuation(cosAngle,lightData.w);return computeBasicSpotLighting(viewDirectionW,lightVectorW,vNormal,attenuation,diffuseColor,specularColor,glossiness);}
var result: lightingInfo;result.diffuse=vec3f(0.);
#ifdef SPECULARTERM
result.specular=vec3f(0.);
#endif
#ifdef NDOTL
result.ndl=0.;
#endif
return result;}
fn computeHemisphericLighting(viewDirectionW: vec3f,vNormal: vec3f,lightData: vec4f,diffuseColor: vec3f,specularColor: vec3f,groundColor: vec3f,glossiness: f32)->lightingInfo {var result: lightingInfo;var ndl: f32=dot(vNormal,lightData.xyz)*0.5+0.5;
#ifdef NDOTL
result.ndl=ndl;
#endif
result.diffuse=mix(groundColor,diffuseColor,ndl);
#ifdef SPECULARTERM
var angleW: vec3f=normalize(viewDirectionW+lightData.xyz);var specComp: f32=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor;
#endif
return result;}
fn computeProjectionTextureDiffuseLighting(projectionLightTexture: texture_2d<f32>,projectionLightSampler: sampler,textureProjectionMatrix: mat4x4f,posW: vec3f)->vec3f {var strq: vec4f=textureProjectionMatrix*vec4f(posW,1.0);strq/=strq.w;var textureColor: vec3f=textureSample(projectionLightTexture,projectionLightSampler,strq.xy).rgb;return textureColor;}
#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
#include<ltcHelperFunctions>
var areaLightsLTC1SamplerSampler: sampler;var areaLightsLTC1Sampler: texture_2d<f32>;var areaLightsLTC2SamplerSampler: sampler;var areaLightsLTC2Sampler: texture_2d<f32>;fn computeAreaLighting(ltc1: texture_2d<f32>,ltc1Sampler:sampler,ltc2:texture_2d<f32>,ltc2Sampler:sampler,viewDirectionW: vec3f,vNormal:vec3f,vPosition:vec3f,lightPosition:vec3f,halfWidth:vec3f, halfHeight:vec3f,diffuseColor:vec3f,specularColor:vec3f,roughness:f32 )->lightingInfo
{var result: lightingInfo;var data: areaLightData=computeAreaLightSpecularDiffuseFresnel(ltc1,ltc1Sampler,ltc2,ltc2Sampler,viewDirectionW,vNormal,vPosition,lightPosition,halfWidth,halfHeight,roughness);
#ifdef SPECULARTERM
var fresnel:vec3f=( specularColor*data.Fresnel.x+( vec3f( 1.0 )-specularColor )*data.Fresnel.y );result.specular+=specularColor*fresnel*data.Specular;
#endif
result.diffuse+=diffuseColor*data.Diffuse;return result;}
#endif
`;H.IncludesShadersStoreWGSL[Hie]||(H.IncludesShadersStoreWGSL[Hie]=tge);const ige={name:Hie,shader:tge},Gke=Object.freeze(Object.defineProperty({__proto__:null,lightsFragmentFunctionsWGSL:ige},Symbol.toStringTag,{value:"Module"})),Yie="shadowsFragmentFunctions",sge=`#ifdef SHADOWS
#ifndef SHADOWFLOAT
fn unpack(color: vec4f)->f32
{const bit_shift: vec4f= vec4f(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(color,bit_shift);}
#endif
fn computeFallOff(value: f32,clipSpace: vec2f,frustumEdgeFalloff: f32)->f32
{var mask: f32=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.));return mix(value,1.0,mask);}
fn computeShadowCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube<f32>,shadowSampler: sampler,darkness: f32,depthValues: vec2f)->f32
{var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
#ifndef SHADOWFLOAT
var shadow: f32=unpack(textureSample(shadowTexture,shadowSampler,directionToLight));
#else
var shadow: f32=textureSample(shadowTexture,shadowSampler,directionToLight).x;
#endif
return select(1.0,darkness,depth>shadow);}
fn computeShadowWithPoissonSamplingCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube<f32>,shadowSampler: sampler,mapSize: f32,darkness: f32,depthValues: vec2f)->f32
{var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;var visibility: f32=1.;var poissonDisk: array<vec3f,4>;poissonDisk[0]= vec3f(-1.0,1.0,-1.0);poissonDisk[1]= vec3f(1.0,-1.0,-1.0);poissonDisk[2]= vec3f(-1.0,-1.0,-1.0);poissonDisk[3]= vec3f(1.0,-1.0,1.0);
#ifndef SHADOWFLOAT
if (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[0]*mapSize))<depth) {visibility-=0.25;};if (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[1]*mapSize))<depth) {visibility-=0.25;};if (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[2]*mapSize))<depth) {visibility-=0.25;};if (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[3]*mapSize))<depth) {visibility-=0.25;};
#else
if (textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[0]*mapSize).x<depth) {visibility-=0.25;};if (textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[1]*mapSize).x<depth) {visibility-=0.25;};if (textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[2]*mapSize).x<depth) {visibility-=0.25;};if (textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[3]*mapSize).x<depth) {visibility-=0.25;};
#endif
return min(1.0,visibility+darkness);}
fn computeShadowWithESMCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube<f32>,shadowSampler: sampler,darkness: f32,depthScale: f32,depthValues: vec2f)->f32
{var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);var shadowPixelDepth: f32=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
#ifndef SHADOWFLOAT
var shadowMapSample: f32=unpack(textureSample(shadowTexture,shadowSampler,directionToLight));
#else
var shadowMapSample: f32=textureSample(shadowTexture,shadowSampler,directionToLight).x;
#endif
var esm: f32=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return esm;}
fn computeShadowWithCloseESMCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube<f32>,shadowSampler: sampler,darkness: f32,depthScale: f32,depthValues: vec2f)->f32
{var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);var shadowPixelDepth: f32=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
#ifndef SHADOWFLOAT
var shadowMapSample: f32=unpack(textureSample(shadowTexture,shadowSampler,directionToLight));
#else
var shadowMapSample: f32=textureSample(shadowTexture,shadowSampler,directionToLight).x;
#endif
var esm: f32=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return esm;}
fn computeShadowCSM(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d_array<f32>,shadowSampler: sampler,darkness: f32,frustumEdgeFalloff: f32)->f32
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);
#ifndef SHADOWFLOAT
var shadow: f32=unpack(textureSample(shadowTexture,shadowSampler,uv,layer));
#else
var shadow: f32=textureSample(shadowTexture,shadowSampler,uv,layer).x;
#endif
return select(1.,computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff),shadowPixelDepth>shadow );}
fn computeShadow(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d<f32>,shadowSampler: sampler,darkness: f32,frustumEdgeFalloff: f32)->f32
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
{return 1.0;}
else
{var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);
#ifndef SHADOWFLOAT
var shadow: f32=unpack(textureSampleLevel(shadowTexture,shadowSampler,uv,0.));
#else
var shadow: f32=textureSampleLevel(shadowTexture,shadowSampler,uv,0.).x;
#endif
return select(1.,computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff),shadowPixelDepth>shadow );}}
fn computeShadowWithPoissonSampling(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d<f32>,shadowSampler: sampler,mapSize: f32,darkness: f32,frustumEdgeFalloff: f32)->f32
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
{return 1.0;}
else
{var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);var visibility: f32=1.;var poissonDisk: array<vec2f,4>;poissonDisk[0]= vec2f(-0.94201624,-0.39906216);poissonDisk[1]= vec2f(0.94558609,-0.76890725);poissonDisk[2]= vec2f(-0.094184101,-0.92938870);poissonDisk[3]= vec2f(0.34495938,0.29387760);
#ifndef SHADOWFLOAT
if (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[0]*mapSize,0.))<shadowPixelDepth) {visibility-=0.25;}
if (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[1]*mapSize,0.))<shadowPixelDepth) {visibility-=0.25;}
if (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[2]*mapSize,0.))<shadowPixelDepth) {visibility-=0.25;}
if (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[3]*mapSize,0.))<shadowPixelDepth) {visibility-=0.25;}
#else
if (textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[0]*mapSize,0.).x<shadowPixelDepth) {visibility-=0.25;}
if (textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[1]*mapSize,0.).x<shadowPixelDepth) {visibility-=0.25;}
if (textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[2]*mapSize,0.).x<shadowPixelDepth) {visibility-=0.25;}
if (textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[3]*mapSize,0.).x<shadowPixelDepth) {visibility-=0.25;}
#endif
return computeFallOff(min(1.0,visibility+darkness),clipSpace.xy,frustumEdgeFalloff);}}
fn computeShadowWithESM(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d<f32>,shadowSampler: sampler,darkness: f32,depthScale: f32,frustumEdgeFalloff: f32)->f32
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
{return 1.0;}
else
{var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);
#ifndef SHADOWFLOAT
var shadowMapSample: f32=unpack(textureSampleLevel(shadowTexture,shadowSampler,uv,0.));
#else
var shadowMapSample: f32=textureSampleLevel(shadowTexture,shadowSampler,uv,0.).x;
#endif
var esm: f32=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}
fn computeShadowWithCloseESM(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d<f32>,shadowSampler: sampler,darkness: f32,depthScale: f32,frustumEdgeFalloff: f32)->f32
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
{return 1.0;}
else
{var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0); 
#ifndef SHADOWFLOAT
var shadowMapSample: f32=unpack(textureSampleLevel(shadowTexture,shadowSampler,uv,0.));
#else
var shadowMapSample: f32=textureSampleLevel(shadowTexture,shadowSampler,uv,0.).x;
#endif
var esm: f32=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}
fn getZInClip(clipSpace: vec3f,uvDepth: vec3f)->f32
{
#ifdef IS_NDC_HALF_ZRANGE
return clipSpace.z;
#else
return uvDepth.z;
#endif
}
const GREATEST_LESS_THAN_ONE: f32=0.99999994;
#define DISABLE_UNIFORMITY_ANALYSIS
fn computeShadowWithCSMPCF1(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,darkness: f32,frustumEdgeFalloff: f32)->f32
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var shadow: f32=textureSampleCompare(shadowTexture,shadowSampler,uvDepth.xy,layer,uvDepth.z);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
fn computeShadowWithCSMPCF3(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x; 
uv+=0.5; 
var st: vec2f=fract(uv); 
var base_uv: vec2f=floor(uv)-0.5; 
base_uv*=shadowMapSizeAndInverse.y; 
var uvw0: vec2f=3.-2.*st;var uvw1: vec2f=1.+2.*st;var u: vec2f= vec2f((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;var v: vec2f= vec2f((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),layer,uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),layer,uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),layer,uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),layer,uvDepth.z);shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
fn computeShadowWithCSMPCF5(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x; 
uv+=0.5; 
var st: vec2f=fract(uv); 
var base_uv: vec2f=floor(uv)-0.5; 
base_uv*=shadowMapSizeAndInverse.y; 
var uvw0: vec2f=4.-3.*st;var uvw1: vec2f= vec2f(7.);var uvw2: vec2f=1.+3.*st;var u: vec3f= vec3f((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;var v: vec3f= vec3f((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),layer,uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),layer,uvDepth.z);shadow+=uvw2.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[0]),layer,uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),layer,uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),layer,uvDepth.z);shadow+=uvw2.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[1]),layer,uvDepth.z);shadow+=uvw0.x*uvw2.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[2]),layer,uvDepth.z);shadow+=uvw1.x*uvw2.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[2]),layer,uvDepth.z);shadow+=uvw2.x*uvw2.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[2]),layer,uvDepth.z);shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
fn computeShadowWithPCF1(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,darkness: f32,frustumEdgeFalloff: f32)->f32
{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}
else
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);var shadow: f32=textureSampleCompareLevel(shadowTexture,shadowSampler,uvDepth.xy,uvDepth.z);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
fn computeShadowWithPCF3(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32
{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}
else
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x; 
uv+=0.5; 
var st: vec2f=fract(uv); 
var base_uv: vec2f=floor(uv)-0.5; 
base_uv*=shadowMapSizeAndInverse.y; 
var uvw0: vec2f=3.-2.*st;var uvw1: vec2f=1.+2.*st;var u: vec2f= vec2f((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;var v: vec2f= vec2f((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),uvDepth.z);shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
fn computeShadowWithPCF5(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32
{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}
else
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x; 
uv+=0.5; 
var st: vec2f=fract(uv); 
var base_uv: vec2f=floor(uv)-0.5; 
base_uv*=shadowMapSizeAndInverse.y; 
var uvw0: vec2f=4.-3.*st;var uvw1: vec2f= vec2f(7.);var uvw2: vec2f=1.+3.*st;var u: vec3f= vec3f((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;var v: vec3f= vec3f((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),uvDepth.z);shadow+=uvw2.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[0]),uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),uvDepth.z);shadow+=uvw2.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[1]),uvDepth.z);shadow+=uvw0.x*uvw2.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[2]),uvDepth.z);shadow+=uvw1.x*uvw2.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[2]),uvDepth.z);shadow+=uvw2.x*uvw2.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[2]),uvDepth.z);shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
const PoissonSamplers32: array<vec3f,64>=array<vec3f,64> (
vec3f(0.06407013,0.05409927,0.),
vec3f(0.7366577,0.5789394,0.),
vec3f(-0.6270542,-0.5320278,0.),
vec3f(-0.4096107,0.8411095,0.),
vec3f(0.6849564,-0.4990818,0.),
vec3f(-0.874181,-0.04579735,0.),
vec3f(0.9989998,0.0009880066,0.),
vec3f(-0.004920578,-0.9151649,0.),
vec3f(0.1805763,0.9747483,0.),
vec3f(-0.2138451,0.2635818,0.),
vec3f(0.109845,0.3884785,0.),
vec3f(0.06876755,-0.3581074,0.),
vec3f(0.374073,-0.7661266,0.),
vec3f(0.3079132,-0.1216763,0.),
vec3f(-0.3794335,-0.8271583,0.),
vec3f(-0.203878,-0.07715034,0.),
vec3f(0.5912697,0.1469799,0.),
vec3f(-0.88069,0.3031784,0.),
vec3f(0.5040108,0.8283722,0.),
vec3f(-0.5844124,0.5494877,0.),
vec3f(0.6017799,-0.1726654,0.),
vec3f(-0.5554981,0.1559997,0.),
vec3f(-0.3016369,-0.3900928,0.),
vec3f(-0.5550632,-0.1723762,0.),
vec3f(0.925029,0.2995041,0.),
vec3f(-0.2473137,0.5538505,0.),
vec3f(0.9183037,-0.2862392,0.),
vec3f(0.2469421,0.6718712,0.),
vec3f(0.3916397,-0.4328209,0.),
vec3f(-0.03576927,-0.6220032,0.),
vec3f(-0.04661255,0.7995201,0.),
vec3f(0.4402924,0.3640312,0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.),
vec3f(0.)
);const PoissonSamplers64: array<vec3f,64>=array<vec3f,64> (
vec3f(-0.613392,0.617481,0.),
vec3f(0.170019,-0.040254,0.),
vec3f(-0.299417,0.791925,0.),
vec3f(0.645680,0.493210,0.),
vec3f(-0.651784,0.717887,0.),
vec3f(0.421003,0.027070,0.),
vec3f(-0.817194,-0.271096,0.),
vec3f(-0.705374,-0.668203,0.),
vec3f(0.977050,-0.108615,0.),
vec3f(0.063326,0.142369,0.),
vec3f(0.203528,0.214331,0.),
vec3f(-0.667531,0.326090,0.),
vec3f(-0.098422,-0.295755,0.),
vec3f(-0.885922,0.215369,0.),
vec3f(0.566637,0.605213,0.),
vec3f(0.039766,-0.396100,0.),
vec3f(0.751946,0.453352,0.),
vec3f(0.078707,-0.715323,0.),
vec3f(-0.075838,-0.529344,0.),
vec3f(0.724479,-0.580798,0.),
vec3f(0.222999,-0.215125,0.),
vec3f(-0.467574,-0.405438,0.),
vec3f(-0.248268,-0.814753,0.),
vec3f(0.354411,-0.887570,0.),
vec3f(0.175817,0.382366,0.),
vec3f(0.487472,-0.063082,0.),
vec3f(-0.084078,0.898312,0.),
vec3f(0.488876,-0.783441,0.),
vec3f(0.470016,0.217933,0.),
vec3f(-0.696890,-0.549791,0.),
vec3f(-0.149693,0.605762,0.),
vec3f(0.034211,0.979980,0.),
vec3f(0.503098,-0.308878,0.),
vec3f(-0.016205,-0.872921,0.),
vec3f(0.385784,-0.393902,0.),
vec3f(-0.146886,-0.859249,0.),
vec3f(0.643361,0.164098,0.),
vec3f(0.634388,-0.049471,0.),
vec3f(-0.688894,0.007843,0.),
vec3f(0.464034,-0.188818,0.),
vec3f(-0.440840,0.137486,0.),
vec3f(0.364483,0.511704,0.),
vec3f(0.034028,0.325968,0.),
vec3f(0.099094,-0.308023,0.),
vec3f(0.693960,-0.366253,0.),
vec3f(0.678884,-0.204688,0.),
vec3f(0.001801,0.780328,0.),
vec3f(0.145177,-0.898984,0.),
vec3f(0.062655,-0.611866,0.),
vec3f(0.315226,-0.604297,0.),
vec3f(-0.780145,0.486251,0.),
vec3f(-0.371868,0.882138,0.),
vec3f(0.200476,0.494430,0.),
vec3f(-0.494552,-0.711051,0.),
vec3f(0.612476,0.705252,0.),
vec3f(-0.578845,-0.768792,0.),
vec3f(-0.772454,-0.090976,0.),
vec3f(0.504440,0.372295,0.),
vec3f(0.155736,0.065157,0.),
vec3f(0.391522,0.849605,0.),
vec3f(-0.620106,-0.328104,0.),
vec3f(0.789239,-0.419965,0.),
vec3f(-0.545396,0.538133,0.),
vec3f(-0.178564,-0.596057,0.)
);fn computeShadowWithCSMPCSS(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,searchTapCount: i32,pcfTapCount: i32,poissonSamplers: array<vec3f,64>,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var uvDepthLayer: vec4f= vec4f(uvDepth.x,uvDepth.y,f32(layer),uvDepth.z);var blockerDepth: f32=0.0;var sumBlockerDepth: f32=0.0;var numBlocker: f32=0.0;for (var i: i32=0; i<searchTapCount; i ++) {blockerDepth=textureSample(depthTexture,depthSampler, uvDepth.xy+(lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse*PoissonSamplers32[i].xy),layer).r;numBlocker+=select(0.,1.,blockerDepth<depthMetric);sumBlockerDepth+=select(0.,blockerDepth,blockerDepth<depthMetric);}
var avgBlockerDepth: f32=sumBlockerDepth/numBlocker;var AAOffset: f32=shadowMapSizeInverse*10.;var penumbraRatio: f32=((depthMetric-avgBlockerDepth)*depthCorrection+AAOffset);var filterRadius: vec4f= vec4f(penumbraRatio*lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse,0.,0.);var random: f32=getRand(vPositionFromLight.xy);var rotationAngle: f32=random*3.1415926;var rotationVector: vec2f= vec2f(cos(rotationAngle),sin(rotationAngle));var shadow: f32=0.;for (var i: i32=0; i<pcfTapCount; i++) {var offset: vec4f= vec4f(poissonSamplers[i],0.);offset= vec4f(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.,0.);let coords=uvDepthLayer+offset*filterRadius;shadow+=textureSampleCompare(shadowTexture,shadowSampler,coords.xy,i32(coords.z),coords.w);}
shadow/= f32(pcfTapCount);shadow=mix(shadow,1.,min((depthMetric-avgBlockerDepth)*depthCorrection*penumbraDarkness,1.));shadow=mix(darkness,1.,shadow);return select(computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff),1.0,numBlocker<1.0);}
fn computeShadowWithPCSS(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,searchTapCount: i32,pcfTapCount: i32,poissonSamplers: array<vec3f,64>)->f32
{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);var blockerDepth: f32=0.0;var sumBlockerDepth: f32=0.0;var numBlocker: f32=0.0;var exitCondition: bool=depthMetric>1.0 || depthMetric<0.0;for (var i: i32=0; i<searchTapCount; i ++) {if (exitCondition) {break;}
blockerDepth=textureSampleLevel(depthTexture,depthSampler,uvDepth.xy+(lightSizeUV*shadowMapSizeInverse*PoissonSamplers32[i].xy),0).r;numBlocker+=select(0.,1.,blockerDepth<depthMetric);sumBlockerDepth+=select(0.,blockerDepth,blockerDepth<depthMetric);}
exitCondition=exitCondition || numBlocker<1.0;var avgBlockerDepth: f32=sumBlockerDepth/numBlocker;var AAOffset: f32=shadowMapSizeInverse*10.;var penumbraRatio: f32=((depthMetric-avgBlockerDepth)+AAOffset);var filterRadius: f32=penumbraRatio*lightSizeUV*shadowMapSizeInverse;var random: f32=getRand(vPositionFromLight.xy);var rotationAngle: f32=random*3.1415926;var rotationVector: vec2f= vec2f(cos(rotationAngle),sin(rotationAngle));var shadow: f32=0.;for (var i: i32=0; i<pcfTapCount; i++) {if (exitCondition) {break;}
var offset: vec3f=poissonSamplers[i];offset= vec3f(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.);let coords=uvDepth+offset*filterRadius;shadow+=textureSampleCompareLevel(shadowTexture,shadowSampler,coords.xy,coords.z);}
shadow/= f32(pcfTapCount);shadow=mix(shadow,1.,depthMetric-avgBlockerDepth);shadow=mix(darkness,1.,shadow);return select(computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff),1.0,exitCondition);}
fn computeShadowWithPCSS16(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32)->f32
{return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32);}
fn computeShadowWithPCSS32(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32)->f32
{return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32);}
fn computeShadowWithPCSS64(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32)->f32
{return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64);}
fn computeShadowWithCSMPCSS16(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
{return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
fn computeShadowWithCSMPCSS32(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
{return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
fn computeShadowWithCSMPCSS64(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
{return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
#endif
`;H.IncludesShadersStoreWGSL[Yie]||(H.IncludesShadersStoreWGSL[Yie]=sge);const rge={name:Yie,shader:sge},Wke=Object.freeze(Object.defineProperty({__proto__:null,shadowsFragmentFunctionsWGSL:rge},Symbol.toStringTag,{value:"Module"})),Xie="imageProcessingFunctions",nge=`#if TONEMAPPING==3
const PBRNeutralStartCompression: f32=0.8-0.04;const PBRNeutralDesaturation: f32=0.15;fn PBRNeutralToneMapping( color: vec3f )->vec3f {var x: f32=min(color.r,min(color.g,color.b));var offset: f32=select(0.04,x-6.25*x*x,x<0.08);var result=color;result-=offset;var peak: f32=max(result.r,max(result.g,result.b));if (peak<PBRNeutralStartCompression) {return result;}
var d: f32=1.-PBRNeutralStartCompression;var newPeak: f32=1.-d*d/(peak+d-PBRNeutralStartCompression);result*=newPeak/peak;var g: f32=1.-1./(PBRNeutralDesaturation*(peak-newPeak)+1.);return mix(result,newPeak* vec3f(1,1,1),g);}
#endif
#if TONEMAPPING==2
const ACESInputMat: mat3x3f= mat3x3f(
vec3f(0.59719,0.07600,0.02840),
vec3f(0.35458,0.90834,0.13383),
vec3f(0.04823,0.01566,0.83777)
);const ACESOutputMat: mat3x3f= mat3x3f(
vec3f( 1.60475,-0.10208,-0.00327),
vec3f(-0.53108, 1.10813,-0.07276),
vec3f(-0.07367,-0.00605, 1.07602)
);fn RRTAndODTFit(v: vec3f)->vec3f
{var a: vec3f=v*(v+0.0245786)-0.000090537;var b: vec3f=v*(0.983729*v+0.4329510)+0.238081;return a/b;}
fn ACESFitted(color: vec3f)->vec3f
{var output=ACESInputMat*color;output=RRTAndODTFit(output);output=ACESOutputMat*output;output=saturateVec3(output);return output;}
#endif
#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_DEFINITIONS
fn applyImageProcessing(result: vec4f)->vec4f {
#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATSTART
var rgb=result.rgb;;
#ifdef EXPOSURE
rgb*=uniforms.exposureLinear;
#endif
#ifdef VIGNETTE
var viewportXY: vec2f=fragmentInputs.position.xy*uniforms.vInverseScreenSize;viewportXY=viewportXY*2.0-1.0;var vignetteXY1: vec3f= vec3f(viewportXY*uniforms.vignetteSettings1.xy+uniforms.vignetteSettings1.zw,1.0);var vignetteTerm: f32=dot(vignetteXY1,vignetteXY1);var vignette: f32=pow(vignetteTerm,uniforms.vignetteSettings2.w);var vignetteColor: vec3f=uniforms.vignetteSettings2.rgb;
#ifdef VIGNETTEBLENDMODEMULTIPLY
var vignetteColorMultiplier: vec3f=mix(vignetteColor, vec3f(1,1,1),vignette);rgb*=vignetteColorMultiplier;
#endif
#ifdef VIGNETTEBLENDMODEOPAQUE
rgb=mix(vignetteColor,rgb,vignette);
#endif
#endif
#if TONEMAPPING==3
rgb=PBRNeutralToneMapping(rgb);
#elif TONEMAPPING==2
rgb=ACESFitted(rgb);
#elif TONEMAPPING==1
const tonemappingCalibration: f32=1.590579;rgb=1.0-exp2(-tonemappingCalibration*rgb);
#endif
rgb=toGammaSpaceVec3(rgb);rgb=saturateVec3(rgb);
#ifdef CONTRAST
var resultHighContrast: vec3f=rgb*rgb*(3.0-2.0*rgb);if (uniforms.contrast<1.0) {rgb=mix( vec3f(0.5,0.5,0.5),rgb,uniforms.contrast);} else {rgb=mix(rgb,resultHighContrast,uniforms.contrast-1.0);}
#endif
#ifdef COLORGRADING
var colorTransformInput: vec3f=rgb*uniforms.colorTransformSettings.xxx+uniforms.colorTransformSettings.yyy;
#ifdef COLORGRADING3D
var colorTransformOutput: vec3f=textureSample(txColorTransform,txColorTransformSampler,colorTransformInput).rgb;
#else
var colorTransformOutput: vec3f=textureSample(txColorTransform,txColorTransformSampler,colorTransformInput,uniforms.colorTransformSettings.yz).rgb;
#endif
rgb=mix(rgb,colorTransformOutput,uniforms.colorTransformSettings.www);
#endif
#ifdef COLORCURVES
var luma: f32=getLuminance(rgb);var curveMix: vec2f=clamp( vec2f(luma*3.0-1.5,luma*-3.0+1.5), vec2f(0.0), vec2f(1.0));var colorCurve: vec4f=uniforms.vCameraColorCurveNeutral+curveMix.x*uniforms.vCameraColorCurvePositive-curveMix.y*uniforms.vCameraColorCurveNegative;rgb*=colorCurve.rgb;rgb=mix( vec3f(luma),rgb,colorCurve.a);
#endif
#ifdef DITHER
var rand: f32=getRand(fragmentInputs.position.xy*uniforms.vInverseScreenSize);var dither: f32=mix(-uniforms.ditherIntensity,uniforms.ditherIntensity,rand);rgb=saturateVec3(rgb+ vec3f(dither));
#endif
#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATEND
return vec4f(rgb,result.a);}`;H.IncludesShadersStoreWGSL[Xie]||(H.IncludesShadersStoreWGSL[Xie]=nge);const age={name:Xie,shader:nge},Hke=Object.freeze(Object.defineProperty({__proto__:null,imageProcessingFunctionsWGSL:age},Symbol.toStringTag,{value:"Module"})),Zie="fogFragmentDeclaration",oge=`#ifdef FOG
#define FOGMODE_NONE 0.
#define FOGMODE_EXP 1.
#define FOGMODE_EXP2 2.
#define FOGMODE_LINEAR 3.
const E=2.71828;uniform vFogInfos: vec4f;uniform vFogColor: vec3f;varying vFogDistance: vec3f;fn CalcFogFactor()->f32
{var fogCoeff: f32=1.0;var fogStart: f32=uniforms.vFogInfos.y;var fogEnd: f32=uniforms.vFogInfos.z;var fogDensity: f32=uniforms.vFogInfos.w;var fogDistance: f32=length(fragmentInputs.vFogDistance);if (FOGMODE_LINEAR==uniforms.vFogInfos.x)
{fogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart);}
else if (FOGMODE_EXP==uniforms.vFogInfos.x)
{fogCoeff=1.0/pow(E,fogDistance*fogDensity);}
else if (FOGMODE_EXP2==uniforms.vFogInfos.x)
{fogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);}
return clamp(fogCoeff,0.0,1.0);}
#endif
`;H.IncludesShadersStoreWGSL[Zie]||(H.IncludesShadersStoreWGSL[Zie]=oge);const lge={name:Zie,shader:oge},Yke=Object.freeze(Object.defineProperty({__proto__:null,fogFragmentDeclarationWGSL:lge},Symbol.toStringTag,{value:"Module"})),cge="intersectionFunctions",Xke=`fn diskIntersectWithBackFaceCulling(ro: vec3f,rd: vec3f,c: vec3f,r: f32)->f32 {var d: f32=rd.y;if(d>0.0) { return 1e6; }
var o: vec3f=ro-c;var t: f32=-o.y/d;var q: vec3f=o+rd*t;return select(1e6,t,(dot(q,q)<r*r));}
fn sphereIntersect(ro: vec3f,rd: vec3f,ce: vec3f,ra: f32)->vec2f {var oc: vec3f=ro-ce;var b: f32=dot(oc,rd);var c: f32=dot(oc,oc)-ra*ra;var h: f32=b*b-c;if(h<0.0) { return vec2f(-1.,-1.); }
h=sqrt(h);return vec2f(-b+h,-b-h);}
fn sphereIntersectFromOrigin(ro: vec3f,rd: vec3f,ra: f32)->vec2f {var b: f32=dot(ro,rd);var c: f32=dot(ro,ro)-ra*ra;var h: f32=b*b-c;if(h<0.0) { return vec2f(-1.,-1.); }
h=sqrt(h);return vec2f(-b+h,-b-h);}`;H.IncludesShadersStoreWGSL[cge]||(H.IncludesShadersStoreWGSL[cge]=Xke);const Kie="lightFragment",uge=`#ifdef LIGHT{X}
#if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})
#else
var diffuse{X}: vec4f=light{X}.vLightDiffuse;
#define CUSTOM_LIGHT{X}_COLOR 
#ifdef PBR
#ifdef SPOTLIGHT{X}
preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,fragmentInputs.vPositionW);
#elif defined(POINTLIGHT{X})
preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,fragmentInputs.vPositionW);
#elif defined(HEMILIGHT{X})
preInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
#elif defined(DIRLIGHT{X})
preInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
#elif defined(AREALIGHT{X}) && defined(AREALIGHTSUPPORTED)
preInfo=computeAreaPreLightingInfo(areaLightsLTC1Sampler,areaLightsLTC1SamplerSampler,areaLightsLTC2Sampler,areaLightsLTC2SamplerSampler,viewDirectionW,normalW,fragmentInputs.vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,roughness);
#endif
preInfo.NdotV=NdotV;
#ifdef SPOTLIGHT{X}
#ifdef LIGHT_FALLOFF_GLTF{X}
preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);
#ifdef IESLIGHTTEXTURE{X}
preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);
#else
preInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);
#endif
#elif defined(LIGHT_FALLOFF_PHYSICAL{X})
preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);
#ifdef IESLIGHTTEXTURE{X}
preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);
#else
preInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);
#endif
#elif defined(LIGHT_FALLOFF_STANDARD{X})
preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);
#ifdef IESLIGHTTEXTURE{X}
preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);
#else
preInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);
#endif
#else
preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);
#ifdef IESLIGHTTEXTURE{X}
preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);
#else
preInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);
#endif 
#endif 
#elif defined(POINTLIGHT{X})
#ifdef LIGHT_FALLOFF_GLTF{X}
preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);
#elif defined(LIGHT_FALLOFF_PHYSICAL{X})
preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);
#elif defined(LIGHT_FALLOFF_STANDARD{X})
preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);
#else
preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);
#endif
#else
preInfo.attenuation=1.0;
#endif
#if defined(HEMILIGHT{X}) || defined(AREALIGHT{X})
preInfo.roughness=roughness;
#else
preInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
#endif
#ifdef IRIDESCENCE
preInfo.iridescenceIntensity=iridescenceIntensity;
#endif
#ifdef HEMILIGHT{X}
info.diffuse=computeHemisphericDiffuseLighting(preInfo,diffuse{X}.rgb,light{X}.vLightGround);
#elif AREALIGHT{X}
info.diffuse=computeAreaDiffuseLighting(preInfo,diffuse{X}.rgb);
#elif defined(SS_TRANSLUCENCY)
info.diffuse=computeDiffuseAndTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance,subSurfaceOut.translucencyIntensity,surfaceAlbedo.rgb);
#else
info.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb);
#endif
#ifdef SPECULARTERM
#if AREALIGHT{X}
info.specular=computeAreaSpecularLighting(preInfo,light{X}.vLightSpecular.rgb);
#else
#ifdef ANISOTROPIC
info.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
#else
info.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
#endif
#endif
#endif
#ifndef AREALIGHT{X}
#ifdef SHEEN
#ifdef SHEEN_LINKWITHALBEDO
preInfo.roughness=sheenOut.sheenIntensity;
#else
#ifdef HEMILIGHT{X}
preInfo.roughness=sheenOut.sheenRoughness;
#else
preInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
#endif
#endif
info.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
#endif
#ifdef CLEARCOAT
#ifdef HEMILIGHT{X}
preInfo.roughness=clearcoatOut.clearCoatRoughness;
#else
preInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
#endif
info.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,diffuse{X}.rgb);
#ifdef CLEARCOAT_TINT
absorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);info.diffuse*=absorption;
#ifdef SPECULARTERM
info.specular*=absorption;
#endif
#endif
info.diffuse*=info.clearCoat.w;
#ifdef SPECULARTERM
info.specular*=info.clearCoat.w;
#endif
#ifdef SHEEN
info.sheen*=info.clearCoat.w;
#endif
#endif
#endif
#else
#ifdef SPOTLIGHT{X}
#ifdef IESLIGHTTEXTURE{X}
info=computeIESSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness,iesLightTexture{X},iesLightTexture{X}Sampler);
#else
info=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
#endif 
#elif defined(HEMILIGHT{X})
info=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);
#elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})
info=computeLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
#elif define(AREALIGHT{X}) && defined(AREALIGHTSUPPORTED)
info=computeAreaLighting(areaLightsLTC1Sampler,areaLightsLTC1SamplerSampler,areaLightsLTC2Sampler,areaLightsLTC2SamplerSampler,viewDirectionW,normalW,fragmentInputs.vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,
#ifdef AREALIGHTNOROUGHTNESS
0.5
#else
uniforms.vReflectionInfos.y
#endif
);
#endif
#endif
#ifdef PROJECTEDLIGHTTEXTURE{X}
info.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightTexture{X},projectionLightTexture{X}Sampler,uniforms.textureProjectionMatrix{X},fragmentInputs.vPositionW);
#endif
#endif
#ifdef SHADOW{X}
#ifdef SHADOWCSMDEBUG{X}
var shadowDebug{X}: vec3f;
#endif
#ifdef SHADOWCSM{X}
#ifdef SHADOWCSMUSESHADOWMAXZ{X}
var index{X}: i32=-1;
#else
var index{X}: i32=SHADOWCSMNUM_CASCADES{X}-1;
#endif
var diff{X}: f32=0.;vPositionFromLight{X}[0]=fragmentInputs.vPositionFromLight{X}_0;vPositionFromLight{X}[1]=fragmentInputs.vPositionFromLight{X}_1;vPositionFromLight{X}[2]=fragmentInputs.vPositionFromLight{X}_2;vPositionFromLight{X}[3]=fragmentInputs.vPositionFromLight{X}_3;vDepthMetric{X}[0]=fragmentInputs.vDepthMetric{X}_0;vDepthMetric{X}[1]=fragmentInputs.vDepthMetric{X}_1;vDepthMetric{X}[2]=fragmentInputs.vDepthMetric{X}_2;vDepthMetric{X}[3]=fragmentInputs.vDepthMetric{X}_3;for (var i:i32=0; i<SHADOWCSMNUM_CASCADES{X}; i++) 
{
#ifdef SHADOWCSM_RIGHTHANDED{X}
diff{X}=uniforms.viewFrustumZ{X}[i]+fragmentInputs.vPositionFromCamera{X}.z;
#else
diff{X}=uniforms.viewFrustumZ{X}[i]-fragmentInputs.vPositionFromCamera{X}.z;
#endif
if (diff{X}>=0.) {index{X}=i;break;}}
#ifdef SHADOWCSMUSESHADOWMAXZ{X}
if (index{X}>=0)
#endif
{
#if defined(SHADOWPCF{X})
#if defined(SHADOWLOWQUALITY{X})
shadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#elif defined(SHADOWMEDIUMQUALITY{X})
shadow=computeShadowWithCSMPCF3(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#else
shadow=computeShadowWithCSMPCF5(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#elif defined(SHADOWPCSS{X})
#if defined(SHADOWLOWQUALITY{X})
shadow=computeShadowWithCSMPCSS16(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
#elif defined(SHADOWMEDIUMQUALITY{X})
shadow=computeShadowWithCSMPCSS32(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
#else
shadow=computeShadowWithCSMPCSS64(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
#endif
#else
shadow=computeShadowCSM(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#ifdef SHADOWCSMDEBUG{X}
shadowDebug{X}=vec3f(shadow)*vCascadeColorsMultiplier{X}[index{X}];
#endif
#ifndef SHADOWCSMNOBLEND{X}
var frustumLength:f32=uniforms.frustumLengths{X}[index{X}];var diffRatio:f32=clamp(diff{X}/frustumLength,0.,1.)*uniforms.cascadeBlendFactor{X};if (index{X}<(SHADOWCSMNUM_CASCADES{X}-1) && diffRatio<1.)
{index{X}+=1;var nextShadow: f32=0.;
#if defined(SHADOWPCF{X})
#if defined(SHADOWLOWQUALITY{X})
nextShadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],,shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#elif defined(SHADOWMEDIUMQUALITY{X})
nextShadow=computeShadowWithCSMPCF3(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#else
nextShadow=computeShadowWithCSMPCF5(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#elif defined(SHADOWPCSS{X})
#if defined(SHADOWLOWQUALITY{X})
nextShadow=computeShadowWithCSMPCSS16(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
#elif defined(SHADOWMEDIUMQUALITY{X})
nextShadow=computeShadowWithCSMPCSS32(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
#else
nextShadow=computeShadowWithCSMPCSS64(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
#endif
#else
nextShadow=computeShadowCSM(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
shadow=mix(nextShadow,shadow,diffRatio);
#ifdef SHADOWCSMDEBUG{X}
shadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);
#endif
}
#endif
}
#elif defined(SHADOWCLOSEESM{X})
#if defined(SHADOWCUBE{X})
shadow=computeShadowWithCloseESMCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
#else
shadow=computeShadowWithCloseESM(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);
#endif
#elif defined(SHADOWESM{X})
#if defined(SHADOWCUBE{X})
shadow=computeShadowWithESMCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
#else
shadow=computeShadowWithESM(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);
#endif
#elif defined(SHADOWPOISSON{X})
#if defined(SHADOWCUBE{X})
shadow=computeShadowWithPoissonSamplingCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);
#else
shadow=computeShadowWithPoissonSampling(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#elif defined(SHADOWPCF{X})
#if defined(SHADOWLOWQUALITY{X})
shadow=computeShadowWithPCF1(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#elif defined(SHADOWMEDIUMQUALITY{X})
shadow=computeShadowWithPCF3(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#else
shadow=computeShadowWithPCF5(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#elif defined(SHADOWPCSS{X})
#if defined(SHADOWLOWQUALITY{X})
shadow=computeShadowWithPCSS16(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#elif defined(SHADOWMEDIUMQUALITY{X})
shadow=computeShadowWithPCSS32(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#else
shadow=computeShadowWithPCSS64(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#else
#if defined(SHADOWCUBE{X})
shadow=computeShadowCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.depthValues);
#else
shadow=computeShadow(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#endif
#ifdef SHADOWONLY
#ifndef SHADOWINUSE
#define SHADOWINUSE
#endif
globalShadow+=shadow;shadowLightCount+=1.0;
#endif
#else
shadow=1.;
#endif
aggShadow+=shadow;numLights+=1.0;
#ifndef SHADOWONLY
#ifdef CUSTOMUSERLIGHTING
diffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);
#ifdef SPECULARTERM
specularBase+=computeCustomSpecularLighting(info,specularBase,shadow);
#endif
#elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})
diffuseBase+=lightmapColor.rgb*shadow;
#ifdef SPECULARTERM
#ifndef LIGHTMAPNOSPECULAR{X}
specularBase+=info.specular*shadow*lightmapColor.rgb;
#endif
#endif
#ifdef CLEARCOAT
#ifndef LIGHTMAPNOSPECULAR{X}
clearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;
#endif
#endif
#ifdef SHEEN
#ifndef LIGHTMAPNOSPECULAR{X}
sheenBase+=info.sheen.rgb*shadow;
#endif
#endif
#else
#ifdef SHADOWCSMDEBUG{X}
diffuseBase+=info.diffuse*shadowDebug{X};
#else 
diffuseBase+=info.diffuse*shadow;
#endif
#ifdef SPECULARTERM
specularBase+=info.specular*shadow;
#endif
#ifdef CLEARCOAT
clearCoatBase+=info.clearCoat.rgb*shadow;
#endif
#ifdef SHEEN
sheenBase+=info.sheen.rgb*shadow;
#endif
#endif
#endif
#endif
`;H.IncludesShadersStoreWGSL[Kie]||(H.IncludesShadersStoreWGSL[Kie]=uge);const hge={name:Kie,shader:uge},Zke=Object.freeze(Object.defineProperty({__proto__:null,lightFragmentWGSL:hge},Symbol.toStringTag,{value:"Module"})),dge="logDepthFragment",Kke=`#ifdef LOGARITHMICDEPTH
fragmentOutputs.fragDepth=log2(fragmentInputs.vFragmentDepth)*uniforms.logarithmicDepthConstant*0.5;
#endif
`;H.IncludesShadersStoreWGSL[dge]||(H.IncludesShadersStoreWGSL[dge]=Kke);const fge="fogFragment",qke=`#ifdef FOG
var fog: f32=CalcFogFactor();
#ifdef PBR
fog=toLinearSpace(fog);
#endif
color= vec4f(mix(uniforms.vFogColor,color.rgb,fog),color.a);
#endif
`;H.IncludesShadersStoreWGSL[fge]||(H.IncludesShadersStoreWGSL[fge]=qke);const qie="backgroundPixelShader",pge=`#include<backgroundUboDeclaration>
#include<helperFunctions>
varying vPositionW: vec3f;
#ifdef MAINUV1
varying vMainUV1: vec2f;
#endif 
#ifdef MAINUV2 
varying vMainUV2: vec2f; 
#endif 
#ifdef NORMAL
varying vNormalW: vec3f;
#endif
#ifdef DIFFUSE
#if DIFFUSEDIRECTUV==1
#define vDiffuseUV vMainUV1
#elif DIFFUSEDIRECTUV==2
#define vDiffuseUV vMainUV2
#else
varying vDiffuseUV: vec2f;
#endif
var diffuseSamplerSampler: sampler;var diffuseSampler: texture_2d<f32>;
#endif
#ifdef REFLECTION
#ifdef REFLECTIONMAP_3D
var reflectionSamplerSampler: sampler;var reflectionSampler: texture_cube<f32>;
#ifdef TEXTURELODSUPPORT
#else
var reflectionLowSamplerSampler: sampler;var reflectionLowSampler: texture_cube<f32>;var reflectionHighSamplerSampler: sampler;var reflectionHighSampler: texture_cube<f32>;
#endif
#else
var reflectionSamplerSampler: sampler;var reflectionSampler: texture_2d<f32>;
#ifdef TEXTURELODSUPPORT
#else
var reflectionLowSamplerSampler: sampler;var reflectionLowSampler: texture_2d<f32>;var reflectionHighSamplerSampler: sampler;var reflectionHighSampler: texture_2d<f32>;
#endif
#endif
#ifdef REFLECTIONMAP_SKYBOX
varying vPositionUVW: vec3f;
#else
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
varying vDirectionW: vec3f;
#endif
#endif
#include<reflectionFunction>
#endif
#ifndef FROMLINEARSPACE
#define FROMLINEARSPACE;
#endif
#ifndef SHADOWONLY
#define SHADOWONLY;
#endif
#include<imageProcessingDeclaration>
#include<lightUboDeclaration>[0..maxSimultaneousLights]
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#include<imageProcessingFunctions>
#include<logDepthDeclaration>
#include<clipPlaneFragmentDeclaration>
#include<fogFragmentDeclaration>
#ifdef REFLECTIONFRESNEL
#define FRESNEL_MAXIMUM_ON_ROUGH 0.25
fn fresnelSchlickEnvironmentGGX(VdotN: f32,reflectance0: vec3f,reflectance90: vec3f,smoothness: f32)->vec3f
{var weight: f32=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}
#endif
#ifdef PROJECTED_GROUND
#include<intersectionFunctions>
fn project(viewDirectionW: vec3f,eyePosition: vec3f)->vec3f {var radius: f32=uniforms.projectedGroundInfos.x;var height: f32=uniforms.projectedGroundInfos.y;var camDir: vec3f=-viewDirectionW;var skySphereDistance: f32=sphereIntersectFromOrigin(eyePosition,camDir,radius).x;var skySpherePositionW: vec3f=eyePosition+camDir*skySphereDistance;var p: vec3f=normalize(skySpherePositionW);var upEyePosition=vec3f(eyePosition.x,eyePosition.y-height,eyePosition.z);var sIntersection: f32=sphereIntersectFromOrigin(upEyePosition,p,radius).x;var h: vec3f= vec3f(0.0,-height,0.0);var dIntersection: f32=diskIntersectWithBackFaceCulling(upEyePosition,p,h,radius);p=(upEyePosition+min(sIntersection,dIntersection)*p);return p;}
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
var viewDirectionW: vec3f=normalize(scene.vEyePosition.xyz-input.vPositionW);
#ifdef NORMAL
var normalW: vec3f=normalize(fragmentInputs.vNormalW);
#else
var normalW: vec3f= vec3f(0.0,1.0,0.0);
#endif
var shadow: f32=1.;var globalShadow: f32=0.;var shadowLightCount: f32=0.;var aggShadow: f32=0.;var numLights: f32=0.;
#include<lightFragment>[0..maxSimultaneousLights]
#ifdef SHADOWINUSE
globalShadow/=shadowLightCount;
#else
globalShadow=1.0;
#endif
#ifndef BACKMAT_SHADOWONLY
var reflectionColor: vec4f= vec4f(1.,1.,1.,1.);
#ifdef REFLECTION
#ifdef PROJECTED_GROUND
var reflectionVector: vec3f=project(viewDirectionW,scene.vEyePosition.xyz);reflectionVector= (uniforms.reflectionMatrix*vec4f(reflectionVector,1.)).xyz;
#else
var reflectionVector: vec3f=computeReflectionCoords( vec4f(fragmentInputs.vPositionW,1.0),normalW);
#endif
#ifdef REFLECTIONMAP_OPPOSITEZ
reflectionVector.z*=-1.0;
#endif
#ifdef REFLECTIONMAP_3D
var reflectionCoords: vec3f=reflectionVector;
#else
var reflectionCoords: vec2f=reflectionVector.xy;
#ifdef REFLECTIONMAP_PROJECTION
reflectionCoords/=reflectionVector.z;
#endif
reflectionCoords.y=1.0-reflectionCoords.y;
#endif
#ifdef REFLECTIONBLUR
var reflectionLOD: f32=uniforms.vReflectionInfos.y;
#ifdef TEXTURELODSUPPORT
reflectionLOD=reflectionLOD*log2(vReflectionMicrosurfaceInfos.x)*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;reflectionColor=textureSampleLevel(reflectionSampler,reflectionSamplerSampler,reflectionCoords,reflectionLOD);
#else
var lodReflectionNormalized: f32=saturate(reflectionLOD);var lodReflectionNormalizedDoubled: f32=lodReflectionNormalized*2.0;var reflectionSpecularMid: vec4f=textureSample(reflectionSampler,reflectionSamplerSampler,reflectionCoords);if(lodReflectionNormalizedDoubled<1.0){reflectionColor=mix(
textureSample(reflectionrHighSampler,reflectionrHighSamplerSampler,reflectionCoords),
reflectionSpecularMid,
lodReflectionNormalizedDoubled
);} else {reflectionColor=mix(
reflectionSpecularMid,
textureSample(reflectionLowSampler,reflectionLowSamplerSampler,reflectionCoords),
lodReflectionNormalizedDoubled-1.0
);}
#endif
#else
var reflectionSample: vec4f=textureSample(reflectionSampler,reflectionSamplerSampler,reflectionCoords);reflectionColor=reflectionSample;
#endif
#ifdef RGBDREFLECTION
reflectionColor=vec4f(fromRGBD(reflectionColor).rgb,reflectionColor.a);
#endif
#ifdef GAMMAREFLECTION
reflectionColor=vec4f(toLinearSpaceVec3(reflectionColor.rgb),reflectionColor.a);
#endif
#ifdef REFLECTIONBGR
reflectionColor=vec4f(reflectionColor.bgr,reflectionColor.a);
#endif
reflectionColor=vec4f(reflectionColor.rgb*uniforms.vReflectionInfos.x,reflectionColor.a);
#endif
var diffuseColor: vec3f= vec3f(1.,1.,1.);var finalAlpha: f32=uniforms.alpha;
#ifdef DIFFUSE
var diffuseMap: vec4f=textureSample(diffuseSampler,diffuseSamplerSampler,input.vDiffuseUV);
#ifdef GAMMADIFFUSE
diffuseMap=vec4f(toLinearSpaceVec3(diffuseMap.rgb),diffuseMap.a);
#endif
diffuseMap=vec4f(diffuseMap.rgb *uniforms.vDiffuseInfos.y,diffuseMap.a);
#ifdef DIFFUSEHASALPHA
finalAlpha*=diffuseMap.a;
#endif
diffuseColor=diffuseMap.rgb;
#endif
#ifdef REFLECTIONFRESNEL
var colorBase: vec3f=diffuseColor;
#else
var colorBase: vec3f=reflectionColor.rgb*diffuseColor;
#endif
colorBase=max(colorBase,vec3f(0.0));
#ifdef USERGBCOLOR
var finalColor: vec3f=colorBase;
#else
#ifdef USEHIGHLIGHTANDSHADOWCOLORS
var mainColor: vec3f=mix(uniforms.vPrimaryColorShadow.rgb,uniforms.vPrimaryColor.rgb,colorBase);
#else
var mainColor: vec3f=uniforms.vPrimaryColor.rgb;
#endif
var finalColor: vec3f=colorBase*mainColor;
#endif
#ifdef REFLECTIONFRESNEL
var reflectionAmount: vec3f=uniforms.vReflectionControl.xxx;var reflectionReflectance0: vec3f=uniforms.vReflectionControl.yyy;var reflectionReflectance90: vec3f=uniforms.vReflectionControl.zzz;var VdotN: f32=dot(normalize(scene.vEyePosition.xyz),normalW);var planarReflectionFresnel: vec3f=fresnelSchlickEnvironmentGGX(saturate(VdotN),reflectionReflectance0,reflectionReflectance90,1.0);reflectionAmount*=planarReflectionFresnel;
#ifdef REFLECTIONFALLOFF
var reflectionDistanceFalloff: f32=1.0-saturate(length(vPositionW.xyz-uniforms.vBackgroundCenter)*uniforms.vReflectionControl.w);reflectionDistanceFalloff*=reflectionDistanceFalloff;reflectionAmount*=reflectionDistanceFalloff;
#endif
finalColor=mix(finalColor,reflectionColor.rgb,saturateVec3(reflectionAmount));
#endif
#ifdef OPACITYFRESNEL
var viewAngleToFloor: f32=dot(normalW,normalize(scene.vEyePosition.xyz-uniforms.vBackgroundCenter));const startAngle: f32=0.1;var fadeFactor: f32=saturate(viewAngleToFloor/startAngle);finalAlpha*=fadeFactor*fadeFactor;
#endif
#ifdef SHADOWINUSE
finalColor=mix(finalColor*uniforms.shadowLevel,finalColor,globalShadow);
#endif
var color: vec4f= vec4f(finalColor,finalAlpha);
#else
var color: vec4f= vec4f(uniforms.vPrimaryColor.rgb,(1.0-clamp(globalShadow,0.,1.))*uniforms.alpha);
#endif
#include<logDepthFragment>
#include<fogFragment>
#ifdef IMAGEPROCESSINGPOSTPROCESS
#if !defined(SKIPFINALCOLORCLAMP)
color=vec4f(clamp(color.rgb,vec3f(0.),vec3f(30.0)),color.a);
#endif
#else
color=applyImageProcessing(color);
#endif
#ifdef PREMULTIPLYALPHA
color=vec4f(color.rgb *color.a,color.a);
#endif
#ifdef NOISE
color=vec4f(color.rgb+dither(fragmentInputs.vPositionW.xy,0.5),color.a);color=max(color,vec4f(0.0));
#endif
fragmentOutputs.color=color;
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStoreWGSL[qie]||(H.ShadersStoreWGSL[qie]=pge);const mge={name:qie,shader:pge},Qke=Object.freeze(Object.defineProperty({__proto__:null,backgroundPixelShaderWGSL:mge},Symbol.toStringTag,{value:"Module"})),gge="backgroundVertexDeclaration",Jke=`uniform mat4 view;uniform mat4 viewProjection;
#ifdef MULTIVIEW
uniform mat4 viewProjectionR;
#endif
uniform float shadowLevel;
#ifdef DIFFUSE
uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;
#endif
#ifdef REFLECTION
uniform vec2 vReflectionInfos;uniform mat4 reflectionMatrix;uniform vec3 vReflectionMicrosurfaceInfos;uniform float fFovMultiplier;
#endif
#ifdef POINTSIZE
uniform float pointSize;
#endif
`;H.IncludesShadersStore[gge]||(H.IncludesShadersStore[gge]=Jke);const _ge="backgroundUboDeclaration",$ke=`layout(std140,column_major) uniform;uniform Material
{uniform vec4 vPrimaryColor;uniform vec4 vPrimaryColorShadow;uniform vec2 vDiffuseInfos;uniform vec2 vReflectionInfos;uniform mat4 diffuseMatrix;uniform mat4 reflectionMatrix;uniform vec3 vReflectionMicrosurfaceInfos;uniform float fFovMultiplier;uniform float pointSize;uniform float shadowLevel;uniform float alpha;uniform vec3 vBackgroundCenter;uniform vec4 vReflectionControl;uniform vec2 projectedGroundInfos;};
#include<sceneUboDeclaration>
`;H.IncludesShadersStore[_ge]||(H.IncludesShadersStore[_ge]=$ke);const vge="fogVertexDeclaration",eUe=`#ifdef FOG
varying vec3 vFogDistance;
#endif
`;H.IncludesShadersStore[vge]||(H.IncludesShadersStore[vge]=eUe);const Qie="lightVxFragmentDeclaration",Age=`#ifdef LIGHT{X}
uniform vec4 vLightData{X};uniform vec4 vLightDiffuse{X};
#ifdef SPECULARTERM
uniform vec4 vLightSpecular{X};
#else
vec4 vLightSpecular{X}=vec4(0.);
#endif
#ifdef SHADOW{X}
#ifdef SHADOWCSM{X}
uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};
#elif defined(SHADOWCUBE{X})
#else
varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};
#endif
uniform vec4 shadowsInfo{X};uniform vec2 depthValues{X};
#endif
#ifdef SPOTLIGHT{X}
uniform vec4 vLightDirection{X};uniform vec4 vLightFalloff{X};
#elif defined(POINTLIGHT{X})
uniform vec4 vLightFalloff{X};
#elif defined(HEMILIGHT{X})
uniform vec3 vLightGround{X};
#endif
#if defined(AREALIGHT{X})
uniform vec4 vLightWidth{X};uniform vec4 vLightHeight{X};
#endif
#endif
`;H.IncludesShadersStore[Qie]||(H.IncludesShadersStore[Qie]=Age);const Cge={name:Qie,shader:Age},tUe=Object.freeze(Object.defineProperty({__proto__:null,lightVxFragmentDeclaration:Cge},Symbol.toStringTag,{value:"Module"})),Jie="lightVxUboDeclaration",xge=`#ifdef LIGHT{X}
uniform Light{X}
{vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;
#ifdef SPOTLIGHT{X}
vec4 vLightDirection;vec4 vLightFalloff;
#elif defined(POINTLIGHT{X})
vec4 vLightFalloff;
#elif defined(HEMILIGHT{X})
vec3 vLightGround;
#endif
#if defined(AREALIGHT{X})
vec4 vLightWidth;vec4 vLightHeight;
#endif
vec4 shadowsInfo;vec2 depthValues;} light{X};
#ifdef SHADOW{X}
#ifdef SHADOWCSM{X}
uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};
#elif defined(SHADOWCUBE{X})
#else
varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};
#endif
#endif
#endif
`;H.IncludesShadersStore[Jie]||(H.IncludesShadersStore[Jie]=xge);const bge={name:Jie,shader:xge},iUe=Object.freeze(Object.defineProperty({__proto__:null,lightVxUboDeclaration:bge},Symbol.toStringTag,{value:"Module"})),Sge="logDepthDeclaration",sUe=`#ifdef LOGARITHMICDEPTH
uniform float logarithmicDepthConstant;varying float vFragmentDepth;
#endif
`;H.IncludesShadersStore[Sge]||(H.IncludesShadersStore[Sge]=sUe);const yge="fogVertex",rUe=`#ifdef FOG
vFogDistance=(view*worldPos).xyz;
#endif
`;H.IncludesShadersStore[yge]||(H.IncludesShadersStore[yge]=rUe);const $ie="shadowsVertex",Mge=`#ifdef SHADOWS
#if defined(SHADOWCSM{X})
vPositionFromCamera{X}=view*worldPos;for (int i=0; i<SHADOWCSMNUM_CASCADES{X}; i++) {vPositionFromLight{X}[i]=lightMatrix{X}[i]*worldPos;
#ifdef USE_REVERSE_DEPTHBUFFER
vDepthMetric{X}[i]=(-vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;
#else
vDepthMetric{X}[i]=(vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;
#endif
}
#elif defined(SHADOW{X}) && !defined(SHADOWCUBE{X})
vPositionFromLight{X}=lightMatrix{X}*worldPos;
#ifdef USE_REVERSE_DEPTHBUFFER
vDepthMetric{X}=(-vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;
#else
vDepthMetric{X}=(vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;
#endif
#endif
#endif
`;H.IncludesShadersStore[$ie]||(H.IncludesShadersStore[$ie]=Mge);const Ege={name:$ie,shader:Mge},nUe=Object.freeze(Object.defineProperty({__proto__:null,shadowsVertex:Ege},Symbol.toStringTag,{value:"Module"})),Tge="logDepthVertex",aUe=`#ifdef LOGARITHMICDEPTH
vFragmentDepth=1.0+gl_Position.w;gl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;
#endif
`;H.IncludesShadersStore[Tge]||(H.IncludesShadersStore[Tge]=aUe);const ese="backgroundVertexShader",Lge=`precision highp float;
#include<__decl__backgroundVertex>
#include<helperFunctions>
attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#ifdef MAINUV1
varying vec2 vMainUV1;
#endif
#ifdef MAINUV2
varying vec2 vMainUV2;
#endif
#if defined(DIFFUSE) && DIFFUSEDIRECTUV==0
varying vec2 vDiffuseUV;
#endif
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightVxFragment>[0..maxSimultaneousLights]
#ifdef REFLECTIONMAP_SKYBOX
varying vec3 vPositionUVW;
#endif
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
varying vec3 vDirectionW;
#endif
#include<logDepthDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef REFLECTIONMAP_SKYBOX
vPositionUVW=position;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
#ifdef MULTIVIEW
if (gl_ViewID_OVR==0u) {gl_Position=viewProjection*finalWorld*vec4(position,1.0);} else {gl_Position=viewProjectionR*finalWorld*vec4(position,1.0);}
#else
gl_Position=viewProjection*finalWorld*vec4(position,1.0);
#endif
vec4 worldPos=finalWorld*vec4(position,1.0);vPositionW=vec3(worldPos);
#ifdef NORMAL
mat3 normalWorld=mat3(finalWorld);
#ifdef NONUNIFORMSCALING
normalWorld=transposeMat3(inverseMat3(normalWorld));
#endif
vNormalW=normalize(normalWorld*normal);
#endif
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
vDirectionW=normalize(vec3(finalWorld*vec4(position,0.0)));
#ifdef EQUIRECTANGULAR_RELFECTION_FOV
mat3 screenToWorld=inverseMat3(mat3(finalWorld*viewProjection));vec3 segment=mix(vDirectionW,screenToWorld*vec3(0.0,0.0,1.0),abs(fFovMultiplier-1.0));if (fFovMultiplier<=1.0) {vDirectionW=normalize(segment);} else {vDirectionW=normalize(vDirectionW+(vDirectionW-segment));}
#endif
#endif
#ifndef UV1
vec2 uv=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2=vec2(0.,0.);
#endif
#ifdef MAINUV1
vMainUV1=uv;
#endif
#ifdef MAINUV2
vMainUV2=uv2;
#endif
#if defined(DIFFUSE) && DIFFUSEDIRECTUV==0
if (vDiffuseInfos.x==0.)
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}
else
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}
#endif
#include<clipPlaneVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#ifdef VERTEXCOLOR
vColor=colorUpdated;
#endif
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[ese]||(H.ShadersStore[ese]=Lge);const Ige={name:ese,shader:Lge},oUe=Object.freeze(Object.defineProperty({__proto__:null,backgroundVertexShader:Ige},Symbol.toStringTag,{value:"Module"})),Pge="backgroundFragmentDeclaration",lUe=`uniform vec4 vEyePosition;uniform vec4 vPrimaryColor;
#ifdef USEHIGHLIGHTANDSHADOWCOLORS
uniform vec4 vPrimaryColorShadow;
#endif
uniform float shadowLevel;uniform float alpha;
#ifdef DIFFUSE
uniform vec2 vDiffuseInfos;
#endif
#ifdef REFLECTION
uniform vec2 vReflectionInfos;uniform mat4 reflectionMatrix;uniform vec3 vReflectionMicrosurfaceInfos;
#endif
#if defined(REFLECTIONFRESNEL) || defined(OPACITYFRESNEL)
uniform vec3 vBackgroundCenter;
#endif
#ifdef REFLECTIONFRESNEL
uniform vec4 vReflectionControl;
#endif
#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(REFRACTION)
uniform mat4 view;
#endif
#ifdef PROJECTED_GROUND
uniform vec2 projectedGroundInfos;
#endif
`;H.IncludesShadersStore[Pge]||(H.IncludesShadersStore[Pge]=lUe);const tse="reflectionFunction",Oge=`vec3 computeFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)
{float lon=atan(direction.z,direction.x);float lat=acos(direction.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(s,t,0); }
vec3 computeMirroredFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)
{float lon=atan(direction.z,direction.x);float lat=acos(direction.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(1.0-s,t,0); }
vec3 computeEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
{vec3 cameraToVertex=normalize(worldPos.xyz-eyePosition);vec3 r=normalize(reflect(cameraToVertex,worldNormal));r=vec3(reflectionMatrix*vec4(r,0));float lon=atan(r.z,r.x);float lat=acos(r.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(s,t,0);}
vec3 computeSphericalCoords(vec4 worldPos,vec3 worldNormal,mat4 view,mat4 reflectionMatrix)
{vec3 viewDir=normalize(vec3(view*worldPos));vec3 viewNormal=normalize(vec3(view*vec4(worldNormal,0.0)));vec3 r=reflect(viewDir,viewNormal);r=vec3(reflectionMatrix*vec4(r,0));r.z=r.z-1.0;float m=2.0*length(r);return vec3(r.x/m+0.5,1.0-r.y/m-0.5,0);}
vec3 computePlanarCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
{vec3 viewDir=worldPos.xyz-eyePosition;vec3 coords=normalize(reflect(viewDir,worldNormal));return vec3(reflectionMatrix*vec4(coords,1));}
vec3 computeCubicCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
{vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=vec3(reflectionMatrix*vec4(coords,0));
#ifdef INVERTCUBICMAP
coords.y*=-1.0;
#endif
return coords;}
vec3 computeCubicLocalCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix,vec3 reflectionSize,vec3 reflectionPosition)
{vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);coords=vec3(reflectionMatrix*vec4(coords,0));
#ifdef INVERTCUBICMAP
coords.y*=-1.0;
#endif
return coords;}
vec3 computeProjectionCoords(vec4 worldPos,mat4 view,mat4 reflectionMatrix)
{return vec3(reflectionMatrix*(view*worldPos));}
vec3 computeSkyBoxCoords(vec3 positionW,mat4 reflectionMatrix)
{return vec3(reflectionMatrix*vec4(positionW,1.));}
#ifdef REFLECTION
vec3 computeReflectionCoords(vec4 worldPos,vec3 worldNormal)
{
#ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED
vec3 direction=normalize(vDirectionW);return computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);
#endif
#ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED
vec3 direction=normalize(vDirectionW);return computeFixedEquirectangularCoords(worldPos,worldNormal,direction);
#endif
#ifdef REFLECTIONMAP_EQUIRECTANGULAR
return computeEquirectangularCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
#endif
#ifdef REFLECTIONMAP_SPHERICAL
return computeSphericalCoords(worldPos,worldNormal,view,reflectionMatrix);
#endif
#ifdef REFLECTIONMAP_PLANAR
return computePlanarCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
#endif
#ifdef REFLECTIONMAP_CUBIC
#ifdef USE_LOCAL_REFLECTIONMAP_CUBIC
return computeCubicLocalCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix,vReflectionSize,vReflectionPosition);
#else
return computeCubicCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
#endif
#endif
#ifdef REFLECTIONMAP_PROJECTION
return computeProjectionCoords(worldPos,view,reflectionMatrix);
#endif
#ifdef REFLECTIONMAP_SKYBOX
return computeSkyBoxCoords(vPositionUVW,reflectionMatrix);
#endif
#ifdef REFLECTIONMAP_EXPLICIT
return vec3(0,0,0);
#endif
}
#endif
`;H.IncludesShadersStore[tse]||(H.IncludesShadersStore[tse]=Oge);const Rge={name:tse,shader:Oge},cUe=Object.freeze(Object.defineProperty({__proto__:null,reflectionFunction:Rge},Symbol.toStringTag,{value:"Module"})),ise="imageProcessingDeclaration",Dge=`#ifdef EXPOSURE
uniform float exposureLinear;
#endif
#ifdef CONTRAST
uniform float contrast;
#endif
#if defined(VIGNETTE) || defined(DITHER)
uniform vec2 vInverseScreenSize;
#endif
#ifdef VIGNETTE
uniform vec4 vignetteSettings1;uniform vec4 vignetteSettings2;
#endif
#ifdef COLORCURVES
uniform vec4 vCameraColorCurveNegative;uniform vec4 vCameraColorCurveNeutral;uniform vec4 vCameraColorCurvePositive;
#endif
#ifdef COLORGRADING
#ifdef COLORGRADING3D
uniform highp sampler3D txColorTransform;
#else
uniform sampler2D txColorTransform;
#endif
uniform vec4 colorTransformSettings;
#endif
#ifdef DITHER
uniform float ditherIntensity;
#endif
`;H.IncludesShadersStore[ise]||(H.IncludesShadersStore[ise]=Dge);const Nge={name:ise,shader:Dge},uUe=Object.freeze(Object.defineProperty({__proto__:null,imageProcessingDeclaration:Nge},Symbol.toStringTag,{value:"Module"})),sse="lightFragmentDeclaration",wge=`#ifdef LIGHT{X}
uniform vec4 vLightData{X};uniform vec4 vLightDiffuse{X};
#ifdef SPECULARTERM
uniform vec4 vLightSpecular{X};
#else
vec4 vLightSpecular{X}=vec4(0.);
#endif
#ifdef SHADOW{X}
#ifdef SHADOWCSM{X}
uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];uniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];uniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];uniform float cascadeBlendFactor{X};varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};
#if defined(SHADOWPCSS{X})
uniform highp sampler2DArrayShadow shadowTexture{X};uniform highp sampler2DArray depthTexture{X};uniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];uniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];uniform float penumbraDarkness{X};
#elif defined(SHADOWPCF{X})
uniform highp sampler2DArrayShadow shadowTexture{X};
#else
uniform highp sampler2DArray shadowTexture{X};
#endif
#ifdef SHADOWCSMDEBUG{X}
const vec3 vCascadeColorsMultiplier{X}[8]=vec3[8]
(
vec3 ( 1.5,0.0,0.0 ),
vec3 ( 0.0,1.5,0.0 ),
vec3 ( 0.0,0.0,5.5 ),
vec3 ( 1.5,0.0,5.5 ),
vec3 ( 1.5,1.5,0.0 ),
vec3 ( 1.0,1.0,1.0 ),
vec3 ( 0.0,1.0,5.5 ),
vec3 ( 0.5,3.5,0.75 )
);vec3 shadowDebug{X};
#endif
#ifdef SHADOWCSMUSESHADOWMAXZ{X}
int index{X}=-1;
#else
int index{X}=SHADOWCSMNUM_CASCADES{X}-1;
#endif
float diff{X}=0.;
#elif defined(SHADOWCUBE{X})
uniform samplerCube shadowTexture{X};
#else
varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};
#if defined(SHADOWPCSS{X})
uniform highp sampler2DShadow shadowTexture{X};uniform highp sampler2D depthTexture{X};
#elif defined(SHADOWPCF{X})
uniform highp sampler2DShadow shadowTexture{X};
#else
uniform sampler2D shadowTexture{X};
#endif
uniform mat4 lightMatrix{X};
#endif
uniform vec4 shadowsInfo{X};uniform vec2 depthValues{X};
#endif
#ifdef SPOTLIGHT{X}
uniform vec4 vLightDirection{X};uniform vec4 vLightFalloff{X};
#elif defined(POINTLIGHT{X})
uniform vec4 vLightFalloff{X};
#elif defined(HEMILIGHT{X})
uniform vec3 vLightGround{X};
#endif
#ifdef AREALIGHT{X}
uniform vec4 vLightWidth{X};uniform vec4 vLightHeight{X};
#endif
#ifdef IESLIGHTTEXTURE{X}
uniform sampler2D iesLightTexture{X};
#endif
#ifdef PROJECTEDLIGHTTEXTURE{X}
uniform mat4 textureProjectionMatrix{X};uniform sampler2D projectionLightTexture{X};
#endif
#endif
`;H.IncludesShadersStore[sse]||(H.IncludesShadersStore[sse]=wge);const Bge={name:sse,shader:wge},hUe=Object.freeze(Object.defineProperty({__proto__:null,lightFragmentDeclaration:Bge},Symbol.toStringTag,{value:"Module"})),rse="lightUboDeclaration",zge=`#ifdef LIGHT{X}
uniform Light{X}
{vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;
#ifdef SPOTLIGHT{X}
vec4 vLightDirection;vec4 vLightFalloff;
#elif defined(POINTLIGHT{X})
vec4 vLightFalloff;
#elif defined(HEMILIGHT{X})
vec3 vLightGround;
#endif
#if defined(AREALIGHT{X})
vec4 vLightWidth;vec4 vLightHeight;
#endif
vec4 shadowsInfo;vec2 depthValues;} light{X};
#ifdef IESLIGHTTEXTURE{X}
uniform sampler2D iesLightTexture{X};
#endif
#ifdef PROJECTEDLIGHTTEXTURE{X}
uniform mat4 textureProjectionMatrix{X};uniform sampler2D projectionLightTexture{X};
#endif
#ifdef SHADOW{X}
#ifdef SHADOWCSM{X}
uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];uniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];uniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];uniform float cascadeBlendFactor{X};varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};
#if defined(SHADOWPCSS{X})
uniform highp sampler2DArrayShadow shadowTexture{X};uniform highp sampler2DArray depthTexture{X};uniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];uniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];uniform float penumbraDarkness{X};
#elif defined(SHADOWPCF{X})
uniform highp sampler2DArrayShadow shadowTexture{X};
#else
uniform highp sampler2DArray shadowTexture{X};
#endif
#ifdef SHADOWCSMDEBUG{X}
const vec3 vCascadeColorsMultiplier{X}[8]=vec3[8]
(
vec3 ( 1.5,0.0,0.0 ),
vec3 ( 0.0,1.5,0.0 ),
vec3 ( 0.0,0.0,5.5 ),
vec3 ( 1.5,0.0,5.5 ),
vec3 ( 1.5,1.5,0.0 ),
vec3 ( 1.0,1.0,1.0 ),
vec3 ( 0.0,1.0,5.5 ),
vec3 ( 0.5,3.5,0.75 )
);vec3 shadowDebug{X};
#endif
#ifdef SHADOWCSMUSESHADOWMAXZ{X}
int index{X}=-1;
#else
int index{X}=SHADOWCSMNUM_CASCADES{X}-1;
#endif
float diff{X}=0.;
#elif defined(SHADOWCUBE{X})
uniform samplerCube shadowTexture{X}; 
#else
varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};
#if defined(SHADOWPCSS{X})
uniform highp sampler2DShadow shadowTexture{X};uniform highp sampler2D depthTexture{X};
#elif defined(SHADOWPCF{X})
uniform highp sampler2DShadow shadowTexture{X};
#else
uniform sampler2D shadowTexture{X};
#endif
uniform mat4 lightMatrix{X};
#endif
#endif
#endif
`;H.IncludesShadersStore[rse]||(H.IncludesShadersStore[rse]=zge);const Fge={name:rse,shader:zge},dUe=Object.freeze(Object.defineProperty({__proto__:null,lightUboDeclaration:Fge},Symbol.toStringTag,{value:"Module"})),kge="ltcHelperFunctions",fUe=`vec2 LTCUv( const in vec3 N,const in vec3 V,const in float roughness ) {const float LUTSIZE=64.0;const float LUTSCALE=( LUTSIZE-1.0 )/LUTSIZE;const float LUTBIAS=0.5/LUTSIZE;float dotNV=saturate( dot( N,V ) );vec2 uv=vec2( roughness,sqrt( 1.0-dotNV ) );uv=uv*LUTSCALE+LUTBIAS;return uv;}
float LTCClippedSphereFormFactor( const in vec3 f ) {float l=length( f );return max( ( l*l+f.z )/( l+1.0 ),0.0 );}
vec3 LTCEdgeVectorFormFactor( const in vec3 v1,const in vec3 v2 ) {float x=dot( v1,v2 );float y=abs( x );float a=0.8543985+( 0.4965155+0.0145206*y )*y;float b=3.4175940+( 4.1616724+y )*y;float v=a/b;float thetaSintheta=0.0;if( x>0.0 )
{thetaSintheta=v;}
else
{thetaSintheta=0.5*inversesqrt( max( 1.0-x*x,1e-7 ) )-v;}
return cross( v1,v2 )*thetaSintheta;}
vec3 LTCEvaluate( const in vec3 N,const in vec3 V,const in vec3 P,const in mat3 mInv,const in vec3 rectCoords[ 4 ] ) {vec3 v1=rectCoords[ 1 ]-rectCoords[ 0 ];vec3 v2=rectCoords[ 3 ]-rectCoords[ 0 ];vec3 lightNormal=cross( v1,v2 );if( dot( lightNormal,P-rectCoords[ 0 ] )<0.0 ) return vec3( 0.0 );vec3 T1,T2;T1=normalize( V-N*dot( V,N ) );T2=- cross( N,T1 ); 
mat3 mat=mInv*transposeMat3( mat3( T1,T2,N ) );vec3 coords[ 4 ];coords[ 0 ]=mat*( rectCoords[ 0 ]-P );coords[ 1 ]=mat*( rectCoords[ 1 ]-P );coords[ 2 ]=mat*( rectCoords[ 2 ]-P );coords[ 3 ]=mat*( rectCoords[ 3 ]-P );coords[ 0 ]=normalize( coords[ 0 ] );coords[ 1 ]=normalize( coords[ 1 ] );coords[ 2 ]=normalize( coords[ 2 ] );coords[ 3 ]=normalize( coords[ 3 ] );vec3 vectorFormFactor=vec3( 0.0 );vectorFormFactor+=LTCEdgeVectorFormFactor( coords[ 0 ],coords[ 1 ] );vectorFormFactor+=LTCEdgeVectorFormFactor( coords[ 1 ],coords[ 2 ] );vectorFormFactor+=LTCEdgeVectorFormFactor( coords[ 2 ],coords[ 3 ] );vectorFormFactor+=LTCEdgeVectorFormFactor( coords[ 3 ],coords[ 0 ] );float result=LTCClippedSphereFormFactor( vectorFormFactor );return vec3( result );}
struct areaLightData
{vec3 Diffuse;vec3 Specular;vec4 Fresnel;};
#define inline
areaLightData computeAreaLightSpecularDiffuseFresnel(const in sampler2D ltc1,const in sampler2D ltc2,const in vec3 viewDir,const in vec3 normal,const in vec3 position,const in vec3 lightPos,const in vec3 halfWidth,const in vec3 halfHeight,const in float roughness) 
{areaLightData result;vec3 rectCoords[ 4 ];rectCoords[ 0 ]=lightPos+halfWidth-halfHeight; 
rectCoords[ 1 ]=lightPos-halfWidth-halfHeight;rectCoords[ 2 ]=lightPos-halfWidth+halfHeight;rectCoords[ 3 ]=lightPos+halfWidth+halfHeight;
#ifdef SPECULARTERM
vec2 uv=LTCUv( normal,viewDir,roughness );vec4 t1=texture2D( ltc1,uv );vec4 t2=texture2D( ltc2,uv );mat3 mInv=mat3(
vec3( t1.x,0,t1.y ),
vec3( 0,1, 0 ),
vec3( t1.z,0,t1.w )
);result.Specular=LTCEvaluate( normal,viewDir,position,mInv,rectCoords );result.Fresnel=t2;
#endif
result.Diffuse=LTCEvaluate( normal,viewDir,position,mat3( 1.0 ),rectCoords );return result;}`;H.IncludesShadersStore[kge]||(H.IncludesShadersStore[kge]=fUe);const nse="lightsFragmentFunctions",Uge=`struct lightingInfo
{vec3 diffuse;
#ifdef SPECULARTERM
vec3 specular;
#endif
#ifdef NDOTL
float ndl;
#endif
};lightingInfo computeLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {lightingInfo result;vec3 lightVectorW;float attenuation=1.0;if (lightData.w==0.)
{vec3 direction=lightData.xyz-vPositionW;attenuation=max(0.,1.0-length(direction)/range);lightVectorW=normalize(direction);}
else
{lightVectorW=normalize(-lightData.xyz);}
float ndl=max(0.,dot(vNormal,lightVectorW));
#ifdef NDOTL
result.ndl=ndl;
#endif
result.diffuse=ndl*diffuseColor*attenuation;
#ifdef SPECULARTERM
vec3 angleW=normalize(viewDirectionW+lightVectorW);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;
#endif
return result;}
float getAttenuation(float cosAngle,float exponent) {return max(0.,pow(cosAngle,exponent));}
float getIESAttenuation(float cosAngle,sampler2D iesLightSampler) {float angle=acos(cosAngle)/PI;return texture2D(iesLightSampler,vec2(angle,0.)).r;}
lightingInfo basicSpotLighting(vec3 viewDirectionW,vec3 lightVectorW,vec3 vNormal,float attenuation,vec3 diffuseColor,vec3 specularColor,float glossiness) {lightingInfo result; 
float ndl=max(0.,dot(vNormal,lightVectorW));
#ifdef NDOTL
result.ndl=ndl;
#endif
result.diffuse=ndl*diffuseColor*attenuation;
#ifdef SPECULARTERM
vec3 angleW=normalize(viewDirectionW+lightVectorW);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;
#endif
return result;}
lightingInfo computeIESSpotLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec4 lightDirection,vec3 diffuseColor,vec3 specularColor,float range,float glossiness,sampler2D iesLightSampler) { 
vec3 direction=lightData.xyz-vPositionW;vec3 lightVectorW=normalize(direction);float attenuation=max(0.,1.0-length(direction)/range);float dotProduct=dot(lightDirection.xyz,-lightVectorW);float cosAngle=max(0.,dotProduct);if (cosAngle>=lightDirection.w)
{ 
attenuation*=getIESAttenuation(dotProduct,iesLightSampler);return basicSpotLighting(viewDirectionW,lightVectorW,vNormal,attenuation,diffuseColor,specularColor,glossiness);}
lightingInfo result;result.diffuse=vec3(0.);
#ifdef SPECULARTERM
result.specular=vec3(0.);
#endif
#ifdef NDOTL
result.ndl=0.;
#endif
return result;}
lightingInfo computeSpotLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec4 lightDirection,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {vec3 direction=lightData.xyz-vPositionW;vec3 lightVectorW=normalize(direction);float attenuation=max(0.,1.0-length(direction)/range);float cosAngle=max(0.,dot(lightDirection.xyz,-lightVectorW));if (cosAngle>=lightDirection.w)
{ 
attenuation*=getAttenuation(cosAngle,lightData.w);return basicSpotLighting(viewDirectionW,lightVectorW,vNormal,attenuation,diffuseColor,specularColor,glossiness);}
lightingInfo result;result.diffuse=vec3(0.);
#ifdef SPECULARTERM
result.specular=vec3(0.);
#endif
#ifdef NDOTL
result.ndl=0.;
#endif
return result;}
lightingInfo computeHemisphericLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,vec3 groundColor,float glossiness) {lightingInfo result;float ndl=dot(vNormal,lightData.xyz)*0.5+0.5;
#ifdef NDOTL
result.ndl=ndl;
#endif
result.diffuse=mix(groundColor,diffuseColor,ndl);
#ifdef SPECULARTERM
vec3 angleW=normalize(viewDirectionW+lightData.xyz);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor;
#endif
return result;}
#define inline
vec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix,vec3 posW){vec4 strq=textureProjectionMatrix*vec4(posW,1.0);strq/=strq.w;vec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;return textureColor;}
#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
#include<ltcHelperFunctions>
uniform sampler2D areaLightsLTC1Sampler;uniform sampler2D areaLightsLTC2Sampler;
#define inline
lightingInfo computeAreaLighting(sampler2D ltc1,sampler2D ltc2,vec3 viewDirectionW,vec3 vNormal,vec3 vPosition,vec3 lightPosition,vec3 halfWidth,vec3 halfHeight,vec3 diffuseColor,vec3 specularColor,float roughness) 
{lightingInfo result;areaLightData data=computeAreaLightSpecularDiffuseFresnel(ltc1,ltc2,viewDirectionW,vNormal,vPosition,lightPosition,halfWidth,halfHeight,roughness);
#ifdef SPECULARTERM
vec3 fresnel=( specularColor*data.Fresnel.x+( vec3( 1.0 )-specularColor )*data.Fresnel.y );result.specular+=specularColor*fresnel*data.Specular;
#endif
result.diffuse+=diffuseColor*data.Diffuse;return result;}
#endif
`;H.IncludesShadersStore[nse]||(H.IncludesShadersStore[nse]=Uge);const jge={name:nse,shader:Uge},pUe=Object.freeze(Object.defineProperty({__proto__:null,lightsFragmentFunctions:jge},Symbol.toStringTag,{value:"Module"})),ase="shadowsFragmentFunctions",Vge=`#ifdef SHADOWS
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
#define TEXTUREFUNC(s,c,l) texture2DLodEXT(s,c,l)
#else
#define TEXTUREFUNC(s,c,b) texture2D(s,c,b)
#endif
#ifndef SHADOWFLOAT
float unpack(vec4 color)
{const vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(color,bit_shift);}
#endif
float computeFallOff(float value,vec2 clipSpace,float frustumEdgeFalloff)
{float mask=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.));return mix(value,1.0,mask);}
#define inline
float computeShadowCube(vec3 worldPos,vec3 lightPosition,samplerCube shadowSampler,float darkness,vec2 depthValues)
{vec3 directionToLight=worldPos-lightPosition;float depth=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
#ifndef SHADOWFLOAT
float shadow=unpack(textureCube(shadowSampler,directionToLight));
#else
float shadow=textureCube(shadowSampler,directionToLight).x;
#endif
return depth>shadow ? darkness : 1.0;}
#define inline
float computeShadowWithPoissonSamplingCube(vec3 worldPos,vec3 lightPosition,samplerCube shadowSampler,float mapSize,float darkness,vec2 depthValues)
{vec3 directionToLight=worldPos-lightPosition;float depth=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;float visibility=1.;vec3 poissonDisk[4];poissonDisk[0]=vec3(-1.0,1.0,-1.0);poissonDisk[1]=vec3(1.0,-1.0,-1.0);poissonDisk[2]=vec3(-1.0,-1.0,-1.0);poissonDisk[3]=vec3(1.0,-1.0,1.0);
#ifndef SHADOWFLOAT
if (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize))<depth) visibility-=0.25;if (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[1]*mapSize))<depth) visibility-=0.25;if (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[2]*mapSize))<depth) visibility-=0.25;if (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[3]*mapSize))<depth) visibility-=0.25;
#else
if (textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize).x<depth) visibility-=0.25;if (textureCube(shadowSampler,directionToLight+poissonDisk[1]*mapSize).x<depth) visibility-=0.25;if (textureCube(shadowSampler,directionToLight+poissonDisk[2]*mapSize).x<depth) visibility-=0.25;if (textureCube(shadowSampler,directionToLight+poissonDisk[3]*mapSize).x<depth) visibility-=0.25;
#endif
return min(1.0,visibility+darkness);}
#define inline
float computeShadowWithESMCube(vec3 worldPos,vec3 lightPosition,samplerCube shadowSampler,float darkness,float depthScale,vec2 depthValues)
{vec3 directionToLight=worldPos-lightPosition;float depth=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);float shadowPixelDepth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
#ifndef SHADOWFLOAT
float shadowMapSample=unpack(textureCube(shadowSampler,directionToLight));
#else
float shadowMapSample=textureCube(shadowSampler,directionToLight).x;
#endif
float esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return esm;}
#define inline
float computeShadowWithCloseESMCube(vec3 worldPos,vec3 lightPosition,samplerCube shadowSampler,float darkness,float depthScale,vec2 depthValues)
{vec3 directionToLight=worldPos-lightPosition;float depth=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);float shadowPixelDepth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
#ifndef SHADOWFLOAT
float shadowMapSample=unpack(textureCube(shadowSampler,directionToLight));
#else
float shadowMapSample=textureCube(shadowSampler,directionToLight).x;
#endif
float esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return esm;}
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
#define inline
float computeShadowCSM(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray shadowSampler,float darkness,float frustumEdgeFalloff)
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);vec3 uvLayer=vec3(uv.x,uv.y,layer);float shadowPixelDepth=clamp(depthMetric,0.,1.0);
#ifndef SHADOWFLOAT
float shadow=unpack(texture2D(shadowSampler,uvLayer));
#else
float shadow=texture2D(shadowSampler,uvLayer).x;
#endif
return shadowPixelDepth>shadow ? computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff) : 1.;}
#endif
#define inline
float computeShadow(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float frustumEdgeFalloff)
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
{return 1.0;}
else
{float shadowPixelDepth=clamp(depthMetric,0.,1.0);
#ifndef SHADOWFLOAT
float shadow=unpack(TEXTUREFUNC(shadowSampler,uv,0.));
#else
float shadow=TEXTUREFUNC(shadowSampler,uv,0.).x;
#endif
return shadowPixelDepth>shadow ? computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff) : 1.;}}
#define inline
float computeShadowWithPoissonSampling(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float mapSize,float darkness,float frustumEdgeFalloff)
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
{return 1.0;}
else
{float shadowPixelDepth=clamp(depthMetric,0.,1.0);float visibility=1.;vec2 poissonDisk[4];poissonDisk[0]=vec2(-0.94201624,-0.39906216);poissonDisk[1]=vec2(0.94558609,-0.76890725);poissonDisk[2]=vec2(-0.094184101,-0.92938870);poissonDisk[3]=vec2(0.34495938,0.29387760);
#ifndef SHADOWFLOAT
if (unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[0]*mapSize,0.))<shadowPixelDepth) visibility-=0.25;if (unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[1]*mapSize,0.))<shadowPixelDepth) visibility-=0.25;if (unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[2]*mapSize,0.))<shadowPixelDepth) visibility-=0.25;if (unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[3]*mapSize,0.))<shadowPixelDepth) visibility-=0.25;
#else
if (TEXTUREFUNC(shadowSampler,uv+poissonDisk[0]*mapSize,0.).x<shadowPixelDepth) visibility-=0.25;if (TEXTUREFUNC(shadowSampler,uv+poissonDisk[1]*mapSize,0.).x<shadowPixelDepth) visibility-=0.25;if (TEXTUREFUNC(shadowSampler,uv+poissonDisk[2]*mapSize,0.).x<shadowPixelDepth) visibility-=0.25;if (TEXTUREFUNC(shadowSampler,uv+poissonDisk[3]*mapSize,0.).x<shadowPixelDepth) visibility-=0.25;
#endif
return computeFallOff(min(1.0,visibility+darkness),clipSpace.xy,frustumEdgeFalloff);}}
#define inline
float computeShadowWithESM(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float depthScale,float frustumEdgeFalloff)
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
{return 1.0;}
else
{float shadowPixelDepth=clamp(depthMetric,0.,1.0);
#ifndef SHADOWFLOAT
float shadowMapSample=unpack(TEXTUREFUNC(shadowSampler,uv,0.));
#else
float shadowMapSample=TEXTUREFUNC(shadowSampler,uv,0.).x;
#endif
float esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}
#define inline
float computeShadowWithCloseESM(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float depthScale,float frustumEdgeFalloff)
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
{return 1.0;}
else
{float shadowPixelDepth=clamp(depthMetric,0.,1.0); 
#ifndef SHADOWFLOAT
float shadowMapSample=unpack(TEXTUREFUNC(shadowSampler,uv,0.));
#else
float shadowMapSample=TEXTUREFUNC(shadowSampler,uv,0.).x;
#endif
float esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}
#ifdef IS_NDC_HALF_ZRANGE
#define ZINCLIP clipSpace.z
#else
#define ZINCLIP uvDepth.z
#endif
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
#define GREATEST_LESS_THAN_ONE 0.99999994
#define DISABLE_UNIFORMITY_ANALYSIS
#define inline
float computeShadowWithCSMPCF1(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,float darkness,float frustumEdgeFalloff)
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);vec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);float shadow=texture2D(shadowSampler,uvDepthLayer);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
#define inline
float computeShadowWithCSMPCF3(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x; 
uv+=0.5; 
vec2 st=fract(uv); 
vec2 base_uv=floor(uv)-0.5; 
base_uv*=shadowMapSizeAndInverse.y; 
vec2 uvw0=3.-2.*st;vec2 uvw1=1.+2.*st;vec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;vec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;float shadow=0.;shadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));shadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));shadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));shadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
#define inline
float computeShadowWithCSMPCF5(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x; 
uv+=0.5; 
vec2 st=fract(uv); 
vec2 base_uv=floor(uv)-0.5; 
base_uv*=shadowMapSizeAndInverse.y; 
vec2 uvw0=4.-3.*st;vec2 uvw1=vec2(7.);vec2 uvw2=1.+3.*st;vec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;vec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;float shadow=0.;shadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));shadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));shadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[0]),layer,uvDepth.z));shadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));shadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));shadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[1]),layer,uvDepth.z));shadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[2]),layer,uvDepth.z));shadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[2]),layer,uvDepth.z));shadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[2]),layer,uvDepth.z));shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
#define inline
float computeShadowWithPCF1(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,float darkness,float frustumEdgeFalloff)
{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}
else
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=ZINCLIP;float shadow=TEXTUREFUNC(shadowSampler,uvDepth,0.);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
#define inline
float computeShadowWithPCF3(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)
{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}
else
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=ZINCLIP;vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x; 
uv+=0.5; 
vec2 st=fract(uv); 
vec2 base_uv=floor(uv)-0.5; 
base_uv*=shadowMapSizeAndInverse.y; 
vec2 uvw0=3.-2.*st;vec2 uvw1=1.+2.*st;vec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;vec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;float shadow=0.;shadow+=uvw0.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z),0.);shadow+=uvw1.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z),0.);shadow+=uvw0.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z),0.);shadow+=uvw1.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z),0.);shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
#define inline
float computeShadowWithPCF5(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)
{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}
else
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=ZINCLIP;vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x; 
uv+=0.5; 
vec2 st=fract(uv); 
vec2 base_uv=floor(uv)-0.5; 
base_uv*=shadowMapSizeAndInverse.y; 
vec2 uvw0=4.-3.*st;vec2 uvw1=vec2(7.);vec2 uvw2=1.+3.*st;vec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;vec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;float shadow=0.;shadow+=uvw0.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z),0.);shadow+=uvw1.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z),0.);shadow+=uvw2.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[0]),uvDepth.z),0.);shadow+=uvw0.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z),0.);shadow+=uvw1.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z),0.);shadow+=uvw2.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[1]),uvDepth.z),0.);shadow+=uvw0.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[2]),uvDepth.z),0.);shadow+=uvw1.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[2]),uvDepth.z),0.);shadow+=uvw2.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[2]),uvDepth.z),0.);shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
const vec3 PoissonSamplers32[64]=vec3[64](
vec3(0.06407013,0.05409927,0.),
vec3(0.7366577,0.5789394,0.),
vec3(-0.6270542,-0.5320278,0.),
vec3(-0.4096107,0.8411095,0.),
vec3(0.6849564,-0.4990818,0.),
vec3(-0.874181,-0.04579735,0.),
vec3(0.9989998,0.0009880066,0.),
vec3(-0.004920578,-0.9151649,0.),
vec3(0.1805763,0.9747483,0.),
vec3(-0.2138451,0.2635818,0.),
vec3(0.109845,0.3884785,0.),
vec3(0.06876755,-0.3581074,0.),
vec3(0.374073,-0.7661266,0.),
vec3(0.3079132,-0.1216763,0.),
vec3(-0.3794335,-0.8271583,0.),
vec3(-0.203878,-0.07715034,0.),
vec3(0.5912697,0.1469799,0.),
vec3(-0.88069,0.3031784,0.),
vec3(0.5040108,0.8283722,0.),
vec3(-0.5844124,0.5494877,0.),
vec3(0.6017799,-0.1726654,0.),
vec3(-0.5554981,0.1559997,0.),
vec3(-0.3016369,-0.3900928,0.),
vec3(-0.5550632,-0.1723762,0.),
vec3(0.925029,0.2995041,0.),
vec3(-0.2473137,0.5538505,0.),
vec3(0.9183037,-0.2862392,0.),
vec3(0.2469421,0.6718712,0.),
vec3(0.3916397,-0.4328209,0.),
vec3(-0.03576927,-0.6220032,0.),
vec3(-0.04661255,0.7995201,0.),
vec3(0.4402924,0.3640312,0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.),
vec3(0.)
);const vec3 PoissonSamplers64[64]=vec3[64](
vec3(-0.613392,0.617481,0.),
vec3(0.170019,-0.040254,0.),
vec3(-0.299417,0.791925,0.),
vec3(0.645680,0.493210,0.),
vec3(-0.651784,0.717887,0.),
vec3(0.421003,0.027070,0.),
vec3(-0.817194,-0.271096,0.),
vec3(-0.705374,-0.668203,0.),
vec3(0.977050,-0.108615,0.),
vec3(0.063326,0.142369,0.),
vec3(0.203528,0.214331,0.),
vec3(-0.667531,0.326090,0.),
vec3(-0.098422,-0.295755,0.),
vec3(-0.885922,0.215369,0.),
vec3(0.566637,0.605213,0.),
vec3(0.039766,-0.396100,0.),
vec3(0.751946,0.453352,0.),
vec3(0.078707,-0.715323,0.),
vec3(-0.075838,-0.529344,0.),
vec3(0.724479,-0.580798,0.),
vec3(0.222999,-0.215125,0.),
vec3(-0.467574,-0.405438,0.),
vec3(-0.248268,-0.814753,0.),
vec3(0.354411,-0.887570,0.),
vec3(0.175817,0.382366,0.),
vec3(0.487472,-0.063082,0.),
vec3(-0.084078,0.898312,0.),
vec3(0.488876,-0.783441,0.),
vec3(0.470016,0.217933,0.),
vec3(-0.696890,-0.549791,0.),
vec3(-0.149693,0.605762,0.),
vec3(0.034211,0.979980,0.),
vec3(0.503098,-0.308878,0.),
vec3(-0.016205,-0.872921,0.),
vec3(0.385784,-0.393902,0.),
vec3(-0.146886,-0.859249,0.),
vec3(0.643361,0.164098,0.),
vec3(0.634388,-0.049471,0.),
vec3(-0.688894,0.007843,0.),
vec3(0.464034,-0.188818,0.),
vec3(-0.440840,0.137486,0.),
vec3(0.364483,0.511704,0.),
vec3(0.034028,0.325968,0.),
vec3(0.099094,-0.308023,0.),
vec3(0.693960,-0.366253,0.),
vec3(0.678884,-0.204688,0.),
vec3(0.001801,0.780328,0.),
vec3(0.145177,-0.898984,0.),
vec3(0.062655,-0.611866,0.),
vec3(0.315226,-0.604297,0.),
vec3(-0.780145,0.486251,0.),
vec3(-0.371868,0.882138,0.),
vec3(0.200476,0.494430,0.),
vec3(-0.494552,-0.711051,0.),
vec3(0.612476,0.705252,0.),
vec3(-0.578845,-0.768792,0.),
vec3(-0.772454,-0.090976,0.),
vec3(0.504440,0.372295,0.),
vec3(0.155736,0.065157,0.),
vec3(0.391522,0.849605,0.),
vec3(-0.620106,-0.328104,0.),
vec3(0.789239,-0.419965,0.),
vec3(-0.545396,0.538133,0.),
vec3(-0.178564,-0.596057,0.)
);
#define inline
float computeShadowWithCSMPCSS(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,int searchTapCount,int pcfTapCount,vec3[64] poissonSamplers,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness)
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);vec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);float blockerDepth=0.0;float sumBlockerDepth=0.0;float numBlocker=0.0;for (int i=0; i<searchTapCount; i ++) {blockerDepth=texture2D(depthSampler,vec3(uvDepth.xy+(lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse*PoissonSamplers32[i].xy),layer)).r;if (blockerDepth<depthMetric) {sumBlockerDepth+=blockerDepth;numBlocker++;}}
float avgBlockerDepth=sumBlockerDepth/numBlocker;float AAOffset=shadowMapSizeInverse*10.;float penumbraRatio=((depthMetric-avgBlockerDepth)*depthCorrection+AAOffset);vec4 filterRadius=vec4(penumbraRatio*lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse,0.,0.);float random=getRand(vPositionFromLight.xy);float rotationAngle=random*3.1415926;vec2 rotationVector=vec2(cos(rotationAngle),sin(rotationAngle));float shadow=0.;for (int i=0; i<pcfTapCount; i++) {vec4 offset=vec4(poissonSamplers[i],0.);offset=vec4(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.,0.);shadow+=texture2D(shadowSampler,uvDepthLayer+offset*filterRadius);}
shadow/=float(pcfTapCount);shadow=mix(shadow,1.,min((depthMetric-avgBlockerDepth)*depthCorrection*penumbraDarkness,1.));shadow=mix(darkness,1.,shadow);if (numBlocker<1.0) {return 1.0;}
else
{return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
#define inline
float computeShadowWithPCSS(vec4 vPositionFromLight,float depthMetric,sampler2D depthSampler,highp sampler2DShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,int searchTapCount,int pcfTapCount,vec3[64] poissonSamplers)
{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}
else
{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=ZINCLIP;float blockerDepth=0.0;float sumBlockerDepth=0.0;float numBlocker=0.0;for (int i=0; i<searchTapCount; i ++) {blockerDepth=TEXTUREFUNC(depthSampler,uvDepth.xy+(lightSizeUV*shadowMapSizeInverse*PoissonSamplers32[i].xy),0.).r;if (blockerDepth<depthMetric) {sumBlockerDepth+=blockerDepth;numBlocker++;}}
if (numBlocker<1.0) {return 1.0;}
else
{float avgBlockerDepth=sumBlockerDepth/numBlocker;float AAOffset=shadowMapSizeInverse*10.;float penumbraRatio=((depthMetric-avgBlockerDepth)+AAOffset);float filterRadius=penumbraRatio*lightSizeUV*shadowMapSizeInverse;float random=getRand(vPositionFromLight.xy);float rotationAngle=random*3.1415926;vec2 rotationVector=vec2(cos(rotationAngle),sin(rotationAngle));float shadow=0.;for (int i=0; i<pcfTapCount; i++) {vec3 offset=poissonSamplers[i];offset=vec3(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.);shadow+=TEXTUREFUNC(shadowSampler,uvDepth+offset*filterRadius,0.);}
shadow/=float(pcfTapCount);shadow=mix(shadow,1.,depthMetric-avgBlockerDepth);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}}
#define inline
float computeShadowWithPCSS16(vec4 vPositionFromLight,float depthMetric,sampler2D depthSampler,highp sampler2DShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff)
{return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32);}
#define inline
float computeShadowWithPCSS32(vec4 vPositionFromLight,float depthMetric,sampler2D depthSampler,highp sampler2DShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff)
{return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32);}
#define inline
float computeShadowWithPCSS64(vec4 vPositionFromLight,float depthMetric,sampler2D depthSampler,highp sampler2DShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff)
{return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64);}
#define inline
float computeShadowWithCSMPCSS16(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness)
{return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
#define inline
float computeShadowWithCSMPCSS32(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness)
{return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
#define inline
float computeShadowWithCSMPCSS64(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness)
{return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
#endif
#endif
`;H.IncludesShadersStore[ase]||(H.IncludesShadersStore[ase]=Vge);const Gge={name:ase,shader:Vge},mUe=Object.freeze(Object.defineProperty({__proto__:null,shadowsFragmentFunctions:Gge},Symbol.toStringTag,{value:"Module"})),ose="imageProcessingFunctions",Wge=`#if defined(COLORGRADING) && !defined(COLORGRADING3D)
/** 
* Polyfill for SAMPLE_TEXTURE_3D,which is unsupported in WebGL.
* sampler3dSetting.x=textureOffset (0.5/textureSize).
* sampler3dSetting.y=textureSize.
*/
#define inline
vec3 sampleTexture3D(sampler2D colorTransform,vec3 color,vec2 sampler3dSetting)
{float sliceSize=2.0*sampler3dSetting.x; 
#ifdef SAMPLER3DGREENDEPTH
float sliceContinuous=(color.g-sampler3dSetting.x)*sampler3dSetting.y;
#else
float sliceContinuous=(color.b-sampler3dSetting.x)*sampler3dSetting.y;
#endif
float sliceInteger=floor(sliceContinuous);float sliceFraction=sliceContinuous-sliceInteger;
#ifdef SAMPLER3DGREENDEPTH
vec2 sliceUV=color.rb;
#else
vec2 sliceUV=color.rg;
#endif
sliceUV.x*=sliceSize;sliceUV.x+=sliceInteger*sliceSize;sliceUV=saturate(sliceUV);vec4 slice0Color=texture2D(colorTransform,sliceUV);sliceUV.x+=sliceSize;sliceUV=saturate(sliceUV);vec4 slice1Color=texture2D(colorTransform,sliceUV);vec3 result=mix(slice0Color.rgb,slice1Color.rgb,sliceFraction);
#ifdef SAMPLER3DBGRMAP
color.rgb=result.rgb;
#else
color.rgb=result.bgr;
#endif
return color;}
#endif
#if TONEMAPPING==3
const float PBRNeutralStartCompression=0.8-0.04;const float PBRNeutralDesaturation=0.15;vec3 PBRNeutralToneMapping( vec3 color ) {float x=min(color.r,min(color.g,color.b));float offset=x<0.08 ? x-6.25*x*x : 0.04;color-=offset;float peak=max(color.r,max(color.g,color.b));if (peak<PBRNeutralStartCompression) return color;float d=1.-PBRNeutralStartCompression;float newPeak=1.-d*d/(peak+d-PBRNeutralStartCompression);color*=newPeak/peak;float g=1.-1./(PBRNeutralDesaturation*(peak-newPeak)+1.);return mix(color,newPeak*vec3(1,1,1),g);}
#endif
#if TONEMAPPING==2
const mat3 ACESInputMat=mat3(
vec3(0.59719,0.07600,0.02840),
vec3(0.35458,0.90834,0.13383),
vec3(0.04823,0.01566,0.83777)
);const mat3 ACESOutputMat=mat3(
vec3( 1.60475,-0.10208,-0.00327),
vec3(-0.53108, 1.10813,-0.07276),
vec3(-0.07367,-0.00605, 1.07602)
);vec3 RRTAndODTFit(vec3 v)
{vec3 a=v*(v+0.0245786)-0.000090537;vec3 b=v*(0.983729*v+0.4329510)+0.238081;return a/b;}
vec3 ACESFitted(vec3 color)
{color=ACESInputMat*color;color=RRTAndODTFit(color);color=ACESOutputMat*color;color=saturate(color);return color;}
#endif
#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_DEFINITIONS
vec4 applyImageProcessing(vec4 result) {
#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATSTART
#ifdef EXPOSURE
result.rgb*=exposureLinear;
#endif
#ifdef VIGNETTE
vec2 viewportXY=gl_FragCoord.xy*vInverseScreenSize;viewportXY=viewportXY*2.0-1.0;vec3 vignetteXY1=vec3(viewportXY*vignetteSettings1.xy+vignetteSettings1.zw,1.0);float vignetteTerm=dot(vignetteXY1,vignetteXY1);float vignette=pow(vignetteTerm,vignetteSettings2.w);vec3 vignetteColor=vignetteSettings2.rgb;
#ifdef VIGNETTEBLENDMODEMULTIPLY
vec3 vignetteColorMultiplier=mix(vignetteColor,vec3(1,1,1),vignette);result.rgb*=vignetteColorMultiplier;
#endif
#ifdef VIGNETTEBLENDMODEOPAQUE
result.rgb=mix(vignetteColor,result.rgb,vignette);
#endif
#endif
#if TONEMAPPING==3
result.rgb=PBRNeutralToneMapping(result.rgb);
#elif TONEMAPPING==2
result.rgb=ACESFitted(result.rgb);
#elif TONEMAPPING==1
const float tonemappingCalibration=1.590579;result.rgb=1.0-exp2(-tonemappingCalibration*result.rgb);
#endif
result.rgb=toGammaSpace(result.rgb);result.rgb=saturate(result.rgb);
#ifdef CONTRAST
vec3 resultHighContrast=result.rgb*result.rgb*(3.0-2.0*result.rgb);if (contrast<1.0) {result.rgb=mix(vec3(0.5,0.5,0.5),result.rgb,contrast);} else {result.rgb=mix(result.rgb,resultHighContrast,contrast-1.0);}
#endif
#ifdef COLORGRADING
vec3 colorTransformInput=result.rgb*colorTransformSettings.xxx+colorTransformSettings.yyy;
#ifdef COLORGRADING3D
vec3 colorTransformOutput=texture(txColorTransform,colorTransformInput).rgb;
#else
vec3 colorTransformOutput=sampleTexture3D(txColorTransform,colorTransformInput,colorTransformSettings.yz).rgb;
#endif
result.rgb=mix(result.rgb,colorTransformOutput,colorTransformSettings.www);
#endif
#ifdef COLORCURVES
float luma=getLuminance(result.rgb);vec2 curveMix=clamp(vec2(luma*3.0-1.5,luma*-3.0+1.5),vec2(0.0),vec2(1.0));vec4 colorCurve=vCameraColorCurveNeutral+curveMix.x*vCameraColorCurvePositive-curveMix.y*vCameraColorCurveNegative;result.rgb*=colorCurve.rgb;result.rgb=mix(vec3(luma),result.rgb,colorCurve.a);
#endif
#ifdef DITHER
float rand=getRand(gl_FragCoord.xy*vInverseScreenSize);float dither=mix(-ditherIntensity,ditherIntensity,rand);result.rgb=saturate(result.rgb+vec3(dither));
#endif
#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATEND
return result;}`;H.IncludesShadersStore[ose]||(H.IncludesShadersStore[ose]=Wge);const Hge={name:ose,shader:Wge},gUe=Object.freeze(Object.defineProperty({__proto__:null,imageProcessingFunctions:Hge},Symbol.toStringTag,{value:"Module"})),lse="fogFragmentDeclaration",Yge=`#ifdef FOG
#define FOGMODE_NONE 0.
#define FOGMODE_EXP 1.
#define FOGMODE_EXP2 2.
#define FOGMODE_LINEAR 3.
#define E 2.71828
uniform vec4 vFogInfos;uniform vec3 vFogColor;varying vec3 vFogDistance;float CalcFogFactor()
{float fogCoeff=1.0;float fogStart=vFogInfos.y;float fogEnd=vFogInfos.z;float fogDensity=vFogInfos.w;float fogDistance=length(vFogDistance);if (FOGMODE_LINEAR==vFogInfos.x)
{fogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart);}
else if (FOGMODE_EXP==vFogInfos.x)
{fogCoeff=1.0/pow(E,fogDistance*fogDensity);}
else if (FOGMODE_EXP2==vFogInfos.x)
{fogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);}
return clamp(fogCoeff,0.0,1.0);}
#endif
`;H.IncludesShadersStore[lse]||(H.IncludesShadersStore[lse]=Yge);const Xge={name:lse,shader:Yge},_Ue=Object.freeze(Object.defineProperty({__proto__:null,fogFragmentDeclaration:Xge},Symbol.toStringTag,{value:"Module"})),Zge="intersectionFunctions",vUe=`float diskIntersectWithBackFaceCulling(vec3 ro,vec3 rd,vec3 c,float r) {float d=rd.y;if(d>0.0) { return 1e6; }
vec3 o=ro-c;float t=-o.y/d;vec3 q=o+rd*t;return (dot(q,q)<r*r) ? t : 1e6;}
vec2 sphereIntersect(vec3 ro,vec3 rd,vec3 ce,float ra) {vec3 oc=ro-ce;float b=dot(oc,rd);float c=dot(oc,oc)-ra*ra;float h=b*b-c;if(h<0.0) { return vec2(-1.0,-1.0); }
h=sqrt(h);return vec2(-b+h,-b-h);}
vec2 sphereIntersectFromOrigin(vec3 ro,vec3 rd,float ra) {float b=dot(ro,rd);float c=dot(ro,ro)-ra*ra;float h=b*b-c;if(h<0.0) { return vec2(-1.0,-1.0); }
h=sqrt(h);return vec2(-b+h,-b-h);}`;H.IncludesShadersStore[Zge]||(H.IncludesShadersStore[Zge]=vUe);const cse="lightFragment",Kge=`#ifdef LIGHT{X}
#if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})
#else
vec4 diffuse{X}=light{X}.vLightDiffuse;
#define CUSTOM_LIGHT{X}_COLOR 
#ifdef PBR
#ifdef SPOTLIGHT{X}
preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,vPositionW);
#elif defined(POINTLIGHT{X})
preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,vPositionW);
#elif defined(HEMILIGHT{X})
preInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
#elif defined(DIRLIGHT{X})
preInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
#elif defined(AREALIGHT{X}) && defined(AREALIGHTSUPPORTED)
preInfo=computeAreaPreLightingInfo(areaLightsLTC1Sampler,areaLightsLTC2Sampler,viewDirectionW,normalW,vPositionW,light{X}.vLightData,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,roughness);
#endif
preInfo.NdotV=NdotV;
#ifdef SPOTLIGHT{X}
#ifdef LIGHT_FALLOFF_GLTF{X}
preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);
#ifdef IESLIGHTTEXTURE{X}
preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X});
#else
preInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);
#endif
#elif defined(LIGHT_FALLOFF_PHYSICAL{X})
preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);
#ifdef IESLIGHTTEXTURE{X}
preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X});
#else
preInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);
#endif
#elif defined(LIGHT_FALLOFF_STANDARD{X})
preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);
#ifdef IESLIGHTTEXTURE{X}
preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X});
#else
preInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);
#endif
#else
preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);
#ifdef IESLIGHTTEXTURE{X}
preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X});
#else
preInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);
#endif 
#endif
#elif defined(POINTLIGHT{X})
#ifdef LIGHT_FALLOFF_GLTF{X}
preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);
#elif defined(LIGHT_FALLOFF_PHYSICAL{X})
preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);
#elif defined(LIGHT_FALLOFF_STANDARD{X})
preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);
#else
preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);
#endif
#else
preInfo.attenuation=1.0;
#endif
#if defined(HEMILIGHT{X}) || defined(AREALIGHT{X})
preInfo.roughness=roughness;
#else
preInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
#endif
#ifdef IRIDESCENCE
preInfo.iridescenceIntensity=iridescenceIntensity;
#endif
#ifdef HEMILIGHT{X}
info.diffuse=computeHemisphericDiffuseLighting(preInfo,diffuse{X}.rgb,light{X}.vLightGround);
#elif defined(AREALIGHT{X})
info.diffuse=computeAreaDiffuseLighting(preInfo,diffuse{X}.rgb);
#elif defined(SS_TRANSLUCENCY)
info.diffuse=computeDiffuseAndTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance,subSurfaceOut.translucencyIntensity,surfaceAlbedo.rgb);
#else
info.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb);
#endif
#ifdef SPECULARTERM
#if AREALIGHT{X}
info.specular=computeAreaSpecularLighting(preInfo,light{X}.vLightSpecular.rgb);
#else
#ifdef ANISOTROPIC
info.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
#else
info.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
#endif
#endif
#endif
#ifndef AREALIGHT{X}
#ifdef SHEEN
#ifdef SHEEN_LINKWITHALBEDO
preInfo.roughness=sheenOut.sheenIntensity;
#else
#ifdef HEMILIGHT{X}
preInfo.roughness=sheenOut.sheenRoughness;
#else
preInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
#endif
#endif
info.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
#endif
#ifdef CLEARCOAT
#ifdef HEMILIGHT{X}
preInfo.roughness=clearcoatOut.clearCoatRoughness;
#else
preInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
#endif
info.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,diffuse{X}.rgb);
#ifdef CLEARCOAT_TINT
absorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);info.diffuse*=absorption;
#ifdef SPECULARTERM
info.specular*=absorption;
#endif
#endif
info.diffuse*=info.clearCoat.w;
#ifdef SPECULARTERM
info.specular*=info.clearCoat.w;
#endif
#ifdef SHEEN
info.sheen*=info.clearCoat.w;
#endif
#endif
#endif
#else
#ifdef SPOTLIGHT{X}
#ifdef IESLIGHTTEXTURE{X}
info=computeIESSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness,iesLightTexture{X});
#else
info=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
#endif
#elif defined(HEMILIGHT{X})
info=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);
#elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})
info=computeLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
#elif defined(AREALIGHT{X}) && defined(AREALIGHTSUPPORTED)
info=computeAreaLighting(areaLightsLTC1Sampler,areaLightsLTC2Sampler,viewDirectionW,normalW,vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.rgb,light{X}.vLightHeight.rgb,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,
#ifdef AREALIGHTNOROUGHTNESS
0.5
#else
vReflectionInfos.y
#endif
);
#endif
#endif
#ifdef PROJECTEDLIGHTTEXTURE{X}
info.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightTexture{X},textureProjectionMatrix{X},vPositionW);
#endif
#endif
#ifdef SHADOW{X}
#ifdef SHADOWCSM{X}
for (int i=0; i<SHADOWCSMNUM_CASCADES{X}; i++) 
{
#ifdef SHADOWCSM_RIGHTHANDED{X}
diff{X}=viewFrustumZ{X}[i]+vPositionFromCamera{X}.z;
#else
diff{X}=viewFrustumZ{X}[i]-vPositionFromCamera{X}.z;
#endif
if (diff{X}>=0.) {index{X}=i;break;}}
#ifdef SHADOWCSMUSESHADOWMAXZ{X}
if (index{X}>=0)
#endif
{
#if defined(SHADOWPCF{X})
#if defined(SHADOWLOWQUALITY{X})
shadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#elif defined(SHADOWMEDIUMQUALITY{X})
shadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#else
shadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#elif defined(SHADOWPCSS{X})
#if defined(SHADOWLOWQUALITY{X})
shadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});
#elif defined(SHADOWMEDIUMQUALITY{X})
shadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});
#else
shadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});
#endif
#else
shadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#ifdef SHADOWCSMDEBUG{X}
shadowDebug{X}=vec3(shadow)*vCascadeColorsMultiplier{X}[index{X}];
#endif
#ifndef SHADOWCSMNOBLEND{X}
float frustumLength=frustumLengths{X}[index{X}];float diffRatio=clamp(diff{X}/frustumLength,0.,1.)*cascadeBlendFactor{X};if (index{X}<(SHADOWCSMNUM_CASCADES{X}-1) && diffRatio<1.)
{index{X}+=1;float nextShadow=0.;
#if defined(SHADOWPCF{X})
#if defined(SHADOWLOWQUALITY{X})
nextShadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#elif defined(SHADOWMEDIUMQUALITY{X})
nextShadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#else
nextShadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#elif defined(SHADOWPCSS{X})
#if defined(SHADOWLOWQUALITY{X})
nextShadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});
#elif defined(SHADOWMEDIUMQUALITY{X})
nextShadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});
#else
nextShadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});
#endif
#else
nextShadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
shadow=mix(nextShadow,shadow,diffRatio);
#ifdef SHADOWCSMDEBUG{X}
shadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);
#endif
}
#endif
}
#elif defined(SHADOWCLOSEESM{X})
#if defined(SHADOWCUBE{X})
shadow=computeShadowWithCloseESMCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
#else
shadow=computeShadowWithCloseESM(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);
#endif
#elif defined(SHADOWESM{X})
#if defined(SHADOWCUBE{X})
shadow=computeShadowWithESMCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
#else
shadow=computeShadowWithESM(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);
#endif
#elif defined(SHADOWPOISSON{X})
#if defined(SHADOWCUBE{X})
shadow=computeShadowWithPoissonSamplingCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);
#else
shadow=computeShadowWithPoissonSampling(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#elif defined(SHADOWPCF{X})
#if defined(SHADOWLOWQUALITY{X})
shadow=computeShadowWithPCF1(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#elif defined(SHADOWMEDIUMQUALITY{X})
shadow=computeShadowWithPCF3(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#else
shadow=computeShadowWithPCF5(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#elif defined(SHADOWPCSS{X})
#if defined(SHADOWLOWQUALITY{X})
shadow=computeShadowWithPCSS16(vPositionFromLight{X},vDepthMetric{X},depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#elif defined(SHADOWMEDIUMQUALITY{X})
shadow=computeShadowWithPCSS32(vPositionFromLight{X},vDepthMetric{X},depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#else
shadow=computeShadowWithPCSS64(vPositionFromLight{X},vDepthMetric{X},depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#else
#if defined(SHADOWCUBE{X})
shadow=computeShadowCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.x,light{X}.depthValues);
#else
shadow=computeShadow(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
#endif
#endif
#ifdef SHADOWONLY
#ifndef SHADOWINUSE
#define SHADOWINUSE
#endif
globalShadow+=shadow;shadowLightCount+=1.0;
#endif
#else
shadow=1.;
#endif
aggShadow+=shadow;numLights+=1.0;
#ifndef SHADOWONLY
#ifdef CUSTOMUSERLIGHTING
diffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);
#ifdef SPECULARTERM
specularBase+=computeCustomSpecularLighting(info,specularBase,shadow);
#endif
#elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})
diffuseBase+=lightmapColor.rgb*shadow;
#ifdef SPECULARTERM
#ifndef LIGHTMAPNOSPECULAR{X}
specularBase+=info.specular*shadow*lightmapColor.rgb;
#endif
#endif
#ifdef CLEARCOAT
#ifndef LIGHTMAPNOSPECULAR{X}
clearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;
#endif
#endif
#ifdef SHEEN
#ifndef LIGHTMAPNOSPECULAR{X}
sheenBase+=info.sheen.rgb*shadow;
#endif
#endif
#else
#ifdef SHADOWCSMDEBUG{X}
diffuseBase+=info.diffuse*shadowDebug{X};
#else 
diffuseBase+=info.diffuse*shadow;
#endif
#ifdef SPECULARTERM
specularBase+=info.specular*shadow;
#endif
#ifdef CLEARCOAT
clearCoatBase+=info.clearCoat.rgb*shadow;
#endif
#ifdef SHEEN
sheenBase+=info.sheen.rgb*shadow;
#endif
#endif
#endif
#endif
`;H.IncludesShadersStore[cse]||(H.IncludesShadersStore[cse]=Kge);const qge={name:cse,shader:Kge},AUe=Object.freeze(Object.defineProperty({__proto__:null,lightFragment:qge},Symbol.toStringTag,{value:"Module"})),Qge="logDepthFragment",CUe=`#ifdef LOGARITHMICDEPTH
gl_FragDepthEXT=log2(vFragmentDepth)*logarithmicDepthConstant*0.5;
#endif
`;H.IncludesShadersStore[Qge]||(H.IncludesShadersStore[Qge]=CUe);const Jge="fogFragment",xUe=`#ifdef FOG
float fog=CalcFogFactor();
#ifdef PBR
fog=toLinearSpace(fog);
#endif
color.rgb=mix(vFogColor,color.rgb,fog);
#endif
`;H.IncludesShadersStore[Jge]||(H.IncludesShadersStore[Jge]=xUe);const use="backgroundPixelShader",$ge=`#ifdef TEXTURELODSUPPORT
#extension GL_EXT_shader_texture_lod : enable
#endif
precision highp float;
#include<__decl__backgroundFragment>
#include<helperFunctions>
varying vec3 vPositionW;
#ifdef MAINUV1
varying vec2 vMainUV1;
#endif 
#ifdef MAINUV2 
varying vec2 vMainUV2; 
#endif 
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef DIFFUSE
#if DIFFUSEDIRECTUV==1
#define vDiffuseUV vMainUV1
#elif DIFFUSEDIRECTUV==2
#define vDiffuseUV vMainUV2
#else
varying vec2 vDiffuseUV;
#endif
uniform sampler2D diffuseSampler;
#endif
#ifdef REFLECTION
#ifdef REFLECTIONMAP_3D
#define sampleReflection(s,c) textureCube(s,c)
uniform samplerCube reflectionSampler;
#ifdef TEXTURELODSUPPORT
#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)
#else
uniform samplerCube reflectionSamplerLow;uniform samplerCube reflectionSamplerHigh;
#endif
#else
#define sampleReflection(s,c) texture2D(s,c)
uniform sampler2D reflectionSampler;
#ifdef TEXTURELODSUPPORT
#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)
#else
uniform samplerCube reflectionSamplerLow;uniform samplerCube reflectionSamplerHigh;
#endif
#endif
#ifdef REFLECTIONMAP_SKYBOX
varying vec3 vPositionUVW;
#else
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
varying vec3 vDirectionW;
#endif
#endif
#include<reflectionFunction>
#endif
#ifndef FROMLINEARSPACE
#define FROMLINEARSPACE;
#endif
#ifndef SHADOWONLY
#define SHADOWONLY;
#endif
#include<imageProcessingDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#include<imageProcessingFunctions>
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<clipPlaneFragmentDeclaration>
#include<fogFragmentDeclaration>
#ifdef REFLECTIONFRESNEL
#define FRESNEL_MAXIMUM_ON_ROUGH 0.25
vec3 fresnelSchlickEnvironmentGGX(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)
{float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}
#endif
#ifdef PROJECTED_GROUND
#include<intersectionFunctions>
vec3 project(vec3 viewDirectionW,vec3 eyePosition) {float radius=projectedGroundInfos.x;float height=projectedGroundInfos.y;vec3 camDir=-viewDirectionW;float skySphereDistance=sphereIntersectFromOrigin(eyePosition,camDir,radius).x;vec3 skySpherePositionW=eyePosition+camDir*skySphereDistance;vec3 p=normalize(skySpherePositionW);eyePosition.y-=height;float sIntersection=sphereIntersectFromOrigin(eyePosition,p,radius).x;vec3 h=vec3(0.0,-height,0.0);float dIntersection=diskIntersectWithBackFaceCulling(eyePosition,p,h,radius);p=(eyePosition+min(sIntersection,dIntersection)*p);return p;}
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);
#ifdef NORMAL
vec3 normalW=normalize(vNormalW);
#else
vec3 normalW=vec3(0.0,1.0,0.0);
#endif
float shadow=1.;float globalShadow=0.;float shadowLightCount=0.;float aggShadow=0.;float numLights=0.;
#include<lightFragment>[0..maxSimultaneousLights]
#ifdef SHADOWINUSE
globalShadow/=shadowLightCount;
#else
globalShadow=1.0;
#endif
#ifndef BACKMAT_SHADOWONLY
vec4 reflectionColor=vec4(1.,1.,1.,1.);
#ifdef REFLECTION
#ifdef PROJECTED_GROUND
vec3 reflectionVector=project(viewDirectionW,vEyePosition.xyz);reflectionVector=vec3(reflectionMatrix*vec4(reflectionVector,1.));
#else
vec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);
#endif
#ifdef REFLECTIONMAP_OPPOSITEZ
reflectionVector.z*=-1.0;
#endif
#ifdef REFLECTIONMAP_3D
vec3 reflectionCoords=reflectionVector;
#else
vec2 reflectionCoords=reflectionVector.xy;
#ifdef REFLECTIONMAP_PROJECTION
reflectionCoords/=reflectionVector.z;
#endif
reflectionCoords.y=1.0-reflectionCoords.y;
#endif
#ifdef REFLECTIONBLUR
float reflectionLOD=vReflectionInfos.y;
#ifdef TEXTURELODSUPPORT
reflectionLOD=reflectionLOD*log2(vReflectionMicrosurfaceInfos.x)*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;reflectionColor=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);
#else
float lodReflectionNormalized=saturate(reflectionLOD);float lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0;vec4 reflectionSpecularMid=sampleReflection(reflectionSampler,reflectionCoords);if(lodReflectionNormalizedDoubled<1.0){reflectionColor=mix(
sampleReflection(reflectionSamplerHigh,reflectionCoords),
reflectionSpecularMid,
lodReflectionNormalizedDoubled
);} else {reflectionColor=mix(
reflectionSpecularMid,
sampleReflection(reflectionSamplerLow,reflectionCoords),
lodReflectionNormalizedDoubled-1.0
);}
#endif
#else
vec4 reflectionSample=sampleReflection(reflectionSampler,reflectionCoords);reflectionColor=reflectionSample;
#endif
#ifdef RGBDREFLECTION
reflectionColor.rgb=fromRGBD(reflectionColor);
#endif
#ifdef GAMMAREFLECTION
reflectionColor.rgb=toLinearSpace(reflectionColor.rgb);
#endif
#ifdef REFLECTIONBGR
reflectionColor.rgb=reflectionColor.bgr;
#endif
reflectionColor.rgb*=vReflectionInfos.x;
#endif
vec3 diffuseColor=vec3(1.,1.,1.);float finalAlpha=alpha;
#ifdef DIFFUSE
vec4 diffuseMap=texture2D(diffuseSampler,vDiffuseUV);
#ifdef GAMMADIFFUSE
diffuseMap.rgb=toLinearSpace(diffuseMap.rgb);
#endif
diffuseMap.rgb*=vDiffuseInfos.y;
#ifdef DIFFUSEHASALPHA
finalAlpha*=diffuseMap.a;
#endif
diffuseColor=diffuseMap.rgb;
#endif
#ifdef REFLECTIONFRESNEL
vec3 colorBase=diffuseColor;
#else
vec3 colorBase=reflectionColor.rgb*diffuseColor;
#endif
colorBase=max(colorBase,0.0);
#ifdef USERGBCOLOR
vec3 finalColor=colorBase;
#else
#ifdef USEHIGHLIGHTANDSHADOWCOLORS
vec3 mainColor=mix(vPrimaryColorShadow.rgb,vPrimaryColor.rgb,colorBase);
#else
vec3 mainColor=vPrimaryColor.rgb;
#endif
vec3 finalColor=colorBase*mainColor;
#endif
#ifdef REFLECTIONFRESNEL
vec3 reflectionAmount=vReflectionControl.xxx;vec3 reflectionReflectance0=vReflectionControl.yyy;vec3 reflectionReflectance90=vReflectionControl.zzz;float VdotN=dot(normalize(vEyePosition.xyz),normalW);vec3 planarReflectionFresnel=fresnelSchlickEnvironmentGGX(saturate(VdotN),reflectionReflectance0,reflectionReflectance90,1.0);reflectionAmount*=planarReflectionFresnel;
#ifdef REFLECTIONFALLOFF
float reflectionDistanceFalloff=1.0-saturate(length(vPositionW.xyz-vBackgroundCenter)*vReflectionControl.w);reflectionDistanceFalloff*=reflectionDistanceFalloff;reflectionAmount*=reflectionDistanceFalloff;
#endif
finalColor=mix(finalColor,reflectionColor.rgb,saturate(reflectionAmount));
#endif
#ifdef OPACITYFRESNEL
float viewAngleToFloor=dot(normalW,normalize(vEyePosition.xyz-vBackgroundCenter));const float startAngle=0.1;float fadeFactor=saturate(viewAngleToFloor/startAngle);finalAlpha*=fadeFactor*fadeFactor;
#endif
#ifdef SHADOWINUSE
finalColor=mix(finalColor*shadowLevel,finalColor,globalShadow);
#endif
vec4 color=vec4(finalColor,finalAlpha);
#else
vec4 color=vec4(vPrimaryColor.rgb,(1.0-clamp(globalShadow,0.,1.))*alpha);
#endif
#include<logDepthFragment>
#include<fogFragment>
#ifdef IMAGEPROCESSINGPOSTPROCESS
#if !defined(SKIPFINALCOLORCLAMP)
color.rgb=clamp(color.rgb,0.,30.0);
#endif
#else
color=applyImageProcessing(color);
#endif
#ifdef PREMULTIPLYALPHA
color.rgb*=color.a;
#endif
#ifdef NOISE
color.rgb+=dither(vPositionW.xy,0.5);color=max(color,0.0);
#endif
gl_FragColor=color;
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStore[use]||(H.ShadersStore[use]=$ge);const e6e={name:use,shader:$ge},bUe=Object.freeze(Object.defineProperty({__proto__:null,backgroundPixelShader:e6e},Symbol.toStringTag,{value:"Module"}));class GB{get isEnabled(){return this._isEnabled}set isEnabled(e){this._isEnabled!==e&&(this._isEnabled=e,dt.MarkAllMaterialsAsDirty(20))}constructor(e={}){this._isEnabled=!0,this.bias=e.bias===void 0?0:e.bias,this.power=e.power===void 0?1:e.power,this.leftColor=e.leftColor||Pe.White(),this.rightColor=e.rightColor||Pe.Black(),e.isEnabled===!1&&(this.isEnabled=!1)}clone(){const e=new GB;return nu.DeepCopy(this,e),e}equals(e){return e&&this.bias===e.bias&&this.power===e.power&&this.leftColor.equals(e.leftColor)&&this.rightColor.equals(e.rightColor)&&this.isEnabled===e.isEnabled}serialize(){return{isEnabled:this.isEnabled,leftColor:this.leftColor.asArray(),rightColor:this.rightColor.asArray(),bias:this.bias,power:this.power}}static Parse(e){return new GB({isEnabled:e.isEnabled,leftColor:Pe.FromArray(e.leftColor),rightColor:Pe.FromArray(e.rightColor),bias:e.bias,power:e.power||1})}}It._FresnelParametersParser=GB.Parse;class La{}La.BindSceneUniformBuffer=AP,La.PrepareDefinesForMergedUV=En,La.BindTextureMatrix=Tn,La.GetFogState=mG,La.PrepareDefinesForMisc=ad,La.PrepareDefinesForCamera=AG,La.PrepareDefinesForFrameBoundValues=od,La.PrepareDefinesForBones=gG,La.PrepareDefinesForMorphTargets=_G,La.PrepareDefinesForBakedVertexAnimation=sZ,La.PrepareDefinesForAttributes=zo,La.PrepareDefinesForMultiview=xP,La.PrepareDefinesForOIT=vG,La.PrepareDefinesForPrePass=Ew,La.PrepareDefinesForLight=Mw,La.PrepareDefinesForLights=Jd,La.PrepareUniformsAndSamplersForLight=Tw,La.PrepareUniformsAndSamplersList=gl,La.HandleFallbacksForShadows=Ql,La.PrepareAttributesForMorphTargetsInfluencers=khe,La.PrepareAttributesForMorphTargets=vP,La.PrepareAttributesForBakedVertexAnimation=CP,La.PrepareAttributesForBones=G1,La.PrepareAttributesForInstances=Qo,La.PushAttributesForInstances=Qx,La.BindLightProperties=Uhe,La.BindLight=yw,La.BindLights=Qd,La.BindFogParameters=Ic,La.BindBonesParameters=Pc,La.BindMorphTargetParameters=s3,La.BindLogDepth=ml;const hse="colorPixelShader",t6e=`#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
#define VERTEXCOLOR
varying vec4 vColor;
#else
uniform vec4 color;
#endif
#include<clipPlaneFragmentDeclaration>
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
gl_FragColor=vColor;
#else
gl_FragColor=color;
#endif
#include<fogFragment>(color,gl_FragColor)
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[hse]||(H.ShadersStore[hse]=t6e);const i6e={name:hse,shader:t6e},SUe=Object.freeze(Object.defineProperty({__proto__:null,colorPixelShader:i6e},Symbol.toStringTag,{value:"Module"})),s6e="vertexColorMixing",yUe=`#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
vColor=vec4(1.0);
#ifdef VERTEXCOLOR
#ifdef VERTEXALPHA
vColor*=colorUpdated;
#else
vColor.rgb*=colorUpdated.rgb;
#endif
#endif
#ifdef INSTANCESCOLOR
vColor*=instanceColor;
#endif
#endif
`;H.IncludesShadersStore[s6e]||(H.IncludesShadersStore[s6e]=yUe);const dse="colorVertexShader",r6e=`attribute vec3 position;
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#ifdef FOG
uniform mat4 view;
#endif
#include<instancesDeclaration>
uniform mat4 viewProjection;
#ifdef MULTIVIEW
uniform mat4 viewProjectionR;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(position,1.0);
#ifdef MULTIVIEW
if (gl_ViewID_OVR==0u) {gl_Position=viewProjection*worldPos;} else {gl_Position=viewProjectionR*worldPos;}
#else
gl_Position=viewProjection*worldPos;
#endif
#include<clipPlaneVertex>
#include<fogVertex>
#include<vertexColorMixing>
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[dse]||(H.ShadersStore[dse]=r6e);const n6e={name:dse,shader:r6e},MUe=Object.freeze(Object.defineProperty({__proto__:null,colorVertexShader:n6e},Symbol.toStringTag,{value:"Module"}));class EUe extends Fo{constructor(e,t){super(e,t,"color",{attributes:["position"],uniforms:["world","viewProjection","color"]}),this.disableColorWrite=!0,this.forceDepthWrite=!0,this.setColor4("color",new St(0,0,0,1))}}class J1 extends Bs{get doubleSided(){return this._twoSidedLighting}set doubleSided(e){this._twoSidedLighting!==e&&(this._twoSidedLighting=e,this.backFaceCulling=!e,this._markAllSubMeshesAsTexturesDirty())}constructor(e,t){super(e,t),this.maxSimultaneousLights=4,this.disableLighting=!1,this.invertNormalMapX=!1,this.invertNormalMapY=!1,this.emissiveColor=new Pe(0,0,0),this.occlusionStrength=1,this.useLightmapAsShadowmap=!1,this._useAlphaFromAlbedoTexture=!0,this._useAmbientInGrayScale=!0}getClassName(){return"PBRBaseSimpleMaterial"}}F([G(),et("_markAllSubMeshesAsLightsDirty")],J1.prototype,"maxSimultaneousLights",void 0),F([G(),et("_markAllSubMeshesAsLightsDirty")],J1.prototype,"disableLighting",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty","_reflectionTexture")],J1.prototype,"environmentTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],J1.prototype,"invertNormalMapX",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],J1.prototype,"invertNormalMapY",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty","_bumpTexture")],J1.prototype,"normalTexture",void 0),F([qs("emissive"),et("_markAllSubMeshesAsTexturesDirty")],J1.prototype,"emissiveColor",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty")],J1.prototype,"emissiveTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty","_ambientTextureStrength")],J1.prototype,"occlusionStrength",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty","_ambientTexture")],J1.prototype,"occlusionTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty","_alphaCutOff")],J1.prototype,"alphaCutOff",void 0),F([G()],J1.prototype,"doubleSided",null),F([Yi(),et("_markAllSubMeshesAsTexturesDirty",null)],J1.prototype,"lightmapTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],J1.prototype,"useLightmapAsShadowmap",void 0);class d5 extends J1{constructor(e,t){super(e,t),this._useRoughnessFromMetallicTextureAlpha=!1,this._useRoughnessFromMetallicTextureGreen=!0,this._useMetallnessFromMetallicTextureBlue=!0,this.metallic=1,this.roughness=1}getClassName(){return"PBRMetallicRoughnessMaterial"}clone(e){const t=It.Clone(()=>new d5(e,this.getScene()),this);return t.id=e,t.name=e,this.clearCoat.copyTo(t.clearCoat),this.anisotropy.copyTo(t.anisotropy),this.brdf.copyTo(t.brdf),this.sheen.copyTo(t.sheen),this.subSurface.copyTo(t.subSurface),t}serialize(){const e=It.Serialize(this);return e.customType="BABYLON.PBRMetallicRoughnessMaterial",this.clearCoat.doNotSerialize||(e.clearCoat=this.clearCoat.serialize()),this.anisotropy.doNotSerialize||(e.anisotropy=this.anisotropy.serialize()),this.brdf.doNotSerialize||(e.brdf=this.brdf.serialize()),this.sheen.doNotSerialize||(e.sheen=this.sheen.serialize()),this.subSurface.doNotSerialize||(e.subSurface=this.subSurface.serialize()),this.iridescence.doNotSerialize||(e.iridescence=this.iridescence.serialize()),e}static Parse(e,t,i){const s=It.Parse(()=>new d5(e.name,t),e,t,i);return e.clearCoat&&s.clearCoat.parse(e.clearCoat,t,i),e.anisotropy&&s.anisotropy.parse(e.anisotropy,t,i),e.brdf&&s.brdf.parse(e.brdf,t,i),e.sheen&&s.sheen.parse(e.sheen,t,i),e.subSurface&&s.subSurface.parse(e.subSurface,t,i),e.iridescence&&s.iridescence.parse(e.iridescence,t,i),s}}F([qs(),et("_markAllSubMeshesAsTexturesDirty","_albedoColor")],d5.prototype,"baseColor",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty","_albedoTexture")],d5.prototype,"baseTexture",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],d5.prototype,"metallic",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],d5.prototype,"roughness",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty","_metallicTexture")],d5.prototype,"metallicRoughnessTexture",void 0),ve("BABYLON.PBRMetallicRoughnessMaterial",d5);class gb extends J1{get useMicroSurfaceFromReflectivityMapAlpha(){return this._useMicroSurfaceFromReflectivityMapAlpha}constructor(e,t){super(e,t),this._useMicroSurfaceFromReflectivityMapAlpha=!0}getClassName(){return"PBRSpecularGlossinessMaterial"}clone(e){const t=It.Clone(()=>new gb(e,this.getScene()),this);return t.id=e,t.name=e,this.clearCoat.copyTo(t.clearCoat),this.anisotropy.copyTo(t.anisotropy),this.brdf.copyTo(t.brdf),this.sheen.copyTo(t.sheen),this.subSurface.copyTo(t.subSurface),t}serialize(){const e=It.Serialize(this);return e.customType="BABYLON.PBRSpecularGlossinessMaterial",this.clearCoat.doNotSerialize||(e.clearCoat=this.clearCoat.serialize()),this.anisotropy.doNotSerialize||(e.anisotropy=this.anisotropy.serialize()),this.brdf.doNotSerialize||(e.brdf=this.brdf.serialize()),this.sheen.doNotSerialize||(e.sheen=this.sheen.serialize()),this.subSurface.doNotSerialize||(e.subSurface=this.subSurface.serialize()),this.iridescence.doNotSerialize||(e.iridescence=this.iridescence.serialize()),e}static Parse(e,t,i){const s=It.Parse(()=>new gb(e.name,t),e,t,i);return e.clearCoat&&s.clearCoat.parse(e.clearCoat,t,i),e.anisotropy&&s.anisotropy.parse(e.anisotropy,t,i),e.brdf&&s.brdf.parse(e.brdf,t,i),e.sheen&&s.sheen.parse(e.sheen,t,i),e.subSurface&&s.subSurface.parse(e.subSurface,t,i),e.iridescence&&s.iridescence.parse(e.iridescence,t,i),s}}F([qs("diffuse"),et("_markAllSubMeshesAsTexturesDirty","_albedoColor")],gb.prototype,"diffuseColor",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty","_albedoTexture")],gb.prototype,"diffuseTexture",void 0),F([qs("specular"),et("_markAllSubMeshesAsTexturesDirty","_reflectivityColor")],gb.prototype,"specularColor",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty","_microSurface")],gb.prototype,"glossiness",void 0),F([Yi(),et("_markAllSubMeshesAsTexturesDirty","_reflectivityTexture")],gb.prototype,"specularGlossinessTexture",void 0),ve("BABYLON.PBRSpecularGlossinessMaterial",gb);const a6e="pbrUboDeclaration",TUe=`uniform vAlbedoInfos: vec2f;uniform vBaseWeightInfos: vec2f;uniform vAmbientInfos: vec4f;uniform vOpacityInfos: vec2f;uniform vEmissiveInfos: vec2f;uniform vLightmapInfos: vec2f;uniform vReflectivityInfos: vec3f;uniform vMicroSurfaceSamplerInfos: vec2f;uniform vReflectionInfos: vec2f;uniform vReflectionFilteringInfo: vec2f;uniform vReflectionPosition: vec3f;uniform vReflectionSize: vec3f;uniform vBumpInfos: vec3f;uniform albedoMatrix: mat4x4f;uniform baseWeightMatrix: mat4x4f;uniform ambientMatrix: mat4x4f;uniform opacityMatrix: mat4x4f;uniform emissiveMatrix: mat4x4f;uniform lightmapMatrix: mat4x4f;uniform reflectivityMatrix: mat4x4f;uniform microSurfaceSamplerMatrix: mat4x4f;uniform bumpMatrix: mat4x4f;uniform vTangentSpaceParams: vec2f;uniform reflectionMatrix: mat4x4f;uniform vReflectionColor: vec3f;uniform vAlbedoColor: vec4f;uniform baseWeight: f32;uniform vLightingIntensity: vec4f;uniform vReflectionMicrosurfaceInfos: vec3f;uniform pointSize: f32;uniform vReflectivityColor: vec4f;uniform vEmissiveColor: vec3f;uniform vAmbientColor: vec3f;uniform vDebugMode: vec2f;uniform vMetallicReflectanceFactors: vec4f;uniform vMetallicReflectanceInfos: vec2f;uniform metallicReflectanceMatrix: mat4x4f;uniform vReflectanceInfos: vec2f;uniform reflectanceMatrix: mat4x4f;uniform vSphericalL00: vec3f;uniform vSphericalL1_1: vec3f;uniform vSphericalL10: vec3f;uniform vSphericalL11: vec3f;uniform vSphericalL2_2: vec3f;uniform vSphericalL2_1: vec3f;uniform vSphericalL20: vec3f;uniform vSphericalL21: vec3f;uniform vSphericalL22: vec3f;uniform vSphericalX: vec3f;uniform vSphericalY: vec3f;uniform vSphericalZ: vec3f;uniform vSphericalXX_ZZ: vec3f;uniform vSphericalYY_ZZ: vec3f;uniform vSphericalZZ: vec3f;uniform vSphericalXY: vec3f;uniform vSphericalYZ: vec3f;uniform vSphericalZX: vec3f;
#define ADDITIONAL_UBO_DECLARATION
#include<sceneUboDeclaration>
#include<meshUboDeclaration>
`;H.IncludesShadersStoreWGSL[a6e]||(H.IncludesShadersStoreWGSL[a6e]=TUe);const o6e="uvAttributeDeclaration",LUe=`#ifdef UV{X}
attribute uv{X}: vec2f;
#endif
`;H.IncludesShadersStoreWGSL[o6e]||(H.IncludesShadersStoreWGSL[o6e]=LUe);const l6e="mainUVVaryingDeclaration",IUe=`#ifdef MAINUV{X}
varying vMainUV{X}: vec2f;
#endif
`;H.IncludesShadersStoreWGSL[l6e]||(H.IncludesShadersStoreWGSL[l6e]=IUe);const c6e="prePassVertexDeclaration",PUe=`#ifdef PREPASS
#ifdef PREPASS_LOCAL_POSITION
varying vPosition : vec3f;
#endif
#ifdef PREPASS_DEPTH
varying vViewPos: vec3f;
#endif
#if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
uniform previousViewProjection: mat4x4f;varying vCurrentPosition: vec4f;varying vPreviousPosition: vec4f;
#endif
#endif
`;H.IncludesShadersStoreWGSL[c6e]||(H.IncludesShadersStoreWGSL[c6e]=PUe);const u6e="samplerVertexDeclaration",OUe=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
varying v_VARYINGNAME_UV: vec2f;
#endif
`;H.IncludesShadersStoreWGSL[u6e]||(H.IncludesShadersStoreWGSL[u6e]=OUe);const h6e="harmonicsFunctions",RUe=`#ifdef USESPHERICALFROMREFLECTIONMAP
#ifdef SPHERICAL_HARMONICS
fn computeEnvironmentIrradiance(normal: vec3f)->vec3f {return uniforms.vSphericalL00
+ uniforms.vSphericalL1_1*(normal.y)
+ uniforms.vSphericalL10*(normal.z)
+ uniforms.vSphericalL11*(normal.x)
+ uniforms.vSphericalL2_2*(normal.y*normal.x)
+ uniforms.vSphericalL2_1*(normal.y*normal.z)
+ uniforms.vSphericalL20*((3.0*normal.z*normal.z)-1.0)
+ uniforms.vSphericalL21*(normal.z*normal.x)
+ uniforms.vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));}
#else
fn computeEnvironmentIrradiance(normal: vec3f)->vec3f {var Nx: f32=normal.x;var Ny: f32=normal.y;var Nz: f32=normal.z;var C1: vec3f=uniforms.vSphericalZZ.rgb;var Cx: vec3f=uniforms.vSphericalX.rgb;var Cy: vec3f=uniforms.vSphericalY.rgb;var Cz: vec3f=uniforms.vSphericalZ.rgb;var Cxx_zz: vec3f=uniforms.vSphericalXX_ZZ.rgb;var Cyy_zz: vec3f=uniforms.vSphericalYY_ZZ.rgb;var Cxy: vec3f=uniforms.vSphericalXY.rgb;var Cyz: vec3f=uniforms.vSphericalYZ.rgb;var Czx: vec3f=uniforms.vSphericalZX.rgb;var a1: vec3f=Cyy_zz*Ny+Cy;var a2: vec3f=Cyz*Nz+a1;var b1: vec3f=Czx*Nz+Cx;var b2: vec3f=Cxy*Ny+b1;var b3: vec3f=Cxx_zz*Nx+b2;var t1: vec3f=Cz *Nz+C1;var t2: vec3f=a2 *Ny+t1;var t3: vec3f=b3 *Nx+t2;return t3;}
#endif
#endif
`;H.IncludesShadersStoreWGSL[h6e]||(H.IncludesShadersStoreWGSL[h6e]=RUe);const d6e="bumpVertexDeclaration",DUe=`#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)
#if defined(TANGENT) && defined(NORMAL) 
varying vTBN0: vec3f;varying vTBN1: vec3f;varying vTBN2: vec3f;
#endif
#endif
`;H.IncludesShadersStoreWGSL[d6e]||(H.IncludesShadersStoreWGSL[d6e]=DUe);const f6e="prePassVertex",NUe=`#ifdef PREPASS_DEPTH
vertexOutputs.vViewPos=(scene.view*worldPos).rgb;
#endif
#ifdef PREPASS_LOCAL_POSITION
vertexOutputs.vPosition=positionUpdated.xyz;
#endif
#if (defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && defined(BONES_VELOCITY_ENABLED)
vertexOutputs.vCurrentPosition=scene.viewProjection*worldPos;
#if NUM_BONE_INFLUENCERS>0
var previousInfluence: mat4x4f;previousInfluence=mPreviousBones[ i32(matricesIndices[0])]*matricesWeights[0];
#if NUM_BONE_INFLUENCERS>1
previousInfluence+=mPreviousBones[ i32(matricesIndices[1])]*matricesWeights[1];
#endif 
#if NUM_BONE_INFLUENCERS>2
previousInfluence+=mPreviousBones[ i32(matricesIndices[2])]*matricesWeights[2];
#endif 
#if NUM_BONE_INFLUENCERS>3
previousInfluence+=mPreviousBones[ i32(matricesIndices[3])]*matricesWeights[3];
#endif
#if NUM_BONE_INFLUENCERS>4
previousInfluence+=mPreviousBones[ i32(matricesIndicesExtra[0])]*matricesWeightsExtra[0];
#endif 
#if NUM_BONE_INFLUENCERS>5
previousInfluence+=mPreviousBones[ i32(matricesIndicesExtra[1])]*matricesWeightsExtra[1];
#endif 
#if NUM_BONE_INFLUENCERS>6
previousInfluence+=mPreviousBones[ i32(matricesIndicesExtra[2])]*matricesWeightsExtra[2];
#endif 
#if NUM_BONE_INFLUENCERS>7
previousInfluence+=mPreviousBones[ i32(matricesIndicesExtra[3])]*matricesWeightsExtra[3];
#endif
vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld*previousInfluence* vec4f(positionUpdated,1.0);
#else
vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld* vec4f(positionUpdated,1.0);
#endif
#endif
`;H.IncludesShadersStoreWGSL[f6e]||(H.IncludesShadersStoreWGSL[f6e]=NUe);const p6e="uvVariableDeclaration",wUe=`#ifdef MAINUV{X}
#if !defined(UV{X})
var uv{X}: vec2f=vec2f(0.,0.);
#else
var uv{X}: vec2f=vertexInputs.uv{X};
#endif
vertexOutputs.vMainUV{X}=uv{X};
#endif
`;H.IncludesShadersStoreWGSL[p6e]||(H.IncludesShadersStoreWGSL[p6e]=wUe);const m6e="samplerVertexImplementation",BUe=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
if (uniforms.v_INFONAME_==0.)
{vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(uvUpdated,1.0,0.0)).xy;}
#ifdef UV2
else if (uniforms.v_INFONAME_==1.)
{vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(uv2Updated,1.0,0.0)).xy;}
#endif
#ifdef UV3
else if (uniforms.v_INFONAME_==2.)
{vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(vertexInputs.uv3,1.0,0.0)).xy;}
#endif
#ifdef UV4
else if (uniforms.v_INFONAME_==3.)
{vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(vertexInputs.uv4,1.0,0.0)).xy;}
#endif
#ifdef UV5
else if (uniforms.v_INFONAME_==4.)
{vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(vertexInputs.uv5,1.0,0.0)).xy;}
#endif
#ifdef UV6
else if (uniforms.v_INFONAME_==5.)
{vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(vertexInputs.uv6,1.0,0.0)).xy;}
#endif
#endif
`;H.IncludesShadersStoreWGSL[m6e]||(H.IncludesShadersStoreWGSL[m6e]=BUe);const g6e="bumpVertex",zUe=`#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)
#if defined(TANGENT) && defined(NORMAL)
var tbnNormal: vec3f=normalize(normalUpdated);var tbnTangent: vec3f=normalize(tangentUpdated.xyz);var tbnBitangent: vec3f=cross(tbnNormal,tbnTangent)*tangentUpdated.w;var matTemp= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz)* mat3x3f(tbnTangent,tbnBitangent,tbnNormal);vertexOutputs.vTBN0=matTemp[0];vertexOutputs.vTBN1=matTemp[1];vertexOutputs.vTBN2=matTemp[2];
#endif
#endif
`;H.IncludesShadersStoreWGSL[g6e]||(H.IncludesShadersStoreWGSL[g6e]=zUe);const _6e="vertexColorMixing",FUe=`#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
vertexOutputs.vColor=vec4f(1.0);
#ifdef VERTEXCOLOR
#ifdef VERTEXALPHA
vertexOutputs.vColor*=vertexInputs.color;
#else
vertexOutputs.vColor=vec4f(vertexOutputs.vColor.rgb*vertexInputs.color.rgb,vertexOutputs.vColor.a);
#endif
#endif
#ifdef INSTANCESCOLOR
vertexOutputs.vColor*=vertexInputs.instanceColor;
#endif
#endif
`;H.IncludesShadersStoreWGSL[_6e]||(H.IncludesShadersStoreWGSL[_6e]=FUe);const fse="pbrVertexShader",v6e=`#include<pbrUboDeclaration>
#define CUSTOM_VERTEX_BEGIN
attribute position: vec3f;
#ifdef NORMAL
attribute normal: vec3f;
#endif
#ifdef TANGENT
attribute tangent: vec4f;
#endif
#ifdef UV1
attribute uv: vec2f;
#endif
#include<uvAttributeDeclaration>[2..7]
#include<mainUVVaryingDeclaration>[1..7]
#ifdef VERTEXCOLOR
attribute color: vec4f;
#endif
#include<helperFunctions>
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
#include<prePassVertexDeclaration>
#include<samplerVertexDeclaration>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo)
#include<samplerVertexDeclaration>(_DEFINENAME_,BASEWEIGHT,_VARYINGNAME_,BaseWeight)
#include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)
#include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)
#include<samplerVertexDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)
#include<samplerVertexDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)
#include<samplerVertexDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)
#include<samplerVertexDeclaration>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity)
#include<samplerVertexDeclaration>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler)
#include<samplerVertexDeclaration>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance)
#include<samplerVertexDeclaration>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance)
#include<samplerVertexDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)
#include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)
#ifdef CLEARCOAT
#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat)
#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness)
#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump)
#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint)
#endif
#ifdef IRIDESCENCE
#include<samplerVertexDeclaration>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence)
#include<samplerVertexDeclaration>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness)
#endif
#ifdef SHEEN
#include<samplerVertexDeclaration>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen)
#include<samplerVertexDeclaration>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness)
#endif
#ifdef ANISOTROPIC
#include<samplerVertexDeclaration>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy)
#endif
#ifdef SUBSURFACE
#include<samplerVertexDeclaration>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness)
#include<samplerVertexDeclaration>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity)
#include<samplerVertexDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity)
#include<samplerVertexDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYCOLOR_TEXTURE,_VARYINGNAME_,TranslucencyColor)
#endif
varying vPositionW: vec3f;
#if DEBUGMODE>0
varying vClipSpacePosition: vec4f;
#endif
#ifdef NORMAL
varying vNormalW: vec3f;
#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
varying vEnvironmentIrradiance: vec3f;
#include<harmonicsFunctions>
#endif
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vColor: vec4f;
#endif
#include<bumpVertexDeclaration>
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#include<lightVxUboDeclaration>[0..maxSimultaneousLights]
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#ifdef REFLECTIONMAP_SKYBOX
varying vPositionUVW: vec3f;
#endif
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
varying vDirectionW: vec3f;
#endif
#include<logDepthDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
var positionUpdated: vec3f=vertexInputs.position;
#ifdef NORMAL
var normalUpdated: vec3f=vertexInputs.normal;
#endif
#ifdef TANGENT
var tangentUpdated: vec4f=vertexInputs.tangent;
#endif
#ifdef UV1
var uvUpdated: vec2f=vertexInputs.uv;
#endif
#ifdef UV2
var uv2Updated: vec2f=vertexInputs.uv2;
#endif
#ifdef VERTEXCOLOR
var colorUpdated: vec4f=vertexInputs.color;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#ifdef REFLECTIONMAP_SKYBOX
vertexOutputs.vPositionUVW=positionUpdated;
#endif
#define CUSTOM_VERTEX_UPDATE_POSITION
#define CUSTOM_VERTEX_UPDATE_NORMAL
#include<instancesVertex>
#if defined(PREPASS) && ((defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && !defined(BONES_VELOCITY_ENABLED)
vertexOutputs.vCurrentPosition=scene.viewProjection*finalWorld*vec4f(positionUpdated,1.0);vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld*vec4f(positionUpdated,1.0);
#endif
#include<bonesVertex>
#include<bakedVertexAnimation>
var worldPos: vec4f=finalWorld* vec4f(positionUpdated,1.0);vertexOutputs.vPositionW= worldPos.xyz;
#ifdef PREPASS
#include<prePassVertex>
#endif
#ifdef NORMAL
var normalWorld: mat3x3f= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz);
#if defined(INSTANCES) && defined(THIN_INSTANCES)
vertexOutputs.vNormalW=normalUpdated/ vec3f(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vertexOutputs.vNormalW=normalize(normalWorld*vertexOutputs.vNormalW);
#else
#ifdef NONUNIFORMSCALING
normalWorld=transposeMat3(inverseMat3(normalWorld));
#endif
vertexOutputs.vNormalW=normalize(normalWorld*normalUpdated);
#endif
#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
var reflectionVector: vec3f= (uniforms.reflectionMatrix* vec4f(vertexOutputs.vNormalW,0)).xyz;
#ifdef REFLECTIONMAP_OPPOSITEZ
reflectionVector.z*=-1.0;
#endif
vertexOutputs.vEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector);
#endif
#endif
#define CUSTOM_VERTEX_UPDATE_WORLDPOS
#ifdef MULTIVIEW
if (gl_ViewID_OVR==0u) {vertexOutputs.position=scene.viewProjection*worldPos;} else {vertexOutputs.position=scene.viewProjectionR*worldPos;}
#else
vertexOutputs.position=scene.viewProjection*worldPos;
#endif
#if DEBUGMODE>0
vertexOutputs.vClipSpacePosition=vertexOutputs.position;
#endif
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
vertexOutputs.vDirectionW=normalize((finalWorld*vec4f(positionUpdated,0.0)).xyz);
#endif
#ifndef UV1
var uvUpdated: vec2f= vec2f(0.,0.);
#endif
#ifdef MAINUV1
vertexOutputs.vMainUV1=uvUpdated;
#endif
#ifndef UV2
var uv2Updated: vec2f= vec2f(0.,0.);
#endif
#ifdef MAINUV2
vertexOutputs.vMainUV2=uv2Updated;
#endif
#include<uvVariableDeclaration>[3..7]
#include<samplerVertexImplementation>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo,_MATRIXNAME_,albedo,_INFONAME_,AlbedoInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,BASEWEIGHT,_VARYINGNAME_,BaseWeight,_MATRIXNAME_,baseWeight,_INFONAME_,BaseWeightInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity,_MATRIXNAME_,reflectivity,_INFONAME_,ReflectivityInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler,_MATRIXNAME_,microSurfaceSampler,_INFONAME_,MicroSurfaceSamplerInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance,_MATRIXNAME_,metallicReflectance,_INFONAME_,MetallicReflectanceInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance,_MATRIXNAME_,reflectance,_INFONAME_,ReflectanceInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)
#ifdef CLEARCOAT
#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat,_MATRIXNAME_,clearCoat,_INFONAME_,ClearCoatInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness,_MATRIXNAME_,clearCoatRoughness,_INFONAME_,ClearCoatInfos.z)
#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump,_MATRIXNAME_,clearCoatBump,_INFONAME_,ClearCoatBumpInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint,_MATRIXNAME_,clearCoatTint,_INFONAME_,ClearCoatTintInfos.x)
#endif
#ifdef IRIDESCENCE
#include<samplerVertexImplementation>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence,_MATRIXNAME_,iridescence,_INFONAME_,IridescenceInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness,_MATRIXNAME_,iridescenceThickness,_INFONAME_,IridescenceInfos.z)
#endif
#ifdef SHEEN
#include<samplerVertexImplementation>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen,_MATRIXNAME_,sheen,_INFONAME_,SheenInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness,_MATRIXNAME_,sheenRoughness,_INFONAME_,SheenInfos.z)
#endif
#ifdef ANISOTROPIC
#include<samplerVertexImplementation>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy,_MATRIXNAME_,anisotropy,_INFONAME_,AnisotropyInfos.x)
#endif
#ifdef SUBSURFACE
#include<samplerVertexImplementation>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness,_MATRIXNAME_,thickness,_INFONAME_,ThicknessInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity,_MATRIXNAME_,refractionIntensity,_INFONAME_,RefractionIntensityInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity,_MATRIXNAME_,translucencyIntensity,_INFONAME_,TranslucencyIntensityInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,SS_TRANSLUCENCYCOLOR_TEXTURE,_VARYINGNAME_,TranslucencyColor,_MATRIXNAME_,translucencyColor,_INFONAME_,TranslucencyColorInfos.x)
#endif
#include<bumpVertex>
#include<clipPlaneVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[fse]||(H.ShadersStoreWGSL[fse]=v6e);const A6e={name:fse,shader:v6e},C6e=Object.freeze(Object.defineProperty({__proto__:null,pbrVertexShaderWGSL:A6e},Symbol.toStringTag,{value:"Module"})),x6e="prePassDeclaration",kUe=`#ifdef PREPASS
#ifdef PREPASS_LOCAL_POSITION
varying vPosition : vec3f;
#endif
#ifdef PREPASS_DEPTH
varying vViewPos: vec3f;
#endif
#if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
varying vCurrentPosition: vec4f;varying vPreviousPosition: vec4f;
#endif
#endif
`;H.IncludesShadersStoreWGSL[x6e]||(H.IncludesShadersStoreWGSL[x6e]=kUe);const b6e="oitDeclaration",UUe=`#ifdef ORDER_INDEPENDENT_TRANSPARENCY
#define MAX_DEPTH 99999.0
var oitDepthSamplerSampler: sampler;var oitDepthSampler: texture_2d<f32>;var oitFrontColorSamplerSampler: sampler;var oitFrontColorSampler: texture_2d<f32>;
#endif
`;H.IncludesShadersStoreWGSL[b6e]||(H.IncludesShadersStoreWGSL[b6e]=UUe);const S6e="pbrFragmentExtraDeclaration",jUe=`varying vPositionW: vec3f;
#if DEBUGMODE>0
varying vClipSpacePosition: vec4f;
#endif
#include<mainUVVaryingDeclaration>[1..7]
#ifdef NORMAL
varying vNormalW: vec3f;
#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
varying vEnvironmentIrradiance: vec3f;
#endif
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vColor: vec4f;
#endif
`;H.IncludesShadersStoreWGSL[S6e]||(H.IncludesShadersStoreWGSL[S6e]=jUe);const y6e="samplerFragmentDeclaration",VUe=`#ifdef _DEFINENAME_
#if _DEFINENAME_DIRECTUV==1
#define v_VARYINGNAME_UV vMainUV1
#elif _DEFINENAME_DIRECTUV==2
#define v_VARYINGNAME_UV vMainUV2
#elif _DEFINENAME_DIRECTUV==3
#define v_VARYINGNAME_UV vMainUV3
#elif _DEFINENAME_DIRECTUV==4
#define v_VARYINGNAME_UV vMainUV4
#elif _DEFINENAME_DIRECTUV==5
#define v_VARYINGNAME_UV vMainUV5
#elif _DEFINENAME_DIRECTUV==6
#define v_VARYINGNAME_UV vMainUV6
#else
varying v_VARYINGNAME_UV: vec2f;
#endif
var _SAMPLERNAME_SamplerSampler: sampler;var _SAMPLERNAME_Sampler: texture_2d<f32>;
#endif
`;H.IncludesShadersStoreWGSL[y6e]||(H.IncludesShadersStoreWGSL[y6e]=VUe);const M6e="samplerFragmentAlternateDeclaration",GUe=`#ifdef _DEFINENAME_
#if _DEFINENAME_DIRECTUV==1
#define v_VARYINGNAME_UV vMainUV1
#elif _DEFINENAME_DIRECTUV==2
#define v_VARYINGNAME_UV vMainUV2
#elif _DEFINENAME_DIRECTUV==3
#define v_VARYINGNAME_UV vMainUV3
#elif _DEFINENAME_DIRECTUV==4
#define v_VARYINGNAME_UV vMainUV4
#elif _DEFINENAME_DIRECTUV==5
#define v_VARYINGNAME_UV vMainUV5
#elif _DEFINENAME_DIRECTUV==6
#define v_VARYINGNAME_UV vMainUV6
#else
varying v_VARYINGNAME_UV: vec2f;
#endif
#endif
`;H.IncludesShadersStoreWGSL[M6e]||(H.IncludesShadersStoreWGSL[M6e]=GUe);const E6e="pbrFragmentSamplersDeclaration",WUe=`#include<samplerFragmentDeclaration>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo,_SAMPLERNAME_,albedo)
#include<samplerFragmentDeclaration>(_DEFINENAME_,BASEWEIGHT,_VARYINGNAME_,BaseWeight,_SAMPLERNAME_,baseWeight)
#include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_SAMPLERNAME_,ambient)
#include<samplerFragmentDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_SAMPLERNAME_,opacity)
#include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_SAMPLERNAME_,emissive)
#include<samplerFragmentDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_SAMPLERNAME_,lightmap)
#include<samplerFragmentDeclaration>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity,_SAMPLERNAME_,reflectivity)
#include<samplerFragmentDeclaration>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler,_SAMPLERNAME_,microSurface)
#include<samplerFragmentDeclaration>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance,_SAMPLERNAME_,metallicReflectance)
#include<samplerFragmentDeclaration>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance,_SAMPLERNAME_,reflectance)
#include<samplerFragmentDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)
#ifdef CLEARCOAT
#include<samplerFragmentDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat,_SAMPLERNAME_,clearCoat)
#include<samplerFragmentAlternateDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness)
#if defined(CLEARCOAT_TEXTURE_ROUGHNESS)
var clearCoatRoughnessSamplerSampler: sampler;var clearCoatRoughnessSampler: texture_2d<f32>;
#endif
#include<samplerFragmentDeclaration>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump,_SAMPLERNAME_,clearCoatBump)
#include<samplerFragmentDeclaration>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint,_SAMPLERNAME_,clearCoatTint)
#endif
#ifdef IRIDESCENCE
#include<samplerFragmentDeclaration>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence,_SAMPLERNAME_,iridescence)
#include<samplerFragmentDeclaration>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness,_SAMPLERNAME_,iridescenceThickness)
#endif
#ifdef SHEEN
#include<samplerFragmentDeclaration>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen,_SAMPLERNAME_,sheen)
#include<samplerFragmentAlternateDeclaration>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness)
#if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS)
var sheenRoughnessSamplerSampler: sampler;var sheenRoughnessSampler: texture_2d<f32>;
#endif
#endif
#ifdef ANISOTROPIC
#include<samplerFragmentDeclaration>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy,_SAMPLERNAME_,anisotropy)
#endif
#ifdef REFLECTION
#ifdef REFLECTIONMAP_3D
var reflectionSamplerSampler: sampler;var reflectionSampler: texture_cube<f32>;
#ifdef LODBASEDMICROSFURACE
#else
var reflectionLowSamplerSampler: sampler;var reflectionLowSampler: texture_cube<f32>;var reflectionHighSamplerSampler: sampler;var reflectionHighSampler: texture_cube<f32>;
#endif
#ifdef USEIRRADIANCEMAP
var irradianceSamplerSampler: sampler;var irradianceSampler: texture_cube<f32>;
#endif
#else
var reflectionSamplerSampler: sampler;var reflectionSampler: texture_2d<f32>;
#ifdef LODBASEDMICROSFURACE
#else
var reflectionLowSamplerSampler: sampler;var reflectionLowSampler: texture_2d<f32>;var reflectionHighSamplerSampler: sampler;var reflectionHighSampler: texture_2d<f32>;
#endif
#ifdef USEIRRADIANCEMAP
var irradianceSamplerSampler: sampler;var irradianceSampler: texture_2d<f32>;
#endif
#endif
#ifdef REFLECTIONMAP_SKYBOX
varying vPositionUVW: vec3f;
#else
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
varying vDirectionW: vec3f;
#endif
#endif
#endif
#ifdef ENVIRONMENTBRDF
var environmentBrdfSamplerSampler: sampler;var environmentBrdfSampler: texture_2d<f32>;
#endif
#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
var areaLightsLTC1SamplerSampler: sampler;var areaLightsLTC1Sampler: texture_2d<f32>;var areaLightsLTC2SamplerSampler: sampler;var areaLightsLTC2Sampler: texture_2d<f32>;
#endif
#ifdef SUBSURFACE
#ifdef SS_REFRACTION
#ifdef SS_REFRACTIONMAP_3D
var refractionSamplerSampler: sampler;var refractionSampler: texture_cube<f32>;
#ifdef LODBASEDMICROSFURACE
#else
var refractionLowSamplerSampler: sampler;var refractionLowSampler: texture_cube<f32>;var refractionHighSamplerSampler: sampler;var refractionHighSampler: texture_cube<f32>;
#endif
#else
var refractionSamplerSampler: sampler;var refractionSampler: texture_2d<f32>;
#ifdef LODBASEDMICROSFURACE
#else
var refractionLowSamplerSampler: sampler;var refractionLowSampler: texture_2d<f32>;var refractionHighSamplerSampler: sampler;var refractionHighSampler: texture_2d<f32>;
#endif
#endif
#endif
#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness,_SAMPLERNAME_,thickness)
#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity,_SAMPLERNAME_,refractionIntensity)
#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity,_SAMPLERNAME_,translucencyIntensity)
#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYCOLOR_TEXTURE,_VARYINGNAME_,TranslucencyColor,_SAMPLERNAME_,translucencyColor)
#endif
#ifdef IBL_CDF_FILTERING
var icdfSamplerSampler: sampler;var icdfSampler: texture_2d<f32>;
#endif
`;H.IncludesShadersStoreWGSL[E6e]||(H.IncludesShadersStoreWGSL[E6e]=WUe);const T6e="subSurfaceScatteringFunctions",HUe=`fn testLightingForSSS(diffusionProfile: f32)->bool
{return diffusionProfile<1.;}`;H.IncludesShadersStoreWGSL[T6e]||(H.IncludesShadersStoreWGSL[T6e]=HUe);const L6e="importanceSampling",YUe=`fn hemisphereCosSample(u: vec2f)->vec3f {var phi: f32=2.*PI*u.x;var cosTheta2: f32=1.-u.y;var cosTheta: f32=sqrt(cosTheta2);var sinTheta: f32=sqrt(1.-cosTheta2);return vec3f(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}
fn hemisphereImportanceSampleDggx(u: vec2f,a: f32)->vec3f {var phi: f32=2.*PI*u.x;var cosTheta2: f32=(1.-u.y)/(1.+(a+1.)*((a-1.)*u.y));var cosTheta: f32=sqrt(cosTheta2);var sinTheta: f32=sqrt(1.-cosTheta2);return vec3f(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}
fn hemisphereImportanceSampleDCharlie(u: vec2f,a: f32)->vec3f { 
var phi: f32=2.*PI*u.x;var sinTheta: f32=pow(u.y,a/(2.*a+1.));var cosTheta: f32=sqrt(1.-sinTheta*sinTheta);return vec3f(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}`;H.IncludesShadersStoreWGSL[L6e]||(H.IncludesShadersStoreWGSL[L6e]=YUe);const I6e="pbrHelperFunctions",XUe=`#define MINIMUMVARIANCE 0.0005
fn convertRoughnessToAverageSlope(roughness: f32)->f32
{return roughness*roughness+MINIMUMVARIANCE;}
fn fresnelGrazingReflectance(reflectance0: f32)->f32 {var reflectance90: f32=saturate(reflectance0*25.0);return reflectance90;}
fn getAARoughnessFactors(normalVector: vec3f)->vec2f {
#ifdef SPECULARAA
var nDfdx: vec3f=dpdx(normalVector.xyz);var nDfdy: vec3f=dpdy(normalVector.xyz);var slopeSquare: f32=max(dot(nDfdx,nDfdx),dot(nDfdy,nDfdy));var geometricRoughnessFactor: f32=pow(saturate(slopeSquare),0.333);var geometricAlphaGFactor: f32=sqrt(slopeSquare);geometricAlphaGFactor*=0.75;return vec2f(geometricRoughnessFactor,geometricAlphaGFactor);
#else
return vec2f(0.);
#endif
}
#ifdef ANISOTROPIC
#ifdef ANISOTROPIC_LEGACY
fn getAnisotropicRoughness(alphaG: f32,anisotropy: f32)->vec2f {var alphaT: f32=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE);var alphaB: f32=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE);return vec2f(alphaT,alphaB);}
fn getAnisotropicBentNormals(T: vec3f,B: vec3f,N: vec3f,V: vec3f,anisotropy: f32,roughness: f32)->vec3f {var anisotropicFrameDirection: vec3f=select(T,B,anisotropy>=0.0);var anisotropicFrameTangent: vec3f=cross(normalize(anisotropicFrameDirection),V);var anisotropicFrameNormal: vec3f=cross(anisotropicFrameTangent,anisotropicFrameDirection);var anisotropicNormal: vec3f=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy)));return anisotropicNormal;}
#else
fn getAnisotropicRoughness(alphaG: f32,anisotropy: f32)->vec2f {var alphaT: f32=max(mix(alphaG,1.0,anisotropy*anisotropy),MINIMUMVARIANCE);var alphaB: f32=max(alphaG,MINIMUMVARIANCE);return vec2f(alphaT,alphaB);}
fn getAnisotropicBentNormals(T: vec3f,B: vec3f,N: vec3f,V: vec3f,anisotropy: f32,roughness: f32)->vec3f {var bentNormal: vec3f=cross(B,V);bentNormal=normalize(cross(bentNormal,B));var sq=1.0-anisotropy*(1.0-roughness);var a: f32=sq*sq*sq*sq;bentNormal=normalize(mix(bentNormal,N,a));return bentNormal;}
#endif
#endif
#if defined(CLEARCOAT) || defined(SS_REFRACTION)
fn cocaLambertVec3(alpha: vec3f,distance: f32)->vec3f {return exp(-alpha*distance);}
fn cocaLambert(NdotVRefract: f32,NdotLRefract: f32,alpha: vec3f,thickness: f32)->vec3f {return cocaLambertVec3(alpha,(thickness*((NdotLRefract+NdotVRefract)/(NdotLRefract*NdotVRefract))));}
fn computeColorAtDistanceInMedia(color: vec3f,distance: f32)->vec3f {return -log(color)/distance;}
fn computeClearCoatAbsorption(NdotVRefract: f32,NdotLRefract: f32,clearCoatColor: vec3f,clearCoatThickness: f32,clearCoatIntensity: f32)->vec3f {var clearCoatAbsorption: vec3f=mix( vec3f(1.0),
cocaLambert(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness),
clearCoatIntensity);return clearCoatAbsorption;}
#endif
#ifdef MICROSURFACEAUTOMATIC
fn computeDefaultMicroSurface(microSurface: f32,reflectivityColor: vec3f)->f32
{const kReflectivityNoAlphaWorkflow_SmoothnessMax: f32=0.95;var reflectivityLuminance: f32=getLuminance(reflectivityColor);var reflectivityLuma: f32=sqrt(reflectivityLuminance);var resultMicroSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;return resultMicroSurface;}
#endif
`;H.IncludesShadersStoreWGSL[I6e]||(H.IncludesShadersStoreWGSL[I6e]=XUe);const P6e="pbrDirectLightingSetupFunctions",ZUe=`struct preLightingInfo
{lightOffset: vec3f,
lightDistanceSquared: f32,
lightDistance: f32,
attenuation: f32,
L: vec3f,
H: vec3f,
NdotV: f32,
NdotLUnclamped: f32,
NdotL: f32,
VdotH: f32,
roughness: f32,
#ifdef IRIDESCENCE
iridescenceIntensity: f32
#endif
#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
areaLightDiffuse: vec3f,
#ifdef SPECULARTERM
areaLightSpecular: vec3f,
areaLightFresnel: vec4f
#endif
#endif
};fn computePointAndSpotPreLightingInfo(lightData: vec4f,V: vec3f,N: vec3f,posW: vec3f)->preLightingInfo {var result: preLightingInfo;result.lightOffset=lightData.xyz-posW;result.lightDistanceSquared=dot(result.lightOffset,result.lightOffset);result.lightDistance=sqrt(result.lightDistanceSquared);result.L=normalize(result.lightOffset);result.H=normalize(V+result.L);result.VdotH=saturate(dot(V,result.H));result.NdotLUnclamped=dot(N,result.L);result.NdotL=saturateEps(result.NdotLUnclamped);return result;}
fn computeDirectionalPreLightingInfo(lightData: vec4f,V: vec3f,N: vec3f)->preLightingInfo {var result: preLightingInfo;result.lightDistance=length(-lightData.xyz);result.L=normalize(-lightData.xyz);result.H=normalize(V+result.L);result.VdotH=saturate(dot(V,result.H));result.NdotLUnclamped=dot(N,result.L);result.NdotL=saturateEps(result.NdotLUnclamped);return result;}
fn computeHemisphericPreLightingInfo(lightData: vec4f,V: vec3f,N: vec3f)->preLightingInfo {var result: preLightingInfo;result.NdotL=dot(N,lightData.xyz)*0.5+0.5;result.NdotL=saturateEps(result.NdotL);result.NdotLUnclamped=result.NdotL;
#ifdef SPECULARTERM
result.L=normalize(lightData.xyz);result.H=normalize(V+result.L);result.VdotH=saturate(dot(V,result.H));
#endif
return result;}
#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
#include<ltcHelperFunctions>
fn computeAreaPreLightingInfo(ltc1: texture_2d<f32>,ltc1Sampler:sampler,ltc2:texture_2d<f32>,ltc2Sampler:sampler,viewDirectionW: vec3f,vNormal:vec3f,vPosition:vec3f,lightCenter:vec3f,halfWidth:vec3f, halfHeight:vec3f,roughness:f32)->preLightingInfo {var result: preLightingInfo;var data: areaLightData=computeAreaLightSpecularDiffuseFresnel(ltc1,ltc1Sampler,ltc2,ltc2Sampler,viewDirectionW,vNormal,vPosition,lightCenter,halfWidth,halfHeight,roughness);
#ifdef SPECULARTERM
result.areaLightFresnel=data.Fresnel;result.areaLightSpecular=data.Specular;
#endif
result.areaLightDiffuse+=data.Diffuse;return result;}
#endif
`;H.IncludesShadersStoreWGSL[P6e]||(H.IncludesShadersStoreWGSL[P6e]=ZUe);const O6e="pbrDirectLightingFalloffFunctions",KUe=`fn computeDistanceLightFalloff_Standard(lightOffset: vec3f,range: f32)->f32
{return max(0.,1.0-length(lightOffset)/range);}
fn computeDistanceLightFalloff_Physical(lightDistanceSquared: f32)->f32
{return 1.0/maxEps(lightDistanceSquared);}
fn computeDistanceLightFalloff_GLTF(lightDistanceSquared: f32,inverseSquaredRange: f32)->f32
{var lightDistanceFalloff: f32=1.0/maxEps(lightDistanceSquared);var factor: f32=lightDistanceSquared*inverseSquaredRange;var attenuation: f32=saturate(1.0-factor*factor);attenuation*=attenuation;lightDistanceFalloff*=attenuation;return lightDistanceFalloff;}
fn computeDirectionalLightFalloff_IES(lightDirection: vec3f,directionToLightCenterW: vec3f,iesLightTexture: texture_2d<f32>,iesLightTextureSampler: sampler)->f32
{var cosAngle: f32=dot(-lightDirection,directionToLightCenterW);var angle=acos(cosAngle)/PI;return textureSampleLevel(iesLightTexture,iesLightTextureSampler,vec2f(angle,0),0.).r;}
fn computeDistanceLightFalloff(lightOffset: vec3f,lightDistanceSquared: f32,range: f32,inverseSquaredRange: f32)->f32
{
#ifdef USEPHYSICALLIGHTFALLOFF
return computeDistanceLightFalloff_Physical(lightDistanceSquared);
#elif defined(USEGLTFLIGHTFALLOFF)
return computeDistanceLightFalloff_GLTF(lightDistanceSquared,inverseSquaredRange);
#else
return computeDistanceLightFalloff_Standard(lightOffset,range);
#endif
}
fn computeDirectionalLightFalloff_Standard(lightDirection: vec3f,directionToLightCenterW: vec3f,cosHalfAngle: f32,exponent: f32)->f32
{var falloff: f32=0.0;var cosAngle: f32=maxEps(dot(-lightDirection,directionToLightCenterW));if (cosAngle>=cosHalfAngle)
{falloff=max(0.,pow(cosAngle,exponent));}
return falloff;}
fn computeDirectionalLightFalloff_Physical(lightDirection: vec3f,directionToLightCenterW: vec3f,cosHalfAngle: f32)->f32
{const kMinusLog2ConeAngleIntensityRatio: f32=6.64385618977; 
var concentrationKappa: f32=kMinusLog2ConeAngleIntensityRatio/(1.0-cosHalfAngle);var lightDirectionSpreadSG: vec4f= vec4f(-lightDirection*concentrationKappa,-concentrationKappa);var falloff: f32=exp2(dot( vec4f(directionToLightCenterW,1.0),lightDirectionSpreadSG));return falloff;}
fn computeDirectionalLightFalloff_GLTF(lightDirection: vec3f,directionToLightCenterW: vec3f,lightAngleScale: f32,lightAngleOffset: f32)->f32
{var cd: f32=dot(-lightDirection,directionToLightCenterW);var falloff: f32=saturate(cd*lightAngleScale+lightAngleOffset);falloff*=falloff;return falloff;}
fn computeDirectionalLightFalloff(lightDirection: vec3f,directionToLightCenterW: vec3f,cosHalfAngle: f32,exponent: f32,lightAngleScale: f32,lightAngleOffset: f32)->f32
{
#ifdef USEPHYSICALLIGHTFALLOFF
return computeDirectionalLightFalloff_Physical(lightDirection,directionToLightCenterW,cosHalfAngle);
#elif defined(USEGLTFLIGHTFALLOFF)
return computeDirectionalLightFalloff_GLTF(lightDirection,directionToLightCenterW,lightAngleScale,lightAngleOffset);
#else
return computeDirectionalLightFalloff_Standard(lightDirection,directionToLightCenterW,cosHalfAngle,exponent);
#endif
}`;H.IncludesShadersStoreWGSL[O6e]||(H.IncludesShadersStoreWGSL[O6e]=KUe);const R6e="pbrBRDFFunctions",qUe=`#define FRESNEL_MAXIMUM_ON_ROUGH 0.25
#ifdef MS_BRDF_ENERGY_CONSERVATION
fn getEnergyConservationFactor(specularEnvironmentR0: vec3f,environmentBrdf: vec3f)->vec3f {return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);}
#endif
#ifdef ENVIRONMENTBRDF
fn getBRDFLookup(NdotV: f32,perceptualRoughness: f32)->vec3f {var UV: vec2f= vec2f(NdotV,perceptualRoughness);var brdfLookup: vec4f= textureSample(environmentBrdfSampler,environmentBrdfSamplerSampler,UV);
#ifdef ENVIRONMENTBRDF_RGBD
brdfLookup=vec4f(fromRGBD(brdfLookup.rgba),brdfLookup.a);
#endif
return brdfLookup.rgb;}
fn getReflectanceFromBRDFWithEnvLookup(specularEnvironmentR0: vec3f,specularEnvironmentR90: vec3f,environmentBrdf: vec3f)->vec3f {
#ifdef BRDF_V_HEIGHT_CORRELATED
var reflectance: vec3f=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;
#else
var reflectance: vec3f=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;
#endif
return reflectance;}
fn getReflectanceFromBRDFLookup(specularEnvironmentR0: vec3f,environmentBrdf: vec3f)->vec3f {
#ifdef BRDF_V_HEIGHT_CORRELATED
var reflectance: vec3f=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);
#else
var reflectance: vec3f=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;
#endif
return reflectance;}
#endif
/* NOT USED
#if defined(SHEEN) && defined(SHEEN_SOFTER)
fn getBRDFLookupCharlieSheen(NdotV: f32,perceptualRoughness: f32)->f32
{var c: f32=1.0-NdotV;var c3: f32=c*c*c;return 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));}
#endif
*/
#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)
fn getReflectanceFromAnalyticalBRDFLookup_Jones(VdotN: f32,reflectance0: vec3f,reflectance90: vec3f,smoothness: f32)->vec3f
{var weight: f32=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}
#endif
#if defined(SHEEN) && defined(ENVIRONMENTBRDF)
/**
* The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.
* The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table
*/
fn getSheenReflectanceFromBRDFLookup(reflectance0: vec3f,environmentBrdf: vec3f)->vec3f {var sheenEnvironmentReflectance: vec3f=reflectance0*environmentBrdf.b;return sheenEnvironmentReflectance;}
#endif
fn fresnelSchlickGGXVec3(VdotH: f32,reflectance0: vec3f,reflectance90: vec3f)->vec3f
{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
fn fresnelSchlickGGX(VdotH: f32,reflectance0: f32,reflectance90: f32)->f32
{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
#ifdef CLEARCOAT
fn getR0RemappedForClearCoat(f0: vec3f)->vec3f {
#ifdef CLEARCOAT_DEFAULTIOR
#ifdef MOBILE
return saturateVec3(f0*(f0*0.526868+0.529324)-0.0482256);
#else
return saturateVec3(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);
#endif
#else
var s: vec3f=sqrt(f0);var t: vec3f=(uniforms.vClearCoatRefractionParams.z+uniforms.vClearCoatRefractionParams.w*s)/(uniforms.vClearCoatRefractionParams.w+uniforms.vClearCoatRefractionParams.z*s);return squareVec3(t);
#endif
}
#endif
#ifdef IRIDESCENCE
const XYZ_TO_REC709: mat3x3f= mat3x3f(
3.2404542,-0.9692660, 0.0556434,
-1.5371385, 1.8760108,-0.2040259,
-0.4985314, 0.0415560, 1.0572252
);fn getIORTfromAirToSurfaceR0(f0: vec3f)->vec3f {var sqrtF0: vec3f=sqrt(f0);return (1.+sqrtF0)/(1.-sqrtF0);}
fn getR0fromIORsVec3(iorT: vec3f,iorI: f32)->vec3f {return squareVec3((iorT- vec3f(iorI))/(iorT+ vec3f(iorI)));}
fn getR0fromIORs(iorT: f32,iorI: f32)->f32 {return square((iorT-iorI)/(iorT+iorI));}
fn evalSensitivity(opd: f32,shift: vec3f)->vec3f {var phase: f32=2.0*PI*opd*1.0e-9;const val: vec3f= vec3f(5.4856e-13,4.4201e-13,5.2481e-13);const pos: vec3f= vec3f(1.6810e+06,1.7953e+06,2.2084e+06);const vr: vec3f= vec3f(4.3278e+09,9.3046e+09,6.6121e+09);var xyz: vec3f=val*sqrt(2.0*PI*vr)*cos(pos*phase+shift)*exp(-square(phase)*vr);xyz.x+=9.7470e-14*sqrt(2.0*PI*4.5282e+09)*cos(2.2399e+06*phase+shift[0])*exp(-4.5282e+09*square(phase));xyz/=1.0685e-7;var srgb: vec3f=XYZ_TO_REC709*xyz;return srgb;}
fn evalIridescence(outsideIOR: f32,eta2: f32,cosTheta1: f32,thinFilmThickness: f32,baseF0: vec3f)->vec3f {var I: vec3f= vec3f(1.0);var iridescenceIOR: f32=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));var sinTheta2Sq: f32=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));var cosTheta2Sq: f32=1.0-sinTheta2Sq;if (cosTheta2Sq<0.0) {return I;}
var cosTheta2: f32=sqrt(cosTheta2Sq);var R0: f32=getR0fromIORs(iridescenceIOR,outsideIOR);var R12: f32=fresnelSchlickGGX(cosTheta1,R0,1.);var R21: f32=R12;var T121: f32=1.0-R12;var phi12: f32=0.0;if (iridescenceIOR<outsideIOR) {phi12=PI;}
var phi21: f32=PI-phi12;var baseIOR: vec3f=getIORTfromAirToSurfaceR0(clamp(baseF0,vec3f(0.0),vec3f(0.9999))); 
var R1: vec3f=getR0fromIORsVec3(baseIOR,iridescenceIOR);var R23: vec3f=fresnelSchlickGGXVec3(cosTheta2,R1, vec3f(1.));var phi23: vec3f= vec3f(0.0);if (baseIOR[0]<iridescenceIOR) {phi23[0]=PI;}
if (baseIOR[1]<iridescenceIOR) {phi23[1]=PI;}
if (baseIOR[2]<iridescenceIOR) {phi23[2]=PI;}
var opd: f32=2.0*iridescenceIOR*thinFilmThickness*cosTheta2;var phi: vec3f= vec3f(phi21)+phi23;var R123: vec3f=clamp(R12*R23,vec3f(1e-5),vec3f(0.9999));var r123: vec3f=sqrt(R123);var Rs: vec3f=(T121*T121)*R23/( vec3f(1.0)-R123);var C0: vec3f=R12+Rs;I=C0;var Cm: vec3f=Rs-T121;for (var m: i32=1; m<=2; m++)
{Cm*=r123;var Sm: vec3f=2.0*evalSensitivity( f32(m)*opd, f32(m)*phi);I+=Cm*Sm;}
return max(I, vec3f(0.0));}
#endif
fn normalDistributionFunction_TrowbridgeReitzGGX(NdotH: f32,alphaG: f32)->f32
{var a2: f32=alphaG*alphaG;var d: f32=NdotH*NdotH*(a2-1.0)+1.0;return a2/(PI*d*d);}
#ifdef SHEEN
fn normalDistributionFunction_CharlieSheen(NdotH: f32,alphaG: f32)->f32
{var invR: f32=1./alphaG;var cos2h: f32=NdotH*NdotH;var sin2h: f32=1.-cos2h;return (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);}
#endif
#ifdef ANISOTROPIC
fn normalDistributionFunction_BurleyGGX_Anisotropic(NdotH: f32,TdotH: f32,BdotH: f32,alphaTB: vec2f)->f32 {var a2: f32=alphaTB.x*alphaTB.y;var v: vec3f= vec3f(alphaTB.y*TdotH,alphaTB.x *BdotH,a2*NdotH);var v2: f32=dot(v,v);var w2: f32=a2/v2;return a2*w2*w2*RECIPROCAL_PI;}
#endif
#ifdef BRDF_V_HEIGHT_CORRELATED
fn smithVisibility_GGXCorrelated(NdotL: f32,NdotV: f32,alphaG: f32)->f32 {
#ifdef MOBILE
var GGXV: f32=NdotL*(NdotV*(1.0-alphaG)+alphaG);var GGXL: f32=NdotV*(NdotL*(1.0-alphaG)+alphaG);return 0.5/(GGXV+GGXL);
#else
var a2: f32=alphaG*alphaG;var GGXV: f32=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);var GGXL: f32=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);return 0.5/(GGXV+GGXL);
#endif
}
#else
fn smithVisibilityG1_TrowbridgeReitzGGXFast(dot: f32,alphaG: f32)->f32
{
#ifdef MOBILE
return 1.0/(dot+alphaG+(1.0-alphaG)*dot ));
#else
var alphaSquared: f32=alphaG*alphaG;return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));
#endif
}
fn smithVisibility_TrowbridgeReitzGGXFast(NdotL: f32,NdotV: f32,alphaG: f32)->f32
{var visibility: f32=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);return visibility;}
#endif
#ifdef ANISOTROPIC
fn smithVisibility_GGXCorrelated_Anisotropic(NdotL: f32,NdotV: f32,TdotV: f32,BdotV: f32,TdotL: f32,BdotL: f32,alphaTB: vec2f)->f32 {var lambdaV: f32=NdotL*length( vec3f(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));var lambdaL: f32=NdotV*length( vec3f(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));var v: f32=0.5/(lambdaV+lambdaL);return v;}
#endif
#ifdef CLEARCOAT
fn visibility_Kelemen(VdotH: f32)->f32 {return 0.25/(VdotH*VdotH); }
#endif
#ifdef SHEEN
fn visibility_Ashikhmin(NdotL: f32,NdotV: f32)->f32
{return 1./(4.*(NdotL+NdotV-NdotL*NdotV));}
/* NOT USED
#ifdef SHEEN_SOFTER
fn l(x: f32,alphaG: f32)->f32
{var oneMinusAlphaSq: f32=(1.0-alphaG)*(1.0-alphaG);var a: f32=mix(21.5473,25.3245,oneMinusAlphaSq);var b: f32=mix(3.82987,3.32435,oneMinusAlphaSq);var c: f32=mix(0.19823,0.16801,oneMinusAlphaSq);var d: f32=mix(-1.97760,-1.27393,oneMinusAlphaSq);var e: f32=mix(-4.32054,-4.85967,oneMinusAlphaSq);return a/(1.0+b*pow(x,c))+d*x+e;}
fn lambdaSheen(cosTheta: f32,alphaG: f32)->f32
{return abs(cosTheta)<0.5 ? exp(l(cosTheta,alphaG)) : exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));}
fn visibility_CharlieSheen(NdotL: f32,NdotV: f32,alphaG: f32)->f32
{var G: f32=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));return G/(4.0*NdotV*NdotL);}
#endif
*/
#endif
fn diffuseBRDF_Burley(NdotL: f32,NdotV: f32,VdotH: f32,roughness: f32)->f32 {var diffuseFresnelNV: f32=pow5(saturateEps(1.0-NdotL));var diffuseFresnelNL: f32=pow5(saturateEps(1.0-NdotV));var diffuseFresnel90: f32=0.5+2.0*VdotH*VdotH*roughness;var fresnel: f32 =
(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *
(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);return fresnel/PI;}
#ifdef SS_TRANSLUCENCY
fn transmittanceBRDF_Burley(tintColor: vec3f,diffusionDistance: vec3f,thickness: f32)->vec3f {var S: vec3f=1./maxEpsVec3(diffusionDistance);var temp: vec3f=exp((-0.333333333*thickness)*S);return tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);}
fn computeWrappedDiffuseNdotL(NdotL: f32,w: f32)->f32 {var t: f32=1.0+w;var invt2: f32=1.0/(t*t);return saturate((NdotL+w)*invt2);}
#endif
`;H.IncludesShadersStoreWGSL[R6e]||(H.IncludesShadersStoreWGSL[R6e]=qUe);const D6e="hdrFilteringFunctions",QUe=`#ifdef NUM_SAMPLES
#if NUM_SAMPLES>0
fn radicalInverse_VdC(value: u32)->f32 
{var bits=(value<<16u) | (value>>16u);bits=((bits & 0x55555555u)<<1u) | ((bits & 0xAAAAAAAAu)>>1u);bits=((bits & 0x33333333u)<<2u) | ((bits & 0xCCCCCCCCu)>>2u);bits=((bits & 0x0F0F0F0Fu)<<4u) | ((bits & 0xF0F0F0F0u)>>4u);bits=((bits & 0x00FF00FFu)<<8u) | ((bits & 0xFF00FF00u)>>8u);return f32(bits)*2.3283064365386963e-10; }
fn hammersley(i: u32,N: u32)->vec2f
{return vec2f( f32(i)/ f32(N),radicalInverse_VdC(i));}
fn log4(x: f32)->f32 {return log2(x)/2.;}
fn uv_to_normal(uv: vec2f)->vec3f {var N: vec3f;var uvRange: vec2f=uv;var theta: f32=uvRange.x*2.0*PI;var phi: f32=uvRange.y*PI;N.x=cos(theta)*sin(phi);N.z=sin(theta)*sin(phi);N.y=cos(phi);return N;}
const NUM_SAMPLES_FLOAT: f32= f32(NUM_SAMPLES);const NUM_SAMPLES_FLOAT_INVERSED: f32=1./NUM_SAMPLES_FLOAT;const K: f32=4.;fn irradiance(inputTexture: texture_cube<f32>,inputSampler: sampler,inputN: vec3f,filteringInfo: vec2f
#ifdef IBL_CDF_FILTERING
,icdfSampler: texture_2d<f32>,icdfSamplerSampler: sampler
#endif
)->vec3f
{var n: vec3f=normalize(inputN);var result: vec3f= vec3f(0.0);
#ifndef IBL_CDF_FILTERING
var tangent: vec3f=select(vec3f(1.,0.,0.),vec3f(0.,0.,1.),abs(n.z)<0.999);tangent=normalize(cross(tangent,n));var bitangent: vec3f=cross(n,tangent);var tbn: mat3x3f= mat3x3f(tangent,bitangent,n);
#endif
var maxLevel: f32=filteringInfo.y;var dim0: f32=filteringInfo.x;var omegaP: f32=(4.*PI)/(6.*dim0*dim0);for(var i: u32=0u; i<NUM_SAMPLES; i++)
{var Xi: vec2f=hammersley(i,NUM_SAMPLES);
#ifdef IBL_CDF_FILTERING
var T: vec2f;T.x=textureSampleLevel(icdfSampler,icdfSamplerSampler,vec2(Xi.x,0.0),0.0).x;T.y=textureSampleLevel(icdfSampler,icdfSamplerSampler,vec2(T.x,Xi.y),0.0).y;var Ls: vec3f=uv_to_normal(vec2f(1.0-fract(T.x+0.25),T.y));var NoL: f32=dot(n,Ls);
#else
var Ls: vec3f=hemisphereCosSample(Xi);Ls=normalize(Ls);var Ns: vec3f= vec3f(0.,0.,1.);var NoL: f32=dot(Ns,Ls);
#endif
if (NoL>0.) {
#ifdef IBL_CDF_FILTERING
var pdf: f32=textureSampleLevel(icdfSampler,icdfSamplerSampler,T,0.0).z;var c: vec3f=textureSampleLevel(inputTexture,inputSampler,Ls,0.0).rgb;
#else
var pdf_inversed: f32=PI/NoL;var omegaS: f32=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;var l: f32=log4(omegaS)-log4(omegaP)+log4(K);var mipLevel: f32=clamp(l,0.0,maxLevel);var c: vec3f=textureSampleLevel(inputTexture,inputSampler,tbn*Ls,mipLevel).rgb;
#endif
#ifdef GAMMA_INPUT
c=toLinearSpaceVec3(c);
#endif
#ifdef IBL_CDF_FILTERING
var light: vec3f=vec3f(0.0);if (pdf>1e-6) {light=vec3f(1.0)/vec3f(pdf)*c;}
result+=NoL*light;
#else
result+=c;
#endif
}}
result=result*NUM_SAMPLES_FLOAT_INVERSED;return result;}
fn radiance(alphaG: f32,inputTexture: texture_cube<f32>,inputSampler: sampler,inputN: vec3f,filteringInfo: vec2f)->vec3f
{var n: vec3f=normalize(inputN);var c: vec3f=textureSample(inputTexture,inputSampler,n).rgb; 
if (alphaG==0.) {
#ifdef GAMMA_INPUT
c=toLinearSpace(c);
#endif
return c;} else {var result: vec3f= vec3f(0.);var tangent: vec3f=select(vec3f(1.,0.,0.),vec3f(0.,0.,1.),abs(n.z)<0.999);tangent=normalize(cross(tangent,n));var bitangent: vec3f=cross(n,tangent);var tbn: mat3x3f= mat3x3f(tangent,bitangent,n);var maxLevel: f32=filteringInfo.y;var dim0: f32=filteringInfo.x;var omegaP: f32=(4.*PI)/(6.*dim0*dim0);var weight: f32=0.;for(var i: u32=0u; i<NUM_SAMPLES; i++)
{var Xi: vec2f=hammersley(i,NUM_SAMPLES);var H: vec3f=hemisphereImportanceSampleDggx(Xi,alphaG);var NoV: f32=1.;var NoH: f32=H.z;var NoH2: f32=H.z*H.z;var NoL: f32=2.*NoH2-1.;var L: vec3f= vec3f(2.*NoH*H.x,2.*NoH*H.y,NoL);L=normalize(L);if (NoL>0.) {var pdf_inversed: f32=4./normalDistributionFunction_TrowbridgeReitzGGX(NoH,alphaG);var omegaS: f32=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;var l: f32=log4(omegaS)-log4(omegaP)+log4(K);var mipLevel: f32=clamp( f32(l),0.0,maxLevel);weight+=NoL;var c: vec3f=textureSampleLevel(inputTexture,inputSampler,tbn*L,mipLevel).rgb;
#ifdef GAMMA_INPUT
c=toLinearSpace(c);
#endif
result+=c*NoL;}}
result=result/weight;return result;}}
#endif
#endif
`;H.IncludesShadersStoreWGSL[D6e]||(H.IncludesShadersStoreWGSL[D6e]=QUe);const N6e="pbrDirectLightingFunctions",JUe=`#define CLEARCOATREFLECTANCE90 1.0
struct lightingInfo
{diffuse: vec3f,
#ifdef SPECULARTERM
specular: vec3f,
#endif
#ifdef CLEARCOAT
clearCoat: vec4f,
#endif
#ifdef SHEEN
sheen: vec3f
#endif
};fn adjustRoughnessFromLightProperties(roughness: f32,lightRadius: f32,lightDistance: f32)->f32 {
#if defined(USEPHYSICALLIGHTFALLOFF) || defined(USEGLTFLIGHTFALLOFF)
var lightRoughness: f32=lightRadius/lightDistance;var totalRoughness: f32=saturate(lightRoughness+roughness);return totalRoughness;
#else
return roughness;
#endif
}
fn computeHemisphericDiffuseLighting(info: preLightingInfo,lightColor: vec3f,groundColor: vec3f)->vec3f {return mix(groundColor,lightColor,info.NdotL);}
fn computeDiffuseLighting(info: preLightingInfo,lightColor: vec3f)->vec3f {var diffuseTerm: f32=diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness);return diffuseTerm*info.attenuation*info.NdotL*lightColor;}
fn computeProjectionTextureDiffuseLighting(projectionLightTexture: texture_2d<f32>,projectionLightSampler: sampler,textureProjectionMatrix: mat4x4f,posW: vec3f)->vec3f{var strq: vec4f=textureProjectionMatrix* vec4f(posW,1.0);strq/=strq.w;var textureColor: vec3f=textureSample(projectionLightTexture,projectionLightSampler,strq.xy).rgb;return toLinearSpaceVec3(textureColor);}
#ifdef SS_TRANSLUCENCY
fn computeDiffuseAndTransmittedLighting(info: preLightingInfo,lightColor: vec3f,transmittance: vec3f,transmittanceIntensity: f32,surfaceAlbedo: vec3f)->vec3f {var transmittanceNdotL=vec3f(0.0);var NdotL: f32=absEps(info.NdotLUnclamped);if (info.NdotLUnclamped<0.0) {var wrapNdotL: f32=computeWrappedDiffuseNdotL(NdotL,0.02);var trAdapt: f32=step(0.,info.NdotLUnclamped);transmittanceNdotL=mix(transmittance*wrapNdotL, vec3f(wrapNdotL),trAdapt);}
var diffuseTerm: f32=diffuseBRDF_Burley(NdotL,info.NdotV,info.VdotH,info.roughness);return (transmittanceNdotL/PI+(1.0-transmittanceIntensity)*diffuseTerm*surfaceAlbedo*info.NdotL)*info.attenuation*lightColor;}
#endif
#ifdef SPECULARTERM
fn computeSpecularLighting(info: preLightingInfo,N: vec3f,reflectance0: vec3f,reflectance90: vec3f,geometricRoughnessFactor: f32,lightColor: vec3f)->vec3f {var NdotH: f32=saturateEps(dot(N,info.H));var roughness: f32=max(info.roughness,geometricRoughnessFactor);var alphaG: f32=convertRoughnessToAverageSlope(roughness);var fresnel: vec3f=fresnelSchlickGGXVec3(info.VdotH,reflectance0,reflectance90);
#ifdef IRIDESCENCE
fresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);
#endif
var distribution: f32=normalDistributionFunction_TrowbridgeReitzGGX(NdotH,alphaG);
#ifdef BRDF_V_HEIGHT_CORRELATED
var smithVisibility: f32=smithVisibility_GGXCorrelated(info.NdotL,info.NdotV,alphaG);
#else
var smithVisibility: f32=smithVisibility_TrowbridgeReitzGGXFast(info.NdotL,info.NdotV,alphaG);
#endif
var specTerm: vec3f=fresnel*distribution*smithVisibility;return specTerm*info.attenuation*info.NdotL*lightColor;}
#endif
#ifdef ANISOTROPIC
fn computeAnisotropicSpecularLighting(info: preLightingInfo,V: vec3f,N: vec3f,T: vec3f,B: vec3f,anisotropy: f32,reflectance0: vec3f,reflectance90: vec3f,geometricRoughnessFactor: f32,lightColor: vec3f)->vec3f {var NdotH: f32=saturateEps(dot(N,info.H));var TdotH: f32=dot(T,info.H);var BdotH: f32=dot(B,info.H);var TdotV: f32=dot(T,V);var BdotV: f32=dot(B,V);var TdotL: f32=dot(T,info.L);var BdotL: f32=dot(B,info.L);var alphaG: f32=convertRoughnessToAverageSlope(info.roughness);var alphaTB: vec2f=getAnisotropicRoughness(alphaG,anisotropy);alphaTB=max(alphaTB,vec2f(geometricRoughnessFactor*geometricRoughnessFactor));var fresnel: vec3f=fresnelSchlickGGXVec3(info.VdotH,reflectance0,reflectance90);
#ifdef IRIDESCENCE
fresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);
#endif
var distribution: f32=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB);var smithVisibility: f32=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB);var specTerm: vec3f=fresnel*distribution*smithVisibility;return specTerm*info.attenuation*info.NdotL*lightColor;}
#endif
#ifdef CLEARCOAT
fn computeClearCoatLighting(info: preLightingInfo,Ncc: vec3f,geometricRoughnessFactor: f32,clearCoatIntensity: f32,lightColor: vec3f)->vec4f {var NccdotL: f32=saturateEps(dot(Ncc,info.L));var NccdotH: f32=saturateEps(dot(Ncc,info.H));var clearCoatRoughness: f32=max(info.roughness,geometricRoughnessFactor);var alphaG: f32=convertRoughnessToAverageSlope(clearCoatRoughness);var fresnel: f32=fresnelSchlickGGX(info.VdotH,uniforms.vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);fresnel*=clearCoatIntensity;var distribution: f32=normalDistributionFunction_TrowbridgeReitzGGX(NccdotH,alphaG);var kelemenVisibility: f32=visibility_Kelemen(info.VdotH);var clearCoatTerm: f32=fresnel*distribution*kelemenVisibility;return vec4f(
clearCoatTerm*info.attenuation*NccdotL*lightColor,
1.0-fresnel
);}
fn computeClearCoatLightingAbsorption(NdotVRefract: f32,L: vec3f,Ncc: vec3f,clearCoatColor: vec3f,clearCoatThickness: f32,clearCoatIntensity: f32)->vec3f {var LRefract: vec3f=-refract(L,Ncc,uniforms.vClearCoatRefractionParams.y);var NdotLRefract: f32=saturateEps(dot(Ncc,LRefract));var absorption: vec3f=computeClearCoatAbsorption(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness,clearCoatIntensity);return absorption;}
#endif
#ifdef SHEEN
fn computeSheenLighting(info: preLightingInfo,N: vec3f,reflectance0: vec3f,reflectance90: vec3f,geometricRoughnessFactor: f32,lightColor: vec3f)->vec3f {var NdotH: f32=saturateEps(dot(N,info.H));var roughness: f32=max(info.roughness,geometricRoughnessFactor);var alphaG: f32=convertRoughnessToAverageSlope(roughness);var fresnel: f32=1.;var distribution: f32=normalDistributionFunction_CharlieSheen(NdotH,alphaG);/*#ifdef SHEEN_SOFTER
var visibility: f32=visibility_CharlieSheen(info.NdotL,info.NdotV,alphaG);
#else */
var visibility: f32=visibility_Ashikhmin(info.NdotL,info.NdotV);/* #endif */
var sheenTerm: f32=fresnel*distribution*visibility;return sheenTerm*info.attenuation*info.NdotL*lightColor;}
#endif
#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
fn computeAreaDiffuseLighting(info: preLightingInfo,lightColor: vec3f)->vec3f {return info.areaLightDiffuse*lightColor;}
fn computeAreaSpecularLighting(info: preLightingInfo,specularColor: vec3f)->vec3f {var fresnel:vec3f =( specularColor*info.areaLightFresnel.x+( vec3f( 1.0 )-specularColor )*info.areaLightFresnel.y );return specularColor*fresnel*info.areaLightSpecular;}
#endif
`;H.IncludesShadersStoreWGSL[N6e]||(H.IncludesShadersStoreWGSL[N6e]=JUe);const w6e="pbrIBLFunctions",$Ue=`#if defined(REFLECTION) || defined(SS_REFRACTION)
fn getLodFromAlphaG(cubeMapDimensionPixels: f32,microsurfaceAverageSlope: f32)->f32 {var microsurfaceAverageSlopeTexels: f32=cubeMapDimensionPixels*microsurfaceAverageSlope;var lod: f32=log2(microsurfaceAverageSlopeTexels);return lod;}
fn getLinearLodFromRoughness(cubeMapDimensionPixels: f32,roughness: f32)->f32 {var lod: f32=log2(cubeMapDimensionPixels)*roughness;return lod;}
#endif
#if defined(ENVIRONMENTBRDF) && defined(RADIANCEOCCLUSION)
fn environmentRadianceOcclusion(ambientOcclusion: f32,NdotVUnclamped: f32)->f32 {var temp: f32=NdotVUnclamped+ambientOcclusion;return saturate(temp*temp-1.0+ambientOcclusion);}
#endif
#if defined(ENVIRONMENTBRDF) && defined(HORIZONOCCLUSION)
fn environmentHorizonOcclusion(view: vec3f,normal: vec3f,geometricNormal: vec3f)->f32 {var reflection: vec3f=reflect(view,normal);var temp: f32=saturate(1.0+1.1*dot(reflection,geometricNormal));return temp*temp;}
#endif
#if defined(LODINREFLECTIONALPHA) || defined(SS_LODINREFRACTIONALPHA)
fn UNPACK_LOD(x: f32)->f32 {return (1.0-x)*255.0;}
fn getLodFromAlphaGNdotV(cubeMapDimensionPixels: f32,alphaG: f32,NdotV: f32)->f32 {var microsurfaceAverageSlope: f32=alphaG;microsurfaceAverageSlope*=sqrt(abs(NdotV));return getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope);}
#endif
`;H.IncludesShadersStoreWGSL[w6e]||(H.IncludesShadersStoreWGSL[w6e]=$Ue);const pse="bumpFragmentMainFunctions",B6e=`#if defined(BUMP) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(DETAIL)
#if defined(TANGENT) && defined(NORMAL) 
varying vTBN0: vec3f;varying vTBN1: vec3f;varying vTBN2: vec3f;
#endif
#ifdef OBJECTSPACE_NORMALMAP
uniform normalMatrix: mat4x4f;fn toNormalMatrix(m: mat4x4f)->mat4x4f
{var a00=m[0][0];var a01=m[0][1];var a02=m[0][2];var a03=m[0][3];var a10=m[1][0];var a11=m[1][1];var a12=m[1][2];var a13=m[1][3];var a20=m[2][0]; 
var a21=m[2][1];var a22=m[2][2];var a23=m[2][3];var a30=m[3][0]; 
var a31=m[3][1];var a32=m[3][2];var a33=m[3][3];var b00=a00*a11-a01*a10;var b01=a00*a12-a02*a10;var b02=a00*a13-a03*a10;var b03=a01*a12-a02*a11;var b04=a01*a13-a03*a11;var b05=a02*a13-a03*a12;var b06=a20*a31-a21*a30;var b07=a20*a32-a22*a30;var b08=a20*a33-a23*a30;var b09=a21*a32-a22*a31;var b10=a21*a33-a23*a31;var b11=a22*a33-a23*a32;var det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;var mi=mat4x4<f32>(
(a11*b11-a12*b10+a13*b09)/det,
(a02*b10-a01*b11-a03*b09)/det,
(a31*b05-a32*b04+a33*b03)/det,
(a22*b04-a21*b05-a23*b03)/det,
(a12*b08-a10*b11-a13*b07)/det,
(a00*b11-a02*b08+a03*b07)/det,
(a32*b02-a30*b05-a33*b01)/det,
(a20*b05-a22*b02+a23*b01)/det,
(a10*b10-a11*b08+a13*b06)/det,
(a01*b08-a00*b10-a03*b06)/det,
(a30*b04-a31*b02+a33*b00)/det,
(a21*b02-a20*b04-a23*b00)/det,
(a11*b07-a10*b09-a12*b06)/det,
(a00*b09-a01*b07+a02*b06)/det,
(a31*b01-a30*b03-a32*b00)/det,
(a20*b03-a21*b01+a22*b00)/det);return mat4x4<f32>(mi[0][0],mi[1][0],mi[2][0],mi[3][0],
mi[0][1],mi[1][1],mi[2][1],mi[3][1],
mi[0][2],mi[1][2],mi[2][2],mi[3][2],
mi[0][3],mi[1][3],mi[2][3],mi[3][3]);}
#endif
fn perturbNormalBase(cotangentFrame: mat3x3f,normal: vec3f,scale: f32)->vec3f
{var output=normal;
#ifdef NORMALXYSCALE
output=normalize(output* vec3f(scale,scale,1.0));
#endif
return normalize(cotangentFrame*output);}
fn perturbNormal(cotangentFrame: mat3x3f,textureSample: vec3f,scale: f32)->vec3f
{return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}
fn cotangent_frame(normal: vec3f,p: vec3f,uv: vec2f,tangentSpaceParams: vec2f)->mat3x3f
{var dp1: vec3f=dpdx(p);var dp2: vec3f=dpdy(p);var duv1: vec2f=dpdx(uv);var duv2: vec2f=dpdy(uv);var dp2perp: vec3f=cross(dp2,normal);var dp1perp: vec3f=cross(normal,dp1);var tangent: vec3f=dp2perp*duv1.x+dp1perp*duv2.x;var bitangent: vec3f=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;var det: f32=max(dot(tangent,tangent),dot(bitangent,bitangent));var invmax: f32=select(inverseSqrt(det),0.0,det==0.0);return mat3x3f(tangent*invmax,bitangent*invmax,normal);}
#endif
`;H.IncludesShadersStoreWGSL[pse]||(H.IncludesShadersStoreWGSL[pse]=B6e);const z6e={name:pse,shader:B6e},eje=Object.freeze(Object.defineProperty({__proto__:null,bumpFragmentMainFunctionsWGSL:z6e},Symbol.toStringTag,{value:"Module"})),mse="bumpFragmentFunctions",F6e=`#if defined(BUMP)
#include<samplerFragmentDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)
#endif
#if defined(DETAIL)
#include<samplerFragmentDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)
#endif
#if defined(BUMP) && defined(PARALLAX)
const minSamples: f32=4.;const maxSamples: f32=15.;const iMaxSamples: i32=15;fn parallaxOcclusion(vViewDirCoT: vec3f,vNormalCoT: vec3f,texCoord: vec2f,parallaxScale: f32)->vec2f {var parallaxLimit: f32=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;var vOffsetDir: vec2f=normalize(vViewDirCoT.xy);var vMaxOffset: vec2f=vOffsetDir*parallaxLimit;var numSamples: f32=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));var stepSize: f32=1.0/numSamples;var currRayHeight: f32=1.0;var vCurrOffset: vec2f= vec2f(0,0);var vLastOffset: vec2f= vec2f(0,0);var lastSampledHeight: f32=1.0;var currSampledHeight: f32=1.0;var keepWorking: bool=true;for (var i: i32=0; i<iMaxSamples; i++)
{currSampledHeight=textureSample(bumpSampler,bumpSamplerSampler,texCoord+vCurrOffset).w;if (!keepWorking)
{}
else if (currSampledHeight>currRayHeight)
{var delta1: f32=currSampledHeight-currRayHeight;var delta2: f32=(currRayHeight+stepSize)-lastSampledHeight;var ratio: f32=delta1/(delta1+delta2);vCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;keepWorking=false;}
else
{currRayHeight-=stepSize;vLastOffset=vCurrOffset;
#ifdef PARALLAX_RHS
vCurrOffset-=stepSize*vMaxOffset;
#else
vCurrOffset+=stepSize*vMaxOffset;
#endif
lastSampledHeight=currSampledHeight;}}
return vCurrOffset;}
fn parallaxOffset(viewDir: vec3f,heightScale: f32)->vec2f
{var height: f32=textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV).w;var texCoordOffset: vec2f=heightScale*viewDir.xy*height;
#ifdef PARALLAX_RHS
return texCoordOffset;
#else
return -texCoordOffset;
#endif
}
#endif
`;H.IncludesShadersStoreWGSL[mse]||(H.IncludesShadersStoreWGSL[mse]=F6e);const k6e={name:mse,shader:F6e},tje=Object.freeze(Object.defineProperty({__proto__:null,bumpFragmentFunctionsWGSL:k6e},Symbol.toStringTag,{value:"Module"})),U6e="pbrBlockAlbedoOpacity",ije=`struct albedoOpacityOutParams
{surfaceAlbedo: vec3f,
alpha: f32};
#define pbr_inline
fn albedoOpacityBlock(
vAlbedoColor: vec4f
#ifdef ALBEDO
,albedoTexture: vec4f
,albedoInfos: vec2f
#endif
,baseWeight: f32
#ifdef BASEWEIGHT
,baseWeightTexture: vec4f
,vBaseWeightInfos: vec2f
#endif
#ifdef OPACITY
,opacityMap: vec4f
,vOpacityInfos: vec2f
#endif
#ifdef DETAIL
,detailColor: vec4f
,vDetailInfos: vec4f
#endif
#ifdef DECAL
,decalColor: vec4f
,vDecalInfos: vec4f
#endif
)->albedoOpacityOutParams
{var outParams: albedoOpacityOutParams;var surfaceAlbedo: vec3f=vAlbedoColor.rgb;var alpha: f32=vAlbedoColor.a;
#ifdef ALBEDO
#if defined(ALPHAFROMALBEDO) || defined(ALPHATEST)
alpha*=albedoTexture.a;
#endif
#ifdef GAMMAALBEDO
surfaceAlbedo*=toLinearSpaceVec3(albedoTexture.rgb);
#else
surfaceAlbedo*=albedoTexture.rgb;
#endif
surfaceAlbedo*=albedoInfos.y;
#endif
#ifndef DECAL_AFTER_DETAIL
#include<decalFragment>
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
surfaceAlbedo*=fragmentInputs.vColor.rgb;
#endif
#ifdef DETAIL
var detailAlbedo: f32=2.0*mix(0.5,detailColor.r,vDetailInfos.y);surfaceAlbedo=surfaceAlbedo.rgb*detailAlbedo*detailAlbedo; 
#endif
#ifdef DECAL_AFTER_DETAIL
#include<decalFragment>
#endif
#define CUSTOM_FRAGMENT_UPDATE_ALBEDO
surfaceAlbedo*=baseWeight;
#ifdef BASEWEIGHT
surfaceAlbedo*=baseWeightTexture.r;
#endif
#ifdef OPACITY
#ifdef OPACITYRGB
alpha=getLuminance(opacityMap.rgb);
#else
alpha*=opacityMap.a;
#endif
alpha*=vOpacityInfos.y;
#endif
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=fragmentInputs.vColor.a;
#endif
#if !defined(SS_LINKREFRACTIONTOTRANSPARENCY) && !defined(ALPHAFRESNEL)
#ifdef ALPHATEST
#if DEBUGMODE != 88
if (alpha<ALPHATESTVALUE) {discard;}
#endif
#ifndef ALPHABLEND
alpha=1.0;
#endif
#endif
#endif
outParams.surfaceAlbedo=surfaceAlbedo;outParams.alpha=alpha;return outParams;}
`;H.IncludesShadersStoreWGSL[U6e]||(H.IncludesShadersStoreWGSL[U6e]=ije);const j6e="pbrBlockReflectivity",sje=`struct reflectivityOutParams
{microSurface: f32,
roughness: f32,
surfaceReflectivityColor: vec3f,
#ifdef METALLICWORKFLOW
surfaceAlbedo: vec3f,
#endif
#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)
ambientOcclusionColor: vec3f,
#endif
#if DEBUGMODE>0
#ifdef METALLICWORKFLOW
metallicRoughness: vec2f,
#ifdef REFLECTIVITY
surfaceMetallicColorMap: vec4f,
#endif
#ifndef FROSTBITE_REFLECTANCE
metallicF0: vec3f,
#endif
#else
#ifdef REFLECTIVITY
surfaceReflectivityColorMap: vec4f,
#endif
#endif
#endif
};
#define pbr_inline
fn reflectivityBlock(
vReflectivityColor: vec4f
#ifdef METALLICWORKFLOW
,surfaceAlbedo: vec3f
,metallicReflectanceFactors: vec4f
#endif
#ifdef REFLECTIVITY
,reflectivityInfos: vec3f
,surfaceMetallicOrReflectivityColorMap: vec4f
#endif
#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)
,ambientOcclusionColorIn: vec3f
#endif
#ifdef MICROSURFACEMAP
,microSurfaceTexel: vec4f
#endif
#ifdef DETAIL
,detailColor: vec4f
,vDetailInfos: vec4f
#endif
)->reflectivityOutParams
{var outParams: reflectivityOutParams;var microSurface: f32=vReflectivityColor.a;var surfaceReflectivityColor: vec3f=vReflectivityColor.rgb;
#ifdef METALLICWORKFLOW
var metallicRoughness: vec2f=surfaceReflectivityColor.rg;
#ifdef REFLECTIVITY
#if DEBUGMODE>0
outParams.surfaceMetallicColorMap=surfaceMetallicOrReflectivityColorMap;
#endif
#ifdef AOSTOREINMETALMAPRED
var aoStoreInMetalMap: vec3f= vec3f(surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r);outParams.ambientOcclusionColor=mix(ambientOcclusionColorIn,aoStoreInMetalMap,reflectivityInfos.z);
#endif
#ifdef METALLNESSSTOREINMETALMAPBLUE
metallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.b;
#else
metallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.r;
#endif
#ifdef ROUGHNESSSTOREINMETALMAPALPHA
metallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.a;
#else
#ifdef ROUGHNESSSTOREINMETALMAPGREEN
metallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.g;
#endif
#endif
#endif
#ifdef DETAIL
var detailRoughness: f32=mix(0.5,detailColor.b,vDetailInfos.w);var loLerp: f32=mix(0.,metallicRoughness.g,detailRoughness*2.);var hiLerp: f32=mix(metallicRoughness.g,1.,(detailRoughness-0.5)*2.);metallicRoughness.g=mix(loLerp,hiLerp,step(detailRoughness,0.5));
#endif
#ifdef MICROSURFACEMAP
metallicRoughness.g*=microSurfaceTexel.r;
#endif
#if DEBUGMODE>0
outParams.metallicRoughness=metallicRoughness;
#endif
#define CUSTOM_FRAGMENT_UPDATE_METALLICROUGHNESS
microSurface=1.0-metallicRoughness.g;var baseColor: vec3f=surfaceAlbedo;
#ifdef FROSTBITE_REFLECTANCE
outParams.surfaceAlbedo=baseColor.rgb*(1.0-metallicRoughness.r);surfaceReflectivityColor=mix(0.16*reflectance*reflectance,baseColor,metallicRoughness.r);
#else
var metallicF0: vec3f=metallicReflectanceFactors.rgb;
#if DEBUGMODE>0
outParams.metallicF0=metallicF0;
#endif
outParams.surfaceAlbedo=mix(baseColor.rgb*(1.0-metallicF0), vec3f(0.,0.,0.),metallicRoughness.r);surfaceReflectivityColor=mix(metallicF0,baseColor,metallicRoughness.r);
#endif
#else
#ifdef REFLECTIVITY
surfaceReflectivityColor*=surfaceMetallicOrReflectivityColorMap.rgb;
#if DEBUGMODE>0
outParams.surfaceReflectivityColorMap=surfaceMetallicOrReflectivityColorMap;
#endif
#ifdef MICROSURFACEFROMREFLECTIVITYMAP
microSurface*=surfaceMetallicOrReflectivityColorMap.a;microSurface*=reflectivityInfos.z;
#else
#ifdef MICROSURFACEAUTOMATIC
microSurface*=computeDefaultMicroSurface(microSurface,surfaceReflectivityColor);
#endif
#ifdef MICROSURFACEMAP
microSurface*=microSurfaceTexel.r;
#endif
#define CUSTOM_FRAGMENT_UPDATE_MICROSURFACE
#endif
#endif
#endif
microSurface=saturate(microSurface);var roughness: f32=1.-microSurface;outParams.microSurface=microSurface;outParams.roughness=roughness;outParams.surfaceReflectivityColor=surfaceReflectivityColor;return outParams;}
`;H.IncludesShadersStoreWGSL[j6e]||(H.IncludesShadersStoreWGSL[j6e]=sje);const V6e="pbrBlockAmbientOcclusion",rje=`struct ambientOcclusionOutParams
{ambientOcclusionColor: vec3f,
#if DEBUGMODE>0 && defined(AMBIENT)
ambientOcclusionColorMap: vec3f
#endif
};
#define pbr_inline
fn ambientOcclusionBlock(
#ifdef AMBIENT
ambientOcclusionColorMap_: vec3f,
vAmbientInfos: vec4f
#endif
)->ambientOcclusionOutParams
{ 
var outParams: ambientOcclusionOutParams;var ambientOcclusionColor: vec3f= vec3f(1.,1.,1.);
#ifdef AMBIENT
var ambientOcclusionColorMap: vec3f=ambientOcclusionColorMap_*vAmbientInfos.y;
#ifdef AMBIENTINGRAYSCALE
ambientOcclusionColorMap= vec3f(ambientOcclusionColorMap.r,ambientOcclusionColorMap.r,ambientOcclusionColorMap.r);
#endif
ambientOcclusionColor=mix(ambientOcclusionColor,ambientOcclusionColorMap,vAmbientInfos.z);
#if DEBUGMODE>0
outParams.ambientOcclusionColorMap=ambientOcclusionColorMap;
#endif
#endif
outParams.ambientOcclusionColor=ambientOcclusionColor;return outParams;}
`;H.IncludesShadersStoreWGSL[V6e]||(H.IncludesShadersStoreWGSL[V6e]=rje);const G6e="pbrBlockAlphaFresnel",nje=`#ifdef ALPHAFRESNEL
#if defined(ALPHATEST) || defined(ALPHABLEND)
struct alphaFresnelOutParams
{alpha: f32};fn faceforward(N: vec3<f32>,I: vec3<f32>,Nref: vec3<f32>)->vec3<f32> {return select(N,-N,dot(Nref,I)>0.0);}
#define pbr_inline
fn alphaFresnelBlock(
normalW: vec3f,
viewDirectionW: vec3f,
alpha: f32,
microSurface: f32
)->alphaFresnelOutParams
{var outParams: alphaFresnelOutParams;var opacityPerceptual: f32=alpha;
#ifdef LINEARALPHAFRESNEL
var opacity0: f32=opacityPerceptual;
#else
var opacity0: f32=opacityPerceptual*opacityPerceptual;
#endif
var opacity90: f32=fresnelGrazingReflectance(opacity0);var normalForward: vec3f=faceforward(normalW,-viewDirectionW,normalW);outParams.alpha=getReflectanceFromAnalyticalBRDFLookup_Jones(saturate(dot(viewDirectionW,normalForward)), vec3f(opacity0), vec3f(opacity90),sqrt(microSurface)).x;
#ifdef ALPHATEST
if (outParams.alpha<ALPHATESTVALUE) {discard;}
#ifndef ALPHABLEND
outParams.alpha=1.0;
#endif
#endif
return outParams;}
#endif
#endif
`;H.IncludesShadersStoreWGSL[G6e]||(H.IncludesShadersStoreWGSL[G6e]=nje);const W6e="pbrBlockAnisotropic",aje=`#ifdef ANISOTROPIC
struct anisotropicOutParams
{anisotropy: f32,
anisotropicTangent: vec3f,
anisotropicBitangent: vec3f,
anisotropicNormal: vec3f,
#if DEBUGMODE>0 && defined(ANISOTROPIC_TEXTURE)
anisotropyMapData: vec3f
#endif
};
#define pbr_inline
fn anisotropicBlock(
vAnisotropy: vec3f,
roughness: f32,
#ifdef ANISOTROPIC_TEXTURE
anisotropyMapData: vec3f,
#endif
TBN: mat3x3f,
normalW: vec3f,
viewDirectionW: vec3f
)->anisotropicOutParams
{ 
var outParams: anisotropicOutParams;var anisotropy: f32=vAnisotropy.b;var anisotropyDirection: vec3f= vec3f(vAnisotropy.xy,0.);
#ifdef ANISOTROPIC_TEXTURE
var amd=anisotropyMapData.rg;anisotropy*=anisotropyMapData.b;
#if DEBUGMODE>0
outParams.anisotropyMapData=anisotropyMapData;
#endif
amd=amd*2.0-1.0;
#ifdef ANISOTROPIC_LEGACY
anisotropyDirection=vec3f(anisotropyDirection.xy*amd,anisotropyDirection.z);
#else
anisotropyDirection=vec3f(mat2x2f(anisotropyDirection.x,anisotropyDirection.y,-anisotropyDirection.y,anisotropyDirection.x)*normalize(amd),anisotropyDirection.z);
#endif
#endif
var anisoTBN: mat3x3f= mat3x3f(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2]));var anisotropicTangent: vec3f=normalize(anisoTBN*anisotropyDirection);var anisotropicBitangent: vec3f=normalize(cross(anisoTBN[2],anisotropicTangent));outParams.anisotropy=anisotropy;outParams.anisotropicTangent=anisotropicTangent;outParams.anisotropicBitangent=anisotropicBitangent;outParams.anisotropicNormal=getAnisotropicBentNormals(anisotropicTangent,anisotropicBitangent,normalW,viewDirectionW,anisotropy,roughness);return outParams;}
#endif
`;H.IncludesShadersStoreWGSL[W6e]||(H.IncludesShadersStoreWGSL[W6e]=aje);const H6e="pbrBlockReflection",oje=`#ifdef REFLECTION
struct reflectionOutParams
{environmentRadiance: vec4f
,environmentIrradiance: vec3f
#ifdef REFLECTIONMAP_3D
,reflectionCoords: vec3f
#else
,reflectionCoords: vec2f
#endif
#ifdef SS_TRANSLUCENCY
#ifdef USESPHERICALFROMREFLECTIONMAP
#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)
,irradianceVector: vec3f
#endif
#endif
#endif
};
#define pbr_inline
#ifdef REFLECTIONMAP_3D
fn createReflectionCoords(
vPositionW: vec3f,
normalW: vec3f,
#ifdef ANISOTROPIC
anisotropicOut: anisotropicOutParams,
#endif
)->vec3f
{var reflectionCoords: vec3f;
#else
fn createReflectionCoords(
vPositionW: vec3f,
normalW: vec3f,
#ifdef ANISOTROPIC
anisotropicOut: anisotropicOutParams,
#endif
)->vec2f
{ 
var reflectionCoords: vec2f;
#endif
#ifdef ANISOTROPIC
var reflectionVector: vec3f=computeReflectionCoords( vec4f(vPositionW,1.0),anisotropicOut.anisotropicNormal);
#else
var reflectionVector: vec3f=computeReflectionCoords( vec4f(vPositionW,1.0),normalW);
#endif
#ifdef REFLECTIONMAP_OPPOSITEZ
reflectionVector.z*=-1.0;
#endif
#ifdef REFLECTIONMAP_3D
reflectionCoords=reflectionVector;
#else
reflectionCoords=reflectionVector.xy;
#ifdef REFLECTIONMAP_PROJECTION
reflectionCoords/=reflectionVector.z;
#endif
reflectionCoords.y=1.0-reflectionCoords.y;
#endif
return reflectionCoords;}
#define pbr_inline
fn sampleReflectionTexture(
alphaG: f32
,vReflectionMicrosurfaceInfos: vec3f
,vReflectionInfos: vec2f
,vReflectionColor: vec3f
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
,NdotVUnclamped: f32
#endif
#ifdef LINEARSPECULARREFLECTION
,roughness: f32
#endif
#ifdef REFLECTIONMAP_3D
,reflectionSampler: texture_cube<f32>
,reflectionSamplerSampler: sampler
,reflectionCoords: vec3f
#else
,reflectionSampler: texture_2d<f32>
,reflectionSamplerSampler: sampler
,reflectionCoords: vec2f
#endif
#ifndef LODBASEDMICROSFURACE
#ifdef REFLECTIONMAP_3D
,reflectionLowSampler: texture_cube<f32>
,reflectionLowSamplerSampler: sampler
,reflectionHighSampler: texture_cube<f32>
,reflectionHighSamplerSampler: sampler
#else
,reflectionLowSampler: texture_2d<f32>
,reflectionLowSamplerSampler: sampler
,reflectionHighSampler: texture_2d<f32>
,reflectionHighSamplerSampler: sampler
#endif
#endif
#ifdef REALTIME_FILTERING
,vReflectionFilteringInfo: vec2f
#endif 
)->vec4f
{var environmentRadiance: vec4f;
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
var reflectionLOD: f32=getLodFromAlphaGNdotV(vReflectionMicrosurfaceInfos.x,alphaG,NdotVUnclamped);
#elif defined(LINEARSPECULARREFLECTION)
var reflectionLOD: f32=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);
#else
var reflectionLOD: f32=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);
#endif
#ifdef LODBASEDMICROSFURACE
reflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;
#ifdef LODINREFLECTIONALPHA
var automaticReflectionLOD: f32=UNPACK_LOD(textureSample(reflectionSampler,reflectionSamplerSampler,reflectionCoords).a);var requestedReflectionLOD: f32=max(automaticReflectionLOD,reflectionLOD);
#else
var requestedReflectionLOD: f32=reflectionLOD;
#endif
#ifdef REALTIME_FILTERING
environmentRadiance= vec4f(radiance(alphaG,reflectionSampler,reflectionSamplerSampler,reflectionCoords,vReflectionFilteringInfo),1.0);
#else
environmentRadiance=textureSampleLevel(reflectionSampler,reflectionSamplerSampler,reflectionCoords,reflectionLOD);
#endif
#else
var lodReflectionNormalized: f32=saturate(reflectionLOD/log2(vReflectionMicrosurfaceInfos.x));var lodReflectionNormalizedDoubled: f32=lodReflectionNormalized*2.0;var environmentMid: vec4f=textureSample(reflectionSampler,reflectionSamplerSampler,reflectionCoords);if (lodReflectionNormalizedDoubled<1.0){environmentRadiance=mix(
textureSample(reflectionHighSampler,reflectionHighSamplerSampler,reflectionCoords),
environmentMid,
lodReflectionNormalizedDoubled
);} else {environmentRadiance=mix(
environmentMid,
textureSample(reflectionLowSampler,reflectionLowSamplerSampler,reflectionCoords),
lodReflectionNormalizedDoubled-1.0
);}
#endif
var envRadiance=environmentRadiance.rgb;
#ifdef RGBDREFLECTION
envRadiance=fromRGBD(environmentRadiance);
#endif
#ifdef GAMMAREFLECTION
envRadiance=toLinearSpaceVec3(environmentRadiance.rgb);
#endif
envRadiance*=vReflectionInfos.x;envRadiance*=vReflectionColor.rgb;return vec4f(envRadiance,environmentRadiance.a);}
#define pbr_inline
fn reflectionBlock(
vPositionW: vec3f
,normalW: vec3f
,alphaG: f32
,vReflectionMicrosurfaceInfos: vec3f
,vReflectionInfos: vec2f
,vReflectionColor: vec3f
#ifdef ANISOTROPIC
,anisotropicOut: anisotropicOutParams
#endif
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
,NdotVUnclamped: f32
#endif
#ifdef LINEARSPECULARREFLECTION
,roughness: f32
#endif
#ifdef REFLECTIONMAP_3D
,reflectionSampler: texture_cube<f32>
,reflectionSamplerSampler: sampler
#else
,reflectionSampler: texture_2d<f32>
,reflectionSamplerSampler: sampler
#endif
#if defined(NORMAL) && defined(USESPHERICALINVERTEX)
,vEnvironmentIrradiance: vec3f
#endif
#if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
,reflectionMatrix: mat4x4f
#endif
#ifdef USEIRRADIANCEMAP
#ifdef REFLECTIONMAP_3D
,irradianceSampler: texture_cube<f32>
,irradianceSamplerSampler: sampler 
#else
,irradianceSampler: texture_2d<f32>
,irradianceSamplerSampler: sampler 
#endif
#endif
#ifndef LODBASEDMICROSFURACE
#ifdef REFLECTIONMAP_3D
,reflectionLowSampler: texture_cube<f32>
,reflectionLowSamplerSampler: sampler 
,reflectionHighSampler: texture_cube<f32>
,reflectionHighSamplerSampler: sampler 
#else
,reflectionLowSampler: texture_2d<f32>
,reflectionLowSamplerSampler: sampler 
,reflectionHighSampler: texture_2d<f32>
,reflectionHighSamplerSampler: sampler 
#endif
#endif
#ifdef REALTIME_FILTERING
,vReflectionFilteringInfo: vec2f
#ifdef IBL_CDF_FILTERING
,icdfSampler: texture_2d<f32>
,icdfSamplerSampler: sampler
#endif
#endif
)->reflectionOutParams
{var outParams: reflectionOutParams;var environmentRadiance: vec4f= vec4f(0.,0.,0.,0.);
#ifdef REFLECTIONMAP_3D
var reflectionCoords: vec3f= vec3f(0.);
#else
var reflectionCoords: vec2f= vec2f(0.);
#endif
reflectionCoords=createReflectionCoords(
vPositionW,
normalW,
#ifdef ANISOTROPIC
anisotropicOut,
#endif 
);environmentRadiance=sampleReflectionTexture(
alphaG
,vReflectionMicrosurfaceInfos
,vReflectionInfos
,vReflectionColor
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
,NdotVUnclamped
#endif
#ifdef LINEARSPECULARREFLECTION
,roughness
#endif
#ifdef REFLECTIONMAP_3D
,reflectionSampler
,reflectionSamplerSampler
,reflectionCoords
#else
,reflectionSampler
,reflectionSamplerSampler
,reflectionCoords
#endif
#ifndef LODBASEDMICROSFURACE
,reflectionLowSampler
,reflectionLowSamplerSampler
,reflectionHighSampler
,reflectionHighSamplerSampler
#endif
#ifdef REALTIME_FILTERING
,vReflectionFilteringInfo
#endif 
);var environmentIrradiance: vec3f= vec3f(0.,0.,0.);
#if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
#ifdef ANISOTROPIC
var irradianceVector: vec3f= (reflectionMatrix* vec4f(anisotropicOut.anisotropicNormal,0)).xyz;
#else
var irradianceVector: vec3f= (reflectionMatrix* vec4f(normalW,0)).xyz;
#endif
#ifdef REFLECTIONMAP_OPPOSITEZ
irradianceVector.z*=-1.0;
#endif
#ifdef INVERTCUBICMAP
irradianceVector.y*=-1.0;
#endif
#endif
#ifdef USESPHERICALFROMREFLECTIONMAP
#if defined(NORMAL) && defined(USESPHERICALINVERTEX)
environmentIrradiance=vEnvironmentIrradiance;
#else
#if defined(REALTIME_FILTERING)
environmentIrradiance=irradiance(reflectionSampler,reflectionSamplerSampler,irradianceVector,vReflectionFilteringInfo
#ifdef IBL_CDF_FILTERING
,icdfSampler
,icdfSamplerSampler
#endif
);
#else
environmentIrradiance=computeEnvironmentIrradiance(irradianceVector);
#endif
#ifdef SS_TRANSLUCENCY
outParams.irradianceVector=irradianceVector;
#endif
#endif
#elif defined(USEIRRADIANCEMAP)
#ifdef REFLECTIONMAP_3D
var environmentIrradiance4: vec4f=textureSample(irradianceSampler,irradianceSamplerSampler,irradianceVector);
#else
var environmentIrradiance4: vec4f=textureSample(irradianceSampler,irradianceSamplerSampler,reflectionCoords);
#endif
environmentIrradiance=environmentIrradiance4.rgb;
#ifdef RGBDREFLECTION
environmentIrradiance=fromRGBD(environmentIrradiance4);
#endif
#ifdef GAMMAREFLECTION
environmentIrradiance=toLinearSpaceVec3(environmentIrradiance.rgb);
#endif
#endif
environmentIrradiance*=vReflectionColor.rgb;
#ifdef MIX_IBL_RADIANCE_WITH_IRRADIANCE
outParams.environmentRadiance=vec4f(mix(environmentRadiance.rgb,environmentIrradiance,alphaG),environmentRadiance.a);
#else
outParams.environmentRadiance=environmentRadiance;
#endif
outParams.environmentIrradiance=environmentIrradiance;outParams.reflectionCoords=reflectionCoords;return outParams;}
#endif
`;H.IncludesShadersStoreWGSL[H6e]||(H.IncludesShadersStoreWGSL[H6e]=oje);const Y6e="pbrBlockSheen",lje=`#ifdef SHEEN
struct sheenOutParams
{sheenIntensity: f32
,sheenColor: vec3f
,sheenRoughness: f32
#ifdef SHEEN_LINKWITHALBEDO
,surfaceAlbedo: vec3f
#endif
#if defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)
,sheenAlbedoScaling: f32
#endif
#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)
,finalSheenRadianceScaled: vec3f
#endif
#if DEBUGMODE>0
#ifdef SHEEN_TEXTURE
,sheenMapData: vec4f
#endif
#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)
,sheenEnvironmentReflectance: vec3f
#endif
#endif
};
#define pbr_inline
fn sheenBlock(
vSheenColor: vec4f
#ifdef SHEEN_ROUGHNESS
,vSheenRoughness: f32
#if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)
,sheenMapRoughnessData: vec4f
#endif
#endif
,roughness: f32
#ifdef SHEEN_TEXTURE
,sheenMapData: vec4f
,sheenMapLevel: f32
#endif
,reflectance: f32
#ifdef SHEEN_LINKWITHALBEDO
,baseColor: vec3f
,surfaceAlbedo: vec3f
#endif
#ifdef ENVIRONMENTBRDF
,NdotV: f32
,environmentBrdf: vec3f
#endif
#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)
,AARoughnessFactors: vec2f
,vReflectionMicrosurfaceInfos: vec3f
,vReflectionInfos: vec2f
,vReflectionColor: vec3f
,vLightingIntensity: vec4f
#ifdef REFLECTIONMAP_3D
,reflectionSampler: texture_cube<f32>
,reflectionSamplerSampler: sampler
,reflectionCoords: vec3f
#else
,reflectionSampler: texture_2d<f32>
,reflectionSamplerSampler: sampler
,reflectionCoords: vec2f
#endif
,NdotVUnclamped: f32
#ifndef LODBASEDMICROSFURACE
#ifdef REFLECTIONMAP_3D
,reflectionLowSampler: texture_cube<f32>
,reflectionLowSamplerSampler: sampler 
,reflectionHighSampler: texture_cube<f32>
,reflectionHighSamplerSampler: sampler 
#else
,reflectionLowSampler: texture_2d<f32>
,reflectionLowSamplerSampler: sampler 
,reflectionHighSampler: texture_2d<f32>
,reflectionHighSamplerSampler: sampler 
#endif
#endif
#ifdef REALTIME_FILTERING
,vReflectionFilteringInfo: vec2f
#endif
#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)
,seo: f32
#endif
#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)
,eho: f32
#endif
#endif
)->sheenOutParams
{var outParams: sheenOutParams;var sheenIntensity: f32=vSheenColor.a;
#ifdef SHEEN_TEXTURE
#if DEBUGMODE>0
outParams.sheenMapData=sheenMapData;
#endif
#endif
#ifdef SHEEN_LINKWITHALBEDO
var sheenFactor: f32=pow5(1.0-sheenIntensity);var sheenColor: vec3f=baseColor.rgb*(1.0-sheenFactor);var sheenRoughness: f32=sheenIntensity;outParams.surfaceAlbedo=surfaceAlbedo*sheenFactor;
#ifdef SHEEN_TEXTURE
sheenIntensity*=sheenMapData.a;
#endif
#else
var sheenColor: vec3f=vSheenColor.rgb;
#ifdef SHEEN_TEXTURE
#ifdef SHEEN_GAMMATEXTURE
sheenColor*=toLinearSpaceVec3(sheenMapData.rgb);
#else
sheenColor*=sheenMapData.rgb;
#endif
sheenColor*=sheenMapLevel;
#endif
#ifdef SHEEN_ROUGHNESS
var sheenRoughness: f32=vSheenRoughness;
#ifdef SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE
#if defined(SHEEN_TEXTURE)
sheenRoughness*=sheenMapData.a;
#endif
#elif defined(SHEEN_TEXTURE_ROUGHNESS)
sheenRoughness*=sheenMapRoughnessData.a;
#endif
#else
var sheenRoughness: f32=roughness;
#ifdef SHEEN_TEXTURE
sheenIntensity*=sheenMapData.a;
#endif
#endif
#if !defined(SHEEN_ALBEDOSCALING)
sheenIntensity*=(1.-reflectance);
#endif
sheenColor*=sheenIntensity;
#endif
#ifdef ENVIRONMENTBRDF
/*#ifdef SHEEN_SOFTER
var environmentSheenBrdf: vec3f= vec3f(0.,0.,getBRDFLookupCharlieSheen(NdotV,sheenRoughness));
#else*/
#ifdef SHEEN_ROUGHNESS
var environmentSheenBrdf: vec3f=getBRDFLookup(NdotV,sheenRoughness);
#else
var environmentSheenBrdf: vec3f=environmentBrdf;
#endif
/*#endif*/
#endif
#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)
var sheenAlphaG: f32=convertRoughnessToAverageSlope(sheenRoughness);
#ifdef SPECULARAA
sheenAlphaG+=AARoughnessFactors.y;
#endif
var environmentSheenRadiance: vec4f= vec4f(0.,0.,0.,0.);environmentSheenRadiance=sampleReflectionTexture(
sheenAlphaG
,vReflectionMicrosurfaceInfos
,vReflectionInfos
,vReflectionColor
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
,NdotVUnclamped
#endif
#ifdef LINEARSPECULARREFLECTION
,sheenRoughness
#endif
,reflectionSampler
,reflectionSamplerSampler
,reflectionCoords
#ifndef LODBASEDMICROSFURACE
,reflectionLowSampler
,reflectionLowSamplerSampler
,reflectionHighSampler
,reflectionHighSamplerSampler
#endif
#ifdef REALTIME_FILTERING
,vReflectionFilteringInfo
#endif
);var sheenEnvironmentReflectance: vec3f=getSheenReflectanceFromBRDFLookup(sheenColor,environmentSheenBrdf);
#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)
sheenEnvironmentReflectance*=seo;
#endif
#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)
sheenEnvironmentReflectance*=eho;
#endif
#if DEBUGMODE>0
outParams.sheenEnvironmentReflectance=sheenEnvironmentReflectance;
#endif
outParams.finalSheenRadianceScaled=
environmentSheenRadiance.rgb *
sheenEnvironmentReflectance *
vLightingIntensity.z;
#endif
#if defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)
outParams.sheenAlbedoScaling=1.0-sheenIntensity*max(max(sheenColor.r,sheenColor.g),sheenColor.b)*environmentSheenBrdf.b;
#endif
outParams.sheenIntensity=sheenIntensity;outParams.sheenColor=sheenColor;outParams.sheenRoughness=sheenRoughness;return outParams;}
#endif
`;H.IncludesShadersStoreWGSL[Y6e]||(H.IncludesShadersStoreWGSL[Y6e]=lje);const X6e="pbrBlockClearcoat",cje=`struct clearcoatOutParams
{specularEnvironmentR0: vec3f,
conservationFactor: f32,
clearCoatNormalW: vec3f,
clearCoatAARoughnessFactors: vec2f,
clearCoatIntensity: f32,
clearCoatRoughness: f32,
#ifdef REFLECTION
finalClearCoatRadianceScaled: vec3f,
#endif
#ifdef CLEARCOAT_TINT
absorption: vec3f,
clearCoatNdotVRefract: f32,
clearCoatColor: vec3f,
clearCoatThickness: f32,
#endif
#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)
energyConservationFactorClearCoat: vec3f,
#endif
#if DEBUGMODE>0
#ifdef CLEARCOAT_BUMP
TBNClearCoat: mat3x3f,
#endif
#ifdef CLEARCOAT_TEXTURE
clearCoatMapData: vec2f,
#endif
#if defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)
clearCoatTintMapData: vec4f,
#endif
#ifdef REFLECTION
environmentClearCoatRadiance: vec4f,
clearCoatEnvironmentReflectance: vec3f,
#endif
clearCoatNdotV: f32
#endif
};
#ifdef CLEARCOAT
#define pbr_inline
fn clearcoatBlock(
vPositionW: vec3f
,geometricNormalW: vec3f
,viewDirectionW: vec3f
,vClearCoatParams: vec2f
#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)
,clearCoatMapRoughnessData: vec4f
#endif
,specularEnvironmentR0: vec3f
#ifdef CLEARCOAT_TEXTURE
,clearCoatMapData: vec2f
#endif
#ifdef CLEARCOAT_TINT
,vClearCoatTintParams: vec4f
,clearCoatColorAtDistance: f32
,vClearCoatRefractionParams: vec4f
#ifdef CLEARCOAT_TINT_TEXTURE
,clearCoatTintMapData: vec4f
#endif
#endif
#ifdef CLEARCOAT_BUMP
,vClearCoatBumpInfos: vec2f
,clearCoatBumpMapData: vec4f
,vClearCoatBumpUV: vec2f
#if defined(TANGENT) && defined(NORMAL)
,vTBN: mat3x3f
#else
,vClearCoatTangentSpaceParams: vec2f
#endif
#ifdef OBJECTSPACE_NORMALMAP
,normalMatrix: mat4x4f
#endif
#endif
#if defined(FORCENORMALFORWARD) && defined(NORMAL)
,faceNormal: vec3f
#endif
#ifdef REFLECTION
,vReflectionMicrosurfaceInfos: vec3f
,vReflectionInfos: vec2f
,vReflectionColor: vec3f
,vLightingIntensity: vec4f
#ifdef REFLECTIONMAP_3D
,reflectionSampler: texture_cube<f32>
,reflectionSamplerSampler: sampler
#else
,reflectionSampler: texture_2d<f32>
,reflectionSamplerSampler: sampler
#endif
#ifndef LODBASEDMICROSFURACE
#ifdef REFLECTIONMAP_3D
,reflectionLowSampler: texture_cube<f32>
,reflectionLowSamplerSampler: sampler 
,reflectionHighSampler: texture_cube<f32>
,reflectionHighSamplerSampler: sampler 
#else
,reflectionLowSampler: texture_2d<f32>
,reflectionLowSamplerSampler: sampler 
,reflectionHighSampler: texture_2d<f32>
,reflectionHighSamplerSampler: sampler 
#endif
#endif
#ifdef REALTIME_FILTERING
,vReflectionFilteringInfo: vec2f
#endif
#endif
#if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)
,frontFacingMultiplier: f32
#endif 
)->clearcoatOutParams
{var outParams: clearcoatOutParams;var clearCoatIntensity: f32=vClearCoatParams.x;var clearCoatRoughness: f32=vClearCoatParams.y;
#ifdef CLEARCOAT_TEXTURE
clearCoatIntensity*=clearCoatMapData.x;
#ifdef CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE
clearCoatRoughness*=clearCoatMapData.y;
#endif
#if DEBUGMODE>0
outParams.clearCoatMapData=clearCoatMapData;
#endif
#endif
#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)
clearCoatRoughness*=clearCoatMapRoughnessData.y;
#endif
outParams.clearCoatIntensity=clearCoatIntensity;outParams.clearCoatRoughness=clearCoatRoughness;
#ifdef CLEARCOAT_TINT
var clearCoatColor: vec3f=vClearCoatTintParams.rgb;var clearCoatThickness: f32=vClearCoatTintParams.a;
#ifdef CLEARCOAT_TINT_TEXTURE
#ifdef CLEARCOAT_TINT_GAMMATEXTURE
clearCoatColor*=toLinearSpaceVec3(clearCoatTintMapData.rgb);
#else
clearCoatColor*=clearCoatTintMapData.rgb;
#endif
clearCoatThickness*=clearCoatTintMapData.a;
#if DEBUGMODE>0
outParams.clearCoatTintMapData=clearCoatTintMapData;
#endif
#endif
outParams.clearCoatColor=computeColorAtDistanceInMedia(clearCoatColor,clearCoatColorAtDistance);outParams.clearCoatThickness=clearCoatThickness;
#endif
#ifdef CLEARCOAT_REMAP_F0
var specularEnvironmentR0Updated: vec3f=getR0RemappedForClearCoat(specularEnvironmentR0);
#else
var specularEnvironmentR0Updated: vec3f=specularEnvironmentR0;
#endif
outParams.specularEnvironmentR0=mix(specularEnvironmentR0,specularEnvironmentR0Updated,clearCoatIntensity);var clearCoatNormalW: vec3f=geometricNormalW;
#ifdef CLEARCOAT_BUMP
#ifdef NORMALXYSCALE
var clearCoatNormalScale: f32=1.0;
#else
var clearCoatNormalScale: f32=vClearCoatBumpInfos.y;
#endif
#if defined(TANGENT) && defined(NORMAL)
var TBNClearCoat: mat3x3f=vTBN;
#else
var TBNClearCoatUV: vec2f=vClearCoatBumpUV*frontFacingMultiplier;var TBNClearCoat: mat3x3f=cotangent_frame(clearCoatNormalW*clearCoatNormalScale,vPositionW,TBNClearCoatUV,vClearCoatTangentSpaceParams);
#endif
#if DEBUGMODE>0
outParams.TBNClearCoat=TBNClearCoat;
#endif
#ifdef OBJECTSPACE_NORMALMAP
clearCoatNormalW=normalize(clearCoatBumpMapData.xyz *2.0-1.0);clearCoatNormalW=normalize( mat3x3f(normalMatrix[0].xyz,normalMatrix[1].xyz,normalMatrix[2].xyz)*clearCoatNormalW);
#else
clearCoatNormalW=perturbNormal(TBNClearCoat,clearCoatBumpMapData.xyz,vClearCoatBumpInfos.y);
#endif
#endif
#if defined(FORCENORMALFORWARD) && defined(NORMAL)
clearCoatNormalW*=sign(dot(clearCoatNormalW,faceNormal));
#endif
#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)
clearCoatNormalW=clearCoatNormalW*frontFacingMultiplier;
#endif
outParams.clearCoatNormalW=clearCoatNormalW;outParams.clearCoatAARoughnessFactors=getAARoughnessFactors(clearCoatNormalW.xyz);var clearCoatNdotVUnclamped: f32=dot(clearCoatNormalW,viewDirectionW);var clearCoatNdotV: f32=absEps(clearCoatNdotVUnclamped);
#if DEBUGMODE>0
outParams.clearCoatNdotV=clearCoatNdotV;
#endif
#ifdef CLEARCOAT_TINT
var clearCoatVRefract: vec3f=refract(-viewDirectionW,clearCoatNormalW,vClearCoatRefractionParams.y);outParams.clearCoatNdotVRefract=absEps(dot(clearCoatNormalW,clearCoatVRefract));
#endif
#if defined(ENVIRONMENTBRDF) && (!defined(REFLECTIONMAP_SKYBOX) || defined(MS_BRDF_ENERGY_CONSERVATION))
var environmentClearCoatBrdf: vec3f=getBRDFLookup(clearCoatNdotV,clearCoatRoughness);
#endif
#if defined(REFLECTION)
var clearCoatAlphaG: f32=convertRoughnessToAverageSlope(clearCoatRoughness);
#ifdef SPECULARAA
clearCoatAlphaG+=outParams.clearCoatAARoughnessFactors.y;
#endif
var environmentClearCoatRadiance: vec4f= vec4f(0.,0.,0.,0.);var clearCoatReflectionVector: vec3f=computeReflectionCoords( vec4f(vPositionW,1.0),clearCoatNormalW);
#ifdef REFLECTIONMAP_OPPOSITEZ
clearCoatReflectionVector.z*=-1.0;
#endif
#ifdef REFLECTIONMAP_3D
var clearCoatReflectionCoords: vec3f=clearCoatReflectionVector;
#else
var clearCoatReflectionCoords: vec2f=clearCoatReflectionVector.xy;
#ifdef REFLECTIONMAP_PROJECTION
clearCoatReflectionCoords/=clearCoatReflectionVector.z;
#endif
clearCoatReflectionCoords.y=1.0-clearCoatReflectionCoords.y;
#endif
environmentClearCoatRadiance=sampleReflectionTexture(
clearCoatAlphaG
,vReflectionMicrosurfaceInfos
,vReflectionInfos
,vReflectionColor
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
,clearCoatNdotVUnclamped
#endif
#ifdef LINEARSPECULARREFLECTION
,clearCoatRoughness
#endif
,reflectionSampler
,reflectionSamplerSampler
,clearCoatReflectionCoords
#ifndef LODBASEDMICROSFURACE
,reflectionLowSampler
,reflectionLowSamplerSampler
,reflectionHighSampler
,reflectionHighSamplerSampler
#endif
#ifdef REALTIME_FILTERING
,vReflectionFilteringInfo
#endif 
);
#if DEBUGMODE>0
outParams.environmentClearCoatRadiance=environmentClearCoatRadiance;
#endif
#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
var clearCoatEnvironmentReflectance: vec3f=getReflectanceFromBRDFLookup(vec3f(uniforms.vClearCoatRefractionParams.x),environmentClearCoatBrdf);
#ifdef HORIZONOCCLUSION
#ifdef BUMP
#ifdef REFLECTIONMAP_3D
var clearCoatEho: f32=environmentHorizonOcclusion(-viewDirectionW,clearCoatNormalW,geometricNormalW);clearCoatEnvironmentReflectance*=clearCoatEho;
#endif
#endif
#endif
#else
var clearCoatEnvironmentReflectance: vec3f=getReflectanceFromAnalyticalBRDFLookup_Jones(clearCoatNdotV, vec3f(1.), vec3f(1.),sqrt(1.-clearCoatRoughness));
#endif
clearCoatEnvironmentReflectance*=clearCoatIntensity;
#if DEBUGMODE>0
outParams.clearCoatEnvironmentReflectance=clearCoatEnvironmentReflectance;
#endif
outParams.finalClearCoatRadianceScaled=
environmentClearCoatRadiance.rgb *
clearCoatEnvironmentReflectance *
vLightingIntensity.z;
#endif
#if defined(CLEARCOAT_TINT)
outParams.absorption=computeClearCoatAbsorption(outParams.clearCoatNdotVRefract,outParams.clearCoatNdotVRefract,outParams.clearCoatColor,clearCoatThickness,clearCoatIntensity);
#endif
var fresnelIBLClearCoat: f32=fresnelSchlickGGX(clearCoatNdotV,uniforms.vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);fresnelIBLClearCoat*=clearCoatIntensity;outParams.conservationFactor=(1.-fresnelIBLClearCoat);
#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)
outParams.energyConservationFactorClearCoat=getEnergyConservationFactor(outParams.specularEnvironmentR0,environmentClearCoatBrdf);
#endif
return outParams;}
#endif
`;H.IncludesShadersStoreWGSL[X6e]||(H.IncludesShadersStoreWGSL[X6e]=cje);const Z6e="pbrBlockIridescence",uje=`struct iridescenceOutParams
{iridescenceIntensity: f32,
iridescenceIOR: f32,
iridescenceThickness: f32,
specularEnvironmentR0: vec3f};
#ifdef IRIDESCENCE
fn iridescenceBlock(
vIridescenceParams: vec4f
,viewAngle_: f32
,specularEnvironmentR0: vec3f
#ifdef IRIDESCENCE_TEXTURE
,iridescenceMapData: vec2f
#endif
#ifdef IRIDESCENCE_THICKNESS_TEXTURE
,iridescenceThicknessMapData: vec2f
#endif
#ifdef CLEARCOAT
,NdotVUnclamped: f32
,vClearCoatParams: vec2f
#ifdef CLEARCOAT_TEXTURE
,clearCoatMapData: vec2f
#endif
#endif
)->iridescenceOutParams
{var outParams: iridescenceOutParams;var iridescenceIntensity: f32=vIridescenceParams.x;var iridescenceIOR: f32=vIridescenceParams.y;var iridescenceThicknessMin: f32=vIridescenceParams.z;var iridescenceThicknessMax: f32=vIridescenceParams.w;var iridescenceThicknessWeight: f32=1.;var viewAngle=viewAngle_;
#ifdef IRIDESCENCE_TEXTURE
iridescenceIntensity*=iridescenceMapData.x;
#endif
#if defined(IRIDESCENCE_THICKNESS_TEXTURE)
iridescenceThicknessWeight=iridescenceThicknessMapData.g;
#endif
var iridescenceThickness: f32=mix(iridescenceThicknessMin,iridescenceThicknessMax,iridescenceThicknessWeight);var topIor: f32=1.; 
#ifdef CLEARCOAT
var clearCoatIntensity: f32=vClearCoatParams.x;
#ifdef CLEARCOAT_TEXTURE
clearCoatIntensity*=clearCoatMapData.x;
#endif
topIor=mix(1.0,uniforms.vClearCoatRefractionParams.w-1.,clearCoatIntensity);viewAngle=sqrt(1.0+((1.0/topIor)*(1.0/topIor))*((NdotVUnclamped*NdotVUnclamped)-1.0));
#endif
var iridescenceFresnel: vec3f=evalIridescence(topIor,iridescenceIOR,viewAngle,iridescenceThickness,specularEnvironmentR0);outParams.specularEnvironmentR0=mix(specularEnvironmentR0,iridescenceFresnel,iridescenceIntensity);outParams.iridescenceIntensity=iridescenceIntensity;outParams.iridescenceThickness=iridescenceThickness;outParams.iridescenceIOR=iridescenceIOR;return outParams;}
#endif
`;H.IncludesShadersStoreWGSL[Z6e]||(H.IncludesShadersStoreWGSL[Z6e]=uje);const K6e="pbrBlockSubSurface",hje=`struct subSurfaceOutParams
{specularEnvironmentReflectance: vec3f,
#ifdef SS_REFRACTION
finalRefraction: vec3f,
surfaceAlbedo: vec3f,
#ifdef SS_LINKREFRACTIONTOTRANSPARENCY
alpha: f32,
#endif
#ifdef REFLECTION
refractionFactorForIrradiance: f32,
#endif
#endif
#ifdef SS_TRANSLUCENCY
transmittance: vec3f,
translucencyIntensity: f32,
#ifdef REFLECTION
refractionIrradiance: vec3f,
#endif
#endif
#if DEBUGMODE>0
#ifdef SS_THICKNESSANDMASK_TEXTURE
thicknessMap: vec4f,
#endif
#ifdef SS_REFRACTION
environmentRefraction: vec4f,
refractionTransmittance: vec3f
#endif
#endif
};
#ifdef SUBSURFACE
#ifdef SS_REFRACTION
#define pbr_inline
fn sampleEnvironmentRefraction(
ior: f32
,thickness: f32
,refractionLOD: f32
,normalW: vec3f
,vPositionW: vec3f
,viewDirectionW: vec3f
,view: mat4x4f
,vRefractionInfos: vec4f
,refractionMatrix: mat4x4f
,vRefractionMicrosurfaceInfos: vec4f
,alphaG: f32
#ifdef SS_REFRACTIONMAP_3D
,refractionSampler: texture_cube<f32>
,refractionSamplerSampler: sampler
#ifndef LODBASEDMICROSFURACE
,refractionLowSampler: texture_cube<f32>
,refractionLowSamplerSampler: sampler
,refractionHighSampler: texture_cube<f32>
,refractionHighSamplerSampler: sampler 
#endif
#else
,refractionSampler: texture_2d<f32>
,refractionSamplerSampler: sampler
#ifndef LODBASEDMICROSFURACE
,refractionLowSampler: texture_2d<f32>
,refractionLowSamplerSampler: sampler
,refractionHighSampler: texture_2d<f32>
,refractionHighSamplerSampler: sampler 
#endif
#endif
#ifdef ANISOTROPIC
,anisotropicOut: anisotropicOutParams
#endif
#ifdef REALTIME_FILTERING
,vRefractionFilteringInfo: vec2f
#endif
#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC
,refractionPosition: vec3f
,refractionSize: vec3f
#endif
)->vec4f {var environmentRefraction: vec4f= vec4f(0.,0.,0.,0.);
#ifdef ANISOTROPIC
var refractionVector: vec3f=refract(-viewDirectionW,anisotropicOut.anisotropicNormal,ior);
#else
var refractionVector: vec3f=refract(-viewDirectionW,normalW,ior);
#endif
#ifdef SS_REFRACTIONMAP_OPPOSITEZ
refractionVector.z*=-1.0;
#endif
#ifdef SS_REFRACTIONMAP_3D
#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC
refractionVector=parallaxCorrectNormal(vPositionW,refractionVector,refractionSize,refractionPosition);
#endif
refractionVector.y=refractionVector.y*vRefractionInfos.w;var refractionCoords: vec3f=refractionVector;refractionCoords= (refractionMatrix* vec4f(refractionCoords,0)).xyz;
#else
#ifdef SS_USE_THICKNESS_AS_DEPTH
var vRefractionUVW: vec3f= (refractionMatrix*(view* vec4f(vPositionW+refractionVector*thickness,1.0))).xyz;
#else
var vRefractionUVW: vec3f= (refractionMatrix*(view* vec4f(vPositionW+refractionVector*vRefractionInfos.z,1.0))).xyz;
#endif
var refractionCoords: vec2f=vRefractionUVW.xy/vRefractionUVW.z;refractionCoords.y=1.0-refractionCoords.y;
#endif
#ifdef LODBASEDMICROSFURACE
var lod=refractionLOD*vRefractionMicrosurfaceInfos.y+vRefractionMicrosurfaceInfos.z;
#ifdef SS_LODINREFRACTIONALPHA
var automaticRefractionLOD: f32=UNPACK_LOD(textureSample(refractionSampler,refractionSamplerSampler,refractionCoords).a);var requestedRefractionLOD: f32=max(automaticRefractionLOD,lod);
#else
var requestedRefractionLOD: f32=lod;
#endif
#if defined(REALTIME_FILTERING) && defined(SS_REFRACTIONMAP_3D)
environmentRefraction= vec4f(radiance(alphaG,refractionSampler,refractionSamplerSampler,refractionCoords,vRefractionFilteringInfo),1.0);
#else
environmentRefraction=textureSampleLevel(refractionSampler,refractionSamplerSampler,refractionCoords,requestedRefractionLOD);
#endif
#else
var lodRefractionNormalized: f32=saturate(refractionLOD/log2(vRefractionMicrosurfaceInfos.x));var lodRefractionNormalizedDoubled: f32=lodRefractionNormalized*2.0;var environmentRefractionMid: vec4f=textureSample(refractionSampler,refractionSamplerSampler,refractionCoords);if (lodRefractionNormalizedDoubled<1.0){environmentRefraction=mix(
textureSample(refractionHighSampler,refractionHighSamplerSampler,refractionCoords),
environmentRefractionMid,
lodRefractionNormalizedDoubled
);} else {environmentRefraction=mix(
environmentRefractionMid,
textureSample(refractionLowSampler,refractionLowSamplerSampler,refractionCoords),
lodRefractionNormalizedDoubled-1.0
);}
#endif
var refraction=environmentRefraction.rgb;
#ifdef SS_RGBDREFRACTION
refraction=fromRGBD(environmentRefraction);
#endif
#ifdef SS_GAMMAREFRACTION
refraction=toLinearSpaceVec3(environmentRefraction.rgb);
#endif
return vec4f(refraction,environmentRefraction.a);}
#endif
#define pbr_inline
fn subSurfaceBlock(
vSubSurfaceIntensity: vec3f
,vThicknessParam: vec2f
,vTintColor: vec4f
,normalW: vec3f
,specularEnvironmentReflectance: vec3f
#ifdef SS_THICKNESSANDMASK_TEXTURE
,thicknessMap: vec4f
#endif
#ifdef SS_REFRACTIONINTENSITY_TEXTURE
,refractionIntensityMap: vec4f
#endif
#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE
,translucencyIntensityMap: vec4f
#endif
#ifdef REFLECTION
#ifdef SS_TRANSLUCENCY
,reflectionMatrix: mat4x4f
#ifdef USESPHERICALFROMREFLECTIONMAP
#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)
,irradianceVector_: vec3f
#endif
#if defined(REALTIME_FILTERING)
,reflectionSampler: texture_cube<f32>
,reflectionSamplerSampler: sampler
,vReflectionFilteringInfo: vec2f
#ifdef IBL_CDF_FILTERING
,icdfSampler: texture_2d<f32>
,icdfSamplerSampler: sampler
#endif
#endif
#endif
#ifdef USEIRRADIANCEMAP
#ifdef REFLECTIONMAP_3D
,irradianceSampler: texture_cube<f32>
,irradianceSamplerSampler: sampler
#else
,irradianceSampler: texture_2d<f32>
,irradianceSamplerSampler: sampler
#endif
#endif
#endif
#endif
#if defined(SS_REFRACTION) || defined(SS_TRANSLUCENCY)
,surfaceAlbedo: vec3f
#endif
#ifdef SS_REFRACTION
,vPositionW: vec3f
,viewDirectionW: vec3f
,view: mat4x4f
,vRefractionInfos: vec4f
,refractionMatrix: mat4x4f
,vRefractionMicrosurfaceInfos: vec4f
,vLightingIntensity: vec4f
#ifdef SS_LINKREFRACTIONTOTRANSPARENCY
,alpha: f32
#endif
#ifdef SS_LODINREFRACTIONALPHA
,NdotVUnclamped: f32
#endif
#ifdef SS_LINEARSPECULARREFRACTION
,roughness: f32
#endif
,alphaG: f32
#ifdef SS_REFRACTIONMAP_3D
,refractionSampler: texture_cube<f32>
,refractionSamplerSampler: sampler
#ifndef LODBASEDMICROSFURACE
,refractionLowSampler: texture_cube<f32>
,refractionLowSamplerSampler: sampler
,refractionHighSampler: texture_cube<f32>
,refractionHighSamplerSampler: sampler 
#endif
#else
,refractionSampler: texture_2d<f32>
,refractionSamplerSampler: sampler
#ifndef LODBASEDMICROSFURACE
,refractionLowSampler: texture_2d<f32>
,refractionLowSamplerSampler: sampler
,refractionHighSampler: texture_2d<f32>
,refractionHighSamplerSampler: sampler 
#endif
#endif
#ifdef ANISOTROPIC
,anisotropicOut: anisotropicOutParams
#endif
#ifdef REALTIME_FILTERING
,vRefractionFilteringInfo: vec2f
#endif
#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC
,refractionPosition: vec3f
,refractionSize: vec3f
#endif
#ifdef SS_DISPERSION
,dispersion: f32
#endif
#endif
#ifdef SS_TRANSLUCENCY
,vDiffusionDistance: vec3f
,vTranslucencyColor: vec4f
#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
,translucencyColorMap: vec4f
#endif
#endif
)->subSurfaceOutParams
{var outParams: subSurfaceOutParams;outParams.specularEnvironmentReflectance=specularEnvironmentReflectance;
#ifdef SS_REFRACTION
var refractionIntensity: f32=vSubSurfaceIntensity.x;
#ifdef SS_LINKREFRACTIONTOTRANSPARENCY
refractionIntensity*=(1.0-alpha);outParams.alpha=1.0;
#endif
#endif
#ifdef SS_TRANSLUCENCY
var translucencyIntensity: f32=vSubSurfaceIntensity.y;
#endif
#ifdef SS_THICKNESSANDMASK_TEXTURE
#ifdef SS_USE_GLTF_TEXTURES
var thickness: f32=thicknessMap.g*vThicknessParam.y+vThicknessParam.x;
#else
var thickness: f32=thicknessMap.r*vThicknessParam.y+vThicknessParam.x;
#endif
#if DEBUGMODE>0
outParams.thicknessMap=thicknessMap;
#endif
#if defined(SS_REFRACTION) && defined(SS_REFRACTION_USE_INTENSITY_FROM_THICKNESS)
#ifdef SS_USE_GLTF_TEXTURES
refractionIntensity*=thicknessMap.r;
#else
refractionIntensity*=thicknessMap.g;
#endif
#endif
#if defined(SS_TRANSLUCENCY) && defined(SS_TRANSLUCENCY_USE_INTENSITY_FROM_THICKNESS)
#ifdef SS_USE_GLTF_TEXTURES
translucencyIntensity*=thicknessMap.a;
#else
translucencyIntensity*=thicknessMap.b;
#endif
#endif
#else
var thickness: f32=vThicknessParam.y;
#endif
#if defined(SS_REFRACTION) && defined(SS_REFRACTIONINTENSITY_TEXTURE)
#ifdef SS_USE_GLTF_TEXTURES
refractionIntensity*=refractionIntensityMap.r;
#else
refractionIntensity*=refractionIntensityMap.g;
#endif
#endif
#if defined(SS_TRANSLUCENCY) && defined(SS_TRANSLUCENCYINTENSITY_TEXTURE)
#ifdef SS_USE_GLTF_TEXTURES
translucencyIntensity*=translucencyIntensityMap.a;
#else
translucencyIntensity*=translucencyIntensityMap.b;
#endif
#endif
#ifdef SS_TRANSLUCENCY
thickness=maxEps(thickness);var translucencyColor: vec4f=vTranslucencyColor;
#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
translucencyColor*=translucencyColorMap;
#endif
var transmittance: vec3f=transmittanceBRDF_Burley(translucencyColor.rgb,vDiffusionDistance,thickness);transmittance*=translucencyIntensity;outParams.transmittance=transmittance;outParams.translucencyIntensity=translucencyIntensity;
#endif
#ifdef SS_REFRACTION
var environmentRefraction: vec4f= vec4f(0.,0.,0.,0.);
#ifdef SS_HAS_THICKNESS
var ior: f32=vRefractionInfos.y;
#else
var ior: f32=vRefractionMicrosurfaceInfos.w;
#endif
#ifdef SS_LODINREFRACTIONALPHA
var refractionAlphaG: f32=alphaG;refractionAlphaG=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));var refractionLOD: f32=getLodFromAlphaGNdotV(vRefractionMicrosurfaceInfos.x,refractionAlphaG,NdotVUnclamped);
#elif defined(SS_LINEARSPECULARREFRACTION)
var refractionRoughness: f32=alphaG;refractionRoughness=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));var refractionLOD: f32=getLinearLodFromRoughness(vRefractionMicrosurfaceInfos.x,refractionRoughness);
#else
var refractionAlphaG: f32=alphaG;refractionAlphaG=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));var refractionLOD: f32=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,refractionAlphaG);
#endif
var refraction_ior: f32=vRefractionInfos.y;
#ifdef SS_DISPERSION
var realIOR: f32=1.0/refraction_ior;var iorDispersionSpread: f32=0.04*dispersion*(realIOR-1.0);var iors: vec3f= vec3f(1.0/(realIOR-iorDispersionSpread),refraction_ior,1.0/(realIOR+iorDispersionSpread));for (var i: i32=0; i<3; i++) {refraction_ior=iors[i];
#endif
var envSample: vec4f=sampleEnvironmentRefraction(refraction_ior,thickness,refractionLOD,normalW,vPositionW,viewDirectionW,view,vRefractionInfos,refractionMatrix,vRefractionMicrosurfaceInfos,alphaG
#ifdef SS_REFRACTIONMAP_3D
,refractionSampler
,refractionSamplerSampler
#ifndef LODBASEDMICROSFURACE
,refractionLowSampler
,refractionLowSamplerSampler
,refractionHighSampler
,refractionHighSamplerSampler
#endif
#else
,refractionSampler
,refractionSamplerSampler
#ifndef LODBASEDMICROSFURACE
,refractionLowSampler
,refractionLowSamplerSampler
,refractionHighSampler
,refractionHighSamplerSampler
#endif
#endif
#ifdef ANISOTROPIC
,anisotropicOut
#endif
#ifdef REALTIME_FILTERING
,vRefractionFilteringInfo
#endif
#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC
,refractionPosition
,refractionSize
#endif
);
#ifdef SS_DISPERSION
environmentRefraction[i]=envSample[i];}
#else
environmentRefraction=envSample;
#endif
environmentRefraction=vec4f(environmentRefraction.rgb*vRefractionInfos.x,environmentRefraction.a);
#endif
#ifdef SS_REFRACTION
var refractionTransmittance: vec3f= vec3f(refractionIntensity);
#ifdef SS_THICKNESSANDMASK_TEXTURE
var volumeAlbedo: vec3f=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w);refractionTransmittance*=cocaLambertVec3(volumeAlbedo,thickness);
#elif defined(SS_LINKREFRACTIONTOTRANSPARENCY)
var maxChannel: f32=max(max(surfaceAlbedo.r,surfaceAlbedo.g),surfaceAlbedo.b);var volumeAlbedo: vec3f=saturateVec3(maxChannel*surfaceAlbedo);environmentRefraction=vec4f(environmentRefraction.rgb*volumeAlbedo,environmentRefraction.a);
#else
var volumeAlbedo: vec3f=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w);refractionTransmittance*=cocaLambertVec3(volumeAlbedo,vThicknessParam.y);
#endif
#ifdef SS_ALBEDOFORREFRACTIONTINT
environmentRefraction=vec4f(environmentRefraction.rgb*surfaceAlbedo.rgb,environmentRefraction.a);
#endif
outParams.surfaceAlbedo=surfaceAlbedo*(1.-refractionIntensity);
#ifdef REFLECTION
outParams.refractionFactorForIrradiance=(1.-refractionIntensity);
#endif
#ifdef UNUSED_MULTIPLEBOUNCES
var bounceSpecularEnvironmentReflectance: vec3f=(2.0*specularEnvironmentReflectance)/(1.0+specularEnvironmentReflectance);outParams.specularEnvironmentReflectance=mix(bounceSpecularEnvironmentReflectance,specularEnvironmentReflectance,refractionIntensity);
#endif
refractionTransmittance*=1.0-max(outParams.specularEnvironmentReflectance.r,max(outParams.specularEnvironmentReflectance.g,outParams.specularEnvironmentReflectance.b));
#if DEBUGMODE>0
outParams.refractionTransmittance=refractionTransmittance;
#endif
outParams.finalRefraction=environmentRefraction.rgb*refractionTransmittance*vLightingIntensity.z;
#if DEBUGMODE>0
outParams.environmentRefraction=environmentRefraction;
#endif
#endif
#if defined(REFLECTION) && defined(SS_TRANSLUCENCY)
#if defined(NORMAL) && defined(USESPHERICALINVERTEX) || !defined(USESPHERICALFROMREFLECTIONMAP)
var irradianceVector: vec3f= (reflectionMatrix* vec4f(normalW,0)).xyz;
#ifdef REFLECTIONMAP_OPPOSITEZ
irradianceVector.z*=-1.0;
#endif
#ifdef INVERTCUBICMAP
irradianceVector.y*=-1.0;
#endif
#else
var irradianceVector: vec3f=irradianceVector_;
#endif
#if defined(USESPHERICALFROMREFLECTIONMAP)
#if defined(REALTIME_FILTERING)
var refractionIrradiance: vec3f=irradiance(reflectionSampler,reflectionSamplerSampler,-irradianceVector,vReflectionFilteringInfo
#ifdef IBL_CDF_FILTERING
,icdfSampler
,icdfSamplerSampler
#endif
);
#else
var refractionIrradiance: vec3f=computeEnvironmentIrradiance(-irradianceVector);
#endif
#elif defined(USEIRRADIANCEMAP)
#ifdef REFLECTIONMAP_3D
var irradianceCoords: vec3f=irradianceVector;
#else
var irradianceCoords: vec2f=irradianceVector.xy;
#ifdef REFLECTIONMAP_PROJECTION
irradianceCoords/=irradianceVector.z;
#endif
irradianceCoords.y=1.0-irradianceCoords.y;
#endif
var temp: vec4f=textureSample(irradianceSampler,irradianceSamplerSampler,-irradianceCoords);var refractionIrradiance=temp.rgb;
#ifdef RGBDREFLECTION
refractionIrradiance=fromRGBD(temp).rgb;
#endif
#ifdef GAMMAREFLECTION
refractionIrradiance=toLinearSpaceVec3(refractionIrradiance);
#endif
#else
var refractionIrradiance: vec3f= vec3f(0.);
#endif
refractionIrradiance*=transmittance;
#ifdef SS_ALBEDOFORTRANSLUCENCYTINT
refractionIrradiance*=surfaceAlbedo.rgb;
#endif
outParams.refractionIrradiance=refractionIrradiance;
#endif
return outParams;}
#endif
`;H.IncludesShadersStoreWGSL[K6e]||(H.IncludesShadersStoreWGSL[K6e]=hje);const q6e="pbrBlockNormalGeometric",dje=`var viewDirectionW: vec3f=normalize(scene.vEyePosition.xyz-input.vPositionW);
#ifdef NORMAL
var normalW: vec3f=normalize(input.vNormalW);
#else
var normalW: vec3f=normalize(cross(dpdx(input.vPositionW),dpdy(input.vPositionW)))*scene.vEyePosition.w;
#endif
var geometricNormalW: vec3f=normalW;
#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)
geometricNormalW=select(-geometricNormalW,geometricNormalW,fragmentInputs.frontFacing);
#endif
`;H.IncludesShadersStoreWGSL[q6e]||(H.IncludesShadersStoreWGSL[q6e]=dje);const gse="bumpFragment",Q6e=`var uvOffset: vec2f= vec2f(0.0,0.0);
#if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)
#ifdef NORMALXYSCALE
var normalScale: f32=1.0;
#elif defined(BUMP)
var normalScale: f32=uniforms.vBumpInfos.y;
#else
var normalScale: f32=1.0;
#endif
#if defined(TANGENT) && defined(NORMAL)
var TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2); 
#elif defined(BUMP)
var TBNUV: vec2f=select(-fragmentInputs.vBumpUV,fragmentInputs.vBumpUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV,uniforms.vTangentSpaceParams);
#else
var TBNUV: vec2f=select(-fragmentInputs.vDetailUV,fragmentInputs.vDetailUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV, vec2f(1.,1.));
#endif
#elif defined(ANISOTROPIC)
#if defined(TANGENT) && defined(NORMAL)
var TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2); 
#else
var TBNUV: vec2f=select( -fragmentInputs.vMainUV1,fragmentInputs.vMainUV1,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW,input.vPositionW,TBNUV, vec2f(1.,1.));
#endif
#endif
#ifdef PARALLAX
var invTBN: mat3x3f=transposeMat3(TBN);
#ifdef PARALLAXOCCLUSION
uvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,fragmentInputs.vBumpUV,uniforms.vBumpInfos.z);
#else
uvOffset=parallaxOffset(invTBN*viewDirectionW,uniforms.vBumpInfos.z);
#endif
#endif
#ifdef DETAIL
var detailColor: vec4f=textureSample(detailSampler,detailSamplerSampler,fragmentInputs.vDetailUV+uvOffset);var detailNormalRG: vec2f=detailColor.wy*2.0-1.0;var detailNormalB: f32=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));var detailNormal: vec3f= vec3f(detailNormalRG,detailNormalB);
#endif
#ifdef BUMP
#ifdef OBJECTSPACE_NORMALMAP
#define CUSTOM_FRAGMENT_BUMP_FRAGMENT
normalW=normalize(textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV).xyz *2.0-1.0);normalW=normalize(mat3x3f(uniforms.normalMatrix[0].xyz,uniforms.normalMatrix[1].xyz,uniforms.normalMatrix[2].xyz)*normalW);
#elif !defined(DETAIL)
normalW=perturbNormal(TBN,textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV+uvOffset).xyz,uniforms.vBumpInfos.y);
#else
var bumpNormal: vec3f=textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV+uvOffset).xyz*2.0-1.0;
#if DETAIL_NORMALBLENDMETHOD==0 
detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);var blendedNormal: vec3f=normalize( vec3f(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));
#elif DETAIL_NORMALBLENDMETHOD==1 
detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);bumpNormal+= vec3f(0.0,0.0,1.0);detailNormal*= vec3f(-1.0,-1.0,1.0);var blendedNormal: vec3f=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;
#endif
normalW=perturbNormalBase(TBN,blendedNormal,uniforms.vBumpInfos.y);
#endif
#elif defined(DETAIL)
detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);normalW=perturbNormalBase(TBN,detailNormal,uniforms.vDetailInfos.z);
#endif
`;H.IncludesShadersStoreWGSL[gse]||(H.IncludesShadersStoreWGSL[gse]=Q6e);const J6e={name:gse,shader:Q6e},fje=Object.freeze(Object.defineProperty({__proto__:null,bumpFragmentWGSL:J6e},Symbol.toStringTag,{value:"Module"})),$6e="pbrBlockNormalFinal",pje=`#if defined(FORCENORMALFORWARD) && defined(NORMAL)
var faceNormal: vec3f=normalize(cross(dpdx(fragmentInputs.vPositionW),dpdy(fragmentInputs.vPositionW)))*scene.vEyePosition.w;
#if defined(TWOSIDEDLIGHTING)
faceNormal=select(-faceNormal,faceNormal,fragmentInputs.frontFacing);
#endif
normalW*=sign(dot(normalW,faceNormal));
#endif
#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)
normalW=select(-normalW,normalW,fragmentInputs.frontFacing);
#endif
`;H.IncludesShadersStoreWGSL[$6e]||(H.IncludesShadersStoreWGSL[$6e]=pje);const e_e="depthPrePass",mje=`#ifdef DEPTHPREPASS
fragmentOutputs.color= vec4f(0.,0.,0.,1.0);return fragmentOutputs;
#endif
`;H.IncludesShadersStoreWGSL[e_e]||(H.IncludesShadersStoreWGSL[e_e]=mje);const t_e="pbrBlockLightmapInit",gje=`#ifdef LIGHTMAP
var lightmapColor: vec4f=textureSample(lightmapSampler,lightmapSamplerSampler,fragmentInputs.vLightmapUV+uvOffset);
#ifdef RGBDLIGHTMAP
lightmapColor=vec4f(fromRGBD(lightmapColor),lightmapColor.a);
#endif
#ifdef GAMMALIGHTMAP
lightmapColor=vec4f(toLinearSpaceVec3(lightmapColor.rgb),lightmapColor.a);
#endif
lightmapColor=vec4f(lightmapColor.rgb*uniforms.vLightmapInfos.y,lightmapColor.a);
#endif
`;H.IncludesShadersStoreWGSL[t_e]||(H.IncludesShadersStoreWGSL[t_e]=gje);const i_e="pbrBlockGeometryInfo",_je=`var NdotVUnclamped: f32=dot(normalW,viewDirectionW);var NdotV: f32=absEps(NdotVUnclamped);var alphaG: f32=convertRoughnessToAverageSlope(roughness);var AARoughnessFactors: vec2f=getAARoughnessFactors(normalW.xyz);
#ifdef SPECULARAA
alphaG+=AARoughnessFactors.y;
#endif
#if defined(ENVIRONMENTBRDF)
var environmentBrdf: vec3f=getBRDFLookup(NdotV,roughness);
#endif
#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
#ifdef RADIANCEOCCLUSION
#ifdef AMBIENTINGRAYSCALE
var ambientMonochrome: f32=aoOut.ambientOcclusionColor.r;
#else
var ambientMonochrome: f32=getLuminance(aoOut.ambientOcclusionColor);
#endif
var seo: f32=environmentRadianceOcclusion(ambientMonochrome,NdotVUnclamped);
#endif
#ifdef HORIZONOCCLUSION
#ifdef BUMP
#ifdef REFLECTIONMAP_3D
var eho: f32=environmentHorizonOcclusion(-viewDirectionW,normalW,geometricNormalW);
#endif
#endif
#endif
#endif
`;H.IncludesShadersStoreWGSL[i_e]||(H.IncludesShadersStoreWGSL[i_e]=_je);const s_e="pbrBlockReflectance0",vje=`var reflectance: f32=max(max(reflectivityOut.surfaceReflectivityColor.r,reflectivityOut.surfaceReflectivityColor.g),reflectivityOut.surfaceReflectivityColor.b);var specularEnvironmentR0: vec3f=reflectivityOut.surfaceReflectivityColor.rgb;
#ifdef METALLICWORKFLOW
var specularEnvironmentR90: vec3f= vec3f(metallicReflectanceFactors.a);
#else 
var specularEnvironmentR90: vec3f= vec3f(1.0,1.0,1.0);
#endif
#ifdef ALPHAFRESNEL
var reflectance90: f32=fresnelGrazingReflectance(reflectance);specularEnvironmentR90=specularEnvironmentR90*reflectance90;
#endif
`;H.IncludesShadersStoreWGSL[s_e]||(H.IncludesShadersStoreWGSL[s_e]=vje);const r_e="pbrBlockReflectance",Aje=`#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
var specularEnvironmentReflectance: vec3f=getReflectanceFromBRDFWithEnvLookup(clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,environmentBrdf);
#ifdef RADIANCEOCCLUSION
specularEnvironmentReflectance*=seo;
#endif
#ifdef HORIZONOCCLUSION
#ifdef BUMP
#ifdef REFLECTIONMAP_3D
specularEnvironmentReflectance*=eho;
#endif
#endif
#endif
#else
var specularEnvironmentReflectance: vec3f=getReflectanceFromAnalyticalBRDFLookup_Jones(NdotV,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,sqrt(microSurface));
#endif
#ifdef CLEARCOAT
specularEnvironmentReflectance*=clearcoatOut.conservationFactor;
#if defined(CLEARCOAT_TINT)
specularEnvironmentReflectance*=clearcoatOut.absorption;
#endif
#endif
`;H.IncludesShadersStoreWGSL[r_e]||(H.IncludesShadersStoreWGSL[r_e]=Aje);const n_e="pbrBlockDirectLighting",Cje=`var diffuseBase: vec3f=vec3f(0.,0.,0.);
#ifdef SPECULARTERM
var specularBase: vec3f=vec3f(0.,0.,0.);
#endif
#ifdef CLEARCOAT
var clearCoatBase: vec3f=vec3f(0.,0.,0.);
#endif
#ifdef SHEEN
var sheenBase: vec3f=vec3f(0.,0.,0.);
#endif
var preInfo: preLightingInfo;var info: lightingInfo;var shadow: f32=1.; 
var aggShadow: f32=0.;var numLights: f32=0.;
#if defined(CLEARCOAT) && defined(CLEARCOAT_TINT)
var absorption: vec3f=vec3f(0.);
#endif
`;H.IncludesShadersStoreWGSL[n_e]||(H.IncludesShadersStoreWGSL[n_e]=Cje);const a_e="pbrBlockFinalLitComponents",xje=`aggShadow=aggShadow/numLights;
#if defined(ENVIRONMENTBRDF)
#ifdef MS_BRDF_ENERGY_CONSERVATION
var energyConservationFactor: vec3f=getEnergyConservationFactor(clearcoatOut.specularEnvironmentR0,environmentBrdf);
#endif
#endif
#ifndef METALLICWORKFLOW
#ifdef SPECULAR_GLOSSINESS_ENERGY_CONSERVATION
surfaceAlbedo=(1.-reflectance)*surfaceAlbedo.rgb;
#endif
#endif
#if defined(SHEEN) && defined(SHEEN_ALBEDOSCALING) && defined(ENVIRONMENTBRDF)
surfaceAlbedo=sheenOut.sheenAlbedoScaling*surfaceAlbedo.rgb;
#endif
#ifdef REFLECTION
var finalIrradiance: vec3f=reflectionOut.environmentIrradiance;
#if defined(CLEARCOAT)
finalIrradiance*=clearcoatOut.conservationFactor;
#if defined(CLEARCOAT_TINT)
finalIrradiance*=clearcoatOut.absorption;
#endif
#endif
finalIrradiance*=surfaceAlbedo.rgb;
#if defined(SS_REFRACTION)
finalIrradiance*=subSurfaceOut.refractionFactorForIrradiance;
#endif
#if defined(SS_TRANSLUCENCY)
finalIrradiance*=(1.0-subSurfaceOut.translucencyIntensity);finalIrradiance+=subSurfaceOut.refractionIrradiance;
#endif
finalIrradiance*=uniforms.vLightingIntensity.z;finalIrradiance*=aoOut.ambientOcclusionColor;
#endif
#ifdef SPECULARTERM
var finalSpecular: vec3f=specularBase;finalSpecular=max(finalSpecular,vec3f(0.0));var finalSpecularScaled: vec3f=finalSpecular*uniforms.vLightingIntensity.x*uniforms.vLightingIntensity.w;
#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)
finalSpecularScaled*=energyConservationFactor;
#endif
#if defined(SHEEN) && defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)
finalSpecularScaled*=sheenOut.sheenAlbedoScaling;
#endif
#endif
#ifdef REFLECTION
var finalRadiance: vec3f=reflectionOut.environmentRadiance.rgb;finalRadiance*=subSurfaceOut.specularEnvironmentReflectance;var finalRadianceScaled: vec3f=finalRadiance*uniforms.vLightingIntensity.z;
#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)
finalRadianceScaled*=energyConservationFactor;
#endif
#if defined(SHEEN) && defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)
finalRadianceScaled*=sheenOut.sheenAlbedoScaling;
#endif
#endif
#ifdef SHEEN
var finalSheen: vec3f=sheenBase*sheenOut.sheenColor;finalSheen=max(finalSheen,vec3f(0.0));var finalSheenScaled: vec3f=finalSheen*uniforms.vLightingIntensity.x*uniforms.vLightingIntensity.w;
#if defined(CLEARCOAT) && defined(REFLECTION) && defined(ENVIRONMENTBRDF)
sheenOut.finalSheenRadianceScaled*=clearcoatOut.conservationFactor;
#if defined(CLEARCOAT_TINT)
sheenOut.finalSheenRadianceScaled*=clearcoatOut.absorption;
#endif
#endif
#endif
#ifdef CLEARCOAT
var finalClearCoat: vec3f=clearCoatBase;finalClearCoat=max(finalClearCoat,vec3f(0.0));var finalClearCoatScaled: vec3f=finalClearCoat*uniforms.vLightingIntensity.x*uniforms.vLightingIntensity.w;
#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)
finalClearCoatScaled*=clearcoatOut.energyConservationFactorClearCoat;
#endif
#ifdef SS_REFRACTION
subSurfaceOut.finalRefraction*=clearcoatOut.conservationFactor;
#ifdef CLEARCOAT_TINT
subSurfaceOut.finalRefraction*=clearcoatOut.absorption;
#endif
#endif
#endif
#ifdef ALPHABLEND
var luminanceOverAlpha: f32=0.0;
#if defined(REFLECTION) && defined(RADIANCEOVERALPHA)
luminanceOverAlpha+=getLuminance(finalRadianceScaled);
#if defined(CLEARCOAT)
luminanceOverAlpha+=getLuminance(clearcoatOut.finalClearCoatRadianceScaled);
#endif
#endif
#if defined(SPECULARTERM) && defined(SPECULAROVERALPHA)
luminanceOverAlpha+=getLuminance(finalSpecularScaled);
#endif
#if defined(CLEARCOAT) && defined(CLEARCOATOVERALPHA)
luminanceOverAlpha+=getLuminance(finalClearCoatScaled);
#endif
#if defined(RADIANCEOVERALPHA) || defined(SPECULAROVERALPHA) || defined(CLEARCOATOVERALPHA)
alpha=saturate(alpha+luminanceOverAlpha*luminanceOverAlpha);
#endif
#endif
`;H.IncludesShadersStoreWGSL[a_e]||(H.IncludesShadersStoreWGSL[a_e]=xje);const o_e="pbrBlockFinalUnlitComponents",bje=`var finalDiffuse: vec3f=diffuseBase;
#if !defined(SS_TRANSLUCENCY)
finalDiffuse*=surfaceAlbedo.rgb;
#endif
finalDiffuse=max(finalDiffuse,vec3f(0.0));finalDiffuse*=uniforms.vLightingIntensity.x;var finalAmbient: vec3f=uniforms.vAmbientColor;finalAmbient*=surfaceAlbedo.rgb;var finalEmissive: vec3f=uniforms.vEmissiveColor;
#ifdef EMISSIVE
var emissiveColorTex: vec3f=textureSample(emissiveSampler,emissiveSamplerSampler,fragmentInputs.vEmissiveUV+uvOffset).rgb;
#ifdef GAMMAEMISSIVE
finalEmissive*=toLinearSpaceVec3(emissiveColorTex.rgb);
#else
finalEmissive*=emissiveColorTex.rgb;
#endif
finalEmissive*= uniforms.vEmissiveInfos.y;
#endif
finalEmissive*=uniforms.vLightingIntensity.y;
#ifdef AMBIENT
var ambientOcclusionForDirectDiffuse: vec3f=mix( vec3f(1.),aoOut.ambientOcclusionColor,uniforms.vAmbientInfos.w);
#else
var ambientOcclusionForDirectDiffuse: vec3f=aoOut.ambientOcclusionColor;
#endif
finalAmbient*=aoOut.ambientOcclusionColor;finalDiffuse*=ambientOcclusionForDirectDiffuse;
`;H.IncludesShadersStoreWGSL[o_e]||(H.IncludesShadersStoreWGSL[o_e]=bje);const l_e="pbrBlockFinalColorComposition",Sje=`var finalColor: vec4f= vec4f(
#ifndef UNLIT
#ifdef REFLECTION
finalIrradiance +
#endif
#ifdef SPECULARTERM
finalSpecularScaled +
#endif
#ifdef SHEEN
finalSheenScaled +
#endif
#ifdef CLEARCOAT
finalClearCoatScaled +
#endif
#ifdef REFLECTION
finalRadianceScaled +
#if defined(SHEEN) && defined(ENVIRONMENTBRDF)
sheenOut.finalSheenRadianceScaled +
#endif
#ifdef CLEARCOAT
clearcoatOut.finalClearCoatRadianceScaled +
#endif
#endif
#ifdef SS_REFRACTION
subSurfaceOut.finalRefraction +
#endif
#endif
finalAmbient +
finalDiffuse,
alpha);
#ifdef LIGHTMAP
#ifndef LIGHTMAPEXCLUDED
#ifdef USELIGHTMAPASSHADOWMAP
finalColor=vec4f(finalColor.rgb*lightmapColor.rgb,finalColor.a);
#else
finalColor=vec4f(finalColor.rgb+lightmapColor.rgb,finalColor.a);
#endif
#endif
#endif
finalColor=vec4f(finalColor.rgb+finalEmissive,finalColor.a);
#define CUSTOM_FRAGMENT_BEFORE_FOG
finalColor=max(finalColor,vec4f(0.0));
`;H.IncludesShadersStoreWGSL[l_e]||(H.IncludesShadersStoreWGSL[l_e]=Sje);const c_e="pbrBlockImageProcessing",yje=`#if defined(IMAGEPROCESSINGPOSTPROCESS) || defined(SS_SCATTERING)
#if !defined(SKIPFINALCOLORCLAMP)
finalColor=vec4f(clamp(finalColor.rgb,vec3f(0.),vec3f(30.0)),finalColor.a);
#endif
#else
finalColor=applyImageProcessing(finalColor);
#endif
finalColor=vec4f(finalColor.rgb,finalColor.a*mesh.visibility);
#ifdef PREMULTIPLYALPHA
finalColor=vec4f(finalColor.rgb*finalColor.a,finalColor.a);;
#endif
`;H.IncludesShadersStoreWGSL[c_e]||(H.IncludesShadersStoreWGSL[c_e]=yje);const u_e="pbrBlockPrePass",Mje=`var writeGeometryInfo: f32=select(0.0,1.0,finalColor.a>ALPHATESTVALUE);var fragData: array<vec4<f32>,SCENE_MRT_COUNT>;
#ifdef PREPASS_POSITION
fragData[PREPASS_POSITION_INDEX]= vec4f(fragmentInputs.vPositionW,writeGeometryInfo);
#endif
#ifdef PREPASS_LOCAL_POSITION
fragData[PREPASS_LOCAL_POSITION_INDEX]=vec4f(fragmentInputs.vPosition,writeGeometryInfo);
#endif
#ifdef PREPASS_VELOCITY
var a: vec2f=(fragmentInputs.vCurrentPosition.xy/fragmentInputs.vCurrentPosition.w)*0.5+0.5;var b: vec2f=(fragmentInputs.vPreviousPosition.xy/fragmentInputs.vPreviousPosition.w)*0.5+0.5;var velocity: vec2f=abs(a-b);velocity= vec2f(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;fragData[PREPASS_VELOCITY_INDEX]= vec4f(velocity,0.0,writeGeometryInfo);
#elif defined(PREPASS_VELOCITY_LINEAR)
var velocity : vec2f=vec2f(0.5)*((fragmentInputs.vPreviousPosition.xy/fragmentInputs.vPreviousPosition.w) -
(fragmentInputs.vCurrentPosition.xy/fragmentInputs.vCurrentPosition.w));fragData[PREPASS_VELOCITY_LINEAR_INDEX]=vec4f(velocity,0.0,writeGeometryInfo);
#endif
#ifdef PREPASS_ALBEDO
fragData[PREPASS_ALBEDO_INDEX]=vec4f(surfaceAlbedo,writeGeometryInfo);
#endif
#ifdef PREPASS_ALBEDO_SQRT
var sqAlbedo : vec3f=sqrt(surfaceAlbedo); 
#endif
#ifdef PREPASS_IRRADIANCE
var irradiance : vec3f=finalDiffuse;
#ifndef UNLIT
#ifdef REFLECTION
irradiance+=finalIrradiance;
#endif
#endif
#ifdef SS_SCATTERING
#ifdef PREPASS_COLOR
fragData[PREPASS_COLOR_INDEX]=vec4f(finalColor.rgb-irradiance,finalColor.a); 
#endif
irradiance/=sqAlbedo;fragData[PREPASS_IRRADIANCE_INDEX]=vec4f(clamp(irradiance,vec3f(0.),vec3f(1.)),writeGeometryInfo*uniforms.scatteringDiffusionProfile/255.); 
#else
#ifdef PREPASS_COLOR
fragData[PREPASS_COLOR_INDEX]=finalColor; 
#endif
fragData[PREPASS_IRRADIANCE_INDEX]=vec4f(clamp(irradiance,vec3f(0.),vec3f(1.)),writeGeometryInfo); 
#endif
#elif defined(PREPASS_COLOR)
fragData[PREPASS_COLOR_INDEX]=vec4f(finalColor.rgb,finalColor.a);
#endif
#ifdef PREPASS_DEPTH
fragData[PREPASS_DEPTH_INDEX]=vec4f(fragmentInputs.vViewPos.z,0.0,0.0,writeGeometryInfo); 
#endif
#ifdef PREPASS_SCREENSPACE_DEPTH
fragData[PREPASS_SCREENSPACE_DEPTH_INDEX]=vec4f(fragmentInputs.position.z,0.0,0.0,writeGeometryInfo);
#endif
#ifdef PREPASS_NORMAL
#ifdef PREPASS_NORMAL_WORLDSPACE
fragData[PREPASS_NORMAL_INDEX]=vec4f(normalW,writeGeometryInfo);
#else
fragData[PREPASS_NORMAL_INDEX]=vec4f(normalize((scene.view*vec4f(normalW,0.0)).rgb),writeGeometryInfo);
#endif
#endif
#ifdef PREPASS_WORLD_NORMAL
fragData[PREPASS_WORLD_NORMAL_INDEX]=vec4f(normalW*0.5+0.5,writeGeometryInfo);
#endif
#ifdef PREPASS_ALBEDO_SQRT
fragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4f(sqAlbedo,writeGeometryInfo);
#endif
#ifdef PREPASS_REFLECTIVITY
#ifndef UNLIT
fragData[PREPASS_REFLECTIVITY_INDEX]=vec4f(specularEnvironmentR0,microSurface)*writeGeometryInfo;
#else
fragData[PREPASS_REFLECTIVITY_INDEX]=vec4f(0.0,0.0,0.0,1.0)*writeGeometryInfo;
#endif
#endif
#if SCENE_MRT_COUNT>0
fragmentOutputs.fragData0=fragData[0];
#endif
#if SCENE_MRT_COUNT>1
fragmentOutputs.fragData1=fragData[1];
#endif
#if SCENE_MRT_COUNT>2
fragmentOutputs.fragData2=fragData[2];
#endif
#if SCENE_MRT_COUNT>3
fragmentOutputs.fragData3=fragData[3];
#endif
#if SCENE_MRT_COUNT>4
fragmentOutputs.fragData4=fragData[4];
#endif
#if SCENE_MRT_COUNT>5
fragmentOutputs.fragData5=fragData[5];
#endif
#if SCENE_MRT_COUNT>6
fragmentOutputs.fragData6=fragData[6];
#endif
#if SCENE_MRT_COUNT>7
fragmentOutputs.fragData7=fragData[7];
#endif
`;H.IncludesShadersStoreWGSL[u_e]||(H.IncludesShadersStoreWGSL[u_e]=Mje);const h_e="oitFragment",Eje=`#ifdef ORDER_INDEPENDENT_TRANSPARENCY
var fragDepth: f32=fragmentInputs.position.z; 
#ifdef ORDER_INDEPENDENT_TRANSPARENCY_16BITS
var halfFloat: u32=pack2x16float( vec2f(fragDepth));var full: vec2f=unpack2x16float(halfFloat);fragDepth=full.x;
#endif
var fragCoord: vec2i=vec2i(fragmentInputs.position.xy);var lastDepth: vec2f=textureLoad(oitDepthSampler,fragCoord,0).rg;var lastFrontColor: vec4f=textureLoad(oitFrontColorSampler,fragCoord,0);fragmentOutputs.depth=vec2f(-MAX_DEPTH);fragmentOutputs.frontColor=lastFrontColor;fragmentOutputs.backColor= vec4f(0.0);
#ifdef USE_REVERSE_DEPTHBUFFER
var furthestDepth: f32=-lastDepth.x;var nearestDepth: f32=lastDepth.y;
#else
var nearestDepth: f32=-lastDepth.x;var furthestDepth: f32=lastDepth.y;
#endif
var alphaMultiplier: f32=1.0-lastFrontColor.a;
#ifdef USE_REVERSE_DEPTHBUFFER
if (fragDepth>nearestDepth || fragDepth<furthestDepth) {
#else
if (fragDepth<nearestDepth || fragDepth>furthestDepth) {
#endif
return fragmentOutputs;}
#ifdef USE_REVERSE_DEPTHBUFFER
if (fragDepth<nearestDepth && fragDepth>furthestDepth) {
#else
if (fragDepth>nearestDepth && fragDepth<furthestDepth) {
#endif
fragmentOutputs.depth=vec2f(-fragDepth,fragDepth);return fragmentOutputs;}
#endif
`;H.IncludesShadersStoreWGSL[h_e]||(H.IncludesShadersStoreWGSL[h_e]=Eje);const d_e="pbrDebug",Tje=`#if DEBUGMODE>0
if (input.vClipSpacePosition.x/input.vClipSpacePosition.w>=uniforms.vDebugMode.x) {var color: vec3f;
#if DEBUGMODE==1
color=fragmentInputs.vPositionW.rgb;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==2 && defined(NORMAL)
color=fragmentInputs.vNormalW.rgb;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==3 && defined(BUMP) || DEBUGMODE==3 && defined(PARALLAX) || DEBUGMODE==3 && defined(ANISOTROPIC)
color=TBN[0];
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==4 && defined(BUMP) || DEBUGMODE==4 && defined(PARALLAX) || DEBUGMODE==4 && defined(ANISOTROPIC)
color=TBN[1];
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==5
color=normalW;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==6 && defined(MAINUV1)
color= vec3f(input.vMainUV1,0.0);
#elif DEBUGMODE==7 && defined(MAINUV2)
color= vec3f(input.vMainUV2,0.0);
#elif DEBUGMODE==8 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP)
color=clearcoatOut.TBNClearCoat[0];
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==9 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP)
color=clearcoatOut.TBNClearCoat[1];
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==10 && defined(CLEARCOAT)
color=clearcoatOut.clearCoatNormalW;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==11 && defined(ANISOTROPIC)
color=anisotropicOut.anisotropicNormal;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==12 && defined(ANISOTROPIC)
color=anisotropicOut.anisotropicTangent;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==13 && defined(ANISOTROPIC)
color=anisotropicOut.anisotropicBitangent;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==20 && defined(ALBEDO)
color=albedoTexture.rgb;
#ifndef GAMMAALBEDO
#define DEBUGMODE_GAMMA
#endif
#elif DEBUGMODE==21 && defined(AMBIENT)
color=aoOut.ambientOcclusionColorMap.rgb;
#elif DEBUGMODE==22 && defined(OPACITY)
color=opacityMap.rgb;
#elif DEBUGMODE==23 && defined(EMISSIVE)
color=emissiveColorTex.rgb;
#ifndef GAMMAEMISSIVE
#define DEBUGMODE_GAMMA
#endif
#elif DEBUGMODE==24 && defined(LIGHTMAP)
color=lightmapColor;
#ifndef GAMMALIGHTMAP
#define DEBUGMODE_GAMMA
#endif
#elif DEBUGMODE==25 && defined(REFLECTIVITY) && defined(METALLICWORKFLOW)
color=reflectivityOut.surfaceMetallicColorMap.rgb;
#elif DEBUGMODE==26 && defined(REFLECTIVITY) && !defined(METALLICWORKFLOW)
color=reflectivityOut.surfaceReflectivityColorMap.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==27 && defined(CLEARCOAT) && defined(CLEARCOAT_TEXTURE)
color= vec3f(clearcoatOut.clearCoatMapData.rg,0.0);
#elif DEBUGMODE==28 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)
color=clearcoatOut.clearCoatTintMapData.rgb;
#elif DEBUGMODE==29 && defined(SHEEN) && defined(SHEEN_TEXTURE)
color=sheenOut.sheenMapData.rgb;
#elif DEBUGMODE==30 && defined(ANISOTROPIC) && defined(ANISOTROPIC_TEXTURE)
color=anisotropicOut.anisotropyMapData.rgb;
#elif DEBUGMODE==31 && defined(SUBSURFACE) && defined(SS_THICKNESSANDMASK_TEXTURE)
color=subSurfaceOut.thicknessMap.rgb;
#elif DEBUGMODE==32 && defined(BUMP)
color=textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV).rgb;
#elif DEBUGMODE==40 && defined(SS_REFRACTION)
color=subSurfaceOut.environmentRefraction.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==41 && defined(REFLECTION)
color=reflectionOut.environmentRadiance.rgb;
#ifndef GAMMAREFLECTION
#define DEBUGMODE_GAMMA
#endif
#elif DEBUGMODE==42 && defined(CLEARCOAT) && defined(REFLECTION)
color=clearcoatOut.environmentClearCoatRadiance.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==50
color=diffuseBase.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==51 && defined(SPECULARTERM)
color=specularBase.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==52 && defined(CLEARCOAT)
color=clearCoatBase.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==53 && defined(SHEEN)
color=sheenBase.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==54 && defined(REFLECTION)
color=reflectionOut.environmentIrradiance.rgb;
#ifndef GAMMAREFLECTION
#define DEBUGMODE_GAMMA
#endif
#elif DEBUGMODE==60
color=surfaceAlbedo.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==61
color=clearcoatOut.specularEnvironmentR0;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==62 && defined(METALLICWORKFLOW)
color= vec3f(reflectivityOut.metallicRoughness.r);
#elif DEBUGMODE==71 && defined(METALLICWORKFLOW)
color=reflectivityOut.metallicF0;
#elif DEBUGMODE==63
color= vec3f(roughness);
#elif DEBUGMODE==64
color= vec3f(alphaG);
#elif DEBUGMODE==65
color= vec3f(NdotV);
#elif DEBUGMODE==66 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT)
color=clearcoatOut.clearCoatColor;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==67 && defined(CLEARCOAT)
color= vec3f(clearcoatOut.clearCoatRoughness);
#elif DEBUGMODE==68 && defined(CLEARCOAT)
color= vec3f(clearcoatOut.clearCoatNdotV);
#elif DEBUGMODE==69 && defined(SUBSURFACE) && defined(SS_TRANSLUCENCY)
color=subSurfaceOut.transmittance;
#elif DEBUGMODE==70 && defined(SUBSURFACE) && defined(SS_REFRACTION)
color=subSurfaceOut.refractionTransmittance;
#elif DEBUGMODE==72
color= vec3f(microSurface);
#elif DEBUGMODE==73
color=uniforms.vAlbedoColor.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==74 && !defined(METALLICWORKFLOW)
color=uniforms.vReflectivityColor.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==75
color=uniforms.vEmissiveColor;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==80 && defined(RADIANCEOCCLUSION)
color= vec3f(seo);
#elif DEBUGMODE==81 && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)
color= vec3f(eho);
#elif DEBUGMODE==82 && defined(MS_BRDF_ENERGY_CONSERVATION)
color= vec3f(energyConservationFactor);
#elif DEBUGMODE==83 && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
color=specularEnvironmentReflectance;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==84 && defined(CLEARCOAT) && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
color=clearcoatOut.clearCoatEnvironmentReflectance;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==85 && defined(SHEEN) && defined(REFLECTION)
color=sheenOut.sheenEnvironmentReflectance;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==86 && defined(ALPHABLEND)
color= vec3f(luminanceOverAlpha);
#elif DEBUGMODE==87
color= vec3f(alpha);
#elif DEBUGMODE==88 && defined(ALBEDO)
color= vec3f(albedoTexture.a);
#elif DEBUGMODE==89
color=aoOut.ambientOcclusionColor;
#else
var stripeWidth: f32=30.;var stripePos: f32=abs(floor(input.position.x/stripeWidth));var whichColor: f32=((stripePos)%(2.));var color1: vec3f= vec3f(.6,.2,.2);var color2: vec3f= vec3f(.3,.1,.1);color=mix(color1,color2,whichColor);
#endif
color*=uniforms.vDebugMode.y;
#ifdef DEBUGMODE_NORMALIZE
color=normalize(color)*0.5+0.5;
#endif
#ifdef DEBUGMODE_GAMMA
color=toGammaSpaceVec3(color);
#endif
fragmentOutputs.color=vec4f(color,1.0);
#ifdef PREPASS
fragmentOutputs.fragData0=toLinearSpaceVec3(color); 
fragmentOutputs.fragData1=vec4f(0.,0.,0.,0.); 
#endif
#ifdef DEBUGMODE_FORCERETURN
return fragmentOutputs;
#endif
}
#endif
`;H.IncludesShadersStoreWGSL[d_e]||(H.IncludesShadersStoreWGSL[d_e]=Tje);const _se="pbrPixelShader",f_e=`#define CUSTOM_FRAGMENT_BEGIN
#include<prePassDeclaration>[SCENE_MRT_COUNT]
#include<oitDeclaration>
#ifndef FROMLINEARSPACE
#define FROMLINEARSPACE
#endif
#include<pbrUboDeclaration>
#include<pbrFragmentExtraDeclaration>
#include<lightUboDeclaration>[0..maxSimultaneousLights]
#include<pbrFragmentSamplersDeclaration>
#include<imageProcessingDeclaration>
#include<clipPlaneFragmentDeclaration>
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
#include<helperFunctions>
#include<subSurfaceScatteringFunctions>
#include<importanceSampling>
#include<pbrHelperFunctions>
#include<imageProcessingFunctions>
#include<shadowsFragmentFunctions>
#include<harmonicsFunctions>
#include<pbrDirectLightingSetupFunctions>
#include<pbrDirectLightingFalloffFunctions>
#include<pbrBRDFFunctions>
#include<hdrFilteringFunctions>
#include<pbrDirectLightingFunctions>
#include<pbrIBLFunctions>
#include<bumpFragmentMainFunctions>
#include<bumpFragmentFunctions>
#ifdef REFLECTION
#include<reflectionFunction>
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
#include<pbrBlockAlbedoOpacity>
#include<pbrBlockReflectivity>
#include<pbrBlockAmbientOcclusion>
#include<pbrBlockAlphaFresnel>
#include<pbrBlockAnisotropic>
#include<pbrBlockReflection>
#include<pbrBlockSheen>
#include<pbrBlockClearcoat>
#include<pbrBlockIridescence>
#include<pbrBlockSubSurface>
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
#include<pbrBlockNormalGeometric>
#include<bumpFragment>
#include<pbrBlockNormalFinal>
var albedoOpacityOut: albedoOpacityOutParams;
#ifdef ALBEDO
var albedoTexture: vec4f=textureSample(albedoSampler,albedoSamplerSampler,fragmentInputs.vAlbedoUV+uvOffset);
#endif
#ifdef BASEWEIGHT
var baseWeightTexture: vec4f=textureSample(baseWeightSampler,baseWeightSamplerSampler,fragmentInputs.vBaseWeightUV+uvOffset);
#endif
#ifdef OPACITY
var opacityMap: vec4f=textureSample(opacitySampler,opacitySamplerSampler,fragmentInputs.vOpacityUV+uvOffset);
#endif
#ifdef DECAL
var decalColor: vec4f=textureSample(decalSampler,decalSamplerSampler,fragmentInputs.vDecalUV+uvOffset);
#endif
albedoOpacityOut=albedoOpacityBlock(
uniforms.vAlbedoColor
#ifdef ALBEDO
,albedoTexture
,uniforms.vAlbedoInfos
#endif
,uniforms.baseWeight
#ifdef BASEWEIGHT
,baseWeightTexture
,uniforms.vBaseWeightInfos
#endif
#ifdef OPACITY
,opacityMap
,uniforms.vOpacityInfos
#endif
#ifdef DETAIL
,detailColor
,uniforms.vDetailInfos
#endif
#ifdef DECAL
,decalColor
,uniforms.vDecalInfos
#endif
);var surfaceAlbedo: vec3f=albedoOpacityOut.surfaceAlbedo;var alpha: f32=albedoOpacityOut.alpha;
#define CUSTOM_FRAGMENT_UPDATE_ALPHA
#include<depthPrePass>
#define CUSTOM_FRAGMENT_BEFORE_LIGHTS
var aoOut: ambientOcclusionOutParams;
#ifdef AMBIENT
var ambientOcclusionColorMap: vec3f=textureSample(ambientSampler,ambientSamplerSampler,fragmentInputs.vAmbientUV+uvOffset).rgb;
#endif
aoOut=ambientOcclusionBlock(
#ifdef AMBIENT
ambientOcclusionColorMap,
uniforms.vAmbientInfos
#endif
);
#include<pbrBlockLightmapInit>
#ifdef UNLIT
var diffuseBase: vec3f= vec3f(1.,1.,1.);
#else
var baseColor: vec3f=surfaceAlbedo;var reflectivityOut: reflectivityOutParams;
#if defined(REFLECTIVITY)
var surfaceMetallicOrReflectivityColorMap: vec4f=textureSample(reflectivitySampler,reflectivitySamplerSampler,fragmentInputs.vReflectivityUV+uvOffset);var baseReflectivity: vec4f=surfaceMetallicOrReflectivityColorMap;
#ifndef METALLICWORKFLOW
#ifdef REFLECTIVITY_GAMMA
surfaceMetallicOrReflectivityColorMap=toLinearSpaceVec4(surfaceMetallicOrReflectivityColorMap);
#endif
surfaceMetallicOrReflectivityColorMap=vec4f(surfaceMetallicOrReflectivityColorMap.rgb*uniforms.vReflectivityInfos.y,surfaceMetallicOrReflectivityColorMap.a);
#endif
#endif
#if defined(MICROSURFACEMAP)
var microSurfaceTexel: vec4f=textureSample(microSurfaceSampler,microSurfaceSamplerSampler,fragmentInputs.vMicroSurfaceSamplerUV+uvOffset)*uniforms.vMicroSurfaceSamplerInfos.y;
#endif
#ifdef METALLICWORKFLOW
var metallicReflectanceFactors: vec4f=uniforms.vMetallicReflectanceFactors;
#ifdef REFLECTANCE
var reflectanceFactorsMap: vec4f=textureSample(reflectanceSampler,reflectanceSamplerSampler,fragmentInputs.vReflectanceUV+uvOffset);
#ifdef REFLECTANCE_GAMMA
reflectanceFactorsMap=toLinearSpaceVec4(reflectanceFactorsMap);
#endif
metallicReflectanceFactors=vec4f(metallicReflectanceFactors.rgb*reflectanceFactorsMap.rgb,metallicReflectanceFactors.a);
#endif
#ifdef METALLIC_REFLECTANCE
var metallicReflectanceFactorsMap: vec4f=textureSample(metallicReflectanceSampler,metallicReflectanceSamplerSampler,fragmentInputs.vMetallicReflectanceUV+uvOffset);
#ifdef METALLIC_REFLECTANCE_GAMMA
metallicReflectanceFactorsMap=toLinearSpaceVec4(metallicReflectanceFactorsMap);
#endif
#ifndef METALLIC_REFLECTANCE_USE_ALPHA_ONLY
metallicReflectanceFactors=vec4f(metallicReflectanceFactors.rgb*metallicReflectanceFactorsMap.rgb,metallicReflectanceFactors.a);
#endif
metallicReflectanceFactors*=metallicReflectanceFactorsMap.a;
#endif
#endif
reflectivityOut=reflectivityBlock(
uniforms.vReflectivityColor
#ifdef METALLICWORKFLOW
,surfaceAlbedo
,metallicReflectanceFactors
#endif
#ifdef REFLECTIVITY
,uniforms.vReflectivityInfos
,surfaceMetallicOrReflectivityColorMap
#endif
#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)
,aoOut.ambientOcclusionColor
#endif
#ifdef MICROSURFACEMAP
,microSurfaceTexel
#endif
#ifdef DETAIL
,detailColor
,uniforms.vDetailInfos
#endif
);var microSurface: f32=reflectivityOut.microSurface;var roughness: f32=reflectivityOut.roughness;
#ifdef METALLICWORKFLOW
surfaceAlbedo=reflectivityOut.surfaceAlbedo;
#endif
#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)
aoOut.ambientOcclusionColor=reflectivityOut.ambientOcclusionColor;
#endif
#ifdef ALPHAFRESNEL
#if defined(ALPHATEST) || defined(ALPHABLEND)
var alphaFresnelOut: alphaFresnelOutParams;alphaFresnelOut=alphaFresnelBlock(
normalW,
viewDirectionW,
alpha,
microSurface
);alpha=alphaFresnelOut.alpha;
#endif
#endif
#include<pbrBlockGeometryInfo>
#ifdef ANISOTROPIC
var anisotropicOut: anisotropicOutParams;
#ifdef ANISOTROPIC_TEXTURE
var anisotropyMapData: vec3f=textureSample(anisotropySampler,anisotropySamplerSampler,fragmentInputs.vAnisotropyUV+uvOffset).rgb*uniforms.vAnisotropyInfos.y;
#endif
anisotropicOut=anisotropicBlock(
uniforms.vAnisotropy,
roughness,
#ifdef ANISOTROPIC_TEXTURE
anisotropyMapData,
#endif
TBN,
normalW,
viewDirectionW
);
#endif
#ifdef REFLECTION
var reflectionOut: reflectionOutParams;
#ifndef USE_CUSTOM_REFLECTION
reflectionOut=reflectionBlock(
fragmentInputs.vPositionW
,normalW
,alphaG
,uniforms.vReflectionMicrosurfaceInfos
,uniforms.vReflectionInfos
,uniforms.vReflectionColor
#ifdef ANISOTROPIC
,anisotropicOut
#endif
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
,NdotVUnclamped
#endif
#ifdef LINEARSPECULARREFLECTION
,roughness
#endif
,reflectionSampler
,reflectionSamplerSampler
#if defined(NORMAL) && defined(USESPHERICALINVERTEX)
,fragmentInputs.vEnvironmentIrradiance
#endif
#if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
,uniforms.reflectionMatrix
#endif
#ifdef USEIRRADIANCEMAP
,irradianceSampler
,irradianceSamplerSampler
#endif
#ifndef LODBASEDMICROSFURACE
,reflectionLowSampler
,reflectionLowSamplerSampler
,reflectionHighSampler
,reflectionHighSamplerSampler
#endif
#ifdef REALTIME_FILTERING
,uniforms.vReflectionFilteringInfo
#ifdef IBL_CDF_FILTERING
,icdfSampler
,icdfSamplerSampler
#endif
#endif
);
#else
#define CUSTOM_REFLECTION
#endif
#endif
#include<pbrBlockReflectance0>
#ifdef SHEEN
var sheenOut: sheenOutParams;
#ifdef SHEEN_TEXTURE
var sheenMapData: vec4f=textureSample(sheenSampler,sheenSamplerSampler,fragmentInputs.vSheenUV+uvOffset);
#endif
#if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)
var sheenMapRoughnessData: vec4f=textureSample(sheenRoughnessSampler,sheenRoughnessSamplerSampler,fragmentInputs.vSheenRoughnessUV+uvOffset)*uniforms.vSheenInfos.w;
#endif
sheenOut=sheenBlock(
uniforms.vSheenColor
#ifdef SHEEN_ROUGHNESS
,uniforms.vSheenRoughness
#if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)
,sheenMapRoughnessData
#endif
#endif
,roughness
#ifdef SHEEN_TEXTURE
,sheenMapData
,uniforms.vSheenInfos.y
#endif
,reflectance
#ifdef SHEEN_LINKWITHALBEDO
,baseColor
,surfaceAlbedo
#endif
#ifdef ENVIRONMENTBRDF
,NdotV
,environmentBrdf
#endif
#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)
,AARoughnessFactors
,uniforms.vReflectionMicrosurfaceInfos
,uniforms.vReflectionInfos
,uniforms.vReflectionColor
,uniforms.vLightingIntensity
,reflectionSampler
,reflectionSamplerSampler
,reflectionOut.reflectionCoords
,NdotVUnclamped
#ifndef LODBASEDMICROSFURACE
,reflectionLowSampler
,reflectionLowSamplerSampler
,reflectionHighSampler
,reflectionHighSamplerSampler
#endif
#ifdef REALTIME_FILTERING
,vReflectionFilteringInfo
#endif
#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)
,seo
#endif
#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)
,eho
#endif
#endif
);
#ifdef SHEEN_LINKWITHALBEDO
surfaceAlbedo=sheenOut.surfaceAlbedo;
#endif
#endif
#ifdef CLEARCOAT
#ifdef CLEARCOAT_TEXTURE
var clearCoatMapData: vec2f=textureSample(clearCoatSampler,clearCoatSamplerSampler,fragmentInputs.vClearCoatUV+uvOffset).rg*uniforms.vClearCoatInfos.y;
#endif
#endif
#ifdef IRIDESCENCE
var iridescenceOut: iridescenceOutParams;
#ifdef IRIDESCENCE_TEXTURE
var iridescenceMapData: vec2f=textureSample(iridescenceSampler,iridescenceSamplerSampler,fragmentInputs.vIridescenceUV+uvOffset).rg*uniforms.vIridescenceInfos.y;
#endif
#ifdef IRIDESCENCE_THICKNESS_TEXTURE
var iridescenceThicknessMapData: vec2f=textureSample(iridescenceThicknessSampler,iridescenceThicknessSamplerSampler,fragmentInputs.vIridescenceThicknessUV+uvOffset).rg*uniforms.vIridescenceInfos.w;
#endif
iridescenceOut=iridescenceBlock(
uniforms.vIridescenceParams
,NdotV
,specularEnvironmentR0
#ifdef IRIDESCENCE_TEXTURE
,iridescenceMapData
#endif
#ifdef IRIDESCENCE_THICKNESS_TEXTURE
,iridescenceThicknessMapData
#endif
#ifdef CLEARCOAT
,NdotVUnclamped
,uniforms.vClearCoatParams
#ifdef CLEARCOAT_TEXTURE
,clearCoatMapData
#endif
#endif
);var iridescenceIntensity: f32=iridescenceOut.iridescenceIntensity;specularEnvironmentR0=iridescenceOut.specularEnvironmentR0;
#endif
var clearcoatOut: clearcoatOutParams;
#ifdef CLEARCOAT
#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)
var clearCoatMapRoughnessData: vec4f=textureSample(clearCoatRoughnessSampler,clearCoatRoughnessSamplerSampler,fragmentInputs.vClearCoatRoughnessUV+uvOffset)*uniforms.vClearCoatInfos.w;
#endif
#if defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)
var clearCoatTintMapData: vec4f=textureSample(clearCoatTintSampler,clearCoatTintSamplerSampler,fragmentInputs.vClearCoatTintUV+uvOffset);
#endif
#ifdef CLEARCOAT_BUMP
var clearCoatBumpMapData: vec4f=textureSample(clearCoatBumpSampler,clearCoatBumpSamplerSampler,fragmentInputs.vClearCoatBumpUV+uvOffset);
#endif
clearcoatOut=clearcoatBlock(
fragmentInputs.vPositionW
,geometricNormalW
,viewDirectionW
,uniforms.vClearCoatParams
#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)
,clearCoatMapRoughnessData
#endif
,specularEnvironmentR0
#ifdef CLEARCOAT_TEXTURE
,clearCoatMapData
#endif
#ifdef CLEARCOAT_TINT
,uniforms.vClearCoatTintParams
,uniforms.clearCoatColorAtDistance
,uniforms.vClearCoatRefractionParams
#ifdef CLEARCOAT_TINT_TEXTURE
,clearCoatTintMapData
#endif
#endif
#ifdef CLEARCOAT_BUMP
,uniforms.vClearCoatBumpInfos
,clearCoatBumpMapData
,fragmentInputs.vClearCoatBumpUV
#if defined(TANGENT) && defined(NORMAL)
,mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2)
#else
,uniforms.vClearCoatTangentSpaceParams
#endif
#ifdef OBJECTSPACE_NORMALMAP
,uniforms.normalMatrix
#endif
#endif
#if defined(FORCENORMALFORWARD) && defined(NORMAL)
,faceNormal
#endif
#ifdef REFLECTION
,uniforms.vReflectionMicrosurfaceInfos
,uniforms.vReflectionInfos
,uniforms.vReflectionColor
,uniforms.vLightingIntensity
,reflectionSampler
,reflectionSamplerSampler
#ifndef LODBASEDMICROSFURACE
,reflectionLowSampler
,reflectionLowSamplerSampler
,reflectionHighSampler
,reflectionHighSamplerSampler
#endif
#ifdef REALTIME_FILTERING
,uniforms.vReflectionFilteringInfo
#endif
#endif
#if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)
,select(-1.,1.,fragmentInputs.frontFacing)
#endif
);
#else
clearcoatOut.specularEnvironmentR0=specularEnvironmentR0;
#endif
#include<pbrBlockReflectance>
var subSurfaceOut: subSurfaceOutParams;
#ifdef SUBSURFACE
#ifdef SS_THICKNESSANDMASK_TEXTURE
var thicknessMap: vec4f=textureSample(thicknessSampler,thicknessSamplerSampler,fragmentInputs.vThicknessUV+uvOffset);
#endif
#ifdef SS_REFRACTIONINTENSITY_TEXTURE
var refractionIntensityMap: vec4f=textureSample(refractionIntensitySampler,refractionIntensitySamplerSampler,fragmentInputs.vRefractionIntensityUV+uvOffset);
#endif
#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE
var translucencyIntensityMap: vec4f=textureSample(translucencyIntensitySampler,translucencyIntensitySamplerSampler,fragmentInputs.vTranslucencyIntensityUV+uvOffset);
#endif
#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
var translucencyColorMap: vec4f=textureSample(translucencyColorSampler,translucencyColorSamplerSampler,fragmentInputs.vTranslucencyColorUV+uvOffset);
#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE_GAMMA
translucencyColorMap=toLinearSpaceVec4(translucencyColorMap);
#endif
#endif
subSurfaceOut=subSurfaceBlock(
uniforms.vSubSurfaceIntensity
,uniforms.vThicknessParam
,uniforms.vTintColor
,normalW
,specularEnvironmentReflectance
#ifdef SS_THICKNESSANDMASK_TEXTURE
,thicknessMap
#endif
#ifdef SS_REFRACTIONINTENSITY_TEXTURE
,refractionIntensityMap
#endif
#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE
,translucencyIntensityMap
#endif
#ifdef REFLECTION
#ifdef SS_TRANSLUCENCY
,uniforms.reflectionMatrix
#ifdef USESPHERICALFROMREFLECTIONMAP
#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)
,reflectionOut.irradianceVector
#endif
#if defined(REALTIME_FILTERING)
,reflectionSampler
,reflectionSamplerSampler
,vReflectionFilteringInfo
#ifdef IBL_CDF_FILTERING
,icdfSampler
,icdfSamplerSampler
#endif
#endif
#endif
#ifdef USEIRRADIANCEMAP
,irradianceSampler
,irradianceSamplerSampler
#endif
#endif
#endif
#if defined(SS_REFRACTION) || defined(SS_TRANSLUCENCY)
,surfaceAlbedo
#endif
#ifdef SS_REFRACTION
,fragmentInputs.vPositionW
,viewDirectionW
,scene.view
,uniforms.vRefractionInfos
,uniforms.refractionMatrix
,uniforms.vRefractionMicrosurfaceInfos
,uniforms.vLightingIntensity
#ifdef SS_LINKREFRACTIONTOTRANSPARENCY
,alpha
#endif
#ifdef SS_LODINREFRACTIONALPHA
,NdotVUnclamped
#endif
#ifdef SS_LINEARSPECULARREFRACTION
,roughness
#endif
,alphaG
,refractionSampler
,refractionSamplerSampler
#ifndef LODBASEDMICROSFURACE
,refractionLowSampler
,refractionLowSamplerSampler
,refractionHighSampler
,refractionHighSamplerSampler
#endif
#ifdef ANISOTROPIC
,anisotropicOut
#endif
#ifdef REALTIME_FILTERING
,uniforms.vRefractionFilteringInfo
#endif
#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC
,uniforms.vRefractionPosition
,uniforms.vRefractionSize
#endif
#ifdef SS_DISPERSION
,dispersion
#endif
#endif
#ifdef SS_TRANSLUCENCY
,uniforms.vDiffusionDistance
,uniforms.vTranslucencyColor
#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
,translucencyColorMap
#endif
#endif
);
#ifdef SS_REFRACTION
surfaceAlbedo=subSurfaceOut.surfaceAlbedo;
#ifdef SS_LINKREFRACTIONTOTRANSPARENCY
alpha=subSurfaceOut.alpha;
#endif
#endif
#else
subSurfaceOut.specularEnvironmentReflectance=specularEnvironmentReflectance;
#endif
#include<pbrBlockDirectLighting>
#include<lightFragment>[0..maxSimultaneousLights]
#include<pbrBlockFinalLitComponents>
#endif 
#include<pbrBlockFinalUnlitComponents>
#define CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION
#include<pbrBlockFinalColorComposition>
#include<logDepthFragment>
#include<fogFragment>(color,finalColor)
#include<pbrBlockImageProcessing>
#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR
#ifdef PREPASS
#include<pbrBlockPrePass>
#endif
#if !defined(PREPASS) && !defined(ORDER_INDEPENDENT_TRANSPARENCY)
fragmentOutputs.color=finalColor;
#endif
#include<oitFragment>
#if ORDER_INDEPENDENT_TRANSPARENCY
if (fragDepth==nearestDepth) {fragmentOutputs.frontColor=vec4f(fragmentOutputs.frontColor.rgb+finalColor.rgb*finalColor.a*alphaMultiplier,1.0-alphaMultiplier*(1.0-finalColor.a));} else {fragmentOutputs.backColor+=finalColor;}
#endif
#include<pbrDebug>
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStoreWGSL[_se]||(H.ShadersStoreWGSL[_se]=f_e);const p_e={name:_se,shader:f_e},m_e=Object.freeze(Object.defineProperty({__proto__:null,pbrPixelShaderWGSL:p_e},Symbol.toStringTag,{value:"Module"})),g_e="decalVertexDeclaration",Lje=`#ifdef DECAL
uniform vec4 vDecalInfos;uniform mat4 decalMatrix;
#endif
`;H.IncludesShadersStore[g_e]||(H.IncludesShadersStore[g_e]=Lje);const __e="pbrVertexDeclaration",Ije=`uniform mat4 view;uniform mat4 viewProjection;
#ifdef MULTIVIEW
mat4 viewProjectionR;
#endif
#ifdef ALBEDO
uniform mat4 albedoMatrix;uniform vec2 vAlbedoInfos;
#endif
#ifdef BASEWEIGHT
uniform mat4 baseWeightMatrix;uniform vec2 vBaseWeightInfos;
#endif
#ifdef AMBIENT
uniform mat4 ambientMatrix;uniform vec4 vAmbientInfos;
#endif
#ifdef OPACITY
uniform mat4 opacityMatrix;uniform vec2 vOpacityInfos;
#endif
#ifdef EMISSIVE
uniform vec2 vEmissiveInfos;uniform mat4 emissiveMatrix;
#endif
#ifdef LIGHTMAP
uniform vec2 vLightmapInfos;uniform mat4 lightmapMatrix;
#endif
#ifdef REFLECTIVITY
uniform vec3 vReflectivityInfos;uniform mat4 reflectivityMatrix;
#endif
#ifdef METALLIC_REFLECTANCE
uniform vec2 vMetallicReflectanceInfos;uniform mat4 metallicReflectanceMatrix;
#endif
#ifdef REFLECTANCE
uniform vec2 vReflectanceInfos;uniform mat4 reflectanceMatrix;
#endif
#ifdef MICROSURFACEMAP
uniform vec2 vMicroSurfaceSamplerInfos;uniform mat4 microSurfaceSamplerMatrix;
#endif
#ifdef BUMP
uniform vec3 vBumpInfos;uniform mat4 bumpMatrix;
#endif
#ifdef POINTSIZE
uniform float pointSize;
#endif
#ifdef REFLECTION
uniform vec2 vReflectionInfos;uniform mat4 reflectionMatrix;
#endif
#ifdef CLEARCOAT
#if defined(CLEARCOAT_TEXTURE) || defined(CLEARCOAT_TEXTURE_ROUGHNESS)
uniform vec4 vClearCoatInfos;
#endif
#ifdef CLEARCOAT_TEXTURE
uniform mat4 clearCoatMatrix;
#endif
#ifdef CLEARCOAT_TEXTURE_ROUGHNESS
uniform mat4 clearCoatRoughnessMatrix;
#endif
#ifdef CLEARCOAT_BUMP
uniform vec2 vClearCoatBumpInfos;uniform mat4 clearCoatBumpMatrix;
#endif
#ifdef CLEARCOAT_TINT_TEXTURE
uniform vec2 vClearCoatTintInfos;uniform mat4 clearCoatTintMatrix;
#endif
#endif
#ifdef IRIDESCENCE
#if defined(IRIDESCENCE_TEXTURE) || defined(IRIDESCENCE_THICKNESS_TEXTURE)
uniform vec4 vIridescenceInfos;
#endif
#ifdef IRIDESCENCE_TEXTURE
uniform mat4 iridescenceMatrix;
#endif
#ifdef IRIDESCENCE_THICKNESS_TEXTURE
uniform mat4 iridescenceThicknessMatrix;
#endif
#endif
#ifdef ANISOTROPIC
#ifdef ANISOTROPIC_TEXTURE
uniform vec2 vAnisotropyInfos;uniform mat4 anisotropyMatrix;
#endif
#endif
#ifdef SHEEN
#if defined(SHEEN_TEXTURE) || defined(SHEEN_TEXTURE_ROUGHNESS)
uniform vec4 vSheenInfos;
#endif
#ifdef SHEEN_TEXTURE
uniform mat4 sheenMatrix;
#endif
#ifdef SHEEN_TEXTURE_ROUGHNESS
uniform mat4 sheenRoughnessMatrix;
#endif
#endif
#ifdef SUBSURFACE
#ifdef SS_REFRACTION
uniform vec4 vRefractionInfos;uniform mat4 refractionMatrix;
#endif
#ifdef SS_THICKNESSANDMASK_TEXTURE
uniform vec2 vThicknessInfos;uniform mat4 thicknessMatrix;
#endif
#ifdef SS_REFRACTIONINTENSITY_TEXTURE
uniform vec2 vRefractionIntensityInfos;uniform mat4 refractionIntensityMatrix;
#endif
#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE
uniform vec2 vTranslucencyIntensityInfos;uniform mat4 translucencyIntensityMatrix;
#endif
#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
uniform vec2 vTranslucencyColorInfos;uniform mat4 translucencyColorMatrix;
#endif
#endif
#ifdef NORMAL
#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
#ifdef USESPHERICALFROMREFLECTIONMAP
#ifdef SPHERICAL_HARMONICS
uniform vec3 vSphericalL00;uniform vec3 vSphericalL1_1;uniform vec3 vSphericalL10;uniform vec3 vSphericalL11;uniform vec3 vSphericalL2_2;uniform vec3 vSphericalL2_1;uniform vec3 vSphericalL20;uniform vec3 vSphericalL21;uniform vec3 vSphericalL22;
#else
uniform vec3 vSphericalX;uniform vec3 vSphericalY;uniform vec3 vSphericalZ;uniform vec3 vSphericalXX_ZZ;uniform vec3 vSphericalYY_ZZ;uniform vec3 vSphericalZZ;uniform vec3 vSphericalXY;uniform vec3 vSphericalYZ;uniform vec3 vSphericalZX;
#endif
#endif
#endif
#endif
#ifdef DETAIL
uniform vec4 vDetailInfos;uniform mat4 detailMatrix;
#endif
#include<decalVertexDeclaration>
#define ADDITIONAL_VERTEX_DECLARATION
`;H.IncludesShadersStore[__e]||(H.IncludesShadersStore[__e]=Ije);const v_e="pbrUboDeclaration",Pje=`layout(std140,column_major) uniform;uniform Material {vec2 vAlbedoInfos;vec2 vBaseWeightInfos;vec4 vAmbientInfos;vec2 vOpacityInfos;vec2 vEmissiveInfos;vec2 vLightmapInfos;vec3 vReflectivityInfos;vec2 vMicroSurfaceSamplerInfos;vec2 vReflectionInfos;vec2 vReflectionFilteringInfo;vec3 vReflectionPosition;vec3 vReflectionSize;vec3 vBumpInfos;mat4 albedoMatrix;mat4 baseWeightMatrix;mat4 ambientMatrix;mat4 opacityMatrix;mat4 emissiveMatrix;mat4 lightmapMatrix;mat4 reflectivityMatrix;mat4 microSurfaceSamplerMatrix;mat4 bumpMatrix;vec2 vTangentSpaceParams;mat4 reflectionMatrix;vec3 vReflectionColor;vec4 vAlbedoColor;float baseWeight;vec4 vLightingIntensity;vec3 vReflectionMicrosurfaceInfos;float pointSize;vec4 vReflectivityColor;vec3 vEmissiveColor;vec3 vAmbientColor;vec2 vDebugMode;vec4 vMetallicReflectanceFactors;vec2 vMetallicReflectanceInfos;mat4 metallicReflectanceMatrix;vec2 vReflectanceInfos;mat4 reflectanceMatrix;vec3 vSphericalL00;vec3 vSphericalL1_1;vec3 vSphericalL10;vec3 vSphericalL11;vec3 vSphericalL2_2;vec3 vSphericalL2_1;vec3 vSphericalL20;vec3 vSphericalL21;vec3 vSphericalL22;vec3 vSphericalX;vec3 vSphericalY;vec3 vSphericalZ;vec3 vSphericalXX_ZZ;vec3 vSphericalYY_ZZ;vec3 vSphericalZZ;vec3 vSphericalXY;vec3 vSphericalYZ;vec3 vSphericalZX;
#define ADDITIONAL_UBO_DECLARATION
};
#include<sceneUboDeclaration>
#include<meshUboDeclaration>
`;H.IncludesShadersStore[v_e]||(H.IncludesShadersStore[v_e]=Pje);const A_e="uvAttributeDeclaration",Oje=`#ifdef UV{X}
attribute vec2 uv{X};
#endif
`;H.IncludesShadersStore[A_e]||(H.IncludesShadersStore[A_e]=Oje);const C_e="mainUVVaryingDeclaration",Rje=`#ifdef MAINUV{X}
varying vec2 vMainUV{X};
#endif
`;H.IncludesShadersStore[C_e]||(H.IncludesShadersStore[C_e]=Rje);const x_e="prePassVertexDeclaration",Dje=`#ifdef PREPASS
#ifdef PREPASS_LOCAL_POSITION
varying vec3 vPosition;
#endif
#ifdef PREPASS_DEPTH
varying vec3 vViewPos;
#endif
#if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
uniform mat4 previousViewProjection;varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;
#endif
#endif
`;H.IncludesShadersStore[x_e]||(H.IncludesShadersStore[x_e]=Dje);const b_e="samplerVertexDeclaration",Nje=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
varying vec2 v_VARYINGNAME_UV;
#endif
`;H.IncludesShadersStore[b_e]||(H.IncludesShadersStore[b_e]=Nje);const S_e="harmonicsFunctions",wje=`#ifdef USESPHERICALFROMREFLECTIONMAP
#ifdef SPHERICAL_HARMONICS
vec3 computeEnvironmentIrradiance(vec3 normal) {return vSphericalL00
+ vSphericalL1_1*(normal.y)
+ vSphericalL10*(normal.z)
+ vSphericalL11*(normal.x)
+ vSphericalL2_2*(normal.y*normal.x)
+ vSphericalL2_1*(normal.y*normal.z)
+ vSphericalL20*((3.0*normal.z*normal.z)-1.0)
+ vSphericalL21*(normal.z*normal.x)
+ vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));}
#else
vec3 computeEnvironmentIrradiance(vec3 normal) {float Nx=normal.x;float Ny=normal.y;float Nz=normal.z;vec3 C1=vSphericalZZ.rgb;vec3 Cx=vSphericalX.rgb;vec3 Cy=vSphericalY.rgb;vec3 Cz=vSphericalZ.rgb;vec3 Cxx_zz=vSphericalXX_ZZ.rgb;vec3 Cyy_zz=vSphericalYY_ZZ.rgb;vec3 Cxy=vSphericalXY.rgb;vec3 Cyz=vSphericalYZ.rgb;vec3 Czx=vSphericalZX.rgb;vec3 a1=Cyy_zz*Ny+Cy;vec3 a2=Cyz*Nz+a1;vec3 b1=Czx*Nz+Cx;vec3 b2=Cxy*Ny+b1;vec3 b3=Cxx_zz*Nx+b2;vec3 t1=Cz *Nz+C1;vec3 t2=a2 *Ny+t1;vec3 t3=b3 *Nx+t2;return t3;}
#endif
#endif
`;H.IncludesShadersStore[S_e]||(H.IncludesShadersStore[S_e]=wje);const y_e="bumpVertexDeclaration",Bje=`#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)
#if defined(TANGENT) && defined(NORMAL) 
varying mat3 vTBN;
#endif
#endif
`;H.IncludesShadersStore[y_e]||(H.IncludesShadersStore[y_e]=Bje);const M_e="prePassVertex",zje=`#ifdef PREPASS_DEPTH
vViewPos=(view*worldPos).rgb;
#endif
#ifdef PREPASS_LOCAL_POSITION
vPosition=positionUpdated.xyz;
#endif
#if (defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && defined(BONES_VELOCITY_ENABLED)
vCurrentPosition=viewProjection*worldPos;
#if NUM_BONE_INFLUENCERS>0
mat4 previousInfluence;previousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];
#if NUM_BONE_INFLUENCERS>1
previousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];
#endif 
#if NUM_BONE_INFLUENCERS>2
previousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];
#endif 
#if NUM_BONE_INFLUENCERS>3
previousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];
#endif
#if NUM_BONE_INFLUENCERS>4
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];
#endif 
#if NUM_BONE_INFLUENCERS>5
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];
#endif 
#if NUM_BONE_INFLUENCERS>6
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];
#endif 
#if NUM_BONE_INFLUENCERS>7
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];
#endif
vPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);
#else
vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
#endif
#endif
`;H.IncludesShadersStore[M_e]||(H.IncludesShadersStore[M_e]=zje);const E_e="uvVariableDeclaration",Fje=`#if !defined(UV{X}) && defined(MAINUV{X})
vec2 uv{X}=vec2(0.,0.);
#endif
#ifdef MAINUV{X}
vMainUV{X}=uv{X};
#endif
`;H.IncludesShadersStore[E_e]||(H.IncludesShadersStore[E_e]=Fje);const T_e="samplerVertexImplementation",kje=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
if (v_INFONAME_==0.)
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uvUpdated,1.0,0.0));}
#ifdef UV2
else if (v_INFONAME_==1.)
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv2Updated,1.0,0.0));}
#endif
#ifdef UV3
else if (v_INFONAME_==2.)
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv3,1.0,0.0));}
#endif
#ifdef UV4
else if (v_INFONAME_==3.)
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv4,1.0,0.0));}
#endif
#ifdef UV5
else if (v_INFONAME_==4.)
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv5,1.0,0.0));}
#endif
#ifdef UV6
else if (v_INFONAME_==5.)
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv6,1.0,0.0));}
#endif
#endif
`;H.IncludesShadersStore[T_e]||(H.IncludesShadersStore[T_e]=kje);const L_e="bumpVertex",Uje=`#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)
#if defined(TANGENT) && defined(NORMAL)
vec3 tbnNormal=normalize(normalUpdated);vec3 tbnTangent=normalize(tangentUpdated.xyz);vec3 tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;vTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);
#endif
#endif
`;H.IncludesShadersStore[L_e]||(H.IncludesShadersStore[L_e]=Uje);const vse="pbrVertexShader",I_e=`#define CUSTOM_VERTEX_EXTENSION
precision highp float;
#include<__decl__pbrVertex>
#define CUSTOM_VERTEX_BEGIN
attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#ifdef TANGENT
attribute vec4 tangent;
#endif
#ifdef UV1
attribute vec2 uv;
#endif
#include<uvAttributeDeclaration>[2..7]
#include<mainUVVaryingDeclaration>[1..7]
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<helperFunctions>
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
#include<prePassVertexDeclaration>
#include<samplerVertexDeclaration>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo)
#include<samplerVertexDeclaration>(_DEFINENAME_,BASEWEIGHT,_VARYINGNAME_,BaseWeight)
#include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)
#include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)
#include<samplerVertexDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)
#include<samplerVertexDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)
#include<samplerVertexDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)
#include<samplerVertexDeclaration>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity)
#include<samplerVertexDeclaration>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler)
#include<samplerVertexDeclaration>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance)
#include<samplerVertexDeclaration>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance)
#include<samplerVertexDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)
#include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)
#ifdef CLEARCOAT
#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat)
#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness)
#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump)
#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint)
#endif
#ifdef IRIDESCENCE
#include<samplerVertexDeclaration>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence)
#include<samplerVertexDeclaration>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness)
#endif
#ifdef SHEEN
#include<samplerVertexDeclaration>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen)
#include<samplerVertexDeclaration>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness)
#endif
#ifdef ANISOTROPIC
#include<samplerVertexDeclaration>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy)
#endif
#ifdef SUBSURFACE
#include<samplerVertexDeclaration>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness)
#include<samplerVertexDeclaration>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity)
#include<samplerVertexDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity)
#include<samplerVertexDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYCOLOR_TEXTURE,_VARYINGNAME_,TranslucencyColor)
#endif
varying vec3 vPositionW;
#if DEBUGMODE>0
varying vec4 vClipSpacePosition;
#endif
#ifdef NORMAL
varying vec3 vNormalW;
#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
varying vec3 vEnvironmentIrradiance;
#include<harmonicsFunctions>
#endif
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
#include<bumpVertexDeclaration>
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightVxFragment>[0..maxSimultaneousLights]
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#ifdef REFLECTIONMAP_SKYBOX
varying vec3 vPositionUVW;
#endif
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
varying vec3 vDirectionW;
#endif
#include<logDepthDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
vec3 positionUpdated=position;
#ifdef NORMAL
vec3 normalUpdated=normal;
#endif
#ifdef TANGENT
vec4 tangentUpdated=tangent;
#endif
#ifdef UV1
vec2 uvUpdated=uv;
#endif
#ifdef UV2
vec2 uv2Updated=uv2;
#endif
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#ifdef REFLECTIONMAP_SKYBOX
vPositionUVW=positionUpdated;
#endif
#define CUSTOM_VERTEX_UPDATE_POSITION
#define CUSTOM_VERTEX_UPDATE_NORMAL
#include<instancesVertex>
#if defined(PREPASS) && ((defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && !defined(BONES_VELOCITY_ENABLED)
vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
#endif
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(positionUpdated,1.0);vPositionW=vec3(worldPos);
#ifdef PREPASS
#include<prePassVertex>
#endif
#ifdef NORMAL
mat3 normalWorld=mat3(finalWorld);
#if defined(INSTANCES) && defined(THIN_INSTANCES)
vNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vNormalW=normalize(normalWorld*vNormalW);
#else
#ifdef NONUNIFORMSCALING
normalWorld=transposeMat3(inverseMat3(normalWorld));
#endif
vNormalW=normalize(normalWorld*normalUpdated);
#endif
#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
vec3 reflectionVector=vec3(reflectionMatrix*vec4(vNormalW,0)).xyz;
#ifdef REFLECTIONMAP_OPPOSITEZ
reflectionVector.z*=-1.0;
#endif
vEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector);
#endif
#endif
#define CUSTOM_VERTEX_UPDATE_WORLDPOS
#ifdef MULTIVIEW
if (gl_ViewID_OVR==0u) {gl_Position=viewProjection*worldPos;} else {gl_Position=viewProjectionR*worldPos;}
#else
gl_Position=viewProjection*worldPos;
#endif
#if DEBUGMODE>0
vClipSpacePosition=gl_Position;
#endif
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
vDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));
#endif
#ifndef UV1
vec2 uvUpdated=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2Updated=vec2(0.,0.);
#endif
#ifdef MAINUV1
vMainUV1=uvUpdated;
#endif
#ifdef MAINUV2
vMainUV2=uv2Updated;
#endif
#include<uvVariableDeclaration>[3..7]
#include<samplerVertexImplementation>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo,_MATRIXNAME_,albedo,_INFONAME_,AlbedoInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,BASEWEIGHT,_VARYINGNAME_,BaseWeight,_MATRIXNAME_,baseWeight,_INFONAME_,BaseWeightInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity,_MATRIXNAME_,reflectivity,_INFONAME_,ReflectivityInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler,_MATRIXNAME_,microSurfaceSampler,_INFONAME_,MicroSurfaceSamplerInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance,_MATRIXNAME_,metallicReflectance,_INFONAME_,MetallicReflectanceInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance,_MATRIXNAME_,reflectance,_INFONAME_,ReflectanceInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)
#ifdef CLEARCOAT
#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat,_MATRIXNAME_,clearCoat,_INFONAME_,ClearCoatInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness,_MATRIXNAME_,clearCoatRoughness,_INFONAME_,ClearCoatInfos.z)
#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump,_MATRIXNAME_,clearCoatBump,_INFONAME_,ClearCoatBumpInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint,_MATRIXNAME_,clearCoatTint,_INFONAME_,ClearCoatTintInfos.x)
#endif
#ifdef IRIDESCENCE
#include<samplerVertexImplementation>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence,_MATRIXNAME_,iridescence,_INFONAME_,IridescenceInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness,_MATRIXNAME_,iridescenceThickness,_INFONAME_,IridescenceInfos.z)
#endif
#ifdef SHEEN
#include<samplerVertexImplementation>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen,_MATRIXNAME_,sheen,_INFONAME_,SheenInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness,_MATRIXNAME_,sheenRoughness,_INFONAME_,SheenInfos.z)
#endif
#ifdef ANISOTROPIC
#include<samplerVertexImplementation>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy,_MATRIXNAME_,anisotropy,_INFONAME_,AnisotropyInfos.x)
#endif
#ifdef SUBSURFACE
#include<samplerVertexImplementation>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness,_MATRIXNAME_,thickness,_INFONAME_,ThicknessInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity,_MATRIXNAME_,refractionIntensity,_INFONAME_,RefractionIntensityInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity,_MATRIXNAME_,translucencyIntensity,_INFONAME_,TranslucencyIntensityInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,SS_TRANSLUCENCYCOLOR_TEXTURE,_VARYINGNAME_,TranslucencyColor,_MATRIXNAME_,translucencyColor,_INFONAME_,TranslucencyColorInfos.x)
#endif
#include<bumpVertex>
#include<clipPlaneVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[vse]||(H.ShadersStore[vse]=I_e);const P_e={name:vse,shader:I_e},O_e=Object.freeze(Object.defineProperty({__proto__:null,pbrVertexShader:P_e},Symbol.toStringTag,{value:"Module"})),R_e="prePassDeclaration",jje=`#ifdef PREPASS
#extension GL_EXT_draw_buffers : require
layout(location=0) out highp vec4 glFragData[{X}];highp vec4 gl_FragColor;
#ifdef PREPASS_LOCAL_POSITION
varying highp vec3 vPosition;
#endif
#ifdef PREPASS_DEPTH
varying highp vec3 vViewPos;
#endif
#if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
varying highp vec4 vCurrentPosition;varying highp vec4 vPreviousPosition;
#endif
#endif
`;H.IncludesShadersStore[R_e]||(H.IncludesShadersStore[R_e]=jje);const D_e="oitDeclaration",Vje=`#ifdef ORDER_INDEPENDENT_TRANSPARENCY
#extension GL_EXT_draw_buffers : require
layout(location=0) out vec2 depth; 
layout(location=1) out vec4 frontColor;layout(location=2) out vec4 backColor;
#define MAX_DEPTH 99999.0
highp vec4 gl_FragColor;uniform sampler2D oitDepthSampler;uniform sampler2D oitFrontColorSampler;
#endif
`;H.IncludesShadersStore[D_e]||(H.IncludesShadersStore[D_e]=Vje);const N_e="decalFragmentDeclaration",Gje=`#ifdef DECAL
uniform vec4 vDecalInfos;
#endif
`;H.IncludesShadersStore[N_e]||(H.IncludesShadersStore[N_e]=Gje);const w_e="pbrFragmentDeclaration",Wje=`uniform vec4 vEyePosition;uniform vec3 vReflectionColor;uniform vec4 vAlbedoColor;uniform float baseWeight;uniform vec4 vLightingIntensity;uniform vec4 vReflectivityColor;uniform vec4 vMetallicReflectanceFactors;uniform vec3 vEmissiveColor;uniform float visibility;uniform vec3 vAmbientColor;
#ifdef ALBEDO
uniform vec2 vAlbedoInfos;
#endif
#ifdef BASEWEIGHT
uniform vec2 vBaseWeightInfos;
#endif
#ifdef AMBIENT
uniform vec4 vAmbientInfos;
#endif
#ifdef BUMP
uniform vec3 vBumpInfos;uniform vec2 vTangentSpaceParams;
#endif
#ifdef OPACITY
uniform vec2 vOpacityInfos;
#endif
#ifdef EMISSIVE
uniform vec2 vEmissiveInfos;
#endif
#ifdef LIGHTMAP
uniform vec2 vLightmapInfos;
#endif
#ifdef REFLECTIVITY
uniform vec3 vReflectivityInfos;
#endif
#ifdef MICROSURFACEMAP
uniform vec2 vMicroSurfaceSamplerInfos;
#endif
#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(SS_REFRACTION) || defined(PREPASS)
uniform mat4 view;
#endif
#ifdef REFLECTION
uniform vec2 vReflectionInfos;
#ifdef REALTIME_FILTERING
uniform vec2 vReflectionFilteringInfo;
#endif
uniform mat4 reflectionMatrix;uniform vec3 vReflectionMicrosurfaceInfos;
#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)
uniform vec3 vReflectionPosition;uniform vec3 vReflectionSize;
#endif
#endif
#if defined(SS_REFRACTION) && defined(SS_USE_LOCAL_REFRACTIONMAP_CUBIC)
uniform vec3 vRefractionPosition;uniform vec3 vRefractionSize;
#endif
#ifdef CLEARCOAT
uniform vec2 vClearCoatParams;uniform vec4 vClearCoatRefractionParams;
#if defined(CLEARCOAT_TEXTURE) || defined(CLEARCOAT_TEXTURE_ROUGHNESS)
uniform vec4 vClearCoatInfos;
#endif
#ifdef CLEARCOAT_TEXTURE
uniform mat4 clearCoatMatrix;
#endif
#ifdef CLEARCOAT_TEXTURE_ROUGHNESS
uniform mat4 clearCoatRoughnessMatrix;
#endif
#ifdef CLEARCOAT_BUMP
uniform vec2 vClearCoatBumpInfos;uniform vec2 vClearCoatTangentSpaceParams;uniform mat4 clearCoatBumpMatrix;
#endif
#ifdef CLEARCOAT_TINT
uniform vec4 vClearCoatTintParams;uniform float clearCoatColorAtDistance;
#ifdef CLEARCOAT_TINT_TEXTURE
uniform vec2 vClearCoatTintInfos;uniform mat4 clearCoatTintMatrix;
#endif
#endif
#endif
#ifdef IRIDESCENCE
uniform vec4 vIridescenceParams;
#if defined(IRIDESCENCE_TEXTURE) || defined(IRIDESCENCE_THICKNESS_TEXTURE)
uniform vec4 vIridescenceInfos;
#endif
#ifdef IRIDESCENCE_TEXTURE
uniform mat4 iridescenceMatrix;
#endif
#ifdef IRIDESCENCE_THICKNESS_TEXTURE
uniform mat4 iridescenceThicknessMatrix;
#endif
#endif
#ifdef ANISOTROPIC
uniform vec3 vAnisotropy;
#ifdef ANISOTROPIC_TEXTURE
uniform vec2 vAnisotropyInfos;uniform mat4 anisotropyMatrix;
#endif
#endif
#ifdef SHEEN
uniform vec4 vSheenColor;
#ifdef SHEEN_ROUGHNESS
uniform float vSheenRoughness;
#endif
#if defined(SHEEN_TEXTURE) || defined(SHEEN_TEXTURE_ROUGHNESS)
uniform vec4 vSheenInfos;
#endif
#ifdef SHEEN_TEXTURE
uniform mat4 sheenMatrix;
#endif
#ifdef SHEEN_TEXTURE_ROUGHNESS
uniform mat4 sheenRoughnessMatrix;
#endif
#endif
#ifdef SUBSURFACE
#ifdef SS_REFRACTION
uniform vec4 vRefractionMicrosurfaceInfos;uniform vec4 vRefractionInfos;uniform mat4 refractionMatrix;
#ifdef REALTIME_FILTERING
uniform vec2 vRefractionFilteringInfo;
#endif
#ifdef SS_DISPERSION
uniform float dispersion;
#endif
#endif
#ifdef SS_THICKNESSANDMASK_TEXTURE
uniform vec2 vThicknessInfos;uniform mat4 thicknessMatrix;
#endif
#ifdef SS_REFRACTIONINTENSITY_TEXTURE
uniform vec2 vRefractionIntensityInfos;uniform mat4 refractionIntensityMatrix;
#endif
#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE
uniform vec2 vTranslucencyIntensityInfos;uniform mat4 translucencyIntensityMatrix;
#endif
uniform vec2 vThicknessParam;uniform vec3 vDiffusionDistance;uniform vec4 vTintColor;uniform vec3 vSubSurfaceIntensity;uniform vec4 vTranslucencyColor;
#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
uniform vec2 vTranslucencyColorInfos;uniform mat4 translucencyColorMatrix;
#endif
#endif
#ifdef PREPASS
#ifdef SS_SCATTERING
uniform float scatteringDiffusionProfile;
#endif
#endif
#if DEBUGMODE>0
uniform vec2 vDebugMode;
#endif
#ifdef DETAIL
uniform vec4 vDetailInfos;
#endif
#include<decalFragmentDeclaration>
#ifdef USESPHERICALFROMREFLECTIONMAP
#ifdef SPHERICAL_HARMONICS
uniform vec3 vSphericalL00;uniform vec3 vSphericalL1_1;uniform vec3 vSphericalL10;uniform vec3 vSphericalL11;uniform vec3 vSphericalL2_2;uniform vec3 vSphericalL2_1;uniform vec3 vSphericalL20;uniform vec3 vSphericalL21;uniform vec3 vSphericalL22;
#else
uniform vec3 vSphericalX;uniform vec3 vSphericalY;uniform vec3 vSphericalZ;uniform vec3 vSphericalXX_ZZ;uniform vec3 vSphericalYY_ZZ;uniform vec3 vSphericalZZ;uniform vec3 vSphericalXY;uniform vec3 vSphericalYZ;uniform vec3 vSphericalZX;
#endif
#endif
#define ADDITIONAL_FRAGMENT_DECLARATION
`;H.IncludesShadersStore[w_e]||(H.IncludesShadersStore[w_e]=Wje);const B_e="pbrFragmentExtraDeclaration",Hje=`varying vec3 vPositionW;
#if DEBUGMODE>0
varying vec4 vClipSpacePosition;
#endif
#include<mainUVVaryingDeclaration>[1..7]
#ifdef NORMAL
varying vec3 vNormalW;
#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
varying vec3 vEnvironmentIrradiance;
#endif
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
`;H.IncludesShadersStore[B_e]||(H.IncludesShadersStore[B_e]=Hje);const z_e="samplerFragmentDeclaration",Yje=`#ifdef _DEFINENAME_
#if _DEFINENAME_DIRECTUV==1
#define v_VARYINGNAME_UV vMainUV1
#elif _DEFINENAME_DIRECTUV==2
#define v_VARYINGNAME_UV vMainUV2
#elif _DEFINENAME_DIRECTUV==3
#define v_VARYINGNAME_UV vMainUV3
#elif _DEFINENAME_DIRECTUV==4
#define v_VARYINGNAME_UV vMainUV4
#elif _DEFINENAME_DIRECTUV==5
#define v_VARYINGNAME_UV vMainUV5
#elif _DEFINENAME_DIRECTUV==6
#define v_VARYINGNAME_UV vMainUV6
#else
varying vec2 v_VARYINGNAME_UV;
#endif
uniform sampler2D _SAMPLERNAME_Sampler;
#endif
`;H.IncludesShadersStore[z_e]||(H.IncludesShadersStore[z_e]=Yje);const F_e="samplerFragmentAlternateDeclaration",Xje=`#ifdef _DEFINENAME_
#if _DEFINENAME_DIRECTUV==1
#define v_VARYINGNAME_UV vMainUV1
#elif _DEFINENAME_DIRECTUV==2
#define v_VARYINGNAME_UV vMainUV2
#elif _DEFINENAME_DIRECTUV==3
#define v_VARYINGNAME_UV vMainUV3
#elif _DEFINENAME_DIRECTUV==4
#define v_VARYINGNAME_UV vMainUV4
#elif _DEFINENAME_DIRECTUV==5
#define v_VARYINGNAME_UV vMainUV5
#elif _DEFINENAME_DIRECTUV==6
#define v_VARYINGNAME_UV vMainUV6
#else
varying vec2 v_VARYINGNAME_UV;
#endif
#endif
`;H.IncludesShadersStore[F_e]||(H.IncludesShadersStore[F_e]=Xje);const k_e="pbrFragmentSamplersDeclaration",Zje=`#include<samplerFragmentDeclaration>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo,_SAMPLERNAME_,albedo)
#include<samplerFragmentDeclaration>(_DEFINENAME_,BASEWEIGHT,_VARYINGNAME_,BaseWeight,_SAMPLERNAME_,baseWeight)
#include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_SAMPLERNAME_,ambient)
#include<samplerFragmentDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_SAMPLERNAME_,opacity)
#include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_SAMPLERNAME_,emissive)
#include<samplerFragmentDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_SAMPLERNAME_,lightmap)
#include<samplerFragmentDeclaration>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity,_SAMPLERNAME_,reflectivity)
#include<samplerFragmentDeclaration>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler,_SAMPLERNAME_,microSurface)
#include<samplerFragmentDeclaration>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance,_SAMPLERNAME_,metallicReflectance)
#include<samplerFragmentDeclaration>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance,_SAMPLERNAME_,reflectance)
#include<samplerFragmentDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)
#ifdef CLEARCOAT
#include<samplerFragmentDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat,_SAMPLERNAME_,clearCoat)
#include<samplerFragmentAlternateDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness)
#if defined(CLEARCOAT_TEXTURE_ROUGHNESS)
uniform sampler2D clearCoatRoughnessSampler;
#endif
#include<samplerFragmentDeclaration>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump,_SAMPLERNAME_,clearCoatBump)
#include<samplerFragmentDeclaration>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint,_SAMPLERNAME_,clearCoatTint)
#endif
#ifdef IRIDESCENCE
#include<samplerFragmentDeclaration>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence,_SAMPLERNAME_,iridescence)
#include<samplerFragmentDeclaration>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness,_SAMPLERNAME_,iridescenceThickness)
#endif
#ifdef SHEEN
#include<samplerFragmentDeclaration>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen,_SAMPLERNAME_,sheen)
#include<samplerFragmentAlternateDeclaration>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness)
#if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS)
uniform sampler2D sheenRoughnessSampler;
#endif
#endif
#ifdef ANISOTROPIC
#include<samplerFragmentDeclaration>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy,_SAMPLERNAME_,anisotropy)
#endif
#ifdef REFLECTION
#ifdef REFLECTIONMAP_3D
#define sampleReflection(s,c) textureCube(s,c)
uniform samplerCube reflectionSampler;
#ifdef LODBASEDMICROSFURACE
#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)
#else
uniform samplerCube reflectionSamplerLow;uniform samplerCube reflectionSamplerHigh;
#endif
#ifdef USEIRRADIANCEMAP
uniform samplerCube irradianceSampler;
#endif
#else
#define sampleReflection(s,c) texture2D(s,c)
uniform sampler2D reflectionSampler;
#ifdef LODBASEDMICROSFURACE
#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)
#else
uniform sampler2D reflectionSamplerLow;uniform sampler2D reflectionSamplerHigh;
#endif
#ifdef USEIRRADIANCEMAP
uniform sampler2D irradianceSampler;
#endif
#endif
#ifdef REFLECTIONMAP_SKYBOX
varying vec3 vPositionUVW;
#else
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
varying vec3 vDirectionW;
#endif
#endif
#endif
#ifdef ENVIRONMENTBRDF
uniform sampler2D environmentBrdfSampler;
#endif
#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
uniform sampler2D areaLightsLTC1Sampler;uniform sampler2D areaLightsLTC2Sampler;
#endif
#ifdef SUBSURFACE
#ifdef SS_REFRACTION
#ifdef SS_REFRACTIONMAP_3D
#define sampleRefraction(s,c) textureCube(s,c)
uniform samplerCube refractionSampler;
#ifdef LODBASEDMICROSFURACE
#define sampleRefractionLod(s,c,l) textureCubeLodEXT(s,c,l)
#else
uniform samplerCube refractionSamplerLow;uniform samplerCube refractionSamplerHigh;
#endif
#else
#define sampleRefraction(s,c) texture2D(s,c)
uniform sampler2D refractionSampler;
#ifdef LODBASEDMICROSFURACE
#define sampleRefractionLod(s,c,l) texture2DLodEXT(s,c,l)
#else
uniform sampler2D refractionSamplerLow;uniform sampler2D refractionSamplerHigh;
#endif
#endif
#endif
#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness,_SAMPLERNAME_,thickness)
#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity,_SAMPLERNAME_,refractionIntensity)
#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity,_SAMPLERNAME_,translucencyIntensity)
#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYCOLOR_TEXTURE,_VARYINGNAME_,TranslucencyColor,_SAMPLERNAME_,translucencyColor)
#endif
#ifdef IBL_CDF_FILTERING
uniform sampler2D icdfSampler;
#endif
`;H.IncludesShadersStore[k_e]||(H.IncludesShadersStore[k_e]=Zje);const U_e="subSurfaceScatteringFunctions",Kje=`bool testLightingForSSS(float diffusionProfile)
{return diffusionProfile<1.;}`;H.IncludesShadersStore[U_e]||(H.IncludesShadersStore[U_e]=Kje);const j_e="importanceSampling",qje=`vec3 hemisphereCosSample(vec2 u) {float phi=2.*PI*u.x;float cosTheta2=1.-u.y;float cosTheta=sqrt(cosTheta2);float sinTheta=sqrt(1.-cosTheta2);return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}
vec3 hemisphereImportanceSampleDggx(vec2 u,float a) {float phi=2.*PI*u.x;float cosTheta2=(1.-u.y)/(1.+(a+1.)*((a-1.)*u.y));float cosTheta=sqrt(cosTheta2);float sinTheta=sqrt(1.-cosTheta2);return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}
vec3 hemisphereImportanceSampleDCharlie(vec2 u,float a) { 
float phi=2.*PI*u.x;float sinTheta=pow(u.y,a/(2.*a+1.));float cosTheta=sqrt(1.-sinTheta*sinTheta);return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}`;H.IncludesShadersStore[j_e]||(H.IncludesShadersStore[j_e]=qje);const V_e="pbrHelperFunctions",Qje=`#define MINIMUMVARIANCE 0.0005
float convertRoughnessToAverageSlope(float roughness)
{return square(roughness)+MINIMUMVARIANCE;}
float fresnelGrazingReflectance(float reflectance0) {float reflectance90=saturate(reflectance0*25.0);return reflectance90;}
vec2 getAARoughnessFactors(vec3 normalVector) {
#ifdef SPECULARAA
vec3 nDfdx=dFdx(normalVector.xyz);vec3 nDfdy=dFdy(normalVector.xyz);float slopeSquare=max(dot(nDfdx,nDfdx),dot(nDfdy,nDfdy));float geometricRoughnessFactor=pow(saturate(slopeSquare),0.333);float geometricAlphaGFactor=sqrt(slopeSquare);geometricAlphaGFactor*=0.75;return vec2(geometricRoughnessFactor,geometricAlphaGFactor);
#else
return vec2(0.);
#endif
}
#ifdef ANISOTROPIC
#ifdef ANISOTROPIC_LEGACY
vec2 getAnisotropicRoughness(float alphaG,float anisotropy) {float alphaT=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE);float alphaB=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE);return vec2(alphaT,alphaB);}
vec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy,float roughness) {vec3 anisotropicFrameDirection;if (anisotropy>=0.0) {anisotropicFrameDirection=B;} else {anisotropicFrameDirection=T;}
vec3 anisotropicFrameTangent=cross(normalize(anisotropicFrameDirection),V);vec3 anisotropicFrameNormal=cross(anisotropicFrameTangent,anisotropicFrameDirection);vec3 anisotropicNormal=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy)));return anisotropicNormal;}
#else
vec2 getAnisotropicRoughness(float alphaG,float anisotropy) {float alphaT=max(mix(alphaG,1.0,anisotropy*anisotropy),MINIMUMVARIANCE);float alphaB=max(alphaG,MINIMUMVARIANCE);return vec2(alphaT,alphaB);}
vec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy,float roughness) {vec3 bentNormal=cross(B,V);bentNormal=normalize(cross(bentNormal,B));float a=square(square(1.0-anisotropy*(1.0-roughness)));bentNormal=normalize(mix(bentNormal,N,a));return bentNormal;}
#endif
#endif
#if defined(CLEARCOAT) || defined(SS_REFRACTION)
vec3 cocaLambert(vec3 alpha,float distance) {return exp(-alpha*distance);}
vec3 cocaLambert(float NdotVRefract,float NdotLRefract,vec3 alpha,float thickness) {return cocaLambert(alpha,(thickness*((NdotLRefract+NdotVRefract)/(NdotLRefract*NdotVRefract))));}
vec3 computeColorAtDistanceInMedia(vec3 color,float distance) {return -log(color)/distance;}
vec3 computeClearCoatAbsorption(float NdotVRefract,float NdotLRefract,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {vec3 clearCoatAbsorption=mix(vec3(1.0),
cocaLambert(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness),
clearCoatIntensity);return clearCoatAbsorption;}
#endif
#ifdef MICROSURFACEAUTOMATIC
float computeDefaultMicroSurface(float microSurface,vec3 reflectivityColor)
{const float kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95;float reflectivityLuminance=getLuminance(reflectivityColor);float reflectivityLuma=sqrt(reflectivityLuminance);microSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;return microSurface;}
#endif
`;H.IncludesShadersStore[V_e]||(H.IncludesShadersStore[V_e]=Qje);const G_e="pbrDirectLightingSetupFunctions",Jje=`struct preLightingInfo
{vec3 lightOffset;float lightDistanceSquared;float lightDistance;float attenuation;vec3 L;vec3 H;float NdotV;float NdotLUnclamped;float NdotL;float VdotH;float roughness;
#ifdef IRIDESCENCE
float iridescenceIntensity;
#endif
#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
vec3 areaLightDiffuse;
#ifdef SPECULARTERM
vec3 areaLightSpecular;vec4 areaLightFresnel;
#endif
#endif
};preLightingInfo computePointAndSpotPreLightingInfo(vec4 lightData,vec3 V,vec3 N,vec3 posW) {preLightingInfo result;result.lightOffset=lightData.xyz-posW;result.lightDistanceSquared=dot(result.lightOffset,result.lightOffset);result.lightDistance=sqrt(result.lightDistanceSquared);result.L=normalize(result.lightOffset);result.H=normalize(V+result.L);result.VdotH=saturate(dot(V,result.H));result.NdotLUnclamped=dot(N,result.L);result.NdotL=saturateEps(result.NdotLUnclamped);return result;}
preLightingInfo computeDirectionalPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {preLightingInfo result;result.lightDistance=length(-lightData.xyz);result.L=normalize(-lightData.xyz);result.H=normalize(V+result.L);result.VdotH=saturate(dot(V,result.H));result.NdotLUnclamped=dot(N,result.L);result.NdotL=saturateEps(result.NdotLUnclamped);return result;}
preLightingInfo computeHemisphericPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {preLightingInfo result;result.NdotL=dot(N,lightData.xyz)*0.5+0.5;result.NdotL=saturateEps(result.NdotL);result.NdotLUnclamped=result.NdotL;
#ifdef SPECULARTERM
result.L=normalize(lightData.xyz);result.H=normalize(V+result.L);result.VdotH=saturate(dot(V,result.H));
#endif
return result;}
#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
#include<ltcHelperFunctions>
preLightingInfo computeAreaPreLightingInfo(sampler2D ltc1,sampler2D ltc2,vec3 viewDirectionW,vec3 vNormal,vec3 vPosition,vec4 lightData,vec3 halfWidth,vec3 halfHeight,float roughness ) 
{preLightingInfo result;result.lightOffset=lightData.xyz-vPosition;result.lightDistanceSquared=dot(result.lightOffset,result.lightOffset);result.lightDistance=sqrt(result.lightDistanceSquared);areaLightData data=computeAreaLightSpecularDiffuseFresnel(ltc1,ltc2,viewDirectionW,vNormal,vPosition,lightData.xyz,halfWidth,halfHeight,roughness);
#ifdef SPECULARTERM
result.areaLightFresnel=data.Fresnel;result.areaLightSpecular=data.Specular; 
#endif
result.areaLightDiffuse=data.Diffuse;return result;}
#endif
`;H.IncludesShadersStore[G_e]||(H.IncludesShadersStore[G_e]=Jje);const W_e="pbrDirectLightingFalloffFunctions",$je=`float computeDistanceLightFalloff_Standard(vec3 lightOffset,float range)
{return max(0.,1.0-length(lightOffset)/range);}
float computeDistanceLightFalloff_Physical(float lightDistanceSquared)
{return 1.0/maxEps(lightDistanceSquared);}
float computeDistanceLightFalloff_GLTF(float lightDistanceSquared,float inverseSquaredRange)
{float lightDistanceFalloff=1.0/maxEps(lightDistanceSquared);float factor=lightDistanceSquared*inverseSquaredRange;float attenuation=saturate(1.0-factor*factor);attenuation*=attenuation;lightDistanceFalloff*=attenuation;return lightDistanceFalloff;}
float computeDistanceLightFalloff(vec3 lightOffset,float lightDistanceSquared,float range,float inverseSquaredRange)
{
#ifdef USEPHYSICALLIGHTFALLOFF
return computeDistanceLightFalloff_Physical(lightDistanceSquared);
#elif defined(USEGLTFLIGHTFALLOFF)
return computeDistanceLightFalloff_GLTF(lightDistanceSquared,inverseSquaredRange);
#else
return computeDistanceLightFalloff_Standard(lightOffset,range);
#endif
}
float computeDirectionalLightFalloff_Standard(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent)
{float falloff=0.0;float cosAngle=maxEps(dot(-lightDirection,directionToLightCenterW));if (cosAngle>=cosHalfAngle)
{falloff=max(0.,pow(cosAngle,exponent));}
return falloff;}
float computeDirectionalLightFalloff_IES(vec3 lightDirection,vec3 directionToLightCenterW,sampler2D iesLightSampler)
{float cosAngle=dot(-lightDirection,directionToLightCenterW);float angle=acos(cosAngle)/PI;return texture2D(iesLightSampler,vec2(angle,0.)).r;}
float computeDirectionalLightFalloff_Physical(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle)
{const float kMinusLog2ConeAngleIntensityRatio=6.64385618977; 
float concentrationKappa=kMinusLog2ConeAngleIntensityRatio/(1.0-cosHalfAngle);vec4 lightDirectionSpreadSG=vec4(-lightDirection*concentrationKappa,-concentrationKappa);float falloff=exp2(dot(vec4(directionToLightCenterW,1.0),lightDirectionSpreadSG));return falloff;}
float computeDirectionalLightFalloff_GLTF(vec3 lightDirection,vec3 directionToLightCenterW,float lightAngleScale,float lightAngleOffset)
{float cd=dot(-lightDirection,directionToLightCenterW);float falloff=saturate(cd*lightAngleScale+lightAngleOffset);falloff*=falloff;return falloff;}
float computeDirectionalLightFalloff(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent,float lightAngleScale,float lightAngleOffset)
{
#ifdef USEPHYSICALLIGHTFALLOFF
return computeDirectionalLightFalloff_Physical(lightDirection,directionToLightCenterW,cosHalfAngle);
#elif defined(USEGLTFLIGHTFALLOFF)
return computeDirectionalLightFalloff_GLTF(lightDirection,directionToLightCenterW,lightAngleScale,lightAngleOffset);
#else
return computeDirectionalLightFalloff_Standard(lightDirection,directionToLightCenterW,cosHalfAngle,exponent);
#endif
}`;H.IncludesShadersStore[W_e]||(H.IncludesShadersStore[W_e]=$je);const H_e="pbrBRDFFunctions",eVe=`#define FRESNEL_MAXIMUM_ON_ROUGH 0.25
#ifdef MS_BRDF_ENERGY_CONSERVATION
vec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);}
#endif
#ifdef ENVIRONMENTBRDF
vec3 getBRDFLookup(float NdotV,float perceptualRoughness) {vec2 UV=vec2(NdotV,perceptualRoughness);vec4 brdfLookup=texture2D(environmentBrdfSampler,UV);
#ifdef ENVIRONMENTBRDF_RGBD
brdfLookup.rgb=fromRGBD(brdfLookup.rgba);
#endif
return brdfLookup.rgb;}
vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 specularEnvironmentR90,const vec3 environmentBrdf) {
#ifdef BRDF_V_HEIGHT_CORRELATED
vec3 reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;
#else
vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;
#endif
return reflectance;}
vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {
#ifdef BRDF_V_HEIGHT_CORRELATED
vec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);
#else
vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;
#endif
return reflectance;}
#endif
/* NOT USED
#if defined(SHEEN) && defined(SHEEN_SOFTER)
float getBRDFLookupCharlieSheen(float NdotV,float perceptualRoughness)
{float c=1.0-NdotV;float c3=c*c*c;return 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));}
#endif
*/
#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)
vec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)
{float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}
#endif
#if defined(SHEEN) && defined(ENVIRONMENTBRDF)
/**
* The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.
* The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table
*/
vec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {vec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;return sheenEnvironmentReflectance;}
#endif
vec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)
{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
float fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)
{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
#ifdef CLEARCOAT
vec3 getR0RemappedForClearCoat(vec3 f0) {
#ifdef CLEARCOAT_DEFAULTIOR
#ifdef MOBILE
return saturate(f0*(f0*0.526868+0.529324)-0.0482256);
#else
return saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);
#endif
#else
vec3 s=sqrt(f0);vec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);return square(t);
#endif
}
#endif
#ifdef IRIDESCENCE
const mat3 XYZ_TO_REC709=mat3(
3.2404542,-0.9692660, 0.0556434,
-1.5371385, 1.8760108,-0.2040259,
-0.4985314, 0.0415560, 1.0572252
);vec3 getIORTfromAirToSurfaceR0(vec3 f0) {vec3 sqrtF0=sqrt(f0);return (1.+sqrtF0)/(1.-sqrtF0);}
vec3 getR0fromIORs(vec3 iorT,float iorI) {return square((iorT-vec3(iorI))/(iorT+vec3(iorI)));}
float getR0fromIORs(float iorT,float iorI) {return square((iorT-iorI)/(iorT+iorI));}
vec3 evalSensitivity(float opd,vec3 shift) {float phase=2.0*PI*opd*1.0e-9;const vec3 val=vec3(5.4856e-13,4.4201e-13,5.2481e-13);const vec3 pos=vec3(1.6810e+06,1.7953e+06,2.2084e+06);const vec3 var=vec3(4.3278e+09,9.3046e+09,6.6121e+09);vec3 xyz=val*sqrt(2.0*PI*var)*cos(pos*phase+shift)*exp(-square(phase)*var);xyz.x+=9.7470e-14*sqrt(2.0*PI*4.5282e+09)*cos(2.2399e+06*phase+shift[0])*exp(-4.5282e+09*square(phase));xyz/=1.0685e-7;vec3 srgb=XYZ_TO_REC709*xyz;return srgb;}
vec3 evalIridescence(float outsideIOR,float eta2,float cosTheta1,float thinFilmThickness,vec3 baseF0) {vec3 I=vec3(1.0);float iridescenceIOR=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));float sinTheta2Sq=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));float cosTheta2Sq=1.0-sinTheta2Sq;if (cosTheta2Sq<0.0) {return I;}
float cosTheta2=sqrt(cosTheta2Sq);float R0=getR0fromIORs(iridescenceIOR,outsideIOR);float R12=fresnelSchlickGGX(cosTheta1,R0,1.);float R21=R12;float T121=1.0-R12;float phi12=0.0;if (iridescenceIOR<outsideIOR) phi12=PI;float phi21=PI-phi12;vec3 baseIOR=getIORTfromAirToSurfaceR0(clamp(baseF0,0.0,0.9999)); 
vec3 R1=getR0fromIORs(baseIOR,iridescenceIOR);vec3 R23=fresnelSchlickGGX(cosTheta2,R1,vec3(1.));vec3 phi23=vec3(0.0);if (baseIOR[0]<iridescenceIOR) phi23[0]=PI;if (baseIOR[1]<iridescenceIOR) phi23[1]=PI;if (baseIOR[2]<iridescenceIOR) phi23[2]=PI;float opd=2.0*iridescenceIOR*thinFilmThickness*cosTheta2;vec3 phi=vec3(phi21)+phi23;vec3 R123=clamp(R12*R23,1e-5,0.9999);vec3 r123=sqrt(R123);vec3 Rs=square(T121)*R23/(vec3(1.0)-R123);vec3 C0=R12+Rs;I=C0;vec3 Cm=Rs-T121;for (int m=1; m<=2; ++m)
{Cm*=r123;vec3 Sm=2.0*evalSensitivity(float(m)*opd,float(m)*phi);I+=Cm*Sm;}
return max(I,vec3(0.0));}
#endif
float normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)
{float a2=square(alphaG);float d=NdotH*NdotH*(a2-1.0)+1.0;return a2/(PI*d*d);}
#ifdef SHEEN
float normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)
{float invR=1./alphaG;float cos2h=NdotH*NdotH;float sin2h=1.-cos2h;return (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);}
#endif
#ifdef ANISOTROPIC
float normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) {float a2=alphaTB.x*alphaTB.y;vec3 v=vec3(alphaTB.y*TdotH,alphaTB.x *BdotH,a2*NdotH);float v2=dot(v,v);float w2=a2/v2;return a2*w2*w2*RECIPROCAL_PI;}
#endif
#ifdef BRDF_V_HEIGHT_CORRELATED
float smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {
#ifdef MOBILE
float GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);float GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);return 0.5/(GGXV+GGXL);
#else
float a2=alphaG*alphaG;float GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);float GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);return 0.5/(GGXV+GGXL);
#endif
}
#else
float smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)
{
#ifdef MOBILE
return 1.0/(dot+alphaG+(1.0-alphaG)*dot ));
#else
float alphaSquared=alphaG*alphaG;return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));
#endif
}
float smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)
{float visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);return visibility;}
#endif
#ifdef ANISOTROPIC
float smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) {float lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));float lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));float v=0.5/(lambdaV+lambdaL);return v;}
#endif
#ifdef CLEARCOAT
float visibility_Kelemen(float VdotH) {return 0.25/(VdotH*VdotH); }
#endif
#ifdef SHEEN
float visibility_Ashikhmin(float NdotL,float NdotV)
{return 1./(4.*(NdotL+NdotV-NdotL*NdotV));}
/* NOT USED
#ifdef SHEEN_SOFTER
float l(float x,float alphaG)
{float oneMinusAlphaSq=(1.0-alphaG)*(1.0-alphaG);float a=mix(21.5473,25.3245,oneMinusAlphaSq);float b=mix(3.82987,3.32435,oneMinusAlphaSq);float c=mix(0.19823,0.16801,oneMinusAlphaSq);float d=mix(-1.97760,-1.27393,oneMinusAlphaSq);float e=mix(-4.32054,-4.85967,oneMinusAlphaSq);return a/(1.0+b*pow(x,c))+d*x+e;}
float lambdaSheen(float cosTheta,float alphaG)
{return abs(cosTheta)<0.5 ? exp(l(cosTheta,alphaG)) : exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));}
float visibility_CharlieSheen(float NdotL,float NdotV,float alphaG)
{float G=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));return G/(4.0*NdotV*NdotL);}
#endif
*/
#endif
float diffuseBRDF_Burley(float NdotL,float NdotV,float VdotH,float roughness) {float diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));float diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));float diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;float fresnel =
(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *
(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);return fresnel/PI;}
#ifdef SS_TRANSLUCENCY
vec3 transmittanceBRDF_Burley(const vec3 tintColor,const vec3 diffusionDistance,float thickness) {vec3 S=1./maxEps(diffusionDistance);vec3 temp=exp((-0.333333333*thickness)*S);return tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);}
float computeWrappedDiffuseNdotL(float NdotL,float w) {float t=1.0+w;float invt2=1.0/square(t);return saturate((NdotL+w)*invt2);}
#endif
`;H.IncludesShadersStore[H_e]||(H.IncludesShadersStore[H_e]=eVe);const Y_e="hdrFilteringFunctions",tVe=`#ifdef NUM_SAMPLES
#if NUM_SAMPLES>0
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
float radicalInverse_VdC(uint bits) 
{bits=(bits<<16u) | (bits>>16u);bits=((bits & 0x55555555u)<<1u) | ((bits & 0xAAAAAAAAu)>>1u);bits=((bits & 0x33333333u)<<2u) | ((bits & 0xCCCCCCCCu)>>2u);bits=((bits & 0x0F0F0F0Fu)<<4u) | ((bits & 0xF0F0F0F0u)>>4u);bits=((bits & 0x00FF00FFu)<<8u) | ((bits & 0xFF00FF00u)>>8u);return float(bits)*2.3283064365386963e-10; }
vec2 hammersley(uint i,uint N)
{return vec2(float(i)/float(N),radicalInverse_VdC(i));}
#else
float vanDerCorpus(int n,int base)
{float invBase=1.0/float(base);float denom =1.0;float result =0.0;for(int i=0; i<32; ++i)
{if(n>0)
{denom =mod(float(n),2.0);result+=denom*invBase;invBase=invBase/2.0;n =int(float(n)/2.0);}}
return result;}
vec2 hammersley(int i,int N)
{return vec2(float(i)/float(N),vanDerCorpus(i,2));}
#endif
float log4(float x) {return log2(x)/2.;}
vec3 uv_to_normal(vec2 uv) {vec3 N;vec2 uvRange=uv;float theta=uvRange.x*2.0*PI;float phi=uvRange.y*PI;N.x=cos(theta)*sin(phi);N.z=sin(theta)*sin(phi);N.y=cos(phi);return N;}
const float NUM_SAMPLES_FLOAT=float(NUM_SAMPLES);const float NUM_SAMPLES_FLOAT_INVERSED=1./NUM_SAMPLES_FLOAT;const float K=4.;
#define inline
vec3 irradiance(samplerCube inputTexture,vec3 inputN,vec2 filteringInfo
#ifdef IBL_CDF_FILTERING
,sampler2D icdfSampler
#endif
)
{vec3 n=normalize(inputN);vec3 result=vec3(0.0);
#ifndef IBL_CDF_FILTERING
vec3 tangent=abs(n.z)<0.999 ? vec3(0.,0.,1.) : vec3(1.,0.,0.);tangent=normalize(cross(tangent,n));vec3 bitangent=cross(n,tangent);mat3 tbn=mat3(tangent,bitangent,n);
#endif
float maxLevel=filteringInfo.y;float dim0=filteringInfo.x;float omegaP=(4.*PI)/(6.*dim0*dim0);
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
for(uint i=0u; i<NUM_SAMPLES; ++i)
#else
for(int i=0; i<NUM_SAMPLES; ++i)
#endif
{vec2 Xi=hammersley(i,NUM_SAMPLES);
#ifdef IBL_CDF_FILTERING
vec2 T;T.x=textureLod(icdfSampler,vec2(Xi.x,0.0),0.0).x;T.y=textureLod(icdfSampler,vec2(T.x,Xi.y),0.0).y;vec3 Ls=uv_to_normal(vec2(1.0-fract(T.x+0.25),T.y));float NoL=dot(n,Ls);
#else
vec3 Ls=hemisphereCosSample(Xi);Ls=normalize(Ls);vec3 Ns=vec3(0.,0.,1.);float NoL=dot(Ns,Ls);
#endif
if (NoL>0.) {
#ifdef IBL_CDF_FILTERING
float pdf=textureLod(icdfSampler,T,0.0).z;vec3 c=textureCubeLodEXT(inputTexture,Ls,0.0).rgb;
#else
float pdf_inversed=PI/NoL;float omegaS=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;float l=log4(omegaS)-log4(omegaP)+log4(K);float mipLevel=clamp(l,0.0,maxLevel);vec3 c=textureCubeLodEXT(inputTexture,tbn*Ls,mipLevel).rgb;
#endif
#ifdef GAMMA_INPUT
c=toLinearSpace(c);
#endif
#ifdef IBL_CDF_FILTERING
vec3 light=pdf<1e-6 ? vec3(0.0) : vec3(1.0)/vec3(pdf)*c;result+=NoL*light;
#else
result+=c;
#endif
}}
result=result*NUM_SAMPLES_FLOAT_INVERSED;return result;}
#define inline
vec3 radiance(float alphaG,samplerCube inputTexture,vec3 inputN,vec2 filteringInfo)
{vec3 n=normalize(inputN);vec3 c=textureCube(inputTexture,n).rgb; 
if (alphaG==0.) {
#ifdef GAMMA_INPUT
c=toLinearSpace(c);
#endif
return c;} else {vec3 result=vec3(0.);vec3 tangent=abs(n.z)<0.999 ? vec3(0.,0.,1.) : vec3(1.,0.,0.);tangent=normalize(cross(tangent,n));vec3 bitangent=cross(n,tangent);mat3 tbn=mat3(tangent,bitangent,n);float maxLevel=filteringInfo.y;float dim0=filteringInfo.x;float omegaP=(4.*PI)/(6.*dim0*dim0);float weight=0.;
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
for(uint i=0u; i<NUM_SAMPLES; ++i)
#else
for(int i=0; i<NUM_SAMPLES; ++i)
#endif
{vec2 Xi=hammersley(i,NUM_SAMPLES);vec3 H=hemisphereImportanceSampleDggx(Xi,alphaG);float NoV=1.;float NoH=H.z;float NoH2=H.z*H.z;float NoL=2.*NoH2-1.;vec3 L=vec3(2.*NoH*H.x,2.*NoH*H.y,NoL);L=normalize(L);if (NoL>0.) {float pdf_inversed=4./normalDistributionFunction_TrowbridgeReitzGGX(NoH,alphaG);float omegaS=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;float l=log4(omegaS)-log4(omegaP)+log4(K);float mipLevel=clamp(float(l),0.0,maxLevel);weight+=NoL;vec3 c=textureCubeLodEXT(inputTexture,tbn*L,mipLevel).rgb;
#ifdef GAMMA_INPUT
c=toLinearSpace(c);
#endif
result+=c*NoL;}}
result=result/weight;return result;}}
#endif
#endif
`;H.IncludesShadersStore[Y_e]||(H.IncludesShadersStore[Y_e]=tVe);const X_e="pbrDirectLightingFunctions",iVe=`#define CLEARCOATREFLECTANCE90 1.0
struct lightingInfo
{vec3 diffuse;
#ifdef SPECULARTERM
vec3 specular;
#endif
#ifdef CLEARCOAT
vec4 clearCoat;
#endif
#ifdef SHEEN
vec3 sheen;
#endif
};float adjustRoughnessFromLightProperties(float roughness,float lightRadius,float lightDistance) {
#if defined(USEPHYSICALLIGHTFALLOFF) || defined(USEGLTFLIGHTFALLOFF)
float lightRoughness=lightRadius/lightDistance;float totalRoughness=saturate(lightRoughness+roughness);return totalRoughness;
#else
return roughness;
#endif
}
vec3 computeHemisphericDiffuseLighting(preLightingInfo info,vec3 lightColor,vec3 groundColor) {return mix(groundColor,lightColor,info.NdotL);}
#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
vec3 computeAreaDiffuseLighting(preLightingInfo info,vec3 lightColor) {return info.areaLightDiffuse*lightColor;}
#endif
vec3 computeDiffuseLighting(preLightingInfo info,vec3 lightColor) {float diffuseTerm=diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness);return diffuseTerm*info.attenuation*info.NdotL*lightColor;}
#define inline
vec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix,vec3 posW){vec4 strq=textureProjectionMatrix*vec4(posW,1.0);strq/=strq.w;vec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;return toLinearSpace(textureColor);}
#ifdef SS_TRANSLUCENCY
vec3 computeDiffuseAndTransmittedLighting(preLightingInfo info,vec3 lightColor,vec3 transmittance,float transmittanceIntensity,vec3 surfaceAlbedo) {vec3 transmittanceNdotL=vec3(0.);float NdotL=absEps(info.NdotLUnclamped);if (info.NdotLUnclamped<0.0) {float wrapNdotL=computeWrappedDiffuseNdotL(NdotL,0.02);float trAdapt=step(0.,info.NdotLUnclamped);transmittanceNdotL=mix(transmittance*wrapNdotL,vec3(wrapNdotL),trAdapt);}
float diffuseTerm=diffuseBRDF_Burley(NdotL,info.NdotV,info.VdotH,info.roughness);return (transmittanceNdotL/PI+(1.0-transmittanceIntensity)*diffuseTerm*surfaceAlbedo*info.NdotL)*info.attenuation*lightColor;}
#endif
#ifdef SPECULARTERM
vec3 computeSpecularLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float roughness=max(info.roughness,geometricRoughnessFactor);float alphaG=convertRoughnessToAverageSlope(roughness);vec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);
#ifdef IRIDESCENCE
fresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);
#endif
float distribution=normalDistributionFunction_TrowbridgeReitzGGX(NdotH,alphaG);
#ifdef BRDF_V_HEIGHT_CORRELATED
float smithVisibility=smithVisibility_GGXCorrelated(info.NdotL,info.NdotV,alphaG);
#else
float smithVisibility=smithVisibility_TrowbridgeReitzGGXFast(info.NdotL,info.NdotV,alphaG);
#endif
vec3 specTerm=fresnel*distribution*smithVisibility;return specTerm*info.attenuation*info.NdotL*lightColor;}
#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
vec3 computeAreaSpecularLighting(preLightingInfo info,vec3 specularColor) {vec3 fresnel=( specularColor*info.areaLightFresnel.x+( vec3( 1.0 )-specularColor )*info.areaLightFresnel.y );return specularColor*fresnel*info.areaLightSpecular;}
#endif
#endif
#ifdef ANISOTROPIC
vec3 computeAnisotropicSpecularLighting(preLightingInfo info,vec3 V,vec3 N,vec3 T,vec3 B,float anisotropy,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float TdotH=dot(T,info.H);float BdotH=dot(B,info.H);float TdotV=dot(T,V);float BdotV=dot(B,V);float TdotL=dot(T,info.L);float BdotL=dot(B,info.L);float alphaG=convertRoughnessToAverageSlope(info.roughness);vec2 alphaTB=getAnisotropicRoughness(alphaG,anisotropy);alphaTB=max(alphaTB,square(geometricRoughnessFactor));vec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);
#ifdef IRIDESCENCE
fresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);
#endif
float distribution=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB);float smithVisibility=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB);vec3 specTerm=fresnel*distribution*smithVisibility;return specTerm*info.attenuation*info.NdotL*lightColor;}
#endif
#ifdef CLEARCOAT
vec4 computeClearCoatLighting(preLightingInfo info,vec3 Ncc,float geometricRoughnessFactor,float clearCoatIntensity,vec3 lightColor) {float NccdotL=saturateEps(dot(Ncc,info.L));float NccdotH=saturateEps(dot(Ncc,info.H));float clearCoatRoughness=max(info.roughness,geometricRoughnessFactor);float alphaG=convertRoughnessToAverageSlope(clearCoatRoughness);float fresnel=fresnelSchlickGGX(info.VdotH,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);fresnel*=clearCoatIntensity;float distribution=normalDistributionFunction_TrowbridgeReitzGGX(NccdotH,alphaG);float kelemenVisibility=visibility_Kelemen(info.VdotH);float clearCoatTerm=fresnel*distribution*kelemenVisibility;return vec4(
clearCoatTerm*info.attenuation*NccdotL*lightColor,
1.0-fresnel
);}
vec3 computeClearCoatLightingAbsorption(float NdotVRefract,vec3 L,vec3 Ncc,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {vec3 LRefract=-refract(L,Ncc,vClearCoatRefractionParams.y);float NdotLRefract=saturateEps(dot(Ncc,LRefract));vec3 absorption=computeClearCoatAbsorption(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness,clearCoatIntensity);return absorption;}
#endif
#ifdef SHEEN
vec3 computeSheenLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float roughness=max(info.roughness,geometricRoughnessFactor);float alphaG=convertRoughnessToAverageSlope(roughness);float fresnel=1.;float distribution=normalDistributionFunction_CharlieSheen(NdotH,alphaG);/*#ifdef SHEEN_SOFTER
float visibility=visibility_CharlieSheen(info.NdotL,info.NdotV,alphaG);
#else */
float visibility=visibility_Ashikhmin(info.NdotL,info.NdotV);/* #endif */
float sheenTerm=fresnel*distribution*visibility;return sheenTerm*info.attenuation*info.NdotL*lightColor;}
#endif
`;H.IncludesShadersStore[X_e]||(H.IncludesShadersStore[X_e]=iVe);const Z_e="pbrIBLFunctions",sVe=`#if defined(REFLECTION) || defined(SS_REFRACTION)
float getLodFromAlphaG(float cubeMapDimensionPixels,float microsurfaceAverageSlope) {float microsurfaceAverageSlopeTexels=cubeMapDimensionPixels*microsurfaceAverageSlope;float lod=log2(microsurfaceAverageSlopeTexels);return lod;}
float getLinearLodFromRoughness(float cubeMapDimensionPixels,float roughness) {float lod=log2(cubeMapDimensionPixels)*roughness;return lod;}
#endif
#if defined(ENVIRONMENTBRDF) && defined(RADIANCEOCCLUSION)
float environmentRadianceOcclusion(float ambientOcclusion,float NdotVUnclamped) {float temp=NdotVUnclamped+ambientOcclusion;return saturate(square(temp)-1.0+ambientOcclusion);}
#endif
#if defined(ENVIRONMENTBRDF) && defined(HORIZONOCCLUSION)
float environmentHorizonOcclusion(vec3 view,vec3 normal,vec3 geometricNormal) {vec3 reflection=reflect(view,normal);float temp=saturate(1.0+1.1*dot(reflection,geometricNormal));return square(temp);}
#endif
#if defined(LODINREFLECTIONALPHA) || defined(SS_LODINREFRACTIONALPHA)
#define UNPACK_LOD(x) (1.0-x)*255.0
float getLodFromAlphaG(float cubeMapDimensionPixels,float alphaG,float NdotV) {float microsurfaceAverageSlope=alphaG;microsurfaceAverageSlope*=sqrt(abs(NdotV));return getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope);}
#endif
`;H.IncludesShadersStore[Z_e]||(H.IncludesShadersStore[Z_e]=sVe);const Ase="bumpFragmentMainFunctions",K_e=`#if defined(BUMP) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(DETAIL)
#if defined(TANGENT) && defined(NORMAL) 
varying mat3 vTBN;
#endif
#ifdef OBJECTSPACE_NORMALMAP
uniform mat4 normalMatrix;
#if defined(WEBGL2) || defined(WEBGPU)
mat4 toNormalMatrix(mat4 wMatrix)
{mat4 ret=inverse(wMatrix);ret=transpose(ret);ret[0][3]=0.;ret[1][3]=0.;ret[2][3]=0.;ret[3]=vec4(0.,0.,0.,1.);return ret;}
#else
mat4 toNormalMatrix(mat4 m)
{float
a00=m[0][0],a01=m[0][1],a02=m[0][2],a03=m[0][3],
a10=m[1][0],a11=m[1][1],a12=m[1][2],a13=m[1][3],
a20=m[2][0],a21=m[2][1],a22=m[2][2],a23=m[2][3],
a30=m[3][0],a31=m[3][1],a32=m[3][2],a33=m[3][3],
b00=a00*a11-a01*a10,
b01=a00*a12-a02*a10,
b02=a00*a13-a03*a10,
b03=a01*a12-a02*a11,
b04=a01*a13-a03*a11,
b05=a02*a13-a03*a12,
b06=a20*a31-a21*a30,
b07=a20*a32-a22*a30,
b08=a20*a33-a23*a30,
b09=a21*a32-a22*a31,
b10=a21*a33-a23*a31,
b11=a22*a33-a23*a32,
det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;mat4 mi=mat4(
a11*b11-a12*b10+a13*b09,
a02*b10-a01*b11-a03*b09,
a31*b05-a32*b04+a33*b03,
a22*b04-a21*b05-a23*b03,
a12*b08-a10*b11-a13*b07,
a00*b11-a02*b08+a03*b07,
a32*b02-a30*b05-a33*b01,
a20*b05-a22*b02+a23*b01,
a10*b10-a11*b08+a13*b06,
a01*b08-a00*b10-a03*b06,
a30*b04-a31*b02+a33*b00,
a21*b02-a20*b04-a23*b00,
a11*b07-a10*b09-a12*b06,
a00*b09-a01*b07+a02*b06,
a31*b01-a30*b03-a32*b00,
a20*b03-a21*b01+a22*b00)/det;return mat4(mi[0][0],mi[1][0],mi[2][0],mi[3][0],
mi[0][1],mi[1][1],mi[2][1],mi[3][1],
mi[0][2],mi[1][2],mi[2][2],mi[3][2],
mi[0][3],mi[1][3],mi[2][3],mi[3][3]);}
#endif
#endif
vec3 perturbNormalBase(mat3 cotangentFrame,vec3 normal,float scale)
{
#ifdef NORMALXYSCALE
normal=normalize(normal*vec3(scale,scale,1.0));
#endif
return normalize(cotangentFrame*normal);}
vec3 perturbNormal(mat3 cotangentFrame,vec3 textureSample,float scale)
{return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}
mat3 cotangent_frame(vec3 normal,vec3 p,vec2 uv,vec2 tangentSpaceParams)
{vec3 dp1=dFdx(p);vec3 dp2=dFdy(p);vec2 duv1=dFdx(uv);vec2 duv2=dFdy(uv);vec3 dp2perp=cross(dp2,normal);vec3 dp1perp=cross(normal,dp1);vec3 tangent=dp2perp*duv1.x+dp1perp*duv2.x;vec3 bitangent=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;float det=max(dot(tangent,tangent),dot(bitangent,bitangent));float invmax=det==0.0 ? 0.0 : inversesqrt(det);return mat3(tangent*invmax,bitangent*invmax,normal);}
#endif
`;H.IncludesShadersStore[Ase]||(H.IncludesShadersStore[Ase]=K_e);const q_e={name:Ase,shader:K_e},rVe=Object.freeze(Object.defineProperty({__proto__:null,bumpFragmentMainFunctions:q_e},Symbol.toStringTag,{value:"Module"})),Cse="bumpFragmentFunctions",Q_e=`#if defined(BUMP)
#include<samplerFragmentDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)
#endif
#if defined(DETAIL)
#include<samplerFragmentDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)
#endif
#if defined(BUMP) && defined(PARALLAX)
const float minSamples=4.;const float maxSamples=15.;const int iMaxSamples=15;vec2 parallaxOcclusion(vec3 vViewDirCoT,vec3 vNormalCoT,vec2 texCoord,float parallaxScale) {float parallaxLimit=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;vec2 vOffsetDir=normalize(vViewDirCoT.xy);vec2 vMaxOffset=vOffsetDir*parallaxLimit;float numSamples=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));float stepSize=1.0/numSamples;float currRayHeight=1.0;vec2 vCurrOffset=vec2(0,0);vec2 vLastOffset=vec2(0,0);float lastSampledHeight=1.0;float currSampledHeight=1.0;bool keepWorking=true;for (int i=0; i<iMaxSamples; i++)
{currSampledHeight=texture2D(bumpSampler,texCoord+vCurrOffset).w;if (!keepWorking)
{}
else if (currSampledHeight>currRayHeight)
{float delta1=currSampledHeight-currRayHeight;float delta2=(currRayHeight+stepSize)-lastSampledHeight;float ratio=delta1/(delta1+delta2);vCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;keepWorking=false;}
else
{currRayHeight-=stepSize;vLastOffset=vCurrOffset;
#ifdef PARALLAX_RHS
vCurrOffset-=stepSize*vMaxOffset;
#else
vCurrOffset+=stepSize*vMaxOffset;
#endif
lastSampledHeight=currSampledHeight;}}
return vCurrOffset;}
vec2 parallaxOffset(vec3 viewDir,float heightScale)
{float height=texture2D(bumpSampler,vBumpUV).w;vec2 texCoordOffset=heightScale*viewDir.xy*height;
#ifdef PARALLAX_RHS
return texCoordOffset;
#else
return -texCoordOffset;
#endif
}
#endif
`;H.IncludesShadersStore[Cse]||(H.IncludesShadersStore[Cse]=Q_e);const J_e={name:Cse,shader:Q_e},nVe=Object.freeze(Object.defineProperty({__proto__:null,bumpFragmentFunctions:J_e},Symbol.toStringTag,{value:"Module"})),$_e="decalFragment",aVe=`#ifdef DECAL
#ifdef GAMMADECAL
decalColor.rgb=toLinearSpace(decalColor.rgb);
#endif
#ifdef DECAL_SMOOTHALPHA
decalColor.a*=decalColor.a;
#endif
surfaceAlbedo.rgb=mix(surfaceAlbedo.rgb,decalColor.rgb,decalColor.a);
#endif
`;H.IncludesShadersStore[$_e]||(H.IncludesShadersStore[$_e]=aVe);const e8e="pbrBlockAlbedoOpacity",oVe=`struct albedoOpacityOutParams
{vec3 surfaceAlbedo;float alpha;};
#define pbr_inline
albedoOpacityOutParams albedoOpacityBlock(
in vec4 vAlbedoColor
#ifdef ALBEDO
,in vec4 albedoTexture
,in vec2 albedoInfos
#endif
,in float baseWeight
#ifdef BASEWEIGHT
,in vec4 baseWeightTexture
,in vec2 vBaseWeightInfos
#endif
#ifdef OPACITY
,in vec4 opacityMap
,in vec2 vOpacityInfos
#endif
#ifdef DETAIL
,in vec4 detailColor
,in vec4 vDetailInfos
#endif
#ifdef DECAL
,in vec4 decalColor
,in vec4 vDecalInfos
#endif
)
{albedoOpacityOutParams outParams;vec3 surfaceAlbedo=vAlbedoColor.rgb;float alpha=vAlbedoColor.a;
#ifdef ALBEDO
#if defined(ALPHAFROMALBEDO) || defined(ALPHATEST)
alpha*=albedoTexture.a;
#endif
#ifdef GAMMAALBEDO
surfaceAlbedo*=toLinearSpace(albedoTexture.rgb);
#else
surfaceAlbedo*=albedoTexture.rgb;
#endif
surfaceAlbedo*=albedoInfos.y;
#endif
#ifndef DECAL_AFTER_DETAIL
#include<decalFragment>
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
surfaceAlbedo*=vColor.rgb;
#endif
#ifdef DETAIL
float detailAlbedo=2.0*mix(0.5,detailColor.r,vDetailInfos.y);surfaceAlbedo.rgb=surfaceAlbedo.rgb*detailAlbedo*detailAlbedo; 
#endif
#ifdef DECAL_AFTER_DETAIL
#include<decalFragment>
#endif
#define CUSTOM_FRAGMENT_UPDATE_ALBEDO
surfaceAlbedo*=baseWeight;
#ifdef BASEWEIGHT
surfaceAlbedo*=baseWeightTexture.r;
#endif
#ifdef OPACITY
#ifdef OPACITYRGB
alpha=getLuminance(opacityMap.rgb);
#else
alpha*=opacityMap.a;
#endif
alpha*=vOpacityInfos.y;
#endif
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
#if !defined(SS_LINKREFRACTIONTOTRANSPARENCY) && !defined(ALPHAFRESNEL)
#ifdef ALPHATEST
#if DEBUGMODE != 88
if (alpha<ALPHATESTVALUE)
discard;
#endif
#ifndef ALPHABLEND
alpha=1.0;
#endif
#endif
#endif
outParams.surfaceAlbedo=surfaceAlbedo;outParams.alpha=alpha;return outParams;}
`;H.IncludesShadersStore[e8e]||(H.IncludesShadersStore[e8e]=oVe);const t8e="pbrBlockReflectivity",lVe=`struct reflectivityOutParams
{float microSurface;float roughness;vec3 surfaceReflectivityColor;
#ifdef METALLICWORKFLOW
vec3 surfaceAlbedo;
#endif
#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)
vec3 ambientOcclusionColor;
#endif
#if DEBUGMODE>0
#ifdef METALLICWORKFLOW
vec2 metallicRoughness;
#ifdef REFLECTIVITY
vec4 surfaceMetallicColorMap;
#endif
#ifndef FROSTBITE_REFLECTANCE
vec3 metallicF0;
#endif
#else
#ifdef REFLECTIVITY
vec4 surfaceReflectivityColorMap;
#endif
#endif
#endif
};
#define pbr_inline
reflectivityOutParams reflectivityBlock(
in vec4 vReflectivityColor
#ifdef METALLICWORKFLOW
,in vec3 surfaceAlbedo
,in vec4 metallicReflectanceFactors
#endif
#ifdef REFLECTIVITY
,in vec3 reflectivityInfos
,in vec4 surfaceMetallicOrReflectivityColorMap
#endif
#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)
,in vec3 ambientOcclusionColorIn
#endif
#ifdef MICROSURFACEMAP
,in vec4 microSurfaceTexel
#endif
#ifdef DETAIL
,in vec4 detailColor
,in vec4 vDetailInfos
#endif
)
{reflectivityOutParams outParams;float microSurface=vReflectivityColor.a;vec3 surfaceReflectivityColor=vReflectivityColor.rgb;
#ifdef METALLICWORKFLOW
vec2 metallicRoughness=surfaceReflectivityColor.rg;
#ifdef REFLECTIVITY
#if DEBUGMODE>0
outParams.surfaceMetallicColorMap=surfaceMetallicOrReflectivityColorMap;
#endif
#ifdef AOSTOREINMETALMAPRED
vec3 aoStoreInMetalMap=vec3(surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r);outParams.ambientOcclusionColor=mix(ambientOcclusionColorIn,aoStoreInMetalMap,reflectivityInfos.z);
#endif
#ifdef METALLNESSSTOREINMETALMAPBLUE
metallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.b;
#else
metallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.r;
#endif
#ifdef ROUGHNESSSTOREINMETALMAPALPHA
metallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.a;
#else
#ifdef ROUGHNESSSTOREINMETALMAPGREEN
metallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.g;
#endif
#endif
#endif
#ifdef DETAIL
float detailRoughness=mix(0.5,detailColor.b,vDetailInfos.w);float loLerp=mix(0.,metallicRoughness.g,detailRoughness*2.);float hiLerp=mix(metallicRoughness.g,1.,(detailRoughness-0.5)*2.);metallicRoughness.g=mix(loLerp,hiLerp,step(detailRoughness,0.5));
#endif
#ifdef MICROSURFACEMAP
metallicRoughness.g*=microSurfaceTexel.r;
#endif
#if DEBUGMODE>0
outParams.metallicRoughness=metallicRoughness;
#endif
#define CUSTOM_FRAGMENT_UPDATE_METALLICROUGHNESS
microSurface=1.0-metallicRoughness.g;vec3 baseColor=surfaceAlbedo;
#ifdef FROSTBITE_REFLECTANCE
outParams.surfaceAlbedo=baseColor.rgb*(1.0-metallicRoughness.r);surfaceReflectivityColor=mix(0.16*reflectance*reflectance,baseColor,metallicRoughness.r);
#else
vec3 metallicF0=metallicReflectanceFactors.rgb;
#if DEBUGMODE>0
outParams.metallicF0=metallicF0;
#endif
outParams.surfaceAlbedo=mix(baseColor.rgb*(1.0-metallicF0),vec3(0.,0.,0.),metallicRoughness.r);surfaceReflectivityColor=mix(metallicF0,baseColor,metallicRoughness.r);
#endif
#else
#ifdef REFLECTIVITY
surfaceReflectivityColor*=surfaceMetallicOrReflectivityColorMap.rgb;
#if DEBUGMODE>0
outParams.surfaceReflectivityColorMap=surfaceMetallicOrReflectivityColorMap;
#endif
#ifdef MICROSURFACEFROMREFLECTIVITYMAP
microSurface*=surfaceMetallicOrReflectivityColorMap.a;microSurface*=reflectivityInfos.z;
#else
#ifdef MICROSURFACEAUTOMATIC
microSurface*=computeDefaultMicroSurface(microSurface,surfaceReflectivityColor);
#endif
#ifdef MICROSURFACEMAP
microSurface*=microSurfaceTexel.r;
#endif
#define CUSTOM_FRAGMENT_UPDATE_MICROSURFACE
#endif
#endif
#endif
microSurface=saturate(microSurface);float roughness=1.-microSurface;outParams.microSurface=microSurface;outParams.roughness=roughness;outParams.surfaceReflectivityColor=surfaceReflectivityColor;return outParams;}
`;H.IncludesShadersStore[t8e]||(H.IncludesShadersStore[t8e]=lVe);const i8e="pbrBlockAmbientOcclusion",cVe=`struct ambientOcclusionOutParams
{vec3 ambientOcclusionColor;
#if DEBUGMODE>0 && defined(AMBIENT)
vec3 ambientOcclusionColorMap;
#endif
};ambientOcclusionOutParams ambientOcclusionBlock(
#ifdef AMBIENT
in vec3 ambientOcclusionColorMap_,
in vec4 vAmbientInfos
#endif
)
{ambientOcclusionOutParams outParams;vec3 ambientOcclusionColor=vec3(1.,1.,1.);
#ifdef AMBIENT
vec3 ambientOcclusionColorMap=ambientOcclusionColorMap_*vAmbientInfos.y;
#ifdef AMBIENTINGRAYSCALE
ambientOcclusionColorMap=vec3(ambientOcclusionColorMap.r,ambientOcclusionColorMap.r,ambientOcclusionColorMap.r);
#endif
ambientOcclusionColor=mix(ambientOcclusionColor,ambientOcclusionColorMap,vAmbientInfos.z);
#if DEBUGMODE>0
outParams.ambientOcclusionColorMap=ambientOcclusionColorMap;
#endif
#endif
outParams.ambientOcclusionColor=ambientOcclusionColor;return outParams;}
`;H.IncludesShadersStore[i8e]||(H.IncludesShadersStore[i8e]=cVe);const s8e="pbrBlockAlphaFresnel",uVe=`#ifdef ALPHAFRESNEL
#if defined(ALPHATEST) || defined(ALPHABLEND)
struct alphaFresnelOutParams
{float alpha;};
#define pbr_inline
alphaFresnelOutParams alphaFresnelBlock(
in vec3 normalW,
in vec3 viewDirectionW,
in float alpha,
in float microSurface
)
{alphaFresnelOutParams outParams;float opacityPerceptual=alpha;
#ifdef LINEARALPHAFRESNEL
float opacity0=opacityPerceptual;
#else
float opacity0=opacityPerceptual*opacityPerceptual;
#endif
float opacity90=fresnelGrazingReflectance(opacity0);vec3 normalForward=faceforward(normalW,-viewDirectionW,normalW);outParams.alpha=getReflectanceFromAnalyticalBRDFLookup_Jones(saturate(dot(viewDirectionW,normalForward)),vec3(opacity0),vec3(opacity90),sqrt(microSurface)).x;
#ifdef ALPHATEST
if (outParams.alpha<ALPHATESTVALUE)
discard;
#ifndef ALPHABLEND
outParams.alpha=1.0;
#endif
#endif
return outParams;}
#endif
#endif
`;H.IncludesShadersStore[s8e]||(H.IncludesShadersStore[s8e]=uVe);const r8e="pbrBlockAnisotropic",hVe=`#ifdef ANISOTROPIC
struct anisotropicOutParams
{float anisotropy;vec3 anisotropicTangent;vec3 anisotropicBitangent;vec3 anisotropicNormal;
#if DEBUGMODE>0 && defined(ANISOTROPIC_TEXTURE)
vec3 anisotropyMapData;
#endif
};
#define pbr_inline
anisotropicOutParams anisotropicBlock(
in vec3 vAnisotropy,
in float roughness,
#ifdef ANISOTROPIC_TEXTURE
in vec3 anisotropyMapData,
#endif
in mat3 TBN,
in vec3 normalW,
in vec3 viewDirectionW
)
{anisotropicOutParams outParams;float anisotropy=vAnisotropy.b;vec3 anisotropyDirection=vec3(vAnisotropy.xy,0.);
#ifdef ANISOTROPIC_TEXTURE
anisotropy*=anisotropyMapData.b;
#if DEBUGMODE>0
outParams.anisotropyMapData=anisotropyMapData;
#endif
anisotropyMapData.rg=anisotropyMapData.rg*2.0-1.0;
#ifdef ANISOTROPIC_LEGACY
anisotropyDirection.rg*=anisotropyMapData.rg;
#else
anisotropyDirection.xy=mat2(anisotropyDirection.x,anisotropyDirection.y,-anisotropyDirection.y,anisotropyDirection.x)*normalize(anisotropyMapData.rg);
#endif
#endif
mat3 anisoTBN=mat3(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2]));vec3 anisotropicTangent=normalize(anisoTBN*anisotropyDirection);vec3 anisotropicBitangent=normalize(cross(anisoTBN[2],anisotropicTangent));outParams.anisotropy=anisotropy;outParams.anisotropicTangent=anisotropicTangent;outParams.anisotropicBitangent=anisotropicBitangent;outParams.anisotropicNormal=getAnisotropicBentNormals(anisotropicTangent,anisotropicBitangent,normalW,viewDirectionW,anisotropy,roughness);return outParams;}
#endif
`;H.IncludesShadersStore[r8e]||(H.IncludesShadersStore[r8e]=hVe);const n8e="pbrBlockReflection",dVe=`#ifdef REFLECTION
struct reflectionOutParams
{vec4 environmentRadiance;vec3 environmentIrradiance;
#ifdef REFLECTIONMAP_3D
vec3 reflectionCoords;
#else
vec2 reflectionCoords;
#endif
#ifdef SS_TRANSLUCENCY
#ifdef USESPHERICALFROMREFLECTIONMAP
#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)
vec3 irradianceVector;
#endif
#endif
#endif
};
#define pbr_inline
void createReflectionCoords(
in vec3 vPositionW,
in vec3 normalW,
#ifdef ANISOTROPIC
in anisotropicOutParams anisotropicOut,
#endif
#ifdef REFLECTIONMAP_3D
out vec3 reflectionCoords
#else
out vec2 reflectionCoords
#endif
)
{
#ifdef ANISOTROPIC
vec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),anisotropicOut.anisotropicNormal);
#else
vec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);
#endif
#ifdef REFLECTIONMAP_OPPOSITEZ
reflectionVector.z*=-1.0;
#endif
#ifdef REFLECTIONMAP_3D
reflectionCoords=reflectionVector;
#else
reflectionCoords=reflectionVector.xy;
#ifdef REFLECTIONMAP_PROJECTION
reflectionCoords/=reflectionVector.z;
#endif
reflectionCoords.y=1.0-reflectionCoords.y;
#endif
}
#define pbr_inline
#define inline
void sampleReflectionTexture(
in float alphaG,
in vec3 vReflectionMicrosurfaceInfos,
in vec2 vReflectionInfos,
in vec3 vReflectionColor,
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
in float NdotVUnclamped,
#endif
#ifdef LINEARSPECULARREFLECTION
in float roughness,
#endif
#ifdef REFLECTIONMAP_3D
in samplerCube reflectionSampler,
const vec3 reflectionCoords,
#else
in sampler2D reflectionSampler,
const vec2 reflectionCoords,
#endif
#ifndef LODBASEDMICROSFURACE
#ifdef REFLECTIONMAP_3D
in samplerCube reflectionSamplerLow,
in samplerCube reflectionSamplerHigh,
#else
in sampler2D reflectionSamplerLow,
in sampler2D reflectionSamplerHigh,
#endif
#endif
#ifdef REALTIME_FILTERING
in vec2 vReflectionFilteringInfo,
#endif
out vec4 environmentRadiance
)
{
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,NdotVUnclamped);
#elif defined(LINEARSPECULARREFLECTION)
float reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);
#else
float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);
#endif
#ifdef LODBASEDMICROSFURACE
reflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;
#ifdef LODINREFLECTIONALPHA
float automaticReflectionLOD=UNPACK_LOD(sampleReflection(reflectionSampler,reflectionCoords).a);float requestedReflectionLOD=max(automaticReflectionLOD,reflectionLOD);
#else
float requestedReflectionLOD=reflectionLOD;
#endif
#ifdef REALTIME_FILTERING
environmentRadiance=vec4(radiance(alphaG,reflectionSampler,reflectionCoords,vReflectionFilteringInfo),1.0);
#else
environmentRadiance=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);
#endif
#else
float lodReflectionNormalized=saturate(reflectionLOD/log2(vReflectionMicrosurfaceInfos.x));float lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0;vec4 environmentMid=sampleReflection(reflectionSampler,reflectionCoords);if (lodReflectionNormalizedDoubled<1.0){environmentRadiance=mix(
sampleReflection(reflectionSamplerHigh,reflectionCoords),
environmentMid,
lodReflectionNormalizedDoubled
);} else {environmentRadiance=mix(
environmentMid,
sampleReflection(reflectionSamplerLow,reflectionCoords),
lodReflectionNormalizedDoubled-1.0
);}
#endif
#ifdef RGBDREFLECTION
environmentRadiance.rgb=fromRGBD(environmentRadiance);
#endif
#ifdef GAMMAREFLECTION
environmentRadiance.rgb=toLinearSpace(environmentRadiance.rgb);
#endif
environmentRadiance.rgb*=vReflectionInfos.x;environmentRadiance.rgb*=vReflectionColor.rgb;}
#define pbr_inline
#define inline
reflectionOutParams reflectionBlock(
in vec3 vPositionW
,in vec3 normalW
,in float alphaG
,in vec3 vReflectionMicrosurfaceInfos
,in vec2 vReflectionInfos
,in vec3 vReflectionColor
#ifdef ANISOTROPIC
,in anisotropicOutParams anisotropicOut
#endif
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
,in float NdotVUnclamped
#endif
#ifdef LINEARSPECULARREFLECTION
,in float roughness
#endif
#ifdef REFLECTIONMAP_3D
,in samplerCube reflectionSampler
#else
,in sampler2D reflectionSampler
#endif
#if defined(NORMAL) && defined(USESPHERICALINVERTEX)
,in vec3 vEnvironmentIrradiance
#endif
#if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
,in mat4 reflectionMatrix
#endif
#ifdef USEIRRADIANCEMAP
#ifdef REFLECTIONMAP_3D
,in samplerCube irradianceSampler
#else
,in sampler2D irradianceSampler
#endif
#endif
#ifndef LODBASEDMICROSFURACE
#ifdef REFLECTIONMAP_3D
,in samplerCube reflectionSamplerLow
,in samplerCube reflectionSamplerHigh
#else
,in sampler2D reflectionSamplerLow
,in sampler2D reflectionSamplerHigh
#endif
#endif
#ifdef REALTIME_FILTERING
,in vec2 vReflectionFilteringInfo
#ifdef IBL_CDF_FILTERING
,in sampler2D icdfSampler
#endif
#endif
)
{reflectionOutParams outParams;vec4 environmentRadiance=vec4(0.,0.,0.,0.);
#ifdef REFLECTIONMAP_3D
vec3 reflectionCoords=vec3(0.);
#else
vec2 reflectionCoords=vec2(0.);
#endif
createReflectionCoords(
vPositionW,
normalW,
#ifdef ANISOTROPIC
anisotropicOut,
#endif
reflectionCoords
);sampleReflectionTexture(
alphaG,
vReflectionMicrosurfaceInfos,
vReflectionInfos,
vReflectionColor,
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
NdotVUnclamped,
#endif
#ifdef LINEARSPECULARREFLECTION
roughness,
#endif
#ifdef REFLECTIONMAP_3D
reflectionSampler,
reflectionCoords,
#else
reflectionSampler,
reflectionCoords,
#endif
#ifndef LODBASEDMICROSFURACE
reflectionSamplerLow,
reflectionSamplerHigh,
#endif
#ifdef REALTIME_FILTERING
vReflectionFilteringInfo,
#endif
environmentRadiance
);vec3 environmentIrradiance=vec3(0.,0.,0.);
#if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
#ifdef ANISOTROPIC
vec3 irradianceVector=vec3(reflectionMatrix*vec4(anisotropicOut.anisotropicNormal,0)).xyz;
#else
vec3 irradianceVector=vec3(reflectionMatrix*vec4(normalW,0)).xyz;
#endif
#ifdef REFLECTIONMAP_OPPOSITEZ
irradianceVector.z*=-1.0;
#endif
#ifdef INVERTCUBICMAP
irradianceVector.y*=-1.0;
#endif
#endif
#ifdef USESPHERICALFROMREFLECTIONMAP
#if defined(NORMAL) && defined(USESPHERICALINVERTEX)
environmentIrradiance=vEnvironmentIrradiance;
#else
#if defined(REALTIME_FILTERING)
environmentIrradiance=irradiance(reflectionSampler,irradianceVector,vReflectionFilteringInfo
#ifdef IBL_CDF_FILTERING
,icdfSampler
#endif
);
#else
environmentIrradiance=computeEnvironmentIrradiance(irradianceVector);
#endif
#ifdef SS_TRANSLUCENCY
outParams.irradianceVector=irradianceVector;
#endif
#endif
#elif defined(USEIRRADIANCEMAP)
#ifdef REFLECTIONMAP_3D
vec4 environmentIrradiance4=sampleReflection(irradianceSampler,irradianceVector);
#else
vec4 environmentIrradiance4=sampleReflection(irradianceSampler,reflectionCoords);
#endif
environmentIrradiance=environmentIrradiance4.rgb;
#ifdef RGBDREFLECTION
environmentIrradiance.rgb=fromRGBD(environmentIrradiance4);
#endif
#ifdef GAMMAREFLECTION
environmentIrradiance.rgb=toLinearSpace(environmentIrradiance.rgb);
#endif
#endif
environmentIrradiance*=vReflectionColor.rgb*vReflectionInfos.x;
#ifdef MIX_IBL_RADIANCE_WITH_IRRADIANCE
outParams.environmentRadiance=vec4(mix(environmentRadiance.rgb,environmentIrradiance,alphaG),environmentRadiance.a);
#else
outParams.environmentRadiance=environmentRadiance;
#endif
outParams.environmentIrradiance=environmentIrradiance;outParams.reflectionCoords=reflectionCoords;return outParams;}
#endif
`;H.IncludesShadersStore[n8e]||(H.IncludesShadersStore[n8e]=dVe);const a8e="pbrBlockSheen",fVe=`#ifdef SHEEN
struct sheenOutParams
{float sheenIntensity;vec3 sheenColor;float sheenRoughness;
#ifdef SHEEN_LINKWITHALBEDO
vec3 surfaceAlbedo;
#endif
#if defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)
float sheenAlbedoScaling;
#endif
#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)
vec3 finalSheenRadianceScaled;
#endif
#if DEBUGMODE>0
#ifdef SHEEN_TEXTURE
vec4 sheenMapData;
#endif
#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)
vec3 sheenEnvironmentReflectance;
#endif
#endif
};
#define pbr_inline
#define inline
sheenOutParams sheenBlock(
in vec4 vSheenColor
#ifdef SHEEN_ROUGHNESS
,in float vSheenRoughness
#if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)
,in vec4 sheenMapRoughnessData
#endif
#endif
,in float roughness
#ifdef SHEEN_TEXTURE
,in vec4 sheenMapData
,in float sheenMapLevel
#endif
,in float reflectance
#ifdef SHEEN_LINKWITHALBEDO
,in vec3 baseColor
,in vec3 surfaceAlbedo
#endif
#ifdef ENVIRONMENTBRDF
,in float NdotV
,in vec3 environmentBrdf
#endif
#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)
,in vec2 AARoughnessFactors
,in vec3 vReflectionMicrosurfaceInfos
,in vec2 vReflectionInfos
,in vec3 vReflectionColor
,in vec4 vLightingIntensity
#ifdef REFLECTIONMAP_3D
,in samplerCube reflectionSampler
,in vec3 reflectionCoords
#else
,in sampler2D reflectionSampler
,in vec2 reflectionCoords
#endif
,in float NdotVUnclamped
#ifndef LODBASEDMICROSFURACE
#ifdef REFLECTIONMAP_3D
,in samplerCube reflectionSamplerLow
,in samplerCube reflectionSamplerHigh
#else
,in sampler2D reflectionSamplerLow
,in sampler2D reflectionSamplerHigh
#endif
#endif
#ifdef REALTIME_FILTERING
,in vec2 vReflectionFilteringInfo
#endif
#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)
,in float seo
#endif
#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)
,in float eho
#endif
#endif
)
{sheenOutParams outParams;float sheenIntensity=vSheenColor.a;
#ifdef SHEEN_TEXTURE
#if DEBUGMODE>0
outParams.sheenMapData=sheenMapData;
#endif
#endif
#ifdef SHEEN_LINKWITHALBEDO
float sheenFactor=pow5(1.0-sheenIntensity);vec3 sheenColor=baseColor.rgb*(1.0-sheenFactor);float sheenRoughness=sheenIntensity;outParams.surfaceAlbedo=surfaceAlbedo*sheenFactor;
#ifdef SHEEN_TEXTURE
sheenIntensity*=sheenMapData.a;
#endif
#else
vec3 sheenColor=vSheenColor.rgb;
#ifdef SHEEN_TEXTURE
#ifdef SHEEN_GAMMATEXTURE
sheenColor.rgb*=toLinearSpace(sheenMapData.rgb);
#else
sheenColor.rgb*=sheenMapData.rgb;
#endif
sheenColor.rgb*=sheenMapLevel;
#endif
#ifdef SHEEN_ROUGHNESS
float sheenRoughness=vSheenRoughness;
#ifdef SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE
#if defined(SHEEN_TEXTURE)
sheenRoughness*=sheenMapData.a;
#endif
#elif defined(SHEEN_TEXTURE_ROUGHNESS)
sheenRoughness*=sheenMapRoughnessData.a;
#endif
#else
float sheenRoughness=roughness;
#ifdef SHEEN_TEXTURE
sheenIntensity*=sheenMapData.a;
#endif
#endif
#if !defined(SHEEN_ALBEDOSCALING)
sheenIntensity*=(1.-reflectance);
#endif
sheenColor*=sheenIntensity;
#endif
#ifdef ENVIRONMENTBRDF
/*#ifdef SHEEN_SOFTER
vec3 environmentSheenBrdf=vec3(0.,0.,getBRDFLookupCharlieSheen(NdotV,sheenRoughness));
#else*/
#ifdef SHEEN_ROUGHNESS
vec3 environmentSheenBrdf=getBRDFLookup(NdotV,sheenRoughness);
#else
vec3 environmentSheenBrdf=environmentBrdf;
#endif
/*#endif*/
#endif
#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)
float sheenAlphaG=convertRoughnessToAverageSlope(sheenRoughness);
#ifdef SPECULARAA
sheenAlphaG+=AARoughnessFactors.y;
#endif
vec4 environmentSheenRadiance=vec4(0.,0.,0.,0.);sampleReflectionTexture(
sheenAlphaG,
vReflectionMicrosurfaceInfos,
vReflectionInfos,
vReflectionColor,
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
NdotVUnclamped,
#endif
#ifdef LINEARSPECULARREFLECTION
sheenRoughness,
#endif
reflectionSampler,
reflectionCoords,
#ifndef LODBASEDMICROSFURACE
reflectionSamplerLow,
reflectionSamplerHigh,
#endif
#ifdef REALTIME_FILTERING
vReflectionFilteringInfo,
#endif
environmentSheenRadiance
);vec3 sheenEnvironmentReflectance=getSheenReflectanceFromBRDFLookup(sheenColor,environmentSheenBrdf);
#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)
sheenEnvironmentReflectance*=seo;
#endif
#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)
sheenEnvironmentReflectance*=eho;
#endif
#if DEBUGMODE>0
outParams.sheenEnvironmentReflectance=sheenEnvironmentReflectance;
#endif
outParams.finalSheenRadianceScaled=
environmentSheenRadiance.rgb *
sheenEnvironmentReflectance *
vLightingIntensity.z;
#endif
#if defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)
outParams.sheenAlbedoScaling=1.0-sheenIntensity*max(max(sheenColor.r,sheenColor.g),sheenColor.b)*environmentSheenBrdf.b;
#endif
outParams.sheenIntensity=sheenIntensity;outParams.sheenColor=sheenColor;outParams.sheenRoughness=sheenRoughness;return outParams;}
#endif
`;H.IncludesShadersStore[a8e]||(H.IncludesShadersStore[a8e]=fVe);const o8e="pbrBlockClearcoat",pVe=`struct clearcoatOutParams
{vec3 specularEnvironmentR0;float conservationFactor;vec3 clearCoatNormalW;vec2 clearCoatAARoughnessFactors;float clearCoatIntensity;float clearCoatRoughness;
#ifdef REFLECTION
vec3 finalClearCoatRadianceScaled;
#endif
#ifdef CLEARCOAT_TINT
vec3 absorption;float clearCoatNdotVRefract;vec3 clearCoatColor;float clearCoatThickness;
#endif
#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)
vec3 energyConservationFactorClearCoat;
#endif
#if DEBUGMODE>0
#ifdef CLEARCOAT_BUMP
mat3 TBNClearCoat;
#endif
#ifdef CLEARCOAT_TEXTURE
vec2 clearCoatMapData;
#endif
#if defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)
vec4 clearCoatTintMapData;
#endif
#ifdef REFLECTION
vec4 environmentClearCoatRadiance;vec3 clearCoatEnvironmentReflectance;
#endif
float clearCoatNdotV;
#endif
};
#ifdef CLEARCOAT
#define pbr_inline
#define inline
clearcoatOutParams clearcoatBlock(
in vec3 vPositionW
,in vec3 geometricNormalW
,in vec3 viewDirectionW
,in vec2 vClearCoatParams
#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)
,in vec4 clearCoatMapRoughnessData
#endif
,in vec3 specularEnvironmentR0
#ifdef CLEARCOAT_TEXTURE
,in vec2 clearCoatMapData
#endif
#ifdef CLEARCOAT_TINT
,in vec4 vClearCoatTintParams
,in float clearCoatColorAtDistance
,in vec4 vClearCoatRefractionParams
#ifdef CLEARCOAT_TINT_TEXTURE
,in vec4 clearCoatTintMapData
#endif
#endif
#ifdef CLEARCOAT_BUMP
,in vec2 vClearCoatBumpInfos
,in vec4 clearCoatBumpMapData
,in vec2 vClearCoatBumpUV
#if defined(TANGENT) && defined(NORMAL)
,in mat3 vTBN
#else
,in vec2 vClearCoatTangentSpaceParams
#endif
#ifdef OBJECTSPACE_NORMALMAP
,in mat4 normalMatrix
#endif
#endif
#if defined(FORCENORMALFORWARD) && defined(NORMAL)
,in vec3 faceNormal
#endif
#ifdef REFLECTION
,in vec3 vReflectionMicrosurfaceInfos
,in vec2 vReflectionInfos
,in vec3 vReflectionColor
,in vec4 vLightingIntensity
#ifdef REFLECTIONMAP_3D
,in samplerCube reflectionSampler
#else
,in sampler2D reflectionSampler
#endif
#ifndef LODBASEDMICROSFURACE
#ifdef REFLECTIONMAP_3D
,in samplerCube reflectionSamplerLow
,in samplerCube reflectionSamplerHigh
#else
,in sampler2D reflectionSamplerLow
,in sampler2D reflectionSamplerHigh
#endif
#endif
#ifdef REALTIME_FILTERING
,in vec2 vReflectionFilteringInfo
#endif
#endif
#if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)
,in float frontFacingMultiplier
#endif
)
{clearcoatOutParams outParams;float clearCoatIntensity=vClearCoatParams.x;float clearCoatRoughness=vClearCoatParams.y;
#ifdef CLEARCOAT_TEXTURE
clearCoatIntensity*=clearCoatMapData.x;
#ifdef CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE
clearCoatRoughness*=clearCoatMapData.y;
#endif
#if DEBUGMODE>0
outParams.clearCoatMapData=clearCoatMapData;
#endif
#endif
#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)
clearCoatRoughness*=clearCoatMapRoughnessData.y;
#endif
outParams.clearCoatIntensity=clearCoatIntensity;outParams.clearCoatRoughness=clearCoatRoughness;
#ifdef CLEARCOAT_TINT
vec3 clearCoatColor=vClearCoatTintParams.rgb;float clearCoatThickness=vClearCoatTintParams.a;
#ifdef CLEARCOAT_TINT_TEXTURE
#ifdef CLEARCOAT_TINT_GAMMATEXTURE
clearCoatColor*=toLinearSpace(clearCoatTintMapData.rgb);
#else
clearCoatColor*=clearCoatTintMapData.rgb;
#endif
clearCoatThickness*=clearCoatTintMapData.a;
#if DEBUGMODE>0
outParams.clearCoatTintMapData=clearCoatTintMapData;
#endif
#endif
outParams.clearCoatColor=computeColorAtDistanceInMedia(clearCoatColor,clearCoatColorAtDistance);outParams.clearCoatThickness=clearCoatThickness;
#endif
#ifdef CLEARCOAT_REMAP_F0
vec3 specularEnvironmentR0Updated=getR0RemappedForClearCoat(specularEnvironmentR0);
#else
vec3 specularEnvironmentR0Updated=specularEnvironmentR0;
#endif
outParams.specularEnvironmentR0=mix(specularEnvironmentR0,specularEnvironmentR0Updated,clearCoatIntensity);vec3 clearCoatNormalW=geometricNormalW;
#ifdef CLEARCOAT_BUMP
#ifdef NORMALXYSCALE
float clearCoatNormalScale=1.0;
#else
float clearCoatNormalScale=vClearCoatBumpInfos.y;
#endif
#if defined(TANGENT) && defined(NORMAL)
mat3 TBNClearCoat=vTBN;
#else
vec2 TBNClearCoatUV=vClearCoatBumpUV*frontFacingMultiplier;mat3 TBNClearCoat=cotangent_frame(clearCoatNormalW*clearCoatNormalScale,vPositionW,TBNClearCoatUV,vClearCoatTangentSpaceParams);
#endif
#if DEBUGMODE>0
outParams.TBNClearCoat=TBNClearCoat;
#endif
#ifdef OBJECTSPACE_NORMALMAP
clearCoatNormalW=normalize(clearCoatBumpMapData.xyz *2.0-1.0);clearCoatNormalW=normalize(mat3(normalMatrix)*clearCoatNormalW);
#else
clearCoatNormalW=perturbNormal(TBNClearCoat,clearCoatBumpMapData.xyz,vClearCoatBumpInfos.y);
#endif
#endif
#if defined(FORCENORMALFORWARD) && defined(NORMAL)
clearCoatNormalW*=sign(dot(clearCoatNormalW,faceNormal));
#endif
#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)
clearCoatNormalW=clearCoatNormalW*frontFacingMultiplier;
#endif
outParams.clearCoatNormalW=clearCoatNormalW;outParams.clearCoatAARoughnessFactors=getAARoughnessFactors(clearCoatNormalW.xyz);float clearCoatNdotVUnclamped=dot(clearCoatNormalW,viewDirectionW);float clearCoatNdotV=absEps(clearCoatNdotVUnclamped);
#if DEBUGMODE>0
outParams.clearCoatNdotV=clearCoatNdotV;
#endif
#ifdef CLEARCOAT_TINT
vec3 clearCoatVRefract=refract(-viewDirectionW,clearCoatNormalW,vClearCoatRefractionParams.y);outParams.clearCoatNdotVRefract=absEps(dot(clearCoatNormalW,clearCoatVRefract));
#endif
#if defined(ENVIRONMENTBRDF) && (!defined(REFLECTIONMAP_SKYBOX) || defined(MS_BRDF_ENERGY_CONSERVATION))
vec3 environmentClearCoatBrdf=getBRDFLookup(clearCoatNdotV,clearCoatRoughness);
#endif
#if defined(REFLECTION)
float clearCoatAlphaG=convertRoughnessToAverageSlope(clearCoatRoughness);
#ifdef SPECULARAA
clearCoatAlphaG+=outParams.clearCoatAARoughnessFactors.y;
#endif
vec4 environmentClearCoatRadiance=vec4(0.,0.,0.,0.);vec3 clearCoatReflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),clearCoatNormalW);
#ifdef REFLECTIONMAP_OPPOSITEZ
clearCoatReflectionVector.z*=-1.0;
#endif
#ifdef REFLECTIONMAP_3D
vec3 clearCoatReflectionCoords=clearCoatReflectionVector;
#else
vec2 clearCoatReflectionCoords=clearCoatReflectionVector.xy;
#ifdef REFLECTIONMAP_PROJECTION
clearCoatReflectionCoords/=clearCoatReflectionVector.z;
#endif
clearCoatReflectionCoords.y=1.0-clearCoatReflectionCoords.y;
#endif
sampleReflectionTexture(
clearCoatAlphaG,
vReflectionMicrosurfaceInfos,
vReflectionInfos,
vReflectionColor,
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
clearCoatNdotVUnclamped,
#endif
#ifdef LINEARSPECULARREFLECTION
clearCoatRoughness,
#endif
reflectionSampler,
clearCoatReflectionCoords,
#ifndef LODBASEDMICROSFURACE
reflectionSamplerLow,
reflectionSamplerHigh,
#endif
#ifdef REALTIME_FILTERING
vReflectionFilteringInfo,
#endif
environmentClearCoatRadiance
);
#if DEBUGMODE>0
outParams.environmentClearCoatRadiance=environmentClearCoatRadiance;
#endif
#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
vec3 clearCoatEnvironmentReflectance=getReflectanceFromBRDFLookup(vec3(vClearCoatRefractionParams.x),environmentClearCoatBrdf);
#ifdef HORIZONOCCLUSION
#ifdef BUMP
#ifdef REFLECTIONMAP_3D
float clearCoatEho=environmentHorizonOcclusion(-viewDirectionW,clearCoatNormalW,geometricNormalW);clearCoatEnvironmentReflectance*=clearCoatEho;
#endif
#endif
#endif
#else
vec3 clearCoatEnvironmentReflectance=getReflectanceFromAnalyticalBRDFLookup_Jones(clearCoatNdotV,vec3(1.),vec3(1.),sqrt(1.-clearCoatRoughness));
#endif
clearCoatEnvironmentReflectance*=clearCoatIntensity;
#if DEBUGMODE>0
outParams.clearCoatEnvironmentReflectance=clearCoatEnvironmentReflectance;
#endif
outParams.finalClearCoatRadianceScaled=
environmentClearCoatRadiance.rgb *
clearCoatEnvironmentReflectance *
vLightingIntensity.z;
#endif
#if defined(CLEARCOAT_TINT)
outParams.absorption=computeClearCoatAbsorption(outParams.clearCoatNdotVRefract,outParams.clearCoatNdotVRefract,outParams.clearCoatColor,clearCoatThickness,clearCoatIntensity);
#endif
float fresnelIBLClearCoat=fresnelSchlickGGX(clearCoatNdotV,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);fresnelIBLClearCoat*=clearCoatIntensity;outParams.conservationFactor=(1.-fresnelIBLClearCoat);
#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)
outParams.energyConservationFactorClearCoat=getEnergyConservationFactor(outParams.specularEnvironmentR0,environmentClearCoatBrdf);
#endif
return outParams;}
#endif
`;H.IncludesShadersStore[o8e]||(H.IncludesShadersStore[o8e]=pVe);const l8e="pbrBlockIridescence",mVe=`struct iridescenceOutParams
{float iridescenceIntensity;float iridescenceIOR;float iridescenceThickness;vec3 specularEnvironmentR0;};
#ifdef IRIDESCENCE
#define pbr_inline
#define inline
iridescenceOutParams iridescenceBlock(
in vec4 vIridescenceParams
,in float viewAngle
,in vec3 specularEnvironmentR0
#ifdef IRIDESCENCE_TEXTURE
,in vec2 iridescenceMapData
#endif
#ifdef IRIDESCENCE_THICKNESS_TEXTURE
,in vec2 iridescenceThicknessMapData
#endif
#ifdef CLEARCOAT
,in float NdotVUnclamped
,in vec2 vClearCoatParams
#ifdef CLEARCOAT_TEXTURE
,in vec2 clearCoatMapData
#endif
#endif
)
{iridescenceOutParams outParams;float iridescenceIntensity=vIridescenceParams.x;float iridescenceIOR=vIridescenceParams.y;float iridescenceThicknessMin=vIridescenceParams.z;float iridescenceThicknessMax=vIridescenceParams.w;float iridescenceThicknessWeight=1.;
#ifdef IRIDESCENCE_TEXTURE
iridescenceIntensity*=iridescenceMapData.x;
#endif
#if defined(IRIDESCENCE_THICKNESS_TEXTURE)
iridescenceThicknessWeight=iridescenceThicknessMapData.g;
#endif
float iridescenceThickness=mix(iridescenceThicknessMin,iridescenceThicknessMax,iridescenceThicknessWeight);float topIor=1.; 
#ifdef CLEARCOAT
float clearCoatIntensity=vClearCoatParams.x;
#ifdef CLEARCOAT_TEXTURE
clearCoatIntensity*=clearCoatMapData.x;
#endif
topIor=mix(1.0,vClearCoatRefractionParams.w-1.,clearCoatIntensity);viewAngle=sqrt(1.0+square(1.0/topIor)*(square(NdotVUnclamped)-1.0));
#endif
vec3 iridescenceFresnel=evalIridescence(topIor,iridescenceIOR,viewAngle,iridescenceThickness,specularEnvironmentR0);outParams.specularEnvironmentR0=mix(specularEnvironmentR0,iridescenceFresnel,iridescenceIntensity);outParams.iridescenceIntensity=iridescenceIntensity;outParams.iridescenceThickness=iridescenceThickness;outParams.iridescenceIOR=iridescenceIOR;return outParams;}
#endif
`;H.IncludesShadersStore[l8e]||(H.IncludesShadersStore[l8e]=mVe);const c8e="pbrBlockSubSurface",gVe=`struct subSurfaceOutParams
{vec3 specularEnvironmentReflectance;
#ifdef SS_REFRACTION
vec3 finalRefraction;vec3 surfaceAlbedo;
#ifdef SS_LINKREFRACTIONTOTRANSPARENCY
float alpha;
#endif
#ifdef REFLECTION
float refractionFactorForIrradiance;
#endif
#endif
#ifdef SS_TRANSLUCENCY
vec3 transmittance;float translucencyIntensity;
#ifdef REFLECTION
vec3 refractionIrradiance;
#endif
#endif
#if DEBUGMODE>0
#ifdef SS_THICKNESSANDMASK_TEXTURE
vec4 thicknessMap;
#endif
#ifdef SS_REFRACTION
vec4 environmentRefraction;vec3 refractionTransmittance;
#endif
#endif
};
#ifdef SUBSURFACE
#ifdef SS_REFRACTION
#define pbr_inline
#define inline
vec4 sampleEnvironmentRefraction(
in float ior
,in float thickness
,in float refractionLOD
,in vec3 normalW
,in vec3 vPositionW
,in vec3 viewDirectionW
,in mat4 view
,in vec4 vRefractionInfos
,in mat4 refractionMatrix
,in vec4 vRefractionMicrosurfaceInfos
,in float alphaG
#ifdef SS_REFRACTIONMAP_3D
,in samplerCube refractionSampler
#ifndef LODBASEDMICROSFURACE
,in samplerCube refractionSamplerLow
,in samplerCube refractionSamplerHigh
#endif
#else
,in sampler2D refractionSampler
#ifndef LODBASEDMICROSFURACE
,in sampler2D refractionSamplerLow
,in sampler2D refractionSamplerHigh
#endif
#endif
#ifdef ANISOTROPIC
,in anisotropicOutParams anisotropicOut
#endif
#ifdef REALTIME_FILTERING
,in vec2 vRefractionFilteringInfo
#endif
#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC
,in vec3 refractionPosition
,in vec3 refractionSize
#endif
) {vec4 environmentRefraction=vec4(0.,0.,0.,0.);
#ifdef ANISOTROPIC
vec3 refractionVector=refract(-viewDirectionW,anisotropicOut.anisotropicNormal,ior);
#else
vec3 refractionVector=refract(-viewDirectionW,normalW,ior);
#endif
#ifdef SS_REFRACTIONMAP_OPPOSITEZ
refractionVector.z*=-1.0;
#endif
#ifdef SS_REFRACTIONMAP_3D
#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC
refractionVector=parallaxCorrectNormal(vPositionW,refractionVector,refractionSize,refractionPosition);
#endif
refractionVector.y=refractionVector.y*vRefractionInfos.w;vec3 refractionCoords=refractionVector;refractionCoords=vec3(refractionMatrix*vec4(refractionCoords,0));
#else
#ifdef SS_USE_THICKNESS_AS_DEPTH
vec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*thickness,1.0)));
#else
vec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));
#endif
vec2 refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;refractionCoords.y=1.0-refractionCoords.y;
#endif
#ifdef LODBASEDMICROSFURACE
refractionLOD=refractionLOD*vRefractionMicrosurfaceInfos.y+vRefractionMicrosurfaceInfos.z;
#ifdef SS_LODINREFRACTIONALPHA
float automaticRefractionLOD=UNPACK_LOD(sampleRefraction(refractionSampler,refractionCoords).a);float requestedRefractionLOD=max(automaticRefractionLOD,refractionLOD);
#else
float requestedRefractionLOD=refractionLOD;
#endif
#if defined(REALTIME_FILTERING) && defined(SS_REFRACTIONMAP_3D)
environmentRefraction=vec4(radiance(alphaG,refractionSampler,refractionCoords,vRefractionFilteringInfo),1.0);
#else
environmentRefraction=sampleRefractionLod(refractionSampler,refractionCoords,requestedRefractionLOD);
#endif
#else
float lodRefractionNormalized=saturate(refractionLOD/log2(vRefractionMicrosurfaceInfos.x));float lodRefractionNormalizedDoubled=lodRefractionNormalized*2.0;vec4 environmentRefractionMid=sampleRefraction(refractionSampler,refractionCoords);if (lodRefractionNormalizedDoubled<1.0){environmentRefraction=mix(
sampleRefraction(refractionSamplerHigh,refractionCoords),
environmentRefractionMid,
lodRefractionNormalizedDoubled
);} else {environmentRefraction=mix(
environmentRefractionMid,
sampleRefraction(refractionSamplerLow,refractionCoords),
lodRefractionNormalizedDoubled-1.0
);}
#endif
#ifdef SS_RGBDREFRACTION
environmentRefraction.rgb=fromRGBD(environmentRefraction);
#endif
#ifdef SS_GAMMAREFRACTION
environmentRefraction.rgb=toLinearSpace(environmentRefraction.rgb);
#endif
return environmentRefraction;}
#endif
#define pbr_inline
#define inline
subSurfaceOutParams subSurfaceBlock(
in vec3 vSubSurfaceIntensity
,in vec2 vThicknessParam
,in vec4 vTintColor
,in vec3 normalW
,in vec3 specularEnvironmentReflectance
#ifdef SS_THICKNESSANDMASK_TEXTURE
,in vec4 thicknessMap
#endif
#ifdef SS_REFRACTIONINTENSITY_TEXTURE
,in vec4 refractionIntensityMap
#endif
#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE
,in vec4 translucencyIntensityMap
#endif
#ifdef REFLECTION
#ifdef SS_TRANSLUCENCY
,in mat4 reflectionMatrix
#ifdef USESPHERICALFROMREFLECTIONMAP
#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)
,in vec3 irradianceVector_
#endif
#if defined(REALTIME_FILTERING)
,in samplerCube reflectionSampler
,in vec2 vReflectionFilteringInfo
#ifdef IBL_CDF_FILTERING
,in sampler2D icdfSampler
#endif
#endif
#endif
#ifdef USEIRRADIANCEMAP
#ifdef REFLECTIONMAP_3D
,in samplerCube irradianceSampler
#else
,in sampler2D irradianceSampler
#endif
#endif
#endif
#endif
#if defined(SS_REFRACTION) || defined(SS_TRANSLUCENCY)
,in vec3 surfaceAlbedo
#endif
#ifdef SS_REFRACTION
,in vec3 vPositionW
,in vec3 viewDirectionW
,in mat4 view
,in vec4 vRefractionInfos
,in mat4 refractionMatrix
,in vec4 vRefractionMicrosurfaceInfos
,in vec4 vLightingIntensity
#ifdef SS_LINKREFRACTIONTOTRANSPARENCY
,in float alpha
#endif
#ifdef SS_LODINREFRACTIONALPHA
,in float NdotVUnclamped
#endif
#ifdef SS_LINEARSPECULARREFRACTION
,in float roughness
#endif
,in float alphaG
#ifdef SS_REFRACTIONMAP_3D
,in samplerCube refractionSampler
#ifndef LODBASEDMICROSFURACE
,in samplerCube refractionSamplerLow
,in samplerCube refractionSamplerHigh
#endif
#else
,in sampler2D refractionSampler
#ifndef LODBASEDMICROSFURACE
,in sampler2D refractionSamplerLow
,in sampler2D refractionSamplerHigh
#endif
#endif
#ifdef ANISOTROPIC
,in anisotropicOutParams anisotropicOut
#endif
#ifdef REALTIME_FILTERING
,in vec2 vRefractionFilteringInfo
#endif
#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC
,in vec3 refractionPosition
,in vec3 refractionSize
#endif
#ifdef SS_DISPERSION
,in float dispersion
#endif
#endif
#ifdef SS_TRANSLUCENCY
,in vec3 vDiffusionDistance
,in vec4 vTranslucencyColor
#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
,in vec4 translucencyColorMap
#endif
#endif
)
{subSurfaceOutParams outParams;outParams.specularEnvironmentReflectance=specularEnvironmentReflectance;
#ifdef SS_REFRACTION
float refractionIntensity=vSubSurfaceIntensity.x;
#ifdef SS_LINKREFRACTIONTOTRANSPARENCY
refractionIntensity*=(1.0-alpha);outParams.alpha=1.0;
#endif
#endif
#ifdef SS_TRANSLUCENCY
float translucencyIntensity=vSubSurfaceIntensity.y;
#endif
#ifdef SS_THICKNESSANDMASK_TEXTURE
#ifdef SS_USE_GLTF_TEXTURES
float thickness=thicknessMap.g*vThicknessParam.y+vThicknessParam.x;
#else
float thickness=thicknessMap.r*vThicknessParam.y+vThicknessParam.x;
#endif
#if DEBUGMODE>0
outParams.thicknessMap=thicknessMap;
#endif
#if defined(SS_REFRACTION) && defined(SS_REFRACTION_USE_INTENSITY_FROM_THICKNESS)
#ifdef SS_USE_GLTF_TEXTURES
refractionIntensity*=thicknessMap.r;
#else
refractionIntensity*=thicknessMap.g;
#endif
#endif
#if defined(SS_TRANSLUCENCY) && defined(SS_TRANSLUCENCY_USE_INTENSITY_FROM_THICKNESS)
#ifdef SS_USE_GLTF_TEXTURES
translucencyIntensity*=thicknessMap.a;
#else
translucencyIntensity*=thicknessMap.b;
#endif
#endif
#else
float thickness=vThicknessParam.y;
#endif
#if defined(SS_REFRACTION) && defined(SS_REFRACTIONINTENSITY_TEXTURE)
#ifdef SS_USE_GLTF_TEXTURES
refractionIntensity*=refractionIntensityMap.r;
#else
refractionIntensity*=refractionIntensityMap.g;
#endif
#endif
#if defined(SS_TRANSLUCENCY) && defined(SS_TRANSLUCENCYINTENSITY_TEXTURE)
#ifdef SS_USE_GLTF_TEXTURES
translucencyIntensity*=translucencyIntensityMap.a;
#else
translucencyIntensity*=translucencyIntensityMap.b;
#endif
#endif
#ifdef SS_TRANSLUCENCY
thickness=maxEps(thickness);vec4 translucencyColor=vTranslucencyColor;
#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
translucencyColor*=translucencyColorMap;
#endif
vec3 transmittance=transmittanceBRDF_Burley(translucencyColor.rgb,vDiffusionDistance,thickness);transmittance*=translucencyIntensity;outParams.transmittance=transmittance;outParams.translucencyIntensity=translucencyIntensity;
#endif
#ifdef SS_REFRACTION
vec4 environmentRefraction=vec4(0.,0.,0.,0.);
#ifdef SS_HAS_THICKNESS
float ior=vRefractionInfos.y;
#else
float ior=vRefractionMicrosurfaceInfos.w;
#endif
#ifdef SS_LODINREFRACTIONALPHA
float refractionAlphaG=alphaG;refractionAlphaG=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));float refractionLOD=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,refractionAlphaG,NdotVUnclamped);
#elif defined(SS_LINEARSPECULARREFRACTION)
float refractionRoughness=alphaG;refractionRoughness=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));float refractionLOD=getLinearLodFromRoughness(vRefractionMicrosurfaceInfos.x,refractionRoughness);
#else
float refractionAlphaG=alphaG;refractionAlphaG=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));float refractionLOD=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,refractionAlphaG);
#endif
float refraction_ior=vRefractionInfos.y;
#ifdef SS_DISPERSION
float realIOR=1.0/refraction_ior;float iorDispersionSpread=0.04*dispersion*(realIOR-1.0);vec3 iors=vec3(1.0/(realIOR-iorDispersionSpread),refraction_ior,1.0/(realIOR+iorDispersionSpread));for (int i=0; i<3; i++) {refraction_ior=iors[i];
#endif
vec4 envSample=sampleEnvironmentRefraction(refraction_ior,thickness,refractionLOD,normalW,vPositionW,viewDirectionW,view,vRefractionInfos,refractionMatrix,vRefractionMicrosurfaceInfos,alphaG
#ifdef SS_REFRACTIONMAP_3D
,refractionSampler
#ifndef LODBASEDMICROSFURACE
,refractionSamplerLow
,refractionSamplerHigh
#endif
#else
,refractionSampler
#ifndef LODBASEDMICROSFURACE
,refractionSamplerLow
,refractionSamplerHigh
#endif
#endif
#ifdef ANISOTROPIC
,anisotropicOut
#endif
#ifdef REALTIME_FILTERING
,vRefractionFilteringInfo
#endif
#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC
,refractionPosition
,refractionSize
#endif
);
#ifdef SS_DISPERSION
environmentRefraction[i]=envSample[i];}
#else
environmentRefraction=envSample;
#endif
environmentRefraction.rgb*=vRefractionInfos.x;
#endif
#ifdef SS_REFRACTION
vec3 refractionTransmittance=vec3(refractionIntensity);
#ifdef SS_THICKNESSANDMASK_TEXTURE
vec3 volumeAlbedo=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w);refractionTransmittance*=cocaLambert(volumeAlbedo,thickness);
#elif defined(SS_LINKREFRACTIONTOTRANSPARENCY)
float maxChannel=max(max(surfaceAlbedo.r,surfaceAlbedo.g),surfaceAlbedo.b);vec3 volumeAlbedo=saturate(maxChannel*surfaceAlbedo);environmentRefraction.rgb*=volumeAlbedo;
#else
vec3 volumeAlbedo=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w);refractionTransmittance*=cocaLambert(volumeAlbedo,vThicknessParam.y);
#endif
#ifdef SS_ALBEDOFORREFRACTIONTINT
environmentRefraction.rgb*=surfaceAlbedo.rgb;
#endif
outParams.surfaceAlbedo=surfaceAlbedo*(1.-refractionIntensity);
#ifdef REFLECTION
outParams.refractionFactorForIrradiance=(1.-refractionIntensity);
#endif
#ifdef UNUSED_MULTIPLEBOUNCES
vec3 bounceSpecularEnvironmentReflectance=(2.0*specularEnvironmentReflectance)/(1.0+specularEnvironmentReflectance);outParams.specularEnvironmentReflectance=mix(bounceSpecularEnvironmentReflectance,specularEnvironmentReflectance,refractionIntensity);
#endif
refractionTransmittance*=1.0-max(outParams.specularEnvironmentReflectance.r,max(outParams.specularEnvironmentReflectance.g,outParams.specularEnvironmentReflectance.b));
#if DEBUGMODE>0
outParams.refractionTransmittance=refractionTransmittance;
#endif
outParams.finalRefraction=environmentRefraction.rgb*refractionTransmittance*vLightingIntensity.z;
#if DEBUGMODE>0
outParams.environmentRefraction=environmentRefraction;
#endif
#endif
#if defined(REFLECTION) && defined(SS_TRANSLUCENCY)
#if defined(NORMAL) && defined(USESPHERICALINVERTEX) || !defined(USESPHERICALFROMREFLECTIONMAP)
vec3 irradianceVector=vec3(reflectionMatrix*vec4(normalW,0)).xyz;
#ifdef REFLECTIONMAP_OPPOSITEZ
irradianceVector.z*=-1.0;
#endif
#ifdef INVERTCUBICMAP
irradianceVector.y*=-1.0;
#endif
#else
vec3 irradianceVector=irradianceVector_;
#endif
#if defined(USESPHERICALFROMREFLECTIONMAP)
#if defined(REALTIME_FILTERING)
vec3 refractionIrradiance=irradiance(reflectionSampler,-irradianceVector,vReflectionFilteringInfo
#ifdef IBL_CDF_FILTERING
,icdfSampler
#endif
);
#else
vec3 refractionIrradiance=computeEnvironmentIrradiance(-irradianceVector);
#endif
#elif defined(USEIRRADIANCEMAP)
#ifdef REFLECTIONMAP_3D
vec3 irradianceCoords=irradianceVector;
#else
vec2 irradianceCoords=irradianceVector.xy;
#ifdef REFLECTIONMAP_PROJECTION
irradianceCoords/=irradianceVector.z;
#endif
irradianceCoords.y=1.0-irradianceCoords.y;
#endif
vec4 refractionIrradiance=sampleReflection(irradianceSampler,-irradianceCoords);
#ifdef RGBDREFLECTION
refractionIrradiance.rgb=fromRGBD(refractionIrradiance);
#endif
#ifdef GAMMAREFLECTION
refractionIrradiance.rgb=toLinearSpace(refractionIrradiance.rgb);
#endif
#else
vec4 refractionIrradiance=vec4(0.);
#endif
refractionIrradiance.rgb*=transmittance;
#ifdef SS_ALBEDOFORTRANSLUCENCYTINT
refractionIrradiance.rgb*=surfaceAlbedo.rgb;
#endif
outParams.refractionIrradiance=refractionIrradiance.rgb;
#endif
return outParams;}
#endif
`;H.IncludesShadersStore[c8e]||(H.IncludesShadersStore[c8e]=gVe);const u8e="pbrBlockNormalGeometric",_Ve=`vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);
#ifdef NORMAL
vec3 normalW=normalize(vNormalW);
#else
vec3 normalW=normalize(cross(dFdx(vPositionW),dFdy(vPositionW)))*vEyePosition.w;
#endif
vec3 geometricNormalW=normalW;
#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)
geometricNormalW=gl_FrontFacing ? geometricNormalW : -geometricNormalW;
#endif
`;H.IncludesShadersStore[u8e]||(H.IncludesShadersStore[u8e]=_Ve);const xse="bumpFragment",h8e=`vec2 uvOffset=vec2(0.0,0.0);
#if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)
#ifdef NORMALXYSCALE
float normalScale=1.0;
#elif defined(BUMP)
float normalScale=vBumpInfos.y;
#else
float normalScale=1.0;
#endif
#if defined(TANGENT) && defined(NORMAL)
mat3 TBN=vTBN;
#elif defined(BUMP)
vec2 TBNUV=gl_FrontFacing ? vBumpUV : -vBumpUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vTangentSpaceParams);
#else
vec2 TBNUV=gl_FrontFacing ? vDetailUV : -vDetailUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vec2(1.,1.));
#endif
#elif defined(ANISOTROPIC)
#if defined(TANGENT) && defined(NORMAL)
mat3 TBN=vTBN;
#else
vec2 TBNUV=gl_FrontFacing ? vMainUV1 : -vMainUV1;mat3 TBN=cotangent_frame(normalW,vPositionW,TBNUV,vec2(1.,1.));
#endif
#endif
#ifdef PARALLAX
mat3 invTBN=transposeMat3(TBN);
#ifdef PARALLAXOCCLUSION
uvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z);
#else
uvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);
#endif
#endif
#ifdef DETAIL
vec4 detailColor=texture2D(detailSampler,vDetailUV+uvOffset);vec2 detailNormalRG=detailColor.wy*2.0-1.0;float detailNormalB=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));vec3 detailNormal=vec3(detailNormalRG,detailNormalB);
#endif
#ifdef BUMP
#ifdef OBJECTSPACE_NORMALMAP
#define CUSTOM_FRAGMENT_BUMP_FRAGMENT
normalW=normalize(texture2D(bumpSampler,vBumpUV).xyz *2.0-1.0);normalW=normalize(mat3(normalMatrix)*normalW);
#elif !defined(DETAIL)
normalW=perturbNormal(TBN,texture2D(bumpSampler,vBumpUV+uvOffset).xyz,vBumpInfos.y);
#else
vec3 bumpNormal=texture2D(bumpSampler,vBumpUV+uvOffset).xyz*2.0-1.0;
#if DETAIL_NORMALBLENDMETHOD==0 
detailNormal.xy*=vDetailInfos.z;vec3 blendedNormal=normalize(vec3(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));
#elif DETAIL_NORMALBLENDMETHOD==1 
detailNormal.xy*=vDetailInfos.z;bumpNormal+=vec3(0.0,0.0,1.0);detailNormal*=vec3(-1.0,-1.0,1.0);vec3 blendedNormal=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;
#endif
normalW=perturbNormalBase(TBN,blendedNormal,vBumpInfos.y);
#endif
#elif defined(DETAIL)
detailNormal.xy*=vDetailInfos.z;normalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);
#endif
`;H.IncludesShadersStore[xse]||(H.IncludesShadersStore[xse]=h8e);const d8e={name:xse,shader:h8e},vVe=Object.freeze(Object.defineProperty({__proto__:null,bumpFragment:d8e},Symbol.toStringTag,{value:"Module"})),f8e="pbrBlockNormalFinal",AVe=`#if defined(FORCENORMALFORWARD) && defined(NORMAL)
vec3 faceNormal=normalize(cross(dFdx(vPositionW),dFdy(vPositionW)))*vEyePosition.w;
#if defined(TWOSIDEDLIGHTING)
faceNormal=gl_FrontFacing ? faceNormal : -faceNormal;
#endif
normalW*=sign(dot(normalW,faceNormal));
#endif
#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)
normalW=gl_FrontFacing ? normalW : -normalW;
#endif
`;H.IncludesShadersStore[f8e]||(H.IncludesShadersStore[f8e]=AVe);const p8e="depthPrePass",CVe=`#ifdef DEPTHPREPASS
gl_FragColor=vec4(0.,0.,0.,1.0);return;
#endif
`;H.IncludesShadersStore[p8e]||(H.IncludesShadersStore[p8e]=CVe);const m8e="pbrBlockLightmapInit",xVe=`#ifdef LIGHTMAP
vec4 lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset);
#ifdef RGBDLIGHTMAP
lightmapColor.rgb=fromRGBD(lightmapColor);
#endif
#ifdef GAMMALIGHTMAP
lightmapColor.rgb=toLinearSpace(lightmapColor.rgb);
#endif
lightmapColor.rgb*=vLightmapInfos.y;
#endif
`;H.IncludesShadersStore[m8e]||(H.IncludesShadersStore[m8e]=xVe);const g8e="pbrBlockGeometryInfo",bVe=`float NdotVUnclamped=dot(normalW,viewDirectionW);float NdotV=absEps(NdotVUnclamped);float alphaG=convertRoughnessToAverageSlope(roughness);vec2 AARoughnessFactors=getAARoughnessFactors(normalW.xyz);
#ifdef SPECULARAA
alphaG+=AARoughnessFactors.y;
#endif
#if defined(ENVIRONMENTBRDF)
vec3 environmentBrdf=getBRDFLookup(NdotV,roughness);
#endif
#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
#ifdef RADIANCEOCCLUSION
#ifdef AMBIENTINGRAYSCALE
float ambientMonochrome=aoOut.ambientOcclusionColor.r;
#else
float ambientMonochrome=getLuminance(aoOut.ambientOcclusionColor);
#endif
float seo=environmentRadianceOcclusion(ambientMonochrome,NdotVUnclamped);
#endif
#ifdef HORIZONOCCLUSION
#ifdef BUMP
#ifdef REFLECTIONMAP_3D
float eho=environmentHorizonOcclusion(-viewDirectionW,normalW,geometricNormalW);
#endif
#endif
#endif
#endif
`;H.IncludesShadersStore[g8e]||(H.IncludesShadersStore[g8e]=bVe);const _8e="pbrBlockReflectance0",SVe=`float reflectance=max(max(reflectivityOut.surfaceReflectivityColor.r,reflectivityOut.surfaceReflectivityColor.g),reflectivityOut.surfaceReflectivityColor.b);vec3 specularEnvironmentR0=reflectivityOut.surfaceReflectivityColor.rgb;
#ifdef METALLICWORKFLOW
vec3 specularEnvironmentR90=vec3(metallicReflectanceFactors.a);
#else 
vec3 specularEnvironmentR90=vec3(1.0,1.0,1.0);
#endif
#ifdef ALPHAFRESNEL
float reflectance90=fresnelGrazingReflectance(reflectance);specularEnvironmentR90=specularEnvironmentR90*reflectance90;
#endif
`;H.IncludesShadersStore[_8e]||(H.IncludesShadersStore[_8e]=SVe);const v8e="pbrBlockReflectance",yVe=`#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
vec3 specularEnvironmentReflectance=getReflectanceFromBRDFLookup(clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,environmentBrdf);
#ifdef RADIANCEOCCLUSION
specularEnvironmentReflectance*=seo;
#endif
#ifdef HORIZONOCCLUSION
#ifdef BUMP
#ifdef REFLECTIONMAP_3D
specularEnvironmentReflectance*=eho;
#endif
#endif
#endif
#else
vec3 specularEnvironmentReflectance=getReflectanceFromAnalyticalBRDFLookup_Jones(NdotV,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,sqrt(microSurface));
#endif
#ifdef CLEARCOAT
specularEnvironmentReflectance*=clearcoatOut.conservationFactor;
#if defined(CLEARCOAT_TINT)
specularEnvironmentReflectance*=clearcoatOut.absorption;
#endif
#endif
`;H.IncludesShadersStore[v8e]||(H.IncludesShadersStore[v8e]=yVe);const A8e="pbrBlockDirectLighting",MVe=`vec3 diffuseBase=vec3(0.,0.,0.);
#ifdef SPECULARTERM
vec3 specularBase=vec3(0.,0.,0.);
#endif
#ifdef CLEARCOAT
vec3 clearCoatBase=vec3(0.,0.,0.);
#endif
#ifdef SHEEN
vec3 sheenBase=vec3(0.,0.,0.);
#endif
preLightingInfo preInfo;lightingInfo info;float shadow=1.; 
float aggShadow=0.;float numLights=0.;
#if defined(CLEARCOAT) && defined(CLEARCOAT_TINT)
vec3 absorption=vec3(0.);
#endif
`;H.IncludesShadersStore[A8e]||(H.IncludesShadersStore[A8e]=MVe);const C8e="pbrBlockFinalLitComponents",EVe=`aggShadow=aggShadow/numLights;
#if defined(ENVIRONMENTBRDF)
#ifdef MS_BRDF_ENERGY_CONSERVATION
vec3 energyConservationFactor=getEnergyConservationFactor(clearcoatOut.specularEnvironmentR0,environmentBrdf);
#endif
#endif
#ifndef METALLICWORKFLOW
#ifdef SPECULAR_GLOSSINESS_ENERGY_CONSERVATION
surfaceAlbedo.rgb=(1.-reflectance)*surfaceAlbedo.rgb;
#endif
#endif
#if defined(SHEEN) && defined(SHEEN_ALBEDOSCALING) && defined(ENVIRONMENTBRDF)
surfaceAlbedo.rgb=sheenOut.sheenAlbedoScaling*surfaceAlbedo.rgb;
#endif
#ifdef REFLECTION
vec3 finalIrradiance=reflectionOut.environmentIrradiance;
#if defined(CLEARCOAT)
finalIrradiance*=clearcoatOut.conservationFactor;
#if defined(CLEARCOAT_TINT)
finalIrradiance*=clearcoatOut.absorption;
#endif
#endif
finalIrradiance*=surfaceAlbedo.rgb;
#if defined(SS_REFRACTION)
finalIrradiance*=subSurfaceOut.refractionFactorForIrradiance;
#endif
#if defined(SS_TRANSLUCENCY)
finalIrradiance*=(1.0-subSurfaceOut.translucencyIntensity);finalIrradiance+=subSurfaceOut.refractionIrradiance;
#endif
finalIrradiance*=vLightingIntensity.z;finalIrradiance*=aoOut.ambientOcclusionColor;
#endif
#ifdef SPECULARTERM
vec3 finalSpecular=specularBase;finalSpecular=max(finalSpecular,0.0);vec3 finalSpecularScaled=finalSpecular*vLightingIntensity.x*vLightingIntensity.w;
#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)
finalSpecularScaled*=energyConservationFactor;
#endif
#if defined(SHEEN) && defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)
finalSpecularScaled*=sheenOut.sheenAlbedoScaling;
#endif
#endif
#ifdef REFLECTION
vec3 finalRadiance=reflectionOut.environmentRadiance.rgb;finalRadiance*=subSurfaceOut.specularEnvironmentReflectance;vec3 finalRadianceScaled=finalRadiance*vLightingIntensity.z;
#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)
finalRadianceScaled*=energyConservationFactor;
#endif
#if defined(SHEEN) && defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)
finalRadianceScaled*=sheenOut.sheenAlbedoScaling;
#endif
#endif
#ifdef SHEEN
vec3 finalSheen=sheenBase*sheenOut.sheenColor;finalSheen=max(finalSheen,0.0);vec3 finalSheenScaled=finalSheen*vLightingIntensity.x*vLightingIntensity.w;
#if defined(CLEARCOAT) && defined(REFLECTION) && defined(ENVIRONMENTBRDF)
sheenOut.finalSheenRadianceScaled*=clearcoatOut.conservationFactor;
#if defined(CLEARCOAT_TINT)
sheenOut.finalSheenRadianceScaled*=clearcoatOut.absorption;
#endif
#endif
#endif
#ifdef CLEARCOAT
vec3 finalClearCoat=clearCoatBase;finalClearCoat=max(finalClearCoat,0.0);vec3 finalClearCoatScaled=finalClearCoat*vLightingIntensity.x*vLightingIntensity.w;
#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)
finalClearCoatScaled*=clearcoatOut.energyConservationFactorClearCoat;
#endif
#ifdef SS_REFRACTION
subSurfaceOut.finalRefraction*=clearcoatOut.conservationFactor;
#ifdef CLEARCOAT_TINT
subSurfaceOut.finalRefraction*=clearcoatOut.absorption;
#endif
#endif
#endif
#ifdef ALPHABLEND
float luminanceOverAlpha=0.0;
#if defined(REFLECTION) && defined(RADIANCEOVERALPHA)
luminanceOverAlpha+=getLuminance(finalRadianceScaled);
#if defined(CLEARCOAT)
luminanceOverAlpha+=getLuminance(clearcoatOut.finalClearCoatRadianceScaled);
#endif
#endif
#if defined(SPECULARTERM) && defined(SPECULAROVERALPHA)
luminanceOverAlpha+=getLuminance(finalSpecularScaled);
#endif
#if defined(CLEARCOAT) && defined(CLEARCOATOVERALPHA)
luminanceOverAlpha+=getLuminance(finalClearCoatScaled);
#endif
#if defined(RADIANCEOVERALPHA) || defined(SPECULAROVERALPHA) || defined(CLEARCOATOVERALPHA)
alpha=saturate(alpha+luminanceOverAlpha*luminanceOverAlpha);
#endif
#endif
`;H.IncludesShadersStore[C8e]||(H.IncludesShadersStore[C8e]=EVe);const x8e="pbrBlockFinalUnlitComponents",TVe=`vec3 finalDiffuse=diffuseBase;
#if !defined(SS_TRANSLUCENCY)
finalDiffuse*=surfaceAlbedo.rgb;
#endif
finalDiffuse=max(finalDiffuse,0.0);finalDiffuse*=vLightingIntensity.x;vec3 finalAmbient=vAmbientColor;finalAmbient*=surfaceAlbedo.rgb;vec3 finalEmissive=vEmissiveColor;
#ifdef EMISSIVE
vec3 emissiveColorTex=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb;
#ifdef GAMMAEMISSIVE
finalEmissive*=toLinearSpace(emissiveColorTex.rgb);
#else
finalEmissive*=emissiveColorTex.rgb;
#endif
finalEmissive*= vEmissiveInfos.y;
#endif
finalEmissive*=vLightingIntensity.y;
#ifdef AMBIENT
vec3 ambientOcclusionForDirectDiffuse=mix(vec3(1.),aoOut.ambientOcclusionColor,vAmbientInfos.w);
#else
vec3 ambientOcclusionForDirectDiffuse=aoOut.ambientOcclusionColor;
#endif
finalAmbient*=aoOut.ambientOcclusionColor;finalDiffuse*=ambientOcclusionForDirectDiffuse;
`;H.IncludesShadersStore[x8e]||(H.IncludesShadersStore[x8e]=TVe);const b8e="pbrBlockFinalColorComposition",LVe=`vec4 finalColor=vec4(
#ifndef UNLIT
#ifdef REFLECTION
finalIrradiance +
#endif
#ifdef SPECULARTERM
finalSpecularScaled +
#endif
#ifdef SHEEN
finalSheenScaled +
#endif
#ifdef CLEARCOAT
finalClearCoatScaled +
#endif
#ifdef REFLECTION
finalRadianceScaled +
#if defined(SHEEN) && defined(ENVIRONMENTBRDF)
sheenOut.finalSheenRadianceScaled +
#endif
#ifdef CLEARCOAT
clearcoatOut.finalClearCoatRadianceScaled +
#endif
#endif
#ifdef SS_REFRACTION
subSurfaceOut.finalRefraction +
#endif
#endif
finalAmbient +
finalDiffuse,
alpha);
#ifdef LIGHTMAP
#ifndef LIGHTMAPEXCLUDED
#ifdef USELIGHTMAPASSHADOWMAP
finalColor.rgb*=lightmapColor.rgb;
#else
finalColor.rgb+=lightmapColor.rgb;
#endif
#endif
#endif
finalColor.rgb+=finalEmissive;
#define CUSTOM_FRAGMENT_BEFORE_FOG
finalColor=max(finalColor,0.0);
`;H.IncludesShadersStore[b8e]||(H.IncludesShadersStore[b8e]=LVe);const S8e="pbrBlockImageProcessing",IVe=`#if defined(IMAGEPROCESSINGPOSTPROCESS) || defined(SS_SCATTERING)
#if !defined(SKIPFINALCOLORCLAMP)
finalColor.rgb=clamp(finalColor.rgb,0.,30.0);
#endif
#else
finalColor=applyImageProcessing(finalColor);
#endif
finalColor.a*=visibility;
#ifdef PREMULTIPLYALPHA
finalColor.rgb*=finalColor.a;
#endif
`;H.IncludesShadersStore[S8e]||(H.IncludesShadersStore[S8e]=IVe);const y8e="pbrBlockPrePass",PVe=`float writeGeometryInfo=finalColor.a>ALPHATESTVALUE ? 1.0 : 0.0;
#ifdef PREPASS_POSITION
gl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);
#endif
#ifdef PREPASS_LOCAL_POSITION
gl_FragData[PREPASS_LOCAL_POSITION_INDEX]=vec4(vPosition,writeGeometryInfo);
#endif
#if defined(PREPASS_VELOCITY)
vec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);
#elif defined(PREPASS_VELOCITY_LINEAR)
vec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w)-(vCurrentPosition.xy/vCurrentPosition.w));gl_FragData[PREPASS_VELOCITY_LINEAR_INDEX]=vec4(velocity,0.0,writeGeometryInfo);
#endif
#ifdef PREPASS_ALBEDO
gl_FragData[PREPASS_ALBEDO_INDEX]=vec4(surfaceAlbedo,writeGeometryInfo);
#endif
#ifdef PREPASS_ALBEDO_SQRT
vec3 sqAlbedo=sqrt(surfaceAlbedo); 
#endif
#ifdef PREPASS_IRRADIANCE
vec3 irradiance=finalDiffuse;
#ifndef UNLIT
#ifdef REFLECTION
irradiance+=finalIrradiance;
#endif
#endif
#ifdef SS_SCATTERING
#ifdef PREPASS_COLOR
gl_FragData[PREPASS_COLOR_INDEX]=vec4(finalColor.rgb-irradiance,finalColor.a); 
#endif
irradiance/=sqAlbedo;
#else
#ifdef PREPASS_COLOR
gl_FragData[PREPASS_COLOR_INDEX]=finalColor; 
#endif
float scatteringDiffusionProfile=255.;
#endif
gl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(clamp(irradiance,vec3(0.),vec3(1.)),writeGeometryInfo*scatteringDiffusionProfile/255.); 
#elif defined(PREPASS_COLOR)
gl_FragData[PREPASS_COLOR_INDEX]=vec4(finalColor.rgb,finalColor.a);
#endif
#ifdef PREPASS_DEPTH
gl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo); 
#endif
#ifdef PREPASS_SCREENSPACE_DEPTH
gl_FragData[PREPASS_SCREENSPACE_DEPTH_INDEX]=vec4(gl_FragCoord.z,0.0,0.0,writeGeometryInfo);
#endif
#ifdef PREPASS_NORMAL
#ifdef PREPASS_NORMAL_WORLDSPACE
gl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalW,writeGeometryInfo);
#else
gl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo);
#endif
#endif
#ifdef PREPASS_WORLD_NORMAL
gl_FragData[PREPASS_WORLD_NORMAL_INDEX]=vec4(normalW*0.5+0.5,writeGeometryInfo); 
#endif
#ifdef PREPASS_ALBEDO_SQRT
gl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(sqAlbedo,writeGeometryInfo); 
#endif
#ifdef PREPASS_REFLECTIVITY
#ifndef UNLIT
gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo;
#else
gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4( 0.0,0.0,0.0,1.0 )*writeGeometryInfo;
#endif
#endif
`;H.IncludesShadersStore[y8e]||(H.IncludesShadersStore[y8e]=PVe);const M8e="oitFragment",OVe=`#ifdef ORDER_INDEPENDENT_TRANSPARENCY
float fragDepth=gl_FragCoord.z; 
#ifdef ORDER_INDEPENDENT_TRANSPARENCY_16BITS
uint halfFloat=packHalf2x16(vec2(fragDepth));vec2 full=unpackHalf2x16(halfFloat);fragDepth=full.x;
#endif
ivec2 fragCoord=ivec2(gl_FragCoord.xy);vec2 lastDepth=texelFetch(oitDepthSampler,fragCoord,0).rg;vec4 lastFrontColor=texelFetch(oitFrontColorSampler,fragCoord,0);depth.rg=vec2(-MAX_DEPTH);frontColor=lastFrontColor;backColor=vec4(0.0);
#ifdef USE_REVERSE_DEPTHBUFFER
float furthestDepth=-lastDepth.x;float nearestDepth=lastDepth.y;
#else
float nearestDepth=-lastDepth.x;float furthestDepth=lastDepth.y;
#endif
float alphaMultiplier=1.0-lastFrontColor.a;
#ifdef USE_REVERSE_DEPTHBUFFER
if (fragDepth>nearestDepth || fragDepth<furthestDepth) {
#else
if (fragDepth<nearestDepth || fragDepth>furthestDepth) {
#endif
return;}
#ifdef USE_REVERSE_DEPTHBUFFER
if (fragDepth<nearestDepth && fragDepth>furthestDepth) {
#else
if (fragDepth>nearestDepth && fragDepth<furthestDepth) {
#endif
depth.rg=vec2(-fragDepth,fragDepth);return;}
#endif
`;H.IncludesShadersStore[M8e]||(H.IncludesShadersStore[M8e]=OVe);const E8e="pbrDebug",RVe=`#if DEBUGMODE>0
if (vClipSpacePosition.x/vClipSpacePosition.w>=vDebugMode.x) {
#if DEBUGMODE==1
gl_FragColor.rgb=vPositionW.rgb;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==2 && defined(NORMAL)
gl_FragColor.rgb=vNormalW.rgb;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==3 && defined(BUMP) || DEBUGMODE==3 && defined(PARALLAX) || DEBUGMODE==3 && defined(ANISOTROPIC)
gl_FragColor.rgb=TBN[0];
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==4 && defined(BUMP) || DEBUGMODE==4 && defined(PARALLAX) || DEBUGMODE==4 && defined(ANISOTROPIC)
gl_FragColor.rgb=TBN[1];
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==5
gl_FragColor.rgb=normalW;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==6 && defined(MAINUV1)
gl_FragColor.rgb=vec3(vMainUV1,0.0);
#elif DEBUGMODE==7 && defined(MAINUV2)
gl_FragColor.rgb=vec3(vMainUV2,0.0);
#elif DEBUGMODE==8 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP)
gl_FragColor.rgb=clearcoatOut.TBNClearCoat[0];
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==9 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP)
gl_FragColor.rgb=clearcoatOut.TBNClearCoat[1];
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==10 && defined(CLEARCOAT)
gl_FragColor.rgb=clearcoatOut.clearCoatNormalW;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==11 && defined(ANISOTROPIC)
gl_FragColor.rgb=anisotropicOut.anisotropicNormal;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==12 && defined(ANISOTROPIC)
gl_FragColor.rgb=anisotropicOut.anisotropicTangent;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==13 && defined(ANISOTROPIC)
gl_FragColor.rgb=anisotropicOut.anisotropicBitangent;
#define DEBUGMODE_NORMALIZE
#elif DEBUGMODE==20 && defined(ALBEDO)
gl_FragColor.rgb=albedoTexture.rgb;
#ifndef GAMMAALBEDO
#define DEBUGMODE_GAMMA
#endif
#elif DEBUGMODE==21 && defined(AMBIENT)
gl_FragColor.rgb=aoOut.ambientOcclusionColorMap.rgb;
#elif DEBUGMODE==22 && defined(OPACITY)
gl_FragColor.rgb=opacityMap.rgb;
#elif DEBUGMODE==23 && defined(EMISSIVE)
gl_FragColor.rgb=emissiveColorTex.rgb;
#ifndef GAMMAEMISSIVE
#define DEBUGMODE_GAMMA
#endif
#elif DEBUGMODE==24 && defined(LIGHTMAP)
gl_FragColor.rgb=lightmapColor.rgb;
#ifndef GAMMALIGHTMAP
#define DEBUGMODE_GAMMA
#endif
#elif DEBUGMODE==25 && defined(REFLECTIVITY) && defined(METALLICWORKFLOW)
gl_FragColor.rgb=reflectivityOut.surfaceMetallicColorMap.rgb;
#elif DEBUGMODE==26 && defined(REFLECTIVITY) && !defined(METALLICWORKFLOW)
gl_FragColor.rgb=reflectivityOut.surfaceReflectivityColorMap.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==27 && defined(CLEARCOAT) && defined(CLEARCOAT_TEXTURE)
gl_FragColor.rgb=vec3(clearcoatOut.clearCoatMapData.rg,0.0);
#elif DEBUGMODE==28 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)
gl_FragColor.rgb=clearcoatOut.clearCoatTintMapData.rgb;
#elif DEBUGMODE==29 && defined(SHEEN) && defined(SHEEN_TEXTURE)
gl_FragColor.rgb=sheenOut.sheenMapData.rgb;
#elif DEBUGMODE==30 && defined(ANISOTROPIC) && defined(ANISOTROPIC_TEXTURE)
gl_FragColor.rgb=anisotropicOut.anisotropyMapData.rgb;
#elif DEBUGMODE==31 && defined(SUBSURFACE) && defined(SS_THICKNESSANDMASK_TEXTURE)
gl_FragColor.rgb=subSurfaceOut.thicknessMap.rgb;
#elif DEBUGMODE==32 && defined(BUMP)
gl_FragColor.rgb=texture2D(bumpSampler,vBumpUV).rgb;
#elif DEBUGMODE==40 && defined(SS_REFRACTION)
gl_FragColor.rgb=subSurfaceOut.environmentRefraction.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==41 && defined(REFLECTION)
gl_FragColor.rgb=reflectionOut.environmentRadiance.rgb;
#ifndef GAMMAREFLECTION
#define DEBUGMODE_GAMMA
#endif
#elif DEBUGMODE==42 && defined(CLEARCOAT) && defined(REFLECTION)
gl_FragColor.rgb=clearcoatOut.environmentClearCoatRadiance.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==50
gl_FragColor.rgb=diffuseBase.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==51 && defined(SPECULARTERM)
gl_FragColor.rgb=specularBase.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==52 && defined(CLEARCOAT)
gl_FragColor.rgb=clearCoatBase.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==53 && defined(SHEEN)
gl_FragColor.rgb=sheenBase.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==54 && defined(REFLECTION)
gl_FragColor.rgb=reflectionOut.environmentIrradiance.rgb;
#ifndef GAMMAREFLECTION
#define DEBUGMODE_GAMMA
#endif
#elif DEBUGMODE==60
gl_FragColor.rgb=surfaceAlbedo.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==61
gl_FragColor.rgb=clearcoatOut.specularEnvironmentR0;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==62 && defined(METALLICWORKFLOW)
gl_FragColor.rgb=vec3(reflectivityOut.metallicRoughness.r);
#elif DEBUGMODE==71 && defined(METALLICWORKFLOW)
gl_FragColor.rgb=reflectivityOut.metallicF0;
#elif DEBUGMODE==63
gl_FragColor.rgb=vec3(roughness);
#elif DEBUGMODE==64
gl_FragColor.rgb=vec3(alphaG);
#elif DEBUGMODE==65
gl_FragColor.rgb=vec3(NdotV);
#elif DEBUGMODE==66 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT)
gl_FragColor.rgb=clearcoatOut.clearCoatColor.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==67 && defined(CLEARCOAT)
gl_FragColor.rgb=vec3(clearcoatOut.clearCoatRoughness);
#elif DEBUGMODE==68 && defined(CLEARCOAT)
gl_FragColor.rgb=vec3(clearcoatOut.clearCoatNdotV);
#elif DEBUGMODE==69 && defined(SUBSURFACE) && defined(SS_TRANSLUCENCY)
gl_FragColor.rgb=subSurfaceOut.transmittance;
#elif DEBUGMODE==70 && defined(SUBSURFACE) && defined(SS_REFRACTION)
gl_FragColor.rgb=subSurfaceOut.refractionTransmittance;
#elif DEBUGMODE==72
gl_FragColor.rgb=vec3(microSurface);
#elif DEBUGMODE==73
gl_FragColor.rgb=vAlbedoColor.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==74 && !defined(METALLICWORKFLOW)
gl_FragColor.rgb=vReflectivityColor.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==75
gl_FragColor.rgb=vEmissiveColor.rgb;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==80 && defined(RADIANCEOCCLUSION)
gl_FragColor.rgb=vec3(seo);
#elif DEBUGMODE==81 && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)
gl_FragColor.rgb=vec3(eho);
#elif DEBUGMODE==82 && defined(MS_BRDF_ENERGY_CONSERVATION)
gl_FragColor.rgb=vec3(energyConservationFactor);
#elif DEBUGMODE==83 && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
gl_FragColor.rgb=specularEnvironmentReflectance;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==84 && defined(CLEARCOAT) && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
gl_FragColor.rgb=clearcoatOut.clearCoatEnvironmentReflectance;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==85 && defined(SHEEN) && defined(REFLECTION)
gl_FragColor.rgb=sheenOut.sheenEnvironmentReflectance;
#define DEBUGMODE_GAMMA
#elif DEBUGMODE==86 && defined(ALPHABLEND)
gl_FragColor.rgb=vec3(luminanceOverAlpha);
#elif DEBUGMODE==87
gl_FragColor.rgb=vec3(alpha);
#elif DEBUGMODE==88 && defined(ALBEDO)
gl_FragColor.rgb=vec3(albedoTexture.a);
#elif DEBUGMODE==89
gl_FragColor.rgb=aoOut.ambientOcclusionColor.rgb;
#else
float stripeWidth=30.;float stripePos=floor(gl_FragCoord.x/stripeWidth);float whichColor=mod(stripePos,2.);vec3 color1=vec3(.6,.2,.2);vec3 color2=vec3(.3,.1,.1);gl_FragColor.rgb=mix(color1,color2,whichColor);
#endif
gl_FragColor.rgb*=vDebugMode.y;
#ifdef DEBUGMODE_NORMALIZE
gl_FragColor.rgb=normalize(gl_FragColor.rgb)*0.5+0.5;
#endif
#ifdef DEBUGMODE_GAMMA
gl_FragColor.rgb=toGammaSpace(gl_FragColor.rgb);
#endif
gl_FragColor.a=1.0;
#ifdef PREPASS
gl_FragData[0]=toLinearSpace(gl_FragColor); 
gl_FragData[1]=vec4(0.,0.,0.,0.); 
#endif
#ifdef DEBUGMODE_FORCERETURN
return;
#endif
}
#endif
`;H.IncludesShadersStore[E8e]||(H.IncludesShadersStore[E8e]=RVe);const bse="pbrPixelShader",T8e=`#define CUSTOM_FRAGMENT_EXTENSION
#if defined(BUMP) || !defined(NORMAL) || defined(FORCENORMALFORWARD) || defined(SPECULARAA) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)
#extension GL_OES_standard_derivatives : enable
#endif
#ifdef LODBASEDMICROSFURACE
#extension GL_EXT_shader_texture_lod : enable
#endif
#define CUSTOM_FRAGMENT_BEGIN
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<prePassDeclaration>[SCENE_MRT_COUNT]
precision highp float;
#include<oitDeclaration>
#ifndef FROMLINEARSPACE
#define FROMLINEARSPACE
#endif
#include<__decl__pbrFragment>
#include<pbrFragmentExtraDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#include<pbrFragmentSamplersDeclaration>
#include<imageProcessingDeclaration>
#include<clipPlaneFragmentDeclaration>
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
#include<helperFunctions>
#include<subSurfaceScatteringFunctions>
#include<importanceSampling>
#include<pbrHelperFunctions>
#include<imageProcessingFunctions>
#include<shadowsFragmentFunctions>
#include<harmonicsFunctions>
#include<pbrDirectLightingSetupFunctions>
#include<pbrDirectLightingFalloffFunctions>
#include<pbrBRDFFunctions>
#include<hdrFilteringFunctions>
#include<pbrDirectLightingFunctions>
#include<pbrIBLFunctions>
#include<bumpFragmentMainFunctions>
#include<bumpFragmentFunctions>
#ifdef REFLECTION
#include<reflectionFunction>
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
#include<pbrBlockAlbedoOpacity>
#include<pbrBlockReflectivity>
#include<pbrBlockAmbientOcclusion>
#include<pbrBlockAlphaFresnel>
#include<pbrBlockAnisotropic>
#include<pbrBlockReflection>
#include<pbrBlockSheen>
#include<pbrBlockClearcoat>
#include<pbrBlockIridescence>
#include<pbrBlockSubSurface>
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
#include<pbrBlockNormalGeometric>
#include<bumpFragment>
#include<pbrBlockNormalFinal>
albedoOpacityOutParams albedoOpacityOut;
#ifdef ALBEDO
vec4 albedoTexture=texture2D(albedoSampler,vAlbedoUV+uvOffset);
#endif
#ifdef BASEWEIGHT
vec4 baseWeightTexture=texture2D(baseWeightSampler,vBaseWeightUV+uvOffset);
#endif
#ifdef OPACITY
vec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);
#endif
#ifdef DECAL
vec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);
#endif
albedoOpacityOut=albedoOpacityBlock(
vAlbedoColor
#ifdef ALBEDO
,albedoTexture
,vAlbedoInfos
#endif
,baseWeight
#ifdef BASEWEIGHT
,baseWeightTexture
,vBaseWeightInfos
#endif
#ifdef OPACITY
,opacityMap
,vOpacityInfos
#endif
#ifdef DETAIL
,detailColor
,vDetailInfos
#endif
#ifdef DECAL
,decalColor
,vDecalInfos
#endif
);vec3 surfaceAlbedo=albedoOpacityOut.surfaceAlbedo;float alpha=albedoOpacityOut.alpha;
#define CUSTOM_FRAGMENT_UPDATE_ALPHA
#include<depthPrePass>
#define CUSTOM_FRAGMENT_BEFORE_LIGHTS
ambientOcclusionOutParams aoOut;
#ifdef AMBIENT
vec3 ambientOcclusionColorMap=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb;
#endif
aoOut=ambientOcclusionBlock(
#ifdef AMBIENT
ambientOcclusionColorMap,
vAmbientInfos
#endif
);
#include<pbrBlockLightmapInit>
#ifdef UNLIT
vec3 diffuseBase=vec3(1.,1.,1.);
#else 
vec3 baseColor=surfaceAlbedo;reflectivityOutParams reflectivityOut;
#if defined(REFLECTIVITY)
vec4 surfaceMetallicOrReflectivityColorMap=texture2D(reflectivitySampler,vReflectivityUV+uvOffset);vec4 baseReflectivity=surfaceMetallicOrReflectivityColorMap;
#ifndef METALLICWORKFLOW
#ifdef REFLECTIVITY_GAMMA
surfaceMetallicOrReflectivityColorMap=toLinearSpace(surfaceMetallicOrReflectivityColorMap);
#endif
surfaceMetallicOrReflectivityColorMap.rgb*=vReflectivityInfos.y;
#endif
#endif
#if defined(MICROSURFACEMAP)
vec4 microSurfaceTexel=texture2D(microSurfaceSampler,vMicroSurfaceSamplerUV+uvOffset)*vMicroSurfaceSamplerInfos.y;
#endif
#ifdef METALLICWORKFLOW
vec4 metallicReflectanceFactors=vMetallicReflectanceFactors;
#ifdef REFLECTANCE
vec4 reflectanceFactorsMap=texture2D(reflectanceSampler,vReflectanceUV+uvOffset);
#ifdef REFLECTANCE_GAMMA
reflectanceFactorsMap=toLinearSpace(reflectanceFactorsMap);
#endif
metallicReflectanceFactors.rgb*=reflectanceFactorsMap.rgb;
#endif
#ifdef METALLIC_REFLECTANCE
vec4 metallicReflectanceFactorsMap=texture2D(metallicReflectanceSampler,vMetallicReflectanceUV+uvOffset);
#ifdef METALLIC_REFLECTANCE_GAMMA
metallicReflectanceFactorsMap=toLinearSpace(metallicReflectanceFactorsMap);
#endif
#ifndef METALLIC_REFLECTANCE_USE_ALPHA_ONLY
metallicReflectanceFactors.rgb*=metallicReflectanceFactorsMap.rgb;
#endif
metallicReflectanceFactors*=metallicReflectanceFactorsMap.a;
#endif
#endif
reflectivityOut=reflectivityBlock(
vReflectivityColor
#ifdef METALLICWORKFLOW
,surfaceAlbedo
,metallicReflectanceFactors
#endif
#ifdef REFLECTIVITY
,vReflectivityInfos
,surfaceMetallicOrReflectivityColorMap
#endif
#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)
,aoOut.ambientOcclusionColor
#endif
#ifdef MICROSURFACEMAP
,microSurfaceTexel
#endif
#ifdef DETAIL
,detailColor
,vDetailInfos
#endif
);float microSurface=reflectivityOut.microSurface;float roughness=reflectivityOut.roughness;
#ifdef METALLICWORKFLOW
surfaceAlbedo=reflectivityOut.surfaceAlbedo;
#endif
#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)
aoOut.ambientOcclusionColor=reflectivityOut.ambientOcclusionColor;
#endif
#ifdef ALPHAFRESNEL
#if defined(ALPHATEST) || defined(ALPHABLEND)
alphaFresnelOutParams alphaFresnelOut;alphaFresnelOut=alphaFresnelBlock(
normalW,
viewDirectionW,
alpha,
microSurface
);alpha=alphaFresnelOut.alpha;
#endif
#endif
#include<pbrBlockGeometryInfo>
#ifdef ANISOTROPIC
anisotropicOutParams anisotropicOut;
#ifdef ANISOTROPIC_TEXTURE
vec3 anisotropyMapData=texture2D(anisotropySampler,vAnisotropyUV+uvOffset).rgb*vAnisotropyInfos.y;
#endif
anisotropicOut=anisotropicBlock(
vAnisotropy,
roughness,
#ifdef ANISOTROPIC_TEXTURE
anisotropyMapData,
#endif
TBN,
normalW,
viewDirectionW
);
#endif
#ifdef REFLECTION
reflectionOutParams reflectionOut;
#ifndef USE_CUSTOM_REFLECTION
reflectionOut=reflectionBlock(
vPositionW
,normalW
,alphaG
,vReflectionMicrosurfaceInfos
,vReflectionInfos
,vReflectionColor
#ifdef ANISOTROPIC
,anisotropicOut
#endif
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
,NdotVUnclamped
#endif
#ifdef LINEARSPECULARREFLECTION
,roughness
#endif
,reflectionSampler
#if defined(NORMAL) && defined(USESPHERICALINVERTEX)
,vEnvironmentIrradiance
#endif
#if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
,reflectionMatrix
#endif
#ifdef USEIRRADIANCEMAP
,irradianceSampler
#endif
#ifndef LODBASEDMICROSFURACE
,reflectionSamplerLow
,reflectionSamplerHigh
#endif
#ifdef REALTIME_FILTERING
,vReflectionFilteringInfo
#ifdef IBL_CDF_FILTERING
,icdfSampler
#endif
#endif
);
#else
#define CUSTOM_REFLECTION
#endif
#endif
#include<pbrBlockReflectance0>
#ifdef SHEEN
sheenOutParams sheenOut;
#ifdef SHEEN_TEXTURE
vec4 sheenMapData=texture2D(sheenSampler,vSheenUV+uvOffset);
#endif
#if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)
vec4 sheenMapRoughnessData=texture2D(sheenRoughnessSampler,vSheenRoughnessUV+uvOffset)*vSheenInfos.w;
#endif
sheenOut=sheenBlock(
vSheenColor
#ifdef SHEEN_ROUGHNESS
,vSheenRoughness
#if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)
,sheenMapRoughnessData
#endif
#endif
,roughness
#ifdef SHEEN_TEXTURE
,sheenMapData
,vSheenInfos.y
#endif
,reflectance
#ifdef SHEEN_LINKWITHALBEDO
,baseColor
,surfaceAlbedo
#endif
#ifdef ENVIRONMENTBRDF
,NdotV
,environmentBrdf
#endif
#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)
,AARoughnessFactors
,vReflectionMicrosurfaceInfos
,vReflectionInfos
,vReflectionColor
,vLightingIntensity
,reflectionSampler
,reflectionOut.reflectionCoords
,NdotVUnclamped
#ifndef LODBASEDMICROSFURACE
,reflectionSamplerLow
,reflectionSamplerHigh
#endif
#ifdef REALTIME_FILTERING
,vReflectionFilteringInfo
#endif
#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)
,seo
#endif
#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)
,eho
#endif
#endif
);
#ifdef SHEEN_LINKWITHALBEDO
surfaceAlbedo=sheenOut.surfaceAlbedo;
#endif
#endif
#ifdef CLEARCOAT
#ifdef CLEARCOAT_TEXTURE
vec2 clearCoatMapData=texture2D(clearCoatSampler,vClearCoatUV+uvOffset).rg*vClearCoatInfos.y;
#endif
#endif
#ifdef IRIDESCENCE
iridescenceOutParams iridescenceOut;
#ifdef IRIDESCENCE_TEXTURE
vec2 iridescenceMapData=texture2D(iridescenceSampler,vIridescenceUV+uvOffset).rg*vIridescenceInfos.y;
#endif
#ifdef IRIDESCENCE_THICKNESS_TEXTURE
vec2 iridescenceThicknessMapData=texture2D(iridescenceThicknessSampler,vIridescenceThicknessUV+uvOffset).rg*vIridescenceInfos.w;
#endif
iridescenceOut=iridescenceBlock(
vIridescenceParams
,NdotV
,specularEnvironmentR0
#ifdef IRIDESCENCE_TEXTURE
,iridescenceMapData
#endif
#ifdef IRIDESCENCE_THICKNESS_TEXTURE
,iridescenceThicknessMapData
#endif
#ifdef CLEARCOAT
,NdotVUnclamped
,vClearCoatParams
#ifdef CLEARCOAT_TEXTURE
,clearCoatMapData
#endif
#endif
);float iridescenceIntensity=iridescenceOut.iridescenceIntensity;specularEnvironmentR0=iridescenceOut.specularEnvironmentR0;
#endif
clearcoatOutParams clearcoatOut;
#ifdef CLEARCOAT
#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)
vec4 clearCoatMapRoughnessData=texture2D(clearCoatRoughnessSampler,vClearCoatRoughnessUV+uvOffset)*vClearCoatInfos.w;
#endif
#if defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)
vec4 clearCoatTintMapData=texture2D(clearCoatTintSampler,vClearCoatTintUV+uvOffset);
#endif
#ifdef CLEARCOAT_BUMP
vec4 clearCoatBumpMapData=texture2D(clearCoatBumpSampler,vClearCoatBumpUV+uvOffset);
#endif
clearcoatOut=clearcoatBlock(
vPositionW
,geometricNormalW
,viewDirectionW
,vClearCoatParams
#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)
,clearCoatMapRoughnessData
#endif
,specularEnvironmentR0
#ifdef CLEARCOAT_TEXTURE
,clearCoatMapData
#endif
#ifdef CLEARCOAT_TINT
,vClearCoatTintParams
,clearCoatColorAtDistance
,vClearCoatRefractionParams
#ifdef CLEARCOAT_TINT_TEXTURE
,clearCoatTintMapData
#endif
#endif
#ifdef CLEARCOAT_BUMP
,vClearCoatBumpInfos
,clearCoatBumpMapData
,vClearCoatBumpUV
#if defined(TANGENT) && defined(NORMAL)
,vTBN
#else
,vClearCoatTangentSpaceParams
#endif
#ifdef OBJECTSPACE_NORMALMAP
,normalMatrix
#endif
#endif
#if defined(FORCENORMALFORWARD) && defined(NORMAL)
,faceNormal
#endif
#ifdef REFLECTION
,vReflectionMicrosurfaceInfos
,vReflectionInfos
,vReflectionColor
,vLightingIntensity
,reflectionSampler
#ifndef LODBASEDMICROSFURACE
,reflectionSamplerLow
,reflectionSamplerHigh
#endif
#ifdef REALTIME_FILTERING
,vReflectionFilteringInfo
#endif
#endif
#if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)
,(gl_FrontFacing ? 1. : -1.)
#endif
);
#else
clearcoatOut.specularEnvironmentR0=specularEnvironmentR0;
#endif
#include<pbrBlockReflectance>
subSurfaceOutParams subSurfaceOut;
#ifdef SUBSURFACE
#ifdef SS_THICKNESSANDMASK_TEXTURE
vec4 thicknessMap=texture2D(thicknessSampler,vThicknessUV+uvOffset);
#endif
#ifdef SS_REFRACTIONINTENSITY_TEXTURE
vec4 refractionIntensityMap=texture2D(refractionIntensitySampler,vRefractionIntensityUV+uvOffset);
#endif
#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE
vec4 translucencyIntensityMap=texture2D(translucencyIntensitySampler,vTranslucencyIntensityUV+uvOffset);
#endif
#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
vec4 translucencyColorMap=texture2D(translucencyColorSampler,vTranslucencyColorUV+uvOffset);
#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE_GAMMA
translucencyColorMap=toLinearSpace(translucencyColorMap);
#endif
#endif
subSurfaceOut=subSurfaceBlock(
vSubSurfaceIntensity
,vThicknessParam
,vTintColor
,normalW
,specularEnvironmentReflectance
#ifdef SS_THICKNESSANDMASK_TEXTURE
,thicknessMap
#endif
#ifdef SS_REFRACTIONINTENSITY_TEXTURE
,refractionIntensityMap
#endif
#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE
,translucencyIntensityMap
#endif
#ifdef REFLECTION
#ifdef SS_TRANSLUCENCY
,reflectionMatrix
#ifdef USESPHERICALFROMREFLECTIONMAP
#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)
,reflectionOut.irradianceVector
#endif
#if defined(REALTIME_FILTERING)
,reflectionSampler
,vReflectionFilteringInfo
#ifdef IBL_CDF_FILTERING
,icdfSampler
#endif
#endif
#endif
#ifdef USEIRRADIANCEMAP
,irradianceSampler
#endif
#endif
#endif
#if defined(SS_REFRACTION) || defined(SS_TRANSLUCENCY)
,surfaceAlbedo
#endif
#ifdef SS_REFRACTION
,vPositionW
,viewDirectionW
,view
,vRefractionInfos
,refractionMatrix
,vRefractionMicrosurfaceInfos
,vLightingIntensity
#ifdef SS_LINKREFRACTIONTOTRANSPARENCY
,alpha
#endif
#ifdef SS_LODINREFRACTIONALPHA
,NdotVUnclamped
#endif
#ifdef SS_LINEARSPECULARREFRACTION
,roughness
#endif
,alphaG
,refractionSampler
#ifndef LODBASEDMICROSFURACE
,refractionSamplerLow
,refractionSamplerHigh
#endif
#ifdef ANISOTROPIC
,anisotropicOut
#endif
#ifdef REALTIME_FILTERING
,vRefractionFilteringInfo
#endif
#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC
,vRefractionPosition
,vRefractionSize
#endif
#ifdef SS_DISPERSION
,dispersion
#endif
#endif
#ifdef SS_TRANSLUCENCY
,vDiffusionDistance
,vTranslucencyColor
#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
,translucencyColorMap
#endif
#endif
);
#ifdef SS_REFRACTION
surfaceAlbedo=subSurfaceOut.surfaceAlbedo;
#ifdef SS_LINKREFRACTIONTOTRANSPARENCY
alpha=subSurfaceOut.alpha;
#endif
#endif
#else
subSurfaceOut.specularEnvironmentReflectance=specularEnvironmentReflectance;
#endif
#include<pbrBlockDirectLighting>
#include<lightFragment>[0..maxSimultaneousLights]
#include<pbrBlockFinalLitComponents>
#endif 
#include<pbrBlockFinalUnlitComponents>
#define CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION
#include<pbrBlockFinalColorComposition>
#include<logDepthFragment>
#include<fogFragment>(color,finalColor)
#include<pbrBlockImageProcessing>
#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR
#ifdef PREPASS
#include<pbrBlockPrePass>
#endif
#if !defined(PREPASS) || defined(WEBGL2)
gl_FragColor=finalColor;
#endif
#include<oitFragment>
#if ORDER_INDEPENDENT_TRANSPARENCY
if (fragDepth==nearestDepth) {frontColor.rgb+=finalColor.rgb*finalColor.a*alphaMultiplier;frontColor.a=1.0-alphaMultiplier*(1.0-finalColor.a);} else {backColor+=finalColor;}
#endif
#include<pbrDebug>
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStore[bse]||(H.ShadersStore[bse]=T8e);const L8e={name:bse,shader:T8e},I8e=Object.freeze(Object.defineProperty({__proto__:null,pbrPixelShader:L8e},Symbol.toStringTag,{value:"Module"}));var Sse;(function(a){a[a.GLSL=0]="GLSL",a[a.WGSL=1]="WGSL"})(Sse||(Sse={}));class NL extends vr{constructor(e,t,i=null){if(super(t),!!e)if(this._textureMatrix=me.Identity(),this.name=e,this.url=e,this._onLoad=i,this._texture=this._getFromCache(e,!0),this._texture)this._triggerOnLoad();else{const s=this.getScene();s?s.useDelayedTextureLoading?this.delayLoadState=4:this._loadTexture():this._loadTexture()}}_triggerOnLoad(){this._onLoad&&this._onLoad()}getTextureMatrix(){return this._textureMatrix}_load3dlTexture(){const e=this._getEngine();let t;e._features.support3DTextures?t=e.createRawTexture3D(null,1,1,1,5,!1,!1,2,null,0):t=e.createRawTexture(null,1,1,5,!1,!1,2,null,0),this._texture=t,this._texture.isReady=!1,this.isCube=!1,this.is3D=e._features.support3DTextures,this.wrapU=0,this.wrapV=0,this.wrapR=0,this.anisotropicFilteringLevel=1;const i=r=>{if(typeof r!="string")return;let n=null,o=null,l;const c=r.split(`
`);let u=0,f=0,p=0,m=0,_=0;for(let d=0;d<c.length;d++){if(l=c[d],!NL._NoneEmptyLineRegex.test(l)||l.indexOf("#")===0)continue;const h=l.split(" ");if(u===0){u=h.length,n=new Uint8Array(u*u*u*4),o=new Float32Array(u*u*u*4);continue}if(u!=0){const x=Math.max(parseInt(h[0]),0),A=Math.max(parseInt(h[1]),0),S=Math.max(parseInt(h[2]),0);_=Math.max(x,_),_=Math.max(A,_),_=Math.max(S,_);const E=(f+m*u+p*u*u)*4;o&&(o[E+0]=x,o[E+1]=A,o[E+2]=S),p++,p%u==0&&(m++,p=0,m%u==0&&(f++,m=0))}}if(o&&n)for(let d=0;d<o.length;d++)if(d>0&&(d+1)%4===0)n[d]=255;else{const h=o[d];n[d]=h/_*255}t.is3D?(t.updateSize(u,u,u),e.updateRawTexture3D(t,n,5,!1)):(t.updateSize(u*u,u),e.updateRawTexture(t,n,5,!1)),t.isReady=!0,this._triggerOnLoad()},s=this.getScene();return s?s._loadFile(this.url,i):e._loadFile(this.url,i),this._texture}_loadTexture(){if(this.url){const e=this.url.toLocaleLowerCase();(e.endsWith(".3dl")||e.startsWith("blob:"))&&this._load3dlTexture()}}clone(){const e=new NL(this.url,this.getScene()||this._getEngine());return e.level=this.level,e}delayLoad(){this.delayLoadState===4&&(this.delayLoadState=1,this._texture=this._getFromCache(this.url,!0),this._texture||this._loadTexture())}static Parse(e,t){let i=null;return e.name&&!e.isRenderTarget&&(i=new NL(e.name,t),i.name=e.name,i.level=e.level),i}serialize(){if(!this.name)return null;const e={};return e.name=this.name,e.level=this.level,e.customType="BABYLON.ColorGradingTexture",e}}NL._NoneEmptyLineRegex=/\S+/,ve("BABYLON.ColorGradingTexture",NL);class gO extends vr{constructor(e,t,i,s=!1,r=!0,n=null,o=null,l=!1){if(super(t),this._onLoad=null,this._onError=null,!e)throw new Error("Image url is not set");this._coordinatesMode=be.CUBIC_MODE,this.name=e,this.url=e,this._size=i,this._supersample=l,this._noMipmap=s,this.gammaSpace=r,this._onLoad=n,this._onError=o,this.hasAlpha=!1,this.isCube=!0,this._texture=this._getFromCache(e,this._noMipmap,void 0,void 0,void 0,this.isCube),this._texture?n&&(this._texture.isReady?Le.SetImmediate(()=>n()):this._texture.onLoadedObservable.add(n)):t.useDelayedTextureLoading?this.delayLoadState=4:this._loadImage(()=>this._loadTexture(),this._onError)}_loadImage(e,t){const i=this.getScene();if(!i)return;const s=i.getEngine().createRawCubeTexture(null,this._size,4,i.getEngine().getCaps().textureFloat?1:7,!this._noMipmap,!1,3);s.generateMipMaps=!this._noMipmap,i.addPendingData(s),s.url=this.url,s.isReady=!1,i.getEngine()._internalTexturesCache.push(s),this._texture=s,rP(this.url,r=>{this._width=r.width,this._height=r.height;let n;H6()?(n=document.createElement("canvas"),n.width=this._width,n.height=this._height):n=new OffscreenCanvas(this._width,this._height);const o=n.getContext("2d");o.drawImage(r,0,0);const l=o.getImageData(0,0,r.width,r.height);this._buffer=l.data.buffer,n.remove&&n.remove(),e()},(r,n)=>{i.removePendingData(s),t&&t(`${this.getClassName()} could not be loaded`,n)},i?i.offlineProvider:null)}_loadTexture(){const e=this.getScene(),t=()=>{const r=this._getFloat32ArrayFromArrayBuffer(this._buffer),n=Xy.ConvertPanoramaToCubemap(r,this._width,this._height,this._size,this._supersample),o=[];for(let l=0;l<6;l++){const c=n[gO._FacesMapping[l]];o.push(c)}return o};if(!e)return;const i=t(),s=this._texture;e.getEngine().updateRawCubeTexture(s,i,s.format,s.type,s.invertY),s.isReady=!0,e.removePendingData(s),s.onLoadedObservable.notifyObservers(s),s.onLoadedObservable.clear(),this._onLoad&&this._onLoad()}_getFloat32ArrayFromArrayBuffer(e){const t=new DataView(e),i=new Float32Array(e.byteLength*3/4);let s=0;for(let r=0;r<e.byteLength;r++)(r+1)%4!==0&&(i[s++]=t.getUint8(r)/255);return i}getClassName(){return"EquiRectangularCubeTexture"}clone(){const e=this.getScene();if(!e)return this;const t=new gO(this.url,e,this._size,this._noMipmap,this.gammaSpace);return t.level=this.level,t.wrapU=this.wrapU,t.wrapV=this.wrapV,t.coordinatesIndex=this.coordinatesIndex,t.coordinatesMode=this.coordinatesMode,t}}gO._FacesMapping=["right","left","up","down","front","back"];class WH extends vr{constructor(e,t,i){if(super(i.scene||i.engine),this.onLoadObservable=new xe,!(!t||!i.engine&&!i.scene)){if(i={...WH._DefaultOptions,...i},this._generateMipMaps=i.generateMipMaps,this._samplingMode=i.samplingMode,this._textureMatrix=me.Identity(),this._format=i.format,this.name=e,this.element=t,this._isVideo=!!t.getVideoPlaybackQuality,this._isVideo){const s=this._engine,r=s==null?void 0:s.createExternalTexture;r&&(this._externalTexture=r.call(s,t))}this.anisotropicFilteringLevel=1,this._createInternalTexture()}}_createInternalTexture(){let e=0,t=0;this._isVideo?(e=this.element.videoWidth,t=this.element.videoHeight):(e=this.element.width,t=this.element.height);const i=this._getEngine();i&&(this._texture=i.createDynamicTexture(e,t,this._generateMipMaps,this._samplingMode),this._texture.format=this._format),this.update()}getTextureMatrix(){return this._textureMatrix}update(e=null){const t=this._getEngine();if(this._texture==null||t==null)return;const i=this.isReady();if(this._isVideo){const s=this.element;if(s.readyState<s.HAVE_CURRENT_DATA)return;t.updateVideoTexture(this._texture,this._externalTexture?this._externalTexture:s,e===null?!0:e)}else{const s=this.element;t.updateDynamicTexture(this._texture,s,e===null?!0:e,!1,this._format)}!i&&this.isReady()&&this.onLoadObservable.notifyObservers(this)}dispose(){this.onLoadObservable.clear(),super.dispose()}}WH._DefaultOptions={generateMipMaps:!1,samplingMode:2,format:5,engine:null,scene:null};const DVe=1,NVe=2,wVe=3,BVe=9,zVe=10,FVe=11,kVe=48,UVe=4,jVe=0,VVe=1,GVe=2,WVe=3;function WB(a){let e=0;return{id_length:a[e++],colormap_type:a[e++],image_type:a[e++],colormap_index:a[e++]|a[e++]<<8,colormap_length:a[e++]|a[e++]<<8,colormap_size:a[e++],origin:[a[e++]|a[e++]<<8,a[e++]|a[e++]<<8],width:a[e++]|a[e++]<<8,height:a[e++]|a[e++]<<8,pixel_size:a[e++],flags:a[e++]}}function yse(a,e){if(e.length<19){de.Error("Unable to load TGA file - Not enough data to contain header");return}let t=18;const i=WB(e);if(i.id_length+t>e.length){de.Error("Unable to load TGA file - Not enough data");return}t+=i.id_length;let s=!1,r=!1,n=!1;switch(i.image_type){case BVe:s=!0;case DVe:r=!0;break;case zVe:s=!0;case NVe:break;case FVe:s=!0;case wVe:n=!0;break}let o;const l=i.pixel_size>>3,c=i.width*i.height*l;let u;if(r&&(u=e.subarray(t,t+=i.colormap_length*(i.colormap_size>>3))),s){o=new Uint8Array(c);let E,b,M,T=0;const O=new Uint8Array(l);for(;t<c&&T<c;)if(E=e[t++],b=(E&127)+1,E&128){for(M=0;M<l;++M)O[M]=e[t++];for(M=0;M<b;++M)o.set(O,T+M*l);T+=l*b}else{for(b*=l,M=0;M<b;++M)o[T+M]=e[t++];T+=b}}else o=e.subarray(t,t+=r?i.width*i.height:c);let f,p,m,_,d,h;switch((i.flags&kVe)>>UVe){default:case GVe:f=0,m=1,h=i.width,p=0,_=1,d=i.height;break;case jVe:f=0,m=1,h=i.width,p=i.height-1,_=-1,d=-1;break;case WVe:f=i.width-1,m=-1,h=-1,p=0,_=1,d=i.height;break;case VVe:f=i.width-1,m=-1,h=-1,p=i.height-1,_=-1,d=-1;break}const x="_getImageData"+(n?"Grey":"")+i.pixel_size+"bits",A=P8e[x](i,u,o,p,_,d,f,m,h);a.getEngine()._uploadDataToTextureDirectly(a,A)}function HVe(a,e,t,i,s,r,n,o,l){const c=t,u=e,f=a.width,p=a.height;let m,_=0,d,h;const x=new Uint8Array(f*p*4);for(h=i;h!==r;h+=s)for(d=n;d!==l;d+=o,_++)m=c[_],x[(d+f*h)*4+3]=255,x[(d+f*h)*4+2]=u[m*3+0],x[(d+f*h)*4+1]=u[m*3+1],x[(d+f*h)*4+0]=u[m*3+2];return x}function YVe(a,e,t,i,s,r,n,o,l){const c=t,u=a.width,f=a.height;let p,m=0,_,d;const h=new Uint8Array(u*f*4);for(d=i;d!==r;d+=s)for(_=n;_!==l;_+=o,m+=2){p=c[m+0]+(c[m+1]<<8);const x=((p&31744)>>10)*255/31|0,A=((p&992)>>5)*255/31|0,S=(p&31)*255/31|0;h[(_+u*d)*4+0]=x,h[(_+u*d)*4+1]=A,h[(_+u*d)*4+2]=S,h[(_+u*d)*4+3]=p&32768?0:255}return h}function XVe(a,e,t,i,s,r,n,o,l){const c=t,u=a.width,f=a.height;let p=0,m,_;const d=new Uint8Array(u*f*4);for(_=i;_!==r;_+=s)for(m=n;m!==l;m+=o,p+=3)d[(m+u*_)*4+3]=255,d[(m+u*_)*4+2]=c[p+0],d[(m+u*_)*4+1]=c[p+1],d[(m+u*_)*4+0]=c[p+2];return d}function ZVe(a,e,t,i,s,r,n,o,l){const c=t,u=a.width,f=a.height;let p=0,m,_;const d=new Uint8Array(u*f*4);for(_=i;_!==r;_+=s)for(m=n;m!==l;m+=o,p+=4)d[(m+u*_)*4+2]=c[p+0],d[(m+u*_)*4+1]=c[p+1],d[(m+u*_)*4+0]=c[p+2],d[(m+u*_)*4+3]=c[p+3];return d}function KVe(a,e,t,i,s,r,n,o,l){const c=t,u=a.width,f=a.height;let p,m=0,_,d;const h=new Uint8Array(u*f*4);for(d=i;d!==r;d+=s)for(_=n;_!==l;_+=o,m++)p=c[m],h[(_+u*d)*4+0]=p,h[(_+u*d)*4+1]=p,h[(_+u*d)*4+2]=p,h[(_+u*d)*4+3]=255;return h}function qVe(a,e,t,i,s,r,n,o,l){const c=t,u=a.width,f=a.height;let p=0,m,_;const d=new Uint8Array(u*f*4);for(_=i;_!==r;_+=s)for(m=n;m!==l;m+=o,p+=2)d[(m+u*_)*4+0]=c[p+0],d[(m+u*_)*4+1]=c[p+0],d[(m+u*_)*4+2]=c[p+0],d[(m+u*_)*4+3]=c[p+1];return d}const P8e={GetTGAHeader:WB,UploadContent:yse,_getImageData8bits:HVe,_getImageData16bits:YVe,_getImageData24bits:XVe,_getImageData32bits:ZVe,_getImageDataGrey8bits:KVe,_getImageDataGrey16bits:qVe};class O8e{constructor(){this.supportCascades=!1}loadCubeData(){throw".env not supported in Cube."}loadData(e,t,i){const s=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=WB(s);i(r.width,r.height,t.generateMipMaps,!1,()=>{yse(t,s)})}}const QVe=Object.freeze(Object.defineProperty({__proto__:null,_TGATextureLoader:O8e},Symbol.toStringTag,{value:"Module"}));class R8e{constructor(){this.supportCascades=!1}loadCubeData(){throw".hdr not supported in Cube."}loadData(e,t,i){const s=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=Die(s),n=Nie(s,r),o=r.width*r.height,l=new Float32Array(o*4);for(let c=0;c<o;c+=1)l[c*4]=n[c*3],l[c*4+1]=n[c*3+1],l[c*4+2]=n[c*3+2],l[c*4+3]=1;i(r.width,r.height,t.generateMipMaps,!1,()=>{const c=t.getEngine();t.type=1,t.format=5,t._gammaSpace=!1,c._uploadDataToTextureDirectly(t,l)})}}const JVe=Object.freeze(Object.defineProperty({__proto__:null,_HDRTextureLoader:R8e},Symbol.toStringTag,{value:"Module"}));function $Ve(){const a={cTFETC1:0,cTFETC2:1,cTFBC1:2,cTFBC3:3,cTFBC7:6,cTFPVRTC1_4_RGB:8,cTFPVRTC1_4_RGBA:9,cTFASTC_4x4:10,cTFRGB565:14};let e=null;onmessage=n=>{if(n.data.action==="init"){if(n.data.url)try{importScripts(n.data.url)}catch(o){postMessage({action:"error",error:o})}e||(e=BASIS({wasmBinary:n.data.wasmBinary})),e!==null&&e.then(o=>{BASIS=o,o.initializeBasis(),postMessage({action:"init"})})}else if(n.data.action==="transcode"){const o=n.data.config,l=n.data.imageData,c=new BASIS.BasisFile(l),u=i(c);let f=n.data.ignoreSupportedFormats?null:t(n.data.config,u),p=!1;f===null&&(p=!0,f=u.hasAlpha?a.cTFBC3:a.cTFBC1);let m=!0;c.startTranscoding()||(m=!1);const _=[];for(let d=0;d<u.images.length&&m;d++){const h=u.images[d];if(o.loadSingleImage===void 0||o.loadSingleImage===d){let x=h.levels.length;o.loadMipmapLevels===!1&&(x=1);for(let A=0;A<x;A++){const S=h.levels[A],E=s(c,d,A,f,p);if(!E){m=!1;break}S.transcodedPixels=E,_.push(S.transcodedPixels.buffer)}}}c.close(),c.delete(),p&&(f=-1),m?postMessage({action:"transcode",success:m,id:n.data.id,fileInfo:u,format:f},_):postMessage({action:"transcode",success:m,id:n.data.id})}};function t(n,o){let l=null;return n.supportedCompressionFormats&&(n.supportedCompressionFormats.astc?l=a.cTFASTC_4x4:n.supportedCompressionFormats.bc7?l=a.cTFBC7:n.supportedCompressionFormats.s3tc?l=o.hasAlpha?a.cTFBC3:a.cTFBC1:n.supportedCompressionFormats.pvrtc?l=o.hasAlpha?a.cTFPVRTC1_4_RGBA:a.cTFPVRTC1_4_RGB:n.supportedCompressionFormats.etc2?l=a.cTFETC2:n.supportedCompressionFormats.etc1?l=a.cTFETC1:l=a.cTFRGB565),l}function i(n){const o=n.getHasAlpha(),l=n.getNumImages(),c=[];for(let f=0;f<l;f++){const p={levels:[]},m=n.getNumLevels(f);for(let _=0;_<m;_++){const d={width:n.getImageWidth(f,_),height:n.getImageHeight(f,_)};p.levels.push(d)}c.push(p)}return{hasAlpha:o,images:c}}function s(n,o,l,c,u){const f=n.getImageTranscodedSizeInBytes(o,l,c);let p=new Uint8Array(f);if(!n.transcodeImage(p,o,l,c,1,0))return null;if(u){const m=n.getImageWidth(o,l)+3&-4,_=n.getImageHeight(o,l)+3&-4;p=r(p,0,m,_)}return p}function r(n,o,l,c){const u=new Uint16Array(4),f=new Uint16Array(l*c),p=l/4,m=c/4;for(let _=0;_<m;_++)for(let d=0;d<p;d++){const h=o+8*(_*p+d);u[0]=n[h]|n[h+1]<<8,u[1]=n[h+2]|n[h+3]<<8,u[2]=(2*(u[0]&31)+1*(u[1]&31))/3|(2*(u[0]&2016)+1*(u[1]&2016))/3&2016|(2*(u[0]&63488)+1*(u[1]&63488))/3&63488,u[3]=(2*(u[1]&31)+1*(u[0]&31))/3|(2*(u[1]&2016)+1*(u[0]&2016))/3&2016|(2*(u[1]&63488)+1*(u[0]&63488))/3&63488;for(let x=0;x<4;x++){const A=n[h+4+x];let S=(_*4+x)*l+d*4;f[S++]=u[A&3],f[S++]=u[A>>2&3],f[S++]=u[A>>4&3],f[S++]=u[A>>6&3]}}return f}}function eGe(a,e,t){return new Promise((i,s)=>{const r=n=>{n.data.action==="init"?(a.removeEventListener("message",r),i(a)):n.data.action==="error"&&s(n.data.error||"error initializing worker")};a.addEventListener("message",r),a.postMessage({action:"init",url:t?Le.GetBabylonScriptURL(t):void 0,wasmBinary:e},[e])})}class tGe{}class iGe{}var Ky;(function(a){a[a.cTFETC1=0]="cTFETC1",a[a.cTFETC2=1]="cTFETC2",a[a.cTFBC1=2]="cTFBC1",a[a.cTFBC3=3]="cTFBC3",a[a.cTFBC4=4]="cTFBC4",a[a.cTFBC5=5]="cTFBC5",a[a.cTFBC7=6]="cTFBC7",a[a.cTFPVRTC1_4_RGB=8]="cTFPVRTC1_4_RGB",a[a.cTFPVRTC1_4_RGBA=9]="cTFPVRTC1_4_RGBA",a[a.cTFASTC_4x4=10]="cTFASTC_4x4",a[a.cTFATC_RGB=11]="cTFATC_RGB",a[a.cTFATC_RGBA_INTERPOLATED_ALPHA=12]="cTFATC_RGBA_INTERPOLATED_ALPHA",a[a.cTFRGBA32=13]="cTFRGBA32",a[a.cTFRGB565=14]="cTFRGB565",a[a.cTFBGR565=15]="cTFBGR565",a[a.cTFRGBA4444=16]="cTFRGBA4444",a[a.cTFFXT1_RGB=17]="cTFFXT1_RGB",a[a.cTFPVRTC2_4_RGB=18]="cTFPVRTC2_4_RGB",a[a.cTFPVRTC2_4_RGBA=19]="cTFPVRTC2_4_RGBA",a[a.cTFETC2_EAC_R11=20]="cTFETC2_EAC_R11",a[a.cTFETC2_EAC_RG11=21]="cTFETC2_EAC_RG11"})(Ky||(Ky={}));const qy={JSModuleURL:`${Le._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.js`,WasmModuleURL:`${Le._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.wasm`},D8e=(a,e)=>{let t;switch(a){case Ky.cTFETC1:t=36196;break;case Ky.cTFBC1:t=33776;break;case Ky.cTFBC4:t=33779;break;case Ky.cTFASTC_4x4:t=37808;break;case Ky.cTFETC2:t=37496;break;case Ky.cTFBC7:t=36492;break}if(t===void 0)throw"The chosen Basis transcoder format is not currently supported";return t};let Mse=null,u9=null,sGe=0;const rGe=!1,nGe=()=>(Mse||(Mse=new Promise((a,e)=>{u9?a(u9):Le.LoadFileAsync(Le.GetBabylonScriptURL(qy.WasmModuleURL)).then(t=>{if(typeof URL!="function")return e("Basis transcoder requires an environment with a URL constructor");const i=URL.createObjectURL(new Blob([`(${$Ve})()`],{type:"application/javascript"}));u9=new Worker(i),eGe(u9,t,qy.JSModuleURL).then(a,e)}).catch(e)})),Mse),aGe=a=>{u9=a},HH=(a,e)=>{const t=a instanceof ArrayBuffer?new Uint8Array(a):a;return new Promise((i,s)=>{nGe().then(()=>{const r=sGe++,n=l=>{l.data.action==="transcode"&&l.data.id===r&&(u9.removeEventListener("message",n),l.data.success?i(l.data):s("Transcode is not supported on this device"))};u9.addEventListener("message",n);const o=new Uint8Array(t.byteLength);o.set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),u9.postMessage({action:"transcode",id:r,imageData:o,config:e,ignoreSupportedFormats:rGe},[o.buffer])},r=>{s(r)})})},YH=(a,e)=>{var i,s;let t=(i=e._gl)==null?void 0:i.TEXTURE_2D;a.isCube&&(t=(s=e._gl)==null?void 0:s.TEXTURE_CUBE_MAP),e._bindTextureDirectly(t,a,!0)},XH=(a,e)=>{const t=a.getEngine();for(let i=0;i<e.fileInfo.images.length;i++){const s=e.fileInfo.images[i].levels[0];if(a._invertVScale=a.invertY,e.format===-1||e.format===Ky.cTFRGB565)if(a.type=10,a.format=4,t._features.basisNeedsPOT&&(Math.log2(s.width)%1!==0||Math.log2(s.height)%1!==0)){const r=new gr(t,2);a._invertVScale=a.invertY,r.type=10,r.format=4,r.width=s.width+3&-4,r.height=s.height+3&-4,YH(r,t),t._uploadDataToTextureDirectly(r,new Uint16Array(s.transcodedPixels.buffer),i,0,4,!0),t._rescaleTexture(r,a,t.scenes[0],t._getInternalFormat(4),()=>{t._releaseTexture(r),YH(a,t)})}else a._invertVScale=!a.invertY,a.width=s.width+3&-4,a.height=s.height+3&-4,a.samplingMode=2,YH(a,t),t._uploadDataToTextureDirectly(a,new Uint16Array(s.transcodedPixels.buffer),i,0,4,!0);else{a.width=s.width,a.height=s.height,a.generateMipMaps=e.fileInfo.images[i].levels.length>1;const r=ZH.GetInternalFormatFromBasisFormat(e.format,t);a.format=r,YH(a,t),e.fileInfo.images[i].levels.forEach((n,o)=>{t._uploadCompressedDataToTextureDirectly(a,r,n.width,n.height,n.transcodedPixels,i,o)}),t._features.basisNeedsPOT&&(Math.log2(a.width)%1!==0||Math.log2(a.height)%1!==0)&&(Le.Warn("Loaded .basis texture width and height are not a power of two. Texture wrapping will be set to Texture.CLAMP_ADDRESSMODE as other modes are not supported with non power of two dimensions in webGL 1."),a._cachedWrapU=be.CLAMP_ADDRESSMODE,a._cachedWrapV=be.CLAMP_ADDRESSMODE)}}},ZH={JSModuleURL:qy.JSModuleURL,WasmModuleURL:qy.WasmModuleURL,GetInternalFormatFromBasisFormat:D8e,TranscodeAsync:HH,LoadTextureFromTranscodeResult:XH};Object.defineProperty(ZH,"JSModuleURL",{get:function(){return qy.JSModuleURL},set:function(a){qy.JSModuleURL=a}}),Object.defineProperty(ZH,"WasmModuleURL",{get:function(){return qy.WasmModuleURL},set:function(a){qy.WasmModuleURL=a}});class N8e{constructor(){this.supportCascades=!1}loadCubeData(e,t,i,s,r){if(Array.isArray(e))return;const n=t.getEngine().getCaps(),o={supportedCompressionFormats:{etc1:!!n.etc1,s3tc:!!n.s3tc,pvrtc:!!n.pvrtc,etc2:!!n.etc2,astc:!!n.astc,bc7:!!n.bptc}};HH(e,o).then(l=>{const c=l.fileInfo.images[0].levels.length>1&&t.generateMipMaps;XH(t,l),t.getEngine()._setCubeMapTextureParams(t,c),t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),s&&s()}).catch(l=>{Le.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"),t.isReady=!0,r&&r(l)})}loadData(e,t,i){const s=t.getEngine().getCaps(),r={supportedCompressionFormats:{etc1:!!s.etc1,s3tc:!!s.s3tc,pvrtc:!!s.pvrtc,etc2:!!s.etc2,astc:!!s.astc,bc7:!!s.bptc}};HH(e,r).then(n=>{const o=n.fileInfo.images[0].levels[0],l=n.fileInfo.images[0].levels.length>1&&t.generateMipMaps;i(o.width,o.height,l,n.format!==-1,()=>{XH(t,n)})}).catch(n=>{Le.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"),Le.Warn(`Failed to transcode Basis file: ${n}`),i(0,0,!1,!1,()=>{},!0)})}}const oGe=Object.freeze(Object.defineProperty({__proto__:null,_BasisTextureLoader:N8e},Symbol.toStringTag,{value:"Module"})),w8e=4,Ese=4,B8e=1,_O=2,lGe=8,KH=65536,z8e=KH>>3,cGe=16,h9=14,HB=(1<<cGe)+1,Tse=1<<h9,F8e=Tse-1,Lse=59,k8e=63,uGe=2+k8e-Lse;var _b;(function(a){a[a.NO_COMPRESSION=0]="NO_COMPRESSION",a[a.RLE_COMPRESSION=1]="RLE_COMPRESSION",a[a.ZIPS_COMPRESSION=2]="ZIPS_COMPRESSION",a[a.ZIP_COMPRESSION=3]="ZIP_COMPRESSION",a[a.PIZ_COMPRESSION=4]="PIZ_COMPRESSION",a[a.PXR24_COMPRESSION=5]="PXR24_COMPRESSION"})(_b||(_b={}));var Ise;(function(a){a[a.INCREASING_Y=0]="INCREASING_Y",a[a.DECREASING_Y=1]="DECREASING_Y"})(Ise||(Ise={}));const qH=hGe();function hGe(){const a=new ArrayBuffer(4),e=new Float32Array(a),t=new Uint32Array(a),i=new Uint32Array(512),s=new Uint32Array(512);for(let l=0;l<256;++l){const c=l-127;c<-27?(i[l]=0,i[l|256]=32768,s[l]=24,s[l|256]=24):c<-14?(i[l]=1024>>-c-14,i[l|256]=1024>>-c-14|32768,s[l]=-c-1,s[l|256]=-c-1):c<=15?(i[l]=c+15<<10,i[l|256]=c+15<<10|32768,s[l]=13,s[l|256]=13):c<128?(i[l]=31744,i[l|256]=64512,s[l]=24,s[l|256]=24):(i[l]=31744,i[l|256]=64512,s[l]=13,s[l|256]=13)}const r=new Uint32Array(2048),n=new Uint32Array(64),o=new Uint32Array(64);for(let l=1;l<1024;++l){let c=l<<13,u=0;for(;!(c&8388608);)c<<=1,u-=8388608;c&=-8388609,u+=947912704,r[l]=c|u}for(let l=1024;l<2048;++l)r[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)n[l]=l<<23;n[31]=1199570944,n[32]=2147483648;for(let l=33;l<63;++l)n[l]=2147483648+(l-32<<23);n[63]=3347054592;for(let l=1;l<64;++l)l!==32&&(o[l]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:s,mantissaTable:r,exponentTable:n,offsetTable:o}}function QH(a,e){const t=new Uint8Array(a);let i=0;for(;t[e.value+i]!=0;)i+=1;const s=new TextDecoder().decode(t.slice(e.value,e.value+i));return e.value=e.value+i+1,s}function f5(a,e){const t=a.getInt32(e.value,!0);return e.value+=w8e,t}function vb(a,e){const t=a.getUint32(e.value,!0);return e.value+=w8e,t}function YB(a,e){const t=a.getUint8(e.value);return e.value+=B8e,t}function XB(a,e){const t=a.getUint16(e.value,!0);return e.value+=_O,t}function Pse(a,e){const t=a[e.value];return e.value+=B8e,t}function U8e(a,e){let t;return"getBigInt64"in DataView.prototype?t=Number(a.getBigInt64(e.value,!0)):t=a.getUint32(e.value+4,!0)+Number(a.getUint32(e.value,!0)<<32),e.value+=lGe,t}function $1(a,e){const t=a.getFloat32(e.value,!0);return e.value+=Ese,t}function j8e(a,e){return dGe(XB(a,e))}function dGe(a){const e=(a&31744)>>10,t=a&1023;return(a>>15?-1:1)*(e?e===31?t?NaN:1/0:Math.pow(2,e-15)*(1+t/1024):6103515625e-14*(t/1024))}function fGe(a){if(Math.abs(a)>65504)throw new Error("Value out of range.Consider using float instead of half-float.");a=Os(a,-65504,65504),qH.floatView[0]=a;const e=qH.uint32View[0],t=e>>23&511;return qH.baseTable[t]+((e&8388607)>>qH.shiftTable[t])}function V8e(a,e){return fGe($1(a,e))}function pGe(a,e,t){const i=new TextDecoder().decode(new Uint8Array(a).slice(e.value,e.value+t));return e.value=e.value+t,i}function mGe(a,e){const t=f5(a,e),i=vb(a,e);return[t,i]}function gGe(a,e){const t=vb(a,e),i=vb(a,e);return[t,i]}function _Ge(a,e){const t=$1(a,e),i=$1(a,e);return[t,i]}function vGe(a,e){const t=$1(a,e),i=$1(a,e),s=$1(a,e);return[t,i,s]}function AGe(a,e,t){const i=e.value,s=[];for(;e.value<i+t-1;){const r=QH(a.buffer,e),n=f5(a,e),o=YB(a,e);e.value+=3;const l=f5(a,e),c=f5(a,e);s.push({name:r,pixelType:n,pLinear:o,xSampling:l,ySampling:c})}return e.value+=1,s}function CGe(a,e){const t=$1(a,e),i=$1(a,e),s=$1(a,e),r=$1(a,e),n=$1(a,e),o=$1(a,e),l=$1(a,e),c=$1(a,e);return{redX:t,redY:i,greenX:s,greenY:r,blueX:n,blueY:o,whiteX:l,whiteY:c}}function xGe(a,e){return YB(a,e)}function bGe(a,e){const t=f5(a,e),i=f5(a,e),s=f5(a,e),r=f5(a,e);return{xMin:t,yMin:i,xMax:s,yMax:r}}function SGe(a,e){const t=YB(a,e);return Ise[t]}function G8e(a,e,t,i){switch(t){case"string":case"stringvector":case"iccProfile":return pGe(a.buffer,e,i);case"chlist":return AGe(a,e,i);case"chromaticities":return CGe(a,e);case"compression":return xGe(a,e);case"box2i":return bGe(a,e);case"lineOrder":return SGe(a,e);case"float":return $1(a,e);case"v2f":return _Ge(a,e);case"v3f":return vGe(a,e);case"int":return f5(a,e);case"rational":return mGe(a,e);case"timecode":return gGe(a,e);case"preview":return e.value+=i,"skipped";default:e.value+=i;return}}function Ose(a){for(let e=1;e<a.length;e++){const t=a[e-1]+a[e]-128;a[e]=t}}function Rse(a,e){let t=0,i=Math.floor((a.length+1)/2),s=0;const r=a.length-1;for(;!(s>r||(e[s++]=a[t++],s>r));)e[s++]=a[i++]}const yGe=20000630;function W8e(a,e){if(a.getUint32(0,!0)!=yGe)throw new Error("Incorrect OpenEXR format");const t=a.getUint8(4),i=a.getUint8(5),s={singleTile:!!(i&2),longName:!!(i&4),deepFormat:!!(i&8),multiPart:!!(i&16)};e.value=8;const r={};let n=!0;for(;n;){const o=QH(a.buffer,e);if(!o)n=!1;else{const l=QH(a.buffer,e),c=vb(a,e),u=G8e(a,e,l,c);u===void 0?de.Warn(`Unknown header attribute type ${l}'.`):r[o]=u}}if(i&-5)throw new Error("Unsupported file format");return{version:t,spec:s,...r}}const H8e=16,MGe=1<<H8e-1,Y8e=(1<<H8e)-1;function X8e(a,e){let t=0;for(let s=0;s<KH;++s)(s==0||a[s>>3]&1<<(s&7))&&(e[t++]=s);const i=t-1;for(;t<KH;)e[t++]=0;return i}function EGe(a){for(let e=0;e<Tse;e++)a[e]={},a[e].len=0,a[e].lit=0,a[e].p=null}function Z8e(a,e,t,i,s){for(;t<a;)e=e<<8|Pse(i,s),t+=8;return t-=a,{l:e>>t&(1<<a)-1,c:e,lc:t}}function Dse(a,e,t,i){return a=a<<8|Pse(t,i),e+=8,{c:a,lc:e}}function Nse(a,e,t,i,s,r,n,o,l){if(a==e){if(i<8){const f=Dse(t,i,s,r);t=f.c,i=f.lc}i-=8;let c=t>>i;if(c=new Uint8Array([c])[0],o.value+c>l)return null;const u=n[o.value-1];for(;c-- >0;)n[o.value++]=u}else if(o.value<l)n[o.value++]=a;else return null;return{c:t,lc:i}}const ZB=new Array(59);function TGe(a){for(let t=0;t<=58;++t)ZB[t]=0;for(let t=0;t<HB;++t)ZB[a[t]]+=1;let e=0;for(let t=58;t>0;--t){const i=e+ZB[t]>>1;ZB[t]=e,e=i}for(let t=0;t<HB;++t){const i=a[t];i>0&&(a[t]=i|ZB[i]++<<6)}}function LGe(a,e,t,i,s,r){const n=e;let o=0,l=0;for(;i<=s;i++){if(n.value-e.value>t)return;let c=Z8e(6,o,l,a,n);const u=c.l;if(o=c.c,l=c.lc,r[i]=u,u==k8e){if(n.value-e.value>t)throw new Error("Error in HufUnpackEncTable");c=Z8e(8,o,l,a,n);let f=c.l+uGe;if(o=c.c,l=c.lc,i+f>s+1)throw new Error("Error in HufUnpackEncTable");for(;f--;)r[i++]=0;i--}else if(u>=Lse){let f=u-Lse+2;if(i+f>s+1)throw new Error("Error in HufUnpackEncTable");for(;f--;)r[i++]=0;i--}}TGe(r)}function K8e(a){return a&63}function q8e(a){return a>>6}function IGe(a,e,t,i){for(;e<=t;e++){const s=q8e(a[e]),r=K8e(a[e]);if(s>>r)throw new Error("Invalid table entry");if(r>h9){const n=i[s>>r-h9];if(n.len)throw new Error("Invalid table entry");if(n.lit++,n.p){const o=n.p;n.p=new Array(n.lit);for(let l=0;l<n.lit-1;++l)n.p[l]=o[l]}else n.p=new Array(1);n.p[n.lit-1]=e}else if(r){let n=0;for(let o=1<<h9-r;o>0;o--){const l=i[(s<<h9-r)+n];if(l.len||l.p)throw new Error("Invalid table entry");l.len=r,l.lit=e,n++}}}return!0}function PGe(a,e,t,i,s,r,n,o,l){let c=0,u=0;const f=n,p=Math.trunc(i.value+(s+7)/8);for(;i.value<p;){let _=Dse(c,u,t,i);for(c=_.c,u=_.lc;u>=h9;){const d=c>>u-h9&F8e,h=e[d];if(h.len){u-=h.len;const x=Nse(h.lit,r,c,u,t,i,o,l,f);x&&(c=x.c,u=x.lc)}else{if(!h.p)throw new Error("hufDecode issues");let x;for(x=0;x<h.lit;x++){const A=K8e(a[h.p[x]]);for(;u<A&&i.value<p;)_=Dse(c,u,t,i),c=_.c,u=_.lc;if(u>=A&&q8e(a[h.p[x]])==(c>>u-A&(1<<A)-1)){u-=A;const S=Nse(h.p[x],r,c,u,t,i,o,l,f);S&&(c=S.c,u=S.lc);break}}if(x==h.lit)throw new Error("HufDecode issues")}}}const m=8-s&7;for(c>>=m,u-=m;u>0;){const _=e[c<<h9-u&F8e];if(_.len){u-=_.len;const d=Nse(_.lit,r,c,u,t,i,o,l,f);d&&(c=d.c,u=d.lc)}else throw new Error("HufDecode issues")}return!0}function Q8e(a,e,t,i,s,r){const n={value:0},o=t.value,l=vb(e,t),c=vb(e,t);t.value+=4;const u=vb(e,t);if(t.value+=4,l<0||l>=HB||c<0||c>=HB)throw new Error("Wrong HUF_ENCSIZE");const f=new Array(HB),p=new Array(Tse);EGe(p);const m=i-(t.value-o);if(LGe(a,t,m,l,c,f),u>8*(i-(t.value-o)))throw new Error("Wrong hufUncompress");IGe(f,l,c,p),PGe(f,p,a,t,u,c,r,s,n)}function wse(a){return a&65535}function J8e(a){const e=wse(a);return e>32767?e-65536:e}function vO(a,e){const t=J8e(a),s=J8e(e),r=t+(s&1)+(s>>1),n=r,o=r-s;return{a:n,b:o}}function AO(a,e){const t=wse(a),i=wse(e),s=t-(i>>1)&Y8e;return{a:i+s-MGe&Y8e,b:s}}function $8e(a,e,t,i,s,r,n){const o=n<16384,l=t>s?s:t;let c=1,u,f;for(;c<=l;)c<<=1;for(c>>=1,u=c,c>>=1;c>=1;){f=0;const p=f+r*(s-u),m=r*c,_=r*u,d=i*c,h=i*u;let x,A,S,E;for(;f<=p;f+=_){let b=f;const M=f+i*(t-u);for(;b<=M;b+=h){const T=b+d,O=b+m,R=O+d;if(o){let I=vO(a[b+e],a[O+e]);x=I.a,S=I.b,I=vO(a[T+e],a[R+e]),A=I.a,E=I.b,I=vO(x,A),a[b+e]=I.a,a[T+e]=I.b,I=vO(S,E),a[O+e]=I.a,a[R+e]=I.b}else{let I=AO(a[b+e],a[O+e]);x=I.a,S=I.b,I=AO(a[T+e],a[R+e]),A=I.a,E=I.b,I=AO(x,A),a[b+e]=I.a,a[T+e]=I.b,I=AO(S,E),a[O+e]=I.a,a[R+e]=I.b}}if(t&c){const T=b+m;let O;o?O=vO(a[b+e],a[T+e]):O=AO(a[b+e],a[T+e]),x=O.a,a[T+e]=O.b,a[b+e]=x}}if(s&c){let b=f;const M=f+i*(t-u);for(;b<=M;b+=h){const T=b+d;let O;o?O=vO(a[b+e],a[T+e]):O=AO(a[b+e],a[T+e]),x=O.a,a[T+e]=O.b,a[b+e]=x}}u=c,c>>=1}return f}function eve(a,e,t){for(let i=0;i<t;++i)e[i]=a[e[i]]}function tve(a){let e=a.byteLength;const t=new Array;let i=0;const s=new DataView(a);for(;e>0;){const r=s.getInt8(i++);if(r<0){const n=-r;e-=n+1;for(let o=0;o<n;o++)t.push(s.getUint8(i++))}else{const n=r;e-=2;const o=s.getUint8(i++);for(let l=0;l<n+1;l++)t.push(o)}}return t}function Bse(a){return new DataView(a.array.buffer,a.offset.value,a.size)}function ive(a){const e=a.viewer.buffer.slice(a.offset.value,a.offset.value+a.size),t=new Uint8Array(tve(e)),i=new Uint8Array(t.length);return Ose(t),Rse(t,i),new DataView(i.buffer)}function zse(a){const e=a.array.slice(a.offset.value,a.offset.value+a.size),t=fflate.unzlibSync(e),i=new Uint8Array(t.length);return Ose(t),Rse(t,i),new DataView(i.buffer)}function sve(a){const e=a.array.slice(a.offset.value,a.offset.value+a.size),t=fflate.unzlibSync(e),i=a.lines*a.channels*a.width,s=a.type==1?new Uint16Array(i):new Uint32Array(i);let r=0,n=0;const o=new Array(4);for(let l=0;l<a.lines;l++)for(let c=0;c<a.channels;c++){let u=0;switch(a.type){case 1:o[0]=r,o[1]=o[0]+a.width,r=o[1]+a.width;for(let f=0;f<a.width;++f){const p=t[o[0]++]<<8|t[o[1]++];u+=p,s[n]=u,n++}break;case 2:o[0]=r,o[1]=o[0]+a.width,o[2]=o[1]+a.width,r=o[2]+a.width;for(let f=0;f<a.width;++f){const p=t[o[0]++]<<24|t[o[1]++]<<16|t[o[2]++]<<8;u+=p,s[n]=u,n++}break}}return new DataView(s.buffer)}function rve(a){const e=a.viewer,t={value:a.offset.value},i=new Uint16Array(a.width*a.scanlineBlockSize*(a.channels*a.type)),s=new Uint8Array(z8e);let r=0;const n=new Array(a.channels);for(let _=0;_<a.channels;_++)n[_]={},n[_].start=r,n[_].end=n[_].start,n[_].nx=a.width,n[_].ny=a.lines,n[_].size=a.type,r+=n[_].nx*n[_].ny*n[_].size;const o=XB(e,t),l=XB(e,t);if(l>=z8e)throw new Error("Wrong PIZ_COMPRESSION BITMAP_SIZE");if(o<=l)for(let _=0;_<l-o+1;_++)s[_+o]=YB(e,t);const c=new Uint16Array(KH),u=X8e(s,c),f=vb(e,t);Q8e(a.array,e,t,f,i,r);for(let _=0;_<a.channels;++_){const d=n[_];for(let h=0;h<n[_].size;++h)$8e(i,d.start+h,d.nx,d.size,d.ny,d.nx*d.size,u)}eve(c,i,r);let p=0;const m=new Uint8Array(i.buffer.byteLength);for(let _=0;_<a.lines;_++)for(let d=0;d<a.channels;d++){const h=n[d],x=h.nx*h.size,A=new Uint8Array(i.buffer,h.end*_O,x*_O);m.set(A,p),p+=x*_O,h.end+=x}return new DataView(m.buffer)}var Ab;(function(a){a[a.Float=0]="Float",a[a.HalfFloat=1]="HalfFloat"})(Ab||(Ab={}));class wL{}wL.DefaultOutputType=Ab.HalfFloat,wL.FFLATEUrl="https://unpkg.com/[email protected]";async function nve(a,e,t,i){const s={size:0,viewer:e,array:new Uint8Array(e.buffer),offset:t,width:a.dataWindow.xMax-a.dataWindow.xMin+1,height:a.dataWindow.yMax-a.dataWindow.yMin+1,channels:a.channels.length,channelLineOffsets:{},scanOrder:()=>0,bytesPerLine:0,outLineWidth:0,lines:0,scanlineBlockSize:0,inputSize:null,type:0,uncompress:null,getter:()=>0,format:5,outputChannels:0,decodeChannels:{},blockCount:null,byteArray:null,linearSpace:!1,textureType:0};switch(a.compression){case _b.NO_COMPRESSION:s.lines=1,s.uncompress=Bse;break;case _b.RLE_COMPRESSION:s.lines=1,s.uncompress=ive;break;case _b.ZIPS_COMPRESSION:s.lines=1,s.uncompress=zse,await Le.LoadScriptAsync(wL.FFLATEUrl);break;case _b.ZIP_COMPRESSION:s.lines=16,s.uncompress=zse,await Le.LoadScriptAsync(wL.FFLATEUrl);break;case _b.PIZ_COMPRESSION:s.lines=32,s.uncompress=rve;break;case _b.PXR24_COMPRESSION:s.lines=16,s.uncompress=sve,await Le.LoadScriptAsync(wL.FFLATEUrl);break;default:throw new Error(_b[a.compression]+" is unsupported")}s.scanlineBlockSize=s.lines;const r={};for(const c of a.channels)switch(c.name){case"Y":case"R":case"G":case"B":case"A":r[c.name]=!0,s.type=c.pixelType}let n=!1;if(r.R&&r.G&&r.B)n=!r.A,s.outputChannels=4,s.decodeChannels={R:0,G:1,B:2,A:3};else if(r.Y)s.outputChannels=1,s.decodeChannels={Y:0};else throw new Error("EXRLoader.parse: file contains unsupported data channels.");if(s.type===1)switch(i){case Ab.Float:s.getter=j8e,s.inputSize=_O;break;case Ab.HalfFloat:s.getter=XB,s.inputSize=_O;break}else if(s.type===2)switch(i){case Ab.Float:s.getter=$1,s.inputSize=Ese;break;case Ab.HalfFloat:s.getter=V8e,s.inputSize=Ese}else throw new Error("Unsupported pixelType "+s.type+" for "+a.compression);s.blockCount=s.height/s.scanlineBlockSize;for(let c=0;c<s.blockCount;c++)U8e(e,t);const o=s.width*s.height*s.outputChannels;switch(i){case Ab.Float:s.byteArray=new Float32Array(o),s.textureType=1,n&&s.byteArray.fill(1,0,o);break;case Ab.HalfFloat:s.byteArray=new Uint16Array(o),s.textureType=2,n&&s.byteArray.fill(15360,0,o);break;default:throw new Error("Unsupported type: "+i)}let l=0;for(const c of a.channels)s.decodeChannels[c.name]!==void 0&&(s.channelLineOffsets[c.name]=l*s.width),l+=c.pixelType*2;return s.bytesPerLine=s.width*l,s.outLineWidth=s.width*s.outputChannels,a.lineOrder==="INCREASING_Y"?s.scanOrder=c=>c:s.scanOrder=c=>s.height-1-c,s.outputChannels==4?(s.format=5,s.linearSpace=!0):(s.format=6,s.linearSpace=!1),s}function ave(a,e,t,i){const s={value:0};for(let r=0;r<a.height/a.scanlineBlockSize;r++){const n=f5(t,i)-e.dataWindow.yMin;a.size=vb(t,i),a.lines=n+a.scanlineBlockSize>a.height?a.height-n:a.scanlineBlockSize;const l=a.size<a.lines*a.bytesPerLine&&a.uncompress?a.uncompress(a):Bse(a);i.value+=a.size;for(let c=0;c<a.scanlineBlockSize;c++){const u=r*a.scanlineBlockSize,f=c+a.scanOrder(u);if(f>=a.height)continue;const p=c*a.bytesPerLine,m=(a.height-1-f)*a.outLineWidth;for(let _=0;_<a.channels;_++){const d=e.channels[_].name,h=a.channelLineOffsets[d],x=a.decodeChannels[d];if(x!==void 0){s.value=p+h;for(let A=0;A<a.width;A++){const S=m+A*a.outputChannels+x;a.byteArray&&(a.byteArray[S]=a.getter(l,s))}}}}}}class ove{constructor(){this.supportCascades=!1}loadCubeData(e,t,i,s,r){throw".exr not supported in Cube."}async loadData(e,t,i){const s=new DataView(e.buffer),r={value:0},n=W8e(s,r),o=await nve(n,s,r,wL.DefaultOutputType);ave(o,n,s,r);const l=n.dataWindow.xMax-n.dataWindow.xMin+1,c=n.dataWindow.yMax-n.dataWindow.yMin+1;i(l,c,t.generateMipMaps,!1,()=>{const u=t.getEngine();t.format=n.format,t.type=o.textureType,t.invertY=!1,t._gammaSpace=!n.linearSpace,o.byteArray&&u._uploadDataToTextureDirectly(t,o.byteArray,0,0,void 0,!0)})}}const OGe=Object.freeze(Object.defineProperty({__proto__:null,_ExrTextureLoader:ove},Symbol.toStringTag,{value:"Module"}));class lve{constructor(){this.supportCascades=!1}loadCubeData(){throw".ies not supported in Cube."}loadData(e,t,i){const s=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=P4e(s);i(r.width,r.height,!1,!1,()=>{const n=t.getEngine();t.type=1,t.format=6,t._gammaSpace=!1,n._uploadDataToTextureDirectly(t,r.data)})}}const RGe=Object.freeze(Object.defineProperty({__proto__:null,_IESTextureLoader:lve},Symbol.toStringTag,{value:"Module"}));class Cb extends Ir{get isSupported(){var e;return((e=this._engine)==null?void 0:e.getCaps().drawBuffersExtension)??!1}get textures(){return this._textures}get count(){return this._count}get depthTexture(){return this._textures[this._textures.length-1]}set wrapU(e){if(this._textures)for(let t=0;t<this._textures.length;t++)this._textures[t].wrapU=e}set wrapV(e){if(this._textures)for(let t=0;t<this._textures.length;t++)this._textures[t].wrapV=e}constructor(e,t,i,s,r,n){const o=r&&r.generateMipMaps?r.generateMipMaps:!1,l=r&&r.generateDepthTexture?r.generateDepthTexture:!1,c=r&&r.depthTextureFormat?r.depthTextureFormat:15,u=!r||r.doNotChangeAspectRatio===void 0?!0:r.doNotChangeAspectRatio,f=r&&r.drawOnlyOnFirstAttachmentByDefault?r.drawOnlyOnFirstAttachmentByDefault:!1;if(super(e,t,s,o,u,void 0,void 0,void 0,void 0,void 0,void 0,void 0,!0),!this.isSupported){this.dispose();return}this._textureNames=n;const p=[],m=[],_=[],d=[],h=[],x=[],A=[],S=[];this._initTypes(i,p,m,_,d,h,x,A,S,r);const E=!r||r.generateDepthBuffer===void 0?!0:r.generateDepthBuffer,b=!r||r.generateStencilBuffer===void 0?!1:r.generateStencilBuffer,M=r&&r.samples?r.samples:1;this._multiRenderTargetOptions={samplingModes:m,generateMipMaps:o,generateDepthBuffer:E,generateStencilBuffer:b,generateDepthTexture:l,depthTextureFormat:c,types:p,textureCount:i,useSRGBBuffers:_,samples:M,formats:d,targetTypes:h,faceIndex:x,layerIndex:A,layerCounts:S,labels:n,label:e},this._count=i,this._drawOnlyOnFirstAttachmentByDefault=f,i>0&&(this._createInternalTextures(),this._createTextures(n))}_initTypes(e,t,i,s,r,n,o,l,c,u){for(let f=0;f<e;f++)u&&u.types&&u.types[f]!==void 0?t.push(u.types[f]):t.push(u&&u.defaultType?u.defaultType:0),u&&u.samplingModes&&u.samplingModes[f]!==void 0?i.push(u.samplingModes[f]):i.push(be.BILINEAR_SAMPLINGMODE),u&&u.useSRGBBuffers&&u.useSRGBBuffers[f]!==void 0?s.push(u.useSRGBBuffers[f]):s.push(!1),u&&u.formats&&u.formats[f]!==void 0?r.push(u.formats[f]):r.push(5),u&&u.targetTypes&&u.targetTypes[f]!==void 0?n.push(u.targetTypes[f]):n.push(3553),u&&u.faceIndex&&u.faceIndex[f]!==void 0?o.push(u.faceIndex[f]):o.push(0),u&&u.layerIndex&&u.layerIndex[f]!==void 0?l.push(u.layerIndex[f]):l.push(0),u&&u.layerCounts&&u.layerCounts[f]!==void 0?c.push(u.layerCounts[f]):c.push(1)}_createInternaTextureIndexMapping(){const e={},t=[];if(!this._renderTarget)return t;const i=this._renderTarget.textures;for(let s=0;s<i.length;s++){const r=i[s];if(!r)continue;const n=e[r.uniqueId];n!==void 0?t[s]=n:e[r.uniqueId]=s}return t}_rebuild(e=!1,t=!1,i){if(this._count<1||e)return;const s=this._createInternaTextureIndexMapping();this.releaseInternalTextures(),this._createInternalTextures(),t&&(this._releaseTextures(),this._createTextures(i));const r=this._renderTarget.textures;for(let n=0;n<r.length;n++){const o=this._textures[n];s[n]!==void 0&&this._renderTarget.setTexture(r[s[n]],n),o._texture=r[n],o._texture&&(o._noMipmap=!o._texture.useMipMaps,o._useSRGBBuffer=o._texture._useSRGBBuffer)}this.samples!==1&&this._renderTarget.setSamples(this.samples,!this._drawOnlyOnFirstAttachmentByDefault,!0)}_createInternalTextures(){this._renderTarget=this._getEngine().createMultipleRenderTarget(this._size,this._multiRenderTargetOptions,!this._drawOnlyOnFirstAttachmentByDefault),this._texture=this._renderTarget.texture}_releaseTextures(){if(this._textures)for(let e=0;e<this._textures.length;e++)this._textures[e]._texture=null,this._textures[e].dispose()}_createTextures(e){const t=this._renderTarget.textures;this._textures=[];for(let i=0;i<t.length;i++){const s=new be(null,this.getScene());e!=null&&e[i]&&(s.name=e[i]),s._texture=t[i],s._texture&&(s._noMipmap=!s._texture.useMipMaps,s._useSRGBBuffer=s._texture._useSRGBBuffer),this._textures.push(s)}}setInternalTexture(e,t,i=!0){var s;if(this.renderTarget&&(t===0&&(this._texture=e),this.renderTarget.setTexture(e,t,i),this.textures[t]||(this.textures[t]=new be(null,this.getScene()),this.textures[t].name=((s=this._textureNames)==null?void 0:s[t])??this.textures[t].name),this.textures[t]._texture=e,this.textures[t]._noMipmap=!e.useMipMaps,this.textures[t]._useSRGBBuffer=e._useSRGBBuffer,this._count=this.renderTarget.textures?this.renderTarget.textures.length:0,this._multiRenderTargetOptions.types&&(this._multiRenderTargetOptions.types[t]=e.type),this._multiRenderTargetOptions.samplingModes&&(this._multiRenderTargetOptions.samplingModes[t]=e.samplingMode),this._multiRenderTargetOptions.useSRGBBuffers&&(this._multiRenderTargetOptions.useSRGBBuffers[t]=e._useSRGBBuffer),this._multiRenderTargetOptions.targetTypes&&this._multiRenderTargetOptions.targetTypes[t]!==-1)){let r=0;e.is2DArray?r=35866:e.isCube?r=34067:e.is3D?r=32879:r=3553,this._multiRenderTargetOptions.targetTypes[t]=r}}setLayerAndFaceIndex(e,t=-1,i=-1){!this.textures[e]||!this.renderTarget||(this._multiRenderTargetOptions.layerIndex&&(this._multiRenderTargetOptions.layerIndex[e]=t),this._multiRenderTargetOptions.faceIndex&&(this._multiRenderTargetOptions.faceIndex[e]=i),this.renderTarget.setLayerAndFaceIndex(e,t,i))}setLayerAndFaceIndices(e,t){this.renderTarget&&(this._multiRenderTargetOptions.layerIndex=e,this._multiRenderTargetOptions.faceIndex=t,this.renderTarget.setLayerAndFaceIndices(e,t))}get samples(){return this._samples}set samples(e){this._renderTarget?this._samples=this._renderTarget.setSamples(e):this._samples=e}resize(e){this._processSizeParameter(e),this._rebuild(!1,void 0,this._textureNames)}updateCount(e,t,i){this._multiRenderTargetOptions.textureCount=e,this._count=e;const s=[],r=[],n=[],o=[],l=[],c=[],u=[],f=[];this._textureNames=i,this._initTypes(e,s,r,n,o,l,c,u,f,t),this._multiRenderTargetOptions.types=s,this._multiRenderTargetOptions.samplingModes=r,this._multiRenderTargetOptions.useSRGBBuffers=n,this._multiRenderTargetOptions.formats=o,this._multiRenderTargetOptions.targetTypes=l,this._multiRenderTargetOptions.faceIndex=c,this._multiRenderTargetOptions.layerIndex=u,this._multiRenderTargetOptions.layerCounts=f,this._multiRenderTargetOptions.labels=i,this._rebuild(!1,!0,i)}_unbindFrameBuffer(e,t){this._renderTarget&&e.unBindMultiColorAttachmentFramebuffer(this._renderTarget,this.isCube,()=>{this.onAfterRenderObservable.notifyObservers(t)})}dispose(e=!1){this._releaseTextures(),e?this._texture=null:this.releaseInternalTextures(),super.dispose()}releaseInternalTextures(){var t,i;const e=(t=this._renderTarget)==null?void 0:t.textures;if(e){for(let s=e.length-1;s>=0;s--)this._textures[s]._texture=null;(i=this._renderTarget)==null||i.dispose(),this._renderTarget=null}}}class Fse{constructor(e,t,i){this.id=e,this.scale=t,this.offset=i}}class u_{constructor(e,t,i,s){return this.name=e,this.meshes=t,this.scene=s,this.options=i,this.options.map=this.options.map??["ambientTexture","bumpTexture","diffuseTexture","emissiveTexture","lightmapTexture","opacityTexture","reflectionTexture","refractionTexture","specularTexture"],this.options.uvsIn=this.options.uvsIn??q.UVKind,this.options.uvsOut=this.options.uvsOut??q.UVKind,this.options.layout=this.options.layout??u_.LAYOUT_STRIP,this.options.layout===u_.LAYOUT_COLNUM&&(this.options.colnum=this.options.colnum??8),this.options.updateInputMeshes=this.options.updateInputMeshes??!0,this.options.disposeSources=this.options.disposeSources??!0,this._expecting=0,this.options.fillBlanks=this.options.fillBlanks??!0,this.options.fillBlanks===!0&&(this.options.customFillColor=this.options.customFillColor??"black"),this.options.frameSize=this.options.frameSize??256,this.options.paddingRatio=this.options.paddingRatio??.0115,this._paddingValue=Math.ceil(this.options.frameSize*this.options.paddingRatio),this._paddingValue%2!==0&&this._paddingValue++,this.options.paddingMode=this.options.paddingMode??u_.SUBUV_WRAP,this.options.paddingMode===u_.SUBUV_COLOR&&(this.options.paddingColor=this.options.paddingColor??new St(0,0,0,1)),this.sets={},this.frames=[],this}_createFrames(e){const t=this._calculateSize(),i=new Ue(1,1).divide(t);let s=0;const r=this._expecting,n=this.meshes.length,o=Object.keys(this.sets);for(let p=0;p<o.length;p++){const m=o[p],_=new uf(this.name+".TexturePack."+m+"Set",{width:t.x,height:t.y},this.scene,!0,be.TRILINEAR_SAMPLINGMODE,5),d=_.getContext();d.fillStyle="rgba(0,0,0,0)",d.fillRect(0,0,t.x,t.y),_.update(!1),this.sets[m]=_}const l=this.options.frameSize||256,c=this._paddingValue,u=l+2*c,f=()=>{this._calculateMeshUVFrames(l,c,t,i,this.options.updateInputMeshes||!1)};for(let p=0;p<n;p++){const _=this.meshes[p].material;for(let d=0;d<o.length;d++){const h=new uf("temp",u,this.scene,!0),x=h.getContext(),A=this._getFrameOffset(p),S=()=>{s++,h.update(!1);const b=x.getImageData(0,0,u,u),M=this.sets[E];if(M.getContext().putImageData(b,t.x*A.x,t.y*A.y),h.dispose(),M.update(!1),s==r){f(),e();return}},E=o[d]||"_blank";if(!_||_[E]===null)x.fillStyle="rgba(0,0,0,0)",this.options.fillBlanks&&(x.fillStyle=this.options.customFillColor),x.fillRect(0,0,u,u),S();else{const b=_[E],M=new Image;b instanceof uf?M.src=b.getContext().canvas.toDataURL("image/png"):M.src=b.url,Le.SetCorsBehavior(M.src,M),M.onload=()=>{x.fillStyle="rgba(0,0,0,0)",x.fillRect(0,0,u,u),h.update(!1),x.setTransform(1,0,0,-1,0,0);const T=[0,0,1,0,1,1,0,1,-1,1,-1,0,-2,0,-1,1,-1];switch(this.options.paddingMode){case 0:for(let O=0;O<9;O++)x.drawImage(M,0,0,M.width,M.height,c+l*T[O],c+l*T[O+1]-u,l,l);break;case 1:for(let O=0;O<c;O++)x.drawImage(M,0,0,M.width,M.height,O+l*T[0],c-u,l,l),x.drawImage(M,0,0,M.width,M.height,c*2-O,c-u,l,l),x.drawImage(M,0,0,M.width,M.height,c,O-u,l,l),x.drawImage(M,0,0,M.width,M.height,c,c*2-O-u,l,l);x.drawImage(M,0,0,M.width,M.height,c+l*T[0],c+l*T[1]-u,l,l);break;case 2:x.fillStyle=(this.options.paddingColor||Pe.Black()).toHexString(),x.fillRect(0,0,u,-u),x.clearRect(c,c,l,l),x.drawImage(M,0,0,M.width,M.height,c+l*T[0],c+l*T[1]-u,l,l);break}x.setTransform(1,0,0,1,0,0),S()}}}}}_calculateSize(){const e=this.meshes.length||0,t=this.options.frameSize||0,i=this._paddingValue||0;switch(this.options.layout){case 0:return new Ue(t*e+2*i*e,t+2*i);case 1:{const s=Math.max(2,Math.ceil(Math.sqrt(e))),r=t*s+2*i*s;return new Ue(r,r)}case 2:{const s=this.options.colnum||1,r=Math.max(1,Math.ceil(e/s));return new Ue(t*s+2*i*s,t*r+2*i*r)}}return Ue.Zero()}_calculateMeshUVFrames(e,t,i,s,r){const n=this.meshes.length;for(let o=0;o<n;o++){const l=this.meshes[o],c=new Ue(e/i.x,e/i.y),u=s.clone().scale(t),p=this._getFrameOffset(o).add(u),m=new Fse(o,c,p);this.frames.push(m),r&&(this._updateMeshUV(l,o),this._updateTextureReferences(l))}}_getFrameOffset(e){const t=this.meshes.length;let i,s,r;switch(this.options.layout){case 0:return i=1/t,new Ue(e*i,0);case 1:{const n=Math.max(2,Math.ceil(Math.sqrt(t)));return s=Math.floor(e/n),r=e-s*n,i=1/n,new Ue(r*i,s*i)}case 2:{const n=this.options.colnum||1,o=Math.max(1,Math.ceil(t/n));return r=Math.floor(e/o),s=e-r*o,i=new Ue(1/n,1/o),new Ue(r*i.x,s*i.y)}}return Ue.Zero()}_updateMeshUV(e,t){const i=this.frames[t],s=e.getVerticesData(this.options.uvsIn||q.UVKind),r=[];let n=0;s.length&&(n=s.length||0);for(let o=0;o<n;o+=2)r.push(s[o]*i.scale.x+i.offset.x,s[o+1]*i.scale.y+i.offset.y);e.setVerticesData(this.options.uvsOut||q.UVKind,r)}_updateTextureReferences(e,t=!1){const i=e.material,s=Object.keys(this.sets),r=n=>{n.dispose&&n.dispose()};for(let n=0;n<s.length;n++){const o=s[n];if(t)i[o]!==null&&r(i[o]),i[o]=this.sets[o];else{if(!i)return;i[o]!==null&&(r(i[o]),i[o]=this.sets[o])}}}setMeshToFrame(e,t,i=!1){this._updateMeshUV(e,t),i&&this._updateTextureReferences(e,!0)}processAsync(){return new Promise((e,t)=>{try{if(this.meshes.length===0){e();return}let i=0;const s=r=>{if(i++,this.options.map){for(let n=0;n<this.options.map.length;n++){const o=this.options.map[n];r[o]!==null&&(this.sets[this.options.map[n]]||(this.sets[this.options.map[n]]=!0),this._expecting++)}i===this.meshes.length&&this._createFrames(e)}};for(let r=0;r<this.meshes.length;r++){const n=this.meshes[r],o=n.material;if(!o){if(i++,i===this.meshes.length)return this._createFrames(e);continue}o.forceCompilationAsync(n).then(()=>{s(o)})}}catch(i){return t(i)}})}dispose(){const e=Object.keys(this.sets);for(let t=0;t<e.length;t++){const i=e[t];this.sets[i].dispose()}}download(e="png",t=1){setTimeout(()=>{const i={name:this.name,sets:{},options:{},frames:[]},s=Object.keys(this.sets),r=Object.keys(this.options);try{for(let l=0;l<s.length;l++){const c=s[l],u=this.sets[c];i.sets[c]=u.getContext().canvas.toDataURL("image/"+e,t)}for(let l=0;l<r.length;l++){const c=r[l];i.options[c]=this.options[c]}for(let l=0;l<this.frames.length;l++){const c=this.frames[l];i.frames.push(c.scale.x,c.scale.y,c.offset.x,c.offset.y)}}catch(l){de.Warn("Unable to download: "+l);return}const n="data:text/json;charset=utf-8,"+encodeURIComponent(JSON.stringify(i,null,4)),o=document.createElement("a");o.setAttribute("href",n),o.setAttribute("download",this.name+"_texurePackage.json"),document.body.appendChild(o),o.click(),o.remove()},0)}updateFromJSON(e){try{const t=JSON.parse(e);this.name=t.name;const i=Object.keys(t.options);for(let r=0;r<i.length;r++)this.options[i[r]]=t.options[i[r]];for(let r=0;r<t.frames.length;r+=4){const n=new Fse(r/4,new Ue(t.frames[r],t.frames[r+1]),new Ue(t.frames[r+2],t.frames[r+3]));this.frames.push(n)}const s=Object.keys(t.sets);for(let r=0;r<s.length;r++){const n=new be(t.sets[s[r]],this.scene,!1,!1);this.sets[s[r]]=n}}catch(t){de.Warn("Unable to update from JSON: "+t)}}}u_.LAYOUT_STRIP=0,u_.LAYOUT_POWER2=1,u_.LAYOUT_COLNUM=2,u_.SUBUV_WRAP=0,u_.SUBUV_EXTEND=1,u_.SUBUV_COLOR=2;class cve extends zc{constructor(e,t,i,s,r,n,o){super(e,i,null,s,r,n),this._animate=!0,this._time=0,this._texturePath=t,r&&!(r instanceof be)&&(o=!!r.skipJson),o?this.setFragment(this._texturePath):this._loadJson(t),this.refreshRate=1}_loadJson(e){const t=()=>{try{this.setFragment(this._texturePath)}catch{de.Log("No json or ShaderStore or DOM element found for CustomProceduralTexture")}},i=e+"/config.json",s=new ha;s.open("GET",i),s.addEventListener("load",()=>{if(s.status===200||s.responseText&&s.responseText.length>0)try{this._config=JSON.parse(s.response),this.updateShaderUniforms(),this.updateTextures(),this.setFragment(this._texturePath+"/custom"),this._animate=this._config.animate,this.refreshRate=this._config.refreshrate}catch{t()}else t()},!1),s.addEventListener("error",()=>{t()},!1);try{s.send()}catch{de.Error("CustomProceduralTexture: Error on XHR send request.")}}isReady(){if(!super.isReady())return!1;for(const e in this._textures)if(!this._textures[e].isReady())return!1;return!0}render(e){const t=this.getScene();this._animate&&t&&(this._time+=t.getAnimationRatio()*.03,this.updateShaderUniforms()),super.render(e)}updateTextures(){for(let e=0;e<this._config.sampler2Ds.length;e++)this.setTexture(this._config.sampler2Ds[e].sample2Dname,new be(this._texturePath+"/"+this._config.sampler2Ds[e].textureRelativeUrl,this.getScene()))}updateShaderUniforms(){if(this._config)for(let e=0;e<this._config.uniforms.length;e++){const t=this._config.uniforms[e];switch(t.type){case"float":this.setFloat(t.name,t.value);break;case"color3":this.setColor3(t.name,new Pe(t.r,t.g,t.b));break;case"color4":this.setColor4(t.name,new St(t.r,t.g,t.b,t.a));break;case"vector2":this.setVector2(t.name,new Ue(t.x,t.y));break;case"vector3":this.setVector3(t.name,new P(t.x,t.y,t.z));break}}this.setFloat("time",this._time)}get animate(){return this._animate}set animate(e){this._animate=e}}const uve="noisePixelShader",DGe=`uniform float brightness;uniform float persistence;uniform float timeScale;varying vec2 vUV;vec2 hash22(vec2 p)
{p=p*mat2(127.1,311.7,269.5,183.3);p=-1.0+2.0*fract(sin(p)*43758.5453123);return sin(p*6.283+timeScale);}
float interpolationNoise(vec2 p)
{vec2 pi=floor(p);vec2 pf=p-pi;vec2 w=pf*pf*(3.-2.*pf);float f00=dot(hash22(pi+vec2(.0,.0)),pf-vec2(.0,.0));float f01=dot(hash22(pi+vec2(.0,1.)),pf-vec2(.0,1.));float f10=dot(hash22(pi+vec2(1.0,0.)),pf-vec2(1.0,0.));float f11=dot(hash22(pi+vec2(1.0,1.)),pf-vec2(1.0,1.));float xm1=mix(f00,f10,w.x);float xm2=mix(f01,f11,w.x);float ym=mix(xm1,xm2,w.y); 
return ym;}
float perlinNoise2D(float x,float y)
{float sum=0.0;float frequency=0.0;float amplitude=0.0;for(int i=0; i<OCTAVES; i++)
{frequency=pow(2.0,float(i));amplitude=pow(persistence,float(i));sum=sum+interpolationNoise(vec2(x*frequency,y*frequency))*amplitude;}
return sum;}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{float x=abs(vUV.x);float y=abs(vUV.y);float noise=brightness+(1.0-brightness)*perlinNoise2D(x,y);gl_FragColor=vec4(noise,noise,noise,1.0);}
`;H.ShadersStore[uve]||(H.ShadersStore[uve]=DGe);class KB extends zc{constructor(e,t=256,i=ei.LastCreatedScene,s,r){super(e,t,"noise",i,s,r),this.time=0,this.brightness=.2,this.octaves=3,this.persistence=.8,this.animationSpeedFactor=1,this.autoClear=!1,this._updateShaderUniforms()}_updateShaderUniforms(){const e=this.getScene();e&&(this.time+=e.getAnimationRatio()*this.animationSpeedFactor*.01,this.setFloat("brightness",this.brightness),this.setFloat("persistence",this.persistence),this.setFloat("timeScale",this.time))}_getDefines(){return"#define OCTAVES "+(this.octaves|0)}render(e){this._updateShaderUniforms(),super.render(e)}serialize(){const e={};return e.customType="BABYLON.NoiseProceduralTexture",e.brightness=this.brightness,e.octaves=this.octaves,e.persistence=this.persistence,e.animationSpeedFactor=this.animationSpeedFactor,e.size=this.getSize().width,e.generateMipMaps=this._generateMipMaps,e.time=this.time,e}clone(){const e=this.getSize(),t=new KB(this.name,e.width,this.getScene(),this._fallbackTexture?this._fallbackTexture:void 0,this._generateMipMaps);return t.hasAlpha=this.hasAlpha,t.level=this.level,t.coordinatesMode=this.coordinatesMode,t.brightness=this.brightness,t.octaves=this.octaves,t.persistence=this.persistence,t.animationSpeedFactor=this.animationSpeedFactor,t.time=this.time,t}static Parse(e,t){const i=new KB(e.name,e.size,t,void 0,e.generateMipMaps);return i.brightness=e.brightness,i.octaves=e.octaves,i.persistence=e.persistence,i.animationSpeedFactor=e.animationSpeedFactor,i.time=e.time??0,i}}ve("BABYLON.NoiseProceduralTexture",KB);class kse extends be{get width(){return this._texture?this._texture.width:0}get height(){return this._texture?this._texture.height:0}get depth(){return this._texture?this._texture.depth:0}constructor(e,t,i,s,r,n,o=!0,l=!1,c=be.TRILINEAR_SAMPLINGMODE,u=0,f){super(null,n,!o,l),this.format=r,this._texture=n.getEngine().createRawTexture3D(e,t,i,s,r,o,l,c,null,u,f),this.is3D=!0}update(e){this._texture&&this._getEngine().updateRawTexture3D(this._texture,e,this._texture.format,this._texture.invertY,null,this._texture.type)}}class Use extends Ir{constructor(e,t,i,s){super(e,t,i,s,!0),this.refractionPlane=new Sh(0,1,0,1),this.depth=2,this.onBeforeRenderObservable.add(()=>{this.getScene().clipPlane=this.refractionPlane}),this.onAfterRenderObservable.add(()=>{this.getScene().clipPlane=null})}clone(){const e=this.getScene();if(!e)return this;const t=this.getSize(),i=new Use(this.name,t.width,e,this._generateMipMaps);return i.hasAlpha=this.hasAlpha,i.level=this.level,i.refractionPlane=this.refractionPlane.clone(),this.renderList&&(i.renderList=this.renderList.slice(0)),i.depth=this.depth,i}serialize(){if(!this.name)return null;const e=super.serialize();return e.mirrorPlane=this.refractionPlane.asArray(),e.depth=this.depth,e}}class NGe extends Sy{get renderTarget(){return this._renderTarget}constructor(e,t,i){super(null),this._renderTarget=null,this._engine=e,this._renderTargetOptions=i,this.resize(t)}resize(e){var t;(t=this._renderTarget)==null||t.dispose(),this._renderTarget=null,this._texture=null,this._size=e,this._engine&&(this._renderTarget=this._engine.createRenderTargetTexture(this._size,this._renderTargetOptions)),this._texture=this.renderTarget.texture}getInternalTexture(){return this._texture}getClassName(){return"ThinRenderTargetTexture"}dispose(e=!1){var t;(t=this._renderTarget)==null||t.dispose(!0),this._renderTarget=null,e||super.dispose()}}const jse="proceduralVertexShader",hve=`attribute position: vec2f;varying vPosition: vec2f;varying vUV: vec2f;const madd: vec2f= vec2f(0.5,0.5);
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
vertexOutputs.vPosition=input.position;vertexOutputs.vUV=input.position*madd+madd;vertexOutputs.position= vec4f(input.position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[jse]||(H.ShadersStoreWGSL[jse]=hve);const dve={name:jse,shader:hve},fve=Object.freeze(Object.defineProperty({__proto__:null,proceduralVertexShaderWGSL:dve},Symbol.toStringTag,{value:"Module"})),Vse="proceduralVertexShader",pve=`attribute vec2 position;varying vec2 vPosition;varying vec2 vUV;const vec2 madd=vec2(0.5,0.5);
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
vPosition=position;vUV=position*madd+madd;gl_Position=vec4(position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[Vse]||(H.ShadersStore[Vse]=pve);const mve={name:Vse,shader:pve},gve=Object.freeze(Object.defineProperty({__proto__:null,proceduralVertexShader:mve},Symbol.toStringTag,{value:"Module"})),Gse="hdrFilteringVertexShader",_ve=`attribute vec2 position;varying vec3 direction;uniform vec3 up;uniform vec3 right;uniform vec3 front;
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
mat3 view=mat3(up,right,front);direction=view*vec3(position,1.0);gl_Position=vec4(position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[Gse]||(H.ShadersStore[Gse]=_ve);const vve={name:Gse,shader:_ve},wGe=Object.freeze(Object.defineProperty({__proto__:null,hdrFilteringVertexShader:vve},Symbol.toStringTag,{value:"Module"})),Wse="hdrFilteringPixelShader",Ave=`#include<helperFunctions>
#include<importanceSampling>
#include<pbrBRDFFunctions>
#include<hdrFilteringFunctions>
uniform float alphaG;uniform samplerCube inputTexture;uniform vec2 vFilteringInfo;uniform float hdrScale;varying vec3 direction;void main() {vec3 color=radiance(alphaG,inputTexture,direction,vFilteringInfo);gl_FragColor=vec4(color*hdrScale,1.0);}`;H.ShadersStore[Wse]||(H.ShadersStore[Wse]=Ave);const Cve={name:Wse,shader:Ave},BGe=Object.freeze(Object.defineProperty({__proto__:null,hdrFilteringPixelShader:Cve},Symbol.toStringTag,{value:"Module"})),Hse="hdrFilteringVertexShader",xve=`attribute position: vec2f;varying direction: vec3f;uniform up: vec3f;uniform right: vec3f;uniform front: vec3f;
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
var view: mat3x3f= mat3x3f(uniforms.up,uniforms.right,uniforms.front);vertexOutputs.direction=view*vec3f(input.position,1.0);vertexOutputs.position= vec4f(input.position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[Hse]||(H.ShadersStoreWGSL[Hse]=xve);const bve={name:Hse,shader:xve},zGe=Object.freeze(Object.defineProperty({__proto__:null,hdrFilteringVertexShaderWGSL:bve},Symbol.toStringTag,{value:"Module"})),Yse="hdrFilteringPixelShader",Sve=`#include<helperFunctions>
#include<importanceSampling>
#include<pbrBRDFFunctions>
#include<hdrFilteringFunctions>
uniform alphaG: f32;var inputTextureSampler: sampler;var inputTexture: texture_cube<f32>;uniform vFilteringInfo: vec2f;uniform hdrScale: f32;varying direction: vec3f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var color: vec3f=radiance(uniforms.alphaG,inputTexture,inputTextureSampler,input.direction,uniforms.vFilteringInfo);fragmentOutputs.color= vec4f(color*uniforms.hdrScale,1.0);}`;H.ShadersStoreWGSL[Yse]||(H.ShadersStoreWGSL[Yse]=Sve);const yve={name:Yse,shader:Sve},FGe=Object.freeze(Object.defineProperty({__proto__:null,hdrFilteringPixelShaderWGSL:yve},Symbol.toStringTag,{value:"Module"})),Xse="hdrIrradianceFilteringVertexShader",Mve=`attribute vec2 position;varying vec3 direction;uniform vec3 up;uniform vec3 right;uniform vec3 front;
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
mat3 view=mat3(up,right,front);direction=view*vec3(position,1.0);gl_Position=vec4(position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[Xse]||(H.ShadersStore[Xse]=Mve);const Eve={name:Xse,shader:Mve},kGe=Object.freeze(Object.defineProperty({__proto__:null,hdrIrradianceFilteringVertexShader:Eve},Symbol.toStringTag,{value:"Module"})),Zse="hdrIrradianceFilteringPixelShader",Tve=`#include<helperFunctions>
#include<importanceSampling>
#include<pbrBRDFFunctions>
#include<hdrFilteringFunctions>
uniform samplerCube inputTexture;
#ifdef IBL_CDF_FILTERING
uniform sampler2D icdfTexture;
#endif
uniform vec2 vFilteringInfo;uniform float hdrScale;varying vec3 direction;void main() {vec3 color=irradiance(inputTexture,direction,vFilteringInfo
#ifdef IBL_CDF_FILTERING
,icdfTexture
#endif
);gl_FragColor=vec4(color*hdrScale,1.0);}`;H.ShadersStore[Zse]||(H.ShadersStore[Zse]=Tve);const Lve={name:Zse,shader:Tve},UGe=Object.freeze(Object.defineProperty({__proto__:null,hdrIrradianceFilteringPixelShader:Lve},Symbol.toStringTag,{value:"Module"})),Kse="hdrIrradianceFilteringVertexShader",Ive=`attribute position: vec2f;varying direction: vec3f;uniform up: vec3f;uniform right: vec3f;uniform front: vec3f;
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
var view: mat3x3f= mat3x3f(uniforms.up,uniforms.right,uniforms.front);vertexOutputs.direction=view*vec3f(input.position,1.0);vertexOutputs.position= vec4f(input.position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[Kse]||(H.ShadersStoreWGSL[Kse]=Ive);const Pve={name:Kse,shader:Ive},jGe=Object.freeze(Object.defineProperty({__proto__:null,hdrIrradianceFilteringVertexShaderWGSL:Pve},Symbol.toStringTag,{value:"Module"})),qse="hdrIrradianceFilteringPixelShader",Ove=`#include<helperFunctions>
#include<importanceSampling>
#include<pbrBRDFFunctions>
#include<hdrFilteringFunctions>
var inputTextureSampler: sampler;var inputTexture: texture_cube<f32>;
#ifdef IBL_CDF_FILTERING
var icdfTextureSampler: sampler;var icdfTexture: texture_2d<f32>;
#endif
uniform vFilteringInfo: vec2f;uniform hdrScale: f32;varying direction: vec3f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var color: vec3f=irradiance(inputTexture,inputTextureSampler,input.direction,uniforms.vFilteringInfo
#ifdef IBL_CDF_FILTERING
,icdfTexture,icdfTextureSampler
#endif
);fragmentOutputs.color= vec4f(color*uniforms.hdrScale,1.0);}`;H.ShadersStoreWGSL[qse]||(H.ShadersStoreWGSL[qse]=Ove);const Rve={name:qse,shader:Ove},VGe=Object.freeze(Object.defineProperty({__proto__:null,hdrIrradianceFilteringPixelShaderWGSL:Rve},Symbol.toStringTag,{value:"Module"}));var Qse;(function(a){a[a.Uniform=0]="Uniform",a[a.Attribute=1]="Attribute",a[a.Varying=2]="Varying",a[a.Undefined=3]="Undefined"})(Qse||(Qse={}));class Vn extends OL{constructor(e,t,i,s,r){super(e,t,i),this._blockType=s,this._blockName=r,this.needDualDirectionValidation=!0}checkCompatibilityState(e){return e instanceof Vn&&e._blockName===this._blockName?0:1}createCustomInputBlock(){return[new this._blockType(this._blockName),this.name]}}class Jse extends Di{constructor(e){super(e,Te.Vertex),this._isUnique=!0,this.registerInput("splatPosition",$.Vector3,!1,Te.Vertex),this.registerInput("splatScale",$.Vector2,!0,Te.Vertex),this.registerInput("world",$.Matrix,!1,Te.Vertex),this.registerInput("view",$.Matrix,!1,Te.Vertex),this.registerInput("projection",$.Matrix,!1,Te.Vertex),this.registerOutput("splatVertex",$.Vector4,Te.Vertex)}getClassName(){return"GaussianSplattingBlock"}get splatPosition(){return this._inputs[0]}get splatScale(){return this._inputs[1]}get world(){return this._inputs[2]}get view(){return this._inputs[3]}get projection(){return this._inputs[4]}get splatVertex(){return this._outputs[0]}initialize(e){e._excludeVariableName("focal"),e._excludeVariableName("invViewport")}_buildBlock(e){if(super._buildBlock(e),e.target===Te.Fragment)return;const t=`//${this.name}`;e._emitFunctionFromInclude("gaussianSplattingVertexDeclaration",t),e._emitFunctionFromInclude("gaussianSplatting",t),e._emitUniformFromString("focal",$.Vector2),e._emitUniformFromString("invViewport",$.Vector2),e.attributes.push(q.PositionKind),e.sharedData.nodeMaterial.backFaceCulling=!1;const i=this.splatPosition,s=this.splatScale,r=this.world,n=this.view,o=this.projection,l=this.splatVertex;let u=`vec2${e.fSuffix}(1.,1.)`;s.isConnected&&(u=s.associatedVariableName);let f="position",p="";return e.shaderLanguage===1&&(f="input.position",p=", uniforms.focal, uniforms.invViewport"),e.compilationString+=`${e._declareOutput(l)} = gaussianSplatting(${f}, ${i.associatedVariableName}, ${u}, covA, covB, ${r.associatedVariableName}, ${n.associatedVariableName}, ${o.associatedVariableName}${p});
`,this}}ve("BABYLON.GaussianSplattingBlock",Jse);class $se extends Di{constructor(e){super(e,Te.Fragment),this._isUnique=!1,this.registerInput("splatColor",$.Color4,!1,Te.Fragment),this.registerOutput("rgba",$.Color4,Te.Fragment)}getClassName(){return"GaussianBlock"}get splatColor(){return this._inputs[0]}get rgba(){return this._outputs[0]}initialize(e){e._excludeVariableName("vPosition")}_buildBlock(e){if(super._buildBlock(e),e.target===Te.Vertex)return;const t=`//${this.name}`;e._emitFunctionFromInclude("clipPlaneFragmentDeclaration",t),e._emitFunctionFromInclude("logDepthDeclaration",t),e._emitFunctionFromInclude("fogFragmentDeclaration",t),e._emitFunctionFromInclude("gaussianSplattingFragmentDeclaration",t),e._emitVaryingFromString("vPosition",$.Vector2);const i=this.splatColor,s=this._outputs[0];return e.shaderLanguage===1?e.compilationString+=`${e._declareOutput(s)} = gaussianColor(${i.associatedVariableName}, input.vPosition);
`:e.compilationString+=`${e._declareOutput(s)} = gaussianColor(${i.associatedVariableName});
`,this}}ve("BABYLON.GaussianBlock",$se);const Dve="gaussianSplattingFragmentDeclaration",GGe=`vec4 gaussianColor(vec4 inColor)
{float A=-dot(vPosition,vPosition);if (A<-4.0) discard;float B=exp(A)*inColor.a;
#include<logDepthFragment>
vec3 color=inColor.rgb;
#ifdef FOG
#include<fogFragment>
#endif
return vec4(color,B);}
`;H.IncludesShadersStore[Dve]||(H.IncludesShadersStore[Dve]=GGe);const ere="gaussianSplattingPixelShader",Nve=`#include<clipPlaneFragmentDeclaration>
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
varying vec4 vColor;varying vec2 vPosition;
#include<gaussianSplattingFragmentDeclaration>
void main () { 
#include<clipPlaneFragment>
gl_FragColor=gaussianColor(vColor);}
`;H.ShadersStore[ere]||(H.ShadersStore[ere]=Nve);const WGe=Object.freeze(Object.defineProperty({__proto__:null,gaussianSplattingPixelShader:{name:ere,shader:Nve}},Symbol.toStringTag,{value:"Module"})),tre="gaussianSplattingVertexDeclaration",wve="attribute vec2 position;uniform mat4 view;uniform mat4 projection;uniform mat4 world;uniform vec4 vEyePosition;";H.IncludesShadersStore[tre]||(H.IncludesShadersStore[tre]=wve);const HGe={name:tre,shader:wve},Bve="gaussianSplattingUboDeclaration",YGe=`#include<sceneUboDeclaration>
#include<meshUboDeclaration>
attribute vec2 position;`;H.IncludesShadersStore[Bve]||(H.IncludesShadersStore[Bve]=YGe);const zve="gaussianSplatting",XGe=`#if !defined(WEBGL2) && !defined(WEBGPU) && !defined(NATIVE)
mat3 transpose(mat3 matrix) {return mat3(matrix[0][0],matrix[1][0],matrix[2][0],
matrix[0][1],matrix[1][1],matrix[2][1],
matrix[0][2],matrix[1][2],matrix[2][2]);}
#endif
vec2 getDataUV(float index,vec2 textureSize) {float y=floor(index/textureSize.x);float x=index-y*textureSize.x;return vec2((x+0.5)/textureSize.x,(y+0.5)/textureSize.y);}
#if SH_DEGREE>0
ivec2 getDataUVint(float index,vec2 textureSize) {float y=floor(index/textureSize.x);float x=index-y*textureSize.x;return ivec2(uint(x+0.5),uint(y+0.5));}
#endif
struct Splat {vec4 center;vec4 color;vec4 covA;vec4 covB;
#if SH_DEGREE>0
uvec4 sh0; 
#endif
#if SH_DEGREE>1
uvec4 sh1;
#endif
#if SH_DEGREE>2
uvec4 sh2;
#endif
};Splat readSplat(float splatIndex)
{Splat splat;vec2 splatUV=getDataUV(splatIndex,dataTextureSize);splat.center=texture2D(centersTexture,splatUV);splat.color=texture2D(colorsTexture,splatUV);splat.covA=texture2D(covariancesATexture,splatUV)*splat.center.w;splat.covB=texture2D(covariancesBTexture,splatUV)*splat.center.w;
#if SH_DEGREE>0
ivec2 splatUVint=getDataUVint(splatIndex,dataTextureSize);splat.sh0=texelFetch(shTexture0,splatUVint,0);
#endif
#if SH_DEGREE>1
splat.sh1=texelFetch(shTexture1,splatUVint,0);
#endif
#if SH_DEGREE>2
splat.sh2=texelFetch(shTexture2,splatUVint,0);
#endif
return splat;}
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
vec3 computeColorFromSHDegree(vec3 dir,const vec3 sh[16])
{const float SH_C0=0.28209479;const float SH_C1=0.48860251;float SH_C2[5];SH_C2[0]=1.092548430;SH_C2[1]=-1.09254843;SH_C2[2]=0.315391565;SH_C2[3]=-1.09254843;SH_C2[4]=0.546274215;float SH_C3[7];SH_C3[0]=-0.59004358;SH_C3[1]=2.890611442;SH_C3[2]=-0.45704579;SH_C3[3]=0.373176332;SH_C3[4]=-0.45704579;SH_C3[5]=1.445305721;SH_C3[6]=-0.59004358;vec3 result=/*SH_C0**/sh[0];
#if SH_DEGREE>0
float x=dir.x;float y=dir.y;float z=dir.z;result+=- SH_C1*y*sh[1]+SH_C1*z*sh[2]-SH_C1*x*sh[3];
#if SH_DEGREE>1
float xx=x*x,yy=y*y,zz=z*z;float xy=x*y,yz=y*z,xz=x*z;result+=
SH_C2[0]*xy*sh[4] +
SH_C2[1]*yz*sh[5] +
SH_C2[2]*(2.0*zz-xx-yy)*sh[6] +
SH_C2[3]*xz*sh[7] +
SH_C2[4]*(xx-yy)*sh[8];
#if SH_DEGREE>2
result+=
SH_C3[0]*y*(3.0*xx-yy)*sh[9] +
SH_C3[1]*xy*z*sh[10] +
SH_C3[2]*y*(4.0*zz-xx-yy)*sh[11] +
SH_C3[3]*z*(2.0*zz-3.0*xx-3.0*yy)*sh[12] +
SH_C3[4]*x*(4.0*zz-xx-yy)*sh[13] +
SH_C3[5]*z*(xx-yy)*sh[14] +
SH_C3[6]*x*(xx-3.0*yy)*sh[15];
#endif
#endif
#endif
return result;}
vec4 decompose(uint value)
{vec4 components=vec4(
float((value ) & 255u),
float((value>>uint( 8)) & 255u),
float((value>>uint(16)) & 255u),
float((value>>uint(24)) & 255u));return components*vec4(2./255.)-vec4(1.);}
vec3 computeSH(Splat splat,vec3 color,vec3 dir)
{vec3 sh[16];sh[0]=color;
#if SH_DEGREE>0
vec4 sh00=decompose(splat.sh0.x);vec4 sh01=decompose(splat.sh0.y);vec4 sh02=decompose(splat.sh0.z);sh[1]=vec3(sh00.x,sh00.y,sh00.z);sh[2]=vec3(sh00.w,sh01.x,sh01.y);sh[3]=vec3(sh01.z,sh01.w,sh02.x);
#endif
#if SH_DEGREE>1
vec4 sh03=decompose(splat.sh0.w);vec4 sh04=decompose(splat.sh1.x);vec4 sh05=decompose(splat.sh1.y);sh[4]=vec3(sh02.y,sh02.z,sh02.w);sh[5]=vec3(sh03.x,sh03.y,sh03.z);sh[6]=vec3(sh03.w,sh04.x,sh04.y);sh[7]=vec3(sh04.z,sh04.w,sh05.x);sh[8]=vec3(sh05.y,sh05.z,sh05.w);
#endif
#if SH_DEGREE>2
vec4 sh06=decompose(splat.sh1.z);vec4 sh07=decompose(splat.sh1.w);vec4 sh08=decompose(splat.sh2.x);vec4 sh09=decompose(splat.sh2.y);vec4 sh10=decompose(splat.sh2.z);vec4 sh11=decompose(splat.sh2.w);sh[9]=vec3(sh06.x,sh06.y,sh06.z);sh[10]=vec3(sh06.w,sh07.x,sh07.y);sh[11]=vec3(sh07.z,sh07.w,sh08.x);sh[12]=vec3(sh08.y,sh08.z,sh08.w);sh[13]=vec3(sh09.x,sh09.y,sh09.z);sh[14]=vec3(sh09.w,sh10.x,sh10.y);sh[15]=vec3(sh10.z,sh10.w,sh11.x); 
#endif
return computeColorFromSHDegree(dir,sh);}
#else
vec3 computeSH(Splat splat,vec3 color,vec3 dir)
{return color;}
#endif
vec4 gaussianSplatting(vec2 meshPos,vec3 worldPos,vec2 scale,vec3 covA,vec3 covB,mat4 worldMatrix,mat4 viewMatrix,mat4 projectionMatrix)
{mat4 modelView=viewMatrix*worldMatrix;vec4 camspace=viewMatrix*vec4(worldPos,1.);vec4 pos2d=projectionMatrix*camspace;float bounds=1.2*pos2d.w;if (pos2d.z<-pos2d.w || pos2d.x<-bounds || pos2d.x>bounds
|| pos2d.y<-bounds || pos2d.y>bounds) {return vec4(0.0,0.0,2.0,1.0);}
mat3 Vrk=mat3(
covA.x,covA.y,covA.z,
covA.y,covB.x,covB.y,
covA.z,covB.y,covB.z
);mat3 J=mat3(
focal.x/camspace.z,0.,-(focal.x*camspace.x)/(camspace.z*camspace.z),
0.,focal.y/camspace.z,-(focal.y*camspace.y)/(camspace.z*camspace.z),
0.,0.,0.
);mat3 invy=mat3(1,0,0,0,-1,0,0,0,1);mat3 T=invy*transpose(mat3(modelView))*J;mat3 cov2d=transpose(T)*Vrk*T;float mid=(cov2d[0][0]+cov2d[1][1])/2.0;float radius=length(vec2((cov2d[0][0]-cov2d[1][1])/2.0,cov2d[0][1]));float epsilon=0.0001;float lambda1=mid+radius+epsilon,lambda2=mid-radius+epsilon;if (lambda2<0.0)
{return vec4(0.0,0.0,2.0,1.0);}
vec2 diagonalVector=normalize(vec2(cov2d[0][1],lambda1-cov2d[0][0]));vec2 majorAxis=min(sqrt(2.0*lambda1),1024.0)*diagonalVector;vec2 minorAxis=min(sqrt(2.0*lambda2),1024.0)*vec2(diagonalVector.y,-diagonalVector.x);vec2 vCenter=vec2(pos2d);return vec4(
vCenter 
+ ((meshPos.x*majorAxis
+ meshPos.y*minorAxis)*invViewport*pos2d.w)*scale,pos2d.zw);}`;H.IncludesShadersStore[zve]||(H.IncludesShadersStore[zve]=XGe);const ire="gaussianSplattingVertexShader",Fve=`#include<__decl__gaussianSplattingVertex>
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#include<logDepthDeclaration>
#include<helperFunctions>
attribute float splatIndex;uniform vec2 invViewport;uniform vec2 dataTextureSize;uniform vec2 focal;uniform sampler2D covariancesATexture;uniform sampler2D covariancesBTexture;uniform sampler2D centersTexture;uniform sampler2D colorsTexture;
#if SH_DEGREE>0
uniform highp usampler2D shTexture0;
#endif
#if SH_DEGREE>1
uniform highp usampler2D shTexture1;
#endif
#if SH_DEGREE>2
uniform highp usampler2D shTexture2;
#endif
varying vec4 vColor;varying vec2 vPosition;
#include<gaussianSplatting>
void main () {Splat splat=readSplat(splatIndex);vec3 covA=splat.covA.xyz;vec3 covB=vec3(splat.covA.w,splat.covB.xy);vec4 worldPos=world*vec4(splat.center.xyz,1.0);vColor=splat.color;vPosition=position;
#if SH_DEGREE>0
mat3 worldRot=mat3(world);mat3 normWorldRot=inverseMat3(worldRot);vec3 dir=normalize(normWorldRot*(worldPos.xyz-vEyePosition.xyz));dir.y*=-1.; 
vColor.xyz=computeSH(splat,splat.color.xyz,dir);
#endif
gl_Position=gaussianSplatting(position,worldPos.xyz,vec2(1.,1.),covA,covB,world,view,projection);
#include<clipPlaneVertex>
#include<fogVertex>
#include<logDepthVertex>
}
`;H.ShadersStore[ire]||(H.ShadersStore[ire]=Fve);const ZGe=Object.freeze(Object.defineProperty({__proto__:null,gaussianSplattingVertexShader:{name:ire,shader:Fve}},Symbol.toStringTag,{value:"Module"})),kve="gaussianSplattingFragmentDeclaration",KGe=`fn gaussianColor(inColor: vec4f,inPosition: vec2f)->vec4f
{var A : f32=-dot(inPosition,inPosition);if (A>-4.0)
{var B: f32=exp(A)*inColor.a;
#include<logDepthFragment>
var color: vec3f=inColor.rgb;
#ifdef FOG
#include<fogFragment>
#endif
return vec4f(color,B);} else {return vec4f(0.0);}}
`;H.IncludesShadersStoreWGSL[kve]||(H.IncludesShadersStoreWGSL[kve]=KGe);const sre="gaussianSplattingPixelShader",Uve=`#include<clipPlaneFragmentDeclaration>
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
varying vColor: vec4f;varying vPosition: vec2f;
#include<gaussianSplattingFragmentDeclaration>
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#include<clipPlaneFragment>
fragmentOutputs.color=gaussianColor(input.vColor,input.vPosition);}
`;H.ShadersStoreWGSL[sre]||(H.ShadersStoreWGSL[sre]=Uve);const qGe=Object.freeze(Object.defineProperty({__proto__:null,gaussianSplattingPixelShaderWGSL:{name:sre,shader:Uve}},Symbol.toStringTag,{value:"Module"})),jve="gaussianSplatting",QGe=`fn getDataUV(index: f32,dataTextureSize: vec2f)->vec2<f32> {let y: f32=floor(index/dataTextureSize.x);let x: f32=index-y*dataTextureSize.x;return vec2f((x+0.5),(y+0.5));}
struct Splat {center: vec4f,
color: vec4f,
covA: vec4f,
covB: vec4f,
#if SH_DEGREE>0
sh0: vec4<u32>,
#endif
#if SH_DEGREE>1
sh1: vec4<u32>,
#endif
#if SH_DEGREE>2
sh2: vec4<u32>,
#endif
};fn readSplat(splatIndex: f32,dataTextureSize: vec2f)->Splat {var splat: Splat;let splatUV=getDataUV(splatIndex,dataTextureSize);let splatUVi32=vec2<i32>(i32(splatUV.x),i32(splatUV.y));splat.center=textureLoad(centersTexture,splatUVi32,0);splat.color=textureLoad(colorsTexture,splatUVi32,0);splat.covA=textureLoad(covariancesATexture,splatUVi32,0)*splat.center.w;splat.covB=textureLoad(covariancesBTexture,splatUVi32,0)*splat.center.w;
#if SH_DEGREE>0
splat.sh0=textureLoad(shTexture0,splatUVi32,0);
#endif
#if SH_DEGREE>1
splat.sh1=textureLoad(shTexture1,splatUVi32,0);
#endif
#if SH_DEGREE>2
splat.sh2=textureLoad(shTexture2,splatUVi32,0);
#endif
return splat;}
fn computeColorFromSHDegree(dir: vec3f,sh: array<vec3<f32>,16>)->vec3f
{let SH_C0: f32=0.28209479;let SH_C1: f32=0.48860251;var SH_C2: array<f32,5>=array<f32,5>(
1.092548430,
-1.09254843,
0.315391565,
-1.09254843,
0.546274215
);var SH_C3: array<f32,7>=array<f32,7>(
-0.59004358,
2.890611442,
-0.45704579,
0.373176332,
-0.45704579,
1.445305721,
-0.59004358
);var result: vec3f=/*SH_C0**/sh[0];
#if SH_DEGREE>0
let x: f32=dir.x;let y: f32=dir.y;let z: f32=dir.z;result+=-SH_C1*y*sh[1]+SH_C1*z*sh[2]-SH_C1*x*sh[3];
#if SH_DEGREE>1
let xx: f32=x*x;let yy: f32=y*y;let zz: f32=z*z;let xy: f32=x*y;let yz: f32=y*z;let xz: f32=x*z;result+=
SH_C2[0]*xy*sh[4] +
SH_C2[1]*yz*sh[5] +
SH_C2[2]*(2.0f*zz-xx-yy)*sh[6] +
SH_C2[3]*xz*sh[7] +
SH_C2[4]*(xx-yy)*sh[8];
#if SH_DEGREE>2
result+=
SH_C3[0]*y*(3.0f*xx-yy)*sh[9] +
SH_C3[1]*xy*z*sh[10] +
SH_C3[2]*y*(4.0f*zz-xx-yy)*sh[11] +
SH_C3[3]*z*(2.0f*zz-3.0f*xx-3.0f*yy)*sh[12] +
SH_C3[4]*x*(4.0f*zz-xx-yy)*sh[13] +
SH_C3[5]*z*(xx-yy)*sh[14] +
SH_C3[6]*x*(xx-3.0f*yy)*sh[15];
#endif
#endif
#endif
return result;}
fn decompose(value: u32)->vec4f
{let components : vec4f=vec4f(
f32((value ) & 255u),
f32((value>>u32( 8)) & 255u),
f32((value>>u32(16)) & 255u),
f32((value>>u32(24)) & 255u));return components*vec4f(2./255.)-vec4f(1.);}
fn computeSH(splat: Splat,color: vec3f,dir: vec3f)->vec3f
{var sh: array<vec3<f32>,16>;sh[0]=color;
#if SH_DEGREE>0
let sh00: vec4f=decompose(splat.sh0.x);let sh01: vec4f=decompose(splat.sh0.y);let sh02: vec4f=decompose(splat.sh0.z);sh[1]=vec3f(sh00.x,sh00.y,sh00.z);sh[2]=vec3f(sh00.w,sh01.x,sh01.y);sh[3]=vec3f(sh01.z,sh01.w,sh02.x);
#endif
#if SH_DEGREE>1
let sh03: vec4f=decompose(splat.sh0.w);let sh04: vec4f=decompose(splat.sh1.x);let sh05: vec4f=decompose(splat.sh1.y);sh[4]=vec3f(sh02.y,sh02.z,sh02.w);sh[5]=vec3f(sh03.x,sh03.y,sh03.z);sh[6]=vec3f(sh03.w,sh04.x,sh04.y);sh[7]=vec3f(sh04.z,sh04.w,sh05.x);sh[8]=vec3f(sh05.y,sh05.z,sh05.w);
#endif
#if SH_DEGREE>2
let sh06: vec4f=decompose(splat.sh1.z);let sh07: vec4f=decompose(splat.sh1.w);let sh08: vec4f=decompose(splat.sh2.x);let sh09: vec4f=decompose(splat.sh2.y);let sh10: vec4f=decompose(splat.sh2.z);let sh11: vec4f=decompose(splat.sh2.w);sh[9]=vec3f(sh06.x,sh06.y,sh06.z);sh[10]=vec3f(sh06.w,sh07.x,sh07.y);sh[11]=vec3f(sh07.z,sh07.w,sh08.x);sh[12]=vec3f(sh08.y,sh08.z,sh08.w);sh[13]=vec3f(sh09.x,sh09.y,sh09.z);sh[14]=vec3f(sh09.w,sh10.x,sh10.y);sh[15]=vec3f(sh10.z,sh10.w,sh11.x); 
#endif
return computeColorFromSHDegree(dir,sh);}
fn gaussianSplatting(
meshPos: vec2<f32>,
worldPos: vec3<f32>,
scale: vec2<f32>,
covA: vec3<f32>,
covB: vec3<f32>,
worldMatrix: mat4x4<f32>,
viewMatrix: mat4x4<f32>,
projectionMatrix: mat4x4<f32>,
focal: vec2f,
invViewport: vec2f
)->vec4f {let modelView=viewMatrix*worldMatrix;let camspace=viewMatrix*vec4f(worldPos,1.0);let pos2d=projectionMatrix*camspace;let bounds=1.2*pos2d.w;if (pos2d.z<0. || pos2d.x<-bounds || pos2d.x>bounds || pos2d.y<-bounds || pos2d.y>bounds) {return vec4f(0.0,0.0,2.0,1.0);}
let Vrk=mat3x3<f32>(
covA.x,covA.y,covA.z,
covA.y,covB.x,covB.y,
covA.z,covB.y,covB.z
);let J=mat3x3<f32>(
focal.x/camspace.z,0.0,-(focal.x*camspace.x)/(camspace.z*camspace.z),
0.0,focal.y/camspace.z,-(focal.y*camspace.y)/(camspace.z*camspace.z),
0.0,0.0,0.0
);let invy=mat3x3<f32>(
1.0,0.0,0.0,
0.0,-1.0,0.0,
0.0,0.0,1.0
);let T=invy*transpose(mat3x3<f32>(
modelView[0].xyz,
modelView[1].xyz,
modelView[2].xyz))*J;let cov2d=transpose(T)*Vrk*T;let mid=(cov2d[0][0]+cov2d[1][1])/2.0;let radius=length(vec2<f32>((cov2d[0][0]-cov2d[1][1])/2.0,cov2d[0][1]));let lambda1=mid+radius;let lambda2=mid-radius;if (lambda2<0.0) {return vec4f(0.0,0.0,2.0,1.0);}
let diagonalVector=normalize(vec2<f32>(cov2d[0][1],lambda1-cov2d[0][0]));let majorAxis=min(sqrt(2.0*lambda1),1024.0)*diagonalVector;let minorAxis=min(sqrt(2.0*lambda2),1024.0)*vec2<f32>(diagonalVector.y,-diagonalVector.x);let vCenter=vec2<f32>(pos2d.x,pos2d.y);return vec4f(
vCenter+((meshPos.x*majorAxis+meshPos.y*minorAxis)*invViewport*pos2d.w)*scale,
pos2d.z,
pos2d.w
);}
`;H.IncludesShadersStoreWGSL[jve]||(H.IncludesShadersStoreWGSL[jve]=QGe);const rre="gaussianSplattingVertexShader",Vve=`#include<sceneUboDeclaration>
#include<meshUboDeclaration>
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#include<logDepthDeclaration>
attribute splatIndex: f32;attribute position: vec2f;uniform invViewport: vec2f;uniform dataTextureSize: vec2f;uniform focal: vec2f;var covariancesATexture: texture_2d<f32>;var covariancesBTexture: texture_2d<f32>;var centersTexture: texture_2d<f32>;var colorsTexture: texture_2d<f32>;
#if SH_DEGREE>0
var shTexture0: texture_2d<u32>;
#endif
#if SH_DEGREE>1
var shTexture1: texture_2d<u32>;
#endif
#if SH_DEGREE>2
var shTexture2: texture_2d<u32>;
#endif
varying vColor: vec4f;varying vPosition: vec2f;
#include<gaussianSplatting>
@vertex
fn main(input : VertexInputs)->FragmentInputs {var splat: Splat=readSplat(input.splatIndex,uniforms.dataTextureSize);var covA: vec3f=splat.covA.xyz;var covB: vec3f=vec3f(splat.covA.w,splat.covB.xy);let worldPos: vec4f=mesh.world*vec4f(splat.center.xyz,1.0);vertexOutputs.vPosition=input.position;
#if SH_DEGREE>0
let dir: vec3f=normalize(worldPos.xyz-scene.vEyePosition.xyz);vertexOutputs.vColor=vec4f(computeSH(splat,splat.color.xyz,dir),1.0);
#else
vertexOutputs.vColor=splat.color;
#endif
vertexOutputs.position=gaussianSplatting(input.position,worldPos.xyz,vec2f(1.0,1.0),covA,covB,mesh.world,scene.view,scene.projection,uniforms.focal,uniforms.invViewport);
#include<clipPlaneVertex>
#include<fogVertex>
#include<logDepthVertex>
}
`;H.ShadersStoreWGSL[rre]||(H.ShadersStoreWGSL[rre]=Vve);const JGe=Object.freeze(Object.defineProperty({__proto__:null,gaussianSplattingVertexShaderWGSL:{name:rre,shader:Vve}},Symbol.toStringTag,{value:"Module"}));class $Ge extends Br{constructor(){super(),this.FOG=!1,this.THIN_INSTANCES=!0,this.LOGARITHMICDEPTH=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.SH_DEGREE=0,this.rebuild()}}class d9 extends po{constructor(e,t){super(e,t),this.backFaceCulling=!1}get hasRenderTargetTextures(){return!1}needAlphaTesting(){return!1}needAlphaBlending(){return!0}isReadyForSubMesh(e,t){const s=t._drawWrapper;if(s.effect&&this.isFrozen&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===!0)return!0;t.materialDefines||(t.materialDefines=new $Ge);const r=this.getScene(),n=t.materialDefines;if(this._isReadyForSubMesh(t))return!0;const o=r.getEngine();if(ad(e,r,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,!1,n),od(r,o,this,n,!0,null,!0),zo(e,n,!1,!1),(o.version>1||o.isWebGPU)&&(n.SH_DEGREE=e.shDegree),n.isDirty){n.markAsProcessed(),r.resetCachedMaterial();const l=[q.PositionKind,"splatIndex"];Qo(l,n);const c=["world","view","projection","vFogInfos","vFogColor","logarithmicDepthConstant","invViewport","dataTextureSize","focal","vEyePosition"],u=["covariancesATexture","covariancesBTexture","centersTexture","colorsTexture","shTexture0","shTexture1","shTexture2"],f=["Scene","Mesh"];gl({uniformsNames:c,uniformBuffersNames:f,samplers:u,defines:n}),qo(c);const p=n.toString(),m=r.getEngine().createEffect("gaussianSplatting",{attributes:l,uniformsNames:c,uniformBuffersNames:f,samplers:u,defines:p,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{},shaderLanguage:this._shaderLanguage,extraInitializationsAsync:async()=>{this._shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>qGe),Promise.resolve().then(()=>JGe)]):await Promise.all([Promise.resolve().then(()=>WGe),Promise.resolve().then(()=>ZGe)])}},o);t.setEffect(m,n,this._materialContext)}return!t.effect||!t.effect.isReady()?!1:(n._renderId=r.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!0,!0)}static BindEffect(e,t,i){var f,p;const s=i.getEngine(),r=i.activeCamera,n=s.getRenderWidth(),o=s.getRenderHeight(),l=((f=r==null?void 0:r.rigParent)==null?void 0:f.rigCameras.length)||1;t.setFloat2("invViewport",1/(n/l),1/o);let c=1e3;if(r){const m=r.getProjectionMatrix().m[5];r.fovMode==_i.FOVMODE_VERTICAL_FIXED?c=o*m/2:c=n*m/2}t.setFloat2("focal",c,c);const u=e;if(u.covariancesATexture){const m=u.covariancesATexture.getSize();if(t.setFloat2("dataTextureSize",m.width,m.height),t.setTexture("covariancesATexture",u.covariancesATexture),t.setTexture("covariancesBTexture",u.covariancesBTexture),t.setTexture("centersTexture",u.centersTexture),t.setTexture("colorsTexture",u.colorsTexture),u.shTextures)for(let _=0;_<((p=u.shTextures)==null?void 0:p.length);_++)t.setTexture(`shTexture${_}`,u.shTextures[_])}}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;if(!n)return;this._activeEffect=n,t.getMeshUniformBuffer().bindToEffect(n,"Mesh"),t.transferToEffect(e),this._mustRebind(s,n,i,t.visibility)?(this.bindView(n),this.bindViewProjection(n),d9.BindEffect(t,this._activeEffect,s),Bo(n,this,s)):s.getEngine()._features.needToAlwaysBindUniformBuffers&&(this._needToBindSceneUbo=!0),Ic(s,t,n),this.useLogarithmicDepth&&ml(r,n,s),this._afterBind(t,this._activeEffect,i)}clone(e){return It.Clone(()=>new d9(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.GaussianSplattingMaterial",e}getClassName(){return"GaussianSplattingMaterial"}static Parse(e,t,i){return It.Parse(()=>new d9(e.name,t),e,t,i)}}ve("BABYLON.GaussianSplattingMaterial",d9);class nre extends Di{constructor(e){super(e,Te.Vertex),this._isUnique=!0,this.registerInput("splatIndex",$.Float,!1,Te.Vertex),this.registerOutput("splatPosition",$.Vector3,Te.Vertex),this.registerOutput("splatColor",$.Color4,Te.Vertex)}getClassName(){return"SplatReaderBlock"}get splatIndex(){return this._inputs[0]}get splatPosition(){return this._outputs[0]}get splatColor(){return this._outputs[1]}initialize(e){e._excludeVariableName("covA"),e._excludeVariableName("covB"),e._excludeVariableName("vPosition"),e._excludeVariableName("covariancesATexture"),e._excludeVariableName("covariancesBTexture"),e._excludeVariableName("centersTexture"),e._excludeVariableName("colorsTexture"),e._excludeVariableName("dataTextureSize")}bind(e,t,i){if(!i)return;const s=i.getScene();d9.BindEffect(i,e,s)}_buildBlock(e){if(super._buildBlock(e),e.target===Te.Fragment)return;e.sharedData.bindableBlocks.push(this);const t=`//${this.name}`;e._emit2DSampler("covariancesATexture"),e._emit2DSampler("covariancesBTexture"),e._emit2DSampler("centersTexture"),e._emit2DSampler("colorsTexture"),e._emitFunctionFromInclude("gaussianSplattingVertexDeclaration",t),e._emitFunctionFromInclude("gaussianSplatting",t),e._emitVaryingFromString("vPosition",$.Vector2),e._emitUniformFromString("dataTextureSize",$.Vector2);const i=this.splatIndex,s=this.splatPosition,r=this.splatColor,n=e._getFreeVariableName("splat");return e.shaderLanguage===1?(e.compilationString+=`var ${n}: Splat = readSplat(${i.associatedVariableName}, uniforms.dataTextureSize);
`,e.compilationString+=`var covA: vec3f = splat.covA.xyz; var covB: vec3f = vec3f(splat.covA.w, splat.covB.xy);
`,e.compilationString+=`vertexOutputs.vPosition = input.position;
`):(e.compilationString+=`Splat ${n} = readSplat(${i.associatedVariableName});
`,e.compilationString+=`vec3 covA = splat.covA.xyz; vec3 covB = vec3(splat.covA.w, splat.covB.xy);
`,e.compilationString+=`vPosition = position;
`),e.compilationString+=`${e._declareOutput(s)} = ${n}.center.xyz;
`,e.compilationString+=`${e._declareOutput(r)} = ${n}.color;
`,this}}ve("BABYLON.SplatReaderBlock",nre);function eWe(a){a.clear(),a.editorData=null;const e=new ys("SplatIndex");e.setAsAttribute("splatIndex");const t=new nre("SplatReader");e.connectTo(t);const i=new Jse("GaussianSplatting");t.connectTo(i);const s=new ys("World");s.setAsSystemValue(Ds.World);const r=new cO("WorldPos");t.connectTo(r),s.connectTo(r),r.connectTo(i,{output:"xyz",input:"splatPosition"});const n=new ys("view");n.setAsSystemValue(Ds.View);const o=new ys("Projection");o.setAsSystemValue(Ds.Projection),s.connectTo(i,{input:"world"}),n.connectTo(i,{input:"view"}),o.connectTo(i,{input:"projection"});const l=new $se("Gaussian");t.connectTo(l,{input:"splatColor",output:"splatColor"});const c=new Wy("FragmentOutput");l.connectTo(c);const u=new uO("VertexOutput");i.connectTo(u),a.addOutputNode(u),a.addOutputNode(c),a._mode=fd.GaussianSplatting}class Gve extends Di{constructor(e){super(e,Te.Vertex),this.registerInput("matricesIndices",$.Vector4),this.registerInput("matricesWeights",$.Vector4),this.registerInput("matricesIndicesExtra",$.Vector4,!0),this.registerInput("matricesWeightsExtra",$.Vector4,!0),this.registerInput("world",$.Matrix),this.registerOutput("output",$.Matrix)}initialize(e){e._excludeVariableName("boneSampler"),e._excludeVariableName("boneTextureWidth"),e._excludeVariableName("mBones"),e._excludeVariableName("BonesPerMesh"),this._initShaderSourceAsync(e.shaderLanguage)}async _initShaderSourceAsync(e){this._codeIsReady=!1,e===1?await Promise.all([Promise.resolve().then(()=>cwe),Promise.resolve().then(()=>_we)]):await Promise.all([Promise.resolve().then(()=>QNe),Promise.resolve().then(()=>nwe)]),this._codeIsReady=!0,this.onCodeIsReadyObservable.notifyObservers(this)}getClassName(){return"BonesBlock"}get matricesIndices(){return this._inputs[0]}get matricesWeights(){return this._inputs[1]}get matricesIndicesExtra(){return this._inputs[2]}get matricesWeightsExtra(){return this._inputs[3]}get world(){return this._inputs[4]}get output(){return this._outputs[0]}autoConfigure(e,t=()=>!0){if(!this.matricesIndices.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="matricesIndices"&&t(s));i||(i=new ys("matricesIndices"),i.setAsAttribute("matricesIndices")),i.output.connectTo(this.matricesIndices)}if(!this.matricesWeights.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="matricesWeights"&&t(s));i||(i=new ys("matricesWeights"),i.setAsAttribute("matricesWeights")),i.output.connectTo(this.matricesWeights)}if(!this.world.isConnected){let i=e.getInputBlockByPredicate(s=>s.systemValue===Ds.World&&t(s));i||(i=new ys("world"),i.setAsSystemValue(Ds.World)),i.output.connectTo(this.world)}}provideFallbacks(e,t){e&&e.useBones&&e.computeBonesUsingShaders&&e.skeleton&&t.addCPUSkinningFallback(0,e)}bind(e,t,i){Pc(i,e)}prepareDefines(e,t,i){i._areAttributesDirty&&gG(e,i)}_buildBlock(e){super._buildBlock(e),e.sharedData.blocksWithFallbacks.push(this),e.sharedData.forcedBindableBlocks.push(this),e.sharedData.blocksWithDefines.push(this),e.uniforms.push("boneTextureWidth"),e.uniforms.push("mBones"),e.samplers.push("boneSampler");const t=`//${this.name}`;e._emitFunctionFromInclude("bonesDeclaration",t,{removeAttributes:!0,removeUniforms:!1,removeVaryings:!0,removeIfDef:!1});const i=e._getFreeVariableName("influence");e.compilationString+=e._emitCodeFromInclude("bonesVertex",t,{replaceStrings:[{search:/finalWorld=finalWorld\*influence;/,replace:""},{search:/influence/gm,replace:i}]});const s=this._outputs[0],r=this.world;return e.compilationString+=`#if NUM_BONE_INFLUENCERS>0
`,e.compilationString+=e._declareOutput(s)+` = ${r.associatedVariableName} * ${i};
`,e.compilationString+=`#else
`,e.compilationString+=e._declareOutput(s)+` = ${r.associatedVariableName};
`,e.compilationString+=`#endif
`,this}}ve("BABYLON.BonesBlock",Gve);class Wve extends Di{constructor(e){super(e,Te.Vertex),this.registerInput("world0",$.Vector4),this.registerInput("world1",$.Vector4),this.registerInput("world2",$.Vector4),this.registerInput("world3",$.Vector4),this.registerInput("world",$.Matrix,!0),this.registerOutput("output",$.Matrix),this.registerOutput("instanceID",$.Float)}getClassName(){return"InstancesBlock"}get world0(){return this._inputs[0]}get world1(){return this._inputs[1]}get world2(){return this._inputs[2]}get world3(){return this._inputs[3]}get world(){return this._inputs[4]}get output(){return this._outputs[0]}get instanceID(){return this._outputs[1]}autoConfigure(e,t=()=>!0){if(!this.world0.connectedPoint){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="world0"&&t(s));i||(i=new ys("world0"),i.setAsAttribute("world0")),i.output.connectTo(this.world0)}if(!this.world1.connectedPoint){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="world1"&&t(s));i||(i=new ys("world1"),i.setAsAttribute("world1")),i.output.connectTo(this.world1)}if(!this.world2.connectedPoint){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="world2"&&t(s));i||(i=new ys("world2"),i.setAsAttribute("world2")),i.output.connectTo(this.world2)}if(!this.world3.connectedPoint){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="world3"&&t(s));i||(i=new ys("world3"),i.setAsAttribute("world3")),i.output.connectTo(this.world3)}if(!this.world.connectedPoint){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="world"&&t(s));i||(i=new ys("world"),i.setAsSystemValue(Ds.World)),i.output.connectTo(this.world)}this.world.define="!INSTANCES || THIN_INSTANCES"}prepareDefines(e,t,i,s=!1,r){let n=!1;i.INSTANCES!==s&&(i.setValue("INSTANCES",s),n=!0),r&&i.THIN_INSTANCES!==!!(r!=null&&r.getRenderingMesh().hasThinInstances)&&(i.setValue("THIN_INSTANCES",!!(r!=null&&r.getRenderingMesh().hasThinInstances)),n=!0),n&&i.markAsUnprocessed()}_buildBlock(e){super._buildBlock(e);const t=e.sharedData.scene.getEngine();e.sharedData.blocksWithDefines.push(this);const i=this._outputs[0],s=this._outputs[1],r=this.world0,n=this.world1,o=this.world2,l=this.world3;let c="mat4",u="gl_InstanceID",f="float";return e.shaderLanguage===1&&(c="mat4x4f",u="vertexInputs.instanceIndex",f="f32"),e.compilationString+=`#ifdef INSTANCES
`,e.compilationString+=e._declareOutput(i)+` = ${c}(${r.associatedVariableName}, ${n.associatedVariableName}, ${o.associatedVariableName}, ${l.associatedVariableName});
`,e.compilationString+=`#ifdef THIN_INSTANCES
`,e.compilationString+=`${i.associatedVariableName} = ${this.world.associatedVariableName} * ${i.associatedVariableName};
`,e.compilationString+=`#endif
`,t._caps.canUseGLInstanceID?e.compilationString+=e._declareOutput(s)+` = ${f}(${u});
`:e.compilationString+=e._declareOutput(s)+` = 0.0;
`,e.compilationString+=`#else
`,e.compilationString+=e._declareOutput(i)+` = ${this.world.associatedVariableName};
`,e.compilationString+=e._declareOutput(s)+` = 0.0;
`,e.compilationString+=`#endif
`,this}}ve("BABYLON.InstancesBlock",Wve);class are extends Di{constructor(e){super(e,Te.Vertex),this.registerInput("position",$.Vector3),this.registerInput("normal",$.Vector3),this.registerInput("tangent",$.AutoDetect),this.tangent.addExcludedConnectionPointFromAllowedTypes($.Color4|$.Vector4|$.Vector3),this.registerInput("uv",$.Vector2),this.registerInput("uv2",$.Vector2),this.registerInput("color",$.Color4),this.registerOutput("positionOutput",$.Vector3),this.registerOutput("normalOutput",$.Vector3),this.registerOutput("tangentOutput",$.Vector4),this.registerOutput("uvOutput",$.Vector2),this.registerOutput("uv2Output",$.Vector2),this.registerOutput("colorOutput",$.Color4)}getClassName(){return"MorphTargetsBlock"}get position(){return this._inputs[0]}get normal(){return this._inputs[1]}get tangent(){return this._inputs[2]}get uv(){return this._inputs[3]}get uv2(){return this._inputs[4]}get color(){return this._inputs[5]}get positionOutput(){return this._outputs[0]}get normalOutput(){return this._outputs[1]}get tangentOutput(){return this._outputs[2]}get uvOutput(){return this._outputs[3]}get uv2Output(){return this._outputs[4]}get colorOutput(){return this._outputs[5]}initialize(e){e._excludeVariableName("morphTargetInfluences"),this._initShaderSourceAsync(e.shaderLanguage)}async _initShaderSourceAsync(e){this._codeIsReady=!1,e===1?await Promise.all([Promise.resolve().then(()=>mwe),Promise.resolve().then(()=>dwe),Promise.resolve().then(()=>pwe),Promise.resolve().then(()=>hwe)]):await Promise.all([Promise.resolve().then(()=>swe),Promise.resolve().then(()=>ewe),Promise.resolve().then(()=>iwe),Promise.resolve().then(()=>$Ne)]),this._codeIsReady=!0,this.onCodeIsReadyObservable.notifyObservers(this)}autoConfigure(e,t=()=>!0){if(!this.position.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="position"&&t(s));i||(i=new ys("position"),i.setAsAttribute()),i.output.connectTo(this.position)}if(!this.normal.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="normal"&&t(s));i||(i=new ys("normal"),i.setAsAttribute("normal")),i.output.connectTo(this.normal)}if(!this.tangent.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="tangent"&&t(s));i||(i=new ys("tangent"),i.setAsAttribute("tangent")),i.output.connectTo(this.tangent)}if(!this.uv.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="uv"&&t(s));i||(i=new ys("uv"),i.setAsAttribute("uv")),i.output.connectTo(this.uv)}if(!this.uv2.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="uv2"&&t(s));i||(i=new ys("uv2"),i.setAsAttribute("uv2")),i.output.connectTo(this.uv2)}if(!this.color.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="color"&&t(s));i||(i=new ys("color"),i.setAsAttribute("color")),i.output.connectTo(this.color)}}prepareDefines(e,t,i){if(e.morphTargetManager){const s=e.morphTargetManager;s!=null&&s.isUsingTextureForTargets&&(s.numMaxInfluencers||s.numInfluencers)!==i.NUM_MORPH_INFLUENCERS&&i.markAsAttributesDirty()}i._areAttributesDirty&&_G(e,i)}bind(e,t,i){i&&i.morphTargetManager&&i.morphTargetManager.numInfluencers>0&&(s3(i,e),i.morphTargetManager.isUsingTextureForTargets&&i.morphTargetManager._bind(e))}replaceRepeatableContent(e,t,i,s){const r=this.position,n=this.normal,o=this.tangent,l=this.uv,c=this.uv2,u=this.color,f=this.positionOutput,p=this.normalOutput,m=this.tangentOutput,_=this.uvOutput,d=this.uv2Output,h=this.colorOutput,x=e,A=s.NUM_MORPH_INFLUENCERS,S=i.morphTargetManager,E=S&&S.supportsPositions,b=S&&S.supportsNormals,M=S&&S.supportsTangents,T=S&&S.supportsUVs,O=S&&S.supportsUV2s,R=S&&S.supportsColors;let I="";S!=null&&S.isUsingTextureForTargets&&A>0&&(I+=`${x._declareLocalVar("vertexID",$.Float)};
`),I+=`#ifdef MORPHTARGETS
`;const N=x.shaderLanguage===1,w=N?"uniforms.":"";if(S!=null&&S.isUsingTextureForTargets)I+=`for (${N?"var":"int"} i = 0; i < NUM_MORPH_INFLUENCERS; i++) {
`,I+=`if (i >= ${w}morphTargetCount) { break; }
`,I+=`vertexID = ${N?"f32(vertexInputs.vertexIndex":"float(gl_VertexID"}) * ${w}morphTargetTextureInfo.x;
`,E&&(I+=`#ifdef MORPHTARGETS_POSITION
`,I+=`${f.associatedVariableName} += (readVector3FromRawSampler(i, vertexID) - ${r.associatedVariableName}) * ${w}morphTargetInfluences[i];
`,I+=`#endif
`),I+=`#ifdef MORPHTARGETTEXTURE_HASPOSITIONS
`,I+=`vertexID += 1.0;
`,I+=`#endif
`,b&&(I+=`#ifdef MORPHTARGETS_NORMAL
`,I+=`${p.associatedVariableName} += (readVector3FromRawSampler(i, vertexID) - ${n.associatedVariableName}) * ${w}morphTargetInfluences[i];
`,I+=`#endif
`),I+=`#ifdef MORPHTARGETTEXTURE_HASNORMALS
`,I+=`vertexID += 1.0;
`,I+=`#endif
`,T&&(I+=`#ifdef MORPHTARGETS_UV
`,I+=`${_.associatedVariableName} += (readVector3FromRawSampler(i, vertexID).xy - ${l.associatedVariableName}) * ${w}morphTargetInfluences[i];
`,I+=`#endif
`),I+=`#ifdef MORPHTARGETTEXTURE_HASUVS
`,I+=`vertexID += 1.0;
`,I+=`#endif
`,M&&(I+=`#ifdef MORPHTARGETS_TANGENT
`,I+=`${m.associatedVariableName}.xyz += (readVector3FromRawSampler(i, vertexID) - ${o.associatedVariableName}.xyz) * ${w}morphTargetInfluences[i];
`,o.type===$.Vector4?I+=`${m.associatedVariableName}.w = ${o.associatedVariableName}.w;
`:I+=`${m.associatedVariableName}.w = 1.;
`,I+=`#endif
`),I+=`#ifdef MORPHTARGETTEXTURE_HASTANGENTS
`,I+=`vertexID += 1.0;
`,I+=`#endif
`,O&&(I+=`#ifdef MORPHTARGETS_UV2
`,I+=`${d.associatedVariableName} += (readVector3FromRawSampler(i, vertexID).xy - ${c.associatedVariableName}) * morphTargetInfluences[i];
`,I+=`#endif
`),I+=`#ifdef MORPHTARGETTEXTURE_HASUV2S
`,I+=`vertexID += 1.0;
`,I+=`#endif
`,R&&(I+=`#ifdef MORPHTARGETS_COLOR
`,I+=`${h.associatedVariableName} += (readVector4FromRawSampler(i, vertexID) - ${u.associatedVariableName}) * ${w}morphTargetInfluences[i];
`,I+=`#endif
`),I+=`}
`;else for(let D=0;D<A;D++)E&&(I+=`#ifdef MORPHTARGETS_POSITION
`,I+=`${f.associatedVariableName} += (position${D} - ${r.associatedVariableName}) * ${w}morphTargetInfluences[${D}];
`,I+=`#endif
`),b&&s.NORMAL&&(I+=`#ifdef MORPHTARGETS_NORMAL
`,I+=`${p.associatedVariableName} += (normal${D} - ${n.associatedVariableName}) * ${w}morphTargetInfluences[${D}];
`,I+=`#endif
`),T&&s.UV1&&(I+=`#ifdef MORPHTARGETS_UV
`,I+=`${_.associatedVariableName}.xy += (uv_${D} - ${l.associatedVariableName}.xy) * ${w}morphTargetInfluences[${D}];
`,I+=`#endif
`),M&&s.TANGENT&&(I+=`#ifdef MORPHTARGETS_TANGENT
`,I+=`${m.associatedVariableName}.xyz += (tangent${D} - ${o.associatedVariableName}.xyz) * ${w}morphTargetInfluences[${D}];
`,o.type===$.Vector4?I+=`${m.associatedVariableName}.w = ${o.associatedVariableName}.w;
`:I+=`${m.associatedVariableName}.w = 1.;
`,I+=`#endif
`),O&&s.UV2&&(I+=`#ifdef MORPHTARGETS_UV2
`,I+=`${d.associatedVariableName}.xy += (uv2_${D} - ${c.associatedVariableName}.xy) * morphTargetInfluences[${D}];
`,I+=`#endif
`),R&&s.VERTEXCOLOR_NME&&(I+=`#ifdef MORPHTARGETS_COLOR
`,I+=`${h.associatedVariableName} += (color${D} - ${u.associatedVariableName}) * ${w}morphTargetInfluences[${D}];
`,I+=`#endif
`);if(I+=`#endif
`,x.compilationString=x.compilationString.replace(this._repeatableContentAnchor,I),A>0)for(let D=0;D<A;D++)E&&x.attributes.push(q.PositionKind+D),b&&s.NORMAL&&x.attributes.push(q.NormalKind+D),M&&s.TANGENT&&x.attributes.push(q.TangentKind+D),T&&s.UV1&&x.attributes.push(q.UVKind+"_"+D),O&&s.UV2&&x.attributes.push(q.UV2Kind+"_"+D),R&&s.VERTEXCOLOR_NME&&x.attributes.push(q.ColorKind+D)}_buildBlock(e){super._buildBlock(e),e.sharedData.blocksWithDefines.push(this),e.sharedData.bindableBlocks.push(this),e.sharedData.repeatableContentBlocks.push(this);const t=this.position,i=this.normal,s=this.tangent,r=this.uv,n=this.uv2,o=this.color,l=this.positionOutput,c=this.normalOutput,u=this.tangentOutput,f=this.uvOutput,p=this.uv2Output,m=this.colorOutput,_=`//${this.name}`;return e.uniforms.push("morphTargetInfluences"),e.uniforms.push("morphTargetCount"),e.uniforms.push("morphTargetTextureInfo"),e.uniforms.push("morphTargetTextureIndices"),e.samplers.push("morphTargets"),e._emitFunctionFromInclude("morphTargetsVertexGlobalDeclaration",_),e._emitFunctionFromInclude("morphTargetsVertexDeclaration",_,{repeatKey:"maxSimultaneousMorphTargets"}),e.compilationString+=`${e._declareOutput(l)} = ${t.associatedVariableName};
`,e.compilationString+=`#ifdef NORMAL
`,e.compilationString+=`${e._declareOutput(c)} = ${i.associatedVariableName};
`,e.compilationString+=`#else
`,e.compilationString+=`${e._declareOutput(c)} = vec3(0., 0., 0.);
`,e.compilationString+=`#endif
`,e.compilationString+=`#ifdef TANGENT
`,e.compilationString+=`${e._declareOutput(u)} = ${s.associatedVariableName};
`,e.compilationString+=`#else
`,e.compilationString+=`${e._declareOutput(u)} = vec4(0., 0., 0., 0.);
`,e.compilationString+=`#endif
`,e.compilationString+=`#ifdef UV1
`,e.compilationString+=`${e._declareOutput(f)} = ${r.associatedVariableName};
`,e.compilationString+=`#else
`,e.compilationString+=`${e._declareOutput(f)} = vec2(0., 0.);
`,e.compilationString+=`#endif
`,e.compilationString+=`#ifdef UV2
`,e.compilationString+=`${e._declareOutput(p)} = ${n.associatedVariableName};
`,e.compilationString+=`#else
`,e.compilationString+=`${e._declareOutput(p)} = vec2(0., 0.);
`,e.compilationString+=`#endif
`,e.compilationString+=`#ifdef VERTEXCOLOR_NME
`,e.compilationString+=`${e._declareOutput(m)} = ${o.associatedVariableName};
`,e.compilationString+=`#else
`,e.compilationString+=`${e._declareOutput(m)} = vec4(0., 0., 0., 0.);
`,e.compilationString+=`#endif
`,this._repeatableContentAnchor=e._repeatableContentAnchor,e.compilationString+=this._repeatableContentAnchor,this}}ve("BABYLON.MorphTargetsBlock",are);class Hve extends Di{constructor(e){super(e,Te.Vertex),this.registerInput("worldPosition",$.Vector4,!1,Te.Vertex),this.registerOutput("direction",$.Vector3),this.registerOutput("color",$.Color3),this.registerOutput("intensity",$.Float),this.registerOutput("shadowBias",$.Float),this.registerOutput("shadowNormalBias",$.Float),this.registerOutput("shadowDepthScale",$.Float),this.registerOutput("shadowDepthRange",$.Vector2)}getClassName(){return"LightInformationBlock"}get worldPosition(){return this._inputs[0]}get direction(){return this._outputs[0]}get color(){return this._outputs[1]}get intensity(){return this._outputs[2]}get shadowBias(){return this._outputs[3]}get shadowNormalBias(){return this._outputs[4]}get shadowDepthScale(){return this._outputs[5]}get shadowDepthRange(){return this._outputs[6]}bind(e,t,i){if(!i)return;this.light&&this.light.isDisposed()&&(this.light=null);let s=this.light;const r=t.getScene();if(!s&&r.lights.length&&(s=this.light=r.lights[0],this._forcePrepareDefines=!0),!s||!s.isEnabled){e.setFloat3(this._lightDataUniformName,0,0,0),e.setFloat4(this._lightColorUniformName,0,0,0,0);return}s.transferToNodeMaterialEffect(e,this._lightDataUniformName),e.setColor4(this._lightColorUniformName,s.diffuse,s.intensity);const n=s.getShadowGenerator();if((this.shadowBias.hasEndpoints||this.shadowNormalBias.hasEndpoints||this.shadowDepthScale.hasEndpoints)&&(n?e.setFloat3(this._lightShadowUniformName,n.bias,n.normalBias,n.depthScale):e.setFloat3(this._lightShadowUniformName,0,0,0)),this.shadowDepthRange)if(n&&r.activeCamera){const o=s;e.setFloat2(this._lightShadowExtraUniformName,o.getDepthMinZ(r.activeCamera),o.getDepthMinZ(r.activeCamera)+o.getDepthMaxZ(r.activeCamera))}else e.setFloat2(this._lightShadowExtraUniformName,0,0)}prepareDefines(e,t,i){if(!i._areLightsDirty&&!this._forcePrepareDefines)return;this._forcePrepareDefines=!1;const s=this.light;i.setValue(this._lightTypeDefineName,!!(s&&s instanceof NT),!0)}_buildBlock(e){super._buildBlock(e),e.sharedData.bindableBlocks.push(this),e.sharedData.blocksWithDefines.push(this);const t=this.direction,i=this.color,s=this.intensity,r=this.shadowBias,n=this.shadowNormalBias,o=this.shadowDepthScale,l=this.shadowDepthRange;this._lightDataUniformName=e._getFreeVariableName("lightData"),this._lightColorUniformName=e._getFreeVariableName("lightColor"),this._lightShadowUniformName=e._getFreeVariableName("shadowData"),this._lightShadowExtraUniformName=e._getFreeVariableName("shadowExtraData"),this._lightTypeDefineName=e._getFreeDefineName("LIGHTPOINTTYPE");const c=e.shaderLanguage===1?"uniforms.":"";return e._emitUniformFromString(this._lightDataUniformName,$.Vector3),e._emitUniformFromString(this._lightColorUniformName,$.Vector4),e.compilationString+=`#ifdef ${this._lightTypeDefineName}
`,e.compilationString+=e._declareOutput(t)+` = normalize(${this.worldPosition.associatedVariableName}.xyz - ${c}${this._lightDataUniformName});
`,e.compilationString+=`#else
`,e.compilationString+=e._declareOutput(t)+` = ${c}${this._lightDataUniformName};
`,e.compilationString+=`#endif
`,e.compilationString+=e._declareOutput(i)+` = ${c}${this._lightColorUniformName}.rgb;
`,e.compilationString+=e._declareOutput(s)+` = ${c}${this._lightColorUniformName}.a;
`,(r.hasEndpoints||n.hasEndpoints||o.hasEndpoints)&&(e._emitUniformFromString(this._lightShadowUniformName,$.Vector3),r.hasEndpoints&&(e.compilationString+=e._declareOutput(r)+` = ${c}${this._lightShadowUniformName}.x;
`),n.hasEndpoints&&(e.compilationString+=e._declareOutput(n)+` = ${c}${this._lightShadowUniformName}.y;
`),o.hasEndpoints&&(e.compilationString+=e._declareOutput(o)+` = ${c}${this._lightShadowUniformName}.z;
`)),l.hasEndpoints&&(e._emitUniformFromString(this._lightShadowExtraUniformName,$.Vector2),e.compilationString+=e._declareOutput(l)+` = ${this._lightShadowUniformName};
`),this}serialize(){const e=super.serialize();return this.light&&(e.lightId=this.light.id),e}_deserialize(e,t,i){super._deserialize(e,t,i),e.lightId&&(this.light=t.getLightById(e.lightId))}}ve("BABYLON.LightInformationBlock",Hve);class ore extends Di{constructor(e){super(e,Te.Fragment),this.convertInputToLinearSpace=!0,this.registerInput("color",$.AutoDetect),this.registerOutput("output",$.Color4),this.registerOutput("rgb",$.Color3),this._inputs[0].addExcludedConnectionPointFromAllowedTypes($.Color3|$.Color4|$.Vector3|$.Vector4)}getClassName(){return"ImageProcessingBlock"}get color(){return this._inputs[0]}get output(){return this._outputs[0]}get rgb(){return this._outputs[1]}initialize(e){e._excludeVariableName("exposureLinear"),e._excludeVariableName("contrast"),e._excludeVariableName("vInverseScreenSize"),e._excludeVariableName("vignetteSettings1"),e._excludeVariableName("vignetteSettings2"),e._excludeVariableName("vCameraColorCurveNegative"),e._excludeVariableName("vCameraColorCurveNeutral"),e._excludeVariableName("vCameraColorCurvePositive"),e._excludeVariableName("txColorTransform"),e._excludeVariableName("colorTransformSettings"),e._excludeVariableName("ditherIntensity"),this._initShaderSourceAsync(e.shaderLanguage)}async _initShaderSourceAsync(e){this._codeIsReady=!1,e===1?await Promise.all([Promise.resolve().then(()=>N0e),Promise.resolve().then(()=>Uke),Promise.resolve().then(()=>Hke)]):await Promise.all([Promise.resolve().then(()=>Y3e),Promise.resolve().then(()=>uUe),Promise.resolve().then(()=>gUe)]),this._codeIsReady=!0,this.onCodeIsReadyObservable.notifyObservers(this)}isReady(e,t,i){return!(i._areImageProcessingDirty&&t.imageProcessingConfiguration&&!t.imageProcessingConfiguration.isReady())}prepareDefines(e,t,i){i._areImageProcessingDirty&&t.imageProcessingConfiguration&&t.imageProcessingConfiguration.prepareDefines(i)}bind(e,t,i){i&&t.imageProcessingConfiguration&&t.imageProcessingConfiguration.bind(e)}_buildBlock(e){var n;super._buildBlock(e),e.sharedData.blocksWithDefines.push(this),e.sharedData.blockingBlocks.push(this),e.sharedData.bindableBlocks.push(this),e.uniforms.push("exposureLinear"),e.uniforms.push("contrast"),e.uniforms.push("vInverseScreenSize"),e.uniforms.push("vignetteSettings1"),e.uniforms.push("vignetteSettings2"),e.uniforms.push("vCameraColorCurveNegative"),e.uniforms.push("vCameraColorCurveNeutral"),e.uniforms.push("vCameraColorCurvePositive"),e.uniforms.push("txColorTransform"),e.uniforms.push("colorTransformSettings"),e.uniforms.push("ditherIntensity");const t=this.color,i=this._outputs[0],s=`//${this.name}`,r=e.shaderLanguage===1?"Vec3":"";return e._emitFunctionFromInclude("helperFunctions",s),e._emitFunctionFromInclude("imageProcessingDeclaration",s),e._emitFunctionFromInclude("imageProcessingFunctions",s),(n=t.connectedPoint)!=null&&n.isConnected&&(t.connectedPoint.type===$.Color4||t.connectedPoint.type===$.Vector4?e.compilationString+=`${e._declareOutput(i)} = ${t.associatedVariableName};
`:e.compilationString+=`${e._declareOutput(i)} = vec4${e.fSuffix}(${t.associatedVariableName}, 1.0);
`,e.compilationString+=`#ifdef IMAGEPROCESSINGPOSTPROCESS
`,this.convertInputToLinearSpace&&(e.compilationString+=`${i.associatedVariableName} = vec4${e.fSuffix}(toLinearSpace${r}(${t.associatedVariableName}.rgb), ${t.associatedVariableName}.a);
`),e.compilationString+=`#else
`,e.compilationString+=`#ifdef IMAGEPROCESSING
`,this.convertInputToLinearSpace&&(e.compilationString+=`${i.associatedVariableName} = vec4${e.fSuffix}(toLinearSpace${r}(${t.associatedVariableName}.rgb), ${t.associatedVariableName}.a);
`),e.compilationString+=`${i.associatedVariableName} = applyImageProcessing(${i.associatedVariableName});
`,e.compilationString+=`#endif
`,e.compilationString+=`#endif
`,this.rgb.hasEndpoints&&(e.compilationString+=e._declareOutput(this.rgb)+` = ${this.output.associatedVariableName}.xyz;
`)),this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return e+=`${this._codeVariableName}.convertInputToLinearSpace = ${this.convertInputToLinearSpace};
`,e}serialize(){const e=super.serialize();return e.convertInputToLinearSpace=this.convertInputToLinearSpace,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.convertInputToLinearSpace=e.convertInputToLinearSpace??!0}}F([lt("Convert input to linear space",0,"ADVANCED")],ore.prototype,"convertInputToLinearSpace",void 0),ve("BABYLON.ImageProcessingBlock",ore);class BL extends Di{constructor(e){super(e,Te.Fragment,!0),this.registerInput("normal",$.AutoDetect,!1),this.normal.addExcludedConnectionPointFromAllowedTypes($.Color4|$.Vector4|$.Vector3),this.registerInput("tangent",$.Vector4,!1),this.registerInput("world",$.Matrix,!1),this.registerOutput("TBN",$.Object,Te.Fragment,new Vn("TBN",this,1,BL,"TBNBlock")),this.registerOutput("row0",$.Vector3,Te.Fragment),this.registerOutput("row1",$.Vector3,Te.Fragment),this.registerOutput("row2",$.Vector3,Te.Fragment)}getClassName(){return"TBNBlock"}initialize(e){e._excludeVariableName("tbnNormal"),e._excludeVariableName("tbnTangent"),e._excludeVariableName("tbnBitangent"),e._excludeVariableName("TBN")}get normal(){return this._inputs[0]}get tangent(){return this._inputs[1]}get world(){return this._inputs[2]}get TBN(){return this._outputs[0]}get row0(){return this._outputs[1]}get row1(){return this._outputs[2]}get row2(){return this._outputs[3]}get target(){return Te.Fragment}set target(e){}autoConfigure(e,t=()=>!0){if(!this.world.isConnected){let i=e.getInputBlockByPredicate(s=>s.isSystemValue&&s.systemValue===Ds.World&&t(s));i||(i=new ys("world"),i.setAsSystemValue(Ds.World)),i.output.connectTo(this.world)}if(!this.normal.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="normal"&&t(s));i||(i=new ys("normal"),i.setAsAttribute("normal")),i.output.connectTo(this.normal)}if(!this.tangent.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="tangent"&&s.type===$.Vector4&&t(s));i||(i=new ys("tangent"),i.setAsAttribute("tangent")),i.output.connectTo(this.tangent)}}prepareDefines(e,t,i){var c,u,f,p;const s=this.normal,r=this.tangent;let n=s.isConnected;(c=s.connectInputBlock)!=null&&c.isAttribute&&!e.isVerticesDataPresent((u=s.connectInputBlock)==null?void 0:u.name)&&(n=!1);let o=r.isConnected;(f=r.connectInputBlock)!=null&&f.isAttribute&&!e.isVerticesDataPresent((p=r.connectInputBlock)==null?void 0:p.name)&&(o=!1);const l=n&&o;i.setValue("TBNBLOCK",l,!0)}_buildBlock(e){super._buildBlock(e);const t=this.normal,i=this.tangent,s=this.world,r=this.TBN,n=this.row0,o=this.row1,l=this.row2,c=e.shaderLanguage===1,u=c?"mat3x3f":"mat3",f=c?"f":"";return e.target===Te.Fragment&&(e.compilationString+=`
                // ${this.name}
                ${e._declareLocalVar("tbnNormal",$.Vector3)} = normalize(${t.associatedVariableName}).xyz;
                ${e._declareLocalVar("tbnTangent",$.Vector3)} = normalize(${i.associatedVariableName}.xyz);
                ${e._declareLocalVar("tbnBitangent",$.Vector3)} = cross(tbnNormal, tbnTangent) * ${i.associatedVariableName}.w;
                ${c?"var":"mat3"} ${r.associatedVariableName} = ${u}(${s.associatedVariableName}[0].xyz, ${s.associatedVariableName}[1].xyz, ${s.associatedVariableName}[2].xyz) * ${u}(tbnTangent, tbnBitangent, tbnNormal);
            `,n.hasEndpoints&&(e.compilationString+=e._declareOutput(n)+` = vec3${f}(${r.associatedVariableName}[0][0], ${r.associatedVariableName}[0][1], ${r.associatedVariableName}[0][2]);
`),o.hasEndpoints&&(e.compilationString+=e._declareOutput(o)+` = vec3${f}(${r.associatedVariableName}[1[0], ${r.associatedVariableName}[1][1], ${r.associatedVariableName}[1][2]);
`),l.hasEndpoints&&(e.compilationString+=e._declareOutput(l)+` = vec3${f}(${r.associatedVariableName}[2][0], ${r.associatedVariableName}[2][1], ${r.associatedVariableName}[2][2]);
`),e.sharedData.blocksWithDefines.push(this)),this}}ve("BABYLON.TBNBlock",BL);class CO extends Di{constructor(e){super(e,Te.Fragment),this._tangentSpaceParameterName="",this._tangentCorrectionFactorName="",this._worldMatrixName="",this.invertX=!1,this.invertY=!1,this.useParallaxOcclusion=!1,this.useObjectSpaceNormalMap=!1,this._isUnique=!0,this.registerInput("worldPosition",$.Vector4,!1),this.registerInput("worldNormal",$.Vector4,!1),this.registerInput("worldTangent",$.Vector4,!0),this.registerInput("uv",$.Vector2,!1),this.registerInput("normalMapColor",$.Color3,!1),this.registerInput("strength",$.Float,!1),this.registerInput("viewDirection",$.Vector3,!0),this.registerInput("parallaxScale",$.Float,!0),this.registerInput("parallaxHeight",$.Float,!0),this.registerInput("TBN",$.Object,!0,Te.VertexAndFragment,new Vn("TBN",this,0,BL,"TBNBlock")),this.registerInput("world",$.Matrix,!0),this.registerOutput("output",$.Vector4),this.registerOutput("uvOffset",$.Vector2)}getClassName(){return"PerturbNormalBlock"}get worldPosition(){return this._inputs[0]}get worldNormal(){return this._inputs[1]}get worldTangent(){return this._inputs[2]}get uv(){return this._inputs[3]}get normalMapColor(){return this._inputs[4]}get strength(){return this._inputs[5]}get viewDirection(){return this._inputs[6]}get parallaxScale(){return this._inputs[7]}get parallaxHeight(){return this._inputs[8]}get TBN(){return this._inputs[9]}get world(){return this._inputs[10]}get output(){return this._outputs[0]}get uvOffset(){return this._outputs[1]}initialize(e){this._initShaderSourceAsync(e.shaderLanguage)}async _initShaderSourceAsync(e){this._codeIsReady=!1,e===1?await Promise.all([Promise.resolve().then(()=>fje),Promise.resolve().then(()=>eje),Promise.resolve().then(()=>tje)]):await Promise.all([Promise.resolve().then(()=>vVe),Promise.resolve().then(()=>rVe),Promise.resolve().then(()=>nVe)]),this._codeIsReady=!0,this.onCodeIsReadyObservable.notifyObservers(this)}prepareDefines(e,t,i){const s=this.normalMapColor.connectedPoint._ownerBlock.samplerName,r=this.viewDirection.isConnected&&(this.useParallaxOcclusion&&s||!this.useParallaxOcclusion&&this.parallaxHeight.isConnected);i.setValue("BUMP",!0),i.setValue("PARALLAX",r,!0),i.setValue("PARALLAX_RHS",t.getScene().useRightHandedSystem,!0),i.setValue("PARALLAXOCCLUSION",this.useParallaxOcclusion,!0),i.setValue("OBJECTSPACE_NORMALMAP",this.useObjectSpaceNormalMap,!0)}bind(e,t,i){t.getScene()._mirroredCameraPosition?e.setFloat2(this._tangentSpaceParameterName,this.invertX?1:-1,this.invertY?1:-1):e.setFloat2(this._tangentSpaceParameterName,this.invertX?-1:1,this.invertY?-1:1),i&&(e.setFloat(this._tangentCorrectionFactorName,i.getWorldMatrix().determinant()<0?-1:1),this.useObjectSpaceNormalMap&&!this.world.isConnected&&e.setMatrix(this._worldMatrixName,i.getWorldMatrix()))}autoConfigure(e,t=()=>!0){if(!this.uv.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="uv"&&t(s));i||(i=new ys("uv"),i.setAsAttribute()),i.output.connectTo(this.uv)}if(!this.strength.isConnected){const i=new ys("strength");i.value=1,i.output.connectTo(this.strength)}}_buildBlock(e){super._buildBlock(e);const t=`//${this.name}`,i=this.uv,s=this.worldPosition,r=this.worldNormal,n=this.worldTangent,o=e.shaderLanguage===1,l=o?"mat3x3f":"mat3",c=o?"f":"",u=o?"uniforms.":"",f=o?"fragmentInputs.":"";e.sharedData.blocksWithDefines.push(this),e.sharedData.bindableBlocks.push(this),this._tangentSpaceParameterName=e._getFreeDefineName("tangentSpaceParameter"),e._emitUniformFromString(this._tangentSpaceParameterName,$.Vector2),this._tangentCorrectionFactorName=e._getFreeDefineName("tangentCorrectionFactor"),e._emitUniformFromString(this._tangentCorrectionFactorName,$.Float),this._worldMatrixName=e._getFreeDefineName("perturbNormalWorldMatrix"),e._emitUniformFromString(this._worldMatrixName,$.Matrix);let p=null;this.normalMapColor.connectedPoint&&(p=this.normalMapColor.connectedPoint._ownerBlock.samplerName);const m=this.viewDirection.isConnected&&(this.useParallaxOcclusion&&p||!this.useParallaxOcclusion&&this.parallaxHeight.isConnected),_=this.parallaxScale.isConnectedToInputBlock?this.parallaxScale.connectInputBlock.isConstant?e._emitFloat(this.parallaxScale.connectInputBlock.value):this.parallaxScale.associatedVariableName:"0.05",d=this.strength.isConnectedToInputBlock&&this.strength.connectInputBlock.isConstant?`
#if !defined(NORMALXYSCALE)
1.0/
#endif
${e._emitFloat(this.strength.connectInputBlock.value)}`:`
#if !defined(NORMALXYSCALE)
1.0/
#endif
${this.strength.associatedVariableName}`;o||e._emitExtension("derivatives","#extension GL_OES_standard_derivatives : enable");const h={search:/defined\(TANGENT\)/g,replace:n.isConnected?"defined(TANGENT)":"defined(IGNORE)"},x={search:/varying mat3 vTBN;/g,replace:""},A={search:o?/uniform normalMatrix: mat4x4f;/g:/uniform mat4 normalMatrix;/g,replace:""},S=this.TBN;S.isConnected?e.compilationString+=`
            #ifdef TBNBLOCK
            ${o?"var":"mat3"} vTBN = ${S.associatedVariableName};
            #endif
            `:n.isConnected&&(e.compilationString+=`${e._declareLocalVar("tbnNormal",$.Vector3)} = normalize(${r.associatedVariableName}.xyz);
`,e.compilationString+=`${e._declareLocalVar("tbnTangent",$.Vector3)} = normalize(${n.associatedVariableName}.xyz);
`,e.compilationString+=`${e._declareLocalVar("tbnBitangent",$.Vector3)} = cross(tbnNormal, tbnTangent) * ${u}${this._tangentCorrectionFactorName};
`,e.compilationString+=`${o?"var":"mat3"} vTBN = ${l}(tbnTangent, tbnBitangent, tbnNormal);
`);let E=[h,x,A];o&&(E.push({search:/varying vTBN0: vec3f;/g,replace:""}),E.push({search:/varying vTBN1: vec3f;/g,replace:""}),E.push({search:/varying vTBN2: vec3f;/g,replace:""})),e._emitFunctionFromInclude("bumpFragmentMainFunctions",t,{replaceStrings:E});const b=o?"fn parallaxOcclusion(vViewDirCoT: vec3f, vNormalCoT: vec3f, texCoord: vec2f, parallaxScale:f32, bumpSampler: texture_2d<f32>, bumpSamplerSampler: sampler)":`#define inline
vec2 parallaxOcclusion(vec3 vViewDirCoT, vec3 vNormalCoT, vec2 texCoord, float parallaxScale, sampler2D bumpSampler)`,M=o?/fn parallaxOcclusion\(vViewDirCoT: vec3f,vNormalCoT: vec3f,texCoord: vec2f,parallaxScale: f32\)/g:/vec2 parallaxOcclusion\(vec3 vViewDirCoT,vec3 vNormalCoT,vec2 texCoord,float parallaxScale\)/g,T=o?"fn parallaxOffset(viewDir: vec3f, heightScale: f32, height_: f32)":"vec2 parallaxOffset(vec3 viewDir, float heightScale, float height_)",O=o?/fn parallaxOffset\(viewDir: vec3f,heightScale: f32\)/g:/vec2 parallaxOffset\(vec3 viewDir,float heightScale\)/g;e._emitFunctionFromInclude("bumpFragmentFunctions",t,{replaceStrings:[{search:/#include<samplerFragmentDeclaration>\(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump\)/g,replace:""},{search:/uniform sampler2D bumpSampler;/g,replace:""},{search:M,replace:b},{search:O,replace:T},{search:/texture.+?bumpSampler,.*?vBumpUV\)\.w/g,replace:"height_"}]});const R=o?`textureSample(${p}, ${p+"Sampler"}`:`texture2D(${p}`,I=!m||!p?this.normalMapColor.associatedVariableName:`${R}, ${i.associatedVariableName} + uvOffset).xyz`,N=e._getFreeVariableName("tempOutput");return e.compilationString+=e._declareLocalVar(N,$.Vector3)+` = vec3${c}(0.);
`,E=[{search:new RegExp(`texture.+?bumpSampler${o?"Sampler,fragmentInputs.":","}vBumpUV\\)`,"g"),replace:`${I}`},{search:/#define CUSTOM_FRAGMENT_BUMP_FRAGMENT/g,replace:`${e._declareLocalVar("normalMatrix",$.Matrix)} = toNormalMatrix(${this.world.isConnected?this.world.associatedVariableName:u+this._worldMatrixName});`},{search:new RegExp(`perturbNormal\\(TBN,texture.+?bumpSampler${o?"Sampler,fragmentInputs.":","}vBumpUV\\+uvOffset\\).xyz,${u}vBumpInfos.y\\)`,"g"),replace:`perturbNormal(TBN, ${I}, ${u}vBumpInfos.y)`},{search:/parallaxOcclusion\(invTBN\*-viewDirectionW,invTBN\*normalW,(fragmentInputs\.)?vBumpUV,(uniforms\.)?vBumpInfos.z\)/g,replace:`parallaxOcclusion((invTBN * -viewDirectionW), (invTBN * normalW), ${f}vBumpUV, ${u}vBumpInfos.z, ${o?m&&this.useParallaxOcclusion?`${p}, ${p+"Sampler"}`:"bump, bumpSampler":m&&this.useParallaxOcclusion?p:"bumpSampler"})`},{search:/parallaxOffset\(invTBN\*viewDirectionW,vBumpInfos\.z\)/g,replace:`parallaxOffset(invTBN * viewDirectionW, ${u}vBumpInfos.z, ${m?this.parallaxHeight.associatedVariableName:"0."})`},{search:o?/uniforms.vBumpInfos.y/g:/vBumpInfos.y/g,replace:d},{search:o?/uniforms.vBumpInfos.z/g:/vBumpInfos.z/g,replace:_},{search:/normalW=/g,replace:N+" = "},o?{search:/mat3x3f\(uniforms\.normalMatrix\[0\].xyz,uniforms\.normalMatrix\[1\]\.xyz,uniforms\.normalMatrix\[2\].xyz\)\*normalW/g,replace:`${l}(normalMatrix[0].xyz, normalMatrix[1].xyz, normalMatrix[2].xyz) * `+N}:{search:/mat3\(normalMatrix\)\*normalW/g,replace:`${l}(normalMatrix) * `+N},{search:/normalW/g,replace:r.associatedVariableName+".xyz"},{search:/viewDirectionW/g,replace:m?this.viewDirection.associatedVariableName:`vec3${c}(0.)`},h],o?(E.push({search:/fragmentInputs.vBumpUV/g,replace:i.associatedVariableName}),E.push({search:/input.vPositionW/g,replace:s.associatedVariableName+".xyz"}),E.push({search:/uniforms.vTangentSpaceParams/g,replace:u+this._tangentSpaceParameterName}),E.push({search:/var TBN: mat3x3f=mat3x3<f32>\(input.vTBN0,input.vTBN1,input.vTBN2\);/g,replace:"var TBN = vTBN;"})):(E.push({search:/vBumpUV/g,replace:i.associatedVariableName}),E.push({search:/vPositionW/g,replace:s.associatedVariableName+".xyz"}),E.push({search:/vTangentSpaceParams/g,replace:u+this._tangentSpaceParameterName})),e.compilationString+=e._emitCodeFromInclude("bumpFragment",t,{replaceStrings:E}),e.compilationString+=e._declareOutput(this.output)+` = vec4${c}(${N}, 0.);
`,this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.invertX = ${this.invertX};
`;return e+=`${this._codeVariableName}.invertY = ${this.invertY};
`,e+=`${this._codeVariableName}.useParallaxOcclusion = ${this.useParallaxOcclusion};
`,e+=`${this._codeVariableName}.useObjectSpaceNormalMap = ${this.useObjectSpaceNormalMap};
`,e}serialize(){const e=super.serialize();return e.invertX=this.invertX,e.invertY=this.invertY,e.useParallaxOcclusion=this.useParallaxOcclusion,e.useObjectSpaceNormalMap=this.useObjectSpaceNormalMap,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.invertX=e.invertX,this.invertY=e.invertY,this.useParallaxOcclusion=!!e.useParallaxOcclusion,this.useObjectSpaceNormalMap=!!e.useObjectSpaceNormalMap}}F([lt("Invert X axis",0,"PROPERTIES",{embedded:!0,notifiers:{update:!0}})],CO.prototype,"invertX",void 0),F([lt("Invert Y axis",0,"PROPERTIES",{embedded:!0,notifiers:{update:!0}})],CO.prototype,"invertY",void 0),F([lt("Use parallax occlusion",0,void 0,{embedded:!0})],CO.prototype,"useParallaxOcclusion",void 0),F([lt("Object Space Mode",0,"PROPERTIES",{embedded:!0,notifiers:{update:!0}})],CO.prototype,"useObjectSpaceNormalMap",void 0),ve("BABYLON.PerturbNormalBlock",CO);class Yve extends Di{constructor(e){super(e,Te.Fragment,!0),this.registerInput("value",$.Float,!0),this.registerInput("cutoff",$.Float,!0)}getClassName(){return"DiscardBlock"}get value(){return this._inputs[0]}get cutoff(){return this._inputs[1]}_buildBlock(e){if(super._buildBlock(e),e.sharedData.hints.needAlphaTesting=!0,!(!this.cutoff.isConnected||!this.value.isConnected))return e.compilationString+=`if (${this.value.associatedVariableName} < ${this.cutoff.associatedVariableName}) { discard; }
`,this}}ve("BABYLON.DiscardBlock",Yve);class Xve extends Di{constructor(e){super(e,Te.Fragment),this.registerOutput("output",$.Float,Te.Fragment)}getClassName(){return"FrontFacingBlock"}get output(){return this._outputs[0]}_buildBlock(e){if(super._buildBlock(e),e.target===Te.Vertex)throw"FrontFacingBlock must only be used in a fragment shader";const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = ${e._generateTernary("1.0","0.0",e.shaderLanguage===0?"gl_FrontFacing":"fragmentInputs.frontFacing")};
`,this}}ve("BABYLON.FrontFacingBlock",Xve);class Zve extends Di{constructor(e){super(e,Te.Fragment),this.registerInput("input",$.AutoDetect,!1),this.registerOutput("dx",$.BasedOnInput),this.registerOutput("dy",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._outputs[1]._typeConnectionSource=this._inputs[0]}getClassName(){return"DerivativeBlock"}get input(){return this._inputs[0]}get dx(){return this._outputs[0]}get dy(){return this._outputs[1]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=this._outputs[1];e._emitExtension("derivatives","#extension GL_OES_standard_derivatives : enable");let s="dFdx",r="dFdy";return e.shaderLanguage===1&&(s="dpdx",r="dpdy"),t.hasEndpoints&&(e.compilationString+=e._declareOutput(t)+` = ${s}(${this.input.associatedVariableName});
`),i.hasEndpoints&&(e.compilationString+=e._declareOutput(i)+` = ${r}(${this.input.associatedVariableName});
`),this}}ve("BABYLON.DerivativeBlock",Zve);class Kve extends Di{constructor(e){super(e,Te.Fragment),this.registerOutput("xy",$.Vector2,Te.Fragment),this.registerOutput("xyz",$.Vector3,Te.Fragment),this.registerOutput("xyzw",$.Vector4,Te.Fragment),this.registerOutput("x",$.Float,Te.Fragment),this.registerOutput("y",$.Float,Te.Fragment),this.registerOutput("z",$.Float,Te.Fragment),this.registerOutput("w",$.Float,Te.Fragment)}getClassName(){return"FragCoordBlock"}get xy(){return this._outputs[0]}get xyz(){return this._outputs[1]}get xyzw(){return this._outputs[2]}get x(){return this._outputs[3]}get y(){return this._outputs[4]}get z(){return this._outputs[5]}get output(){return this._outputs[6]}writeOutputs(e){let t="";const i=e.shaderLanguage===1?"fragmentInputs.position":"gl_FragCoord";for(const s of this._outputs)s.hasEndpoints&&(t+=`${e._declareOutput(s)} = ${i}.${s.name};
`);return t}_buildBlock(e){if(super._buildBlock(e),e.target===Te.Vertex)throw"FragCoordBlock must only be used in a fragment shader";return e.compilationString+=this.writeOutputs(e),this}}ve("BABYLON.FragCoordBlock",Kve);class qve extends Di{constructor(e){super(e,Te.Fragment),this.registerOutput("xy",$.Vector2,Te.Fragment),this.registerOutput("x",$.Float,Te.Fragment),this.registerOutput("y",$.Float,Te.Fragment)}getClassName(){return"ScreenSizeBlock"}get xy(){return this._outputs[0]}get x(){return this._outputs[1]}get y(){return this._outputs[2]}bind(e){const t=this._scene.getEngine();e.setFloat2(this._varName,t.getRenderWidth(),t.getRenderHeight())}writeOutputs(e,t){let i="";for(const s of this._outputs)s.hasEndpoints&&(i+=`${e._declareOutput(s)} = ${t}.${s.name};
`);return i}_buildBlock(e){if(super._buildBlock(e),this._scene=e.sharedData.scene,e.target===Te.Vertex)throw"ScreenSizeBlock must only be used in a fragment shader";e.sharedData.bindableBlocks.push(this),this._varName=e._getFreeVariableName("screenSize"),e._emitUniformFromString(this._varName,$.Vector2);const t=e.shaderLanguage===1?"uniforms.":"";return e.compilationString+=this.writeOutputs(e,t+this._varName),this}}ve("BABYLON.ScreenSizeBlock",qve);class Qve extends Di{constructor(e){super(e,Te.Fragment),this.registerInput("vector",$.AutoDetect),this.registerInput("worldViewProjection",$.Matrix),this.registerOutput("output",$.Vector2),this.registerOutput("x",$.Float),this.registerOutput("y",$.Float),this.inputs[0].addExcludedConnectionPointFromAllowedTypes($.Color3|$.Vector3|$.Vector4)}getClassName(){return"ScreenSpaceBlock"}get vector(){return this._inputs[0]}get worldViewProjection(){return this._inputs[1]}get output(){return this._outputs[0]}get x(){return this._outputs[1]}get y(){return this._outputs[2]}autoConfigure(e,t=()=>!0){if(!this.worldViewProjection.isConnected){let i=e.getInputBlockByPredicate(s=>s.systemValue===Ds.WorldViewProjection&&t(s));i||(i=new ys("worldViewProjection"),i.setAsSystemValue(Ds.WorldViewProjection)),i.output.connectTo(this.worldViewProjection)}}_buildBlock(e){super._buildBlock(e);const t=this.vector,i=this.worldViewProjection;if(!t.connectedPoint)return;const s=i.associatedVariableName,r=e._getFreeVariableName("screenSpaceTemp");switch(t.connectedPoint.type){case $.Vector3:e.compilationString+=`${e._declareLocalVar(r,$.Vector4)} = ${s} * vec4${e.fSuffix}(${t.associatedVariableName}, 1.0);
`;break;case $.Vector4:e.compilationString+=`${e._declareLocalVar(r,$.Vector4)} = ${s} * ${t.associatedVariableName};
`;break}return e.compilationString+=`${r} = vec4${e.fSuffix}(${r}.xy / ${r}.w, ${r}.zw);`,e.compilationString+=`${r} = vec4${e.fSuffix}(${r}.xy * 0.5 + vec2${e.fSuffix}(0.5, 0.5), ${r}.zw);`,this.output.hasEndpoints&&(e.compilationString+=e._declareOutput(this.output)+` = ${r}.xy;
`),this.x.hasEndpoints&&(e.compilationString+=e._declareOutput(this.x)+` = ${r}.x;
`),this.y.hasEndpoints&&(e.compilationString+=e._declareOutput(this.y)+` = ${r}.y;
`),this}}ve("BABYLON.ScreenSpaceBlock",Qve);class Jve extends Di{constructor(e){super(e,Te.Fragment),this.registerInput("input",$.Vector2),this.registerInput("strength",$.Float),this.registerInput("center",$.Vector2),this.registerInput("offset",$.Vector2),this.registerOutput("output",$.Vector2),this.registerOutput("x",$.Float),this.registerOutput("y",$.Float)}getClassName(){return"TwirlBlock"}get input(){return this._inputs[0]}get strength(){return this._inputs[1]}get center(){return this._inputs[2]}get offset(){return this._inputs[3]}get output(){return this._outputs[0]}get x(){return this._outputs[1]}get y(){return this._outputs[2]}autoConfigure(){if(!this.center.isConnected){const e=new ys("center");e.value=new Ue(.5,.5),e.output.connectTo(this.center)}if(!this.strength.isConnected){const e=new ys("strength");e.value=1,e.output.connectTo(this.strength)}if(!this.offset.isConnected){const e=new ys("offset");e.value=new Ue(0,0),e.output.connectTo(this.offset)}}_buildBlock(e){super._buildBlock(e);const t=e._getFreeVariableName("delta"),i=e._getFreeVariableName("angle"),s=e._getFreeVariableName("x"),r=e._getFreeVariableName("y"),n=e._getFreeVariableName("result");return e.compilationString+=`        
            ${e._declareLocalVar(t,$.Vector2)} = ${this.input.associatedVariableName} - ${this.center.associatedVariableName};
            ${e._declareLocalVar(i,$.Float)} = ${this.strength.associatedVariableName} * length(${t});
            ${e._declareLocalVar(s,$.Float)} = cos(${i}) * ${t}.x - sin(${i}) * ${t}.y;
            ${e._declareLocalVar(r,$.Float)} = sin(${i}) * ${t}.x + cos(${i}) * ${t}.y;
            ${e._declareLocalVar(n,$.Vector2)} = vec2(${s} + ${this.center.associatedVariableName}.x + ${this.offset.associatedVariableName}.x, ${r} + ${this.center.associatedVariableName}.y + ${this.offset.associatedVariableName}.y);
        `,this.output.hasEndpoints&&(e.compilationString+=e._declareOutput(this.output)+` = ${n};
`),this.x.hasEndpoints&&(e.compilationString+=e._declareOutput(this.x)+` = ${n}.x;
`),this.y.hasEndpoints&&(e.compilationString+=e._declareOutput(this.y)+` = ${n}.y;
`),this}}ve("BABYLON.TwirlBlock",Jve);class qB extends Di{constructor(e){super(e,Te.Fragment),this.generateInWorldSpace=!1,this.automaticNormalizationNormal=!0,this.automaticNormalizationTangent=!0,this.registerInput("input",$.Float),this.registerInput("worldPosition",$.Vector3),this.registerInput("worldNormal",$.Vector3),this.registerInput("worldTangent",$.AutoDetect,!0),this.registerOutput("output",$.Vector4),this.registerOutput("xyz",$.Vector3),this._inputs[3].addExcludedConnectionPointFromAllowedTypes($.Color3|$.Vector3|$.Vector4)}getClassName(){return"HeightToNormalBlock"}get input(){return this._inputs[0]}get worldPosition(){return this._inputs[1]}get worldNormal(){return this._inputs[2]}get worldTangent(){return this._inputs[3]}get output(){return this._outputs[0]}get xyz(){return this._outputs[1]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=e.shaderLanguage===1,s=e.fSuffix;!this.generateInWorldSpace&&!this.worldTangent.isConnected&&de.Error(`You must connect the 'worldTangent' input of the ${this.name} block!`);const r=this.generateInWorldSpace?"":`
            vec3 biTangent = cross(norm, tgt);
            mat3 TBN = mat3(tgt, biTangent, norm);
            `,n=this.generateInWorldSpace?"":`
            result = TBN * result;
            result = result * vec3(0.5) + vec3(0.5);
            `;let o=`
            vec4 heightToNormal(float height, vec3 position, vec3 tangent, vec3 normal) {
                vec3 tgt = ${this.automaticNormalizationTangent?"normalize(tangent);":"tangent;"}
                vec3 norm = ${this.automaticNormalizationNormal?"normalize(normal);":"normal;"}
                ${r}
                vec3 worlddX = dFdx(position);
                vec3 worlddY = dFdy(position);
                vec3 crossX = cross(norm, worlddX);
                vec3 crossY = cross(worlddY, norm);
                float d = abs(dot(crossY, worlddX));
                vec3 inToNormal = vec3(((((height + dFdx(height)) - height) * crossY) + (((height + dFdy(height)) - height) * crossX)) * sign(d));
                inToNormal.y *= -1.0;
                vec3 result = normalize((d * norm) - inToNormal);
                ${n}
                return vec4(result, 0.);
            }`;return i?o=e._babylonSLtoWGSL(o):e._emitExtension("derivatives","#extension GL_OES_standard_derivatives : enable"),e._emitFunction("heightToNormal",o,"// heightToNormal"),e.compilationString+=e._declareOutput(t)+` = heightToNormal(${this.input.associatedVariableName}, ${this.worldPosition.associatedVariableName}, ${this.worldTangent.isConnected?this.worldTangent.associatedVariableName:`vec3${s}(0.)`}.xyz, ${this.worldNormal.associatedVariableName});
`,this.xyz.hasEndpoints&&(e.compilationString+=e._declareOutput(this.xyz)+` = ${this.output.associatedVariableName}.xyz;
`),this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return e+=`${this._codeVariableName}.generateInWorldSpace = ${this.generateInWorldSpace};
`,e+=`${this._codeVariableName}.automaticNormalizationNormal = ${this.automaticNormalizationNormal};
`,e+=`${this._codeVariableName}.automaticNormalizationTangent = ${this.automaticNormalizationTangent};
`,e}serialize(){const e=super.serialize();return e.generateInWorldSpace=this.generateInWorldSpace,e.automaticNormalizationNormal=this.automaticNormalizationNormal,e.automaticNormalizationTangent=this.automaticNormalizationTangent,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.generateInWorldSpace=e.generateInWorldSpace,this.automaticNormalizationNormal=e.automaticNormalizationNormal,this.automaticNormalizationTangent=e.automaticNormalizationTangent}}F([lt("Generate in world space instead of tangent space",0,"PROPERTIES",{notifiers:{update:!0}})],qB.prototype,"generateInWorldSpace",void 0),F([lt("Force normalization for the worldNormal input",0,"PROPERTIES",{notifiers:{update:!0}})],qB.prototype,"automaticNormalizationNormal",void 0),F([lt("Force normalization for the worldTangent input",0,"PROPERTIES",{notifiers:{update:!0}})],qB.prototype,"automaticNormalizationTangent",void 0),ve("BABYLON.HeightToNormalBlock",qB);class $ve extends Di{constructor(e){super(e,Te.Fragment,!0),this.registerInput("depth",$.Float,!0),this.registerInput("worldPos",$.Vector4,!0),this.registerInput("viewProjection",$.Matrix,!0)}getClassName(){return"FragDepthBlock"}get depth(){return this._inputs[0]}get worldPos(){return this._inputs[1]}get viewProjection(){return this._inputs[2]}_buildBlock(e){super._buildBlock(e);const t=e.shaderLanguage===0?"gl_FragDepth":"fragmentOutputs.fragDepth";return this.depth.isConnected?e.compilationString+=`${t} = ${this.depth.associatedVariableName};
`:this.worldPos.isConnected&&this.viewProjection.isConnected?e.compilationString+=`
                ${e._declareLocalVar("p",$.Vector4)} = ${this.viewProjection.associatedVariableName} * ${this.worldPos.associatedVariableName};
                ${e._declareLocalVar("v",$.Float)} = p.z / p.w;
                #ifndef IS_NDC_HALF_ZRANGE
                    v = v * 0.5 + 0.5;
                #endif
                ${t} = v;
    
            `:de.Warn("FragDepthBlock: either the depth input or both the worldPos and viewProjection inputs must be connected!"),this}}ve("BABYLON.FragDepthBlock",$ve);class e5e extends Di{constructor(e){super(e,Te.Fragment),this.registerInput("worldPosition",$.Vector4,!1),this.registerInput("viewProjection",$.Matrix,!1),this.registerInput("worldNormal",$.AutoDetect,!0),this.registerOutput("depth",$.Vector3),this.worldNormal.addExcludedConnectionPointFromAllowedTypes($.Color3|$.Vector3|$.Vector4)}getClassName(){return"ShadowMapBlock"}initialize(e){e._excludeVariableName("vPositionWSM"),e._excludeVariableName("lightDataSM"),e._excludeVariableName("biasAndScaleSM"),e._excludeVariableName("depthValuesSM"),e._excludeVariableName("clipPos"),e._excludeVariableName("worldPos"),e._excludeVariableName("zSM"),this._initShaderSourceAsync(e.shaderLanguage)}async _initShaderSourceAsync(e){this._codeIsReady=!1,e===1?await Promise.all([Promise.resolve().then(()=>eke),Promise.resolve().then(()=>XFe),Promise.resolve().then(()=>qFe)]):await Promise.all([Promise.resolve().then(()=>gke),Promise.resolve().then(()=>Bze),Promise.resolve().then(()=>ake)]),this._codeIsReady=!0,this.onCodeIsReadyObservable.notifyObservers(this)}get worldPosition(){return this._inputs[0]}get viewProjection(){return this._inputs[1]}get worldNormal(){return this._inputs[2]}get depth(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=`//${this.name}`,i=e.shaderLanguage===1;e._emitUniformFromString("biasAndScaleSM",$.Vector3),e._emitUniformFromString("lightDataSM",$.Vector3),e._emitUniformFromString("depthValuesSM",$.Vector2),e._emitFunctionFromInclude("packingFunctions",t),e.compilationString+=`${e._declareLocalVar("worldPos",$.Vector4)} = ${this.worldPosition.associatedVariableName};
`,e.compilationString+=`${e._declareLocalVar("vPositionWSM",$.Vector3)};
`,e.compilationString+=`${e._declareLocalVar("vDepthMetricSM",$.Float)} = 0.0;
`,e.compilationString+=`${e._declareLocalVar("zSM",$.Float)};
`,this.worldNormal.isConnected&&(e.compilationString+=`${e._declareLocalVar("vNormalW",$.Vector3)} = ${this.worldNormal.associatedVariableName}.xyz;
`,e.compilationString+=e._emitCodeFromInclude("shadowMapVertexNormalBias",t)),e.compilationString+=`${e._declareLocalVar("clipPos",$.Vector4)} = ${this.viewProjection.associatedVariableName} * worldPos;
`,e.compilationString+=e._emitCodeFromInclude("shadowMapVertexMetric",t,{replaceStrings:[{search:/gl_Position/g,replace:"clipPos"},{search:/vertexOutputs.position/g,replace:"clipPos"},{search:/vertexOutputs\.vDepthMetricSM/g,replace:"vDepthMetricSM"}]}),e.compilationString+=e._emitCodeFromInclude("shadowMapFragment",t,{replaceStrings:[{search:/return;/g,replace:""},{search:/fragmentInputs\.vDepthMetricSM/g,replace:"vDepthMetricSM"}]});const s=i?"fragmentOutputs.fragDepth":"gl_FragDepth";return e.compilationString+=`
            #if SM_DEPTHTEXTURE == 1
                #ifdef IS_NDC_HALF_ZRANGE
                    ${s} = (clipPos.z / clipPos.w);
                #else
                    ${s} = (clipPos.z / clipPos.w) * 0.5 + 0.5;
                #endif
            #endif
        `,e.compilationString+=`${e._declareOutput(this.depth)} = vec3${e.fSuffix}(depthSM, 1., 1.);
`,this}}ve("BABYLON.ShadowMapBlock",e5e);class t5e extends Di{constructor(e){super(e,Te.Fragment,!0),this.registerInput("viewDepth",$.Float,!0),this.registerInput("screenDepth",$.Float,!0),this.registerInput("worldPosition",$.AutoDetect,!0),this.registerInput("localPosition",$.AutoDetect,!0),this.registerInput("viewNormal",$.AutoDetect,!0),this.registerInput("worldNormal",$.AutoDetect,!0),this.registerInput("reflectivity",$.AutoDetect,!0),this.registerInput("velocity",$.AutoDetect,!0),this.registerInput("velocityLinear",$.AutoDetect,!0),this.inputs[2].addExcludedConnectionPointFromAllowedTypes($.Vector3|$.Vector4),this.inputs[3].addExcludedConnectionPointFromAllowedTypes($.Vector3|$.Vector4),this.inputs[4].addExcludedConnectionPointFromAllowedTypes($.Vector3|$.Vector4),this.inputs[5].addExcludedConnectionPointFromAllowedTypes($.Vector3|$.Vector4),this.inputs[6].addExcludedConnectionPointFromAllowedTypes($.Vector3|$.Vector4|$.Color3|$.Color4),this.inputs[7].addExcludedConnectionPointFromAllowedTypes($.Vector3|$.Vector4),this.inputs[8].addExcludedConnectionPointFromAllowedTypes($.Vector3|$.Vector4)}getClassName(){return"PrePassOutputBlock"}get viewDepth(){return this._inputs[0]}get screenDepth(){return this._inputs[1]}get worldPosition(){return this._inputs[2]}get localPosition(){return this._inputs[3]}get viewNormal(){return this._inputs[4]}get worldNormal(){return this._inputs[5]}get reflectivity(){return this._inputs[6]}get velocity(){return this._inputs[7]}get velocityLinear(){return this._inputs[8]}_getFragData(e,t){return e?`fragmentOutputs.fragData${t}`:`gl_FragData[${t}]`}_buildBlock(e){super._buildBlock(e);const t=this.worldPosition,i=this.localPosition,s=this.viewNormal,r=this.worldNormal,n=this.viewDepth,o=this.reflectivity,l=this.screenDepth,c=this.velocity,u=this.velocityLinear;e.sharedData.blocksWithDefines.push(this);const f=`//${this.name}`,p=e._getShaderType($.Vector4),m=e.shaderLanguage===1;return e._emitFunctionFromInclude("helperFunctions",f),e.compilationString+=`#if defined(PREPASS)\r
`,e.compilationString+=m?`var fragData: array<vec4<f32>, SCENE_MRT_COUNT>;\r
`:`vec4 fragData[SCENE_MRT_COUNT];\r
`,e.compilationString+=`#ifdef PREPASS_DEPTH\r
`,n.connectedPoint?e.compilationString+=` fragData[PREPASS_DEPTH_INDEX] = ${p}(${n.associatedVariableName}, 0.0, 0.0, 1.0);\r
`:e.compilationString+=` fragData[PREPASS_DEPTH_INDEX] = ${p}(0.0, 0.0, 0.0, 0.0);\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#ifdef PREPASS_SCREENSPACE_DEPTH\r
`,l.connectedPoint?e.compilationString+=` gl_FragData[PREPASS_SCREENSPACE_DEPTH_INDEX] = vec4(${l.associatedVariableName}, 0.0, 0.0, 1.0);\r
`:e.compilationString+=` gl_FragData[PREPASS_SCREENSPACE_DEPTH_INDEX] = vec4(0.0, 0.0, 0.0, 0.0);\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#ifdef PREPASS_POSITION\r
`,t.connectedPoint?e.compilationString+=`fragData[PREPASS_POSITION_INDEX] = ${p}(${t.associatedVariableName}.rgb, ${t.connectedPoint.type===$.Vector4?t.associatedVariableName+".a":"1.0"});\r
`:e.compilationString+=` fragData[PREPASS_POSITION_INDEX] = ${p}(0.0, 0.0, 0.0, 0.0);\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#ifdef PREPASS_LOCAL_POSITION\r
`,i.connectedPoint?e.compilationString+=` gl_FragData[PREPASS_LOCAL_POSITION_INDEX] = vec4(${i.associatedVariableName}.rgb, ${i.connectedPoint.type===$.Vector4?i.associatedVariableName+".a":"1.0"});\r
`:e.compilationString+=` gl_FragData[PREPASS_LOCAL_POSITION_INDEX] = vec4(0.0, 0.0, 0.0, 0.0);\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#ifdef PREPASS_NORMAL\r
`,s.connectedPoint?e.compilationString+=` fragData[PREPASS_NORMAL_INDEX] = ${p}(${s.associatedVariableName}.rgb, ${s.connectedPoint.type===$.Vector4?s.associatedVariableName+".a":"1.0"});\r
`:e.compilationString+=` fragData[PREPASS_NORMAL_INDEX] = ${p}(0.0, 0.0, 0.0, 0.0);\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#ifdef PREPASS_WORLD_NORMAL\r
`,r.connectedPoint?e.compilationString+=` gl_FragData[PREPASS_WORLD_NORMAL_INDEX] = vec4(${r.associatedVariableName}.rgb, ${r.connectedPoint.type===$.Vector4?r.associatedVariableName+".a":"1.0"});\r
`:e.compilationString+=` gl_FragData[PREPASS_WORLD_NORMAL_INDEX] = vec4(0.0, 0.0, 0.0, 0.0);\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#ifdef PREPASS_REFLECTIVITY\r
`,o.connectedPoint?e.compilationString+=` fragData[PREPASS_REFLECTIVITY_INDEX] = ${p}(${o.associatedVariableName}.rgb, ${o.connectedPoint.type===$.Vector4?o.associatedVariableName+".a":"1.0"});\r
`:e.compilationString+=` fragData[PREPASS_REFLECTIVITY_INDEX] = ${p}(0.0, 0.0, 0.0, 1.0);\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#ifdef PREPASS_VELOCITY\r
`,c.connectedPoint?e.compilationString+=` fragData[PREPASS_VELOCITY_INDEX] = ${p}(${c.associatedVariableName}.rgb, ${c.connectedPoint.type===$.Vector4?c.associatedVariableName+".a":"1.0"});\r
`:e.compilationString+=` fragData[PREPASS_VELOCITY_INDEX] = ${p}(0.0, 0.0, 0.0, 1.0);\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#ifdef PREPASS_VELOCITY_LINEAR\r
`,u.connectedPoint?e.compilationString+=` fragData[PREPASS_VELOCITY_LINEAR_INDEX] = ${p}(${u.associatedVariableName}.rgb, ${u.connectedPoint.type===$.Vector4?u.associatedVariableName+".a":"1.0"});\r
`:e.compilationString+=` fragData[PREPASS_VELOCITY_LINEAR_INDEX] = ${p}(0.0, 0.0, 0.0, 1.0);\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#if SCENE_MRT_COUNT > 1\r
`,e.compilationString+=`${this._getFragData(m,1)} = fragData[1];\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#if SCENE_MRT_COUNT > 2\r
`,e.compilationString+=`${this._getFragData(m,2)} = fragData[2];\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#if SCENE_MRT_COUNT > 3\r
`,e.compilationString+=`${this._getFragData(m,3)} = fragData[3];\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#if SCENE_MRT_COUNT > 4\r
`,e.compilationString+=`${this._getFragData(m,4)} = fragData[4];\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#if SCENE_MRT_COUNT > 5\r
`,e.compilationString+=`${this._getFragData(m,5)} = fragData[5];\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#if SCENE_MRT_COUNT > 6\r
`,e.compilationString+=`${this._getFragData(m,6)} = fragData[6];\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#if SCENE_MRT_COUNT > 7\r
`,e.compilationString+=`${this._getFragData(m,7)} = fragData[7];\r
`,e.compilationString+=`#endif\r
`,e.compilationString+=`#endif\r
`,this}}ve("BABYLON.PrePassOutputBlock",t5e);class i5e extends Di{constructor(e){super(e,Te.VertexAndFragment,!1),this.registerInput("worldPosition",$.Vector4,!1,Te.Vertex),this.registerInput("view",$.Matrix,!1,Te.Vertex),this.registerInput("input",$.AutoDetect,!1,Te.Fragment),this.registerInput("fogColor",$.AutoDetect,!1,Te.Fragment),this.registerOutput("output",$.Color3,Te.Fragment),this.input.addExcludedConnectionPointFromAllowedTypes($.Color3|$.Vector3|$.Color4),this.fogColor.addExcludedConnectionPointFromAllowedTypes($.Color3|$.Vector3|$.Color4)}getClassName(){return"FogBlock"}get worldPosition(){return this._inputs[0]}get view(){return this._inputs[1]}get input(){return this._inputs[2]}get fogColor(){return this._inputs[3]}get output(){return this._outputs[0]}initialize(e){this._initShaderSourceAsync(e.shaderLanguage)}async _initShaderSourceAsync(e){this._codeIsReady=!1,e===1?await Promise.resolve().then(()=>Yke):await Promise.resolve().then(()=>_Ue),this._codeIsReady=!0,this.onCodeIsReadyObservable.notifyObservers(this)}autoConfigure(e,t=()=>!0){if(!this.view.isConnected){let i=e.getInputBlockByPredicate(s=>s.systemValue===Ds.View&&t(s));i||(i=new ys("view"),i.setAsSystemValue(Ds.View)),i.output.connectTo(this.view)}if(!this.fogColor.isConnected){let i=e.getInputBlockByPredicate(s=>s.systemValue===Ds.FogColor&&t(s));i||(i=new ys("fogColor",void 0,$.Color3),i.setAsSystemValue(Ds.FogColor)),i.output.connectTo(this.fogColor)}}prepareDefines(e,t,i){const s=e.getScene();i.setValue("FOG",t.fogEnabled&&mG(e,s))}bind(e,t,i){if(!i)return;const s=i.getScene();e.setFloat4(this._fogParameters,s.fogMode,s.fogStart,s.fogEnd,s.fogDensity)}_buildBlock(e){if(super._buildBlock(e),e.target===Te.Fragment){e.sharedData.blocksWithDefines.push(this),e.sharedData.bindableBlocks.push(this);let t=[],i="",s="";e.shaderLanguage===1?(t=[{search:/fn CalcFogFactor\(\)/,replace:"fn CalcFogFactor(vFogDistance: vec3f, vFogInfos: vec4f)"},{search:/uniforms.vFogInfos/g,replace:"vFogInfos"},{search:/fragmentInputs.vFogDistance/g,replace:"vFogDistance"}],i="fragmentInputs.",s="uniforms."):t=[{search:/float CalcFogFactor\(\)/,replace:"float CalcFogFactor(vec3 vFogDistance, vec4 vFogInfos)"}],e._emitFunctionFromInclude("fogFragmentDeclaration",`//${this.name}`,{removeUniforms:!0,removeVaryings:!0,removeIfDef:!1,replaceStrings:t});const r=e._getFreeVariableName("fog"),n=this.input,o=this.fogColor;this._fogParameters=e._getFreeVariableName("fogParameters");const l=this._outputs[0];e._emitUniformFromString(this._fogParameters,$.Vector4),e.compilationString+=`#ifdef FOG
`,e.compilationString+=`${e._declareLocalVar(r,$.Float)} = CalcFogFactor(${i}${this._fogDistanceName}, ${s}${this._fogParameters});
`,e.compilationString+=e._declareOutput(l)+` = ${r} * ${n.associatedVariableName}.rgb + (1.0 - ${r}) * ${o.associatedVariableName}.rgb;
`,e.compilationString+=`#else
${e._declareOutput(l)} =  ${n.associatedVariableName}.rgb;
`,e.compilationString+=`#endif
`}else{const t=this.worldPosition,i=this.view;this._fogDistanceName=e._getFreeVariableName("vFogDistance"),e._emitVaryingFromString(this._fogDistanceName,$.Vector3);const s=e.shaderLanguage===1?"vertexOutputs.":"";e.compilationString+=`${s}${this._fogDistanceName} = (${i.associatedVariableName} * ${t.associatedVariableName}).xyz;
`}return this}}ve("BABYLON.FogBlock",i5e);class JH extends Di{static _OnGenerateOnlyFragmentCodeChanged(e,t){const i=e;return i.worldPosition.isConnected?(i.generateOnlyFragmentCode=!i.generateOnlyFragmentCode,de.Error("The worldPosition input must not be connected to be able to switch!"),!1):(i._setTarget(),!0)}_setTarget(){this._setInitialTarget(this.generateOnlyFragmentCode?Te.Fragment:Te.VertexAndFragment),this.getInputByName("worldPosition").target=this.generateOnlyFragmentCode?Te.Fragment:Te.Vertex}constructor(e){super(e,Te.VertexAndFragment),this._lightId=0,this.generateOnlyFragmentCode=!1,this._isUnique=!0,this.registerInput("worldPosition",$.Vector4,!1,Te.Vertex),this.registerInput("worldNormal",$.Vector4,!1,Te.Fragment),this.registerInput("cameraPosition",$.Vector3,!1,Te.Fragment),this.registerInput("glossiness",$.Float,!0,Te.Fragment),this.registerInput("glossPower",$.Float,!0,Te.Fragment),this.registerInput("diffuseColor",$.Color3,!0,Te.Fragment),this.registerInput("specularColor",$.Color3,!0,Te.Fragment),this.registerInput("view",$.Matrix,!0),this.registerOutput("diffuseOutput",$.Color3,Te.Fragment),this.registerOutput("specularOutput",$.Color3,Te.Fragment),this.registerOutput("shadow",$.Float,Te.Fragment)}getClassName(){return"LightBlock"}get worldPosition(){return this._inputs[0]}get worldNormal(){return this._inputs[1]}get cameraPosition(){return this._inputs[2]}get glossiness(){return this._inputs[3]}get glossPower(){return this._inputs[4]}get diffuseColor(){return this._inputs[5]}get specularColor(){return this._inputs[6]}get view(){return this._inputs[7]}get diffuseOutput(){return this._outputs[0]}get specularOutput(){return this._outputs[1]}get shadow(){return this._outputs[2]}initialize(e){this._initShaderSourceAsync(e.shaderLanguage)}async _initShaderSourceAsync(e){this._codeIsReady=!1,e===1?await Promise.all([Promise.resolve().then(()=>Zke),Promise.resolve().then(()=>jke),Promise.resolve().then(()=>Dke),Promise.resolve().then(()=>N0e),Promise.resolve().then(()=>Gke),Promise.resolve().then(()=>Wke),Promise.resolve().then(()=>Bke)]):await Promise.all([Promise.resolve().then(()=>hUe),Promise.resolve().then(()=>AUe),Promise.resolve().then(()=>dUe),Promise.resolve().then(()=>iUe),Promise.resolve().then(()=>tUe),Promise.resolve().then(()=>Y3e),Promise.resolve().then(()=>pUe),Promise.resolve().then(()=>mUe),Promise.resolve().then(()=>nUe)]),this._codeIsReady=!0,this.onCodeIsReadyObservable.notifyObservers(this)}autoConfigure(e,t=()=>!0){if(!this.cameraPosition.isConnected){let i=e.getInputBlockByPredicate(s=>s.systemValue===Ds.CameraPosition&&t(s));i||(i=new ys("cameraPosition"),i.setAsSystemValue(Ds.CameraPosition)),i.output.connectTo(this.cameraPosition)}}prepareDefines(e,t,i){if(!i._areLightsDirty)return;const s=e.getScene();if(!this.light)Jd(s,e,i,!0,t.maxSimultaneousLights);else{const r={needNormals:!1,needRebuild:!1,lightmapMode:!1,shadowEnabled:!1,specularEnabled:!1};Mw(s,e,this.light,this._lightId,i,!0,r),r.needRebuild&&i.rebuild()}}updateUniformsAndSamples(e,t,i,s){e.samplers.push("areaLightsLTC1Sampler"),e.samplers.push("areaLightsLTC2Sampler");for(let r=0;r<t.maxSimultaneousLights&&i["LIGHT"+r];r++){const n=e.uniforms.indexOf("vLightData"+r)>=0;Tw(r,e.uniforms,e.samplers,i["PROJECTEDLIGHTTEXTURE"+r],s,n,i["IESLIGHTTEXTURE"+r])}}bind(e,t,i){if(!i)return;const s=i.getScene();this.light?yw(this.light,this._lightId,s,e,!0):Qd(s,i,e,!0,t.maxSimultaneousLights)}_injectVertexCode(e){const t=this.worldPosition,i=`//${this.name}`;this.light?(this._lightId=(e.counters.lightCounter!==void 0?e.counters.lightCounter:-1)+1,e.counters.lightCounter=this._lightId,e._emitFunctionFromInclude(e.supportUniformBuffers?"lightVxUboDeclaration":"lightVxFragmentDeclaration",i,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]},this._lightId.toString())):(e._emitFunctionFromInclude(e.supportUniformBuffers?"lightVxUboDeclaration":"lightVxFragmentDeclaration",i,{repeatKey:"maxSimultaneousLights"}),this._lightId=0,e.sharedData.dynamicUniformBlocks.push(this));const s="v_"+t.associatedVariableName;e._emitVaryingFromString(s,$.Vector4)&&(e.compilationString+=(e.shaderLanguage===1?"vertexOutputs.":"")+`${s} = ${t.associatedVariableName};
`),this.light?e.compilationString+=e._emitCodeFromInclude("shadowsVertex",i,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()},{search:/worldPos/g,replace:t.associatedVariableName}]}):(e.compilationString+=`${e._declareLocalVar("worldPos",$.Vector4)} = ${t.associatedVariableName};
`,this.view.isConnected&&(e.compilationString+=`${e._declareLocalVar("view",$.Matrix)} = ${this.view.associatedVariableName};
`),e.compilationString+=e._emitCodeFromInclude("shadowsVertex",i,{repeatKey:"maxSimultaneousLights"}))}_injectUBODeclaration(e){const t=`//${this.name}`;this.light?e._emitFunctionFromInclude(e.supportUniformBuffers?"lightUboDeclaration":"lightFragmentDeclaration",t,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]},this._lightId.toString()):e._emitFunctionFromInclude(e.supportUniformBuffers?"lightUboDeclaration":"lightFragmentDeclaration",t,{repeatKey:"maxSimultaneousLights",substitutionVars:this.generateOnlyFragmentCode?"varying,":void 0})}_buildBlock(e){super._buildBlock(e);const t=e.shaderLanguage===1,i=t?"f":"",s=`//${this.name}`;if(e.target!==Te.Fragment){this._injectVertexCode(e);return}this.generateOnlyFragmentCode&&e.sharedData.dynamicUniformBlocks.push(this);const r=t?"fragmentInputs.":"";e.sharedData.forcedBindableBlocks.push(this),e.sharedData.blocksWithDefines.push(this);const n=this.worldPosition;let o=n.associatedVariableName;this.generateOnlyFragmentCode?(o=e._getFreeVariableName("globalWorldPos"),e._emitFunction("light_globalworldpos",`${e._declareLocalVar(o,$.Vector3)};
`,s),e.compilationString+=`${o} = ${n.associatedVariableName}.xyz;
`,e.compilationString+=e._emitCodeFromInclude("shadowsVertex",s,{repeatKey:"maxSimultaneousLights",substitutionVars:this.generateOnlyFragmentCode?`worldPos,${n.associatedVariableName}`:void 0})):o=r+"v_"+o+".xyz",e._emitFunctionFromInclude("helperFunctions",s);let l={search:/vPositionW/g,replace:o};if(t&&(l={search:/fragmentInputs\.vPositionW/g,replace:o}),e._emitFunctionFromInclude("lightsFragmentFunctions",s,{replaceStrings:[l]}),e._emitFunctionFromInclude("shadowsFragmentFunctions",s,{replaceStrings:[l]}),this._injectUBODeclaration(e),this._lightId===0&&(e._registerTempVariable("viewDirectionW")&&(e.compilationString+=`${e._declareLocalVar("viewDirectionW",$.Vector3)} = normalize(${this.cameraPosition.associatedVariableName} - ${o});
`),e.compilationString+=t?`var info: lightingInfo;
`:`lightingInfo info;
`,e.compilationString+=`${e._declareLocalVar("shadow",$.Float)} = 1.;
`,e.compilationString+=`${e._declareLocalVar("aggShadow",$.Float)} = 0.;
`,e.compilationString+=`${e._declareLocalVar("numLights",$.Float)} = 0.;
`,e.compilationString+=`${e._declareLocalVar("glossiness",$.Float)} = ${this.glossiness.isConnected?this.glossiness.associatedVariableName:"1.0"} * ${this.glossPower.isConnected?this.glossPower.associatedVariableName:"1024.0"};
`,e.compilationString+=`${e._declareLocalVar("diffuseBase",$.Vector3)} = vec3${i}(0., 0., 0.);
`,e.compilationString+=`${e._declareLocalVar("specularBase",$.Vector3)}  = vec3${i}(0., 0., 0.);
`,e.compilationString+=`${e._declareLocalVar("normalW",$.Vector3)} = ${this.worldNormal.associatedVariableName}.xyz;
`),this.light){let f={search:/vPositionW/g,replace:o+".xyz"};t&&(f={search:/fragmentInputs\.vPositionW/g,replace:o+".xyz"}),e.compilationString+=e._emitCodeFromInclude("lightFragment",s,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()},f]})}else{let f=`vPositionW,${o}.xyz`;t&&(f=`fragmentInputs.vPositionW,${o}.xyz`),e.compilationString+=e._emitCodeFromInclude("lightFragment",s,{repeatKey:"maxSimultaneousLights",substitutionVars:f})}this._lightId===0&&(e.compilationString+=`aggShadow = aggShadow / numLights;
`);const c=this.diffuseOutput,u=this.specularOutput;return e.compilationString+=e._declareOutput(c)+` = diffuseBase${this.diffuseColor.isConnected?" * "+this.diffuseColor.associatedVariableName:""};
`,u.hasEndpoints&&(e.compilationString+=e._declareOutput(u)+` = specularBase${this.specularColor.isConnected?" * "+this.specularColor.associatedVariableName:""};
`),this.shadow.hasEndpoints&&(e.compilationString+=e._declareOutput(this.shadow)+` = aggShadow;
`),this}serialize(){const e=super.serialize();return e.generateOnlyFragmentCode=this.generateOnlyFragmentCode,this.light&&(e.lightId=this.light.id),e}_deserialize(e,t,i){super._deserialize(e,t,i),e.lightId&&(this.light=t.getLightById(e.lightId)),this.generateOnlyFragmentCode=e.generateOnlyFragmentCode,this._setTarget()}}F([lt("Generate only fragment code",0,"ADVANCED",{notifiers:{rebuild:!0,update:!0,onValidation:JH._OnGenerateOnlyFragmentCodeChanged}})],JH.prototype,"generateOnlyFragmentCode",void 0),ve("BABYLON.LightBlock",JH);class P0 extends Di{get texture(){return this._texture}set texture(e){if(this._texture===e)return;const t=(e==null?void 0:e.getScene())??ei.LastCreatedScene;!e&&t&&t.markAllMaterialsAsDirty(1,i=>i.hasTexture(this._texture)),this._texture=e,e&&t&&t.markAllMaterialsAsDirty(1,i=>i.hasTexture(e))}get samplerName(){return this._samplerName}constructor(e){super(e,Te.VertexAndFragment),this.registerOutput("source",$.Object,Te.VertexAndFragment,new Vn("source",this,1,P0,"ImageSourceBlock")),this.registerOutput("dimensions",$.Vector2)}bind(e){this.texture&&e.setTexture(this._samplerName,this.texture)}isReady(){return!(this.texture&&!this.texture.isReadyOrNotBlocking())}getClassName(){return"ImageSourceBlock"}get source(){return this._outputs[0]}get dimensions(){return this._outputs[1]}_buildBlock(e){if(super._buildBlock(e),e.target===Te.Vertex&&(this._samplerName=e._getFreeVariableName(this.name+"Texture"),e.sharedData.blockingBlocks.push(this),e.sharedData.textureBlocks.push(this),e.sharedData.bindableBlocks.push(this)),this.dimensions.isConnected){let t="";e.shaderLanguage===1?t=`vec2f(textureDimensions(${this._samplerName}, 0).xy)`:t=`vec2(textureSize(${this._samplerName}, 0).xy)`,e.compilationString+=`${e._declareOutput(this.dimensions)} = ${t};
`}return e._emit2DSampler(this._samplerName),this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return this.texture&&(e+=`${this._codeVariableName}.texture = new BABYLON.Texture("${this.texture.name}", null, ${this.texture.noMipmap}, ${this.texture.invertY}, ${this.texture.samplingMode});
`,e+=`${this._codeVariableName}.texture.wrapU = ${this.texture.wrapU};
`,e+=`${this._codeVariableName}.texture.wrapV = ${this.texture.wrapV};
`,e+=`${this._codeVariableName}.texture.uAng = ${this.texture.uAng};
`,e+=`${this._codeVariableName}.texture.vAng = ${this.texture.vAng};
`,e+=`${this._codeVariableName}.texture.wAng = ${this.texture.wAng};
`,e+=`${this._codeVariableName}.texture.uOffset = ${this.texture.uOffset};
`,e+=`${this._codeVariableName}.texture.vOffset = ${this.texture.vOffset};
`,e+=`${this._codeVariableName}.texture.uScale = ${this.texture.uScale};
`,e+=`${this._codeVariableName}.texture.vScale = ${this.texture.vScale};
`,e+=`${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};
`),e}serialize(){const e=super.serialize();return this.texture&&!this.texture.isRenderTarget&&this.texture.getClassName()!=="VideoTexture"&&(e.texture=this.texture.serialize()),e}_deserialize(e,t,i,s){super._deserialize(e,t,i,s),e.texture&&!jn.IgnoreTexturesAtLoadTime&&e.texture.url!==void 0&&(e.texture.url.indexOf("data:")===0?i="":s&&(e.texture.url=s(e.texture.url),e.texture.name=e.texture.url),this.texture=be.Parse(e.texture,t,i))}}ve("BABYLON.ImageSourceBlock",P0);class QB extends Di{get texture(){var e;return this.source.isConnected?((e=this.source.connectedPoint)==null?void 0:e.ownerBlock).texture:this._texture}set texture(e){if(this._texture===e)return;const t=(e==null?void 0:e.getScene())??ei.LastCreatedScene;!e&&t&&t.markAllMaterialsAsDirty(1,i=>i.hasTexture(this._texture)),this._texture=e,e&&t&&t.markAllMaterialsAsDirty(1,i=>i.hasTexture(e))}static _IsPrePassTextureBlock(e){return(e==null?void 0:e.getClassName())==="PrePassTextureBlock"}get _isSourcePrePass(){return QB._IsPrePassTextureBlock(this._imageSource)}get samplerName(){if(this._imageSource){if(!QB._IsPrePassTextureBlock(this._imageSource))return this._imageSource.samplerName;if(this.source.connectedPoint)return this._imageSource.getSamplerName(this.source.connectedPoint)}return this._samplerName}get hasImageSource(){return this.source.isConnected}set convertToGammaSpace(e){if(e!==this._convertToGammaSpace&&(this._convertToGammaSpace=e,this.texture)){const t=this.texture.getScene()??ei.LastCreatedScene;t==null||t.markAllMaterialsAsDirty(1,i=>i.hasTexture(this.texture))}}get convertToGammaSpace(){return this._convertToGammaSpace}set convertToLinearSpace(e){if(e!==this._convertToLinearSpace&&(this._convertToLinearSpace=e,this.texture)){const t=this.texture.getScene()??ei.LastCreatedScene;t==null||t.markAllMaterialsAsDirty(1,i=>i.hasTexture(this.texture))}}get convertToLinearSpace(){return this._convertToLinearSpace}constructor(e,t=!1){super(e,t?Te.Fragment:Te.VertexAndFragment),this._convertToGammaSpace=!1,this._convertToLinearSpace=!1,this.disableLevelMultiplication=!1,this._fragmentOnly=t,this.registerInput("uv",$.AutoDetect,!1,Te.VertexAndFragment),this.registerInput("source",$.Object,!0,Te.VertexAndFragment,new Vn("source",this,0,P0,"ImageSourceBlock")),this.registerInput("layer",$.Float,!0),this.registerInput("lod",$.Float,!0),this.registerOutput("rgba",$.Color4,Te.Neutral),this.registerOutput("rgb",$.Color3,Te.Neutral),this.registerOutput("r",$.Float,Te.Neutral),this.registerOutput("g",$.Float,Te.Neutral),this.registerOutput("b",$.Float,Te.Neutral),this.registerOutput("a",$.Float,Te.Neutral),this.registerOutput("level",$.Float,Te.Neutral),this._inputs[0].addExcludedConnectionPointFromAllowedTypes($.Vector2|$.Vector3|$.Vector4),this._inputs[0]._prioritizeVertex=!t}getClassName(){return"TextureBlock"}get uv(){return this._inputs[0]}get source(){return this._inputs[1]}get layer(){return this._inputs[2]}get lod(){return this._inputs[3]}get rgba(){return this._outputs[0]}get rgb(){return this._outputs[1]}get r(){return this._outputs[2]}get g(){return this._outputs[3]}get b(){return this._outputs[4]}get a(){return this._outputs[5]}get level(){return this._outputs[6]}_isTiedToFragment(e){if(e.target===Te.Fragment)return!0;if(e.target===Te.Vertex)return!1;if(e.target===Te.Neutral||e.target===Te.VertexAndFragment){const t=e.ownerBlock;if(t.target===Te.Fragment)return!0;for(const i of t.inputs)if(i.isConnected&&this._isTiedToFragment(i.connectedPoint))return!0}return!1}_getEffectiveTarget(){return this._fragmentOnly?Te.Fragment:!this.uv.isConnected||this.uv.sourceBlock.isInput?Te.VertexAndFragment:this._isTiedToFragment(this.uv.connectedPoint)?Te.Fragment:Te.VertexAndFragment}get target(){return this._getEffectiveTarget()}set target(e){}autoConfigure(e,t=()=>!0){if(!this.uv.isConnected){if(e.mode===fd.PostProcess){const i=e.getBlockByPredicate(s=>s.name==="uv"&&t(s));i&&i.connectTo(this)}else if(e.mode!==fd.ProceduralTexture){const i=e.mode===fd.Particle?"particle_uv":"uv";let s=e.getInputBlockByPredicate(r=>r.isAttribute&&r.name===i&&t(r));s||(s=new ys("uv"),s.setAsAttribute(i)),s.output.connectTo(this.uv)}}}initializeDefines(e,t,i){i._areTexturesDirty&&this._mainUVDefineName!==void 0&&i.setValue(this._mainUVDefineName,!1,!0)}prepareDefines(e,t,i){if(!i._areTexturesDirty)return;if(!this.texture||!this.texture.getTextureMatrix){this._isMixed&&(i.setValue(this._defineName,!1,!0),i.setValue(this._mainUVDefineName,!0,!0));return}const s=this.convertToGammaSpace&&this.texture&&!this.texture.gammaSpace,r=this.convertToLinearSpace&&this.texture&&this.texture.gammaSpace;i.setValue(this._linearDefineName,s,!0),i.setValue(this._gammaDefineName,r,!0),this._isMixed&&(this.texture.getTextureMatrix().isIdentityAs3x2()?(i.setValue(this._defineName,!1,!0),i.setValue(this._mainUVDefineName,!0,!0)):(i.setValue(this._defineName,!0),i[this._mainUVDefineName]==null&&i.setValue(this._mainUVDefineName,!1,!0)))}isReady(){return this._isSourcePrePass?!0:!(this.texture&&!this.texture.isReadyOrNotBlocking())}bind(e){this._isSourcePrePass&&e.setFloat(this._textureInfoName,1),this.texture&&(this._isMixed&&(e.setFloat(this._textureInfoName,this.texture.level),e.setMatrix(this._textureTransformName,this.texture.getTextureMatrix())),this._imageSource||e.setTexture(this._samplerName,this.texture))}get _isMixed(){return this.target!==Te.Fragment}_injectVertexCode(e){const t=this.uv;this._defineName=e._getFreeDefineName("UVTRANSFORM"),this._mainUVDefineName="VMAIN"+t.declarationVariableName.toUpperCase(),this._mainUVName="vMain"+t.declarationVariableName,this._transformedUVName=e._getFreeVariableName("transformedUV"),this._textureTransformName=e._getFreeVariableName("textureTransform"),this._textureInfoName=e._getFreeVariableName("textureInfoName"),this.level.associatedVariableName=this._textureInfoName,e._emitVaryingFromString(this._transformedUVName,$.Vector2,this._defineName),e._emitVaryingFromString(this._mainUVName,$.Vector2,this._mainUVDefineName),e._emitUniformFromString(this._textureTransformName,$.Matrix,this._defineName);const i=e._getShaderType($.Vector4),s=e._getShaderType($.Vector2);e.compilationString+=`#ifdef ${this._defineName}
`,e.compilationString+=`${e._getVaryingName(this._transformedUVName)} = ${s}(${this._textureTransformName} * ${i}(${t.associatedVariableName}.xy, 1.0, 0.0));
`,e.compilationString+=`#elif defined(${this._mainUVDefineName})
`;let r="";if(e.shaderLanguage===1&&t.isConnectedToInputBlock&&t.associatedVariableName.indexOf("vertexInputs.")===-1&&(r="vertexInputs."),e.compilationString+=`${e._getVaryingName(this._mainUVName)} = ${r}${t.associatedVariableName}.xy;
`,e.compilationString+=`#endif
`,!!this._outputs.some(n=>n.isConnectedInVertexShader)){this._writeTextureRead(e,!0);for(const n of this._outputs)n.hasEndpoints&&n.name!=="level"&&this._writeOutput(e,n,n.name,!0)}}_getUVW(e){var r,n,o,l;let t=e;const i=((n=(r=this._texture)==null?void 0:r._texture)==null?void 0:n.is2DArray)??!1,s=((l=(o=this._texture)==null?void 0:o._texture)==null?void 0:l.is3D)??!1;if(i){const c=this.layer.isConnected?this.layer.associatedVariableName:"0";t=`vec3(${e}, ${c})`}else if(s){const c=this.layer.isConnected?this.layer.associatedVariableName:"0";t=`vec3(${e}, ${c})`}return t}_samplerFunc(e){return e.shaderLanguage===1?e.target===Te.Vertex?"textureSampleLevel":"textureSample":this.lod.isConnected?"texture2DLodEXT":"texture2D"}get _samplerLodSuffix(){return this.lod.isConnected?`, ${this.lod.associatedVariableName}`:""}_generateTextureSample(e,t){if(t.shaderLanguage===1){const i=t.target===Te.Vertex;return`${this._samplerFunc(t)}(${this.samplerName},${this.samplerName+"Sampler"}, ${this._getUVW(e)}${this._samplerLodSuffix}${i?", 0":""})`}return`${this._samplerFunc(t)}(${this.samplerName}, ${this._getUVW(e)}${this._samplerLodSuffix})`}_generateTextureLookup(e){e.compilationString+=`#ifdef ${this._defineName}
`,e.compilationString+=`${e._declareLocalVar(this._tempTextureRead,$.Vector4)} = ${this._generateTextureSample(e._getVaryingName(this._transformedUVName),e)};
`,e.compilationString+=`#elif defined(${this._mainUVDefineName})
`,e.compilationString+=`${e._declareLocalVar(this._tempTextureRead,$.Vector4)} = ${this._generateTextureSample(this._mainUVName?e._getVaryingName(this._mainUVName):this.uv.associatedVariableName,e)}${this._samplerLodSuffix};
`,e.compilationString+=`#endif
`}_writeTextureRead(e,t=!1){const i=this.uv;if(t){if(e.target===Te.Fragment)return;this._generateTextureLookup(e);return}if(this.uv.ownerBlock.target===Te.Fragment){e.compilationString+=`${e._declareLocalVar(this._tempTextureRead,$.Vector4)} = ${this._generateTextureSample(i.associatedVariableName,e)}${this._samplerLodSuffix};
`;return}this._generateTextureLookup(e)}_generateConversionCode(e,t,i){i!=="a"&&((!this.texture||!this.texture.gammaSpace)&&(e.compilationString+=`#ifdef ${this._linearDefineName}
                    ${t.associatedVariableName} = toGammaSpace(${t.associatedVariableName});
                    #endif
                `),e.compilationString+=`#ifdef ${this._gammaDefineName}
                ${t.associatedVariableName} = ${e._toLinearSpace(t)};
                #endif
            `)}_writeOutput(e,t,i,s=!1){if(s){if(e.target===Te.Fragment)return;e.compilationString+=`${e._declareOutput(t)} = ${this._tempTextureRead}.${i};
`,this._generateConversionCode(e,t,i);return}if(this.uv.ownerBlock.target===Te.Fragment){e.compilationString+=`${e._declareOutput(t)} = ${this._tempTextureRead}.${i};
`,this._generateConversionCode(e,t,i);return}let r="";this.disableLevelMultiplication||(r=` * ${(e.shaderLanguage===1?"uniforms.":"")+this._textureInfoName}`),e.compilationString+=`${e._declareOutput(t)} = ${this._tempTextureRead}.${i}${r};
`,this._generateConversionCode(e,t,i)}_buildBlock(e){var i,s,r,n;if(super._buildBlock(e),this.source.isConnected?this._imageSource=this.source.connectedPoint.ownerBlock:this._imageSource=null,(e.target===Te.Vertex||this._fragmentOnly||e.target===Te.Fragment)&&(this._tempTextureRead=e._getFreeVariableName("tempTextureRead"),this._linearDefineName=e._getFreeDefineName("ISLINEAR"),this._gammaDefineName=e._getFreeDefineName("ISGAMMA")),!this._isMixed&&e.target===Te.Fragment||this._isMixed&&e.target===Te.Vertex){if(!this._imageSource){const o=e._getFreeVariableName(this.name);this._samplerName=o+"Texture",(s=(i=this._texture)==null?void 0:i._texture)!=null&&s.is2DArray?e._emit2DArraySampler(this._samplerName):e._emit2DSampler(this._samplerName)}e.sharedData.blockingBlocks.push(this),e.sharedData.textureBlocks.push(this),e.sharedData.blocksWithDefines.push(this),e.sharedData.bindableBlocks.push(this)}if(e.target!==Te.Fragment){this._injectVertexCode(e);return}if(!this._outputs.some(o=>o.isConnectedInFragmentShader))return;this._isMixed&&!this._imageSource&&((n=(r=this._texture)==null?void 0:r._texture)!=null&&n.is2DArray?e._emit2DArraySampler(this._samplerName):e._emit2DSampler(this._samplerName));const t=`//${this.name}`;e._emitFunctionFromInclude("helperFunctions",t),this._isMixed&&e._emitUniformFromString(this._textureInfoName,$.Float),this._writeTextureRead(e);for(const o of this._outputs)o.hasEndpoints&&o.name!=="level"&&this._writeOutput(e,o,o.name);return this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return e+=`${this._codeVariableName}.convertToGammaSpace = ${this.convertToGammaSpace};
`,e+=`${this._codeVariableName}.convertToLinearSpace = ${this.convertToLinearSpace};
`,e+=`${this._codeVariableName}.disableLevelMultiplication = ${this.disableLevelMultiplication};
`,this.texture&&(e+=`${this._codeVariableName}.texture = new BABYLON.Texture("${this.texture.name}", null, ${this.texture.noMipmap}, ${this.texture.invertY}, ${this.texture.samplingMode});
`,e+=`${this._codeVariableName}.texture.wrapU = ${this.texture.wrapU};
`,e+=`${this._codeVariableName}.texture.wrapV = ${this.texture.wrapV};
`,e+=`${this._codeVariableName}.texture.uAng = ${this.texture.uAng};
`,e+=`${this._codeVariableName}.texture.vAng = ${this.texture.vAng};
`,e+=`${this._codeVariableName}.texture.wAng = ${this.texture.wAng};
`,e+=`${this._codeVariableName}.texture.uOffset = ${this.texture.uOffset};
`,e+=`${this._codeVariableName}.texture.vOffset = ${this.texture.vOffset};
`,e+=`${this._codeVariableName}.texture.uScale = ${this.texture.uScale};
`,e+=`${this._codeVariableName}.texture.vScale = ${this.texture.vScale};
`,e+=`${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};
`),e}serialize(){const e=super.serialize();return e.convertToGammaSpace=this.convertToGammaSpace,e.convertToLinearSpace=this.convertToLinearSpace,e.fragmentOnly=this._fragmentOnly,e.disableLevelMultiplication=this.disableLevelMultiplication,!this.hasImageSource&&this.texture&&!this.texture.isRenderTarget&&this.texture.getClassName()!=="VideoTexture"&&(e.texture=this.texture.serialize()),e}_deserialize(e,t,i,s){super._deserialize(e,t,i),this.convertToGammaSpace=e.convertToGammaSpace,this.convertToLinearSpace=!!e.convertToLinearSpace,this._fragmentOnly=!!e.fragmentOnly,this.disableLevelMultiplication=!!e.disableLevelMultiplication,e.texture&&!jn.IgnoreTexturesAtLoadTime&&e.texture.url!==void 0&&(e.texture.url.indexOf("data:")===0?i="":s&&(e.texture.url=s(e.texture.url),e.texture.name=e.texture.url),this.texture=be.Parse(e.texture,t,i))}}ve("BABYLON.TextureBlock",QB);class xO extends Di{get texture(){return this._texture}set texture(e){if(this._texture===e)return;const t=(e==null?void 0:e.getScene())??ei.LastCreatedScene;!e&&t&&t.markAllMaterialsAsDirty(1,i=>i.hasTexture(this._texture)),this._texture=e,e&&t&&t.markAllMaterialsAsDirty(1,i=>i.hasTexture(e))}static _OnGenerateOnlyFragmentCodeChanged(e,t){return e._onGenerateOnlyFragmentCodeChanged()}_onGenerateOnlyFragmentCodeChanged(){return this._setTarget(),!0}_setTarget(){this._setInitialTarget(this.generateOnlyFragmentCode?Te.Fragment:Te.VertexAndFragment)}constructor(e){super(e,Te.VertexAndFragment),this.generateOnlyFragmentCode=!1}getClassName(){return"ReflectionTextureBaseBlock"}_getTexture(){return this.texture}initialize(e){this._initShaderSourceAsync(e.shaderLanguage)}async _initShaderSourceAsync(e){this._codeIsReady=!1,e===1?await Promise.resolve().then(()=>kke):await Promise.resolve().then(()=>cUe),this._codeIsReady=!0,this.onCodeIsReadyObservable.notifyObservers(this)}autoConfigure(e,t=()=>!0){if(!this.position.isConnected){let i=e.getInputBlockByPredicate(s=>s.isAttribute&&s.name==="position"&&t(s));i||(i=new ys("position"),i.setAsAttribute()),i.output.connectTo(this.position)}if(!this.world.isConnected){let i=e.getInputBlockByPredicate(s=>s.systemValue===Ds.World&&t(s));i||(i=new ys("world"),i.setAsSystemValue(Ds.World)),i.output.connectTo(this.world)}if(this.view&&!this.view.isConnected){let i=e.getInputBlockByPredicate(s=>s.systemValue===Ds.View&&t(s));i||(i=new ys("view"),i.setAsSystemValue(Ds.View)),i.output.connectTo(this.view)}}prepareDefines(e,t,i){if(!i._areTexturesDirty)return;const s=this._getTexture();!s||!s.getTextureMatrix||(i.setValue(this._define3DName,s.isCube,!0),i.setValue(this._defineLocalCubicName,!!s.boundingBoxSize,!0),i.setValue(this._defineExplicitName,s.coordinatesMode===0,!0),i.setValue(this._defineSkyboxName,s.coordinatesMode===5,!0),i.setValue(this._defineCubicName,s.coordinatesMode===3||s.coordinatesMode===6,!0),i.setValue("INVERTCUBICMAP",s.coordinatesMode===6,!0),i.setValue(this._defineSphericalName,s.coordinatesMode===1,!0),i.setValue(this._definePlanarName,s.coordinatesMode===2,!0),i.setValue(this._defineProjectionName,s.coordinatesMode===4,!0),i.setValue(this._defineEquirectangularName,s.coordinatesMode===7,!0),i.setValue(this._defineEquirectangularFixedName,s.coordinatesMode===8,!0),i.setValue(this._defineMirroredEquirectangularFixedName,s.coordinatesMode===9,!0))}isReady(){const e=this._getTexture();return!(e&&!e.isReadyOrNotBlocking())}bind(e,t,i,s){const r=this._getTexture();if(!(!i||!r)&&(e.setMatrix(this._reflectionMatrixName,r.getReflectionTextureMatrix()),r.isCube?e.setTexture(this._cubeSamplerName,r):e.setTexture(this._2DSamplerName,r),r.boundingBoxSize)){const n=r;e.setVector3(this._reflectionPositionName,n.boundingBoxPosition),e.setVector3(this._reflectionSizeName,n.boundingBoxSize)}}handleVertexSide(e){if(this.generateOnlyFragmentCode&&e.target===Te.Vertex)return"";const t=e.shaderLanguage===1;this._define3DName=e._getFreeDefineName("REFLECTIONMAP_3D"),this._defineCubicName=e._getFreeDefineName("REFLECTIONMAP_CUBIC"),this._defineSphericalName=e._getFreeDefineName("REFLECTIONMAP_SPHERICAL"),this._definePlanarName=e._getFreeDefineName("REFLECTIONMAP_PLANAR"),this._defineProjectionName=e._getFreeDefineName("REFLECTIONMAP_PROJECTION"),this._defineExplicitName=e._getFreeDefineName("REFLECTIONMAP_EXPLICIT"),this._defineEquirectangularName=e._getFreeDefineName("REFLECTIONMAP_EQUIRECTANGULAR"),this._defineLocalCubicName=e._getFreeDefineName("USE_LOCAL_REFLECTIONMAP_CUBIC"),this._defineMirroredEquirectangularFixedName=e._getFreeDefineName("REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED"),this._defineEquirectangularFixedName=e._getFreeDefineName("REFLECTIONMAP_EQUIRECTANGULAR_FIXED"),this._defineSkyboxName=e._getFreeDefineName("REFLECTIONMAP_SKYBOX"),this._defineOppositeZ=e._getFreeDefineName("REFLECTIONMAP_OPPOSITEZ"),this._reflectionMatrixName=e._getFreeVariableName("reflectionMatrix"),e._emitUniformFromString(this._reflectionMatrixName,$.Matrix);let i="";this._worldPositionNameInFragmentOnlyMode=e._getFreeVariableName("worldPosition");const s=this.generateOnlyFragmentCode?this._worldPositionNameInFragmentOnlyMode:"v_"+this.worldPosition.associatedVariableName;return(this.generateOnlyFragmentCode||e._emitVaryingFromString(s,$.Vector4))&&(this.generateOnlyFragmentCode?i+=`${e._declareLocalVar(s,$.Vector4)} = ${this.worldPosition.associatedVariableName};
`:i+=`${t?"vertexOutputs.":""}${s} = ${this.worldPosition.associatedVariableName};
`),this._positionUVWName=e._getFreeVariableName("positionUVW"),this._directionWName=e._getFreeVariableName("directionW"),(this.generateOnlyFragmentCode||e._emitVaryingFromString(this._positionUVWName,$.Vector3,this._defineSkyboxName))&&(i+=`#ifdef ${this._defineSkyboxName}
`,this.generateOnlyFragmentCode?i+=`${e._declareLocalVar(this._positionUVWName,$.Vector3)} = ${this.position.associatedVariableName}.xyz;
`:i+=`${t?"vertexOutputs.":""}${this._positionUVWName} = ${this.position.associatedVariableName}.xyz;
`,i+=`#endif
`),(this.generateOnlyFragmentCode||e._emitVaryingFromString(this._directionWName,$.Vector3,`defined(${this._defineEquirectangularFixedName}) || defined(${this._defineMirroredEquirectangularFixedName})`))&&(i+=`#if defined(${this._defineEquirectangularFixedName}) || defined(${this._defineMirroredEquirectangularFixedName})
`,this.generateOnlyFragmentCode?i+=`${e._declareLocalVar(this._directionWName,$.Vector3)} = normalize(vec3${e.fSuffix}(${this.world.associatedVariableName} * vec4${e.fSuffix}(${this.position.associatedVariableName}.xyz, 0.0)));
`:i+=`${t?"vertexOutputs.":""}${this._directionWName} = normalize(vec3${e.fSuffix}(${this.world.associatedVariableName} * vec4${e.fSuffix}(${this.position.associatedVariableName}.xyz, 0.0)));
`,i+=`#endif
`),i}handleFragmentSideInits(e){e.sharedData.blockingBlocks.push(this),e.sharedData.textureBlocks.push(this),this._cubeSamplerName=e._getFreeVariableName(this.name+"CubeSampler"),e.samplers.push(this._cubeSamplerName),this._2DSamplerName=e._getFreeVariableName(this.name+"2DSampler"),e.samplers.push(this._2DSamplerName),e._samplerDeclaration+=`#ifdef ${this._define3DName}
`,e._emitCubeSampler(this._cubeSamplerName,"",!0),e._samplerDeclaration+=`#else
`,e._emit2DSampler(this._2DSamplerName,"",!0),e._samplerDeclaration+=`#endif
`,e.sharedData.blocksWithDefines.push(this),e.sharedData.bindableBlocks.push(this);const t=`//${this.name}`;e._emitFunctionFromInclude("helperFunctions",t),e._emitFunctionFromInclude("reflectionFunction",t,{replaceStrings:[{search:/vec3 computeReflectionCoords/g,replace:"void DUMMYFUNC"},{search:/fn computeReflectionCoords\(worldPos: vec4f,worldNormal: vec3f\)->vec3f/g,replace:"fn DUMMYFUNC()"}]}),this._reflectionColorName=e._getFreeVariableName("reflectionColor"),this._reflectionVectorName=e._getFreeVariableName("reflectionUVW"),this._reflectionCoordsName=e._getFreeVariableName("reflectionCoords"),this._reflectionPositionName=e._getFreeVariableName("vReflectionPosition"),e._emitUniformFromString(this._reflectionPositionName,$.Vector3),this._reflectionSizeName=e._getFreeVariableName("vReflectionPosition"),e._emitUniformFromString(this._reflectionSizeName,$.Vector3)}handleFragmentSideCodeReflectionCoords(e,t,i,s=!1,r=!1){const n=e.shaderLanguage===1,o=(n?"uniforms.":"")+this._reflectionMatrixName,l=`normalize(${this._directionWName})`,c=`${this._positionUVWName}`,u=`${this.cameraPosition.associatedVariableName}`,f=`${this.view.associatedVariableName}`,p=n?"fragmentInputs.":"";i||(i=this.generateOnlyFragmentCode?this._worldPositionNameInFragmentOnlyMode:`${p}v_${this.worldPosition.associatedVariableName}`),t+=".xyz";let m=`
            #ifdef ${this._defineMirroredEquirectangularFixedName}
               ${e._declareLocalVar(this._reflectionVectorName,$.Vector3)} = computeMirroredFixedEquirectangularCoords(${i}, ${t}, ${l});
            #endif

            #ifdef ${this._defineEquirectangularFixedName}
                ${e._declareLocalVar(this._reflectionVectorName,$.Vector3)} = computeFixedEquirectangularCoords(${i}, ${t}, ${l});
            #endif

            #ifdef ${this._defineEquirectangularName}
                ${e._declareLocalVar(this._reflectionVectorName,$.Vector3)} = computeEquirectangularCoords(${i}, ${t}, ${u}.xyz, ${o});
            #endif

            #ifdef ${this._defineSphericalName}
                ${e._declareLocalVar(this._reflectionVectorName,$.Vector3)} = computeSphericalCoords(${i}, ${t}, ${f}, ${o});
            #endif

            #ifdef ${this._definePlanarName}
                ${e._declareLocalVar(this._reflectionVectorName,$.Vector3)} = computePlanarCoords(${i}, ${t}, ${u}.xyz, ${o});
            #endif

            #ifdef ${this._defineCubicName}
                #ifdef ${this._defineLocalCubicName}
                    ${e._declareLocalVar(this._reflectionVectorName,$.Vector3)} = computeCubicLocalCoords(${i}, ${t}, ${u}.xyz, ${o}, ${this._reflectionSizeName}, ${this._reflectionPositionName});
                #else
                ${e._declareLocalVar(this._reflectionVectorName,$.Vector3)} = computeCubicCoords(${i}, ${t}, ${u}.xyz, ${o});
                #endif
            #endif

            #ifdef ${this._defineProjectionName}
                ${e._declareLocalVar(this._reflectionVectorName,$.Vector3)} = computeProjectionCoords(${i}, ${f}, ${o});
            #endif

            #ifdef ${this._defineSkyboxName}
                ${e._declareLocalVar(this._reflectionVectorName,$.Vector3)} = computeSkyBoxCoords(${c}, ${o});
            #endif

            #ifdef ${this._defineExplicitName}
                ${e._declareLocalVar(this._reflectionVectorName,$.Vector3)} = vec3(0, 0, 0);
            #endif
`;return r||(m+=`#ifdef ${this._defineOppositeZ}
                ${this._reflectionVectorName}.z *= -1.0;
            #endif
`),s||(m+=`
                #ifdef ${this._define3DName}
                    ${e._declareLocalVar(this._reflectionCoordsName,$.Vector3)} = ${this._reflectionVectorName};
                #else
                    ${e._declareLocalVar(this._reflectionCoordsName,$.Vector2)} = ${this._reflectionVectorName}.xy;
                    #ifdef ${this._defineProjectionName}
                        ${this._reflectionCoordsName} /= ${this._reflectionVectorName}.z;
                    #endif
                    ${this._reflectionCoordsName}.y = 1.0 - ${this._reflectionCoordsName}.y;
                #endif
`),m}handleFragmentSideCodeReflectionColor(e,t,i=".rgb"){let s=$.Vector4;i.length===3&&(s=$.Vector3);let r=`${e._declareLocalVar(this._reflectionColorName,s)};
            #ifdef ${this._define3DName}
`;return t?r+=`${this._reflectionColorName} = ${e._generateTextureSampleCubeLOD(this._reflectionVectorName,this._cubeSamplerName,t)}${i};
`:r+=`${this._reflectionColorName} = ${e._generateTextureSampleCube(this._reflectionVectorName,this._cubeSamplerName)}${i};
`,r+=`
            #else
`,t?r+=`${this._reflectionColorName} =${e._generateTextureSampleLOD(this._reflectionCoordsName,this._2DSamplerName,t)}${i};
`:r+=`${this._reflectionColorName} = ${e._generateTextureSample(this._reflectionCoordsName,this._2DSamplerName)}${i};
`,r+=`#endif
`,r}writeOutputs(e,t){let i="";if(e.target===Te.Fragment)for(const s of this._outputs)s.hasEndpoints&&(i+=`${e._declareOutput(s)} = ${t}.${s.name};
`);return i}_buildBlock(e){return super._buildBlock(e),this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();if(!this.texture)return e;if(this.texture.isCube){const t=this.texture.forcedExtension;e+=`${this._codeVariableName}.texture = new BABYLON.CubeTexture("${this.texture.name}", undefined, undefined, ${this.texture.noMipmap}, null, undefined, undefined, undefined, ${this.texture._prefiltered}, ${t?'"'+t+'"':"null"});
`}else e+=`${this._codeVariableName}.texture = new BABYLON.Texture("${this.texture.name}", null);
`;return e+=`${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};
`,e}serialize(){const e=super.serialize();return this.texture&&!this.texture.isRenderTarget&&(e.texture=this.texture.serialize()),e.generateOnlyFragmentCode=this.generateOnlyFragmentCode,e}_deserialize(e,t,i){super._deserialize(e,t,i),e.texture&&!jn.IgnoreTexturesAtLoadTime&&(i=e.texture.url.indexOf("data:")===0?"":i,e.texture.isCube?this.texture=ko.Parse(e.texture,t,i):this.texture=be.Parse(e.texture,t,i)),this.generateOnlyFragmentCode=e.generateOnlyFragmentCode,this._setTarget()}}F([lt("Generate only fragment code",0,"ADVANCED",{notifiers:{rebuild:!0,update:!0,onValidation:xO._OnGenerateOnlyFragmentCodeChanged}})],xO.prototype,"generateOnlyFragmentCode",void 0),ve("BABYLON.ReflectionTextureBaseBlock",xO);class s5e extends xO{_onGenerateOnlyFragmentCodeChanged(){return this.position.isConnected?(this.generateOnlyFragmentCode=!this.generateOnlyFragmentCode,de.Error("The position input must not be connected to be able to switch!"),!1):this.worldPosition.isConnected?(this.generateOnlyFragmentCode=!this.generateOnlyFragmentCode,de.Error("The worldPosition input must not be connected to be able to switch!"),!1):(this._setTarget(),!0)}_setTarget(){super._setTarget(),this.getInputByName("position").target=this.generateOnlyFragmentCode?Te.Fragment:Te.Vertex,this.getInputByName("worldPosition").target=this.generateOnlyFragmentCode?Te.Fragment:Te.Vertex}constructor(e){super(e),this.registerInput("position",$.AutoDetect,!1,Te.Vertex),this.registerInput("worldPosition",$.Vector4,!1,Te.Vertex),this.registerInput("worldNormal",$.Vector4,!1,Te.Fragment),this.registerInput("world",$.Matrix,!1,Te.Vertex),this.registerInput("cameraPosition",$.Vector3,!1,Te.Fragment),this.registerInput("view",$.Matrix,!1,Te.Fragment),this.registerOutput("rgb",$.Color3,Te.Fragment),this.registerOutput("rgba",$.Color4,Te.Fragment),this.registerOutput("r",$.Float,Te.Fragment),this.registerOutput("g",$.Float,Te.Fragment),this.registerOutput("b",$.Float,Te.Fragment),this.registerOutput("a",$.Float,Te.Fragment),this._inputs[0].addExcludedConnectionPointFromAllowedTypes($.Color3|$.Vector3|$.Vector4)}getClassName(){return"ReflectionTextureBlock"}get position(){return this._inputs[0]}get worldPosition(){return this._inputs[1]}get worldNormal(){return this._inputs[2]}get world(){return this._inputs[3]}get cameraPosition(){return this._inputs[4]}get view(){return this._inputs[5]}get rgb(){return this._outputs[0]}get rgba(){return this._outputs[1]}get r(){return this._outputs[2]}get g(){return this._outputs[3]}get b(){return this._outputs[4]}get a(){return this._outputs[5]}autoConfigure(e,t=()=>!0){if(super.autoConfigure(e),!this.cameraPosition.isConnected){let i=e.getInputBlockByPredicate(s=>s.systemValue===Ds.CameraPosition&&t(s));i||(i=new ys("cameraPosition"),i.setAsSystemValue(Ds.CameraPosition)),i.output.connectTo(this.cameraPosition)}}_buildBlock(e){if(super._buildBlock(e),!this.texture)return e.compilationString+=this.writeOutputs(e,`vec4${e.fSuffix}(0.)`),this;if(e.target!==Te.Fragment)return e.compilationString+=this.handleVertexSide(e),this;this.generateOnlyFragmentCode&&(e.compilationString+=this.handleVertexSide(e)),this.handleFragmentSideInits(e);const t=e._getFreeVariableName("normalWUnit");return e.compilationString+=`${e._declareLocalVar(t,$.Vector4)} = normalize(${this.worldNormal.associatedVariableName});
`,e.compilationString+=this.handleFragmentSideCodeReflectionCoords(e,t),e.compilationString+=this.handleFragmentSideCodeReflectionColor(e,void 0,""),e.compilationString+=this.writeOutputs(e,this._reflectionColorName),this}}ve("BABYLON.ReflectionTextureBlock",s5e);class JB extends Di{constructor(e){super(e,Te.VertexAndFragment),this.useNonLinearDepth=!1,this.storeCameraSpaceZ=!1,this.force32itsFloat=!1,this._isUnique=!0,this.registerInput("uv",$.AutoDetect,!1,Te.VertexAndFragment),this.registerOutput("depth",$.Float,Te.Neutral),this._inputs[0].addExcludedConnectionPointFromAllowedTypes($.Vector2|$.Vector3|$.Vector4),this._inputs[0]._prioritizeVertex=!1}getClassName(){return"SceneDepthBlock"}get uv(){return this._inputs[0]}get depth(){return this._outputs[0]}initialize(e){e._excludeVariableName("textureSampler")}get target(){return!this.uv.isConnected||this.uv.sourceBlock.isInput?Te.VertexAndFragment:Te.Fragment}_getTexture(e){return e.enableDepthRenderer(void 0,this.useNonLinearDepth,this.force32itsFloat,void 0,this.storeCameraSpaceZ).getDepthMap()}bind(e,t){const i=this._getTexture(t.getScene());e.setTexture(this._samplerName,i)}_injectVertexCode(e){const t=this.uv;if(t.connectedPoint.ownerBlock.isInput&&(t.connectedPoint.ownerBlock.isAttribute||e._emitUniformFromString(t.associatedVariableName,t.type===$.Vector3?$.Vector3:t.type===$.Vector4?$.Vector4:$.Vector2)),this._mainUVName="vMain"+t.associatedVariableName,e._emitVaryingFromString(this._mainUVName,$.Vector2),e.compilationString+=`${this._mainUVName} = ${t.associatedVariableName}.xy;
`,!!this._outputs.some(i=>i.isConnectedInVertexShader)){this._writeTextureRead(e,!0);for(const i of this._outputs)i.hasEndpoints&&this._writeOutput(e,i,"r",!0)}}_writeTextureRead(e,t=!1){const i=this.uv;if(t){if(e.target===Te.Fragment)return;const r=e.shaderLanguage===0?`texture2D(${this._samplerName},`:`textureSampleLevel(${this._samplerName}, ${this._samplerName+"Sampler"},`,n=e.shaderLanguage===0?"":", 0";e.compilationString+=`${e._declareLocalVar(this._tempTextureRead,$.Vector4)}=  ${r} ${i.associatedVariableName}.xy${n});
`;return}const s=e.shaderLanguage===0?`texture2D(${this._samplerName},`:`textureSample(${this._samplerName}, ${this._samplerName+"Sampler"},`;if(this.uv.ownerBlock.target===Te.Fragment){e.compilationString+=`${e._declareLocalVar(this._tempTextureRead,$.Vector4)} = ${s} ${i.associatedVariableName}.xy);
`;return}e.compilationString+=`${e._declareLocalVar(this._tempTextureRead,$.Vector4)} = ${s} ${this._mainUVName});
`}_writeOutput(e,t,i,s=!1){if(s){if(e.target===Te.Fragment)return;e.compilationString+=`${e._declareOutput(t)} = ${this._tempTextureRead}.${i};
`;return}if(this.uv.ownerBlock.target===Te.Fragment){e.compilationString+=`${e._declareOutput(t)} = ${this._tempTextureRead}.${i};
`;return}e.compilationString+=`${e._declareOutput(t)} = ${this._tempTextureRead}.${i};
`}_buildBlock(e){if(super._buildBlock(e),this._samplerName=e._getFreeVariableName(this.name+"Sampler"),this._tempTextureRead=e._getFreeVariableName("tempTextureRead"),e.sharedData.bindableBlocks.indexOf(this)<0&&e.sharedData.bindableBlocks.push(this),e.target!==Te.Fragment){e._emit2DSampler(this._samplerName),this._injectVertexCode(e);return}if(this._outputs.some(t=>t.isConnectedInFragmentShader)){e._emit2DSampler(this._samplerName),this._writeTextureRead(e);for(const t of this._outputs)t.hasEndpoints&&this._writeOutput(e,t,"r");return this}}serialize(){const e=super.serialize();return e.useNonLinearDepth=this.useNonLinearDepth,e.storeCameraSpaceZ=this.storeCameraSpaceZ,e.force32itsFloat=this.force32itsFloat,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.useNonLinearDepth=e.useNonLinearDepth,this.storeCameraSpaceZ=!!e.storeCameraSpaceZ,this.force32itsFloat=e.force32itsFloat}}F([lt("Use non linear depth",0,"ADVANCED",{embedded:!0,notifiers:{activatePreviewCommand:!0,callback:(a,e)=>{const t=e;let i=!1;return t.useNonLinearDepth&&(t.storeCameraSpaceZ=!1,i=!0),a&&a.disableDepthRenderer(),i}}})],JB.prototype,"useNonLinearDepth",void 0),F([lt("Store Camera space Z",0,"ADVANCED",{notifiers:{activatePreviewCommand:!0,callback:(a,e)=>{const t=e;let i=!1;return t.storeCameraSpaceZ&&(t.useNonLinearDepth=!1,i=!0),a&&a.disableDepthRenderer(),i}}})],JB.prototype,"storeCameraSpaceZ",void 0),F([lt("Force 32 bits float",0,"ADVANCED",{notifiers:{activatePreviewCommand:!0,callback:a=>a==null?void 0:a.disableDepthRenderer()}})],JB.prototype,"force32itsFloat",void 0),ve("BABYLON.SceneDepthBlock",JB);class r5e extends Di{constructor(e){super(e,Te.VertexAndFragment,!0),this.registerInput("worldPosition",$.Vector4,!1)}getClassName(){return"ClipPlanesBlock"}initialize(e){e._excludeVariableName("vClipPlane"),e._excludeVariableName("fClipDistance"),e._excludeVariableName("vClipPlane2"),e._excludeVariableName("fClipDistance2"),e._excludeVariableName("vClipPlane3"),e._excludeVariableName("fClipDistance3"),e._excludeVariableName("vClipPlane4"),e._excludeVariableName("fClipDistance4"),e._excludeVariableName("vClipPlane5"),e._excludeVariableName("fClipDistance5"),e._excludeVariableName("vClipPlane6"),e._excludeVariableName("fClipDistance6"),this._initShaderSourceAsync(e.shaderLanguage)}async _initShaderSourceAsync(e){this._codeIsReady=!1,e===1?await Promise.all([Promise.resolve().then(()=>NFe),Promise.resolve().then(()=>DFe),Promise.resolve().then(()=>zFe),Promise.resolve().then(()=>BFe)]):await Promise.all([Promise.resolve().then(()=>zze),Promise.resolve().then(()=>wze),Promise.resolve().then(()=>jze),Promise.resolve().then(()=>kze)]),this._codeIsReady=!0,this.onCodeIsReadyObservable.notifyObservers(this)}get worldPosition(){return this._inputs[0]}get target(){return Te.VertexAndFragment}set target(e){}prepareDefines(e,t,i){const s=e.getScene(),r=!!(t.clipPlane??s.clipPlane),n=!!(t.clipPlane2??s.clipPlane2),o=!!(t.clipPlane3??s.clipPlane3),l=!!(t.clipPlane4??s.clipPlane4),c=!!(t.clipPlane5??s.clipPlane5),u=!!(t.clipPlane6??s.clipPlane6);i.setValue("CLIPPLANE",r,!0),i.setValue("CLIPPLANE2",n,!0),i.setValue("CLIPPLANE3",o,!0),i.setValue("CLIPPLANE4",l,!0),i.setValue("CLIPPLANE5",c,!0),i.setValue("CLIPPLANE6",u,!0)}bind(e,t,i){if(!i)return;const s=i.getScene();Bo(e,t,s)}_buildBlock(e){super._buildBlock(e);const t=`//${this.name}`;if(e.target!==Te.Fragment){const i=this.worldPosition;e._emitFunctionFromInclude("clipPlaneVertexDeclaration",t,{replaceStrings:[{search:/uniform vec4 vClipPlane\d*;/g,replace:""}]}),e.compilationString+=e._emitCodeFromInclude("clipPlaneVertex",t,{replaceStrings:[{search:/worldPos/g,replace:i.associatedVariableName}]}),e._emitUniformFromString("vClipPlane",$.Vector4),e._emitUniformFromString("vClipPlane2",$.Vector4),e._emitUniformFromString("vClipPlane3",$.Vector4),e._emitUniformFromString("vClipPlane4",$.Vector4),e._emitUniformFromString("vClipPlane5",$.Vector4),e._emitUniformFromString("vClipPlane6",$.Vector4);return}return e.sharedData.bindableBlocks.push(this),e.sharedData.blocksWithDefines.push(this),e._emitFunctionFromInclude("clipPlaneFragmentDeclaration",t),e.compilationString+=e._emitCodeFromInclude("clipPlaneFragment",t),this}}ve("BABYLON.ClipPlanesBlock",r5e);class n5e extends Di{get texture(){return null}set texture(e){}constructor(e,t=Te.VertexAndFragment){super(e,t,!1),this.registerOutput("position",$.Object,Te.VertexAndFragment,new Vn("position",this,1,P0,"ImageSourceBlock")),this.registerOutput("localPosition",$.Object,Te.VertexAndFragment,new Vn("localPosition",this,1,P0,"ImageSourceBlock")),this.registerOutput("depth",$.Object,Te.VertexAndFragment,new Vn("depth",this,1,P0,"ImageSourceBlock")),this.registerOutput("screenDepth",$.Object,Te.VertexAndFragment,new Vn("screenDepth",this,1,P0,"ImageSourceBlock")),this.registerOutput("normal",$.Object,Te.VertexAndFragment,new Vn("normal",this,1,P0,"ImageSourceBlock")),this.registerOutput("worldNormal",$.Object,Te.VertexAndFragment,new Vn("worldNormal",this,1,P0,"ImageSourceBlock"))}getSamplerName(e){return e===this._outputs[0]?this._positionSamplerName:e===this._outputs[1]?this._localPositionSamplerName:e===this._outputs[2]?this._depthSamplerName:e===this._outputs[3]?this._screenSpaceDepthSamplerName:e===this._outputs[4]?this._normalSamplerName:e===this._outputs[5]?this._worldNormalSamplerName:""}get position(){return this._outputs[0]}get localPosition(){return this._outputs[1]}get depth(){return this._outputs[2]}get screenDepth(){return this._outputs[3]}get normal(){return this._outputs[4]}get worldNormal(){return this._outputs[5]}get positionSamplerName(){return this._positionSamplerName}get localPositionSamplerName(){return this._localPositionSamplerName}get normalSamplerName(){return this._normalSamplerName}get worldNormalSamplerName(){return this._worldNormalSamplerName}get depthSamplerName(){return this._depthSamplerName}get linearDepthSamplerName(){return this._screenSpaceDepthSamplerName}getClassName(){return"PrePassTextureBlock"}_buildBlock(e){if(super._buildBlock(e),e.target!==Te.Vertex)return this._positionSamplerName="prepassPositionSampler",this._depthSamplerName="prepassDepthSampler",this._normalSamplerName="prepassNormalSampler",this._worldNormalSamplerName="prepassWorldNormalSampler",this._localPositionSamplerName="prepassLocalPositionSampler",this._screenSpaceDepthSamplerName="prepassScreenSpaceDepthSampler",e.sharedData.variableNames.prepassPositionSampler=0,e.sharedData.variableNames.prepassDepthSampler=0,e.sharedData.variableNames.prepassNormalSampler=0,e.sharedData.variableNames.prepassWorldNormalSampler=0,e.sharedData.variableNames.prepassLocalPositionSampler=0,e.sharedData.variableNames.prepassScreenSpaceDepthSampler=0,e.sharedData.textureBlocks.push(this),e.sharedData.bindableBlocks.push(this),this.position.isConnected&&e._emit2DSampler(this._positionSamplerName),this.depth.isConnected&&e._emit2DSampler(this._depthSamplerName),this.normal.isConnected&&e._emit2DSampler(this._normalSamplerName),this.worldNormal.isConnected&&e._emit2DSampler(this._worldNormalSamplerName),this.localPosition.isConnected&&e._emit2DSampler(this._localPositionSamplerName),this.screenDepth.isConnected&&e._emit2DSampler(this._screenSpaceDepthSamplerName),this}bind(e,t){const s=t.getScene().enablePrePassRenderer();if(!s)return;const r=s.defaultRT;r.textures&&(this.position.isConnected&&e.setTexture(this._positionSamplerName,r.textures[s.getIndex(1)]),this.localPosition.isConnected&&e.setTexture(this._localPositionSamplerName,r.textures[s.getIndex(9)]),this.depth.isConnected&&e.setTexture(this._depthSamplerName,r.textures[s.getIndex(5)]),this.screenDepth.isConnected&&e.setTexture(this._screenSpaceDepthSamplerName,r.textures[s.getIndex(10)]),this.normal.isConnected&&e.setTexture(this._normalSamplerName,r.textures[s.getIndex(6)]),this.worldNormal.isConnected&&e.setTexture(this._worldNormalSamplerName,r.textures[s.getIndex(8)]))}}ve("BABYLON.PrePassTextureBlock",n5e);class a5e extends Di{get endpoints(){return this._endpoints}get target(){const e=this._inputs[0];if(e.isConnected){const t=e.connectedPoint.ownerBlock;if(t.target!==Te.VertexAndFragment)return t.target;if(e.connectedPoint.target!==Te.VertexAndFragment)return e.connectedPoint.target}return this._target}set target(e){this._target&e||(this._target=e)}constructor(e){super(e,Te.Neutral),this._endpoints=[],this.registerInput("input",$.AutoDetect)}getClassName(){return"NodeMaterialTeleportInBlock"}get input(){return this._inputs[0]}isConnectedInFragmentShader(){return this.endpoints.some(e=>e.output.isConnectedInFragmentShader)}_dumpCode(e,t){let i=super._dumpCode(e,t);for(const s of this.endpoints)t.indexOf(s)===-1&&(i+=s._dumpCode(e,t));return i}isAnAncestorOf(e){for(const t of this.endpoints)if(t===e||t.isAnAncestorOf(e))return!0;return!1}attachToEndpoint(e){e.detach(),this._endpoints.push(e),e._entryPoint=this,e._outputs[0]._typeConnectionSource=this._inputs[0],e._tempEntryPointUniqueId=null,e.name="> "+this.name,this._outputs=this._endpoints.map(t=>t.output)}detachFromEndpoint(e){const t=this._endpoints.indexOf(e);t!==-1&&(this._endpoints.splice(t,1),e._outputs[0]._typeConnectionSource=null,e._entryPoint=null,this._outputs=this._endpoints.map(i=>i.output))}dispose(){super.dispose();for(const e of this._endpoints)this.detachFromEndpoint(e);this._endpoints=[]}}ve("BABYLON.NodeMaterialTeleportInBlock",a5e);class o5e extends Di{constructor(e){super(e,Te.Neutral),this._entryPoint=null,this._tempEntryPointUniqueId=null,this.registerOutput("output",$.BasedOnInput)}get entryPoint(){return this._entryPoint}getClassName(){return"NodeMaterialTeleportOutBlock"}get output(){return this._outputs[0]}get target(){return this._entryPoint?this._entryPoint.target:this._target}set target(e){this._target&e||(this._target=e)}detach(){this._entryPoint&&this._entryPoint.detachFromEndpoint(this)}_buildBlock(e){super._buildBlock(e),this.entryPoint&&(e.compilationString+=e._declareOutput(this.output)+` = ${this.entryPoint.input.associatedVariableName};
`)}clone(e,t=""){const i=super.clone(e,t);return this.entryPoint&&this.entryPoint.attachToEndpoint(i),i}_customBuildStep(e,t){this.entryPoint&&this.entryPoint.build(e,t)}_dumpCode(e,t){let i="";return this.entryPoint&&t.indexOf(this.entryPoint)===-1&&(i+=this.entryPoint._dumpCode(e,t)),i+super._dumpCode(e,t)}_dumpCodeForOutputConnections(e){let t=super._dumpCodeForOutputConnections(e);return this.entryPoint&&(t+=this.entryPoint._dumpCodeForOutputConnections(e)),t}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return this.entryPoint&&(e+=`${this.entryPoint._codeVariableName}.attachToEndpoint(${this._codeVariableName});
`),e}serialize(){var t;const e=super.serialize();return e.entryPoint=((t=this.entryPoint)==null?void 0:t.uniqueId)??"",e}_deserialize(e,t,i){super._deserialize(e,t,i),this._tempEntryPointUniqueId=e.entryPoint}}ve("BABYLON.NodeMaterialTeleportOutBlock",o5e);class l5e extends PH{constructor(e){super(e)}getClassName(){return"AddBlock"}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = ${this.left.associatedVariableName} + ${this.right.associatedVariableName};
`,this}}ve("BABYLON.AddBlock",l5e);class c5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("input",$.AutoDetect),this.registerInput("factor",$.Float),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0]}getClassName(){return"ScaleBlock"}get input(){return this._inputs[0]}get factor(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = ${this.input.associatedVariableName} * ${this.factor.associatedVariableName};
`,this}}ve("BABYLON.ScaleBlock",c5e);class $H extends Di{constructor(e){super(e,Te.Neutral),this.minimum=0,this.maximum=1,this.registerInput("value",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0]}getClassName(){return"ClampBlock"}get value(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=e.shaderLanguage===1?e._getShaderType(this.value.type):"";return e.compilationString+=e._declareOutput(t)+` = clamp(${this.value.associatedVariableName}, ${i}(${this._writeFloat(this.minimum)}), ${i}(${this._writeFloat(this.maximum)}));
`,this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.minimum = ${this.minimum};
`;return e+=`${this._codeVariableName}.maximum = ${this.maximum};
`,e}serialize(){const e=super.serialize();return e.minimum=this.minimum,e.maximum=this.maximum,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.minimum=e.minimum,this.maximum=e.maximum}}F([lt("Minimum",1,void 0,{embedded:!0})],$H.prototype,"minimum",void 0),F([lt("Maximum",1,void 0,{embedded:!0})],$H.prototype,"maximum",void 0),ve("BABYLON.ClampBlock",$H);class u5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("left",$.AutoDetect),this.registerInput("right",$.AutoDetect),this.registerOutput("output",$.Vector3),this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push($.Float),this._inputs[0].excludedConnectionPointTypes.push($.Matrix),this._inputs[0].excludedConnectionPointTypes.push($.Vector2),this._inputs[1].excludedConnectionPointTypes.push($.Float),this._inputs[1].excludedConnectionPointTypes.push($.Matrix),this._inputs[1].excludedConnectionPointTypes.push($.Vector2)}getClassName(){return"CrossBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = cross(${this.left.associatedVariableName}.xyz, ${this.right.associatedVariableName}.xyz);
`,this}}ve("BABYLON.CrossBlock",u5e);class h5e extends Di{get options(){return this._options}set options(e){this._deserializeOptions(e)}constructor(e){super(e)}getClassName(){return"CustomBlock"}_buildBlock(e){super._buildBlock(e);let t=this._code,i=this._options.functionName;this._inputs.forEach(r=>{const n=new RegExp("\\{TYPE_"+r.name+"\\}","gm"),o=e._getGLType(r.type);t=t.replace(n,o),i=i.replace(n,o)}),this._outputs.forEach(r=>{const n=new RegExp("\\{TYPE_"+r.name+"\\}","gm"),o=e._getGLType(r.type);t=t.replace(n,o),i=i.replace(n,o)}),e._emitFunction(i,t,""),this._outputs.forEach(r=>{e.compilationString+=e._declareOutput(r)+`;
`}),e.compilationString+=i+"(";let s=!1;return this._inputs.forEach((r,n)=>{var o,l;n>0&&(e.compilationString+=", "),this._inputSamplers&&this._inputSamplers.indexOf(r.name)!==-1?e.compilationString+=((l=(o=r.connectedPoint)==null?void 0:o.ownerBlock)==null?void 0:l.samplerName)??r.associatedVariableName:e.compilationString+=r.associatedVariableName,s=!0}),this._outputs.forEach((r,n)=>{(n>0||s)&&(e.compilationString+=", "),e.compilationString+=r.associatedVariableName}),e.compilationString+=`);
`,this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return e+=`${this._codeVariableName}.options = ${JSON.stringify(this._options)};
`,e}serialize(){const e=super.serialize();return e.options=this._options,e}_deserialize(e,t,i){this._deserializeOptions(e.options),super._deserialize(e,t,i)}_deserializeOptions(e){var t,i,s;this._options=e,this._code=e.code.join(`
`)+`
`,this.name=this.name||e.name,this.target=Te[e.target],(t=e.inParameters)==null||t.forEach((r,n)=>{const o=$[r.type];r.type==="sampler2D"||r.type==="samplerCube"?(this._inputSamplers=this._inputSamplers||[],this._inputSamplers.push(r.name),this.registerInput(r.name,$.Object,!0,Te.VertexAndFragment,new Vn(r.name,this,0,P0,"ImageSourceBlock"))):this.registerInput(r.name,o),Object.defineProperty(this,r.name,{get:function(){return this._inputs[n]},enumerable:!0,configurable:!0})}),(i=e.outParameters)==null||i.forEach((r,n)=>{this.registerOutput(r.name,$[r.type]),Object.defineProperty(this,r.name,{get:function(){return this._outputs[n]},enumerable:!0,configurable:!0}),r.type==="BasedOnInput"&&(this._outputs[n]._typeConnectionSource=this._findInputByName(r.typeFromInput)[0])}),(s=e.inLinkedConnectionTypes)==null||s.forEach(r=>{this._linkConnectionTypes(this._findInputByName(r.input1)[1],this._findInputByName(r.input2)[1])})}_findInputByName(e){if(!e)return null;for(let t=0;t<this._inputs.length;t++)if(this._inputs[t].name===e)return[this._inputs[t],t];return null}}ve("BABYLON.CustomBlock",h5e);class d5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("left",$.AutoDetect),this.registerInput("right",$.AutoDetect),this.registerOutput("output",$.Float),this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push($.Float),this._inputs[0].excludedConnectionPointTypes.push($.Matrix),this._inputs[1].excludedConnectionPointTypes.push($.Float),this._inputs[1].excludedConnectionPointTypes.push($.Matrix)}getClassName(){return"DotBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = dot(${this.left.associatedVariableName}, ${this.right.associatedVariableName});
`,this}}ve("BABYLON.DotBlock",d5e);class f5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("input",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._inputs[0].excludedConnectionPointTypes.push($.Float),this._inputs[0].excludedConnectionPointTypes.push($.Matrix)}getClassName(){return"NormalizeBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=this._inputs[0];return e.compilationString+=e._declareOutput(t)+` = normalize(${i.associatedVariableName});
`,this}}ve("BABYLON.NormalizeBlock",f5e);class p5e extends Di{constructor(e){super(e,Te.Neutral),this.rSwizzle="r",this.gSwizzle="g",this.bSwizzle="b",this.aSwizzle="a",this.registerInput("rgb ",$.Color3,!0),this.registerInput("r",$.Float,!0),this.registerInput("g",$.Float,!0),this.registerInput("b",$.Float,!0),this.registerInput("a",$.Float,!0),this.registerOutput("rgba",$.Color4),this.registerOutput("rgb",$.Color3)}getClassName(){return"ColorMergerBlock"}get rgbIn(){return this._inputs[0]}get r(){return this._inputs[1]}get g(){return this._inputs[2]}get b(){return this._inputs[3]}get a(){return this._inputs[4]}get rgba(){return this._outputs[0]}get rgbOut(){return this._outputs[1]}get rgb(){return this.rgbOut}_inputRename(e){return e==="rgb "?"rgbIn":e}_buildSwizzle(e){return"."+(this.rSwizzle+this.gSwizzle+this.bSwizzle+this.aSwizzle).substring(0,e)}_buildBlock(e){super._buildBlock(e);const t=this.r,i=this.g,s=this.b,r=this.a,n=this.rgbIn,o=this._outputs[0],l=this._outputs[1],c=e._getShaderType($.Vector4),u=e._getShaderType($.Vector3);return n.isConnected?(o.hasEndpoints&&(e.compilationString+=e._declareOutput(o)+` = ${c}(${n.associatedVariableName}, ${r.isConnected?this._writeVariable(r):"0.0"})${this._buildSwizzle(4)};
`),l.hasEndpoints&&(e.compilationString+=e._declareOutput(l)+` = ${n.associatedVariableName}${this._buildSwizzle(3)};
`)):(o.hasEndpoints&&(e.compilationString+=e._declareOutput(o)+` = ${c}(${t.isConnected?this._writeVariable(t):"0.0"}, ${i.isConnected?this._writeVariable(i):"0.0"}, ${s.isConnected?this._writeVariable(s):"0.0"}, ${r.isConnected?this._writeVariable(r):"0.0"})${this._buildSwizzle(4)};
`),l.hasEndpoints&&(e.compilationString+=e._declareOutput(l)+` = ${u}(${t.isConnected?this._writeVariable(t):"0.0"}, ${i.isConnected?this._writeVariable(i):"0.0"}, ${s.isConnected?this._writeVariable(s):"0.0"})${this._buildSwizzle(3)};
`)),this}serialize(){const e=super.serialize();return e.rSwizzle=this.rSwizzle,e.gSwizzle=this.gSwizzle,e.bSwizzle=this.bSwizzle,e.aSwizzle=this.aSwizzle,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.rSwizzle=e.rSwizzle??"r",this.gSwizzle=e.gSwizzle??"g",this.bSwizzle=e.bSwizzle??"b",this.aSwizzle=e.aSwizzle??"a"}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return e+=`${this._codeVariableName}.rSwizzle = "${this.rSwizzle}";
`,e+=`${this._codeVariableName}.gSwizzle = "${this.gSwizzle}";
`,e+=`${this._codeVariableName}.bSwizzle = "${this.bSwizzle}";
`,e+=`${this._codeVariableName}.aSwizzle = "${this.aSwizzle}";
`,e}}ve("BABYLON.ColorMergerBlock",p5e);class m5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("xyzw",$.Vector4,!0),this.registerInput("xyz ",$.Vector3,!0),this.registerInput("xy ",$.Vector2,!0),this.registerOutput("xyz",$.Vector3),this.registerOutput("xy",$.Vector2),this.registerOutput("zw",$.Vector2),this.registerOutput("x",$.Float),this.registerOutput("y",$.Float),this.registerOutput("z",$.Float),this.registerOutput("w",$.Float),this.inputsAreExclusive=!0}getClassName(){return"VectorSplitterBlock"}get xyzw(){return this._inputs[0]}get xyzIn(){return this._inputs[1]}get xyIn(){return this._inputs[2]}get xyzOut(){return this._outputs[0]}get xyOut(){return this._outputs[1]}get zw(){return this._outputs[2]}get x(){return this._outputs[3]}get y(){return this._outputs[4]}get z(){return this._outputs[5]}get w(){return this._outputs[6]}_inputRename(e){switch(e){case"xy ":return"xyIn";case"xyz ":return"xyzIn";default:return e}}_outputRename(e){switch(e){case"xy":return"xyOut";case"xyz":return"xyzOut";default:return e}}_buildBlock(e){super._buildBlock(e);const t=this.xyzw.isConnected?this.xyzw:this.xyzIn.isConnected?this.xyzIn:this.xyIn,i=this._outputs[0],s=this._outputs[1],r=this._outputs[2],n=this._outputs[3],o=this._outputs[4],l=this._outputs[5],c=this._outputs[6],u=e._getShaderType($.Vector3);return i.hasEndpoints&&(t===this.xyIn?e.compilationString+=e._declareOutput(i)+` = ${u}(${t.associatedVariableName}, 0.0);
`:e.compilationString+=e._declareOutput(i)+` = ${t.associatedVariableName}.xyz;
`),r.hasEndpoints&&this.xyzw.isConnected&&(e.compilationString+=e._declareOutput(r)+` = ${this.xyzw.associatedVariableName}.zw;
`),s.hasEndpoints&&(e.compilationString+=e._declareOutput(s)+` = ${t.associatedVariableName}.xy;
`),n.hasEndpoints&&(e.compilationString+=e._declareOutput(n)+` = ${t.associatedVariableName}.x;
`),o.hasEndpoints&&(e.compilationString+=e._declareOutput(o)+` = ${t.associatedVariableName}.y;
`),l.hasEndpoints&&(e.compilationString+=e._declareOutput(l)+` = ${t.associatedVariableName}.z;
`),c.hasEndpoints&&(e.compilationString+=e._declareOutput(c)+` = ${t.associatedVariableName}.w;
`),this}}ve("BABYLON.VectorSplitterBlock",m5e);class g5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("left",$.AutoDetect),this.registerInput("right",$.AutoDetect),this.registerInput("gradient",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._linkConnectionTypes(1,2,!0),this._inputs[2].acceptedConnectionPointTypes.push($.Float)}getClassName(){return"LerpBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get gradient(){return this._inputs[2]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = mix(${this.left.associatedVariableName} , ${this.right.associatedVariableName}, ${this.gradient.associatedVariableName});
`,this}}ve("BABYLON.LerpBlock",g5e);class _5e extends PH{constructor(e){super(e)}getClassName(){return"DivideBlock"}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = ${this.left.associatedVariableName} / ${this.right.associatedVariableName};
`,this}}ve("BABYLON.DivideBlock",_5e);class v5e extends PH{constructor(e){super(e)}getClassName(){return"SubtractBlock"}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = ${this.left.associatedVariableName} - ${this.right.associatedVariableName};
`,this}}ve("BABYLON.SubtractBlock",v5e);class A5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("value",$.Float),this.registerInput("edge",$.Float),this.registerOutput("output",$.Float)}getClassName(){return"StepBlock"}get value(){return this._inputs[0]}get edge(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = step(${this.edge.associatedVariableName}, ${this.value.associatedVariableName});
`,this}}ve("BABYLON.StepBlock",A5e);class lre extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("input",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._outputs[0].excludedConnectionPointTypes.push($.Matrix)}getClassName(){return"OneMinusBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = 1. - ${this.input.associatedVariableName};
`,this}}ve("BABYLON.OneMinusBlock",lre),ve("BABYLON.OppositeBlock",lre);class cre extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("worldPosition",$.Vector4),this.registerInput("cameraPosition",$.Vector3),this.registerOutput("output",$.Vector3)}getClassName(){return"ViewDirectionBlock"}get worldPosition(){return this._inputs[0]}get cameraPosition(){return this._inputs[1]}get output(){return this._outputs[0]}autoConfigure(e,t=()=>!0){if(!this.cameraPosition.isConnected){let i=e.getInputBlockByPredicate(s=>s.systemValue===Ds.CameraPosition&&t(s));i||(i=new ys("cameraPosition"),i.setAsSystemValue(Ds.CameraPosition)),i.output.connectTo(this.cameraPosition)}}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = normalize(${this.cameraPosition.associatedVariableName} - ${this.worldPosition.associatedVariableName}.xyz);
`,this}}ve("BABYLON.ViewDirectionBlock",cre);const C5e="fresnelFunction",tWe=`#ifdef FRESNEL
float computeFresnelTerm(vec3 viewDirection,vec3 worldNormal,float bias,float power)
{float fresnelTerm=pow(bias+abs(dot(viewDirection,worldNormal)),power);return clamp(fresnelTerm,0.,1.);}
#endif
`;H.IncludesShadersStore[C5e]||(H.IncludesShadersStore[C5e]=tWe);class x5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("worldNormal",$.Vector4),this.registerInput("viewDirection",$.Vector3),this.registerInput("bias",$.Float),this.registerInput("power",$.Float),this.registerOutput("fresnel",$.Float)}getClassName(){return"FresnelBlock"}get worldNormal(){return this._inputs[0]}get viewDirection(){return this._inputs[1]}get bias(){return this._inputs[2]}get power(){return this._inputs[3]}get fresnel(){return this._outputs[0]}autoConfigure(e){if(!this.viewDirection.isConnected){const t=new cre("View direction");t.output.connectTo(this.viewDirection),t.autoConfigure(e)}if(!this.bias.isConnected){const t=new ys("bias");t.value=0,t.output.connectTo(this.bias)}if(!this.power.isConnected){const t=new ys("power");t.value=1,t.output.connectTo(this.power)}}_buildBlock(e){super._buildBlock(e);const t=`//${this.name}`;return e._emitFunctionFromInclude("fresnelFunction",t,{removeIfDef:!0}),e.compilationString+=e._declareOutput(this.fresnel)+` = computeFresnelTerm(${this.viewDirection.associatedVariableName}.xyz, ${this.worldNormal.associatedVariableName}.xyz, ${this.bias.associatedVariableName}, ${this.power.associatedVariableName});
`,this}}ve("BABYLON.FresnelBlock",x5e);class b5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("left",$.AutoDetect),this.registerInput("right",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1)}getClassName(){return"MaxBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = max(${this.left.associatedVariableName}, ${this.right.associatedVariableName});
`,this}}ve("BABYLON.MaxBlock",b5e);class S5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("left",$.AutoDetect),this.registerInput("right",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1)}getClassName(){return"MinBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = min(${this.left.associatedVariableName}, ${this.right.associatedVariableName});
`,this}}ve("BABYLON.MinBlock",S5e);class y5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("left",$.AutoDetect),this.registerInput("right",$.AutoDetect),this.registerOutput("output",$.Float),this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push($.Float),this._inputs[0].excludedConnectionPointTypes.push($.Matrix),this._inputs[1].excludedConnectionPointTypes.push($.Float),this._inputs[1].excludedConnectionPointTypes.push($.Matrix)}getClassName(){return"DistanceBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = length(${this.left.associatedVariableName} - ${this.right.associatedVariableName});
`,this}}ve("BABYLON.DistanceBlock",y5e);class M5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("value",$.AutoDetect),this.registerOutput("output",$.Float),this._inputs[0].excludedConnectionPointTypes.push($.Float),this._inputs[0].excludedConnectionPointTypes.push($.Matrix)}getClassName(){return"LengthBlock"}get value(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = length(${this.value.associatedVariableName});
`,this}}ve("BABYLON.LengthBlock",M5e);class E5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("value",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0]}getClassName(){return"NegateBlock"}get value(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = -1.0 * ${this.value.associatedVariableName};
`,this}}ve("BABYLON.NegateBlock",E5e);class T5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("value",$.AutoDetect),this.registerInput("power",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1)}getClassName(){return"PowBlock"}get value(){return this._inputs[0]}get power(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = pow(max(${this.value.associatedVariableName}, 0.), ${this.power.associatedVariableName});
`,this}}ve("BABYLON.PowBlock",T5e);class L5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("seed",$.AutoDetect),this.registerOutput("output",$.Float),this._inputs[0].addExcludedConnectionPointFromAllowedTypes($.Vector2|$.Vector3|$.Vector4|$.Color3|$.Color4)}getClassName(){return"RandomNumberBlock"}get seed(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=`//${this.name}`;return e._emitFunctionFromInclude("helperFunctions",i),e.compilationString+=e._declareOutput(t)+` = getRand(${this.seed.associatedVariableName}.xy);
`,this}}ve("BABYLON.RandomNumberBlock",L5e);class I5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("x",$.Float),this.registerInput("y",$.Float),this.registerOutput("output",$.Float)}getClassName(){return"ArcTan2Block"}get x(){return this._inputs[0]}get y(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=e.shaderLanguage===1?"atan2":"atan";return e.compilationString+=e._declareOutput(t)+` = ${i}(${this.x.associatedVariableName}, ${this.y.associatedVariableName});
`,this}}ve("BABYLON.ArcTan2Block",I5e);class P5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("value",$.AutoDetect),this.registerInput("edge0",$.Float),this.registerInput("edge1",$.Float),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0]}getClassName(){return"SmoothStepBlock"}get value(){return this._inputs[0]}get edge0(){return this._inputs[1]}get edge1(){return this._inputs[2]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=e._getShaderType(this.value.type);return e.compilationString+=e._declareOutput(t)+` = smoothstep(${i}(${this.edge0.associatedVariableName}), ${i}(${this.edge1.associatedVariableName}), ${this.value.associatedVariableName});
`,this}}ve("BABYLON.SmoothStepBlock",P5e);class O5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("input",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0]}getClassName(){return"ReciprocalBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return this.input.type===$.Matrix?e.compilationString+=e._declareOutput(t)+` = inverse(${this.input.associatedVariableName});
`:e.compilationString+=e._declareOutput(t)+` = 1. / ${this.input.associatedVariableName};
`,this}}ve("BABYLON.ReciprocalBlock",O5e);class R5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("value",$.AutoDetect),this.registerInput("reference",$.AutoDetect),this.registerInput("distance",$.Float),this.registerInput("replacement",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._linkConnectionTypes(0,3),this._inputs[0].excludedConnectionPointTypes.push($.Float),this._inputs[0].excludedConnectionPointTypes.push($.Matrix),this._inputs[1].excludedConnectionPointTypes.push($.Float),this._inputs[1].excludedConnectionPointTypes.push($.Matrix),this._inputs[3].excludedConnectionPointTypes.push($.Float),this._inputs[3].excludedConnectionPointTypes.push($.Matrix)}getClassName(){return"ReplaceColorBlock"}get value(){return this._inputs[0]}get reference(){return this._inputs[1]}get distance(){return this._inputs[2]}get replacement(){return this._inputs[3]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+`;
`,e.compilationString+=`if (length(${this.value.associatedVariableName} - ${this.reference.associatedVariableName}) < ${this.distance.associatedVariableName}) {
`,e.compilationString+=`${t.associatedVariableName} = ${this.replacement.associatedVariableName};
`,e.compilationString+=`} else {
`,e.compilationString+=`${t.associatedVariableName} = ${this.value.associatedVariableName};
`,e.compilationString+=`}
`,this}}ve("BABYLON.ReplaceColorBlock",R5e);class D5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("value",$.AutoDetect),this.registerInput("steps",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push($.Matrix),this._inputs[1].excludedConnectionPointTypes.push($.Matrix),this._inputs[1].acceptedConnectionPointTypes.push($.Float)}getClassName(){return"PosterizeBlock"}get value(){return this._inputs[0]}get steps(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = floor(${this.value.associatedVariableName} / (1.0 / ${this.steps.associatedVariableName})) * (1.0 / ${this.steps.associatedVariableName});
`,this}}ve("BABYLON.PosterizeBlock",D5e);var ure;(function(a){a[a.SawTooth=0]="SawTooth",a[a.Square=1]="Square",a[a.Triangle=2]="Triangle"})(ure||(ure={}));class hre extends Di{constructor(e){super(e,Te.Neutral),this.kind=0,this.registerInput("input",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._inputs[0].excludedConnectionPointTypes.push($.Matrix)}getClassName(){return"WaveBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];switch(this.kind){case 0:{e.compilationString+=e._declareOutput(t)+` = ${this.input.associatedVariableName} - floor(0.5 + ${this.input.associatedVariableName});
`;break}case 1:{e.compilationString+=e._declareOutput(t)+` = 1.0 - 2.0 * round(fract(${this.input.associatedVariableName}));
`;break}case 2:{e.compilationString+=e._declareOutput(t)+` = 2.0 * abs(2.0 * (${this.input.associatedVariableName} - floor(0.5 + ${this.input.associatedVariableName}))) - 1.0;
`;break}}return this}serialize(){const e=super.serialize();return e.kind=this.kind,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.kind=e.kind}}F([lt("Kind",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"SawTooth",value:0},{label:"Square",value:1},{label:"Triangle",value:2}]})],hre.prototype,"kind",void 0),ve("BABYLON.WaveBlock",hre);class eY{get step(){return this._step}set step(e){this._step=e}get color(){return this._color}set color(e){this._color=e}constructor(e,t){this.step=e,this.color=t}}class N5e extends Di{colorStepsUpdated(){this.onValueChangedObservable.notifyObservers(this)}constructor(e){super(e,Te.Neutral),this.colorSteps=[new eY(0,Pe.Black()),new eY(1,Pe.White())],this.onValueChangedObservable=new xe,this.registerInput("gradient",$.AutoDetect),this.registerOutput("output",$.Color3),this._inputs[0].addExcludedConnectionPointFromAllowedTypes($.Float|$.Vector2|$.Vector3|$.Vector4|$.Color3|$.Color4)}getClassName(){return"GradientBlock"}get gradient(){return this._inputs[0]}get output(){return this._outputs[0]}_writeColorConstant(e,t){const i=this.colorSteps[e];return`${t}(${i.color.r}, ${i.color.g}, ${i.color.b})`}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=e._getShaderType($.Vector3);if(!this.colorSteps.length||!this.gradient.connectedPoint){e.compilationString+=e._declareOutput(t)+` = ${i}(0., 0., 0.);
`;return}const s=e._getFreeVariableName("gradientTempColor"),r=e._getFreeVariableName("gradientTempPosition");e.compilationString+=`${e._declareLocalVar(s,$.Vector3)} = ${this._writeColorConstant(0,i)};
`,e.compilationString+=`${e._declareLocalVar(r,$.Float)};
`;let n=this.gradient.associatedVariableName;this.gradient.connectedPoint.type!==$.Float&&(n+=".x");for(let o=1;o<this.colorSteps.length;o++){const l=this.colorSteps[o],c=this.colorSteps[o-1];e.compilationString+=`${r} = clamp((${n} - ${e._emitFloat(c.step)}) / (${e._emitFloat(l.step)} -  ${e._emitFloat(c.step)}), 0.0, 1.0) * step(${e._emitFloat(o)}, ${e._emitFloat(this.colorSteps.length-1)});
`,e.compilationString+=`${s} = mix(${s}, ${this._writeColorConstant(o,i)}, ${r});
`}return e.compilationString+=e._declareOutput(t)+` = ${s};
`,this}serialize(){const e=super.serialize();e.colorSteps=[];for(const t of this.colorSteps)e.colorSteps.push({step:t.step,color:{r:t.color.r,g:t.color.g,b:t.color.b}});return e}_deserialize(e,t,i){super._deserialize(e,t,i),this.colorSteps.length=0;for(const s of e.colorSteps)this.colorSteps.push(new eY(s.step,new Pe(s.color.r,s.color.g,s.color.b)))}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();e+=`${this._codeVariableName}.colorSteps = [];
`;for(const t of this.colorSteps)e+=`${this._codeVariableName}.colorSteps.push(new BABYLON.GradientBlockColorStep(${t.step}, new BABYLON.Color3(${t.color.r}, ${t.color.g}, ${t.color.b})));
`;return e}}ve("BABYLON.GradientBlock",N5e);class w5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("left",$.AutoDetect),this.registerInput("right",$.AutoDetect),this.registerInput("gradient",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._linkConnectionTypes(1,2,!0),this._inputs[2].acceptedConnectionPointTypes.push($.Float)}getClassName(){return"NLerpBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get gradient(){return this._inputs[2]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = normalize(mix(${this.left.associatedVariableName} , ${this.right.associatedVariableName}, ${this.gradient.associatedVariableName}));
`,this}}ve("BABYLON.NLerpBlock",w5e);class dre extends Di{constructor(e){super(e,Te.Neutral),this.manhattanDistance=!1,this.registerInput("seed",$.Vector3),this.registerInput("jitter",$.Float),this.registerOutput("output",$.Vector2),this.registerOutput("x",$.Float),this.registerOutput("y",$.Float)}getClassName(){return"WorleyNoise3DBlock"}get seed(){return this._inputs[0]}get jitter(){return this._inputs[1]}get output(){return this._outputs[0]}get x(){return this._outputs[1]}get y(){return this._outputs[2]}_buildBlock(e){if(super._buildBlock(e),!this.seed.isConnected||!this.output.hasEndpoints&&!this.x.hasEndpoints&&!this.y.hasEndpoints)return;let t=`vec3 permute(vec3 x){
`;t+=`    return mod((34.0 * x + 1.0) * x, 289.0);
`,t+=`}

`,t+=`vec3 dist(vec3 x, vec3 y, vec3 z,  bool manhattanDistance){
`,t+=`    return [manhattanDistance ?  abs(x) + abs(y) + abs(z) :  (x * x + y * y + z * z)];
`,t+=`}

`,t+=`vec2 worley(vec3 P, float jitter, bool manhattanDistance){
`,t+=`    float K = 0.142857142857; // 1/7
`,t+=`    float Ko = 0.428571428571; // 1/2-K/2
`,t+=`    float  K2 = 0.020408163265306; // 1/(7*7)
`,t+=`    float Kz = 0.166666666667; // 1/6
`,t+=`    float Kzo = 0.416666666667; // 1/2-1/6*2
`,t+=`
`,t+=`    vec3 Pi = mod(floor(P), 289.0);
`,t+=`    vec3 Pf = fract(P) - 0.5;
`,t+=`
`,t+=`    vec3 Pfx = Pf.x + vec3(1.0, 0.0, -1.0);
`,t+=`    vec3 Pfy = Pf.y + vec3(1.0, 0.0, -1.0);
`,t+=`    vec3 Pfz = Pf.z + vec3(1.0, 0.0, -1.0);
`,t+=`
`,t+=`    vec3 p = permute(Pi.x + vec3(-1.0, 0.0, 1.0));
`,t+=`    vec3 p1 = permute(p + Pi.y - 1.0);
`,t+=`    vec3 p2 = permute(p + Pi.y);
`,t+=`    vec3 p3 = permute(p + Pi.y + 1.0);
`,t+=`
`,t+=`    vec3 p11 = permute(p1 + Pi.z - 1.0);
`,t+=`    vec3 p12 = permute(p1 + Pi.z);
`,t+=`    vec3 p13 = permute(p1 + Pi.z + 1.0);
`,t+=`
`,t+=`    vec3 p21 = permute(p2 + Pi.z - 1.0);
`,t+=`    vec3 p22 = permute(p2 + Pi.z);
`,t+=`    vec3 p23 = permute(p2 + Pi.z + 1.0);
`,t+=`
`,t+=`    vec3 p31 = permute(p3 + Pi.z - 1.0);
`,t+=`    vec3 p32 = permute(p3 + Pi.z);
`,t+=`    vec3 p33 = permute(p3 + Pi.z + 1.0);
`,t+=`
`,t+=`    vec3 ox11 = fract(p11*K) - Ko;
`,t+=`    vec3 oy11 = mod(floor(p11*K), 7.0)*K - Ko;
`,t+=`    vec3 oz11 = floor(p11*K2)*Kz - Kzo; // p11 < 289 guaranteed
`,t+=`
`,t+=`    vec3 ox12 = fract(p12*K) - Ko;
`,t+=`    vec3 oy12 = mod(floor(p12*K), 7.0)*K - Ko;
`,t+=`    vec3 oz12 = floor(p12*K2)*Kz - Kzo;
`,t+=`
`,t+=`    vec3 ox13 = fract(p13*K) - Ko;
`,t+=`    vec3 oy13 = mod(floor(p13*K), 7.0)*K - Ko;
`,t+=`    vec3 oz13 = floor(p13*K2)*Kz - Kzo;
`,t+=`
`,t+=`    vec3 ox21 = fract(p21*K) - Ko;
`,t+=`    vec3 oy21 = mod(floor(p21*K), 7.0)*K - Ko;
`,t+=`    vec3 oz21 = floor(p21*K2)*Kz - Kzo;
`,t+=`
`,t+=`    vec3 ox22 = fract(p22*K) - Ko;
`,t+=`    vec3 oy22 = mod(floor(p22*K), 7.0)*K - Ko;
`,t+=`    vec3 oz22 = floor(p22*K2)*Kz - Kzo;
`,t+=`
`,t+=`    vec3 ox23 = fract(p23*K) - Ko;
`,t+=`    vec3 oy23 = mod(floor(p23*K), 7.0)*K - Ko;
`,t+=`    vec3 oz23 = floor(p23*K2)*Kz - Kzo;
`,t+=`
`,t+=`    vec3 ox31 = fract(p31*K) - Ko;
`,t+=`    vec3 oy31 = mod(floor(p31*K), 7.0)*K - Ko;
`,t+=`    vec3 oz31 = floor(p31*K2)*Kz - Kzo;
`,t+=`
`,t+=`    vec3 ox32 = fract(p32*K) - Ko;
`,t+=`    vec3 oy32 = mod(floor(p32*K), 7.0)*K - Ko;
`,t+=`    vec3 oz32 = floor(p32*K2)*Kz - Kzo;
`,t+=`
`,t+=`    vec3 ox33 = fract(p33*K) - Ko;
`,t+=`    vec3 oy33 = mod(floor(p33*K), 7.0)*K - Ko;
`,t+=`    vec3 oz33 = floor(p33*K2)*Kz - Kzo;
`,t+=`
`,t+=`    vec3 dx11 = Pfx + jitter*ox11;
`,t+=`    vec3 dy11 = Pfy.x + jitter*oy11;
`,t+=`    vec3 dz11 = Pfz.x + jitter*oz11;
`,t+=`
`,t+=`    vec3 dx12 = Pfx + jitter*ox12;
`,t+=`    vec3 dy12 = Pfy.x + jitter*oy12;
`,t+=`    vec3 dz12 = Pfz.y + jitter*oz12;
`,t+=`
`,t+=`    vec3 dx13 = Pfx + jitter*ox13;
`,t+=`    vec3 dy13 = Pfy.x + jitter*oy13;
`,t+=`    vec3 dz13 = Pfz.z + jitter*oz13;
`,t+=`
`,t+=`    vec3 dx21 = Pfx + jitter*ox21;
`,t+=`    vec3 dy21 = Pfy.y + jitter*oy21;
`,t+=`    vec3 dz21 = Pfz.x + jitter*oz21;
`,t+=`
`,t+=`    vec3 dx22 = Pfx + jitter*ox22;
`,t+=`    vec3 dy22 = Pfy.y + jitter*oy22;
`,t+=`    vec3 dz22 = Pfz.y + jitter*oz22;
`,t+=`
`,t+=`    vec3 dx23 = Pfx + jitter*ox23;
`,t+=`    vec3 dy23 = Pfy.y + jitter*oy23;
`,t+=`    vec3 dz23 = Pfz.z + jitter*oz23;
`,t+=`
`,t+=`    vec3 dx31 = Pfx + jitter*ox31;
`,t+=`    vec3 dy31 = Pfy.z + jitter*oy31;
`,t+=`    vec3 dz31 = Pfz.x + jitter*oz31;
`,t+=`
`,t+=`    vec3 dx32 = Pfx + jitter*ox32;
`,t+=`    vec3 dy32 = Pfy.z + jitter*oy32;
`,t+=`    vec3 dz32 = Pfz.y + jitter*oz32;
`,t+=`
`,t+=`    vec3 dx33 = Pfx + jitter*ox33;
`,t+=`    vec3 dy33 = Pfy.z + jitter*oy33;
`,t+=`    vec3 dz33 = Pfz.z + jitter*oz33;
`,t+=`
`,t+=`    vec3 d11 = dist(dx11, dy11, dz11, manhattanDistance);
`,t+=`    vec3 d12 = dist(dx12, dy12, dz12, manhattanDistance);
`,t+=`    vec3 d13 = dist(dx13, dy13, dz13, manhattanDistance);
`,t+=`    vec3 d21 = dist(dx21, dy21, dz21, manhattanDistance);
`,t+=`    vec3 d22 = dist(dx22, dy22, dz22, manhattanDistance);
`,t+=`    vec3 d23 = dist(dx23, dy23, dz23, manhattanDistance);
`,t+=`    vec3 d31 = dist(dx31, dy31, dz31, manhattanDistance);
`,t+=`    vec3 d32 = dist(dx32, dy32, dz32, manhattanDistance);
`,t+=`    vec3 d33 = dist(dx33, dy33, dz33, manhattanDistance);
`,t+=`
`,t+=`    vec3 d1a = min(d11, d12);
`,t+=`    d12 = max(d11, d12);
`,t+=`    d11 = min(d1a, d13); // Smallest now not in d12 or d13
`,t+=`    d13 = max(d1a, d13);
`,t+=`    d12 = min(d12, d13); // 2nd smallest now not in d13
`,t+=`    vec3 d2a = min(d21, d22);
`,t+=`    d22 = max(d21, d22);
`,t+=`    d21 = min(d2a, d23); // Smallest now not in d22 or d23
`,t+=`    d23 = max(d2a, d23);
`,t+=`    d22 = min(d22, d23); // 2nd smallest now not in d23
`,t+=`    vec3 d3a = min(d31, d32);
`,t+=`    d32 = max(d31, d32);
`,t+=`    d31 = min(d3a, d33); // Smallest now not in d32 or d33
`,t+=`    d33 = max(d3a, d33);
`,t+=`    d32 = min(d32, d33); // 2nd smallest now not in d33
`,t+=`    vec3 da = min(d11, d21);
`,t+=`    d21 = max(d11, d21);
`,t+=`    d11 = min(da, d31); // Smallest now in d11
`,t+=`    d31 = max(da, d31); // 2nd smallest now not in d31
`,t+=`    if (d11.x >= d11.y) { vec2 temp = d11.yx; d11.x = temp.x; d11.y = temp.y; }
`,t+=`    if (d11.x >= d11.z) { vec2 temp = d11.zx; d11.x = temp.x; d11.z = temp.y; }
`,t+=`    d12 = min(d12, d21); // 2nd smallest now not in d21
`,t+=`    d12 = min(d12, d22); // nor in d22
`,t+=`    d12 = min(d12, d31); // nor in d31
`,t+=`    d12 = min(d12, d32); // nor in d32
`,t+=`    vec2 temp2 = min(d11.yz, d12.xy); // nor in d12.yz
`,t+=`    d11.y = temp2.x;
`,t+=`    d11.z = temp2.y;
`,t+=`    d11.y = min(d11.y, d12.z); // Only two more to go
`,t+=`    d11.y = min(d11.y, d11.z); // Done! (Phew!)
`,t+=`    return sqrt(d11.xy); // F1, F2
`,t+=`}

`,e.shaderLanguage===1?t=e._babylonSLtoWGSL(t):t=e._babylonSLtoGLSL(t),e._emitFunction("worley3D",t,"// Worley3D");const i=e._getFreeVariableName("worleyTemp");return e.compilationString+=`${e._declareLocalVar(i,$.Vector2)} = worley(${this.seed.associatedVariableName}, ${this.jitter.associatedVariableName}, ${this.manhattanDistance});
`,this.output.hasEndpoints&&(e.compilationString+=e._declareOutput(this.output)+` = ${i};
`),this.x.hasEndpoints&&(e.compilationString+=e._declareOutput(this.x)+` = ${i}.x;
`),this.y.hasEndpoints&&(e.compilationString+=e._declareOutput(this.y)+` = ${i}.y;
`),this}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.manhattanDistance = ${this.manhattanDistance};
`}serialize(){const e=super.serialize();return e.manhattanDistance=this.manhattanDistance,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.manhattanDistance=e.manhattanDistance}}F([lt("Use Manhattan Distance",0,"PROPERTIES",{embedded:!0,notifiers:{update:!1}})],dre.prototype,"manhattanDistance",void 0),ve("BABYLON.WorleyNoise3DBlock",dre);class B5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("seed",$.Vector3),this.registerOutput("output",$.Float)}getClassName(){return"SimplexPerlin3DBlock"}get seed(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){if(super._buildBlock(e),!this.seed.isConnected||!this._outputs[0].hasEndpoints)return;let t=`const float SKEWFACTOR = 1.0/3.0;
`;return t+=`const float UNSKEWFACTOR = 1.0/6.0;
`,t+=`const float SIMPLEX_CORNER_POS = 0.5;
`,t+=`const float SIMPLEX_TETRAHADRON_HEIGHT = 0.70710678118654752440084436210485;
`,t+=`float SimplexPerlin3D( vec3 source ){
`,t+=`    vec3 P = source;
`,t+=`    P.x = [P.x == 0. && P.y == 0. && P.z == 0. ? 0.00001 : P.x];
`,t+=`    P *= SIMPLEX_TETRAHADRON_HEIGHT;
`,t+="    vec3 Pi = floor( P + dot( P, vec3( SKEWFACTOR) ) );",t+=`    vec3 x0 = P - Pi + dot(Pi, vec3( UNSKEWFACTOR ) );
`,t+=`    vec3 g = step(x0.yzx, x0.xyz);
`,t+=`    vec3 l = 1.0 - g;
`,t+=`    vec3 Pi_1 = min( g.xyz, l.zxy );
`,t+=`    vec3 Pi_2 = max( g.xyz, l.zxy );
`,t+=`    vec3 x1 = x0 - Pi_1 + UNSKEWFACTOR;
`,t+=`    vec3 x2 = x0 - Pi_2 + SKEWFACTOR;
`,t+=`    vec3 x3 = x0 - SIMPLEX_CORNER_POS;
`,t+=`    vec4 v1234_x = vec4( x0.x, x1.x, x2.x, x3.x );
`,t+=`    vec4 v1234_y = vec4( x0.y, x1.y, x2.y, x3.y );
`,t+=`    vec4 v1234_z = vec4( x0.z, x1.z, x2.z, x3.z );
`,t+=`    Pi = Pi.xyz - floor(Pi.xyz * ( 1.0 / 69.0 )) * 69.0;
`,t+=`    vec3 Pi_inc1 = step( Pi, vec3( 69.0 - 1.5 ) ) * ( Pi + 1.0 );
`,t+=`    vec4 Pt = vec4( Pi.xy, Pi_inc1.xy ) + vec2( 50.0, 161.0 ).xyxy;
`,t+=`    Pt *= Pt;
`,t+=`    vec4 V1xy_V2xy = mix( Pt.xyxy, Pt.zwzw, vec4( Pi_1.xy, Pi_2.xy ) );
`,t+=`    Pt = vec4( Pt.x, V1xy_V2xy.xz, Pt.z ) * vec4( Pt.y, V1xy_V2xy.yw, Pt.w );
`,t+=`    const vec3 SOMELARGEFLOATS = vec3( 635.298681, 682.357502, 668.926525 );
`,t+=`    const vec3 ZINC = vec3( 48.500388, 65.294118, 63.934599 );
`,t+=`    vec3 lowz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi.zzz * ZINC.xyz ) );
`,t+=`    vec3 highz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi_inc1.zzz * ZINC.xyz ) );
`,t+=`    Pi_1 = [( Pi_1.z < 0.5 ) ? lowz_mods : highz_mods];
`,t+=`    Pi_2 = [( Pi_2.z < 0.5 ) ? lowz_mods : highz_mods];
`,t+=`    vec4 hash_0 = fract( Pt * vec4( lowz_mods.x, Pi_1.x, Pi_2.x, highz_mods.x ) ) - 0.49999;
`,t+=`    vec4 hash_1 = fract( Pt * vec4( lowz_mods.y, Pi_1.y, Pi_2.y, highz_mods.y ) ) - 0.49999;
`,t+=`    vec4 hash_2 = fract( Pt * vec4( lowz_mods.z, Pi_1.z, Pi_2.z, highz_mods.z ) ) - 0.49999;
`,t+=`    vec4 grad_results = inversesqrt( hash_0 * hash_0 + hash_1 * hash_1 + hash_2 * hash_2 ) * ( hash_0 * v1234_x + hash_1 * v1234_y + hash_2 * v1234_z );
`,t+=`    const float FINAL_NORMALIZATION = 37.837227241611314102871574478976;
`,t+=`    vec4 kernel_weights = v1234_x * v1234_x + v1234_y * v1234_y + v1234_z * v1234_z;
`,t+=`    kernel_weights = max(0.5 - kernel_weights, vec4(0.));
`,t+=`    kernel_weights = kernel_weights*kernel_weights*kernel_weights;
`,t+=`    return dot( kernel_weights, grad_results ) * FINAL_NORMALIZATION;
`,t+=`}
`,e.shaderLanguage===1?t=e._babylonSLtoWGSL(t):t=e._babylonSLtoGLSL(t),e._emitFunction("SimplexPerlin3D",t,"// SimplexPerlin3D"),e.compilationString+=e._declareOutput(this._outputs[0])+` = SimplexPerlin3D(${this.seed.associatedVariableName});
`,this}}ve("BABYLON.SimplexPerlin3DBlock",B5e);class z5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("normalMap0",$.AutoDetect),this.registerInput("normalMap1",$.AutoDetect),this.registerOutput("output",$.Vector3),this._inputs[0].addExcludedConnectionPointFromAllowedTypes($.Color3|$.Color4|$.Vector3|$.Vector4),this._inputs[1].addExcludedConnectionPointFromAllowedTypes($.Color3|$.Color4|$.Vector3|$.Vector4)}getClassName(){return"NormalBlendBlock"}get normalMap0(){return this._inputs[0]}get normalMap1(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=this._inputs[0],s=this._inputs[1],r=e._getFreeVariableName("stepR"),n=e._getFreeVariableName("stepG");return e.compilationString+=`${e._declareLocalVar(r,$.Float)} = step(0.5, ${i.associatedVariableName}.r);
`,e.compilationString+=`${e._declareLocalVar(n,$.Float)} = step(0.5, ${i.associatedVariableName}.g);
`,e.compilationString+=e._declareOutput(t)+`;
`,e.compilationString+=`${t.associatedVariableName}.r = (1.0 - ${r}) * ${i.associatedVariableName}.r * ${s.associatedVariableName}.r * 2.0 + ${r} * (1.0 - (1.0 - ${i.associatedVariableName}.r) * (1.0 - ${s.associatedVariableName}.r) * 2.0);
`,e.compilationString+=`${t.associatedVariableName}.g = (1.0 - ${n}) * ${i.associatedVariableName}.g * ${s.associatedVariableName}.g * 2.0 + ${n} * (1.0 - (1.0 - ${i.associatedVariableName}.g) * (1.0 - ${s.associatedVariableName}.g) * 2.0);
`,e.compilationString+=`${t.associatedVariableName}.b = ${i.associatedVariableName}.b * ${s.associatedVariableName}.b;
`,this}}ve("BABYLON.NormalBlendBlock",z5e);class F5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("input",$.Vector2),this.registerInput("angle",$.Float),this.registerOutput("output",$.Vector2)}getClassName(){return"Rotate2dBlock"}get input(){return this._inputs[0]}get angle(){return this._inputs[1]}get output(){return this._outputs[0]}autoConfigure(){if(!this.angle.isConnected){const e=new ys("angle");e.value=0,e.output.connectTo(this.angle)}}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=this.angle,s=this.input;return e.compilationString+=e._declareOutput(t)+` = vec2(cos(${i.associatedVariableName}) * ${s.associatedVariableName}.x - sin(${i.associatedVariableName}) * ${s.associatedVariableName}.y, sin(${i.associatedVariableName}) * ${s.associatedVariableName}.x + cos(${i.associatedVariableName}) * ${s.associatedVariableName}.y);
`,this}}ve("BABYLON.Rotate2dBlock",F5e);class k5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("incident",$.AutoDetect),this.registerInput("normal",$.AutoDetect),this.registerOutput("output",$.Vector3),this._inputs[0].addExcludedConnectionPointFromAllowedTypes($.Vector3|$.Vector4|$.Color3|$.Color4),this._inputs[1].addExcludedConnectionPointFromAllowedTypes($.Vector3|$.Vector4|$.Color3|$.Color4)}getClassName(){return"ReflectBlock"}get incident(){return this._inputs[0]}get normal(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = reflect(${this.incident.associatedVariableName}.xyz, ${this.normal.associatedVariableName}.xyz);
`,this}}ve("BABYLON.ReflectBlock",k5e);class U5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("incident",$.AutoDetect),this.registerInput("normal",$.AutoDetect),this.registerInput("ior",$.Float),this.registerOutput("output",$.Vector3),this._inputs[0].addExcludedConnectionPointFromAllowedTypes($.Vector3|$.Vector4|$.Color3|$.Color4),this._inputs[1].addExcludedConnectionPointFromAllowedTypes($.Vector3|$.Vector4|$.Color3|$.Color4)}getClassName(){return"RefractBlock"}get incident(){return this._inputs[0]}get normal(){return this._inputs[1]}get ior(){return this._inputs[2]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.compilationString+=e._declareOutput(t)+` = refract(${this.incident.associatedVariableName}.xyz, ${this.normal.associatedVariableName}.xyz, ${this.ior.associatedVariableName});
`,this}}ve("BABYLON.RefractBlock",U5e);class j5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("color",$.Color3),this.registerInput("level",$.Float),this.registerOutput("output",$.Color3)}getClassName(){return"DesaturateBlock"}get color(){return this._inputs[0]}get level(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],s=this.color.associatedVariableName,r=e._getFreeVariableName("colorMin"),n=e._getFreeVariableName("colorMax"),o=e._getFreeVariableName("colorMerge");return e.compilationString+=`${e._declareLocalVar(r,$.Float)} = min(min(${s}.x, ${s}.y), ${s}.z);
`,e.compilationString+=`${e._declareLocalVar(n,$.Float)} = max(max(${s}.x, ${s}.y), ${s}.z);
`,e.compilationString+=`${e._declareLocalVar(o,$.Float)} = 0.5 * (${r} + ${n});
`,e.compilationString+=e._declareOutput(t)+` = mix(${s}, ${e._getShaderType($.Vector3)}(${o}, ${o}, ${o}), ${this.level.associatedVariableName});
`,this}}ve("BABYLON.DesaturateBlock",j5e);class zL extends Di{constructor(e){super(e,Te.Fragment),this.albedoScaling=!1,this.linkSheenWithAlbedo=!1,this._isUnique=!0,this.registerInput("intensity",$.Float,!0,Te.Fragment),this.registerInput("color",$.Color3,!0,Te.Fragment),this.registerInput("roughness",$.Float,!0,Te.Fragment),this.registerOutput("sheen",$.Object,Te.Fragment,new Vn("sheen",this,1,zL,"SheenBlock"))}initialize(e){e._excludeVariableName("sheenOut"),e._excludeVariableName("sheenMapData"),e._excludeVariableName("vSheenColor"),e._excludeVariableName("vSheenRoughness")}getClassName(){return"SheenBlock"}get intensity(){return this._inputs[0]}get color(){return this._inputs[1]}get roughness(){return this._inputs[2]}get sheen(){return this._outputs[0]}prepareDefines(e,t,i){super.prepareDefines(e,t,i),i.setValue("SHEEN",!0),i.setValue("SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE",!0,!0),i.setValue("SHEEN_LINKWITHALBEDO",this.linkSheenWithAlbedo,!0),i.setValue("SHEEN_ROUGHNESS",this.roughness.isConnected,!0),i.setValue("SHEEN_ALBEDOSCALING",this.albedoScaling,!0)}getCode(e,t){let i="";const s=this.color.isConnected?this.color.associatedVariableName:`vec3${t.fSuffix}(1.)`,r=this.intensity.isConnected?this.intensity.associatedVariableName:"1.",n=this.roughness.isConnected?this.roughness.associatedVariableName:"0.",o=`vec4${t.fSuffix}(0.)`,l=t.shaderLanguage===1;return i=`#ifdef SHEEN
            ${l?"var sheenOut: sheenOutParams":"sheenOutParams sheenOut"};

            ${t._declareLocalVar("vSheenColor",$.Vector4)} = vec4${t.fSuffix}(${s}, ${r});

            sheenOut = sheenBlock(
                vSheenColor
            #ifdef SHEEN_ROUGHNESS
                , ${n}
            #endif
                , roughness
            #ifdef SHEEN_TEXTURE
                , ${o}
                ${l?`, ${o}Sampler`:""}
                , 1.0
            #endif
                , reflectance
            #ifdef SHEEN_LINKWITHALBEDO
                , baseColor
                , surfaceAlbedo
            #endif
            #ifdef ENVIRONMENTBRDF
                , NdotV
                , environmentBrdf
            #endif
            #if defined(REFLECTION) && defined(ENVIRONMENTBRDF)
                , AARoughnessFactors
                , ${l?"uniforms.":""}${e==null?void 0:e._vReflectionMicrosurfaceInfosName}
                , ${e==null?void 0:e._vReflectionInfosName}
                , ${e==null?void 0:e.reflectionColor}
                , ${l?"uniforms.":""}vLightingIntensity
                #ifdef ${e==null?void 0:e._define3DName}
                    , ${e==null?void 0:e._cubeSamplerName}                                      
                    ${l?`, ${e==null?void 0:e._cubeSamplerName}Sampler`:""}
                #else
                    , ${e==null?void 0:e._2DSamplerName}
                    ${l?`, ${e==null?void 0:e._2DSamplerName}Sampler`:""}
                #endif
                , reflectionOut.reflectionCoords
                , NdotVUnclamped
                #ifndef LODBASEDMICROSFURACE
                    #ifdef ${e==null?void 0:e._define3DName}
                        , ${e==null?void 0:e._cubeSamplerName}                        
                        ${l?`, ${e==null?void 0:e._cubeSamplerName}Sampler`:""}
                        , ${e==null?void 0:e._cubeSamplerName}
                        ${l?`, ${e==null?void 0:e._cubeSamplerName}Sampler`:""}
                    #else
                        , ${e==null?void 0:e._2DSamplerName}
                        ${l?`, ${e==null?void 0:e._2DSamplerName}Sampler`:""}
                        , ${e==null?void 0:e._2DSamplerName}
                        ${l?`, ${e==null?void 0:e._2DSamplerName}Sampler`:""}
                    #endif
                #endif
                #if !defined(${e==null?void 0:e._defineSkyboxName}) && defined(RADIANCEOCCLUSION)
                    , seo
                #endif
                #if !defined(${e==null?void 0:e._defineSkyboxName}) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(${e==null?void 0:e._define3DName})
                    , eho
                #endif
            #endif
            );

            #ifdef SHEEN_LINKWITHALBEDO
                surfaceAlbedo = sheenOut.surfaceAlbedo;
            #endif
        #endif
`,i}_buildBlock(e){return e.target===Te.Fragment&&e.sharedData.blocksWithDefines.push(this),this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return e+=`${this._codeVariableName}.albedoScaling = ${this.albedoScaling};
`,e+=`${this._codeVariableName}.linkSheenWithAlbedo = ${this.linkSheenWithAlbedo};
`,e}serialize(){const e=super.serialize();return e.albedoScaling=this.albedoScaling,e.linkSheenWithAlbedo=this.linkSheenWithAlbedo,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.albedoScaling=e.albedoScaling,this.linkSheenWithAlbedo=e.linkSheenWithAlbedo}}F([lt("Albedo scaling",0,"PROPERTIES",{embedded:!0,notifiers:{update:!0}})],zL.prototype,"albedoScaling",void 0),F([lt("Link sheen with albedo",0,"PROPERTIES",{embedded:!0,notifiers:{update:!0}})],zL.prototype,"linkSheenWithAlbedo",void 0),ve("BABYLON.SheenBlock",zL);class $B extends Di{constructor(e){super(e,Te.Fragment),this._tangentCorrectionFactorName="",this._isUnique=!0,this.registerInput("intensity",$.Float,!0,Te.Fragment),this.registerInput("direction",$.Vector2,!0,Te.Fragment),this.registerInput("uv",$.Vector2,!0),this.registerInput("worldTangent",$.Vector4,!0),this.registerInput("TBN",$.Object,!0,Te.VertexAndFragment,new Vn("TBN",this,0,BL,"TBNBlock")),this.registerInput("roughness",$.Float,!0,Te.Fragment),this.registerOutput("anisotropy",$.Object,Te.Fragment,new Vn("anisotropy",this,1,$B,"AnisotropyBlock"))}initialize(e){e._excludeVariableName("anisotropicOut"),e._excludeVariableName("TBN")}getClassName(){return"AnisotropyBlock"}get intensity(){return this._inputs[0]}get direction(){return this._inputs[1]}get uv(){return this._inputs[2]}get worldTangent(){return this._inputs[3]}get TBN(){return this._inputs[4]}get roughness(){return this._inputs[5]}get anisotropy(){return this._outputs[0]}_generateTBNSpace(e){let t="";const i=`//${this.name}`,s=this.uv,r=this.worldPositionConnectionPoint,n=this.worldNormalConnectionPoint,o=this.worldTangent,l=e.shaderLanguage===1;s.isConnected||de.Error("You must connect the 'uv' input of the Anisotropy block!"),e._emitExtension("derivatives","#extension GL_OES_standard_derivatives : enable");const c={search:/defined\(TANGENT\)/g,replace:o.isConnected?"defined(TANGENT)":"defined(IGNORE)"},u=this.TBN;return u.isConnected?e.compilationString+=`
            #ifdef TBNBLOCK
            ${l?"var TBN":"mat3 TBN"} = ${u.associatedVariableName};
            #endif
            `:o.isConnected&&(t+=`${e._declareLocalVar("tbnNormal",$.Vector3)} = normalize(${n.associatedVariableName}.xyz);
`,t+=`${e._declareLocalVar("tbnTangent",$.Vector3)} = normalize(${o.associatedVariableName}.xyz);
`,t+=`${e._declareLocalVar("tbnBitangent",$.Vector3)} = cross(tbnNormal, tbnTangent) * ${this._tangentCorrectionFactorName};
`,t+=`${l?"var vTBN":"mat3 vTBN"} = ${l?"mat3x3f":"mat3"}(tbnTangent, tbnBitangent, tbnNormal);
`),t+=`
            #if defined(${o.isConnected?"TANGENT":"IGNORE"}) && defined(NORMAL)
                ${l?"var TBN":"mat3 TBN"} = vTBN;
            #else
                ${l?"var TBN":"mat3 TBN"} = cotangent_frame(${n.associatedVariableName+".xyz"}, ${"v_"+r.associatedVariableName+".xyz"}, ${s.isConnected?s.associatedVariableName:"vec2(0.)"}, vec2${e.fSuffix}(1., 1.));
            #endif
`,e._emitFunctionFromInclude("bumpFragmentMainFunctions",i,{replaceStrings:[c]}),t}getCode(e,t=!1){let i="";t&&(i+=this._generateTBNSpace(e));const s=e.shaderLanguage===1,r=this.intensity.isConnected?this.intensity.associatedVariableName:"1.0",n=this.direction.isConnected?this.direction.associatedVariableName:"vec2(1., 0.)",o=this.roughness.isConnected?this.roughness.associatedVariableName:"0.";return i+=`${s?"var anisotropicOut: anisotropicOutParams":"anisotropicOutParams anisotropicOut"};
            anisotropicOut = anisotropicBlock(
                vec3(${n}, ${r}),
                ${o},
            #ifdef ANISOTROPIC_TEXTURE
                vec3(0.),
            #endif
                TBN,
                normalW,
                viewDirectionW
            );
`,i}prepareDefines(e,t,i){super.prepareDefines(e,t,i),i.setValue("ANISOTROPIC",!0),i.setValue("ANISOTROPIC_TEXTURE",!1,!0),i.setValue("ANISOTROPIC_LEGACY",!this.roughness.isConnected)}bind(e,t,i){super.bind(e,t,i),i&&e.setFloat(this._tangentCorrectionFactorName,i.getWorldMatrix().determinant()<0?-1:1)}_buildBlock(e){return e.target===Te.Fragment&&(e.sharedData.blocksWithDefines.push(this),e.sharedData.bindableBlocks.push(this),this._tangentCorrectionFactorName=e._getFreeDefineName("tangentCorrectionFactor"),e._emitUniformFromString(this._tangentCorrectionFactorName,$.Float)),this}}ve("BABYLON.AnisotropyBlock",$B);class FL extends xO{_onGenerateOnlyFragmentCodeChanged(){return this.position.isConnected?(this.generateOnlyFragmentCode=!this.generateOnlyFragmentCode,de.Error("The position input must not be connected to be able to switch!"),!1):(this._setTarget(),!0)}_setTarget(){super._setTarget(),this.getInputByName("position").target=this.generateOnlyFragmentCode?Te.Fragment:Te.Vertex,this.generateOnlyFragmentCode&&(this.forceIrradianceInFragment=!0)}constructor(e){super(e),this.useSphericalHarmonics=!0,this.forceIrradianceInFragment=!1,this._isUnique=!0,this.registerInput("position",$.AutoDetect,!1,Te.Vertex),this.registerInput("world",$.Matrix,!1,Te.Vertex),this.registerInput("color",$.Color3,!0,Te.Fragment),this.registerOutput("reflection",$.Object,Te.Fragment,new Vn("reflection",this,1,FL,"ReflectionBlock")),this.position.addExcludedConnectionPointFromAllowedTypes($.Color3|$.Vector3|$.Vector4)}getClassName(){return"ReflectionBlock"}get position(){return this._inputs[0]}get worldPosition(){return this.worldPositionConnectionPoint}get worldNormal(){return this.worldNormalConnectionPoint}get world(){return this._inputs[1]}get cameraPosition(){return this.cameraPositionConnectionPoint}get view(){return this.viewConnectionPoint}get color(){return this._inputs[2]}get reflection(){return this._outputs[0]}get hasTexture(){return!!this._getTexture()}get reflectionColor(){return this.color.isConnected?this.color.associatedVariableName:"vec3(1., 1., 1.)"}_getTexture(){return this.texture?this.texture:this._scene.environmentTexture}prepareDefines(e,t,i){super.prepareDefines(e,t,i);const s=this._getTexture(),r=s&&s.getTextureMatrix;i.setValue("REFLECTION",r,!0),r&&(i.setValue(this._defineLODReflectionAlpha,s.lodLevelInAlpha,!0),i.setValue(this._defineLinearSpecularReflection,s.linearSpecularLOD,!0),i.setValue(this._defineOppositeZ,this._scene.useRightHandedSystem?!s.invertZ:s.invertZ,!0),i.setValue("SPHERICAL_HARMONICS",this.useSphericalHarmonics,!0),i.setValue("GAMMAREFLECTION",s.gammaSpace,!0),i.setValue("RGBDREFLECTION",s.isRGBD,!0),s&&s.coordinatesMode!==be.SKYBOX_MODE&&s.isCube&&(i.setValue("USESPHERICALFROMREFLECTIONMAP",!0),i.setValue("USEIRRADIANCEMAP",!1),this.forceIrradianceInFragment||this._scene.getEngine().getCaps().maxVaryingVectors<=8?i.setValue("USESPHERICALINVERTEX",!1):i.setValue("USESPHERICALINVERTEX",!0)))}bind(e,t,i,s){super.bind(e,t,i);const r=this._getTexture();if(!r||!s)return;r.isCube?e.setTexture(this._cubeSamplerName,r):e.setTexture(this._2DSamplerName,r);const n=r.getSize().width;e.setFloat3(this._vReflectionMicrosurfaceInfosName,n,r.lodGenerationScale,r.lodGenerationOffset),e.setFloat2(this._vReflectionFilteringInfoName,n,Math.log2(n));const o=s.materialDefines,l=r.sphericalPolynomial;if(o.USESPHERICALFROMREFLECTIONMAP&&l)if(o.SPHERICAL_HARMONICS){const c=l.preScaledHarmonics;e.setVector3("vSphericalL00",c.l00),e.setVector3("vSphericalL1_1",c.l1_1),e.setVector3("vSphericalL10",c.l10),e.setVector3("vSphericalL11",c.l11),e.setVector3("vSphericalL2_2",c.l2_2),e.setVector3("vSphericalL2_1",c.l2_1),e.setVector3("vSphericalL20",c.l20),e.setVector3("vSphericalL21",c.l21),e.setVector3("vSphericalL22",c.l22)}else e.setFloat3("vSphericalX",l.x.x,l.x.y,l.x.z),e.setFloat3("vSphericalY",l.y.x,l.y.y,l.y.z),e.setFloat3("vSphericalZ",l.z.x,l.z.y,l.z.z),e.setFloat3("vSphericalXX_ZZ",l.xx.x-l.zz.x,l.xx.y-l.zz.y,l.xx.z-l.zz.z),e.setFloat3("vSphericalYY_ZZ",l.yy.x-l.zz.x,l.yy.y-l.zz.y,l.yy.z-l.zz.z),e.setFloat3("vSphericalZZ",l.zz.x,l.zz.y,l.zz.z),e.setFloat3("vSphericalXY",l.xy.x,l.xy.y,l.xy.z),e.setFloat3("vSphericalYZ",l.yz.x,l.yz.y,l.yz.z),e.setFloat3("vSphericalZX",l.zx.x,l.zx.y,l.zx.z)}handleVertexSide(e){let t=super.handleVertexSide(e);const i=e.shaderLanguage===1;e._emitFunctionFromInclude("harmonicsFunctions",`//${this.name}`,{replaceStrings:[{search:/uniform vec3 vSphericalL00;[\s\S]*?uniform vec3 vSphericalL22;/g,replace:""},{search:/uniform vec3 vSphericalX;[\s\S]*?uniform vec3 vSphericalZX;/g,replace:""}]});const s=e._getFreeVariableName("reflectionVector");return this._vEnvironmentIrradianceName=e._getFreeVariableName("vEnvironmentIrradiance"),e._emitVaryingFromString(this._vEnvironmentIrradianceName,$.Vector3,"defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)"),e._emitUniformFromString("vSphericalL00",$.Vector3,"SPHERICAL_HARMONICS"),e._emitUniformFromString("vSphericalL1_1",$.Vector3,"SPHERICAL_HARMONICS"),e._emitUniformFromString("vSphericalL10",$.Vector3,"SPHERICAL_HARMONICS"),e._emitUniformFromString("vSphericalL11",$.Vector3,"SPHERICAL_HARMONICS"),e._emitUniformFromString("vSphericalL2_2",$.Vector3,"SPHERICAL_HARMONICS"),e._emitUniformFromString("vSphericalL2_1",$.Vector3,"SPHERICAL_HARMONICS"),e._emitUniformFromString("vSphericalL20",$.Vector3,"SPHERICAL_HARMONICS"),e._emitUniformFromString("vSphericalL21",$.Vector3,"SPHERICAL_HARMONICS"),e._emitUniformFromString("vSphericalL22",$.Vector3,"SPHERICAL_HARMONICS"),e._emitUniformFromString("vSphericalX",$.Vector3,"SPHERICAL_HARMONICS",!0),e._emitUniformFromString("vSphericalY",$.Vector3,"SPHERICAL_HARMONICS",!0),e._emitUniformFromString("vSphericalZ",$.Vector3,"SPHERICAL_HARMONICS",!0),e._emitUniformFromString("vSphericalXX_ZZ",$.Vector3,"SPHERICAL_HARMONICS",!0),e._emitUniformFromString("vSphericalYY_ZZ",$.Vector3,"SPHERICAL_HARMONICS",!0),e._emitUniformFromString("vSphericalZZ",$.Vector3,"SPHERICAL_HARMONICS",!0),e._emitUniformFromString("vSphericalXY",$.Vector3,"SPHERICAL_HARMONICS",!0),e._emitUniformFromString("vSphericalYZ",$.Vector3,"SPHERICAL_HARMONICS",!0),e._emitUniformFromString("vSphericalZX",$.Vector3,"SPHERICAL_HARMONICS",!0),t+=`#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
                ${e._declareLocalVar(s,$.Vector3)} = (${(i?"uniforms.":"")+this._reflectionMatrixName} * vec4${e.fSuffix}(normalize(${this.worldNormal.associatedVariableName}).xyz, 0)).xyz;
                #ifdef ${this._defineOppositeZ}
                    ${s}.z *= -1.0;
                #endif
                ${i?"vertexOutputs.":""}${this._vEnvironmentIrradianceName} = computeEnvironmentIrradiance(${s});
            #endif
`,t}getCode(e,t){let i="";this.handleFragmentSideInits(e);const s=e.shaderLanguage===1;e._emitFunctionFromInclude("harmonicsFunctions",`//${this.name}`,{replaceStrings:[{search:/uniform vec3 vSphericalL00;[\s\S]*?uniform vec3 vSphericalL22;/g,replace:""},{search:/uniform vec3 vSphericalX;[\s\S]*?uniform vec3 vSphericalZX;/g,replace:""}]}),s||(e._emitFunction("sampleReflection",`
                #ifdef ${this._define3DName}
                    #define sampleReflection(s, c) textureCube(s, c)
                #else
                    #define sampleReflection(s, c) texture2D(s, c)
                #endif
`,`//${this.name}`),e._emitFunction("sampleReflectionLod",`
                #ifdef ${this._define3DName}
                    #define sampleReflectionLod(s, c, l) textureCubeLodEXT(s, c, l)
                #else
                    #define sampleReflectionLod(s, c, l) texture2DLodEXT(s, c, l)
                #endif
`,`//${this.name}`));const r=s?`
            fn computeReflectionCoordsPBR(worldPos: vec4f, worldNormal: vec3f) -> vec3f {
                ${this.handleFragmentSideCodeReflectionCoords(e,"worldNormal","worldPos",!0,!0)}
                return ${this._reflectionVectorName};
            }
`:`
            vec3 computeReflectionCoordsPBR(vec4 worldPos, vec3 worldNormal) {
                ${this.handleFragmentSideCodeReflectionCoords(e,"worldNormal","worldPos",!0,!0)}
                return ${this._reflectionVectorName};
            }
`;return e._emitFunction("computeReflectionCoordsPBR",r,`//${this.name}`),this._vReflectionMicrosurfaceInfosName=e._getFreeVariableName("vReflectionMicrosurfaceInfos"),e._emitUniformFromString(this._vReflectionMicrosurfaceInfosName,$.Vector3),this._vReflectionInfosName=e._getFreeVariableName("vReflectionInfos"),this._vReflectionFilteringInfoName=e._getFreeVariableName("vReflectionFilteringInfo"),e._emitUniformFromString(this._vReflectionFilteringInfoName,$.Vector2),i+=`#ifdef REFLECTION
            ${e._declareLocalVar(this._vReflectionInfosName,$.Vector2)} = vec2${e.fSuffix}(1., 0.);

            ${s?"var reflectionOut: reflectionOutParams":"reflectionOutParams reflectionOut"};

            reflectionOut = reflectionBlock(
                ${this.generateOnlyFragmentCode?this._worldPositionNameInFragmentOnlyMode:(s?"input.":"")+"v_"+this.worldPosition.associatedVariableName}.xyz
                , ${t}
                , alphaG
                , ${(s?"uniforms.":"")+this._vReflectionMicrosurfaceInfosName}
                , ${this._vReflectionInfosName}
                , ${this.reflectionColor}
            #ifdef ANISOTROPIC
                ,anisotropicOut
            #endif
            #if defined(${this._defineLODReflectionAlpha}) && !defined(${this._defineSkyboxName})
                ,NdotVUnclamped
            #endif
            #ifdef ${this._defineLinearSpecularReflection}
                , roughness
            #endif
            #ifdef ${this._define3DName}
                , ${this._cubeSamplerName}
                ${s?`, ${this._cubeSamplerName}Sampler`:""}
            #else
                , ${this._2DSamplerName}
                ${s?`, ${this._2DSamplerName}Sampler`:""}
            #endif
            #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
                , ${s?"input.":""}${this._vEnvironmentIrradianceName}
            #endif
            #if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
                    , ${this._reflectionMatrixName}
            #endif
            #ifdef USEIRRADIANCEMAP
                , irradianceSampler         // ** not handled **
                ${s?", irradianceSamplerSampler":""}
            #endif
            #ifndef LODBASEDMICROSFURACE
                #ifdef ${this._define3DName}
                    , ${this._cubeSamplerName}
                    ${s?`, ${this._cubeSamplerName}Sampler`:""}
                    , ${this._cubeSamplerName}
                    ${s?`, ${this._cubeSamplerName}Sampler`:""}
                #else
                    , ${this._2DSamplerName}
                    ${s?`, ${this._2DSamplerName}Sampler`:""}
                    , ${this._2DSamplerName}                    
                    ${s?`, ${this._2DSamplerName}Sampler`:""}
                #endif
            #endif
            #ifdef REALTIME_FILTERING
                , ${this._vReflectionFilteringInfoName}
                #ifdef IBL_CDF_FILTERING
                    , icdfSampler         // ** not handled **
                    ${s?", icdfSamplerSampler":""}
                #endif
            #endif
            );
        #endif
`,i}_buildBlock(e){return this._scene=e.sharedData.scene,e.target!==Te.Fragment&&(this._defineLODReflectionAlpha=e._getFreeDefineName("LODINREFLECTIONALPHA"),this._defineLinearSpecularReflection=e._getFreeDefineName("LINEARSPECULARREFLECTION")),this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return this.texture&&(e+=`${this._codeVariableName}.texture.gammaSpace = ${this.texture.gammaSpace};
`),e+=`${this._codeVariableName}.useSphericalHarmonics = ${this.useSphericalHarmonics};
`,e+=`${this._codeVariableName}.forceIrradianceInFragment = ${this.forceIrradianceInFragment};
`,e}serialize(){var t;const e=super.serialize();return e.useSphericalHarmonics=this.useSphericalHarmonics,e.forceIrradianceInFragment=this.forceIrradianceInFragment,e.gammaSpace=((t=this.texture)==null?void 0:t.gammaSpace)??!0,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.useSphericalHarmonics=e.useSphericalHarmonics,this.forceIrradianceInFragment=e.forceIrradianceInFragment,this.texture&&(this.texture.gammaSpace=e.gammaSpace)}}F([lt("Spherical Harmonics",0,"ADVANCED",{embedded:!0,notifiers:{update:!0}})],FL.prototype,"useSphericalHarmonics",void 0),F([lt("Force irradiance in fragment",0,"ADVANCED",{embedded:!0,notifiers:{update:!0}})],FL.prototype,"forceIrradianceInFragment",void 0),ve("BABYLON.ReflectionBlock",FL);class f9 extends Di{constructor(e){super(e,Te.Fragment),this._tangentCorrectionFactorName="",this.remapF0OnInterfaceChange=!0,this._isUnique=!0,this.registerInput("intensity",$.Float,!1,Te.Fragment),this.registerInput("roughness",$.Float,!0,Te.Fragment),this.registerInput("indexOfRefraction",$.Float,!0,Te.Fragment),this.registerInput("normalMapColor",$.Color3,!0,Te.Fragment),this.registerInput("uv",$.Vector2,!0,Te.Fragment),this.registerInput("tintColor",$.Color3,!0,Te.Fragment),this.registerInput("tintAtDistance",$.Float,!0,Te.Fragment),this.registerInput("tintThickness",$.Float,!0,Te.Fragment),this.registerInput("worldTangent",$.Vector4,!0),this.registerInput("worldNormal",$.AutoDetect,!0),this.worldNormal.addExcludedConnectionPointFromAllowedTypes($.Color4|$.Vector4|$.Vector3),this.registerInput("TBN",$.Object,!0,Te.VertexAndFragment,new Vn("TBN",this,0,BL,"TBNBlock")),this.registerOutput("clearcoat",$.Object,Te.Fragment,new Vn("clearcoat",this,1,f9,"ClearCoatBlock"))}initialize(e){e._excludeVariableName("clearcoatOut"),e._excludeVariableName("vClearCoatParams"),e._excludeVariableName("vClearCoatTintParams"),e._excludeVariableName("vClearCoatRefractionParams"),e._excludeVariableName("vClearCoatTangentSpaceParams"),e._excludeVariableName("vGeometricNormaClearCoatW")}getClassName(){return"ClearCoatBlock"}get intensity(){return this._inputs[0]}get roughness(){return this._inputs[1]}get indexOfRefraction(){return this._inputs[2]}get normalMapColor(){return this._inputs[3]}get uv(){return this._inputs[4]}get tintColor(){return this._inputs[5]}get tintAtDistance(){return this._inputs[6]}get tintThickness(){return this._inputs[7]}get worldTangent(){return this._inputs[8]}get worldNormal(){return this._inputs[9]}get TBN(){return this._inputs[10]}get clearcoat(){return this._outputs[0]}autoConfigure(){if(!this.intensity.isConnected){const e=new ys("ClearCoat intensity",Te.Fragment,$.Float);e.value=1,e.output.connectTo(this.intensity)}}prepareDefines(e,t,i){super.prepareDefines(e,t,i),i.setValue("CLEARCOAT",!0),i.setValue("CLEARCOAT_TEXTURE",!1,!0),i.setValue("CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE",!0,!0),i.setValue("CLEARCOAT_TINT",this.tintColor.isConnected||this.tintThickness.isConnected||this.tintAtDistance.isConnected,!0),i.setValue("CLEARCOAT_BUMP",this.normalMapColor.isConnected,!0),i.setValue("CLEARCOAT_DEFAULTIOR",this.indexOfRefraction.isConnected?this.indexOfRefraction.connectInputBlock.value===$l._DefaultIndexOfRefraction:!0,!0),i.setValue("CLEARCOAT_REMAP_F0",this.remapF0OnInterfaceChange,!0)}bind(e,t,i){var f;super.bind(e,t,i);const s=((f=this.indexOfRefraction.connectInputBlock)==null?void 0:f.value)??$l._DefaultIndexOfRefraction,r=1-s,n=1+s,o=Math.pow(-r/n,2),l=1/s;e.setFloat4("vClearCoatRefractionParams",o,l,r,n);const c=this.clearcoat.hasEndpoints?this.clearcoat.endpoints[0].ownerBlock:null,u=c!=null&&c.perturbedNormal.isConnected?c.perturbedNormal.connectedPoint.ownerBlock:null;this._scene._mirroredCameraPosition?e.setFloat2("vClearCoatTangentSpaceParams",u!=null&&u.invertX?1:-1,u!=null&&u.invertY?1:-1):e.setFloat2("vClearCoatTangentSpaceParams",u!=null&&u.invertX?-1:1,u!=null&&u.invertY?-1:1),i&&e.setFloat(this._tangentCorrectionFactorName,i.getWorldMatrix().determinant()<0?-1:1)}_generateTBNSpace(e,t,i){let s="";const r=`//${this.name}`,n=this.worldTangent,o=e.shaderLanguage===1;o||e._emitExtension("derivatives","#extension GL_OES_standard_derivatives : enable");const l={search:/defined\(TANGENT\)/g,replace:n.isConnected?"defined(TANGENT)":"defined(IGNORE)"},c=this.TBN;return c.isConnected?e.compilationString+=`
            #ifdef TBNBLOCK
                ${o?"var TBN":"mat3 TBN"} = ${c.associatedVariableName};
            #endif
            `:n.isConnected&&(s+=`${e._declareLocalVar("tbnNormal",$.Vector3)} = normalize(${i}.xyz);
`,s+=`${e._declareLocalVar("tbnTangent",$.Vector3)} = normalize(${n.associatedVariableName}.xyz);
`,s+=`${e._declareLocalVar("tbnBitangent",$.Vector3)} = cross(tbnNormal, tbnTangent) * ${this._tangentCorrectionFactorName};
`,s+=`${o?"var vTBN":"mat3 vTBN"} = ${o?"mat3x3f":"mat3"}(tbnTangent, tbnBitangent, tbnNormal);
`),e._emitFunctionFromInclude("bumpFragmentMainFunctions",r,{replaceStrings:[l]}),s}static _GetInitializationCode(e,t){let i="";const s=t!=null&&t.intensity.isConnected?t.intensity.associatedVariableName:"1.",r=t!=null&&t.roughness.isConnected?t.roughness.associatedVariableName:"0.",n=t!=null&&t.tintColor.isConnected?t.tintColor.associatedVariableName:`vec3${e.fSuffix}(1.)`,o=t!=null&&t.tintThickness.isConnected?t.tintThickness.associatedVariableName:"1.";return i+=`
            #ifdef CLEARCOAT
                ${e._declareLocalVar("vClearCoatParams",$.Vector2)} = vec2${e.fSuffix}(${s}, ${r});
                ${e._declareLocalVar("vClearCoatTintParams",$.Vector4)} = vec4${e.fSuffix}(${n}, ${o});
            #endif
`,i}static GetCode(e,t,i,s,r,n,o){let l="";const c=t!=null&&t.normalMapColor.isConnected?t.normalMapColor.associatedVariableName:`vec3${e.fSuffix}(0.)`,u=t!=null&&t.uv.isConnected?t.uv.associatedVariableName:`vec2${e.fSuffix}(0.)`,f=t!=null&&t.tintAtDistance.isConnected?t.tintAtDistance.associatedVariableName:"1.",p=`vec4${e.fSuffix}(0.)`;if(t){e._emitUniformFromString("vClearCoatRefractionParams",$.Vector4),e._emitUniformFromString("vClearCoatTangentSpaceParams",$.Vector2);const _=t.worldNormal;l+=`${e._declareLocalVar("vGeometricNormaClearCoatW",$.Vector3)} = ${_.isConnected?"normalize("+_.associatedVariableName+".xyz)":"geometricNormalW"};
`}else l+=`${e._declareLocalVar("vGeometricNormaClearCoatW",$.Vector3)} = geometricNormalW;
`;r&&t&&(l+=t._generateTBNSpace(e,s,o),n=t.worldTangent.isConnected);const m=e.shaderLanguage===1;return l+=`${m?"var clearcoatOut: clearcoatOutParams":"clearcoatOutParams clearcoatOut"};

        #ifdef CLEARCOAT
            clearcoatOut = clearcoatBlock(
                ${s}.xyz
                , vGeometricNormaClearCoatW
                , viewDirectionW
                , vClearCoatParams
                , specularEnvironmentR0
            #ifdef CLEARCOAT_TEXTURE
                , vec2${e.fSuffix}(0.)
            #endif
            #ifdef CLEARCOAT_TINT
                , vClearCoatTintParams
                , ${f}
                , ${m?"uniforms.":""}vClearCoatRefractionParams
                #ifdef CLEARCOAT_TINT_TEXTURE
                    , ${p}
                #endif
            #endif
            #ifdef CLEARCOAT_BUMP
                , vec2${e.fSuffix}(0., 1.)
                , vec4${e.fSuffix}(${c}, 0.)
                , ${u}
                #if defined(${n?"TANGENT":"IGNORE"}) && defined(NORMAL)
                    , vTBN
                #else
                    , ${m?"uniforms.":""}vClearCoatTangentSpaceParams
                #endif
                #ifdef OBJECTSPACE_NORMALMAP
                    , normalMatrix
                #endif
            #endif
            #if defined(FORCENORMALFORWARD) && defined(NORMAL)
                , faceNormal
            #endif
            #ifdef REFLECTION
                , ${m?"uniforms.":""}${i==null?void 0:i._vReflectionMicrosurfaceInfosName}
                , ${i==null?void 0:i._vReflectionInfosName}
                , ${i==null?void 0:i.reflectionColor}
                , ${m?"uniforms.":""}vLightingIntensity
                #ifdef ${i==null?void 0:i._define3DName}
                    , ${i==null?void 0:i._cubeSamplerName}       
                    ${m?`, ${i==null?void 0:i._cubeSamplerName}Sampler`:""}
                #else
                    , ${i==null?void 0:i._2DSamplerName}       
                    ${m?`, ${i==null?void 0:i._2DSamplerName}Sampler`:""}
                #endif
                #ifndef LODBASEDMICROSFURACE
                    #ifdef ${i==null?void 0:i._define3DName}
                        , ${i==null?void 0:i._cubeSamplerName}       
                        ${m?`, ${i==null?void 0:i._cubeSamplerName}Sampler`:""}
                        , ${i==null?void 0:i._cubeSamplerName}
                        ${m?`, ${i==null?void 0:i._cubeSamplerName}Sampler`:""}
                    #else
                        , ${i==null?void 0:i._2DSamplerName}
                        ${m?`, ${i==null?void 0:i._2DSamplerName}Sampler`:""}
                        , ${i==null?void 0:i._2DSamplerName}
                        ${m?`, ${i==null?void 0:i._2DSamplerName}Sampler`:""}                        
                    #endif
                #endif
            #endif
            #if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)
                , (${e._generateTernary("1.","-1.",m?"fragmentInputs.frontFacing":"gl_FrontFacing")})
            #endif
            );
        #else
            clearcoatOut.specularEnvironmentR0 = specularEnvironmentR0;
        #endif
`,l}_buildBlock(e){return this._scene=e.sharedData.scene,e.target===Te.Fragment&&(e.sharedData.bindableBlocks.push(this),e.sharedData.blocksWithDefines.push(this),this._tangentCorrectionFactorName=e._getFreeDefineName("tangentCorrectionFactor"),e._emitUniformFromString(this._tangentCorrectionFactorName,$.Float)),this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return e+=`${this._codeVariableName}.remapF0OnInterfaceChange = ${this.remapF0OnInterfaceChange};
`,e}serialize(){const e=super.serialize();return e.remapF0OnInterfaceChange=this.remapF0OnInterfaceChange,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.remapF0OnInterfaceChange=e.remapF0OnInterfaceChange??!0}}F([lt("Remap F0 on interface change",0,"ADVANCED",{embedded:!0})],f9.prototype,"remapF0OnInterfaceChange",void 0),ve("BABYLON.ClearCoatBlock",f9);class bO extends Di{constructor(e){super(e,Te.Fragment),this._isUnique=!0,this.registerInput("intensity",$.Float,!0,Te.Fragment),this.registerInput("indexOfRefraction",$.Float,!0,Te.Fragment),this.registerInput("thickness",$.Float,!0,Te.Fragment),this.registerOutput("iridescence",$.Object,Te.Fragment,new Vn("iridescence",this,1,bO,"IridescenceBlock"))}initialize(e){e._excludeVariableName("iridescenceOut"),e._excludeVariableName("vIridescenceParams")}getClassName(){return"IridescenceBlock"}get intensity(){return this._inputs[0]}get indexOfRefraction(){return this._inputs[1]}get thickness(){return this._inputs[2]}get iridescence(){return this._outputs[0]}autoConfigure(){if(!this.intensity.isConnected){const e=new ys("Iridescence intensity",Te.Fragment,$.Float);e.value=1,e.output.connectTo(this.intensity);const t=new ys("Iridescence ior",Te.Fragment,$.Float);t.value=1.3,t.output.connectTo(this.indexOfRefraction);const i=new ys("Iridescence thickness",Te.Fragment,$.Float);i.value=400,i.output.connectTo(this.thickness)}}prepareDefines(e,t,i){super.prepareDefines(e,t,i),i.setValue("IRIDESCENCE",!0,!0),i.setValue("IRIDESCENCE_TEXTURE",!1,!0),i.setValue("IRIDESCENCE_THICKNESS_TEXTURE",!1,!0)}static GetCode(e,t){let i="";const s=e!=null&&e.intensity.isConnected?e.intensity.associatedVariableName:"1.",r=e!=null&&e.indexOfRefraction.isConnected?e.indexOfRefraction.associatedVariableName:ld._DefaultIndexOfRefraction,n=e!=null&&e.thickness.isConnected?e.thickness.associatedVariableName:ld._DefaultMaximumThickness,o=t.shaderLanguage===1;return i+=`${o?"var iridescenceOut: iridescenceOutParams":"iridescenceOutParams iridescenceOut"};

        #ifdef IRIDESCENCE
            iridescenceOut = iridescenceBlock(
                vec4(${s}, ${r}, 1., ${n})
                , NdotV
                , specularEnvironmentR0
                #ifdef CLEARCOAT
                    , NdotVUnclamped
                    , vClearCoatParams
                #endif                
            );

            ${o?"let":"float"} iridescenceIntensity = iridescenceOut.iridescenceIntensity;
            specularEnvironmentR0 = iridescenceOut.specularEnvironmentR0;
        #endif
`,i}_buildBlock(e){return e.target===Te.Fragment&&(e.sharedData.bindableBlocks.push(this),e.sharedData.blocksWithDefines.push(this)),this}serialize(){return super.serialize()}_deserialize(e,t,i){super._deserialize(e,t,i)}}ve("BABYLON.IridescenceBlock",bO);class p9 extends Di{constructor(e){super(e,Te.Fragment),this.linkRefractionWithTransparency=!1,this.invertRefractionY=!1,this.useThicknessAsDepth=!1,this._isUnique=!0,this.registerInput("intensity",$.Float,!1,Te.Fragment),this.registerInput("tintAtDistance",$.Float,!0,Te.Fragment),this.registerInput("volumeIndexOfRefraction",$.Float,!0,Te.Fragment),this.registerOutput("refraction",$.Object,Te.Fragment,new Vn("refraction",this,1,p9,"RefractionBlock"))}initialize(e){e._excludeVariableName("vRefractionPosition"),e._excludeVariableName("vRefractionSize")}getClassName(){return"RefractionBlock"}get intensity(){return this._inputs[0]}get tintAtDistance(){return this._inputs[1]}get volumeIndexOfRefraction(){return this._inputs[2]}get view(){return this.viewConnectionPoint}get refraction(){return this._outputs[0]}get hasTexture(){return!!this._getTexture()}_getTexture(){return this.texture?this.texture:this._scene.environmentTexture}autoConfigure(e,t=()=>!0){if(!this.intensity.isConnected){const i=new ys("Refraction intensity",Te.Fragment,$.Float);i.value=1,i.output.connectTo(this.intensity)}if(this.view&&!this.view.isConnected){let i=e.getInputBlockByPredicate(s=>s.systemValue===Ds.View&&t(s));i||(i=new ys("view"),i.setAsSystemValue(Ds.View)),i.output.connectTo(this.view)}}prepareDefines(e,t,i){super.prepareDefines(e,t,i);const s=this._getTexture(),r=s&&s.getTextureMatrix;i.setValue("SS_REFRACTION",r,!0),r&&(i.setValue(this._define3DName,s.isCube,!0),i.setValue(this._defineLODRefractionAlpha,s.lodLevelInAlpha,!0),i.setValue(this._defineLinearSpecularRefraction,s.linearSpecularLOD,!0),i.setValue(this._defineOppositeZ,this._scene.useRightHandedSystem&&s.isCube?!s.invertZ:s.invertZ,!0),i.setValue("SS_LINKREFRACTIONTOTRANSPARENCY",this.linkRefractionWithTransparency,!0),i.setValue("SS_GAMMAREFRACTION",s.gammaSpace,!0),i.setValue("SS_RGBDREFRACTION",s.isRGBD,!0),i.setValue("SS_USE_LOCAL_REFRACTIONMAP_CUBIC",!!s.boundingBoxSize,!0),i.setValue("SS_USE_THICKNESS_AS_DEPTH",this.useThicknessAsDepth,!0))}isReady(){const e=this._getTexture();return!(e&&!e.isReadyOrNotBlocking())}bind(e,t,i){var l,c;super.bind(e,t,i);const s=this._getTexture();if(!s)return;s.isCube?e.setTexture(this._cubeSamplerName,s):e.setTexture(this._2DSamplerName,s),e.setMatrix(this._refractionMatrixName,s.getRefractionTextureMatrix());let r=1;s.isCube||s.depth&&(r=s.depth);const n=((l=this.volumeIndexOfRefraction.connectInputBlock)==null?void 0:l.value)??((c=this.indexOfRefractionConnectionPoint.connectInputBlock)==null?void 0:c.value)??1.5;e.setFloat4(this._vRefractionInfosName,s.level,1/n,r,this.invertRefractionY?-1:1),e.setFloat4(this._vRefractionMicrosurfaceInfosName,s.getSize().width,s.lodGenerationScale,s.lodGenerationOffset,1/n);const o=s.getSize().width;if(e.setFloat2(this._vRefractionFilteringInfoName,o,Math.log2(o)),s.boundingBoxSize){const u=s;e.setVector3("vRefractionPosition",u.boundingBoxPosition),e.setVector3("vRefractionSize",u.boundingBoxSize)}}getCode(e){const t="";return e.sharedData.blockingBlocks.push(this),e.sharedData.textureBlocks.push(this),this._cubeSamplerName=e._getFreeVariableName(this.name+"CubeSampler"),e.samplers.push(this._cubeSamplerName),this._2DSamplerName=e._getFreeVariableName(this.name+"2DSampler"),e.samplers.push(this._2DSamplerName),this._define3DName=e._getFreeDefineName("SS_REFRACTIONMAP_3D"),this._getTexture()&&(e._samplerDeclaration+=`#ifdef ${this._define3DName}
`,e._emitCubeSampler(this._cubeSamplerName,void 0,!0),e._samplerDeclaration+=`#else
`,e._emit2DSampler(this._2DSamplerName,void 0,!0),e._samplerDeclaration+=`#endif
`),e.sharedData.blocksWithDefines.push(this),e.sharedData.bindableBlocks.push(this),this._defineLODRefractionAlpha=e._getFreeDefineName("SS_LODINREFRACTIONALPHA"),this._defineLinearSpecularRefraction=e._getFreeDefineName("SS_LINEARSPECULARREFRACTION"),this._defineOppositeZ=e._getFreeDefineName("SS_REFRACTIONMAP_OPPOSITEZ"),this._refractionMatrixName=e._getFreeVariableName("refractionMatrix"),e._emitUniformFromString(this._refractionMatrixName,$.Matrix),e.shaderLanguage!==1&&(e._emitFunction("sampleRefraction",`
                #ifdef ${this._define3DName}
                    #define sampleRefraction(s, c) textureCube(s, c)
                #else
                    #define sampleRefraction(s, c) texture2D(s, c)
                #endif
`,`//${this.name}`),e._emitFunction("sampleRefractionLod",`
                #ifdef ${this._define3DName}
                    #define sampleRefractionLod(s, c, l) textureCubeLodEXT(s, c, l)
                #else
                    #define sampleRefractionLod(s, c, l) texture2DLodEXT(s, c, l)
                #endif
`,`//${this.name}`)),this._vRefractionMicrosurfaceInfosName=e._getFreeVariableName("vRefractionMicrosurfaceInfos"),e._emitUniformFromString(this._vRefractionMicrosurfaceInfosName,$.Vector4),this._vRefractionInfosName=e._getFreeVariableName("vRefractionInfos"),e._emitUniformFromString(this._vRefractionInfosName,$.Vector4),this._vRefractionFilteringInfoName=e._getFreeVariableName("vRefractionFilteringInfo"),e._emitUniformFromString(this._vRefractionFilteringInfoName,$.Vector2),e._emitUniformFromString("vRefractionPosition",$.Vector3),e._emitUniformFromString("vRefractionSize",$.Vector3),t}_buildBlock(e){return this._scene=e.sharedData.scene,this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return this.texture&&(this.texture.isCube?e=`${this._codeVariableName}.texture = new BABYLON.CubeTexture("${this.texture.name}");
`:e=`${this._codeVariableName}.texture = new BABYLON.Texture("${this.texture.name}");
`,e+=`${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};
`),e+=`${this._codeVariableName}.linkRefractionWithTransparency = ${this.linkRefractionWithTransparency};
`,e+=`${this._codeVariableName}.invertRefractionY = ${this.invertRefractionY};
`,e+=`${this._codeVariableName}.useThicknessAsDepth = ${this.useThicknessAsDepth};
`,e}serialize(){const e=super.serialize();return this.texture&&!this.texture.isRenderTarget&&(e.texture=this.texture.serialize()),e.linkRefractionWithTransparency=this.linkRefractionWithTransparency,e.invertRefractionY=this.invertRefractionY,e.useThicknessAsDepth=this.useThicknessAsDepth,e}_deserialize(e,t,i){super._deserialize(e,t,i),e.texture&&(i=e.texture.url.indexOf("data:")===0?"":i,e.texture.isCube?this.texture=ko.Parse(e.texture,t,i):this.texture=be.Parse(e.texture,t,i)),this.linkRefractionWithTransparency=e.linkRefractionWithTransparency,this.invertRefractionY=e.invertRefractionY,this.useThicknessAsDepth=!!e.useThicknessAsDepth}}F([lt("Link refraction to transparency",0,"ADVANCED",{embedded:!0,notifiers:{update:!0}})],p9.prototype,"linkRefractionWithTransparency",void 0),F([lt("Invert refraction Y",0,"ADVANCED",{embedded:!0,notifiers:{update:!0}})],p9.prototype,"invertRefractionY",void 0),F([lt("Use thickness as depth",0,"ADVANCED",{embedded:!0,notifiers:{update:!0}})],p9.prototype,"useThicknessAsDepth",void 0),ve("BABYLON.RefractionBlock",p9);class SO extends Di{constructor(e){super(e,Te.Fragment),this._isUnique=!0,this.registerInput("thickness",$.Float,!1,Te.Fragment),this.registerInput("tintColor",$.Color3,!0,Te.Fragment),this.registerInput("translucencyIntensity",$.Float,!0,Te.Fragment),this.registerInput("translucencyDiffusionDist",$.Color3,!0,Te.Fragment),this.registerInput("refraction",$.Object,!0,Te.Fragment,new Vn("refraction",this,0,p9,"RefractionBlock")),this.registerInput("dispersion",$.Float,!0,Te.Fragment),this.registerOutput("subsurface",$.Object,Te.Fragment,new Vn("subsurface",this,1,SO,"SubSurfaceBlock"))}initialize(e){e._excludeVariableName("subSurfaceOut"),e._excludeVariableName("vThicknessParam"),e._excludeVariableName("vTintColor"),e._excludeVariableName("vTranslucencyColor"),e._excludeVariableName("vSubSurfaceIntensity"),e._excludeVariableName("dispersion")}getClassName(){return"SubSurfaceBlock"}get thickness(){return this._inputs[0]}get tintColor(){return this._inputs[1]}get translucencyIntensity(){return this._inputs[2]}get translucencyDiffusionDist(){return this._inputs[3]}get refraction(){return this._inputs[4]}get dispersion(){return this._inputs[5]}get subsurface(){return this._outputs[0]}autoConfigure(){if(!this.thickness.isConnected){const e=new ys("SubSurface thickness",Te.Fragment,$.Float);e.value=0,e.output.connectTo(this.thickness)}}prepareDefines(e,t,i){super.prepareDefines(e,t,i);const s=this.translucencyDiffusionDist.isConnected||this.translucencyIntensity.isConnected;i.setValue("SUBSURFACE",s||this.refraction.isConnected,!0),i.setValue("SS_TRANSLUCENCY",s,!0),i.setValue("SS_THICKNESSANDMASK_TEXTURE",!1,!0),i.setValue("SS_REFRACTIONINTENSITY_TEXTURE",!1,!0),i.setValue("SS_TRANSLUCENCYINTENSITY_TEXTURE",!1,!0),i.setValue("SS_USE_GLTF_TEXTURES",!1,!0),i.setValue("SS_DISPERSION",this.dispersion.isConnected,!0)}static GetCode(e,t,i,s){var h;let r="";const n=t!=null&&t.thickness.isConnected?t.thickness.associatedVariableName:"0.",o=t!=null&&t.tintColor.isConnected?t.tintColor.associatedVariableName:"vec3(1.)",l=t!=null&&t.translucencyIntensity.isConnected?t==null?void 0:t.translucencyIntensity.associatedVariableName:"1.",c=t!=null&&t.translucencyDiffusionDist.isConnected?t==null?void 0:t.translucencyDiffusionDist.associatedVariableName:"vec3(1.)",u=t!=null&&t.refraction.isConnected?(h=t==null?void 0:t.refraction.connectedPoint)==null?void 0:h.ownerBlock:null,f=u!=null&&u.tintAtDistance.isConnected?u.tintAtDistance.associatedVariableName:"1.",p=u!=null&&u.intensity.isConnected?u.intensity.associatedVariableName:"1.",m=u!=null&&u.view.isConnected?u.view.associatedVariableName:"",_=t!=null&&t.dispersion.isConnected?t==null?void 0:t.dispersion.associatedVariableName:"0.0",d=e.shaderLanguage===1;return r+=(u==null?void 0:u.getCode(e))??"",r+=`${d?"var subSurfaceOut: subSurfaceOutParams":"subSurfaceOutParams subSurfaceOut"};

        #ifdef SUBSURFACE
            ${e._declareLocalVar("vThicknessParam",$.Vector2)} = vec2${e.fSuffix}(0., ${n});
            ${e._declareLocalVar("vTintColor",$.Vector4)} = vec4${e.fSuffix}(${o}, ${f});
            ${e._declareLocalVar("vSubSurfaceIntensity",$.Vector3)} = vec3(${p}, ${l}, 0.);
            ${e._declareLocalVar("dispersion",$.Float)} = ${_};
            subSurfaceOut = subSurfaceBlock(
                vSubSurfaceIntensity
                , vThicknessParam
                , vTintColor
                , normalW
                , specularEnvironmentReflectance
            #ifdef SS_THICKNESSANDMASK_TEXTURE
                , vec4${e.fSuffix}(0.)
            #endif
            #ifdef REFLECTION
                #ifdef SS_TRANSLUCENCY
                    , ${(d?"uniforms.":"")+(i==null?void 0:i._reflectionMatrixName)}
                    #ifdef USESPHERICALFROMREFLECTIONMAP
                        #if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)
                            , reflectionOut.irradianceVector
                        #endif
                        #if defined(REALTIME_FILTERING)
                            , ${i==null?void 0:i._cubeSamplerName}
                            ${d?`, ${i==null?void 0:i._cubeSamplerName}Sampler`:""}
                            , ${i==null?void 0:i._vReflectionFilteringInfoName}
                        #endif
                        #endif
                    #ifdef USEIRRADIANCEMAP
                        , irradianceSampler
                        ${d?", irradianceSamplerSampler":""}
                    #endif
                #endif
            #endif
            #if defined(SS_REFRACTION) || defined(SS_TRANSLUCENCY)
                , surfaceAlbedo
            #endif
            #ifdef SS_REFRACTION
                , ${s}.xyz
                , viewDirectionW
                , ${m}
                , ${(d?"uniforms.":"")+((u==null?void 0:u._vRefractionInfosName)??"")}
                , ${(d?"uniforms.":"")+((u==null?void 0:u._refractionMatrixName)??"")}
                , ${(d?"uniforms.":"")+((u==null?void 0:u._vRefractionMicrosurfaceInfosName)??"")}
                , ${d?"uniforms.":""}vLightingIntensity
                #ifdef SS_LINKREFRACTIONTOTRANSPARENCY
                    , alpha
                #endif
                #ifdef ${(u==null?void 0:u._defineLODRefractionAlpha)??"IGNORE"}
                    , NdotVUnclamped
                #endif
                #ifdef ${(u==null?void 0:u._defineLinearSpecularRefraction)??"IGNORE"}
                    , roughness
                #endif
                , alphaG
                #ifdef ${(u==null?void 0:u._define3DName)??"IGNORE"}
                    , ${(u==null?void 0:u._cubeSamplerName)??""}
                    ${d?`, ${u==null?void 0:u._cubeSamplerName}Sampler`:""}
                #else
                    , ${(u==null?void 0:u._2DSamplerName)??""}
                    ${d?`, ${u==null?void 0:u._2DSamplerName}Sampler`:""}
                #endif
                #ifndef LODBASEDMICROSFURACE
                    #ifdef ${(u==null?void 0:u._define3DName)??"IGNORE"}
                        , ${(u==null?void 0:u._cubeSamplerName)??""}                        
                        ${d?`, ${u==null?void 0:u._cubeSamplerName}Sampler`:""}
                        , ${(u==null?void 0:u._cubeSamplerName)??""}                        
                        ${d?`, ${u==null?void 0:u._cubeSamplerName}Sampler`:""}
                    #else
                        , ${(u==null?void 0:u._2DSamplerName)??""}
                        ${d?`, ${u==null?void 0:u._2DSamplerName}Sampler`:""}
                        , ${(u==null?void 0:u._2DSamplerName)??""}
                        ${d?`, ${u==null?void 0:u._2DSamplerName}Sampler`:""}
                    #endif
                #endif
                #ifdef ANISOTROPIC
                    , anisotropicOut
                #endif
                #ifdef REALTIME_FILTERING
                    , ${(u==null?void 0:u._vRefractionFilteringInfoName)??""}
                #endif
                #ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC
                    , vRefractionPosition
                    , vRefractionSize
                #endif
                #ifdef SS_DISPERSION
                    , dispersion
                #endif
            #endif
            #ifdef SS_TRANSLUCENCY
                , ${c}
                , vTintColor
                #ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
                    , vec4${e.fSuffix}(0.)
                #endif
            #endif                
            );

            #ifdef SS_REFRACTION
                surfaceAlbedo = subSurfaceOut.surfaceAlbedo;
                #ifdef SS_LINKREFRACTIONTOTRANSPARENCY
                    alpha = subSurfaceOut.alpha;
                #endif
            #endif
        #else
            subSurfaceOut.specularEnvironmentReflectance = specularEnvironmentReflectance;
        #endif
`,r}_buildBlock(e){return e.target===Te.Fragment&&e.sharedData.blocksWithDefines.push(this),this}}ve("BABYLON.SubSurfaceBlock",SO);const iWe={ambientClr:["finalAmbient",""],diffuseDir:["finalDiffuse",""],specularDir:["finalSpecularScaled","!defined(UNLIT) && defined(SPECULARTERM)"],clearcoatDir:["finalClearCoatScaled","!defined(UNLIT) && defined(CLEARCOAT)"],sheenDir:["finalSheenScaled","!defined(UNLIT) && defined(SHEEN)"],diffuseInd:["finalIrradiance","!defined(UNLIT) && defined(REFLECTION)"],specularInd:["finalRadianceScaled","!defined(UNLIT) && defined(REFLECTION)"],clearcoatInd:["clearcoatOut.finalClearCoatRadianceScaled","!defined(UNLIT) && defined(REFLECTION) && defined(CLEARCOAT)"],sheenInd:["sheenOut.finalSheenRadianceScaled","!defined(UNLIT) && defined(REFLECTION) && defined(SHEEN) && defined(ENVIRONMENTBRDF)"],refraction:["subSurfaceOut.finalRefraction","!defined(UNLIT) && defined(SS_REFRACTION)"],lighting:["finalColor.rgb",""],shadow:["aggShadow",""],alpha:["alpha",""]};class rc extends Di{static _OnGenerateOnlyFragmentCodeChanged(e,t){const i=e;return i.worldPosition.isConnected||i.worldNormal.isConnected?(i.generateOnlyFragmentCode=!i.generateOnlyFragmentCode,de.Error("The worldPosition and worldNormal inputs must not be connected to be able to switch!"),!1):(i._setTarget(),!0)}_setTarget(){this._setInitialTarget(this.generateOnlyFragmentCode?Te.Fragment:Te.VertexAndFragment),this.getInputByName("worldPosition").target=this.generateOnlyFragmentCode?Te.Fragment:Te.Vertex,this.getInputByName("worldNormal").target=this.generateOnlyFragmentCode?Te.Fragment:Te.Vertex}constructor(e){super(e,Te.VertexAndFragment),this._environmentBRDFTexture=null,this._metallicReflectanceColor=Pe.White(),this._metallicF0Factor=1,this.directIntensity=1,this.environmentIntensity=1,this.specularIntensity=1,this.lightFalloff=0,this.useAlphaTest=!1,this.alphaTestCutoff=.5,this.useAlphaBlending=!1,this.useRadianceOverAlpha=!0,this.useSpecularOverAlpha=!0,this.enableSpecularAntiAliasing=!1,this.realTimeFiltering=!1,this.realTimeFilteringQuality=8,this.useEnergyConservation=!0,this.useRadianceOcclusion=!0,this.useHorizonOcclusion=!0,this.unlit=!1,this.forceNormalForward=!1,this.generateOnlyFragmentCode=!1,this.debugMode=0,this.debugLimit=0,this.debugFactor=1,this._isUnique=!0,this.registerInput("worldPosition",$.Vector4,!1,Te.Vertex),this.registerInput("worldNormal",$.Vector4,!1,Te.Vertex),this.registerInput("view",$.Matrix,!1),this.registerInput("cameraPosition",$.Vector3,!1,Te.Fragment),this.registerInput("perturbedNormal",$.Vector4,!0,Te.Fragment),this.registerInput("baseColor",$.Color3,!0,Te.Fragment),this.registerInput("metallic",$.Float,!1,Te.Fragment),this.registerInput("roughness",$.Float,!1,Te.Fragment),this.registerInput("ambientOcc",$.Float,!0,Te.Fragment),this.registerInput("opacity",$.Float,!0,Te.Fragment),this.registerInput("indexOfRefraction",$.Float,!0,Te.Fragment),this.registerInput("ambientColor",$.Color3,!0,Te.Fragment),this.registerInput("reflection",$.Object,!0,Te.Fragment,new Vn("reflection",this,0,FL,"ReflectionBlock")),this.registerInput("clearcoat",$.Object,!0,Te.Fragment,new Vn("clearcoat",this,0,f9,"ClearCoatBlock")),this.registerInput("sheen",$.Object,!0,Te.Fragment,new Vn("sheen",this,0,zL,"SheenBlock")),this.registerInput("subsurface",$.Object,!0,Te.Fragment,new Vn("subsurface",this,0,SO,"SubSurfaceBlock")),this.registerInput("anisotropy",$.Object,!0,Te.Fragment,new Vn("anisotropy",this,0,$B,"AnisotropyBlock")),this.registerInput("iridescence",$.Object,!0,Te.Fragment,new Vn("iridescence",this,0,bO,"IridescenceBlock")),this.registerOutput("ambientClr",$.Color3,Te.Fragment),this.registerOutput("diffuseDir",$.Color3,Te.Fragment),this.registerOutput("specularDir",$.Color3,Te.Fragment),this.registerOutput("clearcoatDir",$.Color3,Te.Fragment),this.registerOutput("sheenDir",$.Color3,Te.Fragment),this.registerOutput("diffuseInd",$.Color3,Te.Fragment),this.registerOutput("specularInd",$.Color3,Te.Fragment),this.registerOutput("clearcoatInd",$.Color3,Te.Fragment),this.registerOutput("sheenInd",$.Color3,Te.Fragment),this.registerOutput("refraction",$.Color3,Te.Fragment),this.registerOutput("lighting",$.Color3,Te.Fragment),this.registerOutput("shadow",$.Float,Te.Fragment),this.registerOutput("alpha",$.Float,Te.Fragment)}initialize(e){e._excludeVariableName("vLightingIntensity"),e._excludeVariableName("geometricNormalW"),e._excludeVariableName("normalW"),e._excludeVariableName("faceNormal"),e._excludeVariableName("albedoOpacityOut"),e._excludeVariableName("surfaceAlbedo"),e._excludeVariableName("alpha"),e._excludeVariableName("aoOut"),e._excludeVariableName("baseColor"),e._excludeVariableName("reflectivityOut"),e._excludeVariableName("microSurface"),e._excludeVariableName("roughness"),e._excludeVariableName("NdotVUnclamped"),e._excludeVariableName("NdotV"),e._excludeVariableName("alphaG"),e._excludeVariableName("AARoughnessFactors"),e._excludeVariableName("environmentBrdf"),e._excludeVariableName("ambientMonochrome"),e._excludeVariableName("seo"),e._excludeVariableName("eho"),e._excludeVariableName("environmentRadiance"),e._excludeVariableName("irradianceVector"),e._excludeVariableName("environmentIrradiance"),e._excludeVariableName("diffuseBase"),e._excludeVariableName("specularBase"),e._excludeVariableName("preInfo"),e._excludeVariableName("info"),e._excludeVariableName("shadow"),e._excludeVariableName("finalDiffuse"),e._excludeVariableName("finalAmbient"),e._excludeVariableName("ambientOcclusionForDirectDiffuse"),e._excludeVariableName("finalColor"),e._excludeVariableName("vClipSpacePosition"),e._excludeVariableName("vDebugMode"),this._initShaderSourceAsync(e.shaderLanguage)}async _initShaderSourceAsync(e){this._codeIsReady=!1,e===1?await Promise.all([Promise.resolve().then(()=>C6e),Promise.resolve().then(()=>m_e)]):await Promise.all([Promise.resolve().then(()=>O_e),Promise.resolve().then(()=>I8e)]),this._codeIsReady=!0,this.onCodeIsReadyObservable.notifyObservers(this)}getClassName(){return"PBRMetallicRoughnessBlock"}get worldPosition(){return this._inputs[0]}get worldNormal(){return this._inputs[1]}get view(){return this._inputs[2]}get cameraPosition(){return this._inputs[3]}get perturbedNormal(){return this._inputs[4]}get baseColor(){return this._inputs[5]}get metallic(){return this._inputs[6]}get roughness(){return this._inputs[7]}get ambientOcc(){return this._inputs[8]}get opacity(){return this._inputs[9]}get indexOfRefraction(){return this._inputs[10]}get ambientColor(){return this._inputs[11]}get reflection(){return this._inputs[12]}get clearcoat(){return this._inputs[13]}get sheen(){return this._inputs[14]}get subsurface(){return this._inputs[15]}get anisotropy(){return this._inputs[16]}get iridescence(){return this._inputs[17]}get ambientClr(){return this._outputs[0]}get diffuseDir(){return this._outputs[1]}get specularDir(){return this._outputs[2]}get clearcoatDir(){return this._outputs[3]}get sheenDir(){return this._outputs[4]}get diffuseInd(){return this._outputs[5]}get specularInd(){return this._outputs[6]}get clearcoatInd(){return this._outputs[7]}get sheenInd(){return this._outputs[8]}get refraction(){return this._outputs[9]}get lighting(){return this._outputs[10]}get shadow(){return this._outputs[11]}get alpha(){return this._outputs[12]}autoConfigure(e,t=()=>!0){if(!this.cameraPosition.isConnected){let i=e.getInputBlockByPredicate(s=>s.systemValue===Ds.CameraPosition&&t(s));i||(i=new ys("cameraPosition"),i.setAsSystemValue(Ds.CameraPosition)),i.output.connectTo(this.cameraPosition)}if(!this.view.isConnected){let i=e.getInputBlockByPredicate(s=>s.systemValue===Ds.View&&t(s));i||(i=new ys("view"),i.setAsSystemValue(Ds.View)),i.output.connectTo(this.view)}}prepareDefines(e,t,i){i.setValue("PBR",!0),i.setValue("METALLICWORKFLOW",!0),i.setValue("DEBUGMODE",this.debugMode,!0),i.setValue("DEBUGMODE_FORCERETURN",!0),i.setValue("NORMALXYSCALE",!0),i.setValue("BUMP",this.perturbedNormal.isConnected,!0),i.setValue("LODBASEDMICROSFURACE",this._scene.getEngine().getCaps().textureLOD),i.setValue("ALBEDO",!1,!0),i.setValue("OPACITY",this.opacity.isConnected,!0),i.setValue("AMBIENT",!0,!0),i.setValue("AMBIENTINGRAYSCALE",!1,!0),i.setValue("REFLECTIVITY",!1,!0),i.setValue("AOSTOREINMETALMAPRED",!1,!0),i.setValue("METALLNESSSTOREINMETALMAPBLUE",!1,!0),i.setValue("ROUGHNESSSTOREINMETALMAPALPHA",!1,!0),i.setValue("ROUGHNESSSTOREINMETALMAPGREEN",!1,!0),this.lightFalloff===Bs.LIGHTFALLOFF_STANDARD?(i.setValue("USEPHYSICALLIGHTFALLOFF",!1),i.setValue("USEGLTFLIGHTFALLOFF",!1)):this.lightFalloff===Bs.LIGHTFALLOFF_GLTF?(i.setValue("USEPHYSICALLIGHTFALLOFF",!1),i.setValue("USEGLTFLIGHTFALLOFF",!0)):(i.setValue("USEPHYSICALLIGHTFALLOFF",!0),i.setValue("USEGLTFLIGHTFALLOFF",!1));const s=this.alphaTestCutoff.toString();i.setValue("ALPHABLEND",this.useAlphaBlending,!0),i.setValue("ALPHAFROMALBEDO",!1,!0),i.setValue("ALPHATEST",this.useAlphaTest,!0),i.setValue("ALPHATESTVALUE",s.indexOf(".")<0?s+".":s,!0),i.setValue("OPACITYRGB",!1,!0),i.setValue("RADIANCEOVERALPHA",this.useRadianceOverAlpha,!0),i.setValue("SPECULAROVERALPHA",this.useSpecularOverAlpha,!0),i.setValue("SPECULARAA",this._scene.getEngine().getCaps().standardDerivatives&&this.enableSpecularAntiAliasing,!0),i.setValue("REALTIME_FILTERING",this.realTimeFiltering,!0);const r=e.getScene();if(r.getEngine()._features.needTypeSuffixInShaderConstants?i.setValue("NUM_SAMPLES",this.realTimeFilteringQuality+"u",!0):i.setValue("NUM_SAMPLES",""+this.realTimeFilteringQuality,!0),i.setValue("BRDF_V_HEIGHT_CORRELATED",!0),i.setValue("MS_BRDF_ENERGY_CONSERVATION",this.useEnergyConservation,!0),i.setValue("RADIANCEOCCLUSION",this.useRadianceOcclusion,!0),i.setValue("HORIZONOCCLUSION",this.useHorizonOcclusion,!0),i.setValue("UNLIT",this.unlit,!0),i.setValue("FORCENORMALFORWARD",this.forceNormalForward,!0),this._environmentBRDFTexture&&Pt.ReflectionTextureEnabled?(i.setValue("ENVIRONMENTBRDF",!0),i.setValue("ENVIRONMENTBRDF_RGBD",this._environmentBRDFTexture.isRGBD,!0)):(i.setValue("ENVIRONMENTBRDF",!1),i.setValue("ENVIRONMENTBRDF_RGBD",!1)),i._areImageProcessingDirty&&t.imageProcessingConfiguration&&t.imageProcessingConfiguration.prepareDefines(i),!!i._areLightsDirty)if(!this.light)Jd(r,e,i,!0,t.maxSimultaneousLights),i._needNormals=!0,xP(r,i);else{const o={needNormals:!1,needRebuild:!1,lightmapMode:!1,shadowEnabled:!1,specularEnabled:!1};Mw(r,e,this.light,this._lightId,i,!0,o),o.needRebuild&&i.rebuild()}}updateUniformsAndSamples(e,t,i,s){for(let r=0;r<t.maxSimultaneousLights&&i["LIGHT"+r];r++){const n=e.uniforms.indexOf("vLightData"+r)>=0;Tw(r,e.uniforms,e.samplers,i["PROJECTEDLIGHTTEXTURE"+r],s,n,i["IESLIGHTTEXTURE"+r])}}isReady(e,t,i){return!(this._environmentBRDFTexture&&!this._environmentBRDFTexture.isReady()||i._areImageProcessingDirty&&t.imageProcessingConfiguration&&!t.imageProcessingConfiguration.isReady())}bind(e,t,i){var f;if(!i)return;const s=i.getScene();this.light?yw(this.light,this._lightId,s,e,!0):Qd(s,i,e,!0,t.maxSimultaneousLights),e.setTexture(this._environmentBrdfSamplerName,this._environmentBRDFTexture),e.setFloat2("vDebugMode",this.debugLimit,this.debugFactor);const r=this._scene.ambientColor;r&&e.setColor3("ambientFromScene",r);const n=s.useRightHandedSystem===(s._mirroredCameraPosition!=null);e.setFloat(this._invertNormalName,n?-1:1),e.setFloat4("vLightingIntensity",this.directIntensity,1,this.environmentIntensity*this._scene.environmentIntensity,this.specularIntensity);const o=1,l=((f=this.indexOfRefraction.connectInputBlock)==null?void 0:f.value)??1.5,c=Math.pow((l-o)/(l+o),2);this._metallicReflectanceColor.scaleToRef(c*this._metallicF0Factor,Sr.Color3[0]);const u=this._metallicF0Factor;e.setColor4(this._vMetallicReflectanceFactorsName,Sr.Color3[0],u),t.imageProcessingConfiguration&&t.imageProcessingConfiguration.bind(e)}_injectVertexCode(e){var c;const t=this.worldPosition,i=this.worldNormal,s=`//${this.name}`,r=e.shaderLanguage===1;this.light?(this._lightId=(e.counters.lightCounter!==void 0?e.counters.lightCounter:-1)+1,e.counters.lightCounter=this._lightId,e._emitFunctionFromInclude(e.supportUniformBuffers?"lightVxUboDeclaration":"lightVxFragmentDeclaration",s,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]},this._lightId.toString())):(e._emitFunctionFromInclude(e.supportUniformBuffers?"lightVxUboDeclaration":"lightVxFragmentDeclaration",s,{repeatKey:"maxSimultaneousLights"}),this._lightId=0,e.sharedData.dynamicUniformBlocks.push(this));const n="v_"+t.associatedVariableName;e._emitVaryingFromString(n,$.Vector4)&&(e.compilationString+=(r?"vertexOutputs.":"")+`${n} = ${t.associatedVariableName};
`);const o="v_"+i.associatedVariableName;e._emitVaryingFromString(o,$.Vector4)&&(e.compilationString+=(r?"vertexOutputs.":"")+`${o} = ${i.associatedVariableName};
`);const l=this.reflection.isConnected?(c=this.reflection.connectedPoint)==null?void 0:c.ownerBlock:null;l&&(l.viewConnectionPoint=this.view),e.compilationString+=(l==null?void 0:l.handleVertexSide(e))??"",e._emitVaryingFromString("vClipSpacePosition",$.Vector4,"defined(IGNORE) || DEBUGMODE > 0")&&(e._injectAtEnd+=`#if DEBUGMODE > 0
`,e._injectAtEnd+=(r?"vertexOutputs.":"")+`vClipSpacePosition = ${r?"vertexOutputs.position":"gl_Position"};
`,e._injectAtEnd+=`#endif
`),this.light?e.compilationString+=e._emitCodeFromInclude("shadowsVertex",s,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()},{search:/worldPos/g,replace:t.associatedVariableName}]}):(e.compilationString+=`${e._declareLocalVar("worldPos",$.Vector4)} = ${t.associatedVariableName};
`,this.view.isConnected&&(e.compilationString+=`${e._declareLocalVar("view",$.Matrix)} = ${this.view.associatedVariableName};
`),e.compilationString+=e._emitCodeFromInclude("shadowsVertex",s,{repeatKey:"maxSimultaneousLights"}))}_getAlbedoOpacityCode(e){let i=e.shaderLanguage===1?`var albedoOpacityOut: albedoOpacityOutParams;
`:`albedoOpacityOutParams albedoOpacityOut;
`;const s=this.baseColor.isConnected?this.baseColor.associatedVariableName:"vec3(1.)",r=this.opacity.isConnected?this.opacity.associatedVariableName:"1.";return i+=`albedoOpacityOut = albedoOpacityBlock(
                vec4${e.fSuffix}(${s}, 1.)
            #ifdef ALBEDO
                ,vec4${e.fSuffix}(1.)
                ,vec2${e.fSuffix}(1., 1.)
            #endif
                ,1. /* Base Weight */
            #ifdef OPACITY
                ,vec4${e.fSuffix}(${r})
                ,vec2${e.fSuffix}(1., 1.)
            #endif
            );

            ${e._declareLocalVar("surfaceAlbedo",$.Vector3)} = albedoOpacityOut.surfaceAlbedo;
            ${e._declareLocalVar("alpha",$.Float)} = albedoOpacityOut.alpha;
`,i}_getAmbientOcclusionCode(e){let i=e.shaderLanguage===1?`var aoOut: ambientOcclusionOutParams;
`:`ambientOcclusionOutParams aoOut;
`;const s=this.ambientOcc.isConnected?this.ambientOcc.associatedVariableName:"1.";return i+=`aoOut = ambientOcclusionBlock(
            #ifdef AMBIENT
                vec3${e.fSuffix}(${s}),
                vec4${e.fSuffix}(0., 1.0, 1.0, 0.)
            #endif
            );
`,i}_getReflectivityCode(e){const t=e.shaderLanguage===1;let i=t?`var reflectivityOut: reflectivityOutParams;
`:`reflectivityOutParams reflectivityOut;
`;const s="1.";return this._vMetallicReflectanceFactorsName=e._getFreeVariableName("vMetallicReflectanceFactors"),e._emitUniformFromString(this._vMetallicReflectanceFactorsName,$.Vector4),i+=`${e._declareLocalVar("baseColor",$.Vector3)} = surfaceAlbedo;

            reflectivityOut = reflectivityBlock(
                vec4${e.fSuffix}(${this.metallic.associatedVariableName}, ${this.roughness.associatedVariableName}, 0., 0.)
            #ifdef METALLICWORKFLOW
                , surfaceAlbedo
                , ${(t?"uniforms.":"")+this._vMetallicReflectanceFactorsName}
            #endif
            #ifdef REFLECTIVITY
                , vec3${e.fSuffix}(0., 0., ${s})
                , vec4${e.fSuffix}(1.)
            #endif
            #if defined(METALLICWORKFLOW) && defined(REFLECTIVITY)  && defined(AOSTOREINMETALMAPRED)
                , aoOut.ambientOcclusionColor
            #endif
            #ifdef MICROSURFACEMAP
                , microSurfaceTexel <== not handled!
            #endif
            );

            ${e._declareLocalVar("microSurface",$.Float)} = reflectivityOut.microSurface;
            ${e._declareLocalVar("roughness",$.Float)} = reflectivityOut.roughness;

            #ifdef METALLICWORKFLOW
                surfaceAlbedo = reflectivityOut.surfaceAlbedo;
            #endif
            #if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)
                aoOut.ambientOcclusionColor = reflectivityOut.ambientOcclusionColor;
            #endif
`,i}_buildBlock(e){var M,T,O,R,I,N,w,D,k,Y,V;super._buildBlock(e),this._scene=e.sharedData.scene;const t=e.shaderLanguage===1;this._environmentBRDFTexture||(this._environmentBRDFTexture=zw(this._scene));const i=this.reflection.isConnected?(M=this.reflection.connectedPoint)==null?void 0:M.ownerBlock:null;if(i&&(i.worldPositionConnectionPoint=this.worldPosition,i.cameraPositionConnectionPoint=this.cameraPosition,i.worldNormalConnectionPoint=this.worldNormal,i.viewConnectionPoint=this.view),e.target!==Te.Fragment)return this._injectVertexCode(e),this;e.sharedData.forcedBindableBlocks.push(this),e.sharedData.blocksWithDefines.push(this),e.sharedData.blockingBlocks.push(this),this.generateOnlyFragmentCode&&e.sharedData.dynamicUniformBlocks.push(this);const s=`//${this.name}`,r=this.perturbedNormal;let n=this.worldPosition.associatedVariableName,o=this.worldNormal.associatedVariableName;this.generateOnlyFragmentCode?(n=e._getFreeVariableName("globalWorldPos"),e._emitFunction("pbr_globalworldpos",t?`var<private> ${n}:vec3${e.fSuffix};
`:`vec3${e.fSuffix} ${n};
`,s),e.compilationString+=`${n} = ${this.worldPosition.associatedVariableName}.xyz;
`,o=e._getFreeVariableName("globalWorldNormal"),e._emitFunction("pbr_globalworldnorm",t?`var<private> ${o}:vec4${e.fSuffix};
`:`vec4${e.fSuffix} ${o};
`,s),e.compilationString+=`${o} = ${this.worldNormal.associatedVariableName};
`,e.compilationString+=e._emitCodeFromInclude("shadowsVertex",s,{repeatKey:"maxSimultaneousLights",substitutionVars:this.generateOnlyFragmentCode?`worldPos,${this.worldPosition.associatedVariableName}`:void 0}),e.compilationString+=`#if DEBUGMODE > 0
`,e.compilationString+=`${e._declareLocalVar("vClipSpacePosition",$.Vector4)} = vec4${e.fSuffix}((vec2${e.fSuffix}(${t?"fragmentInputs.position":"gl_FragCoord.xy"}) / vec2${e.fSuffix}(1.0)) * 2.0 - 1.0, 0.0, 1.0);
`,e.compilationString+=`#endif
`):(n=(t?"input.":"")+"v_"+n,o=(t?"input.":"")+"v_"+o),this._environmentBrdfSamplerName=e._getFreeVariableName("environmentBrdfSampler"),e._emit2DSampler(this._environmentBrdfSamplerName),e.sharedData.hints.needAlphaBlending=e.sharedData.hints.needAlphaBlending||this.useAlphaBlending,e.sharedData.hints.needAlphaTesting=e.sharedData.hints.needAlphaTesting||this.useAlphaTest,e._emitExtension("lod","#extension GL_EXT_shader_texture_lod : enable","defined(LODBASEDMICROSFURACE)"),e._emitExtension("derivatives","#extension GL_OES_standard_derivatives : enable"),e._emitUniformFromString("vDebugMode",$.Vector2,"defined(IGNORE) || DEBUGMODE > 0"),e._emitUniformFromString("ambientFromScene",$.Vector3),e.uniforms.push("exposureLinear"),e.uniforms.push("contrast"),e.uniforms.push("vInverseScreenSize"),e.uniforms.push("vignetteSettings1"),e.uniforms.push("vignetteSettings2"),e.uniforms.push("vCameraColorCurveNegative"),e.uniforms.push("vCameraColorCurveNeutral"),e.uniforms.push("vCameraColorCurvePositive"),e.uniforms.push("txColorTransform"),e.uniforms.push("colorTransformSettings"),e.uniforms.push("ditherIntensity"),this.light?e._emitFunctionFromInclude(e.supportUniformBuffers?"lightUboDeclaration":"lightFragmentDeclaration",s,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]},this._lightId.toString()):e._emitFunctionFromInclude(e.supportUniformBuffers?"lightUboDeclaration":"lightFragmentDeclaration",s,{repeatKey:"maxSimultaneousLights",substitutionVars:this.generateOnlyFragmentCode?"varying,":void 0}),e._emitFunctionFromInclude("helperFunctions",s),e._emitFunctionFromInclude("importanceSampling",s),e._emitFunctionFromInclude("pbrHelperFunctions",s),e._emitFunctionFromInclude("imageProcessingDeclaration",s),e._emitFunctionFromInclude("imageProcessingFunctions",s),e._emitFunctionFromInclude("shadowsFragmentFunctions",s),e._emitFunctionFromInclude("pbrDirectLightingSetupFunctions",s),e._emitFunctionFromInclude("pbrDirectLightingFalloffFunctions",s),e._emitFunctionFromInclude("pbrBRDFFunctions",s,{replaceStrings:[{search:/REFLECTIONMAP_SKYBOX/g,replace:(i==null?void 0:i._defineSkyboxName)??"REFLECTIONMAP_SKYBOX"}]}),e._emitFunctionFromInclude("hdrFilteringFunctions",s),e._emitFunctionFromInclude("pbrDirectLightingFunctions",s),e._emitFunctionFromInclude("pbrIBLFunctions",s),e._emitFunctionFromInclude("pbrBlockAlbedoOpacity",s),e._emitFunctionFromInclude("pbrBlockReflectivity",s),e._emitFunctionFromInclude("pbrBlockAmbientOcclusion",s),e._emitFunctionFromInclude("pbrBlockAlphaFresnel",s),e._emitFunctionFromInclude("pbrBlockAnisotropic",s),e._emitUniformFromString("vLightingIntensity",$.Vector4),i!=null&&i.generateOnlyFragmentCode&&(e.compilationString+=i.handleVertexSide(e)),this._vNormalWName=e._getFreeVariableName("vNormalW"),e.compilationString+=`${e._declareLocalVar(this._vNormalWName,$.Vector4)} = normalize(${o});
`,e._registerTempVariable("viewDirectionW")&&(e.compilationString+=`${e._declareLocalVar("viewDirectionW",$.Vector3)} = normalize(${this.cameraPosition.associatedVariableName} - ${n}.xyz);
`),e.compilationString+=`${e._declareLocalVar("geometricNormalW",$.Vector3)} = ${this._vNormalWName}.xyz;
`,e.compilationString+=`${e._declareLocalVar("normalW",$.Vector3)} = ${r.isConnected?"normalize("+r.associatedVariableName+".xyz)":"geometricNormalW"};
`,this._invertNormalName=e._getFreeVariableName("invertNormal"),e._emitUniformFromString(this._invertNormalName,$.Float),e.compilationString+=e._emitCodeFromInclude("pbrBlockNormalFinal",s,{replaceStrings:[{search:/vPositionW/g,replace:n+".xyz"},{search:/vEyePosition.w/g,replace:this._invertNormalName}]}),e.compilationString+=this._getAlbedoOpacityCode(e),e.compilationString+=e._emitCodeFromInclude("depthPrePass",s),e.compilationString+=this._getAmbientOcclusionCode(e),e.compilationString+=e._emitCodeFromInclude("pbrBlockLightmapInit",s),e.compilationString+=`#ifdef UNLIT
                ${e._declareLocalVar("diffuseBase",$.Vector3)} = vec3${e.fSuffix}(1., 1., 1.);
            #else
`,e.compilationString+=this._getReflectivityCode(e),e.compilationString+=e._emitCodeFromInclude("pbrBlockGeometryInfo",s,{replaceStrings:[{search:/REFLECTIONMAP_SKYBOX/g,replace:(i==null?void 0:i._defineSkyboxName)??"REFLECTIONMAP_SKYBOX"},{search:/REFLECTIONMAP_3D/g,replace:(i==null?void 0:i._define3DName)??"REFLECTIONMAP_3D"}]});const l=this.anisotropy.isConnected?(T=this.anisotropy.connectedPoint)==null?void 0:T.ownerBlock:null;l&&(l.worldPositionConnectionPoint=this.worldPosition,l.worldNormalConnectionPoint=this.worldNormal,e.compilationString+=l.getCode(e,!this.perturbedNormal.isConnected)),i&&i.hasTexture&&(e.compilationString+=i.getCode(e,l?"anisotropicOut.anisotropicNormal":"normalW")),e._emitFunctionFromInclude("pbrBlockReflection",s,{replaceStrings:[{search:/computeReflectionCoords/g,replace:"computeReflectionCoordsPBR"},{search:/REFLECTIONMAP_3D/g,replace:(i==null?void 0:i._define3DName)??"REFLECTIONMAP_3D"},{search:/REFLECTIONMAP_OPPOSITEZ/g,replace:(i==null?void 0:i._defineOppositeZ)??"REFLECTIONMAP_OPPOSITEZ"},{search:/REFLECTIONMAP_PROJECTION/g,replace:(i==null?void 0:i._defineProjectionName)??"REFLECTIONMAP_PROJECTION"},{search:/REFLECTIONMAP_SKYBOX/g,replace:(i==null?void 0:i._defineSkyboxName)??"REFLECTIONMAP_SKYBOX"},{search:/LODINREFLECTIONALPHA/g,replace:(i==null?void 0:i._defineLODReflectionAlpha)??"LODINREFLECTIONALPHA"},{search:/LINEARSPECULARREFLECTION/g,replace:(i==null?void 0:i._defineLinearSpecularReflection)??"LINEARSPECULARREFLECTION"},{search:/vReflectionFilteringInfo/g,replace:(i==null?void 0:i._vReflectionFilteringInfoName)??"vReflectionFilteringInfo"}]}),e.compilationString+=e._emitCodeFromInclude("pbrBlockReflectance0",s,{replaceStrings:[{search:/metallicReflectanceFactors/g,replace:(t?"uniforms.":"")+this._vMetallicReflectanceFactorsName}]});const c=this.sheen.isConnected?(O=this.sheen.connectedPoint)==null?void 0:O.ownerBlock:null;c&&(e.compilationString+=c.getCode(i,e)),e._emitFunctionFromInclude("pbrBlockSheen",s,{replaceStrings:[{search:/REFLECTIONMAP_3D/g,replace:(i==null?void 0:i._define3DName)??"REFLECTIONMAP_3D"},{search:/REFLECTIONMAP_SKYBOX/g,replace:(i==null?void 0:i._defineSkyboxName)??"REFLECTIONMAP_SKYBOX"},{search:/LODINREFLECTIONALPHA/g,replace:(i==null?void 0:i._defineLODReflectionAlpha)??"LODINREFLECTIONALPHA"},{search:/LINEARSPECULARREFLECTION/g,replace:(i==null?void 0:i._defineLinearSpecularReflection)??"LINEARSPECULARREFLECTION"}]});const u=this.clearcoat.isConnected?(R=this.clearcoat.connectedPoint)==null?void 0:R.ownerBlock:null;e.compilationString+=f9._GetInitializationCode(e,u);const f=this.iridescence.isConnected?(I=this.iridescence.connectedPoint)==null?void 0:I.ownerBlock:null;e.compilationString+=bO.GetCode(f,e),e._emitFunctionFromInclude("pbrBlockIridescence",s,{replaceStrings:[]});const p=!this.perturbedNormal.isConnected&&!this.anisotropy.isConnected,m=this.perturbedNormal.isConnected&&((w=((N=this.perturbedNormal.connectedPoint)==null?void 0:N.ownerBlock).worldTangent)==null?void 0:w.isConnected),_=this.anisotropy.isConnected&&((D=this.anisotropy.connectedPoint)==null?void 0:D.ownerBlock).worldTangent.isConnected;let d=m||!this.perturbedNormal.isConnected&&_;e.compilationString+=f9.GetCode(e,u,i,n,p,d,o),p&&(d=(u==null?void 0:u.worldTangent.isConnected)??!1),e._emitFunctionFromInclude("pbrBlockClearcoat",s,{replaceStrings:[{search:/computeReflectionCoords/g,replace:"computeReflectionCoordsPBR"},{search:/REFLECTIONMAP_3D/g,replace:(i==null?void 0:i._define3DName)??"REFLECTIONMAP_3D"},{search:/REFLECTIONMAP_OPPOSITEZ/g,replace:(i==null?void 0:i._defineOppositeZ)??"REFLECTIONMAP_OPPOSITEZ"},{search:/REFLECTIONMAP_PROJECTION/g,replace:(i==null?void 0:i._defineProjectionName)??"REFLECTIONMAP_PROJECTION"},{search:/REFLECTIONMAP_SKYBOX/g,replace:(i==null?void 0:i._defineSkyboxName)??"REFLECTIONMAP_SKYBOX"},{search:/LODINREFLECTIONALPHA/g,replace:(i==null?void 0:i._defineLODReflectionAlpha)??"LODINREFLECTIONALPHA"},{search:/LINEARSPECULARREFLECTION/g,replace:(i==null?void 0:i._defineLinearSpecularReflection)??"LINEARSPECULARREFLECTION"},{search:/defined\(TANGENT\)/g,replace:d?"defined(TANGENT)":"defined(IGNORE)"}]}),e.compilationString+=e._emitCodeFromInclude("pbrBlockReflectance",s,{replaceStrings:[{search:/REFLECTIONMAP_SKYBOX/g,replace:(i==null?void 0:i._defineSkyboxName)??"REFLECTIONMAP_SKYBOX"},{search:/REFLECTIONMAP_3D/g,replace:(i==null?void 0:i._define3DName)??"REFLECTIONMAP_3D"}]});const h=this.subsurface.isConnected?(k=this.subsurface.connectedPoint)==null?void 0:k.ownerBlock:null,x=this.subsurface.isConnected?(V=((Y=this.subsurface.connectedPoint)==null?void 0:Y.ownerBlock).refraction.connectedPoint)==null?void 0:V.ownerBlock:null;x&&(x.viewConnectionPoint=this.view,x.indexOfRefractionConnectionPoint=this.indexOfRefraction),e.compilationString+=SO.GetCode(e,h,i,n),e._emitFunctionFromInclude("pbrBlockSubSurface",s,{replaceStrings:[{search:/REFLECTIONMAP_3D/g,replace:(i==null?void 0:i._define3DName)??"REFLECTIONMAP_3D"},{search:/REFLECTIONMAP_OPPOSITEZ/g,replace:(i==null?void 0:i._defineOppositeZ)??"REFLECTIONMAP_OPPOSITEZ"},{search:/REFLECTIONMAP_PROJECTION/g,replace:(i==null?void 0:i._defineProjectionName)??"REFLECTIONMAP_PROJECTION"},{search:/SS_REFRACTIONMAP_3D/g,replace:(x==null?void 0:x._define3DName)??"SS_REFRACTIONMAP_3D"},{search:/SS_LODINREFRACTIONALPHA/g,replace:(x==null?void 0:x._defineLODRefractionAlpha)??"SS_LODINREFRACTIONALPHA"},{search:/SS_LINEARSPECULARREFRACTION/g,replace:(x==null?void 0:x._defineLinearSpecularRefraction)??"SS_LINEARSPECULARREFRACTION"},{search:/SS_REFRACTIONMAP_OPPOSITEZ/g,replace:(x==null?void 0:x._defineOppositeZ)??"SS_REFRACTIONMAP_OPPOSITEZ"}]}),e.compilationString+=e._emitCodeFromInclude("pbrBlockDirectLighting",s),this.light?e.compilationString+=e._emitCodeFromInclude("lightFragment",s,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()},{search:new RegExp(`${t?"fragmentInputs.":""}vPositionW`,"g"),replace:n+".xyz"}]}):e.compilationString+=e._emitCodeFromInclude("lightFragment",s,{repeatKey:"maxSimultaneousLights",substitutionVars:`${t?"fragmentInputs.":""}vPositionW,${n}.xyz`}),e.compilationString+=e._emitCodeFromInclude("pbrBlockFinalLitComponents",s),e.compilationString+=`#endif
`;const A=this.ambientColor.isConnected?this.ambientColor.associatedVariableName:`vec3${e.fSuffix}(0., 0., 0.)`;let S=Bs.DEFAULT_AO_ON_ANALYTICAL_LIGHTS.toString();S.indexOf(".")===-1&&(S+=".");let E=[{search:/vec3 finalEmissive[\s\S]*?finalEmissive\*=vLightingIntensity\.y;/g,replace:""},{search:new RegExp(`${t?"uniforms.":""}vAmbientColor`,"g"),replace:A+` * ${t?"uniforms.":""}ambientFromScene`},{search:new RegExp(`${t?"uniforms.":""}vAmbientInfos.w`,"g"),replace:S}];t&&(E[0]={search:/var finalEmissive[\s\S]*?finalEmissive\*=uniforms.vLightingIntensity\.y;/g,replace:""}),e.compilationString+=e._emitCodeFromInclude("pbrBlockFinalUnlitComponents",s,{replaceStrings:E}),e.compilationString+=e._emitCodeFromInclude("pbrBlockFinalColorComposition",s,{replaceStrings:[{search:/finalEmissive/g,replace:`vec3${e.fSuffix}(0.)`}]}),t?E=[{search:/mesh.visibility/g,replace:"1."}]:E=[{search:/visibility/g,replace:"1."}],e.compilationString+=e._emitCodeFromInclude("pbrBlockImageProcessing",s,{replaceStrings:E});const b=t?"fragmentOutputs.color":"gl_FragColor";E=[{search:new RegExp(`${t?"fragmentInputs.":""}vNormalW`,"g"),replace:this._vNormalWName},{search:new RegExp(`${t?"fragmentInputs.":""}vPositionW`,"g"),replace:n},{search:/albedoTexture\.rgb;/g,replace:`vec3${e.fSuffix}(1.);
${b}.rgb = toGammaSpace(${b}.rgb);
`}],e.compilationString+=e._emitCodeFromInclude("pbrDebug",s,{replaceStrings:E});for(const ee of this._outputs)if(ee.hasEndpoints){const K=iWe[ee.name];if(K){const[ie,ne]=K;ne&&(e.compilationString+=`#if ${ne}
`),e.compilationString+=`${e._declareOutput(ee)} = ${ie};
`,ne&&(e.compilationString+=`#else
`,e.compilationString+=`${e._declareOutput(ee)} = vec3${e.fSuffix}(0.);
`,e.compilationString+=`#endif
`)}else de.Error(`There's no remapping for the ${ee.name} end point! No code generated`)}return this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return e+=`${this._codeVariableName}.lightFalloff = ${this.lightFalloff};
`,e+=`${this._codeVariableName}.useAlphaTest = ${this.useAlphaTest};
`,e+=`${this._codeVariableName}.alphaTestCutoff = ${this.alphaTestCutoff};
`,e+=`${this._codeVariableName}.useAlphaBlending = ${this.useAlphaBlending};
`,e+=`${this._codeVariableName}.useRadianceOverAlpha = ${this.useRadianceOverAlpha};
`,e+=`${this._codeVariableName}.useSpecularOverAlpha = ${this.useSpecularOverAlpha};
`,e+=`${this._codeVariableName}.enableSpecularAntiAliasing = ${this.enableSpecularAntiAliasing};
`,e+=`${this._codeVariableName}.realTimeFiltering = ${this.realTimeFiltering};
`,e+=`${this._codeVariableName}.realTimeFilteringQuality = ${this.realTimeFilteringQuality};
`,e+=`${this._codeVariableName}.useEnergyConservation = ${this.useEnergyConservation};
`,e+=`${this._codeVariableName}.useRadianceOcclusion = ${this.useRadianceOcclusion};
`,e+=`${this._codeVariableName}.useHorizonOcclusion = ${this.useHorizonOcclusion};
`,e+=`${this._codeVariableName}.unlit = ${this.unlit};
`,e+=`${this._codeVariableName}.forceNormalForward = ${this.forceNormalForward};
`,e+=`${this._codeVariableName}.debugMode = ${this.debugMode};
`,e+=`${this._codeVariableName}.debugLimit = ${this.debugLimit};
`,e+=`${this._codeVariableName}.debugFactor = ${this.debugFactor};
`,e}serialize(){const e=super.serialize();return this.light&&(e.lightId=this.light.id),e.lightFalloff=this.lightFalloff,e.useAlphaTest=this.useAlphaTest,e.alphaTestCutoff=this.alphaTestCutoff,e.useAlphaBlending=this.useAlphaBlending,e.useRadianceOverAlpha=this.useRadianceOverAlpha,e.useSpecularOverAlpha=this.useSpecularOverAlpha,e.enableSpecularAntiAliasing=this.enableSpecularAntiAliasing,e.realTimeFiltering=this.realTimeFiltering,e.realTimeFilteringQuality=this.realTimeFilteringQuality,e.useEnergyConservation=this.useEnergyConservation,e.useRadianceOcclusion=this.useRadianceOcclusion,e.useHorizonOcclusion=this.useHorizonOcclusion,e.unlit=this.unlit,e.forceNormalForward=this.forceNormalForward,e.debugMode=this.debugMode,e.debugLimit=this.debugLimit,e.debugFactor=this.debugFactor,e.generateOnlyFragmentCode=this.generateOnlyFragmentCode,e}_deserialize(e,t,i){super._deserialize(e,t,i),e.lightId&&(this.light=t.getLightById(e.lightId)),this.lightFalloff=e.lightFalloff??0,this.useAlphaTest=e.useAlphaTest,this.alphaTestCutoff=e.alphaTestCutoff,this.useAlphaBlending=e.useAlphaBlending,this.useRadianceOverAlpha=e.useRadianceOverAlpha,this.useSpecularOverAlpha=e.useSpecularOverAlpha,this.enableSpecularAntiAliasing=e.enableSpecularAntiAliasing,this.realTimeFiltering=!!e.realTimeFiltering,this.realTimeFilteringQuality=e.realTimeFilteringQuality??8,this.useEnergyConservation=e.useEnergyConservation,this.useRadianceOcclusion=e.useRadianceOcclusion,this.useHorizonOcclusion=e.useHorizonOcclusion,this.unlit=e.unlit,this.forceNormalForward=!!e.forceNormalForward,this.debugMode=e.debugMode,this.debugLimit=e.debugLimit,this.debugFactor=e.debugFactor,this.generateOnlyFragmentCode=!!e.generateOnlyFragmentCode,this._setTarget()}}F([lt("Direct lights",1,"INTENSITY",{min:0,max:1,notifiers:{update:!0}})],rc.prototype,"directIntensity",void 0),F([lt("Environment lights",1,"INTENSITY",{min:0,max:1,notifiers:{update:!0}})],rc.prototype,"environmentIntensity",void 0),F([lt("Specular highlights",1,"INTENSITY",{min:0,max:1,notifiers:{update:!0}})],rc.prototype,"specularIntensity",void 0),F([lt("Light falloff",4,"LIGHTING & COLORS",{notifiers:{update:!0},options:[{label:"Physical",value:Bs.LIGHTFALLOFF_PHYSICAL},{label:"GLTF",value:Bs.LIGHTFALLOFF_GLTF},{label:"Standard",value:Bs.LIGHTFALLOFF_STANDARD}]})],rc.prototype,"lightFalloff",void 0),F([lt("Alpha Testing",0,"OPACITY")],rc.prototype,"useAlphaTest",void 0),F([lt("Alpha CutOff",1,"OPACITY",{min:0,max:1,notifiers:{update:!0}})],rc.prototype,"alphaTestCutoff",void 0),F([lt("Alpha blending",0,"OPACITY")],rc.prototype,"useAlphaBlending",void 0),F([lt("Radiance over alpha",0,"RENDERING",{notifiers:{update:!0}})],rc.prototype,"useRadianceOverAlpha",void 0),F([lt("Specular over alpha",0,"RENDERING",{notifiers:{update:!0}})],rc.prototype,"useSpecularOverAlpha",void 0),F([lt("Specular anti-aliasing",0,"RENDERING",{notifiers:{update:!0}})],rc.prototype,"enableSpecularAntiAliasing",void 0),F([lt("Realtime filtering",0,"RENDERING",{notifiers:{update:!0}})],rc.prototype,"realTimeFiltering",void 0),F([lt("Realtime filtering quality",4,"RENDERING",{notifiers:{update:!0},options:[{label:"Low",value:8},{label:"Medium",value:16},{label:"High",value:64}]})],rc.prototype,"realTimeFilteringQuality",void 0),F([lt("Energy Conservation",0,"ADVANCED",{notifiers:{update:!0}})],rc.prototype,"useEnergyConservation",void 0),F([lt("Radiance occlusion",0,"ADVANCED",{notifiers:{update:!0}})],rc.prototype,"useRadianceOcclusion",void 0),F([lt("Horizon occlusion",0,"ADVANCED",{notifiers:{update:!0}})],rc.prototype,"useHorizonOcclusion",void 0),F([lt("Unlit",0,"ADVANCED",{notifiers:{update:!0}})],rc.prototype,"unlit",void 0),F([lt("Force normal forward",0,"ADVANCED",{notifiers:{update:!0}})],rc.prototype,"forceNormalForward",void 0),F([lt("Generate only fragment code",0,"ADVANCED",{notifiers:{rebuild:!0,update:!0,onValidation:rc._OnGenerateOnlyFragmentCodeChanged}})],rc.prototype,"generateOnlyFragmentCode",void 0),F([lt("Debug mode",4,"DEBUG",{notifiers:{update:!0},options:[{label:"None",value:0},{label:"Normalized position",value:1},{label:"Normals",value:2},{label:"Tangents",value:3},{label:"Bitangents",value:4},{label:"Bump Normals",value:5},{label:"ClearCoat Normals",value:8},{label:"ClearCoat Tangents",value:9},{label:"ClearCoat Bitangents",value:10},{label:"Anisotropic Normals",value:11},{label:"Anisotropic Tangents",value:12},{label:"Anisotropic Bitangents",value:13},{label:"Env Refraction",value:40},{label:"Env Reflection",value:41},{label:"Env Clear Coat",value:42},{label:"Direct Diffuse",value:50},{label:"Direct Specular",value:51},{label:"Direct Clear Coat",value:52},{label:"Direct Sheen",value:53},{label:"Env Irradiance",value:54},{label:"Surface Albedo",value:60},{label:"Reflectance 0",value:61},{label:"Metallic",value:62},{label:"Metallic F0",value:71},{label:"Roughness",value:63},{label:"AlphaG",value:64},{label:"NdotV",value:65},{label:"ClearCoat Color",value:66},{label:"ClearCoat Roughness",value:67},{label:"ClearCoat NdotV",value:68},{label:"Transmittance",value:69},{label:"Refraction Transmittance",value:70},{label:"SEO",value:80},{label:"EHO",value:81},{label:"Energy Factor",value:82},{label:"Specular Reflectance",value:83},{label:"Clear Coat Reflectance",value:84},{label:"Sheen Reflectance",value:85},{label:"Luminance Over Alpha",value:86},{label:"Alpha",value:87},{label:"Albedo color",value:88},{label:"Ambient occlusion color",value:89}]})],rc.prototype,"debugMode",void 0),F([lt("Split position",1,"DEBUG",{min:-1,max:1,notifiers:{update:!0}})],rc.prototype,"debugLimit",void 0),F([lt("Output factor",1,"DEBUG",{min:0,max:5,notifiers:{update:!0}})],rc.prototype,"debugFactor",void 0),ve("BABYLON.PBRMetallicRoughnessBlock",rc);class V5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("left",$.AutoDetect),this.registerInput("right",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._inputs[1].acceptedConnectionPointTypes.push($.Float)}getClassName(){return"ModBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];return e.shaderLanguage===0?e.compilationString+=e._declareOutput(t)+` = mod(${this.left.associatedVariableName}, ${this.right.associatedVariableName});
`:e.compilationString+=e._declareOutput(t)+` = (${this.left.associatedVariableName} % ${this.right.associatedVariableName});
`,this}}ve("BABYLON.ModBlock",V5e);class G5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("row0",$.Vector4),this.registerInput("row1",$.Vector4),this.registerInput("row2",$.Vector4),this.registerInput("row3",$.Vector4),this.registerOutput("output",$.Matrix)}getClassName(){return"MatrixBuilder"}get row0(){return this._inputs[0]}get row1(){return this._inputs[1]}get row2(){return this._inputs[2]}get row3(){return this._inputs[3]}get output(){return this._outputs[0]}autoConfigure(){if(!this.row0.isConnected){const e=new ys("row0");e.value=new Yt(1,0,0,0),e.output.connectTo(this.row0)}if(!this.row1.isConnected){const e=new ys("row1");e.value=new Yt(0,1,0,0),e.output.connectTo(this.row1)}if(!this.row2.isConnected){const e=new ys("row2");e.value=new Yt(0,0,1,0),e.output.connectTo(this.row2)}if(!this.row3.isConnected){const e=new ys("row3");e.value=new Yt(0,0,0,1),e.output.connectTo(this.row3)}}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=this.row0,s=this.row1,r=this.row2,n=this.row3,o=e.shaderLanguage===1?"mat4x4f":"mat4";return e.compilationString+=e._declareOutput(t)+` = ${o}(${i.associatedVariableName}, ${s.associatedVariableName}, ${r.associatedVariableName}, ${n.associatedVariableName});
`,this}}ve("BABYLON.MatrixBuilder",G5e);var Fc;(function(a){a[a.Equal=0]="Equal",a[a.NotEqual=1]="NotEqual",a[a.LessThan=2]="LessThan",a[a.GreaterThan=3]="GreaterThan",a[a.LessOrEqual=4]="LessOrEqual",a[a.GreaterOrEqual=5]="GreaterOrEqual",a[a.Xor=6]="Xor",a[a.Or=7]="Or",a[a.And=8]="And"})(Fc||(Fc={}));class fre extends Di{constructor(e){super(e,Te.Neutral),this.condition=Fc.LessThan,this.registerInput("a",$.Float),this.registerInput("b",$.Float),this.registerInput("true",$.AutoDetect,!0),this.registerInput("false",$.AutoDetect,!0),this.registerOutput("output",$.BasedOnInput),this._linkConnectionTypes(2,3),this._outputs[0]._typeConnectionSource=this._inputs[2],this._outputs[0]._defaultConnectionPointType=$.Float}getClassName(){return"ConditionalBlock"}get a(){return this._inputs[0]}get b(){return this._inputs[1]}get true(){return this._inputs[2]}get false(){return this._inputs[3]}get output(){return this._outputs[0]}autoConfigure(e){if(!this.true.isConnected){const t=e.getBlockByPredicate(i=>i.isInput&&i.value===1&&i.name==="True")||new ys("True");t.value=1,t.output.connectTo(this.true)}if(!this.false.isConnected){const t=e.getBlockByPredicate(i=>i.isInput&&i.value===0&&i.name==="False")||new ys("False");t.value=0,t.output.connectTo(this.false)}}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=this.true.isConnected?this.true.associatedVariableName:"1.0",s=this.false.isConnected?this.false.associatedVariableName:"0.0";switch(this.condition){case Fc.Equal:{e.compilationString+=e._declareOutput(t)+` = ${e._generateTernary(i,s,`${this.a.associatedVariableName} == ${this.b.associatedVariableName}`)};
`;break}case Fc.NotEqual:{e.compilationString+=e._declareOutput(t)+` = ${e._generateTernary(i,s,`${this.a.associatedVariableName} != ${this.b.associatedVariableName}`)};
`;break}case Fc.LessThan:{e.compilationString+=e._declareOutput(t)+` = ${e._generateTernary(i,s,`${this.a.associatedVariableName} < ${this.b.associatedVariableName}`)};
`;break}case Fc.LessOrEqual:{e.compilationString+=e._declareOutput(t)+` = ${e._generateTernary(i,s,`${this.a.associatedVariableName} <= ${this.b.associatedVariableName}`)};
`;break}case Fc.GreaterThan:{e.compilationString+=e._declareOutput(t)+` = ${e._generateTernary(i,s,`${this.a.associatedVariableName} > ${this.b.associatedVariableName}`)};
`;break}case Fc.GreaterOrEqual:{e.compilationString+=e._declareOutput(t)+` = ${e._generateTernary(i,s,`${this.a.associatedVariableName} >= ${this.b.associatedVariableName}`)};
`;break}case Fc.Xor:{e.compilationString+=e._declareOutput(t)+` = ${e._generateTernary(i,s,`(((${this.a.associatedVariableName} + ${this.b.associatedVariableName}) % 2.0) > 0.0)`)};
`;break}case Fc.Or:{e.compilationString+=e._declareOutput(t)+` = ${e._generateTernary(i,s,`(min(${this.a.associatedVariableName} + ${this.b.associatedVariableName}, 1.0) > 0.0)`)};
`;break}case Fc.And:{e.compilationString+=e._declareOutput(t)+` = ${e._generateTernary(i,s,`(${this.a.associatedVariableName} * ${this.b.associatedVariableName} > 0.0)`)};
`;break}}return this}serialize(){const e=super.serialize();return e.condition=this.condition,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.condition=e.condition}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.condition = BABYLON.ConditionalBlockConditions.${Fc[this.condition]};
`}}F([lt("Condition",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"Equal",value:Fc.Equal},{label:"NotEqual",value:Fc.NotEqual},{label:"LessThan",value:Fc.LessThan},{label:"GreaterThan",value:Fc.GreaterThan},{label:"LessOrEqual",value:Fc.LessOrEqual},{label:"GreaterOrEqual",value:Fc.GreaterOrEqual},{label:"Xor",value:Fc.Xor},{label:"And",value:Fc.And},{label:"Or",value:Fc.Or}]})],fre.prototype,"condition",void 0),ve("BABYLON.ConditionalBlock",fre);class pre extends Di{constructor(e){super(e,Te.Neutral),this.octaves=6,this.registerInput("seed",$.AutoDetect),this.registerInput("chaos",$.AutoDetect,!0),this.registerInput("offsetX",$.Float,!0),this.registerInput("offsetY",$.Float,!0),this.registerInput("offsetZ",$.Float,!0),this.registerOutput("output",$.Float),this._inputs[0].acceptedConnectionPointTypes.push($.Vector2),this._inputs[0].acceptedConnectionPointTypes.push($.Vector3),this._linkConnectionTypes(0,1)}getClassName(){return"CloudBlock"}get seed(){return this._inputs[0]}get chaos(){return this._inputs[1]}get offsetX(){return this._inputs[2]}get offsetY(){return this._inputs[3]}get offsetZ(){return this._inputs[4]}get output(){return this._outputs[0]}_buildBlock(e){var l,c,u;if(super._buildBlock(e),!this.seed.isConnected||!this._outputs[0].hasEndpoints)return;let t=`

        float cloudRandom(float p) { 
            float temp = fract(p * 0.011); 
            temp *= temp + 7.5; 
            temp *= temp + temp; 
            return fract(temp); 
        }

        // Based on Morgan McGuire @morgan3d
        // https://www.shadertoy.com/view/4dS3Wd
        float cloudNoise2(vec2 x, vec2 chaos) {
            vec2 step = chaos * vec2(75., 120.) + vec2(75., 120.);

            vec2 i = floor(x);
            vec2 f = fract(x);

            float n = dot(i, step);

            vec2 u = f * f * (3.0 - 2.0 * f);
            return mix(
                    mix(cloudRandom(n + dot(step, vec2(0, 0))), cloudRandom(n + dot(step, vec2(1, 0))), u.x),
                    mix(cloudRandom(n + dot(step, vec2(0, 1))), cloudRandom(n + dot(step, vec2(1, 1))), u.x),
                    u.y
                );
        }

        float cloudNoise3(vec3 x, vec3 chaos) {
            vec3 step = chaos * vec3(60., 120., 75.) + vec3(60., 120., 75.);

            vec3 i = floor(x);
            vec3 f = fract(x);

            float n = dot(i, step);

            vec3 u = f * f * (3.0 - 2.0 * f);
            return mix(mix(mix( cloudRandom(n + dot(step, vec3(0, 0, 0))), cloudRandom(n + dot(step, vec3(1, 0, 0))), u.x),
                           mix( cloudRandom(n + dot(step, vec3(0, 1, 0))), cloudRandom(n + dot(step, vec3(1, 1, 0))), u.x), u.y),
                       mix(mix( cloudRandom(n + dot(step, vec3(0, 0, 1))), cloudRandom(n + dot(step, vec3(1, 0, 1))), u.x),
                           mix( cloudRandom(n + dot(step, vec3(0, 1, 1))), cloudRandom(n + dot(step, vec3(1, 1, 1))), u.x), u.y), u.z);
        }`,i=`
        float fbm2(vec2 st, vec2 chaos) {
            // Initial values
            float value = 0.0;
            float amplitude = .5;
            float frequency = 0.;

            // Loop of octaves
            vec2 tempST = st;
            for (int i = 0; i < OCTAVES; i++) {
                value += amplitude * cloudNoise2(tempST, chaos);
                tempST *= 2.0;
                amplitude *= 0.5;
            }
            return value;
        }

        float fbm3(vec3 x, vec3 chaos) {
            // Initial values
            float value = 0.0;
            float amplitude = 0.5;
            vec3 tempX = x;
            for (int i = 0; i < OCTAVES; i++) {
                value += amplitude * cloudNoise3(tempX, chaos);
                tempX = tempX * 2.0;
                amplitude *= 0.5;
            }
            return value;
        }`;e.shaderLanguage===1&&(t=e._babylonSLtoWGSL(t),i=e._babylonSLtoWGSL(i));const s=`fbm${this.octaves}`;e._emitFunction("CloudBlockCode",t,"// CloudBlockCode"),e._emitFunction("CloudBlockCodeFBM"+this.octaves,i.replace(/fbm/gi,s).replace(/OCTAVES/gi,(this.octaves|0).toString()),"// CloudBlockCode FBM");const r=e._getFreeVariableName("st"),n=((l=this.seed.connectedPoint)==null?void 0:l.type)||$.Vector3;e.compilationString+=`${e._declareLocalVar(r,n)} = ${this.seed.associatedVariableName};
`,this.offsetX.isConnected&&(e.compilationString+=`${r}.x += 0.1 * ${this.offsetX.associatedVariableName};
`),this.offsetY.isConnected&&(e.compilationString+=`${r}.y += 0.1 * ${this.offsetY.associatedVariableName};
`),this.offsetZ.isConnected&&n===$.Vector3&&(e.compilationString+=`${r}.z += 0.1 * ${this.offsetZ.associatedVariableName};
`);let o="";if(this.chaos.isConnected)o=this.chaos.associatedVariableName;else{const f=e.fSuffix;o=((c=this.seed.connectedPoint)==null?void 0:c.type)===$.Vector2?`vec2${f}(0., 0.)`:`vec3${f}(0., 0., 0.)`}return e.compilationString+=e._declareOutput(this._outputs[0])+` = ${s}${((u=this.seed.connectedPoint)==null?void 0:u.type)===$.Vector2?"2":"3"}(${r}, ${o});
`,this}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.octaves = ${this.octaves};
`}serialize(){const e=super.serialize();return e.octaves=this.octaves,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.octaves=e.octaves}}F([lt("Octaves",2,void 0,{embedded:!0})],pre.prototype,"octaves",void 0),ve("BABYLON.CloudBlock",pre);class W5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("seed",$.Vector2),this.registerInput("offset",$.Float),this.registerInput("density",$.Float),this.registerOutput("output",$.Float),this.registerOutput("cells",$.Float)}getClassName(){return"VoronoiNoiseBlock"}get seed(){return this._inputs[0]}get offset(){return this._inputs[1]}get density(){return this._inputs[2]}get output(){return this._outputs[0]}get cells(){return this._outputs[1]}_buildBlock(e){if(super._buildBlock(e),!this.seed.isConnected)return;let t=`vec2 voronoiRandom(vec2 p){
            p = vec2(dot(p,vec2(127.1,311.7)),dot(p,vec2(269.5,183.3)));
            return fract(sin(p)*18.5453);
        }
        `;e.shaderLanguage===1&&(t=e._babylonSLtoWGSL(t)),e._emitFunction("voronoiRandom",t,"// Voronoi random generator"),t=`void voronoi(vec2 seed, float offset, float density, out float outValue, out float cells){
            vec2 n = floor(seed * density);
            vec2 f = fract(seed * density);
            vec3 m = vec3( 8.0 );
            for( int j=-1; j<=1; j++ ){
                for( int i=-1; i<=1; i++ ){
                    vec2  g = vec2( float(i), float(j) );
                    vec2  o = voronoiRandom( n + g);
                    vec2  r = g - f + (0.5+0.5*sin(offset+6.2831*o));
                    float d = dot( r, r );
                    if( d<m.x ){
                        m = vec3( d, o );
                        outValue = m.x;
                        cells = m.y;
                    }
                }
			}
        }
        `,e.shaderLanguage===1?t=e._babylonSLtoWGSL(t):t=e._babylonSLtoGLSL(t),e._emitFunction("voronoi",t,"// Voronoi");const i=e._getFreeVariableName("tempOutput"),s=e._getFreeVariableName("tempCells"),r=e.shaderLanguage===1?"&":"";return e.compilationString+=`${e._declareLocalVar(i,$.Float)} = 0.0;
`,e.compilationString+=`${e._declareLocalVar(s,$.Float)} = 0.0;
`,e.compilationString+=`voronoi(${this.seed.associatedVariableName}, ${this.offset.associatedVariableName}, ${this.density.associatedVariableName}, ${r}${i}, ${r}${s});
`,this.output.hasEndpoints&&(e.compilationString+=e._declareOutput(this.output)+` = ${i};
`),this.cells.hasEndpoints&&(e.compilationString+=e._declareOutput(this.cells)+` = ${s};
`),this}}ve("BABYLON.VoronoiNoiseBlock",W5e);class H5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("input",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0]}getClassName(){return"ElbowBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}get target(){const e=this._inputs[0];if(e.isConnected){const t=e.connectedPoint.ownerBlock;if(t.target!==Te.VertexAndFragment)return t.target;if(e.connectedPoint.target!==Te.VertexAndFragment)return e.connectedPoint.target}return this._target}set target(e){this._target&e||(this._target=e)}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=this._inputs[0];return e.compilationString+=e._declareOutput(t)+` = ${i.associatedVariableName};
`,this}}ve("BABYLON.ElbowBlock",H5e);class tY extends Di{get texture(){var e;return this.source.isConnected?((e=this.source.connectedPoint)==null?void 0:e.ownerBlock).texture:this._texture}set texture(e){if(this._texture===e)return;const t=(e==null?void 0:e.getScene())??ei.LastCreatedScene;!e&&t&&t.markAllMaterialsAsDirty(1,i=>i.hasTexture(this._texture)),this._texture=e,e&&t&&t.markAllMaterialsAsDirty(1,i=>i.hasTexture(e))}get textureY(){var e;return this.sourceY.isConnected?((e=this.sourceY.connectedPoint)==null?void 0:e.ownerBlock).texture:null}get textureZ(){var e,t;return(e=this.sourceZ)!=null&&e.isConnected?((t=this.sourceY.connectedPoint)==null?void 0:t.ownerBlock).texture:null}_getImageSourceBlock(e){return e!=null&&e.isConnected?e.connectedPoint.ownerBlock:null}get samplerName(){const e=this._getImageSourceBlock(this.source);return e?e.samplerName:this._samplerName}get samplerYName(){var e;return((e=this._getImageSourceBlock(this.sourceY))==null?void 0:e.samplerName)??null}get samplerZName(){var e;return((e=this._getImageSourceBlock(this.sourceZ))==null?void 0:e.samplerName)??null}get hasImageSource(){return this.source.isConnected}set convertToGammaSpace(e){if(e!==this._convertToGammaSpace&&(this._convertToGammaSpace=e,this.texture)){const t=this.texture.getScene()??ei.LastCreatedScene;t==null||t.markAllMaterialsAsDirty(1,i=>i.hasTexture(this.texture))}}get convertToGammaSpace(){return this._convertToGammaSpace}set convertToLinearSpace(e){if(e!==this._convertToLinearSpace&&(this._convertToLinearSpace=e,this.texture)){const t=this.texture.getScene()??ei.LastCreatedScene;t==null||t.markAllMaterialsAsDirty(1,i=>i.hasTexture(this.texture))}}get convertToLinearSpace(){return this._convertToLinearSpace}constructor(e,t=!1){super(e,Te.Neutral),this.projectAsCube=!1,this._convertToGammaSpace=!1,this._convertToLinearSpace=!1,this.disableLevelMultiplication=!1,this.registerInput("position",$.AutoDetect,!1),this.registerInput("normal",$.AutoDetect,!1),this.registerInput("sharpness",$.Float,!0),this.registerInput("source",$.Object,!0,Te.VertexAndFragment,new Vn("source",this,0,P0,"ImageSourceBlock")),this.registerInput("sourceY",$.Object,!0,Te.VertexAndFragment,new Vn("sourceY",this,0,P0,"ImageSourceBlock")),t||this.registerInput("sourceZ",$.Object,!0,Te.VertexAndFragment,new Vn("sourceZ",this,0,P0,"ImageSourceBlock")),this.registerOutput("rgba",$.Color4,Te.Neutral),this.registerOutput("rgb",$.Color3,Te.Neutral),this.registerOutput("r",$.Float,Te.Neutral),this.registerOutput("g",$.Float,Te.Neutral),this.registerOutput("b",$.Float,Te.Neutral),this.registerOutput("a",$.Float,Te.Neutral),this.registerOutput("level",$.Float,Te.Neutral),this._inputs[0].addExcludedConnectionPointFromAllowedTypes($.Color3|$.Vector3|$.Vector4),this._inputs[1].addExcludedConnectionPointFromAllowedTypes($.Color3|$.Vector3|$.Vector4)}getClassName(){return"TriPlanarBlock"}get position(){return this._inputs[0]}get normal(){return this._inputs[1]}get sharpness(){return this._inputs[2]}get source(){return this._inputs[3]}get sourceY(){return this._inputs[4]}get sourceZ(){return this._inputs[5]}get rgba(){return this._outputs[0]}get rgb(){return this._outputs[1]}get r(){return this._outputs[2]}get g(){return this._outputs[3]}get b(){return this._outputs[4]}get a(){return this._outputs[5]}get level(){return this._outputs[6]}prepareDefines(e,t,i){if(!i._areTexturesDirty)return;const s=this.convertToGammaSpace&&this.texture&&!this.texture.gammaSpace,r=this.convertToLinearSpace&&this.texture&&this.texture.gammaSpace;i.setValue(this._linearDefineName,s,!0),i.setValue(this._gammaDefineName,r,!0)}isReady(){return!(this.texture&&!this.texture.isReadyOrNotBlocking())}bind(e){this.texture&&(e.setFloat(this._textureInfoName,this.texture.level),this._imageSource||e.setTexture(this._samplerName,this.texture))}_samplerFunc(e){return e.shaderLanguage===1?"textureSample":"texture2D"}_generateTextureSample(e,t,i){return i.shaderLanguage===1?`${this._samplerFunc(i)}(${e},${e+"Sampler"}, ${t})`:`${this._samplerFunc(i)}(${e}, ${t})`}_generateTextureLookup(e){const t=this.samplerName,i=this.samplerYName??t,s=this.samplerZName??t,r=this.sharpness.isConnected?this.sharpness.associatedVariableName:"1.0",n=e._getFreeVariableName("x"),o=e._getFreeVariableName("y"),l=e._getFreeVariableName("z"),c=e._getFreeVariableName("w"),u=e._getFreeVariableName("n"),f=e._getFreeVariableName("uvx"),p=e._getFreeVariableName("uvy"),m=e._getFreeVariableName("uvz");e.compilationString+=`
            ${e._declareLocalVar(u,$.Vector3)} = ${this.normal.associatedVariableName}.xyz;

            ${e._declareLocalVar(f,$.Vector2)} = ${this.position.associatedVariableName}.yz;
            ${e._declareLocalVar(p,$.Vector2)} = ${this.position.associatedVariableName}.zx;
            ${e._declareLocalVar(m,$.Vector2)} = ${this.position.associatedVariableName}.xy;
        `,this.projectAsCube&&(e.compilationString+=`
                ${f}.xy = ${f}.yx;

                if (${u}.x >= 0.0) {
                    ${f}.x = -${f}.x;
                }
                if (${u}.y < 0.0) {
                    ${p}.y = -${p}.y;
                }
                if (${u}.z < 0.0) {
                    ${m}.x = -${m}.x;
                }
            `);const _=e.fSuffix;e.compilationString+=`
            ${e._declareLocalVar(n,$.Vector4)} = ${this._generateTextureSample(t,f,e)};
            ${e._declareLocalVar(o,$.Vector4)} = ${this._generateTextureSample(i,p,e)};
            ${e._declareLocalVar(l,$.Vector4)} = ${this._generateTextureSample(s,m,e)};
           
            // blend weights
            ${e._declareLocalVar(c,$.Vector3)} = pow(abs(${u}), vec3${_}(${r}));

            // blend and return
            ${e._declareLocalVar(this._tempTextureRead,$.Vector4)} = (${n}*${c}.x + ${o}*${c}.y + ${l}*${c}.z) / (${c}.x + ${c}.y + ${c}.z);        
        `}_generateConversionCode(e,t,i){let s="";e.shaderLanguage===1&&(t.type===$.Vector3||t.type===$.Color3)&&(s="Vec3"),i!=="a"&&((!this.texture||!this.texture.gammaSpace)&&(e.compilationString+=`#ifdef ${this._linearDefineName}
                    ${t.associatedVariableName} = toGammaSpace${s}(${t.associatedVariableName});
                    #endif
                `),e.compilationString+=`#ifdef ${this._gammaDefineName}
                ${t.associatedVariableName} = toLinearSpace${s}(${t.associatedVariableName});
                #endif
            `)}_writeOutput(e,t,i){let s="";this.disableLevelMultiplication||(s=` * ${e.shaderLanguage===1?"uniforms.":""}${this._textureInfoName}`),e.compilationString+=`${e._declareOutput(t)} = ${this._tempTextureRead}.${i}${s};
`,this._generateConversionCode(e,t,i)}_buildBlock(e){super._buildBlock(e),this.source.isConnected?this._imageSource=this.source.connectedPoint.ownerBlock:this._imageSource=null,this._textureInfoName=e._getFreeVariableName("textureInfoName"),this.level.associatedVariableName=(e.shaderLanguage===1?"uniforms.":"")+this._textureInfoName,this._tempTextureRead=e._getFreeVariableName("tempTextureRead"),this._linearDefineName=e._getFreeDefineName("ISLINEAR"),this._gammaDefineName=e._getFreeDefineName("ISGAMMA"),this._imageSource||(this._samplerName=e._getFreeVariableName(this.name+"Texture"),e._emit2DSampler(this._samplerName)),e.sharedData.blockingBlocks.push(this),e.sharedData.textureBlocks.push(this),e.sharedData.blocksWithDefines.push(this),e.sharedData.bindableBlocks.push(this);const t=`//${this.name}`;e._emitFunctionFromInclude("helperFunctions",t),e._emitUniformFromString(this._textureInfoName,$.Float),this._generateTextureLookup(e);for(const i of this._outputs)i.hasEndpoints&&i.name!=="level"&&this._writeOutput(e,i,i.name);return this}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return e+=`${this._codeVariableName}.convertToGammaSpace = ${this.convertToGammaSpace};
`,e+=`${this._codeVariableName}.convertToLinearSpace = ${this.convertToLinearSpace};
`,e+=`${this._codeVariableName}.disableLevelMultiplication = ${this.disableLevelMultiplication};
`,e+=`${this._codeVariableName}.projectAsCube = ${this.projectAsCube};
`,this.texture&&(e+=`${this._codeVariableName}.texture = new BABYLON.Texture("${this.texture.name}", null, ${this.texture.noMipmap}, ${this.texture.invertY}, ${this.texture.samplingMode});
`,e+=`${this._codeVariableName}.texture.wrapU = ${this.texture.wrapU};
`,e+=`${this._codeVariableName}.texture.wrapV = ${this.texture.wrapV};
`,e+=`${this._codeVariableName}.texture.uAng = ${this.texture.uAng};
`,e+=`${this._codeVariableName}.texture.vAng = ${this.texture.vAng};
`,e+=`${this._codeVariableName}.texture.wAng = ${this.texture.wAng};
`,e+=`${this._codeVariableName}.texture.uOffset = ${this.texture.uOffset};
`,e+=`${this._codeVariableName}.texture.vOffset = ${this.texture.vOffset};
`,e+=`${this._codeVariableName}.texture.uScale = ${this.texture.uScale};
`,e+=`${this._codeVariableName}.texture.vScale = ${this.texture.vScale};
`,e+=`${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};
`),e}serialize(){const e=super.serialize();return e.convertToGammaSpace=this.convertToGammaSpace,e.convertToLinearSpace=this.convertToLinearSpace,e.disableLevelMultiplication=this.disableLevelMultiplication,e.projectAsCube=this.projectAsCube,!this.hasImageSource&&this.texture&&!this.texture.isRenderTarget&&this.texture.getClassName()!=="VideoTexture"&&(e.texture=this.texture.serialize()),e}_deserialize(e,t,i){super._deserialize(e,t,i),this.convertToGammaSpace=e.convertToGammaSpace,this.convertToLinearSpace=!!e.convertToLinearSpace,this.disableLevelMultiplication=!!e.disableLevelMultiplication,this.projectAsCube=!!e.projectAsCube,e.texture&&!jn.IgnoreTexturesAtLoadTime&&e.texture.url!==void 0&&(i=e.texture.url.indexOf("data:")===0?"":i,this.texture=be.Parse(e.texture,t,i))}}F([lt("Project as cube",0,"ADVANCED",{embedded:!0,notifiers:{update:!0}})],tY.prototype,"projectAsCube",void 0),ve("BABYLON.TriPlanarBlock",tY);class Y5e extends tY{constructor(e){super(e,!0)}getClassName(){return"BiPlanarBlock"}_declareLocalVarAsVec3I(e,t){return t.shaderLanguage===1?`var ${e}: vec3<i32>`:`ivec3 ${e}`}_getTextureGrad(e,t){return e.shaderLanguage===1?`textureSampleGrad(${t},${t+"Sampler"}`:`textureGrad(${t}`}_generateTextureLookup(e){const t=this.samplerName,i=this.samplerYName??this.samplerName,s=this.sharpness.isConnected?this.sharpness.associatedVariableName:"1.0",r=e._getFreeVariableName("dxValue"),n=e._getFreeVariableName("dyValue"),o=e._getFreeVariableName("n"),l=e._getFreeVariableName("ma"),c=e._getFreeVariableName("mi"),u=e._getFreeVariableName("me"),f=e._getFreeVariableName("x"),p=e._getFreeVariableName("y"),m=e._getFreeVariableName("w");let _="ivec3",d="dFdx",h="dFdy";const x=e.fSuffix;e.shaderLanguage===1&&(_="vec3<i32>",d="dpdx",h="dpdy"),e.compilationString+=`
            // grab coord derivatives for texturing
            ${e._declareLocalVar(r,$.Vector3)} = ${d}(${this.position.associatedVariableName}.xyz);
            ${e._declareLocalVar(n,$.Vector3)} = ${h}(${this.position.associatedVariableName}.xyz);
            ${e._declareLocalVar(o,$.Vector3)} = abs(${this.normal.associatedVariableName}.xyz);
        
            // determine major axis (in x; yz are following axis)
            ${this._declareLocalVarAsVec3I(l,e)} = ${e._generateTernary(`${_}(0,1,2)`,`${e._generateTernary(`${_}(1,2,0)`,`${_}(2,0,1)`,`(${o}.y>${o}.z)`)}`,`(${o}.x>${o}.y && ${o}.x>${o}.z)`)};                    

            // determine minor axis (in x; yz are following axis)
            ${this._declareLocalVarAsVec3I(c,e)} =  ${e._generateTernary(`${_}(0,1,2)`,`${e._generateTernary(`${_}(1,2,0)`,`${_}(2,0,1)`,`(${o}.y<${o}.z)`)}`,`(${o}.x<${o}.y && ${o}.x<${o}.z)`)};  
                              
            // determine median axis (in x;  yz are following axis)
            ${this._declareLocalVarAsVec3I(u,e)} = ${_}(3) - ${c} - ${l};
            
            // project+fetch
            ${e._declareLocalVar(f,$.Vector4)} = ${this._getTextureGrad(e,t)}, vec2${x}(${this.position.associatedVariableName}[${l}.y], ${this.position.associatedVariableName}[${l}.z]), 
                                    vec2${x}(${r}[${l}.y],${r}[${l}.z]), 
                                    vec2${x}(${n}[${l}.y],${n}[${l}.z]));
            ${e._declareLocalVar(p,$.Vector4)} = ${this._getTextureGrad(e,i)}, vec2${x}(${this.position.associatedVariableName}[${u}.y], ${this.position.associatedVariableName}[${u}.z]), 
                                    vec2${x}(${r}[${u}.y],${r}[${u}.z]),
                                    vec2${x}(${n}[${u}.y],${n}[${u}.z]));
            
            // blend factors
            ${e._declareLocalVar(m,$.Vector2)} = vec2${x}(${o}[${l}.x],${o}[${u}.x]);
            // make local support
            ${m} = clamp( (${m}-0.5773)/(1.0-0.5773), vec2${x}(0.0), vec2${x}(1.0) );
            // shape transition
            ${m} = pow( ${m}, vec2${x}(${s}/8.0) );
            // blend and return
            ${e._declareLocalVar(this._tempTextureRead,$.Vector4)} = (${f}*${m}.x + ${p}*${m}.y) / (${m}.x + ${m}.y);
        `}}ve("BABYLON.BiPlanarBlock",Y5e);class X5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("input",$.Matrix),this.registerOutput("output",$.Float)}getClassName(){return"MatrixDeterminantBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this.output,i=this.input;return e.compilationString+=e._declareOutput(t)+` = determinant(${i.associatedVariableName});
`,this}}ve("BABYLON.MatrixDeterminantBlock",X5e);class Z5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("input",$.Matrix),this.registerOutput("output",$.Matrix)}getClassName(){return"MatrixTransposeBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this.output,i=this.input;return e.compilationString+=e._declareOutput(t)+` = transpose(${i.associatedVariableName});
`,this}}ve("BABYLON.MatrixTransposeBlock",Z5e);var mre;(function(a){a[a.None=0]="None",a[a.Normal=1]="Normal",a[a.Tangent=2]="Tangent",a[a.VertexColor=3]="VertexColor",a[a.UV1=4]="UV1",a[a.UV2=5]="UV2",a[a.UV3=6]="UV3",a[a.UV4=7]="UV4",a[a.UV5=8]="UV5",a[a.UV6=9]="UV6"})(mre||(mre={}));class gre extends Di{constructor(e){super(e,Te.Neutral),this.attributeType=0,this.registerInput("input",$.AutoDetect),this.registerInput("fallback",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._inputs[0].onConnectionObservable.add(t=>{var s;if(this.attributeType)return;const i=t.ownerBlock;if(i instanceof ys&&i.isAttribute)switch(i.name){case"color":this.attributeType=3;break;case"normal":this.attributeType=1;break;case"tangent":this.attributeType=2;break;case"uv":this.attributeType=4;break;case"uv2":this.attributeType=5;break;case"uv3":this.attributeType=6;break;case"uv4":this.attributeType=7;break;case"uv5":this.attributeType=8;break;case"uv6":this.attributeType=9;break}else if(i instanceof are)switch((s=this.input.connectedPoint)==null?void 0:s.name){case"normalOutput":this.attributeType=1;break;case"tangentOutput":this.attributeType=2;break;case"uvOutput":this.attributeType=4;break;case"uv2Output":this.attributeType=5;break}})}getClassName(){return"MeshAttributeExistsBlock"}get input(){return this._inputs[0]}get fallback(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);let t=null;switch(this.attributeType){case 3:t="VERTEXCOLOR_NME";break;case 1:t="NORMAL";break;case 2:t="TANGENT";break;case 4:t="UV1";break;case 5:t="UV2";break;case 6:t="UV3";break;case 7:t="UV4";break;case 8:t="UV5";break;case 9:t="UV6";break}const i=e._declareOutput(this.output);return t&&(e.compilationString+=`#ifdef ${t}
`),e.compilationString+=`${i} = ${this.input.associatedVariableName};
`,t&&(e.compilationString+=`#else
`,e.compilationString+=`${i} = ${this.fallback.associatedVariableName};
`,e.compilationString+=`#endif
`),this}serialize(){const e=super.serialize();return e.attributeType=this.attributeType,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.attributeType=e.attributeType??0}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return e+=`${this._codeVariableName}.attributeType = ${this.attributeType};
`,e}}F([lt("Attribute lookup",4,void 0,{notifiers:{update:!0},embedded:!0,options:[{label:"(None)",value:0},{label:"Normal",value:1},{label:"Tangent",value:2},{label:"Vertex Color",value:3},{label:"UV1",value:4},{label:"UV2",value:5},{label:"UV3",value:6},{label:"UV4",value:7},{label:"UV5",value:8},{label:"UV6",value:9}]})],gre.prototype,"attributeType",void 0),ve("BABYLON.MeshAttributeExistsBlock",gre);var Gs;(function(a){a[a.EaseInSine=0]="EaseInSine",a[a.EaseOutSine=1]="EaseOutSine",a[a.EaseInOutSine=2]="EaseInOutSine",a[a.EaseInQuad=3]="EaseInQuad",a[a.EaseOutQuad=4]="EaseOutQuad",a[a.EaseInOutQuad=5]="EaseInOutQuad",a[a.EaseInCubic=6]="EaseInCubic",a[a.EaseOutCubic=7]="EaseOutCubic",a[a.EaseInOutCubic=8]="EaseInOutCubic",a[a.EaseInQuart=9]="EaseInQuart",a[a.EaseOutQuart=10]="EaseOutQuart",a[a.EaseInOutQuart=11]="EaseInOutQuart",a[a.EaseInQuint=12]="EaseInQuint",a[a.EaseOutQuint=13]="EaseOutQuint",a[a.EaseInOutQuint=14]="EaseInOutQuint",a[a.EaseInExpo=15]="EaseInExpo",a[a.EaseOutExpo=16]="EaseOutExpo",a[a.EaseInOutExpo=17]="EaseInOutExpo",a[a.EaseInCirc=18]="EaseInCirc",a[a.EaseOutCirc=19]="EaseOutCirc",a[a.EaseInOutCirc=20]="EaseInOutCirc",a[a.EaseInBack=21]="EaseInBack",a[a.EaseOutBack=22]="EaseOutBack",a[a.EaseInOutBack=23]="EaseInOutBack",a[a.EaseInElastic=24]="EaseInElastic",a[a.EaseOutElastic=25]="EaseOutElastic",a[a.EaseInOutElastic=26]="EaseInOutElastic"})(Gs||(Gs={}));class _re extends Di{constructor(e){super(e,Te.Neutral),this.type=Gs.EaseInOutSine,this.registerInput("input",$.AutoDetect),this.registerOutput("output",$.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._inputs[0].excludedConnectionPointTypes.push($.Matrix),this._inputs[0].excludedConnectionPointTypes.push($.Object),this._inputs[0].excludedConnectionPointTypes.push($.Int)}getClassName(){return"CurveBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_duplicateEntry(e,t){return`ret.${t} = ${e.replace(/VAL/g,"v."+t)}`}_duplicateEntryDirect(e){return`return ${e.replace(/VAL/g,"v")}`}_duplicateVector(e,t,i){if(t==="float"||t==="f32")return this._duplicateEntryDirect(e);const s=parseInt(t.replace("vec",""));let r=i?`
            var ret: vec${s}f = vec${s}f(0.0);
        `:`
            vec${s} ret = vec${s}(0.0);
        `;for(let n=1;n<=s;n++)r+=this._duplicateEntry(e,n===1?"x":n===2?"y":n===3?"z":"w")+`;
`;return r+=`return ret;
`,r}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0];let i="",s="";const r=e._getShaderType(this.input.type),n=e.shaderLanguage===1;switch(s=Gs[this.type]+"_"+r.replace("<","").replace(">",""),this.type){case Gs.EaseInSine:i="return 1.0 - cos((v * 3.1415) / 2.0)";break;case Gs.EaseOutSine:i="return sin((v * 3.1415) / 2.0)";break;case Gs.EaseInOutSine:i="return -(cos(v * 3.1415) - 1.0) / 2.0";break;case Gs.EaseInQuad:i="return v * v";break;case Gs.EaseOutQuad:i="return (1.0 - v) * (1.0 - v)";break;case Gs.EaseInOutQuad:{const o=e._generateTernary("2.0 * VAL * VAL","1.0 - pow(-2.0 * VAL + 2.0, 2.0) / 2.0","VAL < 0.5");i=this._duplicateVector(o,r,n);break}case Gs.EaseInCubic:i="return v * v * v";break;case Gs.EaseOutCubic:{i=this._duplicateVector("1.0 - pow(1.0 - VAL, 3.0)",r,n);break}case Gs.EaseInOutCubic:{const o=e._generateTernary("4.0 * VAL * VAL * VAL","1.0 - pow(-2.0 * VAL + 2.0, 3.0) / 2.0","VAL < 0.5");i=this._duplicateVector(o,r,n);break}case Gs.EaseInQuart:i="return v * v * v * v";break;case Gs.EaseOutQuart:{i=this._duplicateVector("1.0 - pow(1.0 - VAL, 4.0)",r,n);break}case Gs.EaseInOutQuart:{const o=e._generateTernary("8.0 * VAL * VAL * VAL * VAL","1.0 - pow(-2.0 * VAL + 2.0, 4.0) / 2.0","VAL < 0.5");i=this._duplicateVector(o,r,n);break}case Gs.EaseInQuint:i="return v * v * v * v * v";break;case Gs.EaseOutQuint:{i=this._duplicateVector("1.0 - pow(1.0 - VAL, 5.0)",r,n);break}case Gs.EaseInOutQuint:{const o=e._generateTernary("16.0 * VAL * VAL * VAL * VAL * VAL","1.0 - pow(-2.0 * VAL + 2.0, 5.0) / 2.0","VAL < 0.5");i=this._duplicateVector(o,r,n);break}case Gs.EaseInExpo:{const o=e._generateTernary("0.0","pow(2.0, 10.0 * VAL - 10.0)","VAL == 0.0");i=this._duplicateVector(o,r,n);break}case Gs.EaseOutExpo:{const o=e._generateTernary("1.0","1.0 - pow(2.0, -10.0 * VAL)","VAL == 1.0");i=this._duplicateVector(o,r,n);break}case Gs.EaseInOutExpo:{const o=e._generateTernary("0.0",e._generateTernary("1.0",e._generateTernary("pow(2.0, 20.0 * VAL - 10.0) / 2.0","(2.0 - pow(2.0, -20.0 * VAL + 10.0)) / 2.0","VAL < 0.5"),"VAL == 1.0"),"VAL == 0.0");i=this._duplicateVector(o,r,n);break}case Gs.EaseInCirc:{i=this._duplicateVector("1.0 - sqrt(1.0 - pow(VAL, 2.0))",r,n);break}case Gs.EaseOutCirc:{i=this._duplicateVector("sqrt(1.0 - pow(VAL - 1.0, 2.0))",r,n);break}case Gs.EaseInOutCirc:{const o=e._generateTernary("(1.0 - sqrt(1.0 - pow(2.0 * VAL, 2.0))) / 2.0","(sqrt(1.0 - pow(-2.0 * VAL + 2.0, 2.0)) + 1.0) / 2.0","VAL < 0.5");i=this._duplicateVector(o,r,n);break}case Gs.EaseInBack:{i="return 2.70158 * v * v * v - 1.70158 * v * v";break}case Gs.EaseOutBack:{i=this._duplicateVector("2.70158 * pow(VAL - 1.0, 3.0) + 1.70158 * pow(VAL - 1.0, 2.0)",r,n);break}case Gs.EaseInOutBack:{const o=e._generateTernary("(pow(2.0 * VAL, 2.0) * ((3.5949095) * 2.0 * VAL - 2.5949095)) / 2.0","(pow(2.0 * VAL - 2.0, 2.0) * (3.5949095 * (VAL * 2.0 - 2.0) + 3.5949095) + 2.0) / 2.0","VAL < 0.5");i=this._duplicateVector(o,r,n);break}case Gs.EaseInElastic:{const o=e._generateTernary("0.0",e._generateTernary("1.0","-pow(2.0, 10.0 * VAL - 10.0) * sin((VAL * 10.0 - 10.75) * ((2.0 * 3.1415) / 3.0))","VAL == 1.0"),"VAL == 0.0");i=this._duplicateVector(o,r,n);break}case Gs.EaseOutElastic:{const o=e._generateTernary("0.0",e._generateTernary("1.0","pow(2.0, -10.0 * VAL) * sin((VAL * 10.0 - 0.75) * ((2.0 * 3.1415) / 3.0)) + 1.0","VAL == 1.0"),"VAL == 0.0");i=this._duplicateVector(o,r,n);break}case Gs.EaseInOutElastic:{const o=e._generateTernary("0.0",e._generateTernary("1.0",e._generateTernary("-(pow(2.0, 20.0 * VAL - 10.0) * sin((20.0 * VAL - 11.125) * ((2.0 * 3.1415) / 4.5))) / 2.0","(pow(2.0, -20.0 * VAL + 10.0) * sin((20.0 * VAL - 11.125) * ((2.0 * 3.1415) / 4.5))) / 2.0 + 1.0","VAL < 0.5"),"VAL == 1.0"),"VAL == 0.0");i=this._duplicateVector(o,r,n);break}}return n?e._emitFunction(s,`fn ${s}(v: ${r}) -> ${r}  {${i};}
`,""):e._emitFunction(s,`${r} ${s}(${r} v) {${i};}
`,""),e.compilationString+=e._declareOutput(t)+` = ${s}(${this.input.associatedVariableName});
`,this}serialize(){const e=super.serialize();return e.curveType=this.type,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.type=e.curveType}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.type = BABYLON.CurveBlockTypes.${Gs[this.type]};
`}}F([lt("Type",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"EaseInSine",value:Gs.EaseInSine},{label:"EaseOutSine",value:Gs.EaseOutSine},{label:"EaseInOutSine",value:Gs.EaseInOutSine},{label:"EaseInQuad",value:Gs.EaseInQuad},{label:"EaseOutQuad",value:Gs.EaseOutQuad},{label:"EaseInOutQuad",value:Gs.EaseInOutQuad},{label:"EaseInCubic",value:Gs.EaseInCubic},{label:"EaseOutCubic",value:Gs.EaseOutCubic},{label:"EaseInOutCubic",value:Gs.EaseInOutCubic},{label:"EaseInQuart",value:Gs.EaseInQuart},{label:"EaseOutQuart",value:Gs.EaseOutQuart},{label:"EaseInOutQuart",value:Gs.EaseInOutQuart},{label:"EaseInQuint",value:Gs.EaseInQuint},{label:"EaseOutQuint",value:Gs.EaseOutQuint},{label:"EaseInOutQuint",value:Gs.EaseInOutQuint},{label:"EaseInExpo",value:Gs.EaseInExpo},{label:"EaseOutExpo",value:Gs.EaseOutExpo},{label:"EaseInOutExpo",value:Gs.EaseInOutExpo},{label:"EaseInCirc",value:Gs.EaseInCirc},{label:"EaseOutCirc",value:Gs.EaseOutCirc},{label:"EaseInOutCirc",value:Gs.EaseInOutCirc},{label:"EaseInBack",value:Gs.EaseInBack},{label:"EaseOutBack",value:Gs.EaseOutBack},{label:"EaseInOutBack",value:Gs.EaseInOutBack},{label:"EaseInElastic",value:Gs.EaseInElastic},{label:"EaseOutElastic",value:Gs.EaseOutElastic},{label:"EaseInOutElastic",value:Gs.EaseInOutElastic}]})],_re.prototype,"type",void 0),ve("BABYLON.CurveBlock",_re);class K5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("rgb ",$.Color3,!0),this.registerInput("hsl ",$.Color3,!0),this.registerOutput("rgb",$.Color3),this.registerOutput("hsl",$.Color3)}getClassName(){return"ColorConverterBlock"}get rgbIn(){return this._inputs[0]}get hslIn(){return this._inputs[1]}get rgbOut(){return this._outputs[0]}get hslOut(){return this._outputs[1]}_inputRename(e){return e==="rgb "?"rgbIn":e==="hsl "?"hslIn":e}_buildBlock(e){super._buildBlock(e);const t=this.rgbIn,i=this.hslIn,s=this._outputs[0],r=this._outputs[1],n=e._getShaderType($.Vector3);let o=`
            vec3 rgb2hsl(vec3 color) {
                float r = color.r;
                float g = color.g;
                float b = color.b;

                float maxc = max(r, max(g, b));
                float minc = min(r, min(g, b));
                float h = 0.0;
                float s = 0.0;
                float l = (maxc + minc) / 2.0;

                if (maxc != minc) {
                    float d = maxc - minc;
                    if (l > 0.5) {
                        s = d / (2.0 - maxc - minc);
                    } else {
                        s = d / (maxc + minc);
                    }

                    if (maxc == r) {
                        float add = 0.0;
                        if (g < b) {
                            add = 6.0;
                        }
                        h = (g - b) / d + add;
                    } else if (maxc == g) {
                        h = (b - r) / d + 2.0;
                    } else if (maxc == b) {
                        h = (r - g) / d + 4.0;
                    }
                    h /= 6.0;
                }

                return vec3(h, s, l);
            }`,l=`
            float hue2rgb(float p, float q, float tt) {
                float t = tt;
                if (t < 0.0) {
                    t += 1.0;
                }
                if (t > 1.0) {
                    t -= 1.0;
                }
                if (t < 1.0/6.0) {
                    return p + (q - p) * 6.0 * t;
                }
                if (t < 1.0/2.0) {
                    return q;
                }
                if (t < 2.0/3.0) {
                    return p + (q - p) * (2.0/3.0 - t) * 6.0;
                }
                return p;
            }`,c=`
            vec3 hsl2rgb(vec3 hsl) {
                float h = hsl.x;
                float s = hsl.y;
                float l = hsl.z;

                float r;
                float g;
                float b;

                if (s == 0.0) {
                    // Achromatic (grey)
                    r = l;
                    g = l;
                    b = l; 
                } else {
                    float q;
                
                    if (l < 0.5) {
                        q = l * (1.0 + s);
                    } else {
                        q = (l + s - l * s);
                    }

                    float p = 2.0 * l - q;

                    r = hue2rgb(p, q, h + 1.0/3.0);
                    g = hue2rgb(p, q, h);
                    b = hue2rgb(p, q, h - 1.0/3.0);
                }

                return vec3(r, g, b);
            }`;return e.shaderLanguage===1&&(o=e._babylonSLtoWGSL(o),l=e._babylonSLtoWGSL(l),c=e._babylonSLtoWGSL(c)),e._emitFunction("rgb2hsl",o,""),e._emitFunction("hue2rgb",l,""),e._emitFunction("hsl2rgb",c,""),t.isConnected?(s.hasEndpoints&&(e.compilationString+=e._declareOutput(s)+` = ${t.associatedVariableName};
`),r.hasEndpoints&&(e.compilationString+=e._declareOutput(r)+` = rgb2hsl(${t.associatedVariableName});
`)):i.isConnected?(s.hasEndpoints&&(e.compilationString+=e._declareOutput(s)+` = hsl2rgb(${i.associatedVariableName});
`),r.hasEndpoints&&(e.compilationString+=e._declareOutput(r)+` = ${i.associatedVariableName};
`)):(s.hasEndpoints&&(e.compilationString+=e._declareOutput(s)+` =  ${n}(0.);
`),r.hasEndpoints&&(e.compilationString+=e._declareOutput(r)+` =  ${n}(0.);
`)),this}}ve("BABYLON.ColorConverterBlock",K5e);class kL extends Di{constructor(e){super(e,Te.Neutral),this.iterations=4,this.registerInput("input",$.AutoDetect),this.registerInput("iterations",$.Float,!0),this.registerOutput("output",$.BasedOnInput),this.registerOutput("index",$.Float,Te.Fragment),this.registerOutput("loopID",$.Object,void 0,new Vn("loopID",this,1,kL,"LoopBlock")),this._outputs[0]._typeConnectionSource=this._inputs[0],this._outputs[0]._forPostBuild=!0,this._outputs[2]._redirectedSource=this._inputs[0],this._outputs[1]._preventBubbleUp=!0,this._outputs[2]._preventBubbleUp=!0}getClassName(){return"LoopBlock"}get input(){return this._inputs[0]}get iterationsInput(){return this._inputs[1]}get output(){return this._outputs[0]}get index(){return this._outputs[1]}get loopID(){return this._outputs[2]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=this._outputs[1],s=e._getFreeVariableName("index"),r=e.shaderLanguage===1?"var":"int",n=e.shaderLanguage===1?"f32":"float",o=e.shaderLanguage===1?"i32":"int";e.compilationString+=e._declareOutput(t)+` = ${this.input.associatedVariableName};
`;const l=this.iterationsInput.isConnected?`${o}(${this.iterationsInput.associatedVariableName})`:this.iterations;return e.compilationString+=`for (${r} ${s} = 0; ${s} < ${l}; ${s}++){
`,e.compilationString+=`${e._declareOutput(i)} = ${n}(${s});
`,this}_postBuildBlock(e){return super._postBuildBlock(e),e.compilationString+=`}
`,this}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.iterations = ${this.iterations};
`}serialize(){const e=super.serialize();return e.iterations=this.iterations,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.iterations=e.iterations}}F([lt("Iterations",2,void 0,{embedded:!0})],kL.prototype,"iterations",void 0),ve("BABYLON.LoopBlock",kL);class q5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("loopID",$.Object,!1,void 0,new Vn("loopID",this,0,kL,"LoopBlock")),this.registerOutput("value",$.AutoDetect),this._outputs[0]._linkedConnectionSource=this._inputs[0]}getClassName(){return"StorageReadBlock"}get loopID(){return this._inputs[0]}get value(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this.value;if(!this.loopID.isConnected)return this;const i=this.loopID.connectedPoint.ownerBlock;return e.compilationString+=e._declareOutput(t)+` = ${i.output.associatedVariableName};
`,this}}ve("BABYLON.StorageReadBlock",q5e);class Q5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("loopID",$.Object,!1,void 0,new Vn("loopID",this,0,kL,"LoopBlock")),this.registerInput("value",$.AutoDetect),this._linkConnectionTypes(0,1)}getClassName(){return"StorageWriteBlock"}get loopID(){return this._inputs[0]}get value(){return this._inputs[1]}isConnectedInFragmentShader(){return this.loopID.isConnected?this.loopID.connectedPoint.ownerBlock.output.isConnectedInFragmentShader:!1}_buildBlock(e){super._buildBlock(e);const t=this.value;if(!this.loopID.isConnected)return this;const i=this.loopID.connectedPoint.ownerBlock;return e.compilationString+=`${i.output.associatedVariableName} = ${t.associatedVariableName};
`,this}}ve("BABYLON.StorageWriteBlock",Q5e);class J5e extends Di{constructor(e){super(e,Te.Neutral),this.registerInput("input",$.Matrix),this.registerOutput("row0",$.Vector4),this.registerOutput("row1",$.Vector4),this.registerOutput("row2",$.Vector4),this.registerOutput("row3",$.Vector4),this.registerOutput("col0",$.Vector4),this.registerOutput("col1",$.Vector4),this.registerOutput("col2",$.Vector4),this.registerOutput("col3",$.Vector4)}getClassName(){return"MatrixSplitterBlock"}get input(){return this._inputs[0]}get row0(){return this._outputs[0]}get row1(){return this._outputs[1]}get row2(){return this._outputs[2]}get row3(){return this._outputs[3]}get col0(){return this._outputs[4]}get col1(){return this._outputs[5]}get col2(){return this._outputs[6]}get col3(){return this._outputs[7]}_exportColumn(e,t,i,s){const r=e.shaderLanguage===1?"vec4f":"vec4";e.compilationString+=e._declareOutput(t)+` = ${r}(${i}[0][${s}], ${i}[1][${s}], ${i}[2][${s}], ${i}[3][${s}]);
`}_buildBlock(e){super._buildBlock(e);const t=this._inputs[0].associatedVariableName,i=this.row0,s=this.row1,r=this.row2,n=this.row3,o=this.col0,l=this.col1,c=this.col2,u=this.col3;return i.hasEndpoints&&(e.compilationString+=e._declareOutput(i)+` = ${t}[0];
`),s.hasEndpoints&&(e.compilationString+=e._declareOutput(s)+` = ${t}[1];
`),r.hasEndpoints&&(e.compilationString+=e._declareOutput(r)+` = ${t}[2];
`),n.hasEndpoints&&(e.compilationString+=e._declareOutput(n)+` = ${t}[3];
`),o.hasEndpoints&&this._exportColumn(e,o,t,0),l.hasEndpoints&&this._exportColumn(e,l,t,1),c.hasEndpoints&&this._exportColumn(e,c,t,2),u.hasEndpoints&&this._exportColumn(e,u,t,3),this}}ve("BABYLON.MatrixSplitterBlock",J5e);const vre="gaussianSplattingVertexDeclaration",$5e=`attribute position: vec2f;
`;H.IncludesShadersStoreWGSL[vre]||(H.IncludesShadersStoreWGSL[vre]=$5e);const sWe={name:vre,shader:$5e};class Are extends Di{get isActive(){return this._isActive&&this.debug.isConnected}set isActive(e){this._isActive!==e&&(this._isActive=e)}constructor(e){super(e,Te.Fragment,!0,!0),this._isActive=!1,this.renderAlpha=!1,this.registerInput("debug",$.AutoDetect,!0),this.debug.excludedConnectionPointTypes.push($.Matrix)}get _isFinalOutputAndActive(){return this.isActive}get _hasPrecedence(){return!0}get debug(){return this._inputs[0]}getClassName(){return"NodeMaterialDebugBlock"}_buildBlock(e){if(super._buildBlock(e),!this._isActive)return this;let t="gl_FragColor";e.shaderLanguage===1&&(t="fragmentOutputs.color");const i=this.debug;return i.connectedPoint?(i.connectedPoint.type===$.Float?e.compilationString+=`${t}  = vec4${e.fSuffix}(${i.associatedVariableName}, ${i.associatedVariableName}, ${i.associatedVariableName}, 1.0);
`:i.connectedPoint.type===$.Vector2?e.compilationString+=`${t}  = vec4${e.fSuffix}(${i.associatedVariableName}, 0., 1.0);
`:i.connectedPoint.type===$.Color3||i.connectedPoint.type===$.Vector3?e.compilationString+=`${t}  = vec4${e.fSuffix}(${i.associatedVariableName}, 1.0);
`:this.renderAlpha?e.compilationString+=`${t}  =${i.associatedVariableName};
`:e.compilationString+=`${t}  = vec4${e.fSuffix}(${i.associatedVariableName}.rgb, 1.0);
`,this):this}serialize(){const e=super.serialize();return e.isActive=this._isActive,e.renderAlpha=this.renderAlpha,e}_deserialize(e,t,i){super._deserialize(e,t,i),this.isActive=e.isActive,this.renderAlpha=e.renderAlpha}}F([lt("Render Alpha",0,void 0)],Are.prototype,"renderAlpha",void 0),ve("BABYLON.NodeMaterialDebugBlock",Are);class rWe{optimize(e,t){}}class nWe{constructor(){this.mm=new Map}get(e,t){const i=this.mm.get(e);if(i!==void 0)return i.get(t)}set(e,t,i){let s=this.mm.get(e);s===void 0&&this.mm.set(e,s=new Map),s.set(t,i)}}class aWe{get standalone(){var e;return((e=this._options)==null?void 0:e.standalone)??!1}get baseMaterial(){return this._baseMaterial}get doNotInjectCode(){var e;return((e=this._options)==null?void 0:e.doNotInjectCode)??!1}constructor(e,t,i){this._baseMaterial=e,this._scene=t??ei.LastCreatedScene,this._options=i,this._subMeshToEffect=new Map,this._subMeshToDepthWrapper=new nWe,this._meshes=new Map,this._onEffectCreatedObserver=this._baseMaterial.onEffectCreatedObservable.add(s=>{var n,o;const r=(n=s.subMesh)==null?void 0:n.getMesh();r&&!this._meshes.has(r)&&this._meshes.set(r,r.onDisposeObservable.add(l=>{const c=this._subMeshToEffect.keys();for(let u=c.next();u.done!==!0;u=c.next()){const f=u.value;(f==null?void 0:f.getMesh())===l&&(this._subMeshToEffect.delete(f),this._deleteDepthWrapperEffect(f))}})),((o=this._subMeshToEffect.get(s.subMesh))==null?void 0:o[0])!==s.effect&&(this._subMeshToEffect.set(s.subMesh,[s.effect,this._scene.getEngine().currentRenderPassId]),this._deleteDepthWrapperEffect(s.subMesh))})}_deleteDepthWrapperEffect(e){const t=this._subMeshToDepthWrapper.mm.get(e);t&&(t.forEach(i=>{var s;(s=i.mainDrawWrapper.effect)==null||s.dispose()}),this._subMeshToDepthWrapper.mm.delete(e))}getEffect(e,t,i){var n;const s=(n=this._subMeshToDepthWrapper.mm.get(e))==null?void 0:n.get(t);if(!s)return null;let r=s.drawWrapper[i];return r||(r=s.drawWrapper[i]=new ql(this._scene.getEngine()),r.setEffect(s.mainDrawWrapper.effect,s.mainDrawWrapper.defines)),r}isReadyForSubMesh(e,t,i,s,r){var n;return this.standalone&&!this._baseMaterial.isReadyForSubMesh(e.getMesh(),e,s)?!1:((n=this._makeEffect(e,t,i,r))==null?void 0:n.isReady())??!1}dispose(){this._baseMaterial.onEffectCreatedObservable.remove(this._onEffectCreatedObserver),this._onEffectCreatedObserver=null;const e=this._meshes.entries();for(let t=e.next();t.done!==!0;t=e.next()){const[i,s]=t.value;i.onDisposeObservable.remove(s)}}_makeEffect(e,t,i,s){var _,d;const r=this._scene.getEngine(),n=this._subMeshToEffect.get(e);if(!n)return null;const[o,l]=n;let c=this._subMeshToDepthWrapper.get(e,i);if(!c){const h=new ql(r);h.defines=((_=e._getDrawWrapper(l))==null?void 0:_.defines)??null,c={drawWrapper:[],mainDrawWrapper:h,depthDefines:"",token:e3()},c.drawWrapper[s]=h,this._subMeshToDepthWrapper.set(e,i,c)}const u=t.join(`
`);if(c.mainDrawWrapper.effect&&u===c.depthDefines)return c.mainDrawWrapper.effect;c.depthDefines=u;const f=o.getUniformNames().slice();let p=o.vertexSourceCodeBeforeMigration,m=o.fragmentSourceCodeBeforeMigration;if(!this.doNotInjectCode){const h=this._options&&this._options.remappedVariables?`#include<shadowMapVertexNormalBias>(${this._options.remappedVariables.join(",")})`:"#include<shadowMapVertexNormalBias>",x=this._options&&this._options.remappedVariables?`#include<shadowMapVertexMetric>(${this._options.remappedVariables.join(",")})`:"#include<shadowMapVertexMetric>",A=this._options&&this._options.remappedVariables?`#include<shadowMapFragmentSoftTransparentShadow>(${this._options.remappedVariables.join(",")})`:"#include<shadowMapFragmentSoftTransparentShadow>",S="#include<shadowMapFragment>",E="#include<shadowMapVertexExtraDeclaration>";o.shaderLanguage===0?p=p.replace(/void\s+?main/g,`
${E}
void main`):p=p.replace(/@vertex/g,`
${E}
@vertex`),p=p.replace(/#define SHADOWDEPTH_NORMALBIAS|#define CUSTOM_VERTEX_UPDATE_WORLDPOS/g,h),p.indexOf("#define SHADOWDEPTH_METRIC")!==-1?p=p.replace(/#define SHADOWDEPTH_METRIC/g,x):p=p.replace(/}\s*$/g,x+`
}`),p=p.replace(/#define SHADER_NAME.*?\n|out vec4 glFragColor;\n/g,"");const b=m.indexOf("#define SHADOWDEPTH_SOFTTRANSPARENTSHADOW")>=0||m.indexOf("#define CUSTOM_FRAGMENT_BEFORE_FOG")>=0,M=m.indexOf("#define SHADOWDEPTH_FRAGMENT")!==-1;let T="";b?m=m.replace(/#define SHADOWDEPTH_SOFTTRANSPARENTSHADOW|#define CUSTOM_FRAGMENT_BEFORE_FOG/g,A):T=A+`
`,m=m.replace(/void\s+?main/g,Ls.IncludesShadersStore.shadowMapFragmentExtraDeclaration+`
void main`),M?m=m.replace(/#define SHADOWDEPTH_FRAGMENT/g,S):T+=S+`
`,T&&(m=m.replace(/}\s*$/g,T+"}")),f.push("biasAndScaleSM","depthValuesSM","lightDataSM","softTransparentShadowSM")}c.mainDrawWrapper.effect=r.createEffect({vertexSource:p,fragmentSource:m,vertexToken:c.token,fragmentToken:c.token},{attributes:o.getAttributesNames(),uniformsNames:f,uniformBuffersNames:o.getUniformBuffersNames(),samplers:o.getSamplers(),defines:u+`
`+o.defines.replace("#define SHADOWS","").replace(/#define SHADOW\d/g,""),indexParameters:o.getIndexParameters(),shaderLanguage:o.shaderLanguage},r);for(let h=0;h<c.drawWrapper.length;++h)h!==s&&((d=c.drawWrapper[h])==null||d.setEffect(c.mainDrawWrapper.effect,c.mainDrawWrapper.defines));return c.mainDrawWrapper.effect}}var Cre;(function(a){a[a.Created=1]="Created",a[a.Disposed=2]="Disposed",a[a.GetDefineNames=4]="GetDefineNames",a[a.PrepareUniformBuffer=8]="PrepareUniformBuffer",a[a.IsReadyForSubMesh=16]="IsReadyForSubMesh",a[a.PrepareDefines=32]="PrepareDefines",a[a.BindForSubMesh=64]="BindForSubMesh",a[a.PrepareEffect=128]="PrepareEffect",a[a.GetAnimatables=256]="GetAnimatables",a[a.GetActiveTextures=512]="GetActiveTextures",a[a.HasTexture=1024]="HasTexture",a[a.FillRenderTargetTextures=2048]="FillRenderTargetTextures",a[a.HasRenderTargetTextures=4096]="HasRenderTargetTextures",a[a.HardBindForSubMesh=8192]="HardBindForSubMesh"})(Cre||(Cre={}));class eAe extends Br{constructor(){super(...arguments),this.DECAL=!1,this.DECALDIRECTUV=0,this.DECAL_SMOOTHALPHA=!1,this.GAMMADECAL=!1}}class yO extends Uu{_markAllSubMeshesAsTexturesDirty(){this._enable(this._isEnabled),this._internalMarkAllSubMeshesAsTexturesDirty()}isCompatible(){return!0}constructor(e,t=!0){super(e,"DecalMap",150,new eAe,t),this._isEnabled=!1,this.isEnabled=!1,this._smoothAlpha=!1,this.smoothAlpha=!1,this.registerForExtraEvents=!0,this._internalMarkAllSubMeshesAsTexturesDirty=e._dirtyCallbacks[1]}isReadyForSubMesh(e,t,i,s){const r=s.getMesh().decalMap;return!this._isEnabled||!(r!=null&&r.texture)||!Pt.DecalMapEnabled||!t.texturesEnabled?!0:r.isReady()}prepareDefinesBeforeAttributes(e,t,i){const s=i.decalMap;!this._isEnabled||!(s!=null&&s.texture)||!Pt.DecalMapEnabled||!t.texturesEnabled?(e.DECAL&&e.markAsTexturesDirty(),e.DECAL=!1):((!e.DECAL||e.GAMMADECAL!==s.texture.gammaSpace)&&e.markAsTexturesDirty(),e.DECAL=!0,e.GAMMADECAL=s.texture.gammaSpace,e.DECAL_SMOOTHALPHA=this._smoothAlpha,En(s.texture,e,"DECAL"))}hardBindForSubMesh(e,t,i,s){const r=s.getMesh().decalMap;if(!this._isEnabled||!(r!=null&&r.texture)||!Pt.DecalMapEnabled||!t.texturesEnabled)return;const n=this._material.isFrozen,o=r.texture;(!e.useUbo||!n||!e.isSync)&&(e.updateFloat4("vDecalInfos",o.coordinatesIndex,0,0,0),Tn(o,e,"decal")),e.setTexture("decalSampler",o)}getClassName(){return"DecalMapConfiguration"}getSamplers(e){e.push("decalSampler")}getUniforms(){return{ubo:[{name:"vDecalInfos",size:4,type:"vec4"},{name:"decalMatrix",size:16,type:"mat4"}]}}}F([G(),et("_markAllSubMeshesAsTexturesDirty")],yO.prototype,"isEnabled",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],yO.prototype,"smoothAlpha",void 0),ve("BABYLON.DecalMapConfiguration",yO);function oWe(a){return a instanceof Bs?new kT(a):null}function lWe(a){return a instanceof Bs?new Jl(a):null}function cWe(a){return a instanceof Bs?new $l(a):null}function uWe(a){return a instanceof Bs?new ld(a):null}function hWe(a){return a instanceof Bs?new Q6(a):null}function dWe(a){return a instanceof Bs?new Na(a):null}function fWe(a){return a instanceof Bs||a instanceof Bt?new eb(a):null}class kc{}kc.DEFAULT_COLOR=Pe.White(),kc.DEFAULT_WIDTH_ATTENUATED=1,kc.DEFAULT_WIDTH=.1;class Zr{static ConvertPoints(e,t){if(e.length&&Array.isArray(e)&&typeof e[0]=="number")return[e];if(e.length&&Array.isArray(e[0])&&typeof e[0][0]=="number")return e;if(e.length&&!Array.isArray(e[0])&&e[0]instanceof P){const i=[];for(let s=0;s<e.length;s++){const r=e[s];i.push(r.x,r.y,r.z)}return[i]}else if(e.length>0&&Array.isArray(e[0])&&e[0].length>0&&e[0][0]instanceof P){const i=[];return e.forEach(r=>{i.push(r.flatMap(n=>[n.x,n.y,n.z]))}),i}else if(e instanceof Float32Array)if(t!=null&&t.floatArrayStride){const i=[],s=t.floatArrayStride*3;for(let r=0;r<e.length;r+=s){const n=new Array(s);for(let o=0;o<s;o++)n[o]=e[r+o];i.push(n)}return i}else return[Array.from(e)];else if(e.length&&e[0]instanceof Float32Array){const i=[];return e.forEach(s=>{i.push(Array.from(s))}),i}return[]}static OmitZeroLengthPredicate(e,t,i){const s=[];return t.subtract(e).lengthSquared()>0&&s.push([e,t]),i.subtract(t).lengthSquared()>0&&s.push([t,i]),e.subtract(i).lengthSquared()>0&&s.push([i,e]),s.length===0?null:s}static OmitDuplicatesPredicate(e,t,i,s){const r=[];return Zr._SearchInPoints(e,t,s)||r.push([e,t]),Zr._SearchInPoints(t,i,s)||r.push([t,i]),Zr._SearchInPoints(i,e,s)||r.push([i,e]),r.length===0?null:r}static _SearchInPoints(e,t,i){var s,r,n;for(const o of i)for(let l=0;l<o.length;l++)if((s=o[l])!=null&&s.equals(e)&&((r=o[l+1])!=null&&r.equals(t)||(n=o[l-1])!=null&&n.equals(t)))return!0;return!1}static MeshesToLines(e,t){const i=[];return e.forEach((s,r)=>{const n=s.getVerticesData(q.PositionKind),o=s.getIndices();if(n&&o)for(let l=0,c=0;l<o.length;l++){const u=o[c++]*3,f=o[c++]*3,p=o[c++]*3,m=new P(n[u],n[u+1],n[u+2]),_=new P(n[f],n[f+1],n[f+2]),d=new P(n[p],n[p+1],n[p+2]);if(t){const h=t(m,_,d,i,l,u,s,r,n,o);if(h)for(const x of h)i.push(x)}else i.push([m,_],[_,d],[d,m])}}),i}static ToVector3Array(e){if(Array.isArray(e[0])){const s=[],r=e;for(const n of r){const o=[];for(let l=0;l<n.length;l+=3)o.push(new P(n[l],n[l+1],n[l+2]));s.push(o)}return s}const t=e,i=[];for(let s=0;s<t.length;s+=3)i.push(new P(t[s],t[s+1],t[s+2]));return i}static ToNumberArray(e){return e.flatMap(t=>[t.x,t.y,t.z])}static GetPointsCountInfo(e){const t=new Array(e.length);let i=0;for(let s=e.length;s--;)t[s]=e[s].length/3,i+=t[s];return{total:i,counts:t}}static GetLineLength(e){if(e.length===0)return 0;let t;typeof e[0]=="number"?t=Zr.ToVector3Array(e):t=e;const i=ae.Vector3[0];let s=0;for(let r=0;r<t.length-1;r++){const n=t[r],o=t[r+1];s+=o.subtractToRef(n,i).length()}return s}static GetLineLengthArray(e){const t=new Float32Array(e.length/3);let i=0;for(let s=0,r=e.length/3-1;s<r;s++){let n=e[s*3+0],o=e[s*3+1],l=e[s*3+2];n-=e[s*3+3],o-=e[s*3+4],l-=e[s*3+5];const c=Math.sqrt(n*n+o*o+l*l);i+=c,t[s+1]=i}return t}static SegmentizeSegmentByCount(e,t,i){const s=[],r=t.subtract(e),n=ae.Vector3[0];n.setAll(i);const o=ae.Vector3[1];r.divideToRef(n,o);let l=e.clone();s.push(l);for(let c=0;c<i;c++)l=l.clone(),s.push(l.addInPlace(o));return s}static SegmentizeLineBySegmentLength(e,t){const i=e[0]instanceof P?Zr.GetLineSegments(e):typeof e[0]=="number"?Zr.GetLineSegments(Zr.ToVector3Array(e)):e,s=[];return i.forEach(r=>{r.length>t?Zr.SegmentizeSegmentByCount(r.point1,r.point2,Math.ceil(r.length/t)).forEach(o=>{s.push(o)}):(s.push(r.point1),s.push(r.point2))}),s}static SegmentizeLineBySegmentCount(e,t){const i=typeof e[0]=="number"?Zr.ToVector3Array(e):e,s=Zr.GetLineLength(i)/t;return Zr.SegmentizeLineBySegmentLength(i,s)}static GetLineSegments(e){const t=[];for(let i=0;i<e.length-1;i++){const s=e[i],r=e[i+1],n=r.subtract(s).length();t.push({point1:s,point2:r,length:n})}return t}static GetMinMaxSegmentLength(e){const i=Zr.GetLineSegments(e).sort(s=>s.length);return{min:i[0].length,max:i[i.length-1].length}}static GetPositionOnLineByVisibility(e,t,i,s=!1){const r=t*i;let n=0,o=0;const l=e.length;for(let u=0;u<l;u++){if(r<=n+e[u].length){o=u;break}n+=e[u].length}const c=(r-n)/e[o].length;return e[o].point2.subtractToRef(e[o].point1,ae.Vector3[0]),ae.Vector3[1]=ae.Vector3[0].multiplyByFloats(c,c,c),s||ae.Vector3[1].addInPlace(e[o].point1),ae.Vector3[1].clone()}static GetCircleLinePoints(e,t,i=0,s=e,r=Math.PI*2/t){const n=[];for(let o=0;o<=t;o++)n.push(new P(Math.cos(o*r)*e,Math.sin(o*r)*s,i));return n}static GetBezierLinePoints(e,t,i,s){return Yv.CreateQuadraticBezier(e,t,i,s).getPoints().flatMap(r=>[r.x,r.y,r.z])}static GetArrowCap(e,t,i,s,r,n=0,o=0){return{points:[e.clone(),e.add(t.multiplyByFloats(i,i,i))],widths:[s,r,n,o]}}static GetPointsFromText(e,t,i,s,r=0,n=!0){const o=[],l=aq(e,t,i,s);for(const c of l){for(const u of c.paths){const f=[],p=u.getPoints();for(const m of p)f.push(m.x,m.y,r);o.push(f)}if(n)for(const u of c.holes){const f=[],p=u.getPoints();for(const m of p)f.push(m.x,m.y,r);o.push(f)}}return o}static Color3toRGBAUint8(e){const t=new Uint8Array(e.length*4);for(let i=0,s=0;i<e.length;i++)t[s++]=e[i].r*255,t[s++]=e[i].g*255,t[s++]=e[i].b*255,t[s++]=255;return t}static CreateColorsTexture(e,t,i,s){const r=s.getEngine().getCaps().maxTextureSize??1,n=t.length>r?r:t.length,o=Math.ceil(t.length/r);o>1&&(t=[...t,...Array(n*o-t.length).fill(t[0])]);const l=Zr.Color3toRGBAUint8(t),c=new Ur(l,n,o,Qt.TEXTUREFORMAT_RGBA,s,!1,!0,i);return c.name=e,c}static PrepareEmptyColorsTexture(e){if(!kc.EmptyColorsTexture){const t=new Uint8Array(4);kc.EmptyColorsTexture=new Ur(t,1,1,Qt.TEXTUREFORMAT_RGBA,e,!1,!1,Ur.NEAREST_NEAREST),kc.EmptyColorsTexture.name="grlEmptyColorsTexture"}return kc.EmptyColorsTexture}static DisposeEmptyColorsTexture(){var e;(e=kc.EmptyColorsTexture)==null||e.dispose(),kc.EmptyColorsTexture=null}static BooleanToNumber(e){return e?1:0}}function pWe(a,e){if(a==="vertex"){const t={CUSTOM_VERTEX_DEFINITIONS:`
                attribute float grl_widths;
                attribute vec3 grl_offsets;
                attribute float grl_colorPointers;
                varying float grlCounters;
                varying float grlColorPointer;

                #ifdef GREASED_LINE_CAMERA_FACING
                    attribute vec4 grl_previousAndSide;
                    attribute vec4 grl_nextAndCounters;

                    vec2 grlFix( vec4 i, float aspect ) {
                        vec2 res = i.xy / i.w;
                        res.x *= aspect;
                        return res;
                    }
                #else
                    attribute vec3 grl_slopes;
                    attribute float grl_counters;
                #endif
                `,CUSTOM_VERTEX_UPDATE_POSITION:`
                #ifdef GREASED_LINE_CAMERA_FACING
                    vec3 grlPositionOffset = grl_offsets;
                    positionUpdated += grlPositionOffset;
                #else
                    positionUpdated = (positionUpdated + grl_offsets) + (grl_slopes * grl_widths);
                #endif
                `,CUSTOM_VERTEX_MAIN_END:`
                grlColorPointer = grl_colorPointers;

                #ifdef GREASED_LINE_CAMERA_FACING

                    float grlAspect = grl_aspect_resolution_lineWidth.x;
                    float grlBaseWidth = grl_aspect_resolution_lineWidth.w;

                    vec3 grlPrevious = grl_previousAndSide.xyz;
                    float grlSide = grl_previousAndSide.w;

                    vec3 grlNext = grl_nextAndCounters.xyz;
                    grlCounters = grl_nextAndCounters.w;
                    float grlWidth = grlBaseWidth * grl_widths;
                    
                    vec3 worldDir = normalize(grlNext - grlPrevious);
                    vec3 nearPosition = positionUpdated + (worldDir * 0.001);
                    mat4 grlMatrix = viewProjection * finalWorld;
                    vec4 grlFinalPosition = grlMatrix * vec4(positionUpdated , 1.0);
                    vec4 screenNearPos = grlMatrix * vec4(nearPosition, 1.0);
                    vec2 grlLinePosition = grlFix(grlFinalPosition, grlAspect);
                    vec2 grlLineNearPosition = grlFix(screenNearPos, grlAspect);
                    vec2 grlDir = normalize(grlLineNearPosition - grlLinePosition);

                    vec4 grlNormal = vec4(-grlDir.y, grlDir.x, 0., 1.);

                    #ifdef GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM
                        grlNormal.xy *= -.5 * grlWidth;
                    #else
                        grlNormal.xy *= .5 * grlWidth;
                    #endif

                    grlNormal *= grl_projection;

                    #ifdef GREASED_LINE_SIZE_ATTENUATION
                        grlNormal.xy *= grlFinalPosition.w;
                        grlNormal.xy /= (vec4(grl_aspect_resolution_lineWidth.yz, 0., 1.) * grl_projection).xy;
                    #endif

                    grlFinalPosition.xy += grlNormal.xy * grlSide;
                    gl_Position = grlFinalPosition;

                    vPositionW = vec3(grlFinalPosition);
                #else
                    grlCounters = grl_counters;
                #endif
                `};return e&&(t["!gl_Position\\=viewProjection\\*worldPos;"]="//"),t}return a==="fragment"?{CUSTOM_FRAGMENT_DEFINITIONS:`
                    #ifdef PBR
                         #define grlFinalColor finalColor
                    #else
                         #define grlFinalColor color
                    #endif

                    varying float grlCounters;
                    varying float grlColorPointer;
                    uniform sampler2D grl_colors;
                `,CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR:`
                    float grlColorMode = grl_colorMode_visibility_colorsWidth_useColors.x;
                    float grlVisibility = grl_colorMode_visibility_colorsWidth_useColors.y;
                    float grlColorsWidth = grl_colorMode_visibility_colorsWidth_useColors.z;
                    float grlUseColors = grl_colorMode_visibility_colorsWidth_useColors.w;

                    float grlUseDash = grl_dashOptions.x;
                    float grlDashArray = grl_dashOptions.y;
                    float grlDashOffset = grl_dashOptions.z;
                    float grlDashRatio = grl_dashOptions.w;

                    grlFinalColor.a *= step(grlCounters, grlVisibility);
                    if(grlFinalColor.a == 0.) discard;

                    if(grlUseDash == 1.){
                        grlFinalColor.a *= ceil(mod(grlCounters + grlDashOffset, grlDashArray) - (grlDashArray * grlDashRatio));
                        if (grlFinalColor.a == 0.) discard;
                    }

                    #ifdef GREASED_LINE_HAS_COLOR
                        if (grlColorMode == 0.) {
                            grlFinalColor.rgb = grl_singleColor;
                        } else if (grlColorMode == 1.) {
                            grlFinalColor.rgb += grl_singleColor;
                        } else if (grlColorMode == 2.) {
                            grlFinalColor.rgb *= grl_singleColor;
                        }
                    #else
                        if (grlUseColors == 1.) {
                            #ifdef GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE
                                vec4 grlColor = texture2D(grl_colors, vec2(grlCounters, 0.), 0.);
                            #else
                                vec2 lookup = vec2(fract(grlColorPointer / grl_textureSize.x), 1.0 - floor(grlColorPointer / grl_textureSize.x) / max(grl_textureSize.y - 1.0, 1.0));
                                vec4 grlColor = texture2D(grl_colors, lookup, 0.0);
                            #endif
                            if (grlColorMode == 0.) {
                                grlFinalColor = grlColor;
                            } else if (grlColorMode == 1.) {
                                grlFinalColor += grlColor;
                            } else if (grlColorMode == 2.) {
                                grlFinalColor *= grlColor;
                            }
                        }
                    #endif
                `}:null}function mWe(a,e){if(a==="vertex"){const t={CUSTOM_VERTEX_DEFINITIONS:`
                attribute grl_widths: f32;
                attribute grl_colorPointers: f32;
                varying grlCounters: f32;
                varying grlColorPointer: f32;

                #ifdef GREASED_LINE_USE_OFFSETS
                    attribute grl_offsets: vec3f;   
                #endif

                #ifdef GREASED_LINE_CAMERA_FACING
                    attribute grl_previousAndSide : vec4f;
                    attribute grl_nextAndCounters : vec4f;

                    fn grlFix(i: vec4f, aspect: f32) -> vec2f {
                        var res = i.xy / i.w;
                        res.x *= aspect;
                        return res;
                    }
                #else
                    attribute grl_slopes: f32;
                    attribute grl_counters: f32;
                #endif


                `,CUSTOM_VERTEX_UPDATE_POSITION:`
                #ifdef GREASED_LINE_USE_OFFSETS
                    var grlPositionOffset: vec3f = input.grl_offsets;
                #else
                    var grlPositionOffset = vec3f(0.);
                #endif

                #ifdef GREASED_LINE_CAMERA_FACING
                    positionUpdated += grlPositionOffset;
                #else
                    positionUpdated = (positionUpdated + grlPositionOffset) + (input.grl_slopes * input.grl_widths);
                #endif
                `,CUSTOM_VERTEX_MAIN_END:`
                vertexOutputs.grlColorPointer = input.grl_colorPointers;

                #ifdef GREASED_LINE_CAMERA_FACING

                    let grlAspect: f32 = uniforms.grl_aspect_resolution_lineWidth.x;
                    let grlBaseWidth: f32 = uniforms.grl_aspect_resolution_lineWidth.w;

                    let grlPrevious: vec3f = input.grl_previousAndSide.xyz;
                    let grlSide: f32 = input.grl_previousAndSide.w;

                    let grlNext: vec3f = input.grl_nextAndCounters.xyz;
                    vertexOutputs.grlCounters = input.grl_nextAndCounters.w;

                    let grlWidth: f32 = grlBaseWidth * input.grl_widths;

                    let worldDir: vec3f = normalize(grlNext - grlPrevious);
                    let nearPosition: vec3f = positionUpdated + (worldDir * 0.001);
                    let grlMatrix: mat4x4f = uniforms.viewProjection * finalWorld;
                    let grlFinalPosition: vec4f = grlMatrix * vec4f(positionUpdated, 1.0); 
                    let screenNearPos: vec4f = grlMatrix * vec4(nearPosition, 1.0);
                    let grlLinePosition: vec2f = grlFix(grlFinalPosition, grlAspect);
                    let grlLineNearPosition: vec2f = grlFix(screenNearPos, grlAspect);
                    let grlDir: vec2f = normalize(grlLineNearPosition - grlLinePosition);

                    var grlNormal: vec4f = vec4f(-grlDir.y, grlDir.x, 0.0, 1.0);

                    let grlHalfWidth: f32 = 0.5 * grlWidth;
                    #if defined(GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM)
                        grlNormal.x *= -grlHalfWidth;
                        grlNormal.y *= -grlHalfWidth;
                    #else
                        grlNormal.x *= grlHalfWidth;
                        grlNormal.y *= grlHalfWidth;
                    #endif

                    grlNormal *= uniforms.grl_projection;

                    #if defined(GREASED_LINE_SIZE_ATTENUATION)
                        grlNormal.x *= grlFinalPosition.w;
                        grlNormal.y *= grlFinalPosition.w;

                        let pr = vec4f(uniforms.grl_aspect_resolution_lineWidth.yz, 0.0, 1.0) * uniforms.grl_projection;
                        grlNormal.x /= pr.x;
                        grlNormal.y /= pr.y;
                    #endif

                    vertexOutputs.position = vec4f(grlFinalPosition.xy + grlNormal.xy * grlSide, grlFinalPosition.z, grlFinalPosition.w);
                    vertexOutputs.vPositionW = vertexOutputs.position.xyz;
                
                #else
                    vertexOutputs.grlCounters = input.grl_counters;
                #endif
                `};return e&&(t["!vertexOutputs\\.position\\s=\\sscene\\.viewProjection\\s\\*\\sworldPos;"]="//"),t}return a==="fragment"?{CUSTOM_FRAGMENT_DEFINITIONS:`
                    #ifdef PBR
                         #define grlFinalColor finalColor
                    #else
                         #define grlFinalColor color
                    #endif

                    varying grlCounters: f32;
                    varying grlColorPointer: 32;

                    var grl_colors: texture_2d<f32>;
                    var grl_colorsSampler: sampler;
                `,CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR:`
                    let grlColorMode: f32 = uniforms.grl_colorMode_visibility_colorsWidth_useColors.x;
                    let grlVisibility: f32 = uniforms.grl_colorMode_visibility_colorsWidth_useColors.y;
                    let grlColorsWidth: f32 = uniforms.grl_colorMode_visibility_colorsWidth_useColors.z;
                    let grlUseColors: f32 = uniforms.grl_colorMode_visibility_colorsWidth_useColors.w;

                    let grlUseDash: f32 = uniforms.grl_dashOptions.x;
                    let grlDashArray: f32 = uniforms.grl_dashOptions.y;
                    let grlDashOffset: f32 = uniforms.grl_dashOptions.z;
                    let grlDashRatio: f32 = uniforms.grl_dashOptions.w;

                    grlFinalColor.a *= step(fragmentInputs.grlCounters, grlVisibility);
                    if (grlFinalColor.a == 0.0) {
                        discard;
                    }

                    if (grlUseDash == 1.0) {
                        let dashPosition = (fragmentInputs.grlCounters + grlDashOffset) % grlDashArray;
                        grlFinalColor.a *= ceil(dashPosition - (grlDashArray * grlDashRatio));

                        if (grlFinalColor.a == 0.0) {
                            discard;
                        }
                    }

                    #ifdef GREASED_LINE_HAS_COLOR
                        if (grlColorMode == 0.) {
                            grlFinalColor = vec4f(uniforms.grl_singleColor, grlFinalColor.a);
                        } else if (grlColorMode == 1.) {
                            grlFinalColor += vec4f(uniforms.grl_singleColor, grlFinalColor.a);
                        } else if (grlColorMode == 2.) {
                            grlFinalColor *= vec4f(uniforms.grl_singleColor, grlFinalColor.a);
                        }
                    #else
                        if (grlUseColors == 1.) {
                            #ifdef GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE
                                let grlColor: vec4f = textureSample(grl_colors, grl_colorsSampler, vec2f(fragmentInputs.grlCounters, 0.));
                            #else
                                let lookup: vec2f = vec2(fract(fragmentInputs.grlColorPointer / uniforms.grl_textureSize.x), 1.0 - floor(fragmentInputs.grlColorPointer / uniforms.grl_textureSize.x) / max(uniforms.grl_textureSize.y - 1.0, 1.0));
                                let grlColor: vec4f = textureSample(grl_colors, grl_colorsSampler, lookup);
                            #endif
                            if (grlColorMode == 0.) {
                                grlFinalColor = grlColor;
                            } else if (grlColorMode == 1.) {
                                grlFinalColor += grlColor;
                            } else if (grlColorMode == 2.) {
                                grlFinalColor *= grlColor;
                            }
                        }
                    #endif


                `}:null}class tAe extends Br{constructor(){super(...arguments),this.GREASED_LINE_HAS_COLOR=!1,this.GREASED_LINE_SIZE_ATTENUATION=!1,this.GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE=!1,this.GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM=!1,this.GREASED_LINE_CAMERA_FACING=!0,this.GREASED_LINE_USE_OFFSETS=!1}}class h_ extends Uu{isCompatible(e){return!0}constructor(e,t,i){i=i||{color:kc.DEFAULT_COLOR};const s=new tAe;s.GREASED_LINE_HAS_COLOR=!!i.color&&!i.useColors,s.GREASED_LINE_SIZE_ATTENUATION=i.sizeAttenuation??!1,s.GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE=i.colorDistributionType===1,s.GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM=(t??e.getScene()).useRightHandedSystem,s.GREASED_LINE_CAMERA_FACING=i.cameraFacing??!0,super(e,h_.GREASED_LINE_MATERIAL_NAME,200,s,!0,!0),this.colorsTexture=null,this._forceGLSL=!1,this._forceGLSL=(i==null?void 0:i.forceGLSL)||h_.ForceGLSL,this._scene=t??e.getScene(),this._engine=this._scene.getEngine(),this._cameraFacing=i.cameraFacing??!0,this.visibility=i.visibility??1,this.useDash=i.useDash??!1,this.dashRatio=i.dashRatio??.5,this.dashOffset=i.dashOffset??0,this.width=i.width?i.width:i.sizeAttenuation?kc.DEFAULT_WIDTH_ATTENUATED:kc.DEFAULT_WIDTH,this._sizeAttenuation=i.sizeAttenuation??!1,this.colorMode=i.colorMode??0,this._color=i.color??null,this.useColors=i.useColors??!1,this._colorsDistributionType=i.colorDistributionType??0,this.colorsSampling=i.colorsSampling??Ur.NEAREST_NEAREST,this._colors=i.colors??null,this.dashCount=i.dashCount??1,this.resolution=i.resolution??new Ue(this._engine.getRenderWidth(),this._engine.getRenderHeight()),i.colorsTexture?this.colorsTexture=i.colorsTexture:this._colors?this.colorsTexture=Zr.CreateColorsTexture(`${e.name}-colors-texture`,this._colors,this.colorsSampling,this._scene):(this._color=this._color??kc.DEFAULT_COLOR,Zr.PrepareEmptyColorsTexture(this._scene)),this._engine.onDisposeObservable.add(()=>{Zr.DisposeEmptyColorsTexture()})}getAttributes(e){e.push("grl_offsets"),e.push("grl_widths"),e.push("grl_colorPointers"),e.push("grl_counters"),this._cameraFacing?(e.push("grl_previousAndSide"),e.push("grl_nextAndCounters")):e.push("grl_slopes")}getSamplers(e){e.push("grl_colors")}getActiveTextures(e){this.colorsTexture&&e.push(this.colorsTexture)}getUniforms(e=0){const t=[{name:"grl_singleColor",size:3,type:"vec3"},{name:"grl_textureSize",size:2,type:"vec2"},{name:"grl_dashOptions",size:4,type:"vec4"},{name:"grl_colorMode_visibility_colorsWidth_useColors",size:4,type:"vec4"}];return this._cameraFacing&&t.push({name:"grl_projection",size:16,type:"mat4"},{name:"grl_aspect_resolution_lineWidth",size:4,type:"vec4"}),e===1&&t.push({name:"viewProjection",size:16,type:"mat4"}),{ubo:t,vertex:this._cameraFacing&&this._isGLSL(e)?`
                    uniform vec4 grl_aspect_resolution_lineWidth;
                    uniform mat4 grl_projection;
    `:"",fragment:this._isGLSL(e)?`
                    uniform vec4 grl_dashOptions;
                    uniform vec2 grl_textureSize;
                    uniform vec4 grl_colorMode_visibility_colorsWidth_useColors;
                    uniform vec3 grl_singleColor;
    `:""}}get isEnabled(){return!0}bindForSubMesh(e){if(this._cameraFacing){e.updateMatrix("grl_projection",this._scene.getProjectionMatrix()),!this._isGLSL(this._material.shaderLanguage)&&e.updateMatrix("viewProjection",this._scene.getTransformMatrix());const r=ae.Vector4[0];r.x=this._aspect,r.y=this._resolution.x,r.z=this._resolution.y,r.w=this.width,e.updateVector4("grl_aspect_resolution_lineWidth",r)}const t=ae.Vector4[0];t.x=Zr.BooleanToNumber(this.useDash),t.y=this._dashArray,t.z=this.dashOffset,t.w=this.dashRatio,e.updateVector4("grl_dashOptions",t);const i=ae.Vector4[1];i.x=this.colorMode,i.y=this.visibility,i.z=this.colorsTexture?this.colorsTexture.getSize().width:0,i.w=Zr.BooleanToNumber(this.useColors),e.updateVector4("grl_colorMode_visibility_colorsWidth_useColors",i),this._color&&e.updateColor3("grl_singleColor",this._color);const s=this.colorsTexture??kc.EmptyColorsTexture;e.setTexture("grl_colors",s),e.updateFloat2("grl_textureSize",(s==null?void 0:s.getSize().width)??1,(s==null?void 0:s.getSize().height)??1)}prepareDefines(e,t,i){e.GREASED_LINE_HAS_COLOR=!!this.color&&!this.useColors,e.GREASED_LINE_SIZE_ATTENUATION=this._sizeAttenuation,e.GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE=this._colorsDistributionType===1,e.GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM=t.useRightHandedSystem,e.GREASED_LINE_CAMERA_FACING=this._cameraFacing,e.GREASED_LINE_USE_OFFSETS=!!i.offsets}getClassName(){return h_.GREASED_LINE_MATERIAL_NAME}getCustomCode(e,t=0){return this._isGLSL(t)?pWe(e,this._cameraFacing):mWe(e,this._cameraFacing)}dispose(){var e;(e=this.colorsTexture)==null||e.dispose(),super.dispose()}get colors(){return this._colors}set colors(e){this.setColors(e)}setColors(e,t=!1,i=!1){var r,n,o;const s=((r=this._colors)==null?void 0:r.length)??0;if(this._colors=e,e===null||e.length===0){(n=this.colorsTexture)==null||n.dispose();return}if(!(t&&!i))if(this.colorsTexture&&s===e.length&&!i){const l=Zr.Color3toRGBAUint8(e);this.colorsTexture.update(l)}else(o=this.colorsTexture)==null||o.dispose(),this.colorsTexture=Zr.CreateColorsTexture(`${this._material.name}-colors-texture`,e,this.colorsSampling,this._scene)}updateLazy(){this._colors&&this.setColors(this._colors,!1,!0)}get dashCount(){return this._dashCount}set dashCount(e){this._dashCount=e,this._dashArray=1/e}get sizeAttenuation(){return this._sizeAttenuation}set sizeAttenuation(e){this._sizeAttenuation=e,this.markAllDefinesAsDirty()}get color(){return this._color}set color(e){this.setColor(e)}setColor(e,t=!1){this._color===null&&e!==null||this._color!==null&&e===null?(this._color=e,!t&&this.markAllDefinesAsDirty()):this._color=e}get colorsDistributionType(){return this._colorsDistributionType}set colorsDistributionType(e){this._colorsDistributionType=e,this.markAllDefinesAsDirty()}get resolution(){return this._resolution}set resolution(e){this._aspect=e.x/e.y,this._resolution=e}serialize(){const e=super.serialize(),t={colorDistributionType:this._colorsDistributionType,colorsSampling:this.colorsSampling,colorMode:this.colorMode,dashCount:this._dashCount,dashOffset:this.dashOffset,dashRatio:this.dashRatio,resolution:this._resolution,sizeAttenuation:this._sizeAttenuation,useColors:this.useColors,useDash:this.useDash,visibility:this.visibility,width:this.width};return this._colors&&(t.colors=this._colors),this._color&&(t.color=this._color),e.greasedLineMaterialOptions=t,e}parse(e,t,i){var r;super.parse(e,t,i);const s=e.greasedLineMaterialOptions;(r=this.colorsTexture)==null||r.dispose(),s.color&&this.setColor(s.color,!0),s.colorDistributionType&&(this.colorsDistributionType=s.colorDistributionType),s.colors&&(this.colors=s.colors),s.colorsSampling&&(this.colorsSampling=s.colorsSampling),s.colorMode&&(this.colorMode=s.colorMode),s.useColors&&(this.useColors=s.useColors),s.visibility&&(this.visibility=s.visibility),s.useDash&&(this.useDash=s.useDash),s.dashCount&&(this.dashCount=s.dashCount),s.dashRatio&&(this.dashRatio=s.dashRatio),s.dashOffset&&(this.dashOffset=s.dashOffset),s.width&&(this.width=s.width),s.sizeAttenuation&&(this.sizeAttenuation=s.sizeAttenuation),s.resolution&&(this.resolution=s.resolution),this.colors?this.colorsTexture=Zr.CreateColorsTexture(`${this._material.name}-colors-texture`,this.colors,this.colorsSampling,t):Zr.PrepareEmptyColorsTexture(t),this.markAllDefinesAsDirty()}copyTo(e){var i;const t=e;(i=t.colorsTexture)==null||i.dispose(),this._colors&&(t.colorsTexture=Zr.CreateColorsTexture(`${t._material.name}-colors-texture`,this._colors,t.colorsSampling,this._scene)),t.setColor(this.color,!0),t.colorsDistributionType=this.colorsDistributionType,t.colorsSampling=this.colorsSampling,t.colorMode=this.colorMode,t.useColors=this.useColors,t.visibility=this.visibility,t.useDash=this.useDash,t.dashCount=this.dashCount,t.dashRatio=this.dashRatio,t.dashOffset=this.dashOffset,t.width=this.width,t.sizeAttenuation=this.sizeAttenuation,t.resolution=this.resolution,t.markAllDefinesAsDirty()}_isGLSL(e){return e===0||this._forceGLSL}}h_.GREASED_LINE_MATERIAL_NAME="GreasedLinePluginMaterial",h_.ForceGLSL=!1,ve(`BABYLON.${h_.GREASED_LINE_MATERIAL_NAME}`,h_);const iAe="GREASED_LINE_USE_OFFSETS";class UL extends Fo{constructor(e,t,i){const s=t.getEngine(),r=s.isWebGPU&&!(i.forceGLSL||UL.ForceGLSL),n=["COLOR_DISTRIBUTION_TYPE_LINE 1.","COLOR_DISTRIBUTION_TYPE_SEGMENT 0.","COLOR_MODE_SET 0.","COLOR_MODE_ADD 1.","COLOR_MODE_MULTIPLY 2."];t.useRightHandedSystem&&n.push("GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM");const o=["position","grl_widths","grl_offsets","grl_colorPointers"];i.cameraFacing?(n.push("GREASED_LINE_CAMERA_FACING"),o.push("grl_previousAndSide","grl_nextAndCounters")):(o.push("grl_slopes"),o.push("grl_counters"));const l=["grlColorsWidth","grlUseColors","grlWidth","grlColor","grl_colorModeAndColorDistributionType","grlResolution","grlAspect","grlAizeAttenuation","grlDashArray","grlDashOffset","grlDashRatio","grlUseDash","grlVisibility","grlColors"];if(r||l.push("world","viewProjection","view","projection"),super(e,t,{vertex:"greasedLine",fragment:"greasedLine"},{uniformBuffers:r?["Scene","Mesh"]:void 0,attributes:o,uniforms:l,samplers:r?[]:["grlColors"],defines:n,extraInitializationsAsync:async()=>{r?await Promise.all([Promise.resolve().then(()=>kWe),Promise.resolve().then(()=>FWe)]):await Promise.all([Promise.resolve().then(()=>zWe),Promise.resolve().then(()=>BWe)])},shaderLanguage:r?1:0}),this._color=Pe.White(),this._colorsDistributionType=0,this._colorsTexture=null,i=i||{color:kc.DEFAULT_COLOR},this.visibility=i.visibility??1,this.useDash=i.useDash??!1,this.dashRatio=i.dashRatio??.5,this.dashOffset=i.dashOffset??0,this.dashCount=i.dashCount??1,this.width=i.width?i.width:i.sizeAttenuation&&i.cameraFacing?kc.DEFAULT_WIDTH_ATTENUATED:kc.DEFAULT_WIDTH,this.sizeAttenuation=i.sizeAttenuation??!1,this.color=i.color??Pe.White(),this.useColors=i.useColors??!1,this.colorsDistributionType=i.colorDistributionType??0,this.colorsSampling=i.colorsSampling??Ur.NEAREST_NEAREST,this.colorMode=i.colorMode??0,this._colors=i.colors??null,this._cameraFacing=i.cameraFacing??!0,this.resolution=i.resolution??new Ue(s.getRenderWidth(),s.getRenderHeight()),i.colorsTexture?this.colorsTexture=i.colorsTexture:this._colors?this.colorsTexture=Zr.CreateColorsTexture(`${this.name}-colors-texture`,this._colors,this.colorsSampling,t):(this._color=this._color??kc.DEFAULT_COLOR,this.colorsTexture=Zr.PrepareEmptyColorsTexture(t)),r){const c=new JV;c.setParameters(),c.samplingMode=this.colorsSampling,this.setTextureSampler("grlColorsSampler",c)}s.onDisposeObservable.add(()=>{Zr.DisposeEmptyColorsTexture()})}dispose(){var e;(e=this._colorsTexture)==null||e.dispose(),super.dispose()}_setColorModeAndColorDistributionType(){this.setVector2("grl_colorModeAndColorDistributionType",new Ue(this._colorMode,this._colorsDistributionType))}updateLazy(){this._colors&&this.setColors(this._colors,!1,!0)}get colors(){return this._colors}set colors(e){this.setColors(e)}setColors(e,t=!1,i=!1){var r,n,o;const s=((r=this._colors)==null?void 0:r.length)??0;if(this._colors=e,e===null||e.length===0){(n=this._colorsTexture)==null||n.dispose();return}if(!(t&&!i))if(this._colorsTexture&&s===e.length&&!i){const l=Zr.Color3toRGBAUint8(e);this._colorsTexture.update(l)}else(o=this._colorsTexture)==null||o.dispose(),this.colorsTexture=Zr.CreateColorsTexture(`${this.name}-colors-texture`,e,this.colorsSampling,this.getScene())}get colorsTexture(){return this._colorsTexture??null}set colorsTexture(e){this._colorsTexture=e,this.setFloat("grlColorsWidth",this._colorsTexture.getSize().width),this.setTexture("grlColors",this._colorsTexture)}get width(){return this._width}set width(e){this._width=e,this.setFloat("grlWidth",e)}get useColors(){return this._useColors}set useColors(e){this._useColors=e,this.setFloat("grlUseColors",Zr.BooleanToNumber(e))}get colorsSampling(){return this._colorsSampling}set colorsSampling(e){this._colorsSampling=e}get visibility(){return this._visibility}set visibility(e){this._visibility=e,this.setFloat("grlVisibility",e)}get useDash(){return this._useDash}set useDash(e){this._useDash=e,this.setFloat("grlUseDash",Zr.BooleanToNumber(e))}get dashOffset(){return this._dashOffset}set dashOffset(e){this._dashOffset=e,this.setFloat("grlDashOffset",e)}get dashRatio(){return this._dashRatio}set dashRatio(e){this._dashRatio=e,this.setFloat("grlDashRatio",e)}get dashCount(){return this._dashCount}set dashCount(e){this._dashCount=e,this._dashArray=1/e,this.setFloat("grlDashArray",this._dashArray)}get sizeAttenuation(){return this._sizeAttenuation}set sizeAttenuation(e){this._sizeAttenuation=e,this.setFloat("grlSizeAttenuation",Zr.BooleanToNumber(e))}get color(){return this._color}set color(e){this.setColor(e)}setColor(e){e=e??kc.DEFAULT_COLOR,this._color=e,this.setColor3("grlColor",e)}get colorsDistributionType(){return this._colorsDistributionType}set colorsDistributionType(e){this._colorsDistributionType=e,this._setColorModeAndColorDistributionType()}get colorMode(){return this._colorMode}set colorMode(e){this._colorMode=e,this._setColorModeAndColorDistributionType()}get resolution(){return this._resolution}set resolution(e){this._resolution=e,this.setVector2("grlResolution",e),this.setFloat("grlAspect",e.x/e.y)}serialize(){const e=super.serialize(),t={colorDistributionType:this._colorsDistributionType,colorsSampling:this._colorsSampling,colorMode:this._colorMode,color:this._color,dashCount:this._dashCount,dashOffset:this._dashOffset,dashRatio:this._dashRatio,resolution:this._resolution,sizeAttenuation:this._sizeAttenuation,useColors:this._useColors,useDash:this._useDash,visibility:this._visibility,width:this._width,cameraFacing:this._cameraFacing};return this._colors&&(t.colors=this._colors),e.greasedLineMaterialOptions=t,e}parse(e,t,i){var r;const s=e.greasedLineMaterialOptions;(r=this._colorsTexture)==null||r.dispose(),s.color&&(this.color=s.color),s.colorDistributionType&&(this.colorsDistributionType=s.colorDistributionType),s.colorsSampling&&(this.colorsSampling=s.colorsSampling),s.colorMode&&(this.colorMode=s.colorMode),s.useColors&&(this.useColors=s.useColors),s.visibility&&(this.visibility=s.visibility),s.useDash&&(this.useDash=s.useDash),s.dashCount&&(this.dashCount=s.dashCount),s.dashRatio&&(this.dashRatio=s.dashRatio),s.dashOffset&&(this.dashOffset=s.dashOffset),s.width&&(this.width=s.width),s.sizeAttenuation&&(this.sizeAttenuation=s.sizeAttenuation),s.resolution&&(this.resolution=s.resolution),s.colors?this.colorsTexture=Zr.CreateColorsTexture(`${this.name}-colors-texture`,s.colors,this.colorsSampling,this.getScene()):this.colorsTexture=Zr.PrepareEmptyColorsTexture(t),this._cameraFacing=s.cameraFacing??!0,this.setDefine("GREASED_LINE_CAMERA_FACING",this._cameraFacing)}}UL.ForceGLSL=!1;var xre;(function(a){a[a.MATERIAL_TYPE_STANDARD=0]="MATERIAL_TYPE_STANDARD",a[a.MATERIAL_TYPE_PBR=1]="MATERIAL_TYPE_PBR",a[a.MATERIAL_TYPE_SIMPLE=2]="MATERIAL_TYPE_SIMPLE"})(xre||(xre={}));var bre;(function(a){a[a.COLOR_MODE_SET=0]="COLOR_MODE_SET",a[a.COLOR_MODE_ADD=1]="COLOR_MODE_ADD",a[a.COLOR_MODE_MULTIPLY=2]="COLOR_MODE_MULTIPLY"})(bre||(bre={}));var Sre;(function(a){a[a.COLOR_DISTRIBUTION_TYPE_SEGMENT=0]="COLOR_DISTRIBUTION_TYPE_SEGMENT",a[a.COLOR_DISTRIBUTION_TYPE_LINE=1]="COLOR_DISTRIBUTION_TYPE_LINE"})(Sre||(Sre={}));const gWe=`#if defined(DBG_ENABLED)
attribute float dbg_initialPass;
varying vec3 dbg_vBarycentric;
flat varying vec3 dbg_vVertexWorldPos;
flat varying float dbg_vPass;
#endif`,_We=`#if defined(DBG_ENABLED)
attribute dbg_initialPass: f32;
varying dbg_vBarycentric: vec3f;
varying dbg_vVertexWorldPos: vec3f;
varying dbg_vPass: f32;
#endif`,vWe=`#if defined(DBG_ENABLED)
float dbg_vertexIndex = mod(float(gl_VertexID), 3.);
if (dbg_vertexIndex == 0.0) { 
    dbg_vBarycentric = vec3(1.,0.,0.); 
}
else if (dbg_vertexIndex == 1.0) { 
    dbg_vBarycentric = vec3(0.,1.,0.); 
}
else { 
    dbg_vBarycentric = vec3(0.,0.,1.); 
}

dbg_vVertexWorldPos = vPositionW;
dbg_vPass = dbg_initialPass;
#endif`,AWe=`#if defined(DBG_ENABLED)
var dbg_vertexIndex = f32(input.vertexIndex) % 3.;
if (dbg_vertexIndex == 0.0) { 
    vertexOutputs.dbg_vBarycentric = vec3f(1.,0.,0.); 
}
else if (dbg_vertexIndex == 1.0) { 
    vertexOutputs.dbg_vBarycentric = vec3f(0.,1.,0.); 
}
else { 
    vertexOutputs.dbg_vBarycentric = vec3f(0.,0.,1.); 
}

vertexOutputs.dbg_vVertexWorldPos = vertexOutputs.vPositionW;
vertexOutputs.dbg_vPass = input.dbg_initialPass;
#endif`,CWe=`#if defined(DBG_ENABLED)
uniform vec3 dbg_shadedDiffuseColor;
uniform vec4 dbg_shadedSpecularColorPower;
uniform vec3 dbg_thicknessRadiusScale;

#if DBG_MODE == 2 || DBG_MODE == 3
    uniform vec3 dbg_vertexColor;
#endif

#if DBG_MODE == 1
    uniform vec3 dbg_wireframeTrianglesColor;
#elif DBG_MODE == 3
    uniform vec3 dbg_wireframeVerticesColor;
#elif DBG_MODE == 4 || DBG_MODE == 5
    uniform vec3 dbg_uvPrimaryColor;
    uniform vec3 dbg_uvSecondaryColor;
#elif DBG_MODE == 7
    uniform vec3 dbg_materialColor;
#endif
#endif`,xWe=`#if defined(DBG_ENABLED)
uniform dbg_shadedDiffuseColor: vec3f;
uniform dbg_shadedSpecularColorPower: vec4f;
uniform dbg_thicknessRadiusScale: vec3f;

#if DBG_MODE == 2 || DBG_MODE == 3
    uniform dbg_vertexColor: vec3f;
#endif

#if DBG_MODE == 1
    uniform dbg_wireframeTrianglesColor: vec3f;
#elif DBG_MODE == 3
    uniform  dbg_wireframeVerticesColor: vec3f;
#elif DBG_MODE == 4 || DBG_MODE == 5
    uniform dbg_uvPrimaryColor: vec3f;
    uniform dbg_uvSecondaryColor: vec3f;
#elif DBG_MODE == 7
    uniform dbg_materialColor: vec3f;
#endif
#endif`,bWe=`#if defined(DBG_ENABLED)
varying vec3 dbg_vBarycentric;
flat varying vec3 dbg_vVertexWorldPos;
flat varying float dbg_vPass;

#if !defined(DBG_MULTIPLY)
    vec3 dbg_applyShading(vec3 color) {
        vec3 N = vNormalW.xyz;
        vec3 L = normalize(vEyePosition.xyz - vPositionW.xyz);
        vec3 H = normalize(L + L);
        float LdotN = clamp(dot(L,N), 0., 1.);
        float HdotN = clamp(dot(H,N), 0., 1.);
        float specTerm = pow(HdotN, dbg_shadedSpecularColorPower.w);
        color *= (LdotN / PI);
        color += dbg_shadedSpecularColorPower.rgb * (specTerm / PI);
        return color;
    }
#endif

#if DBG_MODE == 1 || DBG_MODE == 3
    float dbg_edgeFactor() {
        vec3 d = fwidth(dbg_vBarycentric);
        vec3 a3 = smoothstep(vec3(0.), d * dbg_thicknessRadiusScale.x, dbg_vBarycentric);
        return min(min(a3.x, a3.y), a3.z);
    }
#endif

#if DBG_MODE == 2 || DBG_MODE == 3
    float dbg_cornerFactor() {
        vec3 worldPos = vPositionW;
        float dist = length(worldPos - dbg_vVertexWorldPos);
        float camDist = length(worldPos - vEyePosition.xyz);
        float d = sqrt(camDist) * .001;
        return smoothstep((dbg_thicknessRadiusScale.y * d), ((dbg_thicknessRadiusScale.y * 1.01) * d), dist);
    }
#endif

#if (DBG_MODE == 4 && defined(UV1)) || (DBG_MODE == 5 && defined(UV2))
    float dbg_checkerboardFactor(vec2 uv) {
        vec2 f = fract(uv * dbg_thicknessRadiusScale.z);
        f -= .5;
        return (f.x * f.y) > 0. ? 1. : 0.;
    }
#endif
#endif`,SWe=`#if defined(DBG_ENABLED)
varying dbg_vBarycentric: vec3f;
varying dbg_vVertexWorldPos: vec3f;
varying dbg_vPass: f32;

#if !defined(DBG_MULTIPLY)
    fn dbg_applyShading(color: vec3f) -> vec3f {
        var N = fragmentInputs.vNormalW.xyz;
        var L = normalize(scene.vEyePosition.xyz - fragmentInputs.vPositionW.xyz);
        var H = normalize(L + L);
        var LdotN = clamp(dot(L,N), 0., 1.);
        var HdotN = clamp(dot(H,N), 0., 1.);
        var specTerm = pow(HdotN, uniforms.dbg_shadedSpecularColorPower.w);
        var result = color * (LdotN / PI);
        result += uniforms.dbg_shadedSpecularColorPower.rgb * (specTerm / PI);
        return result;
    }
#endif

#if DBG_MODE == 1 || DBG_MODE == 3
    fn dbg_edgeFactor() -> f32 {
        var d = fwidth(fragmentInputs.dbg_vBarycentric);
        var a3 = smoothstep(vec3f(0.), d * uniforms.dbg_thicknessRadiusScale.x, fragmentInputs.dbg_vBarycentric);
        return min(min(a3.x, a3.y), a3.z);
    }
#endif

#if DBG_MODE == 2 || DBG_MODE == 3
    fn dbg_cornerFactor() -> f32 {
        var worldPos = fragmentInputs.vPositionW;
        float dist = length(worldPos - fragmentInputs.dbg_vVertexWorldPos);
        float camDist = length(worldPos - scene.vEyePosition.xyz);
        float d = sqrt(camDist) * .001;
        return smoothstep((uniforms.dbg_thicknessRadiusScale.y * d), ((uniforms.dbg_thicknessRadiusScale.y * 1.01) * d), dist);
    }
#endif

#if (DBG_MODE == 4 && defined(UV1)) || (DBG_MODE == 5 && defined(UV2))
    fn dbg_checkerboardFactor(uv: vec2f) -> f32 {
        var f = fract(uv * uniforms.dbg_thicknessRadiusScale.z);
        f -= .5;
        return (f.x * f.y) > 0. ? 1. : 0.;
    }
#endif
#endif`,yWe=`#if defined(DBG_ENABLED)
vec3 dbg_color = vec3(1.);
#if DBG_MODE == 1
    dbg_color = mix(dbg_wireframeTrianglesColor, vec3(1.), dbg_edgeFactor());
#elif DBG_MODE == 2 || DBG_MODE == 3
    float dbg_cornerFactor = dbg_cornerFactor();
    if (dbg_vPass == 0. && dbg_cornerFactor == 1.) discard;
    dbg_color = mix(dbg_vertexColor, vec3(1.), dbg_cornerFactor);
    #if DBG_MODE == 3
        dbg_color *= mix(dbg_wireframeVerticesColor, vec3(1.), dbg_edgeFactor());
    #endif
#elif DBG_MODE == 4 && defined(MAINUV1)
    dbg_color = mix(dbg_uvPrimaryColor, dbg_uvSecondaryColor, dbg_checkerboardFactor(vMainUV1));
#elif DBG_MODE == 5 && defined(MAINUV2)
    dbg_color = mix(dbg_uvPrimaryColor, dbg_uvSecondaryColor, dbg_checkerboardFactor(vMainUV2));
#elif DBG_MODE == 6 && defined(VERTEXCOLOR)
    dbg_color = vColor.rgb;
#elif DBG_MODE == 7
    dbg_color = dbg_materialColor;
#endif

#if defined(DBG_MULTIPLY)
    gl_FragColor *= vec4(dbg_color, 1.);
#else
    #if DBG_MODE != 6
        gl_FragColor = vec4(dbg_applyShading(dbg_shadedDiffuseColor) * dbg_color, 1.);
    #else
        gl_FragColor = vec4(dbg_color, 1.);
    #endif
#endif
#endif`,MWe=`#if defined(DBG_ENABLED)
var dbg_color = vec3f(1.);
#if DBG_MODE == 1
    dbg_color = mix(uniforms.dbg_wireframeTrianglesColor, vec3f(1.), dbg_edgeFactor());
#elif DBG_MODE == 2 || DBG_MODE == 3
    var dbg_cornerFactor = dbg_cornerFactor();
    if (fragmentInputs.dbg_vPass == 0. && dbg_cornerFactor == 1.) discard;
    dbg_color = mix(uniforms.dbg_vertexColor, vec3(1.), dbg_cornerFactor);
    #if DBG_MODE == 3
        dbg_color *= mix(uniforms.dbg_wireframeVerticesColor, vec3f(1.), dbg_edgeFactor());
    #endif
#elif DBG_MODE == 4 && defined(MAINUV1)
    dbg_color = mix(uniforms.dbg_uvPrimaryColor, uniforms.dbg_uvSecondaryColor, dbg_checkerboardFactor(fragmentInputs.vMainUV1));
#elif DBG_MODE == 5 && defined(MAINUV2)
    dbg_color = mix(uniforms.dbg_uvPrimaryColor, uniforms.dbg_uvSecondaryColor, dbg_checkerboardFactor(fragmentInputs.vMainUV2));
#elif DBG_MODE == 6 && defined(VERTEXCOLOR)
    dbg_color = fragmentInputs.vColor.rgb;
#elif DBG_MODE == 7
    dbg_color = uniforms.dbg_materialColor;
#endif

#if defined(DBG_MULTIPLY)
    fragmentOutputs.color *= vec4f(dbg_color, 1.);
#else
    #if DBG_MODE != 6
        fragmentOutputs.color = vec4f(dbg_applyShading(dbg_shadedDiffuseColor) * dbg_color, 1.);
    #else
        fragmentOutputs.color = vec4f(dbg_color, 1.);
    #endif
#endif
#endif`,sAe=[new Pe(.98,.26,.38),new Pe(.47,.75,.3),new Pe(0,.26,.77),new Pe(.97,.6,.76),new Pe(.19,.63,.78),new Pe(.98,.8,.6),new Pe(.65,.43,.15),new Pe(.15,.47,.22),new Pe(.67,.71,.86),new Pe(.09,.46,.56),new Pe(.8,.98,.02),new Pe(.39,.29,.13),new Pe(.53,.63,.06),new Pe(.95,.96,.41),new Pe(1,.72,.94),new Pe(.63,.08,.31),new Pe(.66,.96,.95),new Pe(.22,.14,.19),new Pe(.14,.65,.59),new Pe(.93,1,.68),new Pe(.93,.14,.44),new Pe(.47,.86,.67),new Pe(.85,.07,.78),new Pe(.53,.64,.98),new Pe(.43,.37,.56),new Pe(.71,.65,.25),new Pe(.66,.19,.01),new Pe(.94,.53,.12),new Pe(.41,.44,.44),new Pe(.24,.71,.96),new Pe(.57,.28,.56),new Pe(.44,.98,.42)];var yre;(function(a){a[a.NONE=0]="NONE",a[a.TRIANGLES=1]="TRIANGLES",a[a.VERTICES=2]="VERTICES",a[a.TRIANGLES_VERTICES=3]="TRIANGLES_VERTICES",a[a.UV0=4]="UV0",a[a.UV1=5]="UV1",a[a.VERTEXCOLORS=6]="VERTEXCOLORS",a[a.MATERIALIDS=7]="MATERIALIDS"})(yre||(yre={}));class EWe extends Br{constructor(){super(...arguments),this.DBG_MODE=0,this.DBG_MULTIPLY=!0,this.DBG_ENABLED=!0}}class Uc extends Uu{_markAllDefinesAsDirty(){this._enable(this._isEnabled),this.markAllDefinesAsDirty()}isCompatible(e){switch(e){case 0:case 1:return!0;default:return!1}}constructor(e,t={}){const i=new EWe;i.DBG_MODE=t.mode??i.DBG_MODE,i.DBG_MULTIPLY=t.multiply??i.DBG_MULTIPLY,super(e,"MeshDebug",200,i,!0,!0),this._mode=i.DBG_MODE,this._multiply=i.DBG_MULTIPLY,this.shadedDiffuseColor=t.shadedDiffuseColor??new Pe(1,1,1),this.shadedSpecularColor=t.shadedSpecularColor??new Pe(.8,.8,.8),this.shadedSpecularPower=t.shadedSpecularPower??10,this.wireframeThickness=t.wireframeThickness??.7,this.wireframeTrianglesColor=t.wireframeTrianglesColor??new Pe(0,0,0),this.wireframeVerticesColor=t.wireframeVerticesColor??new Pe(.8,.8,.8),this.vertexColor=t.vertexColor??new Pe(0,0,0),this.vertexRadius=t.vertexRadius??1.2,this.uvScale=t.uvScale??20,this.uvPrimaryColor=t.uvPrimaryColor??new Pe(1,1,1),this.uvSecondaryColor=t.uvSecondaryColor??new Pe(.5,.5,.5),this._materialColor=Uc.MaterialColors[Uc._PluginCount++%Uc.MaterialColors.length],this.isEnabled=!0}getClassName(){return"MeshDebugPluginMaterial"}get isEnabled(){return this._isEnabled}set isEnabled(e){if(this._isEnabled!==e){if(!this._material.getScene().getEngine().isWebGPU&&this._material.getScene().getEngine().version==1){de.Error("MeshDebugPluginMaterial is not supported on WebGL 1.0."),this._isEnabled=!1;return}this._isEnabled=e,this._markAllDefinesAsDirty()}}prepareDefines(e,t,i){(this._mode==2||this._mode==1||this._mode==3)&&!i.isVerticesDataPresent("dbg_initialPass")&&de.Warn("For best results with TRIANGLES, TRIANGLES_VERTICES, or VERTICES modes, please use MeshDebugPluginMaterial.PrepareMeshForTrianglesAndVerticesMode() on mesh.",1),e.DBG_MODE=this._mode,e.DBG_MULTIPLY=this._multiply,e.DBG_ENABLED=this._isEnabled}getAttributes(e){e.push("dbg_initialPass")}getUniforms(e=0){return{ubo:[{name:"dbg_shadedDiffuseColor",size:3,type:"vec3"},{name:"dbg_shadedSpecularColorPower",size:4,type:"vec4"},{name:"dbg_thicknessRadiusScale",size:3,type:"vec3"},{name:"dbg_wireframeTrianglesColor",size:3,type:"vec3"},{name:"dbg_wireframeVerticesColor",size:3,type:"vec3"},{name:"dbg_vertexColor",size:3,type:"vec3"},{name:"dbg_uvPrimaryColor",size:3,type:"vec3"},{name:"dbg_uvSecondaryColor",size:3,type:"vec3"},{name:"dbg_materialColor",size:3,type:"vec3"}],fragment:e===0?CWe:xWe}}bindForSubMesh(e){this._isEnabled&&(e.updateFloat3("dbg_shadedDiffuseColor",this.shadedDiffuseColor.r,this.shadedDiffuseColor.g,this.shadedDiffuseColor.b),e.updateFloat4("dbg_shadedSpecularColorPower",this.shadedSpecularColor.r,this.shadedSpecularColor.g,this.shadedSpecularColor.b,this.shadedSpecularPower),e.updateFloat3("dbg_thicknessRadiusScale",this.wireframeThickness,this.vertexRadius,this.uvScale),e.updateColor3("dbg_wireframeTrianglesColor",this.wireframeTrianglesColor),e.updateColor3("dbg_wireframeVerticesColor",this.wireframeVerticesColor),e.updateColor3("dbg_vertexColor",this.vertexColor),e.updateColor3("dbg_uvPrimaryColor",this.uvPrimaryColor),e.updateColor3("dbg_uvSecondaryColor",this.uvSecondaryColor),e.updateColor3("dbg_materialColor",this._materialColor))}getCustomCode(e,t=0){return t===1?e==="vertex"?{CUSTOM_VERTEX_DEFINITIONS:_We,CUSTOM_VERTEX_MAIN_END:AWe}:{CUSTOM_FRAGMENT_DEFINITIONS:SWe,CUSTOM_FRAGMENT_MAIN_END:MWe}:e==="vertex"?{CUSTOM_VERTEX_DEFINITIONS:gWe,CUSTOM_VERTEX_MAIN_END:vWe}:{CUSTOM_FRAGMENT_DEFINITIONS:bWe,CUSTOM_FRAGMENT_MAIN_END:yWe}}static Reset(){this._PluginCount=0,this.MaterialColors=sAe}static PrepareMeshForTrianglesAndVerticesMode(e,t=!1){let i=()=>{};if(e.getTotalIndices()==0)return i;if(t){const u=e.getVerticesDataKinds(),f=e.getIndices(),p={};for(const m of u)p[m]=e.getVerticesData(m);i=function(){e.setIndices(f);for(const m of u){const _=e.getVertexBuffer(m).getStrideSize();e.setVerticesData(m,p[m],void 0,_)}e.removeVerticesData("dbg_initialPass")}}let s=Array.from(e.getIndices());const r=[];for(let u=0;u<s.length;u+=3)r.push(s[u+1],s[u+2],s[u+0]);e.setIndices(s.concat(r)),e.convertToUnIndexedMesh(),e.isUnIndexed=!1,s=Array.from(e.getIndices());const n=[];for(let u=s.length/2;u<s.length;u+=3)n.push(s[u+1],s[u+2],s[u+0]);e.setIndices(s.concat(n));const o=e.getTotalVertices(),l=o/2,c=new Array(o).fill(1,0,l).fill(0,l,o);return e.setVerticesData("dbg_initialPass",c,!1,1),i}}Uc._PluginCount=0,Uc.MaterialColors=sAe,F([qs()],Uc.prototype,"_materialColor",void 0),F([G()],Uc.prototype,"_isEnabled",void 0),F([G(),et("_markAllDefinesAsDirty")],Uc.prototype,"mode",void 0),F([G(),et("_markAllDefinesAsDirty")],Uc.prototype,"multiply",void 0),F([qs()],Uc.prototype,"shadedDiffuseColor",void 0),F([qs()],Uc.prototype,"shadedSpecularColor",void 0),F([G()],Uc.prototype,"shadedSpecularPower",void 0),F([G()],Uc.prototype,"wireframeThickness",void 0),F([qs()],Uc.prototype,"wireframeTrianglesColor",void 0),F([qs()],Uc.prototype,"wireframeVerticesColor",void 0),F([qs()],Uc.prototype,"vertexColor",void 0),F([G()],Uc.prototype,"vertexRadius",void 0),F([G()],Uc.prototype,"uvScale",void 0),F([qs()],Uc.prototype,"uvPrimaryColor",void 0),F([qs()],Uc.prototype,"uvSecondaryColor",void 0),ve("BABYLON.MeshDebugPluginMaterial",Uc),Object.defineProperty(Bt.prototype,"decalMap",{get:function(){if(!this._decalMap){if(this._uniformBufferLayoutBuilt)return null;this._decalMap=new yO(this)}return this._decalMap},enumerable:!0,configurable:!0}),Object.defineProperty(Bs.prototype,"decalMap",{get:function(){if(!this._decalMap){if(this._uniformBufferLayoutBuilt)return null;this._decalMap=new yO(this)}return this._decalMap},enumerable:!0,configurable:!0}),Object.defineProperty(cr.prototype,"decalMap",{get:function(){return this._decalMap},set:function(a){this._decalMap=a},enumerable:!0,configurable:!0});const rAe="defaultFragmentDeclaration",TWe=`uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;uniform vec4 vSpecularColor;uniform vec3 vEmissiveColor;uniform vec3 vAmbientColor;uniform float visibility;
#ifdef DIFFUSE
uniform vec2 vDiffuseInfos;
#endif
#ifdef AMBIENT
uniform vec2 vAmbientInfos;
#endif
#ifdef OPACITY 
uniform vec2 vOpacityInfos;
#endif
#ifdef EMISSIVE
uniform vec2 vEmissiveInfos;
#endif
#ifdef LIGHTMAP
uniform vec2 vLightmapInfos;
#endif
#ifdef BUMP
uniform vec3 vBumpInfos;uniform vec2 vTangentSpaceParams;
#endif
#ifdef ALPHATEST
uniform float alphaCutOff;
#endif
#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(REFRACTION) || defined(PREPASS)
uniform mat4 view;
#endif
#ifdef REFRACTION
uniform vec4 vRefractionInfos;
#ifndef REFRACTIONMAP_3D
uniform mat4 refractionMatrix;
#endif
#ifdef REFRACTIONFRESNEL
uniform vec4 refractionLeftColor;uniform vec4 refractionRightColor;
#endif
#if defined(USE_LOCAL_REFRACTIONMAP_CUBIC) && defined(REFRACTIONMAP_3D)
uniform vec3 vRefractionPosition;uniform vec3 vRefractionSize; 
#endif
#endif
#if defined(SPECULAR) && defined(SPECULARTERM)
uniform vec2 vSpecularInfos;
#endif
#ifdef DIFFUSEFRESNEL
uniform vec4 diffuseLeftColor;uniform vec4 diffuseRightColor;
#endif
#ifdef OPACITYFRESNEL
uniform vec4 opacityParts;
#endif
#ifdef EMISSIVEFRESNEL
uniform vec4 emissiveLeftColor;uniform vec4 emissiveRightColor;
#endif
#if defined(REFLECTION) || (defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED))
uniform vec2 vReflectionInfos;
#if defined(REFLECTIONMAP_PLANAR) || defined(REFLECTIONMAP_CUBIC) || defined(REFLECTIONMAP_PROJECTION) || defined(REFLECTIONMAP_EQUIRECTANGULAR) || defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_SKYBOX)
uniform mat4 reflectionMatrix;
#endif
#ifndef REFLECTIONMAP_SKYBOX
#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)
uniform vec3 vReflectionPosition;uniform vec3 vReflectionSize; 
#endif
#endif
#ifdef REFLECTIONFRESNEL
uniform vec4 reflectionLeftColor;uniform vec4 reflectionRightColor;
#endif
#endif
#ifdef DETAIL
uniform vec4 vDetailInfos;
#endif
#include<decalFragmentDeclaration>
#define ADDITIONAL_FRAGMENT_DECLARATION
`;H.IncludesShadersStore[rAe]||(H.IncludesShadersStore[rAe]=TWe);const nAe="defaultUboDeclaration",LWe=`layout(std140,column_major) uniform;uniform Material
{vec4 diffuseLeftColor;vec4 diffuseRightColor;vec4 opacityParts;vec4 reflectionLeftColor;vec4 reflectionRightColor;vec4 refractionLeftColor;vec4 refractionRightColor;vec4 emissiveLeftColor;vec4 emissiveRightColor;vec2 vDiffuseInfos;vec2 vAmbientInfos;vec2 vOpacityInfos;vec2 vReflectionInfos;vec3 vReflectionPosition;vec3 vReflectionSize;vec2 vEmissiveInfos;vec2 vLightmapInfos;vec2 vSpecularInfos;vec3 vBumpInfos;mat4 diffuseMatrix;mat4 ambientMatrix;mat4 opacityMatrix;mat4 reflectionMatrix;mat4 emissiveMatrix;mat4 lightmapMatrix;mat4 specularMatrix;mat4 bumpMatrix;vec2 vTangentSpaceParams;float pointSize;float alphaCutOff;mat4 refractionMatrix;vec4 vRefractionInfos;vec3 vRefractionPosition;vec3 vRefractionSize;vec4 vSpecularColor;vec3 vEmissiveColor;vec4 vDiffuseColor;vec3 vAmbientColor;
#define ADDITIONAL_UBO_DECLARATION
};
#include<sceneUboDeclaration>
#include<meshUboDeclaration>
`;H.IncludesShadersStore[nAe]||(H.IncludesShadersStore[nAe]=LWe);const Mre="defaultPixelShader",aAe=`#define CUSTOM_FRAGMENT_EXTENSION
#include<__decl__defaultFragment>
#if defined(BUMP) || !defined(NORMAL)
#extension GL_OES_standard_derivatives : enable
#endif
#include<prePassDeclaration>[SCENE_MRT_COUNT]
#include<oitDeclaration>
#define CUSTOM_FRAGMENT_BEGIN
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
#include<mainUVVaryingDeclaration>[1..7]
#include<helperFunctions>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#include<samplerFragmentDeclaration>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_SAMPLERNAME_,diffuse)
#include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_SAMPLERNAME_,ambient)
#include<samplerFragmentDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_SAMPLERNAME_,opacity)
#include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_SAMPLERNAME_,emissive)
#include<samplerFragmentDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_SAMPLERNAME_,lightmap)
#include<samplerFragmentDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)
#ifdef REFRACTION
#ifdef REFRACTIONMAP_3D
uniform samplerCube refractionCubeSampler;
#else
uniform sampler2D refraction2DSampler;
#endif
#endif
#if defined(SPECULARTERM)
#include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_SAMPLERNAME_,specular)
#endif
#include<fresnelFunction>
#ifdef REFLECTION
#ifdef REFLECTIONMAP_3D
uniform samplerCube reflectionCubeSampler;
#else
uniform sampler2D reflection2DSampler;
#endif
#ifdef REFLECTIONMAP_SKYBOX
varying vec3 vPositionUVW;
#else
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
varying vec3 vDirectionW;
#endif
#endif
#include<reflectionFunction>
#endif
#include<imageProcessingDeclaration>
#include<imageProcessingFunctions>
#include<bumpFragmentMainFunctions>
#include<bumpFragmentFunctions>
#include<clipPlaneFragmentDeclaration>
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;
#ifdef NORMAL
vec3 normalW=normalize(vNormalW);
#else
vec3 normalW=normalize(-cross(dFdx(vPositionW),dFdy(vPositionW)));
#endif
#include<bumpFragment>
#ifdef TWOSIDEDLIGHTING
normalW=gl_FrontFacing ? normalW : -normalW;
#endif
#ifdef DIFFUSE
baseColor=texture2D(diffuseSampler,vDiffuseUV+uvOffset);
#if defined(ALPHATEST) && !defined(ALPHATEST_AFTERALLALPHACOMPUTATIONS)
if (baseColor.a<alphaCutOff)
discard;
#endif
#ifdef ALPHAFROMDIFFUSE
alpha*=baseColor.a;
#endif
#define CUSTOM_FRAGMENT_UPDATE_ALPHA
baseColor.rgb*=vDiffuseInfos.y;
#endif
#if defined(DECAL) && !defined(DECAL_AFTER_DETAIL)
vec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);
#include<decalFragment>(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)
#endif
#include<depthPrePass>
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
baseColor.rgb*=vColor.rgb;
#endif
#ifdef DETAIL
baseColor.rgb=baseColor.rgb*2.0*mix(0.5,detailColor.r,vDetailInfos.y);
#endif
#if defined(DECAL) && defined(DECAL_AFTER_DETAIL)
vec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);
#include<decalFragment>(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)
#endif
#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE
vec3 baseAmbientColor=vec3(1.,1.,1.);
#ifdef AMBIENT
baseAmbientColor=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb*vAmbientInfos.y;
#endif
#define CUSTOM_FRAGMENT_BEFORE_LIGHTS
float glossiness=vSpecularColor.a;vec3 specularColor=vSpecularColor.rgb;
#ifdef SPECULARTERM
#ifdef SPECULAR
vec4 specularMapColor=texture2D(specularSampler,vSpecularUV+uvOffset);specularColor=specularMapColor.rgb;
#ifdef GLOSSINESS
glossiness=glossiness*specularMapColor.a;
#endif
#endif
#endif
vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;
#ifdef SPECULARTERM
vec3 specularBase=vec3(0.,0.,0.);
#endif
float shadow=1.;float aggShadow=0.;float numLights=0.;
#ifdef LIGHTMAP
vec4 lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset);
#ifdef RGBDLIGHTMAP
lightmapColor.rgb=fromRGBD(lightmapColor);
#endif
lightmapColor.rgb*=vLightmapInfos.y;
#endif
#include<lightFragment>[0..maxSimultaneousLights]
aggShadow=aggShadow/numLights;vec4 refractionColor=vec4(0.,0.,0.,1.);
#ifdef REFRACTION
vec3 refractionVector=normalize(refract(-viewDirectionW,normalW,vRefractionInfos.y));
#ifdef REFRACTIONMAP_3D
#ifdef USE_LOCAL_REFRACTIONMAP_CUBIC
refractionVector=parallaxCorrectNormal(vPositionW,refractionVector,vRefractionSize,vRefractionPosition);
#endif
refractionVector.y=refractionVector.y*vRefractionInfos.w;vec4 refractionLookup=textureCube(refractionCubeSampler,refractionVector);if (dot(refractionVector,viewDirectionW)<1.0) {refractionColor=refractionLookup;}
#else
vec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));vec2 refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;refractionCoords.y=1.0-refractionCoords.y;refractionColor=texture2D(refraction2DSampler,refractionCoords);
#endif
#ifdef RGBDREFRACTION
refractionColor.rgb=fromRGBD(refractionColor);
#endif
#ifdef IS_REFRACTION_LINEAR
refractionColor.rgb=toGammaSpace(refractionColor.rgb);
#endif
refractionColor.rgb*=vRefractionInfos.x;
#endif
vec4 reflectionColor=vec4(0.,0.,0.,1.);
#ifdef REFLECTION
vec3 vReflectionUVW=computeReflectionCoords(vec4(vPositionW,1.0),normalW);
#ifdef REFLECTIONMAP_OPPOSITEZ
vReflectionUVW.z*=-1.0;
#endif
#ifdef REFLECTIONMAP_3D
#ifdef ROUGHNESS
float bias=vReflectionInfos.y;
#ifdef SPECULARTERM
#ifdef SPECULAR
#ifdef GLOSSINESS
bias*=(1.0-specularMapColor.a);
#endif
#endif
#endif
reflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW,bias);
#else
reflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW);
#endif
#else
vec2 coords=vReflectionUVW.xy;
#ifdef REFLECTIONMAP_PROJECTION
coords/=vReflectionUVW.z;
#endif
coords.y=1.0-coords.y;reflectionColor=texture2D(reflection2DSampler,coords);
#endif
#ifdef RGBDREFLECTION
reflectionColor.rgb=fromRGBD(reflectionColor);
#endif
#ifdef IS_REFLECTION_LINEAR
reflectionColor.rgb=toGammaSpace(reflectionColor.rgb);
#endif
reflectionColor.rgb*=vReflectionInfos.x;
#ifdef REFLECTIONFRESNEL
float reflectionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,reflectionRightColor.a,reflectionLeftColor.a);
#ifdef REFLECTIONFRESNELFROMSPECULAR
#ifdef SPECULARTERM
reflectionColor.rgb*=specularColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;
#else
reflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;
#endif
#else
reflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;
#endif
#endif
#endif
#ifdef REFRACTIONFRESNEL
float refractionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,refractionRightColor.a,refractionLeftColor.a);refractionColor.rgb*=refractionLeftColor.rgb*(1.0-refractionFresnelTerm)+refractionFresnelTerm*refractionRightColor.rgb;
#endif
#ifdef OPACITY
vec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);
#ifdef OPACITYRGB
opacityMap.rgb=opacityMap.rgb*vec3(0.3,0.59,0.11);alpha*=(opacityMap.x+opacityMap.y+opacityMap.z)* vOpacityInfos.y;
#else
alpha*=opacityMap.a*vOpacityInfos.y;
#endif
#endif
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
#ifdef OPACITYFRESNEL
float opacityFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,opacityParts.z,opacityParts.w);alpha+=opacityParts.x*(1.0-opacityFresnelTerm)+opacityFresnelTerm*opacityParts.y;
#endif
#ifdef ALPHATEST
#ifdef ALPHATEST_AFTERALLALPHACOMPUTATIONS
if (alpha<alphaCutOff)
discard;
#endif
#ifndef ALPHABLEND
alpha=1.0;
#endif
#endif
vec3 emissiveColor=vEmissiveColor;
#ifdef EMISSIVE
emissiveColor+=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb*vEmissiveInfos.y;
#endif
#ifdef EMISSIVEFRESNEL
float emissiveFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,emissiveRightColor.a,emissiveLeftColor.a);emissiveColor*=emissiveLeftColor.rgb*(1.0-emissiveFresnelTerm)+emissiveFresnelTerm*emissiveRightColor.rgb;
#endif
#ifdef DIFFUSEFRESNEL
float diffuseFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,diffuseRightColor.a,diffuseLeftColor.a);diffuseBase*=diffuseLeftColor.rgb*(1.0-diffuseFresnelTerm)+diffuseFresnelTerm*diffuseRightColor.rgb;
#endif
#ifdef EMISSIVEASILLUMINATION
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;
#else
#ifdef LINKEMISSIVEWITHDIFFUSE
vec3 finalDiffuse=clamp((diffuseBase+emissiveColor)*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;
#else
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor+emissiveColor+vAmbientColor,0.0,1.0)*baseColor.rgb;
#endif
#endif
#ifdef SPECULARTERM
vec3 finalSpecular=specularBase*specularColor;
#ifdef SPECULAROVERALPHA
alpha=clamp(alpha+dot(finalSpecular,vec3(0.3,0.59,0.11)),0.,1.);
#endif
#else
vec3 finalSpecular=vec3(0.0);
#endif
#ifdef REFLECTIONOVERALPHA
alpha=clamp(alpha+dot(reflectionColor.rgb,vec3(0.3,0.59,0.11)),0.,1.);
#endif
#ifdef EMISSIVEASILLUMINATION
vec4 color=vec4(clamp(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor.rgb+emissiveColor+refractionColor.rgb,0.0,1.0),alpha);
#else
vec4 color=vec4(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor.rgb+refractionColor.rgb,alpha);
#endif
#ifdef LIGHTMAP
#ifndef LIGHTMAPEXCLUDED
#ifdef USELIGHTMAPASSHADOWMAP
color.rgb*=lightmapColor.rgb;
#else
color.rgb+=lightmapColor.rgb;
#endif
#endif
#endif
#define CUSTOM_FRAGMENT_BEFORE_FOG
color.rgb=max(color.rgb,0.);
#include<logDepthFragment>
#include<fogFragment>
#ifdef IMAGEPROCESSINGPOSTPROCESS
color.rgb=toLinearSpace(color.rgb);
#else
#ifdef IMAGEPROCESSING
color.rgb=toLinearSpace(color.rgb);color=applyImageProcessing(color);
#endif
#endif
color.a*=visibility;
#ifdef PREMULTIPLYALPHA
color.rgb*=color.a;
#endif
#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR
#ifdef PREPASS
float writeGeometryInfo=color.a>0.4 ? 1.0 : 0.0;
#ifdef PREPASS_COLOR
gl_FragData[PREPASS_COLOR_INDEX]=color; 
#endif
#ifdef PREPASS_POSITION
gl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);
#endif
#ifdef PREPASS_LOCAL_POSITION
gl_FragData[PREPASS_LOCAL_POSITION_INDEX]=vec4(vPosition,writeGeometryInfo);
#endif
#if defined(PREPASS_VELOCITY)
vec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);
#elif defined(PREPASS_VELOCITY_LINEAR)
vec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w)-(vCurrentPosition.xy/vCurrentPosition.w));gl_FragData[PREPASS_VELOCITY_LINEAR_INDEX]=vec4(velocity,0.0,writeGeometryInfo);
#endif
#ifdef PREPASS_IRRADIANCE
gl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(0.0,0.0,0.0,writeGeometryInfo); 
#endif
#ifdef PREPASS_DEPTH
gl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo); 
#endif
#ifdef PREPASS_SCREENSPACE_DEPTH
gl_FragData[PREPASS_SCREENSPACE_DEPTH_INDEX]=vec4(gl_FragCoord.z,0.0,0.0,writeGeometryInfo);
#endif
#ifdef PREPASS_NORMAL
#ifdef PREPASS_NORMAL_WORLDSPACE
gl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalW,writeGeometryInfo);
#else
gl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo);
#endif
#endif
#ifdef PREPASS_WORLD_NORMAL
gl_FragData[PREPASS_WORLD_NORMAL_INDEX]=vec4(normalW*0.5+0.5,writeGeometryInfo);
#endif
#ifdef PREPASS_ALBEDO
gl_FragData[PREPASS_ALBEDO_INDEX]=vec4(baseColor.rgb,writeGeometryInfo);
#endif
#ifdef PREPASS_ALBEDO_SQRT
gl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(sqrt(baseColor.rgb),writeGeometryInfo);
#endif
#ifdef PREPASS_REFLECTIVITY
#if defined(SPECULAR)
gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularMapColor))*writeGeometryInfo; 
#else
gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularColor),1.0)*writeGeometryInfo;
#endif
#endif
#endif
#if !defined(PREPASS) || defined(WEBGL2)
gl_FragColor=color;
#endif
#include<oitFragment>
#if ORDER_INDEPENDENT_TRANSPARENCY
if (fragDepth==nearestDepth) {frontColor.rgb+=color.rgb*color.a*alphaMultiplier;frontColor.a=1.0-alphaMultiplier*(1.0-color.a);} else {backColor+=color;}
#endif
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStore[Mre]||(H.ShadersStore[Mre]=aAe);const oAe={name:Mre,shader:aAe},IWe=Object.freeze(Object.defineProperty({__proto__:null,defaultPixelShader:oAe},Symbol.toStringTag,{value:"Module"})),lAe="defaultVertexDeclaration",PWe=`uniform mat4 viewProjection;
#ifdef MULTIVIEW
mat4 viewProjectionR;
#endif 
uniform mat4 view;
#ifdef DIFFUSE
uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;
#endif
#ifdef AMBIENT
uniform mat4 ambientMatrix;uniform vec2 vAmbientInfos;
#endif
#ifdef OPACITY
uniform mat4 opacityMatrix;uniform vec2 vOpacityInfos;
#endif
#ifdef EMISSIVE
uniform vec2 vEmissiveInfos;uniform mat4 emissiveMatrix;
#endif
#ifdef LIGHTMAP
uniform vec2 vLightmapInfos;uniform mat4 lightmapMatrix;
#endif
#if defined(SPECULAR) && defined(SPECULARTERM)
uniform vec2 vSpecularInfos;uniform mat4 specularMatrix;
#endif
#ifdef BUMP
uniform vec3 vBumpInfos;uniform mat4 bumpMatrix;
#endif
#ifdef REFLECTION
uniform mat4 reflectionMatrix;
#endif
#ifdef POINTSIZE
uniform float pointSize;
#endif
#ifdef DETAIL
uniform vec4 vDetailInfos;uniform mat4 detailMatrix;
#endif
#include<decalVertexDeclaration>
#define ADDITIONAL_VERTEX_DECLARATION
`;H.IncludesShadersStore[lAe]||(H.IncludesShadersStore[lAe]=PWe);const Ere="defaultVertexShader",cAe=`#define CUSTOM_VERTEX_EXTENSION
#include<__decl__defaultVertex>
#define CUSTOM_VERTEX_BEGIN
attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#ifdef TANGENT
attribute vec4 tangent;
#endif
#ifdef UV1
attribute vec2 uv;
#endif
#include<uvAttributeDeclaration>[2..7]
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<helperFunctions>
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
#include<prePassVertexDeclaration>
#include<mainUVVaryingDeclaration>[1..7]
#include<samplerVertexDeclaration>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse)
#include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)
#include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)
#include<samplerVertexDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)
#include<samplerVertexDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)
#include<samplerVertexDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)
#if defined(SPECULARTERM)
#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular)
#endif
#include<samplerVertexDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)
#include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
#include<bumpVertexDeclaration>
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightVxFragment>[0..maxSimultaneousLights]
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#ifdef REFLECTIONMAP_SKYBOX
varying vec3 vPositionUVW;
#endif
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
varying vec3 vDirectionW;
#endif
#include<logDepthDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
vec3 positionUpdated=position;
#ifdef NORMAL
vec3 normalUpdated=normal;
#endif
#ifdef TANGENT
vec4 tangentUpdated=tangent;
#endif
#ifdef UV1
vec2 uvUpdated=uv;
#endif
#ifdef UV2
vec2 uv2Updated=uv2;
#endif
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#ifdef REFLECTIONMAP_SKYBOX
vPositionUVW=positionUpdated;
#endif
#define CUSTOM_VERTEX_UPDATE_POSITION
#define CUSTOM_VERTEX_UPDATE_NORMAL
#include<instancesVertex>
#if defined(PREPASS) && ((defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && !defined(BONES_VELOCITY_ENABLED)
vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
#endif
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(positionUpdated,1.0);
#ifdef NORMAL
mat3 normalWorld=mat3(finalWorld);
#if defined(INSTANCES) && defined(THIN_INSTANCES)
vNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vNormalW=normalize(normalWorld*vNormalW);
#else
#ifdef NONUNIFORMSCALING
normalWorld=transposeMat3(inverseMat3(normalWorld));
#endif
vNormalW=normalize(normalWorld*normalUpdated);
#endif
#endif
#define CUSTOM_VERTEX_UPDATE_WORLDPOS
#ifdef MULTIVIEW
if (gl_ViewID_OVR==0u) {gl_Position=viewProjection*worldPos;} else {gl_Position=viewProjectionR*worldPos;}
#else
gl_Position=viewProjection*worldPos;
#endif
vPositionW=vec3(worldPos);
#ifdef PREPASS
#include<prePassVertex>
#endif
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
vDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));
#endif
#ifndef UV1
vec2 uvUpdated=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2Updated=vec2(0.,0.);
#endif
#ifdef MAINUV1
vMainUV1=uvUpdated;
#endif
#ifdef MAINUV2
vMainUV2=uv2Updated;
#endif
#include<uvVariableDeclaration>[3..7]
#include<samplerVertexImplementation>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_MATRIXNAME_,diffuse,_INFONAME_,DiffuseInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)
#if defined(SPECULARTERM)
#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_MATRIXNAME_,specular,_INFONAME_,SpecularInfos.x)
#endif
#include<samplerVertexImplementation>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)
#include<bumpVertex>
#include<clipPlaneVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#include<pointCloudVertex>
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[Ere]||(H.ShadersStore[Ere]=cAe);const uAe={name:Ere,shader:cAe},OWe=Object.freeze(Object.defineProperty({__proto__:null,defaultVertexShader:uAe},Symbol.toStringTag,{value:"Module"})),hAe="defaultUboDeclaration",RWe=`uniform diffuseLeftColor: vec4f;uniform diffuseRightColor: vec4f;uniform opacityParts: vec4f;uniform reflectionLeftColor: vec4f;uniform reflectionRightColor: vec4f;uniform refractionLeftColor: vec4f;uniform refractionRightColor: vec4f;uniform emissiveLeftColor: vec4f;uniform emissiveRightColor: vec4f;uniform vDiffuseInfos: vec2f;uniform vAmbientInfos: vec2f;uniform vOpacityInfos: vec2f;uniform vReflectionInfos: vec2f;uniform vReflectionPosition: vec3f;uniform vReflectionSize: vec3f;uniform vEmissiveInfos: vec2f;uniform vLightmapInfos: vec2f;uniform vSpecularInfos: vec2f;uniform vBumpInfos: vec3f;uniform diffuseMatrix: mat4x4f;uniform ambientMatrix: mat4x4f;uniform opacityMatrix: mat4x4f;uniform reflectionMatrix: mat4x4f;uniform emissiveMatrix: mat4x4f;uniform lightmapMatrix: mat4x4f;uniform specularMatrix: mat4x4f;uniform bumpMatrix: mat4x4f;uniform vTangentSpaceParams: vec2f;uniform pointSize: f32;uniform alphaCutOff: f32;uniform refractionMatrix: mat4x4f;uniform vRefractionInfos: vec4f;uniform vRefractionPosition: vec3f;uniform vRefractionSize: vec3f;uniform vSpecularColor: vec4f;uniform vEmissiveColor: vec3f;uniform vDiffuseColor: vec4f;uniform vAmbientColor: vec3f;
#define ADDITIONAL_UBO_DECLARATION
#include<sceneUboDeclaration>
#include<meshUboDeclaration>
`;H.IncludesShadersStoreWGSL[hAe]||(H.IncludesShadersStoreWGSL[hAe]=RWe);const Tre="defaultPixelShader",dAe=`#include<defaultUboDeclaration>
#include<prePassDeclaration>[SCENE_MRT_COUNT]
#include<oitDeclaration>
#define CUSTOM_FRAGMENT_BEGIN
varying vPositionW: vec3f;
#ifdef NORMAL
varying vNormalW: vec3f;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vColor: vec4f;
#endif
#include<mainUVVaryingDeclaration>[1..7]
#include<helperFunctions>
#include<lightUboDeclaration>[0..maxSimultaneousLights]
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#include<samplerFragmentDeclaration>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_SAMPLERNAME_,diffuse)
#include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_SAMPLERNAME_,ambient)
#include<samplerFragmentDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_SAMPLERNAME_,opacity)
#include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_SAMPLERNAME_,emissive)
#include<samplerFragmentDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_SAMPLERNAME_,lightmap)
#include<samplerFragmentDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)
#ifdef REFRACTION
#ifdef REFRACTIONMAP_3D
var refractionCubeSamplerSampler: sampler;var refractionCubeSampler: texture_cube<f32>;
#else
var refraction2DSamplerSampler: sampler;var refraction2DSampler: texture_2d<f32>;
#endif
#endif
#if defined(SPECULARTERM)
#include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_SAMPLERNAME_,specular)
#endif
#include<fresnelFunction>
#ifdef REFLECTION
#ifdef REFLECTIONMAP_3D
var reflectionCubeSamplerSampler: sampler;var reflectionCubeSampler: texture_cube<f32>;
#else
var reflection2DSamplerSampler: sampler;var reflection2DSampler: texture_2d<f32>;
#endif
#ifdef REFLECTIONMAP_SKYBOX
varying vPositionUVW: vec3f;
#else
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
varying vDirectionW: vec3f;
#endif
#endif
#include<reflectionFunction>
#endif
#include<imageProcessingDeclaration>
#include<imageProcessingFunctions>
#include<bumpFragmentMainFunctions>
#include<bumpFragmentFunctions>
#include<clipPlaneFragmentDeclaration>
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
var viewDirectionW: vec3f=normalize(scene.vEyePosition.xyz-fragmentInputs.vPositionW);var baseColor: vec4f= vec4f(1.,1.,1.,1.);var diffuseColor: vec3f=uniforms.vDiffuseColor.rgb;var alpha: f32=uniforms.vDiffuseColor.a;
#ifdef NORMAL
var normalW: vec3f=normalize(fragmentInputs.vNormalW);
#else
var normalW: vec3f=normalize(-cross(dpdx(fragmentInputs.vPositionW),dpdy(fragmentInputs.vPositionW)));
#endif
#include<bumpFragment>
#ifdef TWOSIDEDLIGHTING
normalW=select(-normalW,normalW,fragmentInputs.frontFacing);
#endif
#ifdef DIFFUSE
baseColor=textureSample(diffuseSampler,diffuseSamplerSampler,fragmentInputs.vDiffuseUV+uvOffset);
#if defined(ALPHATEST) && !defined(ALPHATEST_AFTERALLALPHACOMPUTATIONS)
if (baseColor.a<uniforms.alphaCutOff) {discard;}
#endif
#ifdef ALPHAFROMDIFFUSE
alpha*=baseColor.a;
#endif
#define CUSTOM_FRAGMENT_UPDATE_ALPHA
baseColor=vec4f(baseColor.rgb*uniforms.vDiffuseInfos.y,baseColor.a);
#endif
#if defined(DECAL) && !defined(DECAL_AFTER_DETAIL)
var decalColor: vec4f=textureSample(decalSampler,decalSamplerSampler,fragmentInputs.vDecalUV+uvOffset);
#include<decalFragment>(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)
#endif
#include<depthPrePass>
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
baseColor=vec4f(baseColor.rgb*fragmentInputs.vColor.rgb,baseColor.a);
#endif
#ifdef DETAIL
baseColor=vec4f(baseColor.rgb*2.0*mix(0.5,detailColor.r,uniforms.vDetailInfos.y),baseColor.a);
#endif
#if defined(DECAL) && defined(DECAL_AFTER_DETAIL)
var decalColor: vec4f=textureSample(decalSampler,decalSamplerSampler,fragmentInputs.vDecalUV+uvOffset);
#include<decalFragment>(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)
#endif
#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE
var baseAmbientColor: vec3f= vec3f(1.,1.,1.);
#ifdef AMBIENT
baseAmbientColor=textureSample(ambientSampler,ambientSamplerSampler,fragmentInputs.vAmbientUV+uvOffset).rgb*uniforms.vAmbientInfos.y;
#endif
#define CUSTOM_FRAGMENT_BEFORE_LIGHTS
var glossiness: f32=uniforms.vSpecularColor.a;var specularColor: vec3f=uniforms.vSpecularColor.rgb;
#ifdef SPECULARTERM
#ifdef SPECULAR
var specularMapColor: vec4f=textureSample(specularSampler,specularSamplerSampler,fragmentInputs.vSpecularUV+uvOffset);specularColor=specularMapColor.rgb;
#ifdef GLOSSINESS
glossiness=glossiness*specularMapColor.a;
#endif
#endif
#endif
var diffuseBase: vec3f= vec3f(0.,0.,0.);var info: lightingInfo;
#ifdef SPECULARTERM
var specularBase: vec3f= vec3f(0.,0.,0.);
#endif
var shadow: f32=1.;var aggShadow: f32=0.;var numLights: f32=0.;
#ifdef LIGHTMAP
var lightmapColor: vec4f=textureSample(lightmapSampler,lightmapSamplerSampler,fragmentInputs.vLightmapUV+uvOffset);
#ifdef RGBDLIGHTMAP
lightmapColor=vec4f(fromRGBD(lightmapColor),lightmapColor.a);
#endif
lightmapColor=vec4f(lightmapColor.rgb*uniforms.vLightmapInfos.y,lightmapColor.a);
#endif
#include<lightFragment>[0..maxSimultaneousLights]
aggShadow=aggShadow/numLights;var refractionColor: vec4f= vec4f(0.,0.,0.,1.);
#ifdef REFRACTION
var refractionVector: vec3f=normalize(refract(-viewDirectionW,normalW,uniforms.vRefractionInfos.y));
#ifdef REFRACTIONMAP_3D
#ifdef USE_LOCAL_REFRACTIONMAP_CUBIC
refractionVector=parallaxCorrectNormal(fragmentInputs.vPositionW,refractionVector,uniforms.vRefractionSize,uniforms.vRefractionPosition);
#endif
refractionVector.y=refractionVector.y*uniforms.vRefractionInfos.w;var refractionLookup: vec4f=textureSample(refractionCubeSampler,refractionCubeSamplerSampler,refractionVector);if (dot(refractionVector,viewDirectionW)<1.0) {refractionColor=refractionLookup;}
#else
var vRefractionUVW: vec3f= (uniforms.refractionMatrix*(scene.view* vec4f(fragmentInputs.vPositionW+refractionVector*uniforms.vRefractionInfos.z,1.0))).xyz;var refractionCoords: vec2f=vRefractionUVW.xy/vRefractionUVW.z;refractionCoords.y=1.0-refractionCoords.y;refractionColor=textureSample(refraction2DSampler,refraction2DSamplerSampler,refractionCoords);
#endif
#ifdef RGBDREFRACTION
refractionColor=vec4f(fromRGBD(refractionColor),refractionColor.a);
#endif
#ifdef IS_REFRACTION_LINEAR
refractionColor=vec4f(toGammaSpaceVec3(refractionColor.rgb),refractionColor.a);
#endif
refractionColor=vec4f(refractionColor.rgb*uniforms.vRefractionInfos.x,refractionColor.a);
#endif
var reflectionColor: vec4f= vec4f(0.,0.,0.,1.);
#ifdef REFLECTION
var vReflectionUVW: vec3f=computeReflectionCoords( vec4f(fragmentInputs.vPositionW,1.0),normalW);
#ifdef REFLECTIONMAP_OPPOSITEZ
vReflectionUVW=vec3f(vReflectionUVW.x,vReflectionUVW.y,vReflectionUVW.z*-1.0);
#endif
#ifdef REFLECTIONMAP_3D
#ifdef ROUGHNESS
var bias: f32=uniforms.vReflectionInfos.y;
#ifdef SPECULARTERM
#ifdef SPECULAR
#ifdef GLOSSINESS
bias*=(1.0-specularMapColor.a);
#endif
#endif
#endif
reflectionColor=textureSampleLevel(reflectionCubeSampler,reflectionCubeSamplerSampler,vReflectionUVW,bias);
#else
reflectionColor=textureSample(reflectionCubeSampler,reflectionCubeSamplerSampler,vReflectionUVW);
#endif
#else
var coords: vec2f=vReflectionUVW.xy;
#ifdef REFLECTIONMAP_PROJECTION
coords/=vReflectionUVW.z;
#endif
coords.y=1.0-coords.y;reflectionColor=textureSample(reflection2DSampler,reflection2DSamplerSampler,coords);
#endif
#ifdef RGBDREFLECTION
reflectionColor=vec4f(fromRGBD(reflectionColor),reflectionColor.a);
#endif
#ifdef IS_REFLECTION_LINEAR
reflectionColor=vec4f(toGammaSpaceVec3(reflectionColor.rgb),reflectionColor.a);
#endif
reflectionColor=vec4f(reflectionColor.rgb*uniforms.vReflectionInfos.x,reflectionColor.a);
#ifdef REFLECTIONFRESNEL
var reflectionFresnelTerm: f32=computeFresnelTerm(viewDirectionW,normalW,uniforms.reflectionRightColor.a,uniforms.reflectionLeftColor.a);
#ifdef REFLECTIONFRESNELFROMSPECULAR
#ifdef SPECULARTERM
reflectionColor=vec4f(reflectionColor.rgb*specularColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*uniforms.reflectionRightColor.rgb,reflectionColor.a);
#else
reflectionColor=vec4f(reflectionColor.rgb*uniforms.reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*uniforms.reflectionRightColor.rgb,reflectionColor.a);
#endif
#else
reflectionColor=vec4f(reflectionColor.rgb*uniforms.reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*uniforms.reflectionRightColor.rgb,reflectionColor.a);
#endif
#endif
#endif
#ifdef REFRACTIONFRESNEL
var refractionFresnelTerm: f32=computeFresnelTerm(viewDirectionW,normalW,uniforms.refractionRightColor.a,uniforms.refractionLeftColor.a);refractionColor=vec4f(refractionColor.rgb*uniforms.refractionLeftColor.rgb*(1.0-refractionFresnelTerm)+refractionFresnelTerm*uniforms.refractionRightColor.rgb,refractionColor.a);
#endif
#ifdef OPACITY
var opacityMap: vec4f=textureSample(opacitySampler,opacitySamplerSampler,fragmentInputs.vOpacityUV+uvOffset);
#ifdef OPACITYRGB
opacityMap=vec4f(opacityMap.rgb* vec3f(0.3,0.59,0.11),opacityMap.a);alpha*=(opacityMap.x+opacityMap.y+opacityMap.z)* uniforms.vOpacityInfos.y;
#else
alpha*=opacityMap.a*uniforms.vOpacityInfos.y;
#endif
#endif
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=fragmentInputs.vColor.a;
#endif
#ifdef OPACITYFRESNEL
var opacityFresnelTerm: f32=computeFresnelTerm(viewDirectionW,normalW,uniforms.opacityParts.z,uniforms.opacityParts.w);alpha+=uniforms.opacityParts.x*(1.0-opacityFresnelTerm)+opacityFresnelTerm*uniforms.opacityParts.y;
#endif
#ifdef ALPHATEST
#ifdef ALPHATEST_AFTERALLALPHACOMPUTATIONS
if (alpha<uniforms.alphaCutOff) {discard;}
#endif
#ifndef ALPHABLEND
alpha=1.0;
#endif
#endif
var emissiveColor: vec3f=uniforms.vEmissiveColor;
#ifdef EMISSIVE
emissiveColor+=textureSample(emissiveSampler,emissiveSamplerSampler,fragmentInputs.vEmissiveUV+uvOffset).rgb*uniforms.vEmissiveInfos.y;
#endif
#ifdef EMISSIVEFRESNEL
var emissiveFresnelTerm: f32=computeFresnelTerm(viewDirectionW,normalW,uniforms.emissiveRightColor.a,uniforms.emissiveLeftColor.a);emissiveColor*=uniforms.emissiveLeftColor.rgb*(1.0-emissiveFresnelTerm)+emissiveFresnelTerm*uniforms.emissiveRightColor.rgb;
#endif
#ifdef DIFFUSEFRESNEL
var diffuseFresnelTerm: f32=computeFresnelTerm(viewDirectionW,normalW,uniforms.diffuseRightColor.a,uniforms.diffuseLeftColor.a);diffuseBase*=uniforms.diffuseLeftColor.rgb*(1.0-diffuseFresnelTerm)+diffuseFresnelTerm*uniforms.diffuseRightColor.rgb;
#endif
#ifdef EMISSIVEASILLUMINATION
var finalDiffuse: vec3f=clamp(diffuseBase*diffuseColor+uniforms.vAmbientColor,vec3f(0.0),vec3f(1.0))*baseColor.rgb;
#else
#ifdef LINKEMISSIVEWITHDIFFUSE
var finalDiffuse: vec3f=clamp((diffuseBase+emissiveColor)*diffuseColor+uniforms.vAmbientColor,vec3f(0.0),vec3f(1.0))*baseColor.rgb;
#else
var finalDiffuse: vec3f=clamp(diffuseBase*diffuseColor+emissiveColor+uniforms.vAmbientColor,vec3f(0.0),vec3f(1.0))*baseColor.rgb;
#endif
#endif
#ifdef SPECULARTERM
var finalSpecular: vec3f=specularBase*specularColor;
#ifdef SPECULAROVERALPHA
alpha=clamp(alpha+dot(finalSpecular, vec3f(0.3,0.59,0.11)),0.0,1.0);
#endif
#else
var finalSpecular: vec3f= vec3f(0.0);
#endif
#ifdef REFLECTIONOVERALPHA
alpha=clamp(alpha+dot(reflectionColor.rgb, vec3f(0.3,0.59,0.11)),0.0,1.0);
#endif
#ifdef EMISSIVEASILLUMINATION
var color: vec4f= vec4f(clamp(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor.rgb+emissiveColor+refractionColor.rgb,0.0,1.0),alpha);
#else
var color: vec4f= vec4f(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor.rgb+refractionColor.rgb,alpha);
#endif
#ifdef LIGHTMAP
#ifndef LIGHTMAPEXCLUDED
#ifdef USELIGHTMAPASSHADOWMAP
color=vec4f(color.rgb*lightmapColor.rgb,color.a);
#else
color=vec4f(color.rgb+lightmapColor.rgb,color.a);
#endif
#endif
#endif
#define CUSTOM_FRAGMENT_BEFORE_FOG
color=vec4f(max(color.rgb,vec3f(0.)),color.a);
#include<logDepthFragment>
#include<fogFragment>
#ifdef IMAGEPROCESSINGPOSTPROCESS
color=vec4f(toLinearSpaceVec3(color.rgb),color.a);
#else
#ifdef IMAGEPROCESSING
color=vec4f(toLinearSpaceVec3(color.rgb),color.a);color=applyImageProcessing(color);
#endif
#endif
color=vec4f(color.rgb,color.a*mesh.visibility);
#ifdef PREMULTIPLYALPHA
color=vec4f(color.rgb*color.a, color.a);
#endif
#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR
#ifdef PREPASS
var writeGeometryInfo: f32=select(0.0,1.0,color.a>0.4);var fragData: array<vec4<f32>,SCENE_MRT_COUNT>;
#ifdef PREPASS_COLOR
fragData[PREPASS_COLOR_INDEX]=color; 
#endif
#ifdef PREPASS_POSITION
fragData[PREPASS_POSITION_INDEX]=vec4f(fragmentInputs.vPositionW,writeGeometryInfo);
#endif
#ifdef PREPASS_LOCAL_POSITION
fragData[PREPASS_LOCAL_POSITION_INDEX]=vec4f(fragmentInputs.vPosition,writeGeometryInfo);
#endif
#ifdef PREPASS_VELOCITY
var a: vec2f=(fragmentInputs.vCurrentPosition.xy/fragmentInputs.vCurrentPosition.w)*0.5+0.5;var b: vec2f=(fragmentInputs.vPreviousPosition.xy/fragmentInputs.vPreviousPosition.w)*0.5+0.5;var velocity: vec2f=abs(a-b);velocity= vec2f(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;fragData[PREPASS_VELOCITY_INDEX]= vec4f(velocity,0.0,writeGeometryInfo);
#elif defined(PREPASS_VELOCITY_LINEAR)
var velocity : vec2f=vec2f(0.5)*((fragmentInputs.vPreviousPosition.xy/fragmentInputs.vPreviousPosition.w) -
(fragmentInputs.vCurrentPosition.xy/fragmentInputs.vCurrentPosition.w));fragData[PREPASS_VELOCITY_LINEAR_INDEX]=vec4f(velocity,0.0,writeGeometryInfo);
#endif
#ifdef PREPASS_IRRADIANCE
fragData[PREPASS_IRRADIANCE_INDEX]=vec4f(0.0,0.0,0.0,writeGeometryInfo); 
#endif
#ifdef PREPASS_DEPTH
fragData[PREPASS_DEPTH_INDEX]=vec4f(fragmentInputs.vViewPos.z,0.0,0.0,writeGeometryInfo); 
#endif
#ifdef PREPASS_SCREENSPACE_DEPTH
fragData[PREPASS_SCREENSPACE_DEPTH_INDEX]=vec4f(fragmentInputs.position.z,0.0,0.0,writeGeometryInfo);
#endif
#ifdef PREPASS_NORMAL
#ifdef PREPASS_NORMAL_WORLDSPACE
fragData[PREPASS_NORMAL_INDEX]=vec4f(normalW,writeGeometryInfo);
#else
fragData[PREPASS_NORMAL_INDEX]=vec4f(normalize((scene.view*vec4f(normalW,0.0)).rgb),writeGeometryInfo);
#endif
#endif
#ifdef PREPASS_WORLD_NORMAL
fragData[PREPASS_WORLD_NORMAL_INDEX]=vec4f(normalW*0.5+0.5,writeGeometryInfo);
#endif
#ifdef PREPASS_ALBEDO
fragData[PREPASS_ALBEDO_INDEX]=vec4f(baseColor.rgb,writeGeometryInfo);
#endif
#ifdef PREPASS_ALBEDO_SQRT
fragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4f(sqrt(baseColor.rgb),writeGeometryInfo);
#endif
#ifdef PREPASS_REFLECTIVITY
#if defined(SPECULAR)
fragData[PREPASS_REFLECTIVITY_INDEX]=vec4f(toLinearSpaceVec4(specularMapColor))*writeGeometryInfo; 
#else
fragData[PREPASS_REFLECTIVITY_INDEX]=vec4f(toLinearSpaceVec3(specularColor),1.0)*writeGeometryInfo;
#endif
#endif
#if SCENE_MRT_COUNT>0
fragmentOutputs.fragData0=fragData[0];
#endif
#if SCENE_MRT_COUNT>1
fragmentOutputs.fragData1=fragData[1];
#endif
#if SCENE_MRT_COUNT>2
fragmentOutputs.fragData2=fragData[2];
#endif
#if SCENE_MRT_COUNT>3
fragmentOutputs.fragData3=fragData[3];
#endif
#if SCENE_MRT_COUNT>4
fragmentOutputs.fragData4=fragData[4];
#endif
#if SCENE_MRT_COUNT>5
fragmentOutputs.fragData5=fragData[5];
#endif
#if SCENE_MRT_COUNT>6
fragmentOutputs.fragData6=fragData[6];
#endif
#if SCENE_MRT_COUNT>7
fragmentOutputs.fragData7=fragData[7];
#endif
#endif
#if !defined(PREPASS) && !defined(ORDER_INDEPENDENT_TRANSPARENCY)
fragmentOutputs.color=color;
#endif
#include<oitFragment>
#if ORDER_INDEPENDENT_TRANSPARENCY
if (fragDepth==nearestDepth) {fragmentOutputs.frontColor=vec4f(fragmentOutputs.frontColor.rgb+color.rgb*color.a*alphaMultiplier,1.0-alphaMultiplier*(1.0-color.a));} else {fragmentOutputs.backColor+=color;}
#endif
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStoreWGSL[Tre]||(H.ShadersStoreWGSL[Tre]=dAe);const fAe={name:Tre,shader:dAe},DWe=Object.freeze(Object.defineProperty({__proto__:null,defaultPixelShaderWGSL:fAe},Symbol.toStringTag,{value:"Module"})),pAe="lightVxFragmentDeclaration",NWe=`#ifdef LIGHT{X}
uniform vLightData{X}: vec4f;uniform vLightDiffuse{X}: vec4f;
#ifdef SPECULARTERM
uniform vLightSpecular{X}: vec4f;
#else
var vLightSpecular{X}: vec4f= vec4f(0.);
#endif
#ifdef SHADOW{X}
#ifdef SHADOWCSM{X}
uniform lightMatrix{X}: mat4x4f[SHADOWCSMNUM_CASCADES{X}];varying var vPositionFromLight{X}: vec4f[SHADOWCSMNUM_CASCADES{X}];varying var vDepthMetric{X}: f32[SHADOWCSMNUM_CASCADES{X}];varying var vPositionFromCamera{X}: vec4f;
#elif defined(SHADOWCUBE{X})
#else
varying var vPositionFromLight{X}: vec4f;varying var vDepthMetric{X}: f32;uniform lightMatrix{X}: mat4x4f;
#endif
uniform shadowsInfo{X}: vec4f;uniform depthValues{X}: vec2f;
#endif
#ifdef SPOTLIGHT{X}
uniform vLightDirection{X}: vec4f;uniform vLightFalloff{X}: vec4f;
#elif defined(POINTLIGHT{X})
uniform vLightFalloff{X}: vec4f;
#elif defined(HEMILIGHT{X})
uniform vLightGround{X}: vec3f;
#endif
#if defined(AREALIGHT{X})
uniform vLightWidth{X}: vec4f;uniform vLightHeight{X}: vec4f;
#endif
#endif
`;H.IncludesShadersStoreWGSL[pAe]||(H.IncludesShadersStoreWGSL[pAe]=NWe);const Lre="defaultVertexShader",mAe=`#include<defaultUboDeclaration>
#define CUSTOM_VERTEX_BEGIN
attribute position: vec3f;
#ifdef NORMAL
attribute normal: vec3f;
#endif
#ifdef TANGENT
attribute tangent: vec4f;
#endif
#ifdef UV1
attribute uv: vec2f;
#endif
#include<uvAttributeDeclaration>[2..7]
#ifdef VERTEXCOLOR
attribute color: vec4f;
#endif
#include<helperFunctions>
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
#include<prePassVertexDeclaration>
#include<mainUVVaryingDeclaration>[1..7]
#include<samplerVertexDeclaration>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse)
#include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)
#include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)
#include<samplerVertexDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)
#include<samplerVertexDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)
#include<samplerVertexDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)
#if defined(SPECULARTERM)
#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular)
#endif
#include<samplerVertexDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)
#include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)
varying vPositionW: vec3f;
#ifdef NORMAL
varying vNormalW: vec3f;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vColor: vec4f;
#endif
#include<bumpVertexDeclaration>
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightVxFragment>[0..maxSimultaneousLights]
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#ifdef REFLECTIONMAP_SKYBOX
varying vPositionUVW: vec3f;
#endif
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
varying vDirectionW: vec3f;
#endif
#include<logDepthDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
var positionUpdated: vec3f=vertexInputs.position;
#ifdef NORMAL
var normalUpdated: vec3f=vertexInputs.normal;
#endif
#ifdef TANGENT
var tangentUpdated: vec4f=vertexInputs.tangent;
#endif
#ifdef UV1
var uvUpdated: vec2f=vertexInputs.uv;
#endif
#ifdef UV2
var uv2Updated: vec2f=vertexInputs.uv2;
#endif
#ifdef VERTEXCOLOR
var colorUpdated: vec4f=vertexInputs.color;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#ifdef REFLECTIONMAP_SKYBOX
vertexOutputs.vPositionUVW=positionUpdated;
#endif
#define CUSTOM_VERTEX_UPDATE_POSITION
#define CUSTOM_VERTEX_UPDATE_NORMAL
#include<instancesVertex>
#if defined(PREPASS) && ((defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && !defined(BONES_VELOCITY_ENABLED)
vertexOutputs.vCurrentPosition=scene.viewProjection*finalWorld*vec4f(positionUpdated,1.0);vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld*vec4f(positionUpdated,1.0);
#endif
#include<bonesVertex>
#include<bakedVertexAnimation>
var worldPos: vec4f=finalWorld*vec4f(positionUpdated,1.0);
#ifdef NORMAL
var normalWorld: mat3x3f= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz);
#if defined(INSTANCES) && defined(THIN_INSTANCES)
vertexOutputs.vNormalW=normalUpdated/ vec3f(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vertexOutputs.vNormalW=normalize(normalWorld*vertexOutputs.vNormalW);
#else
#ifdef NONUNIFORMSCALING
normalWorld=transposeMat3(inverseMat3(normalWorld));
#endif
vertexOutputs.vNormalW=normalize(normalWorld*normalUpdated);
#endif
#endif
#define CUSTOM_VERTEX_UPDATE_WORLDPOS
#ifdef MULTIVIEW
if (gl_ViewID_OVR==0u) {vertexOutputs.position=scene.viewProjection*worldPos;} else {vertexOutputs.position=scene.viewProjectionR*worldPos;}
#else
vertexOutputs.position=scene.viewProjection*worldPos;
#endif
vertexOutputs.vPositionW= worldPos.xyz;
#ifdef PREPASS
#include<prePassVertex>
#endif
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
vertexOutputs.vDirectionW=normalize((finalWorld* vec4f(positionUpdated,0.0)).xyz);
#endif
#ifndef UV1
var uvUpdated: vec2f=vec2f(0.,0.);
#endif
#ifdef MAINUV1
vertexOutputs.vMainUV1=uvUpdated;
#endif
#ifndef UV2
var uv2Updated: vec2f=vec2f(0.,0.);
#endif
#ifdef MAINUV2
vertexOutputs.vMainUV2=uv2Updated;
#endif
#include<uvVariableDeclaration>[3..7]
#include<samplerVertexImplementation>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_MATRIXNAME_,diffuse,_INFONAME_,DiffuseInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)
#if defined(SPECULARTERM)
#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_MATRIXNAME_,specular,_INFONAME_,SpecularInfos.x)
#endif
#include<samplerVertexImplementation>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)
#include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)
#include<bumpVertex>
#include<clipPlaneVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStoreWGSL[Lre]||(H.ShadersStoreWGSL[Lre]=mAe);const gAe={name:Lre,shader:mAe},wWe=Object.freeze(Object.defineProperty({__proto__:null,defaultVertexShaderWGSL:gAe},Symbol.toStringTag,{value:"Module"})),Ire="greasedLinePixelShader",_Ae=`precision highp float;uniform sampler2D grlColors;uniform float grlUseColors;uniform float grlUseDash;uniform float grlDashArray;uniform float grlDashOffset;uniform float grlDashRatio;uniform float grlVisibility;uniform float grlColorsWidth;uniform vec2 grl_colorModeAndColorDistributionType;uniform vec3 grlColor;varying float grlCounters;varying float grlColorPointer;void main() {float grlColorMode=grl_colorModeAndColorDistributionType.x;float grlColorDistributionType=grl_colorModeAndColorDistributionType.y;gl_FragColor=vec4(grlColor,1.);gl_FragColor.a=step(grlCounters,grlVisibility);if (gl_FragColor.a==0.) discard;if( grlUseDash==1. ){gl_FragColor.a=ceil(mod(grlCounters+grlDashOffset,grlDashArray)-(grlDashArray*grlDashRatio));if (gl_FragColor.a==0.) discard;}
if (grlUseColors==1.) {vec4 textureColor;if (grlColorDistributionType==COLOR_DISTRIBUTION_TYPE_LINE) { 
textureColor=texture2D(grlColors,vec2(grlCounters,0.),0.);} else {textureColor=texture2D(grlColors,vec2(grlColorPointer/grlColorsWidth,0.),0.);}
if (grlColorMode==COLOR_MODE_SET) {gl_FragColor=textureColor;} else if (grlColorMode==COLOR_MODE_ADD) {gl_FragColor+=textureColor;} else if (grlColorMode==COLOR_MODE_MULTIPLY) {gl_FragColor*=textureColor;}}}
`;H.ShadersStore[Ire]||(H.ShadersStore[Ire]=_Ae);const vAe={name:Ire,shader:_Ae},BWe=Object.freeze(Object.defineProperty({__proto__:null,greasedLinePixelShader:vAe},Symbol.toStringTag,{value:"Module"})),Pre="greasedLineVertexShader",AAe=`precision highp float;
#include<instancesDeclaration>
attribute float grl_widths;attribute vec3 grl_offsets;attribute float grl_colorPointers;attribute vec3 position;uniform mat4 viewProjection;uniform mat4 projection;varying float grlCounters;varying float grlColorPointer;
#ifdef GREASED_LINE_CAMERA_FACING
attribute vec4 grl_nextAndCounters;attribute vec4 grl_previousAndSide;uniform vec2 grlResolution;uniform float grlAspect;uniform float grlWidth;uniform float grlSizeAttenuation;vec2 grlFix( vec4 i,float aspect ) {vec2 res=i.xy/i.w;res.x*=aspect;return res;}
#else
attribute vec3 grl_slopes;attribute float grl_counters;
#endif
void main() {
#include<instancesVertex>
grlColorPointer=grl_colorPointers;mat4 grlMatrix=viewProjection*finalWorld ;
#ifdef GREASED_LINE_CAMERA_FACING
float grlBaseWidth=grlWidth;vec3 grlPrevious=grl_previousAndSide.xyz;float grlSide=grl_previousAndSide.w;vec3 grlNext=grl_nextAndCounters.xyz;grlCounters=grl_nextAndCounters.w;float grlWidth=grlBaseWidth*grl_widths;vec3 positionUpdated=position+grl_offsets;vec3 worldDir=normalize(grlNext-grlPrevious);vec3 nearPosition=positionUpdated+(worldDir*0.001);vec4 grlFinalPosition=grlMatrix*vec4( positionUpdated ,1.0);vec4 screenNearPos=grlMatrix*vec4(nearPosition,1.0);vec2 grlLinePosition=grlFix(grlFinalPosition,grlAspect);vec2 grlLineNearPosition=grlFix(screenNearPos,grlAspect);vec2 grlDir=normalize(grlLineNearPosition-grlLinePosition);vec4 grlNormal=vec4( -grlDir.y,grlDir.x,0.,1. );
#ifdef GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM
grlNormal.xy*=-.5*grlWidth;
#else
grlNormal.xy*=.5*grlWidth;
#endif
grlNormal*=projection;if (grlSizeAttenuation==1.) {grlNormal.xy*=grlFinalPosition.w;grlNormal.xy/=( vec4( grlResolution,0.,1. )*projection ).xy;}
grlFinalPosition.xy+=grlNormal.xy*grlSide;gl_Position=grlFinalPosition;
#else
grlCounters=grl_counters;vec4 grlFinalPosition=grlMatrix*vec4( (position+grl_offsets)+grl_slopes*grl_widths ,1.0 ) ;gl_Position=grlFinalPosition;
#endif
}
`;H.ShadersStore[Pre]||(H.ShadersStore[Pre]=AAe);const CAe={name:Pre,shader:AAe},zWe=Object.freeze(Object.defineProperty({__proto__:null,greasedLineVertexShader:CAe},Symbol.toStringTag,{value:"Module"})),Ore="greasedLinePixelShader",xAe=`var grlColors: texture_2d<f32>;var grlColorsSampler: sampler;uniform grlUseColors: f32;uniform grlUseDash: f32;uniform grlDashArray: f32;uniform grlDashOffset: f32;uniform grlDashRatio: f32;uniform grlVisibility: f32;uniform grlColorsWidth: f32;uniform grl_colorModeAndColorDistributionType: vec2f;uniform grlColor: vec3f;varying grlCounters: f32;varying grlColorPointer: f32;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
let grlColorMode: f32=uniforms.grl_colorModeAndColorDistributionType.x;let grlColorDistributionType: f32=uniforms.grl_colorModeAndColorDistributionType.y;var outColor=vec4(uniforms.grlColor,1.);outColor.a=step(fragmentInputs.grlCounters,uniforms.grlVisibility);if (outColor.a==0.0) {discard;}
if (uniforms.grlUseDash==1.0) {let dashPosition=(fragmentInputs.grlCounters+uniforms.grlDashOffset) % uniforms.grlDashArray;outColor.a*=ceil(dashPosition-(uniforms.grlDashArray*uniforms.grlDashRatio));if (outColor.a==0.0) {discard;}}
if (uniforms.grlUseColors==1.) {
#ifdef GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE
let grlColor: vec4f=textureSample(grlColors,grlColorsSampler,vec2f(fragmentInputs.grlCounters,0.));
#else
let lookup: vec2f=vec2(fract(fragmentInputs.grlColorPointer/uniforms.grlColorsWidth),1.0-floor(fragmentInputs.grlColorPointer/uniforms.grlColorsWidth));let grlColor: vec4f=textureSample(grlColors,grlColorsSampler,lookup);
#endif
if (grlColorMode==COLOR_MODE_SET) {outColor=grlColor;} else if (grlColorMode==COLOR_MODE_ADD) {outColor+=grlColor;} else if (grlColorMode==COLOR_MODE_MULTIPLY) {outColor*=grlColor;}}
#if !defined(PREPASS) && !defined(ORDER_INDEPENDENT_TRANSPARENCY)
fragmentOutputs.color=outColor;
#endif
#if ORDER_INDEPENDENT_TRANSPARENCY
if (fragDepth==nearestDepth) {fragmentOutputs.frontColor=vec4f(fragmentOutputs.frontColor.rgb+outColor.rgb*outColor.a*alphaMultiplier,1.0-alphaMultiplier*(1.0-outColor.a));} else {fragmentOutputs.backColor+=outColor;}
#endif
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStoreWGSL[Ore]||(H.ShadersStoreWGSL[Ore]=xAe);const bAe={name:Ore,shader:xAe},FWe=Object.freeze(Object.defineProperty({__proto__:null,greasedLinePixelShaderWGSL:bAe},Symbol.toStringTag,{value:"Module"})),Rre="greasedLineVertexShader",SAe=`#include<instancesDeclaration>
#include<sceneUboDeclaration>
#include<meshUboDeclaration>
attribute grl_widths: f32;
#ifdef GREASED_LINE_USE_OFFSETS
attribute grl_offsets: vec3f; 
#endif
attribute grl_colorPointers: f32;attribute position: vec3f;varying grlCounters: f32;varying grlColorPointer: f32;
#ifdef GREASED_LINE_CAMERA_FACING
attribute grl_nextAndCounters: vec4f;attribute grl_previousAndSide: vec4f;uniform grlResolution: vec2f;uniform grlAspect: f32;uniform grlWidth: f32;uniform grlSizeAttenuation: f32;fn grlFix(i: vec4f,aspect: f32)->vec2f {var res=i.xy/i.w;res.x*=aspect;return res;}
#else
attribute grl_slopes: vec3f;attribute grl_counters: f32;
#endif
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
#include<instancesVertex>
vertexOutputs.grlColorPointer=input.grl_colorPointers;let grlMatrix: mat4x4f=scene.viewProjection*mesh.world ;
#ifdef GREASED_LINE_CAMERA_FACING
let grlBaseWidth: f32=uniforms.grlWidth;let grlPrevious: vec3f=input.grl_previousAndSide.xyz;let grlSide: f32=input.grl_previousAndSide.w;let grlNext: vec3f=input.grl_nextAndCounters.xyz;vertexOutputs.grlCounters=input.grl_nextAndCounters.w;let grlWidth:f32=grlBaseWidth*input.grl_widths;
#ifdef GREASED_LINE_USE_OFFSETS
var grlPositionOffset: vec3f=input.grl_offsets;
#else
var grlPositionOffset=vec3f(0.);
#endif
let positionUpdated: vec3f=vertexInputs.position+grlPositionOffset;let worldDir: vec3f=normalize(grlNext-grlPrevious);let nearPosition: vec3f=positionUpdated+(worldDir*0.001);let grlFinalPosition: vec4f=grlMatrix*vec4f(positionUpdated,1.0);let screenNearPos: vec4f=grlMatrix*vec4(nearPosition,1.0);let grlLinePosition: vec2f=grlFix(grlFinalPosition,uniforms.grlAspect);let grlLineNearPosition: vec2f=grlFix(screenNearPos,uniforms.grlAspect);let grlDir: vec2f=normalize(grlLineNearPosition-grlLinePosition);var grlNormal: vec4f=vec4f(-grlDir.y,grlDir.x,0.0,1.0);let grlHalfWidth: f32=0.5*grlWidth;
#if defined(GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM)
grlNormal.x*=-grlHalfWidth;grlNormal.y*=-grlHalfWidth;
#else
grlNormal.x*=grlHalfWidth;grlNormal.y*=grlHalfWidth;
#endif
grlNormal*=scene.projection;if (uniforms.grlSizeAttenuation==1.) {grlNormal.x*=grlFinalPosition.w;grlNormal.y*=grlFinalPosition.w;let pr=vec4f(uniforms.grlResolution,0.0,1.0)*scene.projection;grlNormal.x/=pr.x;grlNormal.y/=pr.y;}
vertexOutputs.position=vec4f(grlFinalPosition.xy+grlNormal.xy*grlSide,grlFinalPosition.z,grlFinalPosition.w);
#else
vertexOutputs.grlCounters=input.grl_counters;vertexOutputs.position=grlMatrix*vec4f((vertexInputs.position+input.grl_offsets)+input.grl_slopes*input.grl_widths,1.0) ;
#endif
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStoreWGSL[Rre]||(H.ShadersStoreWGSL[Rre]=SAe);const yAe={name:Rre,shader:SAe},kWe=Object.freeze(Object.defineProperty({__proto__:null,greasedLineVertexShaderWGSL:yAe},Symbol.toStringTag,{value:"Module"})),UWe=_w,pd={...mOe,TwoPi:Math.PI*2,Sign:Math.sign,Log2:Math.log2,HCF:UWe};class d_{constructor(e,t){this.radius=e,this.theta=t,this.radius=e,this.theta=t}getClassName(){return"Polar"}toString(){return JSON.stringify(this)}asArray(){return[this.radius,this.theta]}addToRef(e,t){return t.radius=this.radius+e.radius,t.theta=this.theta+e.theta,t}add(e){const t=new d_(0,0);return this.addToRef(e,t),t}addInPlace(e){return this.addToRef(e,this),this}addInPlaceFromFloats(e,t){return this.radius+=e,this.theta+=t,this}subtractToRef(e,t){return t.radius=this.radius-e.radius,t.theta=this.theta-e.theta,t}subtract(e){const t=new d_(0,0);return this.subtractToRef(e,t),t}subtractInPlace(e){return this.subtractToRef(e,this),this}subtractFromFloatsToRef(e,t,i){return i.radius=this.radius-e,i.theta=this.theta-t,i}subtractFromFloats(e,t){const i=new d_(0,0);return this.subtractFromFloatsToRef(e,t,i),i}multiplyToRef(e,t){return t.radius=this.radius*e.radius,t.theta=this.theta*e.theta,t}multiply(e){const t=new d_(0,0);return this.multiplyToRef(e,t),t}multiplyInPlace(e){return this.multiplyToRef(e,this),this}divideToRef(e,t){return t.radius=this.radius/e.radius,t.theta=this.theta/e.theta,t}divide(e){const t=new d_(0,0);return this.divideToRef(e,t),t}divideInPlace(e){return this.divideToRef(e,this),this}clone(){return new d_(this.radius,this.theta)}copyFrom(e){return this.radius=e.radius,this.theta=e.theta,this}copyFromFloats(e,t){return this.radius=e,this.theta=t,this}scaleToRef(e,t){return t.radius=this.radius*e,t.theta=this.theta*e,t}scale(e){const t=new d_(0,0);return this.scaleToRef(e,t),t}scaleInPlace(e){return this.scaleToRef(e,this),this}set(e,t){return this.radius=e,this.theta=t,this}setAll(e){return this.set(e,e),this}toVector2ToRef(e){const t=this.radius*Math.cos(this.theta),i=this.radius*Math.sin(this.theta);return e.set(t,i),e}toVector2(){const e=new Ue(0,0);return this.toVector2ToRef(e)}static FromVector2ToRef(e,t){const i=Math.sign(e.y)*Math.acos(e.x/e.length());return t.radius=e.length(),t.theta=i,t}static FromVector2(e){const t=new d_(0,0);return d_.FromVector2ToRef(e,t),t}static FromArray(e){return new d_(e[0],e[1])}}class f_{constructor(e,t,i){this.radius=e,this.theta=t,this.phi=i,this.radius=e,this.theta=t,this.phi=i}getClassName(){return"Spherical"}toString(){return JSON.stringify(this)}asArray(){return[this.radius,this.theta,this.phi]}addToRef(e,t){return t.radius=this.radius+e.radius,t.theta=this.theta+e.theta,t.phi=this.phi+e.phi,t}add(e){const t=new f_(0,0,0);return this.addToRef(e,t),t}addInPlace(e){return this.addToRef(e,this),this}addInPlaceFromFloats(e,t,i){return this.radius+=e,this.theta+=t,this.phi+=i,this}subtractToRef(e,t){return t.radius=this.radius-e.radius,t.theta=this.theta-e.theta,t.phi=this.phi-e.phi,t}subtract(e){const t=new f_(0,0,0);return this.subtractToRef(e,t),t}subtractInPlace(e){return this.subtractToRef(e,this),this}subtractFromFloatsToRef(e,t,i,s){return s.radius=this.radius-e,s.theta=this.theta-t,s.phi=this.phi-i,s}subtractFromFloats(e,t,i){const s=new f_(0,0,0);return this.subtractFromFloatsToRef(e,t,i,s),s}multiplyToRef(e,t){return t.radius=this.radius*e.radius,t.theta=this.theta*e.theta,t.phi=this.phi*e.phi,t}multiply(e){const t=new f_(0,0,0);return this.multiplyToRef(e,t),t}multiplyInPlace(e){return this.multiplyToRef(e,this),this}divideToRef(e,t){return t.radius=this.radius/e.radius,t.theta=this.theta/e.theta,t.phi=this.phi/e.phi,t}divide(e){const t=new f_(0,0,0);return this.divideToRef(e,t),t}divideInPlace(e){return this.divideToRef(e,this),this}clone(){return new f_(this.radius,this.theta,this.phi)}copyFrom(e){return this.radius=e.radius,this.theta=e.theta,this.phi=e.phi,this}copyFromFloats(e,t,i){return this.radius=e,this.theta=t,this.phi=i,this}scaleToRef(e,t){return t.radius=this.radius*e,t.theta=this.theta*e,t.phi=this.phi*e,t}scale(e){const t=new f_(0,0,0);return this.scaleToRef(e,t),t}scaleInPlace(e){return this.scaleToRef(e,this),this}set(e,t,i){return this.radius=e,this.theta=t,this.phi=i,this}setAll(e){return this.set(e,e,e),this}toVector3ToRef(e){const t=this.radius*Math.sin(this.theta)*Math.cos(this.phi),i=this.radius*Math.cos(this.theta),s=this.radius*Math.sin(this.theta)*Math.sin(this.phi);return e.set(t,i,s),e}toVector3(){const e=new P(0,0,0);return this.toVector3ToRef(e)}static FromVector3ToRef(e,t){return t.radius=e.length(),t.theta=Math.acos(e.y/t.radius),t.phi=Math.atan2(e.z,e.x),t}static FromVector3(e){const t=new f_(0,0,0);return f_.FromVector3ToRef(e,t),t}static FromArray(e){return new f_(e[0],e[1],e[2])}}function MAe(a,e){return`{X: ${a.x.toFixed(e)} Y: ${a.y.toFixed(e)}}`}function EAe(a,e){return`{X: ${a._x.toFixed(e)} Y: ${a._y.toFixed(e)} Z: ${a._z.toFixed(e)}}`}function TAe(a,e){return`{X: ${a.x.toFixed(e)} Y: ${a.y.toFixed(e)} Z: ${a.z.toFixed(e)} W: ${a.w.toFixed(e)}}`}function jWe(a){var i;const e=(i=a.pickedMesh)==null?void 0:i.getIndices(),t=a.faceId*3;return{pointIndex:e?[e[t],e[t+1],e[t+2]]:[t,t+1,t+2],barycentric:[a.bu,a.bv,1-a.bu-a.bv]}}function LAe(a,e,t){const i=a.getVerticesData(q.PositionKind);if(!i)return!1;const s=e*3,r=[i[s+0],i[s+1],i[s+2]];if(r.some(n=>isNaN(n??Number.NaN)))return!1;if(a.morphTargetManager)for(let n=0;n<3;n++){let o=r[n];for(let l=0;l<a.morphTargetManager.numTargets;l++){const c=a.morphTargetManager.getTarget(l),u=c.influence;if(u!==0){const f=c.getPositions();f&&(o+=(f[s+n]-i[s+n])*u)}}r[n]=o}if(t.fromArray(r),a.skeleton){const n=a.getVerticesData(q.MatricesIndicesKind),o=a.getVerticesData(q.MatricesWeightsKind);if(o&&n){const l=a.numBoneInfluencers>4,c=l?a.getVerticesData(q.MatricesIndicesExtraKind):null,u=l?a.getVerticesData(q.MatricesWeightsExtraKind):null,f=a.skeleton.getTransformMatrices(a),p=ae.Matrix[0],m=ae.Matrix[1];p.reset();const _=e*4;let d,h;for(d=0;d<4;d++)h=o[_+d],h>0&&(me.FromFloat32ArrayToRefScaled(f,Math.floor(n[_+d]*16),h,m),p.addToSelf(m));if(c&&u)for(d=0;d<4;d++)h=u[_+d],h>0&&(me.FromFloat32ArrayToRefScaled(f,Math.floor(c[_+d]*16),h,m),p.addToSelf(m));P.TransformCoordinatesFromFloatsToRef(r[0],r[1],r[2],p,t)}}return!0}function VWe(a,e,t,i){t.set(0,0,0);for(let s=0;s<3;s++){const r=e.pointIndex[s];if(!LAe(a,r,ae.Vector3[s]))return!1;ae.Vector3[s].scaleAndAddToRef(e.barycentric[s],t)}if(P.TransformCoordinatesToRef(t,a.getWorldMatrix(),t),i){const s=ae.Vector3[0],r=ae.Vector3[1],n=ae.Vector3[2],o=ae.Vector3[3],l=ae.Vector3[4];o.copyFrom(r),o.subtractInPlace(s),l.copyFrom(n),l.subtractInPlace(s),o.normalize(),l.normalize(),P.CrossToRef(o,l,i),a.material&&a.material.sideOrientation===(a.getScene().useRightHandedSystem?0:1)&&i.scaleInPlace(-1),P.TransformNormalToRef(i,a.getWorldMatrix(),i),i.normalize()}return!0}class p_{static get Configuration(){return{get decoder(){return au.DefaultConfiguration},set decoder(e){au.DefaultConfiguration=e}}}static set Configuration(e){au.DefaultConfiguration=e.decoder}static get DecoderAvailable(){return rK(au.DefaultConfiguration)}static get Default(){return p_._Default??(p_._Default=new p_),p_._Default}static ResetDefault(e){p_._Default&&(e||p_._Default.dispose(),p_._Default=null)}constructor(e=p_.DefaultNumWorkers){const t=typeof e=="number"?{...au.DefaultConfiguration,numWorkers:e}:{...au.DefaultConfiguration,...e};this._decoder=new au(t)}dispose(){this._decoder.dispose()}async whenReadyAsync(){return this._decoder.whenReadyAsync()}decodeMeshToMeshDataAsync(e,t,i){return this._decoder.decodeMeshToMeshDataAsync(e,t,i)}async decodeMeshToGeometryAsync(e,t,i,s){return this._decoder.decodeMeshToGeometryAsync(e,t,i,s)}async _decodeMeshToGeometryForGltfAsync(e,t,i,s,r,n){return this._decoder._decodeMeshToGeometryForGltfAsync(e,t,i,s,r,n)}async decodeMeshAsync(e,t){const i=await this._decoder.decodeMeshToMeshDataAsync(e,t),s=new wt;i.indices&&(s.indices=i.indices);for(const r of i.attributes){const n=q.GetFloatData(r.data,r.size,q.GetDataType(r.data),r.byteOffset,r.byteStride,r.normalized,i.totalVertices);s.set(n,r.kind)}return s}}p_.DefaultNumWorkers=Ude(),p_._Default=null;function GWe(a){return a===q.PositionKind?"POSITION":a===q.NormalKind?"NORMAL":a===q.ColorKind?"COLOR":a.startsWith(q.UVKind)?"TEX_COORD":"GENERIC"}function WWe(a){let e=a.getIndices(void 0,!0);return e&&!(e instanceof Uint32Array)&&!(e instanceof Uint16Array)&&(e=(RX(e,e.length)?Uint32Array:Uint16Array).from(e)),e}function HWe(a,e){const t=[];for(const i of a.getVerticesDataKinds()){if(e!=null&&e.includes(i)){if(i===q.PositionKind)throw new Error("Cannot exclude position attribute from Draco encoding.");continue}const s=a.getVertexBuffer(i),r=s.getSize(),n=OX(s.getData(),r,s.type,s.byteOffset,s.byteStride,s.normalized,a.getTotalVertices(),!0);t.push({kind:i,dracoName:GWe(i),size:r,data:n})}return t}const IAe={decodeSpeed:5,encodeSpeed:5,method:"MESH_EDGEBREAKER_ENCODING",quantizationBits:{POSITION:14,NORMAL:10,COLOR:8,TEX_COORD:12,GENERIC:12}};class O0 extends jde{static get DefaultAvailable(){return rK(O0.DefaultConfiguration)}static get Default(){return O0._Default??(O0._Default=new O0),O0._Default}static ResetDefault(e){O0._Default&&(e||O0._Default.dispose(),O0._Default=null)}_isModuleAvailable(){return typeof DracoEncoderModule<"u"}async _createModuleAsync(e,t){return{module:await(t||DracoEncoderModule)({wasmBinary:e})}}_getWorkerContent(){return`${iK}(${YRe})()`}constructor(e=O0.DefaultConfiguration){super(e)}async _encodeAsync(e,t,i){const s=i?DG(IAe,i):IAe;if(this._workerPoolPromise){const r=await this._workerPoolPromise;return new Promise((n,o)=>{r.push((l,c)=>{const u=m=>{l.removeEventListener("error",u),l.removeEventListener("message",f),o(m),c()},f=m=>{m.data.id==="encodeMeshDone"&&(l.removeEventListener("error",u),l.removeEventListener("message",f),n(m.data.encodedMeshData),c())};l.addEventListener("error",u),l.addEventListener("message",f);const p=[];e.forEach(m=>{p.push(m.data.buffer)}),t&&p.push(t.buffer),l.postMessage({id:"encodeMesh",attributes:e,indices:t,options:s},p)})})}if(this._modulePromise){const r=await this._modulePromise;return iK(r.module,e,t,s)}throw new Error("Draco encoder module is not available")}async encodeMeshAsync(e,t){if(e.getTotalVertices()==0)throw new Error("Cannot compress geometry with Draco. There are no vertices.");e instanceof Ne&&e.morphTargetManager&&(t==null?void 0:t.method)==="MESH_EDGEBREAKER_ENCODING"&&(de.Warn("Cannot use Draco EDGEBREAKER method with morph targets. Falling back to SEQUENTIAL method."),t.method="MESH_SEQUENTIAL_ENCODING");const s=WWe(e),r=HWe(e,t==null?void 0:t.excludedAttributes);return this._encodeAsync(r,s,t)}}O0.DefaultConfiguration={wasmUrl:`${Le._DefaultCdnUrl}/draco_encoder_wasm_wrapper.js`,wasmBinaryUrl:`${Le._DefaultCdnUrl}/draco_encoder.wasm`,fallbackUrl:`${Le._DefaultCdnUrl}/draco_encoder.js`},O0._Default=null;let iY=0;class ez{constructor(e,t,i,s){this.pos=e,this.normal=t,this.uv=i,this.vertColor=s}clone(){var e,t;return new ez(this.pos.clone(),this.normal.clone(),(e=this.uv)==null?void 0:e.clone(),(t=this.vertColor)==null?void 0:t.clone())}flip(){this.normal=this.normal.scale(-1)}interpolate(e,t){return new ez(P.Lerp(this.pos,e.pos,t),P.Lerp(this.normal,e.normal,t),this.uv&&e.uv?Ue.Lerp(this.uv,e.uv,t):void 0,this.vertColor&&e.vertColor?St.Lerp(this.vertColor,e.vertColor,t):void 0)}}class jL{constructor(e,t){this.normal=e,this.w=t}static FromPoints(e,t,i){const s=i.subtract(e),r=t.subtract(e);if(s.lengthSquared()===0||r.lengthSquared()===0)return null;const n=P.Normalize(P.Cross(s,r));return new jL(n,P.Dot(n,e))}clone(){return new jL(this.normal.clone(),this.w)}flip(){this.normal.scaleInPlace(-1),this.w=-this.w}splitPolygon(e,t,i,s,r){let u=0;const f=[];let p,m;for(p=0;p<e.vertices.length;p++){m=P.Dot(this.normal,e.vertices[p].pos)-this.w;const _=m<-jL.EPSILON?2:m>jL.EPSILON?1:0;u|=_,f.push(_)}switch(u){case 0:(P.Dot(this.normal,e.plane.normal)>0?t:i).push(e);break;case 1:s.push(e);break;case 2:r.push(e);break;case 3:{const _=[],d=[];for(p=0;p<e.vertices.length;p++){const x=(p+1)%e.vertices.length,A=f[p],S=f[x],E=e.vertices[p],b=e.vertices[x];if(A!==2&&_.push(E),A!==1&&d.push(A!==2?E.clone():E),(A|S)===3){m=(this.w-P.Dot(this.normal,E.pos))/P.Dot(this.normal,b.pos.subtract(E.pos));const M=E.interpolate(b,m);_.push(M),d.push(M.clone())}}let h;_.length>=3&&(h=new MO(_,e.shared),h.plane&&s.push(h)),d.length>=3&&(h=new MO(d,e.shared),h.plane&&r.push(h));break}}}}jL.EPSILON=1e-5;class MO{constructor(e,t){this.vertices=e,this.shared=t,this.plane=jL.FromPoints(e[0].pos,e[1].pos,e[2].pos)}clone(){const e=this.vertices.map(t=>t.clone());return new MO(e,this.shared)}flip(){this.vertices.reverse().map(e=>{e.flip()}),this.plane.flip()}}let m_=class QY{constructor(e){this._plane=null,this._front=null,this._back=null,this._polygons=new Array,e&&this.build(e)}clone(){const e=new QY;return e._plane=this._plane&&this._plane.clone(),e._front=this._front&&this._front.clone(),e._back=this._back&&this._back.clone(),e._polygons=this._polygons.map(t=>t.clone()),e}invert(){for(let t=0;t<this._polygons.length;t++)this._polygons[t].flip();this._plane&&this._plane.flip(),this._front&&this._front.invert(),this._back&&this._back.invert();const e=this._front;this._front=this._back,this._back=e}clipPolygons(e){if(!this._plane)return e.slice();let t=[],i=[];for(let s=0;s<e.length;s++)this._plane.splitPolygon(e[s],t,i,t,i);return this._front&&(t=this._front.clipPolygons(t)),this._back?i=this._back.clipPolygons(i):i=[],t.concat(i)}clipTo(e){this._polygons=e.clipPolygons(this._polygons),this._front&&this._front.clipTo(e),this._back&&this._back.clipTo(e)}allPolygons(){let e=this._polygons.slice();return this._front&&(e=e.concat(this._front.allPolygons())),this._back&&(e=e.concat(this._back.allPolygons())),e}build(e){if(!e.length)return;this._plane||(this._plane=e[0].plane.clone());const t=[],i=[];for(let s=0;s<e.length;s++)this._plane.splitPolygon(e[s],this._polygons,this._polygons,t,i);t.length&&(this._front||(this._front=new QY),this._front.build(t)),i.length&&(this._back||(this._back=new QY),this._back.build(i))}};class p5{constructor(){this._polygons=new Array}static FromVertexData(e){let t,i,s;const r=[],n=e.indices,o=e.positions,l=e.normals,c=e.uvs,u=e.colors;if(!n||!o)throw"BABYLON.CSG: VertexData must at least contain positions and indices";for(let p=0;p<n.length;p+=3){s=[];for(let m=0;m<3;m++){const _=p+m,d=n[_],h=l?P.FromArray(l,d*3):P.Zero(),x=c?Ue.FromArray(c,d*2):void 0,A=u?St.FromArray(u,d*4):void 0,S=P.FromArray(o,d*3);t=new ez(S,h,x,A),s.push(t)}i=new MO(s,{subMeshId:0,meshId:iY,materialIndex:0}),i.plane&&r.push(i)}const f=p5._FromPolygons(r);return f.matrix=me.Identity(),f.position=P.Zero(),f.rotation=P.Zero(),f.scaling=P.One(),f.rotationQuaternion=Re.Identity(),iY++,f}static FromMesh(e,t=!1){let i,s,r,n,o,l,c;const u=[];let f,p,m,_=null,d,h=!1;if(e instanceof Ne)e.computeWorldMatrix(!0),f=e.getWorldMatrix(),p=e.position.clone(),m=e.rotation.clone(),e.rotationQuaternion&&(_=e.rotationQuaternion.clone()),d=e.scaling.clone(),e.material&&t&&(h=e.material.sideOrientation===0);else throw"BABYLON.CSG: Wrong Mesh type, must be BABYLON.Mesh";const x=e.getIndices(),A=e.getVerticesData(q.PositionKind),S=e.getVerticesData(q.NormalKind),E=e.getVerticesData(q.UVKind),b=e.getVerticesData(q.ColorKind);if(x===null)throw"BABYLON.CSG: Mesh has no indices";if(A===null)throw"BABYLON.CSG: Mesh has no positions";if(S===null)throw"BABYLON.CSG: Mesh has no normals";const M=e.subMeshes;if(!M)throw"BABYLON.CSG: Mesh has no submeshes";for(let O=0,R=M.length;O<R;O++)for(let I=M[O].indexStart,N=M[O].indexCount+M[O].indexStart;I<N;I+=3){c=[];for(let w=0;w<3;w++){const D=w===0?I+w:h?I+3-w:I+w,k=new P(S[x[D]*3],S[x[D]*3+1],S[x[D]*3+2]);E&&(r=new Ue(E[x[D]*2],E[x[D]*2+1])),b&&(o=new St(b[x[D]*4],b[x[D]*4+1],b[x[D]*4+2],b[x[D]*4+3]));const Y=new P(A[x[D]*3],A[x[D]*3+1],A[x[D]*3+2]);n=P.TransformCoordinates(Y,f),s=P.TransformNormal(k,f),i=new ez(n,s,r,o),c.push(i)}l=new MO(c,{subMeshId:O,meshId:iY,materialIndex:M[O].materialIndex}),l.plane&&u.push(l)}const T=p5._FromPolygons(u);return T.matrix=t?me.Identity():f,T.position=t?P.Zero():p,T.rotation=t?P.Zero():m,T.scaling=t?P.One():d,T.rotationQuaternion=t&&_?Re.Identity():_,iY++,T}static _FromPolygons(e){const t=new p5;return t._polygons=e,t}clone(){const e=new p5;return e._polygons=this._polygons.map(t=>t.clone()),e.copyTransformAttributes(this),e}union(e){const t=new m_(this.clone()._polygons),i=new m_(e.clone()._polygons);return t.clipTo(i),i.clipTo(t),i.invert(),i.clipTo(t),i.invert(),t.build(i.allPolygons()),p5._FromPolygons(t.allPolygons()).copyTransformAttributes(this)}unionInPlace(e){const t=new m_(this._polygons),i=new m_(e._polygons);t.clipTo(i),i.clipTo(t),i.invert(),i.clipTo(t),i.invert(),t.build(i.allPolygons()),this._polygons=t.allPolygons()}subtract(e){const t=new m_(this.clone()._polygons),i=new m_(e.clone()._polygons);return t.invert(),t.clipTo(i),i.clipTo(t),i.invert(),i.clipTo(t),i.invert(),t.build(i.allPolygons()),t.invert(),p5._FromPolygons(t.allPolygons()).copyTransformAttributes(this)}subtractInPlace(e){const t=new m_(this._polygons),i=new m_(e._polygons);t.invert(),t.clipTo(i),i.clipTo(t),i.invert(),i.clipTo(t),i.invert(),t.build(i.allPolygons()),t.invert(),this._polygons=t.allPolygons()}intersect(e){const t=new m_(this.clone()._polygons),i=new m_(e.clone()._polygons);return t.invert(),i.clipTo(t),i.invert(),t.clipTo(i),i.clipTo(t),t.build(i.allPolygons()),t.invert(),p5._FromPolygons(t.allPolygons()).copyTransformAttributes(this)}intersectInPlace(e){const t=new m_(this._polygons),i=new m_(e._polygons);t.invert(),i.clipTo(t),i.invert(),t.clipTo(i),i.clipTo(t),t.build(i.allPolygons()),t.invert(),this._polygons=t.allPolygons()}inverse(){const e=this.clone();return e.inverseInPlace(),e}inverseInPlace(){this._polygons.map(e=>{e.flip()})}copyTransformAttributes(e){return this.matrix=e.matrix,this.position=e.position,this.rotation=e.rotation,this.scaling=e.scaling,this.rotationQuaternion=e.rotationQuaternion,this}toVertexData(e=null,t=null){const i=this.matrix.clone();i.invert();const s=this._polygons,r=[],n=[],o=[];let l=null,c=null;const u=P.Zero(),f=P.Zero(),p=Ue.Zero(),m=new St(0,0,0,0),_=[0,0,0],d={};let h;for(let A=0,S=s.length;A<S;A++){const E=s[A];e&&e(E);for(let b=2,M=E.vertices.length;b<M;b++){_[0]=0,_[1]=b-1,_[2]=b;for(let T=0;T<3;T++){u.copyFrom(E.vertices[_[T]].pos),f.copyFrom(E.vertices[_[T]].normal),E.vertices[_[T]].uv&&(l||(l=[]),p.copyFrom(E.vertices[_[T]].uv)),E.vertices[_[T]].vertColor&&(c||(c=[]),m.copyFrom(E.vertices[_[T]].vertColor));const O=P.TransformCoordinates(u,i),R=P.TransformNormal(f,i);h=d[O.x+","+O.y+","+O.z];let I=!1;l&&!(l[h*2]===p.x||l[h*2+1]===p.y)&&(I=!0);let N=!1;c&&!(c[h*4]===m.r||c[h*4+1]===m.g||c[h*4+2]===m.b||c[h*4+3]===m.a)&&(N=!0),(!(typeof h<"u"&&o[h*3]===R.x&&o[h*3+1]===R.y&&o[h*3+2]===R.z)||I||N)&&(r.push(O.x,O.y,O.z),l&&l.push(p.x,p.y),o.push(f.x,f.y,f.z),c&&c.push(m.r,m.g,m.b,m.a),h=d[O.x+","+O.y+","+O.z]=r.length/3-1),n.push(h),t&&t()}}}const x=new wt;return x.positions=r,x.normals=o,l&&(x.uvs=l),c&&(x.colors=c),x.indices=n,x}buildMeshGeometry(e,t,i){const s=new Ne(e,t),r=this._polygons;let n=0;const o={};let l;if(i&&r.sort((u,f)=>u.shared.meshId===f.shared.meshId?u.shared.subMeshId-f.shared.subMeshId:u.shared.meshId-f.shared.meshId),this.toVertexData(u=>{o[u.shared.meshId]||(o[u.shared.meshId]={}),o[u.shared.meshId][u.shared.subMeshId]||(o[u.shared.meshId][u.shared.subMeshId]={indexStart:1/0,indexEnd:-1/0,materialIndex:u.shared.materialIndex}),l=o[u.shared.meshId][u.shared.subMeshId]},()=>{l.indexStart=Math.min(n,l.indexStart),l.indexEnd=Math.max(n,l.indexEnd),n++}).applyToMesh(s),i){let u=0,f;s.subMeshes=[];for(const p in o){f=-1;for(const m in o[p])l=o[p][m],Lc.CreateFromIndices(l.materialIndex+u,l.indexStart,l.indexEnd-l.indexStart+1,s),f=Math.max(l.materialIndex,f);u+=++f}}return s}toMesh(e,t=null,i,s){const r=this.buildMeshGeometry(e,i,s);return r.material=t,r.position.copyFrom(this.position),r.rotation.copyFrom(this.rotation),this.rotationQuaternion&&(r.rotationQuaternion=this.rotationQuaternion.clone()),r.scaling.copyFrom(this.scaling),r.computeWorldMatrix(!0),r}}class xb{static _GetShader(e,t){if(!e._meshUVSpaceRendererShader){const i=new Fo("meshUVSpaceRendererShader",e,{vertex:"meshUVSpaceRenderer",fragment:"meshUVSpaceRenderer"},{attributes:["position","normal","uv"],uniforms:["world","projMatrix"],samplers:["textureSampler"],needAlphaBlending:!0,shaderLanguage:t});i.backFaceCulling=!1,i.alphaMode=2,e.onDisposeObservable.add(()=>{var s;(s=e._meshUVSpaceRendererShader)==null||s.dispose(),e._meshUVSpaceRendererShader=null}),e._meshUVSpaceRendererShader=i}return e._meshUVSpaceRendererShader}static _GetMaskShader(e,t){if(!e._meshUVSpaceRendererMaskShader){const i=new Fo("meshUVSpaceRendererMaskShader",e,{vertex:"meshUVSpaceRendererMasker",fragment:"meshUVSpaceRendererMasker"},{attributes:["position","uv"],uniforms:["worldViewProjection"],shaderLanguage:t});i.backFaceCulling=!1,i.alphaMode=2,e.onDisposeObservable.add(()=>{var s;(s=e._meshUVSpaceRendererMaskShader)==null||s.dispose(),e._meshUVSpaceRendererMaskShader=null}),e._meshUVSpaceRendererMaskShader=i}return e._meshUVSpaceRendererMaskShader}static _IsRenderTargetTexture(e){return e.renderList!==void 0}get shaderLanguage(){return this._shaderLanguage}constructor(e,t,i){this._textureCreatedInternally=!1,this._configureUserCreatedTexture=!0,this._maskTexture=null,this._finalPostProcess=null,this._shadersLoaded=!1,this._isDisposed=!1,this.clearColor=new St(0,0,0,0),this.texture=null,this._shaderLanguage=0,this._mesh=e,this._scene=t,this._options={width:1024,height:1024,textureType:0,generateMipMaps:!0,optimizeUVAllocation:!0,uvEdgeBlending:!1,...i},this._initShaderSourceAsync()}async _initShaderSourceAsync(){this._scene.getEngine().isWebGPU?(this._shaderLanguage=1,await Promise.all([Promise.resolve().then(()=>mHe),Promise.resolve().then(()=>gHe),Promise.resolve().then(()=>_He),Promise.resolve().then(()=>vHe),Promise.resolve().then(()=>CHe),Promise.resolve().then(()=>AHe)])):await Promise.all([Promise.resolve().then(()=>cHe),Promise.resolve().then(()=>uHe),Promise.resolve().then(()=>hHe),Promise.resolve().then(()=>dHe),Promise.resolve().then(()=>pHe),Promise.resolve().then(()=>fHe)]),!this._isDisposed&&(this._shadersLoaded=!0)}isReady(){var s,r;if(!this._shadersLoaded)return!1;this.texture?this._configureUserCreatedTexture&&this._configureUserCreatedRTT():this._createDiffuseRTT();const e=xb._IsRenderTargetTexture(this.texture)?this.texture.isReadyForRendering():this.texture.isReady(),t=((s=this._maskTexture)==null?void 0:s.isReadyForRendering())??!0,i=((r=this._finalPostProcess)==null?void 0:r.isReady())??!0;return e&&t&&i}renderTexture(e,t,i,s,r=0,n=!0){if(n&&!this.isReady()){setTimeout(()=>{this.renderTexture(e,t,i,s,r,n)},16);return}if(this.texture?this._configureUserCreatedTexture&&this._configureUserCreatedRTT():this._createDiffuseRTT(),xb._IsRenderTargetTexture(this.texture)){const o=this._createProjectionMatrix(t,i,s,r),l=xb._GetShader(this._scene,this._shaderLanguage);l.setTexture("textureSampler",e),l.setMatrix("projMatrix",o),this.texture.render(),l.removeTexture("textureSampler")}}clear(){var e,t,i;if(this.texture&&xb._IsRenderTargetTexture(this.texture)&&this.texture.renderTarget){const s=this._scene.getEngine();s.bindFramebuffer(this.texture.renderTarget),s.clear(this.clearColor,!0,!0,!0),s.unBindFramebuffer(this.texture.renderTarget)}if((e=this._finalPostProcess)!=null&&e.inputTexture){const s=this._scene.getEngine();s.bindFramebuffer((t=this._finalPostProcess)==null?void 0:t.inputTexture),s.clear(this.clearColor,!0,!0,!0),s.unBindFramebuffer((i=this._finalPostProcess)==null?void 0:i.inputTexture)}}dispose(){var e,t,i;this._textureCreatedInternally&&((e=this.texture)==null||e.dispose(),this._textureCreatedInternally=!1),this._configureUserCreatedTexture=!0,(t=this._maskTexture)==null||t.dispose(),this._maskTexture=null,(i=this._finalPostProcess)==null||i.dispose(),this._finalPostProcess=null,this._isDisposed=!0}_configureUserCreatedRTT(){this._configureUserCreatedTexture=!1,this.texture&&xb._IsRenderTargetTexture(this.texture)&&(this.texture.setMaterialForRendering(this._mesh,xb._GetShader(this._scene,this._shaderLanguage)),this.texture.onClearObservable.add(()=>{}),this.texture.renderList=[this._mesh],this._options.uvEdgeBlending&&(this._createMaskTexture(),this._createPostProcess(),this.texture.addPostProcess(this._finalPostProcess)))}_createDiffuseRTT(){this._textureCreatedInternally=!0;const e=this._createRenderTargetTexture(this._options.width,this._options.height);e.setMaterialForRendering(this._mesh,xb._GetShader(this._scene,this._shaderLanguage)),this.texture=e,this._configureUserCreatedTexture=!1,this._options.uvEdgeBlending&&(this._createMaskTexture(),this._createPostProcess(),e.addPostProcess(this._finalPostProcess))}_createMaskTexture(){this._maskTexture||(this._maskTexture=new Ir(this._mesh.name+"_maskTexture",{width:this._options.width,height:this._options.height},this._scene,!1,!0,0,!1,2,void 0,void 0,void 0,6),this._maskTexture.clearColor=new St(0,0,0,0),this._maskTexture.renderList.push(this._mesh),this._maskTexture.setMaterialForRendering(this._mesh,xb._GetMaskShader(this._scene,this._shaderLanguage)),this._maskTexture.refreshRate=Ir.REFRESHRATE_RENDER_ONCE,this._scene.customRenderTargets.push(this._maskTexture))}_createPostProcess(){this._finalPostProcess||(this._finalPostProcess=new Mi(this._mesh.name+"_fixSeamsPostProcess","meshUVSpaceRendererFinaliser",["textureSize"],["textureSampler","maskTextureSampler"],1,null,1,this._scene.getEngine(),!1,null,this._options.textureType,void 0,void 0,void 0,void 0,this._shaderLanguage),this._finalPostProcess.onApplyObservable.add(e=>{e.setTexture("maskTextureSampler",this._maskTexture),e.setFloat2("textureSize",this._options.width,this._options.height)}))}_createRenderTargetTexture(e,t){const i=new Ir(this._mesh.name+"_uvspaceTexture",{width:e,height:t},this._scene,this._options.generateMipMaps,!0,this._options.textureType,!1,this._options.generateMipMaps?3:2,!1,!1,!1,5);return i.renderParticles=!1,i.optimizeUVAllocation=!!this._options.optimizeUVAllocation,i.onClearObservable.addOnce(()=>{this._scene.getEngine().clear(this.clearColor,!0,!0,!0),i.onClearObservable.add(()=>{})}),i.renderList=[this._mesh],i}_createProjectionMatrix(e,t,i,s=0){const r=-Math.atan2(t.z,t.x)-Math.PI/2,n=Math.sqrt(t.x*t.x+t.z*t.z),o=Math.atan2(t.y,n),l=e.add(t.scale(i.z*.5)),c=me.RotationYawPitchRoll(r,o,s).multiply(me.Translation(l.x,l.y,l.z)),u=me.Invert(c),f=me.FromArray([2/i.x,0,0,0,0,2/i.y,0,0,0,0,1/i.z,0,0,0,0,1]),p=me.FromArray([.5,0,0,0,0,.5,0,0,0,0,1,0,.5,.5,0,1]);return u.multiply(f).multiply(p)}}Ne._TrailMeshParser=(a,e)=>tz.Parse(a,e);class tz extends Ne{constructor(e,t,i,s,r=60,n=!0){super(e,i),this._sectionPolygonPointsCount=4,this._running=!1,this._generator=t,typeof s=="object"&&s!==null?(this.diameter=s.diameter||1,this._length=s.length||60,this._segments=s.segments?s.segments>this._length?this._length:s.segments:this._length,this._sectionPolygonPointsCount=s.sections||4,this._doNotTaper=s.doNotTaper||!1,this._autoStart=s.autoStart||!0):(this.diameter=s||1,this._length=r,this._segments=this._length,this._doNotTaper=!1,this._autoStart=n),this._sectionVectors=[],this._sectionNormalVectors=[];for(let o=0;o<=this._sectionPolygonPointsCount;o++)this._sectionVectors[o]=P.Zero(),this._sectionNormalVectors[o]=P.Zero();this._createMesh()}getClassName(){return"TrailMesh"}_createMesh(){const e=new wt,t=[],i=[],s=[],r=[];let n=P.Zero();this._generator instanceof cr&&this._generator.hasBoundingInfo?n=this._generator.getBoundingInfo().boundingBox.centerWorld:n=this._generator.absolutePosition;const o=2*Math.PI/this._sectionPolygonPointsCount;for(let l=0;l<=this._sectionPolygonPointsCount;l++){const c=l!==this._sectionPolygonPointsCount?l*o:0;t.push(n.x+Math.cos(c)*this.diameter,n.y+Math.sin(c)*this.diameter,n.z),r.push(l/this._sectionPolygonPointsCount,0)}for(let l=1;l<=this._segments;l++){for(let u=0;u<=this._sectionPolygonPointsCount;u++){const f=u!==this._sectionPolygonPointsCount?u*o:0;t.push(n.x+Math.cos(f)*this.diameter,n.y+Math.sin(f)*this.diameter,n.z),r.push(u/this._sectionPolygonPointsCount,l/this._segments)}const c=t.length/3-2*(this._sectionPolygonPointsCount+1);for(let u=0;u<=this._sectionPolygonPointsCount;u++)s.push(c+u,c+u+this._sectionPolygonPointsCount,c+u+this._sectionPolygonPointsCount+1),s.push(c+u,c+u+this._sectionPolygonPointsCount+1,c+u+1)}wt.ComputeNormals(t,s,i),e.positions=t,e.normals=i,e.indices=s,e.uvs=r,e.applyToMesh(this,!0),this._autoStart&&this.start()}_updateSectionVectors(){const e=this._generator.getWorldMatrix(),t=2*Math.PI/this._sectionPolygonPointsCount;for(let i=0;i<=this._sectionPolygonPointsCount;i++){const s=i!==this._sectionPolygonPointsCount?i*t:0;this._sectionVectors[i].copyFromFloats(Math.cos(s)*this.diameter,Math.sin(s)*this.diameter,0),this._sectionNormalVectors[i].copyFromFloats(Math.cos(s),Math.sin(s),0),P.TransformCoordinatesToRef(this._sectionVectors[i],e,this._sectionVectors[i]),P.TransformNormalToRef(this._sectionNormalVectors[i],e,this._sectionNormalVectors[i])}}start(){this._running||(this._running=!0,this._beforeRenderObserver=this.getScene().onBeforeRenderObservable.add(()=>{this.update()}))}stop(){this._beforeRenderObserver&&this._running&&(this._running=!1,this.getScene().onBeforeRenderObservable.remove(this._beforeRenderObserver))}update(){const e=this.getVerticesData(q.PositionKind),t=this.getVerticesData(q.NormalKind),i=3*(this._sectionPolygonPointsCount+1);if(e&&t){if(this._doNotTaper)for(let r=i;r<e.length;r++)e[r-i]=Zl(e[r-i],e[r],this._segments/this._length);else for(let r=i;r<e.length;r++)e[r-i]=Zl(e[r-i],e[r],this._segments/this._length)-t[r]/this._length*this.diameter;for(let r=i;r<t.length;r++)t[r-i]=Zl(t[r-i],t[r],this._segments/this._length);this._updateSectionVectors();const s=e.length-3*(this._sectionPolygonPointsCount+1);for(let r=0;r<=this._sectionPolygonPointsCount;r++)e[s+3*r]=this._sectionVectors[r].x,e[s+3*r+1]=this._sectionVectors[r].y,e[s+3*r+2]=this._sectionVectors[r].z,t[s+3*r]=this._sectionNormalVectors[r].x,t[s+3*r+1]=this._sectionNormalVectors[r].y,t[s+3*r+2]=this._sectionNormalVectors[r].z;this.updateVerticesData(q.PositionKind,e,!0,!1),this.updateVerticesData(q.NormalKind,t,!0,!1)}}reset(){const e=this.getVerticesData(q.PositionKind),t=this.getVerticesData(q.NormalKind);if(e&&t){this._updateSectionVectors();for(let i=0;i<=this._segments;i++){const s=3*i*(this._sectionPolygonPointsCount+1);for(let r=0;r<=this._sectionPolygonPointsCount;r++)e[s+3*r]=this._sectionVectors[r].x,e[s+3*r+1]=this._sectionVectors[r].y,e[s+3*r+2]=this._sectionVectors[r].z,t[s+3*r]=this._sectionNormalVectors[r].x,t[s+3*r+1]=this._sectionNormalVectors[r].y,t[s+3*r+2]=this._sectionNormalVectors[r].z}this.updateVerticesData(q.PositionKind,e,!0,!1),this.updateVerticesData(q.NormalKind,t,!0,!1)}}clone(e="",t){const i={diameter:this.diameter,length:this._length,segments:this._segments,sections:this._sectionPolygonPointsCount,doNotTaper:this._doNotTaper,autoStart:this._autoStart};return new tz(e,t??this._generator,this.getScene(),i)}serialize(e){super.serialize(e),e.generatorId=this._generator.id}static Parse(e,t){const i=t.getLastMeshById(e.generatorId)??t.getLastTransformNodeById(e.generatorId);if(!i)throw new Error("TrailMesh: generator not found with ID "+e.generatorId);const s={diameter:e.diameter??e._diameter,length:e._length,segments:e._segments,sections:e._sectionPolygonPointsCount,doNotTaper:e._doNotTaper,autoStart:e._autoStart};return new tz(e.name,i,t,s)}}class YWe{constructor(e,t,i){this.quality=e,this.distance=t,this.optimizeMesh=i}}class PAe{constructor(){this.running=!1,this._simplificationArray=[]}addTask(e){this._simplificationArray.push(e)}executeNext(){const e=this._simplificationArray.pop();e?(this.running=!0,this.runSimplification(e)):this.running=!1}runSimplification(e){if(e.parallelProcessing)e.settings.forEach(t=>{this._getSimplifier(e).simplify(t,s=>{t.distance!==void 0&&e.mesh.addLODLevel(t.distance,s),s.isVisible=!0,t.quality===e.settings[e.settings.length-1].quality&&e.successCallback&&e.successCallback(),this.executeNext()})});else{const t=this._getSimplifier(e),i=(s,r)=>{t.simplify(s,n=>{s.distance!==void 0&&e.mesh.addLODLevel(s.distance,n),n.isVisible=!0,r()})};v4.Run(e.settings.length,s=>{i(e.settings[s.index],()=>{s.executeNext()})},()=>{e.successCallback&&e.successCallback(),this.executeNext()})}}_getSimplifier(e){switch(e.simplificationType){case 0:default:return new OAe(e.mesh)}}}var Dre;(function(a){a[a.QUADRATIC=0]="QUADRATIC"})(Dre||(Dre={}));class XWe{constructor(e){this._vertices=e,this.error=new Array(4),this.deleted=!1,this.isDirty=!1,this.deletePending=!1,this.borderFactor=0}}class ZWe{constructor(e,t){this.position=e,this.id=t,this.isBorder=!0,this.q=new EO,this.triangleCount=0,this.triangleStart=0,this.originalOffsets=[]}updatePosition(e){this.position.copyFrom(e)}}class EO{constructor(e){this.data=new Array(10);for(let t=0;t<10;++t)e&&e[t]?this.data[t]=e[t]:this.data[t]=0}det(e,t,i,s,r,n,o,l,c){return this.data[e]*this.data[r]*this.data[c]+this.data[i]*this.data[s]*this.data[l]+this.data[t]*this.data[n]*this.data[o]-this.data[i]*this.data[r]*this.data[o]-this.data[e]*this.data[n]*this.data[l]-this.data[t]*this.data[s]*this.data[c]}addInPlace(e){for(let t=0;t<10;++t)this.data[t]+=e.data[t]}addArrayInPlace(e){for(let t=0;t<10;++t)this.data[t]+=e[t]}add(e){const t=new EO;for(let i=0;i<10;++i)t.data[i]=this.data[i]+e.data[i];return t}static FromData(e,t,i,s){return new EO(EO.DataFromNumbers(e,t,i,s))}static DataFromNumbers(e,t,i,s){return[e*e,e*t,e*i,e*s,t*t,t*i,t*s,i*i,i*s,s*s]}}class KWe{constructor(e,t){this.vertexId=e,this.triangleId=t}}class OAe{constructor(e){this._mesh=e,this.syncIterations=5e3,this.aggressiveness=7,this.decimationIterations=100,this.boundingBoxEpsilon=Ii}simplify(e,t){this._initDecimatedMesh(),v4.Run(this._mesh.subMeshes.length,i=>{this._initWithMesh(i.index,()=>{this._runDecimation(e,i.index,()=>{i.executeNext()})},e.optimizeMesh)},()=>{setTimeout(()=>{t(this._reconstructedMesh)},0)})}_runDecimation(e,t,i){const s=~~(this._triangles.length*e.quality);let r=0;const n=this._triangles.length,o=(l,c)=>{setTimeout(()=>{l%5===0&&this._updateMesh(l===0);for(let p=0;p<this._triangles.length;++p)this._triangles[p].isDirty=!1;const u=1e-9*Math.pow(l+3,this.aggressiveness),f=p=>{const m=~~((this._triangles.length/2+p)%this._triangles.length),_=this._triangles[m];if(_&&!(_.error[3]>u||_.deleted||_.isDirty)){for(let d=0;d<3;++d)if(_.error[d]<u){const h=[],x=[],A=_._vertices[d],S=_._vertices[(d+1)%3];if(A.isBorder||S.isBorder)continue;const E=P.Zero();this._calculateError(A,S,E);const b=[];if(this._isFlipped(A,S,E,h,b)||this._isFlipped(S,A,E,x,b)||h.indexOf(!0)<0||x.indexOf(!0)<0)continue;const M=[];if(b.forEach(R=>{M.indexOf(R)===-1&&(R.deletePending=!0,M.push(R))}),M.length%2!==0)continue;A.q=S.q.add(A.q),A.updatePosition(E);const T=this._references.length;r=this._updateTriangles(A,A,h,r),r=this._updateTriangles(A,S,x,r);const O=this._references.length-T;if(O<=A.triangleCount){if(O)for(let R=0;R<O;R++)this._references[A.triangleStart+R]=this._references[T+R]}else A.triangleStart=T;A.triangleCount=O;break}}};v4.SyncAsyncForLoop(this._triangles.length,this.syncIterations,f,c,()=>n-r<=s)},0)};v4.Run(this.decimationIterations,l=>{n-r<=s?l.breakLoop():o(l.index,()=>{l.executeNext()})},()=>{setTimeout(()=>{this._reconstructMesh(t),i()},0)})}_initWithMesh(e,t,i){this._vertices=[],this._triangles=[];const s=this._mesh.getVerticesData(q.PositionKind),r=this._mesh.getIndices(),n=this._mesh.subMeshes[e],o=f=>{if(i){for(let p=0;p<this._vertices.length;++p)if(this._vertices[p].position.equalsWithEpsilon(f,1e-4))return this._vertices[p]}return null},l=[],c=f=>{if(!s)return;const p=f+n.verticesStart,m=P.FromArray(s,p*3),_=o(m)||new ZWe(m,this._vertices.length);_.originalOffsets.push(p),_.id===this._vertices.length&&this._vertices.push(_),l.push(_.id)},u=n.verticesCount;v4.SyncAsyncForLoop(u,this.syncIterations/4>>0,c,()=>{const f=p=>{if(!r)return;const _=(n.indexStart/3+p)*3,d=r[_+0],h=r[_+1],x=r[_+2],A=this._vertices[l[d-n.verticesStart]],S=this._vertices[l[h-n.verticesStart]],E=this._vertices[l[x-n.verticesStart]],b=new XWe([A,S,E]);b.originalOffset=_,this._triangles.push(b)};v4.SyncAsyncForLoop(n.indexCount/3,this.syncIterations,f,()=>{this._init(t)})})}_init(e){const t=i=>{const s=this._triangles[i];s.normal=P.Cross(s._vertices[1].position.subtract(s._vertices[0].position),s._vertices[2].position.subtract(s._vertices[0].position)).normalize();for(let r=0;r<3;r++)s._vertices[r].q.addArrayInPlace(EO.DataFromNumbers(s.normal.x,s.normal.y,s.normal.z,-P.Dot(s.normal,s._vertices[0].position)))};v4.SyncAsyncForLoop(this._triangles.length,this.syncIterations,t,()=>{const i=s=>{const r=this._triangles[s];for(let n=0;n<3;++n)r.error[n]=this._calculateError(r._vertices[n],r._vertices[(n+1)%3]);r.error[3]=Math.min(r.error[0],r.error[1],r.error[2])};v4.SyncAsyncForLoop(this._triangles.length,this.syncIterations,i,()=>{e()})})}_reconstructMesh(e){const t=[];let i;for(i=0;i<this._vertices.length;++i)this._vertices[i].triangleCount=0;let s,r;for(i=0;i<this._triangles.length;++i)if(!this._triangles[i].deleted){for(s=this._triangles[i],r=0;r<3;++r)s._vertices[r].triangleCount=1;t.push(s)}const n=this._reconstructedMesh.getVerticesData(q.PositionKind)||[],o=this._reconstructedMesh.getVerticesData(q.NormalKind)||[],l=this._reconstructedMesh.getVerticesData(q.UVKind)||[],c=this._reconstructedMesh.getVerticesData(q.ColorKind)||[],u=this._mesh.getVerticesData(q.NormalKind),f=this._mesh.getVerticesData(q.UVKind),p=this._mesh.getVerticesData(q.ColorKind);let m=0;for(i=0;i<this._vertices.length;++i){const E=this._vertices[i];E.id=m,E.triangleCount&&E.originalOffsets.forEach(b=>{n.push(E.position.x),n.push(E.position.y),n.push(E.position.z),u&&u.length&&(o.push(u[b*3]),o.push(u[b*3+1]),o.push(u[b*3+2])),f&&f.length&&(l.push(f[b*2]),l.push(f[b*2+1])),p&&p.length&&(c.push(p[b*4]),c.push(p[b*4+1]),c.push(p[b*4+2]),c.push(p[b*4+3])),++m})}const _=this._reconstructedMesh.getTotalIndices(),d=this._reconstructedMesh.getTotalVertices(),h=this._reconstructedMesh.subMeshes;this._reconstructedMesh.subMeshes=[];const x=this._reconstructedMesh.getIndices(),A=this._mesh.getIndices();for(i=0;i<t.length;++i)s=t[i],[0,1,2].forEach(E=>{const b=A[s.originalOffset+E];let M=s._vertices[E].originalOffsets.indexOf(b);M<0&&(M=0),x.push(s._vertices[E].id+M+d)});this._reconstructedMesh.setIndices(x),this._reconstructedMesh.setVerticesData(q.PositionKind,n),o.length>0&&this._reconstructedMesh.setVerticesData(q.NormalKind,o),l.length>0&&this._reconstructedMesh.setVerticesData(q.UVKind,l),c.length>0&&this._reconstructedMesh.setVerticesData(q.ColorKind,c);const S=this._mesh.subMeshes[e];e>0&&(this._reconstructedMesh.subMeshes=[],h.forEach(E=>{Lc.AddToMesh(E.materialIndex,E.verticesStart,E.verticesCount,E.indexStart,E.indexCount,E.getMesh())}),Lc.AddToMesh(S.materialIndex,d,m,_,t.length*3,this._reconstructedMesh))}_initDecimatedMesh(){this._reconstructedMesh=new Ne(this._mesh.name+"Decimated",this._mesh.getScene()),this._reconstructedMesh.material=this._mesh.material,this._reconstructedMesh.parent=this._mesh.parent,this._reconstructedMesh.isVisible=!1,this._reconstructedMesh.renderingGroupId=this._mesh.renderingGroupId}_isFlipped(e,t,i,s,r){for(let n=0;n<e.triangleCount;++n){const o=this._triangles[this._references[e.triangleStart+n].triangleId];if(o.deleted)continue;const l=this._references[e.triangleStart+n].vertexId,c=o._vertices[(l+1)%3],u=o._vertices[(l+2)%3];if(c===t||u===t){s[n]=!0,r.push(o);continue}let f=c.position.subtract(i);f=f.normalize();let p=u.position.subtract(i);if(p=p.normalize(),Math.abs(P.Dot(f,p))>.999)return!0;const m=P.Cross(f,p).normalize();if(s[n]=!1,P.Dot(m,o.normal)<.2)return!0}return!1}_updateTriangles(e,t,i,s){let r=s;for(let n=0;n<t.triangleCount;++n){const o=this._references[t.triangleStart+n],l=this._triangles[o.triangleId];if(!l.deleted){if(i[n]&&l.deletePending){l.deleted=!0,r++;continue}l._vertices[o.vertexId]=e,l.isDirty=!0,l.error[0]=this._calculateError(l._vertices[0],l._vertices[1])+l.borderFactor/2,l.error[1]=this._calculateError(l._vertices[1],l._vertices[2])+l.borderFactor/2,l.error[2]=this._calculateError(l._vertices[2],l._vertices[0])+l.borderFactor/2,l.error[3]=Math.min(l.error[0],l.error[1],l.error[2]),this._references.push(o)}}return r}_identifyBorder(){for(let e=0;e<this._vertices.length;++e){const t=[],i=[],s=this._vertices[e];let r;for(r=0;r<s.triangleCount;++r){const n=this._triangles[this._references[s.triangleStart+r].triangleId];for(let o=0;o<3;o++){let l=0;const c=n._vertices[o];for(;l<t.length&&i[l]!==c.id;)++l;l===t.length?(t.push(1),i.push(c.id)):t[l]++}}for(r=0;r<t.length;++r)t[r]===1?this._vertices[i[r]].isBorder=!0:this._vertices[i[r]].isBorder=!1}}_updateMesh(e=!1){let t;if(!e){const l=[];for(t=0;t<this._triangles.length;++t)this._triangles[t].deleted||l.push(this._triangles[t]);this._triangles=l}for(t=0;t<this._vertices.length;++t)this._vertices[t].triangleCount=0,this._vertices[t].triangleStart=0;let i,s,r;for(t=0;t<this._triangles.length;++t)for(i=this._triangles[t],s=0;s<3;++s)r=i._vertices[s],r.triangleCount++;let n=0;for(t=0;t<this._vertices.length;++t)this._vertices[t].triangleStart=n,n+=this._vertices[t].triangleCount,this._vertices[t].triangleCount=0;const o=new Array(this._triangles.length*3);for(t=0;t<this._triangles.length;++t)for(i=this._triangles[t],s=0;s<3;++s)r=i._vertices[s],o[r.triangleStart+r.triangleCount]=new KWe(s,t),r.triangleCount++;this._references=o,e&&this._identifyBorder()}_vertexError(e,t){const i=t.x,s=t.y,r=t.z;return e.data[0]*i*i+2*e.data[1]*i*s+2*e.data[2]*i*r+2*e.data[3]*i+e.data[4]*s*s+2*e.data[5]*s*r+2*e.data[6]*s+e.data[7]*r*r+2*e.data[8]*r+e.data[9]}_calculateError(e,t,i){const s=e.q.add(t.q),r=e.isBorder&&t.isBorder;let n=0;const o=s.det(0,1,2,1,4,5,2,5,7);if(o!==0&&!r)i||(i=P.Zero()),i.x=-1/o*s.det(1,2,3,4,5,6,5,7,8),i.y=1/o*s.det(0,2,3,1,5,6,2,7,8),i.z=-1/o*s.det(0,1,3,1,4,6,2,5,8),n=this._vertexError(s,i);else{const l=e.position.add(t.position).divide(new P(2,2,2)),c=this._vertexError(s,e.position),u=this._vertexError(s,t.position),f=this._vertexError(s,l);n=Math.min(c,u,f),n===c?i&&i.copyFrom(e.position):n===u?i&&i.copyFrom(t.position):i&&i.copyFrom(l)}return n}}Object.defineProperty(ui.prototype,"simplificationQueue",{get:function(){if(!this._simplificationQueue){this._simplificationQueue=new PAe;let a=this._getComponent(jt.NAME_SIMPLIFICATIONQUEUE);a||(a=new RAe(this),this._addComponent(a))}return this._simplificationQueue},set:function(a){this._simplificationQueue=a},enumerable:!0,configurable:!0}),Ne.prototype.simplify=function(a,e=!0,t=0,i){return this.getScene().simplificationQueue.addTask({settings:a,parallelProcessing:e,mesh:this,simplificationType:t,successCallback:i}),this};class RAe{constructor(e){this.name=jt.NAME_SIMPLIFICATIONQUEUE,this.scene=e}register(){this.scene._beforeCameraUpdateStage.registerStep(jt.STEP_BEFORECAMERAUPDATE_SIMPLIFICATIONQUEUE,this,this._beforeCameraUpdate)}rebuild(){}dispose(){}_beforeCameraUpdate(){this.scene._simplificationQueue&&!this.scene._simplificationQueue.running&&this.scene._simplificationQueue.executeNext()}}function DAe(a){const e=a.minimum.x,t=a.minimum.y,i=a.minimum.z,s=a.maximum.x,r=a.maximum.y,n=a.maximum.z;return[new P(e,t,i),new P(s,r,n),new P(s,t,i),new P(e,r,i),new P(e,t,n),new P(s,r,i),new P(e,r,n),new P(s,t,n)]}function qWe(a,e=null,t=1/6){const i=ae.Vector3[0],s=new Map,r=new Map,n=a.reduce((m,_)=>Math.max(m,_.getTotalVertices()),0),o=Array.from({length:n},()=>new P),l=Array.from({length:n},()=>new P);for(const m of a){const _=m.getVerticesData(q.PositionKind);if(!_)continue;const d=m.getTotalVertices();o.length=Math.max(o.length,d),l.length=Math.max(o.length,d);for(let E=0,b=0;E<d;E++,b+=3)i.set(_[b],_[b+1],_[b+2]),o[E].copyFrom(i),l[E].copyFrom(i);const h=m.morphTargetManager;if(h)for(let E=0;E<h.numTargets;++E){const M=h.getTarget(E).getPositions();if(M)for(let T=0,O=0;T<d;T++,O+=3)i.set(M[O],M[O+1],M[O+2]),o[T].minimizeInPlace(i),l[T].maximizeInPlace(i)}const x=m.skeleton,A=x?m.getVerticesData(q.MatricesWeightsKind):null,S=x?m.getVerticesData(q.MatricesIndicesKind):null;if(A&&S){const E=m.numBoneInfluencers>4,b=E?m.getVerticesData(q.MatricesWeightsExtraKind):null,M=E?m.getVerticesData(q.MatricesIndicesExtraKind):null,T=r.get(m.uniqueId)||new Map;r.set(m.uniqueId,T);const O=(R,I,N,w)=>{for(let D=I;D<I+4;D++)if(N[D]>0){const k=w[D],Y=T.get(k);Y?(Y.minimum.minimizeInPlace(o[R]),Y.maximum.maximizeInPlace(l[R])):T.set(k,{minimum:o[R].clone(),maximum:l[R].clone()})}};for(let R=0,I=0;R<d;R++,I+=4)O(R,I,A,S),b&&M&&O(R,I,b,M)}else{const E=s.get(m.uniqueId)||{minimum:new P().setAll(Number.POSITIVE_INFINITY),maximum:new P().setAll(Number.NEGATIVE_INFINITY)};s.set(m.uniqueId,E);for(let b=0;b<d;b++)E.minimum.minimizeInPlace(o[b]),E.maximum.maximizeInPlace(l[b])}}const c=new Map,u=new Map;for(const m of a){const _=s.get(m.uniqueId);if(_)c.set(m.uniqueId,DAe(_));else{const d=r.get(m.uniqueId);if(d){const h=m.skeleton.bones,x=new Map;u.set(m.uniqueId,x),d.forEach((A,S)=>{const E=DAe(A),b=h[S].getAbsoluteInverseBindMatrix();for(const M of E)P.TransformCoordinatesToRef(M,b,M);x.set(S,E)})}}}const f=Array.from({length:a.length},()=>({minimum:new P().setAll(Number.POSITIVE_INFINITY),maximum:new P().setAll(Number.NEGATIVE_INFINITY)})),p=()=>{for(let m=0;m<a.length;m++){const _=a[m];if(!_.getVerticesData(q.PositionKind))continue;const h=_.computeWorldMatrix(!0),x=_.skeleton;if(x){x.prepare(!0);const A=x.bones;u.get(_.uniqueId).forEach((E,b)=>{for(const M of E){const T=A[b].getFinalMatrix().multiplyToRef(h,ae.Matrix[0]);P.TransformCoordinatesToRef(M,T,i),f[m].minimum.minimizeInPlace(i),f[m].maximum.maximizeInPlace(i)}})}else for(const A of c.get(_.uniqueId))P.TransformCoordinatesToRef(A,h,i),f[m].minimum.minimizeInPlace(i),f[m].maximum.maximizeInPlace(i)}};if(e&&e.isStarted){const m=e.getCurrentFrame(),_=t/e.getLength(0,1);for(let d=e.from;d<=e.to;d+=_)e.goToFrame(d),p();e.goToFrame(m)}else p();return f}class NAe{getClassName(){return"Lattice"}get resolutionX(){return this._resolutionX}get resolutionY(){return this._resolutionY}get resolutionZ(){return this._resolutionZ}get size(){return this._size}get position(){return this._position}get data(){return this._data}get cellSize(){return this._cellSize}get min(){return this._min}get max(){return this._max}constructor(e){this._cellSize=new P,this._min=new P(-.5,-.5,-.5),this._max=new P(.5,.5,.5),this._localPos=new P,this._tmpVector=new P,this._lerpVector0=new P,this._lerpVector1=new P,this._lerpVector2=new P,this._lerpVector3=new P,this._lerpVector4=new P,this._lerpVector5=new P;const t={resolutionX:3,resolutionY:3,resolutionZ:3,position:P.Zero(),size:P.One(),...e};this._resolutionX=t.resolutionX,this._resolutionY=t.resolutionY,this._resolutionZ=t.resolutionZ,this._position=t.position,this._size=t.autoAdaptToMesh?t.autoAdaptToMesh.getBoundingInfo().boundingBox.extendSize.scale(2):t.size,this._allocateData(),this.update()}_allocateData(){this._data=new Array(this.resolutionX);for(let e=0;e<this.resolutionX;e++){this._data[e]=new Array(this.resolutionY);for(let t=0;t<this.resolutionY;t++){this._data[e][t]=new Array(this.resolutionZ);for(let i=0;i<this.resolutionZ;i++)this._data[e][t][i]=P.Zero()}}}update(){for(let e=0;e<this.resolutionX;e++)for(let t=0;t<this.resolutionY;t++)for(let i=0;i<this.resolutionZ;i++){const s=-this.size.x/2+this.size.x*(e/(this.resolutionX-1)),r=-this.size.y/2+this.size.y*(t/(this.resolutionY-1)),n=-this.size.z/2+this.size.z*(i/(this.resolutionZ-1));this._data[e][t][i].set(s,r,n)}}deformMesh(e){const t=e.getVerticesData(q.PositionKind);t&&(this.deform(t),e.setVerticesData(q.PositionKind,t,!0))}updateInternals(){const e=this._resolutionX,t=this._resolutionY,i=this._resolutionZ;this._cellSize.set(this.size.x/(e-1),this.size.y/(t-1),this.size.z/(i-1)),this._min.set(this.position.x-this.size.x/2,this.position.y-this.size.y/2,this.position.z-this.size.z/2),this._min.addToRef(this._size,this._max)}deform(e,t){const i=this._resolutionX,s=this._resolutionY,r=this._resolutionZ;this.updateInternals();const n=this._min,o=this._max;for(let l=0;l<e.length;l+=3){const c=this._tmpVector.fromArray(e,l);if(aG(c.x,n.x,o.x,Ii)||aG(c.y,n.y,o.y,Ii)||aG(c.z,n.z,o.z,Ii)){t&&c.toArray(t,l);continue}const u=this._localPos.set((c.x-n.x)/this._cellSize.x,(c.y-n.y)/this._cellSize.y,(c.z-n.z)/this._cellSize.z),f=Math.floor(u.x),p=Math.floor(u.y),m=Math.floor(u.z),_=Math.min(f+1,i-1),d=Math.min(p+1,s-1),h=Math.min(m+1,r-1),x=u.x-f,A=u.y-p,S=u.z-m,E=Os(f,0,i-1),b=Os(p,0,s-1),M=Os(m,0,r-1),T=Os(_,0,i-1),O=Os(d,0,s-1),R=Os(h,0,r-1),I=this._data[E][b][M],N=this._data[T][b][M],w=this._data[E][O][M],D=this._data[T][O][M],k=this._data[E][b][R],Y=this._data[T][b][R],V=this._data[E][O][R],ee=this._data[T][O][R],K=P.LerpToRef(I,N,x,this._lerpVector0),ie=P.LerpToRef(k,Y,x,this._lerpVector1),ne=P.LerpToRef(w,D,x,this._lerpVector2),te=P.LerpToRef(V,ee,x,this._lerpVector3),W=P.LerpToRef(K,ne,A,this._lerpVector4),Q=P.LerpToRef(ie,te,A,this._lerpVector5),re=P.LerpToRef(W,Q,S,this._lerpVector0);re.addInPlace(this.position),re.toArray(t||e,l)}}}class QWe extends Uu{constructor(e,t){super(t,"Lattice",200),this._lattice=e,this.refreshData(),this._enable(!0)}getClassName(){return"LatticePluginMaterial"}isCompatible(e){switch(e){case 0:case 1:return!0;default:return!1}}refreshData(){const e=this._lattice.resolutionX*this._lattice.resolutionY*this._lattice.resolutionZ*4;(!this._latticeData||this._latticeData.length!==e)&&(this._latticeData=new Float32Array(e));for(let t=0;t<this._lattice.resolutionX;t++)for(let i=0;i<this._lattice.resolutionY;i++)for(let s=0;s<this._lattice.resolutionZ;s++){const r=this._lattice.data[t][i][s],n=t+this._lattice.resolutionX*(i+this._lattice.resolutionY*s);r.toArray(this._latticeData,n*4)}!this._latticeDataTexture||this._latticeDataTexture.width!==this._lattice.resolutionX||this._latticeDataTexture.height!==this._lattice.resolutionY||this._latticeDataTexture.depth!==this._lattice.resolutionZ?(this._latticeDataTexture&&this._latticeDataTexture.dispose(),this._latticeDataTexture=new kse(this._latticeData,this._lattice.resolutionX,this._lattice.resolutionY,this._lattice.resolutionZ,5,this._material.getScene(),!1,!1,1,1)):this._latticeDataTexture.update(this._latticeData)}getUniforms(e=0){return e===1?{ubo:[{name:"lattice_cellSize",size:3,type:"vec3"},{name:"lattice_min",size:3,type:"vec3"},{name:"lattice_max",size:3,type:"vec3"},{name:"lattice_resolution",size:3,type:"vec3"},{name:"lattice_position",size:3,type:"vec3"}]}:{ubo:[{name:"lattice_cellSize",size:3,type:"vec3"},{name:"lattice_min",size:3,type:"vec3"},{name:"lattice_max",size:3,type:"vec3"},{name:"lattice_resolution",size:3,type:"vec3"},{name:"lattice_position",size:3,type:"vec3"}],vertex:`
                    uniform vec3 lattice_cellSize;
                    uniform vec3 lattice_min;
                    uniform vec3 lattice_max;
                    uniform vec3 lattice_resolution;
                    uniform vec3 lattice_position;
                    `}}bindForSubMesh(e){this._lattice.updateInternals(),e.updateVector3("lattice_cellSize",this._lattice.cellSize),e.updateVector3("lattice_min",this._lattice.min),e.updateVector3("lattice_max",this._lattice.max),e.updateFloat3("lattice_resolution",this._lattice.resolutionX,this._lattice.resolutionY,this._lattice.resolutionZ),e.updateVector3("lattice_position",this._lattice.position),e.setTexture("latticeData",this._latticeDataTexture)}getSamplers(e){e.push("latticeData")}_prepareCode(e=0){if(this._code)return this._code;let t=`
            if (positionUpdated.x >= lattice_min.x && positionUpdated.x <= lattice_max.x &&
                positionUpdated.y >= lattice_min.y && positionUpdated.y <= lattice_max.y &&
                positionUpdated.z >= lattice_min.z && positionUpdated.z <= lattice_max.z) {

                // Map vertex position to lattice local coordinates
                vec3d localPos = vec3c((positionUpdated.x - lattice_min.x) / lattice_cellSize.x, (positionUpdated.y - lattice_min.y) / lattice_cellSize.y, (positionUpdated.z - lattice_min.z) / lattice_cellSize.z);

                // Get integer lattice indices
                intd i0 = intc(floor(localPos.x));
                intd j0 = intc(floor(localPos.y));
                intd k0 = intc(floor(localPos.z));

                intd resX = intc(lattice_resolution.x) - 1;
                intd resY = intc(lattice_resolution.y) - 1;
                intd resZ = intc(lattice_resolution.z) - 1;

                intd i1 = min(i0 + 1, resX);
                intd j1 = min(j0 + 1, resY);
                intd k1 = min(k0 + 1, resZ);

                // Compute interpolation weights
                floatd tx = localPos.x - floatc(i0);
                floatd ty = localPos.y - floatc(j0);
                floatd tz = localPos.z - floatc(k0);

                // Ensure indices are within bounds
                intd ii0 = clamp(i0, 0, resX);
                intd jj0 = clamp(j0, 0, resY);
                intd kk0 = clamp(k0, 0, resZ);
                intd ii1 = clamp(i1, 0, resX);
                intd jj1 = clamp(j1, 0, resY);
                intd kk1 = clamp(k1, 0, resZ);

                // Get lattice control points
                vec3d p000 = texelFetch(latticeData, ivec3c(ii0, jj0, kk0), 0).rgb;
                vec3d p100 = texelFetch(latticeData, ivec3c(ii1, jj0, kk0), 0).rgb;
                vec3d p010 = texelFetch(latticeData, ivec3c(ii0, jj1, kk0), 0).rgb;
                vec3d p110 = texelFetch(latticeData, ivec3c(ii1, jj1, kk0), 0).rgb;
                vec3d p001 = texelFetch(latticeData, ivec3c(ii0, jj0, kk1), 0).rgb;
                vec3d p101 = texelFetch(latticeData, ivec3c(ii1, jj0, kk1), 0).rgb;
                vec3d p011 = texelFetch(latticeData, ivec3c(ii0, jj1, kk1), 0).rgb;
                vec3d p111 = texelFetch(latticeData, ivec3c(ii1, jj1, kk1), 0).rgb;

                // Trilinear interpolation
                vec3d p00 = mix(p000, p100, tx);
                vec3d p01 = mix(p001, p101, tx);
                vec3d p10 = mix(p010, p110, tx);
                vec3d p11 = mix(p011, p111, tx);

                vec3d p0 = mix(p00, p10, ty);
                vec3d p1 = mix(p01, p11, ty);

                vec3d deformedPos = mix(p0, p1, tz);
                positionUpdated = deformedPos + lattice_position;
            };
        `;return e===1?(t=`
                let lattice_min = uniforms.lattice_min;
                let lattice_max = uniforms.lattice_max;
                let lattice_resolution = uniforms.lattice_resolution;
                let lattice_position = uniforms.lattice_position;
                let lattice_cellSize = uniforms.lattice_cellSize;
            `+t,t=t.replace(/ivec3c/g,"vec3i"),t=t.replace(/vec3d/g,"var"),t=t.replace(/vec3c/g,"vec3f"),t=t.replace(/intd/g,"var"),t=t.replace(/intc/g,"i32"),t=t.replace(/floatd/g,"var"),t=t.replace(/floatc/g,"f32"),t=t.replace(/texelFetch/g,"textureLoad")):(t=t.replace(/ivec3c/g,"ivec3"),t=t.replace(/vec3d/g,"vec3"),t=t.replace(/vec3c/g,"vec3"),t=t.replace(/intd/g,"int"),t=t.replace(/intc/g,"int"),t=t.replace(/floatd/g,"float"),t=t.replace(/floatc/g,"float")),this._code=t,this._code}getCustomCode(e,t=0){return e==="vertex"?t===1?{CUSTOM_VERTEX_DEFINITIONS:`
                        var latticeData: texture_3d<f32>;
                    `,CUSTOM_VERTEX_UPDATE_POSITION:this._prepareCode(t)}:{CUSTOM_VERTEX_DEFINITIONS:`
                    precision highp sampler3D;
                    uniform sampler3D latticeData;
                `,CUSTOM_VERTEX_UPDATE_POSITION:this._prepareCode(t)}:null}dispose(){this._latticeDataTexture&&(this._latticeDataTexture.dispose(),this._latticeDataTexture=null)}}var Nre;(function(a){a[a.POINTS_MODE_POINTS=0]="POINTS_MODE_POINTS",a[a.POINTS_MODE_PATHS=1]="POINTS_MODE_PATHS"})(Nre||(Nre={}));var wre;(function(a){a[a.FACES_MODE_SINGLE_SIDED=0]="FACES_MODE_SINGLE_SIDED",a[a.FACES_MODE_SINGLE_SIDED_NO_BACKFACE_CULLING=1]="FACES_MODE_SINGLE_SIDED_NO_BACKFACE_CULLING",a[a.FACES_MODE_DOUBLE_SIDED=2]="FACES_MODE_DOUBLE_SIDED"})(wre||(wre={}));var Bre;(function(a){a[a.AUTO_DIRECTIONS_FROM_FIRST_SEGMENT=0]="AUTO_DIRECTIONS_FROM_FIRST_SEGMENT",a[a.AUTO_DIRECTIONS_FROM_ALL_SEGMENTS=1]="AUTO_DIRECTIONS_FROM_ALL_SEGMENTS",a[a.AUTO_DIRECTIONS_ENHANCED=2]="AUTO_DIRECTIONS_ENHANCED",a[a.AUTO_DIRECTIONS_FACE_TO=3]="AUTO_DIRECTIONS_FACE_TO",a[a.AUTO_DIRECTIONS_NONE=99]="AUTO_DIRECTIONS_NONE"})(Bre||(Bre={}));class sY extends Ne{constructor(e,t,i){super(e,t,null,null,!1,!1),this.name=e,this._options=i,this._lazy=!1,this._updatable=!1,this._engine=t.getEngine(),this._lazy=i.lazy??!1,this._updatable=i.updatable??!1,this._vertexPositions=[],this._indices=[],this._uvs=[],this._points=[],this._colorPointers=i.colorPointers??[],this._widths=i.widths??new Array(i.points.length).fill(1)}getClassName(){return"GreasedLineMesh"}_updateWidthsWithValue(e){let t=0;for(const s of this._points)t+=s.length;const i=t/3*2-this._widths.length;for(let s=0;s<i;s++)this._widths.push(e)}updateLazy(){var e,t;this._setPoints(this._points),this._options.colorPointers||this._updateColorPointers(),this._createVertexBuffers((e=this._options.ribbonOptions)==null?void 0:e.smoothShading),!this.doNotSyncBoundingInfo&&this.refreshBoundingInfo(),(t=this.greasedLineMaterial)==null||t.updateLazy()}addPoints(e,t){for(const i of e)this._points.push(i);this._lazy||this.setPoints(this._points,t)}dispose(e,t=!1){super.dispose(e,t)}isLazy(){return this._lazy}get uvs(){return this._uvs}set uvs(e){this._uvs=e instanceof Float32Array?e:new Float32Array(e),this._createVertexBuffers()}get offsets(){return this._offsets}set offsets(e){this.material instanceof UL&&this.material.setDefine(iAe,(e==null?void 0:e.length)>0),this._offsets=e,this._offsetsBuffer?this._offsetsBuffer.update(e):this._createOffsetsBuffer(e)}get widths(){return this._widths}set widths(e){this._widths=e,this._lazy||this._widthsBuffer&&this._widthsBuffer.update(e)}get colorPointers(){return this._colorPointers}set colorPointers(e){this._colorPointers=e,this._lazy||this._colorPointersBuffer&&this._colorPointersBuffer.update(e)}get greasedLineMaterial(){var t,i;if(this.material&&this.material instanceof UL)return this.material;const e=(i=(t=this.material)==null?void 0:t.pluginManager)==null?void 0:i.getPlugin(h_.GREASED_LINE_MATERIAL_NAME);if(e)return e}get points(){const e=[];return nu.DeepCopy(this._points,e),e}setPoints(e,t){this._points=Zr.ConvertPoints(e,(t==null?void 0:t.pointsOptions)??this._options.pointsOptions),this._updateWidths(),t!=null&&t.colorPointers||this._updateColorPointers(),this._setPoints(this._points,t)}_initGreasedLine(){this._vertexPositions=[],this._indices=[],this._uvs=[]}_createLineOptions(){return{points:this._points,colorPointers:this._colorPointers,lazy:this._lazy,updatable:this._updatable,uvs:this._uvs,widths:this._widths,ribbonOptions:this._options.ribbonOptions}}serialize(e){super.serialize(e),e.type=this.getClassName(),e.lineOptions=this._createLineOptions()}_createVertexBuffers(e=!1){const t=new wt;return t.positions=this._vertexPositions,t.indices=this._indices,t.uvs=this._uvs,e&&(t.normals=[],wt.ComputeNormals(this._vertexPositions,this._indices,t.normals)),t.applyToMesh(this,this._options.updatable),t}_createOffsetsBuffer(e){const t=this._scene.getEngine(),i=new fl(t,e,this._updatable,3);this.setVerticesBuffer(i.createVertexBuffer("grl_offsets",0,3)),this._offsetsBuffer=i}}Ne._GreasedLineMeshParser=(a,e)=>lu.Parse(a,e);class lu extends sY{constructor(e,t,i){super(e,t,i),this.name=e,this.intersectionThreshold=.1,this._previousAndSide=[],this._nextAndCounters=[],i.points&&this.addPoints(Zr.ConvertPoints(i.points))}getClassName(){return"GreasedLineMesh"}_updateColorPointers(){if(this._options.colorPointers)return;let e=0;this._colorPointers=[],this._points.forEach(t=>{for(let i=0;i<t.length;i+=3)this._colorPointers.push(e),this._colorPointers.push(e++)})}_updateWidths(){}_setPoints(e){this._points=e,this._options.points=e,this._initGreasedLine();let t=0,i=0,s=0,r=0,n=0;e.forEach(x=>{i+=x.length*2,s+=(x.length-3)*2,r+=x.length*4/3,n+=x.length*8/3});const o=new Float32Array(i),l=i>65535?new Uint32Array(s):new Uint16Array(s),c=new Float32Array(r),u=new Float32Array(n),f=new Float32Array(n);let p=0,m=0,_=0,d=0,h=0;e.forEach(x=>{const A=Zr.GetLineLengthArray(x),S=A[A.length-1];for(let I=0,N=0;N<x.length;I++,N+=3){const w=p+N*2;if(o[w+0]=x[N+0],o[w+1]=x[N+1],o[w+2]=x[N+2],o[w+3]=x[N+0],o[w+4]=x[N+1],o[w+5]=x[N+2],N<x.length-3){const D=I*2+t,k=m+N*2;l[k+0]=D,l[k+1]=D+1,l[k+2]=D+2,l[k+3]=D+2,l[k+4]=D+1,l[k+5]=D+3}}t+=x.length/3*2;const E=x.length*2,b=o.subarray(p,p+E);p+=E,m+=(x.length-3)*2;const M=new Float32Array(b.length),T=new Float32Array(b.length),O=b.length/6;let R;lu._CompareV3(0,O-1,b)?R=b.subarray((O-2)*6,(O-1)*6):R=b.subarray(0,6),M.set(R),M.set(b.subarray(0,b.length-6),6),T.set(b.subarray(6)),lu._CompareV3(O-1,0,b)?R=b.subarray(6,12):R=b.subarray((O-1)*6,O*6),T.set(R,T.length-6);for(let I=0,N=b.length/3;I<N;I++)u[d++]=M[I*3],u[d++]=M[I*3+1],u[d++]=M[I*3+2],u[d++]=1-((I&1)<<1),f[h++]=T[I*3],f[h++]=T[I*3+1],f[h++]=T[I*3+2],f[h++]=A[I>>1]/S;if(this._options.uvs)for(let I=0;I<this._options.uvs.length;I++)c[_++]=this._options.uvs[I];else for(let I=0;I<O;I++){const N=A[I]/S,w=_+I*4;c[w+0]=N,c[w+1]=0,c[w+2]=N,c[w+3]=1}}),this._vertexPositions=o,this._indices=l,this._uvs=c,this._previousAndSide=u,this._nextAndCounters=f,this._lazy||(this._options.colorPointers||this._updateColorPointers(),this._createVertexBuffers(),!this.doNotSyncBoundingInfo&&this.refreshBoundingInfo())}clone(e=`${this.name}-cloned`,t){const i=this._createLineOptions(),s={};nu.DeepCopy(i,s,["instance"],void 0,!0);const r=new lu(e,this._scene,s);return t&&(r.parent=t),r.material=this.material,r}serialize(e){super.serialize(e),e.type=this.getClassName(),e.lineOptions=this._createLineOptions()}static Parse(e,t){const i=e.lineOptions,s=e.name;return new lu(s,t,i)}_initGreasedLine(){super._initGreasedLine(),this._previousAndSide=[],this._nextAndCounters=[]}intersects(e,t,i,s=!1,r,n=!1){const o=new Kl,l=this.findAllIntersections(e,t,i,s,r,n,!0);if((l==null?void 0:l.length)===1){const c=l[0];o.hit=!0,o.distance=c.distance,o.ray=e,o.pickedMesh=this,o.pickedPoint=c.point}return o}findAllIntersections(e,t,i,s=!1,r,n=!1,o=!1){var m;if(s&&!n&&e.intersectsSphere(this._boundingSphere,this.intersectionThreshold)===!1)return;const l=this.getIndices(),c=this.getVerticesData(q.PositionKind),u=this._widths,f=((m=this.greasedLineMaterial)==null?void 0:m.width)??1,p=[];if(l&&c&&u){let _=0,d=0;for(_=0,d=l.length-1;_<d;_+=3){const h=l[_],x=l[_+1];lu._V_START.fromArray(c,h*3),lu._V_END.fromArray(c,x*3),this._offsets&&(lu._V_OFFSET_START.fromArray(this._offsets,h*3),lu._V_OFFSET_END.fromArray(this._offsets,x*3),lu._V_START.addInPlace(lu._V_OFFSET_START),lu._V_END.addInPlace(lu._V_OFFSET_END));const A=Math.floor(_/3),S=u[A]!==void 0?u[A]:1,E=this.intersectionThreshold*(f*S)/2,b=e.intersectionSegment(lu._V_START,lu._V_END,E);if(b!==-1&&(p.push({distance:b,point:e.direction.normalize().multiplyByFloats(b,b,b).add(e.origin)}),o))return p}_=d}return p}get _boundingSphere(){return this.getBoundingInfo().boundingSphere}static _CompareV3(e,t,i){const s=e*6,r=t*6;return i[s]===i[r]&&i[s+1]===i[r+1]&&i[s+2]===i[r+2]}_createVertexBuffers(){const e=super._createVertexBuffers(),t=this._scene.getEngine(),i=new fl(t,this._previousAndSide,!1,4);this.setVerticesBuffer(i.createVertexBuffer("grl_previousAndSide",0,4));const s=new fl(t,this._nextAndCounters,!1,4);this.setVerticesBuffer(s.createVertexBuffer("grl_nextAndCounters",0,4));const r=new fl(t,this._widths,this._updatable,1);this.setVerticesBuffer(r.createVertexBuffer("grl_widths",0,1)),this._widthsBuffer=r;const n=new fl(t,this._colorPointers,this._updatable,1);return this.setVerticesBuffer(n.createVertexBuffer("grl_colorPointers",0,1)),this._colorPointersBuffer=n,e}}lu._V_START=new P,lu._V_END=new P,lu._V_OFFSET_START=new P,lu._V_OFFSET_END=new P,Ne._GreasedLineRibbonMeshParser=(a,e)=>Vo.Parse(a,e);class Vo extends sY{constructor(e,t,i,s){if(super(e,t,i),this.name=e,!i.ribbonOptions)throw"'GreasedLineMeshOptions.ribbonOptions' is not set.";this._paths=[],this._counters=[],this._slopes=[],this._widths=i.widths??[],this._ribbonWidths=[],this._pathsOptions=s??[],i.points&&this.addPoints(Zr.ConvertPoints(i.points),i,!!s)}addPoints(e,t,i=!1){if(!t.ribbonOptions)throw"addPoints() on GreasedLineRibbonMesh instance requires 'GreasedLineMeshOptions.ribbonOptions'.";i||this._pathsOptions.push({options:t,pathCount:e.length}),super.addPoints(e,t)}getClassName(){return"GreasedLineRibbonMesh"}get isFlatLine(){return this._paths.length<3}get slopes(){return this._slopes}set slopes(e){this._slopes=e}_updateColorPointers(){if(this._options.colorPointers)return;let e=0;this._colorPointers=[];for(let t=0;t<this._pathsOptions.length;t++){const{options:i,pathCount:s}=this._pathsOptions[t],r=this._points[t];if(i.ribbonOptions.pointsMode===0)for(let n=0;n<s;n++)for(let o=0;o<r.length;o+=3)this._colorPointers.push(e),this._colorPointers.push(e++);else for(let n=0;n<r.length;n+=3){for(let o=0;o<s;o++)this._colorPointers.push(e);e++}}}_updateWidths(){super._updateWidthsWithValue(1)}_setPoints(e,t){var r,n;if(!this._options.ribbonOptions)throw"No 'GreasedLineMeshOptions.ribbonOptions' provided.";this._points=e,this._options.points=e,this._initGreasedLine();let i=0,s;for(let o=0,l=0;o<this._pathsOptions.length;o++){const{options:c,pathCount:u}=this._pathsOptions[o],f=e.slice(l,l+u);if(l+=u,((r=c.ribbonOptions)==null?void 0:r.pointsMode)===1)i=this._preprocess(Zr.ToVector3Array(f),i,c);else{if(((n=c.ribbonOptions)==null?void 0:n.directionsAutoMode)===99){if(!c.ribbonOptions.directions)throw"In GreasedLineRibbonAutoDirectionMode.AUTO_DIRECTIONS_NONE 'GreasedLineMeshOptions.ribbonOptions.directions' must be defined.";s=Vo._GetDirectionPlanesFromDirectionsOption(f.length,c.ribbonOptions.directions)}f.forEach((p,m)=>{const _=Vo._ConvertToRibbonPath(p,c.ribbonOptions,this._scene.useRightHandedSystem,s&&s[m]);i=this._preprocess(_,i,c)})}}this._lazy||(this._createVertexBuffers(),!this.doNotSyncBoundingInfo&&this.refreshBoundingInfo())}static _GetDirectionPlanesFromDirectionsOption(e,t){return Array.isArray(t)?t:new Array(e).fill(t)}static _CreateRibbonVertexData(e,t){var u,f;const i=e.length;if(i<2)throw"Minimum of two paths are required to create a GreasedLineRibbonMesh.";const s=[],r=[],n=e[0];for(let p=0;p<n.length;p++)for(let m=0;m<e.length;m++){const _=e[m][p];s.push(_.x,_.y,_.z)}const o=[1,0,i],l=((u=t.ribbonOptions)==null?void 0:u.facesMode)===2,c=((f=t.ribbonOptions)==null?void 0:f.pointsMode)===1&&t.ribbonOptions.closePath;if(i>2)for(let p=0;p<n.length-1;p++){o[0]=1+i*p,o[1]=i*p,o[2]=(p+1)*i;for(let m=0;m<(i-1)*2;m++)m%2!==0&&(o[2]+=1),m%2===0&&m>0&&(o[0]+=1,o[1]+=1),r.push(o[1]+(m%2!==0?i:0),o[0],o[2]),l&&r.push(o[0],o[1]+(m%2!==0?i:0),o[2])}else for(let p=0;p<s.length/3-3;p+=2)r.push(p,p+1,p+2),r.push(p+2,p+1,p+3),l&&(r.push(p+1,p,p+2),r.push(p+1,p+2,p+3));if(c){let p=i*(n.length-1);for(let m=0;m<i-1;m++)r.push(p,m+1,m),r.push(p+1,m+1,p),l&&(r.push(m,m+1,p),r.push(p,m+1,p+1)),p++}return{positions:s,indices:r}}_preprocess(e,t,i){var m,_;this._paths=e;const s=Vo._CreateRibbonVertexData(e,i),r=s.positions;if(!this._options.widths)throw"No 'GreasedLineMeshOptions.widths' table is specified.";const n=Array.isArray(this._vertexPositions)?this._vertexPositions:Array.from(this._vertexPositions);this._vertexPositions=n;const o=Array.isArray(this._uvs)?this._uvs:Array.from(this._uvs);this._uvs=o;const l=Array.isArray(this._indices)?this._indices:Array.from(this._indices);this._indices=l;for(const d of r)n.push(d);let c=e;if(((m=i.ribbonOptions)==null?void 0:m.pointsMode)===1&&i.ribbonOptions.closePath){c=[];for(let d=0;d<e.length;d++){const h=e[d].slice();h.push(e[d][0].clone()),c.push(h)}}this._calculateSegmentLengths(c);const u=c.length,f=new Array(u).fill(0);for(let d=0;d<c[0].length;d++){let h=0;for(let x=0;x<u;x++){const A=f[x]+this._vSegmentLengths[x][d]/this._vTotalLengths[x];this._counters.push(A),o.push(A,h),f[x]=A,h+=this._uSegmentLengths[d][x]/this._uTotalLengths[d]}}for(let d=0,h=0;d<c[0].length;d++){const x=this._uSegmentLengths[d][0]/2,A=this._uSegmentLengths[d][u-1]/2;this._ribbonWidths.push(((this._widths[h++]??1)-1)*x);for(let S=0;S<u-2;S++)this._ribbonWidths.push(0);this._ribbonWidths.push(((this._widths[h++]??1)-1)*A)}const p=((_=i.ribbonOptions)==null?void 0:_.pointsMode)===1?new Array(c[0].length*c.length*6).fill(0):Vo._CalculateSlopes(c);for(const d of p)this._slopes.push(d);if(s.indices)for(let d=0;d<s.indices.length;d++)l.push(s.indices[d]+t);return t+=r.length/3,t}static _ConvertToRibbonPath(e,t,i,s){if(t.pointsMode===0&&!t.width)throw"'GreasedLineMeshOptions.ribbonOptiosn.width' must be specified in GreasedLineRibbonPointsMode.POINTS_MODE_POINTS.";const r=[],n=[];if(t.pointsMode===0){const o=t.width/2,l=Zr.ToVector3Array(e);let c=null,u=null;if(t.directionsAutoMode===0&&(s=Vo._GetDirectionFromPoints(l[0],l[1],null)),t.directionsAutoMode===3&&!(t.directions instanceof P))throw"In GreasedLineRibbonAutoDirectionMode.AUTO_DIRECTIONS_FACE_TO 'GreasedLineMeshOptions.ribbonOptions.directions' must be a Vector3.";ae.Vector3[1]=t.directions instanceof P?t.directions:Vo.DIRECTION_XZ;for(let f=0;f<l.length-(s?0:1);f++){const p=l[f],m=l[f+1];if(s)c=s;else if(t.directionsAutoMode===3)m.subtractToRef(p,ae.Vector3[0]),c=P.CrossToRef(ae.Vector3[0],ae.Vector3[1],ae.Vector3[2]).normalize();else if(t.directionsAutoMode===1)c=Vo._GetDirectionFromPoints(p,m,c);else{const _=m.subtract(p);_.applyRotationQuaternionInPlace(_.x>_.y&&_.x>_.z?i?Vo._RightHandedForwardReadOnlyQuaternion:Vo._LeftHandedForwardReadOnlyQuaternion:Vo._LeftReadOnlyQuaternion),c=_.normalize()}u=c.multiplyByFloats(o,o,o),r.push(p.add(u)),n.push(p.subtract(u))}s||(r.push(l[l.length-1].add(u)),n.push(l[l.length-1].subtract(u)))}return[r,n]}static _GetDirectionFromPoints(e,t,i){return e.x===t.x&&(!i||(i==null?void 0:i.x)===1)?Vo.DIRECTION_YZ:e.y===t.y?Vo.DIRECTION_XZ:e.z===t.z?Vo.DIRECTION_XY:Vo.DIRECTION_XZ}clone(e=`${this.name}-cloned`,t){const i=this._createLineOptions(),s={},r=[];nu.DeepCopy(this._pathsOptions,r,void 0,void 0,!0),nu.DeepCopy(i,s,["instance"],void 0,!0);const n=new Vo(e,this._scene,s,r);return t&&(n.parent=t),n.material=this.material,n}serialize(e){super.serialize(e),e.type=this.getClassName(),e.lineOptions=this._createLineOptions(),e.pathsOptions=this._pathsOptions}static Parse(e,t){const i=e.lineOptions,s=e.name,r=e.pathOptions;return new Vo(s,t,i,r)}_initGreasedLine(){super._initGreasedLine(),this._paths=[],this._counters=[],this._slopes=[],this._ribbonWidths=[]}_calculateSegmentLengths(e){const t=e.length;this._vSegmentLengths=new Array(t),this._vTotalLengths=new Array(t);let i=0;for(let n=0;n<t;n++){const o=e[n];this._vSegmentLengths[n]=[0],i=0;for(let l=0;l<o.length-1;l++){const c=Math.abs(o[l].subtract(o[l+1]).lengthSquared());i+=c,this._vSegmentLengths[n].push(c)}this._vTotalLengths[n]=i}const s=e[0].length;this._uSegmentLengths=new Array(s).fill([]),this._uTotalLengths=new Array(s).fill([]);const r=new P;for(let n=0;n<s;n++){i=0;for(let o=1;o<t;o++){e[o][n].subtractToRef(e[o-1][n],r);const l=r.length();i+=l,this._uSegmentLengths[n].push(l)}this._uTotalLengths[n]=i}}static _CalculateSlopes(e){const t=e[0],i=e.length===2?e[1]:e[e.length-1],s=[],r=new P;for(let n=0;n<t.length;n++)for(let o=0;o<e.length;o++)o===0||o===e.length-1?(t[n].subtract(i[n]).normalizeToRef(r),s.push(r.x,r.y,r.z),s.push(-r.x,-r.y,-r.z)):s.push(0,0,0,0,0,0);return s}_createVertexBuffers(){var n;this._uvs=this._options.uvs??this._uvs;const e=super._createVertexBuffers((n=this._options.ribbonOptions)==null?void 0:n.smoothShading),t=new fl(this._engine,this._counters,this._updatable,1);this.setVerticesBuffer(t.createVertexBuffer("grl_counters",0,1));const i=new fl(this._engine,this._colorPointers,this._updatable,1);this.setVerticesBuffer(i.createVertexBuffer("grl_colorPointers",0,1));const s=new fl(this._engine,this._slopes,this._updatable,3);this.setVerticesBuffer(s.createVertexBuffer("grl_slopes",0,3));const r=new fl(this._engine,this._ribbonWidths,this._updatable,1);return this.setVerticesBuffer(r.createVertexBuffer("grl_widths",0,1)),this._widthsBuffer=r,e}}Vo.DEFAULT_WIDTH=.1,Vo._RightHandedForwardReadOnlyQuaternion=Re.RotationAxis(P.RightHandedForwardReadOnly,Math.PI/2),Vo._LeftHandedForwardReadOnlyQuaternion=Re.RotationAxis(P.LeftHandedForwardReadOnly,Math.PI/2),Vo._LeftReadOnlyQuaternion=Re.RotationAxis(P.LeftReadOnly,Math.PI/2),Vo.DIRECTION_XY=P.LeftHandedForwardReadOnly,Vo.DIRECTION_XZ=P.UpReadOnly,Vo.DIRECTION_YZ=P.LeftReadOnly;var zre;(function(a){a[a.COLOR_DISTRIBUTION_NONE=0]="COLOR_DISTRIBUTION_NONE",a[a.COLOR_DISTRIBUTION_REPEAT=1]="COLOR_DISTRIBUTION_REPEAT",a[a.COLOR_DISTRIBUTION_EVEN=2]="COLOR_DISTRIBUTION_EVEN",a[a.COLOR_DISTRIBUTION_START=3]="COLOR_DISTRIBUTION_START",a[a.COLOR_DISTRIBUTION_END=4]="COLOR_DISTRIBUTION_END",a[a.COLOR_DISTRIBUTION_START_END=5]="COLOR_DISTRIBUTION_START_END"})(zre||(zre={}));var Fre;(function(a){a[a.WIDTH_DISTRIBUTION_NONE=0]="WIDTH_DISTRIBUTION_NONE",a[a.WIDTH_DISTRIBUTION_REPEAT=1]="WIDTH_DISTRIBUTION_REPEAT",a[a.WIDTH_DISTRIBUTION_EVEN=2]="WIDTH_DISTRIBUTION_EVEN",a[a.WIDTH_DISTRIBUTION_START=3]="WIDTH_DISTRIBUTION_START",a[a.WIDTH_DISTRIBUTION_END=4]="WIDTH_DISTRIBUTION_END",a[a.WIDTH_DISTRIBUTION_START_END=5]="WIDTH_DISTRIBUTION_START_END"})(Fre||(Fre={}));function wAe(a,e,t){t=t??ei.LastCreatedScene;let i;switch(e.materialType){case 1:i=new mi(a,t,e.forceGLSL),new h_(i,t,e);break;case 2:i=new UL(a,t,e);break;default:i=new Bt(a,t,e.forceGLSL),new h_(i,t,e);break}return i}function JWe(a,e,t,i){var u;i=i??ei.LastCreatedScene;let s;const r=Zr.ConvertPoints(e.points,e.pointsOptions);e.widthDistribution=e.widthDistribution??3,e.ribbonOptions&&(e.ribbonOptions.facesMode=e.ribbonOptions.facesMode??1,e.ribbonOptions.pointsMode=e.ribbonOptions.pointsMode??0,e.ribbonOptions.directionsAutoMode=e.ribbonOptions.directionsAutoMode??(e.ribbonOptions.directions?99:0)),t=t??{color:kc.DEFAULT_COLOR},t.createAndAssignMaterial=t.createAndAssignMaterial??!0,t.colorDistribution=(t==null?void 0:t.colorDistribution)??3,t.materialType=t.materialType??0;const n=BAe(r),o=zAe(n,e.widths??[],e.widthDistribution),l=t!=null&&t.colors?FAe(n,t.colors,t.colorDistribution,t.color??kc.DEFAULT_COLOR):void 0,c={points:r,updatable:e.updatable,widths:o,lazy:e.lazy,ribbonOptions:e.ribbonOptions,uvs:e.uvs,colorPointers:e.colorPointers};if(c.ribbonOptions&&c.ribbonOptions.pointsMode===0&&(c.ribbonOptions.width=t.width??c.ribbonOptions.width??kc.DEFAULT_WIDTH),e.instance)if(s=e.instance,s instanceof Vo)s.addPoints(r,c);else{const f=s.widths;if(f){const p=f.slice();for(const m of o)p.push(m);s.widths=p}else s.widths=o;if(s.addPoints(r),e.uvs){const p=s.uvs;if(p){const m=new Float32Array(p.length+e.uvs.length);m.set(p,0),m.set(e.uvs,p.length),s.uvs=m}else s.uvs=e.uvs}}else if(s=c.ribbonOptions?new Vo(a,i,c):new lu(a,i,c),t){const f={materialType:t.materialType,dashCount:t.dashCount,dashOffset:t.dashOffset,dashRatio:t.dashRatio,resolution:t.resolution,sizeAttenuation:t.sizeAttenuation,useColors:t.useColors,useDash:t.useDash,visibility:t.visibility,width:t.width,color:t.color,colorMode:t.colorMode,colorsSampling:t.colorsSampling,colorDistributionType:t.colorDistributionType,colors:l,cameraFacing:!e.ribbonOptions,colorsTexture:t.colorsTexture};if(t.createAndAssignMaterial){const p=wAe(a,f,i);s.material=p,((u=e.ribbonOptions)==null?void 0:u.facesMode)===1&&(p.backFaceCulling=!1)}}if(l&&e.instance&&e.instance.greasedLineMaterial){const f=e.instance.greasedLineMaterial.colors;if(f){const p=f.concat(l);e.instance.greasedLineMaterial.setColors(p,s.isLazy())}}return s}function BAe(a){let e=0;for(const t of a)e+=t.length/3;return e}function zAe(a,e,t,i=1,s=1){const r=a-e.length/2,n=[];if(r<0)return e.slice(0,a*2);if(r>0){if(e.length%2!=0&&e.push(i),t===5){const o=Math.floor(e.length/2);for(let u=0,f=0;u<o-1;u++)n.push(e[f++]),n.push(e[f++]);const l=e[o/2],c=e[o/2+1];for(let u=0;u<r;u++)n.push(c),n.push(l);for(let u=o;u<e.length;u+=2)n.push(e[u]),n.push(e[u+1])}else if(t===3){for(let o=0;o<e.length;o+=2)n.push(e[o]),n.push(e[o+1]);for(let o=0;o<r;o++)n.push(i),n.push(s)}else if(t===4){for(let o=0;o<r;o++)n.push(i),n.push(s);for(let o=0;o<e.length;o+=2)n.push(e[o]),n.push(e[o+1])}else if(t===1){let o=0;for(let l=0;l<a;l++)n.push(e[o++]),n.push(e[o++]),o===e.length&&(o=0)}else if(t===2){let o=0;const l=e.length/((a-1)*2);for(let c=0;c<a;c++){const u=Math.floor(o);n.push(e[u]),n.push(e[u+1]),o+=l}}}else for(let o=0;o<e.length;o++)n.push(e[o]);return n}function FAe(a,e,t,i){a=Math.max(e.length,a);const s=a-e.length;if(s<0)return e.slice(0,a);const r=[];if(s>0){if(t===5){const n=Math.floor(e.length/2);for(let o=0;o<n;o++)r.push(e[o]);for(let o=0;o<s-1;o++)r.push(i);for(let o=n;o<e.length;o++)r.push(e[o])}else if(t===3){for(let n=0;n<e.length;n++)r.push(e[n]);for(let n=0;n<s;n++)r.push(i)}else if(t===4){for(let n=0;n<s-1;n++)r.push(i);for(let n=0;n<e.length;n++)r.push(e[n])}else if(t===1){let n=0;for(let o=0;o<a;o++)r.push(e[n]),n++,n===e.length&&(n=0)}else if(t===2){let n=0;const o=e.length/(a-1);for(let l=0;l<a-1;l++){const c=Math.floor(n);r.push(e[c]),n+=o}}else if(t===0)for(let n=0;n<e.length;n++)r.push(e[n])}else for(let n=0;n<a;n++)r.push(e[n]);return r}let rY=0;function $We(a,e){return new Promise((t,i)=>{let s,r;if(Il())s=window,r="window";else if(typeof self<"u")s=self,r="self";else{i(new Error("Cannot load script module outside of a window or a worker"));return}s._LoadScriptModuleResolve||(s._LoadScriptModuleResolve={}),s._LoadScriptModuleResolve[rY]=t,a+=`
            ${r}._LoadScriptModuleResolve[${rY}](returnedValue);
            ${r}._LoadScriptModuleResolve[${rY}] = undefined;
        `,rY++,Le.LoadScript(a,void 0,(n,o)=>{i(o||new Error(n))},e,!0)})}let VL,nY,kre,aY;class TO{get numProp(){return this._numProp}constructor(e,t,i){this._manifold=e,this._numProp=t,this._vertexStructure=i}_process(e,t){if(this.numProp!==t.numProp)throw new Error("CSG must be used with geometries having the same number of properties");return new TO(VL[e](this._manifold,t._manifold),this.numProp,this._vertexStructure)}subtract(e){return this._process("difference",e)}intersect(e){return this._process("intersection",e)}add(e){return this._process("union",e)}printDebug(){de.Log("Genus:"+this._manifold.genus());const e=this._manifold.getProperties();de.Log("Volume:"+e.volume),de.Log("surface area:"+e.surfaceArea)}toVertexData(e){const t={rebuildNormals:!1,...e},i=new wt,s=this._vertexStructure.find(l=>l.kind===q.NormalKind),r=this._manifold.getMesh(t.rebuildNormals&&s?[3,4,5]:void 0);i.indices=r.triVerts.length>65535?new Uint32Array(r.triVerts):new Uint16Array(r.triVerts);for(let l=0;l<r.triVerts.length;l+=3)i.indices[l]=r.triVerts[l+2],i.indices[l+1]=r.triVerts[l+1],i.indices[l+2]=r.triVerts[l];const n=r.vertProperties.length/r.numProp;let o=0;for(let l=0;l<this._vertexStructure.length;l++){const c=this._vertexStructure[l],u=new Float32Array(n*c.stride);for(let f=0;f<n;f++)for(let p=0;p<c.stride;p++)u[f*c.stride+p]=r.vertProperties[f*r.numProp+o+p];i.set(u,c.kind),o+=c.stride}return i}toMesh(e,t,i){const s={rebuildNormals:!1,centerMesh:!0,...i},r=this.toVertexData({rebuildNormals:s.rebuildNormals}),n=this._vertexStructure.find(_=>_.kind===q.NormalKind),o=this._manifold.getMesh(s.rebuildNormals&&n?[3,4,5]:void 0),l=o.vertProperties.length/o.numProp,c=new Ne(e,t);if(r.applyToMesh(c),s.centerMesh){const _=c.getBoundingInfo().boundingSphere.center;c.position.set(-_.x,-_.y,-_.z),c.bakeCurrentTransformIntoVertices()}let u=o.runOriginalID[0],f=o.runIndex[0],p=0;const m=[];t=c.getScene();for(let _=0;_<o.numRun;++_){const d=o.runOriginalID[_+1];if(d!==u){const h=o.runIndex[_+1];new Lc(p,0,l,f,h-f,c),m.push(t.getMaterialByUniqueID(u-aY)||t.defaultMaterial),u=d,f=h,p++}}if(s.materialToUse)c.material=s.materialToUse;else if(m.length>1){const _=new tf(e,t);_.subMaterials=m,c.material=_}else c.subMeshes.length>1&&c._createGlobalSubMesh(!0),c.material=m[0];return c}dispose(){this._manifold&&(this._manifold.delete(),this._manifold=null)}static _ProcessData(e,t,i,s,r,n){const o=new Float32Array(e*i.reduce((u,f)=>u+f.stride,0));for(let u=0;u<e;u++){let f=0;for(let p=0;p<i.length;p++){const m=i[p];for(let _=0;_<m.stride;_++)o[u*s+f+_]=m.data[u*m.stride+_];f+=m.stride}}const l=new kre({numProp:s,vertProperties:o,triVerts:t,runIndex:r,runOriginalID:n});l.merge();let c;try{c=new TO(new VL(l),s,i)}catch(u){throw new Error("Error while creating the CSG: "+u.message)}return c}static _Construct(e,t,i,s){const r=new Uint32Array(e.indices.length);for(let f=0;f<e.indices.length;f+=3)r[f]=e.indices[f+2],r[f+1]=e.indices[f+1],r[f+2]=e.indices[f];const n=new P;let o=3;const l=[{stride:3,kind:q.PositionKind}];if(!t)l[0].data=e.positions;else{const f=new Float32Array(e.positions.length);for(let p=0;p<e.positions.length;p+=3)P.TransformCoordinatesFromFloatsToRef(e.positions[p],e.positions[p+1],e.positions[p+2],t,n),n.toArray(f,p);l[0].data=f}const c=e.normals;if(c)if(o+=3,l.push({stride:3,kind:q.NormalKind}),!t)l[1].data=c;else{const f=new Float32Array(c.length);for(let p=0;p<c.length;p+=3)P.TransformNormalFromFloatsToRef(c[p],c[p+1],c[p+2],t,n),n.toArray(f,p);l[1].data=f}for(const f of[q.UVKind,q.UV2Kind,q.UV3Kind,q.UV4Kind,q.UV5Kind,q.UV6Kind]){const p=e[f===q.UVKind?"uvs":f];p&&(o+=2,l.push({stride:2,kind:f,data:p}))}const u=e.colors;return u&&(o+=4,l.push({stride:4,kind:q.ColorKind,data:u})),this._ProcessData(e.positions.length/3,r,l,o,i,s)}static FromVertexData(e){const t=e.positions,i=e.indices;if(!t||!i)throw new Error("The vertexData must at least have positions and indices");return this._Construct(e,null)}static FromMesh(e,t=!1){const i=e.getVerticesData(q.PositionKind),s=e.getIndices(),r=e.computeWorldMatrix(!0);if(!i||!s)throw new Error("The mesh must at least have positions and indices");const n=[...Array(e.subMeshes.length)].map((_,d)=>e.subMeshes[d].indexStart),o=e.material||e.getScene().defaultMaterial,l=o.getClassName()==="MultiMaterial",c=[...Array(e.subMeshes.length)].map((_,d)=>l?aY+o.subMaterials[e.subMeshes[d].materialIndex].uniqueId:aY+o.uniqueId),u=Array.from(n.keys());u.sort((_,d)=>n[_]-n[d]);const f=new Uint32Array(u.map(_=>n[_])),p=new Uint32Array(u.map(_=>c[_])),m={positions:i,indices:s,normals:e.getVerticesData(q.NormalKind),colors:e.getVerticesData(q.ColorKind),uvs:e.getVerticesData(q.UVKind),uvs2:e.getVerticesData(q.UV2Kind),uvs3:e.getVerticesData(q.UV3Kind),uvs4:e.getVerticesData(q.UV4Kind),uvs5:e.getVerticesData(q.UV5Kind),uvs6:e.getVerticesData(q.UV6Kind)};return this._Construct(m,t?null:r,f,p)}}function kAe(){return VL!==void 0}async function UAe(a){const e={manifoldUrl:"https://unpkg.com/[email protected]",...a};if(!VL){if(nY){await nY;return}if(e.manifoldInstance)VL=e.manifoldInstance,kre=e.manifoldMeshInstance;else{nY=$We(`
            import Module from '${e.manifoldUrl}/manifold.js';
            const wasm = await Module();
            wasm.setup();
            const {Manifold, Mesh} = wasm;
            const returnedValue =  {Manifold, Mesh};
        `);const t=await nY;VL=t.Manifold,kre=t.Mesh}aY=VL.reserveIDs(65536)}}function jAe(a){return Math.floor(a/8)}function VAe(a){return 1<<a%8}class GAe{constructor(e){this.size=e,this._byteArray=new Uint8Array(Math.ceil(this.size/8))}get(e){if(e>=this.size)throw new RangeError("Bit index out of range");const t=jAe(e),i=VAe(e);return(this._byteArray[t]&i)!==0}set(e,t){if(e>=this.size)throw new RangeError("Bit index out of range");const i=jAe(e),s=VAe(e);t?this._byteArray[i]|=s:this._byteArray[i]&=~s}}function WAe(a){const e=[],t=a.length/3;for(let l=0;l<t;l++)e.push([a[l*3],a[l*3+1],a[l*3+2]]);const i=new Map;e.forEach((l,c)=>{l.forEach(u=>{let f=i.get(u);f||i.set(u,f=[]),f.push(c)})});const s=new GAe(t),r=[],n=l=>{const c=[l];for(;c.length>0;){const u=c.pop();s.get(u)||(s.set(u,!0),r.push(e[u]),e[u].forEach(f=>{const p=i.get(f);p&&p.forEach(m=>{s.get(m)||c.push(m)})}))}};for(let l=0;l<t;l++)s.get(l)||n(l);let o=0;r.forEach(l=>{a[o++]=l[0],a[o++]=l[1],a[o++]=l[2]})}const eHe=Object.freeze(Object.defineProperty({__proto__:null,OptimizeIndices:WAe},Symbol.toStringTag,{value:"Module"})),HAe=Math.pow(10,4);function tHe(a){return a+(a>0?.5:-.5)<<0}function Ure(a,e=HAe){let t=tHe(a*e);return t===0&&(t=0),`${t}`}function R0(a,e=HAe){return`${Ure(a.x,e)},${Ure(a.y,e)},${Ure(a.z,e)}`}function iHe(a){const e=["positions","normals","uvs"],t=Object.keys(a).filter(i=>Array.isArray(a[i]));return Array.from(new Set([...e,...t]))}function sHe(a,e,t,i,s,r){for(let n=0;n<t;n++)a[e+n]=i[n],a[e+t+n]=s[n],a[e+2*t+n]=r[n]}function YAe(a){if(!a.indices||a.indices.length===0)return a;const e=[],t=[],i=[],s=a.indices,r=a.positions,n=a.normals,o=a.uvs;for(let c=0;c<s.length;c++){const u=s[c];e.push(r[3*u],r[3*u+1],r[3*u+2]),n&&t.push(n[3*u],n[3*u+1],n[3*u+2]),o&&i.push(o[2*u],o[2*u+1])}const l=new wt;return l.positions=e,t.length&&(l.normals=t),i.length&&(l.uvs=i),l}function g_(a,e,t,i){if(i===3){a.fromArray(e,t*3);return}a.set(e[t*2],e[t*2+1],0)}function XAe(a,e,t){const i=new P,s=new P,r=new P,n=new P,o=new P,l=new P;for(let c=0;c<e;c+=3){const u=c*3;i.set(a[u],a[u+1],a[u+2]),s.set(a[u+3],a[u+4],a[u+5]),r.set(a[u+6],a[u+7],a[u+8]),i.addToRef(s,n),n.scaleInPlace(.5),s.addToRef(r,o),o.scaleInPlace(.5),r.addToRef(i,l),l.scaleInPlace(.5),t.push(i.x,i.y,i.z,n.x,n.y,n.z,l.x,l.y,l.z),t.push(s.x,s.y,s.z,o.x,o.y,o.z,n.x,n.y,n.z),t.push(r.x,r.y,r.z,l.x,l.y,l.z,o.x,o.y,o.z),t.push(n.x,n.y,n.z,o.x,o.y,o.z,l.x,l.y,l.z)}}function ZAe(a){const e=YAe(a),t=e.positions,i=e.normals,s=e.uvs,r=t.length/3,n=[],o=[],l=[];if(XAe(t,r,n),i&&i.length&&XAe(i,r,o),s&&s.length)for(let p=0;p<r;p+=3){const m=p*2,_=[s[m],s[m+1]],d=[s[m+2],s[m+3]],h=[s[m+4],s[m+5]],x=[(_[0]+d[0])/2,(_[1]+d[1])/2],A=[(d[0]+h[0])/2,(d[1]+h[1])/2],S=[(h[0]+_[0])/2,(h[1]+_[1])/2];l.push(..._,...x,...S),l.push(...d,...A,...x),l.push(...h,...S,...A),l.push(...x,...A,...S)}const c=n.length/3,u=[];for(let p=0;p<c;p++)u.push(p);const f=new wt;return f.positions=n,o.length&&(f.normals=o),l.length&&(f.uvs=l),f.indices=u,f}function rHe(a,e){const t=YAe(a),i=ZAe(t),s=iHe(t),r=t.positions,n=i.positions,o=r.length/3,l={},c={},u={},f={};function p(k,Y,V){c[k]||(c[k]={}),c[k][Y]||(c[k][Y]=[]),c[k][Y].push(V)}function m(k,Y){u[k]||(u[k]=[]),u[k].push(Y)}function _(k,Y){f[k]||(f[k]=new Set),f[k].add(Y)}const d=new P,h=new P,x=new P,A=new P,S=new P,E=new P,b=new P;for(let k=0;k<o;k+=3){g_(h,r,k,3),g_(x,r,k+1,3),g_(A,r,k+2,3);const Y=R0(h),V=R0(x),ee=R0(A);p(Y,V,k+1),p(Y,ee,k+2),p(V,Y,k),p(V,ee,k+2),p(ee,Y,k),p(ee,V,k+1),h.addToRef(x,S),S.scaleInPlace(.5),x.addToRef(A,E),E.scaleInPlace(.5),A.addToRef(h,b),b.scaleInPlace(.5),m(R0(S),k+2),m(R0(E),k),m(R0(b),k+1),_(Y,R0(S)),_(Y,R0(b)),_(V,R0(S)),_(V,R0(E)),_(ee,R0(E)),_(ee,R0(b))}for(let k=0;k<n.length/3;k++){g_(d,n,k,3);const Y=R0(d);l[Y]||(l[Y]=[]),l[Y].push(k)}const M=[new P,new P,new P],T=[new P,new P,new P],O=new P,R=new P;function I(k,Y,V){const ee=k==="uvs"?2:3,K=n.length/3,ie=new Array(K*ee);let ne=0;for(let te=0;te<K;te+=3){for(let W=0;W<3;W++)if(k==="uvs"&&!e.uvSmooth)g_(M[W],V,te+W,2);else if(k==="normals"){g_(T[W],n,te+W,3);const Q=R0(T[W]),re=l[Q]||[],oe=re.length,X=.75/oe,se=1-X*oe;g_(M[W],V,te+W,3),M[W].scaleInPlace(se),re.forEach(ue=>{g_(O,V,ue,3),O.scaleInPlace(X),M[W].addInPlace(O)})}else{g_(M[W],V,te+W,ee),g_(T[W],n,te+W,3);const Q=R0(T[W]),re=c[Q],oe=u[Q];if(re){if(e.preserveEdges){const Se=f[Q];let we=!0;if(Se.forEach(ke=>{u[ke]&&u[ke].length%2!==0&&(we=!1)}),!we)continue}const se=Object.keys(re).length,ue=1/se*(5/8-Math.pow(3/8+1/4*Math.cos(2*Math.PI/se),2)),he=1/se/se,fe=pd.Lerp(he,ue,e.weight),Ae=1-fe*se;M[W].scaleInPlace(Ae);for(const Se in re){const we=re[Se];O.set(0,0,0),we.forEach(ke=>{g_(R,Y,ke,ee),O.addInPlace(R)}),O.scaleInPlace(1/we.length),O.scaleInPlace(fe),M[W].addInPlace(O)}}else if(oe&&oe.length===2){const X=oe.length,se=.125,ue=1-se*X;M[W].scaleInPlace(ue),oe.forEach(he=>{g_(O,Y,he,ee),O.scaleInPlace(se),M[W].addInPlace(O)})}}sHe(ie,ne,ee,M[0].asArray(),M[1].asArray(),M[2].asArray()),ne+=ee*3}return ie}const N=new wt;s.forEach(k=>{if(k==="indices")return;const Y=t[k],V=i[k];if(!Y||!V)return;const ee=I(k,Y,V);N[k]=ee});const w=N.positions,D=[];for(let k=0;k<w.length/3;k++)D.push(k);return N.indices=D,N}function KAe(a,e,t){if(t={flatOnly:!1,uvSmooth:!1,preserveEdges:!1,weight:1,...t},!a.positions||a.positions.length===0||e<=0)return a;let i=a.clone();for(let s=0;s<e;s++)t.flatOnly?i=ZAe(i):i=rHe(i,t);return i}var ge;(function(a){a[a.Int=1]="Int",a[a.Float=2]="Float",a[a.Vector2=4]="Vector2",a[a.Vector3=8]="Vector3",a[a.Vector4=16]="Vector4",a[a.Matrix=32]="Matrix",a[a.Geometry=64]="Geometry",a[a.Texture=128]="Texture",a[a.AutoDetect=1024]="AutoDetect",a[a.BasedOnInput=2048]="BasedOnInput",a[a.Undefined=4096]="Undefined",a[a.All=4095]="All"})(ge||(ge={}));var jre;(function(a){a[a.Compatible=0]="Compatible",a[a.TypeIncompatible=1]="TypeIncompatible",a[a.HierarchyIssue=2]="HierarchyIssue"})(jre||(jre={}));var Vre;(function(a){a[a.Input=0]="Input",a[a.Output=1]="Output"})(Vre||(Vre={}));class Gre{get direction(){return this._direction}get type(){if(this._type===ge.AutoDetect){if(this._ownerBlock.isInput)return this._ownerBlock.type;if(this._connectedPoint)return this._connectedPoint.type;if(this._linkedConnectionSource){if(this._linkedConnectionSource.isConnected)return this._linkedConnectionSource.type;if(this._linkedConnectionSource._defaultConnectionPointType)return this._linkedConnectionSource._defaultConnectionPointType}if(this._defaultConnectionPointType)return this._defaultConnectionPointType}if(this._type===ge.BasedOnInput){if(this._typeConnectionSource)return!this._typeConnectionSource.isConnected&&this._defaultConnectionPointType?this._defaultConnectionPointType:this._typeConnectionSource.type;if(this._defaultConnectionPointType)return this._defaultConnectionPointType}return this._type}set type(e){this._type=e}get isConnected(){return this.connectedPoint!==null||this.hasEndpoints}get connectedPoint(){return this._connectedPoint}get ownerBlock(){return this._ownerBlock}get sourceBlock(){return this._connectedPoint?this._connectedPoint.ownerBlock:null}get connectedBlocks(){return this._endpoints.length===0?[]:this._endpoints.map(e=>e.ownerBlock)}get endpoints(){return this._endpoints}get hasEndpoints(){return this._endpoints&&this._endpoints.length>0}get innerType(){return this._linkedConnectionSource&&!this._isMainLinkSource&&this._linkedConnectionSource.isConnected?this.type:this._type}_resetCounters(){this._callCount=0,this._executionCount=0}get callCount(){return this._callCount}get executionCount(){return this._executionCount}getConnectedValue(e){var t;return this.isConnected?(t=this._connectedPoint)!=null&&t._storedFunction?(this._connectedPoint._callCount++,this._connectedPoint._executionCount++,this._connectedPoint._storedFunction(e)):(this._connectedPoint._callCount++,this._connectedPoint._executionCount=1,this._connectedPoint._storedValue):(this._callCount++,this._executionCount=1,this.value)}constructor(e,t,i){this._connectedPoint=null,this._storedValue=null,this._storedFunction=null,this._acceptedConnectionPointType=null,this._endpoints=new Array,this._type=ge.Geometry,this._linkedConnectionSource=null,this._typeConnectionSource=null,this._defaultConnectionPointType=null,this._isMainLinkSource=!1,this.acceptedConnectionPointTypes=[],this.excludedConnectionPointTypes=[],this.onConnectionObservable=new xe,this.onDisconnectionObservable=new xe,this.isExposedOnFrame=!1,this.exposedPortPosition=-1,this.defaultValue=null,this.value=null,this.valueMin=null,this.valueMax=null,this._callCount=0,this._executionCount=0,this._ownerBlock=t,this.name=e,this._direction=i}getClassName(){return"NodeGeometryConnectionPoint"}canConnectTo(e){return this.checkCompatibilityState(e)===0}checkCompatibilityState(e){const t=this._ownerBlock,i=e.ownerBlock;if(this.type!==e.type&&e.innerType!==ge.AutoDetect)return e.acceptedConnectionPointTypes&&e.acceptedConnectionPointTypes.indexOf(this.type)!==-1?0:1;if(e.excludedConnectionPointTypes&&e.excludedConnectionPointTypes.indexOf(this.type)!==-1)return 1;let s=i,r=t;return this.direction===0&&(s=t,r=i),s.isAnAncestorOf(r)?2:0}connectTo(e,t=!1){if(!t&&!this.canConnectTo(e))throw"Cannot connect these two connectors.";return this._endpoints.push(e),e._connectedPoint=this,this.onConnectionObservable.notifyObservers(e),e.onConnectionObservable.notifyObservers(this),this}disconnectFrom(e){const t=this._endpoints.indexOf(e);return t===-1?this:(this._endpoints.splice(t,1),e._connectedPoint=null,this.onDisconnectionObservable.notifyObservers(e),e.onDisconnectionObservable.notifyObservers(this),this)}addExcludedConnectionPointFromAllowedTypes(e){let t=1;for(;t<ge.All;)e&t||this.excludedConnectionPointTypes.push(t),t=t<<1}serialize(e=!0){const t={};return t.name=this.name,t.displayName=this.displayName,this.value!==void 0&&this.value!==null&&(this.value.asArray?(t.valueType="BABYLON."+this.value.getClassName(),t.value=this.value.asArray()):(t.valueType="number",t.value=this.value)),e&&this.connectedPoint&&(t.inputName=this.name,t.targetBlockId=this.connectedPoint.ownerBlock.uniqueId,t.targetConnectionName=this.connectedPoint.name,t.isExposedOnFrame=!0,t.exposedPortPosition=this.exposedPortPosition),(this.isExposedOnFrame||this.exposedPortPosition>=0)&&(t.isExposedOnFrame=!0,t.exposedPortPosition=this.exposedPortPosition),t}dispose(){this.onConnectionObservable.clear(),this.onDisconnectionObservable.clear()}}class us{get buildExecutionTime(){return this._buildExecutionTime}get inputs(){return this._inputs}get outputs(){return this._outputs}get name(){return this._name}set name(e){this._name=e}get isInput(){return this._isInput}get isTeleportOut(){return this._isTeleportOut}get isTeleportIn(){return this._isTeleportIn}get isDebug(){return this._isDebug}get isUnique(){return this._isUnique}getClassName(){return"NodeGeometryBlock"}_inputRename(e){return e}_outputRename(e){return e}isAnAncestorOf(e){for(const t of this._outputs)if(t.hasEndpoints){for(const i of t.endpoints)if(i.ownerBlock===e||i.ownerBlock.isAnAncestorOf(e))return!0}return!1}isAnAncestorOfType(e){if(this.getClassName()===e)return!0;for(const t of this._outputs)if(t.hasEndpoints){for(const i of t.endpoints)if(i.ownerBlock.isAnAncestorOfType(e))return!0}return!1}getDescendantOfPredicate(e){if(e(this))return this;for(const t of this._outputs)if(t.hasEndpoints)for(const i of t.endpoints){const s=i.ownerBlock.getDescendantOfPredicate(e);if(s)return s}return null}get _isReadyState(){return null}constructor(e){this._name="",this._isInput=!1,this._isTeleportOut=!1,this._isTeleportIn=!1,this._isDebug=!1,this._isUnique=!1,this._buildExecutionTime=0,this.onBuildObservable=new xe,this._inputs=new Array,this._outputs=new Array,this._codeVariableName="",this.visibleOnFrame=!1,this._name=e,this.uniqueId=gP.UniqueId}registerInput(e,t,i=!1,s,r,n){const o=new Gre(e,this,0);return o.type=t,o.isOptional=i,o.defaultValue=s,o.value=s,o.valueMin=r,o.valueMax=n,this._inputs.push(o),this}registerOutput(e,t,i){return i=i??new Gre(e,this,1),i.type=t,this._outputs.push(i),this}_buildBlock(e){}_customBuildStep(e){}build(e){if(this._buildId===e.buildId)return!0;if(this._outputs.length>0){if(!this._outputs.some(i=>i.hasEndpoints)&&!this.isDebug)return!1;this.outputs.forEach(i=>i._resetCounters())}this._buildId=e.buildId;for(const i of this._inputs){if(!i.connectedPoint){i.isOptional||e.notConnectedNonOptionalInputs.push(i);continue}const s=i.connectedPoint.ownerBlock;s&&s!==this&&s.build(e)}this._customBuildStep(e),e.verbose&&de.Log(`Building ${this.name} [${this.getClassName()}]`);const t=lr.Now;return this._buildBlock(e),this._buildExecutionTime=lr.Now-t,this.onBuildObservable.notifyObservers(this),!1}_linkConnectionTypes(e,t,i=!1){i?this._inputs[t]._acceptedConnectionPointType=this._inputs[e]:(this._inputs[e]._linkedConnectionSource=this._inputs[t],this._inputs[e]._isMainLinkSource=!0),this._inputs[t]._linkedConnectionSource=this._inputs[e]}initialize(){}autoConfigure(e){}getInputByName(e){const t=this._inputs.filter(i=>i.name===e);return t.length?t[0]:null}getOutputByName(e){const t=this._outputs.filter(i=>i.name===e);return t.length?t[0]:null}serialize(){const e={};e.customType="BABYLON."+this.getClassName(),e.id=this.uniqueId,e.name=this.name,e.visibleOnFrame=this.visibleOnFrame,e.inputs=[],e.outputs=[];for(const t of this.inputs)e.inputs.push(t.serialize());for(const t of this.outputs)e.outputs.push(t.serialize(!1));return e}_deserialize(e){this._name=e.name,this.comments=e.comments,this.visibleOnFrame=!!e.visibleOnFrame,this._deserializePortDisplayNamesAndExposedOnFrame(e)}_deserializePortDisplayNamesAndExposedOnFrame(e){const t=e.inputs,i=e.outputs;t&&t.forEach(s=>{const r=this.inputs.find(n=>n.name===s.name);if(r&&(s.displayName&&(r.displayName=s.displayName),s.isExposedOnFrame&&(r.isExposedOnFrame=s.isExposedOnFrame,r.exposedPortPosition=s.exposedPortPosition),s.value!==void 0&&s.value!==null))if(s.valueType==="number")r.value=s.value;else{const n=ea(s.valueType);n&&(r.value=n.FromArray(s.value))}}),i&&i.forEach((s,r)=>{s.displayName&&(this.outputs[r].displayName=s.displayName),s.isExposedOnFrame&&(this.outputs[r].isExposedOnFrame=s.isExposedOnFrame,this.outputs[r].exposedPortPosition=s.exposedPortPosition)})}_dumpPropertiesCode(){return`${this._codeVariableName}.visibleOnFrame = ${this.visibleOnFrame};
`}_dumpCodeForOutputConnections(e){let t="";if(e.indexOf(this)!==-1)return t;e.push(this);for(const i of this.inputs){if(!i.isConnected)continue;const s=i.connectedPoint,r=s.ownerBlock;t+=r._dumpCodeForOutputConnections(e),t+=`${r._codeVariableName}.${r._outputRename(s.name)}.connectTo(${this._codeVariableName}.${this._inputRename(i.name)});
`}return t}_dumpCode(e,t){t.push(this);const i=this.name.replace(/[^A-Za-z_]+/g,"");if(this._codeVariableName=i||`${this.getClassName()}_${this.uniqueId}`,e.indexOf(this._codeVariableName)!==-1){let n=0;do n++,this._codeVariableName=i+n;while(e.indexOf(this._codeVariableName)!==-1)}e.push(this._codeVariableName);let s=`
// ${this.getClassName()}
`;this.comments&&(s+=`// ${this.comments}
`);const r=this.getClassName();if(r==="GeometryInputBlock"){const o=this.type;s+=`var ${this._codeVariableName} = new BABYLON.GeometryInputBlock("${this.name}", ${o});
`}else s+=`var ${this._codeVariableName} = new BABYLON.${r}("${this.name}");
`;s+=this._dumpPropertiesCode();for(const n of this.inputs){if(!n.isConnected)continue;const l=n.connectedPoint.ownerBlock;t.indexOf(l)===-1&&(s+=l._dumpCode(e,t))}for(const n of this.outputs)if(n.hasEndpoints)for(const o of n.endpoints){const l=o.ownerBlock;l&&t.indexOf(l)===-1&&(s+=l._dumpCode(e,t))}return s}clone(){const e=this.serialize(),t=ea(e.customType);if(t){const i=new t;return i._deserialize(e),i}return null}dispose(){for(const e of this.inputs)e.dispose();for(const e of this.outputs)e.dispose();this.onBuildObservable.clear()}}F([G("comment")],us.prototype,"comments",void 0);class Wre extends us{get currentVertexData(){return this._vertexData}constructor(e){super(e),this._vertexData=null,this._isUnique=!0,this.registerInput("geometry",ge.Geometry)}getClassName(){return"GeometryOutputBlock"}get geometry(){return this._inputs[0]}_buildBlock(e){e.vertexData=this.geometry.getConnectedValue(e),this._vertexData=e.vertexData}}ve("BABYLON.GeometryOutputBlock",Wre);var Er;(function(a){a[a.None=0]="None",a[a.Positions=1]="Positions",a[a.Normals=2]="Normals",a[a.Tangents=3]="Tangents",a[a.UV=4]="UV",a[a.UV2=5]="UV2",a[a.UV3=6]="UV3",a[a.UV4=7]="UV4",a[a.UV5=8]="UV5",a[a.UV6=9]="UV6",a[a.Colors=10]="Colors",a[a.VertexID=11]="VertexID",a[a.FaceID=12]="FaceID",a[a.GeometryID=13]="GeometryID",a[a.CollectionID=14]="CollectionID",a[a.LoopID=15]="LoopID",a[a.InstanceID=16]="InstanceID",a[a.LatticeID=17]="LatticeID",a[a.LatticeControl=18]="LatticeControl"})(Er||(Er={}));class qAe{constructor(){this._rotationMatrix=new me,this._scalingMatrix=new me,this._positionMatrix=new me,this._scalingRotationMatrix=new me,this._transformMatrix=new me,this._tempVector3=new P,this.notConnectedNonOptionalInputs=[],this.noContextualData=[],this.vertexData=null,this._geometryContext=null,this._executionContext=null,this._instancingContext=null,this._geometryContextStack=[],this._executionContextStack=[],this._instancingContextStack=[]}get geometryContext(){return this._geometryContext}get executionContext(){return this._executionContext}get instancingContext(){return this._instancingContext}pushGeometryContext(e){this._geometryContext=e,this._geometryContextStack.push(this._geometryContext)}pushExecutionContext(e){this._executionContext=e,this._executionContextStack.push(this._executionContext)}pushInstancingContext(e){this._instancingContext=e,this._instancingContextStack.push(this._instancingContext)}restoreGeometryContext(){this._geometryContextStack.pop(),this._geometryContext=this._geometryContextStack.length>0?this._geometryContextStack[this._geometryContextStack.length-1]:null}restoreExecutionContext(){this._executionContextStack.pop(),this._executionContext=this._executionContextStack.length>0?this._executionContextStack[this._executionContextStack.length-1]:null}restoreInstancingContext(){this._instancingContextStack.pop(),this._instancingContext=this._instancingContextStack.length>0?this._instancingContextStack[this._instancingContextStack.length-1]:null}getContextualValue(e,t=!1){if(!this.executionContext)return t||this.noContextualData.push(e),null;const i=this.executionContext.getExecutionIndex();switch(e){case Er.Positions:return this.executionContext.getOverridePositionsContextualValue?this.executionContext.getOverridePositionsContextualValue():!this.geometryContext||!this.geometryContext.positions?P.Zero():P.FromArray(this.geometryContext.positions,i*3);case Er.Normals:return this.executionContext.getOverrideNormalsContextualValue?this.executionContext.getOverrideNormalsContextualValue():!this.geometryContext||!this.geometryContext.normals?P.Zero():P.FromArray(this.geometryContext.normals,i*3);case Er.Colors:return!this.geometryContext||!this.geometryContext.colors?Yt.Zero():Yt.FromArray(this.geometryContext.colors,i*4);case Er.Tangents:return!this.geometryContext||!this.geometryContext.tangents?Yt.Zero():Yt.FromArray(this.geometryContext.tangents,i*4);case Er.UV:return this.executionContext.getOverrideUVs1ContextualValue?this.executionContext.getOverrideUVs1ContextualValue():!this.geometryContext||!this.geometryContext.uvs?Ue.Zero():Ue.FromArray(this.geometryContext.uvs,i*2);case Er.UV2:return!this.geometryContext||!this.geometryContext.uvs2?Ue.Zero():Ue.FromArray(this.geometryContext.uvs2,i*2);case Er.UV3:return!this.geometryContext||!this.geometryContext.uvs3?Ue.Zero():Ue.FromArray(this.geometryContext.uvs3,i*2);case Er.UV4:return!this.geometryContext||!this.geometryContext.uvs4?Ue.Zero():Ue.FromArray(this.geometryContext.uvs4,i*2);case Er.UV5:return!this.geometryContext||!this.geometryContext.uvs5?Ue.Zero():Ue.FromArray(this.geometryContext.uvs5,i*2);case Er.UV6:return!this.geometryContext||!this.geometryContext.uvs6?Ue.Zero():Ue.FromArray(this.geometryContext.uvs6,i*2);case Er.VertexID:return i;case Er.FaceID:return this.executionContext.getExecutionFaceIndex();case Er.LoopID:return this.executionContext.getExecutionLoopIndex();case Er.InstanceID:return this.instancingContext?this.instancingContext.getInstanceIndex():0;case Er.GeometryID:return this.geometryContext?this.geometryContext.uniqueId:0;case Er.CollectionID:return!this.geometryContext||!this.geometryContext.metadata?0:this.geometryContext.metadata.collectionId||0;case Er.LatticeID:return this.executionContext.getOverridePositionsContextualValue?this.executionContext.getOverridePositionsContextualValue():P.Zero();case Er.LatticeControl:return this.executionContext.getOverrideNormalsContextualValue?this.executionContext.getOverrideNormalsContextualValue():P.Zero()}return null}adapt(e,t){const i=e.getConnectedValue(this)||0;if(e.type===t)return i;switch(t){case ge.Vector2:return new Ue(i,i);case ge.Vector3:return new P(i,i,i);case ge.Vector4:return new Yt(i,i,i,i)}return null}adaptInput(e,t,i){var r;if(!e.isConnected)return e.value||i;const s=e.getConnectedValue(this);if(((r=e._connectedPoint)==null?void 0:r.type)===t)return s;switch(t){case ge.Vector2:return new Ue(s,s);case ge.Vector3:return new P(s,s,s);case ge.Vector4:return new Yt(s,s,s,s)}return null}emitErrors(){let e="";for(const t of this.notConnectedNonOptionalInputs)e+=`input ${t.name} from block ${t.ownerBlock.name}[${t.ownerBlock.getClassName()}] is not connected and is not optional.
`;for(const t of this.noContextualData)e+=`Contextual input ${Er[t]} has no context to pull data from (must be connected to a setXXX block or a instantiateXXX block).
`;if(e)throw`Build of NodeGeometry failed:
`+e}_instantiate(e,t,i,s,r){me.ScalingToRef(s.x,s.y,s.z,this._scalingMatrix),me.RotationYawPitchRollToRef(i.y,i.x,i.z,this._rotationMatrix),me.TranslationToRef(t.x,t.y,t.z,this._positionMatrix),this._scalingMatrix.multiplyToRef(this._rotationMatrix,this._scalingRotationMatrix),this._scalingRotationMatrix.multiplyToRef(this._positionMatrix,this._transformMatrix);for(let n=0;n<e.positions.length;n+=3)this._tempVector3.fromArray(e.positions,n),P.TransformCoordinatesToRef(this._tempVector3,this._transformMatrix,this._tempVector3),this._tempVector3.toArray(e.positions,n),e.normals&&(this._tempVector3.fromArray(e.normals,n),P.TransformNormalToRef(this._tempVector3,this._scalingRotationMatrix,this._tempVector3),this._tempVector3.toArray(e.normals,n));r.push(e)}_instantiateWithMatrix(e,t,i){for(let s=0;s<e.positions.length;s+=3)this._tempVector3.fromArray(e.positions,s),P.TransformCoordinatesToRef(this._tempVector3,t,this._tempVector3),this._tempVector3.toArray(e.positions,s),e.normals&&(this._tempVector3.fromArray(e.normals,s),P.TransformNormalToRef(this._tempVector3,t,this._tempVector3),this._tempVector3.toArray(e.normals,s));i.push(e)}_instantiateWithPositionAndMatrix(e,t,i,s){me.TranslationToRef(t.x,t.y,t.z,this._positionMatrix),i.multiplyToRef(this._positionMatrix,this._transformMatrix);for(let r=0;r<e.positions.length;r+=3)this._tempVector3.fromArray(e.positions,r),P.TransformCoordinatesToRef(this._tempVector3,this._transformMatrix,this._tempVector3),this._tempVector3.toArray(e.positions,r),e.normals&&(this._tempVector3.fromArray(e.normals,r),P.TransformNormalToRef(this._tempVector3,this._transformMatrix,this._tempVector3),this._tempVector3.toArray(e.normals,r));s.push(e)}}class zl extends us{get type(){if(this._type===ge.AutoDetect&&this.value!=null){if(!isNaN(this.value))return this._type=ge.Float,this._type;switch(this.value.getClassName()){case"Vector2":return this._type=ge.Vector2,this._type;case"Vector3":return this._type=ge.Vector3,this._type;case"Vector4":return this._type=ge.Vector4,this._type;case"Matrix":return this._type=ge.Matrix,this._type}}return this._type}get isContextual(){return this._contextualSource!==Er.None}get contextualValue(){return this._contextualSource}set contextualValue(e){switch(this._contextualSource=e,e){case Er.Positions:case Er.Normals:case Er.LatticeID:case Er.LatticeControl:this._type=ge.Vector3;break;case Er.Colors:case Er.Tangents:this._type=ge.Vector4;break;case Er.UV:case Er.UV2:case Er.UV3:case Er.UV4:case Er.UV5:case Er.UV6:this._type=ge.Vector2;break;case Er.VertexID:case Er.GeometryID:case Er.CollectionID:case Er.FaceID:case Er.LoopID:case Er.InstanceID:this._type=ge.Int;break}this.output&&(this.output.type=this._type)}constructor(e,t=ge.AutoDetect){super(e),this._type=ge.Undefined,this._contextualSource=Er.None,this.min=0,this.max=0,this.groupInInspector="",this.displayInInspector=!0,this.onValueChangedObservable=new xe,this._type=t,this._isInput=!0,this.setDefaultValue(),this.registerOutput("output",t)}get value(){return this._storedValue}set value(e){this.type===ge.Float&&this.min!==this.max&&(e=Math.max(this.min,e),e=Math.min(this.max,e)),this._storedValue=e,this.onValueChangedObservable.notifyObservers(this)}get valueCallback(){return this._valueCallback}set valueCallback(e){this._valueCallback=e}getClassName(){return"GeometryInputBlock"}get output(){return this._outputs[0]}setDefaultValue(){switch(this.contextualValue=Er.None,this.type){case ge.Int:case ge.Float:this.value=0;break;case ge.Vector2:this.value=Ue.Zero();break;case ge.Vector3:this.value=P.Zero();break;case ge.Vector4:this.value=Yt.Zero();break;case ge.Matrix:this.value=me.Identity();break}}_buildBlock(e){super._buildBlock(e),this.isContextual?(this.output._storedValue=null,this.output._storedFunction=t=>t.getContextualValue(this._contextualSource)):(this.output._storedFunction=null,this.output._storedValue=this.value)}dispose(){this.onValueChangedObservable.clear(),super.dispose()}_dumpPropertiesCode(){const e=this._codeVariableName;if(this.isContextual)return super._dumpPropertiesCode()+`${e}.contextualValue = BABYLON.NodeGeometryContextualSources.${Er[this._contextualSource]};
`;const t=[];let i="";switch(this.type){case ge.Float:case ge.Int:i=`${this.value}`;break;case ge.Vector2:i=`new BABYLON.Vector2(${this.value.x}, ${this.value.y})`;break;case ge.Vector3:i=`new BABYLON.Vector3(${this.value.x}, ${this.value.y}, ${this.value.z})`;break;case ge.Vector4:i=`new BABYLON.Vector4(${this.value.x}, ${this.value.y}, ${this.value.z}, ${this.value.w})`;break}return t.push(`${e}.value = ${i}`),(this.type===ge.Float||this.type===ge.Int)&&t.push(`${e}.min = ${this.min}`,`${e}.max = ${this.max}`),t.push(""),super._dumpPropertiesCode()+t.join(`;
`)}serialize(){const e=super.serialize();return e.type=this.type,e.contextualValue=this.contextualValue,e.min=this.min,e.max=this.max,e.groupInInspector=this.groupInInspector,e.displayInInspector=this.displayInInspector,this._storedValue!==null&&!this.isContextual&&(this._storedValue.asArray?(e.valueType="BABYLON."+this._storedValue.getClassName(),e.value=this._storedValue.asArray()):(e.valueType="number",e.value=this._storedValue)),e}_deserialize(e){if(super._deserialize(e),this._type=e.type,this.contextualValue=e.contextualValue,this.min=e.min||0,this.max=e.max||0,this.groupInInspector=e.groupInInspector||"",e.displayInInspector!==void 0&&(this.displayInInspector=e.displayInInspector),!!e.valueType)if(e.valueType==="number")this._storedValue=e.value;else{const t=ea(e.valueType);t&&(this._storedValue=t.FromArray(e.value))}}}ve("BABYLON.GeometryInputBlock",zl);class oY extends us{constructor(e){super(e),this.evaluateContext=!1,this.registerInput("size",ge.Float,!0,1),this.registerInput("width",ge.Float,!0,0),this.registerInput("height",ge.Float,!0,0),this.registerInput("depth",ge.Float,!0,0),this.registerInput("subdivisions",ge.Int,!0,1,0),this.registerInput("subdivisionsX",ge.Int,!0,0,0),this.registerInput("subdivisionsY",ge.Int,!0,0,0),this.registerInput("subdivisionsZ",ge.Int,!0,0,0),this.registerOutput("geometry",ge.Geometry)}getClassName(){return"BoxBlock"}get size(){return this._inputs[0]}get width(){return this._inputs[1]}get height(){return this._inputs[2]}get depth(){return this._inputs[3]}get subdivisions(){return this._inputs[4]}get subdivisionsX(){return this._inputs[5]}get subdivisionsY(){return this._inputs[6]}get subdivisionsZ(){return this._inputs[7]}get geometry(){return this._outputs[0]}autoConfigure(){if(!this.size.isConnected){if(!this.width.isConnected&&!this.height.isConnected&&!this.depth.isConnected){const e=new zl("Size");e.value=1,e.output.connectTo(this.size);return}if(!this.width.isConnected){const e=new zl("Width");e.value=1,e.output.connectTo(this.width)}if(!this.height.isConnected){const e=new zl("Height");e.value=1,e.output.connectTo(this.height)}if(!this.depth.isConnected){const e=new zl("Depth");e.value=1,e.output.connectTo(this.depth)}}}_buildBlock(e){const t={},i=s=>{t.size=this.size.getConnectedValue(s),t.width=this.width.getConnectedValue(s),t.height=this.height.getConnectedValue(s),t.depth=this.depth.getConnectedValue(s);const r=this.subdivisions.getConnectedValue(s),n=this.subdivisionsX.getConnectedValue(s),o=this.subdivisionsY.getConnectedValue(s),l=this.subdivisionsZ.getConnectedValue(s);return r&&(t.segments=r),n&&(t.widthSegments=n),o&&(t.heightSegments=o),l&&(t.depthSegments=l),U1e(t)};if(this.evaluateContext)this.geometry._storedFunction=i;else{const s=i(e);this.geometry._storedFunction=()=>(this.geometry._executionCount=1,s.clone())}}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],oY.prototype,"evaluateContext",void 0),ve("BABYLON.BoxBlock",oY);class D0{_getGlobalNodeGeometryEditor(){if(typeof NODEGEOMETRYEDITOR<"u")return NODEGEOMETRYEDITOR;if(typeof BABYLON<"u"&&typeof BABYLON.NodeGeometryEditor<"u")return BABYLON}get buildExecutionTime(){return this._buildExecutionTime}constructor(e){this._buildId=D0._BuildIdGenerator++,this._buildWasSuccessful=!1,this._vertexData=null,this._buildExecutionTime=0,this.BJSNODEGEOMETRYEDITOR=this._getGlobalNodeGeometryEditor(),this.editorData=null,this.attachedBlocks=[],this.onBuildObservable=new xe,this.outputBlock=null,this.name=e}getClassName(){return"NodeGeometry"}get vertexData(){return this._vertexData}getBlockByName(e){let t=null;for(const i of this.attachedBlocks)if(i.name===e)if(!t)t=i;else return Le.Warn("More than one block was found with the name `"+e+"`"),t;return t}getBlockByPredicate(e){for(const t of this.attachedBlocks)if(e(t))return t;return null}getInputBlocks(){const e=[];for(const t of this.attachedBlocks)t.isInput&&e.push(t);return e}edit(e){return new Promise(t=>{if(this.BJSNODEGEOMETRYEDITOR=this.BJSNODEGEOMETRYEDITOR||this._getGlobalNodeGeometryEditor(),typeof this.BJSNODEGEOMETRYEDITOR>"u"){const i=e&&e.editorURL?e.editorURL:D0.EditorURL;Le.LoadBabylonScript(i,()=>{this.BJSNODEGEOMETRYEDITOR=this.BJSNODEGEOMETRYEDITOR||this._getGlobalNodeGeometryEditor(),this._createNodeEditor(e==null?void 0:e.nodeGeometryEditorConfig),t()})}else this._createNodeEditor(e==null?void 0:e.nodeGeometryEditorConfig),t()})}_createNodeEditor(e){const t={nodeGeometry:this,...e};this.BJSNODEGEOMETRYEDITOR.NodeGeometryEditor.Show(t)}build(e=!1,t=!0,i=!1){if(this._buildWasSuccessful=!1,!this.outputBlock)throw"You must define the outputBlock property before building the geometry";const s=lr.Now;this._initializeBlock(this.outputBlock,i);const r=[];for(const o of this.attachedBlocks)o._isReadyState&&r.push(o._isReadyState);if(r.length){Promise.all(r).then(()=>{this.build(e,t,i)});return}const n=new qAe;n.buildId=this._buildId,n.verbose=e;try{this.outputBlock.build(n)}finally{t&&(this._buildId=D0._BuildIdGenerator++)}this._buildExecutionTime=lr.Now-s,n.emitErrors(),this._buildWasSuccessful=!0,this._vertexData=n.vertexData,this.onBuildObservable.notifyObservers(this)}createMesh(e,t=null){if(this._buildWasSuccessful||this.build(),!this._vertexData)return null;const i=new Ne(e,t);return this._vertexData.applyToMesh(i),i._internalMetadata=i._internalMetadata||{},i._internalMetadata.nodeGeometry=this,i}updateMesh(e){return this._buildWasSuccessful||this.build(),this._vertexData?(this._vertexData.applyToMesh(e),e._internalMetadata=e._internalMetadata||{},e._internalMetadata.nodeGeometry=this,e):!1}_initializeBlock(e,t=!0){e.initialize(),t&&e.autoConfigure(this),e._preparationId=this._buildId,this.attachedBlocks.indexOf(e)===-1&&this.attachedBlocks.push(e);for(const i of e.inputs){const s=i.connectedPoint;if(s){const r=s.ownerBlock;r!==e&&this._initializeBlock(r,t)}}}clear(){this.outputBlock=null,this.attachedBlocks.length=0}removeBlock(e){const t=this.attachedBlocks.indexOf(e);t>-1&&this.attachedBlocks.splice(t,1),e===this.outputBlock&&(this.outputBlock=null)}parseSerializedObject(e,t=!1){t||this.clear();const i={};for(const s of e.blocks){const r=ea(s.customType);if(r){const n=new r;n._deserialize(s),i[s.id]=n,this.attachedBlocks.push(n)}}for(const s of this.attachedBlocks)if(s.isTeleportOut){const r=s,n=r._tempEntryPointUniqueId;if(n){const o=i[n];o&&o.attachToEndpoint(r)}}for(let s=0;s<e.blocks.length;s++){const r=e.blocks[s],n=i[r.id];n&&(n.inputs.length&&r.inputs.some(o=>o.targetConnectionName)&&!t||this._restoreConnections(n,e,i))}if(e.outputNodeId&&(this.outputBlock=i[e.outputNodeId]),e.locations||e.editorData&&e.editorData.locations){const s=e.locations||e.editorData.locations;for(const n of s)i[n.blockId]&&(n.blockId=i[n.blockId].uniqueId);t&&this.editorData&&this.editorData.locations&&s.concat(this.editorData.locations),e.locations?this.editorData={locations:s}:(this.editorData=e.editorData,this.editorData.locations=s);const r=[];for(const n in i)r[n]=i[n].uniqueId;this.editorData.map=r}this.comment=e.comment}_restoreConnections(e,t,i){for(const s of e.outputs)for(const r of t.blocks){const n=i[r.id];if(n){for(const o of r.inputs)if(i[o.targetBlockId]===e&&o.targetConnectionName===s.name){const l=n.getInputByName(o.inputName);if(!l||l.isConnected)continue;s.connectTo(l,!0),this._restoreConnections(n,t,i);continue}}}}generateCode(){let e=[];const t=[],i=["const","var","let"];this.outputBlock&&this._gatherBlocks(this.outputBlock,t);let s=`let nodeGeometry = new BABYLON.NodeGeometry("${this.name||"node geometry"}");
`;for(const r of t)r.isInput&&e.indexOf(r)===-1&&(s+=r._dumpCode(i,e));return this.outputBlock&&(e=[],s+=`// Connections
`,s+=this.outputBlock._dumpCodeForOutputConnections(e),s+=`// Output nodes
`,s+=`nodeGeometry.outputBlock = ${this.outputBlock._codeVariableName};
`,s+=`nodeGeometry.build();
`),s}_gatherBlocks(e,t){if(t.indexOf(e)===-1){t.push(e);for(const i of e.inputs){const s=i.connectedPoint;if(s){const r=s.ownerBlock;r!==e&&this._gatherBlocks(r,t)}}if(e.isTeleportOut){const i=e;i.entryPoint&&this._gatherBlocks(i.entryPoint,t)}}}setToDefault(){this.clear(),this.editorData=null;const e=new oY("Box");e.autoConfigure();const t=new Wre("Geometry Output");e.geometry.connectTo(t.geometry),this.outputBlock=t}clone(e){const t=this.serialize(),i=It.Clone(()=>new D0(e),this);return i.name=e,i.parseSerializedObject(t),i._buildId=this._buildId,i.build(!1),i}serialize(e){const t=e?{}:It.Serialize(this);t.editorData=JSON.parse(JSON.stringify(this.editorData));let i=[];e?i=e:(t.customType="BABYLON.NodeGeometry",this.outputBlock&&(t.outputNodeId=this.outputBlock.uniqueId)),t.blocks=[];for(const s of i)t.blocks.push(s.serialize());if(!e)for(const s of this.attachedBlocks)i.indexOf(s)===-1&&t.blocks.push(s.serialize());return t}dispose(){for(const e of this.attachedBlocks)e.dispose();this.attachedBlocks.length=0,this.onBuildObservable.clear()}static CreateDefault(e){const t=new D0(e);return t.setToDefault(),t.build(),t}static Parse(e){const t=It.Parse(()=>new D0(e.name),e,null);return t.parseSerializedObject(e),t.build(),t}static ParseFromSnippetAsync(e,t,i=!1){return e==="_BLANK"?Promise.resolve(D0.CreateDefault("blank")):new Promise((s,r)=>{const n=new ha;n.addEventListener("readystatechange",()=>{if(n.readyState==4)if(n.status==200){const o=JSON.parse(JSON.parse(n.responseText).jsonPayload),l=JSON.parse(o.nodeGeometry);t||(t=It.Parse(()=>new D0(e),l,null)),t.parseSerializedObject(l),t.snippetId=e;try{i||t.build(),s(t)}catch(c){r(c)}}else r("Unable to load the snippet "+e)}),n.open("GET",this.SnippetUrl+"/"+e.replace(/#/g,"/")),n.send()})}}D0._BuildIdGenerator=0,D0.EditorURL=`${Le._DefaultCdnUrl}/v${dt.Version}/nodeGeometryEditor/babylon.nodeGeometryEditor.js`,D0.SnippetUrl="https://snippet.babylonjs.com",F([G()],D0.prototype,"name",void 0),F([G("comment")],D0.prototype,"comment",void 0);class iz extends us{getExecutionIndex(){return this._currentIndex}getExecutionLoopIndex(){return this._currentIndex}getExecutionFaceIndex(){return 0}constructor(e){super(e),this.evaluateContext=!0,this.epsilon=Ii,this.optimizeFaces=!1,this.registerInput("geometry",ge.Geometry),this.registerInput("selector",ge.Int,!0),this.registerOutput("output",ge.Geometry)}getClassName(){return"GeometryOptimizeBlock"}get geometry(){return this._inputs[0]}get selector(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){const t=i=>{if(!this.geometry.isConnected)return null;const s=this.geometry.getConnectedValue(i),r=[],n={};i.pushExecutionContext(this),i.pushGeometryContext(s);for(let u=0;u<s.positions.length;u+=3){if(this._currentIndex=u/3,this.selector.isConnected&&!this.selector.getConnectedValue(i))continue;const f=s.positions[u],p=s.positions[u+1],m=s.positions[u+2];let _=!1;for(let d=0;d<r.length;d+=3)if(Lr(f,r[d],this.epsilon)&&Lr(p,r[d+1],this.epsilon)&&Lr(m,r[d+2],this.epsilon)){n[u/3]=d/3,_=!0;continue}_||(n[u/3]=r.length/3,r.push(f,p,m))}const o=new wt;o.positions=r;const l=s.indices.map(u=>n[u]),c=[];if(this.optimizeFaces){for(let u=0;u<l.length;u+=3){const f=l[u],p=l[u+1],m=l[u+2];if(f===p||p==m||m===f)continue;let _=!1;for(let d=0;d<c.length;d+=3){if(f===c[d]&&p===c[d+1]&&m===c[d+2]){_=!0;continue}if(f===c[d+1]&&p===c[d+2]&&m===c[d]){_=!0;continue}if(f===c[d+2]&&p===c[d]&&m===c[d+1]){_=!0;continue}}_||c.push(f,p,m)}o.indices=c}else o.indices=l;return o};e.restoreGeometryContext(),e.restoreExecutionContext(),this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`;return e+=`${this._codeVariableName}.epsilon = ${this.epsilon};
`,e+=`${this._codeVariableName}.optimizeFaces = ${this.optimizeFaces?"true":"false"};
`,e}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e.epsilon=this.epsilon,e.optimizeFaces=this.optimizeFaces,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext,this.epsilon=e.epsilon,this.optimizeFaces=e.optimizeFaces}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],iz.prototype,"evaluateContext",void 0),F([lt("Epsilon",1,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],iz.prototype,"epsilon",void 0),F([lt("Optimize faces",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],iz.prototype,"optimizeFaces",void 0),ve("BABYLON.GeometryOptimizeBlock",iz);class Hre extends us{constructor(e){super(e),this._rotationMatrix=new me,this.evaluateContext=!1,this.registerInput("size",ge.Float,!0,1),this.registerInput("width",ge.Float,!0,0),this.registerInput("height",ge.Float,!0,0),this.registerInput("subdivisions",ge.Int,!0,1,0),this.registerInput("subdivisionsX",ge.Int,!0,0,0),this.registerInput("subdivisionsY",ge.Int,!0,0,0),this.registerOutput("geometry",ge.Geometry)}getClassName(){return"PlaneBlock"}get size(){return this._inputs[0]}get width(){return this._inputs[1]}get height(){return this._inputs[2]}get subdivisions(){return this._inputs[3]}get subdivisionsX(){return this._inputs[4]}get subdivisionsY(){return this._inputs[5]}get geometry(){return this._outputs[0]}autoConfigure(){if(!this.size.isConnected){if(!this.width.isConnected&&!this.height.isConnected){const e=new zl("Size");e.value=1,e.output.connectTo(this.size);return}if(!this.width.isConnected){const e=new zl("Width");e.value=1,e.output.connectTo(this.width)}if(!this.height.isConnected){const e=new zl("Height");e.value=1,e.output.connectTo(this.height)}}}_buildBlock(e){const t={},i=s=>{t.size=this.size.getConnectedValue(s),t.width=this.width.getConnectedValue(s),t.height=this.height.getConnectedValue(s);const r=this.subdivisions.getConnectedValue(s),n=this.subdivisionsX.getConnectedValue(s),o=this.subdivisionsY.getConnectedValue(s);r&&(t.subdivisions=r),n&&(t.subdivisionsX=n),o&&(t.subdivisionsY=o);const l=Qv(t);return me.RotationYawPitchRollToRef(-Math.PI/2,0,Math.PI/2,this._rotationMatrix),l.transform(this._rotationMatrix),l};if(this.evaluateContext)this.geometry._storedFunction=i;else{const s=i(e);this.geometry._storedFunction=()=>(this.geometry._executionCount=1,s.clone())}}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],Hre.prototype,"evaluateContext",void 0),ve("BABYLON.PlaneBlock",Hre);class Yre extends us{get mesh(){return this._mesh}set mesh(e){this._mesh=e}constructor(e){super(e),this._cachedVertexData=null,this.reverseWindingOrder=!1,this.serializedCachedData=!1,this.registerOutput("geometry",ge.Geometry)}getClassName(){return"MeshBlock"}get isUsingCachedData(){return!this.mesh&&!!this._cachedVertexData}get geometry(){return this._outputs[0]}cleanData(){this._mesh=null,this._cachedVertexData=null}_buildBlock(){if(!this._mesh){this._cachedVertexData?this.geometry._storedValue=this._cachedVertexData.clone():this.geometry._storedValue=null;return}const e=wt.ExtractFromMesh(this._mesh,!1,!0);if(this._cachedVertexData=null,this.reverseWindingOrder&&e.indices)for(let t=0;t<e.indices.length;t+=3){const i=e.indices[t];e.indices[t]=e.indices[t+2],e.indices[t+2]=i}this.geometry._storedFunction=()=>e.clone()}serialize(){const e=super.serialize();return e.serializedCachedData=this.serializedCachedData,this.serializedCachedData&&(this._mesh?e.cachedVertexData=wt.ExtractFromMesh(this._mesh,!1,!0).serialize():this._cachedVertexData&&(e.cachedVertexData=this._cachedVertexData.serialize())),e.reverseWindingOrder=this.reverseWindingOrder,e}_deserialize(e){super._deserialize(e),e.cachedVertexData&&(this._cachedVertexData=wt.Parse(e.cachedVertexData)),this.serializedCachedData=!!e.serializedCachedData,this.reverseWindingOrder=e.reverseWindingOrder}}F([lt("Serialize cached data",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],Yre.prototype,"serializedCachedData",void 0),ve("BABYLON.MeshBlock",Yre);class Xre extends us{constructor(e){super(e),this.evaluateContext=!1,this.registerInput("radius",ge.Float,!0,1),this.registerInput("radiusX",ge.Float,!0,0),this.registerInput("radiusY",ge.Float,!0,0),this.registerInput("radiusZ",ge.Float,!0,0),this.registerInput("subdivisions",ge.Int,!0,4),this.registerOutput("geometry",ge.Geometry)}getClassName(){return"IcoSphereBlock"}get radius(){return this._inputs[0]}get radiusX(){return this._inputs[1]}get radiusY(){return this._inputs[2]}get radiusZ(){return this._inputs[3]}get subdivisions(){return this._inputs[4]}get geometry(){return this._outputs[0]}autoConfigure(){if(!this.radius.isConnected){const e=new zl("Radius");e.value=.2,e.output.connectTo(this.radius)}}_buildBlock(e){const t={},i=s=>(t.radius=this.radius.getConnectedValue(s),t.subdivisions=this.subdivisions.getConnectedValue(s),t.radiusX=this.radiusX.getConnectedValue(s),t.radiusY=this.radiusY.getConnectedValue(s),t.radiusZ=this.radiusZ.getConnectedValue(s),UW(t));if(this.evaluateContext)this.geometry._storedFunction=i;else{const s=i(e);this.geometry._storedFunction=()=>(this.geometry._executionCount=1,s.clone())}}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],Xre.prototype,"evaluateContext",void 0),ve("BABYLON.IcoSphereBlock",Xre);class Zre extends us{constructor(e){super(e),this.evaluateContext=!1,this.registerInput("segments",ge.Int,!0,32),this.registerInput("diameter",ge.Float,!0,1),this.registerInput("diameterX",ge.Float,!0,0),this.registerInput("diameterY",ge.Float,!0,0),this.registerInput("diameterZ",ge.Float,!0,0),this.registerInput("arc",ge.Float,!0,1),this.registerInput("slice",ge.Float,!0,1),this.registerOutput("geometry",ge.Geometry)}getClassName(){return"SphereBlock"}get segments(){return this._inputs[0]}get diameter(){return this._inputs[1]}get diameterX(){return this._inputs[2]}get diameterY(){return this._inputs[3]}get diameterZ(){return this._inputs[4]}get arc(){return this._inputs[5]}get slice(){return this._inputs[6]}get geometry(){return this._outputs[0]}autoConfigure(){if(!this.diameter.isConnected){const e=new zl("Diameter");e.value=1,e.output.connectTo(this.diameter)}}_buildBlock(e){const t={},i=s=>(t.segments=this.segments.getConnectedValue(s),t.diameter=this.diameter.getConnectedValue(s),t.diameterX=this.diameterX.getConnectedValue(s),t.diameterY=this.diameterY.getConnectedValue(s),t.diameterZ=this.diameterZ.getConnectedValue(s),t.arc=this.arc.getConnectedValue(s),t.slice=this.slice.getConnectedValue(s),DW(t));if(this.evaluateContext)this.geometry._storedFunction=i;else{const s=i(e);this.geometry._storedFunction=()=>(this.geometry._executionCount=1,s.clone())}}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],Zre.prototype,"evaluateContext",void 0),ve("BABYLON.SphereBlock",Zre);class Kre extends us{constructor(e){super(e),this.evaluateContext=!1,this.registerInput("width",ge.Float,!0,1),this.registerInput("height",ge.Float,!0,1),this.registerInput("subdivisions",ge.Int,!0,1,0),this.registerInput("subdivisionsX",ge.Int,!0,0,0),this.registerInput("subdivisionsY",ge.Int,!0,0,0),this.registerOutput("geometry",ge.Geometry)}getClassName(){return"GridBlock"}get width(){return this._inputs[0]}get height(){return this._inputs[1]}get subdivisions(){return this._inputs[2]}get subdivisionsX(){return this._inputs[3]}get subdivisionsY(){return this._inputs[4]}get geometry(){return this._outputs[0]}autoConfigure(){if(!this.width.isConnected){const e=new zl("Width");e.value=1,e.output.connectTo(this.width)}if(!this.height.isConnected){const e=new zl("Height");e.value=1,e.output.connectTo(this.height)}}_buildBlock(e){const t={},i=s=>(t.width=this.width.getConnectedValue(s),t.height=this.height.getConnectedValue(s),t.subdivisions=this.subdivisions.getConnectedValue(s),t.subdivisionsX=this.subdivisionsX.getConnectedValue(s),t.subdivisionsY=this.subdivisionsY.getConnectedValue(s),Qv(t));if(this.evaluateContext)this.geometry._storedFunction=i;else{const s=i(e);this.geometry._storedFunction=()=>(this.geometry._executionCount=1,s.clone())}}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],Kre.prototype,"evaluateContext",void 0),ve("BABYLON.GridBlock",Kre);class qre extends us{constructor(e){super(e),this.evaluateContext=!1,this.registerInput("diameter",ge.Float,!0,1),this.registerInput("thickness",ge.Float,!0,.5),this.registerInput("tessellation",ge.Int,!0,16),this.registerOutput("geometry",ge.Geometry)}getClassName(){return"TorusBlock"}get diameter(){return this._inputs[0]}get thickness(){return this._inputs[1]}get tessellation(){return this._inputs[2]}get geometry(){return this._outputs[0]}autoConfigure(){if(!this.diameter.isConnected){const e=new zl("Diameter");e.value=1,e.output.connectTo(this.diameter)}}_buildBlock(e){const t={},i=s=>(t.thickness=this.thickness.getConnectedValue(s),t.diameter=this.diameter.getConnectedValue(s),t.tessellation=this.tessellation.getConnectedValue(s),wW(t));if(this.evaluateContext)this.geometry._storedFunction=i;else{const s=i(e);this.geometry._storedFunction=()=>(this.geometry._executionCount=1,s.clone())}}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],qre.prototype,"evaluateContext",void 0),ve("BABYLON.TorusBlock",qre);class Qre extends us{constructor(e){super(e),this.evaluateContext=!1,this.registerInput("height",ge.Float,!0,25),this.registerInput("diameter",ge.Float,!0,1),this.registerInput("diameterTop",ge.Float,!0,-1),this.registerInput("diameterBottom",ge.Float,!0,-1),this.registerInput("subdivisions",ge.Int,!0,1),this.registerInput("tessellation",ge.Int,!0,24),this.registerInput("arc",ge.Float,!0,1),this.registerOutput("geometry",ge.Geometry)}getClassName(){return"CylinderBlock"}get height(){return this._inputs[0]}get diameter(){return this._inputs[1]}get diameterTop(){return this._inputs[2]}get diameterBottom(){return this._inputs[3]}get subdivisions(){return this._inputs[4]}get tessellation(){return this._inputs[5]}get arc(){return this._inputs[6]}get geometry(){return this._outputs[0]}autoConfigure(){if(!this.diameter.isConnected){const e=new zl("Diameter");e.value=1,e.output.connectTo(this.diameter)}if(!this.height.isConnected){const e=new zl("Height");e.value=1,e.output.connectTo(this.height)}}_buildBlock(e){const t={},i=s=>(t.height=this.height.getConnectedValue(s),t.diameter=this.diameter.getConnectedValue(s),t.diameterTop=this.diameterTop.getConnectedValue(s),t.diameterBottom=this.diameterBottom.getConnectedValue(s),t.diameterTop===-1&&(t.diameterTop=t.diameter),t.diameterBottom===-1&&(t.diameterBottom=t.diameter),t.tessellation=this.tessellation.getConnectedValue(s),t.subdivisions=this.subdivisions.getConnectedValue(s),t.arc=this.arc.getConnectedValue(s),NW(t));if(this.evaluateContext)this.geometry._storedFunction=i;else{const s=i(e);this.geometry._storedFunction=()=>(this.geometry._executionCount=1,s.clone())}}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],Qre.prototype,"evaluateContext",void 0),ve("BABYLON.CylinderBlock",Qre);class Jre extends us{constructor(e){super(e),this.evaluateContext=!1,this.registerInput("height",ge.Float,!0,1),this.registerInput("radius",ge.Float,!0,.25),this.registerInput("tessellation",ge.Int,!0,16),this.registerInput("subdivisions",ge.Int,!0,2),this.registerOutput("geometry",ge.Geometry)}getClassName(){return"CapsuleBlock"}get height(){return this._inputs[0]}get radius(){return this._inputs[1]}get tessellation(){return this._inputs[2]}get subdivisions(){return this._inputs[3]}get geometry(){return this._outputs[0]}autoConfigure(){if(!this.height.isConnected){const e=new zl("Height");e.value=1,e.output.connectTo(this.height)}if(!this.radius.isConnected){const e=new zl("Radius");e.value=.2,e.output.connectTo(this.radius)}}_buildBlock(e){const t={},i=s=>(t.height=this.height.getConnectedValue(s),t.radius=this.radius.getConnectedValue(s),t.tessellation=this.tessellation.getConnectedValue(s),t.subdivisions=this.subdivisions.getConnectedValue(s),GW(t));if(this.evaluateContext)this.geometry._storedFunction=i;else{const s=i(e);this.geometry._storedFunction=()=>(this.geometry._executionCount=1,s.clone())}}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],Jre.prototype,"evaluateContext",void 0),ve("BABYLON.CapsuleBlock",Jre);class $re extends us{constructor(e){super(e),this.evaluateContext=!1,this.registerInput("radius",ge.Float,!0,.5),this.registerInput("tessellation",ge.Int,!0,64),this.registerInput("arc",ge.Float,!0,1),this.registerOutput("geometry",ge.Geometry)}getClassName(){return"DiscBlock"}get radius(){return this._inputs[0]}get tessellation(){return this._inputs[1]}get arc(){return this._inputs[2]}get geometry(){return this._outputs[0]}autoConfigure(){if(!this.radius.isConnected){const e=new zl("Radius");e.value=.2,e.output.connectTo(this.radius)}}_buildBlock(e){const t={},i=s=>(t.radius=this.radius.getConnectedValue(s),t.tessellation=this.tessellation.getConnectedValue(s),t.arc=this.arc.getConnectedValue(s),IW(t));if(this.evaluateContext)this.geometry._storedFunction=i;else{const s=i(e);this.geometry._storedFunction=()=>(this.geometry._executionCount=1,s.clone())}}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],$re.prototype,"evaluateContext",void 0),ve("BABYLON.DiscBlock",$re);class QAe extends us{constructor(e){super(e),this.registerOutput("geometry",ge.Geometry),this.registerOutput("vector",ge.Vector3)}getClassName(){return"NullBlock"}get geometry(){return this._outputs[0]}get vector(){return this._outputs[1]}_buildBlock(){this.geometry._storedValue=null,this.vector._storedValue=null}}ve("BABYLON.NullBlock",QAe);class JAe extends us{constructor(e){super(e),this.points=[],this.registerOutput("geometry",ge.Geometry)}getClassName(){return"PointListBlock"}get geometry(){return this._outputs[0]}_buildBlock(e){this.geometry._storedFunction=()=>{if(this.geometry._executionCount=1,this.points.length===0)return null;const t=new wt;return t.positions=this.points.reduce((i,s)=>(i.push(s.x,s.y,s.z),i),[]),t}}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.points = [];
`;for(let t=0;t<this.points.length;t++){const i=this.points[t];e+=`${this._codeVariableName}.points.push(new BABYLON.Vector3(${i.x}, ${i.y}, ${i.z}));
`}return e}serialize(){const e=super.serialize();return e.points=this.points.map(t=>t.asArray()),e}_deserialize(e){super._deserialize(e),this.points=e.points.map(t=>P.FromArray(t))}}ve("BABYLON.PointListBlock",JAe);class ene extends us{constructor(e){super(e),this.evaluateContext=!0,this.registerInput("geometry",ge.Geometry),this.registerInput("positions",ge.Vector3),this.registerOutput("output",ge.Geometry)}getExecutionIndex(){return this._currentIndex}getExecutionLoopIndex(){return this._currentIndex}getExecutionFaceIndex(){return 0}getClassName(){return"SetPositionsBlock"}get geometry(){return this._inputs[0]}get positions(){return this._inputs[1]}get output(){return this._outputs[0]}_remapVector3Data(e,t){const i=[];for(let s=0;s<e.length;s+=3)t[s/3]!==void 0&&i.push(e[s],e[s+1],e[s+2]);return i}_remapVector4Data(e,t){const i=[];for(let s=0;s<e.length;s+=4)t[s/4]!==void 0&&i.push(e[s],e[s+1],e[s+2],e[s+3]);return i}_remapVector2Data(e,t){const i=[];for(let s=0;s<e.length;s+=2)t[s/2]!==void 0&&i.push(e[s],e[s+1]);return i}_buildBlock(e){const t=i=>{if(i.pushExecutionContext(this),this._vertexData=this.geometry.getConnectedValue(i),this._vertexData&&(this._vertexData=this._vertexData.clone()),i.pushGeometryContext(this._vertexData),!this._vertexData||!this._vertexData.positions||!this.positions.isConnected){i.restoreGeometryContext(),i.restoreExecutionContext(),this.output._storedValue=null;return}const s={},r=this._vertexData.positions.length/3,n=[];let o=0,l=!1;for(this._currentIndex=0;this._currentIndex<r;this._currentIndex++){const c=this.positions.getConnectedValue(i);c?(c.toArray(n,o*3),s[this._currentIndex]=o,o++):l=!0}if(l){if(this._vertexData.indices){const c=[];for(let u=0;u<this._vertexData.indices.length;u+=3){const f=this._vertexData.indices[u],p=this._vertexData.indices[u+1],m=this._vertexData.indices[u+2],_=s[f],d=s[p],h=s[m];_!==void 0&&d!==void 0&&h!==void 0&&(c.push(_),c.push(d),c.push(h))}this._vertexData.indices=c}this._vertexData.normals&&(this._vertexData.normals=this._remapVector3Data(this._vertexData.normals,s)),this._vertexData.tangents&&(this._vertexData.tangents=this._remapVector4Data(this._vertexData.tangents,s)),this._vertexData.colors&&(this._vertexData.colors=this._remapVector4Data(this._vertexData.colors,s)),this._vertexData.uvs&&(this._vertexData.uvs=this._remapVector2Data(this._vertexData.uvs,s)),this._vertexData.uvs2&&(this._vertexData.uvs2=this._remapVector2Data(this._vertexData.uvs2,s)),this._vertexData.uvs3&&(this._vertexData.uvs3=this._remapVector2Data(this._vertexData.uvs3,s)),this._vertexData.uvs4&&(this._vertexData.uvs4=this._remapVector2Data(this._vertexData.uvs4,s)),this._vertexData.uvs5&&(this._vertexData.uvs5=this._remapVector2Data(this._vertexData.uvs5,s)),this._vertexData.uvs6&&(this._vertexData.uvs6=this._remapVector2Data(this._vertexData.uvs6,s))}return this._vertexData.positions=n,i.restoreGeometryContext(),i.restoreExecutionContext(),this._vertexData};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext)}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],ene.prototype,"evaluateContext",void 0),ve("BABYLON.SetPositionsBlock",ene);class tne extends us{constructor(e){super(e),this.evaluateContext=!0,this.registerInput("geometry",ge.Geometry),this.registerInput("normals",ge.Vector3),this.registerOutput("output",ge.Geometry)}getExecutionIndex(){return this._currentIndex}getExecutionLoopIndex(){return this._currentIndex}getExecutionFaceIndex(){return 0}getClassName(){return"SetNormalsBlock"}get geometry(){return this._inputs[0]}get normals(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){const t=i=>{if(i.pushExecutionContext(this),this._vertexData=this.geometry.getConnectedValue(i),this._vertexData&&(this._vertexData=this._vertexData.clone()),i.pushGeometryContext(this._vertexData),!this._vertexData||!this._vertexData.positions){i.restoreGeometryContext(),i.restoreExecutionContext(),this.output._storedValue=null;return}if(!this.normals.isConnected){i.restoreGeometryContext(),i.restoreExecutionContext(),this.output._storedValue=this._vertexData;return}this._vertexData.normals||(this._vertexData.normals=[]);const s=this._vertexData.positions.length/3;for(this._currentIndex=0;this._currentIndex<s;this._currentIndex++){const r=this.normals.getConnectedValue(i);r&&r.toArray(this._vertexData.normals,this._currentIndex*3)}return i.restoreGeometryContext(),i.restoreExecutionContext(),this._vertexData};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext)}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],tne.prototype,"evaluateContext",void 0),ve("BABYLON.SetNormalsBlock",tne);class lY extends us{constructor(e){super(e),this.evaluateContext=!0,this.textureCoordinateIndex=0,this.registerInput("geometry",ge.Geometry),this.registerInput("uvs",ge.Vector2),this.registerOutput("output",ge.Geometry)}getExecutionIndex(){return this._currentIndex}getExecutionLoopIndex(){return this._currentIndex}getExecutionFaceIndex(){return 0}getClassName(){return"SetUVsBlock"}get geometry(){return this._inputs[0]}get uvs(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){const t=i=>{if(i.pushExecutionContext(this),this._vertexData=this.geometry.getConnectedValue(i),this._vertexData&&(this._vertexData=this._vertexData.clone()),i.pushGeometryContext(this._vertexData),!this._vertexData||!this._vertexData.positions){i.restoreGeometryContext(),i.restoreExecutionContext(),this.output._storedValue=null;return}if(!this.uvs.isConnected){i.restoreGeometryContext(),i.restoreExecutionContext(),this.output._storedValue=this._vertexData;return}const s=[],r=this._vertexData.positions.length/3;for(this._currentIndex=0;this._currentIndex<r;this._currentIndex++){const n=this.uvs.getConnectedValue(i);n&&n.toArray(s,this._currentIndex*2)}switch(this.textureCoordinateIndex){case 0:this._vertexData.uvs=s;break;case 1:this._vertexData.uvs2=s;break;case 2:this._vertexData.uvs3=s;break;case 3:this._vertexData.uvs4=s;break;case 4:this._vertexData.uvs5=s;break;case 5:this._vertexData.uvs6=s;break}return i.restoreGeometryContext(),i.restoreExecutionContext(),this._vertexData};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.textureCoordinateIndex};
`;return e+=`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`,e}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e.textureCoordinateIndex=this.textureCoordinateIndex,e}_deserialize(e){super._deserialize(e),this.textureCoordinateIndex=e.textureCoordinateIndex,e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext)}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],lY.prototype,"evaluateContext",void 0),F([lt("Texture coordinates index",4,"ADVANCED",{notifiers:{update:!0},embedded:!0,options:[{label:"UV1",value:0},{label:"UV2",value:1},{label:"UV3",value:2},{label:"UV4",value:3},{label:"UV5",value:4},{label:"UV6",value:5}]})],lY.prototype,"textureCoordinateIndex",void 0),ve("BABYLON.SetUVsBlock",lY);class ine extends us{constructor(e){super(e),this.evaluateContext=!0,this.registerInput("geometry",ge.Geometry),this.registerInput("colors",ge.AutoDetect),this.registerOutput("output",ge.Geometry),this._inputs[1].excludedConnectionPointTypes.push(ge.Int),this._inputs[1].excludedConnectionPointTypes.push(ge.Float),this._inputs[1].excludedConnectionPointTypes.push(ge.Vector2),this._inputs[1].excludedConnectionPointTypes.push(ge.Texture),this._inputs[1].excludedConnectionPointTypes.push(ge.Texture)}getExecutionIndex(){return this._currentIndex}getExecutionLoopIndex(){return this._currentIndex}getExecutionFaceIndex(){return 0}getClassName(){return"SetColorsBlock"}get geometry(){return this._inputs[0]}get colors(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){const t=i=>{var r;if(i.pushExecutionContext(this),this._vertexData=this.geometry.getConnectedValue(i),this._vertexData&&(this._vertexData=this._vertexData.clone()),i.pushGeometryContext(this._vertexData),!this._vertexData||!this._vertexData.positions){i.restoreGeometryContext(),i.restoreExecutionContext(),this.output._storedValue=null;return}if(!this.colors.isConnected){i.restoreGeometryContext(),i.restoreExecutionContext(),this.output._storedValue=this._vertexData;return}this._vertexData.colors||(this._vertexData.colors=[]);const s=this._vertexData.positions.length/3;for(this._currentIndex=0;this._currentIndex<s;this._currentIndex++)if(((r=this.colors.connectedPoint)==null?void 0:r.type)===ge.Vector3){const n=this.colors.getConnectedValue(i);n&&(n.toArray(this._vertexData.colors,this._currentIndex*4),this._vertexData.colors[this._currentIndex*4+3]=1,this._vertexData.hasVertexAlpha=!1)}else{const n=this.colors.getConnectedValue(i);n&&(n.toArray(this._vertexData.colors,this._currentIndex*4),this._vertexData.hasVertexAlpha=!0)}return i.restoreGeometryContext(),i.restoreExecutionContext(),this._vertexData};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext)}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],ine.prototype,"evaluateContext",void 0),ve("BABYLON.SetColorsBlock",ine);class sne extends us{constructor(e){super(e),this.evaluateContext=!0,this.registerInput("geometry",ge.Geometry),this.registerInput("tangents",ge.Vector4),this.registerOutput("output",ge.Geometry)}getExecutionIndex(){return this._currentIndex}getExecutionLoopIndex(){return this._currentIndex}getExecutionFaceIndex(){return 0}getClassName(){return"SetTangentsBlock"}get geometry(){return this._inputs[0]}get tangents(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){const t=i=>{if(i.pushExecutionContext(this),this._vertexData=this.geometry.getConnectedValue(i),this._vertexData&&(this._vertexData=this._vertexData.clone()),i.pushGeometryContext(this._vertexData),!this._vertexData||!this._vertexData.positions){i.restoreGeometryContext(),i.restoreExecutionContext(),this.output._storedValue=null;return}if(!this.tangents.isConnected){i.restoreGeometryContext(),i.restoreExecutionContext(),this.output._storedValue=this._vertexData;return}this._vertexData.tangents||(this._vertexData.tangents=[]);const s=this._vertexData.positions.length/3;for(this._currentIndex=0;this._currentIndex<s;this._currentIndex++){const r=this.tangents.getConnectedValue(i);r&&r.toArray(this._vertexData.tangents,this._currentIndex*4)}return i.restoreGeometryContext(),i.restoreExecutionContext(),this._vertexData};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext)}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],sne.prototype,"evaluateContext",void 0),ve("BABYLON.SetTangentsBlock",sne);var e2;(function(a){a[a.Add=0]="Add",a[a.Subtract=1]="Subtract",a[a.Multiply=2]="Multiply",a[a.Divide=3]="Divide",a[a.Max=4]="Max",a[a.Min=5]="Min"})(e2||(e2={}));class rne extends us{constructor(e){super(e),this.operation=e2.Add,this.registerInput("left",ge.AutoDetect),this.registerInput("right",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this.output._typeConnectionSource=this.left;const t=[ge.Matrix,ge.Geometry,ge.Texture];this.left.excludedConnectionPointTypes.push(...t),this.right.excludedConnectionPointTypes.push(...t),this._linkConnectionTypes(0,1),this._connectionObservers=[this.left.onConnectionObservable.add(()=>this._updateInputOutputTypes()),this.left.onDisconnectionObservable.add(()=>this._updateInputOutputTypes()),this.right.onConnectionObservable.add(()=>this._updateInputOutputTypes()),this.right.onDisconnectionObservable.add(()=>this._updateInputOutputTypes())]}getClassName(){return"MathBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){let e;const t=this.left,i=this.right;if(!t.isConnected||!i.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}const s=t.type===ge.Float||t.type===ge.Int,r=i.type===ge.Float||i.type===ge.Int,n=s&&r;switch(this.operation){case e2.Add:{n?e=o=>t.getConnectedValue(o)+i.getConnectedValue(o):s?e=o=>o.adapt(t,i.type).add(i.getConnectedValue(o)):e=o=>t.getConnectedValue(o).add(o.adapt(i,t.type));break}case e2.Subtract:{n?e=o=>t.getConnectedValue(o)-i.getConnectedValue(o):s?e=o=>o.adapt(t,i.type).subtract(i.getConnectedValue(o)):e=o=>t.getConnectedValue(o).subtract(o.adapt(i,t.type));break}case e2.Multiply:{n?e=o=>t.getConnectedValue(o)*i.getConnectedValue(o):s?e=o=>o.adapt(t,i.type).multiply(i.getConnectedValue(o)):e=o=>t.getConnectedValue(o).multiply(o.adapt(i,t.type));break}case e2.Divide:{n?e=o=>t.getConnectedValue(o)/i.getConnectedValue(o):s?e=o=>o.adapt(t,i.type).divide(i.getConnectedValue(o)):e=o=>t.getConnectedValue(o).divide(o.adapt(i,t.type));break}case e2.Min:{if(n)e=o=>Math.min(t.getConnectedValue(o),i.getConnectedValue(o));else{const[o,l]=s?[i,t]:[t,i];switch(o.type){case ge.Vector2:{e=c=>Ue.Minimize(o.getConnectedValue(c),c.adapt(l,o.type));break}case ge.Vector3:{e=c=>P.Minimize(o.getConnectedValue(c),c.adapt(l,o.type));break}case ge.Vector4:{e=c=>Yt.Minimize(o.getConnectedValue(c),c.adapt(l,o.type));break}}}break}case e2.Max:if(n)e=o=>Math.max(t.getConnectedValue(o),i.getConnectedValue(o));else{const[o,l]=s?[i,t]:[t,i];switch(o.type){case ge.Vector2:{e=c=>Ue.Maximize(o.getConnectedValue(c),c.adapt(l,o.type));break}case ge.Vector3:{e=c=>P.Maximize(o.getConnectedValue(c),c.adapt(l,o.type));break}case ge.Vector4:{e=c=>Yt.Maximize(o.getConnectedValue(c),c.adapt(l,o.type));break}}break}}this.output._storedFunction=o=>t.type===ge.Int?e(o)|0:e(o)}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.operation = BABYLON.MathBlockOperations.${e2[this.operation]};
`}_updateInputOutputTypes(){if(this.output._typeConnectionSource=this.left,this.left.isConnected&&this.right.isConnected?(this.left.type===ge.Int||this.left.type===ge.Float&&this.right.type!==ge.Int)&&(this.output._typeConnectionSource=this.right):this.left.isConnected!==this.right.isConnected&&(this.output._typeConnectionSource=this.left.isConnected?this.left:this.right),this.left.isConnected||this.right.isConnected)for(const[e,t]of[[this.left,this.right],[this.right,this.left]])e.acceptedConnectionPointTypes=[ge.Int,ge.Float],t.isConnected&&(e.acceptedConnectionPointTypes.push(t.type),(t.type===ge.Int||t.type===ge.Float)&&e.acceptedConnectionPointTypes.push(ge.Vector2,ge.Vector3,ge.Vector4))}dispose(){super.dispose(),this._connectionObservers.forEach(e=>e.remove()),this._connectionObservers.length=0}serialize(){const e=super.serialize();return e.operation=this.operation,e}_deserialize(e){super._deserialize(e),this.operation=e.operation}}F([lt("Operation",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"Add",value:e2.Add},{label:"Subtract",value:e2.Subtract},{label:"Multiply",value:e2.Multiply},{label:"Divide",value:e2.Divide},{label:"Max",value:e2.Max},{label:"Min",value:e2.Min}]})],rne.prototype,"operation",void 0),ve("BABYLON.MathBlock",rne);class $Ae extends us{constructor(e){super(e),this.registerInput("value",ge.AutoDetect),this.registerInput("fromMin",ge.Float,!0,0),this.registerInput("fromMax",ge.Float,!0,1),this.registerInput("toMin",ge.Float,!0,0),this.registerInput("toMax",ge.Float,!0,1),this.registerOutput("output",ge.BasedOnInput),this._inputs[0].excludedConnectionPointTypes.push(ge.Vector2),this._inputs[0].excludedConnectionPointTypes.push(ge.Vector3),this._inputs[0].excludedConnectionPointTypes.push(ge.Vector4),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture),this._outputs[0]._typeConnectionSource=this._inputs[0]}getClassName(){return"MapRangeBlock"}get value(){return this._inputs[0]}get fromMin(){return this._inputs[1]}get fromMax(){return this._inputs[2]}get toMin(){return this._inputs[3]}get toMax(){return this._inputs[4]}get output(){return this._outputs[0]}_buildBlock(){if(!this.value.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}this.output._storedFunction=e=>{const t=this.value.getConnectedValue(e),i=this.fromMin.getConnectedValue(e),s=this.fromMax.getConnectedValue(e),r=this.toMin.getConnectedValue(e),n=this.toMax.getConnectedValue(e),o=(t-i)/(s-i)*(n-r)+r;return this.output.type===ge.Int?Math.floor(o):o}}}ve("BABYLON.MapRangeBlock",$Ae);var jc;(function(a){a[a.Equal=0]="Equal",a[a.NotEqual=1]="NotEqual",a[a.LessThan=2]="LessThan",a[a.GreaterThan=3]="GreaterThan",a[a.LessOrEqual=4]="LessOrEqual",a[a.GreaterOrEqual=5]="GreaterOrEqual",a[a.Xor=6]="Xor",a[a.Or=7]="Or",a[a.And=8]="And"})(jc||(jc={}));class cY extends us{constructor(e){super(e),this.test=jc.Equal,this.epsilon=0,this.registerInput("left",ge.Float),this.registerInput("right",ge.Float,!0,0),this.registerInput("ifTrue",ge.AutoDetect,!0,1),this.registerInput("ifFalse",ge.AutoDetect,!0,0),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[2],this._outputs[0]._defaultConnectionPointType=ge.Float,this._inputs[0].acceptedConnectionPointTypes.push(ge.Int),this._inputs[1].acceptedConnectionPointTypes.push(ge.Int),this._linkConnectionTypes(2,3)}getClassName(){return"ConditionBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get ifTrue(){return this._inputs[2]}get ifFalse(){return this._inputs[3]}get output(){return this._outputs[0]}autoConfigure(e){if(!this.ifTrue.isConnected){const t=e.getBlockByPredicate(i=>i.isInput&&i.value===1&&i.name==="True")||new zl("True");t.value=1,t.output.connectTo(this.ifTrue)}if(!this.ifFalse.isConnected){const t=e.getBlockByPredicate(i=>i.isInput&&i.value===0&&i.name==="False")||new zl("False");t.value=0,t.output.connectTo(this.ifFalse)}}_buildBlock(){if(!this.left.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}const e=t=>{const i=this.left.getConnectedValue(t),s=this.right.getConnectedValue(t);let r=!1;switch(this.test){case jc.Equal:r=Lr(i,s,this.epsilon);break;case jc.NotEqual:r=!Lr(i,s,this.epsilon);break;case jc.LessThan:r=i<s+this.epsilon;break;case jc.GreaterThan:r=i>s-this.epsilon;break;case jc.LessOrEqual:r=i<=s+this.epsilon;break;case jc.GreaterOrEqual:r=i>=s-this.epsilon;break;case jc.Xor:r=!!i&&!s||!i&&!!s;break;case jc.Or:r=!!i||!!s;break;case jc.And:r=!!i&&!!s;break}return r};this.output._storedFunction=t=>e(t)?this.ifTrue.getConnectedValue(t):this.ifFalse.getConnectedValue(t)}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.test = BABYLON.ConditionBlockTests.${jc[this.test]};
`;return e+=`${this._codeVariableName}.epsilon = ${this.epsilon};
`,e}serialize(){const e=super.serialize();return e.test=this.test,e.epsilon=this.epsilon,e}_deserialize(e){super._deserialize(e),this.test=e.test,e.epsilon!==void 0&&(this.epsilon=e.epsilon)}}F([lt("Test",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"Equal",value:jc.Equal},{label:"NotEqual",value:jc.NotEqual},{label:"LessThan",value:jc.LessThan},{label:"GreaterThan",value:jc.GreaterThan},{label:"LessOrEqual",value:jc.LessOrEqual},{label:"GreaterOrEqual",value:jc.GreaterOrEqual},{label:"Xor",value:jc.Xor},{label:"Or",value:jc.Or},{label:"And",value:jc.And}]})],cY.prototype,"test",void 0),F([lt("Epsilon",1,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],cY.prototype,"epsilon",void 0),ve("BABYLON.ConditionBlock",cY);var g3;(function(a){a[a.None=0]="None",a[a.LoopID=1]="LoopID",a[a.InstanceID=2]="InstanceID",a[a.Once=3]="Once"})(g3||(g3={}));class nne extends us{constructor(e){super(e),this._currentLockId=-1,this.lockMode=g3.None,this.registerInput("min",ge.AutoDetect),this.registerInput("max",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture),this._inputs[1].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[1].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[1].excludedConnectionPointTypes.push(ge.Texture),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1)}getClassName(){return"RandomBlock"}get min(){return this._inputs[0]}get max(){return this._inputs[1]}get output(){return this._outputs[0]}autoConfigure(){if(!this.min.isConnected){const e=new zl("Min");e.value=0,e.output.connectTo(this.min)}if(!this.max.isConnected){const e=new zl("Max");e.value=1,e.output.connectTo(this.max)}}_buildBlock(){let e=null;switch(this._currentLockId=-1,this.min.type){case ge.Int:case ge.Float:{e=t=>{const i=this.min.getConnectedValue(t)||0,s=this.max.getConnectedValue(t)||0;return i+Math.random()*(s-i)};break}case ge.Vector2:{e=t=>{const i=this.min.getConnectedValue(t)||Ue.Zero(),s=this.max.getConnectedValue(t)||Ue.Zero();return new Ue(i.x+Math.random()*(s.x-i.x),i.y+Math.random()*(s.y-i.y))};break}case ge.Vector3:{e=t=>{const i=this.min.getConnectedValue(t)||P.Zero(),s=this.max.getConnectedValue(t)||P.Zero();return new P(i.x+Math.random()*(s.x-i.x),i.y+Math.random()*(s.y-i.y),i.z+Math.random()*(s.z-i.z))};break}case ge.Vector4:{e=t=>{const i=this.min.getConnectedValue(t)||Yt.Zero(),s=this.max.getConnectedValue(t)||Yt.Zero();return new Yt(i.x+Math.random()*(s.x-i.x),i.y+Math.random()*(s.y-i.y),i.z+Math.random()*(s.z-i.z),i.w+Math.random()*(s.w-i.w))};break}}this.lockMode===g3.None||!e?this.output._storedFunction=e:this.output._storedFunction=t=>{let i=0;switch(this.lockMode){case g3.InstanceID:i=t.getContextualValue(Er.InstanceID,!0)||0;break;case g3.LoopID:i=t.getContextualValue(Er.LoopID,!0)||0;break;case g3.Once:i=t.buildId||0;break}return(this._currentLockId!==i||this.lockMode===g3.None)&&(this._currentLockId=i,this.output._storedValue=e(t)),this.output._storedValue}}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.lockMode = BABYLON.RandomBlockLocks.${g3[this.lockMode]};
`}serialize(){const e=super.serialize();return e.lockMode=this.lockMode,e}_deserialize(e){super._deserialize(e),this.lockMode=e.lockMode}}F([lt("LockMode",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"None",value:g3.None},{label:"LoopID",value:g3.LoopID},{label:"InstanceID",value:g3.InstanceID},{label:"Once",value:g3.Once}]})],nne.prototype,"lockMode",void 0),ve("BABYLON.RandomBlock",nne);class eCe extends us{constructor(e){super(e),this.registerInput("offset",ge.Vector3,!0,P.Zero()),this.registerInput("scale",ge.Float,!0,1),this.registerInput("octaves",ge.Float,!0,2,0,16),this.registerInput("roughness",ge.Float,!0,.5,0,1),this.registerOutput("output",ge.Float)}getClassName(){return"NoiseBlock"}get offset(){return this._inputs[0]}get scale(){return this._inputs[1]}get octaves(){return this._inputs[2]}get roughness(){return this._inputs[3]}get output(){return this._outputs[0]}_negateIf(e,t){return t!==0?-e:e}_noiseGrad(e,t,i,s){const r=e&15,n=r<8?t:i,o=r===12||r==14?t:s,l=r<4?i:o;return this._negateIf(n,r&n)+this._negateIf(l,r&2)}_fade(e){return e*e*e*(e*(e*6-15)+10)}_hashBitRotate(e,t){return e<<t|e>>32-t}_hash(e,t,i){let s,r,n;return s=r=n=3735928584,n+=i,r+=t,s+=e,n^=r,n-=this._hashBitRotate(r,14),s^=n,s-=this._hashBitRotate(n,11),r^=s,r-=this._hashBitRotate(s,25),n^=r,n-=this._hashBitRotate(r,16),s^=n,s-=this._hashBitRotate(n,4),r^=s,r-=this._hashBitRotate(s,14),n^=r,n-=this._hashBitRotate(r,24),n}_mix(e,t,i,s,r,n,o,l,c,u,f){const p=1-c,m=1-u;return(1-f)*(m*(e*p+t*c)+u*(i*p+s*c))+f*(m*(r*p+n*c)+u*(o*p+l*c))}_perlinNoise(e){const t=(e.x|0)-(e.x<0?1:0),i=(e.y|0)-(e.y<0?1:0),s=(e.z|0)-(e.z<0?1:0),r=e.x-t,n=e.y-i,o=e.z-s,l=this._fade(r),c=this._fade(n),u=this._fade(o);return this._mix(this._noiseGrad(this._hash(t,i,s),r,n,o),this._noiseGrad(this._hash(t+1,i,s),r-1,n,o),this._noiseGrad(this._hash(t,i+1,s),r,n-1,o),this._noiseGrad(this._hash(t+1,i+1,s),r-1,n-1,o),this._noiseGrad(this._hash(t,i,s+1),r,n,o-1),this._noiseGrad(this._hash(t+1,i,s+1),r-1,n,o-1),this._noiseGrad(this._hash(t,i+1,s+1),r,n-1,o-1),this._noiseGrad(this._hash(t+1,i+1,s+1),r-1,n-1,o-1),l,c,u)}_perlinSigned(e){return this._perlinNoise(e)*.982}_perlin(e){return this._perlinSigned(e)/2+.5}noise(e,t,i,s,r){const n=new P(i.x*r+s.x,i.y*r+s.y,i.z*r+s.z);let o=1,l=1,c=0,u=0;e=Os(e,0,15);const f=e|0;for(let d=0;d<=f;d++){const h=this._perlin(n.scale(o));u+=h*l,c+=l,l*=Os(t,0,1),o*=2}const p=e-Math.floor(e);if(p==0)return u/c;const m=this._perlin(n.scale(o));let _=u+m*l;return u/=c,_/=c+l,(1-p)*u+p*_}_buildBlock(){this.output._storedFunction=e=>{const t=e.getContextualValue(Er.Positions),i=this.octaves.getConnectedValue(e),s=this.roughness.getConnectedValue(e),r=this.offset.getConnectedValue(e),n=this.scale.getConnectedValue(e);return this.noise(i,s,t,r,n)}}}ve("BABYLON.NoiseBlock",eCe);class ane extends us{constructor(e){super(e),this.evaluateContext=!1,this.registerInput("geometry0",ge.Geometry),this.registerInput("geometry1",ge.Geometry,!0),this.registerInput("geometry2",ge.Geometry,!0),this.registerInput("geometry3",ge.Geometry,!0),this.registerInput("geometry4",ge.Geometry,!0),this.registerOutput("output",ge.Geometry)}getClassName(){return"MergeGeometryBlock"}get geometry0(){return this._inputs[0]}get geometry1(){return this._inputs[1]}get geometry2(){return this._inputs[2]}get geometry3(){return this._inputs[3]}get geometry4(){return this._inputs[4]}get output(){return this._outputs[0]}_buildBlock(e){const t=i=>{const s=[];if(this.geometry0.isConnected){const o=this.geometry0.getConnectedValue(i);o&&s.push(o)}if(this.geometry1.isConnected){const o=this.geometry1.getConnectedValue(i);o&&s.push(o)}if(this.geometry2.isConnected){const o=this.geometry2.getConnectedValue(i);o&&s.push(o)}if(this.geometry3.isConnected){const o=this.geometry3.getConnectedValue(i);o&&s.push(o)}if(this.geometry4.isConnected){const o=this.geometry4.getConnectedValue(i);o&&s.push(o)}if(s.length===0)return null;let r=s[0].clone();const n=s.slice(1);return n.length&&r&&(r=r.merge(n,!0,!1,!0,!0)),r};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],ane.prototype,"evaluateContext",void 0),ve("BABYLON.MergeGeometryBlock",ane);class one extends us{constructor(e){super(e),this.evaluateContext=!0,this.registerInput("geometry0",ge.Geometry,!0),this.registerInput("geometry1",ge.Geometry,!0),this.registerInput("geometry2",ge.Geometry,!0),this.registerInput("geometry3",ge.Geometry,!0),this.registerInput("geometry4",ge.Geometry,!0),this.registerInput("geometry5",ge.Geometry,!0),this.registerInput("geometry6",ge.Geometry,!0),this.registerInput("geometry7",ge.Geometry,!0),this.registerInput("geometry8",ge.Geometry,!0),this.registerInput("geometry9",ge.Geometry,!0),this.registerOutput("output",ge.Geometry),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1)}getClassName(){return"GeometryCollectionBlock"}get geometry0(){return this._inputs[0]}get geometry1(){return this._inputs[1]}get geometry2(){return this._inputs[2]}get geometry3(){return this._inputs[3]}get geometry4(){return this._inputs[4]}get geometry5(){return this._inputs[5]}get geometry6(){return this._inputs[6]}get geometry7(){return this._inputs[7]}get geometry8(){return this._inputs[8]}get geometry9(){return this._inputs[9]}get output(){return this._outputs[0]}_storeGeometry(e,t,i,s){if(e.isConnected){const r=e.getConnectedValue(t);if(!r)return;r.metadata=r.metadata||{},r.metadata.collectionId=i,s.push(r)}}_buildBlock(e){const t=i=>{const s=[];return this._storeGeometry(this.geometry0,i,0,s),this._storeGeometry(this.geometry1,i,1,s),this._storeGeometry(this.geometry2,i,2,s),this._storeGeometry(this.geometry3,i,3,s),this._storeGeometry(this.geometry4,i,4,s),this._storeGeometry(this.geometry5,i,5,s),this._storeGeometry(this.geometry6,i,6,s),this._storeGeometry(this.geometry7,i,7,s),this._storeGeometry(this.geometry8,i,8,s),this._storeGeometry(this.geometry9,i,9,s),s.length?s[Math.round(Math.random()*(s.length-1))]:null};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],one.prototype,"evaluateContext",void 0),ve("BABYLON.GeometryCollectionBlock",one);class lne extends us{constructor(e){super(e),this.evaluateContext=!0,this.registerInput("geometry",ge.Geometry),this.registerOutput("output",ge.Geometry)}getClassName(){return"CleanGeometryBlock"}get geometry(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){const t=i=>{if(!this.geometry.isConnected)return null;const s=this.geometry.getConnectedValue(i).clone();if(!s.positions||!s.indices||!s.normals)return s;const r=s.indices,n=s.positions;return whe(n,r),s};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],lne.prototype,"evaluateContext",void 0),ve("BABYLON.CleanGeometryBlock",lne);class tCe extends us{constructor(e){super(e),this.registerInput("input",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0]}get buildExecutionTime(){return-1}getClassName(){return"GeometryElbowBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=this._inputs[0];t._storedFunction=s=>i.getConnectedValue(s)}}ve("BABYLON.GeometryElbowBlock",tCe);class iCe extends us{constructor(e){super(e),this.registerInput("geometry",ge.Geometry),this.registerOutput("output",ge.Geometry)}getClassName(){return"ComputeNormalsBlock"}get geometry(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(){this.output._storedFunction=e=>{if(!this.geometry.isConnected)return null;const t=this.geometry.getConnectedValue(e);return t?(t.normals||(t.normals=[]),wt.ComputeNormals(t.positions,t.indices,t.normals),t):null}}}ve("BABYLON.ComputeNormalsBlock",iCe);class sCe extends us{constructor(e){super(e),this.registerInput("xyzw ",ge.Vector4,!0),this.registerInput("xyz ",ge.Vector3,!0),this.registerInput("xy ",ge.Vector2,!0),this.registerInput("zw ",ge.Vector2,!0),this.registerInput("x ",ge.Float,!0),this.registerInput("y ",ge.Float,!0),this.registerInput("z ",ge.Float,!0),this.registerInput("w ",ge.Float,!0),this.registerOutput("xyzw",ge.Vector4),this.registerOutput("xyz",ge.Vector3),this.registerOutput("xy",ge.Vector2),this.registerOutput("zw",ge.Vector2),this.registerOutput("x",ge.Float),this.registerOutput("y",ge.Float),this.registerOutput("z",ge.Float),this.registerOutput("w",ge.Float)}getClassName(){return"VectorConverterBlock"}get xyzwIn(){return this._inputs[0]}get xyzIn(){return this._inputs[1]}get xyIn(){return this._inputs[2]}get zwIn(){return this._inputs[3]}get xIn(){return this._inputs[4]}get yIn(){return this._inputs[5]}get zIn(){return this._inputs[6]}get wIn(){return this._inputs[7]}get xyzwOut(){return this._outputs[0]}get xyzOut(){return this._outputs[1]}get xyOut(){return this._outputs[2]}get zwOut(){return this._outputs[3]}get xOut(){return this._outputs[4]}get yOut(){return this._outputs[5]}get zOut(){return this._outputs[6]}get wOut(){return this._outputs[7]}_inputRename(e){return e==="xyzw "?"xyzwIn":e==="xyz "?"xyzIn":e==="xy "?"xyIn":e==="zw "?"zwIn":e==="x "?"xIn":e==="y "?"yIn":e==="z "?"zIn":e==="w "?"wIn":e}_outputRename(e){switch(e){case"x":return"xOut";case"y":return"yOut";case"z":return"zOut";case"w":return"wOut";case"xy":return"xyOut";case"zw":return"zwOut";case"xyz":return"xyzOut";case"xyzw":return"xyzwOut";default:return e}}_buildBlock(e){super._buildBlock(e);const t=this.xIn,i=this.yIn,s=this.zIn,r=this.wIn,n=this.xyIn,o=this.zwIn,l=this.xyzIn,c=this.xyzwIn,u=this.xyzwOut,f=this.xyzOut,p=this.xyOut,m=this.zwOut,_=this.xOut,d=this.yOut,h=this.zOut,x=this.wOut,A=S=>{if(c.isConnected)return c.getConnectedValue(S);let E=0,b=0,M=0,T=0;if(t.isConnected&&(E=t.getConnectedValue(S)),i.isConnected&&(b=i.getConnectedValue(S)),s.isConnected&&(M=s.getConnectedValue(S)),r.isConnected&&(T=r.getConnectedValue(S)),n.isConnected){const O=n.getConnectedValue(S);O&&(E=O.x,b=O.y)}if(o.isConnected){const O=o.getConnectedValue(S);O&&(M=O.x,T=O.y)}if(l.isConnected){const O=l.getConnectedValue(S);O&&(E=O.x,b=O.y,M=O.z)}return new Yt(E,b,M,T)};u._storedFunction=S=>A(S),f._storedFunction=S=>{const E=A(S);return new P(E.x,E.y,E.z)},p._storedFunction=S=>{const E=A(S);return new Ue(E.x,E.y)},m._storedFunction=S=>{const E=A(S);return new Ue(E.z,E.w)},_._storedFunction=S=>A(S).x,d._storedFunction=S=>A(S).y,h._storedFunction=S=>A(S).z,x._storedFunction=S=>A(S).w}}ve("BABYLON.VectorConverterBlock",sCe);class rCe extends us{constructor(e){super(e),this.registerInput("input",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._inputs[0].excludedConnectionPointTypes.push(ge.Float),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture),this._outputs[0]._typeConnectionSource=this._inputs[0]}getClassName(){return"NormalizeVectorBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){if(super._buildBlock(e),this.output._storedFunction=null,!this.input.isConnected){this.output._storedValue=null;return}this.output._storedFunction=t=>this.input.getConnectedValue(t).normalize()}}ve("BABYLON.NormalizeVectorBlock",rCe);class cne extends us{constructor(e){super(e),this.evaluateContext=!0,this.registerInput("geometry",ge.Geometry),this.registerInput("id",ge.Int,!0,0),this.registerOutput("output",ge.Geometry),this.id.acceptedConnectionPointTypes.push(ge.Float)}getClassName(){return"SetMaterialIDBlock"}get geometry(){return this._inputs[0]}get id(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){if(!this.geometry.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}const t=i=>{const s=this.geometry.getConnectedValue(i);if(!s||!s.indices||!s.positions)return s;const r=new Sw;return r.materialIndex=this.id.getConnectedValue(i)|0,r.indexStart=0,r.indexCount=s.indices.length,r.verticesStart=0,r.verticesCount=s.positions.length/3,s.materialInfos=[r],s};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext)}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],cne.prototype,"evaluateContext",void 0),ve("BABYLON.SetMaterialIDBlock",cne);class LO extends us{constructor(e){super(e),this._indexVector3=new P,this._currentControl=new P,this.evaluateContext=!0,this.resolutionX=3,this.resolutionY=3,this.resolutionZ=3,this.registerInput("geometry",ge.Geometry),this.registerInput("controls",ge.Vector3),this.registerOutput("output",ge.Geometry)}getExecutionIndex(){return this._currentIndexX+this.resolutionX*(this._currentIndexY+this.resolutionY*this._currentIndexZ)}getExecutionLoopIndex(){return this.getExecutionIndex()}getExecutionFaceIndex(){return 0}getClassName(){return"LatticeBlock"}get geometry(){return this._inputs[0]}get controls(){return this._inputs[1]}get output(){return this._outputs[0]}getOverridePositionsContextualValue(){return this._indexVector3}getOverrideNormalsContextualValue(){return this._currentControl}_buildBlock(e){const t=i=>{if(i.pushExecutionContext(this),this._vertexData=this.geometry.getConnectedValue(i),this._vertexData&&(this._vertexData=this._vertexData.clone()),!this._vertexData||!this._vertexData.positions){i.restoreExecutionContext(),this.output._storedValue=null;return}const s=this._vertexData.positions,r=vy(s,0,s.length/3),n=r.maximum.subtract(r.minimum);for(this._lattice=new NAe({resolutionX:this.resolutionX,resolutionY:this.resolutionY,resolutionZ:this.resolutionZ,size:n,position:r.minimum.add(n.scale(.5))}),this._currentIndexX=0;this._currentIndexX<this.resolutionX;this._currentIndexX++)for(this._currentIndexY=0;this._currentIndexY<this.resolutionY;this._currentIndexY++)for(this._currentIndexZ=0;this._currentIndexZ<this.resolutionZ;this._currentIndexZ++){this._indexVector3.set(this._currentIndexX,this._currentIndexY,this._currentIndexZ);const o=this._lattice.data[this._currentIndexX][this._currentIndexY][this._currentIndexZ];this._currentControl.copyFrom(o);const l=this.controls.getConnectedValue(i);l&&o.set(l.x,l.y,l.z)}return this._lattice.deform(s),i.restoreExecutionContext(),this._vertexData};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`;return e+=`${this._codeVariableName}.resolutionX = ${this.resolutionX};
`,e+=`${this._codeVariableName}.resolutionY = ${this.resolutionY};
`,e+=`${this._codeVariableName}.resolutionZ = ${this.resolutionZ};
`,e}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e.resolutionX=this.resolutionX,e.resolutionY=this.resolutionY,e.resolutionZ=this.resolutionZ,e}_deserialize(e){super._deserialize(e),e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext,this.resolutionX=e.resolutionX,this.resolutionY=e.resolutionY,this.resolutionZ=e.resolutionZ)}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],LO.prototype,"evaluateContext",void 0),F([lt("resolutionX",2,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0},min:1,max:10})],LO.prototype,"resolutionX",void 0),F([lt("resolutionY",2,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0},min:1,max:10})],LO.prototype,"resolutionY",void 0),F([lt("resolutionZ",2,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0},min:1,max:10})],LO.prototype,"resolutionZ",void 0),ve("BABYLON.LatticeBlock",LO);var Tr;(function(a){a[a.Cos=0]="Cos",a[a.Sin=1]="Sin",a[a.Abs=2]="Abs",a[a.Exp=3]="Exp",a[a.Round=4]="Round",a[a.Floor=5]="Floor",a[a.Ceiling=6]="Ceiling",a[a.Sqrt=7]="Sqrt",a[a.Log=8]="Log",a[a.Tan=9]="Tan",a[a.ArcTan=10]="ArcTan",a[a.ArcCos=11]="ArcCos",a[a.ArcSin=12]="ArcSin",a[a.Sign=13]="Sign",a[a.Negate=14]="Negate",a[a.OneMinus=15]="OneMinus",a[a.Reciprocal=16]="Reciprocal",a[a.ToDegrees=17]="ToDegrees",a[a.ToRadians=18]="ToRadians",a[a.Fract=19]="Fract",a[a.Exp2=20]="Exp2"})(Tr||(Tr={}));class une extends us{constructor(e){super(e),this.operation=Tr.Cos,this.registerInput("input",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture)}getClassName(){return"GeometryTrigonometryBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);let t=null;switch(this.operation){case Tr.Cos:{t=i=>Math.cos(i);break}case Tr.Sin:{t=i=>Math.sin(i);break}case Tr.Abs:{t=i=>Math.abs(i);break}case Tr.Exp:{t=i=>Math.exp(i);break}case Tr.Exp2:{t=i=>Math.pow(2,i);break}case Tr.Round:{t=i=>Math.round(i);break}case Tr.Floor:{t=i=>Math.floor(i);break}case Tr.Ceiling:{t=i=>Math.ceil(i);break}case Tr.Sqrt:{t=i=>Math.sqrt(i);break}case Tr.Log:{t=i=>Math.log(i);break}case Tr.Tan:{t=i=>Math.tan(i);break}case Tr.ArcTan:{t=i=>Math.atan(i);break}case Tr.ArcCos:{t=i=>Math.acos(i);break}case Tr.ArcSin:{t=i=>Math.asin(i);break}case Tr.Sign:{t=i=>Math.sign(i);break}case Tr.Negate:{t=i=>-i;break}case Tr.OneMinus:{t=i=>1-i;break}case Tr.Reciprocal:{t=i=>1/i;break}case Tr.ToRadians:{t=i=>i*Math.PI/180;break}case Tr.ToDegrees:{t=i=>i*180/Math.PI;break}case Tr.Fract:{t=i=>i>=0?i-Math.floor(i):i-Math.ceil(i);break}}if(!t){this.output._storedFunction=null,this.output._storedValue=null;return}switch(this.input.type){case ge.Int:case ge.Float:{this.output._storedFunction=i=>{const s=this.input.getConnectedValue(i);return t(s)};break}case ge.Vector2:{this.output._storedFunction=i=>{const s=this.input.getConnectedValue(i);return new Ue(t(s.x),t(s.y))};break}case ge.Vector3:{this.output._storedFunction=i=>{const s=this.input.getConnectedValue(i);return new P(t(s.x),t(s.y),t(s.z))};break}case ge.Vector4:{this.output._storedFunction=i=>{const s=this.input.getConnectedValue(i);return new Yt(t(s.x),t(s.y),t(s.z),t(s.w))};break}}return this}serialize(){const e=super.serialize();return e.operation=this.operation,e}_deserialize(e){super._deserialize(e),this.operation=e.operation}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.operation = BABYLON.GeometryTrigonometryBlockOperations.${Tr[this.operation]};
`}}F([lt("Operation",4,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0},options:[{label:"Cos",value:Tr.Cos},{label:"Sin",value:Tr.Sin},{label:"Abs",value:Tr.Abs},{label:"Exp",value:Tr.Exp},{label:"Exp2",value:Tr.Exp2},{label:"Round",value:Tr.Round},{label:"Floor",value:Tr.Floor},{label:"Ceiling",value:Tr.Ceiling},{label:"Sqrt",value:Tr.Sqrt},{label:"Log",value:Tr.Log},{label:"Tan",value:Tr.Tan},{label:"ArcTan",value:Tr.ArcTan},{label:"ArcCos",value:Tr.ArcCos},{label:"ArcSin",value:Tr.ArcSin},{label:"Sign",value:Tr.Sign},{label:"Negate",value:Tr.Negate},{label:"OneMinus",value:Tr.OneMinus},{label:"Reciprocal",value:Tr.Reciprocal},{label:"ToDegrees",value:Tr.ToDegrees},{label:"ToRadians",value:Tr.ToRadians},{label:"Fract",value:Tr.Fract}]})],une.prototype,"operation",void 0),ve("BABYLON.GeometryTrigonometryBlock",une);class hne extends us{constructor(e){super(e),this._rotationMatrix=new me,this._scalingMatrix=new me,this._translationMatrix=new me,this._scalingRotationMatrix=new me,this._pivotMatrix=new me,this._backPivotMatrix=new me,this._transformMatrix=new me,this.evaluateContext=!0,this.registerInput("value",ge.AutoDetect),this.registerInput("matrix",ge.Matrix,!0),this.registerInput("translation",ge.Vector3,!0,P.Zero()),this.registerInput("rotation",ge.Vector3,!0,P.Zero()),this.registerInput("scaling",ge.Vector3,!0,P.One()),this.registerInput("pivot",ge.Vector3,!0,P.Zero()),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._inputs[0].excludedConnectionPointTypes.push(ge.Float),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture)}getClassName(){return"GeometryTransformBlock"}get value(){return this._inputs[0]}get matrix(){return this._inputs[1]}get translation(){return this._inputs[2]}get rotation(){return this._inputs[3]}get scaling(){return this._inputs[4]}get pivot(){return this._inputs[5]}get output(){return this._outputs[0]}_buildBlock(e){if(!this.value.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}const t=i=>{const s=this.value.getConnectedValue(i);if(!s)return null;let r;if(this.matrix.isConnected)r=this.matrix.getConnectedValue(i);else{const n=this.scaling.getConnectedValue(i)||P.OneReadOnly,o=this.rotation.getConnectedValue(i)||P.ZeroReadOnly,l=this.translation.getConnectedValue(i)||P.ZeroReadOnly,c=this.pivot.getConnectedValue(i)||P.ZeroReadOnly;me.TranslationToRef(-c.x,-c.y,-c.z,this._pivotMatrix),me.ScalingToRef(n.x,n.y,n.z,this._scalingMatrix),me.RotationYawPitchRollToRef(o.y,o.x,o.z,this._rotationMatrix),me.TranslationToRef(l.x+c.x,l.y+c.y,l.z+c.z,this._translationMatrix),this._pivotMatrix.multiplyToRef(this._scalingMatrix,this._backPivotMatrix),this._backPivotMatrix.multiplyToRef(this._rotationMatrix,this._scalingRotationMatrix),this._scalingRotationMatrix.multiplyToRef(this._translationMatrix,this._transformMatrix),r=this._transformMatrix}switch(this.value.type){case ge.Geometry:{const n=s.clone();return n.transform(r),n}case ge.Vector2:return Ue.Transform(s,r);case ge.Vector3:return P.TransformCoordinates(s,r);case ge.Vector4:return Yt.TransformCoordinates(s,r)}return null};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext)}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],hne.prototype,"evaluateContext",void 0),ve("BABYLON.GeometryTransformBlock",hne);class nCe extends us{constructor(e){super(e),this.registerInput("angle",ge.Float,!0,0),this.registerOutput("matrix",ge.Matrix)}getClassName(){return"RotationXBlock"}get angle(){return this._inputs[0]}get matrix(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e),this.matrix._storedFunction=t=>me.RotationX(this.angle.getConnectedValue(t))}}ve("BABYLON.RotationXBlock",nCe);class aCe extends us{constructor(e){super(e),this.registerInput("angle",ge.Float,!0,0),this.registerOutput("matrix",ge.Matrix)}getClassName(){return"RotationYBlock"}get angle(){return this._inputs[0]}get matrix(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e),this.matrix._storedFunction=t=>me.RotationY(this.angle.getConnectedValue(t))}}ve("BABYLON.RotationYBlock",aCe);class oCe extends us{constructor(e){super(e),this.registerInput("angle",ge.Float,!0,0),this.registerOutput("matrix",ge.Matrix)}getClassName(){return"RotationZBlock"}get angle(){return this._inputs[0]}get matrix(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e),this.matrix._storedFunction=t=>me.RotationZ(this.angle.getConnectedValue(t))}}ve("BABYLON.RotationZBlock",oCe);class lCe extends us{constructor(e){super(e),this.registerInput("scale",ge.Vector3,!1,P.One()),this.registerOutput("matrix",ge.Matrix)}getClassName(){return"ScalingBlock"}get scale(){return this._inputs[0]}get matrix(){return this._outputs[0]}autoConfigure(){if(!this.scale.isConnected){const e=new zl("Scale");e.value=new P(1,1,1),e.output.connectTo(this.scale)}}_buildBlock(e){super._buildBlock(e),this.matrix._storedFunction=t=>{const i=this.scale.getConnectedValue(t);return me.Scaling(i.x,i.y,i.z)}}}ve("BABYLON.ScalingBlock",lCe);class cCe extends us{constructor(e){super(e),this.registerInput("source",ge.Vector3,!0,P.Up()),this.registerInput("target",ge.Vector3,!0,P.Left()),this.registerOutput("matrix",ge.Matrix)}getClassName(){return"AlignBlock"}get source(){return this._inputs[0]}get target(){return this._inputs[1]}get matrix(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e),this.matrix._storedFunction=t=>{const i=this.source.getConnectedValue(t).clone(),s=this.target.getConnectedValue(t).clone(),r=new me;return i.normalize(),s.normalize(),me.RotationAlignToRef(i,s,r,!0),r}}}ve("BABYLON.AlignBlock",cCe);class uCe extends us{constructor(e){super(e),this.registerInput("translation",ge.Vector3,!1,P.Zero()),this.registerOutput("matrix",ge.Matrix)}getClassName(){return"TranslationBlock"}get translation(){return this._inputs[0]}get matrix(){return this._outputs[0]}autoConfigure(){if(!this.translation.isConnected){const e=new zl("Translation");e.value=new P(0,0,0),e.output.connectTo(this.translation)}}_buildBlock(e){super._buildBlock(e),this.matrix._storedFunction=t=>{const i=this.translation.getConnectedValue(t);return me.Translation(i.x,i.y,i.z)}}}ve("BABYLON.TranslationBlock",uCe);class uY extends us{constructor(e){super(e),this._indexTranslation=null,this.evaluateContext=!0,this.removeDuplicatedPositions=!0,this.registerInput("geometry",ge.Geometry),this.registerInput("instance",ge.Geometry,!0),this.registerInput("density",ge.Float,!0,1,0,1),this.registerInput("matrix",ge.Matrix,!0),this.registerInput("offset",ge.Vector3,!0,P.Zero()),this.registerInput("rotation",ge.Vector3,!0,P.Zero()),this.registerInput("scaling",ge.Vector3,!0,P.One()),this.scaling.acceptedConnectionPointTypes.push(ge.Float),this.registerOutput("output",ge.Geometry)}getInstanceIndex(){return this._currentLoopIndex}getExecutionIndex(){return this._indexTranslation?this._indexTranslation[this._currentIndex]:this._currentIndex}getExecutionLoopIndex(){return this._currentLoopIndex}getExecutionFaceIndex(){return 0}getClassName(){return"InstantiateOnVerticesBlock"}get geometry(){return this._inputs[0]}get instance(){return this._inputs[1]}get density(){return this._inputs[2]}get matrix(){return this._inputs[3]}get offset(){return this._inputs[4]}get rotation(){return this._inputs[5]}get scaling(){return this._inputs[6]}get output(){return this._outputs[0]}_buildBlock(e){const t=i=>{if(i.pushExecutionContext(this),i.pushInstancingContext(this),this._vertexData=this.geometry.getConnectedValue(i),i.pushGeometryContext(this._vertexData),!this._vertexData||!this._vertexData.positions||!this.instance.isConnected){i.restoreExecutionContext(),i.restoreInstancingContext(),i.restoreGeometryContext(),this.output._storedValue=null;return}let s=this._vertexData.positions.length/3;const r=[],n=new P,o=[];let l=this._vertexData.positions;if(this._currentLoopIndex=0,this.removeDuplicatedPositions){for(this._indexTranslation={},this._currentIndex=0;this._currentIndex<s;this._currentIndex++){const c=l[this._currentIndex*3],u=l[this._currentIndex*3+1],f=l[this._currentIndex*3+2];let p=!1;for(let m=0;m<o.length;m+=3)if(Math.abs(o[m]-c)<Ii&&Math.abs(o[m+1]-u)<Ii&&Math.abs(o[m+2]-f)<Ii){p=!0;break}p||(this._indexTranslation[o.length/3]=this._currentIndex,o.push(c,u,f))}l=o,s=l.length/3}else this._indexTranslation=null;for(this._currentIndex=0;this._currentIndex<s;this._currentIndex++){const c=this.instance.getConnectedValue(i);if(!c||!c.positions||c.positions.length===0)continue;const u=this.density.getConnectedValue(i);if(u<1&&Math.random()>u)continue;n.fromArray(l,this._currentIndex*3);const f=c.clone();if(this.matrix.isConnected){const p=this.matrix.getConnectedValue(i);i._instantiateWithPositionAndMatrix(f,n,p,r)}else{const p=i.adaptInput(this.offset,ge.Vector3,P.ZeroReadOnly),m=i.adaptInput(this.scaling,ge.Vector3,P.OneReadOnly),_=this.rotation.getConnectedValue(i)||P.ZeroReadOnly;n.addInPlace(p),i._instantiate(f,n,_,m,r)}this._currentLoopIndex++}if(i.restoreGeometryContext(),i.restoreExecutionContext(),i.restoreInstancingContext(),r.length)if(r.length===1)this._vertexData=r[0];else{const c=r.splice(0,1)[0];this._vertexData=c.merge(r,!0,!1,!0,!0)}else return null;return this._vertexData};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.removeDuplicatedPositions = ${this.removeDuplicatedPositions?"true":"false"};
`;return e+=`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`,e}serialize(){const e=super.serialize();return e.removeDuplicatedPositions=this.removeDuplicatedPositions,e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),this.removeDuplicatedPositions=e.removeDuplicatedPositions,e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext)}}F([lt("Evaluate context",0,"ADVANCED",{notifiers:{rebuild:!0}})],uY.prototype,"evaluateContext",void 0),F([lt("Remove duplicated positions",0,"ADVANCED",{notifiers:{update:!0}})],uY.prototype,"removeDuplicatedPositions",void 0),ve("BABYLON.InstantiateOnVerticesBlock",uY);class dne extends us{constructor(e){super(e),this._currentPosition=new P,this._currentUV=new Ue,this._vertex0=new P,this._vertex1=new P,this._vertex2=new P,this._tempVector0=new P,this._tempVector1=new P,this._uv0=new Ue,this._uv1=new Ue,this._uv2=new Ue,this.evaluateContext=!0,this.registerInput("geometry",ge.Geometry),this.registerInput("instance",ge.Geometry,!0),this.registerInput("count",ge.Int,!0,256),this.registerInput("matrix",ge.Matrix,!0),this.registerInput("offset",ge.Vector3,!0,P.Zero()),this.registerInput("rotation",ge.Vector3,!0,P.Zero()),this.registerInput("scaling",ge.Vector3,!0,P.One()),this.scaling.acceptedConnectionPointTypes.push(ge.Float),this.registerOutput("output",ge.Geometry)}getInstanceIndex(){return this._currentLoopIndex}getExecutionIndex(){return 0}getExecutionFaceIndex(){return this._currentFaceIndex}getExecutionLoopIndex(){return this._currentLoopIndex}getOverridePositionsContextualValue(){return this._currentPosition}getOverrideNormalsContextualValue(){return this._vertex1.subtractToRef(this._vertex0,this._tempVector0),this._vertex2.subtractToRef(this._vertex1,this._tempVector1),this._tempVector0.normalize(),this._tempVector1.normalize(),P.Cross(this._tempVector1,this._tempVector0)}getOverrideUVs1ContextualValue(){return this._currentUV}getClassName(){return"InstantiateOnFacesBlock"}get geometry(){return this._inputs[0]}get instance(){return this._inputs[1]}get count(){return this._inputs[2]}get matrix(){return this._inputs[3]}get offset(){return this._inputs[4]}get rotation(){return this._inputs[5]}get scaling(){return this._inputs[6]}get output(){return this._outputs[0]}_buildBlock(e){const t=i=>{if(i.pushExecutionContext(this),i.pushInstancingContext(this),this._vertexData=this.geometry.getConnectedValue(i),i.pushGeometryContext(this._vertexData),!this._vertexData||!this._vertexData.positions||!this._vertexData.indices||!this.instance.isConnected){i.restoreExecutionContext(),i.restoreInstancingContext(),i.restoreGeometryContext(),this.output._storedValue=null;return}let s=null;const r=this.count.getConnectedValue(i),n=this._vertexData.indices.length/3,o=r/n;let l=0;const c=[];let u=0;for(this._currentLoopIndex=0,this._currentFaceIndex=0;this._currentFaceIndex<n;this._currentFaceIndex++){l+=o;const f=(l|0)-u;if(f<1)continue;const p=this._vertexData.indices[this._currentFaceIndex*3],m=this._vertexData.indices[this._currentFaceIndex*3+1],_=this._vertexData.indices[this._currentFaceIndex*3+2];this._vertex0.fromArray(this._vertexData.positions,p*3),this._vertex1.fromArray(this._vertexData.positions,m*3),this._vertex2.fromArray(this._vertexData.positions,_*3),this._vertexData.uvs&&(this._uv0.fromArray(this._vertexData.uvs,p*2),this._uv1.fromArray(this._vertexData.uvs,m*2),this._uv2.fromArray(this._vertexData.uvs,_*2));for(let d=0;d<f&&!(u>=r);d++){let h=Math.random(),x=Math.random();if(h>x){const M=h;h=x,x=M}const A=h,S=x-h,E=1-A-S;if(this._currentPosition.set(A*this._vertex0.x+S*this._vertex1.x+E*this._vertex2.x,A*this._vertex0.y+S*this._vertex1.y+E*this._vertex2.y,A*this._vertex0.z+S*this._vertex1.z+E*this._vertex2.z),this._vertexData.uvs&&this._currentUV.set(A*this._uv0.x+S*this._uv1.x+E*this._uv2.x,A*this._uv0.y+S*this._uv1.y+E*this._uv2.y),s=this.instance.getConnectedValue(i),!s||!s.positions||s.positions.length===0){l-=o;continue}const b=s.clone();if(this.matrix.isConnected){const M=this.matrix.getConnectedValue(i);i._instantiateWithPositionAndMatrix(b,this._currentPosition,M,c)}else{const M=i.adaptInput(this.offset,ge.Vector3,P.ZeroReadOnly),T=i.adaptInput(this.scaling,ge.Vector3,P.OneReadOnly),O=this.rotation.getConnectedValue(i)||P.ZeroReadOnly;this._currentPosition.addInPlace(M),i._instantiate(b,this._currentPosition,O,T,c)}u++,this._currentLoopIndex++}}if(c.length)if(c.length===1)this._vertexData=c[0];else{const f=c.splice(0,1)[0];this._vertexData=f.merge(c,!0,!1,!0,!0)}return i.restoreExecutionContext(),i.restoreInstancingContext(),i.restoreGeometryContext(),this._vertexData};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext)}}F([lt("Evaluate context",0,"ADVANCED",{notifiers:{rebuild:!0}})],dne.prototype,"evaluateContext",void 0),ve("BABYLON.InstantiateOnFacesBlock",dne);class hY extends us{constructor(e){super(e),this._currentPosition=new P,this._vertex0=new P,this._vertex1=new P,this._vertex2=new P,this.evaluateContext=!0,this.gridMode=!1,this.registerInput("geometry",ge.Geometry),this.registerInput("instance",ge.Geometry,!0),this.registerInput("count",ge.Int,!0,256),this.registerInput("matrix",ge.Matrix,!0),this.registerInput("offset",ge.Vector3,!0,P.Zero()),this.registerInput("rotation",ge.Vector3,!0,P.Zero()),this.registerInput("scaling",ge.Vector3,!0,P.One()),this.registerInput("gridSize",ge.Int,!0,10),this.scaling.acceptedConnectionPointTypes.push(ge.Float),this.registerOutput("output",ge.Geometry)}getInstanceIndex(){return this._currentLoopIndex}getExecutionIndex(){return 0}getExecutionFaceIndex(){return 0}getExecutionLoopIndex(){return this._currentLoopIndex}getOverridePositionsContextualValue(){return this._currentPosition}getClassName(){return"InstantiateOnVolumeBlock"}get geometry(){return this._inputs[0]}get instance(){return this._inputs[1]}get count(){return this._inputs[2]}get matrix(){return this._inputs[3]}get offset(){return this._inputs[4]}get rotation(){return this._inputs[5]}get scaling(){return this._inputs[6]}get gridSize(){return this._inputs[6]}get output(){return this._outputs[0]}_getValueOnGrid(e,t,i,s){const r=(s-i)/t;return i+r/2+e*r}_getIndexinGrid(e,t,i,s){return e+t*s+i*s*s}_buildBlock(e){const t=i=>{if(i.pushExecutionContext(this),i.pushInstancingContext(this),this._vertexData=this.geometry.getConnectedValue(i),i.pushGeometryContext(this._vertexData),!this._vertexData||!this._vertexData.positions||!this._vertexData.indices||!this.instance.isConnected){i.restoreExecutionContext(),i.restoreInstancingContext(),i.restoreGeometryContext(),this.output._storedValue=null;return}let s=null;const r=this.count.getConnectedValue(i),n=[],o=vy(this._vertexData.positions,0,this._vertexData.positions.length/3),l=o.minimum,c=o.maximum,u=new P(.5,.8,.2),f=this._vertexData.indices.length/3,p=this.gridSize.getConnectedValue(i);this._currentLoopIndex=0;let m;if(this.gridMode){m=[];for(let _=0;_<p*p*p;_++)m[_]=!1}for(let _=0;_<r;_++){if(this.gridMode){let A=Math.floor(Math.random()*p),S=Math.floor(Math.random()*p),E=Math.floor(Math.random()*p),b=this._getIndexinGrid(A,S,E,p);if(m[b]){let M=!1;for(let T=0;T<p*p*p;T++)if(!m[T]){E=Math.floor(T/(p*p)),S=Math.floor((T-E*p*p)/p),A=T-E*p*p-S*p,b=this._getIndexinGrid(A,S,E,p),M=!0;break}if(!M)break}if(!m[b]){const M=this._getValueOnGrid(A,p,l.x,c.x),T=this._getValueOnGrid(S,p,l.y,c.y),O=this._getValueOnGrid(E,p,l.z,c.z);this._currentPosition.set(M,T,O),m[b]=!0}}else this._currentPosition.set(Math.random()*(c.x-l.x)+l.x,Math.random()*(c.y-l.y)+l.y,Math.random()*(c.z-l.z)+l.z);const d=new Is(this._currentPosition,u);let h=0;for(let A=0;A<f;A++){this._vertex0.fromArray(this._vertexData.positions,this._vertexData.indices[A*3]*3),this._vertex1.fromArray(this._vertexData.positions,this._vertexData.indices[A*3+1]*3),this._vertex2.fromArray(this._vertexData.positions,this._vertexData.indices[A*3+2]*3);const S=d.intersectsTriangle(this._vertex0,this._vertex1,this._vertex2);S&&S.distance>0&&h++}if(h%2===0){_--;continue}if(s=this.instance.getConnectedValue(i),!s||!s.positions||s.positions.length===0)continue;const x=s.clone();if(this.matrix.isConnected){const A=this.matrix.getConnectedValue(i);i._instantiateWithPositionAndMatrix(x,this._currentPosition,A,n)}else{const A=i.adaptInput(this.offset,ge.Vector3,P.ZeroReadOnly),S=i.adaptInput(this.scaling,ge.Vector3,P.OneReadOnly),E=this.rotation.getConnectedValue(i)||P.ZeroReadOnly;this._currentPosition.addInPlace(A),i._instantiate(x,this._currentPosition,E,S,n)}this._currentLoopIndex++}if(n.length)if(n.length===1)this._vertexData=n[0];else{const _=n.splice(0,1)[0];this._vertexData=_.merge(n,!0,!1,!0,!0)}return i.restoreGeometryContext(),i.restoreExecutionContext(),i.restoreInstancingContext(),this._vertexData};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`;return e+=`${this._codeVariableName}.gridMode = ${this.gridMode?"true":"false"};
`,e}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e.gridMode=this.gridMode,e}_deserialize(e){super._deserialize(e),e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext),e.gridMode!==void 0&&(this.gridMode=e.gridMode)}}F([lt("Evaluate context",0,"ADVANCED",{notifiers:{rebuild:!0}})],hY.prototype,"evaluateContext",void 0),F([lt("Grid mode",0,"MODES",{notifiers:{rebuild:!0}})],hY.prototype,"gridMode",void 0),ve("BABYLON.InstantiateOnVolumeBlock",hY);class dY extends us{constructor(e){super(e),this.evaluateContext=!0,this.registerInput("instance",ge.Geometry,!0),this.registerInput("count",ge.Int,!0,1),this.registerOutput("output",ge.Geometry)}getInstanceIndex(){return this._currentIndex}getExecutionIndex(){return this._currentIndex}getExecutionLoopIndex(){return this._currentIndex}getExecutionFaceIndex(){return 0}getClassName(){return"InstantiateBaseBlock"}get instance(){return this._inputs[0]}get count(){return this._inputs[1]}get output(){return this._outputs[0]}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e}_deserialize(e){super._deserialize(e),e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext)}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],dY.prototype,"evaluateContext",void 0);class hCe extends dY{constructor(e){super(e),this.registerInput("matrix",ge.Matrix,!0),this.registerInput("position",ge.Vector3,!0,P.Zero()),this.registerInput("rotation",ge.Vector3,!0,P.Zero()),this.registerInput("scaling",ge.Vector3,!0,P.One()),this.scaling.acceptedConnectionPointTypes.push(ge.Float)}getInstanceIndex(){return this._currentIndex}getExecutionIndex(){return this._currentIndex}getExecutionLoopIndex(){return this._currentIndex}getExecutionFaceIndex(){return 0}getClassName(){return"InstantiateBlock"}get matrix(){return this._inputs[2]}get position(){return this._inputs[3]}get rotation(){return this._inputs[4]}get scaling(){return this._inputs[5]}_buildBlock(e){const t=i=>{i.pushExecutionContext(this),i.pushInstancingContext(this);const s=this.count.getConnectedValue(i),r=[];for(this._currentIndex=0;this._currentIndex<s;this._currentIndex++){const n=this.instance.getConnectedValue(i);if(!n||!n.positions||n.positions.length===0)continue;const o=n.clone();if(this.matrix.isConnected){const l=this.matrix.getConnectedValue(i);i._instantiateWithMatrix(o,l,r)}else{const l=this.position.getConnectedValue(i)||P.ZeroReadOnly,c=i.adaptInput(this.scaling,ge.Vector3,P.OneReadOnly),u=this.rotation.getConnectedValue(i)||P.ZeroReadOnly;i._instantiate(o,l,u,c,r)}}if(r.length)if(r.length===1)this._vertexData=r[0];else{const n=r.splice(0,1)[0];this._vertexData=n.merge(r,!0,!1,!0,!0)}return i.restoreExecutionContext(),i.restoreInstancingContext(),this._vertexData};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}}ve("BABYLON.InstantiateBlock",hCe);class dCe extends dY{constructor(e){super(e),this.registerInput("direction",ge.Vector3,!0,new P(1,0,0)),this.registerInput("rotation",ge.Vector3,!0,new P(0,0,0)),this.registerInput("scaling",ge.Vector3,!0,new P(0,0,0)),this.scaling.acceptedConnectionPointTypes.push(ge.Float)}getClassName(){return"InstantiateLinearBlock"}get direction(){return this._inputs[2]}get rotation(){return this._inputs[3]}get scaling(){return this._inputs[4]}_buildBlock(e){const t=i=>{i.pushExecutionContext(this),i.pushInstancingContext(this);const s=this.count.getConnectedValue(i),r=[],n=me.Identity(),o=P.Zero(),l=P.Zero(),c=P.Zero();for(this._currentIndex=0;this._currentIndex<s;this._currentIndex++){const u=this.instance.getConnectedValue(i);if(!u||!u.positions||u.positions.length===0)continue;const f=u.clone(),p=this.direction.getConnectedValue(i),m=this.rotation.getConnectedValue(i),_=i.adaptInput(this.scaling,ge.Vector3,P.OneReadOnly);o.copyFrom(p.clone().scale(this._currentIndex)),l.copyFrom(m.clone().scale(this._currentIndex)),c.copyFrom(_.clone().scale(this._currentIndex)),c.addInPlaceFromFloats(1,1,1),me.ComposeToRef(c,Re.FromEulerAngles(l.x,l.y,l.z),o,n),i._instantiateWithMatrix(f,n,r)}if(r.length)if(r.length===1)this._vertexData=r[0];else{const u=r.splice(0,1)[0];this._vertexData=u.merge(r,!0,!1,!0,!0)}return i.restoreExecutionContext(),i.restoreInstancingContext(),this._vertexData};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}}ve("BABYLON.InstantiateLinearBlock",dCe);class fCe extends dY{constructor(e){super(e),this.registerInput("radius",ge.Int,!0,0,0),this.registerInput("angleStart",ge.Float,!0,0),this.registerInput("angleEnd",ge.Float,!0,Math.PI*2),this.registerInput("transform",ge.Vector3,!0,new P(0,0,0)),this.registerInput("rotation",ge.Vector3,!0,new P(0,0,0)),this.registerInput("scaling",ge.Vector3,!0,new P(0,0,0)),this.scaling.acceptedConnectionPointTypes.push(ge.Float)}getClassName(){return"InstantiateRadialBlock"}get radius(){return this._inputs[2]}get angleStart(){return this._inputs[3]}get angleEnd(){return this._inputs[4]}get transform(){return this._inputs[5]}get rotation(){return this._inputs[6]}get scaling(){return this._inputs[7]}_buildBlock(e){const t=i=>{i.pushExecutionContext(this),i.pushInstancingContext(this);const s=this.count.getConnectedValue(i),r=[],n=me.Identity(),o=me.Identity(),l=me.Identity(),c=P.Zero(),u=P.Zero(),f=P.Zero();for(this._currentIndex=0;this._currentIndex<s;this._currentIndex++){const p=this.instance.getConnectedValue(i);if(!p||!p.positions||p.positions.length===0)continue;const m=p.clone(),_=this.radius.getConnectedValue(i),d=this.angleStart.getConnectedValue(i),h=this.angleEnd.getConnectedValue(i),x=this.transform.getConnectedValue(i),A=this.rotation.getConnectedValue(i),S=i.adaptInput(this.scaling,ge.Vector3,P.OneReadOnly),b=(h-d)/s,M=d+b*this._currentIndex,T=Re.FromEulerAngles(0,M,0);c.copyFrom(x.clone().scale(this._currentIndex)),u.copyFrom(A.clone().scale(this._currentIndex)),f.copyFrom(S.clone().scale(this._currentIndex)),f.addInPlaceFromFloats(1,1,1),me.RotationYawPitchRollToRef(u.y,u.x,u.z,n),o.setTranslationFromFloats(0,0,_),me.ComposeToRef(f,T,c,l),n.multiplyToRef(o,o),o.multiplyToRef(l,l),i._instantiateWithMatrix(m,l,r)}if(r.length)if(r.length===1)this._vertexData=r[0];else{const p=r.splice(0,1)[0];this._vertexData=p.merge(r,!0,!1,!0,!0)}return i.restoreExecutionContext(),i.restoreInstancingContext(),this._vertexData};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}}ve("BABYLON.InstantiateRadialBlock",fCe);class pCe extends us{constructor(e){super(e),this.registerInput("float ",ge.Float,!0),this.registerInput("int ",ge.Int,!0),this.registerOutput("float",ge.Float),this.registerOutput("int",ge.Int)}getClassName(){return"IntFloatConverterBlock"}get floatIn(){return this._inputs[0]}get intIn(){return this._inputs[1]}get floatOut(){return this._outputs[0]}get intOut(){return this._outputs[1]}_inputRename(e){return e==="float "?"floatIn":e==="int "?"intIn":e}_buildBlock(){this.floatOut._storedFunction=e=>this.floatIn.isConnected?this.floatIn.getConnectedValue(e):this.intIn.isConnected?this.intIn.getConnectedValue(e):0,this.intOut._storedFunction=e=>this.floatIn.isConnected?Math.floor(this.floatIn.getConnectedValue(e)):this.intIn.isConnected?Math.floor(this.intIn.getConnectedValue(e)):0}}ve("BABYLON.IntFloatConverterBlock",pCe);class mCe extends us{constructor(e){super(e),this.log=[],this._isDebug=!0,this.registerInput("input",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture)}get buildExecutionTime(){return-1}getClassName(){return"DebugBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){if(!this.input.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}this.log=[];const t=i=>{const s=this.input.getConnectedValue(i);if(s==null)return this.log.push(["null",""]),s;switch(this.input.type){case ge.Vector2:this.log.push([MAe(s,4),s.toString()]);break;case ge.Vector3:this.log.push([EAe(s,4),s.toString()]);break;case ge.Vector4:this.log.push([TAe(s,4),s.toString()]);break;default:this.log.push([s.toString(),s.toString()]);break}return s};this.output.isConnected?this.output._storedFunction=t:this.output._storedValue=t(e)}}ve("BABYLON.DebugBlock",mCe);class gCe extends us{constructor(e){super(e),this.registerInput("geometry",ge.Geometry),this.registerOutput("output",ge.Geometry),this.registerOutput("id",ge.Int),this.registerOutput("collectionId",ge.Int),this.registerOutput("verticesCount",ge.Int),this.registerOutput("facesCount",ge.Int)}getClassName(){return"GeometryInfoBlock"}get geometry(){return this._inputs[0]}get output(){return this._outputs[0]}get id(){return this._outputs[1]}get collectionId(){return this._outputs[2]}get verticesCount(){return this._outputs[3]}get facesCount(){return this._outputs[4]}_buildBlock(){if(!this.geometry.isConnected){this.id._storedValue=0,this.collectionId._storedValue=0,this.verticesCount._storedValue=0,this.facesCount._storedValue=0,this.output._storedValue=0,this.id._storedFunction=null,this.collectionId._storedFunction=null,this.verticesCount._storedFunction=null,this.facesCount._storedFunction=null,this.output._storedFunction=null;return}this.output._storedFunction=e=>(this._currentVertexData=this.geometry.getConnectedValue(e),this._currentVertexData),this.id._storedFunction=e=>(this._currentVertexData=this._currentVertexData||this.geometry.getConnectedValue(e),this._currentVertexData.uniqueId),this.collectionId._storedFunction=e=>(this._currentVertexData=this._currentVertexData||this.geometry.getConnectedValue(e),this._currentVertexData.metadata?this._currentVertexData.metadata.collectionId:0),this.verticesCount._storedFunction=e=>(this._currentVertexData=this._currentVertexData||this.geometry.getConnectedValue(e),this._currentVertexData.positions?this._currentVertexData.positions.length/3:0),this.facesCount._storedFunction=e=>(this._currentVertexData=this._currentVertexData||this.geometry.getConnectedValue(e),this._currentVertexData.indices?this._currentVertexData.indices.length/3:0)}}ve("BABYLON.GeometryInfoBlock",gCe);var m5;(function(a){a[a.Spherical=0]="Spherical",a[a.Cylindrical=1]="Cylindrical",a[a.Cubic=2]="Cubic"})(m5||(m5={}));class fne extends us{constructor(e){super(e),this.mapping=m5.Spherical,this.registerInput("position",ge.Vector3),this.registerInput("normal",ge.Vector3),this.registerInput("center",ge.Vector3,!0,P.Zero()),this.registerOutput("uv",ge.Vector2)}getClassName(){return"MappingBlock"}get position(){return this._inputs[0]}get normal(){return this._inputs[1]}get center(){return this._inputs[2]}get uv(){return this._outputs[0]}_buildBlock(){if(!this.position.isConnected){this.uv._storedFunction=null,this.uv._storedValue=null;return}const e=P.Zero(),t=i=>{const s=this.position.getConnectedValue(i)||P.Zero(),r=this.normal.getConnectedValue(i)||P.Zero(),n=this.center.getConnectedValue(i),o=Ue.Zero();switch(this.mapping){case m5.Spherical:{s.subtractToRef(n,e);const l=e.length();l>0&&(o.x=Math.acos(e.y/l)/Math.PI,(e.x!==0||e.z!==0)&&(o.y=Math.atan2(e.x,e.z)/(Math.PI*2)));break}case m5.Cylindrical:{s.subtractToRef(n,e);const l=e.length();l>0&&(o.x=Math.atan2(e.x/l,e.z/l)/(Math.PI*2),o.y=(e.y+1)/2);break}case m5.Cubic:{const l=Math.abs(r.x),c=Math.abs(r.y),u=Math.abs(r.z),f=Math.max(Math.abs(s.x),Math.abs(s.y),Math.abs(s.z));let p=0,m=0;l>=c&&l>=u?(p=s.y/f-n.y,m=s.z/f-n.z):c>=l&&c>=u?(p=s.x/f-n.x,m=s.z/f-n.z):(p=s.x/f-n.x,m=s.y/f-n.y),o.x=(p+1)/2,o.y=(m+1)/2}}return o};this.uv._storedFunction=i=>t(i)}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.mapping = BABYLON.MappingTypes.${m5[this.mapping]};
`}serialize(){const e=super.serialize();return e.mapping=this.mapping,e}_deserialize(e){super._deserialize(e),this.mapping=e.mapping}}F([lt("Mapping",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"Spherical",value:m5.Spherical},{label:"Cylindrical",value:m5.Cylindrical},{label:"Cubic",value:m5.Cubic}]})],fne.prototype,"mapping",void 0),ve("BABYLON.MappingBlock",fne);class _Ce extends us{constructor(e){super(e),this.registerInput("matrix0",ge.Matrix),this.registerInput("matrix1",ge.Matrix),this.registerOutput("output",ge.Matrix)}getClassName(){return"MatrixComposeBlock"}get matrix0(){return this._inputs[0]}get matrix1(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){this.output._storedFunction=e=>{if(!this.matrix0.isConnected||!this.matrix1.isConnected)return null;const t=this.matrix0.getConnectedValue(e),i=this.matrix1.getConnectedValue(e);return!t||!i?null:t.multiply(i)}}}ve("BABYLON.MatrixComposeBlock",_Ce);class vCe extends us{get endpoints(){return this._endpoints}constructor(e){super(e),this._endpoints=[],this._isTeleportIn=!0,this.registerInput("input",ge.AutoDetect)}getClassName(){return"TeleportInBlock"}get input(){return this._inputs[0]}_dumpCode(e,t){let i=super._dumpCode(e,t);for(const s of this.endpoints)t.indexOf(s)===-1&&(i+=s._dumpCode(e,t));return i}isAnAncestorOfType(e){if(this.getClassName()===e)return!0;for(const t of this.endpoints)if(t.isAnAncestorOfType(e))return!0;return!1}isAnAncestorOf(e){for(const t of this.endpoints)if(t===e||t.isAnAncestorOf(e))return!0;return!1}getDescendantOfPredicate(e){if(e(this))return this;for(const t of this.endpoints){const i=t.getDescendantOfPredicate(e);if(i)return i}return null}attachToEndpoint(e){e.detach(),this._endpoints.push(e),e._entryPoint=this,e._outputs[0]._typeConnectionSource=this._inputs[0],e._tempEntryPointUniqueId=null,e.name="> "+this.name}detachFromEndpoint(e){const t=this._endpoints.indexOf(e);t!==-1&&(this._endpoints.splice(t,1),e._outputs[0]._typeConnectionSource=null,e._entryPoint=null)}_buildBlock(){for(const e of this._endpoints)e.output._storedFunction=t=>this.input.getConnectedValue(t)}}ve("BABYLON.TeleportInBlock",vCe);class ACe extends us{constructor(e){super(e),this._entryPoint=null,this._tempEntryPointUniqueId=null,this._isTeleportOut=!0,this.registerOutput("output",ge.BasedOnInput)}get entryPoint(){return this._entryPoint}getClassName(){return"TeleportOutBlock"}get output(){return this._outputs[0]}detach(){this._entryPoint&&this._entryPoint.detachFromEndpoint(this)}_buildBlock(){}_customBuildStep(e){this.entryPoint&&this.entryPoint.build(e)}_dumpCode(e,t){let i="";return this.entryPoint&&t.indexOf(this.entryPoint)===-1&&(i+=this.entryPoint._dumpCode(e,t)),i+super._dumpCode(e,t)}_dumpCodeForOutputConnections(e){let t=super._dumpCodeForOutputConnections(e);return this.entryPoint&&(t+=this.entryPoint._dumpCodeForOutputConnections(e)),t}clone(){const e=super.clone();return this.entryPoint&&this.entryPoint.attachToEndpoint(e),e}_dumpPropertiesCode(){let e=super._dumpPropertiesCode();return this.entryPoint&&(e+=`${this.entryPoint._codeVariableName}.attachToEndpoint(${this._codeVariableName});
`),e}serialize(){var t;const e=super.serialize();return e.entryPoint=((t=this.entryPoint)==null?void 0:t.uniqueId)??"",e}_deserialize(e){super._deserialize(e),this._tempEntryPointUniqueId=e.entryPoint}}ve("BABYLON.TeleportOutBlock",ACe);class pne extends us{get textureData(){return this._data}get textureWidth(){return this._width}get textureHeight(){return this._height}constructor(e){super(e),this._data=null,this.serializedCachedData=!1,this.registerOutput("texture",ge.Texture)}getClassName(){return"GeometryTextureBlock"}get texture(){return this._outputs[0]}_prepareImgToLoadAsync(e){return new Promise((t,i)=>{const s=new Image,r=document.createElement("canvas"),n=r.getContext("2d");s.onload=()=>{r.width=s.width,r.height=s.height,n.drawImage(s,0,0);const l=n.getImageData(0,0,s.width,s.height).data,c=new Float32Array(l.length);for(let u=0;u<l.length;u++)c[u]=l[u]/255;this._data=c,this._width=s.width,this._height=s.height,t()},s.onerror=()=>{this._data=null,i()},s.src=e})}cleanData(){this._data=null}loadTextureFromFileAsync(e){return this._prepareImgToLoadAsync(URL.createObjectURL(e))}loadTextureFromUrlAsync(e){return this._prepareImgToLoadAsync(e)}extractFromTextureAsync(e){return new Promise((t,i)=>{if(!e.isReady()){e.onLoadObservable.addOnce(()=>this.extractFromTextureAsync(e).then(t).catch(i));return}const s=e.getSize();Bw.GetTextureDataAsync(e,s.width,s.height).then(async r=>{const n=new Float32Array(r.length);for(let o=0;o<r.length;o++)n[o]=r[o]/255;this._data=n,this._width=s.width,this._height=s.height,t()}).catch(i)})}_buildBlock(){if(!this._data){this.texture._storedValue=null;return}const e={data:this._data,width:this._width,height:this._height};this.texture._storedValue=e}serialize(){const e=super.serialize();return e.width=this._width,e.height=this._height,e.serializedCachedData=this.serializedCachedData,this._data&&this.serializedCachedData&&(e.data=Array.from(this._data)),e}_deserialize(e){super._deserialize(e),this._width=e.width,this._height=e.height,e.data?(this._data=new Float32Array(e.data),this.serializedCachedData=!0):this.serializedCachedData=!!e.serializedCachedData}}F([lt("Serialize cached data",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],pne.prototype,"serializedCachedData",void 0),ve("BABYLON.GeometryTextureBlock",pne);class mne extends us{constructor(e){super(e),this.clampCoordinates=!0,this.registerInput("texture",ge.Texture),this.registerInput("coordinates",ge.Vector2),this.registerOutput("rgba",ge.Vector4),this.registerOutput("rgb",ge.Vector3),this.registerOutput("r",ge.Float),this.registerOutput("g",ge.Float),this.registerOutput("b",ge.Float),this.registerOutput("a",ge.Float)}getClassName(){return"GeometryTextureFetchBlock"}get texture(){return this.inputs[0]}get coordinates(){return this.inputs[1]}get rgba(){return this._outputs[0]}get rgb(){return this._outputs[1]}get r(){return this._outputs[2]}get g(){return this._outputs[3]}get b(){return this._outputs[4]}get a(){return this._outputs[5]}_repeatClamp(e){return e>=0?e%1:1-Math.abs(e)%1}_buildBlock(){const e=t=>{const i=this.texture.getConnectedValue(t);if(!i||!i.data)return null;const s=this.coordinates.getConnectedValue(t);if(!s)return null;const r=this.clampCoordinates?Math.max(0,Math.min(s.x,1)):this._repeatClamp(s.x),n=this.clampCoordinates?Math.max(0,Math.min(s.y,1)):this._repeatClamp(s.y),o=Math.floor(r*(i.width-1)),l=Math.floor(n*(i.height-1)),c=o+i.width*l;return Yt.FromArray(i.data,c*4)};this.rgba._storedFunction=t=>e(t),this.rgb._storedFunction=t=>{const i=e(t);return i?i.toVector3():null},this.r._storedFunction=t=>{const i=e(t);return i?i.x:null},this.g._storedFunction=t=>{const i=e(t);return i?i.y:null},this.b._storedFunction=t=>{const i=e(t);return i?i.z:null},this.a._storedFunction=t=>{const i=e(t);return i?i.w:null}}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.clampCoordinates = ${this.clampCoordinates};
`}serialize(){const e=super.serialize();return e.clampCoordinates=this.clampCoordinates,e}_deserialize(e){super._deserialize(e),this.clampCoordinates=e.clampCoordinates}}F([lt("Clamp Coordinates",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],mne.prototype,"clampCoordinates",void 0),ve("BABYLON.GeometryTextureFetchBlock",mne);class CCe extends us{constructor(e){super(e),this.registerInput("geometry",ge.Geometry),this.registerOutput("min",ge.Vector3),this.registerOutput("max",ge.Vector3)}getClassName(){return"BoundingBlock"}get geometry(){return this._inputs[0]}get min(){return this._outputs[0]}get max(){return this._outputs[1]}_buildBlock(){this.min._storedFunction=e=>{const t=this.geometry.getConnectedValue(e);return t?vy(t.positions,0,t.positions.length/3).minimum:null},this.max._storedFunction=e=>{const t=this.geometry.getConnectedValue(e);return t?vy(t.positions,0,t.positions.length/3).maximum:null}}}ve("BABYLON.BoundingBlock",CCe);var _3;(function(a){a[a.Intersect=0]="Intersect",a[a.Subtract=1]="Subtract",a[a.Union=2]="Union"})(_3||(_3={}));class sz extends us{get _isReadyState(){return kAe()?null:(this._csg2LoadingPromise||(this._csg2LoadingPromise=UAe()),this._csg2LoadingPromise)}constructor(e){super(e),this.evaluateContext=!1,this.operation=_3.Intersect,this.useOldCSGEngine=!1,this.registerInput("geometry0",ge.Geometry),this.registerInput("geometry1",ge.Geometry),this.registerOutput("output",ge.Geometry)}getClassName(){return"BooleanGeometryBlock"}get geometry0(){return this._inputs[0]}get geometry1(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){const t=i=>{const s=this.geometry0.getConnectedValue(i),r=this.geometry1.getConnectedValue(i);if(!s||!r)return null;const n=s.positions.length/3;!s.normals&&r.normals&&(s.normals=new Array(s.positions.length)),!r.normals&&s.normals&&(r.normals=new Array(r.positions.length)),!s.uvs&&r.uvs&&(s.uvs=new Array(n*2)),!r.uvs&&s.uvs&&(r.uvs=new Array(n*2)),!s.colors&&r.colors&&(s.colors=new Array(n*4)),!r.colors&&s.colors&&(r.colors=new Array(n*4));let o;if(this.useOldCSGEngine){const l=p5.FromVertexData(s),c=p5.FromVertexData(r);switch(this.operation){case _3.Intersect:o=l.intersect(c);break;case _3.Subtract:o=l.subtract(c);break;case _3.Union:o=l.union(c);break}}else{const l=TO.FromVertexData(s),c=TO.FromVertexData(r);switch(this.operation){case _3.Intersect:o=l.intersect(c);break;case _3.Subtract:o=l.subtract(c);break;case _3.Union:o=l.add(c);break}}return o.toVertexData()};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`;return e+=`${this._codeVariableName}.operation = BABYLON.BooleanGeometryOperations.${_3[this.operation]};
`,e+=`${this._codeVariableName}.useOldCSGEngine = ${this.useOldCSGEngine?"true":"false"};
`,e}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e.operation=this.operation,e.useOldCSGEngine=this.useOldCSGEngine,e}_deserialize(e){super._deserialize(e),this.evaluateContext=e.evaluateContext,e.operation&&(this.operation=e.operation),this.useOldCSGEngine=!!e.useOldCSGEngine}}F([lt("Evaluate context",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],sz.prototype,"evaluateContext",void 0),F([lt("Operation",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"Intersect",value:_3.Intersect},{label:"Subtract",value:_3.Subtract},{label:"Union",value:_3.Union}]})],sz.prototype,"operation",void 0),F([lt("Use old CSG engine",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],sz.prototype,"useOldCSGEngine",void 0),ve("BABYLON.BooleanGeometryBlock",sz);class xCe extends us{constructor(e){super(e),this.registerInput("x",ge.AutoDetect),this.registerInput("y",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture)}getClassName(){return"GeometryArcTan2Block"}get x(){return this._inputs[0]}get y(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){if(!this.x.isConnected||!this.y.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}const e=(t,i)=>Math.atan2(t,i);this.output._storedFunction=t=>{const i=this.x.getConnectedValue(t),s=this.y.getConnectedValue(t);switch(this.x.type){case ge.Int:case ge.Float:return e(i,s);case ge.Vector2:return new Ue(e(i.x,s.x),e(i.y,s.y));case ge.Vector3:return new P(e(i.x,s.x),e(i.y,s.y),e(i.z,s.z));case ge.Vector4:return new Yt(e(i.x,s.x),e(i.y,s.y),e(i.z,s.z),e(i.w,s.w))}return 0}}}ve("BABYLON.GeometryArcTan2Block",xCe);class bCe extends us{constructor(e){super(e),this.registerInput("left",ge.AutoDetect),this.registerInput("right",ge.AutoDetect),this.registerInput("gradient",ge.Float,!0,0,0,1),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture)}getClassName(){return"GeometryLerpBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get gradient(){return this._inputs[2]}get output(){return this._outputs[0]}_buildBlock(){if(!this.left.isConnected||!this.right.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}const e=(t,i,s)=>(1-t)*i+t*s;return this.output._storedFunction=t=>{const i=this.left.getConnectedValue(t),s=this.right.getConnectedValue(t),r=this.gradient.getConnectedValue(t);switch(this.left.type){case ge.Int:case ge.Float:return e(r,i,s);case ge.Vector2:return new Ue(e(r,i.x,s.x),e(r,i.y,s.y));case ge.Vector3:return new P(e(r,i.x,s.x),e(r,i.y,s.y),e(r,i.z,s.z));case ge.Vector4:return new Yt(e(r,i.x,s.x),e(r,i.y,s.y),e(r,i.z,s.z),e(r,i.w,s.w))}return 0},this}}ve("BABYLON.GeometryLerpBlock",bCe);class SCe extends us{constructor(e){super(e),this.registerInput("left",ge.AutoDetect),this.registerInput("right",ge.AutoDetect),this.registerInput("gradient",ge.Float,!0,0,0,1),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture)}getClassName(){return"GeometryNLerpBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get gradient(){return this._inputs[2]}get output(){return this._outputs[0]}_buildBlock(){if(!this.left.isConnected||!this.right.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}const e=(t,i,s)=>(1-t)*i+t*s;return this.output._storedFunction=t=>{const i=this.left.getConnectedValue(t),s=this.right.getConnectedValue(t),r=this.gradient.getConnectedValue(t);switch(this.left.type){case ge.Int:case ge.Float:return e(r,i,s);case ge.Vector2:{const n=new Ue(e(r,i.x,s.x),e(r,i.y,s.y));return n.normalize(),n}case ge.Vector3:{const n=new P(e(r,i.x,s.x),e(r,i.y,s.y),e(r,i.z,s.z));return n.normalize(),n}case ge.Vector4:{const n=new Yt(e(r,i.x,s.x),e(r,i.y,s.y),e(r,i.z,s.z),e(r,i.w,s.w));return n.normalize(),n}}return 0},this}}ve("BABYLON.GeometryNLerpBlock",SCe);class yCe extends us{constructor(e){super(e),this.registerInput("value",ge.AutoDetect),this.registerInput("edge",ge.Float,!0,0),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture)}getClassName(){return"GeometryStepBlock"}get value(){return this._inputs[0]}get edge(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){if(!this.value.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}const e=(t,i)=>t<i?0:1;return this.output._storedFunction=t=>{const i=this.value.getConnectedValue(t),s=this.edge.getConnectedValue(t);switch(this.value.type){case ge.Int:case ge.Float:return e(i,s);case ge.Vector2:return new Ue(e(i.x,s),e(i.y,s));case ge.Vector3:return new P(e(i.x,s),e(i.y,s),e(i.z,s));case ge.Vector4:return new Yt(e(i.x,s),e(i.y,s),e(i.z,s),e(i.w,s))}return 0},this}}ve("BABYLON.GeometryStepBlock",yCe);class MCe extends us{constructor(e){super(e),this.registerInput("value",ge.AutoDetect),this.registerInput("edge0",ge.Float,!0,0),this.registerInput("edge1",ge.Float,!0,1),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture)}getClassName(){return"GeometrySmoothStepBlock"}get value(){return this._inputs[0]}get edge0(){return this._inputs[1]}get edge1(){return this._inputs[2]}get output(){return this._outputs[0]}_buildBlock(){if(!this.value.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}const e=(t,i,s)=>{const r=Math.max(0,Math.min((t-i)/(s-i),1));return r*r*(3-2*r)};return this.output._storedFunction=t=>{const i=this.value.getConnectedValue(t),s=this.edge0.getConnectedValue(t),r=this.edge1.getConnectedValue(t);switch(this.value.type){case ge.Int:case ge.Float:return e(i,s,r);case ge.Vector2:return new Ue(e(i.x,s,r),e(i.y,s,r));case ge.Vector3:return new P(e(i.x,s,r),e(i.y,s,r),e(i.z,s,r));case ge.Vector4:return new Yt(e(i.x,s,r),e(i.y,s,r),e(i.z,s,r),e(i.w,s,r))}return 0},this}}ve("BABYLON.GeometrySmoothStepBlock",MCe);class ECe extends us{constructor(e){super(e),this.registerInput("left",ge.AutoDetect),this.registerInput("right",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture)}getClassName(){return"GeometryModBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){if(!this.left.isConnected||!this.right.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}const e=(t,i)=>t-Math.floor(t/i)*i;return this.output._storedFunction=t=>{const i=this.left.getConnectedValue(t),s=this.right.getConnectedValue(t);switch(this.left.type){case ge.Int:case ge.Float:return e(i,s);case ge.Vector2:return new Ue(e(i.x,s.x),e(i.y,s.y));case ge.Vector3:return new P(e(i.x,s.x),e(i.y,s.y),e(i.z,s.z));case ge.Vector4:return new Yt(e(i.x,s.x),e(i.y,s.y),e(i.z,s.z),e(i.w,s.w))}return 0},this}}ve("BABYLON.GeometryModBlock",ECe);class TCe extends us{constructor(e){super(e),this.registerInput("value",ge.AutoDetect),this.registerInput("power",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture)}getClassName(){return"GeometryPowBlock"}get value(){return this._inputs[0]}get power(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){if(!this.value.isConnected||!this.power.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}const e=(t,i)=>Math.pow(t,i);return this.output._storedFunction=t=>{const i=this.value.getConnectedValue(t),s=this.power.getConnectedValue(t);switch(this.value.type){case ge.Int:case ge.Float:return e(i,s);case ge.Vector2:return new Ue(e(i.x,s),e(i.y,s));case ge.Vector3:return new P(e(i.x,s),e(i.y,s),e(i.z,s));case ge.Vector4:return new Yt(e(i.x,s),e(i.y,s),e(i.z,s),e(i.w,s))}return 0},this}}ve("BABYLON.GeometryPowBlock",TCe);class LCe extends us{get minimum(){return this.min.value}set minimum(e){this.min.value=e}get maximum(){return this.max.value}set maximum(e){this.max.value=e}constructor(e){super(e),this.registerInput("value",ge.AutoDetect),this.registerInput("min",ge.Float,!0,0),this.registerInput("max",ge.Float,!0,1),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture)}getClassName(){return"GeometryClampBlock"}get value(){return this._inputs[0]}get min(){return this._inputs[1]}get max(){return this._inputs[2]}get output(){return this._outputs[0]}_buildBlock(){if(!this.value.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}const e=(t,i,s)=>Math.max(i,Math.min(t,s));return this.output._storedFunction=t=>{const i=this.value.getConnectedValue(t),s=this.min.isConnected?this.min.getConnectedValue(t):this.minimum,r=this.max.isConnected?this.max.getConnectedValue(t):this.maximum;switch(this.value.type){case ge.Int:case ge.Float:return e(i,s,r);case ge.Vector2:return new Ue(e(i.x,s,r),e(i.y,s,r));case ge.Vector3:return new P(e(i.x,s,r),e(i.y,s,r),e(i.z,s,r));case ge.Vector4:return new Yt(e(i.x,s,r),e(i.y,s,r),e(i.z,s,r),e(i.w,s,r))}return 0},this}_deserialize(e){super._deserialize(e),this.minimum=e.minimum,this.maximum=e.maximum}}ve("BABYLON.GeometryClampBlock",LCe);class ICe extends us{constructor(e){super(e),this.registerInput("left",ge.AutoDetect),this.registerInput("right",ge.AutoDetect),this.registerOutput("output",ge.Vector3),this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push(ge.Int),this._inputs[0].excludedConnectionPointTypes.push(ge.Float),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Vector2),this._inputs[1].excludedConnectionPointTypes.push(ge.Int),this._inputs[1].excludedConnectionPointTypes.push(ge.Float),this._inputs[1].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[1].excludedConnectionPointTypes.push(ge.Vector2)}getClassName(){return"GeometryCrossBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){if(!this.left.isConnected||!this.right.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}return this.output._storedFunction=e=>{const t=this.left.getConnectedValue(e),i=this.right.getConnectedValue(e);switch(this.left.type){case ge.Vector3:return P.Cross(t,i);case ge.Vector4:return P.Cross(t.toVector3(),i.toVector3())}return 0},this}}ve("BABYLON.GeometryCrossBlock",ICe);var Ws;(function(a){a[a.EaseInSine=0]="EaseInSine",a[a.EaseOutSine=1]="EaseOutSine",a[a.EaseInOutSine=2]="EaseInOutSine",a[a.EaseInQuad=3]="EaseInQuad",a[a.EaseOutQuad=4]="EaseOutQuad",a[a.EaseInOutQuad=5]="EaseInOutQuad",a[a.EaseInCubic=6]="EaseInCubic",a[a.EaseOutCubic=7]="EaseOutCubic",a[a.EaseInOutCubic=8]="EaseInOutCubic",a[a.EaseInQuart=9]="EaseInQuart",a[a.EaseOutQuart=10]="EaseOutQuart",a[a.EaseInOutQuart=11]="EaseInOutQuart",a[a.EaseInQuint=12]="EaseInQuint",a[a.EaseOutQuint=13]="EaseOutQuint",a[a.EaseInOutQuint=14]="EaseInOutQuint",a[a.EaseInExpo=15]="EaseInExpo",a[a.EaseOutExpo=16]="EaseOutExpo",a[a.EaseInOutExpo=17]="EaseInOutExpo",a[a.EaseInCirc=18]="EaseInCirc",a[a.EaseOutCirc=19]="EaseOutCirc",a[a.EaseInOutCirc=20]="EaseInOutCirc",a[a.EaseInBack=21]="EaseInBack",a[a.EaseOutBack=22]="EaseOutBack",a[a.EaseInOutBack=23]="EaseInOutBack",a[a.EaseInElastic=24]="EaseInElastic",a[a.EaseOutElastic=25]="EaseOutElastic",a[a.EaseInOutElastic=26]="EaseInOutElastic"})(Ws||(Ws={}));class gne extends us{constructor(e){super(e),this.type=Ws.EaseInOutSine,this.registerInput("input",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Int)}getClassName(){return"GeometryCurveBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(){if(!this.input.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}let e;switch(this.type){case Ws.EaseInSine:e=t=>1-Math.cos(t*3.1415/2);break;case Ws.EaseOutSine:e=t=>Math.sin(t*3.1415/2);break;case Ws.EaseInOutSine:e=t=>-(Math.cos(t*3.1415)-1)/2;break;case Ws.EaseInQuad:e=t=>t*t;break;case Ws.EaseOutQuad:e=t=>(1-t)*(1-t);break;case Ws.EaseInOutQuad:{e=t=>t<.5?2*t*t:1-Math.pow(-2*t+2,2)/2;break}case Ws.EaseInCubic:e=t=>t*t*t;break;case Ws.EaseOutCubic:{e=t=>1-Math.pow(1-t,3);break}case Ws.EaseInOutCubic:{e=t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2;break}case Ws.EaseInQuart:e=t=>t*t*t*t;break;case Ws.EaseOutQuart:{e=t=>1-Math.pow(1-t,4);break}case Ws.EaseInOutQuart:{e=t=>t<.5?8*t*t*t*t:1-Math.pow(-2*t+2,4)/2;break}case Ws.EaseInQuint:e=t=>t*t*t*t*t;break;case Ws.EaseOutQuint:{e=t=>1-Math.pow(1-t,5);break}case Ws.EaseInOutQuint:{e=t=>t<.5?16*t*t*t*t*t:1-Math.pow(-2*t+2,5)/2;break}case Ws.EaseInExpo:{e=t=>t===0?0:Math.pow(2,10*t-10);break}case Ws.EaseOutExpo:{e=t=>t===1?1:1-Math.pow(2,-10*t);break}case Ws.EaseInOutExpo:{e=t=>t===0?0:t===1?1:t<.5?Math.pow(2,20*t-10)/2:(2-Math.pow(2,-20*t+10))/2;break}case Ws.EaseInCirc:{e=t=>1-Math.sqrt(1-Math.pow(t,2));break}case Ws.EaseOutCirc:{e=t=>Math.sqrt(1-Math.pow(t-1,2));break}case Ws.EaseInOutCirc:{e=t=>t<.5?(1-Math.sqrt(1-Math.pow(2*t,2)))/2:(Math.sqrt(1-Math.pow(-2*t+2,2))+1)/2;break}case Ws.EaseInBack:{e=t=>2.70158*t*t*t-1.70158*t*t;break}case Ws.EaseOutBack:{e=t=>2.70158*Math.pow(t-1,3)+1.70158*Math.pow(t-1,2);break}case Ws.EaseInOutBack:{e=t=>t<.5?Math.pow(2*t,2)*(3.5949095*2*t-2.5949095)/2:(Math.pow(2*t-2,2)*(3.5949095*(t*2-2)+3.5949095)+2)/2;break}case Ws.EaseInElastic:{e=t=>t===0?0:t===1?1:-Math.pow(2,10*t-10)*Math.sin((t*10-10.75)*(2*3.1415/3));break}case Ws.EaseOutElastic:{e=t=>t===0?0:t===1?1:Math.pow(2,-10*t)*Math.sin((t*10-.75)*(2*3.1415/3))+1;break}case Ws.EaseInOutElastic:{e=t=>t===0?0:t==1?1:t<.5?-(Math.pow(2,20*t-10)*Math.sin((20*t-11.125)*(2*3.1415/4.5)))/2:Math.pow(2,-20*t+10)*Math.sin((20*t-11.125)*(2*3.1415/4.5))/2+1;break}}return this.output._storedFunction=t=>{const i=this.input.getConnectedValue(t);switch(this.input.type){case ge.Float:return e(i);case ge.Vector2:return new Ue(e(i.x),e(i.y));case ge.Vector3:return new P(e(i.x),e(i.y),e(i.z));case ge.Vector4:return new Yt(e(i.x),e(i.y),e(i.z),e(i.w))}return 0},this}serialize(){const e=super.serialize();return e.curveType=this.type,e}_deserialize(e){super._deserialize(e),this.type=e.curveType}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.type = BABYLON.GeometryCurveBlockTypes.${Ws[this.type]};
`}}F([lt("Type",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"EaseInSine",value:Ws.EaseInSine},{label:"EaseOutSine",value:Ws.EaseOutSine},{label:"EaseInOutSine",value:Ws.EaseInOutSine},{label:"EaseInQuad",value:Ws.EaseInQuad},{label:"EaseOutQuad",value:Ws.EaseOutQuad},{label:"EaseInOutQuad",value:Ws.EaseInOutQuad},{label:"EaseInCubic",value:Ws.EaseInCubic},{label:"EaseOutCubic",value:Ws.EaseOutCubic},{label:"EaseInOutCubic",value:Ws.EaseInOutCubic},{label:"EaseInQuart",value:Ws.EaseInQuart},{label:"EaseOutQuart",value:Ws.EaseOutQuart},{label:"EaseInOutQuart",value:Ws.EaseInOutQuart},{label:"EaseInQuint",value:Ws.EaseInQuint},{label:"EaseOutQuint",value:Ws.EaseOutQuint},{label:"EaseInOutQuint",value:Ws.EaseInOutQuint},{label:"EaseInExpo",value:Ws.EaseInExpo},{label:"EaseOutExpo",value:Ws.EaseOutExpo},{label:"EaseInOutExpo",value:Ws.EaseInOutExpo},{label:"EaseInCirc",value:Ws.EaseInCirc},{label:"EaseOutCirc",value:Ws.EaseOutCirc},{label:"EaseInOutCirc",value:Ws.EaseInOutCirc},{label:"EaseInBack",value:Ws.EaseInBack},{label:"EaseOutBack",value:Ws.EaseOutBack},{label:"EaseInOutBack",value:Ws.EaseInOutBack},{label:"EaseInElastic",value:Ws.EaseInElastic},{label:"EaseOutElastic",value:Ws.EaseOutElastic},{label:"EaseInOutElastic",value:Ws.EaseInOutElastic}]})],gne.prototype,"type",void 0),ve("BABYLON.GeometryCurveBlock",gne);class PCe extends us{constructor(e){super(e),this.registerInput("color",ge.Vector3),this.registerInput("level",ge.Float,!0,0),this.registerOutput("output",ge.Vector3)}getClassName(){return"GeometryDesaturateBlock"}get color(){return this._inputs[0]}get level(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){if(!this.color.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}return this.output._storedFunction=e=>{const t=this.color.getConnectedValue(e),i=this.level.getConnectedValue(e),s=Math.min(t.x,t.y,t.z),r=Math.max(t.x,t.y,t.z),n=.5*(s+r);return new P(t.x*(1-i)+n*i,t.y*(1-i)+n*i,t.z*(1-i)+n*i)},this}}ve("BABYLON.GeometryDesaturateBlock",PCe);class OCe extends us{constructor(e){super(e),this.registerInput("value",ge.AutoDetect),this.registerInput("steps",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[1].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[1].acceptedConnectionPointTypes.push(ge.Float)}getClassName(){return"GeometryPosterizeBlock"}get value(){return this._inputs[0]}get steps(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){if(!this.value.isConnected||!this.steps.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}return this.output._storedFunction=e=>{const t=this.value.getConnectedValue(e),i=this.steps.getConnectedValue(e);let s=i;if(this.steps.type===ge.Float)switch(this.value.type){case ge.Vector2:s=new Ue(i,i);break;case ge.Vector3:s=new P(i,i,i);break;case ge.Vector4:s=new Yt(i,i,i,i);break}switch(this.value.type){case ge.Vector2:return new Ue(t.x/(1/s.x)*(1/s.x),t.y/(1/s.y)*(1/s.y));case ge.Vector3:return new P(t.x/(1/s.x)*(1/s.x),t.y/(1/s.y)*(1/s.y),t.z/(1/s.z)*(1/s.z));case ge.Vector4:return new Yt(t.x/(1/s.x)*(1/s.x),t.y/(1/s.y)*(1/s.y),t.z/(1/s.z)*(1/s.z),t.w/(1/s.w)*(1/s.w));default:return Math.floor(t/(1/i)*(1/i))}},this}}ve("BABYLON.GeometryPosterizeBlock",OCe);class RCe extends us{constructor(e){super(e),this.registerInput("value",ge.AutoDetect),this.registerInput("reference",ge.AutoDetect),this.registerInput("distance",ge.Float,!0,0),this.registerInput("replacement",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._linkConnectionTypes(0,1),this._linkConnectionTypes(0,3),this._inputs[0].excludedConnectionPointTypes.push(ge.Float),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[1].excludedConnectionPointTypes.push(ge.Float),this._inputs[1].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[3].excludedConnectionPointTypes.push(ge.Float),this._inputs[3].excludedConnectionPointTypes.push(ge.Matrix)}getClassName(){return"GeometryReplaceColorBlock"}get value(){return this._inputs[0]}get reference(){return this._inputs[1]}get distance(){return this._inputs[2]}get replacement(){return this._inputs[3]}get output(){return this._outputs[0]}_buildBlock(){if(!this.value.isConnected||!this.reference.isConnected||!this.replacement.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}return this.output._storedFunction=e=>{const t=this.value.getConnectedValue(e),i=this.reference.getConnectedValue(e),s=this.distance.getConnectedValue(e),r=this.replacement.getConnectedValue(e);return t.subtract(i).length()<s?r:t},this}}ve("BABYLON.GeometryReplaceColorBlock",RCe);class DCe extends us{constructor(e){super(e),this.registerInput("left",ge.AutoDetect),this.registerInput("right",ge.AutoDetect),this.registerOutput("output",ge.Float),this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push(ge.Int),this._inputs[0].excludedConnectionPointTypes.push(ge.Float),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[1].excludedConnectionPointTypes.push(ge.Float),this._inputs[1].excludedConnectionPointTypes.push(ge.Matrix)}getClassName(){return"GeometryDistanceBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){if(!this.left.isConnected||!this.right.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}return this.output._storedFunction=e=>{const t=this.left.getConnectedValue(e),i=this.right.getConnectedValue(e);return t.subtract(i).length()},this}}ve("BABYLON.GeometryDistanceBlock",DCe);class NCe extends us{constructor(e){super(e),this.registerInput("left",ge.AutoDetect),this.registerInput("right",ge.AutoDetect),this.registerOutput("output",ge.Float),this._linkConnectionTypes(0,1),this._inputs[0].excludedConnectionPointTypes.push(ge.Int),this._inputs[0].excludedConnectionPointTypes.push(ge.Float),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[1].excludedConnectionPointTypes.push(ge.Float),this._inputs[1].excludedConnectionPointTypes.push(ge.Matrix)}getClassName(){return"GeometryDotBlock"}get left(){return this._inputs[0]}get right(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){if(!this.left.isConnected||!this.right.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}return this.output._storedFunction=e=>{const t=this.left.getConnectedValue(e),i=this.right.getConnectedValue(e);return t.dot(i)},this}}ve("BABYLON.GeometryDotBlock",NCe);class wCe extends us{constructor(e){super(e),this.registerInput("value",ge.AutoDetect),this.registerOutput("output",ge.Float),this._inputs[0].excludedConnectionPointTypes.push(ge.Int),this._inputs[0].excludedConnectionPointTypes.push(ge.Float),this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix)}getClassName(){return"GeometryLengthBlock"}get value(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(){if(!this.value.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}return this.output._storedFunction=e=>this.value.getConnectedValue(e).length(),this}}ve("BABYLON.GeometryLengthBlock",wCe);class BCe extends us{constructor(e){super(e),this.registerInput("input",ge.Vector2),this.registerInput("angle",ge.Float,!0,0),this.registerOutput("output",ge.Vector2)}getClassName(){return"GeometryRotate2dBlock"}get input(){return this._inputs[0]}get angle(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){if(!this.input.isConnected){this.output._storedFunction=null,this.output._storedValue=null;return}return this.output._storedFunction=e=>{const t=this.input.getConnectedValue(e),i=this.angle.getConnectedValue(e);return new Ue(Math.cos(i)*t.x-Math.sin(i)*t.y,Math.sin(i)*t.x+Math.cos(i)*t.y)},this}}ve("BABYLON.GeometryRotate2dBlock",BCe);class zCe extends us{constructor(e){super(e),this.onInterceptionObservable=new xe(void 0,!0),this.registerInput("input",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0]}get buildExecutionTime(){return-1}getClassName(){return"GeometryInterceptorBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){super._buildBlock(e);const t=this._outputs[0],i=this._inputs[0];t._storedFunction=s=>{let r=i.getConnectedValue(s);return this.customFunction&&(r=this.customFunction(r,s)),this.onInterceptionObservable.notifyObservers(r),r}}}ve("BABYLON.GeometryInterceptorBlock",zCe);var Hs;(function(a){a[a.EaseInSine=0]="EaseInSine",a[a.EaseOutSine=1]="EaseOutSine",a[a.EaseInOutSine=2]="EaseInOutSine",a[a.EaseInQuad=3]="EaseInQuad",a[a.EaseOutQuad=4]="EaseOutQuad",a[a.EaseInOutQuad=5]="EaseInOutQuad",a[a.EaseInCubic=6]="EaseInCubic",a[a.EaseOutCubic=7]="EaseOutCubic",a[a.EaseInOutCubic=8]="EaseInOutCubic",a[a.EaseInQuart=9]="EaseInQuart",a[a.EaseOutQuart=10]="EaseOutQuart",a[a.EaseInOutQuart=11]="EaseInOutQuart",a[a.EaseInQuint=12]="EaseInQuint",a[a.EaseOutQuint=13]="EaseOutQuint",a[a.EaseInOutQuint=14]="EaseInOutQuint",a[a.EaseInExpo=15]="EaseInExpo",a[a.EaseOutExpo=16]="EaseOutExpo",a[a.EaseInOutExpo=17]="EaseInOutExpo",a[a.EaseInCirc=18]="EaseInCirc",a[a.EaseOutCirc=19]="EaseOutCirc",a[a.EaseInOutCirc=20]="EaseInOutCirc",a[a.EaseInBack=21]="EaseInBack",a[a.EaseOutBack=22]="EaseOutBack",a[a.EaseInOutBack=23]="EaseInOutBack",a[a.EaseInElastic=24]="EaseInElastic",a[a.EaseOutElastic=25]="EaseOutElastic",a[a.EaseInOutElastic=26]="EaseInOutElastic"})(Hs||(Hs={}));class _ne extends us{get type(){return this._type}set type(e){if(this._type!==e)switch(this._type=e,this._type){case Hs.EaseInSine:this._easingFunction=new lb,this._easingFunction.setEasingMode(lb.EASINGMODE_EASEIN);break;case Hs.EaseOutSine:this._easingFunction=new lb,this._easingFunction.setEasingMode(lb.EASINGMODE_EASEOUT);break;case Hs.EaseInOutSine:this._easingFunction=new lb,this._easingFunction.setEasingMode(lb.EASINGMODE_EASEINOUT);break;case Hs.EaseInQuad:this._easingFunction=new ob,this._easingFunction.setEasingMode(ob.EASINGMODE_EASEIN);break;case Hs.EaseOutQuad:this._easingFunction=new ob,this._easingFunction.setEasingMode(ob.EASINGMODE_EASEOUT);break;case Hs.EaseInOutQuad:this._easingFunction=new ob,this._easingFunction.setEasingMode(ob.EASINGMODE_EASEINOUT);break;case Hs.EaseInCubic:this._easingFunction=new GT,this._easingFunction.setEasingMode(GT.EASINGMODE_EASEIN);break;case Hs.EaseOutCubic:this._easingFunction=new GT,this._easingFunction.setEasingMode(GT.EASINGMODE_EASEOUT);break;case Hs.EaseInOutCubic:this._easingFunction=new GT,this._easingFunction.setEasingMode(GT.EASINGMODE_EASEINOUT);break;case Hs.EaseInQuart:this._easingFunction=new dL,this._easingFunction.setEasingMode(dL.EASINGMODE_EASEIN);break;case Hs.EaseOutQuart:this._easingFunction=new dL,this._easingFunction.setEasingMode(dL.EASINGMODE_EASEOUT);break;case Hs.EaseInOutQuart:this._easingFunction=new dL,this._easingFunction.setEasingMode(dL.EASINGMODE_EASEINOUT);break;case Hs.EaseInQuint:this._easingFunction=new fL,this._easingFunction.setEasingMode(fL.EASINGMODE_EASEIN);break;case Hs.EaseOutQuint:this._easingFunction=new fL,this._easingFunction.setEasingMode(fL.EASINGMODE_EASEOUT);break;case Hs.EaseInOutQuint:this._easingFunction=new fL,this._easingFunction.setEasingMode(fL.EASINGMODE_EASEINOUT);break;case Hs.EaseInExpo:this._easingFunction=new Dy,this._easingFunction.setEasingMode(Dy.EASINGMODE_EASEIN);break;case Hs.EaseOutExpo:this._easingFunction=new Dy,this._easingFunction.setEasingMode(Dy.EASINGMODE_EASEOUT);break;case Hs.EaseInOutExpo:this._easingFunction=new Dy,this._easingFunction.setEasingMode(Dy.EASINGMODE_EASEINOUT);break;case Hs.EaseInCirc:this._easingFunction=new Oy,this._easingFunction.setEasingMode(Oy.EASINGMODE_EASEIN);break;case Hs.EaseOutCirc:this._easingFunction=new Oy,this._easingFunction.setEasingMode(Oy.EASINGMODE_EASEOUT);break;case Hs.EaseInOutCirc:this._easingFunction=new Oy,this._easingFunction.setEasingMode(Oy.EASINGMODE_EASEINOUT);break;case Hs.EaseInBack:this._easingFunction=new Ry,this._easingFunction.setEasingMode(Ry.EASINGMODE_EASEIN);break;case Hs.EaseOutBack:this._easingFunction=new Ry,this._easingFunction.setEasingMode(Ry.EASINGMODE_EASEOUT);break;case Hs.EaseInOutBack:this._easingFunction=new Ry,this._easingFunction.setEasingMode(Ry.EASINGMODE_EASEINOUT);break;case Hs.EaseInElastic:this._easingFunction=new WT,this._easingFunction.setEasingMode(WT.EASINGMODE_EASEIN);break;case Hs.EaseOutElastic:this._easingFunction=new WT,this._easingFunction.setEasingMode(WT.EASINGMODE_EASEOUT);break;case Hs.EaseInOutElastic:this._easingFunction=new WT,this._easingFunction.setEasingMode(WT.EASINGMODE_EASEINOUT);break}}constructor(e){super(e),this._easingFunction=new lb,this._type=Hs.EaseInOutSine,this.registerInput("input",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[0],this._inputs[0].excludedConnectionPointTypes.push(ge.Matrix),this._inputs[0].excludedConnectionPointTypes.push(ge.Geometry),this._inputs[0].excludedConnectionPointTypes.push(ge.Texture)}getClassName(){return"GeometryEaseBlock"}get input(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){if(super._buildBlock(e),!this._easingFunction){this.output._storedFunction=null,this.output._storedValue=null;return}switch(this.input.type){case ge.Int:case ge.Float:{this.output._storedFunction=t=>{const i=this.input.getConnectedValue(t);return this._easingFunction.ease(i)};break}case ge.Vector2:{this.output._storedFunction=t=>{const i=this.input.getConnectedValue(t);return new Ue(this._easingFunction.ease(i.x),this._easingFunction.ease(i.y))};break}case ge.Vector3:{this.output._storedFunction=t=>{const i=this.input.getConnectedValue(t);return new P(this._easingFunction.ease(i.x),this._easingFunction.ease(i.y),this._easingFunction.ease(i.z))};break}case ge.Vector4:{this.output._storedFunction=t=>{const i=this.input.getConnectedValue(t);return new Yt(this._easingFunction.ease(i.x),this._easingFunction.ease(i.y),this._easingFunction.ease(i.z),this._easingFunction.ease(i.w))};break}}return this}serialize(){const e=super.serialize();return e.type=this.type,e}_deserialize(e){super._deserialize(e),this.type=e.type}_dumpPropertiesCode(){return super._dumpPropertiesCode()+`${this._codeVariableName}.type = BABYLON.GeometryEaseBlockTypes.${Hs[this.type]};
`}}F([lt("Type",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"EaseInSine",value:Hs.EaseInSine},{label:"EaseOutSine",value:Hs.EaseOutSine},{label:"EaseInOutSine",value:Hs.EaseInOutSine},{label:"EaseInQuad",value:Hs.EaseInQuad},{label:"EaseOutQuad",value:Hs.EaseOutQuad},{label:"EaseInOutQuad",value:Hs.EaseInOutQuad},{label:"EaseInCubic",value:Hs.EaseInCubic},{label:"EaseOutCubic",value:Hs.EaseOutCubic},{label:"EaseInOutCubic",value:Hs.EaseInOutCubic},{label:"EaseInQuart",value:Hs.EaseInQuart},{label:"EaseOutQuart",value:Hs.EaseOutQuart},{label:"EaseInOutQuart",value:Hs.EaseInOutQuart},{label:"EaseInQuint",value:Hs.EaseInQuint},{label:"EaseOutQuint",value:Hs.EaseOutQuint},{label:"EaseInOutQuint",value:Hs.EaseInOutQuint},{label:"EaseInExpo",value:Hs.EaseInExpo},{label:"EaseOutExpo",value:Hs.EaseOutExpo},{label:"EaseInOutExpo",value:Hs.EaseInOutExpo},{label:"EaseInCirc",value:Hs.EaseInCirc},{label:"EaseOutCirc",value:Hs.EaseOutCirc},{label:"EaseInOutCirc",value:Hs.EaseInOutCirc},{label:"EaseInBack",value:Hs.EaseInBack},{label:"EaseOutBack",value:Hs.EaseOutBack},{label:"EaseInOutBack",value:Hs.EaseInOutBack},{label:"EaseInElastic",value:Hs.EaseInElastic},{label:"EaseOutElastic",value:Hs.EaseOutElastic},{label:"EaseInOutElastic",value:Hs.EaseInOutElastic}]})],_ne.prototype,"type",null),ve("BABYLON.GeometryEaseBlock",_ne);var g5;(function(a){a[a.Max=0]="Max",a[a.Min=1]="Min",a[a.Sum=2]="Sum"})(g5||(g5={}));class fY extends us{constructor(e){super(e),this.aggregation=g5.Sum,this.evaluateContext=!0,this.registerInput("geometry",ge.Geometry),this.registerInput("source",ge.AutoDetect),this.registerOutput("output",ge.BasedOnInput),this._outputs[0]._typeConnectionSource=this._inputs[1]}getExecutionIndex(){return this._currentIndex}getExecutionLoopIndex(){return this._currentIndex}getExecutionFaceIndex(){return 0}getClassName(){return"AggregatorBlock"}get geometry(){return this._inputs[0]}get source(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(e){const t=i=>{if(i.pushExecutionContext(this),this._vertexData=this.geometry.getConnectedValue(i),i.pushGeometryContext(this._vertexData),!this._vertexData||!this._vertexData.positions||!this.source.isConnected){i.restoreGeometryContext(),i.restoreExecutionContext(),this.output._storedValue=null;return}const s=this._vertexData.positions.length/3,r=[];for(this._currentIndex=0;this._currentIndex<s;this._currentIndex++)r.push(this.source.getConnectedValue(i));let n=null;switch(this.aggregation){case g5.Max:{n=(l,c)=>Math.max(l,c);break}case g5.Min:{n=(l,c)=>Math.min(l,c);break}case g5.Sum:{n=(l,c)=>l+c;break}}if(!n){i.restoreGeometryContext(),i.restoreExecutionContext(),this.output._storedFunction=null,this.output._storedValue=null;return}let o;switch(this.source.type){case ge.Int:case ge.Float:{o=r.reduce(n);break}case ge.Vector2:{const l=r.map(u=>u.x).reduce(n),c=r.map(u=>u.y).reduce(n);o=new Ue(l,c);break}case ge.Vector3:{const l=r.map(f=>f.x).reduce(n),c=r.map(f=>f.y).reduce(n),u=r.map(f=>f.z).reduce(n);o=new P(l,c,u);break}case ge.Vector4:{const l=r.map(p=>p.x).reduce(n),c=r.map(p=>p.y).reduce(n),u=r.map(p=>p.z).reduce(n),f=r.map(p=>p.w).reduce(n);o=new Yt(l,c,u,f);break}}return i.restoreGeometryContext(),i.restoreExecutionContext(),o};this.evaluateContext?this.output._storedFunction=t:(this.output._storedFunction=null,this.output._storedValue=t(e))}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.evaluateContext = ${this.evaluateContext?"true":"false"};
`;return e+=`${this._codeVariableName}.aggregation = BABYLON.Aggregations.${g5[this.aggregation]};
`,e}serialize(){const e=super.serialize();return e.evaluateContext=this.evaluateContext,e.aggregation=this.aggregation,e}_deserialize(e){super._deserialize(e),e.evaluateContext!==void 0&&(this.evaluateContext=e.evaluateContext),e.aggregation!==void 0&&(this.aggregation=e.aggregation)}}F([lt("Aggregation",4,"ADVANCED",{notifiers:{rebuild:!0},embedded:!0,options:[{label:"Max",value:g5.Max},{label:"Min",value:g5.Min},{label:"Sum",value:g5.Sum}]})],fY.prototype,"aggregation",void 0),F([lt("Evaluate context",0,"ADVANCED",{notifiers:{rebuild:!0}})],fY.prototype,"evaluateContext",void 0),ve("BABYLON.AggregatorBlock",fY);class pY extends us{constructor(e){super(e),this.flatOnly=!1,this.loopWeight=1,this.registerInput("geometry",ge.Geometry),this.registerInput("level",ge.Int,!0,1,0,8),this.registerOutput("output",ge.Geometry)}getClassName(){return"SubdivideBlock"}get geometry(){return this._inputs[0]}get level(){return this._inputs[1]}get output(){return this._outputs[0]}_buildBlock(){this.output._storedFunction=e=>{if(!this.geometry.isConnected)return null;const t=this.geometry.getConnectedValue(e);if(!t)return null;const i=this.level.getConnectedValue(e);return KAe(t,i,{flatOnly:this.flatOnly,weight:this.loopWeight})}}_dumpPropertiesCode(){let e=super._dumpPropertiesCode()+`${this._codeVariableName}.flatOnly = ${this.flatOnly?"true":"false"};
`;return e+=`${this._codeVariableName}.loopWeight = ${this.loopWeight};
`,e}serialize(){const e=super.serialize();return e.flatOnly=this.flatOnly,e.loopWeight=this.loopWeight,e}_deserialize(e){super._deserialize(e),this.flatOnly=e.flatOnly,this.loopWeight=e.loopWeight}}F([lt("Flat Only",0,"ADVANCED",{embedded:!0,notifiers:{rebuild:!0}})],pY.prototype,"flatOnly",void 0),F([lt("Loop weight",1,"ADVANCED",{embedded:!0,min:0,max:1,notifiers:{rebuild:!0}})],pY.prototype,"loopWeight",void 0),ve("BABYLON.SubdivideBlock",pY);const bb=(a,e)=>{const t=(1<<e)-1;return(a&t)/t},FCe=(a,e)=>{e.x=bb(a>>>21,11),e.y=bb(a>>>11,10),e.z=bb(a,11)},nHe=(a,e)=>{e[0]=bb(a>>>24,8)*255,e[1]=bb(a>>>16,8)*255,e[2]=bb(a>>>8,8)*255,e[3]=bb(a,8)*255},aHe=(a,e)=>{const t=1/(Math.sqrt(2)*.5),i=(bb(a>>>20,10)-.5)*t,s=(bb(a>>>10,10)-.5)*t,r=(bb(a,10)-.5)*t,n=Math.sqrt(1-(i*i+s*s+r*r));switch(a>>>30){case 0:e.set(n,i,s,r);break;case 1:e.set(i,n,s,r);break;case 2:e.set(i,s,n,r);break;case 3:e.set(i,s,r,n);break}};var kCe;(function(a){a[a.FLOAT=0]="FLOAT",a[a.INT=1]="INT",a[a.UINT=2]="UINT",a[a.DOUBLE=3]="DOUBLE",a[a.UCHAR=4]="UCHAR",a[a.UNDEFINED=5]="UNDEFINED"})(kCe||(kCe={}));var UCe;(function(a){a[a.MIN_X=0]="MIN_X",a[a.MIN_Y=1]="MIN_Y",a[a.MIN_Z=2]="MIN_Z",a[a.MAX_X=3]="MAX_X",a[a.MAX_Y=4]="MAX_Y",a[a.MAX_Z=5]="MAX_Z",a[a.MIN_SCALE_X=6]="MIN_SCALE_X",a[a.MIN_SCALE_Y=7]="MIN_SCALE_Y",a[a.MIN_SCALE_Z=8]="MIN_SCALE_Z",a[a.MAX_SCALE_X=9]="MAX_SCALE_X",a[a.MAX_SCALE_Y=10]="MAX_SCALE_Y",a[a.MAX_SCALE_Z=11]="MAX_SCALE_Z",a[a.PACKED_POSITION=12]="PACKED_POSITION",a[a.PACKED_ROTATION=13]="PACKED_ROTATION",a[a.PACKED_SCALE=14]="PACKED_SCALE",a[a.PACKED_COLOR=15]="PACKED_COLOR",a[a.X=16]="X",a[a.Y=17]="Y",a[a.Z=18]="Z",a[a.SCALE_0=19]="SCALE_0",a[a.SCALE_1=20]="SCALE_1",a[a.SCALE_2=21]="SCALE_2",a[a.DIFFUSE_RED=22]="DIFFUSE_RED",a[a.DIFFUSE_GREEN=23]="DIFFUSE_GREEN",a[a.DIFFUSE_BLUE=24]="DIFFUSE_BLUE",a[a.OPACITY=25]="OPACITY",a[a.F_DC_0=26]="F_DC_0",a[a.F_DC_1=27]="F_DC_1",a[a.F_DC_2=28]="F_DC_2",a[a.F_DC_3=29]="F_DC_3",a[a.ROT_0=30]="ROT_0",a[a.ROT_1=31]="ROT_1",a[a.ROT_2=32]="ROT_2",a[a.ROT_3=33]="ROT_3",a[a.MIN_COLOR_R=34]="MIN_COLOR_R",a[a.MIN_COLOR_G=35]="MIN_COLOR_G",a[a.MIN_COLOR_B=36]="MIN_COLOR_B",a[a.MAX_COLOR_R=37]="MAX_COLOR_R",a[a.MAX_COLOR_G=38]="MAX_COLOR_G",a[a.MAX_COLOR_B=39]="MAX_COLOR_B",a[a.SH_0=40]="SH_0",a[a.SH_1=41]="SH_1",a[a.SH_2=42]="SH_2",a[a.SH_3=43]="SH_3",a[a.SH_4=44]="SH_4",a[a.SH_5=45]="SH_5",a[a.SH_6=46]="SH_6",a[a.SH_7=47]="SH_7",a[a.SH_8=48]="SH_8",a[a.SH_9=49]="SH_9",a[a.SH_10=50]="SH_10",a[a.SH_11=51]="SH_11",a[a.SH_12=52]="SH_12",a[a.SH_13=53]="SH_13",a[a.SH_14=54]="SH_14",a[a.SH_15=55]="SH_15",a[a.SH_16=56]="SH_16",a[a.SH_17=57]="SH_17",a[a.SH_18=58]="SH_18",a[a.SH_19=59]="SH_19",a[a.SH_20=60]="SH_20",a[a.SH_21=61]="SH_21",a[a.SH_22=62]="SH_22",a[a.SH_23=63]="SH_23",a[a.SH_24=64]="SH_24",a[a.SH_25=65]="SH_25",a[a.SH_26=66]="SH_26",a[a.SH_27=67]="SH_27",a[a.SH_28=68]="SH_28",a[a.SH_29=69]="SH_29",a[a.SH_30=70]="SH_30",a[a.SH_31=71]="SH_31",a[a.SH_32=72]="SH_32",a[a.SH_33=73]="SH_33",a[a.SH_34=74]="SH_34",a[a.SH_35=75]="SH_35",a[a.SH_36=76]="SH_36",a[a.SH_37=77]="SH_37",a[a.SH_38=78]="SH_38",a[a.SH_39=79]="SH_39",a[a.SH_40=80]="SH_40",a[a.SH_41=81]="SH_41",a[a.SH_42=82]="SH_42",a[a.SH_43=83]="SH_43",a[a.SH_44=84]="SH_44",a[a.UNDEFINED=85]="UNDEFINED"})(UCe||(UCe={}));class Gn extends Ne{get shDegree(){return this._shDegree}get splatsData(){return this._splatsData}get covariancesATexture(){return this._covariancesATexture}get covariancesBTexture(){return this._covariancesBTexture}get centersTexture(){return this._centersTexture}get colorsTexture(){return this._colorsTexture}get shTextures(){return this._shTextures}set material(e){this._material=e,this._material.backFaceCulling=!0,this._material.cullBackFaces=!1,e.resetDrawCache()}get material(){return this._material}constructor(e,t=null,i=null,s=!1){super(e,i),this._vertexCount=0,this._worker=null,this._frameIdLastUpdate=-1,this._modelViewMatrix=me.Identity(),this._canPostToWorker=!0,this._readyToDisplay=!1,this._covariancesATexture=null,this._covariancesBTexture=null,this._centersTexture=null,this._colorsTexture=null,this._splatPositions=null,this._splatIndex=null,this._shTextures=null,this._splatsData=null,this._sh=null,this._keepInRam=!1,this._delayedTextureUpdate=null,this._oldDirection=new P,this._useRGBACovariants=!1,this._material=null,this._tmpCovariances=[0,0,0,0,0,0],this._sortIsDirty=!1,this._shDegree=0;const r=new wt;r.positions=[-3,-2,0,3,-2,0,0,4,0],r.indices=[0,1,2],r.applyToMesh(this),this.subMeshes=[],new Lc(0,0,3,0,3,this),this.setEnabled(!1),this._useRGBACovariants=!this.getEngine().isWebGPU&&this.getEngine().version===1,this._keepInRam=s,t&&this.loadFileAsync(t),this._material=new d9(this.name+"_material",this._scene)}getClassName(){return"GaussianSplattingMesh"}getTotalVertices(){return this._vertexCount}isReady(e=!1){return super.isReady(e,!0)?this._readyToDisplay?!0:(this._postToWorker(!0),!1):!1}_postToWorker(e=!1){const t=this.getScene().getFrameId();if((e||t!==this._frameIdLastUpdate)&&this._worker&&this._scene.activeCamera&&this._canPostToWorker){const i=this._scene.activeCamera.getViewMatrix();this.getWorldMatrix().multiplyToRef(i,this._modelViewMatrix),i.invertToRef(ae.Matrix[0]),this.getWorldMatrix().multiplyToRef(ae.Matrix[0],ae.Matrix[1]),P.TransformNormalToRef(P.Forward(this._scene.useRightHandedSystem),ae.Matrix[1],ae.Vector3[2]),ae.Vector3[2].normalize();const s=P.Dot(ae.Vector3[2],this._oldDirection);(e||Math.abs(s-1)>=.01)&&(this._oldDirection.copyFrom(ae.Vector3[2]),this._frameIdLastUpdate=t,this._canPostToWorker=!1,this._worker.postMessage({view:this._modelViewMatrix.m,depthMix:this._depthMix,useRightHandedSystem:this._scene.useRightHandedSystem},[this._depthMix.buffer]))}}render(e,t,i){return this._postToWorker(),super.render(e,t,i)}static _TypeNameToEnum(e){switch(e){case"float":return 0;case"int":return 1;case"uint":return 2;case"double":return 3;case"uchar":return 4}return 5}static _ValueNameToEnum(e){switch(e){case"min_x":return 0;case"min_y":return 1;case"min_z":return 2;case"max_x":return 3;case"max_y":return 4;case"max_z":return 5;case"min_scale_x":return 6;case"min_scale_y":return 7;case"min_scale_z":return 8;case"max_scale_x":return 9;case"max_scale_y":return 10;case"max_scale_z":return 11;case"packed_position":return 12;case"packed_rotation":return 13;case"packed_scale":return 14;case"packed_color":return 15;case"x":return 16;case"y":return 17;case"z":return 18;case"scale_0":return 19;case"scale_1":return 20;case"scale_2":return 21;case"diffuse_red":case"red":return 22;case"diffuse_green":case"green":return 23;case"diffuse_blue":case"blue":return 24;case"f_dc_0":return 26;case"f_dc_1":return 27;case"f_dc_2":return 28;case"f_dc_3":return 29;case"opacity":return 25;case"rot_0":return 30;case"rot_1":return 31;case"rot_2":return 32;case"rot_3":return 33;case"min_r":return 34;case"min_g":return 35;case"min_b":return 36;case"max_r":return 37;case"max_g":return 38;case"max_b":return 39;case"f_rest_0":return 40;case"f_rest_1":return 41;case"f_rest_2":return 42;case"f_rest_3":return 43;case"f_rest_4":return 44;case"f_rest_5":return 45;case"f_rest_6":return 46;case"f_rest_7":return 47;case"f_rest_8":return 48;case"f_rest_9":return 49;case"f_rest_10":return 50;case"f_rest_11":return 51;case"f_rest_12":return 52;case"f_rest_13":return 53;case"f_rest_14":return 54;case"f_rest_15":return 55;case"f_rest_16":return 56;case"f_rest_17":return 57;case"f_rest_18":return 58;case"f_rest_19":return 59;case"f_rest_20":return 60;case"f_rest_21":return 61;case"f_rest_22":return 62;case"f_rest_23":return 63;case"f_rest_24":return 64;case"f_rest_25":return 65;case"f_rest_26":return 66;case"f_rest_27":return 67;case"f_rest_28":return 68;case"f_rest_29":return 69;case"f_rest_30":return 70;case"f_rest_31":return 71;case"f_rest_32":return 72;case"f_rest_33":return 73;case"f_rest_34":return 74;case"f_rest_35":return 75;case"f_rest_36":return 76;case"f_rest_37":return 77;case"f_rest_38":return 78;case"f_rest_39":return 79;case"f_rest_40":return 80;case"f_rest_41":return 81;case"f_rest_42":return 82;case"f_rest_43":return 83;case"f_rest_44":return 84}return 85}static ParseHeader(e){const t=new Uint8Array(e),i=new TextDecoder().decode(t.slice(0,1024*10)),s=`end_header
`,r=i.indexOf(s);if(r<0||!i)return null;const n=parseInt(/element vertex (\d+)\n/.exec(i)[1]),o=/element chunk (\d+)\n/.exec(i);let l=0;o&&(l=parseInt(o[1]));let c=0,u=0;const f={double:8,int:4,uint:4,float:4,short:2,ushort:2,uchar:1,list:0};let p;(function(M){M[M.Vertex=0]="Vertex",M[M.Chunk=1]="Chunk"})(p||(p={}));let m=1;const _=[],d=[],h=i.slice(0,r).split(`
`);let x=0;for(const M of h)if(M.startsWith("property ")){const[,T,O]=M.split(" "),R=Gn._ValueNameToEnum(O);R>=84?x=3:R>=64?x=2:R>=48&&(x=1);const I=Gn._TypeNameToEnum(T);m==1?(d.push({value:R,type:I,offset:u}),u+=f[T]):m==0&&(_.push({value:R,type:I,offset:c}),c+=f[T]),f[T]||de.Warn(`Unsupported property type: ${T}.`)}else if(M.startsWith("element ")){const[,T]=M.split(" ");T=="chunk"?m=1:T=="vertex"&&(m=0)}const A=new DataView(e,r+s.length),S=new ArrayBuffer(Gn._RowOutputLength*n);let E=null,b=0;return x&&(b=((x+1)*(x+1)-1)*3,E=new ArrayBuffer(b*n)),{vertexCount:n,chunkCount:l,rowVertexLength:c,rowChunkLength:u,vertexProperties:_,chunkProperties:d,dataView:A,buffer:S,shDegree:x,shCoefficientCount:b,shBuffer:E}}static _GetCompressedChunks(e,t){if(!e.chunkCount)return null;const i=e.dataView,s=new Array(e.chunkCount);for(let r=0;r<e.chunkCount;r++){const n={min:new P,max:new P,minScale:new P,maxScale:new P,minColor:new P(0,0,0),maxColor:new P(1,1,1)};s[r]=n;for(let o=0;o<e.chunkProperties.length;o++){const l=e.chunkProperties[o];let c;switch(l.type){case 0:c=i.getFloat32(l.offset+t.value,!0);break;default:continue}switch(l.value){case 0:n.min.x=c;break;case 1:n.min.y=c;break;case 2:n.min.z=c;break;case 3:n.max.x=c;break;case 4:n.max.y=c;break;case 5:n.max.z=c;break;case 6:n.minScale.x=c;break;case 7:n.minScale.y=c;break;case 8:n.minScale.z=c;break;case 9:n.maxScale.x=c;break;case 10:n.maxScale.y=c;break;case 11:n.maxScale.z=c;break;case 34:n.minColor.x=c;break;case 35:n.minColor.y=c;break;case 36:n.minColor.z=c;break;case 37:n.maxColor.x=c;break;case 38:n.maxColor.y=c;break;case 39:n.maxColor.z=c;break}}t.value+=e.rowChunkLength}return s}static _GetSplat(e,t,i,s){const r=ae.Quaternion[0],n=ae.Vector3[0],o=Gn._RowOutputLength,l=e.buffer,c=e.dataView,u=new Float32Array(l,t*o,3),f=new Float32Array(l,t*o+12,3),p=new Uint8ClampedArray(l,t*o+24,4),m=new Uint8ClampedArray(l,t*o+28,4);let _=null;e.shBuffer&&(_=new Uint8ClampedArray(e.shBuffer,t*e.shCoefficientCount,e.shCoefficientCount));const d=t>>8;let h=255,x=0,A=0,S=0;for(let E=0;E<e.vertexProperties.length;E++){const b=e.vertexProperties[E];let M;switch(b.type){case 0:M=c.getFloat32(s.value+b.offset,!0);break;case 1:M=c.getInt32(s.value+b.offset,!0);break;case 2:M=c.getUint32(s.value+b.offset,!0);break;case 3:M=c.getFloat64(s.value+b.offset,!0);break;case 4:M=c.getUint8(s.value+b.offset);break;default:continue}switch(b.value){case 12:{const T=i[d];FCe(M,n),u[0]=pd.Lerp(T.min.x,T.max.x,n.x),u[1]=pd.Lerp(T.min.y,T.max.y,n.y),u[2]=pd.Lerp(T.min.z,T.max.z,n.z)}break;case 13:aHe(M,r),h=r.w,x=-r.z,A=r.y,S=-r.x;break;case 14:{const T=i[d];FCe(M,n),f[0]=Math.exp(pd.Lerp(T.minScale.x,T.maxScale.x,n.x)),f[1]=Math.exp(pd.Lerp(T.minScale.y,T.maxScale.y,n.y)),f[2]=Math.exp(pd.Lerp(T.minScale.z,T.maxScale.z,n.z))}break;case 15:{const T=i[d];nHe(M,p),p[0]=pd.Lerp(T.minColor.x,T.maxColor.x,p[0]/255)*255,p[1]=pd.Lerp(T.minColor.y,T.maxColor.y,p[1]/255)*255,p[2]=pd.Lerp(T.minColor.z,T.maxColor.z,p[2]/255)*255}break;case 16:u[0]=M;break;case 17:u[1]=M;break;case 18:u[2]=M;break;case 19:f[0]=Math.exp(M);break;case 20:f[1]=Math.exp(M);break;case 21:f[2]=Math.exp(M);break;case 22:p[0]=M;break;case 23:p[1]=M;break;case 24:p[2]=M;break;case 26:p[0]=(.5+Gn._SH_C0*M)*255;break;case 27:p[1]=(.5+Gn._SH_C0*M)*255;break;case 28:p[2]=(.5+Gn._SH_C0*M)*255;break;case 29:p[3]=(.5+Gn._SH_C0*M)*255;break;case 25:p[3]=1/(1+Math.exp(-M))*255;break;case 30:h=M;break;case 31:x=M;break;case 32:A=M;break;case 33:S=M;break}if(_&&b.value>=40&&b.value<=84){const T=pd.Clamp(M*127.5+127.5,0,255),O=b.value-40;_[O]=T}}r.set(x,A,S,h),r.normalize(),m[0]=r.w*128+128,m[1]=r.x*128+128,m[2]=r.y*128+128,m[3]=r.z*128+128,s.value+=e.rowVertexLength}static*ConvertPLYWithSHToSplat(e,t=!1){const i=Gn.ParseHeader(e);if(!i)return{buffer:e};const s={value:0},r=Gn._GetCompressedChunks(i,s);for(let o=0;o<i.vertexCount;o++)Gn._GetSplat(i,o,r,s),o%Gn._PlyConversionBatchSize===0&&t&&(yield);let n=null;if(i.shDegree&&i.shBuffer){const o=Math.ceil(i.shCoefficientCount/16);let l=0;const c=new Uint8Array(i.shBuffer);n=[];const u=i.vertexCount,f=ei.LastCreatedEngine;if(f){const p=f.getCaps().maxTextureSize,m=Math.ceil(u/p);for(let _=0;_<o;_++){const d=new Uint8Array(m*p*4*4);n.push(d)}for(let _=0;_<u;_++)for(let d=0;d<i.shCoefficientCount;d++){const h=c[l++],x=Math.floor(d/16),A=n[x],S=d%16,E=_*16;A[S+E]=h}}}return{buffer:i.buffer,sh:n}}static*ConvertPLYToSplat(e,t=!1){const i=Gn.ParseHeader(e);if(!i)return e;const s={value:0},r=Gn._GetCompressedChunks(i,s);for(let n=0;n<i.vertexCount;n++)Gn._GetSplat(i,n,r,s),n%Gn._PlyConversionBatchSize===0&&t&&(yield);return i.buffer}static async ConvertPLYToSplatAsync(e){return X9(Gn.ConvertPLYToSplat(e,!0),xw())}static async ConvertPLYWithSHToSplatAsync(e){return X9(Gn.ConvertPLYWithSHToSplat(e,!0),xw())}loadDataAsync(e){return this.updateDataAsync(e)}loadFileAsync(e){return Le.LoadFileAsync(e,!0).then(async t=>{Gn.ConvertPLYWithSHToSplatAsync(t).then(i=>{this.updateDataAsync(i.buffer,i.sh)})})}dispose(e){var t,i,s,r,n;(t=this._covariancesATexture)==null||t.dispose(),(i=this._covariancesBTexture)==null||i.dispose(),(s=this._centersTexture)==null||s.dispose(),(r=this._colorsTexture)==null||r.dispose(),this._shTextures&&this._shTextures.forEach(o=>{o.dispose()}),this._covariancesATexture=null,this._covariancesBTexture=null,this._centersTexture=null,this._colorsTexture=null,this._shTextures=null,(n=this._worker)==null||n.terminate(),this._worker=null,super.dispose(e,!0)}_copyTextures(e){var t,i,s,r;this._covariancesATexture=(t=e.covariancesATexture)==null?void 0:t.clone(),this._covariancesBTexture=(i=e.covariancesBTexture)==null?void 0:i.clone(),this._centersTexture=(s=e.centersTexture)==null?void 0:s.clone(),this._colorsTexture=(r=e.colorsTexture)==null?void 0:r.clone(),e._shTextures&&(this._shTextures=[],this._shTextures.forEach(n=>{var o;(o=this._shTextures)==null||o.push(n.clone())}))}clone(e=""){const t=new Gn(e,void 0,this.getScene());t._copySource(this),t.makeGeometryUnique(),t._vertexCount=this._vertexCount,t._copyTextures(this),t._modelViewMatrix=me.Identity(),t._splatPositions=this._splatPositions,t._readyToDisplay=!1,t._instanciateWorker();const i=this.getBoundingInfo();return t.getBoundingInfo().reConstruct(i.minimum,i.maximum,this.getWorldMatrix()),t.forcedInstanceCount=t._vertexCount,t.setEnabled(!0),t}_makeSplat(e,t,i,s,r,n,o,l){const c=ae.Matrix[0],u=ae.Matrix[1],f=ae.Quaternion[0],p=this._useRGBACovariants?4:2,m=t[8*e+0],_=-t[8*e+1],d=t[8*e+2];this._splatPositions[4*e+0]=m,this._splatPositions[4*e+1]=_,this._splatPositions[4*e+2]=d,o.minimizeInPlaceFromFloats(m,_,d),l.maximizeInPlaceFromFloats(m,_,d),f.set((i[32*e+28+1]-127.5)/127.5,(i[32*e+28+2]-127.5)/127.5,(i[32*e+28+3]-127.5)/127.5,-(i[32*e+28+0]-127.5)/127.5),f.toRotationMatrix(c),me.ScalingToRef(t[8*e+3+0]*2,t[8*e+3+1]*2,t[8*e+3+2]*2,u);const h=c.multiplyToRef(u,ae.Matrix[0]).m,x=this._tmpCovariances;x[0]=h[0]*h[0]+h[1]*h[1]+h[2]*h[2],x[1]=h[0]*h[4]+h[1]*h[5]+h[2]*h[6],x[2]=h[0]*h[8]+h[1]*h[9]+h[2]*h[10],x[3]=h[4]*h[4]+h[5]*h[5]+h[6]*h[6],x[4]=h[4]*h[8]+h[5]*h[9]+h[6]*h[10],x[5]=h[8]*h[8]+h[9]*h[9]+h[10]*h[10];let A=-1e4;for(let E=0;E<6;E++)A=Math.max(A,Math.abs(x[E]));this._splatPositions[4*e+3]=A;const S=A;s[e*4+0]=H1(x[0]/S),s[e*4+1]=H1(x[1]/S),s[e*4+2]=H1(x[2]/S),s[e*4+3]=H1(x[3]/S),r[e*p+0]=H1(x[4]/S),r[e*p+1]=H1(x[5]/S),n[e*4+0]=i[32*e+24+0],n[e*4+1]=i[32*e+24+1],n[e*4+2]=i[32*e+24+2],n[e*4+3]=i[32*e+24+3]}_updateTextures(e,t,i,s){const r=this._getTextureSize(this._vertexCount),n=(u,f,p,m)=>new Ur(u,f,p,m,this._scene,!1,!1,2,1),o=(u,f,p,m)=>new Ur(u,f,p,m,this._scene,!1,!1,2,0),l=(u,f,p,m)=>new Ur(u,f,p,m,this._scene,!1,!1,1,7),c=(u,f,p,m)=>new Ur(u,f,p,m,this._scene,!1,!1,2,2);if(this._covariancesATexture){this._delayedTextureUpdate={covA:e,covB:t,colors:i,centers:this._splatPositions,sh:s};const u=Float32Array.from(this._splatPositions),f=this._vertexCount;this._worker.postMessage({positions:u,vertexCount:f},[u.buffer]),this._postToWorker(!0)}else this._covariancesATexture=c(e,r.x,r.y,5),this._covariancesBTexture=c(t,r.x,r.y,this._useRGBACovariants?5:7),this._centersTexture=n(this._splatPositions,r.x,r.y,5),this._colorsTexture=o(i,r.x,r.y,5),s&&(this._shTextures=[],s.forEach(u=>{const f=new Uint32Array(u.buffer),p=l(f,r.x,r.y,11);p.wrapU=0,p.wrapV=0,this._shTextures.push(p)})),this._instanciateWorker()}*_updateData(e,t,i){this._covariancesATexture||(this._readyToDisplay=!1);const s=new Uint8Array(e),r=new Float32Array(s.buffer);this._keepInRam&&(this._splatsData=e,i&&(this._sh=i));const n=s.length/Gn._RowOutputLength;n!=this._vertexCount&&this._updateSplatIndexBuffer(n),this._vertexCount=n,this._shDegree=i?i.length:0;const o=this._getTextureSize(n),l=o.x*o.y,c=Gn.ProgressiveUpdateAmount??o.y,u=o.x*c;this._splatPositions=new Float32Array(4*l);const f=new Uint16Array(l*4),p=new Uint16Array((this._useRGBACovariants?4:2)*l),m=new Uint8Array(l*4),_=new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),d=new P(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);if(Gn.ProgressiveUpdateAmount){this._updateTextures(f,p,m,i),this.setEnabled(!0);const h=Math.ceil(o.y/c);for(let S=0;S<h;S++){const E=S*c,b=E*o.x;for(let M=0;M<u;M++)this._makeSplat(b+M,r,s,f,p,m,_,d);this._updateSubTextures(this._splatPositions,f,p,m,E,Math.min(c,o.y-E)),this.getBoundingInfo().reConstruct(_,d,this.getWorldMatrix()),t&&(yield)}const x=Float32Array.from(this._splatPositions),A=this._vertexCount;this._worker.postMessage({positions:x,vertexCount:A},[x.buffer]),this._sortIsDirty=!0}else{for(let h=0;h<n;h++)this._makeSplat(h,r,s,f,p,m,_,d),t&&h%Gn._SplatBatchSize===0&&(yield);this._updateTextures(f,p,m,i),this.getBoundingInfo().reConstruct(_,d,this.getWorldMatrix()),this.setEnabled(!0)}this._postToWorker(!0)}async updateDataAsync(e,t){return X9(this._updateData(e,!0,t),xw())}updateData(e,t){bw(this._updateData(e,!1,t))}refreshBoundingInfo(){return this.thinInstanceRefreshBoundingInfo(!1),this}_updateSplatIndexBuffer(e){(!this._splatIndex||e>this._splatIndex.length)&&(this._splatIndex=new Float32Array(e),this.thinInstanceSetBuffer("splatIndex",this._splatIndex,1,!1)),this.forcedInstanceCount=e}_updateSubTextures(e,t,i,s,r,n,o){const l=(x,A,S,E,b)=>{this.getEngine().updateTextureData(x.getInternalTexture(),A,0,E,S,b,0,0,!1)},c=this._getTextureSize(this._vertexCount),u=this._useRGBACovariants?4:2,f=r*c.x,p=n*c.x,m=new Uint16Array(t.buffer,f*4*Uint16Array.BYTES_PER_ELEMENT,p*4),_=new Uint16Array(i.buffer,f*u*Uint16Array.BYTES_PER_ELEMENT,p*u),d=new Uint8Array(s.buffer,f*4,p*4),h=new Float32Array(e.buffer,f*4*Float32Array.BYTES_PER_ELEMENT,p*4);if(l(this._covariancesATexture,m,c.x,r,n),l(this._covariancesBTexture,_,c.x,r,n),l(this._centersTexture,h,c.x,r,n),l(this._colorsTexture,d,c.x,r,n),o)for(let x=0;x<o.length;x++){const S=new Uint8Array(this._sh[x].buffer,f*4,p*4);l(this._shTextures[x],S,c.x,r,n)}}_instanciateWorker(){var i;if(!this._vertexCount)return;this._updateSplatIndexBuffer(this._vertexCount),(i=this._worker)==null||i.terminate(),this._worker=new Worker(URL.createObjectURL(new Blob(["(",Gn._CreateWorker.toString(),")(self)"],{type:"application/javascript"}))),this._depthMix=new BigInt64Array(this._vertexCount);const e=Float32Array.from(this._splatPositions),t=this._vertexCount;this._worker.postMessage({positions:e,vertexCount:t},[e.buffer]),this._worker.onmessage=s=>{this._depthMix=s.data.depthMix;const r=new Uint32Array(s.data.depthMix.buffer);if(this._splatIndex)for(let n=0;n<this._vertexCount;n++)this._splatIndex[n]=r[2*n];if(this._delayedTextureUpdate){const n=this._getTextureSize(t);this._updateSubTextures(this._delayedTextureUpdate.centers,this._delayedTextureUpdate.covA,this._delayedTextureUpdate.covB,this._delayedTextureUpdate.colors,0,n.y,this._delayedTextureUpdate.sh),this._delayedTextureUpdate=null}this.thinInstanceBufferUpdated("splatIndex"),this._canPostToWorker=!0,this._readyToDisplay=!0,this._sortIsDirty&&(this._postToWorker(!0),this._sortIsDirty=!1)}}_getTextureSize(e){const t=this._scene.getEngine(),i=t.getCaps().maxTextureSize;let s=1;if(t.version===1&&!t.isWebGPU)for(;i*s<e;)s*=2;else s=Math.ceil(e/i);return s>i&&(de.Error("GaussianSplatting texture size: ("+i+", "+s+"), maxTextureSize: "+i),s=i),new Ue(i,s)}}Gn._RowOutputLength=3*4+3*4+4+4,Gn._SH_C0=.28209479177387814,Gn._SplatBatchSize=327680,Gn._PlyConversionBatchSize=32768,Gn.ProgressiveUpdateAmount=0,Gn._CreateWorker=function(a){let e=0,t,i,s,r;a.onmessage=n=>{if(n.data.positions)t=n.data.positions,e=n.data.vertexCount;else{const o=n.data.view;if(!t||!o)throw new Error("positions or view is not defined!");i=n.data.depthMix,s=new Uint32Array(i.buffer),r=new Float32Array(i.buffer);for(let c=0;c<e;c++)s[2*c]=c;let l=-1;n.data.useRightHandedSystem&&(l=1);for(let c=0;c<e;c++)r[2*c+1]=1e4+(o[2]*t[4*c+0]+o[6]*t[4*c+1]+o[10]*t[4*c+2])*l;i.sort(),a.postMessage({depthMix:i},[i.buffer])}}};const vne="colorPixelShader",jCe=`#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
#define VERTEXCOLOR
varying vColor: vec4f;
#else
uniform color: vec4f;
#endif
#include<clipPlaneFragmentDeclaration>
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
fragmentOutputs.color=input.vColor;
#else
fragmentOutputs.color=uniforms.color;
#endif
#include<fogFragment>(color,fragmentOutputs.color)
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStoreWGSL[vne]||(H.ShadersStoreWGSL[vne]=jCe);const VCe={name:vne,shader:jCe},oHe=Object.freeze(Object.defineProperty({__proto__:null,colorPixelShaderWGSL:VCe},Symbol.toStringTag,{value:"Module"})),Ane="colorVertexShader",GCe=`attribute position: vec3f;
#ifdef VERTEXCOLOR
attribute color: vec4f;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#ifdef FOG
uniform view: mat4x4f;
#endif
#include<instancesDeclaration>
uniform viewProjection: mat4x4f;
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vColor: vec4f;
#endif
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef VERTEXCOLOR
var colorUpdated: vec4f=vertexInputs.color;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
var worldPos: vec4f=finalWorld* vec4f(input.position,1.0);vertexOutputs.position=uniforms.viewProjection*worldPos;
#include<clipPlaneVertex>
#include<fogVertex>
#include<vertexColorMixing>
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[Ane]||(H.ShadersStoreWGSL[Ane]=GCe);const WCe={name:Ane,shader:GCe},lHe=Object.freeze(Object.defineProperty({__proto__:null,colorVertexShaderWGSL:WCe},Symbol.toStringTag,{value:"Module"})),Cne="meshUVSpaceRendererVertexShader",HCe=`precision highp float;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;uniform mat4 projMatrix;varying vec2 vDecalTC;
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<instancesDeclaration>
void main(void) {vec3 positionUpdated=position;vec3 normalUpdated=normal;
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(positionUpdated,1.0);mat3 normWorldSM=mat3(finalWorld);vec3 vNormalW;
#if defined(INSTANCES) && defined(THIN_INSTANCES)
vNormalW=normalUpdated/vec3(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2]));vNormalW=normalize(normWorldSM*vNormalW);
#else
#ifdef NONUNIFORMSCALING
normWorldSM=transposeMat3(inverseMat3(normWorldSM));
#endif
vNormalW=normalize(normWorldSM*normalUpdated);
#endif
vec3 normalView=normalize((projMatrix*vec4(vNormalW,0.0)).xyz);vec3 decalTC=(projMatrix*worldPos).xyz;vDecalTC=decalTC.xy;gl_Position=vec4(uv*2.0-1.0,normalView.z>0.0 ? 2. : decalTC.z,1.0);}`;H.ShadersStore[Cne]||(H.ShadersStore[Cne]=HCe);const YCe={name:Cne,shader:HCe},cHe=Object.freeze(Object.defineProperty({__proto__:null,meshUVSpaceRendererVertexShader:YCe},Symbol.toStringTag,{value:"Module"})),xne="meshUVSpaceRendererPixelShader",XCe=`precision highp float;varying vec2 vDecalTC;uniform sampler2D textureSampler;void main(void) {if (vDecalTC.x<0. || vDecalTC.x>1. || vDecalTC.y<0. || vDecalTC.y>1.) {discard;}
gl_FragColor=texture2D(textureSampler,vDecalTC);}
`;H.ShadersStore[xne]||(H.ShadersStore[xne]=XCe);const ZCe={name:xne,shader:XCe},uHe=Object.freeze(Object.defineProperty({__proto__:null,meshUVSpaceRendererPixelShader:ZCe},Symbol.toStringTag,{value:"Module"})),bne="meshUVSpaceRendererMaskerVertexShader",KCe="attribute vec2 uv;varying vec2 vUV;void main(void) {gl_Position=vec4(vec2(uv.x,uv.y)*2.0-1.0,0.,1.0);vUV=uv;}";H.ShadersStore[bne]||(H.ShadersStore[bne]=KCe);const qCe={name:bne,shader:KCe},hHe=Object.freeze(Object.defineProperty({__proto__:null,meshUVSpaceRendererMaskerVertexShader:qCe},Symbol.toStringTag,{value:"Module"})),Sne="meshUVSpaceRendererMaskerPixelShader",QCe=`varying vec2 vUV;void main(void) {gl_FragColor=vec4(1.0,1.0,1.0,1.0);}
`;H.ShadersStore[Sne]||(H.ShadersStore[Sne]=QCe);const JCe={name:Sne,shader:QCe},dHe=Object.freeze(Object.defineProperty({__proto__:null,meshUVSpaceRendererMaskerPixelShader:JCe},Symbol.toStringTag,{value:"Module"})),yne="meshUVSpaceRendererFinaliserPixelShader",$Ce=`precision highp float;varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D maskTextureSampler;uniform vec2 textureSize;void main() {vec4 mask=texture2D(maskTextureSampler,vUV).rgba;if (mask.r>0.5) {gl_FragColor=texture2D(textureSampler,vUV);} else {vec2 texelSize=4.0/textureSize;vec2 uv_p01=vUV+vec2(-1.0,0.0)*texelSize;vec2 uv_p21=vUV+vec2(1.0,0.0)*texelSize;vec2 uv_p10=vUV+vec2(0.0,-1.0)*texelSize;vec2 uv_p12=vUV+vec2(0.0,1.0)*texelSize;float mask_p01=texture2D(maskTextureSampler,uv_p01).r;float mask_p21=texture2D(maskTextureSampler,uv_p21).r;float mask_p10=texture2D(maskTextureSampler,uv_p10).r;float mask_p12=texture2D(maskTextureSampler,uv_p12).r;vec4 col=vec4(0.0,0.0,0.0,0.0);float total_weight=0.0;if (mask_p01>0.5) {col+=texture2D(textureSampler,uv_p01);total_weight+=1.0;}
if (mask_p21>0.5) {col+=texture2D(textureSampler,uv_p21);total_weight+=1.0;}
if (mask_p10>0.5) {col+=texture2D(textureSampler,uv_p10);total_weight+=1.0;}
if (mask_p12>0.5) {col+=texture2D(textureSampler,uv_p12);total_weight+=1.0;}
if (total_weight>0.0) {gl_FragColor=col/total_weight;} else {gl_FragColor=col;}}}
`;H.ShadersStore[yne]||(H.ShadersStore[yne]=$Ce);const exe={name:yne,shader:$Ce},fHe=Object.freeze(Object.defineProperty({__proto__:null,meshUVSpaceRendererFinaliserPixelShader:exe},Symbol.toStringTag,{value:"Module"})),Mne="meshUVSpaceRendererFinaliserVertexShader",txe=`precision highp float;attribute vec3 position;attribute vec2 uv;uniform mat4 worldViewProjection;varying vec2 vUV;void main() {gl_Position=worldViewProjection*vec4(position,1.0);vUV=uv;}
`;H.ShadersStore[Mne]||(H.ShadersStore[Mne]=txe);const ixe={name:Mne,shader:txe},pHe=Object.freeze(Object.defineProperty({__proto__:null,meshUVSpaceRendererFinaliserVertexShader:ixe},Symbol.toStringTag,{value:"Module"})),Ene="meshUVSpaceRendererVertexShader",sxe=`attribute position: vec3f;attribute normal: vec3f;attribute uv: vec2f;uniform projMatrix: mat4x4f;varying vDecalTC: vec2f;
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<instancesDeclaration>
@vertex
fn main(input : VertexInputs)->FragmentInputs {var positionUpdated: vec3f=input.position;var normalUpdated: vec3f=input.normal;
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
var worldPos: vec4f=finalWorld* vec4f(positionUpdated,1.0);var normWorldSM: mat3x3f= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz);var vNormalW: vec3f;
#if defined(INSTANCES) && defined(THIN_INSTANCES)
vNormalW=normalUpdated/ vec3f(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2]));vNormalW=normalize(normWorldSM*vNormalW);
#else
#ifdef NONUNIFORMSCALING
normWorldSM=transposeMat3(inverseMat3(normWorldSM));
#endif
vNormalW=normalize(normWorldSM*normalUpdated);
#endif
var normalView: vec3f=normalize((uniforms.projMatrix* vec4f(vNormalW,0.0)).xyz);var decalTC: vec3f=(uniforms.projMatrix*worldPos).xyz;vertexOutputs.vDecalTC=decalTC.xy;vertexOutputs.position=vec4f(input.uv*2.0-1.0,select(decalTC.z,2.,normalView.z>0.0),1.0);}`;H.ShadersStoreWGSL[Ene]||(H.ShadersStoreWGSL[Ene]=sxe);const rxe={name:Ene,shader:sxe},mHe=Object.freeze(Object.defineProperty({__proto__:null,meshUVSpaceRendererVertexShaderWGSL:rxe},Symbol.toStringTag,{value:"Module"})),Tne="meshUVSpaceRendererPixelShader",nxe=`varying vDecalTC: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {if (input.vDecalTC.x<0. || input.vDecalTC.x>1. || input.vDecalTC.y<0. || input.vDecalTC.y>1.) {discard;}
fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,input.vDecalTC);}
`;H.ShadersStoreWGSL[Tne]||(H.ShadersStoreWGSL[Tne]=nxe);const axe={name:Tne,shader:nxe},gHe=Object.freeze(Object.defineProperty({__proto__:null,meshUVSpaceRendererPixelShaderWGSL:axe},Symbol.toStringTag,{value:"Module"})),Lne="meshUVSpaceRendererMaskerVertexShader",oxe=`attribute uv: vec2f;varying vUV: vec2f;@vertex
fn main(input : VertexInputs)->FragmentInputs {vertexOutputs.position= vec4f( vec2f(input.uv.x,input.uv.y)*2.0-1.0,0.,1.0);vertexOutputs.vUV=input.uv;}`;H.ShadersStoreWGSL[Lne]||(H.ShadersStoreWGSL[Lne]=oxe);const lxe={name:Lne,shader:oxe},_He=Object.freeze(Object.defineProperty({__proto__:null,meshUVSpaceRendererMaskerVertexShaderWGSL:lxe},Symbol.toStringTag,{value:"Module"})),Ine="meshUVSpaceRendererMaskerPixelShader",cxe=`varying vUV: vec2f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color= vec4f(1.0,1.0,1.0,1.0);}
`;H.ShadersStoreWGSL[Ine]||(H.ShadersStoreWGSL[Ine]=cxe);const uxe={name:Ine,shader:cxe},vHe=Object.freeze(Object.defineProperty({__proto__:null,meshUVSpaceRendererMaskerPixelShaderWGSL:uxe},Symbol.toStringTag,{value:"Module"})),Pne="meshUVSpaceRendererFinaliserPixelShader",hxe=`#define DISABLE_UNIFORMITY_ANALYSIS
varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var maskTextureSamplerSampler: sampler;var maskTextureSampler: texture_2d<f32>;uniform textureSize: vec2f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var mask: vec4f=textureSample(maskTextureSampler,maskTextureSamplerSampler,input.vUV).rgba;if (mask.r>0.5) {fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,input.vUV);} else {var texelSize: vec2f=4.0/uniforms.textureSize;var uv_p01: vec2f=input.vUV+ vec2f(-1.0,0.0)*texelSize;var uv_p21: vec2f=input.vUV+ vec2f(1.0,0.0)*texelSize;var uv_p10: vec2f=input.vUV+ vec2f(0.0,-1.0)*texelSize;var uv_p12: vec2f=input.vUV+ vec2f(0.0,1.0)*texelSize;var mask_p01: f32=textureSample(maskTextureSampler,maskTextureSamplerSampler,uv_p01).r;var mask_p21: f32=textureSample(maskTextureSampler,maskTextureSamplerSampler,uv_p21).r;var mask_p10: f32=textureSample(maskTextureSampler,maskTextureSamplerSampler,uv_p10).r;var mask_p12: f32=textureSample(maskTextureSampler,maskTextureSamplerSampler,uv_p12).r;var col: vec4f= vec4f(0.0,0.0,0.0,0.0);var total_weight: f32=0.0;if (mask_p01>0.5) {col+=textureSample(textureSampler,textureSamplerSampler,uv_p01);total_weight+=1.0;}
if (mask_p21>0.5) {col+=textureSample(textureSampler,textureSamplerSampler,uv_p21);total_weight+=1.0;}
if (mask_p10>0.5) {col+=textureSample(textureSampler,textureSamplerSampler,uv_p10);total_weight+=1.0;}
if (mask_p12>0.5) {col+=textureSample(textureSampler,textureSamplerSampler,uv_p12);total_weight+=1.0;}
if (total_weight>0.0) {fragmentOutputs.color=col/total_weight;} else {fragmentOutputs.color=col;}}}
`;H.ShadersStoreWGSL[Pne]||(H.ShadersStoreWGSL[Pne]=hxe);const dxe={name:Pne,shader:hxe},AHe=Object.freeze(Object.defineProperty({__proto__:null,meshUVSpaceRendererFinaliserPixelShaderWGSL:dxe},Symbol.toStringTag,{value:"Module"})),One="meshUVSpaceRendererFinaliserVertexShader",fxe=`attribute position: vec3f;attribute uv: vec2f;uniform worldViewProjection: mat4x4f;varying vUV: vec2f;@vertex
fn main(input : VertexInputs)->FragmentInputs {vertexOutputs.position=uniforms.worldViewProjection* vec4f(input.position,1.0);vertexOutputs.positionvUV=input.uv;}
`;H.ShadersStoreWGSL[One]||(H.ShadersStoreWGSL[One]=fxe);const pxe={name:One,shader:fxe},CHe=Object.freeze(Object.defineProperty({__proto__:null,meshUVSpaceRendererFinaliserVertexShaderWGSL:pxe},Symbol.toStringTag,{value:"Module"}));var Rne;(function(a){a[a.INIT=0]="INIT",a[a.RUNNING=1]="RUNNING",a[a.DONE=2]="DONE",a[a.ERROR=3]="ERROR"})(Rne||(Rne={}));class _5{constructor(e){this.name=e,this._isCompleted=!1,this._taskState=0}get isCompleted(){return this._isCompleted}get taskState(){return this._taskState}get errorObject(){return this._errorObject}_setErrorObject(e,t){this._errorObject||(this._errorObject={message:e,exception:t})}run(e,t,i){this._taskState=1,this.runTask(e,()=>{this._onDoneCallback(t,i)},(s,r)=>{this._onErrorCallback(i,s,r)})}runTask(e,t,i){throw new Error("runTask is not implemented")}reset(){this._taskState=0}_onErrorCallback(e,t,i){this._taskState=3,this._errorObject={message:t,exception:i},this.onError&&this.onError(this,t,i),e()}_onDoneCallback(e,t){try{this._taskState=2,this._isCompleted=!0,this.onSuccess&&this.onSuccess(this),e()}catch(i){this._onErrorCallback(t,"Task is done, error executing success callback(s)",i)}}}class mxe{constructor(e,t,i){this.remainingCount=e,this.totalCount=t,this.task=i}}class gxe extends _5{constructor(e,t,i,s,r){super(e),this.name=e,this.meshesNames=t,this.rootUrl=i,this.sceneFilename=s,this.extension=r}runTask(e,t,i){wr.LoadAssetContainer(this.rootUrl,this.sceneFilename,e,s=>{this.loadedContainer=s,this.loadedMeshes=s.meshes,this.loadedTransformNodes=s.transformNodes,this.loadedParticleSystems=s.particleSystems,this.loadedSkeletons=s.skeletons,this.loadedAnimationGroups=s.animationGroups,t()},null,(s,r,n)=>{i(r,n)},this.extension)}}class _xe extends _5{constructor(e,t,i,s,r){super(e),this.name=e,this.meshesNames=t,this.rootUrl=i,this.sceneFilename=s,this.extension=r}runTask(e,t,i){wr.ImportMesh(this.meshesNames,this.rootUrl,this.sceneFilename,e,(s,r,n,o,l)=>{this.loadedMeshes=s,this.loadedTransformNodes=l,this.loadedParticleSystems=r,this.loadedSkeletons=n,this.loadedAnimationGroups=o,t()},null,(s,r,n)=>{i(r,n)},this.extension)}}class xHe extends _5{constructor(e,t,i,s,r){super(e),this.name=e,this.rootUrl=t,this.filename=i,this.targetConverter=s,this.extension=r}runTask(e,t,i){const s=e.animatables.length,r=e.animationGroups.length;this.loadedAnimatables=[],this.loadedAnimationGroups=[],wr.ImportAnimations(this.rootUrl,this.filename,e,!1,3,this.targetConverter,()=>{this.loadedAnimatables=e.animatables.slice(s),this.loadedAnimationGroups=e.animationGroups.slice(r),t()},null,(n,o,l)=>{i(o,l)},this.extension)}}class vxe extends _5{constructor(e,t){super(e),this.name=e,this.url=t}runTask(e,t,i){e._loadFile(this.url,s=>{this.text=s,t()},void 0,!1,!1,(s,r)=>{s&&i(s.status+" "+s.statusText,r)})}}class Axe extends _5{constructor(e,t){super(e),this.name=e,this.url=t}runTask(e,t,i){e._loadFile(this.url,s=>{this.data=s,t()},void 0,!0,!0,(s,r)=>{s&&i(s.status+" "+s.statusText,r)})}}class Cxe extends _5{constructor(e,t){super(e),this.name=e,this.url=t}runTask(e,t,i){const s=new Image;Le.SetCorsBehavior(this.url,s),s.onload=()=>{this.image=s,t()},s.onerror=r=>{i("Error loading image",r)},s.src=this.url}}class xxe extends _5{constructor(e,t,i,s=!0,r=be.TRILINEAR_SAMPLINGMODE){super(e),this.name=e,this.url=t,this.noMipmap=i,this.invertY=s,this.samplingMode=r}runTask(e,t,i){const s=()=>{t()},r=(n,o)=>{i(n,o)};this.texture=new be(this.url,e,this.noMipmap,this.invertY,this.samplingMode,s,r)}}class bxe extends _5{constructor(e,t,i,s,r,n){super(e),this.name=e,this.url=t,this.extensions=i,this.noMipmap=s,this.files=r,this.prefiltered=n}runTask(e,t,i){const s=()=>{t()},r=(n,o)=>{i(n,o)};this.texture=new ko(this.url,e,this.extensions,this.noMipmap,this.files,s,r,void 0,this.prefiltered)}}class Sxe extends _5{constructor(e,t,i,s=!1,r=!0,n=!1,o=!1){super(e),this.name=e,this.url=t,this.size=i,this.noMipmap=s,this.generateHarmonics=r,this.gammaSpace=n,this.reserved=o}runTask(e,t,i){const s=()=>{t()},r=(n,o)=>{i(n,o)};this.texture=new Zy(this.url,e,this.size,this.noMipmap,this.generateHarmonics,this.gammaSpace,this.reserved,s,r)}}class yxe extends _5{constructor(e,t,i,s=!1,r=!0){super(e),this.name=e,this.url=t,this.size=i,this.noMipmap=s,this.gammaSpace=r}runTask(e,t,i){const s=()=>{t()},r=(n,o)=>{i(n,o)};this.texture=new gO(this.url,e,this.size,this.noMipmap,this.gammaSpace,s,r)}}class bHe{constructor(e){this._isLoading=!1,this._tasks=new Array,this._waitingTasksCount=0,this._totalTasksCount=0,this.onTaskSuccessObservable=new xe,this.onTaskErrorObservable=new xe,this.onTasksDoneObservable=new xe,this.onProgressObservable=new xe,this.useDefaultLoadingScreen=!0,this.autoHideLoadingUI=!0,this._scene=e||ei.LastCreatedScene}addContainerTask(e,t,i,s,r){const n=new gxe(e,t,i,s,r);return this._tasks.push(n),n}addMeshTask(e,t,i,s,r){const n=new _xe(e,t,i,s,r);return this._tasks.push(n),n}addTextFileTask(e,t){const i=new vxe(e,t);return this._tasks.push(i),i}addBinaryFileTask(e,t){const i=new Axe(e,t);return this._tasks.push(i),i}addImageTask(e,t){const i=new Cxe(e,t);return this._tasks.push(i),i}addTextureTask(e,t,i,s,r=be.TRILINEAR_SAMPLINGMODE){const n=new xxe(e,t,i,s,r);return this._tasks.push(n),n}addCubeTextureTask(e,t,i,s,r,n){const o=new bxe(e,t,i,s,r,n);return this._tasks.push(o),o}addHDRCubeTextureTask(e,t,i,s=!1,r=!0,n=!1,o=!1){const l=new Sxe(e,t,i,s,r,n,o);return this._tasks.push(l),l}addEquiRectangularCubeTextureAssetTask(e,t,i,s=!1,r=!0){const n=new yxe(e,t,i,s,r);return this._tasks.push(n),n}removeTask(e){const t=this._tasks.indexOf(e);t>-1&&this._tasks.splice(t,1)}_decreaseWaitingTasksCount(e){this._waitingTasksCount--;try{this.onProgress&&this.onProgress(this._waitingTasksCount,this._totalTasksCount,e),this.onProgressObservable.notifyObservers(new mxe(this._waitingTasksCount,this._totalTasksCount,e))}catch(t){de.Error("Error running progress callbacks."),de.Log(t)}if(this._waitingTasksCount===0){try{const t=this._tasks.slice();this.onFinish&&this.onFinish(t);for(const i of t)if(i.taskState===2){const s=this._tasks.indexOf(i);s>-1&&this._tasks.splice(s,1)}this.onTasksDoneObservable.notifyObservers(this._tasks)}catch(t){de.Error("Error running tasks-done callbacks."),de.Log(t)}this._isLoading=!1,this.autoHideLoadingUI&&this._scene.getEngine().hideLoadingUI()}}_runTask(e){const t=()=>{try{this.onTaskSuccess&&this.onTaskSuccess(e),this.onTaskSuccessObservable.notifyObservers(e),this._decreaseWaitingTasksCount(e)}catch(s){i("Error executing task success callbacks",s)}},i=(s,r)=>{e._setErrorObject(s,r),this.onTaskError?this.onTaskError(e):e.onError||de.Error(this._formatTaskErrorMessage(e)),this.onTaskErrorObservable.notifyObservers(e),this._decreaseWaitingTasksCount(e)};e.run(this._scene,t,i)}_formatTaskErrorMessage(e){let t="Unable to complete task "+e.name;return e.errorObject.message&&(t+=`: ${e.errorObject.message}`),e.errorObject.exception&&(t+=`: ${e.errorObject.exception}`),t}reset(){return this._isLoading=!1,this._tasks=new Array,this}load(){if(this._isLoading)return this;if(this._isLoading=!0,this._waitingTasksCount=this._tasks.length,this._totalTasksCount=this._tasks.length,this._waitingTasksCount===0)return this._isLoading=!1,this.onFinish&&this.onFinish(this._tasks),this.onTasksDoneObservable.notifyObservers(this._tasks),this;this.useDefaultLoadingScreen&&this._scene.getEngine().displayLoadingUI();for(let e=0;e<this._tasks.length;e++){const t=this._tasks[e];t.taskState===0&&this._runTask(t)}return this}loadAsync(){return new Promise((e,t)=>{if(this._isLoading){e();return}this.onTasksDoneObservable.addOnce(i=>{i&&i.length?t(i):e()}),this.load()})}}class SHe{constructor(e,t){this._meshesOrigins=[],this._toCenterVectors=[],this._scaledDirection=new P(1,1,1),this._newPosition=P.Zero(),this._centerPosition=P.Zero(),this._meshes=e.slice(),t?this._centerMesh=t:this._setCenterMesh(),this._centerMesh.computeWorldMatrix(!0);const i=this._meshes.indexOf(this._centerMesh);i>=0&&this._meshes.splice(i,1),this._centerPosition=this._centerMesh.getAbsolutePosition().clone();for(let s=0;s<this._meshes.length;s++)if(this._meshes[s]){const r=this._meshes[s];this._meshesOrigins[s]=r.getAbsolutePosition().clone(),this._toCenterVectors[s]=P.Zero(),r.hasBoundingInfo&&this._centerMesh.hasBoundingInfo&&(r.computeWorldMatrix(!0),r.getBoundingInfo().boundingBox.centerWorld.subtractToRef(this._centerMesh.getBoundingInfo().boundingBox.centerWorld,this._toCenterVectors[s]))}}_setCenterMesh(){let e=P.Zero();const t=P.Zero();let i=Number.MAX_VALUE;for(let s=0;s<this._meshes.length;s++)if(this._meshes[s]){const n=this._meshes[s].getBoundingInfo();n&&t.addInPlace(n.boundingBox.centerWorld)}e=t.scale(1/this._meshes.length);for(let s=0;s<this._meshes.length;s++)if(this._meshes[s]){const r=this._meshes[s],n=r.getBoundingInfo();if(n){const o=n.boundingBox.centerWorld.subtract(e).lengthSquared();o<i&&(this._centerMesh=r,i=o)}}}getClassName(){return"MeshExploder"}getMeshes(){const e=this._meshes.slice();return e.unshift(this._centerMesh),e}explode(e=1){for(let t=0;t<this._meshes.length;t++)this._meshes[t]&&this._meshesOrigins[t]&&this._toCenterVectors[t]&&(this._toCenterVectors[t].scaleToRef(e,this._scaledDirection),this._meshesOrigins[t].addToRef(this._scaledDirection,this._newPosition),this._meshes[t].setAbsolutePosition(this._newPosition));this._centerMesh.setAbsolutePosition(this._centerPosition)}}class Dne{static get FilesToLoad(){return j9.FilesToLoad}constructor(e,t,i,s,r,n,o,l,c,u=!1,f=!1){this.useAppend=u,this.dontInjectRenderLoop=f,this.onProcessFileCallback=()=>!0,this.displayLoadingUI=!0,this.loadAsync=(p,m)=>this.useAppend?wr.AppendAsync("file:",p,this._currentScene,m):wr.LoadAsync("file:",p,this._engine,m),this._engine=e,this._currentScene=t,this._sceneLoadedCallback=i,this._progressCallback=s,this._additionalRenderLoopLogicCallback=r,this._textureLoadingCallback=n,this._startingProcessingFilesCallback=o,this._onReloadCallback=l,this._errorCallback=c}monitorElementForDragNDrop(e){e&&(this._elementToMonitor=e,this._dragEnterHandler=t=>{this._drag(t)},this._dragOverHandler=t=>{this._drag(t)},this._dropHandler=t=>{this._drop(t)},this._elementToMonitor.addEventListener("dragenter",this._dragEnterHandler,!1),this._elementToMonitor.addEventListener("dragover",this._dragOverHandler,!1),this._elementToMonitor.addEventListener("drop",this._dropHandler,!1))}get filesToLoad(){return this._filesToLoad}dispose(){this._elementToMonitor&&(this._elementToMonitor.removeEventListener("dragenter",this._dragEnterHandler),this._elementToMonitor.removeEventListener("dragover",this._dragOverHandler),this._elementToMonitor.removeEventListener("drop",this._dropHandler))}_renderFunction(){if(this._additionalRenderLoopLogicCallback&&this._additionalRenderLoopLogicCallback(),this._currentScene){if(this._textureLoadingCallback){const e=this._currentScene.getWaitingItemsCount();e>0&&this._textureLoadingCallback(e)}this._currentScene.render()}}_drag(e){e.stopPropagation(),e.preventDefault()}_drop(e){e.stopPropagation(),e.preventDefault(),this.loadFiles(e)}_traverseFolder(e,t,i,s){const r=e.createReader(),n=e.fullPath.replace(/^\//,"").replace(/(.+?)\/?$/,"$1/");r.readEntries(o=>{i.count+=o.length;for(const l of o)l.isFile?l.file(c=>{c.correctName=n+c.name,t.push(c),--i.count===0&&s()}):l.isDirectory&&this._traverseFolder(l,t,i,s);--i.count===0&&s()})}_processFiles(e){for(let t=0;t<e.length;t++){const i=e[t].correctName.toLowerCase(),s=i.split(".").pop();this.onProcessFileCallback(e[t],i,s,r=>this._sceneFileToLoad=r)&&(wr.IsPluginForExtensionAvailable("."+s)&&(this._sceneFileToLoad=e[t]),Dne.FilesToLoad[i]=e[t])}}loadFiles(e){if(e&&e.dataTransfer&&e.dataTransfer.files&&(this._filesToLoad=e.dataTransfer.files),e&&e.target&&e.target.files&&(this._filesToLoad=e.target.files),!(!this._filesToLoad||this._filesToLoad.length===0)&&(this._startingProcessingFilesCallback&&this._startingProcessingFilesCallback(this._filesToLoad),this._filesToLoad&&this._filesToLoad.length>0)){const t=[],i=[],s=e.dataTransfer?e.dataTransfer.items:null;for(let r=0;r<this._filesToLoad.length;r++){const n=this._filesToLoad[r],o=n.name.toLowerCase();let l;if(n.correctName=o,s){const c=s[r];c.getAsEntry?l=c.getAsEntry():c.webkitGetAsEntry&&(l=c.webkitGetAsEntry())}l&&l.isDirectory?i.push(l):t.push(n)}if(i.length===0)this._processFiles(t),this._processReload();else{const r={count:i.length};for(const n of i)this._traverseFolder(n,t,r,()=>{this._processFiles(t),r.count===0&&this._processReload()})}}}_processReload(){this._onReloadCallback?this._onReloadCallback(this._sceneFileToLoad):this.reload()}reload(){if(this._sceneFileToLoad)this.useAppend||this._currentScene&&(de.errorsCount>0&&de.ClearLogCache(),this._engine.stopRenderLoop()),wr.ShowLoadingScreen=!1,this.displayLoadingUI&&this._engine.displayLoadingUI(),this.loadAsync(this._sceneFileToLoad,this._progressCallback).then(e=>{this.useAppend?this.displayLoadingUI&&this._engine.hideLoadingUI():(this._currentScene&&this._currentScene.dispose(),this._currentScene=e,this._currentScene.executeWhenReady(()=>{this.displayLoadingUI&&this._engine.hideLoadingUI(),this.dontInjectRenderLoop||this._engine.runRenderLoop(()=>{this._renderFunction()})})),this._sceneLoadedCallback&&this._currentScene&&this._sceneLoadedCallback(this._sceneFileToLoad,this._currentScene)}).catch(e=>{this.displayLoadingUI&&this._engine.hideLoadingUI(),this._errorCallback&&this._errorCallback(this._sceneFileToLoad,this._currentScene,e.message)});else{if(this._filesToLoad.length===1){const t=this._filesToLoad[0].name.toLowerCase().split(".").pop();if(t)switch(t.toLowerCase()){case"dds":case"env":case"hdr":return}}de.Error("Please provide a valid .babylon file.")}}}class Nne{dispose(){if(this._observers&&this._observables)for(let e=0;e<this._observers.length;e++)this._observables[e].remove(this._observers[e]);this._observers=null,this._observables=null}static Watch(e,t,i=-1,s=null){const r=new Nne;r._observers=new Array,r._observables=e;for(const n of e){const o=n.add(t,i,!1,s);o&&r._observers.push(o)}return r}}xe.prototype.notifyObserversWithPromise=async function(a,e=-1,t,i,s){let r=Promise.resolve(a);if(!this.observers.length)return r;const n=this._eventState;return n.mask=e,n.target=t,n.currentTarget=i,n.skipNextObservers=!1,n.userInfo=s,this.observers.forEach(o=>{n.skipNextObservers||o._willBeUnregistered||o.mask&e&&(o.scope?r=r.then(l=>(n.lastReturnValue=l,o.callback.apply(o.scope,[a,n]))):r=r.then(l=>(n.lastReturnValue=l,o.callback(a,n))),o.unregisterOnNextCall&&this._deferUnregister(o))}),await r,a};class Sb{getDescription(){return""}apply(e,t){return!0}constructor(e=0){this.priority=e}}class mY extends Sb{getDescription(){return"Reducing render target texture size to "+this.maximumSize}constructor(e=0,t=1024,i=.5){super(e),this.priority=e,this.maximumSize=t,this.step=i}apply(e,t){let i=!0;for(let s=0;s<e.textures.length;s++){const r=e.textures[s];if(!r.canRescale||r.getContext)continue;const n=r.getSize();Math.max(n.width,n.height)>this.maximumSize&&(r.scale(this.step),i=!1)}return i}}class wne extends Sb{getDescription(){return"Setting hardware scaling level to "+this._currentScale}constructor(e=0,t=2,i=.25){super(e),this.priority=e,this.maximumScale=t,this.step=i,this._currentScale=-1,this._directionOffset=1}apply(e,t){return this._currentScale===-1&&(this._currentScale=e.getEngine().getHardwareScalingLevel(),this._currentScale>this.maximumScale&&(this._directionOffset=-1)),this._currentScale+=this._directionOffset*this.step,this._currentScale=Math.min(this.maximumScale,this._currentScale),e.getEngine().setHardwareScalingLevel(this._currentScale),this._directionOffset===1?this._currentScale>=this.maximumScale:this._currentScale<=this.maximumScale}}class gY extends Sb{getDescription(){return"Turning shadows on/off"}apply(e,t){return e.shadowsEnabled=t.isInImprovementMode,!0}}class _Y extends Sb{getDescription(){return"Turning post-processes on/off"}apply(e,t){return e.postProcessesEnabled=t.isInImprovementMode,!0}}class vY extends Sb{getDescription(){return"Turning lens flares on/off"}apply(e,t){return e.lensFlaresEnabled=t.isInImprovementMode,!0}}class Mxe extends Sb{getDescription(){return this.onGetDescription?this.onGetDescription():"Running user defined callback"}apply(e,t){return this.onApply?this.onApply(e,t):!0}}class AY extends Sb{getDescription(){return"Turning particles on/off"}apply(e,t){return e.particlesEnabled=t.isInImprovementMode,!0}}class Bne extends Sb{getDescription(){return"Turning render targets off"}apply(e,t){return e.renderTargetsEnabled=t.isInImprovementMode,!0}}class Qy extends Sb{constructor(){super(...arguments),this._canBeMerged=e=>{if(!(e instanceof Ne))return!1;const t=e;return!(t.isDisposed()||!t.isVisible||!t.isEnabled()||t.instances.length>0||t.skeleton||t.hasLODLevels||t.getTotalVertices()===0)}}static get UpdateSelectionTree(){return Qy._UpdateSelectionTree}static set UpdateSelectionTree(e){Qy._UpdateSelectionTree=e}getDescription(){return"Merging similar meshes together"}apply(e,t,i){const s=e.meshes.slice(0);let r=s.length;for(let o=0;o<r;o++){const l=[],c=s[o];if(this._canBeMerged(c)){l.push(c);for(let u=o+1;u<r;u++){const f=s[u];this._canBeMerged(f)&&f.material===c.material&&f.checkCollisions===c.checkCollisions&&(l.push(f),r--,s.splice(u,1),u--)}l.length<2||Ne.MergeMeshes(l,void 0,!0)}}const n=e;return n.createOrUpdateSelectionOctree&&(i!=null?i&&n.createOrUpdateSelectionOctree():Qy.UpdateSelectionTree&&n.createOrUpdateSelectionOctree()),!0}}Qy._UpdateSelectionTree=!1;class GL{constructor(e=60,t=2e3){this.targetFrameRate=e,this.trackerDuration=t,this.optimizations=[]}addOptimization(e){return this.optimizations.push(e),this}addCustomOptimization(e,t,i=0){const s=new Mxe(i);return s.onApply=e,s.onGetDescription=t,this.optimizations.push(s),this}static LowDegradationAllowed(e){const t=new GL(e);let i=0;return t.addOptimization(new Qy(i)),t.addOptimization(new gY(i)),t.addOptimization(new vY(i)),i++,t.addOptimization(new _Y(i)),t.addOptimization(new AY(i)),i++,t.addOptimization(new mY(i,1024)),t}static ModerateDegradationAllowed(e){const t=new GL(e);let i=0;return t.addOptimization(new Qy(i)),t.addOptimization(new gY(i)),t.addOptimization(new vY(i)),i++,t.addOptimization(new _Y(i)),t.addOptimization(new AY(i)),i++,t.addOptimization(new mY(i,512)),i++,t.addOptimization(new Bne(i)),i++,t.addOptimization(new wne(i,2)),t}static HighDegradationAllowed(e){const t=new GL(e);let i=0;return t.addOptimization(new Qy(i)),t.addOptimization(new gY(i)),t.addOptimization(new vY(i)),i++,t.addOptimization(new _Y(i)),t.addOptimization(new AY(i)),i++,t.addOptimization(new mY(i,256)),i++,t.addOptimization(new Bne(i)),i++,t.addOptimization(new wne(i,4)),t}}class zne{get isInImprovementMode(){return this._improvementMode}set isInImprovementMode(e){this._improvementMode=e}get currentPriorityLevel(){return this._currentPriorityLevel}get currentFrameRate(){return this._currentFrameRate}get targetFrameRate(){return this._targetFrameRate}set targetFrameRate(e){this._targetFrameRate=e}get trackerDuration(){return this._trackerDuration}set trackerDuration(e){this._trackerDuration=e}get optimizations(){return this._options.optimizations}constructor(e,t,i=!0,s=!1){if(this._isRunning=!1,this._currentPriorityLevel=0,this._targetFrameRate=60,this._trackerDuration=2e3,this._currentFrameRate=0,this._improvementMode=!1,this.onSuccessObservable=new xe,this.onNewOptimizationAppliedObservable=new xe,this.onFailureObservable=new xe,t?this._options=t:this._options=new GL,this._options.targetFrameRate&&(this._targetFrameRate=this._options.targetFrameRate),this._options.trackerDuration&&(this._trackerDuration=this._options.trackerDuration),i){let r=0;for(const n of this._options.optimizations)n.priority=r++}this._improvementMode=s,this._scene=e||ei.LastCreatedScene,this._sceneDisposeObserver=this._scene.onDisposeObservable.add(()=>{this._sceneDisposeObserver=null,this.dispose()})}stop(){this._isRunning=!1}reset(){this._currentPriorityLevel=0}start(){this._isRunning||(this._isRunning=!0,this._scene.executeWhenReady(()=>{setTimeout(()=>{this._checkCurrentState()},this._trackerDuration)}))}_checkCurrentState(){if(!this._isRunning)return;const e=this._scene,t=this._options;if(this._currentFrameRate=Math.round(e.getEngine().getFps()),this._improvementMode&&this._currentFrameRate<=this._targetFrameRate||!this._improvementMode&&this._currentFrameRate>=this._targetFrameRate){this._isRunning=!1,this.onSuccessObservable.notifyObservers(this);return}let i=!0,s=!0;for(let r=0;r<t.optimizations.length;r++){const n=t.optimizations[r];n.priority===this._currentPriorityLevel&&(s=!1,i=i&&n.apply(e,this),this.onNewOptimizationAppliedObservable.notifyObservers(n))}if(s){this._isRunning=!1,this.onFailureObservable.notifyObservers(this);return}i&&this._currentPriorityLevel++,e.executeWhenReady(()=>{setTimeout(()=>{this._checkCurrentState()},this._trackerDuration)})}dispose(){this.stop(),this.onSuccessObservable.clear(),this.onFailureObservable.clear(),this.onNewOptimizationAppliedObservable.clear(),this._sceneDisposeObserver&&this._scene.onDisposeObservable.remove(this._sceneDisposeObserver)}static OptimizeAsync(e,t,i,s){const r=new zne(e,t||GL.ModerateDegradationAllowed(),!1);return i&&r.onSuccessObservable.add(()=>{i()}),s&&r.onFailureObservable.add(()=>{s()}),r.start(),r}}let Fne=[];const kne=(a,e)=>{a.doNotSerialize||(e.vertexData.push(a.serializeVerticeData()),Fne[a.id]=!0)},Exe=(a,e)=>{const t={},i=a._geometry;return i&&(a.getScene().getGeometryById(i.id)||kne(i,e.geometries)),a.serialize&&a.serialize(t),t},yHe=(a,e)=>{if(a._isMesh){const t=a;if(t.delayLoadState===1||t.delayLoadState===0){const i=r=>{e.materials=e.materials||[],t.material&&!e.materials.some(n=>n.id===t.material.id)&&e.materials.push(r.serialize())};if(t.material&&!t.material.doNotSerialize)if(t.material instanceof tf){if(e.multiMaterials=e.multiMaterials||[],!e.multiMaterials.some(r=>r.id===t.material.id)){e.multiMaterials.push(t.material.serialize());for(const r of t.material.subMaterials)r&&i(r)}}else i(t.material);else t.material||i(t.getScene().defaultMaterial);const s=t._geometry;s&&(e.geometries||(e.geometries={},e.geometries.boxes=[],e.geometries.spheres=[],e.geometries.cylinders=[],e.geometries.toruses=[],e.geometries.grounds=[],e.geometries.planes=[],e.geometries.torusKnots=[],e.geometries.vertexData=[]),kne(s,e.geometries)),t.skeleton&&!t.skeleton.doNotSerialize&&(e.skeletons=e.skeletons||[],e.skeletons.push(t.skeleton.serialize())),e.meshes=e.meshes||[],e.meshes.push(Exe(t,e))}}else if(a.getClassName()==="TransformNode"){const t=a;e.transformNodes.push(t.serialize())}else if(a.getClassName().indexOf("Camera")!==-1){const t=a;e.cameras.push(t.serialize())}else if(a.getClassName().indexOf("Light")!==-1){const t=a;e.lights.push(t.serialize())}};class Jy{static ClearCache(){Fne=[]}static Serialize(e){return Jy._Serialize(e)}static _Serialize(e,t=!0){const i={};if(t&&!e.getEngine()._features.supportSyncTextureRead&&be.ForceSerializeBuffers&&de.Warn("The serialization object may not contain the proper base64 encoded texture data! You should use the SerializeAsync method instead."),Jy.ClearCache(),i.useDelayedTextureLoading=e.useDelayedTextureLoading,i.autoClear=e.autoClear,i.clearColor=e.clearColor.asArray(),i.ambientColor=e.ambientColor.asArray(),i.gravity=e.gravity.asArray(),i.collisionsEnabled=e.collisionsEnabled,i.useRightHandedSystem=e.useRightHandedSystem,e.fogMode!==void 0&&e.fogMode!==null&&(i.fogMode=e.fogMode),e.fogColor!==void 0&&e.fogColor!==null&&(i.fogColor=e.fogColor.asArray()),e.fogStart!==void 0&&e.fogStart!==null&&(i.fogStart=e.fogStart),e.fogEnd!==void 0&&e.fogEnd!==null&&(i.fogEnd=e.fogEnd),e.fogDensity!==void 0&&e.fogDensity!==null&&(i.fogDensity=e.fogDensity),e.isPhysicsEnabled&&e.isPhysicsEnabled()){const l=e.getPhysicsEngine();l&&(i.physicsEnabled=!0,i.physicsGravity=l.gravity.asArray(),i.physicsEngine=l.getPhysicsPluginName())}e.metadata&&(i.metadata=e.metadata),i.morphTargetManagers=[];for(const l of e.meshes){const c=l.morphTargetManager;c&&i.morphTargetManagers.push(c.serialize())}i.lights=[];let s,r;for(s=0;s<e.lights.length;s++)r=e.lights[s],r.doNotSerialize||i.lights.push(r.serialize());for(i.cameras=[],s=0;s<e.cameras.length;s++){const l=e.cameras[s];l.doNotSerialize||i.cameras.push(l.serialize())}if(e.activeCamera&&(i.activeCameraID=e.activeCamera.id),It.AppendSerializedAnimations(e,i),e.animationGroups&&e.animationGroups.length>0){i.animationGroups=[];for(let l=0;l<e.animationGroups.length;l++){const c=e.animationGroups[l];i.animationGroups.push(c.serialize())}}if(e.reflectionProbes&&e.reflectionProbes.length>0)for(i.reflectionProbes=[],s=0;s<e.reflectionProbes.length;s++){const l=e.reflectionProbes[s];i.reflectionProbes.push(l.serialize())}i.materials=[],i.multiMaterials=[];let n;for(s=0;s<e.materials.length;s++)n=e.materials[s],n.doNotSerialize||i.materials.push(n.serialize());for(i.multiMaterials=[],s=0;s<e.multiMaterials.length;s++){const l=e.multiMaterials[s];i.multiMaterials.push(l.serialize())}for(e.environmentTexture&&(e.environmentTexture._files?i.environmentTexture=e.environmentTexture.serialize():(i.environmentTexture=e.environmentTexture.name,i.environmentTextureRotationY=e.environmentTexture.rotationY)),i.environmentIntensity=e.environmentIntensity,i.iblIntensity=e.iblIntensity,i.skeletons=[],s=0;s<e.skeletons.length;s++){const l=e.skeletons[s];l.doNotSerialize||i.skeletons.push(l.serialize())}for(i.transformNodes=[],s=0;s<e.transformNodes.length;s++)e.transformNodes[s].doNotSerialize||i.transformNodes.push(e.transformNodes[s].serialize());i.geometries={},i.geometries.boxes=[],i.geometries.spheres=[],i.geometries.cylinders=[],i.geometries.toruses=[],i.geometries.grounds=[],i.geometries.planes=[],i.geometries.torusKnots=[],i.geometries.vertexData=[],Fne=[];const o=e.getGeometries();for(s=0;s<o.length;s++){const l=o[s];l.isReady()&&kne(l,i.geometries)}for(i.meshes=[],s=0;s<e.meshes.length;s++){const l=e.meshes[s];if(l instanceof Ne){const c=l;c.doNotSerialize||(c.delayLoadState===1||c.delayLoadState===0)&&i.meshes.push(Exe(c,i))}}for(i.particleSystems=[],s=0;s<e.particleSystems.length;s++)i.particleSystems.push(e.particleSystems[s].serialize(!1));for(i.postProcesses=[],s=0;s<e.postProcesses.length;s++)i.postProcesses.push(e.postProcesses[s].serialize());e.actionManager&&(i.actions=e.actionManager.serialize("scene"));for(const l of e._serializableComponents)l.serialize(i);if(e.spriteManagers)for(i.spriteManagers=[],s=0;s<e.spriteManagers.length;s++)i.spriteManagers.push(e.spriteManagers[s].serialize(!0));return i}static SerializeAsync(e){const t=Jy._Serialize(e,!1),i=[];return this._CollectPromises(t,i),Promise.all(i).then(()=>t)}static _CollectPromises(e,t){if(Array.isArray(e))for(let i=0;i<e.length;++i){const s=e[i];s instanceof Promise?t.push(s.then(r=>e[i]=r)):(s instanceof Object||Array.isArray(s))&&this._CollectPromises(s,t)}else if(e instanceof Object){for(const i in e)if(Object.prototype.hasOwnProperty.call(e,i)){const s=e[i];s instanceof Promise?t.push(s.then(r=>e[i]=r)):(s instanceof Object||Array.isArray(s))&&this._CollectPromises(s,t)}}}static SerializeMesh(e,t=!1,i=!1){const s={};if(s.meshes=[],s.transformNodes=[],s.cameras=[],s.lights=[],Jy.ClearCache(),e=e instanceof Array?e:[e],t||i)for(let r=0;r<e.length;++r)i&&e[r].getDescendants().forEach(n=>{e.indexOf(n)<0&&!n.doNotSerialize&&e.push(n)}),t&&e[r].parent&&e.indexOf(e[r].parent)<0&&!e[r].parent.doNotSerialize&&e.push(e[r].parent);return e.forEach(r=>{yHe(r,s)}),s}}const Une="lodCubePixelShader",Txe=`precision highp float;const float GammaEncodePowerApprox=1.0/2.2;varying vec2 vUV;uniform samplerCube textureSampler;uniform float lod;uniform int gamma;void main(void)
{vec2 uv=vUV*2.0-1.0;
#ifdef POSITIVEX
gl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x),lod);
#endif
#ifdef NEGATIVEX
gl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x),lod);
#endif
#ifdef POSITIVEY
gl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x),lod);
#endif
#ifdef NEGATIVEY
gl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x),lod);
#endif
#ifdef POSITIVEZ
gl_FragColor=textureCube(textureSampler,vec3(uv,1.001),lod);
#endif
#ifdef NEGATIVEZ
gl_FragColor=textureCube(textureSampler,vec3(uv,-1.001),lod);
#endif
if (gamma==0) {gl_FragColor.rgb=pow(gl_FragColor.rgb,vec3(GammaEncodePowerApprox));}}
`;H.ShadersStore[Une]||(H.ShadersStore[Une]=Txe);const Lxe={name:Une,shader:Txe},MHe=Object.freeze(Object.defineProperty({__proto__:null,lodCubePixelShader:Lxe},Symbol.toStringTag,{value:"Module"})),jne="lodPixelShader",Ixe=`#extension GL_EXT_shader_texture_lod : enable
precision highp float;const float GammaEncodePowerApprox=1.0/2.2;varying vec2 vUV;uniform sampler2D textureSampler;uniform float lod;uniform vec2 texSize;uniform int gamma;void main(void)
{gl_FragColor=texture2DLodEXT(textureSampler,vUV,lod);if (gamma==0) {gl_FragColor.rgb=pow(gl_FragColor.rgb,vec3(GammaEncodePowerApprox));}}
`;H.ShadersStore[jne]||(H.ShadersStore[jne]=Ixe);const Pxe={name:jne,shader:Ixe},EHe=Object.freeze(Object.defineProperty({__proto__:null,lodPixelShader:Pxe},Symbol.toStringTag,{value:"Module"})),Vne="lodCubePixelShader",Oxe=`const GammaEncodePowerApprox=1.0/2.2;varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_cube<f32>;uniform lod: f32;uniform gamma: i32;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {let uv=fragmentInputs.vUV*2.0-1.0;
#ifdef POSITIVEX
fragmentOutputs.color=textureSampleLevel(textureSampler,textureSamplerSampler,vec3f(1.001,uv.y,uv.x),uniforms.lod);
#endif
#ifdef NEGATIVEX
fragmentOutputs.color=textureSampleLevel(textureSampler,textureSamplerSampler,vec3f(-1.001,uv.y,uv.x),uniforms.lod);
#endif
#ifdef POSITIVEY
fragmentOutputs.color=textureSampleLevel(textureSampler,textureSamplerSampler,vec3f(uv.y,1.001,uv.x),uniforms.lod);
#endif
#ifdef NEGATIVEY
fragmentOutputs.color=textureSampleLevel(textureSampler,textureSamplerSampler,vec3f(uv.y,-1.001,uv.x),uniforms.lod);
#endif
#ifdef POSITIVEZ
fragmentOutputs.color=textureSampleLevel(textureSampler,textureSamplerSampler,vec3f(uv,1.001),uniforms.lod);
#endif
#ifdef NEGATIVEZ
fragmentOutputs.color=textureSampleLevel(textureSampler,textureSamplerSampler,vec3f(uv,-1.001),uniforms.lod);
#endif
if (uniforms.gamma==0) {fragmentOutputs.color=vec4f(pow(fragmentOutputs.color.rgb,vec3f(GammaEncodePowerApprox)),fragmentOutputs.color.a);}}
`;H.ShadersStoreWGSL[Vne]||(H.ShadersStoreWGSL[Vne]=Oxe);const Rxe={name:Vne,shader:Oxe},THe=Object.freeze(Object.defineProperty({__proto__:null,lodCubePixelShaderWGSL:Rxe},Symbol.toStringTag,{value:"Module"})),Gne="lodPixelShader",Dxe=`const GammaEncodePowerApprox=1.0/2.2;varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform lod: f32;uniform gamma: i32;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=textureSampleLevel(textureSampler,textureSamplerSampler,fragmentInputs.vUV,uniforms.lod);if (uniforms.gamma==0) {fragmentOutputs.color=vec4f(pow(fragmentOutputs.color.rgb,vec3f(GammaEncodePowerApprox)),fragmentOutputs.color.a);}}
`;H.ShadersStoreWGSL[Gne]||(H.ShadersStoreWGSL[Gne]=Dxe);const Nxe={name:Gne,shader:Dxe},LHe=Object.freeze(Object.defineProperty({__proto__:null,lodPixelShaderWGSL:Nxe},Symbol.toStringTag,{value:"Module"}));class rz{static IsSupported(e,t){const i=t??e.getRenderingCanvas();return!!i&&typeof i.captureStream=="function"}get isRecording(){return!!this._canvas&&this._isRecording}constructor(e,t={}){if(!rz.IsSupported(e,t.canvas))throw"Your browser does not support recording so far.";const i=t.canvas??e.getRenderingCanvas();if(!i)throw"The babylon engine must have a canvas to be recorded";this._canvas=i,this._isRecording=!1,this._options={...rz._DefaultOptions,...t};const s=this._canvas.captureStream(this._options.fps);if(this._options.audioTracks)for(const r of this._options.audioTracks)s.addTrack(r);this._mediaRecorder=new MediaRecorder(s,{mimeType:this._options.mimeType}),this._mediaRecorder.ondataavailable=r=>this._handleDataAvailable(r),this._mediaRecorder.onerror=r=>this._handleError(r),this._mediaRecorder.onstop=()=>this._handleStop()}stopRecording(){!this._canvas||!this._mediaRecorder||this.isRecording&&(this._isRecording=!1,this._mediaRecorder.stop())}startRecording(e="babylonjs.webm",t=7){if(!this._canvas||!this._mediaRecorder)throw"Recorder has already been disposed";if(this.isRecording)throw"Recording already in progress";return t>0&&setTimeout(()=>{this.stopRecording()},t*1e3),this._fileName=e,this._recordedChunks=[],this._resolve=null,this._reject=null,this._isRecording=!0,this._mediaRecorder.start(this._options.recordChunckSize),new Promise((i,s)=>{this._resolve=i,this._reject=s})}dispose(){this._canvas=null,this._mediaRecorder=null,this._recordedChunks=[],this._fileName=null,this._resolve=null,this._reject=null}_handleDataAvailable(e){e.data.size>0&&this._recordedChunks.push(e.data)}_handleError(e){if(this.stopRecording(),this._reject)this._reject(e.error);else throw new e.error}_handleStop(){this.stopRecording();const e=new Blob(this._recordedChunks);this._resolve&&this._resolve(e),window.URL.createObjectURL(e),this._fileName&&Le.Download(e,this._fileName)}}rz._DefaultOptions={mimeType:"video/webm",fps:25,recordChunckSize:3e3};class WL extends Mi{getClassName(){return"FxaaPostProcess"}constructor(e,t,i=null,s,r,n,o=0){super(e,"fxaa",["texelSize"],null,t,i,s||be.BILINEAR_SAMPLINGMODE,r,n,null,o,"fxaa",void 0,!0);const l=this._getDefines();this.updateEffect(l),this.onApplyObservable.add(c=>{const u=this.texelSize;c.setFloat2("texelSize",u.x,u.y)})}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>UXe),Promise.resolve().then(()=>jXe)]))):t.push(Promise.all([Promise.resolve().then(()=>FXe),Promise.resolve().then(()=>kXe)])),super._gatherImports(e,t)}_getDefines(){const e=this.getEngine();return e&&e.extractDriverInfo().toLowerCase().indexOf("mali")>-1?`#define MALI 1
`:null}static _Parse(e,t,i,s){return It.Parse(()=>new WL(e.name,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.reusable),e,i,s)}}ve("BABYLON.FxaaPostProcess",WL);let $y=null;function nz(a,e,t,i,s="image/png",r=!1,n,o=!1){const{height:l,width:c}=Bxe(a,e,t);if(!(l&&c)){de.Error("Invalid 'size' parameter !");return}if(e.getScene().activeCamera!==e){az(a,e,t,f=>{if(r){const p=new Blob([f]);Le.DownloadBlob(p),i&&i("")}else i&&i(f)},s,1,a.getCreationOptions().antialias,void 0,void 0,void 0,void 0,n);return}a.onEndFrameObservable.addOnce(()=>{$y||($y=document.createElement("canvas")),$y.width=c,$y.height=l;const f=$y.getContext("2d"),p=a.getRenderingCanvas();if(!f||!p){de.Error("Failed to create screenshot. Rendering context or rendering canvas is not available.");return}const m=p.width,_=p.height,d=$y.width,h=$y.height,x=d/m,A=h/_,S=o?Math.max(x,A):Math.min(x,A),E=m*S,b=_*S,M=(d-E)/2,T=(h-b)/2;f.drawImage(p,0,0,m,_,M,T,E,b),r?(Le.EncodeScreenshotCanvasData($y,void 0,s,void 0,n),i&&i("")):Le.EncodeScreenshotCanvasData($y,i,s,void 0,n)})}function Wne(a,e,t,i="image/png",s,r=!1){return new Promise((n,o)=>{nz(a,e,t,l=>{typeof l<"u"?n(l):o(new Error("Data is undefined"))},i,void 0,s,r)})}function wxe(a,e,t,i,s="image/png",r,n=!1){return new Promise(o=>{nz(a,e,{width:t,height:i},()=>{o()},s,!0,r,n)})}function az(a,e,t,i,s="image/png",r=1,n=!1,o,l=!1,c=!1,u=!0,f,p,m){const{height:_,width:d,finalWidth:h,finalHeight:x}=Bxe(a,e,t),A={width:d,height:_};if(!(_&&d)){de.Error("Invalid 'size' parameter !");return}a.skipFrameRender=!0;const S=a.getRenderWidth,E=a.getRenderHeight;a.getRenderWidth=(I=!1)=>!I&&a._currentRenderTarget?a._currentRenderTarget.width:d,a.getRenderHeight=(I=!1)=>!I&&a._currentRenderTarget?a._currentRenderTarget.height:_,a.onResizeObservable.hasObservers()&&a.onResizeObservable.notifyObservers(a);const b=e.getScene(),M=new Ir("screenShot",A,b,!1,!1,0,!1,be.BILINEAR_SAMPLINGMODE,void 0,c,void 0,void 0,void 0,r);M.renderList=b.meshes.slice(),M.samples=r,M.renderSprites=l,M.activeCamera=e,M.forceLayerMaskCheck=u,p==null||p(M);const T=m||rL,O=()=>{my(()=>M.isReadyForRendering()&&e.isReady(!0),()=>{a.onEndFrameObservable.addOnce(()=>{h===d&&x===_?M.readPixels(void 0,void 0,void 0,!1).then(Y=>{T(d,_,Y,i,s,o,!0,void 0,f),M.dispose()}):(a.isWebGPU?Promise.resolve().then(()=>_z):Promise.resolve().then(()=>UO)).then(()=>LG("pass",M.getInternalTexture(),b,void 0,void 0,void 0,h,x).then(V=>{a._readTexturePixels(V,h,x,-1,0,null,!0,!1,0,0).then(ee=>{T(h,x,ee,i,s,o,!0,void 0,f),V.dispose()})}))}),b.incrementRenderId(),b.resetCachedMaterial();const I=b.activeCamera,N=b.activeCameras,w=e.outputRenderTarget,D=b.spritesEnabled;b.activeCamera=e,b.activeCameras=null,e.outputRenderTarget=M,b.spritesEnabled=l;const k=b.meshes;b.meshes=M.renderList||b.meshes;try{b.render()}finally{b.activeCamera=I,b.activeCameras=N,e.outputRenderTarget=w,b.spritesEnabled=D,b.meshes=k,a.getRenderWidth=S,a.getRenderHeight=E,a.onResizeObservable.hasObservers()&&a.onResizeObservable.notifyObservers(a),e.getProjectionMatrix(!0),a.skipFrameRender=!1}},()=>{a.skipFrameRender=!1,a.getRenderWidth=S,a.getRenderHeight=E})},R=()=>{b.incrementRenderId(),b.resetCachedMaterial(),O()};if(n){const I=new WL("antialiasing",1,b.activeCamera);M.addPostProcess(I),I.onEffectCreatedObservable.addOnce(N=>{N.isReady()?R():N.onCompiled=()=>{R()}})}else R()}function Hne(a,e,t,i="image/png",s=1,r=!1,n,o=!1,l=!1,c=!0,u,f,p){return new Promise((m,_)=>{az(a,e,t,d=>{typeof d<"u"?m(d):_(new Error("Data is undefined"))},i,s,r,n,o,l,c,u,f,p)})}function Bxe(a,e,t){let i=0,s=0,r=0,n=0;if(typeof t=="object"){const o=t.precision?Math.abs(t.precision):1;t.width&&t.height?(i=t.height*o,s=t.width*o):t.width&&!t.height?(s=t.width*o,i=Math.round(s/a.getAspectRatio(e))):t.height&&!t.width?(i=t.height*o,s=Math.round(i*a.getAspectRatio(e))):(s=Math.round(a.getRenderWidth()*o),i=Math.round(s/a.getAspectRatio(e))),t.finalWidth&&t.finalHeight?(n=t.finalHeight,r=t.finalWidth):t.finalWidth&&!t.finalHeight?(r=t.finalWidth,n=Math.round(r/a.getAspectRatio(e))):t.finalHeight&&!t.finalWidth?(n=t.finalHeight,r=Math.round(n*a.getAspectRatio(e))):(r=s,n=i)}else isNaN(t)||(i=t,s=t,r=t,n=t);return s&&(s=Math.floor(s)),i&&(i=Math.floor(i)),r&&(r=Math.floor(r)),n&&(n=Math.floor(n)),{height:i|0,width:s|0,finalWidth:r|0,finalHeight:n|0}}const IHe={CreateScreenshot:nz,CreateScreenshotAsync:Wne,CreateScreenshotWithResizeAsync:wxe,CreateScreenshotUsingRenderTarget:az,CreateScreenshotUsingRenderTargetAsync:Hne};(()=>{Le.CreateScreenshot=nz,Le.CreateScreenshotAsync=Wne,Le.CreateScreenshotUsingRenderTarget=az,Le.CreateScreenshotUsingRenderTargetAsync=Hne})();var Yne;(function(a){a[a.Checkbox=0]="Checkbox",a[a.Slider=1]="Slider",a[a.Vector3=2]="Vector3",a[a.Quaternion=3]="Quaternion",a[a.Color3=4]="Color3",a[a.String=5]="String",a[a.Button=6]="Button",a[a.Options=7]="Options",a[a.Tab=8]="Tab",a[a.FileButton=9]="FileButton",a[a.Vector2=10]="Vector2"})(Yne||(Yne={}));class Xne{constructor(e,t,i){this.gradient=e,this.color1=t,this.color2=i}getColorToRef(e){if(!this.color2){e.copyFrom(this.color1);return}St.LerpToRef(this.color1,this.color2,Math.random(),e)}}class zxe{constructor(e,t){this.gradient=e,this.color=t}}class Zne{constructor(e,t,i){this.gradient=e,this.factor1=t,this.factor2=i}getFactor(){return this.factor2===void 0||this.factor2===this.factor1?this.factor1:this.factor1+(this.factor2-this.factor1)*Math.random()}}class N0{static GetCurrentGradient(e,t,i){if(t[0].gradient>e){i(t[0],t[0],1);return}for(let r=0;r<t.length-1;r++){const n=t[r],o=t[r+1];if(e>=n.gradient&&e<=o.gradient){const l=(e-n.gradient)/(o.gradient-n.gradient);i(n,o,l);return}}const s=t.length-1;i(t[s],t[s],1)}}class Kne{static _GetStorage(){try{return localStorage.setItem("test",""),localStorage.removeItem("test"),localStorage}catch{const e={};return{getItem:t=>{const i=e[t];return i===void 0?null:i},setItem:(t,i)=>{e[t]=i}}}}static ReadString(e,t){const i=this._Storage.getItem(e);return i!==null?i:t}static WriteString(e,t){this._Storage.setItem(e,t)}static ReadBoolean(e,t){const i=this._Storage.getItem(e);return i!==null?i==="true":t}static WriteBoolean(e,t){this._Storage.setItem(e,t?"true":"false")}static ReadNumber(e,t){const i=this._Storage.getItem(e);return i!==null?parseFloat(i):t}static WriteNumber(e,t){this._Storage.setItem(e,t.toString())}}Kne._Storage=Kne._GetStorage();class IO{constructor(e){this.particleSystem=e,this.position=P.Zero(),this.direction=P.Zero(),this.color=new St(0,0,0,0),this.colorStep=new St(0,0,0,0),this.lifeTime=1,this.age=0,this.size=0,this.scale=new Ue(1,1),this.angle=0,this.angularSpeed=0,this.cellIndex=0,this._attachedSubEmitters=null,this._currentColor1=new St(0,0,0,0),this._currentColor2=new St(0,0,0,0),this._currentSize1=0,this._currentSize2=0,this._currentAngularSpeed1=0,this._currentAngularSpeed2=0,this._currentVelocity1=0,this._currentVelocity2=0,this._currentLimitVelocity1=0,this._currentLimitVelocity2=0,this._currentDrag1=0,this._currentDrag2=0,this.id=IO._Count++,this.particleSystem.isAnimationSheetEnabled&&this._updateCellInfoFromSystem()}_updateCellInfoFromSystem(){this.cellIndex=this.particleSystem.startSpriteCellID}updateCellIndex(){let e=this.age,t=this.particleSystem.spriteCellChangeSpeed;this.particleSystem.spriteRandomStartCell&&(this._randomCellOffset===void 0&&(this._randomCellOffset=Math.random()*this.lifeTime),t===0?(t=1,e=this._randomCellOffset):e+=this._randomCellOffset);const i=this._initialEndSpriteCellID-this._initialStartSpriteCellID+1;let s;this._initialSpriteCellLoop?s=Os(e*t%this.lifeTime/this.lifeTime):s=Os(e*t/this.lifeTime),this.cellIndex=this._initialStartSpriteCellID+s*i|0}_inheritParticleInfoToSubEmitter(e){if(e.particleSystem.emitter.position){const t=e.particleSystem.emitter;if(t.position.copyFrom(this.position),e.inheritDirection){const i=ae.Vector3[0];this.direction.normalizeToRef(i),t.setDirection(i,0,Math.PI/2)}}else e.particleSystem.emitter.copyFrom(this.position);this.direction.scaleToRef(e.inheritedVelocityAmount/2,ae.Vector3[0]),e.particleSystem._inheritedVelocityOffset.copyFrom(ae.Vector3[0])}_inheritParticleInfoToSubEmitters(){this._attachedSubEmitters&&this._attachedSubEmitters.length>0&&this._attachedSubEmitters.forEach(e=>{this._inheritParticleInfoToSubEmitter(e)})}_reset(){this.age=0,this.id=IO._Count++,this._currentColorGradient=null,this._currentSizeGradient=null,this._currentAngularSpeedGradient=null,this._currentVelocityGradient=null,this._currentLimitVelocityGradient=null,this._currentDragGradient=null,this.cellIndex=this.particleSystem.startSpriteCellID,this._randomCellOffset=void 0}copyTo(e){e.position.copyFrom(this.position),this._initialDirection?e._initialDirection?e._initialDirection.copyFrom(this._initialDirection):e._initialDirection=this._initialDirection.clone():e._initialDirection=null,e.direction.copyFrom(this.direction),this._localPosition&&(e._localPosition?e._localPosition.copyFrom(this._localPosition):e._localPosition=this._localPosition.clone()),e.color.copyFrom(this.color),e.colorStep.copyFrom(this.colorStep),e.lifeTime=this.lifeTime,e.age=this.age,e._randomCellOffset=this._randomCellOffset,e.size=this.size,e.scale.copyFrom(this.scale),e.angle=this.angle,e.angularSpeed=this.angularSpeed,e.particleSystem=this.particleSystem,e.cellIndex=this.cellIndex,e.id=this.id,e._attachedSubEmitters=this._attachedSubEmitters,this._currentColorGradient&&(e._currentColorGradient=this._currentColorGradient,e._currentColor1.copyFrom(this._currentColor1),e._currentColor2.copyFrom(this._currentColor2)),this._currentSizeGradient&&(e._currentSizeGradient=this._currentSizeGradient,e._currentSize1=this._currentSize1,e._currentSize2=this._currentSize2),this._currentAngularSpeedGradient&&(e._currentAngularSpeedGradient=this._currentAngularSpeedGradient,e._currentAngularSpeed1=this._currentAngularSpeed1,e._currentAngularSpeed2=this._currentAngularSpeed2),this._currentVelocityGradient&&(e._currentVelocityGradient=this._currentVelocityGradient,e._currentVelocity1=this._currentVelocity1,e._currentVelocity2=this._currentVelocity2),this._currentLimitVelocityGradient&&(e._currentLimitVelocityGradient=this._currentLimitVelocityGradient,e._currentLimitVelocity1=this._currentLimitVelocity1,e._currentLimitVelocity2=this._currentLimitVelocity2),this._currentDragGradient&&(e._currentDragGradient=this._currentDragGradient,e._currentDrag1=this._currentDrag1,e._currentDrag2=this._currentDrag2),this.particleSystem.isAnimationSheetEnabled&&(e._initialStartSpriteCellID=this._initialStartSpriteCellID,e._initialEndSpriteCellID=this._initialEndSpriteCellID,e._initialSpriteCellLoop=this._initialSpriteCellLoop),this.particleSystem.useRampGradients&&(e.remapData&&this.remapData?e.remapData.copyFrom(this.remapData):e.remapData=new Yt(0,0,0,0)),this._randomNoiseCoordinates1&&(e._randomNoiseCoordinates1?(e._randomNoiseCoordinates1.copyFrom(this._randomNoiseCoordinates1),e._randomNoiseCoordinates2.copyFrom(this._randomNoiseCoordinates2)):(e._randomNoiseCoordinates1=this._randomNoiseCoordinates1.clone(),e._randomNoiseCoordinates2=this._randomNoiseCoordinates2.clone()))}}IO._Count=0;class eM{constructor(){this.direction1=new P(0,1,0),this.direction2=new P(0,1,0),this.minEmitBox=new P(-.5,-.5,-.5),this.maxEmitBox=new P(.5,.5,.5)}startDirectionFunction(e,t,i,s){const r=Ki(this.direction1.x,this.direction2.x),n=Ki(this.direction1.y,this.direction2.y),o=Ki(this.direction1.z,this.direction2.z);if(s){t.x=r,t.y=n,t.z=o;return}P.TransformNormalFromFloatsToRef(r,n,o,e,t)}startPositionFunction(e,t,i,s){const r=Ki(this.minEmitBox.x,this.maxEmitBox.x),n=Ki(this.minEmitBox.y,this.maxEmitBox.y),o=Ki(this.minEmitBox.z,this.maxEmitBox.z);if(s){t.x=r,t.y=n,t.z=o;return}P.TransformCoordinatesFromFloatsToRef(r,n,o,e,t)}clone(){const e=new eM;return nu.DeepCopy(this,e),e}applyToShader(e){e.setVector3("direction1",this.direction1),e.setVector3("direction2",this.direction2),e.setVector3("minEmitBox",this.minEmitBox),e.setVector3("maxEmitBox",this.maxEmitBox)}buildUniformLayout(e){e.addUniform("direction1",3),e.addUniform("direction2",3),e.addUniform("minEmitBox",3),e.addUniform("maxEmitBox",3)}getEffectDefines(){return"#define BOXEMITTER"}getClassName(){return"BoxParticleEmitter"}serialize(){const e={};return e.type=this.getClassName(),e.direction1=this.direction1.asArray(),e.direction2=this.direction2.asArray(),e.minEmitBox=this.minEmitBox.asArray(),e.maxEmitBox=this.maxEmitBox.asArray(),e}parse(e){P.FromArrayToRef(e.direction1,0,this.direction1),P.FromArrayToRef(e.direction2,0,this.direction2),P.FromArrayToRef(e.minEmitBox,0,this.minEmitBox),P.FromArrayToRef(e.maxEmitBox,0,this.maxEmitBox)}}class PO extends sc{set onDispose(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)}get useRampGradients(){return this._useRampGradients}set useRampGradients(e){this._useRampGradients!==e&&(this._useRampGradients=e,this._resetEffect())}get particles(){return this._particles}get shaderLanguage(){return this._shaderLanguage}getActiveCount(){return this._particles.length}getClassName(){return"ParticleSystem"}isStopping(){return this._stopped&&this.isAlive()}getCustomEffect(e=0){var t;return((t=this._customWrappers[e])==null?void 0:t.effect)??this._customWrappers[0].effect}_getCustomDrawWrapper(e=0){return this._customWrappers[e]??this._customWrappers[0]}setCustomEffect(e,t=0){this._customWrappers[t]=new ql(this._engine),this._customWrappers[t].effect=e,this._customWrappers[t].drawContext&&(this._customWrappers[t].drawContext.useInstancing=this._useInstancing)}get onBeforeDrawParticlesObservable(){return this._onBeforeDrawParticlesObservable||(this._onBeforeDrawParticlesObservable=new xe),this._onBeforeDrawParticlesObservable}get vertexShaderName(){return"particles"}get vertexBuffers(){return this._vertexBuffers}get indexBuffer(){return this._indexBuffer}constructor(e,t,i,s=null,r=!1,n=.01){super(e),this._emitterInverseWorldMatrix=me.Identity(),this._inheritedVelocityOffset=new P,this.onDisposeObservable=new xe,this.onStoppedObservable=new xe,this._particles=new Array,this._stockParticles=new Array,this._newPartsExcess=0,this._vertexBuffers={},this._scaledColorStep=new St(0,0,0,0),this._colorDiff=new St(0,0,0,0),this._scaledDirection=P.Zero(),this._scaledGravity=P.Zero(),this._currentRenderId=-1,this._useInstancing=!1,this._started=!1,this._stopped=!1,this._actualFrame=0,this._currentEmitRate1=0,this._currentEmitRate2=0,this._currentStartSize1=0,this._currentStartSize2=0,this.updateInAnimate=!0,this._rawTextureWidth=256,this._useRampGradients=!1,this.isLocal=!1,this.isGPU=!1,this._shaderLanguage=0,this._onBeforeDrawParticlesObservable=null,this._emitFromParticle=l=>{},this.recycleParticle=l=>{const c=this._particles.pop();c!==l&&c.copyTo(l),this._stockParticles.push(c)},this._createParticle=()=>{let l;return this._stockParticles.length!==0?(l=this._stockParticles.pop(),l._reset()):l=new IO(this),this._prepareParticle(l),l},this._shadersLoaded=!1,this._capacity=t,this._epsilon=n,this._isAnimationSheetEnabled=r,!i||i.getClassName()==="Scene"?(this._scene=i||ei.LastCreatedScene,this._engine=this._scene.getEngine(),this.uniqueId=this._scene.getUniqueId(),this._scene.particleSystems.push(this)):(this._engine=i,this.defaultProjectionMatrix=me.PerspectiveFovLH(.8,1,.1,100,this._engine.isNDCHalfZRange)),this._engine.getCaps().vertexArrayObject&&(this._vertexArrayObject=null),this._initShaderSourceAsync(),this._attachImageProcessingConfiguration(null),this._customWrappers={0:new ql(this._engine)},this._customWrappers[0].effect=s,this._drawWrappers=[],this._useInstancing=this._engine.getCaps().instancedArrays,this._createIndexBuffer(),this._createVertexBuffers(),this.particleEmitterType=new eM;let o=null;this.updateFunction=l=>{var f;let c=null;this.noiseTexture&&(c=this.noiseTexture.getSize(),(f=this.noiseTexture.getContent())==null||f.then(p=>{o=p}));const u=l===this._particles;for(let p=0;p<l.length;p++){const m=l[p];let _=this._scaledUpdateSpeed;const d=m.age;if(m.age+=_,m.age>m.lifeTime){const A=m.age-d;_=(m.lifeTime-d)*_/A,m.age=m.lifeTime}const h=m.age/m.lifeTime;this._colorGradients&&this._colorGradients.length>0?N0.GetCurrentGradient(h,this._colorGradients,(A,S,E)=>{A!==m._currentColorGradient&&(m._currentColor1.copyFrom(m._currentColor2),S.getColorToRef(m._currentColor2),m._currentColorGradient=A),St.LerpToRef(m._currentColor1,m._currentColor2,E,m.color)}):(m.colorStep.scaleToRef(_,this._scaledColorStep),m.color.addInPlace(this._scaledColorStep),m.color.a<0&&(m.color.a=0)),this._angularSpeedGradients&&this._angularSpeedGradients.length>0&&N0.GetCurrentGradient(h,this._angularSpeedGradients,(A,S,E)=>{A!==m._currentAngularSpeedGradient&&(m._currentAngularSpeed1=m._currentAngularSpeed2,m._currentAngularSpeed2=S.getFactor(),m._currentAngularSpeedGradient=A),m.angularSpeed=Zl(m._currentAngularSpeed1,m._currentAngularSpeed2,E)}),m.angle+=m.angularSpeed*_;let x=_;if(this._velocityGradients&&this._velocityGradients.length>0&&N0.GetCurrentGradient(h,this._velocityGradients,(A,S,E)=>{A!==m._currentVelocityGradient&&(m._currentVelocity1=m._currentVelocity2,m._currentVelocity2=S.getFactor(),m._currentVelocityGradient=A),x*=Zl(m._currentVelocity1,m._currentVelocity2,E)}),m.direction.scaleToRef(x,this._scaledDirection),this._limitVelocityGradients&&this._limitVelocityGradients.length>0&&N0.GetCurrentGradient(h,this._limitVelocityGradients,(A,S,E)=>{A!==m._currentLimitVelocityGradient&&(m._currentLimitVelocity1=m._currentLimitVelocity2,m._currentLimitVelocity2=S.getFactor(),m._currentLimitVelocityGradient=A);const b=Zl(m._currentLimitVelocity1,m._currentLimitVelocity2,E);m.direction.length()>b&&m.direction.scaleInPlace(this.limitVelocityDamping)}),this._dragGradients&&this._dragGradients.length>0&&N0.GetCurrentGradient(h,this._dragGradients,(A,S,E)=>{A!==m._currentDragGradient&&(m._currentDrag1=m._currentDrag2,m._currentDrag2=S.getFactor(),m._currentDragGradient=A);const b=Zl(m._currentDrag1,m._currentDrag2,E);this._scaledDirection.scaleInPlace(1-b)}),this.isLocal&&m._localPosition?(m._localPosition.addInPlace(this._scaledDirection),P.TransformCoordinatesToRef(m._localPosition,this._emitterWorldMatrix,m.position)):m.position.addInPlace(this._scaledDirection),o&&c&&m._randomNoiseCoordinates1){const A=this._fetchR(m._randomNoiseCoordinates1.x,m._randomNoiseCoordinates1.y,c.width,c.height,o),S=this._fetchR(m._randomNoiseCoordinates1.z,m._randomNoiseCoordinates2.x,c.width,c.height,o),E=this._fetchR(m._randomNoiseCoordinates2.y,m._randomNoiseCoordinates2.z,c.width,c.height,o),b=ae.Vector3[0],M=ae.Vector3[1];b.copyFromFloats((2*A-1)*this.noiseStrength.x,(2*S-1)*this.noiseStrength.y,(2*E-1)*this.noiseStrength.z),b.scaleToRef(_,M),m.direction.addInPlace(M)}if(this.gravity.scaleToRef(_,this._scaledGravity),m.direction.addInPlace(this._scaledGravity),this._sizeGradients&&this._sizeGradients.length>0&&N0.GetCurrentGradient(h,this._sizeGradients,(A,S,E)=>{A!==m._currentSizeGradient&&(m._currentSize1=m._currentSize2,m._currentSize2=S.getFactor(),m._currentSizeGradient=A),m.size=Zl(m._currentSize1,m._currentSize2,E)}),this._useRampGradients&&(this._colorRemapGradients&&this._colorRemapGradients.length>0&&N0.GetCurrentGradient(h,this._colorRemapGradients,(A,S,E)=>{const b=Zl(A.factor1,S.factor1,E),M=Zl(A.factor2,S.factor2,E);m.remapData.x=b,m.remapData.y=M-b}),this._alphaRemapGradients&&this._alphaRemapGradients.length>0&&N0.GetCurrentGradient(h,this._alphaRemapGradients,(A,S,E)=>{const b=Zl(A.factor1,S.factor1,E),M=Zl(A.factor2,S.factor2,E);m.remapData.z=b,m.remapData.w=M-b})),this._isAnimationSheetEnabled&&m.updateCellIndex(),m._inheritParticleInfoToSubEmitters(),m.age>=m.lifeTime){this._emitFromParticle(m),m._attachedSubEmitters&&(m._attachedSubEmitters.forEach(A=>{A.particleSystem.disposeOnStop=!0,A.particleSystem.stop()}),m._attachedSubEmitters=null),this.recycleParticle(m),u&&p--;continue}}}}serialize(e){throw new Error("Method not implemented.")}clone(e,t,i=!1){throw new Error("Method not implemented.")}_addFactorGradient(e,t,i,s){const r=new Zne(t,i,s);e.push(r),e.sort((n,o)=>n.gradient<o.gradient?-1:n.gradient>o.gradient?1:0)}_removeFactorGradient(e,t){if(!e)return;let i=0;for(const s of e){if(s.gradient===t){e.splice(i,1);break}i++}}addLifeTimeGradient(e,t,i){return this._lifeTimeGradients||(this._lifeTimeGradients=[]),this._addFactorGradient(this._lifeTimeGradients,e,t,i),this}removeLifeTimeGradient(e){return this._removeFactorGradient(this._lifeTimeGradients,e),this}addSizeGradient(e,t,i){return this._sizeGradients||(this._sizeGradients=[]),this._addFactorGradient(this._sizeGradients,e,t,i),this}removeSizeGradient(e){return this._removeFactorGradient(this._sizeGradients,e),this}addColorRemapGradient(e,t,i){return this._colorRemapGradients||(this._colorRemapGradients=[]),this._addFactorGradient(this._colorRemapGradients,e,t,i),this}removeColorRemapGradient(e){return this._removeFactorGradient(this._colorRemapGradients,e),this}addAlphaRemapGradient(e,t,i){return this._alphaRemapGradients||(this._alphaRemapGradients=[]),this._addFactorGradient(this._alphaRemapGradients,e,t,i),this}removeAlphaRemapGradient(e){return this._removeFactorGradient(this._alphaRemapGradients,e),this}addAngularSpeedGradient(e,t,i){return this._angularSpeedGradients||(this._angularSpeedGradients=[]),this._addFactorGradient(this._angularSpeedGradients,e,t,i),this}removeAngularSpeedGradient(e){return this._removeFactorGradient(this._angularSpeedGradients,e),this}addVelocityGradient(e,t,i){return this._velocityGradients||(this._velocityGradients=[]),this._addFactorGradient(this._velocityGradients,e,t,i),this}removeVelocityGradient(e){return this._removeFactorGradient(this._velocityGradients,e),this}addLimitVelocityGradient(e,t,i){return this._limitVelocityGradients||(this._limitVelocityGradients=[]),this._addFactorGradient(this._limitVelocityGradients,e,t,i),this}removeLimitVelocityGradient(e){return this._removeFactorGradient(this._limitVelocityGradients,e),this}addDragGradient(e,t,i){return this._dragGradients||(this._dragGradients=[]),this._addFactorGradient(this._dragGradients,e,t,i),this}removeDragGradient(e){return this._removeFactorGradient(this._dragGradients,e),this}addEmitRateGradient(e,t,i){return this._emitRateGradients||(this._emitRateGradients=[]),this._addFactorGradient(this._emitRateGradients,e,t,i),this}removeEmitRateGradient(e){return this._removeFactorGradient(this._emitRateGradients,e),this}addStartSizeGradient(e,t,i){return this._startSizeGradients||(this._startSizeGradients=[]),this._addFactorGradient(this._startSizeGradients,e,t,i),this}removeStartSizeGradient(e){return this._removeFactorGradient(this._startSizeGradients,e),this}_createRampGradientTexture(){if(!this._rampGradients||!this._rampGradients.length||this._rampGradientsTexture||!this._scene)return;const e=new Uint8Array(this._rawTextureWidth*4),t=Sr.Color3[0];for(let i=0;i<this._rawTextureWidth;i++){const s=i/this._rawTextureWidth;N0.GetCurrentGradient(s,this._rampGradients,(r,n,o)=>{Pe.LerpToRef(r.color,n.color,o,t),e[i*4]=t.r*255,e[i*4+1]=t.g*255,e[i*4+2]=t.b*255,e[i*4+3]=255})}this._rampGradientsTexture=Ur.CreateRGBATexture(e,this._rawTextureWidth,1,this._scene,!1,!1,1)}getRampGradients(){return this._rampGradients}forceRefreshGradients(){this._syncRampGradientTexture()}_syncRampGradientTexture(){this._rampGradients&&(this._rampGradients.sort((e,t)=>e.gradient<t.gradient?-1:e.gradient>t.gradient?1:0),this._rampGradientsTexture&&(this._rampGradientsTexture.dispose(),this._rampGradientsTexture=null),this._createRampGradientTexture())}addRampGradient(e,t){this._rampGradients||(this._rampGradients=[]);const i=new zxe(e,t);return this._rampGradients.push(i),this._syncRampGradientTexture(),this}removeRampGradient(e){return this._removeGradientAndTexture(e,this._rampGradients,this._rampGradientsTexture),this._rampGradientsTexture=null,this._rampGradients&&this._rampGradients.length>0&&this._createRampGradientTexture(),this}addColorGradient(e,t,i){this._colorGradients||(this._colorGradients=[]);const s=new Xne(e,t,i);return this._colorGradients.push(s),this._colorGradients.sort((r,n)=>r.gradient<n.gradient?-1:r.gradient>n.gradient?1:0),this}removeColorGradient(e){if(!this._colorGradients)return this;let t=0;for(const i of this._colorGradients){if(i.gradient===e){this._colorGradients.splice(t,1);break}t++}return this}resetDrawCache(){for(const e of this._drawWrappers)if(e)for(const t of e)t==null||t.dispose();this._drawWrappers=[]}_fetchR(e,t,i,s,r){e=Math.abs(e)*.5+.5,t=Math.abs(t)*.5+.5;const n=e*i%i|0,o=t*s%s|0,l=(n+o*i)*4;return r[l]/255}_reset(){this._resetEffect()}_resetEffect(){this._vertexBuffer&&(this._vertexBuffer.dispose(),this._vertexBuffer=null),this._spriteBuffer&&(this._spriteBuffer.dispose(),this._spriteBuffer=null),this._vertexArrayObject&&(this._engine.releaseVertexArrayObject(this._vertexArrayObject),this._vertexArrayObject=null),this._createVertexBuffers()}_createVertexBuffers(){this._vertexBufferSize=this._useInstancing?10:12,this._isAnimationSheetEnabled&&(this._vertexBufferSize+=1),(!this._isBillboardBased||this.billboardMode===8||this.billboardMode===9)&&(this._vertexBufferSize+=3),this._useRampGradients&&(this._vertexBufferSize+=4);const e=this._engine,t=this._vertexBufferSize*(this._useInstancing?1:4);this._vertexData=new Float32Array(this._capacity*t),this._vertexBuffer=new fl(e,this._vertexData,!0,t);let i=0;const s=this._vertexBuffer.createVertexBuffer(q.PositionKind,i,3,this._vertexBufferSize,this._useInstancing);this._vertexBuffers[q.PositionKind]=s,i+=3;const r=this._vertexBuffer.createVertexBuffer(q.ColorKind,i,4,this._vertexBufferSize,this._useInstancing);this._vertexBuffers[q.ColorKind]=r,i+=4;const n=this._vertexBuffer.createVertexBuffer("angle",i,1,this._vertexBufferSize,this._useInstancing);this._vertexBuffers.angle=n,i+=1;const o=this._vertexBuffer.createVertexBuffer("size",i,2,this._vertexBufferSize,this._useInstancing);if(this._vertexBuffers.size=o,i+=2,this._isAnimationSheetEnabled){const c=this._vertexBuffer.createVertexBuffer("cellIndex",i,1,this._vertexBufferSize,this._useInstancing);this._vertexBuffers.cellIndex=c,i+=1}if(!this._isBillboardBased||this.billboardMode===8||this.billboardMode===9){const c=this._vertexBuffer.createVertexBuffer("direction",i,3,this._vertexBufferSize,this._useInstancing);this._vertexBuffers.direction=c,i+=3}if(this._useRampGradients){const c=this._vertexBuffer.createVertexBuffer("remapData",i,4,this._vertexBufferSize,this._useInstancing);this._vertexBuffers.remapData=c,i+=4}let l;if(this._useInstancing){const c=new Float32Array([0,0,1,0,0,1,1,1]);this._spriteBuffer=new fl(e,c,!1,2),l=this._spriteBuffer.createVertexBuffer("offset",0,2)}else l=this._vertexBuffer.createVertexBuffer("offset",i,2,this._vertexBufferSize,this._useInstancing),i+=2;this._vertexBuffers.offset=l,this.resetDrawCache()}_createIndexBuffer(){if(this._useInstancing){this._linesIndexBufferUseInstancing=this._engine.createIndexBuffer(new Uint32Array([0,1,1,3,3,2,2,0,0,3]));return}const e=[],t=[];let i=0;for(let s=0;s<this._capacity;s++)e.push(i),e.push(i+1),e.push(i+2),e.push(i),e.push(i+2),e.push(i+3),t.push(i,i+1,i+1,i+2,i+2,i+3,i+3,i,i,i+3),i+=4;this._indexBuffer=this._engine.createIndexBuffer(e),this._linesIndexBuffer=this._engine.createIndexBuffer(t)}getCapacity(){return this._capacity}isAlive(){return this._alive}isStarted(){return this._started}_preStart(){}start(e=this.startDelay){var t;if(!this.targetStopDuration&&this._hasTargetStopDurationDependantGradient())throw"Particle system started with a targetStopDuration dependant gradient (eg. startSizeGradients) but no targetStopDuration set";if(e){setTimeout(()=>{this.start(0)},e);return}if(this._started=!0,this._stopped=!1,this._actualFrame=0,this._preStart(),this._emitRateGradients&&(this._emitRateGradients.length>0&&(this._currentEmitRateGradient=this._emitRateGradients[0],this._currentEmitRate1=this._currentEmitRateGradient.getFactor(),this._currentEmitRate2=this._currentEmitRate1),this._emitRateGradients.length>1&&(this._currentEmitRate2=this._emitRateGradients[1].getFactor())),this._startSizeGradients&&(this._startSizeGradients.length>0&&(this._currentStartSizeGradient=this._startSizeGradients[0],this._currentStartSize1=this._currentStartSizeGradient.getFactor(),this._currentStartSize2=this._currentStartSize1),this._startSizeGradients.length>1&&(this._currentStartSize2=this._startSizeGradients[1].getFactor())),this.preWarmCycles){((t=this.emitter)==null?void 0:t.getClassName().indexOf("Mesh"))!==-1&&this.emitter.computeWorldMatrix(!0);const i=this.noiseTexture;if(i&&i.onGeneratedObservable)i.onGeneratedObservable.addOnce(()=>{setTimeout(()=>{for(let s=0;s<this.preWarmCycles;s++)this.animate(!0),i.render()})});else for(let s=0;s<this.preWarmCycles;s++)this.animate(!0)}this.beginAnimationOnStart&&this.animations&&this.animations.length>0&&this._scene&&this._scene.beginAnimation(this,this.beginAnimationFrom,this.beginAnimationTo,this.beginAnimationLoop)}stop(e=!0){this._stopped||(this.onStoppedObservable.notifyObservers(this),this._stopped=!0,this._postStop(e))}_postStop(e){}reset(){this._stockParticles.length=0,this._particles.length=0}_appendParticleVertex(e,t,i,s){let r=e*this._vertexBufferSize;if(this._vertexData[r++]=t.position.x+this.worldOffset.x,this._vertexData[r++]=t.position.y+this.worldOffset.y,this._vertexData[r++]=t.position.z+this.worldOffset.z,this._vertexData[r++]=t.color.r,this._vertexData[r++]=t.color.g,this._vertexData[r++]=t.color.b,this._vertexData[r++]=t.color.a,this._vertexData[r++]=t.angle,this._vertexData[r++]=t.scale.x*t.size,this._vertexData[r++]=t.scale.y*t.size,this._isAnimationSheetEnabled&&(this._vertexData[r++]=t.cellIndex),this._isBillboardBased)(this.billboardMode===8||this.billboardMode===9)&&(this._vertexData[r++]=t.direction.x,this._vertexData[r++]=t.direction.y,this._vertexData[r++]=t.direction.z);else if(t._initialDirection){let n=t._initialDirection;this.isLocal&&(P.TransformNormalToRef(n,this._emitterWorldMatrix,ae.Vector3[0]),n=ae.Vector3[0]),n.x===0&&n.z===0&&(n.x=.001),this._vertexData[r++]=n.x,this._vertexData[r++]=n.y,this._vertexData[r++]=n.z}else{let n=t.direction;this.isLocal&&(P.TransformNormalToRef(n,this._emitterWorldMatrix,ae.Vector3[0]),n=ae.Vector3[0]),n.x===0&&n.z===0&&(n.x=.001),this._vertexData[r++]=n.x,this._vertexData[r++]=n.y,this._vertexData[r++]=n.z}this._useRampGradients&&t.remapData&&(this._vertexData[r++]=t.remapData.x,this._vertexData[r++]=t.remapData.y,this._vertexData[r++]=t.remapData.z,this._vertexData[r++]=t.remapData.w),this._useInstancing||(this._isAnimationSheetEnabled&&(i===0?i=this._epsilon:i===1&&(i=1-this._epsilon),s===0?s=this._epsilon:s===1&&(s=1-this._epsilon)),this._vertexData[r++]=i,this._vertexData[r++]=s)}_prepareParticle(e){}_update(e){if(this._alive=this._particles.length>0,this.emitter.position){const i=this.emitter;this._emitterWorldMatrix=i.getWorldMatrix()}else{const i=this.emitter;this._emitterWorldMatrix=me.Translation(i.x,i.y,i.z)}this._emitterWorldMatrix.invertToRef(this._emitterInverseWorldMatrix),this.updateFunction(this._particles);let t;for(let i=0;i<e&&this._particles.length!==this._capacity;i++){if(t=this._createParticle(),this._particles.push(t),this.targetStopDuration&&this._lifeTimeGradients&&this._lifeTimeGradients.length>0){const r=Os(this._actualFrame/this.targetStopDuration);N0.GetCurrentGradient(r,this._lifeTimeGradients,(n,o)=>{const l=n,c=o,u=l.getFactor(),f=c.getFactor(),p=(r-l.gradient)/(c.gradient-l.gradient);t.lifeTime=Zl(u,f,p)})}else t.lifeTime=Ki(this.minLifeTime,this.maxLifeTime);const s=Ki(this.minEmitPower,this.maxEmitPower);if(this.startPositionFunction?this.startPositionFunction(this._emitterWorldMatrix,t.position,t,this.isLocal):this.particleEmitterType.startPositionFunction(this._emitterWorldMatrix,t.position,t,this.isLocal),this.isLocal&&(t._localPosition?t._localPosition.copyFrom(t.position):t._localPosition=t.position.clone(),P.TransformCoordinatesToRef(t._localPosition,this._emitterWorldMatrix,t.position)),this.startDirectionFunction?this.startDirectionFunction(this._emitterWorldMatrix,t.direction,t,this.isLocal):this.particleEmitterType.startDirectionFunction(this._emitterWorldMatrix,t.direction,t,this.isLocal,this._emitterInverseWorldMatrix),s===0?t._initialDirection?t._initialDirection.copyFrom(t.direction):t._initialDirection=t.direction.clone():t._initialDirection=null,t.direction.scaleInPlace(s),!this._sizeGradients||this._sizeGradients.length===0?t.size=Ki(this.minSize,this.maxSize):(t._currentSizeGradient=this._sizeGradients[0],t._currentSize1=t._currentSizeGradient.getFactor(),t.size=t._currentSize1,this._sizeGradients.length>1?t._currentSize2=this._sizeGradients[1].getFactor():t._currentSize2=t._currentSize1),t.scale.copyFromFloats(Ki(this.minScaleX,this.maxScaleX),Ki(this.minScaleY,this.maxScaleY)),this._startSizeGradients&&this._startSizeGradients[0]&&this.targetStopDuration){const r=this._actualFrame/this.targetStopDuration;N0.GetCurrentGradient(r,this._startSizeGradients,(n,o,l)=>{n!==this._currentStartSizeGradient&&(this._currentStartSize1=this._currentStartSize2,this._currentStartSize2=o.getFactor(),this._currentStartSizeGradient=n);const c=Zl(this._currentStartSize1,this._currentStartSize2,l);t.scale.scaleInPlace(c)})}if(!this._angularSpeedGradients||this._angularSpeedGradients.length===0?t.angularSpeed=Ki(this.minAngularSpeed,this.maxAngularSpeed):(t._currentAngularSpeedGradient=this._angularSpeedGradients[0],t.angularSpeed=t._currentAngularSpeedGradient.getFactor(),t._currentAngularSpeed1=t.angularSpeed,this._angularSpeedGradients.length>1?t._currentAngularSpeed2=this._angularSpeedGradients[1].getFactor():t._currentAngularSpeed2=t._currentAngularSpeed1),t.angle=Ki(this.minInitialRotation,this.maxInitialRotation),this._velocityGradients&&this._velocityGradients.length>0&&(t._currentVelocityGradient=this._velocityGradients[0],t._currentVelocity1=t._currentVelocityGradient.getFactor(),this._velocityGradients.length>1?t._currentVelocity2=this._velocityGradients[1].getFactor():t._currentVelocity2=t._currentVelocity1),this._limitVelocityGradients&&this._limitVelocityGradients.length>0&&(t._currentLimitVelocityGradient=this._limitVelocityGradients[0],t._currentLimitVelocity1=t._currentLimitVelocityGradient.getFactor(),this._limitVelocityGradients.length>1?t._currentLimitVelocity2=this._limitVelocityGradients[1].getFactor():t._currentLimitVelocity2=t._currentLimitVelocity1),this._dragGradients&&this._dragGradients.length>0&&(t._currentDragGradient=this._dragGradients[0],t._currentDrag1=t._currentDragGradient.getFactor(),this._dragGradients.length>1?t._currentDrag2=this._dragGradients[1].getFactor():t._currentDrag2=t._currentDrag1),!this._colorGradients||this._colorGradients.length===0){const r=Ki(0,1);St.LerpToRef(this.color1,this.color2,r,t.color),this.colorDead.subtractToRef(t.color,this._colorDiff),this._colorDiff.scaleToRef(1/t.lifeTime,t.colorStep)}else t._currentColorGradient=this._colorGradients[0],t._currentColorGradient.getColorToRef(t.color),t._currentColor1.copyFrom(t.color),this._colorGradients.length>1?this._colorGradients[1].getColorToRef(t._currentColor2):t._currentColor2.copyFrom(t.color);this._isAnimationSheetEnabled&&(t._initialStartSpriteCellID=this.startSpriteCellID,t._initialEndSpriteCellID=this.endSpriteCellID,t._initialSpriteCellLoop=this.spriteCellLoop),t.direction.addInPlace(this._inheritedVelocityOffset),this._useRampGradients&&(t.remapData=new Yt(0,1,0,1)),this.noiseTexture&&(t._randomNoiseCoordinates1?(t._randomNoiseCoordinates1.copyFromFloats(Math.random(),Math.random(),Math.random()),t._randomNoiseCoordinates2.copyFromFloats(Math.random(),Math.random(),Math.random())):(t._randomNoiseCoordinates1=new P(Math.random(),Math.random(),Math.random()),t._randomNoiseCoordinates2=new P(Math.random(),Math.random(),Math.random()))),t._inheritParticleInfoToSubEmitters()}}static _GetAttributeNamesOrOptions(e=!1,t=!1,i=!1){const s=[q.PositionKind,q.ColorKind,"angle","offset","size"];return e&&s.push("cellIndex"),t||s.push("direction"),i&&s.push("remapData"),s}static _GetEffectCreationOptions(e=!1,t=!1,i=!1){const s=["invView","view","projection","textureMask","translationPivot","eyePosition"];return qo(s),e&&s.push("particlesInfos"),t&&s.push("logarithmicDepthConstant"),i&&(s.push("vFogInfos"),s.push("vFogColor")),s}fillDefines(e,t,i=!0){if(this._scene&&(Cy(this,this._scene,e),this.applyFog&&this._scene.fogEnabled&&this._scene.fogMode!==0&&e.push("#define FOG")),this._isAnimationSheetEnabled&&e.push("#define ANIMATESHEET"),this.useLogarithmicDepth&&e.push("#define LOGARITHMICDEPTH"),t===sc.BLENDMODE_MULTIPLY&&e.push("#define BLENDMULTIPLYMODE"),this._useRampGradients&&e.push("#define RAMPGRADIENT"),this._isBillboardBased)switch(e.push("#define BILLBOARD"),this.billboardMode){case 2:e.push("#define BILLBOARDY");break;case 8:case 9:e.push("#define BILLBOARDSTRETCHED"),this.billboardMode===9&&e.push("#define BILLBOARDSTRETCHED_LOCAL");break;case 7:e.push("#define BILLBOARDMODE_ALL");break}i&&this._imageProcessingConfiguration&&(this._imageProcessingConfiguration.prepareDefines(this._imageProcessingConfigurationDefines),e.push(this._imageProcessingConfigurationDefines.toString()))}fillUniformsAttributesAndSamplerNames(e,t,i){t.push(...PO._GetAttributeNamesOrOptions(this._isAnimationSheetEnabled,this._isBillboardBased&&this.billboardMode!==8&&this.billboardMode!==9,this._useRampGradients)),e.push(...PO._GetEffectCreationOptions(this._isAnimationSheetEnabled,this.useLogarithmicDepth,this.applyFog)),i.push("diffuseSampler","rampSampler"),this._imageProcessingConfiguration&&(uhe(e,this._imageProcessingConfigurationDefines),hhe(i,this._imageProcessingConfigurationDefines))}_getWrapper(e){const t=this._getCustomDrawWrapper(e);if(t!=null&&t.effect)return t;const i=[];this.fillDefines(i,e);const s=this._engine._features.supportRenderPasses?this._engine.currentRenderPassId:0;let r=this._drawWrappers[s];r||(r=this._drawWrappers[s]=[]);let n=r[e];n||(n=new ql(this._engine),n.drawContext&&(n.drawContext.useInstancing=this._useInstancing),r[e]=n);const o=i.join(`
`);if(n.defines!==o){const l=[],c=[],u=[];this.fillUniformsAttributesAndSamplerNames(c,l,u),n.setEffect(this._engine.createEffect("particles",l,c,u,o,void 0,void 0,void 0,void 0,this._shaderLanguage),o)}return n}animate(e=!1){var i;if(!this._started)return;if(!e&&this._scene){if(!this.isReady()||this._currentRenderId===this._scene.getFrameId())return;this._currentRenderId=this._scene.getFrameId()}this._scaledUpdateSpeed=this.updateSpeed*(e?this.preWarmStepOffset:((i=this._scene)==null?void 0:i.getAnimationRatio())||1);let t;if(this.manualEmitCount>-1)t=this.manualEmitCount,this._newPartsExcess=0,this.manualEmitCount=0;else{let s=this.emitRate;if(this._emitRateGradients&&this._emitRateGradients.length>0&&this.targetStopDuration){const r=this._actualFrame/this.targetStopDuration;N0.GetCurrentGradient(r,this._emitRateGradients,(n,o,l)=>{n!==this._currentEmitRateGradient&&(this._currentEmitRate1=this._currentEmitRate2,this._currentEmitRate2=o.getFactor(),this._currentEmitRateGradient=n),s=Zl(this._currentEmitRate1,this._currentEmitRate2,l)})}t=s*this._scaledUpdateSpeed>>0,this._newPartsExcess+=s*this._scaledUpdateSpeed-t}if(this._newPartsExcess>1&&(t+=this._newPartsExcess>>0,this._newPartsExcess-=this._newPartsExcess>>0),this._alive=!1,this._stopped?t=0:(this._actualFrame+=this._scaledUpdateSpeed,this.targetStopDuration&&this._actualFrame>=this.targetStopDuration&&this.stop()),this._update(t),this._stopped&&(this._alive||(this._started=!1,this.onAnimationEnd&&this.onAnimationEnd(),this.disposeOnStop&&this._scene&&this._scene._toBeDisposed.push(this))),!e){let s=0;for(let r=0;r<this._particles.length;r++){const n=this._particles[r];this._appendParticleVertices(s,n),s+=this._useInstancing?1:4}this._vertexBuffer&&this._vertexBuffer.updateDirectly(this._vertexData,0,this._particles.length)}this.manualEmitCount===0&&this.disposeOnStop&&this.stop()}_appendParticleVertices(e,t){this._appendParticleVertex(e++,t,0,0),this._useInstancing||(this._appendParticleVertex(e++,t,1,0),this._appendParticleVertex(e++,t,1,1),this._appendParticleVertex(e++,t,0,1))}rebuild(){var e;this._engine.getCaps().vertexArrayObject&&(this._vertexArrayObject=null),this._createIndexBuffer(),(e=this._spriteBuffer)==null||e._rebuild(),this._createVertexBuffers(),this.resetDrawCache()}async _initShaderSourceAsync(){this._engine.isWebGPU&&!PO.ForceGLSL?(this._shaderLanguage=1,await Promise.all([Promise.resolve().then(()=>Nbe),Promise.resolve().then(()=>eYe)])):await Promise.all([Promise.resolve().then(()=>Ibe),Promise.resolve().then(()=>$He)]),this._shadersLoaded=!0}isReady(){if(!this._shadersLoaded||!this.emitter||this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.isReady()||!this.particleTexture||!this.particleTexture.isReady())return!1;if(this.blendMode!==sc.BLENDMODE_MULTIPLYADD){if(!this._getWrapper(this.blendMode).effect.isReady())return!1}else if(!this._getWrapper(sc.BLENDMODE_MULTIPLY).effect.isReady()||!this._getWrapper(sc.BLENDMODE_ADD).effect.isReady())return!1;return!0}_render(e){var o,l,c,u,f,p;const t=this._getWrapper(e),i=t.effect,s=this._engine;s.enableEffect(t);const r=this.defaultViewMatrix??this._scene.getViewMatrix();if(i.setTexture("diffuseSampler",this.particleTexture),i.setMatrix("view",r),i.setMatrix("projection",this.defaultProjectionMatrix??this._scene.getProjectionMatrix()),this._isAnimationSheetEnabled&&this.particleTexture){const m=this.particleTexture.getBaseSize();i.setFloat3("particlesInfos",this.spriteCellWidth/m.width,this.spriteCellHeight/m.height,this.spriteCellWidth/m.width)}if(i.setVector2("translationPivot",this.translationPivot),i.setFloat4("textureMask",this.textureMask.r,this.textureMask.g,this.textureMask.b,this.textureMask.a),this._isBillboardBased&&this._scene){const m=this._scene.activeCamera;i.setVector3("eyePosition",m.globalPosition)}this._rampGradientsTexture&&((!this._rampGradients||!this._rampGradients.length)&&(this._rampGradientsTexture.dispose(),this._rampGradientsTexture=null),i.setTexture("rampSampler",this._rampGradientsTexture));const n=i.defines;switch(this._scene&&(Bo(i,this,this._scene),this.applyFog&&Ic(this._scene,void 0,i)),n.indexOf("#define BILLBOARDMODE_ALL")>=0&&(r.invertToRef(ae.Matrix[0]),i.setMatrix("invView",ae.Matrix[0])),this._vertexArrayObject!==void 0?(o=this._scene)!=null&&o.forceWireframe?s.bindBuffers(this._vertexBuffers,this._linesIndexBufferUseInstancing,i):(this._vertexArrayObject||(this._vertexArrayObject=this._engine.recordVertexArrayObject(this._vertexBuffers,null,i)),this._engine.bindVertexArrayObject(this._vertexArrayObject,(l=this._scene)!=null&&l.forceWireframe?this._linesIndexBufferUseInstancing:this._indexBuffer)):this._indexBuffer?s.bindBuffers(this._vertexBuffers,(u=this._scene)!=null&&u.forceWireframe?this._linesIndexBuffer:this._indexBuffer,i):s.bindBuffers(this._vertexBuffers,(c=this._scene)!=null&&c.forceWireframe?this._linesIndexBufferUseInstancing:null,i),this.useLogarithmicDepth&&this._scene&&ml(n,i,this._scene),this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(i),e){case sc.BLENDMODE_ADD:s.setAlphaMode(1);break;case sc.BLENDMODE_ONEONE:s.setAlphaMode(6);break;case sc.BLENDMODE_STANDARD:s.setAlphaMode(2);break;case sc.BLENDMODE_MULTIPLY:s.setAlphaMode(4);break}return this._onBeforeDrawParticlesObservable&&this._onBeforeDrawParticlesObservable.notifyObservers(i),this._useInstancing?(f=this._scene)!=null&&f.forceWireframe?s.drawElementsType(6,0,10,this._particles.length):s.drawArraysType(7,0,4,this._particles.length):(p=this._scene)!=null&&p.forceWireframe?s.drawElementsType(1,0,this._particles.length*10):s.drawElementsType(0,0,this._particles.length*6),this._particles.length}render(){if(!this.isReady()||!this._particles.length)return 0;const e=this._engine;e.setState&&(e.setState(!1),this.forceDepthWrite&&e.setDepthWrite(!0));let t=0;return this.blendMode===sc.BLENDMODE_MULTIPLYADD?t=this._render(sc.BLENDMODE_MULTIPLY)+this._render(sc.BLENDMODE_ADD):t=this._render(this.blendMode),this._engine.unbindInstanceAttributes(),this._engine.setAlphaMode(0),t}_onDispose(e=!1,t=!1){}dispose(e=!0,t=!1,i=!1){if(this.resetDrawCache(),this._vertexBuffer&&(this._vertexBuffer.dispose(),this._vertexBuffer=null),this._spriteBuffer&&(this._spriteBuffer.dispose(),this._spriteBuffer=null),this._indexBuffer&&(this._engine._releaseBuffer(this._indexBuffer),this._indexBuffer=null),this._linesIndexBuffer&&(this._engine._releaseBuffer(this._linesIndexBuffer),this._linesIndexBuffer=null),this._linesIndexBufferUseInstancing&&(this._engine._releaseBuffer(this._linesIndexBufferUseInstancing),this._linesIndexBufferUseInstancing=null),this._vertexArrayObject&&(this._engine.releaseVertexArrayObject(this._vertexArrayObject),this._vertexArrayObject=null),e&&this.particleTexture&&(this.particleTexture.dispose(),this.particleTexture=null),e&&this.noiseTexture&&(this.noiseTexture.dispose(),this.noiseTexture=null),this._rampGradientsTexture&&(this._rampGradientsTexture.dispose(),this._rampGradientsTexture=null),this._onDispose(t,i),this._onBeforeDrawParticlesObservable&&this._onBeforeDrawParticlesObservable.clear(),this._scene){const s=this._scene.particleSystems.indexOf(this);s>-1&&this._scene.particleSystems.splice(s,1),this._scene._activeParticleSystems.dispose()}this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onStoppedObservable.clear(),this.reset()}}PO.ForceGLSL=!1;var qne;(function(a){a[a.ATTACHED=0]="ATTACHED",a[a.END=1]="END"})(qne||(qne={}));class tM{constructor(e){if(this.particleSystem=e,this.type=1,this.inheritDirection=!1,this.inheritedVelocityAmount=0,!e.emitter||!e.emitter.dispose){const t=ea("BABYLON.AbstractMesh");e.emitter=new t("SubemitterSystemEmitter",e.getScene()),e._disposeEmitterOnDispose=!0}}clone(){let e=this.particleSystem.emitter;if(!e)e=new P;else if(e instanceof P)e=e.clone();else if(e.getClassName().indexOf("Mesh")!==-1){const i=ea("BABYLON.Mesh");e=new i("",e.getScene()),e.isVisible=!1}const t=new tM(this.particleSystem.clone(this.particleSystem.name,e));return t.particleSystem.name+="Clone",t.type=this.type,t.inheritDirection=this.inheritDirection,t.inheritedVelocityAmount=this.inheritedVelocityAmount,t.particleSystem._disposeEmitterOnDispose=!0,t.particleSystem.disposeOnStop=!0,t}serialize(e=!1){const t={};return t.type=this.type,t.inheritDirection=this.inheritDirection,t.inheritedVelocityAmount=this.inheritedVelocityAmount,t.particleSystem=this.particleSystem.serialize(e),t}static _ParseParticleSystem(e,t,i,s=!1){throw as("ParseParticle")}static Parse(e,t,i){const s=e.particleSystem,r=new tM(tM._ParseParticleSystem(s,t,i,!0));return r.type=e.type,r.inheritDirection=e.inheritDirection,r.inheritedVelocityAmount=e.inheritedVelocityAmount,r.particleSystem._isSubEmitter=!0,r}dispose(){this.particleSystem.dispose()}}class CY{get mesh(){return this._mesh}set mesh(e){this._mesh!==e&&(this._mesh=e,e?(this._indices=e.getIndices(),this._positions=e.getVerticesData(q.PositionKind),this._normals=e.getVerticesData(q.NormalKind)):(this._indices=null,this._positions=null,this._normals=null))}constructor(e=null){this._indices=null,this._positions=null,this._normals=null,this._storedNormal=P.Zero(),this._mesh=null,this.direction1=new P(0,1,0),this.direction2=new P(0,1,0),this.useMeshNormalsForDirection=!0,this.mesh=e}startDirectionFunction(e,t,i,s){if(this.useMeshNormalsForDirection&&this._normals){P.TransformNormalToRef(this._storedNormal,e,t);return}const r=Ki(this.direction1.x,this.direction2.x),n=Ki(this.direction1.y,this.direction2.y),o=Ki(this.direction1.z,this.direction2.z);if(s){t.copyFromFloats(r,n,o);return}P.TransformNormalFromFloatsToRef(r,n,o,e,t)}startPositionFunction(e,t,i,s){if(!this._indices||!this._positions)return;const r=3*Math.random()*(this._indices.length/3)|0,n=Math.random(),o=Math.random()*(1-n),l=1-n-o,c=this._indices[r],u=this._indices[r+1],f=this._indices[r+2],p=ae.Vector3[0],m=ae.Vector3[1],_=ae.Vector3[2],d=ae.Vector3[3];P.FromArrayToRef(this._positions,c*3,p),P.FromArrayToRef(this._positions,u*3,m),P.FromArrayToRef(this._positions,f*3,_),d.x=n*p.x+o*m.x+l*_.x,d.y=n*p.y+o*m.y+l*_.y,d.z=n*p.z+o*m.z+l*_.z,s?t.copyFromFloats(d.x,d.y,d.z):P.TransformCoordinatesFromFloatsToRef(d.x,d.y,d.z,e,t),this.useMeshNormalsForDirection&&this._normals&&(P.FromArrayToRef(this._normals,c*3,p),P.FromArrayToRef(this._normals,u*3,m),P.FromArrayToRef(this._normals,f*3,_),this._storedNormal.x=n*p.x+o*m.x+l*_.x,this._storedNormal.y=n*p.y+o*m.y+l*_.y,this._storedNormal.z=n*p.z+o*m.z+l*_.z)}clone(){const e=new CY(this.mesh);return nu.DeepCopy(this,e),e}applyToShader(e){e.setVector3("direction1",this.direction1),e.setVector3("direction2",this.direction2)}buildUniformLayout(e){e.addUniform("direction1",3),e.addUniform("direction2",3)}getEffectDefines(){return""}getClassName(){return"MeshParticleEmitter"}serialize(){var t;const e={};return e.type=this.getClassName(),e.direction1=this.direction1.asArray(),e.direction2=this.direction2.asArray(),e.meshId=(t=this.mesh)==null?void 0:t.id,e.useMeshNormalsForDirection=this.useMeshNormalsForDirection,e}parse(e,t){P.FromArrayToRef(e.direction1,0,this.direction1),P.FromArrayToRef(e.direction2,0,this.direction2),e.meshId&&t&&(this.mesh=t.getLastMeshById(e.meshId)),this.useMeshNormalsForDirection=e.useMeshNormalsForDirection}}class iM{constructor(){this.particlePositionGenerator=()=>{},this.particleDestinationGenerator=()=>{}}startDirectionFunction(e,t,i,s){const r=ae.Vector3[0];if(this.particleDestinationGenerator){this.particleDestinationGenerator(-1,i,r);const n=ae.Vector3[1];r.subtractToRef(i.position,n),n.scaleToRef(1/i.lifeTime,r)}else r.set(0,0,0);if(s){t.copyFrom(r);return}P.TransformNormalToRef(r,e,t)}startPositionFunction(e,t,i,s){const r=ae.Vector3[0];if(this.particlePositionGenerator?this.particlePositionGenerator(-1,i,r):r.set(0,0,0),s){t.copyFrom(r);return}P.TransformCoordinatesToRef(r,e,t)}clone(){const e=new iM;return nu.DeepCopy(this,e),e}applyToShader(e){}buildUniformLayout(e){}getEffectDefines(){return"#define CUSTOMEMITTER"}getClassName(){return"CustomParticleEmitter"}serialize(){const e={};return e.type=this.getClassName(),e.particlePositionGenerator=this.particlePositionGenerator,e.particleDestinationGenerator=this.particleDestinationGenerator,e}parse(e){e.particlePositionGenerator&&(this.particlePositionGenerator=e.particlePositionGenerator),e.particleDestinationGenerator&&(this.particleDestinationGenerator=e.particleDestinationGenerator)}}class oz{constructor(){this.direction1=new P(0,1,0),this.direction2=new P(0,1,0)}startDirectionFunction(e,t,i,s){const r=Ki(this.direction1.x,this.direction2.x),n=Ki(this.direction1.y,this.direction2.y),o=Ki(this.direction1.z,this.direction2.z);if(s){t.copyFromFloats(r,n,o);return}P.TransformNormalFromFloatsToRef(r,n,o,e,t)}startPositionFunction(e,t,i,s){if(s){t.copyFromFloats(0,0,0);return}P.TransformCoordinatesFromFloatsToRef(0,0,0,e,t)}clone(){const e=new oz;return nu.DeepCopy(this,e),e}applyToShader(e){e.setVector3("direction1",this.direction1),e.setVector3("direction2",this.direction2)}buildUniformLayout(e){e.addUniform("direction1",3),e.addUniform("direction2",3)}getEffectDefines(){return"#define POINTEMITTER"}getClassName(){return"PointParticleEmitter"}serialize(){const e={};return e.type=this.getClassName(),e.direction1=this.direction1.asArray(),e.direction2=this.direction2.asArray(),e}parse(e){P.FromArrayToRef(e.direction1,0,this.direction1),P.FromArrayToRef(e.direction2,0,this.direction2)}}class lz{constructor(e=1,t=1,i=0){this.radius=e,this.radiusRange=t,this.directionRandomizer=i}startDirectionFunction(e,t,i,s){const r=i.position.subtract(e.getTranslation()).normalize(),n=Ki(0,this.directionRandomizer),o=Ki(0,this.directionRandomizer),l=Ki(0,this.directionRandomizer);if(r.x+=n,r.y+=o,r.z+=l,r.normalize(),s){t.copyFrom(r);return}P.TransformNormalFromFloatsToRef(r.x,r.y,r.z,e,t)}startPositionFunction(e,t,i,s){const r=this.radius-Ki(0,this.radius*this.radiusRange),n=Ki(0,1),o=Ki(0,2*Math.PI),l=Math.acos(2*n-1),c=r*Math.cos(o)*Math.sin(l),u=r*Math.cos(l),f=r*Math.sin(o)*Math.sin(l);if(s){t.copyFromFloats(c,Math.abs(u),f);return}P.TransformCoordinatesFromFloatsToRef(c,Math.abs(u),f,e,t)}clone(){const e=new lz(this.radius,this.directionRandomizer);return nu.DeepCopy(this,e),e}applyToShader(e){e.setFloat("radius",this.radius),e.setFloat("radiusRange",this.radiusRange),e.setFloat("directionRandomizer",this.directionRandomizer)}buildUniformLayout(e){e.addUniform("radius",1),e.addUniform("radiusRange",1),e.addUniform("directionRandomizer",1)}getEffectDefines(){return"#define HEMISPHERICEMITTER"}getClassName(){return"HemisphericParticleEmitter"}serialize(){const e={};return e.type=this.getClassName(),e.radius=this.radius,e.radiusRange=this.radiusRange,e.directionRandomizer=this.directionRandomizer,e}parse(e){this.radius=e.radius,this.radiusRange=e.radiusRange,this.directionRandomizer=e.directionRandomizer}}class OO{constructor(e=1,t=1,i=0){this.radius=e,this.radiusRange=t,this.directionRandomizer=i}startDirectionFunction(e,t,i,s){const r=i.position.subtract(e.getTranslation()).normalize(),n=Ki(0,this.directionRandomizer),o=Ki(0,this.directionRandomizer),l=Ki(0,this.directionRandomizer);if(r.x+=n,r.y+=o,r.z+=l,r.normalize(),s){t.copyFrom(r);return}P.TransformNormalFromFloatsToRef(r.x,r.y,r.z,e,t)}startPositionFunction(e,t,i,s){const r=this.radius-Ki(0,this.radius*this.radiusRange),n=Ki(0,1),o=Ki(0,2*Math.PI),l=Math.acos(2*n-1),c=r*Math.cos(o)*Math.sin(l),u=r*Math.cos(l),f=r*Math.sin(o)*Math.sin(l);if(s){t.copyFromFloats(c,u,f);return}P.TransformCoordinatesFromFloatsToRef(c,u,f,e,t)}clone(){const e=new OO(this.radius,this.directionRandomizer);return nu.DeepCopy(this,e),e}applyToShader(e){e.setFloat("radius",this.radius),e.setFloat("radiusRange",this.radiusRange),e.setFloat("directionRandomizer",this.directionRandomizer)}buildUniformLayout(e){e.addUniform("radius",1),e.addUniform("radiusRange",1),e.addUniform("directionRandomizer",1)}getEffectDefines(){return"#define SPHEREEMITTER"}getClassName(){return"SphereParticleEmitter"}serialize(){const e={};return e.type=this.getClassName(),e.radius=this.radius,e.radiusRange=this.radiusRange,e.directionRandomizer=this.directionRandomizer,e}parse(e){this.radius=e.radius,this.radiusRange=e.radiusRange,this.directionRandomizer=e.directionRandomizer}}class cz extends OO{constructor(e=1,t=new P(0,1,0),i=new P(0,1,0)){super(e),this.direction1=t,this.direction2=i}startDirectionFunction(e,t){const i=Ki(this.direction1.x,this.direction2.x),s=Ki(this.direction1.y,this.direction2.y),r=Ki(this.direction1.z,this.direction2.z);P.TransformNormalFromFloatsToRef(i,s,r,e,t)}clone(){const e=new cz(this.radius,this.direction1,this.direction2);return nu.DeepCopy(this,e),e}applyToShader(e){e.setFloat("radius",this.radius),e.setFloat("radiusRange",this.radiusRange),e.setVector3("direction1",this.direction1),e.setVector3("direction2",this.direction2)}buildUniformLayout(e){e.addUniform("radius",1),e.addUniform("radiusRange",1),e.addUniform("direction1",3),e.addUniform("direction2",3)}getEffectDefines(){return`#define SPHEREEMITTER
#define DIRECTEDSPHEREEMITTER`}getClassName(){return"SphereDirectedParticleEmitter"}serialize(){const e=super.serialize();return e.direction1=this.direction1.asArray(),e.direction2=this.direction2.asArray(),e}parse(e){super.parse(e),this.direction1.copyFrom(e.direction1),this.direction2.copyFrom(e.direction2)}}class RO{constructor(e=1,t=1,i=1,s=0){this.radius=e,this.height=t,this.radiusRange=i,this.directionRandomizer=s,this._tempVector=P.Zero()}startDirectionFunction(e,t,i,s,r){i.position.subtractToRef(e.getTranslation(),this._tempVector),this._tempVector.normalize(),P.TransformNormalToRef(this._tempVector,r,this._tempVector);const n=Ki(-this.directionRandomizer/2,this.directionRandomizer/2);let o=Math.atan2(this._tempVector.x,this._tempVector.z);if(o+=Ki(-Math.PI/2,Math.PI/2)*this.directionRandomizer,this._tempVector.y=n,this._tempVector.x=Math.sin(o),this._tempVector.z=Math.cos(o),this._tempVector.normalize(),s){t.copyFrom(this._tempVector);return}P.TransformNormalFromFloatsToRef(this._tempVector.x,this._tempVector.y,this._tempVector.z,e,t)}startPositionFunction(e,t,i,s){const r=Ki(-this.height/2,this.height/2),n=Ki(0,2*Math.PI),o=Ki((1-this.radiusRange)*(1-this.radiusRange),1),l=Math.sqrt(o)*this.radius,c=l*Math.cos(n),u=l*Math.sin(n);if(s){t.copyFromFloats(c,r,u);return}P.TransformCoordinatesFromFloatsToRef(c,r,u,e,t)}clone(){const e=new RO(this.radius,this.directionRandomizer);return nu.DeepCopy(this,e),e}applyToShader(e){e.setFloat("radius",this.radius),e.setFloat("height",this.height),e.setFloat("radiusRange",this.radiusRange),e.setFloat("directionRandomizer",this.directionRandomizer)}buildUniformLayout(e){e.addUniform("radius",1),e.addUniform("height",1),e.addUniform("radiusRange",1),e.addUniform("directionRandomizer",1)}getEffectDefines(){return"#define CYLINDEREMITTER"}getClassName(){return"CylinderParticleEmitter"}serialize(){const e={};return e.type=this.getClassName(),e.radius=this.radius,e.height=this.height,e.radiusRange=this.radiusRange,e.directionRandomizer=this.directionRandomizer,e}parse(e){this.radius=e.radius,this.height=e.height,this.radiusRange=e.radiusRange,this.directionRandomizer=e.directionRandomizer}}class uz extends RO{constructor(e=1,t=1,i=1,s=new P(0,1,0),r=new P(0,1,0)){super(e,t,i),this.direction1=s,this.direction2=r}startDirectionFunction(e,t,i,s){const r=Ki(this.direction1.x,this.direction2.x),n=Ki(this.direction1.y,this.direction2.y),o=Ki(this.direction1.z,this.direction2.z);if(s){t.copyFromFloats(r,n,o);return}P.TransformNormalFromFloatsToRef(r,n,o,e,t)}clone(){const e=new uz(this.radius,this.height,this.radiusRange,this.direction1,this.direction2);return nu.DeepCopy(this,e),e}applyToShader(e){e.setFloat("radius",this.radius),e.setFloat("height",this.height),e.setFloat("radiusRange",this.radiusRange),e.setVector3("direction1",this.direction1),e.setVector3("direction2",this.direction2)}buildUniformLayout(e){e.addUniform("radius",1),e.addUniform("height",1),e.addUniform("radiusRange",1),e.addUniform("direction1",3),e.addUniform("direction2",3)}getEffectDefines(){return`#define CYLINDEREMITTER
#define DIRECTEDCYLINDEREMITTER`}getClassName(){return"CylinderDirectedParticleEmitter"}serialize(){const e=super.serialize();return e.direction1=this.direction1.asArray(),e.direction2=this.direction2.asArray(),e}parse(e){super.parse(e),P.FromArrayToRef(e.direction1,0,this.direction1),P.FromArrayToRef(e.direction2,0,this.direction2)}}class DO{get radius(){return this._radius}set radius(e){this._radius=e,this._buildHeight()}get angle(){return this._angle}set angle(e){this._angle=e,this._buildHeight()}_buildHeight(){this._angle!==0?this._height=this._radius/Math.tan(this._angle/2):this._height=1}constructor(e=1,t=Math.PI,i=0){this.directionRandomizer=i,this.radiusRange=1,this.heightRange=1,this.emitFromSpawnPointOnly=!1,this.angle=t,this.radius=e}startDirectionFunction(e,t,i,s){s?ae.Vector3[0].copyFrom(i._localPosition).normalize():i.position.subtractToRef(e.getTranslation(),ae.Vector3[0]).normalize();const r=Ki(0,this.directionRandomizer),n=Ki(0,this.directionRandomizer),o=Ki(0,this.directionRandomizer);t.x=ae.Vector3[0].x+r,t.y=ae.Vector3[0].y+n,t.z=ae.Vector3[0].z+o,t.normalize()}startPositionFunction(e,t,i,s){const r=Ki(0,Math.PI*2);let n;this.emitFromSpawnPointOnly?n=1e-4:(n=Ki(0,this.heightRange),n=1-n*n);let o=this._radius-Ki(0,this._radius*this.radiusRange);o=o*n;const l=o*Math.sin(r),c=o*Math.cos(r),u=n*this._height;if(s){t.x=l,t.y=u,t.z=c;return}P.TransformCoordinatesFromFloatsToRef(l,u,c,e,t)}clone(){const e=new DO(this._radius,this._angle,this.directionRandomizer);return nu.DeepCopy(this,e),e}applyToShader(e){e.setFloat2("radius",this._radius,this.radiusRange),e.setFloat("coneAngle",this._angle),e.setFloat2("height",this._height,this.heightRange),e.setFloat("directionRandomizer",this.directionRandomizer)}buildUniformLayout(e){e.addUniform("radius",2),e.addUniform("coneAngle",1),e.addUniform("height",2),e.addUniform("directionRandomizer",1)}getEffectDefines(){let e="#define CONEEMITTER";return this.emitFromSpawnPointOnly&&(e+=`
#define CONEEMITTERSPAWNPOINT`),e}getClassName(){return"ConeParticleEmitter"}serialize(){const e={};return e.type=this.getClassName(),e.radius=this._radius,e.angle=this._angle,e.directionRandomizer=this.directionRandomizer,e.radiusRange=this.radiusRange,e.heightRange=this.heightRange,e.emitFromSpawnPointOnly=this.emitFromSpawnPointOnly,e}parse(e){this.radius=e.radius,this.angle=e.angle,this.directionRandomizer=e.directionRandomizer,this.radiusRange=e.radiusRange!==void 0?e.radiusRange:1,this.heightRange=e.radiusRange!==void 0?e.heightRange:1,this.emitFromSpawnPointOnly=e.emitFromSpawnPointOnly!==void 0?e.emitFromSpawnPointOnly:!1}}class hz extends DO{constructor(e=1,t=Math.PI,i=new P(0,1,0),s=new P(0,1,0)){super(e,t),this.direction1=i,this.direction2=s}startDirectionFunction(e,t){const i=Ki(this.direction1.x,this.direction2.x),s=Ki(this.direction1.y,this.direction2.y),r=Ki(this.direction1.z,this.direction2.z);P.TransformNormalFromFloatsToRef(i,s,r,e,t)}clone(){const e=new hz(this.radius,this.angle,this.direction1,this.direction2);return nu.DeepCopy(this,e),e}applyToShader(e){e.setFloat("radius",this.radius),e.setFloat("radiusRange",this.radiusRange),e.setVector3("direction1",this.direction1),e.setVector3("direction2",this.direction2)}buildUniformLayout(e){e.addUniform("radius",1),e.addUniform("radiusRange",1),e.addUniform("direction1",3),e.addUniform("direction2",3)}getEffectDefines(){return`#define CONEEMITTER
#define DIRECTEDCONEEMITTER`}getClassName(){return"ConeDirectedParticleEmitter"}serialize(){const e=super.serialize();return e.direction1=this.direction1.asArray(),e.direction2=this.direction2.asArray(),e}parse(e){super.parse(e),this.direction1.copyFrom(e.direction1),this.direction2.copyFrom(e.direction2)}}function Fxe(a,e){const t=new oz;return t.direction1=a,t.direction2=e,t}function kxe(a=1,e=1){return new lz(a,e)}function Uxe(a=1,e=1){return new OO(a,e)}function jxe(a=1,e=new P(0,1,0),t=new P(0,1,0)){return new cz(a,e,t)}function Vxe(a=1,e=1,t=1,i=0){return new RO(a,e,t,i)}function Gxe(a=1,e=1,t=1,i=new P(0,1,0),s=new P(0,1,0)){return new uz(a,e,t,i,s)}function Wxe(a=1,e=Math.PI/4){return new DO(a,e)}function Hxe(a=1,e=Math.PI/4,t=new P(0,1,0),i=new P(0,1,0)){return new hz(a,e,t,i)}class xn extends PO{constructor(){super(...arguments),this._disposeEmitterOnDispose=!1,this._emitFromParticle=e=>{if(!this._subEmitters||this._subEmitters.length===0)return;const t=Math.floor(Math.random()*this._subEmitters.length);this._subEmitters[t].forEach(i=>{if(i.type===1){const s=i.clone();e._inheritParticleInfoToSubEmitter(s),s.particleSystem._rootParticleSystem=this,this.activeSubSystems.push(s.particleSystem),s.particleSystem.start()}})}}createPointEmitter(e,t){const i=Fxe(e,t);return this.particleEmitterType=i,i}createHemisphericEmitter(e=1,t=1){const i=kxe(e,t);return this.particleEmitterType=i,i}createSphereEmitter(e=1,t=1){const i=Uxe(e,t);return this.particleEmitterType=i,i}createDirectedSphereEmitter(e=1,t=new P(0,1,0),i=new P(0,1,0)){const s=jxe(e,t,i);return this.particleEmitterType=s,s}createCylinderEmitter(e=1,t=1,i=1,s=0){const r=Vxe(e,t,i,s);return this.particleEmitterType=r,r}createDirectedCylinderEmitter(e=1,t=1,i=1,s=new P(0,1,0),r=new P(0,1,0)){const n=Gxe(e,t,i,s,r);return this.particleEmitterType=n,n}createConeEmitter(e=1,t=Math.PI/4){const i=Wxe(e,t);return this.particleEmitterType=i,i}createDirectedConeEmitter(e=1,t=Math.PI/4,i=new P(0,1,0),s=new P(0,1,0)){const r=Hxe(e,t,i,s);return this.particleEmitterType=r,r}createBoxEmitter(e,t,i,s){const r=new eM;return this.particleEmitterType=r,this.direction1=e,this.direction2=t,this.minEmitBox=i,this.maxEmitBox=s,r}_prepareSubEmitterInternalArray(){this._subEmitters=new Array,this.subEmitters&&this.subEmitters.forEach(e=>{e instanceof xn?this._subEmitters.push([new tM(e)]):e instanceof tM?this._subEmitters.push([e]):e instanceof Array&&this._subEmitters.push(e)})}_stopSubEmitters(){this.activeSubSystems&&(this.activeSubSystems.forEach(e=>{e.stop(!0)}),this.activeSubSystems=[])}_removeFromRoot(){if(!this._rootParticleSystem)return;const e=this._rootParticleSystem.activeSubSystems.indexOf(this);e!==-1&&this._rootParticleSystem.activeSubSystems.splice(e,1),this._rootParticleSystem=null}_preStart(){this._prepareSubEmitterInternalArray(),this._subEmitters&&this._subEmitters.length!=0&&(this.activeSubSystems=[])}_postStop(e){e&&this._stopSubEmitters()}_prepareParticle(e){if(this._subEmitters&&this._subEmitters.length>0){const t=this._subEmitters[Math.floor(Math.random()*this._subEmitters.length)];e._attachedSubEmitters=[],t.forEach(i=>{if(i.type===0){const s=i.clone();e._attachedSubEmitters.push(s),s.particleSystem.start()}})}}_onDispose(e=!1,t=!1){var i;if(this._removeFromRoot(),this.subEmitters&&!this._subEmitters&&this._prepareSubEmitterInternalArray(),e&&((i=this.particles)==null||i.forEach(s=>{if(s._attachedSubEmitters)for(let r=s._attachedSubEmitters.length-1;r>=0;r-=1)s._attachedSubEmitters[r].dispose()})),t&&this.activeSubSystems)for(let s=this.activeSubSystems.length-1;s>=0;s-=1)this.activeSubSystems[s].dispose();if(this._subEmitters&&this._subEmitters.length){for(let s=0;s<this._subEmitters.length;s++)for(const r of this._subEmitters[s])r.dispose();this._subEmitters=[],this.subEmitters=[]}this._disposeEmitterOnDispose&&this.emitter&&this.emitter.dispose&&this.emitter.dispose(!0)}static _Parse(e,t,i,s){let r;i instanceof dt?r=null:r=i;const n=ea("BABYLON.Texture");if(n&&r&&(e.texture?t.particleTexture=n.Parse(e.texture,r,s):e.textureName&&(t.particleTexture=new n(s+e.textureName,r,!1,e.invertY!==void 0?e.invertY:!0),t.particleTexture.name=e.textureName)),!e.emitterId&&e.emitterId!==0&&e.emitter===void 0?t.emitter=P.Zero():e.emitterId&&r?t.emitter=r.getLastMeshById(e.emitterId):t.emitter=P.FromArray(e.emitter),t.isLocal=!!e.isLocal,e.renderingGroupId!==void 0&&(t.renderingGroupId=e.renderingGroupId),e.isBillboardBased!==void 0&&(t.isBillboardBased=e.isBillboardBased),e.billboardMode!==void 0&&(t.billboardMode=e.billboardMode),e.useLogarithmicDepth!==void 0&&(t.useLogarithmicDepth=e.useLogarithmicDepth),e.animations){for(let l=0;l<e.animations.length;l++){const c=e.animations[l],u=ea("BABYLON.Animation");u&&t.animations.push(u.Parse(c))}t.beginAnimationOnStart=e.beginAnimationOnStart,t.beginAnimationFrom=e.beginAnimationFrom,t.beginAnimationTo=e.beginAnimationTo,t.beginAnimationLoop=e.beginAnimationLoop}if(e.autoAnimate&&r&&r.beginAnimation(t,e.autoAnimateFrom,e.autoAnimateTo,e.autoAnimateLoop,e.autoAnimateSpeed||1),t.startDelay=e.startDelay|0,t.minAngularSpeed=e.minAngularSpeed,t.maxAngularSpeed=e.maxAngularSpeed,t.minSize=e.minSize,t.maxSize=e.maxSize,e.minScaleX&&(t.minScaleX=e.minScaleX,t.maxScaleX=e.maxScaleX,t.minScaleY=e.minScaleY,t.maxScaleY=e.maxScaleY),e.preWarmCycles!==void 0&&(t.preWarmCycles=e.preWarmCycles,t.preWarmStepOffset=e.preWarmStepOffset),e.minInitialRotation!==void 0&&(t.minInitialRotation=e.minInitialRotation,t.maxInitialRotation=e.maxInitialRotation),t.minLifeTime=e.minLifeTime,t.maxLifeTime=e.maxLifeTime,t.minEmitPower=e.minEmitPower,t.maxEmitPower=e.maxEmitPower,t.emitRate=e.emitRate,t.gravity=P.FromArray(e.gravity),e.noiseStrength&&(t.noiseStrength=P.FromArray(e.noiseStrength)),t.color1=St.FromArray(e.color1),t.color2=St.FromArray(e.color2),t.colorDead=St.FromArray(e.colorDead),t.updateSpeed=e.updateSpeed,t.targetStopDuration=e.targetStopDuration,t.blendMode=e.blendMode,e.colorGradients)for(const l of e.colorGradients)t.addColorGradient(l.gradient,St.FromArray(l.color1),l.color2?St.FromArray(l.color2):void 0);if(e.rampGradients){for(const l of e.rampGradients)t.addRampGradient(l.gradient,Pe.FromArray(l.color));t.useRampGradients=e.useRampGradients}if(e.colorRemapGradients)for(const l of e.colorRemapGradients)t.addColorRemapGradient(l.gradient,l.factor1!==void 0?l.factor1:l.factor,l.factor2);if(e.alphaRemapGradients)for(const l of e.alphaRemapGradients)t.addAlphaRemapGradient(l.gradient,l.factor1!==void 0?l.factor1:l.factor,l.factor2);if(e.sizeGradients)for(const l of e.sizeGradients)t.addSizeGradient(l.gradient,l.factor1!==void 0?l.factor1:l.factor,l.factor2);if(e.angularSpeedGradients)for(const l of e.angularSpeedGradients)t.addAngularSpeedGradient(l.gradient,l.factor1!==void 0?l.factor1:l.factor,l.factor2);if(e.velocityGradients)for(const l of e.velocityGradients)t.addVelocityGradient(l.gradient,l.factor1!==void 0?l.factor1:l.factor,l.factor2);if(e.dragGradients)for(const l of e.dragGradients)t.addDragGradient(l.gradient,l.factor1!==void 0?l.factor1:l.factor,l.factor2);if(e.emitRateGradients)for(const l of e.emitRateGradients)t.addEmitRateGradient(l.gradient,l.factor1!==void 0?l.factor1:l.factor,l.factor2);if(e.startSizeGradients)for(const l of e.startSizeGradients)t.addStartSizeGradient(l.gradient,l.factor1!==void 0?l.factor1:l.factor,l.factor2);if(e.lifeTimeGradients)for(const l of e.lifeTimeGradients)t.addLifeTimeGradient(l.gradient,l.factor1!==void 0?l.factor1:l.factor,l.factor2);if(e.limitVelocityGradients){for(const l of e.limitVelocityGradients)t.addLimitVelocityGradient(l.gradient,l.factor1!==void 0?l.factor1:l.factor,l.factor2);t.limitVelocityDamping=e.limitVelocityDamping}if(e.noiseTexture&&r){const l=ea("BABYLON.ProceduralTexture");t.noiseTexture=l.Parse(e.noiseTexture,r,s)}let o;if(e.particleEmitterType){switch(e.particleEmitterType.type){case"SphereParticleEmitter":o=new OO;break;case"SphereDirectedParticleEmitter":o=new cz;break;case"ConeEmitter":case"ConeParticleEmitter":o=new DO;break;case"ConeDirectedParticleEmitter":o=new hz;break;case"CylinderParticleEmitter":o=new RO;break;case"CylinderDirectedParticleEmitter":o=new uz;break;case"HemisphericParticleEmitter":o=new lz;break;case"PointParticleEmitter":o=new oz;break;case"MeshParticleEmitter":o=new CY;break;case"CustomParticleEmitter":o=new iM;break;case"BoxEmitter":case"BoxParticleEmitter":default:o=new eM;break}o.parse(e.particleEmitterType,r)}else o=new eM,o.parse(e,r);t.particleEmitterType=o,t.startSpriteCellID=e.startSpriteCellID,t.endSpriteCellID=e.endSpriteCellID,t.spriteCellLoop=e.spriteCellLoop??!0,t.spriteCellWidth=e.spriteCellWidth,t.spriteCellHeight=e.spriteCellHeight,t.spriteCellChangeSpeed=e.spriteCellChangeSpeed,t.spriteRandomStartCell=e.spriteRandomStartCell,t.disposeOnStop=e.disposeOnStop??!1,t.manualEmitCount=e.manualEmitCount??-1}static Parse(e,t,i,s=!1,r){const n=e.name;let o=null,l=null,c,u;if(t instanceof dt?c=t:(u=t,c=u.getEngine()),e.customShader&&c.createEffectForParticles){l=e.customShader;const p=l.shaderOptions.defines.length>0?l.shaderOptions.defines.join(`
`):"";o=c.createEffectForParticles(l.shaderPath.fragmentElement,l.shaderOptions.uniforms,l.shaderOptions.samplers,p)}const f=new xn(n,r||e.capacity,t,o,e.isAnimationSheetEnabled);if(f.customShader=l,f._rootUrl=i,e.id&&(f.id=e.id),e.subEmitters){f.subEmitters=[];for(const p of e.subEmitters){const m=[];for(const _ of p)m.push(tM.Parse(_,t,i));f.subEmitters.push(m)}}return xn._Parse(e,f,t,i),e.textureMask&&(f.textureMask=St.FromArray(e.textureMask)),e.worldOffset&&(f.worldOffset=P.FromArray(e.worldOffset)),e.preventAutoStart&&(f.preventAutoStart=e.preventAutoStart),!s&&!f.preventAutoStart&&f.start(),f}serialize(e=!1){const t={};if(xn._Serialize(t,this,e),t.textureMask=this.textureMask.asArray(),t.customShader=this.customShader,t.preventAutoStart=this.preventAutoStart,t.worldOffset=this.worldOffset.asArray(),this.subEmitters){t.subEmitters=[],this._subEmitters||this._prepareSubEmitterInternalArray();for(const i of this._subEmitters){const s=[];for(const r of i)s.push(r.serialize(e));t.subEmitters.push(s)}}return t}static _Serialize(e,t,i){if(e.name=t.name,e.id=t.id,e.capacity=t.getCapacity(),e.disposeOnStop=t.disposeOnStop,e.manualEmitCount=t.manualEmitCount,t.emitter.position){const h=t.emitter;e.emitterId=h.id}else{const h=t.emitter;e.emitter=h.asArray()}t.particleEmitterType&&(e.particleEmitterType=t.particleEmitterType.serialize()),t.particleTexture&&(i?e.texture=t.particleTexture.serialize():(e.textureName=t.particleTexture.name,e.invertY=!!t.particleTexture._invertY)),e.isLocal=t.isLocal,It.AppendSerializedAnimations(t,e),e.beginAnimationOnStart=t.beginAnimationOnStart,e.beginAnimationFrom=t.beginAnimationFrom,e.beginAnimationTo=t.beginAnimationTo,e.beginAnimationLoop=t.beginAnimationLoop,e.startDelay=t.startDelay,e.renderingGroupId=t.renderingGroupId,e.isBillboardBased=t.isBillboardBased,e.billboardMode=t.billboardMode,e.minAngularSpeed=t.minAngularSpeed,e.maxAngularSpeed=t.maxAngularSpeed,e.minSize=t.minSize,e.maxSize=t.maxSize,e.minScaleX=t.minScaleX,e.maxScaleX=t.maxScaleX,e.minScaleY=t.minScaleY,e.maxScaleY=t.maxScaleY,e.minEmitPower=t.minEmitPower,e.maxEmitPower=t.maxEmitPower,e.minLifeTime=t.minLifeTime,e.maxLifeTime=t.maxLifeTime,e.emitRate=t.emitRate,e.gravity=t.gravity.asArray(),e.noiseStrength=t.noiseStrength.asArray(),e.color1=t.color1.asArray(),e.color2=t.color2.asArray(),e.colorDead=t.colorDead.asArray(),e.updateSpeed=t.updateSpeed,e.targetStopDuration=t.targetStopDuration,e.blendMode=t.blendMode,e.preWarmCycles=t.preWarmCycles,e.preWarmStepOffset=t.preWarmStepOffset,e.minInitialRotation=t.minInitialRotation,e.maxInitialRotation=t.maxInitialRotation,e.startSpriteCellID=t.startSpriteCellID,e.spriteCellLoop=t.spriteCellLoop,e.endSpriteCellID=t.endSpriteCellID,e.spriteCellChangeSpeed=t.spriteCellChangeSpeed,e.spriteCellWidth=t.spriteCellWidth,e.spriteCellHeight=t.spriteCellHeight,e.spriteRandomStartCell=t.spriteRandomStartCell,e.isAnimationSheetEnabled=t.isAnimationSheetEnabled,e.useLogarithmicDepth=t.useLogarithmicDepth;const s=t.getColorGradients();if(s){e.colorGradients=[];for(const h of s){const x={gradient:h.gradient,color1:h.color1.asArray()};h.color2?x.color2=h.color2.asArray():x.color2=h.color1.asArray(),e.colorGradients.push(x)}}const r=t.getRampGradients();if(r){e.rampGradients=[];for(const h of r){const x={gradient:h.gradient,color:h.color.asArray()};e.rampGradients.push(x)}e.useRampGradients=t.useRampGradients}const n=t.getColorRemapGradients();if(n){e.colorRemapGradients=[];for(const h of n){const x={gradient:h.gradient,factor1:h.factor1};h.factor2!==void 0?x.factor2=h.factor2:x.factor2=h.factor1,e.colorRemapGradients.push(x)}}const o=t.getAlphaRemapGradients();if(o){e.alphaRemapGradients=[];for(const h of o){const x={gradient:h.gradient,factor1:h.factor1};h.factor2!==void 0?x.factor2=h.factor2:x.factor2=h.factor1,e.alphaRemapGradients.push(x)}}const l=t.getSizeGradients();if(l){e.sizeGradients=[];for(const h of l){const x={gradient:h.gradient,factor1:h.factor1};h.factor2!==void 0?x.factor2=h.factor2:x.factor2=h.factor1,e.sizeGradients.push(x)}}const c=t.getAngularSpeedGradients();if(c){e.angularSpeedGradients=[];for(const h of c){const x={gradient:h.gradient,factor1:h.factor1};h.factor2!==void 0?x.factor2=h.factor2:x.factor2=h.factor1,e.angularSpeedGradients.push(x)}}const u=t.getVelocityGradients();if(u){e.velocityGradients=[];for(const h of u){const x={gradient:h.gradient,factor1:h.factor1};h.factor2!==void 0?x.factor2=h.factor2:x.factor2=h.factor1,e.velocityGradients.push(x)}}const f=t.getDragGradients();if(f){e.dragGradients=[];for(const h of f){const x={gradient:h.gradient,factor1:h.factor1};h.factor2!==void 0?x.factor2=h.factor2:x.factor2=h.factor1,e.dragGradients.push(x)}}const p=t.getEmitRateGradients();if(p){e.emitRateGradients=[];for(const h of p){const x={gradient:h.gradient,factor1:h.factor1};h.factor2!==void 0?x.factor2=h.factor2:x.factor2=h.factor1,e.emitRateGradients.push(x)}}const m=t.getStartSizeGradients();if(m){e.startSizeGradients=[];for(const h of m){const x={gradient:h.gradient,factor1:h.factor1};h.factor2!==void 0?x.factor2=h.factor2:x.factor2=h.factor1,e.startSizeGradients.push(x)}}const _=t.getLifeTimeGradients();if(_){e.lifeTimeGradients=[];for(const h of _){const x={gradient:h.gradient,factor1:h.factor1};h.factor2!==void 0?x.factor2=h.factor2:x.factor2=h.factor1,e.lifeTimeGradients.push(x)}}const d=t.getLimitVelocityGradients();if(d){e.limitVelocityGradients=[];for(const h of d){const x={gradient:h.gradient,factor1:h.factor1};h.factor2!==void 0?x.factor2=h.factor2:x.factor2=h.factor1,e.limitVelocityGradients.push(x)}e.limitVelocityDamping=t.limitVelocityDamping}t.noiseTexture&&(e.noiseTexture=t.noiseTexture.serialize())}clone(e,t,i=!1){const s={...this._customWrappers};let r=null;const n=this._engine;if(n.createEffectForParticles&&this.customShader!=null){r=this.customShader;const c=r.shaderOptions.defines.length>0?r.shaderOptions.defines.join(`
`):"",u=n.createEffectForParticles(r.shaderPath.fragmentElement,r.shaderOptions.uniforms,r.shaderOptions.samplers,c);s[0]?s[0].effect=u:this.setCustomEffect(u,0)}const o=this.serialize(i),l=xn.Parse(o,this._scene||this._engine,this._rootUrl);return l.name=e,l.customShader=r,l._customWrappers=s,t===void 0&&(t=this.emitter),this.noiseTexture&&(l.noiseTexture=this.noiseTexture.clone()),l.emitter=t,this.preventAutoStart||l.start(),l}}xn.BILLBOARDMODE_Y=2,xn.BILLBOARDMODE_ALL=7,xn.BILLBOARDMODE_STRETCHED=8,xn.BILLBOARDMODE_STRETCHED_LOCAL=9,tM._ParseParticleSystem=xn.Parse;class PHe{constructor(){this._trackedScene=null}track(e){this._trackedScene=e,It.AllowLoadingUniqueId=!0,this._savedJSON=Jy.Serialize(e),It.AllowLoadingUniqueId=!1}getDelta(){if(!this._trackedScene)return null;const e=be.ForceSerializeBuffers;be.ForceSerializeBuffers=!1,It.AllowLoadingUniqueId=!0;const t=Jy.Serialize(this._trackedScene);It.AllowLoadingUniqueId=!1;const i={};for(const s in t)this._compareCollections(s,this._savedJSON[s],t[s],i);return be.ForceSerializeBuffers=e,i}_compareArray(e,t,i,s){if(t.length===0&&i.length===0)return!0;if(t.length&&!isNaN(t[0])||i.length&&!isNaN(i[0])){if(t.length!==i.length)return!1;if(t.length===0)return!0;for(let n=0;n<t.length;n++)if(t[n]!==i[n])return s[e]=i,!1;return!0}const r=[];for(let n=0;n<t.length;n++){const o=t[n],l=o.uniqueId;r.push(l);const c=i.filter(u=>u.uniqueId===l);if(c.length){const u=c[0],f={};this._compareObjects(o,u,f)||(s[e]||(s[e]=[]),f.__state={id:u.id||u.name},s[e].push(f))}else{const u={__state:{deleteId:o.id||o.name}};s[e]||(s[e]=[]),s[e].push(u)}}for(let n=0;n<i.length;n++){const o=i[n],l=o.uniqueId;r.indexOf(l)===-1&&(s[e]||(s[e]=[]),s[e].push(o))}return!0}_compareObjects(e,t,i){let s=!1;for(const r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;const n=e[r],o=t[r];let l=!1;if(Array.isArray(n))l=JSON.stringify(n)!==JSON.stringify(o);else if(!isNaN(n)||Object.prototype.toString.call(n)=="[object String]")l=n!==o;else if(typeof n=="object"&&typeof o=="object"){const c={};this._compareObjects(n,o,c)||(i[r]=c,s=!0)}l&&(s=!0,i[r]=o)}return!s}_compareCollections(e,t,i,s){if(t!==i&&t&&i){if(Array.isArray(t)&&Array.isArray(i)){if(this._compareArray(e,t,i,s))return}else if(typeof t=="object"&&typeof i=="object"){const r={};this._compareObjects(t,i,r)||(s[e]=r);return}}}static GetShadowGeneratorById(e,t){const i=e.lights.map(s=>s.getShadowGenerators());for(const s of i)if(s){const r=s.values();for(let n=r.next();n.done!==!0;n=r.next()){const o=n.value;if(o&&o.id===t)return o}}return null}static ApplyDelta(e,t){typeof e=="string"&&(e=JSON.parse(e));const i=t;for(const s in e){const r=e[s],n=i[s];if(Array.isArray(n)||s==="shadowGenerators")switch(s){case"cameras":this._ApplyDeltaForEntity(r,t,t.getCameraById.bind(t),o=>_i.Parse(o,t));break;case"lights":this._ApplyDeltaForEntity(r,t,t.getLightById.bind(t),o=>vs.Parse(o,t));break;case"shadowGenerators":this._ApplyDeltaForEntity(r,t,o=>this.GetShadowGeneratorById(t,o),o=>Bi.Parse(o,t));break;case"meshes":this._ApplyDeltaForEntity(r,t,t.getMeshById.bind(t),o=>Ne.Parse(o,t,""));break;case"skeletons":this._ApplyDeltaForEntity(r,t,t.getSkeletonById.bind(t),o=>Wv.Parse(o,t));break;case"materials":this._ApplyDeltaForEntity(r,t,t.getMaterialById.bind(t),o=>ft.Parse(o,t,""));break;case"multiMaterials":this._ApplyDeltaForEntity(r,t,t.getMaterialById.bind(t),o=>tf.Parse(o,t,""));break;case"transformNodes":this._ApplyDeltaForEntity(r,t,t.getTransformNodeById.bind(t),o=>Si.Parse(o,t,""));break;case"particleSystems":this._ApplyDeltaForEntity(r,t,t.getParticleSystemById.bind(t),o=>xn.Parse(o,t,""));break;case"morphTargetManagers":this._ApplyDeltaForEntity(r,t,t.getMorphTargetById.bind(t),o=>J6.Parse(o,t));break;case"postProcesses":this._ApplyDeltaForEntity(r,t,t.getPostProcessByName.bind(t),o=>Mi.Parse(o,t,""));break}else isNaN(n)?n.fromArray&&n.fromArray(r):i[s]=r}}static _ApplyPropertiesToEntity(e,t){for(const i in e){const s=e[i],r=t[i];r!==void 0&&(!isNaN(r)||Array.isArray(r)?t[i]=s:r.fromArray?r.fromArray(s):typeof r=="object"&&r!==null&&this._ApplyPropertiesToEntity(s,r))}}static _ApplyDeltaForEntity(e,t,i,s){for(const r of e)if(r.__state&&r.__state.id!==void 0){const n=i(r.__state.id);n&&(this._ApplyPropertiesToEntity(r,n),It.ParseProperties(r,n,t,null))}else if(r.__state&&r.__state.deleteId!==void 0){const n=i(r.__state.deleteId);n==null||n.dispose()}else s(r)}}var NO;(function(a){class e{serialize(){const s={},r=new Array(this._characterToIdx.size);return this._characterToIdx.forEach((n,o)=>{r[n]=o}),s.characters=r,s.insertionCosts=this._insertionCosts,s.deletionCosts=this._deletionCosts,s.substitutionCosts=this._substitutionCosts,JSON.stringify(s)}static Deserialize(s){const r=JSON.parse(s),n=new e(r.characters);return n._insertionCosts=r.insertionCosts,n._deletionCosts=r.deletionCosts,n._substitutionCosts=r.substitutionCosts,n}constructor(s,r=null,n=null,o=null){r=r??(()=>1),n=n??(()=>1),o=o??((c,u)=>c===u?0:1),this._characterToIdx=new Map,this._insertionCosts=new Array(s.length),this._deletionCosts=new Array(s.length),this._substitutionCosts=new Array(s.length);let l;for(let c=0;c<s.length;++c){l=s[c],this._characterToIdx.set(l,c),this._insertionCosts[c]=r(l),this._deletionCosts[c]=n(l),this._substitutionCosts[c]=new Array(s.length);for(let u=c;u<s.length;++u)this._substitutionCosts[c][u]=o(l,s[u])}}getCharacterIdx(s){return this._characterToIdx.get(s)}getInsertionCost(s){return this._insertionCosts[s]}getDeletionCost(s){return this._deletionCosts[s]}getSubstitutionCost(s,r){const n=Math.min(s,r),o=Math.max(s,r);return this._substitutionCosts[n][o]}}a.Alphabet=e;class t{serialize(){return JSON.stringify(this._characters)}static Deserialize(s,r){const n=new t([],r);return n._characters=JSON.parse(s),n}constructor(s,r){if(s.length>t._MAX_SEQUENCE_LENGTH)throw new Error("Sequences longer than "+t._MAX_SEQUENCE_LENGTH+" not supported.");this._alphabet=r,this._characters=s.map(n=>this._alphabet.getCharacterIdx(n))}distance(s){return t._Distance(this,s)}static _Distance(s,r){const n=s._alphabet;if(n!==r._alphabet)throw new Error("Cannot Levenshtein compare Sequences built from different alphabets.");const o=s._characters,l=r._characters,c=o.length,u=l.length,f=t._CostMatrix;f[0][0]=0;for(let p=0;p<c;++p)f[p+1][0]=f[p][0]+n.getInsertionCost(o[p]);for(let p=0;p<u;++p)f[0][p+1]=f[0][p]+n.getInsertionCost(l[p]);for(let p=0;p<c;++p)for(let m=0;m<u;++m)t._InsertionCost=f[p+1][m]+n.getInsertionCost(l[m]),t._DeletionCost=f[p][m+1]+n.getDeletionCost(o[p]),t._SubstitutionCost=f[p][m]+n.getSubstitutionCost(o[p],l[m]),f[p+1][m+1]=Math.min(t._InsertionCost,t._DeletionCost,t._SubstitutionCost);return f[c][u]}}t._MAX_SEQUENCE_LENGTH=256,t._CostMatrix=[...Array(t._MAX_SEQUENCE_LENGTH+1)].map(()=>new Array(t._MAX_SEQUENCE_LENGTH+1)),a.Sequence=t})(NO||(NO={}));class bn{serialize(){return JSON.stringify(this)}static Deserialize(e){const t=JSON.parse(e),i=new bn(t._segmentLength);return i._points=t._points.map(s=>new P(s._x,s._y,s._z)),i}constructor(e=.01){this._points=[],this._segmentLength=e}getLength(){return this._points.length*this._segmentLength}add(e){let t=this._points.length;if(t===0)this._points.push(e.clone());else{const i=()=>this._segmentLength/P.Distance(this._points[t-1],e);for(let s=i();s<=1;s=i()){const r=this._points[t-1].scale(1-s);e.scaleAndAddToRef(s,r),this._points.push(r),++t}}}resampleAtTargetResolution(e){const t=new bn(this.getLength()/e);return this._points.forEach(i=>{t.add(i)}),t}tokenize(e){const t=[],i=new P;for(let s=2;s<this._points.length;++s)bn._TransformSegmentDirToRef(this._points[s-2],this._points[s-1],this._points[s],i)&&t.push(bn._TokenizeSegment(i,e));return t}static _TransformSegmentDirToRef(e,t,i,s){return t.subtractToRef(e,bn._ForwardDir),bn._ForwardDir.normalize(),t.scaleToRef(-1,bn._InverseFromVec),bn._InverseFromVec.normalize(),Math.abs(P.Dot(bn._ForwardDir,bn._InverseFromVec))>.98?!1:(P.CrossToRef(bn._ForwardDir,bn._InverseFromVec,bn._UpDir),bn._UpDir.normalize(),me.LookAtLHToRef(e,t,bn._UpDir,bn._LookMatrix),i.subtractToRef(t,bn._FromToVec),bn._FromToVec.normalize(),P.TransformNormalToRef(bn._FromToVec,bn._LookMatrix,s),!0)}static _TokenizeSegment(e,t){bn._BestMatch=0,bn._Score=P.Dot(e,t[0]),bn._BestScore=bn._Score;for(let i=1;i<t.length;++i)bn._Score=P.Dot(e,t[i]),bn._Score>bn._BestScore&&(bn._BestMatch=i,bn._BestScore=bn._Score);return bn._BestMatch}}bn._ForwardDir=new P,bn._InverseFromVec=new P,bn._UpDir=new P,bn._FromToVec=new P,bn._LookMatrix=new me;class dz{static Generate(e=64,t=256,i=.1,s=.001,r=[]){const l=new dz(e);for(let _=0;_<e;++_)l.chars[_]=new P(Math.random()-.5,Math.random()-.5,Math.random()-.5),l.chars[_].normalize();for(let _=0;_<r.length;++_)l.chars[_].copyFrom(r[_]);let c,u;const f=new P,p=new P,m=(_,d,h)=>(1-h)*_+h*d;for(let _=0;_<t;++_){c=m(i,s,_/(t-1));for(let d=r.length;d<l.chars.length;++d)f.copyFromFloats(0,0,0),l.chars.forEach(h=>{l.chars[d].subtractToRef(h,p),u=p.lengthSquared(),u>1e-6&&p.scaleAndAddToRef(1/(p.lengthSquared()*u),f)}),f.scaleInPlace(c),l.chars[d].addInPlace(f),l.chars[d].normalize()}return l}serialize(){return JSON.stringify(this.chars)}static Deserialize(e){const t=JSON.parse(e),i=new dz(t.length);for(let s=0;s<t.length;++s)i.chars[s]=new P(t[s]._x,t[s]._y,t[s]._z);return i}constructor(e){this.chars=new Array(e)}}class yb{serialize(){return JSON.stringify(this._sequences.map(e=>e.serialize()))}static Deserialize(e,t){const i=new yb;return i._sequences=JSON.parse(e).map(s=>NO.Sequence.Deserialize(s,t)),i}static CreateFromTrajectory(e,t,i){return yb.CreateFromTokenizationPyramid(yb._GetTokenizationPyramid(e,t),i)}static CreateFromTokenizationPyramid(e,t){const i=new yb;return i._sequences=e.map(s=>new NO.Sequence(s,t)),i}constructor(){this._sequences=[]}static _GetTokenizationPyramid(e,t,i=yb._FINEST_DESCRIPTOR_RESOLUTION){const s=[];for(let r=i;r>4;r=Math.floor(r/2))s.push(e.resampleAtTargetResolution(r).tokenize(t.chars));return s}distance(e){let t=0,i;for(let s=0;s<this._sequences.length;++s)i=Math.pow(2,s),t+=i*this._sequences[s].distance(e._sequences[s]);return t}}yb._FINEST_DESCRIPTOR_RESOLUTION=32;class wO{serialize(){const e={};return e.descriptors=this._descriptors.map(t=>t.serialize()),e.centroidIdx=this._centroidIdx,e.averageDistance=this._averageDistance,JSON.stringify(e)}static Deserialize(e,t){const i=JSON.parse(e),s=new wO;return s._descriptors=i.descriptors.map(r=>yb.Deserialize(r,t)),s._centroidIdx=i.centroidIdx,s._averageDistance=i.averageDistance,s}constructor(e=[]){this._descriptors=e,this._centroidIdx=-1,this._averageDistance=0,this._refreshDescription()}add(e){this._descriptors.push(e),this._refreshDescription()}getMatchCost(e){return e.distance(this._descriptors[this._centroidIdx])/this._averageDistance}getMatchMinimumDistance(e){return Math.min(...this._descriptors.map(t=>t.distance(e)))}_refreshDescription(){this._centroidIdx=-1;let e;const t=this._descriptors.map(i=>(e=0,this._descriptors.forEach(s=>{e+=i.distance(s)}),e));for(let i=0;i<t.length;++i)(this._centroidIdx<0||t[i]<t[this._centroidIdx])&&(this._centroidIdx=i);this._averageDistance=0,this._descriptors.forEach(i=>{this._averageDistance+=i.distance(this._descriptors[this._centroidIdx])}),this._descriptors.length>0&&(this._averageDistance=Math.max(this._averageDistance/this._descriptors.length,wO._MIN_AVERAGE_DISTANCE))}}wO._MIN_AVERAGE_DISTANCE=1;class xY{serialize(){const e={};return e.maximumAllowableMatchCost=this._maximumAllowableMatchCost,e.vector3Alphabet=this._vector3Alphabet.serialize(),e.levenshteinAlphabet=this._levenshteinAlphabet.serialize(),e.nameToDescribedTrajectory=[],this._nameToDescribedTrajectory.forEach((t,i)=>{e.nameToDescribedTrajectory.push(i),e.nameToDescribedTrajectory.push(t.serialize())}),JSON.stringify(e)}static Deserialize(e){const t=JSON.parse(e),i=new xY;i._maximumAllowableMatchCost=t.maximumAllowableMatchCost,i._vector3Alphabet=dz.Deserialize(t.vector3Alphabet),i._levenshteinAlphabet=NO.Alphabet.Deserialize(t.levenshteinAlphabet);for(let s=0;s<t.nameToDescribedTrajectory.length;s+=2)i._nameToDescribedTrajectory.set(t.nameToDescribedTrajectory[s],wO.Deserialize(t.nameToDescribedTrajectory[s+1],i._levenshteinAlphabet));return i}static Generate(){const e=dz.Generate(64,256,.1,.001,[P.Forward()]),t=new Array(e.chars.length);for(let r=0;r<t.length;++r)t[r]=r;const i=new NO.Alphabet(t,r=>r===0?0:1,r=>r===0?0:1,(r,n)=>Math.min(1-P.Dot(e.chars[r],e.chars[n]),1)),s=new xY;return s._vector3Alphabet=e,s._levenshteinAlphabet=i,s}constructor(){this._maximumAllowableMatchCost=4,this._nameToDescribedTrajectory=new Map}addTrajectoryToClassification(e,t){this._nameToDescribedTrajectory.has(t)||this._nameToDescribedTrajectory.set(t,new wO),this._nameToDescribedTrajectory.get(t).add(yb.CreateFromTrajectory(e,this._vector3Alphabet,this._levenshteinAlphabet))}deleteClassification(e){return this._nameToDescribedTrajectory.delete(e)}classifyTrajectory(e){const t=yb.CreateFromTrajectory(e,this._vector3Alphabet,this._levenshteinAlphabet),i=[];if(this._nameToDescribedTrajectory.forEach((o,l)=>{o.getMatchCost(t)<this._maximumAllowableMatchCost&&i.push(l)}),i.length===0)return null;let s=0,r=this._nameToDescribedTrajectory.get(i[s]).getMatchMinimumDistance(t),n;for(let o=0;o<i.length;++o)n=this._nameToDescribedTrajectory.get(i[o]).getMatchMinimumDistance(t),n<r&&(r=n,s=o);return i[s]}}class fz{constructor(e,t,i){this._scene=e,de.Log(`[Reflector] Connecting to ws://${t}:${i}`),this._webSocket=new WebSocket(`ws://${t}:${i}`),this._webSocket.onmessage=s=>{const r=s.data;if(r.startsWith(fz._SERVER_PREFIX)){const n=r.substring(fz._SERVER_PREFIX.length);de.Log(`[Reflector] Received server message: ${n.substring(0,64)}`),this._handleServerMessage(n);return}else de.Log(`[Reflector] Received client message: ${r.substring(0,64)}`),this._handleClientMessage()},this._webSocket.onclose=s=>{de.Log(`[Reflector] Disconnected ${s.code} ${s.reason}`)}}close(){this._webSocket.close()}_handleServerMessage(e){switch(e){case"connected":{Jy.SerializeAsync(this._scene).then(t=>{this._webSocket.send(`load|${JSON.stringify(t)}`)});break}}}_handleClientMessage(){}}fz._SERVER_PREFIX="$$";class bY{constructor(e){this._observer=null,this._currentState=[],this.onPressureChanged=new xe,bY.IsAvailable&&(this._observer=new PressureObserver(t=>{this._currentState=t,this.onPressureChanged.notifyObservers(t)},e))}static get IsAvailable(){return typeof PressureObserver<"u"&&PressureObserver.knownSources&&PressureObserver.knownSources.includes("cpu")}observe(e){var t;try{(t=this._observer)==null||t.observe(e),this.onPressureChanged.notifyObservers(this._currentState)}catch{}}unobserve(e){var t;try{(t=this._observer)==null||t.unobserve(e)}catch{}}dispose(){var e;(e=this._observer)==null||e.disconnect(),this._observer=null,this.onPressureChanged.clear()}}const OHe=1.5;class sM{constructor(e){this._view=new Float32Array(e),this._itemLength=0}get itemLength(){return this._itemLength}at(e){return e<0||e>=this._itemLength?NaN:this._view[e]}subarray(e,t){return e>=t||e<0?new Float32Array(0):(t>this._itemLength&&(t=this._itemLength),this._view.subarray(e,t))}push(e){this._view[this._itemLength]=e,this._itemLength++,this._itemLength>=this._view.length&&this._growArray()}_growArray(){const e=Math.floor(this._view.length*OHe),t=new Float32Array(e);t.set(this._view),this._view=t}}const m9=1800,RHe=24,DHe="0",Yxe="timestamp",Xxe="numPoints",NHe=/\r/g,Qne="@";class __{static get SliceDataOffset(){return 2}static get NumberOfPointsOffset(){return 1}constructor(e,t){this._scene=e,this._collectDataAtFrame=()=>{const i=lr.Now-this._startingTimestamp,s=this.datasets.ids.length,r=this.datasets.startingIndices.itemLength;let n=0;if(r>0){const o=this.datasets.startingIndices.at(r-1);n=o+this.datasets.data.at(o+__.NumberOfPointsOffset)+__.SliceDataOffset}if(this.datasets.startingIndices.push(n),this.datasets.data.push(i),this.datasets.data.push(s),this.datasets.ids.forEach(o=>{const l=this._strategies.get(o);l&&this.datasets.data.push(l.getData())}),this.datasetObservable.hasObservers()){const o=[i,s];for(let l=0;l<s;l++)o.push(this.datasets.data.at(n+__.SliceDataOffset+l));this.datasetObservable.notifyObservers(o)}},this.datasets={ids:[],data:new sM(m9),startingIndices:new sM(m9)},this._strategies=new Map,this._datasetMeta=new Map,this._eventRestoreSet=new Set,this._customEventObservable=new xe,this.datasetObservable=new xe,this.metadataObservable=new xe(i=>i.callback(this._datasetMeta,new iX(0))),t&&this.addCollectionStrategies(...t)}registerEvent(e,t,i){var n;if(this._strategies.has(e)&&!t)return;this._strategies.has(e)&&t&&((n=this._strategies.get(e))==null||n.dispose(),this._strategies.delete(e));const s=o=>{let l=0,c=0;const u=o.onAfterRenderObservable.add(()=>{c=l,l=0}),f=this._customEventObservable.add(p=>{e===p.name&&(p.value!==void 0?l=p.value:l++)});return{id:e,getData:()=>c,dispose:()=>{o.onAfterRenderObservable.remove(u),this._customEventObservable.remove(f)}}},r={name:e};return this._eventRestoreSet.add(e),this.addCollectionStrategies({strategyCallback:s,category:i}),r}sendEvent(e){this._customEventObservable.notifyObservers(e)}_restoreStringEvents(){this._eventRestoreSet.size!==this._customEventObservable.observers.length&&this._eventRestoreSet.forEach(e=>{this.registerEvent(e,!0)})}addCollectionStrategies(...e){for(let{strategyCallback:t,category:i,hidden:s}of e){const r=t(this._scene);if(this._strategies.has(r.id)){r.dispose();continue}this.datasets.ids.push(r.id),i&&(i=i.replace(new RegExp(Qne,"g"),"")),this._datasetMeta.set(r.id,{color:this._getHexColorFromId(r.id),category:i,hidden:s}),this._strategies.set(r.id,r)}this.metadataObservable.notifyObservers(this._datasetMeta)}_getHexColorFromId(e){let t=0;for(let s=0;s<e.length;s++)t=e.charCodeAt(s)+((t<<5)-t);let i="#";for(let s=0;s<RHe;s+=8){const r=t>>s&255,n=DHe+r.toString(16);i+=n.substring(n.length-2)}return i}getCurrentSlice(){const e=lr.Now-this._startingTimestamp,t=this.datasets.ids.length,i=[e,t];this.datasets.ids.forEach(s=>{const r=this._strategies.get(s);r&&this.datasetObservable.hasObservers()&&i.push(r.getData())}),this.datasetObservable.hasObservers()&&this.datasetObservable.notifyObservers(i)}updateMetadata(e,t,i){const s=this._datasetMeta.get(e);s&&(s[t]=i,this.metadataObservable.notifyObservers(this._datasetMeta))}clear(e){this.datasets.data=new sM(m9),this.datasets.ids.length=0,this.datasets.startingIndices=new sM(m9),this._datasetMeta.clear(),this._strategies.forEach(t=>t.dispose()),this._strategies.clear(),e||this._eventRestoreSet.clear(),this._hasLoadedData=!1}get hasLoadedData(){return this._hasLoadedData}loadFromFileData(e,t){const i=e.replace(NHe,"").split(`
`).map(f=>f.split(",").filter(p=>p.length>0)).filter(f=>f.length>0),s=0,r=__.NumberOfPointsOffset;if(i.length<2)return!1;const n={ids:[],data:new sM(m9),startingIndices:new sM(m9)},[o,...l]=i;if(o.length<2||o[s]!==Yxe||o[r]!==Xxe)return!1;const c=new Map;for(let f=__.SliceDataOffset;f<o.length;f++){const[p,m]=o[f].split(Qne);n.ids.push(p),c.set(p,m)}let u=0;for(const f of l){if(f.length<2)return!1;const p=parseFloat(f[s]),m=parseInt(f[r]);if(isNaN(m)||isNaN(p)||(n.data.push(p),n.data.push(m),m+__.SliceDataOffset!==f.length))return!1;for(let _=__.SliceDataOffset;_<f.length;_++){const d=parseFloat(f[_]);if(isNaN(d))return!1;n.data.push(d)}n.startingIndices.push(u),u+=f.length}if(this.datasets.ids=n.ids,this.datasets.data=n.data,this.datasets.startingIndices=n.startingIndices,t||this._datasetMeta.clear(),this._strategies.forEach(f=>f.dispose()),this._strategies.clear(),!t)for(const f of this.datasets.ids){const p=c.get(f);this._datasetMeta.set(f,{category:p,color:this._getHexColorFromId(f)})}return this.metadataObservable.notifyObservers(this._datasetMeta),this._hasLoadedData=!0,!0}exportDataToCsv(){let e="";e+=`${Yxe},${Xxe}`;for(let i=0;i<this.datasets.ids.length;i++)if(e+=`,${this.datasets.ids[i]}`,this._datasetMeta){const s=this._datasetMeta.get(this.datasets.ids[i]);s!=null&&s.category&&(e+=`${Qne}${s.category}`)}e+=`
`;for(let i=0;i<this.datasets.startingIndices.itemLength;i++){const s=this.datasets.startingIndices.at(i),r=this.datasets.data.at(s),n=this.datasets.data.at(s+__.NumberOfPointsOffset);e+=`${r},${n}`;for(let o=0;o<n;o++)e+=`,${this.datasets.data.at(s+__.SliceDataOffset+o)}`;for(let o=0;o<this.datasets.ids.length-n;o++)e+=",";e+=`
`}const t=`${new Date().toISOString()}-perfdata.csv`;Le.Download(new Blob([e],{type:"text/csv"}),t)}start(e){e?this._startingTimestamp===void 0&&(this._startingTimestamp=lr.Now):(this.datasets.data=new sM(m9),this.datasets.startingIndices=new sM(m9),this._startingTimestamp=lr.Now),this._scene.onAfterRenderObservable.add(this._collectDataAtFrame),this._restoreStringEvents(),this._isStarted=!0}stop(){this._scene.onAfterRenderObservable.removeCallback(this._collectDataAtFrame),this._isStarted=!1}get isStarted(){return this._isStarted}dispose(){this._scene.onAfterRenderObservable.removeCallback(this._collectDataAtFrame),this._datasetMeta.clear(),this._strategies.forEach(e=>{e.dispose()}),this.datasetObservable.clear(),this.metadataObservable.clear(),this._isStarted=!1,this.datasets=null}}const v_=()=>{};class wHe{static FpsStrategy(){return e=>{const t=e.getEngine();return{id:"FPS",getData:()=>t.getFps(),dispose:v_}}}static ThermalStrategy(){return this._PressureStrategy("Thermal utilization","thermal")}static PowerSupplyStrategy(){return this._PressureStrategy("Power supply utilization","power-supply")}static PressureStrategy(){return this._PressureStrategy("Pressure")}static _PressureStrategy(e,t=null){return()=>{let i=0;const s=new bY;return s.observe("cpu"),s.onPressureChanged.add(r=>{var n;for(const o of r)if(t&&o.factors.includes(t)||!t&&(((n=o.factors)==null?void 0:n.length)??0)===0)switch(o.state){case"nominal":i=0;break;case"fair":i=.25;break;case"serious":i=.5;break;case"critical":i=1;break}}),{id:e,getData:()=>i,dispose:()=>s.dispose()}}}static TotalMeshesStrategy(){return e=>({id:"Total meshes",getData:()=>e.meshes.length,dispose:v_})}static ActiveMeshesStrategy(){return e=>({id:"Active meshes",getData:()=>e.getActiveMeshes().length,dispose:v_})}static ActiveIndicesStrategy(){return e=>({id:"Active indices",getData:()=>e.getActiveIndices(),dispose:v_})}static ActiveFacesStrategy(){return e=>({id:"Active faces",getData:()=>e.getActiveIndices()/3,dispose:v_})}static ActiveBonesStrategy(){return e=>({id:"Active bones",getData:()=>e.getActiveBones(),dispose:v_})}static ActiveParticlesStrategy(){return e=>({id:"Active particles",getData:()=>e.getActiveParticles(),dispose:v_})}static DrawCallsStrategy(){return e=>{let t=0;const i=e.onBeforeAnimationsObservable.add(()=>{e.getEngine()._drawCalls.fetchNewFrame()}),s=e.onAfterRenderObservable.add(()=>{t=e.getEngine()._drawCalls.current});return{id:"Draw calls",getData:()=>t,dispose:()=>{e.onBeforeAnimationsObservable.remove(i),e.onAfterRenderObservable.remove(s)}}}}static TotalLightsStrategy(){return e=>({id:"Total lights",getData:()=>e.lights.length,dispose:v_})}static TotalVerticesStrategy(){return e=>({id:"Total vertices",getData:()=>e.getTotalVertices(),dispose:v_})}static TotalMaterialsStrategy(){return e=>({id:"Total materials",getData:()=>e.materials.length,dispose:v_})}static TotalTexturesStrategy(){return e=>({id:"Total textures",getData:()=>e.textures.length,dispose:v_})}static AbsoluteFpsStrategy(){return e=>{const t=new U3e(e);return t.captureFrameTime=!0,{id:"Absolute FPS",getData:()=>1e3/t.frameTimeCounter.lastSecAverage,dispose:v_}}}static MeshesSelectionStrategy(){return e=>{let t=lr.Now,i=0;const s=e.onBeforeActiveMeshesEvaluationObservable.add(()=>{t=lr.Now}),r=e.onAfterActiveMeshesEvaluationObservable.add(()=>{i=lr.Now-t});return{id:"Meshes Selection",getData:()=>i,dispose:()=>{e.onBeforeActiveMeshesEvaluationObservable.remove(s),e.onAfterActiveMeshesEvaluationObservable.remove(r)}}}}static RenderTargetsStrategy(){return e=>{let t=lr.Now,i=0;const s=e.onBeforeRenderTargetsRenderObservable.add(()=>{t=lr.Now}),r=e.onAfterRenderTargetsRenderObservable.add(()=>{i=lr.Now-t});return{id:"Render Targets",getData:()=>i,dispose:()=>{e.onBeforeRenderTargetsRenderObservable.remove(s),e.onAfterRenderTargetsRenderObservable.remove(r)}}}}static ParticlesStrategy(){return e=>{let t=lr.Now,i=0;const s=e.onBeforeParticlesRenderingObservable.add(()=>{t=lr.Now}),r=e.onAfterParticlesRenderingObservable.add(()=>{i=lr.Now-t});return{id:"Particles",getData:()=>i,dispose:()=>{e.onBeforeParticlesRenderingObservable.remove(s),e.onAfterParticlesRenderingObservable.remove(r)}}}}static SpritesStrategy(){return e=>{var n,o;let t=lr.Now,i=0;const s=(n=e.onBeforeSpritesRenderingObservable)==null?void 0:n.add(()=>{t=lr.Now}),r=(o=e.onAfterSpritesRenderingObservable)==null?void 0:o.add(()=>{i=lr.Now-t});return{id:"Sprites",getData:()=>i,dispose:()=>{var l,c;(l=e.onBeforeSpritesRenderingObservable)==null||l.remove(s),(c=e.onAfterSpritesRenderingObservable)==null||c.remove(r)}}}}static AnimationsStrategy(){return e=>{let t=lr.Now,i=0;const s=e.onBeforeAnimationsObservable.add(()=>{t=lr.Now}),r=e.onAfterAnimationsObservable.add(()=>{i=lr.Now-t});return{id:"Animations",getData:()=>i,dispose:()=>{e.onBeforeAnimationsObservable.remove(s),e.onAfterAnimationsObservable.remove(r)}}}}static PhysicsStrategy(){return e=>{var n,o;let t=lr.Now,i=0;const s=(n=e.onBeforePhysicsObservable)==null?void 0:n.add(()=>{t=lr.Now}),r=(o=e.onAfterPhysicsObservable)==null?void 0:o.add(()=>{i=lr.Now-t});return{id:"Physics",getData:()=>i,dispose:()=>{var l,c;(l=e.onBeforePhysicsObservable)==null||l.remove(s),(c=e.onAfterPhysicsObservable)==null||c.remove(r)}}}}static RenderStrategy(){return e=>{let t=lr.Now,i=0;const s=e.onBeforeDrawPhaseObservable.add(()=>{t=lr.Now}),r=e.onAfterDrawPhaseObservable.add(()=>{i=lr.Now-t});return{id:"Render",getData:()=>i,dispose:()=>{e.onBeforeDrawPhaseObservable.remove(s),e.onAfterDrawPhaseObservable.remove(r)}}}}static FrameTotalStrategy(){return e=>{let t=lr.Now,i=0;const s=e.onBeforeAnimationsObservable.add(()=>{t=lr.Now}),r=e.onAfterRenderObservable.add(()=>{i=lr.Now-t});return{id:"Frame Total",getData:()=>i,dispose:()=>{e.onBeforeAnimationsObservable.remove(s),e.onAfterRenderObservable.remove(r)}}}}static InterFrameStrategy(){return e=>{let t=lr.Now,i=0;const s=e.onBeforeAnimationsObservable.add(()=>{i=lr.Now-t}),r=e.onAfterRenderObservable.add(()=>{t=lr.Now});return{id:"Inter-frame",getData:()=>i,dispose:()=>{e.onBeforeAnimationsObservable.remove(s),e.onAfterRenderObservable.remove(r)}}}}static GpuFrameTimeStrategy(){return e=>{const t=new k3e(e.getEngine());return t.captureGPUFrameTime=!0,{id:"GPU frame time",getData:()=>Math.max(t.gpuFrameTimeCounter.current*1e-6,0),dispose:()=>{t.dispose()}}}}}ui.prototype.getPerfCollector=function(){return this._perfCollector||(this._perfCollector=new __(this)),this._perfCollector};class BHe{constructor(e,t){this._disableRenderingRefCount=0,this._currentPerformancePriorityMode=0,this._isEnabling=!1,this._enableCancelFunctions=new Map,this._disableCancelFunctions=new Map,this.showDebugLogs=!1,this._scene=e,this._engine=e.getEngine(),this._engine.isWebGPU&&(this._options={morphTargetsNumMaxInfluences:20,...t},this._engine.snapshotRenderingMode=1,this.fixMeshes(),this._onResizeObserver=this._engine.onResizeObservable.add(()=>{this._log("onResize","start"),this._fastSnapshotRenderingEnabled&&(this.disableSnapshotRendering(),this.enableSnapshotRendering()),this._log("onResize","end")}),this._scene.onBeforeRenderObservable.add(()=>{var i;if(this._fastSnapshotRenderingEnabled){e.skeletons.forEach(s=>s.prepare(!0));for(const s of e.meshes)if(s.infiniteDistance&&s.transferToEffect(s.computeWorldMatrix(!0)),s.skeleton&&s.transferToEffect(s.computeWorldMatrix(!0)),s.getClassName()==="GaussianSplattingMesh"&&s._postToWorker(),s.morphTargetManager&&s.subMeshes)for(const r of s.subMeshes){const n=r._drawWrapper,o=n.effect;if(o){const l=n.drawContext.buffers.LeftOver,c=(i=o._pipelineContext)==null?void 0:i.uniformBuffer;l&&c&&c.setDataBuffer(l)&&(s.morphTargetManager._bind(o),s3(s,o),c.update())}}}}))}get isReady(){return!this._isEnabling}enableSnapshotRendering(){if(!this._engine.isWebGPU||--this._disableRenderingRefCount>0)return;this._log("enableSnapshotRendering","called"),this._disableCancelFunctions.size>0&&this._log("enableSnapshotRendering",`cancelling ${this._disableCancelFunctions.size} "disable" callbacks`),this._disableCancelFunctions.forEach(t=>t()),this._disableCancelFunctions.clear(),this._isEnabling=!0,this._disableRenderingRefCount=0,this._currentPerformancePriorityMode=this._pendingCurrentPerformancePriorityMode??this._scene.performancePriority,this._pendingCurrentPerformancePriorityMode=void 0,this._scene.performancePriority=0;const e=()=>{this._enableCancelFunctions.delete(e);const t=this._engine.frameId+2;this._log("enableSnapshotRendering",`scene ready, add callbacks for frames ${t} and ${t+1}`),this._executeAtFrame(t,()=>{this._log("enableSnapshotRendering","callback #1, enable snapshot rendering at the engine level"),this._engine.snapshotRendering=!0}),this._executeAtFrame(t+1,()=>{this._log("enableSnapshotRendering","callback #2, signals that snapshot rendering helper is ready"),this._isEnabling=!1})};this._enableCancelFunctions.set(e,()=>this._scene.onReadyObservable.removeCallback(e)),this._scene.executeWhenReady(e)}disableSnapshotRendering(){if(this._engine.isWebGPU){if(this._log("disableSnapshotRendering","called"),this._disableRenderingRefCount===0&&(this._enableCancelFunctions.size>0&&this._log("disableSnapshotRendering",`cancelling ${this._enableCancelFunctions.size} "enable" callbacks`),this._enableCancelFunctions.forEach(e=>e()),this._enableCancelFunctions.clear(),this._isEnabling=!1,this._scene.performancePriority=0,this._currentPerformancePriorityMode!==0)){this._log("disableSnapshotRendering",`makes sure that the scene is rendered once in BackwardCompatible mode (code: 0) before switching to mode ${this._currentPerformancePriorityMode}`),this._pendingCurrentPerformancePriorityMode=this._currentPerformancePriorityMode;const e=()=>{this._log("disableSnapshotRendering",`scene ready, add callback for frame ${this._engine.frameId+2}`),this._executeAtFrame(this._engine.frameId+2,()=>{this._log("disableSnapshotRendering",`switching to performance priority mode ${this._pendingCurrentPerformancePriorityMode}`),this._scene.performancePriority=this._pendingCurrentPerformancePriorityMode,this._pendingCurrentPerformancePriorityMode=void 0},"whenDisabled")};this._disableCancelFunctions.set(e,()=>this._scene.onReadyObservable.removeCallback(e)),this._scene.executeWhenReady(e)}this._engine.snapshotRendering=!1,this._disableRenderingRefCount++}}fixMeshes(e){if(this._engine.isWebGPU){e=e||this._scene.meshes;for(const t of e)t.ignoreCameraMaxZ=!1,t.morphTargetManager&&(t.morphTargetManager.numMaxInfluencers=Math.min(t.morphTargetManager.numTargets,this._options.morphTargetsNumMaxInfluences))}}updateMesh(e,t=!0){if(this._fastSnapshotRenderingEnabled){if(Array.isArray(e)){for(const i of e)(!t||!this._updateInstancedMesh(i))&&i.transferToEffect(i.computeWorldMatrix());return}(!t||!this._updateInstancedMesh(e))&&e.transferToEffect(e.computeWorldMatrix())}}_updateInstancedMesh(e){if(e.hasInstances){if(e.subMeshes){const t=e;for(const i of t.subMeshes)t._updateInstancedBuffers(i,t._getInstancesRenderList(i._id),t._instanceDataStorage.instancesBufferSize,this._engine)}return!0}else if(e.isAnInstance)return!0;return!1}updateMeshesForEffectLayer(e,t=!0){if(!this._engine.isWebGPU)return;const i=e.mainTexture.renderPassId;t?this._onBeforeRenderObserverUpdateLayer=this._scene.onBeforeRenderObservable.add(()=>{this._updateMeshMatricesForRenderPassId(i)}):this._updateMeshMatricesForRenderPassId(i)}dispose(){this._engine.isWebGPU&&(this._scene.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._scene.onBeforeRenderObservable.remove(this._onBeforeRenderObserverUpdateLayer),this._engine.onResizeObservable.remove(this._onResizeObserver))}get _fastSnapshotRenderingEnabled(){return this._engine.snapshotRendering&&this._engine.snapshotRenderingMode===1}_updateMeshMatricesForRenderPassId(e){var i;if(!this._fastSnapshotRenderingEnabled)return;const t=this._scene.getTransformMatrix();for(let s=0;s<this._scene.meshes.length;++s){const r=this._scene.meshes[s];if(r.subMeshes)for(let n=0;n<r.subMeshes.length;++n){const o=r.subMeshes[n]._getDrawWrapper(e),l=o==null?void 0:o.effect;if(l){const c=o.drawContext.buffers.LeftOver,u=(i=l._pipelineContext)==null?void 0:i.uniformBuffer;c&&u&&u.setDataBuffer(c)&&(l.setMatrix("viewProjection",t),l.setMatrix("world",r.computeWorldMatrix()),u.update())}}}}_executeAtFrame(e,t,i="whenEnabled"){const s=()=>{this._engine.frameId>=e&&(this._engine.onEndFrameObservable.remove(r),i==="whenEnabled"?this._enableCancelFunctions.delete(s):this._disableCancelFunctions.delete(s),t())},r=this._engine.onEndFrameObservable.add(s);i==="whenEnabled"?this._enableCancelFunctions.set(s,()=>this._engine.onEndFrameObservable.remove(r)):this._disableCancelFunctions.set(s,()=>this._engine.onEndFrameObservable.remove(r))}_log(e,t){this.showDebugLogs&&de.Log(`[Frame: ${this._engine.frameId}] SnapshotRenderingHelper:${e} - ${t}`)}}function zHe(a){const e=new Array,t=new Array,i=new Array,s=a.add(()=>{const n=e.length;for(let o=0;o<n;o++)Cw(e.shift(),t.shift(),i.shift())});return{scheduler:(n,o,l)=>{e.push(n),t.push(o),i.push(l)},dispose:()=>{a.remove(s)}}}xe.prototype.runCoroutineAsync=function(a){if(!this._coroutineScheduler){const e=zHe(this);this._coroutineScheduler=e.scheduler,this._coroutineSchedulerDispose=e.dispose}return X9(a,this._coroutineScheduler)},xe.prototype.cancelAllCoroutines=function(){this._coroutineSchedulerDispose&&this._coroutineSchedulerDispose(),this._coroutineScheduler=void 0,this._coroutineSchedulerDispose=void 0};const Zxe="equirectangularPanoramaPixelShader",FHe=`#ifdef GL_ES
precision highp float;
#endif
#define M_PI 3.1415926535897932384626433832795
varying vec2 vUV;uniform samplerCube cubeMap;void main(void) {vec2 uv=vUV;float longitude=uv.x*2.*M_PI-M_PI+M_PI/2.;float latitude=(1.-uv.y)*M_PI;vec3 dir=vec3(
- sin( longitude )*sin( latitude ),
cos( latitude ),
- cos( longitude )*sin( latitude )
);normalize( dir );gl_FragColor=textureCube( cubeMap,dir );}`;H.ShadersStore[Zxe]||(H.ShadersStore[Zxe]=FHe);async function kHe(a,e){var n;const t=e.probe??new DL("tempProbe",e.size,a),i=!!e.probe;i||(e.position?t.position=e.position.clone():a.activeCamera&&(t.position=a.activeCamera.position.clone()));const s=e.meshesFilter?a.meshes.filter(e.meshesFilter):a.meshes;(n=t.renderList)==null||n.push(...s),t.refreshRate=Ir.REFRESHRATE_RENDER_ONCE,t.cubeTexture.render();const r=new cve("tempProceduralTexture","equirectangularPanorama",{width:e.size*2,height:e.size},a);return r.setTexture("cubeMap",t.cubeTexture),new Promise((o,l)=>{r.onGeneratedObservable.addOnce(()=>{const c=r.readPixels();if(!c){l(new Error("No Pixel Data found on procedural texture")),r.dispose(),i||t.dispose();return}c.then(u=>{r.dispose(),i||t.dispose(),e.filename?(rL(e.size*2,e.size,u,void 0,"image/png",e.filename),o(null)):o(u)})})})}class UHe{constructor(){this._currentOperation=Promise.resolve()}lockAsync(e,t){t==null||t.throwIfAborted();const i=t?()=>(t.throwIfAborted(),e()):e,s=this._currentOperation.then(i);return this._currentOperation=new Promise(r=>s.then(()=>r(),r)),s}static async LockAsync(e,t,i){if(i==null||i.throwIfAborted(),t.length===0)return await e();const s=new Q9;let r=0;return t.forEach(n=>n.lockAsync(async()=>(r++,r===t.length&&s.resolve(await e()),s.promise),i).catch(o=>s.reject(o))),s.promise}}const Jne="rgbdDecodePixelShader",Kxe=`varying vec2 vUV;uniform sampler2D textureSampler;
#include<helperFunctions>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) 
{gl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0);}`;H.ShadersStore[Jne]||(H.ShadersStore[Jne]=Kxe);const qxe={name:Jne,shader:Kxe},Qxe=Object.freeze(Object.defineProperty({__proto__:null,rgbdDecodePixelShader:qxe},Symbol.toStringTag,{value:"Module"})),$ne="rgbdEncodePixelShader",Jxe=`varying vec2 vUV;uniform sampler2D textureSampler;
#include<helperFunctions>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) 
{gl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb);}`;H.ShadersStore[$ne]||(H.ShadersStore[$ne]=Jxe);const $xe={name:$ne,shader:Jxe},jHe=Object.freeze(Object.defineProperty({__proto__:null,rgbdEncodePixelShader:$xe},Symbol.toStringTag,{value:"Module"})),eae="rgbdDecodePixelShader",ebe=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;
#include<helperFunctions>
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=vec4f(fromRGBD(textureSample(textureSampler,textureSamplerSampler,input.vUV)),1.0);}`;H.ShadersStoreWGSL[eae]||(H.ShadersStoreWGSL[eae]=ebe);const tbe={name:eae,shader:ebe},ibe=Object.freeze(Object.defineProperty({__proto__:null,rgbdDecodePixelShaderWGSL:tbe},Symbol.toStringTag,{value:"Module"})),tae="rgbdEncodePixelShader",sbe=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;
#include<helperFunctions>
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=toRGBD(textureSample(textureSampler,textureSamplerSampler,input.vUV).rgb);}`;H.ShadersStoreWGSL[tae]||(H.ShadersStoreWGSL[tae]=sbe);const rbe={name:tae,shader:sbe},VHe=Object.freeze(Object.defineProperty({__proto__:null,rgbdEncodePixelShaderWGSL:rbe},Symbol.toStringTag,{value:"Module"})),iae="copyTextureToTexturePixelShader",nbe=`uniform float conversion;uniform sampler2D textureSampler;varying vec2 vUV;
#include<helperFunctions>
void main(void) 
{vec4 color=texture2D(textureSampler,vUV);
#ifdef DEPTH_TEXTURE
gl_FragDepth=color.r;
#else
if (conversion==1.) {color=toLinearSpace(color);} else if (conversion==2.) {color=toGammaSpace(color);}
gl_FragColor=color;
#endif
}
`;H.ShadersStore[iae]||(H.ShadersStore[iae]=nbe);const abe={name:iae,shader:nbe},GHe=Object.freeze(Object.defineProperty({__proto__:null,copyTextureToTexturePixelShader:abe},Symbol.toStringTag,{value:"Module"})),sae="copyTextureToTexturePixelShader",obe=`uniform conversion: f32;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;varying vUV: vec2f;
#include<helperFunctions>
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var color: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV);
#ifdef DEPTH_TEXTURE
fragmentOutputs.fragDepth=color.r;
#else
if (uniforms.conversion==1.) {color=toLinearSpaceVec4(color);} else if (uniforms.conversion==2.) {color=toGammaSpace(color);}
fragmentOutputs.color=color;
#endif
}
`;H.ShadersStoreWGSL[sae]||(H.ShadersStoreWGSL[sae]=obe);const lbe={name:sae,shader:obe},WHe=Object.freeze(Object.defineProperty({__proto__:null,copyTextureToTexturePixelShaderWGSL:lbe},Symbol.toStringTag,{value:"Module"}));class HHe{constructor(e=Recast){if(this.bjsRECAST={},this.name="RecastJSPlugin",this._maximumSubStepCount=10,this._timeStep=1/60,this._timeFactor=1,this._worker=null,typeof e=="function"?de.Error("RecastJS is not ready. Please make sure you await Recast() before using the plugin."):this.bjsRECAST=e,!this.isSupported()){de.Error("RecastJS is not available. Please make sure you included the js file.");return}this.setTimeStep(),this._tempVec1=new this.bjsRECAST.Vec3,this._tempVec2=new this.bjsRECAST.Vec3}setWorkerURL(e){return window&&window.Worker?(this._worker=new Worker(e),!0):!1}setTimeStep(e=1/60){this._timeStep=e}getTimeStep(){return this._timeStep}setMaximumSubStepCount(e=10){this._maximumSubStepCount=e}getMaximumSubStepCount(){return this._maximumSubStepCount}set timeFactor(e){this._timeFactor=Math.max(e,0)}get timeFactor(){return this._timeFactor}createNavMesh(e,t,i){this._worker&&!i?de.Warn("A worker is avaible but no completion callback. Defaulting to blocking navmesh creation"):!this._worker&&i&&de.Warn("A completion callback is avaible but no worker. Defaulting to blocking navmesh creation"),this.navMesh=new this.bjsRECAST.NavMesh;let s,r,n;const o=[],l=[];let c=0;for(s=0;s<e.length;s++)if(e[s]){const u=e[s],f=u.getIndices();if(!f)continue;const p=u.getVerticesData(q.PositionKind,!1,!1);if(!p)continue;const m=[],_=u.computeWorldMatrix(!0);if(u.hasThinInstances){const d=u.thinInstanceGetWorldMatrices();for(let h=0;h<d.length;h++){const x=new me;d[h].multiplyToRef(_,x),m.push(x)}}else m.push(_);for(let d=0;d<m.length;d++){const h=m[d];for(r=0;r<f.length;r++)o.push(f[r]+c);const x=P.Zero(),A=P.Zero();for(n=0;n<p.length;n+=3)P.FromArrayToRef(p,n,A),P.TransformCoordinatesToRef(A,h,x),l.push(x.x,x.y,x.z);c+=p.length/3}}if(this._worker&&i)this._worker.postMessage([l,c,o,o.length,t]),this._worker.onmessage=function(u){i(u.data)};else{const u=new this.bjsRECAST.rcConfig;u.cs=t.cs,u.ch=t.ch,u.borderSize=t.borderSize?t.borderSize:0,u.tileSize=t.tileSize?t.tileSize:0,u.walkableSlopeAngle=t.walkableSlopeAngle,u.walkableHeight=t.walkableHeight,u.walkableClimb=t.walkableClimb,u.walkableRadius=t.walkableRadius,u.maxEdgeLen=t.maxEdgeLen,u.maxSimplificationError=t.maxSimplificationError,u.minRegionArea=t.minRegionArea,u.mergeRegionArea=t.mergeRegionArea,u.maxVertsPerPoly=t.maxVertsPerPoly,u.detailSampleDist=t.detailSampleDist,u.detailSampleMaxError=t.detailSampleMaxError,this.navMesh.build(l,c,o,o.length,u)}}createDebugNavMesh(e){let t,i;const s=this.navMesh.getDebugNavMesh(),r=s.getTriangleCount(),n=[],o=[];for(t=0;t<r*3;t++)n.push(t);for(t=0;t<r;t++)for(i=0;i<3;i++){const u=s.getTriangle(t).getPoint(i);o.push(u.x,u.y,u.z)}const l=new Ne("NavMeshDebug",e),c=new wt;return c.indices=n,c.positions=o,c.applyToMesh(l,!1),l}getClosestPoint(e){this._tempVec1.x=e.x,this._tempVec1.y=e.y,this._tempVec1.z=e.z;const t=this.navMesh.getClosestPoint(this._tempVec1);return new P(t.x,t.y,t.z)}getClosestPointToRef(e,t){this._tempVec1.x=e.x,this._tempVec1.y=e.y,this._tempVec1.z=e.z;const i=this.navMesh.getClosestPoint(this._tempVec1);t.set(i.x,i.y,i.z)}getRandomPointAround(e,t){this._tempVec1.x=e.x,this._tempVec1.y=e.y,this._tempVec1.z=e.z;const i=this.navMesh.getRandomPointAround(this._tempVec1,t);return new P(i.x,i.y,i.z)}getRandomPointAroundToRef(e,t,i){this._tempVec1.x=e.x,this._tempVec1.y=e.y,this._tempVec1.z=e.z;const s=this.navMesh.getRandomPointAround(this._tempVec1,t);i.set(s.x,s.y,s.z)}moveAlong(e,t){this._tempVec1.x=e.x,this._tempVec1.y=e.y,this._tempVec1.z=e.z,this._tempVec2.x=t.x,this._tempVec2.y=t.y,this._tempVec2.z=t.z;const i=this.navMesh.moveAlong(this._tempVec1,this._tempVec2);return new P(i.x,i.y,i.z)}moveAlongToRef(e,t,i){this._tempVec1.x=e.x,this._tempVec1.y=e.y,this._tempVec1.z=e.z,this._tempVec2.x=t.x,this._tempVec2.y=t.y,this._tempVec2.z=t.z;const s=this.navMesh.moveAlong(this._tempVec1,this._tempVec2);i.set(s.x,s.y,s.z)}_convertNavPathPoints(e){let t;const i=e.getPointCount(),s=[];for(t=0;t<i;t++){const r=e.getPoint(t);s.push(new P(r.x,r.y,r.z))}return s}computePath(e,t){this._tempVec1.x=e.x,this._tempVec1.y=e.y,this._tempVec1.z=e.z,this._tempVec2.x=t.x,this._tempVec2.y=t.y,this._tempVec2.z=t.z;const i=this.navMesh.computePath(this._tempVec1,this._tempVec2);return this._convertNavPathPoints(i)}computePathSmooth(e,t){this._tempVec1.x=e.x,this._tempVec1.y=e.y,this._tempVec1.z=e.z,this._tempVec2.x=t.x,this._tempVec2.y=t.y,this._tempVec2.z=t.z;const i=this.navMesh.computePathSmooth(this._tempVec1,this._tempVec2);return this._convertNavPathPoints(i)}createCrowd(e,t,i){return new cbe(this,e,t,i)}setDefaultQueryExtent(e){this._tempVec1.x=e.x,this._tempVec1.y=e.y,this._tempVec1.z=e.z,this.navMesh.setDefaultQueryExtent(this._tempVec1)}getDefaultQueryExtent(){const e=this.navMesh.getDefaultQueryExtent();return new P(e.x,e.y,e.z)}buildFromNavmeshData(e){const t=e.length*e.BYTES_PER_ELEMENT,i=this.bjsRECAST._malloc(t),s=new Uint8Array(this.bjsRECAST.HEAPU8.buffer,i,t);s.set(e);const r=new this.bjsRECAST.NavmeshData;r.dataPointer=s.byteOffset,r.size=e.length,this.navMesh=new this.bjsRECAST.NavMesh,this.navMesh.buildFromNavmeshData(r),this.bjsRECAST._free(s.byteOffset)}getNavmeshData(){const e=this.navMesh.getNavmeshData(),t=new Uint8Array(this.bjsRECAST.HEAPU8.buffer,e.dataPointer,e.size),i=new Uint8Array(e.size);return i.set(t),this.navMesh.freeNavmeshData(e),i}getDefaultQueryExtentToRef(e){const t=this.navMesh.getDefaultQueryExtent();e.set(t.x,t.y,t.z)}dispose(){}addCylinderObstacle(e,t,i){return this._tempVec1.x=e.x,this._tempVec1.y=e.y,this._tempVec1.z=e.z,this.navMesh.addCylinderObstacle(this._tempVec1,t,i)}addBoxObstacle(e,t,i){return this._tempVec1.x=e.x,this._tempVec1.y=e.y,this._tempVec1.z=e.z,this._tempVec2.x=t.x,this._tempVec2.y=t.y,this._tempVec2.z=t.z,this.navMesh.addBoxObstacle(this._tempVec1,this._tempVec2,i)}removeObstacle(e){this.navMesh.removeObstacle(e)}isSupported(){return this.bjsRECAST!==void 0}getRandomSeed(){return this.bjsRECAST._getRandomSeed()}setRandomSeed(e){this.bjsRECAST._setRandomSeed(e)}}class cbe{constructor(e,t,i,s){this.recastCrowd={},this.transforms=new Array,this.agents=new Array,this.reachRadii=new Array,this._agentDestinationArmed=new Array,this._agentDestination=new Array,this._onBeforeAnimationsObserver=null,this.onReachTargetObservable=new xe,this.bjsRECASTPlugin=e,this.recastCrowd=new this.bjsRECASTPlugin.bjsRECAST.Crowd(t,i,this.bjsRECASTPlugin.navMesh.getNavMesh()),this._scene=s,this._onBeforeAnimationsObserver=s.onBeforeAnimationsObservable.add(()=>{this.update(s.getEngine().getDeltaTime()*.001*e.timeFactor)})}addAgent(e,t,i){const s=new this.bjsRECASTPlugin.bjsRECAST.dtCrowdAgentParams;s.radius=t.radius,s.height=t.height,s.maxAcceleration=t.maxAcceleration,s.maxSpeed=t.maxSpeed,s.collisionQueryRange=t.collisionQueryRange,s.pathOptimizationRange=t.pathOptimizationRange,s.separationWeight=t.separationWeight,s.updateFlags=7,s.obstacleAvoidanceType=0,s.queryFilterType=0,s.userData=0;const r=this.recastCrowd.addAgent(new this.bjsRECASTPlugin.bjsRECAST.Vec3(e.x,e.y,e.z),s);return this.transforms.push(i),this.agents.push(r),this.reachRadii.push(t.reachRadius?t.reachRadius:t.radius),this._agentDestinationArmed.push(!1),this._agentDestination.push(new P(0,0,0)),r}getAgentPosition(e){const t=this.recastCrowd.getAgentPosition(e);return new P(t.x,t.y,t.z)}getAgentPositionToRef(e,t){const i=this.recastCrowd.getAgentPosition(e);t.set(i.x,i.y,i.z)}getAgentVelocity(e){const t=this.recastCrowd.getAgentVelocity(e);return new P(t.x,t.y,t.z)}getAgentVelocityToRef(e,t){const i=this.recastCrowd.getAgentVelocity(e);t.set(i.x,i.y,i.z)}getAgentNextTargetPath(e){const t=this.recastCrowd.getAgentNextTargetPath(e);return new P(t.x,t.y,t.z)}getAgentNextTargetPathToRef(e,t){const i=this.recastCrowd.getAgentNextTargetPath(e);t.set(i.x,i.y,i.z)}getAgentState(e){return this.recastCrowd.getAgentState(e)}overOffmeshConnection(e){return this.recastCrowd.overOffmeshConnection(e)}agentGoto(e,t){this.recastCrowd.agentGoto(e,new this.bjsRECASTPlugin.bjsRECAST.Vec3(t.x,t.y,t.z));const i=this.agents.indexOf(e);i>-1&&(this._agentDestinationArmed[i]=!0,this._agentDestination[i].set(t.x,t.y,t.z))}agentTeleport(e,t){this.recastCrowd.agentTeleport(e,new this.bjsRECASTPlugin.bjsRECAST.Vec3(t.x,t.y,t.z))}updateAgentParameters(e,t){const i=this.recastCrowd.getAgentParameters(e);t.radius!==void 0&&(i.radius=t.radius),t.height!==void 0&&(i.height=t.height),t.maxAcceleration!==void 0&&(i.maxAcceleration=t.maxAcceleration),t.maxSpeed!==void 0&&(i.maxSpeed=t.maxSpeed),t.collisionQueryRange!==void 0&&(i.collisionQueryRange=t.collisionQueryRange),t.pathOptimizationRange!==void 0&&(i.pathOptimizationRange=t.pathOptimizationRange),t.separationWeight!==void 0&&(i.separationWeight=t.separationWeight),this.recastCrowd.setAgentParameters(e,i)}removeAgent(e){this.recastCrowd.removeAgent(e);const t=this.agents.indexOf(e);t>-1&&(this.agents.splice(t,1),this.transforms.splice(t,1),this.reachRadii.splice(t,1),this._agentDestinationArmed.splice(t,1),this._agentDestination.splice(t,1))}getAgents(){return this.agents}update(e){if(this.bjsRECASTPlugin.navMesh.update(),e<=Ii)return;const t=this.bjsRECASTPlugin.getTimeStep(),i=this.bjsRECASTPlugin.getMaximumSubStepCount();if(t<=Ii)this.recastCrowd.update(e);else{let s=Math.floor(e/t);i&&s>i&&(s=i),s<1&&(s=1);const r=e/s;for(let n=0;n<s;n++)this.recastCrowd.update(r)}for(let s=0;s<this.agents.length;s++){const r=this.agents[s],n=this.getAgentPosition(r);if(this.transforms[s].position=n,this._agentDestinationArmed[s]){const o=n.x-this._agentDestination[s].x,l=n.z-this._agentDestination[s].z,c=this.reachRadii[s],u=this._agentDestination[s].y-this.reachRadii[s],f=this._agentDestination[s].y+this.reachRadii[s],p=o*o+l*l;n.y>u&&n.y<f&&p<c*c&&(this._agentDestinationArmed[s]=!1,this.onReachTargetObservable.notifyObservers({agentIndex:r,destination:this._agentDestination[s]}))}}}setDefaultQueryExtent(e){const t=new this.bjsRECASTPlugin.bjsRECAST.Vec3(e.x,e.y,e.z);this.recastCrowd.setDefaultQueryExtent(t)}getDefaultQueryExtent(){const e=this.recastCrowd.getDefaultQueryExtent();return new P(e.x,e.y,e.z)}getDefaultQueryExtentToRef(e){const t=this.recastCrowd.getDefaultQueryExtent();e.set(t.x,t.y,t.z)}getCorners(e){let t;const i=this.recastCrowd.getCorners(e),s=i.getPointCount(),r=[];for(t=0;t<s;t++){const n=i.getPoint(t);r.push(new P(n.x,n.y,n.z))}return r}dispose(){this.recastCrowd.destroy(),this._scene.onBeforeAnimationsObservable.remove(this._onBeforeAnimationsObserver),this._onBeforeAnimationsObserver=null,this.onReachTargetObservable.clear()}}dt.OfflineProviderFactory=(a,e,t=!1)=>new t2(a,e,t);class t2{get enableSceneOffline(){return this._enableSceneOffline}get enableTexturesOffline(){return this._enableTexturesOffline}constructor(e,t,i=!1){this._idbFactory=typeof indexedDB<"u"?indexedDB:void 0,this._currentSceneUrl=t2._ReturnFullUrlLocation(e),this._db=null,this._enableSceneOffline=!1,this._enableTexturesOffline=!1,this._manifestVersionFound=0,this._mustUpdateRessources=!1,this._hasReachedQuota=!1,t2.IDBStorageEnabled?i?(this._enableSceneOffline=!0,this._enableTexturesOffline=!0,this._manifestVersionFound=1,Le.SetImmediate(()=>{t(!0)})):this._checkManifestFile(t):t(!0)}_checkManifestFile(e){const t=()=>{this._enableSceneOffline=!1,this._enableTexturesOffline=!1,e(!1)},i=()=>{try{if(typeof URL=="function"&&this._currentSceneUrl.indexOf("http")===0){const o=new URL(this._currentSceneUrl);return o.pathname+=".manifest",o.toString()}}catch{}return`${this._currentSceneUrl}.manifest`};let s=!1,r=i();const n=new ha;navigator.onLine&&(s=!0,r=r+(r.match(/\?/)==null?"?":"&")+Date.now()),n.open("GET",r),n.addEventListener("load",()=>{if(n.status===200||t2._ValidateXHRData(n,1))try{const o=JSON.parse(n.response);this._enableSceneOffline=o.enableSceneOffline,this._enableTexturesOffline=o.enableTexturesOffline&&t2._IsUASupportingBlobStorage,o.version&&!isNaN(parseInt(o.version))&&(this._manifestVersionFound=o.version),e(!0)}catch{t()}else t()},!1),n.addEventListener("error",()=>{if(s){s=!1;const o=i();n.open("GET",o),n.send()}else t()},!1);try{n.send()}catch{de.Error("Error on XHR send request."),e(!1)}}open(e,t){const i=()=>{this._isSupported=!1,t&&t()};if(!this._idbFactory||!(this._enableSceneOffline||this._enableTexturesOffline))this._isSupported=!1,t&&t();else if(this._db)e&&e();else{this._hasReachedQuota=!1,this._isSupported=!0;const s=this._idbFactory.open("babylonjs",1);s.onerror=()=>{i()},s.onblocked=()=>{de.Error("IDB request blocked. Please reload the page."),i()},s.onsuccess=()=>{this._db=s.result,e()},s.onupgradeneeded=r=>{if(this._db=r.target.result,this._db)try{this._db.createObjectStore("scenes",{keyPath:"sceneUrl"}),this._db.createObjectStore("versions",{keyPath:"sceneUrl"}),this._db.createObjectStore("textures",{keyPath:"textureUrl"})}catch(n){de.Error("Error while creating object stores. Exception: "+n.message),i()}}}}loadImage(e,t){const i=t2._ReturnFullUrlLocation(e),s=()=>{!this._hasReachedQuota&&this._db!==null?this._saveImageIntoDBAsync(i,t):t.src=e};this._mustUpdateRessources?s():this._loadImageFromDBAsync(i,t,s)}_loadImageFromDBAsync(e,t,i){if(this._isSupported&&this._db!==null){let s;const r=this._db.transaction(["textures"]);r.onabort=()=>{t.src=e},r.oncomplete=()=>{let o;s&&typeof URL=="function"?(o=URL.createObjectURL(s.data),t.onerror=()=>{de.Error("Error loading image from blob URL: "+o+" switching back to web url: "+e),t.src=e},t.src=o):i()};const n=r.objectStore("textures").get(e);n.onsuccess=o=>{s=o.target.result},n.onerror=()=>{de.Error("Error loading texture "+e+" from DB."),t.src=e}}else de.Error("Error: IndexedDB not supported by your browser or BabylonJS Database is not open."),t.src=e}_saveImageIntoDBAsync(e,t){let i;if(this._isSupported){const s=()=>{let r;if(i&&typeof URL=="function")try{r=URL.createObjectURL(i)}catch{r=URL.createObjectURL(i)}r&&(t.src=r)};if(t2._IsUASupportingBlobStorage){const r=new ha;r.open("GET",e),r.responseType="blob",r.addEventListener("load",()=>{if(r.status===200&&this._db){i=r.response;const n=this._db.transaction(["textures"],"readwrite");n.onabort=l=>{try{const u=l.target.error;u&&u.name==="QuotaExceededError"&&(this._hasReachedQuota=!0)}catch{}s()},n.oncomplete=()=>{s()};const o={textureUrl:e,data:i};try{const l=n.objectStore("textures").put(o);l.onsuccess=()=>{},l.onerror=()=>{s()}}catch(l){l.code===25&&(t2._IsUASupportingBlobStorage=!1,this._enableTexturesOffline=!1),t.src=e}}else t.src=e},!1),r.addEventListener("error",()=>{de.Error("Error in XHR request in BABYLON.Database."),t.src=e},!1),r.send()}else t.src=e}else de.Error("Error: IndexedDB not supported by your browser or Babylon.js database is not open."),t.src=e}_checkVersionFromDB(e,t){const i=()=>{this._saveVersionIntoDBAsync(e,t)};this._loadVersionFromDBAsync(e,t,i)}_loadVersionFromDBAsync(e,t,i){if(this._isSupported&&this._db){let s;try{const r=this._db.transaction(["versions"]);r.oncomplete=()=>{s?this._manifestVersionFound!==s.data?(this._mustUpdateRessources=!0,i()):t(s.data):(this._mustUpdateRessources=!0,i())},r.onabort=()=>{t(-1)};const n=r.objectStore("versions").get(e);n.onsuccess=o=>{s=o.target.result},n.onerror=()=>{de.Error("Error loading version for scene "+e+" from DB."),t(-1)}}catch(r){de.Error("Error while accessing 'versions' object store (READ OP). Exception: "+r.message),t(-1)}}else de.Error("Error: IndexedDB not supported by your browser or Babylon.js database is not open."),t(-1)}_saveVersionIntoDBAsync(e,t){if(this._isSupported&&!this._hasReachedQuota&&this._db)try{const i=this._db.transaction(["versions"],"readwrite");i.onabort=n=>{try{const o=n.target.error;o&&o.name==="QuotaExceededError"&&(this._hasReachedQuota=!0)}catch{}t(-1)},i.oncomplete=()=>{t(this._manifestVersionFound)};const s={sceneUrl:e,data:this._manifestVersionFound},r=i.objectStore("versions").put(s);r.onsuccess=()=>{},r.onerror=()=>{de.Error("Error in DB add version request in BABYLON.Database.")}}catch(i){de.Error("Error while accessing 'versions' object store (WRITE OP). Exception: "+i.message),t(-1)}else t(-1)}loadFile(e,t,i,s,r){const n=t2._ReturnFullUrlLocation(e),o=()=>{this._saveFileAsync(n,t,i,r,s)};this._checkVersionFromDB(n,l=>{l!==-1?this._mustUpdateRessources?this._saveFileAsync(n,t,i,r,s):this._loadFileAsync(n,t,o,i):s&&s()})}_loadFileAsync(e,t,i,s){if(this._isSupported&&this._db){let r;e.indexOf(".babylon")!==-1?r="scenes":r="textures";let n;const o=this._db.transaction([r]);o.oncomplete=()=>{var c;if(n){if(s){const u=((c=n.data)==null?void 0:c.byteLength)||0;s({total:u,loaded:u,lengthComputable:!0})}t(n.data)}else i()},o.onabort=()=>{i()};const l=o.objectStore(r).get(e);l.onsuccess=c=>{n=c.target.result},l.onerror=()=>{de.Error("Error loading file "+e+" from DB."),i()}}else de.Error("Error: IndexedDB not supported by your browser or BabylonJS Database is not open."),t()}_saveFileAsync(e,t,i,s,r){if(this._isSupported){let n;e.indexOf(".babylon")!==-1?n="scenes":n="textures";const o=new ha;let l;o.open("GET",e+(e.match(/\?/)==null?"?":"&")+Date.now()),s&&(o.responseType="arraybuffer"),i&&(o.onprogress=i),o.addEventListener("load",()=>{if(o.status===200||o.status<400&&t2._ValidateXHRData(o,s?6:1))if(l=s?o.response:o.responseText,!this._hasReachedQuota&&this._db){const c=this._db.transaction([n],"readwrite");c.onabort=f=>{try{const p=f.target.error;p&&p.name==="QuotaExceededError"&&(this._hasReachedQuota=!0)}catch{}t(l)},c.oncomplete=()=>{t(l)};let u;n==="scenes"?u={sceneUrl:e,data:l,version:this._manifestVersionFound}:u={textureUrl:e,data:l};try{const f=c.objectStore(n).put(u);f.onsuccess=()=>{},f.onerror=()=>{de.Error("Error in DB add file request in BABYLON.Database.")}}catch{t(l)}}else t(l);else o.status>=400&&r?r(o):t()},!1),o.addEventListener("error",()=>{de.Error("error on XHR request."),r&&r()},!1),o.send()}else de.Error("Error: IndexedDB not supported by your browser or Babylon.js database is not open."),r&&r()}static _ValidateXHRData(e,t=7){try{if(t&1){if(e.responseText&&e.responseText.length>0)return!0;if(t===1)return!1}if(t&2){const i=WB(e.response);if(i.width&&i.height&&i.width>0&&i.height>0)return!0;if(t===2)return!1}if(t&4){const i=new Uint8Array(e.response,0,3);return i[0]===68&&i[1]===68&&i[2]===83}}catch{}return!1}}t2._IsUASupportingBlobStorage=!0,t2.IDBStorageEnabled=!1,t2._ParseURL=a=>{const e=document.createElement("a");e.href=a;const t=a.substring(0,a.lastIndexOf("#")),i=a.substring(t.lastIndexOf("/")+1,a.length);return a.substring(0,a.indexOf(i,0))},t2._ReturnFullUrlLocation=a=>a.indexOf("http:/")===-1&&a.indexOf("https:/")===-1&&typeof window<"u"?t2._ParseURL(window.location.href)+a:a;class ube{_isUbo(e){return e.addUniform!==void 0}constructor(e){this._isUbo(e)?(this.setMatrix3x3=e.updateMatrix3x3.bind(e),this.setMatrix2x2=e.updateMatrix2x2.bind(e),this.setFloat=e.updateFloat.bind(e),this.setFloat2=e.updateFloat2.bind(e),this.setFloat3=e.updateFloat3.bind(e),this.setFloat4=e.updateFloat4.bind(e),this.setFloatArray=e.updateFloatArray.bind(e),this.setArray=e.updateArray.bind(e),this.setIntArray=e.updateIntArray.bind(e),this.setMatrix=e.updateMatrix.bind(e),this.setMatrices=e.updateMatrices.bind(e),this.setVector3=e.updateVector3.bind(e),this.setVector4=e.updateVector4.bind(e),this.setColor3=e.updateColor3.bind(e),this.setColor4=e.updateColor4.bind(e),this.setDirectColor4=e.updateDirectColor4.bind(e),this.setInt=e.updateInt.bind(e),this.setInt2=e.updateInt2.bind(e),this.setInt3=e.updateInt3.bind(e),this.setInt4=e.updateInt4.bind(e)):(this.setMatrix3x3=e.setMatrix3x3.bind(e),this.setMatrix2x2=e.setMatrix2x2.bind(e),this.setFloat=e.setFloat.bind(e),this.setFloat2=e.setFloat2.bind(e),this.setFloat3=e.setFloat3.bind(e),this.setFloat4=e.setFloat4.bind(e),this.setFloatArray=e.setFloatArray.bind(e),this.setArray=e.setArray.bind(e),this.setIntArray=e.setIntArray.bind(e),this.setMatrix=e.setMatrix.bind(e),this.setMatrices=e.setMatrices.bind(e),this.setVector3=e.setVector3.bind(e),this.setVector4=e.setVector4.bind(e),this.setColor3=e.setColor3.bind(e),this.setColor4=e.setColor4.bind(e),this.setDirectColor4=e.setDirectColor4.bind(e),this.setInt=e.setInt.bind(e),this.setInt2=e.setInt2.bind(e),this.setInt3=e.setInt3.bind(e),this.setInt4=e.setInt4.bind(e))}}const hbe="gpuUpdateParticlesPixelShader",YHe=`#version 300 es
void main() {discard;}
`;H.ShadersStore[hbe]||(H.ShadersStore[hbe]=YHe);const dbe="gpuUpdateParticlesVertexShader",XHe=`#version 300 es
#define PI 3.14159
uniform float currentCount;uniform float timeDelta;uniform float stopFactor;
#ifndef LOCAL
uniform mat4 emitterWM;
#endif
uniform vec2 lifeTime;uniform vec2 emitPower;uniform vec2 sizeRange;uniform vec4 scaleRange;
#ifndef COLORGRADIENTS
uniform vec4 color1;uniform vec4 color2;
#endif
uniform vec3 gravity;uniform sampler2D randomSampler;uniform sampler2D randomSampler2;uniform vec4 angleRange;
#ifdef BOXEMITTER
uniform vec3 direction1;uniform vec3 direction2;uniform vec3 minEmitBox;uniform vec3 maxEmitBox;
#endif
#ifdef POINTEMITTER
uniform vec3 direction1;uniform vec3 direction2;
#endif
#ifdef HEMISPHERICEMITTER
uniform float radius;uniform float radiusRange;uniform float directionRandomizer;
#endif
#ifdef SPHEREEMITTER
uniform float radius;uniform float radiusRange;
#ifdef DIRECTEDSPHEREEMITTER
uniform vec3 direction1;uniform vec3 direction2;
#else
uniform float directionRandomizer;
#endif
#endif
#ifdef CYLINDEREMITTER
uniform float radius;uniform float height;uniform float radiusRange;
#ifdef DIRECTEDCYLINDEREMITTER
uniform vec3 direction1;uniform vec3 direction2;
#else
uniform float directionRandomizer;
#endif
#endif
#ifdef CONEEMITTER
uniform vec2 radius;uniform float coneAngle;uniform vec2 height;
#ifdef DIRECTEDCONEEMITTER
uniform vec3 direction1;uniform vec3 direction2;
#else
uniform float directionRandomizer;
#endif
#endif
in vec3 position;
#ifdef CUSTOMEMITTER
in vec3 initialPosition;
#endif
in float age;in float life;in vec4 seed;in vec3 size;
#ifndef COLORGRADIENTS
in vec4 color;
#endif
in vec3 direction;
#ifndef BILLBOARD
in vec3 initialDirection;
#endif
#ifdef ANGULARSPEEDGRADIENTS
in float angle;
#else
in vec2 angle;
#endif
#ifdef ANIMATESHEET
in float cellIndex;
#ifdef ANIMATESHEETRANDOMSTART
in float cellStartOffset;
#endif
#endif
#ifdef NOISE
in vec3 noiseCoordinates1;in vec3 noiseCoordinates2;
#endif
out vec3 outPosition;
#ifdef CUSTOMEMITTER
out vec3 outInitialPosition;
#endif
out float outAge;out float outLife;out vec4 outSeed;out vec3 outSize;
#ifndef COLORGRADIENTS
out vec4 outColor;
#endif
out vec3 outDirection;
#ifndef BILLBOARD
out vec3 outInitialDirection;
#endif
#ifdef ANGULARSPEEDGRADIENTS
out float outAngle;
#else
out vec2 outAngle;
#endif
#ifdef ANIMATESHEET
out float outCellIndex;
#ifdef ANIMATESHEETRANDOMSTART
out float outCellStartOffset;
#endif
#endif
#ifdef NOISE
out vec3 outNoiseCoordinates1;out vec3 outNoiseCoordinates2;
#endif
#ifdef SIZEGRADIENTS
uniform sampler2D sizeGradientSampler;
#endif 
#ifdef ANGULARSPEEDGRADIENTS
uniform sampler2D angularSpeedGradientSampler;
#endif 
#ifdef VELOCITYGRADIENTS
uniform sampler2D velocityGradientSampler;
#endif
#ifdef LIMITVELOCITYGRADIENTS
uniform sampler2D limitVelocityGradientSampler;uniform float limitVelocityDamping;
#endif
#ifdef DRAGGRADIENTS
uniform sampler2D dragGradientSampler;
#endif
#ifdef NOISE
uniform vec3 noiseStrength;uniform sampler2D noiseSampler;
#endif
#ifdef ANIMATESHEET
uniform vec4 cellInfos;
#endif
vec3 getRandomVec3(float offset) {return texture(randomSampler2,vec2(float(gl_VertexID)*offset/currentCount,0)).rgb;}
vec4 getRandomVec4(float offset) {return texture(randomSampler,vec2(float(gl_VertexID)*offset/currentCount,0));}
void main() {float newAge=age+timeDelta; 
if (newAge>=life && stopFactor != 0.) {vec3 newPosition;vec3 newDirection;vec4 randoms=getRandomVec4(seed.x);outLife=lifeTime.x+(lifeTime.y-lifeTime.x)*randoms.r;outAge=newAge-life;outSeed=seed;
#ifdef SIZEGRADIENTS 
outSize.x=texture(sizeGradientSampler,vec2(0,0)).r;
#else
outSize.x=sizeRange.x+(sizeRange.y-sizeRange.x)*randoms.g;
#endif
outSize.y=scaleRange.x+(scaleRange.y-scaleRange.x)*randoms.b;outSize.z=scaleRange.z+(scaleRange.w-scaleRange.z)*randoms.a; 
#ifndef COLORGRADIENTS
outColor=color1+(color2-color1)*randoms.b;
#endif
#ifndef ANGULARSPEEDGRADIENTS 
outAngle.y=angleRange.x+(angleRange.y-angleRange.x)*randoms.a;outAngle.x=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;
#else
outAngle=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;
#endif 
#ifdef POINTEMITTER
vec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);newPosition=vec3(0,0,0);newDirection=direction1+(direction2-direction1)*randoms3;
#elif defined(BOXEMITTER)
vec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);newPosition=minEmitBox+(maxEmitBox-minEmitBox)*randoms2;newDirection=direction1+(direction2-direction1)*randoms3; 
#elif defined(HEMISPHERICEMITTER)
vec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);float phi=2.0*PI*randoms2.x;float theta=acos(2.0*randoms2.y-1.0);float randX=cos(phi)*sin(theta);float randY=cos(theta);float randZ=sin(phi)*sin(theta);newPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,abs(randY),randZ);newDirection=newPosition+directionRandomizer*randoms3; 
#elif defined(SPHEREEMITTER)
vec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);float phi=2.0*PI*randoms2.x;float theta=acos(2.0*randoms2.y-1.0);float randX=cos(phi)*sin(theta);float randY=cos(theta);float randZ=sin(phi)*sin(theta);newPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,randY,randZ);
#ifdef DIRECTEDSPHEREEMITTER
newDirection=normalize(direction1+(direction2-direction1)*randoms3);
#else
newDirection=normalize(newPosition+directionRandomizer*randoms3);
#endif
#elif defined(CYLINDEREMITTER)
vec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);float yPos=(randoms2.x-0.5)*height;float angle=randoms2.y*PI*2.;float inverseRadiusRangeSquared=((1.-radiusRange)*(1.-radiusRange));float positionRadius=radius*sqrt(inverseRadiusRangeSquared+(randoms2.z*(1.-inverseRadiusRangeSquared)));float xPos=positionRadius*cos(angle);float zPos=positionRadius*sin(angle);newPosition=vec3(xPos,yPos,zPos);
#ifdef DIRECTEDCYLINDEREMITTER
newDirection=direction1+(direction2-direction1)*randoms3;
#else
angle=angle+((randoms3.x-0.5)*PI)*directionRandomizer;newDirection=vec3(cos(angle),(randoms3.y-0.5)*directionRandomizer,sin(angle));newDirection=normalize(newDirection);
#endif
#elif defined(CONEEMITTER)
vec3 randoms2=getRandomVec3(seed.y);float s=2.0*PI*randoms2.x;
#ifdef CONEEMITTERSPAWNPOINT
float h=0.0001;
#else
float h=randoms2.y*height.y;h=1.-h*h; 
#endif
float lRadius=radius.x-radius.x*randoms2.z*radius.y;lRadius=lRadius*h;float randX=lRadius*sin(s);float randZ=lRadius*cos(s);float randY=h *height.x;newPosition=vec3(randX,randY,randZ); 
vec3 randoms3=getRandomVec3(seed.z);
#ifdef DIRECTEDCONEEMITTER
newDirection=direction1+(direction2-direction1)*randoms3;
#else
if (abs(cos(coneAngle))==1.0) {newDirection=vec3(0.,1.0,0.);} else {newDirection=normalize(newPosition+directionRandomizer*randoms3); }
#endif
#elif defined(CUSTOMEMITTER)
newPosition=initialPosition;outInitialPosition=initialPosition;
#else 
newPosition=vec3(0.,0.,0.);newDirection=2.0*(getRandomVec3(seed.w)-vec3(0.5,0.5,0.5));
#endif
float power=emitPower.x+(emitPower.y-emitPower.x)*randoms.a;
#ifdef LOCAL
outPosition=newPosition;
#else
outPosition=(emitterWM*vec4(newPosition,1.)).xyz;
#endif
#ifdef CUSTOMEMITTER
outDirection=direction;
#ifndef BILLBOARD 
outInitialDirection=direction;
#endif
#else
#ifdef LOCAL
vec3 initial=newDirection;
#else 
vec3 initial=(emitterWM*vec4(newDirection,0.)).xyz;
#endif
outDirection=initial*power;
#ifndef BILLBOARD 
outInitialDirection=initial;
#endif
#endif
#ifdef ANIMATESHEET 
outCellIndex=cellInfos.x;
#ifdef ANIMATESHEETRANDOMSTART
outCellStartOffset=randoms.a*outLife;
#endif 
#endif
#ifdef NOISE
outNoiseCoordinates1=noiseCoordinates1;outNoiseCoordinates2=noiseCoordinates2;
#endif
} else {float directionScale=timeDelta;outAge=newAge;float ageGradient=newAge/life;
#ifdef VELOCITYGRADIENTS
directionScale*=texture(velocityGradientSampler,vec2(ageGradient,0)).r;
#endif
#ifdef DRAGGRADIENTS
directionScale*=1.0-texture(dragGradientSampler,vec2(ageGradient,0)).r;
#endif
#if defined(CUSTOMEMITTER)
outPosition=position+(direction-position)*ageGradient; 
outInitialPosition=initialPosition;
#else
outPosition=position+direction*directionScale;
#endif
outLife=life;outSeed=seed;
#ifndef COLORGRADIENTS 
outColor=color;
#endif
#ifdef SIZEGRADIENTS
outSize.x=texture(sizeGradientSampler,vec2(ageGradient,0)).r;outSize.yz=size.yz;
#else
outSize=size;
#endif 
#ifndef BILLBOARD 
outInitialDirection=initialDirection;
#endif
#ifdef CUSTOMEMITTER
outDirection=direction;
#else
vec3 updatedDirection=direction+gravity*timeDelta;
#ifdef LIMITVELOCITYGRADIENTS
float limitVelocity=texture(limitVelocityGradientSampler,vec2(ageGradient,0)).r;float currentVelocity=length(updatedDirection);if (currentVelocity>limitVelocity) {updatedDirection=updatedDirection*limitVelocityDamping;}
#endif
outDirection=updatedDirection;
#ifdef NOISE
float fetchedR=texture(noiseSampler,vec2(noiseCoordinates1.x,noiseCoordinates1.y)*vec2(0.5)+vec2(0.5)).r;float fetchedG=texture(noiseSampler,vec2(noiseCoordinates1.z,noiseCoordinates2.x)*vec2(0.5)+vec2(0.5)).r;float fetchedB=texture(noiseSampler,vec2(noiseCoordinates2.y,noiseCoordinates2.z)*vec2(0.5)+vec2(0.5)).r;vec3 force=vec3(2.*fetchedR-1.,2.*fetchedG-1.,2.*fetchedB-1.)*noiseStrength;outDirection=outDirection+force*timeDelta;outNoiseCoordinates1=noiseCoordinates1;outNoiseCoordinates2=noiseCoordinates2;
#endif 
#endif 
#ifdef ANGULARSPEEDGRADIENTS
float angularSpeed=texture(angularSpeedGradientSampler,vec2(ageGradient,0)).r;outAngle=angle+angularSpeed*timeDelta;
#else
outAngle=vec2(angle.x+angle.y*timeDelta,angle.y);
#endif
#ifdef ANIMATESHEET 
float offsetAge=outAge;float dist=cellInfos.y-cellInfos.x;
#ifdef ANIMATESHEETRANDOMSTART
outCellStartOffset=cellStartOffset;offsetAge+=cellStartOffset;
#else
float cellStartOffset=0.;
#endif 
float ratio=0.;if (cellInfos.w==1.0) {ratio=clamp(mod(cellStartOffset+cellInfos.z*offsetAge,life)/life,0.,1.0);}
else {ratio=clamp(cellStartOffset+cellInfos.z*offsetAge/life,0.,1.0);}
outCellIndex=float(int(cellInfos.x+ratio*dist));
#endif
}}`;H.ShadersStore[dbe]||(H.ShadersStore[dbe]=XHe);class fbe{constructor(e,t){this._renderVAO=[],this._updateVAO=[],this.alignDataInBuffer=!1,this._parent=e,this._engine=t,this._updateEffectOptions={attributes:["position","initialPosition","age","life","seed","size","color","direction","initialDirection","angle","cellIndex","cellStartOffset","noiseCoordinates1","noiseCoordinates2"],uniformsNames:["currentCount","timeDelta","emitterWM","lifeTime","color1","color2","sizeRange","scaleRange","gravity","emitPower","direction1","direction2","minEmitBox","maxEmitBox","radius","directionRandomizer","height","coneAngle","stopFactor","angleRange","radiusRange","cellInfos","noiseStrength","limitVelocityDamping"],uniformBuffersNames:[],samplers:["randomSampler","randomSampler2","sizeGradientSampler","angularSpeedGradientSampler","velocityGradientSampler","limitVelocityGradientSampler","noiseSampler","dragGradientSampler"],defines:"",fallbacks:null,onCompiled:null,onError:null,indexParameters:null,maxSimultaneousLights:0,transformFeedbackVaryings:[]}}contextLost(){this._updateEffect=void 0,this._renderVAO.length=0,this._updateVAO.length=0}isUpdateBufferCreated(){return!!this._updateEffect}isUpdateBufferReady(){var e;return((e=this._updateEffect)==null?void 0:e.isReady())??!1}createUpdateBuffer(e){return this._updateEffectOptions.transformFeedbackVaryings=["outPosition"],this._updateEffectOptions.transformFeedbackVaryings.push("outAge"),this._updateEffectOptions.transformFeedbackVaryings.push("outSize"),this._updateEffectOptions.transformFeedbackVaryings.push("outLife"),this._updateEffectOptions.transformFeedbackVaryings.push("outSeed"),this._updateEffectOptions.transformFeedbackVaryings.push("outDirection"),this._parent.particleEmitterType instanceof iM&&this._updateEffectOptions.transformFeedbackVaryings.push("outInitialPosition"),this._parent._colorGradientsTexture||this._updateEffectOptions.transformFeedbackVaryings.push("outColor"),this._parent._isBillboardBased||this._updateEffectOptions.transformFeedbackVaryings.push("outInitialDirection"),this._parent.noiseTexture&&(this._updateEffectOptions.transformFeedbackVaryings.push("outNoiseCoordinates1"),this._updateEffectOptions.transformFeedbackVaryings.push("outNoiseCoordinates2")),this._updateEffectOptions.transformFeedbackVaryings.push("outAngle"),this._parent.isAnimationSheetEnabled&&(this._updateEffectOptions.transformFeedbackVaryings.push("outCellIndex"),this._parent.spriteRandomStartCell&&this._updateEffectOptions.transformFeedbackVaryings.push("outCellStartOffset")),this._updateEffectOptions.defines=e,this._updateEffect=this._engine.createEffect("gpuUpdateParticles",this._updateEffectOptions,this._engine),new ube(this._updateEffect)}createVertexBuffers(e,t){this._updateVAO.push(this._createUpdateVAO(e)),this._renderVAO.push(this._engine.recordVertexArrayObject(t,null,this._parent._getWrapper(this._parent.blendMode).effect)),this._engine.bindArrayBuffer(null),this._renderVertexBuffers=t}createParticleBuffer(e){return e}bindDrawBuffers(e,t,i){i?this._engine.bindBuffers(this._renderVertexBuffers,i,t):this._engine.bindVertexArrayObject(this._renderVAO[e],null)}preUpdateParticleBuffer(){const e=this._engine;if(this._engine.enableEffect(this._updateEffect),!e.setState)throw new Error("GPU particles cannot work without a full Engine. ThinEngine is not supported")}updateParticleBuffer(e,t,i){this._updateEffect.setTexture("randomSampler",this._parent._randomTexture),this._updateEffect.setTexture("randomSampler2",this._parent._randomTexture2),this._parent._sizeGradientsTexture&&this._updateEffect.setTexture("sizeGradientSampler",this._parent._sizeGradientsTexture),this._parent._angularSpeedGradientsTexture&&this._updateEffect.setTexture("angularSpeedGradientSampler",this._parent._angularSpeedGradientsTexture),this._parent._velocityGradientsTexture&&this._updateEffect.setTexture("velocityGradientSampler",this._parent._velocityGradientsTexture),this._parent._limitVelocityGradientsTexture&&this._updateEffect.setTexture("limitVelocityGradientSampler",this._parent._limitVelocityGradientsTexture),this._parent._dragGradientsTexture&&this._updateEffect.setTexture("dragGradientSampler",this._parent._dragGradientsTexture),this._parent.noiseTexture&&this._updateEffect.setTexture("noiseSampler",this._parent.noiseTexture),this._engine.bindVertexArrayObject(this._updateVAO[e],null);const s=this._engine;s.bindTransformFeedbackBuffer(t.getBuffer()),s.setRasterizerState(!1),s.beginTransformFeedback(!0),s.drawArraysType(3,0,i),s.endTransformFeedback(),s.setRasterizerState(!0),s.bindTransformFeedbackBuffer(null)}releaseBuffers(){}releaseVertexBuffers(){for(let e=0;e<this._updateVAO.length;e++)this._engine.releaseVertexArrayObject(this._updateVAO[e]);this._updateVAO.length=0;for(let e=0;e<this._renderVAO.length;e++)this._engine.releaseVertexArrayObject(this._renderVAO[e]);this._renderVAO.length=0}_createUpdateVAO(e){const t={};t.position=e.createVertexBuffer("position",0,3);let i=3;t.age=e.createVertexBuffer("age",i,1),i+=1,t.size=e.createVertexBuffer("size",i,3),i+=3,t.life=e.createVertexBuffer("life",i,1),i+=1,t.seed=e.createVertexBuffer("seed",i,4),i+=4,t.direction=e.createVertexBuffer("direction",i,3),i+=3,this._parent.particleEmitterType instanceof iM&&(t.initialPosition=e.createVertexBuffer("initialPosition",i,3),i+=3),this._parent._colorGradientsTexture||(t.color=e.createVertexBuffer("color",i,4),i+=4),this._parent._isBillboardBased||(t.initialDirection=e.createVertexBuffer("initialDirection",i,3),i+=3),this._parent.noiseTexture&&(t.noiseCoordinates1=e.createVertexBuffer("noiseCoordinates1",i,3),i+=3,t.noiseCoordinates2=e.createVertexBuffer("noiseCoordinates2",i,3),i+=3),this._parent._angularSpeedGradientsTexture?(t.angle=e.createVertexBuffer("angle",i,1),i+=1):(t.angle=e.createVertexBuffer("angle",i,2),i+=2),this._parent._isAnimationSheetEnabled&&(t.cellIndex=e.createVertexBuffer("cellIndex",i,1),i+=1,this._parent.spriteRandomStartCell&&(t.cellStartOffset=e.createVertexBuffer("cellStartOffset",i,1),i+=1));const s=this._engine.recordVertexArrayObject(t,null,this._updateEffect);return this._engine.bindArrayBuffer(null),s}}ve("BABYLON.WebGL2ParticleSystem",fbe);const pbe="gpuUpdateParticlesComputeShader",ZHe=`struct Particle {position : vec3<f32>,
age : f32,
size : vec3<f32>,
life : f32,
seed : vec4<f32>,
direction : vec3<f32>,
dummy0: f32,
#ifdef CUSTOMEMITTER
initialPosition : vec3<f32>,
dummy1: f32,
#endif
#ifndef COLORGRADIENTS
color : vec4<f32>,
#endif
#ifndef BILLBOARD
initialDirection : vec3<f32>,
dummy2: f32,
#endif
#ifdef NOISE
noiseCoordinates1 : vec3<f32>,
dummy3: f32,
noiseCoordinates2 : vec3<f32>,
dummy4: f32,
#endif
#ifdef ANGULARSPEEDGRADIENTS
angle : f32,
#else
angle : vec2<f32>,
#endif
#ifdef ANIMATESHEET
cellIndex : f32,
#ifdef ANIMATESHEETRANDOMSTART
cellStartOffset : f32,
#endif
#endif
};struct Particles {particles : array<Particle>,};struct SimParams {currentCount : f32,
timeDelta : f32,
stopFactor : f32,
randomTextureSize: i32,
lifeTime : vec2<f32>,
emitPower : vec2<f32>,
#ifndef COLORGRADIENTS
color1 : vec4<f32>,
color2 : vec4<f32>,
#endif
sizeRange : vec2<f32>,
scaleRange : vec4<f32>,
angleRange : vec4<f32>,
gravity : vec3<f32>,
#ifdef LIMITVELOCITYGRADIENTS
limitVelocityDamping : f32,
#endif
#ifdef ANIMATESHEET
cellInfos : vec4<f32>,
#endif
#ifdef NOISE
noiseStrength : vec3<f32>,
#endif
#ifndef LOCAL
emitterWM : mat4x4<f32>,
#endif
#ifdef BOXEMITTER
direction1 : vec3<f32>,
direction2 : vec3<f32>,
minEmitBox : vec3<f32>,
maxEmitBox : vec3<f32>,
#endif
#ifdef CONEEMITTER
radius : vec2<f32>,
coneAngle : f32,
height : vec2<f32>,
#ifdef DIRECTEDCONEEMITTER
direction1 : vec3<f32>,
direction2 : vec3<f32>,
#else
directionRandomizer : f32,
#endif
#endif
#ifdef CYLINDEREMITTER
radius : f32,
height : f32,
radiusRange : f32,
#ifdef DIRECTEDCYLINDEREMITTER
direction1 : vec3<f32>,
direction2 : vec3<f32>,
#else
directionRandomizer : f32,
#endif
#endif
#ifdef HEMISPHERICEMITTER
radius : f32,
radiusRange : f32,
directionRandomizer : f32,
#endif
#ifdef POINTEMITTER
direction1 : vec3<f32>,
direction2 : vec3<f32>,
#endif
#ifdef SPHEREEMITTER
radius : f32,
radiusRange : f32,
#ifdef DIRECTEDSPHEREEMITTER
direction1 : vec3<f32>,
direction2 : vec3<f32>,
#else
directionRandomizer : f32,
#endif
#endif
};@binding(0) @group(0) var<uniform> params : SimParams;@binding(1) @group(0) var<storage,read> particlesIn : Particles;@binding(2) @group(0) var<storage,read_write> particlesOut : Particles;@binding(3) @group(0) var randomTexture : texture_2d<f32>;@binding(4) @group(0) var randomTexture2 : texture_2d<f32>;
#ifdef SIZEGRADIENTS
@binding(0) @group(1) var sizeGradientSampler : sampler;@binding(1) @group(1) var sizeGradientTexture : texture_2d<f32>;
#endif 
#ifdef ANGULARSPEEDGRADIENTS
@binding(2) @group(1) var angularSpeedGradientSampler : sampler;@binding(3) @group(1) var angularSpeedGradientTexture : texture_2d<f32>;
#endif 
#ifdef VELOCITYGRADIENTS
@binding(4) @group(1) var velocityGradientSampler : sampler;@binding(5) @group(1) var velocityGradientTexture : texture_2d<f32>;
#endif
#ifdef LIMITVELOCITYGRADIENTS
@binding(6) @group(1) var limitVelocityGradientSampler : sampler;@binding(7) @group(1) var limitVelocityGradientTexture : texture_2d<f32>;
#endif
#ifdef DRAGGRADIENTS
@binding(8) @group(1) var dragGradientSampler : sampler;@binding(9) @group(1) var dragGradientTexture : texture_2d<f32>;
#endif
#ifdef NOISE
@binding(10) @group(1) var noiseSampler : sampler;@binding(11) @group(1) var noiseTexture : texture_2d<f32>;
#endif
fn getRandomVec3(offset : f32,vertexID : f32)->vec3<f32> {return textureLoad(randomTexture2,vec2<i32>(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize)) % params.randomTextureSize,0),0).rgb;}
fn getRandomVec4(offset : f32,vertexID : f32)->vec4<f32> {return textureLoad(randomTexture,vec2<i32>(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize)) % params.randomTextureSize,0),0);}
@compute @workgroup_size(64)
fn main(@builtin(global_invocation_id) GlobalInvocationID : vec3<u32>) {let index : u32=GlobalInvocationID.x;let vertexID : f32=f32(index);if (index>=u32(params.currentCount)) {return;}
let PI : f32=3.14159;let timeDelta : f32=params.timeDelta;let newAge : f32=particlesIn.particles[index].age+timeDelta;let life : f32=particlesIn.particles[index].life;let seed : vec4<f32>=particlesIn.particles[index].seed;let direction : vec3<f32>=particlesIn.particles[index].direction;if (newAge>=life && params.stopFactor != 0.) {var newPosition : vec3<f32>;var newDirection : vec3<f32>;let randoms : vec4<f32>=getRandomVec4(seed.x,vertexID);let outLife : f32=params.lifeTime.x+(params.lifeTime.y-params.lifeTime.x)*randoms.r;particlesOut.particles[index].life=outLife;particlesOut.particles[index].age=newAge-life;particlesOut.particles[index].seed=seed;var sizex : f32;
#ifdef SIZEGRADIENTS 
sizex=textureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2<f32>(0.,0.),0.).r;
#else
sizex=params.sizeRange.x+(params.sizeRange.y-params.sizeRange.x)*randoms.g;
#endif
particlesOut.particles[index].size=vec3<f32>(
sizex,
params.scaleRange.x+(params.scaleRange.y-params.scaleRange.x)*randoms.b,
params.scaleRange.z+(params.scaleRange.w-params.scaleRange.z)*randoms.a);
#ifndef COLORGRADIENTS
particlesOut.particles[index].color=params.color1+(params.color2-params.color1)*randoms.b;
#endif
#ifndef ANGULARSPEEDGRADIENTS 
particlesOut.particles[index].angle=vec2<f32>(
params.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r,
params.angleRange.x+(params.angleRange.y-params.angleRange.x)*randoms.a);
#else
particlesOut.particles[index].angle=params.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r;
#endif 
#if defined(POINTEMITTER)
let randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);newPosition=vec3<f32>(0.,0.,0.);newDirection=params.direction1+(params.direction2-params.direction1)*randoms3;
#elif defined(BOXEMITTER)
let randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);newPosition=params.minEmitBox+(params.maxEmitBox-params.minEmitBox)*randoms2;newDirection=params.direction1+(params.direction2-params.direction1)*randoms3; 
#elif defined(HEMISPHERICEMITTER)
let randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);let phi : f32=2.0*PI*randoms2.x;let theta : f32=acos(-1.0+2.0*randoms2.y);let randX : f32=cos(phi)*sin(theta);let randY : f32=cos(theta);let randZ : f32=sin(phi)*sin(theta);newPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3<f32>(randX,abs(randY),randZ);newDirection=normalize(newPosition+params.directionRandomizer*randoms3);
#elif defined(SPHEREEMITTER)
let randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);let phi : f32=2.0*PI*randoms2.x;let theta : f32=acos(-1.0+2.0*randoms2.y);let randX : f32=cos(phi)*sin(theta);let randY : f32=cos(theta);let randZ : f32=sin(phi)*sin(theta);newPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3<f32>(randX,randY,randZ);
#ifdef DIRECTEDSPHEREEMITTER
newDirection=normalize(params.direction1+(params.direction2-params.direction1)*randoms3);
#else
newDirection=normalize(newPosition+params.directionRandomizer*randoms3);
#endif
#elif defined(CYLINDEREMITTER)
let randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);let yPos : f32=(-0.5+randoms2.x)*params.height;var angle : f32=randoms2.y*PI*2.;let inverseRadiusRangeSquared : f32=(1.-params.radiusRange)*(1.-params.radiusRange);let positionRadius : f32=params.radius*sqrt(inverseRadiusRangeSquared+randoms2.z*(1.-inverseRadiusRangeSquared));let xPos : f32=positionRadius*cos(angle);let zPos : f32=positionRadius*sin(angle);newPosition=vec3<f32>(xPos,yPos,zPos);
#ifdef DIRECTEDCYLINDEREMITTER
newDirection=params.direction1+(params.direction2-params.direction1)*randoms3;
#else
angle=angle+(-0.5+randoms3.x)*PI*params.directionRandomizer;newDirection=vec3<f32>(cos(angle),(-0.5+randoms3.y)*params.directionRandomizer,sin(angle));newDirection=normalize(newDirection);
#endif
#elif defined(CONEEMITTER)
let randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let s : f32=2.0*PI*randoms2.x;
#ifdef CONEEMITTERSPAWNPOINT
let h : f32=0.0001;
#else
var h : f32=randoms2.y*params.height.y;h=1.-h*h; 
#endif
var lRadius : f32=params.radius.x-params.radius.x*randoms2.z*params.radius.y;lRadius=lRadius*h;let randX : f32=lRadius*sin(s);let randZ : f32=lRadius*cos(s);let randY : f32=h *params.height.x;newPosition=vec3<f32>(randX,randY,randZ); 
let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);
#ifdef DIRECTEDCONEEMITTER
newDirection=params.direction1+(params.direction2-params.direction1)*randoms3;
#else
if (abs(cos(params.coneAngle))==1.0) {newDirection=vec3<f32>(0.,1.0,0.);} else {newDirection=normalize(newPosition+params.directionRandomizer*randoms3); }
#endif
#elif defined(CUSTOMEMITTER)
newPosition=particlesIn.particles[index].initialPosition;particlesOut.particles[index].initialPosition=newPosition;
#else 
newPosition=vec3<f32>(0.,0.,0.);newDirection=2.0*(getRandomVec3(seed.w,vertexID)-vec3<f32>(0.5,0.5,0.5));
#endif
let power : f32=params.emitPower.x+(params.emitPower.y-params.emitPower.x)*randoms.a;
#ifdef LOCAL
particlesOut.particles[index].position=newPosition;
#else
particlesOut.particles[index].position=(params.emitterWM*vec4<f32>(newPosition,1.)).xyz;
#endif
#ifdef CUSTOMEMITTER
particlesOut.particles[index].direction=direction;
#ifndef BILLBOARD 
particlesOut.particles[index].initialDirection=direction;
#endif
#else
#ifdef LOCAL
let initial : vec3<f32>=newDirection;
#else 
let initial : vec3<f32>=(params.emitterWM*vec4<f32>(newDirection,0.)).xyz;
#endif
particlesOut.particles[index].direction=initial*power;
#ifndef BILLBOARD 
particlesOut.particles[index].initialDirection=initial;
#endif
#endif
#ifdef ANIMATESHEET 
particlesOut.particles[index].cellIndex=params.cellInfos.x;
#ifdef ANIMATESHEETRANDOMSTART
particlesOut.particles[index].cellStartOffset=randoms.a*outLife;
#endif 
#endif
#ifdef NOISE
particlesOut.particles[index].noiseCoordinates1=particlesIn.particles[index].noiseCoordinates1;particlesOut.particles[index].noiseCoordinates2=particlesIn.particles[index].noiseCoordinates2;
#endif
} else {var directionScale : f32=timeDelta;particlesOut.particles[index].age=newAge;let ageGradient : f32=newAge/life;
#ifdef VELOCITYGRADIENTS
directionScale=directionScale*textureSampleLevel(velocityGradientTexture,velocityGradientSampler,vec2<f32>(ageGradient,0.),0.).r;
#endif
#ifdef DRAGGRADIENTS
directionScale=directionScale*(1.0-textureSampleLevel(dragGradientTexture,dragGradientSampler,vec2<f32>(ageGradient,0.),0.).r);
#endif
let position : vec3<f32>=particlesIn.particles[index].position;
#if defined(CUSTOMEMITTER)
particlesOut.particles[index].position=position+(direction-position)*ageGradient; 
particlesOut.particles[index].initialPosition=particlesIn.particles[index].initialPosition;
#else
particlesOut.particles[index].position=position+direction*directionScale;
#endif
particlesOut.particles[index].life=life;particlesOut.particles[index].seed=seed;
#ifndef COLORGRADIENTS 
particlesOut.particles[index].color=particlesIn.particles[index].color;
#endif
#ifdef SIZEGRADIENTS
particlesOut.particles[index].size=vec3<f32>(
textureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2<f32>(ageGradient,0.),0.).r,
particlesIn.particles[index].size.yz);
#else
particlesOut.particles[index].size=particlesIn.particles[index].size;
#endif 
#ifndef BILLBOARD 
particlesOut.particles[index].initialDirection=particlesIn.particles[index].initialDirection;
#endif
#ifdef CUSTOMEMITTER
particlesOut.particles[index].direction=direction;
#else
var updatedDirection : vec3<f32>=direction+params.gravity*timeDelta;
#ifdef LIMITVELOCITYGRADIENTS
let limitVelocity : f32=textureSampleLevel(limitVelocityGradientTexture,limitVelocityGradientSampler,vec2<f32>(ageGradient,0.),0.).r;let currentVelocity : f32=length(updatedDirection);if (currentVelocity>limitVelocity) {updatedDirection=updatedDirection*params.limitVelocityDamping;}
#endif
particlesOut.particles[index].direction=updatedDirection;
#ifdef NOISE
let noiseCoordinates1 : vec3<f32>=particlesIn.particles[index].noiseCoordinates1;let noiseCoordinates2 : vec3<f32>=particlesIn.particles[index].noiseCoordinates2;let fetchedR : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates1.x,noiseCoordinates1.y)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;let fetchedG : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates1.z,noiseCoordinates2.x)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;let fetchedB : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates2.y,noiseCoordinates2.z)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;let force : vec3<f32>=vec3<f32>(-1.+2.*fetchedR,-1.+2.*fetchedG,-1.+2.*fetchedB)*params.noiseStrength;particlesOut.particles[index].direction=particlesOut.particles[index].direction+force*timeDelta;particlesOut.particles[index].noiseCoordinates1=noiseCoordinates1;particlesOut.particles[index].noiseCoordinates2=noiseCoordinates2;
#endif 
#endif 
#ifdef ANGULARSPEEDGRADIENTS
let angularSpeed : f32=textureSampleLevel(angularSpeedGradientTexture,angularSpeedGradientSampler,vec2<f32>(ageGradient,0.),0.).r;particlesOut.particles[index].angle=particlesIn.particles[index].angle+angularSpeed*timeDelta;
#else
let angle : vec2<f32>=particlesIn.particles[index].angle;particlesOut.particles[index].angle=vec2<f32>(angle.x+angle.y*timeDelta,angle.y);
#endif
#ifdef ANIMATESHEET 
var offsetAge : f32=particlesOut.particles[index].age;let dist : f32=params.cellInfos.y-params.cellInfos.x;
#ifdef ANIMATESHEETRANDOMSTART
let cellStartOffset : f32=particlesIn.particles[index].cellStartOffset;particlesOut.particles[index].cellStartOffset=cellStartOffset;offsetAge=offsetAge+cellStartOffset;
#else
let cellStartOffset : f32=0.;
#endif 
var ratio : f32;if (params.cellInfos.w==1.0) {ratio=clamp(((cellStartOffset+params.cellInfos.z*offsetAge) % life)/life,0.,1.0);}
else {ratio=clamp((cellStartOffset+params.cellInfos.z*offsetAge)/life,0.,1.0);}
particlesOut.particles[index].cellIndex=f32(i32(params.cellInfos.x+ratio*dist));
#endif
}}
`;H.ShadersStoreWGSL[pbe]||(H.ShadersStoreWGSL[pbe]=ZHe);class mbe{constructor(e,t){this._bufferComputeShader=[],this._renderVertexBuffers=[],this.alignDataInBuffer=!0,this._parent=e,this._engine=t}contextLost(){this._updateComputeShader=void 0,this._bufferComputeShader.length=0,this._renderVertexBuffers.length=0}isUpdateBufferCreated(){return!!this._updateComputeShader}isUpdateBufferReady(){var e;return((e=this._updateComputeShader)==null?void 0:e.isReady())??!1}createUpdateBuffer(e){var i;const t={params:{group:0,binding:0},particlesIn:{group:0,binding:1},particlesOut:{group:0,binding:2},randomTexture:{group:0,binding:3},randomTexture2:{group:0,binding:4}};return this._parent._sizeGradientsTexture&&(t.sizeGradientTexture={group:1,binding:1}),this._parent._angularSpeedGradientsTexture&&(t.angularSpeedGradientTexture={group:1,binding:3}),this._parent._velocityGradientsTexture&&(t.velocityGradientTexture={group:1,binding:5}),this._parent._limitVelocityGradientsTexture&&(t.limitVelocityGradientTexture={group:1,binding:7}),this._parent._dragGradientsTexture&&(t.dragGradientTexture={group:1,binding:9}),this._parent.noiseTexture&&(t.noiseTexture={group:1,binding:11}),this._updateComputeShader=new t5("updateParticles",this._engine,"gpuUpdateParticles",{bindingsMapping:t,defines:e.split(`
`)}),(i=this._simParamsComputeShader)==null||i.dispose(),this._simParamsComputeShader=new Ti(this._engine,void 0,void 0,"ComputeShaderParticleSystemUBO"),this._simParamsComputeShader.addUniform("currentCount",1),this._simParamsComputeShader.addUniform("timeDelta",1),this._simParamsComputeShader.addUniform("stopFactor",1),this._simParamsComputeShader.addUniform("randomTextureSize",1),this._simParamsComputeShader.addUniform("lifeTime",2),this._simParamsComputeShader.addUniform("emitPower",2),this._parent._colorGradientsTexture||(this._simParamsComputeShader.addUniform("color1",4),this._simParamsComputeShader.addUniform("color2",4)),this._simParamsComputeShader.addUniform("sizeRange",2),this._simParamsComputeShader.addUniform("scaleRange",4),this._simParamsComputeShader.addUniform("angleRange",4),this._simParamsComputeShader.addUniform("gravity",3),this._parent._limitVelocityGradientsTexture&&this._simParamsComputeShader.addUniform("limitVelocityDamping",1),this._parent.isAnimationSheetEnabled&&this._simParamsComputeShader.addUniform("cellInfos",4),this._parent.noiseTexture&&this._simParamsComputeShader.addUniform("noiseStrength",3),this._parent.isLocal||this._simParamsComputeShader.addUniform("emitterWM",16),this._parent.particleEmitterType&&this._parent.particleEmitterType.buildUniformLayout(this._simParamsComputeShader),this._updateComputeShader.setUniformBuffer("params",this._simParamsComputeShader),new ube(this._simParamsComputeShader)}createVertexBuffers(e,t){this._renderVertexBuffers.push(t)}createParticleBuffer(e){const t=new dB(this._engine,e.length*4,11,"ComputeShaderParticleSystemBuffer");return t.update(e),this._bufferComputeShader.push(t),t.getBuffer()}bindDrawBuffers(e,t,i){this._engine.bindBuffers(this._renderVertexBuffers[e],i,t)}preUpdateParticleBuffer(){}updateParticleBuffer(e,t,i){this._simParamsComputeShader.update(),this._updateComputeShader.setTexture("randomTexture",this._parent._randomTexture,!1),this._updateComputeShader.setTexture("randomTexture2",this._parent._randomTexture2,!1),this._parent._sizeGradientsTexture&&this._updateComputeShader.setTexture("sizeGradientTexture",this._parent._sizeGradientsTexture),this._parent._angularSpeedGradientsTexture&&this._updateComputeShader.setTexture("angularSpeedGradientTexture",this._parent._angularSpeedGradientsTexture),this._parent._velocityGradientsTexture&&this._updateComputeShader.setTexture("velocityGradientTexture",this._parent._velocityGradientsTexture),this._parent._limitVelocityGradientsTexture&&this._updateComputeShader.setTexture("limitVelocityGradientTexture",this._parent._limitVelocityGradientsTexture),this._parent._dragGradientsTexture&&this._updateComputeShader.setTexture("dragGradientTexture",this._parent._dragGradientsTexture),this._parent.noiseTexture&&this._updateComputeShader.setTexture("noiseTexture",this._parent.noiseTexture),this._updateComputeShader.setStorageBuffer("particlesIn",this._bufferComputeShader[e]),this._updateComputeShader.setStorageBuffer("particlesOut",this._bufferComputeShader[e^1]),this._updateComputeShader.dispatch(Math.ceil(i/64))}releaseBuffers(){var e;for(let t=0;t<this._bufferComputeShader.length;++t)this._bufferComputeShader[t].dispose();this._bufferComputeShader.length=0,(e=this._simParamsComputeShader)==null||e.dispose(),this._simParamsComputeShader=null,this._updateComputeShader=null}releaseVertexBuffers(){this._renderVertexBuffers.length=0}}ve("BABYLON.ComputeShaderParticleSystem",mbe);const gbe="clipPlaneFragmentDeclaration2",KHe=`#ifdef CLIPPLANE
in float fClipDistance;
#endif
#ifdef CLIPPLANE2
in float fClipDistance2;
#endif
#ifdef CLIPPLANE3
in float fClipDistance3;
#endif
#ifdef CLIPPLANE4
in float fClipDistance4;
#endif
#ifdef CLIPPLANE5
in float fClipDistance5;
#endif
#ifdef CLIPPLANE6
in float fClipDistance6;
#endif
`;H.IncludesShadersStore[gbe]||(H.IncludesShadersStore[gbe]=KHe);const _be="gpuRenderParticlesPixelShader",qHe=`precision highp float;
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
uniform sampler2D diffuseSampler;varying vec2 vUV;varying vec4 vColor;
#include<clipPlaneFragmentDeclaration2> 
#include<imageProcessingDeclaration>
#include<logDepthDeclaration>
#include<helperFunctions>
#include<imageProcessingFunctions>
#include<fogFragmentDeclaration>
void main() {
#include<clipPlaneFragment> 
vec4 textureColor=texture2D(diffuseSampler,vUV);gl_FragColor=textureColor*vColor;
#ifdef BLENDMULTIPLYMODE
float alpha=vColor.a*textureColor.a;gl_FragColor.rgb=gl_FragColor.rgb*alpha+vec3(1.0)*(1.0-alpha);
#endif 
#include<logDepthFragment>
#include<fogFragment>(color,gl_FragColor)
#ifdef IMAGEPROCESSINGPOSTPROCESS
gl_FragColor.rgb=toLinearSpace(gl_FragColor.rgb);
#else
#ifdef IMAGEPROCESSING
gl_FragColor.rgb=toLinearSpace(gl_FragColor.rgb);gl_FragColor=applyImageProcessing(gl_FragColor);
#endif
#endif
}
`;H.ShadersStore[_be]||(H.ShadersStore[_be]=qHe);const vbe="clipPlaneVertexDeclaration2",QHe=`#ifdef CLIPPLANE
uniform vec4 vClipPlane;out float fClipDistance;
#endif
#ifdef CLIPPLANE2
uniform vec4 vClipPlane2;out float fClipDistance2;
#endif
#ifdef CLIPPLANE3
uniform vec4 vClipPlane3;out float fClipDistance3;
#endif
#ifdef CLIPPLANE4
uniform vec4 vClipPlane4;out float fClipDistance4;
#endif
#ifdef CLIPPLANE5
uniform vec4 vClipPlane5;out float fClipDistance5;
#endif
#ifdef CLIPPLANE6
uniform vec4 vClipPlane6;out float fClipDistance6;
#endif
`;H.IncludesShadersStore[vbe]||(H.IncludesShadersStore[vbe]=QHe);const Abe="gpuRenderParticlesVertexShader",JHe=`precision highp float;uniform mat4 view;uniform mat4 projection;uniform vec2 translationPivot;uniform vec3 worldOffset;
#ifdef LOCAL
uniform mat4 emitterWM;
#endif
attribute vec3 position;attribute float age;attribute float life;attribute vec3 size;
#ifndef BILLBOARD
attribute vec3 initialDirection;
#endif
#ifdef BILLBOARDSTRETCHED
attribute vec3 direction;
#endif
attribute float angle;
#ifdef ANIMATESHEET
attribute float cellIndex;
#endif
attribute vec2 offset;attribute vec2 uv;varying vec2 vUV;varying vec4 vColor;varying vec3 vPositionW;
#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)
uniform mat4 invView;
#endif
#include<clipPlaneVertexDeclaration2>
#include<fogVertexDeclaration>
#include<logDepthDeclaration>
#ifdef COLORGRADIENTS
uniform sampler2D colorGradientSampler;
#else
uniform vec4 colorDead;attribute vec4 color;
#endif
#ifdef ANIMATESHEET
uniform vec3 sheetInfos;
#endif
#ifdef BILLBOARD
uniform vec3 eyePosition;
#endif
vec3 rotate(vec3 yaxis,vec3 rotatedCorner) {vec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));vec3 zaxis=normalize(cross(yaxis,xaxis));vec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z);vec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z);vec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z);mat3 rotMatrix= mat3(row0,row1,row2);vec3 alignedCorner=rotMatrix*rotatedCorner;
#ifdef LOCAL
return ((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner;
#else
return (position+worldOffset)+alignedCorner;
#endif
}
#ifdef BILLBOARDSTRETCHED
vec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) {vec3 normalizedToCamera=normalize(toCamera);vec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));vec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));vec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);vec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);vec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);mat3 rotMatrix= mat3(row0,row1,row2);vec3 alignedCorner=rotMatrix*rotatedCorner;
#ifdef LOCAL
return ((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner;
#else
return (position+worldOffset)+alignedCorner;
#endif
}
#endif
void main() {
#ifdef ANIMATESHEET
float rowOffset=floor(cellIndex/sheetInfos.z);float columnOffset=cellIndex-rowOffset*sheetInfos.z;vec2 uvScale=sheetInfos.xy;vec2 uvOffset=vec2(uv.x ,1.0-uv.y);vUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;
#else
vUV=uv;
#endif
float ratio=min(1.0,age/life);
#ifdef COLORGRADIENTS
vColor=texture2D(colorGradientSampler,vec2(ratio,0));
#else
vColor=color*vec4(1.0-ratio)+colorDead*vec4(ratio);
#endif
vec2 cornerPos=(offset-translationPivot)*size.yz*size.x;
#ifdef BILLBOARD
vec4 rotatedCorner;rotatedCorner.w=0.;
#ifdef BILLBOARDY
rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.y=0.;rotatedCorner.xz+=translationPivot;vec3 yaxis=(position+worldOffset)-eyePosition;yaxis.y=0.;vPositionW=rotate(normalize(yaxis),rotatedCorner.xyz);vec4 viewPosition=(view*vec4(vPositionW,1.0));
#elif defined(BILLBOARDSTRETCHED)
rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;rotatedCorner.xy+=translationPivot;vec3 toCamera=(position+worldOffset)-eyePosition;vPositionW=rotateAlign(toCamera,rotatedCorner.xyz);vec4 viewPosition=(view*vec4(vPositionW,1.0));
#else
rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;rotatedCorner.xy+=translationPivot;
#ifdef LOCAL
vec4 viewPosition=view*vec4(((emitterWM*vec4(position,1.0)).xyz+worldOffset),1.0)+rotatedCorner;
#else
vec4 viewPosition=view*vec4((position+worldOffset),1.0)+rotatedCorner;
#endif
vPositionW=(invView*viewPosition).xyz;
#endif
#else
vec3 rotatedCorner;rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=0.;rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.xz+=translationPivot;vec3 yaxis=normalize(initialDirection);vPositionW=rotate(yaxis,rotatedCorner);vec4 viewPosition=view*vec4(vPositionW,1.0);
#endif
gl_Position=projection*viewPosition;
#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) || defined(FOG)
vec4 worldPos=vec4(vPositionW,1.0);
#endif
#include<clipPlaneVertex>
#include<fogVertex>
#include<logDepthVertex>
}`;H.ShadersStore[Abe]||(H.ShadersStore[Abe]=JHe);class A_ extends sc{static get IsSupported(){if(!ei.LastCreatedEngine)return!1;const e=ei.LastCreatedEngine.getCaps();return e.supportTransformFeedbacks||e.supportComputeShaders}_createIndexBuffer(){this._linesIndexBufferUseInstancing=this._engine.createIndexBuffer(new Uint32Array([0,1,1,3,3,2,2,0,0,3]),void 0,"GPUParticleSystemLinesIndexBuffer")}getCapacity(){return this._capacity}get maxActiveParticleCount(){return this._maxActiveParticleCount}set maxActiveParticleCount(e){this._maxActiveParticleCount=Math.min(e,this._capacity)}get activeParticleCount(){return this.maxActiveParticleCount}set activeParticleCount(e){this.maxActiveParticleCount=e}createPointEmitter(e,t){const i=Fxe(e,t);return this.particleEmitterType=i,i}createHemisphericEmitter(e=1,t=1){const i=kxe(e,t);return this.particleEmitterType=i,i}createSphereEmitter(e=1,t=1){const i=Uxe(e,t);return this.particleEmitterType=i,i}createDirectedSphereEmitter(e=1,t=new P(0,1,0),i=new P(0,1,0)){const s=jxe(e,t,i);return this.particleEmitterType=s,s}createCylinderEmitter(e=1,t=1,i=1,s=0){const r=Vxe(e,t,i,s);return this.particleEmitterType=r,r}createDirectedCylinderEmitter(e=1,t=1,i=1,s=new P(0,1,0),r=new P(0,1,0)){const n=Gxe(e,t,i,s,r);return this.particleEmitterType=n,n}createConeEmitter(e=1,t=Math.PI/4){const i=Wxe(e,t);return this.particleEmitterType=i,i}createDirectedConeEmitter(e=1,t=Math.PI/4,i=new P(0,1,0),s=new P(0,1,0)){const r=Hxe(e,t,i,s);return this.particleEmitterType=r,r}createBoxEmitter(e,t,i,s){const r=new eM;return this.particleEmitterType=r,this.direction1=e,this.direction2=t,this.minEmitBox=i,this.maxEmitBox=s,r}isReady(){if(!this.emitter||this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.isReady()||!this.particleTexture||!this.particleTexture.isReady()||this._rebuildingAfterContextLost)return!1;if(this.blendMode!==xn.BLENDMODE_MULTIPLYADD){if(!this._getWrapper(this.blendMode).effect.isReady())return!1}else if(!this._getWrapper(xn.BLENDMODE_MULTIPLY).effect.isReady()||!this._getWrapper(xn.BLENDMODE_ADD).effect.isReady())return!1;return this._platform.isUpdateBufferCreated()?this._platform.isUpdateBufferReady():(this._recreateUpdateEffect(),!1)}isStarted(){return this._started}isStopped(){return this._stopped}isStopping(){return!1}getActiveCount(){return this._currentActiveCount}start(e=this.startDelay){if(!this.targetStopDuration&&this._hasTargetStopDurationDependantGradient())throw"Particle system started with a targetStopDuration dependant gradient (eg. startSizeGradients) but no targetStopDuration set";if(e){setTimeout(()=>{this.start(0)},e);return}this._started=!0,this._stopped=!1,this._preWarmDone=!1,this.beginAnimationOnStart&&this.animations&&this.animations.length>0&&this._scene&&this._scene.beginAnimation(this,this.beginAnimationFrom,this.beginAnimationTo,this.beginAnimationLoop)}stop(){this._stopped||(this.onStoppedObservable.notifyObservers(this),this._stopped=!0)}reset(){this._releaseBuffers(),this._platform.releaseVertexBuffers(),this._currentActiveCount=0,this._targetIndex=0}getClassName(){return"GPUParticleSystem"}getCustomEffect(e=0){var t;return((t=this._customWrappers[e])==null?void 0:t.effect)??this._customWrappers[0].effect}_getCustomDrawWrapper(e=0){return this._customWrappers[e]??this._customWrappers[0]}setCustomEffect(e,t=0){this._customWrappers[t]=new ql(this._engine),this._customWrappers[t].effect=e}get onBeforeDrawParticlesObservable(){return this._onBeforeDrawParticlesObservable||(this._onBeforeDrawParticlesObservable=new xe),this._onBeforeDrawParticlesObservable}get vertexShaderName(){return"gpuRenderParticles"}get vertexBuffers(){return this._renderVertexBuffers[this._targetIndex^1]}get indexBuffer(){return null}_removeGradientAndTexture(e,t,i){return super._removeGradientAndTexture(e,t,i),this._releaseBuffers(),this}addColorGradient(e,t){this._colorGradients||(this._colorGradients=[]);const i=new Xne(e,t);return this._colorGradients.push(i),this._refreshColorGradient(!0),this._releaseBuffers(),this}_refreshColorGradient(e=!1){this._colorGradients&&(e&&this._colorGradients.sort((t,i)=>t.gradient<i.gradient?-1:t.gradient>i.gradient?1:0),this._colorGradientsTexture&&(this._colorGradientsTexture.dispose(),this._colorGradientsTexture=null))}forceRefreshGradients(){this._refreshColorGradient(),this._refreshFactorGradient(this._sizeGradients,"_sizeGradientsTexture"),this._refreshFactorGradient(this._angularSpeedGradients,"_angularSpeedGradientsTexture"),this._refreshFactorGradient(this._velocityGradients,"_velocityGradientsTexture"),this._refreshFactorGradient(this._limitVelocityGradients,"_limitVelocityGradientsTexture"),this._refreshFactorGradient(this._dragGradients,"_dragGradientsTexture"),this.reset()}removeColorGradient(e){return this._removeGradientAndTexture(e,this._colorGradients,this._colorGradientsTexture),this._colorGradientsTexture=null,this}resetDrawCache(){var e;for(const t in this._drawWrappers)(e=this._drawWrappers[t].drawContext)==null||e.reset()}_addFactorGradient(e,t,i){const s=new Zne(t,i);e.push(s),this._releaseBuffers()}addSizeGradient(e,t){return this._sizeGradients||(this._sizeGradients=[]),this._addFactorGradient(this._sizeGradients,e,t),this._refreshFactorGradient(this._sizeGradients,"_sizeGradientsTexture",!0),this._releaseBuffers(),this}removeSizeGradient(e){return this._removeGradientAndTexture(e,this._sizeGradients,this._sizeGradientsTexture),this._sizeGradientsTexture=null,this}_refreshFactorGradient(e,t,i=!1){if(!e)return;i&&e.sort((r,n)=>r.gradient<n.gradient?-1:r.gradient>n.gradient?1:0);const s=this;s[t]&&(s[t].dispose(),s[t]=null)}addAngularSpeedGradient(e,t){return this._angularSpeedGradients||(this._angularSpeedGradients=[]),this._addFactorGradient(this._angularSpeedGradients,e,t),this._refreshFactorGradient(this._angularSpeedGradients,"_angularSpeedGradientsTexture",!0),this._releaseBuffers(),this}removeAngularSpeedGradient(e){return this._removeGradientAndTexture(e,this._angularSpeedGradients,this._angularSpeedGradientsTexture),this._angularSpeedGradientsTexture=null,this}addVelocityGradient(e,t){return this._velocityGradients||(this._velocityGradients=[]),this._addFactorGradient(this._velocityGradients,e,t),this._refreshFactorGradient(this._velocityGradients,"_velocityGradientsTexture",!0),this._releaseBuffers(),this}removeVelocityGradient(e){return this._removeGradientAndTexture(e,this._velocityGradients,this._velocityGradientsTexture),this._velocityGradientsTexture=null,this}addLimitVelocityGradient(e,t){return this._limitVelocityGradients||(this._limitVelocityGradients=[]),this._addFactorGradient(this._limitVelocityGradients,e,t),this._refreshFactorGradient(this._limitVelocityGradients,"_limitVelocityGradientsTexture",!0),this._releaseBuffers(),this}removeLimitVelocityGradient(e){return this._removeGradientAndTexture(e,this._limitVelocityGradients,this._limitVelocityGradientsTexture),this._limitVelocityGradientsTexture=null,this}addDragGradient(e,t){return this._dragGradients||(this._dragGradients=[]),this._addFactorGradient(this._dragGradients,e,t),this._refreshFactorGradient(this._dragGradients,"_dragGradientsTexture",!0),this._releaseBuffers(),this}removeDragGradient(e){return this._removeGradientAndTexture(e,this._dragGradients,this._dragGradientsTexture),this._dragGradientsTexture=null,this}addEmitRateGradient(){return this}removeEmitRateGradient(){return this}addStartSizeGradient(){return this}removeStartSizeGradient(){return this}addColorRemapGradient(){return this}removeColorRemapGradient(){return this}addAlphaRemapGradient(){return this}removeAlphaRemapGradient(){return this}addRampGradient(){return this}removeRampGradient(){return this}getRampGradients(){return null}get useRampGradients(){return!1}set useRampGradients(e){}addLifeTimeGradient(){return this}removeLifeTimeGradient(){return this}constructor(e,t,i,s=null,r=!1){if(super(e),this.layerMask=268435455,this._accumulatedCount=0,this._renderVertexBuffers=[],this._targetIndex=0,this._currentRenderId=-1,this._currentRenderingCameraUniqueId=-1,this._started=!1,this._stopped=!1,this._timeDelta=0,this.updateInAnimate=!1,this._actualFrame=0,this._rawTextureWidth=256,this._rebuildingAfterContextLost=!1,this.onDisposeObservable=new xe,this.onStoppedObservable=new xe,this.forceDepthWrite=!1,this._preWarmDone=!1,this.isLocal=!1,this.isGPU=!0,this._onBeforeDrawParticlesObservable=null,!i||i.getClassName()==="Scene"?(this._scene=i||ei.LastCreatedScene,this._engine=this._scene.getEngine(),this.uniqueId=this._scene.getUniqueId(),this._scene.particleSystems.push(this)):(this._engine=i,this.defaultProjectionMatrix=me.PerspectiveFovLH(.8,1,.1,100,this._engine.isNDCHalfZRange)),this._engine.getCaps().supportComputeShaders){if(!ea("BABYLON.ComputeShaderParticleSystem"))throw new Error("The ComputeShaderParticleSystem class is not available! Make sure you have imported it.");this._platform=new(ea("BABYLON.ComputeShaderParticleSystem"))(this,this._engine)}else{if(!ea("BABYLON.WebGL2ParticleSystem"))throw new Error("The WebGL2ParticleSystem class is not available! Make sure you have imported it.");this._platform=new(ea("BABYLON.WebGL2ParticleSystem"))(this,this._engine)}this._customWrappers={0:new ql(this._engine)},this._customWrappers[0].effect=s,this._drawWrappers={0:new ql(this._engine)},this._drawWrappers[0].drawContext&&(this._drawWrappers[0].drawContext.useInstancing=!0),this._createIndexBuffer(),this._attachImageProcessingConfiguration(null),t=t??{},t.randomTextureSize||delete t.randomTextureSize;const n={capacity:5e4,randomTextureSize:this._engine.getCaps().maxTextureSize,...t},o=t;isFinite(o)&&(n.capacity=o),this._capacity=n.capacity,this._maxActiveParticleCount=n.capacity,this._currentActiveCount=0,this._isAnimationSheetEnabled=r,this.particleEmitterType=new eM;const l=Math.min(this._engine.getCaps().maxTextureSize,n.randomTextureSize);let c=[];for(let u=0;u<l;++u)c.push(Math.random()),c.push(Math.random()),c.push(Math.random()),c.push(Math.random());this._randomTexture=new Ur(new Float32Array(c),l,1,5,i,!1,!1,1,1),this._randomTexture.name="GPUParticleSystem_random1",this._randomTexture.wrapU=1,this._randomTexture.wrapV=1,c=[];for(let u=0;u<l;++u)c.push(Math.random()),c.push(Math.random()),c.push(Math.random()),c.push(Math.random());this._randomTexture2=new Ur(new Float32Array(c),l,1,5,i,!1,!1,1,1),this._randomTexture2.name="GPUParticleSystem_random2",this._randomTexture2.wrapU=1,this._randomTexture2.wrapV=1,this._randomTextureSize=l}_reset(){this._releaseBuffers()}_createVertexBuffers(e,t,i){const s={};s.position=t.createVertexBuffer("position",0,3,this._attributesStrideSize,!0);let r=3;s.age=t.createVertexBuffer("age",r,1,this._attributesStrideSize,!0),r+=1,s.size=t.createVertexBuffer("size",r,3,this._attributesStrideSize,!0),r+=3,s.life=t.createVertexBuffer("life",r,1,this._attributesStrideSize,!0),r+=1,r+=4,this.billboardMode===xn.BILLBOARDMODE_STRETCHED&&(s.direction=t.createVertexBuffer("direction",r,3,this._attributesStrideSize,!0)),r+=3,this._platform.alignDataInBuffer&&(r+=1),this.particleEmitterType instanceof iM&&(r+=3,this._platform.alignDataInBuffer&&(r+=1)),this._colorGradientsTexture||(s.color=t.createVertexBuffer("color",r,4,this._attributesStrideSize,!0),r+=4),this._isBillboardBased||(s.initialDirection=t.createVertexBuffer("initialDirection",r,3,this._attributesStrideSize,!0),r+=3,this._platform.alignDataInBuffer&&(r+=1)),this.noiseTexture&&(s.noiseCoordinates1=t.createVertexBuffer("noiseCoordinates1",r,3,this._attributesStrideSize,!0),r+=3,this._platform.alignDataInBuffer&&(r+=1),s.noiseCoordinates2=t.createVertexBuffer("noiseCoordinates2",r,3,this._attributesStrideSize,!0),r+=3,this._platform.alignDataInBuffer&&(r+=1)),s.angle=t.createVertexBuffer("angle",r,1,this._attributesStrideSize,!0),this._angularSpeedGradientsTexture?r++:r+=2,this._isAnimationSheetEnabled&&(s.cellIndex=t.createVertexBuffer("cellIndex",r,1,this._attributesStrideSize,!0),r+=1,this.spriteRandomStartCell&&(s.cellStartOffset=t.createVertexBuffer("cellStartOffset",r,1,this._attributesStrideSize,!0),r+=1)),s.offset=i.createVertexBuffer("offset",0,2),s.uv=i.createVertexBuffer("uv",2,2),this._renderVertexBuffers.push(s),this._platform.createVertexBuffers(e,s),this.resetDrawCache()}_initialize(e=!1){if(this._buffer0&&!e)return;const t=this._engine,i=[];this._attributesStrideSize=21,this._targetIndex=0,this._platform.alignDataInBuffer&&(this._attributesStrideSize+=1),this.particleEmitterType instanceof iM&&(this._attributesStrideSize+=3,this._platform.alignDataInBuffer&&(this._attributesStrideSize+=1)),this.isBillboardBased||(this._attributesStrideSize+=3,this._platform.alignDataInBuffer&&(this._attributesStrideSize+=1)),this._colorGradientsTexture&&(this._attributesStrideSize-=4),this._angularSpeedGradientsTexture&&(this._attributesStrideSize-=1),this._isAnimationSheetEnabled&&(this._attributesStrideSize+=1,this.spriteRandomStartCell&&(this._attributesStrideSize+=1)),this.noiseTexture&&(this._attributesStrideSize+=6,this._platform.alignDataInBuffer&&(this._attributesStrideSize+=2)),this._platform.alignDataInBuffer&&(this._attributesStrideSize+=3-(this._attributesStrideSize+3&3));const s=this.particleEmitterType instanceof iM,r=ae.Vector3[0];let n=0;for(let u=0;u<this._capacity;u++)if(i.push(0),i.push(0),i.push(0),i.push(0),i.push(0),i.push(0),i.push(0),i.push(0),i.push(Math.random()),i.push(Math.random()),i.push(Math.random()),i.push(Math.random()),s?(this.particleEmitterType.particleDestinationGenerator(u,null,r),i.push(r.x),i.push(r.y),i.push(r.z)):(i.push(0),i.push(0),i.push(0)),this._platform.alignDataInBuffer&&i.push(0),n+=16,s&&(this.particleEmitterType.particlePositionGenerator(u,null,r),i.push(r.x),i.push(r.y),i.push(r.z),this._platform.alignDataInBuffer&&i.push(0),n+=4),this._colorGradientsTexture||(i.push(0),i.push(0),i.push(0),i.push(0),n+=4),this.isBillboardBased||(i.push(0),i.push(0),i.push(0),this._platform.alignDataInBuffer&&i.push(0),n+=4),this.noiseTexture&&(i.push(Math.random()),i.push(Math.random()),i.push(Math.random()),this._platform.alignDataInBuffer&&i.push(0),i.push(Math.random()),i.push(Math.random()),i.push(Math.random()),this._platform.alignDataInBuffer&&i.push(0),n+=8),i.push(0),n+=1,this._angularSpeedGradientsTexture||(i.push(0),n+=1),this._isAnimationSheetEnabled&&(i.push(0),n+=1,this.spriteRandomStartCell&&(i.push(0),n+=1)),this._platform.alignDataInBuffer){let f=3-(n+3&3);for(n+=f;f-- >0;)i.push(0)}const o=new Float32Array([.5,.5,1,1,-.5,.5,0,1,.5,-.5,1,0,-.5,-.5,0,0]),l=this._platform.createParticleBuffer(i),c=this._platform.createParticleBuffer(i);this._buffer0=new fl(t,l,!1,this._attributesStrideSize),this._buffer1=new fl(t,c,!1,this._attributesStrideSize),this._spriteBuffer=new fl(t,o,!1,4),this._renderVertexBuffers=[],this._createVertexBuffers(this._buffer0,this._buffer1,this._spriteBuffer),this._createVertexBuffers(this._buffer1,this._buffer0,this._spriteBuffer),this._sourceBuffer=this._buffer0,this._targetBuffer=this._buffer1}_recreateUpdateEffect(){this._createColorGradientTexture(),this._createSizeGradientTexture(),this._createAngularSpeedGradientTexture(),this._createVelocityGradientTexture(),this._createLimitVelocityGradientTexture(),this._createDragGradientTexture();let e=this.particleEmitterType?this.particleEmitterType.getEffectDefines():"";return this._isBillboardBased&&(e+=`
#define BILLBOARD`),this._colorGradientsTexture&&(e+=`
#define COLORGRADIENTS`),this._sizeGradientsTexture&&(e+=`
#define SIZEGRADIENTS`),this._angularSpeedGradientsTexture&&(e+=`
#define ANGULARSPEEDGRADIENTS`),this._velocityGradientsTexture&&(e+=`
#define VELOCITYGRADIENTS`),this._limitVelocityGradientsTexture&&(e+=`
#define LIMITVELOCITYGRADIENTS`),this._dragGradientsTexture&&(e+=`
#define DRAGGRADIENTS`),this.isAnimationSheetEnabled&&(e+=`
#define ANIMATESHEET`,this.spriteRandomStartCell&&(e+=`
#define ANIMATESHEETRANDOMSTART`)),this.noiseTexture&&(e+=`
#define NOISE`),this.isLocal&&(e+=`
#define LOCAL`),this._platform.isUpdateBufferCreated()&&this._cachedUpdateDefines===e?this._platform.isUpdateBufferReady():(this._cachedUpdateDefines=e,this._updateBuffer=this._platform.createUpdateBuffer(e),this._platform.isUpdateBufferReady())}_getWrapper(e){const t=this._getCustomDrawWrapper(e);if(t!=null&&t.effect)return t;const i=[];this.fillDefines(i,e);let s=this._drawWrappers[e];s||(s=new ql(this._engine),s.drawContext&&(s.drawContext.useInstancing=!0),this._drawWrappers[e]=s);const r=i.join(`
`);if(s.defines!==r){const n=[],o=[],l=[];this.fillUniformsAttributesAndSamplerNames(o,n,l),s.setEffect(this._engine.createEffect("gpuRenderParticles",n,o,l,r),r)}return s}static _GetAttributeNamesOrOptions(e=!1,t=!1,i=!1,s=!1){const r=[q.PositionKind,"age","life","size","angle"];return e||r.push(q.ColorKind),t&&r.push("cellIndex"),i||r.push("initialDirection"),s&&r.push("direction"),r.push("offset",q.UVKind),r}static _GetEffectCreationOptions(e=!1,t=!1,i=!1){const s=["emitterWM","worldOffset","view","projection","colorDead","invView","translationPivot","eyePosition"];return qo(s),e&&s.push("sheetInfos"),t&&s.push("logarithmicDepthConstant"),i&&(s.push("vFogInfos"),s.push("vFogColor")),s}fillDefines(e,t=0,i=!0){if(this._scene&&(Cy(this,this._scene,e),this.applyFog&&this._scene.fogEnabled&&this._scene.fogMode!==ui.FOGMODE_NONE&&e.push("#define FOG")),t===xn.BLENDMODE_MULTIPLY&&e.push("#define BLENDMULTIPLYMODE"),this.isLocal&&e.push("#define LOCAL"),this.useLogarithmicDepth&&e.push("#define LOGARITHMICDEPTH"),this._isBillboardBased)switch(e.push("#define BILLBOARD"),this.billboardMode){case xn.BILLBOARDMODE_Y:e.push("#define BILLBOARDY");break;case xn.BILLBOARDMODE_STRETCHED:e.push("#define BILLBOARDSTRETCHED");break;case xn.BILLBOARDMODE_ALL:e.push("#define BILLBOARDMODE_ALL");break}this._colorGradientsTexture&&e.push("#define COLORGRADIENTS"),this.isAnimationSheetEnabled&&e.push("#define ANIMATESHEET"),i&&this._imageProcessingConfiguration&&(this._imageProcessingConfiguration.prepareDefines(this._imageProcessingConfigurationDefines),e.push(""+this._imageProcessingConfigurationDefines.toString()))}fillUniformsAttributesAndSamplerNames(e,t,i){t.push(...A_._GetAttributeNamesOrOptions(!!this._colorGradientsTexture,this._isAnimationSheetEnabled,this._isBillboardBased,this._isBillboardBased&&this.billboardMode===xn.BILLBOARDMODE_STRETCHED)),e.push(...A_._GetEffectCreationOptions(this._isAnimationSheetEnabled,this.useLogarithmicDepth,this.applyFog)),i.push("diffuseSampler","colorGradientSampler"),this._imageProcessingConfiguration&&(ws.PrepareUniforms(e,this._imageProcessingConfigurationDefines),ws.PrepareSamplers(i,this._imageProcessingConfigurationDefines))}animate(e=!1){var t;this._timeDelta=this.updateSpeed*(e?this.preWarmStepOffset:((t=this._scene)==null?void 0:t.getAnimationRatio())||1),this._actualFrame+=this._timeDelta,this._stopped||this.targetStopDuration&&this._actualFrame>=this.targetStopDuration&&this.stop(),this.updateInAnimate&&this._update()}_createFactorGradientTexture(e,t){const i=this[t];if(!e||!e.length||i)return;const s=new Float32Array(this._rawTextureWidth);for(let r=0;r<this._rawTextureWidth;r++){const n=r/this._rawTextureWidth;N0.GetCurrentGradient(n,e,(o,l,c)=>{s[r]=Zl(o.factor1,l.factor1,c)})}this[t]=Ur.CreateRTexture(s,this._rawTextureWidth,1,this._scene||this._engine,!1,!1,1),this[t].name=t.substring(1)}_createSizeGradientTexture(){this._createFactorGradientTexture(this._sizeGradients,"_sizeGradientsTexture")}_createAngularSpeedGradientTexture(){this._createFactorGradientTexture(this._angularSpeedGradients,"_angularSpeedGradientsTexture")}_createVelocityGradientTexture(){this._createFactorGradientTexture(this._velocityGradients,"_velocityGradientsTexture")}_createLimitVelocityGradientTexture(){this._createFactorGradientTexture(this._limitVelocityGradients,"_limitVelocityGradientsTexture")}_createDragGradientTexture(){this._createFactorGradientTexture(this._dragGradients,"_dragGradientsTexture")}_createColorGradientTexture(){if(!this._colorGradients||!this._colorGradients.length||this._colorGradientsTexture)return;const e=new Uint8Array(this._rawTextureWidth*4),t=Sr.Color4[0];for(let i=0;i<this._rawTextureWidth;i++){const s=i/this._rawTextureWidth;N0.GetCurrentGradient(s,this._colorGradients,(r,n,o)=>{St.LerpToRef(r.color1,n.color1,o,t),e[i*4]=t.r*255,e[i*4+1]=t.g*255,e[i*4+2]=t.b*255,e[i*4+3]=t.a*255})}this._colorGradientsTexture=Ur.CreateRGBATexture(e,this._rawTextureWidth,1,this._scene,!1,!1,1),this._colorGradientsTexture.name="colorGradients"}_render(e,t){var o,l,c,u;const i=this._getWrapper(e),s=i.effect;this._engine.enableEffect(i);const r=((o=this._scene)==null?void 0:o.getViewMatrix())||me.IdentityReadOnly;if(s.setMatrix("view",r),s.setMatrix("projection",this.defaultProjectionMatrix??this._scene.getProjectionMatrix()),s.setTexture("diffuseSampler",this.particleTexture),s.setVector2("translationPivot",this.translationPivot),s.setVector3("worldOffset",this.worldOffset),this.isLocal&&s.setMatrix("emitterWM",t),this._colorGradientsTexture?s.setTexture("colorGradientSampler",this._colorGradientsTexture):s.setDirectColor4("colorDead",this.colorDead),this._isAnimationSheetEnabled&&this.particleTexture){const f=this.particleTexture.getBaseSize();s.setFloat3("sheetInfos",this.spriteCellWidth/f.width,this.spriteCellHeight/f.height,f.width/this.spriteCellWidth)}if(this._isBillboardBased&&this._scene){const f=this._scene.activeCamera;s.setVector3("eyePosition",f.globalPosition)}const n=s.defines;if(this._scene&&(Bo(s,this,this._scene),this.applyFog&&Ic(this._scene,void 0,s)),n.indexOf("#define BILLBOARDMODE_ALL")>=0){const f=r.clone();f.invert(),s.setMatrix("invView",f)}switch(this.useLogarithmicDepth&&this._scene&&ml(n,s,this._scene),this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(s),e){case xn.BLENDMODE_ADD:this._engine.setAlphaMode(1);break;case xn.BLENDMODE_ONEONE:this._engine.setAlphaMode(6);break;case xn.BLENDMODE_STANDARD:this._engine.setAlphaMode(2);break;case xn.BLENDMODE_MULTIPLY:this._engine.setAlphaMode(4);break}return this._platform.bindDrawBuffers(this._targetIndex,s,(l=this._scene)!=null&&l.forceWireframe?this._linesIndexBufferUseInstancing:null),this._onBeforeDrawParticlesObservable&&this._onBeforeDrawParticlesObservable.notifyObservers(s),(c=this._scene)!=null&&c.forceWireframe?this._engine.drawElementsType(6,0,10,this._currentActiveCount):this._engine.drawArraysType(7,0,4,this._currentActiveCount),this._engine.setAlphaMode(0),(u=this._scene)!=null&&u.forceWireframe&&this._engine.unbindInstanceAttributes(),this._currentActiveCount}_update(e){if(!this.emitter||!this._targetBuffer||!this._recreateUpdateEffect()||this._rebuildingAfterContextLost)return;if(!e)if(this.emitter.position)e=this.emitter.getWorldMatrix();else{const r=this.emitter;e=ae.Matrix[0],me.TranslationToRef(r.x,r.y,r.z,e)}const t=this._engine,i=t.getDepthWrite();t.setDepthWrite(!1),this._platform.preUpdateParticleBuffer(),this._updateBuffer.setFloat("currentCount",this._currentActiveCount),this._updateBuffer.setFloat("timeDelta",this._timeDelta),this._updateBuffer.setFloat("stopFactor",this._stopped?0:1),this._updateBuffer.setInt("randomTextureSize",this._randomTextureSize),this._updateBuffer.setFloat2("lifeTime",this.minLifeTime,this.maxLifeTime),this._updateBuffer.setFloat2("emitPower",this.minEmitPower,this.maxEmitPower),this._colorGradientsTexture||(this._updateBuffer.setDirectColor4("color1",this.color1),this._updateBuffer.setDirectColor4("color2",this.color2)),this._updateBuffer.setFloat2("sizeRange",this.minSize,this.maxSize),this._updateBuffer.setFloat4("scaleRange",this.minScaleX,this.maxScaleX,this.minScaleY,this.maxScaleY),this._updateBuffer.setFloat4("angleRange",this.minAngularSpeed,this.maxAngularSpeed,this.minInitialRotation,this.maxInitialRotation),this._updateBuffer.setVector3("gravity",this.gravity),this._limitVelocityGradientsTexture&&this._updateBuffer.setFloat("limitVelocityDamping",this.limitVelocityDamping),this.particleEmitterType&&this.particleEmitterType.applyToShader(this._updateBuffer),this._isAnimationSheetEnabled&&this._updateBuffer.setFloat4("cellInfos",this.startSpriteCellID,this.endSpriteCellID,this.spriteCellChangeSpeed,this.spriteCellLoop?1:0),this.noiseTexture&&this._updateBuffer.setVector3("noiseStrength",this.noiseStrength),this.isLocal||this._updateBuffer.setMatrix("emitterWM",e),this._platform.updateParticleBuffer(this._targetIndex,this._targetBuffer,this._currentActiveCount),this._targetIndex++,this._targetIndex===2&&(this._targetIndex=0);const s=this._sourceBuffer;this._sourceBuffer=this._targetBuffer,this._targetBuffer=s,t.setDepthWrite(i)}render(e=!1,t=!1){if(!this._started||!this.isReady())return 0;if(!e&&this._scene){if(!this._preWarmDone&&this.preWarmCycles){for(let n=0;n<this.preWarmCycles;n++)this.animate(!0),this.render(!0,!0);this._preWarmDone=!0}if(this._currentRenderId===this._scene.getRenderId()&&(!this._scene.activeCamera||this._scene.activeCamera&&this._currentRenderingCameraUniqueId===this._scene.activeCamera.uniqueId))return 0;this._currentRenderId=this._scene.getRenderId(),this._scene.activeCamera&&(this._currentRenderingCameraUniqueId=this._scene.activeCamera.uniqueId)}if(this._initialize(),this.manualEmitCount>-1?(this._accumulatedCount+=this.manualEmitCount,this.manualEmitCount=0):this._accumulatedCount+=this.emitRate*this._timeDelta,this._accumulatedCount>=1){const n=this._accumulatedCount|0;this._accumulatedCount-=n,this._currentActiveCount+=n}if(this._currentActiveCount=Math.min(this._maxActiveParticleCount,this._currentActiveCount),!this._currentActiveCount)return 0;let i;if(this.emitter.position)i=this.emitter.getWorldMatrix();else{const n=this.emitter;i=ae.Matrix[0],me.TranslationToRef(n.x,n.y,n.z,i)}const s=this._engine;this.updateInAnimate||this._update(i);let r=0;return!e&&!t&&(s.setState(!1),this.forceDepthWrite&&s.setDepthWrite(!0),this.blendMode===xn.BLENDMODE_MULTIPLYADD?r=this._render(xn.BLENDMODE_MULTIPLY,i)+this._render(xn.BLENDMODE_ADD,i):r=this._render(this.blendMode,i),this._engine.setAlphaMode(0)),r}rebuild(){const e=()=>{!this._recreateUpdateEffect()||!this._platform.isUpdateBufferReady()?setTimeout(e,10):(this._initialize(!0),this._rebuildingAfterContextLost=!1)};this._createIndexBuffer(),this._cachedUpdateDefines="",this._platform.contextLost(),this._rebuildingAfterContextLost=!0,e()}_releaseBuffers(){this._buffer0&&(this._buffer0.dispose(),this._buffer0=null),this._buffer1&&(this._buffer1.dispose(),this._buffer1=null),this._spriteBuffer&&(this._spriteBuffer.dispose(),this._spriteBuffer=null),this._platform.releaseBuffers()}dispose(e=!0){for(const t in this._drawWrappers)this._drawWrappers[t].dispose();if(this._drawWrappers={},this._scene){const t=this._scene.particleSystems.indexOf(this);t>-1&&this._scene.particleSystems.splice(t,1)}this._releaseBuffers(),this._platform.releaseVertexBuffers();for(let t=0;t<this._renderVertexBuffers.length;++t){const i=this._renderVertexBuffers[t];for(const s in i)i[s].dispose()}this._renderVertexBuffers=[],this._colorGradientsTexture&&(this._colorGradientsTexture.dispose(),this._colorGradientsTexture=null),this._sizeGradientsTexture&&(this._sizeGradientsTexture.dispose(),this._sizeGradientsTexture=null),this._angularSpeedGradientsTexture&&(this._angularSpeedGradientsTexture.dispose(),this._angularSpeedGradientsTexture=null),this._velocityGradientsTexture&&(this._velocityGradientsTexture.dispose(),this._velocityGradientsTexture=null),this._limitVelocityGradientsTexture&&(this._limitVelocityGradientsTexture.dispose(),this._limitVelocityGradientsTexture=null),this._dragGradientsTexture&&(this._dragGradientsTexture.dispose(),this._dragGradientsTexture=null),this._randomTexture&&(this._randomTexture.dispose(),this._randomTexture=null),this._randomTexture2&&(this._randomTexture2.dispose(),this._randomTexture2=null),e&&this.particleTexture&&(this.particleTexture.dispose(),this.particleTexture=null),e&&this.noiseTexture&&(this.noiseTexture.dispose(),this.noiseTexture=null),this.onStoppedObservable.clear(),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear()}clone(e,t,i=!1){const s={...this._customWrappers};let r=null;const n=this._engine;if(n.createEffectForParticles&&this.customShader!=null){r=this.customShader;const c=r.shaderOptions.defines.length>0?r.shaderOptions.defines.join(`
`):"";s[0]=n.createEffectForParticles(r.shaderPath.fragmentElement,r.shaderOptions.uniforms,r.shaderOptions.samplers,c,void 0,void 0,void 0,this)}const o=this.serialize(i),l=A_.Parse(o,this._scene||this._engine,this._rootUrl);return l.name=e,l.customShader=r,l._customWrappers=s,t===void 0&&(t=this.emitter),this.noiseTexture&&(l.noiseTexture=this.noiseTexture.clone()),l.emitter=t,l}serialize(e=!1){const t={};return xn._Serialize(t,this,e),t.activeParticleCount=this.activeParticleCount,t.randomTextureSize=this._randomTextureSize,t.customShader=this.customShader,t}static Parse(e,t,i,s=!1,r){const n=e.name;let o,l;t instanceof dt?o=t:(l=t,o=l.getEngine());const c=new A_(n,{capacity:r||e.capacity,randomTextureSize:e.randomTextureSize},t,null,e.isAnimationSheetEnabled);if(c._rootUrl=i,e.customShader&&o.createEffectForParticles){const u=e.customShader,f=u.shaderOptions.defines.length>0?u.shaderOptions.defines.join(`
`):"",p=o.createEffectForParticles(u.shaderPath.fragmentElement,u.shaderOptions.uniforms,u.shaderOptions.samplers,f,void 0,void 0,void 0,c);c.setCustomEffect(p,0),c.customShader=u}return e.id&&(c.id=e.id),e.activeParticleCount&&(c.activeParticleCount=e.activeParticleCount),xn._Parse(e,c,t,i),e.preventAutoStart&&(c.preventAutoStart=e.preventAutoStart),!s&&!c.preventAutoStart&&c.start(),c}}class HL{constructor(){this._emitterNodeIsOwned=!0,this.systems=[]}get emitterNode(){return this._emitterNode}set emitterNode(e){this._emitterNodeIsOwned&&this._emitterNode&&(this._emitterNode.dispose&&this._emitterNode.dispose(),this._emitterNodeIsOwned=!1);for(const t of this.systems)t.emitter=e;this._emitterNode=e}setEmitterAsSphere(e,t,i){this._emitterNodeIsOwned&&this._emitterNode&&this._emitterNode.dispose&&this._emitterNode.dispose(),this._emitterNodeIsOwned=!0,this._emitterCreationOptions={kind:"Sphere",options:e,renderingGroupId:t};const s=hd("emitterSphere",{diameter:e.diameter,segments:e.segments},i);s.renderingGroupId=t;const r=new Bt("emitterSphereMaterial",i);r.emissiveColor=e.color,s.material=r;for(const n of this.systems)n.emitter=s;this._emitterNode=s}start(e){for(const t of this.systems)e&&(t.emitter=e),t.start()}dispose(){for(const e of this.systems)e.dispose();this.systems.length=0,this._emitterNode&&(this._emitterNode.dispose&&this._emitterNode.dispose(),this._emitterNode=null)}serialize(e=!1){const t={};t.systems=[];for(const i of this.systems)t.systems.push(i.serialize(e));return this._emitterNode&&(t.emitter=this._emitterCreationOptions),t}static Parse(e,t,i=!1,s){const r=new HL,n=this.BaseAssetsUrl+"/textures/";t=t||ei.LastCreatedScene;for(const o of e.systems)r.systems.push(i?A_.Parse(o,t,n,!0,s):xn.Parse(o,t,n,!0,s));if(e.emitter){const o=e.emitter.options;switch(e.emitter.kind){case"Sphere":r.setEmitterAsSphere({diameter:o.diameter,segments:o.segments,color:Pe.FromArray(o.color)},e.emitter.renderingGroupId,t);break}}return r}}HL.BaseAssetsUrl="https://assets.babylonjs.com/particles";class YL{static CreateDefault(e,t=500,i,s=!1){let r;s?r=new A_("default system",{capacity:t},i):r=new xn("default system",t,i),r.emitter=e;const n=Le.GetAssetUrl("https://assets.babylonjs.com/core/textures/flare.png");return r.particleTexture=new be(n,r.getScene()),r.createConeEmitter(.1,Math.PI/4),r.color1=new St(1,1,1,1),r.color2=new St(1,1,1,1),r.colorDead=new St(1,1,1,0),r.minSize=.1,r.maxSize=.1,r.minEmitPower=2,r.maxEmitPower=2,r.updateSpeed=1/60,r.emitRate=30,r}static CreateAsync(e,t,i=!1,s){t||(t=ei.LastCreatedScene);const r={};return t.addPendingData(r),new Promise((n,o)=>{if(i&&!A_.IsSupported)return t.removePendingData(r),o("Particle system with GPU is not supported.");Le.LoadFile(`${YL.BaseAssetsUrl}/systems/${e}.json`,l=>{t.removePendingData(r);const c=JSON.parse(l.toString());return n(HL.Parse(c,t,i,s))},void 0,void 0,void 0,()=>(t.removePendingData(r),o(`An error occurred with the creation of your particle system. Check if your type '${e}' exists.`)))})}static ExportSet(e){const t=new HL;for(const i of e)t.systems.push(i);return t}static ParseFromFileAsync(e,t,i,s=!1,r="",n){return new Promise((o,l)=>{const c=new ha;c.addEventListener("readystatechange",()=>{if(c.readyState==4)if(c.status==200){const u=JSON.parse(c.responseText);let f;s?f=A_.Parse(u,i,r,!1,n):f=xn.Parse(u,i,r,!1,n),e&&(f.name=e),o(f)}else l("Unable to load the particle system")}),c.open("GET",t),c.send()})}static ParseFromSnippetAsync(e,t,i=!1,s="",r){if(e==="_BLANK"){const n=this.CreateDefault(null);return n.start(),Promise.resolve(n)}return new Promise((n,o)=>{const l=new ha;l.addEventListener("readystatechange",()=>{if(l.readyState==4)if(l.status==200){const c=JSON.parse(JSON.parse(l.responseText).jsonPayload),u=JSON.parse(c.particleSystem);let f;i?f=A_.Parse(u,t,s,!1,r):f=xn.Parse(u,t,s,!1,r),f.snippetId=e,n(f)}else o("Unable to load the snippet "+e)}),l.open("GET",this.SnippetUrl+"/"+e.replace(/#/g,"/")),l.send()})}}YL.BaseAssetsUrl=HL.BaseAssetsUrl,YL.SnippetUrl="https://snippet.babylonjs.com",YL.CreateFromSnippetAsync=YL.ParseFromSnippetAsync,aL(jt.NAME_PARTICLESYSTEM,(a,e,t,i)=>{const s=LK(jt.NAME_PARTICLESYSTEM);if(s&&a.particleSystems!==void 0&&a.particleSystems!==null)for(let r=0,n=a.particleSystems.length;r<n;r++){const o=a.particleSystems[r];t.particleSystems.push(s(o,e,i))}}),h1e(jt.NAME_PARTICLESYSTEM,(a,e,t)=>a.activeParticleCount?A_.Parse(a,e,t):xn.Parse(a,e,t)),dt.prototype.createEffectForParticles=function(a,e=[],t=[],i="",s,r,n,o,l=0,c){let u=[],f=[];const p=[];return o?o.fillUniformsAttributesAndSamplerNames(f,u,p):(u=xn._GetAttributeNamesOrOptions(),f=xn._GetEffectCreationOptions()),i.indexOf(" BILLBOARD")===-1&&(i+=`
#define BILLBOARD
`),o!=null&&o.isAnimationSheetEnabled&&i.indexOf(" ANIMATESHEET")===-1&&(i+=`
#define ANIMATESHEET
`),t.indexOf("diffuseSampler")===-1&&t.push("diffuseSampler"),this.createEffect({vertex:c??(o==null?void 0:o.vertexShaderName)??"particles",fragmentElement:a},u,f.concat(e),p.concat(t),i,s,r,n,void 0,l,async()=>{l===0?await Promise.resolve().then(()=>Ibe):await Promise.resolve().then(()=>Nbe)})},Ne.prototype.getEmittedParticleSystems=function(){const a=[];for(let e=0;e<this.getScene().particleSystems.length;e++){const t=this.getScene().particleSystems[e];t.emitter===this&&a.push(t)}return a},Ne.prototype.getHierarchyEmittedParticleSystems=function(){const a=[],e=this.getDescendants();e.push(this);for(let t=0;t<this.getScene().particleSystems.length;t++){const i=this.getScene().particleSystems[t],s=i.emitter;s.position&&e.indexOf(s)!==-1&&a.push(i)}return a};class rae{getBoundingInfo(){return this._boundingInfo}get hasBoundingInfo(){return this._boundingInfo!==null}constructor(e,t,i,s,r,n,o,l,c=null,u=null){this.idx=0,this.id=0,this.color=new St(1,1,1,1),this.position=P.Zero(),this.rotation=P.Zero(),this.scaling=P.One(),this.uvs=new Yt(0,0,1,1),this.velocity=P.Zero(),this.pivot=P.Zero(),this.translateFromPivot=!1,this.alive=!0,this.isVisible=!0,this._pos=0,this._ind=0,this.shapeId=0,this.idxInShape=0,this._stillInvisible=!1,this._rotationMatrix=[1,0,0,0,1,0,0,0,1],this.parentId=null,this.materialIndex=null,this.props=null,this.cullingStrategy=cr.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY,this._globalPosition=P.Zero(),this.idx=e,this.id=t,this._pos=i,this._ind=s,this._model=r,this.shapeId=n,this.idxInShape=o,this._sps=l,c&&(this._modelBoundingInfo=c,this._boundingInfo=new nd(c.minimum,c.maximum)),u!==null&&(this.materialIndex=u)}copyToRef(e){return e.position.copyFrom(this.position),e.rotation.copyFrom(this.rotation),this.rotationQuaternion&&(e.rotationQuaternion?e.rotationQuaternion.copyFrom(this.rotationQuaternion):e.rotationQuaternion=this.rotationQuaternion.clone()),e.scaling.copyFrom(this.scaling),this.color&&(e.color?e.color.copyFrom(this.color):e.color=this.color.clone()),e.uvs.copyFrom(this.uvs),e.velocity.copyFrom(this.velocity),e.pivot.copyFrom(this.pivot),e.translateFromPivot=this.translateFromPivot,e.alive=this.alive,e.isVisible=this.isVisible,e.parentId=this.parentId,e.cullingStrategy=this.cullingStrategy,this.materialIndex!==null&&(e.materialIndex=this.materialIndex),this}get scale(){return this.scaling}set scale(e){this.scaling=e}get quaternion(){return this.rotationQuaternion}set quaternion(e){this.rotationQuaternion=e}intersectsMesh(e){return!this._boundingInfo||!e.hasBoundingInfo?!1:this._sps._bSphereOnly?Vv.Intersects(this._boundingInfo.boundingSphere,e.getBoundingInfo().boundingSphere):this._boundingInfo.intersects(e.getBoundingInfo(),!1)}isInFrustum(e){return this._boundingInfo!==null&&this._boundingInfo.isInFrustum(e,this.cullingStrategy)}getRotationMatrix(e){let t;if(this.rotationQuaternion)t=this.rotationQuaternion;else{t=ae.Quaternion[0];const i=this.rotation;Re.RotationYawPitchRollToRef(i.y,i.x,i.z,t)}t.toRotationMatrix(e)}}class nae{get shapeID(){return this.shapeId}set shapeID(e){this.shapeId=e}constructor(e,t,i,s,r,n,o,l,c){this._indicesLength=0,this.shapeId=e,this._shape=t,this._indices=i,this._indicesLength=i.length,this._shapeUV=n,this._shapeColors=r,this._normals=s,this._positionFunction=o,this._vertexFunction=l,this._material=c}}class Cbe{constructor(e,t,i,s){this.idx=0,this.ind=0,this.indicesLength=0,this.sqDistance=0,this.materialIndex=0,this.idx=e,this.ind=t,this.indicesLength=i,this.materialIndex=s}}class xbe{constructor(){this.position=P.Zero(),this.color=new St(1,1,1,1),this.uv=Ue.Zero()}get x(){return this.position.x}set x(e){this.position.x=e}get y(){return this.position.y}set y(e){this.position.y=e}get z(){return this.position.z}set z(e){this.position.z=e}}class bbe{constructor(e,t,i){this.particles=new Array,this.nbParticles=0,this.billboard=!1,this.recomputeNormals=!1,this.counter=0,this.vars={},this._bSphereOnly=!1,this._bSphereRadiusFactor=1,this._positions=new Array,this._indices=new Array,this._normals=new Array,this._colors=new Array,this._uvs=new Array,this._index=0,this._updatable=!0,this._pickable=!1,this._isVisibilityBoxLocked=!1,this._alwaysVisible=!1,this._depthSort=!1,this._expandable=!1,this._shapeCounter=0,this._copy=new rae(0,0,0,0,null,0,0,this),this._color=new St(0,0,0,0),this._computeParticleColor=!0,this._computeParticleTexture=!0,this._computeParticleRotation=!0,this._computeParticleVertex=!1,this._computeBoundingBox=!1,this._autoFixFaceOrientation=!1,this._depthSortParticles=!0,this._mustUnrotateFixedNormals=!1,this._particlesIntersect=!1,this._needs32Bits=!1,this._isNotBuilt=!0,this._lastParticleId=0,this._idxOfId=[],this._multimaterialEnabled=!1,this._useModelMaterial=!1,this._depthSortFunction=(s,r)=>r.sqDistance-s.sqDistance,this._materialSortFunction=(s,r)=>s.materialIndex-r.materialIndex,this._autoUpdateSubMeshes=!1,this._recomputeInvisibles=!1,this.name=e,this._scene=t||ei.LastCreatedScene,this._camera=t.activeCamera,this._pickable=i?i.isPickable:!1,this._depthSort=i?i.enableDepthSort:!1,this._multimaterialEnabled=i?i.enableMultiMaterial:!1,this._useModelMaterial=i?i.useModelMaterial:!1,this._multimaterialEnabled=this._useModelMaterial?!0:this._multimaterialEnabled,this._expandable=i?i.expandable:!1,this._particlesIntersect=i?i.particleIntersection:!1,this._bSphereOnly=i?i.boundingSphereOnly:!1,this._bSphereRadiusFactor=i&&i.bSphereRadiusFactor?i.bSphereRadiusFactor:1,this._computeBoundingBox=i!=null&&i.computeBoundingBox?i.computeBoundingBox:!1,this._autoFixFaceOrientation=i!=null&&i.autoFixFaceOrientation?i.autoFixFaceOrientation:!1,i&&i.updatable!==void 0?this._updatable=i.updatable:this._updatable=!0,this._pickable&&(this.pickedBySubMesh=[[]],this.pickedParticles=this.pickedBySubMesh[0]),(this._depthSort||this._multimaterialEnabled)&&(this.depthSortedParticles=[]),this._multimaterialEnabled&&(this._multimaterial=new tf(this.name+"MultiMaterial",this._scene),this._materials=[],this._materialIndexesById={}),this._tmpVertex=new xbe}buildMesh(){if(!this._isNotBuilt&&this.mesh)return this.mesh;if(this.nbParticles===0&&!this.mesh){const t=wP("",{radius:1,tessellation:3},this._scene);this.addShape(t,1),t.dispose()}if(this._indices32=this._needs32Bits?new Uint32Array(this._indices):new Uint16Array(this._indices),this._positions32=new Float32Array(this._positions),this._uvs32=new Float32Array(this._uvs),this._colors32=new Float32Array(this._colors),!this.mesh){const t=new Ne(this.name,this._scene);this.mesh=t}!this._updatable&&this._multimaterialEnabled&&this._sortParticlesByMaterial(),this.recomputeNormals&&wt.ComputeNormals(this._positions32,this._indices32,this._normals),this._normals32=new Float32Array(this._normals),this._fixedNormal32=new Float32Array(this._normals),this._mustUnrotateFixedNormals&&this._unrotateFixedNormals();const e=new wt;if(e.indices=this._depthSort?this._indices:this._indices32,e.set(this._positions32,q.PositionKind),e.set(this._normals32,q.NormalKind),this._uvs32.length>0&&e.set(this._uvs32,q.UVKind),this._colors32.length>0&&e.set(this._colors32,q.ColorKind),e.applyToMesh(this.mesh,this._updatable),this.mesh.isPickable=this._pickable,this._pickable){let t=0;for(let i=0;i<this.nbParticles;i++){const s=this.particles[i],r=s._model._indicesLength;for(let n=0;n<r;n++)if(n%3==0){const l={idx:s.idx,faceId:t};this.pickedParticles[t]=l,t++}}}return this._multimaterialEnabled&&this.setMultiMaterial(this._materials),this._expandable||(!this._depthSort&&!this._multimaterialEnabled&&!this._autoFixFaceOrientation&&(this._indices=null),this._positions=null,this._normals=null,this._uvs=null,this._colors=null,this._updatable||(this.particles.length=0)),this._isNotBuilt=!1,this.recomputeNormals=!1,this._recomputeInvisibles=!0,this.mesh}_getUVKind(e,t){var i,s;return t===-1&&((i=e.material)!=null&&i.diffuseTexture?t=e.material.diffuseTexture.coordinatesIndex:(s=e.material)!=null&&s.albedoTexture&&(t=e.material.albedoTexture.coordinatesIndex)),"uv"+(t?t+1:"")}digest(e,t){let i=t&&t.facetNb||1,s=t&&t.number||0,r=t&&t.delta||0;const n=e.getVerticesData(q.PositionKind),o=e.getIndices(),l=e.getVerticesData(this._getUVKind(e,(t==null?void 0:t.uvKind)??0)),c=e.getVerticesData(q.ColorKind),u=e.getVerticesData(q.NormalKind),f=t&&t.storage?t.storage:null;let p=0;const m=o.length/3;s?(s=s>m?m:s,i=Math.round(m/s),r=0):i=i>m?m:i;const _=[],d=[],h=[],x=[],A=[],S=P.Zero(),E=i;for(;p<m;){i=E+Math.floor((1+r)*Math.random()),p>m-i&&(i=m-p),_.length=0,d.length=0,h.length=0,x.length=0,A.length=0;let b=0;for(let ne=p*3;ne<(p+i)*3;ne++){h.push(b);const te=o[ne],W=te*3;if(_.push(n[W],n[W+1],n[W+2]),d.push(u[W],u[W+1],u[W+2]),l){const Q=te*2;x.push(l[Q],l[Q+1])}if(c){const Q=te*4;A.push(c[Q],c[Q+1],c[Q+2],c[Q+3])}b++}let M=this.nbParticles;const T=this._posToShape(_),O=this._uvsToShapeUV(x),R=h.slice(),I=A.slice(),N=d.slice();S.copyFromFloats(0,0,0);let w;for(w=0;w<T.length;w++)S.addInPlace(T[w]);S.scaleInPlace(1/T.length);const D=new P(1/0,1/0,1/0),k=new P(-1/0,-1/0,-1/0);for(w=0;w<T.length;w++)T[w].subtractInPlace(S),D.minimizeInPlaceFromFloats(T[w].x,T[w].y,T[w].z),k.maximizeInPlaceFromFloats(T[w].x,T[w].y,T[w].z);let Y;this._particlesIntersect&&(Y=new nd(D,k));let V=null;this._useModelMaterial&&(V=e.material?e.material:this._setDefaultMaterial());const ee=new nae(this._shapeCounter,T,R,N,I,O,null,null,V),K=this._positions.length,ie=this._indices.length;this._meshBuilder(this._index,ie,T,this._positions,R,this._indices,x,this._uvs,I,this._colors,N,this._normals,M,0,null,ee),this._addParticle(M,this._lastParticleId,K,ie,ee,this._shapeCounter,0,Y,f),this.particles[this.nbParticles].position.addInPlace(S),f||(this._index+=T.length,M++,this.nbParticles++,this._lastParticleId++),this._shapeCounter++,p+=i}return this._isNotBuilt=!0,this}_unrotateFixedNormals(){let e=0,t=0;const i=ae.Vector3[0],s=ae.Quaternion[0],r=ae.Matrix[0];for(let n=0;n<this.particles.length;n++){const o=this.particles[n],l=o._model._shape;if(o.rotationQuaternion)o.rotationQuaternion.conjugateToRef(s);else{const c=o.rotation;Re.RotationYawPitchRollToRef(c.y,c.x,c.z,s),s.conjugateInPlace()}s.toRotationMatrix(r);for(let c=0;c<l.length;c++)t=e+c*3,P.TransformNormalFromFloatsToRef(this._normals32[t],this._normals32[t+1],this._normals32[t+2],r,i),i.toArray(this._fixedNormal32,t);e=t+3}}_resetCopy(){const e=this._copy;e.position.setAll(0),e.rotation.setAll(0),e.rotationQuaternion=null,e.scaling.setAll(1),e.uvs.copyFromFloats(0,0,1,1),e.color=null,e.translateFromPivot=!1,e.shapeId=0,e.materialIndex=null}_meshBuilder(e,t,i,s,r,n,o,l,c,u,f,p,m,_,d,h){let x,A=0,S=0,E=0;this._resetCopy();const b=this._copy,M=!!(d&&d.storage);if(b.idx=m,b.idxInShape=_,b.shapeId=h.shapeId,this._useModelMaterial){const V=h._material.uniqueId,ee=this._materialIndexesById;Object.prototype.hasOwnProperty.call(ee,V)||(ee[V]=this._materials.length,this._materials.push(h._material));const K=ee[V];b.materialIndex=K}if(d&&d.positionFunction&&(d.positionFunction(b,m,_),this._mustUnrotateFixedNormals=!0),M)return b;const T=ae.Matrix[0],O=this._tmpVertex,R=O.position,I=O.color,N=O.uv,w=ae.Vector3[1],D=ae.Vector3[2],k=ae.Vector3[3];me.IdentityToRef(T),b.getRotationMatrix(T),b.pivot.multiplyToRef(b.scaling,k),b.translateFromPivot?D.setAll(0):D.copyFrom(k);const Y=d&&d.vertexFunction;for(x=0;x<i.length;x++){if(R.copyFrom(i[x]),b.color&&I.copyFrom(b.color),o&&N.copyFromFloats(o[A],o[A+1]),Y&&d.vertexFunction(b,O,x),R.multiplyInPlace(b.scaling).subtractInPlace(k),P.TransformCoordinatesToRef(R,T,w),w.addInPlace(D).addInPlace(b.position),s.push(w.x,w.y,w.z),o){const V=b.uvs;l.push((V.z-V.x)*N.x+V.x,(V.w-V.y)*N.y+V.y),A+=2}if(b.color)this._color.copyFrom(I);else{const V=this._color;c&&c[S]!==void 0?(V.r=c[S],V.g=c[S+1],V.b=c[S+2],V.a=c[S+3]):(V.r=1,V.g=1,V.b=1,V.a=1)}u.push(this._color.r,this._color.g,this._color.b,this._color.a),S+=4,!this.recomputeNormals&&f&&(P.TransformNormalFromFloatsToRef(f[E],f[E+1],f[E+2],T,R),p.push(R.x,R.y,R.z),E+=3)}for(x=0;x<r.length;x++){const V=e+r[x];n.push(V),V>65535&&(this._needs32Bits=!0)}if(this._depthSort||this._multimaterialEnabled){const V=b.materialIndex!==null?b.materialIndex:0;this.depthSortedParticles.push(new Cbe(m,t,r.length,V))}return b}_posToShape(e){const t=[];for(let i=0;i<e.length;i+=3)t.push(P.FromArray(e,i));return t}_uvsToShapeUV(e){const t=[];if(e)for(let i=0;i<e.length;i++)t.push(e[i]);return t}_addParticle(e,t,i,s,r,n,o,l=null,c=null){const u=new rae(e,t,i,s,r,n,o,this,l);return(c||this.particles).push(u),u}addShape(e,t,i){const s=e.getVerticesData(q.PositionKind),r=e.getIndices(),n=e.getVerticesData(q.UVKind),o=e.getVerticesData(q.ColorKind),l=e.getVerticesData(q.NormalKind);this.recomputeNormals=!l;const c=Array.from(r),u=l?Array.from(l):[],f=o?Array.from(o):[],p=i&&i.storage?i.storage:null;let m=null;this._particlesIntersect&&(m=e.getBoundingInfo());const _=this._posToShape(s),d=this._uvsToShapeUV(n),h=i?i.positionFunction:null,x=i?i.vertexFunction:null;let A=null;this._useModelMaterial&&(A=e.material?e.material:this._setDefaultMaterial());const S=new nae(this._shapeCounter,_,c,u,f,d,h,x,A);for(let E=0;E<t;E++)this._insertNewParticle(this.nbParticles,E,S,_,r,n,o,l,m,p,i);return this._shapeCounter++,this._isNotBuilt=!0,this._shapeCounter-1}_rebuildParticle(e,t=!1){this._resetCopy();const i=this._copy;e._model._positionFunction&&e._model._positionFunction(i,e.idx,e.idxInShape);const s=ae.Matrix[0],r=ae.Vector3[0],n=ae.Vector3[1],o=ae.Vector3[2],l=ae.Vector3[3];i.getRotationMatrix(s),e.pivot.multiplyToRef(e.scaling,l),i.translateFromPivot?o.copyFromFloats(0,0,0):o.copyFrom(l);const c=e._model._shape;for(let u=0;u<c.length;u++)r.copyFrom(c[u]),e._model._vertexFunction&&e._model._vertexFunction(i,r,u),r.multiplyInPlace(i.scaling).subtractInPlace(l),P.TransformCoordinatesToRef(r,s,n),n.addInPlace(o).addInPlace(i.position).toArray(this._positions32,e._pos+u*3);t&&(e.position.setAll(0),e.rotation.setAll(0),e.rotationQuaternion=null,e.scaling.setAll(1),e.uvs.setAll(0),e.pivot.setAll(0),e.translateFromPivot=!1,e.parentId=null)}rebuildMesh(e=!1){for(let t=0;t<this.particles.length;t++)this._rebuildParticle(this.particles[t],e);return this.mesh.updateVerticesData(q.PositionKind,this._positions32,!1,!1),this}removeParticles(e,t){const i=t-e+1;if(!this._expandable||i<=0||i>=this.nbParticles||!this._updatable)return[];const s=this.particles,r=this.nbParticles;if(t<r-1){const c=t+1,u=s[c]._pos-s[e]._pos,f=s[c]._ind-s[e]._ind;for(let p=c;p<r;p++){const m=s[p];m._pos-=u,m._ind-=f}}const n=s.splice(e,i);this._positions.length=0,this._indices.length=0,this._colors.length=0,this._uvs.length=0,this._normals.length=0,this._index=0,this._idxOfId.length=0,(this._depthSort||this._multimaterialEnabled)&&(this.depthSortedParticles=[]);let o=0;const l=s.length;for(let c=0;c<l;c++){const u=s[c],f=u._model,p=f._shape,m=f._indices,_=f._normals,d=f._shapeColors,h=f._shapeUV;u.idx=c,this._idxOfId[u.id]=c,this._meshBuilder(this._index,o,p,this._positions,m,this._indices,h,this._uvs,d,this._colors,_,this._normals,u.idx,u.idxInShape,null,f),this._index+=p.length,o+=m.length}return this.nbParticles-=i,this._isNotBuilt=!0,n}insertParticlesFromArray(e){if(!this._expandable)return this;let t=0,i=e[0].shapeId;const s=e.length;for(let r=0;r<s;r++){const n=e[r],o=n._model,l=o._shape,c=o._indices,u=o._shapeUV,f=o._shapeColors,p=o._normals,m=!p;this.recomputeNormals=m||this.recomputeNormals;const _=n.getBoundingInfo(),d=this._insertNewParticle(this.nbParticles,t,o,l,c,u,f,p,_,null,null);n.copyToRef(d),t++,i!=n.shapeId&&(i=n.shapeId,t=0)}return this._isNotBuilt=!0,this}_insertNewParticle(e,t,i,s,r,n,o,l,c,u,f){const p=this._positions.length,m=this._indices.length,_=this._meshBuilder(this._index,m,s,this._positions,r,this._indices,n,this._uvs,o,this._colors,l,this._normals,e,t,f,i);let d=null;return this._updatable&&(d=this._addParticle(this.nbParticles,this._lastParticleId,p,m,i,this._shapeCounter,t,c,u),d.position.copyFrom(_.position),d.rotation.copyFrom(_.rotation),_.rotationQuaternion&&(d.rotationQuaternion?d.rotationQuaternion.copyFrom(_.rotationQuaternion):d.rotationQuaternion=_.rotationQuaternion.clone()),_.color&&(d.color?d.color.copyFrom(_.color):d.color=_.color.clone()),d.scaling.copyFrom(_.scaling),d.uvs.copyFrom(_.uvs),_.materialIndex!==null&&(d.materialIndex=_.materialIndex),this.expandable&&(this._idxOfId[d.id]=d.idx)),u||(this._index+=s.length,this.nbParticles++,this._lastParticleId++),d}setParticles(e=0,t=this.nbParticles-1,i=!0){if(!this._updatable||this._isNotBuilt)return this;this.beforeUpdateParticles(e,t,i);const s=ae.Matrix[0],r=ae.Matrix[1],n=this.mesh,o=this._colors32,l=this._positions32,c=this._normals32,u=this._uvs32,f=this._indices32,p=this._indices,m=this._fixedNormal32,_=this._depthSort&&this._depthSortParticles,d=ae.Vector3,h=d[5].copyFromFloats(1,0,0),x=d[6].copyFromFloats(0,1,0),A=d[7].copyFromFloats(0,0,1),S=d[8].setAll(Number.MAX_VALUE),E=d[9].setAll(-Number.MAX_VALUE),b=d[10].setAll(0),M=this._tmpVertex,T=M.position,O=M.color,R=M.uv;if((this.billboard||this._depthSort)&&(this.mesh.computeWorldMatrix(!0),this.mesh._worldMatrix.invertToRef(r)),this.billboard){const K=d[0];this._camera.getDirectionToRef(fo.Z,K),P.TransformNormalToRef(K,r,A),A.normalize();const ie=this._camera.getViewMatrix(!0);P.TransformNormalFromFloatsToRef(ie.m[1],ie.m[5],ie.m[9],r,x),P.CrossToRef(x,A,h),x.normalize(),h.normalize()}this._depthSort&&P.TransformCoordinatesToRef(this._camera.globalPosition,r,b),me.IdentityToRef(s);let I=0,N=0,w=0,D=0,k=0,Y=0,V=0;if(this.mesh.isFacetDataEnabled&&(this._computeBoundingBox=!0),t=t>=this.nbParticles?this.nbParticles-1:t,this._computeBoundingBox&&(e!=0||t!=this.nbParticles-1)){const K=this.mesh.getBoundingInfo();K&&(S.copyFrom(K.minimum),E.copyFrom(K.maximum))}N=this.particles[e]._pos;const ee=N/3|0;D=ee*4,Y=ee*2;for(let K=e;K<=t;K++){const ie=this.particles[K];this.updateParticle(ie);const ne=ie._model._shape,te=ie._model._shapeUV,W=ie._rotationMatrix,Q=ie.position,re=ie.rotation,oe=ie.scaling,X=ie._globalPosition;if(_){const se=this.depthSortedParticles[K];se.idx=ie.idx,se.ind=ie._ind,se.indicesLength=ie._model._indicesLength,se.sqDistance=P.DistanceSquared(ie.position,b)}if(!ie.alive||ie._stillInvisible&&!ie.isVisible&&!this._recomputeInvisibles){V=ne.length,N+=V*3,D+=V*4,Y+=V*2;continue}if(ie.isVisible){ie._stillInvisible=!1;const se=d[12];if(ie.pivot.multiplyToRef(oe,se),this.billboard&&(re.x=0,re.y=0),(this._computeParticleRotation||this.billboard)&&ie.getRotationMatrix(s),ie.parentId!==null){const fe=this.getParticleById(ie.parentId);if(fe){const Ae=fe._rotationMatrix,Se=fe._globalPosition,we=Q.x*Ae[1]+Q.y*Ae[4]+Q.z*Ae[7],ke=Q.x*Ae[0]+Q.y*Ae[3]+Q.z*Ae[6],st=Q.x*Ae[2]+Q.y*Ae[5]+Q.z*Ae[8];if(X.x=Se.x+ke,X.y=Se.y+we,X.z=Se.z+st,this._computeParticleRotation||this.billboard){const Ve=s.m;W[0]=Ve[0]*Ae[0]+Ve[1]*Ae[3]+Ve[2]*Ae[6],W[1]=Ve[0]*Ae[1]+Ve[1]*Ae[4]+Ve[2]*Ae[7],W[2]=Ve[0]*Ae[2]+Ve[1]*Ae[5]+Ve[2]*Ae[8],W[3]=Ve[4]*Ae[0]+Ve[5]*Ae[3]+Ve[6]*Ae[6],W[4]=Ve[4]*Ae[1]+Ve[5]*Ae[4]+Ve[6]*Ae[7],W[5]=Ve[4]*Ae[2]+Ve[5]*Ae[5]+Ve[6]*Ae[8],W[6]=Ve[8]*Ae[0]+Ve[9]*Ae[3]+Ve[10]*Ae[6],W[7]=Ve[8]*Ae[1]+Ve[9]*Ae[4]+Ve[10]*Ae[7],W[8]=Ve[8]*Ae[2]+Ve[9]*Ae[5]+Ve[10]*Ae[8]}}else ie.parentId=null}else if(X.x=Q.x,X.y=Q.y,X.z=Q.z,this._computeParticleRotation||this.billboard){const fe=s.m;W[0]=fe[0],W[1]=fe[1],W[2]=fe[2],W[3]=fe[4],W[4]=fe[5],W[5]=fe[6],W[6]=fe[8],W[7]=fe[9],W[8]=fe[10]}const he=d[11];for(ie.translateFromPivot?he.setAll(0):he.copyFrom(se),V=0;V<ne.length;V++){I=N+V*3,w=D+V*4,k=Y+V*2;const fe=2*V,Ae=fe+1;T.copyFrom(ne[V]),this._computeParticleColor&&ie.color&&O.copyFrom(ie.color),this._computeParticleTexture&&R.copyFromFloats(te[fe],te[Ae]),this._computeParticleVertex&&this.updateParticleVertex(ie,M,V);const Se=T.x*oe.x-se.x,we=T.y*oe.y-se.y,ke=T.z*oe.z-se.z;let st=Se*W[0]+we*W[3]+ke*W[6],Ve=Se*W[1]+we*W[4]+ke*W[7],Ke=Se*W[2]+we*W[5]+ke*W[8];st+=he.x,Ve+=he.y,Ke+=he.z;const ct=l[I]=X.x+h.x*st+x.x*Ve+A.x*Ke,nt=l[I+1]=X.y+h.y*st+x.y*Ve+A.y*Ke,at=l[I+2]=X.z+h.z*st+x.z*Ve+A.z*Ke;if(this._computeBoundingBox&&(S.minimizeInPlaceFromFloats(ct,nt,at),E.maximizeInPlaceFromFloats(ct,nt,at)),!this._computeParticleVertex){const xt=m[I],Qe=m[I+1],kt=m[I+2],ot=xt*W[0]+Qe*W[3]+kt*W[6],At=xt*W[1]+Qe*W[4]+kt*W[7],Me=xt*W[2]+Qe*W[5]+kt*W[8];c[I]=h.x*ot+x.x*At+A.x*Me,c[I+1]=h.y*ot+x.y*At+A.y*Me,c[I+2]=h.z*ot+x.z*At+A.z*Me}if(this._computeParticleColor&&ie.color){const xt=this._colors32;xt[w]=O.r,xt[w+1]=O.g,xt[w+2]=O.b,xt[w+3]=O.a}if(this._computeParticleTexture){const xt=ie.uvs;u[k]=R.x*(xt.z-xt.x)+xt.x,u[k+1]=R.y*(xt.w-xt.y)+xt.y}}}else for(ie._stillInvisible=!0,V=0;V<ne.length;V++){if(I=N+V*3,w=D+V*4,k=Y+V*2,l[I]=l[I+1]=l[I+2]=0,c[I]=c[I+1]=c[I+2]=0,this._computeParticleColor&&ie.color){const se=ie.color;o[w]=se.r,o[w+1]=se.g,o[w+2]=se.b,o[w+3]=se.a}if(this._computeParticleTexture){const se=ie.uvs;u[k]=te[V*2]*(se.z-se.x)+se.x,u[k+1]=te[V*2+1]*(se.w-se.y)+se.y}}if(this._particlesIntersect){const se=ie.getBoundingInfo(),ue=se.boundingBox,he=se.boundingSphere,fe=ie._modelBoundingInfo;if(!this._bSphereOnly){const Ke=fe.boundingBox.vectors,ct=d[1],nt=d[2];ct.setAll(Number.MAX_VALUE),nt.setAll(-Number.MAX_VALUE);for(let at=0;at<8;at++){const xt=Ke[at].x*oe.x,Qe=Ke[at].y*oe.y,kt=Ke[at].z*oe.z,ot=xt*W[0]+Qe*W[3]+kt*W[6],At=xt*W[1]+Qe*W[4]+kt*W[7],Me=xt*W[2]+Qe*W[5]+kt*W[8],je=Q.x+h.x*ot+x.x*At+A.x*Me,rt=Q.y+h.y*ot+x.y*At+A.y*Me,yt=Q.z+h.z*ot+x.z*At+A.z*Me;ct.minimizeInPlaceFromFloats(je,rt,yt),nt.maximizeInPlaceFromFloats(je,rt,yt)}ue.reConstruct(ct,nt,n._worldMatrix)}const Ae=fe.minimum.multiplyToRef(oe,d[1]),Se=fe.maximum.multiplyToRef(oe,d[2]),we=Se.addToRef(Ae,d[3]).scaleInPlace(.5).addInPlace(X),ke=Se.subtractToRef(Ae,d[4]).scaleInPlace(.5*this._bSphereRadiusFactor),st=we.subtractToRef(ke,d[1]),Ve=we.addToRef(ke,d[2]);he.reConstruct(st,Ve,n._worldMatrix)}N=I+3,D=w+4,Y=k+2}if(i){if(this._computeParticleColor){const ie=n.getVertexBuffer(q.ColorKind);ie&&!n.isPickable?ie.updateDirectly(o,0):n.updateVerticesData(q.ColorKind,o,!1,!1)}if(this._computeParticleTexture){const ie=n.getVertexBuffer(q.UVKind);ie&&!n.isPickable?ie.updateDirectly(u,0):n.updateVerticesData(q.UVKind,u,!1,!1)}const K=n.getVertexBuffer(q.PositionKind);if(K&&!n.isPickable?K.updateDirectly(l,0):n.updateVerticesData(q.PositionKind,l,!1,!1),!n.areNormalsFrozen||n.isFacetDataEnabled){if(this._computeParticleVertex||n.isFacetDataEnabled){const ie=n.isFacetDataEnabled?n.getFacetDataParameters():null;wt.ComputeNormals(l,f,c,ie);for(let ne=0;ne<c.length;ne++)m[ne]=c[ne]}if(!n.areNormalsFrozen){const ie=n.getVertexBuffer(q.NormalKind);ie&&!n.isPickable?ie.updateDirectly(c,0):n.updateVerticesData(q.NormalKind,c,!1,!1)}}if(_){const ie=this.depthSortedParticles;ie.sort(this._depthSortFunction);const ne=ie.length;let te=0,W=0;for(let Q=0;Q<ne;Q++){const re=ie[Q],oe=re.indicesLength,X=re.ind;for(let se=0;se<oe;se++)if(f[te]=p[X+se],te++,this._pickable&&se%3==0){const he=this.pickedParticles[W];he.idx=re.idx,he.faceId=W,W++}}}if(this._autoFixFaceOrientation){let ie=0;for(let ne=0;ne<this.particles.length;ne++){const te=_?this.particles[this.depthSortedParticles[ne].idx]:this.particles[ne];if(te.scale.x*te.scale.y*te.scale.z<0)for(let Q=0;Q<te._model._indicesLength;Q+=3){const re=p[te._ind+Q];f[ie+Q]=p[te._ind+Q+1],f[ie+Q+1]=re}ie+=te._model._indicesLength}}(_||this._autoFixFaceOrientation)&&n.updateIndices(f)}return this._computeBoundingBox&&(n.hasBoundingInfo?n.getBoundingInfo().reConstruct(S,E,n._worldMatrix):n.buildBoundingInfo(S,E,n._worldMatrix)),this._autoUpdateSubMeshes&&this.computeSubMeshes(),this._recomputeInvisibles=!1,this.afterUpdateParticles(e,t,i),this}dispose(){this.mesh.dispose(),this.vars=null,this._positions=null,this._indices=null,this._normals=null,this._uvs=null,this._colors=null,this._indices32=null,this._positions32=null,this._normals32=null,this._fixedNormal32=null,this._uvs32=null,this._colors32=null,this.pickedParticles=null,this.pickedBySubMesh=null,this._materials=null,this._materialIndexes=null,this._indicesByMaterial=null,this._idxOfId=null}pickedParticle(e){if(e.hit){const t=e.subMeshId,i=e.faceId-this.mesh.subMeshes[t].indexStart/3,s=this.pickedBySubMesh;if(s[t]&&s[t][i])return s[t][i]}return null}getParticleById(e){const t=this.particles[e];if(t&&t.id==e)return t;const i=this.particles,s=this._idxOfId[e];if(s!==void 0)return i[s];let r=0;const n=this.nbParticles;for(;r<n;){const o=i[r];if(o.id==e)return o;r++}return null}getParticlesByShapeId(e){const t=[];return this.getParticlesByShapeIdToRef(e,t),t}getParticlesByShapeIdToRef(e,t){t.length=0;for(let i=0;i<this.nbParticles;i++){const s=this.particles[i];s.shapeId==e&&t.push(s)}return this}computeSubMeshes(){if(!this.mesh||!this._multimaterialEnabled)return this;const e=this.depthSortedParticles;if(this.particles.length>0)for(let n=0;n<this.particles.length;n++){const o=this.particles[n];o.materialIndex||(o.materialIndex=0);const l=e[n];l.materialIndex=o.materialIndex,l.ind=o._ind,l.indicesLength=o._model._indicesLength,l.idx=o.idx}this._sortParticlesByMaterial();const t=this._indicesByMaterial,i=this._materialIndexes,s=this.mesh;s.subMeshes=[];const r=s.getTotalVertices();for(let n=0;n<i.length;n++){const o=t[n],l=t[n+1]-o,c=i[n];new Lc(c,0,r,o,l,s)}return this}_sortParticlesByMaterial(){const e=[0];this._indicesByMaterial=e;const t=[];this._materialIndexes=t;const i=this.depthSortedParticles;i.sort(this._materialSortFunction);const s=i.length,r=this._indices32,n=this._indices;let o=0,l=0,c=0,u=i[0].materialIndex;t.push(u),this._pickable&&(this.pickedBySubMesh=[[]],this.pickedParticles=this.pickedBySubMesh[0]);for(let f=0;f<s;f++){const p=i[f],m=p.indicesLength,_=p.ind;p.materialIndex!==u&&(u=p.materialIndex,e.push(c),t.push(u),this._pickable&&(o++,this.pickedBySubMesh[o]=[],l=0));let d=0;for(let h=0;h<m;h++){if(r[c]=n[_+h],this._pickable&&h%3==0){const A=this.pickedBySubMesh[o][l];A?(A.idx=p.idx,A.faceId=d):this.pickedBySubMesh[o][l]={idx:p.idx,faceId:d},l++,d++}c++}}return e.push(r.length),this._updatable&&this.mesh.updateIndices(r),this}_setMaterialIndexesById(){this._materialIndexesById={};for(let e=0;e<this._materials.length;e++){const t=this._materials[e].uniqueId;this._materialIndexesById[t]=e}}_filterUniqueMaterialId(e){return e.filter(function(i,s,r){return r.indexOf(i)===s})}_setDefaultMaterial(){return this._defaultMaterial||(this._defaultMaterial=new Bt(this.name+"DefaultMaterial",this._scene)),this._defaultMaterial}refreshVisibleSize(){return this._isVisibilityBoxLocked||this.mesh.refreshBoundingInfo(),this}setVisibilityBox(e){const t=e/2;this.mesh.buildBoundingInfo(new P(-t,-t,-t),new P(t,t,t))}get isAlwaysVisible(){return this._alwaysVisible}set isAlwaysVisible(e){this._alwaysVisible=e,this.mesh.alwaysSelectAsActiveMesh=e}set isVisibilityBoxLocked(e){this._isVisibilityBoxLocked=e;const t=this.mesh.getBoundingInfo();t.isLocked=e}get isVisibilityBoxLocked(){return this._isVisibilityBoxLocked}set computeParticleRotation(e){this._computeParticleRotation=e}set computeParticleColor(e){this._computeParticleColor=e}set computeParticleTexture(e){this._computeParticleTexture=e}set computeParticleVertex(e){this._computeParticleVertex=e}set computeBoundingBox(e){this._computeBoundingBox=e}set depthSortParticles(e){this._depthSortParticles=e}get computeParticleRotation(){return this._computeParticleRotation}get computeParticleColor(){return this._computeParticleColor}get computeParticleTexture(){return this._computeParticleTexture}get computeParticleVertex(){return this._computeParticleVertex}get computeBoundingBox(){return this._computeBoundingBox}get depthSortParticles(){return this._depthSortParticles}get expandable(){return this._expandable}get multimaterialEnabled(){return this._multimaterialEnabled}get useModelMaterial(){return this._useModelMaterial}get materials(){return this._materials}setMultiMaterial(e){this._materials=this._filterUniqueMaterialId(e),this._setMaterialIndexesById(),this._multimaterial&&this._multimaterial.dispose(),this._multimaterial=new tf(this.name+"MultiMaterial",this._scene);for(let t=0;t<this._materials.length;t++)this._multimaterial.subMaterials.push(this._materials[t]);this.computeSubMeshes(),this.mesh.material=this._multimaterial}get multimaterial(){return this._multimaterial}set multimaterial(e){this._multimaterial=e}get autoUpdateSubMeshes(){return this._autoUpdateSubMeshes}set autoUpdateSubMeshes(e){this._autoUpdateSubMeshes=e}initParticles(){}recycleParticle(e){return e}updateParticle(e){return e}updateParticleVertex(e,t,i){return this}beforeUpdateParticles(e,t,i){}afterUpdateParticles(e,t,i){}}class Sbe{constructor(e,t,i,s,r){this.idx=0,this.color=new St(1,1,1,1),this.position=P.Zero(),this.rotation=P.Zero(),this.uv=new Ue(0,0),this.velocity=P.Zero(),this.pivot=P.Zero(),this.translateFromPivot=!1,this._pos=0,this._ind=0,this.groupId=0,this.idxInGroup=0,this._stillInvisible=!1,this._rotationMatrix=[1,0,0,0,1,0,0,0,1],this.parentId=null,this._globalPosition=P.Zero(),this.idx=e,this._group=t,this.groupId=i,this.idxInGroup=s,this._pcs=r}get size(){return this.size}set size(e){this.size=e}get quaternion(){return this.rotationQuaternion}set quaternion(e){this.rotationQuaternion=e}intersectsMesh(e,t){if(!e.hasBoundingInfo)return!1;if(!this._pcs.mesh)throw new Error("Point Cloud System doesnt contain the Mesh");if(t)return e.getBoundingInfo().boundingSphere.intersectsPoint(this.position.add(this._pcs.mesh.position));const i=e.getBoundingInfo().boundingBox,s=i.maximumWorld.x,r=i.minimumWorld.x,n=i.maximumWorld.y,o=i.minimumWorld.y,l=i.maximumWorld.z,c=i.minimumWorld.z,u=this.position.x+this._pcs.mesh.position.x,f=this.position.y+this._pcs.mesh.position.y,p=this.position.z+this._pcs.mesh.position.z;return r<=u&&u<=s&&o<=f&&f<=n&&c<=p&&p<=l}getRotationMatrix(e){let t;if(this.rotationQuaternion)t=this.rotationQuaternion;else{t=ae.Quaternion[0];const i=this.rotation;Re.RotationYawPitchRollToRef(i.y,i.x,i.z,t)}t.toRotationMatrix(e)}}class SY{get groupID(){return this.groupId}set groupID(e){this.groupId=e}constructor(e,t){this.groupId=e,this._positionFunction=t}}var aae;(function(a){a[a.Color=2]="Color",a[a.UV=1]="UV",a[a.Random=0]="Random",a[a.Stated=3]="Stated"})(aae||(aae={}));class ybe{get positions(){return this._positions32}get colors(){return this._colors32}get uvs(){return this._uvs32}constructor(e,t,i,s){this.particles=new Array,this.nbParticles=0,this.counter=0,this.vars={},this._promises=[],this._positions=new Array,this._indices=new Array,this._normals=new Array,this._colors=new Array,this._uvs=new Array,this._updatable=!0,this._isVisibilityBoxLocked=!1,this._alwaysVisible=!1,this._groups=new Array,this._groupCounter=0,this._computeParticleColor=!0,this._computeParticleTexture=!0,this._computeParticleRotation=!0,this._computeBoundingBox=!1,this._isReady=!1,this.name=e,this._size=t,this._scene=i||ei.LastCreatedScene,s&&s.updatable!==void 0?this._updatable=s.updatable:this._updatable=!0}buildMeshAsync(e){return Promise.all(this._promises).then(()=>(this._isReady=!0,this._buildMesh(e)))}_buildMesh(e){this.nbParticles===0&&this.addPoints(1),this._positions32=new Float32Array(this._positions),this._uvs32=new Float32Array(this._uvs),this._colors32=new Float32Array(this._colors);const t=new wt;t.set(this._positions32,q.PositionKind),this._uvs32.length>0&&t.set(this._uvs32,q.UVKind);let i=0;this._colors32.length>0&&(i=1,t.set(this._colors32,q.ColorKind));const s=new Ne(this.name,this._scene);t.applyToMesh(s,this._updatable),this.mesh=s,this._positions=null,this._uvs=null,this._colors=null,this._updatable||(this.particles.length=0);let r=e;return r||(r=new Bt("point cloud material",this._scene),r.emissiveColor=new Pe(i,i,i),r.disableLighting=!0,r.pointsCloud=!0,r.pointSize=this._size),s.material=r,new Promise(n=>n(s))}_addParticle(e,t,i,s){const r=new Sbe(e,t,i,s,this);return this.particles.push(r),r}_randomUnitVector(e){e.position=new P(Math.random(),Math.random(),Math.random()),e.color=new St(1,1,1,1)}_getColorIndicesForCoord(e,t,i,s){const r=e._groupImageData,n=i*(s*4)+t*4,o=[n,n+1,n+2,n+3],l=o[0],c=o[1],u=o[2],f=o[3],p=r[l],m=r[c],_=r[u],d=r[f];return new St(p/255,m/255,_/255,d)}_setPointsColorOrUV(e,t,i,s,r,n,o,l){l=l??0,i&&e.updateFacetData();const u=2*e.getBoundingInfo().boundingSphere.radius;let f=e.getVerticesData(q.PositionKind);const p=e.getIndices(),m=e.getVerticesData(q.UVKind+(l?l+1:"")),_=e.getVerticesData(q.ColorKind),d=P.Zero();e.computeWorldMatrix();const h=e.getWorldMatrix();if(!h.isIdentity()){f=f.slice(0);for(let ri=0;ri<f.length/3;ri++)P.TransformCoordinatesFromFloatsToRef(f[3*ri],f[3*ri+1],f[3*ri+2],h,d),f[3*ri]=d.x,f[3*ri+1]=d.y,f[3*ri+2]=d.z}let x=0,A=0,S=0,E=0,b=0,M=0,T=0,O=0,R=0,I=0,N=0,w=0,D=0;const k=P.Zero(),Y=P.Zero(),V=P.Zero(),ee=P.Zero(),K=P.Zero();let ie=0,ne=0,te=0,W=0,Q=0,re=0;const oe=Ue.Zero(),X=Ue.Zero(),se=Ue.Zero(),ue=Ue.Zero(),he=Ue.Zero();let fe=0,Ae=0,Se=0,we=0,ke=0,st=0,Ve=0,Ke=0,ct=0,nt=0,at=0,xt=0;const Qe=Yt.Zero(),kt=Yt.Zero(),ot=Yt.Zero(),At=Yt.Zero(),Me=Yt.Zero();let je=0,rt=0;o=o||0;let yt,Rt,Nt=new Yt(0,0,0,0),Kt=P.Zero(),si=P.Zero(),Pi=P.Zero(),gi=0,bi=P.Zero(),wi=0,Ni=0;const qt=new Is(P.Zero(),new P(1,0,0));let ci,qe=P.Zero();for(let ri=0;ri<p.length/3;ri++){A=p[3*ri],S=p[3*ri+1],E=p[3*ri+2],b=f[3*A],M=f[3*A+1],T=f[3*A+2],O=f[3*S],R=f[3*S+1],I=f[3*S+2],N=f[3*E],w=f[3*E+1],D=f[3*E+2],k.set(b,M,T),Y.set(O,R,I),V.set(N,w,D),Y.subtractToRef(k,ee),V.subtractToRef(Y,K),m&&(ie=m[2*A],ne=m[2*A+1],te=m[2*S],W=m[2*S+1],Q=m[2*E],re=m[2*E+1],oe.set(ie,ne),X.set(te,W),se.set(Q,re),X.subtractToRef(oe,ue),se.subtractToRef(X,he)),_&&s&&(fe=_[4*A],Ae=_[4*A+1],Se=_[4*A+2],we=_[4*A+3],ke=_[4*S],st=_[4*S+1],Ve=_[4*S+2],Ke=_[4*S+3],ct=_[4*E],nt=_[4*E+1],at=_[4*E+2],xt=_[4*E+3],Qe.set(fe,Ae,Se,we),kt.set(ke,st,Ve,Ke),ot.set(ct,nt,at,xt),kt.subtractToRef(Qe,At),ot.subtractToRef(kt,Me));let Ot,mt,Ye,Tt,Ut,oi,ji,ki;const os=new Pe(0,0,0),bs=new Pe(0,0,0);let hi,Oi;for(let li=0;li<t._groupDensity[ri];li++)x=this.particles.length,this._addParticle(x,t,this._groupCounter,ri+li),Oi=this.particles[x],je=Math.sqrt(Ki(0,1)),rt=Ki(0,1),yt=k.add(ee.scale(je)).add(K.scale(je*rt)),i&&(Kt=e.getFacetNormal(ri).normalize().scale(-1),si=ee.clone().normalize(),Pi=P.Cross(Kt,si),gi=Ki(0,2*Math.PI),bi=si.scale(Math.cos(gi)).add(Pi.scale(Math.sin(gi))),gi=Ki(.1,Math.PI/2),qe=bi.scale(Math.cos(gi)).add(Kt.scale(Math.sin(gi))),qt.origin=yt.add(qe.scale(1e-5)),qt.direction=qe,qt.length=u,ci=qt.intersectsMesh(e),ci.hit&&(Ni=ci.pickedPoint.subtract(yt).length(),wi=Ki(0,1)*Ni,yt.addInPlace(qe.scale(wi)))),Oi.position=yt.clone(),this._positions.push(Oi.position.x,Oi.position.y,Oi.position.z),s!==void 0?m&&(Rt=oe.add(ue.scale(je)).add(he.scale(je*rt)),s?r&&t._groupImageData!==null?(Ot=t._groupImgWidth,mt=t._groupImgHeight,hi=this._getColorIndicesForCoord(t,Math.round(Rt.x*Ot),Math.round(Rt.y*mt),Ot),Oi.color=hi,this._colors.push(hi.r,hi.g,hi.b,hi.a)):_?(Nt=Qe.add(At.scale(je)).add(Me.scale(je*rt)),Oi.color=new St(Nt.x,Nt.y,Nt.z,Nt.w),this._colors.push(Nt.x,Nt.y,Nt.z,Nt.w)):(Nt=Qe.set(Math.random(),Math.random(),Math.random(),1),Oi.color=new St(Nt.x,Nt.y,Nt.z,Nt.w),this._colors.push(Nt.x,Nt.y,Nt.z,Nt.w)):(Oi.uv=Rt.clone(),this._uvs.push(Oi.uv.x,Oi.uv.y))):(n?(os.set(n.r,n.g,n.b),Ye=Ki(-o,o),Tt=Ki(-o,o),ki=os.toHSV(),Ut=ki.r,oi=ki.g+Ye,ji=ki.b+Tt,oi<0&&(oi=0),oi>1&&(oi=1),ji<0&&(ji=0),ji>1&&(ji=1),Pe.HSVtoRGBToRef(Ut,oi,ji,bs),Nt.set(bs.r,bs.g,bs.b,1)):Nt=Qe.set(Math.random(),Math.random(),Math.random(),1),Oi.color=new St(Nt.x,Nt.y,Nt.z,Nt.w),this._colors.push(Nt.x,Nt.y,Nt.z,Nt.w))}}_colorFromTexture(e,t,i){if(e.material===null){de.Warn(e.name+"has no material."),t._groupImageData=null,this._setPointsColorOrUV(e,t,i,!0,!1);return}const r=e.material.getActiveTextures();if(r.length===0){de.Warn(e.name+"has no usable texture."),t._groupImageData=null,this._setPointsColorOrUV(e,t,i,!0,!1);return}const n=e.clone();n.setEnabled(!1),this._promises.push(new Promise(o=>{vr.WhenAllReady(r,()=>{let l=t._textureNb;l<0&&(l=0),l>r.length-1&&(l=r.length-1);const c=()=>{t._groupImgWidth=r[l].getSize().width,t._groupImgHeight=r[l].getSize().height,this._setPointsColorOrUV(n,t,i,!0,!0,void 0,void 0,r[l].coordinatesIndex),n.dispose(),o()};t._groupImageData=null;const u=r[l].readPixels();u?u.then(f=>{t._groupImageData=f,c()}):c()})}))}_calculateDensity(e,t,i){let s,r,n,o,l,c,u,f,p,m,_,d;const h=P.Zero(),x=P.Zero(),A=P.Zero(),S=P.Zero(),E=P.Zero(),b=P.Zero();let M;const T=[];let O=0;const R=i.length/3;for(let w=0;w<R;w++)s=i[3*w],r=i[3*w+1],n=i[3*w+2],o=t[3*s],l=t[3*s+1],c=t[3*s+2],u=t[3*r],f=t[3*r+1],p=t[3*r+2],m=t[3*n],_=t[3*n+1],d=t[3*n+2],h.set(o,l,c),x.set(u,f,p),A.set(m,_,d),x.subtractToRef(h,S),A.subtractToRef(x,E),P.CrossToRef(S,E,b),M=.5*b.length(),O+=M,T[w]=O;const I=new Array(R);let N=e;for(let w=R-1;w>0;w--){const D=T[w];if(D===0)I[w]=0;else{const Y=(D-T[w-1])/D*N,V=Math.floor(Y),ee=Y-V,K=+(Math.random()<ee),ie=V+K;I[w]=ie,N-=ie}}return I[0]=N,I}addPoints(e,t=this._randomUnitVector){const i=new SY(this._groupCounter,t);let s,r=this.nbParticles;for(let n=0;n<e;n++)s=this._addParticle(r,i,this._groupCounter,n),i&&i._positionFunction&&i._positionFunction(s,r,n),this._positions.push(s.position.x,s.position.y,s.position.z),s.color&&this._colors.push(s.color.r,s.color.g,s.color.b,s.color.a),s.uv&&this._uvs.push(s.uv.x,s.uv.y),r++;return this.nbParticles+=e,this._groupCounter++,this._groupCounter}addSurfacePoints(e,t,i,s,r){let n=i||0;(isNaN(n)||n<0||n>3)&&(n=0);const o=e.getVerticesData(q.PositionKind),l=e.getIndices();this._groups.push(this._groupCounter);const c=new SY(this._groupCounter,null);switch(c._groupDensity=this._calculateDensity(t,o,l),n===2?c._textureNb=s||0:s=s||new St(1,1,1,1),n){case 2:this._colorFromTexture(e,c,!1);break;case 1:this._setPointsColorOrUV(e,c,!1,!1,!1);break;case 0:this._setPointsColorOrUV(e,c,!1);break;case 3:this._setPointsColorOrUV(e,c,!1,void 0,void 0,s,r);break}return this.nbParticles+=t,this._groupCounter++,this._groupCounter-1}addVolumePoints(e,t,i,s,r){let n=i||0;(isNaN(n)||n<0||n>3)&&(n=0);const o=e.getVerticesData(q.PositionKind),l=e.getIndices();this._groups.push(this._groupCounter);const c=new SY(this._groupCounter,null);switch(c._groupDensity=this._calculateDensity(t,o,l),n===2?c._textureNb=s||0:s=s||new St(1,1,1,1),n){case 2:this._colorFromTexture(e,c,!0);break;case 1:this._setPointsColorOrUV(e,c,!0,!1,!1);break;case 0:this._setPointsColorOrUV(e,c,!0);break;case 3:this._setPointsColorOrUV(e,c,!0,void 0,void 0,s,r);break}return this.nbParticles+=t,this._groupCounter++,this._groupCounter-1}setParticles(e=0,t=this.nbParticles-1,i=!0){var S,E;if(!this._updatable||!this._isReady)return this;this.beforeUpdateParticles(e,t,i);const s=ae.Matrix[0],r=this.mesh,n=this._colors32,o=this._positions32,l=this._uvs32,c=ae.Vector3,u=c[5].copyFromFloats(1,0,0),f=c[6].copyFromFloats(0,1,0),p=c[7].copyFromFloats(0,0,1),m=c[8].setAll(Number.MAX_VALUE),_=c[9].setAll(-Number.MAX_VALUE);me.IdentityToRef(s);let d=0;if((S=this.mesh)!=null&&S.isFacetDataEnabled&&(this._computeBoundingBox=!0),t=t>=this.nbParticles?this.nbParticles-1:t,this._computeBoundingBox&&(e!=0||t!=this.nbParticles-1)){const b=(E=this.mesh)==null?void 0:E.getBoundingInfo();b&&(m.copyFrom(b.minimum),_.copyFrom(b.maximum))}d=0;let h=0,x=0,A=0;for(let b=e;b<=t;b++){const M=this.particles[b];d=M.idx,h=3*d,x=4*d,A=2*d,this.updateParticle(M);const T=M._rotationMatrix,O=M.position,R=M._globalPosition;if(this._computeParticleRotation&&M.getRotationMatrix(s),M.parentId!==null){const W=this.particles[M.parentId],Q=W._rotationMatrix,re=W._globalPosition,oe=O.x*Q[1]+O.y*Q[4]+O.z*Q[7],X=O.x*Q[0]+O.y*Q[3]+O.z*Q[6],se=O.x*Q[2]+O.y*Q[5]+O.z*Q[8];if(R.x=re.x+X,R.y=re.y+oe,R.z=re.z+se,this._computeParticleRotation){const ue=s.m;T[0]=ue[0]*Q[0]+ue[1]*Q[3]+ue[2]*Q[6],T[1]=ue[0]*Q[1]+ue[1]*Q[4]+ue[2]*Q[7],T[2]=ue[0]*Q[2]+ue[1]*Q[5]+ue[2]*Q[8],T[3]=ue[4]*Q[0]+ue[5]*Q[3]+ue[6]*Q[6],T[4]=ue[4]*Q[1]+ue[5]*Q[4]+ue[6]*Q[7],T[5]=ue[4]*Q[2]+ue[5]*Q[5]+ue[6]*Q[8],T[6]=ue[8]*Q[0]+ue[9]*Q[3]+ue[10]*Q[6],T[7]=ue[8]*Q[1]+ue[9]*Q[4]+ue[10]*Q[7],T[8]=ue[8]*Q[2]+ue[9]*Q[5]+ue[10]*Q[8]}}else if(R.x=0,R.y=0,R.z=0,this._computeParticleRotation){const W=s.m;T[0]=W[0],T[1]=W[1],T[2]=W[2],T[3]=W[4],T[4]=W[5],T[5]=W[6],T[6]=W[8],T[7]=W[9],T[8]=W[10]}const N=c[11];M.translateFromPivot?N.setAll(0):N.copyFrom(M.pivot);const w=c[0];w.copyFrom(M.position);const D=w.x-M.pivot.x,k=w.y-M.pivot.y,Y=w.z-M.pivot.z;let V=D*T[0]+k*T[3]+Y*T[6],ee=D*T[1]+k*T[4]+Y*T[7],K=D*T[2]+k*T[5]+Y*T[8];V+=N.x,ee+=N.y,K+=N.z;const ie=o[h]=R.x+u.x*V+f.x*ee+p.x*K,ne=o[h+1]=R.y+u.y*V+f.y*ee+p.y*K,te=o[h+2]=R.z+u.z*V+f.z*ee+p.z*K;if(this._computeBoundingBox&&(m.minimizeInPlaceFromFloats(ie,ne,te),_.maximizeInPlaceFromFloats(ie,ne,te)),this._computeParticleColor&&M.color){const W=M.color,Q=this._colors32;Q[x]=W.r,Q[x+1]=W.g,Q[x+2]=W.b,Q[x+3]=W.a}if(this._computeParticleTexture&&M.uv){const W=M.uv,Q=this._uvs32;Q[A]=W.x,Q[A+1]=W.y}}return r&&(i&&(this._computeParticleColor&&r.updateVerticesData(q.ColorKind,n,!1,!1),this._computeParticleTexture&&r.updateVerticesData(q.UVKind,l,!1,!1),r.updateVerticesData(q.PositionKind,o,!1,!1)),this._computeBoundingBox&&(r.hasBoundingInfo?r.getBoundingInfo().reConstruct(m,_,r._worldMatrix):r.buildBoundingInfo(m,_,r._worldMatrix))),this.afterUpdateParticles(e,t,i),this}dispose(){var e;(e=this.mesh)==null||e.dispose(),this.vars=null,this._positions=null,this._indices=null,this._normals=null,this._uvs=null,this._colors=null,this._indices32=null,this._positions32=null,this._uvs32=null,this._colors32=null}refreshVisibleSize(){var e;return this._isVisibilityBoxLocked||(e=this.mesh)==null||e.refreshBoundingInfo(),this}setVisibilityBox(e){if(!this.mesh)return;const t=e/2;this.mesh.buildBoundingInfo(new P(-t,-t,-t),new P(t,t,t))}get isAlwaysVisible(){return this._alwaysVisible}set isAlwaysVisible(e){this.mesh&&(this._alwaysVisible=e,this.mesh.alwaysSelectAsActiveMesh=e)}set computeParticleRotation(e){this._computeParticleRotation=e}set computeParticleColor(e){this._computeParticleColor=e}set computeParticleTexture(e){this._computeParticleTexture=e}get computeParticleColor(){return this._computeParticleColor}get computeParticleTexture(){return this._computeParticleTexture}set computeBoundingBox(e){this._computeBoundingBox=e}get computeBoundingBox(){return this._computeBoundingBox}initParticles(){}recycleParticle(e){return e}updateParticle(e){return e}beforeUpdateParticles(e,t,i){}afterUpdateParticles(e,t,i){}}const oae="particlesPixelShader",Mbe=`#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
varying vec2 vUV;varying vec4 vColor;uniform vec4 textureMask;uniform sampler2D diffuseSampler;
#include<clipPlaneFragmentDeclaration>
#include<imageProcessingDeclaration>
#include<logDepthDeclaration>
#include<helperFunctions>
#include<imageProcessingFunctions>
#ifdef RAMPGRADIENT
varying vec4 remapRanges;uniform sampler2D rampSampler;
#endif
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec4 textureColor=texture2D(diffuseSampler,vUV);vec4 baseColor=(textureColor*textureMask+(vec4(1.,1.,1.,1.)-textureMask))*vColor;
#ifdef RAMPGRADIENT
float alpha=baseColor.a;float remappedColorIndex=clamp((alpha-remapRanges.x)/remapRanges.y,0.0,1.0);vec4 rampColor=texture2D(rampSampler,vec2(1.0-remappedColorIndex,0.));baseColor.rgb*=rampColor.rgb;float finalAlpha=baseColor.a;baseColor.a=clamp((alpha*rampColor.a-remapRanges.z)/remapRanges.w,0.0,1.0);
#endif
#ifdef BLENDMULTIPLYMODE
float sourceAlpha=vColor.a*textureColor.a;baseColor.rgb=baseColor.rgb*sourceAlpha+vec3(1.0)*(1.0-sourceAlpha);
#endif
#include<logDepthFragment>
#include<fogFragment>(color,baseColor)
#ifdef IMAGEPROCESSINGPOSTPROCESS
baseColor.rgb=toLinearSpace(baseColor.rgb);
#else
#ifdef IMAGEPROCESSING
baseColor.rgb=toLinearSpace(baseColor.rgb);baseColor=applyImageProcessing(baseColor);
#endif
#endif
gl_FragColor=baseColor;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[oae]||(H.ShadersStore[oae]=Mbe);const Ebe={name:oae,shader:Mbe},$He=Object.freeze(Object.defineProperty({__proto__:null,particlesPixelShader:Ebe},Symbol.toStringTag,{value:"Module"})),lae="particlesVertexShader",Tbe=`attribute vec3 position;attribute vec4 color;attribute float angle;attribute vec2 size;
#ifdef ANIMATESHEET
attribute float cellIndex;
#endif
#ifndef BILLBOARD
attribute vec3 direction;
#endif
#ifdef BILLBOARDSTRETCHED
attribute vec3 direction;
#endif
#ifdef RAMPGRADIENT
attribute vec4 remapData;
#endif
attribute vec2 offset;uniform mat4 view;uniform mat4 projection;uniform vec2 translationPivot;
#ifdef ANIMATESHEET
uniform vec3 particlesInfos; 
#endif
varying vec2 vUV;varying vec4 vColor;varying vec3 vPositionW;
#ifdef RAMPGRADIENT
varying vec4 remapRanges;
#endif
#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)
uniform mat4 invView;
#endif
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#include<logDepthDeclaration>
#ifdef BILLBOARD
uniform vec3 eyePosition;
#endif
vec3 rotate(vec3 yaxis,vec3 rotatedCorner) {vec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));vec3 zaxis=normalize(cross(yaxis,xaxis));vec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z);vec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z);vec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z);mat3 rotMatrix= mat3(row0,row1,row2);vec3 alignedCorner=rotMatrix*rotatedCorner;return position+alignedCorner;}
#ifdef BILLBOARDSTRETCHED
vec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) {vec3 normalizedToCamera=normalize(toCamera);vec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));vec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);vec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);
#ifdef BILLBOARDSTRETCHED_LOCAL
vec3 row1=direction;
#else
vec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));vec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);
#endif
mat3 rotMatrix= mat3(row0,row1,row2);vec3 alignedCorner=rotMatrix*rotatedCorner;return position+alignedCorner;}
#endif
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
vec2 cornerPos;cornerPos=(vec2(offset.x-0.5,offset.y -0.5)-translationPivot)*size;
#ifdef BILLBOARD
vec3 rotatedCorner;
#ifdef BILLBOARDY
rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.y=0.;rotatedCorner.xz+=translationPivot;vec3 yaxis=position-eyePosition;yaxis.y=0.;vPositionW=rotate(normalize(yaxis),rotatedCorner);vec3 viewPos=(view*vec4(vPositionW,1.0)).xyz;
#elif defined(BILLBOARDSTRETCHED)
rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;rotatedCorner.xy+=translationPivot;vec3 toCamera=position-eyePosition;vPositionW=rotateAlign(toCamera,rotatedCorner);vec3 viewPos=(view*vec4(vPositionW,1.0)).xyz;
#else
rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;rotatedCorner.xy+=translationPivot;vec3 viewPos=(view*vec4(position,1.0)).xyz+rotatedCorner;vPositionW=(invView*vec4(viewPos,1)).xyz;
#endif
#ifdef RAMPGRADIENT
remapRanges=remapData;
#endif
gl_Position=projection*vec4(viewPos,1.0);
#else
vec3 rotatedCorner;rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.y=0.;rotatedCorner.xz+=translationPivot;vec3 yaxis=normalize(direction);vPositionW=rotate(yaxis,rotatedCorner);gl_Position=projection*view*vec4(vPositionW,1.0);
#endif
vColor=color;
#ifdef ANIMATESHEET
float rowOffset=floor(cellIndex*particlesInfos.z);float columnOffset=cellIndex-rowOffset/particlesInfos.z;vec2 uvScale=particlesInfos.xy;vec2 uvOffset=vec2(offset.x ,1.0-offset.y);vUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;
#else
vUV=offset;
#endif
#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) || defined(FOG)
vec4 worldPos=vec4(vPositionW,1.0);
#endif
#include<clipPlaneVertex>
#include<fogVertex>
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[lae]||(H.ShadersStore[lae]=Tbe);const Lbe={name:lae,shader:Tbe},Ibe=Object.freeze(Object.defineProperty({__proto__:null,particlesVertexShader:Lbe},Symbol.toStringTag,{value:"Module"})),cae="particlesPixelShader",Pbe=`varying vUV: vec2f;varying vColor: vec4f;uniform textureMask: vec4f;var diffuseSamplerSampler: sampler;var diffuseSampler: texture_2d<f32>;
#include<clipPlaneFragmentDeclaration>
#include<imageProcessingDeclaration>
#include<logDepthDeclaration>
#include<helperFunctions>
#include<imageProcessingFunctions>
#ifdef RAMPGRADIENT
varying remapRanges: vec4f;var rampSamplerSampler: sampler;var rampSampler: texture_2d<f32>;
#endif
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
var textureColor: vec4f=textureSample(diffuseSampler,diffuseSamplerSampler,input.vUV);var baseColor: vec4f=(textureColor*uniforms.textureMask+( vec4f(1.,1.,1.,1.)-uniforms.textureMask))*input.vColor;
#ifdef RAMPGRADIENT
var alpha: f32=baseColor.a;var remappedColorIndex: f32=clamp((alpha-input.remapRanges.x)/input.remapRanges.y,0.0,1.0);var rampColor: vec4f=textureSample(rampSampler,rampSamplerSampler,vec2f(1.0-remappedColorIndex,0.));baseColor=vec4f(baseColor.rgb*rampColor.rgb,baseColor.a);var finalAlpha: f32=baseColor.a;baseColor.a=clamp((alpha*rampColor.a-input.remapRanges.z)/input.remapRanges.w,0.0,1.0);
#endif
#ifdef BLENDMULTIPLYMODE
var sourceAlpha: f32=input.vColor.a*textureColor.a;baseColor=vec4f(baseColor.rgb*sourceAlpha+ vec3f(1.0)*(1.0-sourceAlpha),baseColor.a);
#endif
#include<logDepthFragment>
#include<fogFragment>(color,baseColor)
#ifdef IMAGEPROCESSINGPOSTPROCESS
baseColor=vec4f(toLinearSpaceVec3(baseColor.rgb),baseColor.a);
#else
#ifdef IMAGEPROCESSING
baseColor=vec4f(toLinearSpaceVec3(baseColor.rgb),baseColor.a);baseColor=applyImageProcessing(baseColor);
#endif
#endif
fragmentOutputs.color=baseColor;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStoreWGSL[cae]||(H.ShadersStoreWGSL[cae]=Pbe);const Obe={name:cae,shader:Pbe},eYe=Object.freeze(Object.defineProperty({__proto__:null,particlesPixelShaderWGSL:Obe},Symbol.toStringTag,{value:"Module"})),uae="particlesVertexShader",Rbe=`attribute position: vec3f;attribute color: vec4f;attribute angle: f32;attribute size: vec2f;
#ifdef ANIMATESHEET
attribute cellIndex: f32;
#endif
#ifndef BILLBOARD
attribute direction: vec3f;
#endif
#ifdef BILLBOARDSTRETCHED
attribute direction: vec3f;
#endif
#ifdef RAMPGRADIENT
attribute remapData: vec4f;
#endif
attribute offset: vec2f;uniform view: mat4x4f;uniform projection: mat4x4f;uniform translationPivot: vec2f;
#ifdef ANIMATESHEET
uniform particlesInfos: vec3f; 
#endif
varying vUV: vec2f;varying vColor: vec4f;varying vPositionW: vec3f;
#ifdef RAMPGRADIENT
varying remapRanges: vec4f;
#endif
#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)
uniform invView: mat4x4f;
#endif
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#include<logDepthDeclaration>
#ifdef BILLBOARD
uniform eyePosition: vec3f;
#endif
fn rotate(yaxis: vec3f,rotatedCorner: vec3f)->vec3f {var xaxis: vec3f=normalize(cross( vec3f(0.,1.0,0.),yaxis));var zaxis: vec3f=normalize(cross(yaxis,xaxis));var row0: vec3f= vec3f(xaxis.x,xaxis.y,xaxis.z);var row1: vec3f= vec3f(yaxis.x,yaxis.y,yaxis.z);var row2: vec3f= vec3f(zaxis.x,zaxis.y,zaxis.z);var rotMatrix: mat3x3f= mat3x3f(row0,row1,row2);var alignedCorner: vec3f=rotMatrix*rotatedCorner;return vertexInputs.position+alignedCorner;}
#ifdef BILLBOARDSTRETCHED
fn rotateAlign(toCamera: vec3f,rotatedCorner: vec3f)->vec3f {var normalizedToCamera: vec3f=normalize(toCamera);var normalizedCrossDirToCamera: vec3f=normalize(cross(normalize(vertexInputs.direction),normalizedToCamera));var row0: vec3f= vec3f(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);var row2: vec3f= vec3f(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);
#ifdef BILLBOARDSTRETCHED_LOCAL
var row1: vec3f=vertexInputs.direction;
#else
var crossProduct: vec3f=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));var row1: vec3f= vec3f(crossProduct.x,crossProduct.y,crossProduct.z);
#endif
var rotMatrix: mat3x3f= mat3x3f(row0,row1,row2);var alignedCorner: vec3f=rotMatrix*rotatedCorner;return vertexInputs.position+alignedCorner;}
#endif
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
var cornerPos: vec2f;cornerPos=( vec2f(input.offset.x-0.5,input.offset.y -0.5)-uniforms.translationPivot)*input.size;
#ifdef BILLBOARD
var rotatedCorner: vec3f;
#ifdef BILLBOARDY
rotatedCorner.x=cornerPos.x*cos(input.angle)-cornerPos.y*sin(input.angle)+uniforms.translationPivot.x;rotatedCorner.z=cornerPos.x*sin(input.angle)+cornerPos.y*cos(input.angle)+uniforms.translationPivot.y;rotatedCorner.y=0.;var yaxis: vec3f=input.position-uniforms.eyePosition;yaxis.y=0.;vertexOutputs.vPositionW=rotate(normalize(yaxis),rotatedCorner);var viewPos: vec3f=(uniforms.view* vec4f(vertexOutputs.vPositionW,1.0)).xyz;
#elif defined(BILLBOARDSTRETCHED)
rotatedCorner.x=cornerPos.x*cos(input.angle)-cornerPos.y*sin(input.angle)+uniforms.translationPivot.x;rotatedCorner.y=cornerPos.x*sin(input.angle)+cornerPos.y*cos(input.angle)+uniforms.translationPivot.y;rotatedCorner.z=0.;var toCamera: vec3f=input.position-uniforms.eyePosition;vertexOutputs.vPositionW=rotateAlign(toCamera,rotatedCorner);var viewPos: vec3f=(uniforms.view* vec4f(vertexOutputs.vPositionW,1.0)).xyz;
#else
rotatedCorner.x=cornerPos.x*cos(input.angle)-cornerPos.y*sin(input.angle)+uniforms.translationPivot.x;rotatedCorner.y=cornerPos.x*sin(input.angle)+cornerPos.y*cos(input.angle)+uniforms.translationPivot.y;rotatedCorner.z=0.;var viewPos: vec3f=(uniforms.view* vec4f(input.position,1.0)).xyz+rotatedCorner;vertexOutputs.vPositionW=(uniforms.invView* vec4f(viewPos,1)).xyz;
#endif
#ifdef RAMPGRADIENT
vertexOutputs.remapRanges=input.remapData;
#endif
vertexOutputs.position=uniforms.projection* vec4f(viewPos,1.0);
#else
var rotatedCorner: vec3f;rotatedCorner.x=cornerPos.x*cos(input.angle)-cornerPos.y*sin(input.angle)+uniforms.translationPivot.x;rotatedCorner.z=cornerPos.x*sin(input.angle)+cornerPos.y*cos(input.angle)+uniforms.translationPivot.y;rotatedCorner.y=0.;var yaxis: vec3f=normalize(vertexInputs.direction);vertexOutputs.vPositionW=rotate(yaxis,rotatedCorner);vertexOutputs.position=uniforms.projection*uniforms.view* vec4f(vertexOutputs.vPositionW,1.0);
#endif
vertexOutputs.vColor=input.color;
#ifdef ANIMATESHEET
var rowOffset: f32=floor(input.cellIndex*uniforms.particlesInfos.z);var columnOffset: f32=input.cellIndex-rowOffset/uniforms.particlesInfos.z;var uvScale: vec2f=uniforms.particlesInfos.xy;var uvOffset: vec2f= vec2f(input.offset.x ,1.0-input.offset.y);vertexOutputs.vUV=(uvOffset+ vec2f(columnOffset,rowOffset))*uvScale;
#else
vertexOutputs.vUV=input.offset;
#endif
#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) || defined(FOG)
var worldPos: vec4f= vec4f(vertexOutputs.vPositionW,1.0);
#endif
#include<clipPlaneVertex>
#include<fogVertex>
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[uae]||(H.ShadersStoreWGSL[uae]=Rbe);const Dbe={name:uae,shader:Rbe},Nbe=Object.freeze(Object.defineProperty({__proto__:null,particlesVertexShaderWGSL:Dbe},Symbol.toStringTag,{value:"Module"}));Object.defineProperty(cr.prototype,"physicsImpostor",{get:function(){return this._physicsImpostor},set:function(a){this._physicsImpostor!==a&&(this._disposePhysicsObserver&&this.onDisposeObservable.remove(this._disposePhysicsObserver),this._physicsImpostor=a,a&&(this._disposePhysicsObserver=this.onDisposeObservable.add(()=>{this.physicsImpostor&&(this.physicsImpostor.dispose(),this.physicsImpostor=null)})))},enumerable:!0,configurable:!0}),cr.prototype.getPhysicsImpostor=function(){return this.physicsImpostor},cr.prototype.applyImpulse=function(a,e){return this.physicsImpostor?(this.physicsImpostor.applyImpulse(a,e),this):this},cr.prototype.setPhysicsLinkWith=function(a,e,t,i){return!this.physicsImpostor||!a.physicsImpostor?this:(this.physicsImpostor.createJoint(a.physicsImpostor,cn.HingeJoint,{mainPivot:e,connectedPivot:t,nativeParams:i}),this)};class yY{getPluginVersion(){return this._physicsPlugin.getPluginVersion()}static DefaultPluginFactory(){throw as("")}constructor(e,t=yY.DefaultPluginFactory()){this._physicsPlugin=t,this._physicsBodies=[],this._subTimeStep=0,e=e||new P(0,-9.807,0),this.setGravity(e),this.setTimeStep()}setGravity(e){this.gravity=e,this._physicsPlugin.setGravity(this.gravity)}setTimeStep(e=1/60){this._physicsPlugin.setTimeStep(e)}getTimeStep(){return this._physicsPlugin.getTimeStep()}setSubTimeStep(e=0){this._subTimeStep=e}getSubTimeStep(){return this._subTimeStep}dispose(){this._physicsPlugin.dispose()}getPhysicsPluginName(){return this._physicsPlugin.name}setVelocityLimits(e,t){this._physicsPlugin.setVelocityLimits(e,t)}getMaxLinearVelocity(){return this._physicsPlugin.getMaxLinearVelocity()}getMaxAngularVelocity(){return this._physicsPlugin.getMaxAngularVelocity()}_step(e){e>.1?e=.1:e<=0&&(e=1/60),this._physicsPlugin.executeStep(e,this._physicsBodies)}addBody(e){this._physicsBodies.push(e)}removeBody(e){const t=this._physicsBodies.indexOf(e);t>-1&&this._physicsBodies.splice(t,1)}getBodies(){return this._physicsBodies}getPhysicsPlugin(){return this._physicsPlugin}raycastToRef(e,t,i,s){this._physicsPlugin.raycast(e,t,i,s)}raycast(e,t,i){const s=new jB;return this._physicsPlugin.raycast(e,t,s,i),s}}var hae;(function(a){a[a.FREE=0]="FREE",a[a.LIMITED=1]="LIMITED",a[a.LOCKED=2]="LOCKED"})(hae||(hae={}));var dae;(function(a){a[a.LINEAR_X=0]="LINEAR_X",a[a.LINEAR_Y=1]="LINEAR_Y",a[a.LINEAR_Z=2]="LINEAR_Z",a[a.ANGULAR_X=3]="ANGULAR_X",a[a.ANGULAR_Y=4]="ANGULAR_Y",a[a.ANGULAR_Z=5]="ANGULAR_Z",a[a.LINEAR_DISTANCE=6]="LINEAR_DISTANCE"})(dae||(dae={}));var fae;(function(a){a[a.BALL_AND_SOCKET=1]="BALL_AND_SOCKET",a[a.DISTANCE=2]="DISTANCE",a[a.HINGE=3]="HINGE",a[a.SLIDER=4]="SLIDER",a[a.LOCK=5]="LOCK",a[a.PRISMATIC=6]="PRISMATIC",a[a.SIX_DOF=7]="SIX_DOF"})(fae||(fae={}));var pae;(function(a){a[a.SPHERE=0]="SPHERE",a[a.CAPSULE=1]="CAPSULE",a[a.CYLINDER=2]="CYLINDER",a[a.BOX=3]="BOX",a[a.CONVEX_HULL=4]="CONVEX_HULL",a[a.CONTAINER=5]="CONTAINER",a[a.MESH=6]="MESH",a[a.HEIGHTFIELD=7]="HEIGHTFIELD"})(pae||(pae={}));var mae;(function(a){a[a.NONE=0]="NONE",a[a.VELOCITY=1]="VELOCITY",a[a.POSITION=2]="POSITION"})(mae||(mae={}));var gae;(function(a){a.COLLISION_STARTED="COLLISION_STARTED",a.COLLISION_CONTINUED="COLLISION_CONTINUED",a.COLLISION_FINISHED="COLLISION_FINISHED",a.TRIGGER_ENTERED="TRIGGER_ENTERED",a.TRIGGER_EXITED="TRIGGER_EXITED"})(gae||(gae={}));var _ae;(function(a){a[a.STATIC=0]="STATIC",a[a.ANIMATED=1]="ANIMATED",a[a.DYNAMIC=2]="DYNAMIC"})(_ae||(_ae={}));var Mb;(function(a){a[a.DISABLED=0]="DISABLED",a[a.TELEPORT=1]="TELEPORT",a[a.ACTION=2]="ACTION"})(Mb||(Mb={}));var vae;(function(a){a[a.SIMULATION_CONTROLLED=0]="SIMULATION_CONTROLLED",a[a.ALWAYS_ACTIVE=1]="ALWAYS_ACTIVE",a[a.ALWAYS_INACTIVE=2]="ALWAYS_INACTIVE"})(vae||(vae={}));class MY{get disablePreStep(){return this._prestepType==Mb.DISABLED}set disablePreStep(e){this._prestepType=e?Mb.DISABLED:Mb.TELEPORT}constructor(e,t,i,s){if(this._pluginData=void 0,this._pluginDataInstances=[],this._collisionCBEnabled=!1,this._collisionEndedCBEnabled=!1,this.disableSync=!1,this._isDisposed=!1,this._shape=null,this._prestepType=Mb.DISABLED,!s)return;const r=s.getPhysicsEngine();if(!r)throw new Error("No Physics Engine available.");if(this._physicsEngine=r,r.getPluginVersion()!=2)throw new Error("Plugin version is incorrect. Expected version 2.");const n=r.getPhysicsPlugin();if(!n)throw new Error("No Physics Plugin available.");this._physicsPlugin=n,e.rotationQuaternion||(e.rotationQuaternion=Re.FromEulerAngles(e.rotation.x,e.rotation.y,e.rotation.z)),this.startAsleep=i,this._motionType=t,this.disableSync=t==0;const o=e;o.hasThinInstances?this._physicsPlugin.initBodyInstances(this,t,o):(e.parent&&e.computeWorldMatrix(!0),this._physicsPlugin.initBody(this,t,e.absolutePosition,e.absoluteRotationQuaternion)),this.transformNode=e,e.physicsBody=this,r.addBody(this),this._nodeDisposeObserver=e.onDisposeObservable.add(()=>{this.dispose()})}getClassName(){return"PhysicsBody"}clone(e){const t=new MY(e,this.getMotionType(),this.startAsleep,this.transformNode.getScene());return t.shape=this.shape,t.setMassProperties(this.getMassProperties()),t.setLinearDamping(this.getLinearDamping()),t.setAngularDamping(this.getAngularDamping()),t}updateBodyInstances(){const e=this.transformNode;e.hasThinInstances&&this._physicsPlugin.updateBodyInstances(this,e)}get numInstances(){return this._pluginDataInstances.length}get motionType(){return this._motionType}set shape(e){this._shape=e,e&&this._physicsPlugin.setShape(this,e)}get shape(){return this._shape}getBoundingBox(){return this._physicsPlugin.getBodyBoundingBox(this)}setEventMask(e,t){this._physicsPlugin.setEventMask(this,e,t)}getEventMask(e){return this._physicsPlugin.getEventMask(this,e)}setMotionType(e,t){this.disableSync=e==0,this._physicsPlugin.setMotionType(this,e,t)}getMotionType(e){return this._physicsPlugin.getMotionType(this,e)}setPrestepType(e){this._prestepType=e}getPrestepType(){return this._prestepType}computeMassProperties(e){return this._physicsPlugin.computeMassProperties(this,e)}setMassProperties(e,t){this._physicsPlugin.setMassProperties(this,e,t)}getMassProperties(e){return this._physicsPlugin.getMassProperties(this,e)}setLinearDamping(e,t){this._physicsPlugin.setLinearDamping(this,e,t)}getLinearDamping(e){return this._physicsPlugin.getLinearDamping(this,e)}setAngularDamping(e,t){this._physicsPlugin.setAngularDamping(this,e,t)}getAngularDamping(e){return this._physicsPlugin.getAngularDamping(this,e)}setLinearVelocity(e,t){this._physicsPlugin.setLinearVelocity(this,e,t)}getLinearVelocityToRef(e,t){this._physicsPlugin.getLinearVelocityToRef(this,e,t)}getLinearVelocity(e){const t=new P;return this.getLinearVelocityToRef(t,e),t}setAngularVelocity(e,t){this._physicsPlugin.setAngularVelocity(this,e,t)}getAngularVelocityToRef(e,t){this._physicsPlugin.getAngularVelocityToRef(this,e,t)}getAngularVelocity(e){const t=new P;return this.getAngularVelocityToRef(t,e),t}applyImpulse(e,t,i){this._physicsPlugin.applyImpulse(this,e,t,i)}applyAngularImpulse(e,t){this._physicsPlugin.applyAngularImpulse(this,e,t)}applyForce(e,t,i){this._physicsPlugin.applyForce(this,e,t,i)}getGeometry(){return this._physicsPlugin.getBodyGeometry(this)}getCollisionObservable(){return this._physicsPlugin.getCollisionObservable(this)}getCollisionEndedObservable(){return this._physicsPlugin.getCollisionEndedObservable(this)}setCollisionCallbackEnabled(e){this._collisionCBEnabled=e,this._physicsPlugin.setCollisionCallbackEnabled(this,e)}setCollisionEndedCallbackEnabled(e){this._collisionEndedCBEnabled=e,this._physicsPlugin.setCollisionEndedCallbackEnabled(this,e)}getObjectCenterWorld(e){const t=new P;return this.getObjectCenterWorldToRef(t,e)}getObjectCenterWorldToRef(e,t){var i;if(((i=this._pluginDataInstances)==null?void 0:i.length)>0){const s=t||0,r=this.transformNode._thinInstanceDataStorage.matrixData;r&&e.set(r[s*16+12],r[s*16+13],r[s*16+14])}else e.copyFrom(this.transformNode.position);return e}addConstraint(e,t,i,s){this._physicsPlugin.addConstraint(this,e,t,i,s)}syncWithBone(e,t,i,s,r,n){const o=this.transformNode;if(o.rotationQuaternion)if(r){const u=ae.Quaternion[0];e.getRotationQuaternionToRef(1,t,u),u.multiplyToRef(r,o.rotationQuaternion)}else e.getRotationQuaternionToRef(1,t,o.rotationQuaternion);const l=ae.Vector3[0],c=ae.Vector3[1];n||(n=ae.Vector3[2],n.x=0,n.y=1,n.z=0),e.getDirectionToRef(n,t,c),e.getAbsolutePositionToRef(t,l),s==null&&i&&(s=i.length()),s!=null&&(l.x+=c.x*s,l.y+=c.y*s,l.z+=c.z*s),o.setAbsolutePosition(l)}iterateOverAllInstances(e){var t;if(((t=this._pluginDataInstances)==null?void 0:t.length)>0)for(let i=0;i<this._pluginDataInstances.length;i++)e(this,i);else e(this,void 0)}setGravityFactor(e,t){this._physicsPlugin.setGravityFactor(this,e,t)}getGravityFactor(e){return this._physicsPlugin.getGravityFactor(this,e)}setTargetTransform(e,t,i){this._physicsPlugin.setTargetTransform(this,e,t,i)}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._collisionCBEnabled&&this.setCollisionCallbackEnabled(!1),this._collisionEndedCBEnabled&&this.setCollisionEndedCallbackEnabled(!1),this._nodeDisposeObserver&&(this.transformNode.onDisposeObservable.remove(this._nodeDisposeObserver),this._nodeDisposeObserver=null),this._physicsEngine.removeBody(this),this._physicsPlugin.removeBody(this),this._physicsPlugin.disposeBody(this),this.transformNode.physicsBody=null,this._pluginData=null,this._pluginDataInstances.length=0,this._isDisposed=!0,this.shape=null)}}class C_{constructor(e,t){if(this._pluginData=void 0,this._isTrigger=!1,this._isDisposed=!1,!t)return;const i=t.getPhysicsEngine();if(!i)throw new Error("No Physics Engine available.");if(i.getPluginVersion()!=2)throw new Error("Plugin version is incorrect. Expected version 2.");const s=i.getPhysicsPlugin();if(!s)throw new Error("No Physics Plugin available.");if(this._physicsPlugin=s,e.pluginData!==void 0&&e.pluginData!==null)this._pluginData=e.pluginData,this._type=this._physicsPlugin.getShapeType(this);else if(e.type!==void 0&&e.type!==null){this._type=e.type;const r=e.parameters??{};this._physicsPlugin.initShape(this,e.type,r)}}getClassName(){return"PhysicsShape"}get type(){return this._type}set filterMembershipMask(e){this._physicsPlugin.setShapeFilterMembershipMask(this,e)}get filterMembershipMask(){return this._physicsPlugin.getShapeFilterMembershipMask(this)}set filterCollideMask(e){this._physicsPlugin.setShapeFilterCollideMask(this,e)}get filterCollideMask(){return this._physicsPlugin.getShapeFilterCollideMask(this)}set material(e){this._physicsPlugin.setMaterial(this,e),this._material=e}get material(){return this._material||(this._material=this._physicsPlugin.getMaterial(this)),this._material}set density(e){this._physicsPlugin.setDensity(this,e)}get density(){return this._physicsPlugin.getDensity(this)}addChildFromParent(e,t,i){const s=i.computeWorldMatrix(!0),r=e.computeWorldMatrix(!0),n=ae.Matrix[0];s.multiplyToRef(me.Invert(r),n);const o=ae.Vector3[0],l=ae.Quaternion[0],c=ae.Vector3[1];n.decompose(c,l,o),this._physicsPlugin.addChild(this,t,o,l,c)}addChild(e,t,i,s){this._physicsPlugin.addChild(this,e,t,i,s)}removeChild(e){this._physicsPlugin.removeChild(this,e)}getNumChildren(){return this._physicsPlugin.getNumChildren(this)}getBoundingBox(){return this._physicsPlugin.getBoundingBox(this)}set isTrigger(e){this._isTrigger!==e&&(this._isTrigger=e,this._physicsPlugin.setTrigger(this,e))}get isTrigger(){return this._isTrigger}dispose(){this._isDisposed||(this._physicsPlugin.disposeShape(this),this._isDisposed=!0)}}class Aae extends C_{constructor(e,t,i){super({type:0,parameters:{center:e,radius:t}},i)}static FromMesh(e){const t=e.getBoundingInfo(),i=t.boundingSphere.center,s=t.boundingBox.extendSize,r=Math.max(s.x,s.y,s.z);return new Aae(i,r,e.getScene())}}class EY extends C_{constructor(e,t,i,s){super({type:1,parameters:{pointA:e,pointB:t,radius:i}},s)}static FromMesh(e){const t=e.getBoundingInfo(),i=t.boundingBox.extendSize.x,s=new P(0,t.boundingBox.extendSize.y-i,0),r=t.boundingBox.center.add(s),n=t.boundingBox.center.subtract(s);return new EY(r,n,i,e.getScene())}}class Cae extends C_{constructor(e,t,i,s){super({type:2,parameters:{pointA:e,pointB:t,radius:i}},s)}static FromMesh(e){const t=e.getBoundingInfo(),i=t.boundingBox.extendSize.x,s=new P(0,t.boundingBox.extendSize.y,0),r=t.boundingBox.center.add(s),n=t.boundingBox.center.subtract(s);return new Cae(r,n,i,e.getScene())}}class xae extends C_{constructor(e,t,i,s){super({type:3,parameters:{center:e,rotation:t,extents:i}},s)}static FromMesh(e){const t=e.getBoundingInfo(),i=t.boundingBox.center,s=t.boundingBox.extendSize.scale(2);return new xae(i,Re.Identity(),s,e.getScene())}}class tYe extends C_{constructor(e,t){super({type:4,parameters:{mesh:e}},t)}}class iYe extends C_{constructor(e,t){super({type:6,parameters:{mesh:e}},t)}}class sYe extends C_{constructor(e){super({type:5,parameters:{}},e)}}class rYe extends C_{constructor(e,t,i,s,r,n){super({type:7,parameters:{heightFieldSizeX:e,heightFieldSizeZ:t,numHeightFieldSamplesX:i,numHeightFieldSamplesZ:s,heightFieldData:r}},n)}}class nYe extends C_{constructor(e,t){super({type:7,parameters:{groundMesh:e}},t)}}class rM{constructor(e,t,i){if(this._pluginData=void 0,!i)throw new Error("Missing scene parameter for constraint constructor.");const s=i.getPhysicsEngine();if(!s)throw new Error("No Physics Engine available.");if(s.getPluginVersion()!=2)throw new Error("Plugin version is incorrect. Expected version 2.");const r=s.getPhysicsPlugin();if(!r)throw new Error("No Physics Plugin available.");this._physicsPlugin=r,this._options=t,this._type=e}get type(){return this._type}get options(){return this._options}set isEnabled(e){this._physicsPlugin.setEnabled(this,e)}get isEnabled(){return this._physicsPlugin.getEnabled(this)}set isCollisionsEnabled(e){this._physicsPlugin.setCollisionsEnabled(this,e)}get isCollisionsEnabled(){return this._physicsPlugin.getCollisionsEnabled(this)}getBodiesUsingConstraint(){return this._physicsPlugin.getBodiesUsingConstraint(this)}dispose(){this._physicsPlugin.disposeConstraint(this)}}class aYe{}class wbe extends rM{constructor(e,t,i){super(7,e,i),this.limits=t}setAxisFriction(e,t){this._physicsPlugin.setAxisFriction(this,e,t)}getAxisFriction(e){return this._physicsPlugin.getAxisFriction(this,e)}setAxisMode(e,t){this._physicsPlugin.setAxisMode(this,e,t)}getAxisMode(e){return this._physicsPlugin.getAxisMode(this,e)}setAxisMinLimit(e,t){this._physicsPlugin.setAxisMinLimit(this,e,t)}getAxisMinLimit(e){return this._physicsPlugin.getAxisMinLimit(this,e)}setAxisMaxLimit(e,t){this._physicsPlugin.setAxisMaxLimit(this,e,t)}getAxisMaxLimit(e){return this._physicsPlugin.getAxisMaxLimit(this,e)}setAxisMotorType(e,t){this._physicsPlugin.setAxisMotorType(this,e,t)}getAxisMotorType(e){return this._physicsPlugin.getAxisMotorType(this,e)}setAxisMotorTarget(e,t){this._physicsPlugin.setAxisMotorTarget(this,e,t)}getAxisMotorTarget(e){return this._physicsPlugin.getAxisMotorTarget(this,e)}setAxisMotorMaxForce(e,t){this._physicsPlugin.setAxisMotorMaxForce(this,e,t)}getAxisMotorMaxForce(e){return this._physicsPlugin.getAxisMotorMaxForce(this,e)}}class oYe extends rM{constructor(e,t,i,s,r){super(1,{pivotA:e,pivotB:t,axisA:i,axisB:s},r)}}class lYe extends rM{constructor(e,t){super(2,{maxDistance:e},t)}}class cYe extends rM{constructor(e,t,i,s,r){super(3,{pivotA:e,pivotB:t,axisA:i,axisB:s},r)}}class uYe extends rM{constructor(e,t,i,s,r){super(4,{pivotA:e,pivotB:t,axisA:i,axisB:s},r)}}class hYe extends rM{constructor(e,t,i,s,r){super(5,{pivotA:e,pivotB:t,axisA:i,axisB:s},r)}}class dYe extends rM{constructor(e,t,i,s,r){super(6,{pivotA:e,pivotB:t,axisA:i,axisB:s},r)}}class fYe extends wbe{constructor(e,t,i,s,r,n,o,l,c){super({pivotA:e,pivotB:t,axisA:i,axisB:s},[{axis:6,minLimit:r,maxLimit:n,stiffness:o,damping:l}],c)}}var bae;(function(a){a[a.GEOMETRIC_MEAN=0]="GEOMETRIC_MEAN",a[a.MINIMUM=1]="MINIMUM",a[a.MAXIMUM=2]="MAXIMUM",a[a.ARITHMETIC_MEAN=3]="ARITHMETIC_MEAN",a[a.MULTIPLY=4]="MULTIPLY"})(bae||(bae={}));class Bbe{constructor(e,t,i={mass:0},s){if(this.transformNode=e,this.type=t,this._options=i,this._scene=s,this._disposeShapeWhenDisposed=!0,!this.transformNode){de.Error("No object was provided. A physics object is obligatory");return}const r=e;if(this.transformNode.parent&&this._options.mass!==0&&r.hasThinInstances&&de.Warn("A physics body has been created for an object which has a parent and thin instances. Babylon physics currently works in local space so unexpected issues may occur."),!this._scene&&e.getScene&&(this._scene=e.getScene()),!this._scene)return;this._options.mass=i.mass===void 0?0:i.mass,this._options.friction=i.friction===void 0?.2:i.friction,this._options.restitution=i.restitution===void 0?.2:i.restitution;const n=this._options.mass===0?0:2,o=this._options.startAsleep??!1;this.body=new MY(e,n,o,this._scene),this._addSizeOptions(),t.getClassName&&t.getClassName()==="PhysicsShape"?(this.shape=t,this._disposeShapeWhenDisposed=!1):this.shape=new C_({type:t,parameters:this._options},this._scene),this._options.isTriggerShape&&(this.shape.isTrigger=!0),this.material={friction:this._options.friction,restitution:this._options.restitution},this.body.shape=this.shape,this.shape.material=this.material,this.body.setMassProperties({mass:this._options.mass}),this._nodeDisposeObserver=this.transformNode.onDisposeObservable.add(()=>{this.dispose()})}_getObjectBoundingBox(){return this.transformNode.getRawBoundingInfo?this.transformNode.getRawBoundingInfo().boundingBox:new ef(new P(-.5,-.5,-.5),new P(.5,.5,.5))}_hasVertices(e){return(e==null?void 0:e.getTotalVertices())>0}_addSizeOptions(){this.transformNode.computeWorldMatrix(!0);const e=this._getObjectBoundingBox(),t=ae.Vector3[0];t.copyFrom(e.extendSize),t.scaleInPlace(2),t.multiplyInPlace(this.transformNode.absoluteScaling),t.x=Math.abs(t.x),t.y=Math.abs(t.y),t.z=Math.abs(t.z);const i=ae.Vector3[1];if(i.copyFrom(e.minimum),i.multiplyInPlace(this.transformNode.absoluteScaling),!this._options.center){const s=new P;s.copyFrom(e.center),s.multiplyInPlace(this.transformNode.absoluteScaling),this._options.center=s}switch(this.type){case 0:!this._options.radius&&Lr(t.x,t.y,1e-4)&&Lr(t.x,t.z,1e-4)?this._options.radius=t.x/2:this._options.radius||(de.Warn("Non uniform scaling is unsupported for sphere shapes. Setting the radius to the biggest bounding box extent."),this._options.radius=Math.max(t.x,t.y,t.z)/2);break;case 1:{const s=t.x/2;this._options.radius=this._options.radius??s,this._options.pointA=this._options.pointA??new P(0,i.y+s,0),this._options.pointB=this._options.pointB??new P(0,i.y+t.y-s,0)}break;case 2:{const s=t.x/2;this._options.radius=this._options.radius??s,this._options.pointA=this._options.pointA??new P(0,i.y,0),this._options.pointB=this._options.pointB??new P(0,i.y+t.y,0)}break;case 6:case 4:case 7:if(!this._options.mesh&&this._hasVertices(this.transformNode))this._options.mesh=this.transformNode;else if(!this._options.mesh||!this._hasVertices(this._options.mesh))throw new Error("No valid mesh was provided for mesh or convex hull shape parameter. Please provide a mesh with valid geometry (number of vertices greater than 0).");break;case 3:this._options.extents=this._options.extents??new P(t.x,t.y,t.z),this._options.rotation=this._options.rotation??Re.Identity();break}}dispose(){this._nodeDisposeObserver&&(this.body.transformNode.onDisposeObservable.remove(this._nodeDisposeObserver),this._nodeDisposeObserver=null),this.body.dispose(),this._disposeShapeWhenDisposed&&this.shape.dispose()}}class pYe{}class mYe{constructor(e,t,i){this._boxConfigs=new Array,this._constraints=new Array,this._bones=new Array,this._initialRotation=new Array,this._initialRotation2=new Array,this._boneNames=[],this._transforms=new Array,this._aggregates=new Array,this._ragdollMode=!1,this._rootBoneName="",this._rootBoneIndex=-1,this._mass=10,this._restitution=0,this.pauseSync=!1,this._defaultJoint=3,this._defaultJointMin=-90,this._defaultJointMax=90,this._skeleton=e,this._scene=e.getScene(),this._rootTransformNode=t,this._config=i,this._boxConfigs=[],this._putBoxesInBoneCenter=!1,this._defaultJoint=3,this._init()}getConstraints(){return this._constraints}getAggregate(e){return e<0||e>=this._aggregates.length?this._aggregates[this._rootBoneIndex]:this._aggregates[e]}_createColliders(){this._rootTransformNode.computeWorldMatrix(),this._skeleton.computeAbsoluteMatrices(!0),this._skeleton.prepare(!0);const e=this._config;for(let t=0;t<e.length;t++){const i=e[t].bone!==void 0?[e[t].bone]:e[t].bones;for(let s=0;s<i.length;s++){const r=this._skeleton.bones[this._skeleton.getBoneIndexByName(i[s])];if(r==null)return;const n={width:this._config[t].width,depth:this._config[t].depth,height:this._config[t].height,size:this._config[t].size};n.width=n.width??n.size,n.depth=n.depth??n.size,n.height=n.height??n.size;const o=new Si(i[s]+"_transform",this._scene);n.joint=e[t].joint!==void 0?e[t].joint:this._defaultJoint,n.rotationAxis=e[t].rotationAxis!==void 0?e[t].rotationAxis:fo.X,n.min=e[t].min!==void 0?e[t].min:this._defaultJointMin,n.max=e[t].max!==void 0?e[t].max:this._defaultJointMax;let l=0;e[t].putBoxInBoneCenter!==void 0&&e[t].putBoxInBoneCenter||this._putBoxesInBoneCenter?(r.length===void 0&&de.Log("The length property is not defined for bone "+r.name),l=r.length/2):e[t].boxOffset!==void 0&&(l=e[t].boxOffset),n.boxOffset=l;const c=e[t].boneOffsetAxis!==void 0?e[t].boneOffsetAxis:fo.Y,u=r.getDirection(c,this._rootTransformNode);n.boneOffsetAxis=c,o.position=r.getAbsolutePosition(this._rootTransformNode).add(u.scale(l));const f=e[t].mass!==void 0?e[t].mass:this._mass,p=e[t].restitution!==void 0?e[t].restitution:this._restitution,m=new Bbe(o,3,{mass:f,restitution:p,friction:.6,extents:new P(n.width,n.height,n.depth)},this._scene);m.body.setCollisionCallbackEnabled(!0),m.body.disablePreStep=!1,m.body.setMotionType(1),this._aggregates.push(m),this._bones.push(r),this._boneNames.push(r.name),this._transforms.push(o),this._boxConfigs.push(n),this._initialRotation.push(r.getRotationQuaternion(1,this._rootTransformNode)),this._initialRotation2.push(r.getRotationQuaternion(1))}}}_initJoints(){this._rootTransformNode.computeWorldMatrix();for(let e=0;e<this._bones.length;e++){if(e==this._rootBoneIndex)continue;const t=this._findNearestParent(e);if(t==null){de.Warn("Couldn't find a nearest parent bone in the configs for bone called "+this._boneNames[e]);return}const i=this._boneNames.indexOf(t.name);let s=this._bones[e].getAbsolutePosition(this._rootTransformNode).subtract(this._transforms[i].position);const r=this._transforms[i].computeWorldMatrix(),n=me.Invert(r);s=P.TransformCoordinates(this._bones[e].getAbsolutePosition(this._rootTransformNode),n);const o=this._bones[e].getAbsolutePosition(this._rootTransformNode),l=this._transforms[e].position.clone(),c=o.subtract(l),u=this._boxConfigs[e].joint??this._defaultJoint,f=new rM(u,{pivotA:s,pivotB:c,axisA:this._boxConfigs[e].rotationAxis,axisB:this._boxConfigs[e].rotationAxis,collision:!1},this._scene);this._aggregates[i].body.addConstraint(this._aggregates[e].body,f),f.isEnabled=!1,this._constraints.push(f)}}_syncBonesToPhysics(){const e=this._rootTransformNode.getWorldMatrix();for(let t=0;t<this._bones.length;t++){const i=this._aggregates[t].transformNode,s=this._bones[t].getAbsolutePosition();P.TransformCoordinatesToRef(s,e,i.position),this._bones[t].getDirectionToRef(this._boxConfigs[t].boneOffsetAxis,this._rootTransformNode,ae.Vector3[0]),ae.Vector3[0].scaleInPlace(this._boxConfigs[t].boxOffset??0),i.position.addInPlace(ae.Vector3[0]),this._setBoneOrientationToBody(t)}}_setBoneOrientationToBody(e){const t=this._aggregates[e].transformNode,i=this._bones[e];this._initialRotation[e].conjugateToRef(ae.Quaternion[0]),i.getRotationQuaternionToRef(1,this._rootTransformNode,ae.Quaternion[1]),ae.Quaternion[1].multiplyToRef(ae.Quaternion[0],t.rotationQuaternion),t.rotationQuaternion.normalize()}_syncBonesAndBoxes(){if(!this.pauseSync)if(this._ragdollMode){this._setBodyOrientationToBone(this._rootBoneIndex);const e=this._aggregates[this._rootBoneIndex].body.transformNode.position;this._rootTransformNode.getWorldMatrix().invertToRef(ae.Matrix[0]),P.TransformCoordinatesToRef(e,ae.Matrix[0],ae.Vector3[0]),this._bones[this._rootBoneIndex].setAbsolutePosition(ae.Vector3[0]);for(let t=0;t<this._bones.length;t++)t!=this._rootBoneIndex&&this._setBodyOrientationToBone(t)}else this._syncBonesToPhysics()}_setBodyOrientationToBone(e){var r,n;const t=this._rootTransformNode.rotationQuaternion??Re.FromEulerAngles(this._rootTransformNode.rotation.x,this._rootTransformNode.rotation.y,this._rootTransformNode.rotation.z),i=this._initialRotation2[e],s=(n=(r=this._aggregates[e].body)==null?void 0:r.transformNode)==null?void 0:n.rotationQuaternion;t.multiplyToRef(i,ae.Quaternion[1]),s.multiplyToRef(ae.Quaternion[1],ae.Quaternion[0]),this._bones[e].setRotationQuaternion(ae.Quaternion[0],1,this._rootTransformNode)}_defineRootBone(){const e=this._skeleton.getChildren();return e.length!=1?(de.Log("Ragdoll creation failed: there can only be one root in the skeleton."),!1):(this._rootBoneName=e[0].name,this._rootBoneIndex=this._boneNames.indexOf(this._rootBoneName),this._rootBoneIndex==-1?(de.Log("Ragdoll creation failed: the array boneNames doesn't have the root bone. The root bone is "+this._skeleton.getChildren()),!1):!0)}_findNearestParent(e){let t=this._bones[e].getParent();do{if(t!=null&&this._boneNames.includes(t.name))break;t=t==null?void 0:t.getParent()}while(t!=null);return t}_init(){this._createColliders(),this._defineRootBone()&&(this._initJoints(),this._scene.registerBeforeRender(()=>{this._syncBonesAndBoxes()}),this._syncBonesToPhysics())}ragdoll(){this._ragdollMode=!0,this._skeleton.bones.forEach(e=>{e.linkTransformNode(null)});for(let e=0;e<this._constraints.length;e++)this._constraints[e].isEnabled=!0;for(let e=0;e<this._aggregates.length;e++)this._aggregates[e].body.setMotionType(2)}dispose(){this._aggregates.forEach(e=>{e.dispose()})}}var Sae;(function(a){a[a.UNSUPPORTED=0]="UNSUPPORTED",a[a.SLIDING=1]="SLIDING",a[a.SUPPORTED=2]="SUPPORTED"})(Sae||(Sae={}));var zbe;(function(a){a[a.OK=0]="OK",a[a.FAILURE_3D=1]="FAILURE_3D",a[a.FAILURE_2D=2]="FAILURE_2D"})(zbe||(zbe={}));class gYe{}class TY{copyFrom(e){this.index=e.index,this.constraint=e.constraint,this.interaction=e.interaction}}class _Ye{constructor(){this.supportPlanes=new Array(4),this.numSupportPlanes=0,this.currentTime=0}getOutput(e){return this.outputInteractions[this.inputConstraints.indexOf(e)]}}function Fbe(a,e,t,i,s){const r=a._bodies,n=P.FromArray(e[4]),o=-i*t.dot(n);return{position:P.FromArray(e[3]),normal:n,distance:o,fraction:i,bodyB:r.get(e[0][0]),allowedPenetration:Math.min(Math.max(s-o,0),s)}}class vYe{constructor(e,t,i){this._orientation=Re.Identity(),this._manifold=[],this._contactAngleSensitivity=10,this._tmpMatrix=new me,this._tmpVecs=V1(31,P.Zero),this.keepDistance=.05,this.keepContactTolerance=.1,this.maxCastIterations=10,this.penetrationRecoverySpeed=1,this.staticFriction=0,this.dynamicFriction=1,this.maxSlopeCosine=.5,this.maxCharacterSpeedForSolver=10,this.up=new P(0,1,0),this.characterStrength=1e38,this.acceleration=.05,this.maxAcceleration=50,this.characterMass=0,this._position=e.clone(),this._velocity=P.Zero(),this._lastVelocity=P.Zero();const s=t.capsuleRadius??.6,r=t.capsuleHeight??1.8;this._tmpVecs[0].set(0,r*.5-s,0),this._tmpVecs[1].set(0,-r*.5+s,0),this._shape=t.shape??new EY(this._tmpVecs[0],this._tmpVecs[1],s,i),this._lastInvDeltaTime=1/60,this._lastDisplacement=P.Zero(),this._scene=i;const o=this._scene.getPhysicsEngine().getPhysicsPlugin()._hknp;this._startCollector=o.HP_QueryCollector_Create(16)[1],this._castCollector=o.HP_QueryCollector_Create(16)[1]}getPosition(){return this._position}getVelocity(){return this._velocity}setVelocity(e){this._velocity.copyFrom(e)}_validateManifold(){const e=[];for(let t=0;t<this._manifold.length;t++)this._manifold[t].bodyB.body.isDisposed||e.push(this._manifold[t]);this._manifold=e}_getPointVelocityToRef(e,t,i){const s=this._tmpVecs[10];this._getComWorldToRef(e,s);const r=this._tmpVecs[11];t.subtractToRef(s,r);const n=this._tmpVecs[12];e.body.getAngularVelocityToRef(n,e.index);const o=this._tmpVecs[13];P.CrossToRef(n,r,o),o.addToRef(e.body.getLinearVelocity(e.index),i)}_compareContacts(e,t){const i=(1-e.normal.dot(t.normal))*this._contactAngleSensitivity*this._contactAngleSensitivity,s=(e.distance-t.distance)*(e.distance*t.distance),r=this._tmpVecs[7];this._getPointVelocityToRef(e.bodyB,e.position,r);const n=this._tmpVecs[8];this._getPointVelocityToRef(t.bodyB,t.position,n);const o=this._tmpVecs[9];r.subtractToRef(n,o);const l=o.lengthSquared();return i*10+l*.1+s}_findContact(e,t,i){let s=-1,r=i;for(let n=0;n<t.length;n++){const o=this._compareContacts(e,t[n]);o<r&&(r=o,s=n)}return s}_updateManifold(e,t,i){const s=this._scene.getPhysicsEngine().getPhysicsPlugin(),r=s._hknp,n=r.HP_QueryCollector_GetNumHits(e)[1];if(n>0){const c=[];let u=1e38;const f=s._bodies;for(let m=0;m<n;m++){const[_,,d]=r.HP_QueryCollector_GetShapeProximityResult(e,m)[1];u=Math.min(u,_),c.push({position:P.FromArray(d[3]),normal:P.FromArray(d[4]),distance:_,fraction:0,bodyB:f.get(d[0][0]),allowedPenetration:Math.min(Math.max(this.keepDistance-_,0),this.keepDistance)})}for(let m=this._manifold.length-1;m>=0;m--){const _=this._manifold[m],d=this._findContact(_,c,1.1);if(d>=0){const h=Math.min(Math.max(this.keepDistance-c[d].distance,0),_.allowedPenetration);this._manifold[m]=c[d],this._manifold[m].allowedPenetration=h,c.splice(d,1)}else this._manifold.splice(m,1)}const p=c.findIndex(m=>m.distance==u);if(p>=0){const m=this._findContact(c[p],this._manifold,.1);if(m>=0){const _=Math.min(Math.max(this.keepDistance-c[p].distance,0),this._manifold[m].allowedPenetration);this._manifold[m]=c[p],this._manifold[m].allowedPenetration=_}else this._manifold.push(c[p])}}else this._manifold.length=0;let o=0;const l=r.HP_QueryCollector_GetNumHits(t)[1];if(l>0){let c=null;for(let u=0;u<l;u++){const[f,,p]=r.HP_QueryCollector_GetShapeCastResult(t,u)[1];if(c==null){const m=Fbe(s,p,i,f,this.keepDistance);if(c=p[0][0],this._findContact(m,this._manifold,.1)==-1&&this._manifold.push(m),m.bodyB.body.getMotionType(m.bodyB.index)==0)break}else if(c._pluginData&&p[0]!=c._pluginData.hpBodyId){o++;break}}}for(let c=this._manifold.length-1;c>=0;c--){let u=c-1;for(;u>=0&&!(this._compareContacts(this._manifold[c],this._manifold[u])<.1);u--);u>=0&&this._manifold.slice(c,1)}return o}_createSurfaceConstraint(e,t){const i={planeNormal:e.normal.clone(),planeDistance:e.distance,staticFriction:this.staticFriction,dynamicFriction:this.dynamicFriction,extraUpStaticFriction:0,extraDownStaticFriction:0,velocity:P.Zero(),angularVelocity:P.Zero(),priority:0},r=Math.max(this.maxSlopeCosine,.1),n=e.normal.dot(this.up),o=e.position.clone();if(n>r){const u=this.getPosition(),f=this._tmpVecs[20];e.position.subtractToRef(u,f);const p=e.normal.dot(f);o.x=u.x+this.up.x*p,o.y=u.y+this.up.y*p,o.z=u.z+this.up.z*p}const l=e.bodyB.body.getMotionType(e.bodyB.index),c=i.velocity.dot(i.planeNormal)*t;return i.planeDistance-=c,l==0?i.priority=2:l==1&&(i.priority=1),i}_addMaxSlopePlane(e,t,i,s,r){const n=s[i].planeNormal.dot(t);if(n>.01&&n<e){const o={planeNormal:s[i].planeNormal.clone(),planeDistance:s[i].planeDistance,velocity:s[i].velocity.clone(),angularVelocity:s[i].angularVelocity.clone(),priority:s[i].priority,dynamicFriction:s[i].dynamicFriction,staticFriction:s[i].staticFriction,extraDownStaticFriction:s[i].extraDownStaticFriction,extraUpStaticFriction:s[i].extraUpStaticFriction},l=o.planeDistance;if(o.planeNormal.subtractInPlace(t.scale(n)),o.planeNormal.normalize(),l>=0)o.planeDistance=l*o.planeNormal.dot(s[i].planeNormal);else{const c=Math.min(0,l+r);o.planeDistance=c/o.planeNormal.dot(s[i].planeNormal),s[i].planeDistance=0,this._resolveConstraintPenetration(o,this.penetrationRecoverySpeed)}return s.push(o),!0}return!1}_resolveConstraintPenetration(e,t){e.planeDistance<-1e-6&&(e.planeNormal.scaleToRef(e.planeDistance*t,this._tmpVecs[6]),e.velocity.subtractInPlace(this._tmpVecs[6]))}_createConstraintsFromManifold(e,t){const i=[];for(let s=0;s<this._manifold.length;s++){const r=this._createSurfaceConstraint(this._manifold[s],t);i.push(r),this._addMaxSlopePlane(this.maxSlopeCosine,this.up,s,i,this._manifold[s].allowedPenetration),this._resolveConstraintPenetration(r,this.penetrationRecoverySpeed)}return i}_simplexSolverSortInfo(e){for(let t=0;t<e.numSupportPlanes-1;t++)for(let i=t+1;i<e.numSupportPlanes;i++){const s=e.supportPlanes[t],r=e.supportPlanes[i];if(!(s.constraint.priority<r.constraint.priority)){if(s.constraint.priority==r.constraint.priority){const n=s.constraint.velocity.lengthSquared(),o=r.constraint.velocity.lengthSquared();if(n<o)continue}e.supportPlanes[t]=r,e.supportPlanes[i]=s}}}_simplexSolverSolve1d(e,t,i,s){const n=t.velocity,o=this._tmpVecs[22];i.subtractToRef(n,o);const l=o.dot(t.planeNormal),c=o.lengthSquared();o.subtractInPlace(t.planeNormal.scale(l));{const u=l*l,f=o.dot(this.up)>0?t.extraUpStaticFriction:t.extraDownStaticFriction;if(f>0){const p=this.up.cross(t.planeNormal),m=p.lengthSquared();let _=0;if(m>1e-5){p.scaleInPlace(1/Math.sqrt(m)),_=o.dot(p);{const d=_*_,h=t.staticFriction*t.staticFriction;u*h>=d&&(o.subtractInPlace(p.scale(_)),_=0)}}{const d=c-_*_-u,h=(t.staticFriction+f)*(t.staticFriction+f);if(u*h>=d&&_==0){s.copyFrom(n);return}}}else{const p=t.staticFriction*t.staticFriction;if(u*(1+p)>=c){s.copyFrom(n);return}}}if(t.dynamicFriction<1){const u=o.lengthSquared();if(u>=1e-5&&u>1e-4*c){let f=Math.sqrt(c/u);f=t.dynamicFriction+(1-t.dynamicFriction)*f,o.scaleInPlace(f);const p=t.planeNormal.dot(o);o.subtractInPlace(t.planeNormal.scale(p))}}s.copyFrom(o),s.addInPlace(n)}_simplexSolverSolveTest1d(e,t){const i=this._tmpVecs[23];return t.subtractToRef(e.velocity,i),i.dot(e.planeNormal)<-.001}_simplexSolverSolve2d(e,t,i,s,r,n){const l=i.planeNormal.cross(s.planeNormal),c=l.lengthSquared();let u=!1,f=null;for(;;){if(c<=1e-5||u){e.getOutput(i).status=2,e.getOutput(s).status=2,i.priority>s.priority?(this._simplexSolverSolve1d(e,s,r,n),this._simplexSolverSolve1d(e,i,r,n)):(this._simplexSolverSolve1d(e,i,r,n),this._simplexSolverSolve1d(e,s,r,n));return}const b=1/Math.sqrt(c);l.scaleInPlace(b);{const M=i.planeNormal.cross(s.planeNormal),T=s.planeNormal.cross(l),O=l.cross(i.planeNormal),R=i.velocity.add(s.velocity),I=this._tmpVecs[2];I.set(.5*l.dot(R),i.planeNormal.dot(i.velocity),s.planeNormal.dot(s.velocity));const N=me.FromValues(M.x,T.x,O.x,0,M.y,T.y,O.y,0,M.z,T.z,O.z,0,0,0,0,1);if(f=P.TransformNormal(I,N),f.scaleInPlace(b),Math.abs(f.x)>t.x||Math.abs(f.y)>t.y||Math.abs(f.z)>t.z)u=!0;else break}}const p=f,m=this._tmpVecs[24];r.subtractToRef(p,m);const _=m.lengthSquared(),d=this.up.dot(l);let h=m.dot(l),x=i.staticFriction+s.staticFriction;d*h>0?x+=(i.extraUpStaticFriction+s.extraUpStaticFriction)*d:x+=(i.extraDownStaticFriction+s.extraDownStaticFriction)*d,x*=.5;const A=(i.dynamicFriction+s.dynamicFriction)*.5,S=x*x,E=h*h;if((_-E)*S>=E){n.copyFrom(p);return}if(A<1&&h*h>1e-4*_){const b=1/h,M=Math.abs(b)*Math.sqrt(_)*(1-A)+A;h*=M}n.copyFrom(p),n.addInPlace(l.scale(h))}_simplexSolverSolve3d(e,t,i,s,r,n,o,l){let u=null;{const f=s.planeNormal.cross(r.planeNormal),p=r.planeNormal.cross(i.planeNormal),m=i.planeNormal.cross(s.planeNormal),_=f.dot(i.planeNormal);let d=!1;for(;;){if(Math.abs(_)<1e-5||d){n&&(this._simplexSolverSortInfo(e),i=e.supportPlanes[0].constraint,s=e.supportPlanes[1].constraint,r=e.supportPlanes[2].constraint),e.getOutput(i).status=1,e.getOutput(s).status=1,e.getOutput(r).status=1;const A=e.numSupportPlanes;this._simplexSolverSolve2d(e,t,i,s,o,l),A==e.numSupportPlanes&&this._simplexSolverSolve2d(e,t,i,r,o,l),A==e.numSupportPlanes&&this._simplexSolverSolve2d(e,t,s,r,o,l);return}const h=this._tmpVecs[2];h.set(i.planeNormal.dot(i.velocity),s.planeNormal.dot(s.velocity),r.planeNormal.dot(r.velocity));const x=me.FromValues(f.x,f.y,f.z,0,p.x,p.y,p.z,0,m.x,m.y,m.z,0,0,0,0,1);if(u=P.TransformNormal(h,x),u.scaleInPlace(1/_),Math.abs(u.x)>t.x||Math.abs(u.y)>t.y||Math.abs(u.z)>t.z)d=!0;else break}}l.copyFrom(u)}_simplexSolverExamineActivePlanes(e,t,i,s){for(;;)switch(e.numSupportPlanes){case 1:{const r=e.supportPlanes[0].constraint;this._simplexSolverSolve1d(e,r,i,s);return}case 2:{const r=P.Zero();this._simplexSolverSolve1d(e,e.supportPlanes[1].constraint,i,r),this._simplexSolverSolveTest1d(e.supportPlanes[0].constraint,r)?this._simplexSolverSolve2d(e,t,e.supportPlanes[0].constraint,e.supportPlanes[1].constraint,i,s):(e.supportPlanes[0].copyFrom(e.supportPlanes[1]),e.numSupportPlanes=1,s.copyFrom(r));return}case 3:{{const r=P.Zero();if(this._simplexSolverSolve1d(e,e.supportPlanes[2].constraint,i,s),!this._simplexSolverSolveTest1d(e.supportPlanes[0].constraint,r)&&!this._simplexSolverSolveTest1d(e.supportPlanes[1].constraint,r)){s.copyFrom(r),e.supportPlanes[0].copyFrom(e.supportPlanes[2]),e.numSupportPlanes=1;continue}}{let r=!1;for(let n=0;n<2;n++){const o=P.Zero();if(this._simplexSolverSolve2d(e,t,e.supportPlanes[n].constraint,e.supportPlanes[2].constraint,i,s),!this._simplexSolverSolveTest1d(e.supportPlanes[1-n].constraint,o)){e.supportPlanes[0].copyFrom(e.supportPlanes[n]),e.supportPlanes[1].copyFrom(e.supportPlanes[2]),e.numSupportPlanes--,r=!0;break}}if(r)continue}this._simplexSolverSolve3d(e,t,e.supportPlanes[0].constraint,e.supportPlanes[1].constraint,e.supportPlanes[2].constraint,!0,i,s);return}case 4:{this._simplexSolverSortInfo(e);let r=!1;for(let n=0;n<3;n++){const o=P.Zero();if(this._simplexSolverSolve3d(e,t,e.supportPlanes[(n+1)%3].constraint,e.supportPlanes[(n+2)%3].constraint,e.supportPlanes[3].constraint,!1,i,o),!this._simplexSolverSolveTest1d(e.supportPlanes[n].constraint,o)){e.supportPlanes[n].copyFrom(e.supportPlanes[2]),e.supportPlanes[2].copyFrom(e.supportPlanes[3]),e.numSupportPlanes=3,r=!0;break}}if(r)continue;{const n=i.clone(),o=e.supportPlanes[0].constraint,l=e.supportPlanes[1].constraint,c=e.supportPlanes[2].constraint,u=e.supportPlanes[3].constraint,f=e.numSupportPlanes;f==e.numSupportPlanes?this._simplexSolverSolve3d(e,t,o,l,c,!1,n,n):f==e.numSupportPlanes?this._simplexSolverSolve3d(e,t,o,l,u,!1,n,n):f==e.numSupportPlanes?this._simplexSolverSolve3d(e,t,o,c,u,!1,n,n):f==e.numSupportPlanes&&this._simplexSolverSolve3d(e,t,l,c,u,!1,n,n),s.copyFrom(n)}{let n=0;for(let l=0;l<4;l++)n=Math.max(n,e.supportPlanes[l].interaction.status);let o=0;for(;o<4;o++){if(n==e.supportPlanes[o].interaction.status){e.supportPlanes[o].copyFrom(e.supportPlanes[3]);break}e.numSupportPlanes--}}for(let n=0;n<3;n++)e.supportPlanes[n].interaction.status=0;continue}}}_simplexSolverSolve(e,t,i,s,r,n){const l=new gYe;l.position=P.Zero(),l.velocity=t.clone(),l.planeInteractions=[];let c=i;for(let f=0;f<e.length;f++)l.planeInteractions.push({touched:!1,stopped:!1,surfaceTime:0,penaltyDistance:0,status:0});const u=new _Ye;for(u.inputConstraints=e,u.outputInteractions=l.planeInteractions,u.supportPlanes[0]=new TY,u.supportPlanes[1]=new TY,u.supportPlanes[2]=new TY,u.supportPlanes[3]=new TY;c>0;){let f=-1,p=c;for(let d=0;d<e.length;d++){if(u.numSupportPlanes>=1&&u.supportPlanes[0].index==d||u.numSupportPlanes>=2&&u.supportPlanes[1].index==d||u.numSupportPlanes>=3&&u.supportPlanes[2].index==d||l.planeInteractions[d].status!=0)continue;const h=e[d],x=this._tmpVecs[25];l.velocity.subtractToRef(h.velocity,x);const A=-x.dot(h.planeNormal);if(A<=0)continue;const S=this._tmpVecs[26];h.velocity.scaleToRef(u.currentTime,this._tmpVecs[27]),l.position.subtractToRef(this._tmpVecs[27],S);let E=h.planeNormal.dot(S);const b=l.planeInteractions[d].penaltyDistance;b<1e-6&&(E=0),E+=b,E<p*A&&(p=E/A,f=d)}if(p>1e-4){u.currentTime+=p,c-=p,l.position.addInPlace(l.velocity.scale(p));for(let d=0;d<u.numSupportPlanes;d++)u.supportPlanes[d].interaction.surfaceTime+=p,u.supportPlanes[d].interaction.touched=!0;if(l.deltaTime=u.currentTime,u.currentTime>s)return l}if(f<0){l.deltaTime=i;break}const _=u.supportPlanes[u.numSupportPlanes++];_.constraint=e[f],_.interaction=l.planeInteractions[f],_.interaction.penaltyDistance=(_.interaction.penaltyDistance+1e-6)*2,_.index=f,this._simplexSolverExamineActivePlanes(u,n,t,l.velocity)}return l}checkSupport(e,t){const i={isSurfaceDynamic:!1,supportedState:0,averageSurfaceNormal:P.Zero(),averageSurfaceVelocity:P.Zero(),averageAngularSurfaceVelocity:P.Zero()};return this.checkSupportToRef(e,t,i),i}checkSupportToRef(e,t,i){this._validateManifold();const r=this._createConstraintsFromManifold(e,0),n=[];for(let u=0;u<r.length;u++)n.push(r[u].velocity.clone()),r[u].velocity.setAll(0);const o=this._tmpVecs[3];o.set(this.maxCharacterSpeedForSolver,this.maxCharacterSpeedForSolver,this.maxCharacterSpeedForSolver);const l=this._simplexSolverSolve(r,t,e,e,this.up,o);if(i.averageSurfaceVelocity.setAll(0),i.averageAngularSurfaceVelocity.setAll(0),i.averageSurfaceNormal.setAll(0),i.isSurfaceDynamic=!1,l.velocity.equalsWithEpsilon(t,1e-4)){i.supportedState=0;return}if(l.velocity.lengthSquared()<1e-4)i.supportedState=2;else{l.velocity.normalize();const u=l.velocity.dot(t);1-u*u<this.maxSlopeCosine*this.maxSlopeCosine?i.supportedState=1:i.supportedState=2}let c=0;for(let u=-0;u<r.length;u++)l.planeInteractions[u].touched&&r[u].planeNormal.dot(t)<-.08&&(i.averageSurfaceNormal.addInPlace(r[u].planeNormal),i.averageSurfaceVelocity.addInPlace(n[u]),i.averageAngularSurfaceVelocity.addInPlace(r[u].angularVelocity),c++);if(c>0&&(i.averageSurfaceNormal.normalize(),i.averageSurfaceVelocity.scaleInPlace(1/c),i.averageAngularSurfaceVelocity.scaleInPlace(1/c)),i.supportedState==2)for(let u=0;u<this._manifold.length;u++){const p=this._manifold[u].bodyB;if(this._manifold[u].normal.dot(t)<-.08&&p.body.getMotionType(0)==2){i.isSurfaceDynamic=!0;break}}}_castWithCollectors(e,t,i,s){const r=this._scene.getPhysicsEngine().getPhysicsPlugin(),n=r._hknp,o=[e.x,e.y,e.z],l=[this._orientation.x,this._orientation.y,this._orientation.z,this._orientation.w];if(s!=null){const c=[this._shape._pluginData,o,l,this.keepDistance+this.keepContactTolerance,!1,[BigInt(0)]];n.HP_World_ShapeProximityWithCollector(r.world,s,c)}{const c=[this._shape._pluginData,l,o,[t.x,t.y,t.z],!1,[BigInt(0)]];n.HP_World_ShapeCastWithCollector(r.world,i,c)}}_resolveContacts(e,t){for(let i=0;i<this._manifold.length;i++){const s=this._manifold[i],r=this._manifold[i].bodyB;if(r.body.getMotionType(r.index)==2){let n=0,o=0,l=P.Zero();const c=s.position,u=this._tmpVecs[19];this._getPointVelocityToRef(r,s.position,u),u.subtractInPlace(this._velocity);const f=u.dot(s.normal);let m=-f*.9;if(s.distance<0&&(m+=s.distance*.4/e),m<0){const _=this._getInverseInertiaWorld(r),d=this._tmpVecs[15];this._getComWorldToRef(r,d);const h=this._tmpVecs[16];s.position.subtractToRef(d,h);const x=this._tmpVecs[17];P.CrossToRef(h,s.normal,x);const A=this._tmpVecs[18];P.TransformNormalToRef(x,_,A),n=A.dot(x)+this._getInvMass(r),o=m/n;const S=-this.characterStrength*e;o<S&&(o=S),l=s.normal.scale(o)}else o=0,n=this._getInvMass(r);{let _=s.normal.dot(t.scale(e));f<0&&(_-=f),_<-1e-12&&l.addInPlace(s.normal.scale(this.characterMass*_))}r.body.applyImpulse(l,c,r.index)}}}_getInverseInertiaWorld(e){const t=e.body.getMassProperties(e.index);if(!t.inertia||!t.inertiaOrientation)return me.IdentityReadOnly;const i=me.FromQuaternionToRef(t.inertiaOrientation,ae.Matrix[0]).invert(),s=ae.Matrix[1],r=i.getRowToRef(0,ae.Vector4[0]);return s.setRowFromFloats(0,t.inertia.x*r.x,t.inertia.x*r.y,t.inertia.x*r.z,0),i.getRowToRef(1,r),s.setRowFromFloats(0,t.inertia.y*r.x,t.inertia.y*r.y,t.inertia.y*r.z,0),i.getRowToRef(2,r),s.setRowFromFloats(0,t.inertia.z*r.x,t.inertia.z*r.y,t.inertia.z*r.z,0),i.multiplyToRef(s,this._tmpMatrix),this._tmpMatrix}_getComWorldToRef(e,t){const i=e.body.getMassProperties(e.index);P.TransformCoordinatesToRef(i.centerOfMass,e.body.transformNode.getWorldMatrix(),t)}_getInvMass(e){return 1/e.body.getMassProperties(e.index).mass}integrate(e,t,i){const s=this._scene.getPhysicsEngine().getPhysicsPlugin(),r=1/e;let n=e,o=P.Zero();const l=1e-4,c=1e-8;{const u=l*r;if(this._velocity.equalsWithEpsilon(this._lastVelocity,u))this._lastDisplacement.scaleInPlace(n*this._lastInvDeltaTime);else{const f=this._velocity;if(t.supportedState==2){const p=this._tmpVecs[28];this._velocity.subtractToRef(t.averageSurfaceVelocity,p);const m=t.averageSurfaceNormal.dot(p);m<0&&(p.subtractInPlace(t.averageSurfaceNormal.scale(m)),f.copyFrom(p),f.addInPlace(t.averageSurfaceVelocity))}this._lastDisplacement.copyFrom(f),this._lastDisplacement.scaleInPlace(n)}this._lastVelocity.copyFrom(this._velocity),this._lastInvDeltaTime=r}this._validateManifold();for(let u=0;u<this.maxCastIterations&&n>1e-5;u++){this._castWithCollectors(this._position,this._position.add(this._lastDisplacement),this._castCollector,this._startCollector);const f=this._updateManifold(this._startCollector,this._castCollector,this._lastDisplacement),p=this._createConstraintsFromManifold(e,e-n),m=this._tmpVecs[3];m.set(this.maxCharacterSpeedForSolver,this.maxCharacterSpeedForSolver,this.maxCharacterSpeedForSolver);const _=this._velocity.lengthSquared()==0?0:.5*this.keepDistance/this._velocity.length(),d=this._simplexSolverSolve(p,this._velocity,n,_,this.up,m),h=d.position,x=d.deltaTime;o=d.velocity,this._resolveContacts(e,i);let A=-1;if(f!=0||h.lengthSquared()>c&&!this._lastDisplacement.equalsWithEpsilon(h,l)){this._castWithCollectors(this._position,this._position.add(h),this._castCollector,this._startCollector);const S=s._hknp,E=S.HP_QueryCollector_GetNumHits(this._castCollector)[1];if(E>0)for(let b=0;b<E;b++){const[M,T,O]=S.HP_QueryCollector_GetShapeCastResult(this._castCollector,b)[1],R=Fbe(s,O,h,M,this.keepDistance);if(this._findContact(R,this._manifold,.1)==-1){A=this._manifold.length,this._manifold.push(R);break}}}if(A>=0){const S=this._manifold[A],E=1/h.length(),b=h.dot(S.normal)*E,M=this.keepDistance/-b;let O=S.fraction-M*E;O=Math.min(Math.max(O,0),1);const R=h.scale(O);this._position.addInPlace(R),n-=x*O}else this._position.addInPlace(h),n-=x;this._lastDisplacement.copyFrom(h)}this._velocity.copyFrom(o)}calculateMovementToRef(e,t,i,s,r,n,o,l){let u=t.cross(o);if(u.lengthSquared()<1e-5)return!1;u.normalize();const f=u.cross(i);f.normalize(),u=f.cross(i),u.normalize();const p=me.FromValues(f.x,f.y,f.z,0,u.x,u.y,u.z,0,i.x,i.y,i.z,0,0,0,0,1),m=p.clone().invert();s.subtractToRef(r,this._tmpVecs[29]);const _=this._tmpVecs[30];P.TransformNormalToRef(this._tmpVecs[29],m,_);const d=o.cross(t),h=n.dot(t),x=n.dot(d),A=n.length(),S=this._tmpVecs[4];S.set(-h,x,0),S.normalize(),S.scaleInPlace(A);const E=this._tmpVecs[5];S.subtractToRef(_,E);{const b=E.lengthSquared(),M=this.maxAcceleration*e;let T;b*this.acceleration*this.acceleration>M*M?T=M/Math.sqrt(b):T=this.acceleration,E.scaleInPlace(T)}return _.addInPlace(E),P.TransformNormalToRef(_,p,l),l.addInPlace(r),!0}calculateMovement(e,t,i,s,r,n,o){const l=new P(0,0,0);return this.calculateMovementToRef(e,t,i,s,r,n,o,l),l}}class AYe{constructor(e,t,i){this._vertices=[],this._indices=[],this._isRightHanded=i.useRightHandedSystem,this._collectIndices=t}addNodeMeshes(e,t){e.computeWorldMatrix(!0);const i=ae.Matrix[0];if(me.ScalingToRef(e.absoluteScaling.x,e.absoluteScaling.y,e.absoluteScaling.z,i),e instanceof Ne?this._addMesh(e,i):e instanceof $x&&this._addMesh(e.sourceMesh,i),t){const s=ae.Matrix[1];e.computeWorldMatrix().invertToRef(s);const r=ae.Matrix[2];s.multiplyToRef(i,r),e.getChildMeshes(!1).filter(o=>!o.physicsBody).forEach(o=>{const l=o.computeWorldMatrix(),c=ae.Matrix[3];l.multiplyToRef(r,c),o instanceof Ne?this._addMesh(o,c):o instanceof $x&&this._addMesh(o.sourceMesh,c)})}}_addMesh(e,t){const i=e.getVerticesData(q.PositionKind)||[],s=i.length/3,r=this._vertices.length;for(let n=0;n<s;n++){const o=new P(i[n*3+0],i[n*3+1],i[n*3+2]);this._vertices.push(P.TransformCoordinates(o,t))}if(this._collectIndices){const n=e.getIndices();if(n)for(let o=0;o<n.length;o+=3)this._isRightHanded?(this._indices.push(n[o+0]+r),this._indices.push(n[o+1]+r),this._indices.push(n[o+2]+r)):(this._indices.push(n[o+2]+r),this._indices.push(n[o+1]+r),this._indices.push(n[o+0]+r))}}getVertices(e){const t=this._vertices.length*3,s=t*4,r=e._malloc(s),n=new Float32Array(e.HEAPU8.buffer,r,t);for(let o=0;o<this._vertices.length;o++)n[o*3+0]=this._vertices[o].x,n[o*3+1]=this._vertices[o].y,n[o*3+2]=this._vertices[o].z;return{offset:r,numObjects:t}}freeBuffer(e,t){e._free(t.offset)}getTriangles(e){const i=this._indices.length*4,s=e._malloc(i),r=new Int32Array(e.HEAPU8.buffer,s,this._indices.length);for(let n=0;n<this._indices.length;n++)r[n]=this._indices[n];return{offset:s,numObjects:this._indices.length}}}class kbe{constructor(e){this.hpBodyId=e,this.userMassProps={centerOfMass:void 0,mass:void 0,inertia:void 0,inertiaOrientation:void 0}}}class Ube{constructor(){this.bodyId=BigInt(0),this.position=new P,this.normal=new P}}class jbe{constructor(){this.contactOnA=new Ube,this.contactOnB=new Ube,this.impulseApplied=0,this.type=0}static readToRef(e,t,i){const s=new Int32Array(e,t),r=new Float32Array(e,t),n=2;i.contactOnA.bodyId=BigInt(s[n]),i.contactOnA.position.set(r[n+8],r[n+9],r[n+10]),i.contactOnA.normal.set(r[n+11],r[n+12],r[n+13]);const o=18;i.contactOnB.bodyId=BigInt(s[o]),i.contactOnB.position.set(r[o+8],r[o+9],r[o+10]),i.contactOnB.normal.set(r[o+11],r[o+12],r[o+13]),i.impulseApplied=r[o+13+3],i.type=s[0]}}class Vbe{constructor(){this.bodyIdA=BigInt(0),this.bodyIdB=BigInt(0),this.type=0}static readToRef(e,t,i){const s=new Int32Array(e,t);i.type=s[0],i.bodyIdA=BigInt(s[2]),i.bodyIdB=BigInt(s[6])}}class CYe{constructor(e=!0,t=HK){if(this._useDeltaForWorldStep=e,this._hknp={},this.name="HavokPlugin",this._fixedTimeStep=1/60,this._tmpVec3=V1(3,P.Zero),this._bodies=new Map,this._shapes=new Map,this._bodyCollisionObservable=new Map,this._constraintToBodyIdPair=new Map,this._bodyCollisionEndedObservable=new Map,this.onCollisionObservable=new xe,this.onCollisionEndedObservable=new xe,this.onTriggerCollisionObservable=new xe,typeof t=="function"){de.Error("Havok is not ready. Please make sure you await HK() before using the plugin.");return}else this._hknp=t;if(!this.isSupported()){de.Error("Havok is not available. Please make sure you included the js file.");return}this.world=this._hknp.HP_World_Create()[1],this._queryCollector=this._hknp.HP_QueryCollector_Create(1)[1]}isSupported(){return this._hknp!==void 0}setGravity(e){this._hknp.HP_World_SetGravity(this.world,this._bVecToV3(e))}setTimeStep(e){this._fixedTimeStep=e}getTimeStep(){return this._fixedTimeStep}executeStep(e,t){for(const s of t)s.disablePreStep||this.setPhysicsBodyTransformation(s,s.transformNode);const i=this._useDeltaForWorldStep?e:this._fixedTimeStep;this._hknp.HP_World_SetIdealStepTime(this.world,i),this._hknp.HP_World_Step(this.world,i),this._bodyBuffer=this._hknp.HP_World_GetBodyBuffer(this.world)[1];for(const s of t)s.disableSync||this.sync(s);this._notifyCollisions(),this._notifyTriggers()}getPluginVersion(){return 2}setVelocityLimits(e,t){this._hknp.HP_World_SetSpeedLimit(this.world,e,t)}getMaxLinearVelocity(){return this._hknp.HP_World_GetSpeedLimit(this.world)[1]}getMaxAngularVelocity(){return this._hknp.HP_World_GetSpeedLimit(this.world)[2]}initBody(e,t,i,s){e._pluginData=new kbe(this._hknp.HP_Body_Create()[1]),this._internalSetMotionType(e._pluginData,t);const r=[this._bVecToV3(i),this._bQuatToV4(s)];this._hknp.HP_Body_SetQTransform(e._pluginData.hpBodyId,r),this._hknp.HP_World_AddBody(this.world,e._pluginData.hpBodyId,e.startAsleep),this._bodies.set(e._pluginData.hpBodyId[0],{body:e,index:0})}removeBody(e){if(e._pluginDataInstances&&e._pluginDataInstances.length>0)for(const t of e._pluginDataInstances)this._bodyCollisionObservable.delete(t.hpBodyId[0]),this._hknp.HP_World_RemoveBody(this.world,t.hpBodyId),this._bodies.delete(t.hpBodyId[0]);e._pluginData&&(this._bodyCollisionObservable.delete(e._pluginData.hpBodyId[0]),this._hknp.HP_World_RemoveBody(this.world,e._pluginData.hpBodyId),this._bodies.delete(e._pluginData.hpBodyId[0]))}initBodyInstances(e,t,i){var n;const s=((n=i._thinInstanceDataStorage)==null?void 0:n.instancesCount)??0,r=i._thinInstanceDataStorage.matrixData;r&&(this._createOrUpdateBodyInstances(e,t,r,0,s,!1),e._pluginDataInstances.forEach((o,l)=>{this._bodies.set(o.hpBodyId[0],{body:e,index:l})}))}_createOrUpdateBodyInstances(e,t,i,s,r,n){const o=ae.Quaternion[0],l=me.Identity();for(let c=s;c<r;c++){const u=[i[c*16+12],i[c*16+13],i[c*16+14]];let f;n?f=e._pluginDataInstances[c].hpBodyId:f=this._hknp.HP_Body_Create()[1],l.setRowFromFloats(0,i[c*16+0],i[c*16+1],i[c*16+2],0),l.setRowFromFloats(1,i[c*16+4],i[c*16+5],i[c*16+6],0),l.setRowFromFloats(2,i[c*16+8],i[c*16+9],i[c*16+10],0),Re.FromRotationMatrixToRef(l,o);const p=[u,[o.x,o.y,o.z,o.w]];if(this._hknp.HP_Body_SetQTransform(f,p),!n){const m=new kbe(f);e._pluginDataInstances.length&&(m.userMassProps=e._pluginDataInstances[0].userMassProps),this._internalSetMotionType(m,t),this._internalUpdateMassProperties(m),e._pluginDataInstances.push(m),this._hknp.HP_World_AddBody(this.world,f,e.startAsleep),m.worldTransformOffset=this._hknp.HP_Body_GetWorldTransformOffset(f)[1]}}}updateBodyInstances(e,t){var o,l;const i=((o=t._thinInstanceDataStorage)==null?void 0:o.instancesCount)??0,s=t._thinInstanceDataStorage.matrixData;if(!s)return;const r=e._pluginDataInstances.length,n=this.getMotionType(e);if(i>r){this._createOrUpdateBodyInstances(e,n,s,r,i,!1);const c=this._hknp.HP_Body_GetShape(e._pluginDataInstances[0].hpBodyId)[1];c[0]||(c[0]=(l=e.shape)==null?void 0:l._pluginData[0]);for(let u=r;u<i;u++)this._hknp.HP_Body_SetShape(e._pluginDataInstances[u].hpBodyId,c),this._internalUpdateMassProperties(e._pluginDataInstances[u]),this._bodies.set(e._pluginDataInstances[u].hpBodyId[0],{body:e,index:u})}else if(i<r){const c=r-i;for(let u=0;u<c;u++){const f=e._pluginDataInstances.pop();this._bodies.delete(f.hpBodyId[0]),this._hknp.HP_World_RemoveBody(this.world,f.hpBodyId),this._hknp.HP_Body_Release(f.hpBodyId)}this._createOrUpdateBodyInstances(e,n,s,0,i,!0)}}sync(e){this.syncTransform(e,e.transformNode)}syncTransform(e,t){var i;if(e._pluginDataInstances.length){const s=t,r=s._thinInstanceDataStorage.matrixData;if(!r)return;const n=e._pluginDataInstances.length;for(let o=0;o<n;o++){const l=e._pluginDataInstances[o].worldTransformOffset,c=new Float32Array(this._hknp.HEAPU8.buffer,this._bodyBuffer+l,16),u=o*16;for(let f=0;f<15;f++)(f&3)!=3&&(r[u+f]=c[f]);r[u+15]=1}s.thinInstanceBufferUpdated("matrix")}else try{const s=this._hknp.HP_Body_GetQTransform(e._pluginData.hpBodyId)[1],r=s[0],n=s[1],o=ae.Quaternion[0];o.set(n[0],n[1],n[2],n[3]);const l=t.parent;if(l&&!l.getWorldMatrix().isIdentity()){l.computeWorldMatrix(!0),ae.Vector3[1].copyFrom(t.scaling),o.normalize();const c=ae.Matrix[0],u=ae.Vector3[0];u.copyFromFloats(r[0],r[1],r[2]),me.ComposeToRef(t.absoluteScaling,o,u,c);const f=ae.Matrix[1];l.getWorldMatrix().invertToRef(f);const p=ae.Matrix[2];c.multiplyToRef(f,p),p.decomposeToTransformNode(t),(i=t.rotationQuaternion)==null||i.normalize(),t.scaling.copyFrom(ae.Vector3[1])}else t.position.set(r[0],r[1],r[2]),t.rotationQuaternion?t.rotationQuaternion.copyFrom(o):o.toEulerAnglesToRef(t.rotation)}catch(s){de.Error(`Syncing transform failed for node ${t.name}: ${s.message}...`)}}setShape(e,t){var n,o;const i=t&&t._pluginData?t._pluginData:BigInt(0);if(!(e.transformNode instanceof Ne)||!((n=e.transformNode._thinInstanceDataStorage)!=null&&n.matrixData)){this._hknp.HP_Body_SetShape(e._pluginData.hpBodyId,i),this._internalUpdateMassProperties(e._pluginData);return}const r=((o=e.transformNode._thinInstanceDataStorage)==null?void 0:o.instancesCount)??0;for(let l=0;l<r;l++)this._hknp.HP_Body_SetShape(e._pluginDataInstances[l].hpBodyId,i),this._internalUpdateMassProperties(e._pluginDataInstances[l])}_getPluginReference(e,t){var i;return(i=e._pluginDataInstances)!=null&&i.length?e._pluginDataInstances[t??0]:e._pluginData}getShape(e){const t=this._getPluginReference(e),i=this._hknp.HP_Body_GetShape(t.hpBodyId)[1];if(i!=0){const s=e.transformNode.getScene();return new C_({pluginData:i},s)}return null}getShapeType(e){return e.type?e.type:this._hknp.HP_Shape_GetType(e._pluginData)}setEventMask(e,t,i){this._applyToBodyOrInstances(e,s=>{this._hknp.HP_Body_SetEventMask(s.hpBodyId,t)},i)}getEventMask(e,t){const i=this._getPluginReference(e,t);return this._hknp.HP_Body_GetEventMask(i.hpBodyId)[1]}_fromMassPropertiesTuple(e){return{centerOfMass:P.FromArray(e[0]),mass:e[1],inertia:P.FromArray(e[2]),inertiaOrientation:Re.FromArray(e[3])}}_internalUpdateMassProperties(e){const t=this._internalComputeMassProperties(e),i=e.userMassProps;i.centerOfMass&&(t[0]=i.centerOfMass.asArray()),i.mass!=null&&(t[1]=i.mass),i.inertia&&(t[2]=i.inertia.asArray()),i.inertiaOrientation&&(t[3]=i.inertiaOrientation.asArray()),this._hknp.HP_Body_SetMassProperties(e.hpBodyId,t)}_internalSetMotionType(e,t){switch(t){case 0:this._hknp.HP_Body_SetMotionType(e.hpBodyId,this._hknp.MotionType.STATIC);break;case 1:this._hknp.HP_Body_SetMotionType(e.hpBodyId,this._hknp.MotionType.KINEMATIC);break;case 2:this._hknp.HP_Body_SetMotionType(e.hpBodyId,this._hknp.MotionType.DYNAMIC);break}}setMotionType(e,t,i){this._applyToBodyOrInstances(e,s=>{this._internalSetMotionType(s,t)},i)}getMotionType(e,t){const i=this._getPluginReference(e,t),s=this._hknp.HP_Body_GetMotionType(i.hpBodyId)[1];switch(s){case this._hknp.MotionType.STATIC:return 0;case this._hknp.MotionType.KINEMATIC:return 1;case this._hknp.MotionType.DYNAMIC:return 2}throw new Error("Unknown motion type: "+s)}setActivationControl(e,t){switch(t){case 1:this._hknp.HP_Body_SetActivationControl(e._pluginData.hpBodyId,this._hknp.ActivationControl.ALWAYS_ACTIVE);break;case 2:this._hknp.HP_Body_SetActivationControl(e._pluginData.hpBodyId,this._hknp.ActivationControl.ALWAYS_INACTIVE);break;case 0:this._hknp.HP_Body_SetActivationControl(e._pluginData.hpBodyId,this._hknp.ActivationControl.SIMULATION_CONTROLLED);break}}_internalComputeMassProperties(e){const t=this._hknp.HP_Body_GetShape(e.hpBodyId);if(t[0]==this._hknp.Result.RESULT_OK){const i=this._hknp.HP_Shape_BuildMassProperties(t[1]);if(i[0]==this._hknp.Result.RESULT_OK)return i[1]}return[[0,0,0],1,[1,1,1],[0,0,0,1]]}computeMassProperties(e,t){const i=this._getPluginReference(e,t),s=this._internalComputeMassProperties(i);return this._fromMassPropertiesTuple(s)}setMassProperties(e,t,i){this._applyToBodyOrInstances(e,s=>{s.userMassProps=t,this._internalUpdateMassProperties(s)},i)}getMassProperties(e,t){const i=this._getPluginReference(e,t),s=this._hknp.HP_Body_GetMassProperties(i.hpBodyId)[1];return this._fromMassPropertiesTuple(s)}setLinearDamping(e,t,i){this._applyToBodyOrInstances(e,s=>{this._hknp.HP_Body_SetLinearDamping(s.hpBodyId,t)},i)}getLinearDamping(e,t){const i=this._getPluginReference(e,t);return this._hknp.HP_Body_GetLinearDamping(i.hpBodyId)[1]}setAngularDamping(e,t,i){this._applyToBodyOrInstances(e,s=>{this._hknp.HP_Body_SetAngularDamping(s.hpBodyId,t)},i)}getAngularDamping(e,t){const i=this._getPluginReference(e,t);return this._hknp.HP_Body_GetAngularDamping(i.hpBodyId)[1]}setLinearVelocity(e,t,i){this._applyToBodyOrInstances(e,s=>{this._hknp.HP_Body_SetLinearVelocity(s.hpBodyId,this._bVecToV3(t))},i)}getLinearVelocityToRef(e,t,i){const s=this._getPluginReference(e,i),r=this._hknp.HP_Body_GetLinearVelocity(s.hpBodyId)[1];this._v3ToBvecRef(r,t)}_applyToBodyOrInstances(e,t,i){var s;if(((s=e._pluginDataInstances)==null?void 0:s.length)>0&&i===void 0)for(let r=0;r<e._pluginDataInstances.length;r++)t(e._pluginDataInstances[r]);else t(this._getPluginReference(e,i))}applyImpulse(e,t,i,s){this._applyToBodyOrInstances(e,r=>{this._hknp.HP_Body_ApplyImpulse(r.hpBodyId,this._bVecToV3(i),this._bVecToV3(t))},s)}applyAngularImpulse(e,t,i){this._applyToBodyOrInstances(e,s=>{this._hknp.HP_Body_ApplyAngularImpulse(s.hpBodyId,this._bVecToV3(t))},i)}applyForce(e,t,i,s){t.scaleToRef(this.getTimeStep(),this._tmpVec3[0]),this.applyImpulse(e,this._tmpVec3[0],i,s)}setAngularVelocity(e,t,i){this._applyToBodyOrInstances(e,s=>{this._hknp.HP_Body_SetAngularVelocity(s.hpBodyId,this._bVecToV3(t))},i)}getAngularVelocityToRef(e,t,i){const s=this._getPluginReference(e,i),r=this._hknp.HP_Body_GetAngularVelocity(s.hpBodyId)[1];this._v3ToBvecRef(r,t)}setPhysicsBodyTransformation(e,t){if(e.getPrestepType()==Mb.TELEPORT){const i=e.transformNode;if(e.numInstances>0){const r=i._thinInstanceDataStorage.matrixData;if(!r)return;const n=e.numInstances;this._createOrUpdateBodyInstances(e,e.getMotionType(),r,0,n,!0)}else this._hknp.HP_Body_SetQTransform(e._pluginData.hpBodyId,this._getTransformInfos(t))}else e.getPrestepType()==Mb.ACTION?this.setTargetTransform(e,t.absolutePosition,t.absoluteRotationQuaternion):e.getPrestepType()==Mb.DISABLED?de.Warn("Prestep type is set to DISABLED. Unable to set physics body transformation."):de.Warn("Invalid prestep type set to physics body.")}setTargetTransform(e,t,i,s){this._applyToBodyOrInstances(e,r=>{this._hknp.HP_Body_SetTargetQTransform(r.hpBodyId,[this._bVecToV3(t),this._bQuatToV4(i)])},s)}setGravityFactor(e,t,i){this._applyToBodyOrInstances(e,s=>{this._hknp.HP_Body_SetGravityFactor(s.hpBodyId,t)},i)}getGravityFactor(e,t){const i=this._getPluginReference(e,t);return this._hknp.HP_Body_GetGravityFactor(i.hpBodyId)[1]}disposeBody(e){if(e._pluginDataInstances&&e._pluginDataInstances.length>0)for(const t of e._pluginDataInstances)this._hknp.HP_Body_Release(t.hpBodyId),t.hpBodyId=void 0;e._pluginData&&(this._hknp.HP_Body_Release(e._pluginData.hpBodyId),e._pluginData.hpBodyId=void 0)}_createOptionsFromGroundMesh(e){const t=e.groundMesh;if(!t)return;let i=t.getVerticesData(q.PositionKind);const s=t.computeWorldMatrix(!0),r=[];let n;for(n=0;n<i.length;n+=3)P.FromArrayToRef(i,n,ae.Vector3[0]),P.TransformCoordinatesToRef(ae.Vector3[0],s,ae.Vector3[1]),ae.Vector3[1].toArray(r,n);i=r;const o=~~(Math.sqrt(i.length/3)-1),l=t.getBoundingInfo(),c=Math.min(l.boundingBox.extendSizeWorld.x,l.boundingBox.extendSizeWorld.z),u=l.boundingBox.minimumWorld.x,f=l.boundingBox.minimumWorld.y,p=l.boundingBox.minimumWorld.z,m=new Float32Array((o+1)*(o+1)),_=c*2/o;for(let d=0;d<m.length;d++)m[d]=f;for(let d=0;d<i.length;d=d+3){const h=Math.round((i[d+0]-u)/_),x=o-Math.round((i[d+2]-p)/_),A=i[d+1]-f;m[x*(o+1)+h]=A}e.numHeightFieldSamplesX=o+1,e.numHeightFieldSamplesZ=o+1,e.heightFieldSizeX=l.boundingBox.extendSizeWorld.x*2,e.heightFieldSizeZ=l.boundingBox.extendSizeWorld.z*2,e.heightFieldData=m}initShape(e,t,i){switch(t){case 0:{const s=i.radius||1,r=i.center?this._bVecToV3(i.center):[0,0,0];e._pluginData=this._hknp.HP_Shape_CreateSphere(r,s)[1]}break;case 3:{const s=i.rotation?this._bQuatToV4(i.rotation):[0,0,0,1],r=i.extents?this._bVecToV3(i.extents):[1,1,1],n=i.center?this._bVecToV3(i.center):[0,0,0];e._pluginData=this._hknp.HP_Shape_CreateBox(n,s,r)[1]}break;case 1:{const s=i.pointA?this._bVecToV3(i.pointA):[0,0,0],r=i.pointB?this._bVecToV3(i.pointB):[0,1,0],n=i.radius||0;e._pluginData=this._hknp.HP_Shape_CreateCapsule(s,r,n)[1]}break;case 5:e._pluginData=this._hknp.HP_Shape_CreateContainer()[1];break;case 2:{const s=i.pointA?this._bVecToV3(i.pointA):[0,0,0],r=i.pointB?this._bVecToV3(i.pointB):[0,1,0],n=i.radius||0;e._pluginData=this._hknp.HP_Shape_CreateCylinder(s,r,n)[1]}break;case 4:case 6:{const s=i.mesh;if(s){const r=!!i.includeChildMeshes,n=t!=4,o=new AYe(s,n,s==null?void 0:s.getScene());o.addNodeMeshes(s,r);const l=o.getVertices(this._hknp),c=l.numObjects/3;if(t==4)e._pluginData=this._hknp.HP_Shape_CreateConvexHull(l.offset,c)[1];else{const u=o.getTriangles(this._hknp),f=u.numObjects/3;e._pluginData=this._hknp.HP_Shape_CreateMesh(l.offset,c,u.offset,f)[1],o.freeBuffer(this._hknp,u)}o.freeBuffer(this._hknp,l)}else throw new Error("No mesh provided to create physics shape.")}break;case 7:if(i.groundMesh&&this._createOptionsFromGroundMesh(i),i.numHeightFieldSamplesX&&i.numHeightFieldSamplesZ&&i.heightFieldSizeX&&i.heightFieldSizeZ&&i.heightFieldData){const s=i.numHeightFieldSamplesX*i.numHeightFieldSamplesZ,r=s*4,n=this._hknp._malloc(r),o=new Float32Array(this._hknp.HEAPU8.buffer,n,s);for(let u=0;u<i.numHeightFieldSamplesX;u++)for(let f=0;f<i.numHeightFieldSamplesZ;f++){const p=f*i.numHeightFieldSamplesX+u,m=(i.numHeightFieldSamplesX-1-u)*i.numHeightFieldSamplesZ+f;o[p]=i.heightFieldData[m]}const l=i.heightFieldSizeX/(i.numHeightFieldSamplesX-1),c=i.heightFieldSizeZ/(i.numHeightFieldSamplesZ-1);e._pluginData=this._hknp.HP_Shape_CreateHeightField(i.numHeightFieldSamplesX,i.numHeightFieldSamplesZ,[l,1,c],n)[1],this._hknp._free(n)}else throw new Error("Missing required heightfield parameters");break;default:throw new Error("Unsupported Shape Type.")}this._shapes.set(e._pluginData[0],e)}setShapeFilterMembershipMask(e,t){const i=this._hknp.HP_Shape_GetFilterInfo(e._pluginData)[1][1];this._hknp.HP_Shape_SetFilterInfo(e._pluginData,[t,i])}getShapeFilterMembershipMask(e){return this._hknp.HP_Shape_GetFilterInfo(e._pluginData)[1][0]}setShapeFilterCollideMask(e,t){const i=this._hknp.HP_Shape_GetFilterInfo(e._pluginData)[1][0];this._hknp.HP_Shape_SetFilterInfo(e._pluginData,[i,t])}getShapeFilterCollideMask(e){return this._hknp.HP_Shape_GetFilterInfo(e._pluginData)[1][1]}setMaterial(e,t){const i=t.friction??.5,s=t.staticFriction??i,r=t.restitution??0,n=t.frictionCombine??1,o=t.restitutionCombine??2,l=[s,i,r,this._materialCombineToNative(n),this._materialCombineToNative(o)];this._hknp.HP_Shape_SetMaterial(e._pluginData,l)}getMaterial(e){const t=this._hknp.HP_Shape_GetMaterial(e._pluginData)[1];return{staticFriction:t[0],friction:t[1],restitution:t[2],frictionCombine:this._nativeToMaterialCombine(t[3]),restitutionCombine:this._nativeToMaterialCombine(t[4])}}setDensity(e,t){this._hknp.HP_Shape_SetDensity(e._pluginData,t)}getDensity(e){return this._hknp.HP_Shape_GetDensity(e._pluginData)[1]}_getTransformInfos(e){if(e.parent)return e.computeWorldMatrix(!0),[this._bVecToV3(e.absolutePosition),this._bQuatToV4(e.absoluteRotationQuaternion)];let t=ae.Quaternion[0];if(e.rotationQuaternion)t=e.rotationQuaternion;else{const s=e.rotation;Re.FromEulerAnglesToRef(s.x,s.y,s.z,t)}return[this._bVecToV3(e.position),this._bQuatToV4(t)]}addChild(e,t,i,s,r){const n=[i?this._bVecToV3(i):[0,0,0],s?this._bQuatToV4(s):[0,0,0,1],r?this._bVecToV3(r):[1,1,1]];this._hknp.HP_Shape_AddChild(e._pluginData,t._pluginData,n)}removeChild(e,t){this._hknp.HP_Shape_RemoveChild(e._pluginData,t)}getNumChildren(e){return this._hknp.HP_Shape_GetNumChildren(e._pluginData)[1]}setTrigger(e,t){this._hknp.HP_Shape_SetTrigger(e._pluginData,t)}getBoundingBox(e){const t=this._hknp.HP_Shape_GetBoundingBox(e._pluginData,[[0,0,0],[0,0,0,1]])[1];return ae.Vector3[0].set(t[0][0],t[0][1],t[0][2]),ae.Vector3[1].set(t[1][0],t[1][1],t[1][2]),new ef(ae.Vector3[0],ae.Vector3[1],me.IdentityReadOnly)}getBodyBoundingBox(e){const t=this.getBoundingBox(e.shape);return new ef(t.minimum,t.maximum,e.transformNode.getWorldMatrix())}getBodyGeometry(e){var u;const t=((u=e._pluginDataInstances)==null?void 0:u.length)>0?e._pluginDataInstances[0]:e._pluginData,i=this._hknp.HP_Body_GetShape(t.hpBodyId)[1],s=this._hknp.HP_Shape_CreateDebugDisplayGeometry(i);if(s[0]!=this._hknp.Result.RESULT_OK)return{positions:[],indices:[]};const r=this._hknp.HP_DebugGeometry_GetInfo(s[1])[1],n=new Float32Array(this._hknp.HEAPU8.buffer,r[0],r[1]*3),o=new Uint32Array(this._hknp.HEAPU8.buffer,r[2],r[3]*3),l=n.slice(0),c=o.slice(0);return this._hknp.HP_DebugGeometry_Release(s[1]),{positions:l,indices:c}}disposeShape(e){this._shapes.delete(e._pluginData[0]),this._hknp.HP_Shape_Release(e._pluginData),e._pluginData=void 0}initConstraint(e,t,i,s,r){const n=e.type,o=e.options;if(!n||!o){de.Warn("No constraint type or options. Constraint is invalid.");return}if(t._pluginDataInstances.length>0&&s===void 0||i._pluginDataInstances.length>0&&r===void 0){de.Warn("Body is instanced but no instance index was specified. Constraint will not be applied.");return}e._pluginData=e._pluginData??[];const l=this._hknp.HP_Constraint_Create()[1];e._pluginData.push(l);const c=this._getPluginReference(t,s).hpBodyId,u=this._getPluginReference(i,r).hpBodyId;this._hknp.HP_Constraint_SetParentBody(l,c),this._hknp.HP_Constraint_SetChildBody(l,u),this._constraintToBodyIdPair.set(l[0],[c[0],u[0]]);const f=o.pivotA?this._bVecToV3(o.pivotA):this._bVecToV3(P.Zero()),p=o.axisA??new P(1,0,0),m=this._tmpVec3[0];o.perpAxisA?m.copyFrom(o.perpAxisA):p.getNormalToRef(m),this._hknp.HP_Constraint_SetAnchorInParent(l,f,this._bVecToV3(p),this._bVecToV3(m));const _=o.pivotB?this._bVecToV3(o.pivotB):this._bVecToV3(P.Zero()),d=o.axisB??new P(1,0,0),h=this._tmpVec3[0];if(o.perpAxisB?h.copyFrom(o.perpAxisB):d.getNormalToRef(h),this._hknp.HP_Constraint_SetAnchorInChild(l,_,this._bVecToV3(d),this._bVecToV3(h)),e._initOptions||(e._initOptions={axisA:p.clone(),axisB:d.clone(),perpAxisA:m.clone(),perpAxisB:h.clone(),pivotA:new P(f[0],f[1],f[2]),pivotB:new P(_[0],_[1],_[2])}),n==5)this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_X,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_Y,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_Z,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.ANGULAR_X,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.ANGULAR_Y,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.ANGULAR_Z,this._hknp.ConstraintAxisLimitMode.LOCKED);else if(n==2){const A=o.maxDistance||0,S=this._hknp.ConstraintAxis.LINEAR_DISTANCE;this._hknp.HP_Constraint_SetAxisMode(l,S,this._hknp.ConstraintAxisLimitMode.LIMITED),this._hknp.HP_Constraint_SetAxisMinLimit(l,S,A),this._hknp.HP_Constraint_SetAxisMaxLimit(l,S,A)}else if(n==3)this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_X,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_Y,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_Z,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.ANGULAR_Y,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.ANGULAR_Z,this._hknp.ConstraintAxisLimitMode.LOCKED);else if(n==6)this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_Y,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_Z,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.ANGULAR_X,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.ANGULAR_Y,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.ANGULAR_Z,this._hknp.ConstraintAxisLimitMode.LOCKED);else if(n==4)this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_Y,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_Z,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.ANGULAR_Y,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.ANGULAR_Z,this._hknp.ConstraintAxisLimitMode.LOCKED);else if(n==1)this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_X,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_Y,this._hknp.ConstraintAxisLimitMode.LOCKED),this._hknp.HP_Constraint_SetAxisMode(l,this._hknp.ConstraintAxis.LINEAR_Z,this._hknp.ConstraintAxisLimitMode.LOCKED);else if(n==7){const A=e;for(const S of A.limits){const E=this._constraintAxisToNative(S.axis);(S.minLimit??-1)==0&&(S.maxLimit??-1)==0?this._hknp.HP_Constraint_SetAxisMode(l,E,this._hknp.ConstraintAxisLimitMode.LOCKED):(S.minLimit!=null&&(this._hknp.HP_Constraint_SetAxisMode(l,E,this._hknp.ConstraintAxisLimitMode.LIMITED),this._hknp.HP_Constraint_SetAxisMinLimit(l,E,S.minLimit)),S.maxLimit!=null&&(this._hknp.HP_Constraint_SetAxisMode(l,E,this._hknp.ConstraintAxisLimitMode.LIMITED),this._hknp.HP_Constraint_SetAxisMaxLimit(l,E,S.maxLimit))),S.stiffness&&this._hknp.HP_Constraint_SetAxisStiffness(l,E,S.stiffness),S.damping&&this._hknp.HP_Constraint_SetAxisDamping(l,E,S.damping)}}else throw new Error("Unsupported Constraint Type.");const x=!!o.collision;this._hknp.HP_Constraint_SetCollisionsEnabled(l,x),this._hknp.HP_Constraint_SetEnabled(l,!0)}getBodiesUsingConstraint(e){const t=[];for(const i of e._pluginData){const s=this._constraintToBodyIdPair.get(i[0]);if(s){const r=this._bodies.get(s[0]),n=this._bodies.get(s[1]);r&&n&&t.push({parentBody:r.body,parentBodyIndex:r.index,childBody:n.body,childBodyIndex:n.index})}}return t}addConstraint(e,t,i,s,r){this.initConstraint(i,e,t,s,r)}setEnabled(e,t){for(const i of e._pluginData)this._hknp.HP_Constraint_SetEnabled(i,t)}getEnabled(e){const t=e._pluginData&&e._pluginData[0];return t?this._hknp.HP_Constraint_GetEnabled(t)[1]:!1}setCollisionsEnabled(e,t){for(const i of e._pluginData)this._hknp.HP_Constraint_SetCollisionsEnabled(i,t)}getCollisionsEnabled(e){const t=e._pluginData&&e._pluginData[0];return t?this._hknp.HP_Constraint_GetCollisionsEnabled(t)[1]:!1}setAxisFriction(e,t,i){for(const s of e._pluginData)this._hknp.HP_Constraint_SetAxisFriction(s,this._constraintAxisToNative(t),i)}getAxisFriction(e,t){const i=e._pluginData&&e._pluginData[0];return i?this._hknp.HP_Constraint_GetAxisFriction(i,this._constraintAxisToNative(t))[1]:null}setAxisMode(e,t,i){for(const s of e._pluginData)this._hknp.HP_Constraint_SetAxisMode(s,this._constraintAxisToNative(t),this._limitModeToNative(i))}getAxisMode(e,t){const i=e._pluginData&&e._pluginData[0];if(i){const s=this._hknp.HP_Constraint_GetAxisMode(i,this._constraintAxisToNative(t))[1];return this._nativeToLimitMode(s)}return null}setAxisMinLimit(e,t,i){for(const s of e._pluginData)this._hknp.HP_Constraint_SetAxisMinLimit(s,this._constraintAxisToNative(t),i)}getAxisMinLimit(e,t){const i=e._pluginData&&e._pluginData[0];return i?this._hknp.HP_Constraint_GetAxisMinLimit(i,this._constraintAxisToNative(t))[1]:null}setAxisMaxLimit(e,t,i){for(const s of e._pluginData)this._hknp.HP_Constraint_SetAxisMaxLimit(s,this._constraintAxisToNative(t),i)}getAxisMaxLimit(e,t){const i=e._pluginData&&e._pluginData[0];return i?this._hknp.HP_Constraint_GetAxisMaxLimit(i,this._constraintAxisToNative(t))[1]:null}setAxisMotorType(e,t,i){for(const s of e._pluginData)this._hknp.HP_Constraint_SetAxisMotorType(s,this._constraintAxisToNative(t),this._constraintMotorTypeToNative(i))}getAxisMotorType(e,t){const i=e._pluginData&&e._pluginData[0];return i?this._nativeToMotorType(this._hknp.HP_Constraint_GetAxisMotorType(i,this._constraintAxisToNative(t))[1]):null}setAxisMotorTarget(e,t,i){for(const s of e._pluginData)this._hknp.HP_Constraint_SetAxisMotorTarget(s,this._constraintAxisToNative(t),i)}getAxisMotorTarget(e,t){return e._pluginData&&e._pluginData[0]?this._hknp.HP_Constraint_GetAxisMotorTarget(e._pluginData,this._constraintAxisToNative(t))[1]:null}setAxisMotorMaxForce(e,t,i){for(const s of e._pluginData)this._hknp.HP_Constraint_SetAxisMotorMaxForce(s,this._constraintAxisToNative(t),i)}getAxisMotorMaxForce(e,t){const i=e._pluginData&&e._pluginData[0];return i?this._hknp.HP_Constraint_GetAxisMotorMaxForce(i,this._constraintAxisToNative(t))[1]:null}disposeConstraint(e){for(const t of e._pluginData)this._hknp.HP_Constraint_SetEnabled(t,!1),this._hknp.HP_Constraint_Release(t);e._pluginData.length=0}_populateHitData(e,t){const i=this._bodies.get(e[0][0]);t.body=i==null?void 0:i.body,t.bodyIndex=i==null?void 0:i.index;const s=this._shapes.get(e[1][0]);t.shape=s;const r=e[3],n=e[4],o=e[5];t.setHitData({x:n[0],y:n[1],z:n[2]},{x:r[0],y:r[1],z:r[2]},o)}raycast(e,t,i,s){const r=(s==null?void 0:s.membership)??-1,n=(s==null?void 0:s.collideWith)??-1,o=(s==null?void 0:s.shouldHitTriggers)??!1;i.reset(e,t);const l=[BigInt(0)],c=[this._bVecToV3(e),this._bVecToV3(t),[r,n],o,l];if(this._hknp.HP_World_CastRayWithCollector(this.world,this._queryCollector,c),this._hknp.HP_QueryCollector_GetNumHits(this._queryCollector)[1]>0){const[,u]=this._hknp.HP_QueryCollector_GetCastRayResult(this._queryCollector,0)[1];this._populateHitData(u,i),i.calculateHitDistance()}}pointProximity(e,t){var o,l;const i=((o=e==null?void 0:e.collisionFilter)==null?void 0:o.membership)??-1,s=((l=e==null?void 0:e.collisionFilter)==null?void 0:l.collideWith)??-1;t.reset();const r=e.ignoreBody?[BigInt(e.ignoreBody._pluginData.hpBodyId[0])]:[BigInt(0)],n=[this._bVecToV3(e.position),e.maxDistance,[i,s],e.shouldHitTriggers,r];if(this._hknp.HP_World_PointProximityWithCollector(this.world,this._queryCollector,n),this._hknp.HP_QueryCollector_GetNumHits(this._queryCollector)[1]>0){const[c,u]=this._hknp.HP_QueryCollector_GetPointProximityResult(this._queryCollector,0)[1];this._populateHitData(u,t),t.setHitDistance(c)}}shapeProximity(e,t,i){t.reset(),i.reset();const s=e.shape._pluginData,r=e.ignoreBody?[BigInt(e.ignoreBody._pluginData.hpBodyId[0])]:[BigInt(0)],n=[s,this._bVecToV3(e.position),this._bQuatToV4(e.rotation),e.maxDistance,e.shouldHitTriggers,r];if(this._hknp.HP_World_ShapeProximityWithCollector(this.world,this._queryCollector,n),this._hknp.HP_QueryCollector_GetNumHits(this._queryCollector)[1]>0){const[o,l,c]=this._hknp.HP_QueryCollector_GetShapeProximityResult(this._queryCollector,0)[1];this._populateHitData(l,t),this._populateHitData(c,i),t.setHitDistance(o),i.setHitDistance(o)}}shapeCast(e,t,i){t.reset(),i.reset();const s=e.shape._pluginData,r=e.ignoreBody?[BigInt(e.ignoreBody._pluginData.hpBodyId[0])]:[BigInt(0)],n=[s,this._bQuatToV4(e.rotation),this._bVecToV3(e.startPosition),this._bVecToV3(e.endPosition),e.shouldHitTriggers,r];if(this._hknp.HP_World_ShapeCastWithCollector(this.world,this._queryCollector,n),this._hknp.HP_QueryCollector_GetNumHits(this._queryCollector)[1]>0){const[o,l,c]=this._hknp.HP_QueryCollector_GetShapeCastResult(this._queryCollector,0)[1];this._populateHitData(l,t),this._populateHitData(c,i),t.setHitFraction(o),i.setHitFraction(o)}}getCollisionObservable(e){const t=e._pluginData.hpBodyId[0];let i=this._bodyCollisionObservable.get(t);return i||(i=new xe,this._bodyCollisionObservable.set(t,i)),i}getCollisionEndedObservable(e){const t=e._pluginData.hpBodyId[0];let i=this._bodyCollisionEndedObservable.get(t);return i||(i=new xe,this._bodyCollisionEndedObservable.set(t,i)),i}setCollisionCallbackEnabled(e,t){const i=this._hknp.EventType.COLLISION_STARTED.value|this._hknp.EventType.COLLISION_CONTINUED.value|this._hknp.EventType.COLLISION_FINISHED.value;e._pluginDataInstances&&e._pluginDataInstances.length?e._pluginDataInstances.forEach(s=>{this._hknp.HP_Body_SetEventMask(s.hpBodyId,t?i:0)}):e._pluginData&&this._hknp.HP_Body_SetEventMask(e._pluginData.hpBodyId,t?i:0)}setCollisionEndedCallbackEnabled(e,t){const i=this._getPluginReference(e);let s=this._hknp.HP_Body_GetEventMask(i.hpBodyId)[1];s=t?s|this._hknp.EventType.COLLISION_FINISHED.value:s&~this._hknp.EventType.COLLISION_FINISHED.value,e._pluginDataInstances&&e._pluginDataInstances.length?e._pluginDataInstances.forEach(r=>{this._hknp.HP_Body_SetEventMask(r.hpBodyId,s)}):e._pluginData&&this._hknp.HP_Body_SetEventMask(e._pluginData.hpBodyId,s)}_notifyTriggers(){let e=this._hknp.HP_World_GetTriggerEvents(this.world)[1];const t=new Vbe;for(;e;){Vbe.readToRef(this._hknp.HEAPU8.buffer,e,t);const i=this._bodies.get(t.bodyIdA),s=this._bodies.get(t.bodyIdB);if(i&&s){const r={collider:i.body,colliderIndex:i.index,collidedAgainst:s.body,collidedAgainstIndex:s.index,type:this._nativeTriggerCollisionValueToCollisionType(t.type)};this.onTriggerCollisionObservable.notifyObservers(r)}e=this._hknp.HP_World_GetNextTriggerEvent(this.world,e)}}_notifyCollisions(){let e=this._hknp.HP_World_GetCollisionEvents(this.world)[1];const t=new jbe,i=Number(this.world);for(;e;){jbe.readToRef(this._hknp.HEAPU8.buffer,e,t);const s=this._bodies.get(t.contactOnA.bodyId),r=this._bodies.get(t.contactOnB.bodyId);if(s&&r){const n={collider:s.body,colliderIndex:s.index,collidedAgainst:r.body,collidedAgainstIndex:r.index,type:this._nativeCollisionValueToCollisionType(t.type)};if(n.type==="COLLISION_FINISHED")this.onCollisionEndedObservable.notifyObservers(n);else{t.contactOnB.position.subtractToRef(t.contactOnA.position,this._tmpVec3[0]);const o=P.Dot(this._tmpVec3[0],t.contactOnA.normal);n.point=t.contactOnA.position,n.distance=o,n.impulse=t.impulseApplied,n.normal=t.contactOnA.normal,this.onCollisionObservable.notifyObservers(n)}if(this._bodyCollisionObservable.size&&n.type!=="COLLISION_FINISHED"){const o=this._bodyCollisionObservable.get(t.contactOnA.bodyId),l=this._bodyCollisionObservable.get(t.contactOnB.bodyId);t.contactOnA.position.subtractToRef(t.contactOnB.position,this._tmpVec3[0]);const c=P.Dot(this._tmpVec3[0],t.contactOnB.normal);if(o&&o.notifyObservers(n),l){const u={collider:r.body,colliderIndex:r.index,collidedAgainst:s.body,collidedAgainstIndex:s.index,point:t.contactOnB.position,distance:c,impulse:t.impulseApplied,normal:t.contactOnB.normal,type:this._nativeCollisionValueToCollisionType(t.type)};l.notifyObservers(u)}}else if(this._bodyCollisionEndedObservable.size){const o=this._bodyCollisionEndedObservable.get(t.contactOnA.bodyId),l=this._bodyCollisionEndedObservable.get(t.contactOnB.bodyId);t.contactOnA.position.subtractToRef(t.contactOnB.position,this._tmpVec3[0]);const c=P.Dot(this._tmpVec3[0],t.contactOnB.normal);if(o&&o.notifyObservers(n),l){const u={collider:r.body,colliderIndex:r.index,collidedAgainst:s.body,collidedAgainstIndex:s.index,point:t.contactOnB.position,distance:c,impulse:t.impulseApplied,normal:t.contactOnB.normal,type:this._nativeCollisionValueToCollisionType(t.type)};l.notifyObservers(u)}}}e=this._hknp.HP_World_GetNextCollisionEvent(i,e)}}get numBodies(){return this._hknp.HP_World_GetNumBodies(this.world)[1]}dispose(){this._queryCollector&&(this._hknp.HP_QueryCollector_Release(this._queryCollector),this._queryCollector=void 0),this.world&&(this._hknp.HP_World_Release(this.world),this.world=void 0)}_v3ToBvecRef(e,t){t.set(e[0],e[1],e[2])}_bVecToV3(e){return[e._x,e._y,e._z]}_bQuatToV4(e){return[e._x,e._y,e._z,e._w]}_constraintMotorTypeToNative(e){switch(e){case 2:return this._hknp.ConstraintMotorType.POSITION;case 1:return this._hknp.ConstraintMotorType.VELOCITY}return this._hknp.ConstraintMotorType.NONE}_nativeToMotorType(e){switch(e){case this._hknp.ConstraintMotorType.POSITION:return 2;case this._hknp.ConstraintMotorType.VELOCITY:return 1}return 0}_materialCombineToNative(e){switch(e){case 0:return this._hknp.MaterialCombine.GEOMETRIC_MEAN;case 1:return this._hknp.MaterialCombine.MINIMUM;case 2:return this._hknp.MaterialCombine.MAXIMUM;case 3:return this._hknp.MaterialCombine.ARITHMETIC_MEAN;case 4:return this._hknp.MaterialCombine.MULTIPLY}}_nativeToMaterialCombine(e){switch(e){case this._hknp.MaterialCombine.GEOMETRIC_MEAN:return 0;case this._hknp.MaterialCombine.MINIMUM:return 1;case this._hknp.MaterialCombine.MAXIMUM:return 2;case this._hknp.MaterialCombine.ARITHMETIC_MEAN:return 3;case this._hknp.MaterialCombine.MULTIPLY:return 4;default:return}}_constraintAxisToNative(e){switch(e){case 0:return this._hknp.ConstraintAxis.LINEAR_X;case 1:return this._hknp.ConstraintAxis.LINEAR_Y;case 2:return this._hknp.ConstraintAxis.LINEAR_Z;case 3:return this._hknp.ConstraintAxis.ANGULAR_X;case 4:return this._hknp.ConstraintAxis.ANGULAR_Y;case 5:return this._hknp.ConstraintAxis.ANGULAR_Z;case 6:return this._hknp.ConstraintAxis.LINEAR_DISTANCE}}_nativeToLimitMode(e){switch(e){case this._hknp.ConstraintAxisLimitMode.FREE:return 0;case this._hknp.ConstraintAxisLimitMode.LIMITED:return 1;case this._hknp.ConstraintAxisLimitMode.LOCKED:return 2}return 0}_limitModeToNative(e){switch(e){case 0:return this._hknp.ConstraintAxisLimitMode.FREE;case 1:return this._hknp.ConstraintAxisLimitMode.LIMITED;case 2:return this._hknp.ConstraintAxisLimitMode.LOCKED}}_nativeCollisionValueToCollisionType(e){switch(e){case this._hknp.EventType.COLLISION_STARTED.value:return"COLLISION_STARTED";case this._hknp.EventType.COLLISION_FINISHED.value:return"COLLISION_FINISHED";case this._hknp.EventType.COLLISION_CONTINUED.value:return"COLLISION_CONTINUED"}return"COLLISION_STARTED"}_nativeTriggerCollisionValueToCollisionType(e){switch(e){case 8:return"TRIGGER_ENTERED";case 16:return"TRIGGER_EXITED"}return"TRIGGER_ENTERED"}}ui.prototype.getPhysicsEngine=function(){return this._physicsEngine},ui.prototype.enablePhysics=function(a=null,e){if(this._physicsEngine)return!0;let t=this._getComponent(jt.NAME_PHYSICSENGINE);t||(t=new xYe(this),this._addComponent(t));try{if(!e||(e==null?void 0:e.getPluginVersion())===1)this._physicsEngine=new zie(a,e);else if((e==null?void 0:e.getPluginVersion())===2)this._physicsEngine=new yY(a,e);else throw new Error("Unsupported Physics plugin version.");return this._physicsTimeAccumulator=0,!0}catch(i){return de.Error(i.message),!1}},ui.prototype.disablePhysicsEngine=function(){this._physicsEngine&&(this._physicsEngine.dispose(),this._physicsEngine=null)},ui.prototype.isPhysicsEnabled=function(){return this._physicsEngine!==void 0},ui.prototype.deleteCompoundImpostor=function(a){const e=a.parts[0].mesh;e.physicsImpostor&&(e.physicsImpostor.dispose(),e.physicsImpostor=null)},ui.prototype._advancePhysicsEngineStep=function(a){if(this._physicsEngine){const e=this._physicsEngine.getSubTimeStep();if(e>0)for(this._physicsTimeAccumulator+=a;this._physicsTimeAccumulator>e;)this.onBeforePhysicsObservable.notifyObservers(this),this._physicsEngine._step(e/1e3),this.onAfterPhysicsObservable.notifyObservers(this),this._physicsTimeAccumulator-=e;else this.onBeforePhysicsObservable.notifyObservers(this),this._physicsEngine._step(a/1e3),this.onAfterPhysicsObservable.notifyObservers(this)}};class xYe{constructor(e){this.name=jt.NAME_PHYSICSENGINE,this.scene=e,this.scene.onBeforePhysicsObservable=new xe,this.scene.onAfterPhysicsObservable=new xe,this.scene.getDeterministicFrameTime=()=>this.scene._physicsEngine?this.scene._physicsEngine.getTimeStep()*1e3:1e3/60}register(){}rebuild(){}dispose(){this.scene.onBeforePhysicsObservable.clear(),this.scene.onAfterPhysicsObservable.clear(),this.scene._physicsEngine&&this.scene.disablePhysicsEngine()}}Object.defineProperty(Si.prototype,"physicsBody",{get:function(){return this._physicsBody},set:function(a){this._physicsBody!==a&&(this._disposePhysicsObserver&&this.onDisposeObservable.remove(this._disposePhysicsObserver),this._physicsBody=a,a&&(this._disposePhysicsObserver=this.onDisposeObservable.add(()=>{this.physicsBody&&(this.physicsBody.dispose(),this.physicsBody=null)})))},enumerable:!0,configurable:!0}),Si.prototype.getPhysicsBody=function(){return this.physicsBody},Si.prototype.applyImpulse=function(a,e){if(!this.physicsBody)throw new Error("No Physics Body for TransformNode");return this.physicsBody.applyImpulse(a,e),this},Si.prototype.applyAngularImpulse=function(a){if(!this.physicsBody)throw new Error("No Physics Body for TransformNode");return this.physicsBody.applyAngularImpulse(a),this};class XL{static GetContactPointToRef(e,t,i,s,r){const n=e.getScene().getPhysicsEngine(),o=n==null?void 0:n.getPluginVersion();if(o===1){const c=new Is(t,i).intersectsMesh(e);if(c.hit&&c.pickedPoint)return s.copyFrom(c.pickedPoint),!0}else if(o===2)return e.physicsBody.getObjectCenterWorldToRef(s,r),!0;return!1}static HasAppliedForces(e,t){var i,s;return e.getMotionType(t)===0||(((i=e.getMassProperties(t))==null?void 0:i.mass)??0)===0||((s=e.transformNode)==null?void 0:s.getTotalVertices())===0}static IsInsideCylinder(e,t,i,s){const r=ae.Vector3[0];return e.subtractToRef(t,r),Math.abs(r.x)<=i&&Math.abs(r.z)<=i&&r.y>=0&&r.y<=s}}class bYe{constructor(e){if(this._hitData={force:new P,contactPoint:new P,distanceFromOrigin:0},this._scene=e,this._physicsEngine=this._scene.getPhysicsEngine(),!this._physicsEngine){de.Warn("Physics engine not enabled. Please enable the physics before you can use the methods.");return}}applyRadialExplosionImpulse(e,t,i,s){if(!this._physicsEngine)return de.Warn("Physics engine not enabled. Please enable the physics before you call this method."),null;if(this._physicsEngine.getPluginVersion()===1&&this._physicsEngine.getImpostors().length===0||this._physicsEngine.getPluginVersion()===2&&this._physicsEngine.getBodies().length===0)return null;let r=!1;if(typeof t=="number"){const l=t;t=new zO,t.radius=l,t.strength=i??t.strength,t.falloff=s??t.falloff}else r=!!(t.affectedImpostorsCallback||t.affectedBodiesCallback);const n=new Gbe(this._scene,t),o=this._hitData;if(this._physicsEngine.getPluginVersion()===1){const l=Array();this._physicsEngine.getImpostors().forEach(u=>{n.getImpostorHitData(u,e,o)&&(u.applyImpulse(o.force,o.contactPoint),r&&l.push({impostor:u,hitData:this._copyPhysicsHitData(o)}))}),n.triggerAffectedImpostorsCallback(l)}else this._applicationForBodies(n,e,o,r,(l,c)=>{l.applyImpulse(c.force,c.contactPoint,c.instanceIndex)});return n.dispose(!1),n}applyRadialExplosionForce(e,t,i,s){if(!this._physicsEngine)return de.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."),null;if(this._physicsEngine.getPluginVersion()===1&&this._physicsEngine.getImpostors().length===0||this._physicsEngine.getPluginVersion()===2&&this._physicsEngine.getBodies().length===0)return null;let r=!1;if(typeof t=="number"){const l=t;t=new zO,t.radius=l,t.strength=i??t.strength,t.falloff=s??t.falloff}else r=!!(t.affectedImpostorsCallback||t.affectedBodiesCallback);const n=new Gbe(this._scene,t),o=this._hitData;if(this._physicsEngine.getPluginVersion()===1){const l=Array();this._physicsEngine.getImpostors().forEach(u=>{n.getImpostorHitData(u,e,o)&&(u.applyForce(o.force,o.contactPoint),r&&l.push({impostor:u,hitData:this._copyPhysicsHitData(o)}))}),n.triggerAffectedImpostorsCallback(l)}else this._applicationForBodies(n,e,o,r,(l,c)=>{l.applyForce(c.force,c.contactPoint,c.instanceIndex)});return n.dispose(!1),n}_applicationForBodies(e,t,i,s,r){const n=Array(),o=this._physicsEngine.getBodies();for(const l of o)l.iterateOverAllInstances((c,u)=>{e.getBodyHitData(c,t,i,u)&&(r(c,i),s&&n.push({body:c,hitData:this._copyPhysicsHitData(i)}))});e.triggerAffectedBodiesCallback(n)}gravitationalField(e,t,i,s){if(!this._physicsEngine)return de.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."),null;if(this._physicsEngine.getPluginVersion()===1&&this._physicsEngine.getImpostors().length===0||this._physicsEngine.getPluginVersion()===2&&this._physicsEngine.getBodies().length===0)return null;if(typeof t=="number"){const n=t;t=new zO,t.radius=n,t.strength=i??t.strength,t.falloff=s??t.falloff}const r=new SYe(this,this._scene,e,t);return r.dispose(!1),r}updraft(e,t,i,s,r){if(!this._physicsEngine)return de.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."),null;if(this._physicsEngine.getPluginVersion()===1&&this._physicsEngine.getImpostors().length===0||this._physicsEngine.getPluginVersion()===2&&this._physicsEngine.getBodies().length===0)return null;if(typeof t=="number"){const o=t;t=new yae,t.radius=o,t.strength=i??t.strength,t.height=s??t.height,t.updraftMode=r??t.updraftMode}const n=new LY(this._scene,e,t);return n.dispose(!1),n}vortex(e,t,i,s){if(!this._physicsEngine)return de.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."),null;if(this._physicsEngine.getPluginVersion()===1&&this._physicsEngine.getImpostors().length===0||this._physicsEngine.getPluginVersion()===2&&this._physicsEngine.getBodies().length===0)return null;if(typeof t=="number"){const n=t;t=new Mae,t.radius=n,t.strength=i??t.strength,t.height=s??t.height}const r=new BO(this._scene,e,t);return r.dispose(!1),r}_copyPhysicsHitData(e){return{force:e.force.clone(),contactPoint:e.contactPoint.clone(),distanceFromOrigin:e.distanceFromOrigin,instanceIndex:e.instanceIndex}}}class Gbe{constructor(e,t){this._scene=e,this._options=t,this._dataFetched=!1,this._options={...new zO,...this._options}}getData(){return this._dataFetched=!0,{sphere:this._sphere}}_getHitData(e,t,i,s){const r=ae.Vector3[0];r.copyFrom(t).subtractInPlace(i);const n=ae.Vector3[1];if(!XL.GetContactPointToRef(e,i,r,n,s.instanceIndex))return!1;const l=P.Distance(i,n);if(l>this._options.radius)return!1;const c=this._options.falloff===0?this._options.strength:this._options.strength*(1-l/this._options.radius);return r.scaleInPlace(c),s.force.copyFrom(r),s.contactPoint.copyFrom(n),s.distanceFromOrigin=l,!0}getBodyHitData(e,t,i,s){if(XL.HasAppliedForces(e,s))return!1;const r=e.transformNode,n=e.getObjectCenterWorld(s);return i.instanceIndex=s,this._getHitData(r,n,t,i)}getImpostorHitData(e,t,i){if(e.mass===0||e.object.getClassName()!=="Mesh"&&e.object.getClassName()!=="InstancedMesh")return!1;const s=e.object;if(!this._intersectsWithSphere(s,t,this._options.radius))return!1;const r=e.getObjectCenter();return this._getHitData(s,r,t,i),!0}triggerAffectedImpostorsCallback(e){this._options.affectedImpostorsCallback&&this._options.affectedImpostorsCallback(e)}triggerAffectedBodiesCallback(e){this._options.affectedBodiesCallback&&this._options.affectedBodiesCallback(e)}dispose(e=!0){this._sphere&&(e?this._sphere.dispose():setTimeout(()=>{this._dataFetched||this._sphere.dispose()},0))}_prepareSphere(){this._sphere||(this._sphere=hd("radialExplosionEventSphere",this._options.sphere,this._scene),this._sphere.isVisible=!1)}_intersectsWithSphere(e,t,i){return this._prepareSphere(),this._sphere.position=t,this._sphere.scaling.setAll(i*2),this._sphere._updateBoundingInfo(),this._sphere.computeWorldMatrix(!0),this._sphere.intersectsMesh(e,!0)}}class SYe{constructor(e,t,i,s){this._physicsHelper=e,this._scene=t,this._origin=i,this._options=s,this._dataFetched=!1,this._options={...new zO,...this._options},this._tickCallback=()=>this._tick(),this._options.strength=this._options.strength*-1}getData(){return this._dataFetched=!0,{sphere:this._sphere}}enable(){this._tickCallback.call(this),this._scene.registerBeforeRender(this._tickCallback)}disable(){this._scene.unregisterBeforeRender(this._tickCallback)}dispose(e=!0){this._sphere&&(e?this._sphere.dispose():setTimeout(()=>{this._dataFetched||this._sphere.dispose()},0))}_tick(){var e;if(this._sphere)this._physicsHelper.applyRadialExplosionForce(this._origin,this._options);else{const t=this._physicsHelper.applyRadialExplosionForce(this._origin,this._options);t&&(this._sphere=(e=t.getData().sphere)==null?void 0:e.clone("radialExplosionEventSphereClone"))}}}class LY{constructor(e,t,i){this._scene=e,this._origin=t,this._options=i,this._originTop=P.Zero(),this._originDirection=P.Zero(),this._cylinderPosition=P.Zero(),this._dataFetched=!1,this._physicsEngine=this._scene.getPhysicsEngine(),this._options={...new yae,...this._options},this._origin.addToRef(new P(0,this._options.height/2,0),this._cylinderPosition),this._origin.addToRef(new P(0,this._options.height,0),this._originTop),this._options.updraftMode===1&&(this._originDirection=this._origin.subtract(this._originTop).normalize()),this._tickCallback=()=>this._tick(),this._physicsEngine.getPluginVersion()===1&&this._prepareCylinder()}getData(){return this._dataFetched=!0,{cylinder:this._cylinder}}enable(){this._tickCallback.call(this),this._scene.registerBeforeRender(this._tickCallback)}disable(){this._scene.unregisterBeforeRender(this._tickCallback)}dispose(e=!0){this._cylinder&&(e?(this._cylinder.dispose(),this._cylinder=void 0):setTimeout(()=>{!this._dataFetched&&this._cylinder&&(this._cylinder.dispose(),this._cylinder=void 0)},0))}_getHitData(e,t){let i;this._options.updraftMode===1?i=this._originDirection:i=e.subtract(this._originTop);const s=P.Distance(this._origin,e),r=this._options.strength*-1,n=i.multiplyByFloats(r,r,r);t.force.copyFrom(n),t.contactPoint.copyFrom(e),t.distanceFromOrigin=s}_getBodyHitData(e,t,i){if(XL.HasAppliedForces(e))return!1;const s=e.getObjectCenterWorld(i);return XL.IsInsideCylinder(s,this._origin,this._options.radius,this._options.height)?(t.instanceIndex=i,this._getHitData(s,t),!0):!1}_getImpostorHitData(e,t){if(e.mass===0)return!1;const i=e.object;if(!this._intersectsWithCylinder(i))return!1;const s=e.getObjectCenter();return this._getHitData(s,t),!0}_tick(){const e=LY._HitData;this._physicsEngine.getPluginVersion()===1?this._physicsEngine.getImpostors().forEach(t=>{this._getImpostorHitData(t,e)&&t.applyForce(e.force,e.contactPoint)}):this._physicsEngine.getBodies().forEach(t=>{t.iterateOverAllInstances((i,s)=>{this._getBodyHitData(i,e,s)&&i.applyForce(e.force,e.contactPoint,e.instanceIndex)})})}_prepareCylinder(){this._cylinder||(this._cylinder=e1("updraftEventCylinder",{height:this._options.height,diameter:this._options.radius*2},this._scene),this._cylinder.isVisible=!1)}_intersectsWithCylinder(e){return this._cylinder?(this._cylinder.position=this._cylinderPosition,this._cylinder.intersectsMesh(e,!0)):!1}}LY._HitData={force:new P,contactPoint:new P,distanceFromOrigin:0};class BO{constructor(e,t,i){this._scene=e,this._origin=t,this._options=i,this._originTop=P.Zero(),this._cylinderPosition=P.Zero(),this._dataFetched=!1,this._physicsEngine=this._scene.getPhysicsEngine(),this._options={...new Mae,...this._options},this._origin.addToRef(new P(0,this._options.height/2,0),this._cylinderPosition),this._origin.addToRef(new P(0,this._options.height,0),this._originTop),this._tickCallback=()=>this._tick(),this._physicsEngine.getPluginVersion()===1&&this._prepareCylinder()}getData(){return this._dataFetched=!0,{cylinder:this._cylinder}}enable(){this._tickCallback.call(this),this._scene.registerBeforeRender(this._tickCallback)}disable(){this._scene.unregisterBeforeRender(this._tickCallback)}dispose(e=!0){this._cylinder&&(e?this._cylinder.dispose():setTimeout(()=>{this._dataFetched||this._cylinder.dispose()},0))}_getHitData(e,t,i){const s=BO._OriginOnPlane;s.set(this._origin.x,t.y,this._origin.z);const r=ae.Vector3[0];t.subtractToRef(s,r);const n=ae.Vector3[1];if(!XL.GetContactPointToRef(e,s,r,n,i.instanceIndex))return!1;const c=P.Distance(n,s)/this._options.radius,u=ae.Vector3[2];n.normalizeToRef(u),c>this._options.centripetalForceThreshold&&u.negateInPlace();let f,p,m;if(c>this._options.centripetalForceThreshold)f=u.x*this._options.centripetalForceMultiplier,p=u.y*this._options.updraftForceMultiplier,m=u.z*this._options.centripetalForceMultiplier;else{const d=P.Cross(s,t).normalize();f=(d.x+u.x)*this._options.centrifugalForceMultiplier,p=this._originTop.y*this._options.updraftForceMultiplier,m=(d.z+u.z)*this._options.centrifugalForceMultiplier}const _=ae.Vector3[3];return _.set(f,p,m),_.scaleInPlace(this._options.strength),i.force.copyFrom(_),i.contactPoint.copyFrom(t),i.distanceFromOrigin=c,!0}_getBodyHitData(e,t,i){if(XL.HasAppliedForces(e,i))return!1;const s=e.transformNode,r=e.getObjectCenterWorld(i);return XL.IsInsideCylinder(r,this._origin,this._options.radius,this._options.height)?(t.instanceIndex=i,this._getHitData(s,r,t)):!1}_getImpostorHitData(e,t){if(e.mass===0||e.object.getClassName()!=="Mesh"&&e.object.getClassName()!=="InstancedMesh")return!1;const i=e.object;if(!this._intersectsWithCylinder(i))return!1;const s=e.getObjectCenter();return this._getHitData(i,s,t),!0}_tick(){const e=BO._HitData;this._physicsEngine.getPluginVersion()===1?this._physicsEngine.getImpostors().forEach(t=>{this._getImpostorHitData(t,e)&&t.applyForce(e.force,e.contactPoint)}):this._physicsEngine.getBodies().forEach(t=>{t.iterateOverAllInstances((i,s)=>{this._getBodyHitData(i,e,s)&&i.applyForce(e.force,e.contactPoint,e.instanceIndex)})})}_prepareCylinder(){this._cylinder||(this._cylinder=e1("vortexEventCylinder",{height:this._options.height,diameter:this._options.radius*2},this._scene),this._cylinder.isVisible=!1)}_intersectsWithCylinder(e){return this._cylinder.position=this._cylinderPosition,this._cylinder.intersectsMesh(e,!0)}}BO._OriginOnPlane=P.Zero(),BO._HitData={force:new P,contactPoint:new P,distanceFromOrigin:0};class zO{constructor(){this.radius=5,this.strength=10,this.falloff=0,this.sphere={segments:32,diameter:1}}}class yae{constructor(){this.radius=5,this.strength=10,this.height=10,this.updraftMode=0}}class Mae{constructor(){this.radius=5,this.strength=10,this.height=10,this.centripetalForceThreshold=.7,this.centripetalForceMultiplier=5,this.centrifugalForceMultiplier=.5,this.updraftForceMultiplier=.02}}var Eae;(function(a){a[a.Constant=0]="Constant",a[a.Linear=1]="Linear"})(Eae||(Eae={}));var Tae;(function(a){a[a.Center=0]="Center",a[a.Perpendicular=1]="Perpendicular"})(Tae||(Tae={}));class yYe extends Bie{constructor(){super(...arguments),this._hitDistance=0}get hitDistance(){return this._hitDistance}setHitDistance(e){this._hitDistance=e}reset(){super.reset(),this._hitDistance=0}}class MYe extends Bie{constructor(){super(...arguments),this._hitFraction=0}get hitFraction(){return this._hitFraction}setHitFraction(e){this._hitFraction=e}}class pz extends Mi{get degree(){return this._effectWrapper.degree}set degree(e){this._effectWrapper.degree=e}getClassName(){return"BlackAndWhitePostProcess"}constructor(e,t,i=null,s,r,n){const o={uniforms:s5.Uniforms,size:typeof t=="number"?t:void 0,camera:i,samplingMode:s,engine:r,reusable:n,...t};super(e,s5.FragmentUrl,{effectWrapper:typeof t=="number"||!t.effectWrapper?new s5(e,r,o):void 0,...o})}static _Parse(e,t,i,s){return It.Parse(()=>new pz(e.name,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.reusable),e,i,s)}}F([G()],pz.prototype,"degree",null),ve("BABYLON.BlackAndWhitePostProcess",pz);class Mr{constructor(e,t,i,s){this._name=t,this._singleInstance=s||!0,this._getPostProcesses=i,this._cameras={},this._indicesForCamera={},this._postProcesses={}}get isSupported(){for(const e in this._postProcesses)if(Object.prototype.hasOwnProperty.call(this._postProcesses,e)){const t=this._postProcesses[e];for(let i=0;i<t.length;i++)if(!t[i].isSupported)return!1}return!0}_update(){}_attachCameras(e){let t;const i=Le.MakeArray(e||this._cameras);if(i)for(let s=0;s<i.length;s++){const r=i[s];if(!r)continue;const n=r.name;if(this._singleInstance?t=0:t=n,!this._postProcesses[t]){const o=this._getPostProcesses();o&&(this._postProcesses[t]=Array.isArray(o)?o:[o])}this._indicesForCamera[n]||(this._indicesForCamera[n]=[]),this._postProcesses[t].forEach(o=>{const l=r.attachPostProcess(o);this._indicesForCamera[n].push(l)}),this._cameras[n]||(this._cameras[n]=r)}}_detachCameras(e){const t=Le.MakeArray(e||this._cameras);if(t)for(let i=0;i<t.length;i++){const s=t[i],r=s.name,n=this._postProcesses[this._singleInstance?0:r];n&&n.forEach(o=>{s.detachPostProcess(o)}),this._cameras[r]&&(this._cameras[r]=null),delete this._indicesForCamera[r]}}_enable(e){const t=Le.MakeArray(e||this._cameras);if(t)for(let i=0;i<t.length;i++){const s=t[i],r=s.name,n=this._singleInstance?0:r;for(let o=0;o<this._indicesForCamera[r].length;o++){const l=this._indicesForCamera[r][o],c=s._postProcesses[l];c==null&&t[i].attachPostProcess(this._postProcesses[n][o],l)}}}_disable(e){const t=Le.MakeArray(e||this._cameras);if(t)for(let i=0;i<t.length;i++){const s=t[i],r=s.name;this._postProcesses[this._singleInstance?0:r].forEach(n=>{s.detachPostProcess(n)})}}getPostProcesses(e){return this._singleInstance?this._postProcesses[0]:e?this._postProcesses[e.name]:null}}class IY extends Mi{get threshold(){return this._effectWrapper.threshold}set threshold(e){this._effectWrapper.threshold=e}get _exposure(){return this._effectWrapper._exposure}set _exposure(e){this._effectWrapper._exposure=e}getClassName(){return"ExtractHighlightsPostProcess"}constructor(e,t,i=null,s,r,n,o=0,l=!1){const c={uniforms:n_.Uniforms,size:typeof t=="number"?t:void 0,camera:i,samplingMode:s,engine:r,reusable:n,textureType:o,blockCompilation:l,...t};super(e,n_.FragmentUrl,{effectWrapper:typeof t=="number"||!t.effectWrapper?new n_(e,r,c):void 0,...c}),this._inputPostProcess=null,this.onApplyObservable.add(u=>{this.externalTextureSamplerBinding=!!this._inputPostProcess,this._inputPostProcess&&u.setTextureFromPostProcess("textureSampler",this._inputPostProcess)})}}F([G()],IY.prototype,"threshold",null),ve("BABYLON.ExtractHighlightsPostProcess",IY);class PY extends Mi{get weight(){return this._effectWrapper.weight}set weight(e){this._effectWrapper.weight=e}getClassName(){return"BloomMergePostProcess"}constructor(e,t,i,s,r,n=null,o,l,c,u=0,f=!1){const p=typeof r=="number"?f:!!r.blockCompilation,m={uniforms:T4.Uniforms,samplers:T4.Samplers,size:typeof r=="number"?r:void 0,camera:n,samplingMode:o,engine:l,reusable:c,textureType:u,...r,blockCompilation:!0};super(e,T4.FragmentUrl,{effectWrapper:typeof r=="number"||!r.effectWrapper?new T4(e,l,m):void 0,...m}),this.weight=s,this.externalTextureSamplerBinding=!0,this.onApplyObservable.add(_=>{_.setTextureFromPostProcess("textureSampler",t),_.setTextureFromPostProcessOutput("bloomBlur",i)}),p||this.updateEffect()}}F([G()],PY.prototype,"weight",null),ve("BABYLON.BloomMergePostProcess",PY);class Lae extends Mr{get threshold(){return this._thinBloomEffect.threshold}set threshold(e){this._thinBloomEffect.threshold=e}get weight(){return this._thinBloomEffect.weight}set weight(e){this._thinBloomEffect.weight=e}get kernel(){return this._thinBloomEffect.kernel}set kernel(e){this._thinBloomEffect.kernel=e}get bloomScale(){return this._thinBloomEffect.scale}constructor(e,t,i,s,r=0,n=!1){const o=e._renderForCamera?e.getEngine():e;super(o,"bloom",()=>this._effects,!0),this._effects=[],this._thinBloomEffect=new mte("bloom",o,t,n),this._downscale=new IY("highlights",{size:1,samplingMode:be.BILINEAR_SAMPLINGMODE,engine:o,textureType:r,blockCompilation:n,effectWrapper:this._thinBloomEffect._downscale}),this._blurX=new tc("horizontal blur",this._thinBloomEffect._blurX.direction,this._thinBloomEffect._blurX.kernel,{size:t,samplingMode:be.BILINEAR_SAMPLINGMODE,engine:o,textureType:r,blockCompilation:n,effectWrapper:this._thinBloomEffect._blurX}),this._blurX.alwaysForcePOT=!0,this._blurX.autoClear=!1,this._blurY=new tc("vertical blur",this._thinBloomEffect._blurY.direction,this._thinBloomEffect._blurY.kernel,{size:t,samplingMode:be.BILINEAR_SAMPLINGMODE,engine:o,textureType:r,blockCompilation:n,effectWrapper:this._thinBloomEffect._blurY}),this._blurY.alwaysForcePOT=!0,this._blurY.autoClear=!1,this.kernel=s,this._effects=[this._downscale,this._blurX,this._blurY],this._merge=new PY("bloomMerge",this._downscale,this._blurY,i,{size:t,samplingMode:be.BILINEAR_SAMPLINGMODE,engine:o,textureType:r,blockCompilation:n,effectWrapper:this._thinBloomEffect._merge}),this._merge.autoClear=!1,this._effects.push(this._merge)}disposeEffects(e){for(let t=0;t<this._effects.length;t++)this._effects[t].dispose(e)}_updateEffects(){for(let e=0;e<this._effects.length;e++)this._effects[e].updateEffect()}_isReady(){return this._thinBloomEffect.isReady()}}class v5 extends Mi{get aberrationAmount(){return this._effectWrapper.aberrationAmount}set aberrationAmount(e){this._effectWrapper.aberrationAmount=e}get radialIntensity(){return this._effectWrapper.radialIntensity}set radialIntensity(e){this._effectWrapper.radialIntensity=e}get direction(){return this._effectWrapper.direction}set direction(e){this._effectWrapper.direction=e}get centerPosition(){return this._effectWrapper.centerPosition}set centerPosition(e){this._effectWrapper.centerPosition=e}get screenWidth(){return this._effectWrapper.screenWidth}set screenWidth(e){this._effectWrapper.screenWidth=e}get screenHeight(){return this._effectWrapper.screenHeight}set screenHeight(e){this._effectWrapper.screenHeight=e}getClassName(){return"ChromaticAberrationPostProcess"}constructor(e,t,i,s,r,n,o,l,c=0,u=!1){const f={uniforms:r5.Uniforms,size:typeof s=="number"?s:void 0,camera:r,samplingMode:n,engine:o,reusable:l,textureType:c,blockCompilation:u,...s};super(e,r5.FragmentUrl,{effectWrapper:typeof s=="number"||!s.effectWrapper?new r5(e,o,f):void 0,...f}),this.screenWidth=t,this.screenHeight=i}static _Parse(e,t,i,s){return It.Parse(()=>new v5(e.name,e.screenWidth,e.screenHeight,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.reusable,e.textureType,!1),e,i,s)}}F([G()],v5.prototype,"aberrationAmount",null),F([G()],v5.prototype,"radialIntensity",null),F([G()],v5.prototype,"direction",null),F([G()],v5.prototype,"centerPosition",null),F([G()],v5.prototype,"screenWidth",null),F([G()],v5.prototype,"screenHeight",null),ve("BABYLON.ChromaticAberrationPostProcess",v5);class ZL extends Mi{get lensSize(){return this._effectWrapper.lensSize}set lensSize(e){this._effectWrapper.lensSize=e}get fStop(){return this._effectWrapper.fStop}set fStop(e){this._effectWrapper.fStop=e}get focusDistance(){return this._effectWrapper.focusDistance}set focusDistance(e){this._effectWrapper.focusDistance=e}get focalLength(){return this._effectWrapper.focalLength}set focalLength(e){this._effectWrapper.focalLength=e}getClassName(){return"CircleOfConfusionPostProcess"}constructor(e,t,i,s,r,n,o,l=0,c=!1){const u={uniforms:t1.Uniforms,samplers:t1.Samplers,defines:typeof i=="object"&&i.depthNotNormalized?t1.DefinesDepthNotNormalized:void 0,size:typeof i=="number"?i:void 0,camera:s,samplingMode:r,engine:n,reusable:o,textureType:l,blockCompilation:c,...i};super(e,t1.FragmentUrl,{effectWrapper:typeof i=="number"||!i.effectWrapper?new t1(e,n,u):void 0,...u}),this._depthTexture=null,this._depthTexture=t,this.onApplyObservable.add(f=>{if(!this._depthTexture){de.Warn("No depth texture set on CircleOfConfusionPostProcess");return}f.setTexture("depthSampler",this._depthTexture),this._effectWrapper.camera=this._depthTexture.activeCamera})}set depthTexture(e){this._depthTexture=e}}F([G()],ZL.prototype,"lensSize",null),F([G()],ZL.prototype,"fStop",null),F([G()],ZL.prototype,"focusDistance",null),F([G()],ZL.prototype,"focalLength",null),ve("BABYLON.CircleOfConfusionPostProcess",ZL);class mz extends Mi{getClassName(){return"ColorCorrectionPostProcess"}constructor(e,t,i,s,r,n,o){super(e,"colorCorrection",null,["colorTable"],i,s,r,n,o);const l=(s==null?void 0:s.getScene())||null;this._colorTableTexture=new be(t,l,!0,!1,be.TRILINEAR_SAMPLINGMODE),this._colorTableTexture.anisotropicFilteringLevel=1,this._colorTableTexture.wrapU=be.CLAMP_ADDRESSMODE,this._colorTableTexture.wrapV=be.CLAMP_ADDRESSMODE,this.colorTableUrl=t,this.onApply=c=>{c.setTexture("colorTable",this._colorTableTexture)}}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>KXe)]))):t.push(Promise.all([Promise.resolve().then(()=>ZXe)])),super._gatherImports(e,t)}static _Parse(e,t,i,s){return It.Parse(()=>new mz(e.name,e.colorTableUrl,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.reusable),e,i,s)}}F([G()],mz.prototype,"colorTableUrl",void 0),ve("BABYLON.ColorCorrectionPostProcess",mz);class A5 extends Mi{getClassName(){return"ConvolutionPostProcess"}constructor(e,t,i,s,r,n,o,l=0){super(e,"convolution",["kernel","screenSize"],null,i,s,r,n,o,null,l),this.kernel=t,this.onApply=c=>{c.setFloat2("screenSize",this.width,this.height),c.setArray("kernel",this.kernel)}}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>XXe)]))):t.push(Promise.all([Promise.resolve().then(()=>YXe)])),super._gatherImports(e,t)}static _Parse(e,t,i,s){return It.Parse(()=>new A5(e.name,e.kernel,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.reusable,e.textureType),e,i,s)}}A5.EdgeDetect0Kernel=[1,0,-1,0,0,0,-1,0,1],A5.EdgeDetect1Kernel=[0,1,0,1,-4,1,0,1,0],A5.EdgeDetect2Kernel=[-1,-1,-1,-1,8,-1,-1,-1,-1],A5.SharpenKernel=[0,-1,0,-1,5,-1,0,-1,0],A5.EmbossKernel=[-2,-1,0,-1,1,1,0,1,2],A5.GaussianKernel=[0,1,0,1,1,1,0,1,0],F([G()],A5.prototype,"kernel",void 0),ve("BABYLON.ConvolutionPostProcess",A5);class OY extends tc{getClassName(){return"DepthOfFieldBlurPostProcess"}constructor(e,t,i,s,r,n,o,l=null,c=be.BILINEAR_SAMPLINGMODE,u,f,p=0,m=!1,_=5){super(e,i,s,{camera:n,engine:u,reusable:f,textureType:p,defines:`#define DOF 1
`,blockCompilation:m,textureFormat:_,...r,samplingMode:c=2}),this.externalTextureSamplerBinding=!!l,this.onApplyObservable.add(d=>{l!=null&&d.setTextureFromPostProcess("textureSampler",l),d.setTextureFromPostProcessOutput("circleOfConfusionSampler",o)})}}ve("BABYLON.DepthOfFieldBlurPostProcess",OY);class Wbe extends Mi{getClassName(){return"DepthOfFieldMergePostProcess"}constructor(e,t,i,s,r,n,o,l,c,u=0,f=!1){const p=typeof r=="number"?f:!!r.blockCompilation,m={samplers:db.Samplers,size:typeof r=="number"?r:void 0,camera:n,samplingMode:o,engine:l,reusable:c,textureType:u,...r,blockCompilation:!0};super(e,db.FragmentUrl,{effectWrapper:typeof r=="number"||!r.effectWrapper?new db(e,l,m):void 0,...m}),this._blurSteps=s,this.externalTextureSamplerBinding=!0,this.onApplyObservable.add(_=>{_.setTextureFromPostProcess("textureSampler",t),_.setTextureFromPostProcessOutput("circleOfConfusionSampler",i),s.forEach((d,h)=>{_.setTextureFromPostProcessOutput("blurStep"+(s.length-h-1),d)})}),p||this.updateEffect()}updateEffect(e=null,t=null,i=null,s,r,n){e||(e="",e+="#define BLUR_LEVEL "+(this._blurSteps.length-1)+`
`),super.updateEffect(e,t,i,s,r,n)}}var Iae;(function(a){a[a.Low=0]="Low",a[a.Medium=1]="Medium",a[a.High=2]="High"})(Iae||(Iae={}));class Pae extends Mr{set focalLength(e){this._thinDepthOfFieldEffect.focalLength=e}get focalLength(){return this._thinDepthOfFieldEffect.focalLength}set fStop(e){this._thinDepthOfFieldEffect.fStop=e}get fStop(){return this._thinDepthOfFieldEffect.fStop}set focusDistance(e){this._thinDepthOfFieldEffect.focusDistance=e}get focusDistance(){return this._thinDepthOfFieldEffect.focusDistance}set lensSize(e){this._thinDepthOfFieldEffect.lensSize=e}get lensSize(){return this._thinDepthOfFieldEffect.lensSize}constructor(e,t,i=0,s=0,r=!1,n=!1){const o=e._renderForCamera?e.getEngine():e;super(o,"depth of field",()=>this._effects,!0),this._effects=[],this._thinDepthOfFieldEffect=new Cte("Depth of Field",o,i,!1,r);const l=o.isWebGPU||o.version>1?6:5;this._circleOfConfusion=new ZL("circleOfConfusion",t,{size:1,samplingMode:be.BILINEAR_SAMPLINGMODE,engine:o,textureType:s,blockCompilation:r,depthNotNormalized:n,effectWrapper:this._thinDepthOfFieldEffect._circleOfConfusion},null),this._depthOfFieldBlurY=[],this._depthOfFieldBlurX=[];const c=this._thinDepthOfFieldEffect._depthOfFieldBlurX.length;for(let u=0;u<c;u++){const[f,p]=this._thinDepthOfFieldEffect._depthOfFieldBlurY[u],m=new OY("vertical blur",null,f.direction,f.kernel,{size:p,samplingMode:be.BILINEAR_SAMPLINGMODE,engine:o,textureType:s,blockCompilation:r,textureFormat:u==0?l:5,effectWrapper:f},null,this._circleOfConfusion,u==0?this._circleOfConfusion:null);m.autoClear=!1;const[_,d]=this._thinDepthOfFieldEffect._depthOfFieldBlurX[u],h=new OY("horizontal blur",null,_.direction,_.kernel,{size:d,samplingMode:be.BILINEAR_SAMPLINGMODE,engine:o,textureType:s,blockCompilation:r,effectWrapper:_},null,this._circleOfConfusion,null);h.autoClear=!1,this._depthOfFieldBlurY.push(m),this._depthOfFieldBlurX.push(h)}this._effects=[this._circleOfConfusion];for(let u=0;u<this._depthOfFieldBlurX.length;u++)this._effects.push(this._depthOfFieldBlurY[u]),this._effects.push(this._depthOfFieldBlurX[u]);this._dofMerge=new Wbe("dofMerge",this._circleOfConfusion,this._circleOfConfusion,this._depthOfFieldBlurX,{size:this._thinDepthOfFieldEffect._depthOfFieldBlurX[c-1][1],samplingMode:be.BILINEAR_SAMPLINGMODE,engine:o,textureType:s,blockCompilation:r,effectWrapper:this._thinDepthOfFieldEffect._dofMerge},null),this._dofMerge.autoClear=!1,this._effects.push(this._dofMerge)}getClassName(){return"DepthOfFieldEffect"}set depthTexture(e){this._circleOfConfusion.depthTexture=e}disposeEffects(e){for(let t=0;t<this._effects.length;t++)this._effects[t].dispose(e)}_updateEffects(){for(let e=0;e<this._effects.length;e++)this._effects[e].updateEffect()}_isReady(){return this._thinDepthOfFieldEffect.isReady()}}class RY extends Mi{getClassName(){return"DisplayPassPostProcess"}constructor(e,t,i,s,r,n){super(e,"displayPass",["passSampler"],["passSampler"],t,i,s,r,n)}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>sZe)]))):t.push(Promise.all([Promise.resolve().then(()=>iZe)])),super._gatherImports(e,t)}static _Parse(e,t,i,s){return It.Parse(()=>new RY(e.name,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.reusable),e,i,s)}}ve("BABYLON.DisplayPassPostProcess",RY);class gz extends Mi{getClassName(){return"FilterPostProcess"}constructor(e,t,i,s,r,n,o){super(e,"filter",["kernelMatrix"],null,i,s,r,n,o),this.kernelMatrix=t,this.onApply=l=>{l.setMatrix("kernelMatrix",this.kernelMatrix)}}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>$Xe)]))):t.push(Promise.all([Promise.resolve().then(()=>JXe)])),super._gatherImports(e,t)}static _Parse(e,t,i,s){return It.Parse(()=>new gz(e.name,e.kernelMatrix,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.reusable),e,i,s)}}F([uG()],gz.prototype,"kernelMatrix",void 0),ve("BABYLON.FilterPostProcess",gz);class KL extends Mi{getClassName(){return"GrainPostProcess"}constructor(e,t,i,s,r,n,o=0,l=!1){super(e,"grain",["intensity","animatedSeed"],[],t,i,s,r,n,null,o,void 0,null,l),this.intensity=30,this.animated=!1,this.onApplyObservable.add(c=>{c.setFloat("intensity",this.intensity),c.setFloat("animatedSeed",this.animated?Math.random()+1:1)})}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>LXe)]))):t.push(Promise.all([Promise.resolve().then(()=>TXe)])),super._gatherImports(e,t)}static _Parse(e,t,i,s){return It.Parse(()=>new KL(e.name,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.reusable),e,i,s)}}F([G()],KL.prototype,"intensity",void 0),F([G()],KL.prototype,"animated",void 0),ve("BABYLON.GrainPostProcess",KL);class EYe extends Mi{getClassName(){return"HighlightsPostProcess"}constructor(e,t,i,s,r,n,o=0){super(e,"highlights",null,null,t,i,s,r,n,null,o)}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>tZe)]))):t.push(Promise.all([Promise.resolve().then(()=>eZe)])),super._gatherImports(e,t)}}class DY extends Mi{get imageProcessingConfiguration(){return this._imageProcessingConfiguration}set imageProcessingConfiguration(e){e.applyByPostProcess=!0,this._attachImageProcessingConfiguration(e)}_attachImageProcessingConfiguration(e,t=!1){if(e!==this._imageProcessingConfiguration){if(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e)this._imageProcessingConfiguration=e;else{let i=null;const s=this.getEngine(),r=this.getCamera();if(r)i=r.getScene();else if(s&&s.scenes){const n=s.scenes;i=n[n.length-1]}else i=ei.LastCreatedScene;i?this._imageProcessingConfiguration=i.imageProcessingConfiguration:this._imageProcessingConfiguration=new ws}this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add(()=>{this._updateParameters()})),t||this._updateParameters()}}get isSupported(){const e=this.getEffect();return!e||e.isSupported}get colorCurves(){return this.imageProcessingConfiguration.colorCurves}set colorCurves(e){this.imageProcessingConfiguration.colorCurves=e}get colorCurvesEnabled(){return this.imageProcessingConfiguration.colorCurvesEnabled}set colorCurvesEnabled(e){this.imageProcessingConfiguration.colorCurvesEnabled=e}get colorGradingTexture(){return this.imageProcessingConfiguration.colorGradingTexture}set colorGradingTexture(e){this.imageProcessingConfiguration.colorGradingTexture=e}get colorGradingEnabled(){return this.imageProcessingConfiguration.colorGradingEnabled}set colorGradingEnabled(e){this.imageProcessingConfiguration.colorGradingEnabled=e}get exposure(){return this.imageProcessingConfiguration.exposure}set exposure(e){this.imageProcessingConfiguration.exposure=e}get toneMappingEnabled(){return this._imageProcessingConfiguration.toneMappingEnabled}set toneMappingEnabled(e){this._imageProcessingConfiguration.toneMappingEnabled=e}get toneMappingType(){return this._imageProcessingConfiguration.toneMappingType}set toneMappingType(e){this._imageProcessingConfiguration.toneMappingType=e}get contrast(){return this.imageProcessingConfiguration.contrast}set contrast(e){this.imageProcessingConfiguration.contrast=e}get vignetteStretch(){return this.imageProcessingConfiguration.vignetteStretch}set vignetteStretch(e){this.imageProcessingConfiguration.vignetteStretch=e}get vignetteCentreX(){return this.imageProcessingConfiguration.vignetteCenterX}set vignetteCentreX(e){this.imageProcessingConfiguration.vignetteCenterX=e}get vignetteCentreY(){return this.imageProcessingConfiguration.vignetteCenterY}set vignetteCentreY(e){this.imageProcessingConfiguration.vignetteCenterY=e}get vignetteCenterY(){return this.imageProcessingConfiguration.vignetteCenterY}set vignetteCenterY(e){this.imageProcessingConfiguration.vignetteCenterY=e}get vignetteCenterX(){return this.imageProcessingConfiguration.vignetteCenterX}set vignetteCenterX(e){this.imageProcessingConfiguration.vignetteCenterX=e}get vignetteWeight(){return this.imageProcessingConfiguration.vignetteWeight}set vignetteWeight(e){this.imageProcessingConfiguration.vignetteWeight=e}get vignetteColor(){return this.imageProcessingConfiguration.vignetteColor}set vignetteColor(e){this.imageProcessingConfiguration.vignetteColor=e}get vignetteCameraFov(){return this.imageProcessingConfiguration.vignetteCameraFov}set vignetteCameraFov(e){this.imageProcessingConfiguration.vignetteCameraFov=e}get vignetteBlendMode(){return this.imageProcessingConfiguration.vignetteBlendMode}set vignetteBlendMode(e){this.imageProcessingConfiguration.vignetteBlendMode=e}get vignetteEnabled(){return this.imageProcessingConfiguration.vignetteEnabled}set vignetteEnabled(e){this.imageProcessingConfiguration.vignetteEnabled=e}get ditheringIntensity(){return this.imageProcessingConfiguration.ditheringIntensity}set ditheringIntensity(e){this.imageProcessingConfiguration.ditheringIntensity=e}get ditheringEnabled(){return this.imageProcessingConfiguration.ditheringEnabled}set ditheringEnabled(e){this.imageProcessingConfiguration.ditheringEnabled=e}get fromLinearSpace(){return this._fromLinearSpace}set fromLinearSpace(e){this._fromLinearSpace!==e&&(this._fromLinearSpace=e,this._updateParameters())}constructor(e,t,i=null,s,r,n,o=0,l){super(e,"imageProcessing",[],[],t,i,s,r,n,null,o,"postprocess",null,!0),this._fromLinearSpace=!0,this._defines={IMAGEPROCESSING:!1,VIGNETTE:!1,VIGNETTEBLENDMODEMULTIPLY:!1,VIGNETTEBLENDMODEOPAQUE:!1,TONEMAPPING:0,CONTRAST:!1,COLORCURVES:!1,COLORGRADING:!1,COLORGRADING3D:!1,FROMLINEARSPACE:!1,SAMPLER3DGREENDEPTH:!1,SAMPLER3DBGRMAP:!1,DITHER:!1,IMAGEPROCESSINGPOSTPROCESS:!1,EXPOSURE:!1,SKIPFINALCOLORCLAMP:!1},l?(l.applyByPostProcess=!0,this._attachImageProcessingConfiguration(l,!0),this._updateParameters()):(this._attachImageProcessingConfiguration(null,!0),this.imageProcessingConfiguration.applyByPostProcess=!0),this.onApply=c=>{this.imageProcessingConfiguration.bind(c,this.aspectRatio)}}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.resolve().then(()=>yXe))):t.push(Promise.resolve().then(()=>MXe)),super._gatherImports(e,t)}getClassName(){return"ImageProcessingPostProcess"}_updateParameters(){this._defines.FROMLINEARSPACE=this._fromLinearSpace,this.imageProcessingConfiguration.prepareDefines(this._defines,!0);let e="";for(const s in this._defines){const r=this._defines[s];switch(typeof r){case"number":case"string":e+=`#define ${s} ${r};
`;break;default:r&&(e+=`#define ${s};
`);break}}const t=["textureSampler"],i=["scale"];ws&&(ws.PrepareSamplers(t,this._defines),ws.PrepareUniforms(i,this._defines)),this.updateEffect(e,i,t)}dispose(e){super.dispose(e),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),this._imageProcessingConfiguration&&(this.imageProcessingConfiguration.applyByPostProcess=!1)}}F([G()],DY.prototype,"_fromLinearSpace",void 0);const Hbe="mrtFragmentDeclaration",TYe=`#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
layout(location=0) out vec4 glFragData[{X}];
#endif
`;H.IncludesShadersStore[Hbe]||(H.IncludesShadersStore[Hbe]=TYe);const Oae="geometryPixelShader",Ybe=`#extension GL_EXT_draw_buffers : require
#if defined(BUMP) || !defined(NORMAL)
#extension GL_OES_standard_derivatives : enable
#endif
precision highp float;
#ifdef BUMP
varying mat4 vWorldView;varying vec3 vNormalW;
#else
varying vec3 vNormalV;
#endif
varying vec4 vViewPos;
#if defined(POSITION) || defined(BUMP)
varying vec3 vPositionW;
#endif
#if defined(VELOCITY) || defined(VELOCITY_LINEAR)
varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;
#endif
#ifdef NEED_UV
varying vec2 vUV;
#endif
#ifdef BUMP
uniform vec3 vBumpInfos;uniform vec2 vTangentSpaceParams;
#endif
#if defined(REFLECTIVITY)
#if defined(ORMTEXTURE) || defined(SPECULARGLOSSINESSTEXTURE) || defined(REFLECTIVITYTEXTURE)
uniform sampler2D reflectivitySampler;varying vec2 vReflectivityUV;
#endif
#ifdef ALBEDOTEXTURE
varying vec2 vAlbedoUV;uniform sampler2D albedoSampler;
#endif
#ifdef REFLECTIVITYCOLOR
uniform vec3 reflectivityColor;
#endif
#ifdef ALBEDOCOLOR
uniform vec3 albedoColor;
#endif
#ifdef METALLIC
uniform float metallic;
#endif
#if defined(ROUGHNESS) || defined(GLOSSINESS)
uniform float glossiness;
#endif
#endif
#if defined(ALPHATEST) && defined(NEED_UV)
uniform sampler2D diffuseSampler;
#endif
#include<clipPlaneFragmentDeclaration>
#include<mrtFragmentDeclaration>[SCENE_MRT_COUNT]
#include<bumpFragmentMainFunctions>
#include<bumpFragmentFunctions>
#include<helperFunctions>
void main() {
#include<clipPlaneFragment>
#ifdef ALPHATEST
if (texture2D(diffuseSampler,vUV).a<0.4)
discard;
#endif
vec3 normalOutput;
#ifdef BUMP
vec3 normalW=normalize(vNormalW);
#include<bumpFragment>
#ifdef NORMAL_WORLDSPACE
normalOutput=normalW;
#else
normalOutput=normalize(vec3(vWorldView*vec4(normalW,0.0)));
#endif
#else
normalOutput=normalize(vNormalV);
#endif
#ifdef ENCODE_NORMAL
normalOutput=normalOutput*0.5+0.5;
#endif
#ifdef DEPTH
gl_FragData[DEPTH_INDEX]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);
#endif
#ifdef NORMAL
gl_FragData[NORMAL_INDEX]=vec4(normalOutput,1.0);
#endif
#ifdef SCREENSPACE_DEPTH
gl_FragData[SCREENSPACE_DEPTH_INDEX]=vec4(gl_FragCoord.z,0.0,0.0,1.0);
#endif
#ifdef POSITION
gl_FragData[POSITION_INDEX]=vec4(vPositionW,1.0);
#endif
#ifdef VELOCITY
vec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[VELOCITY_INDEX]=vec4(velocity,0.0,1.0);
#endif
#ifdef VELOCITY_LINEAR
vec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w) -
(vCurrentPosition.xy/vCurrentPosition.w));gl_FragData[VELOCITY_LINEAR_INDEX]=vec4(velocity,0.0,1.0);
#endif
#ifdef REFLECTIVITY
vec4 reflectivity=vec4(0.0,0.0,0.0,1.0);
#ifdef METALLICWORKFLOW
float metal=1.0;float roughness=1.0;
#ifdef ORMTEXTURE
metal*=texture2D(reflectivitySampler,vReflectivityUV).b;roughness*=texture2D(reflectivitySampler,vReflectivityUV).g;
#endif
#ifdef METALLIC
metal*=metallic;
#endif
#ifdef ROUGHNESS
roughness*=(1.0-glossiness); 
#endif
reflectivity.a-=roughness;vec3 color=vec3(1.0);
#ifdef ALBEDOTEXTURE
color=texture2D(albedoSampler,vAlbedoUV).rgb;
#ifdef GAMMAALBEDO
color=toLinearSpace(color);
#endif
#endif
#ifdef ALBEDOCOLOR
color*=albedoColor.xyz;
#endif
reflectivity.rgb=mix(vec3(0.04),color,metal);
#else
#if defined(SPECULARGLOSSINESSTEXTURE) || defined(REFLECTIVITYTEXTURE)
reflectivity=texture2D(reflectivitySampler,vReflectivityUV);
#ifdef GAMMAREFLECTIVITYTEXTURE
reflectivity.rgb=toLinearSpace(reflectivity.rgb);
#endif
#else 
#ifdef REFLECTIVITYCOLOR
reflectivity.rgb=toLinearSpace(reflectivityColor.xyz);reflectivity.a=1.0;
#endif
#endif
#ifdef GLOSSINESSS
reflectivity.a*=glossiness; 
#endif
#endif
gl_FragData[REFLECTIVITY_INDEX]=reflectivity;
#endif
}
`;H.ShadersStore[Oae]||(H.ShadersStore[Oae]=Ybe);const Xbe={name:Oae,shader:Ybe},LYe=Object.freeze(Object.defineProperty({__proto__:null,geometryPixelShader:Xbe},Symbol.toStringTag,{value:"Module"})),Zbe="geometryVertexDeclaration",IYe="uniform mat4 viewProjection;uniform mat4 view;";H.IncludesShadersStore[Zbe]||(H.IncludesShadersStore[Zbe]=IYe);const Kbe="geometryUboDeclaration",PYe=`#include<sceneUboDeclaration>
`;H.IncludesShadersStore[Kbe]||(H.IncludesShadersStore[Kbe]=PYe);const Rae="geometryVertexShader",qbe=`precision highp float;
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<instancesDeclaration>
#include<__decl__geometryVertex>
#include<clipPlaneVertexDeclaration>
attribute vec3 position;attribute vec3 normal;
#ifdef NEED_UV
varying vec2 vUV;
#ifdef ALPHATEST
uniform mat4 diffuseMatrix;
#endif
#ifdef BUMP
uniform mat4 bumpMatrix;varying vec2 vBumpUV;
#endif
#ifdef REFLECTIVITY
uniform mat4 reflectivityMatrix;uniform mat4 albedoMatrix;varying vec2 vReflectivityUV;varying vec2 vAlbedoUV;
#endif
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#endif
#ifdef BUMP
varying mat4 vWorldView;
#endif
#ifdef BUMP
varying vec3 vNormalW;
#else
varying vec3 vNormalV;
#endif
varying vec4 vViewPos;
#if defined(POSITION) || defined(BUMP)
varying vec3 vPositionW;
#endif
#if defined(VELOCITY) || defined(VELOCITY_LINEAR)
uniform mat4 previousViewProjection;varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;
#endif
#define CUSTOM_VERTEX_DEFINITIONS
void main(void)
{vec3 positionUpdated=position;vec3 normalUpdated=normal;
#ifdef UV1
vec2 uvUpdated=uv;
#endif
#ifdef UV2
vec2 uv2Updated=uv2;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#if (defined(VELOCITY) || defined(VELOCITY_LINEAR)) && !defined(BONES_VELOCITY_ENABLED)
vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
#endif
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=vec4(finalWorld*vec4(positionUpdated,1.0));
#ifdef BUMP
vWorldView=view*finalWorld;mat3 normalWorld=mat3(finalWorld);vNormalW=normalize(normalWorld*normalUpdated);
#else
#ifdef NORMAL_WORLDSPACE
vNormalV=normalize(vec3(finalWorld*vec4(normalUpdated,0.0)));
#else
vNormalV=normalize(vec3((view*finalWorld)*vec4(normalUpdated,0.0)));
#endif
#endif
vViewPos=view*worldPos;
#if (defined(VELOCITY) || defined(VELOCITY_LINEAR)) && defined(BONES_VELOCITY_ENABLED)
vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);
#if NUM_BONE_INFLUENCERS>0
mat4 previousInfluence;previousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];
#if NUM_BONE_INFLUENCERS>1
previousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];
#endif
#if NUM_BONE_INFLUENCERS>2
previousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];
#endif
#if NUM_BONE_INFLUENCERS>3
previousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];
#endif
#if NUM_BONE_INFLUENCERS>4
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];
#endif
#if NUM_BONE_INFLUENCERS>5
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];
#endif
#if NUM_BONE_INFLUENCERS>6
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];
#endif
#if NUM_BONE_INFLUENCERS>7
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];
#endif
vPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);
#else
vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
#endif
#endif
#if defined(POSITION) || defined(BUMP)
vPositionW=worldPos.xyz/worldPos.w;
#endif
gl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);
#include<clipPlaneVertex>
#ifdef NEED_UV
#ifdef UV1
#if defined(ALPHATEST) && defined(ALPHATEST_UV1)
vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));
#else
vUV=uvUpdated;
#endif
#ifdef BUMP_UV1
vBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));
#endif
#ifdef REFLECTIVITY_UV1
vReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0));
#endif
#ifdef ALBEDO_UV1
vAlbedoUV=vec2(albedoMatrix*vec4(uvUpdated,1.0,0.0));
#endif
#endif
#ifdef UV2
#if defined(ALPHATEST) && defined(ALPHATEST_UV2)
vUV=vec2(diffuseMatrix*vec4(uv2Updated,1.0,0.0));
#else
vUV=uv2Updated;
#endif
#ifdef BUMP_UV2
vBumpUV=vec2(bumpMatrix*vec4(uv2Updated,1.0,0.0));
#endif
#ifdef REFLECTIVITY_UV2
vReflectivityUV=vec2(reflectivityMatrix*vec4(uv2Updated,1.0,0.0));
#endif
#ifdef ALBEDO_UV2
vAlbedoUV=vec2(albedoMatrix*vec4(uv2Updated,1.0,0.0));
#endif
#endif
#endif
#include<bumpVertex>
}
`;H.ShadersStore[Rae]||(H.ShadersStore[Rae]=qbe);const Qbe={name:Rae,shader:qbe},OYe=Object.freeze(Object.defineProperty({__proto__:null,geometryVertexShader:Qbe},Symbol.toStringTag,{value:"Module"})),Jbe=["world","mBones","viewProjection","diffuseMatrix","view","previousWorld","previousViewProjection","mPreviousBones","bumpMatrix","reflectivityMatrix","albedoMatrix","reflectivityColor","albedoColor","metallic","glossiness","vTangentSpaceParams","vBumpInfos","morphTargetInfluences","morphTargetCount","morphTargetTextureInfo","morphTargetTextureIndices","boneTextureWidth"];qo(Jbe);class ps{get normalsAreUnsigned(){return this._normalsAreUnsigned}_linkPrePassRenderer(e){this._linkedWithPrePass=!0,this._prePassRenderer=e,this._multiRenderTarget&&(this._multiRenderTarget.onClearObservable.clear(),this._multiRenderTarget.onClearObservable.add(()=>{}))}_unlinkPrePassRenderer(){this._linkedWithPrePass=!1,this._createRenderTargets()}_resetLayout(){this._enableDepth=!0,this._enableNormal=!0,this._enablePosition=!1,this._enableReflectivity=!1,this._enableVelocity=!1,this._enableVelocityLinear=!1,this._enableScreenspaceDepth=!1,this._attachmentsFromPrePass=[]}_forceTextureType(e,t){e===ps.POSITION_TEXTURE_TYPE?(this._positionIndex=t,this._enablePosition=!0):e===ps.VELOCITY_TEXTURE_TYPE?(this._velocityIndex=t,this._enableVelocity=!0):e===ps.VELOCITY_LINEAR_TEXTURE_TYPE?(this._velocityLinearIndex=t,this._enableVelocityLinear=!0):e===ps.REFLECTIVITY_TEXTURE_TYPE?(this._reflectivityIndex=t,this._enableReflectivity=!0):e===ps.DEPTH_TEXTURE_TYPE?(this._depthIndex=t,this._enableDepth=!0):e===ps.NORMAL_TEXTURE_TYPE?(this._normalIndex=t,this._enableNormal=!0):e===ps.SCREENSPACE_DEPTH_TEXTURE_TYPE&&(this._screenspaceDepthIndex=t,this._enableScreenspaceDepth=!0)}_setAttachments(e){this._attachmentsFromPrePass=e}_linkInternalTexture(e){this._multiRenderTarget.setInternalTexture(e,0,!1)}get renderList(){return this._multiRenderTarget.renderList}set renderList(e){this._multiRenderTarget.renderList=e}get isSupported(){return this._multiRenderTarget.isSupported}getTextureIndex(e){switch(e){case ps.POSITION_TEXTURE_TYPE:return this._positionIndex;case ps.VELOCITY_TEXTURE_TYPE:return this._velocityIndex;case ps.VELOCITY_LINEAR_TEXTURE_TYPE:return this._velocityLinearIndex;case ps.REFLECTIVITY_TEXTURE_TYPE:return this._reflectivityIndex;case ps.DEPTH_TEXTURE_TYPE:return this._depthIndex;case ps.NORMAL_TEXTURE_TYPE:return this._normalIndex;case ps.SCREENSPACE_DEPTH_TEXTURE_TYPE:return this._screenspaceDepthIndex;default:return-1}}get enableDepth(){return this._enableDepth}set enableDepth(e){this._enableDepth=e,this._linkedWithPrePass||(this.dispose(),this._createRenderTargets())}get enableNormal(){return this._enableNormal}set enableNormal(e){this._enableNormal=e,this._linkedWithPrePass||(this.dispose(),this._createRenderTargets())}get enablePosition(){return this._enablePosition}set enablePosition(e){this._enablePosition=e,this._linkedWithPrePass||(this.dispose(),this._createRenderTargets())}get enableVelocity(){return this._enableVelocity}set enableVelocity(e){this._enableVelocity=e,e||(this._previousTransformationMatrices={}),this._linkedWithPrePass||(this.dispose(),this._createRenderTargets()),this._scene.needsPreviousWorldMatrices=e}get enableVelocityLinear(){return this._enableVelocityLinear}set enableVelocityLinear(e){this._enableVelocityLinear=e,this._linkedWithPrePass||(this.dispose(),this._createRenderTargets())}get enableReflectivity(){return this._enableReflectivity}set enableReflectivity(e){this._enableReflectivity=e,this._linkedWithPrePass||(this.dispose(),this._createRenderTargets())}get enableScreenspaceDepth(){return this._enableScreenspaceDepth}set enableScreenspaceDepth(e){this._enableScreenspaceDepth=e,this._linkedWithPrePass||(this.dispose(),this._createRenderTargets())}get scene(){return this._scene}get ratio(){return typeof this._ratioOrDimensions=="object"?1:this._ratioOrDimensions}get shaderLanguage(){return this._shaderLanguage}constructor(e,t=1,i=15,s){this._previousTransformationMatrices={},this._previousBonesTransformationMatrices={},this.excludedSkinnedMeshesFromVelocity=[],this.renderTransparentMeshes=!0,this.generateNormalsInWorldSpace=!1,this._normalsAreUnsigned=!1,this._resizeObserver=null,this._enableDepth=!0,this._enableNormal=!0,this._enablePosition=!1,this._enableVelocity=!1,this._enableVelocityLinear=!1,this._enableReflectivity=!1,this._enableScreenspaceDepth=!1,this._clearColor=new St(0,0,0,0),this._clearDepthColor=new St(1e8,0,0,1),this._positionIndex=-1,this._velocityIndex=-1,this._velocityLinearIndex=-1,this._reflectivityIndex=-1,this._depthIndex=-1,this._normalIndex=-1,this._screenspaceDepthIndex=-1,this._linkedWithPrePass=!1,this.useSpecificClearForDepthTexture=!1,this._shaderLanguage=0,this._shadersLoaded=!1,this._scene=e,this._ratioOrDimensions=t,this._useUbo=e.getEngine().supportsUniformBuffers,this._depthFormat=i,this._textureTypesAndFormats=s||{},this._initShaderSourceAsync(),ps._SceneComponentInitialization(this._scene),this._createRenderTargets()}async _initShaderSourceAsync(){this._scene.getEngine().isWebGPU&&!ps.ForceGLSL?(this._shaderLanguage=1,await Promise.all([Promise.resolve().then(()=>iKe),Promise.resolve().then(()=>tKe)])):await Promise.all([Promise.resolve().then(()=>OYe),Promise.resolve().then(()=>LYe)]),this._shadersLoaded=!0}isReady(e,t){if(!this._shadersLoaded)return!1;const i=e.getMaterial();if(i&&i.disableDepthWrite)return!1;const s=[],r=[q.PositionKind,q.NormalKind],n=e.getMesh();let o=!1,l=!1;const c=!1;if(i){let d=!1;if(i.needAlphaTestingForMesh(n)&&i.getAlphaTestTexture()&&(s.push("#define ALPHATEST"),s.push(`#define ALPHATEST_UV${i.getAlphaTestTexture().coordinatesIndex+1}`),d=!0),(i.bumpTexture||i.normalTexture)&&Pt.BumpTextureEnabled){const h=i.bumpTexture||i.normalTexture;s.push("#define BUMP"),s.push(`#define BUMP_UV${h.coordinatesIndex+1}`),d=!0}if(this._enableReflectivity){let h=!1;i.getClassName()==="PBRMetallicRoughnessMaterial"?(i.metallicRoughnessTexture&&(s.push("#define ORMTEXTURE"),s.push(`#define REFLECTIVITY_UV${i.metallicRoughnessTexture.coordinatesIndex+1}`),s.push("#define METALLICWORKFLOW"),d=!0,h=!0),i.metallic!=null&&(s.push("#define METALLIC"),s.push("#define METALLICWORKFLOW"),h=!0),i.roughness!=null&&(s.push("#define ROUGHNESS"),s.push("#define METALLICWORKFLOW"),h=!0),h&&(i.baseTexture&&(s.push("#define ALBEDOTEXTURE"),s.push(`#define ALBEDO_UV${i.baseTexture.coordinatesIndex+1}`),i.baseTexture.gammaSpace&&s.push("#define GAMMAALBEDO"),d=!0),i.baseColor&&s.push("#define ALBEDOCOLOR"))):i.getClassName()==="PBRSpecularGlossinessMaterial"?(i.specularGlossinessTexture?(s.push("#define SPECULARGLOSSINESSTEXTURE"),s.push(`#define REFLECTIVITY_UV${i.specularGlossinessTexture.coordinatesIndex+1}`),d=!0,i.specularGlossinessTexture.gammaSpace&&s.push("#define GAMMAREFLECTIVITYTEXTURE")):i.specularColor&&s.push("#define REFLECTIVITYCOLOR"),i.glossiness!=null&&s.push("#define GLOSSINESS")):i.getClassName()==="PBRMaterial"?(i.metallicTexture&&(s.push("#define ORMTEXTURE"),s.push(`#define REFLECTIVITY_UV${i.metallicTexture.coordinatesIndex+1}`),s.push("#define METALLICWORKFLOW"),d=!0,h=!0),i.metallic!=null&&(s.push("#define METALLIC"),s.push("#define METALLICWORKFLOW"),h=!0),i.roughness!=null&&(s.push("#define ROUGHNESS"),s.push("#define METALLICWORKFLOW"),h=!0),h?(i.albedoTexture&&(s.push("#define ALBEDOTEXTURE"),s.push(`#define ALBEDO_UV${i.albedoTexture.coordinatesIndex+1}`),i.albedoTexture.gammaSpace&&s.push("#define GAMMAALBEDO"),d=!0),i.albedoColor&&s.push("#define ALBEDOCOLOR")):(i.reflectivityTexture?(s.push("#define SPECULARGLOSSINESSTEXTURE"),s.push(`#define REFLECTIVITY_UV${i.reflectivityTexture.coordinatesIndex+1}`),i.reflectivityTexture.gammaSpace&&s.push("#define GAMMAREFLECTIVITYTEXTURE"),d=!0):i.reflectivityColor&&s.push("#define REFLECTIVITYCOLOR"),i.microSurface!=null&&s.push("#define GLOSSINESS"))):i.getClassName()==="StandardMaterial"&&(i.specularTexture&&(s.push("#define REFLECTIVITYTEXTURE"),s.push(`#define REFLECTIVITY_UV${i.specularTexture.coordinatesIndex+1}`),i.specularTexture.gammaSpace&&s.push("#define GAMMAREFLECTIVITYTEXTURE"),d=!0),i.specularColor&&s.push("#define REFLECTIVITYCOLOR"))}d&&(s.push("#define NEED_UV"),n.isVerticesDataPresent(q.UVKind)&&(r.push(q.UVKind),s.push("#define UV1"),o=!0),n.isVerticesDataPresent(q.UV2Kind)&&(r.push(q.UV2Kind),s.push("#define UV2"),l=!0))}this._enableDepth&&(s.push("#define DEPTH"),s.push("#define DEPTH_INDEX "+this._depthIndex)),this._enableNormal&&(s.push("#define NORMAL"),s.push("#define NORMAL_INDEX "+this._normalIndex)),this._enablePosition&&(s.push("#define POSITION"),s.push("#define POSITION_INDEX "+this._positionIndex)),this._enableVelocity&&(s.push("#define VELOCITY"),s.push("#define VELOCITY_INDEX "+this._velocityIndex),this.excludedSkinnedMeshesFromVelocity.indexOf(n)===-1&&s.push("#define BONES_VELOCITY_ENABLED")),this._enableVelocityLinear&&(s.push("#define VELOCITY_LINEAR"),s.push("#define VELOCITY_LINEAR_INDEX "+this._velocityLinearIndex),this.excludedSkinnedMeshesFromVelocity.indexOf(n)===-1&&s.push("#define BONES_VELOCITY_ENABLED")),this._enableReflectivity&&(s.push("#define REFLECTIVITY"),s.push("#define REFLECTIVITY_INDEX "+this._reflectivityIndex)),this._enableScreenspaceDepth&&this._screenspaceDepthIndex!==-1&&(s.push("#define SCREENSPACE_DEPTH_INDEX "+this._screenspaceDepthIndex),s.push("#define SCREENSPACE_DEPTH")),this.generateNormalsInWorldSpace&&s.push("#define NORMAL_WORLDSPACE"),this._normalsAreUnsigned&&s.push("#define ENCODE_NORMAL"),n.useBones&&n.computeBonesUsingShaders&&n.skeleton?(r.push(q.MatricesIndicesKind),r.push(q.MatricesWeightsKind),n.numBoneInfluencers>4&&(r.push(q.MatricesIndicesExtraKind),r.push(q.MatricesWeightsExtraKind)),s.push("#define NUM_BONE_INFLUENCERS "+n.numBoneInfluencers),s.push("#define BONETEXTURE "+n.skeleton.isUsingTextureForMatrices),s.push("#define BonesPerMesh "+(n.skeleton.bones.length+1))):(s.push("#define NUM_BONE_INFLUENCERS 0"),s.push("#define BONETEXTURE false"),s.push("#define BonesPerMesh 0"));const u=n.morphTargetManager?xy(n.morphTargetManager,s,r,n,!0,!0,!1,o,l,c):0;t&&(s.push("#define INSTANCES"),Qx(r,this._enableVelocity||this._enableVelocityLinear),e.getRenderingMesh().hasThinInstances&&s.push("#define THIN_INSTANCES")),this._linkedWithPrePass?s.push("#define SCENE_MRT_COUNT "+this._attachmentsFromPrePass.length):s.push("#define SCENE_MRT_COUNT "+this._multiRenderTarget.textures.length),Cy(i,this._scene,s);const f=this._scene.getEngine(),p=e._getDrawWrapper(void 0,!0),m=p.defines,_=s.join(`
`);return m!==_&&p.setEffect(f.createEffect("geometry",{attributes:r,uniformsNames:Jbe,samplers:["diffuseSampler","bumpSampler","reflectivitySampler","albedoSampler","morphTargets","boneSampler"],defines:_,onCompiled:null,fallbacks:null,onError:null,uniformBuffersNames:["Scene"],indexParameters:{buffersCount:this._multiRenderTarget.textures.length-1,maxSimultaneousMorphTargets:u},shaderLanguage:this.shaderLanguage},f),_),p.effect.isReady()}getGBuffer(){return this._multiRenderTarget}get samples(){return this._multiRenderTarget.samples}set samples(e){this._multiRenderTarget.samples=e}dispose(){this._resizeObserver&&(this._scene.getEngine().onResizeObservable.remove(this._resizeObserver),this._resizeObserver=null),this.getGBuffer().dispose()}_assignRenderTargetIndices(){const e=[],t=[];let i=0;return this._enableDepth&&(this._depthIndex=i,i++,e.push("gBuffer_Depth"),t.push(this._textureTypesAndFormats[ps.DEPTH_TEXTURE_TYPE])),this._enableNormal&&(this._normalIndex=i,i++,e.push("gBuffer_Normal"),t.push(this._textureTypesAndFormats[ps.NORMAL_TEXTURE_TYPE])),this._enablePosition&&(this._positionIndex=i,i++,e.push("gBuffer_Position"),t.push(this._textureTypesAndFormats[ps.POSITION_TEXTURE_TYPE])),this._enableVelocity&&(this._velocityIndex=i,i++,e.push("gBuffer_Velocity"),t.push(this._textureTypesAndFormats[ps.VELOCITY_TEXTURE_TYPE])),this._enableVelocityLinear&&(this._velocityLinearIndex=i,i++,e.push("gBuffer_VelocityLinear"),t.push(this._textureTypesAndFormats[ps.VELOCITY_LINEAR_TEXTURE_TYPE])),this._enableReflectivity&&(this._reflectivityIndex=i,i++,e.push("gBuffer_Reflectivity"),t.push(this._textureTypesAndFormats[ps.REFLECTIVITY_TEXTURE_TYPE])),this._enableScreenspaceDepth&&(this._screenspaceDepthIndex=i,i++,e.push("gBuffer_ScreenspaceDepth"),t.push(this._textureTypesAndFormats[ps.SCREENSPACE_DEPTH_TEXTURE_TYPE])),[i,e,t]}_createRenderTargets(){const e=this._scene.getEngine(),[t,i,s]=this._assignRenderTargetIndices();let r=0;e._caps.textureFloat&&e._caps.textureFloatLinearFiltering?r=1:e._caps.textureHalfFloat&&e._caps.textureHalfFloatLinearFiltering&&(r=2);const n=this._ratioOrDimensions.width!==void 0?this._ratioOrDimensions:{width:e.getRenderWidth()*this._ratioOrDimensions,height:e.getRenderHeight()*this._ratioOrDimensions},o=[],l=[];for(const h of s)h?(o.push(h.textureType),l.push(h.textureFormat)):(o.push(r),l.push(5));if(this._normalsAreUnsigned=o[ps.NORMAL_TEXTURE_TYPE]===11||o[ps.NORMAL_TEXTURE_TYPE]===13,this._multiRenderTarget=new Cb("gBuffer",n,t,this._scene,{generateMipMaps:!1,generateDepthTexture:!0,types:o,formats:l,depthTextureFormat:this._depthFormat},i.concat("gBuffer_DepthBuffer")),!this.isSupported)return;this._multiRenderTarget.wrapU=be.CLAMP_ADDRESSMODE,this._multiRenderTarget.wrapV=be.CLAMP_ADDRESSMODE,this._multiRenderTarget.refreshRate=1,this._multiRenderTarget.renderParticles=!1,this._multiRenderTarget.renderList=null;const c=[!0],u=[!1],f=[!0];for(let h=1;h<t;++h)c.push(!0),f.push(!1),u.push(!0);const p=e.buildTextureLayout(c),m=e.buildTextureLayout(u),_=e.buildTextureLayout(f);this._multiRenderTarget.onClearObservable.add(h=>{h.bindAttachments(this.useSpecificClearForDepthTexture?m:p),h.clear(this._clearColor,!0,!0,!0),this.useSpecificClearForDepthTexture&&(h.bindAttachments(_),h.clear(this._clearDepthColor,!0,!0,!0)),h.bindAttachments(p)}),this._resizeObserver=e.onResizeObservable.add(()=>{if(this._multiRenderTarget){const h=this._ratioOrDimensions.width!==void 0?this._ratioOrDimensions:{width:e.getRenderWidth()*this._ratioOrDimensions,height:e.getRenderHeight()*this._ratioOrDimensions};this._multiRenderTarget.resize(h)}});const d=h=>{const x=h.getRenderingMesh(),A=h.getEffectiveMesh(),S=this._scene,E=S.getEngine(),b=h.getMaterial();if(!b)return;if(A._internalAbstractMeshDataInfo._isActiveIntermediate=!1,(this._enableVelocity||this._enableVelocityLinear)&&!this._previousTransformationMatrices[A.uniqueId]&&(this._previousTransformationMatrices[A.uniqueId]={world:me.Identity(),viewProjection:S.getTransformMatrix()},x.skeleton)){const R=x.skeleton.getTransformMatrices(x);this._previousBonesTransformationMatrices[x.uniqueId]=this._copyBonesTransformationMatrices(R,new Float32Array(R.length))}const M=x._getInstancesRenderList(h._id,!!h.getReplacementMesh());if(M.mustReturn)return;const T=E.getCaps().instancedArrays&&(M.visibleInstances[h._id]!==null||x.hasThinInstances),O=A.getWorldMatrix();if(this.isReady(h,T)){const R=h._getDrawWrapper();if(!R)return;const I=R.effect;E.enableEffect(R),T||x._bind(h,I,b.fillMode),this._useUbo?(AP(I,this._scene.getSceneUniformBuffer()),this._scene.finalizeSceneUbo()):(I.setMatrix("viewProjection",S.getTransformMatrix()),I.setMatrix("view",S.getViewMatrix()));let N;const w=x._instanceDataStorage;if(!w.isFrozen&&(b.backFaceCulling||b.sideOrientation!==null)){const D=A._getWorldMatrixDeterminant();N=b._getEffectiveOrientation(x),D<0&&(N=N===ft.ClockWiseSideOrientation?ft.CounterClockWiseSideOrientation:ft.ClockWiseSideOrientation)}else N=w.sideOrientation;if(b._preBind(R,N),b.needAlphaTestingForMesh(A)){const D=b.getAlphaTestTexture();D&&(I.setTexture("diffuseSampler",D),I.setMatrix("diffuseMatrix",D.getTextureMatrix()))}if((b.bumpTexture||b.normalTexture)&&S.getEngine().getCaps().standardDerivatives&&Pt.BumpTextureEnabled){const D=b.bumpTexture||b.normalTexture;I.setFloat3("vBumpInfos",D.coordinatesIndex,1/D.level,b.parallaxScaleBias),I.setMatrix("bumpMatrix",D.getTextureMatrix()),I.setTexture("bumpSampler",D),I.setFloat2("vTangentSpaceParams",b.invertNormalMapX?-1:1,b.invertNormalMapY?-1:1)}if(this._enableReflectivity&&(b.getClassName()==="PBRMetallicRoughnessMaterial"?(b.metallicRoughnessTexture!==null&&(I.setTexture("reflectivitySampler",b.metallicRoughnessTexture),I.setMatrix("reflectivityMatrix",b.metallicRoughnessTexture.getTextureMatrix())),b.metallic!==null&&I.setFloat("metallic",b.metallic),b.roughness!==null&&I.setFloat("glossiness",1-b.roughness),b.baseTexture!==null&&(I.setTexture("albedoSampler",b.baseTexture),I.setMatrix("albedoMatrix",b.baseTexture.getTextureMatrix())),b.baseColor!==null&&I.setColor3("albedoColor",b.baseColor)):b.getClassName()==="PBRSpecularGlossinessMaterial"?(b.specularGlossinessTexture!==null?(I.setTexture("reflectivitySampler",b.specularGlossinessTexture),I.setMatrix("reflectivityMatrix",b.specularGlossinessTexture.getTextureMatrix())):b.specularColor!==null&&I.setColor3("reflectivityColor",b.specularColor),b.glossiness!==null&&I.setFloat("glossiness",b.glossiness)):b.getClassName()==="PBRMaterial"?(b.metallicTexture!==null&&(I.setTexture("reflectivitySampler",b.metallicTexture),I.setMatrix("reflectivityMatrix",b.metallicTexture.getTextureMatrix())),b.metallic!==null&&I.setFloat("metallic",b.metallic),b.roughness!==null&&I.setFloat("glossiness",1-b.roughness),b.roughness!==null||b.metallic!==null||b.metallicTexture!==null?(b.albedoTexture!==null&&(I.setTexture("albedoSampler",b.albedoTexture),I.setMatrix("albedoMatrix",b.albedoTexture.getTextureMatrix())),b.albedoColor!==null&&I.setColor3("albedoColor",b.albedoColor)):(b.reflectivityTexture!==null?(I.setTexture("reflectivitySampler",b.reflectivityTexture),I.setMatrix("reflectivityMatrix",b.reflectivityTexture.getTextureMatrix())):b.reflectivityColor!==null&&I.setColor3("reflectivityColor",b.reflectivityColor),b.microSurface!==null&&I.setFloat("glossiness",b.microSurface))):b.getClassName()==="StandardMaterial"&&(b.specularTexture!==null&&(I.setTexture("reflectivitySampler",b.specularTexture),I.setMatrix("reflectivityMatrix",b.specularTexture.getTextureMatrix())),b.specularColor!==null&&I.setColor3("reflectivityColor",b.specularColor))),Bo(I,b,this._scene),x.useBones&&x.computeBonesUsingShaders&&x.skeleton){const D=x.skeleton;if(D.isUsingTextureForMatrices&&I.getUniformIndex("boneTextureWidth")>-1){const k=D.getTransformMatrixTexture(x);I.setTexture("boneSampler",k),I.setFloat("boneTextureWidth",4*(D.bones.length+1))}else I.setMatrices("mBones",x.skeleton.getTransformMatrices(x));(this._enableVelocity||this._enableVelocityLinear)&&I.setMatrices("mPreviousBones",this._previousBonesTransformationMatrices[x.uniqueId])}s3(x,I),x.morphTargetManager&&x.morphTargetManager.isUsingTextureForTargets&&x.morphTargetManager._bind(I),(this._enableVelocity||this._enableVelocityLinear)&&(I.setMatrix("previousWorld",this._previousTransformationMatrices[A.uniqueId].world),I.setMatrix("previousViewProjection",this._previousTransformationMatrices[A.uniqueId].viewProjection)),T&&x.hasThinInstances&&I.setMatrix("world",O),x._processRendering(A,h,I,b.fillMode,M,T,(D,k)=>{D||I.setMatrix("world",k)})}(this._enableVelocity||this._enableVelocityLinear)&&(this._previousTransformationMatrices[A.uniqueId].world=O.clone(),this._previousTransformationMatrices[A.uniqueId].viewProjection=this._scene.getTransformMatrix().clone(),x.skeleton&&this._copyBonesTransformationMatrices(x.skeleton.getTransformMatrices(x),this._previousBonesTransformationMatrices[A.uniqueId]))};this._multiRenderTarget.customIsReadyFunction=(h,x,A)=>{if((A||x===0)&&h.subMeshes)for(let S=0;S<h.subMeshes.length;++S){const E=h.subMeshes[S],b=E.getMaterial(),M=E.getRenderingMesh();if(!b)continue;const T=M._getInstancesRenderList(E._id,!!E.getReplacementMesh()),O=e.getCaps().instancedArrays&&(T.visibleInstances[E._id]!==null||M.hasThinInstances);if(!this.isReady(E,O))return!1}return!0},this._multiRenderTarget.customRenderFunction=(h,x,A,S)=>{let E;if(this._linkedWithPrePass){if(!this._prePassRenderer.enabled)return;this._scene.getEngine().bindAttachments(this._attachmentsFromPrePass)}if(S.length){for(e.setColorWrite(!1),E=0;E<S.length;E++)d(S.data[E]);e.setColorWrite(!0)}for(E=0;E<h.length;E++)d(h.data[E]);for(e.setDepthWrite(!1),E=0;E<x.length;E++)d(x.data[E]);if(this.renderTransparentMeshes)for(E=0;E<A.length;E++)d(A.data[E]);e.setDepthWrite(!0)}}_copyBonesTransformationMatrices(e,t){for(let i=0;i<e.length;i++)t[i]=e[i];return t}}ps.ForceGLSL=!1,ps.DEPTH_TEXTURE_TYPE=0,ps.NORMAL_TEXTURE_TYPE=1,ps.POSITION_TEXTURE_TYPE=2,ps.VELOCITY_TEXTURE_TYPE=3,ps.REFLECTIVITY_TEXTURE_TYPE=4,ps.SCREENSPACE_DEPTH_TEXTURE_TYPE=5,ps.VELOCITY_LINEAR_TEXTURE_TYPE=6,ps._SceneComponentInitialization=a=>{throw as("GeometryBufferRendererSceneComponent")};class RYe{constructor(){this.enabled=!1,this.name="motionBlur",this.texturesRequired=[2]}}Object.defineProperty(ui.prototype,"geometryBufferRenderer",{get:function(){return this._geometryBufferRenderer},set:function(a){a&&a.isSupported&&(this._geometryBufferRenderer=a)},enumerable:!0,configurable:!0}),ui.prototype.enableGeometryBufferRenderer=function(a=1,e=15,t){return this._geometryBufferRenderer?this._geometryBufferRenderer:(this._geometryBufferRenderer=new ps(this,a,e,t),this._geometryBufferRenderer.isSupported||(this._geometryBufferRenderer=null),this._geometryBufferRenderer)},ui.prototype.disableGeometryBufferRenderer=function(){this._geometryBufferRenderer&&(this._geometryBufferRenderer.dispose(),this._geometryBufferRenderer=null)};class $be{constructor(e){this.name=jt.NAME_GEOMETRYBUFFERRENDERER,this.scene=e}register(){this.scene._gatherRenderTargetsStage.registerStep(jt.STEP_GATHERRENDERTARGETS_GEOMETRYBUFFERRENDERER,this,this._gatherRenderTargets)}rebuild(){}dispose(){}_gatherRenderTargets(e){this.scene._geometryBufferRenderer&&e.push(this.scene._geometryBufferRenderer.getGBuffer())}}ps._SceneComponentInitialization=a=>{let e=a._getComponent(jt.NAME_GEOMETRYBUFFERRENDERER);e||(e=new $be(a),a._addComponent(e))};class g9 extends Mi{get motionBlurSamples(){return this._motionBlurSamples}set motionBlurSamples(e){this._motionBlurSamples=e,this._updateEffect()}get isObjectBased(){return this._isObjectBased}set isObjectBased(e){this._isObjectBased!==e&&(this._isObjectBased=e,this._applyMode())}get _geometryBufferRenderer(){return this._forceGeometryBuffer?this._scene.geometryBufferRenderer:null}get _prePassRenderer(){return this._forceGeometryBuffer?null:this._scene.prePassRenderer}getClassName(){return"MotionBlurPostProcess"}constructor(e,t,i,s,r,n,o,l=0,c=!1,u=!1){super(e,"motionBlur",["motionStrength","motionScale","screenSize","inverseViewProjection","prevViewProjection","projection"],["velocitySampler","depthSampler"],i,s,r,n,o,`#define GEOMETRY_SUPPORTED
#define SAMPLES 64.0
#define OBJECT_BASED`,l,void 0,null,c),this.motionStrength=1,this._motionBlurSamples=32,this._isObjectBased=!0,this._forceGeometryBuffer=!1,this._invViewProjection=null,this._previousViewProjection=null,this._forceGeometryBuffer=u,this._forceGeometryBuffer?(t.enableGeometryBufferRenderer(),this._geometryBufferRenderer&&(this._geometryBufferRenderer.enableVelocity=this._isObjectBased)):(t.enablePrePassRenderer(),this._prePassRenderer&&(this._prePassRenderer.markAsDirty(),this._prePassEffectConfiguration=new RYe)),this._applyMode()}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>QXe)]))):t.push(Promise.all([Promise.resolve().then(()=>qXe)])),super._gatherImports(e,t)}excludeSkinnedMesh(e){if(e.skeleton){let t;if(this._geometryBufferRenderer)t=this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity;else if(this._prePassRenderer)t=this._prePassRenderer.excludedSkinnedMesh;else return;t.push(e)}}removeExcludedSkinnedMesh(e){if(e.skeleton){let t;if(this._geometryBufferRenderer)t=this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity;else if(this._prePassRenderer)t=this._prePassRenderer.excludedSkinnedMesh;else return;const i=t.indexOf(e);i!==-1&&t.splice(i,1)}}dispose(e){this._geometryBufferRenderer&&(this._geometryBufferRenderer._previousTransformationMatrices={},this._geometryBufferRenderer._previousBonesTransformationMatrices={},this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity=[]),super.dispose(e)}_applyMode(){if(!this._geometryBufferRenderer&&!this._prePassRenderer)return de.Warn("Multiple Render Target support needed to compute object based motion blur"),this.updateEffect();this._geometryBufferRenderer&&(this._geometryBufferRenderer.enableVelocity=this._isObjectBased),this._updateEffect(),this._invViewProjection=null,this._previousViewProjection=null,this.isObjectBased?(this._prePassRenderer&&this._prePassEffectConfiguration&&(this._prePassEffectConfiguration.texturesRequired[0]=2),this.onApply=e=>this._onApplyObjectBased(e)):(this._invViewProjection=me.Identity(),this._previousViewProjection=this._scene.getTransformMatrix().clone(),this._prePassRenderer&&this._prePassEffectConfiguration&&(this._prePassEffectConfiguration.texturesRequired[0]=5),this.onApply=e=>this._onApplyScreenBased(e))}_onApplyObjectBased(e){if(e.setVector2("screenSize",new Ue(this.width,this.height)),e.setFloat("motionScale",this._scene.getAnimationRatio()),e.setFloat("motionStrength",this.motionStrength),this._geometryBufferRenderer){const t=this._geometryBufferRenderer.getTextureIndex(ps.VELOCITY_TEXTURE_TYPE);e.setTexture("velocitySampler",this._geometryBufferRenderer.getGBuffer().textures[t])}else if(this._prePassRenderer){const t=this._prePassRenderer.getIndex(2);e.setTexture("velocitySampler",this._prePassRenderer.getRenderTarget().textures[t])}}_onApplyScreenBased(e){const t=ae.Matrix[0];if(t.copyFrom(this._scene.getTransformMatrix()),t.invertToRef(this._invViewProjection),e.setMatrix("inverseViewProjection",this._invViewProjection),e.setMatrix("prevViewProjection",this._previousViewProjection),this._previousViewProjection.copyFrom(t),e.setMatrix("projection",this._scene.getProjectionMatrix()),e.setVector2("screenSize",new Ue(this.width,this.height)),e.setFloat("motionScale",this._scene.getAnimationRatio()),e.setFloat("motionStrength",this.motionStrength),this._geometryBufferRenderer){const i=this._geometryBufferRenderer.getTextureIndex(ps.DEPTH_TEXTURE_TYPE);e.setTexture("depthSampler",this._geometryBufferRenderer.getGBuffer().textures[i])}else if(this._prePassRenderer){const i=this._prePassRenderer.getIndex(5);e.setTexture("depthSampler",this._prePassRenderer.getRenderTarget().textures[i])}}_updateEffect(){if(this._geometryBufferRenderer||this._prePassRenderer){const e=["#define GEOMETRY_SUPPORTED","#define SAMPLES "+this._motionBlurSamples.toFixed(1),this._isObjectBased?"#define OBJECT_BASED":"#define SCREEN_BASED"];this.updateEffect(e.join(`
`))}}static _Parse(e,t,i,s){return It.Parse(()=>new g9(e.name,i,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.reusable,e.textureType,!1),e,i,s)}}F([G()],g9.prototype,"motionStrength",void 0),F([G()],g9.prototype,"motionBlurSamples",null),F([G()],g9.prototype,"isObjectBased",null),ve("BABYLON.MotionBlurPostProcess",g9);const e7e="refractionPixelShader",DYe="varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D refractionSampler;uniform vec3 baseColor;uniform float depth;uniform float colorLevel;void main() {float ref=1.0-texture2D(refractionSampler,vUV).r;vec2 uv=vUV-vec2(0.5);vec2 offset=uv*depth*ref;vec3 sourceColor=texture2D(textureSampler,vUV-offset).rgb;gl_FragColor=vec4(sourceColor+sourceColor*ref*colorLevel,1.0);}";H.ShadersStore[e7e]||(H.ShadersStore[e7e]=DYe);class _9 extends Mi{get refractionTexture(){return this._refTexture}set refractionTexture(e){this._refTexture&&this._ownRefractionTexture&&this._refTexture.dispose(),this._refTexture=e,this._ownRefractionTexture=!1}getClassName(){return"RefractionPostProcess"}constructor(e,t,i,s,r,n,o,l,c,u){super(e,"refraction",["baseColor","depth","colorLevel"],["refractionSampler"],n,o,l,c,u),this._ownRefractionTexture=!0,this.color=i,this.depth=s,this.colorLevel=r,this.refractionTextureUrl=t,this.onActivateObservable.add(f=>{this._refTexture=this._refTexture||new be(t,f.getScene())}),this.onApplyObservable.add(f=>{f.setColor3("baseColor",this.color),f.setFloat("depth",this.depth),f.setFloat("colorLevel",this.colorLevel),f.setTexture("refractionSampler",this._refTexture)})}dispose(e){this._refTexture&&this._ownRefractionTexture&&(this._refTexture.dispose(),this._refTexture=null),super.dispose(e)}static _Parse(e,t,i,s){return It.Parse(()=>new _9(e.name,e.refractionTextureUrl,e.color,e.depth,e.colorLevel,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.reusable),e,i,s)}}F([G()],_9.prototype,"color",void 0),F([G()],_9.prototype,"depth",void 0),F([G()],_9.prototype,"colorLevel",void 0),F([G()],_9.prototype,"refractionTextureUrl",void 0),ve("BABYLON.RefractionPostProcess",_9);const Dae="sharpenPixelShader",t7e=`varying vec2 vUV;uniform sampler2D textureSampler;uniform vec2 screenSize;uniform vec2 sharpnessAmounts;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{vec2 onePixel=vec2(1.0,1.0)/screenSize;vec4 color=texture2D(textureSampler,vUV);vec4 edgeDetection=texture2D(textureSampler,vUV+onePixel*vec2(0,-1)) +
texture2D(textureSampler,vUV+onePixel*vec2(-1,0)) +
texture2D(textureSampler,vUV+onePixel*vec2(1,0)) +
texture2D(textureSampler,vUV+onePixel*vec2(0,1)) -
color*4.0;gl_FragColor=max(vec4(color.rgb*sharpnessAmounts.y,color.a)-(sharpnessAmounts.x*vec4(edgeDetection.rgb,0)),0.);}`;H.ShadersStore[Dae]||(H.ShadersStore[Dae]=t7e);const i7e={name:Dae,shader:t7e},NYe=Object.freeze(Object.defineProperty({__proto__:null,sharpenPixelShader:i7e},Symbol.toStringTag,{value:"Module"}));class qL extends Mi{getClassName(){return"SharpenPostProcess"}constructor(e,t,i,s,r,n,o=0,l=!1){super(e,"sharpen",["sharpnessAmounts","screenSize"],null,t,i,s,r,n,null,o,void 0,null,l),this.colorAmount=1,this.edgeAmount=.3,this.onApply=c=>{c.setFloat2("screenSize",this.width,this.height),c.setFloat2("sharpnessAmounts",this.edgeAmount,this.colorAmount)}}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>EXe)]))):t.push(Promise.all([Promise.resolve().then(()=>NYe)])),super._gatherImports(e,t)}static _Parse(e,t,i,s){return It.Parse(()=>new qL(e.name,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.textureType,e.reusable),e,i,s)}}F([G()],qL.prototype,"colorAmount",void 0),F([G()],qL.prototype,"edgeAmount",void 0),ve("BABYLON.SharpenPostProcess",qL);class Eb{get name(){return this._name}get cameras(){return this._cameras}get engine(){return this._engine}constructor(e,t){this._engine=e,this._name=t,this._renderEffects={},this._renderEffectsForIsolatedPass=new Array,this._cameras=[]}getClassName(){return"PostProcessRenderPipeline"}get isSupported(){for(const e in this._renderEffects)if(Object.prototype.hasOwnProperty.call(this._renderEffects,e)&&!this._renderEffects[e].isSupported)return!1;return!0}addEffect(e){this._renderEffects[e._name]=e}_rebuild(){}_enableEffect(e,t){const i=this._renderEffects[e];i&&i._enable(Le.MakeArray(t||this._cameras))}_disableEffect(e,t){const i=this._renderEffects[e];i&&i._disable(Le.MakeArray(t||this._cameras))}_attachCameras(e,t){const i=Le.MakeArray(e||this._cameras);if(!i)return;const s=[];let r;for(r=0;r<i.length;r++){const n=i[r];n&&(this._cameras.indexOf(n)===-1?this._cameras.push(n):t&&s.push(r))}for(r=0;r<s.length;r++)i.splice(s[r],1);for(const n in this._renderEffects)Object.prototype.hasOwnProperty.call(this._renderEffects,n)&&this._renderEffects[n]._attachCameras(i)}_detachCameras(e){const t=Le.MakeArray(e||this._cameras);if(t){for(const i in this._renderEffects)Object.prototype.hasOwnProperty.call(this._renderEffects,i)&&this._renderEffects[i]._detachCameras(t);for(let i=0;i<t.length;i++)this._cameras.splice(this._cameras.indexOf(t[i]),1)}}_update(){for(const e in this._renderEffects)Object.prototype.hasOwnProperty.call(this._renderEffects,e)&&this._renderEffects[e]._update();for(let e=0;e<this._cameras.length;e++){if(!this._cameras[e])continue;const t=this._cameras[e].name;this._renderEffectsForIsolatedPass[t]&&this._renderEffectsForIsolatedPass[t]._update()}}_reset(){this._renderEffects={},this._renderEffectsForIsolatedPass=new Array}_enableMSAAOnFirstPostProcess(e){if(!this._engine._features.supportMSAA)return!1;const t=Object.keys(this._renderEffects);if(t.length>0){const i=this._renderEffects[t[0]].getPostProcesses();i&&(i[0].samples=e)}return!0}_adaptPostProcessesToViewPort(){const e=Object.keys(this._renderEffects);for(const t of e){const i=this._renderEffects[t].getPostProcesses();if(i)for(const s of i)s.adaptScaleToCurrentViewport=!0}}setPrePassRenderer(e){return!1}dispose(){}}F([G()],Eb.prototype,"_name",void 0);class s7e{constructor(){this._renderPipelines={}}get supportedPipelines(){const e=[];for(const t in this._renderPipelines)if(Object.prototype.hasOwnProperty.call(this._renderPipelines,t)){const i=this._renderPipelines[t];i.isSupported&&e.push(i)}return e}addPipeline(e){this._renderPipelines[e._name]=e}removePipeline(e){delete this._renderPipelines[e]}attachCamerasToRenderPipeline(e,t,i=!1){const s=this._renderPipelines[e];s&&s._attachCameras(t,i)}detachCamerasFromRenderPipeline(e,t){const i=this._renderPipelines[e];i&&i._detachCameras(t)}enableEffectInPipeline(e,t,i){const s=this._renderPipelines[e];s&&s._enableEffect(t,i)}disableEffectInPipeline(e,t,i){const s=this._renderPipelines[e];s&&s._disableEffect(t,i)}update(){for(const e in this._renderPipelines)if(Object.prototype.hasOwnProperty.call(this._renderPipelines,e)){const t=this._renderPipelines[e];t.isSupported?t._update():(t.dispose(),delete this._renderPipelines[e])}}_rebuild(){for(const e in this._renderPipelines)Object.prototype.hasOwnProperty.call(this._renderPipelines,e)&&this._renderPipelines[e]._rebuild()}dispose(){for(const e in this._renderPipelines)Object.prototype.hasOwnProperty.call(this._renderPipelines,e)&&this._renderPipelines[e].dispose()}}Object.defineProperty(ui.prototype,"postProcessRenderPipelineManager",{get:function(){if(!this._postProcessRenderPipelineManager){let a=this._getComponent(jt.NAME_POSTPROCESSRENDERPIPELINEMANAGER);a||(a=new r7e(this),this._addComponent(a)),this._postProcessRenderPipelineManager=new s7e}return this._postProcessRenderPipelineManager},enumerable:!0,configurable:!0});class r7e{constructor(e){this.name=jt.NAME_POSTPROCESSRENDERPIPELINEMANAGER,this.scene=e}register(){this.scene._gatherRenderTargetsStage.registerStep(jt.STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER,this,this._gatherRenderTargets)}rebuild(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager._rebuild()}dispose(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager.dispose()}_gatherRenderTargets(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager.update()}}class Yu extends Eb{get automaticBuild(){return this._buildAllowed}set automaticBuild(e){this._buildAllowed=e}get scene(){return this._scene}set sharpenEnabled(e){this._sharpenEnabled!==e&&(this._sharpenEnabled=e,this._buildPipeline())}get sharpenEnabled(){return this._sharpenEnabled}get bloomKernel(){return this._bloomKernel}set bloomKernel(e){this._bloomKernel=e,this.bloom.kernel=e/this._hardwareScaleLevel}set bloomWeight(e){this._bloomWeight!==e&&(this.bloom.weight=e,this._bloomWeight=e)}get bloomWeight(){return this._bloomWeight}set bloomThreshold(e){this._bloomThreshold!==e&&(this.bloom.threshold=e,this._bloomThreshold=e)}get bloomThreshold(){return this._bloomThreshold}set bloomScale(e){this._bloomScale!==e&&(this._bloomScale=e,this._rebuildBloom(),this._buildPipeline())}get bloomScale(){return this._bloomScale}set bloomEnabled(e){this._bloomEnabled!==e&&(this._bloomEnabled=e,this._buildPipeline())}get bloomEnabled(){return this._bloomEnabled}_rebuildBloom(){const e=this.bloom;this.bloom=new Lae(this._scene,this.bloomScale,this._bloomWeight,this.bloomKernel/this._hardwareScaleLevel,this._defaultPipelineTextureType,!1),this.bloom.threshold=e.threshold;for(let t=0;t<this._cameras.length;t++)e.disposeEffects(this._cameras[t])}get depthOfFieldEnabled(){return this._depthOfFieldEnabled}set depthOfFieldEnabled(e){this._depthOfFieldEnabled!==e&&(this._depthOfFieldEnabled=e,this._buildPipeline())}get depthOfFieldBlurLevel(){return this._depthOfFieldBlurLevel}set depthOfFieldBlurLevel(e){if(this._depthOfFieldBlurLevel===e)return;this._depthOfFieldBlurLevel=e;const t=this.depthOfField;this.depthOfField=new Pae(this._scene,null,this._depthOfFieldBlurLevel,this._defaultPipelineTextureType,!1),this.depthOfField.focalLength=t.focalLength,this.depthOfField.focusDistance=t.focusDistance,this.depthOfField.fStop=t.fStop,this.depthOfField.lensSize=t.lensSize;for(let i=0;i<this._cameras.length;i++)t.disposeEffects(this._cameras[i]);this._buildPipeline()}set fxaaEnabled(e){this._fxaaEnabled!==e&&(this._fxaaEnabled=e,this._buildPipeline())}get fxaaEnabled(){return this._fxaaEnabled}set samples(e){this._samples!==e&&(this._samples=e,this._buildPipeline())}get samples(){return this._samples}set imageProcessingEnabled(e){this._imageProcessingEnabled!==e&&(this._scene.imageProcessingConfiguration.isEnabled=e)}get imageProcessingEnabled(){return this._imageProcessingEnabled}set glowLayerEnabled(e){e&&!this._glowLayer?this._glowLayer=new P4("",this._scene):!e&&this._glowLayer&&(this._glowLayer.dispose(),this._glowLayer=null)}get glowLayerEnabled(){return this._glowLayer!=null}get glowLayer(){return this._glowLayer}set chromaticAberrationEnabled(e){this._chromaticAberrationEnabled!==e&&(this._chromaticAberrationEnabled=e,this._buildPipeline())}get chromaticAberrationEnabled(){return this._chromaticAberrationEnabled}set grainEnabled(e){this._grainEnabled!==e&&(this._grainEnabled=e,this._buildPipeline())}get grainEnabled(){return this._grainEnabled}constructor(e="",t=!0,i=ei.LastCreatedScene,s,r=!0){super(i.getEngine(),e),this._camerasToBeAttached=[],this.SharpenPostProcessId="SharpenPostProcessEffect",this.ImageProcessingPostProcessId="ImageProcessingPostProcessEffect",this.FxaaPostProcessId="FxaaPostProcessEffect",this.ChromaticAberrationPostProcessId="ChromaticAberrationPostProcessEffect",this.GrainPostProcessId="GrainPostProcessEffect",this._glowLayer=null,this.animations=[],this._imageProcessingConfigurationObserver=null,this._sharpenEnabled=!1,this._bloomEnabled=!1,this._depthOfFieldEnabled=!1,this._depthOfFieldBlurLevel=0,this._fxaaEnabled=!1,this._imageProcessingEnabled=!0,this._bloomScale=.5,this._chromaticAberrationEnabled=!1,this._grainEnabled=!1,this._buildAllowed=!0,this.onBuildObservable=new xe,this._resizeObserver=null,this._hardwareScaleLevel=1,this._bloomKernel=64,this._bloomWeight=.15,this._bloomThreshold=.9,this._samples=1,this._hasCleared=!1,this._prevPostProcess=null,this._prevPrevPostProcess=null,this._depthOfFieldSceneObserver=null,this._activeCameraChangedObserver=null,this._activeCamerasChangedObserver=null,this._cameras=s||i.cameras,this._cameras=this._cameras.slice(),this._camerasToBeAttached=this._cameras.slice(),this._buildAllowed=r,this._scene=i;const n=this._scene.getEngine().getCaps();this._hdr=t&&(n.textureHalfFloatRender||n.textureFloatRender),this._hdr?n.textureHalfFloatRender?this._defaultPipelineTextureType=2:n.textureFloatRender&&(this._defaultPipelineTextureType=1):this._defaultPipelineTextureType=0,i.postProcessRenderPipelineManager.addPipeline(this);const o=this._scene.getEngine();this.sharpen=new qL("sharpen",1,null,be.BILINEAR_SAMPLINGMODE,o,!1,this._defaultPipelineTextureType,!0),this._sharpenEffect=new Mr(o,this.SharpenPostProcessId,()=>this.sharpen,!0),this.depthOfField=new Pae(this._scene,null,this._depthOfFieldBlurLevel,this._defaultPipelineTextureType,!0),this._hardwareScaleLevel=o.getHardwareScalingLevel(),this._resizeObserver=o.onResizeObservable.add(()=>{this._hardwareScaleLevel=o.getHardwareScalingLevel(),this.bloomKernel=this._bloomKernel}),this.bloom=new Lae(this._scene,this._bloomScale,this._bloomWeight,this.bloomKernel/this._hardwareScaleLevel,this._defaultPipelineTextureType,!0),this.chromaticAberration=new v5("ChromaticAberration",o.getRenderWidth(),o.getRenderHeight(),1,null,be.BILINEAR_SAMPLINGMODE,o,!1,this._defaultPipelineTextureType,!0),this._chromaticAberrationEffect=new Mr(o,this.ChromaticAberrationPostProcessId,()=>this.chromaticAberration,!0),this.grain=new KL("Grain",1,null,be.BILINEAR_SAMPLINGMODE,o,!1,this._defaultPipelineTextureType,!0),this._grainEffect=new Mr(o,this.GrainPostProcessId,()=>this.grain,!0);let l=!0;this._imageProcessingConfigurationObserver=this._scene.imageProcessingConfiguration.onUpdateParameters.add(()=>{this.bloom._downscale._exposure=this._scene.imageProcessingConfiguration.exposure,this.imageProcessingEnabled!==this._scene.imageProcessingConfiguration.isEnabled&&(this._imageProcessingEnabled=this._scene.imageProcessingConfiguration.isEnabled,l?Le.SetImmediate(()=>{this._buildPipeline()}):this._buildPipeline())}),this._buildPipeline(),l=!1}getClassName(){return"DefaultRenderingPipeline"}prepare(){const e=this._buildAllowed;this._buildAllowed=!0,this._buildPipeline(),this._buildAllowed=e}_setAutoClearAndTextureSharing(e,t=!1){this._hasCleared?e.autoClear=!1:(e.autoClear=!0,this._scene.autoClear=!1,this._hasCleared=!0),t||(this._prevPrevPostProcess?e.shareOutputWith(this._prevPrevPostProcess):e.useOwnOutput(),this._prevPostProcess&&(this._prevPrevPostProcess=this._prevPostProcess),this._prevPostProcess=e)}_buildPipeline(){if(!this._buildAllowed)return;this._scene.autoClear=!0;const e=this._scene.getEngine();if(this._disposePostProcesses(),this._cameras!==null&&(this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._cameras=this._camerasToBeAttached.slice()),this._reset(),this._prevPostProcess=null,this._prevPrevPostProcess=null,this._hasCleared=!1,this.depthOfFieldEnabled){if(this._cameras.length>1){for(const t of this._cameras){const i=this._scene.enableDepthRenderer(t);i.useOnlyInActiveCamera=!0}this._depthOfFieldSceneObserver=this._scene.onAfterRenderTargetsRenderObservable.add(t=>{this._cameras.indexOf(t.activeCamera)>-1&&(this.depthOfField.depthTexture=t.enableDepthRenderer(t.activeCamera).getDepthMap())})}else{this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);const t=this._scene.enableDepthRenderer(this._cameras[0]);this.depthOfField.depthTexture=t.getDepthMap()}this.depthOfField._isReady()||this.depthOfField._updateEffects(),this.addEffect(this.depthOfField),this._setAutoClearAndTextureSharing(this.depthOfField._effects[0],!0)}else this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);this.bloomEnabled&&(this.bloom._isReady()||this.bloom._updateEffects(),this.addEffect(this.bloom),this._setAutoClearAndTextureSharing(this.bloom._effects[0],!0)),this._imageProcessingEnabled&&(this.imageProcessing=new DY("imageProcessing",1,null,be.BILINEAR_SAMPLINGMODE,e,!1,this._defaultPipelineTextureType,this.scene.imageProcessingConfiguration),this._hdr?(this.addEffect(new Mr(e,this.ImageProcessingPostProcessId,()=>this.imageProcessing,!0)),this._setAutoClearAndTextureSharing(this.imageProcessing)):this._scene.imageProcessingConfiguration.applyByPostProcess=!1,(!this._cameras||this._cameras.length===0)&&(this._scene.imageProcessingConfiguration.applyByPostProcess=!1),this.imageProcessing.getEffect()||this.imageProcessing._updateParameters()),this.sharpenEnabled&&(this.sharpen.isReady()||this.sharpen.updateEffect(),this.addEffect(this._sharpenEffect),this._setAutoClearAndTextureSharing(this.sharpen)),this.grainEnabled&&(this.grain.isReady()||this.grain.updateEffect(),this.addEffect(this._grainEffect),this._setAutoClearAndTextureSharing(this.grain)),this.chromaticAberrationEnabled&&(this.chromaticAberration.isReady()||this.chromaticAberration.updateEffect(),this.addEffect(this._chromaticAberrationEffect),this._setAutoClearAndTextureSharing(this.chromaticAberration)),this.fxaaEnabled&&(this.fxaa=new WL("fxaa",1,null,be.BILINEAR_SAMPLINGMODE,e,!1,this._defaultPipelineTextureType),this.addEffect(new Mr(e,this.FxaaPostProcessId,()=>this.fxaa,!0)),this._setAutoClearAndTextureSharing(this.fxaa,!0)),this._cameras!==null&&this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name,this._cameras),(this._scene.activeCameras&&this._scene.activeCameras.length>1||this._scene.activeCamera&&this._cameras.indexOf(this._scene.activeCamera)===-1)&&(this._scene.autoClear=!0),this._activeCameraChangedObserver||(this._activeCameraChangedObserver=this._scene.onActiveCameraChanged.add(()=>{this._scene.activeCamera&&this._cameras.indexOf(this._scene.activeCamera)===-1&&(this._scene.autoClear=!0)})),this._activeCamerasChangedObserver||(this._activeCamerasChangedObserver=this._scene.onActiveCamerasChanged.add(()=>{this._scene.activeCameras&&this._scene.activeCameras.length>1&&(this._scene.autoClear=!0)})),this._adaptPostProcessesToViewPort(),!this._enableMSAAOnFirstPostProcess(this.samples)&&this.samples>1&&de.Warn("MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0"),this.onBuildObservable.notifyObservers(this)}_disposePostProcesses(e=!1){for(let t=0;t<this._cameras.length;t++){const i=this._cameras[t];this.imageProcessing&&this.imageProcessing.dispose(i),this.fxaa&&this.fxaa.dispose(i),e&&(this.sharpen&&this.sharpen.dispose(i),this.depthOfField&&(this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver),this.depthOfField.disposeEffects(i)),this.bloom&&this.bloom.disposeEffects(i),this.chromaticAberration&&this.chromaticAberration.dispose(i),this.grain&&this.grain.dispose(i),this._glowLayer&&this._glowLayer.dispose())}this.imageProcessing=null,this.fxaa=null,e&&(this.sharpen=null,this._sharpenEffect=null,this.depthOfField=null,this.bloom=null,this.chromaticAberration=null,this._chromaticAberrationEffect=null,this.grain=null,this._grainEffect=null,this._glowLayer=null)}addCamera(e){this._camerasToBeAttached.push(e),this._buildPipeline()}removeCamera(e){const t=this._camerasToBeAttached.indexOf(e);this._camerasToBeAttached.splice(t,1),this._buildPipeline()}dispose(){this._buildAllowed=!1,this.onBuildObservable.clear(),this._disposePostProcesses(!0),this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._scene._postProcessRenderPipelineManager.removePipeline(this.name),this._scene.autoClear=!0,this._resizeObserver&&(this._scene.getEngine().onResizeObservable.remove(this._resizeObserver),this._resizeObserver=null),this._scene.onActiveCameraChanged.remove(this._activeCameraChangedObserver),this._scene.onActiveCamerasChanged.remove(this._activeCamerasChangedObserver),this._scene.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigurationObserver),super.dispose()}serialize(){const e=It.Serialize(this);return e.customType="DefaultRenderingPipeline",e}static Parse(e,t,i){return It.Parse(()=>new Yu(e._name,e._name._hdr,t),e,t,i)}}F([G()],Yu.prototype,"sharpenEnabled",null),F([G()],Yu.prototype,"bloomKernel",null),F([G()],Yu.prototype,"_bloomWeight",void 0),F([G()],Yu.prototype,"_bloomThreshold",void 0),F([G()],Yu.prototype,"_hdr",void 0),F([G()],Yu.prototype,"bloomWeight",null),F([G()],Yu.prototype,"bloomThreshold",null),F([G()],Yu.prototype,"bloomScale",null),F([G()],Yu.prototype,"bloomEnabled",null),F([G()],Yu.prototype,"depthOfFieldEnabled",null),F([G()],Yu.prototype,"depthOfFieldBlurLevel",null),F([G()],Yu.prototype,"fxaaEnabled",null),F([G()],Yu.prototype,"samples",null),F([G()],Yu.prototype,"imageProcessingEnabled",null),F([G()],Yu.prototype,"glowLayerEnabled",null),F([G()],Yu.prototype,"chromaticAberrationEnabled",null),F([G()],Yu.prototype,"grainEnabled",null),ve("BABYLON.DefaultRenderingPipeline",Yu);const Nae="chromaticAberrationPixelShader",n7e=`uniform sampler2D textureSampler; 
uniform float chromatic_aberration;uniform float radialIntensity;uniform vec2 direction;uniform vec2 centerPosition;uniform float screen_width;uniform float screen_height;varying vec2 vUV;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{vec2 centered_screen_pos=vec2(vUV.x-centerPosition.x,vUV.y-centerPosition.y);vec2 directionOfEffect=direction;if(directionOfEffect.x==0. && directionOfEffect.y==0.){directionOfEffect=normalize(centered_screen_pos);}
float radius2=centered_screen_pos.x*centered_screen_pos.x
+ centered_screen_pos.y*centered_screen_pos.y;float radius=sqrt(radius2);vec3 ref_indices=vec3(-0.3,0.0,0.3);float ref_shiftX=chromatic_aberration*pow(radius,radialIntensity)*directionOfEffect.x/screen_width;float ref_shiftY=chromatic_aberration*pow(radius,radialIntensity)*directionOfEffect.y/screen_height;vec2 ref_coords_r=vec2(vUV.x+ref_indices.r*ref_shiftX,vUV.y+ref_indices.r*ref_shiftY*0.5);vec2 ref_coords_g=vec2(vUV.x+ref_indices.g*ref_shiftX,vUV.y+ref_indices.g*ref_shiftY*0.5);vec2 ref_coords_b=vec2(vUV.x+ref_indices.b*ref_shiftX,vUV.y+ref_indices.b*ref_shiftY*0.5);vec4 r=texture2D(textureSampler,ref_coords_r);vec4 g=texture2D(textureSampler,ref_coords_g);vec4 b=texture2D(textureSampler,ref_coords_b);float a=clamp(r.a+g.a+b.a,0.,1.);gl_FragColor=vec4(r.r,g.g,b.b,a);}`;H.ShadersStore[Nae]||(H.ShadersStore[Nae]=n7e);const a7e={name:Nae,shader:n7e},wYe=Object.freeze(Object.defineProperty({__proto__:null,chromaticAberrationPixelShader:a7e},Symbol.toStringTag,{value:"Module"})),o7e="lensHighlightsPixelShader",BYe=`uniform sampler2D textureSampler; 
uniform float gain;uniform float threshold;uniform float screen_width;uniform float screen_height;varying vec2 vUV;vec4 highlightColor(vec4 color) {vec4 highlight=color;float luminance=dot(highlight.rgb,vec3(0.2125,0.7154,0.0721));float lum_threshold;if (threshold>1.0) { lum_threshold=0.94+0.01*threshold; }
else { lum_threshold=0.5+0.44*threshold; }
luminance=clamp((luminance-lum_threshold)*(1.0/(1.0-lum_threshold)),0.0,1.0);highlight*=luminance*gain;highlight.a=1.0;return highlight;}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{vec4 original=texture2D(textureSampler,vUV);if (gain==-1.0) {gl_FragColor=vec4(0.0,0.0,0.0,1.0);return;}
float w=2.0/screen_width;float h=2.0/screen_height;float weight=1.0;vec4 blurred=vec4(0.0,0.0,0.0,0.0);
#ifdef PENTAGON
blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.84*w,0.43*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.48*w,-1.29*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.61*w,1.51*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.55*w,-0.74*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.71*w,-0.52*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.94*w,1.59*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.40*w,-1.87*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.62*w,1.16*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.09*w,0.25*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.46*w,-1.71*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.08*w,2.42*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.85*w,-1.89*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.89*w,0.16*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.29*w,1.88*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.40*w,-2.81*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.54*w,2.26*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.60*w,-0.61*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.31*w,-1.30*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.83*w,2.53*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.12*w,-2.48*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.60*w,1.11*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.99*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.50*w,-2.81*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.85*w,3.33*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.94*w,-1.92*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.27*w,-0.53*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.95*w,2.48*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.23*w,-3.04*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.17*w,2.05*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.97*w,-0.04*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.25*w,-2.00*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.31*w,3.08*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.94*w,-2.59*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.37*w,0.64*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.13*w,1.93*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.03*w,-3.65*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.60*w,3.17*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.14*w,-1.19*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.00*w,-1.19*h)));
#else
blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.85*w,0.36*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.52*w,-1.14*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.46*w,1.42*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.46*w,-0.83*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.79*w,-0.42*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.11*w,1.62*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.29*w,-2.07*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.69*w,1.39*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.28*w,0.12*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.65*w,-1.69*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.08*w,2.44*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.63*w,-1.90*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.55*w,0.31*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.13*w,1.52*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.56*w,-2.61*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.38*w,2.34*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.64*w,-0.81*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.53*w,-1.21*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.06*w,2.63*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.00*w,-2.69*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.59*w,1.32*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.78*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.57*w,-2.50*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.54*w,2.93*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.39*w,-1.81*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,-0.28*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.04*w,2.25*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.02*w,-3.05*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.09*w,2.25*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.07*w,-0.25*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.44*w,-1.90*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.52*w,3.05*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.68*w,-2.61*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,0.79*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.76*w,1.46*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.05*w,-2.94*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.21*w,2.88*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.84*w,-1.30*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.98*w,-0.96*h)));
#endif
blurred/=39.0;gl_FragColor=blurred;}`;H.ShadersStore[o7e]||(H.ShadersStore[o7e]=BYe);const l7e="depthOfFieldPixelShader",zYe=`uniform sampler2D textureSampler;uniform sampler2D highlightsSampler;uniform sampler2D depthSampler;uniform sampler2D grainSampler;uniform float grain_amount;uniform bool blur_noise;uniform float screen_width;uniform float screen_height;uniform float distortion;uniform bool dof_enabled;uniform float screen_distance; 
uniform float aperture;uniform float darken;uniform float edge_blur;uniform bool highlights;uniform float near;uniform float far;varying vec2 vUV;
#define PI 3.14159265
#define TWOPI 6.28318530
#define inverse_focal_length 0.1 
vec2 centered_screen_pos;vec2 distorted_coords;float radius2;float radius;vec2 rand(vec2 co)
{float noise1=(fract(sin(dot(co,vec2(12.9898,78.233)))*43758.5453));float noise2=(fract(sin(dot(co,vec2(12.9898,78.233)*2.0))*43758.5453));return clamp(vec2(noise1,noise2),0.0,1.0);}
vec2 getDistortedCoords(vec2 coords) {if (distortion==0.0) { return coords; }
vec2 direction=1.0*normalize(centered_screen_pos);vec2 dist_coords=vec2(0.5,0.5);dist_coords.x=0.5+direction.x*radius2*1.0;dist_coords.y=0.5+direction.y*radius2*1.0;float dist_amount=clamp(distortion*0.23,0.0,1.0);dist_coords=mix(coords,dist_coords,dist_amount);return dist_coords;}
float sampleScreen(inout vec4 color,in vec2 offset,in float weight) {vec2 coords=distorted_coords;float angle=rand(coords*100.0).x*TWOPI;coords+=vec2(offset.x*cos(angle)-offset.y*sin(angle),offset.x*sin(angle)+offset.y*cos(angle));color+=texture2D(textureSampler,coords)*weight;return weight;}
float getBlurLevel(float size) {return min(3.0,ceil(size/1.0));}
vec4 getBlurColor(float size) {vec4 col=texture2D(textureSampler,distorted_coords);float blur_level=getBlurLevel(size);float w=(size/screen_width);float h=(size/screen_height);float total_weight=1.0;vec2 sample_coords;total_weight+=sampleScreen(col,vec2(-0.50*w,0.24*h),0.93);total_weight+=sampleScreen(col,vec2(0.30*w,-0.75*h),0.90);total_weight+=sampleScreen(col,vec2(0.36*w,0.96*h),0.87);total_weight+=sampleScreen(col,vec2(-1.08*w,-0.55*h),0.85);total_weight+=sampleScreen(col,vec2(1.33*w,-0.37*h),0.83);total_weight+=sampleScreen(col,vec2(-0.82*w,1.31*h),0.80);total_weight+=sampleScreen(col,vec2(-0.31*w,-1.67*h),0.78);total_weight+=sampleScreen(col,vec2(1.47*w,1.11*h),0.76);total_weight+=sampleScreen(col,vec2(-1.97*w,0.19*h),0.74);total_weight+=sampleScreen(col,vec2(1.42*w,-1.57*h),0.72);if (blur_level>1.0) {total_weight+=sampleScreen(col,vec2(0.01*w,2.25*h),0.70);total_weight+=sampleScreen(col,vec2(-1.62*w,-1.74*h),0.67);total_weight+=sampleScreen(col,vec2(2.49*w,0.20*h),0.65);total_weight+=sampleScreen(col,vec2(-2.07*w,1.61*h),0.63);total_weight+=sampleScreen(col,vec2(0.46*w,-2.70*h),0.61);total_weight+=sampleScreen(col,vec2(1.55*w,2.40*h),0.59);total_weight+=sampleScreen(col,vec2(-2.88*w,-0.75*h),0.56);total_weight+=sampleScreen(col,vec2(2.73*w,-1.44*h),0.54);total_weight+=sampleScreen(col,vec2(-1.08*w,3.02*h),0.52);total_weight+=sampleScreen(col,vec2(-1.28*w,-3.05*h),0.49);}
if (blur_level>2.0) {total_weight+=sampleScreen(col,vec2(3.11*w,1.43*h),0.46);total_weight+=sampleScreen(col,vec2(-3.36*w,1.08*h),0.44);total_weight+=sampleScreen(col,vec2(1.80*w,-3.16*h),0.41);total_weight+=sampleScreen(col,vec2(0.83*w,3.65*h),0.38);total_weight+=sampleScreen(col,vec2(-3.16*w,-2.19*h),0.34);total_weight+=sampleScreen(col,vec2(3.92*w,-0.53*h),0.31);total_weight+=sampleScreen(col,vec2(-2.59*w,3.12*h),0.26);total_weight+=sampleScreen(col,vec2(-0.20*w,-4.15*h),0.22);total_weight+=sampleScreen(col,vec2(3.02*w,3.00*h),0.15);}
col/=total_weight; 
if (darken>0.0) {col.rgb*=clamp(0.3,1.0,1.05-size*0.5*darken);}
return col;}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{centered_screen_pos=vec2(vUV.x-0.5,vUV.y-0.5);radius2=centered_screen_pos.x*centered_screen_pos.x+centered_screen_pos.y*centered_screen_pos.y;radius=sqrt(radius2);distorted_coords=getDistortedCoords(vUV); 
vec2 texels_coords=vec2(vUV.x*screen_width,vUV.y*screen_height); 
float depth=texture2D(depthSampler,distorted_coords).r; 
float distance=near+(far-near)*depth; 
vec4 color=texture2D(textureSampler,vUV); 
float coc=abs(aperture*(screen_distance*(inverse_focal_length-1.0/distance)-1.0));if (dof_enabled==false || coc<0.07) { coc=0.0; }
float edge_blur_amount=0.0;if (edge_blur>0.0) {edge_blur_amount=clamp((radius*2.0-1.0+0.15*edge_blur)*1.5,0.0,1.0)*1.3;}
float blur_amount=max(edge_blur_amount,coc);if (blur_amount==0.0) {gl_FragColor=texture2D(textureSampler,distorted_coords);}
else {gl_FragColor=getBlurColor(blur_amount*1.7);if (highlights) {gl_FragColor.rgb+=clamp(coc,0.0,1.0)*texture2D(highlightsSampler,distorted_coords).rgb;}
if (blur_noise) {vec2 noise=rand(distorted_coords)*0.01*blur_amount;vec2 blurred_coord=vec2(distorted_coords.x+noise.x,distorted_coords.y+noise.y);gl_FragColor=0.04*texture2D(textureSampler,blurred_coord)+0.96*gl_FragColor;}}
if (grain_amount>0.0) {vec4 grain_color=texture2D(grainSampler,texels_coords*0.003);gl_FragColor.rgb+=(-0.5+grain_color.rgb)*0.30*grain_amount;}}
`;H.ShadersStore[l7e]||(H.ShadersStore[l7e]=zYe);class FYe extends Eb{constructor(e,t,i,s=1,r){super(i.getEngine(),e),this.LensChromaticAberrationEffect="LensChromaticAberrationEffect",this.HighlightsEnhancingEffect="HighlightsEnhancingEffect",this.LensDepthOfFieldEffect="LensDepthOfFieldEffect",this._pentagonBokehIsEnabled=!1,this._scene=i,this._depthTexture=i.enableDepthRenderer().getDepthMap(),t.grain_texture?this._grainTexture=t.grain_texture:this._createGrainTexture(),this._edgeBlur=t.edge_blur?t.edge_blur:0,this._grainAmount=t.grain_amount?t.grain_amount:0,this._chromaticAberration=t.chromatic_aberration?t.chromatic_aberration:0,this._distortion=t.distortion?t.distortion:0,this._highlightsGain=t.dof_gain!==void 0?t.dof_gain:-1,this._highlightsThreshold=t.dof_threshold?t.dof_threshold:1,this._dofDistance=t.dof_focus_distance!==void 0?t.dof_focus_distance:-1,this._dofAperture=t.dof_aperture?t.dof_aperture:1,this._dofDarken=t.dof_darken?t.dof_darken:0,this._dofPentagon=t.dof_pentagon!==void 0?t.dof_pentagon:!0,this._blurNoise=t.blur_noise!==void 0?t.blur_noise:!0,this._createChromaticAberrationPostProcess(s),this._createHighlightsPostProcess(s),this._createDepthOfFieldPostProcess(s/4),this.addEffect(new Mr(i.getEngine(),this.LensChromaticAberrationEffect,()=>this._chromaticAberrationPostProcess,!0)),this.addEffect(new Mr(i.getEngine(),this.HighlightsEnhancingEffect,()=>this._highlightsPostProcess,!0)),this.addEffect(new Mr(i.getEngine(),this.LensDepthOfFieldEffect,()=>this._depthOfFieldPostProcess,!0)),this._highlightsGain===-1&&this._disableEffect(this.HighlightsEnhancingEffect,null),i.postProcessRenderPipelineManager.addPipeline(this),r&&i.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(e,r)}getClassName(){return"LensRenderingPipeline"}get scene(){return this._scene}get edgeBlur(){return this._edgeBlur}set edgeBlur(e){this.setEdgeBlur(e)}get grainAmount(){return this._grainAmount}set grainAmount(e){this.setGrainAmount(e)}get chromaticAberration(){return this._chromaticAberration}set chromaticAberration(e){this.setChromaticAberration(e)}get dofAperture(){return this._dofAperture}set dofAperture(e){this.setAperture(e)}get edgeDistortion(){return this._distortion}set edgeDistortion(e){this.setEdgeDistortion(e)}get dofDistortion(){return this._dofDistance}set dofDistortion(e){this.setFocusDistance(e)}get darkenOutOfFocus(){return this._dofDarken}set darkenOutOfFocus(e){this.setDarkenOutOfFocus(e)}get blurNoise(){return this._blurNoise}set blurNoise(e){this._blurNoise=e}get pentagonBokeh(){return this._pentagonBokehIsEnabled}set pentagonBokeh(e){e?this.enablePentagonBokeh():this.disablePentagonBokeh()}get highlightsGain(){return this._highlightsGain}set highlightsGain(e){this.setHighlightsGain(e)}get highlightsThreshold(){return this._highlightsThreshold}set highlightsThreshold(e){this.setHighlightsThreshold(e)}setEdgeBlur(e){this._edgeBlur=e}disableEdgeBlur(){this._edgeBlur=0}setGrainAmount(e){this._grainAmount=e}disableGrain(){this._grainAmount=0}setChromaticAberration(e){this._chromaticAberration=e}disableChromaticAberration(){this._chromaticAberration=0}setEdgeDistortion(e){this._distortion=e}disableEdgeDistortion(){this._distortion=0}setFocusDistance(e){this._dofDistance=e}disableDepthOfField(){this._dofDistance=-1}setAperture(e){this._dofAperture=e}setDarkenOutOfFocus(e){this._dofDarken=e}enablePentagonBokeh(){this._highlightsPostProcess.updateEffect(`#define PENTAGON
`),this._pentagonBokehIsEnabled=!0}disablePentagonBokeh(){this._pentagonBokehIsEnabled=!1,this._highlightsPostProcess.updateEffect()}enableNoiseBlur(){this._blurNoise=!0}disableNoiseBlur(){this._blurNoise=!1}setHighlightsGain(e){this._highlightsGain=e}setHighlightsThreshold(e){this._highlightsGain===-1&&(this._highlightsGain=1),this._highlightsThreshold=e}disableHighlights(){this._highlightsGain=-1}dispose(e=!1){this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._scene.cameras),this._chromaticAberrationPostProcess=null,this._highlightsPostProcess=null,this._depthOfFieldPostProcess=null,this._grainTexture.dispose(),e&&this._scene.disableDepthRenderer()}_createChromaticAberrationPostProcess(e){this._chromaticAberrationPostProcess=new Mi("LensChromaticAberration","chromaticAberration",["chromatic_aberration","screen_width","screen_height","direction","radialIntensity","centerPosition"],[],e,null,be.TRILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1),this._chromaticAberrationPostProcess.onApply=t=>{t.setFloat("chromatic_aberration",this._chromaticAberration),t.setFloat("screen_width",this._scene.getEngine().getRenderWidth()),t.setFloat("screen_height",this._scene.getEngine().getRenderHeight()),t.setFloat("radialIntensity",1),t.setFloat2("direction",17,17),t.setFloat2("centerPosition",.5,.5)}}_createHighlightsPostProcess(e){this._highlightsPostProcess=new Mi("LensHighlights","lensHighlights",["gain","threshold","screen_width","screen_height"],[],e,null,be.TRILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1,this._dofPentagon?`#define PENTAGON
`:""),this._highlightsPostProcess.externalTextureSamplerBinding=!0,this._highlightsPostProcess.onApply=t=>{t.setFloat("gain",this._highlightsGain),t.setFloat("threshold",this._highlightsThreshold),t.setTextureFromPostProcess("textureSampler",this._chromaticAberrationPostProcess),t.setFloat("screen_width",this._scene.getEngine().getRenderWidth()),t.setFloat("screen_height",this._scene.getEngine().getRenderHeight())}}_createDepthOfFieldPostProcess(e){this._depthOfFieldPostProcess=new Mi("LensDepthOfField","depthOfField",["grain_amount","blur_noise","screen_width","screen_height","distortion","dof_enabled","screen_distance","aperture","darken","edge_blur","highlights","near","far"],["depthSampler","grainSampler","highlightsSampler"],e,null,be.TRILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1),this._depthOfFieldPostProcess.externalTextureSamplerBinding=!0,this._depthOfFieldPostProcess.onApply=t=>{t.setTexture("depthSampler",this._depthTexture),t.setTexture("grainSampler",this._grainTexture),t.setTextureFromPostProcess("textureSampler",this._highlightsPostProcess),t.setTextureFromPostProcess("highlightsSampler",this._depthOfFieldPostProcess),t.setFloat("grain_amount",this._grainAmount),t.setBool("blur_noise",this._blurNoise),t.setFloat("screen_width",this._scene.getEngine().getRenderWidth()),t.setFloat("screen_height",this._scene.getEngine().getRenderHeight()),t.setFloat("distortion",this._distortion),t.setBool("dof_enabled",this._dofDistance!==-1),t.setFloat("screen_distance",1/(.1-1/this._dofDistance)),t.setFloat("aperture",this._dofAperture),t.setFloat("darken",this._dofDarken),t.setFloat("edge_blur",this._edgeBlur),t.setBool("highlights",this._highlightsGain!==-1),this._scene.activeCamera&&(t.setFloat("near",this._scene.activeCamera.minZ),t.setFloat("far",this._scene.activeCamera.maxZ))}}_createGrainTexture(){const t=new Uint8Array(1048576);for(let s=0;s<t.length;){const r=Math.floor(Ki(.42,.58)*255);t[s++]=r,t[s++]=r,t[s++]=r,t[s++]=255}const i=Ur.CreateRGBATexture(t,512,512,this._scene,!1,!1,2);i.name="LensNoiseTexture",i.wrapU=be.WRAP_ADDRESSMODE,i.wrapV=be.WRAP_ADDRESSMODE,this._grainTexture=i}}class kYe{constructor(){this.enabled=!1,this.name="ssao2",this.texturesRequired=[6,5]}}class nc extends Eb{set epsilon(e){this._epsilon=e,this._ssaoPostProcess.updateEffect(this._getDefinesForSSAO())}get epsilon(){return this._epsilon}set samples(e){this._samples=e,this._ssaoPostProcess.updateEffect(this._getDefinesForSSAO()),this._sampleSphere=this._generateHemisphere()}get samples(){return this._samples}set textureSamples(e){this._textureSamples=e,this._prePassRenderer?this._prePassRenderer.samples=e:this._originalColorPostProcess.samples=e}get textureSamples(){return this._textureSamples}get _geometryBufferRenderer(){return this._forceGeometryBuffer?this._scene.geometryBufferRenderer:null}get _prePassRenderer(){return this._forceGeometryBuffer?null:this._scene.prePassRenderer}set bypassBlur(e){const t=this._getDefinesForBlur(this.expensiveBlur,e),i=this._getSamplersForBlur(e);this._blurHPostProcess.updateEffect(t.h,null,i),this._blurVPostProcess.updateEffect(t.v,null,i),this._bypassBlur=e}get bypassBlur(){return this._bypassBlur}set expensiveBlur(e){const t=this._getDefinesForBlur(e,this._bypassBlur);this._blurHPostProcess.updateEffect(t.h),this._blurVPostProcess.updateEffect(t.v),this._expensiveBlur=e}get expensiveBlur(){return this._expensiveBlur}static get IsSupported(){const e=ei.LastCreatedEngine;return e?e._features.supportSSAO2:!1}get scene(){return this._scene}constructor(e,t,i,s,r=!1,n=0){var c,u;if(super(t.getEngine(),e),this.SSAOOriginalSceneColorEffect="SSAOOriginalSceneColorEffect",this.SSAORenderEffect="SSAORenderEffect",this.SSAOBlurHRenderEffect="SSAOBlurHRenderEffect",this.SSAOBlurVRenderEffect="SSAOBlurVRenderEffect",this.SSAOCombineRenderEffect="SSAOCombineRenderEffect",this.totalStrength=1,this.maxZ=100,this.minZAspect=.2,this._epsilon=.02,this._samples=8,this._textureSamples=1,this._forceGeometryBuffer=!1,this.radius=2,this.base=0,this._bypassBlur=!1,this._expensiveBlur=!0,this.bilateralSamples=16,this.bilateralSoften=0,this.bilateralTolerance=0,this._bits=new Uint32Array(1),this._scene=t,this._ratio=i,this._textureType=n,this._forceGeometryBuffer=r,!this.isSupported){de.Error("The current engine does not support SSAO 2.");return}const o=this._ratio.ssaoRatio||i,l=this._ratio.blurRatio||i;this._forceGeometryBuffer?(t.enableGeometryBufferRenderer(),(c=t.geometryBufferRenderer)!=null&&c.generateNormalsInWorldSpace&&de.Error("SSAO2RenderingPipeline does not support generateNormalsInWorldSpace=true for the geometry buffer renderer!")):(t.enablePrePassRenderer(),(u=t.prePassRenderer)!=null&&u.generateNormalsInWorldSpace&&de.Error("SSAO2RenderingPipeline does not support generateNormalsInWorldSpace=true for the prepass renderer!")),this._createRandomTexture(),this._originalColorPostProcess=new q6("SSAOOriginalSceneColor",1,null,be.BILINEAR_SAMPLINGMODE,t.getEngine(),void 0,this._textureType),this._originalColorPostProcess.samples=this.textureSamples,this._createSSAOPostProcess(1,n),this._createBlurPostProcess(o,l,this._textureType),this._createSSAOCombinePostProcess(l,this._textureType),this.addEffect(new Mr(t.getEngine(),this.SSAOOriginalSceneColorEffect,()=>this._originalColorPostProcess,!0)),this.addEffect(new Mr(t.getEngine(),this.SSAORenderEffect,()=>this._ssaoPostProcess,!0)),this.addEffect(new Mr(t.getEngine(),this.SSAOBlurHRenderEffect,()=>this._blurHPostProcess,!0)),this.addEffect(new Mr(t.getEngine(),this.SSAOBlurVRenderEffect,()=>this._blurVPostProcess,!0)),this.addEffect(new Mr(t.getEngine(),this.SSAOCombineRenderEffect,()=>this._ssaoCombinePostProcess,!0)),t.postProcessRenderPipelineManager.addPipeline(this),s&&t.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(e,s)}getClassName(){return"SSAO2RenderingPipeline"}dispose(e=!1){for(let t=0;t<this._scene.cameras.length;t++){const i=this._scene.cameras[t];this._originalColorPostProcess.dispose(i),this._ssaoPostProcess.dispose(i),this._blurHPostProcess.dispose(i),this._blurVPostProcess.dispose(i),this._ssaoCombinePostProcess.dispose(i)}this._randomTexture.dispose(),e&&this._scene.disableGeometryBufferRenderer(),this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._scene.cameras),super.dispose()}_rebuild(){super._rebuild()}_getSamplersForBlur(e){return e?["textureSampler"]:["textureSampler","depthSampler"]}_getDefinesForBlur(e,t){let i=`#define BLUR
`;return t&&(i+=`#define BLUR_BYPASS
`),e||(i+=`#define BLUR_LEGACY
`),{h:i+`#define BLUR_H
`,v:i}}_createBlurPostProcess(e,t,i){const s=this._getDefinesForBlur(this.expensiveBlur,this.bypassBlur),r=this._getSamplersForBlur(this.bypassBlur);this._blurHPostProcess=this._createBlurFilter("BlurH",r,e,s.h,i,!0),this._blurVPostProcess=this._createBlurFilter("BlurV",r,t,s.v,i,!1)}_createBlurFilter(e,t,i,s,r,n){const o=new Mi(e,"ssao2",["outSize","samples","soften","tolerance"],t,i,null,be.BILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1,s,r,void 0,void 0,void 0,void 0,this._scene.getEngine().isWebGPU?1:0,(l,c)=>{l?c.push(Promise.resolve().then(()=>A7e)):c.push(Promise.resolve().then(()=>g7e))});return o.onApply=l=>{if(!this._scene.activeCamera)return;const c=this._ratio.blurRatio||this._ratio,u=n?this._originalColorPostProcess.width*c:this._originalColorPostProcess.height*c,f=n?this._originalColorPostProcess.width:this._originalColorPostProcess.height;l.setFloat("outSize",u>0?u:f),l.setInt("samples",this.bilateralSamples),l.setFloat("soften",this.bilateralSoften),l.setFloat("tolerance",this.bilateralTolerance),this._geometryBufferRenderer?l.setTexture("depthSampler",this._geometryBufferRenderer.getGBuffer().textures[0]):this._prePassRenderer&&l.setTexture("depthSampler",this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(5)])},o.samples=this.textureSamples,o.autoClear=!1,o}_radicalInverse_VdC(e){return this._bits[0]=e,this._bits[0]=(this._bits[0]<<16|this._bits[0]>>16)>>>0,this._bits[0]=(this._bits[0]&1431655765)<<1|(this._bits[0]&2863311530)>>>1>>>0,this._bits[0]=(this._bits[0]&858993459)<<2|(this._bits[0]&3435973836)>>>2>>>0,this._bits[0]=(this._bits[0]&252645135)<<4|(this._bits[0]&4042322160)>>>4>>>0,this._bits[0]=(this._bits[0]&16711935)<<8|(this._bits[0]&4278255360)>>>8>>>0,this._bits[0]*23283064365386963e-26}_hammersley(e,t){return[e/t,this._radicalInverse_VdC(e)]}_hemisphereSample_uniform(e,t){const i=t*2*Math.PI,s=1-e*.85,r=Math.sqrt(1-s*s);return new P(Math.cos(i)*r,Math.sin(i)*r,s)}_generateHemisphere(){const e=this.samples,t=[];let i,s=0;for(;s<e;){if(e<16)i=this._hemisphereSample_uniform(Math.random(),Math.random());else{const r=this._hammersley(s,e);i=this._hemisphereSample_uniform(r[0],r[1])}t.push(i.x,i.y,i.z),s++}return t}_getDefinesForSSAO(){return`#define SSAO
#define SAMPLES ${this.samples}
#define EPSILON ${this.epsilon.toFixed(4)}`}_createSSAOPostProcess(e,t){this._sampleSphere=this._generateHemisphere();const i=this._getDefinesForSSAO(),s=["randomSampler","depthSampler","normalSampler"];this._ssaoPostProcess=new Mi("ssao2","ssao2",["sampleSphere","samplesFactor","randTextureTiles","totalStrength","radius","base","range","projection","near","texelSize","xViewport","yViewport","maxZ","minZAspect","depthProjection"],s,e,null,be.BILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1,i,t,void 0,void 0,void 0,void 0,this._scene.getEngine().isWebGPU?1:0,(r,n)=>{r?n.push(Promise.resolve().then(()=>A7e)):n.push(Promise.resolve().then(()=>g7e))}),this._ssaoPostProcess.autoClear=!1,this._ssaoPostProcess.onApply=r=>{if(this._scene.activeCamera){if(r.setArray3("sampleSphere",this._sampleSphere),r.setFloat("randTextureTiles",32),r.setFloat("samplesFactor",1/this.samples),r.setFloat("totalStrength",this.totalStrength),r.setFloat2("texelSize",1/this._ssaoPostProcess.width,1/this._ssaoPostProcess.height),r.setFloat("radius",this.radius),r.setFloat("maxZ",this.maxZ),r.setFloat("minZAspect",this.minZAspect),r.setFloat("base",this.base),r.setFloat("near",this._scene.activeCamera.minZ),this._scene.activeCamera.mode===_i.PERSPECTIVE_CAMERA)r.setMatrix3x3("depthProjection",nc.PERSPECTIVE_DEPTH_PROJECTION),r.setFloat("xViewport",Math.tan(this._scene.activeCamera.fov/2)*this._scene.getEngine().getAspectRatio(this._scene.activeCamera,!0)),r.setFloat("yViewport",Math.tan(this._scene.activeCamera.fov/2));else{const n=this._scene.getEngine().getRenderWidth()/2,o=this._scene.getEngine().getRenderHeight()/2,l=this._scene.activeCamera.orthoLeft??-n,c=this._scene.activeCamera.orthoRight??n,u=this._scene.activeCamera.orthoBottom??-o,f=this._scene.activeCamera.orthoTop??o;r.setMatrix3x3("depthProjection",nc.ORTHO_DEPTH_PROJECTION),r.setFloat("xViewport",(c-l)*.5),r.setFloat("yViewport",(f-u)*.5)}r.setMatrix("projection",this._scene.getProjectionMatrix()),this._geometryBufferRenderer?(r.setTexture("depthSampler",this._geometryBufferRenderer.getGBuffer().textures[0]),r.setTexture("normalSampler",this._geometryBufferRenderer.getGBuffer().textures[1])):this._prePassRenderer&&(r.setTexture("depthSampler",this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(5)]),r.setTexture("normalSampler",this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(6)])),r.setTexture("randomSampler",this._randomTexture)}},this._ssaoPostProcess.samples=this.textureSamples,this._forceGeometryBuffer||(this._ssaoPostProcess._prePassEffectConfiguration=new kYe)}_createSSAOCombinePostProcess(e,t){this._ssaoCombinePostProcess=new Mi("ssaoCombine","ssaoCombine",[],["originalColor","viewport"],e,null,be.BILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1,void 0,t,void 0,void 0,void 0,void 0,this._scene.getEngine().isWebGPU?1:0,(i,s)=>{i?s.push(Promise.resolve().then(()=>YYe)):s.push(Promise.resolve().then(()=>jYe))}),this._ssaoCombinePostProcess.onApply=i=>{const s=this._scene.activeCamera.viewport;i.setVector4("viewport",ae.Vector4[0].copyFromFloats(s.x,s.y,s.width,s.height)),i.setTextureFromPostProcessOutput("originalColor",this._originalColorPostProcess)},this._ssaoCombinePostProcess.autoClear=!1,this._ssaoCombinePostProcess.samples=this.textureSamples}_createRandomTexture(){const t=new Uint8Array(65536),i=Ue.Zero();for(let r=0;r<t.length;)i.set(Ki(0,1),Ki(0,1)).normalize().scaleInPlace(255),t[r++]=Math.floor(i.x),t[r++]=Math.floor(i.y),t[r++]=0,t[r++]=255;const s=Ur.CreateRGBATexture(t,128,128,this._scene,!1,!1,2);s.name="SSAORandomTexture",s.wrapU=be.WRAP_ADDRESSMODE,s.wrapV=be.WRAP_ADDRESSMODE,this._randomTexture=s}serialize(){const e=It.Serialize(this);return e.customType="SSAO2RenderingPipeline",e}static Parse(e,t,i){return It.Parse(()=>new nc(e._name,t,e._ratio,void 0,e._forceGeometryBuffer,e._textureType),e,t,i)}}nc.ORTHO_DEPTH_PROJECTION=[1,0,0,0,1,0,0,0,1],nc.PERSPECTIVE_DEPTH_PROJECTION=[0,0,0,0,0,0,1,1,1],F([G()],nc.prototype,"totalStrength",void 0),F([G()],nc.prototype,"maxZ",void 0),F([G()],nc.prototype,"minZAspect",void 0),F([G("epsilon")],nc.prototype,"_epsilon",void 0),F([G("samples")],nc.prototype,"_samples",void 0),F([G("textureSamples")],nc.prototype,"_textureSamples",void 0),F([G()],nc.prototype,"_forceGeometryBuffer",void 0),F([G()],nc.prototype,"_ratio",void 0),F([G()],nc.prototype,"_textureType",void 0),F([G()],nc.prototype,"radius",void 0),F([G()],nc.prototype,"base",void 0),F([G("bypassBlur")],nc.prototype,"_bypassBlur",void 0),F([G("expensiveBlur")],nc.prototype,"_expensiveBlur",void 0),F([G()],nc.prototype,"bilateralSamples",void 0),F([G()],nc.prototype,"bilateralSoften",void 0),F([G()],nc.prototype,"bilateralTolerance",void 0),ve("BABYLON.SSAO2RenderingPipeline",nc);const c7e="ssaoPixelShader",UYe=`uniform sampler2D textureSampler;varying vec2 vUV;
#ifdef SSAO
uniform sampler2D randomSampler;uniform float randTextureTiles;uniform float samplesFactor;uniform vec3 sampleSphere[SAMPLES];uniform float totalStrength;uniform float radius;uniform float area;uniform float fallOff;uniform float base;vec3 normalFromDepth(float depth,vec2 coords)
{vec2 offset1=vec2(0.0,radius);vec2 offset2=vec2(radius,0.0);float depth1=texture2D(textureSampler,coords+offset1).r;float depth2=texture2D(textureSampler,coords+offset2).r;vec3 p1=vec3(offset1,depth1-depth);vec3 p2=vec3(offset2,depth2-depth);vec3 normal=cross(p1,p2);normal.z=-normal.z;return normalize(normal);}
void main()
{vec3 random=normalize(texture2D(randomSampler,vUV*randTextureTiles).rgb);float depth=texture2D(textureSampler,vUV).r;vec3 position=vec3(vUV,depth);vec3 normal=normalFromDepth(depth,vUV);float radiusDepth=radius/depth;float occlusion=0.0;vec3 ray;vec3 hemiRay;float occlusionDepth;float difference;for (int i=0; i<SAMPLES; i++)
{ray=radiusDepth*reflect(sampleSphere[i],random);hemiRay=position+sign(dot(ray,normal))*ray;occlusionDepth=texture2D(textureSampler,clamp(hemiRay.xy,vec2(0.001,0.001),vec2(0.999,0.999))).r;difference=depth-occlusionDepth;occlusion+=step(fallOff,difference)*(1.0-smoothstep(fallOff,area,difference));}
float ao=1.0-totalStrength*occlusion*samplesFactor;float result=clamp(ao+base,0.0,1.0);gl_FragColor.r=result;gl_FragColor.g=result;gl_FragColor.b=result;gl_FragColor.a=1.0;}
#endif
`;H.ShadersStore[c7e]||(H.ShadersStore[c7e]=UYe);const wae="ssaoCombinePixelShader",u7e=`uniform sampler2D textureSampler;uniform sampler2D originalColor;uniform vec4 viewport;varying vec2 vUV;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
vec2 uv=viewport.xy+vUV*viewport.zw;vec4 ssaoColor=texture2D(textureSampler,uv);vec4 sceneColor=texture2D(originalColor,uv);gl_FragColor=sceneColor*ssaoColor;
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStore[wae]||(H.ShadersStore[wae]=u7e);const h7e={name:wae,shader:u7e},jYe=Object.freeze(Object.defineProperty({__proto__:null,ssaoCombinePixelShader:h7e},Symbol.toStringTag,{value:"Module"}));class FO extends Eb{get scene(){return this._scene}constructor(e,t,i,s){super(t.getEngine(),e),this.SSAOOriginalSceneColorEffect="SSAOOriginalSceneColorEffect",this.SSAORenderEffect="SSAORenderEffect",this.SSAOBlurHRenderEffect="SSAOBlurHRenderEffect",this.SSAOBlurVRenderEffect="SSAOBlurVRenderEffect",this.SSAOCombineRenderEffect="SSAOCombineRenderEffect",this.totalStrength=1,this.radius=1e-4,this.area=.0075,this.fallOff=1e-6,this.base=.5,this._firstUpdate=!0,this._scene=t,this._createRandomTexture();const r=i.ssaoRatio||i,n=i.combineRatio||i;this._originalColorPostProcess=new q6("SSAOOriginalSceneColor",n,null,be.BILINEAR_SAMPLINGMODE,t.getEngine(),!1),this._createSSAOPostProcess(r),this._createBlurPostProcess(r),this._createSSAOCombinePostProcess(n),this.addEffect(new Mr(t.getEngine(),this.SSAOOriginalSceneColorEffect,()=>this._originalColorPostProcess,!0)),this.addEffect(new Mr(t.getEngine(),this.SSAORenderEffect,()=>this._ssaoPostProcess,!0)),this.addEffect(new Mr(t.getEngine(),this.SSAOBlurHRenderEffect,()=>this._blurHPostProcess,!0)),this.addEffect(new Mr(t.getEngine(),this.SSAOBlurVRenderEffect,()=>this._blurVPostProcess,!0)),this.addEffect(new Mr(t.getEngine(),this.SSAOCombineRenderEffect,()=>this._ssaoCombinePostProcess,!0)),t.postProcessRenderPipelineManager.addPipeline(this),s&&t.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(e,s)}_attachCameras(e,t){super._attachCameras(e,t);for(const i of this._cameras)this._scene.enableDepthRenderer(i).getDepthMap()}getClassName(){return"SSAORenderingPipeline"}dispose(e=!1){for(let t=0;t<this._scene.cameras.length;t++){const i=this._scene.cameras[t];this._originalColorPostProcess.dispose(i),this._ssaoPostProcess.dispose(i),this._blurHPostProcess.dispose(i),this._blurVPostProcess.dispose(i),this._ssaoCombinePostProcess.dispose(i)}this._randomTexture.dispose(),e&&this._scene.disableDepthRenderer(),this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._scene.cameras),super.dispose()}_createBlurPostProcess(e){this._blurHPostProcess=new tc("BlurH",new Ue(1,0),16,e,null,be.BILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1,0),this._blurVPostProcess=new tc("BlurV",new Ue(0,1),16,e,null,be.BILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1,0),this._blurHPostProcess.onActivateObservable.add(()=>{const i=this._blurHPostProcess.width/this._scene.getEngine().getRenderWidth();this._blurHPostProcess.kernel=16*i}),this._blurVPostProcess.onActivateObservable.add(()=>{const i=this._blurVPostProcess.height/this._scene.getEngine().getRenderHeight();this._blurVPostProcess.kernel=16*i})}_rebuild(){this._firstUpdate=!0,super._rebuild()}_createSSAOPostProcess(e){const i=[.5381,.1856,-.4319,.1379,.2486,.443,.3371,.5679,-.0057,-.6999,-.0451,-.0019,.0689,-.1598,-.8547,.056,.0069,-.1843,-.0146,.1402,.0762,.01,-.1924,-.0344,-.3577,-.5301,-.4358,-.3169,.1063,.0158,.0103,-.5869,.0046,-.0897,-.494,.3287,.7119,-.0154,-.0918,-.0533,.0596,-.5411,.0352,-.0631,.546,-.4776,.2847,-.0271],s=1/16;this._ssaoPostProcess=new Mi("ssao","ssao",["sampleSphere","samplesFactor","randTextureTiles","totalStrength","radius","area","fallOff","base","range","viewport"],["randomSampler"],e,null,be.BILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1,`#define SAMPLES 16
#define SSAO`),this._ssaoPostProcess.externalTextureSamplerBinding=!0,this._ssaoPostProcess.onApply=r=>{this._firstUpdate&&(r.setArray3("sampleSphere",i),r.setFloat("samplesFactor",s),r.setFloat("randTextureTiles",4)),r.setFloat("totalStrength",this.totalStrength),r.setFloat("radius",this.radius),r.setFloat("area",this.area),r.setFloat("fallOff",this.fallOff),r.setFloat("base",this.base),r.setTexture("textureSampler",this._scene.enableDepthRenderer(this._scene.activeCamera).getDepthMap()),r.setTexture("randomSampler",this._randomTexture)}}_createSSAOCombinePostProcess(e){this._ssaoCombinePostProcess=new Mi("ssaoCombine","ssaoCombine",[],["originalColor","viewport"],e,null,be.BILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1),this._ssaoCombinePostProcess.onApply=t=>{t.setVector4("viewport",ae.Vector4[0].copyFromFloats(0,0,1,1)),t.setTextureFromPostProcess("originalColor",this._originalColorPostProcess)}}_createRandomTexture(){const t=new Uint8Array(1048576);for(let s=0;s<t.length;)t[s++]=Math.floor(Math.max(0,Ki(-1,1))*255),t[s++]=Math.floor(Math.max(0,Ki(-1,1))*255),t[s++]=Math.floor(Math.max(0,Ki(-1,1))*255),t[s++]=255;const i=Ur.CreateRGBATexture(t,512,512,this._scene,!1,!1,2);i.name="SSAORandomTexture",i.wrapU=be.WRAP_ADDRESSMODE,i.wrapV=be.WRAP_ADDRESSMODE,this._randomTexture=i}}F([G()],FO.prototype,"totalStrength",void 0),F([G()],FO.prototype,"radius",void 0),F([G()],FO.prototype,"area",void 0),F([G()],FO.prototype,"fallOff",void 0),F([G()],FO.prototype,"base",void 0);class VYe{constructor(){this.enabled=!1,this.name="screenSpaceReflections",this.texturesRequired=[6,3,1]}}const d7e="screenSpaceReflectionPixelShader",GYe=`uniform sampler2D textureSampler;
#ifdef SSR_SUPPORTED
uniform sampler2D reflectivitySampler;uniform sampler2D normalSampler;uniform sampler2D positionSampler;
#endif
uniform mat4 view;uniform mat4 projection;uniform float stepSize;uniform float strength;uniform float threshold;uniform float roughnessFactor;uniform float reflectionSpecularFalloffExponent;varying vec2 vUV;
#ifdef SSR_SUPPORTED
struct ReflectionInfo {vec3 color;vec4 coords;};/**
* According to specular,see https:
*/
vec3 fresnelSchlick(float cosTheta,vec3 F0)
{return F0+(1.0-F0)*pow(1.0-cosTheta,5.0);}
/**
* Once the pixel's coordinates has been found,let's adjust (smooth) a little bit
* by sampling multiple reflection pixels.
*/
ReflectionInfo smoothReflectionInfo(vec3 dir,vec3 hitCoord)
{ReflectionInfo info;info.color=vec3(0.0);vec4 projectedCoord;float sampledDepth;for(int i=0; i<SMOOTH_STEPS; i++)
{projectedCoord=projection*vec4(hitCoord,1.0);projectedCoord.xy/=projectedCoord.w;projectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5);sampledDepth=(view*texture2D(positionSampler,projectedCoord.xy)).z;float depth=sampledDepth-hitCoord.z;dir*=0.5;if(depth>0.0)
hitCoord-=dir;else
hitCoord+=dir;info.color+=texture2D(textureSampler,projectedCoord.xy).rgb;}
projectedCoord=projection*vec4(hitCoord,1.0);projectedCoord.xy/=projectedCoord.w;projectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5);info.coords=vec4(projectedCoord.xy,sampledDepth,1.0);info.color+=texture2D(textureSampler,projectedCoord.xy).rgb;info.color/=float(SMOOTH_STEPS+1);return info;}
/**
* Tests the given world position (hitCoord) according to the given reflection vector (dir)
* until it finds a collision (means that depth is enough close to say "it's the pixel to sample!").
*/
ReflectionInfo getReflectionInfo(vec3 dir,vec3 hitCoord)
{ReflectionInfo info;vec4 projectedCoord;float sampledDepth;dir*=stepSize;for(int i=0; i<REFLECTION_SAMPLES; i++)
{hitCoord+=dir;projectedCoord=projection*vec4(hitCoord,1.0);projectedCoord.xy/=projectedCoord.w;projectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5);sampledDepth=(view*texture2D(positionSampler,projectedCoord.xy)).z;float depth=sampledDepth-hitCoord.z;
#ifdef RIGHT_HANDED_SCENE
depth*=-1.0;
#endif
if(((depth-dir.z)<threshold) && depth<=0.0)
{
#ifdef ENABLE_SMOOTH_REFLECTIONS
return smoothReflectionInfo(dir,hitCoord);
#else
info.color=texture2D(textureSampler,projectedCoord.xy).rgb;info.coords=vec4(projectedCoord.xy,sampledDepth,0.0);return info;
#endif
}}
info.color=texture2D(textureSampler,projectedCoord.xy).rgb;info.coords=vec4(projectedCoord.xy,sampledDepth,0.0);return info;}
vec3 hash(vec3 a)
{a=fract(a*0.8);a+=dot(a,a.yxz+19.19);return fract((a.xxy+a.yxx)*a.zyx);}
#endif
void main()
{
#ifdef SSR_SUPPORTED
vec4 albedoFull=texture2D(textureSampler,vUV);vec3 albedo=albedoFull.rgb;float spec=texture2D(reflectivitySampler,vUV).r;if (spec==0.0) {gl_FragColor=albedoFull;return;}
vec3 normal=(texture2D(normalSampler,vUV)).xyz;vec3 position=(view*texture2D(positionSampler,vUV)).xyz;vec3 reflected=normalize(reflect(normalize(position),normalize(normal)));float roughness=1.0-texture2D(reflectivitySampler,vUV).a;vec3 jitt=mix(vec3(0.0),hash(position),roughness)*roughnessFactor;ReflectionInfo info=getReflectionInfo(jitt+reflected,position);vec2 dCoords=smoothstep(0.2,0.6,abs(vec2(0.5,0.5)-info.coords.xy));float screenEdgefactor=clamp(1.0-(dCoords.x+dCoords.y),0.0,1.0);vec3 F0=vec3(0.04);F0 =mix(F0,albedo,spec);vec3 fresnel=fresnelSchlick(max(dot(normalize(normal),normalize(position)),0.0),F0);
#ifdef RIGHT_HANDED_SCENE
reflected.z*=-1.0;
#endif
float reflectionMultiplier=clamp(pow(spec*strength,reflectionSpecularFalloffExponent)*screenEdgefactor*reflected.z,0.0,0.9);float albedoMultiplier=1.0-reflectionMultiplier;vec3 SSR=info.color*fresnel;gl_FragColor=vec4((albedo*albedoMultiplier)+(SSR*reflectionMultiplier),albedoFull.a);
#else
gl_FragColor=texture2D(textureSampler,vUV);
#endif
}
`;H.ShadersStore[d7e]||(H.ShadersStore[d7e]=GYe);class O4 extends Mi{get _geometryBufferRenderer(){return this._forceGeometryBuffer?this._scene.geometryBufferRenderer:null}get _prePassRenderer(){return this._forceGeometryBuffer?null:this._scene.prePassRenderer}getClassName(){return"ScreenSpaceReflectionPostProcess"}constructor(e,t,i,s,r,n,o,l=0,c=!1,u=!1){if(super(e,"screenSpaceReflection",["projection","view","threshold","reflectionSpecularFalloffExponent","strength","stepSize","roughnessFactor"],["textureSampler","normalSampler","positionSampler","reflectivitySampler"],i,s,r,n,o,`#define SSR_SUPPORTED
#define REFLECTION_SAMPLES 64
#define SMOOTH_STEPS 5
`,l,void 0,null,c),this.threshold=1.2,this.strength=1,this.reflectionSpecularFalloffExponent=3,this.step=1,this.roughnessFactor=.2,this._forceGeometryBuffer=!1,this._enableSmoothReflections=!1,this._reflectionSamples=64,this._smoothSteps=5,this._forceGeometryBuffer=u,this._forceGeometryBuffer){const f=t.enableGeometryBufferRenderer();f&&f.isSupported&&(f.enablePosition=!0,f.enableReflectivity=!0,f.generateNormalsInWorldSpace&&de.Error("ScreenSpaceReflectionPostProcess does not support generateNormalsInWorldSpace=true for the geometry buffer renderer!"))}else{const f=t.enablePrePassRenderer();f==null||f.markAsDirty(),f!=null&&f.generateNormalsInWorldSpace&&de.Error("ScreenSpaceReflectionPostProcess does not support generateNormalsInWorldSpace=true for the prepass renderer!"),this._prePassEffectConfiguration=new VYe}this._updateEffectDefines(),this.onApply=f=>{const p=this._geometryBufferRenderer,m=this._prePassRenderer;if(!m&&!p)return;if(p){const x=p.getTextureIndex(ps.POSITION_TEXTURE_TYPE),A=p.getTextureIndex(ps.REFLECTIVITY_TEXTURE_TYPE);f.setTexture("normalSampler",p.getGBuffer().textures[1]),f.setTexture("positionSampler",p.getGBuffer().textures[x]),f.setTexture("reflectivitySampler",p.getGBuffer().textures[A])}else if(m){const x=m.getIndex(1),A=m.getIndex(3),S=m.getIndex(6);f.setTexture("normalSampler",m.getRenderTarget().textures[S]),f.setTexture("positionSampler",m.getRenderTarget().textures[x]),f.setTexture("reflectivitySampler",m.getRenderTarget().textures[A])}const _=t.activeCamera;if(!_)return;const d=_.getViewMatrix(!0),h=_.getProjectionMatrix(!0);f.setMatrix("projection",h),f.setMatrix("view",d),f.setFloat("threshold",this.threshold),f.setFloat("reflectionSpecularFalloffExponent",this.reflectionSpecularFalloffExponent),f.setFloat("strength",this.strength),f.setFloat("stepSize",this.step),f.setFloat("roughnessFactor",this.roughnessFactor)},this._isSceneRightHanded=t.useRightHandedSystem}get enableSmoothReflections(){return this._enableSmoothReflections}set enableSmoothReflections(e){e!==this._enableSmoothReflections&&(this._enableSmoothReflections=e,this._updateEffectDefines())}get reflectionSamples(){return this._reflectionSamples}set reflectionSamples(e){e!==this._reflectionSamples&&(this._reflectionSamples=e,this._updateEffectDefines())}get smoothSteps(){return this._smoothSteps}set smoothSteps(e){e!==this._smoothSteps&&(this._smoothSteps=e,this._updateEffectDefines())}_updateEffectDefines(){const e=[];(this._geometryBufferRenderer||this._prePassRenderer)&&e.push("#define SSR_SUPPORTED"),this._enableSmoothReflections&&e.push("#define ENABLE_SMOOTH_REFLECTIONS"),this._isSceneRightHanded&&e.push("#define RIGHT_HANDED_SCENE"),e.push("#define REFLECTION_SAMPLES "+(this._reflectionSamples>>0)),e.push("#define SMOOTH_STEPS "+(this._smoothSteps>>0)),this.updateEffect(e.join(`
`))}static _Parse(e,t,i,s){return It.Parse(()=>new O4(e.name,i,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.textureType,e.reusable),e,i,s)}}F([G()],O4.prototype,"threshold",void 0),F([G()],O4.prototype,"strength",void 0),F([G()],O4.prototype,"reflectionSpecularFalloffExponent",void 0),F([G()],O4.prototype,"step",void 0),F([G()],O4.prototype,"roughnessFactor",void 0),F([G()],O4.prototype,"enableSmoothReflections",null),F([G()],O4.prototype,"reflectionSamples",null),F([G()],O4.prototype,"smoothSteps",null),ve("BABYLON.ScreenSpaceReflectionPostProcess",O4);const f7e="standardPixelShader",WYe=`uniform sampler2D textureSampler;varying vec2 vUV;
#define CUSTOM_FRAGMENT_DEFINITIONS
#if defined(PASS_POST_PROCESS)
void main(void)
{vec4 color=texture2D(textureSampler,vUV);gl_FragColor=color;}
#endif
#if defined(DOWN_SAMPLE_X4)
uniform vec2 dsOffsets[16];void main(void)
{vec4 average=vec4(0.0,0.0,0.0,0.0);average=texture2D(textureSampler,vUV+dsOffsets[0]);average+=texture2D(textureSampler,vUV+dsOffsets[1]);average+=texture2D(textureSampler,vUV+dsOffsets[2]);average+=texture2D(textureSampler,vUV+dsOffsets[3]);average+=texture2D(textureSampler,vUV+dsOffsets[4]);average+=texture2D(textureSampler,vUV+dsOffsets[5]);average+=texture2D(textureSampler,vUV+dsOffsets[6]);average+=texture2D(textureSampler,vUV+dsOffsets[7]);average+=texture2D(textureSampler,vUV+dsOffsets[8]);average+=texture2D(textureSampler,vUV+dsOffsets[9]);average+=texture2D(textureSampler,vUV+dsOffsets[10]);average+=texture2D(textureSampler,vUV+dsOffsets[11]);average+=texture2D(textureSampler,vUV+dsOffsets[12]);average+=texture2D(textureSampler,vUV+dsOffsets[13]);average+=texture2D(textureSampler,vUV+dsOffsets[14]);average+=texture2D(textureSampler,vUV+dsOffsets[15]);average/=16.0;gl_FragColor=average;}
#endif
#if defined(BRIGHT_PASS)
uniform vec2 dsOffsets[4];uniform float brightThreshold;void main(void)
{vec4 average=vec4(0.0,0.0,0.0,0.0);average=texture2D(textureSampler,vUV+vec2(dsOffsets[0].x,dsOffsets[0].y));average+=texture2D(textureSampler,vUV+vec2(dsOffsets[1].x,dsOffsets[1].y));average+=texture2D(textureSampler,vUV+vec2(dsOffsets[2].x,dsOffsets[2].y));average+=texture2D(textureSampler,vUV+vec2(dsOffsets[3].x,dsOffsets[3].y));average*=0.25;float luminance=length(average.rgb);if (luminance<brightThreshold) {average=vec4(0.0,0.0,0.0,1.0);}
gl_FragColor=average;}
#endif
#if defined(TEXTURE_ADDER)
uniform sampler2D otherSampler;uniform sampler2D lensSampler;uniform float exposure;void main(void)
{vec3 colour=texture2D(textureSampler,vUV).rgb;colour*=exposure;vec3 X=max(vec3(0.0,0.0,0.0),colour-0.004);vec3 retColor=(X*(6.2*X+0.5))/(X*(6.2*X+1.7)+0.06);colour=retColor*retColor;colour+=colour*texture2D(lensSampler,vUV).rgb;vec4 finalColor=vec4(colour.rgb,1.0)+texture2D(otherSampler,vUV);gl_FragColor=finalColor;}
#endif
#if defined(VLS)
#define PI 3.1415926535897932384626433832795
uniform mat4 shadowViewProjection;uniform mat4 lightWorld;uniform vec3 cameraPosition;uniform vec3 sunDirection;uniform vec3 sunColor;uniform vec2 depthValues;uniform float scatteringCoefficient;uniform float scatteringPower;uniform sampler2D shadowMapSampler;uniform sampler2D positionSampler;float computeScattering(float lightDotView)
{float result=1.0-scatteringCoefficient*scatteringCoefficient;result/=(4.0*PI*pow(1.0+scatteringCoefficient*scatteringCoefficient-(2.0*scatteringCoefficient)*lightDotView,1.5));return result;}
void main(void)
{vec3 worldPos=texture2D(positionSampler,vUV).rgb;vec3 startPosition=cameraPosition;vec3 rayVector=worldPos-startPosition;float rayLength=length(rayVector);vec3 rayDirection=rayVector/rayLength;float stepLength=rayLength/NB_STEPS;vec3 stepL=rayDirection*stepLength;vec3 currentPosition=startPosition;vec3 accumFog=vec3(0.0);for (int i=0; i<int(NB_STEPS); i++)
{vec4 worldInShadowCameraSpace=shadowViewProjection*vec4(currentPosition,1.0);float depthMetric= (worldInShadowCameraSpace.z+depthValues.x)/(depthValues.y);float shadowPixelDepth=clamp(depthMetric,0.0,1.0);worldInShadowCameraSpace.xyz/=worldInShadowCameraSpace.w;worldInShadowCameraSpace.xyz=0.5*worldInShadowCameraSpace.xyz+vec3(0.5);float shadowMapValue=texture2D(shadowMapSampler,worldInShadowCameraSpace.xy).r;if (shadowMapValue>shadowPixelDepth)
accumFog+=sunColor*computeScattering(dot(rayDirection,sunDirection));currentPosition+=stepL;}
accumFog/=NB_STEPS;vec3 color=accumFog*scatteringPower;gl_FragColor=vec4(color*exp(color) ,1.0);}
#endif
#if defined(VLSMERGE)
uniform sampler2D originalSampler;void main(void)
{gl_FragColor=texture2D(originalSampler,vUV)+texture2D(textureSampler,vUV);}
#endif
#if defined(LUMINANCE)
uniform vec2 lumOffsets[4];void main()
{float average=0.0;vec4 color=vec4(0.0);float maximum=-1e20;vec3 weight=vec3(0.299,0.587,0.114);for (int i=0; i<4; i++)
{color=texture2D(textureSampler,vUV+ lumOffsets[i]);float GreyValue=dot(color.rgb,vec3(0.33,0.33,0.33));
#ifdef WEIGHTED_AVERAGE
float GreyValue=dot(color.rgb,weight);
#endif
#ifdef BRIGHTNESS
float GreyValue=max(color.r,max(color.g,color.b));
#endif
#ifdef HSL_COMPONENT
float GreyValue=0.5*(max(color.r,max(color.g,color.b))+min(color.r,min(color.g,color.b)));
#endif
#ifdef MAGNITUDE
float GreyValue=length(color.rgb);
#endif
maximum=max(maximum,GreyValue);average+=(0.25*log(1e-5+GreyValue));}
average=exp(average);gl_FragColor=vec4(average,maximum,0.0,1.0);}
#endif
#if defined(LUMINANCE_DOWN_SAMPLE)
uniform vec2 dsOffsets[9];uniform float halfDestPixelSize;
#ifdef FINAL_DOWN_SAMPLER
#include<packingFunctions>
#endif
void main()
{vec4 color=vec4(0.0);float average=0.0;for (int i=0; i<9; i++)
{color=texture2D(textureSampler,vUV+vec2(halfDestPixelSize,halfDestPixelSize)+dsOffsets[i]);average+=color.r;}
average/=9.0;
#ifdef FINAL_DOWN_SAMPLER
gl_FragColor=pack(average);
#else
gl_FragColor=vec4(average,average,0.0,1.0);
#endif
}
#endif
#if defined(HDR)
uniform sampler2D textureAdderSampler;uniform float averageLuminance;void main()
{vec4 color=texture2D(textureAdderSampler,vUV);
#ifndef AUTO_EXPOSURE
vec4 adjustedColor=color/averageLuminance;color=adjustedColor;color.a=1.0;
#endif
gl_FragColor=color;}
#endif
#if defined(LENS_FLARE)
#define GHOSTS 3
uniform sampler2D lensColorSampler;uniform float strength;uniform float ghostDispersal;uniform float haloWidth;uniform vec2 resolution;uniform float distortionStrength;float hash(vec2 p)
{float h=dot(p,vec2(127.1,311.7));return -1.0+2.0*fract(sin(h)*43758.5453123);}
float noise(in vec2 p)
{vec2 i=floor(p);vec2 f=fract(p);vec2 u=f*f*(3.0-2.0*f);return mix(mix(hash(i+vec2(0.0,0.0)),
hash(i+vec2(1.0,0.0)),u.x),
mix(hash(i+vec2(0.0,1.0)),
hash(i+vec2(1.0,1.0)),u.x),u.y);}
float fbm(vec2 p)
{float f=0.0;f+=0.5000*noise(p); p*=2.02;f+=0.2500*noise(p); p*=2.03;f+=0.1250*noise(p); p*=2.01;f+=0.0625*noise(p); p*=2.04;f/=0.9375;return f;}
vec3 pattern(vec2 uv)
{vec2 p=-1.0+2.0*uv;float p2=dot(p,p);float f=fbm(vec2(15.0*p2))/2.0;float r=0.2+0.6*sin(12.5*length(uv-vec2(0.5)));float g=0.2+0.6*sin(20.5*length(uv-vec2(0.5)));float b=0.2+0.6*sin(17.2*length(uv-vec2(0.5)));return (1.0-f)*vec3(r,g,b);}
float luminance(vec3 color)
{return dot(color.rgb,vec3(0.2126,0.7152,0.0722));}
vec4 textureDistorted(sampler2D tex,vec2 texcoord,vec2 direction,vec3 distortion)
{return vec4(
texture2D(tex,texcoord+direction*distortion.r).r,
texture2D(tex,texcoord+direction*distortion.g).g,
texture2D(tex,texcoord+direction*distortion.b).b,
1.0
);}
void main(void)
{vec2 uv=-vUV+vec2(1.0);vec2 ghostDir=(vec2(0.5)-uv)*ghostDispersal;vec2 texelSize=1.0/resolution;vec3 distortion=vec3(-texelSize.x*distortionStrength,0.0,texelSize.x*distortionStrength);vec4 result=vec4(0.0);float ghostIndice=1.0;for (int i=0; i<GHOSTS; ++i)
{vec2 offset=fract(uv+ghostDir*ghostIndice);float weight=length(vec2(0.5)-offset)/length(vec2(0.5));weight=pow(1.0-weight,10.0);result+=textureDistorted(textureSampler,offset,normalize(ghostDir),distortion)*weight*strength;ghostIndice+=1.0;}
vec2 haloVec=normalize(ghostDir)*haloWidth;float weight=length(vec2(0.5)-fract(uv+haloVec))/length(vec2(0.5));weight=pow(1.0-weight,10.0);result+=textureDistorted(textureSampler,fract(uv+haloVec),normalize(ghostDir),distortion)*weight*strength;result*=texture2D(lensColorSampler,vec2(length(vec2(0.5)-uv)/length(vec2(0.5))));gl_FragColor=result;}
#endif
#if defined(LENS_FLARE_COMPOSE)
uniform sampler2D otherSampler;uniform sampler2D lensDirtSampler;uniform sampler2D lensStarSampler;uniform mat4 lensStarMatrix;void main(void)
{vec2 lensFlareCoords=(lensStarMatrix*vec4(vUV,1.0,1.0)).xy;vec4 lensMod=texture2D(lensDirtSampler,vUV);lensMod+=texture2D(lensStarSampler,vUV/*lensFlareCoords*/);vec4 result=texture2D(textureSampler,vUV)*lensMod;gl_FragColor=texture2D(otherSampler,vUV)+result;}
#endif
#if defined(DEPTH_OF_FIELD)
uniform sampler2D otherSampler;uniform sampler2D depthSampler;uniform float distance;void main(void)
{vec4 sharp=texture2D(otherSampler,vUV);vec4 blur=texture2D(textureSampler,vUV);float dist=clamp(texture2D(depthSampler,vUV).r*distance,0.0,1.0);float factor=0.0;if (dist<0.05)
factor=1.0;else if (dist<0.1)
factor=20.0*(0.1-dist);else if (dist<0.5)
factor=0.0;else
factor=2.0*(dist-0.5);factor=clamp(factor,0.0,0.90);gl_FragColor=mix(sharp,blur,factor);}
#endif
#if defined(MOTION_BLUR)
uniform mat4 inverseViewProjection;uniform mat4 prevViewProjection;uniform vec2 screenSize;uniform float motionScale;uniform float motionStrength;uniform sampler2D depthSampler;void main(void)
{vec2 texelSize=1.0/screenSize;float depth=texture2D(depthSampler,vUV).r;vec4 cpos=vec4(vUV*2.0-1.0,depth,1.0);cpos=cpos*inverseViewProjection;vec4 ppos=cpos*prevViewProjection;ppos.xyz/=ppos.w;ppos.xy=ppos.xy*0.5+0.5;vec2 velocity=(ppos.xy-vUV)*motionScale*motionStrength;float speed=length(velocity/texelSize);int nSamples=int(clamp(speed,1.0,MAX_MOTION_SAMPLES));vec4 result=texture2D(textureSampler,vUV);for (int i=1; i<int(MAX_MOTION_SAMPLES); ++i) {if (i>=nSamples)
break;vec2 offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);result+=texture2D(textureSampler,offset1);}
gl_FragColor=result/float(nSamples);}
#endif
`;H.ShadersStore[f7e]||(H.ShadersStore[f7e]=WYe);class jr extends Eb{get exposure(){return this._fixedExposure}set exposure(e){this._fixedExposure=e,this._currentExposure=e}get hdrAutoExposure(){return this._hdrAutoExposure}set hdrAutoExposure(e){if(this._hdrAutoExposure=e,this.hdrPostProcess){const t=["#define HDR"];e&&t.push("#define AUTO_EXPOSURE"),this.hdrPostProcess.updateEffect(t.join(`
`))}}get motionStrength(){return this._motionStrength}set motionStrength(e){this._motionStrength=e,this._isObjectBasedMotionBlur&&this.motionBlurPostProcess&&(this.motionBlurPostProcess.motionStrength=e)}get objectBasedMotionBlur(){return this._isObjectBasedMotionBlur}set objectBasedMotionBlur(e){const t=this._isObjectBasedMotionBlur!==e;this._isObjectBasedMotionBlur=e,t&&this._buildPipeline()}get BloomEnabled(){return this._bloomEnabled}set BloomEnabled(e){this._bloomEnabled!==e&&(this._bloomEnabled=e,this._buildPipeline())}get DepthOfFieldEnabled(){return this._depthOfFieldEnabled}set DepthOfFieldEnabled(e){this._depthOfFieldEnabled!==e&&(this._depthOfFieldEnabled=e,this._buildPipeline())}get LensFlareEnabled(){return this._lensFlareEnabled}set LensFlareEnabled(e){this._lensFlareEnabled!==e&&(this._lensFlareEnabled=e,this._buildPipeline())}get HDREnabled(){return this._hdrEnabled}set HDREnabled(e){this._hdrEnabled!==e&&(this._hdrEnabled=e,this._buildPipeline())}get VLSEnabled(){return this._vlsEnabled}set VLSEnabled(e){if(this._vlsEnabled!==e){if(e&&!this._scene.enableGeometryBufferRenderer()){de.Warn("Geometry renderer is not supported, cannot create volumetric lights in Standard Rendering Pipeline");return}this._vlsEnabled=e,this._buildPipeline()}}get MotionBlurEnabled(){return this._motionBlurEnabled}set MotionBlurEnabled(e){this._motionBlurEnabled!==e&&(this._motionBlurEnabled=e,this._buildPipeline())}get fxaaEnabled(){return this._fxaaEnabled}set fxaaEnabled(e){this._fxaaEnabled!==e&&(this._fxaaEnabled=e,this._buildPipeline())}get screenSpaceReflectionsEnabled(){return this._screenSpaceReflectionsEnabled}set screenSpaceReflectionsEnabled(e){this._screenSpaceReflectionsEnabled!==e&&(this._screenSpaceReflectionsEnabled=e,this._buildPipeline())}get volumetricLightStepsCount(){return this._volumetricLightStepsCount}set volumetricLightStepsCount(e){this.volumetricLightPostProcess&&this.volumetricLightPostProcess.updateEffect(`#define VLS
#define NB_STEPS `+e.toFixed(1)),this._volumetricLightStepsCount=e}get motionBlurSamples(){return this._motionBlurSamples}set motionBlurSamples(e){this.motionBlurPostProcess&&(this._isObjectBasedMotionBlur?this.motionBlurPostProcess.motionBlurSamples=e:this.motionBlurPostProcess.updateEffect(`#define MOTION_BLUR
#define MAX_MOTION_SAMPLES `+e.toFixed(1))),this._motionBlurSamples=e}get samples(){return this._samples}set samples(e){this._samples!==e&&(this._samples=e,this._buildPipeline())}constructor(e,t,i,s=null,r){super(t.getEngine(),e),this.downSampleX4PostProcess=null,this.brightPassPostProcess=null,this.blurHPostProcesses=[],this.blurVPostProcesses=[],this.textureAdderPostProcess=null,this.volumetricLightPostProcess=null,this.volumetricLightSmoothXPostProcess=null,this.volumetricLightSmoothYPostProcess=null,this.volumetricLightMergePostProces=null,this.volumetricLightFinalPostProcess=null,this.luminancePostProcess=null,this.luminanceDownSamplePostProcesses=[],this.hdrPostProcess=null,this.textureAdderFinalPostProcess=null,this.lensFlareFinalPostProcess=null,this.hdrFinalPostProcess=null,this.lensFlarePostProcess=null,this.lensFlareComposePostProcess=null,this.motionBlurPostProcess=null,this.depthOfFieldPostProcess=null,this.fxaaPostProcess=null,this.screenSpaceReflectionPostProcess=null,this.brightThreshold=1,this.blurWidth=512,this.horizontalBlur=!1,this.lensTexture=null,this.volumetricLightCoefficient=.2,this.volumetricLightPower=4,this.volumetricLightBlurScale=64,this.sourceLight=null,this.hdrMinimumLuminance=1,this.hdrDecreaseRate=.5,this.hdrIncreaseRate=.5,this.lensColorTexture=null,this.lensFlareStrength=20,this.lensFlareGhostDispersal=1.4,this.lensFlareHaloWidth=.7,this.lensFlareDistortionStrength=16,this.lensFlareBlurWidth=512,this.lensStarTexture=null,this.lensFlareDirtTexture=null,this.depthOfFieldDistance=10,this.depthOfFieldBlurWidth=64,this.animations=[],this._currentDepthOfFieldSource=null,this._fixedExposure=1,this._currentExposure=1,this._hdrAutoExposure=!1,this._hdrCurrentLuminance=1,this._motionStrength=1,this._isObjectBasedMotionBlur=!1,this._camerasToBeAttached=[],this._bloomEnabled=!1,this._depthOfFieldEnabled=!1,this._vlsEnabled=!1,this._lensFlareEnabled=!1,this._hdrEnabled=!1,this._motionBlurEnabled=!1,this._fxaaEnabled=!1,this._screenSpaceReflectionsEnabled=!1,this._motionBlurSamples=64,this._volumetricLightStepsCount=50,this._samples=1,this._cameras=r||t.cameras,this._cameras=this._cameras.slice(),this._camerasToBeAttached=this._cameras.slice(),this._scene=t,this._basePostProcess=s,this._ratio=i,this._floatTextureType=t.getEngine().getCaps().textureFloatRender?1:2,t.postProcessRenderPipelineManager.addPipeline(this),this._buildPipeline()}_buildPipeline(){const e=this._ratio,t=this._scene;this._disposePostProcesses(),this._cameras!==null&&(this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._cameras=this._camerasToBeAttached.slice()),this._reset(),this._screenSpaceReflectionsEnabled&&(this.screenSpaceReflectionPostProcess=new O4("HDRPass",t,e,null,be.BILINEAR_SAMPLINGMODE,t.getEngine(),!1,this._floatTextureType),this.screenSpaceReflectionPostProcess.onApplyObservable.add(()=>{this._currentDepthOfFieldSource=this.screenSpaceReflectionPostProcess}),this.addEffect(new Mr(t.getEngine(),"HDRScreenSpaceReflections",()=>this.screenSpaceReflectionPostProcess,!0))),this._basePostProcess?this.originalPostProcess=this._basePostProcess:this.originalPostProcess=new Mi("HDRPass","standard",[],[],e,null,be.BILINEAR_SAMPLINGMODE,t.getEngine(),!1,"#define PASS_POST_PROCESS",this._floatTextureType),this.originalPostProcess.autoClear=!this.screenSpaceReflectionPostProcess,this.originalPostProcess.onApplyObservable.add(()=>{this._currentDepthOfFieldSource=this.originalPostProcess}),this.addEffect(new Mr(t.getEngine(),"HDRPassPostProcess",()=>this.originalPostProcess,!0)),this._bloomEnabled&&(this._createDownSampleX4PostProcess(t,e/4),this._createBrightPassPostProcess(t,e/4),this._createBlurPostProcesses(t,e/4,1),this._createTextureAdderPostProcess(t,e),this.textureAdderFinalPostProcess=new Mi("HDRDepthOfFieldSource","standard",[],[],e,null,be.BILINEAR_SAMPLINGMODE,t.getEngine(),!1,"#define PASS_POST_PROCESS",0),this.addEffect(new Mr(t.getEngine(),"HDRBaseDepthOfFieldSource",()=>this.textureAdderFinalPostProcess,!0))),this._vlsEnabled&&(this._createVolumetricLightPostProcess(t,e),this.volumetricLightFinalPostProcess=new Mi("HDRVLSFinal","standard",[],[],e,null,be.BILINEAR_SAMPLINGMODE,t.getEngine(),!1,"#define PASS_POST_PROCESS",0),this.addEffect(new Mr(t.getEngine(),"HDRVLSFinal",()=>this.volumetricLightFinalPostProcess,!0))),this._lensFlareEnabled&&(this._createLensFlarePostProcess(t,e),this.lensFlareFinalPostProcess=new Mi("HDRPostLensFlareDepthOfFieldSource","standard",[],[],e,null,be.BILINEAR_SAMPLINGMODE,t.getEngine(),!1,"#define PASS_POST_PROCESS",0),this.addEffect(new Mr(t.getEngine(),"HDRPostLensFlareDepthOfFieldSource",()=>this.lensFlareFinalPostProcess,!0))),this._hdrEnabled&&(this._createLuminancePostProcesses(t,this._floatTextureType),this._createHdrPostProcess(t,e),this.hdrFinalPostProcess=new Mi("HDRPostHDReDepthOfFieldSource","standard",[],[],e,null,be.BILINEAR_SAMPLINGMODE,t.getEngine(),!1,"#define PASS_POST_PROCESS",0),this.addEffect(new Mr(t.getEngine(),"HDRPostHDReDepthOfFieldSource",()=>this.hdrFinalPostProcess,!0))),this._depthOfFieldEnabled&&(this._createBlurPostProcesses(t,e/2,3,"depthOfFieldBlurWidth"),this._createDepthOfFieldPostProcess(t,e)),this._motionBlurEnabled&&this._createMotionBlurPostProcess(t,e),this._fxaaEnabled&&(this.fxaaPostProcess=new WL("fxaa",1,null,be.BILINEAR_SAMPLINGMODE,t.getEngine(),!1,0),this.addEffect(new Mr(t.getEngine(),"HDRFxaa",()=>this.fxaaPostProcess,!0))),this._cameras!==null&&this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name,this._cameras),!this._enableMSAAOnFirstPostProcess(this._samples)&&this._samples>1&&de.Warn("MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0")}_createDownSampleX4PostProcess(e,t){const i=new Array(32);this.downSampleX4PostProcess=new Mi("HDRDownSampleX4","standard",["dsOffsets"],[],t,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define DOWN_SAMPLE_X4",this._floatTextureType),this.downSampleX4PostProcess.onApply=s=>{let r=0;const n=this.downSampleX4PostProcess.width,o=this.downSampleX4PostProcess.height;for(let l=-2;l<2;l++)for(let c=-2;c<2;c++)i[r]=(l+.5)*(1/n),i[r+1]=(c+.5)*(1/o),r+=2;s.setArray2("dsOffsets",i)},this.addEffect(new Mr(e.getEngine(),"HDRDownSampleX4",()=>this.downSampleX4PostProcess,!0))}_createBrightPassPostProcess(e,t){const i=new Array(8);this.brightPassPostProcess=new Mi("HDRBrightPass","standard",["dsOffsets","brightThreshold"],[],t,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define BRIGHT_PASS",this._floatTextureType),this.brightPassPostProcess.onApply=s=>{const r=1/this.brightPassPostProcess.width,n=1/this.brightPassPostProcess.height;i[0]=-.5*r,i[1]=.5*n,i[2]=.5*r,i[3]=.5*n,i[4]=-.5*r,i[5]=-.5*n,i[6]=.5*r,i[7]=-.5*n,s.setArray2("dsOffsets",i),s.setFloat("brightThreshold",this.brightThreshold)},this.addEffect(new Mr(e.getEngine(),"HDRBrightPass",()=>this.brightPassPostProcess,!0))}_createBlurPostProcesses(e,t,i,s="blurWidth"){const r=e.getEngine(),n=new tc("HDRBlurH_"+i,new Ue(1,0),this[s],t,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,this._floatTextureType),o=new tc("HDRBlurV_"+i,new Ue(0,1),this[s],t,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,this._floatTextureType);n.onActivateObservable.add(()=>{const l=n.width/r.getRenderWidth();n.kernel=this[s]*l}),o.onActivateObservable.add(()=>{const l=o.height/r.getRenderHeight();o.kernel=this.horizontalBlur?64*l:this[s]*l}),this.addEffect(new Mr(e.getEngine(),"HDRBlurH"+i,()=>n,!0)),this.addEffect(new Mr(e.getEngine(),"HDRBlurV"+i,()=>o,!0)),this.blurHPostProcesses.push(n),this.blurVPostProcesses.push(o)}_createTextureAdderPostProcess(e,t){this.textureAdderPostProcess=new Mi("HDRTextureAdder","standard",["exposure"],["otherSampler","lensSampler"],t,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define TEXTURE_ADDER",this._floatTextureType),this.textureAdderPostProcess.onApply=i=>{i.setTextureFromPostProcess("otherSampler",this._vlsEnabled?this._currentDepthOfFieldSource:this.originalPostProcess),i.setTexture("lensSampler",this.lensTexture),i.setFloat("exposure",this._currentExposure),this._currentDepthOfFieldSource=this.textureAdderFinalPostProcess},this.addEffect(new Mr(e.getEngine(),"HDRTextureAdder",()=>this.textureAdderPostProcess,!0))}_createVolumetricLightPostProcess(e,t){const i=e.enableGeometryBufferRenderer();i.enablePosition=!0;const s=i.getGBuffer();this.volumetricLightPostProcess=new Mi("HDRVLS","standard",["shadowViewProjection","cameraPosition","sunDirection","sunColor","scatteringCoefficient","scatteringPower","depthValues"],["shadowMapSampler","positionSampler"],t/8,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,`#define VLS
#define NB_STEPS `+this._volumetricLightStepsCount.toFixed(1));const r=Ue.Zero();this.volumetricLightPostProcess.onApply=n=>{if(this.sourceLight&&this.sourceLight.getShadowGenerator()&&this._scene.activeCamera){const o=this.sourceLight.getShadowGenerator();n.setTexture("shadowMapSampler",o.getShadowMap()),n.setTexture("positionSampler",s.textures[2]),n.setColor3("sunColor",this.sourceLight.diffuse),n.setVector3("sunDirection",this.sourceLight.getShadowDirection()),n.setVector3("cameraPosition",this._scene.activeCamera.globalPosition),n.setMatrix("shadowViewProjection",o.getTransformMatrix()),n.setFloat("scatteringCoefficient",this.volumetricLightCoefficient),n.setFloat("scatteringPower",this.volumetricLightPower),r.x=this.sourceLight.getDepthMinZ(this._scene.activeCamera),r.y=this.sourceLight.getDepthMaxZ(this._scene.activeCamera),n.setVector2("depthValues",r)}},this.addEffect(new Mr(e.getEngine(),"HDRVLS",()=>this.volumetricLightPostProcess,!0)),this._createBlurPostProcesses(e,t/4,0,"volumetricLightBlurScale"),this.volumetricLightMergePostProces=new Mi("HDRVLSMerge","standard",[],["originalSampler"],t,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define VLSMERGE"),this.volumetricLightMergePostProces.onApply=n=>{n.setTextureFromPostProcess("originalSampler",this._bloomEnabled?this.textureAdderFinalPostProcess:this.originalPostProcess),this._currentDepthOfFieldSource=this.volumetricLightFinalPostProcess},this.addEffect(new Mr(e.getEngine(),"HDRVLSMerge",()=>this.volumetricLightMergePostProces,!0))}_createLuminancePostProcesses(e,t){let i=Math.pow(3,jr.LuminanceSteps);this.luminancePostProcess=new Mi("HDRLuminance","standard",["lumOffsets"],[],{width:i,height:i},null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define LUMINANCE",t);const s=[];this.luminancePostProcess.onApply=n=>{const o=1/this.luminancePostProcess.width,l=1/this.luminancePostProcess.height;s[0]=-.5*o,s[1]=.5*l,s[2]=.5*o,s[3]=.5*l,s[4]=-.5*o,s[5]=-.5*l,s[6]=.5*o,s[7]=-.5*l,n.setArray2("lumOffsets",s)},this.addEffect(new Mr(e.getEngine(),"HDRLuminance",()=>this.luminancePostProcess,!0));for(let n=jr.LuminanceSteps-1;n>=0;n--){i=Math.pow(3,n);let o=`#define LUMINANCE_DOWN_SAMPLE
`;n===0&&(o+="#define FINAL_DOWN_SAMPLER");const l=new Mi("HDRLuminanceDownSample"+n,"standard",["dsOffsets","halfDestPixelSize"],[],{width:i,height:i},null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,o,t);this.luminanceDownSamplePostProcesses.push(l)}let r=this.luminancePostProcess;this.luminanceDownSamplePostProcesses.forEach((n,o)=>{const l=new Array(18);n.onApply=c=>{if(!r)return;let u=0;for(let f=-1;f<2;f++)for(let p=-1;p<2;p++)l[u]=f/r.width,l[u+1]=p/r.height,u+=2;c.setArray2("dsOffsets",l),c.setFloat("halfDestPixelSize",.5/r.width),o===this.luminanceDownSamplePostProcesses.length-1?r=this.luminancePostProcess:r=n},o===this.luminanceDownSamplePostProcesses.length-1&&(n.onAfterRender=()=>{const c=e.getEngine().readPixels(0,0,1,1),u=new Yt(1/(255*255*255),1/(255*255),1/255,1);c.then(f=>{const p=new Uint8Array(f.buffer);this._hdrCurrentLuminance=(p[0]*u.x+p[1]*u.y+p[2]*u.z+p[3]*u.w)/100})}),this.addEffect(new Mr(e.getEngine(),"HDRLuminanceDownSample"+o,()=>n,!0))})}_createHdrPostProcess(e,t){const i=["#define HDR"];this._hdrAutoExposure&&i.push("#define AUTO_EXPOSURE"),this.hdrPostProcess=new Mi("HDR","standard",["averageLuminance"],["textureAdderSampler"],t,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,i.join(`
`),0);let s=1,r=0,n=0;this.hdrPostProcess.onApply=o=>{if(o.setTextureFromPostProcess("textureAdderSampler",this._currentDepthOfFieldSource),r+=e.getEngine().getDeltaTime(),s<0)s=this._hdrCurrentLuminance;else{const l=(n-r)/1e3;this._hdrCurrentLuminance<s+this.hdrDecreaseRate*l?s+=this.hdrDecreaseRate*l:this._hdrCurrentLuminance>s-this.hdrIncreaseRate*l?s-=this.hdrIncreaseRate*l:s=this._hdrCurrentLuminance}this.hdrAutoExposure?this._currentExposure=this._fixedExposure/s:(s=Os(s,this.hdrMinimumLuminance,1e20),o.setFloat("averageLuminance",s)),n=r,this._currentDepthOfFieldSource=this.hdrFinalPostProcess},this.addEffect(new Mr(e.getEngine(),"HDR",()=>this.hdrPostProcess,!0))}_createLensFlarePostProcess(e,t){this.lensFlarePostProcess=new Mi("HDRLensFlare","standard",["strength","ghostDispersal","haloWidth","resolution","distortionStrength"],["lensColorSampler"],t/2,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define LENS_FLARE",0),this.addEffect(new Mr(e.getEngine(),"HDRLensFlare",()=>this.lensFlarePostProcess,!0)),this._createBlurPostProcesses(e,t/4,2,"lensFlareBlurWidth"),this.lensFlareComposePostProcess=new Mi("HDRLensFlareCompose","standard",["lensStarMatrix"],["otherSampler","lensDirtSampler","lensStarSampler"],t,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define LENS_FLARE_COMPOSE",0),this.addEffect(new Mr(e.getEngine(),"HDRLensFlareCompose",()=>this.lensFlareComposePostProcess,!0));const i=new Ue(0,0);this.lensFlarePostProcess.externalTextureSamplerBinding=!0,this.lensFlarePostProcess.onApply=n=>{n.setTextureFromPostProcess("textureSampler",this._bloomEnabled?this.blurHPostProcesses[0]:this.originalPostProcess),n.setTexture("lensColorSampler",this.lensColorTexture),n.setFloat("strength",this.lensFlareStrength),n.setFloat("ghostDispersal",this.lensFlareGhostDispersal),n.setFloat("haloWidth",this.lensFlareHaloWidth),i.x=this.lensFlarePostProcess.width,i.y=this.lensFlarePostProcess.height,n.setVector2("resolution",i),n.setFloat("distortionStrength",this.lensFlareDistortionStrength)};const s=me.FromValues(2,0,-1,0,0,2,-1,0,0,0,1,0,0,0,0,1),r=me.FromValues(.5,0,.5,0,0,.5,.5,0,0,0,1,0,0,0,0,1);this.lensFlareComposePostProcess.onApply=n=>{if(!this._scene.activeCamera)return;n.setTextureFromPostProcess("otherSampler",this.lensFlarePostProcess),n.setTexture("lensDirtSampler",this.lensFlareDirtTexture),n.setTexture("lensStarSampler",this.lensStarTexture);const o=this._scene.activeCamera.getViewMatrix().getRow(0),l=this._scene.activeCamera.getViewMatrix().getRow(2);let c=P.Dot(o.toVector3(),new P(1,0,0))+P.Dot(l.toVector3(),new P(0,0,1));c*=4;const u=me.FromValues(Math.cos(c)*.5,-Math.sin(c),0,0,Math.sin(c),Math.cos(c)*.5,0,0,0,0,1,0,0,0,0,1),f=r.multiply(u).multiply(s);n.setMatrix("lensStarMatrix",f),this._currentDepthOfFieldSource=this.lensFlareFinalPostProcess}}_createDepthOfFieldPostProcess(e,t){this.depthOfFieldPostProcess=new Mi("HDRDepthOfField","standard",["distance"],["otherSampler","depthSampler"],t,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define DEPTH_OF_FIELD",0),this.depthOfFieldPostProcess.onApply=i=>{i.setTextureFromPostProcess("otherSampler",this._currentDepthOfFieldSource),i.setTexture("depthSampler",this._getDepthTexture()),i.setFloat("distance",this.depthOfFieldDistance)},this.addEffect(new Mr(e.getEngine(),"HDRDepthOfField",()=>this.depthOfFieldPostProcess,!0))}_createMotionBlurPostProcess(e,t){if(this._isObjectBasedMotionBlur){const i=new g9("HDRMotionBlur",e,t,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,0);i.motionStrength=this.motionStrength,i.motionBlurSamples=this.motionBlurSamples,this.motionBlurPostProcess=i}else{this.motionBlurPostProcess=new Mi("HDRMotionBlur","standard",["inverseViewProjection","prevViewProjection","screenSize","motionScale","motionStrength"],["depthSampler"],t,null,be.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,`#define MOTION_BLUR
#define MAX_MOTION_SAMPLES `+this.motionBlurSamples.toFixed(1),0);let i=0,s=me.Identity();const r=me.Identity();let n=me.Identity();const o=Ue.Zero();this.motionBlurPostProcess.onApply=l=>{n=e.getProjectionMatrix().multiply(e.getViewMatrix()),n.invertToRef(r),l.setMatrix("inverseViewProjection",r),l.setMatrix("prevViewProjection",s),s=n,o.x=this.motionBlurPostProcess.width,o.y=this.motionBlurPostProcess.height,l.setVector2("screenSize",o),i=e.getEngine().getFps()/60,l.setFloat("motionScale",i),l.setFloat("motionStrength",this.motionStrength),l.setTexture("depthSampler",this._getDepthTexture())}}this.addEffect(new Mr(e.getEngine(),"HDRMotionBlur",()=>this.motionBlurPostProcess,!0))}_getDepthTexture(){return this._scene.getEngine().getCaps().drawBuffersExtension?this._scene.enableGeometryBufferRenderer().getGBuffer().textures[0]:this._scene.enableDepthRenderer().getDepthMap()}_disposePostProcesses(){for(let e=0;e<this._cameras.length;e++){const t=this._cameras[e];this.originalPostProcess&&this.originalPostProcess.dispose(t),this.screenSpaceReflectionPostProcess&&this.screenSpaceReflectionPostProcess.dispose(t),this.downSampleX4PostProcess&&this.downSampleX4PostProcess.dispose(t),this.brightPassPostProcess&&this.brightPassPostProcess.dispose(t),this.textureAdderPostProcess&&this.textureAdderPostProcess.dispose(t),this.volumetricLightPostProcess&&this.volumetricLightPostProcess.dispose(t),this.volumetricLightSmoothXPostProcess&&this.volumetricLightSmoothXPostProcess.dispose(t),this.volumetricLightSmoothYPostProcess&&this.volumetricLightSmoothYPostProcess.dispose(t),this.volumetricLightMergePostProces&&this.volumetricLightMergePostProces.dispose(t),this.volumetricLightFinalPostProcess&&this.volumetricLightFinalPostProcess.dispose(t),this.lensFlarePostProcess&&this.lensFlarePostProcess.dispose(t),this.lensFlareComposePostProcess&&this.lensFlareComposePostProcess.dispose(t);for(let i=0;i<this.luminanceDownSamplePostProcesses.length;i++)this.luminanceDownSamplePostProcesses[i].dispose(t);this.luminancePostProcess&&this.luminancePostProcess.dispose(t),this.hdrPostProcess&&this.hdrPostProcess.dispose(t),this.hdrFinalPostProcess&&this.hdrFinalPostProcess.dispose(t),this.depthOfFieldPostProcess&&this.depthOfFieldPostProcess.dispose(t),this.motionBlurPostProcess&&this.motionBlurPostProcess.dispose(t),this.fxaaPostProcess&&this.fxaaPostProcess.dispose(t);for(let i=0;i<this.blurHPostProcesses.length;i++)this.blurHPostProcesses[i].dispose(t);for(let i=0;i<this.blurVPostProcesses.length;i++)this.blurVPostProcesses[i].dispose(t)}this.originalPostProcess=null,this.downSampleX4PostProcess=null,this.brightPassPostProcess=null,this.textureAdderPostProcess=null,this.textureAdderFinalPostProcess=null,this.volumetricLightPostProcess=null,this.volumetricLightSmoothXPostProcess=null,this.volumetricLightSmoothYPostProcess=null,this.volumetricLightMergePostProces=null,this.volumetricLightFinalPostProcess=null,this.lensFlarePostProcess=null,this.lensFlareComposePostProcess=null,this.luminancePostProcess=null,this.hdrPostProcess=null,this.hdrFinalPostProcess=null,this.depthOfFieldPostProcess=null,this.motionBlurPostProcess=null,this.fxaaPostProcess=null,this.screenSpaceReflectionPostProcess=null,this.luminanceDownSamplePostProcesses.length=0,this.blurHPostProcesses.length=0,this.blurVPostProcesses.length=0}dispose(){this._disposePostProcesses(),this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),super.dispose()}serialize(){const e=It.Serialize(this);return this.sourceLight&&(e.sourceLightId=this.sourceLight.id),this.screenSpaceReflectionPostProcess&&(e.screenSpaceReflectionPostProcess=It.Serialize(this.screenSpaceReflectionPostProcess)),e.customType="StandardRenderingPipeline",e}static Parse(e,t,i){const s=It.Parse(()=>new jr(e._name,t,e._ratio),e,t,i);return e.sourceLightId&&(s.sourceLight=t.getLightById(e.sourceLightId)),e.screenSpaceReflectionPostProcess&&It.Parse(()=>s.screenSpaceReflectionPostProcess,e.screenSpaceReflectionPostProcess,t,i),s}}jr.LuminanceSteps=6,F([G()],jr.prototype,"brightThreshold",void 0),F([G()],jr.prototype,"blurWidth",void 0),F([G()],jr.prototype,"horizontalBlur",void 0),F([G()],jr.prototype,"exposure",null),F([Yi("lensTexture")],jr.prototype,"lensTexture",void 0),F([G()],jr.prototype,"volumetricLightCoefficient",void 0),F([G()],jr.prototype,"volumetricLightPower",void 0),F([G()],jr.prototype,"volumetricLightBlurScale",void 0),F([G()],jr.prototype,"hdrMinimumLuminance",void 0),F([G()],jr.prototype,"hdrDecreaseRate",void 0),F([G()],jr.prototype,"hdrIncreaseRate",void 0),F([G()],jr.prototype,"hdrAutoExposure",null),F([Yi("lensColorTexture")],jr.prototype,"lensColorTexture",void 0),F([G()],jr.prototype,"lensFlareStrength",void 0),F([G()],jr.prototype,"lensFlareGhostDispersal",void 0),F([G()],jr.prototype,"lensFlareHaloWidth",void 0),F([G()],jr.prototype,"lensFlareDistortionStrength",void 0),F([G()],jr.prototype,"lensFlareBlurWidth",void 0),F([Yi("lensStarTexture")],jr.prototype,"lensStarTexture",void 0),F([Yi("lensFlareDirtTexture")],jr.prototype,"lensFlareDirtTexture",void 0),F([G()],jr.prototype,"depthOfFieldDistance",void 0),F([G()],jr.prototype,"depthOfFieldBlurWidth",void 0),F([G()],jr.prototype,"motionStrength",null),F([G()],jr.prototype,"objectBasedMotionBlur",null),F([G()],jr.prototype,"_ratio",void 0),F([G()],jr.prototype,"BloomEnabled",null),F([G()],jr.prototype,"DepthOfFieldEnabled",null),F([G()],jr.prototype,"LensFlareEnabled",null),F([G()],jr.prototype,"HDREnabled",null),F([G()],jr.prototype,"VLSEnabled",null),F([G()],jr.prototype,"MotionBlurEnabled",null),F([G()],jr.prototype,"fxaaEnabled",null),F([G()],jr.prototype,"screenSpaceReflectionsEnabled",null),F([G()],jr.prototype,"volumetricLightStepsCount",null),F([G()],jr.prototype,"motionBlurSamples",null),F([G()],jr.prototype,"samples",null),ve("BABYLON.StandardRenderingPipeline",jr);class HYe{constructor(e=!1){this.enabled=!1,this.name="screenSpaceReflections2",this.texturesRequired=[6,3],this.texturesRequired.push(e?10:5)}}class ma extends Eb{set samples(e){this._samples!==e&&(this._samples=e,this._ssrPostProcess&&(this._ssrPostProcess.samples=this.samples))}get samples(){return this._samples}get maxDistance(){return this._thinSSRRenderingPipeline.maxDistance}set maxDistance(e){this._thinSSRRenderingPipeline.maxDistance=e}get step(){return this._thinSSRRenderingPipeline.step}set step(e){this._thinSSRRenderingPipeline.step=e}get thickness(){return this._thinSSRRenderingPipeline.thickness}set thickness(e){this._thinSSRRenderingPipeline.thickness=e}get strength(){return this._thinSSRRenderingPipeline.strength}set strength(e){this._thinSSRRenderingPipeline.strength=e}get reflectionSpecularFalloffExponent(){return this._thinSSRRenderingPipeline.reflectionSpecularFalloffExponent}set reflectionSpecularFalloffExponent(e){this._thinSSRRenderingPipeline.reflectionSpecularFalloffExponent=e}get maxSteps(){return this._thinSSRRenderingPipeline.maxSteps}set maxSteps(e){this._thinSSRRenderingPipeline.maxSteps=e}get roughnessFactor(){return this._thinSSRRenderingPipeline.roughnessFactor}set roughnessFactor(e){this._thinSSRRenderingPipeline.roughnessFactor=e}get selfCollisionNumSkip(){return this._thinSSRRenderingPipeline.selfCollisionNumSkip}set selfCollisionNumSkip(e){this._thinSSRRenderingPipeline.selfCollisionNumSkip=e}get reflectivityThreshold(){return this._thinSSRRenderingPipeline.reflectivityThreshold}set reflectivityThreshold(e){const t=this.reflectivityThreshold;e!==t&&(this._thinSSRRenderingPipeline.reflectivityThreshold=e,(e===0&&t!==0||e!==0&&t===0)&&this._buildPipeline())}get ssrDownsample(){return this._thinSSRRenderingPipeline.ssrDownsample}set ssrDownsample(e){this._thinSSRRenderingPipeline.ssrDownsample=e,this._buildPipeline()}get blurDispersionStrength(){return this._thinSSRRenderingPipeline.blurDispersionStrength}set blurDispersionStrength(e){const t=this.blurDispersionStrength;e!==t&&(this._thinSSRRenderingPipeline.blurDispersionStrength=e,(e===0&&t!==0||e!==0&&t===0)&&this._buildPipeline())}_useBlur(){return this.blurDispersionStrength>0}get blurDownsample(){return this._thinSSRRenderingPipeline.blurDownsample}set blurDownsample(e){this._thinSSRRenderingPipeline.blurDownsample=e,this._buildPipeline()}get enableSmoothReflections(){return this._thinSSRRenderingPipeline.enableSmoothReflections}set enableSmoothReflections(e){this._thinSSRRenderingPipeline.enableSmoothReflections=e}get _useScreenspaceDepth(){return this._thinSSRRenderingPipeline.useScreenspaceDepth}get environmentTexture(){return this._thinSSRRenderingPipeline.environmentTexture}set environmentTexture(e){this._thinSSRRenderingPipeline.environmentTexture=e}get environmentTextureIsProbe(){return this._thinSSRRenderingPipeline.environmentTextureIsProbe}set environmentTextureIsProbe(e){this._thinSSRRenderingPipeline.environmentTextureIsProbe=e}get attenuateScreenBorders(){return this._thinSSRRenderingPipeline.attenuateScreenBorders}set attenuateScreenBorders(e){this._thinSSRRenderingPipeline.attenuateScreenBorders=e}get attenuateIntersectionDistance(){return this._thinSSRRenderingPipeline.attenuateIntersectionDistance}set attenuateIntersectionDistance(e){this._thinSSRRenderingPipeline.attenuateIntersectionDistance=e}get attenuateIntersectionIterations(){return this._thinSSRRenderingPipeline.attenuateIntersectionIterations}set attenuateIntersectionIterations(e){this._thinSSRRenderingPipeline.attenuateIntersectionIterations=e}get attenuateFacingCamera(){return this._thinSSRRenderingPipeline.attenuateFacingCamera}set attenuateFacingCamera(e){this._thinSSRRenderingPipeline.attenuateFacingCamera=e}get attenuateBackfaceReflection(){return this._thinSSRRenderingPipeline.attenuateBackfaceReflection}set attenuateBackfaceReflection(e){this._thinSSRRenderingPipeline.attenuateBackfaceReflection=e}get clipToFrustum(){return this._thinSSRRenderingPipeline.clipToFrustum}set clipToFrustum(e){this._thinSSRRenderingPipeline.clipToFrustum=e}get useFresnel(){return this._thinSSRRenderingPipeline.useFresnel}set useFresnel(e){this._thinSSRRenderingPipeline.useFresnel=e,this._buildPipeline()}get enableAutomaticThicknessComputation(){return this._thinSSRRenderingPipeline.enableAutomaticThicknessComputation}set enableAutomaticThicknessComputation(e){this._thinSSRRenderingPipeline.enableAutomaticThicknessComputation=e,this._buildPipeline()}get backfaceDepthRenderer(){return this._depthRenderer}get backfaceDepthTextureDownsample(){return this._backfaceDepthTextureDownsample}set backfaceDepthTextureDownsample(e){this._backfaceDepthTextureDownsample!==e&&(this._backfaceDepthTextureDownsample=e,this._resizeDepthRenderer())}get backfaceForceDepthWriteTransparentMeshes(){return this._backfaceForceDepthWriteTransparentMeshes}set backfaceForceDepthWriteTransparentMeshes(e){this._backfaceForceDepthWriteTransparentMeshes!==e&&(this._backfaceForceDepthWriteTransparentMeshes=e,this._depthRenderer&&(this._depthRenderer.forceDepthWriteTransparentMeshes=e))}get isEnabled(){return this._isEnabled}set isEnabled(e){this._isEnabled!==e&&(this._isEnabled=e,e?e&&(this._isDirty?this._buildPipeline():this._cameras!==null&&this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name,this._cameras)):this._cameras!==null&&(this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._cameras=this._camerasToBeAttached.slice()))}get inputTextureColorIsInGammaSpace(){return this._thinSSRRenderingPipeline.inputTextureColorIsInGammaSpace}set inputTextureColorIsInGammaSpace(e){this._thinSSRRenderingPipeline.inputTextureColorIsInGammaSpace=e,this._buildPipeline()}get generateOutputInGammaSpace(){return this._thinSSRRenderingPipeline.generateOutputInGammaSpace}set generateOutputInGammaSpace(e){this._thinSSRRenderingPipeline.generateOutputInGammaSpace=e,this._buildPipeline()}get debug(){return this._thinSSRRenderingPipeline.debug}set debug(e){this._thinSSRRenderingPipeline.debug=e,this._buildPipeline()}getScene(){return this._scene}get _geometryBufferRenderer(){return this._forceGeometryBuffer?this._scene.geometryBufferRenderer:null}get _prePassRenderer(){return this._forceGeometryBuffer?null:this._scene.prePassRenderer}get scene(){return this._scene}get isSupported(){const e=this._scene.getEngine().getCaps();return e.drawBuffersExtension&&e.texelFetch}constructor(e,t,i,s=!1,r=0,n=!1){if(super(t.getEngine(),e),this.SSRRenderEffect="SSRRenderEffect",this.SSRBlurRenderEffect="SSRBlurRenderEffect",this.SSRCombineRenderEffect="SSRCombineRenderEffect",this._samples=1,this._backfaceDepthTextureDownsample=0,this._backfaceForceDepthWriteTransparentMeshes=!0,this._isEnabled=!0,this._forceGeometryBuffer=!1,this._isDirty=!1,this._camerasToBeAttached=[],this._thinSSRRenderingPipeline=new Xpe(e,t),this._thinSSRRenderingPipeline.isSSRSupported=!1,this._thinSSRRenderingPipeline.useScreenspaceDepth=n,this._cameras=i||t.cameras,this._cameras=this._cameras.slice(),this._camerasToBeAttached=this._cameras.slice(),this._scene=t,this._textureType=r,this._forceGeometryBuffer=s,this.isSupported){if(this._createSSRPostProcess(),t.postProcessRenderPipelineManager.addPipeline(this),this._forceGeometryBuffer){const o=t.enableGeometryBufferRenderer();o&&(o.enableReflectivity=!0,o.useSpecificClearForDepthTexture=!0,o.enableScreenspaceDepth=this._useScreenspaceDepth,o.enableDepth=!this._useScreenspaceDepth)}else{const o=t.enablePrePassRenderer();o&&(o.useSpecificClearForDepthTexture=!0,o.markAsDirty())}this._thinSSRRenderingPipeline.isSSRSupported=!!this._geometryBufferRenderer||!!this._prePassRenderer,this._buildPipeline()}}getClassName(){return"SSRRenderingPipeline"}addCamera(e){this._camerasToBeAttached.push(e),this._buildPipeline()}removeCamera(e){const t=this._camerasToBeAttached.indexOf(e);this._camerasToBeAttached.splice(t,1),this._buildPipeline()}dispose(e=!1){this._disposeDepthRenderer(),this._disposeSSRPostProcess(),this._disposeBlurPostProcesses(),e&&this._scene.disableGeometryBufferRenderer(),this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._thinSSRRenderingPipeline.dispose(),super.dispose()}_getTextureSize(){var s,r;const e=this._scene.getEngine(),t=this._prePassRenderer;let i={width:e.getRenderWidth(),height:e.getRenderHeight()};if(t&&((s=this._scene.activeCamera)==null?void 0:s._getFirstPostProcess())===this._ssrPostProcess){const n=t.getRenderTarget();n&&n.textures&&(i=n.textures[t.getIndex(4)].getSize())}else(r=this._ssrPostProcess)!=null&&r.inputTexture&&(i.width=this._ssrPostProcess.inputTexture.width,i.height=this._ssrPostProcess.inputTexture.height);return i}_buildPipeline(){var t,i,s;if(!this.isSupported)return;if(!this._isEnabled){this._isDirty=!0;return}this._isDirty=!1;const e=this._scene.getEngine();if(this._disposeDepthRenderer(),this._cameras!==null&&(this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._cameras=this._camerasToBeAttached.slice(),this._cameras.length>0&&(this._thinSSRRenderingPipeline.camera=this._cameras[0])),this._reset(),this._thinSSRRenderingPipeline.normalsAreInWorldSpace=!!(((t=this._geometryBufferRenderer)==null?void 0:t.generateNormalsInWorldSpace)??((i=this._prePassRenderer)==null?void 0:i.generateNormalsInWorldSpace)),this.enableAutomaticThicknessComputation){const r=(s=this._cameras)==null?void 0:s[0];r&&(this._depthRendererCamera=r,this._depthRenderer=new ub(this._scene,void 0,void 0,this._useScreenspaceDepth,1,!this._useScreenspaceDepth,"SSRBackDepth"),this._useScreenspaceDepth||(this._depthRenderer.clearColor.r=1e8),this._depthRenderer.reverseCulling=!0,this._depthRenderer.forceDepthWriteTransparentMeshes=this.backfaceForceDepthWriteTransparentMeshes,this._resizeDepthRenderer(),r.customRenderTargets.push(this._depthRenderer.getDepthMap()))}this.addEffect(new Mr(e,this.SSRRenderEffect,()=>this._ssrPostProcess,!0)),this._disposeBlurPostProcesses(),this._useBlur()&&(this._createBlurAndCombinerPostProcesses(),this.addEffect(new Mr(e,this.SSRBlurRenderEffect,()=>[this._blurPostProcessX,this._blurPostProcessY],!0)),this.addEffect(new Mr(e,this.SSRCombineRenderEffect,()=>this._blurCombinerPostProcess,!0))),this._cameras!==null&&this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name,this._cameras)}_resizeDepthRenderer(){if(!this._depthRenderer)return;const e=this._getTextureSize(),t=this._depthRenderer.getDepthMap().getSize(),i=Math.floor(e.width/(this.backfaceDepthTextureDownsample+1)),s=Math.floor(e.height/(this.backfaceDepthTextureDownsample+1));(t.width!==i||t.height!==s)&&this._depthRenderer.getDepthMap().resize({width:i,height:s})}_disposeDepthRenderer(){if(this._depthRenderer){if(this._depthRendererCamera){const e=this._depthRendererCamera.customRenderTargets.indexOf(this._depthRenderer.getDepthMap())??-1;e!==-1&&this._depthRendererCamera.customRenderTargets.splice(e,1)}this._depthRendererCamera=null,this._depthRenderer.getDepthMap().dispose()}this._depthRenderer=null}_disposeBlurPostProcesses(){var e,t,i;for(let s=0;s<this._cameras.length;s++){const r=this._cameras[s];(e=this._blurPostProcessX)==null||e.dispose(r),(t=this._blurPostProcessY)==null||t.dispose(r),(i=this._blurCombinerPostProcess)==null||i.dispose(r)}this._blurPostProcessX=null,this._blurPostProcessY=null,this._blurCombinerPostProcess=null}_disposeSSRPostProcess(){var e;for(let t=0;t<this._cameras.length;t++){const i=this._cameras[t];(e=this._ssrPostProcess)==null||e.dispose(i)}this._ssrPostProcess=null}_createSSRPostProcess(){this._ssrPostProcess=new Mi("ssr",a_.FragmentUrl,{uniformNames:a_.Uniforms,samplerNames:a_.Samplers,size:1,samplingMode:2,engine:this._scene.getEngine(),textureType:this._textureType,effectWrapper:this._thinSSRRenderingPipeline._ssrPostProcess}),this._ssrPostProcess.onApply=e=>{this._resizeDepthRenderer();const t=this._geometryBufferRenderer,i=this._prePassRenderer;if(!i&&!t)return;if(t){const r=t.getTextureIndex(ps.REFLECTIVITY_TEXTURE_TYPE),n=t.getTextureIndex(ps.NORMAL_TEXTURE_TYPE);if(e.setTexture("normalSampler",t.getGBuffer().textures[n]),e.setTexture("reflectivitySampler",t.getGBuffer().textures[r]),this._useScreenspaceDepth){const o=t.getTextureIndex(ps.SCREENSPACE_DEPTH_TEXTURE_TYPE);e.setTexture("depthSampler",t.getGBuffer().textures[o])}else{const o=t.getTextureIndex(ps.DEPTH_TEXTURE_TYPE);e.setTexture("depthSampler",t.getGBuffer().textures[o])}}else if(i){const r=i.getIndex(this._useScreenspaceDepth?10:5),n=i.getIndex(3),o=i.getIndex(6);e.setTexture("normalSampler",i.getRenderTarget().textures[o]),e.setTexture("depthSampler",i.getRenderTarget().textures[r]),e.setTexture("reflectivitySampler",i.getRenderTarget().textures[n])}this.enableAutomaticThicknessComputation&&this._depthRenderer&&(e.setTexture("backDepthSampler",this._depthRenderer.getDepthMap()),e.setFloat("backSizeFactor",this.backfaceDepthTextureDownsample+1));const s=this._getTextureSize();this._thinSSRRenderingPipeline._ssrPostProcess.textureWidth=s.width,this._thinSSRRenderingPipeline._ssrPostProcess.textureHeight=s.height},this._ssrPostProcess.samples=this.samples,this._forceGeometryBuffer||(this._ssrPostProcess._prePassEffectConfiguration=new HYe(this._useScreenspaceDepth))}_createBlurAndCombinerPostProcesses(){const e=this._scene.getEngine();this._blurPostProcessX=new Mi("SSRblurX",df.FragmentUrl,{uniformNames:df.Uniforms,samplerNames:df.Samplers,size:1/(this.ssrDownsample+1),samplingMode:2,engine:e,textureType:this._textureType,effectWrapper:this._thinSSRRenderingPipeline._ssrBlurXPostProcess}),this._blurPostProcessX.autoClear=!1,this._blurPostProcessX.onApplyObservable.add(()=>{var t;this._thinSSRRenderingPipeline._ssrBlurXPostProcess.textureWidth=((t=this._blurPostProcessX)==null?void 0:t.inputTexture.width)??this._scene.getEngine().getRenderWidth(),this._thinSSRRenderingPipeline._ssrBlurXPostProcess.textureHeight=1}),this._blurPostProcessY=new Mi("SSRblurY",df.FragmentUrl,{uniformNames:df.Uniforms,samplerNames:df.Samplers,size:1/(this.blurDownsample+1),samplingMode:2,engine:e,textureType:this._textureType,effectWrapper:this._thinSSRRenderingPipeline._ssrBlurYPostProcess}),this._blurPostProcessY.autoClear=!1,this._blurPostProcessY.onApplyObservable.add(()=>{var t;this._thinSSRRenderingPipeline._ssrBlurYPostProcess.textureWidth=1,this._thinSSRRenderingPipeline._ssrBlurYPostProcess.textureHeight=((t=this._blurPostProcessY)==null?void 0:t.inputTexture.height)??this._scene.getEngine().getRenderHeight()}),this._blurCombinerPostProcess=new Mi("SSRblurCombiner",n5.FragmentUrl,{uniformNames:n5.Uniforms,samplerNames:n5.Samplers,size:1/(this.blurDownsample+1),samplingMode:1,engine:e,textureType:this._textureType,effectWrapper:this._thinSSRRenderingPipeline._ssrBlurCombinerPostProcess}),this._blurCombinerPostProcess.autoClear=!1,this._blurCombinerPostProcess.onApplyObservable.add(t=>{var r;const i=this._geometryBufferRenderer,s=this._prePassRenderer;if(!(!s&&!i)){if(s&&((r=this._scene.activeCamera)==null?void 0:r._getFirstPostProcess())===this._ssrPostProcess){const n=s.getRenderTarget();n&&n.textures&&t.setTexture("mainSampler",n.textures[s.getIndex(4)])}else t.setTextureFromPostProcess("mainSampler",this._ssrPostProcess);if(i){const n=i.getTextureIndex(ps.REFLECTIVITY_TEXTURE_TYPE);if(t.setTexture("reflectivitySampler",i.getGBuffer().textures[n]),this.useFresnel)if(t.setTexture("normalSampler",i.getGBuffer().textures[1]),this._useScreenspaceDepth){const o=i.getTextureIndex(ps.SCREENSPACE_DEPTH_TEXTURE_TYPE);t.setTexture("depthSampler",i.getGBuffer().textures[o])}else t.setTexture("depthSampler",i.getGBuffer().textures[0])}else if(s){const n=s.getIndex(3);if(t.setTexture("reflectivitySampler",s.getRenderTarget().textures[n]),this.useFresnel){const o=s.getIndex(this._useScreenspaceDepth?10:5),l=s.getIndex(6);t.setTexture("normalSampler",s.getRenderTarget().textures[l]),t.setTexture("depthSampler",s.getRenderTarget().textures[o])}}}})}serialize(){const e=It.Serialize(this);return e.customType="SSRRenderingPipeline",e}static Parse(e,t,i){return It.Parse(()=>new ma(e._name,t,e._ratio),e,t,i)}}F([G()],ma.prototype,"samples",null),F([G()],ma.prototype,"maxDistance",null),F([G()],ma.prototype,"step",null),F([G()],ma.prototype,"thickness",null),F([G()],ma.prototype,"strength",null),F([G()],ma.prototype,"reflectionSpecularFalloffExponent",null),F([G()],ma.prototype,"maxSteps",null),F([G()],ma.prototype,"roughnessFactor",null),F([G()],ma.prototype,"selfCollisionNumSkip",null),F([G()],ma.prototype,"reflectivityThreshold",null),F([G()],ma.prototype,"ssrDownsample",null),F([G("blurDispersionStrength")],ma.prototype,"blurDispersionStrength",null),F([G("blurDownsample")],ma.prototype,"blurDownsample",null),F([G("enableSmoothReflections")],ma.prototype,"enableSmoothReflections",null),F([G("environmentTexture")],ma.prototype,"environmentTexture",null),F([G("environmentTextureIsProbe")],ma.prototype,"environmentTextureIsProbe",null),F([G("attenuateScreenBorders")],ma.prototype,"attenuateScreenBorders",null),F([G("attenuateIntersectionDistance")],ma.prototype,"attenuateIntersectionDistance",null),F([G("attenuateIntersectionIterations")],ma.prototype,"attenuateIntersectionIterations",null),F([G("attenuateFacingCamera")],ma.prototype,"attenuateFacingCamera",null),F([G("attenuateBackfaceReflection")],ma.prototype,"attenuateBackfaceReflection",null),F([G("clipToFrustum")],ma.prototype,"clipToFrustum",null),F([G("useFresnel")],ma.prototype,"useFresnel",null),F([G("enableAutomaticThicknessComputation")],ma.prototype,"enableAutomaticThicknessComputation",null),F([G("backfaceDepthTextureDownsample")],ma.prototype,"_backfaceDepthTextureDownsample",void 0),F([G("backfaceForceDepthWriteTransparentMeshes")],ma.prototype,"_backfaceForceDepthWriteTransparentMeshes",void 0),F([G("isEnabled")],ma.prototype,"_isEnabled",void 0),F([G("inputTextureColorIsInGammaSpace")],ma.prototype,"inputTextureColorIsInGammaSpace",null),F([G("generateOutputInGammaSpace")],ma.prototype,"generateOutputInGammaSpace",null),F([G("debug")],ma.prototype,"debug",null),ve("BABYLON.SSRRenderingPipeline",ma);class nM extends Eb{set samples(e){this._taaThinPostProcess.samples=e}get samples(){return this._taaThinPostProcess.samples}set msaaSamples(e){this._msaaSamples!==e&&(this._msaaSamples=e,this._taaPostProcess&&(this._taaPostProcess.samples=e))}get msaaSamples(){return this._msaaSamples}get factor(){return this._taaThinPostProcess.factor}set factor(e){this._taaThinPostProcess.factor=e}get disableOnCameraMove(){return this._taaThinPostProcess.disableOnCameraMove}set disableOnCameraMove(e){this._taaThinPostProcess.disableOnCameraMove=e}get isEnabled(){return this._isEnabled}set isEnabled(e){this._isEnabled!==e&&(this._isEnabled=e,e?e&&(this._isDirty?this._buildPipeline():this._cameras!==null&&(this._taaThinPostProcess._reset(),this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name,this._cameras))):this._cameras!==null&&(this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._cameras=this._camerasToBeAttached.slice()))}get scene(){return this._scene}get isSupported(){return this._scene.getEngine().getCaps().texelFetch}constructor(e,t,i,s=0){const r=t.getEngine();super(r,e),this.TAARenderEffect="TAARenderEffect",this.TAAPassEffect="TAAPassEffect",this._msaaSamples=1,this._isEnabled=!0,this._isDirty=!1,this._camerasToBeAttached=[],this._pingpong=0,this._cameras=i||t.cameras,this._cameras=this._cameras.slice(),this._camerasToBeAttached=this._cameras.slice(),this._scene=t,this._textureType=s,this._taaThinPostProcess=new Gy("TAA",this._scene.getEngine()),this.isSupported&&(this._createPingPongTextures(r.getRenderWidth(),r.getRenderHeight()),t.postProcessRenderPipelineManager.addPipeline(this),this._buildPipeline())}getClassName(){return"TAARenderingPipeline"}addCamera(e){this._camerasToBeAttached.push(e),this._buildPipeline()}removeCamera(e){const t=this._camerasToBeAttached.indexOf(e);this._camerasToBeAttached.splice(t,1),this._buildPipeline()}dispose(){this._disposePostProcesses(),this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._ping.dispose(),this._pong.dispose(),super.dispose()}_createPingPongTextures(e,t){var s,r;const i=this._scene.getEngine();(s=this._ping)==null||s.dispose(),(r=this._pong)==null||r.dispose(),this._ping=i.createRenderTargetTexture({width:e,height:t},{generateMipMaps:!1,generateDepthBuffer:!1,type:2,samplingMode:1}),this._pong=i.createRenderTargetTexture({width:e,height:t},{generateMipMaps:!1,generateDepthBuffer:!1,type:2,samplingMode:1}),this._taaThinPostProcess.textureWidth=e,this._taaThinPostProcess.textureHeight=t}_buildPipeline(){if(!this.isSupported)return;if(!this._isEnabled){this._isDirty=!0;return}this._isDirty=!1;const e=this._scene.getEngine();this._disposePostProcesses(),this._cameras!==null&&(this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._cameras=this._camerasToBeAttached.slice()),this._reset(),this._createTAAPostProcess(),this.addEffect(new Mr(e,this.TAARenderEffect,()=>this._taaPostProcess,!0)),this._createPassPostProcess(),this.addEffect(new Mr(e,this.TAAPassEffect,()=>this._passPostProcess,!0)),this._cameras!==null&&this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name,this._cameras)}_disposePostProcesses(){var e,t;for(let i=0;i<this._cameras.length;i++){const s=this._cameras[i];(e=this._taaPostProcess)==null||e.dispose(s),(t=this._passPostProcess)==null||t.dispose(s),s.getProjectionMatrix(!0)}this._taaPostProcess=null,this._passPostProcess=null}_createTAAPostProcess(){this._taaPostProcess=new Mi("TAA","taa",{uniforms:["factor"],samplers:["historySampler"],size:1,engine:this._scene.getEngine(),textureType:this._textureType,effectWrapper:this._taaThinPostProcess}),this._taaPostProcess.samples=this._msaaSamples,this._taaPostProcess.onActivateObservable.add(()=>{var e,t;if(this._taaThinPostProcess.camera=this._scene.activeCamera,((e=this._taaPostProcess)==null?void 0:e.width)!==this._ping.width||((t=this._taaPostProcess)==null?void 0:t.height)!==this._ping.height){const i=this._scene.getEngine();this._createPingPongTextures(i.getRenderWidth(),i.getRenderHeight())}this._taaThinPostProcess.updateProjectionMatrix(),this._passPostProcess&&(this._passPostProcess.inputTexture=this._pingpong?this._ping:this._pong),this._pingpong=this._pingpong^1}),this._taaPostProcess.onApplyObservable.add(e=>{e._bindTexture("historySampler",this._pingpong?this._ping.texture:this._pong.texture)})}_createPassPostProcess(){const e=this._scene.getEngine();this._passPostProcess=new q6("TAAPass",1,null,1,e),this._passPostProcess.inputTexture=this._ping,this._passPostProcess.autoClear=!1}serialize(){const e=It.Serialize(this);return e.customType="TAARenderingPipeline",e}static Parse(e,t,i){return It.Parse(()=>new nM(e._name,t,e._ratio),e,t,i)}}F([G("samples")],nM.prototype,"samples",null),F([G("msaaSamples")],nM.prototype,"_msaaSamples",void 0),F([G()],nM.prototype,"factor",null),F([G()],nM.prototype,"disableOnCameraMove",null),F([G("isEnabled")],nM.prototype,"_isEnabled",void 0),ve("BABYLON.TAARenderingPipeline",nM);const Bae="ssao2PixelShader",p7e=`precision highp float;uniform sampler2D textureSampler;varying vec2 vUV;
#ifdef SSAO
float scales[16]=float[16](
0.1,
0.11406250000000001,
0.131640625,
0.15625,
0.187890625,
0.2265625,
0.272265625,
0.325,
0.384765625,
0.4515625,
0.525390625,
0.60625,
0.694140625,
0.7890625,
0.891015625,
1.0
);uniform float near;uniform float radius;uniform sampler2D depthSampler;uniform sampler2D randomSampler;uniform sampler2D normalSampler;uniform float randTextureTiles;uniform float samplesFactor;uniform vec3 sampleSphere[SAMPLES];uniform float totalStrength;uniform float base;uniform float xViewport;uniform float yViewport;uniform mat3 depthProjection;uniform float maxZ;uniform float minZAspect;uniform vec2 texelSize;uniform mat4 projection;void main()
{vec3 random=textureLod(randomSampler,vUV*randTextureTiles,0.0).rgb;float depth=textureLod(depthSampler,vUV,0.0).r;float depthSign=sign(depth);depth=depth*depthSign;vec3 normal=textureLod(normalSampler,vUV,0.0).rgb;float occlusion=0.0;float correctedRadius=min(radius,minZAspect*depth/near);vec3 vViewRay=vec3((vUV.x*2.0-1.0)*xViewport,(vUV.y*2.0-1.0)*yViewport,depthSign);vec3 vDepthFactor=depthProjection*vec3(1.0,1.0,depth);vec3 origin=vViewRay*vDepthFactor;vec3 rvec=random*2.0-1.0;rvec.z=0.0;float dotProduct=dot(rvec,normal);rvec=1.0-abs(dotProduct)>1e-2 ? rvec : vec3(-rvec.y,0.0,rvec.x);vec3 tangent=normalize(rvec-normal*dot(rvec,normal));vec3 bitangent=cross(normal,tangent);mat3 tbn=mat3(tangent,bitangent,normal);float difference;for (int i=0; i<SAMPLES; ++i) {vec3 samplePosition=scales[(i+int(random.x*16.0)) % 16]*tbn*sampleSphere[(i+int(random.y*16.0)) % 16];samplePosition=samplePosition*correctedRadius+origin;vec4 offset=vec4(samplePosition,1.0);offset=projection*offset;offset.xyz/=offset.w;offset.xy=offset.xy*0.5+0.5;if (offset.x<0.0 || offset.y<0.0 || offset.x>1.0 || offset.y>1.0) {continue;}
float sampleDepth=abs(textureLod(depthSampler,offset.xy,0.0).r);difference=depthSign*samplePosition.z-sampleDepth;float rangeCheck=1.0-smoothstep(correctedRadius*0.5,correctedRadius,difference);occlusion+=step(EPSILON,difference)*rangeCheck;}
occlusion=occlusion*(1.0-smoothstep(maxZ*0.75,maxZ,depth));float ao=1.0-totalStrength*occlusion*samplesFactor;float result=clamp(ao+base,0.0,1.0);gl_FragColor=vec4(vec3(result),1.0);}
#endif
#ifdef BLUR
uniform float outSize;uniform float soften;uniform float tolerance;uniform int samples;
#ifndef BLUR_BYPASS
uniform sampler2D depthSampler;
#ifdef BLUR_LEGACY
#define inline
float blur13Bilateral(sampler2D image,vec2 uv,vec2 step) {float result=0.0;vec2 off1=vec2(1.411764705882353)*step;vec2 off2=vec2(3.2941176470588234)*step;vec2 off3=vec2(5.176470588235294)*step;float compareDepth=abs(textureLod(depthSampler,uv,0.0).r);float sampleDepth;float weight;float weightSum=30.0;result+=textureLod(image,uv,0.0).r*30.0;sampleDepth=abs(textureLod(depthSampler,uv+off1,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+= weight;result+=textureLod(image,uv+off1,0.0).r*weight;sampleDepth=abs(textureLod(depthSampler,uv-off1,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+= weight;result+=textureLod(image,uv-off1,0.0).r*weight;sampleDepth=abs(textureLod(depthSampler,uv+off2,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureLod(image,uv+off2,0.0).r*weight;sampleDepth=abs(textureLod(depthSampler,uv-off2,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureLod(image,uv-off2,0.0).r*weight;sampleDepth=abs(textureLod(depthSampler,uv+off3,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureLod(image,uv+off3,0.0).r*weight;sampleDepth=abs(textureLod(depthSampler,uv-off3,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureLod(image,uv-off3,0.0).r*weight;return result/weightSum;}
#endif
#endif
void main()
{float result=0.0;
#ifdef BLUR_BYPASS
result=textureLod(textureSampler,vUV,0.0).r;
#else
#ifdef BLUR_H
vec2 step=vec2(1.0/outSize,0.0);
#else
vec2 step=vec2(0.0,1.0/outSize);
#endif
#ifdef BLUR_LEGACY
result=blur13Bilateral(textureSampler,vUV,step);
#else
float compareDepth=abs(textureLod(depthSampler,vUV,0.0).r);float weightSum=0.0;for (int i=-samples; i<samples; i+=2)
{vec2 samplePos=vUV+step*(float(i)+0.5);float sampleDepth=abs(textureLod(depthSampler,samplePos,0.0).r);float falloff=smoothstep(0.0,
float(samples),
float(samples)-abs(float(i))*soften);float minDivider=tolerance*0.5+0.003;float weight=falloff/( minDivider+abs(compareDepth-sampleDepth));result+=textureLod(textureSampler,samplePos,0.0).r*weight;weightSum+=weight;}
result/=weightSum;
#endif
#endif
gl_FragColor.rgb=vec3(result);gl_FragColor.a=1.0;}
#endif
`;H.ShadersStore[Bae]||(H.ShadersStore[Bae]=p7e);const m7e={name:Bae,shader:p7e},g7e=Object.freeze(Object.defineProperty({__proto__:null,ssao2PixelShader:m7e},Symbol.toStringTag,{value:"Module"})),zae="ssao2PixelShader",_7e=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;
#ifdef SSAO
const scales: array<f32,16>=array<f32,16>(
0.1,
0.11406250000000001,
0.131640625,
0.15625,
0.187890625,
0.2265625,
0.272265625,
0.325,
0.384765625,
0.4515625,
0.525390625,
0.60625,
0.694140625,
0.7890625,
0.891015625,
1.0
);uniform near: f32;uniform radius: f32;var depthSamplerSampler: sampler;var depthSampler: texture_2d<f32>;var randomSamplerSampler: sampler;var randomSampler: texture_2d<f32>;var normalSamplerSampler: sampler;var normalSampler: texture_2d<f32>;uniform randTextureTiles: f32;uniform samplesFactor: f32;uniform sampleSphere: array<vec3f,SAMPLES>;uniform totalStrength: f32;uniform base: f32;uniform xViewport: f32;uniform yViewport: f32;uniform depthProjection: mat3x3f;uniform maxZ: f32;uniform minZAspect: f32;uniform texelSize: vec2f;uniform projection: mat4x4f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var random: vec3f=textureSampleLevel(randomSampler,randomSamplerSampler,input.vUV*uniforms.randTextureTiles,0.0).rgb;var depth: f32=textureSampleLevel(depthSampler,depthSamplerSampler,input.vUV,0.0).r;var depthSign: f32=sign(depth);depth=depth*depthSign;var normal: vec3f=textureSampleLevel(normalSampler,normalSamplerSampler,input.vUV,0.0).rgb;var occlusion: f32=0.0;var correctedRadius: f32=min(uniforms.radius,uniforms.minZAspect*depth/uniforms.near);var vViewRay: vec3f= vec3f((input.vUV.x*2.0-1.0)*uniforms.xViewport,(input.vUV.y*2.0-1.0)*uniforms.yViewport,depthSign);var vDepthFactor: vec3f=uniforms.depthProjection* vec3f(1.0,1.0,depth);var origin: vec3f=vViewRay*vDepthFactor;var rvec: vec3f=random*2.0-1.0;rvec.z=0.0;var dotProduct: f32=dot(rvec,normal);rvec=select( vec3f(-rvec.y,0.0,rvec.x),rvec,1.0-abs(dotProduct)>1e-2);var tangent: vec3f=normalize(rvec-normal*dot(rvec,normal));var bitangent: vec3f=cross(normal,tangent);var tbn: mat3x3f= mat3x3f(tangent,bitangent,normal);var difference: f32;for (var i: i32=0; i<SAMPLES; i++) {var samplePosition: vec3f=scales[(i+ i32(random.x*16.0)) % 16]*tbn*uniforms.sampleSphere[(i+ i32(random.y*16.0)) % 16];samplePosition=samplePosition*correctedRadius+origin;var offset: vec4f= vec4f(samplePosition,1.0);offset=uniforms.projection*offset;offset=vec4f(offset.xyz/offset.w,offset.w);offset=vec4f(offset.xy*0.5+0.5,offset.z,offset.w);if (offset.x<0.0 || offset.y<0.0 || offset.x>1.0 || offset.y>1.0) {continue;}
var sampleDepth: f32=abs(textureSampleLevel(depthSampler,depthSamplerSampler,offset.xy,0.0).r);difference=depthSign*samplePosition.z-sampleDepth;var rangeCheck: f32=1.0-smoothstep(correctedRadius*0.5,correctedRadius,difference);occlusion+=step(EPSILON,difference)*rangeCheck;}
occlusion=occlusion*(1.0-smoothstep(uniforms.maxZ*0.75,uniforms.maxZ,depth));var ao: f32=1.0-uniforms.totalStrength*occlusion*uniforms.samplesFactor;var result: f32=clamp(ao+uniforms.base,0.0,1.0);fragmentOutputs.color= vec4f( vec3f(result),1.0);}
#else
#ifdef BLUR
uniform outSize: f32;uniform soften: f32;uniform tolerance: f32;uniform samples: i32;
#ifndef BLUR_BYPASS
var depthSamplerSampler: sampler;var depthSampler: texture_2d<f32>;
#ifdef BLUR_LEGACY
fn blur13Bilateral(image: texture_2d<f32>,imageSampler: sampler,uv: vec2f,step: vec2f)->f32 {var result: f32=0.0;var off1: vec2f= vec2f(1.411764705882353)*step;var off2: vec2f= vec2f(3.2941176470588234)*step;var off3: vec2f= vec2f(5.176470588235294)*step;var compareDepth: f32=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv,0.0).r);var sampleDepth: f32;var weight: f32;var weightSum: f32=30.0;result+=textureSampleLevel(image,imageSampler,uv,0.0).r*30.0;sampleDepth=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv+off1,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+= weight;result+=textureSampleLevel(image,imageSampler,uv+off1,0.0).r*weight;sampleDepth=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv-off1,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+= weight;result+=textureSampleLevel(image,imageSampler,uv-off1,0.0).r*weight;sampleDepth=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv+off2,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureSampleLevel(image,imageSampler,uv+off2,0.0).r*weight;sampleDepth=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv-off2,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureSampleLevel(image,imageSampler,uv-off2,0.0).r*weight;sampleDepth=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv+off3,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureSampleLevel(image,imageSampler,uv+off3,0.0).r*weight;sampleDepth=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv-off3,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureSampleLevel(image,imageSampler,uv-off3,0.0).r*weight;return result/weightSum;}
#endif
#endif
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var result: f32=0.0;
#ifdef BLUR_BYPASS
result=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.0).r;
#else
#ifdef BLUR_H
var step: vec2f= vec2f(1.0/uniforms.outSize,0.0);
#else
var step: vec2f= vec2f(0.0,1.0/uniforms.outSize);
#endif
#ifdef BLUR_LEGACY
result=blur13Bilateral(textureSampler,textureSamplerSampler,input.vUV,step);
#else
var compareDepth: f32=abs(textureSampleLevel(depthSampler,depthSamplerSampler,input.vUV,0.0).r);var weightSum: f32=0.0;for (var i: i32=-uniforms.samples; i<uniforms.samples; i+=2)
{var samplePos: vec2f=input.vUV+step*( f32(i)+0.5);var sampleDepth: f32=abs(textureSampleLevel(depthSampler,depthSamplerSampler,samplePos,0.0).r);var falloff: f32=smoothstep(0.0,
f32(uniforms.samples),
f32(uniforms.samples)-abs( f32(i))*uniforms.soften);var minDivider: f32=uniforms.tolerance*0.5+0.003;var weight: f32=falloff/( minDivider+abs(compareDepth-sampleDepth));result+=textureSampleLevel(textureSampler,textureSamplerSampler,samplePos,0.0).r*weight;weightSum+=weight;}
result/=weightSum;
#endif
#endif
fragmentOutputs.color=vec4f(result,result,result,1.0);}
#endif
#endif
`;H.ShadersStoreWGSL[zae]||(H.ShadersStoreWGSL[zae]=_7e);const v7e={name:zae,shader:_7e},A7e=Object.freeze(Object.defineProperty({__proto__:null,ssao2PixelShaderWGSL:v7e},Symbol.toStringTag,{value:"Module"})),Fae="ssaoCombinePixelShader",C7e=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var originalColorSampler: sampler;var originalColor: texture_2d<f32>;uniform viewport: vec4f;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
var uv: vec2f=uniforms.viewport.xy+input.vUV*uniforms.viewport.zw;var ssaoColor: vec4f=textureSample(textureSampler,textureSamplerSampler,uv);var sceneColor: vec4f=textureSample(originalColor,originalColorSampler,uv);fragmentOutputs.color=sceneColor*ssaoColor;
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStoreWGSL[Fae]||(H.ShadersStoreWGSL[Fae]=C7e);const x7e={name:Fae,shader:C7e},YYe=Object.freeze(Object.defineProperty({__proto__:null,ssaoCombinePixelShaderWGSL:x7e},Symbol.toStringTag,{value:"Module"})),b7e="screenSpaceRayTrace",XYe=`float distanceSquared(vec2 a,vec2 b) { a-=b; return dot(a,a); }
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
float linearizeDepth(float depth,float near,float far) {
#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE
return -(near*far)/(far-depth*(far-near));
#else
return (near*far)/(far-depth*(far-near));
#endif
}
#endif
/**
param csOrigin Camera-space ray origin,which must be 
within the view volume and must have z>0.01 and project within the valid screen rectangle
param csDirection Unit length camera-space ray direction
param projectToPixelMatrix A projection matrix that maps to **pixel** coordinates 
(**not** [-1,+1] normalized device coordinates).
param csZBuffer The camera-space Z buffer
param csZBufferSize Dimensions of csZBuffer
param csZThickness Camera space csZThickness to ascribe to each pixel in the depth buffer
param nearPlaneZ Positive number. Doesn't have to be THE actual near plane,just a reasonable value
for clipping rays headed towards the camera
param stride Step in horizontal or vertical pixels between samples. This is a float
because integer math is slow on GPUs,but should be set to an integer>=1
param jitterFraction Number between 0 and 1 for how far to bump the ray in stride units
to conceal banding artifacts,plus the stride ray offset.
param maxSteps Maximum number of iterations. Higher gives better images but may be slow
param maxRayTraceDistance Maximum camera-space distance to trace before returning a miss
param selfCollisionNumSkip Number of steps to skip at start when raytracing to avoid self collisions.
1 is a reasonable value,depending on the scene you may need to set this value to 2
param hitPixel Pixel coordinates of the first intersection with the scene
param numIterations number of iterations performed
param csHitPoint Camera space location of the ray hit
*/
#define inline
bool traceScreenSpaceRay1(
vec3 csOrigin,
vec3 csDirection,
mat4 projectToPixelMatrix,
sampler2D csZBuffer,
vec2 csZBufferSize,
#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER
sampler2D csZBackBuffer,
float csZBackSizeFactor,
#endif
float csZThickness,
float nearPlaneZ,
float farPlaneZ,
float stride,
float jitterFraction,
float maxSteps,
float maxRayTraceDistance,
float selfCollisionNumSkip,
out vec2 startPixel,
out vec2 hitPixel,
out vec3 csHitPoint,
out float numIterations
#ifdef SSRAYTRACE_DEBUG
,out vec3 debugColor
#endif
)
{
#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE
float rayLength=(csOrigin.z+csDirection.z*maxRayTraceDistance)>-nearPlaneZ ? (-nearPlaneZ-csOrigin.z)/csDirection.z : maxRayTraceDistance;
#else
float rayLength=(csOrigin.z+csDirection.z*maxRayTraceDistance)<nearPlaneZ ? (nearPlaneZ-csOrigin.z)/csDirection.z : maxRayTraceDistance;
#endif
vec3 csEndPoint=csOrigin+csDirection*rayLength;hitPixel=vec2(-1.0,-1.0);vec4 H0=projectToPixelMatrix*vec4(csOrigin,1.0);vec4 H1=projectToPixelMatrix*vec4(csEndPoint,1.0);float k0=1.0/H0.w;float k1=1.0/H1.w;vec3 Q0=csOrigin*k0;vec3 Q1=csEndPoint*k1;vec2 P0=H0.xy*k0;vec2 P1=H1.xy*k1;
#ifdef SSRAYTRACE_CLIP_TO_FRUSTUM
float xMax=csZBufferSize.x-0.5,xMin=0.5,yMax=csZBufferSize.y-0.5,yMin=0.5;float alpha=0.0;if ((P1.y>yMax) || (P1.y<yMin)) {alpha=(P1.y-((P1.y>yMax) ? yMax : yMin))/(P1.y-P0.y);}
if ((P1.x>xMax) || (P1.x<xMin)) {alpha=max(alpha,(P1.x-((P1.x>xMax) ? xMax : xMin))/(P1.x-P0.x));}
P1=mix(P1,P0,alpha); k1=mix(k1,k0,alpha); Q1=mix(Q1,Q0,alpha);
#endif
P1+=vec2((distanceSquared(P0,P1)<0.0001) ? 0.01 : 0.0);vec2 delta=P1-P0;bool permute=false;if (abs(delta.x)<abs(delta.y)) { 
permute=true;delta=delta.yx;P0=P0.yx;P1=P1.yx; }
float stepDirection=sign(delta.x);float invdx=stepDirection/delta.x;vec2 dP=vec2(stepDirection,delta.y*invdx);vec3 dQ=(Q1-Q0)*invdx;float dk=(k1-k0)*invdx;float zMin=min(csEndPoint.z,csOrigin.z);float zMax=max(csEndPoint.z,csOrigin.z);dP*=stride; dQ*=stride; dk*=stride;P0+=dP*jitterFraction; Q0+=dQ*jitterFraction; k0+=dk*jitterFraction;vec4 pqk=vec4(P0,Q0.z,k0);vec4 dPQK=vec4(dP,dQ.z,dk);startPixel=permute ? P0.yx : P0.xy;float prevZMaxEstimate=csOrigin.z;float rayZMin=prevZMaxEstimate,rayZMax=prevZMaxEstimate;float sceneZMax=rayZMax+1e4;float end=P1.x*stepDirection;bool hit=false;float stepCount;for (stepCount=0.0;stepCount<=selfCollisionNumSkip ||
(pqk.x*stepDirection)<=end &&
stepCount<maxSteps &&
!hit &&
sceneZMax != 0.0; 
pqk+=dPQK,++stepCount)
{hitPixel=permute ? pqk.yx : pqk.xy;rayZMin=prevZMaxEstimate;rayZMax=(dPQK.z*0.5+pqk.z)/(dPQK.w*0.5+pqk.w);rayZMax=clamp(rayZMax,zMin,zMax);prevZMaxEstimate=rayZMax;if (rayZMin>rayZMax) { 
float t=rayZMin; rayZMin=rayZMax; rayZMax=t;}
sceneZMax=texelFetch(csZBuffer,ivec2(hitPixel),0).r;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
sceneZMax=linearizeDepth(sceneZMax,nearPlaneZ,farPlaneZ);
#endif
#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE
#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER
float sceneBackZ=texelFetch(csZBackBuffer,ivec2(hitPixel/csZBackSizeFactor),0).r;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
sceneBackZ=linearizeDepth(sceneBackZ,nearPlaneZ,farPlaneZ);
#endif
hit=(rayZMax>=sceneBackZ-csZThickness) && (rayZMin<=sceneZMax);
#else
hit=(rayZMax>=sceneZMax-csZThickness) && (rayZMin<=sceneZMax);
#endif
#else
#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER
float sceneBackZ=texelFetch(csZBackBuffer,ivec2(hitPixel/csZBackSizeFactor),0).r;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
sceneBackZ=linearizeDepth(sceneBackZ,nearPlaneZ,farPlaneZ);
#endif
hit=(rayZMin<=sceneBackZ+csZThickness) && (rayZMax>=sceneZMax) && (sceneZMax != 0.0);
#else
hit=(rayZMin<=sceneZMax+csZThickness) && (rayZMax>=sceneZMax);
#endif
#endif
}
pqk-=dPQK;stepCount-=1.0;if (((pqk.x+dPQK.x)*stepDirection)>end || (stepCount+1.0)>=maxSteps || sceneZMax==0.0) {hit=false;}
#ifdef SSRAYTRACE_ENABLE_REFINEMENT
if (stride>1.0 && hit) {pqk-=dPQK;stepCount-=1.0;float invStride=1.0/stride;dPQK*=invStride;float refinementStepCount=0.0;prevZMaxEstimate=pqk.z/pqk.w;rayZMax=prevZMaxEstimate;sceneZMax=rayZMax+1e7;for (;refinementStepCount<=1.0 ||
(refinementStepCount<=stride*1.4) &&
(rayZMax<sceneZMax) && (sceneZMax != 0.0);pqk+=dPQK,refinementStepCount+=1.0)
{rayZMin=prevZMaxEstimate;rayZMax=(dPQK.z*0.5+pqk.z)/(dPQK.w*0.5+pqk.w);rayZMax=clamp(rayZMax,zMin,zMax);prevZMaxEstimate=rayZMax;rayZMax=max(rayZMax,rayZMin);hitPixel=permute ? pqk.yx : pqk.xy;sceneZMax=texelFetch(csZBuffer,ivec2(hitPixel),0).r;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
sceneZMax=linearizeDepth(sceneZMax,nearPlaneZ,farPlaneZ);
#endif
}
pqk-=dPQK;refinementStepCount-=1.0;stepCount+=refinementStepCount/stride;}
#endif
Q0.xy+=dQ.xy*stepCount;Q0.z=pqk.z;csHitPoint=Q0/pqk.w;numIterations=stepCount+1.0;
#ifdef SSRAYTRACE_DEBUG
if (((pqk.x+dPQK.x)*stepDirection)>end) {debugColor=vec3(0,0,1);} else if ((stepCount+1.0)>=maxSteps) {debugColor=vec3(1,0,0);} else if (sceneZMax==0.0) {debugColor=vec3(1,1,0);} else {debugColor=vec3(0,stepCount/maxSteps,0);}
#endif
return hit;}
/**
texCoord: in the [0,1] range
depth: depth in view space (range [znear,zfar]])
*/
vec3 computeViewPosFromUVDepth(vec2 texCoord,float depth,mat4 projection,mat4 invProjectionMatrix) {vec4 ndc;ndc.xy=texCoord*2.0-1.0;
#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE
#ifdef ORTHOGRAPHIC_CAMERA
ndc.z=-projection[2].z*depth+projection[3].z;
#else
ndc.z=-projection[2].z-projection[3].z/depth;
#endif
#else
#ifdef ORTHOGRAPHIC_CAMERA
ndc.z=projection[2].z*depth+projection[3].z;
#else
ndc.z=projection[2].z+projection[3].z/depth;
#endif
#endif
ndc.w=1.0;vec4 eyePos=invProjectionMatrix*ndc;eyePos.xyz/=eyePos.w;return eyePos.xyz;}
`;H.IncludesShadersStore[b7e]||(H.IncludesShadersStore[b7e]=XYe);const kae="screenSpaceReflection2PixelShader",S7e=`#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
#define TEXTUREFUNC(s,c,lod) texture2DLodEXT(s,c,lod)
#define TEXTURECUBEFUNC(s,c,lod) textureLod(s,c,lod)
#else
#define TEXTUREFUNC(s,c,bias) texture2D(s,c,bias)
#define TEXTURECUBEFUNC(s,c,bias) textureCube(s,c,bias)
#endif
uniform sampler2D textureSampler;varying vec2 vUV;
#ifdef SSR_SUPPORTED
uniform sampler2D reflectivitySampler;uniform sampler2D normalSampler;uniform sampler2D depthSampler;
#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER
uniform sampler2D backDepthSampler;uniform float backSizeFactor;
#endif
#ifdef SSR_USE_ENVIRONMENT_CUBE
uniform samplerCube envCubeSampler;
#ifdef SSR_USE_LOCAL_REFLECTIONMAP_CUBIC
uniform vec3 vReflectionPosition;uniform vec3 vReflectionSize;
#endif
#endif
uniform mat4 view;uniform mat4 invView;uniform mat4 projection;uniform mat4 invProjectionMatrix;uniform mat4 projectionPixel;uniform float nearPlaneZ;uniform float farPlaneZ;uniform float stepSize;uniform float maxSteps;uniform float strength;uniform float thickness;uniform float roughnessFactor;uniform float reflectionSpecularFalloffExponent;uniform float maxDistance;uniform float selfCollisionNumSkip;uniform float reflectivityThreshold;
#include<helperFunctions>
#include<pbrBRDFFunctions>
#include<screenSpaceRayTrace>
vec3 hash(vec3 a)
{a=fract(a*0.8);a+=dot(a,a.yxz+19.19);return fract((a.xxy+a.yxx)*a.zyx);}
float computeAttenuationForIntersection(ivec2 hitPixel,vec2 hitUV,vec3 vsRayOrigin,vec3 vsHitPoint,vec3 reflectionVector,float maxRayDistance,float numIterations) {float attenuation=1.0;
#ifdef SSR_ATTENUATE_SCREEN_BORDERS
vec2 dCoords=smoothstep(0.2,0.6,abs(vec2(0.5,0.5)-hitUV.xy));attenuation*=clamp(1.0-(dCoords.x+dCoords.y),0.0,1.0);
#endif
#ifdef SSR_ATTENUATE_INTERSECTION_DISTANCE
attenuation*=1.0-clamp(distance(vsRayOrigin,vsHitPoint)/maxRayDistance,0.0,1.0);
#endif
#ifdef SSR_ATTENUATE_INTERSECTION_NUMITERATIONS
attenuation*=1.0-(numIterations/maxSteps);
#endif
#ifdef SSR_ATTENUATE_BACKFACE_REFLECTION
vec3 reflectionNormal=texelFetch(normalSampler,hitPixel,0).xyz;float directionBasedAttenuation=smoothstep(-0.17,0.0,dot(reflectionNormal,-reflectionVector));attenuation*=directionBasedAttenuation;
#endif
return attenuation;}
#endif
void main()
{
#ifdef SSR_SUPPORTED
vec4 colorFull=TEXTUREFUNC(textureSampler,vUV,0.0);vec3 color=colorFull.rgb;vec4 reflectivity=max(TEXTUREFUNC(reflectivitySampler,vUV,0.0),vec4(0.));
#ifndef SSR_DISABLE_REFLECTIVITY_TEST
if (max(reflectivity.r,max(reflectivity.g,reflectivity.b))<=reflectivityThreshold) {
#ifdef SSR_USE_BLUR
gl_FragColor=vec4(0.);
#else
gl_FragColor=colorFull;
#endif
return;}
#endif
#ifdef SSR_INPUT_IS_GAMMA_SPACE
color=toLinearSpace(color);
#endif
vec2 texSize=vec2(textureSize(depthSampler,0));vec3 csNormal=texelFetch(normalSampler,ivec2(vUV*texSize),0).xyz; 
#ifdef SSR_DECODE_NORMAL
csNormal=csNormal*2.0-1.0;
#endif
#ifdef SSR_NORMAL_IS_IN_WORLDSPACE
csNormal=(view*vec4(csNormal,0.0)).xyz;
#endif
float depth=texelFetch(depthSampler,ivec2(vUV*texSize),0).r;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
depth=linearizeDepth(depth,nearPlaneZ,farPlaneZ);
#endif
vec3 csPosition=computeViewPosFromUVDepth(vUV,depth,projection,invProjectionMatrix);
#ifdef ORTHOGRAPHIC_CAMERA
vec3 csViewDirection=vec3(0.,0.,1.);
#else
vec3 csViewDirection=normalize(csPosition);
#endif
vec3 csReflectedVector=reflect(csViewDirection,csNormal);
#ifdef SSR_USE_ENVIRONMENT_CUBE
vec3 wReflectedVector=vec3(invView*vec4(csReflectedVector,0.0));
#ifdef SSR_USE_LOCAL_REFLECTIONMAP_CUBIC
vec4 worldPos=invView*vec4(csPosition,1.0);wReflectedVector=parallaxCorrectNormal(worldPos.xyz,normalize(wReflectedVector),vReflectionSize,vReflectionPosition);
#endif
#ifdef SSR_INVERTCUBICMAP
wReflectedVector.y*=-1.0;
#endif
#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE
wReflectedVector.z*=-1.0;
#endif
vec3 envColor=TEXTURECUBEFUNC(envCubeSampler,wReflectedVector,0.0).xyz;
#ifdef SSR_ENVIRONMENT_CUBE_IS_GAMMASPACE
envColor=toLinearSpace(envColor);
#endif
#else
vec3 envColor=color;
#endif
float reflectionAttenuation=1.0;bool rayHasHit=false;vec2 startPixel;vec2 hitPixel;vec3 hitPoint;float numIterations;
#ifdef SSRAYTRACE_DEBUG
vec3 debugColor;
#endif
#ifdef SSR_ATTENUATE_FACING_CAMERA
reflectionAttenuation*=1.0-smoothstep(0.25,0.5,dot(-csViewDirection,csReflectedVector));
#endif
if (reflectionAttenuation>0.0) {
#ifdef SSR_USE_BLUR
vec3 jitt=vec3(0.);
#else
float roughness=1.0-reflectivity.a;vec3 jitt=mix(vec3(0.0),hash(csPosition)-vec3(0.5),roughness)*roughnessFactor; 
#endif
vec2 uv2=vUV*texSize;float c=(uv2.x+uv2.y)*0.25;float jitter=mod(c,1.0); 
rayHasHit=traceScreenSpaceRay1(
csPosition,
normalize(csReflectedVector+jitt),
projectionPixel,
depthSampler,
texSize,
#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER
backDepthSampler,
backSizeFactor,
#endif
thickness,
nearPlaneZ,
farPlaneZ,
stepSize,
jitter,
maxSteps,
maxDistance,
selfCollisionNumSkip,
startPixel,
hitPixel,
hitPoint,
numIterations
#ifdef SSRAYTRACE_DEBUG
,debugColor
#endif
);}
#ifdef SSRAYTRACE_DEBUG
gl_FragColor=vec4(debugColor,1.);return;
#endif
vec3 F0=reflectivity.rgb;vec3 fresnel=fresnelSchlickGGX(max(dot(csNormal,-csViewDirection),0.0),F0,vec3(1.));vec3 SSR=envColor;if (rayHasHit) {vec3 reflectedColor=texelFetch(textureSampler,ivec2(hitPixel),0).rgb;
#ifdef SSR_INPUT_IS_GAMMA_SPACE
reflectedColor=toLinearSpace(reflectedColor);
#endif
reflectionAttenuation*=computeAttenuationForIntersection(ivec2(hitPixel),hitPixel/texSize,csPosition,hitPoint,csReflectedVector,maxDistance,numIterations);SSR=reflectedColor*reflectionAttenuation+(1.0-reflectionAttenuation)*envColor;}
#ifndef SSR_BLEND_WITH_FRESNEL
SSR*=fresnel;
#endif
#ifdef SSR_USE_BLUR
float blur_radius=0.0;float roughness=1.0-reflectivity.a*(1.0-roughnessFactor);if (roughness>0.001) {float cone_angle=min(roughness,0.999)*3.14159265*0.5;float cone_len=distance(startPixel,hitPixel);float op_len=2.0*tan(cone_angle)*cone_len; 
float a=op_len;float h=cone_len;float a2=a*a;float fh2=4.0f*h*h;blur_radius=(a*(sqrt(a2+fh2)-a))/(4.0f*h);}
gl_FragColor=vec4(SSR,blur_radius/255.0); 
#else
#ifdef SSR_BLEND_WITH_FRESNEL
vec3 reflectionMultiplier=clamp(pow(fresnel*strength,vec3(reflectionSpecularFalloffExponent)),0.0,1.0);
#else
vec3 reflectionMultiplier=clamp(pow(reflectivity.rgb*strength,vec3(reflectionSpecularFalloffExponent)),0.0,1.0);
#endif
vec3 colorMultiplier=1.0-reflectionMultiplier;vec3 finalColor=(color*colorMultiplier)+(SSR*reflectionMultiplier);
#ifdef SSR_OUTPUT_IS_GAMMA_SPACE
finalColor=toGammaSpace(finalColor);
#endif
gl_FragColor=vec4(finalColor,colorFull.a);
#endif
#else
gl_FragColor=TEXTUREFUNC(textureSampler,vUV,0.0);
#endif
}
`;H.ShadersStore[kae]||(H.ShadersStore[kae]=S7e);const y7e={name:kae,shader:S7e},ZYe=Object.freeze(Object.defineProperty({__proto__:null,screenSpaceReflection2PixelShader:y7e},Symbol.toStringTag,{value:"Module"})),Uae="screenSpaceReflection2BlurPixelShader",M7e=`#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
#define TEXTUREFUNC(s,c,lod) texture2DLodEXT(s,c,lod)
#else
#define TEXTUREFUNC(s,c,bias) texture2D(s,c,bias)
#endif
uniform sampler2D textureSampler;varying vec2 vUV;uniform vec2 texelOffsetScale;const float weights[8]=float[8] (0.071303,0.131514,0.189879,0.321392,0.452906, 0.584419,0.715932,0.847445);void processSample(vec2 uv,float i,vec2 stepSize,inout vec4 accumulator,inout float denominator)
{vec2 offsetUV=stepSize*i+uv;float coefficient=weights[int(2.0-abs(i))];accumulator+=TEXTUREFUNC(textureSampler,offsetUV,0.0)*coefficient;denominator+=coefficient;}
void main()
{vec4 colorFull=TEXTUREFUNC(textureSampler,vUV,0.0);if (dot(colorFull,vec4(1.0))==0.0) {gl_FragColor=colorFull;return;}
float blurRadius=colorFull.a*255.0; 
vec2 stepSize=texelOffsetScale.xy*blurRadius;vec4 accumulator=TEXTUREFUNC(textureSampler,vUV,0.0)*0.214607;float denominator=0.214607;processSample(vUV,1.0,stepSize,accumulator,denominator);processSample(vUV,1.0*0.2,stepSize,accumulator,denominator);processSample(vUV,1.0*0.4,stepSize,accumulator,denominator);processSample(vUV,1.0*0.6,stepSize,accumulator,denominator);processSample(vUV,1.0*0.8,stepSize,accumulator,denominator);processSample(vUV,1.0*1.2,stepSize,accumulator,denominator);processSample(vUV,1.0*1.4,stepSize,accumulator,denominator);processSample(vUV,1.0*1.6,stepSize,accumulator,denominator);processSample(vUV,1.0*1.8,stepSize,accumulator,denominator);processSample(vUV,1.0*2.0,stepSize,accumulator,denominator);processSample(vUV,-1.0,stepSize,accumulator,denominator);processSample(vUV,-1.0*0.2,stepSize,accumulator,denominator);processSample(vUV,-1.0*0.4,stepSize,accumulator,denominator);processSample(vUV,-1.0*0.6,stepSize,accumulator,denominator);processSample(vUV,-1.0*0.8,stepSize,accumulator,denominator);processSample(vUV,-1.0*1.2,stepSize,accumulator,denominator);processSample(vUV,-1.0*1.4,stepSize,accumulator,denominator);processSample(vUV,-1.0*1.6,stepSize,accumulator,denominator);processSample(vUV,-1.0*1.8,stepSize,accumulator,denominator);processSample(vUV,-1.0*2.0,stepSize,accumulator,denominator);gl_FragColor=vec4(accumulator.rgb/denominator,colorFull.a);}
`;H.ShadersStore[Uae]||(H.ShadersStore[Uae]=M7e);const E7e={name:Uae,shader:M7e},KYe=Object.freeze(Object.defineProperty({__proto__:null,screenSpaceReflection2BlurPixelShader:E7e},Symbol.toStringTag,{value:"Module"})),jae="screenSpaceReflection2BlurCombinerPixelShader",T7e=`uniform sampler2D textureSampler; 
uniform sampler2D mainSampler;uniform sampler2D reflectivitySampler;uniform float strength;uniform float reflectionSpecularFalloffExponent;uniform float reflectivityThreshold;varying vec2 vUV;
#include<helperFunctions>
#ifdef SSR_BLEND_WITH_FRESNEL
#include<pbrBRDFFunctions>
#include<screenSpaceRayTrace>
uniform mat4 projection;uniform mat4 invProjectionMatrix;
#ifdef SSR_NORMAL_IS_IN_WORLDSPACE
uniform mat4 view;
#endif
uniform sampler2D normalSampler;uniform sampler2D depthSampler;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
uniform float nearPlaneZ;uniform float farPlaneZ;
#endif
#endif
void main()
{
#ifdef SSRAYTRACE_DEBUG
gl_FragColor=texture2D(textureSampler,vUV);
#else
vec3 SSR=texture2D(textureSampler,vUV).rgb;vec4 color=texture2D(mainSampler,vUV);vec4 reflectivity=texture2D(reflectivitySampler,vUV);
#ifndef SSR_DISABLE_REFLECTIVITY_TEST
if (max(reflectivity.r,max(reflectivity.g,reflectivity.b))<=reflectivityThreshold) {gl_FragColor=color;return;}
#endif
#ifdef SSR_INPUT_IS_GAMMA_SPACE
color=toLinearSpace(color);
#endif
#ifdef SSR_BLEND_WITH_FRESNEL
vec2 texSize=vec2(textureSize(depthSampler,0));vec3 csNormal=texelFetch(normalSampler,ivec2(vUV*texSize),0).xyz;
#ifdef SSR_DECODE_NORMAL
csNormal=csNormal*2.0-1.0;
#endif
#ifdef SSR_NORMAL_IS_IN_WORLDSPACE
csNormal=(view*vec4(csNormal,0.0)).xyz;
#endif
float depth=texelFetch(depthSampler,ivec2(vUV*texSize),0).r;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
depth=linearizeDepth(depth,nearPlaneZ,farPlaneZ);
#endif
vec3 csPosition=computeViewPosFromUVDepth(vUV,depth,projection,invProjectionMatrix);vec3 csViewDirection=normalize(csPosition);vec3 F0=reflectivity.rgb;vec3 fresnel=fresnelSchlickGGX(max(dot(csNormal,-csViewDirection),0.0),F0,vec3(1.));vec3 reflectionMultiplier=clamp(pow(fresnel*strength,vec3(reflectionSpecularFalloffExponent)),0.0,1.0);
#else
vec3 reflectionMultiplier=clamp(pow(reflectivity.rgb*strength,vec3(reflectionSpecularFalloffExponent)),0.0,1.0);
#endif
vec3 colorMultiplier=1.0-reflectionMultiplier;vec3 finalColor=(color.rgb*colorMultiplier)+(SSR*reflectionMultiplier);
#ifdef SSR_OUTPUT_IS_GAMMA_SPACE
finalColor=toGammaSpace(finalColor);
#endif
gl_FragColor=vec4(finalColor,color.a);
#endif
}
`;H.ShadersStore[jae]||(H.ShadersStore[jae]=T7e);const L7e={name:jae,shader:T7e},qYe=Object.freeze(Object.defineProperty({__proto__:null,screenSpaceReflection2BlurCombinerPixelShader:L7e},Symbol.toStringTag,{value:"Module"})),I7e="screenSpaceRayTrace",QYe=`fn distanceSquared(a: vec2f,b: vec2f)->f32 { 
var temp=a-b; 
return dot(temp,temp); }
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
fn linearizeDepth(depth: f32,near: f32,far: f32)->f32 {
#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE
return -(near*far)/(far-depth*(far-near));
#else
return (near*far)/(far-depth*(far-near));
#endif
}
#endif
/**
param csOrigin Camera-space ray origin,which must be 
within the view volume and must have z>0.01 and project within the valid screen rectangle
param csDirection Unit length camera-space ray direction
param projectToPixelMatrix A projection matrix that maps to **pixel** coordinates 
(**not** [-1,+1] normalized device coordinates).
param csZBuffer The camera-space Z buffer
param csZBufferSize Dimensions of csZBuffer
param csZThickness Camera space csZThickness to ascribe to each pixel in the depth buffer
param nearPlaneZ Positive number. Doesn't have to be THE actual near plane,just a reasonable value
for clipping rays headed towards the camera. Should be the actual near plane if screen-space depth is enabled.
param farPlaneZ The far plane for the camera. Used when screen-space depth is enabled.
param stride Step in horizontal or vertical pixels between samples. This is a var because: f32 integer math is slow on GPUs,but should be set to an integer>=1
param jitterFraction Number between 0 and 1 for how far to bump the ray in stride units
to conceal banding artifacts,plus the stride ray offset.
param maxSteps Maximum number of iterations. Higher gives better images but may be slow
param maxRayTraceDistance Maximum camera-space distance to trace before returning a miss
param selfCollisionNumSkip Number of steps to skip at start when raytracing to avar self: voidnull collisions.
1 is a reasonable value,depending on the scene you may need to set this value to 2
param hitPixel Pixel coordinates of the first intersection with the scene
param numIterations number of iterations performed
param csHitPovar Camera: i32 space location of the ray hit
*/
fn traceScreenSpaceRay1(
csOrigin: vec3f,
csDirection: vec3f,
projectToPixelMatrix: mat4x4f,
csZBuffer: texture_2d<f32>,
csZBufferSize: vec2f,
#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER
csZBackBuffer: texture_2d<f32>,
csZBackSizeFactor: f32,
#endif
csZThickness: f32,
nearPlaneZ: f32,
farPlaneZ: f32,
stride: f32,
jitterFraction: f32,
maxSteps: f32,
maxRayTraceDistance: f32,
selfCollisionNumSkip: f32,
startPixel: ptr<function,vec2f>,
hitPixel: ptr<function,vec2f>,
csHitPoint: ptr<function,vec3f>,
numIterations: ptr<function,f32>
#ifdef SSRAYTRACE_DEBUG
,debugColor: ptr<function,vec3f>
#endif
)->bool
{
#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE
var rayLength: f32=select(maxRayTraceDistance,(-nearPlaneZ-csOrigin.z)/csDirection.z,(csOrigin.z+csDirection.z*maxRayTraceDistance)>-nearPlaneZ);
#else
var rayLength: f32=select(maxRayTraceDistance,(nearPlaneZ-csOrigin.z)/csDirection.z,(csOrigin.z+csDirection.z*maxRayTraceDistance)<nearPlaneZ);
#endif
var csEndPoint: vec3f=csOrigin+csDirection*rayLength;*hitPixel= vec2f(-1.0,-1.0);var H0: vec4f=projectToPixelMatrix* vec4f(csOrigin,1.0);var H1: vec4f=projectToPixelMatrix* vec4f(csEndPoint,1.0);var k0: f32=1.0/H0.w;var k1: f32=1.0/H1.w;var Q0: vec3f=csOrigin*k0;var Q1: vec3f=csEndPoint*k1;var P0: vec2f=H0.xy*k0;var P1: vec2f=H1.xy*k1;
#ifdef SSRAYTRACE_CLIP_TO_FRUSTUM
var xMax: f32=csZBufferSize.x-0.5;var xMin=0.5;var yMax=csZBufferSize.y-0.5;var yMin=0.5;var alpha: f32=0.0;if ((P1.y>yMax) || (P1.y<yMin)) {alpha=(P1.y-select(yMin,yMax,(P1.y>yMax)))/(P1.y-P0.y);}
if ((P1.x>xMax) || (P1.x<xMin)) {alpha=max(alpha,(P1.x-select(xMin,xMax,(P1.x>xMax)))/(P1.x-P0.x));}
P1=mix(P1,P0,alpha); k1=mix(k1,k0,alpha); Q1=mix(Q1,Q0,alpha);
#endif
P1+= vec2f(select(0.0,0.01,distanceSquared(P0,P1)<0.0001));var delta: vec2f=P1-P0;var permute: bool=false;if (abs(delta.x)<abs(delta.y)) { 
permute=true;delta=delta.yx;P0=P0.yx;P1=P1.yx; }
var stepDirection: f32=sign(delta.x);var invdx: f32=stepDirection/delta.x;var dP: vec2f= vec2f(stepDirection,delta.y*invdx);var dQ: vec3f=(Q1-Q0)*invdx;var dk: f32=(k1-k0)*invdx;var zMin: f32=min(csEndPoint.z,csOrigin.z);var zMax: f32=max(csEndPoint.z,csOrigin.z);dP*=stride; dQ*=stride; dk*=stride;P0+=dP*jitterFraction; Q0+=dQ*jitterFraction; k0+=dk*jitterFraction;var pqk: vec4f= vec4f(P0,Q0.z,k0);var dPQK: vec4f= vec4f(dP,dQ.z,dk);*startPixel=select(P0.xy,P0.yx,permute);var prevZMaxEstimate: f32=csOrigin.z;var rayZMin: f32=prevZMaxEstimate;var rayZMax=prevZMaxEstimate;var sceneZMax: f32=rayZMax+1e4;var end: f32=P1.x*stepDirection;var hit: bool=false;var stepCount: f32;for (stepCount=0.0;(stepCount<=selfCollisionNumSkip) ||
((pqk.x*stepDirection)<=end &&
stepCount<maxSteps &&
!hit &&
sceneZMax != 0.0);pqk+=dPQK 
)
{*hitPixel=select(pqk.xy,pqk.yx,permute);rayZMin=prevZMaxEstimate;rayZMax=(dPQK.z*0.5+pqk.z)/(dPQK.w*0.5+pqk.w);rayZMax=clamp(rayZMax,zMin,zMax);prevZMaxEstimate=rayZMax;if (rayZMin>rayZMax) { 
var t: f32=rayZMin; rayZMin=rayZMax; rayZMax=t;}
sceneZMax=textureLoad(csZBuffer,vec2<i32>(*hitPixel),0).r;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
sceneZMax=linearizeDepth(sceneZMax,nearPlaneZ,farPlaneZ);
#endif
#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE
#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER
var sceneBackZ: f32=textureLoad(csZBackBuffer,vec2<i32>(*hitPixel/csZBackSizeFactor),0).r;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
sceneBackZ=linearizeDepth(sceneBackZ,nearPlaneZ,farPlaneZ);
#endif
hit=(rayZMax>=sceneBackZ-csZThickness) && (rayZMin<=sceneZMax);
#else
hit=(rayZMax>=sceneZMax-csZThickness) && (rayZMin<=sceneZMax);
#endif
#else
#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER
var sceneBackZ: f32=textureLoad(csZBackBuffer,vec2<i32>(*hitPixel/csZBackSizeFactor),0).r;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
sceneBackZ=linearizeDepth(sceneBackZ,nearPlaneZ,farPlaneZ);
#endif
hit=(rayZMin<=sceneBackZ+csZThickness) && (rayZMax>=sceneZMax) && (sceneZMax != 0.0);
#else
hit=(rayZMin<=sceneZMax+csZThickness) && (rayZMax>=sceneZMax);
#endif
#endif
stepCount+=1.0;}
pqk-=dPQK;stepCount-=1.0;if (((pqk.x+dPQK.x)*stepDirection)>end || (stepCount+1.0)>=maxSteps || sceneZMax==0.0) {hit=false;}
#ifdef SSRAYTRACE_ENABLE_REFINEMENT
if (stride>1.0 && hit) {pqk-=dPQK;stepCount-=1.0;var invStride: f32=1.0/stride;dPQK*=invStride;var refinementStepCount: f32=0.0;prevZMaxEstimate=pqk.z/pqk.w;rayZMax=prevZMaxEstimate;sceneZMax=rayZMax+1e7;for (;refinementStepCount<=1.0 ||
((refinementStepCount<=stride*1.4) &&
(rayZMax<sceneZMax) && (sceneZMax != 0.0));pqk+=dPQK)
{rayZMin=prevZMaxEstimate;rayZMax=(dPQK.z*0.5+pqk.z)/(dPQK.w*0.5+pqk.w);rayZMax=clamp(rayZMax,zMin,zMax);prevZMaxEstimate=rayZMax;rayZMax=max(rayZMax,rayZMin);*hitPixel=select(pqk.xy,pqk.yx,permute);sceneZMax=textureLoad(csZBuffer,vec2<i32>(*hitPixel),0).r;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
sceneZMax=linearizeDepth(sceneZMax,nearPlaneZ,farPlaneZ);
#endif
refinementStepCount+=1.0;}
pqk-=dPQK;refinementStepCount-=1.0;stepCount+=refinementStepCount/stride;}
#endif
Q0=vec3f(Q0.xy+dQ.xy*stepCount,pqk.z);*csHitPoint=Q0/pqk.w;*numIterations=stepCount+1.0;
#ifdef SSRAYTRACE_DEBUG
if (((pqk.x+dPQK.x)*stepDirection)>end) {*debugColor= vec3f(0,0,1);} else if ((stepCount+1.0)>=maxSteps) {*debugColor= vec3f(1,0,0);} else if (sceneZMax==0.0) {*debugColor= vec3f(1,1,0);} else {*debugColor= vec3f(0,stepCount/maxSteps,0);}
#endif
return hit;}
/**
texCoord: in the [0,1] range
depth: depth in view space (range [znear,zfar]])
*/
fn computeViewPosFromUVDepth(texCoord: vec2f,depth: f32,projection: mat4x4f,invProjectionMatrix: mat4x4f)->vec3f {var xy=texCoord*2.0-1.0;var z: f32;
#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE
#ifdef ORTHOGRAPHIC_CAMERA
z=-projection[2].z*depth+projection[3].z;
#else
z=-projection[2].z-projection[3].z/depth;
#endif
#else
#ifdef ORTHOGRAPHIC_CAMERA
z=projection[2].z*depth+projection[3].z;
#else
z=projection[2].z+projection[3].z/depth;
#endif
#endif
var w=1.0;var ndc=vec4f(xy,z,w);var eyePos: vec4f=invProjectionMatrix*ndc;var result=eyePos.xyz/eyePos.w;return result;}
`;H.IncludesShadersStoreWGSL[I7e]||(H.IncludesShadersStoreWGSL[I7e]=QYe);const Vae="screenSpaceReflection2PixelShader",P7e=`var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;varying vUV: vec2f;
#ifdef SSR_SUPPORTED
var reflectivitySamplerSampler: sampler;var reflectivitySampler: texture_2d<f32>;var normalSampler: texture_2d<f32>;var depthSampler: texture_2d<f32>;
#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER
var backDepthSampler: texture_2d<f32>;uniform backSizeFactor: f32;
#endif
#ifdef SSR_USE_ENVIRONMENT_CUBE
var envCubeSamplerSampler: sampler;var envCubeSampler: texture_cube<f32>;
#ifdef SSR_USE_LOCAL_REFLECTIONMAP_CUBIC
uniform vReflectionPosition: vec3f;uniform vReflectionSize: vec3f;
#endif
#endif
uniform view: mat4x4f;uniform invView: mat4x4f;uniform projection: mat4x4f;uniform invProjectionMatrix: mat4x4f;uniform projectionPixel: mat4x4f;uniform nearPlaneZ: f32;uniform farPlaneZ: f32;uniform stepSize: f32;uniform maxSteps: f32;uniform strength: f32;uniform thickness: f32;uniform roughnessFactor: f32;uniform reflectionSpecularFalloffExponent: f32;uniform maxDistance: f32;uniform selfCollisionNumSkip: f32;uniform reflectivityThreshold: f32;
#include<helperFunctions>
#include<pbrBRDFFunctions>
#include<screenSpaceRayTrace>
fn hash(a: vec3f)->vec3f
{var result=fract(a*0.8);result+=dot(result,result.yxz+19.19);return fract((result.xxy+result.yxx)*result.zyx);}
fn computeAttenuationForIntersection(ihitPixel: vec2f,hitUV: vec2f,vsRayOrigin: vec3f,vsHitPoint: vec3f,reflectionVector: vec3f,maxRayDistance: f32,numIterations: f32)->f32 {var attenuation: f32=1.0;
#ifdef SSR_ATTENUATE_SCREEN_BORDERS
var dCoords: vec2f=smoothstep(vec2f(0.2),vec2f(0.6),abs( vec2f(0.5,0.5)-hitUV.xy));attenuation*=clamp(1.0-(dCoords.x+dCoords.y),0.0,1.0);
#endif
#ifdef SSR_ATTENUATE_INTERSECTION_DISTANCE
attenuation*=1.0-clamp(distance(vsRayOrigin,vsHitPoint)/maxRayDistance,0.0,1.0);
#endif
#ifdef SSR_ATTENUATE_INTERSECTION_NUMITERATIONS
attenuation*=1.0-(numIterations/uniforms.maxSteps);
#endif
#ifdef SSR_ATTENUATE_BACKFACE_REFLECTION
var reflectionNormal: vec3f=texelFetch(normalSampler,hitPixel,0).xyz;var directionBasedAttenuation: f32=smoothstep(-0.17,0.0,dot(reflectionNormal,-reflectionVector));attenuation*=directionBasedAttenuation;
#endif
return attenuation;}
#endif
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#ifdef SSR_SUPPORTED
var colorFull: vec4f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.0);var color: vec3f=colorFull.rgb;var reflectivity: vec4f=max(textureSampleLevel(reflectivitySampler,reflectivitySamplerSampler,input.vUV,0.0),vec4f(0.0));
#ifndef SSR_DISABLE_REFLECTIVITY_TEST
if (max(reflectivity.r,max(reflectivity.g,reflectivity.b))<=uniforms.reflectivityThreshold) {
#ifdef SSR_USE_BLUR
fragmentOutputs.color= vec4f(0.);
#else
fragmentOutputs.color=colorFull;
#endif
return fragmentOutputs;}
#endif
#ifdef SSR_INPUT_IS_GAMMA_SPACE
color=toLinearSpaceVec3(color);
#endif
var texSize: vec2f= vec2f(textureDimensions(depthSampler,0));var csNormal: vec3f=textureLoad(normalSampler,vec2<i32>(input.vUV*texSize),0).xyz; 
#ifdef SSR_DECODE_NORMAL
csNormal=csNormal*2.0-1.0;
#endif
#ifdef SSR_NORMAL_IS_IN_WORLDSPACE
csNormal=(uniforms.view* vec4f(csNormal,0.0)).xyz;
#endif
var depth: f32=textureLoad(depthSampler,vec2<i32>(input.vUV*texSize),0).r;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
depth=linearizeDepth(depth,uniforms.nearPlaneZ,uniforms.farPlaneZ);
#endif
var csPosition: vec3f=computeViewPosFromUVDepth(input.vUV,depth,uniforms.projection,uniforms.invProjectionMatrix);
#ifdef ORTHOGRAPHIC_CAMERA
var csViewDirection: vec3f= vec3f(0.,0.,1.);
#else
var csViewDirection: vec3f=normalize(csPosition);
#endif
var csReflectedVector: vec3f=reflect(csViewDirection,csNormal);
#ifdef SSR_USE_ENVIRONMENT_CUBE
var wReflectedVector: vec3f=(uniforms.invView* vec4f(csReflectedVector,0.0)).xyz;
#ifdef SSR_USE_LOCAL_REFLECTIONMAP_CUBIC
var worldPos: vec4f=uniforms.invView* vec4f(csPosition,1.0);wReflectedVector=parallaxCorrectNormal(worldPos.xyz,normalize(wReflectedVector),uniforms.vReflectionSize,uniforms.vReflectionPosition);
#endif
#ifdef SSR_INVERTCUBICMAP
wReflectedVector.y*=-1.0;
#endif
#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE
wReflectedVector.z*=-1.0;
#endif
var envColor: vec3f=textureSampleLevel(envCubeSampler,envCubeSamplerSampler,wReflectedVector,0.0).xyz;
#ifdef SSR_ENVIRONMENT_CUBE_IS_GAMMASPACE
envColor=toLinearSpaceVec3(envColor);
#endif
#else
var envColor: vec3f=color;
#endif
var reflectionAttenuation: f32=1.0;var rayHasHit: bool=false;var startPixel: vec2f;var hitPixel: vec2f;var hitPoint: vec3f;var numIterations: f32;
#ifdef SSRAYTRACE_DEBUG
var debugColor: vec3f;
#endif
#ifdef SSR_ATTENUATE_FACING_CAMERA
reflectionAttenuation*=1.0-smoothstep(0.25,0.5,dot(-csViewDirection,csReflectedVector));
#endif
if (reflectionAttenuation>0.0) {
#ifdef SSR_USE_BLUR
var jitt: vec3f= vec3f(0.);
#else
var roughness: f32=1.0-reflectivity.a;var jitt: vec3f=mix( vec3f(0.0),hash(csPosition)- vec3f(0.5),roughness)*uniforms.roughnessFactor; 
#endif
var uv2: vec2f=input.vUV*texSize;var c: f32=(uv2.x+uv2.y)*0.25;var jitter: f32=((c)%(1.0)); 
rayHasHit=traceScreenSpaceRay1(
csPosition,
normalize(csReflectedVector+jitt),
uniforms.projectionPixel,
depthSampler,
texSize,
#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER
backDepthSampler,
uniforms.backSizeFactor,
#endif
uniforms.thickness,
uniforms.nearPlaneZ,
uniforms.farPlaneZ,
uniforms.stepSize,
jitter,
uniforms.maxSteps,
uniforms.maxDistance,
uniforms.selfCollisionNumSkip,
&startPixel,
&hitPixel,
&hitPoint,
&numIterations
#ifdef SSRAYTRACE_DEBUG
,&debugColor
#endif
);}
#ifdef SSRAYTRACE_DEBUG
fragmentOutputs.color= vec4f(debugColor,1.);return fragmentOutputs;
#endif
var F0: vec3f=reflectivity.rgb;var fresnel: vec3f=fresnelSchlickGGXVec3(max(dot(csNormal,-csViewDirection),0.0),F0, vec3f(1.));var SSR: vec3f=envColor;if (rayHasHit) {var reflectedColor: vec3f=textureLoad(textureSampler,vec2<i32>(hitPixel),0).rgb;
#ifdef SSR_INPUT_IS_GAMMA_SPACE
reflectedColor=toLinearSpaceVec3(reflectedColor);
#endif
reflectionAttenuation*=computeAttenuationForIntersection(hitPixel,hitPixel/texSize,csPosition,hitPoint,csReflectedVector,uniforms.maxDistance,numIterations);SSR=reflectedColor*reflectionAttenuation+(1.0-reflectionAttenuation)*envColor;}
#ifndef SSR_BLEND_WITH_FRESNEL
SSR*=fresnel;
#endif
#ifdef SSR_USE_BLUR
var blur_radius: f32=0.0;var roughness: f32=1.0-reflectivity.a*(1.0-uniforms.roughnessFactor);if (roughness>0.001) {var cone_angle: f32=min(roughness,0.999)*3.14159265*0.5;var cone_len: f32=distance(startPixel,hitPixel);var op_len: f32=2.0*tan(cone_angle)*cone_len; 
var a: f32=op_len;var h: f32=cone_len;var a2: f32=a*a;var fh2: f32=4.0f*h*h;blur_radius=(a*(sqrt(a2+fh2)-a))/(4.0f*h);}
fragmentOutputs.color= vec4f(SSR,blur_radius/255.0); 
#else
#ifdef SSR_BLEND_WITH_FRESNEL
var reflectionMultiplier: vec3f=clamp(pow(fresnel*uniforms.strength, vec3f(uniforms.reflectionSpecularFalloffExponent)),vec3f(0.0),vec3f(1.0));
#else
var reflectionMultiplier: vec3f=clamp(pow(reflectivity.rgb*uniforms.strength, vec3f(uniforms.reflectionSpecularFalloffExponent)),vec3f(0.0),vec3f(1.0));
#endif
var colorMultiplier: vec3f=1.0-reflectionMultiplier;var finalColor: vec3f=(color*colorMultiplier)+(SSR*reflectionMultiplier);
#ifdef SSR_OUTPUT_IS_GAMMA_SPACE
finalColor=toGammaSpaceVec3(finalColor);
#endif
fragmentOutputs.color= vec4f(finalColor,colorFull.a);
#endif
#else
fragmentOutputs.color=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.0);
#endif
}
`;H.ShadersStoreWGSL[Vae]||(H.ShadersStoreWGSL[Vae]=P7e);const O7e={name:Vae,shader:P7e},JYe=Object.freeze(Object.defineProperty({__proto__:null,screenSpaceReflection2PixelShaderWGSL:O7e},Symbol.toStringTag,{value:"Module"})),Gae="screenSpaceReflection2BlurPixelShader",R7e=`var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;varying vUV: vec2f;uniform texelOffsetScale: vec2f;const weights: array<f32,8>=array<f32,8>(0.071303,0.131514,0.189879,0.321392,0.452906, 0.584419,0.715932,0.847445);fn processSample(uv: vec2f,i: f32,stepSize: vec2f,accumulator: ptr<function,vec4f>,denominator: ptr<function,f32>)
{var offsetUV: vec2f=stepSize*i+uv;var coefficient: f32=weights[ i32(2.0-abs(i))];*accumulator+=textureSampleLevel(textureSampler,textureSamplerSampler,offsetUV,0.0)*coefficient;*denominator+=coefficient;}
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var colorFull: vec4f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.0);if (dot(colorFull, vec4f(1.0))==0.0) {fragmentOutputs.color=colorFull;return fragmentOutputs;}
var blurRadius: f32=colorFull.a*255.0; 
var stepSize: vec2f=uniforms.texelOffsetScale.xy*blurRadius;var accumulator: vec4f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.0)*0.214607;var denominator: f32=0.214607;processSample(input.vUV,1.0,stepSize,&accumulator,&denominator);processSample(input.vUV,1.0*0.2,stepSize,&accumulator,&denominator);processSample(input.vUV,1.0*0.4,stepSize,&accumulator,&denominator);processSample(input.vUV,1.0*0.6,stepSize,&accumulator,&denominator);processSample(input.vUV,1.0*0.8,stepSize,&accumulator,&denominator);processSample(input.vUV,1.0*1.2,stepSize,&accumulator,&denominator);processSample(input.vUV,1.0*1.4,stepSize,&accumulator,&denominator);processSample(input.vUV,1.0*1.6,stepSize,&accumulator,&denominator);processSample(input.vUV,1.0*1.8,stepSize,&accumulator,&denominator);processSample(input.vUV,1.0*2.0,stepSize,&accumulator,&denominator);processSample(input.vUV,-1.0,stepSize,&accumulator,&denominator);processSample(input.vUV,-1.0*0.2,stepSize,&accumulator,&denominator);processSample(input.vUV,-1.0*0.4,stepSize,&accumulator,&denominator);processSample(input.vUV,-1.0*0.6,stepSize,&accumulator,&denominator);processSample(input.vUV,-1.0*0.8,stepSize,&accumulator,&denominator);processSample(input.vUV,-1.0*1.2,stepSize,&accumulator,&denominator);processSample(input.vUV,-1.0*1.4,stepSize,&accumulator,&denominator);processSample(input.vUV,-1.0*1.6,stepSize,&accumulator,&denominator);processSample(input.vUV,-1.0*1.8,stepSize,&accumulator,&denominator);processSample(input.vUV,-1.0*2.0,stepSize,&accumulator,&denominator);fragmentOutputs.color= vec4f(accumulator.rgb/denominator,colorFull.a);}
`;H.ShadersStoreWGSL[Gae]||(H.ShadersStoreWGSL[Gae]=R7e);const D7e={name:Gae,shader:R7e},$Ye=Object.freeze(Object.defineProperty({__proto__:null,screenSpaceReflection2BlurPixelShaderWGSL:D7e},Symbol.toStringTag,{value:"Module"})),Wae="screenSpaceReflection2BlurCombinerPixelShader",N7e=`var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>; 
var mainSamplerSampler: sampler;var mainSampler: texture_2d<f32>;var reflectivitySamplerSampler: sampler;var reflectivitySampler: texture_2d<f32>;uniform strength: f32;uniform reflectionSpecularFalloffExponent: f32;uniform reflectivityThreshold: f32;varying vUV: vec2f;
#include<helperFunctions>
#ifdef SSR_BLEND_WITH_FRESNEL
#include<pbrBRDFFunctions>
#include<screenSpaceRayTrace>
uniform projection: mat4x4f;uniform invProjectionMatrix: mat4x4f;
#ifdef SSR_NORMAL_IS_IN_WORLDSPACE
uniform view: mat4x4f;
#endif
var normalSampler: texture_2d<f32>;var depthSampler: texture_2d<f32>;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
uniform nearPlaneZ: f32;uniform farPlaneZ: f32;
#endif
#endif
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#ifdef SSRAYTRACE_DEBUG
fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,input.vUV);
#else
var SSR: vec3f=textureSample(textureSampler,textureSamplerSampler,input.vUV).rgb;var color: vec4f=textureSample(mainSampler,textureSamplerSampler,input.vUV);var reflectivity: vec4f=textureSample(reflectivitySampler,reflectivitySamplerSampler,input.vUV);
#ifndef SSR_DISABLE_REFLECTIVITY_TEST
if (max(reflectivity.r,max(reflectivity.g,reflectivity.b))<=uniforms.reflectivityThreshold) {fragmentOutputs.color=color;return fragmentOutputs;}
#endif
#ifdef SSR_INPUT_IS_GAMMA_SPACE
color=toLinearSpaceVec4(color);
#endif
#ifdef SSR_BLEND_WITH_FRESNEL
var texSize: vec2f= vec2f(textureDimensions(depthSampler,0));var csNormal: vec3f=textureLoad(normalSampler,vec2<i32>(input.vUV*texSize),0).xyz;
#ifdef SSR_DECODE_NORMAL
csNormal=csNormal*2.0-1.0;
#endif
#ifdef SSR_NORMAL_IS_IN_WORLDSPACE
csNormal=(uniforms.view*vec4f(csNormal,0.0)).xyz;
#endif
var depth: f32=textureLoad(depthSampler,vec2<i32>(input.vUV*texSize),0).r;
#ifdef SSRAYTRACE_SCREENSPACE_DEPTH
depth=linearizeDepth(depth,uniforms.nearPlaneZ,uniforms.farPlaneZ);
#endif
var csPosition: vec3f=computeViewPosFromUVDepth(input.vUV,depth,uniforms.projection,uniforms.invProjectionMatrix);var csViewDirection: vec3f=normalize(csPosition);var F0: vec3f=reflectivity.rgb;var fresnel: vec3f=fresnelSchlickGGXVec3(max(dot(csNormal,-csViewDirection),0.0),F0, vec3f(1.));var reflectionMultiplier: vec3f=clamp(pow(fresnel*uniforms.strength, vec3f(uniforms.reflectionSpecularFalloffExponent)),vec3f(0.0),vec3f(1.0));
#else
var reflectionMultiplier: vec3f=clamp(pow(reflectivity.rgb*uniforms.strength, vec3f(uniforms.reflectionSpecularFalloffExponent)),vec3f(0.0),vec3f(1.0));
#endif
var colorMultiplier: vec3f=1.0-reflectionMultiplier;var finalColor: vec3f=(color.rgb*colorMultiplier)+(SSR*reflectionMultiplier);
#ifdef SSR_OUTPUT_IS_GAMMA_SPACE
finalColor=toGammaSpaceVec3(finalColor);
#endif
fragmentOutputs.color= vec4f(finalColor,color.a);
#endif
}
`;H.ShadersStoreWGSL[Wae]||(H.ShadersStoreWGSL[Wae]=N7e);const w7e={name:Wae,shader:N7e},eXe=Object.freeze(Object.defineProperty({__proto__:null,screenSpaceReflection2BlurCombinerPixelShaderWGSL:w7e},Symbol.toStringTag,{value:"Module"})),Hae="taaPixelShader",B7e=`varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D historySampler;uniform float factor;void main() {vec4 c=texelFetch(textureSampler,ivec2(gl_FragCoord.xy),0);vec4 h=texelFetch(historySampler,ivec2(gl_FragCoord.xy),0);gl_FragColor=mix(h,c,factor);}
`;H.ShadersStore[Hae]||(H.ShadersStore[Hae]=B7e);const tXe=Object.freeze(Object.defineProperty({__proto__:null,taaPixelShader:{name:Hae,shader:B7e}},Symbol.toStringTag,{value:"Module"})),Yae="taaPixelShader",z7e=`var textureSampler: texture_2d<f32>;var historySampler: texture_2d<f32>;uniform factor: f32;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {let c=textureLoad(textureSampler,vec2<i32>(fragmentInputs.position.xy),0);let h=textureLoad(historySampler,vec2<i32>(fragmentInputs.position.xy),0);fragmentOutputs.color= mix(h,c,uniforms.factor);}
`;H.ShadersStoreWGSL[Yae]||(H.ShadersStoreWGSL[Yae]=z7e);const iXe=Object.freeze(Object.defineProperty({__proto__:null,taaPixelShaderWGSL:{name:Yae,shader:z7e}},Symbol.toStringTag,{value:"Module"}));var Xae;(function(a){a[a.Hable=0]="Hable",a[a.Reinhard=1]="Reinhard",a[a.HejiDawson=2]="HejiDawson",a[a.Photographic=3]="Photographic"})(Xae||(Xae={}));class sXe extends Mi{getClassName(){return"TonemapPostProcess"}constructor(e,t,i,s,r=2,n,o=0,l){super(e,"tonemap",["_ExposureAdjustment"],null,1,s,r,n,l,null,o),this._operator=t,this.exposureAdjustment=i;let c="#define ";this._operator===0?c+="HABLE_TONEMAPPING":this._operator===1?c+="REINHARD_TONEMAPPING":this._operator===2?c+="OPTIMIZED_HEJIDAWSON_TONEMAPPING":this._operator===3&&(c+="PHOTOGRAPHIC_TONEMAPPING"),this.updateEffect(c),this.onApply=u=>{u.setFloat("_ExposureAdjustment",this.exposureAdjustment)}}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([Promise.resolve().then(()=>nZe)]))):t.push(Promise.all([Promise.resolve().then(()=>rZe)])),super._gatherImports(e,t)}}const F7e="volumetricLightScatteringPixelShader",rXe=`uniform sampler2D textureSampler;uniform sampler2D lightScatteringSampler;uniform float decay;uniform float exposure;uniform float weight;uniform float density;uniform vec2 meshPositionOnScreen;varying vec2 vUV;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
vec2 tc=vUV;vec2 deltaTexCoord=(tc-meshPositionOnScreen.xy);deltaTexCoord*=1.0/float(NUM_SAMPLES)*density;float illuminationDecay=1.0;vec4 color=texture2D(lightScatteringSampler,tc)*0.4;for(int i=0; i<NUM_SAMPLES; i++) {tc-=deltaTexCoord;vec4 dataSample=texture2D(lightScatteringSampler,tc)*0.4;dataSample*=illuminationDecay*weight;color+=dataSample;illuminationDecay*=decay;}
vec4 realColor=texture2D(textureSampler,vUV);gl_FragColor=((vec4((vec3(color.r,color.g,color.b)*exposure),realColor.a))+(realColor*(1.5-0.4)));
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStore[F7e]||(H.ShadersStore[F7e]=rXe);const k7e="volumetricLightScatteringPassVertexShader",nXe=`attribute vec3 position;
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<instancesDeclaration>
uniform mat4 viewProjection;uniform vec2 depthValues;
#if defined(ALPHATEST) || defined(NEED_UV)
varying vec2 vUV;uniform mat4 diffuseMatrix;
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#endif
#define CUSTOM_VERTEX_DEFINITIONS
void main(void)
{vec3 positionUpdated=position;
#if (defined(ALPHATEST) || defined(NEED_UV)) && defined(UV1)
vec2 uvUpdated=uv;
#endif
#if (defined(ALPHATEST) || defined(NEED_UV)) && defined(UV2)
vec2 uv2Updated=uv2;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
gl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);
#if defined(ALPHATEST) || defined(BASIC_RENDER)
#ifdef UV1
vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));
#endif
#ifdef UV2
vUV=vec2(diffuseMatrix*vec4(uv2Updated,1.0,0.0));
#endif
#endif
}
`;H.ShadersStore[k7e]||(H.ShadersStore[k7e]=nXe);const U7e="volumetricLightScatteringPassPixelShader",aXe=`#if defined(ALPHATEST) || defined(NEED_UV)
varying vec2 vUV;
#endif
#if defined(ALPHATEST)
uniform sampler2D diffuseSampler;
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{
#if defined(ALPHATEST)
vec4 diffuseColor=texture2D(diffuseSampler,vUV);if (diffuseColor.a<0.4)
discard;
#endif
gl_FragColor=vec4(0.0,0.0,0.0,1.0);}
`;H.ShadersStore[U7e]||(H.ShadersStore[U7e]=aXe);class v3 extends Mi{get useDiffuseColor(){return de.Warn("VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead"),!1}set useDiffuseColor(e){de.Warn("VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead")}constructor(e,t,i,s,r=100,n=be.BILINEAR_SAMPLINGMODE,o,l,c){super(e,"volumetricLightScattering",["decay","exposure","weight","meshPositionOnScreen","density"],["lightScatteringSampler"],t.postProcessRatio||t,i,n,o,l,"#define NUM_SAMPLES "+r),this._screenCoordinates=Ue.Zero(),this.customMeshPosition=P.Zero(),this.useCustomMeshPosition=!1,this.invert=!0,this.excludedMeshes=[],this.includedMeshes=[],this.exposure=.3,this.decay=.96815,this.weight=.58767,this.density=.926,c=(i==null?void 0:i.getScene())??c??this._scene,o=c.getEngine(),this._viewPort=new Tc(0,0,1,1).toGlobal(o.getRenderWidth(),o.getRenderHeight()),this.mesh=s??v3.CreateDefaultMesh("VolumetricLightScatteringMesh",c),this._createPass(c,t.passRatio||t),this.onActivate=u=>{this.isSupported||this.dispose(u),this.onActivate=null},this.onApplyObservable.add(u=>{this._updateMeshScreenCoordinates(c),u.setTexture("lightScatteringSampler",this._volumetricLightScatteringRTT),u.setFloat("exposure",this.exposure),u.setFloat("decay",this.decay),u.setFloat("weight",this.weight),u.setFloat("density",this.density),u.setVector2("meshPositionOnScreen",this._screenCoordinates)})}getClassName(){return"VolumetricLightScatteringPostProcess"}_isReady(e,t){var x;const i=e.getMesh();if(i===this.mesh&&i.material)return i.material.isReady(i);const s=(x=i._internalAbstractMeshDataInfo._materialForRenderPass)==null?void 0:x[this._scene.getEngine().currentRenderPassId];if(s)return s.isReadyForSubMesh(i,e,t);const r=[],n=[q.PositionKind],o=e.getMaterial();let l=!1,c=!1;const u=!1;if(o){const A=o.needAlphaTestingForMesh(i);A&&r.push("#define ALPHATEST"),i.isVerticesDataPresent(q.UVKind)&&(n.push(q.UVKind),r.push("#define UV1"),l=A),i.isVerticesDataPresent(q.UV2Kind)&&(n.push(q.UV2Kind),r.push("#define UV2"),c=A)}const f=new Ra;if(i.useBones&&i.computeBonesUsingShaders&&i.skeleton){n.push(q.MatricesIndicesKind),n.push(q.MatricesWeightsKind),i.numBoneInfluencers>4&&(n.push(q.MatricesIndicesExtraKind),n.push(q.MatricesWeightsExtraKind)),r.push("#define NUM_BONE_INFLUENCERS "+i.numBoneInfluencers),i.numBoneInfluencers>0&&f.addCPUSkinningFallback(0,i);const A=i.skeleton;A.isUsingTextureForMatrices?r.push("#define BONETEXTURE"):r.push("#define BonesPerMesh "+(A.bones.length+1))}else r.push("#define NUM_BONE_INFLUENCERS 0");const p=i.morphTargetManager?xy(i.morphTargetManager,r,n,i,!0,!1,!1,l,c,u):0;t&&(r.push("#define INSTANCES"),Qx(n),e.getRenderingMesh().hasThinInstances&&r.push("#define THIN_INSTANCES"));const m=i.bakedVertexAnimationManager;m&&m.isEnabled&&(r.push("#define BAKED_VERTEX_ANIMATION_TEXTURE"),t&&n.push("bakedVertexAnimationSettingsInstanced"));const _=e._getDrawWrapper(void 0,!0),d=_.defines,h=r.join(`
`);if(d!==h){const A=["world","mBones","boneTextureWidth","viewProjection","diffuseMatrix","morphTargetInfluences","morphTargetCount","morphTargetTextureInfo","morphTargetTextureIndices","bakedVertexAnimationSettings","bakedVertexAnimationTextureSizeInverted","bakedVertexAnimationTime","bakedVertexAnimationTexture"],S=["diffuseSampler","morphTargets","boneSampler","bakedVertexAnimationTexture"];_.setEffect(i.getScene().getEngine().createEffect("volumetricLightScatteringPass",{attributes:n,uniformsNames:A,uniformBuffersNames:[],samplers:S,defines:h,fallbacks:f,onCompiled:null,onError:null,indexParameters:{maxSimultaneousMorphTargets:p}},i.getScene().getEngine()),h)}return _.effect.isReady()}setCustomMeshPosition(e){this.customMeshPosition=e}getCustomMeshPosition(){return this.customMeshPosition}dispose(e){const t=e.getScene().customRenderTargets.indexOf(this._volumetricLightScatteringRTT);t!==-1&&e.getScene().customRenderTargets.splice(t,1),this._volumetricLightScatteringRTT.dispose(),super.dispose(e)}getPass(){return this._volumetricLightScatteringRTT}_meshExcluded(e){return this.includedMeshes.length>0&&this.includedMeshes.indexOf(e)===-1||this.excludedMeshes.length>0&&this.excludedMeshes.indexOf(e)!==-1}_createPass(e,t){const i=e.getEngine();this._volumetricLightScatteringRTT=new Ir("volumetricLightScatteringMap",{width:i.getRenderWidth()*t,height:i.getRenderHeight()*t},e,!1,!0,0),this._volumetricLightScatteringRTT.wrapU=be.CLAMP_ADDRESSMODE,this._volumetricLightScatteringRTT.wrapV=be.CLAMP_ADDRESSMODE,this._volumetricLightScatteringRTT.renderList=null,this._volumetricLightScatteringRTT.renderParticles=!1,this._volumetricLightScatteringRTT.ignoreCameraViewport=!0;const s=this.getCamera();s?s.customRenderTargets.push(this._volumetricLightScatteringRTT):e.customRenderTargets.push(this._volumetricLightScatteringRTT);const r=l=>{var h;const c=l.getRenderingMesh(),u=l.getEffectiveMesh();if(this._meshExcluded(c))return;u._internalAbstractMeshDataInfo._isActiveIntermediate=!1;const f=l.getMaterial();if(!f)return;const p=c.getScene(),m=p.getEngine();m.setState(f.backFaceCulling,void 0,void 0,void 0,f.cullBackFaces);const _=c._getInstancesRenderList(l._id,!!l.getReplacementMesh());if(_.mustReturn)return;const d=m.getCaps().instancedArrays&&(_.visibleInstances[l._id]!==null||c.hasThinInstances);if(this._isReady(l,d)){const x=(h=u._internalAbstractMeshDataInfo._materialForRenderPass)==null?void 0:h[m.currentRenderPassId];let A=l._getDrawWrapper();if(c===this.mesh&&!A&&(A=f._getDrawWrapper()),!A)return;const S=A.effect;if(m.enableEffect(A),d||c._bind(l,S,f.fillMode),c===this.mesh)f.bind(u.getWorldMatrix(),c);else if(x)x.bindForSubMesh(u.getWorldMatrix(),u,l);else{if(S.setMatrix("viewProjection",p.getTransformMatrix()),f.needAlphaTestingForMesh(u)){const b=f.getAlphaTestTexture();b&&(S.setTexture("diffuseSampler",b),S.setMatrix("diffuseMatrix",b.getTextureMatrix()))}Pc(c,S),s3(c,S),c.morphTargetManager&&c.morphTargetManager.isUsingTextureForTargets&&c.morphTargetManager._bind(S);const E=l.getMesh().bakedVertexAnimationManager;E&&E.isEnabled&&E.bind(S,d)}d&&c.hasThinInstances&&S.setMatrix("world",u.getWorldMatrix()),c._processRendering(u,l,S,ft.TriangleFillMode,_,d,(E,b)=>{E||S.setMatrix("world",b)})}};let n;const o=new St(0,0,0,1);this._volumetricLightScatteringRTT.onBeforeRenderObservable.add(()=>{n=e.clearColor,e.clearColor=o}),this._volumetricLightScatteringRTT.onAfterRenderObservable.add(()=>{e.clearColor=n}),this._volumetricLightScatteringRTT.customIsReadyFunction=(l,c,u)=>{if((u||c===0)&&l.subMeshes)for(let f=0;f<l.subMeshes.length;++f){const p=l.subMeshes[f],m=p.getMaterial(),_=p.getRenderingMesh();if(!m)continue;const d=_._getInstancesRenderList(p._id,!!p.getReplacementMesh()),h=i.getCaps().instancedArrays&&(d.visibleInstances[p._id]!==null||_.hasThinInstances);if(!this._isReady(p,h))return!1}return!0},this._volumetricLightScatteringRTT.customRenderFunction=(l,c,u,f)=>{const p=e.getEngine();let m;if(f.length){for(p.setColorWrite(!1),m=0;m<f.length;m++)r(f.data[m]);p.setColorWrite(!0)}for(m=0;m<l.length;m++)r(l.data[m]);for(m=0;m<c.length;m++)r(c.data[m]);if(u.length){for(m=0;m<u.length;m++){const d=u.data[m],h=d.getBoundingInfo();h&&e.activeCamera&&(d._alphaIndex=d.getMesh().alphaIndex,d._distanceToCamera=h.boundingSphere.centerWorld.subtract(e.activeCamera.position).length())}const _=u.data.slice(0,u.length);for(_.sort((d,h)=>d._alphaIndex>h._alphaIndex?1:d._alphaIndex<h._alphaIndex?-1:d._distanceToCamera<h._distanceToCamera?1:d._distanceToCamera>h._distanceToCamera?-1:0),p.setAlphaMode(2),m=0;m<_.length;m++)r(_[m]);p.setAlphaMode(0)}}}_updateMeshScreenCoordinates(e){const t=e.getTransformMatrix();let i;this.useCustomMeshPosition?i=this.customMeshPosition:this.attachedNode?i=this.attachedNode.position:i=this.mesh.parent?this.mesh.getAbsolutePosition():this.mesh.position;const s=P.Project(i,me.Identity(),t,this._viewPort);this._screenCoordinates.x=s.x/this._viewPort.width,this._screenCoordinates.y=s.y/this._viewPort.height,this.invert&&(this._screenCoordinates.y=1-this._screenCoordinates.y)}static CreateDefaultMesh(e,t){const i=Eh(e,{size:1},t);i.billboardMode=cr.BILLBOARDMODE_ALL;const s=new Bt(e+"Material",t);return s.emissiveColor=new Pe(1,1,1),i.material=s,i}}F([Ma()],v3.prototype,"customMeshPosition",void 0),F([G()],v3.prototype,"useCustomMeshPosition",void 0),F([G()],v3.prototype,"invert",void 0),F([uP()],v3.prototype,"mesh",void 0),F([G()],v3.prototype,"excludedMeshes",void 0),F([G()],v3.prototype,"includedMeshes",void 0),F([G()],v3.prototype,"exposure",void 0),F([G()],v3.prototype,"decay",void 0),F([G()],v3.prototype,"weight",void 0),F([G()],v3.prototype,"density",void 0),ve("BABYLON.VolumetricLightScatteringPostProcess",v3);const j7e="screenSpaceCurvaturePixelShader",oXe=`precision highp float;varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D normalSampler;uniform float curvature_ridge;uniform float curvature_valley;
#ifndef CURVATURE_OFFSET
#define CURVATURE_OFFSET 1
#endif
float curvature_soft_clamp(float curvature,float control)
{if (curvature<0.5/control)
return curvature*(1.0-curvature*control);return 0.25/control;}
float calculate_curvature(ivec2 texel,float ridge,float valley)
{vec2 normal_up =texelFetch(normalSampler,texel+ivec2(0, CURVATURE_OFFSET),0).rb;vec2 normal_down =texelFetch(normalSampler,texel+ivec2(0,-CURVATURE_OFFSET),0).rb;vec2 normal_left =texelFetch(normalSampler,texel+ivec2(-CURVATURE_OFFSET,0),0).rb;vec2 normal_right=texelFetch(normalSampler,texel+ivec2( CURVATURE_OFFSET,0),0).rb;float normal_diff=((normal_up.g-normal_down.g)+(normal_right.r-normal_left.r));if (normal_diff<0.0)
return -2.0*curvature_soft_clamp(-normal_diff,valley);return 2.0*curvature_soft_clamp(normal_diff,ridge);}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) 
{ivec2 texel=ivec2(gl_FragCoord.xy);vec4 baseColor=texture2D(textureSampler,vUV);float curvature=calculate_curvature(texel,curvature_ridge,curvature_valley);baseColor.rgb*=curvature+1.0;gl_FragColor=baseColor;}`;H.ShadersStore[j7e]||(H.ShadersStore[j7e]=oXe);class kO extends Mi{getClassName(){return"ScreenSpaceCurvaturePostProcess"}constructor(e,t,i,s,r,n,o,l=0,c=!1){super(e,"screenSpaceCurvature",["curvature_ridge","curvature_valley"],["textureSampler","normalSampler"],i,s,r,n,o,void 0,l,void 0,null,c),this.ridge=1,this.valley=1,this._geometryBufferRenderer=t.enableGeometryBufferRenderer(),this._geometryBufferRenderer?(this._geometryBufferRenderer.generateNormalsInWorldSpace&&de.Error("ScreenSpaceCurvaturePostProcess does not support generateNormalsInWorldSpace=true for the geometry buffer renderer!"),this.onApply=u=>{u.setFloat("curvature_ridge",.5/Math.max(this.ridge*this.ridge,1e-4)),u.setFloat("curvature_valley",.7/Math.max(this.valley*this.valley,1e-4));const f=this._geometryBufferRenderer.getGBuffer().textures[1];u.setTexture("normalSampler",f)}):de.Error("Multiple Render Target support needed for screen space curvature post process. Please use IsSupported test first.")}static get IsSupported(){const e=ei.LastCreatedEngine;return e?e.getCaps().drawBuffersExtension:!1}static _Parse(e,t,i,s){return It.Parse(()=>new kO(e.name,i,e.options,t,e.renderTargetSamplingMode,i.getEngine(),e.textureType,e.reusable),e,i,s)}}F([G()],kO.prototype,"ridge",void 0),F([G()],kO.prototype,"valley",void 0),ve("BABYLON.ScreenSpaceCurvaturePostProcess",kO);const Zae="postprocessVertexShader",V7e=`attribute position: vec2<f32>;uniform scale: vec2<f32>;varying vUV: vec2<f32>;const madd=vec2(0.5,0.5);
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
vertexOutputs.vUV=(vertexInputs.position*madd+madd)*uniforms.scale;vertexOutputs.position=vec4(vertexInputs.position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStoreWGSL[Zae]||(H.ShadersStoreWGSL[Zae]=V7e);const G7e={name:Zae,shader:V7e},W7e=Object.freeze(Object.defineProperty({__proto__:null,postprocessVertexShaderWGSL:G7e},Symbol.toStringTag,{value:"Module"})),H7e="kernelBlurVaryingDeclaration",lXe="varying vec2 sampleCoord{X};";H.IncludesShadersStore[H7e]||(H.IncludesShadersStore[H7e]=lXe);const Y7e="kernelBlurFragment",cXe=`#ifdef DOF
factor=sampleCoC(sampleCoord{X}); 
computedWeight=KERNEL_WEIGHT{X}*factor;sumOfWeights+=computedWeight;
#else
computedWeight=KERNEL_WEIGHT{X};
#endif
#ifdef PACKEDFLOAT
blend+=unpack(texture2D(textureSampler,sampleCoord{X}))*computedWeight;
#else
blend+=texture2D(textureSampler,sampleCoord{X})*computedWeight;
#endif
`;H.IncludesShadersStore[Y7e]||(H.IncludesShadersStore[Y7e]=cXe);const X7e="kernelBlurFragment2",uXe=`#ifdef DOF
factor=sampleCoC(sampleCenter+delta*KERNEL_DEP_OFFSET{X});computedWeight=KERNEL_DEP_WEIGHT{X}*factor;sumOfWeights+=computedWeight;
#else
computedWeight=KERNEL_DEP_WEIGHT{X};
#endif
#ifdef PACKEDFLOAT
blend+=unpack(texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X}))*computedWeight;
#else
blend+=texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X})*computedWeight;
#endif
`;H.IncludesShadersStore[X7e]||(H.IncludesShadersStore[X7e]=uXe);const Kae="kernelBlurPixelShader",Z7e=`uniform sampler2D textureSampler;uniform vec2 delta;varying vec2 sampleCenter;
#ifdef DOF
uniform sampler2D circleOfConfusionSampler;float sampleCoC(in vec2 offset) {float coc=texture2D(circleOfConfusionSampler,offset).r;return coc; }
#endif
#include<kernelBlurVaryingDeclaration>[0..varyingCount]
#ifdef PACKEDFLOAT
#include<packingFunctions>
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{float computedWeight=0.0;
#ifdef PACKEDFLOAT
float blend=0.;
#else
vec4 blend=vec4(0.);
#endif
#ifdef DOF
float sumOfWeights=CENTER_WEIGHT; 
float factor=0.0;
#ifdef PACKEDFLOAT
blend+=unpack(texture2D(textureSampler,sampleCenter))*CENTER_WEIGHT;
#else
blend+=texture2D(textureSampler,sampleCenter)*CENTER_WEIGHT;
#endif
#endif
#include<kernelBlurFragment>[0..varyingCount]
#include<kernelBlurFragment2>[0..depCount]
#ifdef PACKEDFLOAT
gl_FragColor=pack(blend);
#else
gl_FragColor=blend;
#endif
#ifdef DOF
gl_FragColor/=sumOfWeights;
#endif
}`;H.ShadersStore[Kae]||(H.ShadersStore[Kae]=Z7e);const K7e={name:Kae,shader:Z7e},hXe=Object.freeze(Object.defineProperty({__proto__:null,kernelBlurPixelShader:K7e},Symbol.toStringTag,{value:"Module"})),q7e="kernelBlurVertex",dXe="sampleCoord{X}=sampleCenter+delta*KERNEL_OFFSET{X};";H.IncludesShadersStore[q7e]||(H.IncludesShadersStore[q7e]=dXe);const qae="kernelBlurVertexShader",Q7e=`attribute vec2 position;uniform vec2 delta;varying vec2 sampleCenter;
#include<kernelBlurVaryingDeclaration>[0..varyingCount]
const vec2 madd=vec2(0.5,0.5);
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
sampleCenter=(position*madd+madd);
#include<kernelBlurVertex>[0..varyingCount]
gl_Position=vec4(position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[qae]||(H.ShadersStore[qae]=Q7e);const J7e={name:qae,shader:Q7e},fXe=Object.freeze(Object.defineProperty({__proto__:null,kernelBlurVertexShader:J7e},Symbol.toStringTag,{value:"Module"})),$7e="kernelBlurVaryingDeclaration",pXe="varying sampleCoord{X}: vec2f;";H.IncludesShadersStoreWGSL[$7e]||(H.IncludesShadersStoreWGSL[$7e]=pXe);const eSe="kernelBlurFragment",mXe=`#ifdef DOF
factor=sampleCoC(fragmentInputs.sampleCoord{X}); 
computedWeight=KERNEL_WEIGHT{X}*factor;sumOfWeights+=computedWeight;
#else
computedWeight=KERNEL_WEIGHT{X};
#endif
#ifdef PACKEDFLOAT
blend+=unpack(textureSample(textureSampler,textureSamplerSampler,fragmentInputs.sampleCoord{X}))*computedWeight;
#else
blend+=textureSample(textureSampler,textureSamplerSampler,fragmentInputs.sampleCoord{X})*computedWeight;
#endif
`;H.IncludesShadersStoreWGSL[eSe]||(H.IncludesShadersStoreWGSL[eSe]=mXe);const tSe="kernelBlurFragment2",gXe=`#ifdef DOF
factor=sampleCoC(fragmentInputs.sampleCenter+uniforms.delta*KERNEL_DEP_OFFSET{X});computedWeight=KERNEL_DEP_WEIGHT{X}*factor;sumOfWeights+=computedWeight;
#else
computedWeight=KERNEL_DEP_WEIGHT{X};
#endif
#ifdef PACKEDFLOAT
blend+=unpack(textureSample(textureSampler,textureSamplerSampler,fragmentInputs.sampleCenter+uniforms.delta*KERNEL_DEP_OFFSET{X}))*computedWeight;
#else
blend+=textureSample(textureSampler,textureSamplerSampler,fragmentInputs.sampleCenter+uniforms.delta*KERNEL_DEP_OFFSET{X})*computedWeight;
#endif
`;H.IncludesShadersStoreWGSL[tSe]||(H.IncludesShadersStoreWGSL[tSe]=gXe);const Qae="kernelBlurPixelShader",iSe=`var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform delta: vec2f;varying sampleCenter: vec2f;
#ifdef DOF
var circleOfConfusionSamplerSampler: sampler;var circleOfConfusionSampler: texture_2d<f32>;fn sampleCoC(offset: vec2f)->f32 {var coc: f32=textureSample(circleOfConfusionSampler,circleOfConfusionSamplerSampler,offset).r;return coc; }
#endif
#include<kernelBlurVaryingDeclaration>[0..varyingCount]
#ifdef PACKEDFLOAT
#include<packingFunctions>
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var computedWeight: f32=0.0;
#ifdef PACKEDFLOAT
var blend: f32=0.;
#else
var blend: vec4f= vec4f(0.);
#endif
#ifdef DOF
var sumOfWeights: f32=CENTER_WEIGHT; 
var factor: f32=0.0;
#ifdef PACKEDFLOAT
blend+=unpack(textureSample(textureSampler,textureSamplerSampler,input.sampleCenter))*CENTER_WEIGHT;
#else
blend+=textureSample(textureSampler,textureSamplerSampler,input.sampleCenter)*CENTER_WEIGHT;
#endif
#endif
#include<kernelBlurFragment>[0..varyingCount]
#include<kernelBlurFragment2>[0..depCount]
#ifdef PACKEDFLOAT
fragmentOutputs.color=pack(blend);
#else
fragmentOutputs.color=blend;
#endif
#ifdef DOF
fragmentOutputs.color/=sumOfWeights;
#endif
}`;H.ShadersStoreWGSL[Qae]||(H.ShadersStoreWGSL[Qae]=iSe);const sSe={name:Qae,shader:iSe},_Xe=Object.freeze(Object.defineProperty({__proto__:null,kernelBlurPixelShaderWGSL:sSe},Symbol.toStringTag,{value:"Module"})),rSe="kernelBlurVertex",vXe="vertexOutputs.sampleCoord{X}=vertexOutputs.sampleCenter+uniforms.delta*KERNEL_OFFSET{X};";H.IncludesShadersStoreWGSL[rSe]||(H.IncludesShadersStoreWGSL[rSe]=vXe);const Jae="kernelBlurVertexShader",nSe=`attribute position: vec2f;uniform delta: vec2f;varying sampleCenter: vec2f;
#include<kernelBlurVaryingDeclaration>[0..varyingCount]
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {const madd: vec2f= vec2f(0.5,0.5);
#define CUSTOM_VERTEX_MAIN_BEGIN
vertexOutputs.sampleCenter=(input.position*madd+madd);
#include<kernelBlurVertex>[0..varyingCount]
vertexOutputs.position= vec4f(input.position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[Jae]||(H.ShadersStoreWGSL[Jae]=nSe);const aSe={name:Jae,shader:nSe},AXe=Object.freeze(Object.defineProperty({__proto__:null,kernelBlurVertexShaderWGSL:aSe},Symbol.toStringTag,{value:"Module"})),$ae="passPixelShader",oSe=`varying vec2 vUV;uniform sampler2D textureSampler;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) 
{gl_FragColor=texture2D(textureSampler,vUV);}`;H.ShadersStore[$ae]||(H.ShadersStore[$ae]=oSe);const lSe={name:$ae,shader:oSe},UO=Object.freeze(Object.defineProperty({__proto__:null,passPixelShader:lSe},Symbol.toStringTag,{value:"Module"})),eoe="passCubePixelShader",cSe=`varying vec2 vUV;uniform samplerCube textureSampler;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) 
{vec2 uv=vUV*2.0-1.0;
#ifdef POSITIVEX
gl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x));
#endif
#ifdef NEGATIVEX
gl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x));
#endif
#ifdef POSITIVEY
gl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x));
#endif
#ifdef NEGATIVEY
gl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x));
#endif
#ifdef POSITIVEZ
gl_FragColor=textureCube(textureSampler,vec3(uv,1.001));
#endif
#ifdef NEGATIVEZ
gl_FragColor=textureCube(textureSampler,vec3(uv,-1.001));
#endif
}`;H.ShadersStore[eoe]||(H.ShadersStore[eoe]=cSe);const uSe={name:eoe,shader:cSe},CXe=Object.freeze(Object.defineProperty({__proto__:null,passCubePixelShader:uSe},Symbol.toStringTag,{value:"Module"})),toe="passPixelShader",hSe=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,input.vUV);}`;H.ShadersStoreWGSL[toe]||(H.ShadersStoreWGSL[toe]=hSe);const dSe={name:toe,shader:hSe},_z=Object.freeze(Object.defineProperty({__proto__:null,passPixelShaderWGSL:dSe},Symbol.toStringTag,{value:"Module"})),ioe="passCubePixelShader",fSe=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_cube<f32>;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var uv: vec2f=input.vUV*2.0-1.0;
#ifdef POSITIVEX
fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,vec3f(1.001,uv.y,uv.x));
#endif
#ifdef NEGATIVEX
fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,vec3f(-1.001,uv.y,uv.x));
#endif
#ifdef POSITIVEY
fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,vec3f(uv.y,1.001,uv.x));
#endif
#ifdef NEGATIVEY
fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,vec3f(uv.y,-1.001,uv.x));
#endif
#ifdef POSITIVEZ
fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,vec3f(uv,1.001));
#endif
#ifdef NEGATIVEZ
fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,vec3f(uv,-1.001));
#endif
}`;H.ShadersStoreWGSL[ioe]||(H.ShadersStoreWGSL[ioe]=fSe);const pSe={name:ioe,shader:fSe},xXe=Object.freeze(Object.defineProperty({__proto__:null,passCubePixelShaderWGSL:pSe},Symbol.toStringTag,{value:"Module"})),soe="vrDistortionCorrectionPixelShader",mSe=`varying vec2 vUV;uniform sampler2D textureSampler;uniform vec2 LensCenter;uniform vec2 Scale;uniform vec2 ScaleIn;uniform vec4 HmdWarpParam;vec2 HmdWarp(vec2 in01) {vec2 theta=(in01-LensCenter)*ScaleIn; 
float rSq=theta.x*theta.x+theta.y*theta.y;vec2 rvector=theta*(HmdWarpParam.x+HmdWarpParam.y*rSq+HmdWarpParam.z*rSq*rSq+HmdWarpParam.w*rSq*rSq*rSq);return LensCenter+Scale*rvector;}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{vec2 tc=HmdWarp(vUV);if (tc.x <0.0 || tc.x>1.0 || tc.y<0.0 || tc.y>1.0)
gl_FragColor=vec4(0.0,0.0,0.0,0.0);else{gl_FragColor=texture2D(textureSampler,tc);}}`;H.ShadersStore[soe]||(H.ShadersStore[soe]=mSe);const gSe={name:soe,shader:mSe},bXe=Object.freeze(Object.defineProperty({__proto__:null,vrDistortionCorrectionPixelShader:gSe},Symbol.toStringTag,{value:"Module"})),roe="vrDistortionCorrectionPixelShader",_Se=`#define DISABLE_UNIFORMITY_ANALYSIS
varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform LensCenter: vec2f;uniform Scale: vec2f;uniform ScaleIn: vec2f;uniform HmdWarpParam: vec4f;fn HmdWarp(in01: vec2f)->vec2f {var theta: vec2f=(in01-uniforms.LensCenter)*uniforms.ScaleIn; 
var rSq: f32=theta.x*theta.x+theta.y*theta.y;var rvector: vec2f=theta*(uniforms.HmdWarpParam.x+uniforms.HmdWarpParam.y*rSq+uniforms.HmdWarpParam.z*rSq*rSq+uniforms.HmdWarpParam.w*rSq*rSq*rSq);return uniforms.LensCenter+uniforms.Scale*rvector;}
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var tc: vec2f=HmdWarp(input.vUV);if (tc.x <0.0 || tc.x>1.0 || tc.y<0.0 || tc.y>1.0) {fragmentOutputs.color=vec4f(0.0,0.0,0.0,0.0);}
else{fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,tc);}}`;H.ShadersStoreWGSL[roe]||(H.ShadersStoreWGSL[roe]=_Se);const vSe={name:roe,shader:_Se},SXe=Object.freeze(Object.defineProperty({__proto__:null,vrDistortionCorrectionPixelShaderWGSL:vSe},Symbol.toStringTag,{value:"Module"})),noe="imageProcessingPixelShader",ASe=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;
#include<imageProcessingDeclaration>
#include<helperFunctions>
#include<imageProcessingFunctions>
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var result: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV);result=vec4f(max(result.rgb,vec3f(0.)),result.a);
#ifdef IMAGEPROCESSING
#ifndef FROMLINEARSPACE
result=vec4f(toLinearSpaceVec3(result.rgb),result.a);
#endif
result=applyImageProcessing(result);
#else
#ifdef FROMLINEARSPACE
result=applyImageProcessing(result);
#endif
#endif
fragmentOutputs.color=result;}`;H.ShadersStoreWGSL[noe]||(H.ShadersStoreWGSL[noe]=ASe);const CSe={name:noe,shader:ASe},yXe=Object.freeze(Object.defineProperty({__proto__:null,imageProcessingPixelShaderWGSL:CSe},Symbol.toStringTag,{value:"Module"})),aoe="imageProcessingPixelShader",xSe=`varying vec2 vUV;uniform sampler2D textureSampler;
#include<imageProcessingDeclaration>
#include<helperFunctions>
#include<imageProcessingFunctions>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{vec4 result=texture2D(textureSampler,vUV);result.rgb=max(result.rgb,vec3(0.));
#ifdef IMAGEPROCESSING
#ifndef FROMLINEARSPACE
result.rgb=toLinearSpace(result.rgb);
#endif
result=applyImageProcessing(result);
#else
#ifdef FROMLINEARSPACE
result=applyImageProcessing(result);
#endif
#endif
gl_FragColor=result;}`;H.ShadersStore[aoe]||(H.ShadersStore[aoe]=xSe);const bSe={name:aoe,shader:xSe},MXe=Object.freeze(Object.defineProperty({__proto__:null,imageProcessingPixelShader:bSe},Symbol.toStringTag,{value:"Module"})),ooe="sharpenPixelShader",SSe=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform screenSize: vec2f;uniform sharpnessAmounts: vec2f;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var onePixel: vec2f= vec2f(1.0,1.0)/uniforms.screenSize;var color: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV);var edgeDetection: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel*vec2f(0,-1)) +
textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel*vec2f(-1,0)) +
textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel*vec2f(1,0)) +
textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel*vec2f(0,1)) -
color*4.0;fragmentOutputs.color=max(vec4f(color.rgb*uniforms.sharpnessAmounts.y,color.a)-(uniforms.sharpnessAmounts.x* vec4f(edgeDetection.rgb,0)),vec4f(0.));}`;H.ShadersStoreWGSL[ooe]||(H.ShadersStoreWGSL[ooe]=SSe);const ySe={name:ooe,shader:SSe},EXe=Object.freeze(Object.defineProperty({__proto__:null,sharpenPixelShaderWGSL:ySe},Symbol.toStringTag,{value:"Module"})),loe="grainPixelShader",MSe=`#include<helperFunctions>
uniform sampler2D textureSampler; 
uniform float intensity;uniform float animatedSeed;varying vec2 vUV;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{gl_FragColor=texture2D(textureSampler,vUV);vec2 seed=vUV*(animatedSeed);float grain=dither(seed,intensity);float lum=getLuminance(gl_FragColor.rgb);float grainAmount=(cos(-PI+(lum*PI*2.))+1.)/2.;gl_FragColor.rgb+=grain*grainAmount;gl_FragColor.rgb=max(gl_FragColor.rgb,0.0);}`;H.ShadersStore[loe]||(H.ShadersStore[loe]=MSe);const ESe={name:loe,shader:MSe},TXe=Object.freeze(Object.defineProperty({__proto__:null,grainPixelShader:ESe},Symbol.toStringTag,{value:"Module"})),coe="grainPixelShader",TSe=`#include<helperFunctions>
varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform intensity: f32;uniform animatedSeed: f32;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,input.vUV);var seed: vec2f=input.vUV*uniforms.animatedSeed;var grain: f32=dither(seed,uniforms.intensity);var lum: f32=getLuminance(fragmentOutputs.color.rgb);var grainAmount: f32=(cos(-PI+(lum*PI*2.))+1.)/2.;fragmentOutputs.color=vec4f(fragmentOutputs.color.rgb+grain*grainAmount,fragmentOutputs.color.a);fragmentOutputs.color=vec4f(max(fragmentOutputs.color.rgb,vec3f(0.0)),fragmentOutputs.color.a);}`;H.ShadersStoreWGSL[coe]||(H.ShadersStoreWGSL[coe]=TSe);const LSe={name:coe,shader:TSe},LXe=Object.freeze(Object.defineProperty({__proto__:null,grainPixelShaderWGSL:LSe},Symbol.toStringTag,{value:"Module"})),uoe="chromaticAberrationPixelShader",ISe=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform chromatic_aberration: f32;uniform radialIntensity: f32;uniform direction: vec2f;uniform centerPosition: vec2f;uniform screen_width: f32;uniform screen_height: f32;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var centered_screen_pos: vec2f= vec2f(input.vUV.x-uniforms.centerPosition.x,input.vUV.y-uniforms.centerPosition.y);var directionOfEffect: vec2f=uniforms.direction;if(directionOfEffect.x==0. && directionOfEffect.y==0.){directionOfEffect=normalize(centered_screen_pos);}
var radius2: f32=centered_screen_pos.x*centered_screen_pos.x
+ centered_screen_pos.y*centered_screen_pos.y;var radius: f32=sqrt(radius2);var ref_indices: vec3f= vec3f(-0.3,0.0,0.3);var ref_shiftX: f32=uniforms.chromatic_aberration*pow(radius,uniforms.radialIntensity)*directionOfEffect.x/uniforms.screen_width;var ref_shiftY: f32=uniforms.chromatic_aberration*pow(radius,uniforms.radialIntensity)*directionOfEffect.y/uniforms.screen_height;var ref_coords_r: vec2f=vec2f(input.vUV.x+ref_indices.r*ref_shiftX,input.vUV.y+ref_indices.r*ref_shiftY*0.5);var ref_coords_g: vec2f=vec2f(input.vUV.x+ref_indices.g*ref_shiftX,input.vUV.y+ref_indices.g*ref_shiftY*0.5);var ref_coords_b: vec2f=vec2f(input.vUV.x+ref_indices.b*ref_shiftX,input.vUV.y+ref_indices.b*ref_shiftY*0.5);var r=textureSample(textureSampler,textureSamplerSampler,ref_coords_r);var g=textureSample(textureSampler,textureSamplerSampler,ref_coords_g);var b=textureSample(textureSampler,textureSamplerSampler,ref_coords_b);var a=clamp(r.a+g.a+b.a,0.,1.);fragmentOutputs.color=vec4f(r.r,g.g,b.b,a);}`;H.ShadersStoreWGSL[uoe]||(H.ShadersStoreWGSL[uoe]=ISe);const PSe={name:uoe,shader:ISe},IXe=Object.freeze(Object.defineProperty({__proto__:null,chromaticAberrationPixelShaderWGSL:PSe},Symbol.toStringTag,{value:"Module"})),hoe="depthOfFieldMergePixelShader",OSe=`#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
#define TEXTUREFUNC(s,c,lod) texture2DLodEXT(s,c,lod)
#else
#define TEXTUREFUNC(s,c,bias) texture2D(s,c,bias)
#endif
uniform sampler2D textureSampler;varying vec2 vUV;uniform sampler2D circleOfConfusionSampler;uniform sampler2D blurStep0;
#if BLUR_LEVEL>0
uniform sampler2D blurStep1;
#endif
#if BLUR_LEVEL>1
uniform sampler2D blurStep2;
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{float coc=TEXTUREFUNC(circleOfConfusionSampler,vUV,0.0).r;
#if BLUR_LEVEL==0
vec4 original=TEXTUREFUNC(textureSampler,vUV,0.0);vec4 blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);gl_FragColor=mix(original,blurred0,coc);
#endif
#if BLUR_LEVEL==1
if(coc<0.5){vec4 original=TEXTUREFUNC(textureSampler,vUV,0.0);vec4 blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);gl_FragColor=mix(original,blurred1,coc/0.5);}else{vec4 blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);vec4 blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);gl_FragColor=mix(blurred1,blurred0,(coc-0.5)/0.5);}
#endif
#if BLUR_LEVEL==2
if(coc<0.33){vec4 original=TEXTUREFUNC(textureSampler,vUV,0.0);vec4 blurred2=TEXTUREFUNC(blurStep2,vUV,0.0);gl_FragColor=mix(original,blurred2,coc/0.33);}else if(coc<0.66){vec4 blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);vec4 blurred2=TEXTUREFUNC(blurStep2,vUV,0.0);gl_FragColor=mix(blurred2,blurred1,(coc-0.33)/0.33);}else{vec4 blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);vec4 blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);gl_FragColor=mix(blurred1,blurred0,(coc-0.66)/0.34);}
#endif
}
`;H.ShadersStore[hoe]||(H.ShadersStore[hoe]=OSe);const RSe={name:hoe,shader:OSe},PXe=Object.freeze(Object.defineProperty({__proto__:null,depthOfFieldMergePixelShader:RSe},Symbol.toStringTag,{value:"Module"})),doe="depthOfFieldMergePixelShader",DSe=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var circleOfConfusionSamplerSampler: sampler;var circleOfConfusionSampler: texture_2d<f32>;var blurStep0Sampler: sampler;var blurStep0: texture_2d<f32>;
#if BLUR_LEVEL>0
var blurStep1Sampler: sampler;var blurStep1: texture_2d<f32>;
#endif
#if BLUR_LEVEL>1
var blurStep2Sampler: sampler;var blurStep2: texture_2d<f32>;
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var coc: f32=textureSampleLevel(circleOfConfusionSampler,circleOfConfusionSamplerSampler,input.vUV,0.0).r;
#if BLUR_LEVEL==0
var original: vec4f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.0);var blurred0: vec4f=textureSampleLevel(blurStep0,blurStep0Sampler,input.vUV,0.0);fragmentOutputs.color=mix(original,blurred0,coc);
#endif
#if BLUR_LEVEL==1
if(coc<0.5){var original: vec4f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.0);var blurred1: vec4f=textureSampleLevel(blurStep1,blurStep1Sampler,input.vUV,0.0);fragmentOutputs.color=mix(original,blurred1,coc/0.5);}else{var blurred0: vec4f=textureSampleLevel(blurStep0,blurStep0Sampler,input.vUV,0.0);var blurred1: vec4f=textureSampleLevel(blurStep1,blurStep1Sampler,input.vUV,0.0);fragmentOutputs.color=mix(blurred1,blurred0,(coc-0.5)/0.5);}
#endif
#if BLUR_LEVEL==2
if(coc<0.33){var original: vec4f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.0);var blurred2: vec4f=textureSampleLevel(blurStep2,blurStep2Sampler,input.vUV,0.0);fragmentOutputs.color=mix(original,blurred2,coc/0.33);}else if(coc<0.66){var blurred1: vec4f=textureSampleLevel(blurStep1,blurStep1Sampler,input.vUV,0.0);var blurred2: vec4f=textureSampleLevel(blurStep2,blurStep2Sampler,input.vUV,0.0);fragmentOutputs.color=mix(blurred2,blurred1,(coc-0.33)/0.33);}else{var blurred0: vec4f=textureSampleLevel(blurStep0,blurStep0Sampler,input.vUV,0.0);var blurred1: vec4f=textureSampleLevel(blurStep1,blurStep1Sampler,input.vUV,0.0);fragmentOutputs.color=mix(blurred1,blurred0,(coc-0.66)/0.34);}
#endif
}
`;H.ShadersStoreWGSL[doe]||(H.ShadersStoreWGSL[doe]=DSe);const NSe={name:doe,shader:DSe},OXe=Object.freeze(Object.defineProperty({__proto__:null,depthOfFieldMergePixelShaderWGSL:NSe},Symbol.toStringTag,{value:"Module"})),foe="circleOfConfusionPixelShader",wSe=`uniform sampler2D depthSampler;varying vec2 vUV;
#ifndef COC_DEPTH_NOT_NORMALIZED
uniform vec2 cameraMinMaxZ;
#endif
uniform float focusDistance;uniform float cocPrecalculation;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{float depth=texture2D(depthSampler,vUV).r;
#define CUSTOM_COC_DEPTH
#ifdef COC_DEPTH_NOT_NORMALIZED
float pixelDistance=depth*1000.0;
#else
float pixelDistance=(cameraMinMaxZ.x+cameraMinMaxZ.y*depth)*1000.0; 
#endif
#define CUSTOM_COC_PIXELDISTANCE
float coc=abs(cocPrecalculation*((focusDistance-pixelDistance)/pixelDistance));coc=clamp(coc,0.0,1.0);gl_FragColor=vec4(coc,coc,coc,1.0);}
`;H.ShadersStore[foe]||(H.ShadersStore[foe]=wSe);const BSe={name:foe,shader:wSe},RXe=Object.freeze(Object.defineProperty({__proto__:null,circleOfConfusionPixelShader:BSe},Symbol.toStringTag,{value:"Module"})),poe="circleOfConfusionPixelShader",zSe=`varying vUV: vec2f;var depthSamplerSampler: sampler;var depthSampler: texture_2d<f32>;
#ifndef COC_DEPTH_NOT_NORMALIZED
uniform cameraMinMaxZ: vec2f;
#endif
uniform focusDistance: f32;uniform cocPrecalculation: f32;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var depth: f32=textureSample(depthSampler,depthSamplerSampler,input.vUV).r;
#define CUSTOM_COC_DEPTH
#ifdef COC_DEPTH_NOT_NORMALIZED
let pixelDistance=depth*1000.0;
#else
let pixelDistance: f32=(uniforms.cameraMinMaxZ.x+uniforms.cameraMinMaxZ.y*depth)*1000.0; 
#endif
#define CUSTOM_COC_PIXELDISTANCE
var coc: f32=abs(uniforms.cocPrecalculation*((uniforms.focusDistance-pixelDistance)/pixelDistance));coc=clamp(coc,0.0,1.0);fragmentOutputs.color= vec4f(coc,coc,coc,1.0);}
`;H.ShadersStoreWGSL[poe]||(H.ShadersStoreWGSL[poe]=zSe);const FSe={name:poe,shader:zSe},DXe=Object.freeze(Object.defineProperty({__proto__:null,circleOfConfusionPixelShaderWGSL:FSe},Symbol.toStringTag,{value:"Module"})),moe="bloomMergePixelShader",kSe=`uniform sampler2D textureSampler;uniform sampler2D bloomBlur;varying vec2 vUV;uniform float bloomWeight;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{gl_FragColor=texture2D(textureSampler,vUV);vec3 blurred=texture2D(bloomBlur,vUV).rgb;gl_FragColor.rgb=gl_FragColor.rgb+(blurred.rgb*bloomWeight); }
`;H.ShadersStore[moe]||(H.ShadersStore[moe]=kSe);const USe={name:moe,shader:kSe},NXe=Object.freeze(Object.defineProperty({__proto__:null,bloomMergePixelShader:USe},Symbol.toStringTag,{value:"Module"})),goe="bloomMergePixelShader",jSe=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var bloomBlurSampler: sampler;var bloomBlur: texture_2d<f32>;uniform bloomWeight: f32;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,input.vUV);var blurred: vec3f=textureSample(bloomBlur,bloomBlurSampler,input.vUV).rgb;fragmentOutputs.color=vec4f(fragmentOutputs.color.rgb+(blurred.rgb*uniforms.bloomWeight),fragmentOutputs.color.a);}
`;H.ShadersStoreWGSL[goe]||(H.ShadersStoreWGSL[goe]=jSe);const VSe={name:goe,shader:jSe},wXe=Object.freeze(Object.defineProperty({__proto__:null,bloomMergePixelShaderWGSL:VSe},Symbol.toStringTag,{value:"Module"})),_oe="extractHighlightsPixelShader",GSe=`#include<helperFunctions>
varying vec2 vUV;uniform sampler2D textureSampler;uniform float threshold;uniform float exposure;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) 
{gl_FragColor=texture2D(textureSampler,vUV);float luma=dot(LuminanceEncodeApprox,gl_FragColor.rgb*exposure);gl_FragColor.rgb=step(threshold,luma)*gl_FragColor.rgb;}`;H.ShadersStore[_oe]||(H.ShadersStore[_oe]=GSe);const WSe={name:_oe,shader:GSe},BXe=Object.freeze(Object.defineProperty({__proto__:null,extractHighlightsPixelShader:WSe},Symbol.toStringTag,{value:"Module"})),voe="extractHighlightsPixelShader",HSe=`#include<helperFunctions>
varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform threshold: f32;uniform exposure: f32;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,input.vUV);var luma: f32=dot(LuminanceEncodeApprox,fragmentOutputs.color.rgb*uniforms.exposure);fragmentOutputs.color=vec4f(step(uniforms.threshold,luma)*fragmentOutputs.color.rgb,fragmentOutputs.color.a);}`;H.ShadersStoreWGSL[voe]||(H.ShadersStoreWGSL[voe]=HSe);const YSe={name:voe,shader:HSe},zXe=Object.freeze(Object.defineProperty({__proto__:null,extractHighlightsPixelShaderWGSL:YSe},Symbol.toStringTag,{value:"Module"})),Aoe="fxaaPixelShader",XSe=`#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
#define TEXTUREFUNC(s,c,l) texture2DLodEXT(s,c,l)
#else
#define TEXTUREFUNC(s,c,b) texture2D(s,c,b)
#endif
uniform sampler2D textureSampler;uniform vec2 texelSize;varying vec2 vUV;varying vec2 sampleCoordS;varying vec2 sampleCoordE;varying vec2 sampleCoordN;varying vec2 sampleCoordW;varying vec2 sampleCoordNW;varying vec2 sampleCoordSE;varying vec2 sampleCoordNE;varying vec2 sampleCoordSW;const float fxaaQualitySubpix=1.0;const float fxaaQualityEdgeThreshold=0.166;const float fxaaQualityEdgeThresholdMin=0.0833;const vec3 kLumaCoefficients=vec3(0.2126,0.7152,0.0722);
#define FxaaLuma(rgba) dot(rgba.rgb,kLumaCoefficients)
void main(){vec2 posM;posM.x=vUV.x;posM.y=vUV.y;vec4 rgbyM=TEXTUREFUNC(textureSampler,vUV,0.0);float lumaM=FxaaLuma(rgbyM);float lumaS=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordS,0.0));float lumaE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordE,0.0));float lumaN=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordN,0.0));float lumaW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordW,0.0));float maxSM=max(lumaS,lumaM);float minSM=min(lumaS,lumaM);float maxESM=max(lumaE,maxSM);float minESM=min(lumaE,minSM);float maxWN=max(lumaN,lumaW);float minWN=min(lumaN,lumaW);float rangeMax=max(maxWN,maxESM);float rangeMin=min(minWN,minESM);float rangeMaxScaled=rangeMax*fxaaQualityEdgeThreshold;float range=rangeMax-rangeMin;float rangeMaxClamped=max(fxaaQualityEdgeThresholdMin,rangeMaxScaled);
#ifndef MALI
if(range<rangeMaxClamped) 
{gl_FragColor=rgbyM;return;}
#endif
float lumaNW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordNW,0.0));float lumaSE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordSE,0.0));float lumaNE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordNE,0.0));float lumaSW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordSW,0.0));float lumaNS=lumaN+lumaS;float lumaWE=lumaW+lumaE;float subpixRcpRange=1.0/range;float subpixNSWE=lumaNS+lumaWE;float edgeHorz1=(-2.0*lumaM)+lumaNS;float edgeVert1=(-2.0*lumaM)+lumaWE;float lumaNESE=lumaNE+lumaSE;float lumaNWNE=lumaNW+lumaNE;float edgeHorz2=(-2.0*lumaE)+lumaNESE;float edgeVert2=(-2.0*lumaN)+lumaNWNE;float lumaNWSW=lumaNW+lumaSW;float lumaSWSE=lumaSW+lumaSE;float edgeHorz4=(abs(edgeHorz1)*2.0)+abs(edgeHorz2);float edgeVert4=(abs(edgeVert1)*2.0)+abs(edgeVert2);float edgeHorz3=(-2.0*lumaW)+lumaNWSW;float edgeVert3=(-2.0*lumaS)+lumaSWSE;float edgeHorz=abs(edgeHorz3)+edgeHorz4;float edgeVert=abs(edgeVert3)+edgeVert4;float subpixNWSWNESE=lumaNWSW+lumaNESE;float lengthSign=texelSize.x;bool horzSpan=edgeHorz>=edgeVert;float subpixA=subpixNSWE*2.0+subpixNWSWNESE;if (!horzSpan)
{lumaN=lumaW;}
if (!horzSpan) 
{lumaS=lumaE;}
if (horzSpan) 
{lengthSign=texelSize.y;}
float subpixB=(subpixA*(1.0/12.0))-lumaM;float gradientN=lumaN-lumaM;float gradientS=lumaS-lumaM;float lumaNN=lumaN+lumaM;float lumaSS=lumaS+lumaM;bool pairN=abs(gradientN)>=abs(gradientS);float gradient=max(abs(gradientN),abs(gradientS));if (pairN)
{lengthSign=-lengthSign;}
float subpixC=clamp(abs(subpixB)*subpixRcpRange,0.0,1.0);vec2 posB;posB.x=posM.x;posB.y=posM.y;vec2 offNP;offNP.x=(!horzSpan) ? 0.0 : texelSize.x;offNP.y=(horzSpan) ? 0.0 : texelSize.y;if (!horzSpan) 
{posB.x+=lengthSign*0.5;}
if (horzSpan)
{posB.y+=lengthSign*0.5;}
vec2 posN;posN.x=posB.x-offNP.x*1.5;posN.y=posB.y-offNP.y*1.5;vec2 posP;posP.x=posB.x+offNP.x*1.5;posP.y=posB.y+offNP.y*1.5;float subpixD=((-2.0)*subpixC)+3.0;float lumaEndN=FxaaLuma(TEXTUREFUNC(textureSampler,posN,0.0));float subpixE=subpixC*subpixC;float lumaEndP=FxaaLuma(TEXTUREFUNC(textureSampler,posP,0.0));if (!pairN) 
{lumaNN=lumaSS;}
float gradientScaled=gradient*1.0/4.0;float lumaMM=lumaM-lumaNN*0.5;float subpixF=subpixD*subpixE;bool lumaMLTZero=lumaMM<0.0;lumaEndN-=lumaNN*0.5;lumaEndP-=lumaNN*0.5;bool doneN=abs(lumaEndN)>=gradientScaled;bool doneP=abs(lumaEndP)>=gradientScaled;if (!doneN) 
{posN.x-=offNP.x*3.0;}
if (!doneN) 
{posN.y-=offNP.y*3.0;}
bool doneNP=(!doneN) || (!doneP);if (!doneP) 
{posP.x+=offNP.x*3.0;}
if (!doneP)
{posP.y+=offNP.y*3.0;}
if (doneNP)
{if (!doneN) lumaEndN=FxaaLuma(TEXTUREFUNC(textureSampler,posN.xy,0.0));if (!doneP) lumaEndP=FxaaLuma(TEXTUREFUNC(textureSampler,posP.xy,0.0));if (!doneN) lumaEndN=lumaEndN-lumaNN*0.5;if (!doneP) lumaEndP=lumaEndP-lumaNN*0.5;doneN=abs(lumaEndN)>=gradientScaled;doneP=abs(lumaEndP)>=gradientScaled;if (!doneN) posN.x-=offNP.x*12.0;if (!doneN) posN.y-=offNP.y*12.0;doneNP=(!doneN) || (!doneP);if (!doneP) posP.x+=offNP.x*12.0;if (!doneP) posP.y+=offNP.y*12.0;}
float dstN=posM.x-posN.x;float dstP=posP.x-posM.x;if (!horzSpan)
{dstN=posM.y-posN.y;}
if (!horzSpan) 
{dstP=posP.y-posM.y;}
bool goodSpanN=(lumaEndN<0.0) != lumaMLTZero;float spanLength=(dstP+dstN);bool goodSpanP=(lumaEndP<0.0) != lumaMLTZero;float spanLengthRcp=1.0/spanLength;bool directionN=dstN<dstP;float dst=min(dstN,dstP);bool goodSpan=directionN ? goodSpanN : goodSpanP;float subpixG=subpixF*subpixF;float pixelOffset=(dst*(-spanLengthRcp))+0.5;float subpixH=subpixG*fxaaQualitySubpix;float pixelOffsetGood=goodSpan ? pixelOffset : 0.0;float pixelOffsetSubpix=max(pixelOffsetGood,subpixH);if (!horzSpan)
{posM.x+=pixelOffsetSubpix*lengthSign;}
if (horzSpan)
{posM.y+=pixelOffsetSubpix*lengthSign;}
#ifdef MALI
if(range<rangeMaxClamped) 
{gl_FragColor=rgbyM;}
else
{gl_FragColor=TEXTUREFUNC(textureSampler,posM,0.0);}
#else
gl_FragColor=TEXTUREFUNC(textureSampler,posM,0.0);
#endif
}`;H.ShadersStore[Aoe]||(H.ShadersStore[Aoe]=XSe);const ZSe={name:Aoe,shader:XSe},FXe=Object.freeze(Object.defineProperty({__proto__:null,fxaaPixelShader:ZSe},Symbol.toStringTag,{value:"Module"})),Coe="fxaaVertexShader",KSe=`attribute vec2 position;uniform vec2 texelSize;varying vec2 vUV;varying vec2 sampleCoordS;varying vec2 sampleCoordE;varying vec2 sampleCoordN;varying vec2 sampleCoordW;varying vec2 sampleCoordNW;varying vec2 sampleCoordSE;varying vec2 sampleCoordNE;varying vec2 sampleCoordSW;const vec2 madd=vec2(0.5,0.5);
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
vUV=(position*madd+madd);sampleCoordS=vUV+vec2( 0.0,1.0)*texelSize;sampleCoordE=vUV+vec2( 1.0,0.0)*texelSize;sampleCoordN=vUV+vec2( 0.0,-1.0)*texelSize;sampleCoordW=vUV+vec2(-1.0,0.0)*texelSize;sampleCoordNW=vUV+vec2(-1.0,-1.0)*texelSize;sampleCoordSE=vUV+vec2( 1.0,1.0)*texelSize;sampleCoordNE=vUV+vec2( 1.0,-1.0)*texelSize;sampleCoordSW=vUV+vec2(-1.0,1.0)*texelSize;gl_Position=vec4(position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[Coe]||(H.ShadersStore[Coe]=KSe);const qSe={name:Coe,shader:KSe},kXe=Object.freeze(Object.defineProperty({__proto__:null,fxaaVertexShader:qSe},Symbol.toStringTag,{value:"Module"})),xoe="fxaaPixelShader",QSe=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform texelSize: vec2f;varying sampleCoordS: vec2f;varying sampleCoordE: vec2f;varying sampleCoordN: vec2f;varying sampleCoordW: vec2f;varying sampleCoordNW: vec2f;varying sampleCoordSE: vec2f;varying sampleCoordNE: vec2f;varying sampleCoordSW: vec2f;const fxaaQualitySubpix: f32=1.0;const fxaaQualityEdgeThreshold: f32=0.166;const fxaaQualityEdgeThresholdMin: f32=0.0833;const kLumaCoefficients: vec3f= vec3f(0.2126,0.7152,0.0722);fn FxaaLuma(rgba: vec4f)->f32 {return dot(rgba.rgb,kLumaCoefficients);} 
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var posM: vec2f;posM.x=input.vUV.x;posM.y=input.vUV.y;var rgbyM: vec4f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.0);var lumaM: f32=FxaaLuma(rgbyM);var lumaS: f32=FxaaLuma(textureSampleLevel(textureSampler,textureSamplerSampler,input.sampleCoordS,0.0));var lumaE: f32=FxaaLuma(textureSampleLevel(textureSampler,textureSamplerSampler,input.sampleCoordE,0.0));var lumaN: f32=FxaaLuma(textureSampleLevel(textureSampler,textureSamplerSampler,input.sampleCoordN,0.0));var lumaW: f32=FxaaLuma(textureSampleLevel(textureSampler,textureSamplerSampler,input.sampleCoordW,0.0));var maxSM: f32=max(lumaS,lumaM);var minSM: f32=min(lumaS,lumaM);var maxESM: f32=max(lumaE,maxSM);var minESM: f32=min(lumaE,minSM);var maxWN: f32=max(lumaN,lumaW);var minWN: f32=min(lumaN,lumaW);var rangeMax: f32=max(maxWN,maxESM);var rangeMin: f32=min(minWN,minESM);var rangeMaxScaled: f32=rangeMax*fxaaQualityEdgeThreshold;var range: f32=rangeMax-rangeMin;var rangeMaxClamped: f32=max(fxaaQualityEdgeThresholdMin,rangeMaxScaled);
#ifndef MALI
if(range<rangeMaxClamped) 
{fragmentOutputs.color=rgbyM;return fragmentOutputs;}
#endif
var lumaNW: f32=FxaaLuma(textureSampleLevel(textureSampler,textureSamplerSampler,input.sampleCoordNW,0.0));var lumaSE: f32=FxaaLuma(textureSampleLevel(textureSampler,textureSamplerSampler,input.sampleCoordSE,0.0));var lumaNE: f32=FxaaLuma(textureSampleLevel(textureSampler,textureSamplerSampler,input.sampleCoordNE,0.0));var lumaSW: f32=FxaaLuma(textureSampleLevel(textureSampler,textureSamplerSampler,input.sampleCoordSW,0.0));var lumaNS: f32=lumaN+lumaS;var lumaWE: f32=lumaW+lumaE;var subpixRcpRange: f32=1.0/range;var subpixNSWE: f32=lumaNS+lumaWE;var edgeHorz1: f32=(-2.0*lumaM)+lumaNS;var edgeVert1: f32=(-2.0*lumaM)+lumaWE;var lumaNESE: f32=lumaNE+lumaSE;var lumaNWNE: f32=lumaNW+lumaNE;var edgeHorz2: f32=(-2.0*lumaE)+lumaNESE;var edgeVert2: f32=(-2.0*lumaN)+lumaNWNE;var lumaNWSW: f32=lumaNW+lumaSW;var lumaSWSE: f32=lumaSW+lumaSE;var edgeHorz4: f32=(abs(edgeHorz1)*2.0)+abs(edgeHorz2);var edgeVert4: f32=(abs(edgeVert1)*2.0)+abs(edgeVert2);var edgeHorz3: f32=(-2.0*lumaW)+lumaNWSW;var edgeVert3: f32=(-2.0*lumaS)+lumaSWSE;var edgeHorz: f32=abs(edgeHorz3)+edgeHorz4;var edgeVert: f32=abs(edgeVert3)+edgeVert4;var subpixNWSWNESE: f32=lumaNWSW+lumaNESE;var lengthSign: f32=uniforms.texelSize.x;var horzSpan: bool=edgeHorz>=edgeVert;var subpixA: f32=subpixNSWE*2.0+subpixNWSWNESE;if (!horzSpan)
{lumaN=lumaW;}
if (!horzSpan) 
{lumaS=lumaE;}
if (horzSpan) 
{lengthSign=uniforms.texelSize.y;}
var subpixB: f32=(subpixA*(1.0/12.0))-lumaM;var gradientN: f32=lumaN-lumaM;var gradientS: f32=lumaS-lumaM;var lumaNN: f32=lumaN+lumaM;var lumaSS: f32=lumaS+lumaM;var pairN: bool=abs(gradientN)>=abs(gradientS);var gradient: f32=max(abs(gradientN),abs(gradientS));if (pairN)
{lengthSign=-lengthSign;}
var subpixC: f32=clamp(abs(subpixB)*subpixRcpRange,0.0,1.0);var posB: vec2f;posB.x=posM.x;posB.y=posM.y;var offNP: vec2f;offNP.x=select(uniforms.texelSize.x,0.0,(!horzSpan));offNP.y=select(uniforms.texelSize.y,0.0,(horzSpan));if (!horzSpan) 
{posB.x+=lengthSign*0.5;}
if (horzSpan)
{posB.y+=lengthSign*0.5;}
var posN: vec2f;posN.x=posB.x-offNP.x*1.5;posN.y=posB.y-offNP.y*1.5;var posP: vec2f;posP.x=posB.x+offNP.x*1.5;posP.y=posB.y+offNP.y*1.5;var subpixD: f32=((-2.0)*subpixC)+3.0;var lumaEndN: f32=FxaaLuma(textureSampleLevel(textureSampler,textureSamplerSampler,posN,0.0));var subpixE: f32=subpixC*subpixC;var lumaEndP: f32=FxaaLuma(textureSampleLevel(textureSampler,textureSamplerSampler,posP,0.0));if (!pairN) 
{lumaNN=lumaSS;}
var gradientScaled: f32=gradient*1.0/4.0;var lumaMM: f32=lumaM-lumaNN*0.5;var subpixF: f32=subpixD*subpixE;var lumaMLTZero: bool=lumaMM<0.0;lumaEndN-=lumaNN*0.5;lumaEndP-=lumaNN*0.5;var doneN: bool=abs(lumaEndN)>=gradientScaled;var doneP: bool=abs(lumaEndP)>=gradientScaled;if (!doneN) 
{posN.x-=offNP.x*3.0;}
if (!doneN) 
{posN.y-=offNP.y*3.0;}
var doneNP: bool=(!doneN) || (!doneP);if (!doneP) 
{posP.x+=offNP.x*3.0;}
if (!doneP)
{posP.y+=offNP.y*3.0;}
if (doneNP)
{if (!doneN) {lumaEndN=FxaaLuma(textureSampleLevel(textureSampler,textureSamplerSampler,posN.xy,0.0));}
if (!doneP) {lumaEndP=FxaaLuma(textureSampleLevel(textureSampler,textureSamplerSampler,posP.xy,0.0));}
if (!doneN) {lumaEndN=lumaEndN-lumaNN*0.5;}
if (!doneP) {lumaEndP=lumaEndP-lumaNN*0.5;}
doneN=abs(lumaEndN)>=gradientScaled;doneP=abs(lumaEndP)>=gradientScaled;if (!doneN) {posN.x-=offNP.x*12.0;}
if (!doneN) {posN.y-=offNP.y*12.0;}
doneNP=(!doneN) || (!doneP);if (!doneP) {posP.x+=offNP.x*12.0;}
if (!doneP) {posP.y+=offNP.y*12.0;}}
var dstN: f32=posM.x-posN.x;var dstP: f32=posP.x-posM.x;if (!horzSpan)
{dstN=posM.y-posN.y;}
if (!horzSpan) 
{dstP=posP.y-posM.y;}
var goodSpanN: bool=(lumaEndN<0.0) != lumaMLTZero;var spanLength: f32=(dstP+dstN);var goodSpanP: bool=(lumaEndP<0.0) != lumaMLTZero;var spanLengthRcp: f32=1.0/spanLength;var directionN: bool=dstN<dstP;var dst: f32=min(dstN,dstP);var goodSpan: bool=select(goodSpanP,goodSpanN,directionN);var subpixG: f32=subpixF*subpixF;var pixelOffset: f32=(dst*(-spanLengthRcp))+0.5;var subpixH: f32=subpixG*fxaaQualitySubpix;var pixelOffsetGood: f32=select(0.0,pixelOffset,goodSpan);var pixelOffsetSubpix: f32=max(pixelOffsetGood,subpixH);if (!horzSpan)
{posM.x+=pixelOffsetSubpix*lengthSign;}
if (horzSpan)
{posM.y+=pixelOffsetSubpix*lengthSign;}
#ifdef MALI
if(range<rangeMaxClamped) 
{fragmentOutputs.color=rgbyM;}
else
{fragmentOutputs.color=textureSampleLevel(textureSampler,textureSamplerSampler,posM,0.0);}
#else
fragmentOutputs.color=textureSampleLevel(textureSampler,textureSamplerSampler,posM,0.0);
#endif
}`;H.ShadersStoreWGSL[xoe]||(H.ShadersStoreWGSL[xoe]=QSe);const JSe={name:xoe,shader:QSe},UXe=Object.freeze(Object.defineProperty({__proto__:null,fxaaPixelShaderWGSL:JSe},Symbol.toStringTag,{value:"Module"})),boe="fxaaVertexShader",$Se=`attribute position: vec2f;uniform texelSize: vec2f;varying vUV: vec2f;varying sampleCoordS: vec2f;varying sampleCoordE: vec2f;varying sampleCoordN: vec2f;varying sampleCoordW: vec2f;varying sampleCoordNW: vec2f;varying sampleCoordSE: vec2f;varying sampleCoordNE: vec2f;varying sampleCoordSW: vec2f;const madd: vec2f= vec2f(0.5,0.5);
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
vertexOutputs.vUV=(input.position*madd+madd);vertexOutputs.sampleCoordS=vertexOutputs.vUV+ vec2f( 0.0,1.0)*uniforms.texelSize;vertexOutputs.sampleCoordE=vertexOutputs.vUV+ vec2f( 1.0,0.0)*uniforms.texelSize;vertexOutputs.sampleCoordN=vertexOutputs.vUV+ vec2f( 0.0,-1.0)*uniforms.texelSize;vertexOutputs.sampleCoordW=vertexOutputs.vUV+ vec2f(-1.0,0.0)*uniforms.texelSize;vertexOutputs.sampleCoordNW=vertexOutputs.vUV+ vec2f(-1.0,-1.0)*uniforms.texelSize;vertexOutputs.sampleCoordSE=vertexOutputs.vUV+ vec2f( 1.0,1.0)*uniforms.texelSize;vertexOutputs.sampleCoordNE=vertexOutputs.vUV+ vec2f( 1.0,-1.0)*uniforms.texelSize;vertexOutputs.sampleCoordSW=vertexOutputs.vUV+ vec2f(-1.0,1.0)*uniforms.texelSize;vertexOutputs.position=vec4f(input.position,0.0,1.0);
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[boe]||(H.ShadersStoreWGSL[boe]=$Se);const eye={name:boe,shader:$Se},jXe=Object.freeze(Object.defineProperty({__proto__:null,fxaaVertexShaderWGSL:eye},Symbol.toStringTag,{value:"Module"})),Soe="blackAndWhitePixelShader",tye=`varying vec2 vUV;uniform sampler2D textureSampler;uniform float degree;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) 
{vec3 color=texture2D(textureSampler,vUV).rgb;float luminance=dot(color,vec3(0.3,0.59,0.11)); 
vec3 blackAndWhite=vec3(luminance,luminance,luminance);gl_FragColor=vec4(color-((color-blackAndWhite)*degree),1.0);}`;H.ShadersStore[Soe]||(H.ShadersStore[Soe]=tye);const iye={name:Soe,shader:tye},VXe=Object.freeze(Object.defineProperty({__proto__:null,blackAndWhitePixelShader:iye},Symbol.toStringTag,{value:"Module"})),yoe="blackAndWhitePixelShader",sye=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform degree: f32;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var color: vec3f=textureSample(textureSampler,textureSamplerSampler,input.vUV).rgb;var luminance: f32=dot(color, vec3f(0.3,0.59,0.11)); 
var blackAndWhite: vec3f= vec3f(luminance,luminance,luminance);fragmentOutputs.color= vec4f(color-((color-blackAndWhite)*uniforms.degree),1.0);}`;H.ShadersStoreWGSL[yoe]||(H.ShadersStoreWGSL[yoe]=sye);const rye={name:yoe,shader:sye},GXe=Object.freeze(Object.defineProperty({__proto__:null,blackAndWhitePixelShaderWGSL:rye},Symbol.toStringTag,{value:"Module"})),Moe="anaglyphPixelShader",nye=`varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D leftSampler;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{vec4 leftFrag=texture2D(leftSampler,vUV);leftFrag=vec4(1.0,leftFrag.g,leftFrag.b,1.0);vec4 rightFrag=texture2D(textureSampler,vUV);rightFrag=vec4(rightFrag.r,1.0,1.0,1.0);gl_FragColor=vec4(rightFrag.rgb*leftFrag.rgb,1.0);}`;H.ShadersStore[Moe]||(H.ShadersStore[Moe]=nye);const aye={name:Moe,shader:nye},WXe=Object.freeze(Object.defineProperty({__proto__:null,anaglyphPixelShader:aye},Symbol.toStringTag,{value:"Module"})),Eoe="anaglyphPixelShader",oye=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var leftSamplerSampler: sampler;var leftSampler: texture_2d<f32>;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var leftFrag: vec4f=textureSample(leftSampler,leftSamplerSampler,input.vUV);leftFrag= vec4f(1.0,leftFrag.g,leftFrag.b,1.0);var rightFrag: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV);rightFrag= vec4f(rightFrag.r,1.0,1.0,1.0);fragmentOutputs.color= vec4f(rightFrag.rgb*leftFrag.rgb,1.0);}`;H.ShadersStoreWGSL[Eoe]||(H.ShadersStoreWGSL[Eoe]=oye);const lye={name:Eoe,shader:oye},HXe=Object.freeze(Object.defineProperty({__proto__:null,anaglyphPixelShaderWGSL:lye},Symbol.toStringTag,{value:"Module"})),Toe="convolutionPixelShader",cye=`varying vec2 vUV;uniform sampler2D textureSampler;uniform vec2 screenSize;uniform float kernel[9];
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{vec2 onePixel=vec2(1.0,1.0)/screenSize;vec4 colorSum =
texture2D(textureSampler,vUV+onePixel*vec2(-1,-1))*kernel[0] +
texture2D(textureSampler,vUV+onePixel*vec2(0,-1))*kernel[1] +
texture2D(textureSampler,vUV+onePixel*vec2(1,-1))*kernel[2] +
texture2D(textureSampler,vUV+onePixel*vec2(-1,0))*kernel[3] +
texture2D(textureSampler,vUV+onePixel*vec2(0,0))*kernel[4] +
texture2D(textureSampler,vUV+onePixel*vec2(1,0))*kernel[5] +
texture2D(textureSampler,vUV+onePixel*vec2(-1,1))*kernel[6] +
texture2D(textureSampler,vUV+onePixel*vec2(0,1))*kernel[7] +
texture2D(textureSampler,vUV+onePixel*vec2(1,1))*kernel[8];float kernelWeight =
kernel[0] +
kernel[1] +
kernel[2] +
kernel[3] +
kernel[4] +
kernel[5] +
kernel[6] +
kernel[7] +
kernel[8];if (kernelWeight<=0.0) {kernelWeight=1.0;}
gl_FragColor=vec4((colorSum/kernelWeight).rgb,1);}`;H.ShadersStore[Toe]||(H.ShadersStore[Toe]=cye);const uye={name:Toe,shader:cye},YXe=Object.freeze(Object.defineProperty({__proto__:null,convolutionPixelShader:uye},Symbol.toStringTag,{value:"Module"})),Loe="convolutionPixelShader",hye=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform screenSize: vec2f;uniform kernel: array<f32,9>;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var onePixel: vec2f= vec2f(1.0,1.0)/uniforms.screenSize;var colorSum: vec4f =
textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel* vec2f(-1,-1))*uniforms.kernel[0] +
textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel* vec2f(0,-1))*uniforms.kernel[1] +
textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel* vec2f(1,-1))*uniforms.kernel[2] +
textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel* vec2f(-1,0))*uniforms.kernel[3] +
textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel* vec2f(0,0))*uniforms.kernel[4] +
textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel* vec2f(1,0))*uniforms.kernel[5] +
textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel* vec2f(-1,1))*uniforms.kernel[6] +
textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel* vec2f(0,1))*uniforms.kernel[7] +
textureSample(textureSampler,textureSamplerSampler,input.vUV+onePixel* vec2f(1,1))*uniforms.kernel[8];var kernelWeight: f32 =
uniforms.kernel[0] +
uniforms.kernel[1] +
uniforms.kernel[2] +
uniforms.kernel[3] +
uniforms.kernel[4] +
uniforms.kernel[5] +
uniforms.kernel[6] +
uniforms.kernel[7] +
uniforms.kernel[8];if (kernelWeight<=0.0) {kernelWeight=1.0;}
fragmentOutputs.color= vec4f((colorSum/kernelWeight).rgb,1);}`;H.ShadersStoreWGSL[Loe]||(H.ShadersStoreWGSL[Loe]=hye);const dye={name:Loe,shader:hye},XXe=Object.freeze(Object.defineProperty({__proto__:null,convolutionPixelShaderWGSL:dye},Symbol.toStringTag,{value:"Module"})),Ioe="colorCorrectionPixelShader",fye=`uniform sampler2D textureSampler; 
uniform sampler2D colorTable; 
varying vec2 vUV;const float SLICE_COUNT=16.0; 
#define inline
vec4 sampleAs3DTexture(sampler2D textureSampler,vec3 uv,float width) {float sliceSize=1.0/width; 
float slicePixelSize=sliceSize/width; 
float sliceInnerSize=slicePixelSize*(width-1.0); 
float zSlice0=min(floor(uv.z*width),width-1.0);float zSlice1=min(zSlice0+1.0,width-1.0);float xOffset=slicePixelSize*0.5+uv.x*sliceInnerSize;float s0=xOffset+(zSlice0*sliceSize);float s1=xOffset+(zSlice1*sliceSize);vec4 slice0Color=texture2D(textureSampler,vec2(s0,uv.y));vec4 slice1Color=texture2D(textureSampler,vec2(s1,uv.y));float zOffset=mod(uv.z*width,1.0);vec4 result=mix(slice0Color,slice1Color,zOffset);return result;}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{vec4 screen_color=texture2D(textureSampler,vUV);gl_FragColor=sampleAs3DTexture(colorTable,screen_color.rgb,SLICE_COUNT);}`;H.ShadersStore[Ioe]||(H.ShadersStore[Ioe]=fye);const pye={name:Ioe,shader:fye},ZXe=Object.freeze(Object.defineProperty({__proto__:null,colorCorrectionPixelShader:pye},Symbol.toStringTag,{value:"Module"})),Poe="colorCorrectionPixelShader",mye=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;varying vUV: vec2f;var colorTableSampler: sampler;var colorTable: texture_2d<f32>;const SLICE_COUNT: f32=16.0; 
fn sampleAs3DTexture(uv: vec3f,width: f32)->vec4f {var sliceSize: f32=1.0/width; 
var slicePixelSize: f32=sliceSize/width; 
var sliceInnerSize: f32=slicePixelSize*(width-1.0); 
var zSlice0: f32=min(floor(uv.z*width),width-1.0);var zSlice1: f32=min(zSlice0+1.0,width-1.0);var xOffset: f32=slicePixelSize*0.5+uv.x*sliceInnerSize;var s0: f32=xOffset+(zSlice0*sliceSize);var s1: f32=xOffset+(zSlice1*sliceSize);var slice0Color: vec4f=textureSample(colorTable,colorTableSampler,vec2f(s0,uv.y));var slice1Color: vec4f=textureSample(colorTable,colorTableSampler,vec2f(s1,uv.y));var zOffset: f32=((uv.z*width)%(1.0));return mix(slice0Color,slice1Color,zOffset);}
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var screen_color: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV);fragmentOutputs.color=sampleAs3DTexture(screen_color.rgb,SLICE_COUNT);}`;H.ShadersStoreWGSL[Poe]||(H.ShadersStoreWGSL[Poe]=mye);const gye={name:Poe,shader:mye},KXe=Object.freeze(Object.defineProperty({__proto__:null,colorCorrectionPixelShaderWGSL:gye},Symbol.toStringTag,{value:"Module"})),Ooe="motionBlurPixelShader",_ye=`varying vec2 vUV;uniform sampler2D textureSampler;uniform float motionStrength;uniform float motionScale;uniform vec2 screenSize;
#ifdef OBJECT_BASED
uniform sampler2D velocitySampler;
#else
uniform sampler2D depthSampler;uniform mat4 inverseViewProjection;uniform mat4 prevViewProjection;uniform mat4 projection;
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{
#ifdef GEOMETRY_SUPPORTED
#ifdef OBJECT_BASED
vec2 texelSize=1.0/screenSize;vec4 velocityColor=texture2D(velocitySampler,vUV);velocityColor.rg=velocityColor.rg*2.0-vec2(1.0);vec2 signs=sign(velocityColor.rg);vec2 velocity=pow(abs(velocityColor.rg),vec2(3.0))*signs*velocityColor.a;velocity*=motionScale*motionStrength;float speed=length(velocity/texelSize);int samplesCount=int(clamp(speed,1.0,SAMPLES));velocity=normalize(velocity)*texelSize;float hlim=float(-samplesCount)*0.5+0.5;vec4 result=texture2D(textureSampler,vUV);for (int i=1; i<int(SAMPLES); ++i)
{if (i>=samplesCount)
break;vec2 offset=vUV+velocity*(hlim+float(i));
#if defined(WEBGPU)
result+=texture2DLodEXT(textureSampler,offset,0.0);
#else
result+=texture2D(textureSampler,offset);
#endif
}
gl_FragColor=result/float(samplesCount);gl_FragColor.a=1.0;
#else
vec2 texelSize=1.0/screenSize;float depth=texture2D(depthSampler,vUV).r;depth=projection[2].z+projection[3].z/depth; 
vec4 cpos=vec4(vUV*2.0-1.0,depth,1.0);cpos=inverseViewProjection*cpos;cpos/=cpos.w;vec4 ppos=prevViewProjection*cpos;ppos/=ppos.w;ppos.xy=ppos.xy*0.5+0.5;vec2 velocity=(ppos.xy-vUV)*motionScale*motionStrength;float speed=length(velocity/texelSize);int nSamples=int(clamp(speed,1.0,SAMPLES));vec4 result=texture2D(textureSampler,vUV);for (int i=1; i<int(SAMPLES); ++i) {if (i>=nSamples)
break;vec2 offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);
#if defined(WEBGPU)
result+=texture2DLodEXT(textureSampler,offset1,0.0);
#else
result+=texture2D(textureSampler,offset1);
#endif
}
gl_FragColor=result/float(nSamples);
#endif
#else
gl_FragColor=texture2D(textureSampler,vUV);
#endif
}
`;H.ShadersStore[Ooe]||(H.ShadersStore[Ooe]=_ye);const vye={name:Ooe,shader:_ye},qXe=Object.freeze(Object.defineProperty({__proto__:null,motionBlurPixelShader:vye},Symbol.toStringTag,{value:"Module"})),Roe="motionBlurPixelShader",Aye=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform motionStrength: f32;uniform motionScale: f32;uniform screenSize: vec2f;
#ifdef OBJECT_BASED
var velocitySamplerSampler: sampler;var velocitySampler: texture_2d<f32>;
#else
var depthSamplerSampler: sampler;var depthSampler: texture_2d<f32>;uniform inverseViewProjection: mat4x4f;uniform prevViewProjection: mat4x4f;uniform projection: mat4x4f;
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#ifdef GEOMETRY_SUPPORTED
#ifdef OBJECT_BASED
var texelSize: vec2f=1.0/uniforms.screenSize;var velocityColor: vec4f=textureSample(velocitySampler,velocitySamplerSampler,input.vUV);velocityColor=vec4f(velocityColor.rg*2.0- vec2f(1.0),velocityColor.b,velocityColor.a);let signs=sign(velocityColor.rg);var velocity=pow(abs(velocityColor.rg),vec2f(3.0))*signs*velocityColor.a;velocity*=uniforms.motionScale*uniforms.motionStrength;var speed: f32=length(velocity/texelSize);var samplesCount: i32= i32(clamp(speed,1.0,SAMPLES));velocity=normalize(velocity)*texelSize;var hlim: f32= f32(-samplesCount)*0.5+0.5;var result: vec4f=textureSample(textureSampler,textureSamplerSampler, input.vUV);for (var i: i32=1; i< i32(SAMPLES); i++)
{if (i>=samplesCount) {break;}
var offset: vec2f=input.vUV+velocity*(hlim+ f32(i));
#if defined(WEBGPU)
result+=textureSampleLevel(textureSampler,textureSamplerSampler, offset,0.0);
#else
result+=textureSample(textureSampler,textureSamplerSampler, offset);
#endif
}
fragmentOutputs.color=vec4f(result.rgb/ f32(samplesCount),1.0);
#else
var texelSize: vec2f=1.0/uniforms.screenSize;var depth: f32=textureSample(depthSampler,depthSamplerSampler,input.vUV).r;depth=uniforms.projection[2].z+uniforms.projection[3].z/depth; 
var cpos: vec4f= vec4f(input.vUV*2.0-1.0,depth,1.0);cpos=uniforms.inverseViewProjection*cpos;cpos/=cpos.w;var ppos: vec4f=uniforms.prevViewProjection*cpos;ppos/=ppos.w;ppos.xy=ppos.xy*0.5+0.5;var velocity: vec2f=(ppos.xy-input.vUV)*uniforms.motionScale*uniforms.motionStrength;var speed: f32=length(velocity/texelSize);var nSamples: i32= i32(clamp(speed,1.0,SAMPLES));var result: vec4f=textureSample(textureSampler,textureSamplerSampler, input.vUV);for (var i: i32=1; i< i32(SAMPLES); i++) {if (i>=nSamples) {break;}
var offset1: vec2f=input.vUV+velocity*( f32(i)/ f32(nSamples-1)-0.5);
#if defined(WEBGPU)
result+=textureSampleLevel(textureSampler,textureSamplerSampler, offset1,0.0);
#else
result+=textureSample(textureSampler,textureSamplerSampler, offset1);
#endif
}
fragmentOutputs.color=result/ f32(nSamples);
#endif
#else
fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler, input.vUV);
#endif
}
`;H.ShadersStoreWGSL[Roe]||(H.ShadersStoreWGSL[Roe]=Aye);const Cye={name:Roe,shader:Aye},QXe=Object.freeze(Object.defineProperty({__proto__:null,motionBlurPixelShaderWGSL:Cye},Symbol.toStringTag,{value:"Module"})),Doe="filterPixelShader",xye=`varying vec2 vUV;uniform sampler2D textureSampler;uniform mat4 kernelMatrix;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{vec3 baseColor=texture2D(textureSampler,vUV).rgb;vec3 updatedColor=(kernelMatrix*vec4(baseColor,1.0)).rgb;gl_FragColor=vec4(updatedColor,1.0);}`;H.ShadersStore[Doe]||(H.ShadersStore[Doe]=xye);const bye={name:Doe,shader:xye},JXe=Object.freeze(Object.defineProperty({__proto__:null,filterPixelShader:bye},Symbol.toStringTag,{value:"Module"})),Noe="filterPixelShader",Sye=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform kernelMatrix: mat4x4f;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var baseColor: vec3f=textureSample(textureSampler,textureSamplerSampler,input.vUV).rgb;var updatedColor: vec3f=(uniforms.kernelMatrix* vec4f(baseColor,1.0)).rgb;fragmentOutputs.color= vec4f(updatedColor,1.0);}`;H.ShadersStoreWGSL[Noe]||(H.ShadersStoreWGSL[Noe]=Sye);const yye={name:Noe,shader:Sye},$Xe=Object.freeze(Object.defineProperty({__proto__:null,filterPixelShaderWGSL:yye},Symbol.toStringTag,{value:"Module"})),woe="highlightsPixelShader",Mye=`varying vec2 vUV;uniform sampler2D textureSampler;const vec3 RGBLuminanceCoefficients=vec3(0.2126,0.7152,0.0722);
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) 
{vec4 tex=texture2D(textureSampler,vUV);vec3 c=tex.rgb;float luma=dot(c.rgb,RGBLuminanceCoefficients);gl_FragColor=vec4(pow(c,vec3(25.0-luma*15.0)),tex.a); }`;H.ShadersStore[woe]||(H.ShadersStore[woe]=Mye);const Eye={name:woe,shader:Mye},eZe=Object.freeze(Object.defineProperty({__proto__:null,highlightsPixelShader:Eye},Symbol.toStringTag,{value:"Module"})),Boe="highlightsPixelShader",Tye=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;const RGBLuminanceCoefficients: vec3f= vec3f(0.2126,0.7152,0.0722);
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var tex: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV);var c: vec3f=tex.rgb;var luma: f32=dot(c.rgb,RGBLuminanceCoefficients);fragmentOutputs.color= vec4f(pow(c, vec3f(25.0-luma*15.0)),tex.a); }`;H.ShadersStoreWGSL[Boe]||(H.ShadersStoreWGSL[Boe]=Tye);const Lye={name:Boe,shader:Tye},tZe=Object.freeze(Object.defineProperty({__proto__:null,highlightsPixelShaderWGSL:Lye},Symbol.toStringTag,{value:"Module"})),zoe="displayPassPixelShader",Iye=`varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D passSampler;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{gl_FragColor=texture2D(passSampler,vUV);}`;H.ShadersStore[zoe]||(H.ShadersStore[zoe]=Iye);const Pye={name:zoe,shader:Iye},iZe=Object.freeze(Object.defineProperty({__proto__:null,displayPassPixelShader:Pye},Symbol.toStringTag,{value:"Module"})),Foe="displayPassPixelShader",Oye=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var passSamplerSampler: sampler;var passSampler: texture_2d<f32>;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=textureSample(passSampler,passSamplerSampler,input.vUV);}`;H.ShadersStoreWGSL[Foe]||(H.ShadersStoreWGSL[Foe]=Oye);const Rye={name:Foe,shader:Oye},sZe=Object.freeze(Object.defineProperty({__proto__:null,displayPassPixelShaderWGSL:Rye},Symbol.toStringTag,{value:"Module"})),koe="tonemapPixelShader",Dye=`varying vec2 vUV;uniform sampler2D textureSampler;uniform float _ExposureAdjustment;
#if defined(HABLE_TONEMAPPING)
const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;const float W=11.2;
#endif
float Luminance(vec3 c)
{return dot(c,vec3(0.22,0.707,0.071));}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) 
{vec3 colour=texture2D(textureSampler,vUV).rgb;
#if defined(REINHARD_TONEMAPPING)
float lum=Luminance(colour.rgb); 
float lumTm=lum*_ExposureAdjustment;float scale=lumTm/(1.0+lumTm); 
colour*=scale/lum;
#elif defined(HABLE_TONEMAPPING)
colour*=_ExposureAdjustment;const float ExposureBias=2.0;vec3 x=ExposureBias*colour;vec3 curr=((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;x=vec3(W,W,W);vec3 whiteScale=1.0/(((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F);colour=curr*whiteScale;
#elif defined(OPTIMIZED_HEJIDAWSON_TONEMAPPING)
colour*=_ExposureAdjustment;vec3 X=max(vec3(0.0,0.0,0.0),colour-0.004);vec3 retColor=(X*(6.2*X+0.5))/(X*(6.2*X+1.7)+0.06);colour=retColor*retColor;
#elif defined(PHOTOGRAPHIC_TONEMAPPING)
colour= vec3(1.0,1.0,1.0)-exp2(-_ExposureAdjustment*colour);
#endif
gl_FragColor=vec4(colour.rgb,1.0);}`;H.ShadersStore[koe]||(H.ShadersStore[koe]=Dye);const Nye={name:koe,shader:Dye},rZe=Object.freeze(Object.defineProperty({__proto__:null,tonemapPixelShader:Nye},Symbol.toStringTag,{value:"Module"})),Uoe="tonemapPixelShader",wye=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform _ExposureAdjustment: f32;
#if defined(HABLE_TONEMAPPING)
const A: f32=0.15;const B: f32=0.50;const C: f32=0.10;const D: f32=0.20;const E: f32=0.02;const F: f32=0.30;const W: f32=11.2;
#endif
fn Luminance(c: vec3f)->f32
{return dot(c, vec3f(0.22,0.707,0.071));}
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var colour: vec3f=textureSample(textureSampler,textureSamplerSampler,input.vUV).rgb;
#if defined(REINHARD_TONEMAPPING)
var lum: f32=Luminance(colour.rgb); 
var lumTm: f32=lum*uniforms._ExposureAdjustment;var scale: f32=lumTm/(1.0+lumTm); 
colour*=scale/lum;
#elif defined(HABLE_TONEMAPPING)
colour*=uniforms._ExposureAdjustment;const ExposureBias: f32=2.0;var x: vec3f=ExposureBias*colour;var curr: vec3f=((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;x= vec3f(W,W,W);var whiteScale: vec3f=1.0/(((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F);colour=curr*whiteScale;
#elif defined(OPTIMIZED_HEJIDAWSON_TONEMAPPING)
colour*=uniforms._ExposureAdjustment;var X: vec3f=max( vec3f(0.0,0.0,0.0),colour-0.004);var retColor: vec3f=(X*(6.2*X+0.5))/(X*(6.2*X+1.7)+0.06);colour=retColor*retColor;
#elif defined(PHOTOGRAPHIC_TONEMAPPING)
colour= vec3f(1.0,1.0,1.0)-exp2(-uniforms._ExposureAdjustment*colour);
#endif
fragmentOutputs.color= vec4f(colour.rgb,1.0);}`;H.ShadersStoreWGSL[Uoe]||(H.ShadersStoreWGSL[Uoe]=wye);const Bye={name:Uoe,shader:wye},nZe=Object.freeze(Object.defineProperty({__proto__:null,tonemapPixelShaderWGSL:Bye},Symbol.toStringTag,{value:"Module"}));Object.defineProperty(ui.prototype,"forceShowBoundingBoxes",{get:function(){return this._forceShowBoundingBoxes||!1},set:function(a){this._forceShowBoundingBoxes=a,a&&this.getBoundingBoxRenderer()},enumerable:!0,configurable:!0}),ui.prototype.getBoundingBoxRenderer=function(){return this._boundingBoxRenderer||(this._boundingBoxRenderer=new kye(this)),this._boundingBoxRenderer},Object.defineProperty(cr.prototype,"showBoundingBox",{get:function(){return this._showBoundingBox||!1},set:function(a){this._showBoundingBox=a,a&&this.getScene().getBoundingBoxRenderer()},enumerable:!0,configurable:!0});const zye=me.Identity(),NY=new P,aZe=new P,oZe=zye.asArray(),Fye=new ef(NY,NY);class kye{get shaderLanguage(){return this._shaderLanguage}constructor(e){this.name=jt.NAME_BOUNDINGBOXRENDERER,this.frontColor=new Pe(1,1,1),this.backColor=new Pe(.1,.1,.1),this.showBackLines=!0,this.onBeforeBoxRenderingObservable=new xe,this.onAfterBoxRenderingObservable=new xe,this.onResourcesReadyObservable=new xe,this.enabled=!0,this._shaderLanguage=0,this.renderList=new dl(32),this._vertexBuffers={},this._fillIndexBuffer=null,this._fillIndexData=null,this._matrixBuffer=null,this._matrices=null,this._useInstances=!1,this._drawWrapperFront=null,this._drawWrapperBack=null,this.scene=e,this.scene.getEngine().isWebGPU&&(this._shaderLanguage=1),e._addComponent(this),this._uniformBufferFront=new Ti(this.scene.getEngine(),void 0,void 0,"BoundingBoxRendererFront",!0),this._buildUniformLayout(this._uniformBufferFront),this._uniformBufferBack=new Ti(this.scene.getEngine(),void 0,void 0,"BoundingBoxRendererBack",!0),this._buildUniformLayout(this._uniformBufferBack)}_buildUniformLayout(e){e.addUniform("color",4),e.addUniform("world",16),e.addUniform("viewProjection",16),e.addUniform("viewProjectionR",16),e.create()}register(){this.scene._beforeEvaluateActiveMeshStage.registerStep(jt.STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER,this,this.reset),this.scene._preActiveMeshStage.registerStep(jt.STEP_PREACTIVEMESH_BOUNDINGBOXRENDERER,this,this._preActiveMesh),this.scene._evaluateSubMeshStage.registerStep(jt.STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER,this,this._evaluateSubMesh),this.scene._afterRenderingGroupDrawStage.registerStep(jt.STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER,this,this.render)}_evaluateSubMesh(e,t){if(e.showSubMeshesBoundingBox){const i=t.getBoundingInfo();i!=null&&(i.boundingBox._tag=e.renderingGroupId,this.renderList.push(i.boundingBox))}}_preActiveMesh(e){if(e.showBoundingBox||this.scene.forceShowBoundingBoxes){const t=e.getBoundingInfo();t.boundingBox._tag=e.renderingGroupId,this.renderList.push(t.boundingBox)}}_prepareResources(){if(this._colorShader)return;this._colorShader=new Fo("colorShader",this.scene,"boundingBoxRenderer",{attributes:[q.PositionKind,"world0","world1","world2","world3"],uniforms:["world","viewProjection","viewProjectionR","color"],uniformBuffers:["BoundingBoxRenderer"],shaderLanguage:this._shaderLanguage,extraInitializationsAsync:async()=>{this._shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>SEe),Promise.resolve().then(()=>CEe)]):await Promise.all([Promise.resolve().then(()=>_Ee),Promise.resolve().then(()=>fEe)])}},!1),this._colorShader.setDefine("INSTANCES",this._useInstances),this._colorShader.doNotSerialize=!0,this._colorShader.reservedDataStore={hidden:!0},this._colorShaderForOcclusionQuery=new Fo("colorShaderOccQuery",this.scene,"boundingBoxRenderer",{attributes:[q.PositionKind],uniforms:["world","viewProjection","viewProjectionR","color"],uniformBuffers:["BoundingBoxRenderer"],shaderLanguage:this._shaderLanguage,extraInitializationsAsync:async()=>{this._shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>SEe),Promise.resolve().then(()=>CEe)]):await Promise.all([Promise.resolve().then(()=>_Ee),Promise.resolve().then(()=>fEe)])}},!0),this._colorShaderForOcclusionQuery.doNotSerialize=!0,this._colorShaderForOcclusionQuery.reservedDataStore={hidden:!0};const e=this.scene.getEngine(),t=RW({size:1});this._vertexBuffers[q.PositionKind]=new q(e,t.positions,q.PositionKind,!1),this._createIndexBuffer(),this._fillIndexData=t.indices,this.onResourcesReadyObservable.notifyObservers(this)}_createIndexBuffer(){const e=this.scene.getEngine();this._indexBuffer=e.createIndexBuffer([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,7,1,6,2,5,3,4])}rebuild(){const e=this._vertexBuffers[q.PositionKind];e&&e._rebuild(),this._createIndexBuffer(),this._matrixBuffer&&this._matrixBuffer._rebuild()}reset(){this.renderList.reset()}render(e){if(this.renderList.length===0||!this.enabled)return;if(this._useInstances){this._renderInstanced(e);return}if(this._prepareResources(),!this._colorShader.isReady())return;const t=this.scene.getEngine();t.setDepthWrite(!1);const i=this.scene.getTransformMatrix();for(let s=0;s<this.renderList.length;s++){const r=this.renderList.data[s];if(r._tag!==e)continue;this._createWrappersForBoundingBox(r),this.onBeforeBoxRenderingObservable.notifyObservers(r);const n=r.minimum,l=r.maximum.subtract(n),c=n.add(l.scale(.5)),u=me.Scaling(l.x,l.y,l.z).multiply(me.Translation(c.x,c.y,c.z)).multiply(r.getWorldMatrix()),f=t.useReverseDepthBuffer;if(this.showBackLines){const m=r._drawWrapperBack??this._colorShader._getDrawWrapper();this._colorShader._preBind(m),t.bindBuffers(this._vertexBuffers,this._indexBuffer,this._colorShader.getEffect()),f?t.setDepthFunctionToLessOrEqual():t.setDepthFunctionToGreaterOrEqual(),this._uniformBufferBack.bindToEffect(m.effect,"BoundingBoxRenderer"),this._uniformBufferBack.updateColor4("color",this.backColor,1),this._uniformBufferBack.updateMatrix("world",u),this._uniformBufferBack.updateMatrix("viewProjection",i),this._uniformBufferBack.update(),t.drawElementsType(ft.LineListDrawMode,0,24)}const p=r._drawWrapperFront??this._colorShader._getDrawWrapper();this._colorShader._preBind(p),t.bindBuffers(this._vertexBuffers,this._indexBuffer,this._colorShader.getEffect()),f?t.setDepthFunctionToGreater():t.setDepthFunctionToLess(),this._uniformBufferFront.bindToEffect(p.effect,"BoundingBoxRenderer"),this._uniformBufferFront.updateColor4("color",this.frontColor,1),this._uniformBufferFront.updateMatrix("world",u),this._uniformBufferFront.updateMatrix("viewProjection",i),this._uniformBufferFront.update(),t.drawElementsType(ft.LineListDrawMode,0,24),this.onAfterBoxRenderingObservable.notifyObservers(r)}this._colorShader.unbind(),t.setDepthFunctionToLessOrEqual(),t.setDepthWrite(!0)}_createWrappersForBoundingBox(e){if(!e._drawWrapperFront){const t=this.scene.getEngine();e._drawWrapperFront=new ql(t),e._drawWrapperBack=new ql(t),e._drawWrapperFront.setEffect(this._colorShader.getEffect()),e._drawWrapperBack.setEffect(this._colorShader.getEffect())}}renderOcclusionBoundingBox(e){const t=this.scene.getEngine();this._renderPassIdForOcclusionQuery===void 0&&(this._renderPassIdForOcclusionQuery=t.createRenderPassId("Render pass for occlusion query"));const i=t.currentRenderPassId;t.currentRenderPassId=this._renderPassIdForOcclusionQuery,this._prepareResources();const s=e.subMeshes[0];if(!this._colorShaderForOcclusionQuery.isReady(e,void 0,s)||!e.hasBoundingInfo){t.currentRenderPassId=i;return}this._fillIndexBuffer||(this._fillIndexBuffer=t.createIndexBuffer(this._fillIndexData));const r=t.useReverseDepthBuffer;t.setDepthWrite(!1),t.setColorWrite(!1);const n=e.getBoundingInfo().boundingBox,o=n.minimum,c=n.maximum.subtract(o),u=o.add(c.scale(.5)),f=me.Scaling(c.x,c.y,c.z).multiply(me.Translation(u.x,u.y,u.z)).multiply(n.getWorldMatrix()),p=s._drawWrapper;this._colorShaderForOcclusionQuery._preBind(p),t.bindBuffers(this._vertexBuffers,this._fillIndexBuffer,p.effect),r?t.setDepthFunctionToGreater():t.setDepthFunctionToLess(),this.scene.resetCachedMaterial(),this._uniformBufferFront.bindToEffect(p.effect,"BoundingBoxRenderer"),this._uniformBufferFront.updateMatrix("world",f),this._uniformBufferFront.updateMatrix("viewProjection",this.scene.getTransformMatrix()),this._uniformBufferFront.update(),t.drawElementsType(ft.TriangleFillMode,0,36),this._colorShaderForOcclusionQuery.unbind(),t.setDepthFunctionToLessOrEqual(),t.setDepthWrite(!0),t.setColorWrite(!0),t.currentRenderPassId=i}set useInstances(e){this._useInstances=e,this._colorShader&&this._colorShader.setDefine("INSTANCES",e),e||this._cleanupInstances()}get useInstances(){return this._useInstances}_renderInstanced(e){if(this.renderList.length===0||!this.enabled||(this._prepareResources(),!this._colorShader.isReady()))return;const t=this._colorShader;let i=this._matrices;const s=this.renderList.length*16;(!i||i.length<s||i.length>s*2)&&(i=new Float32Array(s),this._matrices=i),this.onBeforeBoxRenderingObservable.notifyObservers(Fye);let r=0;for(let _=0;_<this.renderList.length;_++){const d=this.renderList.data[_];if(d._tag!==e)continue;const h=d.minimum,A=d.maximum.subtractToRef(h,aZe),S=h.addToRef(A.scaleToRef(.5,NY),NY),E=oZe;E[0]=A._x,E[3]=S._x,E[5]=A._y,E[7]=S._y,E[10]=A._z,E[11]=S._z,zye.multiplyToArray(d.getWorldMatrix(),i,r*16),r++}const n=this.scene.getEngine(),o=n.getDepthFunction()??515,l=n.getDepthWrite();n.setDepthWrite(!1);const c=this._matrixBuffer;c!=null&&c.isUpdatable()&&c.getData()===i?c.update(i):this._createInstanceBuffer(i),this._createWrappersForBoundingBox(this);const u=n.useReverseDepthBuffer,f=this.scene.getTransformMatrix();if(this.showBackLines){const _=this._drawWrapperBack??t._getDrawWrapper();t._preBind(_),n.bindBuffers(this._vertexBuffers,this._indexBuffer,t.getEffect()),u?n.setDepthFunctionToLessOrEqual():n.setDepthFunctionToGreaterOrEqual();const d=this._uniformBufferBack;d.bindToEffect(_.effect,"BoundingBoxRenderer"),d.updateColor4("color",this.backColor,1),d.updateMatrix("viewProjection",f),d.update(),n.drawElementsType(ft.LineListDrawMode,0,24,r)}const p=t._getDrawWrapper();t._preBind(p),n.bindBuffers(this._vertexBuffers,this._indexBuffer,t.getEffect()),u?n.setDepthFunctionToGreater():n.setDepthFunctionToLess();const m=this._uniformBufferFront;m.bindToEffect(p.effect,"BoundingBoxRenderer"),m.updateColor4("color",this.frontColor,1),m.updateMatrix("viewProjection",f),m.update(),n.drawElementsType(ft.LineListDrawMode,0,24,r),this.onAfterBoxRenderingObservable.notifyObservers(Fye),t.unbind(),n.setDepthFunction(o),n.setDepthWrite(l)}_createInstanceBuffer(e){const t=this._vertexBuffers;this._cleanupInstanceBuffer();const i=new fl(this.scene.getEngine(),e,!0,16,!1,!0);t.world0=i.createVertexBuffer("world0",0,4),t.world1=i.createVertexBuffer("world1",4,4),t.world2=i.createVertexBuffer("world2",8,4),t.world3=i.createVertexBuffer("world3",12,4),this._matrixBuffer=i}_cleanupInstanceBuffer(){const e=this._vertexBuffers;e.world0&&(e.world0.dispose(),delete e.world0),e.world1&&(e.world1.dispose(),delete e.world1),e.world2&&(e.world2.dispose(),delete e.world2),e.world3&&(e.world3.dispose(),delete e.world3),this._matrices=null,this._matrixBuffer&&(this._matrixBuffer.dispose(),this._matrixBuffer=null)}_cleanupInstances(){this._cleanupInstanceBuffer(),this._drawWrapperFront&&(this._drawWrapperFront.dispose(),this._drawWrapperFront=null),this._drawWrapperBack&&(this._drawWrapperBack.dispose(),this._drawWrapperBack=null)}dispose(){if(this._renderPassIdForOcclusionQuery!==void 0&&(this.scene.getEngine().releaseRenderPassId(this._renderPassIdForOcclusionQuery),this._renderPassIdForOcclusionQuery=void 0),!this._colorShader)return;this.onBeforeBoxRenderingObservable.clear(),this.onAfterBoxRenderingObservable.clear(),this.onResourcesReadyObservable.clear(),this.renderList.dispose(),this._colorShader.dispose(),this._colorShaderForOcclusionQuery.dispose(),this._uniformBufferFront.dispose(),this._uniformBufferBack.dispose();const e=this._vertexBuffers[q.PositionKind];e&&(e.dispose(),this._vertexBuffers[q.PositionKind]=null),this.scene.getEngine()._releaseBuffer(this._indexBuffer),this._fillIndexBuffer&&(this.scene.getEngine()._releaseBuffer(this._fillIndexBuffer),this._fillIndexBuffer=null),this._cleanupInstances()}}ui.prototype.enableDepthRenderer=function(a,e=!1,t=!1,i=3,s=!1){if(a=a||this.activeCamera,!a)throw"No camera available to enable depth renderer";if(this._depthRenderer||(this._depthRenderer={}),!this._depthRenderer[a.id]){const r=!!this.getEngine().getCaps().textureFloatRender;let n=0;this.getEngine().getCaps().textureHalfFloatRender&&(!t||!r)?n=2:r?n=1:n=0,this._depthRenderer[a.id]=new ub(this,n,a,e,i,s)}return this._depthRenderer[a.id]},ui.prototype.disableDepthRenderer=function(a){a=a||this.activeCamera,!(!a||!this._depthRenderer||!this._depthRenderer[a.id])&&this._depthRenderer[a.id].dispose()};class Uye{constructor(e){this.name=jt.NAME_DEPTHRENDERER,this.scene=e}register(){this.scene._gatherRenderTargetsStage.registerStep(jt.STEP_GATHERRENDERTARGETS_DEPTHRENDERER,this,this._gatherRenderTargets),this.scene._gatherActiveCameraRenderTargetsStage.registerStep(jt.STEP_GATHERACTIVECAMERARENDERTARGETS_DEPTHRENDERER,this,this._gatherActiveCameraRenderTargets)}rebuild(){}dispose(){for(const e in this.scene._depthRenderer)this.scene._depthRenderer[e].dispose()}_gatherRenderTargets(e){if(this.scene._depthRenderer)for(const t in this.scene._depthRenderer){const i=this.scene._depthRenderer[t];i.enabled&&!i.useOnlyInActiveCamera&&e.push(i.getDepthMap())}}_gatherActiveCameraRenderTargets(e){if(this.scene._depthRenderer)for(const t in this.scene._depthRenderer){const i=this.scene._depthRenderer[t];i.enabled&&i.useOnlyInActiveCamera&&this.scene.activeCamera.id===t&&e.push(i.getDepthMap())}}}ub._SceneComponentInitialization=a=>{let e=a._getComponent(jt.NAME_DEPTHRENDERER);e||(e=new Uye(a),a._addComponent(e))};class lZe{constructor(){this.enabled=!0,this.name="depthPeeling",this.texturesRequired=[4]}}class Tb{get passCount(){return this._passCount}set passCount(e){this._passCount!==e&&(this._passCount=e,this._createRenderPassIds())}get useRenderPasses(){return this._useRenderPasses}set useRenderPasses(e){this._useRenderPasses!==e&&(this._useRenderPasses=e,this._createRenderPassIds())}addExcludedMesh(e){this._excludedMeshes.indexOf(e.uniqueId)===-1&&this._excludedMeshes.push(e.uniqueId)}removeExcludedMesh(e){const t=this._excludedMeshes.indexOf(e.uniqueId);t!==-1&&this._excludedMeshes.splice(t,1)}get shaderLanguage(){return this._shaderLanguage}constructor(e,t=5){if(this._thinTextures=[],this._currentPingPongState=0,this._layoutCacheFormat=[[!0],[!0,!0],[!0,!0,!0]],this._layoutCache=[],this._candidateSubMeshes=new dl(10),this._excludedSubMeshes=new dl(10),this._excludedMeshes=[],this._colorCache=[new St(Tb._DEPTH_CLEAR_VALUE,Tb._DEPTH_CLEAR_VALUE,0,0),new St(-Tb._MIN_DEPTH,Tb._MAX_DEPTH,0,0),new St(0,0,0,0)],this._shaderLanguage=0,this._scene=e,this._engine=e.getEngine(),this._passCount=t,!e.enablePrePassRenderer()){de.Warn("Depth peeling for order independant transparency could not enable PrePass, aborting.");return}for(let i=0;i<this._layoutCacheFormat.length;++i)this._layoutCache[i]=this._engine.buildTextureLayout(this._layoutCacheFormat[i]);this._renderPassIds=[],this.useRenderPasses=!1,this._engine.isWebGPU&&(this._shaderLanguage=1),this._prePassEffectConfiguration=new lZe,this._createTextures(),this._createEffects()}_createRenderPassIds(){if(this._releaseRenderPassIds(),this._useRenderPasses)for(let e=0;e<this._passCount+1;++e)this._renderPassIds[e]||(this._renderPassIds[e]=this._engine.createRenderPassId(`DepthPeelingRenderer - pass #${e}`))}_releaseRenderPassIds(){for(let e=0;e<this._renderPassIds.length;++e)this._engine.releaseRenderPassId(this._renderPassIds[e]);this._renderPassIds=[]}_createTextures(){const e={width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight()};this._depthMrts=[new Cb("depthPeelingDepth0MRT",e,3,this._scene,void 0,["depthPeelingDepth0MRT_depth","depthPeelingDepth0MRT_frontColor","depthPeelingDepth0MRT_backColor"]),new Cb("depthPeelingDepth1MRT",e,3,this._scene,void 0,["depthPeelingDepth1MRT_depth","depthPeelingDepth1MRT_frontColor","depthPeelingDepth1MRT_backColor"])],this._colorMrts=[new Cb("depthPeelingColor0MRT",e,2,this._scene,{generateDepthBuffer:!1},["depthPeelingColor0MRT_frontColor","depthPeelingColor0MRT_backColor"]),new Cb("depthPeelingColor1MRT",e,2,this._scene,{generateDepthBuffer:!1},["depthPeelingColor1MRT_frontColor","depthPeelingColor1MRT_backColor"])],this._blendBackMrt=new Cb("depthPeelingBackMRT",e,1,this._scene,{generateDepthBuffer:!1},["depthPeelingBackMRT_blendBack"]),this._outputRT=new Ir("depthPeelingOutputRTT",e,this._scene,!1);const t=[{format:7,samplingMode:1,type:this._engine.getCaps().textureFloatLinearFiltering?1:2,label:"DepthPeelingRenderer-DepthTexture"},{format:5,samplingMode:1,type:2,label:"DepthPeelingRenderer-ColorTexture"}];for(let i=0;i<2;i++){const s=this._engine._createInternalTexture(e,t[0],!1),r=this._engine._createInternalTexture(e,t[1],!1),n=this._engine._createInternalTexture(e,t[1],!1);this._depthMrts[i].setInternalTexture(s,0),this._depthMrts[i].setInternalTexture(r,1),this._depthMrts[i].setInternalTexture(n,2),this._colorMrts[i].setInternalTexture(r,0),this._colorMrts[i].setInternalTexture(n,1),this._thinTextures.push(new Sy(s),new Sy(r),new Sy(n))}}_disposeTextures(){for(let e=0;e<this._thinTextures.length;e++)e!==6&&this._thinTextures[e].dispose();for(let e=0;e<2;e++)this._depthMrts[e].dispose(!0),this._colorMrts[e].dispose(!0),this._blendBackMrt.dispose(!0);this._outputRT.dispose(),this._thinTextures=[],this._colorMrts=[],this._depthMrts=[]}_updateTextures(){return(this._depthMrts[0].getSize().width!==this._engine.getRenderWidth()||this._depthMrts[0].getSize().height!==this._engine.getRenderHeight())&&(this._disposeTextures(),this._createTextures()),this._updateTextureReferences()}_updateTextureReferences(){var s;const e=this._scene.prePassRenderer;if(!e)return!1;const t=e.getIndex(4),i=(s=e.defaultRT.textures)!=null&&s.length?e.defaultRT.textures[t].getInternalTexture():null;return i?(this._blendBackTexture!==i&&(this._blendBackTexture=i,this._blendBackMrt.setInternalTexture(this._blendBackTexture,0),this._thinTextures[6]&&this._thinTextures[6].dispose(),this._thinTextures[6]=new Sy(this._blendBackTexture),e.defaultRT.renderTarget.shareDepth(this._depthMrts[0].renderTarget)),!0):!1}_createEffects(){this._blendBackEffectWrapper=new Qr({fragmentShader:"oitBackBlend",useShaderStore:!0,engine:this._engine,samplerNames:["uBackColor"],uniformNames:[],shaderLanguage:this._shaderLanguage,extraInitializationsAsync:async()=>{this._shaderLanguage===1?await Promise.resolve().then(()=>A9e):await Promise.resolve().then(()=>p9e)}}),this._blendBackEffectWrapperPingPong=new Qr({fragmentShader:"oitBackBlend",useShaderStore:!0,engine:this._engine,samplerNames:["uBackColor"],uniformNames:[],shaderLanguage:this._shaderLanguage,extraInitializationsAsync:async()=>{this._shaderLanguage===1?await Promise.resolve().then(()=>A9e):await Promise.resolve().then(()=>p9e)}}),this._finalEffectWrapper=new Qr({fragmentShader:"oitFinal",useShaderStore:!0,engine:this._engine,samplerNames:["uFrontColor","uBackColor"],uniformNames:[],shaderLanguage:this._shaderLanguage,extraInitializationsAsync:async()=>{this._shaderLanguage===1?await Promise.resolve().then(()=>tqe):await Promise.resolve().then(()=>eqe)}}),this._effectRenderer=new BT(this._engine)}setPrePassRenderer(e){e.addEffectConfiguration(this._prePassEffectConfiguration)}bind(e){e.setTexture("oitDepthSampler",this._thinTextures[this._currentPingPongState*3]),e.setTexture("oitFrontColorSampler",this._thinTextures[this._currentPingPongState*3+1])}_renderSubMeshes(e){let t;this._useRenderPasses&&(t={});for(let i=0;i<e.length;i++){const s=e.data[i].getMaterial();let r=!0,n=!1;const o=e.data[i];let l,c=!1;if(this._useRenderPasses&&(l=o._getDrawWrapper(),c=!l),s&&(r=s.allowShaderHotSwapping,n=s.backFaceCulling,s.allowShaderHotSwapping=!1,s.backFaceCulling=!1),o.render(!1),c&&(l=o._getDrawWrapper(),l.materialContext)){let u=t[l.materialContext.uniqueId];u||(u=t[l.materialContext.uniqueId]=this._engine.createMaterialContext()),o._getDrawWrapper().materialContext=u}s&&(s.allowShaderHotSwapping=r,s.backFaceCulling=n)}}_finalCompose(e){var i;((i=this._scene.prePassRenderer)==null?void 0:i.setCustomOutput(this._outputRT))?this._engine.bindFramebuffer(this._outputRT.renderTarget):this._engine.restoreDefaultFramebuffer(),this._engine.setAlphaMode(0),this._engine.applyStates(),this._engine.enableEffect(this._finalEffectWrapper.drawWrapper),this._finalEffectWrapper.effect.setTexture("uFrontColor",this._thinTextures[e*3+1]),this._finalEffectWrapper.effect.setTexture("uBackColor",this._thinTextures[6]),this._effectRenderer.render(this._finalEffectWrapper)}isReady(){return this._blendBackEffectWrapper.effect.isReady()&&this._blendBackEffectWrapperPingPong.effect.isReady()&&this._finalEffectWrapper.effect.isReady()&&this._updateTextures()}render(e){if(this._candidateSubMeshes.length=0,this._excludedSubMeshes.length=0,!this.isReady())return this._excludedSubMeshes;this._scene.activeCamera&&this._engine.setViewport(this._scene.activeCamera.viewport);for(let r=0;r<e.length;r++){const n=e.data[r],o=n.getMaterial(),l=o&&n.getRenderingMesh()._getRenderingFillMode(o.fillMode);o&&(l===ft.TriangleFanDrawMode||l===ft.TriangleFillMode||l===ft.TriangleStripDrawMode)&&this._excludedMeshes.indexOf(n.getMesh().uniqueId)===-1?this._candidateSubMeshes.push(n):this._excludedSubMeshes.push(n)}if(!this._candidateSubMeshes.length)return this._engine.bindFramebuffer(this._colorMrts[1].renderTarget),this._engine.bindAttachments(this._layoutCache[1]),this._engine.clear(this._colorCache[2],!0,!1,!1),this._engine.unBindFramebuffer(this._colorMrts[1].renderTarget),this._finalCompose(1),this._excludedSubMeshes;const t=this._engine.currentRenderPassId;this._scene.prePassRenderer._enabled=!1,this._useRenderPasses&&(this._engine.currentRenderPassId=this._renderPassIds[0]),this._engine.bindFramebuffer(this._depthMrts[0].renderTarget),this._engine.bindAttachments(this._layoutCache[0]),this._engine.clear(this._colorCache[0],!0,!1,!1),this._engine.unBindFramebuffer(this._depthMrts[0].renderTarget),this._engine.bindFramebuffer(this._depthMrts[1].renderTarget),this._engine.bindAttachments(this._layoutCache[0]),this._engine.clear(this._colorCache[1],!0,!1,!1),this._engine.unBindFramebuffer(this._depthMrts[1].renderTarget),this._engine.bindFramebuffer(this._colorMrts[0].renderTarget),this._engine.bindAttachments(this._layoutCache[1]),this._engine.clear(this._colorCache[2],!0,!1,!1),this._engine.unBindFramebuffer(this._colorMrts[0].renderTarget),this._engine.bindFramebuffer(this._colorMrts[1].renderTarget),this._engine.bindAttachments(this._layoutCache[1]),this._engine.clear(this._colorCache[2],!0,!1,!1),this._engine.unBindFramebuffer(this._colorMrts[1].renderTarget),this._engine.bindFramebuffer(this._depthMrts[0].renderTarget),this._engine.bindAttachments(this._layoutCache[0]),this._engine.setAlphaMode(11),this._engine.setAlphaEquation(3),this._engine.depthCullingState.depthMask=!1,this._engine.depthCullingState.depthTest=!0,this._engine.applyStates(),this._currentPingPongState=1,this._renderSubMeshes(this._candidateSubMeshes),this._engine.unBindFramebuffer(this._depthMrts[0].renderTarget),this._scene.resetCachedMaterial();let i=0,s=0;for(let r=0;r<this._passCount;r++){i=r%2,s=1-i,this._currentPingPongState=i,this._useRenderPasses&&(this._engine.currentRenderPassId=this._renderPassIds[r+1]),this._scene.activeCamera&&this._engine.setViewport(this._scene.activeCamera.viewport),this._engine.bindFramebuffer(this._depthMrts[s].renderTarget),this._engine.bindAttachments(this._layoutCache[0]),this._engine.clear(this._colorCache[0],!0,!1,!1),this._engine.unBindFramebuffer(this._depthMrts[s].renderTarget),this._engine.bindFramebuffer(this._colorMrts[s].renderTarget),this._engine.bindAttachments(this._layoutCache[1]),this._engine.clear(this._colorCache[2],!0,!1,!1),this._engine.unBindFramebuffer(this._colorMrts[s].renderTarget),this._engine.bindFramebuffer(this._depthMrts[s].renderTarget),this._engine.bindAttachments(this._layoutCache[2]),this._engine.setAlphaMode(11),this._engine.setAlphaEquation(3),this._engine.depthCullingState.depthTest=!1,this._engine.applyStates(),this._renderSubMeshes(this._candidateSubMeshes),this._engine.unBindFramebuffer(this._depthMrts[s].renderTarget),this._scene.resetCachedMaterial(),this._engine.bindFramebuffer(this._blendBackMrt.renderTarget),this._engine.bindAttachments(this._layoutCache[0]),this._engine.setAlphaEquation(0),this._engine.setAlphaMode(17),this._engine.applyStates();const n=s===0||!this._useRenderPasses?this._blendBackEffectWrapper:this._blendBackEffectWrapperPingPong;this._engine.enableEffect(n.drawWrapper),n.effect.setTexture("uBackColor",this._thinTextures[s*3+2]),this._effectRenderer.render(n),this._engine.unBindFramebuffer(this._blendBackMrt.renderTarget)}return this._engine.currentRenderPassId=t,this._finalCompose(s),this._scene.prePassRenderer._enabled=!0,this._engine.depthCullingState.depthMask=!0,this._engine.depthCullingState.depthTest=!0,this._excludedSubMeshes}dispose(){this._disposeTextures(),this._blendBackEffectWrapper.dispose(),this._finalEffectWrapper.dispose(),this._effectRenderer.dispose(),this._releaseRenderPassIds()}}Tb._DEPTH_CLEAR_VALUE=-99999,Tb._MIN_DEPTH=0,Tb._MAX_DEPTH=1,Object.defineProperty(ui.prototype,"depthPeelingRenderer",{get:function(){if(!this._depthPeelingRenderer){let a=this._getComponent(jt.NAME_DEPTHPEELINGRENDERER);a||(a=new jye(this),this._addComponent(a))}return this._depthPeelingRenderer},set:function(a){this._depthPeelingRenderer=a},enumerable:!0,configurable:!0}),Object.defineProperty(ui.prototype,"useOrderIndependentTransparency",{get:function(){return this._useOrderIndependentTransparency},set:function(a){var e;this._useOrderIndependentTransparency!==a&&(this._useOrderIndependentTransparency=a,this.markAllMaterialsAsDirty(127),(e=this.prePassRenderer)==null||e.markAsDirty())},enumerable:!0,configurable:!0});class jye{constructor(e){this.name=jt.NAME_DEPTHPEELINGRENDERER,this.scene=e,e.depthPeelingRenderer=new Tb(e)}register(){}rebuild(){}dispose(){var e;(e=this.scene.depthPeelingRenderer)==null||e.dispose(),this.scene.depthPeelingRenderer=null}}cr.prototype.disableEdgesRendering=function(){return this._edgesRenderer&&(this._edgesRenderer.dispose(),this._edgesRenderer=null),this},cr.prototype.enableEdgesRendering=function(a=.95,e=!1,t){return this.disableEdgesRendering(),this._edgesRenderer=new vz(this,a,e,!0,t),this},Object.defineProperty(cr.prototype,"edgesRenderer",{get:function(){return this._edgesRenderer},enumerable:!0,configurable:!0}),$6.prototype.enableEdgesRendering=function(a=.95,e=!1){return this.disableEdgesRendering(),this._edgesRenderer=new Vye(this,a,e),this},JK.prototype.enableEdgesRendering=function(a=.95,e=!1){return $6.prototype.enableEdgesRendering.apply(this,arguments),this};class cZe{constructor(){this.edges=[],this.edgesConnectedCount=0}}class vz{get linesPositions(){return this._linesPositions}get linesNormals(){return this._linesNormals}get linesIndices(){return this._linesIndices}get lineShader(){return this._lineShader}set lineShader(e){this._lineShader=e}static _GetShader(e,t){if(!e._edgeRenderLineShader){const i=new Fo("lineShader",e,"line",{attributes:["position","normal"],uniforms:["world","viewProjection","color","width","aspectRatio"],uniformBuffers:["Scene","Mesh"],shaderLanguage:t,extraInitializationsAsync:async()=>{t===1?await Promise.all([Promise.resolve().then(()=>hKe),Promise.resolve().then(()=>uKe)]):await Promise.all([Promise.resolve().then(()=>cKe),Promise.resolve().then(()=>aKe)])}},!1);i.disableDepthWrite=!0,i.backFaceCulling=!1,i.checkReadyOnEveryCall=e.getEngine().isWebGPU,e._edgeRenderLineShader=i,e.onDisposeObservable.add(()=>{e._edgeRenderLineShader.dispose(),e._edgeRenderLineShader=null})}return e._edgeRenderLineShader}get shaderLanguage(){return this._shaderLanguage}constructor(e,t=.95,i=!1,s=!0,r){this.edgesWidthScalerForOrthographic=1e3,this.edgesWidthScalerForPerspective=50,this._linesPositions=new Array,this._linesNormals=new Array,this._linesIndices=new Array,this._buffers={},this._buffersForInstances={},this._checkVerticesInsteadOfIndices=!1,this.isEnabled=!0,this.customInstances=new dl(32),this._shaderLanguage=0,this._source=e,this._checkVerticesInsteadOfIndices=i,this._options=r??null,this._epsilon=t;const n=this._source.getScene().getEngine();n.isWebGPU&&(this._drawWrapper=new ql(n),this._shaderLanguage=1),this._prepareRessources(),s&&((r==null?void 0:r.useAlternateEdgeFinder)??!0?this._generateEdgesLinesAlternate():this._generateEdgesLines()),this._meshRebuildObserver=this._source.onRebuildObservable.add(()=>{this._rebuild()}),this._meshDisposeObserver=this._source.onDisposeObservable.add(()=>{this.dispose()})}_prepareRessources(){this._lineShader||(this._lineShader=vz._GetShader(this._source.getScene(),this._shaderLanguage))}_rebuild(){let e=this._buffers[q.PositionKind];e&&e._rebuild(),e=this._buffers[q.NormalKind],e&&e._rebuild();const i=this._source.getScene().getEngine();this._ib=i.createIndexBuffer(this._linesIndices)}dispose(){var t;this._source.onRebuildObservable.remove(this._meshRebuildObserver),this._source.onDisposeObservable.remove(this._meshDisposeObserver);let e=this._buffers[q.PositionKind];e&&(e.dispose(),this._buffers[q.PositionKind]=null),e=this._buffers[q.NormalKind],e&&(e.dispose(),this._buffers[q.NormalKind]=null),this._ib&&this._source.getScene().getEngine()._releaseBuffer(this._ib),(t=this._drawWrapper)==null||t.dispose()}_processEdgeForAdjacencies(e,t,i,s,r){return e===i&&t===s||e===s&&t===i?0:e===s&&t===r||e===r&&t===s?1:e===r&&t===i||e===i&&t===r?2:-1}_processEdgeForAdjacenciesWithVertices(e,t,i,s,r){return e.equalsWithEpsilon(i,1e-10)&&t.equalsWithEpsilon(s,1e-10)||e.equalsWithEpsilon(s,1e-10)&&t.equalsWithEpsilon(i,1e-10)?0:e.equalsWithEpsilon(s,1e-10)&&t.equalsWithEpsilon(r,1e-10)||e.equalsWithEpsilon(r,1e-10)&&t.equalsWithEpsilon(s,1e-10)?1:e.equalsWithEpsilon(r,1e-10)&&t.equalsWithEpsilon(i,1e-10)||e.equalsWithEpsilon(i,1e-10)&&t.equalsWithEpsilon(r,1e-10)?2:-1}_checkEdge(e,t,i,s,r){let n;t===void 0?n=!0:n=P.Dot(i[e],i[t])<this._epsilon,n&&this.createLine(s,r,this._linesPositions.length/3)}createLine(e,t,i){this._linesPositions.push(e.x,e.y,e.z,e.x,e.y,e.z,t.x,t.y,t.z,t.x,t.y,t.z),this._linesNormals.push(t.x,t.y,t.z,-1,t.x,t.y,t.z,1,e.x,e.y,e.z,-1,e.x,e.y,e.z,1),this._linesIndices.push(i,i+1,i+2,i,i+2,i+3)}_tessellateTriangle(e,t,i,s){const r=(O,R,I)=>{I>=0&&R.push(I);for(let N=0;N<O.length;++N)R.push(O[N][0])};let n=0;e[1].length>=e[0].length&&e[1].length>=e[2].length?n=1:e[2].length>=e[0].length&&e[2].length>=e[1].length&&(n=2);for(let O=0;O<3;++O)O===n?e[O].sort((R,I)=>R[1]<I[1]?-1:R[1]>I[1]?1:0):e[O].sort((R,I)=>R[1]>I[1]?-1:R[1]<I[1]?1:0);const o=[],l=[];r(e[n],o,-1);const c=o.length;for(let O=n+2;O>=n+1;--O)r(e[O%3],l,O!==n+2?s[i[t+(O+1)%3]]:-1);const u=l.length,f=0,p=0;i.push(s[i[t+n]],o[0],l[0]),i.push(s[i[t+(n+1)%3]],l[u-1],o[c-1]);const m=c<=u,_=m?c:u,d=m?u:c,h=m?c-1:u-1,x=m?0:1;let A=c+u-2,S=m?f:p,E=m?p:f;const b=m?o:l,M=m?l:o;let T=0;for(;A-- >0;){x?i.push(b[S],M[E]):i.push(M[E],b[S]),T+=_;let O;T>=d&&S<h?(O=b[++S],T-=d):O=M[++E],i.push(O)}i[t+0]=i[i.length-3],i[t+1]=i[i.length-2],i[t+2]=i[i.length-1],i.length=i.length-3}_generateEdgesLinesAlternate(){var c,u,f,p,m,_;const e=this._source.getVerticesData(q.PositionKind);let t=this._source.getIndices();if(!t||!e)return;Array.isArray(t)||(t=Array.from(t));const i=((c=this._options)==null?void 0:c.useFastVertexMerger)??!0,s=i?Math.round(-Math.log(((u=this._options)==null?void 0:u.epsilonVertexMerge)??1e-6)/Math.log(10)):((f=this._options)==null?void 0:f.epsilonVertexMerge)??1e-6,r=[],n=[];if(i){const d={};for(let h=0;h<e.length;h+=3){const x=e[h+0],A=e[h+1],S=e[h+2],E=x.toFixed(s)+"|"+A.toFixed(s)+"|"+S.toFixed(s);if(d[E]!==void 0)r.push(d[E]);else{const b=h/3;d[E]=b,r.push(b),n.push(b)}}}else for(let d=0;d<e.length;d+=3){const h=e[d+0],x=e[d+1],A=e[d+2];let S=!1;for(let E=0;E<d&&!S;E+=3){const b=e[E+0],M=e[E+1],T=e[E+2];if(Math.abs(h-b)<s&&Math.abs(x-M)<s&&Math.abs(A-T)<s){r.push(E/3),S=!0;break}}S||(r.push(d/3),n.push(d/3))}if((p=this._options)!=null&&p.applyTessellation){const d=((m=this._options)==null?void 0:m.epsilonVertexAligned)??1e-6,h=[];for(let x=0;x<t.length;x+=3){let A;for(let S=0;S<3;++S){const E=r[t[x+S]],b=r[t[x+(S+1)%3]],M=r[t[x+(S+2)%3]];if(E===b)continue;const T=e[E*3+0],O=e[E*3+1],R=e[E*3+2],I=e[b*3+0],N=e[b*3+1],w=e[b*3+2],D=Math.sqrt((I-T)*(I-T)+(N-O)*(N-O)+(w-R)*(w-R));for(let k=0;k<n.length-1;k++){const Y=n[k];if(Y===E||Y===b||Y===M)continue;const V=e[Y*3+0],ee=e[Y*3+1],K=e[Y*3+2],ie=Math.sqrt((V-T)*(V-T)+(ee-O)*(ee-O)+(K-R)*(K-R)),ne=Math.sqrt((V-I)*(V-I)+(ee-N)*(ee-N)+(K-w)*(K-w));Math.abs(ie+ne-D)<d&&(A||(A={index:x,edgesPoints:[[],[],[]]},h.push(A)),A.edgesPoints[S].push([Y,ie]))}}}for(let x=0;x<h.length;++x){const A=h[x];this._tessellateTriangle(A.edgesPoints,A.index,t,r)}h.length=0}const o={};for(let d=0;d<t.length;d+=3){let h;for(let x=0;x<3;++x){let A=r[t[d+x]],S=r[t[d+(x+1)%3]];const E=r[t[d+(x+2)%3]];if(A===S||(A===E||S===E)&&((_=this._options)!=null&&_.removeDegeneratedTriangles))continue;if(ae.Vector3[0].copyFromFloats(e[A*3+0],e[A*3+1],e[A*3+2]),ae.Vector3[1].copyFromFloats(e[S*3+0],e[S*3+1],e[S*3+2]),ae.Vector3[2].copyFromFloats(e[E*3+0],e[E*3+1],e[E*3+2]),h||(ae.Vector3[1].subtractToRef(ae.Vector3[0],ae.Vector3[3]),ae.Vector3[2].subtractToRef(ae.Vector3[1],ae.Vector3[4]),h=P.Cross(ae.Vector3[3],ae.Vector3[4]),h.normalize()),A>S){const T=A;A=S,S=T}const b=A+"_"+S,M=o[b];M?M.done||(P.Dot(h,M.normal)<this._epsilon&&this.createLine(ae.Vector3[0],ae.Vector3[1],this._linesPositions.length/3),M.done=!0):o[b]={normal:h,done:!1,index:d,i:x}}}for(const d in o){const h=o[d];if(!h.done){const x=r[t[h.index+h.i]],A=r[t[h.index+(h.i+1)%3]];ae.Vector3[0].copyFromFloats(e[x*3+0],e[x*3+1],e[x*3+2]),ae.Vector3[1].copyFromFloats(e[A*3+0],e[A*3+1],e[A*3+2]),this.createLine(ae.Vector3[0],ae.Vector3[1],this._linesPositions.length/3)}}const l=this._source.getScene().getEngine();this._buffers[q.PositionKind]=new q(l,this._linesPositions,q.PositionKind,!1),this._buffers[q.NormalKind]=new q(l,this._linesNormals,q.NormalKind,!1,!1,4),this._buffersForInstances[q.PositionKind]=this._buffers[q.PositionKind],this._buffersForInstances[q.NormalKind]=this._buffers[q.NormalKind],this._ib=l.createIndexBuffer(this._linesIndices),this._indicesCount=this._linesIndices.length}_generateEdgesLines(){const e=this._source.getVerticesData(q.PositionKind),t=this._source.getIndices();if(!t||!e)return;const i=[],s=[];let r,n;for(r=0;r<t.length;r+=3){n=new cZe;const l=t[r],c=t[r+1],u=t[r+2];n.p0=new P(e[l*3],e[l*3+1],e[l*3+2]),n.p1=new P(e[c*3],e[c*3+1],e[c*3+2]),n.p2=new P(e[u*3],e[u*3+1],e[u*3+2]);const f=P.Cross(n.p1.subtract(n.p0),n.p2.subtract(n.p1));f.normalize(),s.push(f),i.push(n)}for(r=0;r<i.length;r++){n=i[r];for(let l=r+1;l<i.length;l++){const c=i[l];if(n.edgesConnectedCount===3)break;if(c.edgesConnectedCount===3)continue;const u=t[l*3],f=t[l*3+1],p=t[l*3+2];for(let m=0;m<3;m++){let _=0;if(n.edges[m]===void 0){switch(m){case 0:this._checkVerticesInsteadOfIndices?_=this._processEdgeForAdjacenciesWithVertices(n.p0,n.p1,c.p0,c.p1,c.p2):_=this._processEdgeForAdjacencies(t[r*3],t[r*3+1],u,f,p);break;case 1:this._checkVerticesInsteadOfIndices?_=this._processEdgeForAdjacenciesWithVertices(n.p1,n.p2,c.p0,c.p1,c.p2):_=this._processEdgeForAdjacencies(t[r*3+1],t[r*3+2],u,f,p);break;case 2:this._checkVerticesInsteadOfIndices?_=this._processEdgeForAdjacenciesWithVertices(n.p2,n.p0,c.p0,c.p1,c.p2):_=this._processEdgeForAdjacencies(t[r*3+2],t[r*3],u,f,p);break}if(_!==-1&&(n.edges[m]=l,c.edges[_]=r,n.edgesConnectedCount++,c.edgesConnectedCount++,n.edgesConnectedCount===3))break}}}}for(r=0;r<i.length;r++){const l=i[r];this._checkEdge(r,l.edges[0],s,l.p0,l.p1),this._checkEdge(r,l.edges[1],s,l.p1,l.p2),this._checkEdge(r,l.edges[2],s,l.p2,l.p0)}const o=this._source.getScene().getEngine();this._buffers[q.PositionKind]=new q(o,this._linesPositions,q.PositionKind,!1),this._buffers[q.NormalKind]=new q(o,this._linesNormals,q.NormalKind,!1,!1,4),this._buffersForInstances[q.PositionKind]=this._buffers[q.PositionKind],this._buffersForInstances[q.NormalKind]=this._buffers[q.NormalKind],this._ib=o.createIndexBuffer(this._linesIndices),this._indicesCount=this._linesIndices.length}isReady(){return this._lineShader.isReady(this._source,this._source.hasInstances&&this.customInstances.length>0||this._source.hasThinInstances)}render(){const e=this._source.getScene(),t=this._lineShader._getDrawWrapper();if(this._drawWrapper&&this._lineShader._setDrawWrapper(this._drawWrapper),!this.isReady()||!e.activeCamera){this._lineShader._setDrawWrapper(t);return}const i=this._source.hasInstances&&this.customInstances.length>0,s=i||this._source.hasThinInstances;let r=0;if(s)if(this._buffersForInstances.world0=this._source.getVertexBuffer("world0"),this._buffersForInstances.world1=this._source.getVertexBuffer("world1"),this._buffersForInstances.world2=this._source.getVertexBuffer("world2"),this._buffersForInstances.world3=this._source.getVertexBuffer("world3"),i){const o=this._source._instanceDataStorage;if(r=this.customInstances.length,!o.instancesData){this._source.getScene()._activeMeshesFrozen||this.customInstances.reset();return}if(!o.isFrozen){let l=0;for(let c=0;c<r;++c)this.customInstances.data[c].copyToArray(o.instancesData,l),l+=16;o.instancesBuffer.updateDirectly(o.instancesData,0,r)}}else r=this._source.thinInstanceCount;const n=e.getEngine();this._lineShader._preBind(),this._source.edgesColor.a!==1?n.setAlphaMode(2):n.setAlphaMode(0),n.bindBuffers(s?this._buffersForInstances:this._buffers,this._ib,this._lineShader.getEffect()),e.resetCachedMaterial(),this._lineShader.setColor4("color",this._source.edgesColor),e.activeCamera.mode===_i.ORTHOGRAPHIC_CAMERA?this._lineShader.setFloat("width",this._source.edgesWidth/this.edgesWidthScalerForOrthographic):this._lineShader.setFloat("width",this._source.edgesWidth/this.edgesWidthScalerForPerspective),this._lineShader.setFloat("aspectRatio",n.getAspectRatio(e.activeCamera)),this._lineShader.bind(this._source.getWorldMatrix(),this._source),n.drawElementsType(ft.TriangleFillMode,0,this._indicesCount,r),this._lineShader.unbind(),s&&n.unbindInstanceAttributes(),this._source.getScene()._activeMeshesFrozen||this.customInstances.reset(),this._lineShader._setDrawWrapper(t)}}class Vye extends vz{constructor(e,t=.95,i=!1){super(e,t,i,!1),this._generateEdgesLines()}_generateEdgesLines(){const e=this._source.getVerticesData(q.PositionKind),t=this._source.getIndices();if(!t||!e)return;const i=ae.Vector3[0],s=ae.Vector3[1],r=t.length-1;for(let o=0,l=0;o<r;o+=2,l+=4)P.FromArrayToRef(e,3*t[o],i),P.FromArrayToRef(e,3*t[o+1],s),this.createLine(i,s,l);const n=this._source.getScene().getEngine();this._buffers[q.PositionKind]=new q(n,this._linesPositions,q.PositionKind,!1),this._buffers[q.NormalKind]=new q(n,this._linesNormals,q.NormalKind,!1,!1,4),this._ib=n.createIndexBuffer(this._linesIndices),this._indicesCount=this._linesIndices.length}}Object.defineProperty(ui.prototype,"iblCdfGenerator",{get:function(){return this._iblCdfGenerator},set:function(a){a&&(this._iblCdfGenerator=a)},enumerable:!0,configurable:!0}),ui.prototype.enableIblCdfGenerator=function(){return this._iblCdfGenerator?this._iblCdfGenerator:(this._iblCdfGenerator=new l9(this),this.environmentTexture&&(this._iblCdfGenerator.iblSource=this.environmentTexture),this._iblCdfGenerator)},ui.prototype.disableIblCdfGenerator=function(){this._iblCdfGenerator&&(this._iblCdfGenerator.dispose(),this._iblCdfGenerator=null)};class Gye{constructor(e){this.name=jt.NAME_IBLCDFGENERATOR,this._newIblObserver=null,this.scene=e}register(){this._updateIblSource(),this._newIblObserver=this.scene.onEnvironmentTextureChangedObservable.add(this._updateIblSource.bind(this))}rebuild(){}dispose(){this.scene.onEnvironmentTextureChangedObservable.remove(this._newIblObserver)}_updateIblSource(){this.scene.iblCdfGenerator&&this.scene.environmentTexture&&(this.scene.iblCdfGenerator.iblSource=this.scene.environmentTexture)}}l9._SceneComponentInitialization=a=>{let e=a._getComponent(jt.NAME_IBLCDFGENERATOR);e||(e=new Gye(a),a._addComponent(e))};class uZe{getVoxelGrid(){return this._triPlanarVoxelization?this._voxelGridRT:this._voxelGridZaxis}getDebugPassPP(){return this._voxelDebugPass||this._createDebugPass(),this._voxelDebugPass}get triPlanarVoxelization(){return this._triPlanarVoxelization}set triPlanarVoxelization(e){this._triPlanarVoxelization!==e&&(this._triPlanarVoxelization=e,this._disposeVoxelTextures(),this._createTextures())}setWorldScaleMatrix(e){this._invWorldScaleMatrix=e}isVoxelizationInProgress(){return this._voxelizationInProgress}get voxelResolutionExp(){return this._voxelResolutionExp}set voxelResolutionExp(e){this._voxelResolutionExp===e&&this._voxelGridZaxis||(this._voxelResolutionExp=Math.round(Math.min(Math.max(e,3),9)),this._voxelResolution=Math.pow(2,this._voxelResolutionExp),this._disposeVoxelTextures(),this._createTextures())}set voxelDebugAxis(e){this._voxelDebugAxis=e}get voxelDebugAxis(){return this._voxelDebugAxis}setDebugDisplayParams(e,t,i,s){this._debugSizeParams.set(e,t,i,s)}setDebugMipNumber(e){this._debugMipNumber=e}get debugPassName(){return this._debugPassName}get voxelDebugEnabled(){return this._voxelDebugEnabled}set voxelDebugEnabled(e){this._voxelDebugEnabled!==e&&(this._voxelDebugEnabled=e,e&&(this._voxelSlabDebugRT=new Ir("voxelSlabDebug",{width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight()},this._scene,{generateDepthBuffer:!0,generateMipMaps:!1,type:0,format:5,samplingMode:1}),this._voxelSlabDebugRT.noPrePassRenderer=!0),this._voxelSlabDebugRT&&this._removeVoxelRTs([this._voxelSlabDebugRT]),this._voxelDebugEnabled?(this._addRTsForRender([this._voxelSlabDebugRT],this._includedMeshes,this._voxelDebugAxis,1,!0),this._setDebugBindingsBound=this._setDebugBindings.bind(this),this._scene.onBeforeRenderObservable.add(this._setDebugBindingsBound)):this._scene.onBeforeRenderObservable.removeCallback(this._setDebugBindingsBound))}_createDebugPass(){const e=this._engine.isWebGPU;if(!this._voxelDebugPass){const t={width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight(),textureFormat:5,textureType:0,samplingMode:1,uniforms:["sizeParams","mipNumber"],samplers:["voxelTexture","voxelSlabTexture"],engine:this._engine,reusable:!1,shaderLanguage:e?1:0,extraInitializations:(i,s)=>{if(this._isVoxelGrid3D){i?s.push(Promise.resolve().then(()=>KKe)):s.push(Promise.resolve().then(()=>ZKe));return}i?s.push(Promise.resolve().then(()=>GKe)):s.push(Promise.resolve().then(()=>VKe))}};this._voxelDebugPass=new Mi(this.debugPassName,this._isVoxelGrid3D?"iblVoxelGrid3dDebug":"iblVoxelGrid2dArrayDebug",t),this._voxelDebugPass.onApplyObservable.add(i=>{this._voxelDebugAxis===0?i.setTexture("voxelTexture",this._voxelGridXaxis):this._voxelDebugAxis===1?i.setTexture("voxelTexture",this._voxelGridYaxis):this._voxelDebugAxis===2?i.setTexture("voxelTexture",this._voxelGridZaxis):i.setTexture("voxelTexture",this.getVoxelGrid()),i.setTexture("voxelSlabTexture",this._voxelSlabDebugRT),i.setVector4("sizeParams",this._debugSizeParams),i.setFloat("mipNumber",this._debugMipNumber)})}}constructor(e,t,i=6,s=!0){this._voxelMrtsXaxis=[],this._voxelMrtsYaxis=[],this._voxelMrtsZaxis=[],this._isVoxelGrid3D=!0,this.onVoxelizationCompleteObservable=new xe,this._renderTargets=[],this._triPlanarVoxelization=!0,this._voxelizationInProgress=!1,this._invWorldScaleMatrix=me.Identity(),this._voxelResolution=64,this._voxelResolutionExp=6,this._mipArray=[],this._voxelDebugEnabled=!1,this._voxelDebugAxis=-1,this._debugSizeParams=new Yt(0,0,0,0),this._includedMeshes=[],this._debugMipNumber=0,this._debugPassName="Voxelization Debug Pass",this._scene=e,this._engine=e.getEngine(),this._triPlanarVoxelization=s,this._engine.getCaps().drawBuffersExtension||de.Error("Can't do voxel rendering without the draw buffers extension.");const r=this._engine.isWebGPU;this._maxDrawBuffers=this._engine.getCaps().maxDrawBuffers||0,this._copyMipEffectRenderer=new BT(this._engine),this._copyMipEffectWrapper=new Qr({engine:this._engine,fragmentShader:"copyTexture3DLayerToTexture",useShaderStore:!0,uniformNames:["layerNum"],samplerNames:["textureSampler"],shaderLanguage:r?1:0,extraInitializationsAsync:async()=>{r?await Promise.resolve().then(()=>_Ke):await Promise.resolve().then(()=>gKe)}}),this.voxelResolutionExp=i}_generateMipMaps(){const e=Math.ceil(Math.log2(this._voxelResolution));for(let t=1;t<e+1;t++)this._generateMipMap(t)}_generateMipMap(e){const t=this._mipArray[e-1];t&&(t.setTexture("srcMip",e===1?this.getVoxelGrid():this._mipArray[e-2]),t.render())}_copyMipMaps(){const e=Math.ceil(Math.log2(this._voxelResolution));for(let t=1;t<e+1;t++)this._copyMipMap(t)}_copyMipMap(e){const t=this._mipArray[e-1];if(!t)return;const i=this.getVoxelGrid();let s;if(i instanceof Ir&&i.renderTarget?s=i.renderTarget:s=i._rtWrapper,s){this._copyMipEffectRenderer.saveStates();const r=t.getSize().width;for(let n=0;n<r;n++)this._engine.bindFramebuffer(s,0,r,r,!0,e,n),this._copyMipEffectRenderer.applyEffectWrapper(this._copyMipEffectWrapper),this._copyMipEffectWrapper.effect.setTexture("textureSampler",t),this._copyMipEffectWrapper.effect.setInt("layerNum",n),this._copyMipEffectRenderer.draw(),this._engine.unBindFramebuffer(s,!0);this._copyMipEffectRenderer.restoreStates()}}_computeNumberOfSlabs(){return Math.ceil(this._voxelResolution/this._maxDrawBuffers)}_createTextures(){const e=this._engine.isWebGPU,t={width:this._voxelResolution,height:this._voxelResolution,layers:this._isVoxelGrid3D?void 0:this._voxelResolution,depth:this._isVoxelGrid3D?this._voxelResolution:void 0},i={generateDepthBuffer:!1,generateMipMaps:!1,type:0,format:6,samplingMode:1},s=this._computeNumberOfSlabs(),r={generateDepthBuffer:!1,generateMipMaps:!0,type:0,format:6,samplingMode:4,shaderLanguage:e?1:0,extraInitializationsAsync:async()=>{e?await Promise.resolve().then(()=>EKe):await Promise.resolve().then(()=>TKe)}};this._triPlanarVoxelization?(this._voxelGridXaxis=new Ir("voxelGridXaxis",t,this._scene,i),this._voxelGridYaxis=new Ir("voxelGridYaxis",t,this._scene,i),this._voxelGridZaxis=new Ir("voxelGridZaxis",t,this._scene,i),this._voxelMrtsXaxis=this._createVoxelMRTs("x_axis_",this._voxelGridXaxis,s),this._voxelMrtsYaxis=this._createVoxelMRTs("y_axis_",this._voxelGridYaxis,s),this._voxelMrtsZaxis=this._createVoxelMRTs("z_axis_",this._voxelGridZaxis,s),this._voxelGridRT=new zc("combinedVoxelGrid",t,"iblCombineVoxelGrids",this._scene,r,!1),this._scene.proceduralTextures.splice(this._scene.proceduralTextures.indexOf(this._voxelGridRT),1),this._voxelGridRT.setFloat("layer",0),this._voxelGridRT.setTexture("voxelXaxisSampler",this._voxelGridXaxis),this._voxelGridRT.setTexture("voxelYaxisSampler",this._voxelGridYaxis),this._voxelGridRT.setTexture("voxelZaxisSampler",this._voxelGridZaxis),this._voxelGridRT.autoClear=!1,this._voxelGridRT.wrapU=be.CLAMP_ADDRESSMODE,this._voxelGridRT.wrapV=be.CLAMP_ADDRESSMODE):(this._voxelGridZaxis=new Ir("voxelGridZaxis",t,this._scene,r),this._voxelMrtsZaxis=this._createVoxelMRTs("z_axis_",this._voxelGridZaxis,s));const n={generateDepthBuffer:!1,generateMipMaps:!1,type:0,format:6,samplingMode:1,shaderLanguage:e?1:0,extraInitializationsAsync:async()=>{e?await Promise.resolve().then(()=>IKe):await Promise.resolve().then(()=>LKe)}};this._mipArray=new Array(Math.ceil(Math.log2(this._voxelResolution)));for(let o=1;o<=this._mipArray.length;o++){const l=this._voxelResolution>>o,c={width:l,height:l,depth:l};this._mipArray[o-1]=new zc("voxelMip"+o,c,"iblGenerateVoxelMip",this._scene,n,!1),this._scene.proceduralTextures.splice(this._scene.proceduralTextures.indexOf(this._mipArray[o-1]),1);const u=this._mipArray[o-1];u.autoClear=!1,u.wrapU=be.CLAMP_ADDRESSMODE,u.wrapV=be.CLAMP_ADDRESSMODE,u.setTexture("srcMip",o>1?this._mipArray[o-2]:this.getVoxelGrid()),u.setInt("layerNum",0)}this._createVoxelMaterials()}_createVoxelMRTs(e,t,i){t.wrapU=be.CLAMP_ADDRESSMODE,t.wrapV=be.CLAMP_ADDRESSMODE,t.noPrePassRenderer=!0;const s=[],r=new Array(this._maxDrawBuffers).fill(this._isVoxelGrid3D?32879:35866);for(let n=0;n<i;n++){let o=new Array(this._maxDrawBuffers).fill(0);o=o.map((u,f)=>n*this._maxDrawBuffers+f);let l=new Array(this._maxDrawBuffers).fill("");l=l.map((u,f)=>"voxel_grid_"+e+(n*this._maxDrawBuffers+f));const c=new Cb("mrt_"+e+n,{width:this._voxelResolution,height:this._voxelResolution,depth:this._isVoxelGrid3D?this._voxelResolution:void 0},this._maxDrawBuffers,this._scene,{types:new Array(this._maxDrawBuffers).fill(0),samplingModes:new Array(this._maxDrawBuffers).fill(3),generateMipMaps:!1,targetTypes:r,formats:new Array(this._maxDrawBuffers).fill(6),faceIndex:new Array(this._maxDrawBuffers).fill(0),layerIndex:o,layerCounts:new Array(this._maxDrawBuffers).fill(this._voxelResolution),generateDepthBuffer:!1,generateStencilBuffer:!1},l);c.clearColor=new St(0,0,0,1),c.noPrePassRenderer=!0;for(let u=0;u<this._maxDrawBuffers;u++)c.setInternalTexture(t.getInternalTexture(),u);s.push(c)}return s}_disposeVoxelTextures(){var e,t,i,s,r,n;this._stopVoxelization();for(let o=0;o<this._voxelMrtsZaxis.length;o++)this._triPlanarVoxelization&&(this._voxelMrtsXaxis[o].dispose(!0),this._voxelMrtsYaxis[o].dispose(!0)),this._voxelMrtsZaxis[o].dispose(!0);this._triPlanarVoxelization&&((e=this._voxelGridXaxis)==null||e.dispose(),(t=this._voxelGridYaxis)==null||t.dispose(),(i=this._voxelGridRT)==null||i.dispose()),(s=this._voxelGridZaxis)==null||s.dispose(),this._mipArray.forEach(o=>{o.dispose()}),(r=this._voxelMaterial)==null||r.dispose(),(n=this._voxelSlabDebugMaterial)==null||n.dispose(),this._mipArray=[],this._voxelMrtsXaxis=[],this._voxelMrtsYaxis=[],this._voxelMrtsZaxis=[]}_createVoxelMaterials(){const e=this._engine.isWebGPU;this._voxelMaterial=new Fo("voxelization",this._scene,"iblVoxelGrid",{uniforms:["world","viewMatrix","invWorldScale","nearPlane","farPlane","stepSize"],defines:["MAX_DRAW_BUFFERS "+this._maxDrawBuffers],shaderLanguage:e?1:0,extraInitializationsAsync:async()=>{e?await Promise.all([Promise.resolve().then(()=>YKe),Promise.resolve().then(()=>XKe)]):await Promise.all([Promise.resolve().then(()=>WKe),Promise.resolve().then(()=>HKe)])}}),this._voxelMaterial.cullBackFaces=!1,this._voxelMaterial.backFaceCulling=!1,this._voxelMaterial.depthFunction=Qt.ALWAYS,this._voxelSlabDebugMaterial=new Fo("voxelSlabDebug",this._scene,"iblVoxelSlabDebug",{uniforms:["world","viewMatrix","cameraViewMatrix","projection","invWorldScale","nearPlane","farPlane","stepSize"],defines:["MAX_DRAW_BUFFERS "+this._maxDrawBuffers],shaderLanguage:e?1:0,extraInitializationsAsync:async()=>{e?await Promise.all([Promise.resolve().then(()=>$Ke),Promise.resolve().then(()=>JKe)]):await Promise.all([Promise.resolve().then(()=>QKe),Promise.resolve().then(()=>qKe)])}})}_setDebugBindings(){this._voxelSlabDebugMaterial.setMatrix("projection",this._scene.activeCamera.getProjectionMatrix()),this._voxelSlabDebugMaterial.setMatrix("cameraViewMatrix",this._scene.activeCamera.getViewMatrix())}isReady(){let e=this.getVoxelGrid().isReady();for(let t=0;t<this._mipArray.length;t++){const i=this._mipArray[t].isReady();e&&(e=i)}return!(!e||this._voxelizationInProgress)}_stopVoxelization(){this._removeVoxelRTs(this._voxelMrtsXaxis),this._removeVoxelRTs(this._voxelMrtsYaxis),this._removeVoxelRTs(this._voxelMrtsZaxis)}_removeVoxelRTs(e){const t=this._renderTargets.findIndex(i=>i===e[0]);if(t>=0)this._renderTargets.splice(t,e.length);else{const i=this._scene.customRenderTargets.findIndex(s=>s===e[0]);i>=0&&this._scene.customRenderTargets.splice(i,e.length)}}updateVoxelGrid(e){this._stopVoxelization(),this._includedMeshes=e,this._voxelizationInProgress=!0,this._triPlanarVoxelization?(this._addRTsForRender(this._voxelMrtsXaxis,e,0),this._addRTsForRender(this._voxelMrtsYaxis,e,1),this._addRTsForRender(this._voxelMrtsZaxis,e,2)):this._addRTsForRender(this._voxelMrtsZaxis,e,2),this._voxelDebugEnabled&&this._addRTsForRender([this._voxelSlabDebugRT],e,this._voxelDebugAxis,1,!0),this._renderVoxelGridBound=this._renderVoxelGrid.bind(this),this._scene.onAfterRenderObservable.add(this._renderVoxelGridBound)}_renderVoxelGrid(){if(this._voxelizationInProgress){let e=this.getVoxelGrid().isReady();for(let t=0;t<this._mipArray.length;t++){const i=this._mipArray[t].isReady();e&&(e=i)}for(let t=0;t<this._renderTargets.length;t++){const i=this._renderTargets[t].isReadyForRendering();e&&(e=i)}e&&(this._renderTargets.forEach(t=>{t.render()}),this._stopVoxelization(),this._triPlanarVoxelization&&this._voxelGridRT.render(),this._generateMipMaps(),this._copyMipEffectWrapper.effect.whenCompiledAsync().then(()=>{this._copyMipMaps(),this._scene.onAfterRenderObservable.removeCallback(this._renderVoxelGridBound),this._voxelizationInProgress=!1,this.onVoxelizationCompleteObservable.notifyObservers()}))}}_addRTsForRender(e,t,i,s=0,r=!1){const n=1/this._computeNumberOfSlabs();let o;s===0?o=this._voxelMaterial:o=this._voxelSlabDebugMaterial,e.forEach((l,c)=>{l.renderList=[];const u=c*n,f=(c+1)*n,p=n/this._maxDrawBuffers,m=new P(0,0,0);let _=new P(0,0,1);i===0?_=new P(1,0,0):i===1&&(_=new P(0,1,0));let d=new P(0,1,0);i===1&&(d=new P(1,0,0)),l.onBeforeRenderObservable.add(()=>{o.setMatrix("viewMatrix",me.LookAtLH(m,_,d)),o.setMatrix("invWorldScale",this._invWorldScaleMatrix),o.setFloat("nearPlane",u),o.setFloat("farPlane",f),o.setFloat("stepSize",p)}),t.length!==0&&t.forEach(h=>{var x;h&&(h.subMeshes&&h.subMeshes.length>0&&((x=l.renderList)==null||x.push(h),l.setMaterialForRendering(h,o)),h.getChildMeshes().forEach(A=>{var S;A.subMeshes&&A.subMeshes.length>0&&((S=l.renderList)==null||S.push(A),l.setMaterialForRendering(A,o))}))})}),r?e.forEach(l=>{this._scene.customRenderTargets.indexOf(l)===-1&&this._scene.customRenderTargets.push(l)}):this._renderTargets=this._renderTargets.concat(e)}resize(){var e;(e=this._voxelSlabDebugRT)==null||e.resize({width:this._scene.getEngine().getRenderWidth(),height:this._scene.getEngine().getRenderHeight()})}dispose(){this._disposeVoxelTextures(),this._voxelSlabDebugRT&&(this._removeVoxelRTs([this._voxelSlabDebugRT]),this._voxelSlabDebugRT.dispose()),this._voxelDebugPass&&this._voxelDebugPass.dispose()}}class hZe{get voxelShadowOpacity(){return this._voxelShadowOpacity}set voxelShadowOpacity(e){this._voxelShadowOpacity=e}get ssShadowOpacity(){return this._ssShadowOpacity}set ssShadowOpacity(e){this._ssShadowOpacity=e}get sssSamples(){return this._sssSamples}set sssSamples(e){this._sssSamples=e}get sssStride(){return this._sssStride}set sssStride(e){this._sssStride=e}get sssMaxDist(){return this._sssMaxDist}set sssMaxDist(e){this._sssMaxDist=e}get sssThickness(){return this._sssThickness}set sssThickness(e){this._sssThickness=e}get voxelNormalBias(){return this._voxelNormalBias}set voxelNormalBias(e){this._voxelNormalBias=e}get voxelDirectionBias(){return this._voxelDirectionBias}set voxelDirectionBias(e){this._voxelDirectionBias=e}get sampleDirections(){return this._sampleDirections}set sampleDirections(e){this._sampleDirections=e}get envRotation(){return this._envRotation}set envRotation(e){this._envRotation=e}getOutputTexture(){return this._outputTexture}getDebugPassPP(){return this._debugPassPP||this._createDebugPass(),this._debugPassPP}get debugPassName(){return this._debugPassName}setWorldScaleMatrix(e){this._invWorldScaleMatrix=e}set coloredShadows(e){this._coloredShadows=e}get coloredShadows(){return this._coloredShadows}setDebugDisplayParams(e,t,i,s){this._debugSizeParams.set(e,t,i,s)}_createDebugPass(){const e=this._engine.isWebGPU;if(!this._debugPassPP){const t={width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight(),uniforms:["sizeParams"],samplers:["debugSampler"],engine:this._engine,reusable:!0,shaderLanguage:e?1:0,extraInitializations:(i,s)=>{i?s.push(Promise.resolve().then(()=>Ule)):s.push(Promise.resolve().then(()=>Fle))}};this._debugPassPP=new Mi(this.debugPassName,"iblShadowDebug",t),this._debugPassPP.autoClear=!1,this._debugPassPP.onApplyObservable.add(i=>{i.setTexture("debugSampler",this._outputTexture),i.setVector4("sizeParams",this._debugSizeParams)})}}constructor(e,t){this._voxelShadowOpacity=1,this._sssSamples=16,this._sssStride=8,this._sssMaxDist=.05,this._sssThickness=.5,this._ssShadowOpacity=1,this._cameraInvView=me.Identity(),this._cameraInvProj=me.Identity(),this._invWorldScaleMatrix=me.Identity(),this._frameId=0,this._sampleDirections=4,this._shadowParameters=new Yt(0,0,0,0),this._sssParameters=new Yt(0,0,0,0),this._opacityParameters=new Yt(0,0,0,0),this._voxelBiasParameters=new Yt(0,0,0,0),this._voxelNormalBias=1.4,this._voxelDirectionBias=1.75,this.enabled=!0,this.debugEnabled=!1,this._debugPassName="Voxel Tracing Debug Pass",this._envRotation=0,this._coloredShadows=!1,this._debugVoxelMarchEnabled=!1,this._debugSizeParams=new Yt(0,0,0,0),this._scene=e,this._engine=e.getEngine(),this._renderPipeline=t,this._createTextures()}_createTextures(){const e=this._createDefines(),t=this._engine.isWebGPU,i={type:0,format:5,samplingMode:1,generateDepthBuffer:!1,shaderLanguage:t?1:0,extraInitializationsAsync:async()=>{t?await Promise.all([Promise.resolve().then(()=>AKe)]):await Promise.all([Promise.resolve().then(()=>vKe)])}};this._outputTexture=new zc("voxelTracingPass",{width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight()},"iblShadowVoxelTracing",this._scene,i),this._outputTexture.refreshRate=-1,this._outputTexture.autoClear=!1,this._outputTexture.defines=e,this._setBindings(this._scene.activeCamera);let s=0;this._scene.onBeforeRenderObservable.add(()=>{s=0}),this._scene.onAfterRenderTargetsRenderObservable.add(()=>{++s==2&&this.enabled&&this._outputTexture.isReady()&&(this._setBindings(this._scene.activeCamera),this._outputTexture.render())})}_createDefines(){let e="";return this._scene.useRightHandedSystem&&(e+=`#define RIGHT_HANDED
`),this._debugVoxelMarchEnabled&&(e+=`#define VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION 1u
`),this._coloredShadows&&(e+=`#define COLOR_SHADOWS 1u
`),e}_setBindings(e){this._outputTexture.defines=this._createDefines(),this._outputTexture.setMatrix("viewMtx",e.getViewMatrix()),this._outputTexture.setMatrix("projMtx",e.getProjectionMatrix()),e.getProjectionMatrix().invertToRef(this._cameraInvProj),e.getViewMatrix().invertToRef(this._cameraInvView),this._outputTexture.setMatrix("invProjMtx",this._cameraInvProj),this._outputTexture.setMatrix("invViewMtx",this._cameraInvView),this._outputTexture.setMatrix("wsNormalizationMtx",this._invWorldScaleMatrix),this._frameId++;let t=0;this._scene.environmentTexture&&(t=this._scene.environmentTexture.rotationY??0),t=this._scene.useRightHandedSystem?-(t+.5*Math.PI):t-.5*Math.PI,t=t%(2*Math.PI),this._shadowParameters.set(this._sampleDirections,this._frameId,1,t),this._outputTexture.setVector4("shadowParameters",this._shadowParameters);const i=this._renderPipeline._getVoxelGridTexture(),s=Math.floor(Math.log2(i.getSize().width));this._voxelBiasParameters.set(this._voxelNormalBias,this._voxelDirectionBias,s,0),this._outputTexture.setVector4("voxelBiasParameters",this._voxelBiasParameters),this._sssParameters.set(this._sssSamples,this._sssStride,this._sssMaxDist,this._sssThickness),this._outputTexture.setVector4("sssParameters",this._sssParameters),this._opacityParameters.set(this._voxelShadowOpacity,this._ssShadowOpacity,0,0),this._outputTexture.setVector4("shadowOpacity",this._opacityParameters),this._outputTexture.setTexture("voxelGridSampler",i),this._outputTexture.setTexture("blueNoiseSampler",this._renderPipeline._getNoiseTexture());const r=this._scene.iblCdfGenerator;r&&this._outputTexture.setTexture("icdfSampler",r.getIcdfTexture()),this._coloredShadows&&this._scene.environmentTexture&&this._outputTexture.setTexture("iblSampler",this._scene.environmentTexture);const n=this._scene.geometryBufferRenderer;if(!n)return;const o=n.getTextureIndex(ps.SCREENSPACE_DEPTH_TEXTURE_TYPE);this._outputTexture.setTexture("depthSampler",n.getGBuffer().textures[o]);const l=n.getTextureIndex(ps.NORMAL_TEXTURE_TYPE);this._outputTexture.setTexture("worldNormalSampler",n.getGBuffer().textures[l])}resize(e=1){const t={width:Math.max(1,Math.floor(this._engine.getRenderWidth()*e)),height:Math.max(1,Math.floor(this._engine.getRenderHeight()*e))};this._outputTexture.resize(t,!1)}isReady(){return this._outputTexture.isReady()&&!(this._debugPassPP&&!this._debugPassPP.isReady())&&this._scene.iblCdfGenerator&&this._scene.iblCdfGenerator.getIcdfTexture().isReady()&&this._renderPipeline._getVoxelGridTexture().isReady()}dispose(){this._outputTexture.dispose(),this._debugPassPP&&this._debugPassPP.dispose()}}class dZe{getOutputTexture(){return this._outputTexture}getDebugPassPP(){return this._debugPassPP||this._createDebugPass(),this._debugPassPP}get debugPassName(){return this._debugPassName}setWorldScale(e){this._worldScale=e}setDebugDisplayParams(e,t,i,s){this._debugSizeParams.set(e,t,i,s)}_createDebugPass(){if(!this._debugPassPP){const e=this._engine.isWebGPU,t={width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight(),textureFormat:6,textureType:0,samplingMode:1,uniforms:["sizeParams"],samplers:["debugSampler"],engine:this._engine,reusable:!1,shaderLanguage:e?1:0,extraInitializations:(i,s)=>{i?s.push(Promise.resolve().then(()=>Ule)):s.push(Promise.resolve().then(()=>Fle))}};this._debugPassPP=new Mi(this.debugPassName,"iblShadowDebug",t),this._debugPassPP.autoClear=!1,this._debugPassPP.onApplyObservable.add(i=>{i.setTexture("debugSampler",this._outputTexture),i.setVector4("sizeParams",this._debugSizeParams)})}}constructor(e,t){this._worldScale=1,this._blurParameters=new Yt(0,0,0,0),this.enabled=!0,this._debugPassName="Spatial Blur Debug Pass",this.debugEnabled=!1,this._debugSizeParams=new Yt(0,0,0,0),this._scene=e,this._engine=e.getEngine(),this._renderPipeline=t,this._createTextures()}_createTextures(){const e=this._engine.isWebGPU,t={type:0,format:5,samplingMode:1,generateDepthBuffer:!1,generateMipMaps:!1,shaderLanguage:e?1:0,extraInitializationsAsync:async()=>{e?await Promise.all([Promise.resolve().then(()=>CKe)]):await Promise.all([Promise.resolve().then(()=>xKe)])}};this._outputTexture=new zc("spatialBlurPass",{width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight()},"iblShadowSpatialBlur",this._scene,t,!1,!1,0),this._outputTexture.refreshRate=-1,this._outputTexture.autoClear=!1,this._setBindings();let i=0;this._scene.onBeforeRenderObservable.add(()=>{i=0}),this._scene.onAfterRenderTargetsRenderObservable.add(()=>{++i==2&&this.enabled&&this._outputTexture.isReady()&&(this._setBindings(),this._outputTexture.render())})}_setBindings(){this._outputTexture.setTexture("voxelTracingSampler",this._renderPipeline._getVoxelTracingTexture()),this._blurParameters.set(1,this._worldScale,0,0),this._outputTexture.setVector4("blurParameters",this._blurParameters);const t=this._scene.geometryBufferRenderer;if(!t)return;const i=t.getTextureIndex(ps.SCREENSPACE_DEPTH_TEXTURE_TYPE);this._outputTexture.setTexture("depthSampler",t.getGBuffer().textures[i]);const s=t.getTextureIndex(ps.NORMAL_TEXTURE_TYPE);this._outputTexture.setTexture("worldNormalSampler",t.getGBuffer().textures[s])}resize(e=1){const t={width:Math.max(1,Math.floor(this._engine.getRenderWidth()*e)),height:Math.max(1,Math.floor(this._engine.getRenderHeight()*e))};this._outputTexture.resize(t,!1)}isReady(){return this._outputTexture.isReady()&&!(this._debugPassPP&&!this._debugPassPP.isReady())}dispose(){this._outputTexture.dispose(),this._debugPassPP&&this._debugPassPP.dispose()}}class fZe{getOutputTexture(){return this._outputTexture}getDebugPassPP(){return this._debugPassPP||this._createDebugPass(),this._debugPassPP}get debugPassName(){return this._debugPassName}get remanence(){return this._remanence}set remanence(e){this._remanence=e}get reset(){return this._reset}set reset(e){this._reset=e}set isMoving(e){this._isMoving=e}setDebugDisplayParams(e,t,i,s){this._debugSizeParams.set(e,t,i,s)}_createDebugPass(){if(!this._debugPassPP){const e=this._engine.isWebGPU,t={width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight(),textureFormat:5,textureType:0,samplingMode:1,uniforms:["sizeParams"],samplers:["debugSampler"],engine:this._engine,reusable:!1,shaderLanguage:e?1:0,extraInitializations:(i,s)=>{i?s.push(Promise.resolve().then(()=>Ule)):s.push(Promise.resolve().then(()=>Fle))}};this._debugPassPP=new Mi(this.debugPassName,"iblShadowDebug",t),this._debugPassPP.autoClear=!1,this._debugPassPP.onApplyObservable.add(i=>{i.setTexture("debugSampler",this._outputTexture),i.setVector4("sizeParams",this._debugSizeParams)})}}constructor(e,t){this._accumulationParams=new Yt(0,0,0,0),this.debugEnabled=!1,this.enabled=!0,this.onReadyObservable=new xe,this._debugPassName="Shadow Accumulation Debug Pass",this._remanence=.9,this._reset=!0,this._isMoving=!1,this._debugSizeParams=new Yt(0,0,0,0),this._scene=e,this._engine=e.getEngine(),this._renderPipeline=t,this._createTextures()}_createTextures(){const e=this._engine.isWebGPU,t={type:2,format:5,samplingMode:1,generateDepthBuffer:!1,generateMipMaps:!1,shaderLanguage:e?1:0,extraInitializationsAsync:async()=>{e?await Promise.all([Promise.resolve().then(()=>bKe)]):await Promise.all([Promise.resolve().then(()=>SKe)])}};this._outputTexture=new zc("shadowAccumulationPass",{width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight()},"iblShadowAccumulation",this._scene,t),this._outputTexture.refreshRate=-1,this._outputTexture.autoClear=!1,this._outputTexture.onGeneratedObservable.addOnce(()=>{this.onReadyObservable.notifyObservers()}),this._setOutputTextureBindings();let i=0;this._scene.onBeforeRenderObservable.add(()=>{i=0}),this._scene.onAfterRenderTargetsRenderObservable.add(()=>{++i==2&&this.enabled&&this._outputTexture.isReady()&&(this._setOutputTextureBindings(),this._outputTexture.render())});const s={type:2,format:5,samplingMode:1,generateDepthBuffer:!1,generateMipMaps:!1,shaderLanguage:e?1:0,extraInitializationsAsync:async()=>{e?await Promise.all([Promise.resolve().then(()=>_z)]):await Promise.all([Promise.resolve().then(()=>UO)])}};this._oldAccumulationCopy=new zc("oldAccumulationRT",{width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight()},"pass",this._scene,s,!1),this._oldAccumulationCopy.autoClear=!1,this._oldAccumulationCopy.refreshRate=1,this._oldAccumulationCopy.onBeforeGenerationObservable.add(this._setAccumulationCopyBindings.bind(this)),this._setAccumulationCopyBindings();const r={type:2,format:5,samplingMode:1,generateDepthBuffer:!1,generateMipMaps:!1,shaderLanguage:e?1:0,extraInitializationsAsync:async()=>{e?await Promise.all([Promise.resolve().then(()=>_z)]):await Promise.all([Promise.resolve().then(()=>UO)])}};this._oldPositionCopy=new zc("oldLocalPositionRT",{width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight()},"pass",this._scene,r,!1),this._updatePositionCopy(),this._oldPositionCopy.autoClear=!1,this._oldPositionCopy.refreshRate=1,this._oldPositionCopy.onBeforeGenerationObservable.add(this._updatePositionCopy.bind(this))}_setOutputTextureBindings(){const e=this._isMoving?this.remanence:.99;this._accumulationParams.set(e,this.reset?1:0,this._renderPipeline.voxelGridSize,0),this._outputTexture.setTexture("spatialBlurSampler",this._renderPipeline._getSpatialBlurTexture()),this._outputTexture.setVector4("accumulationParameters",this._accumulationParams),this._outputTexture.setTexture("oldAccumulationSampler",this._oldAccumulationCopy?this._oldAccumulationCopy:this._renderPipeline._dummyTexture2d),this._outputTexture.setTexture("prevPositionSampler",this._oldPositionCopy?this._oldPositionCopy:this._renderPipeline._dummyTexture2d);const t=this._scene.geometryBufferRenderer;if(!t)return;const i=t.getTextureIndex(ps.VELOCITY_LINEAR_TEXTURE_TYPE);this._outputTexture.setTexture("motionSampler",t.getGBuffer().textures[i]);const s=t.getTextureIndex(ps.POSITION_TEXTURE_TYPE);this._outputTexture.setTexture("positionSampler",t.getGBuffer().textures[s]),this.reset=!1,this._isMoving=!1}_updatePositionCopy(){const e=this._scene.geometryBufferRenderer,t=e.getTextureIndex(ps.POSITION_TEXTURE_TYPE);this._oldPositionCopy.setTexture("textureSampler",e.getGBuffer().textures[t])}_setAccumulationCopyBindings(){this._oldAccumulationCopy.setTexture("textureSampler",this._outputTexture)}resize(e=1){const t={width:Math.max(1,Math.floor(this._engine.getRenderWidth()*e)),height:Math.max(1,Math.floor(this._engine.getRenderHeight()*e))};this._outputTexture.resize(t,!1),this._oldAccumulationCopy.resize(t,!1),this._oldPositionCopy.resize({width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight()},!1),this.reset=!0}_disposeTextures(){this._oldAccumulationCopy.dispose(),this._oldPositionCopy.dispose(),this._outputTexture.dispose()}isReady(){return this._oldAccumulationCopy&&this._oldAccumulationCopy.isReady()&&this._oldPositionCopy&&this._oldPositionCopy.isReady()&&this._outputTexture.isReady()&&!(this._debugPassPP&&!this._debugPassPP.isReady())}dispose(){this._disposeTextures(),this._debugPassPP&&this._debugPassPP.dispose(),this.onReadyObservable.clear()}}class pZe extends Br{constructor(){super(...arguments),this.RENDER_WITH_IBL_SHADOWS=!1,this.COLORED_IBL_SHADOWS=!1}}class R4 extends Uu{get isColored(){return this._isColored}set isColored(e){this._isColored!==e&&(this._isColored=e,this._markAllSubMeshesAsTexturesDirty())}_markAllSubMeshesAsTexturesDirty(){this._enable(this._isEnabled),this._internalMarkAllSubMeshesAsTexturesDirty()}isCompatible(){return!0}constructor(e){super(e,R4.Name,310,new pZe),this.shadowOpacity=1,this._isEnabled=!1,this._isColored=!1,this.isEnabled=!1,this._internalMarkAllSubMeshesAsTexturesDirty=e._dirtyCallbacks[1]}prepareDefines(e){e.RENDER_WITH_IBL_SHADOWS=this._isEnabled,e.COLORED_IBL_SHADOWS=this.isColored}getClassName(){return"IBLShadowsPluginMaterial"}getUniforms(){return{ubo:[{name:"renderTargetSize",size:2,type:"vec2"},{name:"shadowOpacity",size:1,type:"float"}],fragment:`#ifdef RENDER_WITH_IBL_SHADOWS
                    uniform vec2 renderTargetSize;
                    uniform float shadowOpacity;
                #endif`}}getSamplers(e){e.push("iblShadowsTexture")}bindForSubMesh(e){this._isEnabled&&(e.bindTexture("iblShadowsTexture",this.iblShadowsTexture),e.updateFloat2("renderTargetSize",this._material.getScene().getEngine().getRenderWidth(),this._material.getScene().getEngine().getRenderHeight()),e.updateFloat("shadowOpacity",this.shadowOpacity))}getCustomCode(e,t){let i;return t===1?(i={CUSTOM_FRAGMENT_DEFINITIONS:`
                #ifdef RENDER_WITH_IBL_SHADOWS
                    var iblShadowsTextureSampler: sampler;
                    var iblShadowsTexture: texture_2d<f32>;

                    #ifdef COLORED_IBL_SHADOWS
                        fn computeIndirectShadow() -> vec3f {
                            var uv = fragmentInputs.position.xy / uniforms.renderTargetSize;
                            var shadowValue: vec3f = textureSample(iblShadowsTexture, iblShadowsTextureSampler, uv).rgb;
                            return mix(shadowValue, vec3f(1.0), 1.0 - uniforms.shadowOpacity);
                        }
                    #else
                        fn computeIndirectShadow() -> vec2f {
                            var uv = fragmentInputs.position.xy / uniforms.renderTargetSize;
                            var shadowValue: vec2f = textureSample(iblShadowsTexture, iblShadowsTextureSampler, uv).rg;
                            return mix(shadowValue, vec2f(1.0), 1.0 - uniforms.shadowOpacity);
                        }
                    #endif
                #endif
            `},this._material instanceof Bs?i.CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION=`
                #ifdef RENDER_WITH_IBL_SHADOWS
                    #ifndef UNLIT
                        #ifdef REFLECTION
                            #ifdef COLORED_IBL_SHADOWS
                                var shadowValue: vec3f = computeIndirectShadow();
                                finalIrradiance *= shadowValue;
                                finalRadianceScaled *= mix(vec3f(1.0), shadowValue, roughness);
                            #else
                                var shadowValue: vec2f = computeIndirectShadow();
                                finalIrradiance *= vec3f(shadowValue.x);
                                finalRadianceScaled *= vec3f(mix(pow(shadowValue.y, 4.0), shadowValue.x, roughness));
                            #endif
                        #endif
                    #else
                        finalDiffuse *= computeIndirectShadow().x;
                    #endif
                #endif
            `:i.CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR=`
                #ifdef RENDER_WITH_IBL_SHADOWS
                    #ifdef COLORED_IBL_SHADOWS
                        var shadowValue: vec3f = computeIndirectShadow();
                        color *= toGammaSpace(vec4f(shadowValue, 1.0f));
                    #else
                        var shadowValue: vec2f = computeIndirectShadow();
                        color *= toGammaSpace(vec4f(shadowValue.x, shadowValue.x, shadowValue.x, 1.0f));
                    #endif
                #endif
            `):(i={CUSTOM_FRAGMENT_DEFINITIONS:`
                #ifdef RENDER_WITH_IBL_SHADOWS
                    uniform sampler2D iblShadowsTexture;
                #ifdef COLORED_IBL_SHADOWS
                    vec3 computeIndirectShadow() {
                        vec2 uv = gl_FragCoord.xy / renderTargetSize;
                        vec3 shadowValue = texture2D(iblShadowsTexture, uv).rgb;
                        return mix(shadowValue.rgb, vec3(1.0), 1.0 - shadowOpacity);
                    }
                #else
                    vec2 computeIndirectShadow() {
                        vec2 uv = gl_FragCoord.xy / renderTargetSize;
                        vec2 shadowValue = texture2D(iblShadowsTexture, uv).rg;
                        return mix(shadowValue.rg, vec2(1.0), 1.0 - shadowOpacity);
                    }
                #endif
                #endif
            `},this._material instanceof Bs?i.CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION=`
                #ifdef RENDER_WITH_IBL_SHADOWS
                    #ifndef UNLIT
                        #ifdef REFLECTION
                            #ifdef COLORED_IBL_SHADOWS
                                vec3 shadowValue = computeIndirectShadow();
                                finalIrradiance.rgb *= shadowValue.rgb;
                                finalRadianceScaled *= mix(vec3(1.0), shadowValue.rgb, roughness);
                            #else
                                vec2 shadowValue = computeIndirectShadow();
                                finalIrradiance *= shadowValue.x;
                                finalRadianceScaled *= mix(pow(shadowValue.y, 4.0), shadowValue.x, roughness);
                            #endif
                        #endif
                    #else
                        finalDiffuse *= computeIndirectShadow().x;
                    #endif
                #endif
            `:i.CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR=`
                #ifdef RENDER_WITH_IBL_SHADOWS
                    #ifdef COLORED_IBL_SHADOWS
                        vec3 shadowValue = computeIndirectShadow();
                        color.rgb *= toGammaSpace(shadowValue.rgb);
                    #else
                        vec2 shadowValue = computeIndirectShadow();
                        color.rgb *= toGammaSpace(shadowValue.x);
                    #endif
                #endif
            `),e==="vertex"?null:i}}R4.Name="IBLShadowsPluginMaterial",F([G()],R4.prototype,"iblShadowsTexture",void 0),F([G()],R4.prototype,"shadowOpacity",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],R4.prototype,"isEnabled",void 0),ve("BABYLON.IBLShadowsPluginMaterial",R4);class mZe extends Eb{resetAccumulation(){this._accumulationPass.reset=!0}get shadowOpacity(){return this._shadowOpacity}set shadowOpacity(e){this._shadowOpacity=e,this._setPluginParameters()}get coloredShadows(){return this._coloredShadows}set coloredShadows(e){this._coloredShadows=e,this._voxelTracingPass.coloredShadows=e,this._setPluginParameters()}get shadowRenderSizeFactor(){return this._renderSizeFactor}set shadowRenderSizeFactor(e){this._renderSizeFactor=Math.max(Math.min(e,1),0),this._voxelTracingPass.resize(e),this._spatialBlurPass.resize(e),this._accumulationPass.resize(e),this._setPluginParameters()}get voxelShadowOpacity(){var e;return(e=this._voxelTracingPass)==null?void 0:e.voxelShadowOpacity}set voxelShadowOpacity(e){this._voxelTracingPass&&(this._voxelTracingPass.voxelShadowOpacity=e)}get ssShadowOpacity(){var e;return(e=this._voxelTracingPass)==null?void 0:e.ssShadowOpacity}set ssShadowOpacity(e){this._voxelTracingPass&&(this._voxelTracingPass.ssShadowOpacity=e)}get ssShadowSampleCount(){var e;return(e=this._voxelTracingPass)==null?void 0:e.sssSamples}set ssShadowSampleCount(e){this._voxelTracingPass&&(this._voxelTracingPass.sssSamples=e)}get ssShadowStride(){var e;return(e=this._voxelTracingPass)==null?void 0:e.sssStride}set ssShadowStride(e){this._voxelTracingPass&&(this._voxelTracingPass.sssStride=e)}get ssShadowDistanceScale(){return this._sssMaxDistScale}set ssShadowDistanceScale(e){this._sssMaxDistScale=e,this._updateSSShadowParams()}get ssShadowThicknessScale(){return this._sssThicknessScale}set ssShadowThicknessScale(e){this._sssThicknessScale=e,this._updateSSShadowParams()}_getVoxelGridTexture(){var t;const e=(t=this._voxelRenderer)==null?void 0:t.getVoxelGrid();return e&&e.isReady()?e:this._dummyTexture3d}_getNoiseTexture(){const e=this._noiseTexture;return e&&e.isReady()?e:this._dummyTexture2d}_getVoxelTracingTexture(){var t;const e=(t=this._voxelTracingPass)==null?void 0:t.getOutputTexture();return e&&e.isReady()?e:this._dummyTexture2d}_getSpatialBlurTexture(){const e=this._spatialBlurPass.getOutputTexture();return e&&e.isReady()?e:this._dummyTexture2d}_getAccumulatedTexture(){var t;const e=(t=this._accumulationPass)==null?void 0:t.getOutputTexture();return e&&e.isReady()?e:this._dummyTexture2d}get gbufferDebugEnabled(){return this._gbufferDebugEnabled}set gbufferDebugEnabled(e){if(e&&!this.allowDebugPasses){de.Warn("Can't enable G-Buffer debug view without setting allowDebugPasses to true.");return}this._gbufferDebugEnabled=e,e?this._enableEffect(this._getGBufferDebugPass().name,this.cameras):this._disableEffect(this._getGBufferDebugPass().name,this.cameras)}get cdfDebugEnabled(){return this.scene.iblCdfGenerator?this.scene.iblCdfGenerator.debugEnabled:!1}set cdfDebugEnabled(e){if(this.scene.iblCdfGenerator){if(e&&!this.allowDebugPasses){de.Warn("Can't enable importance sampling debug view without setting allowDebugPasses to true.");return}e!==this.scene.iblCdfGenerator.debugEnabled&&(this.scene.iblCdfGenerator.debugEnabled=e,e?this._enableEffect(this.scene.iblCdfGenerator.debugPassName,this.cameras):this._disableEffect(this.scene.iblCdfGenerator.debugPassName,this.cameras))}}get voxelDebugEnabled(){var e;return(e=this._voxelRenderer)==null?void 0:e.voxelDebugEnabled}set voxelDebugEnabled(e){if(this._voxelRenderer){if(e&&!this.allowDebugPasses){de.Warn("Can't enable voxel debug view without setting allowDebugPasses to true.");return}this._voxelRenderer.voxelDebugEnabled=e,e?this._enableEffect(this._voxelRenderer.debugPassName,this.cameras):this._disableEffect(this._voxelRenderer.debugPassName,this.cameras)}}get voxelDebugAxis(){var e;return(e=this._voxelRenderer)==null?void 0:e.voxelDebugAxis}set voxelDebugAxis(e){this._voxelRenderer&&(this._voxelRenderer.voxelDebugAxis=e)}set voxelDebugDisplayMip(e){this._voxelRenderer&&this._voxelRenderer.setDebugMipNumber(e)}get voxelTracingDebugEnabled(){var e;return(e=this._voxelTracingPass)==null?void 0:e.debugEnabled}set voxelTracingDebugEnabled(e){if(this._voxelTracingPass){if(e&&!this.allowDebugPasses){de.Warn("Can't enable voxel tracing debug view without setting allowDebugPasses to true.");return}e!==this._voxelTracingPass.debugEnabled&&(this._voxelTracingPass.debugEnabled=e,e?this._enableEffect(this._voxelTracingPass.debugPassName,this.cameras):this._disableEffect(this._voxelTracingPass.debugPassName,this.cameras))}}get spatialBlurPassDebugEnabled(){return this._spatialBlurPass.debugEnabled}set spatialBlurPassDebugEnabled(e){if(this._spatialBlurPass){if(e&&!this.allowDebugPasses){de.Warn("Can't enable spatial blur debug view without setting allowDebugPasses to true.");return}e!==this._spatialBlurPass.debugEnabled&&(this._spatialBlurPass.debugEnabled=e,e?this._enableEffect(this._spatialBlurPass.debugPassName,this.cameras):this._disableEffect(this._spatialBlurPass.debugPassName,this.cameras))}}get accumulationPassDebugEnabled(){var e;return(e=this._accumulationPass)==null?void 0:e.debugEnabled}set accumulationPassDebugEnabled(e){if(this._accumulationPass){if(e&&!this.allowDebugPasses){de.Warn("Can't enable accumulation pass debug view without setting allowDebugPasses to true.");return}e!==this._accumulationPass.debugEnabled&&(this._accumulationPass.debugEnabled=e,e?this._enableEffect(this._accumulationPass.debugPassName,this.cameras):this._disableEffect(this._accumulationPass.debugPassName,this.cameras))}}addShadowCastingMesh(e){if(Array.isArray(e))for(const t of e)t&&this._shadowCastingMeshes.indexOf(t)===-1&&this._shadowCastingMeshes.push(t);else e&&this._shadowCastingMeshes.indexOf(e)===-1&&this._shadowCastingMeshes.push(e)}removeShadowCastingMesh(e){if(Array.isArray(e))for(const t of e){const i=this._shadowCastingMeshes.indexOf(t);i!==-1&&this._shadowCastingMeshes.splice(i,1)}else{const t=this._shadowCastingMeshes.indexOf(e);t!==-1&&this._shadowCastingMeshes.splice(t,1)}}get resolutionExp(){return this._voxelRenderer.voxelResolutionExp}set resolutionExp(e){if(e!==this._voxelRenderer.voxelResolutionExp){if(this._voxelRenderer.isVoxelizationInProgress()){de.Warn("Can't change the resolution of the voxel grid while voxelization is in progress.");return}this._voxelRenderer.voxelResolutionExp=Math.max(1,Math.min(e,8)),this._accumulationPass.reset=!0}}get sampleDirections(){var e;return(e=this._voxelTracingPass)==null?void 0:e.sampleDirections}set sampleDirections(e){this._voxelTracingPass&&(this._voxelTracingPass.sampleDirections=e)}get shadowRemanence(){var e;return(e=this._accumulationPass)==null?void 0:e.remanence}set shadowRemanence(e){this._accumulationPass&&(this._accumulationPass.remanence=e)}get envRotation(){var e;return(e=this._voxelTracingPass)==null?void 0:e.envRotation}set envRotation(e){this._voxelTracingPass&&(this._voxelTracingPass.envRotation=e,this._accumulationPass.reset=!0)}get allowDebugPasses(){return this._allowDebugPasses}set allowDebugPasses(e){this._allowDebugPasses!==e&&(this._allowDebugPasses=e,e&&this.scene.iblCdfGenerator?this.scene.iblCdfGenerator.isReady()?this._createDebugPasses():this.scene.iblCdfGenerator.onGeneratedObservable.addOnce(()=>{this._createDebugPasses()}):this._disposeDebugPasses())}static get IsSupported(){const e=ei.LastCreatedEngine;return e?e._features.supportIBLShadows:!1}toggleShadow(e){this._enabled=e,this._voxelTracingPass.enabled=e,this._spatialBlurPass.enabled=e,this._accumulationPass.enabled=e,this._materialsWithRenderPlugin.forEach(t=>{if(t.pluginManager){const i=t.pluginManager.getPlugin(R4.Name);i.isEnabled=e}}),this._setPluginParameters()}updateVoxelization(){if(this._shadowCastingMeshes.length===0){de.Warn("IBL Shadows: updateVoxelization called with no shadow-casting meshes to voxelize.");return}this._voxelRenderer.updateVoxelGrid(this._shadowCastingMeshes),this._voxelRenderer.onVoxelizationCompleteObservable.addOnce(()=>{this.onVoxelizationCompleteObservable.notifyObservers()}),this._updateSSShadowParams()}updateSceneBounds(){const e={min:new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),max:new P(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE)};this._shadowCastingMeshes.forEach(o=>{const l=o.getHierarchyBoundingVectors(!0);e.min=P.Minimize(e.min,l.min),e.max=P.Maximize(e.max,l.max)});const t=e.max.subtract(e.min);if(this.voxelGridSize=Math.max(t.x,t.y,t.z),this._shadowCastingMeshes.length===0||!isFinite(this.voxelGridSize)||this.voxelGridSize===0){de.Warn("IBL Shadows: Scene size is invalid. Can't update bounds."),this.voxelGridSize=1;return}const i=this.voxelGridSize/2,s=e.max.add(e.min).multiplyByFloats(-.5,-.5,-.5),r=me.Compose(new P(1/i,1/i,1/i),new Re,new P(0,0,0));me.Compose(new P(1,1,1),new Re,s).multiplyToRef(r,r),this._voxelTracingPass.setWorldScaleMatrix(r),this._voxelRenderer.setWorldScaleMatrix(r),this._spatialBlurPass.setWorldScale(i*2),this._updateSSShadowParams()}constructor(e,t,i={},s){super(t.getEngine(),e),this._allowDebugPasses=!1,this._debugPasses=[],this._shadowCastingMeshes=[],this._shadowOpacity=.8,this._enabled=!0,this._coloredShadows=!1,this._materialsWithRenderPlugin=[],this.onShadowTextureReadyObservable=new xe,this.onNewIblReadyObservable=new xe,this.onVoxelizationCompleteObservable=new xe,this.voxelGridSize=1,this._renderSizeFactor=1,this._gbufferDebugEnabled=!1,this._gBufferDebugSizeParams=new Yt(0,0,0,0),this.scene=t,this._cameras=s||[t.activeCamera];const r=new Uint8Array([0,0,0,255]);this._dummyTexture2d=new Ur(r,1,1,Qt.TEXTUREFORMAT_RGBA,t,!1),this._dummyTexture3d=new kse(r,1,1,1,Qt.TEXTUREFORMAT_RGBA,t,!1);const n={};n[ps.SCREENSPACE_DEPTH_TEXTURE_TYPE]={textureFormat:6,textureType:1},n[ps.VELOCITY_LINEAR_TEXTURE_TYPE]={textureFormat:7,textureType:2},n[ps.POSITION_TEXTURE_TYPE]={textureFormat:5,textureType:2},n[ps.NORMAL_TEXTURE_TYPE]={textureFormat:5,textureType:2};const o=t.enableGeometryBufferRenderer(void 0,14,n);if(!o){de.Error("Geometry buffer renderer is required for IBL shadows to work.");return}this._geometryBufferRenderer=o,this._geometryBufferRenderer.enableScreenspaceDepth=!0,this._geometryBufferRenderer.enableVelocityLinear=!0,this._geometryBufferRenderer.enablePosition=!0,this._geometryBufferRenderer.enableNormal=!0,this._geometryBufferRenderer.generateNormalsInWorldSpace=!0,this.scene.enableIblCdfGenerator(),this.shadowOpacity=i.shadowOpacity||.8,this._voxelRenderer=new uZe(this.scene,this,i?i.resolutionExp:6,i.triPlanarVoxelization!==void 0?i.triPlanarVoxelization:!0),this._voxelTracingPass=new hZe(this.scene,this),this._spatialBlurPass=new dZe(this.scene,this),this._accumulationPass=new fZe(this.scene,this),this._accumulationPass.onReadyObservable.addOnce(()=>{this.onShadowTextureReadyObservable.notifyObservers()}),this.sampleDirections=i.sampleDirections||2,this.voxelShadowOpacity=i.voxelShadowOpacity??1,this.envRotation=i.envRotation??0,this.shadowRenderSizeFactor=i.shadowRenderSizeFactor||1,this.ssShadowOpacity=i.ssShadowsEnabled===void 0||i.ssShadowsEnabled?1:0,this.ssShadowDistanceScale=i.ssShadowDistanceScale||1.25,this.ssShadowSampleCount=i.ssShadowSampleCount||16,this.ssShadowStride=i.ssShadowStride||8,this.ssShadowThicknessScale=i.ssShadowThicknessScale||1,this.shadowRemanence=i.shadowRemanence??.75,this._noiseTexture=new be("https://assets.babylonjs.com/textures/blue_noise/blue_noise_rgb.png",this.scene,!1,!0,1),t.postProcessRenderPipelineManager.addPipeline(this),this.scene.onActiveCameraChanged.add(this._listenForCameraChanges.bind(this)),this.scene.onBeforeRenderObservable.add(this._updateBeforeRender.bind(this)),this._listenForCameraChanges(),this.scene.getEngine().onResizeObservable.add(this._handleResize.bind(this)),this.scene.iblCdfGenerator&&this.scene.iblCdfGenerator.onGeneratedObservable.add(()=>{this._setPluginParameters(),this.onNewIblReadyObservable.notifyObservers()})}_handleResize(){this._voxelRenderer.resize(),this._voxelTracingPass.resize(this.shadowRenderSizeFactor),this._spatialBlurPass.resize(this.shadowRenderSizeFactor),this._accumulationPass.resize(this.shadowRenderSizeFactor),this._setPluginParameters()}_getGBufferDebugPass(){if(this._gbufferDebugPass)return this._gbufferDebugPass;const e=this.engine.isWebGPU,t=["depthSampler","normalSampler","positionSampler","velocitySampler"],i={width:this.scene.getEngine().getRenderWidth(),height:this.scene.getEngine().getRenderHeight(),samplingMode:1,engine:this.scene.getEngine(),textureType:0,textureFormat:5,uniforms:["sizeParams"],samplers:t,reusable:!1,shaderLanguage:e?1:0,extraInitializations:(s,r)=>{s?r.push(Promise.resolve().then(()=>OKe)):r.push(Promise.resolve().then(()=>PKe))}};return this._gbufferDebugPass=new Mi("iblShadowGBufferDebug","iblShadowGBufferDebug",i),this._gbufferDebugPass.autoClear=!1,this._gbufferDebugPass.onApplyObservable.add(s=>{const r=this._geometryBufferRenderer.getTextureIndex(ps.SCREENSPACE_DEPTH_TEXTURE_TYPE);s.setTexture("depthSampler",this._geometryBufferRenderer.getGBuffer().textures[r]);const n=this._geometryBufferRenderer.getTextureIndex(ps.NORMAL_TEXTURE_TYPE);s.setTexture("normalSampler",this._geometryBufferRenderer.getGBuffer().textures[n]);const o=this._geometryBufferRenderer.getTextureIndex(ps.POSITION_TEXTURE_TYPE);s.setTexture("positionSampler",this._geometryBufferRenderer.getGBuffer().textures[o]);const l=this._geometryBufferRenderer.getTextureIndex(ps.VELOCITY_LINEAR_TEXTURE_TYPE);s.setTexture("velocitySampler",this._geometryBufferRenderer.getGBuffer().textures[l]),s.setVector4("sizeParams",this._gBufferDebugSizeParams),this.scene.activeCamera&&s.setFloat("maxDepth",this.scene.activeCamera.maxZ)}),this._gbufferDebugPass}_createDebugPasses(){this.scene.iblCdfGenerator?this._debugPasses=[{pass:this.scene.iblCdfGenerator.getDebugPassPP(),enabled:this.cdfDebugEnabled}]:this._debugPasses=[],this._debugPasses.push({pass:this._voxelRenderer.getDebugPassPP(),enabled:this.voxelDebugEnabled},{pass:this._voxelTracingPass.getDebugPassPP(),enabled:this.voxelTracingDebugEnabled},{pass:this._spatialBlurPass.getDebugPassPP(),enabled:this.spatialBlurPassDebugEnabled},{pass:this._accumulationPass.getDebugPassPP(),enabled:this.accumulationPassDebugEnabled},{pass:this._getGBufferDebugPass(),enabled:this.gbufferDebugEnabled});for(let t=0;t<this._debugPasses.length;t++)this._debugPasses[t].pass&&this.addEffect(new Mr(this.scene.getEngine(),this._debugPasses[t].pass.name,()=>this._debugPasses[t].pass,!0));const e=this.cameras.slice();this.scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this.name,this.cameras),this.scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this.name,e);for(let t=0;t<this._debugPasses.length;t++)this._debugPasses[t].pass&&(this._debugPasses[t].enabled?this._enableEffect(this._debugPasses[t].pass.name,this.cameras):this._disableEffect(this._debugPasses[t].pass.name,this.cameras))}_disposeEffectPasses(){this.scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this.name,this.cameras),this._disposeDebugPasses(),this._reset()}_disposeDebugPasses(){for(let e=0;e<this._debugPasses.length;e++)this._disableEffect(this._debugPasses[e].pass.name,this.cameras),this._debugPasses[e].pass.dispose();this._debugPasses=[]}_updateDebugPasses(){let e=0;this._gbufferDebugEnabled&&e++,this.cdfDebugEnabled&&e++,this.voxelDebugEnabled&&e++,this.voxelTracingDebugEnabled&&e++,this.spatialBlurPassDebugEnabled&&e++,this.accumulationPassDebugEnabled&&e++;const t=Math.ceil(Math.sqrt(e)),i=Math.ceil(e/t),s=1/i,r=1/t;let n=0,o=0;this.gbufferDebugEnabled&&(this._gBufferDebugSizeParams.set(n,o,i,t),n-=s,n<=-1&&(n=0,o-=r)),this.cdfDebugEnabled&&this.scene.iblCdfGenerator&&(this.scene.iblCdfGenerator.setDebugDisplayParams(n,o,i,t),n-=s,n<=-1&&(n=0,o-=r)),this.voxelDebugEnabled&&(this._voxelRenderer.setDebugDisplayParams(n,o,i,t),n-=s,n<=-1&&(n=0,o-=r)),this.voxelTracingDebugEnabled&&(this._voxelTracingPass.setDebugDisplayParams(n,o,i,t),n-=s,n<=-1&&(n=0,o-=r)),this.spatialBlurPassDebugEnabled&&(this._spatialBlurPass.setDebugDisplayParams(n,o,i,t),n-=s,n<=-1&&(n=0,o-=r)),this.accumulationPassDebugEnabled&&(this._accumulationPass.setDebugDisplayParams(n,o,i,t),n-=s,n<=-1&&(n=0,o-=r))}_updateSSShadowParams(){this._voxelTracingPass.sssMaxDist=this._sssMaxDistScale*this.voxelGridSize/(1<<this.resolutionExp),this._voxelTracingPass.sssThickness=this._sssThicknessScale*.005*this.voxelGridSize}addShadowReceivingMaterial(e){e?Array.isArray(e)?e.forEach(t=>{this._addShadowSupportToMaterial(t)}):this._addShadowSupportToMaterial(e):this.scene.materials.forEach(t=>{this._addShadowSupportToMaterial(t)})}removeShadowReceivingMaterial(e){if(Array.isArray(e))e.forEach(t=>{var s;const i=this._materialsWithRenderPlugin.indexOf(t);if(i!==-1){this._materialsWithRenderPlugin.splice(i,1);const r=(s=t.pluginManager)==null?void 0:s.getPlugin(R4.Name);r.isEnabled=!1}});else{const t=this._materialsWithRenderPlugin.indexOf(e);if(t!==-1){this._materialsWithRenderPlugin.splice(t,1);const i=e.pluginManager.getPlugin(R4.Name);i.isEnabled=!1}}}_addShadowSupportToMaterial(e){var i;if(!(e instanceof Bs)&&!(e instanceof Bt))return;let t=(i=e.pluginManager)==null?void 0:i.getPlugin(R4.Name);t||(t=new R4(e)),this._materialsWithRenderPlugin.indexOf(e)===-1&&(this._enabled&&(t.iblShadowsTexture=this._getAccumulatedTexture().getInternalTexture(),t.shadowOpacity=this.shadowOpacity),t.isEnabled=this._enabled,t.isColored=this._coloredShadows,this._materialsWithRenderPlugin.push(e))}_setPluginParameters(){this._enabled&&this._materialsWithRenderPlugin.forEach(e=>{if(e.pluginManager){const t=e.pluginManager.getPlugin(R4.Name);t.iblShadowsTexture=this._getAccumulatedTexture().getInternalTexture(),t.shadowOpacity=this.shadowOpacity,t.isColored=this._coloredShadows}})}_updateBeforeRender(){this._updateDebugPasses()}_listenForCameraChanges(){var e;(e=this.scene.activeCamera)==null||e.onViewMatrixChangedObservable.add(()=>{this._accumulationPass.isMoving=!0})}isReady(){return this._noiseTexture.isReady()&&this._voxelRenderer.isReady()&&this.scene.iblCdfGenerator&&this.scene.iblCdfGenerator.isReady()&&(!this._voxelTracingPass||this._voxelTracingPass.isReady())&&(!this._spatialBlurPass||this._spatialBlurPass.isReady())&&(!this._accumulationPass||this._accumulationPass.isReady())}getClassName(){return"IBLShadowsRenderPipeline"}dispose(){this._materialsWithRenderPlugin.splice(0).forEach(t=>{this.removeShadowReceivingMaterial(t)}),this._disposeEffectPasses(),this._noiseTexture.dispose(),this._voxelRenderer.dispose(),this._voxelTracingPass.dispose(),this._spatialBlurPass.dispose(),this._accumulationPass.dispose(),this._dummyTexture2d.dispose(),this._dummyTexture3d.dispose(),this.onNewIblReadyObservable.clear(),this.onShadowTextureReadyObservable.clear(),super.dispose()}}class gZe extends Cb{constructor(e,t,i,s,r,n){super(e,i,s,r,n),this._beforeCompositionPostProcesses=[],this._internalTextureDirty=!1,this.enabled=!1,this.renderTargetTexture=null,this.renderTargetTexture=t}_createCompositionEffect(){this.imageProcessingPostProcess=new DY("prePassComposition",1,null,void 0,this._engine),this.imageProcessingPostProcess._updateParameters()}_checkSize(){const e=this._engine.getRenderWidth(!0),t=this._engine.getRenderHeight(!0),i=this.getRenderWidth(),s=this.getRenderHeight();(i!==e||s!==t)&&(this.resize({width:e,height:t}),this._internalTextureDirty=!0)}updateCount(e,t,i){super.updateCount(e,t,i),this._internalTextureDirty=!0}_resetPostProcessChain(){this._beforeCompositionPostProcesses.length=0}dispose(){const e=this._scene;if(super.dispose(),e&&e.prePassRenderer){const t=e.prePassRenderer.renderTargets.indexOf(this);t!==-1&&e.prePassRenderer.renderTargets.splice(t,1)}this.imageProcessingPostProcess&&this.imageProcessingPostProcess.dispose(),this.renderTargetTexture&&(this.renderTargetTexture._prePassRenderTarget=null),this._outputPostProcess&&(this._outputPostProcess.autoClear=!0,this._outputPostProcess.restoreDefaultInputTexture())}}class Th{get generateNormalsInWorldSpace(){return this._generateNormalsInWorldSpace}set generateNormalsInWorldSpace(e){this._generateNormalsInWorldSpace!==e&&(this._generateNormalsInWorldSpace=e,this._markAllMaterialsAsPrePassDirty())}getIndex(e){return this._textureIndices[e]}get samples(){return this.defaultRT.samples}set samples(e){this.defaultRT.samples=e}get useSpecificClearForDepthTexture(){return this._useSpecificClearForDepthTexture}set useSpecificClearForDepthTexture(e){this._useSpecificClearForDepthTexture!==e&&(this._useSpecificClearForDepthTexture=e,this._isDirty=!0)}getRenderTarget(){return this._currentTarget}_setRenderTarget(e){var t;e?this._currentTarget=e:(this._currentTarget=this.defaultRT,this._engine.currentRenderPassId=((t=this._scene.activeCamera)==null?void 0:t.renderPassId)??this._currentTarget.renderPassId)}get currentRTisSceneRT(){return this._currentTarget===this.defaultRT}_refreshGeometryBufferRendererLink(){if(this.doNotUseGeometryRendererFallback)this._geometryBuffer&&this._geometryBuffer._unlinkPrePassRenderer(),this._geometryBuffer=null,this._scene.disableGeometryBufferRenderer();else{if(this._geometryBuffer=this._scene.enableGeometryBufferRenderer(),!this._geometryBuffer){this.doNotUseGeometryRendererFallback=!0;return}this._geometryBuffer._linkPrePassRenderer(this)}}get enabled(){return this._enabled}constructor(e){this.excludedSkinnedMesh=[],this.excludedMaterials=[],this.mrtCount=0,this._mrtTypes=[],this._mrtFormats=[],this._mrtLayout=[],this._mrtNames=[],this._textureIndices=[],this._generateNormalsInWorldSpace=!1,this._useSpecificClearForDepthTexture=!1,this._isDirty=!0,this._effectConfigurations=[],this.doNotUseGeometryRendererFallback=!0,this.renderTargets=[],this._clearColor=new St(0,0,0,0),this._clearDepthColor=new St(1e8,0,0,1),this._enabled=!1,this._needsCompositionForThisPass=!1,this.disableGammaTransform=!1,this._scene=e,this._engine=e.getEngine();let t=0;this._engine._caps.textureFloat&&this._engine._caps.textureFloatLinearFiltering?t=1:this._engine._caps.textureHalfFloat&&this._engine._caps.textureHalfFloatLinearFiltering&&(t=2);for(let i=0;i<Th.TextureFormats.length;++i){const s=Th.TextureFormats[i].format;Th.TextureFormats[i].type===1&&(Th.TextureFormats[i].type=t,t===1&&(s===6||s===7||s===5)&&!this._engine._caps.supportFloatTexturesResolve&&(Th.TextureFormats[i].type=2))}Th._SceneComponentInitialization(this._scene),this.defaultRT=this._createRenderTarget("sceneprePassRT",null),this._currentTarget=this.defaultRT}_createRenderTarget(e,t){const i=new gZe(e,t,{width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight()},0,this._scene,{generateMipMaps:!1,generateStencilBuffer:this._engine.isStencilEnable,defaultType:0,types:[],drawOnlyOnFirstAttachmentByDefault:!0});return this.renderTargets.push(i),this._enabled&&this._update(),i}get isSupported(){return this._scene.getEngine().getCaps().drawBuffersExtension}bindAttachmentsForEffect(e,t){const i=t.getMaterial(),s=i&&i.isPrePassCapable,r=i&&this.excludedMaterials.indexOf(i)!==-1;this.enabled&&this._currentTarget.enabled&&(e._multiTarget&&s&&!r?this._engine.bindAttachments(this._multiRenderAttachments):(this._engine._currentRenderTarget?this._engine.bindAttachments(this._defaultAttachments):this._engine.restoreSingleAttachment(),this._geometryBuffer&&this.currentRTisSceneRT&&!r&&this._geometryBuffer.renderList.push(t.getRenderingMesh())))}_reinitializeAttachments(){const e=[],t=[!1],i=[!1],s=[!0];for(let r=0;r<this.mrtCount;r++)e.push(!0),r>0&&(this._useSpecificClearForDepthTexture&&this._mrtLayout[r]===5?(t.push(!1),i.push(!0)):(t.push(!0),i.push(!1)),s.push(!1));this._multiRenderAttachments=this._engine.buildTextureLayout(e),this._clearAttachments=this._engine.buildTextureLayout(t),this._clearDepthAttachments=this._engine.buildTextureLayout(i),this._defaultAttachments=this._engine.buildTextureLayout(s)}_resetLayout(){for(let e=0;e<Th.TextureFormats.length;e++)this._textureIndices[Th.TextureFormats[e].purpose]=-1;this._textureIndices[4]=0,this._mrtLayout=[4],this._mrtTypes=[Th.TextureFormats[4].type],this._mrtFormats=[Th.TextureFormats[4].format],this._mrtNames=[Th.TextureFormats[4].name],this.mrtCount=1}_updateGeometryBufferLayout(){if(this._refreshGeometryBufferRendererLink(),this._geometryBuffer){this._geometryBuffer._resetLayout();const e=[];for(let i=0;i<this._mrtLayout.length;i++)e.push(!1);this._geometryBuffer._linkInternalTexture(this.defaultRT.getInternalTexture());const t=[{prePassConstant:5,geometryBufferConstant:ps.DEPTH_TEXTURE_TYPE},{prePassConstant:6,geometryBufferConstant:ps.NORMAL_TEXTURE_TYPE},{prePassConstant:1,geometryBufferConstant:ps.POSITION_TEXTURE_TYPE},{prePassConstant:3,geometryBufferConstant:ps.REFLECTIVITY_TEXTURE_TYPE},{prePassConstant:2,geometryBufferConstant:ps.VELOCITY_TEXTURE_TYPE}];for(let i=0;i<t.length;i++){const s=this._mrtLayout.indexOf(t[i].prePassConstant);s!==-1&&(this._geometryBuffer._forceTextureType(t[i].geometryBufferConstant,s),e[s]=!0)}this._geometryBuffer._setAttachments(this._engine.buildTextureLayout(e))}}restoreAttachments(){this.enabled&&this._currentTarget.enabled&&this._defaultAttachments&&(this._engine._currentRenderTarget?this._engine.bindAttachments(this._defaultAttachments):this._engine.restoreSingleAttachment())}_beforeDraw(e,t,i){this._isDirty&&this._update(),!(!this._enabled||!this._currentTarget.enabled)&&(this._geometryBuffer&&(this._geometryBuffer.renderList=[]),this._setupOutputForThisPass(this._currentTarget,e))}_prepareFrame(e,t,i){e.renderTargetTexture?e.renderTargetTexture._prepareFrame(this._scene,t,i,e.renderTargetTexture.useCameraPostProcesses):this._postProcessesSourceForThisPass.length?this._scene.postProcessManager._prepareFrame():this._engine.restoreDefaultFramebuffer()}setCustomOutput(e){const t=this._postProcessesSourceForThisPass[0];return t?(t.inputTexture=e.renderTarget,!0):!1}_renderPostProcesses(e,t){var n;const i=this._postProcessesSourceForThisPass[0],s=i?i.inputTexture:e.renderTargetTexture?e.renderTargetTexture.renderTarget:null;let r=this._currentTarget._beforeCompositionPostProcesses;this._needsCompositionForThisPass&&(r=r.concat([this._currentTarget.imageProcessingPostProcess])),r.length&&(this._scene.postProcessManager._prepareFrame((n=this._currentTarget.renderTarget)==null?void 0:n.texture,r),this._scene.postProcessManager.directRender(r,s,!1,t))}_afterDraw(e,t){this._enabled&&this._currentTarget.enabled&&(this._prepareFrame(this._currentTarget,e,t),this._renderPostProcesses(this._currentTarget,e))}_clear(){this._isDirty&&this._update(),this._enabled&&this._currentTarget.enabled&&(this._bindFrameBuffer(),this._engine.bindAttachments(this._clearAttachments),this._engine.clear(this._clearColor,!0,!1,!1),this._useSpecificClearForDepthTexture&&(this._engine.bindAttachments(this._clearDepthAttachments),this._engine.clear(this._clearDepthColor,!0,!1,!1)),this._engine.bindAttachments(this._defaultAttachments))}_bindFrameBuffer(){if(this._enabled&&this._currentTarget.enabled){this._currentTarget._checkSize();const e=this._currentTarget.renderTarget;e&&this._engine.bindFramebuffer(e)}}_setEnabled(e){this._enabled=e}_setRenderTargetEnabled(e,t){e.enabled=t,t||this._unlinkInternalTexture(e)}addEffectConfiguration(e){for(let t=0;t<this._effectConfigurations.length;t++)if(this._effectConfigurations[t].name===e.name)return this._effectConfigurations[t];return this._effectConfigurations.push(e),e}getEffectConfiguration(e){for(let t=0;t<this._effectConfigurations.length;t++)if(this._effectConfigurations[t].name===e)return this._effectConfigurations[t];return null}_enable(){const e=this.mrtCount;for(let t=0;t<this._effectConfigurations.length;t++)this._effectConfigurations[t].enabled&&this._enableTextures(this._effectConfigurations[t].texturesRequired);for(let t=0;t<this.renderTargets.length;t++){(this.mrtCount!==e||this.renderTargets[t].count!==this.mrtCount)&&this.renderTargets[t].updateCount(this.mrtCount,{types:this._mrtTypes,formats:this._mrtFormats},this._mrtNames.concat("prePass_DepthBuffer")),this.renderTargets[t]._resetPostProcessChain();for(let i=0;i<this._effectConfigurations.length;i++)this._effectConfigurations[i].enabled&&(!this._effectConfigurations[i].postProcess&&this._effectConfigurations[i].createPostProcess&&this._effectConfigurations[i].createPostProcess(),this._effectConfigurations[i].postProcess&&this.renderTargets[t]._beforeCompositionPostProcesses.push(this._effectConfigurations[i].postProcess))}this._reinitializeAttachments(),this._setEnabled(!0),this._updateGeometryBufferLayout()}_disable(){this._setEnabled(!1);for(let e=0;e<this.renderTargets.length;e++)this._setRenderTargetEnabled(this.renderTargets[e],!1);this._resetLayout();for(let e=0;e<this._effectConfigurations.length;e++)this._effectConfigurations[e].enabled=!1}_getPostProcessesSource(e,t){if(t)return t._postProcesses;if(e.renderTargetTexture)if(e.renderTargetTexture.useCameraPostProcesses){const i=e.renderTargetTexture.activeCamera?e.renderTargetTexture.activeCamera:this._scene.activeCamera;return i?i._postProcesses:[]}else return e.renderTargetTexture.postProcesses?e.renderTargetTexture.postProcesses:[];else return this._scene.activeCamera?this._scene.activeCamera._postProcesses:[]}_setupOutputForThisPass(e,t){const i=t&&this._scene.activeCameras&&!!this._scene.activeCameras.length&&this._scene.activeCameras.indexOf(t)!==0;this._postProcessesSourceForThisPass=this._getPostProcessesSource(e,t),this._postProcessesSourceForThisPass=this._postProcessesSourceForThisPass.filter(l=>l!=null),this._scene.autoClear=!0;const s=this._hasImageProcessing(this._postProcessesSourceForThisPass);this._needsCompositionForThisPass=!s&&!this.disableGammaTransform&&this._needsImageProcessing()&&!i;const r=this._getFirstPostProcess(this._postProcessesSourceForThisPass),n=e._beforeCompositionPostProcesses&&e._beforeCompositionPostProcesses[0];let o=null;this._scene.imageProcessingConfiguration.applyByPostProcess=this._needsCompositionForThisPass||s,this._needsCompositionForThisPass&&!e.imageProcessingPostProcess&&e._createCompositionEffect(),n?o=n:this._needsCompositionForThisPass?o=e.imageProcessingPostProcess:r&&(o=r),this._bindFrameBuffer(),this._linkInternalTexture(e,o)}_linkInternalTexture(e,t){t&&(t.autoClear=!1,t.inputTexture=e.renderTarget),e._outputPostProcess!==t&&(e._outputPostProcess&&this._unlinkInternalTexture(e),e._outputPostProcess=t),e._internalTextureDirty&&(this._updateGeometryBufferLayout(),e._internalTextureDirty=!1)}_unlinkInternalTexture(e){e._outputPostProcess&&(e._outputPostProcess.autoClear=!0,e._outputPostProcess.restoreDefaultInputTexture(),e._outputPostProcess=null)}_needsImageProcessing(){for(let e=0;e<this._effectConfigurations.length;e++)if(this._effectConfigurations[e].enabled&&this._effectConfigurations[e].needsImageProcessing)return!0;return!1}_hasImageProcessing(e){var i;let t=!1;if(e){for(let s=0;s<e.length;s++)if(((i=e[s])==null?void 0:i.getClassName())==="ImageProcessingPostProcess"){t=!0;break}}return t}_getFirstPostProcess(e){for(let t=0;t<e.length;t++)if(e[t]!==null)return e[t];return null}markAsDirty(){this._isDirty=!0}_enableTextures(e){this._scene.needsPreviousWorldMatrices=!1;for(let t=0;t<e.length;t++){const i=e[t];this._textureIndices[i]===-1&&(this._textureIndices[i]=this._mrtLayout.length,this._mrtLayout.push(i),this._mrtTypes.push(Th.TextureFormats[i].type),this._mrtFormats.push(Th.TextureFormats[i].format),this._mrtNames.push(Th.TextureFormats[i].name),this.mrtCount++),(i===2||i===11)&&(this._scene.needsPreviousWorldMatrices=!0)}}update(){this._isDirty&&this._update()}_update(){this._disable();let e=!1;this._scene.imageProcessingConfiguration.applyByPostProcess=!1,this._scene._depthPeelingRenderer&&this._scene.useOrderIndependentTransparency&&(this._scene._depthPeelingRenderer.setPrePassRenderer(this),e=!0);for(let i=0;i<this._scene.materials.length;i++)this._scene.materials[i].setPrePassRenderer(this)&&(e=!0);e&&this._setRenderTargetEnabled(this.defaultRT,!0);let t;for(let i=0;i<this.renderTargets.length;i++){if(this.renderTargets[i].renderTargetTexture)t=this._getPostProcessesSource(this.renderTargets[i]);else{const s=this._scene.activeCamera;if(!s)continue;t=s._postProcesses}if(t&&(t=t.filter(s=>s!=null),t)){for(let s=0;s<t.length;s++)t[s].setPrePassRenderer(this)&&(this._setRenderTargetEnabled(this.renderTargets[i],!0),e=!0);this._hasImageProcessing(t)&&(this._scene.imageProcessingConfiguration.applyByPostProcess=!0)}}this._markAllMaterialsAsPrePassDirty(),this._isDirty=!1,e&&this._enable()}_markAllMaterialsAsPrePassDirty(){const e=this._scene.materials;for(let t=0;t<e.length;t++)e[t].markAsDirty(ft.PrePassDirtyFlag)}dispose(){for(let e=this.renderTargets.length-1;e>=0;e--)this.renderTargets[e].dispose();for(let e=0;e<this._effectConfigurations.length;e++)this._effectConfigurations[e].dispose&&this._effectConfigurations[e].dispose()}}Th._SceneComponentInitialization=a=>{throw as("PrePassRendererSceneComponent")},Th.TextureFormats=[{purpose:0,type:2,format:5,name:"prePass_Irradiance"},{purpose:1,type:2,format:5,name:"prePass_Position"},{purpose:2,type:0,format:5,name:"prePass_Velocity"},{purpose:3,type:0,format:5,name:"prePass_Reflectivity"},{purpose:4,type:2,format:5,name:"prePass_Color"},{purpose:5,type:1,format:6,name:"prePass_Depth"},{purpose:6,type:2,format:5,name:"prePass_Normal"},{purpose:7,type:0,format:5,name:"prePass_Albedo"},{purpose:8,type:0,format:5,name:"prePass_WorldNormal"},{purpose:9,type:2,format:5,name:"prePass_LocalPosition"},{purpose:10,type:1,format:6,name:"prePass_ScreenDepth"},{purpose:11,type:2,format:5,name:"prePass_VelocityLinear"}],Object.defineProperty(ui.prototype,"prePassRenderer",{get:function(){return this._prePassRenderer},set:function(a){a&&a.isSupported&&(this._prePassRenderer=a)},enumerable:!0,configurable:!0}),ui.prototype.enablePrePassRenderer=function(){return this._prePassRenderer?this._prePassRenderer:(this._prePassRenderer=new Th(this),this._prePassRenderer.isSupported||(this._prePassRenderer=null,de.Error(`PrePassRenderer needs WebGL 2 support.
Maybe you tried to use the following features that need the PrePassRenderer :
 + Subsurface Scattering`)),this._prePassRenderer)},ui.prototype.disablePrePassRenderer=function(){this._prePassRenderer&&(this._prePassRenderer.dispose(),this._prePassRenderer=null)};class Wye{constructor(e){this.name=jt.NAME_PREPASSRENDERER,this.scene=e}register(){this.scene._beforeCameraDrawStage.registerStep(jt.STEP_BEFORECAMERADRAW_PREPASS,this,this._beforeCameraDraw),this.scene._afterCameraDrawStage.registerStep(jt.STEP_AFTERCAMERADRAW_PREPASS,this,this._afterCameraDraw),this.scene._beforeRenderTargetDrawStage.registerStep(jt.STEP_BEFORERENDERTARGETDRAW_PREPASS,this,this._beforeRenderTargetDraw),this.scene._afterRenderTargetDrawStage.registerStep(jt.STEP_AFTERCAMERADRAW_PREPASS,this,this._afterRenderTargetDraw),this.scene._beforeClearStage.registerStep(jt.STEP_BEFORECLEAR_PREPASS,this,this._beforeClearStage),this.scene._beforeRenderTargetClearStage.registerStep(jt.STEP_BEFORERENDERTARGETCLEAR_PREPASS,this,this._beforeRenderTargetClearStage),this.scene._beforeRenderingMeshStage.registerStep(jt.STEP_BEFORERENDERINGMESH_PREPASS,this,this._beforeRenderingMeshStage),this.scene._afterRenderingMeshStage.registerStep(jt.STEP_AFTERRENDERINGMESH_PREPASS,this,this._afterRenderingMeshStage)}_beforeRenderTargetDraw(e,t,i){this.scene.prePassRenderer&&!e.noPrePassRenderer&&(this.scene.prePassRenderer._setRenderTarget(e._prePassRenderTarget),this.scene.prePassRenderer._beforeDraw(void 0,t,i))}_afterRenderTargetDraw(e,t,i){this.scene.prePassRenderer&&!e.noPrePassRenderer&&this.scene.prePassRenderer._afterDraw(t,i)}_beforeRenderTargetClearStage(e){this.scene.prePassRenderer&&!e.noPrePassRenderer&&(e._prePassRenderTarget||(e._prePassRenderTarget=this.scene.prePassRenderer._createRenderTarget(e.name+"_prePassRTT",e)),this.scene.prePassRenderer._setRenderTarget(e._prePassRenderTarget),this.scene.prePassRenderer._clear())}_beforeCameraDraw(e){this.scene.prePassRenderer&&(this.scene.prePassRenderer._setRenderTarget(null),this.scene.prePassRenderer._beforeDraw(e))}_afterCameraDraw(){this.scene.prePassRenderer&&this.scene.prePassRenderer._afterDraw()}_beforeClearStage(){this.scene.prePassRenderer&&(this.scene.prePassRenderer._setRenderTarget(null),this.scene.prePassRenderer._clear())}_beforeRenderingMeshStage(e,t,i,s){if(!s)return;const r=e.getScene();r.prePassRenderer&&r.prePassRenderer.bindAttachmentsForEffect(s,t)}_afterRenderingMeshStage(e){const t=e.getScene();t.prePassRenderer&&t.prePassRenderer.restoreAttachments()}rebuild(){}dispose(){this.scene.disablePrePassRenderer()}}Th._SceneComponentInitialization=a=>{let e=a._getComponent(jt.NAME_PREPASSRENDERER);e||(e=new Wye(a),a._addComponent(e))};const Hye="fibonacci",_Ze=`#define rcp(x) 1./x
#define GOLDEN_RATIO 1.618033988749895
vec2 Golden2dSeq(int i,float n)
{return vec2(float(i)/n+(0.5/n),fract(float(i)*rcp(GOLDEN_RATIO)));}
vec2 SampleDiskGolden(int i,int sampleCount)
{vec2 f=Golden2dSeq(i,float(sampleCount));return vec2(sqrt(f.x),TWO_PI*f.y);}`;H.IncludesShadersStore[Hye]||(H.IncludesShadersStore[Hye]=_Ze);const Yye="diffusionProfile",vZe="uniform vec3 diffusionS[5];uniform float diffusionD[5];uniform float filterRadii[5];";H.IncludesShadersStore[Yye]||(H.IncludesShadersStore[Yye]=vZe);const Xye="subSurfaceScatteringPixelShader",AZe=`#include<helperFunctions>
#include<fibonacci>
#include<subSurfaceScatteringFunctions>
#include<diffusionProfile>
varying vec2 vUV;uniform vec2 texelSize;uniform sampler2D textureSampler;uniform sampler2D irradianceSampler;uniform sampler2D depthSampler;uniform sampler2D albedoSampler;uniform vec2 viewportSize;uniform float metersPerUnit;const float LOG2_E=1.4426950408889634;const float SSS_PIXELS_PER_SAMPLE=4.;const int _SssSampleBudget=40;
#define rcp(x) 1./x
#define Sq(x) x*x
#define SSS_BILATERAL_FILTER true
vec3 EvalBurleyDiffusionProfile(float r,vec3 S)
{vec3 exp_13=exp2(((LOG2_E*(-1.0/3.0))*r)*S); 
vec3 expSum=exp_13*(1.+exp_13*exp_13); 
return (S*rcp((8.*PI)))*expSum; }
vec2 SampleBurleyDiffusionProfile(float u,float rcpS)
{u=1.-u; 
float g=1.+(4.*u)*(2.*u+sqrt(1.+(4.*u)*u));float n=exp2(log2(g)*(-1.0/3.0)); 
float p=(g*n)*n; 
float c=1.+p+n; 
float d=(3./LOG2_E*2.)+(3./LOG2_E)*log2(u); 
float x=(3./LOG2_E)*log2(c)-d; 
float rcpExp=((c*c)*c)*rcp(((4.*u)*((c*c)+(4.*u)*(4.*u))));float r=x*rcpS;float rcpPdf=(8.*PI*rcpS)*rcpExp; 
return vec2(r,rcpPdf);}
vec3 ComputeBilateralWeight(float xy2,float z,float mmPerUnit,vec3 S,float rcpPdf)
{
#ifndef SSS_BILATERAL_FILTER
z=0.;
#endif
float r=sqrt(xy2+(z*mmPerUnit)*(z*mmPerUnit));float area=rcpPdf;
#if SSS_CLAMP_ARTIFACT
return clamp(EvalBurleyDiffusionProfile(r,S)*area,0.0,1.0);
#else
return EvalBurleyDiffusionProfile(r,S)*area;
#endif
}
void EvaluateSample(int i,int n,vec3 S,float d,vec3 centerPosVS,float mmPerUnit,float pixelsPerMm,
float phase,inout vec3 totalIrradiance,inout vec3 totalWeight)
{float scale =rcp(float(n));float offset=rcp(float(n))*0.5;float sinPhase,cosPhase;sinPhase=sin(phase);cosPhase=cos(phase);vec2 bdp=SampleBurleyDiffusionProfile(float(i)*scale+offset,d);float r=bdp.x;float rcpPdf=bdp.y;float phi=SampleDiskGolden(i,n).y;float sinPhi,cosPhi;sinPhi=sin(phi);cosPhi=cos(phi);float sinPsi=cosPhase*sinPhi+sinPhase*cosPhi; 
float cosPsi=cosPhase*cosPhi-sinPhase*sinPhi; 
vec2 vec=r*vec2(cosPsi,sinPsi);vec2 position; 
float xy2;position=vUV+round((pixelsPerMm*r)*vec2(cosPsi,sinPsi))*texelSize;xy2 =r*r;vec4 textureSample=texture2D(irradianceSampler,position);float viewZ=texture2D(depthSampler,position).r;vec3 irradiance =textureSample.rgb;if (testLightingForSSS(textureSample.a))
{float relZ=viewZ-centerPosVS.z;vec3 weight=ComputeBilateralWeight(xy2,relZ,mmPerUnit,S,rcpPdf);totalIrradiance+=weight*irradiance;totalWeight +=weight;}
else
{}}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) 
{vec4 irradianceAndDiffusionProfile =texture2D(irradianceSampler,vUV);vec3 centerIrradiance=irradianceAndDiffusionProfile.rgb;int diffusionProfileIndex=int(round(irradianceAndDiffusionProfile.a*255.));float centerDepth =0.;vec4 inputColor=texture2D(textureSampler,vUV);bool passedStencilTest=testLightingForSSS(irradianceAndDiffusionProfile.a);if (passedStencilTest)
{centerDepth=texture2D(depthSampler,vUV).r;}
if (!passedStencilTest) { 
gl_FragColor=inputColor;return;}
float distScale =1.;vec3 S =diffusionS[diffusionProfileIndex];float d =diffusionD[diffusionProfileIndex];float filterRadius=filterRadii[diffusionProfileIndex];vec2 centerPosNDC=vUV;vec2 cornerPosNDC=vUV+0.5*texelSize;vec3 centerPosVS =vec3(centerPosNDC*viewportSize,1.0)*centerDepth; 
vec3 cornerPosVS =vec3(cornerPosNDC*viewportSize,1.0)*centerDepth; 
float mmPerUnit =1000.*(metersPerUnit*rcp(distScale));float unitsPerMm=rcp(mmPerUnit);float unitsPerPixel=2.*abs(cornerPosVS.x-centerPosVS.x);float pixelsPerMm =rcp(unitsPerPixel)*unitsPerMm;float filterArea =PI*Sq(filterRadius*pixelsPerMm);int sampleCount =int(filterArea*rcp(SSS_PIXELS_PER_SAMPLE));int sampleBudget=_SssSampleBudget;int texturingMode=0;vec3 albedo =texture2D(albedoSampler,vUV).rgb;if (distScale==0. || sampleCount<1)
{
#ifdef DEBUG_SSS_SAMPLES
vec3 green=vec3(0.,1.,0.);gl_FragColor=vec4(green,1.0);return;
#endif
gl_FragColor=vec4(inputColor.rgb+albedo*centerIrradiance,1.0);return;}
#ifdef DEBUG_SSS_SAMPLES
vec3 red =vec3(1.,0.,0.);vec3 blue=vec3(0.,0.,1.);gl_FragColor=vec4(mix(blue,red,clamp(float(sampleCount)/float(sampleBudget),0.0,1.0)),1.0);return;
#endif
float phase=0.;int n=min(sampleCount,sampleBudget);vec3 centerWeight =vec3(0.); 
vec3 totalIrradiance=vec3(0.);vec3 totalWeight =vec3(0.);for (int i=0; i<n; i++)
{EvaluateSample(i,n,S,d,centerPosVS,mmPerUnit,pixelsPerMm,
phase,totalIrradiance,totalWeight);}
totalWeight=max(totalWeight,HALF_MIN);gl_FragColor=vec4(inputColor.rgb+albedo*max(totalIrradiance/totalWeight,vec3(0.0)),1.);}`;H.ShadersStore[Xye]||(H.ShadersStore[Xye]=AZe);const Zye="fibonacci",CZe=`fn rcp(x: f32)->f32
{return 1./x;}
const GOLDEN_RATIO=1.618033988749895;fn Golden2dSeq(i: u32,n: f32)->vec2f
{return vec2f(f32(i)/n+(0.5/n),fract(f32(i)*rcp(GOLDEN_RATIO)));}
fn SampleDiskGolden(i: u32,sampleCount: u32)->vec2f
{let f=Golden2dSeq(i,f32(sampleCount));return vec2f(sqrt(f.x),TWO_PI*f.y);}
`;H.IncludesShadersStoreWGSL[Zye]||(H.IncludesShadersStoreWGSL[Zye]=CZe);const Kye="diffusionProfile",xZe=`uniform diffusionS: array<vec3f,5>;uniform diffusionD: array<f32,5>;uniform filterRadii: array<f32,5>;
`;H.IncludesShadersStoreWGSL[Kye]||(H.IncludesShadersStoreWGSL[Kye]=xZe);const qye="subSurfaceScatteringPixelShader",bZe=`#include<helperFunctions>
#include<fibonacci>
#include<subSurfaceScatteringFunctions>
#include<diffusionProfile>
varying vUV: vec2f;uniform texelSize: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var irradianceSamplerSampler: sampler;var irradianceSampler: texture_2d<f32>;var depthSamplerSampler: sampler;var depthSampler: texture_2d<f32>;var albedoSamplerSampler: sampler;var albedoSampler: texture_2d<f32>;uniform viewportSize: vec2f;uniform metersPerUnit: f32;const LOG2_E=1.4426950408889634;const SSS_PIXELS_PER_SAMPLE=4.;const _SssSampleBudget=40u;
#define SSS_BILATERAL_FILTER true
fn EvalBurleyDiffusionProfile(r: f32,S: vec3f)->vec3f
{let exp_13=exp2(((LOG2_E*(-1.0/3.0))*r)*S); 
let expSum=exp_13*(1.+exp_13*exp_13); 
return (S*rcp(8.*PI))*expSum; }
fn SampleBurleyDiffusionProfile(u_: f32,rcpS: f32)->vec2f
{let u=1.-u_; 
let g=1.+(4.*u)*(2.*u+sqrt(1.+(4.*u)*u));let n=exp2(log2(g)*(-1.0/3.0)); 
let p=(g*n)*n; 
let c=1.+p+n; 
let d=(3./LOG2_E*2.)+(3./LOG2_E)*log2(u); 
let x=(3./LOG2_E)*log2(c)-d; 
let rcpExp=((c*c)*c)*rcp((4.*u)*((c*c)+(4.*u)*(4.*u)));let r=x*rcpS;let rcpPdf=(8.*PI*rcpS)*rcpExp; 
return vec2f(r,rcpPdf);}
fn ComputeBilateralWeight(xy2: f32,z_: f32,mmPerUnit: f32,S: vec3f,rcpPdf: f32)->vec3f
{
#ifndef SSS_BILATERAL_FILTER
let z=0.;
#else
let z=z_;
#endif
let r=sqrt(xy2+(z*mmPerUnit)*(z*mmPerUnit));let area=rcpPdf;
#ifdef SSS_CLAMP_ARTIFACT
return clamp(EvalBurleyDiffusionProfile(r,S)*area,vec3f(0.0),vec3f(1.0));
#else
return EvalBurleyDiffusionProfile(r,S)*area;
#endif
}
fn EvaluateSample(i: u32,n: u32,S: vec3f,d: f32,centerPosVS: vec3f,mmPerUnit: f32,pixelsPerMm: f32,
phase: f32,totalIrradiance: ptr<function,vec3f>,totalWeight: ptr<function,vec3f>)
{let scale =rcp(f32(n));let offset=rcp(f32(n))*0.5;let sinPhase=sin(phase);let cosPhase=cos(phase);let bdp=SampleBurleyDiffusionProfile(f32(i)*scale+offset,d);let r=bdp.x;let rcpPdf=bdp.y;let phi=SampleDiskGolden(i,n).y;let sinPhi=sin(phi);let cosPhi=cos(phi);let sinPsi=cosPhase*sinPhi+sinPhase*cosPhi; 
let cosPsi=cosPhase*cosPhi-sinPhase*sinPhi; 
let vec=r*vec2f(cosPsi,sinPsi);let position=fragmentInputs.vUV+round((pixelsPerMm*r)*vec2(cosPsi,sinPsi))*uniforms.texelSize;let xy2 =r*r;let textureRead=textureSampleLevel(irradianceSampler,irradianceSamplerSampler,position,0.);let viewZ=textureSampleLevel(depthSampler,depthSamplerSampler,position,0.).r;let irradiance =textureRead.rgb;if (testLightingForSSS(textureRead.a))
{let relZ=viewZ-centerPosVS.z;let weight=ComputeBilateralWeight(xy2,relZ,mmPerUnit,S,rcpPdf);*totalIrradiance+=weight*irradiance;*totalWeight +=weight;}
else
{}}
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {let irradianceAndDiffusionProfile =textureSampleLevel(irradianceSampler,irradianceSamplerSampler,fragmentInputs.vUV,0.);let centerIrradiance=irradianceAndDiffusionProfile.rgb;let diffusionProfileIndex=u32(round(irradianceAndDiffusionProfile.a*255.));var centerDepth =0.;let inputColor=textureSampleLevel(textureSampler,textureSamplerSampler,fragmentInputs.vUV,0.);let passedStencilTest=testLightingForSSS(irradianceAndDiffusionProfile.a);if (passedStencilTest)
{centerDepth=textureSampleLevel(depthSampler,depthSamplerSampler,fragmentInputs.vUV,0.).r;}
if (!passedStencilTest) { 
fragmentOutputs.color=inputColor;return fragmentOutputs;}
let distScale =1.;let S =uniforms.diffusionS[diffusionProfileIndex];let d =uniforms.diffusionD[diffusionProfileIndex];let filterRadius=uniforms.filterRadii[diffusionProfileIndex];let centerPosNDC=fragmentInputs.vUV;let cornerPosNDC=fragmentInputs.vUV+0.5*uniforms.texelSize;let centerPosVS =vec3f(centerPosNDC*uniforms.viewportSize,1.0)*centerDepth; 
let cornerPosVS =vec3f(cornerPosNDC*uniforms.viewportSize,1.0)*centerDepth; 
let mmPerUnit =1000.*(uniforms.metersPerUnit*rcp(distScale));let unitsPerMm=rcp(mmPerUnit);let unitsPerPixel=2.*abs(cornerPosVS.x-centerPosVS.x);let pixelsPerMm =rcp(unitsPerPixel)*unitsPerMm;let filterArea =PI*square(filterRadius*pixelsPerMm);let sampleCount =u32(filterArea*rcp(SSS_PIXELS_PER_SAMPLE));let sampleBudget=_SssSampleBudget;let albedo =textureSampleLevel(albedoSampler,albedoSamplerSampler,fragmentInputs.vUV,0.).rgb;if (distScale==0. || sampleCount<1)
{
#ifdef DEBUG_SSS_SAMPLES
let green=vec3f(0.,1.,0.);fragmentOutputs.color=vec4f(green,1.0);return fragmentOutputs;
#endif
fragmentOutputs.color=vec4f(inputColor.rgb+albedo*centerIrradiance,1.0);return fragmentOutputs;}
#ifdef DEBUG_SSS_SAMPLES
let red =vec3f(1.,0.,0.);let blue=vec3f(0.,0.,1.);fragmentOutputs.color=vec4f(mix(blue,red,clamp(f32(sampleCount)/f32(sampleBudget),0.0,1.0)),1.0);return fragmentOutputs;
#endif
let phase=0.;let n=min(sampleCount,sampleBudget);var totalIrradiance=vec3f(0.);var totalWeight =vec3f(0.);for (var i=0u; i<n; i++)
{EvaluateSample(i,n,S,d,centerPosVS,mmPerUnit,pixelsPerMm,
phase,&totalIrradiance,&totalWeight);}
totalWeight=max(totalWeight,vec3f(HALF_MIN));fragmentOutputs.color=vec4f(inputColor.rgb+albedo*max(totalIrradiance/totalWeight,vec3f(0.0)),1.);}
`;H.ShadersStoreWGSL[qye]||(H.ShadersStoreWGSL[qye]=bZe);class SZe extends Mi{getClassName(){return"SubSurfaceScatteringPostProcess"}constructor(e,t,i,s=null,r,n,o,l=0){const c={uniforms:["texelSize","viewportSize","metersPerUnit"],samplers:["diffusionS","diffusionD","filterRadii","irradianceSampler","depthSampler","albedoSampler"],size:typeof i=="number"?i:void 0,camera:s,samplingMode:r,engine:n,reusable:o,textureType:l,...i,blockCompilation:!0};super(e,"subSurfaceScattering",{...c,samplingMode:r||be.BILINEAR_SAMPLINGMODE}),this._scene=t,this.updateEffect(),this.onApplyObservable.add(u=>{if(!t.prePassRenderer||!t.subSurfaceConfiguration){de.Error("PrePass and subsurface configuration needs to be enabled for subsurface scattering.");return}const f=this.texelSize;u.setFloat("metersPerUnit",t.subSurfaceConfiguration.metersPerUnit),u.setFloat2("texelSize",f.x,f.y),u.setTexture("irradianceSampler",t.prePassRenderer.getRenderTarget().textures[t.prePassRenderer.getIndex(0)]),u.setTexture("depthSampler",t.prePassRenderer.getRenderTarget().textures[t.prePassRenderer.getIndex(5)]),u.setTexture("albedoSampler",t.prePassRenderer.getRenderTarget().textures[t.prePassRenderer.getIndex(7)]),u.setFloat2("viewportSize",Math.tan(t.activeCamera.fov/2)*t.getEngine().getAspectRatio(t.activeCamera,!0),Math.tan(t.activeCamera.fov/2)),u.setArray3("diffusionS",t.subSurfaceConfiguration.ssDiffusionS),u.setArray("diffusionD",t.subSurfaceConfiguration.ssDiffusionD),u.setArray("filterRadii",t.subSurfaceConfiguration.ssFilterRadii)})}}class Az{get ssDiffusionS(){return this._ssDiffusionS}get ssDiffusionD(){return this._ssDiffusionD}get ssFilterRadii(){return this._ssFilterRadii}constructor(e){this._ssDiffusionS=[],this._ssFilterRadii=[],this._ssDiffusionD=[],this.enabled=!1,this.needsImageProcessing=!0,this.name=jt.NAME_SUBSURFACE,this.ssDiffusionProfileColors=[],this.metersPerUnit=1,this.texturesRequired=[5,7,4,0],this.addDiffusionProfile(new Pe(1,1,1)),this._scene=e,Az._SceneComponentInitialization(this._scene)}addDiffusionProfile(e){if(this.ssDiffusionD.length>=5)return de.Error("You already reached the maximum number of diffusion profiles."),0;for(let t=0;t<this._ssDiffusionS.length/3;t++)if(this._ssDiffusionS[t*3]===e.r&&this._ssDiffusionS[t*3+1]===e.g&&this._ssDiffusionS[t*3+2]===e.b)return t;return this._ssDiffusionS.push(e.r,e.b,e.g),this._ssDiffusionD.push(Math.max(Math.max(e.r,e.b),e.g)),this._ssFilterRadii.push(this.getDiffusionProfileParameters(e)),this.ssDiffusionProfileColors.push(e),this._ssDiffusionD.length-1}createPostProcess(){return this.postProcess=new SZe("subSurfaceScattering",this._scene,{size:1,engine:this._scene.getEngine(),shaderLanguage:this._scene.getEngine().isWebGPU?1:0}),this.postProcess.autoClear=!1,this.postProcess}clearAllDiffusionProfiles(){this._ssDiffusionD=[],this._ssDiffusionS=[],this._ssFilterRadii=[],this.ssDiffusionProfileColors=[]}dispose(){this.clearAllDiffusionProfiles(),this.postProcess&&this.postProcess.dispose()}getDiffusionProfileParameters(e){const i=Math.max(e.r,e.g,e.b);return this._sampleBurleyDiffusionProfile(.997,i)}_sampleBurleyDiffusionProfile(e,t){e=1-e;const i=1+4*e*(2*e+Math.sqrt(1+4*e*e)),s=Math.pow(i,-1/3),n=1+i*s*s+s;return 3*Math.log(n/(4*e))*t}}Az._SceneComponentInitialization=a=>{throw as("SubSurfaceSceneComponent")},aL(jt.NAME_SUBSURFACE,(a,e)=>{if(a.ssDiffusionProfileColors!==void 0&&a.ssDiffusionProfileColors!==null&&(e.enableSubSurfaceForPrePass(),e.subSurfaceConfiguration))for(let t=0,i=a.ssDiffusionProfileColors.length;t<i;t++){const s=a.ssDiffusionProfileColors[t];e.subSurfaceConfiguration.addDiffusionProfile(new Pe(s.r,s.g,s.b))}}),Object.defineProperty(ui.prototype,"subSurfaceConfiguration",{get:function(){return this._subSurfaceConfiguration},set:function(a){a&&this.enablePrePassRenderer()&&(this._subSurfaceConfiguration=a)},enumerable:!0,configurable:!0}),ui.prototype.enableSubSurfaceForPrePass=function(){if(this._subSurfaceConfiguration)return this._subSurfaceConfiguration;const a=this.enablePrePassRenderer();return a?(this._subSurfaceConfiguration=new Az(this),a.addEffectConfiguration(this._subSurfaceConfiguration),this._subSurfaceConfiguration):null},ui.prototype.disableSubSurfaceForPrePass=function(){this._subSurfaceConfiguration&&(this._subSurfaceConfiguration.dispose(),this._subSurfaceConfiguration=null)};class Qye{constructor(e){this.name=jt.NAME_PREPASSRENDERER,this.scene=e}register(){}serialize(e){if(!this.scene.subSurfaceConfiguration)return;const t=this.scene.subSurfaceConfiguration.ssDiffusionProfileColors;e.ssDiffusionProfileColors=[];for(let i=0;i<t.length;i++)e.ssDiffusionProfileColors.push({r:t[i].r,g:t[i].g,b:t[i].b})}addFromContainer(){}removeFromContainer(){this.scene.prePassRenderer&&this.scene.subSurfaceConfiguration&&this.scene.subSurfaceConfiguration.clearAllDiffusionProfiles()}rebuild(){}dispose(){}}Az._SceneComponentInitialization=a=>{let e=a._getComponent(jt.NAME_SUBSURFACE);e||(e=new Qye(a),a._addComponent(e))},ui.prototype.getOutlineRenderer=function(){return this._outlineRenderer||(this._outlineRenderer=new jO(this)),this._outlineRenderer},Object.defineProperty(Ne.prototype,"renderOutline",{get:function(){return this._renderOutline},set:function(a){a&&this.getScene().getOutlineRenderer(),this._renderOutline=a},enumerable:!0,configurable:!0}),Object.defineProperty(Ne.prototype,"renderOverlay",{get:function(){return this._renderOverlay},set:function(a){a&&this.getScene().getOutlineRenderer(),this._renderOverlay=a},enumerable:!0,configurable:!0});class jO{get shaderLanguage(){return this._shaderLanguage}constructor(e){this.name=jt.NAME_OUTLINERENDERER,this.zOffset=1,this.zOffsetUnits=4,this._shaderLanguage=0,this.scene=e,this._engine=e.getEngine(),this.scene._addComponent(this),this._passIdForDrawWrapper=[];for(let i=0;i<4;++i)this._passIdForDrawWrapper[i]=this._engine.createRenderPassId(`Outline Renderer (${i})`);this._engine.isWebGPU&&(this._shaderLanguage=1)}register(){this.scene._beforeRenderingMeshStage.registerStep(jt.STEP_BEFORERENDERINGMESH_OUTLINE,this,this._beforeRenderingMesh),this.scene._afterRenderingMeshStage.registerStep(jt.STEP_AFTERRENDERINGMESH_OUTLINE,this,this._afterRenderingMesh)}rebuild(){}dispose(){for(let e=0;e<this._passIdForDrawWrapper.length;++e)this._engine.releaseRenderPassId(this._passIdForDrawWrapper[e])}render(e,t,i=!1,s){s=s??this._passIdForDrawWrapper[0];const r=this.scene,n=r.getEngine(),o=n.getCaps().instancedArrays&&(t.visibleInstances[e._id]!==null&&t.visibleInstances[e._id]!==void 0||e.getRenderingMesh().hasThinInstances);if(!this.isReady(e,o,s))return;const l=e.getMesh(),c=l._internalAbstractMeshDataInfo._actAsRegularMesh?l:null,u=e.getRenderingMesh(),f=c||u,p=e.getMaterial();if(!p||!r.activeCamera)return;const m=e._getDrawWrapper(s),_=ql.GetEffect(m);n.enableEffect(m),p.useLogarithmicDepth&&_.setFloat("logarithmicDepthConstant",2/(Math.log(r.activeCamera.maxZ+1)/Math.LN2)),_.setFloat("offset",i?0:u.outlineWidth),_.setColor4("color",i?u.overlayColor:u.outlineColor,i?u.overlayAlpha:p.alpha),_.setMatrix("viewProjection",r.getTransformMatrix()),_.setMatrix("world",f.getWorldMatrix()),Pc(u,_),s3(u,_),u.morphTargetManager&&u.morphTargetManager.isUsingTextureForTargets&&u.morphTargetManager._bind(_),o||u._bind(e,_,p.fillMode);const d=e.getMesh().bakedVertexAnimationManager;if(d&&d.isEnabled&&d.bind(_,o),p&&p.needAlphaTestingForMesh(f)){const h=p.getAlphaTestTexture();h&&(_.setTexture("diffuseSampler",h),_.setMatrix("diffuseMatrix",h.getTextureMatrix()))}Bo(_,p,r),n.setZOffset(-this.zOffset),n.setZOffsetUnits(-this.zOffsetUnits),u._processRendering(f,e,_,p.fillMode,t,o,(h,x)=>{_.setMatrix("world",x)}),n.setZOffset(0),n.setZOffsetUnits(0)}isReady(e,t,i){i=i??this._passIdForDrawWrapper[0];const s=[],r=[q.PositionKind,q.NormalKind],n=e.getMesh(),o=e.getMaterial();if(!o)return!1;const l=n.getScene();let c=!1,u=!1;const f=!1;o.needAlphaTestingForMesh(n)&&(s.push("#define ALPHATEST"),n.isVerticesDataPresent(q.UVKind)&&(r.push(q.UVKind),s.push("#define UV1"),c=!0),n.isVerticesDataPresent(q.UV2Kind)&&(r.push(q.UV2Kind),s.push("#define UV2"),u=!0)),o.useLogarithmicDepth&&s.push("#define LOGARITHMICDEPTH"),Cy(o,l,s);const p=new Ra;if(n.useBones&&n.computeBonesUsingShaders&&n.skeleton){r.push(q.MatricesIndicesKind),r.push(q.MatricesWeightsKind),n.numBoneInfluencers>4&&(r.push(q.MatricesIndicesExtraKind),r.push(q.MatricesWeightsExtraKind));const A=n.skeleton;s.push("#define NUM_BONE_INFLUENCERS "+n.numBoneInfluencers),n.numBoneInfluencers>0&&p.addCPUSkinningFallback(0,n),A.isUsingTextureForMatrices?s.push("#define BONETEXTURE"):s.push("#define BonesPerMesh "+(A.bones.length+1))}else s.push("#define NUM_BONE_INFLUENCERS 0");const m=n.morphTargetManager?xy(n.morphTargetManager,s,r,n,!0,!0,!1,c,u,f):0;t&&(s.push("#define INSTANCES"),Qx(r),e.getRenderingMesh().hasThinInstances&&s.push("#define THIN_INSTANCES"));const _=n.bakedVertexAnimationManager;_&&_.isEnabled&&(s.push("#define BAKED_VERTEX_ANIMATION_TEXTURE"),t&&r.push("bakedVertexAnimationSettingsInstanced"));const d=e._getDrawWrapper(i,!0),h=d.defines,x=s.join(`
`);if(h!==x){const A=["world","mBones","viewProjection","diffuseMatrix","offset","color","logarithmicDepthConstant","morphTargetInfluences","boneTextureWidth","morphTargetCount","morphTargetTextureInfo","morphTargetTextureIndices","bakedVertexAnimationSettings","bakedVertexAnimationTextureSizeInverted","bakedVertexAnimationTime","bakedVertexAnimationTexture"],S=["diffuseSampler","boneSampler","morphTargets","bakedVertexAnimationTexture"];qo(A),d.setEffect(this.scene.getEngine().createEffect("outline",{attributes:r,uniformsNames:A,uniformBuffersNames:[],samplers:S,defines:x,fallbacks:p,onCompiled:null,onError:null,indexParameters:{maxSimultaneousMorphTargets:m},shaderLanguage:this._shaderLanguage,extraInitializationsAsync:async()=>{this._shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>pKe),Promise.resolve().then(()=>mKe)]):await Promise.all([Promise.resolve().then(()=>dKe),Promise.resolve().then(()=>fKe)])}},this.scene.getEngine()),x)}return d.effect.isReady()}_beforeRenderingMesh(e,t,i){if(this._savedDepthWrite=this._engine.getDepthWrite(),e.renderOutline){const s=t.getMaterial();s&&s.needAlphaBlendingForMesh(e)&&(this._engine.cacheStencilState(),this._engine.setDepthWrite(!1),this._engine.setColorWrite(!1),this._engine.setStencilBuffer(!0),this._engine.setStencilOperationPass(7681),this._engine.setStencilFunction(519),this._engine.setStencilMask(jO._StencilReference),this._engine.setStencilFunctionReference(jO._StencilReference),this._engine.stencilStateComposer.useStencilGlobalOnly=!0,this.render(t,i,!0,this._passIdForDrawWrapper[1]),this._engine.setColorWrite(!0),this._engine.setStencilFunction(517)),this._engine.setDepthWrite(!1),this.render(t,i,!1,this._passIdForDrawWrapper[0]),this._engine.setDepthWrite(this._savedDepthWrite),s&&s.needAlphaBlendingForMesh(e)&&(this._engine.stencilStateComposer.useStencilGlobalOnly=!1,this._engine.restoreStencilState())}}_afterRenderingMesh(e,t,i){if(e.renderOverlay){const s=this._engine.getAlphaMode(),r=this._engine.alphaState.alphaBlend;this._engine.setAlphaMode(2),this.render(t,i,!0,this._passIdForDrawWrapper[3]),this._engine.setAlphaMode(s),this._engine.setDepthWrite(this._savedDepthWrite),this._engine.alphaState.alphaBlend=r}e.renderOutline&&this._savedDepthWrite&&(this._engine.setDepthWrite(!0),this._engine.setColorWrite(!1),this.render(t,i,!1,this._passIdForDrawWrapper[2]),this._engine.setColorWrite(!0))}}jO._StencilReference=4;class joe{get particleSize(){return this._particleSize}set particleSize(e){e!==this._particleSize&&(this._particleSize=e,this.onParticleSizeChanged.notifyObservers(this))}get useInstancing(){return!this.indexBuffer}get useVelocity(){return this._useVelocity}set useVelocity(e){this._useVelocity===e||!this._hasVelocity()||(this._useVelocity=e,this._effectsAreDirty=!0)}_hasVelocity(){var e;return!!((e=this.vertexBuffers)!=null&&e.velocity)}get indexBuffer(){return null}getClassName(){return"FluidRenderingObject"}get shaderLanguage(){return this._shaderLanguage}constructor(e,t){this.priority=0,this._particleSize=.1,this.onParticleSizeChanged=new xe,this.particleThicknessAlpha=.05,this._useVelocity=!1,this._shaderLanguage=0,this._scene=e,this._engine=e.getEngine(),this._effectsAreDirty=!0,this._depthEffectWrapper=null,this._thicknessEffectWrapper=null,this._shaderLanguage=t??(this._engine.isWebGPU?1:0)}_createEffects(){const e=["view","projection","particleRadius","size"],t=["position","offset"],i=[];this._effectsAreDirty=!1,this.useVelocity&&(t.push("velocity"),i.push("#define FLUIDRENDERING_VELOCITY")),this._scene.useRightHandedSystem&&i.push("#define FLUIDRENDERING_RHS"),this._depthEffectWrapper=new Qr({engine:this._engine,useShaderStore:!0,vertexShader:"fluidRenderingParticleDepth",fragmentShader:"fluidRenderingParticleDepth",attributeNames:t,uniformNames:e,samplerNames:[],defines:i,shaderLanguage:this._shaderLanguage,extraInitializationsAsync:async()=>{this._shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>NZe),Promise.resolve().then(()=>wZe)]):await Promise.all([Promise.resolve().then(()=>TZe),Promise.resolve().then(()=>LZe)])}}),e.push("particleAlpha"),this._thicknessEffectWrapper=new Qr({engine:this._engine,useShaderStore:!0,vertexShader:"fluidRenderingParticleThickness",fragmentShader:"fluidRenderingParticleThickness",attributeNames:["position","offset"],uniformNames:e,samplerNames:[],shaderLanguage:this._shaderLanguage,extraInitializationsAsync:async()=>{this._shaderLanguage===1?await Promise.all([Promise.resolve().then(()=>BZe),Promise.resolve().then(()=>zZe)]):await Promise.all([Promise.resolve().then(()=>IZe),Promise.resolve().then(()=>PZe)])}})}isReady(){if(this._effectsAreDirty&&this._createEffects(),!this._depthEffectWrapper||!this._thicknessEffectWrapper)return!1;const e=this._depthEffectWrapper.drawWrapper.effect,t=this._thicknessEffectWrapper.drawWrapper.effect;return e.isReady()&&t.isReady()}renderDepthTexture(){const e=this.numParticles;if(!this._depthEffectWrapper||e===0)return;const t=this._depthEffectWrapper.drawWrapper,i=t.effect;this._engine.enableEffect(t),this._engine.bindBuffers(this.vertexBuffers,this.indexBuffer,i),i.setMatrix("view",this._scene.getViewMatrix()),i.setMatrix("projection",this._scene.getProjectionMatrix()),i.setFloat2("size",this._particleSize,this._particleSize),i.setFloat("particleRadius",this._particleSize/2),this.useInstancing?this._engine.drawArraysType(7,0,4,e):this._engine.drawElementsType(0,0,e)}renderThicknessTexture(){const e=this.numParticles;if(!this._thicknessEffectWrapper||e===0)return;const t=this._thicknessEffectWrapper.drawWrapper,i=t.effect;this._engine.setAlphaMode(6),this._engine.setDepthWrite(!1),this._engine.enableEffect(t),this._engine.bindBuffers(this.vertexBuffers,this.indexBuffer,i),i.setMatrix("view",this._scene.getViewMatrix()),i.setMatrix("projection",this._scene.getProjectionMatrix()),i.setFloat("particleAlpha",this.particleThicknessAlpha),i.setFloat2("size",this._particleSize,this._particleSize),this.useInstancing?this._engine.drawArraysType(7,0,4,e):this._engine.drawElementsType(0,0,e),this._engine.setDepthWrite(!0),this._engine.setAlphaMode(0)}renderDiffuseTexture(){}dispose(){var e,t;(e=this._depthEffectWrapper)==null||e.dispose(!1),(t=this._thicknessEffectWrapper)==null||t.dispose(!1),this.onParticleSizeChanged.clear()}}class Jye extends joe{get particleSystem(){return this._particleSystem}getClassName(){return"FluidRenderingObjectParticleSystem"}get useTrueRenderingForDiffuseTexture(){return this._useTrueRenderingForDiffuseTexture}set useTrueRenderingForDiffuseTexture(e){this._useTrueRenderingForDiffuseTexture!==e&&(this._useTrueRenderingForDiffuseTexture=e,e?(this._particleSystem.blendMode=this._blendMode,this._particleSystem.onBeforeDrawParticlesObservable.remove(this._onBeforeDrawParticleObserver),this._onBeforeDrawParticleObserver=null):(this._particleSystem.blendMode=-1,this._onBeforeDrawParticleObserver=this._particleSystem.onBeforeDrawParticlesObservable.add(()=>{this._engine.setAlphaMode(2)})))}get vertexBuffers(){return this._particleSystem.vertexBuffers}get indexBuffer(){return this._particleSystem.indexBuffer}constructor(e,t,i){super(e,i),this._useTrueRenderingForDiffuseTexture=!0,this._particleSystem=t,this._originalRender=t.render.bind(t),this._blendMode=t.blendMode,this._onBeforeDrawParticleObserver=null,this._updateInAnimate=this._particleSystem.updateInAnimate,this._particleSystem.updateInAnimate=!0,this._particleSystem.render=()=>0,this.particleSize=(t.minSize+t.maxSize)/2,this.useTrueRenderingForDiffuseTexture=!1}isReady(){return super.isReady()&&this._particleSystem.isReady()}get numParticles(){return this._particleSystem.getActiveCount()}renderDiffuseTexture(){this._originalRender()}dispose(){super.dispose(),this._particleSystem.onBeforeDrawParticlesObservable.remove(this._onBeforeDrawParticleObserver),this._onBeforeDrawParticleObserver=null,this._particleSystem.render=this._originalRender,this._particleSystem.blendMode=this._blendMode,this._particleSystem.updateInAnimate=this._updateInAnimate}}class Voe{get blurNumIterations(){return this._blurNumIterations}set blurNumIterations(e){if(this._blurNumIterations!==e&&(this._blurNumIterations=e,this._blurPostProcesses!==null)){const t=this._blurPostProcesses[0],i=this._blurPostProcesses[1];this._blurPostProcesses=[];for(let s=0;s<this._blurNumIterations*2;++s)this._blurPostProcesses[s]=s&1?i:t}}get renderTarget(){return this._rt}get renderTargetBlur(){return this._rtBlur}get texture(){return this._texture}get textureBlur(){return this._textureBlurred}get shaderLanguage(){return this._shaderLanguage}constructor(e,t,i,s,r,n,o=1,l=6,c=1,u=6,f=!1,p=null,m=!0,_=1,d){this.enableBlur=!0,this.blurSizeDivisor=1,this.blurFilterSize=7,this._blurNumIterations=3,this.blurMaxFilterSize=100,this.blurDepthScale=10,this.particleSize=.02,this.onDisposeObservable=new xe,this._shaderLanguage=0,this._name=e,this._scene=t,this._camera=p,this._engine=t.getEngine(),this._width=i,this._height=s,this._blurTextureSizeX=r,this._blurTextureSizeY=n,this._textureType=o,this._textureFormat=l,this._blurTextureType=c,this._blurTextureFormat=u,this._useStandardBlur=f,this._generateDepthBuffer=m,this._samples=_,this._postProcessRunningIndex=0,this.enableBlur=r!==0&&n!==0,this._rt=null,this._texture=null,this._rtBlur=null,this._textureBlurred=null,this._blurPostProcesses=null,this._shaderLanguage=d??(this._engine.isWebGPU?1:0)}initialize(){if(this.dispose(),this._createRenderTarget(),this.enableBlur&&this._texture){const[e,t,i]=this._createBlurPostProcesses(this._texture,this._blurTextureType,this._blurTextureFormat,this.blurSizeDivisor,this._name,this._useStandardBlur);this._rtBlur=e,this._textureBlurred=t,this._blurPostProcesses=i}}applyBlurPostProcesses(){this.enableBlur&&this._blurPostProcesses&&(this._postProcessRunningIndex=0,this._scene.postProcessManager.directRender(this._blurPostProcesses,this._rtBlur,!0),this._engine.unBindFramebuffer(this._rtBlur))}_createRenderTarget(){this._rt=this._engine.createRenderTargetTexture({width:this._width,height:this._height},{generateMipMaps:!1,type:this._textureType,format:this._textureFormat,samplingMode:1,generateDepthBuffer:this._generateDepthBuffer,generateStencilBuffer:!1,samples:this._samples,label:`FluidRenderingRTT-${this._name}`});const e=this._rt.texture;e.incrementReferences(),this._texture=new be(null,this._scene),this._texture.name="rtt"+this._name,this._texture._texture=e,this._texture.wrapU=be.CLAMP_ADDRESSMODE,this._texture.wrapV=be.CLAMP_ADDRESSMODE,this._texture.anisotropicFilteringLevel=1}_createBlurPostProcesses(e,t,i,s,r,n=!1){const o=this._scene.getEngine(),l=new Ue(Math.floor(this._blurTextureSizeX/s),Math.floor(this._blurTextureSizeY/s)),c=t===1&&o.getCaps().textureFloatLinearFiltering||t===2&&o.getCaps().textureHalfFloatLinearFiltering,u=this._engine.createRenderTargetTexture({width:l.x,height:l.y},{generateMipMaps:!1,type:t,format:i,samplingMode:c?2:1,generateDepthBuffer:!1,generateStencilBuffer:!1,samples:this._samples,label:`FluidRenderingRTTBlur-${r}`}),f=u.texture;f.incrementReferences();const p=new be(null,this._scene);if(p.name="rttBlurred"+r,p._texture=f,p.wrapU=be.CLAMP_ADDRESSMODE,p.wrapV=be.CLAMP_ADDRESSMODE,p.anisotropicFilteringLevel=1,n){const m=new Mi("BilateralBlurX","fluidRenderingStandardBlur",["filterSize","blurDir"],null,1,null,1,o,!0,null,t,void 0,void 0,void 0,i,this._shaderLanguage,async()=>{this.shaderLanguage===1?await Promise.resolve().then(()=>BMe):await Promise.resolve().then(()=>_Me)});m.samples=this._samples,m.externalTextureSamplerBinding=!0,m.onApplyObservable.add(h=>{this._postProcessRunningIndex===0?h.setTexture("textureSampler",e):h._bindTexture("textureSampler",m.inputTexture.texture),h.setInt("filterSize",this.blurFilterSize),h.setFloat2("blurDir",1/this._blurTextureSizeX,0),this._postProcessRunningIndex++}),m.onSizeChangedObservable.add(()=>{m._textures.forEach(h=>{h.texture.wrapU=be.CLAMP_ADDRESSMODE,h.texture.wrapV=be.CLAMP_ADDRESSMODE})}),this._fixReusablePostProcess(m);const _=new Mi("BilateralBlurY","fluidRenderingStandardBlur",["filterSize","blurDir"],null,1,null,1,o,!0,null,t,void 0,void 0,void 0,i,this._shaderLanguage,async()=>{this.shaderLanguage===1?await Promise.resolve().then(()=>BMe):await Promise.resolve().then(()=>_Me)});_.samples=this._samples,_.onApplyObservable.add(h=>{h.setInt("filterSize",this.blurFilterSize),h.setFloat2("blurDir",0,1/this._blurTextureSizeY),this._postProcessRunningIndex++}),_.onSizeChangedObservable.add(()=>{_._textures.forEach(h=>{h.texture.wrapU=be.CLAMP_ADDRESSMODE,h.texture.wrapV=be.CLAMP_ADDRESSMODE})}),this._fixReusablePostProcess(_),m.autoClear=!1,_.autoClear=!1;const d=[];for(let h=0;h<this._blurNumIterations*2;++h)d[h]=h&1?_:m;return[u,p,d]}else{const m=["maxFilterSize","blurDir","projectedParticleConstant","depthThreshold"],_=new Mi("BilateralBlurX","fluidRenderingBilateralBlur",m,null,1,null,1,o,!0,null,t,void 0,void 0,void 0,i,this._shaderLanguage,async()=>{this.shaderLanguage===1?await Promise.resolve().then(()=>DMe):await Promise.resolve().then(()=>pMe)});_.samples=this._samples,_.externalTextureSamplerBinding=!0,_.onApplyObservable.add(x=>{this._postProcessRunningIndex===0?x.setTexture("textureSampler",e):x._bindTexture("textureSampler",_.inputTexture.texture),x.setInt("maxFilterSize",this.blurMaxFilterSize),x.setFloat2("blurDir",1/this._blurTextureSizeX,0),x.setFloat("projectedParticleConstant",this._getProjectedParticleConstant()),x.setFloat("depthThreshold",this._getDepthThreshold()),this._postProcessRunningIndex++}),_.onSizeChangedObservable.add(()=>{_._textures.forEach(x=>{x.texture.wrapU=be.CLAMP_ADDRESSMODE,x.texture.wrapV=be.CLAMP_ADDRESSMODE})}),this._fixReusablePostProcess(_);const d=new Mi("BilateralBlurY","fluidRenderingBilateralBlur",m,null,1,null,1,o,!0,null,t,void 0,void 0,void 0,i,this._shaderLanguage,async()=>{this.shaderLanguage===1?await Promise.resolve().then(()=>DMe):await Promise.resolve().then(()=>pMe)});d.samples=this._samples,d.onApplyObservable.add(x=>{x.setInt("maxFilterSize",this.blurMaxFilterSize),x.setFloat2("blurDir",0,1/this._blurTextureSizeY),x.setFloat("projectedParticleConstant",this._getProjectedParticleConstant()),x.setFloat("depthThreshold",this._getDepthThreshold()),this._postProcessRunningIndex++}),d.onSizeChangedObservable.add(()=>{d._textures.forEach(x=>{x.texture.wrapU=be.CLAMP_ADDRESSMODE,x.texture.wrapV=be.CLAMP_ADDRESSMODE})}),this._fixReusablePostProcess(d),_.autoClear=!1,d.autoClear=!1;const h=[];for(let x=0;x<this._blurNumIterations*2;++x)h[x]=x&1?d:_;return[u,p,h]}}_fixReusablePostProcess(e){e.isReusable()&&(e.onActivateObservable.add(()=>{e._currentRenderTextureInd=(e._currentRenderTextureInd+1)%2}),e.onApplyObservable.add(()=>{e._currentRenderTextureInd=(e._currentRenderTextureInd+1)%2}))}_getProjectedParticleConstant(){var e;return this.blurFilterSize*this.particleSize*.05*(this._height/2)/Math.tan((((e=this._camera)==null?void 0:e.fov)??45*Math.PI/180)/2)}_getDepthThreshold(){return this.particleSize/2*this.blurDepthScale}dispose(){var e,t,i,s;this.onDisposeObservable.hasObservers()&&this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),(e=this._rt)==null||e.dispose(),this._rt=null,(t=this._texture)==null||t.dispose(),this._texture=null,(i=this._rtBlur)==null||i.dispose(),this._rtBlur=null,(s=this._textureBlurred)==null||s.dispose(),this._textureBlurred=null,this._blurPostProcesses&&(this._blurPostProcesses[0].dispose(),this._blurPostProcesses[1].dispose()),this._blurPostProcesses=null}}var Goe;(function(a){a[a.DepthTexture=0]="DepthTexture",a[a.DepthBlurredTexture=1]="DepthBlurredTexture",a[a.ThicknessTexture=2]="ThicknessTexture",a[a.ThicknessBlurredTexture=3]="ThicknessBlurredTexture",a[a.DiffuseTexture=4]="DiffuseTexture",a[a.Normals=5]="Normals",a[a.DiffuseRendering=6]="DiffuseRendering"})(Goe||(Goe={}));class Woe{get needInitialization(){return this._needInitialization}get generateDiffuseTexture(){return this._generateDiffuseTexture}set generateDiffuseTexture(e){this._generateDiffuseTexture!==e&&(this._generateDiffuseTexture=e,this._needInitialization=!0)}get debugFeature(){return this._debugFeature}set debugFeature(e){this._debugFeature!==e&&(this._needInitialization=!0,this._debugFeature=e)}get debug(){return this._debug}set debug(e){this._debug!==e&&(this._debug=e,this._needInitialization=!0)}get environmentMap(){return this._environmentMap}set environmentMap(e){this._environmentMap!==e&&(this._needInitialization=!0,this._environmentMap=e)}get enableBlurDepth(){return this._enableBlurDepth}set enableBlurDepth(e){this._enableBlurDepth!==e&&(this._enableBlurDepth=e,this._needInitialization=!0)}get blurDepthSizeDivisor(){return this._blurDepthSizeDivisor}set blurDepthSizeDivisor(e){this._blurDepthSizeDivisor!==e&&(this._blurDepthSizeDivisor=e,this._needInitialization=!0)}get blurDepthFilterSize(){return this._blurDepthFilterSize}set blurDepthFilterSize(e){this._blurDepthFilterSize!==e&&(this._blurDepthFilterSize=e,this._setBlurParameters())}get blurDepthNumIterations(){return this._blurDepthNumIterations}set blurDepthNumIterations(e){this._blurDepthNumIterations!==e&&(this._blurDepthNumIterations=e,this._setBlurParameters())}get blurDepthMaxFilterSize(){return this._blurDepthMaxFilterSize}set blurDepthMaxFilterSize(e){this._blurDepthMaxFilterSize!==e&&(this._blurDepthMaxFilterSize=e,this._setBlurParameters())}get blurDepthDepthScale(){return this._blurDepthDepthScale}set blurDepthDepthScale(e){this._blurDepthDepthScale!==e&&(this._blurDepthDepthScale=e,this._setBlurParameters())}get enableBlurThickness(){return this._enableBlurThickness}set enableBlurThickness(e){this._enableBlurThickness!==e&&(this._enableBlurThickness=e,this._needInitialization=!0)}get blurThicknessSizeDivisor(){return this._blurThicknessSizeDivisor}set blurThicknessSizeDivisor(e){this._blurThicknessSizeDivisor!==e&&(this._blurThicknessSizeDivisor=e,this._needInitialization=!0)}get blurThicknessFilterSize(){return this._blurThicknessFilterSize}set blurThicknessFilterSize(e){this._blurThicknessFilterSize!==e&&(this._blurThicknessFilterSize=e,this._setBlurParameters())}get blurThicknessNumIterations(){return this._blurThicknessNumIterations}set blurThicknessNumIterations(e){this._blurThicknessNumIterations!==e&&(this._blurThicknessNumIterations=e,this._setBlurParameters())}get useFixedThickness(){return this._useFixedThickness}set useFixedThickness(e){this._useFixedThickness!==e&&(this._useFixedThickness=e,this._needInitialization=!0)}get useVelocity(){return this._useVelocity}set useVelocity(e){this._useVelocity!==e&&(this._useVelocity=e,this._needInitialization=!0,this._onUseVelocityChanged.notifyObservers(this))}get depthMapSize(){return this._depthMapSize}set depthMapSize(e){this._depthMapSize!==e&&(this._depthMapSize=e,this._needInitialization=!0)}get thicknessMapSize(){return this._thicknessMapSize}set thicknessMapSize(e){this._thicknessMapSize!==e&&(this._thicknessMapSize=e,this._needInitialization=!0)}get diffuseMapSize(){return this._diffuseMapSize}set diffuseMapSize(e){this._diffuseMapSize!==e&&(this._diffuseMapSize=e,this._needInitialization=!0)}get samples(){return this._samples}set samples(e){this._samples!==e&&(this._samples=e,this._needInitialization=!0)}get compositeMode(){return this._compositeMode}set compositeMode(e){this._compositeMode!==e&&(this._compositeMode=e,this._needInitialization=!0)}get camera(){return this._camera}get shaderLanguage(){return this._shaderLanguage}constructor(e,t,i){this._generateDiffuseTexture=!1,this.fluidColor=new Pe(.085,.6375,.765),this.density=2,this.refractionStrength=.1,this.fresnelClamp=1,this.specularPower=250,this.minimumThickness=0,this.dirLight=new P(-2,-1,1).normalize(),this._debugFeature=1,this._debug=!1,this._enableBlurDepth=!0,this._blurDepthSizeDivisor=1,this._blurDepthFilterSize=7,this._blurDepthNumIterations=3,this._blurDepthMaxFilterSize=100,this._blurDepthDepthScale=10,this._enableBlurThickness=!0,this._blurThicknessSizeDivisor=1,this._blurThicknessFilterSize=5,this._blurThicknessNumIterations=1,this._useFixedThickness=!1,this._onUseVelocityChanged=new xe,this._useVelocity=!1,this._depthMapSize=null,this._thicknessMapSize=null,this._diffuseMapSize=null,this._samples=1,this._compositeMode=!1,this._shaderLanguage=0,this._scene=e,this._engine=e.getEngine(),this._camera=t??e.activeCamera,this._needInitialization=!0,this._bgDepthTexture=null,this._invProjectionMatrix=new me,this._depthClearColor=new St(1e6,1e6,1e6,1),this._thicknessClearColor=new St(0,0,0,1),this._depthRenderTarget=null,this._diffuseRenderTarget=null,this._thicknessRenderTarget=null,this._renderPostProcess=null,this._shaderLanguage=i??(this._engine.isWebGPU?1:0)}_initialize(){this.dispose(),this._needInitialization=!1;const e=this._depthMapSize??this._engine.getRenderWidth(),t=this._depthMapSize!==null?Math.round(this._depthMapSize*this._engine.getRenderHeight()/this._engine.getRenderWidth()):this._engine.getRenderHeight();if(this._depthRenderTarget=new Voe("Depth",this._scene,e,t,e,t,1,7,1,7,!1,this._camera,!0,this._samples,this._shaderLanguage),this._initializeRenderTarget(this._depthRenderTarget),this.generateDiffuseTexture){const r=this._diffuseMapSize??this._engine.getRenderWidth(),n=this._diffuseMapSize!==null?Math.round(this._diffuseMapSize*this._engine.getRenderHeight()/this._engine.getRenderWidth()):this._engine.getRenderHeight();this._diffuseRenderTarget=new Voe("Diffuse",this._scene,r,n,0,0,0,5,0,5,!0,this._camera,!0,this._samples,this._shaderLanguage),this._initializeRenderTarget(this._diffuseRenderTarget)}const i=this._thicknessMapSize??this._engine.getRenderWidth(),s=this._thicknessMapSize!==null?Math.round(this._thicknessMapSize*this._engine.getRenderHeight()/this._engine.getRenderWidth()):this._engine.getRenderHeight();this._useFixedThickness||(this._thicknessRenderTarget=new Voe("Thickness",this._scene,i,s,i,s,2,6,2,6,!0,this._camera,!1,this._samples,this._shaderLanguage),this._initializeRenderTarget(this._thicknessRenderTarget)),this._createLiquidRenderingPostProcess()}_setBlurParameters(e=null){(e===null||e===this._depthRenderTarget)&&this._setBlurDepthParameters(),(e===null||e===this._thicknessRenderTarget)&&this._setBlurThicknessParameters()}_setBlurDepthParameters(){this._depthRenderTarget&&(this._depthRenderTarget.blurFilterSize=this.blurDepthFilterSize,this._depthRenderTarget.blurMaxFilterSize=this.blurDepthMaxFilterSize,this._depthRenderTarget.blurNumIterations=this.blurDepthNumIterations,this._depthRenderTarget.blurDepthScale=this.blurDepthDepthScale)}_setBlurThicknessParameters(){this._thicknessRenderTarget&&(this._thicknessRenderTarget.blurFilterSize=this.blurThicknessFilterSize,this._thicknessRenderTarget.blurNumIterations=this.blurThicknessNumIterations)}_initializeRenderTarget(e){e!==this._diffuseRenderTarget&&(e.enableBlur=e===this._depthRenderTarget?this.enableBlurDepth:this.enableBlurThickness,e.blurSizeDivisor=e===this._depthRenderTarget?this.blurDepthSizeDivisor:this.blurThicknessSizeDivisor),this._setBlurParameters(e),e.initialize()}_createLiquidRenderingPostProcess(){const e=this._scene.getEngine(),t=["viewMatrix","projectionMatrix","invProjectionMatrix","texelSize","dirLight","cameraFar","density","refractionStrength","fresnelClamp","specularPower"],i=["depthSampler"],s=[];if(this.dispose(!0),!this._camera)return;const r=this._depthRenderTarget.enableBlur?this._depthRenderTarget.textureBlur:this._depthRenderTarget.texture,n=new Ue(1/r.getSize().width,1/r.getSize().height);this._scene.useRightHandedSystem&&s.push("#define FLUIDRENDERING_RHS"),this._environmentMap!==null&&(this._environmentMap??this._scene.environmentTexture)&&(i.push("reflectionSampler"),s.push("#define FLUIDRENDERING_ENVIRONMENT")),this._diffuseRenderTarget?(i.push("diffuseSampler"),s.push("#define FLUIDRENDERING_DIFFUSETEXTURE")):t.push("diffuseColor"),this._useVelocity&&(i.push("velocitySampler"),s.push("#define FLUIDRENDERING_VELOCITY")),this._useFixedThickness?(t.push("thickness"),i.push("bgDepthSampler"),s.push("#define FLUIDRENDERING_FIXED_THICKNESS")):(t.push("minimumThickness"),i.push("thicknessSampler")),this._compositeMode&&s.push("#define FLUIDRENDERING_COMPOSITE_MODE"),this._debug&&(s.push("#define FLUIDRENDERING_DEBUG"),this._debugFeature===5?s.push("#define FLUIDRENDERING_DEBUG_SHOWNORMAL"):this._debugFeature===6?s.push("#define FLUIDRENDERING_DEBUG_DIFFUSERENDERING"):(s.push("#define FLUIDRENDERING_DEBUG_TEXTURE"),i.push("debugSampler"),(this._debugFeature===0||this._debugFeature===1)&&s.push("#define FLUIDRENDERING_DEBUG_DEPTH"))),this._renderPostProcess=new Mi("FluidRendering","fluidRenderingRender",t,i,1,null,2,e,!1,null,0,void 0,void 0,!0,void 0,this._shaderLanguage,async()=>{this._shaderLanguage===1?await Promise.resolve().then(()=>UZe):await Promise.resolve().then(()=>DZe)}),this._renderPostProcess.updateEffect(s.join(`
`)),this._renderPostProcess.samples=this._samples;const o=e,l=o.setTextureSampler;this._renderPostProcess.onApplyObservable.add(c=>{var u,f,p,m,_,d,h,x,A,S;if(this._invProjectionMatrix.copyFrom(this._scene.getProjectionMatrix()),this._invProjectionMatrix.invert(),l&&l.call(o,"textureSamplerSampler",this._renderPostProcess.inputTexture.texture),this._depthRenderTarget.enableBlur?(c.setTexture("depthSampler",this._depthRenderTarget.textureBlur),l&&l.call(o,"depthSamplerSampler",((f=this._depthRenderTarget.textureBlur)==null?void 0:f.getInternalTexture())??null)):(c.setTexture("depthSampler",this._depthRenderTarget.texture),l&&l.call(o,"depthSamplerSampler",((u=this._depthRenderTarget.texture)==null?void 0:u.getInternalTexture())??null)),this._diffuseRenderTarget?this._diffuseRenderTarget.enableBlur?(c.setTexture("diffuseSampler",this._diffuseRenderTarget.textureBlur),l&&l.call(o,"diffuseSamplerSampler",((m=this._diffuseRenderTarget.textureBlur)==null?void 0:m.getInternalTexture())??null)):(c.setTexture("diffuseSampler",this._diffuseRenderTarget.texture),l&&l.call(o,"diffuseSamplerSampler",((p=this._diffuseRenderTarget.texture)==null?void 0:p.getInternalTexture())??null)):c.setColor3("diffuseColor",this.fluidColor),this._useFixedThickness?(c.setFloat("thickness",this.minimumThickness),c._bindTexture("bgDepthSampler",this._bgDepthTexture),l&&l.call(o,"bgDepthSamplerSampler",this._bgDepthTexture??null)):(this._thicknessRenderTarget.enableBlur?(c.setTexture("thicknessSampler",this._thicknessRenderTarget.textureBlur),l&&l.call(o,"thicknessSamplerSampler",((d=this._thicknessRenderTarget.textureBlur)==null?void 0:d.getInternalTexture())??null)):(c.setTexture("thicknessSampler",this._thicknessRenderTarget.texture),l&&l.call(o,"thicknessSamplerSampler",((_=this._thicknessRenderTarget.texture)==null?void 0:_.getInternalTexture())??null)),c.setFloat("minimumThickness",this.minimumThickness)),this._environmentMap!==null){const E=this._environmentMap??this._scene.environmentTexture;E&&(c.setTexture("reflectionSampler",E),l&&l.call(o,"reflectionSamplerSampler",(E==null?void 0:E.getInternalTexture())??null))}if(c.setMatrix("viewMatrix",this._scene.getViewMatrix()),c.setMatrix("invProjectionMatrix",this._invProjectionMatrix),c.setMatrix("projectionMatrix",this._scene.getProjectionMatrix()),c.setVector2("texelSize",n),c.setFloat("density",this.density),c.setFloat("refractionStrength",this.refractionStrength),c.setFloat("fresnelClamp",this.fresnelClamp),c.setFloat("specularPower",this.specularPower),c.setVector3("dirLight",this.dirLight),c.setFloat("cameraFar",this._camera.maxZ),this._debug){let E=null;switch(this._debugFeature){case 0:E=this._depthRenderTarget.texture;break;case 1:E=this._depthRenderTarget.enableBlur?this._depthRenderTarget.textureBlur:this._depthRenderTarget.texture;break;case 2:E=((h=this._thicknessRenderTarget)==null?void 0:h.texture)??null;break;case 3:E=(x=this._thicknessRenderTarget)!=null&&x.enableBlur?((A=this._thicknessRenderTarget)==null?void 0:A.textureBlur)??null:((S=this._thicknessRenderTarget)==null?void 0:S.texture)??null;break;case 4:this._diffuseRenderTarget&&(E=this._diffuseRenderTarget.texture);break}this._debugFeature!==5&&(c.setTexture("debugSampler",E),l&&l.call(o,"debugSamplerSampler",(E==null?void 0:E.getInternalTexture())??null))}})}_clearTargets(){var e,t,i;(e=this._depthRenderTarget)!=null&&e.renderTarget&&(this._engine.bindFramebuffer(this._depthRenderTarget.renderTarget),this._engine.clear(this._depthClearColor,!0,!0,!1),this._engine.unBindFramebuffer(this._depthRenderTarget.renderTarget)),(t=this._diffuseRenderTarget)!=null&&t.renderTarget&&(this._engine.bindFramebuffer(this._diffuseRenderTarget.renderTarget),this._engine.clear(this._thicknessClearColor,!0,!0,!1),this._engine.unBindFramebuffer(this._diffuseRenderTarget.renderTarget)),(i=this._thicknessRenderTarget)!=null&&i.renderTarget&&(this._engine.bindFramebuffer(this._thicknessRenderTarget.renderTarget),this._engine.clear(this._thicknessClearColor,!0,!1,!1),this._engine.unBindFramebuffer(this._thicknessRenderTarget.renderTarget))}_render(e){var i,s,r,n,o,l;if(this._needInitialization||!e.isReady())return;const t=this._engine._currentRenderTarget;this._engine.setState(!1,void 0,void 0,void 0,!0),this._engine.setDepthBuffer(!0),this._engine.setDepthWrite(!0),this._engine.setAlphaMode(0),(i=this._depthRenderTarget)!=null&&i.renderTarget&&(this._engine.bindFramebuffer(this._depthRenderTarget.renderTarget),e.renderDepthTexture(),this._engine.unbindInstanceAttributes(),this._engine.unBindFramebuffer(this._depthRenderTarget.renderTarget)),(s=this._diffuseRenderTarget)!=null&&s.renderTarget&&(this._engine.bindFramebuffer(this._diffuseRenderTarget.renderTarget),e.renderDiffuseTexture(),this._engine.unbindInstanceAttributes(),this._engine.unBindFramebuffer(this._diffuseRenderTarget.renderTarget)),(r=this._thicknessRenderTarget)!=null&&r.renderTarget&&(this._engine.bindFramebuffer(this._thicknessRenderTarget.renderTarget),e.renderThicknessTexture(),this._engine.unbindInstanceAttributes(),this._engine.unBindFramebuffer(this._thicknessRenderTarget.renderTarget)),(n=this._depthRenderTarget)==null||n.applyBlurPostProcesses(),(o=this._diffuseRenderTarget)==null||o.applyBlurPostProcesses(),(l=this._thicknessRenderTarget)==null||l.applyBlurPostProcesses(),t&&this._engine.bindFramebuffer(t)}dispose(e=!1){var t,i,s,r;e||((t=this._depthRenderTarget)==null||t.dispose(),this._depthRenderTarget=null,(i=this._diffuseRenderTarget)==null||i.dispose(),this._diffuseRenderTarget=null,(s=this._thicknessRenderTarget)==null||s.dispose(),this._thicknessRenderTarget=null),this._renderPostProcess&&this._camera&&this._camera.detachPostProcess(this._renderPostProcess),(r=this._renderPostProcess)==null||r.dispose(),this._renderPostProcess=null,this._onUseVelocityChanged.clear(),this._needInitialization=!1}}class $ye extends joe{getClassName(){return"FluidRenderingObjectCustomParticles"}get vertexBuffers(){return this._vertexBuffers}constructor(e,t,i,s){super(e,s),this._numParticles=i,this._diffuseEffectWrapper=null,this._vertexBuffers={},this.addBuffers(t)}addBuffers(e){for(const t in e){let i,s=!0;switch(t){case"velocity":i=3;break;case"offset":s=!1;break}this._vertexBuffers[t]=new q(this._engine,e[t],t,!0,!1,i,s)}}_createEffects(){super._createEffects();const e=["view","projection","size"],t=["position","offset","color"];this._diffuseEffectWrapper=new Qr({engine:this._engine,useShaderStore:!0,vertexShader:"fluidRenderingParticleDiffuse",fragmentShader:"fluidRenderingParticleDiffuse",attributeNames:t,uniformNames:e,samplerNames:[],shaderLanguage:this._shaderLanguage,extraInitializationsAsync:async()=>{this._shaderLanguage===1?await Promise.resolve().then(()=>kZe):await Promise.resolve().then(()=>RZe)}})}isReady(){var e;return this._vertexBuffers.offset||(this._vertexBuffers.offset=new q(this._engine,[0,0,1,0,0,1,1,1],"offset",!1,!1,2)),super.isReady()&&(((e=this._diffuseEffectWrapper)==null?void 0:e.effect.isReady())??!1)}get numParticles(){return this._numParticles}setNumParticles(e){this._numParticles=e}renderDiffuseTexture(){const e=this.numParticles;if(!this._diffuseEffectWrapper||e===0)return;const t=this._diffuseEffectWrapper.drawWrapper,i=t.effect;this._engine.enableEffect(t),this._engine.bindBuffers(this.vertexBuffers,this.indexBuffer,i),i.setMatrix("view",this._scene.getViewMatrix()),i.setMatrix("projection",this._scene.getProjectionMatrix()),this._particleSize!==null&&i.setFloat2("size",this._particleSize,this._particleSize),this.useInstancing?this._engine.drawArraysType(7,0,4,e):this._engine.drawElementsType(0,0,e)}dispose(){var e;super.dispose(),(e=this._diffuseEffectWrapper)==null||e.dispose();for(const t in this._vertexBuffers)this._vertexBuffers[t].dispose();this._vertexBuffers={}}}class yZe{get depthRTWrapper(){return this._depthRTWrapper}constructor(e,t,i,s=1){this._engine=e,this._copyTextureToTexture=new $ee(e,!0),this._depthRTWrapper=this._engine.createRenderTargetTexture({width:t,height:i},{generateMipMaps:!1,type:0,format:6,samplingMode:1,generateDepthBuffer:!0,generateStencilBuffer:!1,samples:s,noColorAttachment:!0,label:"FluidRenderingDepthTextureCopyRTT"});const r=this._depthRTWrapper.createDepthStencilTexture(0,!1,!1,1,void 0,"FluidRenderingDepthTextureCopyRTTDepthStencil");r.label=`FluidDepthTextureCopy${t}x${i}x${s}`}copy(e){return this._copyTextureToTexture.copy(e,this._depthRTWrapper)}dispose(){this._depthRTWrapper.dispose(),this._copyTextureToTexture.dispose()}}Object.defineProperty(ui.prototype,"fluidRenderer",{get:function(){return this._fluidRenderer},set:function(a){this._fluidRenderer=a},enumerable:!0,configurable:!0}),ui.prototype.enableFluidRenderer=function(){return this._fluidRenderer?this._fluidRenderer:(this._fluidRenderer=new wY(this),this._fluidRenderer)},ui.prototype.disableFluidRenderer=function(){var a;(a=this._fluidRenderer)==null||a.dispose(),this._fluidRenderer=null};function MZe(a){return!!a.particleSystem}function EZe(a){return!!a.addBuffers}class eMe{constructor(e){this.name=jt.NAME_FLUIDRENDERER,this.scene=e}register(){this.scene._gatherActiveCameraRenderTargetsStage.registerStep(jt.STEP_GATHERACTIVECAMERARENDERTARGETS_FLUIDRENDERER,this,this._gatherActiveCameraRenderTargets),this.scene._afterCameraDrawStage.registerStep(jt.STEP_AFTERCAMERADRAW_FLUIDRENDERER,this,this._afterCameraDraw)}_gatherActiveCameraRenderTargets(e){var t;(t=this.scene.fluidRenderer)==null||t._prepareRendering()}_afterCameraDraw(e){var t;(t=this.scene.fluidRenderer)==null||t._render(e)}rebuild(){const e=this.scene.fluidRenderer;if(!e)return;const t=new Set;for(let i=0;i<e.renderObjects.length;++i){const s=e.renderObjects[i].object;if(EZe(s)){const r=s.vertexBuffers;for(const n in r)t.add(r[n].getWrapperBuffer())}}t.forEach(i=>{i._rebuild()})}dispose(){this.scene.disableFluidRenderer()}}class wY{static _SceneComponentInitialization(e){let t=e._getComponent(jt.NAME_FLUIDRENDERER);t||(t=new eMe(e),e._addComponent(t))}get shaderLanguage(){return this._shaderLanguage}constructor(e){this._shaderLanguage=0,this._scene=e,this._engine=e.getEngine(),this._onEngineResizeObserver=null,this.renderObjects=[],this.targetRenderers=[],this._cameras=new Map,wY._SceneComponentInitialization(this._scene),this._onEngineResizeObserver=this._engine.onResizeObservable.add(()=>{this._initialize()}),this._engine.isWebGPU&&(this._shaderLanguage=1)}recreate(){this._sortRenderingObjects(),this._initialize()}getRenderObjectFromParticleSystem(e){const t=this._getParticleSystemIndex(e);return t!==-1?this.renderObjects[t]:null}addParticleSystem(e,t,i,s){const r=new Jye(this._scene,e,this._shaderLanguage);r.onParticleSizeChanged.add(()=>this._setParticleSizeForRenderTargets()),i||(i=new Woe(this._scene,s,this._shaderLanguage),this.targetRenderers.push(i)),i._onUseVelocityChanged.hasObservers()||i._onUseVelocityChanged.add(()=>this._setUseVelocityForRenderObject()),t!==void 0&&(i.generateDiffuseTexture=t);const n={object:r,targetRenderer:i};return this.renderObjects.push(n),this._sortRenderingObjects(),this._setParticleSizeForRenderTargets(),n}addCustomParticles(e,t,i,s,r){const n=new $ye(this._scene,e,t,this._shaderLanguage);n.onParticleSizeChanged.add(()=>this._setParticleSizeForRenderTargets()),s||(s=new Woe(this._scene,r,this._shaderLanguage),this.targetRenderers.push(s)),s._onUseVelocityChanged.hasObservers()||s._onUseVelocityChanged.add(()=>this._setUseVelocityForRenderObject()),i!==void 0&&(s.generateDiffuseTexture=i);const o={object:n,targetRenderer:s};return this.renderObjects.push(o),this._sortRenderingObjects(),this._setParticleSizeForRenderTargets(),o}removeRenderObject(e,t=!0){const i=this.renderObjects.indexOf(e);return i===-1?!1:(e.object.dispose(),this.renderObjects.splice(i,1),t&&this._removeUnusedTargetRenderers()?this._initialize():this._setParticleSizeForRenderTargets(),!0)}_sortRenderingObjects(){this.renderObjects.sort((e,t)=>e.object.priority<t.object.priority?-1:e.object.priority>t.object.priority?1:0)}_removeUnusedTargetRenderers(){const e={};for(let s=0;s<this.renderObjects.length;++s){const r=this.renderObjects[s].targetRenderer;e[this.targetRenderers.indexOf(r)]=!0}let t=!1;const i=[];for(let s=0;s<this.targetRenderers.length;++s)e[s]?i.push(this.targetRenderers[s]):(this.targetRenderers[s].dispose(),t=!0);return t&&(this.targetRenderers.length=0,this.targetRenderers.push(...i)),t}_getParticleSystemIndex(e){for(let t=0;t<this.renderObjects.length;++t){const i=this.renderObjects[t].object;if(MZe(i)&&i.particleSystem===e)return t}return-1}_initialize(){for(let i=0;i<this.targetRenderers.length;++i)this.targetRenderers[i].dispose();const e=new Map;for(let i=0;i<this.targetRenderers.length;++i){const s=this.targetRenderers[i];if(s._initialize(),s.camera&&s._renderPostProcess){let r=e.get(s.camera);r||(r=[[],{}],e.set(s.camera,r)),r[0].push(s),s.camera.attachPostProcess(s._renderPostProcess,i)}}let t=e.keys();for(let i=t.next();i.done!==!0;i=t.next()){const s=i.value,r=e.get(s),n=s._getFirstPostProcess();if(!n)continue;const[o,l]=r;n.onSizeChangedObservable.add(()=>{var c;n.inputTexture.depthStencilTexture||n.inputTexture.createDepthStencilTexture(0,!0,this._engine.isStencilEnable,o[0].samples,this._engine.isStencilEnable?13:14,`PostProcessRTTDepthStencil-${n.name}`);for(const u of o){const f=(c=u._thicknessRenderTarget)==null?void 0:c.renderTarget,p=f==null?void 0:f.texture;if(f&&p){const m=p.width+"_"+p.height;let _=l[m];_||(_=l[m]=new yZe(this._engine,p.width,p.height)),_.depthRTWrapper.shareDepth(f)}}})}t=this._cameras.keys();for(let i=t.next();i.done!==!0;i=t.next()){const s=i.value,n=this._cameras.get(s)[1],o=e.get(s);if(o)for(const l in n)o[1][l]||n[l].dispose();else for(const l in n)n[l].dispose()}this._cameras.clear(),this._cameras=e,this._setParticleSizeForRenderTargets()}_setParticleSizeForRenderTargets(){const e=new Map;for(let t=0;t<this.renderObjects.length;++t){const i=this.renderObjects[t];let s=e.get(i.targetRenderer);s===void 0&&(s=0),e.set(i.targetRenderer,Math.max(s,i.object.particleSize))}e.forEach((t,i)=>{i._depthRenderTarget&&(i._depthRenderTarget.particleSize=t)})}_setUseVelocityForRenderObject(){for(const e of this.renderObjects)e.object.useVelocity=e.targetRenderer.useVelocity}_prepareRendering(){for(const e of this.targetRenderers)if(e.needInitialization){this._initialize();return}}_render(e){var i;for(let s=0;s<this.targetRenderers.length;++s)(!e||this.targetRenderers[s].camera===e)&&this.targetRenderers[s]._clearTargets();const t=this._cameras.keys();for(let s=t.next();s.done!==!0;s=t.next()){const r=s.value,n=this._cameras.get(r);if(e&&r!==e)continue;const o=r._getFirstPostProcess();if(!o)continue;const l=(i=o.inputTexture)==null?void 0:i.depthStencilTexture;if(l){const[c,u]=n;for(const f of c)f._bgDepthTexture=l;for(const f in u)u[f].copy(l)}}for(let s=0;s<this.renderObjects.length;++s){const r=this.renderObjects[s];(!e||r.targetRenderer.camera===e)&&r.targetRenderer._render(r.object)}}dispose(){this._engine.onResizeObservable.remove(this._onEngineResizeObserver),this._onEngineResizeObserver=null;for(let e=0;e<this.renderObjects.length;++e)this.renderObjects[e].object.dispose();for(let e=0;e<this.targetRenderers.length;++e)this.targetRenderers[e].dispose();this._cameras.forEach(e=>{const t=e[1];for(const i in t)t[i].dispose()}),this.renderObjects=[],this.targetRenderers=[],this._cameras.clear()}}const Hoe="fluidRenderingParticleDepthVertexShader",tMe=`attribute vec3 position;attribute vec2 offset;uniform mat4 view;uniform mat4 projection;uniform vec2 size;varying vec2 uv;varying vec3 viewPos;varying float sphereRadius;
#ifdef FLUIDRENDERING_VELOCITY
attribute vec3 velocity;varying float velocityNorm;
#endif
void main(void) {vec3 cornerPos;cornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;cornerPos.z=0.0;viewPos=(view*vec4(position,1.0)).xyz;gl_Position=projection*vec4(viewPos+cornerPos,1.0);uv=offset;sphereRadius=size.x/2.0;
#ifdef FLUIDRENDERING_VELOCITY
velocityNorm=length(velocity);
#endif
}
`;H.ShadersStore[Hoe]||(H.ShadersStore[Hoe]=tMe);const iMe={name:Hoe,shader:tMe},TZe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingParticleDepthVertexShader:iMe},Symbol.toStringTag,{value:"Module"})),Yoe="fluidRenderingParticleDepthPixelShader",sMe=`uniform mat4 projection;varying vec2 uv;varying vec3 viewPos;varying float sphereRadius;
#ifdef FLUIDRENDERING_VELOCITY
varying float velocityNorm;
#endif
void main(void) {vec3 normal;normal.xy=uv*2.0-1.0;float r2=dot(normal.xy,normal.xy);if (r2>1.0) discard;normal.z=sqrt(1.0-r2);
#ifndef FLUIDRENDERING_RHS
normal.z=-normal.z;
#endif
vec4 realViewPos=vec4(viewPos+normal*sphereRadius,1.0);vec4 clipSpacePos=projection*realViewPos;
#ifdef WEBGPU
gl_FragDepth=clipSpacePos.z/clipSpacePos.w;
#else
gl_FragDepth=(clipSpacePos.z/clipSpacePos.w)*0.5+0.5;
#endif
#ifdef FLUIDRENDERING_RHS
realViewPos.z=-realViewPos.z;
#endif
#ifdef FLUIDRENDERING_VELOCITY
glFragColor=vec4(realViewPos.z,velocityNorm,0.,1.);
#else
glFragColor=vec4(realViewPos.z,0.,0.,1.);
#endif
}
`;H.ShadersStore[Yoe]||(H.ShadersStore[Yoe]=sMe);const rMe={name:Yoe,shader:sMe},LZe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingParticleDepthPixelShader:rMe},Symbol.toStringTag,{value:"Module"})),Xoe="fluidRenderingParticleThicknessVertexShader",nMe=`attribute vec3 position;attribute vec2 offset;uniform mat4 view;uniform mat4 projection;uniform vec2 size;varying vec2 uv;void main(void) {vec3 cornerPos;cornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;cornerPos.z=0.0;vec3 viewPos=(view*vec4(position,1.0)).xyz+cornerPos;gl_Position=projection*vec4(viewPos,1.0);uv=offset;}
`;H.ShadersStore[Xoe]||(H.ShadersStore[Xoe]=nMe);const aMe={name:Xoe,shader:nMe},IZe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingParticleThicknessVertexShader:aMe},Symbol.toStringTag,{value:"Module"})),Zoe="fluidRenderingParticleThicknessPixelShader",oMe=`uniform float particleAlpha;varying vec2 uv;void main(void) {vec3 normal;normal.xy=uv*2.0-1.0;float r2=dot(normal.xy,normal.xy);if (r2>1.0) discard;float thickness=sqrt(1.0-r2);glFragColor=vec4(vec3(particleAlpha*thickness),1.0);}
`;H.ShadersStore[Zoe]||(H.ShadersStore[Zoe]=oMe);const lMe={name:Zoe,shader:oMe},PZe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingParticleThicknessPixelShader:lMe},Symbol.toStringTag,{value:"Module"})),Koe="fluidRenderingParticleDiffuseVertexShader",cMe=`attribute vec3 position;attribute vec2 offset;attribute vec4 color;uniform mat4 view;uniform mat4 projection;uniform vec2 size;varying vec2 uv;varying vec3 diffuseColor;void main(void) {vec3 cornerPos;cornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;cornerPos.z=0.0;vec3 viewPos=(view*vec4(position,1.0)).xyz+cornerPos;gl_Position=projection*vec4(viewPos,1.0);uv=offset;diffuseColor=color.rgb;}
`;H.ShadersStore[Koe]||(H.ShadersStore[Koe]=cMe);const OZe={name:Koe,shader:cMe},qoe="fluidRenderingParticleDiffusePixelShader",uMe=`uniform float particleAlpha;varying vec2 uv;varying vec3 diffuseColor;void main(void) {vec3 normal;normal.xy=uv*2.0-1.0;float r2=dot(normal.xy,normal.xy);if (r2>1.0) discard;glFragColor=vec4(diffuseColor,1.0);}
`;H.ShadersStore[qoe]||(H.ShadersStore[qoe]=uMe);const hMe={name:qoe,shader:uMe},RZe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingParticleDiffusePixelShader:hMe},Symbol.toStringTag,{value:"Module"})),Qoe="fluidRenderingBilateralBlurPixelShader",dMe=`uniform sampler2D textureSampler;uniform int maxFilterSize;uniform vec2 blurDir;uniform float projectedParticleConstant;uniform float depthThreshold;varying vec2 vUV;void main(void) {float depth=textureLod(textureSampler,vUV,0.).x;if (depth>=1e6 || depth<=0.) {glFragColor=vec4(vec3(depth),1.);return;}
int filterSize=min(maxFilterSize,int(ceil(projectedParticleConstant/depth)));float sigma=float(filterSize)/3.0;float two_sigma2=2.0*sigma*sigma;float sigmaDepth=depthThreshold/3.0;float two_sigmaDepth2=2.0*sigmaDepth*sigmaDepth;float sum=0.;float wsum=0.;float sumVel=0.;for (int x=-filterSize; x<=filterSize; ++x) {vec2 coords=vec2(x);vec2 sampleDepthVel=textureLod(textureSampler,vUV+coords*blurDir,0.).rg;float r=dot(coords,coords);float w=exp(-r/two_sigma2);float rDepth=sampleDepthVel.r-depth;float wd=exp(-rDepth*rDepth/two_sigmaDepth2);sum+=sampleDepthVel.r*w*wd;sumVel+=sampleDepthVel.g*w*wd;wsum+=w*wd;}
glFragColor=vec4(sum/wsum,sumVel/wsum,0.,1.);}
`;H.ShadersStore[Qoe]||(H.ShadersStore[Qoe]=dMe);const fMe={name:Qoe,shader:dMe},pMe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingBilateralBlurPixelShader:fMe},Symbol.toStringTag,{value:"Module"})),Joe="fluidRenderingStandardBlurPixelShader",mMe=`uniform sampler2D textureSampler;uniform int filterSize;uniform vec2 blurDir;varying vec2 vUV;void main(void) {vec4 s=textureLod(textureSampler,vUV,0.);if (s.r==0.) {glFragColor=vec4(0.,0.,0.,1.);return;}
float sigma=float(filterSize)/3.0;float twoSigma2=2.0*sigma*sigma;vec4 sum=vec4(0.);float wsum=0.;for (int x=-filterSize; x<=filterSize; ++x) {vec2 coords=vec2(x);vec4 sampl=textureLod(textureSampler,vUV+coords*blurDir,0.);float w=exp(-coords.x*coords.x/twoSigma2);sum+=sampl*w;wsum+=w;}
sum/=wsum;glFragColor=vec4(sum.rgb,1.);}
`;H.ShadersStore[Joe]||(H.ShadersStore[Joe]=mMe);const gMe={name:Joe,shader:mMe},_Me=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingStandardBlurPixelShader:gMe},Symbol.toStringTag,{value:"Module"})),$oe="fluidRenderingRenderPixelShader",vMe=`#define DISABLE_UNIFORMITY_ANALYSIS
#define IOR 1.333
#define ETA 1.0/IOR
#define F0 0.02
uniform sampler2D textureSampler;uniform sampler2D depthSampler;
#ifdef FLUIDRENDERING_DIFFUSETEXTURE
uniform sampler2D diffuseSampler;
#else
uniform vec3 diffuseColor;
#endif
#ifdef FLUIDRENDERING_FIXED_THICKNESS
uniform float thickness;uniform sampler2D bgDepthSampler;
#else
uniform float minimumThickness;uniform sampler2D thicknessSampler;
#endif
#ifdef FLUIDRENDERING_ENVIRONMENT
uniform samplerCube reflectionSampler;
#endif
#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_TEXTURE)
uniform sampler2D debugSampler;
#endif
uniform mat4 viewMatrix;uniform mat4 projectionMatrix;uniform mat4 invProjectionMatrix;uniform vec2 texelSize;uniform vec3 dirLight;uniform float cameraFar;uniform float density;uniform float refractionStrength;uniform float fresnelClamp;uniform float specularPower;varying vec2 vUV;vec3 computeViewPosFromUVDepth(vec2 texCoord,float depth) {vec4 ndc;ndc.xy=texCoord*2.0-1.0;
#ifdef FLUIDRENDERING_RHS
ndc.z=-projectionMatrix[2].z+projectionMatrix[3].z/depth;
#else
ndc.z=projectionMatrix[2].z+projectionMatrix[3].z/depth;
#endif
ndc.w=1.0;vec4 eyePos=invProjectionMatrix*ndc;eyePos.xyz/=eyePos.w;return eyePos.xyz;}
vec3 getViewPosFromTexCoord(vec2 texCoord) {float depth=textureLod(depthSampler,texCoord,0.).x;return computeViewPosFromUVDepth(texCoord,depth);}
void main(void) {vec2 texCoord=vUV;
#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_TEXTURE)
vec4 color=texture2D(debugSampler,texCoord);
#ifdef FLUIDRENDERING_DEBUG_DEPTH
glFragColor=vec4(color.rgb/vec3(2.0),1.);if (color.r>0.999 && color.g>0.999) {glFragColor=texture2D(textureSampler,texCoord);}
#else
glFragColor=vec4(color.rgb,1.);if (color.r<0.001 && color.g<0.001 && color.b<0.001) {glFragColor=texture2D(textureSampler,texCoord);}
#endif
return;
#endif
vec2 depthVel=textureLod(depthSampler,texCoord,0.).rg;float depth=depthVel.r;
#ifndef FLUIDRENDERING_FIXED_THICKNESS
float thickness=texture2D(thicknessSampler,texCoord).x;
#else
float bgDepth=texture2D(bgDepthSampler,texCoord).x;float depthNonLinear=projectionMatrix[2].z+projectionMatrix[3].z/depth;depthNonLinear=depthNonLinear*0.5+0.5;
#endif
vec4 backColor=texture2D(textureSampler,texCoord);
#ifndef FLUIDRENDERING_FIXED_THICKNESS
if (depth>=cameraFar || depth<=0. || thickness<=minimumThickness) {
#else
if (depth>=cameraFar || depth<=0. || bgDepth<=depthNonLinear) {
#endif
#ifdef FLUIDRENDERING_COMPOSITE_MODE
glFragColor.rgb=backColor.rgb*backColor.a;glFragColor.a=backColor.a;
#else
glFragColor=backColor;
#endif
return;}
vec3 viewPos=computeViewPosFromUVDepth(texCoord,depth);vec3 ddx=getViewPosFromTexCoord(texCoord+vec2(texelSize.x,0.))-viewPos;vec3 ddy=getViewPosFromTexCoord(texCoord+vec2(0.,texelSize.y))-viewPos;vec3 ddx2=viewPos-getViewPosFromTexCoord(texCoord+vec2(-texelSize.x,0.));if (abs(ddx.z)>abs(ddx2.z)) {ddx=ddx2;}
vec3 ddy2=viewPos-getViewPosFromTexCoord(texCoord+vec2(0.,-texelSize.y));if (abs(ddy.z)>abs(ddy2.z)) {ddy=ddy2;}
vec3 normal=normalize(cross(ddy,ddx));
#ifdef FLUIDRENDERING_RHS
normal=-normal;
#endif
#ifndef WEBGPU
if(isnan(normal.x) || isnan(normal.y) || isnan(normal.z) || isinf(normal.x) || isinf(normal.y) || isinf(normal.z)) {normal=vec3(0.,0.,-1.);}
#endif
#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_SHOWNORMAL)
glFragColor=vec4(normal*0.5+0.5,1.0);return;
#endif
vec3 rayDir=normalize(viewPos); 
#ifdef FLUIDRENDERING_DIFFUSETEXTURE
vec3 diffuseColor=textureLod(diffuseSampler,texCoord,0.0).rgb;
#endif
vec3 lightDir=normalize(vec3(viewMatrix*vec4(-dirLight,0.)));vec3 H =normalize(lightDir-rayDir);float specular=pow(max(0.0,dot(H,normal)),specularPower);
#ifdef FLUIDRENDERING_DEBUG_DIFFUSERENDERING
float diffuse =max(0.0,dot(lightDir,normal))*1.0;glFragColor=vec4(vec3(0.1) /*ambient*/+vec3(0.42,0.50,1.00)*diffuse+vec3(0,0,0.2)+specular,1.);return;
#endif
vec3 refractionDir=refract(rayDir,normal,ETA);vec4 transmitted=textureLod(textureSampler,vec2(texCoord+refractionDir.xy*thickness*refractionStrength),0.0);
#ifdef FLUIDRENDERING_COMPOSITE_MODE
if (transmitted.a==0.) transmitted.a=thickness;
#endif
vec3 transmittance=exp(-density*thickness*(1.0-diffuseColor)); 
vec3 refractionColor=transmitted.rgb*transmittance;
#ifdef FLUIDRENDERING_ENVIRONMENT
vec3 reflectionDir=reflect(rayDir,normal);vec3 reflectionColor=(textureCube(reflectionSampler,reflectionDir).rgb);float fresnel=clamp(F0+(1.0-F0)*pow(1.0-dot(normal,-rayDir),5.0),0.,fresnelClamp);vec3 finalColor=mix(refractionColor,reflectionColor,fresnel)+specular;
#else
vec3 finalColor=refractionColor+specular;
#endif
#ifdef FLUIDRENDERING_VELOCITY
float velocity=depthVel.g;finalColor=mix(finalColor,vec3(1.0),smoothstep(0.3,1.0,velocity/6.0));
#endif
glFragColor=vec4(finalColor,transmitted.a);}
`;H.ShadersStore[$oe]||(H.ShadersStore[$oe]=vMe);const AMe={name:$oe,shader:vMe},DZe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingRenderPixelShader:AMe},Symbol.toStringTag,{value:"Module"})),ele="fluidRenderingParticleDepthVertexShader",CMe=`attribute position: vec3f;attribute offset: vec2f;uniform view: mat4x4f;uniform projection: mat4x4f;uniform size: vec2f;varying uv: vec2f;varying viewPos: vec3f;varying sphereRadius: f32;
#ifdef FLUIDRENDERING_VELOCITY
attribute velocity: vec3f;varying velocityNorm: f32;
#endif
@vertex
fn main(input: VertexInputs)->FragmentInputs {var cornerPos: vec3f=vec3f(
vec2f(input.offset.x-0.5,input.offset.y-0.5)*uniforms.size,
0.0
);vertexOutputs.viewPos=(uniforms.view*vec4f(input.position,1.0)).xyz;vertexOutputs.position=uniforms.projection*vec4f(vertexOutputs.viewPos+cornerPos,1.0);vertexOutputs.uv=input.offset;vertexOutputs.sphereRadius=uniforms.size.x/2.0;
#ifdef FLUIDRENDERING_VELOCITY
vertexOutputs.velocityNorm=length(velocity);
#endif
}
`;H.ShadersStoreWGSL[ele]||(H.ShadersStoreWGSL[ele]=CMe);const xMe={name:ele,shader:CMe},NZe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingParticleDepthVertexShaderWGSL:xMe},Symbol.toStringTag,{value:"Module"})),tle="fluidRenderingParticleDepthPixelShader",bMe=`uniform projection: mat4x4f;varying uv: vec2f;varying viewPos: vec3f;varying sphereRadius: f32;
#ifdef FLUIDRENDERING_VELOCITY
varying velocityNorm: f32;
#endif
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var normalxy: vec2f=input.uv*2.0-1.0;var r2: f32=dot(normalxy,normalxy);if (r2>1.0) {discard;}
var normal: vec3f=vec3f(normalxy,sqrt(1.0-r2));
#ifndef FLUIDRENDERING_RHS
normal.z=-normal.z;
#endif
var realViewPos: vec4f=vec4f(input.viewPos+normal*input.sphereRadius,1.0);var clipSpacePos: vec4f=uniforms.projection*realViewPos;fragmentOutputs.fragDepth=clipSpacePos.z/clipSpacePos.w;
#ifdef FLUIDRENDERING_RHS
realViewPos.z=-realViewPos.z;
#endif
#ifdef FLUIDRENDERING_VELOCITY
fragmentOutputs.color=vec4f(realViewPos.z,input.velocityNorm,0.,1.);
#else
fragmentOutputs.color=vec4f(realViewPos.z,0.,0.,1.);
#endif
}
`;H.ShadersStoreWGSL[tle]||(H.ShadersStoreWGSL[tle]=bMe);const SMe={name:tle,shader:bMe},wZe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingParticleDepthPixelShaderWGSL:SMe},Symbol.toStringTag,{value:"Module"})),ile="fluidRenderingParticleThicknessVertexShader",yMe=`attribute position: vec3f;attribute offset: vec2f;uniform view: mat4x4f;uniform projection: mat4x4f;uniform size: vec2f;varying uv: vec2f;@vertex
fn main(input: VertexInputs)->FragmentInputs {var cornerPos: vec3f=vec3f(
vec2f(input.offset.x-0.5,input.offset.y-0.5)*uniforms.size,
0.0
);var viewPos: vec3f=(uniforms.view*vec4f(input.position,1.0)).xyz+cornerPos;vertexOutputs.position=uniforms.projection*vec4f(viewPos,1.0);vertexOutputs.uv=input.offset;}
`;H.ShadersStoreWGSL[ile]||(H.ShadersStoreWGSL[ile]=yMe);const MMe={name:ile,shader:yMe},BZe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingParticleThicknessVertexShaderWGSL:MMe},Symbol.toStringTag,{value:"Module"})),sle="fluidRenderingParticleThicknessPixelShader",EMe=`uniform particleAlpha: f32;varying uv: vec2f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var normalxy: vec2f=input.uv*2.0-1.0;var r2: f32=dot(normalxy,normalxy);if (r2>1.0) {discard;}
var thickness: f32=sqrt(1.0-r2);fragmentOutputs.color=vec4f(vec3f(uniforms.particleAlpha*thickness),1.0);}
`;H.ShadersStoreWGSL[sle]||(H.ShadersStoreWGSL[sle]=EMe);const TMe={name:sle,shader:EMe},zZe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingParticleThicknessPixelShaderWGSL:TMe},Symbol.toStringTag,{value:"Module"})),rle="fluidRenderingParticleDiffuseVertexShader",LMe=`attribute position: vec3f;attribute offset: vec2f;attribute color: vec4f;uniform view: mat4x4f;uniform projection: mat4x4f;uniform size: vec2f;varying uv: vec2f;varying diffuseColor: vec3f;@vertex
fn main(input: VertexInputs)->FragmentInputs {var cornerPos: vec3f=vec3f(
vec2f(input.offset.x-0.5,input.offset.y-0.5)*uniforms.size,
0.0
);var viewPos: vec3f=(uniforms.view*vec4f(input.position,1.0)).xyz+cornerPos;vertexOutputs.position=uniforms.projection*vec4f(viewPos,1.0);vertexOutputs.uv=input.offset;vertexOutputs.diffuseColor=input.color.rgb;}
`;H.ShadersStoreWGSL[rle]||(H.ShadersStoreWGSL[rle]=LMe);const FZe={name:rle,shader:LMe},nle="fluidRenderingParticleDiffusePixelShader",IMe=`uniform particleAlpha: f32;varying uv: vec2f;varying diffuseColor: vec3f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var normalxy: vec2f=input.uv*2.0-1.0;var r2: f32=dot(normalxy,normalxy);if (r2>1.0) {discard;}
fragmentOutputs.color=vec4f(input.diffuseColor,1.0);}
`;H.ShadersStoreWGSL[nle]||(H.ShadersStoreWGSL[nle]=IMe);const PMe={name:nle,shader:IMe},kZe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingParticleDiffusePixelShaderWGSL:PMe},Symbol.toStringTag,{value:"Module"})),ale="fluidRenderingBilateralBlurPixelShader",OMe=`var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform maxFilterSize: i32;uniform blurDir: vec2f;uniform projectedParticleConstant: f32;uniform depthThreshold: f32;varying vUV: vec2f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var depth: f32=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.).x;if (depth>=1e6 || depth<=0.) {fragmentOutputs.color=vec4f(vec3f(depth),1.);return fragmentOutputs;}
var filterSize: i32=min(uniforms.maxFilterSize,i32(ceil(uniforms.projectedParticleConstant/depth)));var sigma: f32=f32(filterSize)/3.0;var two_sigma2: f32=2.0*sigma*sigma;var sigmaDepth: f32=uniforms.depthThreshold/3.0;var two_sigmaDepth2: f32=2.0*sigmaDepth*sigmaDepth;var sum: f32=0.;var wsum: f32=0.;var sumVel: f32=0.;for (var x: i32=-filterSize; x<=filterSize; x++) {var coords: vec2f=vec2f(f32(x));var sampleDepthVel: vec2f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV+coords*uniforms.blurDir,0.).rg;var r: f32=dot(coords,coords);var w: f32=exp(-r/two_sigma2);var rDepth: f32=sampleDepthVel.r-depth;var wd: f32=exp(-rDepth*rDepth/two_sigmaDepth2);sum+=sampleDepthVel.r*w*wd;sumVel+=sampleDepthVel.g*w*wd;wsum+=w*wd;}
fragmentOutputs.color=vec4f(sum/wsum,sumVel/wsum,0.,1.);}
`;H.ShadersStoreWGSL[ale]||(H.ShadersStoreWGSL[ale]=OMe);const RMe={name:ale,shader:OMe},DMe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingBilateralBlurPixelShaderWGSL:RMe},Symbol.toStringTag,{value:"Module"})),ole="fluidRenderingStandardBlurPixelShader",NMe=`var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform filterSize: i32;uniform blurDir: vec2f;varying vUV: vec2f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var s: vec4f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.);if (s.r==0.) {fragmentOutputs.color=vec4f(0.,0.,0.,1.);return fragmentOutputs;}
var sigma: f32=f32(uniforms.filterSize)/3.0;var twoSigma2: f32=2.0*sigma*sigma;var sum: vec4f=vec4f(0.);var wsum: f32=0.;for (var x: i32=-uniforms.filterSize; x<=uniforms.filterSize; x++) {var coords: vec2f=vec2f(f32(x));var sampl: vec4f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV+coords*uniforms.blurDir,0.);var w: f32=exp(-coords.x*coords.x/twoSigma2);sum+=sampl*w;wsum+=w;}
sum/=wsum;fragmentOutputs.color=vec4f(sum.rgb,1.);}
`;H.ShadersStoreWGSL[ole]||(H.ShadersStoreWGSL[ole]=NMe);const wMe={name:ole,shader:NMe},BMe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingStandardBlurPixelShaderWGSL:wMe},Symbol.toStringTag,{value:"Module"})),lle="fluidRenderingRenderPixelShader",zMe=`#define DISABLE_UNIFORMITY_ANALYSIS
#define IOR 1.333
#define ETA 1.0/IOR
#define F0 0.02
var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var depthSamplerSampler: sampler;var depthSampler: texture_2d<f32>;
#ifdef FLUIDRENDERING_DIFFUSETEXTURE
var diffuseSamplerSampler: sampler;var diffuseSampler: texture_2d<f32>;
#else
uniform diffuseColor: vec3f;
#endif
#ifdef FLUIDRENDERING_FIXED_THICKNESS
uniform thickness: f32;var bgDepthSamplerSampler: sampler;var bgDepthSampler: texture_2d<f32>;
#else
uniform minimumThickness: f32;var thicknessSamplerSampler: sampler;var thicknessSampler: texture_2d<f32>;
#endif
#ifdef FLUIDRENDERING_ENVIRONMENT
var reflectionSamplerSampler: sampler;var reflectionSampler: texture_cube<f32>;
#endif
#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_TEXTURE)
var debugSamplerSampler: sampler;var debugSampler: texture_2d<f32>;
#endif
uniform viewMatrix: mat4x4f;uniform projectionMatrix: mat4x4f;uniform invProjectionMatrix: mat4x4f;uniform texelSize: vec2f;uniform dirLight: vec3f;uniform cameraFar: f32;uniform density: f32;uniform refractionStrength: f32;uniform fresnelClamp: f32;uniform specularPower: f32;varying vUV: vec2f;fn computeViewPosFromUVDepth(texCoord: vec2f,depth: f32)->vec3f {var ndc: vec4f=vec4f(texCoord*2.0-1.0,0.0,1.0);
#ifdef FLUIDRENDERING_RHS
ndc.z=-uniforms.projectionMatrix[2].z+uniforms.projectionMatrix[3].z/depth;
#else
ndc.z=uniforms.projectionMatrix[2].z+uniforms.projectionMatrix[3].z/depth;
#endif
ndc.w=1.0;var eyePos: vec4f=uniforms.invProjectionMatrix*ndc;return eyePos.xyz/eyePos.w;}
fn getViewPosFromTexCoord(texCoord: vec2f)->vec3f {var depth: f32=textureSampleLevel(depthSampler,depthSamplerSampler,texCoord,0.).x;return computeViewPosFromUVDepth(texCoord,depth);}
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var texCoord: vec2f=input.vUV;
#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_TEXTURE)
var color: vec4f=textureSample(debugSampler,debugSamplerSampler,texCoord);
#ifdef FLUIDRENDERING_DEBUG_DEPTH
fragmentOutputs.color=vec4f(color.rgb/vec3f(2.0),1.);if (color.r>0.999 && color.g>0.999) {fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,texCoord);}
#else
fragmentOutputs.color=vec4f(color.rgb,1.);if (color.r<0.001 && color.g<0.001 && color.b<0.001) {fragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,texCoord);}
#endif
return fragmentOutputs;
#endif
var depthVel: vec2f=textureSampleLevel(depthSampler,depthSamplerSampler,texCoord,0.).rg;var depth: f32=depthVel.r;
#ifndef FLUIDRENDERING_FIXED_THICKNESS
var thickness: f32=textureSample(thicknessSampler,thicknessSamplerSampler,texCoord).x;
#else
var thickness: f32=uniforms.thickness;var bgDepth: f32=textureSample(bgDepthSampler,bgDepthSamplerSampler,texCoord).x;var depthNonLinear: f32=uniforms.projectionMatrix[2].z+uniforms.projectionMatrix[3].z/depth;depthNonLinear=depthNonLinear*0.5+0.5;
#endif
var backColor: vec4f=textureSample(textureSampler,textureSamplerSampler,texCoord);
#ifndef FLUIDRENDERING_FIXED_THICKNESS
if (depth>=uniforms.cameraFar || depth<=0. || thickness<=uniforms.minimumThickness) {
#else
if (depth>=uniforms.cameraFar || depth<=0. || bgDepth<=depthNonLinear) {
#endif
#ifdef FLUIDRENDERING_COMPOSITE_MODE
fragmentOutputs.color=vec4f(backColor.rgb*backColor.a,backColor.a);
#else
fragmentOutputs.color=backColor;
#endif
return fragmentOutputs;}
var viewPos: vec3f=computeViewPosFromUVDepth(texCoord,depth);var ddx: vec3f=getViewPosFromTexCoord(texCoord+vec2f(uniforms.texelSize.x,0.))-viewPos;var ddy: vec3f=getViewPosFromTexCoord(texCoord+vec2f(0.,uniforms.texelSize.y))-viewPos;var ddx2: vec3f=viewPos-getViewPosFromTexCoord(texCoord+vec2f(-uniforms.texelSize.x,0.));if (abs(ddx.z)>abs(ddx2.z)) {ddx=ddx2;}
var ddy2: vec3f=viewPos-getViewPosFromTexCoord(texCoord+vec2f(0.,-uniforms.texelSize.y));if (abs(ddy.z)>abs(ddy2.z)) {ddy=ddy2;}
var normal: vec3f=normalize(cross(ddy,ddx));
#ifdef FLUIDRENDERING_RHS
normal=-normal;
#endif
#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_SHOWNORMAL)
fragmentOutputs.color=vec4f(normal*0.5+0.5,1.0);return fragmentOutputs;
#endif
var rayDir: vec3f=normalize(viewPos); 
#ifdef FLUIDRENDERING_DIFFUSETEXTURE
var diffuseColor: vec3f=textureSampleLevel(diffuseSampler,diffuseSamplerSampler,texCoord,0.0).rgb;
#else
var diffuseColor: vec3f=uniforms.diffuseColor;
#endif
var lightDir: vec3f=normalize((uniforms.viewMatrix*vec4f(-uniforms.dirLight,0.)).xyz);var H: vec3f =normalize(lightDir-rayDir);var specular: f32 =pow(max(0.0,dot(H,normal)),uniforms.specularPower);
#ifdef FLUIDRENDERING_DEBUG_DIFFUSERENDERING
var diffuse: f32 =max(0.0,dot(lightDir,normal))*1.0;fragmentOutputs.color=vec4f(vec3f(0.1) /*ambient*/+vec3f(0.42,0.50,1.00)*diffuse+vec3f(0,0,0.2)+specular,1.);return fragmentOutputs;
#endif
var refractionDir: vec3f=refract(rayDir,normal,ETA);var transmitted: vec4f=textureSampleLevel(textureSampler,textureSamplerSampler,vec2f(texCoord+refractionDir.xy*thickness*uniforms.refractionStrength),0.0);
#ifdef FLUIDRENDERING_COMPOSITE_MODE
if (transmitted.a==0.) {transmitted.a=thickness;}
#endif
var transmittance: vec3f=exp(-uniforms.density*thickness*(1.0-diffuseColor)); 
var refractionColor: vec3f=transmitted.rgb*transmittance;
#ifdef FLUIDRENDERING_ENVIRONMENT
var reflectionDir: vec3f=reflect(rayDir,normal);var reflectionColor: vec3f=(textureSample(reflectionSampler,reflectionSamplerSampler,reflectionDir).rgb);var fresnel: f32=clamp(F0+(1.0-F0)*pow(1.0-dot(normal,-rayDir),5.0),0.,uniforms.fresnelClamp);var finalColor: vec3f=mix(refractionColor,reflectionColor,fresnel)+specular;
#else
var finalColor: vec3f=refractionColor+specular;
#endif
#ifdef FLUIDRENDERING_VELOCITY
var velocity: f32=depthVel.g;finalColor=mix(finalColor,vec3f(1.0),smoothstep(0.3,1.0,velocity/6.0));
#endif
fragmentOutputs.color=vec4f(finalColor,transmitted.a);}
`;H.ShadersStoreWGSL[lle]||(H.ShadersStoreWGSL[lle]=zMe);const FMe={name:lle,shader:zMe},UZe=Object.freeze(Object.defineProperty({__proto__:null,fluidRenderingRenderPixelShaderWGSL:FMe},Symbol.toStringTag,{value:"Module"}));class jZe{get enable(){return this._enable}set enable(e){this._enable!==e&&(this._enable=e,this._customRenderTarget(e))}get positionWorldTexture(){return this._mrt.textures[0]}get normalWorldTexture(){return this._mrt.textures[1]}get fluxTexture(){return this._mrt.textures[2]}get renderList(){return this._mrt.renderList}get light(){return this._light}constructor(e,t,i={width:512,height:512}){this._lightTransformMatrix=me.Identity(),this._enable=!1,this.forceUpdateLightParameters=!1,this._scene=e,this._light=t,this._textureDimensions=i,this._regularMatToMatWithPlugin=new Map,this._counters=[{name:"RSM Generation "+t.name,value:0}],this._createMultiRenderTarget(),this._recomputeLightTransformationMatrix(),this.enable=!0}setTextureDimensions(e){const t=this._mrt.renderList;this._textureDimensions=e,this._disposeMultiRenderTarget(),this._createMultiRenderTarget(),t==null||t.forEach(i=>{this._addMeshToMRT(i)})}addMesh(e){e?this._addMeshToMRT(e):this._scene.meshes.forEach(t=>{this._addMeshToMRT(t)}),this._recomputeLightTransformationMatrix()}updateLightParameters(){this._recomputeLightTransformationMatrix()}get lightTransformationMatrix(){return this.forceUpdateLightParameters&&this.updateLightParameters(),this._lightTransformMatrix}get countersGPU(){return this._counters}dispose(){this._disposeMultiRenderTarget()}_createMultiRenderTarget(){const e=this._light.name,t=this._scene.getEngine().getCaps(),i=t.rg11b10ufColorRenderable?13:2,s=t.rg11b10ufColorRenderable?4:5;this._mrt=new Cb("RSMmrt_"+e,this._textureDimensions,3,this._scene,{types:[2,11,i],samplingModes:[2,2,2],generateMipMaps:!1,targetTypes:[3553,3553,3553],formats:[5,5,s]},["RSMPosition_"+e,"RSMNormal_"+e,"RSMFlux_"+e]),this._mrt.renderList=[],this._mrt.clearColor=new St(0,0,0,1),this._mrt.noPrePassRenderer=!0;let r,n;const o=this._scene.getEngine().supportsUniformBuffers;o&&(r=this._scene.createSceneUniformBuffer(`Scene for RSM (light "${e}")`));let l;this._mrt.onBeforeBindObservable.add(()=>{n=this._scene.getSceneUniformBuffer(),l=this._light.shadowEnabled,this._light.shadowEnabled=!1}),this._mrt.onBeforeRenderObservable.add(c=>{r&&this._scene.setSceneUniformBuffer(r);const u=this._light.getViewMatrix(c),f=this._light.getProjectionMatrix(u||void 0,this._mrt.renderList||void 0);u&&f&&this._scene.setTransformMatrix(u,f),o&&(this._scene.getSceneUniformBuffer().unbindEffect(),this._scene.finalizeSceneUbo())}),this._mrt.onAfterUnbindObservable.add(()=>{var c;r&&this._scene.setSceneUniformBuffer(n),this._scene.updateTransformMatrix(),this._light.shadowEnabled=l,this._counters[0].value=((c=this._mrt.renderTarget.gpuTimeInFrame)==null?void 0:c.counter.lastSecAverage)??0}),this._customRenderTarget(!0)}_customRenderTarget(e){const t=this._scene.customRenderTargets.indexOf(this._mrt);e?t===-1&&this._scene.customRenderTargets.push(this._mrt):t!==-1&&this._scene.customRenderTargets.splice(t,1)}_recomputeLightTransformationMatrix(){const e=this._light.getViewMatrix(),t=this._light.getProjectionMatrix(e||void 0,this._mrt.renderList||void 0);e&&t&&e.multiplyToRef(t,this._lightTransformMatrix)}_addMeshToMRT(e){var s;(s=this._mrt.renderList)==null||s.push(e);const t=e.material;if(e.getTotalVertices()===0||!t)return;let i=this._regularMatToMatWithPlugin.get(t);if(!i&&(i=t.clone("RSMCreate_"+t.name)||void 0,i)){Object.defineProperty(i,"canRenderToMRT",{get:function(){return!1},enumerable:!0,configurable:!0}),i.disableLighting=!0;const r=new v9(i);r.isEnabled=!0,r.light=this._light,this._regularMatToMatWithPlugin.set(t,i)}this._mrt.setMaterialForRendering(e,i)}_disposeMultiRenderTarget(){this._customRenderTarget(!1),this._mrt.dispose()}}class VZe extends Br{constructor(){super(...arguments),this.RSMCREATE=!1,this.RSMCREATE_PROJTEXTURE=!1,this.RSMCREATE_LIGHT_IS_SPOT=!1}}class v9 extends Uu{_markAllSubMeshesAsTexturesDirty(){this._enable(this._isEnabled),this._internalMarkAllSubMeshesAsTexturesDirty()}isCompatible(){return!0}constructor(e){super(e,v9.Name,300,new VZe),this._lightColor=new Pe,this._hasProjectionTexture=!1,this._isEnabled=!1,this.isEnabled=!1,this._internalMarkAllSubMeshesAsTexturesDirty=e._dirtyCallbacks[1],this._varAlbedoName=e instanceof Bs?"surfaceAlbedo":"baseColor.rgb"}prepareDefines(e){e.RSMCREATE=this._isEnabled,this._hasProjectionTexture=!1;const t=this.light.getTypeID()===vs.LIGHTTYPEID_SPOTLIGHT;if(t){const i=this.light;this._hasProjectionTexture=i.projectionTexture?i.projectionTexture.isReady():!1}e.RSMCREATE_PROJTEXTURE=this._hasProjectionTexture,e.RSMCREATE_LIGHT_IS_SPOT=t,e.SCENE_MRT_COUNT=3}getClassName(){return"RSMCreatePluginMaterial"}getUniforms(){return{ubo:[{name:"rsmTextureProjectionMatrix",size:16,type:"mat4"},{name:"rsmSpotInfo",size:4,type:"vec4"},{name:"rsmLightColor",size:3,type:"vec3"},{name:"rsmLightPosition",size:3,type:"vec3"}],fragment:`#ifdef RSMCREATE
                    uniform mat4 rsmTextureProjectionMatrix;
                    uniform vec4 rsmSpotInfo;
                    uniform vec3 rsmLightColor;
                    uniform vec3 rsmLightPosition;
                #endif`}}getSamplers(e){e.push("rsmTextureProjectionSampler")}bindForSubMesh(e){if(this._isEnabled&&(this.light.diffuse.scaleToRef(this.light.getScaledIntensity(),this._lightColor),e.updateColor3("rsmLightColor",this._lightColor),this.light.getTypeID()===vs.LIGHTTYPEID_SPOTLIGHT)){const t=this.light;this._hasProjectionTexture&&(e.updateMatrix("rsmTextureProjectionMatrix",t.projectionTextureMatrix),e.setTexture("rsmTextureProjectionSampler",t.projectionTexture));const i=ae.Vector3[0];t.computeTransformedInformation()?(e.updateFloat3("rsmLightPosition",this.light.transformedPosition.x,this.light.transformedPosition.y,this.light.transformedPosition.z),t.transformedDirection.normalizeToRef(i)):(e.updateFloat3("rsmLightPosition",this.light.position.x,this.light.position.y,this.light.position.z),t.direction.normalizeToRef(i)),e.updateFloat4("rsmSpotInfo",i.x,i.y,i.z,Math.cos(t.angle*.5))}}getCustomCode(e,t){return e==="vertex"?null:t===1?{CUSTOM_FRAGMENT_DEFINITIONS:`
                #ifdef RSMCREATE
                    #ifdef RSMCREATE_PROJTEXTURE
                        var rsmTextureProjectionSamplerSampler: sampler;
                        var rsmTextureProjectionSampler: texture_2d<f32>;
                    #endif
                #endif
            `,CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR:`
                #ifdef RSMCREATE
                    var rsmColor = ${this._varAlbedoName} * uniforms.rsmLightColor;
                    #ifdef RSMCREATE_PROJTEXTURE
                    {
                        var strq = uniforms.rsmTextureProjectionMatrix * vec4f(fragmentInputs.vPositionW, 1.0);
                        strq /= strq.w;
                        rsmColor *= textureSample(rsmTextureProjectionSampler, rsmTextureProjectionSamplerSampler, strq.xy).rgb;
                    }
                    #endif
                    #ifdef RSMCREATE_LIGHT_IS_SPOT
                    {
                        var cosAngle = max(0., dot(uniforms.rsmSpotInfo.xyz, normalize(fragmentInputs.vPositionW - uniforms.rsmLightPosition)));
                        rsmColor = sign(cosAngle - uniforms.rsmSpotInfo.w) * rsmColor;
                    }
                    #endif

                    #define MRT_AND_COLOR
                    fragmentOutputs.fragData0 = vec4f(fragmentInputs.vPositionW, 1.);
                    fragmentOutputs.fragData1 = vec4f(normalize(normalW) * 0.5 + 0.5, 1.);
                    fragmentOutputs.fragData2 = vec4f(rsmColor, 1.);
                #endif
            `}:{CUSTOM_FRAGMENT_BEGIN:`
                #ifdef RSMCREATE
                    #extension GL_EXT_draw_buffers : require
                #endif
            `,CUSTOM_FRAGMENT_DEFINITIONS:`
                #ifdef RSMCREATE
                    #ifdef RSMCREATE_PROJTEXTURE
                        uniform highp sampler2D rsmTextureProjectionSampler;                    
                    #endif
                    layout(location = 0) out highp vec4 glFragData[3];
                    vec4 glFragColor;
                #endif
            `,CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR:`
                #ifdef RSMCREATE
                    vec3 rsmColor = ${this._varAlbedoName} * rsmLightColor;
                    #ifdef RSMCREATE_PROJTEXTURE
                    {
                        vec4 strq = rsmTextureProjectionMatrix * vec4(vPositionW, 1.0);
                        strq /= strq.w;
                        rsmColor *= texture2D(rsmTextureProjectionSampler, strq.xy).rgb;
                    }
                    #endif
                    #ifdef RSMCREATE_LIGHT_IS_SPOT
                    {
                        float cosAngle = max(0., dot(rsmSpotInfo.xyz, normalize(vPositionW - rsmLightPosition)));
                        rsmColor = sign(cosAngle - rsmSpotInfo.w) * rsmColor;
                    }
                    #endif
                    glFragData[0] = vec4(vPositionW, 1.);
                    glFragData[1] = vec4(normalize(normalW) * 0.5 + 0.5, 1.);
                    glFragData[2] = vec4(rsmColor, 1.);
                #endif
            `}}}v9.Name="RSMCreate",F([G()],v9.prototype,"light",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],v9.prototype,"isEnabled",void 0),ve("BABYLON.RSMCreatePluginMaterial",v9);class GZe{constructor(e){this.numSamples=400,this.radius=.1,this.intensity=.1,this.edgeArtifactCorrection=.1,this.rotateSample=!0,this.noiseFactor=100,this.useFullTexture=!1,this.rsm=e}dispose(){this.rsm.dispose()}}class BY{get enable(){return this._enable}set enable(e){this._giRSM.length===0&&(e=!1),e!==this._enable&&(this._enable=e,this._debugLayer.isEnabled=this._showOnlyGI&&e,this._materialsWithRenderPlugin.forEach(t=>{if(t.pluginManager){const i=t.pluginManager.getPlugin(D4.Name);i.isEnabled=e}}),this.recreateResources(!e))}get enableBlur(){return this._enableBlur}set enableBlur(e){e!==this._enableBlur&&(this._enableBlur=e,this.recreateResources())}get useQualityBlur(){return this._useQualityBlur}set useQualityBlur(e){e!==this._useQualityBlur&&(this._useQualityBlur=e,this.recreateResources())}get fullSizeBlur(){return this._forceFullSizeBlur}set fullSizeBlur(e){this._forceFullSizeBlur!==e&&(this._forceFullSizeBlur=e,this.recreateResources())}get useQualityUpsampling(){return this._useQualityUpsampling}set useQualityUpsampling(e){e!==this._useQualityUpsampling&&(this._useQualityUpsampling=e,this.recreateResources())}get showOnlyGI(){return this._showOnlyGI}set showOnlyGI(e){this._showOnlyGI!==e&&(this._showOnlyGI=e,this._debugLayer.isEnabled=e)}get use32BitsDepthBuffer(){return this._use32BitsDepthBuffer}set use32BitsDepthBuffer(e){this._use32BitsDepthBuffer!==e&&(this._use32BitsDepthBuffer=e,this.recreateResources())}setOutputDimensions(e){this._outputDimensions=e,this.recreateResources()}setGITextureDimensions(e){this._giTextureDimensions=e,this.recreateResources()}get giTextureType(){return this._giTextureType}set giTextureType(e){this._giTextureType!==e&&(this._giTextureType=e,this.recreateResources())}get shaderLanguage(){return this._shaderLanguage}get giRSM(){return this._giRSM}addGIRSM(e){Array.isArray(e)?this._giRSM.push(...e):this._giRSM.push(e),this.recreateResources()}removeGIRSM(e){if(Array.isArray(e))for(let t=0;t<e.length;++t){const i=this._giRSM.indexOf(e[t]);i!==-1&&this._giRSM.splice(i,1)}else{const t=this._giRSM.indexOf(e);t!==-1&&this._giRSM.splice(t,1)}this._giRSM.length===0?this.enable=!1:this.recreateResources()}addMaterial(e){e?this._addGISupportToMaterial(e):this._scene.meshes.forEach(t=>{t.getTotalVertices()>0&&t.isEnabled()&&t.material&&this._addGISupportToMaterial(t.material)})}get countersGPU(){return this._counters}recreateResources(e=!1){if(!this._shadersLoaded){this._onShaderLoadedObservable.addOnce(()=>{this.recreateResources(e)});return}this._disposePostProcesses(e),this._createPostProcesses(),this._setPluginParameters()}generateSampleTexture(e){var i;(i=this._sampleTexture)==null||i.dispose(),this._maxSamples=e;const t=new Float32Array(this._maxSamples*4);for(let s=0;s<this._maxSamples;s++){const r=Math.random(),n=Math.random(),o=r*Math.sin(2*Math.PI*n),l=r*Math.cos(2*Math.PI*n);t[s*4+0]=o,t[s*4+1]=l,t[s*4+2]=r*r,t[s*4+3]=1}this._sampleTexture=new Ur(t,this._maxSamples,1,5,this._scene,!1,!1,1,1),this._sampleTexture.name="GIRSMSamples"}dispose(){var e;this._disposePostProcesses(!0),(e=this._debugLayer.texture)==null||e.dispose(),this._debugLayer.dispose(),this._scene.onBeforeDrawPhaseObservable.remove(this._drawPhaseObserver),this._onShaderLoadedObservable.clear()}constructor(e,t,i={width:256,height:256},s=2048,r=11){this._giRSM=[],this._blurRTT=null,this._blurPostProcesses=null,this._blurXPostprocess=null,this._blurYPostprocess=null,this._upsamplingXPostprocess=null,this._upsamplingYPostprocess=null,this._ppGlobalIllumination=[],this._firstActivation=!0,this._geomBufferEnabled=!1,this._geomBufferEnablePosition=!1,this._tempMatrix=new me,this._enable=!1,this.pause=!1,this._enableBlur=!0,this._useQualityBlur=!1,this.blurDepthThreshold=.05,this.blurNormalThreshold=.25,this.blurKernel=12,this._forceFullSizeBlur=!1,this._useQualityUpsampling=!1,this.upsamplerKernel=6,this._showOnlyGI=!1,this._use32BitsDepthBuffer=!1,this._shaderLanguage=0,this._shadersLoaded=!1,this._onShaderLoadedObservable=new xe,this._scene=e,this._engine=e.getEngine(),this._outputDimensions=t,this._giTextureDimensions=i,this._giTextureType=r,this._materialsWithRenderPlugin=[],this._maxSamples=s,this._debugLayer=new dO("debug layer",null,this._scene,!1),this._debugLayer.isEnabled=!1,this._counters=[],this._countersRTW=[],this._initShaderSourceAsync(),this.generateSampleTexture(s),this._drawPhaseObserver=this._scene.onBeforeDrawPhaseObservable.add(()=>{var l,c;const n=this._engine._currentRenderTarget;let o=!1;if(this._enable&&this._shadersLoaded){!this.pause&&this._ppGlobalIllumination.length>0&&(this._scene.postProcessManager.directRender(this._ppGlobalIllumination,this._ppGlobalIllumination[0].inputTexture),this._engine.unBindFramebuffer(this._ppGlobalIllumination[0].inputTexture,!0),this._engine.setAlphaMode(0),o=!0,this.enableBlur&&this._blurPostProcesses&&(this._scene.postProcessManager.directRender(this._blurPostProcesses,this._blurRTT.renderTarget,!0),this._engine.unBindFramebuffer(this._blurRTT.renderTarget,!0)));for(let u=0;u<this._counters.length;++u){const f=this._countersRTW[u];for(let p=0;p<f.length;++p)p===0?this._counters[u].value=this.pause?0:((l=f[p].gpuTimeInFrame)==null?void 0:l.counter.lastSecAverage)??0:this.pause||(this._counters[u].value+=((c=f[p].gpuTimeInFrame)==null?void 0:c.counter.lastSecAverage)??0)}this._scene.activeCamera&&this._engine.setViewport(this._scene.activeCamera.viewport)}o&&n&&this._engine.bindFramebuffer(n)})}async _initShaderSourceAsync(){this._engine.isWebGPU?(this._shaderLanguage=1,await Promise.all([Promise.resolve().then(()=>KZe),Promise.resolve().then(()=>qZe),Promise.resolve().then(()=>QZe),Promise.resolve().then(()=>JZe)])):await Promise.all([Promise.resolve().then(()=>HZe),Promise.resolve().then(()=>YZe),Promise.resolve().then(()=>XZe),Promise.resolve().then(()=>ZZe)]),this._shadersLoaded=!0,this._onShaderLoadedObservable.notifyObservers()}_disposePostProcesses(e=!1){var t,i,s,r,n;(t=this._blurRTT)==null||t.dispose(),this._blurRTT=null,this._blurPostProcesses=[],(i=this._blurXPostprocess)==null||i.dispose(),this._blurXPostprocess=null,(s=this._blurYPostprocess)==null||s.dispose(),this._blurYPostprocess=null,(r=this._upsamplingXPostprocess)==null||r.dispose(),this._upsamplingXPostprocess=null,(n=this._upsamplingYPostprocess)==null||n.dispose(),this._upsamplingYPostprocess=null;for(const o of this._ppGlobalIllumination)o.dispose();this._ppGlobalIllumination=[],e&&(this._geomBufferEnabled?(this._scene.enableGeometryBufferRenderer(),this._scene.geometryBufferRenderer.enablePosition=this._geomBufferEnablePosition):this._scene.disableGeometryBufferRenderer()),this._counters=[],this._countersRTW=[]}_setPluginParameters(){this._enable&&this._materialsWithRenderPlugin.forEach(e=>{if(e.pluginManager){const t=e.pluginManager.getPlugin(D4.Name);t.textureGIContrib=this.enableBlur?this._blurRTT.renderTarget.texture:this._ppGlobalIllumination[0].inputTexture.texture,t.outputTextureWidth=this._outputDimensions.width,t.outputTextureHeight=this._outputDimensions.height}})}_createPostProcesses(){var n,o;if(!this._enable)return;const e=this._giTextureType===13?4:5;this._firstActivation&&(this._firstActivation=!1,this._geomBufferEnabled=!!this._scene.geometryBufferRenderer,this._geomBufferEnablePosition=((n=this._scene.geometryBufferRenderer)==null?void 0:n.enablePosition)??!1),this._geomBufferEnabled||this._scene.disableGeometryBufferRenderer();const t=this._scene.enableGeometryBufferRenderer(this._enableBlur?this._outputDimensions:this._giTextureDimensions,this._use32BitsDepthBuffer?14:15,BY.GeometryBufferTextureTypesAndFormats);if(!t)throw new Error("Geometry buffer renderer is not supported but is required for GIRSMManager.");t.enablePosition=!0,this._geomBufferEnabled||(t.generateNormalsInWorldSpace=!0);const i=t.normalsAreUnsigned,s=t.generateNormalsInWorldSpace;this._counters.push({name:"Geometry buffer renderer",value:0}),this._countersRTW.push([this._scene.geometryBufferRenderer.getGBuffer().renderTarget]);let r="";i&&(r+=`#define DECODE_NORMAL
`),s||(r+=`#define TRANSFORM_NORMAL
`);for(let l=0;l<this._giRSM.length;++l){const c=this._giRSM[l],u=c.rsm,f=new Mi("RSMGlobalIllumination"+l,c.useFullTexture?"rsmFullGlobalIllumination":"rsmGlobalIllumination",{...this._giTextureDimensions,uniforms:["rsmLightMatrix","rsmInfo","rsmInfo2","invView"],samplers:["normalSampler","rsmPositionW","rsmNormalW","rsmFlux","rsmSamples"],defines:r,samplingMode:2,engine:this._engine,textureType:this._giTextureType,textureFormat:e,shaderLanguage:this._shaderLanguage});this._ppGlobalIllumination.push(f),l!==0&&(f.shareOutputWith(this._ppGlobalIllumination[0]),f.alphaMode=1),f.autoClear=!1,f.externalTextureSamplerBinding=!0,f.onApplyObservable.add(p=>{p.setTexture("textureSampler",t.getGBuffer().textures[t.getTextureIndex(ps.POSITION_TEXTURE_TYPE)]),p.setTexture("normalSampler",t.getGBuffer().textures[t.getTextureIndex(ps.NORMAL_TEXTURE_TYPE)]),p.setTexture("rsmPositionW",u.positionWorldTexture),p.setTexture("rsmNormalW",u.normalWorldTexture),p.setTexture("rsmFlux",u.fluxTexture),p.setMatrix("rsmLightMatrix",u.lightTransformationMatrix),c.useFullTexture?p.setFloat4("rsmInfo",u.fluxTexture.getInternalTexture().width,u.fluxTexture.getInternalTexture().height,c.intensity,c.edgeArtifactCorrection):(p.setTexture("rsmSamples",this._sampleTexture),p.setFloat4("rsmInfo",c.numSamples,c.radius,c.intensity,c.edgeArtifactCorrection),p.setFloat4("rsmInfo2",c.noiseFactor,c.rotateSample?1:0,u.fluxTexture.getInternalTexture().width,u.fluxTexture.getInternalTexture().height)),s||(this._tempMatrix.copyFrom(this._scene.activeCamera.getViewMatrix()),this._tempMatrix.invert(),p.setMatrix("invView",this._tempMatrix))})}for(const l of this._ppGlobalIllumination)l.inputTexture||l.resize(this._giTextureDimensions.width,this._giTextureDimensions.height);if(this._counters.push({name:"GI generation",value:0}),this._countersRTW.push([this._ppGlobalIllumination[0].inputTexture]),this._enableBlur){const l=this._forceFullSizeBlur?this._outputDimensions:this._giTextureDimensions;this._blurRTT=new Ir("GIRSMContribution",this._outputDimensions,this._scene,{type:this._giTextureType,format:e,generateDepthBuffer:!1}),this._blurRTT.wrapU=0,this._blurRTT.wrapV=0,this._blurRTT.updateSamplingMode(1),this._blurRTT.skipInitialClear=!0;const c=[];if(this._counters.push({name:"GI blur",value:0}),this._countersRTW.push(c),this._blurXPostprocess=new Mi(this._useQualityBlur?"BilateralBlur":"BilateralBlurX",this._useQualityBlur?"bilateralBlurQuality":"bilateralBlur",{uniforms:["filterSize","blurDir","depthThreshold","normalThreshold"],samplers:["depthSampler","normalSampler"],defines:i?"#define DECODE_NORMAL":void 0,size:l,samplingMode:2,engine:this._engine,textureType:this._giTextureType,textureFormat:e,shaderLanguage:this._shaderLanguage}),this._blurXPostprocess.onApplyObservable.add(f=>{f._bindTexture("textureSampler",this._ppGlobalIllumination[0].inputTexture.texture),f.setTexture("depthSampler",t.getGBuffer().textures[t.getTextureIndex(ps.DEPTH_TEXTURE_TYPE)]),f.setTexture("normalSampler",t.getGBuffer().textures[t.getTextureIndex(ps.NORMAL_TEXTURE_TYPE)]),f.setInt("filterSize",this.blurKernel),f.setFloat2("blurDir",1/this._giTextureDimensions.width,this._useQualityBlur?1/this._giTextureDimensions.height:0),f.setFloat("depthThreshold",this.blurDepthThreshold),f.setFloat("normalThreshold",this.blurNormalThreshold)}),this._blurXPostprocess.externalTextureSamplerBinding=!0,this._blurXPostprocess.autoClear=!1,this._useQualityBlur||(this._blurYPostprocess=new Mi("BilateralBlurY","bilateralBlur",{uniforms:["filterSize","blurDir","depthThreshold","normalThreshold"],samplers:["depthSampler","normalSampler"],defines:i?"#define DECODE_NORMAL":void 0,size:l,samplingMode:2,engine:this._engine,textureType:this._giTextureType,textureFormat:e,shaderLanguage:this._shaderLanguage}),this._blurYPostprocess.autoClear=!1,this._blurYPostprocess.onApplyObservable.add(f=>{f.setTexture("depthSampler",t.getGBuffer().textures[t.getTextureIndex(ps.DEPTH_TEXTURE_TYPE)]),f.setTexture("normalSampler",t.getGBuffer().textures[t.getTextureIndex(ps.NORMAL_TEXTURE_TYPE)]),f.setInt("filterSize",this.blurKernel),f.setFloat2("blurDir",0,1/this._giTextureDimensions.height),f.setFloat("depthThreshold",this.blurDepthThreshold),f.setFloat("normalThreshold",this.blurNormalThreshold)}),this._blurYPostprocess.resize(l.width,l.height),c.push(this._blurYPostprocess.inputTexture)),this._blurPostProcesses=[this._blurXPostprocess],this._blurYPostprocess&&this._blurPostProcesses.push(this._blurYPostprocess),!(this._giTextureDimensions.width>=this._outputDimensions.width&&this._giTextureDimensions.height>=this._outputDimensions.height)&&!this._forceFullSizeBlur){const f=[];this._counters.push({name:"GI upsampling",value:0}),this._countersRTW.push(f),this._upsamplingXPostprocess=new Mi(this._useQualityUpsampling?"BilateralUpsampling":"BilateralUpsamplingX",this._useQualityUpsampling?"bilateralBlurQuality":"bilateralBlur",{uniforms:["filterSize","blurDir","depthThreshold","normalThreshold"],samplers:["depthSampler","normalSampler"],defines:i?"#define DECODE_NORMAL":void 0,size:l,samplingMode:2,engine:this._engine,textureType:this._giTextureType,textureFormat:e,shaderLanguage:this._shaderLanguage}),this._upsamplingXPostprocess.autoClear=!1,this._upsamplingXPostprocess.onApplyObservable.add(p=>{p.setTexture("depthSampler",t.getGBuffer().textures[t.getTextureIndex(ps.DEPTH_TEXTURE_TYPE)]),p.setTexture("normalSampler",t.getGBuffer().textures[t.getTextureIndex(ps.NORMAL_TEXTURE_TYPE)]),p.setInt("filterSize",this.upsamplerKernel),p.setFloat2("blurDir",1/this._outputDimensions.width,this._useQualityUpsampling?1/this._outputDimensions.height:0),p.setFloat("depthThreshold",this.blurDepthThreshold),p.setFloat("normalThreshold",this.blurNormalThreshold)}),this._upsamplingXPostprocess.resize(l.width,l.height),c.push(this._upsamplingXPostprocess.inputTexture),this.useQualityUpsampling||(this._upsamplingYPostprocess=new Mi("BilateralUpsamplingY","bilateralBlur",{uniforms:["filterSize","blurDir","depthThreshold","normalThreshold"],samplers:["depthSampler","normalSampler"],defines:i?"#define DECODE_NORMAL":void 0,size:this._outputDimensions,samplingMode:2,engine:this._engine,textureType:this._giTextureType,textureFormat:e,shaderLanguage:this._shaderLanguage}),this._upsamplingYPostprocess.autoClear=!1,this._upsamplingYPostprocess.onApplyObservable.add(p=>{p.setTexture("depthSampler",t.getGBuffer().textures[t.getTextureIndex(ps.DEPTH_TEXTURE_TYPE)]),p.setTexture("normalSampler",t.getGBuffer().textures[t.getTextureIndex(ps.NORMAL_TEXTURE_TYPE)]),p.setInt("filterSize",this.upsamplerKernel),p.setFloat2("blurDir",0,1/this._outputDimensions.height),p.setFloat("depthThreshold",this.blurDepthThreshold),p.setFloat("normalThreshold",this.blurNormalThreshold)}),this._upsamplingYPostprocess.resize(this._outputDimensions.width,this._outputDimensions.height),f.push(this._upsamplingYPostprocess.inputTexture)),f.push(this._blurRTT.renderTarget),this._blurPostProcesses.push(this._upsamplingXPostprocess),this._upsamplingYPostprocess&&this._blurPostProcesses.push(this._upsamplingYPostprocess)}else c.push(this._blurRTT.renderTarget)}(o=this._debugLayer.texture)==null||o.dispose(),this._debugLayer.texture=new vr(this._scene,this._enableBlur?this._blurRTT.renderTarget.texture:this._ppGlobalIllumination[0].inputTexture.texture)}_addGISupportToMaterial(e){var i;if((i=e.pluginManager)!=null&&i.getPlugin(D4.Name))return;const t=new D4(e);this._enable&&this._ppGlobalIllumination.length>0&&(t.textureGIContrib=this._ppGlobalIllumination[0].inputTexture.texture,t.outputTextureWidth=this._outputDimensions.width,t.outputTextureHeight=this._outputDimensions.height),t.isEnabled=this._enable,this._materialsWithRenderPlugin.push(e)}}BY.GeometryBufferTextureTypesAndFormats={0:{textureType:2,textureFormat:6},1:{textureType:11,textureFormat:5},2:{textureType:2,textureFormat:5}};class WZe extends Br{constructor(){super(...arguments),this.RENDER_WITH_GIRSM=!1,this.RSMCREATE_PROJTEXTURE=!1}}class D4 extends Uu{_markAllSubMeshesAsTexturesDirty(){this._enable(this._isEnabled),this._internalMarkAllSubMeshesAsTexturesDirty()}isCompatible(){return!0}constructor(e){super(e,D4.Name,310,new WZe),this._isEnabled=!1,this.isEnabled=!1,this._internalMarkAllSubMeshesAsTexturesDirty=e._dirtyCallbacks[1],this._isPBR=e instanceof Bs}prepareDefines(e){e.RENDER_WITH_GIRSM=this._isEnabled}getClassName(){return"GIRSMRenderPluginMaterial"}getUniforms(){return{ubo:[{name:"girsmTextureOutputSize",size:2,type:"vec2"}],fragment:`#ifdef RENDER_WITH_GIRSM
                    uniform vec2 girsmTextureOutputSize;
                #endif`}}getSamplers(e){e.push("girsmTextureGIContrib")}bindForSubMesh(e){this._isEnabled&&(e.bindTexture("girsmTextureGIContrib",this.textureGIContrib),e.updateFloat2("girsmTextureOutputSize",this.outputTextureWidth,this.outputTextureHeight))}getCustomCode(e,t){let i;return t===1?(i={CUSTOM_FRAGMENT_DEFINITIONS:`
                #ifdef RENDER_WITH_GIRSM
                    var girsmTextureGIContribSampler: sampler;
                    var girsmTextureGIContrib: texture_2d<f32>;

                    fn computeIndirect() -> vec3f {
                        var uv = fragmentInputs.position.xy / uniforms.girsmTextureOutputSize;
                        return textureSample(girsmTextureGIContrib, girsmTextureGIContribSampler, uv).rgb;
                    }
                #endif
            `,CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION:`
                #ifdef RENDER_WITH_GIRSM
                    finalDiffuse += computeIndirect() * surfaceAlbedo.rgb;
                #endif
            `},this._isPBR||(i.CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR=`
                #ifdef RENDER_WITH_GIRSM
                    color = vec4f(color.rgb + computeIndirect() * baseColor.rgb, color.a);
                #endif
            `)):(i={CUSTOM_FRAGMENT_DEFINITIONS:`
                #ifdef RENDER_WITH_GIRSM
                    uniform sampler2D girsmTextureGIContrib;

                    vec3 computeIndirect() {
                        vec2 uv = gl_FragCoord.xy / girsmTextureOutputSize;
                        return texture2D(girsmTextureGIContrib, uv).rgb;
                    }
                #endif
            `,CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION:`
                #ifdef RENDER_WITH_GIRSM
                    finalDiffuse += computeIndirect() * surfaceAlbedo.rgb;
                #endif
            `},this._isPBR||(i.CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR=`
                #ifdef RENDER_WITH_GIRSM
                    color.rgb += computeIndirect() * baseColor.rgb;
                #endif
            `)),e==="vertex"?null:i}}D4.Name="GIRSMRender",F([G()],D4.prototype,"textureGIContrib",void 0),F([G()],D4.prototype,"outputTextureWidth",void 0),F([G()],D4.prototype,"outputTextureHeight",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],D4.prototype,"isEnabled",void 0),ve("BABYLON.GIRSMRenderPluginMaterial",D4);const cle="bilateralBlurPixelShader",kMe=`uniform sampler2D textureSampler;uniform sampler2D depthSampler;uniform sampler2D normalSampler;uniform int filterSize;uniform vec2 blurDir;uniform float depthThreshold;uniform float normalThreshold;varying vec2 vUV;void main(void) {vec3 color=textureLod(textureSampler,vUV,0.).rgb;float depth=textureLod(depthSampler,vUV,0.).x;if (depth>=1e6 || depth<=0.) {glFragColor=vec4(color,1.);return;}
vec3 normal=textureLod(normalSampler,vUV,0.).rgb;
#ifdef DECODE_NORMAL
normal=normal*2.0-1.0;
#endif
float sigma=float(filterSize);float two_sigma2=2.0*sigma*sigma;float sigmaDepth=depthThreshold;float two_sigmaDepth2=2.0*sigmaDepth*sigmaDepth;float sigmaNormal=normalThreshold;float two_sigmaNormal2=2.0*sigmaNormal*sigmaNormal;vec3 sum=vec3(0.);float wsum=0.;for (int x=-filterSize; x<=filterSize; ++x) {vec2 coords=vec2(x);vec3 sampleColor=textureLod(textureSampler,vUV+coords*blurDir,0.).rgb;float sampleDepth=textureLod(depthSampler,vUV+coords*blurDir,0.).r;vec3 sampleNormal=textureLod(normalSampler,vUV+coords*blurDir,0.).rgb;
#ifdef DECODE_NORMAL
sampleNormal=sampleNormal*2.0-1.0;
#endif
float r=dot(coords,coords);float w=exp(-r/two_sigma2);float depthDelta=abs(sampleDepth-depth);float wd=step(depthDelta,depthThreshold);vec3 normalDelta=abs(sampleNormal-normal);float wn=step(normalDelta.x+normalDelta.y+normalDelta.z,normalThreshold);sum+=sampleColor*w*wd*wn;wsum+=w*wd*wn;}
glFragColor=vec4(sum/wsum,1.);}
`;H.ShadersStore[cle]||(H.ShadersStore[cle]=kMe);const UMe={name:cle,shader:kMe},HZe=Object.freeze(Object.defineProperty({__proto__:null,bilateralBlurPixelShader:UMe},Symbol.toStringTag,{value:"Module"})),ule="bilateralBlurQualityPixelShader",jMe=`uniform sampler2D textureSampler;uniform sampler2D depthSampler;uniform sampler2D normalSampler;uniform int filterSize;uniform vec2 blurDir;uniform float depthThreshold;uniform float normalThreshold;varying vec2 vUV;void main(void) {vec3 color=textureLod(textureSampler,vUV,0.).rgb;float depth=textureLod(depthSampler,vUV,0.).x;if (depth>=1e6 || depth<=0.) {glFragColor=vec4(color,1.);return;}
vec3 normal=textureLod(normalSampler,vUV,0.).rgb;
#ifdef DECODE_NORMAL
normal=normal*2.0-1.0;
#endif
float sigma=float(filterSize);float two_sigma2=2.0*sigma*sigma;float sigmaDepth=depthThreshold;float two_sigmaDepth2=2.0*sigmaDepth*sigmaDepth;float sigmaNormal=normalThreshold;float two_sigmaNormal2=2.0*sigmaNormal*sigmaNormal;vec3 sum=vec3(0.);float wsum=0.;for (int x=-filterSize; x<=filterSize; ++x) {for (int y=-filterSize; y<=filterSize; ++y) {vec2 coords=vec2(x,y)*blurDir;vec3 sampleColor=textureLod(textureSampler,vUV+coords,0.).rgb;float sampleDepth=textureLod(depthSampler,vUV+coords,0.).r;vec3 sampleNormal=textureLod(normalSampler,vUV+coords,0.).rgb;
#ifdef DECODE_NORMAL
sampleNormal=sampleNormal*2.0-1.0;
#endif
float r=dot(coords,coords);float w=exp(-r/two_sigma2);float rDepth=sampleDepth-depth;float wd=exp(-rDepth*rDepth/two_sigmaDepth2);float rNormal=abs(sampleNormal.x-normal.x)+abs(sampleNormal.y-normal.y)+abs(sampleNormal.z-normal.z);float wn=exp(-rNormal*rNormal/two_sigmaNormal2);sum+=sampleColor*w*wd*wn;wsum+=w*wd*wn;}}
glFragColor=vec4(sum/wsum,1.);}
`;H.ShadersStore[ule]||(H.ShadersStore[ule]=jMe);const VMe={name:ule,shader:jMe},YZe=Object.freeze(Object.defineProperty({__proto__:null,bilateralBlurQualityPixelShader:VMe},Symbol.toStringTag,{value:"Module"})),hle="rsmGlobalIlluminationPixelShader",GMe=`/**
* The implementation is an application of the formula found in http:
* For better results,it also adds a random (noise) rotation to the RSM samples (the noise artifacts are easier to remove than the banding artifacts).
*/
precision highp float;varying vec2 vUV;uniform mat4 rsmLightMatrix;uniform vec4 rsmInfo;uniform vec4 rsmInfo2;uniform sampler2D textureSampler;uniform sampler2D normalSampler;uniform sampler2D rsmPositionW;uniform sampler2D rsmNormalW;uniform sampler2D rsmFlux;uniform sampler2D rsmSamples;
#ifdef TRANSFORM_NORMAL
uniform mat4 invView;
#endif
float mod289(float x){return x-floor(x*(1.0/289.0))*289.0;}
vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}
vec4 perm(vec4 x){return mod289(((x*34.0)+1.0)*x);}
float noise(vec3 p){vec3 a=floor(p);vec3 d=p-a;d=d*d*(3.0-2.0*d);vec4 b=a.xxyy+vec4(0.0,1.0,0.0,1.0);vec4 k1=perm(b.xyxy);vec4 k2=perm(k1.xyxy+b.zzww);vec4 c=k2+a.zzzz;vec4 k3=perm(c);vec4 k4=perm(c+1.0);vec4 o1=fract(k3*(1.0/41.0));vec4 o2=fract(k4*(1.0/41.0));vec4 o3=o2*d.z+o1*(1.0-d.z);vec2 o4=o3.yw*d.x+o3.xz*(1.0-d.x);return o4.y*d.y+o4.x*(1.0-d.y);}
vec3 computeIndirect(vec3 p,vec3 n) {vec3 indirectDiffuse=vec3(0.);int numSamples=int(rsmInfo.x);float radius=rsmInfo.y;float intensity=rsmInfo.z;float edgeArtifactCorrection=rsmInfo.w;vec4 texRSM=rsmLightMatrix*vec4(p,1.);texRSM.xy/=texRSM.w;texRSM.xy=texRSM.xy*0.5+0.5;float angle=noise(p*rsmInfo2.x);float c=cos(angle);float s=sin(angle);for (int i=0; i<numSamples; i++) {vec3 rsmSample=texelFetch(rsmSamples,ivec2(i,0),0).xyz;float weightSquare=rsmSample.z;if (rsmInfo2.y==1.0) rsmSample.xy=vec2(rsmSample.x*c+rsmSample.y*s,-rsmSample.x*s+rsmSample.y*c);vec2 uv=texRSM.xy+rsmSample.xy*radius;if (uv.x<0. || uv.x>1. || uv.y<0. || uv.y>1.) continue;vec3 vplPositionW=textureLod(rsmPositionW,uv,0.).xyz;vec3 vplNormalW=textureLod(rsmNormalW,uv,0.).xyz*2.0-1.0;vec3 vplFlux=textureLod(rsmFlux,uv,0.).rgb;vplPositionW-=vplNormalW*edgeArtifactCorrection; 
float dist2=dot(vplPositionW-p,vplPositionW-p);indirectDiffuse+=vplFlux*weightSquare*max(0.,dot(n,vplPositionW-p))*max(0.,dot(vplNormalW,p-vplPositionW))/(dist2*dist2);}
return clamp(indirectDiffuse*intensity,0.0,1.0);}
void main(void) 
{vec3 positionW=texture2D(textureSampler,vUV).xyz;vec3 normalW=texture2D(normalSampler,vUV).xyz;
#ifdef DECODE_NORMAL
normalW=normalW*2.0-1.0;
#endif
#ifdef TRANSFORM_NORMAL
normalW=(invView*vec4(normalW,0.)).xyz;
#endif
gl_FragColor.rgb=computeIndirect(positionW,normalW);gl_FragColor.a=1.0;}
`;H.ShadersStore[hle]||(H.ShadersStore[hle]=GMe);const WMe={name:hle,shader:GMe},XZe=Object.freeze(Object.defineProperty({__proto__:null,rsmGlobalIlluminationPixelShader:WMe},Symbol.toStringTag,{value:"Module"})),dle="rsmFullGlobalIlluminationPixelShader",HMe=`/**
* The implementation is a direct application of the formula found in http:
*/
precision highp float;varying vec2 vUV;uniform mat4 rsmLightMatrix;uniform vec4 rsmInfo;uniform sampler2D textureSampler;uniform sampler2D normalSampler;uniform sampler2D rsmPositionW;uniform sampler2D rsmNormalW;uniform sampler2D rsmFlux;
#ifdef TRANSFORM_NORMAL
uniform mat4 invView;
#endif
vec3 computeIndirect(vec3 p,vec3 n) {vec3 indirectDiffuse=vec3(0.);float intensity=rsmInfo.z;float edgeArtifactCorrection=rsmInfo.w;vec4 texRSM=rsmLightMatrix*vec4(p,1.);texRSM.xy/=texRSM.w;texRSM.xy=texRSM.xy*0.5+0.5;int width=int(rsmInfo.x);int height=int(rsmInfo.y);for (int j=0; j<height; j++) {for (int i=0; i<width; i++) {ivec2 uv=ivec2(i,j);vec3 vplPositionW=texelFetch(rsmPositionW,uv,0).xyz;vec3 vplNormalW=texelFetch(rsmNormalW,uv,0).xyz*2.0-1.0;vec3 vplFlux=texelFetch(rsmFlux,uv,0).rgb;vplPositionW-=vplNormalW*edgeArtifactCorrection; 
float dist2=dot(vplPositionW-p,vplPositionW-p);indirectDiffuse+=vplFlux*max(0.,dot(n,vplPositionW-p))*max(0.,dot(vplNormalW,p-vplPositionW))/(dist2*dist2);}}
return clamp(indirectDiffuse*intensity,0.0,1.0);}
void main(void) 
{vec3 positionW=texture2D(textureSampler,vUV).xyz;vec3 normalW=texture2D(normalSampler,vUV).xyz;
#ifdef DECODE_NORMAL
normalW=normalW*2.0-1.0;
#endif
#ifdef TRANSFORM_NORMAL
normalW=(invView*vec4(normalW,0.)).xyz;
#endif
gl_FragColor.rgb=computeIndirect(positionW,normalW);gl_FragColor.a=1.0;}
`;H.ShadersStore[dle]||(H.ShadersStore[dle]=HMe);const YMe={name:dle,shader:HMe},ZZe=Object.freeze(Object.defineProperty({__proto__:null,rsmFullGlobalIlluminationPixelShader:YMe},Symbol.toStringTag,{value:"Module"})),fle="bilateralBlurPixelShader",XMe=`var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var normalSamplerSampler: sampler;var normalSampler: texture_2d<f32>;var depthSamplerSampler: sampler;var depthSampler: texture_2d<f32>;uniform filterSize: i32;uniform blurDir: vec2f;uniform depthThreshold: f32;uniform normalThreshold: f32;varying vUV: vec2f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var color: vec3f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.).rgb;var depth: f32=textureSampleLevel(depthSampler,depthSamplerSampler,input.vUV,0.).x;if (depth>=1e6 || depth<=0.) {fragmentOutputs.color= vec4f(color,1.);return fragmentOutputs;}
var normal: vec3f=textureSampleLevel(normalSampler,normalSamplerSampler,input.vUV,0.).rgb;
#ifdef DECODE_NORMAL
normal=normal*2.0-1.0;
#endif
var sigma: f32= f32(uniforms.filterSize);var two_sigma2: f32=2.0*sigma*sigma;var sigmaDepth: f32=uniforms.depthThreshold;var two_sigmaDepth2: f32=2.0*sigmaDepth*sigmaDepth;var sigmaNormal: f32=uniforms.normalThreshold;var two_sigmaNormal2: f32=2.0*sigmaNormal*sigmaNormal;var sum: vec3f= vec3f(0.);var wsum: f32=0.;for (var x: i32=-uniforms.filterSize; x<=uniforms.filterSize; x++) {var coords=vec2f(f32(x));var sampleColor: vec3f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV+coords*uniforms.blurDir,0.).rgb;var sampleDepth: f32=textureSampleLevel(depthSampler,depthSamplerSampler,input.vUV+coords*uniforms.blurDir,0.).r;var sampleNormal: vec3f=textureSampleLevel(normalSampler,normalSamplerSampler,input.vUV+coords*uniforms.blurDir,0.).rgb;
#ifdef DECODE_NORMAL
sampleNormal=sampleNormal*2.0-1.0;
#endif
var r: f32=dot(coords,coords);var w: f32=exp(-r/two_sigma2);var depthDelta: f32=abs(sampleDepth-depth);var wd: f32=step(depthDelta,uniforms.depthThreshold);var normalDelta: vec3f=abs(sampleNormal-normal);var wn: f32=step(normalDelta.x+normalDelta.y+normalDelta.z,uniforms.normalThreshold);sum+=sampleColor*w*wd*wn;wsum+=w*wd*wn;}
fragmentOutputs.color= vec4f(sum/wsum,1.);}
`;H.ShadersStoreWGSL[fle]||(H.ShadersStoreWGSL[fle]=XMe);const ZMe={name:fle,shader:XMe},KZe=Object.freeze(Object.defineProperty({__proto__:null,bilateralBlurPixelShaderWGSL:ZMe},Symbol.toStringTag,{value:"Module"})),ple="bilateralBlurQualityPixelShader",KMe=`var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var normalSamplerSampler: sampler;var normalSampler: texture_2d<f32>;var depthSamplerSampler: sampler;var depthSampler: texture_2d<f32>;uniform filterSize: i32;uniform blurDir: vec2f;uniform depthThreshold: f32;uniform normalThreshold: f32;varying vUV: vec2f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var color: vec3f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.).rgb;var depth: f32=textureSampleLevel(depthSampler,depthSamplerSampler,input.vUV,0.).x;if (depth>=1e6 || depth<=0.) {fragmentOutputs.color= vec4f(color,1.);return fragmentOutputs;}
var normal: vec3f=textureSampleLevel(normalSampler,normalSamplerSampler,input.vUV,0.).rgb;
#ifdef DECODE_NORMAL
normal=normal*2.0-1.0;
#endif
var sigma: f32= f32(uniforms.filterSize);var two_sigma2: f32=2.0*sigma*sigma;var sigmaDepth: f32=uniforms.depthThreshold;var two_sigmaDepth2: f32=2.0*sigmaDepth*sigmaDepth;var sigmaNormal: f32=uniforms.normalThreshold;var two_sigmaNormal2: f32=2.0*sigmaNormal*sigmaNormal;var sum: vec3f= vec3f(0.);var wsum: f32=0.;for (var x: i32=-uniforms.filterSize; x<=uniforms.filterSize; x++) {for (var y: i32=-uniforms.filterSize; y<=uniforms.filterSize; y++) {var coords: vec2f= vec2f(f32(x),f32(y))*uniforms.blurDir;var sampleColor: vec3f=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV+coords,0.).rgb;var sampleDepth: f32=textureSampleLevel(depthSampler,depthSamplerSampler,input.vUV+coords,0.).r;var sampleNormal: vec3f=textureSampleLevel(normalSampler,normalSamplerSampler,input.vUV+coords,0.).rgb;
#ifdef DECODE_NORMAL
sampleNormal=sampleNormal*2.0-1.0;
#endif
var r: f32=dot(coords,coords);var w: f32=exp(-r/two_sigma2);var rDepth: f32=sampleDepth-depth;var wd: f32=exp(-rDepth*rDepth/two_sigmaDepth2);var rNormal: f32=abs(sampleNormal.x-normal.x)+abs(sampleNormal.y-normal.y)+abs(sampleNormal.z-normal.z);var wn: f32=exp(-rNormal*rNormal/two_sigmaNormal2);sum+=sampleColor*w*wd*wn;wsum+=w*wd*wn;}}
fragmentOutputs.color= vec4f(sum/wsum,1.);}
`;H.ShadersStoreWGSL[ple]||(H.ShadersStoreWGSL[ple]=KMe);const qMe={name:ple,shader:KMe},qZe=Object.freeze(Object.defineProperty({__proto__:null,bilateralBlurQualityPixelShaderWGSL:qMe},Symbol.toStringTag,{value:"Module"})),mle="rsmGlobalIlluminationPixelShader",QMe=`/**
* The implementation is an application of the formula found in http:
* For better results,it also adds a random (noise) rotation to the RSM samples (the noise artifacts are easier to remove than the banding artifacts).
*/
varying vUV: vec2f;uniform rsmLightMatrix: mat4x4f;uniform rsmInfo: vec4f;uniform rsmInfo2: vec4f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var normalSamplerSampler: sampler;var normalSampler: texture_2d<f32>;var rsmPositionWSampler: sampler;var rsmPositionW: texture_2d<f32>;var rsmNormalWSampler: sampler;var rsmNormalW: texture_2d<f32>;var rsmFluxSampler: sampler;var rsmFlux: texture_2d<f32>;var rsmSamples: texture_2d<f32>;
#ifdef TRANSFORM_NORMAL
uniform invView: mat4x4f;
#endif
fn mod289(x: f32)->f32{return x-floor(x*(1.0/289.0))*289.0;}
fn mod289Vec4(x: vec4f)->vec4f {return x-floor(x*(1.0/289.0))* 289.0;}
fn perm(x: vec4f)->vec4f {return mod289Vec4(((x*34.0)+1.0)*x) ;}
fn noise(p: vec3f)->f32{var a: vec3f=floor(p);var d: vec3f=p-a;d=d*d*(3.0-2.0*d);var b: vec4f=a.xxyy+ vec4f(0.0,1.0,0.0,1.0);var k1: vec4f=perm(b.xyxy);var k2: vec4f=perm(k1.xyxy+b.zzww);var c: vec4f=k2+a.zzzz;var k3: vec4f=perm(c);var k4: vec4f=perm(c+1.0);var o1: vec4f=fract(k3*(1.0/41.0));var o2: vec4f=fract(k4*(1.0/41.0));var o3: vec4f=o2*d.z+o1*(1.0-d.z);var o4: vec2f=o3.yw*d.x+o3.xz*(1.0-d.x);return o4.y*d.y+o4.x*(1.0-d.y);}
fn computeIndirect(p: vec3f,n: vec3f)->vec3f {var indirectDiffuse: vec3f= vec3f(0.);var numSamples: i32= i32(uniforms.rsmInfo.x);var radius: f32=uniforms.rsmInfo.y;var intensity: f32=uniforms.rsmInfo.z;var edgeArtifactCorrection: f32=uniforms.rsmInfo.w;var texRSM: vec4f=uniforms.rsmLightMatrix* vec4f(p,1.);texRSM=vec4f(texRSM.xy/texRSM.w,texRSM.z,texRSM.w);texRSM=vec4f(texRSM.xy*0.5+0.5,texRSM.z,texRSM.w);var angle: f32=noise(p*uniforms.rsmInfo2.x);var c: f32=cos(angle);var s: f32=sin(angle);for (var i: i32=0; i<numSamples; i++) {var rsmSample: vec3f=textureLoad(rsmSamples,vec2<i32>(i,0),0).xyz;var weightSquare: f32=rsmSample.z;if (uniforms.rsmInfo2.y==1.0){rsmSample=vec3f(rsmSample.x*c+rsmSample.y*s,-rsmSample.x*s+rsmSample.y*c,rsmSample.z);}
var uv: vec2f=texRSM.xy+rsmSample.xy*radius;if (uv.x<0. || uv.x>1. || uv.y<0. || uv.y>1.) {continue;}
var vplPositionW: vec3f=textureSampleLevel(rsmPositionW,rsmPositionWSampler,uv,0.).xyz;var vplNormalW: vec3f=textureSampleLevel(rsmNormalW,rsmNormalWSampler,uv,0.).xyz*2.0-1.0;var vplFlux: vec3f=textureSampleLevel(rsmFlux,rsmFluxSampler,uv,0.).rgb;vplPositionW-=vplNormalW*edgeArtifactCorrection; 
var dist2: f32=dot(vplPositionW-p,vplPositionW-p);indirectDiffuse+=vplFlux*weightSquare*max(0.,dot(n,vplPositionW-p))*max(0.,dot(vplNormalW,p-vplPositionW))/(dist2*dist2);}
return clamp(indirectDiffuse*intensity,vec3f(0.0),vec3f(1.0));}
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var positionW: vec3f=textureSample(textureSampler,textureSamplerSampler,input.vUV).xyz;var normalW: vec3f=textureSample(normalSampler,normalSamplerSampler,input.vUV).xyz;
#ifdef DECODE_NORMAL
normalW=normalW*2.0-1.0;
#endif
#ifdef TRANSFORM_NORMAL
normalW=(uniforms.invView* vec4f(normalW,0.)).xyz;
#endif
fragmentOutputs.color=vec4f(computeIndirect(positionW,normalW),1.0);}
`;H.ShadersStoreWGSL[mle]||(H.ShadersStoreWGSL[mle]=QMe);const JMe={name:mle,shader:QMe},QZe=Object.freeze(Object.defineProperty({__proto__:null,rsmGlobalIlluminationPixelShaderWGSL:JMe},Symbol.toStringTag,{value:"Module"})),gle="rsmFullGlobalIlluminationPixelShader",$Me=`/**
* The implementation is a direct application of the formula found in http:
*/
varying vUV: vec2f;uniform rsmLightMatrix: mat4x4f;uniform rsmInfo: vec4f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var normalSamplerSampler: sampler;var normalSampler: texture_2d<f32>;var rsmPositionW: texture_2d<f32>;var rsmNormalW: texture_2d<f32>;var rsmFlux: texture_2d<f32>;
#ifdef TRANSFORM_NORMAL
uniform invView: mat4x4f;
#endif
fn computeIndirect(p: vec3f,n: vec3f)->vec3f {var indirectDiffuse: vec3f= vec3f(0.);var intensity: f32=uniforms.rsmInfo.z;var edgeArtifactCorrection: f32=uniforms.rsmInfo.w;var texRSM: vec4f=uniforms.rsmLightMatrix* vec4f(p,1.);texRSM=vec4f(texRSM.xy/texRSM.w,texRSM.z,texRSM.w);texRSM=vec4f(texRSM.xy*0.5+0.5,texRSM.z,texRSM.w);var width: i32= i32(uniforms.rsmInfo.x);var height: i32= i32(uniforms.rsmInfo.y);for (var j: i32=0; j<height; j++) {for (var i: i32=0; i<width; i++) {var uv=vec2<i32>(i,j);var vplPositionW: vec3f=textureLoad(rsmPositionW,uv,0).xyz;var vplNormalW: vec3f=textureLoad(rsmNormalW,uv,0).xyz*2.0-1.0;var vplFlux: vec3f=textureLoad(rsmFlux,uv,0).rgb;vplPositionW-=vplNormalW*edgeArtifactCorrection; 
var dist2: f32=dot(vplPositionW-p,vplPositionW-p);indirectDiffuse+=vplFlux*max(0.,dot(n,vplPositionW-p))*max(0.,dot(vplNormalW,p-vplPositionW))/(dist2*dist2);}}
return clamp(indirectDiffuse*intensity,vec3f(0.0),vec3f(1.0));}
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var positionW: vec3f=textureSample(textureSampler,textureSamplerSampler,fragmentInputs.vUV).xyz;var normalW: vec3f=textureSample(normalSampler,normalSamplerSampler,fragmentInputs.vUV).xyz;
#ifdef DECODE_NORMAL
normalW=normalW*2.0-1.0;
#endif
#ifdef TRANSFORM_NORMAL
normalW=(uniforms.invView* vec4f(normalW,0.)).xyz;
#endif
fragmentOutputs.color=vec4f(computeIndirect(positionW,normalW),1.0);}
`;H.ShadersStoreWGSL[gle]||(H.ShadersStoreWGSL[gle]=$Me);const eEe={name:gle,shader:$Me},JZe=Object.freeze(Object.defineProperty({__proto__:null,rsmFullGlobalIlluminationPixelShaderWGSL:eEe},Symbol.toStringTag,{value:"Module"})),_le="depthPixelShader",tEe=`#ifdef ALPHATEST
varying vUV: vec2f;var diffuseSamplerSampler: sampler;var diffuseSampler: texture_2d<f32>;
#endif
#include<clipPlaneFragmentDeclaration>
varying vDepthMetric: f32;
#ifdef PACKED
#include<packingFunctions>
#endif
#ifdef STORE_CAMERASPACE_Z
varying vViewPos: vec4f;
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#include<clipPlaneFragment>
#ifdef ALPHATEST
if (textureSample(diffuseSampler,diffuseSamplerSampler,input.vUV).a<0.4) {discard;}
#endif
#ifdef STORE_CAMERASPACE_Z
#ifdef PACKED
fragmentOutputs.color=pack(input.vViewPos.z);
#else
fragmentOutputs.color= vec4f(input.vViewPos.z,0.0,0.0,1.0);
#endif
#else
#ifdef NONLINEARDEPTH
#ifdef PACKED
fragmentOutputs.color=pack(input.position.z);
#else
fragmentOutputs.color= vec4f(input.position.z,0.0,0.0,0.0);
#endif
#else
#ifdef PACKED
fragmentOutputs.color=pack(input.vDepthMetric);
#else
fragmentOutputs.color= vec4f(input.vDepthMetric,0.0,0.0,1.0);
#endif
#endif
#endif
}`;H.ShadersStoreWGSL[_le]||(H.ShadersStoreWGSL[_le]=tEe);const iEe={name:_le,shader:tEe},$Ze=Object.freeze(Object.defineProperty({__proto__:null,depthPixelShaderWGSL:iEe},Symbol.toStringTag,{value:"Module"})),vle="depthVertexShader",sEe=`attribute position: vec3f;
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<clipPlaneVertexDeclaration>
#include<instancesDeclaration>
uniform viewProjection: mat4x4f;uniform depthValues: vec2f;
#if defined(ALPHATEST) || defined(NEED_UV)
varying vUV: vec2f;uniform diffuseMatrix: mat4x4f;
#ifdef UV1
attribute uv: vec2f;
#endif
#ifdef UV2
attribute uv2: vec2f;
#endif
#endif
#ifdef STORE_CAMERASPACE_Z
uniform view: mat4x4f;varying vViewPos: vec4f;
#endif
varying vDepthMetric: f32;
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {var positionUpdated: vec3f=input.position;
#ifdef UV1
var uvUpdated: vec2f=input.uv;
#endif
#ifdef UV2
var uv2Updated: vec2f=input.uv2;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
var worldPos: vec4f=finalWorld* vec4f(positionUpdated,1.0);
#include<clipPlaneVertex>
vertexOutputs.position=uniforms.viewProjection*worldPos;
#ifdef STORE_CAMERASPACE_Z
vertexOutputs.vViewPos=uniforms.view*worldPos;
#else
#ifdef USE_REVERSE_DEPTHBUFFER
vertexOutputs.vDepthMetric=((-vertexOutputs.position.z+uniforms.depthValues.x)/(uniforms.depthValues.y));
#else
vertexOutputs.vDepthMetric=((vertexOutputs.position.z+uniforms.depthValues.x)/(uniforms.depthValues.y));
#endif
#endif
#if defined(ALPHATEST) || defined(BASIC_RENDER)
#ifdef UV1
vertexOutputs.vUV= (uniforms.diffuseMatrix* vec4f(uvUpdated,1.0,0.0)).xy;
#endif
#ifdef UV2
vertexOutputs.vUV= (uniforms.diffuseMatrix* vec4f(uv2Updated,1.0,0.0)).xy;
#endif
#endif
}
`;H.ShadersStoreWGSL[vle]||(H.ShadersStoreWGSL[vle]=sEe);const rEe={name:vle,shader:sEe},eKe=Object.freeze(Object.defineProperty({__proto__:null,depthVertexShaderWGSL:rEe},Symbol.toStringTag,{value:"Module"})),Ale="geometryPixelShader",nEe=`#ifdef BUMP
varying vWorldView0: vec4f;varying vWorldView1: vec4f;varying vWorldView2: vec4f;varying vWorldView3: vec4f;varying vNormalW: vec3f;
#else
varying vNormalV: vec3f;
#endif
varying vViewPos: vec4f;
#if defined(POSITION) || defined(BUMP)
varying vPositionW: vec3f;
#endif
#if defined(VELOCITY) || defined(VELOCITY_LINEAR)
varying vCurrentPosition: vec4f;varying vPreviousPosition: vec4f;
#endif
#ifdef NEED_UV
varying vUV: vec2f;
#endif
#ifdef BUMP
uniform vBumpInfos: vec3f;uniform vTangentSpaceParams: vec2f;
#endif
#if defined(REFLECTIVITY)
#if defined(ORMTEXTURE) || defined(SPECULARGLOSSINESSTEXTURE) || defined(REFLECTIVITYTEXTURE)
var reflectivitySamplerSampler: sampler;var reflectivitySampler: texture_2d<f32>;varying vReflectivityUV: vec2f;
#endif
#ifdef ALBEDOTEXTURE
varying vAlbedoUV: vec2f;var albedoSamplerSampler: sampler;var albedoSampler: texture_2d<f32>;
#endif
#ifdef REFLECTIVITYCOLOR
uniform reflectivityColor: vec3f;
#endif
#ifdef ALBEDOCOLOR
uniform albedoColor: vec3f;
#endif
#ifdef METALLIC
uniform metallic: f32;
#endif
#if defined(ROUGHNESS) || defined(GLOSSINESS)
uniform glossiness: f32;
#endif
#endif
#if defined(ALPHATEST) && defined(NEED_UV)
var diffuseSamplerSampler: sampler;var diffuseSampler: texture_2d<f32>;
#endif
#include<clipPlaneFragmentDeclaration>
#include<bumpFragmentMainFunctions>
#include<bumpFragmentFunctions>
#include<helperFunctions>
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#include<clipPlaneFragment>
#ifdef ALPHATEST
if (textureSample(diffuseSampler,diffuseSamplerSampler,input.vUV).a<0.4) {discard;}
#endif
var normalOutput: vec3f;
#ifdef BUMP
var normalW: vec3f=normalize(input.vNormalW);
#include<bumpFragment>
#ifdef NORMAL_WORLDSPACE
normalOutput=normalW;
#else
normalOutput=normalize( (mat4x4f(input.vWorldView0,input.vWorldView1,input.vWorldView2,input.vWorldView3)* vec4f(normalW,0.0)).xyz);
#endif
#else
normalOutput=normalize(input.vNormalV);
#endif
#ifdef ENCODE_NORMAL
normalOutput=normalOutput*0.5+0.5;
#endif
var fragData: array<vec4<f32>,SCENE_MRT_COUNT>;
#ifdef DEPTH
fragData[DEPTH_INDEX]=vec4f(input.vViewPos.z/input.vViewPos.w,0.0,0.0,1.0);
#endif
#ifdef NORMAL
fragData[NORMAL_INDEX]=vec4f(normalOutput,1.0);
#endif
#ifdef SCREENSPACE_DEPTH
fragData[SCREENSPACE_DEPTH_INDEX]=vec4f(fragmentInputs.position.z,0.0,0.0,1.0);
#endif
#ifdef POSITION
fragData[POSITION_INDEX]= vec4f(input.vPositionW,1.0);
#endif
#ifdef VELOCITY
var a: vec2f=(input.vCurrentPosition.xy/input.vCurrentPosition.w)*0.5+0.5;var b: vec2f=(input.vPreviousPosition.xy/input.vPreviousPosition.w)*0.5+0.5;var velocity: vec2f=abs(a-b);velocity= vec2f(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;fragData[VELOCITY_INDEX]= vec4f(velocity,0.0,1.0);
#endif
#ifdef VELOCITY_LINEAR
var velocity : vec2f=vec2f(0.5)*((input.vPreviousPosition.xy /
input.vPreviousPosition.w) -
(input.vCurrentPosition.xy /
input.vCurrentPosition.w));fragData[VELOCITY_LINEAR_INDEX]=vec4f(velocity,0.0,1.0);
#endif
#ifdef REFLECTIVITY
var reflectivity: vec4f= vec4f(0.0,0.0,0.0,1.0);
#ifdef METALLICWORKFLOW
var metal: f32=1.0;var roughness: f32=1.0;
#ifdef ORMTEXTURE
metal*=textureSample(reflectivitySampler,reflectivitySamplerSampler,input.vReflectivityUV).b;roughness*=textureSample(reflectivitySampler,reflectivitySamplerSampler,input.vReflectivityUV).g;
#endif
#ifdef METALLIC
metal*=uniforms.metallic;
#endif
#ifdef ROUGHNESS
roughness*=(1.0-uniforms.glossiness); 
#endif
reflectivity=vec4f(reflectivity.rgb,reflectivity.a-roughness);var color: vec3f= vec3f(1.0);
#ifdef ALBEDOTEXTURE
color=textureSample(albedoSampler,albedoSamplerSampler,input.vAlbedoUV).rgb;
#ifdef GAMMAALBEDO
color=toLinearSpaceVec4(color);
#endif
#endif
#ifdef ALBEDOCOLOR
color*=uniforms.albedoColor.xyz;
#endif
reflectivity=vec4f(mix( vec3f(0.04),color,metal),reflectivity.a);
#else
#if defined(SPECULARGLOSSINESSTEXTURE) || defined(REFLECTIVITYTEXTURE)
reflectivity=textureSample(reflectivitySampler,reflectivitySamplerSampler,input.vReflectivityUV);
#ifdef GAMMAREFLECTIVITYTEXTURE
reflectivity=vec4f(toLinearSpaceVec3(reflectivity.rgb),reflectivity.a);
#endif
#else 
#ifdef REFLECTIVITYCOLOR
reflectivity=vec4f(toLinearSpaceVec3(uniforms.reflectivityColor.xyz),1.0);
#endif
#endif
#ifdef GLOSSINESSS
reflectivity=vec4f(reflectivity.rgb,reflectivity.a*glossiness); 
#endif
#endif
fragData[REFLECTIVITY_INDEX]=reflectivity;
#endif
#if SCENE_MRT_COUNT>0
fragmentOutputs.fragData0=fragData[0];
#endif
#if SCENE_MRT_COUNT>1
fragmentOutputs.fragData1=fragData[1];
#endif
#if SCENE_MRT_COUNT>2
fragmentOutputs.fragData2=fragData[2];
#endif
#if SCENE_MRT_COUNT>3
fragmentOutputs.fragData3=fragData[3];
#endif
#if SCENE_MRT_COUNT>4
fragmentOutputs.fragData4=fragData[4];
#endif
#if SCENE_MRT_COUNT>5
fragmentOutputs.fragData5=fragData[5];
#endif
#if SCENE_MRT_COUNT>6
fragmentOutputs.fragData6=fragData[6];
#endif
#if SCENE_MRT_COUNT>7
fragmentOutputs.fragData7=fragData[7];
#endif
}
`;H.ShadersStoreWGSL[Ale]||(H.ShadersStoreWGSL[Ale]=nEe);const aEe={name:Ale,shader:nEe},tKe=Object.freeze(Object.defineProperty({__proto__:null,geometryPixelShaderWGSL:aEe},Symbol.toStringTag,{value:"Module"})),Cle="geometryVertexShader",oEe=`#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<instancesDeclaration>
#include<sceneUboDeclaration>
#include<clipPlaneVertexDeclaration>
attribute position: vec3f;attribute normal: vec3f;
#ifdef NEED_UV
varying vUV: vec2f;
#ifdef ALPHATEST
uniform diffuseMatrix: mat4x4f;
#endif
#ifdef BUMP
uniform bumpMatrix: mat4x4f;varying vBumpUV: vec2f;
#endif
#ifdef REFLECTIVITY
uniform reflectivityMatrix: mat4x4f;uniform albedoMatrix: mat4x4f;varying vReflectivityUV: vec2f;varying vAlbedoUV: vec2f;
#endif
#ifdef UV1
attribute uv: vec2f;
#endif
#ifdef UV2
attribute uv2: vec2f;
#endif
#endif
#ifdef BUMP
varying vWorldView0: vec4f;varying vWorldView1: vec4f;varying vWorldView2: vec4f;varying vWorldView3: vec4f;
#endif
#ifdef BUMP
varying vNormalW: vec3f;
#else
varying vNormalV: vec3f;
#endif
varying vViewPos: vec4f;
#if defined(POSITION) || defined(BUMP)
varying vPositionW: vec3f;
#endif
#if defined(VELOCITY) || defined(VELOCITY_LINEAR)
uniform previousViewProjection: mat4x4f;varying vCurrentPosition: vec4f;varying vPreviousPosition: vec4f;
#endif
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {var positionUpdated: vec3f=input.position;var normalUpdated: vec3f=input.normal;
#ifdef UV1
var uvUpdated: vec2f=input.uv;
#endif
#ifdef UV2
var uv2Updated: vec2f=input.uv2;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
#include<instancesVertex>
#if (defined(VELOCITY) || defined(VELOCITY_LINEAR)) && !defined(BONES_VELOCITY_ENABLED)
vCurrentPosition=scene.viewProjection*finalWorld*vec4f(positionUpdated,1.0);vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld* vec4f(positionUpdated,1.0);
#endif
#include<bonesVertex>
#include<bakedVertexAnimation>
var worldPos: vec4f= vec4f(finalWorld* vec4f(positionUpdated,1.0));
#ifdef BUMP
let vWorldView=scene.view*finalWorld;vertexOutputs.vWorldView0=vWorldView[0];vertexOutputs.vWorldView1=vWorldView[1];vertexOutputs.vWorldView2=vWorldView[2];vertexOutputs.vWorldView3=vWorldView[3];let normalWorld: mat3x3f= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz);vertexOutputs.vNormalW=normalize(normalWorld*normalUpdated);
#else
#ifdef NORMAL_WORLDSPACE
vertexOutputs.vNormalV=normalize((finalWorld* vec4f(normalUpdated,0.0)).xyz);
#else
vertexOutputs.vNormalV=normalize(((scene.view*finalWorld)* vec4f(normalUpdated,0.0)).xyz);
#endif
#endif
vertexOutputs.vViewPos=scene.view*worldPos;
#if (defined(VELOCITY) || defined(VELOCITY_LINEAR)) && defined(BONES_VELOCITY_ENABLED)
vertexOutputs.vCurrentPosition=scene.viewProjection*finalWorld* vec4f(positionUpdated,1.0);
#if NUM_BONE_INFLUENCERS>0
var previousInfluence: mat4x4f;previousInfluence=mPreviousBones[ i32(matricesIndices[0])]*matricesWeights[0];
#if NUM_BONE_INFLUENCERS>1
previousInfluence+=mPreviousBones[ i32(matricesIndices[1])]*matricesWeights[1];
#endif
#if NUM_BONE_INFLUENCERS>2
previousInfluence+=mPreviousBones[ i32(matricesIndices[2])]*matricesWeights[2];
#endif
#if NUM_BONE_INFLUENCERS>3
previousInfluence+=mPreviousBones[ i32(matricesIndices[3])]*matricesWeights[3];
#endif
#if NUM_BONE_INFLUENCERS>4
previousInfluence+=mPreviousBones[ i32(matricesIndicesExtra[0])]*matricesWeightsExtra[0];
#endif
#if NUM_BONE_INFLUENCERS>5
previousInfluence+=mPreviousBones[ i32(matricesIndicesExtra[1])]*matricesWeightsExtra[1];
#endif
#if NUM_BONE_INFLUENCERS>6
previousInfluence+=mPreviousBones[ i32(matricesIndicesExtra[2])]*matricesWeightsExtra[2];
#endif
#if NUM_BONE_INFLUENCERS>7
previousInfluence+=mPreviousBones[ i32(matricesIndicesExtra[3])]*matricesWeightsExtra[3];
#endif
vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld*previousInfluence* vec4f(positionUpdated,1.0);
#else
vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld* vec4f(positionUpdated,1.0);
#endif
#endif
#if defined(POSITION) || defined(BUMP)
vertexOutputs.vPositionW=worldPos.xyz/worldPos.w;
#endif
vertexOutputs.position=scene.viewProjection*finalWorld* vec4f(positionUpdated,1.0);
#include<clipPlaneVertex>
#ifdef NEED_UV
#ifdef UV1
#if defined(ALPHATEST) && defined(ALPHATEST_UV1)
vertexOutputs.vUV=(uniforms.diffuseMatrix* vec4f(uvUpdated,1.0,0.0)).xy;
#else
vertexOutputs.vUV=uvUpdated;
#endif
#ifdef BUMP_UV1
vertexOutputs.vBumpUV=(uniforms.bumpMatrix* vec4f(uvUpdated,1.0,0.0)).xy;
#endif
#ifdef REFLECTIVITY_UV1
vertexOutputs.vReflectivityUV=(uniforms.reflectivityMatrix* vec4f(uvUpdated,1.0,0.0)).xy;
#endif
#ifdef ALBEDO_UV1
vertexOutputs.vAlbedoUV=(uniforms.albedoMatrix* vec4f(uvUpdated,1.0,0.0)).xy;
#endif
#endif
#ifdef UV2
#if defined(ALPHATEST) && defined(ALPHATEST_UV2)
vertexOutputs.vUV=(uniforms.diffuseMatrix* vec4f(uv2Updated,1.0,0.0)).xy;
#else
vertexOutputs.vUV=uv2Updated;
#endif
#ifdef BUMP_UV2
vertexOutputs.vBumpUV=(uniforms.bumpMatrix* vec4f(uv2Updated,1.0,0.0)).xy;
#endif
#ifdef REFLECTIVITY_UV2
vertexOutputs.vReflectivityUV=(uniforms.reflectivityMatrix* vec4f(uv2Updated,1.0,0.0)).xy;
#endif
#ifdef ALBEDO_UV2
vertexOutputs.vAlbedoUV=(uniforms.albedoMatrix* vec4f(uv2Updated,1.0,0.0)).xy;
#endif
#endif
#endif
#include<bumpVertex>
}
`;H.ShadersStoreWGSL[Cle]||(H.ShadersStoreWGSL[Cle]=oEe);const lEe={name:Cle,shader:oEe},iKe=Object.freeze(Object.defineProperty({__proto__:null,geometryVertexShaderWGSL:lEe},Symbol.toStringTag,{value:"Module"})),cEe="boundingBoxRendererFragmentDeclaration",sKe=`uniform vec4 color;
`;H.IncludesShadersStore[cEe]||(H.IncludesShadersStore[cEe]=sKe);const uEe="boundingBoxRendererUboDeclaration",rKe=`#ifdef WEBGL2
uniform vec4 color;uniform mat4 world;uniform mat4 viewProjection;
#ifdef MULTIVIEW
uniform mat4 viewProjectionR;
#endif
#else
layout(std140,column_major) uniform;uniform BoundingBoxRenderer {vec4 color;mat4 world;mat4 viewProjection;mat4 viewProjectionR;};
#endif
`;H.IncludesShadersStore[uEe]||(H.IncludesShadersStore[uEe]=rKe);const xle="boundingBoxRendererPixelShader",hEe=`#include<__decl__boundingBoxRendererFragment>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
gl_FragColor=color;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[xle]||(H.ShadersStore[xle]=hEe);const dEe={name:xle,shader:hEe},fEe=Object.freeze(Object.defineProperty({__proto__:null,boundingBoxRendererPixelShader:dEe},Symbol.toStringTag,{value:"Module"})),pEe="boundingBoxRendererVertexDeclaration",nKe=`uniform mat4 world;uniform mat4 viewProjection;
#ifdef MULTIVIEW
uniform mat4 viewProjectionR;
#endif
`;H.IncludesShadersStore[pEe]||(H.IncludesShadersStore[pEe]=nKe);const ble="boundingBoxRendererVertexShader",mEe=`attribute vec3 position;
#include<__decl__boundingBoxRendererVertex>
#ifdef INSTANCES
attribute vec4 world0;attribute vec4 world1;attribute vec4 world2;attribute vec4 world3;
#endif
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef INSTANCES
mat4 finalWorld=mat4(world0,world1,world2,world3);vec4 worldPos=finalWorld*vec4(position,1.0);
#else
vec4 worldPos=world*vec4(position,1.0);
#endif
#ifdef MULTIVIEW
if (gl_ViewID_OVR==0u) {gl_Position=viewProjection*worldPos;} else {gl_Position=viewProjectionR*worldPos;}
#else
gl_Position=viewProjection*worldPos;
#endif
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[ble]||(H.ShadersStore[ble]=mEe);const gEe={name:ble,shader:mEe},_Ee=Object.freeze(Object.defineProperty({__proto__:null,boundingBoxRendererVertexShader:gEe},Symbol.toStringTag,{value:"Module"})),Sle="boundingBoxRendererPixelShader",vEe=`uniform color: vec4f;
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
fragmentOutputs.color=uniforms.color;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStoreWGSL[Sle]||(H.ShadersStoreWGSL[Sle]=vEe);const AEe={name:Sle,shader:vEe},CEe=Object.freeze(Object.defineProperty({__proto__:null,boundingBoxRendererPixelShaderWGSL:AEe},Symbol.toStringTag,{value:"Module"})),yle="boundingBoxRendererVertexShader",xEe=`attribute position: vec3f;uniform world: mat4x4f;uniform viewProjection: mat4x4f;
#ifdef INSTANCES
attribute world0 : vec4<f32>;attribute world1 : vec4<f32>;attribute world2 : vec4<f32>;attribute world3 : vec4<f32>;
#endif
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef INSTANCES
var finalWorld=mat4x4<f32>(vertexInputs.world0,vertexInputs.world1,vertexInputs.world2,vertexInputs.world3);var worldPos: vec4f=finalWorld* vec4f(input.position,1.0);
#else
var worldPos: vec4f=uniforms.world* vec4f(input.position,1.0);
#endif
vertexOutputs.position=uniforms.viewProjection*worldPos;
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStoreWGSL[yle]||(H.ShadersStoreWGSL[yle]=xEe);const bEe={name:yle,shader:xEe},SEe=Object.freeze(Object.defineProperty({__proto__:null,boundingBoxRendererVertexShaderWGSL:bEe},Symbol.toStringTag,{value:"Module"})),Mle="linePixelShader",yEe=`#include<clipPlaneFragmentDeclaration>
uniform vec4 color;
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<logDepthFragment>
#include<clipPlaneFragment>
gl_FragColor=color;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[Mle]||(H.ShadersStore[Mle]=yEe);const MEe={name:Mle,shader:yEe},aKe=Object.freeze(Object.defineProperty({__proto__:null,linePixelShader:MEe},Symbol.toStringTag,{value:"Module"})),EEe="lineVertexDeclaration",oKe=`uniform mat4 viewProjection;
#define ADDITIONAL_VERTEX_DECLARATION
`;H.IncludesShadersStore[EEe]||(H.IncludesShadersStore[EEe]=oKe);const TEe="lineUboDeclaration",lKe=`layout(std140,column_major) uniform;
#include<sceneUboDeclaration>
#include<meshUboDeclaration>
`;H.IncludesShadersStore[TEe]||(H.IncludesShadersStore[TEe]=lKe);const Ele="lineVertexShader",LEe=`#include<__decl__lineVertex>
#include<instancesDeclaration>
#include<clipPlaneVertexDeclaration>
attribute vec3 position;attribute vec4 normal;uniform float width;uniform float aspectRatio;
#include<logDepthDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#include<instancesVertex>
mat4 worldViewProjection=viewProjection*finalWorld;vec4 viewPosition=worldViewProjection*vec4(position,1.0);vec4 viewPositionNext=worldViewProjection*vec4(normal.xyz,1.0);vec2 currentScreen=viewPosition.xy/viewPosition.w;vec2 nextScreen=viewPositionNext.xy/viewPositionNext.w;currentScreen.x*=aspectRatio;nextScreen.x*=aspectRatio;vec2 dir=normalize(nextScreen-currentScreen);vec2 normalDir=vec2(-dir.y,dir.x);normalDir*=width/2.0;normalDir.x/=aspectRatio;vec4 offset=vec4(normalDir*normal.w,0.0,0.0);gl_Position=viewPosition+offset;
#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)
vec4 worldPos=finalWorld*vec4(position,1.0);
#include<clipPlaneVertex>
#endif
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[Ele]||(H.ShadersStore[Ele]=LEe);const IEe={name:Ele,shader:LEe},cKe=Object.freeze(Object.defineProperty({__proto__:null,lineVertexShader:IEe},Symbol.toStringTag,{value:"Module"})),Tle="linePixelShader",PEe=`#include<clipPlaneFragmentDeclaration>
uniform color: vec4f;
#include<logDepthDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<logDepthFragment>
#include<clipPlaneFragment>
fragmentOutputs.color=uniforms.color;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStoreWGSL[Tle]||(H.ShadersStoreWGSL[Tle]=PEe);const OEe={name:Tle,shader:PEe},uKe=Object.freeze(Object.defineProperty({__proto__:null,linePixelShaderWGSL:OEe},Symbol.toStringTag,{value:"Module"})),Lle="lineVertexShader",REe=`#define ADDITIONAL_VERTEX_DECLARATION
#include<instancesDeclaration>
#include<clipPlaneVertexDeclaration>
#include<sceneUboDeclaration>
#include<meshUboDeclaration>
attribute position: vec3f;attribute normal: vec4f;uniform width: f32;uniform aspectRatio: f32;
#include<logDepthDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
#include<instancesVertex>
var worldViewProjection: mat4x4f=scene.viewProjection*finalWorld;var viewPosition: vec4f=worldViewProjection* vec4f(input.position,1.0);var viewPositionNext: vec4f=worldViewProjection* vec4f(input.normal.xyz,1.0);var currentScreen: vec2f=viewPosition.xy/viewPosition.w;var nextScreen: vec2f=viewPositionNext.xy/viewPositionNext.w;currentScreen=vec2f(currentScreen.x*uniforms.aspectRatio,currentScreen.y);nextScreen=vec2f(nextScreen.x*uniforms.aspectRatio,nextScreen.y);var dir: vec2f=normalize(nextScreen-currentScreen);var normalDir: vec2f= vec2f(-dir.y,dir.x);normalDir*=uniforms.width/2.0;normalDir=vec2f(normalDir.x/uniforms.aspectRatio,normalDir.y);var offset: vec4f= vec4f(normalDir*input.normal.w,0.0,0.0);vertexOutputs.position=viewPosition+offset;
#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)
var worldPos: vec4f=finalWorld*vec4f(input.position,1.0);
#include<clipPlaneVertex>
#endif
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[Lle]||(H.ShadersStoreWGSL[Lle]=REe);const DEe={name:Lle,shader:REe},hKe=Object.freeze(Object.defineProperty({__proto__:null,lineVertexShaderWGSL:DEe},Symbol.toStringTag,{value:"Module"})),Ile="outlinePixelShader",NEe=`#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
uniform vec4 color;
#ifdef ALPHATEST
varying vec2 vUV;uniform sampler2D diffuseSampler;
#endif
#include<clipPlaneFragmentDeclaration>
#include<logDepthDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
#ifdef ALPHATEST
if (texture2D(diffuseSampler,vUV).a<0.4)
discard;
#endif
#include<logDepthFragment>
gl_FragColor=color;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[Ile]||(H.ShadersStore[Ile]=NEe);const wEe={name:Ile,shader:NEe},dKe=Object.freeze(Object.defineProperty({__proto__:null,outlinePixelShader:wEe},Symbol.toStringTag,{value:"Module"})),Ple="outlineVertexShader",BEe=`attribute vec3 position;attribute vec3 normal;
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<clipPlaneVertexDeclaration>
uniform float offset;
#include<instancesDeclaration>
uniform mat4 viewProjection;
#ifdef ALPHATEST
varying vec2 vUV;uniform mat4 diffuseMatrix;
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#endif
#include<logDepthDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
void main(void)
{vec3 positionUpdated=position;vec3 normalUpdated=normal;
#ifdef UV1
vec2 uvUpdated=uv;
#endif
#ifdef UV2
vec2 uv2Updated=uv2;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
vec3 offsetPosition=positionUpdated+(normalUpdated*offset);
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(offsetPosition,1.0);gl_Position=viewProjection*worldPos;
#ifdef ALPHATEST
#ifdef UV1
vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));
#endif
#ifdef UV2
vUV=vec2(diffuseMatrix*vec4(uv2Updated,1.0,0.0));
#endif
#endif
#include<clipPlaneVertex>
#include<logDepthVertex>
}
`;H.ShadersStore[Ple]||(H.ShadersStore[Ple]=BEe);const zEe={name:Ple,shader:BEe},fKe=Object.freeze(Object.defineProperty({__proto__:null,outlineVertexShader:zEe},Symbol.toStringTag,{value:"Module"})),Ole="outlinePixelShader",FEe=`uniform color: vec4f;
#ifdef ALPHATEST
varying vUV: vec2f;var diffuseSamplerSampler: sampler;var diffuseSampler: texture_2d<f32>;
#endif
#include<clipPlaneFragmentDeclaration>
#include<logDepthDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
#ifdef ALPHATEST
if (textureSample(diffuseSampler,diffuseSamplerSampler,fragmentInputs.vUV).a<0.4) {discard;}
#endif
#include<logDepthFragment>
fragmentOutputs.color=uniforms.color;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStoreWGSL[Ole]||(H.ShadersStoreWGSL[Ole]=FEe);const kEe={name:Ole,shader:FEe},pKe=Object.freeze(Object.defineProperty({__proto__:null,outlinePixelShaderWGSL:kEe},Symbol.toStringTag,{value:"Module"})),Rle="outlineVertexShader",UEe=`attribute position: vec3f;attribute normal: vec3f;
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<morphTargetsVertexGlobalDeclaration>
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
#include<clipPlaneVertexDeclaration>
uniform offset: f32;
#include<instancesDeclaration>
uniform viewProjection: mat4x4f;
#ifdef ALPHATEST
varying vUV: vec2f;uniform diffuseMatrix: mat4x4f; 
#ifdef UV1
attribute uv: vec2f;
#endif
#ifdef UV2
attribute uv2: vec2f;
#endif
#endif
#include<logDepthDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input: VertexInputs)->FragmentInputs {var positionUpdated: vec3f=vertexInputs.position;var normalUpdated: vec3f=vertexInputs.normal;
#ifdef UV1
var uvUpdated: vec2f=vertexInputs.uv;
#endif
#ifdef UV2
var uv2Updated: vec2f=vertexInputs.uv2;
#endif
#include<morphTargetsVertexGlobal>
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
var offsetPosition: vec3f=positionUpdated+(normalUpdated*uniforms.offset);
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
var worldPos: vec4f=finalWorld*vec4f(offsetPosition,1.0);vertexOutputs.position=uniforms.viewProjection*worldPos;
#ifdef ALPHATEST
#ifdef UV1
vertexOutputs.vUV=(uniforms.diffuseMatrix*vec4f(uvUpdated,1.0,0.0)).xy;
#endif
#ifdef UV2
vertexOutputs.vUV=(uniforms.diffuseMatrix*vec4f(uv2Updated,1.0,0.0)).xy;
#endif
#endif
#include<clipPlaneVertex>
#include<logDepthVertex>
}
`;H.ShadersStoreWGSL[Rle]||(H.ShadersStoreWGSL[Rle]=UEe);const jEe={name:Rle,shader:UEe},mKe=Object.freeze(Object.defineProperty({__proto__:null,outlineVertexShaderWGSL:jEe},Symbol.toStringTag,{value:"Module"})),Dle="copyTexture3DLayerToTexturePixelShader",VEe=`precision highp sampler3D;uniform sampler3D textureSampler;uniform int layerNum;varying vec2 vUV;void main(void) {vec3 coord=vec3(0.0,0.0,float(layerNum));coord.xy=vec2(vUV.x,vUV.y)*vec2(textureSize(textureSampler,0).xy);vec3 color=texelFetch(textureSampler,ivec3(coord),0).rgb;gl_FragColor=vec4(color,1);}
`;H.ShadersStore[Dle]||(H.ShadersStore[Dle]=VEe);const GEe={name:Dle,shader:VEe},gKe=Object.freeze(Object.defineProperty({__proto__:null,copyTexture3DLayerToTexturePixelShader:GEe},Symbol.toStringTag,{value:"Module"})),Nle="copyTexture3DLayerToTexturePixelShader",WEe=`var textureSampler: texture_3d<f32>;uniform layerNum: i32;varying vUV: vec2f;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {let coord=vec3f(vec2f(input.vUV.x,input.vUV.y)*vec2f(textureDimensions(textureSampler,0).xy),f32(uniforms.layerNum));let color=textureLoad(textureSampler,vec3i(coord),0).rgb;fragmentOutputs.color= vec4f(color,1);}`;H.ShadersStoreWGSL[Nle]||(H.ShadersStoreWGSL[Nle]=WEe);const HEe={name:Nle,shader:WEe},_Ke=Object.freeze(Object.defineProperty({__proto__:null,copyTexture3DLayerToTexturePixelShaderWGSL:HEe},Symbol.toStringTag,{value:"Module"})),wle="iblShadowVoxelTracingPixelShader",YEe=`precision highp sampler2D;precision highp sampler3D;
#define PI 3.1415927
varying vec2 vUV;
#define DISABLE_UNIFORMITY_ANALYSIS
uniform sampler2D depthSampler;uniform sampler2D worldNormalSampler;uniform sampler2D blueNoiseSampler;uniform sampler2D icdfSampler;uniform sampler3D voxelGridSampler;
#ifdef COLOR_SHADOWS
uniform samplerCube iblSampler;
#endif
uniform vec4 shadowParameters;
#define SHADOWdirs shadowParameters.x
#define SHADOWframe shadowParameters.y
#define SHADOWenvRot shadowParameters.w
uniform vec4 voxelBiasParameters;
#define highestMipLevel voxelBiasParameters.z
uniform vec4 sssParameters;
#define SSSsamples sssParameters.x
#define SSSstride sssParameters.y
#define SSSmaxDistance sssParameters.z
#define SSSthickness sssParameters.w
uniform vec4 shadowOpacity;uniform mat4 projMtx;uniform mat4 viewMtx;uniform mat4 invProjMtx;uniform mat4 invViewMtx;uniform mat4 wsNormalizationMtx;uniform mat4 invVPMtx;
#define PI 3.1415927
#define GOLD 0.618034
struct AABB3f {vec3 m_min;vec3 m_max;};struct Ray {vec3 orig;vec3 dir;vec3 dir_rcp;float t_min;float t_max;};Ray make_ray(const vec3 origin,const vec3 direction,const float tmin,
const float tmax) {Ray ray;ray.orig=origin;ray.dir=direction;ray.dir_rcp=1.0f/direction;ray.t_min=tmin;ray.t_max=tmax;return ray;}
bool ray_box_intersection(const in AABB3f aabb,const in Ray ray,
out float distance_near,out float distance_far) {vec3 tbot=ray.dir_rcp*(aabb.m_min-ray.orig);vec3 ttop=ray.dir_rcp*(aabb.m_max-ray.orig);vec3 tmin=min(ttop,tbot);vec3 tmax=max(ttop,tbot);distance_near=max(ray.t_min,max(tmin.x,max(tmin.y,tmin.z)));distance_far=min(ray.t_max,min(tmax.x,min(tmax.y,tmax.z)));return distance_near<=distance_far;}
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
struct VoxelMarchDiagnosticInfo {float heat;ivec3 voxel_intersect_coords;};
#endif
uint hash(uint i) {i ^= i>>16u;i*=0x7FEB352Du;i ^= i>>15u;i*=0x846CA68Bu;i ^= i>>16u;return i;}
float uint2float(uint i) {return uintBitsToFloat(0x3F800000u | (i>>9u))-1.0;}
vec3 uv_to_normal(vec2 uv) {vec3 N;vec2 uvRange=uv;float theta=uvRange.x*2.0*PI;float phi=uvRange.y*PI;N.x=cos(theta)*sin(phi);N.z=sin(theta)*sin(phi);N.y=cos(phi);return N;}
vec2 plasticSequence(const uint rstate) {return vec2(uint2float(rstate*3242174889u),
uint2float(rstate*2447445414u));}
float goldenSequence(const uint rstate) {return uint2float(rstate*2654435769u);}
float distanceSquared(vec2 a,vec2 b) {vec2 diff=a-b;return dot(diff,diff);}
void genTB(const vec3 N,out vec3 T,out vec3 B) {float s=N.z<0.0 ? -1.0 : 1.0;float a=-1.0/(s+N.z);float b=N.x*N.y*a;T=vec3(1.0+s*N.x*N.x*a,s*b,-s*N.x);B=vec3(b,s+N.y*N.y*a,-N.y);}
int stack[24]; 
#define PUSH(i) stack[stackLevel++]=i; 
#define POP() stack[--stackLevel] 
#ifdef VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
bool anyHitVoxels(const Ray ray_vs,
out VoxelMarchDiagnosticInfo voxel_march_diagnostic_info) {
#else
bool anyHitVoxels(const Ray ray_vs) {
#endif
vec3 invD=ray_vs.dir_rcp;vec3 D=ray_vs.dir;vec3 O=ray_vs.orig;ivec3 negD=ivec3(lessThan(D,vec3(0,0,0)));int voxel0=negD.x | negD.y<<1 | negD.z<<2;vec3 t0=-O*invD,t1=(vec3(1.0)-O)*invD;int maxLod=int(highestMipLevel);int stackLevel=0;
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
uint steps=0u;
#endif
PUSH(maxLod<<24);while (stackLevel>0) {int elem=POP();ivec4 Coords =
ivec4(elem & 0xFF,elem>>8 & 0xFF,elem>>16 & 0xFF,elem>>24);if (Coords.w==0) {
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
voxel_march_diagnostic_info.heat=float(steps)/24.0;
#endif
return true;}
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
++steps;
#endif
float invRes=exp2(float(Coords.w-maxLod));vec3 bbmin=invRes*vec3(Coords.xyz+negD);vec3 bbmax=invRes*vec3(Coords.xyz-negD+ivec3(1));vec3 mint=mix(t0,t1,bbmin);vec3 maxt=mix(t0,t1,bbmax);vec3 midt=0.5*(mint+maxt);mint.x=max(0.0,mint.x);midt.x=max(0.0,midt.x);int nodeMask=int(
round(texelFetch(voxelGridSampler,Coords.xyz,Coords.w).x*255.0));Coords.w--;int voxelBit=voxel0;Coords.xyz=(Coords.xyz<<1)+negD;int packedCoords =
Coords.x | Coords.y<<8 | Coords.z<<16 | Coords.w<<24;if (max(mint.x,max(mint.y,mint.z))<min(midt.x,min(midt.y,midt.z)) &&
(1<<voxelBit & nodeMask) != 0)
PUSH(packedCoords);voxelBit ^= 0x1;packedCoords ^= 0x00001;if (max(midt.x,max(mint.y,mint.z))<min(maxt.x,min(midt.y,midt.z)) &&
(1<<voxelBit & nodeMask) != 0)
PUSH(packedCoords);voxelBit ^= 0x2;packedCoords ^= 0x00100;if (max(midt.x,max(midt.y,mint.z))<min(maxt.x,min(maxt.y,midt.z)) &&
(1<<voxelBit & nodeMask) != 0)
PUSH(packedCoords);voxelBit ^= 0x1;packedCoords ^= 0x00001;if (max(mint.x,max(midt.y,mint.z))<min(midt.x,min(maxt.y,midt.z)) &&
(1<<voxelBit & nodeMask) != 0)
PUSH(packedCoords);voxelBit ^= 0x4;packedCoords ^= 0x10000;if (max(mint.x,max(midt.y,midt.z))<min(midt.x,min(maxt.y,maxt.z)) &&
(1<<voxelBit & nodeMask) != 0)
PUSH(packedCoords);voxelBit ^= 0x1;packedCoords ^= 0x00001;if (max(midt.x,max(midt.y,midt.z))<min(maxt.x,min(maxt.y,maxt.z)) &&
(1<<voxelBit & nodeMask) != 0)
PUSH(packedCoords);voxelBit ^= 0x2;packedCoords ^= 0x00100;if (max(midt.x,max(mint.y,midt.z))<min(maxt.x,min(midt.y,maxt.z)) &&
(1<<voxelBit & nodeMask) != 0)
PUSH(packedCoords);voxelBit ^= 0x1;packedCoords ^= 0x00001;if (max(mint.x,max(mint.y,midt.z))<min(midt.x,min(midt.y,maxt.z)) &&
(1<<voxelBit & nodeMask) != 0)
PUSH(packedCoords);}
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
voxel_march_diagnostic_info.heat=float(steps)/24.0;
#endif
return false;}
float linearizeDepth(float depth,float near,float far) {return (near*far)/(far-depth*(far-near));}
float screenSpaceShadow(vec3 csOrigin,vec3 csDirection,vec2 csZBufferSize,
float nearPlaneZ,float farPlaneZ,float noise) {
#ifdef RIGHT_HANDED
float csZDir=-1.0;
#else 
float csZDir=1.0;
#endif
float ssSamples=SSSsamples;float ssMaxDist=SSSmaxDistance;float ssStride=SSSstride;float ssThickness=SSSthickness;float rayLength =
csZDir*(csOrigin.z+ssMaxDist*csDirection.z)<csZDir*nearPlaneZ
? 
(nearPlaneZ-csOrigin.z)/csDirection.z
: ssMaxDist;vec3 csEndPoint=csOrigin+rayLength*csDirection;vec4 H0=projMtx*vec4(csOrigin,1.0);vec4 H1=projMtx*vec4(csEndPoint,1.0);vec2 Z0=vec2(csOrigin.z ,1.0)/H0.w;vec2 Z1=vec2(csEndPoint.z,1.0)/H1.w;vec2 P0=csZBufferSize*(0.5*H0.xy*Z0.y+0.5);vec2 P1=csZBufferSize*(0.5*H1.xy*Z1.y+0.5);P1+=vec2(distanceSquared(P0,P1)<0.0001 ? 0.01 : 0.0);vec2 delta=P1-P0;bool permute=false;if (abs(delta.x)<abs(delta.y)) {permute=true;P0=P0.yx;P1=P1.yx;delta=delta.yx;}
float stepDirection=sign(delta.x);float invdx=stepDirection/delta.x;vec2 dP=ssStride*vec2(stepDirection,invdx*delta.y);vec2 dZ=ssStride*invdx*(Z1-Z0);float opacity=0.0;vec2 P=P0+noise*dP;vec2 Z=Z0+noise*dZ;float end=P1.x*stepDirection;float rayZMax=csZDir*Z.x/Z.y;float sceneDepth=rayZMax;Z+=dZ;for (float stepCount=0.0;opacity<1.0 && P.x*stepDirection<end && sceneDepth>0.0 && stepCount<ssSamples;stepCount++,P+=dP,
Z+=dZ) { 
ivec2 coords=ivec2(permute ? P.yx : P);sceneDepth=texelFetch(depthSampler,coords,0).x;sceneDepth=linearizeDepth(sceneDepth,nearPlaneZ,farPlaneZ);sceneDepth=csZDir*sceneDepth;if (sceneDepth<=0.0) {break;}
float rayZMin=rayZMax;rayZMax=csZDir*Z.x/Z.y;opacity+=max(opacity,step(rayZMax,sceneDepth+ssThickness)*step(sceneDepth,rayZMin));}
return opacity;}
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
float voxelShadow(vec3 wsOrigin,vec3 wsDirection,vec3 wsNormal,
vec2 DitherNoise,
out VoxelMarchDiagnosticInfo voxel_march_diagnostic_info) {
#else
float voxelShadow(vec3 wsOrigin,vec3 wsDirection,vec3 wsNormal,
vec2 DitherNoise) {
#endif
float vxResolution=float(textureSize(voxelGridSampler,0).x);vec3 T,B;genTB(wsDirection,T,B);vec2 DitherXY=sqrt(DitherNoise.x)*vec2(cos(2.0*PI*DitherNoise.y),
sin(2.0*PI*DitherNoise.y));float sceneScale=wsNormalizationMtx[0][0];vec3 Dithering =
(voxelBiasParameters.x*wsNormal+voxelBiasParameters.y*wsDirection +
DitherXY.x*T+DitherXY.y*B) /
vxResolution;vec3 O=0.5*wsOrigin+0.5+Dithering;Ray ray_vs=make_ray(O,wsDirection,0.0,10.0);AABB3f voxel_aabb;voxel_aabb.m_min=vec3(0);voxel_aabb.m_max=vec3(1);float near,far;if (!ray_box_intersection(voxel_aabb,ray_vs,near,far))
return 0.0;ray_vs.t_min=max(ray_vs.t_min,near);ray_vs.t_max=min(ray_vs.t_max,far);
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
return anyHitVoxels(ray_vs,voxel_march_diagnostic_info) ? 1.0f : 0.0f;
#else
return anyHitVoxels(ray_vs) ? 1.0f : 0.0f;
#endif
}
void main(void) {uint nbDirs=uint(SHADOWdirs);uint frameId=uint(SHADOWframe);float envRot=SHADOWenvRot;vec2 Resolution=vec2(textureSize(depthSampler,0));ivec2 currentPixel=ivec2(vUV*Resolution);uint GlobalIndex=(frameId*uint(Resolution.y)+uint(currentPixel.y)) *
uint(Resolution.x) +
uint(currentPixel.x);vec3 N=texelFetch(worldNormalSampler,currentPixel,0).xyz;if (length(N)<0.01) {glFragColor=vec4(1.0,1.0,0.0,1.0);return;}
float normalizedRotation=envRot/(2.0*PI);float depth=texelFetch(depthSampler,currentPixel,0).x;
#ifndef IS_NDC_HALF_ZRANGE
depth=depth*2.0-1.0;
#endif
vec2 temp=(vec2(currentPixel)+vec2(0.5))*2.0/Resolution-vec2(1.0);vec4 VP=invProjMtx*vec4(temp.x,-temp.y,depth,1.0);VP/=VP.w;N=normalize(N);vec3 noise=texelFetch(blueNoiseSampler,currentPixel & 0xFF,0).xyz;noise.z=fract(noise.z+goldenSequence(frameId*nbDirs));
#ifdef VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
float heat=0.0f;
#endif
float shadowAccum=0.001;float specShadowAccum=0.001;float sampleWeight=0.001;
#ifdef COLOR_SHADOWS
vec3 totalLight=vec3(0.001);vec3 shadowedLight=vec3(0.0);
#endif
for (uint i=0u; i<nbDirs; i++) {uint dirId=nbDirs*GlobalIndex+i;vec4 L;vec2 T;{vec2 r=plasticSequence(frameId*nbDirs+i);r=fract(r+vec2(2.0)*abs(noise.xy-vec2(0.5)));T.x=textureLod(icdfSampler,vec2(r.x,0.0),0.0).x;T.y=textureLod(icdfSampler,vec2(T.x,r.y),0.0).y;L=vec4(uv_to_normal(vec2(T.x-normalizedRotation,T.y)),0);
#ifndef RIGHT_HANDED
L.z*=-1.0;
#endif
}
#ifdef COLOR_SHADOWS
vec3 lightDir=uv_to_normal(vec2(1.0-fract(T.x+0.25),T.y));vec3 ibl=textureLod(iblSampler,lightDir,0.0).xyz;float pdf=textureLod(icdfSampler,T,0.0).z;
#endif
float cosNL=dot(N,L.xyz);float opacity=0.0;if (cosNL>0.0) {vec4 VP2=VP;VP2.y*=-1.0;vec4 unormWP=invViewMtx*VP2;vec3 WP=(wsNormalizationMtx*unormWP).xyz;vec2 vxNoise=vec2(uint2float(hash(dirId*2u)),uint2float(hash(dirId*2u+1u)));
#ifdef VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
VoxelMarchDiagnosticInfo voxel_march_diagnostic_info;opacity=max(opacity,shadowOpacity.x*voxelShadow(WP,L.xyz,N,vxNoise,voxel_march_diagnostic_info));heat+=voxel_march_diagnostic_info.heat;
#else
opacity =
max(opacity,shadowOpacity.x*voxelShadow(WP,L.xyz,N,vxNoise));
#endif
vec3 VL=(viewMtx*L).xyz;
#ifdef RIGHT_HANDED
float nearPlaneZ=-projMtx[3][2]/(projMtx[2][2]-1.0); 
float farPlaneZ=-projMtx[3][2]/(projMtx[2][2]+1.0);
#else
float nearPlaneZ=-projMtx[3][2]/(projMtx[2][2]+1.0); 
float farPlaneZ=-projMtx[3][2]/(projMtx[2][2]-1.0);
#endif
float ssShadow=shadowOpacity.y *
screenSpaceShadow(VP2.xyz,VL,Resolution,nearPlaneZ,farPlaneZ,
abs(2.0*noise.z-1.0));opacity=max(opacity,ssShadow);
#ifdef COLOR_SHADOWS
vec3 light=pdf<1e-6 ? vec3(0.0) : vec3(cosNL)/vec3(pdf)*ibl;shadowedLight+=light*opacity;totalLight+=light;
#else
float rcos=(1.0-cosNL);shadowAccum+=(1.0-opacity*(1.0-pow(rcos,8.0)));sampleWeight+=1.0;vec3 VR=-(viewMtx*vec4(reflect(-L.xyz,N),0.0)).xyz;specShadowAccum+=max(1.0-(opacity*pow(VR.z,8.0)),0.0);
#endif
}
noise.z=fract(noise.z+GOLD);}
#ifdef COLOR_SHADOWS
vec3 shadow=(totalLight-shadowedLight)/totalLight;float maxShadow=max(max(shadow.x,max(shadow.y,shadow.z)),1.0);glFragColor=vec4(shadow/maxShadow,1.0);
#else
#ifdef VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
gl_FragColor=vec4(shadowAccum/float(sampleWeight),
specShadowAccum/float(sampleWeight),heat/float(sampleWeight),1.0);
#else
gl_FragColor=vec4(shadowAccum/float(sampleWeight),specShadowAccum/float(sampleWeight),0.0,1.0);
#endif
#endif
}`;H.ShadersStore[wle]||(H.ShadersStore[wle]=YEe);const XEe={name:wle,shader:YEe},vKe=Object.freeze(Object.defineProperty({__proto__:null,iblShadowVoxelTracingPixelShader:XEe},Symbol.toStringTag,{value:"Module"})),Ble="iblShadowVoxelTracingPixelShader",ZEe=`#define PI 3.1415927
varying vUV: vec2f;
#define DISABLE_UNIFORMITY_ANALYSIS
var depthSampler: texture_2d<f32>;var worldNormalSampler : texture_2d<f32>;var blueNoiseSampler: texture_2d<f32>;var icdfSamplerSampler: sampler;var icdfSampler: texture_2d<f32>;var voxelGridSamplerSampler: sampler;var voxelGridSampler: texture_3d<f32>;
#ifdef COLOR_SHADOWS
var iblSamplerSampler: sampler;var iblSampler: texture_cube<f32>;
#endif
uniform shadowParameters: vec4f;
#define SHADOWdirs uniforms.shadowParameters.x
#define SHADOWframe uniforms.shadowParameters.y
#define SHADOWenvRot uniforms.shadowParameters.w
uniform voxelBiasParameters : vec4f;
#define highestMipLevel uniforms.voxelBiasParameters.z
uniform sssParameters: vec4f;
#define SSSsamples uniforms.sssParameters.x
#define SSSstride uniforms.sssParameters.y
#define SSSmaxDistance uniforms.sssParameters.z
#define SSSthickness uniforms.sssParameters.w
uniform shadowOpacity: vec4f;uniform projMtx: mat4x4f;uniform viewMtx: mat4x4f;uniform invProjMtx: mat4x4f;uniform invViewMtx: mat4x4f;uniform wsNormalizationMtx: mat4x4f;uniform invVPMtx: mat4x4f;
#define PI 3.1415927
#define GOLD 0.618034
struct AABB3f {m_min: vec3f,
m_max: vec3f,};struct Ray {orig: vec3f,
dir: vec3f,
dir_rcp: vec3f,
t_min: f32,
t_max: f32,};fn make_ray(origin: vec3f,direction: vec3f,tmin: f32,
tmax: f32)->Ray {var ray: Ray;ray.orig=origin;ray.dir=direction;ray.dir_rcp=1.0f/direction;ray.t_min=tmin;ray.t_max=tmax;return ray;}
fn ray_box_intersection(aabb: AABB3f,ray: Ray ,
distance_near: ptr<function,f32>,distance_far: ptr<function,f32>)->bool{var tbot: vec3f=ray.dir_rcp*(aabb.m_min-ray.orig);var ttop: vec3f=ray.dir_rcp*(aabb.m_max-ray.orig);var tmin: vec3f=min(ttop,tbot);var tmax: vec3f=max(ttop,tbot);*distance_near=max(ray.t_min,max(tmin.x,max(tmin.y,tmin.z)));*distance_far=min(ray.t_max,min(tmax.x,min(tmax.y,tmax.z)));return *distance_near<=*distance_far;}
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
struct VoxelMarchDiagnosticInfo {heat: f32,
voxel_intersect_coords: vec3i,};
#endif
fn hash(i: u32)->u32 {var temp=i ^ (i>>16u);temp*=0x7FEB352Du;temp ^= temp>>15u;temp*=0x846CA68Bu;temp ^= temp>>16u;return temp;}
fn uintBitsToFloat(x: u32)->f32 {return bitcast<f32>(x);}
fn uint2float(i: u32)->f32 {return uintBitsToFloat(0x3F800000u | (i>>9u))-1.0;}
fn uv_to_normal(uv: vec2f)->vec3f {var N: vec3f;var uvRange: vec2f=uv;var theta: f32=uvRange.x*2.0*PI;var phi: f32=uvRange.y*PI;N.x=cos(theta)*sin(phi);N.z=sin(theta)*sin(phi);N.y=cos(phi);return N;}
fn plasticSequence(rstate: u32)->vec2f {return vec2f(uint2float(rstate*3242174889u),
uint2float(rstate*2447445414u));}
fn goldenSequence(rstate: u32)->f32 {return uint2float(rstate*2654435769u);}
fn distanceSquared(a: vec2f,b: vec2f)->f32 {var diff: vec2f=a-b;return dot(diff,diff);}
fn genTB(N: vec3f,T: ptr<function,vec3f>,B: ptr<function,vec3f>) {var s: f32=select(1.0,-1.0,N.z<0.0);var a: f32=-1.0/(s+N.z);var b: f32=N.x*N.y*a;*T= vec3f(1.0+s*N.x*N.x*a,s*b,-s*N.x);*B= vec3f(b,s+N.y*N.y*a,-N.y);}
fn lessThan(x: vec3f,y: vec3f)->vec3<bool> {return x<y;}
#ifdef VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
fn anyHitVoxels(ray_vs: Ray,
voxel_march_diagnostic_info: ptr<function,VoxelMarchDiagnosticInfo>)->bool {
#else
fn anyHitVoxels(ray_vs: Ray)->bool {
#endif
var stack=array<i32,24>(); 
var invD: vec3f=ray_vs.dir_rcp;var D: vec3f=ray_vs.dir;var O: vec3f=ray_vs.orig;var negD=vec3i(lessThan(D, vec3f(0,0,0)));var voxel0: i32=negD.x | (negD.y<<1) | (negD.z<<2);var t0: vec3f=-O*invD;var t1=(vec3f(1.0)-O)*invD;var maxLod: i32= i32(highestMipLevel);var stackLevel: i32=0;
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
var steps: u32=0u;
#endif
stack[stackLevel]=maxLod<<24;stackLevel++;while (stackLevel>0) {stackLevel=stackLevel-1;var elem: i32=stack[stackLevel];var Coords: vec4i =
vec4i(elem & 0xFF,(elem>>8) & 0xFF,(elem>>16) & 0xFF,elem>>24);if (Coords.w==0) {
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
*voxel_march_diagnostic_info.heat= f32(steps)/24.0;
#endif
return true;}
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
++steps;
#endif
var invRes: f32=exp2(f32(Coords.w-maxLod));var bbmin: vec3f=invRes*vec3f(Coords.xyz+negD);var bbmax: vec3f=invRes*vec3f(Coords.xyz-negD+vec3i(1));var mint: vec3f=mix(t0,t1,bbmin);var maxt: vec3f=mix(t0,t1,bbmax);var midt: vec3f=0.5*(mint+maxt);mint.x=max(0.0,mint.x);midt.x=max(0.0,midt.x);var nodeMask: u32= u32(
round(textureLoad(voxelGridSampler,Coords.xyz,Coords.w).x*255.0));Coords.w--;var voxelBit: u32=u32(voxel0);Coords=vec4i((Coords.xyz<<vec3u(1))+negD,Coords.w);var packedCoords: i32 =
Coords.x | (Coords.y<<8) | (Coords.z<<16) | (Coords.w<<24);if (max(mint.x,max(mint.y,mint.z))<min(midt.x,min(midt.y,midt.z)) &&
((1u<<voxelBit) & nodeMask) != 0) {stack[stackLevel]=packedCoords;stackLevel++;}
voxelBit ^= 0x1;packedCoords ^= 0x00001;if (max(midt.x,max(mint.y,mint.z))<min(maxt.x,min(midt.y,midt.z)) &&
((1u<<voxelBit) & nodeMask) != 0) {stack[stackLevel]=packedCoords;stackLevel++;}
voxelBit ^= 0x2;packedCoords ^= 0x00100;if (max(midt.x,max(midt.y,mint.z))<min(maxt.x,min(maxt.y,midt.z)) &&
((1u<<voxelBit) & nodeMask) != 0) {stack[stackLevel]=packedCoords;stackLevel++;}
voxelBit ^= 0x1;packedCoords ^= 0x00001;if (max(mint.x,max(midt.y,mint.z))<min(midt.x,min(maxt.y,midt.z)) &&
((1u<<voxelBit) & nodeMask) != 0) {stack[stackLevel]=packedCoords;stackLevel++;}
voxelBit ^= 0x4;packedCoords ^= 0x10000;if (max(mint.x,max(midt.y,midt.z))<min(midt.x,min(maxt.y,maxt.z)) &&
((1u<<voxelBit) & nodeMask) != 0) {stack[stackLevel]=packedCoords;stackLevel++;}
voxelBit ^= 0x1;packedCoords ^= 0x00001;if (max(midt.x,max(midt.y,midt.z))<min(maxt.x,min(maxt.y,maxt.z)) &&
((1u<<voxelBit) & nodeMask) != 0) {stack[stackLevel]=packedCoords;stackLevel++;}
voxelBit ^= 0x2;packedCoords ^= 0x00100;if (max(midt.x,max(mint.y,midt.z))<min(maxt.x,min(midt.y,maxt.z)) &&
((1u<<voxelBit) & nodeMask) != 0) {stack[stackLevel]=packedCoords;stackLevel++;}
voxelBit ^= 0x1;packedCoords ^= 0x00001;if (max(mint.x,max(mint.y,midt.z))<min(midt.x,min(midt.y,maxt.z)) &&
((1u<<voxelBit) & nodeMask) != 0) {stack[stackLevel]=packedCoords;stackLevel++;}}
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
*voxel_march_diagnostic_info.heat= f32(steps)/24.0;
#endif
return false;}
fn linearizeDepth(depth: f32,near: f32,far: f32)->f32 {return (near*far)/(far-depth*(far-near));}
fn screenSpaceShadow(csOrigin: vec3f,csDirection: vec3f,csZBufferSize: vec2f,
nearPlaneZ: f32,farPlaneZ: f32,noise: f32)->f32 {
#ifdef RIGHT_HANDED
var csZDir : f32=-1.0;
#else 
var csZDir : f32=1.0;
#endif
var ssSamples: f32=SSSsamples;var ssMaxDist: f32=SSSmaxDistance;var ssStride: f32=SSSstride;var ssThickness: f32=SSSthickness;var rayLength: f32 =
select(ssMaxDist,(nearPlaneZ-csOrigin.z)/csDirection.z,
csZDir*(csOrigin.z+ssMaxDist*csDirection.z)<csZDir*nearPlaneZ);var csEndPoint: vec3f=csOrigin+rayLength*csDirection;var H0: vec4f=uniforms.projMtx*vec4f(csOrigin,1.0);var H1: vec4f=uniforms.projMtx*vec4f(csEndPoint,1.0);var Z0=vec2f(csOrigin.z ,1.0)/H0.w;var Z1=vec2f(csEndPoint.z,1.0)/H1.w;var P0=csZBufferSize*(0.5*H0.xy*Z0.y+0.5);var P1=csZBufferSize*(0.5*H1.xy*Z1.y+0.5);P1+= vec2f(select(0.0,0.01,distanceSquared(P0,P1)<0.0001));var delta: vec2f=P1-P0;var permute: bool=false;if (abs(delta.x)<abs(delta.y)) {permute=true;P0=P0.yx;P1=P1.yx;delta=delta.yx;}
var stepDirection: f32=sign(delta.x);var invdx: f32=stepDirection/delta.x;var dP: vec2f=ssStride* vec2f(stepDirection,invdx*delta.y);var dZ: vec2f=ssStride*invdx*(Z1-Z0);var opacity: f32=0.0;var P: vec2f=P0+noise*dP;var Z: vec2f=Z0+noise*dZ;var end: f32=P1.x*stepDirection;var rayZMax=csZDir*Z.x/Z.y;var sceneDepth=rayZMax;Z+=dZ;for (var stepCount: f32=0.0; 
opacity<1.0 && P.x*stepDirection<end && sceneDepth>0.0 && stepCount<ssSamples;stepCount+=1) { 
var coords=vec2i(select(P,P.yx,permute));sceneDepth=textureLoad(depthSampler,coords,0).x;sceneDepth=linearizeDepth(sceneDepth,nearPlaneZ,farPlaneZ);sceneDepth=csZDir*sceneDepth;if (sceneDepth<=0.0) {break;}
var rayZMin: f32=rayZMax;rayZMax=csZDir*Z.x/Z.y;opacity+=max(opacity,step(rayZMax,sceneDepth+ssThickness)*step(sceneDepth,rayZMin));P+=dP;Z+=dZ;}
return opacity;}
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
fn voxelShadow(wsOrigin: vec3f,wsDirection: vec3f,wsNormal: vec3f,
DitherNoise: vec2f,
voxel_march_diagnostic_info: ptr<function,VoxelMarchDiagnosticInfo>)->f32 {
#else
fn voxelShadow(wsOrigin: vec3f,wsDirection: vec3f,wsNormal: vec3f,
DitherNoise: vec2f)->f32 {
#endif
var vxResolution: f32=f32(textureDimensions(voxelGridSampler,0).x);var T: vec3f;var B: vec3f;genTB(wsDirection,&T,&B);var DitherXY: vec2f=sqrt(DitherNoise.x)* vec2f(cos(2.0*PI*DitherNoise.y),
sin(2.0*PI*DitherNoise.y));var Dithering : vec3f=(uniforms.voxelBiasParameters.x*wsNormal +
uniforms.voxelBiasParameters.y*wsDirection +
DitherXY.x*T+DitherXY.y*B) /
vxResolution;var O: vec3f=0.5*wsOrigin+0.5+Dithering;var ray_vs=make_ray(O,wsDirection,0.0,10.0);var voxel_aabb: AABB3f;voxel_aabb.m_min=vec3f(0);voxel_aabb.m_max=vec3f(1);var near: f32=0;var far: f32=0;if (!ray_box_intersection(voxel_aabb,ray_vs,&near,&far)) {return 0.0;}
ray_vs.t_min=max(ray_vs.t_min,near);ray_vs.t_max=min(ray_vs.t_max,far);
#if VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
return select(0.0f,1.0f,anyHitVoxels(ray_vs,voxel_march_diagnostic_info));
#else
return select(0.0f,1.0f,anyHitVoxels(ray_vs));
#endif
}
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var nbDirs=u32(SHADOWdirs);var frameId=u32(SHADOWframe);var envRot: f32=SHADOWenvRot;var Resolution: vec2f= vec2f(textureDimensions(depthSampler,0));var currentPixel=vec2i(fragmentInputs.vUV*Resolution);var GlobalIndex =
(frameId*u32(Resolution.y)+u32(currentPixel.y))*u32(Resolution.x) +
u32(currentPixel.x);var N : vec3f=textureLoad(worldNormalSampler,currentPixel,0).xyz;if (length(N)<0.01) {fragmentOutputs.color=vec4f(1.0,1.0,0.0,1.0);return fragmentOutputs;}
var normalizedRotation: f32=envRot/(2.0*PI);var depth : f32=textureLoad(depthSampler,currentPixel,0).x;
#ifndef IS_NDC_HALF_ZRANGE
depth=depth*2.0-1.0;
#endif
var temp : vec2f=(vec2f(currentPixel)+vec2f(0.5))*2.0/Resolution -
vec2f(1.0);var VP : vec4f=uniforms.invProjMtx*vec4f(temp.x,-temp.y,depth,1.0);VP/=VP.w;N=normalize(N);var noise : vec3f=textureLoad(blueNoiseSampler,currentPixel & vec2i(0xFF),0).xyz;noise.z=fract(noise.z+goldenSequence(frameId*nbDirs));
#ifdef VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
var heat: f32=0.0f;
#endif
var shadowAccum: f32=0.001;var specShadowAccum: f32=0.001;var sampleWeight : f32=0.001;
#ifdef COLOR_SHADOWS
var totalLight: vec3f=vec3f(0.001);var shadowedLight: vec3f=vec3f(0.0);
#endif
for (var i: u32=0; i<nbDirs; i++) {var dirId: u32=nbDirs*GlobalIndex+i;var L: vec4f;var T: vec2f;{var r: vec2f=plasticSequence(frameId*nbDirs+i);r=fract(r+ vec2f(2.0)*abs(noise.xy- vec2f(0.5)));T.x=textureSampleLevel(icdfSampler,icdfSamplerSampler,vec2f(r.x,0.0),0.0).x;T.y=textureSampleLevel(icdfSampler,icdfSamplerSampler,vec2f(T.x,r.y),0.0).y;L= vec4f(uv_to_normal(vec2f(T.x-normalizedRotation,T.y)),0);
#ifndef RIGHT_HANDED
L.z*=-1.0;
#endif
}
#ifdef COLOR_SHADOWS
var lightDir: vec3f=uv_to_normal(vec2f(1.0-fract(T.x+0.25),T.y));var ibl: vec3f=textureSampleLevel(iblSampler,iblSamplerSampler,lightDir,0.0).xyz;var pdf: f32=textureSampleLevel(icdfSampler,icdfSamplerSampler,T,0.0).z;
#endif
var cosNL: f32=dot(N,L.xyz);var opacity: f32=0.0;if (cosNL>0.0) {var VP2: vec4f=VP;VP2.y*=-1.0;var unormWP : vec4f=uniforms.invViewMtx*VP2;var WP: vec3f=(uniforms.wsNormalizationMtx*unormWP).xyz;var vxNoise: vec2f=vec2f(uint2float(hash(dirId*2)),uint2float(hash(dirId*2+1)));
#ifdef VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
VoxelMarchDiagnosticInfo voxel_march_diagnostic_info;opacity=max(opacity,
uniforms.shadowOpacity.x*voxelShadow(WP,L.xyz,N,vxNoise,
voxel_march_diagnostic_info));heat+=voxel_march_diagnostic_info.heat;
#else
opacity =
max(opacity,uniforms.shadowOpacity.x*voxelShadow(WP,L.xyz,N,vxNoise));
#endif
var VL : vec3f=(uniforms.viewMtx*L).xyz;
#ifdef RIGHT_HANDED
var nearPlaneZ: f32=-2.0*uniforms.projMtx[3][2]/(uniforms.projMtx[2][2]-1.0); 
var farPlaneZ: f32=-uniforms.projMtx[3][2]/(uniforms.projMtx[2][2]+1.0);
#else
var nearPlaneZ: f32=-2.0*uniforms.projMtx[3][2]/(uniforms.projMtx[2][2]+1.0); 
var farPlaneZ: f32=-uniforms.projMtx[3][2]/(uniforms.projMtx[2][2]-1.0);
#endif
var ssShadow: f32=uniforms.shadowOpacity.y *
screenSpaceShadow(VP2.xyz,VL,Resolution,nearPlaneZ,farPlaneZ,
abs(2.0*noise.z-1.0));opacity=max(opacity,ssShadow);
#ifdef COLOR_SHADOWS
var light: vec3f=select(vec3f(0.0),vec3f(cosNL)/vec3f(pdf)*ibl,pdf>1e-6);shadowedLight+=light*opacity;totalLight+=light;
#else
var rcos: f32=1.0-cosNL;shadowAccum+=(1.0-opacity*(1.0-pow(rcos,8.0)));sampleWeight+=1.0;var VR : vec3f=abs((uniforms.viewMtx*vec4f(reflect(-L.xyz,N),0.0)).xyz);specShadowAccum+=max(1.0-(opacity*pow(VR.z,8.0)),0.0);
#endif
}
noise.z=fract(noise.z+GOLD);}
#ifdef COLOR_SHADOWS
var shadow: vec3f=(totalLight-shadowedLight)/totalLight;var maxShadow: f32=max(max(shadow.x,max(shadow.y,shadow.z)),1.0);fragmentOutputs.color=vec4f(shadow/maxShadow,1.0);
#else
#ifdef VOXEL_MARCH_DIAGNOSTIC_INFO_OPTION
fragmentOutputs.color =
vec4f(shadowAccum/sampleWeight,specShadowAccum/sampleWeight,heat/sampleWeight,1.0);
#else
fragmentOutputs.color=vec4f(shadowAccum/sampleWeight,specShadowAccum/sampleWeight,0.0,1.0);
#endif
#endif
}`;H.ShadersStoreWGSL[Ble]||(H.ShadersStoreWGSL[Ble]=ZEe);const KEe={name:Ble,shader:ZEe},AKe=Object.freeze(Object.defineProperty({__proto__:null,iblShadowVoxelTracingPixelShaderWGSL:KEe},Symbol.toStringTag,{value:"Module"})),zle="iblShadowDebugPixelShader",qEe=`#ifdef GL_ES
precision mediump float;
#endif
varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D debugSampler;uniform vec4 sizeParams;
#define offsetX sizeParams.x
#define offsetY sizeParams.y
#define widthScale sizeParams.z
#define heightScale sizeParams.w
void main(void) {vec2 uv =
vec2((offsetX+vUV.x)*widthScale,(offsetY+vUV.y)*heightScale);vec4 background=texture2D(textureSampler,vUV);vec4 debugColour=texture2D(debugSampler,vUV);if (uv.x<0.0 || uv.x>1.0 || uv.y<0.0 || uv.y>1.0) {gl_FragColor.rgba=background;} else {gl_FragColor.rgb=mix(debugColour.rgb,background.rgb,0.0);gl_FragColor.a=1.0;}}`;H.ShadersStore[zle]||(H.ShadersStore[zle]=qEe);const QEe={name:zle,shader:qEe},Fle=Object.freeze(Object.defineProperty({__proto__:null,iblShadowDebugPixelShader:QEe},Symbol.toStringTag,{value:"Module"})),kle="iblShadowDebugPixelShader",JEe=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var debugSamplerSampler: sampler;var debugSampler: texture_2d<f32>;uniform sizeParams: vec4f;
#define offsetX uniforms.sizeParams.x
#define offsetY uniforms.sizeParams.y
#define widthScale uniforms.sizeParams.z
#define heightScale uniforms.sizeParams.w
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var uv: vec2f =
vec2f((offsetX+fragmentInputs.vUV.x)*widthScale,(offsetY+fragmentInputs.vUV.y)*heightScale);var background: vec4f=textureSample(textureSampler,textureSamplerSampler,fragmentInputs.vUV);var debugColour: vec4f=textureSample(debugSampler,debugSamplerSampler,fragmentInputs.vUV);if (uv.x<0.0 || uv.x>1.0 || uv.y<0.0 || uv.y>1.0) {fragmentOutputs.color=background;} else {fragmentOutputs.color=vec4f(mix(debugColour.rgb,background.rgb,0.0),1.0);}}`;H.ShadersStoreWGSL[kle]||(H.ShadersStoreWGSL[kle]=JEe);const $Ee={name:kle,shader:JEe},Ule=Object.freeze(Object.defineProperty({__proto__:null,iblShadowDebugPixelShaderWGSL:$Ee},Symbol.toStringTag,{value:"Module"})),jle="iblShadowSpatialBlurPixelShader",eTe=`#define PI 3.1415927
varying vUV: vec2f;var depthSampler: texture_2d<f32>;var worldNormalSampler: texture_2d<f32>;var voxelTracingSampler : texture_2d<f32>;uniform blurParameters: vec4f;
#define stridef uniforms.blurParameters.x
#define worldScale uniforms.blurParameters.y
const weights=array<f32,5>(0.0625,0.25,0.375,0.25,0.0625);const nbWeights: i32=5;fn max2(v: vec2f,w: vec2f)->vec2f {return vec2f(max(v.x,w.x),max(v.y,w.y));}
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var gbufferRes=vec2f(textureDimensions(depthSampler,0));var gbufferPixelCoord= vec2i(fragmentInputs.vUV*gbufferRes);var shadowRes=vec2f(textureDimensions(voxelTracingSampler,0));var shadowPixelCoord= vec2i(fragmentInputs.vUV*shadowRes);var N: vec3f=textureLoad(worldNormalSampler,gbufferPixelCoord,0).xyz;if (length(N)<0.01) {fragmentOutputs.color=vec4f(1.0,1.0,0.0,1.0);return fragmentOutputs;}
var depth: f32=-textureLoad(depthSampler,gbufferPixelCoord,0).x;var X: vec4f= vec4f(0.0);for(var y: i32=0; y<nbWeights; y++) {for(var x: i32=0; x<nbWeights; x++) {var gBufferCoords: vec2i=gbufferPixelCoord+i32(stridef)*vec2i(x-(nbWeights>>1),y-(nbWeights>>1));var shadowCoords: vec2i=shadowPixelCoord+i32(stridef)*vec2i(x-(nbWeights>>1),y-(nbWeights>>1));var T : vec3f=textureLoad(voxelTracingSampler,shadowCoords,0).xyz;var ddepth: f32=-textureLoad(depthSampler,gBufferCoords,0).x-depth;var dN: vec3f=textureLoad(worldNormalSampler,gBufferCoords,0).xyz-N;var w: f32=weights[x]*weights[y] *
exp2(max(-1000.0/(worldScale*worldScale),-0.5) *
(ddepth*ddepth) -
1e1*dot(dN,dN));X+= vec4f(w*T.x,w*T.y,w*T.z,w);}}
fragmentOutputs.color= vec4f(X.x/X.w,X.y/X.w,X.z/X.w,1.0);}`;H.ShadersStoreWGSL[jle]||(H.ShadersStoreWGSL[jle]=eTe);const tTe={name:jle,shader:eTe},CKe=Object.freeze(Object.defineProperty({__proto__:null,iblShadowSpatialBlurPixelShaderWGSL:tTe},Symbol.toStringTag,{value:"Module"})),Vle="iblShadowSpatialBlurPixelShader",iTe=`precision highp sampler2D;
#define PI 3.1415927
varying vec2 vUV;uniform sampler2D depthSampler;uniform sampler2D worldNormalSampler;uniform sampler2D voxelTracingSampler;uniform vec4 blurParameters;
#define stridef blurParameters.x
#define worldScale blurParameters.y
const float weights[5]=float[5](0.0625,0.25,0.375,0.25,0.0625);const int nbWeights=5;vec2 max2(vec2 v,vec2 w) {return vec2(max(v.x,w.x),max(v.y,w.y));}
void main(void)
{vec2 gbufferRes=vec2(textureSize(depthSampler,0));ivec2 gbufferPixelCoord=ivec2(vUV*gbufferRes);vec2 shadowRes=vec2(textureSize(voxelTracingSampler,0));ivec2 shadowPixelCoord=ivec2(vUV*shadowRes);vec3 N=texelFetch(worldNormalSampler,gbufferPixelCoord,0).xyz;if (length(N)<0.01) {glFragColor=vec4(1.0,1.0,0.0,1.0);return;}
float depth=-texelFetch(depthSampler,gbufferPixelCoord,0).x;vec4 X=vec4(0.0);for(int y=0; y<nbWeights; ++y) {for(int x=0; x<nbWeights; ++x) {ivec2 gBufferCoords=gbufferPixelCoord+int(stridef)*ivec2(x-(nbWeights>>1),y-(nbWeights>>1));ivec2 shadowCoords=shadowPixelCoord+int(stridef)*ivec2(x-(nbWeights>>1),y-(nbWeights>>1));vec4 T=texelFetch(voxelTracingSampler,shadowCoords,0);float ddepth=-texelFetch(depthSampler,gBufferCoords,0).x-depth;vec3 dN=texelFetch(worldNormalSampler,gBufferCoords,0).xyz-N;float w=weights[x]*weights[y] *
exp2(max(-1000.0/(worldScale*worldScale),-0.5) *
(ddepth*ddepth) -
1e1*dot(dN,dN));X+=vec4(w*T.x,w*T.y,w*T.z,w);}}
gl_FragColor=vec4(X.x/X.w,X.y/X.w,X.z/X.w,1.0);}`;H.ShadersStore[Vle]||(H.ShadersStore[Vle]=iTe);const sTe={name:Vle,shader:iTe},xKe=Object.freeze(Object.defineProperty({__proto__:null,iblShadowSpatialBlurPixelShader:sTe},Symbol.toStringTag,{value:"Module"})),Gle="iblShadowAccumulationPixelShader",rTe=`varying vUV: vec2f;uniform accumulationParameters: vec4f;
#define remanence uniforms.accumulationParameters.x
#define resetb uniforms.accumulationParameters.y
#define sceneSize uniforms.accumulationParameters.z
var motionSampler: texture_2d<f32>;var positionSampler: texture_2d<f32>;var spatialBlurSampler : texture_2d<f32>;var oldAccumulationSamplerSampler: sampler;var oldAccumulationSampler: texture_2d<f32>;var prevPositionSamplerSampler: sampler;var prevPositionSampler: texture_2d<f32>;fn max2(v: vec2f,w: vec2f)->vec2f { 
return vec2f(max(v.x,w.x),max(v.y,w.y)); }
fn lessThan(x: vec2f,y: vec2f)->vec2<bool> {return x<y;}
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var reset: bool= bool(resetb);var gbufferRes : vec2f=vec2f(textureDimensions(positionSampler,0));var gbufferPixelCoord: vec2i= vec2i(input.vUV*gbufferRes);var shadowRes : vec2f=vec2f(textureDimensions(spatialBlurSampler,0));var shadowPixelCoord: vec2i= vec2i(input.vUV*shadowRes);var LP: vec4f=textureLoad(positionSampler,gbufferPixelCoord,0);if (0.0==LP.w) {fragmentOutputs.color=vec4f(1.0,0.0,0.0,1.0);return fragmentOutputs;}
var velocityColor: vec2f=textureLoad(motionSampler,gbufferPixelCoord,0).xy;var prevCoord: vec2f=input.vUV+velocityColor;var PrevLP: vec3f=textureSampleLevel(prevPositionSampler,prevPositionSamplerSampler,prevCoord,0.0).xyz;var PrevShadows: vec4f=textureSampleLevel(oldAccumulationSampler,oldAccumulationSamplerSampler,prevCoord,0.0);var newShadows : vec3f=textureLoad(spatialBlurSampler,shadowPixelCoord,0).xyz;PrevShadows.a=select(1.0,max(PrevShadows.a/(1.0+PrevShadows.a),1.0-remanence),!reset && all(lessThan(abs(prevCoord- vec2f(0.5)), vec2f(0.5))) &&
distance(LP.xyz,PrevLP)<5e-2*sceneSize);PrevShadows=max( vec4f(0.0),PrevShadows);fragmentOutputs.color= vec4f(mix(PrevShadows.x,newShadows.x,PrevShadows.a),
mix(PrevShadows.y,newShadows.y,PrevShadows.a),
mix(PrevShadows.z,newShadows.z,PrevShadows.a),PrevShadows.a);}`;H.ShadersStoreWGSL[Gle]||(H.ShadersStoreWGSL[Gle]=rTe);const nTe={name:Gle,shader:rTe},bKe=Object.freeze(Object.defineProperty({__proto__:null,iblShadowAccumulationPixelShaderWGSL:nTe},Symbol.toStringTag,{value:"Module"})),Wle="iblShadowAccumulationPixelShader",aTe=`#ifdef GL_ES
precision mediump float;
#endif
varying vec2 vUV;uniform vec4 accumulationParameters;
#define remanence accumulationParameters.x
#define resetb accumulationParameters.y
#define sceneSize accumulationParameters.z
uniform sampler2D motionSampler;uniform sampler2D positionSampler;uniform sampler2D spatialBlurSampler;uniform sampler2D oldAccumulationSampler;uniform sampler2D prevPositionSampler;vec2 max2(vec2 v,vec2 w) { return vec2(max(v.x,w.x),max(v.y,w.y)); }
void main(void) {bool reset=bool(resetb);vec2 gbufferRes=vec2(textureSize(motionSampler,0));ivec2 gbufferPixelCoord=ivec2(vUV*gbufferRes);vec2 shadowRes=vec2(textureSize(spatialBlurSampler,0));ivec2 shadowPixelCoord=ivec2(vUV*shadowRes);vec4 LP=texelFetch(positionSampler,gbufferPixelCoord,0);if (0.0==LP.w) {gl_FragColor=vec4(1.0,0.0,0.0,1.0);return;}
vec2 velocityColor=texelFetch(motionSampler,gbufferPixelCoord,0).xy;vec2 prevCoord=vUV+velocityColor;vec3 PrevLP=texture(prevPositionSampler,prevCoord).xyz;vec4 PrevShadows=texture(oldAccumulationSampler,prevCoord);vec3 newShadows=texelFetch(spatialBlurSampler,shadowPixelCoord,0).xyz;PrevShadows.a =
!reset && all(lessThan(abs(prevCoord-vec2(0.5)),vec2(0.5))) &&
distance(LP.xyz,PrevLP)<5e-2*sceneSize
? max(PrevShadows.a/(1.0+PrevShadows.a),1.0-remanence)
: 1.0;PrevShadows=max(vec4(0.0),PrevShadows);gl_FragColor =
vec4(mix(PrevShadows.x,newShadows.x,PrevShadows.a),
mix(PrevShadows.y,newShadows.y,PrevShadows.a),
mix(PrevShadows.z,newShadows.z,PrevShadows.a),PrevShadows.a);}`;H.ShadersStore[Wle]||(H.ShadersStore[Wle]=aTe);const oTe={name:Wle,shader:aTe},SKe=Object.freeze(Object.defineProperty({__proto__:null,iblShadowAccumulationPixelShader:oTe},Symbol.toStringTag,{value:"Module"})),Hle="iblShadowsCombinePixelShader",lTe=`precision highp float;varying vec2 vUV;uniform sampler2D shadowSampler;uniform sampler2D textureSampler;uniform float shadowOpacity;void main(void)
{vec3 shadow=texture(shadowSampler,vUV).rgb;vec3 sceneColor=texture(textureSampler,vUV).rgb;float shadowValue=mix(1.0,shadow.x,shadowOpacity);gl_FragColor=vec4(sceneColor*shadowValue,1.0);}`;H.ShadersStore[Hle]||(H.ShadersStore[Hle]=lTe);const yKe={name:Hle,shader:lTe},Yle="iblShadowsCombinePixelShader",cTe=`varying vUV: vec2f;var shadowSamplerSampler : sampler;var shadowSampler : texture_2d<f32>;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform shadowOpacity: f32;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var shadow
: vec3f =
textureSample(shadowSampler,shadowSamplerSampler,input.vUV).rgb;var color
: vec3f =
textureSample(textureSampler,textureSamplerSampler,input.vUV).rgb;var shadowValue: f32=mix(1.0,shadow.x,uniforms.shadowOpacity);fragmentOutputs.color=vec4f(color*shadowValue,1.0);}`;H.ShadersStoreWGSL[Yle]||(H.ShadersStoreWGSL[Yle]=cTe);const MKe={name:Yle,shader:cTe},Xle="iblCombineVoxelGridsPixelShader",uTe=`varying vUV: vec2f;var voxelXaxisSamplerSampler: sampler;var voxelXaxisSampler: texture_3d<f32>;var voxelYaxisSamplerSampler: sampler;var voxelYaxisSampler: texture_3d<f32>;var voxelZaxisSamplerSampler: sampler;var voxelZaxisSampler: texture_3d<f32>;uniform layer: f32;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var coordZ: vec3f= vec3f(fragmentInputs.vUV.x,fragmentInputs.vUV.y,uniforms.layer);var voxelZ: f32=textureSample(voxelZaxisSampler,voxelZaxisSamplerSampler,coordZ).r;var coordX: vec3f= vec3f(1.0-uniforms.layer,fragmentInputs.vUV.y,fragmentInputs.vUV.x);var voxelX: f32=textureSample(voxelXaxisSampler,voxelXaxisSamplerSampler,coordX).r;var coordY: vec3f= vec3f(uniforms.layer,fragmentInputs.vUV.x,fragmentInputs.vUV.y);var voxelY: f32=textureSample(voxelYaxisSampler,voxelYaxisSamplerSampler,coordY).r;var voxel=select(0.0,1.0,(voxelX>0.0 || voxelY>0.0 || voxelZ>0.0));fragmentOutputs.color= vec4f( vec3f(voxel),1.0);}`;H.ShadersStoreWGSL[Xle]||(H.ShadersStoreWGSL[Xle]=uTe);const hTe={name:Xle,shader:uTe},EKe=Object.freeze(Object.defineProperty({__proto__:null,iblCombineVoxelGridsPixelShaderWGSL:hTe},Symbol.toStringTag,{value:"Module"})),Zle="iblCombineVoxelGridsPixelShader",dTe="precision highp float;precision highp sampler3D;varying vec2 vUV;uniform sampler3D voxelXaxisSampler;uniform sampler3D voxelYaxisSampler;uniform sampler3D voxelZaxisSampler;uniform float layer;void main(void) {vec3 coordZ=vec3(vUV.x,vUV.y,layer);float voxelZ=texture(voxelZaxisSampler,coordZ).r;vec3 coordX=vec3(1.0-layer,vUV.y,vUV.x);float voxelX=texture(voxelXaxisSampler,coordX).r;vec3 coordY=vec3(layer,vUV.x,vUV.y);float voxelY=texture(voxelYaxisSampler,coordY).r;float voxel=(voxelX>0.0 || voxelY>0.0 || voxelZ>0.0) ? 1.0 : 0.0;glFragColor=vec4(vec3(voxel),1.0);}";H.ShadersStore[Zle]||(H.ShadersStore[Zle]=dTe);const fTe={name:Zle,shader:dTe},TKe=Object.freeze(Object.defineProperty({__proto__:null,iblCombineVoxelGridsPixelShader:fTe},Symbol.toStringTag,{value:"Module"})),Kle="iblGenerateVoxelMipPixelShader",pTe=`precision highp float;precision highp sampler3D;varying vec2 vUV;uniform sampler3D srcMip;uniform int layerNum;void main(void) {ivec3 Coords=ivec3(2)*ivec3(gl_FragCoord.x,gl_FragCoord.y,layerNum);uint tex =
uint(texelFetch(srcMip,Coords+ivec3(0,0,0),0).x>0.0f ? 1u : 0u)
<< 0u |
uint(texelFetch(srcMip,Coords+ivec3(1,0,0),0).x>0.0f ? 1u : 0u)
<< 1u |
uint(texelFetch(srcMip,Coords+ivec3(0,1,0),0).x>0.0f ? 1u : 0u)
<< 2u |
uint(texelFetch(srcMip,Coords+ivec3(1,1,0),0).x>0.0f ? 1u : 0u)
<< 3u |
uint(texelFetch(srcMip,Coords+ivec3(0,0,1),0).x>0.0f ? 1u : 0u)
<< 4u |
uint(texelFetch(srcMip,Coords+ivec3(1,0,1),0).x>0.0f ? 1u : 0u)
<< 5u |
uint(texelFetch(srcMip,Coords+ivec3(0,1,1),0).x>0.0f ? 1u : 0u)
<< 6u |
uint(texelFetch(srcMip,Coords+ivec3(1,1,1),0).x>0.0f ? 1u : 0u)
<< 7u;glFragColor.rgb=vec3(float(tex)/255.0f,0.0f,0.0f);glFragColor.a=1.0;}`;H.ShadersStore[Kle]||(H.ShadersStore[Kle]=pTe);const mTe={name:Kle,shader:pTe},LKe=Object.freeze(Object.defineProperty({__proto__:null,iblGenerateVoxelMipPixelShader:mTe},Symbol.toStringTag,{value:"Module"})),qle="iblGenerateVoxelMipPixelShader",gTe=`varying vUV: vec2f;var srcMip: texture_3d<f32>;uniform layerNum: i32;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var Coords=vec3i(2)*vec3i(vec2i(fragmentInputs.position.xy),uniforms.layerNum);var tex =
(u32(select(0u,1u,textureLoad(srcMip,Coords+vec3i(0,0,0),0).x>0.0f))
<< 0u) |
(u32(select(0u,1u,textureLoad(srcMip,Coords+vec3i(1,0,0),0).x>0.0f))
<< 1u) |
(u32(select(0u,1u,textureLoad(srcMip,Coords+vec3i(0,1,0),0).x>0.0f))
<< 2u) |
(u32(select(0u,1u,textureLoad(srcMip,Coords+vec3i(1,1,0),0).x>0.0f))
<< 3u) |
(u32(select(0u,1u,textureLoad(srcMip,Coords+vec3i(0,0,1),0).x>0.0f))
<< 4u) |
(u32(select(0u,1u,textureLoad(srcMip,Coords+vec3i(1,0,1),0).x>0.0f))
<< 5u) |
(u32(select(0u,1u,textureLoad(srcMip,Coords+vec3i(0,1,1),0).x>0.0f))
<< 6u) |
(u32(select(0u,1u,textureLoad(srcMip,Coords+vec3i(1,1,1),0).x>0.0f))
<< 7u);fragmentOutputs.color=vec4f( f32(tex)/255.0f,0.0f,0.0f,1.0);}`;H.ShadersStoreWGSL[qle]||(H.ShadersStoreWGSL[qle]=gTe);const _Te={name:qle,shader:gTe},IKe=Object.freeze(Object.defineProperty({__proto__:null,iblGenerateVoxelMipPixelShaderWGSL:_Te},Symbol.toStringTag,{value:"Module"})),Qle="iblShadowGBufferDebugPixelShader",vTe=`#ifdef GL_ES
precision mediump float;
#endif
varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D depthSampler;uniform sampler2D normalSampler;uniform sampler2D positionSampler;uniform sampler2D velocitySampler;uniform vec4 sizeParams;uniform float maxDepth;
#define offsetX sizeParams.x
#define offsetY sizeParams.y
#define widthScale sizeParams.z
#define heightScale sizeParams.w
void main(void) {vec2 uv =
vec2((offsetX+vUV.x)*widthScale,(offsetY+vUV.y)*heightScale);vec4 backgroundColour=texture2D(textureSampler,vUV).rgba;vec4 depth=texture2D(depthSampler,vUV);vec4 worldNormal=texture2D(normalSampler,vUV);vec4 worldPosition=texture2D(positionSampler,vUV);vec4 velocityLinear=texture2D(velocitySampler,vUV);if (uv.x<0.0 || uv.x>1.0 || uv.y<0.0 || uv.y>1.0) {gl_FragColor.rgba=backgroundColour;} else {gl_FragColor.a=1.0;if (uv.x<=0.25) {gl_FragColor.rgb=depth.rgb;gl_FragColor.a=1.0;} else if (uv.x<=0.5) {velocityLinear.rg=velocityLinear.rg*0.5+0.5;gl_FragColor.rgb=velocityLinear.rgb;} else if (uv.x<=0.75) {gl_FragColor.rgb=worldPosition.rgb;} else {gl_FragColor.rgb=worldNormal.rgb;}}}`;H.ShadersStore[Qle]||(H.ShadersStore[Qle]=vTe);const ATe={name:Qle,shader:vTe},PKe=Object.freeze(Object.defineProperty({__proto__:null,iblShadowGBufferDebugPixelShader:ATe},Symbol.toStringTag,{value:"Module"})),Jle="iblShadowGBufferDebugPixelShader",CTe=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;var depthSampler: sampler;var depthTexture: texture_2d<f32>;var normalSampler: sampler;var normalTexture: texture_2d<f32>;var positionSampler: sampler;var positionTexture: texture_2d<f32>;var velocitySampler: sampler;var velocityTexture: texture_2d<f32>;uniform sizeParams: vec4f;uniform maxDepth: f32;
#define offsetX uniforms.sizeParams.x
#define offsetY uniforms.sizeParams.y
#define widthScale uniforms.sizeParams.z
#define heightScale uniforms.sizeParams.w
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var uv: vec2f =
vec2f((offsetX+input.vUV.x)*widthScale,(offsetY+input.vUV.y)*heightScale);var backgroundColour: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV).rgba;var depth: vec4f=textureSample(depthTexture,depthSampler,input.vUV);var worldNormal: vec4f=textureSample(normalTexture,normalSampler,input.vUV);var worldPosition: vec4f=textureSample(positionTexture,positionSampler,input.vUV);var velocityLinear: vec4f=textureSample(velocityTexture,velocitySampler,input.vUV);if (uv.x<0.0 || uv.x>1.0 || uv.y<0.0 || uv.y>1.0) {fragmentOutputs.color=backgroundColour;} else {if (uv.x<=0.25) {fragmentOutputs.color=vec4f(depth.rgb,1.0);} else if (uv.x<=0.5) {velocityLinear=vec4f(velocityLinear.r*0.5+0.5,velocityLinear.g*0.5+0.5,velocityLinear.b,velocityLinear.a);fragmentOutputs.color=vec4f(velocityLinear.rgb,1.0);} else if (uv.x<=0.75) {fragmentOutputs.color=vec4f(worldPosition.rgb,1.0);} else {fragmentOutputs.color=vec4f(worldNormal.rgb,1.0);}}}`;H.ShadersStoreWGSL[Jle]||(H.ShadersStoreWGSL[Jle]=CTe);const xTe={name:Jle,shader:CTe},OKe=Object.freeze(Object.defineProperty({__proto__:null,iblShadowGBufferDebugPixelShaderWGSL:xTe},Symbol.toStringTag,{value:"Module"})),$le="iblCdfxPixelShader",bTe=`#define PI 3.1415927
varying vUV: vec2f;var cdfy: texture_2d<f32>;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var cdfyRes=textureDimensions(cdfy,0);var currentPixel=vec2u(fragmentInputs.position.xy);var cdfx: f32=0.0;for (var x: u32=1; x<=currentPixel.x; x++) {cdfx+=textureLoad(cdfy, vec2u(x-1,cdfyRes.y-1),0).x;}
fragmentOutputs.color= vec4f( vec3f(cdfx),1.0);}`;H.ShadersStoreWGSL[$le]||(H.ShadersStoreWGSL[$le]=bTe);const STe={name:$le,shader:bTe},RKe=Object.freeze(Object.defineProperty({__proto__:null,iblCdfxPixelShaderWGSL:STe},Symbol.toStringTag,{value:"Module"})),ece="iblCdfxPixelShader",yTe=`precision highp sampler2D;
#define PI 3.1415927
varying vec2 vUV;uniform sampler2D cdfy;void main(void) {ivec2 cdfyRes=textureSize(cdfy,0);ivec2 currentPixel=ivec2(gl_FragCoord.xy);float cdfx=0.0;for (int x=1; x<=currentPixel.x; x++) {cdfx+=texelFetch(cdfy,ivec2(x-1,cdfyRes.y-1),0).x;}
gl_FragColor=vec4(vec3(cdfx),1.0);}`;H.ShadersStore[ece]||(H.ShadersStore[ece]=yTe);const MTe={name:ece,shader:yTe},DKe=Object.freeze(Object.defineProperty({__proto__:null,iblCdfxPixelShader:MTe},Symbol.toStringTag,{value:"Module"})),tce="iblCdfyPixelShader",ETe=`varying vUV : vec2f;
#include <helperFunctions>
#ifdef IBL_USE_CUBE_MAP
var iblSourceSampler: sampler;var iblSource: texture_cube<f32>;
#else
var iblSourceSampler: sampler;var iblSource: texture_2d<f32>;
#endif
uniform iblHeight: i32;
#ifdef IBL_USE_CUBE_MAP
fn fetchCube(uv: vec2f)->f32 {var direction: vec3f=equirectangularToCubemapDirection(uv);return sin(PI*uv.y) *
dot(textureSampleLevel(iblSource,iblSourceSampler,direction,0.0)
.rgb,
LuminanceEncodeApprox);}
#else
fn fetchPanoramic(Coords: vec2i,envmapHeight: f32)->f32 {return sin(PI*(f32(Coords.y)+0.5)/envmapHeight) *
dot(textureLoad(iblSource,Coords,0).rgb,LuminanceEncodeApprox);}
#endif
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var coords: vec2i= vec2i(fragmentInputs.position.xy);var cdfy: f32=0.0;for (var y: i32=1; y<=coords.y; y++) {
#ifdef IBL_USE_CUBE_MAP
var uv: vec2f= vec2f(input.vUV.x,( f32(y-1)+0.5)/ f32(uniforms.iblHeight));cdfy+=fetchCube(uv);
#else
cdfy+=fetchPanoramic( vec2i(coords.x,y-1), f32(uniforms.iblHeight));
#endif
}
fragmentOutputs.color= vec4f(cdfy,0.0,0.0,1.0);}`;H.ShadersStoreWGSL[tce]||(H.ShadersStoreWGSL[tce]=ETe);const TTe={name:tce,shader:ETe},NKe=Object.freeze(Object.defineProperty({__proto__:null,iblCdfyPixelShaderWGSL:TTe},Symbol.toStringTag,{value:"Module"})),ice="iblCdfyPixelShader",LTe=`precision highp sampler2D;precision highp samplerCube;
#include<helperFunctions>
#define PI 3.1415927
varying vec2 vUV;
#ifdef IBL_USE_CUBE_MAP
uniform samplerCube iblSource;
#else
uniform sampler2D iblSource;
#endif
uniform int iblHeight;
#ifdef IBL_USE_CUBE_MAP
float fetchCube(vec2 uv) {vec3 direction=equirectangularToCubemapDirection(uv);return sin(PI*uv.y)*dot(textureCubeLodEXT(iblSource,direction,0.0).rgb,LuminanceEncodeApprox);}
#else
float fetchPanoramic(ivec2 Coords,float envmapHeight) {return sin(PI*(float(Coords.y)+0.5)/envmapHeight) *
dot(texelFetch(iblSource,Coords,0).rgb,LuminanceEncodeApprox);}
#endif
void main(void) {ivec2 coords=ivec2(gl_FragCoord.x,gl_FragCoord.y);float cdfy=0.0;for (int y=1; y<=coords.y; y++) {
#ifdef IBL_USE_CUBE_MAP
vec2 uv=vec2(vUV.x,(float(y-1)+0.5)/float(iblHeight));cdfy+=fetchCube(uv);
#else
cdfy+=fetchPanoramic(ivec2(coords.x,y-1),float(iblHeight));
#endif
}
gl_FragColor=vec4(cdfy,0.0,0.0,1.0);}`;H.ShadersStore[ice]||(H.ShadersStore[ice]=LTe);const ITe={name:ice,shader:LTe},wKe=Object.freeze(Object.defineProperty({__proto__:null,iblCdfyPixelShader:ITe},Symbol.toStringTag,{value:"Module"})),sce="iblIcdfPixelShader",PTe=`#include<helperFunctions>
varying vUV: vec2f;
#ifdef IBL_USE_CUBE_MAP
var iblSourceSampler: sampler;var iblSource: texture_cube<f32>;
#else
var iblSourceSampler: sampler;var iblSource: texture_2d<f32>;
#endif
var scaledLuminanceSamplerSampler : sampler;var scaledLuminanceSampler : texture_2d<f32>;var cdfx: texture_2d<f32>;var cdfy: texture_2d<f32>;fn fetchLuminance(coords: vec2f)->f32 {
#ifdef IBL_USE_CUBE_MAP
var direction: vec3f=equirectangularToCubemapDirection(coords);var color: vec3f=textureSampleLevel(iblSource,iblSourceSampler,direction,0.0).rgb;
#else
var color: vec3f=textureSampleLevel(iblSource,iblSourceSampler,coords,0.0).rgb;
#endif
return dot(color,LuminanceEncodeApprox);}
fn fetchCDFx(x: u32)->f32 {return textureLoad(cdfx, vec2u(x,0),0).x;}
fn bisectx(size: u32,targetValue: f32)->f32
{var a: u32=0;var b=size-1;while (b-a>1) {var c: u32=(a+b)>>1;if (fetchCDFx(c)<targetValue) {a=c;}
else {b=c;}}
return mix( f32(a), f32(b),(targetValue-fetchCDFx(a))/(fetchCDFx(b)-fetchCDFx(a)))/ f32(size-1);}
fn fetchCDFy(y: u32,invocationId: u32)->f32 {return textureLoad(cdfy, vec2u(invocationId,y),0).x;}
fn bisecty(size: u32,targetValue: f32,invocationId: u32)->f32
{var a: u32=0;var b=size-1;while (b-a>1) {var c=(a+b)>>1;if (fetchCDFy(c,invocationId)<targetValue) {a=c;}
else {b=c;}}
return mix( f32(a), f32(b),(targetValue-fetchCDFy(a,invocationId))/(fetchCDFy(b,invocationId)-fetchCDFy(a,invocationId)))/ f32(size-1);}
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var cdfxSize: vec2u=textureDimensions(cdfx,0);var cdfWidth: u32=cdfxSize.x;var icdfWidth: u32=cdfWidth-1;var currentPixel: vec2u= vec2u(fragmentInputs.position.xy);var outputColor: vec3f=vec3f(1.0);if (currentPixel.x==0)
{outputColor.x= 0.0;}
else if (currentPixel.x==icdfWidth-1) {outputColor.x= 1.0;} else {var targetValue: f32=fetchCDFx(cdfWidth-1)*input.vUV.x;outputColor.x= bisectx(cdfWidth,targetValue);}
var cdfySize: vec2u=textureDimensions(cdfy,0);var cdfHeight: u32=cdfySize.y;if (currentPixel.y==0) {outputColor.y= 0.0;}
else if (currentPixel.y==cdfHeight-2) {outputColor.y= 1.0;} else {var targetValue: f32=fetchCDFy(cdfHeight-1,currentPixel.x)*input.vUV.y;outputColor.y= max(bisecty(cdfHeight,targetValue,currentPixel.x),0.0);}
var size : vec2f=vec2f(textureDimensions(scaledLuminanceSampler,0));var highestMip: f32=floor(log2(size.x));var normalization : f32=textureSampleLevel(scaledLuminanceSampler,
scaledLuminanceSamplerSampler,
input.vUV,highestMip)
.r;var pixelLuminance: f32=fetchLuminance(input.vUV);outputColor.z=pixelLuminance/(2.0*PI*normalization);fragmentOutputs.color=vec4( outputColor,1.0);}`;H.ShadersStoreWGSL[sce]||(H.ShadersStoreWGSL[sce]=PTe);const OTe={name:sce,shader:PTe},BKe=Object.freeze(Object.defineProperty({__proto__:null,iblIcdfPixelShaderWGSL:OTe},Symbol.toStringTag,{value:"Module"})),rce="iblIcdfPixelShader",RTe=`precision highp sampler2D;
#include<helperFunctions>
varying vec2 vUV;
#ifdef IBL_USE_CUBE_MAP
uniform samplerCube iblSource;
#else
uniform sampler2D iblSource;
#endif
uniform sampler2D scaledLuminanceSampler;uniform int iblWidth;uniform int iblHeight;uniform sampler2D cdfx;uniform sampler2D cdfy;float fetchLuminance(vec2 coords) {
#ifdef IBL_USE_CUBE_MAP
vec3 direction=equirectangularToCubemapDirection(coords);vec3 color=textureCubeLodEXT(iblSource,direction,0.0).rgb;
#else
vec3 color=textureLod(iblSource,coords,0.0).rgb;
#endif
return dot(color,LuminanceEncodeApprox);}
float fetchCDFx(int x) { return texelFetch(cdfx,ivec2(x,0),0).x; }
float bisectx(int size,float targetValue) {int a=0,b=size-1;while (b-a>1) {int c=a+b>>1;if (fetchCDFx(c)<targetValue)
a=c;else
b=c;}
return mix(float(a),float(b),
(targetValue-fetchCDFx(a))/(fetchCDFx(b)-fetchCDFx(a))) /
float(size-1);}
float fetchCDFy(int y,int invocationId) {return texelFetch(cdfy,ivec2(invocationId,y),0).x;}
float bisecty(int size,float targetValue,int invocationId) {int a=0,b=size-1;while (b-a>1) {int c=a+b>>1;if (fetchCDFy(c,invocationId)<targetValue)
a=c;else
b=c;}
return mix(float(a),float(b),
(targetValue-fetchCDFy(a,invocationId)) /
(fetchCDFy(b,invocationId)-fetchCDFy(a,invocationId))) /
float(size-1);}
void main(void) {ivec2 cdfxSize=textureSize(cdfx,0);int cdfWidth=cdfxSize.x;int icdfWidth=cdfWidth-1;ivec2 currentPixel=ivec2(gl_FragCoord.xy);vec3 outputColor=vec3(1.0);if (currentPixel.x==0) {outputColor.x=0.0;} else if (currentPixel.x==icdfWidth-1) {outputColor.x=1.0;} else {float targetValue=fetchCDFx(cdfWidth-1)*vUV.x;outputColor.x=bisectx(cdfWidth,targetValue);}
ivec2 cdfySize=textureSize(cdfy,0);int cdfHeight=cdfySize.y;if (currentPixel.y==0) {outputColor.y=0.0;} else if (currentPixel.y==cdfHeight-2) {outputColor.y=1.0;} else {float targetValue=fetchCDFy(cdfHeight-1,currentPixel.x)*vUV.y;outputColor.y=max(bisecty(cdfHeight,targetValue,currentPixel.x),0.0);}
vec2 size=vec2(textureSize(scaledLuminanceSampler,0));float highestMip=floor(log2(size.x));float normalization=texture(scaledLuminanceSampler,vUV,highestMip).r;float pixelLuminance=fetchLuminance(vUV);outputColor.z=pixelLuminance/(2.0*PI*normalization);gl_FragColor=vec4(outputColor,1.0);}
`;H.ShadersStore[rce]||(H.ShadersStore[rce]=RTe);const DTe={name:rce,shader:RTe},zKe=Object.freeze(Object.defineProperty({__proto__:null,iblIcdfPixelShader:DTe},Symbol.toStringTag,{value:"Module"})),nce="iblCdfDebugPixelShader",NTe=`#define PI 3.1415927
varying vUV: vec2f;var cdfySampler: sampler;var cdfy: texture_2d<f32>;var cdfxSampler: sampler;var cdfx: texture_2d<f32>;var icdfSampler: sampler;var icdf: texture_2d<f32>;
#ifdef IBL_USE_CUBE_MAP
var iblSourceSampler: sampler;var iblSource: texture_cube<f32>;
#else
var iblSourceSampler: sampler;var iblSource: texture_2d<f32>;
#endif
var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;
#define cdfyVSize (0.8/3.0)
#define cdfxVSize 0.1
#define cdfyHSize 0.5
uniform sizeParams: vec4f;
#ifdef IBL_USE_CUBE_MAP
fn equirectangularToCubemapDirection(uv: vec2f)->vec3f {var longitude: f32=uv.x*2.0*PI-PI;var latitude: f32=PI*0.5-uv.y*PI;var direction: vec3f;direction.x=cos(latitude)*sin(longitude);direction.y=sin(latitude);direction.z=cos(latitude)*cos(longitude);return direction;}
#endif
@fragment
fn main(input: FragmentInputs)->FragmentOutputs { 
var colour: vec3f= vec3f(0.0);var uv: vec2f =
vec2f((uniforms.sizeParams.x+input.vUV.x)*uniforms.sizeParams.z,(uniforms.sizeParams.y+input.vUV.y)*uniforms.sizeParams.w);var backgroundColour: vec3f=textureSample(textureSampler,textureSamplerSampler,input.vUV).rgb;var cdfxWidth: u32=textureDimensions(cdfx,0).x;var cdfyHeight: u32=textureDimensions(cdfy,0).y;const iblStart: f32=1.0-cdfyVSize;const pdfStart: f32=1.0-2.0*cdfyVSize;const cdfyStart: f32=1.0-3.0*cdfyVSize;const cdfxStart: f32=1.0-3.0*cdfyVSize-cdfxVSize;const icdfxStart: f32=1.0-3.0*cdfyVSize-2.0*cdfxVSize;
#ifdef IBL_USE_CUBE_MAP
var direction: vec3f=equirectangularToCubemapDirection(
(uv- vec2f(0.0,iblStart))* vec2f(1.0,1.0/cdfyVSize));var iblColour: vec3f=textureSampleLevel(iblSource,iblSourceSampler,direction,0.0).rgb;
#else
var iblColour: vec3f=textureSample(iblSource,iblSourceSampler,(uv- vec2f(0.0,iblStart)) *
vec2f(1.0,1.0/cdfyVSize))
.rgb;
#endif
var pdfColour: vec3f =
textureSample(icdf,icdfSampler,(uv- vec2f(0.0,pdfStart))* vec2f(1.0,1.0/cdfyVSize)).zzz;var cdfyColour: f32 =
textureSample(cdfy,cdfySampler,(uv- vec2f(0.0,cdfyStart))* vec2f(2.0,1.0/cdfyVSize)).r;var icdfyColour: f32 =
textureSample(icdf,icdfSampler,(uv- vec2f(0.5,cdfyStart))* vec2f(2.0,1.0/cdfyVSize)).g;var cdfxColour: f32 =
textureSample(cdfx,cdfxSampler,(uv- vec2f(0.0,cdfxStart))* vec2f(1.0,1.0/cdfxVSize)).r;var icdfxColour: f32=textureSample(icdf,icdfSampler,(uv- vec2f(0.0,icdfxStart)) *
vec2f(1.0,1.0/cdfxVSize)).r;if (uv.x<0.0 || uv.x>1.0 || uv.y<0.0 || uv.y>1.0) {colour=backgroundColour;} else if (uv.y>iblStart) {colour+=iblColour;} else if (uv.y>pdfStart) {colour+=pdfColour;} else if (uv.y>cdfyStart && uv.x<0.5) {colour.r+=cdfyColour/f32(cdfyHeight);} else if (uv.y>cdfyStart && uv.x>0.5) {colour.r+=icdfyColour;} else if (uv.y>cdfxStart) {colour.r+=cdfxColour/f32(cdfxWidth);} else if (uv.y>icdfxStart) {colour.r+=icdfxColour;}
fragmentOutputs.color =vec4(mix(colour,backgroundColour,0.5),1.0);}`;H.ShadersStoreWGSL[nce]||(H.ShadersStoreWGSL[nce]=NTe);const wTe={name:nce,shader:NTe},FKe=Object.freeze(Object.defineProperty({__proto__:null,iblCdfDebugPixelShaderWGSL:wTe},Symbol.toStringTag,{value:"Module"})),ace="iblCdfDebugPixelShader",BTe=`precision highp samplerCube;
#define PI 3.1415927
varying vec2 vUV;uniform sampler2D cdfy;uniform sampler2D cdfx;uniform sampler2D icdf;uniform sampler2D pdf;
#ifdef IBL_USE_CUBE_MAP
uniform samplerCube iblSource;
#else
uniform sampler2D iblSource;
#endif
uniform sampler2D textureSampler;
#define cdfyVSize (0.8/3.0)
#define cdfxVSize 0.1
#define cdfyHSize 0.5
uniform vec4 sizeParams;
#define offsetX sizeParams.x
#define offsetY sizeParams.y
#define widthScale sizeParams.z
#define heightScale sizeParams.w
#ifdef IBL_USE_CUBE_MAP
vec3 equirectangularToCubemapDirection(vec2 uv) {float longitude=uv.x*2.0*PI-PI;float latitude=PI*0.5-uv.y*PI;vec3 direction;direction.x=cos(latitude)*sin(longitude);direction.y=sin(latitude);direction.z=cos(latitude)*cos(longitude);return direction;}
#endif
void main(void) {vec3 colour=vec3(0.0);vec2 uv =
vec2((offsetX+vUV.x)*widthScale,(offsetY+vUV.y)*heightScale);vec3 backgroundColour=texture2D(textureSampler,vUV).rgb;int cdfxWidth=textureSize(cdfx,0).x;int cdfyHeight=textureSize(cdfy,0).y;const float iblStart=1.0-cdfyVSize;const float pdfStart=1.0-2.0*cdfyVSize;const float cdfyStart=1.0-3.0*cdfyVSize;const float cdfxStart=1.0-3.0*cdfyVSize-cdfxVSize;const float icdfxStart=1.0-3.0*cdfyVSize-2.0*cdfxVSize;
#ifdef IBL_USE_CUBE_MAP
vec3 direction=equirectangularToCubemapDirection(
(uv-vec2(0.0,iblStart))*vec2(1.0,1.0/cdfyVSize));vec3 iblColour=textureCubeLodEXT(iblSource,direction,0.0).rgb;
#else
vec3 iblColour=texture2D(iblSource,(uv-vec2(0.0,iblStart)) *
vec2(1.0,1.0/cdfyVSize))
.rgb;
#endif
vec3 pdfColour=texture(icdf,(uv-vec2(0.0,pdfStart)) *
vec2(1.0,1.0/cdfyVSize)).zzz;float cdfyColour =
texture2D(cdfy,(uv-vec2(0.0,cdfyStart))*vec2(2.0,1.0/cdfyVSize))
.r;float icdfyColour =
texture2D(icdf,(uv-vec2(0.5,cdfyStart))*vec2(2.0,1.0/cdfyVSize))
.g;float cdfxColour =
texture2D(cdfx,(uv-vec2(0.0,cdfxStart))*vec2(1.0,1.0/cdfxVSize))
.r;float icdfxColour=texture2D(icdf,(uv-vec2(0.0,icdfxStart)) *
vec2(1.0,1.0/cdfxVSize))
.r;if (uv.x<0.0 || uv.x>1.0 || uv.y<0.0 || uv.y>1.0) {colour=backgroundColour;} else if (uv.y>iblStart) {colour+=iblColour;} else if (uv.y>pdfStart) {colour+=pdfColour;} else if (uv.y>cdfyStart && uv.x<0.5) {colour.r+=cdfyColour/float(cdfyHeight);} else if (uv.y>cdfyStart && uv.x>0.5) {colour.r+=icdfyColour;} else if (uv.y>cdfxStart) {colour.r+=cdfxColour/float(cdfxWidth);} else if (uv.y>icdfxStart) {colour.r+=icdfxColour;}
gl_FragColor=vec4(colour,1.0);glFragColor.rgb=mix(gl_FragColor.rgb,backgroundColour,0.5);}
`;H.ShadersStore[ace]||(H.ShadersStore[ace]=BTe);const zTe={name:ace,shader:BTe},kKe=Object.freeze(Object.defineProperty({__proto__:null,iblCdfDebugPixelShader:zTe},Symbol.toStringTag,{value:"Module"})),oce="iblScaledLuminancePixelShader",FTe=`#include<helperFunctions>
#ifdef IBL_USE_CUBE_MAP
var iblSourceSampler: sampler;var iblSource: texture_cube<f32>;
#else
var iblSourceSampler: sampler;var iblSource: texture_2d<f32>;
#endif
uniform iblHeight: i32;uniform iblWidth: i32;fn fetchLuminance(coords: vec2f)->f32 {
#ifdef IBL_USE_CUBE_MAP
var direction: vec3f=equirectangularToCubemapDirection(coords);var color: vec3f=textureSampleLevel(iblSource,iblSourceSampler,direction,0.0).rgb;
#else
var color: vec3f=textureSampleLevel(iblSource,iblSourceSampler,coords,0.0).rgb;
#endif
return dot(color,LuminanceEncodeApprox);}
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var deform: f32=sin(input.vUV.y*PI);var luminance: f32=fetchLuminance(input.vUV);fragmentOutputs.color=vec4f(vec3f(deform*luminance),1.0);}`;H.ShadersStoreWGSL[oce]||(H.ShadersStoreWGSL[oce]=FTe);const kTe={name:oce,shader:FTe},UKe=Object.freeze(Object.defineProperty({__proto__:null,iblScaledLuminancePixelShaderWGSL:kTe},Symbol.toStringTag,{value:"Module"})),lce="iblScaledLuminancePixelShader",UTe=`precision highp sampler2D;precision highp samplerCube;
#include<helperFunctions>
varying vec2 vUV;
#ifdef IBL_USE_CUBE_MAP
uniform samplerCube iblSource;
#else
uniform sampler2D iblSource;
#endif
uniform int iblWidth;uniform int iblHeight;float fetchLuminance(vec2 coords) {
#ifdef IBL_USE_CUBE_MAP
vec3 direction=equirectangularToCubemapDirection(coords);vec3 color=textureCubeLodEXT(iblSource,direction,0.0).rgb;
#else
vec3 color=textureLod(iblSource,coords,0.0).rgb;
#endif
return dot(color,LuminanceEncodeApprox);}
void main(void) {float deform=sin(vUV.y*PI);float luminance=fetchLuminance(vUV);gl_FragColor=vec4(vec3(deform*luminance),1.0);}`;H.ShadersStore[lce]||(H.ShadersStore[lce]=UTe);const jTe={name:lce,shader:UTe},jKe=Object.freeze(Object.defineProperty({__proto__:null,iblScaledLuminancePixelShader:jTe},Symbol.toStringTag,{value:"Module"})),cce="iblVoxelGrid2dArrayDebugPixelShader",VTe="precision highp sampler2DArray;varying vec2 vUV;uniform sampler2DArray voxelTexture;uniform sampler2D textureSampler;uniform int slice;void main(void) {ivec3 size=textureSize(voxelTexture,0);float dimension=sqrt(float(size.z));vec2 samplePos=fract(vUV.xy*vec2(dimension));int sampleIndex=int(floor(vUV.x*float(dimension))+floor(vUV.y*float(dimension))*dimension);glFragColor.rgb=texture(voxelTexture,vec3(samplePos.xy,sampleIndex)).rrr;glFragColor.a=1.0;glFragColor.rgb+=texture(textureSampler,vUV.xy).rgb;}";H.ShadersStore[cce]||(H.ShadersStore[cce]=VTe);const GTe={name:cce,shader:VTe},VKe=Object.freeze(Object.defineProperty({__proto__:null,iblVoxelGrid2dArrayDebugPixelShader:GTe},Symbol.toStringTag,{value:"Module"})),uce="iblVoxelGrid2dArrayDebugPixelShader",WTe=`varying vUV: vec2f;var voxelTextureSampler: sampler;var voxelTexture: texture_3d<f32>;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform slice: i32;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var size: vec3u=textureDimensions(voxelTexture,0);var dimension: f32=sqrt( f32(size.z));var samplePos: vec2f=fract(input.vUV.xy* vec2f(dimension));var sampleIndex: u32= u32(floor(input.vUV.x* f32(dimension))+floor(input.vUV.y* f32(dimension))*dimension);var color=textureSample(voxelTexture,voxelTextureSampler, vec3f(samplePos.xy,sampleIndex)).rrr;color+=textureSample(textureSampler,textureSamplerSampler,input.vUV.xy).rgb;fragmentOutputs.color=vec4f(color,1.0);}`;H.ShadersStoreWGSL[uce]||(H.ShadersStoreWGSL[uce]=WTe);const HTe={name:uce,shader:WTe},GKe=Object.freeze(Object.defineProperty({__proto__:null,iblVoxelGrid2dArrayDebugPixelShaderWGSL:HTe},Symbol.toStringTag,{value:"Module"})),hce="iblVoxelGridPixelShader",YTe=`precision highp float;layout(location=0) out highp float glFragData[MAX_DRAW_BUFFERS];varying vec3 vNormalizedPosition;uniform float nearPlane;uniform float farPlane;uniform float stepSize;void main(void) {vec3 normPos=vNormalizedPosition.xyz;if (normPos.z<nearPlane || normPos.z>farPlane) {discard;}
glFragData[0]=normPos.z<nearPlane+stepSize ? 1.0 : 0.0;glFragData[1]=normPos.z>=nearPlane+stepSize && normPos.z<nearPlane+2.0*stepSize ? 1.0 : 0.0;glFragData[2]=normPos.z>=nearPlane+2.0*stepSize && normPos.z<nearPlane+3.0*stepSize ? 1.0 : 0.0;glFragData[3]=normPos.z>=nearPlane+3.0*stepSize && normPos.z<nearPlane+4.0*stepSize ? 1.0 : 0.0;
#if MAX_DRAW_BUFFERS>4
glFragData[4]=normPos.z>=nearPlane+4.0*stepSize && normPos.z<nearPlane+5.0*stepSize ? 1.0 : 0.0;glFragData[5]=normPos.z>=nearPlane+5.0*stepSize && normPos.z<nearPlane+6.0*stepSize ? 1.0 : 0.0;glFragData[6]=normPos.z>=nearPlane+6.0*stepSize && normPos.z<nearPlane+7.0*stepSize ? 1.0 : 0.0;glFragData[7]=normPos.z>=nearPlane+7.0*stepSize && normPos.z<nearPlane+8.0*stepSize ? 1.0 : 0.0;
#endif
}`;H.ShadersStore[hce]||(H.ShadersStore[hce]=YTe);const XTe={name:hce,shader:YTe},WKe=Object.freeze(Object.defineProperty({__proto__:null,iblVoxelGridPixelShader:XTe},Symbol.toStringTag,{value:"Module"})),dce="iblVoxelGridVertexShader",ZTe=`attribute vec3 position;attribute vec3 normal;varying vec3 vNormalizedPosition;uniform mat4 world;uniform mat4 invWorldScale;uniform mat4 viewMatrix;void main(void) {gl_Position=viewMatrix*invWorldScale*world*vec4(position,1.);vNormalizedPosition.xyz=gl_Position.xyz*0.5+0.5;
#ifdef IS_NDC_HALF_ZRANGE
gl_Position.z=gl_Position.z*0.5+0.5;
#endif
}`;H.ShadersStore[dce]||(H.ShadersStore[dce]=ZTe);const KTe={name:dce,shader:ZTe},HKe=Object.freeze(Object.defineProperty({__proto__:null,iblVoxelGridVertexShader:KTe},Symbol.toStringTag,{value:"Module"})),fce="iblVoxelGridPixelShader",qTe=`varying vNormalizedPosition: vec3f;uniform nearPlane: f32;uniform farPlane: f32;uniform stepSize: f32;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var normPos: vec3f=input.vNormalizedPosition.xyz;if (normPos.z<uniforms.nearPlane || normPos.z>uniforms.farPlane) {discard;}
fragmentOutputs.fragData0=select(vec4f(0.0),vec4f(1.0),normPos.z<uniforms.nearPlane+uniforms.stepSize);fragmentOutputs.fragData1=select(vec4f(0.0),vec4f(1.0),normPos.z>=uniforms.nearPlane+uniforms.stepSize && normPos.z<uniforms.nearPlane+2.0*uniforms.stepSize);fragmentOutputs.fragData2=select(vec4f(0.0),vec4f(1.0),normPos.z>=uniforms.nearPlane+2.0*uniforms.stepSize && normPos.z<uniforms.nearPlane+3.0*uniforms.stepSize);fragmentOutputs.fragData3=select(vec4f(0.0),vec4f(1.0),normPos.z>=uniforms.nearPlane+3.0*uniforms.stepSize && normPos.z<uniforms.nearPlane+4.0*uniforms.stepSize);
#if MAX_DRAW_BUFFERS>4
fragmentOutputs.fragData4=select(vec4f(0.0),vec4f(1.0),normPos.z>=uniforms.nearPlane+4.0*uniforms.stepSize && normPos.z<uniforms.nearPlane+5.0*uniforms.stepSize);fragmentOutputs.fragData5=select(vec4f(0.0),vec4f(1.0),normPos.z>=uniforms.nearPlane+5.0*uniforms.stepSize && normPos.z<uniforms.nearPlane+6.0*uniforms.stepSize);fragmentOutputs.fragData6=select(vec4f(0.0),vec4f(1.0),normPos.z>=uniforms.nearPlane+6.0*uniforms.stepSize && normPos.z<uniforms.nearPlane+7.0*uniforms.stepSize);fragmentOutputs.fragData7=select(vec4f(0.0),vec4f(1.0),normPos.z>=uniforms.nearPlane+7.0*uniforms.stepSize && normPos.z<uniforms.nearPlane+8.0*uniforms.stepSize);
#endif
}`;H.ShadersStoreWGSL[fce]||(H.ShadersStoreWGSL[fce]=qTe);const QTe={name:fce,shader:qTe},YKe=Object.freeze(Object.defineProperty({__proto__:null,iblVoxelGridPixelShaderWGSL:QTe},Symbol.toStringTag,{value:"Module"})),pce="iblVoxelGridVertexShader",JTe=`attribute position: vec3f;attribute normal: vec3f;varying vNormalizedPosition: vec3f;uniform world: mat4x4f;uniform invWorldScale: mat4x4f;uniform viewMatrix: mat4x4f;@vertex
fn main(input : VertexInputs)->FragmentInputs {vertexOutputs.position=uniforms.viewMatrix*uniforms.invWorldScale*uniforms.world* vec4f(input.position,1.);vertexOutputs.vNormalizedPosition=vertexOutputs.position.xyz*0.5+0.5;
#ifdef IS_NDC_HALF_ZRANGE
vertexOutputs.position=vec4f(vertexOutputs.position.x,vertexOutputs.position.y,vertexOutputs.position.z*0.5+0.5,vertexOutputs.position.w);
#endif
}`;H.ShadersStoreWGSL[pce]||(H.ShadersStoreWGSL[pce]=JTe);const $Te={name:pce,shader:JTe},XKe=Object.freeze(Object.defineProperty({__proto__:null,iblVoxelGridVertexShaderWGSL:$Te},Symbol.toStringTag,{value:"Module"})),mce="iblVoxelGrid3dDebugPixelShader",e9e=`precision highp sampler3D;varying vec2 vUV;uniform sampler3D voxelTexture;uniform sampler2D voxelSlabTexture;uniform sampler2D textureSampler;uniform vec4 sizeParams;
#define offsetX sizeParams.x
#define offsetY sizeParams.y
#define widthScale sizeParams.z
#define heightScale sizeParams.w
uniform float mipNumber;void main(void) {vec2 uv =
vec2((offsetX+vUV.x)*widthScale,(offsetY+vUV.y)*heightScale);vec4 background=texture2D(textureSampler,vUV);vec4 voxelSlab=texture2D(voxelSlabTexture,vUV);ivec3 size=textureSize(voxelTexture,int(mipNumber));float dimension=ceil(sqrt(float(size.z)));vec2 samplePos=fract(uv.xy*vec2(dimension));int sampleIndex=int(floor(uv.x*float(dimension)) +
floor(uv.y*float(dimension))*dimension);float mip_separator=0.0;if (samplePos.x<0.01 || samplePos.y<0.01) {mip_separator=1.0;}
bool outBounds=sampleIndex>size.z-1 ? true : false;sampleIndex=clamp(sampleIndex,0,size.z-1);ivec2 samplePosInt=ivec2(samplePos.xy*vec2(size.xy));vec3 voxel=texelFetch(voxelTexture,
ivec3(samplePosInt.x,samplePosInt.y,sampleIndex),
int(mipNumber))
.rgb;if (uv.x<0.0 || uv.x>1.0 || uv.y<0.0 || uv.y>1.0) {gl_FragColor.rgba=background;} else {if (outBounds) {voxel=vec3(0.15,0.0,0.0);} else {if (voxel.r>0.001) {voxel.g=1.0;}
voxel.r+=mip_separator;}
glFragColor.rgb=mix(background.rgb,voxelSlab.rgb,voxelSlab.a)+voxel;glFragColor.a=1.0;}}`;H.ShadersStore[mce]||(H.ShadersStore[mce]=e9e);const t9e={name:mce,shader:e9e},ZKe=Object.freeze(Object.defineProperty({__proto__:null,iblVoxelGrid3dDebugPixelShader:t9e},Symbol.toStringTag,{value:"Module"})),gce="iblVoxelGrid3dDebugPixelShader",i9e=`varying vUV: vec2f;var voxelTextureSampler: sampler;var voxelTexture: texture_3d<f32>;var voxelSlabTextureSampler: sampler;var voxelSlabTexture: texture_2d<f32>;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;uniform sizeParams: vec4f;
#define offsetX uniforms.sizeParams.x
#define offsetY uniforms.sizeParams.y
#define widthScale uniforms.sizeParams.z
#define heightScale uniforms.sizeParams.w
uniform mipNumber: f32;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var uv: vec2f =
vec2f((offsetX+input.vUV.x)*widthScale,(offsetY+input.vUV.y)*heightScale);var background: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV);var voxelSlab: vec4f=textureSample(voxelSlabTexture,voxelSlabTextureSampler,input.vUV);var size: vec3u=textureDimensions(voxelTexture, i32(uniforms.mipNumber));var dimension: f32=ceil(sqrt( f32(size.z)));var samplePos: vec2f=fract(uv.xy* vec2f(dimension));var sampleIndex: u32= u32(floor(uv.x* f32(dimension)) +
floor(uv.y* f32(dimension))*dimension);var mip_separator: f32=0.0;if (samplePos.x<0.01 || samplePos.y<0.01) {mip_separator=1.0;}
var outBounds: bool=select(false,true,sampleIndex>size.z-1);sampleIndex=clamp(sampleIndex,0,size.z-1);var samplePosInt: vec2i= vec2i(samplePos.xy* vec2f(size.xy));var voxel: vec3f=textureLoad(voxelTexture,
vec3i(i32(samplePosInt.x),i32(samplePosInt.y),i32(sampleIndex)),
i32(uniforms.mipNumber)).rgb;if (uv.x<0.0 || uv.x>1.0 || uv.y<0.0 || uv.y>1.0) {fragmentOutputs.color=background;} else {if (outBounds) {voxel= vec3f(0.15,0.0,0.0);} else {if (voxel.r>0.001) {voxel.g=1.0;}
voxel.r+=mip_separator;}
fragmentOutputs.color=vec4f(mix(background.rgb,voxelSlab.rgb,voxelSlab.a)+voxel,1.0);}}`;H.ShadersStoreWGSL[gce]||(H.ShadersStoreWGSL[gce]=i9e);const s9e={name:gce,shader:i9e},KKe=Object.freeze(Object.defineProperty({__proto__:null,iblVoxelGrid3dDebugPixelShaderWGSL:s9e},Symbol.toStringTag,{value:"Module"})),_ce="iblVoxelSlabDebugVertexShader",r9e="attribute vec3 position;varying vec3 vNormalizedPosition;uniform mat4 world;uniform mat4 invWorldScale;uniform mat4 cameraViewMatrix;uniform mat4 projection;uniform mat4 viewMatrix;void main(void) {vec4 worldPosition=(world*vec4(position,1.));gl_Position=projection*cameraViewMatrix*worldPosition;vNormalizedPosition=(viewMatrix*invWorldScale*worldPosition).rgb;vNormalizedPosition.xyz=vNormalizedPosition.xyz*vec3(0.5)+vec3(0.5);}";H.ShadersStore[_ce]||(H.ShadersStore[_ce]=r9e);const n9e={name:_ce,shader:r9e},qKe=Object.freeze(Object.defineProperty({__proto__:null,iblVoxelSlabDebugVertexShader:n9e},Symbol.toStringTag,{value:"Module"})),vce="iblVoxelSlabDebugPixelShader",a9e=`precision highp float;varying vec3 vNormalizedPosition;uniform float nearPlane;uniform float farPlane;uniform float stepSize;void main(void) {vec3 normPos=vNormalizedPosition.xyz;float chunkSize=stepSize*float(MAX_DRAW_BUFFERS);float numChunks=1.0/chunkSize;float positionInChunk=fract(normPos.z/chunkSize);float slab=floor(positionInChunk*float(MAX_DRAW_BUFFERS)) /
float(MAX_DRAW_BUFFERS);if (normPos.x<0.0 || normPos.y<0.0 || normPos.z<0.0 ||
normPos.x>1.0 || normPos.y>1.0 || normPos.z>1.0) {gl_FragColor=vec4(0.0,0.0,0.0,0.0);} else {gl_FragColor=vec4(slab,0.0,0.0,0.75);}}`;H.ShadersStore[vce]||(H.ShadersStore[vce]=a9e);const o9e={name:vce,shader:a9e},QKe=Object.freeze(Object.defineProperty({__proto__:null,iblVoxelSlabDebugPixelShader:o9e},Symbol.toStringTag,{value:"Module"})),Ace="iblVoxelSlabDebugVertexShader",l9e=`attribute position: vec3f;varying vNormalizedPosition: vec3f;uniform world: mat4x4f;uniform invWorldScale: mat4x4f;uniform cameraViewMatrix: mat4x4f;uniform projection: mat4x4f;uniform viewMatrix: mat4x4f;@vertex
fn main(input : VertexInputs)->FragmentInputs {var worldPosition: vec4f=(uniforms.world* vec4f(input.position,1.));vertexOutputs.position=uniforms.projection*uniforms.cameraViewMatrix*worldPosition;vertexOutputs.vNormalizedPosition=(uniforms.viewMatrix*uniforms.invWorldScale*worldPosition).rgb;vertexOutputs.vNormalizedPosition=vertexOutputs.vNormalizedPosition* vec3f(0.5)+ vec3f(0.5);}`;H.ShadersStoreWGSL[Ace]||(H.ShadersStoreWGSL[Ace]=l9e);const c9e={name:Ace,shader:l9e},JKe=Object.freeze(Object.defineProperty({__proto__:null,iblVoxelSlabDebugVertexShaderWGSL:c9e},Symbol.toStringTag,{value:"Module"})),Cce="iblVoxelSlabDebugPixelShader",u9e=`varying vNormalizedPosition: vec3f;uniform nearPlane: f32;uniform farPlane: f32;uniform stepSize: f32;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var normPos: vec3f=input.vNormalizedPosition.xyz;var chunkSize: f32=uniforms.stepSize* f32(MAX_DRAW_BUFFERS);var numChunks: f32=1.0/chunkSize;var positionInChunk: f32=fract(normPos.z/chunkSize);var slab: f32=floor(positionInChunk* f32(MAX_DRAW_BUFFERS)) /
f32(MAX_DRAW_BUFFERS);if (normPos.x<0.0 || normPos.y<0.0 || normPos.z<0.0 ||
normPos.x>1.0 || normPos.y>1.0 || normPos.z>1.0) {fragmentOutputs.color= vec4f(0.0,0.0,0.0,0.0);} else {fragmentOutputs.color= vec4f(slab,0.0,0.0,0.75);}}`;H.ShadersStoreWGSL[Cce]||(H.ShadersStoreWGSL[Cce]=u9e);const h9e={name:Cce,shader:u9e},$Ke=Object.freeze(Object.defineProperty({__proto__:null,iblVoxelSlabDebugPixelShaderWGSL:h9e},Symbol.toStringTag,{value:"Module"})),xce="oitBackBlendPixelShader",d9e=`precision highp float;uniform sampler2D uBackColor;void main() {glFragColor=texelFetch(uBackColor,ivec2(gl_FragCoord.xy),0);if (glFragColor.a==0.0) { 
discard;}}`;H.ShadersStore[xce]||(H.ShadersStore[xce]=d9e);const f9e={name:xce,shader:d9e},p9e=Object.freeze(Object.defineProperty({__proto__:null,oitBackBlendPixelShader:f9e},Symbol.toStringTag,{value:"Module"})),bce="oitFinalPixelShader",m9e=`precision highp float;uniform sampler2D uFrontColor;uniform sampler2D uBackColor;void main() {ivec2 fragCoord=ivec2(gl_FragCoord.xy);vec4 frontColor=texelFetch(uFrontColor,fragCoord,0);vec4 backColor=texelFetch(uBackColor,fragCoord,0);float alphaMultiplier=1.0-frontColor.a;glFragColor=vec4(
frontColor.rgb+alphaMultiplier*backColor.rgb,
frontColor.a+backColor.a
);}`;H.ShadersStore[bce]||(H.ShadersStore[bce]=m9e);const g9e={name:bce,shader:m9e},eqe=Object.freeze(Object.defineProperty({__proto__:null,oitFinalPixelShader:g9e},Symbol.toStringTag,{value:"Module"})),Sce="oitBackBlendPixelShader",_9e=`var uBackColor: texture_2d<f32>;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=textureLoad(uBackColor,vec2i(fragmentInputs.position.xy),0);if (fragmentOutputs.color.a==0.0) {discard;}}
`;H.ShadersStoreWGSL[Sce]||(H.ShadersStoreWGSL[Sce]=_9e);const v9e={name:Sce,shader:_9e},A9e=Object.freeze(Object.defineProperty({__proto__:null,oitBackBlendPixelShaderWGSL:v9e},Symbol.toStringTag,{value:"Module"})),yce="oitFinalPixelShader",C9e=`var uFrontColor: texture_2d<f32>;var uBackColor: texture_2d<f32>;@fragment
fn main(input: FragmentInputs)->FragmentOutputs {var fragCoord: vec2i=vec2i(fragmentInputs.position.xy);var frontColor: vec4f=textureLoad(uFrontColor,fragCoord,0);var backColor: vec4f=textureLoad(uBackColor,fragCoord,0);var alphaMultiplier: f32=1.0-frontColor.a;fragmentOutputs.color=vec4f(
frontColor.rgb+alphaMultiplier*backColor.rgb,
frontColor.a+backColor.a
);}
`;H.ShadersStoreWGSL[yce]||(H.ShadersStoreWGSL[yce]=C9e);const x9e={name:yce,shader:C9e},tqe=Object.freeze(Object.defineProperty({__proto__:null,oitFinalPixelShaderWGSL:x9e},Symbol.toStringTag,{value:"Module"})),b9e="spriteMapPixelShader",iqe=`#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
#define TEXTUREFUNC(s,c,l) texture2DLodEXT(s,c,l)
#else
#define TEXTUREFUNC(s,c,b) texture2D(s,c,b)
#endif
precision highp float;varying vec3 vPosition;varying vec2 vUV;varying vec2 tUV;uniform float time;uniform float spriteCount;uniform sampler2D spriteSheet;uniform vec2 spriteMapSize;uniform vec2 outputSize;uniform vec2 stageSize;uniform sampler2D frameMap;uniform sampler2D tileMaps[LAYERS];uniform sampler2D animationMap;uniform vec3 colorMul;
#include<fogFragmentDeclaration>
#include<logDepthDeclaration>
float mt;const float fdStep=1.0*0.25;const float aFrameSteps=MAX_ANIMATION_FRAMES==0.0 ? 0.0 : 1.0/MAX_ANIMATION_FRAMES;mat4 getFrameData(float frameID) {float fX=frameID/spriteCount;return mat4(
TEXTUREFUNC(frameMap,vec2(fX,0.0),0.0),
TEXTUREFUNC(frameMap,vec2(fX,fdStep*1.0),0.0),
TEXTUREFUNC(frameMap,vec2(fX,fdStep*2.0),0.0),
vec4(0.0)
);}
void main() {vec4 color=vec4(0.0);vec2 tileUV=fract(tUV);vec2 tileID=floor(tUV);vec2 sheetUnits=1.0/spriteMapSize;float spriteUnits=1.0/spriteCount;vec2 stageUnits=1.0/stageSize;for(int i=0; i<LAYERS; i++) {float frameID;
#define LAYER_ID_SWITCH
vec4 animationData=TEXTUREFUNC(animationMap,vec2((frameID+0.5)/spriteCount,0.0),0.0);if(animationData.y>0.0) {mt=mod(time*animationData.z,1.0);for(float f=0.0; f<MAX_ANIMATION_FRAMES; f++) {if(animationData.y>mt) {frameID=animationData.x;break;}
animationData=TEXTUREFUNC(animationMap,vec2((frameID+0.5)/spriteCount,aFrameSteps*f),0.0);}}
mat4 frameData=getFrameData(frameID+0.5);vec2 frameSize=(frameData[0].zw)/spriteMapSize;vec2 offset=frameData[0].xy*sheetUnits;vec2 ratio=frameData[2].xy/frameData[0].zw;
#ifdef FR_CW
if (frameData[2].z==1.0) {tileUV.xy=tileUV.yx;} else {tileUV.xy=fract(tUV).xy;}
#ifdef FLIPU
tileUV.y=1.0-tileUV.y;
#endif
#else
if (frameData[2].z==1.0) {
#ifdef FLIPU
tileUV.y=1.0-tileUV.y;
#endif
tileUV.xy=tileUV.yx;} else {tileUV.xy=fract(tUV).xy;
#ifdef FLIPU
tileUV.y=1.0-tileUV.y;
#endif
}
#endif
vec4 nc=TEXTUREFUNC(spriteSheet,tileUV*frameSize+offset,0.0);if (i==0) {color=nc;} else {float alpha=min(color.a+nc.a,1.0);vec3 mixed=mix(color.xyz,nc.xyz,nc.a);color=vec4(mixed,alpha);}}
color.xyz*=colorMul;
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;}`;H.ShadersStore[b9e]||(H.ShadersStore[b9e]=iqe);const S9e="spriteMapVertexShader",sqe=`precision highp float;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;varying vec3 vPosition;varying vec2 vUV;varying vec2 tUV;uniform float time;uniform mat4 world;uniform mat4 view;uniform mat4 projection;uniform vec2 stageSize;uniform float stageScale;
#include<fogVertexDeclaration>
#include<logDepthDeclaration>
void main() {vec4 p=vec4( position,1. );vPosition=p.xyz;vUV=uv;tUV=uv*stageSize; 
vec3 viewPos=(view*world*p).xyz; 
gl_Position=projection*vec4(viewPos,1.0); 
#ifdef FOG
vFogDistance=viewPos;
#endif
#include<logDepthVertex>
}`;H.ShadersStore[S9e]||(H.ShadersStore[S9e]=sqe);var zY;(function(a){a[a.CCW=0]="CCW",a[a.CW=1]="CW"})(zY||(zY={}));class rqe{get spriteCount(){return this.sprites.length}get position(){return this._output.position}set position(e){this._output.position=e}get rotation(){return this._output.rotation}set rotation(e){this._output.rotation=e}get animationMap(){return this._animationMap}set animationMap(e){const t=e._texture._bufferView,i=this._createTileAnimationBuffer(t);this._animationMap.dispose(),this._animationMap=i,this._material.setTexture("animationMap",this._animationMap)}get fogEnabled(){return this._material.fogEnabled}set fogEnabled(e){this._material.fogEnabled=e}get useLogarithmicDepth(){return this._material.useLogarithmicDepth}set useLogarithmicDepth(e){this._material.useLogarithmicDepth=e}constructor(e,t,i,s,r){this.name=e,this.sprites=[],this.atlasJSON=t,this.sprites=this.atlasJSON.frames,this.spriteSheet=i,this.options=s,s.stageSize=s.stageSize||new Ue(1,1),s.outputSize=s.outputSize||s.stageSize,s.outputPosition=s.outputPosition||P.Zero(),s.outputRotation=s.outputRotation||P.Zero(),s.layerCount=s.layerCount||1,s.maxAnimationFrames=s.maxAnimationFrames||0,s.baseTile=s.baseTile||0,s.flipU=s.flipU||!1,s.colorMultiply=s.colorMultiply||new P(1,1,1),this._scene=r,this._frameMap=this._createFrameBuffer(),this._tileMaps=new Array;for(let p=0;p<s.layerCount;p++)this._tileMaps.push(this._createTileBuffer(null,p));this._animationMap=this._createTileAnimationBuffer(null);const n=[];n.push("#define LAYERS "+s.layerCount),(s==null?void 0:s.frameRotationDirection)===zY.CW&&n.push("#define FR_CW"),s.flipU&&n.push("#define FLIPU"),n.push(`#define MAX_ANIMATION_FRAMES ${s.maxAnimationFrames}.0`);const o=Ls.ShadersStore.spriteMapPixelShader;let l;if(r.getEngine()._features.supportSwitchCaseInShader){l="switch(i) {";for(let p=0;p<s.layerCount;p++)l+="case "+p+" : frameID = texture(tileMaps["+p+"], (tileID + 0.5) / stageSize, 0.).x;",l+="break;";l+="}"}else{l="";for(let p=0;p<s.layerCount;p++)l+=`if (${p} == i) { frameID = texture2D(tileMaps[${p}], (tileID + 0.5) / stageSize, 0.).x; }`}Ls.ShadersStore["spriteMap"+this.name+"PixelShader"]=o.replace("#define LAYER_ID_SWITCH",l),this._material=new Fo("spriteMap:"+this.name,this._scene,{vertex:"spriteMap",fragment:"spriteMap"+this.name},{defines:n,attributes:["position","normal","uv"],uniforms:["world","view","projection","time","stageSize","outputSize","spriteMapSize","spriteCount","time","colorMul","mousePosition","curTile","flipU"],samplers:["spriteSheet","frameMap","tileMaps","animationMap"],needAlphaBlending:!0}),this._time=0,this._material.setFloat("spriteCount",this.spriteCount),this._material.setVector2("stageSize",s.stageSize),this._material.setVector2("outputSize",s.outputSize),this._material.setTexture("spriteSheet",this.spriteSheet),this._material.setVector2("spriteMapSize",new Ue(1,1)),this._material.setVector3("colorMul",s.colorMultiply);let c=0;const u=()=>{if(this.spriteSheet&&this.spriteSheet.isReady()&&this.spriteSheet._texture){this._material.setVector2("spriteMapSize",new Ue(this.spriteSheet._texture.baseWidth||1,this.spriteSheet._texture.baseHeight||1));return}c<100&&setTimeout(()=>{c++,u()},100)};u(),this._material.setVector3("colorMul",s.colorMultiply),this._material.setTexture("frameMap",this._frameMap),this._material.setTextureArray("tileMaps",this._tileMaps),this._material.setTexture("animationMap",this._animationMap),this._material.setFloat("time",this._time),this._output=Eh(e+":output",{size:1,updatable:!0},r),this._output.scaling.x=s.outputSize.x,this._output.scaling.y=s.outputSize.y,this.position=s.outputPosition,this.rotation=s.outputRotation;const f=()=>{this._time+=this._scene.getEngine().getDeltaTime(),this._material.setFloat("time",this._time)};this._scene.onBeforeRenderObservable.add(f),this._output.material=this._material}getTileIdxByName(e){return this.atlasJSON.frames.findIndex(i=>i.filename===e)}getTileID(){const e=this.getMousePosition();return e.multiplyInPlace(this.options.stageSize||Ue.Zero()),e.x=Math.floor(e.x),e.y=Math.floor(e.y),e}getMousePosition(){const e=this._output,t=this._scene.pick(this._scene.pointerX,this._scene.pointerY,s=>s===e);if(!t||!t.hit||!t.getTextureCoordinates)return new Ue(-1,-1);const i=t.getTextureCoordinates();return i||new Ue(-1,-1)}_createFrameBuffer(){const e=[];for(let s=0;s<this.spriteCount;s++)e.push(0,0,0,0),e.push(0,0,0,0),e.push(0,0,0,0),e.push(0,0,0,0);for(let s=0;s<this.spriteCount;s++){const r=this.sprites[s].frame,n=this.sprites[s].spriteSourceSize,o=this.sprites[s].sourceSize,l=this.sprites[s].rotated?1:0,c=this.sprites[s].trimmed?1:0;e[s*4]=r.x,e[s*4+1]=r.y,e[s*4+2]=r.w,e[s*4+3]=r.h,e[s*4+this.spriteCount*4]=n.x,e[s*4+1+this.spriteCount*4]=n.y,e[s*4+3+this.spriteCount*4]=n.h,e[s*4+this.spriteCount*8]=o.w,e[s*4+1+this.spriteCount*8]=o.h,e[s*4+2+this.spriteCount*8]=l,e[s*4+3+this.spriteCount*8]=c}const t=new Float32Array(e);return Ur.CreateRGBATexture(t,this.spriteCount,4,this._scene,!1,!1,be.NEAREST_NEAREST,1)}_createTileBuffer(e,t=0){let i=[];const s=this.options.stageSize.y||0,r=this.options.stageSize.x||0;if(e)i=e;else{let l=this.options.baseTile;t!=0&&(l=0);for(let c=0;c<s;c++)for(let u=0;u<r*4;u+=4)i.push(l,0,0,0)}const n=new Float32Array(i);return Ur.CreateRGBATexture(n,r,s,this._scene,!1,!1,be.NEAREST_NEAREST,1)}changeTiles(e=0,t,i=0){const s=this._tileMaps[e]._texture._bufferView;if(s===null)return;let r=[];t instanceof Ue?r.push(t):r=t;const n=this.options.stageSize.x||0;for(let l=0;l<r.length;l++){const c=r[l];c.x=Math.floor(c.x),c.y=Math.floor(c.y);const u=c.x*4+c.y*(n*4);s[u]=i}const o=this._createTileBuffer(s);this._tileMaps[e].dispose(),this._tileMaps[e]=o,this._material.setTextureArray("tileMap",this._tileMaps)}_createTileAnimationBuffer(e){const t=[];let i;if(e)i=e;else{for(let r=0;r<this.spriteCount;r++){t.push(0,0,0,0);let n=1;for(;n<(this.options.maxAnimationFrames||4);)t.push(0,0,0,0),n++}i=new Float32Array(t)}return Ur.CreateRGBATexture(i,this.spriteCount,this.options.maxAnimationFrames||4,this._scene,!1,!1,be.NEAREST_NEAREST,1)}addAnimationToTile(e=0,t=0,i=0,s=0,r=1){const n=this._animationMap._texture._bufferView,o=e*4+this.spriteCount*4*t;if(!n)return;n[o]=i,n[o+1]=s,n[o+2]=r;const l=this._createTileAnimationBuffer(n);this._animationMap.dispose(),this._animationMap=l,this._material.setTexture("animationMap",this._animationMap)}saveTileMaps(){let e="";for(let i=0;i<this._tileMaps.length;i++)i>0&&(e+=`
\r`),e+=this._tileMaps[i]._texture._bufferView.toString();const t=document.createElement("a");t.href="data:octet/stream;charset=utf-8,"+encodeURI(e),t.target="_blank",t.download=this.name+".tilemaps",t.click(),t.remove()}loadTileMaps(e){const t=new XMLHttpRequest;t.open("GET",e);const i=this.options.layerCount||0;t.onload=()=>{const s=t.response.split(`
\r`);for(let r=0;r<i;r++){const n=s[r].split(",").map(Number),o=this._createTileBuffer(n);this._tileMaps[r].dispose(),this._tileMaps[r]=o}this._material.setTextureArray("tileMap",this._tileMaps)},t.send()}dispose(){this._output.dispose(),this._material.dispose(),this._animationMap.dispose(),this._tileMaps.forEach(e=>{e.dispose()}),this._frameMap.dispose()}}class nqe extends h5{constructor(e,t,i,s,r=null,n=.01,o=be.TRILINEAR_SAMPLINGMODE,l){super(e,t,i,64,s,n,o,!0,r,l),this.name=e}}const y9e="imageProcessingCompatibility",aqe=`#ifdef IMAGEPROCESSINGPOSTPROCESS
gl_FragColor.rgb=pow(gl_FragColor.rgb,vec3(2.2));
#endif
`;H.IncludesShadersStore[y9e]||(H.IncludesShadersStore[y9e]=aqe);const Mce="spritesPixelShader",M9e=`#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
uniform bool alphaTest;varying vec4 vColor;varying vec2 vUV;uniform sampler2D diffuseSampler;
#include<fogFragmentDeclaration>
#include<logDepthDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
#ifdef PIXEL_PERFECT
vec2 uvPixelPerfect(vec2 uv) {vec2 res=vec2(textureSize(diffuseSampler,0));uv=uv*res;vec2 seam=floor(uv+0.5);uv=seam+clamp((uv-seam)/fwidth(uv),-0.5,0.5);return uv/res;}
#endif
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#ifdef PIXEL_PERFECT
vec2 uv=uvPixelPerfect(vUV);
#else
vec2 uv=vUV;
#endif
vec4 color=texture2D(diffuseSampler,uv);float fAlphaTest=float(alphaTest);if (fAlphaTest != 0.)
{if (color.a<0.95)
discard;}
color*=vColor;
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[Mce]||(H.ShadersStore[Mce]=M9e);const E9e={name:Mce,shader:M9e},oqe=Object.freeze(Object.defineProperty({__proto__:null,spritesPixelShader:E9e},Symbol.toStringTag,{value:"Module"})),Ece="spritesVertexShader",T9e=`attribute vec4 position;attribute vec2 options;attribute vec2 offsets;attribute vec2 inverts;attribute vec4 cellInfo;attribute vec4 color;uniform mat4 view;uniform mat4 projection;varying vec2 vUV;varying vec4 vColor;
#include<fogVertexDeclaration>
#include<logDepthDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
vec3 viewPos=(view*vec4(position.xyz,1.0)).xyz; 
vec2 cornerPos;float angle=position.w;vec2 size=vec2(options.x,options.y);vec2 offset=offsets.xy;cornerPos=vec2(offset.x-0.5,offset.y -0.5)*size;vec3 rotatedCorner;rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;viewPos+=rotatedCorner;gl_Position=projection*vec4(viewPos,1.0); 
vColor=color;vec2 uvOffset=vec2(abs(offset.x-inverts.x),abs(1.0-offset.y-inverts.y));vec2 uvPlace=cellInfo.xy;vec2 uvSize=cellInfo.zw;vUV.x=uvPlace.x+uvSize.x*uvOffset.x;vUV.y=uvPlace.y+uvSize.y*uvOffset.y;
#ifdef FOG
vFogDistance=viewPos;
#endif
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[Ece]||(H.ShadersStore[Ece]=T9e);const L9e={name:Ece,shader:T9e},lqe=Object.freeze(Object.defineProperty({__proto__:null,spritesVertexShader:L9e},Symbol.toStringTag,{value:"Module"})),I9e="imageProcessingCompatibility",cqe=`#ifdef IMAGEPROCESSINGPOSTPROCESS
fragmentOutputs.color=vec4f(pow(fragmentOutputs.color.rgb, vec3f(2.2)),fragmentOutputs.color.a);
#endif
`;H.IncludesShadersStoreWGSL[I9e]||(H.IncludesShadersStoreWGSL[I9e]=cqe);const Tce="spritesPixelShader",P9e=`uniform alphaTest: i32;varying vColor: vec4f;varying vUV: vec2f;var diffuseSamplerSampler: sampler;var diffuseSampler: texture_2d<f32>;
#include<fogFragmentDeclaration>
#include<logDepthDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
#ifdef PIXEL_PERFECT
fn uvPixelPerfect(uv: vec2f)->vec2f {var res: vec2f= vec2f(textureDimensions(diffuseSampler,0));var uvTemp=uv*res;var seam: vec2f=floor(uvTemp+0.5);uvTemp=seam+clamp((uvTemp-seam)/fwidth(uvTemp),vec2f(-0.5),vec2f(0.5));return uvTemp/res;}
#endif
@fragment
fn main(input: FragmentInputs)->FragmentOutputs {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#ifdef PIXEL_PERFECT
var uv: vec2f=uvPixelPerfect(input.vUV);
#else
var uv: vec2f=input.vUV;
#endif
var color: vec4f=textureSample(diffuseSampler,diffuseSamplerSampler,uv);var fAlphaTest: f32= f32(uniforms.alphaTest);if (fAlphaTest != 0.)
{if (color.a<0.95) {discard;}}
color*=input.vColor;
#include<logDepthFragment>
#include<fogFragment>
fragmentOutputs.color=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStoreWGSL[Tce]||(H.ShadersStoreWGSL[Tce]=P9e);const O9e={name:Tce,shader:P9e},uqe=Object.freeze(Object.defineProperty({__proto__:null,spritesPixelShaderWGSL:O9e},Symbol.toStringTag,{value:"Module"})),Lce="spritesVertexShader",R9e=`attribute position: vec4f;attribute options: vec2f;attribute offsets: vec2f;attribute inverts: vec2f;attribute cellInfo: vec4f;attribute color: vec4f;uniform view: mat4x4f;uniform projection: mat4x4f;varying vUV: vec2f;varying vColor: vec4f;
#include<fogVertexDeclaration>
#include<logDepthDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
@vertex
fn main(input : VertexInputs)->FragmentInputs {
#define CUSTOM_VERTEX_MAIN_BEGIN
var viewPos: vec3f=(uniforms.view* vec4f(input.position.xyz,1.0)).xyz; 
var cornerPos: vec2f;var angle: f32=input.position.w;var size: vec2f= vec2f(input.options.x,input.options.y);var offset: vec2f=input.offsets.xy;cornerPos= vec2f(offset.x-0.5,offset.y -0.5)*size;var rotatedCorner: vec3f;rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;viewPos+=rotatedCorner;vertexOutputs.position=uniforms.projection*vec4f(viewPos,1.0); 
vertexOutputs.vColor=input.color;var uvOffset: vec2f= vec2f(abs(offset.x-input.inverts.x),abs(1.0-offset.y-input.inverts.y));var uvPlace: vec2f=input.cellInfo.xy;var uvSize: vec2f=input.cellInfo.zw;vertexOutputs.vUV.x=uvPlace.x+uvSize.x*uvOffset.x;vertexOutputs.vUV.y=uvPlace.y+uvSize.y*uvOffset.y;
#ifdef FOG
vertexOutputs.vFogDistance=viewPos;
#endif
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStoreWGSL[Lce]||(H.ShadersStoreWGSL[Lce]=R9e);const D9e={name:Lce,shader:R9e},hqe=Object.freeze(Object.defineProperty({__proto__:null,spritesVertexShaderWGSL:D9e},Symbol.toStringTag,{value:"Module"}));var Ice;(function(a){a[a.ENTERING_XR=0]="ENTERING_XR",a[a.EXITING_XR=1]="EXITING_XR",a[a.IN_XR=2]="IN_XR",a[a.NOT_IN_XR=3]="NOT_IN_XR"})(Ice||(Ice={}));var Pce;(function(a){a[a.NOT_TRACKING=0]="NOT_TRACKING",a[a.TRACKING_LOST=1]="TRACKING_LOST",a[a.TRACKING=2]="TRACKING"})(Pce||(Pce={}));class aM extends Bc{constructor(e,t={}){super(e),this.options=t,this._direction=new P(0,0,-1),this._mat=new me,this._onSelectEnabled=!1,this._origin=new P(0,0,0),this.lastNativeXRHitResults=[],this.onHitTestResultObservable=new xe,this._onHitTestResults=i=>{const s=i.map(r=>{const n=me.FromArray(r.hitMatrix);return this._xrSessionManager.scene.useRightHandedSystem||n.toggleModelMatrixHandInPlace(),this.options.worldParentNode&&n.multiplyToRef(this.options.worldParentNode.getWorldMatrix(),n),{xrHitResult:r,transformationMatrix:n}});this.lastNativeXRHitResults=i,this.onHitTestResultObservable.notifyObservers(s)},this._onSelect=i=>{this._onSelectEnabled&&aM.XRHitTestWithSelectEvent(i,this._xrSessionManager.referenceSpace)},this.xrNativeFeatureName="hit-test",Le.Warn("A newer version of this plugin is available")}static XRHitTestWithRay(e,t,i,s){return e.requestHitTest(t,i).then(r=>{const n=s||(o=>!!o.hitMatrix);return r.filter(n)})}static XRHitTestWithSelectEvent(e,t){const i=e.frame.getPose(e.inputSource.targetRaySpace,t);if(!i)return Promise.resolve([]);const s=new XRRay(i.transform);return this.XRHitTestWithRay(e.frame.session,s,t)}attach(){return super.attach()?(this.options.testOnPointerDownOnly&&this._xrSessionManager.session.addEventListener("select",this._onSelect,!1),!0):!1}detach(){return super.detach()?(this._onSelectEnabled=!1,this._xrSessionManager.session.removeEventListener("select",this._onSelect),!0):!1}dispose(){super.dispose(),this.onHitTestResultObservable.clear()}_onXRFrame(e){if(!this.attached||this.options.testOnPointerDownOnly)return;const t=e.getViewerPose(this._xrSessionManager.referenceSpace);if(!t)return;me.FromArrayToRef(t.transform.matrix,0,this._mat),P.TransformCoordinatesFromFloatsToRef(0,0,0,this._mat,this._origin),P.TransformCoordinatesFromFloatsToRef(0,0,-1,this._mat,this._direction),this._direction.subtractInPlace(this._origin),this._direction.normalize();const i=new XRRay({x:this._origin.x,y:this._origin.y,z:this._origin.z,w:0},{x:this._direction.x,y:this._direction.y,z:this._direction.z,w:0});aM.XRHitTestWithRay(this._xrSessionManager.session,i,this._xrSessionManager.referenceSpace).then(this._onHitTestResults)}}aM.Name=ur.HIT_TEST,aM.Version=1,$a.AddWebXRFeature(aM.Name,(a,e)=>()=>new aM(a,e),aM.Version,!1);let dqe=0;class VO extends Bc{set referenceSpaceForFrameAnchors(e){this._referenceSpaceForFrameAnchors=e}constructor(e,t={}){super(e),this._options=t,this._lastFrameDetected=new Set,this._trackedAnchors=[],this._futureAnchors=[],this.onAnchorAddedObservable=new xe,this.onAnchorRemovedObservable=new xe,this.onAnchorUpdatedObservable=new xe,this._tmpVector=new P,this._tmpQuaternion=new Re,this.xrNativeFeatureName="anchors",this._options.clearAnchorsOnSessionInit&&this._xrSessionManager.onXRSessionInit.add(()=>{this._trackedAnchors.length=0,this._futureAnchors.length=0,this._lastFrameDetected.clear()})}_populateTmpTransformation(e,t){return this._tmpVector.copyFrom(e),this._tmpQuaternion.copyFrom(t),this._xrSessionManager.scene.useRightHandedSystem||(this._tmpVector.z*=-1,this._tmpQuaternion.z*=-1,this._tmpQuaternion.w*=-1),{position:this._tmpVector,rotationQuaternion:this._tmpQuaternion}}async addAnchorPointUsingHitTestResultAsync(e,t=new P,i=new Re){this._populateTmpTransformation(t,i);const s=new XRRigidTransform({x:this._tmpVector.x,y:this._tmpVector.y,z:this._tmpVector.z},{x:this._tmpQuaternion.x,y:this._tmpQuaternion.y,z:this._tmpQuaternion.z,w:this._tmpQuaternion.w});if(e.xrHitResult.createAnchor)try{const r=await e.xrHitResult.createAnchor(s);return new Promise((n,o)=>{this._futureAnchors.push({nativeAnchor:r,resolved:!1,submitted:!0,xrTransformation:s,resolve:n,reject:o})})}catch(r){throw new Error(r)}else throw this.detach(),new Error("Anchors not enabled in this environment/browser")}async addAnchorAtPositionAndRotationAsync(e,t=new Re,i=!1){this._populateTmpTransformation(e,t);const s=new XRRigidTransform({x:this._tmpVector.x,y:this._tmpVector.y,z:this._tmpVector.z},{x:this._tmpQuaternion.x,y:this._tmpQuaternion.y,z:this._tmpQuaternion.z,w:this._tmpQuaternion.w}),r=i&&this.attached&&this._xrSessionManager.currentFrame?await this._createAnchorAtTransformation(s,this._xrSessionManager.currentFrame):void 0;return new Promise((n,o)=>{this._futureAnchors.push({nativeAnchor:r,resolved:!1,submitted:!1,xrTransformation:s,resolve:n,reject:o})})}get anchors(){return this._trackedAnchors}detach(){if(!super.detach())return!1;if(!this._options.doNotRemoveAnchorsOnSessionEnded)for(;this._trackedAnchors.length;){const e=this._trackedAnchors.pop();e&&!e._removed&&(this.onAnchorRemovedObservable.notifyObservers(e),e._removed=!0)}return!0}dispose(){this._futureAnchors.length=0,super.dispose(),this.onAnchorAddedObservable.clear(),this.onAnchorRemovedObservable.clear(),this.onAnchorUpdatedObservable.clear()}_onXRFrame(e){if(!this.attached||!e)return;const t=e.trackedAnchors;if(t){const i=this._trackedAnchors.filter(r=>r._removed).map(r=>this._trackedAnchors.indexOf(r));let s=0;i.forEach(r=>{const n=this._trackedAnchors.splice(r-s,1)[0];n.xrAnchor.delete(),this.onAnchorRemovedObservable.notifyObservers(n),s++}),t.forEach(r=>{if(this._lastFrameDetected.has(r)){const n=this._findIndexInAnchorArray(r),o=this._trackedAnchors[n];try{this._updateAnchorWithXRFrame(r,o,e),o.attachedNode&&(o.attachedNode.rotationQuaternion=o.attachedNode.rotationQuaternion||new Re,o.transformationMatrix.decompose(o.attachedNode.scaling,o.attachedNode.rotationQuaternion,o.attachedNode.position)),this.onAnchorUpdatedObservable.notifyObservers(o)}catch{Le.Warn("Anchor could not be updated")}}else{const n={id:dqe++,xrAnchor:r,remove:()=>{n._removed=!0}},o=this._updateAnchorWithXRFrame(r,n,e);this._trackedAnchors.push(o),this.onAnchorAddedObservable.notifyObservers(o);const c=this._futureAnchors.filter(u=>u.nativeAnchor===r)[0];c&&(c.resolve(o),c.resolved=!0)}}),this._lastFrameDetected=t}this._futureAnchors.forEach(i=>{!i.resolved&&!i.submitted&&(this._createAnchorAtTransformation(i.xrTransformation,e).then(s=>{i.nativeAnchor=s},s=>{i.resolved=!0,i.reject(s)}),i.submitted=!0)})}_findIndexInAnchorArray(e){for(let t=0;t<this._trackedAnchors.length;++t)if(this._trackedAnchors[t].xrAnchor===e)return t;return-1}_updateAnchorWithXRFrame(e,t,i){const s=i.getPose(e.anchorSpace,this._xrSessionManager.referenceSpace);if(s){const r=t.transformationMatrix||new me;me.FromArrayToRef(s.transform.matrix,0,r),this._xrSessionManager.scene.useRightHandedSystem||r.toggleModelMatrixHandInPlace(),t.transformationMatrix=r,this._options.worldParentNode&&r.multiplyToRef(this._options.worldParentNode.getWorldMatrix(),r)}return t}async _createAnchorAtTransformation(e,t){if(t.createAnchor)try{return t.createAnchor(e,this._referenceSpaceForFrameAnchors??this._xrSessionManager.referenceSpace)}catch(i){throw new Error(i)}else throw this.detach(),new Error("Anchors are not enabled in your browser")}}VO.Name=ur.ANCHOR_SYSTEM,VO.Version=1,$a.AddWebXRFeature(VO.Name,(a,e)=>()=>new VO(a,e),VO.Version);let fqe=0;class GO extends Bc{constructor(e,t={}){super(e),this._options=t,this._detectedPlanes=[],this._enabled=!1,this._lastFrameDetected=new Set,this.onPlaneAddedObservable=new xe,this.onPlaneRemovedObservable=new xe,this.onPlaneUpdatedObservable=new xe,this.xrNativeFeatureName="plane-detection",this._xrSessionManager.session?this._init():this._xrSessionManager.onXRSessionInit.addOnce(()=>{this._init()})}detach(){if(!super.detach())return!1;if(!this._options.doNotRemovePlanesOnSessionEnded)for(;this._detectedPlanes.length;){const e=this._detectedPlanes.pop();e&&this.onPlaneRemovedObservable.notifyObservers(e)}return!0}dispose(){super.dispose(),this.onPlaneAddedObservable.clear(),this.onPlaneRemovedObservable.clear(),this.onPlaneUpdatedObservable.clear()}isCompatible(){return typeof XRPlane<"u"}async initiateRoomCapture(){return this._xrSessionManager.session.initiateRoomCapture?this._xrSessionManager.session.initiateRoomCapture():Promise.reject("initiateRoomCapture is not supported on this session")}_onXRFrame(e){var i;if(!this.attached||!this._enabled||!e)return;const t=e.detectedPlanes||((i=e.worldInformation)==null?void 0:i.detectedPlanes);if(t){for(let s=0;s<this._detectedPlanes.length;s++){const r=this._detectedPlanes[s];t.has(r.xrPlane)||(this._detectedPlanes.splice(s--,1),this.onPlaneRemovedObservable.notifyObservers(r))}t.forEach(s=>{if(this._lastFrameDetected.has(s)){if(s.lastChangedTime===this._xrSessionManager.currentTimestamp){const r=this._findIndexInPlaneArray(s),n=this._detectedPlanes[r];this._updatePlaneWithXRPlane(s,n,e),this.onPlaneUpdatedObservable.notifyObservers(n)}}else{const r={id:fqe++,xrPlane:s,polygonDefinition:[]},n=this._updatePlaneWithXRPlane(s,r,e);this._detectedPlanes.push(n),this.onPlaneAddedObservable.notifyObservers(n)}}),this._lastFrameDetected=t}}_init(){const e=()=>{this._enabled=!0,this._detectedPlanes.length&&(this._detectedPlanes.length=0)};if(this._xrSessionManager.isNative&&this._options.preferredDetectorOptions&&this._xrSessionManager.session.trySetPreferredPlaneDetectorOptions&&this._xrSessionManager.session.trySetPreferredPlaneDetectorOptions(this._options.preferredDetectorOptions),!this._xrSessionManager.session.updateWorldTrackingState){e();return}this._xrSessionManager.session.updateWorldTrackingState({planeDetectionState:{enabled:!0}}),e()}_updatePlaneWithXRPlane(e,t,i){t.polygonDefinition=e.polygon.map(r=>{const n=this._xrSessionManager.scene.useRightHandedSystem?1:-1;return new P(r.x,r.y,r.z*n)});const s=i.getPose(e.planeSpace,this._xrSessionManager.referenceSpace);if(s){const r=t.transformationMatrix||new me;me.FromArrayToRef(s.transform.matrix,0,r),this._xrSessionManager.scene.useRightHandedSystem||r.toggleModelMatrixHandInPlace(),t.transformationMatrix=r,this._options.worldParentNode&&r.multiplyToRef(this._options.worldParentNode.getWorldMatrix(),r)}return t}_findIndexInPlaneArray(e){for(let t=0;t<this._detectedPlanes.length;++t)if(this._detectedPlanes[t].xrPlane===e)return t;return-1}}GO.Name=ur.PLANE_DETECTION,GO.Version=1,$a.AddWebXRFeature(GO.Name,(a,e)=>()=>new GO(a,e),GO.Version);class WO extends Bc{constructor(e,t={}){super(e),this.options=t,this.onBackgroundStateChangedObservable=new xe}attach(){return this._setBackgroundState(!1),super.attach()}detach(){return this._setBackgroundState(!0),super.detach()}dispose(){super.dispose(),this.onBackgroundStateChangedObservable.clear()}_onXRFrame(e){}_setBackgroundState(e){const t=this._xrSessionManager.scene;if(!this.options.ignoreEnvironmentHelper)if(this.options.environmentHelperRemovalFlags){if(this.options.environmentHelperRemovalFlags.skyBox){const i=t.getMeshByName("BackgroundSkybox");i&&i.setEnabled(e)}if(this.options.environmentHelperRemovalFlags.ground){const i=t.getMeshByName("BackgroundPlane");i&&i.setEnabled(e)}}else{const i=t.getMeshByName("BackgroundHelper");i&&i.setEnabled(e)}this.options.backgroundMeshes&&this.options.backgroundMeshes.forEach(i=>i.setEnabled(e)),this.onBackgroundStateChangedObservable.notifyObservers(e)}}WO.Name=ur.BACKGROUND_REMOVER,WO.Version=1,$a.AddWebXRFeature(WO.Name,(a,e)=>()=>new WO(a,e),WO.Version,!0);class pqe{}class HO extends Bc{_createPhysicsImpostor(e){const t=this._options.physicsProperties.impostorType||$i.SphereImpostor,i=this._options.physicsProperties.impostorSize||.1,s=hd("impostor-mesh-"+e.uniqueId,{diameterX:typeof i=="number"?i:i.width,diameterY:typeof i=="number"?i:i.height,diameterZ:typeof i=="number"?i:i.depth});s.isVisible=this._debugMode,s.isPickable=!1,s.rotationQuaternion=new Re;const r=e.grip||e.pointer;s.position.copyFrom(r.position),s.rotationQuaternion.copyFrom(r.rotationQuaternion);const n=new $i(s,t,{mass:0,...this._options.physicsProperties});this._controllers[e.uniqueId]={xrController:e,impostor:n,impostorMesh:s}}constructor(e,t){super(e),this._options=t,this._attachController=i=>{this._controllers[i.uniqueId]||(this._xrSessionManager.scene.isPhysicsEnabled()||de.Warn("physics engine not enabled, skipped. Please add this controller manually."),this._options.physicsProperties.useControllerMesh&&i.inputSource.gamepad?i.onMotionControllerInitObservable.addOnce(s=>{s._doNotLoadControllerMesh?this._createPhysicsImpostor(i):s.onModelLoadedObservable.addOnce(()=>{const r=new $i(s.rootMesh,$i.MeshImpostor,{mass:0,...this._options.physicsProperties}),n=i.grip||i.pointer;this._controllers[i.uniqueId]={xrController:i,impostor:r,oldPos:n.position.clone(),oldRotation:n.rotationQuaternion.clone()}})}):this._createPhysicsImpostor(i))},this._controllers={},this._debugMode=!1,this._delta=0,this._lastTimestamp=0,this._tmpQuaternion=new Re,this._tmpVector=new P,this._options.physicsProperties||(this._options.physicsProperties={})}_enablePhysicsDebug(){this._debugMode=!0,Object.keys(this._controllers).forEach(e=>{const t=this._controllers[e];t.impostorMesh&&(t.impostorMesh.isVisible=!0)})}addController(e){this._attachController(e)}attach(){if(!super.attach())return!1;if(!this._options.xrInput)return!0;if(this._options.xrInput.controllers.forEach(this._attachController),this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable,this._attachController),this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable,e=>{this._detachController(e.uniqueId)}),this._options.enableHeadsetImpostor){const e=this._options.headsetImpostorParams||{impostorType:$i.SphereImpostor,restitution:.8,impostorSize:.3},t=e.impostorSize||.3;this._headsetMesh=hd("headset-mesh",{diameterX:typeof t=="number"?t:t.width,diameterY:typeof t=="number"?t:t.height,diameterZ:typeof t=="number"?t:t.depth}),this._headsetMesh.rotationQuaternion=new Re,this._headsetMesh.isVisible=!1,this._headsetImpostor=new $i(this._headsetMesh,e.impostorType,{mass:0,...e})}return!0}detach(){return super.detach()?(Object.keys(this._controllers).forEach(e=>{this._detachController(e)}),this._headsetMesh&&this._headsetMesh.dispose(),!0):!1}getHeadsetImpostor(){return this._headsetImpostor}getImpostorForController(e){const t=typeof e=="string"?e:e.uniqueId;return this._controllers[t]?this._controllers[t].impostor:null}setPhysicsProperties(e){this._options.physicsProperties={...this._options.physicsProperties,...e}}_onXRFrame(e){var t,i;if(this._delta=this._xrSessionManager.currentTimestamp-this._lastTimestamp,this._lastTimestamp=this._xrSessionManager.currentTimestamp,this._headsetMesh&&this._headsetImpostor){if(this._headsetMesh.position.copyFrom(this._options.xrInput.xrCamera.globalPosition),this._headsetMesh.rotationQuaternion.copyFrom(this._options.xrInput.xrCamera.absoluteRotation),(t=this._options.xrInput.xrCamera._lastXRViewerPose)!=null&&t.linearVelocity){const s=this._options.xrInput.xrCamera._lastXRViewerPose.linearVelocity;this._tmpVector.set(s.x,s.y,s.z),this._headsetImpostor.setLinearVelocity(this._tmpVector)}if((i=this._options.xrInput.xrCamera._lastXRViewerPose)!=null&&i.angularVelocity){const s=this._options.xrInput.xrCamera._lastXRViewerPose.angularVelocity;this._tmpVector.set(s.x,s.y,s.z),this._headsetImpostor.setAngularVelocity(this._tmpVector)}}Object.keys(this._controllers).forEach(s=>{var c,u;const r=this._controllers[s],n=r.xrController.grip||r.xrController.pointer,o=r.oldPos||r.impostorMesh.position;if((c=r.xrController._lastXRPose)!=null&&c.linearVelocity){const f=r.xrController._lastXRPose.linearVelocity;this._tmpVector.set(f.x,f.y,f.z),r.impostor.setLinearVelocity(this._tmpVector)}else n.position.subtractToRef(o,this._tmpVector),this._tmpVector.scaleInPlace(1e3/this._delta),r.impostor.setLinearVelocity(this._tmpVector);o.copyFrom(n.position),this._debugMode&&de.Log([this._tmpVector,"linear"]);const l=r.oldRotation||r.impostorMesh.rotationQuaternion;if((u=r.xrController._lastXRPose)!=null&&u.angularVelocity){const f=r.xrController._lastXRPose.angularVelocity;this._tmpVector.set(f.x,f.y,f.z),r.impostor.setAngularVelocity(this._tmpVector)}else if(!l.equalsWithEpsilon(n.rotationQuaternion)){l.conjugateInPlace().multiplyToRef(n.rotationQuaternion,this._tmpQuaternion);const f=Math.sqrt(this._tmpQuaternion.x*this._tmpQuaternion.x+this._tmpQuaternion.y*this._tmpQuaternion.y+this._tmpQuaternion.z*this._tmpQuaternion.z);if(this._tmpVector.set(this._tmpQuaternion.x,this._tmpQuaternion.y,this._tmpQuaternion.z),f<.001)this._tmpVector.scaleInPlace(2);else{const p=2*Math.atan2(f,this._tmpQuaternion.w);this._tmpVector.scaleInPlace(p/(f*(this._delta/1e3)))}r.impostor.setAngularVelocity(this._tmpVector)}l.copyFrom(n.rotationQuaternion),this._debugMode&&de.Log([this._tmpVector,this._tmpQuaternion,"angular"])})}_detachController(e){const t=this._controllers[e];t&&(t.impostorMesh&&t.impostorMesh.dispose(),delete this._controllers[e])}}HO.Name=ur.PHYSICS_CONTROLLERS,HO.Version=1,$a.AddWebXRFeature(HO.Name,(a,e)=>()=>new HO(a,e),HO.Version,!0);class YO extends Bc{constructor(e,t={}){super(e),this.options=t,this._tmpMat=new me,this._tmpPos=new P,this._tmpQuat=new Re,this._initHitTestSource=i=>{if(!i)return;const s=new XRRay(this.options.offsetRay||{}),r={space:this.options.useReferenceSpace?i:this._xrSessionManager.viewerReferenceSpace,offsetRay:s};if(this.options.entityTypes&&(r.entityTypes=this.options.entityTypes),!r.space){Le.Warn("waiting for viewer reference space to initialize");return}this._xrSessionManager.session.requestHitTestSource(r).then(n=>{this._xrHitTestSource&&this._xrHitTestSource.cancel(),this._xrHitTestSource=n})},this.autoCloneTransformation=!1,this.onHitTestResultObservable=new xe,this.paused=!1,this.xrNativeFeatureName="hit-test",Le.Warn("Hit test is an experimental and unstable feature.")}attach(){if(!super.attach()||!this._xrSessionManager.session.requestHitTestSource)return!1;if(this.options.disablePermanentHitTest||(this._xrSessionManager.referenceSpace&&this._initHitTestSource(this._xrSessionManager.referenceSpace),this._xrSessionManager.onXRReferenceSpaceChanged.add(this._initHitTestSource)),this.options.enableTransientHitTest){const e=new XRRay(this.options.transientOffsetRay||{});this._xrSessionManager.session.requestHitTestSourceForTransientInput({profile:this.options.transientHitTestProfile||"generic-touchscreen",offsetRay:e,entityTypes:this.options.entityTypes}).then(t=>{this._transientXrHitTestSource=t})}return!0}detach(){return super.detach()?(this._xrHitTestSource&&(this._xrHitTestSource.cancel(),this._xrHitTestSource=null),this._xrSessionManager.onXRReferenceSpaceChanged.removeCallback(this._initHitTestSource),this._transientXrHitTestSource&&(this._transientXrHitTestSource.cancel(),this._transientXrHitTestSource=null),!0):!1}dispose(){super.dispose(),this.onHitTestResultObservable.clear()}_onXRFrame(e){if(!(!this.attached||this.paused)){if(this._xrHitTestSource){const t=e.getHitTestResults(this._xrHitTestSource);this._processWebXRHitTestResult(t)}this._transientXrHitTestSource&&e.getHitTestResultsForTransientInput(this._transientXrHitTestSource).forEach(i=>{this._processWebXRHitTestResult(i.results,i.inputSource)})}}_processWebXRHitTestResult(e,t){const i=[];e.forEach(s=>{const r=s.getPose(this._xrSessionManager.referenceSpace);if(!r)return;const n=r.transform.position,o=r.transform.orientation;this._tmpPos.set(n.x,n.y,n.z).scaleInPlace(this._xrSessionManager.worldScalingFactor),this._tmpQuat.set(o.x,o.y,o.z,o.w),me.FromFloat32ArrayToRefScaled(r.transform.matrix,0,1,this._tmpMat),this._xrSessionManager.scene.useRightHandedSystem||(this._tmpPos.z*=-1,this._tmpQuat.z*=-1,this._tmpQuat.w*=-1,this._tmpMat.toggleModelMatrixHandInPlace());const l={position:this.autoCloneTransformation?this._tmpPos.clone():this._tmpPos,rotationQuaternion:this.autoCloneTransformation?this._tmpQuat.clone():this._tmpQuat,transformationMatrix:this.autoCloneTransformation?this._tmpMat.clone():this._tmpMat,inputSource:t,isTransient:!!t,xrHitResult:s};i.push(l)}),this.onHitTestResultObservable.notifyObservers(i)}}YO.Name=ur.HIT_TEST,YO.Version=2,$a.AddWebXRFeature(YO.Name,(a,e)=>()=>new YO(a,e),YO.Version,!1);class XO extends Bc{get featurePointCloud(){return this._featurePointCloud}constructor(e){super(e),this._enabled=!1,this._featurePointCloud=[],this.onFeaturePointsAddedObservable=new xe,this.onFeaturePointsUpdatedObservable=new xe,this.xrNativeFeatureName="bjsfeature-points",this._xrSessionManager.session?this._init():this._xrSessionManager.onXRSessionInit.addOnce(()=>{this._init()})}detach(){return super.detach()?(this.featurePointCloud.length=0,!0):!1}dispose(){super.dispose(),this._featurePointCloud.length=0,this.onFeaturePointsUpdatedObservable.clear(),this.onFeaturePointsAddedObservable.clear()}_onXRFrame(e){if(!this.attached||!this._enabled||!e)return;const t=e.featurePointCloud;if(!(!t||t.length===0)){if(t.length%5!==0)throw new Error("Received malformed feature point cloud of length: "+t.length);const i=t.length/5,s=[],r=[];for(let n=0;n<i;n++){const o=n*5,l=t[o+4];this._featurePointCloud[l]?s.push(l):(this._featurePointCloud[l]={position:new P,confidenceValue:0},r.push(l)),this._featurePointCloud[l].position.x=t[o],this._featurePointCloud[l].position.y=t[o+1],this._featurePointCloud[l].position.z=t[o+2],this._featurePointCloud[l].confidenceValue=t[o+3]}r.length>0&&this.onFeaturePointsAddedObservable.notifyObservers(r),s.length>0&&this.onFeaturePointsUpdatedObservable.notifyObservers(s)}}_init(){!this._xrSessionManager.session.trySetFeaturePointCloudEnabled||!this._xrSessionManager.session.trySetFeaturePointCloudEnabled(!0)||(this._enabled=!0)}}XO.Name=ur.FEATURE_POINTS,XO.Version=1,$a.AddWebXRFeature(XO.Name,a=>()=>new XO(a),XO.Version);let mqe=0;class ZO extends Bc{constructor(e,t={}){super(e),this._options=t,this._detectedMeshes=new Map,this.onMeshAddedObservable=new xe,this.onMeshRemovedObservable=new xe,this.onMeshUpdatedObservable=new xe,this.xrNativeFeatureName="mesh-detection",this._options.generateMeshes&&(this._options.convertCoordinateSystems=!0),this._xrSessionManager.session?this._init():this._xrSessionManager.onXRSessionInit.addOnce(()=>{this._init()})}detach(){return super.detach()?(this._xrSessionManager.isNative&&this._xrSessionManager.session.trySetMeshDetectorEnabled&&this._xrSessionManager.session.trySetMeshDetectorEnabled(!1),this._options.doNotRemoveMeshesOnSessionEnded||(this._detectedMeshes.forEach(e=>{this.onMeshRemovedObservable.notifyObservers(e)}),this._detectedMeshes.clear()),!0):!1}dispose(){super.dispose(),this.onMeshAddedObservable.clear(),this.onMeshRemovedObservable.clear(),this.onMeshUpdatedObservable.clear()}_onXRFrame(e){var t;try{if(!this.attached||!e)return;const i=e.detectedMeshes||((t=e.worldInformation)==null?void 0:t.detectedMeshes);if(i){const s=new Set;this._detectedMeshes.forEach((r,n)=>{i.has(n)||s.add(n)}),s.forEach(r=>{const n=this._detectedMeshes.get(r);n&&(this.onMeshRemovedObservable.notifyObservers(n),this._detectedMeshes.delete(r))}),i.forEach(r=>{if(this._detectedMeshes.has(r)){if(r.lastChangedTime===this._xrSessionManager.currentTimestamp){const n=this._detectedMeshes.get(r);n&&(this._updateVertexDataWithXRMesh(r,n,e),this.onMeshUpdatedObservable.notifyObservers(n))}}else{const n={id:mqe++,xrMesh:r},o=this._updateVertexDataWithXRMesh(r,n,e);this._detectedMeshes.set(r,o),this.onMeshAddedObservable.notifyObservers(o)}})}}catch(i){de.Log(i.stack)}}_init(){this._xrSessionManager.isNative&&(this._xrSessionManager.session.trySetMeshDetectorEnabled&&this._xrSessionManager.session.trySetMeshDetectorEnabled(!0),this._options.preferredDetectorOptions&&this._xrSessionManager.session.trySetPreferredMeshDetectorOptions&&this._xrSessionManager.session.trySetPreferredMeshDetectorOptions(this._options.preferredDetectorOptions))}_updateVertexDataWithXRMesh(e,t,i){var r;t.xrMesh=e,t.worldParentNode=this._options.worldParentNode;const s=e.vertices||e.positions;if(this._options.convertCoordinateSystems){if(this._xrSessionManager.scene.useRightHandedSystem)t.positions=s,t.normals=e.normals;else{t.positions=new Float32Array(s.length);for(let o=0;o<s.length;o+=3)t.positions[o]=s[o],t.positions[o+1]=s[o+1],t.positions[o+2]=-1*s[o+2];if(e.normals){t.normals=new Float32Array(e.normals.length);for(let o=0;o<e.normals.length;o+=3)t.normals[o]=e.normals[o],t.normals[o+1]=e.normals[o+1],t.normals[o+2]=-1*e.normals[o+2]}}t.indices=e.indices;const n=i.getPose(e.meshSpace,this._xrSessionManager.referenceSpace);if(n){const o=t.transformationMatrix||new me;me.FromArrayToRef(n.transform.matrix,0,o),this._xrSessionManager.scene.useRightHandedSystem||o.toggleModelMatrixHandInPlace(),t.transformationMatrix=o,this._options.worldParentNode&&o.multiplyToRef(this._options.worldParentNode.getWorldMatrix(),o)}if(this._options.generateMeshes){if(t.mesh){const o=t.mesh;o.updateVerticesData(q.PositionKind,t.positions),t.normals?o.updateVerticesData(q.NormalKind,t.normals):o.createNormals(!0),o.updateIndices(t.indices)}else{const o=new Ne("xr mesh "+t.id,this._xrSessionManager.scene);o.rotationQuaternion=new Re,o.setVerticesData(q.PositionKind,t.positions),t.normals?o.setVerticesData(q.NormalKind,t.normals):o.createNormals(!0),o.setIndices(t.indices,void 0,!0),t.mesh=o}(r=t.transformationMatrix)==null||r.decompose(t.mesh.scaling,t.mesh.rotationQuaternion,t.mesh.position)}}return t}}ZO.Name=ur.MESH_DETECTION,ZO.Version=1,$a.AddWebXRFeature(ZO.Name,(a,e)=>()=>new ZO(a,e),ZO.Version,!1);var Lb;(function(a){a[a.NotReceived=0]="NotReceived",a[a.Waiting=1]="Waiting",a[a.Received=2]="Received"})(Lb||(Lb={}));class KO extends Bc{constructor(e,t){super(e),this.options=t,this.onUntrackableImageFoundObservable=new xe,this.onTrackableImageFoundObservable=new xe,this.onTrackedImageUpdatedObservable=new xe,this._trackableScoreStatus=Lb.NotReceived,this._trackedImages=[],this.xrNativeFeatureName="image-tracking"}attach(){return super.attach()}detach(){return super.detach()}getTrackedImageById(e){return this._trackedImages[e]||null}dispose(){super.dispose(),this._trackedImages.forEach(e=>{e.originalBitmap.close()}),this._trackedImages.length=0,this.onTrackableImageFoundObservable.clear(),this.onUntrackableImageFoundObservable.clear(),this.onTrackedImageUpdatedObservable.clear()}async getXRSessionInitExtension(){if(!this.options.images||!this.options.images.length)return{};const e=this.options.images.map(t=>typeof t.src=="string"?this._xrSessionManager.scene.getEngine()._createImageBitmapFromSource(t.src):Promise.resolve(t.src));try{const t=await Promise.all(e);return this._originalTrackingRequest=t.map((i,s)=>({image:i,widthInMeters:this.options.images[s].estimatedRealWorldWidth})),{trackedImages:this._originalTrackingRequest}}catch{return Le.Error("Error loading images for tracking, WebXRImageTracking disabled for this session."),{}}}_onXRFrame(e){if(!e.getImageTrackingResults||this._trackableScoreStatus===Lb.Waiting)return;if(this._trackableScoreStatus===Lb.NotReceived){this._checkScoresAsync();return}const t=e.getImageTrackingResults();for(const i of t){let s=!1;const r=i.index,n=this._trackedImages[r];if(!n)continue;n.xrTrackingResult=i,n.realWorldWidth!==i.measuredWidthInMeters&&(n.realWorldWidth=i.measuredWidthInMeters,s=!0);const o=e.getPose(i.imageSpace,this._xrSessionManager.referenceSpace);if(o){const u=n.transformationMatrix;me.FromArrayToRef(o.transform.matrix,0,u),this._xrSessionManager.scene.useRightHandedSystem||u.toggleModelMatrixHandInPlace(),s=!0}const c=i.trackingState==="emulated";n.emulated!==c&&(n.emulated=c,s=!0),s&&this.onTrackedImageUpdatedObservable.notifyObservers(n)}}async _checkScoresAsync(){if(!this._xrSessionManager.session.getTrackedImageScores||this._trackableScoreStatus!==Lb.NotReceived)return;this._trackableScoreStatus=Lb.Waiting;const e=await this._xrSessionManager.session.getTrackedImageScores();if(!e||e.length===0){this._trackableScoreStatus=Lb.NotReceived;return}for(let t=0;t<e.length;++t)if(e[t]=="untrackable")this.onUntrackableImageFoundObservable.notifyObservers(t);else{const i=this._originalTrackingRequest[t].image,s={id:t,originalBitmap:i,transformationMatrix:new me,ratio:i.width/i.height};this._trackedImages[t]=s,this.onTrackableImageFoundObservable.notifyObservers(s)}this._trackableScoreStatus=e.length>0?Lb.Received:Lb.NotReceived}}KO.Name=ur.IMAGE_TRACKING,KO.Version=1,$a.AddWebXRFeature(KO.Name,(a,e)=>()=>new KO(a,e),KO.Version,!1);class qO extends Bc{constructor(e,t){super(e),this.options=t,this._domOverlayType=null,this._beforeXRSelectListener=null,this._element=null,this.xrNativeFeatureName="dom-overlay",Le.Warn("dom-overlay is an experimental and unstable feature.")}attach(){return!super.attach()||!this._xrSessionManager.session.domOverlayState||this._xrSessionManager.session.domOverlayState.type===null?!1:(this._domOverlayType=this._xrSessionManager.session.domOverlayState.type,this._element!==null&&this.options.supressXRSelectEvents===!0&&(this._beforeXRSelectListener=e=>{e.preventDefault()},this._element.addEventListener("beforexrselect",this._beforeXRSelectListener)),!0)}get domOverlayType(){return this._domOverlayType}dispose(){super.dispose(),this._element!==null&&this._beforeXRSelectListener&&this._element.removeEventListener("beforexrselect",this._beforeXRSelectListener)}_onXRFrame(e){}async getXRSessionInitExtension(){if(this.options.element===void 0)return Le.Warn('"element" option must be provided to attach xr-dom-overlay feature.'),{};if(typeof this.options.element=="string"){const e=document.querySelector(this.options.element);if(e===null)return Le.Warn(`element not found '${this.options.element}' (not requesting xr-dom-overlay)`),{};this._element=e}else this._element=this.options.element;return{domOverlay:{root:this._element}}}}qO.Name=ur.DOM_OVERLAY,qO.Version=1,$a.AddWebXRFeature(qO.Name,(a,e)=>()=>new qO(a,e),qO.Version,!1);class oM extends Bc{get movementDirection(){return this._movementDirection}get movementEnabled(){return this._featureContext.movementEnabled}set movementEnabled(e){this._featureContext.movementEnabled=e}get movementOrientationFollowsViewerPose(){return this._featureContext.movementOrientationFollowsViewerPose}set movementOrientationFollowsViewerPose(e){this._featureContext.movementOrientationFollowsViewerPose=e}get movementSpeed(){return this._featureContext.movementSpeed}set movementSpeed(e){this._featureContext.movementSpeed=e}get movementThreshold(){return this._featureContext.movementThreshold}set movementThreshold(e){this._featureContext.movementThreshold=e}get rotationEnabled(){return this._featureContext.rotationEnabled}set rotationEnabled(e){this._featureContext.rotationEnabled=e}get rotationSpeed(){return this._featureContext.rotationSpeed}set rotationSpeed(e){this._featureContext.rotationSpeed=e}get rotationThreshold(){return this._featureContext.rotationThreshold}set rotationThreshold(e){this._featureContext.rotationThreshold=e}constructor(e,t){if(super(e),this._controllers={},this._currentRegistrationConfigurations=[],this._movementDirection=new Re,this._tmpRotationMatrix=me.Identity(),this._tmpTranslationDirection=new P,this._tmpMovementTranslation=new P,this._tempCacheQuaternion=new Re,this._attachController=i=>{if(this._controllers[i.uniqueId])return;this._controllers[i.uniqueId]={xrController:i,registeredComponents:[]};const s=this._controllers[i.uniqueId];if(s.xrController.inputSource.targetRayMode==="tracked-pointer"&&s.xrController.inputSource.gamepad){const r=()=>{if(i.motionController)for(const n of this._currentRegistrationConfigurations){let o=null;if(n.allowedComponentTypes)for(const c of n.allowedComponentTypes){const u=i.motionController.getComponentOfType(c);if(u!==null){o=u;break}}if(n.mainComponentOnly){const c=i.motionController.getMainComponent();if(c===null)continue;o=c}if(typeof n.componentSelectionPredicate=="function"&&(o=n.componentSelectionPredicate(i)),o&&n.forceHandedness&&i.inputSource.handedness!==n.forceHandedness||o===null)continue;const l={registrationConfiguration:n,component:o};s.registeredComponents.push(l),"axisChangedHandler"in n&&(l.onAxisChangedObserver=o.onAxisValueChangedObservable.add(c=>{n.axisChangedHandler(c,this._movementState,this._featureContext,this._xrInput)})),"buttonChangedHandler"in n&&(l.onButtonChangedObserver=o.onButtonStateChangedObservable.add(c=>{c.changes.pressed&&n.buttonChangedHandler(c.changes.pressed,this._movementState,this._featureContext,this._xrInput)}))}};i.motionController?r():i.onMotionControllerInitObservable.addOnce(()=>{r()})}},!t||t.xrInput===void 0){Le.Error('WebXRControllerMovement feature requires "xrInput" option.');return}Array.isArray(t.customRegistrationConfigurations)?this._currentRegistrationConfigurations=t.customRegistrationConfigurations:this._currentRegistrationConfigurations=oM.REGISTRATIONS.default,this._featureContext={movementEnabled:t.movementEnabled||!0,movementOrientationFollowsViewerPose:t.movementOrientationFollowsViewerPose??!0,movementOrientationFollowsController:t.movementOrientationFollowsController??!1,orientationPreferredHandedness:t.orientationPreferredHandedness,movementSpeed:t.movementSpeed??1,movementThreshold:t.movementThreshold??.25,rotationEnabled:t.rotationEnabled??!0,rotationSpeed:t.rotationSpeed??1,rotationThreshold:t.rotationThreshold??.25},this._movementState={moveX:0,moveY:0,rotateX:0,rotateY:0},this._xrInput=t.xrInput}attach(){return super.attach()?(this._xrInput.controllers.forEach(this._attachController),this._addNewAttachObserver(this._xrInput.onControllerAddedObservable,this._attachController),this._addNewAttachObserver(this._xrInput.onControllerRemovedObservable,e=>{this._detachController(e.uniqueId)}),!0):!1}detach(){return super.detach()?(Object.keys(this._controllers).forEach(e=>{this._detachController(e)}),this._controllers={},!0):!1}_onXRFrame(e){if(this.attached){if(this._movementState.rotateX!==0&&this._featureContext.rotationEnabled){const i=this._xrSessionManager.scene.getEngine().getDeltaTime()*.001*this._featureContext.rotationSpeed*this._movementState.rotateX*(this._xrSessionManager.scene.useRightHandedSystem?-1:1);if(this._featureContext.movementOrientationFollowsViewerPose)this._xrInput.xrCamera.cameraRotation.y+=i,Re.RotationYawPitchRollToRef(i,0,0,this._tempCacheQuaternion),this._xrInput.xrCamera.rotationQuaternion.multiplyToRef(this._tempCacheQuaternion,this._movementDirection);else if(this._featureContext.movementOrientationFollowsController){this._xrInput.xrCamera.cameraRotation.y+=i;const s=this._featureContext.orientationPreferredHandedness||"right",r=Object.keys(this._controllers).find(o=>{var l,c;return((c=(l=this._controllers[o])==null?void 0:l.xrController)==null?void 0:c.inputSource.handedness)===s})||Object.keys(this._controllers)[0],n=this._controllers[r];Re.RotationYawPitchRollToRef(i,0,0,this._tempCacheQuaternion),((n==null?void 0:n.xrController.pointer.rotationQuaternion)||Re.Identity()).multiplyToRef(this._tempCacheQuaternion,this._movementDirection)}else Re.RotationYawPitchRollToRef(i*3,0,0,this._tempCacheQuaternion),this._movementDirection.multiplyInPlace(this._tempCacheQuaternion)}else if(this._featureContext.movementOrientationFollowsViewerPose)this._movementDirection.copyFrom(this._xrInput.xrCamera.rotationQuaternion);else if(this._featureContext.movementOrientationFollowsController){const t=this._featureContext.orientationPreferredHandedness||"right",i=Object.keys(this._controllers).find(r=>{var n;return((n=this._controllers[r])==null?void 0:n.xrController.inputSource.handedness)===t})||Object.keys(this._controllers)[0],s=this._controllers[i];this._movementDirection.copyFrom((s==null?void 0:s.xrController.pointer.rotationQuaternion)||Re.Identity())}(this._movementState.moveX||this._movementState.moveY)&&this._featureContext.movementEnabled&&(me.FromQuaternionToRef(this._movementDirection,this._tmpRotationMatrix),this._tmpTranslationDirection.set(this._movementState.moveX,0,this._movementState.moveY*(this._xrSessionManager.scene.useRightHandedSystem?1:-1)),P.TransformCoordinatesToRef(this._tmpTranslationDirection,this._tmpRotationMatrix,this._tmpMovementTranslation),this._tmpMovementTranslation.scaleInPlace(this._xrInput.xrCamera._computeLocalCameraSpeed()*this._featureContext.movementSpeed),this._xrInput.xrCamera.cameraDirection.addInPlace(this._tmpMovementTranslation))}}_detachController(e){const t=this._controllers[e];if(t){for(const i of t.registeredComponents)i.onAxisChangedObserver&&i.component.onAxisValueChangedObservable.remove(i.onAxisChangedObserver),i.onButtonChangedObserver&&i.component.onButtonStateChangedObservable.remove(i.onButtonChangedObserver);delete this._controllers[e]}}}oM.Name=ur.MOVEMENT,oM.REGISTRATIONS={default:[{allowedComponentTypes:[I0.THUMBSTICK_TYPE,I0.TOUCHPAD_TYPE],forceHandedness:"left",axisChangedHandler:(a,e,t)=>{e.rotateX=Math.abs(a.x)>t.rotationThreshold?a.x:0,e.rotateY=Math.abs(a.y)>t.rotationThreshold?a.y:0}},{allowedComponentTypes:[I0.THUMBSTICK_TYPE,I0.TOUCHPAD_TYPE],forceHandedness:"right",axisChangedHandler:(a,e,t)=>{e.moveX=Math.abs(a.x)>t.movementThreshold?a.x:0,e.moveY=Math.abs(a.y)>t.movementThreshold?a.y:0}}]},oM.Version=1,$a.AddWebXRFeature(oM.Name,(a,e)=>()=>new oM(a,e),oM.Version,!0);class QO extends Bc{constructor(e,t){super(e),this.options=t,this._canvasContext=null,this._reflectionCubeMap=null,this._xrLightEstimate=null,this._xrLightProbe=null,this._xrWebGLBinding=null,this._lightDirection=P.Up().negateInPlace(),this._lightColor=Pe.White(),this._intensity=1,this._sphericalHarmonics=new FT,this._cubeMapPollTime=Date.now(),this._lightEstimationPollTime=Date.now(),this._reflectionCubeMapTextureSize=16,this.directionalLight=null,this.onReflectionCubeMapUpdatedObservable=new xe,this._updateReflectionCubeMap=()=>{var s;if(!this._xrLightProbe)return;if(this.options.cubeMapPollInterval){const r=Date.now();if(r-this._cubeMapPollTime<this.options.cubeMapPollInterval)return;this._cubeMapPollTime=r}const i=this._getXRGLBinding().getReflectionCubeMap(this._xrLightProbe);if(i&&this._reflectionCubeMap){if(this._reflectionCubeMap._texture)(s=this._reflectionCubeMap._texture._hardwareTexture)==null||s.set(i),this._reflectionCubeMap._texture.getEngine().resetTextureCache();else{const r=new gr(this._xrSessionManager.scene.getEngine(),0);r.isCube=!0,r.invertY=!1,r._useSRGBBuffer=this.options.reflectionFormat==="srgba8",r.format=5,r.generateMipMaps=!0,r.type=this.options.reflectionFormat!=="srgba8"?2:0,r.samplingMode=3,r.width=this._reflectionCubeMapTextureSize,r.height=this._reflectionCubeMapTextureSize,r._cachedWrapU=1,r._cachedWrapV=1,r._hardwareTexture=new J9(i,this._getCanvasContext()),this._reflectionCubeMap._texture=r}this._reflectionCubeMap._texture.isReady=!0,this.options.disablePreFiltering?(this._xrSessionManager.scene.markAllMaterialsAsDirty(1),this.onReflectionCubeMapUpdatedObservable.notifyObservers(this._reflectionCubeMap)):(this._xrLightProbe.removeEventListener("reflectionchange",this._updateReflectionCubeMap),this._hdrFilter.prefilter(this._reflectionCubeMap).then(()=>{this._xrSessionManager.scene.markAllMaterialsAsDirty(1),this.onReflectionCubeMapUpdatedObservable.notifyObservers(this._reflectionCubeMap),this._xrLightProbe.addEventListener("reflectionchange",this._updateReflectionCubeMap)}))}},this.xrNativeFeatureName="light-estimation",this.options.createDirectionalLightSource&&(this.directionalLight=new W1("light estimation directional",this._lightDirection,this._xrSessionManager.scene),this.directionalLight.position=new P(0,8,0),this.directionalLight.intensity=0,this.directionalLight.falloffType=qr.FALLOFF_GLTF),this._hdrFilter=new wie(this._xrSessionManager.scene.getEngine()),Le.Warn("light-estimation is an experimental and unstable feature.")}get reflectionCubeMapTexture(){return this._reflectionCubeMap}get xrLightingEstimate(){return this._xrLightEstimate?{lightColor:this._lightColor,lightDirection:this._lightDirection,lightIntensity:this._intensity,sphericalHarmonics:this._sphericalHarmonics}:this._xrLightEstimate}_getCanvasContext(){return this._canvasContext===null&&(this._canvasContext=this._xrSessionManager.scene.getEngine()._gl),this._canvasContext}_getXRGLBinding(){if(this._xrWebGLBinding===null){const e=this._getCanvasContext();this._xrWebGLBinding=new XRWebGLBinding(this._xrSessionManager.session,e)}return this._xrWebGLBinding}attach(){if(!super.attach())return!1;const e=this.options.reflectionFormat??(this._xrSessionManager.session.preferredReflectionFormat||"srgba8");return this.options.reflectionFormat=e,this._xrSessionManager.session.requestLightProbe({reflectionFormat:e}).then(t=>{this._xrLightProbe=t,this.options.disableCubeMapReflection||(this._reflectionCubeMap||(this._reflectionCubeMap=new vr(this._xrSessionManager.scene),this._reflectionCubeMap._isCube=!0,this._reflectionCubeMap.coordinatesMode=3,this.options.setSceneEnvironmentTexture&&(this._xrSessionManager.scene.environmentTexture=this._reflectionCubeMap)),this._xrLightProbe.addEventListener("reflectionchange",this._updateReflectionCubeMap))}),!0}detach(){const e=super.detach();return this._xrLightProbe!==null&&!this.options.disableCubeMapReflection&&(this._xrLightProbe.removeEventListener("reflectionchange",this._updateReflectionCubeMap),this._xrLightProbe=null),this._canvasContext=null,this._xrLightEstimate=null,this._xrWebGLBinding=null,e}dispose(){super.dispose(),this.onReflectionCubeMapUpdatedObservable.clear(),this.directionalLight&&(this.directionalLight.dispose(),this.directionalLight=null),this._reflectionCubeMap!==null&&(this._reflectionCubeMap._texture&&this._reflectionCubeMap._texture.dispose(),this._reflectionCubeMap.dispose(),this._reflectionCubeMap=null)}_onXRFrame(e){var t;if(this._xrLightProbe!==null){if(this.options.lightEstimationPollInterval){const i=Date.now();if(i-this._lightEstimationPollTime<this.options.lightEstimationPollInterval)return;this._lightEstimationPollTime=i}if(this._xrLightEstimate=e.getLightEstimate(this._xrLightProbe),this._xrLightEstimate){this._intensity=Math.max(1,this._xrLightEstimate.primaryLightIntensity.x,this._xrLightEstimate.primaryLightIntensity.y,this._xrLightEstimate.primaryLightIntensity.z);const i=this._xrSessionManager.scene.useRightHandedSystem?1:-1;this.options.disableVectorReuse&&(this._lightDirection=new P,this._lightColor=new Pe,this.directionalLight&&(this.directionalLight.direction=this._lightDirection,this.directionalLight.diffuse=this._lightColor)),this._lightDirection.copyFromFloats(this._xrLightEstimate.primaryLightDirection.x,this._xrLightEstimate.primaryLightDirection.y,this._xrLightEstimate.primaryLightDirection.z*i),this._lightColor.copyFromFloats(this._xrLightEstimate.primaryLightIntensity.x/this._intensity,this._xrLightEstimate.primaryLightIntensity.y/this._intensity,this._xrLightEstimate.primaryLightIntensity.z/this._intensity),this._sphericalHarmonics.updateFromFloatsArray(this._xrLightEstimate.sphericalHarmonicsCoefficients),this._reflectionCubeMap&&!this.options.disableSphericalPolynomial&&(this._reflectionCubeMap.sphericalPolynomial=this._reflectionCubeMap.sphericalPolynomial||new Xv,(t=this._reflectionCubeMap.sphericalPolynomial)==null||t.updateFromHarmonics(this._sphericalHarmonics)),this._lightDirection.negateInPlace(),this.directionalLight&&(this.directionalLight.direction.copyFrom(this._lightDirection),this.directionalLight.intensity=Math.min(this._intensity,1),this.directionalLight.diffuse.copyFrom(this._lightColor))}}}}QO.Name=ur.LIGHT_ESTIMATION,QO.Version=1,$a.AddWebXRFeature(QO.Name,(a,e)=>()=>new QO(a,e),QO.Version,!1);class JO extends Bc{constructor(e){super(e),this.onEyeTrackingStartedObservable=new xe,this.onEyeTrackingEndedObservable=new xe,this.onEyeTrackingFrameUpdateObservable=new xe,this._eyeTrackingStartListener=t=>{this._latestEyeSpace=t.gazeSpace,this._gazeRay=new Is(P.Zero(),P.Forward()),this.onEyeTrackingStartedObservable.notifyObservers(this._gazeRay)},this._eyeTrackingEndListener=()=>{this._latestEyeSpace=null,this._gazeRay=null,this.onEyeTrackingEndedObservable.notifyObservers()},this.xrNativeFeatureName="eye-tracking",this._xrSessionManager.session?this._init():this._xrSessionManager.onXRSessionInit.addOnce(()=>{this._init()})}dispose(){super.dispose(),this._xrSessionManager.session.removeEventListener("eyetrackingstart",this._eyeTrackingStartListener),this._xrSessionManager.session.removeEventListener("eyetrackingend",this._eyeTrackingEndListener),this.onEyeTrackingStartedObservable.clear(),this.onEyeTrackingEndedObservable.clear(),this.onEyeTrackingFrameUpdateObservable.clear()}get isEyeGazeValid(){return!!this._gazeRay}getEyeGaze(){return this._gazeRay}_onXRFrame(e){if(!(!this.attached||!e)&&this._latestEyeSpace&&this._gazeRay){const t=e.getPose(this._latestEyeSpace,this._xrSessionManager.referenceSpace);if(t){this._gazeRay.origin.set(t.transform.position.x,t.transform.position.y,t.transform.position.z).scaleInPlace(this._xrSessionManager.worldScalingFactor);const i=t.transform.orientation;ae.Quaternion[0].set(i.x,i.y,i.z,i.w),this._xrSessionManager.scene.useRightHandedSystem?P.RightHandedForwardReadOnly.rotateByQuaternionToRef(ae.Quaternion[0],this._gazeRay.direction):(this._gazeRay.origin.z*=-1,ae.Quaternion[0].z*=-1,ae.Quaternion[0].w*=-1,P.LeftHandedForwardReadOnly.rotateByQuaternionToRef(ae.Quaternion[0],this._gazeRay.direction)),this.onEyeTrackingFrameUpdateObservable.notifyObservers(this._gazeRay)}}}_init(){this._xrSessionManager.isNative&&(this._xrSessionManager.session.addEventListener("eyetrackingstart",this._eyeTrackingStartListener),this._xrSessionManager.session.addEventListener("eyetrackingend",this._eyeTrackingEndListener))}}JO.Name=ur.EYE_TRACKING,JO.Version=1,$a.AddWebXRFeature(JO.Name,a=>()=>new JO(a),JO.Version,!1);class gqe{constructor(e,t){this._samples=[],this._idx=0;for(let i=0;i<e;++i)this._samples.push(t?t():Ue.Zero())}get length(){return this._samples.length}push(e,t){this._idx=(this._idx+this._samples.length-1)%this._samples.length,this.at(0).copyFromFloats(e,t)}at(e){if(e>=this._samples.length)throw new Error("Index out of bounds");return this._samples[(this._idx+e)%this._samples.length]}}class _qe{constructor(){this._samples=new gqe(20),this._entropy=0,this.onFirstStepDetected=new xe}update(e,t,i,s){this._samples.push(e,t);const r=this._samples.at(0);if(this._entropy*=this._entropyDecayFactor,this._entropy+=Ue.Distance(r,this._samples.at(1)),this._entropy>this._entropyThreshold)return;let n;for(n=this._samePointCheckStartIdx;n<this._samples.length&&!(Ue.DistanceSquared(r,this._samples.at(n))<this._samePointSquaredDistanceThreshold);++n);if(n===this._samples.length)return;let o=-1,l=0;for(let E,b=1;b<n;++b)E=Ue.DistanceSquared(r,this._samples.at(b)),E>o&&(l=b,o=E);if(o<this._apexSquaredDistanceThreshold)return;const c=this._samples.at(l),u=c.subtract(r);u.normalize();const f=ae.Vector2[0];let p,m,_=0;for(let E=1;E<n;++E)m=this._samples.at(E),m.subtractToRef(r,f),p=Ue.Dot(u,f),_+=f.lengthSquared()-p*p;if(_>n*this._squaredProjectionDistanceThreshold)return;const d=ae.Vector3[0];d.set(i,s,0);const h=ae.Vector3[1];h.set(u.x,u.y,0);const x=P.Cross(d,h).z>0,A=r.clone(),S=r.clone();c.subtractToRef(r,u),x?(u.scaleAndAddToRef(this._axisToApexShrinkFactor,A),u.scaleAndAddToRef(this._axisToApexExtendFactor,S)):(u.scaleAndAddToRef(this._axisToApexExtendFactor,A),u.scaleAndAddToRef(this._axisToApexShrinkFactor,S)),this.onFirstStepDetected.notifyObservers({leftApex:A,rightApex:S,currentPosition:r,currentStepDirection:x?"right":"left"})}reset(){for(let e=0;e<this._samples.length;++e)this._samples.at(e).copyFromFloats(0,0)}get _samePointCheckStartIdx(){return Math.floor(this._samples.length/3)}get _samePointSquaredDistanceThreshold(){return .03*.03}get _apexSquaredDistanceThreshold(){return .09*.09}get _squaredProjectionDistanceThreshold(){return .03*.03}get _axisToApexShrinkFactor(){return .8}get _axisToApexExtendFactor(){return-1.6}get _entropyDecayFactor(){return .93}get _entropyThreshold(){return .4}}class vqe{constructor(e,t,i,s){this._leftApex=new Ue,this._rightApex=new Ue,this._currentPosition=new Ue,this._axis=new Ue,this._axisLength=-1,this._forward=new Ue,this._steppingLeft=!1,this._t=-1,this._maxT=-1,this._maxTPosition=new Ue,this._vitality=0,this.onMovement=new xe,this.onFootfall=new xe,this._reset(e,t,i,s==="left")}_reset(e,t,i,s){this._leftApex.copyFrom(e),this._rightApex.copyFrom(t),this._steppingLeft=s,this._steppingLeft?(this._leftApex.subtractToRef(this._rightApex,this._axis),this._forward.copyFromFloats(-this._axis.y,this._axis.x)):(this._rightApex.subtractToRef(this._leftApex,this._axis),this._forward.copyFromFloats(this._axis.y,-this._axis.x)),this._axisLength=this._axis.length(),this._forward.scaleInPlace(1/this._axisLength),this._updateTAndVitality(i.x,i.y),this._maxT=this._t,this._maxTPosition.copyFrom(i),this._vitality=1}_updateTAndVitality(e,t){this._currentPosition.copyFromFloats(e,t),this._steppingLeft?this._currentPosition.subtractInPlace(this._rightApex):this._currentPosition.subtractInPlace(this._leftApex);const i=this._t,s=Ue.Dot(this._currentPosition,this._axis);this._t=s/(this._axisLength*this._axisLength);const r=this._currentPosition.lengthSquared()-s/this._axisLength*(s/this._axisLength);this._vitality*=.92-100*Math.max(r-.0016,0)+Math.max(this._t-i,0)}update(e,t){if(this._vitality<this._vitalityThreshold)return!1;const i=this._t;return this._updateTAndVitality(e,t),this._t>this._maxT&&(this._maxT=this._t,this._maxTPosition.copyFromFloats(e,t)),!(this._vitality<this._vitalityThreshold||(this._t>i&&(this.onMovement.notifyObservers({deltaT:this._t-i}),i<.5&&this._t>=.5&&this.onFootfall.notifyObservers({foot:this._steppingLeft?"left":"right"})),this._t<.95*this._maxT&&(this._currentPosition.copyFromFloats(e,t),this._steppingLeft?this._leftApex.copyFrom(this._maxTPosition):this._rightApex.copyFrom(this._maxTPosition),this._reset(this._leftApex,this._rightApex,this._currentPosition,!this._steppingLeft)),this._axisLength<.03))}get _vitalityThreshold(){return .1}get forward(){return this._forward}}class Cz{static get _MillisecondsPerUpdate(){return 1e3/15}constructor(e){this._detector=new _qe,this._walker=null,this._movement=new Ue,this._millisecondsSinceLastUpdate=Cz._MillisecondsPerUpdate,this.movementThisFrame=P.Zero(),this._engine=e,this._detector.onFirstStepDetected.add(t=>{this._walker||(this._walker=new vqe(t.leftApex,t.rightApex,t.currentPosition,t.currentStepDirection),this._walker.onFootfall.add(()=>{de.Log("Footfall!")}),this._walker.onMovement.add(i=>{this._walker.forward.scaleAndAddToRef(.024*i.deltaT,this._movement)}))})}update(e,t){t.y=0,t.normalize(),this._millisecondsSinceLastUpdate+=this._engine.getDeltaTime(),this._millisecondsSinceLastUpdate>=Cz._MillisecondsPerUpdate&&(this._millisecondsSinceLastUpdate-=Cz._MillisecondsPerUpdate,this._detector.update(e.x,e.z,t.x,t.z),this._walker&&(this._walker.update(e.x,e.z)||(this._walker=null)),this._movement.scaleInPlace(.85)),this.movementThisFrame.set(this._movement.x,0,this._movement.y)}}class FY extends Bc{static get Name(){return ur.WALKING_LOCOMOTION}static get Version(){return 1}get locomotionTarget(){return this._locomotionTarget}set locomotionTarget(e){this._locomotionTarget=e,this._isLocomotionTargetWebXRCamera=this._locomotionTarget.getClassName()==="WebXRCamera"}constructor(e,t){super(e),this._up=new P,this._forward=new P,this._position=new P,this._movement=new P,this._sessionManager=e,this.locomotionTarget=t.locomotionTarget,this._isLocomotionTargetWebXRCamera&&de.Warn("Using walking locomotion directly on a WebXRCamera may have unintended interactions with other XR techniques. Using an XR space parent is highly recommended")}isCompatible(){return this._sessionManager.sessionMode===void 0||this._sessionManager.sessionMode==="immersive-vr"}attach(){return!this.isCompatible||!super.attach()?!1:(this._walker=new Cz(this._sessionManager.scene.getEngine()),!0)}detach(){return super.detach()?(this._walker=null,!0):!1}_onXRFrame(e){const t=e.getViewerPose(this._sessionManager.baseReferenceSpace);if(!t)return;const i=this.locomotionTarget.getScene().useRightHandedSystem?1:-1,s=t.transform.matrix;this._up.copyFromFloats(s[4],s[5],i*s[6]),this._forward.copyFromFloats(s[8],s[9],i*s[10]),this._position.copyFromFloats(s[12],s[13],i*s[14]),this._forward.scaleAndAddToRef(.05,this._position),this._up.scaleAndAddToRef(-.05,this._position),this._walker.update(this._position,this._forward),this._movement.copyFrom(this._walker.movementThisFrame),this._isLocomotionTargetWebXRCamera||P.TransformNormalToRef(this._movement,this.locomotionTarget.getWorldMatrix(),this._movement),this.locomotionTarget.position.addInPlace(this._movement)}}$a.AddWebXRFeature(FY.Name,(a,e)=>()=>new FY(a,e),FY.Version,!1);class N9e extends Jq{constructor(e,t,i,s,r,n,o=null){super(e,t,i,s,n),this.getWidth=e,this.getHeight=t,this.layer=i,this.layerType=s,this.isMultiview=r,this.createRTTProvider=n,this._originalInternalTexture=o}}class w9e extends aH{constructor(e,t,i){super(e.scene,i),this._xrSessionManager=e,this._xrWebGLBinding=t,this.layerWrapper=i,this._lastSubImages=new Map,this.onRenderTargetTextureCreatedObservable=new xe,this._compositionLayer=i.layer}_getRenderTargetForSubImage(e,t="none"){const i=this._lastSubImages.get(t),s=t=="right"?1:0,r=e.colorTextureWidth??e.textureWidth,n=e.colorTextureHeight??e.textureHeight;if(!this._renderTargetTextures[s]||(i==null?void 0:i.textureWidth)!==r||(i==null?void 0:i.textureHeight)!==n){let o;const l=e.depthStencilTextureWidth??r,c=e.depthStencilTextureHeight??n;(r===l||n===c)&&(o=e.depthStencilTexture),this._renderTargetTextures[s]=this._createRenderTargetTexture(r,n,null,e.colorTexture,o,this.layerWrapper.isMultiview),this._framebufferDimensions={framebufferWidth:r,framebufferHeight:n},this.onRenderTargetTextureCreatedObservable.notifyObservers({texture:this._renderTargetTextures[s],eye:t})}return this._lastSubImages.set(t,e),this._renderTargetTextures[s]}_getSubImageForEye(e){const t=this._xrSessionManager.currentFrame;return t?this._xrWebGLBinding.getSubImage(this._compositionLayer,t,e):null}getRenderTargetTextureForEye(e){const t=this._getSubImageForEye(e);return t?this._getRenderTargetForSubImage(t,e):null}getRenderTargetTextureForView(e){return this.getRenderTargetTextureForEye(e==null?void 0:e.eye)}_setViewportForSubImage(e,t){const i=t.colorTextureWidth??t.textureWidth,s=t.colorTextureHeight??t.textureHeight,r=t.viewport;e.x=r.x/i,e.y=r.y/s,e.width=r.width/i,e.height=r.height/s}trySetViewportForView(e,t){const i=this._lastSubImages.get(t.eye)||this._getSubImageForEye(t.eye);return i?(this._setViewportForSubImage(e,i),!0):!1}}class Aqe extends N9e{constructor(e,t,i){super(()=>e.textureWidth,()=>e.textureHeight,e,"XRProjectionLayer",t,s=>new Cqe(s,i,this)),this.layer=e}}class Cqe extends w9e{constructor(e,t,i){super(e,t,i),this.layerWrapper=i,this._projectionLayer=i.layer}_getSubImageForView(e){return this._xrWebGLBinding.getViewSubImage(this._projectionLayer,e)}getRenderTargetTextureForView(e){return this._getRenderTargetForSubImage(this._getSubImageForView(e),e.eye)}getRenderTargetTextureForEye(e){const t=this._lastSubImages.get(e);return t?this._getRenderTargetForSubImage(t,e):null}trySetViewportForView(e,t){const i=this._lastSubImages.get(t.eye)||this._getSubImageForView(t);return i?(this._setViewportForSubImage(e,i),!0):!1}}const B9e={textureType:"texture",colorFormat:6408,depthFormat:35056,scaleFactor:1,clearOnAccess:!1},xqe={};class $O extends Bc{constructor(e,t={}){super(e),this._options=t,this._existingLayers=[],this._isMultiviewEnabled=!1,this._projectionLayerInitialized=!1,this._compositionLayerTextureMapping=new WeakMap,this._layerToRTTProviderMapping=new WeakMap,this.xrNativeFeatureName="layers"}attach(){if(!super.attach())return!1;const e=this._xrSessionManager.scene.getEngine();this._glContext=e._gl,this._xrWebGLBinding=new XRWebGLBinding(this._xrSessionManager.session,this._glContext),this._existingLayers.length=0;const t={...B9e,...this._options.projectionLayerInit};return this._isMultiviewEnabled=this._options.preferMultiviewOnInit&&e.getCaps().multiview,this.createProjectionLayer(t),this._projectionLayerInitialized=!0,!0}detach(){return super.detach()?(this._existingLayers.forEach(e=>{e.dispose()}),this._existingLayers.length=0,this._projectionLayerInitialized=!1,!0):!1}createXRWebGLLayer(e=xqe){const t=new XRWebGLLayer(this._xrSessionManager.session,this._glContext,e);return new $q(t)}_validateLayerInit(e,t=this._isMultiviewEnabled){if(!this._xrSessionManager.inXRSession)throw new Error("Cannot create a layer outside of a WebXR session. Make sure the session has started before creating layers.");if(t&&e.textureType!=="texture-array")throw new Error("Projection layers can only be made multiview if they use texture arrays. Set the textureType parameter to 'texture-array'.");if(!t&&e.textureType==="texture-array")throw new Error("We currently only support multiview rendering when the textureType parameter is set to 'texture-array'.")}_extendXRLayerInit(e,t=this._isMultiviewEnabled){return t&&(e.textureType="texture-array"),e}createProjectionLayer(e=B9e,t=this._isMultiviewEnabled){this._extendXRLayerInit(e,t),this._validateLayerInit(e,t);const i=this._xrWebGLBinding.createProjectionLayer(e),s=new Aqe(i,t,this._xrWebGLBinding);return this.addXRSessionLayer(s),s}_createQuadLayer(e={params:{}},t){this._extendXRLayerInit(e.params,!1);const i=this._existingLayers[0].layer.textureWidth,s=this._existingLayers[0].layer.textureHeight,r={space:this._xrSessionManager.referenceSpace,viewPixelWidth:i,viewPixelHeight:s,clearOnAccess:!0,...e.params};this._validateLayerInit(r,!1);const n=this._xrWebGLBinding.createQuadLayer(r);n.width=this._isMultiviewEnabled?1:2,n.height=1;const o=new N9e(()=>n.width,()=>n.height,n,"XRQuadLayer",!1,c=>new w9e(c,this._xrWebGLBinding,o));t&&this._compositionLayerTextureMapping.set(n,t);const l=o.createRenderTargetTextureProvider(this._xrSessionManager);return this._layerToRTTProviderMapping.set(n,l),this.addXRSessionLayer(o),o}addFullscreenAdvancedDynamicTexture(e,t={distanceFromHeadset:1.5}){const i=this._createQuadLayer({params:{space:this._xrSessionManager.viewerReferenceSpace,textureType:"texture",layout:"mono"}},e),s=i.layer,n={x:0,y:0,z:-Math.max(.1,t.distanceFromHeadset)},o={x:0,y:0,z:0,w:1};s.transform=new XRRigidTransform(n,o);const l=this._layerToRTTProviderMapping.get(s);if(!l)throw new Error("Could not find the RTT provider for the layer");const c=this._xrSessionManager.scene.layers.find(u=>u.texture===e);if(!c)throw new Error("Could not find the babylon layer for the texture");return l.onRenderTargetTextureCreatedObservable.add(u=>{u.eye&&u.eye==="right"||(u.texture.clearColor=new St(0,0,0,0),c.renderTargetTextures.push(u.texture),c.renderOnlyInRenderTargetTextures=!0,this._xrSessionManager.scene.onBeforeRenderObservable.add(()=>{u.texture.render()}),c.renderTargetTextures.push(u.texture),c.renderOnlyInRenderTargetTextures=!0,this._xrSessionManager.onXRSessionEnded.addOnce(()=>{c.renderTargetTextures.splice(c.renderTargetTextures.indexOf(u.texture),1),c.renderOnlyInRenderTargetTextures=!1}))}),i}_addLensFlareSystem(e){const t=this._createQuadLayer({params:{space:this._xrSessionManager.viewerReferenceSpace,textureType:"texture",layout:"mono"}}),i=t.layer;i.width=2,i.height=1;const s={x:0,y:0,z:-10},r={x:0,y:0,z:0,w:1};i.transform=new XRRigidTransform(s,r);const n=this._layerToRTTProviderMapping.get(i);if(!n)throw new Error("Could not find the RTT provider for the layer");return n.onRenderTargetTextureCreatedObservable.add(o=>{o.texture.clearColor=new St(0,0,0,0),o.texture.customRenderFunction=()=>{e.render()}}),this._xrSessionManager.onXRSessionInit.add(()=>{this._xrSessionManager.scene.lensFlareSystems.splice(this._xrSessionManager.scene.lensFlareSystems.indexOf(e),1)}),this._xrSessionManager.onXRSessionEnded.add(()=>{this._xrSessionManager.scene.lensFlareSystems.push(e)}),t}addXRSessionLayer(e){this._existingLayers.push(e),this.setXRSessionLayers(this._existingLayers)}setXRSessionLayers(e=this._existingLayers){const t={...this._xrSessionManager.session.renderState};t.baseLayer=void 0,t.layers=e.map(i=>i.layer),this._xrSessionManager.updateRenderState(t),this._projectionLayerInitialized||this._xrSessionManager._setBaseLayerWrapper(e.length>0?e.at(0):null)}isCompatible(){return!this._xrSessionManager.isNative&&typeof XRWebGLBinding<"u"&&!!XRWebGLBinding.prototype.createProjectionLayer}dispose(){super.dispose()}_onXRFrame(e){const t=this._existingLayers;for(let i=0;i<t.length;++i){const s=t[i];if(s.layerType!=="XRProjectionLayer"){const r=this._layerToRTTProviderMapping.get(s.layer);if(!r)continue;if(r.layerWrapper.isMultiview){const n=e.getViewerPose(this._xrSessionManager.referenceSpace);if(n){const o=n.views;for(let l=0;l<o.length;++l){const c=o[l];r.getRenderTargetTextureForView(c)}}}else r.getRenderTargetTextureForView()}}}}$O.Name=ur.LAYERS,$O.Version=1,$a.AddWebXRFeature($O.Name,(a,e)=>()=>new $O(a,e),$O.Version,!1);class bqe extends Br{constructor(){super(...arguments),this.DEPTH_SENSING=!1,this.DEPTH_SENSING_TEXTURE_ARRAY=!1,this.DEPTH_SENSING_TEXTURE_AL=!1,this.DEPTH_SENSING_DISCARD=!0}}let eR=!1,lM=null,Oce=!1;const kY={width:512,height:512},A9={x:0,y:0,width:1,height:1};let Rce=1,z9e=0,F9e=!0;const Dce=me.Identity(),xz=[];class Sqe extends Uu{_markAllDefinesAsDirty(){this._enable(this._isEnabled),this.markAllDefinesAsDirty()}get isEnabled(){return this._isEnabled}set isEnabled(e){this._isEnabled!==e&&(this._isEnabled=e,this._markAllDefinesAsDirty())}isCompatible(e){switch(e){case 0:return!0;default:return!0}}constructor(e){super(e,"DepthSensing",222,new bqe),this._isEnabled=!1,this._varColorName=e instanceof Bs?"finalColor":"color",xz.push(this)}prepareDefines(e){e.DEPTH_SENSING=!!lM&&eR,e.DEPTH_SENSING_TEXTURE_ARRAY=(lM==null?void 0:lM.is2DArray)??!1,e.DEPTH_SENSING_TEXTURE_AL=Oce,e.DEPTH_SENSING_DISCARD=F9e}getUniforms(){return{ubo:[{name:"ds_invScreenSize",size:2,type:"vec2"},{name:"ds_rawValueToMeters",size:1,type:"float"},{name:"ds_viewIndex",size:1,type:"float"},{name:"ds_shaderViewport",size:4,type:"vec4"},{name:"ds_uvTransform",size:16,type:"mat4"}],fragment:`#ifdef DEPTH_SENSING
                uniform vec2 ds_invScreenSize;
                uniform float ds_rawValueToMeters;
                uniform float ds_viewIndex;
                uniform vec4 ds_shaderViewport;
                uniform mat4 ds_uvTransform;
                #endif
                `}}getSamplers(e){e.push("ds_depthSampler")}bindForSubMesh(e){eR&&lM&&(e.updateFloat2("ds_invScreenSize",1/kY.width,1/kY.height),e.updateFloat("ds_rawValueToMeters",Rce),e.updateFloat("ds_viewIndex",z9e),e.updateFloat4("ds_shaderViewport",A9.x,A9.y,A9.width,A9.height),e.setTexture("ds_depthSampler",lM),e.updateMatrix("ds_uvTransform",Dce))}getClassName(){return"DepthSensingMaterialPlugin"}getCustomCode(e){return e==="vertex"?{CUSTOM_VERTEX_MAIN_BEGIN:`
                #ifdef DEPTH_SENSING
                #ifdef MULTIVIEW
                    ds_viewIndexMultiview = float(gl_ViewID_OVR);
                #endif
                #endif
                `,CUSTOM_VERTEX_DEFINITIONS:`
                #ifdef DEPTH_SENSING
                #ifdef MULTIVIEW
                    varying float ds_viewIndexMultiview;
                #endif
                #endif
                `}:{CUSTOM_FRAGMENT_DEFINITIONS:`
                    #ifdef DEPTH_SENSING
                        #ifdef DEPTH_SENSING_TEXTURE_ARRAY
                            uniform highp sampler2DArray ds_depthSampler;
                        #else
                            uniform sampler2D ds_depthSampler;
                        #endif
                        #ifdef MULTIVIEW
                            varying float ds_viewIndexMultiview;
                        #endif
                    #endif
                  `,CUSTOM_FRAGMENT_MAIN_BEGIN:`
#ifdef DEPTH_SENSING
    #ifdef MULTIVIEW
        float ds_viewIndexSet = ds_viewIndexMultiview;
        vec2 ds_compensation = vec2(0.0, 0.0);
    #else
        float ds_viewIndexSet = ds_viewIndex;
        vec2 ds_compensation = vec2(ds_viewIndexSet, 0.0);
    #endif
    vec2 ds_baseUv = gl_FragCoord.xy * ds_invScreenSize;
    #ifdef DEPTH_SENSING_TEXTURE_ARRAY
        vec2 ds_uv = ds_baseUv - ds_compensation;
        vec3 ds_depthUv = vec3((ds_uvTransform * vec4(ds_uv, 0.0, 1.0)).xy, ds_viewIndexSet);
    #else
        vec2 ds_depthUv = (ds_uvTransform * vec4(ds_baseUv.x, 1.0 - ds_baseUv.y, 0.0, 1.0)).xy;
    #endif
    #ifdef DEPTH_SENSING_TEXTURE_AL
        // from alpha-luminance - taken from the explainer
        vec2 ds_alphaLuminance = texture(ds_depthSampler, ds_depthUv).ra;
        float ds_cameraDepth = dot(ds_alphaLuminance, vec2(255.0, 256.0 * 255.0));
    #else
        float ds_cameraDepth = texture(ds_depthSampler, ds_depthUv).r;
    #endif

    ds_cameraDepth = ds_cameraDepth * ds_rawValueToMeters;

    float ds_assetDepth = gl_FragCoord.z;
    #ifdef DEPTH_SENSING_DISCARD
    if(ds_cameraDepth < ds_assetDepth) {
        discard;
    }
    #endif
#endif  
                  `,CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR:`
#ifdef DEPTH_SENSING
    #ifndef DEPTH_SENSING_DISCARD
        const float ds_depthTolerancePerM = 0.005;
        float ds_occlusion = clamp(1.0 - 0.5 * (ds_cameraDepth - ds_assetDepth) / (ds_depthTolerancePerM * ds_assetDepth) +
            0.5, 0.0, 1.0);
        ${this._varColorName} *= (1.0 - ds_occlusion);
    #endif
#endif                  
                  `}}dispose(e){const t=xz.indexOf(this);t!==-1&&xz.splice(t,1),super.dispose(e)}}class tR extends Bc{get width(){return this._width}get height(){return this._height}get rawValueToMeters(){return this._rawValueToMeters}get normDepthBufferFromNormView(){return this._normDepthBufferFromNormView}get depthUsage(){switch(this._xrSessionManager.session.depthUsage){case"cpu-optimized":return"cpu";case"gpu-optimized":return"gpu"}}get depthDataFormat(){switch(this._xrSessionManager.session.depthDataFormat){case"luminance-alpha":return"ushort";case"float32":return"float";case"unsigned-short":return"ushort"}}get latestInternalTexture(){return this._cachedWebGLTexture?this._getInternalTextureFromDepthInfo():null}get latestDepthBuffer(){return this._cachedDepthBuffer?this.depthDataFormat==="float"?new Float32Array(this._cachedDepthBuffer):new Uint16Array(this._cachedDepthBuffer):null}get latestDepthImageTexture(){return this._cachedDepthImageTexture}constructor(e,t){super(e),this.options=t,this._width=null,this._height=null,this._rawValueToMeters=null,this._textureType=null,this._normDepthBufferFromNormView=null,this._cachedDepthBuffer=null,this._cachedWebGLTexture=null,this._cachedDepthImageTexture=null,this._onCameraObserver=null,this.onGetDepthInMetersAvailable=new xe,this.xrNativeFeatureName="depth-sensing",Le.Warn("depth-sensing is an experimental and unstable feature."),F9e=!t.useToleranceFactorForDepthSensing}attach(e){return!super.attach(e)||this._xrSessionManager.session.depthDataFormat==null||this._xrSessionManager.session.depthUsage==null?!1:(this._glBinding=new XRWebGLBinding(this._xrSessionManager.session,this._xrSessionManager.scene.getEngine()._gl),eR=!this.options.disableDepthSensingOnMaterials,eR&&(xz.forEach(i=>{i.isEnabled=!0}),this._onCameraObserver=this._xrSessionManager.scene.onBeforeCameraRenderObservable.add(i=>{if(eR&&i.outputRenderTarget){const s=i.rigCameras.length>0?i.rigCameras[0].viewport:i.viewport;kY.width=i.outputRenderTarget.getRenderWidth()/(i.rigParent&&i.rigParent.rigCameras.length||1),kY.height=i.outputRenderTarget.getRenderHeight(),A9.x=s.x,A9.y=s.y,A9.width=s.width,A9.height=s.height,i.rigParent&&(z9e=i.isLeftCamera?0:1)}})),!0)}detach(){return eR=!1,lM=null,this._cachedWebGLTexture=null,this._cachedDepthBuffer=null,xz.forEach(e=>{e.isEnabled=!1}),this._onCameraObserver&&this._xrSessionManager.scene.onBeforeCameraRenderObservable.remove(this._onCameraObserver),super.detach()}dispose(){var e;(e=this._cachedDepthImageTexture)==null||e.dispose(),this.onGetDepthInMetersAvailable.clear(),this._onCameraObserver&&this._xrSessionManager.scene.onBeforeCameraRenderObservable.remove(this._onCameraObserver)}_onXRFrame(e){const t=this._xrSessionManager.referenceSpace,i=e.getViewerPose(t);if(i!=null)for(const s of i.views)switch(this.depthUsage){case"cpu":this._updateDepthInformationAndTextureCPUDepthUsage(e,s,this.depthDataFormat);break;case"gpu":if(!this._glBinding)break;this._updateDepthInformationAndTextureWebGLDepthUsage(this._glBinding,s,this.depthDataFormat);break;default:Le.Error("Unknown depth usage"),this.detach();break}}_updateDepthInformationAndTextureCPUDepthUsage(e,t,i){const s=e.getDepthInformation(t);if(s===null)return;const{data:r,width:n,height:o,rawValueToMeters:l,getDepthInMeters:c,normDepthBufferFromNormView:u}=s;this._width=n,this._height=o,this._rawValueToMeters=l,this._cachedDepthBuffer=r,Rce=l,Oce=i==="luminance-alpha",Dce.fromArray(u.matrix),this.onGetDepthInMetersAvailable.notifyObservers(c.bind(s)),this._cachedDepthImageTexture||(this._cachedDepthImageTexture=Ur.CreateRTexture(null,n,o,this._xrSessionManager.scene,!1,!1,be.NEAREST_SAMPLINGMODE,1),lM=this._cachedDepthImageTexture);let f=null;switch(i){case"ushort":case"luminance-alpha":f=Float32Array.from(new Uint16Array(r));break;case"float":f=new Float32Array(r);break}f&&(this.options.prepareTextureForVisualization&&(f=f.map(p=>p*l)),this._cachedDepthImageTexture.update(f))}_updateDepthInformationAndTextureWebGLDepthUsage(e,t,i){const s=e.getDepthInformation(t);if(s===null)return;const{texture:r,width:n,height:o,textureType:l,rawValueToMeters:c,normDepthBufferFromNormView:u}=s;if(Rce=c,Oce=i==="luminance-alpha",Dce.fromArray(u.matrix),this._cachedWebGLTexture)return;this._width=n,this._height=o,this._cachedWebGLTexture=r,this._textureType=l;const f=this._xrSessionManager.scene,p=this._getInternalTextureFromDepthInfo();this._cachedDepthImageTexture||(this._cachedDepthImageTexture=Ur.CreateRTexture(null,n,o,f,!1,!0,be.NEAREST_SAMPLINGMODE,i==="float"?1:0)),this._cachedDepthImageTexture._texture=p,lM=this._cachedDepthImageTexture,this._xrSessionManager.scene.markAllMaterialsAsDirty(1)}getXRSessionInitExtension(){const e=this.options.usagePreference!=null&&this.options.usagePreference.length!==0,t=this.options.dataFormatPreference!=null&&this.options.dataFormatPreference.length!==0;return new Promise(i=>{if(e&&t){const s=this.options.usagePreference.map(n=>{switch(n){case"cpu":return"cpu-optimized";case"gpu":return"gpu-optimized"}}),r=this.options.dataFormatPreference.map(n=>{switch(n){case"luminance-alpha":return"luminance-alpha";case"float":return"float32";case"ushort":return"unsigned-short"}});i({depthSensing:{usagePreference:s,dataFormatPreference:r}})}else i({})})}_getInternalTextureFromDepthInfo(){const e=this._xrSessionManager.scene.getEngine(),t=this.depthDataFormat,i=this._textureType;if(!this._width||!this._height||!this._cachedWebGLTexture)throw new Error("Depth information is not available");const s=e.wrapWebGLTexture(this._cachedWebGLTexture,!1,1,this._width||256,this._height||256);return s.isCube=!1,s.invertY=!1,s._useSRGBBuffer=!1,s.format=t==="luminance-alpha"?2:5,s.generateMipMaps=!1,s.type=t==="float"?1:t==="ushort"?5:0,s._cachedWrapU=1,s._cachedWrapV=1,s._hardwareTexture=new J9(this._cachedWebGLTexture,e._gl),s.is2DArray=i==="texture-array",s}}tR.Name=ur.DEPTH_SENSING,tR.Version=1,$a.AddWebXRFeature(tR.Name,(a,e)=>()=>new tR(a,e),tR.Version,!1),Hhe("WebXRDepthSensingMaterialPlugin",a=>new Sqe(a));const k9e="velocityPixelShader",yqe=`precision highp float;
#define CUSTOM_FRAGMENT_BEGIN
varying vec4 clipPos;varying vec4 previousClipPos;
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
highp vec4 motionVector=( clipPos/clipPos.w-previousClipPos/previousClipPos.w );gl_FragColor=motionVector;
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[k9e]||(H.ShadersStore[k9e]=yqe);const U9e="velocityVertexShader",Mqe=`#define CUSTOM_VERTEX_BEGIN
#define VELOCITY
attribute vec3 position;
#include<instancesDeclaration>
uniform mat4 viewProjection;uniform mat4 previousViewProjection;
#ifdef MULTIVIEW
uniform mat4 viewProjectionR;uniform mat4 previousViewProjectionR;
#endif
varying vec4 clipPos;varying vec4 previousClipPos;
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
vec3 positionUpdated=position;
#include<instancesVertex>
vec4 worldPos=finalWorld*vec4(positionUpdated,1.0);vec4 previousWorldPos=finalPreviousWorld*vec4(positionUpdated,1.0);
#ifdef MULTIVIEW
if (gl_ViewID_OVR==0u) {clipPos=viewProjection*worldPos;previousClipPos=previousViewProjection*previousWorldPos;gl_Position=clipPos;} else {clipPos=viewProjectionR*worldPos;previousClipPos=previousViewProjectionR*previousWorldPos;gl_Position=clipPos;}
#elif
clipPos=viewProjection*worldPos;previousClipPos=previousViewProjection*previousWorldPos;gl_Position=clipPos;
#endif
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[U9e]||(H.ShadersStore[U9e]=Mqe);class j9e extends Ir{constructor(e,t,i,s=512){super("spacewarp rtt",s,i,!1,!0,2,!1,void 0,!1,!1,!0,void 0,!0),this._originalPairing=[],this._previousWorldMatrices=[],this._previousTransforms=[me.Identity(),me.Identity()],this._renderTarget=this.getScene().getEngine().createMultiviewRenderTargetTexture(this.getRenderWidth(),this.getRenderHeight(),e,t),this._renderTarget._disposeOnlyFramebuffers=!0,this._texture=this._renderTarget.texture,this._texture.isMultiview=!0,this._texture.format=5,i&&(this._velocityMaterial=new Fo("velocity shader material",i,{vertex:"velocity",fragment:"velocity"},{uniforms:["world","previousWorld","viewProjection","viewProjectionR","previousViewProjection","previousViewProjectionR"]}),this._velocityMaterial._materialHelperNeedsPreviousMatrices=!0,this._velocityMaterial.onBindObservable.add(r=>{this._previousWorldMatrices[r.uniqueId]=this._previousWorldMatrices[r.uniqueId]||r.getWorldMatrix(),this._velocityMaterial.getEffect().setMatrix("previousWorld",this._previousWorldMatrices[r.uniqueId]),this._previousWorldMatrices[r.uniqueId]=r.getWorldMatrix(),this._velocityMaterial.getEffect().setMatrix("previousViewProjection",this._previousTransforms[0]),this._velocityMaterial.getEffect().setMatrix("previousViewProjectionR",this._previousTransforms[1]),this._previousTransforms[0].copyFrom(i.getTransformMatrix()),this._previousTransforms[1].copyFrom(i._transformMatrixR)}),this._velocityMaterial.freeze())}render(e=!1,t=!1){this._originalPairing.length=0;const i=this.getScene();i&&this._velocityMaterial&&i.getActiveMeshes().forEach(s=>{this._originalPairing.push([s,s.material]),s.material=this._velocityMaterial}),super.render(e,t),this._originalPairing.forEach(s=>{s[0].material=s[1]})}_bindFrameBuffer(){this._renderTarget&&this.getScene().getEngine().bindSpaceWarpFramebuffer(this._renderTarget)}getViewCount(){return 2}dispose(){super.dispose(),this._velocityMaterial.dispose(),this._previousTransforms.length=0,this._previousWorldMatrices.length=0,this._originalPairing.length=0}}class V9e{constructor(e,t,i){this._scene=e,this._xrSessionManager=t,this._xrWebGLBinding=i,this._lastSubImages=new Map,this._renderTargetTextures=new Map,this._engine=e.getEngine()}_getSubImageForView(e){const t=this._xrSessionManager._getBaseLayerWrapper();if(!t)throw new Error("For Space Warp, the base layer should be a WebXR Projection Layer.");if(t.layerType!=="XRProjectionLayer")throw new Error('For Space Warp, the base layer type should "XRProjectionLayer".');const i=t.layer;return this._xrWebGLBinding.getViewSubImage(i,e)}_setViewportForSubImage(e,t){e.x=0,e.y=0,e.width=t.motionVectorTextureWidth,e.height=t.motionVectorTextureHeight}_createRenderTargetTexture(e,t,i,s,r){if(!this._engine)throw new Error("Engine is disposed");const n={width:e,height:t},o=new j9e(s,r,this._scene,n),l=o.renderTarget;return i&&(l._framebuffer=i),l._colorTextureArray=s,l._depthStencilTextureArray=r,o.disableRescaling(),o.renderListPredicate=()=>!0,o}_getRenderTargetForSubImage(e,t){const i=this._lastSubImages.get(t);let s=this._renderTargetTextures.get(t.eye);const r=e.motionVectorTextureWidth,n=e.motionVectorTextureHeight;return(!s||(i==null?void 0:i.textureWidth)!==r||(i==null?void 0:i.textureHeight)!=n)&&(s=this._createRenderTargetTexture(r,n,null,e.motionVectorTexture,e.depthStencilTexture),this._renderTargetTextures.set(t.eye,s),this._framebufferDimensions={framebufferWidth:r,framebufferHeight:n}),this._lastSubImages.set(t,e),s}trySetViewportForView(e,t){const i=this._lastSubImages.get(t)||this._getSubImageForView(t);return i?(this._setViewportForSubImage(e,i),!0):!1}accessMotionVector(e){const t=this._getSubImageForView(e);t&&(t.motionVectorTexture,t.depthStencilTexture)}getRenderTargetTextureForEye(e){return null}getRenderTargetTextureForView(e){const t=this._getSubImageForView(e);return t?this._getRenderTargetForSubImage(t,e):null}dispose(){this._renderTargetTextures.forEach(e=>e.dispose()),this._renderTargetTextures.clear()}}class iR extends Bc{constructor(e){super(e),this._onAfterRenderObserver=null,this.dependsOn=[ur.LAYERS],this.xrNativeFeatureName="space-warp",this._xrSessionManager.scene.needsPreviousWorldMatrices=!0}attach(){if(!super.attach())return!1;const e=this._xrSessionManager.scene.getEngine();return this._glContext=e._gl,this._xrWebGLBinding=new XRWebGLBinding(this._xrSessionManager.session,this._glContext),this.spaceWarpRTTProvider=new V9e(this._xrSessionManager.scene,this._xrSessionManager,this._xrWebGLBinding),this._onAfterRenderObserver=this._xrSessionManager.scene.onAfterRenderObservable.add(()=>this._onAfterRender()),!0}detach(){return this._xrSessionManager.scene.onAfterRenderObservable.remove(this._onAfterRenderObserver),super.detach()}_onAfterRender(){this.attached&&this._renderTargetTexture&&this._renderTargetTexture.render(!1,!1)}isCompatible(){return this._xrSessionManager.scene.getEngine().getCaps().colorBufferHalfFloat||!1}dispose(){super.dispose()}_onXRFrame(e){const t=e.getViewerPose(this._xrSessionManager.referenceSpace);if(!t)return;const i=t.views[0];this._renderTargetTexture=this._renderTargetTexture||this.spaceWarpRTTProvider.getRenderTargetTextureForView(i),this.spaceWarpRTTProvider.accessMotionVector(i)}}iR.Name=ur.SPACE_WARP,iR.Version=1,$a.AddWebXRFeature(iR.Name,a=>()=>new iR(a),iR.Version,!1);class sR extends Bc{constructor(e,t={}){super(e),this.options=t,this._cachedInternalTextures=[],this.texturesData=[],this.viewIndex=[],this.cameraIntrinsics=[],this.onTexturesUpdatedObservable=new xe,this.xrNativeFeatureName="camera-access"}attach(e){return super.attach(e)?(this._glContext=this._xrSessionManager.scene.getEngine()._gl,this._glBinding=new XRWebGLBinding(this._xrSessionManager.session,this._glContext),!0):!1}detach(){return super.detach()?(this._glBinding=void 0,this.options.doNotDisposeOnDetach||(this._cachedInternalTextures.forEach(e=>e.dispose()),this.texturesData.forEach(e=>e.dispose()),this._cachedInternalTextures.length=0,this.texturesData.length=0,this.cameraIntrinsics.length=0),!0):!1}dispose(){super.dispose(),this.onTexturesUpdatedObservable.clear()}_updateCameraIntrinsics(e,t){const i={width:e.camera.width,height:e.camera.height,x:0,y:0},s=e.projectionMatrix,r=(1-s[8])*i.width/2+i.x,n=(1-s[9])*i.height/2+i.y,o=i.width/2*s[0],l=i.height/2*s[5],c=i.width/2*s[4];this.cameraIntrinsics[t]={u0:r,v0:n,ax:o,ay:l,gamma:c,width:i.width,height:i.height,viewportX:i.x,viewportY:i.y}}_updateInternalTextures(e,t=0){var s,r;if(!e.camera)return!1;this.viewIndex[t]=e.eye;const i=(s=this._glBinding)==null?void 0:s.getCameraImage(e.camera);if(this._cachedInternalTextures[t])(r=this._cachedInternalTextures[t]._hardwareTexture)==null||r.set(i);else{const n=new gr(this._xrSessionManager.scene.getEngine(),0,!0);n.invertY=!1,n.format=5,n.generateMipMaps=!0,n.type=0,n.samplingMode=3,n.width=e.camera.width,n.height=e.camera.height,n._cachedWrapU=1,n._cachedWrapV=1,n._hardwareTexture=new J9(i,this._glContext),this._cachedInternalTextures[t]=n;const o=new vr(this._xrSessionManager.scene);o.name=`WebXR Raw Camera Access (${t})`,o._texture=this._cachedInternalTextures[t],this.texturesData[t]=o,this._updateCameraIntrinsics(e,t)}return this._cachedInternalTextures[t].isReady=!0,!0}_onXRFrame(e){const t=this._xrSessionManager.referenceSpace,i=e.getViewerPose(t);if(!i||!i.views)return;let s=!0;i.views.forEach((r,n)=>{s=s&&this._updateInternalTextures(r,n)}),s&&this.onTexturesUpdatedObservable.notifyObservers(this.texturesData)}}sR.Name=ur.RAW_CAMERA_ACCESS,sR.Version=1,$a.AddWebXRFeature(sR.Name,(a,e)=>()=>new sR(a,e),sR.Version,!1);class G9e extends PL{constructor(e,t,i){super(e,Eqe[i],t,i,!0),this.profileId="generic-hand-select-grasp"}_getFilenameAndPath(){return{filename:"generic.babylon",path:"https://controllers.babylonjs.com/generic/"}}_getModelLoadingConstraints(){return!0}_processLoadedModel(e){}_setRootMesh(e){}_updateModel(){}}wc.RegisterController("generic-hand-select-grasp",(a,e)=>new G9e(e,a.gamepad,a.handedness));const Eqe={left:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr-standard-trigger",visualResponses:{}},grasp:{type:"trigger",gamepadIndices:{button:4},rootNodeName:"grasp",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"generic-hand-select-grasp-left",assetPath:"left.glb"},right:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr-standard-trigger",visualResponses:{}},grasp:{type:"trigger",gamepadIndices:{button:4},rootNodeName:"grasp",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"generic-hand-select-grasp-right",assetPath:"right.glb"},none:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr-standard-trigger",visualResponses:{}},grasp:{type:"trigger",gamepadIndices:{button:4},rootNodeName:"grasp",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"generic-hand-select-grasp-none",assetPath:"none.glb"}};class cM extends PL{constructor(e,t,i){super(e,Tqe["left-right"],t,i),this._mapping={defaultButton:{valueNodeName:"VALUE",unpressedNodeName:"UNPRESSED",pressedNodeName:"PRESSED"},defaultAxis:{valueNodeName:"VALUE",minNodeName:"MIN",maxNodeName:"MAX"},buttons:{"xr-standard-trigger":{rootNodeName:"SELECT",componentProperty:"button",states:["default","touched","pressed"]},"xr-standard-squeeze":{rootNodeName:"GRASP",componentProperty:"state",states:["pressed"]},"xr-standard-touchpad":{rootNodeName:"TOUCHPAD_PRESS",labelAnchorNodeName:"squeeze-label",touchPointNodeName:"TOUCH"},"xr-standard-thumbstick":{rootNodeName:"THUMBSTICK_PRESS",componentProperty:"state",states:["pressed"]}},axes:{"xr-standard-touchpad":{"x-axis":{rootNodeName:"TOUCHPAD_TOUCH_X"},"y-axis":{rootNodeName:"TOUCHPAD_TOUCH_Y"}},"xr-standard-thumbstick":{"x-axis":{rootNodeName:"THUMBSTICK_X"},"y-axis":{rootNodeName:"THUMBSTICK_Y"}}}},this.profileId="microsoft-mixed-reality"}_getFilenameAndPath(){let e="";this.handedness==="left"?e=cM.MODEL_LEFT_FILENAME:e=cM.MODEL_RIGHT_FILENAME;const i=cM.MODEL_BASE_URL+"default"+"/";return{filename:e,path:i}}_getModelLoadingConstraints(){const e=wr.IsPluginForExtensionAvailable(".glb");return e||de.Warn("glTF / glb loaded was not registered, using generic controller instead"),e}_processLoadedModel(e){this.rootMesh&&(this.getComponentIds().forEach((t,i)=>{if(!this.disableAnimation&&t&&this.rootMesh){const s=this._mapping.buttons[t],r=s.rootNodeName;if(!r){de.Log("Skipping unknown button at index: "+i+" with mapped name: "+t);return}const n=this._getChildByName(this.rootMesh,r);if(!n){de.Warn("Missing button mesh with name: "+r);return}if(s.valueMesh=this._getImmediateChildByName(n,this._mapping.defaultButton.valueNodeName),s.pressedMesh=this._getImmediateChildByName(n,this._mapping.defaultButton.pressedNodeName),s.unpressedMesh=this._getImmediateChildByName(n,this._mapping.defaultButton.unpressedNodeName),s.valueMesh&&s.pressedMesh&&s.unpressedMesh){const o=this.getComponent(t);o&&o.onButtonStateChangedObservable.add(l=>{this._lerpTransform(s,l.value)},void 0,!0)}else de.Warn("Missing button submesh under mesh with name: "+r)}}),this.getComponentIds().forEach(t=>{const i=this.getComponent(t);i.isAxes()&&["x-axis","y-axis"].forEach(s=>{if(!this.rootMesh)return;const r=this._mapping.axes[t][s],n=this._getChildByName(this.rootMesh,r.rootNodeName);if(!n){de.Warn("Missing axis mesh with name: "+r.rootNodeName);return}r.valueMesh=this._getImmediateChildByName(n,this._mapping.defaultAxis.valueNodeName),r.minMesh=this._getImmediateChildByName(n,this._mapping.defaultAxis.minNodeName),r.maxMesh=this._getImmediateChildByName(n,this._mapping.defaultAxis.maxNodeName),r.valueMesh&&r.minMesh&&r.maxMesh?i&&i.onAxisValueChangedObservable.add(o=>{const l=s==="x-axis"?o.x:o.y;this._lerpTransform(r,l,!0)},void 0,!0):de.Warn("Missing axis submesh under mesh with name: "+r.rootNodeName)})}))}_setRootMesh(e){this.rootMesh=new Ne(this.profileId+" "+this.handedness,this.scene),this.rootMesh.isPickable=!1;let t;for(let i=0;i<e.length;i++){const s=e[i];s.isPickable=!1,s.parent||(t=s)}t&&t.setParent(this.rootMesh),this.scene.useRightHandedSystem||(this.rootMesh.rotationQuaternion=Re.FromEulerAngles(0,Math.PI,0))}_updateModel(){}}cM.MODEL_BASE_URL="https://controllers.babylonjs.com/microsoft/",cM.MODEL_LEFT_FILENAME="left.glb",cM.MODEL_RIGHT_FILENAME="right.glb",wc.RegisterController("windows-mixed-reality",(a,e)=>new cM(e,a.gamepad,a.handedness));const Tqe={};class x_ extends PL{constructor(e,t,i,s=!1,r=!1){super(e,Lqe[i],t,i),this._forceLegacyControllers=r,this.profileId="oculus-touch"}_getFilenameAndPath(){let e="";this.handedness==="left"?e=x_.MODEL_LEFT_FILENAME:e=x_.MODEL_RIGHT_FILENAME;const t=this._isQuest()?x_.QUEST_MODEL_BASE_URL:x_.MODEL_BASE_URL;return{filename:e,path:t}}_getModelLoadingConstraints(){return!0}_processLoadedModel(e){const t=this._isQuest(),i=this.handedness==="right"?-1:1;this.getComponentIds().forEach(s=>{const r=s&&this.getComponent(s);r&&r.onButtonStateChangedObservable.add(n=>{if(!(!this.rootMesh||this.disableAnimation))switch(s){case"xr-standard-trigger":t||(this._modelRootNode.getChildren()[3].rotation.x=-n.value*.2,this._modelRootNode.getChildren()[3].position.y=-n.value*.005,this._modelRootNode.getChildren()[3].position.z=-n.value*.005);return;case"xr-standard-squeeze":t||(this._modelRootNode.getChildren()[4].position.x=i*n.value*.0035);return;case"xr-standard-thumbstick":return;case"a-button":case"x-button":t||(n.pressed?this._modelRootNode.getChildren()[1].position.y=-.001:this._modelRootNode.getChildren()[1].position.y=0);return;case"b-button":case"y-button":t||(n.pressed?this._modelRootNode.getChildren()[2].position.y=-.001:this._modelRootNode.getChildren()[2].position.y=0);return}},void 0,!0)})}_setRootMesh(e){this.rootMesh=new Ne(this.profileId+" "+this.handedness,this.scene),this.scene.useRightHandedSystem||(this.rootMesh.rotationQuaternion=Re.FromEulerAngles(0,Math.PI,0)),e.forEach(t=>{t.isPickable=!1}),this._isQuest()?this._modelRootNode=e[0]:(this._modelRootNode=e[1],this.rootMesh.position.y=.034,this.rootMesh.position.z=.052),this._modelRootNode.parent=this.rootMesh}_updateModel(){}_isQuest(){return!!navigator.userAgent.match(/Quest/gi)&&!this._forceLegacyControllers}}x_.MODEL_BASE_URL="https://controllers.babylonjs.com/oculus/",x_.MODEL_LEFT_FILENAME="left.babylon",x_.MODEL_RIGHT_FILENAME="right.babylon",x_.QUEST_MODEL_BASE_URL="https://controllers.babylonjs.com/oculusQuest/",wc.RegisterController("oculus-touch",(a,e)=>new x_(e,a.gamepad,a.handedness)),wc.RegisterController("oculus-touch-legacy",(a,e)=>new x_(e,a.gamepad,a.handedness,!0));const Lqe={left:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr_standard_trigger",visualResponses:{}},"xr-standard-squeeze":{type:"squeeze",gamepadIndices:{button:1},rootNodeName:"xr_standard_squeeze",visualResponses:{}},"xr-standard-thumbstick":{type:"thumbstick",gamepadIndices:{button:3,xAxis:2,yAxis:3},rootNodeName:"xr_standard_thumbstick",visualResponses:{}},"x-button":{type:"button",gamepadIndices:{button:4},rootNodeName:"x_button",visualResponses:{}},"y-button":{type:"button",gamepadIndices:{button:5},rootNodeName:"y_button",visualResponses:{}},thumbrest:{type:"button",gamepadIndices:{button:6},rootNodeName:"thumbrest",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"oculus-touch-v2-left",assetPath:"left.glb"},right:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr_standard_trigger",visualResponses:{}},"xr-standard-squeeze":{type:"squeeze",gamepadIndices:{button:1},rootNodeName:"xr_standard_squeeze",visualResponses:{}},"xr-standard-thumbstick":{type:"thumbstick",gamepadIndices:{button:3,xAxis:2,yAxis:3},rootNodeName:"xr_standard_thumbstick",visualResponses:{}},"a-button":{type:"button",gamepadIndices:{button:4},rootNodeName:"a_button",visualResponses:{}},"b-button":{type:"button",gamepadIndices:{button:5},rootNodeName:"b_button",visualResponses:{}},thumbrest:{type:"button",gamepadIndices:{button:6},rootNodeName:"thumbrest",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"oculus-touch-v2-right",assetPath:"right.glb"}};class QL extends PL{constructor(e,t,i){super(e,Iqe[i],t,i),this.profileId="htc-vive"}_getFilenameAndPath(){const e=QL.MODEL_FILENAME,t=QL.MODEL_BASE_URL;return{filename:e,path:t}}_getModelLoadingConstraints(){return!0}_processLoadedModel(e){this.getComponentIds().forEach(t=>{const i=t&&this.getComponent(t);i&&i.onButtonStateChangedObservable.add(s=>{if(!(!this.rootMesh||this.disableAnimation))switch(t){case"xr-standard-trigger":this._modelRootNode.getChildren()[6].rotation.x=-s.value*.15;return;case"xr-standard-touchpad":return;case"xr-standard-squeeze":return}},void 0,!0)})}_setRootMesh(e){this.rootMesh=new Ne(this.profileId+" "+this.handedness,this.scene),e.forEach(t=>{t.isPickable=!1}),this._modelRootNode=e[1],this._modelRootNode.parent=this.rootMesh,this.scene.useRightHandedSystem||(this.rootMesh.rotationQuaternion=Re.FromEulerAngles(0,Math.PI,0))}_updateModel(){}}QL.MODEL_BASE_URL="https://controllers.babylonjs.com/vive/",QL.MODEL_FILENAME="wand.babylon",wc.RegisterController("htc-vive",(a,e)=>new QL(e,a.gamepad,a.handedness));const Iqe={left:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr_standard_trigger",visualResponses:{}},"xr-standard-squeeze":{type:"squeeze",gamepadIndices:{button:1},rootNodeName:"xr_standard_squeeze",visualResponses:{}},"xr-standard-touchpad":{type:"touchpad",gamepadIndices:{button:2,xAxis:0,yAxis:1},rootNodeName:"xr_standard_touchpad",visualResponses:{}},menu:{type:"button",gamepadIndices:{button:4},rootNodeName:"menu",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"htc_vive_none",assetPath:"none.glb"},right:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr_standard_trigger",visualResponses:{}},"xr-standard-squeeze":{type:"squeeze",gamepadIndices:{button:1},rootNodeName:"xr_standard_squeeze",visualResponses:{}},"xr-standard-touchpad":{type:"touchpad",gamepadIndices:{button:2,xAxis:0,yAxis:1},rootNodeName:"xr_standard_touchpad",visualResponses:{}},menu:{type:"button",gamepadIndices:{button:4},rootNodeName:"menu",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"htc_vive_none",assetPath:"none.glb"},none:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr_standard_trigger",visualResponses:{}},"xr-standard-squeeze":{type:"squeeze",gamepadIndices:{button:1},rootNodeName:"xr_standard_squeeze",visualResponses:{}},"xr-standard-touchpad":{type:"touchpad",gamepadIndices:{button:2,xAxis:0,yAxis:1},rootNodeName:"xr_standard_touchpad",visualResponses:{}},menu:{type:"button",gamepadIndices:{button:4},rootNodeName:"menu",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"htc-vive-none",assetPath:"none.glb"}};class W9e{get session(){return this._nativeImpl.session}constructor(e){this._nativeImpl=e,this._xrTransform=new XRRigidTransform,this._xrPose={transform:this._xrTransform,emulatedPosition:!1},this._xrPoseVectorData=new Float32Array(8),this.fillPoses=this._nativeImpl.fillPoses.bind(this._nativeImpl),this.getViewerPose=this._nativeImpl.getViewerPose.bind(this._nativeImpl),this.getHitTestResults=this._nativeImpl.getHitTestResults.bind(this._nativeImpl),this.getHitTestResultsForTransientInput=()=>{throw new Error("XRFrame.getHitTestResultsForTransientInput not supported on native.")},this.createAnchor=this._nativeImpl.createAnchor.bind(this._nativeImpl),this.getJointPose=this._nativeImpl.getJointPose.bind(this._nativeImpl),this.fillJointRadii=this._nativeImpl.fillJointRadii.bind(this._nativeImpl),this.getLightEstimate=()=>{throw new Error("XRFrame.getLightEstimate not supported on native.")},this.getImageTrackingResults=()=>this._nativeImpl._imageTrackingResults??[]}getPose(e,t){if(!this._nativeImpl.getPoseData(e,t,this._xrPoseVectorData.buffer,this._xrTransform.matrix.buffer))return;const i=this._xrTransform.position;i.x=this._xrPoseVectorData[0],i.y=this._xrPoseVectorData[1],i.z=this._xrPoseVectorData[2],i.w=this._xrPoseVectorData[3];const s=this._xrTransform.orientation;return s.x=this._xrPoseVectorData[4],s.y=this._xrPoseVectorData[5],s.z=this._xrPoseVectorData[6],s.w=this._xrPoseVectorData[7],this._xrPose}get trackedAnchors(){return this._nativeImpl.trackedAnchors}get worldInformation(){return this._nativeImpl.worldInformation}get detectedPlanes(){return this._nativeImpl.detectedPlanes}get featurePointCloud(){return this._nativeImpl.featurePointCloud}getDepthInformation(e){throw new Error("This function is not available in Babylon Native")}}T0e("NativeXRFrame",W9e);const Pqe=Object.freeze(Object.defineProperty({__proto__:null,AbortError:sX,AbstractActionManager:v0,AbstractAssetContainer:aZ,AbstractAssetTask:_5,AbstractAudioAnalyzer:m2e,AbstractAudioBus:_q,AbstractAudioNode:ZW,AbstractEngine:dt,AbstractMesh:cr,AbstractNamedAudioNode:KW,AbstractSound:vq,AbstractSpatialAudio:E2e,AbstractSpatialAudioListener:I2e,AbstractStereoAudio:O2e,AcquireNativeObjectAsync:E0e,Action:Un,ActionEvent:Qa,ActionManager:Xr,AddAnimationExtensions:h2e,AddBlock:l5e,AddIndividualParser:h1e,AddParser:aL,AddRayExtensions:Z2e,get AddressMode(){return FQ},AdvancedTimer:J0e,get Aggregations(){return g5},AggregatorBlock:fY,AlignBlock:cCe,AlphaState:Xue,AmmoJSPlugin:u5,AnaglyphArcRotateCamera:nfe,AnaglyphFreeCamera:afe,AnaglyphGamepadCamera:ofe,AnaglyphPostProcess:Kq,AnaglyphUniversalCamera:lfe,Analyser:eNe,AndOrNotEvaluator:IT,Angle:Hv,Animatable:uq,get AnimatedInputBlockTypes(){return pb},Animation:He,AnimationAssetTask:xHe,AnimationEvent:mW,AnimationGroup:c3,AnimationGroupMask:$De,get AnimationGroupMaskMode(){return fq},get AnimationKeyInterpolation(){return dq},AnimationPropertiesOverride:qDe,AnimationRange:K9,AnisotropyBlock:$B,AppendSceneAsync:Mhe,ApplyLut:eve,ApplyPostProcess:LG,Arc2:mde,ArcFollowCamera:Wq,ArcRotateCamera:yr,ArcRotateCameraGamepadInput:pB,ArcRotateCameraInputsManager:YW,ArcRotateCameraKeyboardMoveInput:e_,ArcRotateCameraMouseWheelInput:kP,ArcRotateCameraPointersInput:lf,ArcRotateCameraVRDeviceOrientationInput:kq,ArcTan2Block:I5e,AreIndices32Bits:RX,AreaLight:I4e,AssetContainer:bP,get AssetTaskState(){return Rne},AssetsManager:bHe,AssetsProgressEvent:mxe,AsyncLock:UHe,AsyncLoop:v4,AttachToBoxBehavior:FNe,AudioBus:A2e,AudioEngine:u1e,AudioEngineV2:x2e,get AudioNodeType(){return pq},AudioSceneComponent:nf,get AutoLayoutMode(){return KQ},AutoReleaseWorkerPool:OP,AutoRotationBehavior:X1e,AxesViewer:zy,Axis:fo,AxisDragGizmo:E4,AxisScaleGizmo:I4,BRDFTextureTools:DRe,BabylonFileLoaderConfiguration:VB,BackEase:Ry,BackgroundMaterial:Qs,BakedVertexAnimationManager:_L,BallAndSocketConstraint:oYe,BaseCameraMouseWheelInput:Ow,BaseCameraPointersInput:HW,BaseError:py,BaseParticleSystem:sc,BaseSixDofDragBehavior:$v,BaseTexture:vr,BasisFileInfo:tGe,BasisTools:ZH,BasisToolsOptions:qy,BasisTranscodeConfiguration:iGe,BezierCurve:pde,BezierCurveEase:oq,BiPlanarBlock:Y5e,BinaryFileAssetTask:Axe,BindBonesParameters:Pc,BindFogParameters:Ic,BindLight:yw,BindLightProperties:Uhe,BindLights:Qd,BindLogDepth:ml,BindMorphTargetParameters:s3,BindSceneUniformBuffer:AP,BindTextureMatrix:Tn,BitArray:GAe,BlackAndWhitePostProcess:pz,get BlendFactor(){return eJ},get BlendOperation(){return tJ},BloomEffect:Lae,BloomMergePostProcess:PY,BlurPostProcess:tc,Bone:gn,BoneAxesViewer:Ewe,BoneIKController:u3,BoneLookController:Gu,BonesBlock:Gve,BooleanGeometryBlock:sz,get BooleanGeometryOperations(){return _3},BounceEase:Z1e,BouncingBehavior:HT,BoundingBlock:CCe,BoundingBox:ef,BoundingBoxGizmo:s3e,BoundingBoxRenderer:kye,BoundingInfo:nd,BoundingInfoHelper:Cwe,BoundingSphere:Vv,BoxBlock:oY,BoxBuilder:pDe,BoxParticleEmitter:eM,Buffer:fl,get BufferBindingType(){return GQ},get BufferMapState(){return OQ},get BufferUsage(){return nn},CSG:p5,CSG2:TO,Camera:_i,CameraGizmo:nO,CameraInputTypes:yh,CameraInputsManager:Iw,CannonJSPlugin:kH,get CanvasAlphaMode(){return hJ},get CanvasToneMappingMode(){return dJ},CapsuleBlock:Jre,CapsuleBuilder:FDe,CascadedShadowGenerator:ic,get CharacterSupportedState(){return Sae},ChromaticAberrationPostProcess:v5,CircleEase:Oy,CircleOfConfusionPostProcess:ZL,ClampBlock:$H,CleanGeometryBlock:lne,ClearCoatBlock:f9,ClipPlanesBlock:r5e,ClipboardEventTypes:M4,ClipboardInfo:XW,CloudBlock:pre,CloudPoint:Sbe,Collider:xB,Color3:Pe,Color3Gradient:zxe,Color4:St,ColorConverterBlock:K5e,ColorCorrectionPostProcess:mz,ColorCurves:ho,ColorGradient:Xne,ColorGradingTexture:NL,ColorMergerBlock:p5e,ColorSplitterBlock:Gte,get ColorWrite(){return $Q},CombineAction:n2e,get CompareFunction(){return jQ},CompatibilityOptions:GOe,get CompilationMessageType(){return XQ},CompleteGreasedLineColorTable:FAe,CompleteGreasedLineWidthTable:zAe,get CompressionCodes(){return _b},ComputeAlpha:K1e,ComputeBeta:q1e,get ComputeBindingType(){return SQ},ComputeEffect:CL,ComputeNormalsBlock:iCe,get ComputePassTimestampLocation(){return aJ},ComputeShader:t5,ComputeShaderBoundingHelper:g0e,ComputeShaderParticleSystem:mbe,Condition:jP,ConditionBlock:cY,get ConditionBlockTests(){return jc},ConditionalBlock:fre,get ConditionalBlockConditions(){return Fc},ConeDirectedParticleEmitter:hz,ConeParticleEmitter:DO,Constants:ze,ContainerAssetTask:gxe,get ConversionMode(){return Jee},ConvolutionPostProcess:A5,get Coordinate(){return iZ},CopyFloatData:dhe,CopyTextureToTexture:$ee,CopyTools:iRe,CreateAlignedTypedArray:COe,CreateAudioBusAsync:sNe,CreateAudioEngineAsync:LNe,CreateBox:pa,CreateBoxVertexData:RW,CreateCapsule:sB,CreateCapsuleVertexData:GW,CreateCylinder:e1,CreateCylinderVertexData:NW,CreateDashedLines:zW,CreateDashedLinesVertexData:eq,CreateDecal:VW,CreateDecoderAsync:nve,CreateDisc:wP,CreateDiscVertexData:IW,CreateEnvTextureAsync:Ede,CreateGeodesic:G1e,CreateGoldberg:H1e,CreateGoldbergVertexData:W1e,CreateGreasedLine:JWe,CreateGreasedLineMaterial:wAe,CreateGround:cL,CreateGroundFromHeightMap:OW,CreateGroundFromHeightMapVertexData:XK,CreateGroundVertexData:Qv,CreateHemisphere:wB,CreateHotSpotQueryForPickingInfo:jWe,CreateIcoSphere:FP,CreateIcoSphereVertexData:UW,CreateImageBitmapFromSource:zZ,CreateIrradianceImageDataArrayBufferViews:JZ,CreateLathe:FW,CreateLineSystem:uL,CreateLineSystemVertexData:$K,CreateLines:ta,CreateMainAudioBusAsync:rNe,CreatePickingRay:cB,CreatePickingRayInCameraSpace:Dq,CreatePickingRayInCameraSpaceToRef:hB,CreatePickingRayToRef:uB,CreatePlane:Eh,CreatePlaneVertexData:sq,CreatePolygon:$w,CreatePolygonVertexData:iq,CreatePolyhedron:hL,CreatePolyhedronVertexData:rq,CreateRadianceImageDataArrayBufferViews:FG,CreateResizedCopy:gde,CreateRibbon:Py,CreateRibbonVertexData:WK,CreateScreenshot:nz,CreateScreenshotAsync:Wne,CreateScreenshotUsingRenderTarget:az,CreateScreenshotUsingRenderTargetAsync:Hne,CreateScreenshotWithResizeAsync:wxe,CreateSegmentedBoxVertexData:U1e,CreateSoundAsync:nNe,CreateSoundBufferAsync:aNe,CreateSphere:hd,CreateSphereVertexData:DW,CreateStreamingSoundAsync:oNe,CreateText:Y1e,CreateTextShapePaths:aq,CreateTiledBox:qK,CreateTiledBoxVertexData:KK,CreateTiledGround:PW,CreateTiledGroundVertexData:YK,CreateTiledPlane:ZK,CreateTiledPlaneVertexData:zP,CreateTorus:Jv,CreateTorusKnot:BW,CreateTorusKnotVertexData:QK,CreateTorusVertexData:wW,CreateTube:kW,CrossBlock:u5e,CubeMapToSphericalPolynomialTools:eL,CubeTexture:ko,CubeTextureAssetTask:bxe,CubicEase:GT,get CullMode(){return JQ},CurrentScreenBlock:kte,Curve3:Yv,CurveBlock:_re,get CurveBlockTypes(){return Gs},CustomBlock:h5e,CustomOptimization:Mxe,CustomParticleEmitter:iM,CustomProceduralTexture:cve,CylinderBlock:Qre,CylinderBuilder:vDe,CylinderDirectedParticleEmitter:uz,CylinderParticleEmitter:RO,DDSTools:Cn,DataBuffer:Fv,DataReader:Lw,DataStorage:Kne,Database:t2,DebugBlock:mCe,DebugLayer:JT,get DebugLayerTab(){return lH},DecalBuilder:zDe,DecalMapConfiguration:yO,DecalMapDefines:eAe,Decode:rX,DecodeBase64ToBinary:cw,DecodeBase64ToString:WV,DecodeBase64UrlToBinary:aP,DecodeBase64UrlToString:yX,DecodeFloat32:V8e,DecodeRunLength:tve,DeepCopier:nu,DefaultCollisionCoordinator:Efe,DefaultKTX2DecoderOptions:M3e,DefaultLoadingScreen:Yy,DefaultRenderingPipeline:Yu,Deferred:Q9,DepthCullingState:vX,DepthOfFieldBlurPostProcess:OY,DepthOfFieldEffect:Pae,get DepthOfFieldEffectBlurLevel(){return Iae},DepthOfFieldMergePostProcess:Wbe,DepthPeelingRenderer:Tb,DepthPeelingSceneComponent:jye,DepthReducer:Lpe,DepthRenderer:ub,DepthRendererSceneComponent:Uye,DepthSortedParticle:Cbe,DerivativeBlock:Zve,DesaturateBlock:j5e,DetailMapConfiguration:eb,get DeviceInputEventType(){return UX},get DeviceLostReason(){return fJ},DeviceOrientationCamera:iH,DeviceSource:jX,DeviceSourceManager:_he,get DeviceType(){return is},DirectionalLight:W1,DirectionalLightFrustumViewer:Rwe,DiscBlock:$re,DiscBuilder:dDe,DiscardBlock:Yve,DisplayPassPostProcess:RY,DistanceBlock:y5e,DistanceConstraint:lYe,DistanceJoint:Lwe,DivideBlock:_5e,DoNothingAction:lq,DomManagement:bPe,DotBlock:d5e,DracoCompression:p_,DracoDecoder:au,DracoEncoder:O0,get DragOperation(){return Lte},DrawWrapper:ql,get DualSenseInput(){return zX},get DualShockButton(){return Xq},get DualShockDpad(){return Zq},get DualShockInput(){return BX},DualShockPad:ife,DumpTools:BG,DynamicFloat32Array:sM,DynamicTexture:uf,get EXROutputType(){return Ab},EasingFunction:Uo,get EasingFunctionType(){return _H},EdgesRenderer:vz,Effect:Ls,EffectFallbacks:Ra,EffectLayer:m3,EffectLayerSceneComponent:j3e,EffectRenderer:BT,EffectWrapper:Qr,ElasticEase:WT,ElbowBlock:H5e,EncodeArrayBufferToBase64:lw,EndsWith:Pue,Engine:Qt,EngineFactory:FBe,get EngineFormat(){return Nte},EngineInstrumentation:k3e,EngineStore:ei,EngineView:Dwe,EnumerateFloatValues:Uv,EnvironmentHelper:o9,EnvironmentTextureTools:HRe,Epsilon:Ii,EquiRectangularCubeTexture:gO,EquiRectangularCubeTextureAssetTask:yxe,ErrorCodes:Xx,get ErrorFilter(){return pJ},EventConstants:W9,EventState:iX,ExecuteCodeAction:a2e,ExitFullscreen:UZ,ExitPointerlock:jZ,ExponentialEase:Dy,ExrLoaderGlobalConfiguration:wL,ExternalTexture:_J,ExtractHighlightsPostProcess:IY,ExtrudePolygon:eB,ExtrudeShape:tB,ExtrudeShapeCustom:iB,FactorGradient:Zne,FadeInOutBehavior:eH,get FeatureName(){return PQ},get FileTools(){return oP},FileToolsOptions:No,FilesInput:Dne,FilesInputStore:j9,get FilterMode(){return kQ},FilterPostProcess:gz,FixFlippedFaces:whe,FlowGraph:b1e,FlowGraphAbsBlock:c$,FlowGraphAcosBlock:D$,FlowGraphAcoshBlock:U$,get FlowGraphAction(){return RK},FlowGraphAddBlock:e$,FlowGraphArrayIndexBlock:Fee,FlowGraphAsinBlock:R$,FlowGraphAsinhBlock:k$,get FlowGraphAssetType(){return PK},FlowGraphAtan2Block:w$,FlowGraphAtanBlock:N$,FlowGraphAtanhBlock:j$,FlowGraphBezierCurveEasingBlock:GJ,FlowGraphBitwiseAndBlock:q$,FlowGraphBitwiseLeftShiftBlock:$$,FlowGraphBitwiseNotBlock:K$,FlowGraphBitwiseOrBlock:Q$,FlowGraphBitwiseRightShiftBlock:eee,FlowGraphBitwiseXorBlock:J$,FlowGraphBlock:Vu,get FlowGraphBlockNames(){return Zee},FlowGraphBooleanToFloat:Oee,FlowGraphBooleanToInt:Ree,FlowGraphBranchBlock:EJ,FlowGraphCallCounterBlock:RJ,FlowGraphCancelDelayBlock:zJ,FlowGraphCeilBlock:f$,FlowGraphClampBlock:C$,FlowGraphCodeExecutionBlock:ape,FlowGraphCombineMatrix2DBlock:lee,FlowGraphCombineMatrix3DBlock:cee,FlowGraphCombineMatrixBlock:oee,FlowGraphCombineVector2Block:ree,FlowGraphCombineVector3Block:nee,FlowGraphCombineVector4Block:aee,FlowGraphConditionalDataBlock:WJ,FlowGraphConnection:wK,get FlowGraphConnectionType(){return NK},FlowGraphConsoleLogBlock:MJ,FlowGraphConstantBlock:qJ,FlowGraphContext:DK,FlowGraphContextBlock:zee,FlowGraphCoordinator:y4,FlowGraphCosBlock:spe,FlowGraphCoshBlock:z$,FlowGraphCrossBlock:Mee,FlowGraphCubeRootBlock:X$,FlowGraphDataConnection:SW,FlowGraphDataSwitchBlock:JJ,FlowGraphDebounceBlock:DJ,FlowGraphDegToRadBlock:P$,FlowGraphDeterminantBlock:_ee,FlowGraphDivideBlock:s$,FlowGraphDoNBlock:TJ,FlowGraphDotBlock:yee,FlowGraphEBlock:n$,FlowGraphEasingBlock:VJ,FlowGraphEqualityBlock:S$,FlowGraphEventBlock:VT,FlowGraphExecutionBlock:ab,FlowGraphExpBlock:V$,FlowGraphExtractMatrix2DBlock:pee,FlowGraphExtractMatrix3DBlock:mee,FlowGraphExtractMatrixBlock:fee,FlowGraphExtractVector2Block:uee,FlowGraphExtractVector3Block:hee,FlowGraphExtractVector4Block:dee,FlowGraphFlipFlopBlock:NJ,FlowGraphFloatToBoolean:Dee,FlowGraphFloatToInt:Bee,FlowGraphFloorBlock:d$,FlowGraphForLoopBlock:qP,FlowGraphFractionBlock:m$,FlowGraphFunctionReferenceBlock:Uee,FlowGraphGetAssetBlock:QJ,FlowGraphGetPropertyBlock:ZJ,FlowGraphGetVariableBlock:HJ,FlowGraphGreaterThanBlock:E$,FlowGraphGreaterThanOrEqualBlock:T$,FlowGraphIndexOfBlock:kee,FlowGraphInfBlock:o$,FlowGraphIntToBoolean:Nee,FlowGraphIntToFloat:wee,FlowGraphInteger:Yr,FlowGraphInterpolationBlock:jJ,FlowGraphInvertMatrixBlock:vee,FlowGraphIsInfinityBlock:I$,FlowGraphIsNanBlock:L$,FlowGraphJsonPointerParserBlock:Pee,FlowGraphLeadingZerosBlock:tee,FlowGraphLengthBlock:bee,FlowGraphLessThanBlock:y$,FlowGraphLessThanOrEqualBlock:M$,FlowGraphLog10Block:H$,FlowGraphLog2Block:W$,FlowGraphLogBlock:G$,FlowGraphLogger:x1e,FlowGraphMathInterpolationBlock:b$,FlowGraphMatrix2D:X1,FlowGraphMatrix3D:Z1,FlowGraphMatrixComposeBlock:xee,FlowGraphMatrixDecomposeBlock:Cee,FlowGraphMatrixMultiplicationBlock:Aee,FlowGraphMaxBlock:A$,FlowGraphMeshPickEventBlock:jee,FlowGraphMinBlock:v$,FlowGraphModuloBlock:_$,FlowGraphMultiGateBlock:IJ,FlowGraphMultiplyBlock:i$,FlowGraphNaNBlock:l$,FlowGraphNegationBlock:g$,FlowGraphNormalizeBlock:See,FlowGraphOneBitsCounterBlock:see,FlowGraphPathConverter:kBe,FlowGraphPathConverterComponent:Q0e,FlowGraphPauseAnimationBlock:UJ,FlowGraphPiBlock:a$,FlowGraphPlayAnimationBlock:FJ,FlowGraphPointerOutEventBlock:Yee,FlowGraphPointerOverEventBlock:Xee,FlowGraphPowerBlock:Z$,FlowGraphRadToDegBlock:O$,FlowGraphRandomBlock:r$,FlowGraphReceiveCustomEventBlock:Gee,FlowGraphRotate2DBlock:Eee,FlowGraphRotate3DBlock:Tee,FlowGraphRoundBlock:p$,FlowGraphSaturateBlock:x$,FlowGraphSceneReadyEventBlock:Vee,FlowGraphSceneTickEventBlock:Hee,FlowGraphSendCustomEventBlock:Wee,FlowGraphSequenceBlock:wJ,FlowGraphSetDelayBlock:JP,FlowGraphSetPropertyBlock:KJ,FlowGraphSetVariableBlock:YJ,FlowGraphSignBlock:u$,FlowGraphSignalConnection:yW,FlowGraphSinBlock:ipe,FlowGraphSinhBlock:B$,FlowGraphSquareRootBlock:Y$,get FlowGraphState(){return BK},FlowGraphStopAnimationBlock:kJ,FlowGraphSubtractBlock:t$,FlowGraphSwitchBlock:PJ,FlowGraphTanBlock:rpe,FlowGraphTanhBlock:F$,FlowGraphThrottleBlock:LJ,FlowGraphTrailingZerosBlock:iee,FlowGraphTransformBlock:Lee,FlowGraphTransformCoordinatesBlock:Iee,FlowGraphTransformCoordinatesSystemBlock:XJ,FlowGraphTransposeBlock:gee,FlowGraphTruncBlock:h$,get FlowGraphTypes(){return IK},FlowGraphWaitAllBlock:OJ,FlowGraphWhileLoopBlock:QP,FluidRenderer:wY,FluidRendererSceneComponent:eMe,get FluidRenderingDebug(){return Goe},FluidRenderingObject:joe,FluidRenderingObjectCustomParticles:$ye,FluidRenderingObjectParticleSystem:Jye,FluidRenderingTargetRenderer:Woe,FlyCamera:YP,FlyCameraInputsManager:$2e,FlyCameraKeyboardInput:wy,FlyCameraMouseInput:mB,FogBlock:i5e,FollowBehavior:q2e,FollowCamera:S0,FollowCameraInputsManager:efe,FollowCameraKeyboardMoveInput:Wu,FollowCameraMouseWheelInput:qT,FollowCameraPointersInput:cf,FragCoordBlock:Kve,FragDepthBlock:$ve,FragmentOutputBlock:Wy,get FragmentOutputBlockColorSpace(){return o5},FrameGraph:cpe,FrameGraphAnaglyphTask:Fpe,FrameGraphBlackAndWhiteTask:Upe,FrameGraphBloomTask:_te,FrameGraphBlurTask:EL,FrameGraphCascadedShadowGeneratorTask:hte,FrameGraphChromaticAberrationTask:jpe,FrameGraphCircleOfConfusionTask:vte,FrameGraphClearTextureTask:ite,FrameGraphContext:ete,FrameGraphCopyToBackbufferColorTask:ope,FrameGraphCopyToTextureTask:$pe,FrameGraphCullObjectsTask:Ope,FrameGraphCullPass:CH,FrameGraphDepthOfFieldTask:xte,FrameGraphExecuteTask:yH,FrameGraphExtractHighlightsTask:gte,FrameGraphGenerateMipMapsTask:t3e,FrameGraphGeometryRendererTask:yte,FrameGraphGlowLayerTask:dte,FrameGraphHighlightLayerTask:fte,FrameGraphObjectList:$ze,FrameGraphObjectRendererTask:RB,FrameGraphPass:AH,FrameGraphPassCubeTask:Wpe,FrameGraphPassTask:Gpe,FrameGraphPostProcessTask:L0,FrameGraphRenderContext:xH,FrameGraphRenderPass:PB,FrameGraphRenderTarget:lpe,FrameGraphSSRRenderingPipelineTask:Ste,FrameGraphShadowGeneratorTask:ute,FrameGraphTAAObjectRendererTask:Mte,FrameGraphTask:q1,FrameGraphTextureManager:i_,FrameGraphUtilityLayerRendererTask:Ete,FramingBehavior:of,FreeCamera:$d,FreeCameraDeviceOrientationInput:Uq,FreeCameraGamepadInput:gB,FreeCameraInputsManager:Dw,FreeCameraKeyboardMoveInput:r3,FreeCameraMouseInput:Pw,FreeCameraMouseWheelInput:K6,FreeCameraTouchInput:Rw,FreeCameraVirtualJoystickInput:Vq,FresnelBlock:x5e,FresnelParameters:GB,FromHalfFloat:Zv,get FrontFace(){return QQ},FrontFacingBlock:Xve,Frustum:t3,FxaaPostProcess:WL,GIRSM:GZe,GIRSMManager:BY,GIRSMRenderPluginMaterial:D4,GPUParticleSystem:A_,GPUPicker:ec,GUID:eOe,Gamepad:Dc,GamepadCamera:sH,GamepadManager:sfe,GamepadSystemSceneComponent:rfe,GaussianBlock:$se,GaussianSplattingBlock:Jse,GaussianSplattingMaterial:d9,GaussianSplattingMesh:Gn,GenerateBase64StringFromPixelData:SG,GenerateBase64StringFromTexture:gZ,GenerateBase64StringFromTextureAsync:_Z,GenericPad:J2e,GeodesicData:rB,Geometry:Rl,GeometryArcTan2Block:xCe,GeometryBufferRenderer:ps,GeometryBufferRendererSceneComponent:$be,GeometryClampBlock:LCe,GeometryCollectionBlock:one,GeometryCrossBlock:ICe,GeometryCurveBlock:gne,get GeometryCurveBlockTypes(){return Ws},GeometryDesaturateBlock:PCe,GeometryDistanceBlock:DCe,GeometryDotBlock:NCe,GeometryEaseBlock:_ne,get GeometryEaseBlockTypes(){return Hs},GeometryElbowBlock:tCe,GeometryInfoBlock:gCe,GeometryInputBlock:zl,GeometryInterceptorBlock:zCe,GeometryLengthBlock:wCe,GeometryLerpBlock:bCe,GeometryModBlock:ECe,GeometryNLerpBlock:SCe,GeometryOptimizeBlock:iz,GeometryOutputBlock:Wre,GeometryPosterizeBlock:OCe,GeometryPowBlock:TCe,get GeometryRenderingTextureClearType(){return xZ},GeometryReplaceColorBlock:RCe,GeometryRotate2dBlock:BCe,GeometrySmoothStepBlock:MCe,GeometryStepBlock:yCe,GeometryTextureBlock:pne,GeometryTextureFetchBlock:mne,GeometryTransformBlock:hne,GeometryTrigonometryBlock:une,get GeometryTrigonometryBlockOperations(){return Tr},GetClass:ea,GetClassName:$Pe,GetDOMTextContent:ow,GetDataOutConnectionByUniqueId:y1e,GetEnvInfo:zG,GetEnvironmentBRDFTexture:zw,GetExrHeader:W8e,GetExtensionFromUrl:Ode,GetFloatData:PX,GetFlowGraphAssetWithType:OK,GetFogState:mG,GetFontOffset:BZ,GetForwardRay:kNe,GetForwardRayToRef:tH,GetHotSpotToRef:VWe,GetIndividualParser:LK,GetInternalFormatFromBasisFormat:D8e,GetParser:qRe,GetPointsCount:BAe,GetRegisteredSceneLoaderPluginMetadata:NOe,GetSignalInConnectionByUniqueId:M1e,GetTGAHeader:WB,GetTextureDataAsync:vde,GetTransformedPosition:LAe,GetTypeByteLength:kv,GetTypedArrayConstructor:IX,GetTypedArrayData:OX,Gizmo:Ba,get GizmoAnchorPoint(){return vQ},get GizmoCoordinatesMode(){return AQ},GizmoManager:eFe,GlowLayer:P4,GoldbergMesh:nB,GradientBlock:N5e,GradientBlockColorStep:eY,GradientHelper:N0,GrainPostProcess:KL,GreasedLineBaseMesh:sY,GreasedLineMaterialDefaults:kc,GreasedLineMesh:lu,get GreasedLineMeshColorDistribution(){return zre},get GreasedLineMeshColorDistributionType(){return Sre},get GreasedLineMeshColorMode(){return bre},get GreasedLineMeshMaterialType(){return xre},get GreasedLineMeshWidthDistribution(){return Fre},GreasedLinePluginMaterial:h_,get GreasedLineRibbonAutoDirectionMode(){return Bre},get GreasedLineRibbonFacesMode(){return wre},GreasedLineRibbonMesh:Vo,get GreasedLineRibbonPointsMode(){return Nre},GreasedLineSimpleMaterial:UL,GreasedLineTools:Zr,GreasedLineUseOffsetsSimpleMaterialDefine:iAe,GridBlock:Kre,GroundBuilder:fDe,GroundMesh:BP,HDRCubeTexture:Zy,HDRCubeTextureAssetTask:Sxe,HDRFiltering:wie,HDRTools:Eke,Halton2DSequence:qpe,HandConstraintBehavior:Q2e,get HandConstraintOrientation(){return zq},get HandConstraintVisibility(){return Fq},get HandConstraintZone(){return Bq},get HandPart(){return Yte},HandleFallbacksForShadows:Ql,HardwareScalingOptimization:wne,HavokPlugin:CYe,HeightToNormalBlock:qB,HemisphereBuilder:tFe,HemisphericLight:b4,HemisphericParticleEmitter:lz,HighlightLayer:c_,HighlightsPostProcess:EYe,Hinge2Joint:Pwe,HingeConstraint:cYe,HingeJoint:Iwe,HtmlElementTexture:WH,HufUncompress:Q8e,IWebXRControllerPhysicsOptions:pqe,IblCdfGenerator:l9,IblCdfGeneratorSceneComponent:Gye,IblShadowsRenderPipeline:mZe,IcoSphereBlock:Xre,IcoSphereBuilder:PDe,ImageAssetTask:Cxe,ImageProcessingBlock:ore,ImageProcessingConfiguration:ws,ImageProcessingPostProcess:DY,ImageSourceBlock:P0,ImportAnimationsAsync:Phe,ImportMeshAsync:wOe,IncrementValueAction:i2e,get IndexFormat(){return sJ},InitializeCSG2Async:UAe,InputBlock:ys,get InspectableType(){return Yne},InstancedLinesMesh:JK,InstancedMesh:$x,InstancesBlock:Wve,InstantiateBlock:hCe,InstantiateLinearBlock:dCe,InstantiateOnFacesBlock:dne,InstantiateOnVerticesBlock:uY,InstantiateOnVolumeBlock:hY,InstantiateRadialBlock:fCe,InstantiatedEntries:Ghe,IntFloatConverterBlock:pCe,InterleaveScalar:Rse,InternalTexture:gr,get InternalTextureSource(){return CX},InterpolateValueAction:c2e,IntersectionInfo:fG,IridescenceBlock:bO,IsBase64DataUrl:fw,IsCSG2Ready:kAe,IsDocumentAvailable:H6,IsFileURL:SX,IsNavigatorAvailable:LT,IsWindowObjectExist:Il,IsWrapper:MG,get JoystickAxis(){return jq},KeepAssets:Vhe,KeyboardEventTypes:x4,KeyboardInfo:hG,KeyboardInfoPre:NX,KhronosTextureContainer:Q1,KhronosTextureContainer2:Ln,LastCreatedAudioEngine:C2e,LatheBuilder:EDe,Lattice:NAe,LatticeBlock:LO,LatticePluginMaterial:QWe,Layer:dO,LayerSceneComponent:G3e,LengthBlock:M5e,LensFlare:FH,LensFlareSystem:Hy,LensFlareSystemSceneComponent:Dme,LensFlaresOptimization:vY,LensRenderingPipeline:FYe,LerpBlock:g5e,Light:vs,LightBlock:JH,LightGizmo:l_,LightInformationBlock:Hve,LineEdgesRenderer:Vye,LinesBuilder:xDe,LinesMesh:$6,LoadAssetContainerAsync:The,LoadFile:gy,LoadFileError:sP,LoadIESData:P4e,LoadImage:rP,LoadImageConfiguration:bX,get LoadOp(){return lJ},LoadSceneAsync:She,LoadTextureFromTranscodeResult:XH,LockConstraint:hYe,Logger:de,LoopBlock:kL,MainAudioBus:b2e,get MapMode(){return RQ},MapRangeBlock:$Ae,MappingBlock:fne,get MappingTypes(){return m5},Material:ft,MaterialAnisotropicDefines:bde,MaterialBRDFDefines:Ade,MaterialClearCoatDefines:Cde,MaterialDefines:Br,MaterialDetailMapDefines:Yhe,MaterialFlags:Pt,MaterialGreasedLineDefines:tAe,MaterialHelper:La,MaterialHelperGeometryRendering:Da,MaterialIridescenceDefines:xde,MaterialPluginBase:Uu,get MaterialPluginEvent(){return Cre},MaterialPluginManager:yy,MaterialSheenDefines:Sde,MaterialSubSurfaceDefines:yde,MathBlock:rne,get MathBlockOperations(){return e2},Matrix:me,MatrixBuilderBlock:G5e,MatrixComposeBlock:_Ce,MatrixDeterminantBlock:X5e,MatrixSplitterBlock:J5e,MatrixTransposeBlock:Z5e,MaxBlock:b5e,MergeGeometryBlock:ane,MergeMeshesOptimization:Qy,Mesh:Ne,MeshAssetTask:_xe,MeshAttributeExistsBlock:gre,get MeshAttributeExistsBlockTypes(){return mre},MeshBlock:Yre,MeshBuilder:l3,get MeshDebugMode(){return yre},MeshDebugPluginMaterial:Uc,MeshExploder:SHe,MeshLODLevel:jhe,MeshParticleEmitter:CY,MeshUVSpaceRenderer:xb,MeshoptCompression:rb,MinBlock:S5e,MinMaxReducer:Tpe,get MipmapFilterMode(){return UQ},MirrorTexture:BB,ModBlock:V5e,ModelShape:nae,MorphTarget:Kv,MorphTargetManager:J6,MorphTargetsBlock:are,MotionBlurPostProcess:g9,MotorEnabledJoint:CQ,MultiMaterial:tf,MultiObserver:Nne,MultiPick:Y2e,MultiPickWithRay:X2e,MultiPointerScaleBehavior:UNe,MultiRenderTarget:Cb,MultiplyBlock:OH,NLerpBlock:w5e,NativeDataStream:$T,NativeEngine:bL,get NativePointerInput(){return wX},NativeXRFrame:W9e,NativeXRLayerRenderTargetTextureProvider:Sfe,NativeXRLayerWrapper:bfe,NativeXRRenderTarget:yfe,NegateBlock:E5e,Node:Rr,NodeGeometry:D0,NodeGeometryBlock:us,get NodeGeometryBlockConnectionPointTypes(){return ge},NodeGeometryBuildState:qAe,NodeGeometryConnectionPoint:Gre,get NodeGeometryConnectionPointCompatibilityStates(){return jre},get NodeGeometryConnectionPointDirection(){return Vre},get NodeGeometryContextualSources(){return Er},NodeMaterial:jn,NodeMaterialBlock:Di,get NodeMaterialBlockConnectionPointMode(){return Qse},get NodeMaterialBlockConnectionPointTypes(){return $},get NodeMaterialBlockTargets(){return Te},NodeMaterialConnectionPoint:OL,get NodeMaterialConnectionPointCompatibilityStates(){return Bte},NodeMaterialConnectionPointCustomObject:Vn,get NodeMaterialConnectionPointDirection(){return zte},NodeMaterialDebugBlock:Are,NodeMaterialDefines:kB,get NodeMaterialModes(){return fd},NodeMaterialOptimizer:rWe,get NodeMaterialSystemValues(){return Ds},NodeMaterialTeleportInBlock:a5e,NodeMaterialTeleportOutBlock:o5e,NodeRenderGraph:T0,NodeRenderGraphAnaglyphPostProcessBlock:kpe,NodeRenderGraphBlackAndWhitePostProcessBlock:pte,NodeRenderGraphBlock:Hu,get NodeRenderGraphBlockConnectionPointTypes(){return zt},NodeRenderGraphBloomPostProcessBlock:TL,NodeRenderGraphBlurPostProcessBlock:MH,NodeRenderGraphBuildState:Ppe,NodeRenderGraphCascadedShadowGeneratorBlock:fb,NodeRenderGraphChromaticAberrationPostProcessBlock:NB,NodeRenderGraphCircleOfConfusionPostProcessBlock:LL,NodeRenderGraphClearBlock:r9,NodeRenderGraphConnectionPoint:s9,get NodeRenderGraphConnectionPointCompatibilityStates(){return Kee},get NodeRenderGraphConnectionPointDirection(){return qee},NodeRenderGraphCopyTextureBlock:e3e,NodeRenderGraphCullObjectsBlock:Rpe,NodeRenderGraphDepthOfFieldPostProcessBlock:Vy,NodeRenderGraphElbowBlock:Dpe,NodeRenderGraphExecuteBlock:Npe,NodeRenderGraphExtractHighlightsPostProcessBlock:bte,NodeRenderGraphGenerateMipmapsBlock:i3e,NodeRenderGraphGeometryRendererBlock:eo,NodeRenderGraphGlowLayerBlock:a9,NodeRenderGraphHighlightLayerBlock:jy,NodeRenderGraphInputBlock:ML,NodeRenderGraphObjectRendererBlock:SH,NodeRenderGraphOutputBlock:Qee,NodeRenderGraphPassCubePostProcessBlock:Ype,NodeRenderGraphPassPostProcessBlock:Hpe,NodeRenderGraphResourceContainerBlock:wpe,NodeRenderGraphSSRPostProcessBlock:el,NodeRenderGraphShadowGeneratorBlock:Kpe,NodeRenderGraphTAAObjectRendererBlock:IL,NodeRenderGraphTeleportInBlock:Qpe,NodeRenderGraphTeleportOutBlock:Jpe,NodeRenderGraphUtilityLayerRendererBlock:Tte,NoiseBlock:eCe,NoiseProceduralTexture:KB,NormalBlendBlock:z5e,NormalizeBlock:f5e,NormalizeVectorBlock:rCe,NullBlock:QAe,NullEngine:v0e,NullEngineOptions:_0e,ObjectRenderer:x0,Observable:xe,Observer:Eue,OcclusionMaterial:EUe,Octree:xL,OctreeBlock:bB,OctreeSceneComponent:_Q,OimoJSPlugin:Fie,OnAfterEnteringVRObservableEvent:ZNe,OneMinusBlock:lre,OptimizeIndices:WAe,get Orientation(){return OZ},OutlineRenderer:jO,PBRAnisotropicConfiguration:kT,PBRBRDFConfiguration:Jl,PBRBaseMaterial:Bs,PBRBaseSimpleMaterial:J1,PBRClearCoatConfiguration:$l,PBRIridescenceConfiguration:ld,PBRMaterial:mi,PBRMaterialDefines:VZ,PBRMetallicRoughnessBlock:rc,PBRMetallicRoughnessMaterial:d5,PBRSheenConfiguration:Q6,PBRSpecularGlossinessMaterial:gb,PBRSubSurfaceConfiguration:Na,PHI:Pl,PadNumber:Rue,PanoramaToCubeMapTools:Xy,Parse:d1e,ParseBlockAsync:rDe,ParseCoordinatorAsync:sDe,ParseFloat16:j8e,ParseFloat32:$1,ParseFlowGraph:E1e,ParseFlowGraphAsync:kK,ParseFlowGraphBlockWithClassType:UK,ParseFlowGraphContext:T1e,ParseGraphConnectionWithClassType:nDe,ParseGraphDataConnection:aDe,ParseInt32:f5,ParseInt64:U8e,ParseNullTerminatedString:QH,ParseUint16:XB,ParseUint32:vb,ParseUint8:YB,ParseUint8Array:Pse,ParseValue:G8e,Particle:IO,ParticleBlendMultiplyBlock:Vte,ParticleHelper:YL,ParticleRampGradientBlock:jte,ParticleSystem:xn,ParticleSystemSet:HL,ParticleTextureBlock:Ute,ParticlesOptimization:AY,PassCubePostProcess:TG,PassPostProcess:q6,Path2:EP,Path3D:TP,PathCursor:JDe,PerfCollectionStrategy:wHe,PerfCounter:wo,PerformanceConfigurator:Ec,PerformanceMonitor:PZ,PerformanceViewerCollector:__,PerturbNormalBlock:CO,PhotoDome:EH,Physics6DoFConstraint:wbe,Physics6DoFLimit:aYe,get PhysicsActivationControl(){return vae},PhysicsAggregate:Bbe,PhysicsBody:MY,PhysicsCharacterController:vYe,PhysicsConstraint:rM,get PhysicsConstraintAxis(){return dae},get PhysicsConstraintAxisLimitMode(){return hae},get PhysicsConstraintMotorType(){return mae},get PhysicsConstraintType(){return fae},PhysicsEngine:zie,PhysicsEngineV2:yY,get PhysicsEventType(){return gae},PhysicsHelper:bYe,PhysicsImpostor:$i,PhysicsJoint:cn,get PhysicsMaterialCombineMode(){return bae},get PhysicsMotionType(){return _ae},get PhysicsPrestepType(){return Mb},PhysicsRadialExplosionEventOptions:zO,get PhysicsRadialImpulseFalloff(){return Eae},PhysicsRaycastResult:jB,PhysicsShape:C_,PhysicsShapeBox:xae,PhysicsShapeCapsule:EY,PhysicsShapeContainer:sYe,PhysicsShapeConvexHull:tYe,PhysicsShapeCylinder:Cae,PhysicsShapeGroundMesh:nYe,PhysicsShapeHeightField:rYe,PhysicsShapeMesh:iYe,PhysicsShapeSphere:Aae,get PhysicsShapeType(){return pae},PhysicsUpdraftEventOptions:yae,get PhysicsUpdraftMode(){return Tae},PhysicsViewer:Owe,PhysicsVortexEventOptions:Mae,Pick:W2e,PickWithBoundingInfo:G2e,PickWithRay:H2e,PickingCustomization:Rq,PickingInfo:Kl,get PipelineErrorReason(){return ZQ},PivotTools:zr,Plane:Sh,PlaneBlock:Hre,PlaneBuilder:TDe,PlaneDragGizmo:rO,PlaneRotationGizmo:o_,PlayAnimationAction:s2e,PlaySoundAction:o2e,get PointColor(){return aae},PointLight:NT,PointListBlock:JAe,PointParticleEmitter:oz,PointerDragBehavior:Nl,PointerEventTypes:Xt,PointerInfo:C4,PointerInfoBase:DX,PointerInfoPre:phe,get PointerInput(){return xs},PointsCloudSystem:ybe,PointsGroup:SY,Polar:d_,Polygon:SDe,PolygonBuilder:yDe,PolygonMeshBuilder:j1e,PolyhedronBuilder:IDe,PolyhedronData:WW,PositionGizmo:n3e,PositionNormalTextureVertex:DZ,PositionNormalVertex:RZ,PostProcess:Mi,PostProcessManager:Aw,PostProcessRenderEffect:Mr,PostProcessRenderPipeline:Eb,PostProcessRenderPipelineManager:s7e,PostProcessRenderPipelineManagerSceneComponent:r7e,PostProcessesOptimization:_Y,PosterizeBlock:D5e,PowBlock:T5e,PowerEase:jDe,get PowerPreference(){return IQ},PrePassOutputBlock:t5e,PrePassRenderer:Th,PrePassRendererSceneComponent:Wye,PrePassTextureBlock:n5e,PrecisionDate:lr,PredicateCondition:Q1e,Predictor:Ose,PrepareAttributesForBakedVertexAnimation:CP,PrepareAttributesForBones:G1,PrepareAttributesForInstances:Qo,PrepareAttributesForMorphTargets:vP,PrepareAttributesForMorphTargetsInfluencers:khe,PrepareDefinesAndAttributesForMorphTargets:xy,PrepareDefinesForAttributes:zo,PrepareDefinesForBakedVertexAnimation:sZ,PrepareDefinesForBones:gG,PrepareDefinesForCamera:AG,PrepareDefinesForFrameBoundValues:od,PrepareDefinesForLight:Mw,PrepareDefinesForLights:Jd,PrepareDefinesForMergedUV:En,PrepareDefinesForMisc:ad,PrepareDefinesForMorphTargets:_G,PrepareDefinesForMultiview:xP,PrepareDefinesForOIT:vG,PrepareDefinesForPrePass:Ew,PrepareUniformsAndSamplersForLight:Tw,PrepareUniformsAndSamplersList:gl,PressureObserverWrapper:bY,get PrimitiveTopology(){return qQ},PrismaticConstraint:dYe,ProceduralTexture:zc,ProceduralTextureSceneComponent:N3e,get PropertyTypeForEdition(){return tte},ProximityCastResult:yYe,PushAttributesForInstances:Qx,PushMaterial:po,QuadraticEase:ob,QuadraticErrorSimplification:OAe,QuarticEase:dL,Quaternion:Re,get QueryType(){return uJ},QueueNewFrame:xX,QuinticEase:fL,RGBDTextureTools:PG,RSMCreatePluginMaterial:v9,Ragdoll:mYe,RagdollBoneProperties:pYe,RandomBlock:nne,get RandomBlockLocks(){return g3},RandomGUID:e3,RandomNumberBlock:L5e,RawCubeTexture:UG,RawTexture:Ur,RawTexture2DArray:OG,RawTexture3D:kse,Ray:Is,RayHelper:xQ,ReadFile:nP,ReadFileError:tG,RecastJSCrowd:cbe,RecastJSPlugin:HHe,ReciprocalBlock:O5e,RectAreaLight:UB,ReflectBlock:k5e,ReflectionBlock:FL,ReflectionProbe:DL,ReflectionTextureBaseBlock:xO,ReflectionTextureBlock:s5e,ReflectiveShadowMap:jZe,Reflector:fz,RefractBlock:U5e,RefractionBlock:p9,RefractionPostProcess:_9,RefractionTexture:Use,RegisterClass:ve,RegisterMaterialPlugin:Hhe,RegisterNativeTypeAsync:T0e,RegisterSceneLoaderPlugin:Y9,RegisterTargetForLateAnimationBinding:KDe,RemapBlock:FB,get RenderPassTimestampLocation(){return oJ},RenderTargetTexture:Ir,RenderTargetWrapper:ww,RenderTargetsOptimization:Bne,RenderingGroup:X6,RenderingGroupInfo:fhe,RenderingManager:Fu,ReplaceColorBlock:R5e,RequestFile:sG,RequestFileError:dw,RequestFullscreen:kZ,RequestPointerlock:EG,ResizeImageBitmap:FZ,RetryStrategy:Iue,ReverseLutFromBitmap:X8e,RibbonBuilder:hDe,RichType:af,RichTypeAny:ii,RichTypeBoolean:ju,RichTypeColor3:CW,RichTypeColor4:xW,RichTypeFlowGraphInteger:Dl,RichTypeMatrix:Iy,RichTypeMatrix2D:Hw,RichTypeMatrix3D:Yw,RichTypeNumber:ds,RichTypeQuaternion:oL,RichTypeString:AW,RichTypeVector2:nb,RichTypeVector3:ou,RichTypeVector4:Ww,RollingAverage:ude,Rotate2dBlock:F5e,RotationGizmo:r3e,RotationXBlock:nCe,RotationYBlock:aCe,RotationZBlock:oCe,RuntimeAnimation:u2e,RuntimeError:Y6,SSAO2RenderingPipeline:nc,SSAORenderingPipeline:FO,SSRRenderingPipeline:ma,get SamplerBindingType(){return WQ},Scalar:pd,ScaleBlock:c5e,ScaleGizmo:a3e,ScalingBlock:lCe,ScanData:ave,Scene:ui,SceneComponentConstants:jt,SceneDepthBlock:JB,SceneInstrumentation:U3e,SceneLoader:wr,get SceneLoaderAnimationGroupLoadingMode(){return WX},SceneLoaderFlags:Ol,SceneOptimization:Sb,SceneOptimizer:zne,SceneOptimizerOptions:GL,get ScenePerformancePriority(){return GX},SceneRecorder:PHe,SceneSerializer:Jy,ScreenSizeBlock:qve,ScreenSpaceBlock:Qve,ScreenSpaceCurvaturePostProcess:kO,ScreenSpaceReflectionPostProcess:O4,ScreenshotTools:IHe,SerializationHelper:It,SetBasisTranscoderWorker:aGe,SetColorsBlock:ine,SetCorsBehavior:iG,SetMaterialIDBlock:cne,SetNormalsBlock:tne,SetParentAction:cq,SetPositionsBlock:ene,SetStateAction:e2e,SetTangentsBlock:sne,SetToDefaultGaussianSplatting:eWe,SetUVsBlock:lY,SetValueAction:t2e,ShaderCodeInliner:Fy,get ShaderLanguage(){return Sse},ShaderMaterial:Fo,get ShaderStage(){return VQ},ShaderStore:H,ShadowDepthWrapper:aWe,ShadowGenerator:Bi,ShadowGeneratorSceneComponent:Vme,ShadowLight:My,ShadowMapBlock:e5e,ShadowsOptimization:gY,ShapeBuilder:MDe,ShapeCastResult:MYe,SharpenPostProcess:qL,SheenBlock:zL,SimplexPerlin3DBlock:B5e,SimplicationQueueSceneComponent:RAe,SimplificationQueue:PAe,SimplificationSettings:YWe,get SimplificationType(){return Dre},SineEase:lb,SixDofDragBehavior:wq,Size:n3,Skeleton:Wv,SkeletonViewer:hf,SliderConstraint:uYe,SmartArray:dl,SmartArrayNoDuplicate:_y,SmoothStepBlock:P5e,SnapshotRenderingHelper:BHe,SolidParticle:rae,SolidParticleSystem:bbe,SolidParticleVertex:xbe,Sound:S4,get SoundState(){return Cq},SoundTrack:c1e,get SourceTextureFormat(){return Dte},get Space(){return tZ},get SpatialAudioAttachmentType(){return xq},SpecularPowerToRoughness:F3e,SphereBlock:Zre,SphereBuilder:_De,SphereDirectedParticleEmitter:cz,SphereParticleEmitter:OO,Spherical:f_,SphericalHarmonics:FT,SphericalPolynomial:Xv,SplatReaderBlock:nre,SpotLight:$o,SpringConstraint:fYe,Sprite:UH,SpriteManager:h5,SpriteMap:rqe,get SpriteMapFrameRotationDirection(){return zY},SpritePackedManager:nqe,SpriteSceneComponent:D4e,Stage:Ko,StandardMaterial:Bt,StandardMaterialDefines:Xhe,StandardRenderingPipeline:jr,StartsWith:Oue,StateCondition:J1e,StaticSound:S2e,StaticSoundBuffer:y2e,get StencilOperation(){return iJ},StencilState:Zx,StencilStateComposer:AX,StepBlock:A5e,StereoscopicArcRotateCamera:hfe,StereoscopicFreeCamera:dfe,StereoscopicGamepadCamera:ffe,StereoscopicInterlacePostProcess:GNe,StereoscopicInterlacePostProcessI:ufe,StereoscopicScreenUniversalCamera:WNe,StereoscopicUniversalCamera:pfe,StickValues:jNe,StopAnimationAction:r2e,StopSoundAction:l2e,StorageBuffer:dB,StorageReadBlock:q5e,get StorageTextureAccess(){return YQ},StorageWriteBlock:Q5e,get StoreOp(){return cJ},StreamingSound:M2e,StringDictionary:nG,StringTools:MPe,SubEmitter:tM,get SubEmitterType(){return qne},SubMesh:Lc,SubSurfaceBlock:SO,SubSurfaceSceneComponent:Qye,Subdivide:KAe,SubdivideBlock:pY,SubtractBlock:v5e,SurfaceMagnetismBehavior:K2e,SwitchBooleanAction:$1e,get SwitchInput(){return kX},TAARenderingPipeline:nM,TBNBlock:BL,TGATools:P8e,Tags:ar,TargetCamera:Ja,TargetedAnimation:hq,TeleportInBlock:vCe,TeleportOutBlock:ACe,TestBase64DataUrl:que,TextFileAssetTask:vxe,Texture:be,get TextureAspect(){return BQ},TextureAssetTask:xxe,TextureBlock:QB,get TextureDimension(){return DQ},get TextureFormat(){return zQ},TextureOptimization:mY,TexturePacker:u_,TexturePackerFrame:Fse,get TextureSampleType(){return HQ},TextureSampler:JV,TextureTools:Bw,get TextureUsage(){return NQ},get TextureViewDimension(){return wQ},ThinAnaglyphPostProcess:e5,ThinBlackAndWhitePostProcess:s5,ThinBloomEffect:mte,ThinBlurPostProcess:jo,ThinChromaticAberrationPostProcess:r5,ThinCircleOfConfusionPostProcess:t1,ThinDepthOfFieldEffect:Cte,get ThinDepthOfFieldEffectBlurLevel(){return Ate},ThinEffectLayer:Uy,ThinEngine:Zi,ThinExtractHighlightsPostProcess:n_,ThinGlowBlurPostProcess:s_,ThinGlowLayer:n9,ThinHighlightLayer:f3,ThinPassCubePostProcess:$9,ThinPassPostProcess:sb,ThinRenderTargetTexture:NGe,ThinTexture:Sy,TiledBoxBuilder:gDe,TiledPlaneBuilder:mDe,get TimerState(){return BJ},TmpColors:Sr,TmpVectors:ae,ToGammaSpace:lP,ToHalfFloat:H1,ToLinearSpace:gw,TonemapPostProcess:sXe,get TonemappingOperator(){return Xae},Tools:Le,TorusBlock:qre,TorusBuilder:ADe,TorusKnotBuilder:CDe,TouchCamera:Gq,TrailMesh:tz,Trajectory:bn,TrajectoryClassifier:xY,TranscodeAsync:HH,get TranscodeTarget(){return aO},TransformBlock:cO,TransformFeedbackBoundingHelper:By,TransformNode:Si,TranslationBlock:uCe,TriPlanarBlock:tY,TrigonometryBlock:RH,get TrigonometryBlockOperations(){return Fr},TubeBuilder:LDe,TwirlBlock:Jve,UncompressPIZ:rve,UncompressPXR:sve,UncompressRAW:Bse,UncompressRLE:ive,UncompressZIP:zse,UniformBuffer:Ti,UniversalCamera:QT,UnregisterAllMaterialPlugins:CZ,UnregisterMaterialPlugin:rRe,UploadContent:yse,UploadEnvLevelsAsync:$Z,UploadEnvSpherical:kG,UploadIrradianceLevelsAsync:eK,UploadRadianceLevelsAsync:Vw,UtilityLayerRenderer:Dr,VRCameraMetrics:vL,VRDeviceOrientationArcRotateCamera:Afe,VRDeviceOrientationFreeCamera:nH,VRDeviceOrientationGamepadCamera:Cfe,VRDistortionCorrectionPostProcess:qq,VRExperienceHelper:AL,VRMultiviewToSingleviewPostProcess:vfe,ValidatedNativeDataStream:I0e,ValueCondition:Rc,Vector2:Ue,Vector2ToFixed:MAe,Vector3:P,Vector3ToFixed:EAe,Vector4:Yt,Vector4ToFixed:TAe,VectorConverterBlock:sCe,VectorMergerBlock:zB,VectorSplitterBlock:m5e,VertexAnimationBaker:zNe,VertexBuffer:q,VertexData:wt,VertexDataMaterialInfo:Sw,get VertexFormat(){return rJ},VertexOutputBlock:uO,get VertexStepMode(){return nJ},VideoDome:wH,VideoRecorder:rz,VideoTexture:mb,ViewDirectionBlock:cre,Viewport:Tc,VirtualJoystick:Xi,VirtualJoysticksCamera:mfe,VolumetricLightScatteringPostProcess:v3,VoronoiNoiseBlock:W5e,Wav2Decode:$8e,WaveBlock:hre,get WaveBlockKind(){return ure},WebGL2ParticleSystem:fbe,WebGL2ShaderProcessor:lde,WebGLDataBuffer:MP,WebGLHardwareTexture:J9,WebGLPipelineContext:Vue,WebGPUCacheBindGroups:An,WebGPUCacheRenderPipeline:Ta,WebGPUCacheRenderPipelineTree:t_,WebGPUCacheSampler:e9,WebGPUDataBuffer:V0e,WebGPUDrawContext:yB,WebGPUEngine:un,WebGPUPipelineContext:P0e,WebGPURenderTargetWrapper:Y0e,WebGPUShaderProcessor:wl,WebGPUTintWASM:y0,WebRequest:ha,WebXRAbstractFeature:Bc,WebXRAbstractMotionController:PL,WebXRAnchorSystem:VO,WebXRBackgroundRemover:WO,WebXRCamera:oO,WebXRControllerComponent:I0,WebXRControllerMovement:oM,WebXRControllerPhysics:HO,WebXRControllerPointerSelection:a5,WebXRDefaultExperience:NH,WebXRDefaultExperienceOptions:LFe,WebXRDepthSensing:tR,WebXRDomOverlay:qO,WebXREnterExitUI:DH,WebXREnterExitUIButton:w3e,WebXREnterExitUIOptions:EFe,WebXRExperienceHelper:IH,WebXREyeTracking:JO,WebXRFeatureName:ur,WebXRFeaturePointSystem:XO,WebXRFeaturesManager:$a,WebXRGenericHandController:G9e,WebXRGenericTriggerMotionController:lO,WebXRHTCViveMotionController:QL,WebXRHand:B3e,get WebXRHandJoint(){return Xte},WebXRHandTracking:Nr,WebXRHitTest:YO,WebXRHitTestLegacy:aM,WebXRImageTracking:KO,WebXRInput:P3e,WebXRInputSource:I3e,WebXRLayerRenderTargetTextureProvider:aH,WebXRLayers:$O,WebXRLightEstimation:QO,WebXRManagedOutputCanvas:xfe,WebXRManagedOutputCanvasOptions:AB,WebXRMeshDetector:ZO,WebXRMicrosoftMixedRealityController:cM,WebXRMotionControllerManager:wc,WebXRMotionControllerTeleportation:RL,get WebXRNearControllerMode(){return Hte},WebXRNearInteraction:l5,WebXROculusTouchMotionController:x_,WebXRPlaneDetector:GO,WebXRProfiledMotionController:L3e,WebXRRawCameraAccess:sR,WebXRSessionManager:CB,WebXRSpaceWarp:iR,WebXRSpaceWarpRenderTargetTextureProvider:V9e,get WebXRState(){return Ice},get WebXRTrackingState(){return Pce},WebXRWalkingLocomotion:FY,WeightedSound:l1e,WorkerPool:kde,WorleyNoise3DBlock:dre,XRSpaceWarpRenderTarget:j9e,get Xbox360Button(){return Hq},get Xbox360Dpad(){return Yq},Xbox360Pad:tfe,get XboxInput(){return FX},_AudioAnalyzerDefaults:GP,_BabylonLoaderRegistered:Ike,_BasisTextureLoader:N8e,_CommonDispose:wZ,_CommonInit:NZ,_CreationDataStorage:rZ,_DDSTextureLoader:S3e,_ENVTextureLoader:y3e,_ExrTextureLoader:ove,_GetAudioEngine:WP,_GetCompatibleTextureLoader:eG,_HDRTextureLoader:R8e,_HasAudioAnalyzerOptions:p2e,_HasSpatialAudioListenerOptions:L2e,_HasSpatialAudioOptions:aB,_HasStereoAudioOptions:P2e,_IESTextureLoader:lve,_InstancesBatch:nZ,_KTXTextureLoader:E3e,_MeshCollisionData:Bhe,_OcclusionDataStorage:A0e,_PrimaryIsoTriangle:nq,_SpatialAudioDefaults:dd,_SpatialAudioListenerDefaults:T2e,_StereoAudioDefaults:Aq,_TGATextureLoader:O8e,_TimeToken:bQ,_UpdateRGBDAsync:Pde,_WebAudioBus:oB,_WebAudioEngine:F2e,_WebAudioMainBus:lB,_WebAudioStaticSound:mL,_WebAudioStaticSoundBuffer:Oq,_WebAudioStreamingSound:gL,_forceSceneHelpersToBundle:IFe,_forceTransformFeedbackToBundle:Nwe,_injectLTSFileTools:Que,_staticOffsetValueColor3:pZ,_staticOffsetValueColor4:mZ,_staticOffsetValueQuaternion:uZ,_staticOffsetValueSize:fZ,_staticOffsetValueVector2:dZ,_staticOffsetValueVector3:hZ,addClipPlaneUniforms:qo,addToBlockFactory:S1e,allocateAndCopyTypedBuffer:XV,anaglyphPixelShader:aye,anaglyphPixelShaderWGSL:lye,appendSceneAsync:zOe,backbufferColorTextureHandle:M0,backbufferDepthStencilTextureHandle:d3,backgroundPixelShader:e6e,backgroundPixelShaderWGSL:mge,backgroundVertexShader:Ige,backgroundVertexShaderWGSL:X4e,bilateralBlurPixelShader:UMe,bilateralBlurPixelShaderWGSL:ZMe,bilateralBlurQualityPixelShader:VMe,bilateralBlurQualityPixelShaderWGSL:qMe,bindClipPlane:Bo,blackAndWhitePixelShader:iye,blackAndWhitePixelShaderWGSL:rye,blockFactory:FK,bloomMergePixelShader:USe,bloomMergePixelShaderWGSL:VSe,bonesDeclaration:Pfe,bonesDeclarationWGSL:qfe,bonesVertex:Gfe,bonesVertexWGSL:c0e,boundingBoxRendererPixelShader:dEe,boundingBoxRendererPixelShaderWGSL:AEe,boundingBoxRendererVertexShader:gEe,boundingBoxRendererVertexShaderWGSL:bEe,bumpFragment:d8e,bumpFragmentFunctions:J_e,bumpFragmentFunctionsWGSL:k6e,bumpFragmentMainFunctions:q_e,bumpFragmentMainFunctionsWGSL:z6e,bumpFragmentWGSL:J6e,captureEquirectangularFromScene:kHe,chromaticAberrationPixelShader:a7e,chromaticAberrationPixelShaderWGSL:PSe,circleOfConfusionPixelShader:BSe,circleOfConfusionPixelShaderWGSL:FSe,className:tOe,clipPlaneFragment:mpe,clipPlaneFragmentDeclaration:hpe,clipPlaneFragmentDeclarationWGSL:J3e,clipPlaneFragmentWGSL:eme,clipPlaneVertex:bpe,clipPlaneVertexDeclaration:Ape,clipPlaneVertexDeclarationWGSL:rme,clipPlaneVertexWGSL:ame,colorCorrectionPixelShader:pye,colorCorrectionPixelShaderWGSL:gye,colorPixelShader:i6e,colorPixelShaderWGSL:VCe,colorVertexShader:n6e,colorVertexShaderWGSL:WCe,computeMaxExtents:qWe,convolutionPixelShader:uye,convolutionPixelShaderWGSL:dye,copyTexture3DLayerToTexturePixelShader:GEe,copyTexture3DLayerToTexturePixelShaderWGSL:HEe,copyTextureToTexturePixelShader:abe,copyTextureToTexturePixelShaderWGSL:lbe,createDetailMapPlugin:fWe,createPBRAnisotropicPlugin:oWe,createPBRBRDFPlugin:lWe,createPBRClearCoatPlugin:cWe,createPBRIridescencePlugin:uWe,createPBRSheenPlugin:hWe,createPBRSubSurfacePlugin:dWe,createYieldingScheduler:xw,deepMerge:DG,defaultPixelShader:oAe,defaultPixelShaderWGSL:fAe,defaultVertexShader:uAe,defaultVertexShaderWGSL:gAe,depthBoxBlurPixelShader:E4e,depthBoxBlurPixelShaderWGSL:r4e,depthOfFieldMergePixelShader:RSe,depthOfFieldMergePixelShaderWGSL:NSe,depthPixelShader:_pe,depthPixelShaderWGSL:iEe,depthVertexShader:Mpe,depthVertexShaderWGSL:rEe,displayPassPixelShader:Pye,displayPassPixelShaderWGSL:Rye,editableInPropertyPage:lt,expandToProperty:et,extractHighlightsPixelShader:WSe,extractHighlightsPixelShaderWGSL:YSe,extractMinAndMax:vy,extractMinAndMaxIndexed:Nhe,filterPixelShader:bye,filterPixelShaderWGSL:yye,fluidRenderingBilateralBlurPixelShader:fMe,fluidRenderingBilateralBlurPixelShaderWGSL:RMe,fluidRenderingParticleDepthPixelShader:rMe,fluidRenderingParticleDepthPixelShaderWGSL:SMe,fluidRenderingParticleDepthVertexShader:iMe,fluidRenderingParticleDepthVertexShaderWGSL:xMe,fluidRenderingParticleDiffusePixelShader:hMe,fluidRenderingParticleDiffusePixelShaderWGSL:PMe,fluidRenderingParticleDiffuseVertexShader:OZe,fluidRenderingParticleDiffuseVertexShaderWGSL:FZe,fluidRenderingParticleThicknessPixelShader:lMe,fluidRenderingParticleThicknessPixelShaderWGSL:TMe,fluidRenderingParticleThicknessVertexShader:aMe,fluidRenderingParticleThicknessVertexShaderWGSL:MMe,fluidRenderingRenderPixelShader:AMe,fluidRenderingRenderPixelShaderWGSL:FMe,fluidRenderingStandardBlurPixelShader:gMe,fluidRenderingStandardBlurPixelShaderWGSL:wMe,fogFragmentDeclaration:Xge,fogFragmentDeclarationWGSL:lge,fxaaPixelShader:ZSe,fxaaPixelShaderWGSL:JSe,fxaaVertexShader:qSe,fxaaVertexShaderWGSL:eye,gaussianSplattingVertexDeclaration:HGe,gaussianSplattingVertexDeclarationWGSL:sWe,geometryPixelShader:Xbe,geometryPixelShaderWGSL:aEe,geometryVertexShader:Qbe,geometryVertexShaderWGSL:lEe,getAnimationTypeByFlowGraphType:v1e,getDimensionsFromTextureSize:OB,getRichTypeByAnimationType:A1e,getRichTypeByFlowGraphType:vn,getRichTypeFromValue:_1e,glowBlurPostProcessPixelShader:gme,glowBlurPostProcessPixelShaderWGSL:yme,glowMapGenerationPixelShader:Z3e,glowMapGenerationPixelShaderWGSL:ime,glowMapGenerationVertexShader:q3e,glowMapGenerationVertexShaderWGSL:lme,glowMapMergePixelShader:ume,glowMapMergePixelShaderWGSL:vme,glowMapMergeVertexShader:fme,glowMapMergeVertexShaderWGSL:xme,grainPixelShader:ESe,grainPixelShaderWGSL:LSe,greasedLinePixelShader:vAe,greasedLinePixelShaderWGSL:bAe,greasedLineVertexShader:CAe,greasedLineVertexShaderWGSL:yAe,hdrFilteringPixelShader:Cve,hdrFilteringPixelShaderWGSL:yve,hdrFilteringVertexShader:vve,hdrFilteringVertexShaderWGSL:bve,hdrIrradianceFilteringPixelShader:Lve,hdrIrradianceFilteringPixelShaderWGSL:Rve,hdrIrradianceFilteringVertexShader:Eve,hdrIrradianceFilteringVertexShaderWGSL:Pve,helperFunctions:H3e,helperFunctionsWGSL:D0e,highlightsPixelShader:Eye,highlightsPixelShaderWGSL:Lye,iblCdfDebugPixelShader:zTe,iblCdfDebugPixelShaderWGSL:wTe,iblCdfxPixelShader:MTe,iblCdfxPixelShaderWGSL:STe,iblCdfyPixelShader:ITe,iblCdfyPixelShaderWGSL:TTe,iblCombineVoxelGridsPixelShader:fTe,iblCombineVoxelGridsPixelShaderWGSL:hTe,iblGenerateVoxelMipPixelShader:mTe,iblGenerateVoxelMipPixelShaderWGSL:_Te,iblIcdfPixelShader:DTe,iblIcdfPixelShaderWGSL:OTe,iblScaledLuminancePixelShader:jTe,iblScaledLuminancePixelShaderWGSL:kTe,iblShadowAccumulationPixelShader:oTe,iblShadowAccumulationPixelShaderWGSL:nTe,iblShadowDebugPixelShader:QEe,iblShadowDebugPixelShaderWGSL:$Ee,iblShadowGBufferDebugPixelShader:ATe,iblShadowGBufferDebugPixelShaderWGSL:xTe,iblShadowSpatialBlurPixelShader:sTe,iblShadowSpatialBlurPixelShaderWGSL:tTe,iblShadowVoxelTracingPixelShader:XEe,iblShadowVoxelTracingPixelShaderWGSL:KEe,iblShadowsCombinePixelShader:yKe,iblShadowsCombinePixelShaderWGSL:MKe,iblVoxelGrid2dArrayDebugPixelShader:GTe,iblVoxelGrid2dArrayDebugPixelShaderWGSL:HTe,iblVoxelGrid3dDebugPixelShader:t9e,iblVoxelGrid3dDebugPixelShaderWGSL:s9e,iblVoxelGridPixelShader:XTe,iblVoxelGridPixelShaderWGSL:QTe,iblVoxelGridVertexShader:KTe,iblVoxelGridVertexShaderWGSL:$Te,iblVoxelSlabDebugPixelShader:o9e,iblVoxelSlabDebugPixelShaderWGSL:h9e,iblVoxelSlabDebugVertexShader:n9e,iblVoxelSlabDebugVertexShaderWGSL:c9e,imageProcessingDeclaration:Nge,imageProcessingDeclarationWGSL:Q4e,imageProcessingFunctions:Hge,imageProcessingFunctionsWGSL:age,imageProcessingPixelShader:bSe,imageProcessingPixelShaderWGSL:CSe,importAnimationsAsync:kOe,inlineScheduler:Cw,kernelBlurPixelShader:K7e,kernelBlurPixelShaderWGSL:sSe,kernelBlurVertexShader:J7e,kernelBlurVertexShaderWGSL:aSe,layerPixelShader:Eme,layerPixelShaderWGSL:Pme,layerVertexShader:Lme,layerVertexShaderWGSL:Rme,lensFlarePixelShader:wme,lensFlarePixelShaderWGSL:kme,lensFlareVertexShader:zme,lensFlareVertexShaderWGSL:jme,lightFragment:qge,lightFragmentDeclaration:Bge,lightFragmentWGSL:hge,lightUboDeclaration:Fge,lightUboDeclarationWGSL:$4e,lightVxFragmentDeclaration:Cge,lightVxUboDeclaration:bge,lightVxUboDeclarationWGSL:U4e,lightsFragmentFunctions:jge,lightsFragmentFunctionsWGSL:ige,linePixelShader:MEe,linePixelShaderWGSL:OEe,lineVertexShader:IEe,lineVertexShaderWGSL:DEe,loadAssetContainerAsync:FOe,loadSceneAsync:BOe,lodCubePixelShader:Lxe,lodCubePixelShaderWGSL:Rxe,lodPixelShader:Pxe,lodPixelShaderWGSL:Nxe,makeAsyncFunction:UOe,makeSyncFunction:Rhe,meshUVSpaceRendererFinaliserPixelShader:exe,meshUVSpaceRendererFinaliserPixelShaderWGSL:dxe,meshUVSpaceRendererFinaliserVertexShader:ixe,meshUVSpaceRendererFinaliserVertexShaderWGSL:pxe,meshUVSpaceRendererMaskerPixelShader:JCe,meshUVSpaceRendererMaskerPixelShaderWGSL:uxe,meshUVSpaceRendererMaskerVertexShader:qCe,meshUVSpaceRendererMaskerVertexShaderWGSL:lxe,meshUVSpaceRendererPixelShader:ZCe,meshUVSpaceRendererPixelShaderWGSL:axe,meshUVSpaceRendererVertexShader:YCe,meshUVSpaceRendererVertexShaderWGSL:rxe,morphTargetsVertex:Ufe,morphTargetsVertexDeclaration:wfe,morphTargetsVertexDeclarationWGSL:t0e,morphTargetsVertexGlobal:Ffe,morphTargetsVertexGlobalDeclaration:Dfe,morphTargetsVertexGlobalDeclarationWGSL:$fe,morphTargetsVertexGlobalWGSL:r0e,morphTargetsVertexWGSL:a0e,motionBlurPixelShader:vye,motionBlurPixelShaderWGSL:Cye,nativeOverride:qx,normalizeEnvInfo:PP,oitBackBlendPixelShader:f9e,oitBackBlendPixelShaderWGSL:v9e,oitFinalPixelShader:g9e,oitFinalPixelShaderWGSL:x9e,outlinePixelShader:wEe,outlinePixelShaderWGSL:kEe,outlineVertexShader:zEe,outlineVertexShaderWGSL:jEe,packingFunctions:fpe,packingFunctionsWGSL:Wme,particlesPixelShader:Ebe,particlesPixelShaderWGSL:Obe,particlesVertexShader:Lbe,particlesVertexShaderWGSL:Dbe,passCubePixelShader:uSe,passCubePixelShaderWGSL:pSe,passPixelShader:lSe,passPixelShaderWGSL:dSe,pbrPixelShader:L8e,pbrPixelShaderWGSL:p_e,pbrVertexShader:P_e,pbrVertexShaderWGSL:A6e,pickingPixelShader:Lfe,pickingPixelShaderWGSL:Zfe,pickingVertexShader:Yfe,pickingVertexShaderWGSL:d0e,postprocessVertexShader:ade,postprocessVertexShaderWGSL:G7e,prepareDefinesForClipPlanes:zhe,prepareStringDefinesForClipPlanes:Cy,proceduralVertexShader:mve,proceduralVertexShaderWGSL:dve,reflectionFunction:Rge,reflectionFunctionWGSL:K4e,registerSceneLoaderPlugin:DOe,registerTextureLoader:Kx,rgbdDecodePixelShader:qxe,rgbdDecodePixelShaderWGSL:tbe,rgbdEncodePixelShader:$xe,rgbdEncodePixelShaderWGSL:rbe,rsmFullGlobalIlluminationPixelShader:YMe,rsmFullGlobalIlluminationPixelShaderWGSL:eEe,rsmGlobalIlluminationPixelShader:WMe,rsmGlobalIlluminationPixelShaderWGSL:JMe,runCoroutine:JX,runCoroutineAsync:X9,runCoroutineSync:bw,screenSpaceReflection2BlurCombinerPixelShader:L7e,screenSpaceReflection2BlurCombinerPixelShaderWGSL:w7e,screenSpaceReflection2BlurPixelShader:E7e,screenSpaceReflection2BlurPixelShaderWGSL:D7e,screenSpaceReflection2PixelShader:y7e,screenSpaceReflection2PixelShaderWGSL:O7e,serialize:G,serializeAsCameraReference:ohe,serializeAsColor3:qs,serializeAsColor4:hP,serializeAsColorCurves:nhe,serializeAsFresnelParameters:cP,serializeAsImageProcessingConfiguration:LX,serializeAsMatrix:uG,serializeAsMeshReference:uP,serializeAsQuaternion:ahe,serializeAsTexture:Yi,serializeAsVector2:vw,serializeAsVector3:Ma,setAndStartTimer:TB,setOpenGLOrientationForUV:VOe,setStereoscopicAnaglyphRigMode:_B,setStereoscopicRigMode:vB,setVRRigMode:rH,shadowMapFragment:u4e,shadowMapFragmentSoftTransparentShadow:L4e,shadowMapFragmentSoftTransparentShadowWGSL:a4e,shadowMapFragmentWGSL:Zme,shadowMapPixelShader:d4e,shadowMapPixelShaderWGSL:qme,shadowMapVertexMetric:b4e,shadowMapVertexMetricWGSL:e4e,shadowMapVertexShader:y4e,shadowMapVertexShaderWGSL:i4e,shadowsFragmentFunctions:Gge,shadowsFragmentFunctionsWGSL:rge,shadowsVertex:Ege,shadowsVertexWGSL:W4e,sharpenPixelShader:i7e,sharpenPixelShaderWGSL:ySe,spritesPixelShader:E9e,spritesPixelShaderWGSL:O9e,spritesVertexShader:L9e,spritesVertexShaderWGSL:D9e,ssao2PixelShader:m7e,ssao2PixelShaderWGSL:v7e,ssaoCombinePixelShader:h7e,ssaoCombinePixelShaderWGSL:x7e,textureSizeIsObject:ky,tonemapPixelShader:Nye,tonemapPixelShaderWGSL:Bye,unregisterTextureLoader:Zue,get useOpenGLOrientationForUV(){return _r},vrDistortionCorrectionPixelShader:gSe,vrDistortionCorrectionPixelShaderWGSL:vSe},Symbol.toStringTag,{value:"Module"}));class Ar{static async init(e,t=!0){this.engine&&this.scene&&this.camera||(this.engine=new Qt(e,!0,{useHighPrecisionFloats:!0}),this.scene=new ui(this.engine),this.scene.useRightHandedSystem=t,this.camera=new HDe(this.scene,e,t),this.camera.disableBounds(),this.camera.setClickToSetRotationPoint(!1),this.scene.activeCamera=this.camera)}static dispose(){this.scene&&(this.scene.dispose(),this.scene=null),this.engine&&(this.engine.stopRenderLoop(),this.engine.dispose(),this.engine=null),this.camera&&(this.camera.dispose(),this.camera=null),this.shadowGenerator&&(this.shadowGenerator.dispose(),this.shadowGenerator=null),this.spotLight&&(this.spotLight.dispose(),this.spotLight=null),this.modelLoadingPromises&&this.modelLoadingPromises.clear()}static refreshShadows(){if(!this.shadowGenerator||!this.scene)return;const t=this.shadowGenerator.getShadowMap();t&&this.scene.onAfterRenderObservable.addOnce(()=>{t.refreshRate=Ir.REFRESHRATE_RENDER_ONCE,t.resetRefreshCounter()})}}mr(Ar,"engine",null),mr(Ar,"scene",null),mr(Ar,"camera",null),mr(Ar,"shadowGenerator",null),mr(Ar,"spotLight",null),mr(Ar,"modelLoadingPromises",new Map),mr(Ar,"_windowResizeHandler",null);const sl=class sl{static _createCombinedTexture(e){const i=new uf("CombinedTexture",{width:1536,height:1536},e,!0),s=i.getContext();i.hasAlpha=!0;const r=[["FRONT","BACK","RIGHT"],["LEFT","BOT","TOP"]];s.fillStyle="white",s.fillRect(0,0,512*3,512*2),s.font="150px Arial",s.textAlign="center",s.textBaseline="middle",s.fillStyle="black";for(let n=0;n<2;n++)for(let o=0;o<3;o++)s.fillText(r[n][o],(o+.5)*512,(n+.5)*512);return s.font="bold 120px Arial",s.fillStyle="red",s.fillText("X",.5*512,(2+.5)*512),s.fillStyle="green",s.fillText("Y",(1+.5)*512,(2+.5)*512),s.fillStyle="blue",s.fillText("Z",(2+.5)*512,(2+.5)*512),i.update(),i}static _normalizeAngle(e){return e-Math.PI*2*Math.floor((e+Math.PI)/(2*Math.PI))}static _shortestAngleDistance(e,t){const i=sl._normalizeAngle(e),r=sl._normalizeAngle(t)-i;return r>Math.PI?r-Math.PI*2:r<-Math.PI?r+Math.PI*2:r}static _animateCameraToPosition(e,t,i,s,r){const o=60*r,l=e.alpha+sl._shortestAngleDistance(e.alpha,t),c=e.beta+sl._shortestAngleDistance(e.beta,i),u=new He("alphaAnimation","alpha",60,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CONSTANT),f=[{frame:0,value:e.alpha},{frame:o,value:l}];u.setKeys(f);const p=new He("betaAnimation","beta",60,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CONSTANT),m=[{frame:0,value:e.beta},{frame:o,value:c}];p.setKeys(m);const _=new He("radiusAnimation","radius",60,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CONSTANT),d=[{frame:0,value:e.radius},{frame:o,value:s}];_.setKeys(d),e.animations=[u,p,_],e.getScene().beginAnimation(e,0,o,!1)}static createViewCube(e,t,i){const s=new ui(i);s.autoClear=!1,s.useRightHandedSystem=!0;const r=new yr("camera2",0,Math.PI/2,30,P.Zero(),s);r.upVector=new P(0,0,1),r.viewport=new Tc(.85,.85,.15,.15);const n=new b4("light",new P(0,1,0),s);n.intensity=1,n.groundColor=new Pe(1,1,1),n.specular=Pe.Black(),i.onResizeObservable.add(()=>{r.viewport=new Tc(.85,.85,.15,.15)}),e.afterRender=()=>{s.render(),r.alpha=t.alpha,r.beta=t.beta,r.radius=14,r.lowerAlphaLimit=null,r.lowerBetaLimit=null,r.upperBetaLimit=null,r.upperRadiusLimit=null};const o=2,l=.75,c=this.generateSPS(s,o,l);c.initParticles=()=>{this.initParticlePositions(c,o,l)},c.updateParticle=O=>(this.billboardLabelPlanes(O,r),O);const u=c.buildMesh(),f=sl._createCombinedTexture(s),p=this.createShaderMaterial(s);p.setTexture("textureSampler",f),p.alphaMode=Qt.ALPHA_ADD,u.material=p;const d=4*9,h=new Float32Array(u.getTotalVertices());for(let O=0;O<d;O++)h[O]=2;const x=new q(i,h,"particleID",!1,!1,1);u.setVerticesBuffer(x),c.initParticles(),c.setParticles(),c.setVisibilityBox(4),c.isVisibilityBoxLocked=!0,s.onPointerDown=function(O,R){const I=S(R);I&&E(I)},r.onViewMatrixChangedObservable.add(()=>{M(b()),c.setParticles()}),s.onPointerMove=function(O,R){T(O.offsetX,O.offsetY,R)};const A=r.viewport.x+r.viewport.width;return r.viewport.y+r.viewport.height,u.enablePointerMoveEvents=!0,ei._LastCreatedScene=Ar.scene,s;function S(O){if(O.faceId===-1)return;const R=c.pickedParticle(O);if(!R)return;let I=R.idx,N=O;for(;I<3||29<I;){const w=new Is(N.pickedPoint.add(N.ray.direction.multiplyByFloats(.001,.001,.001)),N.ray.direction,10);N=s.pickWithRay(w),I=c.pickedParticle(N).idx}return I}function E(O){const R=c.particles[O].position,I=R.x===0&&R.y===0?Math.PI/2:-Math.PI/2,N=Math.atan2(R.x,R.y)+I,w=Math.acos(R.z/Math.sqrt(R.x*R.x+R.y*R.y+R.z*R.z));if(N!==void 0&&w!==void 0){r.onViewMatrixChangedObservable.clear();const D=r.onViewMatrixChangedObservable.add(()=>{const Y=s.pick(s.pointerX,s.pointerY);T(s.pointerX,s.pointerY,Y),c.setParticles()});M(O),c.setParticles(),c.particles[O].color.addInPlace(new St(0,0,0,0));const k=.5;sl._animateCameraToPosition(t,N,w,t.radius,k),setTimeout(()=>{r.onViewMatrixChangedObservable.remove(D),r.onViewMatrixChangedObservable.add(()=>{M(b()),c.setParticles()}),c.particles[O].color.subtractInPlace(new St(0,0,0,0))},k*1e3)}}function b(){const O=[];for(let R=3;R<29;R++)O.push(P.Distance(r.position,c.particles[R].position));return O.indexOf(Math.min(...O))+3}function M(O){var I;const R=new St(.4,.4,.4,1);if(O&&O!==sl.prevDarkened){const N=(I=sl.particleColorMap.get(sl.prevDarkened))==null?void 0:I.subtract(R);N&&c.particles[sl.prevDarkened].color.addInPlace(N),sl.prevDarkened=O;const w=sl.particleColorMap.get(O).subtract(R);c.particles[O].color.subtractInPlace(w)}}function T(O,R,I){var w,D;const N=new St(.8,.8,1,.3);if(I.faceId===-1){const k=(w=sl.particleColorMap.get(sl.prevPick))==null?void 0:w.subtract(N);k&&c.particles[sl.prevPick].color.addInPlace(k),sl.prevPick=-1}if(O/i.getRenderWidth()<A&&R/i.getRenderHeight()<1-r.viewport.y){const k=S(I);if(k&&k!==sl.prevPick){const Y=(D=sl.particleColorMap.get(sl.prevPick))==null?void 0:D.subtract(N);Y&&c.particles[sl.prevPick].color.addInPlace(Y),sl.prevPick=k;const V=sl.particleColorMap.get(k).subtract(N);c.particles[k].color.subtractInPlace(V),c.setParticles()}}}}static billboardLabelPlanes(e,t){if(e.idx<=2){const i=t.position,s=e.position,r=i.subtract(s).normalize(),n=t.upVector.normalize(),o=P.Cross(n,r).normalize(),l=P.Cross(r,o).normalize();e.rotationQuaternion=Re.RotationQuaternionFromAxis(o,l,r)}}static initParticlePositions(e,t,i){const s=[[0,.6666666666666666,.3333333333333333,1],[.3333333333333333,.6666666666666666,.6666666666666666,1],[.6666666666666666,.6666666666666666,1,1],[0,.3333333333333333,.3333333333333333,.6666666666666666],[.3333333333333333,.3333333333333333,.6666666666666666,.6666666666666666],[.6666666666666666,.3333333333333333,1,.6666666666666666],[0,0,.3225806451612903,.3225806451612903],[.3225806451612903,0,.6451612903225806,.3225806451612903],[.6451612903225806,0,.9,.3225806451612903]],r=[[3.5,-2,-2],[-2,3.5,-2],[-2,-2,3.5]],n=[[0,-Math.PI/2,Math.PI/2],[Math.PI/2,0,0],[0,0,0]],o=[[-(t-i/2),-(t-i/2),-(t-i/2)],[-(t-i/2),-(t-i/2),t-i/2],[-(t-i/2),t-i/2,-(t-i/2)],[-(t-i/2),t-i/2,t-i/2],[t-i/2,-(t-i/2),-(t-i/2)],[t-i/2,-(t-i/2),t-i/2],[t-i/2,t-i/2,-(t-i/2)],[t-i/2,t-i/2,t-i/2]],l=[[-(t-i/2),-(t-i/2),0],[-(t-i/2),t-i/2,0],[t-i/2,-(t-i/2),0],[t-i/2,t-i/2,0],[-(t-i/2),0,-(t-i/2)],[t-i/2,0,-(t-i/2)],[-(t-i/2),0,t-i/2],[t-i/2,0,t-i/2],[0,-(t-i/2),-(t-i/2)],[0,t-i/2,-(t-i/2)],[0,-(t-i/2),t-i/2],[0,t-i/2,t-i/2]],c=[[0,Math.PI/2,0],[0,Math.PI/2,0],[0,Math.PI/2,0],[0,Math.PI/2,0],[0,0,Math.PI/2],[0,0,Math.PI/2],[0,0,Math.PI/2],[0,0,Math.PI/2],[0,0,0],[0,0,0],[0,0,0],[0,0,0]],u=[[0,-t,0],[0,t,0],[t,0,0],[-t,0,0],[0,0,-t],[0,0,t]],f=[[Math.PI/2,0,0],[-Math.PI/2,Math.PI,0],[0,Math.PI/2,Math.PI/2],[0,-Math.PI/2,-Math.PI/2],[0,Math.PI,Math.PI],[0,0,0]],p=[[-t,0,t],[t,0,t],[t,0,-t],[0,t,t],[0,-t,t],[0,t,-t],[-t,t,0],[t,t,0],[t,-t,0]],m=[[0,0,0],[0,0,0],[0,0,0],[0,0,Math.PI/2],[0,0,Math.PI/2],[0,0,Math.PI/2],[-Math.PI/2,0,0],[-Math.PI/2,0,0],[-Math.PI/2,0,0]],_=[new St(1,0,0,1),new St(0,1,0,1),new St(0,0,1,1)],d=[[.5,-2,-2],[-2,.5,-2],[-2,-2,.5]],h=[[0,0,Math.PI/2],[0,0,0],[-Math.PI/2,0,0]],x=[[3,-2,-2],[-2,3,-2],[-2,-2,3]],A=[[0,0,-Math.PI/2],[0,0,0],[-Math.PI/2,0,Math.PI]];for(let S=0;S<3;S++){const E=e.particles[S];E.scaling.set(2,2,2),E.position.set(...r[S]),E.rotation.set(...n[S]),E.uvs.set(...s[S+6])}for(let S=0;S<6;S++){const E=e.particles[S+3];E.position.set(...u[S]),E.rotation.set(...f[S]),E.uvs.set(...s[S]),this.particleColorMap.set(S+3,E.color.clone())}for(let S=0;S<8;S++){const E=e.particles[S+9];E.position.set(...o[S]);const b=new St(.7,.7,.7,1);E.color=b,this.particleColorMap.set(S+9,b.clone())}for(let S=0;S<12;S++){const E=e.particles[S+17];E.position.set(...l[S]),E.rotation.set(...c[S]);const b=new St(.8,.8,.8,1);E.color=b,this.particleColorMap.set(S+17,b.clone())}for(let S=0;S<9;S++){const E=e.particles[S+29];E.position.set(...p[S]),E.rotation.set(...m[S]);const b=new St(0,0,0,1);E.color=b,this.particleColorMap.set(S+29,b.clone())}for(let S=0;S<3;S++){const E=e.particles[S+38];E.position.set(...d[S]),E.rotation.set(...h[S]),E.color=_[S]}for(let S=0;S<3;S++){const E=e.particles[S+41];E.position.set(...x[S]),E.rotation.set(...A[S]),E.color=_[S]}}static generateSPS(e,t,i){const s=l3.CreateBox("cornerBase",{size:i},e),r=l3.CreateBox("edgeBase",{width:2*t-2*i,height:i,depth:i},e),n=l3.CreatePlane("plane",{size:2*t-2*i},e);n.flipFaces();const o=l3.CreateCylinder("cylinderBase",{height:4,diameterTop:.015,diameterBottom:.015},e),l=l3.CreateCylinder("coneBase",{height:1,diameterTop:0,diameterBottom:.6},e),c=l3.CreateCylinder("axisCylinderBase",{height:5,diameterTop:.3,diameterBottom:.3},e),u=new bbe("viewCubeSPS",e,{isPickable:!0});return u.addShape(n,3),u.addShape(n,6),u.addShape(s,8),u.addShape(r,12),u.addShape(o,9),u.addShape(c,3),u.addShape(l,3),s.dispose(),r.dispose(),n.dispose(),o.dispose(),l.dispose(),c.dispose(),u}static createShaderMaterial(e){Ls.ShadersStore.customVertexShader=`
        precision highp float;
        attribute vec3 position;
        attribute vec3 normal;
        attribute vec2 uv;
        attribute vec4 color;
        attribute float particleID;
        
        uniform mat4 world;
        uniform mat4 worldView;
        uniform mat4 worldViewProjection;
        
        varying vec2 vUV;
        varying vec4 vColor;
        varying float vParticleID;
        
        void main() {
            vUV = uv;
            vColor = color;
            vParticleID = particleID; // Pass the ID to fragment shader
            gl_Position = worldViewProjection * vec4(position, 1.0);
        }`,Ls.ShadersStore.customFragmentShader=`
        precision highp float;
        uniform sampler2D textureSampler;
        varying vec2 vUV;
        varying vec4 vColor;
        varying float vParticleID;
        
        void main() {
            if (vParticleID < 1.0) {  
                gl_FragColor = vColor;
            } else {
                vec4 texColor = texture2D(textureSampler, vUV);
                if (texColor.a < 0.1) discard;
                gl_FragColor = texColor * vColor;
            }
        }`;const t=new Fo("shaderMat",e,{vertex:"custom",fragment:"custom"},{attributes:["position","normal","uv","color","particleID"],uniforms:["world","worldView","worldViewProjection"],samplers:["textureSampler"]});return t.setColor3("emissiveColor",new Pe(1,1,1)),t}};mr(sl,"prevPick",-1),mr(sl,"prevDarkened",-1),mr(sl,"particleColorMap",new Map);let Nce=sl;const Oqe="data:application/octet-stream;base64,hhaHlvbWljZ7InZlcnNpb24iOjEsIndpZHRoIjoyNTYsImlycmFkaWFuY2UiOnsieCI6WzAuMTAzNzA5MTIwMjUzMDkyNzcsMC4xMDM3MDkxMjAyNTMwOTI3NywwLjEwMzcwOTEyMDI1MzA5Mjc3XSwieSI6WzAuMDE1MDA1Nzg1MDE5NTczNzU4LDAuMDE1MDA1Nzg1MDE5NTczNzU4LDAuMDE1MDA1Nzg1MDE5NTczNzU4XSwieiI6WzAuMDY0MDUyOTg5MjEzNDAyNjgsMC4wNjQwNTI5ODkyMTM0MDI2OCwwLjA2NDA1Mjk4OTIxMzQwMjY4XSwieHgiOlswLjUxODc1ODk1MDA5NzM5NiwwLjUxODc1ODk1MDA5NzM5NiwwLjUxODc1ODk1MDA5NzM5Nl0sInl5IjpbMC41MDQ2ODExNzUxMzkzNCwwLjUwNDY4MTE3NTEzOTM0LDAuNTA0NjgxMTc1MTM5MzRdLCJ6eiI6WzAuNTcxOTIxNDI4NTE3OTIxMiwwLjU3MTkyMTQyODUxNzkyMTIsMC41NzE5MjE0Mjg1MTc5MjEyXSwieXoiOlstMC4wMDIwMTM2MzA5MDMzNjM5NjU0LC0wLjAwMjAxMzYzMDkwMzM2Mzk2NTQsLTAuMDAyMDEzNjMwOTAzMzYzOTY1NF0sInp4IjpbMC4wMjk0OTcyNzQ4ODAzNjA5NDgsMC4wMjk0OTcyNzQ4ODAzNjA5NDgsMC4wMjk0OTcyNzQ4ODAzNjA5NDhdLCJ4eSI6WzAuMDEwMDExNTIyNzYwNjk3NzMyLDAuMDEwMDExNTIyNzYwNjk3NzMyLDAuMDEwMDExNTIyNzYwNjk3NzMyXX0sInNwZWN1bGFyIjp7Im1pcG1hcHMiOlt7Imxlbmd0aCI6MjQ3ODYsInBvc2l0aW9uIjowfSx7Imxlbmd0aCI6MjQ1MDksInBvc2l0aW9uIjoyNDc4Nn0seyJsZW5ndGgiOjE3MzAzLCJwb3NpdGlvbiI6NDkyOTV9LHsibGVuZ3RoIjoxMzYzMCwicG9zaXRpb24iOjY2NTk4fSx7Imxlbmd0aCI6MjE5NzQsInBvc2l0aW9uIjo4MDIyOH0seyJsZW5ndGgiOjI0MTU3LCJwb3NpdGlvbiI6MTAyMjAyfSx7Imxlbmd0aCI6ODk0OSwicG9zaXRpb24iOjEyNjM1OX0seyJsZW5ndGgiOjg4MjksInBvc2l0aW9uIjoxMzUzMDh9LHsibGVuZ3RoIjo0ODMxLCJwb3NpdGlvbiI6MTQ0MTM3fSx7Imxlbmd0aCI6NDM3NiwicG9zaXRpb24iOjE0ODk2OH0seyJsZW5ndGgiOjgzMzMsInBvc2l0aW9uIjoxNTMzNDR9LHsibGVuZ3RoIjo4NzIzLCJwb3NpdGlvbiI6MTYxNjc3fSx7Imxlbmd0aCI6MzY3MCwicG9zaXRpb24iOjE3MDQwMH0seyJsZW5ndGgiOjM2ODgsInBvc2l0aW9uIjoxNzQwNzB9LHsibGVuZ3RoIjoxOTMxLCJwb3NpdGlvbiI6MTc3NzU4fSx7Imxlbmd0aCI6MTY1MiwicG9zaXRpb24iOjE3OTY4OX0seyJsZW5ndGgiOjM0OTEsInBvc2l0aW9uIjoxODEzNDF9LHsibGVuZ3RoIjozNTQyLCJwb3NpdGlvbiI6MTg0ODMyfSx7Imxlbmd0aCI6MTU3MywicG9zaXRpb24iOjE4ODM3NH0seyJsZW5ndGgiOjE0ODcsInBvc2l0aW9uIjoxODk5NDd9LHsibGVuZ3RoIjo5NjcsInBvc2l0aW9uIjoxOTE0MzR9LHsibGVuZ3RoIjo3MjMsInBvc2l0aW9uIjoxOTI0MDF9LHsibGVuZ3RoIjoxNTM2LCJwb3NpdGlvbiI6MTkzMTI0fSx7Imxlbmd0aCI6MTUyNiwicG9zaXRpb24iOjE5NDY2MH0seyJsZW5ndGgiOjY5MiwicG9zaXRpb24iOjE5NjE4Nn0seyJsZW5ndGgiOjYxOCwicG9zaXRpb24iOjE5Njg3OH0seyJsZW5ndGgiOjUwNiwicG9zaXRpb24iOjE5NzQ5Nn0seyJsZW5ndGgiOjM0NiwicG9zaXRpb24iOjE5ODAwMn0seyJsZW5ndGgiOjYzNywicG9zaXRpb24iOjE5ODM0OH0seyJsZW5ndGgiOjY1NSwicG9zaXRpb24iOjE5ODk4NX0seyJsZW5ndGgiOjI3NCwicG9zaXRpb24iOjE5OTY0MH0seyJsZW5ndGgiOjI0MiwicG9zaXRpb24iOjE5OTkxNH0seyJsZW5ndGgiOjI0NiwicG9zaXRpb24iOjIwMDE1Nn0seyJsZW5ndGgiOjE4MiwicG9zaXRp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";class Rqe{static init(e,t={zUp:!0,showViewCube:!0}){if(!Ar.scene)return console.error("SceneBuilder Error: AdomStatics.scene is null."),Promise.reject(new Error("Scene is undefined in AdomStatics."));const i=Ar.scene,{zUp:s,showViewCube:r,environmentUrl:n}=t;return new Promise((o,l)=>{try{const c=new Si("ViewerRoot",i),u=s?new P(0,0,1):new P(0,1,0),f=new b4("light",u,i);f.intensity=.2,f.parent=c,f.diffuse=new Pe(1,1,1),f.groundColor=new Pe(.65,.65,.65);const p=s?new P(600,-300,1500):new P(600,1500,-300),m=new P(0,0,0).subtract(p).normalize(),_=new $o("spotLight",p,m,Math.PI*.7,50,i);_.intensity=2e6,_.parent=c,Ar.spotLight=_;const d=new Bi(8192,_);if(i.shadowsEnabled=!0,d.usePercentageCloserFiltering=!0,d.filteringQuality=Bi.QUALITY_HIGH,d.bias=2e-4/1e3,d.normalBias=.08/1e3,d.darkness=-1,d.forceBackFacesOnly=!0,d.frustumEdgeFalloff=0,Ar.shadowGenerator=d,n)i.environmentTexture=ko.CreateFromPrefilteredData(n,i);else{const A=atob(Oqe.split(",")[1]),S=new Uint8Array(A.length);for(let b=0;b<A.length;b++)S[b]=A.charCodeAt(b);const E=URL.createObjectURL(new Blob([S],{type:"application/octet-stream"}));i.environmentTexture=new ko(E,i,null,!1,null,null,null,void 0,!0,".env")}const h=i.createDefaultEnvironment({createGround:!1,createSkybox:!0,skyboxSize:5e3,skyboxColor:new Pe(.75,.75,.75),enableGroundMirror:!1});i.environmentIntensity=1.5,i.clearColor=new St(.75,.75,.75,1),h!=null&&h.skybox&&(h.skybox.parent=c),r&&Ar.camera&&Nce.createViewCube(i,Ar.camera,e),i.onPointerObservable.add(()=>{});const x=e.getRenderingCanvas();x&&x.addEventListener("contextmenu",A=>A.preventDefault()),o()}catch(c){console.error("SceneBuilder Error during setup:",c),l(c instanceof Error?c:new Error(String(c)))}})}}const Dqe="data:image/gif;base64,R0lGODlhgAc4BPf/AAAhSgC9tYzW1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJBAD/ACwAAAAAgAc4BAAI/QD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+D9w4sfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnkkkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26v3qq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqvuuuy26+678MYr77z01mvvvfjmq+++/Pbr778AByzwwAQXbPDBCCes8MIMN+zwwxBHLPHEFFds8cUYZ6zxxhx37PHHIIcs8sgkl2zyySinrPLKLLfs8sswxyzzzDTXbPPNOOes88489+zzz0AHLfTQRBdt9NFIJ6300kw37fTTUEct9dRUV2311VhnrfXWXHft9ddghy322GSXbfbZaKet9tpst+3223DHLffEANQNQAB4/ud9d95878133nMHPrfdhP9tuN6HB+B34n8L7vjXhEe+eN+MV6645Zcf/vjmTkvuOeagMz754aM3zvnpQHuueuisi8566XyjLjvNqtfeOuaw36777LyjXPvvpOsu/PCg9248x78nb3nuuRO/vPDHRy9x8tSHzrzzzTufuPTcH0x99dr/DXv2mRvevN8CBCAAAAKs3z7eo3cvf7/ffx/+7eTDD3r677vf/v8A7N/6Yje/AsqrfvW7nwJvxz/2BfCBEASgA+9mwAquC4EJNN8Cz0c8/0UwgA78YADx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xowaN3Ls6PEjyJAiR5IsafIkypQqV7Js6fIlzJgyZ9KsafMmzpw6d/Ls6fMn0KBChxItavQo0qT9SpcybWqyItSoUqdSrWr1KtasWrdy7er1a8WIFMWSLWv2LMOKTteybev2Ldy4cufSrWv3Lt68evfy7ev3L+CiYAcTLmz4MOLBZicmZIz28ULHjSFLVBv4MubMmjdz7uz5M+jQokeTLm369NPEqlezbu0aKuWxsWNLPli7oUTbllHz7u37N/DgwocTL278OPLkN18zb+78+dSztwlOD1C97PW0D7Pnpr5bOfjw4seTL2/+PPr06te7he7+PXzDs7Er5E59Pu2BUNnz7+//P4ABCjgggQUaaFN8CSq4YFX4kXWdffc96GBlFh14IYYZarghhx16+CGIOTE4IokJov4VYX0pTuggit59FyKMMco4I4012ngjjneVuCOPzVGIX4sC1RYkZVHleCSSSSq5JJNNOqlhj1FKqdqJP1o5W3ZSPbkll116+SWYYYrZ3pRlmvnVlRARiaV2uOm235hxyjknnXXaeeeSZ+q5J1ZpQramWIC++SKehRp6KKKJKrqoaXw6+ihsVfqJ4pqC6mcko5lquimnnXr6qYiQisrnY5YK2WagVkqmJaituvoqrLHKOueoter5p58Sqjkpq7P6+iuwwQo77H+2Gltmkbnqmh9CEPZKLLTRSjsttdUCdiy2UyYrnbLbqUmVteGKOy655ZpbU7bp9shst6iyCO658f7KOy+99UarLr4lsqmsYxDOZ5W9AQs8MMEF15kvwiPuu+KVQQ5ZlcERSzwxxRV7mDDGCv67WLvWBQqwxSGLPDLJJRuXMcrxbSxpu85CbDLMMcs8M816pXzzeytz23GzV9X8M9BBCz30Tjgb/RyLPJt6qc9EO/001FFL/c/RVfuYNMf6LTvZYlhN/TXYYYsdsdVlv/bj0t0x3LPXY7v9NtxxQ2s23a2lmTaFW8m9N999+71o3YGvlivezVKk99+JK744400K/nhiLePaNeKNW3455pljCDnnh/F86tZpe6U56aWbfvp4nate2OeEj4467LHLPntoq9uuWOt5g0U77/69+/47XbcLD1buWA4GPPLJK7/8T8M771XxJxbGPPXVW399as9rv1X0hxuGPfjhi0/99uVz1X1jiY2/Pvvto24+/NyjL+Rq7tt/P/5+x7+//K27lj8AAyjAqPGvgP27W3MGqMAFMtBkBnxgV4znngZSsIIWFBgEM8i6hpTogh78IAirpcER4iuEJjwhCmFFwhViK4UufCEMEcXCGdYqhja8IQ7BRMMd8imHPvwhEHPEwyGaKYhGPCISN0TEJUYpiU58IhT5w8QpdjCKVrwiFo9DxS0uKIte/CIYS8PFMcInjGY8IxqvRcY1OieNbnwjHOHCxjm+Jo52vCMeBUPHPf0iJo9+/CMgEcTHQRImkIY8JCKzR8hFciWRjnwkJKnGyElqJZKWvGQeKanJpmGyk5484yZDialPkrKUVxQlKk2pylUiEZWiZCUsY3lDV4ZSlra8pQlpuUlc8rKXFNTlJH0pzGECEJiMJCYykzk+Yy5Smc58JvOYSUhoUrOavZPmHq2pzW2eDpt05CY4w9k4b85RnOY8597IyUZ0srOdYVPnGN0pz3k6DZ5cpCc+8zkze25Rn/78p8j4yUSAErSgBhPoEg2q0IXOC6FEZChEIyouh+5Qoha96NwoOkOMcrSjstLoRj0q0pF2CqQkJClKU6ook45QpS59qZ1YCkGY/dK0pmGS6QNtqtOdOgmnBeQpUIOKI5/uT6hGPSqMiBo/pDK1qVBS6vacKtWpDgiqUaUqVrO6Hqs6T6te/Sp5uDo8sJK1rFoU6+rMqta1/gataWUrXOM6GrdyTq52vStn6Ao5vPK1r3/Ra+D8KtjB6giwdCMsYhP7FsOWTbGOfexSGGs1yFK2skORrNEsq9nN8gSzKeMsaENLE8+iTLSmPS1LSJsw1LK2tSRRLcJcK9vZcgS26qItbnNr2xbmtrey3e2xfCvc1gK3hsM97mmLCynkMle0yn1Uc6PL2efuSbrW1Sx1i3jd7VI2u1LiLngf690mhre8iB3vjsyrXsL9ondE632vYNurIPjSt6/yLWN982vX+75Hv/6NK3+f898BszXAzCEwgtVq4NYkuMFlXbBqHCxhsEL4MBO+sFcrXEgMcxirGv5Kh0NM1Q83UsQmdiqJs3LiFTc1xSBjMYyN6uKpxLjGMp4xoWys45rieMc+5qmLfyxknZJ4yEbmcYWPrGSaLnjJTn4pf58sZZfKd8pWTil6r6xlkmZ3y17mcnG/LGaRAnfMZvaoas+s5o56ds1uxqhk3yzni+p1zna2qFvvrGeJWnXPfo4oUf8saECzdNCGhqhGD61oRAt00Y5eqD0fLWlIY3PSlqa0Li+taUzXctOeVuguPy1qUP03c9SmJvU3T61qTlNx1a5m9EBfLWuGPnTWtoZ1S2+taz7ndNe+pjP8fi1sNnd12MZGs+qOrWwwH3bZzlZpZp8tbSSXcNrWBrKorq3tFk9p297+an+/Le74cnLc5j43utOt7nWzu93ufje84y3vedO73va+N77zre9987vf/v43wAMu8IETvOAGPzjCE67whTO84Q5/OMQjLvGJU7ziFr84xjOu8Y1zvOMe/zjIQy7ykZO85CY/OcpTrvKVs7zlLn85zGMu85nTvOY2vznOc67znfO85z7/OdCDLvShE73oRj860pOu9KUzvelOfzrUoy71qVO96la/OtazrvWt/nO9617/OtjDLvaxk73sZj872tOu9rWzve1ufzvc4y73udO97na/O97zrve9873vfv874AMv+METvvCGPzziE6/4xTO+8Y5/POQjL/nJU77ylr885jOv+c1zvvOe/zzoQy/60ZO+9KY/PepTr/rVs771rn897GMv+9nTvva2vz3uc6/73fO+977/PfCDL/zhE7/4xj8+8pOv/OUzv/nOfz70oy/96VO/+ta/Pvazr/3tc7/73v8++MMv/vGTv/zmPz/606/+9bO//e5/P/zjL//507/+9r8//vOv//3zv//+/z8ABqAADiABFqABHiACJqACLiADNqADPiAERqAEVU4gBVagBV4gBmagBm4gB3agB34gCIagCI4gCZagCZ4gCqagCq4gC7agC74gDMagDM4gDdagDd4gDuagDu4gD/agD/4gEAahEA4hERahER4hEuZRQAAAIfkECQQA/wAsrQJmACICMgMACP0A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGiRYIAMgbYyLGjxwAAOobkeLGkyZMoU6pcybKly5cwY8qcSTGjTY0fc+r8ODJnSJpAgwodSrSo0aNIkyK8ybQnyJ1PoUr16VGp1atYs2rdytVq069Tw4Z1KnZj17No06pdy3boV7Bl48qFStZs27t48+rdq/Xt27J1Rc4dvJOv4cOIEytm6Nfv4MAeIcuVLHWx5cuYMyttzJmw58+ENYseTbr0RM6dQQOWSjmuAKimY8uebRk1arpxW3NsrXsjWQACgoMM/lon7ePIk2+1bVswVdXPPb8WAJx4devEqQvv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K7ev37+AAwO+S7jwXZ57+QpezLix48ckDUueTDexZciYM2ve7BdnXsqgP4vdiXavz8ScU6tezdqlYdGgz8b2bNmyz9a4c+venXG2799iawu/zbu48eODgdPNC1s22eY5bQu/iry69etKlWvf7nT68J/Y/cOLH4+S+0bzwD97X7+WvPv38Geirzv/vOS87NfH388fO/2yokFXX3o0SZefWv0lqCBrUgnom4MDTrXTgewtaOGFi+EV4YaUfUchdRiGKOJXHHIIIWjenZaWit6N6OKLR012IoGzfTYjVB9axeJ0MPboI0slFubgjQAWlmNiO6oFwI9MNmlRfbARWWSQNCHW05HsLenkllwiROWXEWJZ2447dmkml2CmOaCYR2p55psvmidliXMuh+SKbCLpJpx8KrhchHVK+GWWbCYJwJ59JkrefYCqGWBleYp5qKKUiifolK+pGdpzHyapZH6HIlrpqLl5pOmpTxEGnaSRhjr9KamwrmZqkIHah+pdeXpKoauixuprY+jVeqtyukZ6ZZa8/qosY7M6N+x8whKGp7EG2pbsstjK1Wyqz3b7nE1j5ljsp3ry2mu26GpFVaaqyultd9ONW2i516ZrL1Y/ReutvtASSu1w5r5678BGbYuqjYy+2+m/YwYsMMEQw/TTu07VyS9w81bbpsMPR+wxSlYdtt3Fo4lccYfGjivvsUpyfO7HMFcU8m8kP9tcoCv/m/OKLncc888RpTVyo7feaBrDHsbbs89AN63QzO5SXPN/8N6J9MZLv+z01mpRvOHU3Na03s7kttly1lpv/fNenmno9Z8mgool2dainbbaHv4r2eDbfEs199VK23033gOz3S1zcL+tcYrUyiu4q4Sv3TWdm/btt84H0q3j46FG/nFibj8IZbCGAc7y2Kjny3nnnhNsmaOjs9tudHKzumvDqzPdurK2WX5y7DndqPnppqeYO+u7Y1ub78xXraO4Cxd6POTJ87787G2/fbN5SRef6/TUVw/rdFQn7DXYl189/Nzghy8+pd6R3rxy3i8+beqbt4/8+32WLbT58wsT8cJlttuBSn/14t+bFve7r1kOQn97nvdyhkBzKXCB7NkX9jQFuOGRTWUVTOAFnXQgoskPKhu0FVm6Vz+GhdCCIyRh6gIoOt/c72gZa6HqXijCGP3CiELf+hL60mPAfGEOh1jjoft86CL7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rVYATuGCles0rd27ePPq3ZvQrd+/G8EKHkz3Kd/DiBMrXpwScFK2a9sOnky5KePLmDNrRgwYsuOtlQMUDj13s+nTqFMD/czRM2uagkdPlk1ate3buHM7fB2Z90fSwIPX1U28uHHMvh27xqmTdmXnwpnSPU69uvWxSJcn//sVenTR3/2nXx9PvnzMtq61b/8dvn3s0Objy59fcb39md/zx40+mr7////dJ4B6voGn34EIWgbgggweJyB6br0nIXDeJbhfgxhmeNqDfxHYmn4VdheadyEqqOGJKOrF4YPBldgchSM+N1uKNNYo1kweruiVhZS5yONzANgo5JBDKZVjh9z9KJ2STDYHwJNBEinllCvdd2RHV9bU5JYwjgjll1SGKeZFnbmVJXNdzubei1x29+WbY8Yp50KvnflajCK2med+fFL45p9RzilonNvZ6VePeoLIJKCMBjroo0PqmNyiEyaaX6OYOgrpphlKml1Salrqo56ZlsrpqQx6eqelafI4/WqpsGqK6qzj4cihnXsKV5hso7LZp4G/thhrrLQWa92nqrJHGKu+MhvbsNDKauy0qW2VnrWHKrokq73qGu230lIrLmO+XftZs8Ay2y2e3oIL7rjwXpYsaNo666y7+D4Z7758zauVvej6+CqI+RYcLr8IY+XvjvwBvOyWBkd8cMIUR4XlwoEBvG66pG3spMQRVyzyVFypym7D27bocFMgt6zvyDALhXFH9ea6MssHuqzzyzH3fB5vhmr08M0pIwrxzkj7rHRLM3fcas6uIoj01FAubbVJfgVNM8pEz0Uq1WBPfPXYDX0WNKVP4/yjxx+HHTbZcEeUrNekhqprom7+51113Hxn9BhrwaLbNdF6F75334gPtCLHJ3MNtdpGX2r45GInrjSLgcs4uLqUd1655TDTpLXQEG9eaXiepw462duZfnrkoqYuO8+r+1ygw2yzzTh/s/f+ee3wAv644E7XrHmCvidPO/AUA4b3mpdyrrzyzFccIeQ2a4w28tN3v3z14/4Le+YqN6k7796n/zv4kAZw0/bDpy0/6urXz7640Ocf/d241+//4febFd1ct7Lzte1/CAygALtGm3U1cH4EQ6AEAajAQVnIOQIbYPkYOMEOgqmCj2qc3Qg4Pql58IQfBKGcSDhC5JkPhTCkoAqp5LgNupCAMcxhCmc4JeP9QdBxITIg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/VSeBVrE89lDDVqZHdo+Ldqk7dmcVdqmdcqIddqofdp+ldqqXVqBtdqsfb151dqu3doS9NqwFdosFNuyLbnOM9u0FbupU9u2XdtLdNu4PVu4ldu6rcO6xdu3nbS85duxBbW+BdyvFbTAJdyr9bHCRVzDfa/EZdyp/anGhVytfNzIpVzHbVqkysVcr5vHzOVczf2izgVdtPyg0CVdNPSg0kVdjdWf1GVdiP2d1oXdhZWb2KVdadSY2sVdeUWW3OVdHzSU3gVeZ03L4CVeNzO84kVeirvY5GVeB4TV5t3XgAAAIfkECQQA/wAsQQICAaECAwIACP0A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx4oAQoocSTLkx5MoU6pcybKly5cwY8qcSbPmxpI4c+rcKdKmz59AgwodSrSo0aNAeSpdyjQn0qdQo0qdSrWqVaFNs2rd2vOq169gw4odSxYl17Noz5Zdy7at27dwZaadS1dt3Lt48+rdK7au379c+QoeTLiw4Y6AEyveerix48eQ8y6eTLlp5MuYM2seWrmz56WbQ4seTdri59OoeZZezbr15tSwY+N0Tbu27biyc+seebu3799QdwsfDry48eMvhytXjry58+cSl0tfDr269erTs0u/zr17be3g/ad7H08+c/jz4surX88Xvfvs7OPLL/u+Pvz5+PNHtc//vv7/ANrU34D+BWjggWYRqGB6CDboIEgLRsjggxRWeJCEGBZo4YYNZuihhhyGiN+HJIIo4onklajidii26N2KMGYVwIw0zviXizg+F+OOJdXo449A0mhXjkT6xuOOQSYZAABK/phVkVDSdiSMTVYZJJNKghbllqFNuWKNWIJpZZZXCqkal2hC5mWJYy5ZZZhtOqlTmnQWtiaJcYqZ555LOlXnn3jd6eGbfBKa52yAJsqWoIMW6iOcjrrZJKKKVvoVoxhGqummffJm6adTYZopp6RG6imoqBolqoRkOgr9J6RAwmpjnKemaqtPq0ZoJayy7rppr4+adOuwcuW64K98AltqpwAQ6yxLxh776LKm+irklcI+qy1i0RK4rLLUTorttuRi1K2C4SZL67pylutuROd6my646Yob7Lv4LhTvgIZO2ya91obbbL4EE7Rvf/+WyW6SAAtccMEHI1yvvQyP2fCuD78bscTXujqxxQl3PGPG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W+xfHzvLtFF2r5lta2dfBiPRRu6091ttJF8b29n91nazg2yhb4M73NsG8kfKLd1zo/ebIVl3d9sN3hOOJN7lnXd1cUSye8s73yGpDFL6jd9/j2rg7y14aQ4e4IR7ZuELbnivHg7xiCNm4iCu+HUujvGMz2XjMu54XD7e45CjZ+QkL/lWTq7klGdl5VNuuX5evuWYZ2zmZa55T27+55zbZOeH7rm9fw70oKt76JIuOrmPzumkZ2TpvG66sJ8+66iLeurDrrqbr471qG+93EX3erx7HvZ+t5zsBy/52R+ecbVPvOFt33jB4T7yds/95dO2+82Lnfefl5rvRw/036eOYcFvPb6FJ7tyEd/20S5+7oJ1PN/BGnnBx5Tyi34H6OUvb0zNdx6OZPR86BvrQ9GXfvT/M33qlYg81bd+9XtzfezHuDbZ155rP7N97tXGMd33Pi+g833w7Zos4RefIbkzfvLXSiflN18oZXJ+9KcqI+lXn6f8s372R/Mf7Xc/OxT0fvj3Zynxl3+CijF/+rmpcvW3f3pGd/+fAwIAIfkECQQA/wAsSQIgAVsC8wEACP0A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLFjQwAgQ4ocSbIkSI8oU6pcybKly5cwY8qcSbOmQpM4c+o0abOnz59AgwodSrSoUYE7kypdGvKo06dQo0qdSrUqUqZYsya1yrWr169gwz7VSrbsVrFo06pdy7at2bdwd7adS7eu3bst4+rdixOv37+AA9/lS7hwScGIEyteLNSw48dNGUueTLkyRciYM1vezLkz48ygQXseTbq02NCoQ5tezbr10NSwUbueTbs2yti4Zdvezbt3wtzAU/seTnx28ONlAyhfzrxv8efQKyOfrpS59evXSUbfzt0v9e84/bGLH988cvfz6MOCXy+SvPv35tPLn++UvX3rAMTnH7+fPAD6AAb4k333vdccfP4JqOCCLBFYoH4GRpgdgxRWeJGD7EmIXX/8+fefhSCG+BuG62loookipigiiRlueOKL+AWg4owLsliihBzCaGB+NPaYno036nhiju75aGR0QAYp5IEISnjkk7wlqeRyRLrY4ZLWQamla1JOCeGXYGKp3JZketall2KaWCWTy5XpJmVnopmmmmyK9+adicUJ3pxN8onnn4PpuSefEa75IqCIsiXolBwSaSih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SbSo0aNGhSoNirSp06dQaS6dijKAVatDo2rdyrUo1a8Yr4q92rWs2bMjwaoFMLatVbRw48pFuFat27tz8+otWxfs3b8B9goe7LWv37Fs3SYOTLix45eGD/9dfDXx48uYP0a2C7gz48ygQyvcLNnzXbaiU6v+R7q06b+rYz9u7fr1adm499KuHYCy7be5g6PdzVssZd94hSvfSrz4b7fLoztt7vx5W+nYiVL/ar13WwEB/QQAAJ81u/mZ27l3945VgPv34M/Lh5yequLf8POPn8+fZH31gCE3Vn4ECtDfgR79B+B64RX4XnkIRviQggt25yCBEmbIEIX22YbceBfCp+GIB3FYYWWmhYghiSya2CGDKq7IooYuTmXdYgSC6CCEMyJYo40wxihjj/39COR6Qg5JpHxGHnljkvktyV+TLyLmGZRRSnkelU62JeBVWIqoZXZcdolfmO+NKV2ZZt43IJppqqkcm22mWKCOIco5J51KIXkhng7qmRufS53WWYyAZinoaoQW+hplcIq5qGqN9vlbYpG+99mkoFVqqXWZxslpZp5++lyo7o3aaalB+Sn9ZKKpqnoZq0JNBhiceG4q62C0ttqZb2zpB+eujfXqK6io6krsXMbWiiyqywrW7LFnhqpstMNNC5SrmfKI7VnabmuocWLliGVl32Ybrk3cRmrcRelqta64z0YKrEbxNjUvvdVm6mVK+Wq3700WWusee73VFPBOAxNcL6ruJRaWlwv/1DC741qJKqxsfThWxfRdrJJnyO0IsW0gmyQyxg/DByt8Vv0Jnmkp+7dyTQXL7K+XitUM0s0s9xtiokQLi7LPHQGNc8sQE/gc0hUpPXLGWIEJZ4OvzkxuclBPKHVK7Sb58oWPAtf1hl+DnXPTMv92NtppV8U0204//XaJcf6rXXbMUGJtsslWAna3QXnr7aZbdAtp9+ACFW74qTHy3a3WrzHeuOMaBRlib2wH2B5ZjGMu96WSF1j62FnfZbSBd4s+OtXfme531ipuPfuD19bseubdYaope4mLR3nppp+9O+8Mqh78weXGaPzxGSWPMPHCWkv9hVBDj7yttoWKOo5/R8y67tpPLH3zy2saJtLlR38++unf7nzK7btP8mvpPximt/nWb76HhxqailA3rIr5z37r8U3+oAQokB3wfwyCVP4IGKiFPRCC52saBaFkwQte5H1v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uWseGWDBFpI7NjAkiWbadpJgFi41Ksln69KSiMZuMPloxjKTnNYoNvlq8paTtwZwPAkXpPWTesEhQplVxFGUobEZSBlw50iSAQEAIfkECQQA/wAsRQIHAUcCYQEACP0A/wkcSLCgwYMIEypcyLChw4cQI0oUCKCixYsYL07cyLGjx48gQ4ocSbKkyZMoU6pcyRJkxpcwY2psSbOmzZs4c+rcybOnT44ygwoN+rOo0aNIkypdytTn0KdQZTadSrWq1atYs46MyrXrS61gw4odS7YsSq9o01o0y7at27dwmaqdSzeu3bt48+qNSLdv372AAwserNWv4b+EEytezJjl4cd+G0ueTLkyQsiYI1vezLlz3sygEXseTbq01dCoLQZYzbp1a5imY8uevTM1aNe4c7/GSLu3798hbWd+rbs47pnAkytfXlA4ZOPQoa9lTr36bOePowcAoL14Revg/cNbxm64u3nu3gGIX89eMHm/5onHP96+vv237/vOd41+P2v19wUoIFb56feff/0hOOCCDCZVIF3S+adggxRWeNODc3WXoHcStmbhhyCehKFaHWroX4gopgjUiGmVGN+G0QGo4ow0HsQiibnBKN9+OhpX44813thihz3GuKNuQCaJopBouejkgcUpKSWFTHr15GpF8ijflFwGWKWVRs6XJYKrdWnmel92leOaWuImgITcnSkndWmqCed+AgDwpp55vjnfnID+VqedVxbXZwACJKroonx2F+ijsg3KVaHGLWrppYk2Ch2knHom6aSUuonpqKP2GGenqFL2KVTGjan9HZ+k9nkprIl6l+qti60a1atHbmdorMDOGiWuxAamK6tPwhjssrTWmlux0OJ1LLJX9jfrssz66WG03OI37VChsobtuJji1u25Zn0Lrm6u/kruu7K6hu68YKm7Lq+9/gdvsM1mqm2Z9AZclb1ChYvovgibK/DCShFccLgII6ynvAxXXJTDQTmpbMQSb2vxx7VhHFOEeHIccX8gp4yTyDK9qB2m/Zo8qscq15wSyy2HCmzMMiuKss1Am4Rzzi5a23PCrAWt9FZDw9SmbtjyLDPNS1c9UdMjc2giuVIzyrW2VofNF9ZOFwovrV3LCmzSYrfNENllX3n0zjuz7fbdBv7B/RKZuc09dQB4B06Q3hnh+7LXfiNeKsCC4004RjonTvfMjDfe9uOQmy15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wiF8qB8iwiNEwj47+a4kZMImLMLHccIolEIgpLkptMIrpELLwsIt5MJ8cq8uBMMwnAxNE8MyNENDMqMzVMM1rL+7Y0NMCggAIfkECQQA/wAs9AD8AH0FyAEACP0A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMXAahcibKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrRoypVIkypdqtKo06dQo0qdSrWq1atYs2rdyrWrV49Mw4od2/Sr2bNo06pdy7at27dw48p9S7auXaZz8+rdy7ev37+AAwseTHjg3cOIkxZezLix48eQI0ueTJlq4suYy1bezLmz58+gQ4sejTWz6cykU6tezbq169ewG5+efTq27du4c+vezbv3RtrAZ/seTry48ePIk+cNzpy28ufQo0ufTr36x+bYgVvfzr279+/g/VVnH689vPnz6NOrX7+VvPvg7OPLn0+/vv3f7/PDv8+/v///AFan34DNBWjggQgmqKBnBDZY4IIQRijhhBR+5eCFD1ao4YYcdujhSxiGiN2HJJZo4okoEiTiiiOm6OKLMMZoH4s0tijjjTjmqONxNfZo445ABinkkJ35aOSPRCap5JJMwnXkk9k1KeWUVFYZFZRYImnlllx26SVJWYap5ZdklmnmmQaJqeaYaLbp5ptErilnlHDWaeedKc6pJ5149unnnwnuKSibgBZq6KHfDaoooYg26uijvi0qKaOQVmrppaFNqimlmHbq6aeDbSpqhqCWauqpco2qKqmotur96qtXrSorq7DWauutO82qK6249urrryPtKixzwBZr7LEVDassscg26+yzy0bL7LPUVlurtNhOa+223GKa7bf7dSvuuICCa2645KarrpnntovuuvDG26S79JYn7734AlnvvsKJh1i+AAdsFL8Eo5aptgInrLBMBTd8WZH5LSzxxGA6bPFhlIVI8cYcW3Txx3dB1mPHJJecEMgo1yXbkSa3bHLKMItVmJgu1yxxzDgvFaqcNvcMcM5AIwWYoj4XrW7QSGu216RGN81t0kkvLarTVDsLNdJ6yVr11r9eHXVcwnIt9rVeY03XsGOnjWrZZrclrdpwe8p222p9G/fdkP7OTbdZ5+Lt96F6790VvX8X3mfgQZ/Fr+GMv4l44l4V3Pjk7D4O9OAOU645l5Zf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tqzZolTTqo16tq3bt3Djyp1Lt67du3jz6m25tq/fmXsDCx5MuLDhw4gTK17MOOffx5BhNp5MubLly5gza97MufPAyKAjex5NurTp06hTq15tOrTr0HoBs55Nu7bt27hz6176ujfsulN3Cx9OvLjx48hX+17+O+7a5NCjS59Ovbp1psyzu4b7+Lr37+D9w4sfP167+e1nm5Nfz769+/fwE5+fj55s7/j48+vfz7+/UfoAqgdWdv4VaOCBCCaoYEIBNgiaWOctKOGEFFZooXEOZijagPRd6OGHIIYoImIalrhhVw6OqOKKLLboolUmxtgdVya+aOONOOao40cy9jhjVj3uKOSQRBZpo49I/qVVkkY26eSTUO6X5JR9AUlllFhmqeWWxVHp5XNXfSkZl2SWaeaZl4mpJlUwrlkVmnDGKeec3LlpJ01P3TkmnXz26eef/+kpqE1NDbonoIgmquiiIBnqaKGOHsropJRWaqlAkT7KW6aEXurpp6CayWmkm47aaaiopqoqjqaSmv1Uq3iuKuustFIIq6tH3VpTrbz26qt7umaKVLBs/WrsscgeR6ywgS67a7LQRivtac4yS1S1bE6r7bbcyoctrkJ9m1a35JZrrnPiggtUumqd6+678GLFrrXrzjtuvPjmq69P9tLLb7/37ivwwASHBDCnQR0ccMEMN+ywQwoj/FPE2T5s8cUPUywxVBoXi/HHIOfb8cY7jexxyCinvK3J/jrGcqwqxyzzry+3fFPNss2s886p4mwzXz6fyvPQRCsa9M8rHS1p0Uw3HafSSKcE9ZtOV231llOrC7TSV3ftdZNZR33S1F+XbfaNYZPMUtZnt+02iGmPejPZb9dtd4Jx/svtEtt39+13fnmbujfffxdueHiBt7o11Ic37jh1iQu+NuGPV275bpErnnTYl6MLUwCghx5A56SPlDmsm1NeOopUie7666OvLrtEp6OuUtqzW9kX7LwD4HruwB9U+6234x58qY/xrvzrVB+/+vC6Sm2882i9tvz1oftOfefQR49S3NuHuxz25IcugADhH959sN9Pn37J2pUfgO/Xn4/++32vz75JeePv8nnyWx797Hc+/7lNf/srSf8MODn6BBB7BLQfA7+GQGLxD3wTbF+DAkg/5UWQgBl0WgUtqMAFhlAkJnpg/T4owRPybITLKiEGXcijGKkQdgNkYQtp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drZRy9pmW1vb3/0Gd7hz6Vt1Qlnc50Z3us/Y4WgVWd3vhne8Z7bIcntb3vfGd76d16uDvVnf/wZ4wJULrcfaW+AHR3jCE73cfptb4Q+HeMQty/B6+1riF8d4xmuNmYJbXOMfB3nIo5zkMhtb5CdHecq9OJWSk1rlL4c5yg3WclbH3OY3z3g8aU5rnPfc5zmn8s55/XOiF/3hOvmswY2+dKafm2dC53TTpT71eJM06R6neta1nmyZ2FbpWwd72HVdU6gTW+xnRzvXseJ1rKfd7W8PdUYM+3W4193ukb4q201+d773/dNqeS3d/T54wu/5vMMVfOEVv3hoE5fxj4f8ux0fecpXPtuTf7d85jWPbHdv3vOfL3TnQT960q/a36VHferHLHrVt971TT7962U/+x87nPa3xz2QE5973vc+xLv3ffCFz+C2D9/4x0ewy5G/fOYnuObNh37098tz6Vff+vQ1+/W1v/1ln5b73we/82ccfvKXH8MzN3/61Q9iq6/f/e9fceBIEhAAIfkECQQA/wAsqgBJAfsFpgEACP0A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZAAcurMebOnz59AgwodSrSo0aNIkypdyrSp06dQo0oVuLOqzqlYs2rdyrWr169gw4odS7as2bM2raq9irat27dw48qdS7eu3bt4845dy5et3r+AAwseTLiw4cOIEytm2LcxgMWQI0ueTLmy5cuYM+t1zPmx5s+gQ4seTbq06dOTO6tGzbq169ewY8ueTRuj6tuea+vezbu379/Ag2vFTTy38OPIkytfzrx58uLQnUufTr269evY5ULfbjy79+/g/cOLH0/+I3fu5dOrX8++vfvg5+O/n0+/vv37+DfH35+/v///AAYooE/7FcjTgAgmqOCCDDZIkIEQdufghBRWaOGFzEWoIYYcdujhhyCCpuGIIZZo4okoptjWiCxKqOKLMMYo44wztWgjjTjmqOOOPEpk448u9ijkkEQWySGQSBqp5JJMNpkfklAG6eSUVFZpJXJRZnnlllx26WVrWYb55ZhklmmmYWGmKeWZbLbp5ptZqSknnHTWaeedQsmp55p49unnn4BetOeggRZq6KGIFjToonwm6uijkG7JKKORVmrppU1OOimmnHbq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4GnUk0Ma7u99N3wKEb0GtXUx8YWBiaETo6hCJQpRSAZE4k6qSDsjdoyE8GMgBr+4OSpu0YphFGEWU2LGVEFxax0Uj5ziOMY5/omNd8RjHvU4JLXs0Y+dW8rZ8vdHQhbSkIfkoFEQucg38spqG2RkJCU5SUoO71SVxGQm5eYZTXbSk58EZShFOUqaxY+Up0RlKlW5SlZSsHKthGUsZTlLWtayUHBZtGUudblLXvbSlz6U4y+FOUxiFtOYxgzmMZW5TGY205mePOEzpTlNalbTmjPE4TW1uU1udtObWHPKN8U5TnKW05wJ1OI51blOdrbTnY9c4zvlOU961hOVAQEAIfkECQQA/wAsqQBvAfcFTgEACP0A/wkcSLCgwYMIEypcyLChw4cQI0qcSPEggIsYM2rcmLGix48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59Ag/rkSLSoUQBCkypdyrSp06dQo0qdSrWq1atYs2rdynXp0a9gOXYdS7as2bNo06pdy7at27dw48r9F7auXY1z8+rdy7ev37+AAwseTLgwzLuIEyM1zLix48eQI0ueTLmyZbOKMye+zLmz58+gQ4seTbp0VM2oM5tezbq169ewY8uejTa1bcW0c+vezbu379/ATd8erjq48ePIkytfzry5TeLQizufTr269evYs4+Ozh239u/g/cOLH0++fNPu6L2bX8++vfv38Nmnn785vv37+PPr3x+avv+7/AUo4IAEFmjgVv8lCOCBDDbo4IMQRgiSghTaJeGFGGao4YbxVehhWByGKOKIJJa424cogmXiiiy26OKLg6Uo41Ew1mjjjTjmONWMPBql449ABinkkCb1aCRRRCap5JJMCnnkkxs1KeWUVFYpIZRYdmTlllx26aV5WYZ50ZdklmnmmcCJqSaabLbp5pueqSknnHTWaeedecmpJ558Fphen4AWpueggRYqH4+GJgrXoIQq6ih1ez4qKVeMMjrppb9VKhamnDqlqaVpfqqeXKJCOWWpNEKGqnSxrcr9anmuitlbrK+qRWujNt6qImG61lpar/WRB6ypug274FrGVmpisrv+xeyxvz5bF6zSzphbtc3Whq2yGG4L4l7eZitauF+NRy6Ks51bVFrqatpgu+K+Be+6pM27KXj2KthqvlqWxS+3/P0br60CY1RvwWPii/Cf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5gbXkk1udtOb3wTnzZoYTnKW05znRCegiJJOdrbTne+Ep+N0Ek961tOe9xRlQAAAIfkECQQA/wAsqQBvAfcFTgEACP0A/wkcSLCgwYMIEypcyLChw4cQI0qcSBEhgIsYM2rciLGix48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59Ag/rkSLSoUQBCkypdyrSp06dQo0qdSrWq1atYs2rdynXp0a9gOXYdS7as2bNo06pdy7at27dw48oVGLau3Yxz8+rdy7ev37+AAwseTLgwzLuIEyM1zLix48eQI0ueTLmyZbOKMye+zLmz58+gQ4seTbp0VM2oM5tezbq169ewY8uejTa1bcW0c+vezbu379/ATd8erjq48ePIkytfzry5TeLQizufTr269evYs4+Ozh239u/g/cOLH0++fNPu6L2bX8++vfv38Nmnn785vv37+PPr3x+avv+7/AUo4IAEFmjgVv8lCOCBDDbo4IMQRgiSghTaJeGFGGao4YbxVehhWByGKOKIJJa424cogmXiiiy26OKLg6Uo41Ew1mjjjTjmONWMPBql449ABinkkCb1aCRRRCap5JJMCnnkkxs1KeWUVFYpIZRY4mXlllx26aV5WYZ50ZdklmnmmcCJqSaabLbp5pueqSknnHTWaeedecmpJ558Fphen4AWpueggRYqH4+GJgrXoIQq6ih1ez4qKVeMMjrppb9VKhamnDqlqaVpfqqeXKJCOWWpNEKGqnSxrcr9anmuitlbrK+qRWujNt6qImG61lpar/WRB6ypug274FrGVmpisrv+xeyxvz5bF6zSzphbtc3Whq2yGG4L4l7eZitauF+NRy6Ks51bVFrqatpgu+K+Be+6pM27KXj2KthqvlqWxS+3/P0br60Cd7RdwWPii/CfryF81sKgdgjxwJhBPK7F303MMGsYk6VxxOt9PC3BC19ccsYic9dax12lDLB4Llv4sMb9TYxyzMRxfPJYOL98Xc/BtkzzZx9rBzR0wtnM89EgO8f0qFoVTfTQ2D09XLQsI2h108ht7WtVIk+tdNVeo4b1zpSWjatxamsWtdSchU12219fJnfadP5H6lveZl91t91wW8d33ZX9/fbgc/KGeN9UpRy34ZAujljNVGst+Zq0Xc64VI4DHnh1msscZ+eWhx7mvqa7zTnplLEeeeoU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69ewY8uejTa1bcW0c+vezbu379/ATd8erjq48ePIkytfzry5TeLQizufTr269evYs4+Ozh239u/g/cOLH0++fNPu6L2bX8++vfv38Nmnn785vv37+PPr3x+avv+7/AUo4IAEFmjgVv8lCOCBDDbo4IMQRgiSghTaJeGFGGao4YbxVehhWByGKOKIJJa424cogmXiiiy26OKLg6Uo41Ew1mjjjTjmONWMPBql449ABinkkCb1aCRRRCap5JJMCnnkkxs1KeWUVFYpIZRY4mXlllx26aV5WYZ50ZdklmnmmcCJqSaabLbp5pueqSknnHTWaeedecmpJ558Fphen4AWpueggRYqH4+GJgrXoIQq6ih1ez4qKVeMMjrppb9VKhamnDqlqaVpfqqeXKJCOWWpNEKGqnSxrcr9anmuitlbrK+qRWujNt6qImG61lpar/WRB6ypug274FrGVmpisrv+xeyxvz5bF6zSzphbtc3Whq2yGG4L4l7eZitauF+NRy6Ks51bVFrqatpgu+K+Be+6pM27KXj2KthqvlqWxS+3/P0br60Cd7RdwWPii/CfryF81sKgdgjxwJhBPK7F303MMGsYk6VxxOt9PC3BC19ccsYic9dax12lDLB4Llv4sMb9TYxyzMRxfPJYOL98Xc/BtkzzZx9rBzR0wtnM89EgO8f0qFoVTfTQ2D09XLQsI2h108ht7WtVIk+tdNVeo4b1zpSWjatxamsWtdSchU12219fJnfadP5H6lveZl91t91wW8d33ZX9/fbgc/KGeN9UpRy34ZAujljNVGst+Zq0Xc64VI4DHnh1msscZ+eWhx7mvqa7zTnplLEeeeoUT+ay0LCfrnPtm5/nemSz/4x7uY/3fvjvWCZNvOqe7q6q8s0dn6plOOPtPLGgTW9b8swzFvPc1msUfPY7dl/86OIjr9T2sgsPevneF95z6ewb6Xn85gcVvWTor0+/wenfn9X+T3IfAOv3E/89xoDTGWDC+pc/rCjwSLx7YGqEgsDGVLB5D2TgBcMnQUQ5poPXA8r7DrjB5XQQf0cbHghlpL0VTrCAJRTMCPWnQBSm0IEu7FGMcnibof3EMDAzfF0GSci0//HQg846Yg95ArQPBjGBJyTiDf2mRGv5pYpX20kTLfhEp4FQilMEGxatqJcxZjEnYdxhFzEYxRZaDYdmTFGe4pgznKRR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Sla20pXNQ8wrZTlLWtbSlrdE/McWcblLXvbSl780JF2AOUxiFtOYx6ygnJC5TGY205nPjOJuoDlNalbTmtfU3lGwuU1udtOb32TWaMA5TnKW05yQDAgAIf8LWE1QIERhdGFYTVA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA3LjEtYzAwMCA3OS5iMGY4YmU5LCAyMDIxLzEyLzA4LTE5OjExOjIyICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICB4bWxuczpiZXh0PSJodHRwOi8vbnMuYWRvYmUuY29tL2J3Zi9iZXh0LzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp4bXBETT0iaHR0cDovL25zLmFkb2JlLmNvbS94bXAvMS4wL0R5bmFtaWNNZWRpYS8iCiAgICB4bWxuczpzdERpbT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0RpbWVuc2lvbnMjIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU3NzAxZDBmLTcwZjUtNDU4Zi05ZDY4LTliMmQyM2M0MjM1YyIKICAgeG1wTU06RG9jdW1lbnRJRD0iOGFjMTk4OTMtMmNkNS0xY2U1LTllMzctZTQzNTAwMDAwMDQ5IgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZmZhNzM2OWQtMzNhNy00NTRhLWE3MjQtMzRmOWZmZGZiYWU4IgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDI0LTA2LTIxVDAyOjU1OjE5LTA1OjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyNC0wNi0yMVQwMjo1NToxOS0wNTowMCIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuNSAoMjAyMTA4MjUub3JpZy4zNzEgZjllNWUyZCkgIChXaW5kb3dzKSIKICAgeG1wOkNyZWF0ZURhdGU9IjIwMjQtMDYtMjFUMDI6NTQ6MTMtMDU6MDAiCiAgIGRjOmZvcm1hdD0iQW5pbWF0ZWQgR0lGIgogICB4bXBETTp2aWRlb0ZyYW1lUmF0ZT0iMjUuMDAwMDAwIgogICB4bXBETTp2aWRlb0ZpZWxkT3JkZXI9IlByb2dyZXNzaXZlIgogICB4bXBETTp2aWRlb1BpeGVsQXNwZWN0UmF0aW89IjEvMSIKICAgeG1wRE06c3RhcnRUaW1lU2NhbGU9IjI1IgogICB4bXBETTpzdGFydFRpbWVTYW1wbGVTaXplPSIxIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9ImQxYWU3NWM2LTkwMTQtZTczMC1mYmQ0LTgyYzgwMDAwMDA3NiIKICAgICAgc3RFdnQ6d2hlbj0iMjAyNC0wNi0yMVQwMjo1NToxOS0wNTowMCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgQWRvYmUgTWVkaWEgRW5jb2RlciAyMDI0LjAgKE1hY2ludG9zaCkiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1ZTkxM2JjYy1jOGZhLTdhNDgtYmU1ZC1jYTRiMTY5YWFkZjciCiAgICAgIHN0RXZ0OndoZW49IjIwMjQtMDUtMzFUMTQ6MTE6MzUtMDU6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMi41ICgyMDIxMDgyNS5vcmlnLjM3MSBmOWU1ZTJkKSAgKFdpbmRvd3MpIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmM0MTdiM2JlLWU3MjEtNzM0Ni05MWNhLWYxYzQ4NDMyMzQ3MyIKICAgICAgc3RFdnQ6d2hlbj0iMjAyNC0wNS0zMVQxNDoyMDozMi0wNTowMCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjUgKDIwMjEwODI1Lm9yaWcuMzcxIGY5ZTVlMmQpICAoV2luZG93cykiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249ImRlcml2ZWQiCiAgICAgIHN0RXZ0OnBhcmFtZXRlcnM9InNhdmVkIHRvIG5ldyBsb2NhdGlvbiIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5OWJmMTQ0Ny0wN2E3LTE4NGEtODg0Zi01NDYyNTI2Zjc0ZTUiCiAgICAgIHN0RXZ0OndoZW49IjIwMjQtMDUtMzFUMTQ6MzA6MTEtMDU6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMi41ICgyMDIxMDgyNS5vcmlnLjM3MSBmOWU1ZTJkKSAgKFdpbmRvd3MpIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjdkYmZjM2U0LWUwM2EtNGNmMi1hNTUyLTUzYjgzMmY3NDdmZCIKICAgICAgc3RFdnQ6d2hlbj0iMjAyNC0wNi0yMFQxNDo0NTo1OS0wNTowMCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIzLjIgKDIwMjIwMTI4Lm9yaWcuNTI3IDI4ZDVlMWEpICAoTWFjaW50b3NoKSIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iL2NvbnRlbnQiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjNhNzZjZDktNGEyOC00NmFlLWIwOGQtNDFhNWZiN2JhNTU0IgogICAgICBzdEV2dDp3aGVuPSIyMDI0LTA2LTIxVDAyOjU0OjE4LTA1OjAwIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjMuMiAoMjAyMjAxMjgub3JpZy41MjcgMjhkNWUxYSkgIChNYWNpbnRvc2gpIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvY29udGVudCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplZGU0ZTYyZi1kYTEzLTQ4ZDItODc2Yy1lNTFmYjk2NzUyYTIiCiAgICAgIHN0RXZ0OndoZW49IjIwMjQtMDYtMjFUMDI6NTQ6MTgtMDU6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMy4yICgyMDIyMDEyOC5vcmlnLjUyNyAyOGQ1ZTFhKSAgKE1hY2ludG9zaCkiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YjhiZDM2ZDEtZjMxNy00NWNmLWJiNjctZjAwZjZkMTUzMTc5IgogICAgICBzdEV2dDp3aGVuPSIyMDI0LTA2LTIxVDAyOjU1OjE5LTA1OjAwIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBBZG9iZSBNZWRpYSBFbmNvZGVyIDIwMjQuMCAoTWFjaW50b3NoKSIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NzcwMWQwZi03MGY1LTQ1OGYtOWQ2OC05YjJkMjNjNDIzNWMiCiAgICAgIHN0RXZ0OndoZW49IjIwMjQtMDYtMjFUMDI6NTU6MTktMDU6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIEFkb2JlIE1lZGlhIEVuY29kZXIgMjAyNC4wIChNYWNpbnRvc2gpIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvbWV0YWRhdGEiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogICA8eG1wTU06RGVyaXZlZEZyb20KICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Y2JkOTAzNjYtNGI3MS00ZDAzLTkwNzMtNjczMzFlM2VkZjJjIgogICAgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpjYmQ5MDM2Ni00YjcxLTRkMDMtOTA3My02NzMzMWUzZWRmMmMiCiAgICBzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NWU5MTNiY2MtYzhmYS03YTQ4LWJlNWQtY2E0YjE2OWFhZGY3Ii8+CiAgIDx4bXBNTTpJbmdyZWRpZW50cz4KICAgIDxyZGY6QmFnPgogICAgIDxyZGY6bGkKICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozNTA2MmE2Zi04ODAxLTRjNDUtYTg3ZS05ZGVkMjI0Yzc5MjEiCiAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMTAyNDAwZjI1NjAwIgogICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MGQxMDI0MDBmMjU2MDAiCiAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICA8L3JkZjpCYWc+CiAgIDwveG1wTU06SW5ncmVkaWVudHM+CiAgIDx4bXBNTTpQYW50cnk+CiAgICA8cmRmOkJhZz4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBiZXh0Om9yaWdpbmF0b3I9IlBybyBUb29scyIKICAgICAgIGJleHQ6b3JpZ2luYXRvclJlZmVyZW5jZT0iYWFPcFNsNHNlS1FrIgogICAgICAgYmV4dDpvcmlnaW5hdGlvbkRhdGU9IjIwMjQtMDYtMTciCiAgICAgICBiZXh0Om9yaWdpbmF0aW9uVGltZT0iMTA6NTA6NDMiCiAgICAgICBiZXh0OnRpbWVSZWZlcmVuY2U9IjM1MDg4MDAwMCIKICAgICAgIGJleHQ6dmVyc2lvbj0iMSIKICAgICAgIGJleHQ6dW1pZD0iMDYwQTJCMzQwMTAxMDEwNTAxMDEwRjEwMTMwMDAwMDBBOTA0NEI4MkVDM0U4MDAwNTQ1Q0Q2NUYzQjBFNzY5QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSI4MjhjM2Y4Mi1jNjQ1LTIzZmItMmJlYy1lYmQzMDAwMDAwYjIiCiAgICAgICB4bXBNTTpEb2N1bWVudElEPSJjMWFiNDkxOC0xNWNlLTkwYjItMjc1Yi1kODM3MDAwMDAwODUiCiAgICAgICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZDUzZGQ2MzQtZDliMy00ZTZkLTk3NWEtYmUxMTgxZGQ5Y2Y3IgogICAgICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNC0wNi0yMVQwMjozODozOC0wNTowMCIKICAgICAgIHhtcDpNb2RpZnlEYXRlPSIyMDI0LTA2LTIxVDAyOjM4OjM4LTA1OjAwIj4KICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICA8cmRmOlNlcT4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9IjgyOGMzZjgyLWM2NDUtMjNmYi0yYmVjLWViZDMwMDAwMDBiMiIKICAgICAgICAgc3RFdnQ6d2hlbj0iMjAyNC0wNi0yMVQwMjozODozOC0wNTowMCIKICAgICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIzLjIgKDIwMjIwMTI4Lm9yaWcuNTI3IDI4ZDVlMWEpICAoTWFjaW50b3NoKSIKICAgICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgICAgPC9yZGY6U2VxPgogICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDBlMGI4NGYtNGFmNS00NjRkLWJlMzItYjY0MDhkZGQyN2ZmIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5BZG9tLWF0b217MDAwMC0wMTQ1fS5wbmc8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNmJlMjYzYy0yOTJhLTRiYWYtOTcyYS1lNWVhZDE3MWYxNmMiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkFkb20tYXRvbTAwOTAucG5nPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MWI5NDhjYzQtMjE4MC00ZTE2LWI2ZTQtY2E5MDBiOTYwNGU3Ij4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5BZG9tLWF0b217MDAwMC0wMTQ1fS5wbmc8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyZDRlODY0YS0zNjRiLTRkY2EtOTdhYy02YjY1OTQzNDNkOGUiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkFkb20tYXRvbTAxNDUucG5nPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5jb21wIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNTA2MmE2Zi04ODAxLTRjNDUtYTg3ZS05ZGVkMjI0Yzc5MjEiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkFkb20tYXRvbTwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8eG1wTU06SW5ncmVkaWVudHM+CiAgICAgICA8cmRmOkJhZz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDBlMGI4NGYtNGFmNS00NjRkLWJlMzItYjY0MDhkZGQyN2ZmIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTo1MTIwMGYyNTYwMGQyMzcwODE2MDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6NDQwMjk0NDAwMDAwZjI1NDAxNjAwMDAwMGQxNzkyMGYyNTYwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDZiZTI2M2MtMjkyYS00YmFmLTk3MmEtZTVlYWQxNzFmMTZjIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTo2MTgxMDU2MDAwMDBmMjU0MDE2MDAwMDAwZDI1NjBmMjU2MDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTo2MTgxMDU2MDAwMDBmMjU0MDE2MDAwMDAwZDI1NjBmMjU2MDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFiOTQ4Y2M0LTIxODAtNGUxNi1iNmU0LWNhOTAwYjk2MDRlNyIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQyNTYwMGYyNTYwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjBkMTkyMDBmMjU2MDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJkNGU4NjRhLTM2NGItNGRjYS05N2FjLTZiNjU5NDM0M2Q4ZSIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6OTk5MTI5NjAwMDAwZjI1NDAxNjAwMDAwMGQxNjkzNDQwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTo5OTkxMjk2MDAwMDBmMjU0MDE2MDAwMDAwZDE2OTM0NDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Mzg4N2UzNTEtM2M2Yi00MzExLThhNmQtZjM1OTg4ODdmZDU1IgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTo3NjgwMGYyNTYwMGQ0NzQxNjMyMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6NjQzNTA3MjAwMDAwZjI1NDAxNjAwMDAwMGQzNTg0MGYyNTYwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTdkMGJiMDItY2FjNy00ODBhLTlkYTQtODM2MDQ1YmI5NDJhIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTo3NDUxMTM2MDAwMDBmMjU0MDE2MDAwMDAwZDQ5MTA5NzYwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTo2NDM1MDcyMDAwMDBmMjU0MDE2MDAwMDAwZDM3MTIwZjI1NjAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NDNiM2JkOC1iNDAzLTQ5MWMtOWJhMS03Yjk5MTA4M2FjOWYiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMTAyNDAwZjI1NjAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MGQxMDI0MDBmMjU2MDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjcxZWVjYjAzLTZhOGUtNGI1Yi1iNzljLTJmYjc2NzUyNWYzZiIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQxMDI0MDBmMjU2MDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTowZDEwMjQwMGYyNTYwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzMyNDBmNjMtZDQ0MC00MjBhLWE5MGUtMTUyZTBmYTY5NDgzIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZToyNTYwMGYyNTYwMGQyNTYwMGYyNTYwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjIxMTY4MDAwMDAwMGYyNTQwMTYwMDAwMDBkMTkyMDBmMjU2MDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc3MTRjYTU2LTMyMjAtNDkzYy1iZDkxLWRlZGE5Y2U1ZWY2ZSIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MTg2Mjc4NDAwMDAwZjI1NDAxNjAwMDAwMGQyNTYwZjI1NjAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MTg2Mjc4NDAwMDAwZjI1NDAxNjAwMDAwMGQyNTYwZjI1NjAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3YjkwOThiZC00ZDM1LTQ5NDItYmYyOS01MzUyMDNhNjE0ZmQiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjM5Nzk1ODQwMDAwMGYyNTQwMTYwMDAwMDBkMjU2MGYyNTYwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjYxODEwNTYwMDAwMGYyNTQwMTYwMDAwMDBkMjU2MGYyNTYwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OGI3OWNhMTQtNTdhNS00MzBiLTgxMDMtYWMxN2Q3ODc2Y2M2IgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTo0MTQ4OTI4MDAwMDBmMjU0MDE2MDAwMDAwZDQyMzM2MDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjQxNDg5MjgwMDAwMGYyNTQwMTYwMDAwMDBkNDIzMzYwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5YjZkYzY4MC1lZjI5LTRkNWItYmE5Yy1mZjRkZjcwNTkzZWYiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMjU2MGYyNTYwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjE4NjI3ODQwMDAwMGYyNTQwMTYwMDAwMDBkMjU2MGYyNTYwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YWQ0OWVmZDEtMWFlYi00ZjViLWI2Y2MtNmE0MmU0NDk1NTliIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZToxODYyNzg0MDAwMDBmMjU0MDE2MDAwMDAwZDI1NjBmMjU2MDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZToxODYyNzg0MDAwMDBmMjU0MDE2MDAwMDAwZDI1NjBmMjU2MDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmIxYWVjMzdjLTIzMTItNGZmNy1hZGQ4LWYyMjdiMmYyMDIxNSIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MjQ4MzcxMjAwMDAwZjI1NDAxNjAwMDAwMGQyNzA5NTA0MDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MjExNjgwMDAwMDAwZjI1NDAxNjAwMDAwMGQyMDQ4MGYyNTYwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YjZhNDc0YzktM2YyMi00YjZlLWI4OTQtZjAzYmUxZjliZWRkIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTozOTc5NTg0MDAwMDBmMjU0MDE2MDAwMDAwZDQyMzM2MDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjQxNDg5MjgwMDAwMGYyNTQwMTYwMDAwMDBkNDIzMzYwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpiOTYzZWFlOC0wMWU5LTRkMGUtYTUxZS1hNmFkMGRlZjBlZmYiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjYxODEwNTYwMDAwMGYyNTQwMTYwMDAwMDBkMjU2MGYyNTYwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjYxODEwNTYwMDAwMGYyNTQwMTYwMDAwMDBkMjU2MGYyNTYwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YmZjMzFmYjEtZTg0Yi00YTJmLWI1NDItYjNlMDU2ZWMzMmZhIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTo3NDUxMTM2MDAwMDBmMjU0MDE2MDAwMDAwZDQ5MTA5NzYwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTo2NDM1MDcyMDAwMDBmMjU0MDE2MDAwMDAwZDM3MTIwZjI1NjAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpjMTBmYTcyNi1mNDg5LTRiZDktOTFkMy1kNmI2N2ZiMGVlOGYiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMjQ4MzcxMjAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjBkMTg2Mjc4NDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Y2FhYjI1ZmMtMTVlNS00OGVhLWIyMTgtYzZkNDU5NjRiMmVjIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTowZDEwMjQwMGYyNTYwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjBkMTAyNDAwZjI1NjAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpkNWMxN2JhNy1kZDNkLTQyOGMtYjNkZi04ZGMwNTI0MWNiMTQiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMjQ4MzcxMjAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjBkMTg2Mjc4NDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZGY2YjNiN2UtMDU3NC00YWI2LWE0ZDctZWY4MTUwZmFmYmI5IgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZToxODYyNzg0MDAwMDBmMjU0MDE2MDAwMDAwZDMzODY4ODAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjM5Nzk1ODQwMDAwMGYyNTQwMTYwMDAwMDBkMzM4Njg4MDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDplNDc5NTQyMy03YWYzLTQyZTctYmVkYi0xYjRjNmU0ZDcwNmEiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjUxMjAwZjI1NjAwZDIzNzA4MTYwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTo0NDAyOTQ0MDAwMDBmMjU0MDE2MDAwMDAwZDE3OTIwZjI1NjAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDplNDgzYTcwOS02MDA3LTQ3Y2UtYjdmYy1jNDIzYTQxOTI2NjkiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjUxMjAwZjI1NjAwZDI1NjAwZjI1NjAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6NDM1MjBmMjU2MDBkMTkyMDBmMjU2MDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmZhZWE3M2JiLWYzMDItNDEyZC1iYWZkLTI3NjAwYmEyYjk4YSIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MjQ4MzcxMjAwMDAwZjI1NDAxNjAwMDAwMGQyNzA5NTA0MDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MjExNjgwMDAwMDAwZjI1NDAxNjAwMDAwMGQyMDQ4MGYyNTYwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgIDwvcmRmOkJhZz4KICAgICAgPC94bXBNTTpJbmdyZWRpZW50cz4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozODg3ZTM1MS0zYzZiLTQzMTEtOGE2ZC1mMzU5ODg4N2ZkNTUiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkFkb20tYXRvbXswMDAwLTAxNDV9LnBuZzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU3ZDBiYjAyLWNhYzctNDgwYS05ZGE0LTgzNjA0NWJiOTQyYSI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+QWRvbS1hdG9tezAwMDAtMDE0NX0ucG5nPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjQzYjNiZDgtYjQwMy00OTFjLTliYTEtN2I5OTEwODNhYzlmIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5TaGFwZSBMYXllciAxPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzFlZWNiMDMtNmE4ZS00YjViLWI3OWMtMmZiNzY3NTI1ZjNmIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5BZG9tX01uZW1vbmljX1YyRV80c2VjXzA2MTcyMDI0X0ZJTkFMX01JWC53YXY8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPHhtcE1NOkluZ3JlZGllbnRzPgogICAgICAgPHJkZjpCYWc+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSI4MjhjM2Y4Mi1jNjQ1LTIzZmItMmJlYy1lYmQzMDAwMDAwYjIiCiAgICAgICAgIHN0UmVmOmRvY3VtZW50SUQ9ImMxYWI0OTE4LTE1Y2UtOTBiMi0yNzViLWQ4MzcwMDAwMDA4NSIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQxMDI0MDBmMjU2MDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTowZDEwMjQwMGYyNTYwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9IkFsbCIvPgogICAgICAgPC9yZGY6QmFnPgogICAgICA8L3htcE1NOkluZ3JlZGllbnRzPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjczMjQwZjYzLWQ0NDAtNDIwYS1hOTBlLTE1MmUwZmE2OTQ4MyI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+QWRvbS1hdG9tezAwMDAtMDE0NX0ucG5nPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzcxNGNhNTYtMzIyMC00OTNjLWJkOTEtZGVkYTljZTVlZjZlIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5BZG9tLWF0b20wMDMwLnBuZzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdiOTA5OGJkLTRkMzUtNDk0Mi1iZjI5LTUzNTIwM2E2MTRmZCI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+QWRvbS1hdG9tMDA5MC5wbmc8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4Yjc5Y2ExNC01N2E1LTQzMGItODEwMy1hYzE3ZDc4NzZjYzYiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkFkb20tYXRvbTAwNjAucG5nPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OWI2ZGM2ODAtZWYyOS00ZDViLWJhOWMtZmY0ZGY3MDU5M2VmIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5BZG9tLWF0b20wMDMwLnBuZzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmFkNDllZmQxLTFhZWItNGY1Yi1iNmNjLTZhNDJlNDQ5NTU5YiI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+QWRvbS1hdG9tMDAzMC5wbmc8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpiMWFlYzM3Yy0yMzEyLTRmZjctYWRkOC1mMjI3YjJmMjAyMTUiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkFkb20tYXRvbXswMDAwLTAxNDV9LnBuZzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmI2YTQ3NGM5LTNmMjItNGI2ZS1iODk0LWYwM2JlMWY5YmVkZCI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+QWRvbS1hdG9tMDA2MC5wbmc8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpiOTYzZWFlOC0wMWU5LTRkMGUtYTUxZS1hNmFkMGRlZjBlZmYiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkFkb20tYXRvbTAwOTAucG5nPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YmZjMzFmYjEtZTg0Yi00YTJmLWI1NDItYjNlMDU2ZWMzMmZhIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5BZG9tLWF0b217MDAwMC0wMTQ1fS5wbmc8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjMTBmYTcyNi1mNDg5LTRiZDktOTFkMy1kNmI2N2ZiMGVlOGYiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkFkb20tYXRvbXswMDAwLTAxNDV9LnBuZzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmNhYWIyNWZjLTE1ZTUtNDhlYS1iMjE4LWM2ZDQ1OTY0YjJlYyI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+QXJ0Ym9hcmQgMjEucG5nPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZDVjMTdiYTctZGQzZC00MjhjLWIzZGYtOGRjMDUyNDFjYjE0Ij4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5BZG9tLWF0b217MDAwMC0wMTQ1fS5wbmc8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpkZjZiM2I3ZS0wNTc0LTRhYjYtYTRkNy1lZjgxNTBmYWZiYjkiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkFkb20tYXRvbTAwNjAucG5nPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZTQ3OTU0MjMtN2FmMy00MmU3LWJlZGItMWI0YzZlNGQ3MDZhIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5BZG9tLWF0b217MDAwMC0wMTQ1fS5wbmc8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplNDgzYTcwOS02MDA3LTQ3Y2UtYjdmYy1jNDIzYTQxOTI2NjkiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkFkb20tYXRvbXswMDAwLTAxNDV9LnBuZzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmZhZWE3M2JiLWYzMDItNDEyZC1iYWZkLTI3NjAwYmEyYjk4YSI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+QWRvbS1hdG9tezAwMDAtMDE0NX0ucG5nPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgPC9yZGY6QmFnPgogICA8L3htcE1NOlBhbnRyeT4KICAgPHhtcERNOnN0YXJ0VGltZWNvZGUKICAgIHhtcERNOnRpbWVGb3JtYXQ9IjI1VGltZWNvZGUiCiAgICB4bXBETTp0aW1lVmFsdWU9IjAwOjAwOjAwOjAwIi8+CiAgIDx4bXBETTp2aWRlb0ZyYW1lU2l6ZQogICAgc3REaW06dz0iMTkyMCIKICAgIHN0RGltOmg9IjEwODAiCiAgICBzdERpbTp1bml0PSJwaXhlbCIvPgogICA8eG1wRE06ZHVyYXRpb24KICAgIHhtcERNOnZhbHVlPSIxMDAiCiAgICB4bXBETTpzY2FsZT0iMS8yNSIvPgogICA8eG1wRE06YWx0VGltZWNvZGUKICAgIHhtcERNOnRpbWVWYWx1ZT0iMDA6MDA6MDA6MDAiCiAgICB4bXBETTp0aW1lRm9ybWF0PSIyNVRpbWVjb2RlIi8+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAOw==";class Nqe{constructor(e,t="Loading...",i="#bfbfbf"){mr(this,"_renderingCanvas");mr(this,"_loadingDiv",null);mr(this,"_resizeObserver",null);mr(this,"loadingUIText");mr(this,"loadingUIBackgroundColor");this._renderingCanvas=e,this.loadingUIText=t,this.loadingUIBackgroundColor=i}displayLoadingUI(){if(this._loadingDiv)return;this._loadingDiv=document.createElement("div"),this._loadingDiv.id="babylonjsLoadingDiv",this._loadingDiv.style.cssText=`
            position: absolute; top: 0; left: 0;
            width: 100%; height: 100%;
            background-color: ${this.loadingUIBackgroundColor};
            display: flex; flex-direction: column;
            justify-content: center; align-items: center;
            z-index: 1000; pointer-events: none;
        `;const e=document.createElement("img");e.src=Dqe,e.style.cssText=`
            max-width: 15%; max-height: 15%;
            object-fit: contain; margin-bottom: 20px;
        `;const t=document.createElement("div");t.innerText=this.loadingUIText,t.style.cssText=`
            color: white; font-size: 14px;
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
        `,this._loadingDiv.appendChild(e),this._loadingDiv.appendChild(t);const i=this._renderingCanvas.parentElement;i&&(i.appendChild(this._loadingDiv),this._resizeObserver=new ResizeObserver(()=>this._updateSize()),this._resizeObserver.observe(i))}hideLoadingUI(){var e,t;(e=this._loadingDiv)==null||e.remove(),this._loadingDiv=null,(t=this._resizeObserver)==null||t.disconnect(),this._resizeObserver=null}_updateSize(){if(this._loadingDiv&&this._renderingCanvas.parentElement){const e=this._renderingCanvas.parentElement;this._loadingDiv.style.width=`${e.clientWidth}px`,this._loadingDiv.style.height=`${e.clientHeight}px`}}}function wqe(a){iPe(a,"svelte-1gma3ep",".viewer-container.svelte-1gma3ep.svelte-1gma3ep{position:relative;width:100%;height:100%;overflow:hidden}.viewer-container.svelte-1gma3ep canvas.svelte-1gma3ep{display:block;width:100%;height:100%;outline:none}.viewcube-menu-container.svelte-1gma3ep.svelte-1gma3ep{position:absolute;top:1rem;right:1rem;z-index:100;pointer-events:auto}.viewcube-menu-button.svelte-1gma3ep.svelte-1gma3ep{width:33px;height:33px;background:rgba(45, 51, 57, 0.95);border:1px solid rgba(255, 255, 255, 0.2);border-radius:6px;color:rgba(255, 255, 255, 0.7);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s ease;backdrop-filter:blur(5px)}.viewcube-menu-button.svelte-1gma3ep.svelte-1gma3ep:hover{background:rgba(30, 32, 35, 0.98);border-color:rgba(0, 184, 176, 0.3);color:#00b8b0}.viewcube-menu-button.svelte-1gma3ep.svelte-1gma3ep:active{background:rgba(0, 184, 176, 0.15);border-color:#00b8b0;color:#00b8b0}.viewcube-menu-button.menu-open.svelte-1gma3ep.svelte-1gma3ep{background:rgba(0, 184, 176, 0.15);border-color:#00b8b0;color:#00b8b0}.viewcube-menu.svelte-1gma3ep.svelte-1gma3ep{position:absolute;top:45px;right:0;min-width:220px;background:rgba(45, 51, 57, 0.98);border:1px solid rgba(255, 255, 255, 0.2);border-radius:8px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.4);backdrop-filter:blur(10px);overflow:hidden;animation:svelte-1gma3ep-slideDown 0.2s ease}@keyframes svelte-1gma3ep-slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.menu-header.svelte-1gma3ep.svelte-1gma3ep{padding:0.75rem 1rem;background:rgba(0, 0, 0, 0.3);color:#00b8b0;font-size:0.85rem;font-weight:600;border-bottom:1px solid rgba(255, 255, 255, 0.1)}.menu-section.svelte-1gma3ep.svelte-1gma3ep{padding:0.5rem 0}.menu-label.svelte-1gma3ep.svelte-1gma3ep{padding:0.5rem 1rem 0.25rem;color:rgba(255, 255, 255, 0.5);font-size:0.75rem;font-weight:500;text-transform:uppercase;letter-spacing:0.5px}.menu-item.svelte-1gma3ep.svelte-1gma3ep{width:100%;padding:0.6rem 1rem;background:transparent;border:none;color:rgba(255, 255, 255, 0.9);font-size:0.9rem;text-align:left;cursor:pointer;display:flex;align-items:center;gap:0.5rem;transition:background 0.15s ease, color 0.15s ease}.menu-item.svelte-1gma3ep.svelte-1gma3ep:hover{background:rgba(255, 255, 255, 0.1);color:white}.menu-item.active.svelte-1gma3ep.svelte-1gma3ep{background:rgba(0, 184, 176, 0.15);color:#00b8b0}.menu-spacer.svelte-1gma3ep.svelte-1gma3ep{width:16px;flex-shrink:0}.menu-item.svelte-1gma3ep .icon-check.svelte-1gma3ep{flex-shrink:0}.menu-divider.svelte-1gma3ep.svelte-1gma3ep{height:1px;background:rgba(255, 255, 255, 0.1);margin:0.25rem 0}")}function H9e(a){let e,t,i,s,r,n,o,l,c,u,f,p,m,_,d,h,x,A;function S(R,I){return R[4]?zqe:Bqe}let E=S(a),b=E(a);function M(R,I){return R[4]?Fqe:kqe}let T=M(a),O=T(a);return{c(){e=$2("div"),t=$2("div"),t.textContent="View Options",i=k9(),s=$2("div"),r=$2("button"),r.innerHTML=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                        Home`,n=k9(),o=$2("div"),l=k9(),c=$2("div"),u=$2("div"),u.textContent="View Mode",f=k9(),p=$2("button"),b.c(),m=JY(`
                        Orthographic`),_=k9(),d=$2("button"),O.c(),h=JY(`
                        Perspective`),ya(t,"class","menu-header svelte-1gma3ep"),ya(r,"class","menu-item svelte-1gma3ep"),ya(s,"class","menu-section svelte-1gma3ep"),ya(o,"class","menu-divider svelte-1gma3ep"),ya(u,"class","menu-label svelte-1gma3ep"),ya(p,"class","menu-item svelte-1gma3ep"),$I(p,"active",a[4]),ya(d,"class","menu-item svelte-1gma3ep"),$I(d,"active",!a[4]),ya(c,"class","menu-section svelte-1gma3ep"),ya(e,"class","viewcube-menu svelte-1gma3ep"),ya(e,"role","menu")},m(R,I){JI(R,e,I),Mc(e,t),Mc(e,i),Mc(e,s),Mc(s,r),Mc(e,n),Mc(e,o),Mc(e,l),Mc(e,c),Mc(c,u),Mc(c,f),Mc(c,p),b.m(p,null),Mc(p,m),Mc(c,_),Mc(c,d),O.m(d,null),Mc(d,h),x||(A=[U9(r,"click",a[32]),U9(p,"click",a[33]),U9(d,"click",a[34]),U9(e,"click",bue(a[29]))],x=!0)},p(R,I){E!==(E=S(R))&&(b.d(1),b=E(R),b&&(b.c(),b.m(p,m))),I[0]&16&&$I(p,"active",R[4]),T!==(T=M(R))&&(O.d(1),O=T(R),O&&(O.c(),O.m(d,h))),I[0]&16&&$I(d,"active",!R[4])},d(R){R&&F9(e),b.d(),O.d(),x=!1,QI(A)}}}function Bqe(a){let e;return{c(){e=$2("span"),ya(e,"class","menu-spacer svelte-1gma3ep")},m(t,i){JI(t,e,i)},d(t){t&&F9(e)}}}function zqe(a){let e,t;return{c(){e=VV("svg"),t=VV("polyline"),ya(t,"points","20 6 9 17 4 12"),ya(e,"class","icon-check svelte-1gma3ep"),ya(e,"width","16"),ya(e,"height","16"),ya(e,"viewBox","0 0 24 24"),ya(e,"fill","none"),ya(e,"stroke","currentColor"),ya(e,"stroke-width","2.5")},m(i,s){JI(i,e,s),Mc(e,t)},d(i){i&&F9(e)}}}function Fqe(a){let e;return{c(){e=$2("span"),ya(e,"class","menu-spacer svelte-1gma3ep")},m(t,i){JI(t,e,i)},d(t){t&&F9(e)}}}function kqe(a){let e,t;return{c(){e=VV("svg"),t=VV("polyline"),ya(t,"points","20 6 9 17 4 12"),ya(e,"class","icon-check svelte-1gma3ep"),ya(e,"width","16"),ya(e,"height","16"),ya(e,"viewBox","0 0 24 24"),ya(e,"fill","none"),ya(e,"stroke","currentColor"),ya(e,"stroke-width","2.5")},m(i,s){JI(i,e,s),Mc(e,t)},d(i){i&&F9(e)}}}function Uqe(a){let e,t,i,s,r,n,o,l,c=a[5]&&H9e(a);return{c(){e=$2("div"),t=$2("canvas"),i=k9(),s=$2("div"),r=$2("button"),r.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"></path><circle cx="12" cy="12" r="3"></circle></svg>',n=k9(),c&&c.c(),ya(t,"class","svelte-1gma3ep"),ya(r,"class","viewcube-menu-button svelte-1gma3ep"),ya(r,"title","View options"),$I(r,"menu-open",a[5]),ya(s,"class","viewcube-menu-container svelte-1gma3ep"),ya(e,"class","viewer-container svelte-1gma3ep")},m(u,f){JI(u,e,f),Mc(e,t),a[31](t),Mc(e,i),Mc(e,s),Mc(s,r),Mc(s,n),c&&c.m(s,null),a[35](e),o||(l=[U9(window,"click",a[8]),U9(window,"keydown",a[30]),U9(r,"click",bue(a[6]))],o=!0)},p(u,f){f[0]&32&&$I(r,"menu-open",u[5]),u[5]?c?c.p(u,f):(c=H9e(u),c.c(),c.m(s,null)):c&&(c.d(1),c=null)},i:j1,o:j1,d(u){u&&F9(e),a[31](null),c&&c.d(),a[35](null),o=!1,QI(l)}}}const jqe=5e3;function Vqe(a,e,t){let{zUp:i=!0}=e,{modelUrl:s=void 0}=e,{showViewCube:r=!0}=e,{showGround:n=!1}=e,{environmentUrl:o=void 0}=e,{initialViewMode:l="perspective"}=e,c,u,f=null,p=[],m=[],_=null,d=!1;async function h(){if(!u||!c)return;await Ar.init(u,i);const he=Ar.engine,fe=Ar.scene;t(3,u.width=c.clientWidth,u),t(3,u.height=c.clientHeight,u);const Ae=new Nqe(u,"Loading...","#bfbfbf");he.loadingScreen=Ae,he.displayLoadingUI(),await Rqe.init(he,{zUp:i,showViewCube:r,environmentUrl:o}),fe.executeWhenReady(async()=>{he.runRenderLoop(()=>fe.render());const Se=Ar.camera;Se&&l==="orthographic"&&!Se.isOrthographic()?(Se.toggleCameraMode(),t(4,d=!0)):Se&&t(4,d=Se.isOrthographic()),s&&await x(s),he.hideLoadingUI(),u.addEventListener("dblclick",D)}),f=new ResizeObserver(()=>{const Se=Ar.engine,we=Ar.scene;if(u&&Se){const ke=u.parentElement;ke&&(t(3,u.width=ke.clientWidth,u),t(3,u.height=ke.clientHeight,u),Se.resize(),we==null||we.render())}}),f.observe(c)}async function x(he){const fe=Ar.scene;if(!fe)return;const Ae=Ar.shadowGenerator,Se=he.lastIndexOf("/"),we=Se>=0?he.substring(0,Se+1):"",ke=Se>=0?he.substring(Se+1):he;let st;he.split("?")[0].split("#")[0].match(/\.(glb|gltf|obj|stl|ply|splat)$/i)||(st=".glb");const Ke=await wr.ImportMeshAsync("",we,ke,fe,void 0,st),ct=Ke.meshes[0];ct&&(p.push(ct),Ke.meshes.forEach(nt=>{nt.receiveShadows=!0,Ae&&nt.getTotalVertices&&nt.getTotalVertices()>0&&Ae.addShadowCaster(nt)}),Ar.refreshShadows(),k())}function A(){var he;p.forEach(fe=>fe.dispose()),p=[],Ar.refreshShadows(),(he=Ar.camera)==null||he.disableBounds()}function S(){return Ar.scene}function E(){return Ar.engine}function b(){return Ar.camera??null}function M(){return Ar.shadowGenerator}function T(he,fe){var st;if(m.includes(he))return;m.push(he);const Ae=Ar.shadowGenerator,Se=(fe==null?void 0:fe.castShadows)!==!1,we=(fe==null?void 0:fe.receiveShadows)!==!1,ke=Ve=>{var Ke;we&&(Ve.receiveShadows=!0),Se&&Ae&&((Ke=Ve.getTotalVertices)!=null&&Ke.call(Ve))&&Ve.getTotalVertices()>0&&Ae.addShadowCaster(Ve)};(st=he.getTotalVertices)!=null&&st.call(he)&&he.getTotalVertices()>0&&ke(he),"getChildMeshes"in he&&he.getChildMeshes(!1).forEach(ke),Ar.refreshShadows()}function O(he){const fe=m.indexOf(he);fe>=0&&m.splice(fe,1),Ar.refreshShadows()}function R(he){t(9,n=he),p.length>0||m.length>0?k():!he&&_&&(_.dispose(),_=null)}function I(){const he=Ar.camera;he&&(he.rotateToCubeTopFrontRight(0),k())}function N(he){const fe=Ar.camera;if(!fe)return;fe.isOrthographic()!==he&&(fe.toggleCameraMode(),t(4,d=fe.isOrthographic())),K&&ne()}function w(){var he;return(he=Ar.camera)!=null&&he.isOrthographic()?"orthographic":"perspective"}function D(){var Rt,Nt;const he=Ar.scene,fe=Ar.camera;if(!he||!fe)return;const Ae=he.pick(he.pointerX,he.pointerY);if(!(Ae!=null&&Ae.hit)||!Ae.pickedMesh)return;const Se=Ae.pickedMesh,we=new Set([...p,...m]),ke=new Set(p);let st=null,Ve=Se;for(;Ve;){if(we.has(Ve)){st=Ve;break}Ve=Ve.parent??null}if(!st)return;let Ke;ke.has(st)?Ke=st.getChildren().find(si=>si.name==="__root__")??st:Ke=Se;const ct=[];if("getChildMeshes"in Ke&&ct.push(...Ke.getChildMeshes(!1).filter(Kt=>Kt.isVisible&&Kt.getTotalVertices&&Kt.getTotalVertices()>0)),((Rt=Ke.getTotalVertices)==null?void 0:Rt.call(Ke))>0&&ct.push(Ke),ct.length===0)return;let nt=new P(1/0,1/0,1/0),at=new P(-1/0,-1/0,-1/0);for(const Kt of ct){Kt.computeWorldMatrix(!0);const si=Kt.getBoundingInfo().boundingBox;nt=P.Minimize(nt,si.minimumWorld),at=P.Maximize(at,si.maximumWorld)}if(!isFinite(nt.x))return;const xt=P.Center(nt,at),kt=at.subtract(nt).length();if(kt===0)return;const ot=fe.fov||.8,At=((Nt=Ar.engine)==null?void 0:Nt.getAspectRatio(fe))??1,Me=2*Math.atan(Math.tan(ot/2)*At),je=Math.min(ot,Me),rt=kt/2/Math.tan(je/2)/.8,yt=fe.position.clone();fe.moveCamTo(yt.x,yt.y,yt.z,xt.x,xt.y,xt.z,rt,fe.alpha,fe.beta,60,50)}function k(he=1,fe){var At;const Ae=Ar.scene,Se=Ar.camera,we=fe??[...p,...m];if(!Ae||!Se||we.length===0)return;const ke=[];for(const Me of we)"getChildMeshes"in Me&&ke.push(...Me.getChildMeshes(!1)),((At=Me.getTotalVertices)==null?void 0:At.call(Me))>0&&ke.push(Me);const st=ke.filter(Me=>Me.isVisible&&Me.getTotalVertices&&Me.getTotalVertices()>0);if(st.length===0)return;let Ve=new P(1/0,1/0,1/0),Ke=new P(-1/0,-1/0,-1/0);for(const Me of st){Me.computeWorldMatrix(!0);const je=Me.getBoundingInfo();Ve=P.Minimize(Ve,je.boundingBox.minimumWorld),Ke=P.Maximize(Ke,je.boundingBox.maximumWorld)}if(!isFinite(Ve.x))return;const ct=Ke.subtract(Ve),nt=ct.length();if(nt===0)return;Se.lowerRadiusLimit=0,Se.upperRadiusLimit=1/0,Se.zoomOn(st,!0),Se.radius*=he;const at=Se.radius,xt=nt/2,Qe=P.Center(Ve,Ke);Se.minZ=Math.max(xt*.01,.01),Se.maxZ=Math.max(at*20,jqe*1.5),Se.panningSensibility=5e3/xt;const kt=.2;Se.setTargetBounds(Ve.x-ct.x*kt,Ke.x+ct.x*kt,Ve.y-ct.y*kt,Ke.y+ct.y*kt,Ve.z-ct.z*kt,Ke.z+ct.z*kt),Se.upperRadiusLimit=at/.3,Se.lowerRadiusLimit=xt*.01;const ot=Ar.spotLight;if(ot){const Me=nt*3,je=nt*1.2;i?ot.position=new P(Qe.x+je,Qe.y+je,Qe.z+Me):ot.position=new P(Qe.x+je,Qe.y+Me,Qe.z-je*.5),ot.direction=Qe.subtract(ot.position).normalize();const yt=Me/625;ot.intensity=2e6*yt*yt,ot.shadowMinZ=Me*.15,ot.shadowMaxZ=Me*3.2}if(n){const Me=nt*4;_&&_.dispose(),_=l3.CreateGround("shadowGround",{width:Me,height:Me},Ae),_.receiveShadows=!0;const je=new d5("groundMat",Ae);je.baseColor=new Pe(.15,.15,.15),je.metallic=0,je.roughness=.8,je.backFaceCulling=!1,_.material=je,i?(_.rotation.x=Math.PI/2,_.position=new P(Qe.x,Qe.y,Ve.z)):_.position=new P(Qe.x,Ve.y,Qe.z)}else _&&(_.dispose(),_=null);Ar.refreshShadows()}async function Y(){const he=Ar.scene;he&&(await Promise.resolve().then(()=>Twe),await Promise.resolve().then(()=>I$e),await he.debugLayer.show())}function V(){var he;(he=Ar.scene)==null||he.debugLayer.hide()}async function ee(){const he=Ar.scene;he&&(he.debugLayer.isVisible()?V():await Y())}let K=!1;function ie(){t(5,K=!K)}function ne(){t(5,K=!1)}function te(he){const fe=he.target;K&&!fe.closest(".viewcube-menu-container")&&ne()}aPe(()=>{h()}),oPe(()=>{var he;u==null||u.removeEventListener("dblclick",D),f==null||f.disconnect(),(he=Ar.engine)==null||he.stopRenderLoop(),Ar.dispose()});function W(he){lPe.call(this,a,he)}const Q=he=>he.key==="Escape"&&K&&ne();function re(he){AV[he?"unshift":"push"](()=>{u=he,t(3,u)})}const oe=()=>{I(),ne()},X=()=>N(!0),se=()=>N(!1);function ue(he){AV[he?"unshift":"push"](()=>{c=he,t(2,c)})}return a.$$set=he=>{"zUp"in he&&t(10,i=he.zUp),"modelUrl"in he&&t(11,s=he.modelUrl),"showViewCube"in he&&t(12,r=he.showViewCube),"showGround"in he&&t(9,n=he.showGround),"environmentUrl"in he&&t(13,o=he.environmentUrl),"initialViewMode"in he&&t(14,l=he.initialViewMode)},[I,N,c,u,d,K,ie,ne,te,n,i,s,r,o,l,x,A,S,E,b,M,T,O,R,w,k,Y,V,ee,W,Q,re,oe,X,se,ue]}class Gqe extends APe{constructor(e){super(),vPe(this,e,Vqe,Uqe,xue,{zUp:10,modelUrl:11,showViewCube:12,showGround:9,environmentUrl:13,initialViewMode:14,loadModel:15,clearScene:16,getScene:17,getEngine:18,getCamera:19,getShadowGenerator:20,addContentRoot:21,removeContentRoot:22,setGroundVisible:23,goHome:0,setProjectionMode:1,getProjectionMode:24,frameModel:25,showDebugLayer:26,hideDebugLayer:27,toggleDebugLayer:28},wqe,[-1,-1])}get loadModel(){return this.$$.ctx[15]}get clearScene(){return this.$$.ctx[16]}get getScene(){return this.$$.ctx[17]}get getEngine(){return this.$$.ctx[18]}get getCamera(){return this.$$.ctx[19]}get getShadowGenerator(){return this.$$.ctx[20]}get addContentRoot(){return this.$$.ctx[21]}get removeContentRoot(){return this.$$.ctx[22]}get setGroundVisible(){return this.$$.ctx[23]}get goHome(){return this.$$.ctx[0]}get setProjectionMode(){return this.$$.ctx[1]}get getProjectionMode(){return this.$$.ctx[24]}get frameModel(){return this.$$.ctx[25]}get showDebugLayer(){return this.$$.ctx[26]}get hideDebugLayer(){return this.$$.ctx[27]}get toggleDebugLayer(){return this.$$.ctx[28]}}function Wqe(a,e){const t=e||{},i=new Gqe({target:a,props:{zUp:t.zUp!==void 0?t.zUp:!0,modelUrl:t.modelUrl,showViewCube:t.showViewCube!==void 0?t.showViewCube:!0,showGround:t.showGround!==void 0?t.showGround:!1,environmentUrl:t.environmentUrl,initialViewMode:t.initialViewMode||"perspective"}});return{loadModel:s=>i.loadModel(s),clearScene:()=>i.clearScene(),frameModel:s=>i.frameModel(s),getScene:()=>i.getScene(),getEngine:()=>i.getEngine(),getCamera:()=>i.getCamera(),getShadowGenerator:()=>i.getShadowGenerator(),addContentRoot:(s,r)=>i.addContentRoot(s,r),removeContentRoot:s=>i.removeContentRoot(s),toggleDebugLayer:()=>i.toggleDebugLayer(),showDebugLayer:()=>i.showDebugLayer(),hideDebugLayer:()=>i.hideDebugLayer(),setGroundVisible:s=>i.setGroundVisible(s),goHome:()=>i.goHome(),setProjectionMode:s=>i.setProjectionMode(s),getProjectionMode:()=>i.getProjectionMode(),destroy:()=>i.$destroy()}}function Hqe(a){a&&(a.meshes.forEach(e=>{e.name==="__root__"&&(e.rotation=new P(Math.PI/2,0,0),e.computeWorldMatrix(!0))}),a.meshes.forEach(e=>{e.computeWorldMatrix(!0)}))}function Yqe(a,e){if(!a)return null;const t=.001,i=e.bodySize,s=i.x*t,r=i.y*t,n=Math.max(s,r),o=Math.min(s,r),l=e.markingLines?e.markingLines.slice():[];if(l.length===0){e.manufacturer&&l.push(e.manufacturer.toUpperCase()),e.partName&&l.push(e.partName.toUpperCase());const M=new Date;l.push(String(M.getFullYear()).slice(-2)+String(M.getMonth()+1).padStart(2,"0"))}if(l.length===0)return null;const c=new Set(["skyBox","shadowGround","ViewerRoot","laserEtch","ground"]);let u=-1/0;if(a.meshes.forEach(M=>{if(!c.has(M.name)&&!M.name.startsWith("viewCube")&&M.getTotalVertices&&M.getTotalVertices()>0){M.computeWorldMatrix(!0);const T=M.getBoundingInfo();T.boundingBox.maximumWorld.z>u&&(u=T.boundingBox.maximumWorld.z)}}),!isFinite(u))return null;const f=1024,p=Math.round(1024*(o/n)),m=new uf("laserEtchTex",{width:f,height:p},a,!0),_=m.getContext();_.clearRect(0,0,f,p),_.fillStyle="rgba(210, 212, 215, 0.8)",_.textAlign="center",_.textBaseline="middle";const d=l.length,h=p*.65,x=h/d,A=Math.min(Math.round(x*.7),Math.round(f*.09));_.font=`${A}px monospace`;const S=(p-h)/2+x/2;for(let M=0;M<d;M++)_.fillText(l[M],f/2,S+x*M);_.beginPath(),_.arc(f*.07,p*.09,A*.18,0,Math.PI*2),_.fill(),m.update();const E=new Bt("etchMat",a);E.diffuseTexture=m,E.diffuseTexture.hasAlpha=!0,E.useAlphaFromDiffuseTexture=!0,E.emissiveColor=new Pe(.82,.83,.84),E.backFaceCulling=!1,E.zOffset=-2;const b=l3.CreatePlane("laserEtch",{width:n*.85,height:o*.85,sideOrientation:2},a);return b.position=new P(0,0,u+2e-5),b.material=E,b}window.Adom3DViewer={init:Wqe,rotateYUpToZUp:Hqe,addLaserEtch:Yqe,BABYLON:{DynamicTexture:uf,StandardMaterial:Bt,PBRMaterial:mi,MeshBuilder:l3,Mesh:Ne,VertexData:wt,Vector3:P,Color3:Pe}};var rR=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function bz(a){if(a.__esModule)return a;var e=a.default;if(typeof e=="function"){var t=function i(){return this instanceof i?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(a).forEach(function(i){var s=Object.getOwnPropertyDescriptor(a,i);Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:function(){return a[i]}})}),t}var Y9e={exports:{}};const wce=bz(Pqe),X9e="cellPixelShader",Xqe=`precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<helperFunctions>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#ifdef DIFFUSE
varying vec2 vDiffuseUV;uniform sampler2D diffuseSampler;uniform vec2 vDiffuseInfos;
#endif
#include<clipPlaneFragmentDeclaration>
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
vec3 computeCustomDiffuseLighting(lightingInfo info,vec3 diffuseBase,float shadow)
{diffuseBase=info.diffuse*shadow;
#ifdef CELLBASIC
float level=1.0;if (info.ndl<0.5)
level=0.5;diffuseBase.rgb*vec3(level,level,level);
#else
float ToonThresholds[4];ToonThresholds[0]=0.95;ToonThresholds[1]=0.5;ToonThresholds[2]=0.2;ToonThresholds[3]=0.03;float ToonBrightnessLevels[5];ToonBrightnessLevels[0]=1.0;ToonBrightnessLevels[1]=0.8;ToonBrightnessLevels[2]=0.6;ToonBrightnessLevels[3]=0.35;ToonBrightnessLevels[4]=0.2;if (info.ndl>ToonThresholds[0])
{diffuseBase.rgb*=ToonBrightnessLevels[0];}
else if (info.ndl>ToonThresholds[1])
{diffuseBase.rgb*=ToonBrightnessLevels[1];}
else if (info.ndl>ToonThresholds[2])
{diffuseBase.rgb*=ToonBrightnessLevels[2];}
else if (info.ndl>ToonThresholds[3])
{diffuseBase.rgb*=ToonBrightnessLevels[3];}
else
{diffuseBase.rgb*=ToonBrightnessLevels[4];}
#endif
return max(diffuseBase,vec3(0.2));}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void)
{
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;
#ifdef DIFFUSE
baseColor=texture2D(diffuseSampler,vDiffuseUV);
#ifdef ALPHATEST
if (baseColor.a<0.4)
discard;
#endif
#include<depthPrePass>
baseColor.rgb*=vDiffuseInfos.y;
#endif
#ifdef VERTEXCOLOR
baseColor.rgb*=vColor.rgb;
#endif
#ifdef NORMAL
vec3 normalW=normalize(vNormalW);
#else
vec3 normalW=vec3(1.0,1.0,1.0);
#endif
lightingInfo info;vec3 diffuseBase=vec3(0.,0.,0.);float shadow=1.;float glossiness=0.;float aggShadow=0.;float numLights=0.;
#ifdef SPECULARTERM
vec3 specularBase=vec3(0.,0.,0.);
#endif 
#include<lightFragment>[0..maxSimultaneousLights]
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4 color=vec4(finalDiffuse,alpha);
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[X9e]||(H.ShadersStore[X9e]=Xqe);const Z9e="cellVertexShader",Zqe=`precision highp float;attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
uniform mat4 view;uniform mat4 viewProjection;
#ifdef DIFFUSE
varying vec2 vDiffuseUV;uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;
#endif
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<clipPlaneVertexDeclaration>
#include<logDepthDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);
#ifdef NORMAL
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
#endif
#ifndef UV1
vec2 uv=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2=vec2(0.,0.);
#endif
#ifdef DIFFUSE
if (vDiffuseInfos.x==0.)
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}
else
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}
#endif
#include<clipPlaneVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[Z9e]||(H.ShadersStore[Z9e]=Zqe);class Kqe extends Br{constructor(){super(),this.DIFFUSE=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.POINTSIZE=!1,this.FOG=!1,this.NORMAL=!1,this.UV1=!1,this.UV2=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.INSTANCES=!1,this.INSTANCESCOLOR=!1,this.NDOTL=!0,this.CUSTOMUSERLIGHTING=!0,this.CELLBASIC=!0,this.DEPTHPREPASS=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.LOGARITHMICDEPTH=!1,this.AREALIGHTSUPPORTED=!0,this.AREALIGHTNOROUGHTNESS=!0,this.rebuild()}}class A3 extends po{constructor(e,t){super(e,t),this.diffuseColor=new Pe(1,1,1),this._computeHighLevel=!1,this._disableLighting=!1,this._maxSimultaneousLights=4}needAlphaBlending(){return this.alpha<1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t,i){const s=t._drawWrapper;if(this.isFrozen&&s.effect&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new Kqe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;const o=n.getEngine();if(r._areTexturesDirty&&(r._needUVs=!1,n.texturesEnabled&&this._diffuseTexture&&Pt.DiffuseTextureEnabled))if(this._diffuseTexture.isReady())r._needUVs=!0,r.DIFFUSE=!0;else return!1;if(r.CELLBASIC=!this.computeHighLevel,ad(e,n,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),r),r._needNormals=Jd(n,e,r,!1,this._maxSimultaneousLights,this._disableLighting),od(n,o,this,r,!!i),zo(e,r,!0,!0),r.isDirty){r.markAsProcessed(),n.resetCachedMaterial();const l=new Ra;r.FOG&&l.addFallback(1,"FOG"),Ql(r,l,this.maxSimultaneousLights),r.NUM_BONE_INFLUENCERS>0&&l.addCPUSkinningFallback(0,e),r.IMAGEPROCESSINGPOSTPROCESS=n.imageProcessingConfiguration.applyByPostProcess;const c=[q.PositionKind];r.NORMAL&&c.push(q.NormalKind),r.UV1&&c.push(q.UVKind),r.UV2&&c.push(q.UV2Kind),r.VERTEXCOLOR&&c.push(q.ColorKind),G1(c,e,r,l),Qo(c,r);const u="cell",f=r.toString(),p=["world","view","viewProjection","vEyePosition","vLightsType","vDiffuseColor","vFogInfos","vFogColor","pointSize","vDiffuseInfos","mBones","diffuseMatrix","logarithmicDepthConstant"],m=["diffuseSampler","areaLightsLTC1Sampler","areaLightsLTC2Sampler"],_=[];qo(p),gl({uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:r,maxSimultaneousLights:this.maxSimultaneousLights}),t.setEffect(n.getEngine().createEffect(u,{attributes:c,uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:f,fallbacks:l,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:this.maxSimultaneousLights-1}},o),r,this._materialContext)}if(r.AREALIGHTUSED){for(let l=0;l<e.lightSources.length;l++)if(!e.lightSources[l]._isReady())return!1}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),Pc(t,this._activeEffect),this._mustRebind(s,n,i)&&(this._diffuseTexture&&Pt.DiffuseTextureEnabled&&(this._activeEffect.setTexture("diffuseSampler",this._diffuseTexture),this._activeEffect.setFloat2("vDiffuseInfos",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),this._activeEffect.setMatrix("diffuseMatrix",this._diffuseTexture.getTextureMatrix())),Bo(this._activeEffect,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._useLogarithmicDepth&&ml(r,n,s),s.bindEyePosition(n)),this._activeEffect.setColor4("vDiffuseColor",this.diffuseColor,this.alpha*t.visibility),s.lightsEnabled&&!this.disableLighting&&Qd(s,t,this._activeEffect,r,this._maxSimultaneousLights),s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect),this._afterBind(t,this._activeEffect,i))}getAnimatables(){const e=[];return this._diffuseTexture&&this._diffuseTexture.animations&&this._diffuseTexture.animations.length>0&&e.push(this._diffuseTexture),e}getActiveTextures(){const e=super.getActiveTextures();return this._diffuseTexture&&e.push(this._diffuseTexture),e}hasTexture(e){return super.hasTexture(e)?!0:this._diffuseTexture===e}dispose(e){this._diffuseTexture&&this._diffuseTexture.dispose(),super.dispose(e)}getClassName(){return"CellMaterial"}clone(e){return It.Clone(()=>new A3(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.CellMaterial",e}static Parse(e,t,i){return It.Parse(()=>new A3(e.name,t),e,t,i)}}F([Yi("diffuseTexture")],A3.prototype,"_diffuseTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],A3.prototype,"diffuseTexture",void 0),F([qs("diffuse")],A3.prototype,"diffuseColor",void 0),F([G("computeHighLevel")],A3.prototype,"_computeHighLevel",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],A3.prototype,"computeHighLevel",void 0),F([G("disableLighting")],A3.prototype,"_disableLighting",void 0),F([et("_markAllSubMeshesAsLightsDirty")],A3.prototype,"disableLighting",void 0),F([G("maxSimultaneousLights")],A3.prototype,"_maxSimultaneousLights",void 0),F([et("_markAllSubMeshesAsLightsDirty")],A3.prototype,"maxSimultaneousLights",void 0),ve("BABYLON.CellMaterial",A3);class qqe{constructor(){}}class K9e{constructor(){}}class nR extends Bt{AttachAfterBind(e,t){if(this._newUniformInstances)for(const i in this._newUniformInstances){const s=i.toString().split("-");s[0]=="vec2"?t.setVector2(s[1],this._newUniformInstances[i]):s[0]=="vec3"?this._newUniformInstances[i]instanceof Pe?t.setColor3(s[1],this._newUniformInstances[i]):t.setVector3(s[1],this._newUniformInstances[i]):s[0]=="vec4"?(this._newUniformInstances[i]instanceof St?t.setDirectColor4(s[1],this._newUniformInstances[i]):t.setVector4(s[1],this._newUniformInstances[i]),t.setVector4(s[1],this._newUniformInstances[i])):s[0]=="mat4"?t.setMatrix(s[1],this._newUniformInstances[i]):s[0]=="float"&&t.setFloat(s[1],this._newUniformInstances[i])}if(this._newSamplerInstances)for(const i in this._newSamplerInstances){const s=i.toString().split("-");s[0]=="sampler2D"&&this._newSamplerInstances[i].isReady&&this._newSamplerInstances[i].isReady()&&t.setTexture(s[1],this._newSamplerInstances[i])}}ReviewUniform(e,t){if(e=="uniform"&&this._newUniforms)for(let i=0;i<this._newUniforms.length;i++)this._customUniform[i].indexOf("sampler")==-1&&t.push(this._newUniforms[i].replace(/\[\d*\]/g,""));if(e=="sampler"&&this._newUniforms)for(let i=0;i<this._newUniforms.length;i++)this._customUniform[i].indexOf("sampler")!=-1&&t.push(this._newUniforms[i].replace(/\[\d*\]/g,""));return t}Builder(e,t,i,s,r,n){n&&this._customAttributes&&this._customAttributes.length>0&&n.push(...this._customAttributes),this.ReviewUniform("uniform",t),this.ReviewUniform("sampler",s);const o=this._createdShaderName;return Ls.ShadersStore[o+"VertexShader"]&&Ls.ShadersStore[o+"PixelShader"]||(Ls.ShadersStore[o+"VertexShader"]=this._injectCustomCode(this.VertexShader,"vertex"),Ls.ShadersStore[o+"PixelShader"]=this._injectCustomCode(this.FragmentShader,"fragment")),o}_injectCustomCode(e,t){const i=this._getCustomCode(t);for(const s in i){const r=i[s];if(r&&r.length>0){const n="#define "+s;e=e.replace(n,`
`+r+`
`+n)}}return e}_getCustomCode(e){var t,i;return e==="vertex"?{CUSTOM_VERTEX_BEGIN:this.CustomParts.Vertex_Begin,CUSTOM_VERTEX_DEFINITIONS:(((t=this._customUniform)==null?void 0:t.join(`
`))||"")+(this.CustomParts.Vertex_Definitions||""),CUSTOM_VERTEX_MAIN_BEGIN:this.CustomParts.Vertex_MainBegin,CUSTOM_VERTEX_UPDATE_POSITION:this.CustomParts.Vertex_Before_PositionUpdated,CUSTOM_VERTEX_UPDATE_NORMAL:this.CustomParts.Vertex_Before_NormalUpdated,CUSTOM_VERTEX_MAIN_END:this.CustomParts.Vertex_MainEnd,CUSTOM_VERTEX_UPDATE_WORLDPOS:this.CustomParts.Vertex_After_WorldPosComputed}:{CUSTOM_FRAGMENT_BEGIN:this.CustomParts.Fragment_Begin,CUSTOM_FRAGMENT_DEFINITIONS:(((i=this._customUniform)==null?void 0:i.join(`
`))||"")+(this.CustomParts.Fragment_Definitions||""),CUSTOM_FRAGMENT_MAIN_BEGIN:this.CustomParts.Fragment_MainBegin,CUSTOM_FRAGMENT_UPDATE_DIFFUSE:this.CustomParts.Fragment_Custom_Diffuse,CUSTOM_FRAGMENT_UPDATE_ALPHA:this.CustomParts.Fragment_Custom_Alpha,CUSTOM_FRAGMENT_BEFORE_LIGHTS:this.CustomParts.Fragment_Before_Lights,CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR:this.CustomParts.Fragment_Before_FragColor,CUSTOM_FRAGMENT_MAIN_END:this.CustomParts.Fragment_MainEnd,CUSTOM_FRAGMENT_BEFORE_FOG:this.CustomParts.Fragment_Before_Fog}}constructor(e,t){super(e,t,!0),this.CustomParts=new K9e,this.customShaderNameResolve=this.Builder,this.FragmentShader=Ls.ShadersStore.defaultPixelShader,this.VertexShader=Ls.ShadersStore.defaultVertexShader,nR.ShaderIndexer++,this._createdShaderName="custom_"+nR.ShaderIndexer}_afterBind(e,t=null,i){if(t){this.AttachAfterBind(e,t);try{super._afterBind(e,t,i)}catch{}}}AddUniform(e,t,i){return this._customUniform||(this._customUniform=new Array,this._newUniforms=new Array,this._newSamplerInstances={},this._newUniformInstances={}),i&&(t.indexOf("sampler")!=-1?this._newSamplerInstances[t+"-"+e]=i:this._newUniformInstances[t+"-"+e]=i),this._customUniform.push("uniform "+t+" "+e+";"),this._newUniforms.push(e),this}AddAttribute(e){return this._customAttributes||(this._customAttributes=[]),this._customAttributes.push(e),this}Fragment_Begin(e){return this.CustomParts.Fragment_Begin=e,this}Fragment_Definitions(e){return this.CustomParts.Fragment_Definitions=e,this}Fragment_MainBegin(e){return this.CustomParts.Fragment_MainBegin=e,this}Fragment_MainEnd(e){return this.CustomParts.Fragment_MainEnd=e,this}Fragment_Custom_Diffuse(e){return this.CustomParts.Fragment_Custom_Diffuse=e.replace("result","diffuseColor"),this}Fragment_Custom_Alpha(e){return this.CustomParts.Fragment_Custom_Alpha=e.replace("result","alpha"),this}Fragment_Before_Lights(e){return this.CustomParts.Fragment_Before_Lights=e,this}Fragment_Before_Fog(e){return this.CustomParts.Fragment_Before_Fog=e,this}Fragment_Before_FragColor(e){return this.CustomParts.Fragment_Before_FragColor=e.replace("result","color"),this}Vertex_Begin(e){return this.CustomParts.Vertex_Begin=e,this}Vertex_Definitions(e){return this.CustomParts.Vertex_Definitions=e,this}Vertex_MainBegin(e){return this.CustomParts.Vertex_MainBegin=e,this}Vertex_Before_PositionUpdated(e){return this.CustomParts.Vertex_Before_PositionUpdated=e.replace("result","positionUpdated"),this}Vertex_Before_NormalUpdated(e){return this.CustomParts.Vertex_Before_NormalUpdated=e.replace("result","normalUpdated"),this}Vertex_After_WorldPosComputed(e){return this.CustomParts.Vertex_After_WorldPosComputed=e,this}Vertex_MainEnd(e){return this.CustomParts.Vertex_MainEnd=e,this}}nR.ShaderIndexer=1,ve("BABYLON.CustomMaterial",nR);class Bce{constructor(){}}const Qqe=Bce;class aR extends mi{AttachAfterBind(e,t){if(this._newUniformInstances)for(const i in this._newUniformInstances){const s=i.toString().split("-");s[0]=="vec2"?t.setVector2(s[1],this._newUniformInstances[i]):s[0]=="vec3"?this._newUniformInstances[i]instanceof Pe?t.setColor3(s[1],this._newUniformInstances[i]):t.setVector3(s[1],this._newUniformInstances[i]):s[0]=="vec4"?(this._newUniformInstances[i]instanceof St?t.setDirectColor4(s[1],this._newUniformInstances[i]):t.setVector4(s[1],this._newUniformInstances[i]),t.setVector4(s[1],this._newUniformInstances[i])):s[0]=="mat4"?t.setMatrix(s[1],this._newUniformInstances[i]):s[0]=="float"&&t.setFloat(s[1],this._newUniformInstances[i])}if(this._newSamplerInstances)for(const i in this._newSamplerInstances){const s=i.toString().split("-");s[0]=="sampler2D"&&this._newSamplerInstances[i].isReady&&this._newSamplerInstances[i].isReady()&&t.setTexture(s[1],this._newSamplerInstances[i])}}ReviewUniform(e,t){if(e=="uniform"&&this._newUniforms)for(let i=0;i<this._newUniforms.length;i++)this._customUniform[i].indexOf("sampler")==-1&&t.push(this._newUniforms[i].replace(/\[\d*\]/g,""));if(e=="sampler"&&this._newUniforms)for(let i=0;i<this._newUniforms.length;i++)this._customUniform[i].indexOf("sampler")!=-1&&t.push(this._newUniforms[i].replace(/\[\d*\]/g,""));return t}Builder(e,t,i,s,r,n,o){if(o){const c=o.processFinalCode;o.processFinalCode=(u,f)=>{if(u==="vertex")return c?c(u,f):f;const p=new Fy(f);return p.inlineToken="#define pbr_inline",p.processCode(),c?c(u,p.code):p.code}}n&&this._customAttributes&&this._customAttributes.length>0&&n.push(...this._customAttributes),this.ReviewUniform("uniform",t),this.ReviewUniform("sampler",s);const l=this._createdShaderName;return Ls.ShadersStore[l+"VertexShader"]&&Ls.ShadersStore[l+"PixelShader"]||(Ls.ShadersStore[l+"VertexShader"]=this._injectCustomCode(this.VertexShader,"vertex"),Ls.ShadersStore[l+"PixelShader"]=this._injectCustomCode(this.FragmentShader,"fragment")),l}_injectCustomCode(e,t){const i=this._getCustomCode(t);for(const s in i){const r=i[s];if(r&&r.length>0){const n="#define "+s;e=e.replace(n,`
`+r+`
`+n)}}return e}_getCustomCode(e){var t,i;return e==="vertex"?{CUSTOM_VERTEX_BEGIN:this.CustomParts.Vertex_Begin,CUSTOM_VERTEX_DEFINITIONS:(((t=this._customUniform)==null?void 0:t.join(`
`))||"")+(this.CustomParts.Vertex_Definitions||""),CUSTOM_VERTEX_MAIN_BEGIN:this.CustomParts.Vertex_MainBegin,CUSTOM_VERTEX_UPDATE_POSITION:this.CustomParts.Vertex_Before_PositionUpdated,CUSTOM_VERTEX_UPDATE_NORMAL:this.CustomParts.Vertex_Before_NormalUpdated,CUSTOM_VERTEX_MAIN_END:this.CustomParts.Vertex_MainEnd,CUSTOM_VERTEX_UPDATE_WORLDPOS:this.CustomParts.Vertex_After_WorldPosComputed}:{CUSTOM_FRAGMENT_BEGIN:this.CustomParts.Fragment_Begin,CUSTOM_FRAGMENT_MAIN_BEGIN:this.CustomParts.Fragment_MainBegin,CUSTOM_FRAGMENT_DEFINITIONS:(((i=this._customUniform)==null?void 0:i.join(`
`))||"")+(this.CustomParts.Fragment_Definitions||""),CUSTOM_FRAGMENT_UPDATE_ALBEDO:this.CustomParts.Fragment_Custom_Albedo,CUSTOM_FRAGMENT_UPDATE_ALPHA:this.CustomParts.Fragment_Custom_Alpha,CUSTOM_FRAGMENT_BEFORE_LIGHTS:this.CustomParts.Fragment_Before_Lights,CUSTOM_FRAGMENT_UPDATE_METALLICROUGHNESS:this.CustomParts.Fragment_Custom_MetallicRoughness,CUSTOM_FRAGMENT_UPDATE_MICROSURFACE:this.CustomParts.Fragment_Custom_MicroSurface,CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION:this.CustomParts.Fragment_Before_FinalColorComposition,CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR:this.CustomParts.Fragment_Before_FragColor,CUSTOM_FRAGMENT_MAIN_END:this.CustomParts.Fragment_MainEnd,CUSTOM_FRAGMENT_BEFORE_FOG:this.CustomParts.Fragment_Before_Fog}}constructor(e,t){super(e,t,!0),this.CustomParts=new Bce,this.customShaderNameResolve=this.Builder,this.FragmentShader=Ls.ShadersStore.pbrPixelShader,this.VertexShader=Ls.ShadersStore.pbrVertexShader,this.FragmentShader=this.FragmentShader.replace(/#include<pbrBlockAlbedoOpacity>/g,Ls.IncludesShadersStore.pbrBlockAlbedoOpacity),this.FragmentShader=this.FragmentShader.replace(/#include<pbrBlockReflectivity>/g,Ls.IncludesShadersStore.pbrBlockReflectivity),this.FragmentShader=this.FragmentShader.replace(/#include<pbrBlockFinalColorComposition>/g,Ls.IncludesShadersStore.pbrBlockFinalColorComposition),aR.ShaderIndexer++,this._createdShaderName="custompbr_"+aR.ShaderIndexer}_afterBind(e,t=null,i){if(t){this.AttachAfterBind(e,t);try{super._afterBind(e,t,i)}catch{}}}AddUniform(e,t,i){return this._customUniform||(this._customUniform=new Array,this._newUniforms=new Array,this._newSamplerInstances={},this._newUniformInstances={}),i&&(t.indexOf("sampler")!=-1?this._newSamplerInstances[t+"-"+e]=i:this._newUniformInstances[t+"-"+e]=i),this._customUniform.push("uniform "+t+" "+e+";"),this._newUniforms.push(e),this}AddAttribute(e){return this._customAttributes||(this._customAttributes=[]),this._customAttributes.push(e),this}Fragment_Begin(e){return this.CustomParts.Fragment_Begin=e,this}Fragment_Definitions(e){return this.CustomParts.Fragment_Definitions=e,this}Fragment_MainBegin(e){return this.CustomParts.Fragment_MainBegin=e,this}Fragment_Custom_Albedo(e){return this.CustomParts.Fragment_Custom_Albedo=e.replace("result","surfaceAlbedo"),this}Fragment_Custom_Alpha(e){return this.CustomParts.Fragment_Custom_Alpha=e.replace("result","alpha"),this}Fragment_Before_Lights(e){return this.CustomParts.Fragment_Before_Lights=e,this}Fragment_Custom_MetallicRoughness(e){return this.CustomParts.Fragment_Custom_MetallicRoughness=e,this}Fragment_Custom_MicroSurface(e){return this.CustomParts.Fragment_Custom_MicroSurface=e,this}Fragment_Before_Fog(e){return this.CustomParts.Fragment_Before_Fog=e,this}Fragment_Before_FinalColorComposition(e){return this.CustomParts.Fragment_Before_FinalColorComposition=e,this}Fragment_Before_FragColor(e){return this.CustomParts.Fragment_Before_FragColor=e.replace("result","color"),this}Fragment_MainEnd(e){return this.CustomParts.Fragment_MainEnd=e,this}Vertex_Begin(e){return this.CustomParts.Vertex_Begin=e,this}Vertex_Definitions(e){return this.CustomParts.Vertex_Definitions=e,this}Vertex_MainBegin(e){return this.CustomParts.Vertex_MainBegin=e,this}Vertex_Before_PositionUpdated(e){return this.CustomParts.Vertex_Before_PositionUpdated=e.replace("result","positionUpdated"),this}Vertex_Before_NormalUpdated(e){return this.CustomParts.Vertex_Before_NormalUpdated=e.replace("result","normalUpdated"),this}Vertex_After_WorldPosComputed(e){return this.CustomParts.Vertex_After_WorldPosComputed=e,this}Vertex_MainEnd(e){return this.CustomParts.Vertex_MainEnd=e,this}}aR.ShaderIndexer=1,ve("BABYLON.PBRCustomMaterial",aR);const q9e="firePixelShader",Jqe=`precision highp float;uniform vec4 vEyePosition;varying vec3 vPositionW;
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#ifdef DIFFUSE
varying vec2 vDiffuseUV;uniform sampler2D diffuseSampler;uniform vec2 vDiffuseInfos;
#endif
uniform sampler2D distortionSampler;uniform sampler2D opacitySampler;
#ifdef DIFFUSE
varying vec2 vDistortionCoords1;varying vec2 vDistortionCoords2;varying vec2 vDistortionCoords3;
#endif
#include<clipPlaneFragmentDeclaration>
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
vec4 bx2(vec4 x)
{return vec4(2.0)*x-vec4(1.0);}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);float alpha=1.0;
#ifdef DIFFUSE
const float distortionAmount0 =0.092;const float distortionAmount1 =0.092;const float distortionAmount2 =0.092;vec2 heightAttenuation=vec2(0.3,0.39);vec4 noise0=texture2D(distortionSampler,vDistortionCoords1);vec4 noise1=texture2D(distortionSampler,vDistortionCoords2);vec4 noise2=texture2D(distortionSampler,vDistortionCoords3);vec4 noiseSum=bx2(noise0)*distortionAmount0+bx2(noise1)*distortionAmount1+bx2(noise2)*distortionAmount2;vec4 perturbedBaseCoords=vec4(vDiffuseUV,0.0,1.0)+noiseSum*(vDiffuseUV.y*heightAttenuation.x+heightAttenuation.y);vec4 opacityColor=texture2D(opacitySampler,perturbedBaseCoords.xy);
#ifdef ALPHATEST
if (opacityColor.r<0.1)
discard;
#endif
#include<depthPrePass>
baseColor=texture2D(diffuseSampler,perturbedBaseCoords.xy)*2.0;baseColor*=opacityColor;baseColor.rgb*=vDiffuseInfos.y;
#endif
#ifdef VERTEXCOLOR
baseColor.rgb*=vColor.rgb;
#endif
vec3 diffuseBase=vec3(1.0,1.0,1.0);
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
vec4 color=vec4(baseColor.rgb,alpha);
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[q9e]||(H.ShadersStore[q9e]=Jqe);const Q9e="fireVertexShader",$qe=`precision highp float;attribute vec3 position;
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
uniform mat4 view;uniform mat4 viewProjection;
#ifdef DIFFUSE
varying vec2 vDiffuseUV;
#endif
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<clipPlaneVertexDeclaration>
#include<logDepthDeclaration>
#include<fogVertexDeclaration>
uniform float time;uniform float speed;
#ifdef DIFFUSE
varying vec2 vDistortionCoords1;varying vec2 vDistortionCoords2;varying vec2 vDistortionCoords3;
#endif
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);
#ifdef DIFFUSE
vDiffuseUV=uv;vDiffuseUV.y-=0.2;
#endif
#include<clipPlaneVertex>
#include<logDepthVertex>
#include<fogVertex>
#include<vertexColorMixing>
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#ifdef DIFFUSE
vec3 layerSpeed=vec3(-0.2,-0.52,-0.1)*speed;vDistortionCoords1.x=uv.x;vDistortionCoords1.y=uv.y+layerSpeed.x*time/1000.0;vDistortionCoords2.x=uv.x;vDistortionCoords2.y=uv.y+layerSpeed.y*time/1000.0;vDistortionCoords3.x=uv.x;vDistortionCoords3.y=uv.y+layerSpeed.z*time/1000.0;
#endif
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[Q9e]||(H.ShadersStore[Q9e]=$qe);class eQe extends Br{constructor(){super(),this.DIFFUSE=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.POINTSIZE=!1,this.FOG=!1,this.UV1=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.BonesPerMesh=0,this.NUM_BONE_INFLUENCERS=0,this.INSTANCES=!1,this.INSTANCESCOLOR=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.LOGARITHMICDEPTH=!1,this.rebuild()}}class N4 extends po{constructor(e,t){super(e,t),this.diffuseColor=new Pe(1,1,1),this.speed=1,this._scaledDiffuse=new Pe,this._lastTime=0}needAlphaBlending(){return!1}needAlphaTesting(){return!0}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t,i){const s=t._drawWrapper;if(this.isFrozen&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new eQe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;const o=n.getEngine();if(r._areTexturesDirty&&(r._needUVs=!1,this._diffuseTexture&&Pt.DiffuseTextureEnabled))if(this._diffuseTexture.isReady())r._needUVs=!0,r.DIFFUSE=!0;else return!1;if(r.ALPHATEST=!!this._opacityTexture,r._areMiscDirty&&(r.POINTSIZE=this.pointsCloud||n.forcePointsCloud,r.FOG=n.fogEnabled&&e.applyFog&&n.fogMode!==ui.FOGMODE_NONE&&this.fogEnabled,r.LOGARITHMICDEPTH=this._useLogarithmicDepth),od(n,o,this,r,!!i),zo(e,r,!1,!0),r.isDirty){r.markAsProcessed(),n.resetCachedMaterial();const l=new Ra;r.FOG&&l.addFallback(1,"FOG"),r.NUM_BONE_INFLUENCERS>0&&l.addCPUSkinningFallback(0,e),r.IMAGEPROCESSINGPOSTPROCESS=n.imageProcessingConfiguration.applyByPostProcess;const c=[q.PositionKind];r.UV1&&c.push(q.UVKind),r.VERTEXCOLOR&&c.push(q.ColorKind),G1(c,e,r,l),Qo(c,r);const u="fire",f=["world","view","viewProjection","vEyePosition","vFogInfos","vFogColor","pointSize","vDiffuseInfos","mBones","diffuseMatrix","logarithmicDepthConstant","time","speed"];qo(f);const p=r.toString();t.setEffect(n.getEngine().createEffect(u,{attributes:c,uniformsNames:f,uniformBuffersNames:[],samplers:["diffuseSampler","distortionSampler","opacitySampler"],defines:p,fallbacks:l,onCompiled:this.onCompiled,onError:this.onError,indexParameters:null,maxSimultaneousLights:4,transformFeedbackVaryings:null},o),r,this._materialContext)}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),Pc(t,this._activeEffect),this._mustRebind(s,n,i)&&(this._diffuseTexture&&Pt.DiffuseTextureEnabled&&(this._activeEffect.setTexture("diffuseSampler",this._diffuseTexture),this._activeEffect.setFloat2("vDiffuseInfos",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),this._activeEffect.setMatrix("diffuseMatrix",this._diffuseTexture.getTextureMatrix()),this._activeEffect.setTexture("distortionSampler",this._distortionTexture),this._activeEffect.setTexture("opacitySampler",this._opacityTexture)),Bo(this._activeEffect,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._useLogarithmicDepth&&ml(r,n,s),s.bindEyePosition(n)),this._activeEffect.setColor4("vDiffuseColor",this._scaledDiffuse,this.alpha*t.visibility),s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect),this._lastTime+=s.getEngine().getDeltaTime(),this._activeEffect.setFloat("time",this._lastTime),this._activeEffect.setFloat("speed",this.speed),this._afterBind(t,this._activeEffect,i))}getAnimatables(){const e=[];return this._diffuseTexture&&this._diffuseTexture.animations&&this._diffuseTexture.animations.length>0&&e.push(this._diffuseTexture),this._distortionTexture&&this._distortionTexture.animations&&this._distortionTexture.animations.length>0&&e.push(this._distortionTexture),this._opacityTexture&&this._opacityTexture.animations&&this._opacityTexture.animations.length>0&&e.push(this._opacityTexture),e}getActiveTextures(){const e=super.getActiveTextures();return this._diffuseTexture&&e.push(this._diffuseTexture),this._distortionTexture&&e.push(this._distortionTexture),this._opacityTexture&&e.push(this._opacityTexture),e}hasTexture(e){return!!(super.hasTexture(e)||this._diffuseTexture===e||this._distortionTexture===e||this._opacityTexture===e)}getClassName(){return"FireMaterial"}dispose(e){this._diffuseTexture&&this._diffuseTexture.dispose(),this._distortionTexture&&this._distortionTexture.dispose(),super.dispose(e)}clone(e){return It.Clone(()=>new N4(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.FireMaterial",e.diffuseColor=this.diffuseColor.asArray(),e.speed=this.speed,this._diffuseTexture&&(e._diffuseTexture=this._diffuseTexture.serialize()),this._distortionTexture&&(e._distortionTexture=this._distortionTexture.serialize()),this._opacityTexture&&(e._opacityTexture=this._opacityTexture.serialize()),e}static Parse(e,t,i){const s=new N4(e.name,t);return s.diffuseColor=Pe.FromArray(e.diffuseColor),s.speed=e.speed,s.alpha=e.alpha,s.id=e.id,ar.AddTagsTo(s,e.tags),s.backFaceCulling=e.backFaceCulling,s.wireframe=e.wireframe,e._diffuseTexture&&(s._diffuseTexture=be.Parse(e._diffuseTexture,t,i)),e._distortionTexture&&(s._distortionTexture=be.Parse(e._distortionTexture,t,i)),e._opacityTexture&&(s._opacityTexture=be.Parse(e._opacityTexture,t,i)),s}}F([Yi("diffuseTexture")],N4.prototype,"_diffuseTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],N4.prototype,"diffuseTexture",void 0),F([Yi("distortionTexture")],N4.prototype,"_distortionTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],N4.prototype,"distortionTexture",void 0),F([Yi("opacityTexture")],N4.prototype,"_opacityTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],N4.prototype,"opacityTexture",void 0),F([qs("diffuse")],N4.prototype,"diffuseColor",void 0),F([G()],N4.prototype,"speed",void 0),ve("BABYLON.FireMaterial",N4);const J9e="furPixelShader",tQe=`precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;uniform vec4 furColor;uniform float furLength;varying vec3 vPositionW;varying float vfur_length;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<helperFunctions>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#ifdef DIFFUSE
varying vec2 vDiffuseUV;uniform sampler2D diffuseSampler;uniform vec2 vDiffuseInfos;
#endif
#ifdef HIGHLEVEL
uniform float furOffset;uniform float furOcclusion;uniform sampler2D furTexture;varying vec2 vFurUV;
#endif
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#include<fogFragmentDeclaration>
#include<clipPlaneFragmentDeclaration>
float Rand(vec3 rv) {float x=dot(rv,vec3(12.9898,78.233,24.65487));return fract(sin(x)*43758.5453);}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=furColor;vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;
#ifdef DIFFUSE
baseColor*=texture2D(diffuseSampler,vDiffuseUV);
#ifdef ALPHATEST
if (baseColor.a<0.4)
discard;
#endif
#include<depthPrePass>
baseColor.rgb*=vDiffuseInfos.y;
#endif
#ifdef VERTEXCOLOR
baseColor.rgb*=vColor.rgb;
#endif
#ifdef NORMAL
vec3 normalW=normalize(vNormalW);
#else
vec3 normalW=vec3(1.0,1.0,1.0);
#endif
#ifdef HIGHLEVEL
vec4 furTextureColor=texture2D(furTexture,vec2(vFurUV.x,vFurUV.y));if (furTextureColor.a<=0.0 || furTextureColor.g<furOffset) {discard;}
float occlusion=mix(0.0,furTextureColor.b*1.2,furOffset);baseColor=vec4(baseColor.xyz*max(occlusion,furOcclusion),1.1-furOffset);
#endif
vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float glossiness=0.;float aggShadow=0.;float numLights=0.;
#ifdef SPECULARTERM
vec3 specularBase=vec3(0.,0.,0.);
#endif
#include<lightFragment>[0..maxSimultaneousLights]
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
vec3 finalDiffuse=clamp(diffuseBase.rgb*baseColor.rgb,0.0,1.0);
#ifdef HIGHLEVEL
vec4 color=vec4(finalDiffuse,alpha);
#else
float r=vfur_length/furLength*0.5;vec4 color=vec4(finalDiffuse*(0.5+r),alpha);
#endif
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[J9e]||(H.ShadersStore[J9e]=tQe);const $9e="furVertexShader",iQe=`precision highp float;attribute vec3 position;attribute vec3 normal;
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
uniform float furLength;uniform float furAngle;
#ifdef HIGHLEVEL
uniform float furOffset;uniform vec3 furGravity;uniform float furTime;uniform float furSpacing;uniform float furDensity;
#endif
#ifdef HEIGHTMAP
uniform sampler2D heightTexture;
#endif
#ifdef HIGHLEVEL
varying vec2 vFurUV;
#endif
#include<instancesDeclaration>
uniform mat4 view;uniform mat4 viewProjection;
#ifdef DIFFUSE
varying vec2 vDiffuseUV;uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;
#endif
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
varying float vfur_length;
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<clipPlaneVertexDeclaration>
#include<logDepthDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
float Rand(vec3 rv) {float x=dot(rv,vec3(12.9898,78.233,24.65487));return fract(sin(x)*43758.5453);}
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
float r=Rand(position);
#ifdef HEIGHTMAP
#if __VERSION__>100
vfur_length=furLength*texture(heightTexture,uv).x;
#else
vfur_length=furLength*texture2D(heightTexture,uv).r;
#endif
#else 
vfur_length=(furLength*r);
#endif
vec3 tangent1=vec3(normal.y,-normal.x,0);vec3 tangent2=vec3(-normal.z,0,normal.x);r=Rand(tangent1*r);float J=(2.0+4.0*r);r=Rand(tangent2*r);float K=(2.0+2.0*r);tangent1=tangent1*J+tangent2*K;tangent1=normalize(tangent1);vec3 newPosition=position+normal*vfur_length*cos(furAngle)+tangent1*vfur_length*sin(furAngle);
#ifdef HIGHLEVEL
vec3 forceDirection=vec3(0.0,0.0,0.0);forceDirection.x=sin(furTime+position.x*0.05)*0.2;forceDirection.y=cos(furTime*0.7+position.y*0.04)*0.2;forceDirection.z=sin(furTime*0.7+position.z*0.04)*0.2;vec3 displacement=vec3(0.0,0.0,0.0);displacement=furGravity+forceDirection;float displacementFactor=pow(furOffset,3.0);vec3 aNormal=normal;aNormal.xyz+=displacement*displacementFactor;newPosition=vec3(newPosition.x,newPosition.y,newPosition.z)+(normalize(aNormal)*furOffset*furSpacing);
#endif
#ifdef NORMAL
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
#endif
gl_Position=viewProjection*finalWorld*vec4(newPosition,1.0);vec4 worldPos=finalWorld*vec4(newPosition,1.0);vPositionW=vec3(worldPos);
#ifndef UV1
vec2 uv=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2=vec2(0.,0.);
#endif
#ifdef DIFFUSE
if (vDiffuseInfos.x==0.)
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}
else
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}
#ifdef HIGHLEVEL
vFurUV=vDiffuseUV*furDensity;
#endif
#else
#ifdef HIGHLEVEL
vFurUV=uv*furDensity;
#endif
#endif
#include<clipPlaneVertex>
#include<logDepthVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[$9e]||(H.ShadersStore[$9e]=iQe);class sQe extends Br{constructor(){super(),this.DIFFUSE=!1,this.HEIGHTMAP=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.POINTSIZE=!1,this.FOG=!1,this.NORMAL=!1,this.UV1=!1,this.UV2=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.INSTANCES=!1,this.INSTANCESCOLOR=!1,this.HIGHLEVEL=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.LOGARITHMICDEPTH=!1,this.AREALIGHTSUPPORTED=!0,this.AREALIGHTNOROUGHTNESS=!0,this.rebuild()}}class Eo extends po{constructor(e,t){super(e,t),this.diffuseColor=new Pe(1,1,1),this.furLength=1,this.furAngle=0,this.furColor=new Pe(.44,.21,.02),this.furOffset=0,this.furSpacing=12,this.furGravity=new P(0,0,0),this.furSpeed=100,this.furDensity=20,this.furOcclusion=0,this._disableLighting=!1,this._maxSimultaneousLights=4,this.highLevelFur=!0,this._furTime=0}get furTime(){return this._furTime}set furTime(e){this._furTime=e}needAlphaBlending(){return this.alpha<1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}updateFur(){for(let e=1;e<this._meshes.length;e++){const t=this._meshes[e].material;t.furLength=this.furLength,t.furAngle=this.furAngle,t.furGravity=this.furGravity,t.furSpacing=this.furSpacing,t.furSpeed=this.furSpeed,t.furColor=this.furColor,t.diffuseTexture=this.diffuseTexture,t.furTexture=this.furTexture,t.highLevelFur=this.highLevelFur,t.furTime=this.furTime,t.furDensity=this.furDensity}}isReadyForSubMesh(e,t,i){const s=t._drawWrapper;if(this.isFrozen&&s.effect&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new sQe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;const o=n.getEngine();if(r._areTexturesDirty&&n.texturesEnabled){if(this.diffuseTexture&&Pt.DiffuseTextureEnabled)if(this.diffuseTexture.isReady())r._needUVs=!0,r.DIFFUSE=!0;else return!1;if(this.heightTexture&&o.getCaps().maxVertexTextureImageUnits)if(this.heightTexture.isReady())r._needUVs=!0,r.HEIGHTMAP=!0;else return!1}if(this.highLevelFur!==r.HIGHLEVEL&&(r.HIGHLEVEL=!0,r.markAsUnprocessed()),ad(e,n,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),r),r._needNormals=Jd(n,e,r,!1,this._maxSimultaneousLights,this._disableLighting),od(n,o,this,r,!!i),zo(e,r,!0,!0),r.isDirty){r.markAsProcessed(),n.resetCachedMaterial();const l=new Ra;r.FOG&&l.addFallback(1,"FOG"),Ql(r,l,this.maxSimultaneousLights),r.NUM_BONE_INFLUENCERS>0&&l.addCPUSkinningFallback(0,e),r.IMAGEPROCESSINGPOSTPROCESS=n.imageProcessingConfiguration.applyByPostProcess;const c=[q.PositionKind];r.NORMAL&&c.push(q.NormalKind),r.UV1&&c.push(q.UVKind),r.UV2&&c.push(q.UV2Kind),r.VERTEXCOLOR&&c.push(q.ColorKind),G1(c,e,r,l),Qo(c,r);const u="fur",f=r.toString(),p=["world","view","viewProjection","vEyePosition","vLightsType","vDiffuseColor","vFogInfos","vFogColor","pointSize","vDiffuseInfos","mBones","diffuseMatrix","logarithmicDepthConstant","furLength","furAngle","furColor","furOffset","furGravity","furTime","furSpacing","furDensity","furOcclusion"];qo(p);const m=["diffuseSampler","heightTexture","furTexture","areaLightsLTC1Sampler","areaLightsLTC2Sampler"],_=[];gl({uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:r,maxSimultaneousLights:this.maxSimultaneousLights}),t.setEffect(n.getEngine().createEffect(u,{attributes:c,uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:f,fallbacks:l,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:this.maxSimultaneousLights}},o),r,this._materialContext)}if(r.AREALIGHTUSED){for(let l=0;l<e.lightSources.length;l++)if(!e.lightSources[l]._isReady())return!1}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),Pc(t,this._activeEffect),this._mustRebind(s,n,i)&&(this._diffuseTexture&&Pt.DiffuseTextureEnabled&&(this._activeEffect.setTexture("diffuseSampler",this._diffuseTexture),this._activeEffect.setFloat2("vDiffuseInfos",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),this._activeEffect.setMatrix("diffuseMatrix",this._diffuseTexture.getTextureMatrix())),this._heightTexture&&this._activeEffect.setTexture("heightTexture",this._heightTexture),Bo(this._activeEffect,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._useLogarithmicDepth&&ml(r,n,s),s.bindEyePosition(n)),this._activeEffect.setColor4("vDiffuseColor",this.diffuseColor,this.alpha*t.visibility),s.lightsEnabled&&!this.disableLighting&&Qd(s,t,this._activeEffect,r,this.maxSimultaneousLights),s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect),this._activeEffect.setFloat("furLength",this.furLength),this._activeEffect.setFloat("furAngle",this.furAngle),this._activeEffect.setColor4("furColor",this.furColor,1),this.highLevelFur&&(this._activeEffect.setVector3("furGravity",this.furGravity),this._activeEffect.setFloat("furOffset",this.furOffset),this._activeEffect.setFloat("furSpacing",this.furSpacing),this._activeEffect.setFloat("furDensity",this.furDensity),this._activeEffect.setFloat("furOcclusion",this.furOcclusion),this._furTime+=this.getScene().getEngine().getDeltaTime()/this.furSpeed,this._activeEffect.setFloat("furTime",this._furTime),this._activeEffect.setTexture("furTexture",this.furTexture)),this._afterBind(t,this._activeEffect,i))}getAnimatables(){const e=[];return this.diffuseTexture&&this.diffuseTexture.animations&&this.diffuseTexture.animations.length>0&&e.push(this.diffuseTexture),this.heightTexture&&this.heightTexture.animations&&this.heightTexture.animations.length>0&&e.push(this.heightTexture),e}getActiveTextures(){const e=super.getActiveTextures();return this._diffuseTexture&&e.push(this._diffuseTexture),this._heightTexture&&e.push(this._heightTexture),e}hasTexture(e){return!!(super.hasTexture(e)||this.diffuseTexture===e||this._heightTexture===e)}dispose(e){if(this.diffuseTexture&&this.diffuseTexture.dispose(),this._meshes)for(let t=1;t<this._meshes.length;t++){const i=this._meshes[t].material;i&&i.dispose(e),this._meshes[t].dispose()}super.dispose(e)}clone(e){return It.Clone(()=>new Eo(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.FurMaterial",this._meshes&&(e.sourceMeshName=this._meshes[0].name,e.quality=this._meshes.length),e}getClassName(){return"FurMaterial"}static Parse(e,t,i){const s=It.Parse(()=>new Eo(e.name,t),e,t,i);return e.sourceMeshName&&s.highLevelFur&&t.executeWhenReady(()=>{const r=t.getMeshByName(e.sourceMeshName);if(r){const n=Eo.GenerateTexture("Fur Texture",t);s.furTexture=n,Eo.FurifyMesh(r,e.quality)}}),s}static GenerateTexture(e,t){const i=new uf("FurTexture "+e,256,t,!0),s=i.getContext();for(let r=0;r<2e4;++r)s.fillStyle="rgba(255, "+Math.floor(Math.random()*255)+", "+Math.floor(Math.random()*255)+", 1)",s.fillRect(Math.random()*i.getSize().width,Math.random()*i.getSize().height,2,2);return i.update(!1),i.wrapU=be.WRAP_ADDRESSMODE,i.wrapV=be.WRAP_ADDRESSMODE,i}static FurifyMesh(e,t){const i=[e],s=e.material;let r;if(!(s instanceof Eo))throw"The material of the source mesh must be a Fur Material";for(r=1;r<t;r++){const n=new Eo(s.name+r,e.getScene());e.getScene().materials.pop(),ar.EnableFor(n),ar.AddTagsTo(n,"furShellMaterial"),n.furLength=s.furLength,n.furAngle=s.furAngle,n.furGravity=s.furGravity,n.furSpacing=s.furSpacing,n.furSpeed=s.furSpeed,n.furColor=s.furColor,n.diffuseTexture=s.diffuseTexture,n.furOffset=r/t,n.furTexture=s.furTexture,n.highLevelFur=s.highLevelFur,n.furTime=s.furTime,n.furDensity=s.furDensity;const o=e.clone(e.name+r);o.material=n,o.skeleton=e.skeleton,o.position=P.Zero(),i.push(o)}for(r=1;r<i.length;r++)i[r].parent=e;return e.material._meshes=i,i}}F([Yi("diffuseTexture")],Eo.prototype,"_diffuseTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Eo.prototype,"diffuseTexture",void 0),F([Yi("heightTexture")],Eo.prototype,"_heightTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Eo.prototype,"heightTexture",void 0),F([qs()],Eo.prototype,"diffuseColor",void 0),F([G()],Eo.prototype,"furLength",void 0),F([G()],Eo.prototype,"furAngle",void 0),F([qs()],Eo.prototype,"furColor",void 0),F([G()],Eo.prototype,"furOffset",void 0),F([G()],Eo.prototype,"furSpacing",void 0),F([Ma()],Eo.prototype,"furGravity",void 0),F([G()],Eo.prototype,"furSpeed",void 0),F([G()],Eo.prototype,"furDensity",void 0),F([G()],Eo.prototype,"furOcclusion",void 0),F([G("disableLighting")],Eo.prototype,"_disableLighting",void 0),F([et("_markAllSubMeshesAsLightsDirty")],Eo.prototype,"disableLighting",void 0),F([G("maxSimultaneousLights")],Eo.prototype,"_maxSimultaneousLights",void 0),F([et("_markAllSubMeshesAsLightsDirty")],Eo.prototype,"maxSimultaneousLights",void 0),F([G()],Eo.prototype,"highLevelFur",void 0),F([G()],Eo.prototype,"furTime",null),ve("BABYLON.FurMaterial",Eo);const eLe="gradientPixelShader",rQe=`precision highp float;uniform vec4 vEyePosition;uniform vec4 topColor;uniform vec4 bottomColor;uniform float offset;uniform float scale;uniform float smoothness;varying vec3 vPositionW;varying vec3 vPosition;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<helperFunctions>
#include<__decl__lightFragment>[0]
#include<__decl__lightFragment>[1]
#include<__decl__lightFragment>[2]
#include<__decl__lightFragment>[3]
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#include<clipPlaneFragmentDeclaration>
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);float h=vPosition.y*scale+offset;float mysmoothness=clamp(smoothness,0.01,max(smoothness,10.));vec4 baseColor=mix(bottomColor,topColor,max(pow(max(h,0.0),mysmoothness),0.0));vec3 diffuseColor=baseColor.rgb;float alpha=baseColor.a;
#ifdef ALPHATEST
if (baseColor.a<0.4)
discard;
#endif
#include<depthPrePass>
#ifdef VERTEXCOLOR
baseColor.rgb*=vColor.rgb;
#endif
#ifdef NORMAL
vec3 normalW=normalize(vNormalW);
#else
vec3 normalW=vec3(1.0,1.0,1.0);
#endif
#ifdef EMISSIVE
vec3 diffuseBase=baseColor.rgb;
#else
vec3 diffuseBase=vec3(0.,0.,0.);
#endif
lightingInfo info;float shadow=1.;float glossiness=0.;float aggShadow=0.;float numLights=0.;
#include<lightFragment>[0..maxSimultaneousLights]
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4 color=vec4(finalDiffuse,alpha);
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStore[eLe]||(H.ShadersStore[eLe]=rQe);const tLe="gradientVertexShader",nQe=`precision highp float;attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
uniform mat4 view;uniform mat4 viewProjection;
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;varying vec3 vPosition;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<clipPlaneVertexDeclaration>
#include<logDepthDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);vPosition=position;
#ifdef NORMAL
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
#endif
#ifndef UV1
vec2 uv=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2=vec2(0.,0.);
#endif
#include<clipPlaneVertex>
#include<logDepthVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[tLe]||(H.ShadersStore[tLe]=nQe);class aQe extends Br{constructor(){super(),this.EMISSIVE=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.POINTSIZE=!1,this.FOG=!1,this.NORMAL=!1,this.UV1=!1,this.UV2=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.INSTANCES=!1,this.INSTANCESCOLOR=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.LOGARITHMICDEPTH=!1,this.AREALIGHTSUPPORTED=!0,this.AREALIGHTNOROUGHTNESS=!0,this.rebuild()}}class pf extends po{constructor(e,t){super(e,t),this._maxSimultaneousLights=4,this.topColor=new Pe(1,0,0),this.topColorAlpha=1,this.bottomColor=new Pe(0,0,1),this.bottomColorAlpha=1,this.offset=0,this.scale=1,this.smoothness=1,this._disableLighting=!1}needAlphaBlending(){return this.alpha<1||this.topColorAlpha<1||this.bottomColorAlpha<1}needAlphaTesting(){return!0}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t,i){const s=t._drawWrapper;if(this.isFrozen&&s.effect&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new aQe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;const o=n.getEngine();if(od(n,o,this,r,!!i),ad(e,n,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),r),r._needNormals=Jd(n,e,r,!1,this._maxSimultaneousLights,this._disableLighting),r.EMISSIVE=this._disableLighting,zo(e,r,!1,!0),r.isDirty){r.markAsProcessed(),n.resetCachedMaterial();const l=new Ra;r.FOG&&l.addFallback(1,"FOG"),Ql(r,l),r.NUM_BONE_INFLUENCERS>0&&l.addCPUSkinningFallback(0,e),r.IMAGEPROCESSINGPOSTPROCESS=n.imageProcessingConfiguration.applyByPostProcess;const c=[q.PositionKind];r.NORMAL&&c.push(q.NormalKind),r.UV1&&c.push(q.UVKind),r.UV2&&c.push(q.UV2Kind),r.VERTEXCOLOR&&c.push(q.ColorKind),G1(c,e,r,l),Qo(c,r);const u="gradient",f=r.toString(),p=["world","view","viewProjection","vEyePosition","vLightsType","vFogInfos","vFogColor","pointSize","mBones","logarithmicDepthConstant","topColor","bottomColor","offset","smoothness","scale"];qo(p);const m=["areaLightsLTC1Sampler","areaLightsLTC2Sampler"],_=[];gl({uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:r,maxSimultaneousLights:4}),t.setEffect(n.getEngine().createEffect(u,{attributes:c,uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:f,fallbacks:l,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:4}},o),r,this._materialContext)}if(r.AREALIGHTUSED){for(let l=0;l<e.lightSources.length;l++)if(!e.lightSources[l]._isReady())return!1}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),Pc(t,n),this._mustRebind(s,n,i)&&(Bo(n,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._useLogarithmicDepth&&ml(r,n,s),s.bindEyePosition(n)),s.lightsEnabled&&!this.disableLighting&&Qd(s,t,this._activeEffect,r,this.maxSimultaneousLights),s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect),this._activeEffect.setColor4("topColor",this.topColor,this.topColorAlpha),this._activeEffect.setColor4("bottomColor",this.bottomColor,this.bottomColorAlpha),this._activeEffect.setFloat("offset",this.offset),this._activeEffect.setFloat("scale",this.scale),this._activeEffect.setFloat("smoothness",this.smoothness),this._afterBind(t,this._activeEffect,i))}getAnimatables(){return[]}dispose(e){super.dispose(e)}clone(e){return It.Clone(()=>new pf(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.GradientMaterial",e}getClassName(){return"GradientMaterial"}static Parse(e,t,i){return It.Parse(()=>new pf(e.name,t),e,t,i)}}F([G("maxSimultaneousLights")],pf.prototype,"_maxSimultaneousLights",void 0),F([et("_markAllSubMeshesAsLightsDirty")],pf.prototype,"maxSimultaneousLights",void 0),F([qs()],pf.prototype,"topColor",void 0),F([G()],pf.prototype,"topColorAlpha",void 0),F([qs()],pf.prototype,"bottomColor",void 0),F([G()],pf.prototype,"bottomColorAlpha",void 0),F([G()],pf.prototype,"offset",void 0),F([G()],pf.prototype,"scale",void 0),F([G()],pf.prototype,"smoothness",void 0),F([G("disableLighting")],pf.prototype,"_disableLighting",void 0),F([et("_markAllSubMeshesAsLightsDirty")],pf.prototype,"disableLighting",void 0),ve("BABYLON.GradientMaterial",pf);const iLe="gridPixelShader",oQe=`#extension GL_OES_standard_derivatives : enable
#define SQRT2 1.41421356
#define PI 3.14159
precision highp float;uniform float visibility;uniform vec3 mainColor;uniform vec3 lineColor;uniform vec4 gridControl;uniform vec3 gridOffset;varying vec3 vPosition;varying vec3 vNormal;
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<clipPlaneFragmentDeclaration>
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
#ifdef OPACITY
varying vec2 vOpacityUV;uniform sampler2D opacitySampler;uniform vec2 vOpacityInfos;
#endif
float getDynamicVisibility(float position) {float majorGridFrequency=gridControl.y;if (floor(position+0.5)==floor(position/majorGridFrequency+0.5)*majorGridFrequency)
{return 1.0;}
return gridControl.z;}
float getAnisotropicAttenuation(float differentialLength) {const float maxNumberOfLines=10.0;return clamp(1.0/(differentialLength+1.0)-1.0/maxNumberOfLines,0.0,1.0);}
float isPointOnLine(float position,float differentialLength) {float fractionPartOfPosition=position-floor(position+0.5); 
fractionPartOfPosition/=differentialLength; 
#ifdef ANTIALIAS
fractionPartOfPosition=clamp(fractionPartOfPosition,-1.,1.);float result=0.5+0.5*cos(fractionPartOfPosition*PI); 
return result;
#else
return abs(fractionPartOfPosition)<SQRT2/4. ? 1. : 0.;
#endif
}
float contributionOnAxis(float position) {float differentialLength=length(vec2(dFdx(position),dFdy(position)));differentialLength*=SQRT2; 
float result=isPointOnLine(position,differentialLength);float dynamicVisibility=getDynamicVisibility(position);result*=dynamicVisibility;float anisotropicAttenuation=getAnisotropicAttenuation(differentialLength);result*=anisotropicAttenuation;return result;}
float normalImpactOnAxis(float x) {float normalImpact=clamp(1.0-3.0*abs(x*x*x),0.0,1.0);return normalImpact;}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
float gridRatio=gridControl.x;vec3 gridPos=(vPosition+gridOffset.xyz)/gridRatio;float x=contributionOnAxis(gridPos.x);float y=contributionOnAxis(gridPos.y);float z=contributionOnAxis(gridPos.z);vec3 normal=normalize(vNormal);x*=normalImpactOnAxis(normal.x);y*=normalImpactOnAxis(normal.y);z*=normalImpactOnAxis(normal.z);
#ifdef MAX_LINE
float grid=clamp(max(max(x,y),z),0.,1.);
#else
float grid=clamp(x+y+z,0.,1.);
#endif
vec3 color=mix(mainColor,lineColor,grid);
#ifdef FOG
#include<fogFragment>
#endif
float opacity=1.0;
#ifdef TRANSPARENT
opacity=clamp(grid,0.08,gridControl.w*grid);
#endif
#ifdef OPACITY
opacity*=texture2D(opacitySampler,vOpacityUV).a;
#endif
gl_FragColor=vec4(color.rgb,opacity*visibility);
#ifdef TRANSPARENT
#ifdef PREMULTIPLYALPHA
gl_FragColor.rgb*=opacity;
#endif
#else
#endif
#include<logDepthFragment>
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStore[iLe]||(H.ShadersStore[iLe]=oQe);const sLe="gridVertexShader",lQe=`precision highp float;attribute vec3 position;attribute vec3 normal;
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#include<instancesDeclaration>
uniform mat4 projection;uniform mat4 view;varying vec3 vPosition;varying vec3 vNormal;
#include<logDepthDeclaration>
#include<fogVertexDeclaration>
#ifdef OPACITY
varying vec2 vOpacityUV;uniform mat4 opacityMatrix;uniform vec2 vOpacityInfos;
#endif
#include<clipPlaneVertexDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#include<instancesVertex>
vec4 worldPos=finalWorld*vec4(position,1.0);
#include<fogVertex>
vec4 cameraSpacePosition=view*worldPos;gl_Position=projection*cameraSpacePosition;
#ifdef OPACITY
#ifndef UV1
vec2 uv=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2=vec2(0.,0.);
#endif
if (vOpacityInfos.x==0.)
{vOpacityUV=vec2(opacityMatrix*vec4(uv,1.0,0.0));}
else
{vOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0));}
#endif 
#include<clipPlaneVertex>
#include<logDepthVertex>
vPosition=position;vNormal=normal;
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[sLe]||(H.ShadersStore[sLe]=lQe);class cQe extends Br{constructor(){super(),this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.OPACITY=!1,this.ANTIALIAS=!1,this.TRANSPARENT=!1,this.FOG=!1,this.PREMULTIPLYALPHA=!1,this.MAX_LINE=!1,this.UV1=!1,this.UV2=!1,this.INSTANCES=!1,this.THIN_INSTANCES=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.LOGARITHMICDEPTH=!1,this.rebuild()}}class i2 extends po{constructor(e,t){super(e,t),this.mainColor=Pe.Black(),this.lineColor=Pe.Teal(),this.gridRatio=1,this.gridOffset=P.Zero(),this.majorUnitFrequency=10,this.minorUnitVisibility=.33,this.opacity=1,this.antialias=!0,this.preMultiplyAlpha=!1,this.useMaxLine=!1,this._gridControl=new Yt(this.gridRatio,this.majorUnitFrequency,this.minorUnitVisibility,this.opacity)}needAlphaBlending(){return this.opacity<1||this._opacityTexture&&this._opacityTexture.isReady()}needAlphaBlendingForMesh(e){return e.visibility<1||this.needAlphaBlending()}isReadyForSubMesh(e,t,i){const s=t._drawWrapper;if(this.isFrozen&&s.effect&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new cQe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;if(r.TRANSPARENT!==this.opacity<1&&(r.TRANSPARENT=!r.TRANSPARENT,r.markAsUnprocessed()),r.PREMULTIPLYALPHA!=this.preMultiplyAlpha&&(r.PREMULTIPLYALPHA=!r.PREMULTIPLYALPHA,r.markAsUnprocessed()),r.MAX_LINE!==this.useMaxLine&&(r.MAX_LINE=!r.MAX_LINE,r.markAsUnprocessed()),r.ANTIALIAS!==this.antialias&&(r.ANTIALIAS=!r.ANTIALIAS,r.markAsUnprocessed()),r._areTexturesDirty&&(r._needUVs=!1,n.texturesEnabled&&this._opacityTexture&&Pt.OpacityTextureEnabled))if(this._opacityTexture.isReady())r._needUVs=!0,r.OPACITY=!0;else return!1;if(ad(e,n,this._useLogarithmicDepth,!1,this.fogEnabled,!1,r),od(n,n.getEngine(),this,r,!!i),r.isDirty){r.markAsProcessed(),n.resetCachedMaterial(),zo(e,r,!1,!1);const o=[q.PositionKind,q.NormalKind];r.UV1&&o.push(q.UVKind),r.UV2&&o.push(q.UV2Kind),r.IMAGEPROCESSINGPOSTPROCESS=n.imageProcessingConfiguration.applyByPostProcess,Qo(o,r);const l=["projection","mainColor","lineColor","gridControl","gridOffset","vFogInfos","vFogColor","world","view","opacityMatrix","vOpacityInfos","visibility","logarithmicDepthConstant"],c=r.toString();qo(l),t.setEffect(n.getEngine().createEffect("grid",o,l,["opacitySampler"],c,void 0,this.onCompiled,this.onError),r,this._materialContext)}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;n&&(this._activeEffect=n,this._activeEffect.setFloat("visibility",t.visibility),(!r.INSTANCES||r.THIN_INSTANCE)&&this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("view",s.getViewMatrix()),this._activeEffect.setMatrix("projection",s.getProjectionMatrix()),this._mustRebind(s,n,i)&&(this._activeEffect.setColor3("mainColor",this.mainColor),this._activeEffect.setColor3("lineColor",this.lineColor),this._activeEffect.setVector3("gridOffset",this.gridOffset),this._gridControl.x=this.gridRatio,this._gridControl.y=Math.round(this.majorUnitFrequency),this._gridControl.z=this.minorUnitVisibility,this._gridControl.w=this.opacity,this._activeEffect.setVector4("gridControl",this._gridControl),this._opacityTexture&&Pt.OpacityTextureEnabled&&(this._activeEffect.setTexture("opacitySampler",this._opacityTexture),this._activeEffect.setFloat2("vOpacityInfos",this._opacityTexture.coordinatesIndex,this._opacityTexture.level),this._activeEffect.setMatrix("opacityMatrix",this._opacityTexture.getTextureMatrix())),Bo(n,this,s),this._useLogarithmicDepth&&ml(r,n,s)),Ic(s,t,this._activeEffect),this._afterBind(t,this._activeEffect,i))}dispose(e){super.dispose(e)}clone(e){return It.Clone(()=>new i2(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.GridMaterial",e}getClassName(){return"GridMaterial"}static Parse(e,t,i){return It.Parse(()=>new i2(e.name,t),e,t,i)}}F([qs()],i2.prototype,"mainColor",void 0),F([qs()],i2.prototype,"lineColor",void 0),F([G()],i2.prototype,"gridRatio",void 0),F([Ma()],i2.prototype,"gridOffset",void 0),F([G()],i2.prototype,"majorUnitFrequency",void 0),F([G()],i2.prototype,"minorUnitVisibility",void 0),F([G()],i2.prototype,"opacity",void 0),F([G()],i2.prototype,"antialias",void 0),F([G()],i2.prototype,"preMultiplyAlpha",void 0),F([G()],i2.prototype,"useMaxLine",void 0),F([Yi("opacityTexture")],i2.prototype,"_opacityTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],i2.prototype,"opacityTexture",void 0),ve("BABYLON.GridMaterial",i2);const rLe="lavaPixelShader",uQe=`precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;varying vec3 vPositionW;uniform float time;uniform float speed;uniform float movingSpeed;uniform vec3 fogColor;uniform sampler2D noiseTexture;uniform float fogDensity;varying float noise;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<helperFunctions>
#include<__decl__lightFragment>[0]
#include<__decl__lightFragment>[1]
#include<__decl__lightFragment>[2]
#include<__decl__lightFragment>[3]
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#ifdef DIFFUSE
varying vec2 vDiffuseUV;uniform sampler2D diffuseSampler;uniform vec2 vDiffuseInfos;
#endif
#include<clipPlaneFragmentDeclaration>
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
float random( vec3 scale,float seed ){return fract( sin( dot( gl_FragCoord.xyz+seed,scale ) )*43758.5453+seed ) ;}
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;
#ifdef DIFFUSE
vec4 noiseTex=texture2D( noiseTexture,vDiffuseUV );vec2 T1=vDiffuseUV+vec2( 1.5,-1.5 )*time *0.02;vec2 T2=vDiffuseUV+vec2( -0.5,2.0 )*time*0.01*speed;T1.x+=noiseTex.x*2.0;T1.y+=noiseTex.y*2.0;T2.x-=noiseTex.y*0.2+time*0.001*movingSpeed;T2.y+=noiseTex.z*0.2+time*0.002*movingSpeed;float p=texture2D( noiseTexture,T1*3.0 ).a;vec4 lavaColor=texture2D( diffuseSampler,T2*4.0);vec4 temp=lavaColor*( vec4( p,p,p,p )*2. )+( lavaColor*lavaColor-0.1 );baseColor=temp;float depth=gl_FragCoord.z*4.0;const float LOG2=1.442695;float fogFactor=exp2(-fogDensity*fogDensity*depth*depth*LOG2 );fogFactor=1.0-clamp( fogFactor,0.0,1.0 );baseColor=mix( baseColor,vec4( fogColor,baseColor.w ),fogFactor );diffuseColor=baseColor.rgb;
#ifdef ALPHATEST
if (baseColor.a<0.4)
discard;
#endif
#include<depthPrePass>
baseColor.rgb*=vDiffuseInfos.y;
#endif
#ifdef VERTEXCOLOR
baseColor.rgb*=vColor.rgb;
#endif
#ifdef NORMAL
vec3 normalW=normalize(vNormalW);
#else
vec3 normalW=vec3(1.0,1.0,1.0);
#endif
#ifdef UNLIT
vec3 diffuseBase=vec3(1.,1.,1.);
#else
vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float glossiness=0.;float aggShadow=0.;float numLights=0.;
#include<lightFragment>[0]
#include<lightFragment>[1]
#include<lightFragment>[2]
#include<lightFragment>[3]
#endif
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4 color=vec4(finalDiffuse,alpha);
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[rLe]||(H.ShadersStore[rLe]=uQe);const nLe="lavaVertexShader",hQe=`precision highp float;uniform float time;uniform float lowFrequencySpeed;varying float noise;attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
uniform mat4 view;uniform mat4 viewProjection;
#ifdef DIFFUSE
varying vec2 vDiffuseUV;uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;
#endif
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<clipPlaneVertexDeclaration>
#include<logDepthDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
/* NOISE FUNCTIONS */
vec3 mod289(vec3 x)
{return x-floor(x*(1.0/289.0))*289.0;}
vec4 mod289(vec4 x)
{return x-floor(x*(1.0/289.0))*289.0;}
vec4 permute(vec4 x)
{return mod289(((x*34.0)+1.0)*x);}
vec4 taylorInvSqrt(vec4 r)
{return 1.79284291400159-0.85373472095314*r;}
vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}
float pnoise(vec3 P,vec3 rep)
{vec3 Pi0=mod(floor(P),rep); 
vec3 Pi1=mod(Pi0+vec3(1.0),rep); 
Pi0=mod289(Pi0);Pi1=mod289(Pi1);vec3 Pf0=fract(P); 
vec3 Pf1=Pf0-vec3(1.0); 
vec4 ix=vec4(Pi0.x,Pi1.x,Pi0.x,Pi1.x);vec4 iy=vec4(Pi0.yy,Pi1.yy);vec4 iz0=Pi0.zzzz;vec4 iz1=Pi1.zzzz;vec4 ixy=permute(permute(ix)+iy);vec4 ixy0=permute(ixy+iz0);vec4 ixy1=permute(ixy+iz1);vec4 gx0=ixy0*(1.0/7.0);vec4 gy0=fract(floor(gx0)*(1.0/7.0))-0.5;gx0=fract(gx0);vec4 gz0=vec4(0.5)-abs(gx0)-abs(gy0);vec4 sz0=step(gz0,vec4(0.0));gx0-=sz0*(step(0.0,gx0)-0.5);gy0-=sz0*(step(0.0,gy0)-0.5);vec4 gx1=ixy1*(1.0/7.0);vec4 gy1=fract(floor(gx1)*(1.0/7.0))-0.5;gx1=fract(gx1);vec4 gz1=vec4(0.5)-abs(gx1)-abs(gy1);vec4 sz1=step(gz1,vec4(0.0));gx1-=sz1*(step(0.0,gx1)-0.5);gy1-=sz1*(step(0.0,gy1)-0.5);vec3 g000=vec3(gx0.x,gy0.x,gz0.x);vec3 g100=vec3(gx0.y,gy0.y,gz0.y);vec3 g010=vec3(gx0.z,gy0.z,gz0.z);vec3 g110=vec3(gx0.w,gy0.w,gz0.w);vec3 g001=vec3(gx1.x,gy1.x,gz1.x);vec3 g101=vec3(gx1.y,gy1.y,gz1.y);vec3 g011=vec3(gx1.z,gy1.z,gz1.z);vec3 g111=vec3(gx1.w,gy1.w,gz1.w);vec4 norm0=taylorInvSqrt(vec4(dot(g000,g000),dot(g010,g010),dot(g100,g100),dot(g110,g110)));g000*=norm0.x;g010*=norm0.y;g100*=norm0.z;g110*=norm0.w;vec4 norm1=taylorInvSqrt(vec4(dot(g001,g001),dot(g011,g011),dot(g101,g101),dot(g111,g111)));g001*=norm1.x;g011*=norm1.y;g101*=norm1.z;g111*=norm1.w;float n000=dot(g000,Pf0);float n100=dot(g100,vec3(Pf1.x,Pf0.yz));float n010=dot(g010,vec3(Pf0.x,Pf1.y,Pf0.z));float n110=dot(g110,vec3(Pf1.xy,Pf0.z));float n001=dot(g001,vec3(Pf0.xy,Pf1.z));float n101=dot(g101,vec3(Pf1.x,Pf0.y,Pf1.z));float n011=dot(g011,vec3(Pf0.x,Pf1.yz));float n111=dot(g111,Pf1);vec3 fade_xyz=fade(Pf0);vec4 n_z=mix(vec4(n000,n100,n010,n110),vec4(n001,n101,n011,n111),fade_xyz.z);vec2 n_yz=mix(n_z.xy,n_z.zw,fade_xyz.y);float n_xyz=mix(n_yz.x,n_yz.y,fade_xyz.x);return 2.2*n_xyz;}
/* END FUNCTION */
float turbulence( vec3 p ) {float w=100.0;float t=-.5;for (float f=1.0 ; f<=10.0 ; f++ ){float power=pow( 2.0,f );t+=abs( pnoise( vec3( power*p ),vec3( 10.0,10.0,10.0 ) )/power );}
return t;}
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
#ifdef NORMAL
noise=10.0* -.10*turbulence( .5*normal+time*1.15 );float b=lowFrequencySpeed*5.0*pnoise( 0.05*position +vec3(time*1.025),vec3( 100.0 ) );float displacement=- 1.5*noise+b;vec3 newPosition=position+normal*displacement;gl_Position=viewProjection*finalWorld*vec4( newPosition,1.0 );vec4 worldPos=finalWorld*vec4(newPosition,1.0);vPositionW=vec3(worldPos);vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
#endif
#ifndef UV1
vec2 uv=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2=vec2(0.,0.);
#endif
#ifdef DIFFUSE
if (vDiffuseInfos.x==0.)
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}
else
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}
#endif
#include<clipPlaneVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#include<logDepthVertex>
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#define CUSTOM_VERTEX_MAIN_END
}`;H.ShadersStore[nLe]||(H.ShadersStore[nLe]=hQe);class dQe extends Br{constructor(){super(),this.DIFFUSE=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.POINTSIZE=!1,this.FOG=!1,this.LIGHT0=!1,this.LIGHT1=!1,this.LIGHT2=!1,this.LIGHT3=!1,this.SPOTLIGHT0=!1,this.SPOTLIGHT1=!1,this.SPOTLIGHT2=!1,this.SPOTLIGHT3=!1,this.HEMILIGHT0=!1,this.HEMILIGHT1=!1,this.HEMILIGHT2=!1,this.HEMILIGHT3=!1,this.DIRLIGHT0=!1,this.DIRLIGHT1=!1,this.DIRLIGHT2=!1,this.DIRLIGHT3=!1,this.POINTLIGHT0=!1,this.POINTLIGHT1=!1,this.POINTLIGHT2=!1,this.POINTLIGHT3=!1,this.SHADOW0=!1,this.SHADOW1=!1,this.SHADOW2=!1,this.SHADOW3=!1,this.SHADOWS=!1,this.SHADOWESM0=!1,this.SHADOWESM1=!1,this.SHADOWESM2=!1,this.SHADOWESM3=!1,this.SHADOWPOISSON0=!1,this.SHADOWPOISSON1=!1,this.SHADOWPOISSON2=!1,this.SHADOWPOISSON3=!1,this.SHADOWPCF0=!1,this.SHADOWPCF1=!1,this.SHADOWPCF2=!1,this.SHADOWPCF3=!1,this.SHADOWPCSS0=!1,this.SHADOWPCSS1=!1,this.SHADOWPCSS2=!1,this.SHADOWPCSS3=!1,this.NORMAL=!1,this.UV1=!1,this.UV2=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.INSTANCES=!1,this.INSTANCESCOLOR=!1,this.UNLIT=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.LOGARITHMICDEPTH=!1,this.AREALIGHTSUPPORTED=!0,this.AREALIGHTNOROUGHTNESS=!0,this.rebuild()}}class Lh extends po{constructor(e,t){super(e,t),this.speed=1,this.movingSpeed=1,this.lowFrequencySpeed=1,this.fogDensity=.15,this._lastTime=0,this.diffuseColor=new Pe(1,1,1),this._disableLighting=!1,this._unlit=!1,this._maxSimultaneousLights=4,this._scaledDiffuse=new Pe}needAlphaBlending(){return this.alpha<1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t,i){const s=t._drawWrapper;if(this.isFrozen&&s.effect&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new dQe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;const o=n.getEngine();if(r._areTexturesDirty&&(r._needUVs=!1,n.texturesEnabled&&this._diffuseTexture&&Pt.DiffuseTextureEnabled))if(this._diffuseTexture.isReady())r._needUVs=!0,r.DIFFUSE=!0;else return!1;if(ad(e,n,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),r),r._needNormals=!0,Jd(n,e,r,!1,this._maxSimultaneousLights,this._disableLighting),od(n,o,this,r,!!i),zo(e,r,!0,!0),r.isDirty){r.markAsProcessed(),n.resetCachedMaterial();const l=new Ra;r.FOG&&l.addFallback(1,"FOG"),Ql(r,l),r.NUM_BONE_INFLUENCERS>0&&l.addCPUSkinningFallback(0,e),r.IMAGEPROCESSINGPOSTPROCESS=n.imageProcessingConfiguration.applyByPostProcess;const c=[q.PositionKind];r.NORMAL&&c.push(q.NormalKind),r.UV1&&c.push(q.UVKind),r.UV2&&c.push(q.UV2Kind),r.VERTEXCOLOR&&c.push(q.ColorKind),G1(c,e,r,l),Qo(c,r);const u="lava",f=r.toString(),p=["world","view","viewProjection","vEyePosition","vLightsType","vDiffuseColor","vFogInfos","vFogColor","pointSize","vDiffuseInfos","mBones","diffuseMatrix","logarithmicDepthConstant","time","speed","movingSpeed","fogColor","fogDensity","lowFrequencySpeed"];qo(p);const m=["diffuseSampler","noiseTexture","areaLightsLTC1Sampler","areaLightsLTC2Sampler"],_=[];gl({uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:r,maxSimultaneousLights:this.maxSimultaneousLights}),t.setEffect(n.getEngine().createEffect(u,{attributes:c,uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:f,fallbacks:l,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:this.maxSimultaneousLights}},o),r,this._materialContext)}if(r.AREALIGHTUSED){for(let l=0;l<e.lightSources.length;l++)if(!e.lightSources[l]._isReady())return!1}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;n&&(this._activeEffect=n,r.UNLIT=this._unlit,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),Pc(t,this._activeEffect),this._mustRebind(s,n,i)&&(this.diffuseTexture&&Pt.DiffuseTextureEnabled&&(this._activeEffect.setTexture("diffuseSampler",this.diffuseTexture),this._activeEffect.setFloat2("vDiffuseInfos",this.diffuseTexture.coordinatesIndex,this.diffuseTexture.level),this._activeEffect.setMatrix("diffuseMatrix",this.diffuseTexture.getTextureMatrix())),this.noiseTexture&&this._activeEffect.setTexture("noiseTexture",this.noiseTexture),Bo(n,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._useLogarithmicDepth&&ml(r,n,s),s.bindEyePosition(n)),this._activeEffect.setColor4("vDiffuseColor",this._scaledDiffuse,this.alpha*t.visibility),s.lightsEnabled&&!this.disableLighting&&Qd(s,t,this._activeEffect,r),s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect),this._lastTime+=s.getEngine().getDeltaTime(),this._activeEffect.setFloat("time",this._lastTime*this.speed/1e3),this.fogColor||(this.fogColor=Pe.Black()),this._activeEffect.setColor3("fogColor",this.fogColor),this._activeEffect.setFloat("fogDensity",this.fogDensity),this._activeEffect.setFloat("lowFrequencySpeed",this.lowFrequencySpeed),this._activeEffect.setFloat("movingSpeed",this.movingSpeed),this._afterBind(t,this._activeEffect,i))}getAnimatables(){const e=[];return this.diffuseTexture&&this.diffuseTexture.animations&&this.diffuseTexture.animations.length>0&&e.push(this.diffuseTexture),this.noiseTexture&&this.noiseTexture.animations&&this.noiseTexture.animations.length>0&&e.push(this.noiseTexture),e}getActiveTextures(){const e=super.getActiveTextures();return this._diffuseTexture&&e.push(this._diffuseTexture),e}hasTexture(e){return!!(super.hasTexture(e)||this.diffuseTexture===e)}dispose(e){this.diffuseTexture&&this.diffuseTexture.dispose(),this.noiseTexture&&this.noiseTexture.dispose(),super.dispose(e)}clone(e){return It.Clone(()=>new Lh(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.LavaMaterial",e}getClassName(){return"LavaMaterial"}static Parse(e,t,i){return It.Parse(()=>new Lh(e.name,t),e,t,i)}}F([Yi("diffuseTexture")],Lh.prototype,"_diffuseTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Lh.prototype,"diffuseTexture",void 0),F([Yi()],Lh.prototype,"noiseTexture",void 0),F([qs()],Lh.prototype,"fogColor",void 0),F([G()],Lh.prototype,"speed",void 0),F([G()],Lh.prototype,"movingSpeed",void 0),F([G()],Lh.prototype,"lowFrequencySpeed",void 0),F([G()],Lh.prototype,"fogDensity",void 0),F([qs()],Lh.prototype,"diffuseColor",void 0),F([G("disableLighting")],Lh.prototype,"_disableLighting",void 0),F([et("_markAllSubMeshesAsLightsDirty")],Lh.prototype,"disableLighting",void 0),F([G("unlit")],Lh.prototype,"_unlit",void 0),F([et("_markAllSubMeshesAsLightsDirty")],Lh.prototype,"unlit",void 0),F([G("maxSimultaneousLights")],Lh.prototype,"_maxSimultaneousLights",void 0),F([et("_markAllSubMeshesAsLightsDirty")],Lh.prototype,"maxSimultaneousLights",void 0),ve("BABYLON.LavaMaterial",Lh);const aLe="mixPixelShader",fQe=`precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;
#ifdef SPECULARTERM
uniform vec4 vSpecularColor;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<helperFunctions>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#ifdef DIFFUSE
varying vec2 vTextureUV;uniform sampler2D mixMap1Sampler;uniform vec2 vTextureInfos;
#ifdef MIXMAP2
uniform sampler2D mixMap2Sampler;
#endif
uniform sampler2D diffuse1Sampler;uniform sampler2D diffuse2Sampler;uniform sampler2D diffuse3Sampler;uniform sampler2D diffuse4Sampler;uniform vec2 diffuse1Infos;uniform vec2 diffuse2Infos;uniform vec2 diffuse3Infos;uniform vec2 diffuse4Infos;
#ifdef MIXMAP2
uniform sampler2D diffuse5Sampler;uniform sampler2D diffuse6Sampler;uniform sampler2D diffuse7Sampler;uniform sampler2D diffuse8Sampler;uniform vec2 diffuse5Infos;uniform vec2 diffuse6Infos;uniform vec2 diffuse7Infos;uniform vec2 diffuse8Infos;
#endif
#endif
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#include<clipPlaneFragmentDeclaration>
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 finalMixColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;
#ifdef MIXMAP2
vec4 mixColor2=vec4(1.,1.,1.,1.);
#endif
#ifdef SPECULARTERM
float glossiness=vSpecularColor.a;vec3 specularColor=vSpecularColor.rgb;
#else
float glossiness=0.;
#endif
float alpha=vDiffuseColor.a;
#ifdef NORMAL
vec3 normalW=normalize(vNormalW);
#else
vec3 normalW=vec3(1.0,1.0,1.0);
#endif
#ifdef DIFFUSE
vec4 mixColor=texture2D(mixMap1Sampler,vTextureUV);
#include<depthPrePass>
mixColor.rgb*=vTextureInfos.y;vec4 diffuse1Color=texture2D(diffuse1Sampler,vTextureUV*diffuse1Infos);vec4 diffuse2Color=texture2D(diffuse2Sampler,vTextureUV*diffuse2Infos);vec4 diffuse3Color=texture2D(diffuse3Sampler,vTextureUV*diffuse3Infos);vec4 diffuse4Color=texture2D(diffuse4Sampler,vTextureUV*diffuse4Infos);diffuse1Color.rgb*=mixColor.r;diffuse2Color.rgb=mix(diffuse1Color.rgb,diffuse2Color.rgb,mixColor.g);diffuse3Color.rgb=mix(diffuse2Color.rgb,diffuse3Color.rgb,mixColor.b);finalMixColor.rgb=mix(diffuse3Color.rgb,diffuse4Color.rgb,1.0-mixColor.a);
#ifdef MIXMAP2
mixColor=texture2D(mixMap2Sampler,vTextureUV);mixColor.rgb*=vTextureInfos.y;vec4 diffuse5Color=texture2D(diffuse5Sampler,vTextureUV*diffuse5Infos);vec4 diffuse6Color=texture2D(diffuse6Sampler,vTextureUV*diffuse6Infos);vec4 diffuse7Color=texture2D(diffuse7Sampler,vTextureUV*diffuse7Infos);vec4 diffuse8Color=texture2D(diffuse8Sampler,vTextureUV*diffuse8Infos);diffuse5Color.rgb=mix(finalMixColor.rgb,diffuse5Color.rgb,mixColor.r);diffuse6Color.rgb=mix(diffuse5Color.rgb,diffuse6Color.rgb,mixColor.g);diffuse7Color.rgb=mix(diffuse6Color.rgb,diffuse7Color.rgb,mixColor.b);finalMixColor.rgb=mix(diffuse7Color.rgb,diffuse8Color.rgb,1.0-mixColor.a);
#endif
#endif
#ifdef VERTEXCOLOR
finalMixColor.rgb*=vColor.rgb;
#endif
vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float aggShadow=0.;float numLights=0.;
#ifdef SPECULARTERM
vec3 specularBase=vec3(0.,0.,0.);
#endif
#include<lightFragment>[0..maxSimultaneousLights]
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
#ifdef SPECULARTERM
vec3 finalSpecular=specularBase*specularColor;
#else
vec3 finalSpecular=vec3(0.0);
#endif
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor*finalMixColor.rgb,0.0,1.0);vec4 color=vec4(finalDiffuse+finalSpecular,alpha);
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStore[aLe]||(H.ShadersStore[aLe]=fQe);const oLe="mixVertexShader",pQe=`precision highp float;attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
uniform mat4 view;uniform mat4 viewProjection;
#ifdef DIFFUSE
varying vec2 vTextureUV;uniform mat4 textureMatrix;uniform vec2 vTextureInfos;
#endif
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<clipPlaneVertexDeclaration>
#include<logDepthDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);
#ifdef NORMAL
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
#endif
#ifndef UV1
vec2 uv=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2=vec2(0.,0.);
#endif
#ifdef DIFFUSE
if (vTextureInfos.x==0.)
{vTextureUV=vec2(textureMatrix*vec4(uv,1.0,0.0));}
else
{vTextureUV=vec2(textureMatrix*vec4(uv2,1.0,0.0));}
#endif
#include<clipPlaneVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[oLe]||(H.ShadersStore[oLe]=pQe);class mQe extends Br{constructor(){super(),this.DIFFUSE=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.POINTSIZE=!1,this.FOG=!1,this.SPECULARTERM=!1,this.NORMAL=!1,this.UV1=!1,this.UV2=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.INSTANCES=!1,this.INSTANCESCOLOR=!1,this.MIXMAP2=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.LOGARITHMICDEPTH=!1,this.rebuild()}}class za extends po{constructor(e,t){super(e,t),this.diffuseColor=new Pe(1,1,1),this.specularColor=new Pe(0,0,0),this.specularPower=64,this._disableLighting=!1,this._maxSimultaneousLights=4}needAlphaBlending(){return this.alpha<1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t,i){const s=t._drawWrapper;if(this.isFrozen&&s.effect&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new mQe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;const o=n.getEngine();if(n.texturesEnabled&&(!this._mixTexture1||!this._mixTexture1.isReady()||(r._needUVs=!0,Pt.DiffuseTextureEnabled&&(!this._diffuseTexture1||!this._diffuseTexture1.isReady()||(r.DIFFUSE=!0,!this._diffuseTexture2||!this._diffuseTexture2.isReady())||!this._diffuseTexture3||!this._diffuseTexture3.isReady()||!this._diffuseTexture4||!this._diffuseTexture4.isReady()||this._mixTexture2&&(!this._mixTexture2.isReady()||(r.MIXMAP2=!0,!this._diffuseTexture5||!this._diffuseTexture5.isReady())||!this._diffuseTexture6||!this._diffuseTexture6.isReady()||!this._diffuseTexture7||!this._diffuseTexture7.isReady()||!this._diffuseTexture8||!this._diffuseTexture8.isReady())))))return!1;if(ad(e,n,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),r),r._needNormals=Jd(n,e,r,!1,this._maxSimultaneousLights,this._disableLighting),od(n,o,this,r,!!i),zo(e,r,!0,!0),r.isDirty){r.markAsProcessed(),n.resetCachedMaterial();const l=new Ra;r.FOG&&l.addFallback(1,"FOG"),Ql(r,l,this.maxSimultaneousLights),r.NUM_BONE_INFLUENCERS>0&&l.addCPUSkinningFallback(0,e),r.IMAGEPROCESSINGPOSTPROCESS=n.imageProcessingConfiguration.applyByPostProcess;const c=[q.PositionKind];r.NORMAL&&c.push(q.NormalKind),r.UV1&&c.push(q.UVKind),r.UV2&&c.push(q.UV2Kind),r.VERTEXCOLOR&&c.push(q.ColorKind),G1(c,e,r,l),Qo(c,r);const u="mix",f=r.toString(),p=["world","view","viewProjection","vEyePosition","vLightsType","vDiffuseColor","vSpecularColor","vFogInfos","vFogColor","pointSize","vTextureInfos","mBones","textureMatrix","logarithmicDepthConstant","diffuse1Infos","diffuse2Infos","diffuse3Infos","diffuse4Infos","diffuse5Infos","diffuse6Infos","diffuse7Infos","diffuse8Infos"],m=["mixMap1Sampler","mixMap2Sampler","diffuse1Sampler","diffuse2Sampler","diffuse3Sampler","diffuse4Sampler","diffuse5Sampler","diffuse6Sampler","diffuse7Sampler","diffuse8Sampler"],_=[];qo(p),gl({uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:r,maxSimultaneousLights:this.maxSimultaneousLights}),t.setEffect(n.getEngine().createEffect(u,{attributes:c,uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:f,fallbacks:l,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:this.maxSimultaneousLights}},o),r,this._materialContext)}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),Pc(t,this._activeEffect),this._mustRebind(s,n,i)&&(this._mixTexture1&&(this._activeEffect.setTexture("mixMap1Sampler",this._mixTexture1),this._activeEffect.setFloat2("vTextureInfos",this._mixTexture1.coordinatesIndex,this._mixTexture1.level),this._activeEffect.setMatrix("textureMatrix",this._mixTexture1.getTextureMatrix()),Pt.DiffuseTextureEnabled&&(this._diffuseTexture1&&(this._activeEffect.setTexture("diffuse1Sampler",this._diffuseTexture1),this._activeEffect.setFloat2("diffuse1Infos",this._diffuseTexture1.uScale,this._diffuseTexture1.vScale)),this._diffuseTexture2&&(this._activeEffect.setTexture("diffuse2Sampler",this._diffuseTexture2),this._activeEffect.setFloat2("diffuse2Infos",this._diffuseTexture2.uScale,this._diffuseTexture2.vScale)),this._diffuseTexture3&&(this._activeEffect.setTexture("diffuse3Sampler",this._diffuseTexture3),this._activeEffect.setFloat2("diffuse3Infos",this._diffuseTexture3.uScale,this._diffuseTexture3.vScale)),this._diffuseTexture4&&(this._activeEffect.setTexture("diffuse4Sampler",this._diffuseTexture4),this._activeEffect.setFloat2("diffuse4Infos",this._diffuseTexture4.uScale,this._diffuseTexture4.vScale)))),this._mixTexture2&&(this._activeEffect.setTexture("mixMap2Sampler",this._mixTexture2),Pt.DiffuseTextureEnabled&&(this._diffuseTexture5&&(this._activeEffect.setTexture("diffuse5Sampler",this._diffuseTexture5),this._activeEffect.setFloat2("diffuse5Infos",this._diffuseTexture5.uScale,this._diffuseTexture5.vScale)),this._diffuseTexture6&&(this._activeEffect.setTexture("diffuse6Sampler",this._diffuseTexture6),this._activeEffect.setFloat2("diffuse6Infos",this._diffuseTexture6.uScale,this._diffuseTexture6.vScale)),this._diffuseTexture7&&(this._activeEffect.setTexture("diffuse7Sampler",this._diffuseTexture7),this._activeEffect.setFloat2("diffuse7Infos",this._diffuseTexture7.uScale,this._diffuseTexture7.vScale)),this._diffuseTexture8&&(this._activeEffect.setTexture("diffuse8Sampler",this._diffuseTexture8),this._activeEffect.setFloat2("diffuse8Infos",this._diffuseTexture8.uScale,this._diffuseTexture8.vScale)))),Bo(n,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._useLogarithmicDepth&&ml(r,n,s),s.bindEyePosition(n)),this._activeEffect.setColor4("vDiffuseColor",this.diffuseColor,this.alpha*t.visibility),r.SPECULARTERM&&this._activeEffect.setColor4("vSpecularColor",this.specularColor,this.specularPower),s.lightsEnabled&&!this.disableLighting&&Qd(s,t,this._activeEffect,r,this.maxSimultaneousLights),s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect),this._afterBind(t,this._activeEffect,i))}getAnimatables(){const e=[];return this._mixTexture1&&this._mixTexture1.animations&&this._mixTexture1.animations.length>0&&e.push(this._mixTexture1),this._mixTexture2&&this._mixTexture2.animations&&this._mixTexture2.animations.length>0&&e.push(this._mixTexture2),e}getActiveTextures(){const e=super.getActiveTextures();return this._mixTexture1&&e.push(this._mixTexture1),this._diffuseTexture1&&e.push(this._diffuseTexture1),this._diffuseTexture2&&e.push(this._diffuseTexture2),this._diffuseTexture3&&e.push(this._diffuseTexture3),this._diffuseTexture4&&e.push(this._diffuseTexture4),this._mixTexture2&&e.push(this._mixTexture2),this._diffuseTexture5&&e.push(this._diffuseTexture5),this._diffuseTexture6&&e.push(this._diffuseTexture6),this._diffuseTexture7&&e.push(this._diffuseTexture7),this._diffuseTexture8&&e.push(this._diffuseTexture8),e}hasTexture(e){return!!(super.hasTexture(e)||this._mixTexture1===e||this._diffuseTexture1===e||this._diffuseTexture2===e||this._diffuseTexture3===e||this._diffuseTexture4===e||this._mixTexture2===e||this._diffuseTexture5===e||this._diffuseTexture6===e||this._diffuseTexture7===e||this._diffuseTexture8===e)}dispose(e){this._mixTexture1&&this._mixTexture1.dispose(),super.dispose(e)}clone(e){return It.Clone(()=>new za(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.MixMaterial",e}getClassName(){return"MixMaterial"}static Parse(e,t,i){return It.Parse(()=>new za(e.name,t),e,t,i)}}F([Yi("mixTexture1")],za.prototype,"_mixTexture1",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],za.prototype,"mixTexture1",void 0),F([Yi("mixTexture2")],za.prototype,"_mixTexture2",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],za.prototype,"mixTexture2",void 0),F([Yi("diffuseTexture1")],za.prototype,"_diffuseTexture1",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],za.prototype,"diffuseTexture1",void 0),F([Yi("diffuseTexture2")],za.prototype,"_diffuseTexture2",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],za.prototype,"diffuseTexture2",void 0),F([Yi("diffuseTexture3")],za.prototype,"_diffuseTexture3",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],za.prototype,"diffuseTexture3",void 0),F([Yi("diffuseTexture4")],za.prototype,"_diffuseTexture4",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],za.prototype,"diffuseTexture4",void 0),F([Yi("diffuseTexture1")],za.prototype,"_diffuseTexture5",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],za.prototype,"diffuseTexture5",void 0),F([Yi("diffuseTexture2")],za.prototype,"_diffuseTexture6",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],za.prototype,"diffuseTexture6",void 0),F([Yi("diffuseTexture3")],za.prototype,"_diffuseTexture7",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],za.prototype,"diffuseTexture7",void 0),F([Yi("diffuseTexture4")],za.prototype,"_diffuseTexture8",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],za.prototype,"diffuseTexture8",void 0),F([qs()],za.prototype,"diffuseColor",void 0),F([qs()],za.prototype,"specularColor",void 0),F([G()],za.prototype,"specularPower",void 0),F([G("disableLighting")],za.prototype,"_disableLighting",void 0),F([et("_markAllSubMeshesAsLightsDirty")],za.prototype,"disableLighting",void 0),F([G("maxSimultaneousLights")],za.prototype,"_maxSimultaneousLights",void 0),F([et("_markAllSubMeshesAsLightsDirty")],za.prototype,"maxSimultaneousLights",void 0),ve("BABYLON.MixMaterial",za);const lLe="normalPixelShader",gQe=`precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef LIGHTING
#include<helperFunctions>
#include<__decl__lightFragment>[0]
#include<__decl__lightFragment>[1]
#include<__decl__lightFragment>[2]
#include<__decl__lightFragment>[3]
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#endif
#ifdef DIFFUSE
varying vec2 vDiffuseUV;uniform sampler2D diffuseSampler;uniform vec2 vDiffuseInfos;
#endif
#include<clipPlaneFragmentDeclaration>
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;
#ifdef DIFFUSE
baseColor=texture2D(diffuseSampler,vDiffuseUV);
#ifdef ALPHATEST
if (baseColor.a<0.4)
discard;
#endif
#include<depthPrePass>
baseColor.rgb*=vDiffuseInfos.y;
#endif
#ifdef NORMAL
baseColor=mix(baseColor,vec4(vNormalW,1.0),0.5);
#endif
#ifdef NORMAL
vec3 normalW=normalize(vNormalW);
#else
vec3 normalW=vec3(1.0,1.0,1.0);
#endif
#ifdef LIGHTING
vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float glossiness=0.;float aggShadow=0.;float numLights=0.;
#include<lightFragment>[0]
#include<lightFragment>[1]
#include<lightFragment>[2]
#include<lightFragment>[3]
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;
#else
vec3 finalDiffuse= baseColor.rgb;
#endif
vec4 color=vec4(finalDiffuse,alpha);
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[lLe]||(H.ShadersStore[lLe]=gQe);const cLe="normalVertexShader",_Qe=`precision highp float;attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
uniform mat4 view;uniform mat4 viewProjection;
#ifdef DIFFUSE
varying vec2 vDiffuseUV;uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;
#endif
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#include<clipPlaneVertexDeclaration>
#include<logDepthDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);
#ifdef NORMAL
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
#endif
#ifndef UV1
vec2 uv=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2=vec2(0.,0.);
#endif
#ifdef DIFFUSE
if (vDiffuseInfos.x==0.)
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}
else
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}
#endif
#include<clipPlaneVertex>
#include<logDepthVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[cLe]||(H.ShadersStore[cLe]=_Qe);class vQe extends Br{constructor(){super(),this.DIFFUSE=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.POINTSIZE=!1,this.FOG=!1,this.LIGHT0=!1,this.LIGHT1=!1,this.LIGHT2=!1,this.LIGHT3=!1,this.SPOTLIGHT0=!1,this.SPOTLIGHT1=!1,this.SPOTLIGHT2=!1,this.SPOTLIGHT3=!1,this.HEMILIGHT0=!1,this.HEMILIGHT1=!1,this.HEMILIGHT2=!1,this.HEMILIGHT3=!1,this.DIRLIGHT0=!1,this.DIRLIGHT1=!1,this.DIRLIGHT2=!1,this.DIRLIGHT3=!1,this.POINTLIGHT0=!1,this.POINTLIGHT1=!1,this.POINTLIGHT2=!1,this.POINTLIGHT3=!1,this.SHADOW0=!1,this.SHADOW1=!1,this.SHADOW2=!1,this.SHADOW3=!1,this.SHADOWS=!1,this.SHADOWESM0=!1,this.SHADOWESM1=!1,this.SHADOWESM2=!1,this.SHADOWESM3=!1,this.SHADOWPOISSON0=!1,this.SHADOWPOISSON1=!1,this.SHADOWPOISSON2=!1,this.SHADOWPOISSON3=!1,this.SHADOWPCF0=!1,this.SHADOWPCF1=!1,this.SHADOWPCF2=!1,this.SHADOWPCF3=!1,this.SHADOWPCSS0=!1,this.SHADOWPCSS1=!1,this.SHADOWPCSS2=!1,this.SHADOWPCSS3=!1,this.NORMAL=!1,this.UV1=!1,this.UV2=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.INSTANCES=!1,this.THIN_INSTANCES=!1,this.LIGHTING=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.LOGARITHMICDEPTH=!1,this.AREALIGHTSUPPORTED=!0,this.AREALIGHTNOROUGHTNESS=!0,this.rebuild()}}class b_ extends po{constructor(e,t){super(e,t),this.diffuseColor=new Pe(1,1,1),this._disableLighting=!1,this._maxSimultaneousLights=4}needAlphaBlending(){return this.alpha<1}needAlphaBlendingForMesh(e){return this.needAlphaBlending()||e.visibility<1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t,i){const s=t._drawWrapper;if(this.isFrozen&&s.effect&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new vQe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;const o=n.getEngine();if(r._areTexturesDirty&&(r._needUVs=!1,n.texturesEnabled&&this._diffuseTexture&&Pt.DiffuseTextureEnabled))if(this._diffuseTexture.isReady())r._needUVs=!0,r.DIFFUSE=!0;else return!1;if(ad(e,n,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),r),r._needNormals=!0,Jd(n,e,r,!1,this._maxSimultaneousLights,this._disableLighting),od(n,o,this,r,!!i,null,t.getRenderingMesh().hasThinInstances),r.LIGHTING=!this._disableLighting,zo(e,r,!0,!0),r.isDirty){r.markAsProcessed(),n.resetCachedMaterial();const l=new Ra;r.FOG&&l.addFallback(1,"FOG"),Ql(r,l),r.NUM_BONE_INFLUENCERS>0&&l.addCPUSkinningFallback(0,e),r.IMAGEPROCESSINGPOSTPROCESS=n.imageProcessingConfiguration.applyByPostProcess;const c=[q.PositionKind];r.NORMAL&&c.push(q.NormalKind),r.UV1&&c.push(q.UVKind),r.UV2&&c.push(q.UV2Kind),G1(c,e,r,l),Qo(c,r);const u="normal",f=r.toString(),p=["world","view","viewProjection","vEyePosition","vLightsType","vDiffuseColor","vFogInfos","vFogColor","pointSize","vDiffuseInfos","mBones","diffuseMatrix","logarithmicDepthConstant"],m=["diffuseSampler","areaLightsLTC1Sampler","areaLightsLTC2Sampler"],_=[];qo(p),gl({uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:r,maxSimultaneousLights:4}),t.setEffect(n.getEngine().createEffect(u,{attributes:c,uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:f,fallbacks:l,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:4}},o),r,this._materialContext)}if(r.AREALIGHTUSED){for(let l=0;l<e.lightSources.length;l++)if(!e.lightSources[l]._isReady())return!1}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),Pc(t,this._activeEffect),this._mustRebind(s,n,i)&&(this.diffuseTexture&&Pt.DiffuseTextureEnabled&&(this._activeEffect.setTexture("diffuseSampler",this.diffuseTexture),this._activeEffect.setFloat2("vDiffuseInfos",this.diffuseTexture.coordinatesIndex,this.diffuseTexture.level),this._activeEffect.setMatrix("diffuseMatrix",this.diffuseTexture.getTextureMatrix())),Bo(n,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._useLogarithmicDepth&&ml(r,n,s),s.bindEyePosition(n)),this._activeEffect.setColor4("vDiffuseColor",this.diffuseColor,this.alpha*t.visibility),s.lightsEnabled&&!this.disableLighting&&Qd(s,t,this._activeEffect,r),s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect),this._afterBind(t,this._activeEffect,i))}getAnimatables(){const e=[];return this.diffuseTexture&&this.diffuseTexture.animations&&this.diffuseTexture.animations.length>0&&e.push(this.diffuseTexture),e}getActiveTextures(){const e=super.getActiveTextures();return this._diffuseTexture&&e.push(this._diffuseTexture),e}hasTexture(e){return!!(super.hasTexture(e)||this.diffuseTexture===e)}dispose(e){this.diffuseTexture&&this.diffuseTexture.dispose(),super.dispose(e)}clone(e){return It.Clone(()=>new b_(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.NormalMaterial",e}getClassName(){return"NormalMaterial"}static Parse(e,t,i){return It.Parse(()=>new b_(e.name,t),e,t,i)}}F([Yi("diffuseTexture")],b_.prototype,"_diffuseTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],b_.prototype,"diffuseTexture",void 0),F([qs()],b_.prototype,"diffuseColor",void 0),F([G("disableLighting")],b_.prototype,"_disableLighting",void 0),F([et("_markAllSubMeshesAsLightsDirty")],b_.prototype,"disableLighting",void 0),F([G("maxSimultaneousLights")],b_.prototype,"_maxSimultaneousLights",void 0),F([et("_markAllSubMeshesAsLightsDirty")],b_.prototype,"maxSimultaneousLights",void 0),ve("BABYLON.NormalMaterial",b_);const uLe="shadowOnlyPixelShader",AQe=`precision highp float;uniform vec4 vEyePosition;uniform float alpha;uniform vec3 shadowColor;varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#include<helperFunctions>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#include<clipPlaneFragmentDeclaration>
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);
#ifdef NORMAL
vec3 normalW=normalize(vNormalW);
#else
vec3 normalW=vec3(1.0,1.0,1.0);
#endif
vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float glossiness=0.;float aggShadow=0.;float numLights=0.;
#include<lightFragment>[0..1]
vec4 color=vec4(shadowColor,(1.0-clamp(shadow,0.,1.))*alpha);
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[uLe]||(H.ShadersStore[uLe]=AQe);const hLe="shadowOnlyVertexShader",CQe=`precision highp float;attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
uniform mat4 view;uniform mat4 viewProjection;
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<clipPlaneVertexDeclaration>
#include<logDepthDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);
#ifdef NORMAL
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
#endif
#include<clipPlaneVertex>
#include<logDepthVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[hLe]||(H.ShadersStore[hLe]=CQe);class xQe extends Br{constructor(){super(),this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.POINTSIZE=!1,this.FOG=!1,this.NORMAL=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.INSTANCES=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.LOGARITHMICDEPTH=!1,this.rebuild()}}class Sz extends po{constructor(e,t){super(e,t),this._needAlphaBlending=!0,this.shadowColor=Pe.Black()}needAlphaBlending(){return this._needAlphaBlending}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}get activeLight(){return this._activeLight}set activeLight(e){this._activeLight=e}_getFirstShadowLightForMesh(e){for(const t of e.lightSources)if(t.shadowEnabled)return t;return null}isReadyForSubMesh(e,t,i){var c;const s=t._drawWrapper;if(this.isFrozen&&s.effect&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new xQe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;const o=n.getEngine();if(this._activeLight){for(const u of e.lightSources)if(u.shadowEnabled){if(this._activeLight===u)break;const f=e.lightSources.indexOf(this._activeLight);f!==-1&&(e.lightSources.splice(f,1),e.lightSources.splice(0,0,this._activeLight));break}}od(n,o,this,r,!!i),ad(e,n,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),r),r._needNormals=Jd(n,e,r,!1,1);const l=(c=this._getFirstShadowLightForMesh(e))==null?void 0:c.getShadowGenerator();if(this._needAlphaBlending=!0,l&&l.getClassName&&l.getClassName()==="CascadedShadowGenerator"){const u=l;this._needAlphaBlending=!u.autoCalcDepthBounds}if(zo(e,r,!1,!0),r.isDirty){r.markAsProcessed(),n.resetCachedMaterial();const u=new Ra;r.FOG&&u.addFallback(1,"FOG"),Ql(r,u,1),r.NUM_BONE_INFLUENCERS>0&&u.addCPUSkinningFallback(0,e),r.IMAGEPROCESSINGPOSTPROCESS=n.imageProcessingConfiguration.applyByPostProcess;const f=[q.PositionKind];r.NORMAL&&f.push(q.NormalKind),G1(f,e,r,u),Qo(f,r);const p="shadowOnly",m=r.toString(),_=["world","view","viewProjection","vEyePosition","vLightsType","vFogInfos","vFogColor","pointSize","alpha","shadowColor","mBones","logarithmicDepthConstant"],d=[],h=[];qo(_),gl({uniformsNames:_,uniformBuffersNames:h,samplers:d,defines:r,maxSimultaneousLights:1}),t.setEffect(n.getEngine().createEffect(p,{attributes:f,uniformsNames:_,uniformBuffersNames:h,samplers:d,defines:m,fallbacks:u,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:1}},o),r,this._materialContext)}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;if(n){if(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),Pc(t,this._activeEffect),this._mustRebind(s,n,i)&&(Bo(n,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._activeEffect.setFloat("alpha",this.alpha),this._activeEffect.setColor3("shadowColor",this.shadowColor),this._useLogarithmicDepth&&ml(r,n,s),s.bindEyePosition(n)),s.lightsEnabled){Qd(s,t,this._activeEffect,r,1);const o=this._getFirstShadowLightForMesh(t);o&&(o._renderId=-1)}(s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE||r.SHADOWCSM0)&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect),this._afterBind(t,this._activeEffect,i)}}clone(e){return It.Clone(()=>new Sz(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.ShadowOnlyMaterial",e}getClassName(){return"ShadowOnlyMaterial"}static Parse(e,t,i){return It.Parse(()=>new Sz(e.name,t),e,t,i)}}ve("BABYLON.ShadowOnlyMaterial",Sz);const dLe="simplePixelShader",bQe=`precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
#include<helperFunctions>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#ifdef DIFFUSE
varying vec2 vDiffuseUV;uniform sampler2D diffuseSampler;uniform vec2 vDiffuseInfos;
#endif
#include<clipPlaneFragmentDeclaration>
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;
#ifdef DIFFUSE
baseColor=texture2D(diffuseSampler,vDiffuseUV);
#ifdef ALPHATEST
if (baseColor.a<0.4)
discard;
#endif
#include<depthPrePass>
baseColor.rgb*=vDiffuseInfos.y;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
baseColor.rgb*=vColor.rgb;
#endif
#ifdef NORMAL
vec3 normalW=normalize(vNormalW);
#else
vec3 normalW=vec3(1.0,1.0,1.0);
#endif
vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float glossiness=0.;float aggShadow=0.;float numLights=0.;
#ifdef SPECULARTERM
vec3 specularBase=vec3(0.,0.,0.);
#endif 
#include<lightFragment>[0..maxSimultaneousLights]
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4 color=vec4(finalDiffuse,alpha);
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}`;H.ShadersStore[dLe]||(H.ShadersStore[dLe]=bQe);const fLe="simpleVertexShader",SQe=`precision highp float;attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
uniform mat4 view;uniform mat4 viewProjection;
#ifdef DIFFUSE
varying vec2 vDiffuseUV;uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;
#endif
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
#include<clipPlaneVertexDeclaration>
#include<logDepthDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);
#ifdef NORMAL
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
#endif
#ifndef UV1
vec2 uv=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2=vec2(0.,0.);
#endif
#ifdef DIFFUSE
if (vDiffuseInfos.x==0.)
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}
else
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}
#endif
#include<clipPlaneVertex>
#include<logDepthVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[fLe]||(H.ShadersStore[fLe]=SQe);class yQe extends Br{constructor(){super(),this.DIFFUSE=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.POINTSIZE=!1,this.FOG=!1,this.NORMAL=!1,this.UV1=!1,this.UV2=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.INSTANCES=!1,this.INSTANCESCOLOR=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.LOGARITHMICDEPTH=!1,this.AREALIGHTSUPPORTED=!0,this.AREALIGHTNOROUGHTNESS=!0,this.rebuild()}}class S_ extends po{constructor(e,t){super(e,t),this.diffuseColor=new Pe(1,1,1),this._disableLighting=!1,this._maxSimultaneousLights=4}needAlphaBlending(){return this.alpha<1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t,i){const s=t._drawWrapper;if(this.isFrozen&&s.effect&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new yQe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;const o=n.getEngine();if(r._areTexturesDirty&&(r._needUVs=!1,n.texturesEnabled&&this._diffuseTexture&&Pt.DiffuseTextureEnabled))if(this._diffuseTexture.isReady())r._needUVs=!0,r.DIFFUSE=!0;else return!1;if(ad(e,n,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),r),r._needNormals=Jd(n,e,r,!1,this._maxSimultaneousLights,this._disableLighting),od(n,o,this,r,!!i),zo(e,r,!0,!0),r.isDirty){r.markAsProcessed(),n.resetCachedMaterial();const l=new Ra;r.FOG&&l.addFallback(1,"FOG"),Ql(r,l,this.maxSimultaneousLights),r.NUM_BONE_INFLUENCERS>0&&l.addCPUSkinningFallback(0,e),r.IMAGEPROCESSINGPOSTPROCESS=n.imageProcessingConfiguration.applyByPostProcess;const c=[q.PositionKind];r.NORMAL&&c.push(q.NormalKind),r.UV1&&c.push(q.UVKind),r.UV2&&c.push(q.UV2Kind),r.VERTEXCOLOR&&c.push(q.ColorKind),G1(c,e,r,l),Qo(c,r);const u="simple",f=r.toString(),p=["world","view","viewProjection","vEyePosition","vLightsType","vDiffuseColor","vFogInfos","vFogColor","pointSize","vDiffuseInfos","mBones","diffuseMatrix","logarithmicDepthConstant"],m=["diffuseSampler","areaLightsLTC1Sampler","areaLightsLTC2Sampler"],_=[];qo(p),gl({uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:r,maxSimultaneousLights:this.maxSimultaneousLights}),t.setEffect(n.getEngine().createEffect(u,{attributes:c,uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:f,fallbacks:l,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:this._maxSimultaneousLights-1}},o),r,this._materialContext)}if(r.AREALIGHTUSED){for(let l=0;l<e.lightSources.length;l++)if(!e.lightSources[l]._isReady())return!1}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),Pc(t,this._activeEffect),this._mustRebind(s,n,i)&&(this._diffuseTexture&&Pt.DiffuseTextureEnabled&&(this._activeEffect.setTexture("diffuseSampler",this._diffuseTexture),this._activeEffect.setFloat2("vDiffuseInfos",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),this._activeEffect.setMatrix("diffuseMatrix",this._diffuseTexture.getTextureMatrix())),Bo(n,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._useLogarithmicDepth&&ml(r,n,s),s.bindEyePosition(n)),this._activeEffect.setColor4("vDiffuseColor",this.diffuseColor,this.alpha*t.visibility),s.lightsEnabled&&!this.disableLighting&&Qd(s,t,this._activeEffect,r,this.maxSimultaneousLights),s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect),this._afterBind(t,this._activeEffect,i))}getAnimatables(){const e=[];return this._diffuseTexture&&this._diffuseTexture.animations&&this._diffuseTexture.animations.length>0&&e.push(this._diffuseTexture),e}getActiveTextures(){const e=super.getActiveTextures();return this._diffuseTexture&&e.push(this._diffuseTexture),e}hasTexture(e){return!!(super.hasTexture(e)||this.diffuseTexture===e)}dispose(e){this._diffuseTexture&&this._diffuseTexture.dispose(),super.dispose(e)}clone(e){return It.Clone(()=>new S_(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.SimpleMaterial",e}getClassName(){return"SimpleMaterial"}static Parse(e,t,i){return It.Parse(()=>new S_(e.name,t),e,t,i)}}F([Yi("diffuseTexture")],S_.prototype,"_diffuseTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],S_.prototype,"diffuseTexture",void 0),F([qs("diffuse")],S_.prototype,"diffuseColor",void 0),F([G("disableLighting")],S_.prototype,"_disableLighting",void 0),F([et("_markAllSubMeshesAsLightsDirty")],S_.prototype,"disableLighting",void 0),F([G("maxSimultaneousLights")],S_.prototype,"_maxSimultaneousLights",void 0),F([et("_markAllSubMeshesAsLightsDirty")],S_.prototype,"maxSimultaneousLights",void 0),ve("BABYLON.SimpleMaterial",S_);const pLe="skyPixelShader",MQe=`precision highp float;varying vec3 vPositionW;
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<clipPlaneFragmentDeclaration>
uniform vec3 cameraPosition;uniform vec3 cameraOffset;uniform vec3 up;uniform float luminance;uniform float turbidity;uniform float rayleigh;uniform float mieCoefficient;uniform float mieDirectionalG;uniform vec3 sunPosition;
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
const float e=2.71828182845904523536028747135266249775724709369995957;const float pi=3.141592653589793238462643383279502884197169;const float n=1.0003;const float N=2.545E25;const float pn=0.035;const vec3 lambda=vec3(680E-9,550E-9,450E-9);const vec3 K=vec3(0.686,0.678,0.666);const float v=4.0;const float rayleighZenithLength=8.4E3;const float mieZenithLength=1.25E3;const float EE=1000.0;const float sunAngularDiameterCos=0.999956676946448443553574619906976478926848692873900859324;const float cutoffAngle=pi/1.95;const float steepness=1.5;vec3 totalRayleigh(vec3 lambda)
{return (8.0*pow(pi,3.0)*pow(pow(n,2.0)-1.0,2.0)*(6.0+3.0*pn))/(3.0*N*pow(lambda,vec3(4.0))*(6.0-7.0*pn));}
vec3 simplifiedRayleigh()
{return 0.0005/vec3(94,40,18);}
float rayleighPhase(float cosTheta)
{ 
return (3.0/(16.0*pi))*(1.0+pow(cosTheta,2.0));}
vec3 totalMie(vec3 lambda,vec3 K,float T)
{float c=(0.2*T )*10E-18;return 0.434*c*pi*pow((2.0*pi)/lambda,vec3(v-2.0))*K;}
float hgPhase(float cosTheta,float g)
{return (1.0/(4.0*pi))*((1.0-pow(g,2.0))/pow(1.0-2.0*g*cosTheta+pow(g,2.0),1.5));}
float sunIntensity(float zenithAngleCos)
{return EE*max(0.0,1.0-exp((-(cutoffAngle-acos(zenithAngleCos))/steepness)));}
float A=0.15;float B=0.50;float C=0.10;float D=0.20;float EEE=0.02;float F=0.30;float W=1000.0;vec3 Uncharted2Tonemap(vec3 x)
{return ((x*(A*x+C*B)+D*EEE)/(x*(A*x+B)+D*F))-EEE/F;}
#if DITHER
#include<helperFunctions>
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
/**
*--------------------------------------------------------------------------------------------------
* Sky Color
*--------------------------------------------------------------------------------------------------
*/
float sunfade=1.0-clamp(1.0-exp((sunPosition.y/450000.0)),0.0,1.0);float rayleighCoefficient=rayleigh-(1.0*(1.0-sunfade));vec3 sunDirection=normalize(sunPosition);float sunE=sunIntensity(dot(sunDirection,up));vec3 betaR=simplifiedRayleigh()*rayleighCoefficient;vec3 betaM=totalMie(lambda,K,turbidity)*mieCoefficient;float zenithAngle=acos(max(0.0,dot(up,normalize(vPositionW-cameraPosition+cameraOffset))));float sR=rayleighZenithLength/(cos(zenithAngle)+0.15*pow(93.885-((zenithAngle*180.0)/pi),-1.253));float sM=mieZenithLength/(cos(zenithAngle)+0.15*pow(93.885-((zenithAngle*180.0)/pi),-1.253));vec3 Fex=exp(-(betaR*sR+betaM*sM));float cosTheta=dot(normalize(vPositionW-cameraPosition),sunDirection);float rPhase=rayleighPhase(cosTheta*0.5+0.5);vec3 betaRTheta=betaR*rPhase;float mPhase=hgPhase(cosTheta,mieDirectionalG);vec3 betaMTheta=betaM*mPhase;vec3 Lin=pow(sunE*((betaRTheta+betaMTheta)/(betaR+betaM))*(1.0-Fex),vec3(1.5));Lin*=mix(vec3(1.0),pow(sunE*((betaRTheta+betaMTheta)/(betaR+betaM))*Fex,vec3(1.0/2.0)),clamp(pow(1.0-dot(up,sunDirection),5.0),0.0,1.0));vec3 direction=normalize(vPositionW-cameraPosition);float theta=acos(direction.y);float phi=atan(direction.z,direction.x);vec2 uv=vec2(phi,theta)/vec2(2.0*pi,pi)+vec2(0.5,0.0);vec3 L0=vec3(0.1)*Fex;float sundisk=smoothstep(sunAngularDiameterCos,sunAngularDiameterCos+0.00002,cosTheta);L0+=(sunE*19000.0*Fex)*sundisk;vec3 whiteScale=1.0/Uncharted2Tonemap(vec3(W));vec3 texColor=(Lin+L0);texColor*=0.04 ;texColor+=vec3(0.0,0.001,0.0025)*0.3;float g_fMaxLuminance=1.0;float fLumScaled=0.1/luminance; 
float fLumCompressed=(fLumScaled*(1.0+(fLumScaled/(g_fMaxLuminance*g_fMaxLuminance))))/(1.0+fLumScaled); 
float ExposureBias=fLumCompressed;vec3 curr=Uncharted2Tonemap((log2(2.0/pow(luminance,4.0)))*texColor);vec3 retColor=curr*whiteScale;/**
*--------------------------------------------------------------------------------------------------
* Sky Color
*--------------------------------------------------------------------------------------------------
*/
float alpha=1.0;
#ifdef VERTEXCOLOR
retColor.rgb*=vColor.rgb;
#endif
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
#if DITHER
retColor.rgb+=dither(gl_FragCoord.xy,0.5);
#endif
vec4 color=clamp(vec4(retColor.rgb,alpha),0.0,1.0);
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStore[pLe]||(H.ShadersStore[pLe]=MQe);const mLe="skyVertexShader",EQe=`precision highp float;attribute vec3 position;
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
uniform mat4 world;uniform mat4 view;uniform mat4 viewProjection;
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;
#ifdef VERTEXCOLOR
varying vec4 vColor;
#endif
#include<logDepthDeclaration>
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
gl_Position=viewProjection*world*vec4(position,1.0);vec4 worldPos=world*vec4(position,1.0);vPositionW=vec3(worldPos);
#include<clipPlaneVertex>
#include<logDepthVertex>
#include<fogVertex>
#ifdef VERTEXCOLOR
vColor=color;
#endif
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[mLe]||(H.ShadersStore[mLe]=EQe);class TQe extends Br{constructor(){super(),this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.POINTSIZE=!1,this.FOG=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.DITHER=!1,this.LOGARITHMICDEPTH=!1,this.rebuild()}}class i1 extends po{constructor(e,t){super(e,t),this.luminance=1,this.turbidity=10,this.rayleigh=2,this.mieCoefficient=.005,this.mieDirectionalG=.8,this.distance=500,this.inclination=.49,this.azimuth=.25,this.sunPosition=new P(0,100,0),this.useSunPosition=!1,this.cameraOffset=P.Zero(),this.up=P.Up(),this.dithering=!1,this._cameraPosition=P.Zero(),this._skyOrientation=new Re}needAlphaBlending(){return this.alpha<1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t){const i=t._drawWrapper;if(this.isFrozen&&i.effect&&i._wasPreviouslyReady)return!0;t.materialDefines||(t.materialDefines=new TQe);const s=t.materialDefines,r=this.getScene();if(this._isReadyForSubMesh(t))return!0;if(ad(e,r,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,!1,s),zo(e,s,!0,!1),s.IMAGEPROCESSINGPOSTPROCESS!==r.imageProcessingConfiguration.applyByPostProcess&&s.markAsMiscDirty(),s.DITHER!==this.dithering&&s.markAsMiscDirty(),s.isDirty){s.markAsProcessed(),r.resetCachedMaterial();const n=new Ra;s.FOG&&n.addFallback(1,"FOG"),s.IMAGEPROCESSINGPOSTPROCESS=r.imageProcessingConfiguration.applyByPostProcess,s.DITHER=this.dithering;const o=[q.PositionKind];s.VERTEXCOLOR&&o.push(q.ColorKind);const l="sky",c=["world","viewProjection","view","vFogInfos","vFogColor","logarithmicDepthConstant","pointSize","luminance","turbidity","rayleigh","mieCoefficient","mieDirectionalG","sunPosition","cameraPosition","cameraOffset","up"];qo(c);const u=s.toString();t.setEffect(r.getEngine().createEffect(l,o,c,[],u,n,this.onCompiled,this.onError),s,this._materialContext)}return!t.effect||!t.effect.isReady()?!1:(s._renderId=r.getRenderId(),i._wasPreviouslyReady=!0,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;if(!n)return;this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),this._mustRebind(s,n,i)&&(Bo(n,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._useLogarithmicDepth&&ml(r,n,s)),s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect);const o=s.activeCamera;if(o){const l=o.getWorldMatrix();this._cameraPosition.x=l.m[12],this._cameraPosition.y=l.m[13],this._cameraPosition.z=l.m[14],this._activeEffect.setVector3("cameraPosition",this._cameraPosition)}if(this._activeEffect.setVector3("cameraOffset",this.cameraOffset),this._activeEffect.setVector3("up",this.up),this.luminance>0&&this._activeEffect.setFloat("luminance",this.luminance),this._activeEffect.setFloat("turbidity",this.turbidity),this._activeEffect.setFloat("rayleigh",this.rayleigh),this._activeEffect.setFloat("mieCoefficient",this.mieCoefficient),this._activeEffect.setFloat("mieDirectionalG",this.mieDirectionalG),!this.useSunPosition){const l=Math.PI*(this.inclination-.5),c=2*Math.PI*(this.azimuth-.5);this.sunPosition.x=this.distance*Math.cos(c)*Math.cos(l),this.sunPosition.y=this.distance*Math.sin(-l),this.sunPosition.z=this.distance*Math.sin(c)*Math.cos(l),Re.FromUnitVectorsToRef(P.UpReadOnly,this.up,this._skyOrientation),this.sunPosition.rotateByQuaternionToRef(this._skyOrientation,this.sunPosition)}this._activeEffect.setVector3("sunPosition",this.sunPosition),this._afterBind(t,this._activeEffect,i)}getAnimatables(){return[]}dispose(e){super.dispose(e)}clone(e){return It.Clone(()=>new i1(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.SkyMaterial",e}getClassName(){return"SkyMaterial"}static Parse(e,t,i){return It.Parse(()=>new i1(e.name,t),e,t,i)}}F([G()],i1.prototype,"luminance",void 0),F([G()],i1.prototype,"turbidity",void 0),F([G()],i1.prototype,"rayleigh",void 0),F([G()],i1.prototype,"mieCoefficient",void 0),F([G()],i1.prototype,"mieDirectionalG",void 0),F([G()],i1.prototype,"distance",void 0),F([G()],i1.prototype,"inclination",void 0),F([G()],i1.prototype,"azimuth",void 0),F([Ma()],i1.prototype,"sunPosition",void 0),F([G()],i1.prototype,"useSunPosition",void 0),F([Ma()],i1.prototype,"cameraOffset",void 0),F([Ma()],i1.prototype,"up",void 0),F([G()],i1.prototype,"dithering",void 0),ve("BABYLON.SkyMaterial",i1);const gLe="terrainPixelShader",LQe=`precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;
#ifdef SPECULARTERM
uniform vec4 vSpecularColor;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
#include<helperFunctions>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#ifdef DIFFUSE
varying vec2 vTextureUV;uniform sampler2D textureSampler;uniform vec2 vTextureInfos;uniform sampler2D diffuse1Sampler;uniform sampler2D diffuse2Sampler;uniform sampler2D diffuse3Sampler;uniform vec2 diffuse1Infos;uniform vec2 diffuse2Infos;uniform vec2 diffuse3Infos;
#endif
#ifdef BUMP
uniform sampler2D bump1Sampler;uniform sampler2D bump2Sampler;uniform sampler2D bump3Sampler;
#endif
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#include<clipPlaneFragmentDeclaration>
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
#ifdef BUMP
#extension GL_OES_standard_derivatives : enable
mat3 cotangent_frame(vec3 normal,vec3 p,vec2 uv)
{vec3 dp1=dFdx(p);vec3 dp2=dFdy(p);vec2 duv1=dFdx(uv);vec2 duv2=dFdy(uv);vec3 dp2perp=cross(dp2,normal);vec3 dp1perp=cross(normal,dp1);vec3 tangent=dp2perp*duv1.x+dp1perp*duv2.x;vec3 binormal=dp2perp*duv1.y+dp1perp*duv2.y;float invmax=inversesqrt(max(dot(tangent,tangent),dot(binormal,binormal)));return mat3(tangent*invmax,binormal*invmax,normal);}
vec3 perturbNormal(vec3 viewDir,vec3 mixColor)
{vec3 bump1Color=texture2D(bump1Sampler,vTextureUV*diffuse1Infos).xyz;vec3 bump2Color=texture2D(bump2Sampler,vTextureUV*diffuse2Infos).xyz;vec3 bump3Color=texture2D(bump3Sampler,vTextureUV*diffuse3Infos).xyz;bump1Color.rgb*=mixColor.r;bump2Color.rgb=mix(bump1Color.rgb,bump2Color.rgb,mixColor.g);vec3 map=mix(bump2Color.rgb,bump3Color.rgb,mixColor.b);map=map*255./127.-128./127.;mat3 TBN=cotangent_frame(vNormalW*vTextureInfos.y,-viewDir,vTextureUV);return normalize(TBN*map);}
#endif
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;
#ifdef SPECULARTERM
float glossiness=vSpecularColor.a;vec3 specularColor=vSpecularColor.rgb;
#else
float glossiness=0.;
#endif
float alpha=vDiffuseColor.a;
#ifdef NORMAL
vec3 normalW=normalize(vNormalW);
#else
vec3 normalW=vec3(1.0,1.0,1.0);
#endif
#ifdef DIFFUSE
baseColor=texture2D(textureSampler,vTextureUV);
#if defined(BUMP) && defined(DIFFUSE)
normalW=perturbNormal(viewDirectionW,baseColor.rgb);
#endif
#ifdef ALPHATEST
if (baseColor.a<0.4)
discard;
#endif
#include<depthPrePass>
baseColor.rgb*=vTextureInfos.y;vec4 diffuse1Color=texture2D(diffuse1Sampler,vTextureUV*diffuse1Infos);vec4 diffuse2Color=texture2D(diffuse2Sampler,vTextureUV*diffuse2Infos);vec4 diffuse3Color=texture2D(diffuse3Sampler,vTextureUV*diffuse3Infos);diffuse1Color.rgb*=baseColor.r;diffuse2Color.rgb=mix(diffuse1Color.rgb,diffuse2Color.rgb,baseColor.g);baseColor.rgb=mix(diffuse2Color.rgb,diffuse3Color.rgb,baseColor.b);
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
baseColor.rgb*=vColor.rgb;
#endif
vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float aggShadow=0.;float numLights=0.;
#ifdef SPECULARTERM
vec3 specularBase=vec3(0.,0.,0.);
#endif
#include<lightFragment>[0..maxSimultaneousLights]
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
#ifdef SPECULARTERM
vec3 finalSpecular=specularBase*specularColor;
#else
vec3 finalSpecular=vec3(0.0);
#endif
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor*baseColor.rgb,0.0,1.0);vec4 color=vec4(finalDiffuse+finalSpecular,alpha);
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStore[gLe]||(H.ShadersStore[gLe]=LQe);const _Le="terrainVertexShader",IQe=`precision highp float;attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
uniform mat4 view;uniform mat4 viewProjection;
#ifdef DIFFUSE
varying vec2 vTextureUV;uniform mat4 textureMatrix;uniform vec2 vTextureInfos;
#endif
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
#include<logDepthDeclaration>
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);
#ifdef NORMAL
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
#endif
#ifndef UV1
vec2 uv=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2=vec2(0.,0.);
#endif
#ifdef DIFFUSE
if (vTextureInfos.x==0.)
{vTextureUV=vec2(textureMatrix*vec4(uv,1.0,0.0));}
else
{vTextureUV=vec2(textureMatrix*vec4(uv2,1.0,0.0));}
#endif
#include<clipPlaneVertex>
#include<logDepthVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[_Le]||(H.ShadersStore[_Le]=IQe);class PQe extends Br{constructor(){super(),this.DIFFUSE=!1,this.BUMP=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.POINTSIZE=!1,this.FOG=!1,this.SPECULARTERM=!1,this.NORMAL=!1,this.UV1=!1,this.UV2=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.INSTANCES=!1,this.INSTANCESCOLOR=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.LOGARITHMICDEPTH=!1,this.AREALIGHTSUPPORTED=!0,this.AREALIGHTNOROUGHTNESS=!0,this.rebuild()}}class vl extends po{constructor(e,t){super(e,t),this.diffuseColor=new Pe(1,1,1),this.specularColor=new Pe(0,0,0),this.specularPower=64,this._disableLighting=!1,this._maxSimultaneousLights=4}needAlphaBlending(){return this.alpha<1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t,i){const s=t._drawWrapper;if(this.isFrozen&&s.effect&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new PQe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;const o=n.getEngine();if(n.texturesEnabled){if(!this.mixTexture||!this.mixTexture.isReady())return!1;if(r._needUVs=!0,Pt.DiffuseTextureEnabled){if(!this.diffuseTexture1||!this.diffuseTexture1.isReady()||!this.diffuseTexture2||!this.diffuseTexture2.isReady()||!this.diffuseTexture3||!this.diffuseTexture3.isReady())return!1;r.DIFFUSE=!0}if(this.bumpTexture1&&this.bumpTexture2&&this.bumpTexture3&&Pt.BumpTextureEnabled){if(!this.bumpTexture1.isReady()||!this.bumpTexture2.isReady()||!this.bumpTexture3.isReady())return!1;r._needNormals=!0,r.BUMP=!0}}if(ad(e,n,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),r),r._needNormals=Jd(n,e,r,!1,this._maxSimultaneousLights,this._disableLighting),od(n,o,this,r,!!i),zo(e,r,!0,!0),r.isDirty){r.markAsProcessed(),n.resetCachedMaterial();const l=new Ra;r.FOG&&l.addFallback(1,"FOG"),Ql(r,l,this.maxSimultaneousLights),r.NUM_BONE_INFLUENCERS>0&&l.addCPUSkinningFallback(0,e),r.IMAGEPROCESSINGPOSTPROCESS=n.imageProcessingConfiguration.applyByPostProcess;const c=[q.PositionKind];r.NORMAL&&c.push(q.NormalKind),r.UV1&&c.push(q.UVKind),r.UV2&&c.push(q.UV2Kind),r.VERTEXCOLOR&&c.push(q.ColorKind),G1(c,e,r,l),Qo(c,r);const u="terrain",f=r.toString(),p=["world","view","viewProjection","vEyePosition","vLightsType","vDiffuseColor","vSpecularColor","vFogInfos","vFogColor","pointSize","vTextureInfos","mBones","textureMatrix","diffuse1Infos","diffuse2Infos","diffuse3Infos"],m=["textureSampler","diffuse1Sampler","diffuse2Sampler","diffuse3Sampler","bump1Sampler","bump2Sampler","bump3Sampler","logarithmicDepthConstant","areaLightsLTC1Sampler","areaLightsLTC2Sampler"],_=[];qo(p),gl({uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:r,maxSimultaneousLights:this.maxSimultaneousLights}),t.setEffect(n.getEngine().createEffect(u,{attributes:c,uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:f,fallbacks:l,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:this.maxSimultaneousLights}},o),r,this._materialContext)}if(r.AREALIGHTUSED){for(let l=0;l<e.lightSources.length;l++)if(!e.lightSources[l]._isReady())return!1}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("view",s.getViewMatrix()),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),Pc(t,this._activeEffect),this._mustRebind(s,n,i)&&(this.mixTexture&&(this._activeEffect.setTexture("textureSampler",this._mixTexture),this._activeEffect.setFloat2("vTextureInfos",this._mixTexture.coordinatesIndex,this._mixTexture.level),this._activeEffect.setMatrix("textureMatrix",this._mixTexture.getTextureMatrix()),Pt.DiffuseTextureEnabled&&(this._diffuseTexture1&&(this._activeEffect.setTexture("diffuse1Sampler",this._diffuseTexture1),this._activeEffect.setFloat2("diffuse1Infos",this._diffuseTexture1.uScale,this._diffuseTexture1.vScale)),this._diffuseTexture2&&(this._activeEffect.setTexture("diffuse2Sampler",this._diffuseTexture2),this._activeEffect.setFloat2("diffuse2Infos",this._diffuseTexture2.uScale,this._diffuseTexture2.vScale)),this._diffuseTexture3&&(this._activeEffect.setTexture("diffuse3Sampler",this._diffuseTexture3),this._activeEffect.setFloat2("diffuse3Infos",this._diffuseTexture3.uScale,this._diffuseTexture3.vScale))),Pt.BumpTextureEnabled&&s.getEngine().getCaps().standardDerivatives&&(this._bumpTexture1&&this._activeEffect.setTexture("bump1Sampler",this._bumpTexture1),this._bumpTexture2&&this._activeEffect.setTexture("bump2Sampler",this._bumpTexture2),this._bumpTexture3&&this._activeEffect.setTexture("bump3Sampler",this._bumpTexture3))),Bo(n,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._useLogarithmicDepth&&ml(r,n,s),s.bindEyePosition(n)),this._activeEffect.setColor4("vDiffuseColor",this.diffuseColor,this.alpha*t.visibility),r.SPECULARTERM&&this._activeEffect.setColor4("vSpecularColor",this.specularColor,this.specularPower),s.lightsEnabled&&!this.disableLighting&&Qd(s,t,this._activeEffect,r,this.maxSimultaneousLights),s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect),this._afterBind(t,this._activeEffect,i))}getAnimatables(){const e=[];return this.mixTexture&&this.mixTexture.animations&&this.mixTexture.animations.length>0&&e.push(this.mixTexture),e}getActiveTextures(){const e=super.getActiveTextures();return this._mixTexture&&e.push(this._mixTexture),this._diffuseTexture1&&e.push(this._diffuseTexture1),this._diffuseTexture2&&e.push(this._diffuseTexture2),this._diffuseTexture3&&e.push(this._diffuseTexture3),this._bumpTexture1&&e.push(this._bumpTexture1),this._bumpTexture2&&e.push(this._bumpTexture2),this._bumpTexture3&&e.push(this._bumpTexture3),e}hasTexture(e){return!!(super.hasTexture(e)||this._mixTexture===e||this._diffuseTexture1===e||this._diffuseTexture2===e||this._diffuseTexture3===e||this._bumpTexture1===e||this._bumpTexture2===e||this._bumpTexture3===e)}dispose(e){this.mixTexture&&this.mixTexture.dispose(),super.dispose(e)}clone(e){return It.Clone(()=>new vl(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.TerrainMaterial",e}getClassName(){return"TerrainMaterial"}static Parse(e,t,i){return It.Parse(()=>new vl(e.name,t),e,t,i)}}F([Yi("mixTexture")],vl.prototype,"_mixTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],vl.prototype,"mixTexture",void 0),F([Yi("diffuseTexture1")],vl.prototype,"_diffuseTexture1",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],vl.prototype,"diffuseTexture1",void 0),F([Yi("diffuseTexture2")],vl.prototype,"_diffuseTexture2",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],vl.prototype,"diffuseTexture2",void 0),F([Yi("diffuseTexture3")],vl.prototype,"_diffuseTexture3",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],vl.prototype,"diffuseTexture3",void 0),F([Yi("bumpTexture1")],vl.prototype,"_bumpTexture1",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],vl.prototype,"bumpTexture1",void 0),F([Yi("bumpTexture2")],vl.prototype,"_bumpTexture2",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],vl.prototype,"bumpTexture2",void 0),F([Yi("bumpTexture3")],vl.prototype,"_bumpTexture3",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],vl.prototype,"bumpTexture3",void 0),F([qs()],vl.prototype,"diffuseColor",void 0),F([qs()],vl.prototype,"specularColor",void 0),F([G()],vl.prototype,"specularPower",void 0),F([G("disableLighting")],vl.prototype,"_disableLighting",void 0),F([et("_markAllSubMeshesAsLightsDirty")],vl.prototype,"disableLighting",void 0),F([G("maxSimultaneousLights")],vl.prototype,"_maxSimultaneousLights",void 0),F([et("_markAllSubMeshesAsLightsDirty")],vl.prototype,"maxSimultaneousLights",void 0),ve("BABYLON.TerrainMaterial",vl);const vLe="triplanarPixelShader",OQe=`precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;
#ifdef SPECULARTERM
uniform vec4 vSpecularColor;
#endif
varying vec3 vPositionW;
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
#include<helperFunctions>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#ifdef DIFFUSEX
varying vec2 vTextureUVX;uniform sampler2D diffuseSamplerX;
#ifdef BUMPX
uniform sampler2D normalSamplerX;
#endif
#endif
#ifdef DIFFUSEY
varying vec2 vTextureUVY;uniform sampler2D diffuseSamplerY;
#ifdef BUMPY
uniform sampler2D normalSamplerY;
#endif
#endif
#ifdef DIFFUSEZ
varying vec2 vTextureUVZ;uniform sampler2D diffuseSamplerZ;
#ifdef BUMPZ
uniform sampler2D normalSamplerZ;
#endif
#endif
#ifdef NORMAL
varying mat3 tangentSpace;
#endif
#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
#include<logDepthDeclaration>
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#include<clipPlaneFragmentDeclaration>
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(0.,0.,0.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;
#ifdef NORMAL
vec3 normalW=tangentSpace[2];
#else
vec3 normalW=vec3(1.0,1.0,1.0);
#endif
vec4 baseNormal=vec4(0.0,0.0,0.0,1.0);normalW*=normalW;
#ifdef DIFFUSEX
baseColor+=texture2D(diffuseSamplerX,vTextureUVX)*normalW.x;
#ifdef BUMPX
baseNormal+=texture2D(normalSamplerX,vTextureUVX)*normalW.x;
#endif
#endif
#ifdef DIFFUSEY
baseColor+=texture2D(diffuseSamplerY,vTextureUVY)*normalW.y;
#ifdef BUMPY
baseNormal+=texture2D(normalSamplerY,vTextureUVY)*normalW.y;
#endif
#endif
#ifdef DIFFUSEZ
baseColor+=texture2D(diffuseSamplerZ,vTextureUVZ)*normalW.z;
#ifdef BUMPZ
baseNormal+=texture2D(normalSamplerZ,vTextureUVZ)*normalW.z;
#endif
#endif
#ifdef NORMAL
normalW=normalize((2.0*baseNormal.xyz-1.0)*tangentSpace);
#endif
#ifdef ALPHATEST
if (baseColor.a<0.4)
discard;
#endif
#include<depthPrePass>
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
baseColor.rgb*=vColor.rgb;
#endif
vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float aggShadow=0.;float numLights=0.;
#ifdef SPECULARTERM
float glossiness=vSpecularColor.a;vec3 specularBase=vec3(0.,0.,0.);vec3 specularColor=vSpecularColor.rgb;
#else
float glossiness=0.;
#endif
#include<lightFragment>[0..maxSimultaneousLights]
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
#ifdef SPECULARTERM
vec3 finalSpecular=specularBase*specularColor;
#else
vec3 finalSpecular=vec3(0.0);
#endif
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4 color=vec4(finalDiffuse+finalSpecular,alpha);
#include<logDepthFragment>
#include<fogFragment>
gl_FragColor=color;
#include<imageProcessingCompatibility>
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStore[vLe]||(H.ShadersStore[vLe]=OQe);const ALe="triplanarVertexShader",RQe=`precision highp float;attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<helperFunctions>
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
uniform mat4 view;uniform mat4 viewProjection;
#ifdef DIFFUSEX
varying vec2 vTextureUVX;
#endif
#ifdef DIFFUSEY
varying vec2 vTextureUVY;
#endif
#ifdef DIFFUSEZ
varying vec2 vTextureUVZ;
#endif
uniform float tileSize;
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying mat3 tangentSpace;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
#include<clipPlaneVertexDeclaration>
#include<logDepthDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#define CUSTOM_VERTEX_DEFINITIONS
void main(void)
{
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);
#ifdef DIFFUSEX
vTextureUVX=worldPos.zy/tileSize;
#endif
#ifdef DIFFUSEY
vTextureUVY=worldPos.xz/tileSize;
#endif
#ifdef DIFFUSEZ
vTextureUVZ=worldPos.xy/tileSize;
#endif
#ifdef NORMAL
vec3 xtan=vec3(0,0,1);vec3 xbin=vec3(0,1,0);vec3 ytan=vec3(1,0,0);vec3 ybin=vec3(0,0,1);vec3 ztan=vec3(1,0,0);vec3 zbin=vec3(0,1,0);vec3 normalizedNormal=normalize(normal);normalizedNormal*=normalizedNormal;vec3 worldBinormal=normalize(xbin*normalizedNormal.x+ybin*normalizedNormal.y+zbin*normalizedNormal.z);vec3 worldTangent=normalize(xtan*normalizedNormal.x+ytan*normalizedNormal.y+ztan*normalizedNormal.z);mat3 normalWorld=mat3(finalWorld);
#ifdef NONUNIFORMSCALING
normalWorld=transposeMat3(inverseMat3(normalWorld));
#endif
worldTangent=normalize((normalWorld*worldTangent).xyz);worldBinormal=normalize((normalWorld*worldBinormal).xyz);vec3 worldNormal=normalize((normalWorld*normalize(normal)).xyz);tangentSpace[0]=worldTangent;tangentSpace[1]=worldBinormal;tangentSpace[2]=worldNormal;
#endif
#include<clipPlaneVertex>
#include<logDepthVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[ALe]||(H.ShadersStore[ALe]=RQe);class DQe extends Br{constructor(){super(),this.DIFFUSEX=!1,this.DIFFUSEY=!1,this.DIFFUSEZ=!1,this.BUMPX=!1,this.BUMPY=!1,this.BUMPZ=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.POINTSIZE=!1,this.FOG=!1,this.SPECULARTERM=!1,this.NORMAL=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.INSTANCES=!1,this.INSTANCESCOLOR=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.NONUNIFORMSCALING=!1,this.LOGARITHMICDEPTH=!1,this.AREALIGHTSUPPORTED=!0,this.AREALIGHTNOROUGHTNESS=!0,this.rebuild()}}class Al extends po{constructor(e,t){super(e,t),this.tileSize=1,this.diffuseColor=new Pe(1,1,1),this.specularColor=new Pe(.2,.2,.2),this.specularPower=64,this._disableLighting=!1,this._maxSimultaneousLights=4}needAlphaBlending(){return this.alpha<1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t,i){const s=t._drawWrapper;if(this.isFrozen&&s.effect&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new DQe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;const o=n.getEngine();if(r._areTexturesDirty&&n.texturesEnabled){if(Pt.DiffuseTextureEnabled){const l=[this.diffuseTextureX,this.diffuseTextureY,this.diffuseTextureZ],c=["DIFFUSEX","DIFFUSEY","DIFFUSEZ"];for(let u=0;u<l.length;u++)if(l[u])if(l[u].isReady())r[c[u]]=!0;else return!1}if(Pt.BumpTextureEnabled){const l=[this.normalTextureX,this.normalTextureY,this.normalTextureZ],c=["BUMPX","BUMPY","BUMPZ"];for(let u=0;u<l.length;u++)if(l[u])if(l[u].isReady())r[c[u]]=!0;else return!1}}if(ad(e,n,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),r),r._needNormals=Jd(n,e,r,!1,this._maxSimultaneousLights,this._disableLighting),od(n,o,this,r,!!i),zo(e,r,!0,!0),r.isDirty){r.markAsProcessed(),n.resetCachedMaterial();const l=new Ra;r.FOG&&l.addFallback(1,"FOG"),Ql(r,l,this.maxSimultaneousLights),r.NUM_BONE_INFLUENCERS>0&&l.addCPUSkinningFallback(0,e),r.IMAGEPROCESSINGPOSTPROCESS=n.imageProcessingConfiguration.applyByPostProcess;const c=[q.PositionKind];r.NORMAL&&c.push(q.NormalKind),r.VERTEXCOLOR&&c.push(q.ColorKind),G1(c,e,r,l),Qo(c,r);const u="triplanar",f=r.toString(),p=["world","view","viewProjection","vEyePosition","vLightsType","vDiffuseColor","vSpecularColor","vFogInfos","vFogColor","pointSize","mBones","tileSize"],m=["diffuseSamplerX","diffuseSamplerY","diffuseSamplerZ","normalSamplerX","normalSamplerY","normalSamplerZ","logarithmicDepthConstant","areaLightsLTC1Sampler","areaLightsLTC2Sampler"],_=[];qo(p),gl({uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:r,maxSimultaneousLights:this.maxSimultaneousLights}),t.setEffect(n.getEngine().createEffect(u,{attributes:c,uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:f,fallbacks:l,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:this.maxSimultaneousLights}},o),r,this._materialContext)}if(r.AREALIGHTUSED){for(let l=0;l<e.lightSources.length;l++)if(!e.lightSources[l]._isReady())return!1}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),Pc(t,this._activeEffect),this._activeEffect.setFloat("tileSize",this.tileSize),this._mustRebind(s,n,i)&&(this.diffuseTextureX&&this._activeEffect.setTexture("diffuseSamplerX",this.diffuseTextureX),this.diffuseTextureY&&this._activeEffect.setTexture("diffuseSamplerY",this.diffuseTextureY),this.diffuseTextureZ&&this._activeEffect.setTexture("diffuseSamplerZ",this.diffuseTextureZ),this.normalTextureX&&this._activeEffect.setTexture("normalSamplerX",this.normalTextureX),this.normalTextureY&&this._activeEffect.setTexture("normalSamplerY",this.normalTextureY),this.normalTextureZ&&this._activeEffect.setTexture("normalSamplerZ",this.normalTextureZ),Bo(n,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._useLogarithmicDepth&&ml(r,n,s),s.bindEyePosition(n)),this._activeEffect.setColor4("vDiffuseColor",this.diffuseColor,this.alpha*t.visibility),r.SPECULARTERM&&this._activeEffect.setColor4("vSpecularColor",this.specularColor,this.specularPower),s.lightsEnabled&&!this.disableLighting&&Qd(s,t,this._activeEffect,r,this.maxSimultaneousLights),s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect),this._afterBind(t,this._activeEffect,i))}getAnimatables(){const e=[];return this.mixTexture&&this.mixTexture.animations&&this.mixTexture.animations.length>0&&e.push(this.mixTexture),e}getActiveTextures(){const e=super.getActiveTextures();return this._diffuseTextureX&&e.push(this._diffuseTextureX),this._diffuseTextureY&&e.push(this._diffuseTextureY),this._diffuseTextureZ&&e.push(this._diffuseTextureZ),this._normalTextureX&&e.push(this._normalTextureX),this._normalTextureY&&e.push(this._normalTextureY),this._normalTextureZ&&e.push(this._normalTextureZ),e}hasTexture(e){return!!(super.hasTexture(e)||this._diffuseTextureX===e||this._diffuseTextureY===e||this._diffuseTextureZ===e||this._normalTextureX===e||this._normalTextureY===e||this._normalTextureZ===e)}dispose(e){this.mixTexture&&this.mixTexture.dispose(),super.dispose(e)}clone(e){return It.Clone(()=>new Al(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.TriPlanarMaterial",e}getClassName(){return"TriPlanarMaterial"}static Parse(e,t,i){return It.Parse(()=>new Al(e.name,t),e,t,i)}}F([Yi()],Al.prototype,"mixTexture",void 0),F([Yi("diffuseTextureX")],Al.prototype,"_diffuseTextureX",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Al.prototype,"diffuseTextureX",void 0),F([Yi("diffuseTexturY")],Al.prototype,"_diffuseTextureY",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Al.prototype,"diffuseTextureY",void 0),F([Yi("diffuseTextureZ")],Al.prototype,"_diffuseTextureZ",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Al.prototype,"diffuseTextureZ",void 0),F([Yi("normalTextureX")],Al.prototype,"_normalTextureX",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Al.prototype,"normalTextureX",void 0),F([Yi("normalTextureY")],Al.prototype,"_normalTextureY",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Al.prototype,"normalTextureY",void 0),F([Yi("normalTextureZ")],Al.prototype,"_normalTextureZ",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],Al.prototype,"normalTextureZ",void 0),F([G()],Al.prototype,"tileSize",void 0),F([qs()],Al.prototype,"diffuseColor",void 0),F([qs()],Al.prototype,"specularColor",void 0),F([G()],Al.prototype,"specularPower",void 0),F([G("disableLighting")],Al.prototype,"_disableLighting",void 0),F([et("_markAllSubMeshesAsLightsDirty")],Al.prototype,"disableLighting",void 0),F([G("maxSimultaneousLights")],Al.prototype,"_maxSimultaneousLights",void 0),F([et("_markAllSubMeshesAsLightsDirty")],Al.prototype,"maxSimultaneousLights",void 0),ve("BABYLON.TriPlanarMaterial",Al);const CLe="waterPixelShader",NQe=`#ifdef LOGARITHMICDEPTH
#extension GL_EXT_frag_depth : enable
#endif
precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;
#ifdef SPECULARTERM
uniform vec4 vSpecularColor;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
#include<helperFunctions>
#include<imageProcessingDeclaration>
#include<imageProcessingFunctions>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#include<lightsFragmentFunctions>
#include<shadowsFragmentFunctions>
#ifdef BUMP
varying vec2 vNormalUV;
#ifdef BUMPSUPERIMPOSE
varying vec2 vNormalUV2;
#endif
uniform sampler2D normalSampler;uniform vec2 vNormalInfos;
#endif
uniform sampler2D refractionSampler;uniform sampler2D reflectionSampler;const float LOG2=1.442695;uniform vec3 cameraPosition;uniform vec4 waterColor;uniform float colorBlendFactor;uniform vec4 waterColor2;uniform float colorBlendFactor2;uniform float bumpHeight;uniform float time;varying vec3 vRefractionMapTexCoord;varying vec3 vReflectionMapTexCoord;
#include<clipPlaneFragmentDeclaration>
#include<logDepthDeclaration>
#include<fogFragmentDeclaration>
#define CUSTOM_FRAGMENT_DEFINITIONS
void main(void) {
#define CUSTOM_FRAGMENT_MAIN_BEGIN
#include<clipPlaneFragment>
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;
#ifdef BUMP
#ifdef BUMPSUPERIMPOSE
baseColor=0.6*texture2D(normalSampler,vNormalUV)+0.4*texture2D(normalSampler,vec2(vNormalUV2.x,vNormalUV2.y));
#else
baseColor=texture2D(normalSampler,vNormalUV);
#endif
vec3 bumpColor=baseColor.rgb;
#ifdef ALPHATEST
if (baseColor.a<0.4)
discard;
#endif
baseColor.rgb*=vNormalInfos.y;
#else
vec3 bumpColor=vec3(1.0);
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
baseColor.rgb*=vColor.rgb;
#endif
#ifdef NORMAL
vec2 perturbation=bumpHeight*(baseColor.rg-0.5);
#ifdef BUMPAFFECTSREFLECTION
vec3 normalW=normalize(vNormalW+vec3(perturbation.x*8.0,0.0,perturbation.y*8.0));if (normalW.y<0.0) {normalW.y=-normalW.y;}
#else
vec3 normalW=normalize(vNormalW);
#endif
#else
vec3 normalW=vec3(1.0,1.0,1.0);vec2 perturbation=bumpHeight*(vec2(1.0,1.0)-0.5);
#endif
#ifdef FRESNELSEPARATE
#ifdef REFLECTION
vec2 projectedRefractionTexCoords=clamp(vRefractionMapTexCoord.xy/vRefractionMapTexCoord.z+perturbation*0.5,0.0,1.0);vec4 refractiveColor=texture2D(refractionSampler,projectedRefractionTexCoords);
#ifdef IS_REFRACTION_LINEAR
refractiveColor.rgb=toGammaSpace(refractiveColor.rgb);
#endif
vec2 projectedReflectionTexCoords=clamp(vec2(
vReflectionMapTexCoord.x/vReflectionMapTexCoord.z+perturbation.x*0.3,
vReflectionMapTexCoord.y/vReflectionMapTexCoord.z+perturbation.y
),0.0,1.0);vec4 reflectiveColor=texture2D(reflectionSampler,projectedReflectionTexCoords);
#ifdef IS_REFLECTION_LINEAR
reflectiveColor.rgb=toGammaSpace(reflectiveColor.rgb);
#endif
vec3 upVector=vec3(0.0,1.0,0.0);float fresnelTerm=clamp(abs(pow(dot(viewDirectionW,upVector),3.0)),0.05,0.65);float IfresnelTerm=1.0-fresnelTerm;refractiveColor=colorBlendFactor*waterColor+(1.0-colorBlendFactor)*refractiveColor;reflectiveColor=IfresnelTerm*colorBlendFactor2*waterColor+(1.0-colorBlendFactor2*IfresnelTerm)*reflectiveColor;vec4 combinedColor=refractiveColor*fresnelTerm+reflectiveColor*IfresnelTerm;baseColor=combinedColor;
#endif
vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float aggShadow=0.;float numLights=0.;
#ifdef SPECULARTERM
float glossiness=vSpecularColor.a;vec3 specularBase=vec3(0.,0.,0.);vec3 specularColor=vSpecularColor.rgb;
#else
float glossiness=0.;
#endif
#include<lightFragment>[0..maxSimultaneousLights]
vec3 finalDiffuse=clamp(baseColor.rgb,0.0,1.0);
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
#ifdef SPECULARTERM
vec3 finalSpecular=specularBase*specularColor;
#else
vec3 finalSpecular=vec3(0.0);
#endif
#else 
#ifdef REFLECTION
vec2 projectedRefractionTexCoords=clamp(vRefractionMapTexCoord.xy/vRefractionMapTexCoord.z+perturbation,0.0,1.0);vec4 refractiveColor=texture2D(refractionSampler,projectedRefractionTexCoords);
#ifdef IS_REFRACTION_LINEAR
refractiveColor.rgb=toGammaSpace(refractiveColor.rgb);
#endif
vec2 projectedReflectionTexCoords=clamp(vReflectionMapTexCoord.xy/vReflectionMapTexCoord.z+perturbation,0.0,1.0);vec4 reflectiveColor=texture2D(reflectionSampler,projectedReflectionTexCoords);
#ifdef IS_REFLECTION_LINEAR
reflectiveColor.rgb=toGammaSpace(reflectiveColor.rgb);
#endif
vec3 upVector=vec3(0.0,1.0,0.0);float fresnelTerm=max(dot(viewDirectionW,upVector),0.0);vec4 combinedColor=refractiveColor*fresnelTerm+reflectiveColor*(1.0-fresnelTerm);baseColor=colorBlendFactor*waterColor+(1.0-colorBlendFactor)*combinedColor;
#endif
vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float aggShadow=0.;float numLights=0.;
#ifdef SPECULARTERM
float glossiness=vSpecularColor.a;vec3 specularBase=vec3(0.,0.,0.);vec3 specularColor=vSpecularColor.rgb;
#else
float glossiness=0.;
#endif
#include<lightFragment>[0..maxSimultaneousLights]
vec3 finalDiffuse=clamp(baseColor.rgb,0.0,1.0);
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
alpha*=vColor.a;
#endif
#ifdef SPECULARTERM
vec3 finalSpecular=specularBase*specularColor;
#else
vec3 finalSpecular=vec3(0.0);
#endif
#endif
vec4 color=vec4(finalDiffuse+finalSpecular,alpha);
#include<logDepthFragment>
#include<fogFragment>
#ifdef IMAGEPROCESSINGPOSTPROCESS
color.rgb=toLinearSpace(color.rgb);
#elif defined(IMAGEPROCESSING)
color.rgb=toLinearSpace(color.rgb);color=applyImageProcessing(color);
#endif
gl_FragColor=color;
#define CUSTOM_FRAGMENT_MAIN_END
}
`;H.ShadersStore[CLe]||(H.ShadersStore[CLe]=NQe);const xLe="waterVertexShader",wQe=`precision highp float;attribute vec3 position;
#ifdef NORMAL
attribute vec3 normal;
#endif
#ifdef UV1
attribute vec2 uv;
#endif
#ifdef UV2
attribute vec2 uv2;
#endif
#ifdef VERTEXCOLOR
attribute vec4 color;
#endif
#include<bonesDeclaration>
#include<bakedVertexAnimationDeclaration>
#include<instancesDeclaration>
uniform mat4 view;uniform mat4 viewProjection;
#ifdef BUMP
varying vec2 vNormalUV;
#ifdef BUMPSUPERIMPOSE
varying vec2 vNormalUV2;
#endif
uniform mat4 normalMatrix;uniform vec2 vNormalInfos;
#endif
#ifdef POINTSIZE
uniform float pointSize;
#endif
varying vec3 vPositionW;
#ifdef NORMAL
varying vec3 vNormalW;
#endif
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
varying vec4 vColor;
#endif
#include<clipPlaneVertexDeclaration>
#include<fogVertexDeclaration>
#include<__decl__lightFragment>[0..maxSimultaneousLights]
#include<logDepthDeclaration>
uniform mat4 reflectionViewProjection;uniform vec2 windDirection;uniform float waveLength;uniform float time;uniform float windForce;uniform float waveHeight;uniform float waveSpeed;uniform float waveCount;varying vec3 vRefractionMapTexCoord;varying vec3 vReflectionMapTexCoord;
#define CUSTOM_VERTEX_DEFINITIONS
void main(void) {
#define CUSTOM_VERTEX_MAIN_BEGIN
#ifdef VERTEXCOLOR
vec4 colorUpdated=color;
#endif
#include<instancesVertex>
#include<bonesVertex>
#include<bakedVertexAnimation>
vec4 worldPos=finalWorld*vec4(position,1.0);vPositionW=vec3(worldPos);
#ifdef NORMAL
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
#endif
#ifndef UV1
vec2 uv=vec2(0.,0.);
#endif
#ifndef UV2
vec2 uv2=vec2(0.,0.);
#endif
#ifdef BUMP
if (vNormalInfos.x==0.)
{vNormalUV=vec2(normalMatrix*vec4((uv*1.0)/waveLength+time*windForce*windDirection,1.0,0.0));
#ifdef BUMPSUPERIMPOSE
vNormalUV2=vec2(normalMatrix*vec4((uv*0.721)/waveLength+time*1.2*windForce*windDirection,1.0,0.0));
#endif
}
else
{vNormalUV=vec2(normalMatrix*vec4((uv2*1.0)/waveLength+time*windForce*windDirection ,1.0,0.0));
#ifdef BUMPSUPERIMPOSE
vNormalUV2=vec2(normalMatrix*vec4((uv2*0.721)/waveLength+time*1.2*windForce*windDirection ,1.0,0.0));
#endif
}
#endif
#include<clipPlaneVertex>
#include<fogVertex>
#include<shadowsVertex>[0..maxSimultaneousLights]
#include<vertexColorMixing>
#if defined(POINTSIZE) && !defined(WEBGPU)
gl_PointSize=pointSize;
#endif
float finalWaveCount=1.0/(waveCount*0.5);
#ifdef USE_WORLD_COORDINATES
vec3 p=worldPos.xyz;
#else
vec3 p=position;
#endif
float newY=(sin(((p.x/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.x*5.0)
+ (cos(((p.z/finalWaveCount)+ time*waveSpeed))*waveHeight*windDirection.y*5.0);p.y+=abs(newY);
#ifdef USE_WORLD_COORDINATES
gl_Position=viewProjection*vec4(p,1.0);
#else
gl_Position=viewProjection*finalWorld*vec4(p,1.0);
#endif
#ifdef REFLECTION
vRefractionMapTexCoord.x=0.5*(gl_Position.w+gl_Position.x);vRefractionMapTexCoord.y=0.5*(gl_Position.w+gl_Position.y);vRefractionMapTexCoord.z=gl_Position.w;worldPos=reflectionViewProjection*finalWorld*vec4(position,1.0);vReflectionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);vReflectionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);vReflectionMapTexCoord.z=worldPos.w;
#endif
#include<logDepthVertex>
#define CUSTOM_VERTEX_MAIN_END
}
`;H.ShadersStore[xLe]||(H.ShadersStore[xLe]=wQe);class BQe extends Br{constructor(){super(),this.BUMP=!1,this.REFLECTION=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.POINTSIZE=!1,this.FOG=!1,this.NORMAL=!1,this.UV1=!1,this.UV2=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.INSTANCES=!1,this.INSTANCESCOLOR=!1,this.SPECULARTERM=!1,this.LOGARITHMICDEPTH=!1,this.USE_REVERSE_DEPTHBUFFER=!1,this.FRESNELSEPARATE=!1,this.BUMPSUPERIMPOSE=!1,this.BUMPAFFECTSREFLECTION=!1,this.USE_WORLD_COORDINATES=!1,this.IMAGEPROCESSING=!1,this.VIGNETTE=!1,this.VIGNETTEBLENDMODEMULTIPLY=!1,this.VIGNETTEBLENDMODEOPAQUE=!1,this.TONEMAPPING=0,this.CONTRAST=!1,this.EXPOSURE=!1,this.COLORCURVES=!1,this.COLORGRADING=!1,this.COLORGRADING3D=!1,this.SAMPLER3DGREENDEPTH=!1,this.SAMPLER3DBGRMAP=!1,this.DITHER=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.rebuild()}}class ga extends po{get hasRenderTargetTextures(){return!0}constructor(e,t,i=new Ue(512,512)){super(e,t),this.renderTargetSize=i,this.diffuseColor=new Pe(1,1,1),this.specularColor=new Pe(0,0,0),this.specularPower=64,this._disableLighting=!1,this._maxSimultaneousLights=4,this.windForce=6,this.windDirection=new Ue(0,1),this.waveHeight=.4,this.bumpHeight=.4,this._bumpSuperimpose=!1,this._fresnelSeparate=!1,this._bumpAffectsReflection=!1,this.waterColor=new Pe(.1,.1,.6),this.colorBlendFactor=.2,this.waterColor2=new Pe(.1,.1,.6),this.colorBlendFactor2=.2,this.waveLength=.1,this.waveSpeed=1,this.waveCount=20,this.disableClipPlane=!1,this._useWorldCoordinatesForWaveDeformation=!1,this._renderTargets=new dl(16),this._mesh=null,this._reflectionTransform=me.Zero(),this._lastTime=0,this._lastDeltaTime=0,this._createRenderTargets(this.getScene(),i),this.getRenderTargetTextures=()=>(this._renderTargets.reset(),this._renderTargets.push(this._reflectionRTT),this._renderTargets.push(this._refractionRTT),this._renderTargets),this._imageProcessingConfiguration=this.getScene().imageProcessingConfiguration,this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add(()=>{this._markAllSubMeshesAsImageProcessingDirty()}))}get refractionTexture(){return this._refractionRTT}get reflectionTexture(){return this._reflectionRTT}addToRenderList(e){this._refractionRTT&&this._refractionRTT.renderList&&this._refractionRTT.renderList.push(e),this._reflectionRTT&&this._reflectionRTT.renderList&&this._reflectionRTT.renderList.push(e)}removeFromRenderList(e){if(this._refractionRTT&&this._refractionRTT.renderList){const t=this._refractionRTT.renderList.indexOf(e);t!==-1&&this._refractionRTT.renderList.splice(t,1)}if(this._reflectionRTT&&this._reflectionRTT.renderList){const t=this._reflectionRTT.renderList.indexOf(e);t!==-1&&this._reflectionRTT.renderList.splice(t,1)}}enableRenderTargets(e){const t=e?1:0;this._refractionRTT&&(this._refractionRTT.refreshRate=t),this._reflectionRTT&&(this._reflectionRTT.refreshRate=t)}getRenderList(){return this._refractionRTT?this._refractionRTT.renderList:[]}get renderTargetsEnabled(){return!(this._refractionRTT&&this._refractionRTT.refreshRate===0)}needAlphaBlending(){return this.alpha<1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t,i){const s=t._drawWrapper;if(this.isFrozen&&s.effect&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(t.materialDefines=new BQe);const r=t.materialDefines,n=this.getScene();if(this._isReadyForSubMesh(t))return!0;const o=n.getEngine();if(r._areTexturesDirty&&(r._needUVs=!1,n.texturesEnabled)){if(this.bumpTexture&&Pt.BumpTextureEnabled)if(this.bumpTexture.isReady())r._needUVs=!0,r.BUMP=!0;else return!1;Pt.ReflectionTextureEnabled&&(r.REFLECTION=!0)}if(od(n,o,this,r,!!i),ad(e,n,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this.needAlphaTestingForMesh(e),r),r._areMiscDirty&&(r.FRESNELSEPARATE=this._fresnelSeparate,r.BUMPSUPERIMPOSE=this._bumpSuperimpose,r.BUMPAFFECTSREFLECTION=this._bumpAffectsReflection,r.USE_WORLD_COORDINATES=this._useWorldCoordinatesForWaveDeformation),r._needNormals=Jd(n,e,r,!0,this._maxSimultaneousLights,this._disableLighting),r._areImageProcessingDirty&&this._imageProcessingConfiguration){if(!this._imageProcessingConfiguration.isReady())return!1;this._imageProcessingConfiguration.prepareDefines(r),r.IS_REFLECTION_LINEAR=this.reflectionTexture!=null&&!this.reflectionTexture.gammaSpace,r.IS_REFRACTION_LINEAR=this.refractionTexture!=null&&!this.refractionTexture.gammaSpace}if(zo(e,r,!0,!0),this._mesh=e,this._waitingRenderList){for(let l=0;l<this._waitingRenderList.length;l++)this.addToRenderList(n.getNodeById(this._waitingRenderList[l]));this._waitingRenderList=null}if(r.isDirty){r.markAsProcessed(),n.resetCachedMaterial();const l=new Ra;r.FOG&&l.addFallback(1,"FOG"),r.LOGARITHMICDEPTH&&l.addFallback(0,"LOGARITHMICDEPTH"),Ql(r,l,this.maxSimultaneousLights),r.NUM_BONE_INFLUENCERS>0&&l.addCPUSkinningFallback(0,e);const c=[q.PositionKind];r.NORMAL&&c.push(q.NormalKind),r.UV1&&c.push(q.UVKind),r.UV2&&c.push(q.UV2Kind),r.VERTEXCOLOR&&c.push(q.ColorKind),G1(c,e,r,l),Qo(c,r);const u="water",f=r.toString(),p=["world","view","viewProjection","vEyePosition","vLightsType","vDiffuseColor","vSpecularColor","vFogInfos","vFogColor","pointSize","vNormalInfos","mBones","normalMatrix","logarithmicDepthConstant","reflectionViewProjection","windDirection","waveLength","time","windForce","cameraPosition","bumpHeight","waveHeight","waterColor","waterColor2","colorBlendFactor","colorBlendFactor2","waveSpeed","waveCount"],m=["normalSampler","refractionSampler","reflectionSampler"],_=[];ws&&(ws.PrepareUniforms(p,r),ws.PrepareSamplers(m,r)),qo(p),gl({uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:r,maxSimultaneousLights:this.maxSimultaneousLights}),t.setEffect(n.getEngine().createEffect(u,{attributes:c,uniformsNames:p,uniformBuffersNames:_,samplers:m,defines:f,fallbacks:l,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:this._maxSimultaneousLights}},o),r,this._materialContext)}return!t.effect||!t.effect.isReady()?!1:(r._renderId=n.getRenderId(),s._wasPreviouslyReady=!0,s._wasPreviouslyUsingInstances=!!i,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;if(!n||!this._mesh)return;this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),Pc(t,this._activeEffect),this._mustRebind(s,n,i)&&(this.bumpTexture&&Pt.BumpTextureEnabled&&(this._activeEffect.setTexture("normalSampler",this.bumpTexture),this._activeEffect.setFloat2("vNormalInfos",this.bumpTexture.coordinatesIndex,this.bumpTexture.level),this._activeEffect.setMatrix("normalMatrix",this.bumpTexture.getTextureMatrix())),Bo(n,this,s),this.pointsCloud&&this._activeEffect.setFloat("pointSize",this.pointSize),this._useLogarithmicDepth&&ml(r,n,s),s.bindEyePosition(n)),this._activeEffect.setColor4("vDiffuseColor",this.diffuseColor,this.alpha*t.visibility),r.SPECULARTERM&&this._activeEffect.setColor4("vSpecularColor",this.specularColor,this.specularPower),s.lightsEnabled&&!this.disableLighting&&Qd(s,t,this._activeEffect,r,this.maxSimultaneousLights),s.fogEnabled&&t.applyFog&&s.fogMode!==ui.FOGMODE_NONE&&this._activeEffect.setMatrix("view",s.getViewMatrix()),Ic(s,t,this._activeEffect),ml(r,this._activeEffect,s),Pt.ReflectionTextureEnabled&&(this._activeEffect.setTexture("refractionSampler",this._refractionRTT),this._activeEffect.setTexture("reflectionSampler",this._reflectionRTT));const o=this._reflectionTransform.multiply(s.getProjectionMatrix()),l=s.getEngine().getDeltaTime();l!==this._lastDeltaTime&&(this._lastDeltaTime=l,this._lastTime+=this._lastDeltaTime),this._activeEffect.setMatrix("reflectionViewProjection",o),this._activeEffect.setVector2("windDirection",this.windDirection),this._activeEffect.setFloat("waveLength",this.waveLength),this._activeEffect.setFloat("time",this._lastTime/1e5),this._activeEffect.setFloat("windForce",this.windForce),this._activeEffect.setFloat("waveHeight",this.waveHeight),this._activeEffect.setFloat("bumpHeight",this.bumpHeight),this._activeEffect.setColor4("waterColor",this.waterColor,1),this._activeEffect.setFloat("colorBlendFactor",this.colorBlendFactor),this._activeEffect.setColor4("waterColor2",this.waterColor2,1),this._activeEffect.setFloat("colorBlendFactor2",this.colorBlendFactor2),this._activeEffect.setFloat("waveSpeed",this.waveSpeed),this._activeEffect.setFloat("waveCount",this.waveCount),this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(this._activeEffect),this._afterBind(t,this._activeEffect,i)}_createRenderTargets(e,t){this._refractionRTT=new Ir(name+"_refraction",{width:t.x,height:t.y},e,!1,!0),this._refractionRTT.wrapU=ze.TEXTURE_MIRROR_ADDRESSMODE,this._refractionRTT.wrapV=ze.TEXTURE_MIRROR_ADDRESSMODE,this._refractionRTT.ignoreCameraViewport=!0;let i=!1;this._refractionRTT.onBeforeRenderObservable.add(()=>{i=e.getBoundingBoxRenderer().enabled,e.getBoundingBoxRenderer().enabled=!1}),this._refractionRTT.onAfterRenderObservable.add(()=>{e.getBoundingBoxRenderer().enabled=i}),this._reflectionRTT=new Ir(name+"_reflection",{width:t.x,height:t.y},e,!1,!0),this._reflectionRTT.wrapU=ze.TEXTURE_MIRROR_ADDRESSMODE,this._reflectionRTT.wrapV=ze.TEXTURE_MIRROR_ADDRESSMODE,this._reflectionRTT.ignoreCameraViewport=!0;let s,r=null,n;const o=me.Zero();this._refractionRTT.onBeforeRender=()=>{if(this._mesh&&(s=this._mesh.isVisible,this._mesh.isVisible=!1),!this.disableClipPlane){r=e.clipPlane;const l=this._mesh?this._mesh.absolutePosition.y:0;e.clipPlane=Sh.FromPositionAndNormal(new P(0,l+.05,0),new P(0,1,0))}},this._refractionRTT.onAfterRender=()=>{this._mesh&&(this._mesh.isVisible=s),this.disableClipPlane||(e.clipPlane=r)},this._reflectionRTT.onBeforeRender=()=>{if(this._mesh&&(s=this._mesh.isVisible,this._mesh.isVisible=!1),!this.disableClipPlane){r=e.clipPlane;const l=this._mesh?this._mesh.absolutePosition.y:0;e.clipPlane=Sh.FromPositionAndNormal(new P(0,l-.05,0),new P(0,-1,0)),me.ReflectionToRef(e.clipPlane,o)}n=e.getViewMatrix(),o.multiplyToRef(n,this._reflectionTransform),e.setTransformMatrix(this._reflectionTransform,e.getProjectionMatrix()),e._mirroredCameraPosition=P.TransformCoordinates(e.activeCamera.position,o)},this._reflectionRTT.onAfterRender=()=>{this._mesh&&(this._mesh.isVisible=s),e.clipPlane=r,e.setTransformMatrix(n,e.getProjectionMatrix()),e._mirroredCameraPosition=null}}getAnimatables(){const e=[];return this.bumpTexture&&this.bumpTexture.animations&&this.bumpTexture.animations.length>0&&e.push(this.bumpTexture),this._reflectionRTT&&this._reflectionRTT.animations&&this._reflectionRTT.animations.length>0&&e.push(this._reflectionRTT),this._refractionRTT&&this._refractionRTT.animations&&this._refractionRTT.animations.length>0&&e.push(this._refractionRTT),e}getActiveTextures(){const e=super.getActiveTextures();return this._bumpTexture&&e.push(this._bumpTexture),e}hasTexture(e){return!!(super.hasTexture(e)||this._bumpTexture===e)}dispose(e){this.bumpTexture&&this.bumpTexture.dispose();let t=this.getScene().customRenderTargets.indexOf(this._refractionRTT);t!=-1&&this.getScene().customRenderTargets.splice(t,1),t=-1,t=this.getScene().customRenderTargets.indexOf(this._reflectionRTT),t!=-1&&this.getScene().customRenderTargets.splice(t,1),this._reflectionRTT&&this._reflectionRTT.dispose(),this._refractionRTT&&this._refractionRTT.dispose(),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),super.dispose(e)}clone(e){return It.Clone(()=>new ga(e,this.getScene()),this)}serialize(){const e=super.serialize();if(e.customType="BABYLON.WaterMaterial",e.renderList=[],this._refractionRTT&&this._refractionRTT.renderList)for(let t=0;t<this._refractionRTT.renderList.length;t++)e.renderList.push(this._refractionRTT.renderList[t].id);return e}getClassName(){return"WaterMaterial"}static Parse(e,t,i){const s=It.Parse(()=>new ga(e.name,t),e,t,i);return s._waitingRenderList=e.renderList,s}static CreateDefaultMesh(e,t){return cL(e,{width:512,height:512,subdivisions:32,updatable:!1},t)}}F([Yi("bumpTexture")],ga.prototype,"_bumpTexture",void 0),F([et("_markAllSubMeshesAsTexturesDirty")],ga.prototype,"bumpTexture",void 0),F([qs()],ga.prototype,"diffuseColor",void 0),F([qs()],ga.prototype,"specularColor",void 0),F([G()],ga.prototype,"specularPower",void 0),F([G("disableLighting")],ga.prototype,"_disableLighting",void 0),F([et("_markAllSubMeshesAsLightsDirty")],ga.prototype,"disableLighting",void 0),F([G("maxSimultaneousLights")],ga.prototype,"_maxSimultaneousLights",void 0),F([et("_markAllSubMeshesAsLightsDirty")],ga.prototype,"maxSimultaneousLights",void 0),F([G()],ga.prototype,"windForce",void 0),F([vw()],ga.prototype,"windDirection",void 0),F([G()],ga.prototype,"waveHeight",void 0),F([G()],ga.prototype,"bumpHeight",void 0),F([G("bumpSuperimpose")],ga.prototype,"_bumpSuperimpose",void 0),F([et("_markAllSubMeshesAsMiscDirty")],ga.prototype,"bumpSuperimpose",void 0),F([G("fresnelSeparate")],ga.prototype,"_fresnelSeparate",void 0),F([et("_markAllSubMeshesAsMiscDirty")],ga.prototype,"fresnelSeparate",void 0),F([G("bumpAffectsReflection")],ga.prototype,"_bumpAffectsReflection",void 0),F([et("_markAllSubMeshesAsMiscDirty")],ga.prototype,"bumpAffectsReflection",void 0),F([qs()],ga.prototype,"waterColor",void 0),F([G()],ga.prototype,"colorBlendFactor",void 0),F([qs()],ga.prototype,"waterColor2",void 0),F([G()],ga.prototype,"colorBlendFactor2",void 0),F([G()],ga.prototype,"waveLength",void 0),F([G()],ga.prototype,"waveSpeed",void 0),F([G()],ga.prototype,"waveCount",void 0),F([G()],ga.prototype,"disableClipPlane",void 0),F([G("useWorldCoordinatesForWaveDeformation")],ga.prototype,"_useWorldCoordinatesForWaveDeformation",void 0),F([et("_markAllSubMeshesAsMiscDirty")],ga.prototype,"useWorldCoordinatesForWaveDeformation",void 0),ve("BABYLON.WaterMaterial",ga);const zQe=bz(Object.freeze(Object.defineProperty({__proto__:null,CellMaterial:A3,CustomMaterial:nR,CustomShaderStructure:qqe,FireMaterial:N4,FurMaterial:Eo,GradientMaterial:pf,GridMaterial:i2,LavaMaterial:Lh,MixMaterial:za,NormalMaterial:b_,PBRCustomMaterial:aR,ShaderAlbedoParts:Bce,ShaderAlebdoParts:Qqe,ShaderSpecialParts:K9e,ShadowOnlyMaterial:Sz,SimpleMaterial:S_,SkyMaterial:i1,TerrainMaterial:vl,TriPlanarMaterial:Al,WaterMaterial:ga},Symbol.toStringTag,{value:"Module"})));class Ps{constructor(e,t=Ps.UNITMODE_PIXEL,i=!0){this.negativeValueAllowed=i,this._value=1,this._unit=Ps.UNITMODE_PIXEL,this.ignoreAdaptiveScaling=!1,this.onChangedObservable=new xe,this._value=e,this._unit=t,this._originalUnit=t}get isPercentage(){return this._unit===Ps.UNITMODE_PERCENTAGE}get isPixel(){return this._unit===Ps.UNITMODE_PIXEL}get internalValue(){return this._value}get value(){return this._value}set value(e){e!==this._value&&(this._value=e,this.onChangedObservable.notifyObservers())}get unit(){return this._unit}set unit(e){e!==this._unit&&(this._unit=e,this.onChangedObservable.notifyObservers())}getValueInPixel(e,t){return this.isPixel?this.getValue(e):this.getValue(e)*t}updateInPlace(e,t=Ps.UNITMODE_PIXEL){return(this.value!==e||this.unit!==t)&&(this._value=e,this._unit=t,this.onChangedObservable.notifyObservers()),this}getValue(e){if(e&&!this.ignoreAdaptiveScaling&&this.unit!==Ps.UNITMODE_PERCENTAGE){let t=0,i=0;if(e.idealWidth&&(t=Math.ceil(this._value*e.getSize().width/e.idealWidth)),e.idealHeight&&(i=Math.ceil(this._value*e.getSize().height/e.idealHeight)),e.useSmallestIdeal&&e.idealWidth&&e.idealHeight)return window.innerWidth<window.innerHeight?t:i;if(e.idealWidth)return t;if(e.idealHeight)return i}return this._value}toString(e,t){switch(this._unit){case Ps.UNITMODE_PERCENTAGE:{const i=this.getValue(e)*100;return(t?i.toFixed(t):i)+"%"}case Ps.UNITMODE_PIXEL:{const i=this.getValue(e);return(t?i.toFixed(t):i)+"px"}}return this._unit.toString()}fromString(e){const t=Ps._Regex.exec(e.toString());if(!t||t.length===0)return!1;let i=parseFloat(t[1]),s=this._originalUnit;if(this.negativeValueAllowed||i<0&&(i=0),t.length===4)switch(t[3]){case"px":s=Ps.UNITMODE_PIXEL;break;case"%":s=Ps.UNITMODE_PERCENTAGE,i/=100;break}return i===this._value&&s===this._unit?!1:(this._value=i,this._unit=s,this.onChangedObservable.notifyObservers(),!0)}static get UNITMODE_PERCENTAGE(){return Ps._UNITMODE_PERCENTAGE}static get UNITMODE_PIXEL(){return Ps._UNITMODE_PIXEL}}Ps._Regex=/(^-?\d*(\.\d+)?)(%|px)?/,Ps._UNITMODE_PERCENTAGE=0,Ps._UNITMODE_PIXEL=1;const oR=[new Ue(0,0),new Ue(0,0),new Ue(0,0),new Ue(0,0)],yz=[new Ue(0,0),new Ue(0,0),new Ue(0,0),new Ue(0,0)],uM=new Ue(0,0),JL=new Ue(0,0);class Vc{constructor(e,t,i,s){this.left=e,this.top=t,this.width=i,this.height=s}copyFrom(e){this.left=e.left,this.top=e.top,this.width=e.width,this.height=e.height}copyFromFloats(e,t,i,s){this.left=e,this.top=t,this.width=i,this.height=s}static CombineToRef(e,t,i){const s=Math.min(e.left,t.left),r=Math.min(e.top,t.top),n=Math.max(e.left+e.width,t.left+t.width),o=Math.max(e.top+e.height,t.top+t.height);i.left=s,i.top=r,i.width=n-s,i.height=o-r}addAndTransformToRef(e,t,i,s,r,n){const o=this.left+t,l=this.top+i,c=this.width+s,u=this.height+r;oR[0].copyFromFloats(o,l),oR[1].copyFromFloats(o+c,l),oR[2].copyFromFloats(o+c,l+u),oR[3].copyFromFloats(o,l+u),uM.copyFromFloats(Number.MAX_VALUE,Number.MAX_VALUE),JL.copyFromFloats(0,0);for(let f=0;f<4;f++)e.transformCoordinates(oR[f].x,oR[f].y,yz[f]),uM.x=Math.floor(Math.min(uM.x,yz[f].x)),uM.y=Math.floor(Math.min(uM.y,yz[f].y)),JL.x=Math.ceil(Math.max(JL.x,yz[f].x)),JL.y=Math.ceil(Math.max(JL.y,yz[f].y));n.left=uM.x,n.top=uM.y,n.width=JL.x-uM.x,n.height=JL.y-uM.y}transformToRef(e,t){this.addAndTransformToRef(e,0,0,0,0,t)}isEqualsTo(e){return!(this.left!==e.left||this.top!==e.top||this.width!==e.width||this.height!==e.height)}static Empty(){return new Vc(0,0,0,0)}}class lR extends Ue{constructor(e,t=0){super(e.x,e.y),this.buttonIndex=t}}class Jr{constructor(e,t,i,s,r,n){this.m=new Float32Array(6),this.fromValues(e,t,i,s,r,n)}fromValues(e,t,i,s,r,n){return this.m[0]=e,this.m[1]=t,this.m[2]=i,this.m[3]=s,this.m[4]=r,this.m[5]=n,this}determinant(){return this.m[0]*this.m[3]-this.m[1]*this.m[2]}invertToRef(e){const t=this.m[0],i=this.m[1],s=this.m[2],r=this.m[3],n=this.m[4],o=this.m[5],l=this.determinant();if(l<Ii*Ii)return e.m[0]=0,e.m[1]=0,e.m[2]=0,e.m[3]=0,e.m[4]=0,e.m[5]=0,this;const c=1/l,u=s*o-r*n,f=i*n-t*o;return e.m[0]=r*c,e.m[1]=-i*c,e.m[2]=-s*c,e.m[3]=t*c,e.m[4]=u*c,e.m[5]=f*c,this}multiplyToRef(e,t){const i=this.m[0],s=this.m[1],r=this.m[2],n=this.m[3],o=this.m[4],l=this.m[5],c=e.m[0],u=e.m[1],f=e.m[2],p=e.m[3],m=e.m[4],_=e.m[5];return t.m[0]=i*c+s*f,t.m[1]=i*u+s*p,t.m[2]=r*c+n*f,t.m[3]=r*u+n*p,t.m[4]=o*c+l*f+m,t.m[5]=o*u+l*p+_,this}transformCoordinates(e,t,i){return i.x=e*this.m[0]+t*this.m[2]+this.m[4],i.y=e*this.m[1]+t*this.m[3]+this.m[5],this}static Identity(){return new Jr(1,0,0,1,0,0)}static IdentityToRef(e){e.m[0]=1,e.m[1]=0,e.m[2]=0,e.m[3]=1,e.m[4]=0,e.m[5]=0}static TranslationToRef(e,t,i){i.fromValues(1,0,0,1,e,t)}static ScalingToRef(e,t,i){i.fromValues(e,0,0,t,0,0)}static RotationToRef(e,t){const i=Math.sin(e),s=Math.cos(e);t.fromValues(s,i,-i,s,0,0)}static ComposeToRef(e,t,i,s,r,n,o){Jr.TranslationToRef(e,t,Jr._TempPreTranslationMatrix),Jr.ScalingToRef(s,r,Jr._TempScalingMatrix),Jr.RotationToRef(i,Jr._TempRotationMatrix),Jr.TranslationToRef(-e,-t,Jr._TempPostTranslationMatrix),Jr._TempPreTranslationMatrix.multiplyToRef(Jr._TempScalingMatrix,Jr._TempCompose0),Jr._TempCompose0.multiplyToRef(Jr._TempRotationMatrix,Jr._TempCompose1),n?(Jr._TempCompose1.multiplyToRef(Jr._TempPostTranslationMatrix,Jr._TempCompose2),Jr._TempCompose2.multiplyToRef(n,o)):Jr._TempCompose1.multiplyToRef(Jr._TempPostTranslationMatrix,o)}}Jr._TempPreTranslationMatrix=Jr.Identity(),Jr._TempPostTranslationMatrix=Jr.Identity(),Jr._TempRotationMatrix=Jr.Identity(),Jr._TempScalingMatrix=Jr.Identity(),Jr._TempCompose0=Jr.Identity(),Jr._TempCompose1=Jr.Identity(),Jr._TempCompose2=Jr.Identity();class UY{static Round(e,t=UY.DefaultRoundingPrecision){return Math.round(e*t)/t}}UY.DefaultRoundingPrecision=100;class Lt{get isReadOnly(){return this._isReadOnly}set isReadOnly(e){this._isReadOnly=e}get transformedMeasure(){return this._evaluatedMeasure}set clipChildren(e){this._clipChildren=e}get clipChildren(){return this._clipChildren}set clipContent(e){this._clipContent=e}get clipContent(){return this._clipContent}get shadowOffsetX(){return this._shadowOffsetX}set shadowOffsetX(e){this._shadowOffsetX!==e&&(this._shadowOffsetX=e,this._markAsDirty())}get shadowOffsetY(){return this._shadowOffsetY}set shadowOffsetY(e){this._shadowOffsetY!==e&&(this._shadowOffsetY=e,this._markAsDirty())}get shadowBlur(){return this._shadowBlur}set shadowBlur(e){this._shadowBlur!==e&&(this._previousShadowBlur=this._shadowBlur,this._shadowBlur=e,this._markAsDirty())}get shadowColor(){return this._shadowColor}set shadowColor(e){this._shadowColor!==e&&(this._shadowColor=e,this._markAsDirty())}get typeName(){return this._getTypeName()}getClassName(){return this._getTypeName()}set accessibilityTag(e){this._accessibilityTag=e,this.onAccessibilityTagChangedObservable.notifyObservers(e)}get accessibilityTag(){return this._accessibilityTag}get host(){return this._host}get fontOffset(){return this._fontOffset}set fontOffset(e){this._fontOffset=e}get alpha(){return this._alpha}set alpha(e){this._alpha!==e&&(this._alphaSet=!0,this._alpha=e,this._markAsDirty())}get highlightLineWidth(){return this._highlightLineWidth}set highlightLineWidth(e){this._highlightLineWidth!==e&&(this._highlightLineWidth=e,this._markAsDirty())}get isHighlighted(){return this._isHighlighted}set isHighlighted(e){this._isHighlighted!==e&&(this._isHighlighted=e,this._markAsDirty())}get highlightColor(){return this._highlightColor}set highlightColor(e){this._highlightColor!==e&&(this._highlightColor=e,this._markAsDirty())}get scaleX(){return this._scaleX}set scaleX(e){this._scaleX!==e&&(this._scaleX=e,this._markAsDirty(),this._markMatrixAsDirty())}get scaleY(){return this._scaleY}set scaleY(e){this._scaleY!==e&&(this._scaleY=e,this._markAsDirty(),this._markMatrixAsDirty())}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._markAsDirty(),this._markMatrixAsDirty())}get transformCenterY(){return this._transformCenterY}set transformCenterY(e){this._transformCenterY!==e&&(this._transformCenterY=e,this._markAsDirty(),this._markMatrixAsDirty())}get transformCenterX(){return this._transformCenterX}set transformCenterX(e){this._transformCenterX!==e&&(this._transformCenterX=e,this._markAsDirty(),this._markMatrixAsDirty())}get horizontalAlignment(){return this._horizontalAlignment}set horizontalAlignment(e){this._horizontalAlignment!==e&&(this._horizontalAlignment=e,this._markAsDirty())}get verticalAlignment(){return this._verticalAlignment}set verticalAlignment(e){this._verticalAlignment!==e&&(this._verticalAlignment=e,this._markAsDirty())}set fixedRatio(e){this._fixedRatio!==e&&(this._fixedRatio=e,this._markAsDirty())}get fixedRatio(){return this._fixedRatio}set fixedRatioMasterIsWidth(e){this._fixedRatioMasterIsWidth!==e&&(this._fixedRatioMasterIsWidth=e,this._markAsDirty())}get fixedRatioMasterIsWidth(){return this._fixedRatioMasterIsWidth}get width(){return this._width.toString(this._host)}set width(e){this._fixedRatioMasterIsWidth=!0,this._width.toString(this._host)!==e&&this._width.fromString(e)&&this._markAsDirty()}get widthInPixels(){return this._width.getValueInPixel(this._host,this._cachedParentMeasure.width)}set widthInPixels(e){isNaN(e)||(this._fixedRatioMasterIsWidth=!0,this.width=e+"px")}get height(){return this._height.toString(this._host)}set height(e){this._fixedRatioMasterIsWidth=!1,this._height.toString(this._host)!==e&&this._height.fromString(e)&&this._markAsDirty()}get heightInPixels(){return this._height.getValueInPixel(this._host,this._cachedParentMeasure.height)}set heightInPixels(e){isNaN(e)||(this._fixedRatioMasterIsWidth=!1,this.height=e+"px")}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this._resetFontCache())}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this._resetFontCache())}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this._resetFontCache())}get style(){return this._style}set style(e){this._style&&(this._style.onChangedObservable.remove(this._styleObserver),this._styleObserver=null),this._style=e,this._style&&(this._styleObserver=this._style.onChangedObservable.add(()=>{this._markAsDirty(),this._resetFontCache()})),this._markAsDirty(),this._resetFontCache()}get _isFontSizeInPercentage(){return this._fontSize.isPercentage}get fontSizeInPixels(){const e=this._style?this._style._fontSize:this._fontSize;return e.isPixel?e.getValue(this._host):e.getValueInPixel(this._host,this._tempParentMeasure.height||this._cachedParentMeasure.height)}set fontSizeInPixels(e){isNaN(e)||(this.fontSize=e+"px")}get fontSize(){return this._fontSize.toString(this._host)}set fontSize(e){this._fontSize.toString(this._host)!==e&&this._fontSize.fromString(e)&&(this._markAsDirty(),this._resetFontCache())}get color(){return this._color}set color(e){this._color!==e&&(this._color=e,this._markAsDirty())}get gradient(){return this._gradient}set gradient(e){this._gradient!==e&&(this._gradient=e,this._markAsDirty())}get zIndex(){return this._zIndex}set zIndex(e){this.zIndex!==e&&(this._zIndex=e,this.parent&&this.parent._reOrderControl(this))}get notRenderable(){return this._doNotRender}set notRenderable(e){this._doNotRender!==e&&(this._doNotRender=e,this._markAsDirty())}get isVisible(){return this._isVisible}set isVisible(e){this._isVisible!==e&&(this._isVisible=e,this._markAsDirty(!0),this.onIsVisibleChangedObservable.notifyObservers(e))}get isDirty(){return this._isDirty}get linkedMesh(){return this._linkedMesh}get descendantsOnlyPadding(){return this._descendantsOnlyPadding}set descendantsOnlyPadding(e){this._descendantsOnlyPadding!==e&&(this._descendantsOnlyPadding=e,this._markAsDirty())}get paddingLeft(){return this._paddingLeft.toString(this._host)}set paddingLeft(e){this._paddingLeft.fromString(e)&&this._markAsDirty()}get paddingLeftInPixels(){return this._paddingLeft.getValueInPixel(this._host,this._cachedParentMeasure.width)}set paddingLeftInPixels(e){isNaN(e)||(this.paddingLeft=e+"px")}get _paddingLeftInPixels(){return this._descendantsOnlyPadding?0:this.paddingLeftInPixels}get paddingRight(){return this._paddingRight.toString(this._host)}set paddingRight(e){this._paddingRight.fromString(e)&&this._markAsDirty()}get paddingRightInPixels(){return this._paddingRight.getValueInPixel(this._host,this._cachedParentMeasure.width)}set paddingRightInPixels(e){isNaN(e)||(this.paddingRight=e+"px")}get _paddingRightInPixels(){return this._descendantsOnlyPadding?0:this.paddingRightInPixels}get paddingTop(){return this._paddingTop.toString(this._host)}set paddingTop(e){this._paddingTop.fromString(e)&&this._markAsDirty()}get paddingTopInPixels(){return this._paddingTop.getValueInPixel(this._host,this._cachedParentMeasure.height)}set paddingTopInPixels(e){isNaN(e)||(this.paddingTop=e+"px")}get _paddingTopInPixels(){return this._descendantsOnlyPadding?0:this.paddingTopInPixels}get paddingBottom(){return this._paddingBottom.toString(this._host)}set paddingBottom(e){this._paddingBottom.fromString(e)&&this._markAsDirty()}get paddingBottomInPixels(){return this._paddingBottom.getValueInPixel(this._host,this._cachedParentMeasure.height)}set paddingBottomInPixels(e){isNaN(e)||(this.paddingBottom=e+"px")}get _paddingBottomInPixels(){return this._descendantsOnlyPadding?0:this.paddingBottomInPixels}get left(){return this._left.toString(this._host)}set left(e){this._left.fromString(e)&&this._markAsDirty()}get leftInPixels(){return this._left.getValueInPixel(this._host,this._cachedParentMeasure.width)}set leftInPixels(e){isNaN(e)||(this.left=e+"px")}get top(){return this._top.toString(this._host)}set top(e){this._top.fromString(e)&&this._markAsDirty()}get topInPixels(){return this._top.getValueInPixel(this._host,this._cachedParentMeasure.height)}set topInPixels(e){isNaN(e)||(this.top=e+"px")}get linkOffsetX(){return this._linkOffsetX.toString(this._host)}set linkOffsetX(e){this._linkOffsetX.fromString(e)&&this._markAsDirty()}get linkOffsetXInPixels(){return this._linkOffsetX.getValueInPixel(this._host,this._cachedParentMeasure.width)}set linkOffsetXInPixels(e){isNaN(e)||(this.linkOffsetX=e+"px")}get linkOffsetY(){return this._linkOffsetY.toString(this._host)}set linkOffsetY(e){this._linkOffsetY.fromString(e)&&this._markAsDirty()}get linkOffsetYInPixels(){return this._linkOffsetY.getValueInPixel(this._host,this._cachedParentMeasure.height)}set linkOffsetYInPixels(e){isNaN(e)||(this.linkOffsetY=e+"px")}get centerX(){return this._currentMeasure.left+this._currentMeasure.width/2}get centerY(){return this._currentMeasure.top+this._currentMeasure.height/2}get isEnabled(){return this._isEnabled}set isEnabled(e){if(this._isEnabled===e)return;this._isEnabled=e,this._markAsDirty();const t=i=>{if(i.host){for(const s in i.host._lastControlOver)i===this.host._lastControlOver[s]&&(i._onPointerOut(i,null,!0),delete i.host._lastControlOver[s]);i.children!==void 0&&i.children.forEach(t)}};t(this),this.onEnabledStateChangedObservable.notifyObservers(e)}get disabledColor(){return this._disabledColor}set disabledColor(e){this._disabledColor!==e&&(this._disabledColor=e,this._markAsDirty())}get disabledColorItem(){return this._disabledColorItem}set disabledColorItem(e){this._disabledColorItem!==e&&(this._disabledColorItem=e,this._markAsDirty())}get focusedColor(){return this._focusedColor}set focusedColor(e){this._focusedColor=e}onBlur(){this._isFocused&&(this._isFocused=!1,this.focusedColor&&this._unfocusedColor!=null&&(this.color=this._unfocusedColor),this.onBlurObservable.notifyObservers(this))}onFocus(){this._isFocused=!0,this.focusedColor&&(this._unfocusedColor=this.color,this.color=this.focusedColor),this.onFocusObservable.notifyObservers(this)}keepsFocusWith(){return null}focus(){this._host.moveFocusToControl(this)}blur(){this._host.focusedControl=null}processKeyboard(e){e.key==="Enter"&&this.onEnterPressedObservable.notifyObservers(this),this.onKeyboardEventProcessedObservable.notifyObservers(e,-1,this)}constructor(e){this.name=e,this._alpha=1,this._alphaSet=!1,this._zIndex=0,this._currentMeasure=Vc.Empty(),this._tempPaddingMeasure=Vc.Empty(),this._fontFamily="",this._fontStyle="",this._fontWeight="",this._fontSize=new Ps(18,Ps.UNITMODE_PIXEL,!1),this._width=new Ps(1,Ps.UNITMODE_PERCENTAGE,!1),this._height=new Ps(1,Ps.UNITMODE_PERCENTAGE,!1),this._color="",this._style=null,this._horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_CENTER,this._verticalAlignment=Lt.VERTICAL_ALIGNMENT_CENTER,this._isDirty=!0,this._wasDirty=!1,this._tempParentMeasure=Vc.Empty(),this._prevCurrentMeasureTransformedIntoGlobalSpace=Vc.Empty(),this._cachedParentMeasure=Vc.Empty(),this._descendantsOnlyPadding=!1,this._paddingLeft=new Ps(0),this._paddingRight=new Ps(0),this._paddingTop=new Ps(0),this._paddingBottom=new Ps(0),this._left=new Ps(0),this._top=new Ps(0),this._scaleX=1,this._scaleY=1,this._rotation=0,this._transformCenterX=.5,this._transformCenterY=.5,this._transformMatrix=Jr.Identity(),this._invertTransformMatrix=Jr.Identity(),this._transformedPosition=Ue.Zero(),this._isMatrixDirty=!0,this._isVisible=!0,this._isHighlighted=!1,this._highlightColor="#4affff",this._highlightLineWidth=2,this._fontSet=!1,this._dummyVector2=Ue.Zero(),this._downCount=0,this._enterCount=-1,this._doNotRender=!1,this._downPointerIds={},this._evaluatedMeasure=new Vc(0,0,0,0),this._evaluatedParentMeasure=new Vc(0,0,0,0),this._isEnabled=!0,this._disabledColor="#9a9a9a",this._disabledColorItem="#6a6a6a",this._isReadOnly=!1,this._gradient=null,this._rebuildLayout=!1,this.onEnabledStateChangedObservable=new xe,this._customData={},this._isClipped=!1,this._automaticSize=!1,this.metadata=null,this.isHitTestVisible=!0,this.isPointerBlocker=!1,this.isFocusInvisible=!1,this._clipChildren=!0,this._clipContent=!0,this.useBitmapCache=!1,this._shadowOffsetX=0,this._shadowOffsetY=0,this._shadowBlur=0,this._previousShadowBlur=0,this._shadowColor="black",this.hoverCursor="",this._linkOffsetX=new Ps(0),this._linkOffsetY=new Ps(0),this._accessibilityTag=null,this.onAccessibilityTagChangedObservable=new xe,this.onWheelObservable=new xe,this.onPointerMoveObservable=new xe,this.onPointerOutObservable=new xe,this.onPointerDownObservable=new xe,this.onPointerUpObservable=new xe,this.onPointerClickObservable=new xe,this.onEnterPressedObservable=new xe,this.onPointerEnterObservable=new xe,this.onDirtyObservable=new xe,this.onBeforeDrawObservable=new xe,this.onAfterDrawObservable=new xe,this.onDisposeObservable=new xe,this.onIsVisibleChangedObservable=new xe,this.isSerializable=!0,this._fixedRatio=0,this._fixedRatioMasterIsWidth=!0,this.animations=null,this._focusedColor=null,this.tabIndex=-1,this._isFocused=!1,this._unfocusedColor=null,this.onFocusObservable=new xe,this.onBlurObservable=new xe,this.onKeyboardEventProcessedObservable=new xe,this._tmpMeasureA=new Vc(0,0,0,0)}_getTypeName(){return"Control"}getAscendantOfClass(e){return this.parent?this.parent.getClassName()===e?this.parent:this.parent.getAscendantOfClass(e):null}markAsDirty(e=!1){this._markAsDirty(e)}markAllAsDirty(){this._markAllAsDirty()}_resetFontCache(){this._fontSet=!0,this._markAsDirty()}isAscendant(e){return this.parent?this.parent===e?!0:this.parent.isAscendant(e):!1}getLocalCoordinates(e){const t=Ue.Zero();return this.getLocalCoordinatesToRef(e,t),t}getLocalCoordinatesToRef(e,t){return t.x=e.x-this._currentMeasure.left,t.y=e.y-this._currentMeasure.top,this}getParentLocalCoordinates(e){const t=Ue.Zero();return t.x=e.x-this._cachedParentMeasure.left,t.y=e.y-this._cachedParentMeasure.top,t}moveToVector3(e,t){if(!this._host||this.parent!==this._host._rootContainer){Le.Error("Cannot move a control to a vector3 if the control is not at root level");return}this.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,this.verticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP;const i=this._host._getGlobalViewport(),s=P.Project(e,me.IdentityReadOnly,t.getTransformMatrix(),i);if(this._moveToProjectedPosition(s),s.z<0||s.z>1){this.notRenderable=!0;return}this.notRenderable=!1}getDescendantsToRef(e,t=!1,i){}getDescendants(e,t){const i=[];return this.getDescendantsToRef(i,e,t),i}linkWithMesh(e){if(!this._host||this.parent&&this.parent!==this._host._rootContainer){e&&Le.Error("Cannot link a control to a mesh if the control is not at root level");return}const t=this._host._linkedControls.indexOf(this);if(t!==-1){this._linkedMesh=e,e||this._host._linkedControls.splice(t,1);return}else if(!e)return;this.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,this.verticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP,this._linkedMesh=e,this._host._linkedControls.push(this)}setPadding(e,t,i,s){const r=e,n=t??r,o=i??r,l=s??n;this.paddingTop=r,this.paddingRight=n,this.paddingBottom=o,this.paddingLeft=l}setPaddingInPixels(e,t,i,s){const r=e,n=t??r,o=i??r,l=s??n;this.paddingTopInPixels=r,this.paddingRightInPixels=n,this.paddingBottomInPixels=o,this.paddingLeftInPixels=l}_moveToProjectedPosition(e){var l;const t=this._left.getValue(this._host),i=this._top.getValue(this._host),s=(l=this.parent)==null?void 0:l._currentMeasure;s&&this._processMeasures(s,this._host.getContext());let r=e.x+this._linkOffsetX.getValue(this._host)-this._currentMeasure.width/2,n=e.y+this._linkOffsetY.getValue(this._host)-this._currentMeasure.height/2;const o=this._left.ignoreAdaptiveScaling&&this._top.ignoreAdaptiveScaling;o&&(Math.abs(r-t)<.5&&(r=t),Math.abs(n-i)<.5&&(n=i)),!(!o&&t===r&&i===n)&&(this.left=r+"px",this.top=n+"px",this._left.ignoreAdaptiveScaling=!0,this._top.ignoreAdaptiveScaling=!0,this._markAsDirty())}_offsetLeft(e){this._isDirty=!0,this._currentMeasure.left+=e}_offsetTop(e){this._isDirty=!0,this._currentMeasure.top+=e}_markMatrixAsDirty(){this._isMatrixDirty=!0,this._flagDescendantsAsMatrixDirty()}_flagDescendantsAsMatrixDirty(){}_intersectsRect(e,t){return this._transform(t),!(this._evaluatedMeasure.left>=e.left+e.width||this._evaluatedMeasure.top>=e.top+e.height||this._evaluatedMeasure.left+this._evaluatedMeasure.width<=e.left||this._evaluatedMeasure.top+this._evaluatedMeasure.height<=e.top)}_computeAdditionalOffsetX(){return 0}_computeAdditionalOffsetY(){return 0}invalidateRect(){if(this._transform(),this.host&&this.host.useInvalidateRectOptimization){this._currentMeasure.transformToRef(this._transformMatrix,this._tmpMeasureA),Vc.CombineToRef(this._tmpMeasureA,this._prevCurrentMeasureTransformedIntoGlobalSpace,this._tmpMeasureA);const e=this.shadowOffsetX,t=this.shadowOffsetY,i=Math.max(this._previousShadowBlur,this.shadowBlur),s=Math.min(Math.min(e,0)-i*2,0),r=Math.max(Math.max(e,0)+i*2,0),n=Math.min(Math.min(t,0)-i*2,0),o=Math.max(Math.max(t,0)+i*2,0),l=this._computeAdditionalOffsetX(),c=this._computeAdditionalOffsetY();this.host.invalidateRect(Math.floor(this._tmpMeasureA.left+s-l),Math.floor(this._tmpMeasureA.top+n-c),Math.ceil(this._tmpMeasureA.left+this._tmpMeasureA.width+r+l),Math.ceil(this._tmpMeasureA.top+this._tmpMeasureA.height+o+c))}}_markAsDirty(e=!1){!this._isVisible&&!e||(this._isDirty=!0,this._markMatrixAsDirty(),this._host&&this._host.markAsDirty())}_markAllAsDirty(){this._markAsDirty(),this._font&&this._prepareFont()}_link(e){this._host=e,this._host&&(this.uniqueId=this._host.getScene().getUniqueId())}_transform(e){if(!this._isMatrixDirty&&this._scaleX===1&&this._scaleY===1&&this._rotation===0)return;const t=this._currentMeasure.width*this._transformCenterX+this._currentMeasure.left,i=this._currentMeasure.height*this._transformCenterY+this._currentMeasure.top;e&&(e.translate(t,i),e.rotate(this._rotation),e.scale(this._scaleX,this._scaleY),e.translate(-t,-i)),(this._isMatrixDirty||this._cachedOffsetX!==t||this._cachedOffsetY!==i)&&(this._cachedOffsetX=t,this._cachedOffsetY=i,this._isMatrixDirty=!1,this._flagDescendantsAsMatrixDirty(),Jr.ComposeToRef(-t,-i,this._rotation,this._scaleX,this._scaleY,this.parent?this.parent._transformMatrix:null,this._transformMatrix),this._transformMatrix.invertToRef(this._invertTransformMatrix),this._currentMeasure.transformToRef(this._transformMatrix,this._evaluatedMeasure))}_renderHighlight(e){this.isHighlighted&&(e.save(),e.strokeStyle=this._highlightColor,e.lineWidth=this._highlightLineWidth,this._renderHighlightSpecific(e),e.restore())}_renderHighlightSpecific(e){e.strokeRect(this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height)}_getColor(e){return this.gradient?this.gradient.getCanvasGradient(e):this.color}_applyStates(e){this._isFontSizeInPercentage&&(this._fontSet=!0),this._host&&this._host.useSmallestIdeal&&!this._font&&(this._fontSet=!0),this._fontSet&&(this._prepareFont(),this._fontSet=!1),this._font&&(e.font=this._font),(this._color||this.gradient)&&(e.fillStyle=this._getColor(e)),Lt.AllowAlphaInheritance?e.globalAlpha*=this._alpha:this._alphaSet&&(e.globalAlpha=this.parent&&!this.parent.renderToIntermediateTexture?this.parent.alpha*this._alpha:this._alpha)}_layout(e,t){if(!this.isDirty&&(!this.isVisible||this.notRenderable))return!1;if(this._isDirty||!this._cachedParentMeasure.isEqualsTo(e)){this.host._numLayoutCalls++,this._currentMeasure.addAndTransformToRef(this._transformMatrix,-this._paddingLeftInPixels|0,-this._paddingTopInPixels|0,this._paddingRightInPixels|0,this._paddingBottomInPixels|0,this._prevCurrentMeasureTransformedIntoGlobalSpace),t.save(),this._applyStates(t);let i=0;do this._rebuildLayout=!1,this._processMeasures(e,t),i++;while(this._rebuildLayout&&i<3);i>=3&&de.Error(`Layout cycle detected in GUI (Control name=${this.name}, uniqueId=${this.uniqueId})`),t.restore(),this.invalidateRect(),this._evaluateClippingState(e)}return this._wasDirty=this._isDirty,this._isDirty=!1,!0}_processMeasures(e,t){this._tempPaddingMeasure.copyFrom(e),this.parent&&this.parent.descendantsOnlyPadding&&(this._tempPaddingMeasure.left+=this.parent.paddingLeftInPixels,this._tempPaddingMeasure.top+=this.parent.paddingTopInPixels,this._tempPaddingMeasure.width-=this.parent.paddingLeftInPixels+this.parent.paddingRightInPixels,this._tempPaddingMeasure.height-=this.parent.paddingTopInPixels+this.parent.paddingBottomInPixels),this._currentMeasure.copyFrom(this._tempPaddingMeasure),this._preMeasure(this._tempPaddingMeasure,t),this._measure(),this._postMeasure(this._tempPaddingMeasure,t),this._computeAlignment(this._tempPaddingMeasure,t),this._currentMeasure.left=this._currentMeasure.left|0,this._currentMeasure.top=this._currentMeasure.top|0,this._currentMeasure.width=this._currentMeasure.width|0,this._currentMeasure.height=this._currentMeasure.height|0,this._additionalProcessing(this._tempPaddingMeasure,t),this._cachedParentMeasure.copyFrom(this._tempPaddingMeasure),this._currentMeasure.transformToRef(this._transformMatrix,this._evaluatedMeasure),this.onDirtyObservable.hasObservers()&&this.onDirtyObservable.notifyObservers(this)}_evaluateClippingState(e){if(this._transform(),this._currentMeasure.transformToRef(this._transformMatrix,this._evaluatedMeasure),this.parent&&this.parent.clipChildren){if(e.transformToRef(this.parent._transformMatrix,this._evaluatedParentMeasure),this._evaluatedMeasure.left>this._evaluatedParentMeasure.left+this._evaluatedParentMeasure.width){this._isClipped=!0;return}if(this._evaluatedMeasure.left+this._evaluatedMeasure.width<this._evaluatedParentMeasure.left){this._isClipped=!0;return}if(this._evaluatedMeasure.top>this._evaluatedParentMeasure.top+this._evaluatedParentMeasure.height){this._isClipped=!0;return}if(this._evaluatedMeasure.top+this._evaluatedMeasure.height<this._evaluatedParentMeasure.top){this._isClipped=!0;return}}this._isClipped=!1}_measure(){this._width.isPixel?this._currentMeasure.width=this._width.getValue(this._host):this._currentMeasure.width*=this._width.getValue(this._host),this._height.isPixel?this._currentMeasure.height=this._height.getValue(this._host):this._currentMeasure.height*=this._height.getValue(this._host),this._fixedRatio!==0&&(this._fixedRatioMasterIsWidth?this._currentMeasure.height=this._currentMeasure.width*this._fixedRatio:this._currentMeasure.width=this._currentMeasure.height*this._fixedRatio)}_computeAlignment(e,t){const i=this._currentMeasure.width,s=this._currentMeasure.height,r=e.width,n=e.height;let o=0,l=0;switch(this.horizontalAlignment){case Lt.HORIZONTAL_ALIGNMENT_LEFT:o=0;break;case Lt.HORIZONTAL_ALIGNMENT_RIGHT:o=r-i;break;case Lt.HORIZONTAL_ALIGNMENT_CENTER:o=(r-i)/2;break}switch(this.verticalAlignment){case Lt.VERTICAL_ALIGNMENT_TOP:l=0;break;case Lt.VERTICAL_ALIGNMENT_BOTTOM:l=n-s;break;case Lt.VERTICAL_ALIGNMENT_CENTER:l=(n-s)/2;break}this.descendantsOnlyPadding||(this._paddingLeft.isPixel?(this._currentMeasure.left+=this._paddingLeft.getValue(this._host),this._currentMeasure.width-=this._paddingLeft.getValue(this._host)):(this._currentMeasure.left+=r*this._paddingLeft.getValue(this._host),this._currentMeasure.width-=r*this._paddingLeft.getValue(this._host)),this._paddingRight.isPixel?this._currentMeasure.width-=this._paddingRight.getValue(this._host):this._currentMeasure.width-=r*this._paddingRight.getValue(this._host),this._paddingTop.isPixel?(this._currentMeasure.top+=this._paddingTop.getValue(this._host),this._currentMeasure.height-=this._paddingTop.getValue(this._host)):(this._currentMeasure.top+=n*this._paddingTop.getValue(this._host),this._currentMeasure.height-=n*this._paddingTop.getValue(this._host)),this._paddingBottom.isPixel?this._currentMeasure.height-=this._paddingBottom.getValue(this._host):this._currentMeasure.height-=n*this._paddingBottom.getValue(this._host)),this._left.isPixel?this._currentMeasure.left+=this._left.getValue(this._host):this._currentMeasure.left+=r*this._left.getValue(this._host),this._top.isPixel?this._currentMeasure.top+=this._top.getValue(this._host):this._currentMeasure.top+=n*this._top.getValue(this._host),this._currentMeasure.left+=o,this._currentMeasure.top+=l}_preMeasure(e,t){}_postMeasure(e,t){}_additionalProcessing(e,t){}_clipForChildren(e){}_clip(e,t){if(e.beginPath(),Lt._ClipMeasure.copyFrom(this._currentMeasure),t){t.transformToRef(this._invertTransformMatrix,this._tmpMeasureA);const i=new Vc(0,0,0,0);i.left=Math.max(this._tmpMeasureA.left,this._currentMeasure.left),i.top=Math.max(this._tmpMeasureA.top,this._currentMeasure.top),i.width=Math.min(this._tmpMeasureA.left+this._tmpMeasureA.width,this._currentMeasure.left+this._currentMeasure.width)-i.left,i.height=Math.min(this._tmpMeasureA.top+this._tmpMeasureA.height,this._currentMeasure.top+this._currentMeasure.height)-i.top,Lt._ClipMeasure.copyFrom(i)}if(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY){const i=this.shadowOffsetX,s=this.shadowOffsetY,r=this.shadowBlur,n=Math.min(Math.min(i,0)-r*2,0),o=Math.max(Math.max(i,0)+r*2,0),l=Math.min(Math.min(s,0)-r*2,0),c=Math.max(Math.max(s,0)+r*2,0);e.rect(Lt._ClipMeasure.left+n,Lt._ClipMeasure.top+l,Lt._ClipMeasure.width+o-n,Lt._ClipMeasure.height+c-l)}else e.rect(Lt._ClipMeasure.left,Lt._ClipMeasure.top,Lt._ClipMeasure.width,Lt._ClipMeasure.height);e.clip()}_render(e,t){return!this.isVisible||this.notRenderable||this._isClipped?(this._isDirty=!1,!1):(this.host._numRenderCalls++,e.save(),this._applyStates(e),this._transform(e),this.clipContent&&this._clip(e,t),this.onBeforeDrawObservable.hasObservers()&&this.onBeforeDrawObservable.notifyObservers(this),this.useBitmapCache&&!this._wasDirty&&this._cacheData?e.putImageData(this._cacheData,this._currentMeasure.left,this._currentMeasure.top):this._draw(e,t),this.useBitmapCache&&this._wasDirty&&(this._cacheData=e.getImageData(this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height)),this._renderHighlight(e),this.onAfterDrawObservable.hasObservers()&&this.onAfterDrawObservable.notifyObservers(this),e.restore(),!0)}_draw(e,t){}contains(e,t){return this._invertTransformMatrix.transformCoordinates(e,t,this._transformedPosition),e=this._transformedPosition.x,t=this._transformedPosition.y,e<this._currentMeasure.left||e>this._currentMeasure.left+this._currentMeasure.width||t<this._currentMeasure.top||t>this._currentMeasure.top+this._currentMeasure.height?!1:(this.isPointerBlocker&&(this._host._shouldBlockPointer=!0),!0)}_processPicking(e,t,i,s,r,n,o,l){return!this._isEnabled||!this.isHitTestVisible||!this.isVisible||this._doNotRender||!this.contains(e,t)?!1:(this._processObservables(s,e,t,i,r,n,o,l),!0)}_onPointerMove(e,t,i,s){this.onPointerMoveObservable.notifyObservers(t,-1,e,this,s)&&this.parent!=null&&!this.isPointerBlocker&&this.parent._onPointerMove(e,t,i,s)}_onPointerEnter(e,t){return!this._isEnabled||this._enterCount>0?!1:(this._enterCount===-1&&(this._enterCount=0),this._enterCount++,this.onPointerEnterObservable.notifyObservers(this,-1,e,this,t)&&this.parent!=null&&!this.isPointerBlocker&&this.parent._onPointerEnter(e,t),!0)}_onPointerOut(e,t,i=!1){if(!i&&!this._isEnabled)return;this._enterCount=0;let s=!0;e.isAscendant(this)||(s=this.onPointerOutObservable.notifyObservers(this,-1,e,this,t)),s&&this.parent!=null&&!this.isPointerBlocker&&this.parent._onPointerOut(e,t,i)}_onPointerDown(e,t,i,s,r){return this._onPointerEnter(this,r),this.tabIndex!==-1&&(this.host.focusedControl=this),this._downCount!==0?!1:(this._downCount++,this._downPointerIds[i]=!0,this.onPointerDownObservable.notifyObservers(new lR(t,s),-1,e,this,r)&&this.parent!=null&&!this.isPointerBlocker&&this.parent._onPointerDown(e,t,i,s,r),r&&this.uniqueId!==this._host.rootContainer.uniqueId&&this._host._capturedPointerIds.add(r.event.pointerId),!0)}_onPointerUp(e,t,i,s,r,n){if(!this._isEnabled)return;this._downCount=0,delete this._downPointerIds[i];let o=r;r&&(this._enterCount>0||this._enterCount===-1)&&(this._host.usePointerTapForClickEvent||(o=this.onPointerClickObservable.notifyObservers(new lR(t,s),-1,e,this,n))),this.onPointerUpObservable.notifyObservers(new lR(t,s),-1,e,this,n)&&this.parent!=null&&!this.isPointerBlocker&&this.parent._onPointerUp(e,t,i,s,o,n),n&&this.uniqueId!==this._host.rootContainer.uniqueId&&this._host._capturedPointerIds.delete(n.event.pointerId),this._host.usePointerTapForClickEvent&&this.isPointerBlocker&&(this._host._shouldBlockPointer=!1)}_onPointerPick(e,t,i,s,r,n){if(!this._host.usePointerTapForClickEvent)return!1;let o=r;return r&&(this._enterCount>0||this._enterCount===-1)&&(o=this.onPointerClickObservable.notifyObservers(new lR(t,s),-1,e,this,n)),this.onPointerUpObservable.notifyObservers(new lR(t,s),-1,e,this,n)&&this.parent!=null&&!this.isPointerBlocker&&this.parent._onPointerPick(e,t,i,s,o,n),this._host.usePointerTapForClickEvent&&this.isPointerBlocker&&(this._host._shouldBlockPointer=!0),!0}_forcePointerUp(e=null){if(e!==null)this._onPointerUp(this,Ue.Zero(),e,0,!0);else for(const t in this._downPointerIds)this._onPointerUp(this,Ue.Zero(),+t,0,!0)}_onWheelScroll(e,t){if(!this._isEnabled)return;this.onWheelObservable.notifyObservers(new Ue(e,t))&&this.parent!=null&&this.parent._onWheelScroll(e,t)}_onCanvasBlur(){}_processObservables(e,t,i,s,r,n,o,l){if(!this._isEnabled)return!1;if(this._dummyVector2.copyFromFloats(t,i),e===Xt.POINTERMOVE){this._onPointerMove(this,this._dummyVector2,r,s);const c=this._host._lastControlOver[r];return c&&c!==this&&c._onPointerOut(this,s),c!==this&&this._onPointerEnter(this,s),this._host._lastControlOver[r]=this,!0}else{if(e===Xt.POINTERDOWN)return this._onPointerDown(this,this._dummyVector2,r,n,s),this._host._registerLastControlDown(this,r),this._host._lastPickedControl=this,!0;if(e===Xt.POINTERUP)return this._host._lastControlDown[r]&&this._host._lastControlDown[r]._onPointerUp(this,this._dummyVector2,r,n,!0,s),this._host.usePointerTapForClickEvent||delete this._host._lastControlDown[r],!0;if(e===Xt.POINTERWHEEL){if(this._host._lastControlOver[r])return this._host._lastControlOver[r]._onWheelScroll(o,l),!0}else if(e===Xt.POINTERTAP)return this._host._lastControlDown[r]&&this._host._lastControlDown[r]._onPointerPick(this,this._dummyVector2,r,n,!0,s),delete this._host._lastControlDown[r],!0}return!1}_getStyleProperty(e,t){const i=(this._style&&this._style[e])??this[e];return!i&&this.parent?this.parent._getStyleProperty(e,t):this.parent?i:t}_prepareFont(){var e,t;!this._font&&!this._fontSet||(this._font=this._getStyleProperty("fontStyle","")+" "+this._getStyleProperty("fontWeight","")+" "+this.fontSizeInPixels+"px "+this._getStyleProperty("fontFamily","Arial"),this._fontOffset=Lt._GetFontOffset(this._font,(t=(e=this._host)==null?void 0:e.getScene())==null?void 0:t.getEngine()),this.getDescendants().forEach(i=>i._markAllAsDirty()))}isDimensionFullyDefined(e){return this.getDimension(e).isPixel}getDimension(e){return e==="width"?this._width:this._height}clone(e){const t={};this.serialize(t,!0);const i=Le.Instantiate("BABYLON.GUI."+t.className),s=new i;return s.parse(t,e),s}parse(e,t,i){return this._urlRewriter=i,It.Parse(()=>this,e,null),this.name=e.name,this._parseFromContent(e,t??this._host),this}serialize(e,t=!1,i=!0){if(!this.isSerializable&&!t)return;let s=0,r=0;this.host&&(r=this.host.idealHeight,s=this.host.idealWidth,this.host.idealWidth=0,this.host.idealHeight=0),It.Serialize(this,e),e.name=this.name,e.className=this.getClassName(),i&&this._prepareFont(),this._fontFamily&&(e.fontFamily=this._fontFamily),this.fontSize&&(e.fontSize=this.fontSize),this.fontWeight&&(e.fontWeight=this.fontWeight),this.fontStyle&&(e.fontStyle=this.fontStyle),this._gradient&&(e.gradient={},this._gradient.serialize(e.gradient)),It.AppendSerializedAnimations(this,e),this.host&&(this.host.idealWidth=s,this.host.idealHeight=r)}_parseFromContent(e,t,i){var s;if(e.fontFamily&&(this.fontFamily=e.fontFamily),e.fontSize&&(this.fontSize=e.fontSize),e.fontWeight&&(this.fontWeight=e.fontWeight),e.fontStyle&&(this.fontStyle=e.fontStyle),e.gradient){const r=Le.Instantiate("BABYLON.GUI."+e.gradient.className);this._gradient=new r,(s=this._gradient)==null||s.parse(e.gradient)}if(e.animations){this.animations=[];for(let r=0;r<e.animations.length;r++){const n=e.animations[r],o=ea("BABYLON.Animation");o&&this.animations.push(o.Parse(n))}e.autoAnimate&&this._host&&this._host.getScene()&&this._host.getScene().beginAnimation(this,e.autoAnimateFrom,e.autoAnimateTo,e.autoAnimateLoop,e.autoAnimateSpeed||1)}this.fixedRatioMasterIsWidth=e.fixedRatioMasterIsWidth??this.fixedRatioMasterIsWidth}dispose(){this.onDirtyObservable.clear(),this.onBeforeDrawObservable.clear(),this.onAfterDrawObservable.clear(),this.onPointerDownObservable.clear(),this.onPointerEnterObservable.clear(),this.onPointerMoveObservable.clear(),this.onPointerOutObservable.clear(),this.onPointerUpObservable.clear(),this.onPointerClickObservable.clear(),this.onWheelObservable.clear(),this.onBlurObservable.clear(),this.onFocusObservable.clear(),this.onKeyboardEventProcessedObservable.clear(),this._styleObserver&&this._style&&(this._style.onChangedObservable.remove(this._styleObserver),this._styleObserver=null),this.parent&&(this.parent.removeControl(this),this.parent=null),this._host&&this._host._linkedControls.indexOf(this)>-1&&this.linkWithMesh(null),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear()}static get HORIZONTAL_ALIGNMENT_LEFT(){return Lt._HORIZONTAL_ALIGNMENT_LEFT}static get HORIZONTAL_ALIGNMENT_RIGHT(){return Lt._HORIZONTAL_ALIGNMENT_RIGHT}static get HORIZONTAL_ALIGNMENT_CENTER(){return Lt._HORIZONTAL_ALIGNMENT_CENTER}static get VERTICAL_ALIGNMENT_TOP(){return Lt._VERTICAL_ALIGNMENT_TOP}static get VERTICAL_ALIGNMENT_BOTTOM(){return Lt._VERTICAL_ALIGNMENT_BOTTOM}static get VERTICAL_ALIGNMENT_CENTER(){return Lt._VERTICAL_ALIGNMENT_CENTER}static _GetFontOffset(e,t){if(Lt._FontHeightSizes[e])return Lt._FontHeightSizes[e];const i=t||ei.LastCreatedEngine;if(!i)throw new Error("Invalid engine. Unable to create a canvas.");const s=i.getFontOffset(e);return Lt._FontHeightSizes[e]=s,s}static Parse(e,t,i){const s=Le.Instantiate("BABYLON.GUI."+e.className),r=It.Parse(()=>{const n=new s;return n._urlRewriter=i,n},e,null);return r.name=e.name,r._parseFromContent(e,t,i),r}static drawEllipse(e,t,i,s,r,n){n.translate(e,t),n.scale(i,s),n.beginPath(),n.arc(0,0,1,0,2*Math.PI*r,r<0),r>=1&&n.closePath(),n.scale(1/i,1/s),n.translate(-e,-t)}isReady(){return!0}}Lt.AllowAlphaInheritance=!1,Lt._ClipMeasure=new Vc(0,0,0,0),Lt._HORIZONTAL_ALIGNMENT_LEFT=0,Lt._HORIZONTAL_ALIGNMENT_RIGHT=1,Lt._HORIZONTAL_ALIGNMENT_CENTER=2,Lt._VERTICAL_ALIGNMENT_TOP=0,Lt._VERTICAL_ALIGNMENT_BOTTOM=1,Lt._VERTICAL_ALIGNMENT_CENTER=2,Lt._FontHeightSizes={},Lt.AddHeader=()=>{},F([G()],Lt.prototype,"metadata",void 0),F([G()],Lt.prototype,"isHitTestVisible",void 0),F([G()],Lt.prototype,"isPointerBlocker",void 0),F([G()],Lt.prototype,"isFocusInvisible",void 0),F([G()],Lt.prototype,"clipChildren",null),F([G()],Lt.prototype,"clipContent",null),F([G()],Lt.prototype,"useBitmapCache",void 0),F([G()],Lt.prototype,"shadowOffsetX",null),F([G()],Lt.prototype,"shadowOffsetY",null),F([G()],Lt.prototype,"shadowBlur",null),F([G()],Lt.prototype,"shadowColor",null),F([G()],Lt.prototype,"hoverCursor",void 0),F([G()],Lt.prototype,"fontOffset",null),F([G()],Lt.prototype,"alpha",null),F([G()],Lt.prototype,"isSerializable",void 0),F([G()],Lt.prototype,"scaleX",null),F([G()],Lt.prototype,"scaleY",null),F([G()],Lt.prototype,"rotation",null),F([G()],Lt.prototype,"transformCenterY",null),F([G()],Lt.prototype,"transformCenterX",null),F([G()],Lt.prototype,"horizontalAlignment",null),F([G()],Lt.prototype,"verticalAlignment",null),F([G()],Lt.prototype,"fixedRatio",null),F([G()],Lt.prototype,"fixedRatioMasterIsWidth",null),F([G()],Lt.prototype,"width",null),F([G()],Lt.prototype,"height",null),F([G()],Lt.prototype,"style",null),F([G()],Lt.prototype,"color",null),F([G()],Lt.prototype,"gradient",null),F([G()],Lt.prototype,"zIndex",null),F([G()],Lt.prototype,"notRenderable",null),F([G()],Lt.prototype,"isVisible",null),F([G()],Lt.prototype,"descendantsOnlyPadding",null),F([G()],Lt.prototype,"paddingLeft",null),F([G()],Lt.prototype,"paddingRight",null),F([G()],Lt.prototype,"paddingTop",null),F([G()],Lt.prototype,"paddingBottom",null),F([G()],Lt.prototype,"left",null),F([G()],Lt.prototype,"top",null),F([G()],Lt.prototype,"linkOffsetX",null),F([G()],Lt.prototype,"linkOffsetY",null),F([G()],Lt.prototype,"isEnabled",null),F([G()],Lt.prototype,"disabledColor",null),F([G()],Lt.prototype,"disabledColorItem",null),F([G()],Lt.prototype,"overlapGroup",void 0),F([G()],Lt.prototype,"overlapDeltaMultiplier",void 0),ve("BABYLON.GUI.Control",Lt);class Ih extends Lt{get renderToIntermediateTexture(){return this._renderToIntermediateTexture}set renderToIntermediateTexture(e){this._renderToIntermediateTexture!==e&&(this._renderToIntermediateTexture=e,this._markAsDirty())}get adaptHeightToChildren(){return this._adaptHeightToChildren}set adaptHeightToChildren(e){this._adaptHeightToChildren!==e&&(this._adaptHeightToChildren=e,e&&(this.height="100%"),this._markAsDirty())}get adaptWidthToChildren(){return this._adaptWidthToChildren}set adaptWidthToChildren(e){this._adaptWidthToChildren!==e&&(this._adaptWidthToChildren=e,e&&(this.width="100%"),this._markAsDirty())}get background(){return this._background}set background(e){this._background!==e&&(this._background=e,this._markAsDirty())}get backgroundGradient(){return this._backgroundGradient}set backgroundGradient(e){this._backgroundGradient!==e&&(this._backgroundGradient=e,this._markAsDirty())}get children(){return this._children}get isReadOnly(){return this._isReadOnly}set isReadOnly(e){this._isReadOnly=e;for(const t of this._children)t.isReadOnly=e}constructor(e){super(e),this.name=e,this._children=new Array,this._measureForChildren=Vc.Empty(),this._background="",this._backgroundGradient=null,this._adaptWidthToChildren=!1,this._adaptHeightToChildren=!1,this._renderToIntermediateTexture=!1,this._intermediateTexture=null,this.delegatePickingToChildren=!1,this.logLayoutCycleErrors=!1,this.maxLayoutCycle=3,this.onControlAddedObservable=new xe,this.onControlRemovedObservable=new xe,this._inverseTransformMatrix=Jr.Identity(),this._inverseMeasure=new Vc(0,0,0,0)}_getTypeName(){return"Container"}_flagDescendantsAsMatrixDirty(){for(const e of this.children)e._isClipped=!1,e._markMatrixAsDirty()}getChildByName(e){for(const t of this.children)if(t.name===e)return t;return null}getChildByType(e,t){for(const i of this.children)if(i.typeName===t)return i;return null}containsControl(e){return this.children.indexOf(e)!==-1}addControl(e){return e?this._children.indexOf(e)!==-1?this:(e._link(this._host),e._markAllAsDirty(),this._reOrderControl(e),this._markAsDirty(),this.onControlAddedObservable.notifyObservers(e),this):this}clearControls(){const e=this.children.slice();for(const t of e)this.removeControl(t);return this}removeControl(e){const t=this._children.indexOf(e);return t!==-1&&(this._children.splice(t,1),e.parent=null),e.linkWithMesh(null),this._host&&this._host._cleanControlAfterRemoval(e),this._markAsDirty(),this.onControlRemovedObservable.notifyObservers(e),this}_reOrderControl(e){const t=e.linkedMesh;this.removeControl(e);let i=!1;for(let s=0;s<this._children.length;s++)if(this._children[s].zIndex>e.zIndex){this._children.splice(s,0,e),i=!0;break}i||this._children.push(e),e.parent=this,t&&e.linkWithMesh(t),this._markAsDirty()}_offsetLeft(e){super._offsetLeft(e);for(const t of this._children)t._offsetLeft(e)}_offsetTop(e){super._offsetTop(e);for(const t of this._children)t._offsetTop(e)}_markAllAsDirty(){super._markAllAsDirty();for(let e=0;e<this._children.length;e++)this._children[e]._markAllAsDirty()}_getBackgroundColor(e){return this._backgroundGradient?this._backgroundGradient.getCanvasGradient(e):this._background}_localDraw(e){(this._background||this._backgroundGradient)&&(e.save(),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY),e.fillStyle=this._getBackgroundColor(e),e.fillRect(this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height),e.restore())}_link(e){super._link(e);for(const t of this._children)t._link(e)}_beforeLayout(){}_processMeasures(e,t){(this._isDirty||!this._cachedParentMeasure.isEqualsTo(e))&&(super._processMeasures(e,t),this._evaluateClippingState(e),this._renderToIntermediateTexture&&(this._intermediateTexture&&this._host.getScene()!=this._intermediateTexture.getScene()&&(this._intermediateTexture.dispose(),this._intermediateTexture=null),this._intermediateTexture?this._intermediateTexture.scaleTo(this._currentMeasure.width,this._currentMeasure.height):(this._intermediateTexture=new uf("",{width:this._currentMeasure.width,height:this._currentMeasure.height},this._host.getScene(),!1,be.NEAREST_SAMPLINGMODE,ze.TEXTUREFORMAT_RGBA,!1),this._intermediateTexture.hasAlpha=!0)))}_layout(e,t){var s,r;if(!this.isDirty&&(!this.isVisible||this.notRenderable))return!1;this.host._numLayoutCalls++,this._isDirty&&this._currentMeasure.transformToRef(this._transformMatrix,this._prevCurrentMeasureTransformedIntoGlobalSpace);let i=0;t.save(),this._applyStates(t),this._beforeLayout();do{let n=-1,o=-1;if(this._rebuildLayout=!1,this._processMeasures(e,t),!this._isClipped){for(const l of this._children)l._tempParentMeasure.copyFrom(this._measureForChildren),l._layout(this._measureForChildren,t)&&l.isVisible&&!l.notRenderable&&(this.adaptWidthToChildren&&l._width.isPixel&&(n=Math.max(n,l._currentMeasure.width+l._paddingLeftInPixels+l._paddingRightInPixels)),this.adaptHeightToChildren&&l._height.isPixel&&(o=Math.max(o,l._currentMeasure.height+l._paddingTopInPixels+l._paddingBottomInPixels)));if(this.adaptWidthToChildren&&n>=0){n+=this.paddingLeftInPixels+this.paddingRightInPixels;const l=n+"px";this.width!==l&&((s=this.parent)==null||s._markAsDirty(),this.width=l,this._width.ignoreAdaptiveScaling=!0,this._rebuildLayout=!0)}if(this.adaptHeightToChildren&&o>=0){o+=this.paddingTopInPixels+this.paddingBottomInPixels;const l=o+"px";this.height!==l&&((r=this.parent)==null||r._markAsDirty(),this.height=l,this._height.ignoreAdaptiveScaling=!0,this._rebuildLayout=!0)}this._postMeasure()}i++}while(this._rebuildLayout&&i<this.maxLayoutCycle);return i>=3&&this.logLayoutCycleErrors&&de.Error(`Layout cycle detected in GUI (Container name=${this.name}, uniqueId=${this.uniqueId})`),t.restore(),this._isDirty&&(this.invalidateRect(),this._isDirty=!1),!0}_postMeasure(){}_draw(e,t){const i=this._renderToIntermediateTexture&&this._intermediateTexture,s=i?this._intermediateTexture.getContext():e;i&&(s.save(),s.translate(-this._currentMeasure.left,-this._currentMeasure.top),t?(this._transformMatrix.invertToRef(this._inverseTransformMatrix),t.transformToRef(this._inverseTransformMatrix,this._inverseMeasure),s.clearRect(this._inverseMeasure.left,this._inverseMeasure.top,this._inverseMeasure.width,this._inverseMeasure.height)):s.clearRect(this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height)),this._localDraw(s),e.save(),this.clipChildren&&this._clipForChildren(s);for(const r of this._children)t&&!r._intersectsRect(t)||r._render(s,t);i&&(s.restore(),e.save(),e.globalAlpha=this.alpha,e.drawImage(s.canvas,this._currentMeasure.left,this._currentMeasure.top),e.restore()),e.restore()}getDescendantsToRef(e,t=!1,i){if(this.children)for(let s=0;s<this.children.length;s++){const r=this.children[s];(!i||i(r))&&e.push(r),t||r.getDescendantsToRef(e,!1,i)}}_processPicking(e,t,i,s,r,n,o,l){if(!this._isEnabled||!this.isVisible||this.notRenderable)return!1;const c=super.contains(e,t);if(!c&&this.clipChildren)return!1;if(this.delegatePickingToChildren){let u=!1;for(let f=this._children.length-1;f>=0;f--){const p=this._children[f];if(p.isEnabled&&p.isHitTestVisible&&p.isVisible&&!p.notRenderable&&p.contains(e,t)){u=!0;break}}if(!u)return!1}for(let u=this._children.length-1;u>=0;u--){const f=this._children[u];if(f._processPicking(e,t,i,s,r,n,o,l))return f.hoverCursor&&this._host._changeCursor(f.hoverCursor),!0}return!c||!this.isHitTestVisible?!1:this._processObservables(s,e,t,i,r,n,o,l)}_additionalProcessing(e,t){super._additionalProcessing(e,t),this._measureForChildren.copyFrom(this._currentMeasure)}_getAdaptDimTo(e){return e==="width"?this.adaptWidthToChildren:this.adaptHeightToChildren}isDimensionFullyDefined(e){if(this._getAdaptDimTo(e)){for(const t of this.children)if(!t.isDimensionFullyDefined(e))return!1;return!0}return super.isDimensionFullyDefined(e)}serialize(e,t=!1,i=!0){if(super.serialize(e,t,i),!(!this.isSerializable&&!t)&&(this.backgroundGradient&&(e.backgroundGradient={},this.backgroundGradient.serialize(e.backgroundGradient)),!!this.children.length)){e.children=[];for(const s of this.children)if(s.isSerializable||t){const r={};s.serialize(r,t,i),e.children.push(r)}}}dispose(){var e;super.dispose();for(let t=this.children.length-1;t>=0;t--)this.children[t].dispose();(e=this._intermediateTexture)==null||e.dispose()}_parseFromContent(e,t,i){var s;if(super._parseFromContent(e,t,i),this._link(t),e.backgroundGradient){const r=Le.Instantiate("BABYLON.GUI."+e.backgroundGradient.className);this._backgroundGradient=new r,(s=this._backgroundGradient)==null||s.parse(e.backgroundGradient)}if(e.children)for(const r of e.children)this.addControl(Lt.Parse(r,t,i))}isReady(){for(const e of this.children)if(!e.isReady())return!1;return!0}}F([G()],Ih.prototype,"delegatePickingToChildren",void 0),F([G()],Ih.prototype,"renderToIntermediateTexture",null),F([G()],Ih.prototype,"maxLayoutCycle",void 0),F([G()],Ih.prototype,"adaptHeightToChildren",null),F([G()],Ih.prototype,"adaptWidthToChildren",null),F([G()],Ih.prototype,"background",null),F([G()],Ih.prototype,"backgroundGradient",null),ve("BABYLON.GUI.Container",Ih);class cu extends Ih{get thickness(){return this._thickness}set thickness(e){this._thickness!==e&&(this._thickness=e,this._markAsDirty())}get cornerRadius(){return this._cornerRadius[0]}set cornerRadius(e){e<0&&(e=0),!(this._cornerRadius[0]===e&&this._cornerRadius[1]===e&&this._cornerRadius[2]===e&&this._cornerRadius[3]===e)&&(this._cornerRadius[0]=this._cornerRadius[1]=this._cornerRadius[2]=this._cornerRadius[3]=e,this._markAsDirty())}get cornerRadiusX(){return this._cornerRadius[0]}set cornerRadiusX(e){this._cornerRadius[0]!==e&&(this._cornerRadius[0]=e)}get cornerRadiusY(){return this._cornerRadius[1]}set cornerRadiusY(e){this._cornerRadius[1]!==e&&(this._cornerRadius[1]=e)}get cornerRadiusZ(){return this._cornerRadius[2]}set cornerRadiusZ(e){this._cornerRadius[2]!==e&&(this._cornerRadius[2]=e)}get cornerRadiusW(){return this._cornerRadius[3]}set cornerRadiusW(e){this._cornerRadius[3]!==e&&(this._cornerRadius[3]=e)}constructor(e){super(e),this.name=e,this._thickness=1,this._cornerRadius=[0,0,0,0],this._cachedRadius=[0,0,0,0]}_getTypeName(){return"Rectangle"}_computeAdditionalOffsetX(){let e=0;return(this._cornerRadius[0]!==0||this._cornerRadius[1]!==0||this._cornerRadius[2]!==0||this._cornerRadius[3]!==0)&&(e+=1),this.thickness&&(e+=this.thickness/2),e}_computeAdditionalOffsetY(){let e=0;return(this._cornerRadius[0]!==0||this._cornerRadius[1]!==0||this._cornerRadius[2]!==0||this._cornerRadius[3]!==0)&&(e+=1),this.thickness&&(e+=this.thickness/2),e}_getRectangleFill(e){return this._getBackgroundColor(e)}_localDraw(e){e.save(),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY),(this._background||this._backgroundGradient)&&(e.fillStyle=this._getRectangleFill(e),this._cornerRadius[0]!==0||this._cornerRadius[1]!==0||this._cornerRadius[2]!==0||this._cornerRadius[3]!==0?(this._drawRoundedRect(e,this._thickness/2),e.fill()):e.fillRect(this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height)),this._thickness&&((this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0),(this.color||this.gradient)&&(e.strokeStyle=this.gradient?this.gradient.getCanvasGradient(e):this.color),e.lineWidth=this._thickness,this._cornerRadius[0]!==0||this._cornerRadius[1]!==0||this._cornerRadius[2]!==0||this._cornerRadius[3]!==0?(this._drawRoundedRect(e,this._thickness/2),e.stroke()):e.strokeRect(this._currentMeasure.left+this._thickness/2,this._currentMeasure.top+this._thickness/2,this._currentMeasure.width-this._thickness,this._currentMeasure.height-this._thickness)),e.restore()}_additionalProcessing(e,t){super._additionalProcessing(e,t),this._measureForChildren.width-=2*this._thickness,this._measureForChildren.height-=2*this._thickness,this._measureForChildren.left+=this._thickness,this._measureForChildren.top+=this._thickness}_drawRoundedRect(e,t=0){const i=this._currentMeasure.left+t,s=this._currentMeasure.top+t,r=this._currentMeasure.width-t*2,n=this._currentMeasure.height-t*2;for(let o=0;o<this._cornerRadius.length;o++)this._cachedRadius[o]=Math.abs(Math.min(n/2,Math.min(r/2,this._cornerRadius[o])));e.beginPath(),e.moveTo(i+this._cachedRadius[0],s),e.lineTo(i+r-this._cachedRadius[1],s),e.arc(i+r-this._cachedRadius[1],s+this._cachedRadius[1],this._cachedRadius[1],3*Math.PI/2,Math.PI*2),e.lineTo(i+r,s+n-this._cachedRadius[2]),e.arc(i+r-this._cachedRadius[2],s+n-this._cachedRadius[2],this._cachedRadius[2],0,Math.PI/2),e.lineTo(i+this._cachedRadius[3],s+n),e.arc(i+this._cachedRadius[3],s+n-this._cachedRadius[3],this._cachedRadius[3],Math.PI/2,Math.PI),e.lineTo(i,s+this._cachedRadius[0]),e.arc(i+this._cachedRadius[0],s+this._cachedRadius[0],this._cachedRadius[0],Math.PI,3*Math.PI/2),e.closePath()}_clipForChildren(e){(this._cornerRadius[0]!==0||this._cornerRadius[1]!==0||this._cornerRadius[2]!==0||this._cornerRadius[3]!==0)&&(this._drawRoundedRect(e,this._thickness),e.clip())}}F([G()],cu.prototype,"thickness",null),F([G()],cu.prototype,"cornerRadius",null),F([G()],cu.prototype,"cornerRadiusX",null),F([G()],cu.prototype,"cornerRadiusY",null),F([G()],cu.prototype,"cornerRadiusZ",null),F([G()],cu.prototype,"cornerRadiusW",null),ve("BABYLON.GUI.Rectangle",cu);var zce;(function(a){a[a.Clip=0]="Clip",a[a.WordWrap=1]="WordWrap",a[a.Ellipsis=2]="Ellipsis",a[a.WordWrapEllipsis=3]="WordWrapEllipsis",a[a.HTML=4]="HTML"})(zce||(zce={}));class ia extends Lt{get lines(){return this._lines}get resizeToFit(){return this._resizeToFit}set resizeToFit(e){this._resizeToFit!==e&&(this._resizeToFit=e,this._resizeToFit&&(this._width.ignoreAdaptiveScaling=!0,this._height.ignoreAdaptiveScaling=!0),this._markAsDirty())}get textWrapping(){return this._textWrapping}set textWrapping(e){this._textWrapping!==e&&(this._textWrapping=+e,this._markAsDirty())}get text(){return this._text}set text(e){this._text!==e&&(this._text=e+"",this._markAsDirty(),this.onTextChangedObservable.notifyObservers(this))}get textHorizontalAlignment(){return this._textHorizontalAlignment}set textHorizontalAlignment(e){this._textHorizontalAlignment!==e&&(this._textHorizontalAlignment=e,this._markAsDirty())}get textVerticalAlignment(){return this._textVerticalAlignment}set textVerticalAlignment(e){this._textVerticalAlignment!==e&&(this._textVerticalAlignment=e,this._markAsDirty())}set lineSpacing(e){this._lineSpacing.fromString(e)&&this._markAsDirty()}get lineSpacing(){return this._lineSpacing.toString(this._host)}get outlineWidth(){return this._outlineWidth}set outlineWidth(e){this._outlineWidth!==e&&(this._outlineWidth=e,this._markAsDirty())}get underline(){return this._underline}set underline(e){this._underline!==e&&(this._underline=e,this._markAsDirty())}get lineThrough(){return this._lineThrough}set lineThrough(e){this._lineThrough!==e&&(this._lineThrough=e,this._markAsDirty())}get applyOutlineToUnderline(){return this._applyOutlineToUnderline}set applyOutlineToUnderline(e){this._applyOutlineToUnderline!==e&&(this._applyOutlineToUnderline=e,this._markAsDirty())}get outlineColor(){return this._outlineColor}set outlineColor(e){this._outlineColor!==e&&(this._outlineColor=e,this._markAsDirty())}get wordDivider(){return this._wordDivider}set wordDivider(e){this._wordDivider!==e&&(this._wordDivider=e,this._markAsDirty())}get forceResizeWidth(){return this._forceResizeWidth}set forceResizeWidth(e){this._forceResizeWidth!==e&&(this._forceResizeWidth=e,this._markAsDirty())}constructor(e,t=""){super(e),this.name=e,this._text="",this._textWrapping=0,this._textHorizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_CENTER,this._textVerticalAlignment=Lt.VERTICAL_ALIGNMENT_CENTER,this._resizeToFit=!1,this._lineSpacing=new Ps(0),this._outlineWidth=0,this._outlineColor="white",this._underline=!1,this._lineThrough=!1,this._wordDivider=" ",this._forceResizeWidth=!1,this._applyOutlineToUnderline=!1,this.onTextChangedObservable=new xe,this.onLinesReadyObservable=new xe,this.reuseHTMLForWordWrapping=!1,this._linesTemp=[],this._htmlElement=null,this.text=t}_getTypeName(){return"TextBlock"}_processMeasures(e,t){var s;(!this._fontOffset||this.isDirty)&&(this._fontOffset=Lt._GetFontOffset(t.font,(s=this._host.getScene())==null?void 0:s.getEngine())),super._processMeasures(e,t),this._lines=this._breakLines(this._currentMeasure.width,this._currentMeasure.height,t),this.onLinesReadyObservable.notifyObservers(this);let i=0;for(let r=0;r<this._lines.length;r++){const n=this._lines[r];n.width>i&&(i=n.width)}if(this._resizeToFit){if(this._textWrapping===0||this._forceResizeWidth){const n=Math.ceil(this._paddingLeftInPixels)+Math.ceil(this._paddingRightInPixels)+Math.ceil(i);n!==this._width.getValueInPixel(this._host,this._tempParentMeasure.width)&&(this._width.updateInPlace(n,Ps.UNITMODE_PIXEL),this._rebuildLayout=!0)}let r=this._paddingTopInPixels+this._paddingBottomInPixels+this._fontOffset.height*this._lines.length|0;if(this._lines.length>0&&this._lineSpacing.internalValue!==0){let n=0;this._lineSpacing.isPixel?n=this._lineSpacing.getValue(this._host):n=this._lineSpacing.getValue(this._host)*this._height.getValueInPixel(this._host,this._cachedParentMeasure.height),r+=(this._lines.length-1)*n}r!==this._height.internalValue&&(this._height.updateInPlace(r,Ps.UNITMODE_PIXEL),this._rebuildLayout=!0)}}_drawText(e,t,i,s){const r=this._currentMeasure.width;let n=0;switch(this._textHorizontalAlignment){case Lt.HORIZONTAL_ALIGNMENT_LEFT:n=0;break;case Lt.HORIZONTAL_ALIGNMENT_RIGHT:n=r-t;break;case Lt.HORIZONTAL_ALIGNMENT_CENTER:n=(r-t)/2;break}(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(s.shadowColor=this.shadowColor,s.shadowBlur=this.shadowBlur,s.shadowOffsetX=this.shadowOffsetX,s.shadowOffsetY=this.shadowOffsetY),this.outlineWidth&&s.strokeText(e,this._currentMeasure.left+n,i),s.fillText(e,this._currentMeasure.left+n,i),this._underline&&this._drawLine(this._currentMeasure.left+n,i+3,this._currentMeasure.left+n+t,i+3,s),this._lineThrough&&this._drawLine(this._currentMeasure.left+n,i-this.fontSizeInPixels/3,this._currentMeasure.left+n+t,i-this.fontSizeInPixels/3,s)}_drawLine(e,t,i,s,r){if(r.beginPath(),r.lineWidth=Math.round(this.fontSizeInPixels*.05),r.moveTo(e,t),r.lineTo(i,s),this.outlineWidth&&this.applyOutlineToUnderline)r.stroke(),r.fill();else{const n=r.strokeStyle;r.strokeStyle=r.fillStyle,r.stroke(),r.strokeStyle=n}r.closePath()}_draw(e){e.save(),this._applyStates(e),this._renderLines(e),e.restore()}_applyStates(e){super._applyStates(e),this.outlineWidth&&(e.lineWidth=this.outlineWidth,e.strokeStyle=this.outlineColor,e.lineJoin="miter",e.miterLimit=2)}_breakLines(e,t,i){this._linesTemp.length=0;const s=this._textWrapping===4?this._parseHTMLText(e,t,i):this.text.split(`
`);switch(this._textWrapping){case 1:for(const r of s)this._linesTemp.push(...this._parseLineWordWrap(r,e,i));break;case 2:for(const r of s)this._linesTemp.push(this._parseLineEllipsis(r,e,i));break;case 3:for(const r of s)this._linesTemp.push(...this._parseLineWordWrapEllipsis(r,e,t,i));break;case 4:default:for(const r of s)this._linesTemp.push(this._parseLine(r,i));break}return this._linesTemp}_parseHTMLText(e,t,i){var u;const s=[];this._htmlElement||(this._htmlElement=document.createElement("div"),document.body.appendChild(this._htmlElement));const r=this._htmlElement;r.textContent=this.text,r.style.font=i.font,r.style.position="absolute",r.style.visibility="hidden",r.style.top="-1000px",r.style.left="-1000px",(u=this.adjustWordWrappingHTMLElement)==null||u.call(this,r),r.style.width=e+"px",r.style.height=t+"px";const n=r.textContent;if(!n)return s;const o=r.childNodes[0],l=document.createRange();let c=0;for(const f of n){l.setStart(o,0),l.setEnd(o,c+1);const p=l.getClientRects().length-1;s[p]=(s[p]||"")+f,c++}return this.reuseHTMLForWordWrapping||(r.remove(),this._htmlElement=null),s}_parseLine(e="",t){return{text:e,width:this._getTextMetricsWidth(t.measureText(e))}}_getCharsToRemove(e,t,i){const s=e>t?e-t:0,r=e/i;return Math.max(Math.floor(s/r),1)}_parseLineEllipsis(e="",t,i){let s=this._getTextMetricsWidth(i.measureText(e)),r=this._getCharsToRemove(s,t,e.length);const n=Array.from&&Array.from(e);if(n)for(;n.length&&s>t;)n.splice(n.length-r,r),e=`${n.join("")}…`,s=this._getTextMetricsWidth(i.measureText(e)),r=this._getCharsToRemove(s,t,e.length);else{for(;e.length>2&&s>t;)e=e.slice(0,-r),s=this._getTextMetricsWidth(i.measureText(e+"…")),r=this._getCharsToRemove(s,t,e.length);e+="…"}return{text:e,width:s}}_getTextMetricsWidth(e){return e.actualBoundingBoxLeft!==void 0?Math.abs(e.actualBoundingBoxLeft)+Math.abs(e.actualBoundingBoxRight):e.width}_parseLineWordWrap(e="",t,i){const s=[],r=this.wordSplittingFunction?this.wordSplittingFunction(e):e.split(this._wordDivider);let n=this._getTextMetricsWidth(i.measureText(e));for(let o=0;o<r.length;o++){const l=o>0?e+this._wordDivider+r[o]:r[0],c=this._getTextMetricsWidth(i.measureText(l));c>t&&o>0?(s.push({text:e,width:n}),e=r[o],n=this._getTextMetricsWidth(i.measureText(e))):(n=c,e=l)}return s.push({text:e,width:n}),s}_parseLineWordWrapEllipsis(e="",t,i,s){const r=this._parseLineWordWrap(e,t,s);for(let n=1;n<=r.length;n++)if(this._computeHeightForLinesOf(n)>i&&n>1){const l=r[n-2],c=r[n-1];r[n-2]=this._parseLineEllipsis(l.text+this._wordDivider+c.text,t,s);const u=r.length-n+1;for(let f=0;f<u;f++)r.pop();return r}return r}_renderLines(e){if(!this._fontOffset||!this._lines)return;const t=this._currentMeasure.height;let i=0;switch(this._textVerticalAlignment){case Lt.VERTICAL_ALIGNMENT_TOP:i=this._fontOffset.ascent;break;case Lt.VERTICAL_ALIGNMENT_BOTTOM:i=t-this._fontOffset.height*(this._lines.length-1)-this._fontOffset.descent;break;case Lt.VERTICAL_ALIGNMENT_CENTER:i=this._fontOffset.ascent+(t-this._fontOffset.height*this._lines.length)/2;break}i+=this._currentMeasure.top;for(let s=0;s<this._lines.length;s++){const r=this._lines[s];s!==0&&this._lineSpacing.internalValue!==0&&(this._lineSpacing.isPixel?i+=this._lineSpacing.getValue(this._host):i=i+this._lineSpacing.getValue(this._host)*this._height.getValueInPixel(this._host,this._cachedParentMeasure.height)),this._drawText(r.text,r.width,i,e),i+=this._fontOffset.height}}_computeHeightForLinesOf(e){let t=this._paddingTopInPixels+this._paddingBottomInPixels+this._fontOffset.height*e;if(e>0&&this._lineSpacing.internalValue!==0){let i=0;this._lineSpacing.isPixel?i=this._lineSpacing.getValue(this._host):i=this._lineSpacing.getValue(this._host)*this._height.getValueInPixel(this._host,this._cachedParentMeasure.height),t+=(e-1)*i}return t}isDimensionFullyDefined(e){return this.resizeToFit?!0:super.isDimensionFullyDefined(e)}computeExpectedHeight(){var e,t;if(this.text&&this.widthInPixels){const i=(e=ei.LastCreatedEngine)==null?void 0:e.createCanvas(0,0).getContext("2d");if(i){this._applyStates(i),this._fontOffset||(this._fontOffset=Lt._GetFontOffset(i.font,(t=this._host.getScene())==null?void 0:t.getEngine()));const s=this._lines?this._lines:this._breakLines(this.widthInPixels-this._paddingLeftInPixels-this._paddingRightInPixels,this.heightInPixels-this._paddingTopInPixels-this._paddingBottomInPixels,i);return this._computeHeightForLinesOf(s.length)}}return 0}dispose(){var e;super.dispose(),this.onTextChangedObservable.clear(),(e=this._htmlElement)==null||e.remove(),this._htmlElement=null}}F([G()],ia.prototype,"resizeToFit",null),F([G()],ia.prototype,"textWrapping",null),F([G()],ia.prototype,"text",null),F([G()],ia.prototype,"textHorizontalAlignment",null),F([G()],ia.prototype,"textVerticalAlignment",null),F([G()],ia.prototype,"lineSpacing",null),F([G()],ia.prototype,"outlineWidth",null),F([G()],ia.prototype,"underline",null),F([G()],ia.prototype,"lineThrough",null),F([G()],ia.prototype,"applyOutlineToUnderline",null),F([G()],ia.prototype,"outlineColor",null),F([G()],ia.prototype,"wordDivider",null),F([G()],ia.prototype,"forceResizeWidth",null),ve("BABYLON.GUI.TextBlock",ia);let In=class rd extends Lt{get isLoaded(){return this._loaded}isReady(){return this.isLoaded}get detectPointerOnOpaqueOnly(){return this._detectPointerOnOpaqueOnly}set detectPointerOnOpaqueOnly(e){this._detectPointerOnOpaqueOnly!==e&&(this._detectPointerOnOpaqueOnly=e)}get sliceLeft(){return this._sliceLeft}set sliceLeft(e){this._sliceLeft!==e&&(this._sliceLeft=e,this._markAsDirty())}get sliceRight(){return this._sliceRight}set sliceRight(e){this._sliceRight!==e&&(this._sliceRight=e,this._markAsDirty())}get sliceTop(){return this._sliceTop}set sliceTop(e){this._sliceTop!==e&&(this._sliceTop=e,this._markAsDirty())}get sliceBottom(){return this._sliceBottom}set sliceBottom(e){this._sliceBottom!==e&&(this._sliceBottom=e,this._markAsDirty())}get sourceLeft(){return this._sourceLeft}set sourceLeft(e){this._sourceLeft!==e&&(this._sourceLeft=e,this._markAsDirty())}get sourceTop(){return this._sourceTop}set sourceTop(e){this._sourceTop!==e&&(this._sourceTop=e,this._markAsDirty())}get sourceWidth(){return this._sourceWidth}set sourceWidth(e){this._sourceWidth!==e&&(this._sourceWidth=e,this._markAsDirty())}get sourceHeight(){return this._sourceHeight}set sourceHeight(e){this._sourceHeight!==e&&(this._sourceHeight=e,this._markAsDirty())}get imageWidth(){return this._imageWidth}get imageHeight(){return this._imageHeight}get populateNinePatchSlicesFromImage(){return this._populateNinePatchSlicesFromImage}set populateNinePatchSlicesFromImage(e){this._populateNinePatchSlicesFromImage!==e&&(this._populateNinePatchSlicesFromImage=e,this._populateNinePatchSlicesFromImage&&this._loaded&&this._extractNinePatchSliceDataFromImage())}get isSVG(){return this._isSVG}get svgAttributesComputationCompleted(){return this._svgAttributesComputationCompleted}get autoScale(){return this._autoScale}set autoScale(e){this._autoScale!==e&&(this._autoScale=e,e&&this._loaded&&this.synchronizeSizeWithContent())}get stretch(){return this._stretch}set stretch(e){this._stretch!==e&&(this._stretch=e,this._markAsDirty())}_rotate90(e,t=!1){var u,f;const i=this._domImage.width,s=this._domImage.height,r=((f=(u=this._host)==null?void 0:u.getScene())==null?void 0:f.getEngine())||ei.LastCreatedEngine;if(!r)throw new Error("Invalid engine. Unable to create a canvas.");const n=r.createCanvas(s,i),o=n.getContext("2d");o.translate(n.width/2,n.height/2),o.rotate(e*Math.PI/2),o.drawImage(this._domImage,0,0,i,s,-i/2,-s/2,i,s);const l=n.toDataURL("image/jpg"),c=new rd(this.name+"rotated",l);return t&&(c._stretch=this._stretch,c._autoScale=this._autoScale,c._cellId=this._cellId,c._cellWidth=e%1?this._cellHeight:this._cellWidth,c._cellHeight=e%1?this._cellWidth:this._cellHeight),this._handleRotationForSVGImage(this,c,e),this._imageDataCache.data=null,c}_handleRotationForSVGImage(e,t,i){e._isSVG&&(e._svgAttributesComputationCompleted?(this._rotate90SourceProperties(e,t,i),this._markAsDirty()):e.onSVGAttributesComputedObservable.addOnce(()=>{this._rotate90SourceProperties(e,t,i),this._markAsDirty()}))}_rotate90SourceProperties(e,t,i){let s=e.sourceLeft,r=e.sourceTop,n=e.domImage.width,o=e.domImage.height,l=s,c=r,u=e.sourceWidth,f=e.sourceHeight;if(i!=0){const p=i<0?-1:1;i=i%4;for(let m=0;m<Math.abs(i);++m)l=-(r-o/2)*p+o/2,c=(s-n/2)*p+n/2,[u,f]=[f,u],i<0?c-=f:l-=u,s=l,r=c,[n,o]=[o,n]}t.sourceLeft=l,t.sourceTop=c,t.sourceWidth=u,t.sourceHeight=f}_extractNinePatchSliceDataFromImage(){var n,o;const e=this._domImage.width,t=this._domImage.height;if(!this._workingCanvas){const l=((o=(n=this._host)==null?void 0:n.getScene())==null?void 0:o.getEngine())||ei.LastCreatedEngine;if(!l)throw new Error("Invalid engine. Unable to create a canvas.");this._workingCanvas=l.createCanvas(e,t)}const s=this._workingCanvas.getContext("2d");s.drawImage(this._domImage,0,0,e,t);const r=s.getImageData(0,0,e,t);this._sliceLeft=-1,this._sliceRight=-1;for(let l=0;l<e;l++){const c=r.data[l*4+3];if(c>127&&this._sliceLeft===-1){this._sliceLeft=l;continue}if(c<127&&this._sliceLeft>-1){this._sliceRight=l;break}}this._sliceTop=-1,this._sliceBottom=-1;for(let l=0;l<t;l++){const c=r.data[l*e*4+3];if(c>127&&this._sliceTop===-1){this._sliceTop=l;continue}if(c<127&&this._sliceTop>-1){this._sliceBottom=l;break}}}set domImage(e){this._domImage=e,this._loaded=!1,this._imageDataCache.data=null,this._domImage.width?this._onImageLoaded():this._domImage.onload=()=>{this._onImageLoaded()}}get domImage(){return this._domImage}_onImageLoaded(){this._imageDataCache.data=null,this._imageWidth=this._domImage.width,this._imageHeight=this._domImage.height,this._loaded=!0,this._populateNinePatchSlicesFromImage&&this._extractNinePatchSliceDataFromImage(),this._autoScale&&this.synchronizeSizeWithContent(),this.onImageLoadedObservable.notifyObservers(this),this._markAsDirty()}get source(){return this._source}static ResetImageCache(){rd.SourceImgCache.clear()}_removeCacheUsage(e){const t=e&&rd.SourceImgCache.get(e);if(t){t.timesUsed-=1;const i=t.img;i.parentNode&&i.parentNode.removeChild(i),t.timesUsed===0&&rd.SourceImgCache.delete(e)}}set source(e){var r,n,o,l,c;if(this._urlRewriter&&e&&(e=this._urlRewriter(e)),this._source===e)return;this._removeCacheUsage(this._source),this._loaded=!1,this._source=e,this._imageDataCache.data=null,e&&(e=this._svgCheck(e));const t=((n=(r=this._host)==null?void 0:r.getScene())==null?void 0:n.getEngine())||ei.LastCreatedEngine;if(!t)throw new Error("Invalid engine. Unable to create a canvas.");if(e&&rd.SourceImgCache.has(e)){const u=rd.SourceImgCache.get(e);this._domImage=u.img,u.timesUsed+=1,u.loaded?this._onImageLoaded():u.waitingForLoadCallback.push(this._onImageLoaded.bind(this));return}this._domImage=t.createCanvasImage();const i=this._domImage;let s=!1;i.style&&((o=this._source)!=null&&o.endsWith(".svg"))&&(i.style.visibility="hidden",i.style.position="absolute",i.style.top="0",(c=(l=t.getRenderingCanvas())==null?void 0:l.parentNode)==null||c.appendChild(i),s=!0),e&&rd.SourceImgCache.set(e,{img:this._domImage,timesUsed:1,loaded:!1,waitingForLoadCallback:[this._onImageLoaded.bind(this)]}),this._domImage.onload=()=>{if(e){const u=rd.SourceImgCache.get(e);if(u){u.loaded=!0;for(const f of u.waitingForLoadCallback)f();u.waitingForLoadCallback.length=0,s&&i.remove();return}}this._onImageLoaded(),s&&i.remove()},e&&(Le.SetCorsBehavior(e,this._domImage),Le.SetReferrerPolicyBehavior(this.referrerPolicy,this._domImage),this._domImage.src=e)}_svgCheck(e){if(window.SVGSVGElement&&e.search(/(\.svg|\.svg?[?|#].*)$/gi)!==-1&&e.indexOf("#")===e.lastIndexOf("#")){this._isSVG=!0;const t=e.split("#")[0],i=e.split("#")[1],s=document.body.querySelector('object[data="'+t+'"]');if(s){const r=s.contentDocument;if(r&&r.documentElement){const n=r.documentElement.getAttribute("viewBox"),o=Number(r.documentElement.getAttribute("width")),l=Number(r.documentElement.getAttribute("height"));if(r.getElementById(i)&&n&&o&&l)return this._getSVGAttribs(s,i),e}s.addEventListener("load",()=>{this._getSVGAttribs(s,i)})}else{const r=document.createElement("object");r.data=t,r.type="image/svg+xml",r.width="0%",r.height="0%",document.body.appendChild(r),r.onload=()=>{const n=document.body.querySelector('object[data="'+t+'"]');n&&this._getSVGAttribs(n,i)}}return t}else return e}_getSVGAttribs(e,t){const i=e.contentDocument;if(i&&i.documentElement){const s=i.documentElement.getAttribute("viewBox"),r=Number(i.documentElement.getAttribute("width")),n=Number(i.documentElement.getAttribute("height")),o=i.getElementById(t);if(s&&r&&n&&o){const l=Number(s.split(" ")[2]),c=Number(s.split(" ")[3]),u=o.getBBox();let f=1,p=1,m=0,_=0;const d=o.transform.baseVal.consolidate().matrix;o.transform&&o.transform.baseVal.consolidate()&&(f=d.a,p=d.d,m=d.e,_=d.f),this.sourceLeft=(f*u.x+m)*r/l,this.sourceTop=(p*u.y+_)*n/c,this.sourceWidth=u.width*f*(r/l),this.sourceHeight=u.height*p*(n/c),this._svgAttributesComputationCompleted=!0,this.onSVGAttributesComputedObservable.notifyObservers(this)}}}get cellWidth(){return this._cellWidth}set cellWidth(e){this._cellWidth!==e&&(this._cellWidth=e,this._markAsDirty())}get cellHeight(){return this._cellHeight}set cellHeight(e){this._cellHeight!==e&&(this._cellHeight=e,this._markAsDirty())}get cellId(){return this._cellId}set cellId(e){this._cellId!==e&&(this._cellId=e,this._markAsDirty())}constructor(e,t=null){super(e),this.name=e,this._workingCanvas=null,this._loaded=!1,this._stretch=rd.STRETCH_FILL,this._source=null,this._autoScale=!1,this._sourceLeft=0,this._sourceTop=0,this._sourceWidth=0,this._sourceHeight=0,this._svgAttributesComputationCompleted=!1,this._isSVG=!1,this._cellWidth=0,this._cellHeight=0,this._cellId=-1,this._populateNinePatchSlicesFromImage=!1,this._imageDataCache={data:null,key:""},this.onImageLoadedObservable=new xe,this.onSVGAttributesComputedObservable=new xe,this.source=t}contains(e,t){if(!super.contains(e,t))return!1;if(!this._detectPointerOnOpaqueOnly||!this._workingCanvas)return!0;const i=this._currentMeasure.width|0,s=this._currentMeasure.height|0,r=i+"_"+s;let n=this._imageDataCache.data;if(!n||this._imageDataCache.key!==r){const c=this._workingCanvas.getContext("2d");this._imageDataCache.data=n=c.getImageData(0,0,i,s).data,this._imageDataCache.key=r}return e=e-this._currentMeasure.left|0,t=t-this._currentMeasure.top|0,n[(e+t*i)*4+3]>0}_getTypeName(){return"Image"}synchronizeSizeWithContent(){this._loaded&&(this.width=this._domImage.width+"px",this.height=this._domImage.height+"px")}_processMeasures(e,t){if(this._loaded)switch(this._stretch){case rd.STRETCH_NONE:break;case rd.STRETCH_FILL:break;case rd.STRETCH_UNIFORM:break;case rd.STRETCH_NINE_PATCH:break;case rd.STRETCH_EXTEND:this._autoScale&&this.synchronizeSizeWithContent(),this.parent&&this.parent.parent&&(this.parent.adaptWidthToChildren=!0,this.parent.adaptHeightToChildren=!0);break}super._processMeasures(e,t)}_prepareWorkingCanvasForOpaqueDetection(){var r,n;if(!this._detectPointerOnOpaqueOnly)return;const e=this._currentMeasure.width,t=this._currentMeasure.height;if(!this._workingCanvas){const o=((n=(r=this._host)==null?void 0:r.getScene())==null?void 0:n.getEngine())||ei.LastCreatedEngine;if(!o)throw new Error("Invalid engine. Unable to create a canvas.");this._workingCanvas=o.createCanvas(e,t)}this._workingCanvas.getContext("2d").clearRect(0,0,e,t)}_drawImage(e,t,i,s,r,n,o,l,c){if(e.drawImage(this._domImage,t,i,s,r,n,o,l,c),!this._detectPointerOnOpaqueOnly)return;const u=e.getTransform(),p=this._workingCanvas.getContext("2d");p.save();const m=n-this._currentMeasure.left,_=o-this._currentMeasure.top;p.setTransform(u.a,u.b,u.c,u.d,(m+l)/2,(_+c)/2),p.translate(-(m+l)/2,-(_+c)/2),p.drawImage(this._domImage,t,i,s,r,m,_,l,c),p.restore()}_draw(e){e.save(),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY);let t,i,s,r;if(this.cellId==-1)t=this._sourceLeft,i=this._sourceTop,s=this._sourceWidth?this._sourceWidth:this._imageWidth,r=this._sourceHeight?this._sourceHeight:this._imageHeight;else{const n=this._domImage.naturalWidth/this.cellWidth,o=this.cellId/n>>0,l=this.cellId%n;t=this.cellWidth*l,i=this.cellHeight*o,s=this.cellWidth,r=this.cellHeight}if(this._prepareWorkingCanvasForOpaqueDetection(),this._applyStates(e),this._loaded)switch(this._stretch){case rd.STRETCH_NONE:this._drawImage(e,t,i,s,r,this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height);break;case rd.STRETCH_FILL:this._drawImage(e,t,i,s,r,this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height);break;case rd.STRETCH_UNIFORM:{const n=this._currentMeasure.width/s,o=this._currentMeasure.height/r,l=Math.min(n,o),c=(this._currentMeasure.width-s*l)/2,u=(this._currentMeasure.height-r*l)/2;this._drawImage(e,t,i,s,r,this._currentMeasure.left+c,this._currentMeasure.top+u,s*l,r*l);break}case rd.STRETCH_EXTEND:this._drawImage(e,t,i,s,r,this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height);break;case rd.STRETCH_NINE_PATCH:this._renderNinePatch(e,t,i,s,r);break}e.restore()}_renderNinePatch(e,t,i,s,r){const n=this.host.idealWidth?this._width.getValue(this.host)/this.host.idealWidth:this.host.idealHeight?this._height.getValue(this.host)/this.host.idealHeight:1,o=this._sliceLeft,l=this._sliceTop,c=r-this._sliceBottom,u=s-this._sliceRight,f=this._sliceRight-this._sliceLeft,p=this._sliceBottom-this._sliceTop,m=Math.round(o*n),_=Math.round(l*n),d=Math.round(c*n),h=Math.round(u*n),x=Math.round(this._currentMeasure.width)-h-m+2,A=Math.round(this._currentMeasure.height)-d-_+2,S=Math.round(this._currentMeasure.left)+m-1,E=Math.round(this._currentMeasure.top)+_-1,b=Math.round(this._currentMeasure.left+this._currentMeasure.width)-h,M=Math.round(this._currentMeasure.top+this._currentMeasure.height)-d;this._drawImage(e,t,i,o,l,this._currentMeasure.left,this._currentMeasure.top,m,_),this._drawImage(e,t+this._sliceLeft,i,f,l,S+1,this._currentMeasure.top,x-2,_),this._drawImage(e,t+this._sliceRight,i,u,l,b,this._currentMeasure.top,h,_),this._drawImage(e,t,i+this._sliceTop,o,p,this._currentMeasure.left,E+1,m,A-2),this._drawImage(e,t+this._sliceLeft,i+this._sliceTop,f,p,S+1,E+1,x-2,A-2),this._drawImage(e,t+this._sliceRight,i+this._sliceTop,u,p,b,E+1,h,A-2),this._drawImage(e,t,i+this._sliceBottom,o,c,this._currentMeasure.left,M,m,d),this._drawImage(e,t+this.sliceLeft,i+this._sliceBottom,f,c,S+1,M,x-2,d),this._drawImage(e,t+this._sliceRight,i+this._sliceBottom,u,c,b,M,h,d)}dispose(){super.dispose(),this.onImageLoadedObservable.clear(),this.onSVGAttributesComputedObservable.clear(),this._removeCacheUsage(this._source)}};In.SourceImgCache=new Map,In.STRETCH_NONE=0,In.STRETCH_FILL=1,In.STRETCH_UNIFORM=2,In.STRETCH_EXTEND=3,In.STRETCH_NINE_PATCH=4,F([G()],In.prototype,"detectPointerOnOpaqueOnly",null),F([G()],In.prototype,"sliceLeft",null),F([G()],In.prototype,"sliceRight",null),F([G()],In.prototype,"sliceTop",null),F([G()],In.prototype,"sliceBottom",null),F([G()],In.prototype,"sourceLeft",null),F([G()],In.prototype,"sourceTop",null),F([G()],In.prototype,"sourceWidth",null),F([G()],In.prototype,"sourceHeight",null),F([G()],In.prototype,"populateNinePatchSlicesFromImage",null),F([G()],In.prototype,"autoScale",null),F([G()],In.prototype,"stretch",null),F([G()],In.prototype,"source",null),F([G()],In.prototype,"cellWidth",null),F([G()],In.prototype,"cellHeight",null),F([G()],In.prototype,"cellId",null),ve("BABYLON.GUI.Image",In);class C5 extends cu{get image(){return this._image}get textBlock(){return this._textBlock}constructor(e){super(e),this.name=e,this.thickness=1,this.isPointerBlocker=!0;let t=null;this.pointerEnterAnimation=()=>{t=this.alpha,this.alpha-=.1},this.pointerOutAnimation=()=>{t!==null&&(this.alpha=t)},this.pointerDownAnimation=()=>{this.scaleX-=.05,this.scaleY-=.05},this.pointerUpAnimation=()=>{this.scaleX+=.05,this.scaleY+=.05}}_getTypeName(){return"Button"}_processPicking(e,t,i,s,r,n,o,l){if(!this._isEnabled||!this.isHitTestVisible||!this.isVisible||this.notRenderable||!super.contains(e,t))return!1;if(this.delegatePickingToChildren){let c=!1;for(let u=this._children.length-1;u>=0;u--){const f=this._children[u];if(f.isEnabled&&f.isHitTestVisible&&f.isVisible&&!f.notRenderable&&f.contains(e,t)){c=!0;break}}if(!c)return!1}return this._processObservables(s,e,t,i,r,n,o,l),!0}_onPointerEnter(e,t){return super._onPointerEnter(e,t)?(!this.isReadOnly&&this.pointerEnterAnimation&&this.pointerEnterAnimation(),!0):!1}_onPointerOut(e,t,i=!1){!this.isReadOnly&&this.pointerOutAnimation&&this.pointerOutAnimation(),super._onPointerOut(e,t,i)}_onPointerDown(e,t,i,s,r){return super._onPointerDown(e,t,i,s,r)?(!this.isReadOnly&&this.pointerDownAnimation&&this.pointerDownAnimation(),!0):!1}_getRectangleFill(e){return this.isEnabled?this._getBackgroundColor(e):this._disabledColor}_onPointerUp(e,t,i,s,r,n){!this.isReadOnly&&this.pointerUpAnimation&&this.pointerUpAnimation(),super._onPointerUp(e,t,i,s,r,n)}serialize(e,t){super.serialize(e,t),!(!this.isSerializable&&!t)&&(this._textBlock&&(e.textBlockName=this._textBlock.name),this._image&&(e.imageName=this._image.name))}_parseFromContent(e,t){super._parseFromContent(e,t),e.textBlockName&&(this._textBlock=this.getChildByName(e.textBlockName)),e.imageName&&(this._image=this.getChildByName(e.imageName))}static CreateImageButton(e,t,i){const s=new this(e),r=new ia(e+"_button",t);r.textWrapping=!0,r.textHorizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_CENTER,r.paddingLeft="20%",s.addControl(r);const n=new In(e+"_icon",i);return n.width="20%",n.stretch=In.STRETCH_UNIFORM,n.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,s.addControl(n),s._image=n,s._textBlock=r,s}static CreateImageOnlyButton(e,t){const i=new this(e),s=new In(e+"_icon",t);return s.stretch=In.STRETCH_FILL,s.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,i.addControl(s),i._image=s,i}static CreateSimpleButton(e,t){const i=new this(e),s=new ia(e+"_button",t);return s.textWrapping=!0,s.textHorizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_CENTER,i.addControl(s),i._textBlock=s,i}static CreateImageWithCenterTextButton(e,t,i){const s=new this(e),r=new In(e+"_icon",i);r.stretch=In.STRETCH_FILL,s.addControl(r);const n=new ia(e+"_button",t);return n.textWrapping=!0,n.textHorizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_CENTER,s.addControl(n),s._image=r,s._textBlock=n,s}}ve("BABYLON.GUI.Button",C5);class s1 extends Ih{get isVertical(){return this._isVertical}set isVertical(e){this._isVertical!==e&&(this._isVertical=e,this._markAsDirty())}get spacing(){return this._spacing}set spacing(e){this._spacing!==e&&(this._spacing=e,this._markAsDirty())}set width(e){this._doNotTrackManualChanges||(this._manualWidth=!0),this._width.toString(this._host)!==e&&this._width.fromString(e)&&this._markAsDirty()}get width(){return this._width.toString(this._host)}set height(e){this._doNotTrackManualChanges||(this._manualHeight=!0),this._height.toString(this._host)!==e&&this._height.fromString(e)&&this._markAsDirty()}get height(){return this._height.toString(this._host)}constructor(e){super(e),this.name=e,this._isVertical=!0,this._manualWidth=!1,this._manualHeight=!1,this._doNotTrackManualChanges=!1,this._spacing=0,this.ignoreLayoutWarnings=!1}_getTypeName(){return"StackPanel"}_preMeasure(e,t){for(const i of this._children)this._isVertical?i.verticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP:i.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT;super._preMeasure(e,t)}_additionalProcessing(e,t){super._additionalProcessing(e,t),this._measureForChildren.copyFrom(e),this._measureForChildren.left=this._currentMeasure.left,this._measureForChildren.top=this._currentMeasure.top,(!this.isVertical||this._manualWidth)&&(this._measureForChildren.width=this._currentMeasure.width),(this.isVertical||this._manualHeight)&&(this._measureForChildren.height=this._currentMeasure.height)}_postMeasure(){let e=0,t=0;const i=this._children.length;for(let n=0;n<i;n++){const o=this._children[n];if(!(!o.isVisible||o.notRenderable))if(this._isVertical){const l=t+"px";o.top!==l&&(o.top=l,this._rebuildLayout=!0,o._top.ignoreAdaptiveScaling=!0),!this.ignoreLayoutWarnings&&!o.isDimensionFullyDefined("height")?de.Warn(`Control (Name:${o.name}, UniqueId:${o.uniqueId}) is using height in percentage mode inside a vertical StackPanel`,1):t+=o._currentMeasure.height+o._paddingTopInPixels+o._paddingBottomInPixels+(n<i-1?this._spacing:0)}else{const l=e+"px";o.left!==l&&(o.left=l,this._rebuildLayout=!0,o._left.ignoreAdaptiveScaling=!0),!this.ignoreLayoutWarnings&&!o.isDimensionFullyDefined("width")?de.Warn(`Control (Name:${o.name}, UniqueId:${o.uniqueId}) is using width in percentage mode inside a horizontal StackPanel`,1):e+=o._currentMeasure.width+o._paddingLeftInPixels+o._paddingRightInPixels+(n<i-1?this._spacing:0)}}e+=this._paddingLeftInPixels+this._paddingRightInPixels,t+=this._paddingTopInPixels+this._paddingBottomInPixels,this._doNotTrackManualChanges=!0;let s=!1,r=!1;if((!this._manualHeight||this.adaptHeightToChildren)&&this._isVertical){const n=this.height;this.height=t+"px",r=n!==this.height||!this._height.ignoreAdaptiveScaling}if((!this._manualWidth||this.adaptWidthToChildren)&&!this._isVertical){const n=this.width;this.width=e+"px",s=n!==this.width||!this._width.ignoreAdaptiveScaling}r&&(this._height.ignoreAdaptiveScaling=!0),s&&(this._width.ignoreAdaptiveScaling=!0),this._doNotTrackManualChanges=!1,(s||r)&&(this._rebuildLayout=!0),super._postMeasure()}_getManualDim(e){return e==="width"?this._manualWidth:this._manualHeight}isDimensionFullyDefined(e){if(e==="height"?this.isVertical:!this.isVertical&&!this._getManualDim(e)){for(const t of this._children)if(!t.isDimensionFullyDefined(e))return!1;return!0}return this.getDimension(e).isPixel||this._getAdaptDimTo(e)}serialize(e,t){super.serialize(e,t),!(!this.isSerializable&&!t)&&(e.manualWidth=this._manualWidth,e.manualHeight=this._manualHeight)}_parseFromContent(e,t){this._manualWidth=e.manualWidth,this._manualHeight=e.manualHeight,super._parseFromContent(e,t)}}F([G()],s1.prototype,"ignoreLayoutWarnings",void 0),F([G()],s1.prototype,"isVertical",null),F([G()],s1.prototype,"spacing",null),F([G()],s1.prototype,"width",null),F([G()],s1.prototype,"height",null),ve("BABYLON.GUI.StackPanel",s1);class hM extends Lt{get thickness(){return this._thickness}set thickness(e){this._thickness!==e&&(this._thickness=e,this._markAsDirty())}get checkSizeRatio(){return this._checkSizeRatio}set checkSizeRatio(e){e=Math.max(Math.min(1,e),0),this._checkSizeRatio!==e&&(this._checkSizeRatio=e,this._markAsDirty())}get background(){return this._background}set background(e){this._background!==e&&(this._background=e,this._markAsDirty())}get isChecked(){return this._isChecked}set isChecked(e){this._isChecked!==e&&(this._isChecked=e,this._markAsDirty(),this.onIsCheckedChangedObservable.notifyObservers(e))}constructor(e){super(e),this.name=e,this._isChecked=!1,this._background="black",this._checkSizeRatio=.8,this._thickness=1,this.onIsCheckedChangedObservable=new xe,this.isPointerBlocker=!0}_getTypeName(){return"Checkbox"}_draw(e){e.save(),this._applyStates(e);const t=this._currentMeasure.width-this._thickness,i=this._currentMeasure.height-this._thickness;if((this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY),e.fillStyle=this._isEnabled?this._background:this._disabledColor,e.fillRect(this._currentMeasure.left+this._thickness/2,this._currentMeasure.top+this._thickness/2,t,i),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0),this._isChecked){e.fillStyle=this._isEnabled?this.color?this.color:"#ffffff":this._disabledColorItem;const s=t*this._checkSizeRatio,r=i*this._checkSizeRatio;e.fillRect(this._currentMeasure.left+this._thickness/2+(t-s)/2,this._currentMeasure.top+this._thickness/2+(i-r)/2,s,r)}e.strokeStyle=this.color,e.lineWidth=this._thickness,e.strokeRect(this._currentMeasure.left+this._thickness/2,this._currentMeasure.top+this._thickness/2,t,i),e.restore()}_onPointerDown(e,t,i,s,r){return super._onPointerDown(e,t,i,s,r)?(this.isReadOnly||(this.isChecked=!this.isChecked),!0):!1}static AddCheckBoxWithHeader(e,t){const i=new s1;i.isVertical=!1,i.height="30px";const s=new hM;s.width="20px",s.height="20px",s.isChecked=!0,s.color="green",s.onIsCheckedChangedObservable.add(t),i.addControl(s);const r=new ia;return r.text=e,r.width="180px",r.paddingLeft="5px",r.textHorizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,r.color="white",i.addControl(r),i}}F([G()],hM.prototype,"thickness",null),F([G()],hM.prototype,"checkSizeRatio",null),F([G()],hM.prototype,"background",null),F([G()],hM.prototype,"isChecked",null),ve("BABYLON.GUI.Checkbox",hM);class jY{get text(){return this._characters?this._characters.join(""):this._text}set text(e){this._text=e,this._characters=Array.from&&Array.from(e)}get length(){return this._characters?this._characters.length:this._text.length}removePart(e,t,i){if(this._text=this._text.slice(0,e)+(i||"")+this._text.slice(t),this._characters){const s=i?Array.from(i):[];this._characters.splice(e,t-e,...s)}}charAt(e){return this._characters?this._characters[e]:this._text.charAt(e)}substr(e,t){if(this._characters){isNaN(e)?e=0:e>=0?e=Math.min(e,this._characters.length):e=this._characters.length+Math.max(e,-this._characters.length),t===void 0?t=this._characters.length-e:(isNaN(t)||t<0)&&(t=0);const i=[];for(;--t>=0;)i[t]=this._characters[e+t];return i.join("")}return this._text.substring(e,t?t+e:void 0)}substring(e,t){if(this._characters){isNaN(e)?e=0:e>this._characters.length?e=this._characters.length:e<0&&(e=0),t===void 0?t=this._characters.length:isNaN(t)?t=0:t>this._characters.length?t=this._characters.length:t<0&&(t=0);const i=[];let s=0;for(;e<t;)i[s++]=this._characters[e++];return i.join("")}return this._text.substring(e,t)}isWord(e){const t=/\w/g;return this._characters?this._characters[e].search(t)!==-1:this._text.search(t)!==-1}}class tl extends Lt{get outlineWidth(){return this._outlineWidth}set outlineWidth(e){this._outlineWidth!==e&&(this._outlineWidth=e,this._markAsDirty())}get outlineColor(){return this._outlineColor}set outlineColor(e){this._outlineColor!==e&&(this._outlineColor=e,this._markAsDirty())}get maxWidth(){return this._maxWidth.toString(this._host)}get maxWidthInPixels(){return this._maxWidth.getValueInPixel(this._host,this._cachedParentMeasure.width)}set maxWidth(e){this._maxWidth.toString(this._host)!==e&&this._maxWidth.fromString(e)&&this._markAsDirty()}get highligherOpacity(){return this._highligherOpacity}set highligherOpacity(e){this._highligherOpacity!==e&&(this._highligherOpacity=e,this._markAsDirty())}get onFocusSelectAll(){return this._onFocusSelectAll}set onFocusSelectAll(e){this._onFocusSelectAll!==e&&(this._onFocusSelectAll=e,this._markAsDirty())}get textHighlightColor(){return this._textHighlightColor}set textHighlightColor(e){this._textHighlightColor!==e&&(this._textHighlightColor=e,this._markAsDirty())}get margin(){return this._margin.toString(this._host)}get marginInPixels(){return this._margin.getValueInPixel(this._host,this._cachedParentMeasure.width)}set margin(e){this._margin.toString(this._host)!==e&&this._margin.fromString(e)&&this._markAsDirty()}get autoStretchWidth(){return this._autoStretchWidth}set autoStretchWidth(e){this._autoStretchWidth!==e&&(this._autoStretchWidth=e,this._markAsDirty())}get thickness(){return this._thickness}set thickness(e){this._thickness!==e&&(this._thickness=e,this._markAsDirty())}get focusedBackground(){return this._focusedBackground}set focusedBackground(e){this._focusedBackground!==e&&(this._focusedBackground=e,this._markAsDirty())}set focusedColor(e){this._focusedColor!==e&&(this._focusedColor=e,this._markAsDirty())}get background(){return this._background}set background(e){this._background!==e&&(this._background=e,this._markAsDirty())}get placeholderColor(){return this._placeholderColor}set placeholderColor(e){this._placeholderColor!==e&&(this._placeholderColor=e,this._markAsDirty())}get placeholderText(){return this._placeholderText}set placeholderText(e){this._placeholderText!==e&&(this._placeholderText=e,this._markAsDirty())}get deadKey(){return this._deadKey}set deadKey(e){this._deadKey=e}get highlightedText(){return this._highlightedText}set highlightedText(e){this._highlightedText!==e&&(this._highlightedText=e,this._markAsDirty())}get addKey(){return this._addKey}set addKey(e){this._addKey=e}get currentKey(){return this._currentKey}set currentKey(e){this._currentKey=e}get text(){return this._textWrapper.text}set text(e){const t=e.toString();this._textWrapper||(this._textWrapper=new jY),this._textWrapper.text!==t&&(this._textWrapper.text=t,this._textHasChanged())}_textHasChanged(){this._markAsDirty(),this.onTextChangedObservable.notifyObservers(this)}_applyStates(e){super._applyStates(e),this.outlineWidth&&(e.lineWidth=this.outlineWidth,e.strokeStyle=this.outlineColor)}get width(){return this._width.toString(this._host)}set width(e){this._width.toString(this._host)===e&&!this._autoStretchWidth||(this._width.fromString(e)&&this._markAsDirty(),this.autoStretchWidth=!1)}constructor(e,t=""){super(e),this.name=e,this._placeholderText="",this._background="#222222",this._focusedBackground="#000000",this._placeholderColor="gray",this._thickness=1,this._margin=new Ps(10,Ps.UNITMODE_PIXEL),this._autoStretchWidth=!0,this._maxWidth=new Ps(1,Ps.UNITMODE_PERCENTAGE,!1),this._blinkIsEven=!1,this._cursorOffset=0,this._deadKey=!1,this._addKey=!0,this._currentKey="",this._isTextHighlightOn=!1,this._textHighlightColor="#d5e0ff",this._highligherOpacity=.4,this._highlightedText="",this._startHighlightIndex=0,this._endHighlightIndex=0,this._cursorIndex=-1,this._outlineWidth=0,this._outlineColor="white",this._onFocusSelectAll=!1,this._isPointerDown=!1,this.promptMessage="Please enter text:",this.disableMobilePrompt=!1,this.onTextChangedObservable=new xe,this.onBeforeKeyAddObservable=new xe,this.onTextHighlightObservable=new xe,this.onTextCopyObservable=new xe,this.onTextCutObservable=new xe,this.onTextPasteObservable=new xe,this.text=t,this.isPointerBlocker=!0,this._focusedColor="white"}onBlur(){this._isFocused=!1,this._scrollLeft=null,this._cursorOffset=0,clearTimeout(this._blinkTimeout),this._markAsDirty(),this.onBlurObservable.notifyObservers(this),this._host.unRegisterClipboardEvents(),this._onClipboardObserver&&this._host.onClipboardObservable.remove(this._onClipboardObserver);const e=this._host.getScene();this._onPointerDblTapObserver&&e&&e.onPointerObservable.remove(this._onPointerDblTapObserver)}onFocus(){if(!this._isEnabled)return;if(this._scrollLeft=null,this._isFocused=!0,this._blinkIsEven=!1,this._cursorOffset=0,this._markAsDirty(),this.onFocusObservable.notifyObservers(this),this._focusedBy==="touch"&&!this.disableMobilePrompt){const t=prompt(this.promptMessage);t!==null&&(this.text=t),this._host.focusedControl=null;return}this._host.registerClipboardEvents(),this._onClipboardObserver=this._host.onClipboardObservable.add(t=>{switch(t.type){case M4.COPY:this._onCopyText(t.event),this.onTextCopyObservable.notifyObservers(this);break;case M4.CUT:this._onCutText(t.event),this.onTextCutObservable.notifyObservers(this);break;case M4.PASTE:this._onPasteText(t.event),this.onTextPasteObservable.notifyObservers(this);break;default:return}});const e=this._host.getScene();e&&(this._onPointerDblTapObserver=e.onPointerObservable.add(t=>{this._isFocused&&t.type===Xt.POINTERDOUBLETAP&&this._processDblClick(t)})),this._onFocusSelectAll&&this.selectAllText()}_getTypeName(){return"InputText"}keepsFocusWith(){return this._connectedVirtualKeyboard?[this._connectedVirtualKeyboard]:null}processKey(e,t,i){if(!this.isReadOnly&&!(i&&(i.ctrlKey||i.metaKey)&&(e===67||e===86||e===88))){if(i&&(i.ctrlKey||i.metaKey)&&e===65){this.selectAllText(),i.preventDefault();return}switch(e){case 32:t=" ";break;case 191:i&&i.preventDefault();break;case 8:if(this._textWrapper.text&&this._textWrapper.length>0){if(this.isTextHighlightOn){this._textWrapper.removePart(this._startHighlightIndex,this._endHighlightIndex),this._textHasChanged(),this.isTextHighlightOn=!1,this._cursorOffset=this._textWrapper.length-this._startHighlightIndex,this._blinkIsEven=!1,i&&i.preventDefault();return}if(this._cursorOffset===0)this.text=this._textWrapper.substring(0,this._textWrapper.length-1);else{const s=this._textWrapper.length-this._cursorOffset;s>0&&(this._textWrapper.removePart(s-1,s),this._textHasChanged())}}i&&i.preventDefault();return;case 46:if(this.isTextHighlightOn){this._textWrapper.removePart(this._startHighlightIndex,this._endHighlightIndex),this._textHasChanged(),this.isTextHighlightOn=!1,this._cursorOffset=this._textWrapper.length-this._startHighlightIndex,i&&i.preventDefault();return}if(this._textWrapper.text&&this._textWrapper.length>0&&this._cursorOffset>0){const s=this._textWrapper.length-this._cursorOffset;this._textWrapper.removePart(s,s+1),this._textHasChanged(),this._cursorOffset--}i&&i.preventDefault();return;case 13:this._host.focusedControl=null,this.isTextHighlightOn=!1;return;case 35:this._cursorOffset=0,this._blinkIsEven=!1,this.isTextHighlightOn=!1,this._markAsDirty();return;case 36:this._cursorOffset=this._textWrapper.length,this._blinkIsEven=!1,this.isTextHighlightOn=!1,this._markAsDirty();return;case 37:if(this._cursorOffset++,this._cursorOffset>this._textWrapper.length&&(this._cursorOffset=this._textWrapper.length),i&&i.shiftKey){if(this._blinkIsEven=!1,i.ctrlKey||i.metaKey){if(!this.isTextHighlightOn){if(this._textWrapper.length===this._cursorOffset)return;this._endHighlightIndex=this._textWrapper.length-this._cursorOffset+1}this._startHighlightIndex=0,this._cursorIndex=this._textWrapper.length-this._endHighlightIndex,this._cursorOffset=this._textWrapper.length,this.isTextHighlightOn=!0,this._markAsDirty();return}this.isTextHighlightOn?this._cursorIndex===-1&&(this._cursorIndex=this._textWrapper.length-this._endHighlightIndex,this._cursorOffset=this._startHighlightIndex===0?this._textWrapper.length:this._textWrapper.length-this._startHighlightIndex+1):(this.isTextHighlightOn=!0,this._cursorIndex=this._cursorOffset>=this._textWrapper.length?this._textWrapper.length:this._cursorOffset-1),this._cursorIndex<this._cursorOffset?(this._endHighlightIndex=this._textWrapper.length-this._cursorIndex,this._startHighlightIndex=this._textWrapper.length-this._cursorOffset):this._cursorIndex>this._cursorOffset?(this._endHighlightIndex=this._textWrapper.length-this._cursorOffset,this._startHighlightIndex=this._textWrapper.length-this._cursorIndex):this.isTextHighlightOn=!1,this._markAsDirty();return}this.isTextHighlightOn&&(this._cursorOffset=this._textWrapper.length-this._startHighlightIndex,this.isTextHighlightOn=!1),i&&(i.ctrlKey||i.metaKey)&&(this._cursorOffset=this._textWrapper.length,i.preventDefault()),this._blinkIsEven=!1,this.isTextHighlightOn=!1,this._cursorIndex=-1,this._markAsDirty();return;case 39:if(this._cursorOffset--,this._cursorOffset<0&&(this._cursorOffset=0),i&&i.shiftKey){if(this._blinkIsEven=!1,i.ctrlKey||i.metaKey){if(!this.isTextHighlightOn){if(this._cursorOffset===0)return;this._startHighlightIndex=this._textWrapper.length-this._cursorOffset-1}this._endHighlightIndex=this._textWrapper.length,this.isTextHighlightOn=!0,this._cursorIndex=this._textWrapper.length-this._startHighlightIndex,this._cursorOffset=0,this._markAsDirty();return}this.isTextHighlightOn?this._cursorIndex===-1&&(this._cursorIndex=this._textWrapper.length-this._startHighlightIndex,this._cursorOffset=this._textWrapper.length===this._endHighlightIndex?0:this._textWrapper.length-this._endHighlightIndex-1):(this.isTextHighlightOn=!0,this._cursorIndex=this._cursorOffset<=0?0:this._cursorOffset+1),this._cursorIndex<this._cursorOffset?(this._endHighlightIndex=this._textWrapper.length-this._cursorIndex,this._startHighlightIndex=this._textWrapper.length-this._cursorOffset):this._cursorIndex>this._cursorOffset?(this._endHighlightIndex=this._textWrapper.length-this._cursorOffset,this._startHighlightIndex=this._textWrapper.length-this._cursorIndex):this.isTextHighlightOn=!1,this._markAsDirty();return}this.isTextHighlightOn&&(this._cursorOffset=this._textWrapper.length-this._endHighlightIndex,this.isTextHighlightOn=!1),i&&(i.ctrlKey||i.metaKey)&&(this._cursorOffset=0,i.preventDefault()),this._blinkIsEven=!1,this.isTextHighlightOn=!1,this._cursorIndex=-1,this._markAsDirty();return}if(e===32&&(t=(i==null?void 0:i.key)??" "),this._deadKey=t==="Dead",t&&(e===-1||e===32||e===34||e===39||e>47&&e<64||e>64&&e<91||e>159&&e<193||e>218&&e<223||e>95&&e<112)&&(this._currentKey=t,this.onBeforeKeyAddObservable.notifyObservers(this),t=this._currentKey,this._addKey&&!this._deadKey))if(this.isTextHighlightOn)this._textWrapper.removePart(this._startHighlightIndex,this._endHighlightIndex,t),this._textHasChanged(),this._cursorOffset=this._textWrapper.length-(this._startHighlightIndex+1),this.isTextHighlightOn=!1,this._blinkIsEven=!1,this._markAsDirty();else if(this._cursorOffset===0)this.text+=this._deadKey&&(i!=null&&i.key)?i.key:t;else{const s=this._textWrapper.length-this._cursorOffset;this._textWrapper.removePart(s,s,t),this._textHasChanged()}}}_updateValueFromCursorIndex(e){if(this._blinkIsEven=!1,this._cursorIndex===-1)this._cursorIndex=e;else if(this._cursorIndex<this._cursorOffset)this._endHighlightIndex=this._textWrapper.length-this._cursorIndex,this._startHighlightIndex=this._textWrapper.length-this._cursorOffset;else if(this._cursorIndex>this._cursorOffset)this._endHighlightIndex=this._textWrapper.length-this._cursorOffset,this._startHighlightIndex=this._textWrapper.length-this._cursorIndex;else{this.isTextHighlightOn=!1,this._markAsDirty();return}this.isTextHighlightOn=!0,this._markAsDirty()}_processDblClick(e){this._startHighlightIndex=this._textWrapper.length-this._cursorOffset,this._endHighlightIndex=this._startHighlightIndex;let t,i;do i=this._endHighlightIndex<this._textWrapper.length&&this._textWrapper.isWord(this._endHighlightIndex)?++this._endHighlightIndex:0,t=this._startHighlightIndex>0&&this._textWrapper.isWord(this._startHighlightIndex-1)?--this._startHighlightIndex:0;while(t||i);this._cursorOffset=this._textWrapper.length-this._startHighlightIndex,this.isTextHighlightOn=!0,this._clickedCoordinate=null,this._blinkIsEven=!0,this._cursorIndex=-1,this._markAsDirty()}selectAllText(){this._blinkIsEven=!0,this.isTextHighlightOn=!0,this._startHighlightIndex=0,this._endHighlightIndex=this._textWrapper.length,this._cursorOffset=this._textWrapper.length,this._cursorIndex=-1,this._markAsDirty()}processKeyboard(e){this.processKey(e.keyCode,e.key,e),super.processKeyboard(e)}_onCopyText(e){this.isTextHighlightOn=!1;try{e.clipboardData&&e.clipboardData.setData("text/plain",this._highlightedText)}catch{}this._host.clipboardData=this._highlightedText}_onCutText(e){if(this._highlightedText){this._textWrapper.removePart(this._startHighlightIndex,this._endHighlightIndex),this._textHasChanged(),this.isTextHighlightOn=!1,this._cursorOffset=this._textWrapper.length-this._startHighlightIndex;try{e.clipboardData&&e.clipboardData.setData("text/plain",this._highlightedText)}catch{}this._host.clipboardData=this._highlightedText,this._highlightedText=""}}_onPasteText(e){let t="";e.clipboardData&&e.clipboardData.types.indexOf("text/plain")!==-1?t=e.clipboardData.getData("text/plain"):t=this._host.clipboardData;const i=this._textWrapper.length-this._cursorOffset;this._textWrapper.removePart(i,i,t),this._textHasChanged()}_draw(e){var o;e.save(),this._applyStates(e),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY),this._isFocused?this._focusedBackground&&(e.fillStyle=this._isEnabled?this._focusedBackground:this._disabledColor,e.fillRect(this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height)):this._background&&(e.fillStyle=this._isEnabled?this._background:this._disabledColor,e.fillRect(this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height)),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0),(!this._fontOffset||this._wasDirty)&&(this._fontOffset=Lt._GetFontOffset(e.font,(o=this._host.getScene())==null?void 0:o.getEngine()));const t=this._currentMeasure.left+this._margin.getValueInPixel(this._host,this._tempParentMeasure.width);this.color&&(e.fillStyle=this.color);let i=this._beforeRenderText(this._textWrapper);!this._isFocused&&!this._textWrapper.text&&this._placeholderText&&(i=new jY,i.text=this._placeholderText,this._placeholderColor&&(e.fillStyle=this._placeholderColor)),this._textWidth=e.measureText(i.text).width;const s=this._margin.getValueInPixel(this._host,this._tempParentMeasure.width)*2;this._autoStretchWidth&&(this.width=Math.min(this._maxWidth.getValueInPixel(this._host,this._tempParentMeasure.width),this._textWidth+s)+"px",this._autoStretchWidth=!0);const r=this._fontOffset.ascent+(this._currentMeasure.height-this._fontOffset.height)/2,n=this._width.getValueInPixel(this._host,this._tempParentMeasure.width)-s;if(e.save(),e.beginPath(),e.rect(t,this._currentMeasure.top+(this._currentMeasure.height-this._fontOffset.height)/2,n+2,this._currentMeasure.height),e.clip(),this._isFocused&&this._textWidth>n){const l=t-this._textWidth+n;this._scrollLeft||(this._scrollLeft=l)}else this._scrollLeft=t;if(this.outlineWidth&&e.strokeText(i.text,this._scrollLeft,this._currentMeasure.top+r),e.fillText(i.text,this._scrollLeft,this._currentMeasure.top+r),this._isFocused){if(this._clickedCoordinate){const c=this._scrollLeft+this._textWidth-this._clickedCoordinate;let u=0;this._cursorOffset=0;let f=0;do this._cursorOffset&&(f=Math.abs(c-u)),this._cursorOffset++,u=e.measureText(i.substr(i.length-this._cursorOffset,this._cursorOffset)).width;while(u<c&&i.length>=this._cursorOffset);Math.abs(c-u)>f&&this._cursorOffset--,this._blinkIsEven=!1,this._clickedCoordinate=null}if(!this._blinkIsEven){const l=i.substr(i.length-this._cursorOffset),c=e.measureText(l).width;let u=this._scrollLeft+this._textWidth-c;u<t?(this._scrollLeft+=t-u,u=t,this._markAsDirty()):u>t+n&&(this._scrollLeft+=t+n-u,u=t+n,this._markAsDirty()),this.isTextHighlightOn||e.fillRect(u,this._currentMeasure.top+(this._currentMeasure.height-this._fontOffset.height)/2,2,this._fontOffset.height)}if(clearTimeout(this._blinkTimeout),this._blinkTimeout=setTimeout(()=>{this._blinkIsEven=!this._blinkIsEven,this._markAsDirty()},500),this.isTextHighlightOn){clearTimeout(this._blinkTimeout);const l=e.measureText(i.substring(this._startHighlightIndex)).width;let c=this._scrollLeft+this._textWidth-l;this._highlightedText=i.substring(this._startHighlightIndex,this._endHighlightIndex);let u=e.measureText(i.substring(this._startHighlightIndex,this._endHighlightIndex)).width;c<t&&(u=u-(t-c),u||(u=e.measureText(i.charAt(i.length-this._cursorOffset)).width),c=t),e.globalAlpha=this._highligherOpacity,e.fillStyle=this._textHighlightColor,e.fillRect(c,this._currentMeasure.top+(this._currentMeasure.height-this._fontOffset.height)/2,u,this._fontOffset.height),e.globalAlpha=1}}e.restore(),this._thickness&&(this._isFocused?this.focusedColor&&(e.strokeStyle=this.focusedColor):this.color&&(e.strokeStyle=this.color),e.lineWidth=this._thickness,e.strokeRect(this._currentMeasure.left+this._thickness/2,this._currentMeasure.top+this._thickness/2,this._currentMeasure.width-this._thickness,this._currentMeasure.height-this._thickness)),e.restore()}_onPointerDown(e,t,i,s,r){return super._onPointerDown(e,t,i,s,r)?this.isReadOnly?!0:(this._clickedCoordinate=t.x,this.isTextHighlightOn=!1,this._highlightedText="",this._cursorIndex=-1,this._isPointerDown=!0,this._host._capturingControl[i]=this,this._focusedBy=r.event.pointerType,this._host.focusedControl===this?(clearTimeout(this._blinkTimeout),this._markAsDirty(),!0):this._isEnabled?(this._host.focusedControl=this,!0):!1):!1}_onPointerMove(e,t,i,s){this._host.focusedControl===this&&this._isPointerDown&&!this.isReadOnly&&(this._clickedCoordinate=t.x,this._markAsDirty(),this._updateValueFromCursorIndex(this._cursorOffset)),super._onPointerMove(e,t,i,s)}_onPointerUp(e,t,i,s,r){this._isPointerDown=!1,delete this._host._capturingControl[i],super._onPointerUp(e,t,i,s,r)}_beforeRenderText(e){return e}set isTextHighlightOn(e){this._isTextHighlightOn!==e&&(e&&this.onTextHighlightObservable.notifyObservers(this),this._isTextHighlightOn=e)}get isTextHighlightOn(){return this._isTextHighlightOn}dispose(){super.dispose(),this.onBlurObservable.clear(),this.onFocusObservable.clear(),this.onTextChangedObservable.clear(),this.onTextCopyObservable.clear(),this.onTextCutObservable.clear(),this.onTextPasteObservable.clear(),this.onTextHighlightObservable.clear(),this.onKeyboardEventProcessedObservable.clear()}}F([G()],tl.prototype,"promptMessage",void 0),F([G()],tl.prototype,"disableMobilePrompt",void 0),F([G()],tl.prototype,"maxWidth",null),F([G()],tl.prototype,"highligherOpacity",null),F([G()],tl.prototype,"onFocusSelectAll",null),F([G()],tl.prototype,"textHighlightColor",null),F([G()],tl.prototype,"margin",null),F([G()],tl.prototype,"autoStretchWidth",null),F([G()],tl.prototype,"thickness",null),F([G()],tl.prototype,"focusedBackground",null),F([G()],tl.prototype,"background",null),F([G()],tl.prototype,"placeholderColor",null),F([G()],tl.prototype,"placeholderText",null),F([G()],tl.prototype,"deadKey",null),F([G()],tl.prototype,"text",null),F([G()],tl.prototype,"width",null),ve("BABYLON.GUI.InputText",tl);class r1 extends Ih{set clipContent(e){this._clipContent=e;for(const t in this._cells)this._cells[t].clipContent=e}get clipContent(){return this._clipContent}set clipChildren(e){this._clipChildren=e;for(const t in this._cells)this._cells[t].clipChildren=e}get clipChildren(){return this._clipChildren}get columnCount(){return this._columnDefinitions.length}get rowCount(){return this._rowDefinitions.length}get children(){return this._childControls}get cells(){return this._cells}getRowDefinition(e){return e<0||e>=this._rowDefinitions.length?null:this._rowDefinitions[e]}getColumnDefinition(e){return e<0||e>=this._columnDefinitions.length?null:this._columnDefinitions[e]}addRowDefinition(e,t=!1){return this._rowDefinitions.push(new Ps(e,t?Ps.UNITMODE_PIXEL:Ps.UNITMODE_PERCENTAGE)),this._rowDefinitionObservers.push(this._rowDefinitions[this.rowCount-1].onChangedObservable.add(()=>this._markAsDirty())),this._markAsDirty(),this}addColumnDefinition(e,t=!1){return this._columnDefinitions.push(new Ps(e,t?Ps.UNITMODE_PIXEL:Ps.UNITMODE_PERCENTAGE)),this._columnDefinitionObservers.push(this._columnDefinitions[this.columnCount-1].onChangedObservable.add(()=>this._markAsDirty())),this._markAsDirty(),this}setRowDefinition(e,t,i=!1){if(e<0||e>=this._rowDefinitions.length)return this;const s=this._rowDefinitions[e];return s&&s.isPixel===i&&s.value===t?this:(this._rowDefinitions[e].onChangedObservable.remove(this._rowDefinitionObservers[e]),this._rowDefinitions[e]=new Ps(t,i?Ps.UNITMODE_PIXEL:Ps.UNITMODE_PERCENTAGE),this._rowDefinitionObservers[e]=this._rowDefinitions[e].onChangedObservable.add(()=>this._markAsDirty()),this._markAsDirty(),this)}setColumnDefinition(e,t,i=!1){if(e<0||e>=this._columnDefinitions.length)return this;const s=this._columnDefinitions[e];return s&&s.isPixel===i&&s.value===t?this:(this._columnDefinitions[e].onChangedObservable.remove(this._columnDefinitionObservers[e]),this._columnDefinitions[e]=new Ps(t,i?Ps.UNITMODE_PIXEL:Ps.UNITMODE_PERCENTAGE),this._columnDefinitionObservers[e]=this._columnDefinitions[e].onChangedObservable.add(()=>this._markAsDirty()),this._markAsDirty(),this)}getChildrenAt(e,t){const i=this._cells[`${e}:${t}`];return i?i.children:null}getChildCellInfo(e){return e._tag}_removeCell(e,t){if(e){super.removeControl(e);for(const i of e.children){const s=this._childControls.indexOf(i);s!==-1&&this._childControls.splice(s,1)}delete this._cells[t]}}_offsetCell(e,t){if(this._cells[t]){this._cells[e]=this._cells[t];for(const i of this._cells[e].children)i._tag=e;delete this._cells[t]}}removeColumnDefinition(e){if(e<0||e>=this._columnDefinitions.length)return this;for(let t=0;t<this._rowDefinitions.length;t++){const i=`${t}:${e}`,s=this._cells[i];this._removeCell(s,i)}for(let t=0;t<this._rowDefinitions.length;t++)for(let i=e+1;i<this._columnDefinitions.length;i++){const s=`${t}:${i-1}`,r=`${t}:${i}`;this._offsetCell(s,r)}return this._columnDefinitions[e].onChangedObservable.remove(this._columnDefinitionObservers[e]),this._columnDefinitions.splice(e,1),this._columnDefinitionObservers.splice(e,1),this._markAsDirty(),this}removeRowDefinition(e){if(e<0||e>=this._rowDefinitions.length)return this;for(let t=0;t<this._columnDefinitions.length;t++){const i=`${e}:${t}`,s=this._cells[i];this._removeCell(s,i)}for(let t=0;t<this._columnDefinitions.length;t++)for(let i=e+1;i<this._rowDefinitions.length;i++){const s=`${i-1}:${t}`,r=`${i}:${t}`;this._offsetCell(s,r)}return this._rowDefinitions[e].onChangedObservable.remove(this._rowDefinitionObservers[e]),this._rowDefinitions.splice(e,1),this._rowDefinitionObservers.splice(e,1),this._markAsDirty(),this}addControl(e,t=0,i=0){if(this._rowDefinitions.length===0&&this.addRowDefinition(1,!1),this._columnDefinitions.length===0&&this.addColumnDefinition(1,!1),this._childControls.indexOf(e)!==-1)return Le.Warn(`Control (Name:${e.name}, UniqueId:${e.uniqueId}) is already associated with this grid. You must remove it before reattaching it`),this;const s=Math.min(t,this._rowDefinitions.length-1),r=Math.min(i,this._columnDefinitions.length-1),n=`${s}:${r}`;let o=this._cells[n];return o||(o=new Ih(n),this._cells[n]=o,o.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,o.verticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP,o.clipContent=this.clipContent,o.clipChildren=this.clipChildren,super.addControl(o)),o.addControl(e),this._childControls.push(e),e._tag=n,e.parent=this,this._markAsDirty(),this}removeControl(e){const t=this._childControls.indexOf(e);t!==-1&&this._childControls.splice(t,1);const i=this._cells[e._tag];return i&&(i.removeControl(e),e._tag=null),this._markAsDirty(),this}constructor(e){super(e),this.name=e,this._rowDefinitions=new Array,this._rowDefinitionObservers=[],this._columnDefinitions=new Array,this._columnDefinitionObservers=[],this._cells={},this._childControls=new Array}_getTypeName(){return"Grid"}_getGridDefinitions(e){const t=[],i=[],s=[],r=[];let n=this._currentMeasure.width,o=0,l=this._currentMeasure.height,c=0,u=0;for(const m of this._rowDefinitions){if(m.isPixel){const _=m.getValue(this._host);l-=_,i[u]=_}else c+=m.value;u++}let f=0;u=0;for(const m of this._rowDefinitions){if(r.push(f),m.isPixel)f+=m.getValue(this._host);else{const _=Math.round(m.value/c*l);f+=_,i[u]=_}u++}u=0;for(const m of this._columnDefinitions){if(m.isPixel){const _=m.getValue(this._host);n-=_,t[u]=_}else o+=m.value;u++}let p=0;u=0;for(const m of this._columnDefinitions){if(s.push(p),m.isPixel)p+=m.getValue(this._host);else{const _=Math.round(m.value/o*n);p+=_,t[u]=_}u++}e(s,r,t,i)}_additionalProcessing(e,t){this._getGridDefinitions((i,s,r,n)=>{for(const o in this._cells){if(!Object.prototype.hasOwnProperty.call(this._cells,o))continue;const l=o.split(":"),c=parseInt(l[0]),u=parseInt(l[1]),f=this._cells[o];f.leftInPixels=i[u],f.topInPixels=s[c],f.widthInPixels=r[u],f.heightInPixels=n[c],f._left.ignoreAdaptiveScaling=!0,f._top.ignoreAdaptiveScaling=!0,f._width.ignoreAdaptiveScaling=!0,f._height.ignoreAdaptiveScaling=!0}}),super._additionalProcessing(e,t)}_flagDescendantsAsMatrixDirty(){for(const e in this._cells){if(!Object.prototype.hasOwnProperty.call(this._cells,e))continue;this._cells[e]._markMatrixAsDirty()}}_renderHighlightSpecific(e){super._renderHighlightSpecific(e),this._getGridDefinitions((t,i,s,r)=>{for(let n=0;n<t.length;n++){const o=this._currentMeasure.left+t[n]+s[n];e.beginPath(),e.moveTo(o,this._currentMeasure.top),e.lineTo(o,this._currentMeasure.top+this._currentMeasure.height),e.stroke()}for(let n=0;n<i.length;n++){const o=this._currentMeasure.top+i[n]+r[n];e.beginPath(),e.moveTo(this._currentMeasure.left,o),e.lineTo(this._currentMeasure.left+this._currentMeasure.width,o),e.stroke()}}),e.restore()}dispose(){super.dispose();for(const e of this._childControls)e.dispose();for(let e=0;e<this._rowDefinitions.length;e++)this._rowDefinitions[e].onChangedObservable.remove(this._rowDefinitionObservers[e]);for(let e=0;e<this._columnDefinitions.length;e++)this._columnDefinitions[e].onChangedObservable.remove(this._columnDefinitionObservers[e]);this._rowDefinitionObservers.length=0,this._rowDefinitions.length=0,this._columnDefinitionObservers.length=0,this._columnDefinitions.length=0,this._cells={},this._childControls.length=0}serialize(e,t){if(super.serialize(e,t),!(!this.isSerializable&&!t)){e.columnCount=this.columnCount,e.rowCount=this.rowCount,e.columns=[],e.rows=[],e.tags=[];for(let i=0;i<this.columnCount;++i){const s=this.getColumnDefinition(i),r={value:s==null?void 0:s.getValue(this.host),unit:s==null?void 0:s.unit};e.columns.push(r)}for(let i=0;i<this.rowCount;++i){const s=this.getRowDefinition(i),r={value:s==null?void 0:s.getValue(this.host),unit:s==null?void 0:s.unit};e.rows.push(r)}this.children.forEach(i=>{e.tags.push(i._tag)})}}_parseFromContent(e,t){super._parseFromContent(e,t);const i=[];this.children.forEach(s=>{i.push(s)}),this.removeRowDefinition(0),this.removeColumnDefinition(0);for(let s=0;s<e.columnCount;++s){const r=e.columns[s].value,n=e.columns[s].unit;this.addColumnDefinition(r,n===1)}for(let s=0;s<e.rowCount;++s){const r=e.rows[s].value,n=e.rows[s].unit;this.addRowDefinition(r,n===1)}for(let s=0;s<i.length;++s){const r=e.tags[s];let n=parseInt(r.substring(0,r.search(":")));isNaN(n)&&(n=0);let o=parseInt(r.substring(r.search(":")+1));isNaN(o)&&(o=0),this.addControl(i[s],n,o)}}}F([G()],r1.prototype,"clipContent",null),ve("BABYLON.GUI.Grid",r1);class s2 extends Lt{get value(){return this._value}set value(e){this._value.equals(e)||(this._value.copyFrom(e),this._value.toHSVToRef(this._tmpColor),this._h=this._tmpColor.r,this._s=Math.max(this._tmpColor.g,1e-5),this._v=Math.max(this._tmpColor.b,1e-5),this._markAsDirty(),this._value.r<=s2._Epsilon&&(this._value.r=0),this._value.g<=s2._Epsilon&&(this._value.g=0),this._value.b<=s2._Epsilon&&(this._value.b=0),this._value.r>=1-s2._Epsilon&&(this._value.r=1),this._value.g>=1-s2._Epsilon&&(this._value.g=1),this._value.b>=1-s2._Epsilon&&(this._value.b=1),this.onValueChangedObservable.notifyObservers(this._value))}get width(){return this._width.toString(this._host)}set width(e){this._width.toString(this._host)!==e&&this._width.fromString(e)&&(this._width.getValue(this._host)===0&&(e="1px",this._width.fromString(e)),this._height.fromString(e),this._markAsDirty())}get height(){return this._height.toString(this._host)}set height(e){this._height.toString(this._host)!==e&&this._height.fromString(e)&&(this._height.getValue(this._host)===0&&(e="1px",this._height.fromString(e)),this._width.fromString(e),this._markAsDirty())}get size(){return this.width}set size(e){this.width=e}constructor(e){super(e),this.name=e,this._value=Pe.Red(),this._tmpColor=new Pe,this._pointerStartedOnSquare=!1,this._pointerStartedOnWheel=!1,this._squareLeft=0,this._squareTop=0,this._squareSize=0,this._h=360,this._s=1,this._v=1,this._lastPointerDownId=-1,this.onValueChangedObservable=new xe,this._pointerIsDown=!1,this.value=new Pe(.88,.1,.1),this.size="200px",this.isPointerBlocker=!0}_getTypeName(){return"ColorPicker"}_preMeasure(e){e.width<e.height?this._currentMeasure.height=e.width:this._currentMeasure.width=e.height}_updateSquareProps(){const e=Math.min(this._currentMeasure.width,this._currentMeasure.height)*.5,t=e*.2,s=(e-t)*2/Math.sqrt(2),r=e-s*.5;this._squareLeft=this._currentMeasure.left+r,this._squareTop=this._currentMeasure.top+r,this._squareSize=s}_drawGradientSquare(e,t,i,s,r,n){const o=n.createLinearGradient(t,i,s+t,i);o.addColorStop(0,"#fff"),o.addColorStop(1,"hsl("+e+", 100%, 50%)"),n.fillStyle=o,n.fillRect(t,i,s,r);const l=n.createLinearGradient(t,i,t,r+i);l.addColorStop(0,"rgba(0,0,0,0)"),l.addColorStop(1,"#000"),n.fillStyle=l,n.fillRect(t,i,s,r)}_drawCircle(e,t,i,s){s.beginPath(),s.arc(e,t,i+1,0,2*Math.PI,!1),s.lineWidth=3,s.strokeStyle="#333333",s.stroke(),s.beginPath(),s.arc(e,t,i,0,2*Math.PI,!1),s.lineWidth=3,s.strokeStyle="#ffffff",s.stroke()}_createColorWheelCanvas(e,t){const i=ei.LastCreatedEngine;if(!i)throw new Error("Invalid engine. Unable to create a canvas.");const s=i.createCanvas(e*2,e*2),r=s.getContext("2d"),n=r.getImageData(0,0,e*2,e*2),o=n.data,l=this._tmpColor,c=e*e,u=e-t,f=u*u;for(let p=-e;p<e;p++)for(let m=-e;m<e;m++){const _=p*p+m*m;if(_>c||_<f)continue;const d=Math.sqrt(_),h=Math.atan2(m,p);Pe.HSVtoRGBToRef(h*180/Math.PI+180,d/e,1,l);const x=(p+e+(m+e)*2*e)*4;o[x]=l.r*255,o[x+1]=l.g*255,o[x+2]=l.b*255;let A=(d-u)/(e-u),S=.2;const E=.2,b=.04,M=50,T=150;e<M?S=E:e>T?S=b:S=(b-E)*(e-M)/(T-M)+E,A=(d-u)/(e-u),A<S?o[x+3]=255*(A/S):A>1-S?o[x+3]=255*(1-(A-(1-S))/S):o[x+3]=255}return r.putImageData(n,0,0),s}_draw(e){e.save(),this._applyStates(e);const t=Math.min(this._currentMeasure.width,this._currentMeasure.height)*.5,i=t*.2,s=this._currentMeasure.left,r=this._currentMeasure.top;(!this._colorWheelCanvas||this._colorWheelCanvas.width!=t*2)&&(this._colorWheelCanvas=this._createColorWheelCanvas(t,i)),this._updateSquareProps(),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY,e.fillRect(this._squareLeft,this._squareTop,this._squareSize,this._squareSize)),e.drawImage(this._colorWheelCanvas,s,r),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0),this._drawGradientSquare(this._h,this._squareLeft,this._squareTop,this._squareSize,this._squareSize,e);let n=this._squareLeft+this._squareSize*this._s,o=this._squareTop+this._squareSize*(1-this._v);this._drawCircle(n,o,t*.04,e);const l=t-i*.5;n=s+t+Math.cos((this._h-180)*Math.PI/180)*l,o=r+t+Math.sin((this._h-180)*Math.PI/180)*l,this._drawCircle(n,o,i*.35,e),e.restore()}_updateValueFromPointer(e,t){if(this._pointerStartedOnWheel){const i=Math.min(this._currentMeasure.width,this._currentMeasure.height)*.5,s=i+this._currentMeasure.left,r=i+this._currentMeasure.top;this._h=Math.atan2(t-r,e-s)*180/Math.PI+180}else this._pointerStartedOnSquare&&(this._updateSquareProps(),this._s=(e-this._squareLeft)/this._squareSize,this._v=1-(t-this._squareTop)/this._squareSize,this._s=Math.min(this._s,1),this._s=Math.max(this._s,s2._Epsilon),this._v=Math.min(this._v,1),this._v=Math.max(this._v,s2._Epsilon));Pe.HSVtoRGBToRef(this._h,this._s,this._v,this._tmpColor),this.value=this._tmpColor}_isPointOnSquare(e,t){this._updateSquareProps();const i=this._squareLeft,s=this._squareTop,r=this._squareSize;return e>=i&&e<=i+r&&t>=s&&t<=s+r}_isPointOnWheel(e,t){const i=Math.min(this._currentMeasure.width,this._currentMeasure.height)*.5,s=i+this._currentMeasure.left,r=i+this._currentMeasure.top,n=i*.2,o=i-n,l=i*i,c=o*o,u=e-s,f=t-r,p=u*u+f*f;return p<=l&&p>=c}_onPointerDown(e,t,i,s,r){if(!super._onPointerDown(e,t,i,s,r))return!1;if(this.isReadOnly)return!0;this._pointerIsDown=!0,this._pointerStartedOnSquare=!1,this._pointerStartedOnWheel=!1,this._invertTransformMatrix.transformCoordinates(t.x,t.y,this._transformedPosition);const n=this._transformedPosition.x,o=this._transformedPosition.y;return this._isPointOnSquare(n,o)?this._pointerStartedOnSquare=!0:this._isPointOnWheel(n,o)&&(this._pointerStartedOnWheel=!0),this._updateValueFromPointer(n,o),this._host._capturingControl[i]=this,this._lastPointerDownId=i,!0}_onPointerMove(e,t,i,s){if(i==this._lastPointerDownId){if(!this.isReadOnly){this._invertTransformMatrix.transformCoordinates(t.x,t.y,this._transformedPosition);const r=this._transformedPosition.x,n=this._transformedPosition.y;this._pointerIsDown&&this._updateValueFromPointer(r,n)}super._onPointerMove(e,t,i,s)}}_onPointerUp(e,t,i,s,r,n){this._pointerIsDown=!1,delete this._host._capturingControl[i],super._onPointerUp(e,t,i,s,r,n)}_onCanvasBlur(){this._forcePointerUp(),super._onCanvasBlur()}static ShowPickerDialogAsync(e,t){return new Promise(i=>{t.pickerWidth=t.pickerWidth||"640px",t.pickerHeight=t.pickerHeight||"400px",t.headerHeight=t.headerHeight||"35px",t.lastColor=t.lastColor||"#000000",t.swatchLimit=t.swatchLimit||20,t.numSwatchesPerLine=t.numSwatchesPerLine||10;const s=t.swatchLimit/t.numSwatchesPerLine,r=parseFloat(t.pickerWidth)/t.numSwatchesPerLine,n=Math.floor(r*.25),o=n*(t.numSwatchesPerLine+1),l=Math.floor((parseFloat(t.pickerWidth)-o)/t.numSwatchesPerLine),c=l*s+n*(s+1),u=(parseInt(t.pickerHeight)+c+Math.floor(l*.25)).toString()+"px",f="#c0c0c0",p="#535353",m="#414141",_="515151",d="#555555",h="#454545",x="#404040",A=Pe.FromHexString("#dddddd"),S=A.r+A.g+A.b,E="#aaaaaa",b="#ffffff";let M,T;const O=["R","G","B"],R="#454545",I="#f0f0f0";let N,w,D=!1,k,Y,V;const ee=new r1;if(ee.name="Dialog Container",ee.width=t.pickerWidth,t.savedColors){ee.height=u;const hi=parseInt(t.pickerHeight)/parseInt(u);ee.addRowDefinition(hi,!1),ee.addRowDefinition(1-hi,!1)}else ee.height=t.pickerHeight,ee.addRowDefinition(1,!1);if(e.addControl(ee),t.savedColors){w=new r1,w.name="Swatch Drawer",w.verticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP,w.background=p,w.width=t.pickerWidth;const hi=t.savedColors.length/t.numSwatchesPerLine;let Oi;hi==0?Oi=0:Oi=hi+1,w.height=(l*hi+Oi*n).toString()+"px",w.top=Math.floor(l*.25).toString()+"px";for(let li=0;li<Math.ceil(t.savedColors.length/t.numSwatchesPerLine)*2+1;li++)li%2!=0?w.addRowDefinition(l,!0):w.addRowDefinition(n,!0);for(let li=0;li<t.numSwatchesPerLine*2+1;li++)li%2!=0?w.addColumnDefinition(l,!0):w.addColumnDefinition(n,!0);ee.addControl(w,1,0)}const K=new r1;K.name="Picker Panel",K.height=t.pickerHeight;const ie=parseInt(t.headerHeight)/parseInt(t.pickerHeight),ne=[ie,1-ie];K.addRowDefinition(ne[0],!1),K.addRowDefinition(ne[1],!1),ee.addControl(K,0,0);const te=new cu;te.name="Dialogue Header Bar",te.background="#cccccc",te.thickness=0,K.addControl(te,0,0);const W=C5.CreateSimpleButton("closeButton","a");W.fontFamily="coreglyphs";const Q=Pe.FromHexString(te.background),re=new Pe(1-Q.r,1-Q.g,1-Q.b);W.color=re.toHexString(),W.fontSize=Math.floor(parseInt(t.headerHeight)*.6),W.textBlock.textVerticalAlignment=Lt.VERTICAL_ALIGNMENT_CENTER,W.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_RIGHT,W.height=W.width=t.headerHeight,W.background=te.background,W.thickness=0,W.pointerDownAnimation=()=>{},W.pointerUpAnimation=()=>{W.background=te.background},W.pointerEnterAnimation=()=>{W.color=te.background,W.background="red"},W.pointerOutAnimation=()=>{W.color=re.toHexString(),W.background=te.background},W.onPointerClickObservable.add(()=>{bs(xt.background)}),K.addControl(W,0,0);const oe=new r1;oe.name="Dialogue Body",oe.background=p;const X=[.4375,.5625];oe.addRowDefinition(1,!1),oe.addColumnDefinition(X[0],!1),oe.addColumnDefinition(X[1],!1),K.addControl(oe,1,0);const se=new r1;se.name="Picker Grid",se.addRowDefinition(.85,!1),se.addRowDefinition(.15,!1),oe.addControl(se,0,0);const ue=new s2;ue.name="GUI Color Picker",t.pickerHeight<t.pickerWidth?ue.width=.89:ue.height=.89,ue.value=Pe.FromHexString(t.lastColor),ue.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_CENTER,ue.verticalAlignment=Lt.VERTICAL_ALIGNMENT_CENTER,ue.onPointerDownObservable.add(()=>{V=ue.name,Y="",oi(!1)}),ue.onValueChangedObservable.add(function(hi){V==ue.name&&Ot(hi,ue.name)}),se.addControl(ue,0,0);const he=new r1;he.name="Dialogue Right Half",he.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT;const fe=[.514,.486];he.addRowDefinition(fe[0],!1),he.addRowDefinition(fe[1],!1),oe.addControl(he,1,1);const Ae=new r1;Ae.name="Swatches and Buttons";const Se=[.417,.583];Ae.addRowDefinition(1,!1),Ae.addColumnDefinition(Se[0],!1),Ae.addColumnDefinition(Se[1],!1),he.addControl(Ae,0,0);const we=new r1;we.name="New and Current Swatches";const ke=[.04,.16,.64,.16];we.addRowDefinition(ke[0],!1),we.addRowDefinition(ke[1],!1),we.addRowDefinition(ke[2],!1),we.addRowDefinition(ke[3],!1),Ae.addControl(we,0,0);const st=new r1;st.name="Active Swatches",st.width=.67,st.addRowDefinition(.5,!1),st.addRowDefinition(.5,!1),we.addControl(st,2,0);const Ve=Math.floor(parseInt(t.pickerWidth)*X[1]*Se[0]*.11),Ke=Math.floor(parseInt(t.pickerHeight)*ne[1]*fe[0]*ke[1]*.5);let ct;t.pickerWidth>t.pickerHeight?ct=Ke:ct=Ve;const nt=new ia;nt.text="new",nt.name="New Color Label",nt.color=f,nt.fontSize=ct,we.addControl(nt,1,0);const at=new cu;at.name="New Color Swatch",at.background=t.lastColor,at.thickness=0,st.addControl(at,0,0);const xt=C5.CreateSimpleButton("currentSwatch","");xt.background=t.lastColor,xt.thickness=0,xt.onPointerClickObservable.add(()=>{const hi=Pe.FromHexString(xt.background);Ot(hi,xt.name),oi(!1)}),xt.pointerDownAnimation=()=>{},xt.pointerUpAnimation=()=>{},xt.pointerEnterAnimation=()=>{},xt.pointerOutAnimation=()=>{},st.addControl(xt,1,0);const Qe=new cu;Qe.name="Swatch Outline",Qe.width=.67,Qe.thickness=2,Qe.color=x,Qe.isHitTestVisible=!1,we.addControl(Qe,2,0);const kt=new ia;kt.name="Current Color Label",kt.text="current",kt.color=f,kt.fontSize=ct,we.addControl(kt,3,0);const ot=new r1;ot.name="Button Grid",ot.height=.8;const At=1/3;ot.addRowDefinition(At,!1),ot.addRowDefinition(At,!1),ot.addRowDefinition(At,!1),Ae.addControl(ot,0,1);const Me=Math.floor(parseInt(t.pickerWidth)*X[1]*Se[1]*.67).toString()+"px",je=Math.floor(parseInt(t.pickerHeight)*ne[1]*fe[0]*(parseFloat(ot.height.toString())/100)*At*.7).toString()+"px";parseFloat(Me)>parseFloat(je)?M=Math.floor(parseFloat(je)*.45):M=Math.floor(parseFloat(Me)*.11);const rt=C5.CreateSimpleButton("butOK","OK");rt.width=Me,rt.height=je,rt.verticalAlignment=Lt.VERTICAL_ALIGNMENT_CENTER,rt.thickness=2,rt.color=f,rt.fontSize=M,rt.background=p,rt.onPointerEnterObservable.add(()=>{rt.background=m}),rt.onPointerOutObservable.add(()=>{rt.background=p}),rt.pointerDownAnimation=()=>{rt.background=_},rt.pointerUpAnimation=()=>{rt.background=m},rt.onPointerClickObservable.add(()=>{oi(!1),bs(at.background)}),ot.addControl(rt,0,0);const yt=C5.CreateSimpleButton("butCancel","Cancel");yt.width=Me,yt.height=je,yt.verticalAlignment=Lt.VERTICAL_ALIGNMENT_CENTER,yt.thickness=2,yt.color=f,yt.fontSize=M,yt.background=p,yt.onPointerEnterObservable.add(()=>{yt.background=m}),yt.onPointerOutObservable.add(()=>{yt.background=p}),yt.pointerDownAnimation=()=>{yt.background=_},yt.pointerUpAnimation=()=>{yt.background=m},yt.onPointerClickObservable.add(()=>{oi(!1),bs(xt.background)}),ot.addControl(yt,1,0),t.savedColors&&(k=C5.CreateSimpleButton("butSave","Save"),k.width=Me,k.height=je,k.verticalAlignment=Lt.VERTICAL_ALIGNMENT_CENTER,k.thickness=2,k.fontSize=M,t.savedColors.length<t.swatchLimit?(k.color=f,k.background=p):os(k,!0),k.onPointerEnterObservable.add(()=>{t.savedColors&&t.savedColors.length<t.swatchLimit&&(k.background=m)}),k.onPointerOutObservable.add(()=>{t.savedColors&&t.savedColors.length<t.swatchLimit&&(k.background=p)}),k.pointerDownAnimation=()=>{t.savedColors&&t.savedColors.length<t.swatchLimit&&(k.background=_)},k.pointerUpAnimation=()=>{t.savedColors&&t.savedColors.length<t.swatchLimit&&(k.background=m)},k.onPointerClickObservable.add(()=>{t.savedColors&&(t.savedColors.length==0&&ki(!0),t.savedColors.length<t.swatchLimit&&ji(at.background,k),oi(!1))}),t.savedColors.length>0&&ki(!0),ot.addControl(k,2,0));const Rt=new r1;Rt.name="Dialog Lower Right",Rt.addRowDefinition(.02,!1),Rt.addRowDefinition(.63,!1),Rt.addRowDefinition(.21,!1),Rt.addRowDefinition(.14,!1),he.addControl(Rt,1,0);const Nt=Pe.FromHexString(t.lastColor),Kt=new r1;Kt.name="RGB Values",Kt.width=.82,Kt.verticalAlignment=Lt.VERTICAL_ALIGNMENT_CENTER,Kt.addRowDefinition(1/3,!1),Kt.addRowDefinition(1/3,!1),Kt.addRowDefinition(1/3,!1),Kt.addColumnDefinition(.1,!1),Kt.addColumnDefinition(.2,!1),Kt.addColumnDefinition(.7,!1),Rt.addControl(Kt,1,0);for(let hi=0;hi<O.length;hi++){const Oi=new ia;Oi.text=O[hi],Oi.color=f,Oi.fontSize=M,Kt.addControl(Oi,hi,0)}const si=new tl;si.width=.83,si.height=.72,si.name="rIntField",si.fontSize=M,si.text=(Nt.r*255).toString(),si.color=I,si.background=R,si.onFocusObservable.add(()=>{V=si.name,Y=si.text,oi(!1)}),si.onBlurObservable.add(()=>{si.text==""&&(si.text="0"),mt(si,"r"),V==si.name&&(V="")}),si.onTextChangedObservable.add(()=>{V==si.name&&mt(si,"r")}),Kt.addControl(si,0,1);const Pi=new tl;Pi.width=.83,Pi.height=.72,Pi.name="gIntField",Pi.fontSize=M,Pi.text=(Nt.g*255).toString(),Pi.color=I,Pi.background=R,Pi.onFocusObservable.add(()=>{V=Pi.name,Y=Pi.text,oi(!1)}),Pi.onBlurObservable.add(()=>{Pi.text==""&&(Pi.text="0"),mt(Pi,"g"),V==Pi.name&&(V="")}),Pi.onTextChangedObservable.add(()=>{V==Pi.name&&mt(Pi,"g")}),Kt.addControl(Pi,1,1);const gi=new tl;gi.width=.83,gi.height=.72,gi.name="bIntField",gi.fontSize=M,gi.text=(Nt.b*255).toString(),gi.color=I,gi.background=R,gi.onFocusObservable.add(()=>{V=gi.name,Y=gi.text,oi(!1)}),gi.onBlurObservable.add(()=>{gi.text==""&&(gi.text="0"),mt(gi,"b"),V==gi.name&&(V="")}),gi.onTextChangedObservable.add(()=>{V==gi.name&&mt(gi,"b")}),Kt.addControl(gi,2,1);const bi=new tl;bi.width=.95,bi.height=.72,bi.name="rDecField",bi.fontSize=M,bi.text=Nt.r.toString(),bi.color=I,bi.background=R,bi.onFocusObservable.add(()=>{V=bi.name,Y=bi.text,oi(!1)}),bi.onBlurObservable.add(()=>{(parseFloat(bi.text)==0||bi.text=="")&&(bi.text="0",Ye(bi,"r")),V==bi.name&&(V="")}),bi.onTextChangedObservable.add(()=>{V==bi.name&&Ye(bi,"r")}),Kt.addControl(bi,0,2);const wi=new tl;wi.width=.95,wi.height=.72,wi.name="gDecField",wi.fontSize=M,wi.text=Nt.g.toString(),wi.color=I,wi.background=R,wi.onFocusObservable.add(()=>{V=wi.name,Y=wi.text,oi(!1)}),wi.onBlurObservable.add(()=>{(parseFloat(wi.text)==0||wi.text=="")&&(wi.text="0",Ye(wi,"g")),V==wi.name&&(V="")}),wi.onTextChangedObservable.add(()=>{V==wi.name&&Ye(wi,"g")}),Kt.addControl(wi,1,2);const Ni=new tl;Ni.width=.95,Ni.height=.72,Ni.name="bDecField",Ni.fontSize=M,Ni.text=Nt.b.toString(),Ni.color=I,Ni.background=R,Ni.onFocusObservable.add(()=>{V=Ni.name,Y=Ni.text,oi(!1)}),Ni.onBlurObservable.add(()=>{(parseFloat(Ni.text)==0||Ni.text=="")&&(Ni.text="0",Ye(Ni,"b")),V==Ni.name&&(V="")}),Ni.onTextChangedObservable.add(()=>{V==Ni.name&&Ye(Ni,"b")}),Kt.addControl(Ni,2,2);const qt=new r1;qt.name="Hex Value",qt.width=.82,qt.addRowDefinition(1,!1),qt.addColumnDefinition(.1,!1),qt.addColumnDefinition(.9,!1),Rt.addControl(qt,2,0);const ci=new ia;ci.text="#",ci.color=f,ci.fontSize=M,qt.addControl(ci,0,0);const qe=new tl;qe.width=.96,qe.height=.72,qe.name="hexField",qe.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_CENTER,qe.fontSize=M;const ri=t.lastColor.split("#");qe.text=ri[1],qe.color=I,qe.background=R,qe.onFocusObservable.add(()=>{V=qe.name,Y=qe.text,oi(!1)}),qe.onBlurObservable.add(()=>{if(qe.text.length==3){const hi=qe.text.split("");qe.text=hi[0]+hi[0]+hi[1]+hi[1]+hi[2]+hi[2]}qe.text==""&&(qe.text="000000",Ot(Pe.FromHexString(qe.text),"b")),V==qe.name&&(V="")}),qe.onTextChangedObservable.add(()=>{let hi=qe.text;const Oi=/[^0-9A-F]/i.test(hi);if((qe.text.length>6||Oi)&&V==qe.name)qe.text=Y;else{if(qe.text.length<6){const li=6-qe.text.length;for(let Xs=0;Xs<li;Xs++)hi="0"+hi}if(qe.text.length==3){const li=qe.text.split("");hi=li[0]+li[0]+li[1]+li[1]+li[2]+li[2]}hi="#"+hi,V==qe.name&&(Y=qe.text,Ot(Pe.FromHexString(hi),qe.name))}}),qt.addControl(qe,0,1),t.savedColors&&t.savedColors.length>0&&ji("",k);function Ot(hi,Oi){V=Oi;const li=hi.toHexString();if(at.background=li,si.name!=V&&(si.text=Math.floor(hi.r*255).toString()),Pi.name!=V&&(Pi.text=Math.floor(hi.g*255).toString()),gi.name!=V&&(gi.text=Math.floor(hi.b*255).toString()),bi.name!=V&&(bi.text=hi.r.toString()),wi.name!=V&&(wi.text=hi.g.toString()),Ni.name!=V&&(Ni.text=hi.b.toString()),qe.name!=V){const Xs=li.split("#");qe.text=Xs[1]}ue.name!=V&&(ue.value=hi)}function mt(hi,Oi){let li=hi.text;if(/[^0-9]/g.test(li)){hi.text=Y;return}else li!=""&&(Math.floor(parseInt(li))<0?li="0":Math.floor(parseInt(li))>255?li="255":isNaN(parseInt(li))&&(li="0")),V==hi.name&&(Y=li);if(li!=""){li=parseInt(li).toString(),hi.text=li;const ks=Pe.FromHexString(at.background);V==hi.name&&(Oi=="r"?Ot(new Pe(parseInt(li)/255,ks.g,ks.b),hi.name):Oi=="g"?Ot(new Pe(ks.r,parseInt(li)/255,ks.b),hi.name):Ot(new Pe(ks.r,ks.g,parseInt(li)/255),hi.name))}}function Ye(hi,Oi){let li=hi.text;if(/[^0-9.]/g.test(li)){hi.text=Y;return}else li!=""&&li!="."&&parseFloat(li)!=0&&(parseFloat(li)<0?li="0.0":parseFloat(li)>1?li="1.0":isNaN(parseFloat(li))&&(li="0.0")),V==hi.name&&(Y=li);li!=""&&li!="."&&parseFloat(li)!=0?(li=parseFloat(li).toString(),hi.text=li):li="0.0";const ks=Pe.FromHexString(at.background);V==hi.name&&(Oi=="r"?Ot(new Pe(parseFloat(li),ks.g,ks.b),hi.name):Oi=="g"?Ot(new Pe(ks.r,parseFloat(li),ks.b),hi.name):Ot(new Pe(ks.r,ks.g,parseFloat(li)),hi.name))}function Tt(hi){t.savedColors&&t.savedColors.splice(hi,1),t.savedColors&&t.savedColors.length==0&&(ki(!1),D=!1)}function Ut(){if(t.savedColors&&t.savedColors[N]){let hi;D?hi="b":hi="";const Oi=C5.CreateSimpleButton("Swatch_"+N,hi);Oi.fontFamily="coreglyphs";const li=Pe.FromHexString(t.savedColors[N]);li.r+li.g+li.b>S?Oi.color=E:Oi.color=b,Oi.fontSize=Math.floor(l*.7),Oi.textBlock.verticalAlignment=Lt.VERTICAL_ALIGNMENT_CENTER,Oi.height=Oi.width=l.toString()+"px",Oi.background=t.savedColors[N],Oi.thickness=2;const ks=N;return Oi.pointerDownAnimation=()=>{Oi.thickness=4},Oi.pointerUpAnimation=()=>{Oi.thickness=3},Oi.pointerEnterAnimation=()=>{Oi.thickness=3},Oi.pointerOutAnimation=()=>{Oi.thickness=2},Oi.onPointerClickObservable.add(()=>{D?(Tt(ks),ji("",k)):t.savedColors&&Ot(Pe.FromHexString(t.savedColors[ks]),Oi.name)}),Oi}else return null}function oi(hi){hi!==void 0&&(D=hi);let Oi;if(D){for(let li=0;li<w.children.length;li++)Oi=w.children[li],Oi.textBlock.text="b";T!==void 0&&(T.textBlock.text="Done")}else{for(let li=0;li<w.children.length;li++)Oi=w.children[li],Oi.textBlock.text="";T!==void 0&&(T.textBlock.text="Edit")}}function ji(hi,Oi){if(t.savedColors){hi!=""&&t.savedColors.push(hi),N=0,w.clearControls();const li=Math.ceil(t.savedColors.length/t.numSwatchesPerLine);let Xs;if(li==0?Xs=0:Xs=li+1,w.rowCount!=li+Xs){const ks=w.rowCount;for(let hr=0;hr<ks;hr++)w.removeRowDefinition(0);for(let hr=0;hr<li+Xs;hr++)hr%2?w.addRowDefinition(l,!0):w.addRowDefinition(n,!0)}w.height=(l*li+Xs*n).toString()+"px";for(let ks=1,hr=1;ks<li+Xs;ks+=2,hr++){let fr;t.savedColors.length>hr*t.numSwatchesPerLine?fr=t.numSwatchesPerLine:fr=t.savedColors.length-(hr-1)*t.numSwatchesPerLine;const We=Math.min(Math.max(fr,0),t.numSwatchesPerLine);for(let fi=0,zi=1;fi<We;fi++){if(fi>t.numSwatchesPerLine)continue;const ts=Ut();if(ts!=null)w.addControl(ts,ks,zi),zi+=2,N++;else continue}}t.savedColors.length>=t.swatchLimit?os(Oi,!0):os(Oi,!1)}}function ki(hi){hi?(T=C5.CreateSimpleButton("butEdit","Edit"),T.width=Me,T.height=je,T.left=Math.floor(parseInt(Me)*.1).toString()+"px",T.top=(parseFloat(T.left)*-1).toString()+"px",T.verticalAlignment=Lt.VERTICAL_ALIGNMENT_BOTTOM,T.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,T.thickness=2,T.color=f,T.fontSize=M,T.background=p,T.onPointerEnterObservable.add(()=>{T.background=m}),T.onPointerOutObservable.add(()=>{T.background=p}),T.pointerDownAnimation=()=>{T.background=_},T.pointerUpAnimation=()=>{T.background=m},T.onPointerClickObservable.add(()=>{D?D=!1:D=!0,oi()}),se.addControl(T,1,0)):se.removeControl(T)}function os(hi,Oi){Oi?(hi.color=d,hi.background=h):(hi.color=f,hi.background=p)}function bs(hi){t.savedColors&&t.savedColors.length>0?i({savedColors:t.savedColors,pickedColor:hi}):i({pickedColor:hi}),e.removeControl(ee)}})}}s2._Epsilon=1e-6,F([G()],s2.prototype,"value",null),F([G()],s2.prototype,"width",null),F([G()],s2.prototype,"height",null),F([G()],s2.prototype,"size",null),ve("BABYLON.GUI.ColorPicker",s2);class VY extends Ih{get thickness(){return this._thickness}set thickness(e){this._thickness!==e&&(this._thickness=e,this._markAsDirty())}get arc(){return this._arc}set arc(e){this._arc!==e&&(this._arc=e,this._markAsDirty())}constructor(e){super(e),this.name=e,this._thickness=1,this._arc=1}_getTypeName(){return"Ellipse"}_localDraw(e){e.save(),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY),Lt.drawEllipse(this._currentMeasure.left+this._currentMeasure.width/2,this._currentMeasure.top+this._currentMeasure.height/2,this._currentMeasure.width/2-this._thickness/2,this._currentMeasure.height/2-this._thickness/2,this._arc,e),(this._backgroundGradient||this._background)&&(e.fillStyle=this._getBackgroundColor(e),e.fill()),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0),this._thickness&&(this.color&&(e.strokeStyle=this.color),e.lineWidth=this._thickness,e.stroke()),e.restore()}_additionalProcessing(e,t){super._additionalProcessing(e,t),this._measureForChildren.width-=2*this._thickness,this._measureForChildren.height-=2*this._thickness,this._measureForChildren.left+=this._thickness,this._measureForChildren.top+=this._thickness}_clipForChildren(e){Lt.drawEllipse(this._currentMeasure.left+this._currentMeasure.width/2,this._currentMeasure.top+this._currentMeasure.height/2,this._currentMeasure.width/2,this._currentMeasure.height/2,this._arc,e),e.clip()}_renderHighlightSpecific(e){Lt.drawEllipse(this._currentMeasure.left+this._currentMeasure.width/2,this._currentMeasure.top+this._currentMeasure.height/2,this._currentMeasure.width/2-this._highlightLineWidth/2,this._currentMeasure.height/2-this._highlightLineWidth/2,this._arc,e),e.stroke()}}F([G()],VY.prototype,"thickness",null),F([G()],VY.prototype,"arc",null),ve("BABYLON.GUI.Ellipse",VY);class bLe extends C5{constructor(e){super(e),this.name=e,this._unfocusedColor=this.color}_onPointerDown(e,t,i,s,r){return this.isReadOnly||this.focus(),super._onPointerDown(e,t,i,s,r)}}ve("BABYLON.GUI.FocusableButton",bLe);class $L extends tl{get autoStretchHeight(){return this._autoStretchHeight}set autoStretchHeight(e){this._autoStretchHeight!==e&&(this._autoStretchHeight=e,this._markAsDirty())}set height(e){this.fixedRatioMasterIsWidth=!1,this._height.toString(this._host)!==e&&(this._height.fromString(e)&&this._markAsDirty(),this._autoStretchHeight=!1)}get maxHeight(){return this._maxHeight.toString(this._host)}get maxHeightInPixels(){return this._maxHeight.getValueInPixel(this._host,this._cachedParentMeasure.height)}set maxHeight(e){this._maxHeight.toString(this._host)!==e&&this._maxHeight.fromString(e)&&this._markAsDirty()}constructor(e,t=""){super(e),this.name=e,this._textHorizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,this._textVerticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP,this._prevText=this.text,this._lineSpacing=new Ps(0),this._maxHeight=new Ps(1,Ps.UNITMODE_PERCENTAGE,!1),this.onLinesReadyObservable=new xe,this.text=t,this.isPointerBlocker=!0,this.onLinesReadyObservable.add(()=>this._updateCursorPosition()),this._highlightCursorInfo={initialStartIndex:-1,initialRelativeStartIndex:-1,initialLineIndex:-1},this._cursorInfo={globalStartIndex:0,globalEndIndex:0,relativeEndIndex:0,relativeStartIndex:0,currentLineIndex:0}}_getTypeName(){return"InputTextArea"}processKeyboard(e){this.isReadOnly||(this.alternativeProcessKey(e.code,e.key,e),this.onKeyboardEventProcessedObservable.notifyObservers(e))}alternativeProcessKey(e,t,i){if(!(i&&(i.ctrlKey||i.metaKey)&&(t==="c"||t==="v"||t==="x"))){switch(e){case"Period":i&&i.shiftKey&&i.preventDefault();break;case"Backspace":!this._isTextHighlightOn&&this._cursorInfo.globalStartIndex>0&&(this._cursorInfo.globalEndIndex=this._cursorInfo.globalStartIndex,this._cursorInfo.globalStartIndex--),this._prevText=this._textWrapper.text,this._textWrapper.removePart(this._cursorInfo.globalStartIndex,this._cursorInfo.globalEndIndex),this._cursorInfo.globalEndIndex=this._cursorInfo.globalStartIndex,i&&i.preventDefault(),this._blinkIsEven=!1,this._isTextHighlightOn=!1,this._textHasChanged();break;case"Delete":!this._isTextHighlightOn&&this._cursorInfo.globalEndIndex<this.text.length&&(this._cursorInfo.globalEndIndex=this._cursorInfo.globalStartIndex+1),this._prevText=this._textWrapper.text,this._textWrapper.removePart(this._cursorInfo.globalStartIndex,this._cursorInfo.globalEndIndex),this._cursorInfo.globalEndIndex=this._cursorInfo.globalStartIndex,i&&i.preventDefault(),this._blinkIsEven=!1,this._isTextHighlightOn=!1,this._textHasChanged();break;case"NumpadEnter":case"Enter":this._prevText=this._textWrapper.text,this._textWrapper.removePart(this._cursorInfo.globalStartIndex,this._cursorInfo.globalEndIndex,`
`),this._cursorInfo.globalStartIndex++,this._cursorInfo.globalEndIndex=this._cursorInfo.globalStartIndex,this._blinkIsEven=!1,this._isTextHighlightOn=!1,this._textHasChanged();return;case"End":this._cursorInfo.globalStartIndex=this.text.length,this._blinkIsEven=!1,this._isTextHighlightOn=!1,this._markAsDirty();return;case"Home":this._cursorInfo.globalStartIndex=0,this._blinkIsEven=!1,this._isTextHighlightOn=!1,this._markAsDirty();return;case"ArrowLeft":if(this._markAsDirty(),i&&i.shiftKey){(i.ctrlKey||i.metaKey)&&(this._cursorInfo.globalStartIndex-=this._cursorInfo.relativeStartIndex,this._cursorInfo.globalEndIndex=this._highlightCursorInfo.initialStartIndex),this._isTextHighlightOn?this._cursorInfo.globalEndIndex>this._highlightCursorInfo.initialStartIndex?this._cursorInfo.globalEndIndex--:this._cursorInfo.globalStartIndex--:(this._highlightCursorInfo.initialLineIndex=this._cursorInfo.currentLineIndex,this._highlightCursorInfo.initialStartIndex=this._cursorInfo.globalStartIndex,this._highlightCursorInfo.initialRelativeStartIndex=this._cursorInfo.relativeStartIndex,this._cursorInfo.globalEndIndex=this._cursorInfo.globalStartIndex,this._cursorInfo.globalStartIndex--,this._isTextHighlightOn=!0),this._blinkIsEven=!0,i.preventDefault();return}this._isTextHighlightOn?this._cursorInfo.globalEndIndex=this._cursorInfo.globalStartIndex:i&&(i.ctrlKey||i.metaKey)?(this._cursorInfo.globalStartIndex-=this._cursorInfo.relativeStartIndex,i.preventDefault()):this._cursorInfo.globalStartIndex>0&&this._cursorInfo.globalStartIndex--,this._blinkIsEven=!1,this._isTextHighlightOn=!1;return;case"ArrowRight":if(this._markAsDirty(),i&&i.shiftKey){if(i.ctrlKey||i.metaKey){const s=this._lines[this._cursorInfo.currentLineIndex].text.length-this._cursorInfo.relativeEndIndex-1;this._cursorInfo.globalEndIndex+=s,this._cursorInfo.globalStartIndex=this._highlightCursorInfo.initialStartIndex}this._isTextHighlightOn?this._cursorInfo.globalStartIndex<this._highlightCursorInfo.initialStartIndex?this._cursorInfo.globalStartIndex++:this._cursorInfo.globalEndIndex++:(this._highlightCursorInfo.initialLineIndex=this._cursorInfo.currentLineIndex,this._highlightCursorInfo.initialStartIndex=this._cursorInfo.globalStartIndex,this._highlightCursorInfo.initialRelativeStartIndex=this._cursorInfo.relativeStartIndex,this._cursorInfo.globalEndIndex=this._cursorInfo.globalStartIndex,this._cursorInfo.globalEndIndex++,this._isTextHighlightOn=!0),this._blinkIsEven=!0,i.preventDefault();return}if(this._isTextHighlightOn)this._cursorInfo.globalStartIndex=this._cursorInfo.globalEndIndex;else if(i&&(i.ctrlKey||i.metaKey)){const s=this._lines[this._cursorInfo.currentLineIndex].text.length-this._cursorInfo.relativeEndIndex;this._cursorInfo.globalStartIndex+=s}else this._cursorInfo.globalStartIndex<this.text.length&&this._cursorInfo.globalStartIndex++;this._blinkIsEven=!1,this._isTextHighlightOn=!1;return;case"ArrowUp":if(this._blinkIsEven=!1,i&&(i.shiftKey?(this._isTextHighlightOn||(this._highlightCursorInfo.initialLineIndex=this._cursorInfo.currentLineIndex,this._highlightCursorInfo.initialStartIndex=this._cursorInfo.globalStartIndex,this._highlightCursorInfo.initialRelativeStartIndex=this._cursorInfo.relativeStartIndex),this._isTextHighlightOn=!0,this._blinkIsEven=!0):this._isTextHighlightOn=!1,i.preventDefault()),this._cursorInfo.currentLineIndex===0)this._cursorInfo.globalStartIndex=0;else{const s=this._lines[this._cursorInfo.currentLineIndex],r=this._lines[this._cursorInfo.currentLineIndex-1];let n=0,o=0;!this._isTextHighlightOn||this._cursorInfo.currentLineIndex<this._highlightCursorInfo.initialLineIndex?(n=this._cursorInfo.globalStartIndex,o=this._cursorInfo.relativeStartIndex):(n=this._cursorInfo.globalEndIndex,o=this._cursorInfo.relativeEndIndex);const l=s.text.substring(0,o),c=this._contextForBreakLines.measureText(l).width;let u=0,f=0;n-=o,n-=r.text.length+r.lineEnding.length;let p=0;for(;u<c&&p<r.text.length;)n++,p++,f=Math.abs(c-u),u=this._contextForBreakLines.measureText(r.text.substring(0,p)).width;Math.abs(c-u)>f&&p>0&&n--,this._isTextHighlightOn?this._cursorInfo.currentLineIndex<=this._highlightCursorInfo.initialLineIndex?(this._cursorInfo.globalStartIndex=n,this._cursorInfo.globalEndIndex=this._highlightCursorInfo.initialStartIndex,this._cursorInfo.relativeEndIndex=this._highlightCursorInfo.initialRelativeStartIndex):this._cursorInfo.globalEndIndex=n:this._cursorInfo.globalStartIndex=n}this._markAsDirty();return;case"ArrowDown":if(this._blinkIsEven=!1,i&&(i.shiftKey?(this._isTextHighlightOn||(this._highlightCursorInfo.initialLineIndex=this._cursorInfo.currentLineIndex,this._highlightCursorInfo.initialStartIndex=this._cursorInfo.globalStartIndex,this._highlightCursorInfo.initialRelativeStartIndex=this._cursorInfo.relativeStartIndex),this._isTextHighlightOn=!0,this._blinkIsEven=!0):this._isTextHighlightOn=!1,i.preventDefault()),this._cursorInfo.currentLineIndex===this._lines.length-1)this._cursorInfo.globalStartIndex=this.text.length;else{const s=this._lines[this._cursorInfo.currentLineIndex],r=this._lines[this._cursorInfo.currentLineIndex+1];let n=0,o=0;!this._isTextHighlightOn||this._cursorInfo.currentLineIndex<this._highlightCursorInfo.initialLineIndex?(n=this._cursorInfo.globalStartIndex,o=this._cursorInfo.relativeStartIndex):(n=this._cursorInfo.globalEndIndex,o=this._cursorInfo.relativeEndIndex);const l=s.text.substring(0,o),c=this._contextForBreakLines.measureText(l).width;let u=0,f=0;n+=s.text.length-o+s.lineEnding.length;let p=0;for(;u<c&&p<r.text.length;)n++,p++,f=Math.abs(c-u),u=this._contextForBreakLines.measureText(r.text.substring(0,p)).width;Math.abs(c-u)>f&&p>0&&n--,this._isTextHighlightOn?this._cursorInfo.currentLineIndex<this._highlightCursorInfo.initialLineIndex?(this._cursorInfo.globalStartIndex=n,this._cursorInfo.globalStartIndex>this._cursorInfo.globalEndIndex&&(this._cursorInfo.globalEndIndex+=this._cursorInfo.globalStartIndex,this._cursorInfo.globalStartIndex=this._cursorInfo.globalEndIndex-this._cursorInfo.globalStartIndex,this._cursorInfo.globalEndIndex-=this._cursorInfo.globalStartIndex)):(this._cursorInfo.globalEndIndex=n,this._cursorInfo.globalStartIndex=this._highlightCursorInfo.initialStartIndex):this._cursorInfo.globalStartIndex=n}this._markAsDirty();return}if(t==="a"&&i&&(i.ctrlKey||i.metaKey)){this.selectAllText(),i.preventDefault();return}(t==null?void 0:t.length)===1&&(i==null||i.preventDefault(),this._currentKey=t,this.onBeforeKeyAddObservable.notifyObservers(this),t=this._currentKey,this._addKey&&(this._isTextHighlightOn=!1,this._blinkIsEven=!1,this._prevText=this._textWrapper.text,this._textWrapper.removePart(this._cursorInfo.globalStartIndex,this._cursorInfo.globalEndIndex,t),this._cursorInfo.globalStartIndex+=t.length,this._cursorInfo.globalEndIndex=this._cursorInfo.globalStartIndex,this._textHasChanged()))}}_parseLineWordWrap(e="",t,i){const s=[],r=e.split(" ");let n=0;for(let o=0;o<r.length;o++){const l=o>0?e+" "+r[o]:r[0],u=i.measureText(l).width;if(u>t){o>0&&(n=i.measureText(e).width,s.push({text:e,width:n,lineEnding:" "})),e=r[o];let f="";e.split("").map(p=>{i.measureText(f+p).width>t&&(s.push({text:f,width:i.measureText(f).width,lineEnding:""}),f=""),f+=p}),e=f,n=i.measureText(e).width}else n=u,e=l}return s.push({text:e,width:n,lineEnding:" "}),s}_breakLines(e,t){const i=[],s=(this.text||this.placeholderText).split(`
`);if(this.clipContent)for(const r of s)i.push(...this._parseLineWordWrap(r,e,t));else for(const r of s)i.push(this._parseLine(r,t));return i[i.length-1].lineEnding=`
`,i}_parseLine(e="",t){return{text:e,width:t.measureText(e).width,lineEnding:" "}}_preMeasure(e,t){var r;(!this._fontOffset||this._wasDirty)&&(this._fontOffset=Lt._GetFontOffset(t.font,(r=this._host.getScene())==null?void 0:r.getEngine()));let i=this._beforeRenderText(this._textWrapper).text;!this.text&&this._placeholderText&&(i=this._placeholderText),this._textWidth=t.measureText(i).width;const s=this._margin.getValueInPixel(this._host,e.width)*2;if(this._autoStretchWidth){const o=i.split(`
`).reduce((c,u)=>{const f=t.measureText(u).width,p=t.measureText(c).width;return f>p?u:c},""),l=t.measureText(o).width;this.width=Math.min(this._maxWidth.getValueInPixel(this._host,e.width),l+s)+"px",this.autoStretchWidth=!0}if(this._availableWidth=this._width.getValueInPixel(this._host,e.width)-s,this._lines=this._breakLines(this._availableWidth,t),this._contextForBreakLines=t,this._autoStretchHeight){const o=this._lines.length*this._fontOffset.height+this._margin.getValueInPixel(this._host,e.height)*2;this.height=Math.min(this._maxHeight.getValueInPixel(this._host,e.height),o)+"px",this._autoStretchHeight=!0}if(this._availableHeight=this._height.getValueInPixel(this._host,e.height)-s,this._isFocused){this._cursorInfo.currentLineIndex=0;let n=this._lines[this._cursorInfo.currentLineIndex].text.length+this._lines[this._cursorInfo.currentLineIndex].lineEnding.length,o=0;for(;o+n<=this._cursorInfo.globalStartIndex;)o+=n,this._cursorInfo.currentLineIndex<this._lines.length-1&&(this._cursorInfo.currentLineIndex++,n=this._lines[this._cursorInfo.currentLineIndex].text.length+this._lines[this._cursorInfo.currentLineIndex].lineEnding.length)}}_textHasChanged(){!this._prevText&&this._textWrapper.text&&this.placeholderText&&(this._cursorInfo.currentLineIndex=0,this._cursorInfo.globalStartIndex=1,this._cursorInfo.globalEndIndex=1,this._cursorInfo.relativeStartIndex=1,this._cursorInfo.relativeEndIndex=1),super._textHasChanged()}_computeScroll(){if(this._clipTextLeft=this._currentMeasure.left+this._margin.getValueInPixel(this._host,this._cachedParentMeasure.width),this._clipTextTop=this._currentMeasure.top+this._margin.getValueInPixel(this._host,this._cachedParentMeasure.height),this._isFocused&&this._lines[this._cursorInfo.currentLineIndex].width>this._availableWidth){const e=this._clipTextLeft-this._lines[this._cursorInfo.currentLineIndex].width+this._availableWidth;this._scrollLeft||(this._scrollLeft=e)}else this._scrollLeft=this._clipTextLeft;if(this._isFocused){const e=(this._cursorInfo.currentLineIndex+1)*this._fontOffset.height,t=this._clipTextTop-e;this._scrollTop||(this._scrollTop=t)}else this._scrollTop=this._clipTextTop}_additionalProcessing(){this.highlightedText="",this.onLinesReadyObservable.notifyObservers(this)}_drawText(e,t,i,s){const r=this._currentMeasure.width;let n=this._scrollLeft;switch(this._textHorizontalAlignment){case Lt.HORIZONTAL_ALIGNMENT_LEFT:n+=0;break;case Lt.HORIZONTAL_ALIGNMENT_RIGHT:n+=r-t;break;case Lt.HORIZONTAL_ALIGNMENT_CENTER:n+=(r-t)/2;break}(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(s.shadowColor=this.shadowColor,s.shadowBlur=this.shadowBlur,s.shadowOffsetX=this.shadowOffsetX,s.shadowOffsetY=this.shadowOffsetY),this.outlineWidth&&s.strokeText(e,this._currentMeasure.left+n,i),s.fillText(e,n,i)}_onCopyText(e){this._isTextHighlightOn=!1;try{e.clipboardData&&e.clipboardData.setData("text/plain",this._highlightedText)}catch{}this._host.clipboardData=this._highlightedText}_onCutText(e){if(this._highlightedText){try{e.clipboardData&&e.clipboardData.setData("text/plain",this._highlightedText)}catch{}this._host.clipboardData=this._highlightedText,this._prevText=this._textWrapper.text,this._textWrapper.removePart(this._cursorInfo.globalStartIndex,this._cursorInfo.globalEndIndex),this._textHasChanged()}}_onPasteText(e){let t="";e.clipboardData&&e.clipboardData.types.indexOf("text/plain")!==-1?t=e.clipboardData.getData("text/plain"):t=this._host.clipboardData,this._isTextHighlightOn=!1,this._prevText=this._textWrapper.text,this._textWrapper.removePart(this._cursorInfo.globalStartIndex,this._cursorInfo.globalEndIndex,t);const i=t.length-(this._cursorInfo.globalEndIndex-this._cursorInfo.globalStartIndex);this._cursorInfo.globalStartIndex+=i,this._cursorInfo.globalEndIndex=this._cursorInfo.globalStartIndex,this._clickedCoordinateX=null,this._clickedCoordinateY=null,super._textHasChanged()}_draw(e){this._computeScroll(),this._scrollLeft=this._scrollLeft??0,this._scrollTop=this._scrollTop??0,e.save(),this._applyStates(e),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY),this._isFocused?this._focusedBackground&&(e.fillStyle=this._isEnabled?this._focusedBackground:this._disabledColor,e.fillRect(this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height)):this._background&&(e.fillStyle=this._isEnabled?this._background:this._disabledColor,e.fillRect(this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height)),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0),this.color&&(e.fillStyle=this.color);const t=this._currentMeasure.height,i=this._currentMeasure.width;let s=0;switch(this._textVerticalAlignment){case Lt.VERTICAL_ALIGNMENT_TOP:s=this._fontOffset.ascent;break;case Lt.VERTICAL_ALIGNMENT_BOTTOM:s=t-this._fontOffset.height*(this._lines.length-1)-this._fontOffset.descent;break;case Lt.VERTICAL_ALIGNMENT_CENTER:s=this._fontOffset.ascent+(t-this._fontOffset.height*this._lines.length)/2;break}e.save(),e.beginPath(),e.fillStyle=this.fontStyle,!this._textWrapper.text&&this.placeholderText&&(e.fillStyle=this._placeholderColor),e.rect(this._clipTextLeft,this._clipTextTop,this._availableWidth+2,this._availableHeight+2),e.clip(),s+=this._scrollTop;for(let r=0;r<this._lines.length;r++){const n=this._lines[r];r!==0&&this._lineSpacing.internalValue!==0&&(this._lineSpacing.isPixel?s+=this._lineSpacing.getValue(this._host):s=s+this._lineSpacing.getValue(this._host)*this._height.getValueInPixel(this._host,this._cachedParentMeasure.height)),this._drawText(n.text,n.width,s,e),s+=this._fontOffset.height}if(e.restore(),this._isFocused){if(!this._blinkIsEven||this._isTextHighlightOn){let r=this._scrollLeft+e.measureText(this._lines[this._cursorInfo.currentLineIndex].text.substring(0,this._cursorInfo.relativeStartIndex)).width;r<this._clipTextLeft?(this._scrollLeft+=this._clipTextLeft-r,r=this._clipTextLeft,this._markAsDirty()):r>this._clipTextLeft+this._availableWidth&&(this._scrollLeft+=this._clipTextLeft+this._availableWidth-r,r=this._clipTextLeft+this._availableWidth,this._markAsDirty());let n=this._scrollTop+this._cursorInfo.currentLineIndex*this._fontOffset.height;n<this._clipTextTop?(this._scrollTop+=this._clipTextTop-n,n=this._clipTextTop,this._markAsDirty()):n+this._fontOffset.height>this._clipTextTop+this._availableHeight&&this._availableHeight>this._fontOffset.height&&(this._scrollTop+=this._clipTextTop+this._availableHeight-n-this._fontOffset.height,n=this._clipTextTop+this._availableHeight-this._fontOffset.height,this._markAsDirty()),this._isTextHighlightOn||e.fillRect(r,n,2,this._fontOffset.height)}if(this._resetBlinking(),this._isTextHighlightOn){clearTimeout(this._blinkTimeout),this._highlightedText=this.text.substring(this._cursorInfo.globalStartIndex,this._cursorInfo.globalEndIndex),e.globalAlpha=this._highligherOpacity,e.fillStyle=this._textHighlightColor;const r=Math.min(this._cursorInfo.currentLineIndex,this._highlightCursorInfo.initialLineIndex),n=Math.max(this._cursorInfo.currentLineIndex,this._highlightCursorInfo.initialLineIndex);let o=this._scrollTop+r*this._fontOffset.height;for(let l=r;l<=n;l++){const c=this._lines[l];let u=this._scrollLeft;switch(this._textHorizontalAlignment){case Lt.HORIZONTAL_ALIGNMENT_LEFT:u+=0;break;case Lt.HORIZONTAL_ALIGNMENT_RIGHT:u+=i-c.width;break;case Lt.HORIZONTAL_ALIGNMENT_CENTER:u+=(i-c.width)/2;break}const f=l===r?this._cursorInfo.relativeStartIndex:0,p=l===n?this._cursorInfo.relativeEndIndex:c.text.length,m=e.measureText(c.text.substring(0,f)).width,_=c.text.substring(f,p),d=e.measureText(_).width;e.fillRect(u+m,o,d,this._fontOffset.height),o+=this._fontOffset.height}this._cursorInfo.globalEndIndex===this._cursorInfo.globalStartIndex&&this._resetBlinking()}}e.restore(),this._thickness&&(this._isFocused?this.focusedColor&&(e.strokeStyle=this.focusedColor):this.color&&(e.strokeStyle=this.color),e.lineWidth=this._thickness,e.strokeRect(this._currentMeasure.left+this._thickness/2,this._currentMeasure.top+this._thickness/2,this._currentMeasure.width-this._thickness,this._currentMeasure.height-this._thickness))}_resetBlinking(){clearTimeout(this._blinkTimeout),this._blinkTimeout=setTimeout(()=>{this._blinkIsEven=!this._blinkIsEven,this._markAsDirty()},500)}_onPointerDown(e,t,i,s,r){return super._onPointerDown(e,t,i,s,r)?this.isReadOnly?!0:(this._clickedCoordinateX=t.x,this._clickedCoordinateY=t.y,this._isTextHighlightOn=!1,this._highlightedText="",this._isPointerDown=!0,this._host._capturingControl[i]=this,this._host.focusedControl===this?(clearTimeout(this._blinkTimeout),this._markAsDirty(),!0):this._isEnabled?(this._host.focusedControl=this,!0):!1):!1}_onPointerMove(e,t,i,s){s.event.movementX===0&&s.event.movementY===0||(this._host.focusedControl===this&&this._isPointerDown&&!this.isReadOnly&&(this._clickedCoordinateX=t.x,this._clickedCoordinateY=t.y,this._isTextHighlightOn||(this._highlightCursorInfo.initialLineIndex=this._cursorInfo.currentLineIndex,this._highlightCursorInfo.initialStartIndex=this._cursorInfo.globalStartIndex,this._highlightCursorInfo.initialRelativeStartIndex=this._cursorInfo.relativeStartIndex,this._isTextHighlightOn=!0),this._markAsDirty()),super._onPointerMove(e,t,i,s))}_updateCursorPosition(){if(this._isFocused)if(!this._textWrapper.text&&this.placeholderText)this._cursorInfo.currentLineIndex=0,this._cursorInfo.globalStartIndex=0,this._cursorInfo.globalEndIndex=0,this._cursorInfo.relativeStartIndex=0,this._cursorInfo.relativeEndIndex=0;else if(this._clickedCoordinateX&&this._clickedCoordinateY){this._isTextHighlightOn||(this._cursorInfo={globalStartIndex:0,globalEndIndex:0,relativeStartIndex:0,relativeEndIndex:0,currentLineIndex:0});let e=0,t=0;const i=this._clickedCoordinateY-this._scrollTop,s=Math.floor(i/this._fontOffset.height);this._cursorInfo.currentLineIndex=Math.min(Math.max(s,0),this._lines.length-1);let r=0;const n=this._clickedCoordinateX-(this._scrollLeft??0);let o=0;for(let l=0;l<this._cursorInfo.currentLineIndex;l++){const c=this._lines[l];e+=c.text.length+c.lineEnding.length}for(;r<n&&this._lines[this._cursorInfo.currentLineIndex].text.length>t;)t++,o=Math.abs(n-r),r=this._contextForBreakLines.measureText(this._lines[this._cursorInfo.currentLineIndex].text.substring(0,t)).width;Math.abs(n-r)>o&&t>0&&t--,e+=t,this._isTextHighlightOn?e<this._highlightCursorInfo.initialStartIndex?(this._cursorInfo.globalStartIndex=e,this._cursorInfo.relativeStartIndex=t,this._cursorInfo.globalEndIndex=this._highlightCursorInfo.initialStartIndex,this._cursorInfo.relativeEndIndex=this._highlightCursorInfo.initialRelativeStartIndex):(this._cursorInfo.globalStartIndex=this._highlightCursorInfo.initialStartIndex,this._cursorInfo.relativeStartIndex=this._highlightCursorInfo.initialRelativeStartIndex,this._cursorInfo.globalEndIndex=e,this._cursorInfo.relativeEndIndex=t):(this._cursorInfo.globalStartIndex=e,this._cursorInfo.relativeStartIndex=t,this._cursorInfo.globalEndIndex=this._cursorInfo.globalStartIndex,this._cursorInfo.relativeEndIndex=this._cursorInfo.relativeStartIndex),this._blinkIsEven=this._isTextHighlightOn,this._clickedCoordinateX=null,this._clickedCoordinateY=null}else{this._cursorInfo.relativeStartIndex=0,this._cursorInfo.currentLineIndex=0;let e=this._lines[this._cursorInfo.currentLineIndex].text.length+this._lines[this._cursorInfo.currentLineIndex].lineEnding.length,t=0;for(;t+e<=this._cursorInfo.globalStartIndex;)t+=e,this._cursorInfo.currentLineIndex<this._lines.length-1&&(this._cursorInfo.currentLineIndex++,e=this._lines[this._cursorInfo.currentLineIndex].text.length+this._lines[this._cursorInfo.currentLineIndex].lineEnding.length);if(this._cursorInfo.relativeStartIndex=this._cursorInfo.globalStartIndex-t,!this._isTextHighlightOn)this._cursorInfo.relativeEndIndex=this._cursorInfo.relativeStartIndex,this._cursorInfo.globalEndIndex=this._cursorInfo.globalStartIndex;else if(this._highlightCursorInfo.initialStartIndex!==-1&&this._cursorInfo.globalStartIndex>=this._highlightCursorInfo.initialStartIndex){for(;t+e<=this._cursorInfo.globalEndIndex;)t+=e,this._cursorInfo.currentLineIndex<this._lines.length-1&&(this._cursorInfo.currentLineIndex++,e=this._lines[this._cursorInfo.currentLineIndex].text.length+this._lines[this._cursorInfo.currentLineIndex].lineEnding.length);this._cursorInfo.relativeEndIndex=this._cursorInfo.globalEndIndex-t}}}_updateValueFromCursorIndex(e){}_processDblClick(e){let t,i;do t=this._cursorInfo.globalStartIndex>0&&this._textWrapper.isWord(this._cursorInfo.globalStartIndex-1)?--this._cursorInfo.globalStartIndex:0,i=this._cursorInfo.globalEndIndex<this._textWrapper.length&&this._textWrapper.isWord(this._cursorInfo.globalEndIndex)?++this._cursorInfo.globalEndIndex:0;while(t||i);this._highlightCursorInfo.initialLineIndex=this._cursorInfo.currentLineIndex,this._highlightCursorInfo.initialStartIndex=this._cursorInfo.globalStartIndex,this.onTextHighlightObservable.notifyObservers(this),this._isTextHighlightOn=!0,this._blinkIsEven=!0,this._markAsDirty()}selectAllText(){this._isTextHighlightOn=!0,this._blinkIsEven=!0,this._highlightCursorInfo={initialStartIndex:0,initialRelativeStartIndex:0,initialLineIndex:0},this._cursorInfo={globalStartIndex:0,globalEndIndex:this._textWrapper.length,relativeEndIndex:this._lines[this._lines.length-1].text.length,relativeStartIndex:0,currentLineIndex:this._lines.length-1},this._markAsDirty()}dispose(){super.dispose(),this.onLinesReadyObservable.clear()}}F([G()],$L.prototype,"autoStretchHeight",null),F([G()],$L.prototype,"maxHeight",null),ve("BABYLON.GUI.InputTextArea",$L);class SLe extends tl{_getTypeName(){return"InputPassword"}_beforeRenderText(e){const t=new jY;let i="";for(let s=0;s<e.length;s++)i+="•";return t.text=i,t}}ve("BABYLON.GUI.InputPassword",SLe);class C9 extends Lt{get dash(){return this._dash}set dash(e){this._dash!==e&&(this._dash=e,this._markAsDirty())}get connectedControl(){return this._connectedControl}set connectedControl(e){this._connectedControl!==e&&(this._connectedControlDirtyObserver&&this._connectedControl&&(this._connectedControl.onDirtyObservable.remove(this._connectedControlDirtyObserver),this._connectedControlDirtyObserver=null),e&&(this._connectedControlDirtyObserver=e.onDirtyObservable.add(()=>this._markAsDirty())),this._connectedControl=e,this._markAsDirty())}get x1(){return this._x1.toString(this._host)}set x1(e){this._x1.toString(this._host)!==e&&this._x1.fromString(e)&&this._markAsDirty()}get y1(){return this._y1.toString(this._host)}set y1(e){this._y1.toString(this._host)!==e&&this._y1.fromString(e)&&this._markAsDirty()}get x2(){return this._x2.toString(this._host)}set x2(e){this._x2.toString(this._host)!==e&&this._x2.fromString(e)&&this._markAsDirty()}get y2(){return this._y2.toString(this._host)}set y2(e){this._y2.toString(this._host)!==e&&this._y2.fromString(e)&&this._markAsDirty()}get lineWidth(){return this._lineWidth}set lineWidth(e){this._lineWidth!==e&&(this._lineWidth=e,this._markAsDirty())}set horizontalAlignment(e){}set verticalAlignment(e){}get _effectiveX2(){return(this._connectedControl?this._connectedControl.centerX:0)+this._x2.getValue(this._host)}get _effectiveY2(){return(this._connectedControl?this._connectedControl.centerY:0)+this._y2.getValue(this._host)}constructor(e){super(e),this.name=e,this._lineWidth=1,this._x1=new Ps(0),this._y1=new Ps(0),this._x2=new Ps(0),this._y2=new Ps(0),this._dash=new Array,this._automaticSize=!0,this.isHitTestVisible=!1,this._horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,this._verticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP}_getTypeName(){return"Line"}_draw(e){e.save(),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY),this._applyStates(e),e.strokeStyle=this._getColor(e),e.lineWidth=this._lineWidth,e.setLineDash(this._dash),e.beginPath(),e.moveTo(this._cachedParentMeasure.left+this._x1.getValue(this._host),this._cachedParentMeasure.top+this._y1.getValue(this._host)),e.lineTo(this._cachedParentMeasure.left+this._effectiveX2,this._cachedParentMeasure.top+this._effectiveY2),e.stroke(),e.restore()}_measure(){this._currentMeasure.width=Math.abs(this._x1.getValue(this._host)-this._effectiveX2)+this._lineWidth,this._currentMeasure.height=Math.abs(this._y1.getValue(this._host)-this._effectiveY2)+this._lineWidth}_computeAlignment(e){this._currentMeasure.left=e.left+Math.min(this._x1.getValue(this._host),this._effectiveX2)-this._lineWidth/2,this._currentMeasure.top=e.top+Math.min(this._y1.getValue(this._host),this._effectiveY2)-this._lineWidth/2}moveToVector3(e,t,i=!1){if(!this._host||this.parent!==this._host._rootContainer){Le.Error("Cannot move a control to a vector3 if the control is not at root level");return}const s=this._host._getGlobalViewport(),r=P.Project(e,me.IdentityReadOnly,t.getTransformMatrix(),s);if(this._moveToProjectedPosition(r,i),r.z<0||r.z>1){this.notRenderable=!0;return}this.notRenderable=!1}_moveToProjectedPosition(e,t=!1){const i=e.x+this._linkOffsetX.getValue(this._host)+"px",s=e.y+this._linkOffsetY.getValue(this._host)+"px";t?(this.x2=i,this.y2=s,this._x2.ignoreAdaptiveScaling=!0,this._y2.ignoreAdaptiveScaling=!0):(this.x1=i,this.y1=s,this._x1.ignoreAdaptiveScaling=!0,this._y1.ignoreAdaptiveScaling=!0)}}F([G()],C9.prototype,"dash",null),F([G()],C9.prototype,"x1",null),F([G()],C9.prototype,"y1",null),F([G()],C9.prototype,"x2",null),F([G()],C9.prototype,"y2",null),F([G()],C9.prototype,"lineWidth",null),ve("BABYLON.GUI.Line",C9);class Fce{constructor(e){this._multiLine=e,this._x=new Ps(0),this._y=new Ps(0),this._point=new P(0,0,0)}get x(){return this._x.toString(this._multiLine._host)}set x(e){this._x.toString(this._multiLine._host)!==e&&this._x.fromString(e)&&this._multiLine._markAsDirty()}get y(){return this._y.toString(this._multiLine._host)}set y(e){this._y.toString(this._multiLine._host)!==e&&this._y.fromString(e)&&this._multiLine._markAsDirty()}get control(){return this._control}set control(e){this._control!==e&&(this._control&&this._controlObserver&&(this._control.onDirtyObservable.remove(this._controlObserver),this._controlObserver=null),this._control=e,this._control&&(this._controlObserver=this._control.onDirtyObservable.add(this._multiLine.onPointUpdate)),this._multiLine._markAsDirty())}get mesh(){return this._mesh}set mesh(e){this._mesh!==e&&(this._mesh&&this._meshObserver&&this._mesh.getScene().onAfterCameraRenderObservable.remove(this._meshObserver),this._mesh=e,this._mesh&&(this._meshObserver=this._mesh.getScene().onAfterCameraRenderObservable.add(this._multiLine.onPointUpdate)),this._multiLine._markAsDirty())}resetLinks(){this.control=null,this.mesh=null}translate(){return this._point=this._translatePoint(),this._point}_translatePoint(){if(this._mesh!=null)return this._multiLine._host.getProjectedPositionWithZ(this._mesh.getBoundingInfo().boundingSphere.center,this._mesh.getWorldMatrix());if(this._control!=null)return new P(this._control.centerX,this._control.centerY,1-Ii);{const e=this._multiLine._host,t=this._x.getValueInPixel(e,Number(e._canvas.width)),i=this._y.getValueInPixel(e,Number(e._canvas.height));return new P(t,i,1-Ii)}}dispose(){this.resetLinks()}}class kce extends Lt{constructor(e){super(e),this.name=e,this._lineWidth=1,this.onPointUpdate=()=>{this._markAsDirty()},this._automaticSize=!0,this.isHitTestVisible=!1,this._horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,this._verticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP,this._dash=[],this._points=[]}get dash(){return this._dash}set dash(e){this._dash!==e&&(this._dash=e,this._markAsDirty())}getAt(e){return this._points[e]||(this._points[e]=new Fce(this)),this._points[e]}add(...e){return e.map(t=>this.push(t))}push(e){const t=this.getAt(this._points.length);return e==null||(e instanceof cr?t.mesh=e:e instanceof Lt?t.control=e:e.x!=null&&e.y!=null&&(t.x=e.x,t.y=e.y)),t}remove(e){let t;if(e instanceof Fce){if(t=this._points.indexOf(e),t===-1)return}else t=e;const i=this._points[t];i&&(i.dispose(),this._points.splice(t,1))}reset(){for(;this._points.length>0;)this.remove(this._points.length-1)}resetLinks(){this._points.forEach(e=>{e!=null&&e.resetLinks()})}get lineWidth(){return this._lineWidth}set lineWidth(e){this._lineWidth!==e&&(this._lineWidth=e,this._markAsDirty())}set horizontalAlignment(e){}set verticalAlignment(e){}_getTypeName(){return"MultiLine"}_draw(e){e.save(),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY),this._applyStates(e),e.strokeStyle=this.color,e.lineWidth=this._lineWidth,e.setLineDash(this._dash),e.beginPath();let t=!0,i;this._points.forEach(s=>{s&&(t?(e.moveTo(s._point.x,s._point.y),t=!1):s._point.z<1&&i.z<1?e.lineTo(s._point.x,s._point.y):e.moveTo(s._point.x,s._point.y),i=s._point)}),e.stroke(),e.restore()}_additionalProcessing(){this._minX=null,this._minY=null,this._maxX=null,this._maxY=null,this._points.forEach(e=>{e&&(e.translate(),(this._minX==null||e._point.x<this._minX)&&(this._minX=e._point.x),(this._minY==null||e._point.y<this._minY)&&(this._minY=e._point.y),(this._maxX==null||e._point.x>this._maxX)&&(this._maxX=e._point.x),(this._maxY==null||e._point.y>this._maxY)&&(this._maxY=e._point.y))}),this._minX==null&&(this._minX=0),this._minY==null&&(this._minY=0),this._maxX==null&&(this._maxX=0),this._maxY==null&&(this._maxY=0)}_measure(){this._minX==null||this._maxX==null||this._minY==null||this._maxY==null||(this._currentMeasure.width=Math.abs(this._maxX-this._minX)+this._lineWidth,this._currentMeasure.height=Math.abs(this._maxY-this._minY)+this._lineWidth)}_computeAlignment(){this._minX==null||this._minY==null||(this._currentMeasure.left=this._minX-this._lineWidth/2,this._currentMeasure.top=this._minY-this._lineWidth/2)}dispose(){this.reset(),super.dispose()}}F([G()],kce.prototype,"dash",null),ve("BABYLON.GUI.MultiLine",kce);class Ib extends Lt{get thickness(){return this._thickness}set thickness(e){this._thickness!==e&&(this._thickness=e,this._markAsDirty())}get checkSizeRatio(){return this._checkSizeRatio}set checkSizeRatio(e){e=Math.max(Math.min(1,e),0),this._checkSizeRatio!==e&&(this._checkSizeRatio=e,this._markAsDirty())}get background(){return this._background}set background(e){this._background!==e&&(this._background=e,this._markAsDirty())}get isChecked(){return this._isChecked}set isChecked(e){this._isChecked!==e&&(this._isChecked=e,this._markAsDirty(),this.onIsCheckedChangedObservable.notifyObservers(e),this._isChecked&&this._host&&this._host.executeOnAllControls(t=>{if(t===this||t.group===void 0)return;const i=t;i.group===this.group&&(i.isChecked=!1)}))}constructor(e){super(e),this.name=e,this._isChecked=!1,this._background="black",this._checkSizeRatio=.8,this._thickness=1,this.group="",this.onIsCheckedChangedObservable=new xe,this.isPointerBlocker=!0}_getTypeName(){return"RadioButton"}_draw(e){e.save(),this._applyStates(e);const t=this._currentMeasure.width-this._thickness,i=this._currentMeasure.height-this._thickness;if((this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY),Lt.drawEllipse(this._currentMeasure.left+this._currentMeasure.width/2,this._currentMeasure.top+this._currentMeasure.height/2,this._currentMeasure.width/2-this._thickness/2,this._currentMeasure.height/2-this._thickness/2,1,e),e.fillStyle=this._isEnabled?this._background:this._disabledColor,e.fill(),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0),e.strokeStyle=this.color,e.lineWidth=this._thickness,e.stroke(),this._isChecked){e.fillStyle=this._isEnabled?this.color:this._disabledColor;const s=t*this._checkSizeRatio,r=i*this._checkSizeRatio;Lt.drawEllipse(this._currentMeasure.left+this._currentMeasure.width/2,this._currentMeasure.top+this._currentMeasure.height/2,s/2-this._thickness/2,r/2-this._thickness/2,1,e),e.fill()}e.restore()}_onPointerDown(e,t,i,s,r){return super._onPointerDown(e,t,i,s,r)?(this.isReadOnly||this.isChecked||(this.isChecked=!0),!0):!1}static AddRadioButtonWithHeader(e,t,i,s){const r=new s1;r.isVertical=!1,r.height="30px";const n=new Ib;n.width="20px",n.height="20px",n.isChecked=i,n.color="green",n.group=t,n.onIsCheckedChangedObservable.add(l=>s(n,l)),r.addControl(n);const o=new ia;return o.text=e,o.width="180px",o.paddingLeft="5px",o.textHorizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,o.color="white",r.addControl(o),r}}F([G()],Ib.prototype,"thickness",null),F([G()],Ib.prototype,"group",void 0),F([G()],Ib.prototype,"checkSizeRatio",null),F([G()],Ib.prototype,"background",null),F([G()],Ib.prototype,"isChecked",null),ve("BABYLON.GUI.RadioButton",Ib);class C3 extends Lt{get displayThumb(){return this._displayThumb}set displayThumb(e){this._displayThumb!==e&&(this._displayThumb=e,this._markAsDirty())}get step(){return this._step}set step(e){this._step!==e&&(this._step=e,this._markAsDirty())}get barOffset(){return this._barOffset.toString(this._host)}get barOffsetInPixels(){return this._barOffset.getValueInPixel(this._host,this._cachedParentMeasure.width)}set barOffset(e){this._barOffset.toString(this._host)!==e&&this._barOffset.fromString(e)&&this._markAsDirty()}get thumbWidth(){return this._thumbWidth.toString(this._host)}get thumbWidthInPixels(){return this._thumbWidth.getValueInPixel(this._host,this._cachedParentMeasure.width)}set thumbWidth(e){this._thumbWidth.toString(this._host)!==e&&this._thumbWidth.fromString(e)&&this._markAsDirty()}get minimum(){return this._minimum}set minimum(e){this._minimum!==e&&(this._minimum=e,this._markAsDirty(),this.value=Math.max(Math.min(this.value,this._maximum),this._minimum))}get maximum(){return this._maximum}set maximum(e){this._maximum!==e&&(this._maximum=e,this._markAsDirty(),this.value=Math.max(Math.min(this.value,this._maximum),this._minimum))}get value(){return this._value}set value(e){e=Math.max(Math.min(e,this._maximum),this._minimum),this._value!==e&&(this._value=e,this._markAsDirty(),this.onValueChangedObservable.notifyObservers(this._value))}get isVertical(){return this._isVertical}set isVertical(e){this._isVertical!==e&&(this._isVertical=e,this._markAsDirty())}get isThumbClamped(){return this._isThumbClamped}set isThumbClamped(e){this._isThumbClamped!==e&&(this._isThumbClamped=e,this._markAsDirty())}constructor(e){super(e),this.name=e,this._thumbWidth=new Ps(20,Ps.UNITMODE_PIXEL,!1),this._minimum=0,this._maximum=100,this._value=50,this._isVertical=!1,this._barOffset=new Ps(5,Ps.UNITMODE_PIXEL,!1),this._isThumbClamped=!1,this._displayThumb=!0,this._step=0,this._lastPointerDownId=-1,this._effectiveBarOffset=0,this.onValueChangedObservable=new xe,this._pointerIsDown=!1,this.isPointerBlocker=!0}_getTypeName(){return"BaseSlider"}_getThumbPosition(){return this.isVertical?(this.maximum-this.value)/(this.maximum-this.minimum)*this._backgroundBoxLength:(this.value-this.minimum)/(this.maximum-this.minimum)*this._backgroundBoxLength}_getThumbThickness(e){let t=0;switch(e){case"circle":this._thumbWidth.isPixel?t=Math.max(this._thumbWidth.getValue(this._host),this._backgroundBoxThickness):t=this._backgroundBoxThickness*this._thumbWidth.getValue(this._host);break;case"rectangle":this._thumbWidth.isPixel?t=Math.min(this._thumbWidth.getValue(this._host),this._backgroundBoxThickness):t=this._backgroundBoxThickness*this._thumbWidth.getValue(this._host)}return t}_prepareRenderingData(e){if(this._effectiveBarOffset=0,this._renderLeft=this._currentMeasure.left,this._renderTop=this._currentMeasure.top,this._renderWidth=this._currentMeasure.width,this._renderHeight=this._currentMeasure.height,this._backgroundBoxLength=Math.max(this._currentMeasure.width,this._currentMeasure.height),this._backgroundBoxThickness=Math.min(this._currentMeasure.width,this._currentMeasure.height),this._effectiveThumbThickness=this._getThumbThickness(e),this.displayThumb&&(this._backgroundBoxLength-=this._effectiveThumbThickness),this.isVertical&&this._currentMeasure.height<this._currentMeasure.width){de.Error("Height should be greater than width");return}this._barOffset.isPixel?this._effectiveBarOffset=Math.min(this._barOffset.getValue(this._host),this._backgroundBoxThickness):this._effectiveBarOffset=this._backgroundBoxThickness*this._barOffset.getValue(this._host),this._backgroundBoxThickness-=this._effectiveBarOffset*2,this.isVertical?(this._renderLeft+=this._effectiveBarOffset,!this.isThumbClamped&&this.displayThumb&&(this._renderTop+=this._effectiveThumbThickness/2),this._renderHeight=this._backgroundBoxLength,this._renderWidth=this._backgroundBoxThickness):(this._renderTop+=this._effectiveBarOffset,!this.isThumbClamped&&this.displayThumb&&(this._renderLeft+=this._effectiveThumbThickness/2),this._renderHeight=this._backgroundBoxThickness,this._renderWidth=this._backgroundBoxLength)}_updateValueFromPointer(e,t){this.rotation!=0&&(this._invertTransformMatrix.transformCoordinates(e,t,this._transformedPosition),e=this._transformedPosition.x,t=this._transformedPosition.y);let i;this._isVertical?i=this._minimum+(1-(t-this._currentMeasure.top)/this._currentMeasure.height)*(this._maximum-this._minimum):i=this._minimum+(e-this._currentMeasure.left)/this._currentMeasure.width*(this._maximum-this._minimum),this.value=this._step?Math.round(i/this._step)*this._step:i}_onPointerDown(e,t,i,s,r){return super._onPointerDown(e,t,i,s,r)?(this.isReadOnly||(this._pointerIsDown=!0,this._updateValueFromPointer(t.x,t.y),this._host._capturingControl[i]=this,this._lastPointerDownId=i),!0):!1}_onPointerMove(e,t,i,s){i==this._lastPointerDownId&&(this._pointerIsDown&&!this.isReadOnly&&this._updateValueFromPointer(t.x,t.y),super._onPointerMove(e,t,i,s))}_onPointerUp(e,t,i,s,r){this._pointerIsDown=!1,delete this._host._capturingControl[i],super._onPointerUp(e,t,i,s,r)}_onCanvasBlur(){this._forcePointerUp(),super._onCanvasBlur()}}F([G()],C3.prototype,"displayThumb",null),F([G()],C3.prototype,"step",null),F([G()],C3.prototype,"barOffset",null),F([G()],C3.prototype,"thumbWidth",null),F([G()],C3.prototype,"minimum",null),F([G()],C3.prototype,"maximum",null),F([G()],C3.prototype,"value",null),F([G()],C3.prototype,"isVertical",null),F([G()],C3.prototype,"isThumbClamped",null);class x9 extends C3{get displayValueBar(){return this._displayValueBar}set displayValueBar(e){this._displayValueBar!==e&&(this._displayValueBar=e,this._markAsDirty())}get borderColor(){return this._borderColor}set borderColor(e){this._borderColor!==e&&(this._borderColor=e,this._markAsDirty())}get background(){return this._background}set background(e){this._background!==e&&(this._background=e,this._markAsDirty())}get backgroundGradient(){return this._backgroundGradient}set backgroundGradient(e){this._backgroundGradient!==e&&(this._backgroundGradient=e,this._markAsDirty())}get thumbColor(){return this._thumbColor}set thumbColor(e){this._thumbColor!==e&&(this._thumbColor=e,this._markAsDirty())}get isThumbCircle(){return this._isThumbCircle}set isThumbCircle(e){this._isThumbCircle!==e&&(this._isThumbCircle=e,this._markAsDirty())}constructor(e){super(e),this.name=e,this._background="black",this._borderColor="white",this._thumbColor="",this._isThumbCircle=!1,this._displayValueBar=!0,this._backgroundGradient=null}_getTypeName(){return"Slider"}_getBackgroundColor(e){return this._backgroundGradient?this._backgroundGradient.getCanvasGradient(e):this._background}_draw(e){e.save(),this._applyStates(e),this._prepareRenderingData(this.isThumbCircle?"circle":"rectangle");let t=this._renderLeft,i=this._renderTop;const s=this._renderWidth,r=this._renderHeight;let n=0;this.isThumbClamped&&this.isThumbCircle?(this.isVertical?i+=this._effectiveThumbThickness/2:t+=this._effectiveThumbThickness/2,n=this._backgroundBoxThickness/2):n=(this._effectiveThumbThickness-this._effectiveBarOffset)/2,n=Math.max(0,n),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY);const o=this._getThumbPosition();e.fillStyle=this._getBackgroundColor(e),this.isVertical?this.isThumbClamped?this.isThumbCircle?(e.beginPath(),e.arc(t+this._backgroundBoxThickness/2,i,n,Math.PI,2*Math.PI),e.fill(),e.fillRect(t,i,s,r)):e.fillRect(t,i,s,r+this._effectiveThumbThickness):e.fillRect(t,i,s,r):this.isThumbClamped?this.isThumbCircle?(e.beginPath(),e.arc(t+this._backgroundBoxLength,i+this._backgroundBoxThickness/2,n,0,2*Math.PI),e.fill(),e.fillRect(t,i,s,r)):e.fillRect(t,i,s+this._effectiveThumbThickness,r):e.fillRect(t,i,s,r),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0),e.fillStyle=this._getColor(e),this._displayValueBar&&(this.isVertical?this.isThumbClamped?this.isThumbCircle?(e.beginPath(),e.arc(t+this._backgroundBoxThickness/2,i+this._backgroundBoxLength,n,0,2*Math.PI),e.fill(),e.fillRect(t,i+o,s,r-o)):e.fillRect(t,i+o,s,r-o+this._effectiveThumbThickness):e.fillRect(t,i+o,s,r-o):(this.isThumbClamped&&this.isThumbCircle&&(e.beginPath(),e.arc(t,i+this._backgroundBoxThickness/2,n,0,2*Math.PI),e.fill()),e.fillRect(t,i,o,r))),e.fillStyle=this._thumbColor||this._getColor(e),this.displayThumb&&((this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowColor=this.shadowColor,e.shadowBlur=this.shadowBlur,e.shadowOffsetX=this.shadowOffsetX,e.shadowOffsetY=this.shadowOffsetY),this._isThumbCircle?(e.beginPath(),this.isVertical?e.arc(t+this._backgroundBoxThickness/2,i+o,n,0,2*Math.PI):e.arc(t+o,i+this._backgroundBoxThickness/2,n,0,2*Math.PI),e.fill(),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0),e.strokeStyle=this._borderColor,e.stroke()):(this.isVertical?e.fillRect(t-this._effectiveBarOffset,this._currentMeasure.top+o,this._currentMeasure.width,this._effectiveThumbThickness):e.fillRect(this._currentMeasure.left+o,this._currentMeasure.top,this._effectiveThumbThickness,this._currentMeasure.height),(this.shadowBlur||this.shadowOffsetX||this.shadowOffsetY)&&(e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0),e.strokeStyle=this._borderColor,this.isVertical?e.strokeRect(t-this._effectiveBarOffset,this._currentMeasure.top+o,this._currentMeasure.width,this._effectiveThumbThickness):e.strokeRect(this._currentMeasure.left+o,this._currentMeasure.top,this._effectiveThumbThickness,this._currentMeasure.height))),e.restore()}serialize(e){super.serialize(e),this.backgroundGradient&&(e.backgroundGradient={},this.backgroundGradient.serialize(e.backgroundGradient))}_parseFromContent(e,t){if(super._parseFromContent(e,t),e.backgroundGradient){const i=Le.Instantiate("BABYLON.GUI."+e.backgroundGradient.className);this.backgroundGradient=new i,this.backgroundGradient.parse(e.backgroundGradient)}}}F([G()],x9.prototype,"displayValueBar",null),F([G()],x9.prototype,"borderColor",null),F([G()],x9.prototype,"background",null),F([G()],x9.prototype,"thumbColor",null),F([G()],x9.prototype,"isThumbCircle",null),ve("BABYLON.GUI.Slider",x9);class GY{constructor(e){this.name=e,this._groupPanel=new s1,this._selectors=new Array,this._groupPanel.verticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP,this._groupPanel.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,this._groupHeader=this._addGroupHeader(e)}get groupPanel(){return this._groupPanel}get selectors(){return this._selectors}get header(){return this._groupHeader.text}set header(e){this._groupHeader.text!=="label"&&(this._groupHeader.text=e)}_addGroupHeader(e){const t=new ia("groupHead",e);return t.width=.9,t.height="30px",t.textWrapping=!0,t.color="black",t.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,t.textHorizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,t.left="2px",this._groupPanel.addControl(t),t}_getSelector(e){if(!(e<0||e>=this._selectors.length))return this._selectors[e]}removeSelector(e){e<0||e>=this._selectors.length||(this._groupPanel.removeControl(this._selectors[e]),this._selectors.splice(e,1))}}class FQe extends GY{addCheckbox(e,t=s=>{},i=!1){i=i||!1;const s=new hM;s.width="20px",s.height="20px",s.color="#364249",s.background="#CCCCCC",s.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,s.onIsCheckedChangedObservable.add(function(n){t(n)});const r=Lt.AddHeader(s,e,"200px",{isHorizontal:!0,controlFirst:!0});r.height="30px",r.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,r.left="4px",this.groupPanel.addControl(r),this.selectors.push(r),s.isChecked=i,this.groupPanel.parent&&this.groupPanel.parent.parent&&(s.color=this.groupPanel.parent.parent.buttonColor,s.background=this.groupPanel.parent.parent.buttonBackground)}_setSelectorLabel(e,t){this.selectors[e].children[1].text=t}_setSelectorLabelColor(e,t){this.selectors[e].children[1].color=t}_setSelectorButtonColor(e,t){this.selectors[e].children[0].color=t}_setSelectorButtonBackground(e,t){this.selectors[e].children[0].background=t}}class kQe extends GY{constructor(){super(...arguments),this._selectNb=0}addRadio(e,t=s=>{},i=!1){const s=this._selectNb++,r=new Ib;r.name=e,r.width="20px",r.height="20px",r.color="#364249",r.background="#CCCCCC",r.group=this.name,r.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,r.onIsCheckedChangedObservable.add(function(o){o&&t(s)});const n=Lt.AddHeader(r,e,"200px",{isHorizontal:!0,controlFirst:!0});n.height="30px",n.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,n.left="4px",this.groupPanel.addControl(n),this.selectors.push(n),r.isChecked=i,this.groupPanel.parent&&this.groupPanel.parent.parent&&(r.color=this.groupPanel.parent.parent.buttonColor,r.background=this.groupPanel.parent.parent.buttonBackground)}_setSelectorLabel(e,t){this.selectors[e].children[1].text=t}_setSelectorLabelColor(e,t){this.selectors[e].children[1].color=t}_setSelectorButtonColor(e,t){this.selectors[e].children[0].color=t}_setSelectorButtonBackground(e,t){this.selectors[e].children[0].background=t}}class UQe extends GY{addSlider(e,t=l=>{},i="Units",s=0,r=0,n=0,o=l=>l|0){const l=new x9;l.name=i,l.value=n,l.minimum=s,l.maximum=r,l.width=.9,l.height="20px",l.color="#364249",l.background="#CCCCCC",l.borderColor="black",l.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,l.left="4px",l.paddingBottom="4px",l.onValueChangedObservable.add(function(u){l.parent.children[0].text=l.parent.children[0].name+": "+o(u)+" "+l.name,t(u)});const c=Lt.AddHeader(l,e+": "+o(n)+" "+i,"30px",{isHorizontal:!1,controlFirst:!1});c.height="60px",c.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,c.left="4px",c.children[0].name=e,this.groupPanel.addControl(c),this.selectors.push(c),this.groupPanel.parent&&this.groupPanel.parent.parent&&(l.color=this.groupPanel.parent.parent.buttonColor,l.background=this.groupPanel.parent.parent.buttonBackground)}_setSelectorLabel(e,t){this.selectors[e].children[0].name=t,this.selectors[e].children[0].text=t+": "+this.selectors[e].children[1].value+" "+this.selectors[e].children[1].name}_setSelectorLabelColor(e,t){this.selectors[e].children[0].color=t}_setSelectorButtonColor(e,t){this.selectors[e].children[1].color=t}_setSelectorButtonBackground(e,t){this.selectors[e].children[1].background=t}}class jQe extends cu{constructor(e,t=[]){if(super(e),this.name=e,this.groups=t,this._buttonColor="#364249",this._buttonBackground="#CCCCCC",this._headerColor="black",this._barColor="white",this._barHeight="2px",this._spacerHeight="20px",this._bars=new Array,this._groups=t,this.thickness=2,this._panel=new s1,this._panel.verticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP,this._panel.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,this._panel.top=5,this._panel.left=5,this._panel.width=.95,t.length>0){for(let i=0;i<t.length-1;i++)this._panel.addControl(t[i].groupPanel),this._addSpacer();this._panel.addControl(t[t.length-1].groupPanel)}this.addControl(this._panel)}_getTypeName(){return"SelectionPanel"}get panel(){return this._panel}get headerColor(){return this._headerColor}set headerColor(e){this._headerColor!==e&&(this._headerColor=e,this._setHeaderColor())}_setHeaderColor(){for(let e=0;e<this._groups.length;e++)this._groups[e].groupPanel.children[0].color=this._headerColor}get buttonColor(){return this._buttonColor}set buttonColor(e){this._buttonColor!==e&&(this._buttonColor=e,this._setbuttonColor())}_setbuttonColor(){for(let e=0;e<this._groups.length;e++)for(let t=0;t<this._groups[e].selectors.length;t++)this._groups[e]._setSelectorButtonColor(t,this._buttonColor)}get labelColor(){return this._labelColor}set labelColor(e){this._labelColor!==e&&(this._labelColor=e,this._setLabelColor())}_setLabelColor(){for(let e=0;e<this._groups.length;e++)for(let t=0;t<this._groups[e].selectors.length;t++)this._groups[e]._setSelectorLabelColor(t,this._labelColor)}get buttonBackground(){return this._buttonBackground}set buttonBackground(e){this._buttonBackground!==e&&(this._buttonBackground=e,this._setButtonBackground())}_setButtonBackground(){for(let e=0;e<this._groups.length;e++)for(let t=0;t<this._groups[e].selectors.length;t++)this._groups[e]._setSelectorButtonBackground(t,this._buttonBackground)}get barColor(){return this._barColor}set barColor(e){this._barColor!==e&&(this._barColor=e,this._setBarColor())}_setBarColor(){for(let e=0;e<this._bars.length;e++)this._bars[e].children[0].background=this._barColor}get barHeight(){return this._barHeight}set barHeight(e){this._barHeight!==e&&(this._barHeight=e,this._setBarHeight())}_setBarHeight(){for(let e=0;e<this._bars.length;e++)this._bars[e].children[0].height=this._barHeight}get spacerHeight(){return this._spacerHeight}set spacerHeight(e){this._spacerHeight!==e&&(this._spacerHeight=e,this._setSpacerHeight())}_setSpacerHeight(){for(let e=0;e<this._bars.length;e++)this._bars[e].height=this._spacerHeight}_addSpacer(){const e=new Ih;e.width=1,e.height=this._spacerHeight,e.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT;const t=new cu;t.width=1,t.height=this._barHeight,t.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,t.verticalAlignment=Lt.VERTICAL_ALIGNMENT_CENTER,t.background=this._barColor,t.color="transparent",e.addControl(t),this._panel.addControl(e),this._bars.push(e)}addGroup(e){this._groups.length>0&&this._addSpacer(),this._panel.addControl(e.groupPanel),this._groups.push(e),e.groupPanel.children[0].color=this._headerColor;for(let t=0;t<e.selectors.length;t++)e._setSelectorButtonColor(t,this._buttonColor),e._setSelectorButtonBackground(t,this._buttonBackground)}removeGroup(e){if(e<0||e>=this._groups.length)return;const t=this._groups[e];this._panel.removeControl(t.groupPanel),this._groups.splice(e,1),e<this._bars.length&&(this._panel.removeControl(this._bars[e]),this._bars.splice(e,1))}setHeaderName(e,t){if(t<0||t>=this._groups.length)return;const i=this._groups[t];i.groupPanel.children[0].text=e}relabel(e,t,i){if(t<0||t>=this._groups.length)return;const s=this._groups[t];i<0||i>=s.selectors.length||s._setSelectorLabel(i,e)}removeFromGroupSelector(e,t){if(e<0||e>=this._groups.length)return;const i=this._groups[e];t<0||t>=i.selectors.length||i.removeSelector(t)}addToGroupCheckbox(e,t,i=()=>{},s=!1){if(e<0||e>=this._groups.length)return;this._groups[e].addCheckbox(t,i,s)}addToGroupRadio(e,t,i=()=>{},s=!1){if(e<0||e>=this._groups.length)return;this._groups[e].addRadio(t,i,s)}addToGroupSlider(e,t,i=()=>{},s="Units",r=0,n=0,o=0,l=c=>c|0){if(e<0||e>=this._groups.length)return;this._groups[e].addSlider(t,i,s,r,n,o,l)}}class VQe extends Ih{get freezeControls(){return this._freezeControls}set freezeControls(e){if(this._freezeControls===e)return;e||this._restoreMeasures(),this._freezeControls=!1;const t=this.host.getSize(),i=t.width,s=t.height,r=this.host.getContext(),n=new Vc(0,0,i,s);this.host._numLayoutCalls=0,this.host._rootContainer._layout(n,r),e&&(this._updateMeasures(),this._useBuckets()&&this._makeBuckets()),this._freezeControls=e,this.host.markAsDirty()}get bucketWidth(){return this._bucketWidth}get bucketHeight(){return this._bucketHeight}setBucketSizes(e,t){this._bucketWidth=e,this._bucketHeight=t,this._useBuckets()?this._freezeControls&&this._makeBuckets():this._buckets={}}_useBuckets(){return this._bucketWidth>0&&this._bucketHeight>0}_makeBuckets(){this._buckets={},this._bucketLen=Math.ceil(this.widthInPixels/this._bucketWidth),this._dispatchInBuckets(this._children),this._oldLeft=null,this._oldTop=null}_dispatchInBuckets(e){for(let t=0;t<e.length;++t){const i=e[t],s=Math.max(0,Math.floor((i._customData._origLeft-this._customData.origLeft)/this._bucketWidth)),r=Math.floor((i._customData._origLeft-this._customData.origLeft+i._currentMeasure.width-1)/this._bucketWidth),n=Math.floor((i._customData._origTop-this._customData.origTop+i._currentMeasure.height-1)/this._bucketHeight);let o=Math.max(0,Math.floor((i._customData._origTop-this._customData.origTop)/this._bucketHeight));for(;o<=n;){for(let l=s;l<=r;++l){const c=o*this._bucketLen+l;let u=this._buckets[c];u||(u=[],this._buckets[c]=u),u.push(i)}o++}i instanceof Ih&&i._children.length>0&&this._dispatchInBuckets(i._children)}}_updateMeasures(){const e=this.leftInPixels|0,t=this.topInPixels|0;this._measureForChildren.left-=e,this._measureForChildren.top-=t,this._currentMeasure.left-=e,this._currentMeasure.top-=t,this._customData.origLeftForChildren=this._measureForChildren.left,this._customData.origTopForChildren=this._measureForChildren.top,this._customData.origLeft=this._currentMeasure.left,this._customData.origTop=this._currentMeasure.top,this._updateChildrenMeasures(this._children,e,t)}_updateChildrenMeasures(e,t,i){for(let s=0;s<e.length;++s){const r=e[s];r._currentMeasure.left-=t,r._currentMeasure.top-=i,r._customData._origLeft=r._currentMeasure.left,r._customData._origTop=r._currentMeasure.top,r instanceof Ih&&r._children.length>0&&this._updateChildrenMeasures(r._children,t,i)}}_restoreMeasures(){const e=this.leftInPixels|0,t=this.topInPixels|0;this._measureForChildren.left=this._customData.origLeftForChildren+e,this._measureForChildren.top=this._customData.origTopForChildren+t,this._currentMeasure.left=this._customData.origLeft+e,this._currentMeasure.top=this._customData.origTop+t}constructor(e){super(e),this._freezeControls=!1,this._bucketWidth=0,this._bucketHeight=0,this._buckets={}}_getTypeName(){return"ScrollViewerWindow"}_additionalProcessing(e,t){super._additionalProcessing(e,t),this._parentMeasure=e,this._measureForChildren.left=this._currentMeasure.left,this._measureForChildren.top=this._currentMeasure.top,this._measureForChildren.width=e.width,this._measureForChildren.height=e.height}_layout(e,t){return this._freezeControls?(this.invalidateRect(),!1):super._layout(e,t)}_scrollChildren(e,t,i){for(let s=0;s<e.length;++s){const r=e[s];r._currentMeasure.left=r._customData._origLeft+t,r._currentMeasure.top=r._customData._origTop+i,r._isClipped=!1,r instanceof Ih&&r._children.length>0&&this._scrollChildren(r._children,t,i)}}_scrollChildrenWithBuckets(e,t,i,s){const r=Math.max(0,Math.floor(-e/this._bucketWidth)),n=Math.floor((-e+this._parentMeasure.width-1)/this._bucketWidth),o=Math.floor((-t+this._parentMeasure.height-1)/this._bucketHeight);let l=Math.max(0,Math.floor(-t/this._bucketHeight));for(;l<=o;){for(let c=r;c<=n;++c){const u=l*this._bucketLen+c,f=this._buckets[u];if(f)for(let p=0;p<f.length;++p){const m=f[p];m._currentMeasure.left=m._customData._origLeft+i,m._currentMeasure.top=m._customData._origTop+s,m._isClipped=!1}}l++}}_draw(e,t){if(!this._freezeControls){super._draw(e,t);return}this._localDraw(e),this.clipChildren&&this._clipForChildren(e);const i=this.leftInPixels|0,s=this.topInPixels|0;this._useBuckets()?this._oldLeft!==null&&this._oldTop!==null?(this._scrollChildrenWithBuckets(this._oldLeft,this._oldTop,i,s),this._scrollChildrenWithBuckets(i,s,i,s)):this._scrollChildren(this._children,i,s):this._scrollChildren(this._children,i,s),this._oldLeft=i,this._oldTop=s;for(const r of this._children)r._intersectsRect(this._parentMeasure)&&r._render(e,this._parentMeasure)}_postMeasure(){if(this._freezeControls){super._postMeasure();return}let e=this.parentClientWidth,t=this.parentClientHeight;for(const i of this.children)!i.isVisible||i.notRenderable||(i.horizontalAlignment===Lt.HORIZONTAL_ALIGNMENT_CENTER&&i._offsetLeft(this._currentMeasure.left-i._currentMeasure.left),i.verticalAlignment===Lt.VERTICAL_ALIGNMENT_CENTER&&i._offsetTop(this._currentMeasure.top-i._currentMeasure.top),e=Math.max(e,i._currentMeasure.left-this._currentMeasure.left+i._currentMeasure.width+i.paddingRightInPixels),t=Math.max(t,i._currentMeasure.top-this._currentMeasure.top+i._currentMeasure.height+i.paddingBottomInPixels));this._currentMeasure.width!==e&&(this._width.updateInPlace(e,Ps.UNITMODE_PIXEL),this._currentMeasure.width=e,this._rebuildLayout=!0,this._isDirty=!0),this._currentMeasure.height!==t&&(this._height.updateInPlace(t,Ps.UNITMODE_PIXEL),this._currentMeasure.height=t,this._rebuildLayout=!0,this._isDirty=!0),super._postMeasure()}}class eI extends C3{get borderColor(){return this._borderColor}set borderColor(e){this._borderColor!==e&&(this._borderColor=e,this._markAsDirty())}get background(){return this._background}set background(e){this._background!==e&&(this._background=e,this._markAsDirty())}get backgroundGradient(){return this._backgroundGradient}set backgroundGradient(e){this._backgroundGradient!==e&&(this._backgroundGradient=e,this._markAsDirty())}get invertScrollDirection(){return this._invertScrollDirection}set invertScrollDirection(e){this._invertScrollDirection=e}constructor(e){super(e),this.name=e,this._background="black",this._borderColor="white",this._tempMeasure=new Vc(0,0,0,0),this._invertScrollDirection=!1,this._backgroundGradient=null}_getTypeName(){return"Scrollbar"}_getThumbThickness(){let e=0;return this._thumbWidth.isPixel?e=this._thumbWidth.getValue(this._host):e=this._backgroundBoxThickness*this._thumbWidth.getValue(this._host),e}_getBackgroundColor(e){return this._backgroundGradient?this._backgroundGradient.getCanvasGradient(e):this._background}_draw(e){e.save(),this._applyStates(e),this._prepareRenderingData("rectangle");const t=this._renderLeft,i=this._getThumbPosition();e.fillStyle=this._getBackgroundColor(e),e.fillRect(this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height),e.fillStyle=this._getColor(e),this.isVertical?(this._tempMeasure.left=t-this._effectiveBarOffset,this._tempMeasure.top=this._currentMeasure.top+i,this._tempMeasure.width=this._currentMeasure.width,this._tempMeasure.height=this._effectiveThumbThickness):(this._tempMeasure.left=this._currentMeasure.left+i,this._tempMeasure.top=this._currentMeasure.top,this._tempMeasure.width=this._effectiveThumbThickness,this._tempMeasure.height=this._currentMeasure.height),e.fillRect(this._tempMeasure.left,this._tempMeasure.top,this._tempMeasure.width,this._tempMeasure.height),e.restore()}_updateValueFromPointer(e,t){this.rotation!=0&&(this._invertTransformMatrix.transformCoordinates(e,t,this._transformedPosition),e=this._transformedPosition.x,t=this._transformedPosition.y);const i=this._invertScrollDirection?-1:1;this._first&&(this._first=!1,this._originX=e,this._originY=t,(e<this._tempMeasure.left||e>this._tempMeasure.left+this._tempMeasure.width||t<this._tempMeasure.top||t>this._tempMeasure.top+this._tempMeasure.height)&&(this.isVertical?this.value=this.minimum+(1-(t-this._currentMeasure.top)/this._currentMeasure.height)*(this.maximum-this.minimum):this.value=this.minimum+(e-this._currentMeasure.left)/this._currentMeasure.width*(this.maximum-this.minimum)));let s=0;this.isVertical?s=-((t-this._originY)/(this._currentMeasure.height-this._effectiveThumbThickness)):s=(e-this._originX)/(this._currentMeasure.width-this._effectiveThumbThickness),this.value+=i*s*(this.maximum-this.minimum),this._originX=e,this._originY=t}_onPointerDown(e,t,i,s,r){return this._first=!0,super._onPointerDown(e,t,i,s,r)}serialize(e){super.serialize(e),this.backgroundGradient&&(e.backgroundGradient={},this.backgroundGradient.serialize(e.backgroundGradient))}_parseFromContent(e,t){if(super._parseFromContent(e,t),e.backgroundGradient){const i=Le.Instantiate("BABYLON.GUI."+e.backgroundGradient.className);this.backgroundGradient=new i,this.backgroundGradient.parse(e.backgroundGradient)}}}F([G()],eI.prototype,"borderColor",null),F([G()],eI.prototype,"background",null),F([G()],eI.prototype,"invertScrollDirection",null),ve("BABYLON.GUI.Scrollbar",eI);class Mz extends C3{get invertScrollDirection(){return this._invertScrollDirection}set invertScrollDirection(e){this._invertScrollDirection=e}get backgroundImage(){return this._backgroundBaseImage}set backgroundImage(e){this._backgroundBaseImage!==e&&(this._backgroundBaseImage=e,this.isVertical&&this.num90RotationInVerticalMode!==0?e.isLoaded?(this._backgroundImage=e._rotate90(this.num90RotationInVerticalMode,!0),this._markAsDirty()):e.onImageLoadedObservable.addOnce(()=>{const t=e._rotate90(this.num90RotationInVerticalMode,!0);this._backgroundImage=t,t.isLoaded||t.onImageLoadedObservable.addOnce(()=>{this._markAsDirty()}),this._markAsDirty()}):(this._backgroundImage=e,e&&!e.isLoaded&&e.onImageLoadedObservable.addOnce(()=>{this._markAsDirty()}),this._markAsDirty()))}get thumbImage(){return this._thumbBaseImage}set thumbImage(e){this._thumbBaseImage!==e&&(this._thumbBaseImage=e,this.isVertical&&this.num90RotationInVerticalMode!==0?e.isLoaded?(this._thumbImage=e._rotate90(-this.num90RotationInVerticalMode,!0),this._markAsDirty()):e.onImageLoadedObservable.addOnce(()=>{const t=e._rotate90(-this.num90RotationInVerticalMode,!0);this._thumbImage=t,t.isLoaded||t.onImageLoadedObservable.addOnce(()=>{this._markAsDirty()}),this._markAsDirty()}):(this._thumbImage=e,e&&!e.isLoaded&&e.onImageLoadedObservable.addOnce(()=>{this._markAsDirty()}),this._markAsDirty()))}get thumbLength(){return this._thumbLength}set thumbLength(e){this._thumbLength!==e&&(this._thumbLength=e,this._markAsDirty())}get thumbHeight(){return this._thumbHeight}set thumbHeight(e){this._thumbLength!==e&&(this._thumbHeight=e,this._markAsDirty())}get barImageHeight(){return this._barImageHeight}set barImageHeight(e){this._barImageHeight!==e&&(this._barImageHeight=e,this._markAsDirty())}constructor(e){super(e),this.name=e,this._thumbLength=.5,this._thumbHeight=1,this._barImageHeight=1,this._tempMeasure=new Vc(0,0,0,0),this._invertScrollDirection=!1,this.num90RotationInVerticalMode=1}_getTypeName(){return"ImageScrollBar"}_getThumbThickness(){let e=0;return this._thumbWidth.isPixel?e=this._thumbWidth.getValue(this._host):e=this._backgroundBoxThickness*this._thumbWidth.getValue(this._host),e}_draw(e){e.save(),this._applyStates(e),this._prepareRenderingData("rectangle");const t=this._getThumbPosition(),i=this._renderLeft,s=this._renderTop,r=this._renderWidth,n=this._renderHeight;this._backgroundImage&&(this._tempMeasure.copyFromFloats(i,s,r,n),this.isVertical?(this._tempMeasure.copyFromFloats(i+r*(1-this._barImageHeight)*.5,this._currentMeasure.top,r*this._barImageHeight,n),this._tempMeasure.height+=this._effectiveThumbThickness,this._backgroundImage._currentMeasure.copyFrom(this._tempMeasure)):(this._tempMeasure.copyFromFloats(this._currentMeasure.left,s+n*(1-this._barImageHeight)*.5,r,n*this._barImageHeight),this._tempMeasure.width+=this._effectiveThumbThickness,this._backgroundImage._currentMeasure.copyFrom(this._tempMeasure)),this._backgroundImage._draw(e)),this.isVertical?this._tempMeasure.copyFromFloats(i-this._effectiveBarOffset+this._currentMeasure.width*(1-this._thumbHeight)*.5,this._currentMeasure.top+t,this._currentMeasure.width*this._thumbHeight,this._effectiveThumbThickness):this._tempMeasure.copyFromFloats(this._currentMeasure.left+t,this._currentMeasure.top+this._currentMeasure.height*(1-this._thumbHeight)*.5,this._effectiveThumbThickness,this._currentMeasure.height*this._thumbHeight),this._thumbImage&&(this._thumbImage._currentMeasure.copyFrom(this._tempMeasure),this._thumbImage._draw(e)),e.restore()}_updateValueFromPointer(e,t){this.rotation!=0&&(this._invertTransformMatrix.transformCoordinates(e,t,this._transformedPosition),e=this._transformedPosition.x,t=this._transformedPosition.y);const i=this._invertScrollDirection?-1:1;this._first&&(this._first=!1,this._originX=e,this._originY=t,(e<this._tempMeasure.left||e>this._tempMeasure.left+this._tempMeasure.width||t<this._tempMeasure.top||t>this._tempMeasure.top+this._tempMeasure.height)&&(this.isVertical?this.value=this.minimum+(1-(t-this._currentMeasure.top)/this._currentMeasure.height)*(this.maximum-this.minimum):this.value=this.minimum+(e-this._currentMeasure.left)/this._currentMeasure.width*(this.maximum-this.minimum)));let s=0;this.isVertical?s=-((t-this._originY)/(this._currentMeasure.height-this._effectiveThumbThickness)):s=(e-this._originX)/(this._currentMeasure.width-this._effectiveThumbThickness),this.value+=i*s*(this.maximum-this.minimum),this._originX=e,this._originY=t}_onPointerDown(e,t,i,s,r){return this._first=!0,super._onPointerDown(e,t,i,s,r)}}F([G()],Mz.prototype,"num90RotationInVerticalMode",void 0),F([G()],Mz.prototype,"invertScrollDirection",null);class tI extends cu{get horizontalBar(){return this._horizontalBar}get verticalBar(){return this._verticalBar}addControl(e){return e?(this._window.addControl(e),this):this}removeControl(e){return this._window.removeControl(e),this}get children(){return this._window.children}_flagDescendantsAsMatrixDirty(){for(const e of this._children)e._markMatrixAsDirty()}get freezeControls(){return this._window.freezeControls}set freezeControls(e){this._window.freezeControls=e}get bucketWidth(){return this._window.bucketWidth}get bucketHeight(){return this._window.bucketHeight}setBucketSizes(e,t){this._window.setBucketSizes(e,t)}get forceHorizontalBar(){return this._forceHorizontalBar}set forceHorizontalBar(e){this._grid.setRowDefinition(1,e?this._barSize:0,!0),this._horizontalBar.isVisible=e,this._forceHorizontalBar=e}get forceVerticalBar(){return this._forceVerticalBar}set forceVerticalBar(e){this._grid.setColumnDefinition(1,e?this._barSize:0,!0),this._verticalBar.isVisible=e,this._forceVerticalBar=e}constructor(e,t){super(e),this._barSize=20,this._pointerIsOver=!1,this._wheelPrecision=.05,this._thumbLength=.5,this._thumbHeight=1,this._barImageHeight=1,this._horizontalBarImageHeight=1,this._verticalBarImageHeight=1,this._oldWindowContentsWidth=0,this._oldWindowContentsHeight=0,this._forceHorizontalBar=!1,this._forceVerticalBar=!1,this._useImageBar=t||!1,this.onDirtyObservable.add(()=>{this._horizontalBarSpace.color=this.color,this._verticalBarSpace.color=this.color,this._dragSpace.color=this.color}),this.onPointerEnterObservable.add(()=>{this._pointerIsOver=!0}),this.onPointerOutObservable.add(()=>{this._pointerIsOver=!1}),this._grid=new r1,this._useImageBar?(this._horizontalBar=new Mz,this._verticalBar=new Mz):(this._horizontalBar=new eI,this._verticalBar=new eI),this._window=new VQe("scrollViewer_window"),this._window.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,this._window.verticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP,this._grid.addColumnDefinition(1),this._grid.addColumnDefinition(0,!0),this._grid.addRowDefinition(1),this._grid.addRowDefinition(0,!0),super.addControl(this._grid),this._grid.addControl(this._window,0,0),this._verticalBarSpace=new cu,this._verticalBarSpace.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,this._verticalBarSpace.verticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP,this._verticalBarSpace.thickness=1,this._grid.addControl(this._verticalBarSpace,0,1),this._addBar(this._verticalBar,this._verticalBarSpace,!0,Math.PI),this._horizontalBarSpace=new cu,this._horizontalBarSpace.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,this._horizontalBarSpace.verticalAlignment=Lt.VERTICAL_ALIGNMENT_TOP,this._horizontalBarSpace.thickness=1,this._grid.addControl(this._horizontalBarSpace,1,0),this._addBar(this._horizontalBar,this._horizontalBarSpace,!1,0),this._dragSpace=new cu,this._dragSpace.thickness=1,this._grid.addControl(this._dragSpace,1,1),this._grid.clipChildren=!1,this._useImageBar||(this.barColor="grey",this.barBackground="transparent")}resetWindow(){this._window.width="100%",this._window.height="100%"}_getTypeName(){return"ScrollViewer"}_buildClientSizes(){const e=this.host.idealRatio;this._window.parentClientWidth=this._currentMeasure.width-(this._verticalBar.isVisible||this.forceVerticalBar?this._barSize*e:0)-2*this.thickness,this._window.parentClientHeight=this._currentMeasure.height-(this._horizontalBar.isVisible||this.forceHorizontalBar?this._barSize*e:0)-2*this.thickness,this._clientWidth=this._window.parentClientWidth,this._clientHeight=this._window.parentClientHeight}_additionalProcessing(e,t){super._additionalProcessing(e,t),this._buildClientSizes()}_postMeasure(){super._postMeasure(),this._updateScroller(),this._setWindowPosition(!1)}get wheelPrecision(){return this._wheelPrecision}set wheelPrecision(e){this._wheelPrecision!==e&&(e<0&&(e=0),e>1&&(e=1),this._wheelPrecision=e)}get scrollBackground(){return this._horizontalBarSpace.background}set scrollBackground(e){this._horizontalBarSpace.background!==e&&(this._horizontalBarSpace.background=e,this._verticalBarSpace.background=e)}get barColor(){return this._barColor}set barColor(e){this._barColor!==e&&(this._barColor=e,this._horizontalBar.color=e,this._verticalBar.color=e)}get thumbImage(){return this._barImage}set thumbImage(e){if(this._barImage===e)return;this._barImage=e;const t=this._horizontalBar,i=this._verticalBar;t.thumbImage=e,i.thumbImage=e}get horizontalThumbImage(){return this._horizontalBarImage}set horizontalThumbImage(e){if(this._horizontalBarImage===e)return;this._horizontalBarImage=e;const t=this._horizontalBar;t.thumbImage=e}get verticalThumbImage(){return this._verticalBarImage}set verticalThumbImage(e){if(this._verticalBarImage===e)return;this._verticalBarImage=e;const t=this._verticalBar;t.thumbImage=e}get barSize(){return this._barSize}set barSize(e){this._barSize!==e&&(this._barSize=e,this._markAsDirty(),this._horizontalBar.isVisible&&this._grid.setRowDefinition(1,this._barSize,!0),this._verticalBar.isVisible&&this._grid.setColumnDefinition(1,this._barSize,!0))}get thumbLength(){return this._thumbLength}set thumbLength(e){if(this._thumbLength===e)return;e<=0&&(e=.1),e>1&&(e=1),this._thumbLength=e;const t=this._horizontalBar,i=this._verticalBar;t.thumbLength=e,i.thumbLength=e,this._markAsDirty()}get thumbHeight(){return this._thumbHeight}set thumbHeight(e){if(this._thumbHeight===e)return;e<=0&&(e=.1),e>1&&(e=1),this._thumbHeight=e;const t=this._horizontalBar,i=this._verticalBar;t.thumbHeight=e,i.thumbHeight=e,this._markAsDirty()}get barImageHeight(){return this._barImageHeight}set barImageHeight(e){if(this._barImageHeight===e)return;e<=0&&(e=.1),e>1&&(e=1),this._barImageHeight=e;const t=this._horizontalBar,i=this._verticalBar;t.barImageHeight=e,i.barImageHeight=e,this._markAsDirty()}get horizontalBarImageHeight(){return this._horizontalBarImageHeight}set horizontalBarImageHeight(e){if(this._horizontalBarImageHeight===e)return;e<=0&&(e=.1),e>1&&(e=1),this._horizontalBarImageHeight=e;const t=this._horizontalBar;t.barImageHeight=e,this._markAsDirty()}get verticalBarImageHeight(){return this._verticalBarImageHeight}set verticalBarImageHeight(e){if(this._verticalBarImageHeight===e)return;e<=0&&(e=.1),e>1&&(e=1),this._verticalBarImageHeight=e;const t=this._verticalBar;t.barImageHeight=e,this._markAsDirty()}get barBackground(){return this._barBackground}set barBackground(e){if(this._barBackground===e)return;this._barBackground=e;const t=this._horizontalBar,i=this._verticalBar;t.background=e,i.background=e,this._dragSpace.background=e}get barImage(){return this._barBackgroundImage}set barImage(e){this._barBackgroundImage=e;const t=this._horizontalBar,i=this._verticalBar;t.backgroundImage=e,i.backgroundImage=e}get horizontalBarImage(){return this._horizontalBarBackgroundImage}set horizontalBarImage(e){this._horizontalBarBackgroundImage=e;const t=this._horizontalBar;t.backgroundImage=e}get verticalBarImage(){return this._verticalBarBackgroundImage}set verticalBarImage(e){this._verticalBarBackgroundImage=e;const t=this._verticalBar;t.backgroundImage=e}_setWindowPosition(e=!0){const t=this.host.idealRatio,i=this._window._currentMeasure.width,s=this._window._currentMeasure.height;if(!e&&this._oldWindowContentsWidth===i&&this._oldWindowContentsHeight===s)return;this._oldWindowContentsWidth=i,this._oldWindowContentsHeight=s;const r=this._clientWidth-i,n=this._clientHeight-s,o=this._horizontalBar.value/t*r+"px",l=this._verticalBar.value/t*n+"px";o!==this._window.left&&(this._window.left=o,this.freezeControls||(this._rebuildLayout=!0)),l!==this._window.top&&(this._window.top=l,this.freezeControls||(this._rebuildLayout=!0))}_updateScroller(){const e=this._window._currentMeasure.width,t=this._window._currentMeasure.height;this._horizontalBar.isVisible&&e<=this._clientWidth&&!this.forceHorizontalBar?(this._grid.setRowDefinition(1,0,!0),this._horizontalBar.isVisible=!1,this._horizontalBar.value=0,this._rebuildLayout=!0):!this._horizontalBar.isVisible&&(e>this._clientWidth||this.forceHorizontalBar)&&(this._grid.setRowDefinition(1,this._barSize,!0),this._horizontalBar.isVisible=!0,this._rebuildLayout=!0),this._verticalBar.isVisible&&t<=this._clientHeight&&!this.forceVerticalBar?(this._grid.setColumnDefinition(1,0,!0),this._verticalBar.isVisible=!1,this._verticalBar.value=0,this._rebuildLayout=!0):!this._verticalBar.isVisible&&(t>this._clientHeight||this.forceVerticalBar)&&(this._grid.setColumnDefinition(1,this._barSize,!0),this._verticalBar.isVisible=!0,this._rebuildLayout=!0),this._buildClientSizes();const i=this.host.idealRatio;this._horizontalBar.thumbWidth=this._thumbLength*.9*(this._clientWidth/i)+"px",this._verticalBar.thumbWidth=this._thumbLength*.9*(this._clientHeight/i)+"px"}_link(e){super._link(e),this._attachWheel()}_addBar(e,t,i,s){e.paddingLeft=0,e.width="100%",e.height="100%",e.barOffset=0,e.value=0,e.maximum=1,e.horizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_CENTER,e.verticalAlignment=Lt.VERTICAL_ALIGNMENT_CENTER,e.isVertical=i,e.rotation=s,e.isVisible=!1,t.addControl(e),e.onValueChangedObservable.add(()=>{this._setWindowPosition()})}_attachWheel(){!this._host||this._onWheelObserver||(this._onWheelObserver=this.onWheelObservable.add(e=>{!this._pointerIsOver||this.isReadOnly||(this._verticalBar.isVisible==!0&&(e.y<0&&this._verticalBar.value>0?this._verticalBar.value-=this._wheelPrecision:e.y>0&&this._verticalBar.value<this._verticalBar.maximum&&(this._verticalBar.value+=this._wheelPrecision)),this._horizontalBar.isVisible==!0&&(e.x<0&&this._horizontalBar.value<this._horizontalBar.maximum?this._horizontalBar.value+=this._wheelPrecision:e.x>0&&this._horizontalBar.value>0&&(this._horizontalBar.value-=this._wheelPrecision)))}))}_renderHighlightSpecific(e){this.isHighlighted&&(super._renderHighlightSpecific(e),this._grid._renderHighlightSpecific(e),e.restore())}dispose(){this.onWheelObservable.remove(this._onWheelObserver),this._onWheelObserver=null,super.dispose()}}F([G()],tI.prototype,"wheelPrecision",null),F([G()],tI.prototype,"scrollBackground",null),F([G()],tI.prototype,"barColor",null),F([G()],tI.prototype,"barSize",null),F([G()],tI.prototype,"barBackground",null),ve("BABYLON.GUI.ScrollViewer",tI);class yLe extends cu{get group(){return this._group}set group(e){this._group!==e&&(this._group=e)}get isActive(){return this._isActive}set isActive(e){var t,i;this._isActive!==e&&(this._isActive=e,this._isActive?(t=this.toActiveAnimation)==null||t.call(this):(i=this.toInactiveAnimation)==null||i.call(this),this._markAsDirty(),this.onIsActiveChangedObservable.notifyObservers(e),this._isActive&&this._host&&this._group&&this._host.executeOnAllControls(s=>{if(s.typeName==="ToggleButton"){if(s===this)return;const r=s;r.group===this.group&&(r.isActive=!1)}}))}constructor(e,t){super(e),this.name=e,this.onIsActiveChangedObservable=new xe,this.delegatePickingToChildren=!1,this._isActive=!1,this.group=t??"",this.thickness=0,this.isPointerBlocker=!0;let i=null;this.toActiveAnimation=()=>{this.thickness=1},this.toInactiveAnimation=()=>{this.thickness=0},this.pointerEnterActiveAnimation=()=>{i=this.alpha,this.alpha-=.1},this.pointerOutActiveAnimation=()=>{i!==null&&(this.alpha=i)},this.pointerDownActiveAnimation=()=>{this.scaleX-=.05,this.scaleY-=.05},this.pointerUpActiveAnimation=()=>{this.scaleX+=.05,this.scaleY+=.05},this.pointerEnterInactiveAnimation=()=>{i=this.alpha,this.alpha-=.1},this.pointerOutInactiveAnimation=()=>{i!==null&&(this.alpha=i)},this.pointerDownInactiveAnimation=()=>{this.scaleX-=.05,this.scaleY-=.05},this.pointerUpInactiveAnimation=()=>{this.scaleX+=.05,this.scaleY+=.05}}_getTypeName(){return"ToggleButton"}_processPicking(e,t,i,s,r,n,o,l){if(!this._isEnabled||!this.isHitTestVisible||!this.isVisible||this.notRenderable||!super.contains(e,t))return!1;if(this.delegatePickingToChildren){let c=!1;for(let u=this._children.length-1;u>=0;u--){const f=this._children[u];if(f.isEnabled&&f.isHitTestVisible&&f.isVisible&&!f.notRenderable&&f.contains(e,t)){c=!0;break}}if(!c)return!1}return this._processObservables(s,e,t,i,r,n,o,l),!0}_onPointerEnter(e,t){return super._onPointerEnter(e,t)?(this.isReadOnly||(this._isActive?this.pointerEnterActiveAnimation&&this.pointerEnterActiveAnimation():this.pointerEnterInactiveAnimation&&this.pointerEnterInactiveAnimation()),!0):!1}_onPointerOut(e,t,i=!1){this.isReadOnly||(this._isActive?this.pointerOutActiveAnimation&&this.pointerOutActiveAnimation():this.pointerOutInactiveAnimation&&this.pointerOutInactiveAnimation()),super._onPointerOut(e,t,i)}_onPointerDown(e,t,i,s,r){return super._onPointerDown(e,t,i,s,r)?(this.isReadOnly||(this._isActive?this.pointerDownActiveAnimation&&this.pointerDownActiveAnimation():this.pointerDownInactiveAnimation&&this.pointerDownInactiveAnimation()),!0):!1}_onPointerUp(e,t,i,s,r,n){this.isReadOnly||(this._isActive?this.pointerUpActiveAnimation&&this.pointerUpActiveAnimation():this.pointerUpInactiveAnimation&&this.pointerUpInactiveAnimation()),super._onPointerUp(e,t,i,s,r,n)}}ve("BABYLON.GUI.ToggleButton",yLe);class GQe{}class WY extends s1{constructor(){super(...arguments),this.onKeyPressObservable=new xe,this.defaultButtonWidth="40px",this.defaultButtonHeight="40px",this.defaultButtonPaddingLeft="2px",this.defaultButtonPaddingRight="2px",this.defaultButtonPaddingTop="2px",this.defaultButtonPaddingBottom="2px",this.defaultButtonColor="#DDD",this.defaultButtonBackground="#070707",this.shiftButtonColor="#7799FF",this.selectedShiftThickness=1,this.shiftState=0,this._currentlyConnectedInputText=null,this._connectedInputTexts=[],this._onKeyPressObserver=null}_getTypeName(){return"VirtualKeyboard"}_createKey(e,t){const i=C5.CreateSimpleButton(e,e);return i.width=t&&t.width?t.width:this.defaultButtonWidth,i.height=t&&t.height?t.height:this.defaultButtonHeight,i.color=t&&t.color?t.color:this.defaultButtonColor,i.background=t&&t.background?t.background:this.defaultButtonBackground,i.paddingLeft=t&&t.paddingLeft?t.paddingLeft:this.defaultButtonPaddingLeft,i.paddingRight=t&&t.paddingRight?t.paddingRight:this.defaultButtonPaddingRight,i.paddingTop=t&&t.paddingTop?t.paddingTop:this.defaultButtonPaddingTop,i.paddingBottom=t&&t.paddingBottom?t.paddingBottom:this.defaultButtonPaddingBottom,i.thickness=0,i.isFocusInvisible=!0,i.shadowColor=this.shadowColor,i.shadowBlur=this.shadowBlur,i.shadowOffsetX=this.shadowOffsetX,i.shadowOffsetY=this.shadowOffsetY,i.onPointerUpObservable.add(()=>{this.onKeyPressObservable.notifyObservers(e)}),i}addKeysRow(e,t){const i=new s1;i.isVertical=!1,i.isFocusInvisible=!0;let s=null;for(let r=0;r<e.length;r++){let n=null;t&&t.length===e.length&&(n=t[r]);const o=this._createKey(e[r],n);(!s||o.heightInPixels>s.heightInPixels)&&(s=o),i.addControl(o)}i.height=s?s.height:this.defaultButtonHeight,this.addControl(i)}applyShiftState(e){if(this.children)for(let t=0;t<this.children.length;t++){const i=this.children[t];if(!i||!i.children)continue;const s=i;for(let r=0;r<s.children.length;r++){const n=s.children[r];if(!n||!n.children[0])continue;const o=n.children[0];o.text==="⇧"&&(n.color=e?this.shiftButtonColor:this.defaultButtonColor,n.thickness=e>1?this.selectedShiftThickness:0),o.text=e>0?o.text.toUpperCase():o.text.toLowerCase()}}}get connectedInputText(){return this._currentlyConnectedInputText}connect(e){if(this._connectedInputTexts.some(r=>r.input===e))return;this._onKeyPressObserver===null&&(this._onKeyPressObserver=this.onKeyPressObservable.add(r=>{if(this._currentlyConnectedInputText){switch(this._currentlyConnectedInputText._host.focusedControl=this._currentlyConnectedInputText,r){case"⇧":this.shiftState++,this.shiftState>2&&(this.shiftState=0),this.applyShiftState(this.shiftState);return;case"←":this._currentlyConnectedInputText instanceof $L?this._currentlyConnectedInputText.alternativeProcessKey("Backspace"):this._currentlyConnectedInputText.processKey(8);return;case"↵":this._currentlyConnectedInputText instanceof $L?this._currentlyConnectedInputText.alternativeProcessKey("Enter"):this._currentlyConnectedInputText.processKey(13);return}this._currentlyConnectedInputText instanceof $L?this._currentlyConnectedInputText.alternativeProcessKey("",this.shiftState?r.toUpperCase():r):this._currentlyConnectedInputText.processKey(-1,this.shiftState?r.toUpperCase():r),this.shiftState===1&&(this.shiftState=0,this.applyShiftState(this.shiftState))}})),this.isVisible=!1,this._currentlyConnectedInputText=e,e._connectedVirtualKeyboard=this;const i=e.onFocusObservable.add(()=>{this._currentlyConnectedInputText=e,e._connectedVirtualKeyboard=this,this.isVisible=!0}),s=e.onBlurObservable.add(()=>{e._connectedVirtualKeyboard=null,this._currentlyConnectedInputText=null,this.isVisible=!1});this._connectedInputTexts.push({input:e,onBlurObserver:s,onFocusObserver:i})}disconnect(e){if(e){const t=this._connectedInputTexts.filter(i=>i.input===e);t.length===1&&(this._removeConnectedInputObservables(t[0]),this._connectedInputTexts=this._connectedInputTexts.filter(i=>i.input!==e),this._currentlyConnectedInputText===e&&(this._currentlyConnectedInputText=null))}else this._connectedInputTexts.forEach(t=>{this._removeConnectedInputObservables(t)}),this._connectedInputTexts.length=0;this._connectedInputTexts.length===0&&(this._currentlyConnectedInputText=null,this.onKeyPressObservable.remove(this._onKeyPressObserver),this._onKeyPressObserver=null)}_removeConnectedInputObservables(e){e.input._connectedVirtualKeyboard=null,e.input.onFocusObservable.remove(e.onFocusObserver),e.input.onBlurObservable.remove(e.onBlurObserver)}dispose(){super.dispose(),this.disconnect()}static CreateDefaultLayout(e){const t=new WY(e);return t.addKeysRow(["1","2","3","4","5","6","7","8","9","0","←"]),t.addKeysRow(["q","w","e","r","t","y","u","i","o","p"]),t.addKeysRow(["a","s","d","f","g","h","j","k","l",";","'","↵"]),t.addKeysRow(["⇧","z","x","c","v","b","n","m",",",".","/"]),t.addKeysRow([" "],[{width:"200px"}]),t}_parseFromContent(e,t){super._parseFromContent(e,t);for(const i of this.children)if(i.getClassName()==="StackPanel"){const s=i;for(const r of s.children)r.getClassName()==="Button"&&r.name&&r.onPointerUpObservable.add(()=>{this.onKeyPressObservable.notifyObservers(r.name)})}}}ve("BABYLON.GUI.VirtualKeyboard",WY);class y_ extends Lt{get displayMinorLines(){return this._displayMinorLines}set displayMinorLines(e){this._displayMinorLines!==e&&(this._displayMinorLines=e,this._markAsDirty())}get displayMajorLines(){return this._displayMajorLines}set displayMajorLines(e){this._displayMajorLines!==e&&(this._displayMajorLines=e,this._markAsDirty())}get background(){return this._background}set background(e){this._background!==e&&(this._background=e,this._markAsDirty())}get cellWidth(){return this._cellWidth}set cellWidth(e){this._cellWidth=e,this._markAsDirty()}get cellHeight(){return this._cellHeight}set cellHeight(e){this._cellHeight=e,this._markAsDirty()}get minorLineTickness(){return this._minorLineTickness}set minorLineTickness(e){this._minorLineTickness=e,this._markAsDirty()}get minorLineColor(){return this._minorLineColor}set minorLineColor(e){this._minorLineColor=e,this._markAsDirty()}get majorLineTickness(){return this._majorLineTickness}set majorLineTickness(e){this._majorLineTickness=e,this._markAsDirty()}get majorLineColor(){return this._majorLineColor}set majorLineColor(e){this._majorLineColor=e,this._markAsDirty()}get majorLineFrequency(){return this._majorLineFrequency}set majorLineFrequency(e){this._majorLineFrequency=e,this._markAsDirty()}constructor(e){super(e),this.name=e,this._cellWidth=20,this._cellHeight=20,this._minorLineTickness=1,this._minorLineColor="DarkGray",this._majorLineTickness=2,this._majorLineColor="White",this._majorLineFrequency=5,this._background="Black",this._displayMajorLines=!0,this._displayMinorLines=!0}_draw(e){if(e.save(),this._applyStates(e),this._isEnabled){this._background&&(e.fillStyle=this._background,e.fillRect(this._currentMeasure.left,this._currentMeasure.top,this._currentMeasure.width,this._currentMeasure.height));const t=this._currentMeasure.width/this._cellWidth,i=this._currentMeasure.height/this._cellHeight,s=this._currentMeasure.left+this._currentMeasure.width/2,r=this._currentMeasure.top+this._currentMeasure.height/2;if(this._displayMinorLines){e.strokeStyle=this._minorLineColor,e.lineWidth=this._minorLineTickness;for(let n=-t/2+1;n<t/2;n++){const o=s+n*this.cellWidth;e.beginPath(),e.moveTo(o,this._currentMeasure.top),e.lineTo(o,this._currentMeasure.top+this._currentMeasure.height),e.stroke()}for(let n=-i/2+1;n<i/2;n++){const o=r+n*this.cellHeight;e.beginPath(),e.moveTo(this._currentMeasure.left,o),e.lineTo(this._currentMeasure.left+this._currentMeasure.width,o),e.stroke()}}if(this._displayMajorLines){e.strokeStyle=this._majorLineColor,e.lineWidth=this._majorLineTickness;for(let n=-t/2+this._majorLineFrequency;n<t/2;n+=this._majorLineFrequency){const o=s+n*this.cellWidth;e.beginPath(),e.moveTo(o,this._currentMeasure.top),e.lineTo(o,this._currentMeasure.top+this._currentMeasure.height),e.stroke()}for(let n=-i/2+this._majorLineFrequency;n<i/2;n+=this._majorLineFrequency){const o=r+n*this.cellHeight;e.moveTo(this._currentMeasure.left,o),e.lineTo(this._currentMeasure.left+this._currentMeasure.width,o),e.closePath(),e.stroke()}}}e.restore()}_getTypeName(){return"DisplayGrid"}}F([G()],y_.prototype,"displayMinorLines",null),F([G()],y_.prototype,"displayMajorLines",null),F([G()],y_.prototype,"background",null),F([G()],y_.prototype,"cellWidth",null),F([G()],y_.prototype,"cellHeight",null),F([G()],y_.prototype,"minorLineTickness",null),F([G()],y_.prototype,"minorLineColor",null),F([G()],y_.prototype,"majorLineTickness",null),F([G()],y_.prototype,"majorLineColor",null),F([G()],y_.prototype,"majorLineFrequency",null),ve("BABYLON.GUI.DisplayGrid",y_);class Uce extends C3{get displayThumb(){return this._displayThumb&&this.thumbImage!=null}set displayThumb(e){this._displayThumb!==e&&(this._displayThumb=e,this._markAsDirty())}get backgroundImage(){return this._backgroundImage}set backgroundImage(e){this._backgroundImage!==e&&(this._backgroundImage=e,e&&!e.isLoaded&&e.onImageLoadedObservable.addOnce(()=>this._markAsDirty()),this._markAsDirty())}get valueBarImage(){return this._valueBarImage}set valueBarImage(e){this._valueBarImage!==e&&(this._valueBarImage=e,e&&!e.isLoaded&&e.onImageLoadedObservable.addOnce(()=>this._markAsDirty()),this._markAsDirty())}get thumbImage(){return this._thumbImage}set thumbImage(e){this._thumbImage!==e&&(this._thumbImage=e,e&&!e.isLoaded&&e.onImageLoadedObservable.addOnce(()=>this._markAsDirty()),this._markAsDirty())}constructor(e){super(e),this.name=e,this._tempMeasure=new Vc(0,0,0,0)}_getTypeName(){return"ImageBasedSlider"}_draw(e){e.save(),this._applyStates(e),this._prepareRenderingData("rectangle");const t=this._getThumbPosition(),i=this._renderLeft,s=this._renderTop,r=this._renderWidth,n=this._renderHeight;this._backgroundImage&&(this._tempMeasure.copyFromFloats(i,s,r,n),this.isThumbClamped&&this.displayThumb&&(this.isVertical?this._tempMeasure.height+=this._effectiveThumbThickness:this._tempMeasure.width+=this._effectiveThumbThickness),this._backgroundImage._currentMeasure.copyFrom(this._tempMeasure),this._backgroundImage._draw(e)),this._valueBarImage&&(this.isVertical?this.isThumbClamped&&this.displayThumb?this._tempMeasure.copyFromFloats(i,s+t,r,n-t+this._effectiveThumbThickness):this._tempMeasure.copyFromFloats(i,s+t,r,n-t):this.isThumbClamped&&this.displayThumb?this._tempMeasure.copyFromFloats(i,s,t+this._effectiveThumbThickness/2,n):this._tempMeasure.copyFromFloats(i,s,t,n),this._valueBarImage._currentMeasure.copyFrom(this._tempMeasure),this._valueBarImage._draw(e)),this.displayThumb&&(this.isVertical?this._tempMeasure.copyFromFloats(i-this._effectiveBarOffset,this._currentMeasure.top+t,this._currentMeasure.width,this._effectiveThumbThickness):this._tempMeasure.copyFromFloats(this._currentMeasure.left+t,this._currentMeasure.top,this._effectiveThumbThickness,this._currentMeasure.height),this._thumbImage._currentMeasure.copyFrom(this._tempMeasure),this._thumbImage._draw(e)),e.restore()}serialize(e){super.serialize(e);const t={},i={},s={};this.backgroundImage.serialize(t),this.thumbImage.serialize(i),this.valueBarImage.serialize(s),e.backgroundImage=t,e.thumbImage=i,e.valueBarImage=s}_parseFromContent(e,t){super._parseFromContent(e,t),this.backgroundImage=In.Parse(e.backgroundImage,t),this.thumbImage=In.Parse(e.thumbImage,t),this.valueBarImage=In.Parse(e.valueBarImage,t)}}F([G()],Uce.prototype,"displayThumb",null),ve("BABYLON.GUI.ImageBasedSlider",Uce);const WQe="Statics";Lt.AddHeader=function(a,e,t,i){const s=new s1("panel"),r=i?i.isHorizontal:!0,n=i?i.controlFirst:!0;s.isVertical=!r;const o=new ia("header");return o.text=e,o.textHorizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,r?o.width=t:o.height=t,n?(s.addControl(a),s.addControl(o),o.paddingLeft="5px"):(s.addControl(o),s.addControl(a),o.paddingRight="5px"),o.shadowBlur=a.shadowBlur,o.shadowColor=a.shadowColor,o.shadowOffsetX=a.shadowOffsetX,o.shadowOffsetY=a.shadowOffsetY,s};class jce{constructor(){this._colorStops=[],this._gradientDirty=!0}_addColorStopsToCanvasGradient(){for(const e of this._colorStops)this._canvasGradient.addColorStop(e.offset,e.color)}getCanvasGradient(e){return(this._gradientDirty||this._context!==e)&&(this._context=e,this._canvasGradient=this._createCanvasGradient(e),this._addColorStopsToCanvasGradient(),this._gradientDirty=!1),this._canvasGradient}addColorStop(e,t){this._colorStops.push({offset:e,color:t}),this._gradientDirty=!0}removeColorStop(e){this._colorStops=this._colorStops.filter(t=>t.offset!==e),this._gradientDirty=!0}clearColorStops(){this._colorStops=[],this._gradientDirty=!0}get colorStops(){return this._colorStops}getClassName(){return"BaseGradient"}serialize(e){e.colorStops=this._colorStops,e.className=this.getClassName()}parse(e){this._colorStops=e.colorStops}}class MLe extends jce{constructor(e,t,i,s){super(),this._x0=e??0,this._y0=t??0,this._x1=i??0,this._y1=s??0}_createCanvasGradient(e){return e.createLinearGradient(this._x0,this._y0,this._x1,this._y1)}get x0(){return this._x0}get x1(){return this._x1}get y0(){return this._y0}get y1(){return this._y1}getClassName(){return"LinearGradient"}serialize(e){super.serialize(e),e.x0=this._x0,e.y0=this._y0,e.x1=this._x1,e.y1=this._y1}parse(e){super.parse(e),this._x0=e.x0,this._y0=e.y0,this._x1=e.x1,this._y1=e.y1}}ve("BABYLON.GUI.LinearGradient",MLe);class ELe extends jce{constructor(e,t,i,s,r,n){super(),this._x0=e??0,this._y0=t??0,this._r0=i??0,this._x1=s??0,this._y1=r??0,this._r1=n??0}_createCanvasGradient(e){return e.createRadialGradient(this._x0,this._y0,this._r0,this._x1,this._y1,this._r1)}get x0(){return this._x0}get x1(){return this._x1}get y0(){return this._y0}get y1(){return this._y1}get r0(){return this._r0}get r1(){return this._r1}getClassName(){return"RadialGradient"}serialize(e){super.serialize(e),e.x0=this._x0,e.y0=this._y0,e.r0=this._r0,e.x1=this._x1,e.y1=this._y1,e.r1=this._r1}parse(e){super.parse(e),this._x0=e.x0,this._y0=e.y0,this._r0=e.r0,this._x1=e.x1,this._y1=e.y1,this._r1=e.r1}}ve("BABYLON.GUI.RadialGradient",ELe);class TLe{constructor(e){this._fontFamily="Arial",this._fontStyle="",this._fontWeight="",this._fontSize=new Ps(18,Ps.UNITMODE_PIXEL,!1),this.onChangedObservable=new xe,this._host=e}get fontSize(){return this._fontSize.toString(this._host)}set fontSize(e){this._fontSize.toString(this._host)!==e&&this._fontSize.fromString(e)&&this.onChangedObservable.notifyObservers(this)}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.onChangedObservable.notifyObservers(this))}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this.onChangedObservable.notifyObservers(this))}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.onChangedObservable.notifyObservers(this))}dispose(){this.onChangedObservable.clear()}}class Go extends uf{get numLayoutCalls(){return this._numLayoutCalls}get numRenderCalls(){return this._numRenderCalls}get adjustToEngineHardwareScalingLevel(){return this._adjustToEngineHardwareScalingLevel}set adjustToEngineHardwareScalingLevel(e){this._adjustToEngineHardwareScalingLevel!==e&&(this._adjustToEngineHardwareScalingLevel=e,this._onResize())}get renderScale(){return this._renderScale}set renderScale(e){e!==this._renderScale&&(this._renderScale=e,this._onResize())}get background(){return this._background}set background(e){this._background!==e&&(this._background=e,this.markAsDirty())}get idealWidth(){return this._idealWidth}set idealWidth(e){this._idealWidth!==e&&(this._idealWidth=e,this.markAsDirty(),this._rootContainer._markAllAsDirty())}get idealHeight(){return this._idealHeight}set idealHeight(e){this._idealHeight!==e&&(this._idealHeight=e,this.markAsDirty(),this._rootContainer._markAllAsDirty())}get useSmallestIdeal(){return this._useSmallestIdeal}set useSmallestIdeal(e){this._useSmallestIdeal!==e&&(this._useSmallestIdeal=e,this.markAsDirty(),this._rootContainer._markAllAsDirty())}get renderAtIdealSize(){return this._renderAtIdealSize}set renderAtIdealSize(e){this._renderAtIdealSize!==e&&(this._renderAtIdealSize=e,this._onResize())}get idealRatio(){let e=0,t=0;return this._idealWidth&&(e=this.getSize().width/this._idealWidth),this._idealHeight&&(t=this.getSize().height/this._idealHeight),this._useSmallestIdeal&&this._idealWidth&&this._idealHeight?window.innerWidth<window.innerHeight?e:t:this._idealWidth?e:this._idealHeight?t:1}get layer(){return this._layerToDispose}get rootContainer(){return this._rootContainer}getChildren(){return[this._rootContainer]}getDescendants(e,t){return this._rootContainer.getDescendants(e,t)}getControlsByType(e){return this._rootContainer.getDescendants(!1,t=>t.typeName===e)}getControlByName(e){return this._getControlByKey("name",e)}_getControlByKey(e,t){return this._rootContainer.getDescendants().find(i=>i[e]===t)||null}get focusedControl(){return this._focusedControl}set focusedControl(e){this._focusedControl!=e&&(this._focusedControl&&this._focusedControl.onBlur(),e&&e.onFocus(),this._focusedControl=e)}get isForeground(){return this.layer?!this.layer.isBackground:!0}set isForeground(e){this.layer&&this.layer.isBackground!==!e&&(this.layer.isBackground=!e)}get clipboardData(){return this._clipboardData}set clipboardData(e){this._clipboardData=e}constructor(e,t,i=0,s,r=!1,n=be.NEAREST_SAMPLINGMODE,o=!0){t=t??0;const l=typeof t=="object"&&t!==void 0?t.width??0:t??0,c=typeof t=="object"&&t!==void 0?t.height??0:i;if(super(e,{width:l,height:c},typeof t=="object"&&t!==void 0?t:s,r,n,ze.TEXTUREFORMAT_RGBA,o),this.useStandalone=!1,this.onGuiReadyObservable=new xe,this._isDirty=!1,this._rootContainer=new Ih("root"),this._lastControlOver={},this._lastControlDown={},this._capturingControl={},this._linkedControls=new Array,this._isFullscreen=!1,this._fullscreenViewport=new Tc(0,0,1,1),this._idealWidth=0,this._idealHeight=0,this._useSmallestIdeal=!1,this._renderAtIdealSize=!1,this._blockNextFocusCheck=!1,this._renderScale=1,this._cursorChanged=!1,this._defaultMousePointerId=0,this._rootChildrenHaveChanged=!1,this._adjustToEngineHardwareScalingLevel=!1,this._capturedPointerIds=new Set,this._numLayoutCalls=0,this._numRenderCalls=0,this._clipboardData="",this.onClipboardObservable=new xe,this.onControlPickedObservable=new xe,this.onBeginLayoutObservable=new xe,this.onEndLayoutObservable=new xe,this.onBeginRenderObservable=new xe,this.onEndRenderObservable=new xe,this.premulAlpha=!1,this.applyYInversionOnUpdate=!0,this.disableTabNavigation=!1,this.disablePicking=!1,this.usePointerTapForClickEvent=!1,this.skipBlockEvents=0,this.checkPointerEveryFrame=!1,this._useInvalidateRectOptimization=!0,this._invalidatedRectangle=null,this._alreadyRegisteredForRender=!1,this._clearMeasure=new Vc(0,0,0,0),this._focusProperties={index:0,total:-1},this._onClipboardCopy=f=>{const p=f,m=new XW(M4.COPY,p);this.onClipboardObservable.notifyObservers(m),p.preventDefault()},this._onClipboardCut=f=>{const p=f,m=new XW(M4.CUT,p);this.onClipboardObservable.notifyObservers(m),p.preventDefault()},this._onClipboardPaste=f=>{const p=f,m=new XW(M4.PASTE,p);this.onClipboardObservable.notifyObservers(m),p.preventDefault()},this.parseContent=this.parseSerializedObject,s=this.getScene(),!s||!this._texture)return;this.applyYInversionOnUpdate=o,this._rootElement=s.getEngine().getInputElement();const u=t;this.useStandalone=!!(u!=null&&u.useStandalone),this.useStandalone||(this._renderObserver=s.onBeforeCameraRenderObservable.add(f=>this._checkUpdate(f))),this._controlAddedObserver=this._rootContainer.onControlAddedObservable.add(f=>{f&&(this._rootChildrenHaveChanged=!0)}),this._controlRemovedObserver=this._rootContainer.onControlRemovedObservable.add(f=>{f&&(this._rootChildrenHaveChanged=!0)}),this._preKeyboardObserver=s.onPreKeyboardObservable.add(f=>{if(!this.disableTabNavigation&&f.type===x4.KEYDOWN&&f.event.code==="Tab"){const p=!f.event.shiftKey;if(p&&this._focusProperties.index===this._focusProperties.total-1||!p&&this._focusProperties.index===0&&this._focusProperties.total>0){this.focusedControl=null,this._focusProperties.index=0,this._focusProperties.total=-1;return}this._focusNextElement(p),f.event.preventDefault();return}this._focusedControl&&(f.type===x4.KEYDOWN&&this._focusedControl.processKeyboard(f.event),f.skipOnPointerObservable=!0)}),this._rootContainer._link(this),this.hasAlpha=!0,(!l||!c)&&(this._resizeObserver=s.getEngine().onResizeObservable.add(()=>this._onResize()),this._onResize()),this._texture.isReady=!0}getClassName(){return"AdvancedDynamicTexture"}executeOnAllControls(e,t){t||(t=this._rootContainer),e(t);for(const i of t.children){if(i.children){this.executeOnAllControls(e,i);continue}e(i)}}get useInvalidateRectOptimization(){return this._useInvalidateRectOptimization}set useInvalidateRectOptimization(e){this._useInvalidateRectOptimization=e}invalidateRect(e,t,i,s){if(this._useInvalidateRectOptimization)if(!this._invalidatedRectangle)this._invalidatedRectangle=new Vc(e,t,i-e+1,s-t+1);else{const r=Math.ceil(Math.max(this._invalidatedRectangle.left+this._invalidatedRectangle.width-1,i)),n=Math.ceil(Math.max(this._invalidatedRectangle.top+this._invalidatedRectangle.height-1,s));this._invalidatedRectangle.left=Math.floor(Math.min(this._invalidatedRectangle.left,e)),this._invalidatedRectangle.top=Math.floor(Math.min(this._invalidatedRectangle.top,t)),this._invalidatedRectangle.width=r-this._invalidatedRectangle.left+1,this._invalidatedRectangle.height=n-this._invalidatedRectangle.top+1}}markAsDirty(){this._isDirty=!0}createStyle(){return new TLe(this)}addControl(e){return this._rootContainer.addControl(e),this}removeControl(e){return this._rootContainer.removeControl(e),this}moveToNonOverlappedPosition(e,t=1,i=1){let s;if(Array.isArray(e))s=e;else{const r=this.getDescendants(!0);s=e===void 0?r.filter(n=>n.overlapGroup!==void 0):r.filter(n=>n.overlapGroup===e)}s.forEach(r=>{let n=Ue.Zero();const o=new Ue(r.centerX,r.centerY);s.forEach(l=>{if(r!==l&&Go._Overlaps(r,l)){const c=o.subtract(new Ue(l.centerX,l.centerY)),u=c.length();u>0&&(n=n.add(c.normalize().scale(i/u)))}}),n.length()>0&&(n=n.normalize().scale(t*(r.overlapDeltaMultiplier??1)),r.linkOffsetXInPixels+=n.x,r.linkOffsetYInPixels+=n.y)})}dispose(){const e=this.getScene();e&&(this._rootElement=null,e.onBeforeCameraRenderObservable.remove(this._renderObserver),this._resizeObserver&&e.getEngine().onResizeObservable.remove(this._resizeObserver),this._prePointerObserver&&e.onPrePointerObservable.remove(this._prePointerObserver),this._sceneRenderObserver&&e.onBeforeRenderObservable.remove(this._sceneRenderObserver),this._pointerObserver&&e.onPointerObservable.remove(this._pointerObserver),this._preKeyboardObserver&&e.onPreKeyboardObservable.remove(this._preKeyboardObserver),this._canvasPointerOutObserver&&e.getEngine().onCanvasPointerOutObservable.remove(this._canvasPointerOutObserver),this._canvasBlurObserver&&e.getEngine().onCanvasBlurObservable.remove(this._canvasBlurObserver),this._controlAddedObserver&&this._rootContainer.onControlAddedObservable.remove(this._controlAddedObserver),this._controlRemovedObserver&&this._rootContainer.onControlRemovedObservable.remove(this._controlRemovedObserver),this._layerToDispose&&(this._layerToDispose.texture=null,this._layerToDispose.dispose(),this._layerToDispose=null),this._rootContainer.dispose(),this.onClipboardObservable.clear(),this.onControlPickedObservable.clear(),this.onBeginRenderObservable.clear(),this.onEndRenderObservable.clear(),this.onBeginLayoutObservable.clear(),this.onEndLayoutObservable.clear(),this.onGuiReadyObservable.clear(),super.dispose())}_onResize(){const e=this.getScene();if(!e)return;const t=e.getEngine();this.adjustToEngineHardwareScalingLevel&&(this._renderScale=t.getHardwareScalingLevel());const i=this.getSize();let s=t.getRenderWidth()*this._renderScale,r=t.getRenderHeight()*this._renderScale;this._renderAtIdealSize&&(this._idealWidth?(r=r*this._idealWidth/s,s=this._idealWidth):this._idealHeight&&(s=s*this._idealHeight/r,r=this._idealHeight)),(i.width!==s||i.height!==r)&&(this.scaleTo(s,r),this.markAsDirty(),(this._idealWidth||this._idealHeight)&&this._rootContainer._markAllAsDirty(),this._alreadyRegisteredForRender||(this._alreadyRegisteredForRender=!0,Le.SetImmediate(()=>{this.update(this.applyYInversionOnUpdate,this.premulAlpha,Go.AllowGPUOptimizations),this._alreadyRegisteredForRender=!1}))),this.invalidateRect(0,0,i.width-1,i.height-1)}_getGlobalViewport(){const e=this.getSize(),t=this._fullscreenViewport.toGlobal(e.width,e.height),i=Math.round(t.width*(1/this.rootContainer.scaleX)),s=Math.round(t.height*(1/this.rootContainer.scaleY));return t.x+=(t.width-i)/2,t.y+=(t.height-s)/2,t.width=i,t.height=s,t}getProjectedPosition(e,t){const i=this.getProjectedPositionWithZ(e,t);return new Ue(i.x,i.y)}getProjectedPositionWithZ(e,t){const i=this.getScene();if(!i)return P.Zero();const s=this._getGlobalViewport(),r=P.Project(e,t,i.getTransformMatrix(),s);return new P(r.x,r.y,r.z)}_checkUpdate(e,t){if(!(this._layerToDispose&&e&&!(e.layerMask&this._layerToDispose.layerMask))){if(this._isFullscreen&&this._linkedControls.length){const i=this.getScene();if(!i)return;const s=this._getGlobalViewport();for(const r of this._linkedControls){if(!r.isVisible)continue;const n=r._linkedMesh;if(!n||n.isDisposed()){Le.SetImmediate(()=>{r.linkWithMesh(null)});continue}const o=n.getBoundingInfo?n.getBoundingInfo().boundingSphere.center:P.ZeroReadOnly,l=P.Project(o,n.getWorldMatrix(),i.getTransformMatrix(),s);if(l.z<0||l.z>1){r.notRenderable=!0;continue}r.notRenderable=!1,this.useInvalidateRectOptimization&&r.invalidateRect(),r._moveToProjectedPosition(l)}}!this._isDirty&&!this._rootContainer.isDirty||(this._isDirty=!1,this._render(t),t||this.update(this.applyYInversionOnUpdate,this.premulAlpha,Go.AllowGPUOptimizations))}}_render(e){var o;const t=this.getSize(),i=t.width,s=t.height,r=this.getContext();if(r.font="18px Arial",r.strokeStyle="white",this.onGuiReadyObservable.hasObservers()&&this._checkGuiIsReady(),this._rootChildrenHaveChanged){const l=(o=this.getScene())==null?void 0:o.activeCamera;l&&(this._rootChildrenHaveChanged=!1,this._checkUpdate(l,!0))}this.onBeginLayoutObservable.notifyObservers(this);const n=new Vc(0,0,i,s);this._numLayoutCalls=0,this._rootContainer._layout(n,r),this.onEndLayoutObservable.notifyObservers(this),this._isDirty=!1,!e&&(this._invalidatedRectangle?this._clearMeasure.copyFrom(this._invalidatedRectangle):this._clearMeasure.copyFromFloats(0,0,i,s),r.clearRect(this._clearMeasure.left,this._clearMeasure.top,this._clearMeasure.width,this._clearMeasure.height),this._background&&(r.save(),r.fillStyle=this._background,r.fillRect(this._clearMeasure.left,this._clearMeasure.top,this._clearMeasure.width,this._clearMeasure.height),r.restore()),this.onBeginRenderObservable.notifyObservers(this),this._numRenderCalls=0,this._rootContainer._render(r,this._invalidatedRectangle),this.onEndRenderObservable.notifyObservers(this),this._invalidatedRectangle=null)}_changeCursor(e){this._rootElement&&(this._rootElement.style.cursor=e,this._cursorChanged=!0)}_registerLastControlDown(e,t){this._lastControlDown[t]=e,this.onControlPickedObservable.notifyObservers(e)}_doPicking(e,t,i,s,r,n,o,l){const c=this.getScene();if(!c||this.disablePicking)return;const u=c.getEngine(),f=this.getSize();if(this._isFullscreen){const p=c.cameraToUseForPointers||c.activeCamera;if(!p)return;const m=p.viewport;e=e*(f.width/(u.getRenderWidth()*m.width)),t=t*(f.height/(u.getRenderHeight()*m.height))}if(this._capturingControl[r]){this._capturingControl[r].isPointerBlocker&&(this._shouldBlockPointer=!0),this._capturingControl[r]._processObservables(s,e,t,i,r,n);return}this._cursorChanged=!1,this._rootContainer._processPicking(e,t,i,s,r,n,o,l)||(c.doNotHandleCursors||this._changeCursor(""),s===Xt.POINTERMOVE&&this._lastControlOver[r]&&(this._lastControlOver[r]._onPointerOut(this._lastControlOver[r],i),delete this._lastControlOver[r])),!this._cursorChanged&&!c.doNotHandleCursors&&this._changeCursor(""),this._manageFocus()}_cleanControlAfterRemovalFromList(e,t){for(const i in e){if(!Object.prototype.hasOwnProperty.call(e,i))continue;e[i]===t&&delete e[i]}}_cleanControlAfterRemoval(e){this._cleanControlAfterRemovalFromList(this._lastControlDown,e),this._cleanControlAfterRemovalFromList(this._lastControlOver,e)}pick(e,t,i=null){this._isFullscreen&&this._scene&&this._translateToPicking(this._scene,new Tc(0,0,0,0),i,e,t)}_translateToPicking(e,t,i,s=e.pointerX,r=e.pointerY){const n=e.cameraToUseForPointers||e.activeCamera,o=e.getEngine(),l=e.cameraToUseForPointers;if(!n)t.x=0,t.y=0,t.width=o.getRenderWidth(),t.height=o.getRenderHeight();else if(n.rigCameras.length){const f=new Tc(0,0,1,1);n.rigCameras.forEach(p=>{p.viewport.toGlobalToRef(o.getRenderWidth(),o.getRenderHeight(),f);const m=s/o.getHardwareScalingLevel()-f.x,_=r/o.getHardwareScalingLevel()-(o.getRenderHeight()-f.y-f.height);m<0||_<0||s>f.width||r>f.height||(e.cameraToUseForPointers=p,t.x=f.x,t.y=f.y,t.width=f.width,t.height=f.height)})}else n.viewport.toGlobalToRef(o.getRenderWidth(),o.getRenderHeight(),t);const c=s/o.getHardwareScalingLevel()-t.x,u=r/o.getHardwareScalingLevel()-(o.getRenderHeight()-t.y-t.height);if(this._shouldBlockPointer=!1,i){const f=i.event.pointerId||this._defaultMousePointerId;this._doPicking(c,u,i,i.type,f,i.event.button,i.event.deltaX,i.event.deltaY),(this._shouldBlockPointer&&!(i.type&this.skipBlockEvents)||this._capturingControl[f])&&(i.skipOnPointerObservable=!0)}else this._doPicking(c,u,null,Xt.POINTERMOVE,this._defaultMousePointerId,0);e.cameraToUseForPointers=l}attach(){const e=this.getScene();if(!e)return;const t=new Tc(0,0,0,0);this._prePointerObserver=e.onPrePointerObservable.add(i=>{if(!(e.isPointerCaptured(i.event.pointerId)&&i.type===Xt.POINTERUP&&!this._capturedPointerIds.has(i.event.pointerId))&&!(i.type!==Xt.POINTERMOVE&&i.type!==Xt.POINTERUP&&i.type!==Xt.POINTERDOWN&&i.type!==Xt.POINTERWHEEL&&i.type!==Xt.POINTERTAP)){if(i.type===Xt.POINTERMOVE){if(e.isPointerCaptured(i.event.pointerId))return;i.event.pointerId&&(this._defaultMousePointerId=i.event.pointerId)}this._translateToPicking(e,t,i)}}),this._attachPickingToSceneRender(e,()=>this._translateToPicking(e,t,null),!1),this._attachToOnPointerOut(e),this._attachToOnBlur(e)}_focusNextElement(e=!0){const t=[];if(this.executeOnAllControls(s=>{s.isFocusInvisible||!s.isVisible||s.tabIndex<0||t.push(s)}),t.length===0)return;t.sort((s,r)=>s.tabIndex===0?1:r.tabIndex===0?-1:s.tabIndex-r.tabIndex),this._focusProperties.total=t.length;let i=-1;this._focusedControl?(i=t.indexOf(this._focusedControl)+(e?1:-1),i<0?i=t.length-1:i>=t.length&&(i=0)):i=e?0:t.length-1,t[i].focus(),this._focusProperties.index=i}registerClipboardEvents(){self.addEventListener("copy",this._onClipboardCopy,!1),self.addEventListener("cut",this._onClipboardCut,!1),self.addEventListener("paste",this._onClipboardPaste,!1)}unRegisterClipboardEvents(){self.removeEventListener("copy",this._onClipboardCopy),self.removeEventListener("cut",this._onClipboardCut),self.removeEventListener("paste",this._onClipboardPaste)}_transformUvs(e){const t=this.getTextureMatrix();let i;if(t.isIdentityAs3x2())i=e;else{const s=ae.Matrix[0];t.getRowToRef(0,ae.Vector4[0]),t.getRowToRef(1,ae.Vector4[1]),t.getRowToRef(2,ae.Vector4[2]);const r=ae.Vector4[0],n=ae.Vector4[1],o=ae.Vector4[2];s.setRowFromFloats(0,r.x,r.y,0,0),s.setRowFromFloats(1,n.x,n.y,0,0),s.setRowFromFloats(2,0,0,1,0),s.setRowFromFloats(3,o.x,o.y,0,1),i=ae.Vector2[0],Ue.TransformToRef(e,s,i)}if((this.wrapU===be.WRAP_ADDRESSMODE||this.wrapU===be.MIRROR_ADDRESSMODE)&&i.x>1){let s=i.x-Math.trunc(i.x);this.wrapU===be.MIRROR_ADDRESSMODE&&Math.trunc(i.x)%2===1&&(s=1-s),i.x=s}if((this.wrapV===be.WRAP_ADDRESSMODE||this.wrapV===be.MIRROR_ADDRESSMODE)&&i.y>1){let s=i.y-Math.trunc(i.y);this.wrapV===be.MIRROR_ADDRESSMODE&&Math.trunc(i.x)%2===1&&(s=1-s),i.y=s}return i}attachToMesh(e,t=!0){const i=this.getScene();i&&(this._pointerObserver&&i.onPointerObservable.remove(this._pointerObserver),this._pointerObserver=i.onPointerObservable.add(s=>{if(s.type!==Xt.POINTERMOVE&&s.type!==Xt.POINTERUP&&s.type!==Xt.POINTERDOWN&&s.type!==Xt.POINTERWHEEL)return;s.type===Xt.POINTERMOVE&&s.event.pointerId&&(this._defaultMousePointerId=s.event.pointerId);const r=s.event.pointerId||this._defaultMousePointerId;if(s.pickInfo&&s.pickInfo.hit&&s.pickInfo.pickedMesh===e){let n=s.pickInfo.getTextureCoordinates();if(n){n=this._transformUvs(n);const o=this.getSize();this._doPicking(n.x*o.width,(this.applyYInversionOnUpdate?1-n.y:n.y)*o.height,s,s.type,r,s.event.button,s.event.deltaX,s.event.deltaY)}}else if(s.type===Xt.POINTERUP){if(this._lastControlDown[r]&&this._lastControlDown[r]._forcePointerUp(r),delete this._lastControlDown[r],this.focusedControl){const n=this.focusedControl.keepsFocusWith();let o=!0;if(n)for(const l of n){if(this===l._host)continue;const c=l._host;if(c._lastControlOver[r]&&c._lastControlOver[r].isAscendant(l)){o=!1;break}}o&&(this.focusedControl=null)}}else s.type===Xt.POINTERMOVE&&(this._lastControlOver[r]&&this._lastControlOver[r]._onPointerOut(this._lastControlOver[r],s,!0),delete this._lastControlOver[r])}),e.enablePointerMoveEvents=t,this._attachPickingToSceneRender(i,()=>{const s=this._defaultMousePointerId,r=i==null?void 0:i.pick(i.pointerX,i.pointerY);if(r&&r.hit&&r.pickedMesh===e){let n=r.getTextureCoordinates();if(n){n=this._transformUvs(n);const o=this.getSize();this._doPicking(n.x*o.width,(this.applyYInversionOnUpdate?1-n.y:n.y)*o.height,null,Xt.POINTERMOVE,s,0)}}else this._lastControlOver[s]&&this._lastControlOver[s]._onPointerOut(this._lastControlOver[s],null,!0),delete this._lastControlOver[s]},!0),this._attachToOnPointerOut(i),this._attachToOnBlur(i))}moveFocusToControl(e){this.focusedControl=e,this._lastPickedControl=e,this._blockNextFocusCheck=!0}_manageFocus(){if(this._blockNextFocusCheck){this._blockNextFocusCheck=!1,this._lastPickedControl=this._focusedControl;return}if(this._focusedControl&&this._focusedControl!==this._lastPickedControl){if(this._lastPickedControl.isFocusInvisible)return;this.focusedControl=null}}_attachPickingToSceneRender(e,t,i){this._sceneRenderObserver=e.onBeforeRenderObservable.add(()=>{this.checkPointerEveryFrame&&(this._linkedControls.length>0||i)&&t()})}_attachToOnPointerOut(e){this._canvasPointerOutObserver=e.getEngine().onCanvasPointerOutObservable.add(t=>{this._lastControlOver[t.pointerId]&&this._lastControlOver[t.pointerId]._onPointerOut(this._lastControlOver[t.pointerId],null),delete this._lastControlOver[t.pointerId],this._lastControlDown[t.pointerId]&&this._lastControlDown[t.pointerId]!==this._capturingControl[t.pointerId]&&(this._lastControlDown[t.pointerId]._forcePointerUp(t.pointerId),delete this._lastControlDown[t.pointerId])})}_attachToOnBlur(e){this._canvasBlurObserver=e.getEngine().onCanvasBlurObservable.add(()=>{Object.entries(this._lastControlDown).forEach(([,t])=>{t._onCanvasBlur()}),this.focusedControl=null,this._lastControlDown={}})}serializeContent(){const e=this.getSize(),t={root:{},width:e.width,height:e.height};return this._rootContainer.serialize(t.root),t}parseSerializedObject(e,t,i){if(this._rootContainer=Lt.Parse(e.root,this,i),t){const s=e.width,r=e.height;typeof s=="number"&&typeof r=="number"&&s>=0&&r>=0?this.scaleTo(s,r):this.scaleTo(1920,1080)}}clone(e,t){const i=this.getScene();if(!i)return this;const s=this.getSize(),r=this.serializeContent();let n;return this._isFullscreen?n=Go.CreateFullscreenUI(e??"Clone of "+this.name):t?n=Go.CreateForMesh(t,s.width,s.height):n=new Go(e??"Clone of "+this.name,s.width,s.height,i,!this.noMipmap,this.samplingMode),n.parseSerializedObject(r),n}static async ParseFromSnippetAsync(e,t,i,s){const r=i??Go.CreateFullscreenUI("ADT from snippet");if(e==="_BLANK")return r;const n=await Go._LoadURLContentAsync(Go.SnippetUrl+"/"+e.replace(/#/g,"/"),!0);return r.parseSerializedObject(n,t,s),r}parseFromSnippetAsync(e,t,i){return Go.ParseFromSnippetAsync(e,t,this,i)}static async ParseFromFileAsync(e,t,i,s){const r=i??Go.CreateFullscreenUI("ADT from URL"),n=await Go._LoadURLContentAsync(e);return r.parseSerializedObject(n,t,s),r}parseFromURLAsync(e,t,i){return Go.ParseFromFileAsync(e,t,this,i)}static _LoadURLContentAsync(e,t=!1){return e===""?Promise.reject("No URL provided"):new Promise((i,s)=>{const r=new ha;r.addEventListener("readystatechange",()=>{if(r.readyState==4)if(r.status==200){let n;if(t){const l=JSON.parse(JSON.parse(r.responseText).jsonPayload);n=l.encodedGui?new TextDecoder("utf-8").decode(cw(l.encodedGui)):l.gui}else n=r.responseText;const o=JSON.parse(n);i(o)}else s("Unable to load")}),r.open("GET",e),r.send()})}static _Overlaps(e,t){return!(e.centerX>t.centerX+t.widthInPixels||e.centerX+e.widthInPixels<t.centerX||e.centerY+e.heightInPixels<t.centerY||e.centerY>t.centerY+t.heightInPixels)}static CreateForMesh(e,t=1024,i=1024,s=!0,r=!1,n,o=this._CreateMaterial,l=be.TRILINEAR_SAMPLINGMODE){const c=e3(),u=new Go(`AdvancedDynamicTexture for ${e.name} [${c}]`,t,i,e.getScene(),!0,l,n);return o(e,c,u,r),u.attachToMesh(e,s),u}static _CreateMaterial(e,t,i,s){const r=ea("BABYLON.StandardMaterial");if(!r)throw"StandardMaterial needs to be imported before as it contains a side-effect required by your code.";const n=new r(`AdvancedDynamicTextureMaterial for ${e.name} [${t}]`,e.getScene());n.backFaceCulling=!1,n.diffuseColor=Pe.Black(),n.specularColor=Pe.Black(),s?(n.diffuseTexture=i,n.emissiveTexture=i,i.hasAlpha=!0):(n.emissiveTexture=i,n.opacityTexture=i),e.material=n}static CreateForMeshTexture(e,t=1024,i=1024,s=!0,r,n=be.TRILINEAR_SAMPLINGMODE){const o=new Go(e.name+" AdvancedDynamicTexture",t,i,e.getScene(),!0,n,r);return o.attachToMesh(e,s),o}static CreateFullscreenUI(e,t=!0,i=null,s=be.BILINEAR_SAMPLINGMODE,r=!1){const o=!i||i._isScene?new Go(e,0,0,i,!1,s):new Go(e,i),l=o.getScene(),c=new dO(e+"_layer",null,l,!t);return c.texture=o,o._layerToDispose=c,o._isFullscreen=!0,o.useStandalone&&(c.layerMask=0),o.adjustToEngineHardwareScalingLevel=r,o.attach(),o}scale(e){super.scale(e),this.markAsDirty()}scaleTo(e,t){super.scaleTo(e,t),this.markAsDirty()}_checkGuiIsReady(){this.guiIsReady()&&(this.onGuiReadyObservable.notifyObservers(this),this.onGuiReadyObservable.clear())}guiIsReady(){return this._rootContainer.isReady()}}Go.SnippetUrl=ze.SnippetUrl,Go.AllowGPUOptimizations=!0;class HQe{get renderTimeCounter(){return this._renderTime}get layoutTimeCounter(){return this._layoutTime}get captureRenderTime(){return this._captureRenderTime}set captureRenderTime(e){e!==this._captureRenderTime&&(this._captureRenderTime=e,e?(this._onBeginRenderObserver=this.texture.onBeginRenderObservable.add(()=>{this._renderTime.beginMonitoring()}),this._onEndRenderObserver=this.texture.onEndRenderObservable.add(()=>{this._renderTime.endMonitoring(!0)})):(this.texture.onBeginRenderObservable.remove(this._onBeginRenderObserver),this._onBeginRenderObserver=null,this.texture.onEndRenderObservable.remove(this._onEndRenderObserver),this._onEndRenderObserver=null))}get captureLayoutTime(){return this._captureLayoutTime}set captureLayoutTime(e){e!==this._captureLayoutTime&&(this._captureLayoutTime=e,e?(this._onBeginLayoutObserver=this.texture.onBeginLayoutObservable.add(()=>{this._layoutTime.beginMonitoring()}),this._onEndLayoutObserver=this.texture.onEndLayoutObservable.add(()=>{this._layoutTime.endMonitoring(!0)})):(this.texture.onBeginLayoutObservable.remove(this._onBeginLayoutObserver),this._onBeginLayoutObserver=null,this.texture.onEndLayoutObservable.remove(this._onEndLayoutObserver),this._onEndLayoutObserver=null))}constructor(e){this.texture=e,this._captureRenderTime=!1,this._renderTime=new wo,this._captureLayoutTime=!1,this._layoutTime=new wo,this._onBeginRenderObserver=null,this._onEndRenderObserver=null,this._onBeginLayoutObserver=null,this._onEndLayoutObserver=null}dispose(){this.texture.onBeginRenderObservable.remove(this._onBeginRenderObserver),this._onBeginRenderObserver=null,this.texture.onEndRenderObservable.remove(this._onEndRenderObserver),this._onEndRenderObserver=null,this.texture.onBeginLayoutObservable.remove(this._onBeginLayoutObserver),this._onBeginLayoutObserver=null,this.texture.onEndLayoutObservable.remove(this._onEndLayoutObserver),this._onEndLayoutObserver=null,this.texture=null}}class LLe extends q1{get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._adt.disablePicking=e}get gui(){return this._adt}constructor(e,t,i){if(super(e,t),i){if(!i.useStandalone)throw new Error(`AdvancedDynamicTexture "${e}": the texture must have been created with the useStandalone property set to true`)}else i=Go.CreateFullscreenUI(e,void 0,{useStandalone:!0});this._adt=i,this.outputTexture=this._frameGraph.textureManager.createDanglingHandle()}isReady(){return this._adt.guiIsReady()&&this._adt._layerToDispose.isReady()}record(){if(this.targetTexture===void 0)throw new Error("FrameGraphGUITask: targetTexture is required");this._frameGraph.textureManager.resolveDanglingHandle(this.outputTexture,this.targetTexture);const e=this._frameGraph.addRenderPass(this.name);e.setRenderTarget(this.outputTexture),e.setExecuteFunc(i=>{this._adt._checkUpdate(null),i.render(this._adt._layerToDispose)});const t=this._frameGraph.addRenderPass(this.name+"_disabled",!0);t.setRenderTarget(this.outputTexture),t.setExecuteFunc(i=>{})}dispose(){this._adt.dispose(),super.dispose()}}class ILe extends Hu{get task(){return this._frameGraphTask}get gui(){return this._frameGraphTask.gui}constructor(e,t,i){super(e,t,i),this.registerInput("target",zt.Texture),this._addDependenciesInput(),this.registerOutput("output",zt.BasedOnInput),this.target.addAcceptedConnectionPointTypes(zt.TextureAll),this.output._typeConnectionSource=this.target,this._gui=Go.CreateFullscreenUI(this.name,void 0,{useStandalone:!0}),this._frameGraphTask=new LLe(this.name,t,this._gui)}getClassName(){return"GUI.NodeRenderGraphGUIBlock"}get target(){return this._inputs[0]}get output(){return this._outputs[0]}_buildBlock(e){var t;super._buildBlock(e),this.output.value=this._frameGraphTask.outputTexture,this._frameGraphTask.targetTexture=(t=this.target.connectedPoint)==null?void 0:t.value}}ve("BABYLON.GUI.NodeRenderGraphGUIBlock",ILe);const PLe="XmlLoader Exception : XML file is malformed or corrupted.";class YQe{constructor(e=null){this._nodes={},this._nodeTypes={element:1,attribute:2,text:3},this._isLoaded=!1,this._objectAttributes={textHorizontalAlignment:1,textVerticalAlignment:2,horizontalAlignment:3,verticalAlignment:4,stretch:5},e&&(this._parentClass=e)}_getChainElement(e){let t=window;this._parentClass&&(t=this._parentClass);let i=e;i=i.split(".");for(let s=0;s<i.length;s++)t=t[i[s]];return t}_getClassAttribute(e){const t=e.split(".");return ea("BABYLON.GUI."+t[0])[t[1]]}_createGuiElement(e,t,i=!0){try{const s=ea("BABYLON.GUI."+e.nodeName),r=new s;t&&i&&t.addControl(r);for(let o=0;o<e.attributes.length;o++)if(!e.attributes[o].name.toLowerCase().includes("datasource"))if(e.attributes[o].name.toLowerCase().includes("observable")){const l=this._getChainElement(e.attributes[o].value);r[e.attributes[o].name].add(l);continue}else if(e.attributes[o].name=="linkWithMesh")this._parentClass?r.linkWithMesh(this._parentClass[e.attributes[o].value]):r.linkWithMesh(window[e.attributes[o].value]);else if(e.attributes[o].value.match(/{{.*}}/)){const l=e.attributes[o].value.match(/{{(.*)}}/);let c=this._getChainElement(l[1]);e.attributes[o].value.startsWith("{{")&&e.attributes[o].value.endsWith("}}")||(c=e.attributes[o].value.replace(/{{.*}}/,`${c}`)),r[e.attributes[o].name]=c}else this._objectAttributes[e.attributes[o].name]?r[e.attributes[o].name]=this._getClassAttribute(e.attributes[o].value):e.attributes[o].value=="true"||e.attributes[o].value=="false"?r[e.attributes[o].name]=e.attributes[o].value=="true":r[e.attributes[o].name]=isNaN(Number(e.attributes[o].value))?e.attributes[o].value:Number(e.attributes[o].value);if(!e.attributes.getNamedItem("id"))return this._nodes[e.nodeName+Object.keys(this._nodes).length+"_gen"]=r,r;let n=e.attributes.getNamedItem("id").value;if(n.startsWith("{{")&&n.endsWith("}}")&&(n=this._getChainElement(n.substring(2,n.length-2))),!this._nodes[n])this._nodes[n]=r;else throw"XmlLoader Exception : Duplicate ID, every element should have an unique ID attribute";return r}catch(s){throw"XmlLoader Exception : Error parsing Control "+e.nodeName+","+s+"."}}_parseGrid(e,t,i){let s,r,n;const o=e.children;let l,c=!1,u,f=-1,p=-1,m=0;for(let _=0;_<o.length;_++)if(o[_].nodeType==this._nodeTypes.element){if(o[_].nodeName!="Row")throw"XmlLoader Exception : Expecting Row node, received "+o[_].nodeName;if(f+=1,n=o[_].children,!o[_].attributes.getNamedItem("height"))throw"XmlLoader Exception : Height must be defined for grid rows";r=Number(o[_].attributes.getNamedItem("height").nodeValue),c=o[_].attributes.getNamedItem("isPixel")?JSON.parse(o[_].attributes.getNamedItem("isPixel").nodeValue):!1,t.addRowDefinition(r,c);for(let d=0;d<n.length;d++)if(n[d].nodeType==this._nodeTypes.element){if(n[d].nodeName!="Column")throw"XmlLoader Exception : Expecting Column node, received "+n[d].nodeName;if(p+=1,f>0&&p>m)throw"XmlLoader Exception : In the Grid element, the number of columns is defined in the first row, do not add more columns in the subsequent rows.";if(f==0){if(!n[d].attributes.getNamedItem("width"))throw"XmlLoader Exception : Width must be defined for all the grid columns in the first row";s=Number(n[d].attributes.getNamedItem("width").nodeValue),c=n[d].attributes.getNamedItem("isPixel")?JSON.parse(n[d].attributes.getNamedItem("isPixel").nodeValue):!1,t.addColumnDefinition(s,c)}l=n[d].children;for(let h=0;h<l.length;h++)l[h].nodeType==this._nodeTypes.element&&(u=this._createGuiElement(l[h],t,!1),t.addControl(u,f,p),l[h].firstChild&&this._parseXml(l[h].firstChild,u))}f==0&&(m=p),p=-1}e.nextSibling&&this._parseXml(e.nextSibling,i)}_parseElement(e,t,i){e.firstChild&&this._parseXml(e.firstChild,t),e.nextSibling&&this._parseXml(e.nextSibling,i)}_prepareSourceElement(e,t,i,s,r){this._parentClass?this._parentClass[i]=s[r]:window[i]=s[r],e.firstChild&&this._parseXml(e.firstChild,t,!0)}_parseElementsFromSource(e,t,i){const s=e.attributes.getNamedItem("dataSource").value;if(s.includes(" in ")){let r=!0;const n=s.split(" in ");if(n.length<2)throw"XmlLoader Exception : Malformed XML, Data Source must have an iterator and a source";let o=n[1];if(o.startsWith("{")&&o.endsWith("}")&&(r=!1),(!r||o.startsWith("[")&&o.endsWith("]"))&&(o=o.substring(1,o.length-1)),this._parentClass?o=this._parentClass[o]:o=window[o],r)for(let l=0;l<o.length;l++)this._prepareSourceElement(e,t,n[0],o,l);else for(const l in o)this._prepareSourceElement(e,t,n[0],o,l);e.nextSibling&&this._parseXml(e.nextSibling,i)}else throw"XmlLoader Exception : Malformed XML, Data Source must include an in"}_parseXml(e,t,i=!1){if(e.nodeType!=this._nodeTypes.element){e.nextSibling&&this._parseXml(e.nextSibling,t,i);return}i&&e.setAttribute("id",t.id+(t._children.length+1));const s=this._createGuiElement(e,t);this._rootNode||(this._rootNode=s),e.nodeName=="Grid"?this._parseGrid(e,s,t):e.attributes.getNamedItem("dataSource")?this._parseElementsFromSource(e,s,t):this._parseElement(e,s,t)}isLoaded(){return this._isLoaded}getNodeById(e){return this._nodes[e]}getNodes(){return this._nodes}dispose(){this._rootNode&&(this._rootNode.dispose(),this._rootNode=null,this._nodes={})}loadLayout(e,t,i=null,s=null){const r=new XMLHttpRequest;r.onload=()=>{if(r.readyState===4&&r.status===200){if(!r.responseXML)if(s){s(PLe);return}else throw PLe;const n=r.responseXML.documentElement;this._parseXml(n.firstChild,t),this._isLoaded=!0,i&&i()}},r.onerror=function(){s&&s("an error occurred during loading the layout")},r.open("GET",e,!0),r.send()}async loadLayoutAsync(e,t){return new Promise((i,s)=>{this.loadLayout(e,t,i,s)})}}class HY extends P{constructor(e,t=0){super(e.x,e.y,e.z),this.buttonIndex=t}}class Ez{get position(){return this._node?this._node.position:(this._position=this._position||P.Zero(),this._position)}set position(e){this._position=e,this._node&&(this._node.position=this._position)}get scaling(){return this._node?this._node.scaling:(this._scaling=this.scaling||new P(1,1,1),this._scaling)}set scaling(e){this._scaling=e,this._node&&(this._isScaledByManager=!1,this._node.scaling=this._scaling)}get behaviors(){return this._behaviors}addBehavior(e){if(this._behaviors.indexOf(e)!==-1)return this;e.init();const i=this._host.scene;return i.isLoading?i.onDataLoadedObservable.addOnce(()=>{e.attach(this)}):e.attach(this),this._behaviors.push(e),this}removeBehavior(e){const t=this._behaviors.indexOf(e);return t===-1?this:(this._behaviors[t].detach(),this._behaviors.splice(t,1),this)}getBehaviorByName(e){for(const t of this._behaviors)if(t.name===e)return t;return null}get isVisible(){return this._isVisible}set isVisible(e){if(this._isVisible===e)return;this._isVisible=e;const t=this.mesh;t&&t.setEnabled(e)}constructor(e){this.name=e,this._downCount=0,this._enterCount=-1,this._downPointerIds={},this._isVisible=!0,this._isScaledByManager=!1,this.onPointerMoveObservable=new xe,this.onPointerOutObservable=new xe,this.onPointerDownObservable=new xe,this.onPointerUpObservable=new xe,this.onPointerClickObservable=new xe,this.onPointerEnterObservable=new xe,this._behaviors=new Array}get typeName(){return this._getTypeName()}getClassName(){return this._getTypeName()}_getTypeName(){return"Control3D"}get node(){return this._node}get mesh(){return this._node instanceof cr?this._node:null}linkToTransformNode(e){return this._node&&(this._node.parent=e),this}_prepareNode(e){if(!this._node){if(this._node=this._createNode(e),!this.node)return;this._position&&(this.node.position=this._position),this._scaling&&(this.node.scaling=this._scaling),this._injectGUI3DReservedDataStore(this.node).control=this;const t=this.mesh;t&&(t.isPickable=!0,this._affectMaterial(t))}}_injectGUI3DReservedDataStore(e){return e.reservedDataStore=e.reservedDataStore??{},e.reservedDataStore.GUI3D=e.reservedDataStore.GUI3D??{},e.reservedDataStore.GUI3D}_createNode(e){return null}_affectMaterial(e){e.material=null}_isTouchButton3D(e){return e._generatePointerEventType!==void 0}_onPointerMove(e,t){this.onPointerMoveObservable.notifyObservers(t,-1,e,this)}_onPointerEnter(e){return this._enterCount===-1&&(this._enterCount=0),this._enterCount++,this._enterCount>1?!1:(this.onPointerEnterObservable.notifyObservers(this,-1,e,this),this.pointerEnterAnimation&&this.pointerEnterAnimation(),!0)}_onPointerOut(e){this._enterCount--,!(this._enterCount>0)&&(this._enterCount=0,this.onPointerOutObservable.notifyObservers(this,-1,e,this),this.pointerOutAnimation&&this.pointerOutAnimation())}_onPointerDown(e,t,i,s){return this._downCount++,this._downPointerIds[i]=this._downPointerIds[i]+1||1,this._downCount!==1?!1:(this.onPointerDownObservable.notifyObservers(new HY(t,s),-1,e,this),this.pointerDownAnimation&&this.pointerDownAnimation(),!0)}_onPointerUp(e,t,i,s,r){if(this._downCount--,this._downPointerIds[i]--,this._downPointerIds[i]<=0&&delete this._downPointerIds[i],this._downCount<0){this._downCount=0;return}this._downCount==0&&(r&&(this._enterCount>0||this._enterCount===-1)&&this.onPointerClickObservable.notifyObservers(new HY(t,s),-1,e,this),this.onPointerUpObservable.notifyObservers(new HY(t,s),-1,e,this),this.pointerUpAnimation&&this.pointerUpAnimation())}forcePointerUp(e=null){if(e!==null)this._onPointerUp(this,P.Zero(),e,0,!0);else{for(const t in this._downPointerIds)this._onPointerUp(this,P.Zero(),+t,0,!0);this._downCount>0&&(this._downCount=1,this._onPointerUp(this,P.Zero(),0,0,!0))}}_processObservables(e,t,i,s,r){if(this._isTouchButton3D(this)&&i&&(e=this._generatePointerEventType(e,i,this._downCount)),e===Xt.POINTERMOVE){this._onPointerMove(this,t);const n=this._host._lastControlOver[s];return n&&n!==this&&n._onPointerOut(this),n!==this&&this._onPointerEnter(this),this._host._lastControlOver[s]=this,!0}return e===Xt.POINTERDOWN?(this._onPointerDown(this,t,s,r),this._host._lastControlDown[s]=this,this._host._lastPickedControl=this,!0):e===Xt.POINTERUP||e===Xt.POINTERDOUBLETAP?(this._host._lastControlDown[s]&&this._host._lastControlDown[s]._onPointerUp(this,t,s,r,!0),delete this._host._lastControlDown[s],!0):!1}_disposeNode(){this._node&&(this._node.dispose(),this._node=null)}dispose(){this.onPointerDownObservable.clear(),this.onPointerEnterObservable.clear(),this.onPointerMoveObservable.clear(),this.onPointerOutObservable.clear(),this.onPointerUpObservable.clear(),this.onPointerClickObservable.clear(),this._disposeNode();for(const e of this._behaviors)e.detach()}}class OLe extends Ez{constructor(){super(...arguments),this._contentResolution=512,this._contentScaleRatio=2}get content(){return this._content}set content(e){if(this._content=e,!(!e||!this._host||!this._host.utilityLayer)){if(this._facadeTexture)this._facadeTexture.rootContainer.clearControls();else{const t=typeof this._contentResolution=="number"?this._contentResolution:this._contentResolution.width,i=typeof this._contentResolution=="number"?this._contentResolution:this._contentResolution.height;this._facadeTexture=new Go("Facade",t,i,this._host.utilityLayer.utilityLayerScene,!0,be.TRILINEAR_SAMPLINGMODE),this._setFacadeTextureScaling(),this._facadeTexture.premulAlpha=!0}this._facadeTexture.addControl(e),this._applyFacade(this._facadeTexture)}}_setFacadeTextureScaling(){this._facadeTexture&&(typeof this._contentResolution!="number"&&(this._contentScaleRatioY=this._contentResolution.height/this._contentResolution.width*this._contentScaleRatio),this._facadeTexture.rootContainer.scaleX=this._contentScaleRatio,this._facadeTexture.rootContainer.scaleY=this._contentScaleRatioY??this._contentScaleRatio)}get contentResolution(){return this._contentResolution}set contentResolution(e){const t=typeof e=="number"?e:e.width,i=typeof e=="number"?e:e.height,s=typeof this._contentResolution=="number"?this._contentResolution:this._contentResolution.width,r=typeof this._contentResolution=="number"?this._contentResolution:this._contentResolution.height;t===s&&i===r||(this._contentResolution=e,this._resetContent())}_disposeFacadeTexture(){this._facadeTexture&&(this._facadeTexture.dispose(),this._facadeTexture=null)}_resetContent(){this._disposeFacadeTexture(),this.content=this._content}_applyFacade(e){}}class RLe extends OLe{constructor(e){super(e)}_getTypeName(){return"AbstractButton3D"}_createNode(e){return new Si("button"+this.name,e)}}class YY extends RLe{constructor(e,t){super(e),this._options={width:1,height:1,depth:.08,...t},this.pointerEnterAnimation=()=>{this.mesh&&(this._currentMaterial.emissiveColor=Pe.Red())},this.pointerOutAnimation=()=>{this._currentMaterial.emissiveColor=Pe.Black()},this.pointerDownAnimation=()=>{this.mesh&&this.mesh.scaling.scaleInPlace(.95)},this.pointerUpAnimation=()=>{this.mesh&&this.mesh.scaling.scaleInPlace(1/.95)}}_applyFacade(e){this._currentMaterial.emissiveTexture=e}_getTypeName(){return"Button3D"}_createNode(e){const t=new Array(6);for(let s=0;s<6;s++)t[s]=new Yt(0,0,0,0);e.useRightHandedSystem?t[0].copyFromFloats(1,0,0,1):t[1].copyFromFloats(0,0,1,1);const i=pa(this.name+"_rootMesh",{width:this._options.width,height:this._options.height,depth:this._options.depth,faceUV:t,wrap:!0},e);return this._contentScaleRatioY=this._contentScaleRatio*this._options.width/this._options.height,this._setFacadeTextureScaling(),i}_affectMaterial(e){const t=new Bt(this.name+"Material",e.getScene());t.specularColor=Pe.Black(),e.material=t,this._currentMaterial=t,this._resetContent()}dispose(){super.dispose(),this._disposeFacadeTexture(),this._currentMaterial&&this._currentMaterial.dispose()}}class Cl extends Ez{get children(){return this._children}get blockLayout(){return this._blockLayout}set blockLayout(e){this._blockLayout!==e&&(this._blockLayout=e,this._blockLayout||this._arrangeChildren())}constructor(e){super(e),this._blockLayout=!1,this._children=new Array}updateLayout(){return this._arrangeChildren(),this}containsControl(e){return this._children.indexOf(e)!==-1}addControl(e){return this._children.indexOf(e)!==-1?this:(e.parent=this,e._host=this._host,this._children.push(e),this._host.utilityLayer&&(e._prepareNode(this._host.utilityLayer.utilityLayerScene),e.node&&(e.node.parent=this.node),this.blockLayout||this._arrangeChildren()),this)}_arrangeChildren(){}_createNode(e){return new Si("ContainerNode",e)}removeControl(e){const t=this._children.indexOf(e);return t!==-1&&(this._children.splice(t,1),e.parent=null,e._disposeNode()),this}_getTypeName(){return"Container3D"}dispose(){for(const e of this._children)e.dispose();this._children.length=0,super.dispose()}}Cl.UNSET_ORIENTATION=0,Cl.FACEORIGIN_ORIENTATION=1,Cl.FACEORIGINREVERSED_ORIENTATION=2,Cl.FACEFORWARD_ORIENTATION=3,Cl.FACEFORWARDREVERSED_ORIENTATION=4;class cR extends Cl{get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,Le.SetImmediate(()=>{this._arrangeChildren()}))}get columns(){return this._columns}set columns(e){this._columns!==e&&(this._columns=e,this._rowThenColum=!0,Le.SetImmediate(()=>{this._arrangeChildren()}))}get rows(){return this._rows}set rows(e){this._rows!==e&&(this._rows=e,this._rowThenColum=!1,Le.SetImmediate(()=>{this._arrangeChildren()}))}constructor(e){super(e),this._columns=10,this._rows=0,this._rowThenColum=!0,this._orientation=Cl.FACEORIGIN_ORIENTATION,this.margin=0}_arrangeChildren(){this._cellWidth=0,this._cellHeight=0;let e=0,t=0,i=0;for(const l of this._children){if(!l.mesh)continue;i++,l.mesh.computeWorldMatrix(!0);const c=l.mesh.getBoundingInfo().boundingBox.extendSize,u=l.mesh.getDescendants(!1);for(const f of u){f.computeWorldMatrix(!0);const p=f;if(typeof p.getBoundingInfo=="function"){const m=p.getBoundingInfo().boundingBox.extendSize;c.x=Math.max(c.x,m.x),c.y=Math.max(c.y,m.y),c.z=Math.max(c.z,m.z)}}this._cellWidth=Math.max(this._cellWidth,c.x*2),this._cellHeight=Math.max(this._cellHeight,c.y*2)}this._cellWidth+=this.margin*2,this._cellHeight+=this.margin*2,this._rowThenColum?(t=this._columns,e=Math.ceil(i/this._columns)):(e=this._rows,t=Math.ceil(i/this._rows));const s=t*.5*this._cellWidth,r=e*.5*this._cellHeight,n=[];let o=0;if(this._rowThenColum)for(let l=0;l<e;l++)for(let c=0;c<t&&(n.push(new P(c*this._cellWidth-s+this._cellWidth/2,l*this._cellHeight-r+this._cellHeight/2,0)),o++,!(o>i));c++);else for(let l=0;l<t;l++)for(let c=0;c<e&&(n.push(new P(l*this._cellWidth-s+this._cellWidth/2,c*this._cellHeight-r+this._cellHeight/2,0)),o++,!(o>i));c++);o=0;for(const l of this._children)l.mesh&&(this._mapGridNode(l,n[o]),o++);this._finalProcessing()}_finalProcessing(){}}class XQe extends cR{constructor(){super(...arguments),this._radius=5}get radius(){return this._radius}set radius(e){this._radius!==e&&(this._radius=e,Le.SetImmediate(()=>{this._arrangeChildren()}))}_mapGridNode(e,t){const i=e.mesh;if(!i)return;const s=this._cylindricalMapping(t);switch(e.position=s,this.orientation){case Cl.FACEORIGIN_ORIENTATION:i.lookAt(new P(2*s.x,s.y,2*s.z));break;case Cl.FACEORIGINREVERSED_ORIENTATION:i.lookAt(new P(-s.x,s.y,-s.z));break;case Cl.FACEFORWARD_ORIENTATION:break;case Cl.FACEFORWARDREVERSED_ORIENTATION:i.rotate(fo.Y,Math.PI,0);break}}_cylindricalMapping(e){const t=new P(0,e.y,this._radius),i=e.x/this._radius;return me.RotationYawPitchRollToRef(i,0,0,ae.Matrix[0]),P.TransformNormal(t,ae.Matrix[0])}}const DLe="fluentVertexShader",ZQe=`precision highp float;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;uniform mat4 world;uniform mat4 viewProjection;varying vec2 vUV;
#ifdef BORDER
varying vec2 scaleInfo;uniform float borderWidth;uniform vec3 scaleFactor;
#endif
#ifdef HOVERLIGHT
varying vec3 worldPosition;
#endif
void main(void) {vUV=uv;
#ifdef BORDER
vec3 scale=scaleFactor;float minScale=min(min(scale.x,scale.y),scale.z);float maxScale=max(max(scale.x,scale.y),scale.z);float minOverMiddleScale=minScale/(scale.x+scale.y+scale.z-minScale-maxScale);float areaYZ=scale.y*scale.z;float areaXZ=scale.x*scale.z;float areaXY=scale.x*scale.y;float scaledBorderWidth=borderWidth; 
if (abs(normal.x)==1.0) 
{scale.x=scale.y;scale.y=scale.z;if (areaYZ>areaXZ && areaYZ>areaXY)
{scaledBorderWidth*=minOverMiddleScale;}}
else if (abs(normal.y)==1.0) 
{scale.x=scale.z;if (areaXZ>areaXY && areaXZ>areaYZ)
{scaledBorderWidth*=minOverMiddleScale;}}
else 
{if (areaXY>areaYZ && areaXY>areaXZ)
{scaledBorderWidth*=minOverMiddleScale;}}
float scaleRatio=min(scale.x,scale.y)/max(scale.x,scale.y);if (scale.x>scale.y)
{scaleInfo.x=1.0-(scaledBorderWidth*scaleRatio);scaleInfo.y=1.0-scaledBorderWidth;}
else
{scaleInfo.x=1.0-scaledBorderWidth;scaleInfo.y=1.0-(scaledBorderWidth*scaleRatio);} 
#endif 
vec4 worldPos=world*vec4(position,1.0);
#ifdef HOVERLIGHT
worldPosition=worldPos.xyz;
#endif
gl_Position=viewProjection*worldPos;}
`;H.ShadersStore[DLe]||(H.ShadersStore[DLe]=ZQe);const NLe="fluentPixelShader",KQe=`precision highp float;varying vec2 vUV;uniform vec4 albedoColor;
#ifdef INNERGLOW
uniform vec4 innerGlowColor;
#endif
#ifdef BORDER
varying vec2 scaleInfo;uniform float edgeSmoothingValue;uniform float borderMinValue;
#endif
#ifdef HOVERLIGHT
varying vec3 worldPosition;uniform vec3 hoverPosition;uniform vec4 hoverColor;uniform float hoverRadius;
#endif
#ifdef TEXTURE
uniform sampler2D albedoSampler;uniform mat4 textureMatrix;vec2 finalUV;
#endif
void main(void) {vec3 albedo=albedoColor.rgb;float alpha=albedoColor.a;
#ifdef TEXTURE
finalUV=vec2(textureMatrix*vec4(vUV,1.0,0.0));albedo=texture2D(albedoSampler,finalUV).rgb;
#endif
#ifdef HOVERLIGHT
float pointToHover=(1.0-clamp(length(hoverPosition-worldPosition)/hoverRadius,0.,1.))*hoverColor.a;albedo=clamp(albedo+hoverColor.rgb*pointToHover,0.,1.);
#else
float pointToHover=1.0;
#endif
#ifdef BORDER 
float borderPower=10.0;float inverseBorderPower=1.0/borderPower;vec3 borderColor=albedo*borderPower;vec2 distanceToEdge;distanceToEdge.x=abs(vUV.x-0.5)*2.0;distanceToEdge.y=abs(vUV.y-0.5)*2.0;float borderValue=max(smoothstep(scaleInfo.x-edgeSmoothingValue,scaleInfo.x+edgeSmoothingValue,distanceToEdge.x),
smoothstep(scaleInfo.y-edgeSmoothingValue,scaleInfo.y+edgeSmoothingValue,distanceToEdge.y));borderColor=borderColor*borderValue*max(borderMinValue*inverseBorderPower,pointToHover); 
albedo+=borderColor;alpha=max(alpha,borderValue);
#endif
#ifdef INNERGLOW
vec2 uvGlow=(vUV-vec2(0.5,0.5))*(innerGlowColor.a*2.0);uvGlow=uvGlow*uvGlow;uvGlow=uvGlow*uvGlow;albedo+=mix(vec3(0.0,0.0,0.0),innerGlowColor.rgb,uvGlow.x+uvGlow.y); 
#endif
gl_FragColor=vec4(albedo,alpha);}`;H.ShadersStore[NLe]||(H.ShadersStore[NLe]=KQe);class wLe extends Br{constructor(){super(),this.INNERGLOW=!1,this.BORDER=!1,this.HOVERLIGHT=!1,this.TEXTURE=!1,this.rebuild()}}class Gc extends po{constructor(e,t){super(e,t),this.innerGlowColorIntensity=.5,this.innerGlowColor=new Pe(1,1,1),this.albedoColor=new Pe(.3,.35,.4),this.renderBorders=!1,this.borderWidth=.5,this.edgeSmoothingValue=.02,this.borderMinValue=.1,this.renderHoverLight=!1,this.hoverRadius=.01,this.hoverColor=new St(.3,.3,.3,1),this.hoverPosition=P.Zero()}needAlphaBlending(){return this.alpha!==1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t){const i=t._drawWrapper;if(this.isFrozen&&i.effect&&i._wasPreviouslyReady)return!0;t.materialDefines||(t.materialDefines=new wLe);const s=this.getScene(),r=t.materialDefines;if(!this.checkReadyOnEveryCall&&t.effect&&r._renderId===s.getRenderId())return!0;if(r._areTexturesDirty)if(r.INNERGLOW=this.innerGlowColorIntensity>0,r.BORDER=this.renderBorders,r.HOVERLIGHT=this.renderHoverLight,this._albedoTexture)if(this._albedoTexture.isReadyOrNotBlocking())r.TEXTURE=!0;else return!1;else r.TEXTURE=!1;const n=s.getEngine();if(r.isDirty){r.markAsProcessed(),s.resetCachedMaterial();const o=[q.PositionKind];o.push(q.NormalKind),o.push(q.UVKind);const l="fluent",c=["world","viewProjection","innerGlowColor","albedoColor","borderWidth","edgeSmoothingValue","scaleFactor","borderMinValue","hoverColor","hoverPosition","hoverRadius","textureMatrix"],u=["albedoSampler"],f=[];gl({uniformsNames:c,uniformBuffersNames:f,samplers:u,defines:r,maxSimultaneousLights:4});const p=r.toString();t.setEffect(s.getEngine().createEffect(l,{attributes:o,uniformsNames:c,uniformBuffersNames:f,samplers:u,defines:p,fallbacks:null,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:4}},n),r,this._materialContext)}return!t.effect||!t.effect.isReady()?!1:(r._renderId=s.getRenderId(),i._wasPreviouslyReady=!0,!0)}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const n=i.effect;if(n){if(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),this._mustRebind(s,n,i)&&(this._activeEffect.setColor4("albedoColor",this.albedoColor,this.alpha),r.INNERGLOW&&this._activeEffect.setColor4("innerGlowColor",this.innerGlowColor,this.innerGlowColorIntensity),r.BORDER&&(this._activeEffect.setFloat("borderWidth",this.borderWidth),this._activeEffect.setFloat("edgeSmoothingValue",this.edgeSmoothingValue),this._activeEffect.setFloat("borderMinValue",this.borderMinValue),t.getBoundingInfo().boundingBox.extendSize.multiplyToRef(t.scaling,ae.Vector3[0]),this._activeEffect.setVector3("scaleFactor",ae.Vector3[0])),r.HOVERLIGHT&&(this._activeEffect.setDirectColor4("hoverColor",this.hoverColor),this._activeEffect.setFloat("hoverRadius",this.hoverRadius),this._activeEffect.setVector3("hoverPosition",this.hoverPosition)),r.TEXTURE&&this._albedoTexture)){this._activeEffect.setTexture("albedoSampler",this._albedoTexture);const o=this._albedoTexture.getTextureMatrix();this._activeEffect.setMatrix("textureMatrix",o)}this._afterBind(t,this._activeEffect,i)}}getActiveTextures(){return super.getActiveTextures()}hasTexture(e){return!!super.hasTexture(e)}dispose(e){super.dispose(e)}clone(e){return It.Clone(()=>new Gc(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.GUI.FluentMaterial",e}getClassName(){return"FluentMaterial"}static Parse(e,t,i){return It.Parse(()=>new Gc(e.name,t),e,t,i)}}F([G(),et("_markAllSubMeshesAsTexturesDirty")],Gc.prototype,"innerGlowColorIntensity",void 0),F([qs()],Gc.prototype,"innerGlowColor",void 0),F([qs()],Gc.prototype,"albedoColor",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Gc.prototype,"renderBorders",void 0),F([G()],Gc.prototype,"borderWidth",void 0),F([G()],Gc.prototype,"edgeSmoothingValue",void 0),F([G()],Gc.prototype,"borderMinValue",void 0),F([G(),et("_markAllSubMeshesAsTexturesDirty")],Gc.prototype,"renderHoverLight",void 0),F([G()],Gc.prototype,"hoverRadius",void 0),F([hP()],Gc.prototype,"hoverColor",void 0),F([Ma()],Gc.prototype,"hoverPosition",void 0),F([Yi("albedoTexture")],Gc.prototype,"_albedoTexture",void 0),F([et("_markAllSubMeshesAsTexturesAndMiscDirty")],Gc.prototype,"albedoTexture",void 0),ve("BABYLON.GUI.FluentMaterial",Gc);class b9 extends cR{get backPlateMargin(){return this._backPlateMargin}set backPlateMargin(e){this._backPlateMargin=e,this._children.length>=1&&(this.children.forEach(t=>{this._updateCurrentMinMax(t.position)}),this._updateMargins())}_createNode(e){const t=new Ne(`menu_${this.name}`,e);return this._backPlate=pa("backPlate"+this.name,{size:1},e),this._backPlate.parent=t,t}_affectMaterial(e){this._backPlateMaterial=new Gc(this.name+"backPlateMaterial",e.getScene()),this._backPlateMaterial.albedoColor=new Pe(.08,.15,.55),this._backPlateMaterial.renderBorders=!0,this._backPlateMaterial.renderHoverLight=!0,this._pickedPointObserver=this._host.onPickedPointChangedObservable.add(t=>{t?(this._backPlateMaterial.hoverPosition=t,this._backPlateMaterial.hoverColor.a=1):this._backPlateMaterial.hoverColor.a=0}),this._backPlate.material=this._backPlateMaterial}_mapGridNode(e,t){e.mesh&&(e.position=t.clone(),this._updateCurrentMinMax(t))}_finalProcessing(){this._updateMargins()}_updateCurrentMinMax(e){this._currentMin||(this._currentMin=e.clone(),this._currentMax=e.clone()),this._currentMin.minimizeInPlace(e),this._currentMax.maximizeInPlace(e)}_updateMargins(){if(this._children.length>0){this._currentMin.addInPlaceFromFloats(-this._cellWidth/2,-this._cellHeight/2,0),this._currentMax.addInPlaceFromFloats(this._cellWidth/2,this._cellHeight/2,0);const e=this._currentMax.subtract(this._currentMin);this._backPlate.scaling.x=e.x+this._cellWidth*this.backPlateMargin,this._backPlate.scaling.y=e.y+this._cellHeight*this.backPlateMargin,this._backPlate.scaling.z=.001;for(let t=0;t<this._children.length;t++)this._children[t].position.subtractInPlace(this._currentMin).subtractInPlace(e.scale(.5)),this._children[t].position.z-=.01}this._currentMin=null,this._currentMax=null}constructor(e){super(e),this._backPlateMargin=1.25}addButton(e){const t=this.blockLayout;return t||(this.blockLayout=!0),super.addControl(e),e.isBackplateVisible=!1,e.scaling.scaleInPlace(b9.MENU_BUTTON_SCALE),t||(this.blockLayout=!1),this}addControl(e){return de.Warn("TouchHolographicMenu can only contain buttons. Please use the method `addButton` instead."),this}dispose(){super.dispose(),this._host.onPickedPointChangedObservable.remove(this._pickedPointObserver)}}b9.MENU_BUTTON_SCALE=1;class qQe extends b9{get handConstraintBehavior(){return this._handConstraintBehavior}_createNode(e){const t=super._createNode(e);return this._handConstraintBehavior.attach(t),t}constructor(e,t){super(t),this._handConstraintBehavior=new Q2e,this._handConstraintBehavior.linkToXRExperience(e),this.backPlateMargin=.15,this.rows=3}dispose(){super.dispose(),this._handConstraintBehavior.detach()}}const BLe="fluentBackplatePixelShader",QQe=`uniform vec3 cameraPosition;varying vec3 vPosition;varying vec3 vNormal;varying vec2 vUV;varying vec3 vTangent;varying vec3 vBinormal;varying vec4 vColor;varying vec4 vExtra1;varying vec4 vExtra2;varying vec4 vExtra3;uniform float _Radius_;uniform float _Line_Width_;uniform bool _Absolute_Sizes_;uniform float _Filter_Width_;uniform vec4 _Base_Color_;uniform vec4 _Line_Color_;uniform float _Radius_Top_Left_;uniform float _Radius_Top_Right_;uniform float _Radius_Bottom_Left_;uniform float _Radius_Bottom_Right_;uniform vec3 _Blob_Position_;uniform float _Blob_Intensity_;uniform float _Blob_Near_Size_;uniform float _Blob_Far_Size_;uniform float _Blob_Near_Distance_;uniform float _Blob_Far_Distance_;uniform float _Blob_Fade_Length_;uniform float _Blob_Pulse_;uniform float _Blob_Fade_;uniform sampler2D _Blob_Texture_;uniform vec3 _Blob_Position_2_;uniform float _Blob_Near_Size_2_;uniform float _Blob_Pulse_2_;uniform float _Blob_Fade_2_;uniform float _Rate_;uniform vec4 _Highlight_Color_;uniform float _Highlight_Width_;uniform vec4 _Highlight_Transform_;uniform float _Highlight_;uniform float _Iridescence_Intensity_;uniform float _Iridescence_Edge_Intensity_;uniform float _Angle_;uniform float _Fade_Out_;uniform bool _Reflected_;uniform float _Frequency_;uniform float _Vertical_Offset_;uniform sampler2D _Iridescent_Map_;uniform bool _Use_Global_Left_Index_;uniform bool _Use_Global_Right_Index_;uniform vec4 Global_Left_Index_Tip_Position;uniform vec4 Global_Right_Index_Tip_Position;void Round_Rect_Fragment_B31(
float Radius,
float Line_Width,
vec4 Line_Color,
float Filter_Width,
vec2 UV,
float Line_Visibility,
vec4 Rect_Parms,
vec4 Fill_Color,
out vec4 Color)
{float d=length(max(abs(UV)-Rect_Parms.xy,0.0));float dx=max(fwidth(d)*Filter_Width,0.00001);float g=min(Rect_Parms.z,Rect_Parms.w);float dgrad=max(fwidth(g)*Filter_Width,0.00001);float Inside_Rect=clamp(g/dgrad,0.0,1.0);float inner=clamp((d+dx*0.5-max(Radius-Line_Width,d-dx*0.5))/dx,0.0,1.0);Color=clamp(mix(Fill_Color,Line_Color,inner),0.0,1.0)*Inside_Rect;}
void Blob_Fragment_B71(
sampler2D Blob_Texture,
vec4 Blob_Info1,
vec4 Blob_Info2,
out vec4 Blob_Color)
{float k1=dot(Blob_Info1.xy,Blob_Info1.xy);float k2=dot(Blob_Info2.xy,Blob_Info2.xy);vec3 closer=k1<k2 ? vec3(k1,Blob_Info1.z,Blob_Info1.w) : vec3(k2,Blob_Info2.z,Blob_Info2.w);Blob_Color=closer.z*texture(Blob_Texture,vec2(vec2(sqrt(closer.x),closer.y).x,1.0-vec2(sqrt(closer.x),closer.y).y))*clamp(1.0-closer.x,0.0,1.0);}
void Line_Fragment_B48(
vec4 Base_Color,
vec4 Highlight_Color,
float Highlight_Width,
vec3 Line_Vertex,
float Highlight,
out vec4 Line_Color)
{float k2=1.0-clamp(abs(Line_Vertex.y/Highlight_Width),0.0,1.0);Line_Color=mix(Base_Color,Highlight_Color,Highlight*k2);}
void Scale_RGB_B54(
vec4 Color,
float Scalar,
out vec4 Result)
{Result=vec4(Scalar,Scalar,Scalar,1)*Color;}
void Conditional_Float_B38(
bool Which,
float If_True,
float If_False,
out float Result)
{Result=Which ? If_True : If_False;}
void main()
{float R_Q72;float G_Q72;float B_Q72;float A_Q72;R_Q72=vColor.r; G_Q72=vColor.g; B_Q72=vColor.b; A_Q72=vColor.a;vec4 Blob_Color_Q71;
#if BLOB_ENABLE
float k1=dot(vExtra2.xy,vExtra2.xy);float k2=dot(vExtra3.xy,vExtra3.xy);vec3 closer=k1<k2 ? vec3(k1,vExtra2.z,vExtra2.w) : vec3(k2,vExtra3.z,vExtra3.w);Blob_Color_Q71=closer.z*texture(_Blob_Texture_,vec2(vec2(sqrt(closer.x),closer.y).x,1.0-vec2(sqrt(closer.x),closer.y).y))*clamp(1.0-closer.x,0.0,1.0);
#else
Blob_Color_Q71=vec4(0,0,0,0);
#endif
vec4 Line_Color_Q48;Line_Fragment_B48(_Line_Color_,_Highlight_Color_,_Highlight_Width_,vTangent,_Highlight_,Line_Color_Q48);float X_Q67;float Y_Q67;X_Q67=vUV.x;Y_Q67=vUV.y;vec3 Incident_Q66=normalize(vPosition-cameraPosition);vec3 Reflected_Q60=reflect(Incident_Q66,vBinormal);float Product_Q63=Y_Q67*_Vertical_Offset_;float Dot_Q68=dot(Incident_Q66, Reflected_Q60);float Dot_Q57=dot(vNormal, Incident_Q66);float Result_Q38;Conditional_Float_B38(_Reflected_,Dot_Q68,Dot_Q57,Result_Q38);float Product_Q64=Result_Q38*_Frequency_;float Sum_Q69=Product_Q64+1.0;float Product_Q70=Sum_Q69*0.5;float Sum_Q62=Product_Q63+Product_Q70;float FractF_Q59=fract(Sum_Q62);vec2 Vec2_Q65=vec2(FractF_Q59,0.5);vec4 Color_Q58;
#if IRIDESCENT_MAP_ENABLE
Color_Q58=texture(_Iridescent_Map_,Vec2_Q65);
#else
Color_Q58=vec4(0,0,0,0);
#endif
vec4 Result_Q54;Scale_RGB_B54(Color_Q58,_Iridescence_Edge_Intensity_,Result_Q54);vec4 Result_Q55;Scale_RGB_B54(Color_Q58,_Iridescence_Intensity_,Result_Q55);vec4 Base_And_Iridescent_Q53;Base_And_Iridescent_Q53=Line_Color_Q48+vec4(Result_Q54.rgb,0.0);vec4 Base_And_Iridescent_Q56;Base_And_Iridescent_Q56=_Base_Color_+vec4(Result_Q55.rgb,0.0);vec4 Result_Q52=Base_And_Iridescent_Q53; Result_Q52.a=1.0;vec4 Result_Q35=Blob_Color_Q71+(1.0-Blob_Color_Q71.a)*Base_And_Iridescent_Q56;vec4 Color_Q31;Round_Rect_Fragment_B31(R_Q72,G_Q72,Result_Q52,_Filter_Width_,vUV,1.0,vExtra1,Result_Q35,Color_Q31);vec4 Result_Q47=_Fade_Out_*Color_Q31;vec4 Out_Color=Result_Q47;float Clip_Threshold=0.001;bool To_sRGB=false;gl_FragColor=Out_Color;}`;H.ShadersStore[BLe]||(H.ShadersStore[BLe]=QQe);const zLe="fluentBackplateVertexShader",JQe=`uniform mat4 world;uniform mat4 viewProjection;uniform vec3 cameraPosition;attribute vec3 position;attribute vec3 normal;
#ifdef TANGENT
attribute vec3 tangent;
#else
const vec3 tangent=vec3(0.);
#endif
uniform float _Radius_;uniform float _Line_Width_;uniform bool _Absolute_Sizes_;uniform float _Filter_Width_;uniform vec4 _Base_Color_;uniform vec4 _Line_Color_;uniform float _Radius_Top_Left_;uniform float _Radius_Top_Right_;uniform float _Radius_Bottom_Left_;uniform float _Radius_Bottom_Right_;uniform vec3 _Blob_Position_;uniform float _Blob_Intensity_;uniform float _Blob_Near_Size_;uniform float _Blob_Far_Size_;uniform float _Blob_Near_Distance_;uniform float _Blob_Far_Distance_;uniform float _Blob_Fade_Length_;uniform float _Blob_Pulse_;uniform float _Blob_Fade_;uniform sampler2D _Blob_Texture_;uniform vec3 _Blob_Position_2_;uniform float _Blob_Near_Size_2_;uniform float _Blob_Pulse_2_;uniform float _Blob_Fade_2_;uniform float _Rate_;uniform vec4 _Highlight_Color_;uniform float _Highlight_Width_;uniform vec4 _Highlight_Transform_;uniform float _Highlight_;uniform float _Iridescence_Intensity_;uniform float _Iridescence_Edge_Intensity_;uniform float _Angle_;uniform float _Fade_Out_;uniform bool _Reflected_;uniform float _Frequency_;uniform float _Vertical_Offset_;uniform sampler2D _Iridescent_Map_;uniform bool _Use_Global_Left_Index_;uniform bool _Use_Global_Right_Index_;uniform vec4 Global_Left_Index_Tip_Position;uniform vec4 Global_Right_Index_Tip_Position;varying vec3 vPosition;varying vec3 vNormal;varying vec2 vUV;varying vec3 vTangent;varying vec3 vBinormal;varying vec4 vColor;varying vec4 vExtra1;varying vec4 vExtra2;varying vec4 vExtra3;void Object_To_World_Pos_B115(
vec3 Pos_Object,
out vec3 Pos_World)
{Pos_World=(world*vec4(Pos_Object,1.0)).xyz;}
void PickDir_B140(
float Degrees,
vec3 DirX,
vec3 DirY,
out vec3 Dir)
{float a=Degrees*3.14159/180.0;Dir=cos(a)*DirX+sin(a)*DirY;}
void Round_Rect_Vertex_B139(
vec2 UV,
float Radius,
float Margin,
float Anisotropy,
float Gradient1,
float Gradient2,
out vec2 Rect_UV,
out vec4 Rect_Parms,
out vec2 Scale_XY,
out vec2 Line_UV)
{Scale_XY=vec2(Anisotropy,1.0);Line_UV=(UV-vec2(0.5,0.5));Rect_UV=Line_UV*Scale_XY;Rect_Parms.xy=Scale_XY*0.5-vec2(Radius,Radius)-vec2(Margin,Margin);Rect_Parms.z=Gradient1; 
Rect_Parms.w=Gradient2;}
void Line_Vertex_B135(
vec2 Scale_XY,
vec2 UV,
float Time,
float Rate,
vec4 Highlight_Transform,
out vec3 Line_Vertex)
{float angle2=(Rate*Time)*2.0*3.1416;float sinAngle2=sin(angle2);float cosAngle2=cos(angle2);vec2 xformUV=UV*Highlight_Transform.xy+Highlight_Transform.zw;Line_Vertex.x=0.0;Line_Vertex.y=cosAngle2*xformUV.x-sinAngle2*xformUV.y;Line_Vertex.z=0.0; }
void Blob_Vertex_B180(
vec3 Position,
vec3 Normal,
vec3 Tangent,
vec3 Bitangent,
vec3 Blob_Position,
float Intensity,
float Blob_Near_Size,
float Blob_Far_Size,
float Blob_Near_Distance,
float Blob_Far_Distance,
float Blob_Fade_Length,
float Blob_Pulse,
float Blob_Fade,
out vec4 Blob_Info)
{vec3 blob=Blob_Position;vec3 delta=blob-Position;float dist=dot(Normal,delta);float lerpValue=clamp((abs(dist)-Blob_Near_Distance)/(Blob_Far_Distance-Blob_Near_Distance),0.0,1.0);float fadeValue=1.0-clamp((abs(dist)-Blob_Far_Distance)/Blob_Fade_Length,0.0,1.0);float size=Blob_Near_Size+(Blob_Far_Size-Blob_Near_Size)*lerpValue;vec2 blobXY=vec2(dot(delta,Tangent),dot(delta,Bitangent))/(0.0001+size);float Fade=fadeValue*Intensity*Blob_Fade;float Distance=(lerpValue*0.5+0.5)*(1.0-Blob_Pulse);Blob_Info=vec4(blobXY.x,blobXY.y,Distance,Fade);}
void Move_Verts_B129(
float Anisotropy,
vec3 P,
float Radius,
out vec3 New_P,
out vec2 New_UV,
out float Radial_Gradient,
out vec3 Radial_Dir)
{vec2 UV=P.xy*2.0+0.5;vec2 center=clamp(UV,0.0,1.0);vec2 delta=UV-center;vec2 r2=2.0*vec2(Radius/Anisotropy,Radius);New_UV=center+r2*(UV-2.0*center+0.5);New_P=vec3(New_UV-0.5,P.z);Radial_Gradient=1.0-length(delta)*2.0;Radial_Dir=vec3(delta*r2,0.0);}
void Object_To_World_Dir_B132(
vec3 Dir_Object,
out vec3 Binormal_World,
out vec3 Binormal_World_N,
out float Binormal_Length)
{Binormal_World=(world*vec4(Dir_Object,0.0)).xyz;Binormal_Length=length(Binormal_World);Binormal_World_N=Binormal_World/Binormal_Length;}
void RelativeOrAbsoluteDetail_B147(
float Nominal_Radius,
float Nominal_LineWidth,
bool Absolute_Measurements,
float Height,
out float Radius,
out float Line_Width)
{float scale=Absolute_Measurements ? 1.0/Height : 1.0;Radius=Nominal_Radius*scale;Line_Width=Nominal_LineWidth*scale;}
void Edge_AA_Vertex_B130(
vec3 Position_World,
vec3 Position_Object,
vec3 Normal_Object,
vec3 Eye,
float Radial_Gradient,
vec3 Radial_Dir,
vec3 Tangent,
out float Gradient1,
out float Gradient2)
{vec3 I=(Eye-Position_World);vec3 T=(world* vec4(Tangent,0.0)).xyz;float g=(dot(T,I)<0.0) ? 0.0 : 1.0;if (Normal_Object.z==0.0) { 
Gradient1=Position_Object.z>0.0 ? g : 1.0;Gradient2=Position_Object.z>0.0 ? 1.0 : g;} else {Gradient1=g+(1.0-g)*(Radial_Gradient);Gradient2=1.0;}}
void Pick_Radius_B144(
float Radius,
float Radius_Top_Left,
float Radius_Top_Right,
float Radius_Bottom_Left,
float Radius_Bottom_Right,
vec3 Position,
out float Result)
{bool whichY=Position.y>0.0;Result=Position.x<0.0 ? (whichY ? Radius_Top_Left : Radius_Bottom_Left) : (whichY ? Radius_Top_Right : Radius_Bottom_Right);Result*=Radius;}
void main()
{vec3 Nrm_World_Q128;Nrm_World_Q128=normalize((world*vec4(normal,0.0)).xyz);vec3 Tangent_World_Q131;vec3 Tangent_World_N_Q131;float Tangent_Length_Q131;Tangent_World_Q131=(world*vec4(vec3(1,0,0),0.0)).xyz;Tangent_Length_Q131=length(Tangent_World_Q131);Tangent_World_N_Q131=Tangent_World_Q131/Tangent_Length_Q131;vec3 Binormal_World_Q132;vec3 Binormal_World_N_Q132;float Binormal_Length_Q132;Object_To_World_Dir_B132(vec3(0,1,0),Binormal_World_Q132,Binormal_World_N_Q132,Binormal_Length_Q132);float Anisotropy_Q133=Tangent_Length_Q131/Binormal_Length_Q132;vec3 Result_Q177;Result_Q177=mix(_Blob_Position_,Global_Left_Index_Tip_Position.xyz,float(_Use_Global_Left_Index_));vec3 Result_Q178;Result_Q178=mix(_Blob_Position_2_,Global_Right_Index_Tip_Position.xyz,float(_Use_Global_Right_Index_));float Result_Q144;Pick_Radius_B144(_Radius_,_Radius_Top_Left_,_Radius_Top_Right_,_Radius_Bottom_Left_,_Radius_Bottom_Right_,position,Result_Q144);vec3 Dir_Q140;PickDir_B140(_Angle_,Tangent_World_N_Q131,Binormal_World_N_Q132,Dir_Q140);float Radius_Q147;float Line_Width_Q147;RelativeOrAbsoluteDetail_B147(Result_Q144,_Line_Width_,_Absolute_Sizes_,Binormal_Length_Q132,Radius_Q147,Line_Width_Q147);vec4 Out_Color_Q145=vec4(Radius_Q147,Line_Width_Q147,0,1);vec3 New_P_Q129;vec2 New_UV_Q129;float Radial_Gradient_Q129;vec3 Radial_Dir_Q129;Move_Verts_B129(Anisotropy_Q133,position,Radius_Q147,New_P_Q129,New_UV_Q129,Radial_Gradient_Q129,Radial_Dir_Q129);vec3 Pos_World_Q115;Object_To_World_Pos_B115(New_P_Q129,Pos_World_Q115);vec4 Blob_Info_Q180;
#if BLOB_ENABLE
Blob_Vertex_B180(Pos_World_Q115,Nrm_World_Q128,Tangent_World_N_Q131,Binormal_World_N_Q132,Result_Q177,_Blob_Intensity_,_Blob_Near_Size_,_Blob_Far_Size_,_Blob_Near_Distance_,_Blob_Far_Distance_,_Blob_Fade_Length_,_Blob_Pulse_,_Blob_Fade_,Blob_Info_Q180);
#else
Blob_Info_Q180=vec4(0,0,0,0);
#endif
vec4 Blob_Info_Q181;
#if BLOB_ENABLE_2
Blob_Vertex_B180(Pos_World_Q115,Nrm_World_Q128,Tangent_World_N_Q131,Binormal_World_N_Q132,Result_Q178,_Blob_Intensity_,_Blob_Near_Size_2_,_Blob_Far_Size_,_Blob_Near_Distance_,_Blob_Far_Distance_,_Blob_Fade_Length_,_Blob_Pulse_2_,_Blob_Fade_2_,Blob_Info_Q181);
#else
Blob_Info_Q181=vec4(0,0,0,0);
#endif
float Gradient1_Q130;float Gradient2_Q130;
#if SMOOTH_EDGES
Edge_AA_Vertex_B130(Pos_World_Q115,position,normal,cameraPosition,Radial_Gradient_Q129,Radial_Dir_Q129,tangent,Gradient1_Q130,Gradient2_Q130);
#else
Gradient1_Q130=1.0;Gradient2_Q130=1.0;
#endif
vec2 Rect_UV_Q139;vec4 Rect_Parms_Q139;vec2 Scale_XY_Q139;vec2 Line_UV_Q139;Round_Rect_Vertex_B139(New_UV_Q129,Radius_Q147,0.0,Anisotropy_Q133,Gradient1_Q130,Gradient2_Q130,Rect_UV_Q139,Rect_Parms_Q139,Scale_XY_Q139,Line_UV_Q139);vec3 Line_Vertex_Q135;Line_Vertex_B135(Scale_XY_Q139,Line_UV_Q139,0.0,_Rate_,_Highlight_Transform_,Line_Vertex_Q135);vec3 Position=Pos_World_Q115;vec3 Normal=Dir_Q140;vec2 UV=Rect_UV_Q139;vec3 Tangent=Line_Vertex_Q135;vec3 Binormal=Nrm_World_Q128;vec4 Color=Out_Color_Q145;vec4 Extra1=Rect_Parms_Q139;vec4 Extra2=Blob_Info_Q180;vec4 Extra3=Blob_Info_Q181;gl_Position=viewProjection*vec4(Position,1);vPosition=Position;vNormal=Normal;vUV=UV;vTangent=Tangent;vBinormal=Binormal;vColor=Color;vExtra1=Extra1;vExtra2=Extra2;vExtra3=Extra3;}`;H.ShadersStore[zLe]||(H.ShadersStore[zLe]=JQe);class $Qe extends Br{constructor(){super(),this.BLOB_ENABLE=!0,this.BLOB_ENABLE_2=!0,this.SMOOTH_EDGES=!0,this.IRIDESCENT_MAP_ENABLE=!0,this._needNormals=!0,this.rebuild()}}class sa extends po{constructor(e,t){super(e,t),this.radius=.03,this.lineWidth=.01,this.absoluteSizes=!1,this._filterWidth=1,this.baseColor=new St(.0392157,.0666667,.207843,1),this.lineColor=new St(.14902,.133333,.384314,1),this.blobIntensity=.98,this.blobFarSize=.04,this.blobNearDistance=0,this.blobFarDistance=.08,this.blobFadeLength=.08,this.blobNearSize=.22,this.blobPulse=0,this.blobFade=0,this.blobNearSize2=.22,this.blobPulse2=0,this.blobFade2=0,this._rate=.135,this.highlightColor=new St(.98,.98,.98,1),this.highlightWidth=.25,this._highlightTransform=new Yt(1,1,0,0),this._highlight=1,this.iridescenceIntensity=0,this.iridescenceEdgeIntensity=1,this._angle=-45,this.fadeOut=1,this._reflected=!0,this._frequency=1,this._verticalOffset=0,this.globalLeftIndexTipPosition=P.Zero(),this._globalLeftIndexTipPosition4=Yt.Zero(),this.globalRightIndexTipPosition=P.Zero(),this._globalRightIndexTipPosition4=Yt.Zero(),this.alphaMode=ze.ALPHA_DISABLE,this.backFaceCulling=!1;const i=Le.GetAssetUrl(sa.BLOB_TEXTURE_URL),s=Le.GetAssetUrl(sa.IM_TEXTURE_URL);this._blobTexture=new be(i,this.getScene(),!0,!1,be.NEAREST_SAMPLINGMODE),this._iridescentMap=new be(s,this.getScene(),!0,!1,be.NEAREST_SAMPLINGMODE)}needAlphaBlending(){return!1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t){const i=t._drawWrapper;if(this.isFrozen&&i.effect&&i._wasPreviouslyReady)return!0;t.materialDefines||(t.materialDefines=new $Qe);const s=t.materialDefines,r=this.getScene();if(this._isReadyForSubMesh(t))return!0;const n=r.getEngine();if(zo(e,s,!1,!1),s.isDirty){s.markAsProcessed(),r.resetCachedMaterial();const o=new Ra;s.FOG&&o.addFallback(1,"FOG"),Ql(s,o),s.IMAGEPROCESSINGPOSTPROCESS=r.imageProcessingConfiguration.applyByPostProcess;const l=[q.PositionKind];s.NORMAL&&l.push(q.NormalKind),s.UV1&&l.push(q.UVKind),s.UV2&&l.push(q.UV2Kind),s.VERTEXCOLOR&&l.push(q.ColorKind),s.TANGENT&&l.push(q.TangentKind),Qo(l,s);const c="fluentBackplate",u=s.toString(),f=["world","viewProjection","cameraPosition","_Radius_","_Line_Width_","_Absolute_Sizes_","_Filter_Width_","_Base_Color_","_Line_Color_","_Radius_Top_Left_","_Radius_Top_Right_","_Radius_Bottom_Left_","_Radius_Bottom_Right_","_Blob_Position_","_Blob_Intensity_","_Blob_Near_Size_","_Blob_Far_Size_","_Blob_Near_Distance_","_Blob_Far_Distance_","_Blob_Fade_Length_","_Blob_Pulse_","_Blob_Fade_","_Blob_Texture_","_Blob_Position_2_","_Blob_Near_Size_2_","_Blob_Pulse_2_","_Blob_Fade_2_","_Rate_","_Highlight_Color_","_Highlight_Width_","_Highlight_Transform_","_Highlight_","_Iridescence_Intensity_","_Iridescence_Edge_Intensity_","_Angle_","_Fade_Out_","_Reflected_","_Frequency_","_Vertical_Offset_","_Iridescent_Map_","_Use_Global_Left_Index_","_Use_Global_Right_Index_","Global_Left_Index_Tip_Position","Global_Right_Index_Tip_Position"],p=["_Blob_Texture_","_Iridescent_Map_"],m=[];gl({uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:s,maxSimultaneousLights:4}),t.setEffect(r.getEngine().createEffect(c,{attributes:l,uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:u,fallbacks:o,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:4}},n),s,this._materialContext)}return!t.effect||!t.effect.isReady()?!1:(s._renderId=r.getRenderId(),i._wasPreviouslyReady=!0,!0)}bindForSubMesh(e,t,i){var n;if(!i.materialDefines)return;const r=i.effect;r&&(this._activeEffect=r,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",this.getScene().getTransformMatrix()),this._activeEffect.setVector3("cameraPosition",((n=this.getScene().activeCamera)==null?void 0:n.position)??P.ZeroReadOnly),this._activeEffect.setFloat("_Radius_",this.radius),this._activeEffect.setFloat("_Line_Width_",this.lineWidth),this._activeEffect.setFloat("_Absolute_Sizes_",this.absoluteSizes?1:0),this._activeEffect.setFloat("_Filter_Width_",this._filterWidth),this._activeEffect.setDirectColor4("_Base_Color_",this.baseColor),this._activeEffect.setDirectColor4("_Line_Color_",this.lineColor),this._activeEffect.setFloat("_Radius_Top_Left_",1),this._activeEffect.setFloat("_Radius_Top_Right_",1),this._activeEffect.setFloat("_Radius_Bottom_Left_",1),this._activeEffect.setFloat("_Radius_Bottom_Right_",1),this._activeEffect.setFloat("_Blob_Intensity_",this.blobIntensity),this._activeEffect.setFloat("_Blob_Near_Size_",this.blobNearSize),this._activeEffect.setFloat("_Blob_Far_Size_",this.blobFarSize),this._activeEffect.setFloat("_Blob_Near_Distance_",this.blobNearDistance),this._activeEffect.setFloat("_Blob_Far_Distance_",this.blobFarDistance),this._activeEffect.setFloat("_Blob_Fade_Length_",this.blobFadeLength),this._activeEffect.setFloat("_Blob_Pulse_",this.blobPulse),this._activeEffect.setFloat("_Blob_Fade_",this.blobFade),this._activeEffect.setTexture("_Blob_Texture_",this._blobTexture),this._activeEffect.setFloat("_Blob_Near_Size_2_",this.blobNearSize2),this._activeEffect.setFloat("_Blob_Pulse_2_",this.blobPulse2),this._activeEffect.setFloat("_Blob_Fade_2_",this.blobFade2),this._activeEffect.setFloat("_Rate_",this._rate),this._activeEffect.setDirectColor4("_Highlight_Color_",this.highlightColor),this._activeEffect.setFloat("_Highlight_Width_",this.highlightWidth),this._activeEffect.setVector4("_Highlight_Transform_",this._highlightTransform),this._activeEffect.setFloat("_Highlight_",this._highlight),this._activeEffect.setFloat("_Iridescence_Intensity_",this.iridescenceIntensity),this._activeEffect.setFloat("_Iridescence_Edge_Intensity_",this.iridescenceEdgeIntensity),this._activeEffect.setFloat("_Angle_",this._angle),this._activeEffect.setFloat("_Fade_Out_",this.fadeOut),this._activeEffect.setFloat("_Reflected_",this._reflected?1:0),this._activeEffect.setFloat("_Frequency_",this._frequency),this._activeEffect.setFloat("_Vertical_Offset_",this._verticalOffset),this._activeEffect.setTexture("_Iridescent_Map_",this._iridescentMap),this._activeEffect.setFloat("_Use_Global_Left_Index_",1),this._activeEffect.setFloat("_Use_Global_Right_Index_",1),this._globalLeftIndexTipPosition4.set(this.globalLeftIndexTipPosition.x,this.globalLeftIndexTipPosition.y,this.globalLeftIndexTipPosition.z,1),this._activeEffect.setVector4("Global_Left_Index_Tip_Position",this._globalLeftIndexTipPosition4),this._globalRightIndexTipPosition4.set(this.globalRightIndexTipPosition.x,this.globalRightIndexTipPosition.y,this.globalRightIndexTipPosition.z,1),this._activeEffect.setVector4("Global_Right_Index_Tip_Position",this._globalRightIndexTipPosition4),this._afterBind(t,this._activeEffect,i))}getAnimatables(){return[]}dispose(e){super.dispose(e),this._blobTexture.dispose(),this._iridescentMap.dispose()}clone(e){return It.Clone(()=>new sa(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.FluentBackplateMaterial",e}getClassName(){return"FluentBackplateMaterial"}static Parse(e,t,i){return It.Parse(()=>new sa(e.name,t),e,t,i)}}sa.BLOB_TEXTURE_URL="https://assets.babylonjs.com/core/MRTK/mrtk-fluent-backplate-blob.png",sa.IM_TEXTURE_URL="https://assets.babylonjs.com/core/MRTK/mrtk-fluent-backplate-iridescence.png",F([G()],sa.prototype,"radius",void 0),F([G()],sa.prototype,"lineWidth",void 0),F([G()],sa.prototype,"absoluteSizes",void 0),F([G()],sa.prototype,"baseColor",void 0),F([G()],sa.prototype,"lineColor",void 0),F([G()],sa.prototype,"blobIntensity",void 0),F([G()],sa.prototype,"blobFarSize",void 0),F([G()],sa.prototype,"blobNearDistance",void 0),F([G()],sa.prototype,"blobFarDistance",void 0),F([G()],sa.prototype,"blobFadeLength",void 0),F([G()],sa.prototype,"blobNearSize",void 0),F([G()],sa.prototype,"blobPulse",void 0),F([G()],sa.prototype,"blobFade",void 0),F([G()],sa.prototype,"blobNearSize2",void 0),F([G()],sa.prototype,"blobPulse2",void 0),F([G()],sa.prototype,"blobFade2",void 0),F([G()],sa.prototype,"highlightColor",void 0),F([G()],sa.prototype,"highlightWidth",void 0),F([G()],sa.prototype,"iridescenceIntensity",void 0),F([G()],sa.prototype,"iridescenceEdgeIntensity",void 0),F([G()],sa.prototype,"fadeOut",void 0),F([Ma()],sa.prototype,"globalLeftIndexTipPosition",void 0),F([Ma()],sa.prototype,"globalRightIndexTipPosition",void 0),ve("BABYLON.GUI.FluentBackplateMaterial",sa);class uR extends Ez{set renderingGroupId(e){this._model.renderingGroupId=e}get renderingGroupId(){return this._model.renderingGroupId}get material(){return this._material}get shareMaterials(){return this._shareMaterials}constructor(e,t=!0){super(e),this._shareMaterials=t}_getTypeName(){return"HolographicBackplate"}_createNode(e){const t=pa((this.name??"HolographicBackplate")+"_CollisionMesh",{width:1,height:1,depth:1},e);t.isPickable=!0,t.visibility=0;const i=Le.GetAssetUrl(uR.MODEL_BASE_URL);return wr.ImportMeshAsync(void 0,i,uR.MODEL_FILENAME,e).then(s=>{const r=s.meshes[1];r.name=`${this.name}_frontPlate`,r.isPickable=!1,r.parent=t,this._material&&(r.material=this._material),this._model=r}),t}_createMaterial(e){this._material=new sa(this.name+" Material",e.getScene())}_affectMaterial(e){this._shareMaterials?this._host._touchSharedMaterials.fluentBackplateMaterial?this._material=this._host._touchSharedMaterials.fluentBackplateMaterial:(this._createMaterial(e),this._host._touchSharedMaterials.fluentBackplateMaterial=this._material):this._createMaterial(e)}dispose(){super.dispose(),this.shareMaterials||this._material.dispose(),this._model.dispose()}}uR.MODEL_BASE_URL="https://assets.babylonjs.com/core/MRTK/",uR.MODEL_FILENAME="mrtk-fluent-backplate.glb";class eJe extends YY{_disposeTooltip(){this._tooltipFade=null,this._tooltipTextBlock&&this._tooltipTextBlock.dispose(),this._tooltipTexture&&this._tooltipTexture.dispose(),this._tooltipMesh&&this._tooltipMesh.dispose(),this.onPointerEnterObservable.remove(this._tooltipHoverObserver),this.onPointerOutObservable.remove(this._tooltipOutObserver)}set renderingGroupId(e){this._backPlate.renderingGroupId=e,this._textPlate.renderingGroupId=e,this._frontPlate.renderingGroupId=e,this._tooltipMesh&&(this._tooltipMesh.renderingGroupId=e)}get renderingGroupId(){return this._backPlate.renderingGroupId}set tooltipText(e){if(!e){this._disposeTooltip();return}if(!this._tooltipFade){const t=this._backPlate._scene.useRightHandedSystem;this._tooltipMesh=Eh("",{size:1},this._backPlate._scene);const i=Eh("",{size:1,sideOrientation:Ne.DOUBLESIDE},this._backPlate._scene),s=new Bt("",this._backPlate._scene);s.diffuseColor=Pe.FromHexString("#212121"),i.material=s,i.isPickable=!1,this._tooltipMesh.addChild(i),i.position=P.Forward(t).scale(.05),this._tooltipMesh.scaling.y=1/3,this._tooltipMesh.position=P.Up().scale(.7).add(P.Forward(t).scale(-.15)),this._tooltipMesh.isPickable=!1,this._tooltipMesh.parent=this._backPlate,this._tooltipTexture=Go.CreateForMesh(this._tooltipMesh),this._tooltipTextBlock=new ia,this._tooltipTextBlock.scaleY=3,this._tooltipTextBlock.color="white",this._tooltipTextBlock.fontSize=130,this._tooltipTexture.addControl(this._tooltipTextBlock),this._tooltipFade=new eH,this._tooltipFade.delay=500,this._tooltipMesh.addBehavior(this._tooltipFade),this._tooltipHoverObserver=this.onPointerEnterObservable.add(()=>{this._tooltipFade&&this._tooltipFade.fadeIn(!0)}),this._tooltipOutObserver=this.onPointerOutObservable.add(()=>{this._tooltipFade&&this._tooltipFade.fadeIn(!1)})}this._tooltipTextBlock&&(this._tooltipTextBlock.text=e)}get tooltipText(){return this._tooltipTextBlock?this._tooltipTextBlock.text:null}get text(){return this._text}set text(e){this._text!==e&&(this._text=e,this._rebuildContent())}get imageUrl(){return this._imageUrl}set imageUrl(e){this._imageUrl!==e&&(this._imageUrl=e,this._rebuildContent())}get backMaterial(){return this._backMaterial}get frontMaterial(){return this._frontMaterial}get plateMaterial(){return this._plateMaterial}get shareMaterials(){return this._shareMaterials}constructor(e,t=!0){super(e),this._shareMaterials=!0,this._shareMaterials=t,this.pointerEnterAnimation=()=>{this.mesh&&this._frontPlate.setEnabled(!0)},this.pointerOutAnimation=()=>{this.mesh&&this._frontPlate.setEnabled(!1)}}_getTypeName(){return"HolographicButton"}_rebuildContent(){this._disposeFacadeTexture();const e=new s1;if(e.isVertical=!0,H6()&&document.createElement&&this._imageUrl){const t=new In;t.source=this._imageUrl,t.paddingTop="40px",t.height="180px",t.width="100px",t.paddingBottom="40px",e.addControl(t)}if(this._text){const t=new ia;t.text=this._text,t.color="white",t.height="30px",t.fontSize=24,e.addControl(t)}this._frontPlate&&(this.content=e)}_createNode(e){return this._backPlate=pa(this.name+"BackMesh",{width:1,height:1,depth:.08},e),this._frontPlate=pa(this.name+"FrontMesh",{width:1,height:1,depth:.08},e),this._frontPlate.parent=this._backPlate,this._frontPlate.position=P.Forward(e.useRightHandedSystem).scale(-.08),this._frontPlate.isPickable=!1,this._frontPlate.setEnabled(!1),this._textPlate=super._createNode(e),this._textPlate.parent=this._backPlate,this._textPlate.position=P.Forward(e.useRightHandedSystem).scale(-.08),this._textPlate.isPickable=!1,this._backPlate}_applyFacade(e){this._plateMaterial.emissiveTexture=e,this._plateMaterial.opacityTexture=e}_createBackMaterial(e){this._backMaterial=new Gc(this.name+"Back Material",e.getScene()),this._backMaterial.renderHoverLight=!0,this._pickedPointObserver=this._host.onPickedPointChangedObservable.add(t=>{t?(this._backMaterial.hoverPosition=t,this._backMaterial.hoverColor.a=1):this._backMaterial.hoverColor.a=0})}_createFrontMaterial(e){this._frontMaterial=new Gc(this.name+"Front Material",e.getScene()),this._frontMaterial.innerGlowColorIntensity=0,this._frontMaterial.alpha=.5,this._frontMaterial.renderBorders=!0}_createPlateMaterial(e){this._plateMaterial=new Bt(this.name+"Plate Material",e.getScene()),this._plateMaterial.specularColor=Pe.Black()}_affectMaterial(e){this._shareMaterials?(this._host._sharedMaterials.backFluentMaterial?this._backMaterial=this._host._sharedMaterials.backFluentMaterial:(this._createBackMaterial(e),this._host._sharedMaterials.backFluentMaterial=this._backMaterial),this._host._sharedMaterials.frontFluentMaterial?this._frontMaterial=this._host._sharedMaterials.frontFluentMaterial:(this._createFrontMaterial(e),this._host._sharedMaterials.frontFluentMaterial=this._frontMaterial)):(this._createBackMaterial(e),this._createFrontMaterial(e)),this._createPlateMaterial(e),this._backPlate.material=this._backMaterial,this._frontPlate.material=this._frontMaterial,this._textPlate.material=this._plateMaterial,this._rebuildContent()}dispose(){super.dispose(),this._disposeTooltip(),this.shareMaterials||(this._backMaterial.dispose(),this._frontMaterial.dispose(),this._plateMaterial.dispose(),this._pickedPointObserver&&(this._host.onPickedPointChangedObservable.remove(this._pickedPointObserver),this._pickedPointObserver=null))}}const FLe="fluentButtonPixelShader",tJe=`uniform vec3 cameraPosition;varying vec3 vPosition;varying vec3 vNormal;varying vec2 vUV;varying vec3 vTangent;varying vec3 vBinormal;varying vec4 vColor;varying vec4 vExtra1;uniform float _Edge_Width_;uniform vec4 _Edge_Color_;uniform bool _Relative_Width_;uniform float _Proximity_Max_Intensity_;uniform float _Proximity_Far_Distance_;uniform float _Proximity_Near_Radius_;uniform float _Proximity_Anisotropy_;uniform float _Selection_Fuzz_;uniform float _Selected_;uniform float _Selection_Fade_;uniform float _Selection_Fade_Size_;uniform float _Selected_Distance_;uniform float _Selected_Fade_Length_;uniform bool _Blob_Enable_;uniform vec3 _Blob_Position_;uniform float _Blob_Intensity_;uniform float _Blob_Near_Size_;uniform float _Blob_Far_Size_;uniform float _Blob_Near_Distance_;uniform float _Blob_Far_Distance_;uniform float _Blob_Fade_Length_;uniform float _Blob_Inner_Fade_;uniform float _Blob_Pulse_;uniform float _Blob_Fade_;uniform sampler2D _Blob_Texture_;uniform bool _Blob_Enable_2_;uniform vec3 _Blob_Position_2_;uniform float _Blob_Near_Size_2_;uniform float _Blob_Inner_Fade_2_;uniform float _Blob_Pulse_2_;uniform float _Blob_Fade_2_;uniform vec3 _Active_Face_Dir_;uniform vec3 _Active_Face_Up_;uniform bool Enable_Fade;uniform float _Fade_Width_;uniform bool _Smooth_Active_Face_;uniform bool _Show_Frame_;uniform bool _Use_Blob_Texture_;uniform bool Use_Global_Left_Index;uniform bool Use_Global_Right_Index;uniform vec4 Global_Left_Index_Tip_Position;uniform vec4 Global_Right_Index_Tip_Position;uniform vec4 Global_Left_Thumb_Tip_Position;uniform vec4 Global_Right_Thumb_Tip_Position;uniform float Global_Left_Index_Tip_Proximity;uniform float Global_Right_Index_Tip_Proximity;void Holo_Edge_Fragment_B35(
vec4 Edges,
float Edge_Width,
out float NotEdge)
{vec2 c=vec2(min(Edges.r,Edges.g),min(Edges.b,Edges.a));vec2 df=fwidth(c)*Edge_Width;vec2 g=clamp(c/df,0.0,1.0);NotEdge=g.x*g.y;}
void Blob_Fragment_B39(
vec2 UV,
vec3 Blob_Info,
sampler2D Blob_Texture,
out vec4 Blob_Color)
{float k=dot(UV,UV);Blob_Color=Blob_Info.y*texture(Blob_Texture,vec2(vec2(sqrt(k),Blob_Info.x).x,1.0-vec2(sqrt(k),Blob_Info.x).y))*(1.0-clamp(k,0.0,1.0));}
vec2 FilterStep(vec2 Edge,vec2 X)
{vec2 dX=max(fwidth(X),vec2(0.00001,0.00001));return clamp( (X+dX-max(Edge,X-dX))/(dX*2.0),0.0,1.0);}
void Wireframe_Fragment_B59(
vec3 Widths,
vec2 UV,
float Proximity,
vec4 Edge_Color,
out vec4 Wireframe)
{vec2 c=min(UV,vec2(1.0,1.0)-UV);vec2 g=FilterStep(Widths.xy*0.5,c); 
Wireframe=(1.0-min(g.x,g.y))*Proximity*Edge_Color;}
void Proximity_B53(
vec3 Proximity_Center,
vec3 Proximity_Center_2,
float Proximity_Max_Intensity,
float Proximity_Near_Radius,
vec3 Position,
vec3 Show_Selection,
vec4 Extra1,
float Dist_To_Face,
float Intensity,
out float Proximity)
{vec2 delta1=Extra1.xy;vec2 delta2=Extra1.zw;float d2=sqrt(min(dot(delta1,delta1),dot(delta2,delta2))+Dist_To_Face*Dist_To_Face);Proximity=Intensity*Proximity_Max_Intensity*(1.0-clamp(d2/Proximity_Near_Radius,0.0,1.0))*(1.0-Show_Selection.x)+Show_Selection.x;}
void To_XYZ_B46(
vec3 Vec3,
out float X,
out float Y,
out float Z)
{X=Vec3.x;Y=Vec3.y;Z=Vec3.z;}
void main()
{float NotEdge_Q35;
#if ENABLE_FADE
Holo_Edge_Fragment_B35(vColor,_Fade_Width_,NotEdge_Q35);
#else
NotEdge_Q35=1.0;
#endif
vec4 Blob_Color_Q39;float k=dot(vUV,vUV);vec2 blobTextureCoord=vec2(vec2(sqrt(k),vTangent.x).x,1.0-vec2(sqrt(k),vTangent.x).y);vec4 blobColor=mix(vec4(1.0,1.0,1.0,1.0)*step(1.0-vTangent.x,clamp(sqrt(k)+0.1,0.0,1.0)),texture(_Blob_Texture_,blobTextureCoord),float(_Use_Blob_Texture_));Blob_Color_Q39=vTangent.y*blobColor*(1.0-clamp(k,0.0,1.0));float Is_Quad_Q24;Is_Quad_Q24=vNormal.z;vec3 Blob_Position_Q41= mix(_Blob_Position_,Global_Left_Index_Tip_Position.xyz,float(Use_Global_Left_Index));vec3 Blob_Position_Q42= mix(_Blob_Position_2_,Global_Right_Index_Tip_Position.xyz,float(Use_Global_Right_Index));float X_Q46;float Y_Q46;float Z_Q46;To_XYZ_B46(vBinormal,X_Q46,Y_Q46,Z_Q46);float Proximity_Q53;Proximity_B53(Blob_Position_Q41,Blob_Position_Q42,_Proximity_Max_Intensity_,_Proximity_Near_Radius_,vPosition,vBinormal,vExtra1,Y_Q46,Z_Q46,Proximity_Q53);vec4 Wireframe_Q59;Wireframe_Fragment_B59(vNormal,vUV,Proximity_Q53,_Edge_Color_,Wireframe_Q59);vec4 Wire_Or_Blob_Q23=mix(Wireframe_Q59,Blob_Color_Q39,Is_Quad_Q24);vec4 Result_Q22;Result_Q22=mix(Wire_Or_Blob_Q23,vec4(0.3,0.3,0.3,0.3),float(_Show_Frame_));vec4 Final_Color_Q37=NotEdge_Q35*Result_Q22;vec4 Out_Color=Final_Color_Q37;float Clip_Threshold=0.0;bool To_sRGB=false;gl_FragColor=Out_Color;}`;H.ShadersStore[FLe]||(H.ShadersStore[FLe]=tJe);const kLe="fluentButtonVertexShader",iJe=`uniform mat4 world;uniform mat4 viewProjection;uniform vec3 cameraPosition;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;attribute vec3 tangent;attribute vec4 color;uniform float _Edge_Width_;uniform vec4 _Edge_Color_;uniform float _Proximity_Max_Intensity_;uniform float _Proximity_Far_Distance_;uniform float _Proximity_Near_Radius_;uniform float _Proximity_Anisotropy_;uniform float _Selection_Fuzz_;uniform float _Selected_;uniform float _Selection_Fade_;uniform float _Selection_Fade_Size_;uniform float _Selected_Distance_;uniform float _Selected_Fade_Length_;uniform bool _Blob_Enable_;uniform vec3 _Blob_Position_;uniform float _Blob_Intensity_;uniform float _Blob_Near_Size_;uniform float _Blob_Far_Size_;uniform float _Blob_Near_Distance_;uniform float _Blob_Far_Distance_;uniform float _Blob_Fade_Length_;uniform float _Blob_Inner_Fade_;uniform float _Blob_Pulse_;uniform float _Blob_Fade_;uniform sampler2D _Blob_Texture_;uniform bool _Blob_Enable_2_;uniform vec3 _Blob_Position_2_;uniform float _Blob_Near_Size_2_;uniform float _Blob_Inner_Fade_2_;uniform float _Blob_Pulse_2_;uniform float _Blob_Fade_2_;uniform vec3 _Active_Face_Dir_;uniform vec3 _Active_Face_Up_;uniform bool _Enable_Fade_;uniform float _Fade_Width_;uniform bool _Smooth_Active_Face_;uniform bool _Show_Frame_;uniform bool Use_Global_Left_Index;uniform bool Use_Global_Right_Index;uniform vec4 Global_Left_Index_Tip_Position;uniform vec4 Global_Right_Index_Tip_Position;uniform vec4 Global_Left_Thumb_Tip_Position;uniform vec4 Global_Right_Thumb_Tip_Position;uniform float Global_Left_Index_Tip_Proximity;uniform float Global_Right_Index_Tip_Proximity;varying vec3 vPosition;varying vec3 vNormal;varying vec2 vUV;varying vec3 vTangent;varying vec3 vBinormal;varying vec4 vColor;varying vec4 vExtra1;void Blob_Vertex_B47(
vec3 Position,
vec3 Normal,
vec3 Tangent,
vec3 Bitangent,
vec3 Blob_Position,
float Intensity,
float Blob_Near_Size,
float Blob_Far_Size,
float Blob_Near_Distance,
float Blob_Far_Distance,
vec4 Vx_Color,
vec2 UV,
vec3 Face_Center,
vec2 Face_Size,
vec2 In_UV,
float Blob_Fade_Length,
float Selection_Fade,
float Selection_Fade_Size,
float Inner_Fade,
vec3 Active_Face_Center,
float Blob_Pulse,
float Blob_Fade,
float Blob_Enabled,
out vec3 Out_Position,
out vec2 Out_UV,
out vec3 Blob_Info)
{float blobSize,fadeIn;vec3 Hit_Position;Blob_Info=vec3(0.0,0.0,0.0);float Hit_Distance=dot(Blob_Position-Face_Center,Normal);Hit_Position=Blob_Position-Hit_Distance*Normal;float absD=abs(Hit_Distance);float lerpVal=clamp((absD-Blob_Near_Distance)/(Blob_Far_Distance-Blob_Near_Distance),0.0,1.0);fadeIn=1.0-clamp((absD-Blob_Far_Distance)/Blob_Fade_Length,0.0,1.0);float innerFade=1.0-clamp(-Hit_Distance/Inner_Fade,0.0,1.0);float farClip=clamp(1.0-step(Blob_Far_Distance+Blob_Fade_Length,absD),0.0,1.0);float size=mix(Blob_Near_Size,Blob_Far_Size,lerpVal)*farClip;blobSize=mix(size,Selection_Fade_Size,Selection_Fade)*innerFade*Blob_Enabled;Blob_Info.x=lerpVal*0.5+0.5;Blob_Info.y=fadeIn*Intensity*(1.0-Selection_Fade)*Blob_Fade;Blob_Info.x*=(1.0-Blob_Pulse);vec3 delta=Hit_Position-Face_Center;vec2 blobCenterXY=vec2(dot(delta,Tangent),dot(delta,Bitangent));vec2 quadUVin=2.0*UV-1.0; 
vec2 blobXY=blobCenterXY+quadUVin*blobSize;vec2 blobClipped=clamp(blobXY,-Face_Size*0.5,Face_Size*0.5);vec2 blobUV=(blobClipped-blobCenterXY)/max(blobSize,0.0001)*2.0;vec3 blobCorner=Face_Center+blobClipped.x*Tangent+blobClipped.y*Bitangent;Out_Position=mix(Position,blobCorner,Vx_Color.rrr);Out_UV=mix(In_UV,blobUV,Vx_Color.rr);}
vec2 ProjectProximity(
vec3 blobPosition,
vec3 position,
vec3 center,
vec3 dir,
vec3 xdir,
vec3 ydir,
out float vdistance
)
{vec3 delta=blobPosition-position;vec2 xy=vec2(dot(delta,xdir),dot(delta,ydir));vdistance=abs(dot(delta,dir));return xy;}
void Proximity_Vertex_B66(
vec3 Blob_Position,
vec3 Blob_Position_2,
vec3 Active_Face_Center,
vec3 Active_Face_Dir,
vec3 Position,
float Proximity_Far_Distance,
float Relative_Scale,
float Proximity_Anisotropy,
vec3 Up,
out vec4 Extra1,
out float Distance_To_Face,
out float Intensity)
{vec3 Active_Face_Dir_X=normalize(cross(Active_Face_Dir,Up));vec3 Active_Face_Dir_Y=cross(Active_Face_Dir,Active_Face_Dir_X);float distz1,distz2;Extra1.xy=ProjectProximity(Blob_Position,Position,Active_Face_Center,Active_Face_Dir,Active_Face_Dir_X*Proximity_Anisotropy,Active_Face_Dir_Y,distz1)/Relative_Scale;Extra1.zw=ProjectProximity(Blob_Position_2,Position,Active_Face_Center,Active_Face_Dir,Active_Face_Dir_X*Proximity_Anisotropy,Active_Face_Dir_Y,distz2)/Relative_Scale;Distance_To_Face=dot(Active_Face_Dir,Position-Active_Face_Center);Intensity=1.0-clamp(min(distz1,distz2)/Proximity_Far_Distance,0.0,1.0);}
void Holo_Edge_Vertex_B44(
vec3 Incident,
vec3 Normal,
vec2 UV,
vec3 Tangent,
vec3 Bitangent,
bool Smooth_Active_Face,
float Active,
out vec4 Holo_Edges)
{float NdotI=dot(Incident,Normal);vec2 flip=(UV-vec2(0.5,0.5));float udot=dot(Incident,Tangent)*flip.x*NdotI;float uval=1.0-float(udot>0.0);float vdot=-dot(Incident,Bitangent)*flip.y*NdotI;float vval=1.0-float(vdot>0.0);float Smooth_And_Active=step(1.0,float(Smooth_Active_Face && Active>0.0));uval=mix(uval,max(1.0,uval),Smooth_And_Active); 
vval=mix(vval,max(1.0,vval),Smooth_And_Active);Holo_Edges=vec4(1.0,1.0,1.0,1.0)-vec4(uval*UV.x,uval*(1.0-UV.x),vval*UV.y,vval*(1.0-UV.y));}
void Object_To_World_Pos_B13(
vec3 Pos_Object,
out vec3 Pos_World)
{Pos_World=(world*vec4(Pos_Object,1.0)).xyz;}
void Choose_Blob_B38(
vec4 Vx_Color,
vec3 Position1,
vec3 Position2,
bool Blob_Enable_1,
bool Blob_Enable_2,
float Near_Size_1,
float Near_Size_2,
float Blob_Inner_Fade_1,
float Blob_Inner_Fade_2,
float Blob_Pulse_1,
float Blob_Pulse_2,
float Blob_Fade_1,
float Blob_Fade_2,
out vec3 Position,
out float Near_Size,
out float Inner_Fade,
out float Blob_Enable,
out float Fade,
out float Pulse)
{Position=Position1*(1.0-Vx_Color.g)+Vx_Color.g*Position2;float b1=float(Blob_Enable_1);float b2=float(Blob_Enable_2);Blob_Enable=b1+(b2-b1)*Vx_Color.g;Pulse=Blob_Pulse_1*(1.0-Vx_Color.g)+Vx_Color.g*Blob_Pulse_2;Fade=Blob_Fade_1*(1.0-Vx_Color.g)+Vx_Color.g*Blob_Fade_2;Near_Size=Near_Size_1*(1.0-Vx_Color.g)+Vx_Color.g*Near_Size_2;Inner_Fade=Blob_Inner_Fade_1*(1.0-Vx_Color.g)+Vx_Color.g*Blob_Inner_Fade_2;}
void Wireframe_Vertex_B51(
vec3 Position,
vec3 Normal,
vec3 Tangent,
vec3 Bitangent,
float Edge_Width,
vec2 Face_Size,
out vec3 Wire_Vx_Pos,
out vec2 UV,
out vec2 Widths)
{Widths.xy=Edge_Width/Face_Size;float x=dot(Position,Tangent);float y=dot(Position,Bitangent);float dx=0.5-abs(x);float newx=(0.5-dx*Widths.x*2.0)*sign(x);float dy=0.5-abs(y);float newy=(0.5-dy*Widths.y*2.0)*sign(y);Wire_Vx_Pos=Normal*0.5+newx*Tangent+newy*Bitangent;UV.x=dot(Wire_Vx_Pos,Tangent)+0.5;UV.y=dot(Wire_Vx_Pos,Bitangent)+0.5;}
vec2 ramp2(vec2 start,vec2 end,vec2 x)
{return clamp((x-start)/(end-start),vec2(0.0,0.0),vec2(1.0,1.0));}
float computeSelection(
vec3 blobPosition,
vec3 normal,
vec3 tangent,
vec3 bitangent,
vec3 faceCenter,
vec2 faceSize,
float selectionFuzz,
float farDistance,
float fadeLength
)
{vec3 delta=blobPosition-faceCenter;float absD=abs(dot(delta,normal));float fadeIn=1.0-clamp((absD-farDistance)/fadeLength,0.0,1.0);vec2 blobCenterXY=vec2(dot(delta,tangent),dot(delta,bitangent));vec2 innerFace=faceSize*(1.0-selectionFuzz)*0.5;vec2 selectPulse=ramp2(-faceSize*0.5,-innerFace,blobCenterXY)-ramp2(innerFace,faceSize*0.5,blobCenterXY);return selectPulse.x*selectPulse.y*fadeIn;}
void Selection_Vertex_B48(
vec3 Blob_Position,
vec3 Blob_Position_2,
vec3 Face_Center,
vec2 Face_Size,
vec3 Normal,
vec3 Tangent,
vec3 Bitangent,
float Selection_Fuzz,
float Selected,
float Far_Distance,
float Fade_Length,
vec3 Active_Face_Dir,
out float Show_Selection)
{float select1=computeSelection(Blob_Position,Normal,Tangent,Bitangent,Face_Center,Face_Size,Selection_Fuzz,Far_Distance,Fade_Length);float select2=computeSelection(Blob_Position_2,Normal,Tangent,Bitangent,Face_Center,Face_Size,Selection_Fuzz,Far_Distance,Fade_Length);float Active=max(0.0,dot(Active_Face_Dir,Normal));Show_Selection=mix(max(select1,select2),1.0,Selected)*Active;}
void Proximity_Visibility_B54(
float Selection,
vec3 Proximity_Center,
vec3 Proximity_Center_2,
float Input_Width,
float Proximity_Far_Distance,
float Proximity_Radius,
vec3 Active_Face_Center,
vec3 Active_Face_Dir,
out float Width)
{vec3 boxEdges=(world*vec4(vec3(0.5,0.5,0.5),0.0)).xyz;float boxMaxSize=length(boxEdges);float d1=dot(Proximity_Center-Active_Face_Center,Active_Face_Dir);vec3 blob1=Proximity_Center-d1*Active_Face_Dir;float d2=dot(Proximity_Center_2-Active_Face_Center,Active_Face_Dir);vec3 blob2=Proximity_Center_2-d2*Active_Face_Dir;vec3 delta1=blob1-Active_Face_Center;vec3 delta2=blob2-Active_Face_Center;float dist1=dot(delta1,delta1);float dist2=dot(delta2,delta2);float nearestProxDist=sqrt(min(dist1,dist2));Width=Input_Width*(1.0-step(boxMaxSize+Proximity_Radius,nearestProxDist))*(1.0-step(Proximity_Far_Distance,min(d1,d2))*(1.0-step(0.0001,Selection)));}
void Object_To_World_Dir_B67(
vec3 Dir_Object,
out vec3 Dir_World)
{Dir_World=(world*vec4(Dir_Object,0.0)).xyz;}
void main()
{vec3 Active_Face_Center_Q49;Active_Face_Center_Q49=(world*vec4(_Active_Face_Dir_*0.5,1.0)).xyz;vec3 Blob_Position_Q41= mix(_Blob_Position_,Global_Left_Index_Tip_Position.xyz,float(Use_Global_Left_Index));vec3 Blob_Position_Q42= mix(_Blob_Position_2_,Global_Right_Index_Tip_Position.xyz,float(Use_Global_Right_Index));vec3 Active_Face_Dir_Q64=normalize((world*vec4(_Active_Face_Dir_,0.0)).xyz);float Relative_Scale_Q57;
#if RELATIVE_WIDTH
Relative_Scale_Q57=length((world*vec4(vec3(0,1,0),0.0)).xyz);
#else
Relative_Scale_Q57=1.0;
#endif
vec3 Tangent_World_Q30;Tangent_World_Q30=(world*vec4(tangent,0.0)).xyz;vec3 Binormal_World_Q31;Binormal_World_Q31=(world*vec4((cross(normal,tangent)),0.0)).xyz;vec3 Normal_World_Q60;Normal_World_Q60=(world*vec4(normal,0.0)).xyz;vec3 Result_Q18=0.5*normal;vec3 Dir_World_Q67;Object_To_World_Dir_B67(_Active_Face_Up_,Dir_World_Q67);float Product_Q56=_Edge_Width_*Relative_Scale_Q57;vec3 Normal_World_N_Q29=normalize(Normal_World_Q60);vec3 Tangent_World_N_Q28=normalize(Tangent_World_Q30);vec3 Binormal_World_N_Q32=normalize(Binormal_World_Q31);vec3 Position_Q38;float Near_Size_Q38;float Inner_Fade_Q38;float Blob_Enable_Q38;float Fade_Q38;float Pulse_Q38;Choose_Blob_B38(color,Blob_Position_Q41,Blob_Position_Q42,_Blob_Enable_,_Blob_Enable_2_,_Blob_Near_Size_,_Blob_Near_Size_2_,_Blob_Inner_Fade_,_Blob_Inner_Fade_2_,_Blob_Pulse_,_Blob_Pulse_2_,_Blob_Fade_,_Blob_Fade_2_,Position_Q38,Near_Size_Q38,Inner_Fade_Q38,Blob_Enable_Q38,Fade_Q38,Pulse_Q38);vec3 Face_Center_Q33;Face_Center_Q33=(world*vec4(Result_Q18,1.0)).xyz;vec2 Face_Size_Q50=vec2(length(Tangent_World_Q30),length(Binormal_World_Q31));float Show_Selection_Q48;Selection_Vertex_B48(Blob_Position_Q41,Blob_Position_Q42,Face_Center_Q33,Face_Size_Q50,Normal_World_N_Q29,Tangent_World_N_Q28,Binormal_World_N_Q32,_Selection_Fuzz_,_Selected_,_Selected_Distance_,_Selected_Fade_Length_,Active_Face_Dir_Q64,Show_Selection_Q48);vec3 Normalized_Q72=normalize(Dir_World_Q67);float Active_Q34=max(0.0,dot(Active_Face_Dir_Q64,Normal_World_N_Q29));float Width_Q54;Proximity_Visibility_B54(Show_Selection_Q48,Blob_Position_Q41,Blob_Position_Q42,Product_Q56,_Proximity_Far_Distance_,_Proximity_Near_Radius_,Active_Face_Center_Q49,Active_Face_Dir_Q64,Width_Q54);vec3 Wire_Vx_Pos_Q51;vec2 UV_Q51;vec2 Widths_Q51;Wireframe_Vertex_B51(position,normal,tangent,(cross(normal,tangent)),Width_Q54,Face_Size_Q50,Wire_Vx_Pos_Q51,UV_Q51,Widths_Q51);vec3 Vec3_Q27=vec3(Widths_Q51.x,Widths_Q51.y,color.r);vec3 Pos_World_Q13;Object_To_World_Pos_B13(Wire_Vx_Pos_Q51,Pos_World_Q13);vec3 Incident_Q36=normalize(Pos_World_Q13-cameraPosition);vec3 Out_Position_Q47;vec2 Out_UV_Q47;vec3 Blob_Info_Q47;Blob_Vertex_B47(Pos_World_Q13,Normal_World_N_Q29,Tangent_World_N_Q28,Binormal_World_N_Q32,Position_Q38,_Blob_Intensity_,Near_Size_Q38,_Blob_Far_Size_,_Blob_Near_Distance_,_Blob_Far_Distance_,color,uv,Face_Center_Q33,Face_Size_Q50,UV_Q51,_Blob_Fade_Length_,_Selection_Fade_,_Selection_Fade_Size_,Inner_Fade_Q38,Active_Face_Center_Q49,Pulse_Q38,Fade_Q38,Blob_Enable_Q38,Out_Position_Q47,Out_UV_Q47,Blob_Info_Q47);vec4 Extra1_Q66;float Distance_To_Face_Q66;float Intensity_Q66;Proximity_Vertex_B66(Blob_Position_Q41,Blob_Position_Q42,Active_Face_Center_Q49,Active_Face_Dir_Q64,Pos_World_Q13,_Proximity_Far_Distance_,Relative_Scale_Q57,_Proximity_Anisotropy_,Normalized_Q72,Extra1_Q66,Distance_To_Face_Q66,Intensity_Q66);vec4 Holo_Edges_Q44;Holo_Edge_Vertex_B44(Incident_Q36,Normal_World_N_Q29,uv,Tangent_World_Q30,Binormal_World_Q31,_Smooth_Active_Face_,Active_Q34,Holo_Edges_Q44);vec3 Vec3_Q19=vec3(Show_Selection_Q48,Distance_To_Face_Q66,Intensity_Q66);vec3 Position=Out_Position_Q47;vec2 UV=Out_UV_Q47;vec3 Tangent=Blob_Info_Q47;vec3 Binormal=Vec3_Q19;vec3 Normal=Vec3_Q27;vec4 Extra1=Extra1_Q66;vec4 Color=Holo_Edges_Q44;gl_Position=viewProjection*vec4(Position,1);vPosition=Position;vNormal=Normal;vUV=UV;vTangent=Tangent;vBinormal=Binormal;vColor=Color;vExtra1=Extra1;}`;H.ShadersStore[kLe]||(H.ShadersStore[kLe]=iJe);class sJe extends Br{constructor(){super(),this.RELATIVE_WIDTH=!0,this.ENABLE_FADE=!0,this._needNormals=!0,this._needUVs=!0,this.rebuild()}}class kr extends po{constructor(e,t){super(e,t),this.edgeWidth=.04,this.edgeColor=new St(.592157,.592157,.592157,1),this.proximityMaxIntensity=.45,this.proximityFarDistance=.16,this.proximityNearRadius=1.5,this.proximityAnisotropy=1,this.selectionFuzz=.5,this.selected=0,this.selectionFade=0,this.selectionFadeSize=.3,this.selectedDistance=.08,this.selectedFadeLength=.08,this.blobIntensity=.5,this.blobFarSize=.05,this.blobNearDistance=0,this.blobFarDistance=.08,this.blobFadeLength=.08,this.leftBlobEnable=!0,this.leftBlobNearSize=.025,this.leftBlobPulse=0,this.leftBlobFade=1,this.leftBlobInnerFade=.01,this.rightBlobEnable=!0,this.rightBlobNearSize=.025,this.rightBlobPulse=0,this.rightBlobFade=1,this.rightBlobInnerFade=.01,this.activeFaceDir=new P(0,0,-1),this.activeFaceUp=new P(0,1,0),this.enableFade=!0,this.fadeWidth=1.5,this.smoothActiveFace=!0,this.showFrame=!1,this.useBlobTexture=!0,this.globalLeftIndexTipPosition=P.Zero(),this.globalRightIndexTipPosition=P.Zero(),this.alphaMode=ze.ALPHA_ADD,this.disableDepthWrite=!0,this.backFaceCulling=!1;const i=Le.GetAssetUrl(kr.BLOB_TEXTURE_URL);this._blobTexture=new be(i,this.getScene(),!0,!1,be.NEAREST_SAMPLINGMODE)}needAlphaBlending(){return!0}needAlphaTesting(){return!0}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t){const i=t._drawWrapper;if(this.isFrozen&&i.effect&&i._wasPreviouslyReady)return!0;t.materialDefines||(t.materialDefines=new sJe);const s=t.materialDefines,r=this.getScene();if(this._isReadyForSubMesh(t))return!0;const n=r.getEngine();if(zo(e,s,!0,!1),s.isDirty){s.markAsProcessed(),r.resetCachedMaterial();const o=new Ra;s.FOG&&o.addFallback(1,"FOG"),Ql(s,o),s.IMAGEPROCESSINGPOSTPROCESS=r.imageProcessingConfiguration.applyByPostProcess;const l=[q.PositionKind];s.NORMAL&&l.push(q.NormalKind),s.UV1&&l.push(q.UVKind),s.UV2&&l.push(q.UV2Kind),s.VERTEXCOLOR&&l.push(q.ColorKind),s.TANGENT&&l.push(q.TangentKind),Qo(l,s);const c="fluentButton",u=s.toString(),f=["world","viewProjection","cameraPosition","_Edge_Width_","_Edge_Color_","_Relative_Width_","_Proximity_Max_Intensity_","_Proximity_Far_Distance_","_Proximity_Near_Radius_","_Proximity_Anisotropy_","_Selection_Fuzz_","_Selected_","_Selection_Fade_","_Selection_Fade_Size_","_Selected_Distance_","_Selected_Fade_Length_","_Blob_Enable_","_Blob_Position_","_Blob_Intensity_","_Blob_Near_Size_","_Blob_Far_Size_","_Blob_Near_Distance_","_Blob_Far_Distance_","_Blob_Fade_Length_","_Blob_Inner_Fade_","_Blob_Pulse_","_Blob_Fade_","_Blob_Texture_","_Blob_Enable_2_","_Blob_Position_2_","_Blob_Near_Size_2_","_Blob_Inner_Fade_2_","_Blob_Pulse_2_","_Blob_Fade_2_","_Active_Face_Dir_","_Active_Face_Up_","_Enable_Fade_","_Fade_Width_","_Smooth_Active_Face_","_Show_Frame_","_Use_Blob_Texture_","Use_Global_Left_Index","Use_Global_Right_Index","Global_Left_Index_Tip_Position","Global_Right_Index_Tip_Position","Global_Left_Thumb_Tip_Position","Global_Right_Thumb_Tip_Position","Global_Left_Index_Tip_Proximity","Global_Right_Index_Tip_Proximity"],p=["_Blob_Texture_"],m=[];gl({uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:s,maxSimultaneousLights:4}),t.setEffect(r.getEngine().createEffect(c,{attributes:l,uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:u,fallbacks:o,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:4}},n),s,this._materialContext)}return!t.effect||!t.effect.isReady()?!1:(s._renderId=r.getRenderId(),i._wasPreviouslyReady=!0,!0)}bindForSubMesh(e,t,i){const s=this.getScene();if(!i.materialDefines)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),this._activeEffect.setVector3("cameraPosition",s.activeCamera.position),this._activeEffect.setTexture("_Blob_Texture_",this._blobTexture),this._activeEffect.setFloat("_Edge_Width_",this.edgeWidth),this._activeEffect.setColor4("_Edge_Color_",new Pe(this.edgeColor.r,this.edgeColor.g,this.edgeColor.b),this.edgeColor.a),this._activeEffect.setFloat("_Proximity_Max_Intensity_",this.proximityMaxIntensity),this._activeEffect.setFloat("_Proximity_Far_Distance_",this.proximityFarDistance),this._activeEffect.setFloat("_Proximity_Near_Radius_",this.proximityNearRadius),this._activeEffect.setFloat("_Proximity_Anisotropy_",this.proximityAnisotropy),this._activeEffect.setFloat("_Selection_Fuzz_",this.selectionFuzz),this._activeEffect.setFloat("_Selected_",this.selected),this._activeEffect.setFloat("_Selection_Fade_",this.selectionFade),this._activeEffect.setFloat("_Selection_Fade_Size_",this.selectionFadeSize),this._activeEffect.setFloat("_Selected_Distance_",this.selectedDistance),this._activeEffect.setFloat("_Selected_Fade_Length_",this.selectedFadeLength),this._activeEffect.setFloat("_Blob_Enable_",this.leftBlobEnable?1:0),this._activeEffect.setFloat("_Blob_Intensity_",this.blobIntensity),this._activeEffect.setFloat("_Blob_Near_Size_",this.leftBlobNearSize),this._activeEffect.setFloat("_Blob_Far_Size_",this.blobFarSize),this._activeEffect.setFloat("_Blob_Near_Distance_",this.blobNearDistance),this._activeEffect.setFloat("_Blob_Far_Distance_",this.blobFarDistance),this._activeEffect.setFloat("_Blob_Fade_Length_",this.blobFadeLength),this._activeEffect.setFloat("_Blob_Inner_Fade_",this.leftBlobInnerFade),this._activeEffect.setFloat("_Blob_Pulse_",this.leftBlobPulse),this._activeEffect.setFloat("_Blob_Fade_",this.leftBlobFade),this._activeEffect.setFloat("_Blob_Enable_2_",this.rightBlobEnable?1:0),this._activeEffect.setFloat("_Blob_Near_Size_2_",this.rightBlobNearSize),this._activeEffect.setFloat("_Blob_Inner_Fade_2_",this.rightBlobInnerFade),this._activeEffect.setFloat("_Blob_Pulse_2_",this.rightBlobPulse),this._activeEffect.setFloat("_Blob_Fade_2_",this.rightBlobFade),this._activeEffect.setVector3("_Active_Face_Dir_",this.activeFaceDir),this._activeEffect.setVector3("_Active_Face_Up_",this.activeFaceUp),this._activeEffect.setFloat("_Fade_Width_",this.fadeWidth),this._activeEffect.setFloat("_Smooth_Active_Face_",this.smoothActiveFace?1:0),this._activeEffect.setFloat("_Show_Frame_",this.showFrame?1:0),this._activeEffect.setFloat("_Use_Blob_Texture_",this.useBlobTexture?1:0),this._activeEffect.setFloat("Use_Global_Left_Index",1),this._activeEffect.setFloat("Use_Global_Right_Index",1),this._activeEffect.setVector4("Global_Left_Index_Tip_Position",new Yt(this.globalLeftIndexTipPosition.x,this.globalLeftIndexTipPosition.y,this.globalLeftIndexTipPosition.z,1)),this._activeEffect.setVector4("Global_Right_Index_Tip_Position",new Yt(this.globalRightIndexTipPosition.x,this.globalRightIndexTipPosition.y,this.globalRightIndexTipPosition.z,1)),this._afterBind(t,this._activeEffect,i))}getAnimatables(){return[]}dispose(e){super.dispose(e)}clone(e){return It.Clone(()=>new kr(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.FluentButtonMaterial",e}getClassName(){return"FluentButtonMaterial"}static Parse(e,t,i){return It.Parse(()=>new kr(e.name,t),e,t,i)}}kr.BLOB_TEXTURE_URL="https://assets.babylonjs.com/core/MRTK/mrtk-fluent-button-blob.png",F([G()],kr.prototype,"edgeWidth",void 0),F([hP()],kr.prototype,"edgeColor",void 0),F([G()],kr.prototype,"proximityMaxIntensity",void 0),F([G()],kr.prototype,"proximityFarDistance",void 0),F([G()],kr.prototype,"proximityNearRadius",void 0),F([G()],kr.prototype,"proximityAnisotropy",void 0),F([G()],kr.prototype,"selectionFuzz",void 0),F([G()],kr.prototype,"selected",void 0),F([G()],kr.prototype,"selectionFade",void 0),F([G()],kr.prototype,"selectionFadeSize",void 0),F([G()],kr.prototype,"selectedDistance",void 0),F([G()],kr.prototype,"selectedFadeLength",void 0),F([G()],kr.prototype,"blobIntensity",void 0),F([G()],kr.prototype,"blobFarSize",void 0),F([G()],kr.prototype,"blobNearDistance",void 0),F([G()],kr.prototype,"blobFarDistance",void 0),F([G()],kr.prototype,"blobFadeLength",void 0),F([G()],kr.prototype,"leftBlobEnable",void 0),F([G()],kr.prototype,"leftBlobNearSize",void 0),F([G()],kr.prototype,"leftBlobPulse",void 0),F([G()],kr.prototype,"leftBlobFade",void 0),F([G()],kr.prototype,"leftBlobInnerFade",void 0),F([G()],kr.prototype,"rightBlobEnable",void 0),F([G()],kr.prototype,"rightBlobNearSize",void 0),F([G()],kr.prototype,"rightBlobPulse",void 0),F([G()],kr.prototype,"rightBlobFade",void 0),F([G()],kr.prototype,"rightBlobInnerFade",void 0),F([Ma()],kr.prototype,"activeFaceDir",void 0),F([Ma()],kr.prototype,"activeFaceUp",void 0),F([G()],kr.prototype,"enableFade",void 0),F([G()],kr.prototype,"fadeWidth",void 0),F([G()],kr.prototype,"smoothActiveFace",void 0),F([G()],kr.prototype,"showFrame",void 0),F([G()],kr.prototype,"useBlobTexture",void 0),F([Ma()],kr.prototype,"globalLeftIndexTipPosition",void 0),F([Ma()],kr.prototype,"globalRightIndexTipPosition",void 0),ve("BABYLON.GUI.FluentButtonMaterial",kr);class XY extends YY{constructor(e,t){super(e),this._isNearPressed=!1,this._interactionSurfaceHeight=0,this._isToggleButton=!1,this._toggleState=!1,this._toggleButtonCallback=()=>{this._onToggle(!this._toggleState)},this.onToggleObservable=new xe,this.collidableFrontDirection=P.Zero(),t&&(this.collisionMesh=t)}get isActiveNearInteraction(){return this._isNearPressed}set collidableFrontDirection(e){if(this._collidableFrontDirection=e.normalize(),this._collisionMesh){const t=ae.Matrix[0];t.copyFrom(this._collisionMesh.getWorldMatrix()),t.invert(),P.TransformNormalToRef(this._collidableFrontDirection,t,this._collidableFrontDirection),this._collidableFrontDirection.normalize()}}get collidableFrontDirection(){if(this._collisionMesh){const e=ae.Vector3[0];return P.TransformNormalToRef(this._collidableFrontDirection,this._collisionMesh.getWorldMatrix(),e),e.normalize()}return this._collidableFrontDirection}set collisionMesh(e){var t;this._collisionMesh&&(this._collisionMesh.isNearPickable=!1,(t=this._collisionMesh.reservedDataStore)!=null&&t.GUI3D&&(this._collisionMesh.reservedDataStore.GUI3D={}),this._collisionMesh.getChildMeshes().forEach(i=>{var s;i.isNearPickable=!1,(s=i.reservedDataStore)!=null&&s.GUI3D&&(i.reservedDataStore.GUI3D={})})),this._collisionMesh=e,this._injectGUI3DReservedDataStore(this._collisionMesh).control=this,this._collisionMesh.isNearPickable=!0,this._collisionMesh.getChildMeshes().forEach(i=>{this._injectGUI3DReservedDataStore(i).control=this,i.isNearPickable=!0}),this.collidableFrontDirection=e.forward}set isToggleButton(e){e!==this._isToggleButton&&(this._isToggleButton=e,e?this.onPointerUpObservable.add(this._toggleButtonCallback):(this.onPointerUpObservable.removeCallback(this._toggleButtonCallback),this._toggleState&&this._onToggle(!1)))}get isToggleButton(){return this._isToggleButton}set isToggled(e){this._isToggleButton&&this._toggleState!==e&&this._onToggle(e)}get isToggled(){return this._toggleState}_onToggle(e){this._toggleState=e,this.onToggleObservable.notifyObservers(e)}_isInteractionInFrontOfButton(e){return this._getInteractionHeight(e,this._collisionMesh.getAbsolutePosition())>0}getPressDepth(e){if(!this._isNearPressed)return 0;const t=this._getInteractionHeight(e,this._collisionMesh.getAbsolutePosition());return this._interactionSurfaceHeight-t}_getInteractionHeight(e,t){const i=this.collidableFrontDirection;if(i.length()===0)return P.Distance(e,t);const s=P.Dot(t,i);return P.Dot(e,i)-s}_generatePointerEventType(e,t,i){if(e===Xt.POINTERDOWN||e===Xt.POINTERMOVE)if(this._isInteractionInFrontOfButton(t))this._isNearPressed=!0,this._interactionSurfaceHeight=this._getInteractionHeight(t,this._collisionMesh.getAbsolutePosition());else return Xt.POINTERMOVE;if(e===Xt.POINTERUP){if(i==0)return Xt.POINTERMOVE;this._isNearPressed=!1}return e}_getTypeName(){return"TouchButton3D"}_createNode(e){return super._createNode(e)}dispose(){super.dispose(),this.onPointerUpObservable.removeCallback(this._toggleButtonCallback),this.onToggleObservable.clear(),this._collisionMesh&&this._collisionMesh.dispose()}}let hR=class vue extends XY{_disposeTooltip(){this._tooltipFade=null,this._tooltipTextBlock&&this._tooltipTextBlock.dispose(),this._tooltipTexture&&this._tooltipTexture.dispose(),this._tooltipMesh&&this._tooltipMesh.dispose(),this.onPointerEnterObservable.remove(this._tooltipHoverObserver),this.onPointerOutObservable.remove(this._tooltipOutObserver)}set renderingGroupId(e){this._backPlate.renderingGroupId=e,this._textPlate.renderingGroupId=e,this._frontPlate.renderingGroupId=e,this._tooltipMesh&&(this._tooltipMesh.renderingGroupId=e)}get renderingGroupId(){return this._backPlate.renderingGroupId}get mesh(){return this._backPlate}set tooltipText(e){if(!e){this._disposeTooltip();return}if(!this._tooltipFade){const t=this._backPlate._scene.useRightHandedSystem;this._tooltipMesh=Eh("",{size:1},this._backPlate._scene);const i=Eh("",{size:1,sideOrientation:Ne.DOUBLESIDE},this._backPlate._scene),s=new Bt("",this._backPlate._scene);s.diffuseColor=Pe.FromHexString("#212121"),i.material=s,i.isPickable=!1,this._tooltipMesh.addChild(i),i.position=P.Forward(t).scale(.05),this._tooltipMesh.scaling.y=1/3,this._tooltipMesh.position=P.Up().scale(.7).add(P.Forward(t).scale(-.15)),this._tooltipMesh.isPickable=!1,this._tooltipMesh.parent=this._backPlate,this._tooltipTexture=Go.CreateForMesh(this._tooltipMesh),this._tooltipTextBlock=new ia,this._tooltipTextBlock.scaleY=3,this._tooltipTextBlock.color="white",this._tooltipTextBlock.fontSize=130,this._tooltipTexture.addControl(this._tooltipTextBlock),this._tooltipFade=new eH,this._tooltipFade.delay=500,this._tooltipMesh.addBehavior(this._tooltipFade),this._tooltipHoverObserver=this.onPointerEnterObservable.add(()=>{this._tooltipFade&&this._tooltipFade.fadeIn(!0)}),this._tooltipOutObserver=this.onPointerOutObservable.add(()=>{this._tooltipFade&&this._tooltipFade.fadeIn(!1)})}this._tooltipTextBlock&&(this._tooltipTextBlock.text=e)}get tooltipText(){return this._tooltipTextBlock?this._tooltipTextBlock.text:null}get text(){return this._text}set text(e){this._text!==e&&(this._text=e,this._rebuildContent())}get imageUrl(){return this._imageUrl}set imageUrl(e){this._imageUrl!==e&&(this._imageUrl=e,this._rebuildContent())}get backMaterial(){return this._backMaterial}get frontMaterial(){return this._frontMaterial}get plateMaterial(){return this._plateMaterial}get shareMaterials(){return this._shareMaterials}set isBackplateVisible(e){this.mesh&&this._backMaterial&&(e&&!this._isBackplateVisible?this._backPlate.visibility=1:!e&&this._isBackplateVisible&&(this._backPlate.visibility=0)),this._isBackplateVisible=e}constructor(e,t=!0){super(e),this._shareMaterials=!0,this._isBackplateVisible=!0,this._frontPlateDepth=.5,this._backPlateDepth=.04,this._backplateColor=new Pe(.08,.15,.55),this._backplateToggledColor=new Pe(.25,.4,.95),this._shareMaterials=t,this.pointerEnterAnimation=()=>{this._frontMaterial.leftBlobEnable=!0,this._frontMaterial.rightBlobEnable=!0},this.pointerOutAnimation=()=>{this._frontMaterial.leftBlobEnable=!1,this._frontMaterial.rightBlobEnable=!1},this.pointerDownAnimation=()=>{this._frontPlate&&!this.isActiveNearInteraction&&(this._frontPlate.scaling.z=this._frontPlateDepth*.2,this._frontPlate.position=P.Forward(this._frontPlate._scene.useRightHandedSystem).scale((this._frontPlateDepth-.2*this._frontPlateDepth)/2),this._textPlate.position=P.Forward(this._textPlate._scene.useRightHandedSystem).scale(-(this._backPlateDepth+.2*this._frontPlateDepth)/2))},this.pointerUpAnimation=()=>{this._frontPlate&&(this._frontPlate.scaling.z=this._frontPlateDepth,this._frontPlate.position=P.Forward(this._frontPlate._scene.useRightHandedSystem).scale((this._frontPlateDepth-this._frontPlateDepth)/2),this._textPlate.position=P.Forward(this._textPlate._scene.useRightHandedSystem).scale(-(this._backPlateDepth+this._frontPlateDepth)/2))},this.onPointerMoveObservable.add(i=>{if(this._frontPlate&&this.isActiveNearInteraction){const s=P.Zero();if(this._backPlate.getWorldMatrix().decompose(s,void 0,void 0)){let r=this._getInteractionHeight(i,this._backPlate.getAbsolutePosition())/s.z;r=pd.Clamp(r-this._backPlateDepth/2,.2*this._frontPlateDepth,this._frontPlateDepth),this._frontPlate.scaling.z=r,this._frontPlate.position=P.Forward(this._frontPlate._scene.useRightHandedSystem).scale((this._frontPlateDepth-r)/2),this._textPlate.position=P.Forward(this._textPlate._scene.useRightHandedSystem).scale(-(this._backPlateDepth+r)/2)}}}),this._pointerHoverObserver=this.onPointerMoveObservable.add(i=>{this._frontMaterial.globalLeftIndexTipPosition=i})}_getTypeName(){return"TouchHolographicButton"}_rebuildContent(){this._disposeFacadeTexture();const e=new s1;if(e.isVertical=!0,H6()&&document.createElement&&this._imageUrl){const t=new In;t.source=this._imageUrl,t.paddingTop="40px",t.height="180px",t.width="100px",t.paddingBottom="40px",e.addControl(t)}if(this._text){const t=new ia;t.text=this._text,t.color="white",t.height="30px",t.fontSize=24,e.addControl(t)}this.content=e}_createNode(e){this.name=this.name??"TouchHolographicButton";const t=pa(`${this.name}_collisionMesh`,{width:1,height:1,depth:this._frontPlateDepth},e);t.isPickable=!0,t.isNearPickable=!0,t.visibility=0,t.position=P.Forward(e.useRightHandedSystem).scale(-this._frontPlateDepth/2);const i=Le.GetAssetUrl(vue.MODEL_BASE_URL);wr.ImportMeshAsync(void 0,i,vue.MODEL_FILENAME,e).then(r=>{const n=pa("${this.name}_alphaMesh",{width:1,height:1,depth:1},e);n.isPickable=!1,n.material=new Bt("${this.name}_alphaMesh_material",e),n.material.alpha=.15;const o=r.meshes[1];o.name=`${this.name}_frontPlate`,o.isPickable=!1,o.scaling.z=this._frontPlateDepth,n.parent=o,o.parent=t,this._frontMaterial&&(o.material=this._frontMaterial),this._frontPlate=o}),this._backPlate=pa(`${this.name}_backPlate`,{width:1,height:1,depth:this._backPlateDepth},e),this._backPlate.position=P.Forward(e.useRightHandedSystem).scale(this._backPlateDepth/2),this._backPlate.isPickable=!1,this._textPlate=super._createNode(e),this._textPlate.name=`${this.name}_textPlate`,this._textPlate.isPickable=!1,this._textPlate.position=P.Forward(e.useRightHandedSystem).scale(-this._frontPlateDepth/2),this._backPlate.addChild(t),this._backPlate.addChild(this._textPlate);const s=new Si("{this.name}_root",e);return this._backPlate.setParent(s),this.collisionMesh=t,this.collidableFrontDirection=this._backPlate.forward.negate(),s}_applyFacade(e){this._plateMaterial.emissiveTexture=e,this._plateMaterial.opacityTexture=e,this._plateMaterial.diffuseColor=new Pe(.4,.4,.4)}_createBackMaterial(e){this._backMaterial=new Gc(this.name+"backPlateMaterial",e.getScene()),this._backMaterial.albedoColor=this._backplateColor,this._backMaterial.renderBorders=!0,this._backMaterial.renderHoverLight=!1}_createFrontMaterial(e){this._frontMaterial=new kr(this.name+"Front Material",e.getScene())}_createPlateMaterial(e){this._plateMaterial=new Bt(this.name+"Plate Material",e.getScene()),this._plateMaterial.specularColor=Pe.Black()}_onToggle(e){this._backMaterial&&(e?this._backMaterial.albedoColor=this._backplateToggledColor:this._backMaterial.albedoColor=this._backplateColor),super._onToggle(e)}_affectMaterial(e){this._shareMaterials?(this._host._touchSharedMaterials.backFluentMaterial?this._backMaterial=this._host._touchSharedMaterials.backFluentMaterial:(this._createBackMaterial(e),this._host._touchSharedMaterials.backFluentMaterial=this._backMaterial),this._host._touchSharedMaterials.frontFluentMaterial?this._frontMaterial=this._host._touchSharedMaterials.frontFluentMaterial:(this._createFrontMaterial(e),this._host._touchSharedMaterials.frontFluentMaterial=this._frontMaterial)):(this._createBackMaterial(e),this._createFrontMaterial(e)),this._createPlateMaterial(e),this._backPlate.material=this._backMaterial,this._textPlate.material=this._plateMaterial,this._isBackplateVisible||(this._backPlate.visibility=0),this._frontPlate&&(this._frontPlate.material=this._frontMaterial),this._rebuildContent()}dispose(){super.dispose(),this._disposeTooltip(),this.onPointerMoveObservable.remove(this._pointerHoverObserver),this.shareMaterials||(this._backMaterial.dispose(),this._frontMaterial.dispose(),this._plateMaterial.dispose(),this._pickedPointObserver&&(this._host.onPickedPointChangedObservable.remove(this._pickedPointObserver),this._pickedPointObserver=null))}};hR.MODEL_BASE_URL="https://assets.babylonjs.com/core/MRTK/",hR.MODEL_FILENAME="mrtk-fluent-button.glb";class ULe{constructor(){this.followBehaviorEnabled=!1,this.sixDofDragBehaviorEnabled=!0,this.surfaceMagnetismBehaviorEnabled=!0,this._followBehavior=new q2e,this._sixDofDragBehavior=new wq,this._surfaceMagnetismBehavior=new K2e}get name(){return"Default"}get followBehavior(){return this._followBehavior}get sixDofDragBehavior(){return this._sixDofDragBehavior}get surfaceMagnetismBehavior(){return this._surfaceMagnetismBehavior}init(){}attach(e,t,i){this._scene=e.getScene(),this.attachedNode=e,this._addObservables(),this._followBehavior.attach(e),this._sixDofDragBehavior.attach(e),this._sixDofDragBehavior.draggableMeshes=t||null,this._sixDofDragBehavior.faceCameraOnDragStart=!0,this._surfaceMagnetismBehavior.attach(e,this._scene),i&&(this._surfaceMagnetismBehavior.meshes=i),this._surfaceMagnetismBehavior.enabled=!1}detach(){this.attachedNode=null,this._removeObservables(),this._followBehavior.detach(),this._sixDofDragBehavior.detach(),this._surfaceMagnetismBehavior.detach()}_addObservables(){this._onBeforeRenderObserver=this._scene.onBeforeRenderObservable.add(()=>{this._followBehavior._enabled=!this._sixDofDragBehavior.isMoving&&this.followBehaviorEnabled}),this._onDragObserver=this._sixDofDragBehavior.onDragObservable.add(e=>{this._sixDofDragBehavior.disableMovement=this._surfaceMagnetismBehavior.findAndUpdateTarget(e.pickInfo)})}_removeObservables(){this._scene.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._sixDofDragBehavior.onDragObservable.remove(this._onDragObserver)}}const jLe="handleVertexShader",rJe="precision highp float;attribute vec3 position;uniform vec3 positionOffset;uniform mat4 worldViewProjection;uniform float scale;void main(void) {vec4 vPos=vec4((vec3(position)+positionOffset)*scale,1.0);gl_Position=worldViewProjection*vPos;}";H.ShadersStore[jLe]||(H.ShadersStore[jLe]=rJe);const VLe="handlePixelShader",nJe="uniform vec3 color;void main(void) {gl_FragColor=vec4(color,1.0);}";H.ShadersStore[VLe]||(H.ShadersStore[VLe]=nJe);class GLe extends Fo{get hover(){return this._hover}set hover(e){this._hover=e,this._updateInterpolationTarget()}get drag(){return this._drag}set drag(e){this._drag=e,this._updateInterpolationTarget()}constructor(e,t){super(e,t,"handle",{attributes:["position"],uniforms:["worldViewProjection","color","scale","positionOffset"],needAlphaBlending:!1,needAlphaTesting:!1}),this._hover=!1,this._drag=!1,this._color=new Pe,this._scale=1,this._lastTick=-1,this.animationLength=100,this.hoverColor=new Pe(0,.467,.84),this.baseColor=new Pe(1,1,1),this.hoverScale=.75,this.baseScale=.35,this.dragScale=.55,this._positionOffset=P.Zero(),this._updateInterpolationTarget(),this._lastTick=Date.now(),this._onBeforeRender=this.getScene().onBeforeRenderObservable.add(()=>{const i=Date.now(),s=i-this._lastTick,r=this._targetScale-this._scale,n=Sr.Color3[0].copyFrom(this._targetColor).subtractToRef(this._color,Sr.Color3[0]);this._scale=this._scale+r*s/this.animationLength,n.scaleToRef(s/this.animationLength,n),this._color.addToRef(n,this._color),this.setColor3("color",this._color),this.setFloat("scale",this._scale),this.setVector3("positionOffset",this._positionOffset),this._lastTick=i})}_updateInterpolationTarget(){this.drag?(this._targetColor=this.hoverColor,this._targetScale=this.dragScale):this.hover?(this._targetColor=this.hoverColor,this._targetScale=this.hoverScale):(this._targetColor=this.baseColor,this._targetScale=this.baseScale)}dispose(){super.dispose(),this.getScene().onBeforeRenderObservable.remove(this._onBeforeRender)}}var Vce;(function(a){a[a.IDLE=0]="IDLE",a[a.HOVER=1]="HOVER",a[a.DRAG=2]="DRAG"})(Vce||(Vce={}));class Gce{get state(){return this._state}get gizmo(){return this._gizmo}set hover(e){e?this._state|=1:this._state&=-2,this._updateMaterial()}set drag(e){e?this._state|=2:this._state&=-3,this._updateMaterial()}constructor(e,t){this._state=0,this._materials=[],this._scene=t,this._gizmo=e,this.node=this.createNode(),this.node.reservedDataStore={handle:this}}_createMaterial(e){const t=new GLe("handle",this._scene);return e&&(t._positionOffset=e),t}_updateMaterial(){const e=this._state;for(const t of this._materials)t.hover=!1,t.drag=!1;if(e&2)for(const t of this._materials)t.drag=!0;else if(e&1)for(const t of this._materials)t.hover=!0}setDragBehavior(e,t,i){const s=new $v;this._dragBehavior=s,this._dragStartObserver=s.onDragStartObservable.add(e),this._draggingObserver=s.onDragObservable.add(t),this._dragEndObserver=s.onDragEndObservable.add(i),this._dragBehavior.attach(this.node)}dispose(){this._dragBehavior.onDragStartObservable.remove(this._dragStartObserver),this._dragBehavior.onDragObservable.remove(this._draggingObserver),this._dragBehavior.onDragEndObservable.remove(this._dragEndObserver),this._dragBehavior.detach();for(const e of this._materials)e.dispose();this.node.dispose()}}class WLe extends Gce{createNode(){const e=pa("sideVert",{width:1,height:10,depth:.1},this._scene),t=new Si("side",this._scene);e.parent=t;const i=this._createMaterial();return e.material=i,e.isNearGrabbable=!0,this._materials.push(i),t}}class HLe extends Gce{createNode(){const e=pa("angleHor",{width:3,height:1,depth:.1},this._scene),t=pa("angleVert",{width:1,height:3,depth:.1},this._scene),i=new Si("angle",this._scene);return e.parent=i,t.parent=i,e.material=this._createMaterial(new P(1,0,0)),t.material=this._createMaterial(new P(0,1,0)),t.isNearGrabbable=!0,e.isNearGrabbable=!0,this._materials.push(e.material),this._materials.push(t.material),i}}class YLe extends Ba{set attachedSlate(e){e?(this.attachedMesh=e.mesh,this.updateBoundingBox(),this._pickedPointObserver=e._host.onPickingObservable.add(t=>{if(this._handleHovered&&(!t||t.parent!==this._handleHovered.node)&&(this._handleHovered.hover=!1,this._handleHovered=null),t&&t.parent&&t.parent.reservedDataStore&&t.parent.reservedDataStore.handle){const i=t.parent.reservedDataStore.handle;i.gizmo===this&&(this._handleHovered=i,this._handleHovered.hover=!0)}})):this._attachedSlate&&this._attachedSlate._host.onPickingObservable.remove(this._pickedPointObserver),this._attachedSlate=e}get attachedSlate(){return this._attachedSlate}constructor(e){super(e),this._boundingDimensions=new P(0,0,0),this._renderObserver=null,this._tmpQuaternion=new Re,this._tmpVector=new P(0,0,0),this._corners=[],this._sides=[],this._boundingBoxGizmo={min:new P,max:new P},this._margin=.35,this._handleSize=.075,this._attachedSlate=null,this._existingSlateScale=new P,this.fixedScreenSize=!1,this.fixedScreenSizeDistanceFactor=10,this._createNode(),this.updateScale=!1,this._renderObserver=this.gizmoLayer.originalScene.onBeforeRenderObservable.add(()=>{this.attachedMesh&&!this._existingSlateScale.equals(this.attachedMesh.scaling)&&this.updateBoundingBox()})}_createNode(){this._handlesParent=new Si("handlesParent",this.gizmoLayer.utilityLayerScene),this._handlesParent.rotationQuaternion=Re.Identity();const e=[{dimensions:new P(-1,-1,0),origin:new P(1,0,0)},{dimensions:new P(1,-1,0),origin:new P(0,0,0)},{dimensions:new P(1,1,0),origin:new P(0,1,0)},{dimensions:new P(-1,1,0),origin:new P(1,1,0)}];for(let t=0;t<4;t++){const i=new HLe(this,this.gizmoLayer.utilityLayerScene);this._corners.push(i),i.node.rotation.z=Math.PI/2*t,i.node.parent=this._handlesParent,this._assignDragBehaviorCorners(i,(s,r,n,o)=>this._moveHandle(s,r,n,o,!0),e[t])}for(let t=0;t<4;t++){const i=new WLe(this,this.gizmoLayer.utilityLayerScene);this._sides.push(i),i.node.rotation.z=Math.PI/2*t,i.node.parent=this._handlesParent,this._assignDragBehaviorSides(i,t%2===0?new P(0,1,0):new P(1,0,0))}this._handlesParent.parent=this._rootMesh}_keepAspectRatio(e,t,i=!1){const s=ae.Vector3[0];s.copyFromFloats(t,1,0).normalize(),i&&(s.y*=-1);const r=P.Dot(e,s);e.copyFrom(s).scaleInPlace(r)}_clampDimensions(e,t,i,s=!1){const r=ae.Vector3[0];r.copyFrom(e).multiplyInPlace(i);const n=ae.Vector3[1];if(n.copyFromFloats(Math.max(this._attachedSlate.minDimensions.x,r.x+t.x),Math.max(this._attachedSlate.minDimensions.y,r.y+t.y),0),s){const o=t.x/t.y;n.x=Math.max(n.x,n.y*o),n.y=Math.max(n.y,n.x/o)}r.copyFrom(n).subtractInPlace(t),e.x=Math.sign(e.x)*Math.abs(r.x),e.y=Math.sign(e.y)*Math.abs(r.y)}_moveHandle(e,t,i,s,r){if(!this._attachedSlate)return;if(r){const l=t.x/t.y;this._keepAspectRatio(i,l,s.dimensions.x*s.dimensions.y<0)}this._clampDimensions(i,t,s.dimensions,r);const n=ae.Vector3[0],o=ae.Vector3[1];n.copyFrom(i).multiplyInPlace(s.origin),o.copyFrom(i).multiplyInPlace(s.dimensions),this._attachedSlate.origin.copyFrom(e).addInPlace(n),this._attachedSlate.dimensions.set(t.x+o.x,t.y+o.y)}_assignDragBehaviorCorners(e,t,i){const s=new P,r=new P,n=new P,o=new me,l=new P,c=(m,_,d,h)=>{m.subtractToRef(d,ae.Vector3[0]);const x=P.Dot(ae.Vector3[0],_);ae.Vector3[1].copyFrom(_).scaleInPlace(x),ae.Vector3[0].subtractInPlace(ae.Vector3[1]),ae.Vector3[0].addToRef(d,h)},u=m=>{this.attachedSlate&&this.attachedMesh&&(s.set(this.attachedSlate.dimensions.x,this.attachedSlate.dimensions.y,Ii),r.copyFrom(this.attachedSlate.origin),n.copyFrom(m.position),o.copyFrom(this.attachedMesh.computeWorldMatrix(!0)),o.invert(),this.attachedSlate._followButton.isToggled=!1,P.TransformNormalToRef(P.Forward(),this.attachedMesh.getWorldMatrix(),l),l.normalize(),this._handleHovered&&(this._handleDragged=this._handleHovered,this._handleDragged.drag=!0))},f=m=>{this.attachedSlate&&this.attachedMesh&&(c(m.position,l,n,this._tmpVector),this._tmpVector.subtractInPlace(n),P.TransformNormalToRef(this._tmpVector,o,this._tmpVector),t(r,s,this._tmpVector,i),this.attachedSlate._positionElements(),this.updateBoundingBox())},p=()=>{this.attachedSlate&&this.attachedNode&&(this.attachedSlate._updatePivot(),this._handleDragged&&(this._handleDragged.drag=!1,this._handleDragged=null))};e.setDragBehavior(u,f,p)}_assignDragBehaviorSides(e,t){const i=new Re,s=new P,r=new P,n=new P,o=new P,l=f=>{this.attachedSlate&&this.attachedMesh&&(i.copyFrom(this.attachedMesh.rotationQuaternion),s.copyFrom(f.position),n.copyFrom(this.attachedMesh.getAbsolutePivotPoint()),r.copyFrom(s).subtractInPlace(n).normalize(),this.attachedSlate._followButton.isToggled=!1,P.TransformNormalToRef(t,this.attachedMesh.getWorldMatrix(),o),o.normalize(),this._handleHovered&&(this._handleDragged=this._handleHovered,this._handleDragged.drag=!0))},c=f=>{if(this.attachedSlate&&this.attachedMesh){this._tmpVector.copyFrom(f.position),this._tmpVector.subtractInPlace(n),this._tmpVector.normalize();const p=-P.GetAngleBetweenVectorsOnPlane(this._tmpVector,r,o);Re.RotationAxisToRef(t,p,this._tmpQuaternion),i.multiplyToRef(this._tmpQuaternion,this.attachedMesh.rotationQuaternion)}},u=()=>{this.attachedSlate&&this.attachedNode&&(this.attachedSlate._updatePivot(),this._handleDragged&&(this._handleDragged.drag=!1,this._handleDragged=null))};e.setDragBehavior(l,c,u)}_attachedNodeChanged(e){e&&this.updateBoundingBox()}updateBoundingBox(){if(this.attachedMesh){zr._RemoveAndStorePivotPoint(this.attachedMesh);const e=this.attachedMesh.parent;this.attachedMesh.setParent(null),this._update(),this.attachedMesh.rotationQuaternion||(this.attachedMesh.rotationQuaternion=Re.RotationYawPitchRoll(this.attachedMesh.rotation.y,this.attachedMesh.rotation.x,this.attachedMesh.rotation.z)),this._tmpQuaternion.copyFrom(this.attachedMesh.rotationQuaternion),this._tmpVector.copyFrom(this.attachedMesh.position),this.attachedMesh.rotationQuaternion.set(0,0,0,1),this.attachedMesh.position.set(0,0,0);const t=this.attachedMesh.getHierarchyBoundingVectors();t.max.subtractToRef(t.min,this._boundingDimensions),this._boundingBoxGizmo.min=t.min,this._boundingBoxGizmo.max=t.max,this._updateHandlesPosition(),this._updateHandlesScaling(),this.attachedMesh.rotationQuaternion.copyFrom(this._tmpQuaternion),this.attachedMesh.position.copyFrom(this._tmpVector),zr._RestorePivotPoint(this.attachedMesh),this.attachedMesh.setParent(e),this.attachedMesh.computeWorldMatrix(!0),this._existingSlateScale.copyFrom(this.attachedMesh.scaling)}}_updateHandlesPosition(){const e=this._boundingBoxGizmo.min.clone(),t=this._boundingBoxGizmo.max.clone(),i=this._corners[0].node.scaling.length();e.x-=this._margin*i,e.y-=this._margin*i,t.x+=this._margin*i,t.y+=this._margin*i;const s=e.add(t).scaleInPlace(.5);this._corners[0].node.position.copyFromFloats(e.x,e.y,0),this._corners[1].node.position.copyFromFloats(t.x,e.y,0),this._corners[2].node.position.copyFromFloats(t.x,t.y,0),this._corners[3].node.position.copyFromFloats(e.x,t.y,0),this._sides[0].node.position.copyFromFloats(e.x,s.y,0),this._sides[1].node.position.copyFromFloats(s.x,e.y,0),this._sides[2].node.position.copyFromFloats(t.x,s.y,0),this._sides[3].node.position.copyFromFloats(s.x,t.y,0)}_updateHandlesScaling(){if(this._attachedSlate&&this._attachedSlate.mesh){const e=this._attachedSlate.mesh.scaling.x*this._attachedSlate.dimensions.x,t=this._attachedSlate.mesh.scaling.y*this._attachedSlate.dimensions.y,i=Math.min(e,t)*this._handleSize;for(let s=0;s<this._corners.length;s++)this._corners[s].node.scaling.setAll(i);for(let s=0;s<this._sides.length;s++)this._sides[s].node.scaling.setAll(i)}}_update(){if(super._update(),!!this.gizmoLayer.utilityLayerScene.activeCamera&&this._attachedSlate&&this._attachedSlate.mesh){if(this.fixedScreenSize){this._attachedSlate.mesh.absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position,this._tmpVector);const e=this._handleSize*this._tmpVector.length()/this.fixedScreenSizeDistanceFactor;for(let t=0;t<this._corners.length;t++)this._corners[t].node.scaling.set(e,e,e);for(let t=0;t<this._sides.length;t++)this._sides[t].node.scaling.set(e,e,e)}this._updateHandlesPosition()}}dispose(){this.gizmoLayer.originalScene.onBeforeRenderObservable.remove(this._renderObserver),super.dispose();for(const e of this._corners)e.dispose();for(const e of this._sides)e.dispose()}}class w4 extends OLe{get defaultBehavior(){return this._defaultBehavior}get dimensions(){return this._dimensions}set dimensions(e){let t=1;if(e.x<this.minDimensions.x||e.y<this.minDimensions.y){const i=e.x/e.y;this.minDimensions.x/this.minDimensions.y>i?t=this.minDimensions.x/e.x:t=this.minDimensions.y/e.y}this._dimensions.copyFrom(e).scaleInPlace(t),this._updatePivot(),this._positionElements()}get titleBarHeight(){return this._titleBarHeight}set titleBarHeight(e){this._titleBarHeight=e}set renderingGroupId(e){this._titleBar.renderingGroupId=e,this._titleBarTitle.renderingGroupId=e,this._contentPlate.renderingGroupId=e,this._backPlate.renderingGroupId=e}get renderingGroupId(){return this._titleBar.renderingGroupId}set title(e){this._titleText=e,this._titleTextComponent&&(this._titleTextComponent.text=e)}get title(){return this._titleText}constructor(e){super(e),this.titleBarMargin=.005,this.origin=new P(0,0,0),this._dimensions=new Ue(21.875,12.5),this._titleBarHeight=.625,this._titleText="",this.fitContentToDimensions=!1,this._contentScaleRatio=1,this.minDimensions=new Ue(15.625,6.25),this.defaultDimensions=this._dimensions.clone(),this._followButton=new hR("followButton"+this.name),this._followButton.isToggleButton=!0,this._closeButton=new hR("closeButton"+this.name),this._contentViewport=new Tc(0,0,1,1),this._contentDragBehavior=new Nl({dragPlaneNormal:new P(0,0,-1)})}_applyFacade(e){this._contentMaterial.albedoTexture=e,this._resetContentPositionAndZoom(),this._applyContentViewport(),e.attachToMesh(this._contentPlate,!0)}_addControl(e){e._host=this._host,this._host.utilityLayer&&e._prepareNode(this._host.utilityLayer.utilityLayerScene)}_getTypeName(){return"HolographicSlate"}_positionElements(){const e=this._followButton,t=this._closeButton,i=this._titleBar,s=this._titleBarTitle,r=this._contentPlate,n=this._backPlate;if(e&&t&&i){t.scaling.setAll(this.titleBarHeight),e.scaling.setAll(this.titleBarHeight),t.position.copyFromFloats(this.dimensions.x-this.titleBarHeight/2,-this.titleBarHeight/2,0).addInPlace(this.origin),e.position.copyFromFloats(this.dimensions.x-3*this.titleBarHeight/2,-this.titleBarHeight/2,0).addInPlace(this.origin);const o=this.dimensions.y-this.titleBarHeight-this.titleBarMargin,l=r.getScene().useRightHandedSystem;i.scaling.set(this.dimensions.x,this.titleBarHeight,Ii),s.scaling.set(this.dimensions.x-2*this.titleBarHeight,this.titleBarHeight,Ii),r.scaling.copyFromFloats(this.dimensions.x,o,Ii),n.scaling.copyFromFloats(this.dimensions.x,o,Ii),i.position.copyFromFloats(this.dimensions.x/2,-(this.titleBarHeight/2),0).addInPlace(this.origin),s.position.copyFromFloats(this.dimensions.x/2-this.titleBarHeight,-(this.titleBarHeight/2),l?Ii:-Ii).addInPlace(this.origin),r.position.copyFromFloats(this.dimensions.x/2,-(this.titleBarHeight+this.titleBarMargin+o/2),0).addInPlace(this.origin),n.position.copyFromFloats(this.dimensions.x/2,-(this.titleBarHeight+this.titleBarMargin+o/2),l?-Ii:Ii).addInPlace(this.origin),this._titleTextComponent.host.scaleTo(w4._DEFAULT_TEXT_RESOLUTION_Y*s.scaling.x/s.scaling.y,w4._DEFAULT_TEXT_RESOLUTION_Y);const c=this.dimensions.x/o;this._contentViewport.width=this._contentScaleRatio,this._contentViewport.height=this._contentScaleRatio/c,this._applyContentViewport(),this._gizmo&&this._gizmo.updateBoundingBox()}}_applyContentViewport(){var e;if((e=this._contentPlate)!=null&&e.material&&this._contentPlate.material.albedoTexture){const t=this._contentPlate.material.albedoTexture;t.uScale=this._contentScaleRatio,t.vScale=this.fitContentToDimensions?this._contentScaleRatio:this._contentScaleRatio/this._contentViewport.width*this._contentViewport.height,t.uOffset=this._contentViewport.x,t.vOffset=this._contentViewport.y}}_resetContentPositionAndZoom(){this._contentViewport.x=0,this._contentViewport.y=0,this._contentScaleRatio=1}_updatePivot(){if(!this.mesh)return;const e=new P(this.dimensions.x*.5,-this.dimensions.y*.5,Ii);e.addInPlace(this.origin),e.z=0;const t=new P(0,0,0);P.TransformCoordinatesToRef(t,this.mesh.computeWorldMatrix(!0),t),this.mesh.setPivotPoint(e);const i=new P(0,0,0);P.TransformCoordinatesToRef(i,this.mesh.computeWorldMatrix(!0),i),this.mesh.position.addInPlace(t).subtractInPlace(i)}_createNode(e){const t=new Ne("slate_"+this.name,e);this._titleBar=pa("titleBar_"+this.name,{size:1},e),this._titleBarTitle=Eh("titleText_"+this.name,{size:1},e),this._titleBarTitle.parent=t,this._titleBarTitle.isPickable=!1;const i=Go.CreateForMesh(this._titleBarTitle);if(this._titleTextComponent=new ia("titleText_"+this.name,this._titleText),this._titleTextComponent.textWrapping=2,this._titleTextComponent.textHorizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,this._titleTextComponent.color="white",this._titleTextComponent.fontSize=w4._DEFAULT_TEXT_RESOLUTION_Y/2,this._titleTextComponent.paddingLeft=w4._DEFAULT_TEXT_RESOLUTION_Y/4,i.addControl(this._titleTextComponent),e.useRightHandedSystem){const o=new Yt(0,0,1,1);this._contentPlate=Eh("contentPlate_"+this.name,{size:1,sideOrientation:wt.BACKSIDE,frontUVs:o},e),this._backPlate=Eh("backPlate_"+this.name,{size:1,sideOrientation:wt.FRONTSIDE},e)}else{const o=new Yt(0,0,1,1);this._contentPlate=Eh("contentPlate_"+this.name,{size:1,sideOrientation:wt.FRONTSIDE,frontUVs:o},e),this._backPlate=Eh("backPlate_"+this.name,{size:1,sideOrientation:wt.BACKSIDE},e)}this._titleBar.parent=t,this._titleBar.isNearGrabbable=!0,this._contentPlate.parent=t,this._backPlate.parent=t,this._attachContentPlateBehavior(),this._addControl(this._followButton),this._addControl(this._closeButton);const s=this._followButton,r=this._closeButton;s.node.parent=t,r.node.parent=t,this._positionElements();const n=Le.GetAssetUrl(w4.ASSETS_BASE_URL);return this._followButton.imageUrl=n+w4.FOLLOW_ICON_FILENAME,this._closeButton.imageUrl=n+w4.CLOSE_ICON_FILENAME,this._followButton.isBackplateVisible=!1,this._closeButton.isBackplateVisible=!1,this._followButton.onToggleObservable.add(o=>{this._defaultBehavior.followBehaviorEnabled=o,this._defaultBehavior.followBehaviorEnabled&&this._defaultBehavior.followBehavior.recenter()}),this._closeButton.onPointerClickObservable.add(()=>{this.dispose()}),t.rotationQuaternion=Re.Identity(),t.isVisible=!1,t}_attachContentPlateBehavior(){this._contentDragBehavior.attach(this._contentPlate),this._contentDragBehavior.moveAttached=!1,this._contentDragBehavior.useObjectOrientationForDragging=!0,this._contentDragBehavior.updateDragPlane=!1;const e=new P,t=new P,i=new P,s=new P,r=new Ue;let n,o;this._contentDragBehavior.onDragStartObservable.add(c=>{this.node&&(n=this._contentViewport.clone(),o=this.node.computeWorldMatrix(!0),e.copyFrom(c.dragPlanePoint),t.set(this.dimensions.x,this.dimensions.y,Ii),t.y-=this.titleBarHeight+this.titleBarMargin,P.TransformNormalToRef(t,o,t),i.copyFromFloats(0,1,0),P.TransformNormalToRef(i,o,i),s.copyFromFloats(1,0,0),P.TransformNormalToRef(s,o,s),i.normalize(),i.scaleInPlace(1/P.Dot(i,t)),s.normalize(),s.scaleInPlace(1/P.Dot(s,t)))});const l=new P;this._contentDragBehavior.onDragObservable.add(c=>{this.fitContentToDimensions||(l.copyFrom(c.dragPlanePoint),l.subtractInPlace(e),r.copyFromFloats(P.Dot(l,s),P.Dot(l,i)),this._contentViewport.x=pd.Clamp(n.x-l.x,0,1-this._contentViewport.width*this._contentScaleRatio),this._contentViewport.y=pd.Clamp(n.y-l.y,0,1-this._contentViewport.height*this._contentScaleRatio),this._applyContentViewport())})}_affectMaterial(e){this._titleBarMaterial=new sa(`${this.name} plateMaterial`,e.getScene()),this._contentMaterial=new Gc(`${this.name} contentMaterial`,e.getScene()),this._contentMaterial.renderBorders=!0,this._backMaterial=new sa(`${this.name} backPlate`,e.getScene()),this._backMaterial.lineWidth=Ii,this._backMaterial.radius=.005,this._backMaterial.backFaceCulling=!0,this._titleBar.material=this._titleBarMaterial,this._contentPlate.material=this._contentMaterial,this._backPlate.material=this._backMaterial,this._resetContent(),this._applyContentViewport()}_prepareNode(e){super._prepareNode(e),this._gizmo=new YLe(this._host.utilityLayer),this._gizmo.attachedSlate=this,this._defaultBehavior=new ULe,this._defaultBehavior.attach(this.node,[this._titleBar]),this._defaultBehavior.sixDofDragBehavior.onDragStartObservable.add(()=>{this._followButton.isToggled=!1}),this._positionChangedObserver=this._defaultBehavior.sixDofDragBehavior.onPositionChangedObservable.add(()=>{this._gizmo.updateBoundingBox()}),this._updatePivot(),this.resetDefaultAspectAndPose(!1)}resetDefaultAspectAndPose(e=!0){if(!this._host||!this._host.utilityLayer||!this.node)return;const t=this._host.utilityLayer.utilityLayerScene,i=t.activeCamera;if(i){const s=i.getWorldMatrix(),r=P.TransformNormal(P.Backward(t.useRightHandedSystem),s);this.origin.setAll(0),this._gizmo.updateBoundingBox();const n=this.node.getAbsolutePivotPoint();this.node.position.equalsToFloats(0,0,0)&&this.node.position.copyFrom(i.position).subtractInPlace(r).subtractInPlace(n),this.node.rotationQuaternion=Re.FromLookDirectionLH(r,new P(0,1,0)),e&&(this.dimensions=this.defaultDimensions)}}dispose(){super.dispose(),this._titleBarMaterial.dispose(),this._contentMaterial.dispose(),this._titleBar.dispose(),this._titleBarTitle.dispose(),this._contentPlate.dispose(),this._backPlate.dispose(),this._followButton.dispose(),this._closeButton.dispose(),this._host.onPickedPointChangedObservable.remove(this._pickedPointObserver),this._defaultBehavior.sixDofDragBehavior.onPositionChangedObservable.remove(this._positionChangedObserver),this._defaultBehavior.detach(),this._gizmo.dispose(),this._contentDragBehavior.detach()}}w4.ASSETS_BASE_URL="https://assets.babylonjs.com/core/MRTK/",w4.CLOSE_ICON_FILENAME="IconClose.png",w4.FOLLOW_ICON_FILENAME="IconFollowMe.png",w4._DEFAULT_TEXT_RESOLUTION_Y=102.4;class aJe extends YY{constructor(e,t){super(t),this._currentMesh=e,this.pointerEnterAnimation=()=>{this.mesh&&this.mesh.scaling.scaleInPlace(1.1)},this.pointerOutAnimation=()=>{this.mesh&&this.mesh.scaling.scaleInPlace(1/1.1)},this.pointerDownAnimation=()=>{this.mesh&&this.mesh.scaling.scaleInPlace(.95)},this.pointerUpAnimation=()=>{this.mesh&&this.mesh.scaling.scaleInPlace(1/.95)}}_getTypeName(){return"MeshButton3D"}_createNode(e){return this._currentMesh.getChildMeshes().forEach(t=>{this._injectGUI3DReservedDataStore(t).control=this}),this._currentMesh}_affectMaterial(e){}}class dR extends b9{get defaultBehavior(){return this._defaultBehavior}get isPinned(){return this._isPinned}set isPinned(e){if(this._pinButton.isToggled!==e){this._pinButton.isToggled=e;return}this._isPinned=e,e?this._defaultBehavior.followBehaviorEnabled=!1:this._defaultBehavior.followBehaviorEnabled=!0}_createPinButton(e){const t=new hR("pin"+this.name,!1),i=Le.GetAssetUrl(dR._ASSETS_BASE_URL);return t.imageUrl=i+dR._PIN_ICON_FILENAME,t.parent=this,t._host=this._host,t.isToggleButton=!0,t.onToggleObservable.add(s=>{this.isPinned=s}),this._host.utilityLayer&&(t._prepareNode(this._host.utilityLayer.utilityLayerScene),t.scaling.scaleInPlace(b9.MENU_BUTTON_SCALE),t.node&&(t.node.parent=e)),t}_createNode(e){const t=super._createNode(e);return this._pinButton=this._createPinButton(t),this.isPinned=!1,this._defaultBehavior.attach(t,[this._backPlate]),this._defaultBehavior.followBehavior.ignoreCameraPitchAndRoll=!0,this._defaultBehavior.followBehavior.pitchOffset=-15,this._defaultBehavior.followBehavior.minimumDistance=.3,this._defaultBehavior.followBehavior.defaultDistance=.4,this._defaultBehavior.followBehavior.maximumDistance=.6,this._backPlate.isNearGrabbable=!0,t.isVisible=!1,t}_finalProcessing(){super._finalProcessing(),this._pinButton.position.copyFromFloats((this._backPlate.scaling.x+b9.MENU_BUTTON_SCALE)/2,this._backPlate.scaling.y/2,0)}constructor(e){super(e),this._isPinned=!1,this._defaultBehavior=new ULe,this._dragObserver=this._defaultBehavior.sixDofDragBehavior.onDragObservable.add(()=>{this.isPinned=!0}),this.backPlateMargin=1}dispose(){super.dispose(),this._defaultBehavior.sixDofDragBehavior.onDragObservable.remove(this._dragObserver),this._defaultBehavior.detach()}}dR._ASSETS_BASE_URL="https://assets.babylonjs.com/core/MRTK/",dR._PIN_ICON_FILENAME="IconPin.png";class oJe extends cR{_mapGridNode(e,t){const i=e.mesh;if(!i)return;e.position=t.clone();const s=ae.Vector3[0];switch(s.copyFrom(t),this.orientation){case Cl.FACEORIGIN_ORIENTATION:case Cl.FACEFORWARD_ORIENTATION:s.addInPlace(new P(0,0,1)),i.lookAt(s);break;case Cl.FACEFORWARDREVERSED_ORIENTATION:case Cl.FACEORIGINREVERSED_ORIENTATION:s.addInPlace(new P(0,0,-1)),i.lookAt(s);break}}}class lJe extends cR{constructor(){super(...arguments),this._iteration=100}get iteration(){return this._iteration}set iteration(e){this._iteration!==e&&(this._iteration=e,Le.SetImmediate(()=>{this._arrangeChildren()}))}_mapGridNode(e,t){const i=e.mesh,s=this._scatterMapping(t);if(i){switch(this.orientation){case Cl.FACEORIGIN_ORIENTATION:case Cl.FACEFORWARD_ORIENTATION:i.lookAt(new P(0,0,1));break;case Cl.FACEFORWARDREVERSED_ORIENTATION:case Cl.FACEORIGINREVERSED_ORIENTATION:i.lookAt(new P(0,0,-1));break}e.position=s}}_scatterMapping(e){return e.x=(1-Math.random()*2)*this._cellWidth,e.y=(1-Math.random()*2)*this._cellHeight,e}_finalProcessing(){const e=[];for(const t of this._children)t.mesh&&e.push(t.mesh);for(let t=0;t<this._iteration;t++){e.sort((o,l)=>{const c=o.position.lengthSquared(),u=l.position.lengthSquared();return c<u?1:c>u?-1:0});const i=Math.pow(this.margin,2),s=Math.max(this._cellWidth,this._cellHeight),r=ae.Vector2[0],n=ae.Vector3[0];for(let o=0;o<e.length-1;o++)for(let l=o+1;l<e.length;l++)if(o!=l){e[l].position.subtractToRef(e[o].position,n),r.x=n.x,r.y=n.y;const c=s;let u=r.lengthSquared()-i;const f=Math.min(u,i);u-=f,u<Math.pow(c,2)&&(r.normalize(),n.scaleInPlace((c-Math.sqrt(u))*.5),e[l].position.addInPlace(n),e[o].position.subtractInPlace(n))}}}}const XLe="mrdlSliderBarPixelShader",cJe=`uniform vec3 cameraPosition;varying vec3 vPosition;varying vec3 vNormal;varying vec2 vUV;varying vec3 vTangent;varying vec3 vBinormal;varying vec4 vColor;varying vec4 vExtra1;varying vec4 vExtra2;varying vec4 vExtra3;uniform float _Radius_;uniform float _Bevel_Front_;uniform float _Bevel_Front_Stretch_;uniform float _Bevel_Back_;uniform float _Bevel_Back_Stretch_;uniform float _Radius_Top_Left_;uniform float _Radius_Top_Right_;uniform float _Radius_Bottom_Left_;uniform float _Radius_Bottom_Right_;uniform bool _Bulge_Enabled_;uniform float _Bulge_Height_;uniform float _Bulge_Radius_;uniform float _Sun_Intensity_;uniform float _Sun_Theta_;uniform float _Sun_Phi_;uniform float _Indirect_Diffuse_;uniform vec4 _Albedo_;uniform float _Specular_;uniform float _Shininess_;uniform float _Sharpness_;uniform float _Subsurface_;uniform vec4 _Left_Color_;uniform vec4 _Right_Color_;uniform float _Reflection_;uniform float _Front_Reflect_;uniform float _Edge_Reflect_;uniform float _Power_;uniform vec4 _Sky_Color_;uniform vec4 _Horizon_Color_;uniform vec4 _Ground_Color_;uniform float _Horizon_Power_;uniform sampler2D _Reflection_Map_;uniform sampler2D _Indirect_Environment_;uniform float _Width_;uniform float _Fuzz_;uniform float _Min_Fuzz_;uniform float _Clip_Fade_;uniform float _Hue_Shift_;uniform float _Saturation_Shift_;uniform float _Value_Shift_;uniform vec3 _Blob_Position_;uniform float _Blob_Intensity_;uniform float _Blob_Near_Size_;uniform float _Blob_Far_Size_;uniform float _Blob_Near_Distance_;uniform float _Blob_Far_Distance_;uniform float _Blob_Fade_Length_;uniform float _Blob_Pulse_;uniform float _Blob_Fade_;uniform sampler2D _Blob_Texture_;uniform vec3 _Blob_Position_2_;uniform float _Blob_Near_Size_2_;uniform float _Blob_Pulse_2_;uniform float _Blob_Fade_2_;uniform vec3 _Left_Index_Pos_;uniform vec3 _Right_Index_Pos_;uniform vec3 _Left_Index_Middle_Pos_;uniform vec3 _Right_Index_Middle_Pos_;uniform sampler2D _Decal_;uniform vec2 _Decal_Scale_XY_;uniform bool _Decal_Front_Only_;uniform float _Rim_Intensity_;uniform sampler2D _Rim_Texture_;uniform float _Rim_Hue_Shift_;uniform float _Rim_Saturation_Shift_;uniform float _Rim_Value_Shift_;uniform float _Iridescence_Intensity_;uniform sampler2D _Iridescence_Texture_;uniform bool Use_Global_Left_Index;uniform bool Use_Global_Right_Index;uniform vec4 Global_Left_Index_Tip_Position;uniform vec4 Global_Right_Index_Tip_Position;uniform vec4 Global_Left_Thumb_Tip_Position;uniform vec4 Global_Right_Thumb_Tip_Position;uniform vec4 Global_Left_Index_Middle_Position;uniform vec4 Global_Right_Index_Middle_Position;uniform float Global_Left_Index_Tip_Proximity;uniform float Global_Right_Index_Tip_Proximity;void Blob_Fragment_B30(
sampler2D Blob_Texture,
vec4 Blob_Info1,
vec4 Blob_Info2,
out vec4 Blob_Color)
{float k1=dot(Blob_Info1.xy,Blob_Info1.xy);float k2=dot(Blob_Info2.xy,Blob_Info2.xy);vec3 closer=k1<k2 ? vec3(k1,Blob_Info1.z,Blob_Info1.w) : vec3(k2,Blob_Info2.z,Blob_Info2.w);Blob_Color=closer.z*texture(Blob_Texture,vec2(vec2(sqrt(closer.x),closer.y).x,1.0-vec2(sqrt(closer.x),closer.y).y))*clamp(1.0-closer.x,0.0,1.0);}
void FastLinearTosRGB_B42(
vec4 Linear,
out vec4 sRGB)
{sRGB.rgb=sqrt(clamp(Linear.rgb,0.0,1.0));sRGB.a=Linear.a;}
void Scale_RGB_B59(
vec4 Color,
float Scalar,
out vec4 Result)
{Result=vec4(Scalar,Scalar,Scalar,1)*Color;}
void Fragment_Main_B121(
float Sun_Intensity,
float Sun_Theta,
float Sun_Phi,
vec3 Normal,
vec4 Albedo,
float Fresnel_Reflect,
float Shininess,
vec3 Incident,
vec4 Horizon_Color,
vec4 Sky_Color,
vec4 Ground_Color,
float Indirect_Diffuse,
float Specular,
float Horizon_Power,
float Reflection,
vec4 Reflection_Sample,
vec4 Indirect_Sample,
float Sharpness,
float SSS,
float Subsurface,
vec4 Translucence,
vec4 Rim_Light,
vec4 Iridescence,
out vec4 Result)
{float theta=Sun_Theta*2.0*3.14159;float phi=Sun_Phi*3.14159;vec3 lightDir= vec3(cos(phi)*cos(theta),sin(phi),cos(phi)*sin(theta));float NdotL=max(dot(lightDir,Normal),0.0);vec3 R=reflect(Incident,Normal);float RdotL=max(0.0,dot(R,lightDir));float specular=pow(RdotL,Shininess);specular=mix(specular,smoothstep(0.495*Sharpness,1.0-0.495*Sharpness,specular),Sharpness);vec4 gi=mix(Ground_Color,Sky_Color,Normal.y*0.5+0.5);Result=((Sun_Intensity*NdotL+Indirect_Sample*Indirect_Diffuse+Translucence)*(1.0+SSS*Subsurface))*Albedo*(1.0-Fresnel_Reflect)+(Sun_Intensity*specular*Specular+Fresnel_Reflect*Reflection*Reflection_Sample)+Fresnel_Reflect*Rim_Light+Iridescence;}
void Bulge_B79(
bool Enabled,
vec3 Normal,
vec3 Tangent,
float Bulge_Height,
vec4 UV,
float Bulge_Radius,
vec3 ButtonN,
out vec3 New_Normal)
{vec2 xy=clamp(UV.xy*2.0,vec2(-1,-1),vec2(1,1));vec3 B=(cross(Normal,Tangent));float k=-clamp(1.0-length(xy)/Bulge_Radius,0.0,1.0)*Bulge_Height;k=sin(k*3.14159*0.5);k*=smoothstep(0.9998,0.9999,abs(dot(ButtonN,Normal)));New_Normal=Normal*sqrt(1.0-k*k)+(xy.x*Tangent+xy.y*B)*k;New_Normal=Enabled ? New_Normal : Normal;}
void SSS_B77(
vec3 ButtonN,
vec3 Normal,
vec3 Incident,
out float Result)
{float NdotI=abs(dot(Normal,Incident));float BdotI=abs(dot(ButtonN,Incident));Result=(abs(NdotI-BdotI)); }
void FingerOcclusion_B67(
float Width,
float DistToCenter,
float Fuzz,
float Min_Fuzz,
vec3 Position,
vec3 Forward,
vec3 Nearest,
float Fade_Out,
out float NotInShadow)
{float d=dot((Nearest-Position),Forward);float sh=smoothstep(Width*0.5,Width*0.5+Fuzz*max(d,0.0)+Min_Fuzz,DistToCenter);NotInShadow=1.0-(1.0-sh)*smoothstep(-Fade_Out,0.0,d);}
void FingerOcclusion_B68(
float Width,
float DistToCenter,
float Fuzz,
float Min_Fuzz,
vec3 Position,
vec3 Forward,
vec3 Nearest,
float Fade_Out,
out float NotInShadow)
{float d=dot((Nearest-Position),Forward);float sh=smoothstep(Width*0.5,Width*0.5+Fuzz*max(d,0.0)+Min_Fuzz,DistToCenter);NotInShadow=1.0-(1.0-sh)*smoothstep(-Fade_Out,0.0,d);}
void Scale_Color_B91(
vec4 Color,
float Scalar,
out vec4 Result)
{Result=Scalar*Color;}
void From_HSV_B73(
float Hue,
float Saturation,
float Value,
float Alpha,
out vec4 Color)
{vec4 K=vec4(1.0,2.0/3.0,1.0/3.0,3.0);vec3 p=abs(fract(vec3(Hue,Hue,Hue)+K.xyz)*6.0-K.www);Color.rgb=Value*mix(K.xxx,clamp(p-K.xxx,0.0,1.0),Saturation);Color.a=Alpha;}
void Fast_Fresnel_B122(
float Front_Reflect,
float Edge_Reflect,
float Power,
vec3 Normal,
vec3 Incident,
out float Transmit,
out float Reflect)
{float d=max(-dot(Incident,Normal),0.0);Reflect=Front_Reflect+(Edge_Reflect-Front_Reflect)*pow(.01-d,Power);Transmit=1.0-Reflect;}
void Mapped_Environment_B51(
sampler2D Reflected_Environment,
sampler2D Indirect_Environment,
vec3 Dir,
out vec4 Reflected_Color,
out vec4 Indirect_Diffuse)
{Reflected_Color=texture(Reflected_Environment,vec2(atan(Dir.z,Dir.x)/3.14159*0.5,asin(Dir.y)/3.14159+0.5));Indirect_Diffuse=texture(Indirect_Environment,vec2(atan(Dir.z,Dir.x)/3.14159*0.5,asin(Dir.y)/3.14159+0.5));}
vec4 SampleEnv_Bid50(vec3 D,vec4 S,vec4 H,vec4 G,float exponent)
{float k=pow(abs(D.y),exponent);vec4 C;if (D.y>0.0) {C=mix(H,S,k);} else {C=mix(H,G,k); }
return C;}
void Sky_Environment_B50(
vec3 Normal,
vec3 Reflected,
vec4 Sky_Color,
vec4 Horizon_Color,
vec4 Ground_Color,
float Horizon_Power,
out vec4 Reflected_Color,
out vec4 Indirect_Color)
{Reflected_Color=SampleEnv_Bid50(Reflected,Sky_Color,Horizon_Color,Ground_Color,Horizon_Power);Indirect_Color=mix(Ground_Color,Sky_Color,Normal.y*0.5+0.5);}
void Min_Segment_Distance_B65(
vec3 P0,
vec3 P1,
vec3 Q0,
vec3 Q1,
out vec3 NearP,
out vec3 NearQ,
out float Distance)
{vec3 u=P1-P0;vec3 v=Q1-Q0;vec3 w=P0-Q0;float a=dot(u,u);float b=dot(u,v);float c=dot(v,v);float d=dot(u,w);float e=dot(v,w);float D=a*c-b*b;float sD=D;float tD=D;float sc,sN,tc,tN;if (D<0.00001) {sN=0.0;sD=1.0;tN=e;tD=c;} else {sN=(b*e-c*d);tN=(a*e-b*d);if (sN<0.0) {sN=0.0;tN=e;tD=c;} else if (sN>sD) {sN=sD;tN=e+b;tD=c;}}
if (tN<0.0) {tN=0.0;if (-d<0.0) {sN=0.0;} else if (-d>a) {sN=sD;} else {sN=-d;sD=a;}} else if (tN>tD) {tN=tD;if ((-d+b)<0.0) {sN=0.0;} else if ((-d+b)>a) {sN=sD;} else {sN=(-d+b);sD=a;}}
sc=abs(sN)<0.000001 ? 0.0 : sN/sD;tc=abs(tN)<0.000001 ? 0.0 : tN/tD;NearP=P0+sc*u;NearQ=Q0+tc*v;Distance=distance(NearP,NearQ);}
void To_XYZ_B74(
vec3 Vec3,
out float X,
out float Y,
out float Z)
{X=Vec3.x;Y=Vec3.y;Z=Vec3.z;}
void Finger_Positions_B64(
vec3 Left_Index_Pos,
vec3 Right_Index_Pos,
vec3 Left_Index_Middle_Pos,
vec3 Right_Index_Middle_Pos,
out vec3 Left_Index,
out vec3 Right_Index,
out vec3 Left_Index_Middle,
out vec3 Right_Index_Middle)
{Left_Index= (Use_Global_Left_Index ? Global_Left_Index_Tip_Position.xyz : Left_Index_Pos);Right_Index= (Use_Global_Right_Index ? Global_Right_Index_Tip_Position.xyz : Right_Index_Pos);Left_Index_Middle= (Use_Global_Left_Index ? Global_Left_Index_Middle_Position.xyz : Left_Index_Middle_Pos);Right_Index_Middle= (Use_Global_Right_Index ? Global_Right_Index_Middle_Position.xyz : Right_Index_Middle_Pos);}
void VaryHSV_B108(
vec3 HSV_In,
float Hue_Shift,
float Saturation_Shift,
float Value_Shift,
out vec3 HSV_Out)
{HSV_Out=vec3(fract(HSV_In.x+Hue_Shift),clamp(HSV_In.y+Saturation_Shift,0.0,1.0),clamp(HSV_In.z+Value_Shift,0.0,1.0));}
void Remap_Range_B114(
float In_Min,
float In_Max,
float Out_Min,
float Out_Max,
float In,
out float Out)
{Out=mix(Out_Min,Out_Max,clamp((In-In_Min)/(In_Max-In_Min),0.0,1.0));}
void To_HSV_B75(
vec4 Color,
out float Hue,
out float Saturation,
out float Value,
out float Alpha,
out vec3 HSV)
{vec4 K=vec4(0.0,-1.0/3.0,2.0/3.0,-1.0);vec4 p=Color.g<Color.b ? vec4(Color.bg,K.wz) : vec4(Color.gb,K.xy);vec4 q=Color.r<p.x ? vec4(p.xyw,Color.r) : vec4(Color.r,p.yzx);float d=q.x-min(q.w,q.y);float e=1.0e-10;Hue=abs(q.z+(q.w-q.y)/(6.0*d+e));Saturation=d/(q.x+e);Value=q.x;Alpha=Color.a;HSV=vec3(Hue,Saturation,Value);}
void Code_B110(
float X,
out float Result)
{Result=(acos(X)/3.14159-0.5)*2.0;}
void Rim_Light_B132(
vec3 Front,
vec3 Normal,
vec3 Incident,
float Rim_Intensity,
sampler2D Texture,
out vec4 Result)
{vec3 R=reflect(Incident,Normal);float RdotF=dot(R,Front);float RdotL=sqrt(1.0-RdotF*RdotF);vec2 UV=vec2(R.y*0.5+0.5,0.5);vec4 Color=texture(Texture,UV);Result=Color;}
void main()
{vec4 Blob_Color_Q30;
#if BLOB_ENABLE
Blob_Fragment_B30(_Blob_Texture_,vExtra2,vExtra3,Blob_Color_Q30);
#else
Blob_Color_Q30=vec4(0,0,0,0);
#endif
vec3 Incident_Q39=normalize(vPosition-cameraPosition);vec3 Normalized_Q38=normalize(vNormal);vec3 Normalized_Q71=normalize(vTangent);vec4 Color_Q83;
#if DECAL_ENABLE
Color_Q83=texture(_Decal_,vUV);
#else
Color_Q83=vec4(0,0,0,0);
#endif
float X_Q90;float Y_Q90;float Z_Q90;float W_Q90;X_Q90=vExtra1.x;Y_Q90=vExtra1.y;Z_Q90=vExtra1.z;W_Q90=vExtra1.w;vec4 Linear_Q43;Linear_Q43.rgb=clamp(_Sky_Color_.rgb*_Sky_Color_.rgb,0.0,1.0);Linear_Q43.a=_Sky_Color_.a;vec4 Linear_Q44;Linear_Q44.rgb=clamp(_Horizon_Color_.rgb*_Horizon_Color_.rgb,0.0,1.0);Linear_Q44.a=_Horizon_Color_.a;vec4 Linear_Q45;Linear_Q45.rgb=clamp(_Ground_Color_.rgb*_Ground_Color_.rgb,0.0,1.0);Linear_Q45.a=_Ground_Color_.a;vec3 Left_Index_Q64;vec3 Right_Index_Q64;vec3 Left_Index_Middle_Q64;vec3 Right_Index_Middle_Q64;Finger_Positions_B64(_Left_Index_Pos_,_Right_Index_Pos_,_Left_Index_Middle_Pos_,_Right_Index_Middle_Pos_,Left_Index_Q64,Right_Index_Q64,Left_Index_Middle_Q64,Right_Index_Middle_Q64);vec4 Linear_Q46;Linear_Q46.rgb=clamp(_Albedo_.rgb*_Albedo_.rgb,0.0,1.0);Linear_Q46.a=_Albedo_.a;vec3 Normalized_Q107=normalize(vBinormal);vec3 Incident_Q70=normalize(vPosition-cameraPosition);vec3 New_Normal_Q79;Bulge_B79(_Bulge_Enabled_,Normalized_Q38,Normalized_Q71,_Bulge_Height_,vColor,_Bulge_Radius_,vBinormal,New_Normal_Q79);float Result_Q77;SSS_B77(vBinormal,New_Normal_Q79,Incident_Q39,Result_Q77);vec4 Result_Q91;Scale_Color_B91(Color_Q83,X_Q90,Result_Q91);float Transmit_Q122;float Reflect_Q122;Fast_Fresnel_B122(_Front_Reflect_,_Edge_Reflect_,_Power_,New_Normal_Q79,Incident_Q39,Transmit_Q122,Reflect_Q122);float Product_Q125=Y_Q90*Y_Q90;vec3 NearP_Q65;vec3 NearQ_Q65;float Distance_Q65;Min_Segment_Distance_B65(Left_Index_Q64,Left_Index_Middle_Q64,vPosition,cameraPosition,NearP_Q65,NearQ_Q65,Distance_Q65);vec3 NearP_Q63;vec3 NearQ_Q63;float Distance_Q63;Min_Segment_Distance_B65(Right_Index_Q64,Right_Index_Middle_Q64,vPosition,cameraPosition,NearP_Q63,NearQ_Q63,Distance_Q63);vec3 Reflected_Q47=reflect(Incident_Q39,New_Normal_Q79);vec4 Product_Q103=Linear_Q46*vec4(1,1,1,1);vec4 Result_Q132;Rim_Light_B132(Normalized_Q107,Normalized_Q38,Incident_Q70,_Rim_Intensity_,_Rim_Texture_,Result_Q132);float Dot_Q72=dot(Incident_Q70, Normalized_Q71);float MaxAB_Q123=max(Reflect_Q122,Product_Q125);float NotInShadow_Q67;
#if OCCLUSION_ENABLED
FingerOcclusion_B67(_Width_,Distance_Q65,_Fuzz_,_Min_Fuzz_,vPosition,vBinormal,NearP_Q65,_Clip_Fade_,NotInShadow_Q67);
#else
NotInShadow_Q67=1.0;
#endif
float NotInShadow_Q68;
#if OCCLUSION_ENABLED
FingerOcclusion_B68(_Width_,Distance_Q63,_Fuzz_,_Min_Fuzz_,vPosition,vBinormal,NearP_Q63,_Clip_Fade_,NotInShadow_Q68);
#else
NotInShadow_Q68=1.0;
#endif
vec4 Reflected_Color_Q51;vec4 Indirect_Diffuse_Q51;
#if ENV_ENABLE
Mapped_Environment_B51(_Reflection_Map_,_Indirect_Environment_,Reflected_Q47,Reflected_Color_Q51,Indirect_Diffuse_Q51);
#else
Reflected_Color_Q51=vec4(0,0,0,1);Indirect_Diffuse_Q51=vec4(0,0,0,1);
#endif
vec4 Reflected_Color_Q50;vec4 Indirect_Color_Q50;
#if SKY_ENABLED
Sky_Environment_B50(New_Normal_Q79,Reflected_Q47,Linear_Q43,Linear_Q44,Linear_Q45,_Horizon_Power_,Reflected_Color_Q50,Indirect_Color_Q50);
#else
Reflected_Color_Q50=vec4(0,0,0,1);Indirect_Color_Q50=vec4(0,0,0,1);
#endif
float Hue_Q75;float Saturation_Q75;float Value_Q75;float Alpha_Q75;vec3 HSV_Q75;To_HSV_B75(Product_Q103,Hue_Q75,Saturation_Q75,Value_Q75,Alpha_Q75,HSV_Q75);float Hue_Q127;float Saturation_Q127;float Value_Q127;float Alpha_Q127;vec3 HSV_Q127;To_HSV_B75(Result_Q132,Hue_Q127,Saturation_Q127,Value_Q127,Alpha_Q127,HSV_Q127);float Result_Q110;Code_B110(Dot_Q72,Result_Q110);float AbsA_Q76=abs(Result_Q110);float MinAB_Q58=min(NotInShadow_Q67,NotInShadow_Q68);vec4 Sum_Q48=Reflected_Color_Q51+Reflected_Color_Q50;vec4 Sum_Q49=Indirect_Diffuse_Q51+Indirect_Color_Q50;vec3 HSV_Out_Q126;VaryHSV_B108(HSV_Q127,_Rim_Hue_Shift_,_Rim_Saturation_Shift_,_Rim_Value_Shift_,HSV_Out_Q126);float Out_Q114;Remap_Range_B114(-1.0,1.0,0.0,1.0,Result_Q110,Out_Q114);float Product_Q106;Product_Q106=AbsA_Q76*_Hue_Shift_;float X_Q128;float Y_Q128;float Z_Q128;To_XYZ_B74(HSV_Out_Q126,X_Q128,Y_Q128,Z_Q128);vec2 Vec2_Q112=vec2(Out_Q114,0.5);vec3 HSV_Out_Q108;VaryHSV_B108(HSV_Q75,Product_Q106,_Saturation_Shift_,_Value_Shift_,HSV_Out_Q108);vec4 Color_Q129;From_HSV_B73(X_Q128,Y_Q128,Z_Q128,0.0,Color_Q129);vec4 Color_Q111;
#if IRIDESCENCE_ENABLED
Color_Q111=texture(_Iridescence_Texture_,Vec2_Q112);
#else
Color_Q111=vec4(0,0,0,0);
#endif
float X_Q74;float Y_Q74;float Z_Q74;To_XYZ_B74(HSV_Out_Q108,X_Q74,Y_Q74,Z_Q74);vec4 Result_Q131=_Rim_Intensity_*Color_Q129;vec4 Result_Q113=_Iridescence_Intensity_*Color_Q111;vec4 Color_Q73;From_HSV_B73(X_Q74,Y_Q74,Z_Q74,0.0,Color_Q73);vec4 Result_Q84=Result_Q91+(1.0-Result_Q91.a)*Color_Q73;vec4 Result_Q121;Fragment_Main_B121(_Sun_Intensity_,_Sun_Theta_,_Sun_Phi_,New_Normal_Q79,Result_Q84,MaxAB_Q123,_Shininess_,Incident_Q39,_Horizon_Color_,_Sky_Color_,_Ground_Color_,_Indirect_Diffuse_,_Specular_,_Horizon_Power_,_Reflection_,Sum_Q48,Sum_Q49,_Sharpness_,Result_Q77,_Subsurface_,vec4(0,0,0,0),Result_Q131,Result_Q113,Result_Q121);vec4 Result_Q59;Scale_RGB_B59(Result_Q121,MinAB_Q58,Result_Q59);vec4 sRGB_Q42;FastLinearTosRGB_B42(Result_Q59,sRGB_Q42);vec4 Result_Q31=Blob_Color_Q30+(1.0-Blob_Color_Q30.a)*sRGB_Q42;vec4 Result_Q40=Result_Q31; Result_Q40.a=1.0;vec4 Out_Color=Result_Q40;float Clip_Threshold=0.001;bool To_sRGB=false;gl_FragColor=Out_Color;}`;H.ShadersStore[XLe]||(H.ShadersStore[XLe]=cJe);const ZLe="mrdlSliderBarVertexShader",uJe=`uniform mat4 world;uniform mat4 viewProjection;uniform vec3 cameraPosition;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;
#ifdef TANGENT
attribute vec3 tangent;
#else
const vec3 tangent=vec3(0.);
#endif
uniform float _Radius_;uniform float _Bevel_Front_;uniform float _Bevel_Front_Stretch_;uniform float _Bevel_Back_;uniform float _Bevel_Back_Stretch_;uniform float _Radius_Top_Left_;uniform float _Radius_Top_Right_;uniform float _Radius_Bottom_Left_;uniform float _Radius_Bottom_Right_;uniform bool _Bulge_Enabled_;uniform float _Bulge_Height_;uniform float _Bulge_Radius_;uniform float _Sun_Intensity_;uniform float _Sun_Theta_;uniform float _Sun_Phi_;uniform float _Indirect_Diffuse_;uniform vec4 _Albedo_;uniform float _Specular_;uniform float _Shininess_;uniform float _Sharpness_;uniform float _Subsurface_;uniform vec4 _Left_Color_;uniform vec4 _Right_Color_;uniform float _Reflection_;uniform float _Front_Reflect_;uniform float _Edge_Reflect_;uniform float _Power_;uniform vec4 _Sky_Color_;uniform vec4 _Horizon_Color_;uniform vec4 _Ground_Color_;uniform float _Horizon_Power_;uniform sampler2D _Reflection_Map_;uniform sampler2D _Indirect_Environment_;uniform float _Width_;uniform float _Fuzz_;uniform float _Min_Fuzz_;uniform float _Clip_Fade_;uniform float _Hue_Shift_;uniform float _Saturation_Shift_;uniform float _Value_Shift_;uniform vec3 _Blob_Position_;uniform float _Blob_Intensity_;uniform float _Blob_Near_Size_;uniform float _Blob_Far_Size_;uniform float _Blob_Near_Distance_;uniform float _Blob_Far_Distance_;uniform float _Blob_Fade_Length_;uniform float _Blob_Pulse_;uniform float _Blob_Fade_;uniform sampler2D _Blob_Texture_;uniform vec3 _Blob_Position_2_;uniform float _Blob_Near_Size_2_;uniform float _Blob_Pulse_2_;uniform float _Blob_Fade_2_;uniform vec3 _Left_Index_Pos_;uniform vec3 _Right_Index_Pos_;uniform vec3 _Left_Index_Middle_Pos_;uniform vec3 _Right_Index_Middle_Pos_;uniform sampler2D _Decal_;uniform vec2 _Decal_Scale_XY_;uniform bool _Decal_Front_Only_;uniform float _Rim_Intensity_;uniform sampler2D _Rim_Texture_;uniform float _Rim_Hue_Shift_;uniform float _Rim_Saturation_Shift_;uniform float _Rim_Value_Shift_;uniform float _Iridescence_Intensity_;uniform sampler2D _Iridescence_Texture_;uniform bool Use_Global_Left_Index;uniform bool Use_Global_Right_Index;uniform vec4 Global_Left_Index_Tip_Position;uniform vec4 Global_Right_Index_Tip_Position;uniform vec4 Global_Left_Thumb_Tip_Position;uniform vec4 Global_Right_Thumb_Tip_Position;uniform float Global_Left_Index_Tip_Proximity;uniform float Global_Right_Index_Tip_Proximity;varying vec3 vPosition;varying vec3 vNormal;varying vec2 vUV;varying vec3 vTangent;varying vec3 vBinormal;varying vec4 vColor;varying vec4 vExtra1;varying vec4 vExtra2;varying vec4 vExtra3;void Object_To_World_Pos_B12(
vec3 Pos_Object,
out vec3 Pos_World)
{Pos_World=(world*vec4(Pos_Object,1.0)).xyz;}
void Object_To_World_Normal_B32(
vec3 Nrm_Object,
out vec3 Nrm_World)
{Nrm_World=(vec4(Nrm_Object,0.0)).xyz;}
void Blob_Vertex_B23(
vec3 Position,
vec3 Normal,
vec3 Tangent,
vec3 Bitangent,
vec3 Blob_Position,
float Intensity,
float Blob_Near_Size,
float Blob_Far_Size,
float Blob_Near_Distance,
float Blob_Far_Distance,
float Blob_Fade_Length,
float Blob_Pulse,
float Blob_Fade,
out vec4 Blob_Info)
{vec3 blob= (Use_Global_Left_Index ? Global_Left_Index_Tip_Position.xyz : Blob_Position);vec3 delta=blob-Position;float dist=dot(Normal,delta);float lerpValue=clamp((abs(dist)-Blob_Near_Distance)/(Blob_Far_Distance-Blob_Near_Distance),0.0,1.0);float fadeValue=1.0-clamp((abs(dist)-Blob_Far_Distance)/Blob_Fade_Length,0.0,1.0);float size=Blob_Near_Size+(Blob_Far_Size-Blob_Near_Size)*lerpValue;vec2 blobXY=vec2(dot(delta,Tangent),dot(delta,Bitangent))/(0.0001+size);float Fade=fadeValue*Intensity*Blob_Fade;float Distance=(lerpValue*0.5+0.5)*(1.0-Blob_Pulse);Blob_Info=vec4(blobXY.x,blobXY.y,Distance,Fade);}
void Blob_Vertex_B24(
vec3 Position,
vec3 Normal,
vec3 Tangent,
vec3 Bitangent,
vec3 Blob_Position,
float Intensity,
float Blob_Near_Size,
float Blob_Far_Size,
float Blob_Near_Distance,
float Blob_Far_Distance,
float Blob_Fade_Length,
float Blob_Pulse,
float Blob_Fade,
out vec4 Blob_Info)
{vec3 blob= (Use_Global_Right_Index ? Global_Right_Index_Tip_Position.xyz : Blob_Position);vec3 delta=blob-Position;float dist=dot(Normal,delta);float lerpValue=clamp((abs(dist)-Blob_Near_Distance)/(Blob_Far_Distance-Blob_Near_Distance),0.0,1.0);float fadeValue=1.0-clamp((abs(dist)-Blob_Far_Distance)/Blob_Fade_Length,0.0,1.0);float size=Blob_Near_Size+(Blob_Far_Size-Blob_Near_Size)*lerpValue;vec2 blobXY=vec2(dot(delta,Tangent),dot(delta,Bitangent))/(0.0001+size);float Fade=fadeValue*Intensity*Blob_Fade;float Distance=(lerpValue*0.5+0.5)*(1.0-Blob_Pulse);Blob_Info=vec4(blobXY.x,blobXY.y,Distance,Fade);}
void Move_Verts_B130(
float Anisotropy,
vec3 P,
float Radius,
float Bevel,
vec3 Normal_Object,
float ScaleZ,
float Stretch,
out vec3 New_P,
out vec2 New_UV,
out float Radial_Gradient,
out vec3 Radial_Dir,
out vec3 New_Normal)
{vec2 UV=P.xy*2.0+0.5;vec2 center=clamp(UV,0.0,1.0);vec2 delta=UV-center;float deltad=(length(delta)*2.0);float f=(Bevel+(Radius-Bevel)*Stretch)/Radius;float innerd=clamp(deltad*2.0,0.0,1.0);float outerd=clamp(deltad*2.0-1.0,0.0,1.0);float bevelAngle=outerd*3.14159*0.5;float sinb=sin(bevelAngle);float cosb=cos(bevelAngle);float beveld=(1.0-f)*innerd+f*sinb;float br=outerd;vec2 r2=2.0*vec2(Radius/Anisotropy,Radius);float dir=P.z<0.0001 ? 1.0 : -1.0;New_UV=center+r2*((0.5-center)+normalize(delta+vec2(0.0,0.000001))*beveld*0.5);New_P=vec3(New_UV-0.5,P.z+dir*(1.0-cosb)*Bevel*ScaleZ);Radial_Gradient=clamp((deltad-0.5)*2.0,0.0,1.0);Radial_Dir=vec3(delta*r2,0.0);vec3 beveledNormal=cosb*Normal_Object+sinb*vec3(delta.x,delta.y,0.0);New_Normal=Normal_Object.z==0.0 ? Normal_Object : beveledNormal;}
void Object_To_World_Dir_B60(
vec3 Dir_Object,
out vec3 Normal_World,
out vec3 Normal_World_N,
out float Normal_Length)
{Normal_World=(world*vec4(Dir_Object,0.0)).xyz;Normal_Length=length(Normal_World);Normal_World_N=Normal_World/Normal_Length;}
void To_XYZ_B78(
vec3 Vec3,
out float X,
out float Y,
out float Z)
{X=Vec3.x;Y=Vec3.y;Z=Vec3.z;}
void Conditional_Float_B93(
bool Which,
float If_True,
float If_False,
out float Result)
{Result=Which ? If_True : If_False;}
void Object_To_World_Dir_B28(
vec3 Dir_Object,
out vec3 Binormal_World,
out vec3 Binormal_World_N,
out float Binormal_Length)
{Binormal_World=(world*vec4(Dir_Object,0.0)).xyz;Binormal_Length=length(Binormal_World);Binormal_World_N=Binormal_World/Binormal_Length;}
void Pick_Radius_B69(
float Radius,
float Radius_Top_Left,
float Radius_Top_Right,
float Radius_Bottom_Left,
float Radius_Bottom_Right,
vec3 Position,
out float Result)
{bool whichY=Position.y>0.0;Result=Position.x<0.0 ? (whichY ? Radius_Top_Left : Radius_Bottom_Left) : (whichY ? Radius_Top_Right : Radius_Bottom_Right);Result*=Radius;}
void Conditional_Float_B36(
bool Which,
float If_True,
float If_False,
out float Result)
{Result=Which ? If_True : If_False;}
void Greater_Than_B37(
float Left,
float Right,
out bool Not_Greater_Than,
out bool Greater_Than)
{Greater_Than=Left>Right;Not_Greater_Than=!Greater_Than;}
void Remap_Range_B105(
float In_Min,
float In_Max,
float Out_Min,
float Out_Max,
float In,
out float Out)
{Out=mix(Out_Min,Out_Max,clamp((In-In_Min)/(In_Max-In_Min),0.0,1.0));}
void main()
{vec2 XY_Q85;XY_Q85=(uv-vec2(0.5,0.5))*_Decal_Scale_XY_+vec2(0.5,0.5);vec3 Tangent_World_Q27;vec3 Tangent_World_N_Q27;float Tangent_Length_Q27;Tangent_World_Q27=(world*vec4(vec3(1,0,0),0.0)).xyz;Tangent_Length_Q27=length(Tangent_World_Q27);Tangent_World_N_Q27=Tangent_World_Q27/Tangent_Length_Q27;vec3 Normal_World_Q60;vec3 Normal_World_N_Q60;float Normal_Length_Q60;Object_To_World_Dir_B60(vec3(0,0,1),Normal_World_Q60,Normal_World_N_Q60,Normal_Length_Q60);float X_Q78;float Y_Q78;float Z_Q78;To_XYZ_B78(position,X_Q78,Y_Q78,Z_Q78);vec3 Nrm_World_Q26;Nrm_World_Q26=normalize((world*vec4(normal,0.0)).xyz);vec3 Binormal_World_Q28;vec3 Binormal_World_N_Q28;float Binormal_Length_Q28;Object_To_World_Dir_B28(vec3(0,1,0),Binormal_World_Q28,Binormal_World_N_Q28,Binormal_Length_Q28);float Anisotropy_Q29=Tangent_Length_Q27/Binormal_Length_Q28;float Result_Q69;Pick_Radius_B69(_Radius_,_Radius_Top_Left_,_Radius_Top_Right_,_Radius_Bottom_Left_,_Radius_Bottom_Right_,position,Result_Q69);float Anisotropy_Q53=Binormal_Length_Q28/Normal_Length_Q60;bool Not_Greater_Than_Q37;bool Greater_Than_Q37;Greater_Than_B37(Z_Q78,0.0,Not_Greater_Than_Q37,Greater_Than_Q37);vec4 Linear_Q101;Linear_Q101.rgb=clamp(_Left_Color_.rgb*_Left_Color_.rgb,0.0,1.0);Linear_Q101.a=_Left_Color_.a;vec4 Linear_Q102;Linear_Q102.rgb=clamp(_Right_Color_.rgb*_Right_Color_.rgb,0.0,1.0);Linear_Q102.a=_Right_Color_.a;vec3 Difference_Q61=vec3(0,0,0)-Normal_World_N_Q60;vec4 Out_Color_Q34=vec4(X_Q78,Y_Q78,Z_Q78,1);float Result_Q36;Conditional_Float_B36(Greater_Than_Q37,_Bevel_Back_,_Bevel_Front_,Result_Q36);float Result_Q94;Conditional_Float_B36(Greater_Than_Q37,_Bevel_Back_Stretch_,_Bevel_Front_Stretch_,Result_Q94);vec3 New_P_Q130;vec2 New_UV_Q130;float Radial_Gradient_Q130;vec3 Radial_Dir_Q130;vec3 New_Normal_Q130;Move_Verts_B130(Anisotropy_Q29,position,Result_Q69,Result_Q36,normal,Anisotropy_Q53,Result_Q94,New_P_Q130,New_UV_Q130,Radial_Gradient_Q130,Radial_Dir_Q130,New_Normal_Q130);float X_Q98;float Y_Q98;X_Q98=New_UV_Q130.x;Y_Q98=New_UV_Q130.y;vec3 Pos_World_Q12;Object_To_World_Pos_B12(New_P_Q130,Pos_World_Q12);vec3 Nrm_World_Q32;Object_To_World_Normal_B32(New_Normal_Q130,Nrm_World_Q32);vec4 Blob_Info_Q23;
#if BLOB_ENABLE
Blob_Vertex_B23(Pos_World_Q12,Nrm_World_Q26,Tangent_World_N_Q27,Binormal_World_N_Q28,_Blob_Position_,_Blob_Intensity_,_Blob_Near_Size_,_Blob_Far_Size_,_Blob_Near_Distance_,_Blob_Far_Distance_,_Blob_Fade_Length_,_Blob_Pulse_,_Blob_Fade_,Blob_Info_Q23);
#else
Blob_Info_Q23=vec4(0,0,0,0);
#endif
vec4 Blob_Info_Q24;
#if BLOB_ENABLE_2
Blob_Vertex_B24(Pos_World_Q12,Nrm_World_Q26,Tangent_World_N_Q27,Binormal_World_N_Q28,_Blob_Position_2_,_Blob_Intensity_,_Blob_Near_Size_2_,_Blob_Far_Size_,_Blob_Near_Distance_,_Blob_Far_Distance_,_Blob_Fade_Length_,_Blob_Pulse_2_,_Blob_Fade_2_,Blob_Info_Q24);
#else
Blob_Info_Q24=vec4(0,0,0,0);
#endif
float Out_Q105;Remap_Range_B105(0.0,1.0,0.0,1.0,X_Q98,Out_Q105);float X_Q86;float Y_Q86;float Z_Q86;To_XYZ_B78(Nrm_World_Q32,X_Q86,Y_Q86,Z_Q86);vec4 Color_At_T_Q97=mix(Linear_Q101,Linear_Q102,Out_Q105);float Minus_F_Q87=-Z_Q86;float R_Q99;float G_Q99;float B_Q99;float A_Q99;R_Q99=Color_At_T_Q97.r; G_Q99=Color_At_T_Q97.g; B_Q99=Color_At_T_Q97.b; A_Q99=Color_At_T_Q97.a;float ClampF_Q88=clamp(0.0,Minus_F_Q87,1.0);float Result_Q93;Conditional_Float_B93(_Decal_Front_Only_,ClampF_Q88,1.0,Result_Q93);vec4 Vec4_Q89=vec4(Result_Q93,Radial_Gradient_Q130,G_Q99,B_Q99);vec3 Position=Pos_World_Q12;vec3 Normal=Nrm_World_Q32;vec2 UV=XY_Q85;vec3 Tangent=Tangent_World_N_Q27;vec3 Binormal=Difference_Q61;vec4 Color=Out_Color_Q34;vec4 Extra1=Vec4_Q89;vec4 Extra2=Blob_Info_Q23;vec4 Extra3=Blob_Info_Q24;gl_Position=viewProjection*vec4(Position,1);vPosition=Position;vNormal=Normal;vUV=UV;vTangent=Tangent;vBinormal=Binormal;vColor=Color;vExtra1=Extra1;vExtra2=Extra2;vExtra3=Extra3;}`;H.ShadersStore[ZLe]||(H.ShadersStore[ZLe]=uJe);class hJe extends Br{constructor(){super(),this.SKY_ENABLED=!0,this.BLOB_ENABLE_2=!0,this.IRIDESCENCE_ENABLED=!0,this._needNormals=!0,this._needUVs=!0,this.rebuild()}}class Ms extends po{constructor(e,t){super(e,t),this.radius=.6,this.bevelFront=.6,this.bevelFrontStretch=.077,this.bevelBack=0,this.bevelBackStretch=0,this.radiusTopLeft=1,this.radiusTopRight=1,this.radiusBottomLeft=1,this.radiusBottomRight=1,this.bulgeEnabled=!1,this.bulgeHeight=-.323,this.bulgeRadius=.73,this.sunIntensity=1.102,this.sunTheta=.76,this.sunPhi=.526,this.indirectDiffuse=.658,this.albedo=new St(.0117647,.505882,.996078,1),this.specular=0,this.shininess=10,this.sharpness=0,this.subsurface=0,this.leftGradientColor=new St(.0117647,.505882,.996078,1),this.rightGradientColor=new St(.0117647,.505882,.996078,1),this.reflection=.749,this.frontReflect=0,this.edgeReflect=.09,this.power=8.13,this.skyColor=new St(.0117647,.964706,.996078,1),this.horizonColor=new St(.0117647,.333333,.996078,1),this.groundColor=new St(0,.254902,.996078,1),this.horizonPower=1,this.width=.02,this.fuzz=.5,this.minFuzz=.001,this.clipFade=.01,this.hueShift=0,this.saturationShift=0,this.valueShift=0,this.blobPosition=new P(0,0,.1),this.blobIntensity=.5,this.blobNearSize=.01,this.blobFarSize=.03,this.blobNearDistance=0,this.blobFarDistance=.08,this.blobFadeLength=.576,this.blobPulse=0,this.blobFade=1,this.blobPosition2=new P(.2,0,.1),this.blobNearSize2=.01,this.blobPulse2=0,this.blobFade2=1,this.blobTexture=new be("",this.getScene()),this.leftIndexPosition=new P(0,0,1),this.rightIndexPosition=new P(-1,-1,-1),this.leftIndexMiddlePosition=new P(0,0,0),this.rightIndexMiddlePosition=new P(0,0,0),this.decalScaleXY=new Ue(1.5,1.5),this.decalFrontOnly=!0,this.rimIntensity=.287,this.rimHueShift=0,this.rimSaturationShift=0,this.rimValueShift=-1,this.iridescenceIntensity=0,this.useGlobalLeftIndex=1,this.useGlobalRightIndex=1,this.globalLeftIndexTipProximity=0,this.globalRightIndexTipProximity=0,this.globalLeftIndexTipPosition=new Yt(.5,0,-.55,1),this.globaRightIndexTipPosition=new Yt(0,0,0,1),this.globalLeftThumbTipPosition=new Yt(.5,0,-.55,1),this.globalRightThumbTipPosition=new Yt(0,0,0,1),this.globalLeftIndexMiddlePosition=new Yt(.5,0,-.55,1),this.globalRightIndexMiddlePosition=new Yt(0,0,0,1),this.alphaMode=ze.ALPHA_DISABLE,this.backFaceCulling=!1;const i=Le.GetAssetUrl(Ms.BLUE_GRADIENT_TEXTURE_URL);this._blueGradientTexture=new be(i,this.getScene(),!0,!1,be.NEAREST_SAMPLINGMODE),this._decalTexture=new be("",this.getScene()),this._reflectionMapTexture=new be("",this.getScene()),this._indirectEnvTexture=new be("",this.getScene())}needAlphaBlending(){return!1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t){const i=t._drawWrapper;if(this.isFrozen&&i.effect&&i._wasPreviouslyReady)return!0;t.materialDefines||(t.materialDefines=new hJe);const s=t.materialDefines,r=this.getScene();if(this._isReadyForSubMesh(t))return!0;const n=r.getEngine();if(zo(e,s,!1,!1),s.isDirty){s.markAsProcessed(),r.resetCachedMaterial();const o=new Ra;s.FOG&&o.addFallback(1,"FOG"),Ql(s,o),s.IMAGEPROCESSINGPOSTPROCESS=r.imageProcessingConfiguration.applyByPostProcess;const l=[q.PositionKind];s.NORMAL&&l.push(q.NormalKind),s.UV1&&l.push(q.UVKind),s.UV2&&l.push(q.UV2Kind),s.VERTEXCOLOR&&l.push(q.ColorKind),s.TANGENT&&l.push(q.TangentKind),Qo(l,s);const c="mrdlSliderBar",u=s.toString(),f=["world","viewProjection","cameraPosition","_Radius_","_Bevel_Front_","_Bevel_Front_Stretch_","_Bevel_Back_","_Bevel_Back_Stretch_","_Radius_Top_Left_","_Radius_Top_Right_","_Radius_Bottom_Left_","_Radius_Bottom_Right_","_Bulge_Enabled_","_Bulge_Height_","_Bulge_Radius_","_Sun_Intensity_","_Sun_Theta_","_Sun_Phi_","_Indirect_Diffuse_","_Albedo_","_Specular_","_Shininess_","_Sharpness_","_Subsurface_","_Left_Color_","_Right_Color_","_Reflection_","_Front_Reflect_","_Edge_Reflect_","_Power_","_Sky_Color_","_Horizon_Color_","_Ground_Color_","_Horizon_Power_","_Reflection_Map_","_Indirect_Environment_","_Width_","_Fuzz_","_Min_Fuzz_","_Clip_Fade_","_Hue_Shift_","_Saturation_Shift_","_Value_Shift_","_Blob_Position_","_Blob_Intensity_","_Blob_Near_Size_","_Blob_Far_Size_","_Blob_Near_Distance_","_Blob_Far_Distance_","_Blob_Fade_Length_","_Blob_Pulse_","_Blob_Fade_","_Blob_Texture_","_Blob_Position_2_","_Blob_Near_Size_2_","_Blob_Pulse_2_","_Blob_Fade_2_","_Left_Index_Pos_","_Right_Index_Pos_","_Left_Index_Middle_Pos_","_Right_Index_Middle_Pos_","_Decal_","_Decal_Scale_XY_","_Decal_Front_Only_","_Rim_Intensity_","_Rim_Texture_","_Rim_Hue_Shift_","_Rim_Saturation_Shift_","_Rim_Value_Shift_","_Iridescence_Intensity_","_Iridescence_Texture_","Use_Global_Left_Index","Use_Global_Right_Index","Global_Left_Index_Tip_Position","Global_Right_Index_Tip_Position","Global_Left_Thumb_Tip_Position","Global_Right_Thumb_Tip_Position","Global_Left_Index_Middle_Position;","Global_Right_Index_Middle_Position","Global_Left_Index_Tip_Proximity","Global_Right_Index_Tip_Proximity"],p=["_Rim_Texture_","_Iridescence_Texture_"],m=[];gl({uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:s,maxSimultaneousLights:4}),t.setEffect(r.getEngine().createEffect(c,{attributes:l,uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:u,fallbacks:o,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:4}},n),s,this._materialContext)}return!t.effect||!t.effect.isReady()?!1:(s._renderId=r.getRenderId(),i._wasPreviouslyReady=!0,!0)}bindForSubMesh(e,t,i){if(!i.materialDefines)return;const r=i.effect;r&&(this._activeEffect=r,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",this.getScene().getTransformMatrix()),this._activeEffect.setVector3("cameraPosition",this.getScene().activeCamera.position),this._activeEffect.setFloat("_Radius_",this.radius),this._activeEffect.setFloat("_Bevel_Front_",this.bevelFront),this._activeEffect.setFloat("_Bevel_Front_Stretch_",this.bevelFrontStretch),this._activeEffect.setFloat("_Bevel_Back_",this.bevelBack),this._activeEffect.setFloat("_Bevel_Back_Stretch_",this.bevelBackStretch),this._activeEffect.setFloat("_Radius_Top_Left_",this.radiusTopLeft),this._activeEffect.setFloat("_Radius_Top_Right_",this.radiusTopRight),this._activeEffect.setFloat("_Radius_Bottom_Left_",this.radiusBottomLeft),this._activeEffect.setFloat("_Radius_Bottom_Right_",this.radiusBottomRight),this._activeEffect.setFloat("_Bulge_Enabled_",this.bulgeEnabled?1:0),this._activeEffect.setFloat("_Bulge_Height_",this.bulgeHeight),this._activeEffect.setFloat("_Bulge_Radius_",this.bulgeRadius),this._activeEffect.setFloat("_Sun_Intensity_",this.sunIntensity),this._activeEffect.setFloat("_Sun_Theta_",this.sunTheta),this._activeEffect.setFloat("_Sun_Phi_",this.sunPhi),this._activeEffect.setFloat("_Indirect_Diffuse_",this.indirectDiffuse),this._activeEffect.setDirectColor4("_Albedo_",this.albedo),this._activeEffect.setFloat("_Specular_",this.specular),this._activeEffect.setFloat("_Shininess_",this.shininess),this._activeEffect.setFloat("_Sharpness_",this.sharpness),this._activeEffect.setFloat("_Subsurface_",this.subsurface),this._activeEffect.setDirectColor4("_Left_Color_",this.leftGradientColor),this._activeEffect.setDirectColor4("_Right_Color_",this.rightGradientColor),this._activeEffect.setFloat("_Reflection_",this.reflection),this._activeEffect.setFloat("_Front_Reflect_",this.frontReflect),this._activeEffect.setFloat("_Edge_Reflect_",this.edgeReflect),this._activeEffect.setFloat("_Power_",this.power),this._activeEffect.setDirectColor4("_Sky_Color_",this.skyColor),this._activeEffect.setDirectColor4("_Horizon_Color_",this.horizonColor),this._activeEffect.setDirectColor4("_Ground_Color_",this.groundColor),this._activeEffect.setFloat("_Horizon_Power_",this.horizonPower),this._activeEffect.setTexture("_Reflection_Map_",this._reflectionMapTexture),this._activeEffect.setTexture("_Indirect_Environment_",this._indirectEnvTexture),this._activeEffect.setFloat("_Width_",this.width),this._activeEffect.setFloat("_Fuzz_",this.fuzz),this._activeEffect.setFloat("_Min_Fuzz_",this.minFuzz),this._activeEffect.setFloat("_Clip_Fade_",this.clipFade),this._activeEffect.setFloat("_Hue_Shift_",this.hueShift),this._activeEffect.setFloat("_Saturation_Shift_",this.saturationShift),this._activeEffect.setFloat("_Value_Shift_",this.valueShift),this._activeEffect.setVector3("_Blob_Position_",this.blobPosition),this._activeEffect.setFloat("_Blob_Intensity_",this.blobIntensity),this._activeEffect.setFloat("_Blob_Near_Size_",this.blobNearSize),this._activeEffect.setFloat("_Blob_Far_Size_",this.blobFarSize),this._activeEffect.setFloat("_Blob_Near_Distance_",this.blobNearDistance),this._activeEffect.setFloat("_Blob_Far_Distance_",this.blobFarDistance),this._activeEffect.setFloat("_Blob_Fade_Length_",this.blobFadeLength),this._activeEffect.setFloat("_Blob_Pulse_",this.blobPulse),this._activeEffect.setFloat("_Blob_Fade_",this.blobFade),this._activeEffect.setTexture("_Blob_Texture_",this.blobTexture),this._activeEffect.setVector3("_Blob_Position_2_",this.blobPosition2),this._activeEffect.setFloat("_Blob_Near_Size_2_",this.blobNearSize2),this._activeEffect.setFloat("_Blob_Pulse_2_",this.blobPulse2),this._activeEffect.setFloat("_Blob_Fade_2_",this.blobFade2),this._activeEffect.setVector3("_Left_Index_Pos_",this.leftIndexPosition),this._activeEffect.setVector3("_Right_Index_Pos_",this.rightIndexPosition),this._activeEffect.setVector3("_Left_Index_Middle_Pos_",this.leftIndexMiddlePosition),this._activeEffect.setVector3("_Right_Index_Middle_Pos_",this.rightIndexMiddlePosition),this._activeEffect.setTexture("_Decal_",this._decalTexture),this._activeEffect.setVector2("_Decal_Scale_XY_",this.decalScaleXY),this._activeEffect.setFloat("_Decal_Front_Only_",this.decalFrontOnly?1:0),this._activeEffect.setFloat("_Rim_Intensity_",this.rimIntensity),this._activeEffect.setTexture("_Rim_Texture_",this._blueGradientTexture),this._activeEffect.setFloat("_Rim_Hue_Shift_",this.rimHueShift),this._activeEffect.setFloat("_Rim_Saturation_Shift_",this.rimSaturationShift),this._activeEffect.setFloat("_Rim_Value_Shift_",this.rimValueShift),this._activeEffect.setFloat("_Iridescence_Intensity_",this.iridescenceIntensity),this._activeEffect.setTexture("_Iridescence_Texture_",this._blueGradientTexture),this._activeEffect.setFloat("Use_Global_Left_Index",this.useGlobalLeftIndex),this._activeEffect.setFloat("Use_Global_Right_Index",this.useGlobalRightIndex),this._activeEffect.setVector4("Global_Left_Index_Tip_Position",this.globalLeftIndexTipPosition),this._activeEffect.setVector4("Global_Right_Index_Tip_Position",this.globaRightIndexTipPosition),this._activeEffect.setVector4("Global_Left_Thumb_Tip_Position",this.globalLeftThumbTipPosition),this._activeEffect.setVector4("Global_Right_Thumb_Tip_Position",this.globalRightThumbTipPosition),this._activeEffect.setVector4("Global_Left_Index_Middle_Position",this.globalLeftIndexMiddlePosition),this._activeEffect.setVector4("Global_Right_Index_Middle_Position",this.globalRightIndexMiddlePosition),this._activeEffect.setFloat("Global_Left_Index_Tip_Proximity",this.globalLeftIndexTipProximity),this._activeEffect.setFloat("Global_Right_Index_Tip_Proximity",this.globalRightIndexTipProximity),this._afterBind(t,this._activeEffect,i))}getAnimatables(){return[]}dispose(e){super.dispose(e),this._reflectionMapTexture.dispose(),this._indirectEnvTexture.dispose(),this._blueGradientTexture.dispose(),this._decalTexture.dispose()}clone(e){return It.Clone(()=>new Ms(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.MRDLSliderBarMaterial",e}getClassName(){return"MRDLSliderBarMaterial"}static Parse(e,t,i){return It.Parse(()=>new Ms(e.name,t),e,t,i)}}Ms.BLUE_GRADIENT_TEXTURE_URL="https://assets.babylonjs.com/core/MRTK/MRDL/mrtk-mrdl-blue-gradient.png",F([G()],Ms.prototype,"radius",void 0),F([G()],Ms.prototype,"bevelFront",void 0),F([G()],Ms.prototype,"bevelFrontStretch",void 0),F([G()],Ms.prototype,"bevelBack",void 0),F([G()],Ms.prototype,"bevelBackStretch",void 0),F([G()],Ms.prototype,"radiusTopLeft",void 0),F([G()],Ms.prototype,"radiusTopRight",void 0),F([G()],Ms.prototype,"radiusBottomLeft",void 0),F([G()],Ms.prototype,"radiusBottomRight",void 0),F([G()],Ms.prototype,"bulgeEnabled",void 0),F([G()],Ms.prototype,"bulgeHeight",void 0),F([G()],Ms.prototype,"bulgeRadius",void 0),F([G()],Ms.prototype,"sunIntensity",void 0),F([G()],Ms.prototype,"sunTheta",void 0),F([G()],Ms.prototype,"sunPhi",void 0),F([G()],Ms.prototype,"indirectDiffuse",void 0),F([G()],Ms.prototype,"albedo",void 0),F([G()],Ms.prototype,"specular",void 0),F([G()],Ms.prototype,"shininess",void 0),F([G()],Ms.prototype,"sharpness",void 0),F([G()],Ms.prototype,"subsurface",void 0),F([G()],Ms.prototype,"leftGradientColor",void 0),F([G()],Ms.prototype,"rightGradientColor",void 0),F([G()],Ms.prototype,"reflection",void 0),F([G()],Ms.prototype,"frontReflect",void 0),F([G()],Ms.prototype,"edgeReflect",void 0),F([G()],Ms.prototype,"power",void 0),F([G()],Ms.prototype,"skyColor",void 0),F([G()],Ms.prototype,"horizonColor",void 0),F([G()],Ms.prototype,"groundColor",void 0),F([G()],Ms.prototype,"horizonPower",void 0),F([G()],Ms.prototype,"width",void 0),F([G()],Ms.prototype,"fuzz",void 0),F([G()],Ms.prototype,"minFuzz",void 0),F([G()],Ms.prototype,"clipFade",void 0),F([G()],Ms.prototype,"hueShift",void 0),F([G()],Ms.prototype,"saturationShift",void 0),F([G()],Ms.prototype,"valueShift",void 0),F([G()],Ms.prototype,"blobPosition",void 0),F([G()],Ms.prototype,"blobIntensity",void 0),F([G()],Ms.prototype,"blobNearSize",void 0),F([G()],Ms.prototype,"blobFarSize",void 0),F([G()],Ms.prototype,"blobNearDistance",void 0),F([G()],Ms.prototype,"blobFarDistance",void 0),F([G()],Ms.prototype,"blobFadeLength",void 0),F([G()],Ms.prototype,"blobPulse",void 0),F([G()],Ms.prototype,"blobFade",void 0),F([G()],Ms.prototype,"blobPosition2",void 0),F([G()],Ms.prototype,"blobNearSize2",void 0),F([G()],Ms.prototype,"blobPulse2",void 0),F([G()],Ms.prototype,"blobFade2",void 0),F([G()],Ms.prototype,"blobTexture",void 0),F([G()],Ms.prototype,"leftIndexPosition",void 0),F([G()],Ms.prototype,"rightIndexPosition",void 0),F([G()],Ms.prototype,"leftIndexMiddlePosition",void 0),F([G()],Ms.prototype,"rightIndexMiddlePosition",void 0),F([G()],Ms.prototype,"decalScaleXY",void 0),F([G()],Ms.prototype,"decalFrontOnly",void 0),F([G()],Ms.prototype,"rimIntensity",void 0),F([G()],Ms.prototype,"rimHueShift",void 0),F([G()],Ms.prototype,"rimSaturationShift",void 0),F([G()],Ms.prototype,"rimValueShift",void 0),F([G()],Ms.prototype,"iridescenceIntensity",void 0),ve("BABYLON.GUI.MRDLSliderBarMaterial",Ms);const KLe="mrdlSliderThumbPixelShader",dJe=`uniform vec3 cameraPosition;varying vec3 vPosition;varying vec3 vNormal;varying vec2 vUV;varying vec3 vTangent;varying vec3 vBinormal;varying vec4 vColor;varying vec4 vExtra1;varying vec4 vExtra2;varying vec4 vExtra3;uniform float _Radius_;uniform float _Bevel_Front_;uniform float _Bevel_Front_Stretch_;uniform float _Bevel_Back_;uniform float _Bevel_Back_Stretch_;uniform float _Radius_Top_Left_;uniform float _Radius_Top_Right_;uniform float _Radius_Bottom_Left_;uniform float _Radius_Bottom_Right_;uniform bool _Bulge_Enabled_;uniform float _Bulge_Height_;uniform float _Bulge_Radius_;uniform float _Sun_Intensity_;uniform float _Sun_Theta_;uniform float _Sun_Phi_;uniform float _Indirect_Diffuse_;uniform vec4 _Albedo_;uniform float _Specular_;uniform float _Shininess_;uniform float _Sharpness_;uniform float _Subsurface_;uniform vec4 _Left_Color_;uniform vec4 _Right_Color_;uniform float _Reflection_;uniform float _Front_Reflect_;uniform float _Edge_Reflect_;uniform float _Power_;uniform vec4 _Sky_Color_;uniform vec4 _Horizon_Color_;uniform vec4 _Ground_Color_;uniform float _Horizon_Power_;uniform sampler2D _Reflection_Map_;uniform sampler2D _Indirect_Environment_;uniform float _Width_;uniform float _Fuzz_;uniform float _Min_Fuzz_;uniform float _Clip_Fade_;uniform float _Hue_Shift_;uniform float _Saturation_Shift_;uniform float _Value_Shift_;uniform vec3 _Blob_Position_;uniform float _Blob_Intensity_;uniform float _Blob_Near_Size_;uniform float _Blob_Far_Size_;uniform float _Blob_Near_Distance_;uniform float _Blob_Far_Distance_;uniform float _Blob_Fade_Length_;uniform float _Blob_Pulse_;uniform float _Blob_Fade_;uniform sampler2D _Blob_Texture_;uniform vec3 _Blob_Position_2_;uniform float _Blob_Near_Size_2_;uniform float _Blob_Pulse_2_;uniform float _Blob_Fade_2_;uniform vec3 _Left_Index_Pos_;uniform vec3 _Right_Index_Pos_;uniform vec3 _Left_Index_Middle_Pos_;uniform vec3 _Right_Index_Middle_Pos_;uniform sampler2D _Decal_;uniform vec2 _Decal_Scale_XY_;uniform bool _Decal_Front_Only_;uniform float _Rim_Intensity_;uniform sampler2D _Rim_Texture_;uniform float _Rim_Hue_Shift_;uniform float _Rim_Saturation_Shift_;uniform float _Rim_Value_Shift_;uniform float _Iridescence_Intensity_;uniform sampler2D _Iridescence_Texture_;uniform bool Use_Global_Left_Index;uniform bool Use_Global_Right_Index;uniform vec4 Global_Left_Index_Tip_Position;uniform vec4 Global_Right_Index_Tip_Position;uniform vec4 Global_Left_Thumb_Tip_Position;uniform vec4 Global_Right_Thumb_Tip_Position;uniform vec4 Global_Left_Index_Middle_Position;uniform vec4 Global_Right_Index_Middle_Position;uniform float Global_Left_Index_Tip_Proximity;uniform float Global_Right_Index_Tip_Proximity;void Blob_Fragment_B180(
sampler2D Blob_Texture,
vec4 Blob_Info1,
vec4 Blob_Info2,
out vec4 Blob_Color)
{float k1=dot(Blob_Info1.xy,Blob_Info1.xy);float k2=dot(Blob_Info2.xy,Blob_Info2.xy);vec3 closer=k1<k2 ? vec3(k1,Blob_Info1.z,Blob_Info1.w) : vec3(k2,Blob_Info2.z,Blob_Info2.w);Blob_Color=closer.z*texture(Blob_Texture,vec2(vec2(sqrt(closer.x),closer.y).x,1.0-vec2(sqrt(closer.x),closer.y).y))*clamp(1.0-closer.x,0.0,1.0);}
void FastLinearTosRGB_B192(
vec4 Linear,
out vec4 sRGB)
{sRGB.rgb=sqrt(clamp(Linear.rgb,0.0,1.0));sRGB.a=Linear.a;}
void Scale_RGB_B209(
vec4 Color,
float Scalar,
out vec4 Result)
{Result=vec4(Scalar,Scalar,Scalar,1)*Color;}
void Fragment_Main_B271(
float Sun_Intensity,
float Sun_Theta,
float Sun_Phi,
vec3 Normal,
vec4 Albedo,
float Fresnel_Reflect,
float Shininess,
vec3 Incident,
vec4 Horizon_Color,
vec4 Sky_Color,
vec4 Ground_Color,
float Indirect_Diffuse,
float Specular,
float Horizon_Power,
float Reflection,
vec4 Reflection_Sample,
vec4 Indirect_Sample,
float Sharpness,
float SSS,
float Subsurface,
vec4 Translucence,
vec4 Rim_Light,
vec4 Iridescence,
out vec4 Result)
{float theta=Sun_Theta*2.0*3.14159;float phi=Sun_Phi*3.14159;vec3 lightDir= vec3(cos(phi)*cos(theta),sin(phi),cos(phi)*sin(theta));float NdotL=max(dot(lightDir,Normal),0.0);vec3 R=reflect(Incident,Normal);float RdotL=max(0.0,dot(R,lightDir));float specular=pow(RdotL,Shininess);specular=mix(specular,smoothstep(0.495*Sharpness,1.0-0.495*Sharpness,specular),Sharpness);vec4 gi=mix(Ground_Color,Sky_Color,Normal.y*0.5+0.5);Result=((Sun_Intensity*NdotL+Indirect_Sample*Indirect_Diffuse+Translucence)*(1.0+SSS*Subsurface))*Albedo*(1.0-Fresnel_Reflect)+(Sun_Intensity*specular*Specular+Fresnel_Reflect*Reflection*Reflection_Sample)+Fresnel_Reflect*Rim_Light+Iridescence;}
void Bulge_B229(
bool Enabled,
vec3 Normal,
vec3 Tangent,
float Bulge_Height,
vec4 UV,
float Bulge_Radius,
vec3 ButtonN,
out vec3 New_Normal)
{vec2 xy=clamp(UV.xy*2.0,vec2(-1,-1),vec2(1,1));vec3 B=(cross(Normal,Tangent));float k=-clamp(1.0-length(xy)/Bulge_Radius,0.0,1.0)*Bulge_Height;k=sin(k*3.14159*0.5);k*=smoothstep(0.9998,0.9999,abs(dot(ButtonN,Normal)));New_Normal=Normal*sqrt(1.0-k*k)+(xy.x*Tangent+xy.y*B)*k;New_Normal=Enabled ? New_Normal : Normal;}
void SSS_B227(
vec3 ButtonN,
vec3 Normal,
vec3 Incident,
out float Result)
{float NdotI=abs(dot(Normal,Incident));float BdotI=abs(dot(ButtonN,Incident));Result=(abs(NdotI-BdotI)); }
void FingerOcclusion_B217(
float Width,
float DistToCenter,
float Fuzz,
float Min_Fuzz,
vec3 Position,
vec3 Forward,
vec3 Nearest,
float Fade_Out,
out float NotInShadow)
{float d=dot((Nearest-Position),Forward);float sh=smoothstep(Width*0.5,Width*0.5+Fuzz*max(d,0.0)+Min_Fuzz,DistToCenter);NotInShadow=1.0-(1.0-sh)*smoothstep(-Fade_Out,0.0,d);}
void FingerOcclusion_B218(
float Width,
float DistToCenter,
float Fuzz,
float Min_Fuzz,
vec3 Position,
vec3 Forward,
vec3 Nearest,
float Fade_Out,
out float NotInShadow)
{float d=dot((Nearest-Position),Forward);float sh=smoothstep(Width*0.5,Width*0.5+Fuzz*max(d,0.0)+Min_Fuzz,DistToCenter);NotInShadow=1.0-(1.0-sh)*smoothstep(-Fade_Out,0.0,d);}
void Scale_Color_B241(
vec4 Color,
float Scalar,
out vec4 Result)
{Result=Scalar*Color;}
void From_HSV_B223(
float Hue,
float Saturation,
float Value,
float Alpha,
out vec4 Color)
{vec4 K=vec4(1.0,2.0/3.0,1.0/3.0,3.0);vec3 p=abs(fract(vec3(Hue,Hue,Hue)+K.xyz)*6.0-K.www);Color.rgb=Value*mix(K.xxx,clamp(p-K.xxx,0.0,1.0),Saturation);Color.a=Alpha;}
void Fast_Fresnel_B272(
float Front_Reflect,
float Edge_Reflect,
float Power,
vec3 Normal,
vec3 Incident,
out float Transmit,
out float Reflect)
{float d=max(-dot(Incident,Normal),0.0);Reflect=Front_Reflect+(Edge_Reflect-Front_Reflect)*pow(1.0-d,Power);Transmit=1.0-Reflect;}
void Mapped_Environment_B201(
sampler2D Reflected_Environment,
sampler2D Indirect_Environment,
vec3 Dir,
out vec4 Reflected_Color,
out vec4 Indirect_Diffuse)
{Reflected_Color=texture(Reflected_Environment,vec2(atan(Dir.z,Dir.x)/3.14159*0.5,asin(Dir.y)/3.14159+0.5));Indirect_Diffuse=texture(Indirect_Environment,vec2(atan(Dir.z,Dir.x)/3.14159*0.5,asin(Dir.y)/3.14159+0.5));}
vec4 SampleEnv_Bid200(vec3 D,vec4 S,vec4 H,vec4 G,float exponent)
{float k=pow(abs(D.y),exponent);vec4 C;if (D.y>0.0) {C=mix(H,S,k);} else {C=mix(H,G,k); }
return C;}
void Sky_Environment_B200(
vec3 Normal,
vec3 Reflected,
vec4 Sky_Color,
vec4 Horizon_Color,
vec4 Ground_Color,
float Horizon_Power,
out vec4 Reflected_Color,
out vec4 Indirect_Color)
{Reflected_Color=SampleEnv_Bid200(Reflected,Sky_Color,Horizon_Color,Ground_Color,Horizon_Power);Indirect_Color=mix(Ground_Color,Sky_Color,Normal.y*0.5+0.5);}
void Min_Segment_Distance_B215(
vec3 P0,
vec3 P1,
vec3 Q0,
vec3 Q1,
out vec3 NearP,
out vec3 NearQ,
out float Distance)
{vec3 u=P1-P0;vec3 v=Q1-Q0;vec3 w=P0-Q0;float a=dot(u,u);float b=dot(u,v);float c=dot(v,v);float d=dot(u,w);float e=dot(v,w);float D=a*c-b*b;float sD=D;float tD=D;float sc,sN,tc,tN;if (D<0.00001) {sN=0.0;sD=1.0;tN=e;tD=c;} else {sN=(b*e-c*d);tN=(a*e-b*d);if (sN<0.0) {sN=0.0;tN=e;tD=c;} else if (sN>sD) {sN=sD;tN=e+b;tD=c;}}
if (tN<0.0) {tN=0.0;if (-d<0.0) {sN=0.0;} else if (-d>a) {sN=sD;} else {sN=-d;sD=a;}} else if (tN>tD) {tN=tD;if ((-d+b)<0.0) {sN=0.0;} else if ((-d+b)>a) {sN=sD;} else {sN=(-d+b);sD=a;}}
sc=abs(sN)<0.000001 ? 0.0 : sN/sD;tc=abs(tN)<0.000001 ? 0.0 : tN/tD;NearP=P0+sc*u;NearQ=Q0+tc*v;Distance=distance(NearP,NearQ);}
void To_XYZ_B224(
vec3 Vec3,
out float X,
out float Y,
out float Z)
{X=Vec3.x;Y=Vec3.y;Z=Vec3.z;}
void Finger_Positions_B214(
vec3 Left_Index_Pos,
vec3 Right_Index_Pos,
vec3 Left_Index_Middle_Pos,
vec3 Right_Index_Middle_Pos,
out vec3 Left_Index,
out vec3 Right_Index,
out vec3 Left_Index_Middle,
out vec3 Right_Index_Middle)
{Left_Index= (Use_Global_Left_Index ? Global_Left_Index_Tip_Position.xyz : Left_Index_Pos);Right_Index= (Use_Global_Right_Index ? Global_Right_Index_Tip_Position.xyz : Right_Index_Pos);Left_Index_Middle= (Use_Global_Left_Index ? Global_Left_Index_Middle_Position.xyz : Left_Index_Middle_Pos);Right_Index_Middle= (Use_Global_Right_Index ? Global_Right_Index_Middle_Position.xyz : Right_Index_Middle_Pos);}
void VaryHSV_B258(
vec3 HSV_In,
float Hue_Shift,
float Saturation_Shift,
float Value_Shift,
out vec3 HSV_Out)
{HSV_Out=vec3(fract(HSV_In.x+Hue_Shift),clamp(HSV_In.y+Saturation_Shift,0.0,1.0),clamp(HSV_In.z+Value_Shift,0.0,1.0));}
void Remap_Range_B264(
float In_Min,
float In_Max,
float Out_Min,
float Out_Max,
float In,
out float Out)
{Out=mix(Out_Min,Out_Max,clamp((In-In_Min)/(In_Max-In_Min),0.0,1.0));}
void To_HSV_B225(
vec4 Color,
out float Hue,
out float Saturation,
out float Value,
out float Alpha,
out vec3 HSV)
{vec4 K=vec4(0.0,-1.0/3.0,2.0/3.0,-1.0);vec4 p=Color.g<Color.b ? vec4(Color.bg,K.wz) : vec4(Color.gb,K.xy);vec4 q=Color.r<p.x ? vec4(p.xyw,Color.r) : vec4(Color.r,p.yzx);float d=q.x-min(q.w,q.y);float e=1.0e-10;Hue=abs(q.z+(q.w-q.y)/(6.0*d+e));Saturation=d/(q.x+e);Value=q.x;Alpha=Color.a;HSV=vec3(Hue,Saturation,Value);}
void Code_B260(
float X,
out float Result)
{Result=(acos(X)/3.14159-0.5)*2.0;}
void Rim_Light_B282(
vec3 Front,
vec3 Normal,
vec3 Incident,
float Rim_Intensity,
sampler2D Texture,
out vec4 Result)
{vec3 R=reflect(Incident,Normal);float RdotF=dot(R,Front);float RdotL=sqrt(1.0-RdotF*RdotF);vec2 UV=vec2(R.y*0.5+0.5,0.5);vec4 Color=texture(Texture,UV);Result=Color;}
void main()
{vec4 Blob_Color_Q180;
#if BLOB_ENABLE
Blob_Fragment_B180(_Blob_Texture_,vExtra2,vExtra3,Blob_Color_Q180);
#else
Blob_Color_Q180=vec4(0,0,0,0);
#endif
vec3 Incident_Q189=normalize(vPosition-cameraPosition);vec3 Normalized_Q188=normalize(vNormal);vec3 Normalized_Q221=normalize(vTangent);vec4 Color_Q233;
#if DECAL_ENABLE
Color_Q233=texture(_Decal_,vUV);
#else
Color_Q233=vec4(0,0,0,0);
#endif
float X_Q240;float Y_Q240;float Z_Q240;float W_Q240;X_Q240=vExtra1.x;Y_Q240=vExtra1.y;Z_Q240=vExtra1.z;W_Q240=vExtra1.w;vec4 Linear_Q193;Linear_Q193.rgb=clamp(_Sky_Color_.rgb*_Sky_Color_.rgb,0.0,1.0);Linear_Q193.a=_Sky_Color_.a;vec4 Linear_Q194;Linear_Q194.rgb=clamp(_Horizon_Color_.rgb*_Horizon_Color_.rgb,0.0,1.0);Linear_Q194.a=_Horizon_Color_.a;vec4 Linear_Q195;Linear_Q195.rgb=clamp(_Ground_Color_.rgb*_Ground_Color_.rgb,0.0,1.0);Linear_Q195.a=_Ground_Color_.a;vec3 Left_Index_Q214;vec3 Right_Index_Q214;vec3 Left_Index_Middle_Q214;vec3 Right_Index_Middle_Q214;Finger_Positions_B214(_Left_Index_Pos_,_Right_Index_Pos_,_Left_Index_Middle_Pos_,_Right_Index_Middle_Pos_,Left_Index_Q214,Right_Index_Q214,Left_Index_Middle_Q214,Right_Index_Middle_Q214);vec4 Linear_Q196;Linear_Q196.rgb=clamp(_Albedo_.rgb*_Albedo_.rgb,0.0,1.0);Linear_Q196.a=_Albedo_.a;vec3 Normalized_Q257=normalize(vBinormal);vec3 Incident_Q220=normalize(vPosition-cameraPosition);vec3 New_Normal_Q229;Bulge_B229(_Bulge_Enabled_,Normalized_Q188,Normalized_Q221,_Bulge_Height_,vColor,_Bulge_Radius_,vBinormal,New_Normal_Q229);float Result_Q227;SSS_B227(vBinormal,New_Normal_Q229,Incident_Q189,Result_Q227);vec4 Result_Q241;Scale_Color_B241(Color_Q233,X_Q240,Result_Q241);float Transmit_Q272;float Reflect_Q272;Fast_Fresnel_B272(_Front_Reflect_,_Edge_Reflect_,_Power_,New_Normal_Q229,Incident_Q189,Transmit_Q272,Reflect_Q272);float Product_Q275=Y_Q240*Y_Q240;vec3 NearP_Q215;vec3 NearQ_Q215;float Distance_Q215;Min_Segment_Distance_B215(Left_Index_Q214,Left_Index_Middle_Q214,vPosition,cameraPosition,NearP_Q215,NearQ_Q215,Distance_Q215);vec3 NearP_Q213;vec3 NearQ_Q213;float Distance_Q213;Min_Segment_Distance_B215(Right_Index_Q214,Right_Index_Middle_Q214,vPosition,cameraPosition,NearP_Q213,NearQ_Q213,Distance_Q213);vec3 Reflected_Q197=reflect(Incident_Q189,New_Normal_Q229);vec4 Product_Q253=Linear_Q196*vec4(1,1,1,1);vec4 Result_Q282;Rim_Light_B282(Normalized_Q257,Normalized_Q188,Incident_Q220,_Rim_Intensity_,_Rim_Texture_,Result_Q282);float Dot_Q222=dot(Incident_Q220, Normalized_Q221);float MaxAB_Q273=max(Reflect_Q272,Product_Q275);float NotInShadow_Q217;
#if OCCLUSION_ENABLED
FingerOcclusion_B217(_Width_,Distance_Q215,_Fuzz_,_Min_Fuzz_,vPosition,vBinormal,NearP_Q215,_Clip_Fade_,NotInShadow_Q217);
#else
NotInShadow_Q217=1.0;
#endif
float NotInShadow_Q218;
#if OCCLUSION_ENABLED
FingerOcclusion_B218(_Width_,Distance_Q213,_Fuzz_,_Min_Fuzz_,vPosition,vBinormal,NearP_Q213,_Clip_Fade_,NotInShadow_Q218);
#else
NotInShadow_Q218=1.0;
#endif
vec4 Reflected_Color_Q201;vec4 Indirect_Diffuse_Q201;
#if ENV_ENABLE
Mapped_Environment_B201(_Reflection_Map_,_Indirect_Environment_,Reflected_Q197,Reflected_Color_Q201,Indirect_Diffuse_Q201);
#else
Reflected_Color_Q201=vec4(0,0,0,1);Indirect_Diffuse_Q201=vec4(0,0,0,1);
#endif
vec4 Reflected_Color_Q200;vec4 Indirect_Color_Q200;
#if SKY_ENABLED
Sky_Environment_B200(New_Normal_Q229,Reflected_Q197,Linear_Q193,Linear_Q194,Linear_Q195,_Horizon_Power_,Reflected_Color_Q200,Indirect_Color_Q200);
#else
Reflected_Color_Q200=vec4(0,0,0,1);Indirect_Color_Q200=vec4(0,0,0,1);
#endif
float Hue_Q225;float Saturation_Q225;float Value_Q225;float Alpha_Q225;vec3 HSV_Q225;To_HSV_B225(Product_Q253,Hue_Q225,Saturation_Q225,Value_Q225,Alpha_Q225,HSV_Q225);float Hue_Q277;float Saturation_Q277;float Value_Q277;float Alpha_Q277;vec3 HSV_Q277;To_HSV_B225(Result_Q282,Hue_Q277,Saturation_Q277,Value_Q277,Alpha_Q277,HSV_Q277);float Result_Q260;Code_B260(Dot_Q222,Result_Q260);float AbsA_Q226=abs(Result_Q260);float MinAB_Q208=min(NotInShadow_Q217,NotInShadow_Q218);vec4 Sum_Q198=Reflected_Color_Q201+Reflected_Color_Q200;vec4 Sum_Q199=Indirect_Diffuse_Q201+Indirect_Color_Q200;vec3 HSV_Out_Q276;VaryHSV_B258(HSV_Q277,_Rim_Hue_Shift_,_Rim_Saturation_Shift_,_Rim_Value_Shift_,HSV_Out_Q276);float Out_Q264;Remap_Range_B264(-1.0,1.0,0.0,1.0,Result_Q260,Out_Q264);float Product_Q256;Product_Q256=AbsA_Q226*_Hue_Shift_;float X_Q278;float Y_Q278;float Z_Q278;To_XYZ_B224(HSV_Out_Q276,X_Q278,Y_Q278,Z_Q278);vec2 Vec2_Q262=vec2(Out_Q264,0.5);vec3 HSV_Out_Q258;VaryHSV_B258(HSV_Q225,Product_Q256,_Saturation_Shift_,_Value_Shift_,HSV_Out_Q258);vec4 Color_Q279;From_HSV_B223(X_Q278,Y_Q278,Z_Q278,0.0,Color_Q279);vec4 Color_Q261;
#if IRIDESCENCE_ENABLED
Color_Q261=texture(_Iridescence_Texture_,Vec2_Q262);
#else
Color_Q261=vec4(0,0,0,0);
#endif
float X_Q224;float Y_Q224;float Z_Q224;To_XYZ_B224(HSV_Out_Q258,X_Q224,Y_Q224,Z_Q224);vec4 Result_Q281=_Rim_Intensity_*Color_Q279;vec4 Result_Q263=_Iridescence_Intensity_*Color_Q261;vec4 Color_Q223;From_HSV_B223(X_Q224,Y_Q224,Z_Q224,0.0,Color_Q223);vec4 Result_Q234=Result_Q241+(1.0-Result_Q241.a)*Color_Q223;vec4 Result_Q271;Fragment_Main_B271(_Sun_Intensity_,_Sun_Theta_,_Sun_Phi_,New_Normal_Q229,Result_Q234,MaxAB_Q273,_Shininess_,Incident_Q189,_Horizon_Color_,_Sky_Color_,_Ground_Color_,_Indirect_Diffuse_,_Specular_,_Horizon_Power_,_Reflection_,Sum_Q198,Sum_Q199,_Sharpness_,Result_Q227,_Subsurface_,vec4(0,0,0,0),Result_Q281,Result_Q263,Result_Q271);vec4 Result_Q209;Scale_RGB_B209(Result_Q271,MinAB_Q208,Result_Q209);vec4 sRGB_Q192;FastLinearTosRGB_B192(Result_Q209,sRGB_Q192);vec4 Result_Q181=Blob_Color_Q180+(1.0-Blob_Color_Q180.a)*sRGB_Q192;vec4 Result_Q190=Result_Q181; Result_Q190.a=1.0;vec4 Out_Color=Result_Q190;float Clip_Threshold=0.001;bool To_sRGB=false;gl_FragColor=Out_Color;}`;H.ShadersStore[KLe]||(H.ShadersStore[KLe]=dJe);const qLe="mrdlSliderThumbVertexShader",fJe=`uniform mat4 world;uniform mat4 viewProjection;uniform vec3 cameraPosition;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;
#ifdef TANGENT
attribute vec3 tangent;
#else
const vec3 tangent=vec3(0.);
#endif
uniform float _Radius_;uniform float _Bevel_Front_;uniform float _Bevel_Front_Stretch_;uniform float _Bevel_Back_;uniform float _Bevel_Back_Stretch_;uniform float _Radius_Top_Left_;uniform float _Radius_Top_Right_;uniform float _Radius_Bottom_Left_;uniform float _Radius_Bottom_Right_;uniform bool _Bulge_Enabled_;uniform float _Bulge_Height_;uniform float _Bulge_Radius_;uniform float _Sun_Intensity_;uniform float _Sun_Theta_;uniform float _Sun_Phi_;uniform float _Indirect_Diffuse_;uniform vec4 _Albedo_;uniform float _Specular_;uniform float _Shininess_;uniform float _Sharpness_;uniform float _Subsurface_;uniform vec4 _Left_Color_;uniform vec4 _Right_Color_;uniform float _Reflection_;uniform float _Front_Reflect_;uniform float _Edge_Reflect_;uniform float _Power_;uniform vec4 _Sky_Color_;uniform vec4 _Horizon_Color_;uniform vec4 _Ground_Color_;uniform float _Horizon_Power_;uniform sampler2D _Reflection_Map_;uniform sampler2D _Indirect_Environment_;uniform float _Width_;uniform float _Fuzz_;uniform float _Min_Fuzz_;uniform float _Clip_Fade_;uniform float _Hue_Shift_;uniform float _Saturation_Shift_;uniform float _Value_Shift_;uniform vec3 _Blob_Position_;uniform float _Blob_Intensity_;uniform float _Blob_Near_Size_;uniform float _Blob_Far_Size_;uniform float _Blob_Near_Distance_;uniform float _Blob_Far_Distance_;uniform float _Blob_Fade_Length_;uniform float _Blob_Pulse_;uniform float _Blob_Fade_;uniform sampler2D _Blob_Texture_;uniform vec3 _Blob_Position_2_;uniform float _Blob_Near_Size_2_;uniform float _Blob_Pulse_2_;uniform float _Blob_Fade_2_;uniform vec3 _Left_Index_Pos_;uniform vec3 _Right_Index_Pos_;uniform vec3 _Left_Index_Middle_Pos_;uniform vec3 _Right_Index_Middle_Pos_;uniform sampler2D _Decal_;uniform vec2 _Decal_Scale_XY_;uniform bool _Decal_Front_Only_;uniform float _Rim_Intensity_;uniform sampler2D _Rim_Texture_;uniform float _Rim_Hue_Shift_;uniform float _Rim_Saturation_Shift_;uniform float _Rim_Value_Shift_;uniform float _Iridescence_Intensity_;uniform sampler2D _Iridescence_Texture_;uniform bool Use_Global_Left_Index;uniform bool Use_Global_Right_Index;uniform vec4 Global_Left_Index_Tip_Position;uniform vec4 Global_Right_Index_Tip_Position;uniform vec4 Global_Left_Thumb_Tip_Position;uniform vec4 Global_Right_Thumb_Tip_Position;uniform float Global_Left_Index_Tip_Proximity;uniform float Global_Right_Index_Tip_Proximity;varying vec3 vPosition;varying vec3 vNormal;varying vec2 vUV;varying vec3 vTangent;varying vec3 vBinormal;varying vec4 vColor;varying vec4 vExtra1;varying vec4 vExtra2;varying vec4 vExtra3;void Object_To_World_Pos_B162(
vec3 Pos_Object,
out vec3 Pos_World)
{Pos_World=(world*vec4(Pos_Object,1.0)).xyz;}
void Object_To_World_Normal_B182(
vec3 Nrm_Object,
out vec3 Nrm_World)
{Nrm_World=(vec4(Nrm_Object,0.0)).xyz;}
void Blob_Vertex_B173(
vec3 Position,
vec3 Normal,
vec3 Tangent,
vec3 Bitangent,
vec3 Blob_Position,
float Intensity,
float Blob_Near_Size,
float Blob_Far_Size,
float Blob_Near_Distance,
float Blob_Far_Distance,
float Blob_Fade_Length,
float Blob_Pulse,
float Blob_Fade,
out vec4 Blob_Info)
{vec3 blob= (Use_Global_Left_Index ? Global_Left_Index_Tip_Position.xyz : Blob_Position);vec3 delta=blob-Position;float dist=dot(Normal,delta);float lerpValue=clamp((abs(dist)-Blob_Near_Distance)/(Blob_Far_Distance-Blob_Near_Distance),0.0,1.0);float fadeValue=1.0-clamp((abs(dist)-Blob_Far_Distance)/Blob_Fade_Length,0.0,1.0);float size=Blob_Near_Size+(Blob_Far_Size-Blob_Near_Size)*lerpValue;vec2 blobXY=vec2(dot(delta,Tangent),dot(delta,Bitangent))/(0.0001+size);float Fade=fadeValue*Intensity*Blob_Fade;float Distance=(lerpValue*0.5+0.5)*(1.0-Blob_Pulse);Blob_Info=vec4(blobXY.x,blobXY.y,Distance,Fade);}
void Blob_Vertex_B174(
vec3 Position,
vec3 Normal,
vec3 Tangent,
vec3 Bitangent,
vec3 Blob_Position,
float Intensity,
float Blob_Near_Size,
float Blob_Far_Size,
float Blob_Near_Distance,
float Blob_Far_Distance,
float Blob_Fade_Length,
float Blob_Pulse,
float Blob_Fade,
out vec4 Blob_Info)
{vec3 blob= (Use_Global_Right_Index ? Global_Right_Index_Tip_Position.xyz : Blob_Position);vec3 delta=blob-Position;float dist=dot(Normal,delta);float lerpValue=clamp((abs(dist)-Blob_Near_Distance)/(Blob_Far_Distance-Blob_Near_Distance),0.0,1.0);float fadeValue=1.0-clamp((abs(dist)-Blob_Far_Distance)/Blob_Fade_Length,0.0,1.0);float size=Blob_Near_Size+(Blob_Far_Size-Blob_Near_Size)*lerpValue;vec2 blobXY=vec2(dot(delta,Tangent),dot(delta,Bitangent))/(0.0001+size);float Fade=fadeValue*Intensity*Blob_Fade;float Distance=(lerpValue*0.5+0.5)*(1.0-Blob_Pulse);Blob_Info=vec4(blobXY.x,blobXY.y,Distance,Fade);}
void Move_Verts_B280(
float Anisotropy,
vec3 P,
float Radius,
float Bevel,
vec3 Normal_Object,
float ScaleZ,
float Stretch,
out vec3 New_P,
out vec2 New_UV,
out float Radial_Gradient,
out vec3 Radial_Dir,
out vec3 New_Normal)
{vec2 UV=P.xy*2.0+0.5;vec2 center=clamp(UV,0.0,1.0);vec2 delta=UV-center;float deltad=(length(delta)*2.0);float f=(Bevel+(Radius-Bevel)*Stretch)/Radius;float innerd=clamp(deltad*2.0,0.0,1.0);float outerd=clamp(deltad*2.0-1.0,0.0,1.0);float bevelAngle=outerd*3.14159*0.5;float sinb=sin(bevelAngle);float cosb=cos(bevelAngle);float beveld=(1.0-f)*innerd+f*sinb;float br=outerd;vec2 r2=2.0*vec2(Radius/Anisotropy,Radius);float dir=P.z<0.0001 ? 1.0 : -1.0;New_UV=center+r2*((0.5-center)+normalize(delta+vec2(0.0,0.000001))*beveld*0.5);New_P=vec3(New_UV-0.5,P.z+dir*(1.0-cosb)*Bevel*ScaleZ);Radial_Gradient=clamp((deltad-0.5)*2.0,0.0,1.0);Radial_Dir=vec3(delta*r2,0.0);vec3 beveledNormal=cosb*Normal_Object+sinb*vec3(delta.x,delta.y,0.0);New_Normal=Normal_Object.z==0.0 ? Normal_Object : beveledNormal;}
void Object_To_World_Dir_B210(
vec3 Dir_Object,
out vec3 Normal_World,
out vec3 Normal_World_N,
out float Normal_Length)
{Normal_World=(world*vec4(Dir_Object,0.0)).xyz;Normal_Length=length(Normal_World);Normal_World_N=Normal_World/Normal_Length;}
void To_XYZ_B228(
vec3 Vec3,
out float X,
out float Y,
out float Z)
{X=Vec3.x;Y=Vec3.y;Z=Vec3.z;}
void Conditional_Float_B243(
bool Which,
float If_True,
float If_False,
out float Result)
{Result=Which ? If_True : If_False;}
void Object_To_World_Dir_B178(
vec3 Dir_Object,
out vec3 Binormal_World,
out vec3 Binormal_World_N,
out float Binormal_Length)
{Binormal_World=(world*vec4(Dir_Object,0.0)).xyz;Binormal_Length=length(Binormal_World);Binormal_World_N=Binormal_World/Binormal_Length;}
void Pick_Radius_B219(
float Radius,
float Radius_Top_Left,
float Radius_Top_Right,
float Radius_Bottom_Left,
float Radius_Bottom_Right,
vec3 Position,
out float Result)
{bool whichY=Position.y>0.0;Result=Position.x<0.0 ? (whichY ? Radius_Top_Left : Radius_Bottom_Left) : (whichY ? Radius_Top_Right : Radius_Bottom_Right);Result*=Radius;}
void Conditional_Float_B186(
bool Which,
float If_True,
float If_False,
out float Result)
{Result=Which ? If_True : If_False;}
void Greater_Than_B187(
float Left,
float Right,
out bool Not_Greater_Than,
out bool Greater_Than)
{Greater_Than=Left>Right;Not_Greater_Than=!Greater_Than;}
void Remap_Range_B255(
float In_Min,
float In_Max,
float Out_Min,
float Out_Max,
float In,
out float Out)
{Out=mix(Out_Min,Out_Max,clamp((In-In_Min)/(In_Max-In_Min),0.0,1.0));}
void main()
{vec2 XY_Q235;XY_Q235=(uv-vec2(0.5,0.5))*_Decal_Scale_XY_+vec2(0.5,0.5);vec3 Tangent_World_Q177;vec3 Tangent_World_N_Q177;float Tangent_Length_Q177;Tangent_World_Q177=(world*vec4(vec3(1,0,0),0.0)).xyz;Tangent_Length_Q177=length(Tangent_World_Q177);Tangent_World_N_Q177=Tangent_World_Q177/Tangent_Length_Q177;vec3 Normal_World_Q210;vec3 Normal_World_N_Q210;float Normal_Length_Q210;Object_To_World_Dir_B210(vec3(0,0,1),Normal_World_Q210,Normal_World_N_Q210,Normal_Length_Q210);float X_Q228;float Y_Q228;float Z_Q228;To_XYZ_B228(position,X_Q228,Y_Q228,Z_Q228);vec3 Nrm_World_Q176;Nrm_World_Q176=normalize((world*vec4(normal,0.0)).xyz);vec3 Binormal_World_Q178;vec3 Binormal_World_N_Q178;float Binormal_Length_Q178;Object_To_World_Dir_B178(vec3(0,1,0),Binormal_World_Q178,Binormal_World_N_Q178,Binormal_Length_Q178);float Anisotropy_Q179=Tangent_Length_Q177/Binormal_Length_Q178;float Result_Q219;Pick_Radius_B219(_Radius_,_Radius_Top_Left_,_Radius_Top_Right_,_Radius_Bottom_Left_,_Radius_Bottom_Right_,position,Result_Q219);float Anisotropy_Q203=Binormal_Length_Q178/Normal_Length_Q210;bool Not_Greater_Than_Q187;bool Greater_Than_Q187;Greater_Than_B187(Z_Q228,0.0,Not_Greater_Than_Q187,Greater_Than_Q187);vec4 Linear_Q251;Linear_Q251.rgb=clamp(_Left_Color_.rgb*_Left_Color_.rgb,0.0,1.0);Linear_Q251.a=_Left_Color_.a;vec4 Linear_Q252;Linear_Q252.rgb=clamp(_Right_Color_.rgb*_Right_Color_.rgb,0.0,1.0);Linear_Q252.a=_Right_Color_.a;vec3 Difference_Q211=vec3(0,0,0)-Normal_World_N_Q210;vec4 Out_Color_Q184=vec4(X_Q228,Y_Q228,Z_Q228,1);float Result_Q186;Conditional_Float_B186(Greater_Than_Q187,_Bevel_Back_,_Bevel_Front_,Result_Q186);float Result_Q244;Conditional_Float_B186(Greater_Than_Q187,_Bevel_Back_Stretch_,_Bevel_Front_Stretch_,Result_Q244);vec3 New_P_Q280;vec2 New_UV_Q280;float Radial_Gradient_Q280;vec3 Radial_Dir_Q280;vec3 New_Normal_Q280;Move_Verts_B280(Anisotropy_Q179,position,Result_Q219,Result_Q186,normal,Anisotropy_Q203,Result_Q244,New_P_Q280,New_UV_Q280,Radial_Gradient_Q280,Radial_Dir_Q280,New_Normal_Q280);float X_Q248;float Y_Q248;X_Q248=New_UV_Q280.x;Y_Q248=New_UV_Q280.y;vec3 Pos_World_Q162;Object_To_World_Pos_B162(New_P_Q280,Pos_World_Q162);vec3 Nrm_World_Q182;Object_To_World_Normal_B182(New_Normal_Q280,Nrm_World_Q182);vec4 Blob_Info_Q173;
#if BLOB_ENABLE
Blob_Vertex_B173(Pos_World_Q162,Nrm_World_Q176,Tangent_World_N_Q177,Binormal_World_N_Q178,_Blob_Position_,_Blob_Intensity_,_Blob_Near_Size_,_Blob_Far_Size_,_Blob_Near_Distance_,_Blob_Far_Distance_,_Blob_Fade_Length_,_Blob_Pulse_,_Blob_Fade_,Blob_Info_Q173);
#else
Blob_Info_Q173=vec4(0,0,0,0);
#endif
vec4 Blob_Info_Q174;
#if BLOB_ENABLE_2
Blob_Vertex_B174(Pos_World_Q162,Nrm_World_Q176,Tangent_World_N_Q177,Binormal_World_N_Q178,_Blob_Position_2_,_Blob_Intensity_,_Blob_Near_Size_2_,_Blob_Far_Size_,_Blob_Near_Distance_,_Blob_Far_Distance_,_Blob_Fade_Length_,_Blob_Pulse_2_,_Blob_Fade_2_,Blob_Info_Q174);
#else
Blob_Info_Q174=vec4(0,0,0,0);
#endif
float Out_Q255;Remap_Range_B255(0.0,1.0,0.0,1.0,X_Q248,Out_Q255);float X_Q236;float Y_Q236;float Z_Q236;To_XYZ_B228(Nrm_World_Q182,X_Q236,Y_Q236,Z_Q236);vec4 Color_At_T_Q247=mix(Linear_Q251,Linear_Q252,Out_Q255);float Minus_F_Q237=-Z_Q236;float R_Q249;float G_Q249;float B_Q249;float A_Q249;R_Q249=Color_At_T_Q247.r; G_Q249=Color_At_T_Q247.g; B_Q249=Color_At_T_Q247.b; A_Q249=Color_At_T_Q247.a;float ClampF_Q238=clamp(0.0,Minus_F_Q237,1.0);float Result_Q243;Conditional_Float_B243(_Decal_Front_Only_,ClampF_Q238,1.0,Result_Q243);vec4 Vec4_Q239=vec4(Result_Q243,Radial_Gradient_Q280,G_Q249,B_Q249);vec3 Position=Pos_World_Q162;vec3 Normal=Nrm_World_Q182;vec2 UV=XY_Q235;vec3 Tangent=Tangent_World_N_Q177;vec3 Binormal=Difference_Q211;vec4 Color=Out_Color_Q184;vec4 Extra1=Vec4_Q239;vec4 Extra2=Blob_Info_Q173;vec4 Extra3=Blob_Info_Q174;gl_Position=viewProjection*vec4(Position,1);vPosition=Position;vNormal=Normal;vUV=UV;vTangent=Tangent;vBinormal=Binormal;vColor=Color;vExtra1=Extra1;vExtra2=Extra2;vExtra3=Extra3;}`;H.ShadersStore[qLe]||(H.ShadersStore[qLe]=fJe);class pJe extends Br{constructor(){super(),this.SKY_ENABLED=!0,this.BLOB_ENABLE_2=!0,this.IRIDESCENCE_ENABLED=!0,this._needNormals=!0,this._needUVs=!0,this.rebuild()}}class Es extends po{constructor(e,t){super(e,t),this.radius=.157,this.bevelFront=.065,this.bevelFrontStretch=.077,this.bevelBack=.031,this.bevelBackStretch=0,this.radiusTopLeft=1,this.radiusTopRight=1,this.radiusBottomLeft=1,this.radiusBottomRight=1,this.bulgeEnabled=!1,this.bulgeHeight=-.323,this.bulgeRadius=.73,this.sunIntensity=2,this.sunTheta=.937,this.sunPhi=.555,this.indirectDiffuse=1,this.albedo=new St(.0117647,.505882,.996078,1),this.specular=0,this.shininess=10,this.sharpness=0,this.subsurface=.31,this.leftGradientColor=new St(.0117647,.505882,.996078,1),this.rightGradientColor=new St(.0117647,.505882,.996078,1),this.reflection=.749,this.frontReflect=0,this.edgeReflect=.09,this.power=8.1,this.skyColor=new St(.0117647,.960784,.996078,1),this.horizonColor=new St(.0117647,.333333,.996078,1),this.groundColor=new St(0,.254902,.996078,1),this.horizonPower=1,this.width=.02,this.fuzz=.5,this.minFuzz=.001,this.clipFade=.01,this.hueShift=0,this.saturationShift=0,this.valueShift=0,this.blobPosition=new P(0,0,.1),this.blobIntensity=.5,this.blobNearSize=.01,this.blobFarSize=.03,this.blobNearDistance=0,this.blobFarDistance=.08,this.blobFadeLength=.576,this.blobPulse=0,this.blobFade=1,this.blobPosition2=new P(.2,0,.1),this.blobNearSize2=.01,this.blobPulse2=0,this.blobFade2=1,this.blobTexture=new be("",this.getScene()),this.leftIndexPosition=new P(0,0,1),this.rightIndexPosition=new P(-1,-1,-1),this.leftIndexMiddlePosition=new P(0,0,0),this.rightIndexMiddlePosition=new P(0,0,0),this.decalScaleXY=new Ue(1.5,1.5),this.decalFrontOnly=!0,this.rimIntensity=.287,this.rimHueShift=0,this.rimSaturationShift=0,this.rimValueShift=-1,this.iridescenceIntensity=0,this.useGlobalLeftIndex=1,this.useGlobalRightIndex=1,this.globalLeftIndexTipProximity=0,this.globalRightIndexTipProximity=0,this.globalLeftIndexTipPosition=new Yt(.5,0,-.55,1),this.globaRightIndexTipPosition=new Yt(0,0,0,1),this.globalLeftThumbTipPosition=new Yt(.5,0,-.55,1),this.globalRightThumbTipPosition=new Yt(0,0,0,1),this.globalLeftIndexMiddlePosition=new Yt(.5,0,-.55,1),this.globalRightIndexMiddlePosition=new Yt(0,0,0,1),this.alphaMode=ze.ALPHA_DISABLE,this.backFaceCulling=!1;const i=Le.GetAssetUrl(Es.BLUE_GRADIENT_TEXTURE_URL);this._blueGradientTexture=new be(i,t,!0,!1,be.NEAREST_SAMPLINGMODE),this._decalTexture=new be("",this.getScene()),this._reflectionMapTexture=new be("",this.getScene()),this._indirectEnvTexture=new be("",this.getScene())}needAlphaBlending(){return!1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t){const i=t._drawWrapper;if(this.isFrozen&&i.effect&&i._wasPreviouslyReady)return!0;t.materialDefines||(t.materialDefines=new pJe);const s=t.materialDefines,r=this.getScene();if(this._isReadyForSubMesh(t))return!0;const n=r.getEngine();if(zo(e,s,!1,!1),s.isDirty){s.markAsProcessed(),r.resetCachedMaterial();const o=new Ra;s.FOG&&o.addFallback(1,"FOG"),Ql(s,o),s.IMAGEPROCESSINGPOSTPROCESS=r.imageProcessingConfiguration.applyByPostProcess;const l=[q.PositionKind];s.NORMAL&&l.push(q.NormalKind),s.UV1&&l.push(q.UVKind),s.UV2&&l.push(q.UV2Kind),s.VERTEXCOLOR&&l.push(q.ColorKind),s.TANGENT&&l.push(q.TangentKind),Qo(l,s);const c="mrdlSliderThumb",u=s.toString(),f=["world","viewProjection","cameraPosition","_Radius_","_Bevel_Front_","_Bevel_Front_Stretch_","_Bevel_Back_","_Bevel_Back_Stretch_","_Radius_Top_Left_","_Radius_Top_Right_","_Radius_Bottom_Left_","_Radius_Bottom_Right_","_Bulge_Enabled_","_Bulge_Height_","_Bulge_Radius_","_Sun_Intensity_","_Sun_Theta_","_Sun_Phi_","_Indirect_Diffuse_","_Albedo_","_Specular_","_Shininess_","_Sharpness_","_Subsurface_","_Left_Color_","_Right_Color_","_Reflection_","_Front_Reflect_","_Edge_Reflect_","_Power_","_Sky_Color_","_Horizon_Color_","_Ground_Color_","_Horizon_Power_","_Reflection_Map_","_Indirect_Environment_","_Width_","_Fuzz_","_Min_Fuzz_","_Clip_Fade_","_Hue_Shift_","_Saturation_Shift_","_Value_Shift_","_Blob_Position_","_Blob_Intensity_","_Blob_Near_Size_","_Blob_Far_Size_","_Blob_Near_Distance_","_Blob_Far_Distance_","_Blob_Fade_Length_","_Blob_Pulse_","_Blob_Fade_","_Blob_Texture_","_Blob_Position_2_","_Blob_Near_Size_2_","_Blob_Pulse_2_","_Blob_Fade_2_","_Left_Index_Pos_","_Right_Index_Pos_","_Left_Index_Middle_Pos_","_Right_Index_Middle_Pos_","_Decal_","_Decal_Scale_XY_","_Decal_Front_Only_","_Rim_Intensity_","_Rim_Texture_","_Rim_Hue_Shift_","_Rim_Saturation_Shift_","_Rim_Value_Shift_","_Iridescence_Intensity_","_Iridescence_Texture_","Use_Global_Left_Index","Use_Global_Right_Index","Global_Left_Index_Tip_Position","Global_Right_Index_Tip_Position","Global_Left_Thumb_Tip_Position","Global_Right_Thumb_Tip_Position","Global_Left_Index_Middle_Position;","Global_Right_Index_Middle_Position","Global_Left_Index_Tip_Proximity","Global_Right_Index_Tip_Proximity"],p=["_Rim_Texture_","_Iridescence_Texture_"],m=[];gl({uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:s,maxSimultaneousLights:4}),t.setEffect(r.getEngine().createEffect(c,{attributes:l,uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:u,fallbacks:o,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:4}},n),s)}return!t.effect||!t.effect.isReady()?!1:(s._renderId=r.getRenderId(),i._wasPreviouslyReady=!0,!0)}bindForSubMesh(e,t,i){if(!i.materialDefines)return;const r=i.effect;r&&(this._activeEffect=r,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",this.getScene().getTransformMatrix()),this._activeEffect.setVector3("cameraPosition",this.getScene().activeCamera.position),this._activeEffect.setFloat("_Radius_",this.radius),this._activeEffect.setFloat("_Bevel_Front_",this.bevelFront),this._activeEffect.setFloat("_Bevel_Front_Stretch_",this.bevelFrontStretch),this._activeEffect.setFloat("_Bevel_Back_",this.bevelBack),this._activeEffect.setFloat("_Bevel_Back_Stretch_",this.bevelBackStretch),this._activeEffect.setFloat("_Radius_Top_Left_",this.radiusTopLeft),this._activeEffect.setFloat("_Radius_Top_Right_",this.radiusTopRight),this._activeEffect.setFloat("_Radius_Bottom_Left_",this.radiusBottomLeft),this._activeEffect.setFloat("_Radius_Bottom_Right_",this.radiusBottomRight),this._activeEffect.setFloat("_Bulge_Enabled_",this.bulgeEnabled?1:0),this._activeEffect.setFloat("_Bulge_Height_",this.bulgeHeight),this._activeEffect.setFloat("_Bulge_Radius_",this.bulgeRadius),this._activeEffect.setFloat("_Sun_Intensity_",this.sunIntensity),this._activeEffect.setFloat("_Sun_Theta_",this.sunTheta),this._activeEffect.setFloat("_Sun_Phi_",this.sunPhi),this._activeEffect.setFloat("_Indirect_Diffuse_",this.indirectDiffuse),this._activeEffect.setDirectColor4("_Albedo_",this.albedo),this._activeEffect.setFloat("_Specular_",this.specular),this._activeEffect.setFloat("_Shininess_",this.shininess),this._activeEffect.setFloat("_Sharpness_",this.sharpness),this._activeEffect.setFloat("_Subsurface_",this.subsurface),this._activeEffect.setDirectColor4("_Left_Color_",this.leftGradientColor),this._activeEffect.setDirectColor4("_Right_Color_",this.rightGradientColor),this._activeEffect.setFloat("_Reflection_",this.reflection),this._activeEffect.setFloat("_Front_Reflect_",this.frontReflect),this._activeEffect.setFloat("_Edge_Reflect_",this.edgeReflect),this._activeEffect.setFloat("_Power_",this.power),this._activeEffect.setDirectColor4("_Sky_Color_",this.skyColor),this._activeEffect.setDirectColor4("_Horizon_Color_",this.horizonColor),this._activeEffect.setDirectColor4("_Ground_Color_",this.groundColor),this._activeEffect.setFloat("_Horizon_Power_",this.horizonPower),this._activeEffect.setTexture("_Reflection_Map_",this._reflectionMapTexture),this._activeEffect.setTexture("_Indirect_Environment_",this._indirectEnvTexture),this._activeEffect.setFloat("_Width_",this.width),this._activeEffect.setFloat("_Fuzz_",this.fuzz),this._activeEffect.setFloat("_Min_Fuzz_",this.minFuzz),this._activeEffect.setFloat("_Clip_Fade_",this.clipFade),this._activeEffect.setFloat("_Hue_Shift_",this.hueShift),this._activeEffect.setFloat("_Saturation_Shift_",this.saturationShift),this._activeEffect.setFloat("_Value_Shift_",this.valueShift),this._activeEffect.setVector3("_Blob_Position_",this.blobPosition),this._activeEffect.setFloat("_Blob_Intensity_",this.blobIntensity),this._activeEffect.setFloat("_Blob_Near_Size_",this.blobNearSize),this._activeEffect.setFloat("_Blob_Far_Size_",this.blobFarSize),this._activeEffect.setFloat("_Blob_Near_Distance_",this.blobNearDistance),this._activeEffect.setFloat("_Blob_Far_Distance_",this.blobFarDistance),this._activeEffect.setFloat("_Blob_Fade_Length_",this.blobFadeLength),this._activeEffect.setFloat("_Blob_Pulse_",this.blobPulse),this._activeEffect.setFloat("_Blob_Fade_",this.blobFade),this._activeEffect.setTexture("_Blob_Texture_",this.blobTexture),this._activeEffect.setVector3("_Blob_Position_2_",this.blobPosition2),this._activeEffect.setFloat("_Blob_Near_Size_2_",this.blobNearSize2),this._activeEffect.setFloat("_Blob_Pulse_2_",this.blobPulse2),this._activeEffect.setFloat("_Blob_Fade_2_",this.blobFade2),this._activeEffect.setVector3("_Left_Index_Pos_",this.leftIndexPosition),this._activeEffect.setVector3("_Right_Index_Pos_",this.rightIndexPosition),this._activeEffect.setVector3("_Left_Index_Middle_Pos_",this.leftIndexMiddlePosition),this._activeEffect.setVector3("_Right_Index_Middle_Pos_",this.rightIndexMiddlePosition),this._activeEffect.setTexture("_Decal_",this._decalTexture),this._activeEffect.setVector2("_Decal_Scale_XY_",this.decalScaleXY),this._activeEffect.setFloat("_Decal_Front_Only_",this.decalFrontOnly?1:0),this._activeEffect.setFloat("_Rim_Intensity_",this.rimIntensity),this._activeEffect.setTexture("_Rim_Texture_",this._blueGradientTexture),this._activeEffect.setFloat("_Rim_Hue_Shift_",this.rimHueShift),this._activeEffect.setFloat("_Rim_Saturation_Shift_",this.rimSaturationShift),this._activeEffect.setFloat("_Rim_Value_Shift_",this.rimValueShift),this._activeEffect.setFloat("_Iridescence_Intensity_",this.iridescenceIntensity),this._activeEffect.setTexture("_Iridescence_Texture_",this._blueGradientTexture),this._activeEffect.setFloat("Use_Global_Left_Index",this.useGlobalLeftIndex),this._activeEffect.setFloat("Use_Global_Right_Index",this.useGlobalRightIndex),this._activeEffect.setVector4("Global_Left_Index_Tip_Position",this.globalLeftIndexTipPosition),this._activeEffect.setVector4("Global_Right_Index_Tip_Position",this.globaRightIndexTipPosition),this._activeEffect.setVector4("Global_Left_Thumb_Tip_Position",this.globalLeftThumbTipPosition),this._activeEffect.setVector4("Global_Right_Thumb_Tip_Position",this.globalRightThumbTipPosition),this._activeEffect.setVector4("Global_Left_Index_Middle_Position",this.globalLeftIndexMiddlePosition),this._activeEffect.setVector4("Global_Right_Index_Middle_Position",this.globalRightIndexMiddlePosition),this._activeEffect.setFloat("Global_Left_Index_Tip_Proximity",this.globalLeftIndexTipProximity),this._activeEffect.setFloat("Global_Right_Index_Tip_Proximity",this.globalRightIndexTipProximity),this._afterBind(t,this._activeEffect,i))}getAnimatables(){return[]}dispose(e){super.dispose(e),this._reflectionMapTexture.dispose(),this._indirectEnvTexture.dispose(),this._blueGradientTexture.dispose(),this._decalTexture.dispose()}clone(e){return It.Clone(()=>new Es(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.MRDLSliderThumbMaterial",e}getClassName(){return"MRDLSliderThumbMaterial"}static Parse(e,t,i){return It.Parse(()=>new Es(e.name,t),e,t,i)}}Es.BLUE_GRADIENT_TEXTURE_URL="https://assets.babylonjs.com/core/MRTK/MRDL/mrtk-mrdl-blue-gradient.png",F([G()],Es.prototype,"radius",void 0),F([G()],Es.prototype,"bevelFront",void 0),F([G()],Es.prototype,"bevelFrontStretch",void 0),F([G()],Es.prototype,"bevelBack",void 0),F([G()],Es.prototype,"bevelBackStretch",void 0),F([G()],Es.prototype,"radiusTopLeft",void 0),F([G()],Es.prototype,"radiusTopRight",void 0),F([G()],Es.prototype,"radiusBottomLeft",void 0),F([G()],Es.prototype,"radiusBottomRight",void 0),F([G()],Es.prototype,"bulgeEnabled",void 0),F([G()],Es.prototype,"bulgeHeight",void 0),F([G()],Es.prototype,"bulgeRadius",void 0),F([G()],Es.prototype,"sunIntensity",void 0),F([G()],Es.prototype,"sunTheta",void 0),F([G()],Es.prototype,"sunPhi",void 0),F([G()],Es.prototype,"indirectDiffuse",void 0),F([G()],Es.prototype,"albedo",void 0),F([G()],Es.prototype,"specular",void 0),F([G()],Es.prototype,"shininess",void 0),F([G()],Es.prototype,"sharpness",void 0),F([G()],Es.prototype,"subsurface",void 0),F([G()],Es.prototype,"leftGradientColor",void 0),F([G()],Es.prototype,"rightGradientColor",void 0),F([G()],Es.prototype,"reflection",void 0),F([G()],Es.prototype,"frontReflect",void 0),F([G()],Es.prototype,"edgeReflect",void 0),F([G()],Es.prototype,"power",void 0),F([G()],Es.prototype,"skyColor",void 0),F([G()],Es.prototype,"horizonColor",void 0),F([G()],Es.prototype,"groundColor",void 0),F([G()],Es.prototype,"horizonPower",void 0),F([G()],Es.prototype,"width",void 0),F([G()],Es.prototype,"fuzz",void 0),F([G()],Es.prototype,"minFuzz",void 0),F([G()],Es.prototype,"clipFade",void 0),F([G()],Es.prototype,"hueShift",void 0),F([G()],Es.prototype,"saturationShift",void 0),F([G()],Es.prototype,"valueShift",void 0),F([G()],Es.prototype,"blobPosition",void 0),F([G()],Es.prototype,"blobIntensity",void 0),F([G()],Es.prototype,"blobNearSize",void 0),F([G()],Es.prototype,"blobFarSize",void 0),F([G()],Es.prototype,"blobNearDistance",void 0),F([G()],Es.prototype,"blobFarDistance",void 0),F([G()],Es.prototype,"blobFadeLength",void 0),F([G()],Es.prototype,"blobPulse",void 0),F([G()],Es.prototype,"blobFade",void 0),F([G()],Es.prototype,"blobPosition2",void 0),F([G()],Es.prototype,"blobNearSize2",void 0),F([G()],Es.prototype,"blobPulse2",void 0),F([G()],Es.prototype,"blobFade2",void 0),F([G()],Es.prototype,"blobTexture",void 0),F([G()],Es.prototype,"leftIndexPosition",void 0),F([G()],Es.prototype,"rightIndexPosition",void 0),F([G()],Es.prototype,"leftIndexMiddlePosition",void 0),F([G()],Es.prototype,"rightIndexMiddlePosition",void 0),F([G()],Es.prototype,"decalScaleXY",void 0),F([G()],Es.prototype,"decalFrontOnly",void 0),F([G()],Es.prototype,"rimIntensity",void 0),F([G()],Es.prototype,"rimHueShift",void 0),F([G()],Es.prototype,"rimSaturationShift",void 0),F([G()],Es.prototype,"rimValueShift",void 0),F([G()],Es.prototype,"iridescenceIntensity",void 0),ve("BABYLON.GUI.MRDLSliderThumbMaterial",Es);const QLe="mrdlBackplatePixelShader",mJe=`uniform vec3 cameraPosition;varying vec3 vPosition;varying vec3 vNormal;varying vec2 vUV;varying vec3 vTangent;varying vec3 vBinormal;varying vec4 vExtra1;varying vec4 vExtra2;uniform float _Radius_;uniform float _Line_Width_;uniform bool _Absolute_Sizes_;uniform float _Filter_Width_;uniform vec4 _Base_Color_;uniform vec4 _Line_Color_;uniform float _Radius_Top_Left_;uniform float _Radius_Top_Right_;uniform float _Radius_Bottom_Left_;uniform float _Radius_Bottom_Right_;uniform float _Rate_;uniform vec4 _Highlight_Color_;uniform float _Highlight_Width_;uniform vec4 _Highlight_Transform_;uniform float _Highlight_;uniform float _Iridescence_Intensity_;uniform float _Iridescence_Edge_Intensity_;uniform vec4 _Iridescence_Tint_;uniform sampler2D _Iridescent_Map_;uniform float _Angle_;uniform bool _Reflected_;uniform float _Frequency_;uniform float _Vertical_Offset_;uniform vec4 _Gradient_Color_;uniform vec4 _Top_Left_;uniform vec4 _Top_Right_;uniform vec4 _Bottom_Left_;uniform vec4 _Bottom_Right_;uniform float _Edge_Width_;uniform float _Edge_Power_;uniform float _Line_Gradient_Blend_;uniform float _Fade_Out_;void FastLinearTosRGB_B353(
vec4 Linear,
out vec4 sRGB)
{sRGB.rgb=sqrt(clamp(Linear.rgb,0.0,1.0));sRGB.a=Linear.a;}
void Round_Rect_Fragment_B332(
float Radius,
float Line_Width,
vec4 Line_Color,
float Filter_Width,
vec2 UV,
float Line_Visibility,
vec4 Rect_Parms,
vec4 Fill_Color,
out vec4 Color)
{float d=length(max(abs(UV)-Rect_Parms.xy,0.0));float dx=max(fwidth(d)*Filter_Width,0.00001);float g=min(Rect_Parms.z,Rect_Parms.w);float dgrad=max(fwidth(g)*Filter_Width,0.00001);float Inside_Rect=clamp(g/dgrad,0.0,1.0);float inner=clamp((d+dx*0.5-max(Radius-Line_Width,d-dx*0.5))/dx,0.0,1.0);Color=clamp(mix(Fill_Color,Line_Color,inner),0.0,1.0)*Inside_Rect;}
void Iridescence_B343(
vec3 Position,
vec3 Normal,
vec2 UV,
vec3 Axis,
vec3 Eye,
vec4 Tint,
sampler2D Texture,
bool Reflected,
float Frequency,
float Vertical_Offset,
out vec4 Color)
{vec3 i=normalize(Position-Eye);vec3 r=reflect(i,Normal);float idota=dot(i,Axis);float idotr=dot(i,r);float x=Reflected ? idotr : idota;vec2 xy;xy.x=fract((x*Frequency+1.0)*0.5+UV.y*Vertical_Offset);xy.y=0.5;Color=texture(Texture,xy);Color.rgb*=Tint.rgb;}
void Scale_RGB_B346(
vec4 Color,
float Scalar,
out vec4 Result)
{Result=vec4(Scalar,Scalar,Scalar,1)*Color;}
void Scale_RGB_B344(
float Scalar,
vec4 Color,
out vec4 Result)
{Result=vec4(Scalar,Scalar,Scalar,1)*Color;}
void Line_Fragment_B362(
vec4 Base_Color,
vec4 Highlight_Color,
float Highlight_Width,
vec3 Line_Vertex,
float Highlight,
out vec4 Line_Color)
{float k2=1.0-clamp(abs(Line_Vertex.y/Highlight_Width),0.0,1.0);Line_Color=mix(Base_Color,Highlight_Color,Highlight*k2);}
void Edge_B356(
vec4 RectParms,
float Radius,
float Line_Width,
vec2 UV,
float Edge_Width,
float Edge_Power,
out float Result)
{float d=length(max(abs(UV)-RectParms.xy,0.0));float edge=1.0-clamp((1.0-d/(Radius-Line_Width))/Edge_Width,0.0,1.0);Result=pow(edge,Edge_Power);}
void Gradient_B355(
vec4 Gradient_Color,
vec4 Top_Left,
vec4 Top_Right,
vec4 Bottom_Left,
vec4 Bottom_Right,
vec2 UV,
out vec4 Result)
{vec3 top=Top_Left.rgb+(Top_Right.rgb-Top_Left.rgb)*UV.x;vec3 bottom=Bottom_Left.rgb+(Bottom_Right.rgb-Bottom_Left.rgb)*UV.x;Result.rgb=Gradient_Color.rgb*(bottom+(top-bottom)*UV.y);Result.a=1.0;}
void main()
{float X_Q338;float Y_Q338;float Z_Q338;float W_Q338;X_Q338=vExtra2.x;Y_Q338=vExtra2.y;Z_Q338=vExtra2.z;W_Q338=vExtra2.w;vec4 Color_Q343;
#if IRIDESCENCE_ENABLE
Iridescence_B343(vPosition,vNormal,vUV,vBinormal,cameraPosition,_Iridescence_Tint_,_Iridescent_Map_,_Reflected_,_Frequency_,_Vertical_Offset_,Color_Q343);
#else
Color_Q343=vec4(0,0,0,0);
#endif
vec4 Result_Q344;Scale_RGB_B344(_Iridescence_Intensity_,Color_Q343,Result_Q344);vec4 Line_Color_Q362;Line_Fragment_B362(_Line_Color_,_Highlight_Color_,_Highlight_Width_,vTangent,_Highlight_,Line_Color_Q362);float Result_Q356;
#if EDGE_ONLY
Edge_B356(vExtra1,Z_Q338,W_Q338,vUV,_Edge_Width_,_Edge_Power_,Result_Q356);
#else
Result_Q356=1.0;
#endif
vec2 Vec2_Q339=vec2(X_Q338,Y_Q338);vec4 Result_Q355;Gradient_B355(_Gradient_Color_,_Top_Left_,_Top_Right_,_Bottom_Left_,_Bottom_Right_,Vec2_Q339,Result_Q355);vec4 Linear_Q348;Linear_Q348.rgb=clamp(Result_Q355.rgb*Result_Q355.rgb,0.0,1.0);Linear_Q348.a=Result_Q355.a;vec4 Result_Q346;Scale_RGB_B346(Linear_Q348,Result_Q356,Result_Q346);vec4 Sum_Q345=Result_Q346+Result_Q344;vec4 Color_At_T_Q347=mix(Line_Color_Q362,Result_Q346,_Line_Gradient_Blend_);vec4 Base_And_Iridescent_Q350;Base_And_Iridescent_Q350=_Base_Color_+vec4(Sum_Q345.rgb,0.0);vec4 Sum_Q349=Color_At_T_Q347+_Iridescence_Edge_Intensity_*Color_Q343;vec4 Result_Q351=Sum_Q349; Result_Q351.a=1.0;vec4 Color_Q332;Round_Rect_Fragment_B332(Z_Q338,W_Q338,Result_Q351,_Filter_Width_,vUV,1.0,vExtra1,Base_And_Iridescent_Q350,Color_Q332);vec4 Result_Q354=_Fade_Out_*Color_Q332;vec4 sRGB_Q353;FastLinearTosRGB_B353(Result_Q354,sRGB_Q353);vec4 Out_Color=sRGB_Q353;float Clip_Threshold=0.001;bool To_sRGB=false;gl_FragColor=Out_Color;}`;H.ShadersStore[QLe]||(H.ShadersStore[QLe]=mJe);const JLe="mrdlBackplateVertexShader",gJe=`uniform mat4 world;uniform mat4 viewProjection;uniform vec3 cameraPosition;attribute vec3 position;attribute vec3 normal;attribute vec3 tangent;uniform float _Radius_;uniform float _Line_Width_;uniform bool _Absolute_Sizes_;uniform float _Filter_Width_;uniform vec4 _Base_Color_;uniform vec4 _Line_Color_;uniform float _Radius_Top_Left_;uniform float _Radius_Top_Right_;uniform float _Radius_Bottom_Left_;uniform float _Radius_Bottom_Right_;uniform float _Rate_;uniform vec4 _Highlight_Color_;uniform float _Highlight_Width_;uniform vec4 _Highlight_Transform_;uniform float _Highlight_;uniform float _Iridescence_Intensity_;uniform float _Iridescence_Edge_Intensity_;uniform vec4 _Iridescence_Tint_;uniform sampler2D _Iridescent_Map_;uniform float _Angle_;uniform bool _Reflected_;uniform float _Frequency_;uniform float _Vertical_Offset_;uniform vec4 _Gradient_Color_;uniform vec4 _Top_Left_;uniform vec4 _Top_Right_;uniform vec4 _Bottom_Left_;uniform vec4 _Bottom_Right_;uniform float _Edge_Width_;uniform float _Edge_Power_;uniform float _Line_Gradient_Blend_;uniform float _Fade_Out_;varying vec3 vPosition;varying vec3 vNormal;varying vec2 vUV;varying vec3 vTangent;varying vec3 vBinormal;varying vec4 vExtra1;varying vec4 vExtra2;void Object_To_World_Pos_B314(
vec3 Pos_Object,
out vec3 Pos_World)
{Pos_World=(world*vec4(Pos_Object,1.0)).xyz;}
void Round_Rect_Vertex_B357(
vec2 UV,
float Radius,
float Margin,
float Anisotropy,
float Gradient1,
float Gradient2,
vec3 Normal,
vec4 Color_Scale_Translate,
out vec2 Rect_UV,
out vec4 Rect_Parms,
out vec2 Scale_XY,
out vec2 Line_UV,
out vec2 Color_UV_Info)
{Scale_XY=vec2(Anisotropy,1.0);Line_UV=(UV-vec2(0.5,0.5));Rect_UV=Line_UV*Scale_XY;Rect_Parms.xy=Scale_XY*0.5-vec2(Radius,Radius)-vec2(Margin,Margin);Rect_Parms.z=Gradient1; 
Rect_Parms.w=Gradient2;Color_UV_Info=(Line_UV+vec2(0.5,0.5))*Color_Scale_Translate.xy+Color_Scale_Translate.zw;}
void Line_Vertex_B333(
vec2 Scale_XY,
vec2 UV,
float Time,
float Rate,
vec4 Highlight_Transform,
out vec3 Line_Vertex)
{float angle2=(Rate*Time)*2.0*3.1416;float sinAngle2=sin(angle2);float cosAngle2=cos(angle2);vec2 xformUV=UV*Highlight_Transform.xy+Highlight_Transform.zw;Line_Vertex.x=0.0;Line_Vertex.y=cosAngle2*xformUV.x-sinAngle2*xformUV.y;Line_Vertex.z=0.0; }
void PickDir_B334(
float Degrees,
vec3 DirX,
vec3 DirY,
out vec3 Dir)
{float a=Degrees*3.14159/180.0;Dir=cos(a)*DirX+sin(a)*DirY;}
void Move_Verts_B327(
float Anisotropy,
vec3 P,
float Radius,
out vec3 New_P,
out vec2 New_UV,
out float Radial_Gradient,
out vec3 Radial_Dir)
{vec2 UV=P.xy*2.0+0.5;vec2 center=clamp(UV,0.0,1.0);vec2 delta=UV-center;vec2 r2=2.0*vec2(Radius/Anisotropy,Radius);New_UV=center+r2*(UV-2.0*center+0.5);New_P=vec3(New_UV-0.5,P.z);Radial_Gradient=1.0-length(delta)*2.0;Radial_Dir=vec3(delta*r2,0.0);}
void Pick_Radius_B336(
float Radius,
float Radius_Top_Left,
float Radius_Top_Right,
float Radius_Bottom_Left,
float Radius_Bottom_Right,
vec3 Position,
out float Result)
{bool whichY=Position.y>0.0;Result=Position.x<0.0 ? (whichY ? Radius_Top_Left : Radius_Bottom_Left) : (whichY ? Radius_Top_Right : Radius_Bottom_Right);Result*=Radius;}
void Edge_AA_Vertex_B328(
vec3 Position_World,
vec3 Position_Object,
vec3 Normal_Object,
vec3 Eye,
float Radial_Gradient,
vec3 Radial_Dir,
vec3 Tangent,
out float Gradient1,
out float Gradient2)
{vec3 I=(Eye-Position_World);vec3 T=(vec4(Tangent,0.0)).xyz;float g=(dot(T,I)<0.0) ? 0.0 : 1.0;if (Normal_Object.z==0.0) { 
Gradient1=Position_Object.z>0.0 ? g : 1.0;Gradient2=Position_Object.z>0.0 ? 1.0 : g;} else {Gradient1=g+(1.0-g)*(Radial_Gradient);Gradient2=1.0;}}
void Object_To_World_Dir_B330(
vec3 Dir_Object,
out vec3 Binormal_World,
out vec3 Binormal_World_N,
out float Binormal_Length)
{Binormal_World=(world*vec4(Dir_Object,0.0)).xyz;Binormal_Length=length(Binormal_World);Binormal_World_N=Binormal_World/Binormal_Length;}
void RelativeOrAbsoluteDetail_B341(
float Nominal_Radius,
float Nominal_LineWidth,
bool Absolute_Measurements,
float Height,
out float Radius,
out float Line_Width)
{float scale=Absolute_Measurements ? 1.0/Height : 1.0;Radius=Nominal_Radius*scale;Line_Width=Nominal_LineWidth*scale;}
void main()
{vec3 Nrm_World_Q326;Nrm_World_Q326=normalize((world*vec4(normal,0.0)).xyz);vec3 Tangent_World_Q329;vec3 Tangent_World_N_Q329;float Tangent_Length_Q329;Tangent_World_Q329=(world*vec4(vec3(1,0,0),0.0)).xyz;Tangent_Length_Q329=length(Tangent_World_Q329);Tangent_World_N_Q329=Tangent_World_Q329/Tangent_Length_Q329;vec3 Binormal_World_Q330;vec3 Binormal_World_N_Q330;float Binormal_Length_Q330;Object_To_World_Dir_B330(vec3(0,1,0),Binormal_World_Q330,Binormal_World_N_Q330,Binormal_Length_Q330);float Radius_Q341;float Line_Width_Q341;RelativeOrAbsoluteDetail_B341(_Radius_,_Line_Width_,_Absolute_Sizes_,Binormal_Length_Q330,Radius_Q341,Line_Width_Q341);vec3 Dir_Q334;PickDir_B334(_Angle_,Tangent_World_N_Q329,Binormal_World_N_Q330,Dir_Q334);float Result_Q336;Pick_Radius_B336(Radius_Q341,_Radius_Top_Left_,_Radius_Top_Right_,_Radius_Bottom_Left_,_Radius_Bottom_Right_,position,Result_Q336);float Anisotropy_Q331=Tangent_Length_Q329/Binormal_Length_Q330;vec4 Out_Color_Q337=vec4(Result_Q336,Line_Width_Q341,0,1);vec3 New_P_Q327;vec2 New_UV_Q327;float Radial_Gradient_Q327;vec3 Radial_Dir_Q327;Move_Verts_B327(Anisotropy_Q331,position,Result_Q336,New_P_Q327,New_UV_Q327,Radial_Gradient_Q327,Radial_Dir_Q327);vec3 Pos_World_Q314;Object_To_World_Pos_B314(New_P_Q327,Pos_World_Q314);float Gradient1_Q328;float Gradient2_Q328;
#if SMOOTH_EDGES
Edge_AA_Vertex_B328(Pos_World_Q314,position,normal,cameraPosition,Radial_Gradient_Q327,Radial_Dir_Q327,tangent,Gradient1_Q328,Gradient2_Q328);
#else
Gradient1_Q328=1.0;Gradient2_Q328=1.0;
#endif
vec2 Rect_UV_Q357;vec4 Rect_Parms_Q357;vec2 Scale_XY_Q357;vec2 Line_UV_Q357;vec2 Color_UV_Info_Q357;Round_Rect_Vertex_B357(New_UV_Q327,Result_Q336,0.0,Anisotropy_Q331,Gradient1_Q328,Gradient2_Q328,normal,vec4(1,1,0,0),Rect_UV_Q357,Rect_Parms_Q357,Scale_XY_Q357,Line_UV_Q357,Color_UV_Info_Q357);vec3 Line_Vertex_Q333;Line_Vertex_B333(Scale_XY_Q357,Line_UV_Q357,(20.0),_Rate_,_Highlight_Transform_,Line_Vertex_Q333);float X_Q359;float Y_Q359;X_Q359=Color_UV_Info_Q357.x;Y_Q359=Color_UV_Info_Q357.y;vec4 Vec4_Q358=vec4(X_Q359,Y_Q359,Result_Q336,Line_Width_Q341);vec3 Position=Pos_World_Q314;vec3 Normal=Nrm_World_Q326;vec2 UV=Rect_UV_Q357;vec3 Tangent=Line_Vertex_Q333;vec3 Binormal=Dir_Q334;vec4 Color=Out_Color_Q337;vec4 Extra1=Rect_Parms_Q357;vec4 Extra2=Vec4_Q358;vec4 Extra3=vec4(0,0,0,0);gl_Position=viewProjection*vec4(Position,1);vPosition=Position;vNormal=Normal;vUV=UV;vTangent=Tangent;vBinormal=Binormal;vExtra1=Extra1;vExtra2=Extra2;}`;H.ShadersStore[JLe]||(H.ShadersStore[JLe]=gJe);class _Je extends Br{constructor(){super(),this.IRIDESCENCE_ENABLE=!0,this.SMOOTH_EDGES=!0,this._needNormals=!0,this.rebuild()}}class Fa extends po{constructor(e,t){super(e,t),this.radius=.3,this.lineWidth=.003,this.absoluteSizes=!1,this._filterWidth=1,this.baseColor=new St(0,0,0,1),this.lineColor=new St(.2,.262745,.4,1),this.radiusTopLeft=1,this.radiusTopRight=1,this.radiusBottomLeft=1,this.radiusBottomRight=1,this._rate=0,this.highlightColor=new St(.239216,.435294,.827451,1),this.highlightWidth=0,this._highlightTransform=new Yt(1,1,0,0),this._highlight=1,this.iridescenceIntensity=.45,this.iridescenceEdgeIntensity=1,this.iridescenceTint=new St(1,1,1,1),this._angle=-45,this.fadeOut=1,this._reflected=!0,this._frequency=1,this._verticalOffset=0,this.gradientColor=new St(.74902,.74902,.74902,1),this.topLeftGradientColor=new St(.00784314,.294118,.580392,1),this.topRightGradientColor=new St(.305882,0,1,1),this.bottomLeftGradientColor=new St(.133333,.258824,.992157,1),this.bottomRightGradientColor=new St(.176471,.176471,.619608,1),this.edgeWidth=.5,this.edgePower=1,this.edgeLineGradientBlend=.5,this.alphaMode=ze.ALPHA_DISABLE,this.backFaceCulling=!1;const i=Le.GetAssetUrl(Fa.IRIDESCENT_MAP_TEXTURE_URL);this._iridescentMapTexture=new be(i,this.getScene(),!0,!1,be.NEAREST_SAMPLINGMODE)}needAlphaBlending(){return!1}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t){const i=t._drawWrapper;if(this.isFrozen&&i.effect&&i._wasPreviouslyReady)return!0;t.materialDefines||(t.materialDefines=new _Je);const s=t.materialDefines,r=this.getScene();if(this._isReadyForSubMesh(t))return!0;const n=r.getEngine();if(zo(e,s,!1,!1),s.isDirty){s.markAsProcessed(),r.resetCachedMaterial();const o=new Ra;s.FOG&&o.addFallback(1,"FOG"),Ql(s,o),s.IMAGEPROCESSINGPOSTPROCESS=r.imageProcessingConfiguration.applyByPostProcess;const l=[q.PositionKind];s.NORMAL&&l.push(q.NormalKind),s.UV1&&l.push(q.UVKind),s.UV2&&l.push(q.UV2Kind),s.VERTEXCOLOR&&l.push(q.ColorKind),s.TANGENT&&l.push(q.TangentKind),Qo(l,s);const c="mrdlBackplate",u=s.toString(),f=["world","viewProjection","cameraPosition","_Radius_","_Line_Width_","_Absolute_Sizes_","_Filter_Width_","_Base_Color_","_Line_Color_","_Radius_Top_Left_","_Radius_Top_Right_","_Radius_Bottom_Left_","_Radius_Bottom_Right_","_Rate_","_Highlight_Color_","_Highlight_Width_","_Highlight_Transform_","_Highlight_","_Iridescence_Intensity_","_Iridescence_Edge_Intensity_","_Iridescence_Tint_","_Iridescent_Map_","_Angle_","_Reflected_","_Frequency_","_Vertical_Offset_","_Gradient_Color_","_Top_Left_","_Top_Right_","_Bottom_Left_","_Bottom_Right_","_Edge_Width_","_Edge_Power_","_Line_Gradient_Blend_","_Fade_Out_"],p=["_Iridescent_Map_"],m=[];gl({uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:s,maxSimultaneousLights:4}),t.setEffect(r.getEngine().createEffect(c,{attributes:l,uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:u,fallbacks:o,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:4}},n),s)}return!t.effect||!t.effect.isReady()?!1:(s._renderId=r.getRenderId(),i._wasPreviouslyReady=!0,!0)}bindForSubMesh(e,t,i){if(!i.materialDefines)return;const r=i.effect;r&&(this._activeEffect=r,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",this.getScene().getTransformMatrix()),this._activeEffect.setVector3("cameraPosition",this.getScene().activeCamera.position),this._activeEffect.setFloat("_Radius_",this.radius),this._activeEffect.setFloat("_Line_Width_",this.lineWidth),this._activeEffect.setFloat("_Absolute_Sizes_",this.absoluteSizes?1:0),this._activeEffect.setFloat("_Filter_Width_",this._filterWidth),this._activeEffect.setDirectColor4("_Base_Color_",this.baseColor),this._activeEffect.setDirectColor4("_Line_Color_",this.lineColor),this._activeEffect.setFloat("_Radius_Top_Left_",this.radiusTopLeft),this._activeEffect.setFloat("_Radius_Top_Right_",this.radiusTopRight),this._activeEffect.setFloat("_Radius_Bottom_Left_",this.radiusBottomLeft),this._activeEffect.setFloat("_Radius_Bottom_Right_",this.radiusBottomRight),this._activeEffect.setFloat("_Rate_",this._rate),this._activeEffect.setDirectColor4("_Highlight_Color_",this.highlightColor),this._activeEffect.setFloat("_Highlight_Width_",this.highlightWidth),this._activeEffect.setVector4("_Highlight_Transform_",this._highlightTransform),this._activeEffect.setFloat("_Highlight_",this._highlight),this._activeEffect.setFloat("_Iridescence_Intensity_",this.iridescenceIntensity),this._activeEffect.setFloat("_Iridescence_Edge_Intensity_",this.iridescenceEdgeIntensity),this._activeEffect.setDirectColor4("_Iridescence_Tint_",this.iridescenceTint),this._activeEffect.setTexture("_Iridescent_Map_",this._iridescentMapTexture),this._activeEffect.setFloat("_Angle_",this._angle),this._activeEffect.setFloat("_Reflected_",this._reflected?1:0),this._activeEffect.setFloat("_Frequency_",this._frequency),this._activeEffect.setFloat("_Vertical_Offset_",this._verticalOffset),this._activeEffect.setDirectColor4("_Gradient_Color_",this.gradientColor),this._activeEffect.setDirectColor4("_Top_Left_",this.topLeftGradientColor),this._activeEffect.setDirectColor4("_Top_Right_",this.topRightGradientColor),this._activeEffect.setDirectColor4("_Bottom_Left_",this.bottomLeftGradientColor),this._activeEffect.setDirectColor4("_Bottom_Right_",this.bottomRightGradientColor),this._activeEffect.setFloat("_Edge_Width_",this.edgeWidth),this._activeEffect.setFloat("_Edge_Power_",this.edgePower),this._activeEffect.setFloat("_Line_Gradient_Blend_",this.edgeLineGradientBlend),this._activeEffect.setFloat("_Fade_Out_",this.fadeOut),this._afterBind(t,this._activeEffect,i))}getAnimatables(){return[]}dispose(e){super.dispose(e)}clone(e){return It.Clone(()=>new Fa(e,this.getScene()),this)}serialize(){const e=super.serialize();return e.customType="BABYLON.MRDLBackplateMaterial",e}getClassName(){return"MRDLBackplateMaterial"}static Parse(e,t,i){return It.Parse(()=>new Fa(e.name,t),e,t,i)}}Fa.IRIDESCENT_MAP_TEXTURE_URL="https://assets.babylonjs.com/core/MRTK/MRDL/mrtk-mrdl-backplate-iridescence.png",F([G()],Fa.prototype,"radius",void 0),F([G()],Fa.prototype,"lineWidth",void 0),F([G()],Fa.prototype,"absoluteSizes",void 0),F([G()],Fa.prototype,"baseColor",void 0),F([G()],Fa.prototype,"lineColor",void 0),F([G()],Fa.prototype,"radiusTopLeft",void 0),F([G()],Fa.prototype,"radiusTopRight",void 0),F([G()],Fa.prototype,"radiusBottomLeft",void 0),F([G()],Fa.prototype,"radiusBottomRight",void 0),F([G()],Fa.prototype,"highlightColor",void 0),F([G()],Fa.prototype,"highlightWidth",void 0),F([G()],Fa.prototype,"iridescenceIntensity",void 0),F([G()],Fa.prototype,"iridescenceEdgeIntensity",void 0),F([G()],Fa.prototype,"iridescenceTint",void 0),F([G()],Fa.prototype,"fadeOut",void 0),F([G()],Fa.prototype,"gradientColor",void 0),F([G()],Fa.prototype,"topLeftGradientColor",void 0),F([G()],Fa.prototype,"topRightGradientColor",void 0),F([G()],Fa.prototype,"bottomLeftGradientColor",void 0),F([G()],Fa.prototype,"bottomRightGradientColor",void 0),F([G()],Fa.prototype,"edgeWidth",void 0),F([G()],Fa.prototype,"edgePower",void 0),F([G()],Fa.prototype,"edgeLineGradientBlend",void 0),ve("BABYLON.GUI.MRDLBackplateMaterial",Fa);const $Le=0,vJe=100,AJe=50,eIe=0,Wce=1,CJe=.2;class fR extends Ez{constructor(e,t){super(e),this.onValueChangedObservable=new xe,this._sliderBackplateVisible=t||!1,this._minimum=$Le,this._maximum=vJe,this._step=eIe,this._value=AJe}get mesh(){return this.node?this._sliderThumb:null}get minimum(){return this._minimum}set minimum(e){this._minimum!==e&&(this._minimum=Math.max(e,$Le),this._value=Math.max(Math.min(this._value,this._maximum),this._minimum))}get maximum(){return this._maximum}set maximum(e){this._maximum!==e&&(this._maximum=Math.max(e,this._minimum),this._value=Math.max(Math.min(this._value,this._maximum),this._minimum))}get step(){return this._step}set step(e){this._step!==e&&(this._step=Math.max(Math.min(e,this._maximum-this._minimum),eIe))}get value(){return this._value}set value(e){this._value!==e&&(this._value=Math.max(Math.min(e,this._maximum),this._minimum),this._sliderThumb&&(this._sliderThumb.position.x=this._convertToPosition(this.value)),this.onValueChangedObservable.notifyObservers(this._value))}get start(){return this.node?this._sliderBar.position.x-this._sliderBar.scaling.x/2:-Wce/2}get end(){return this.node?this._sliderBar.position.x+this._sliderBar.scaling.x/2:Wce/2}get sliderBarMaterial(){return this._sliderBarMaterial}get sliderThumbMaterial(){return this._sliderThumbMaterial}get sliderBackplateMaterial(){return this._sliderBackplateMaterial}get sliderBar(){return this._sliderBar}get sliderThumb(){return this._sliderThumb}get sliderBackplate(){return this._sliderBackplate}set isVisible(e){var t;this._isVisible!==e&&(this._isVisible=e,(t=this.node)==null||t.setEnabled(e))}_createNode(e){const t=pa(`${this.name}_sliderbackplate`,{width:1,height:1,depth:1},e);t.isPickable=!1,t.visibility=0,t.scaling=new P(1,.5,.8);const i=Le.GetAssetUrl(fR.MODEL_BASE_URL);return wr.ImportMeshAsync(void 0,i,fR.MODEL_FILENAME,e).then(s=>{s.meshes.forEach(l=>{l.isPickable=!1});const r=s.meshes[1],n=s.meshes[1].clone(`${this.name}_sliderbar`,t),o=s.meshes[1].clone(`${this.name}_sliderthumb`,t);r.visibility=0,this._sliderBackplateVisible&&(r.visibility=1,r.name=`${this.name}_sliderbackplate`,r.scaling.x=1,r.scaling.z=.2,r.parent=t,this._sliderBackplateMaterial&&(r.material=this._sliderBackplateMaterial),this._sliderBackplate=r),n&&(n.parent=t,n.position.z=-.1,n.scaling=new P(Wce-CJe,.04,.3),this._sliderBarMaterial&&(n.material=this._sliderBarMaterial),this._sliderBar=n),o&&(o.parent=t,o.isPickable=!0,o.position.z=-.115,o.scaling=new P(.025,.3,.6),o.position.x=this._convertToPosition(this.value),o.addBehavior(this._createBehavior()),this._sliderThumbMaterial&&(o.material=this._sliderThumbMaterial),this._sliderThumb=o),this._injectGUI3DReservedDataStore(t).control=this,t.getChildMeshes().forEach(l=>{this._injectGUI3DReservedDataStore(l).control=this})}),this._affectMaterial(t),t}_affectMaterial(e){this._sliderBackplateMaterial=this._sliderBackplateMaterial??new Fa(`${this.name}_sliderbackplate_material`,e.getScene()),this._sliderBarMaterial=this._sliderBarMaterial??new Ms(`${this.name}_sliderbar_material`,e.getScene()),this._sliderThumbMaterial=this._sliderThumbMaterial??new Es(`${this.name}_sliderthumb_material`,e.getScene())}_createBehavior(){const e=new Nl({dragAxis:P.Right()});return e.moveAttached=!1,e.onDragStartObservable.add(()=>{this._draggedPosition=this._sliderThumb.position.x}),e.onDragObservable.add(t=>{this._draggedPosition+=t.dragDistance/this.scaling.x,this.value=this._convertToValue(this._draggedPosition)}),e}_convertToPosition(e){const t=(e-this.minimum)/(this.maximum-this.minimum)*(this.end-this.start)+this.start;return Math.min(Math.max(t,this.start),this.end)}_convertToValue(e){let t=(e-this.start)/(this.end-this.start)*(this.maximum-this.minimum);return t=this.step?Math.round(t/this.step)*this.step:t,Math.max(Math.min(this.minimum+t,this._maximum),this._minimum)}dispose(){var e,t,i,s,r,n;super.dispose(),(e=this._sliderBar)==null||e.dispose(),(t=this._sliderThumb)==null||t.dispose(),(i=this._sliderBarMaterial)==null||i.dispose(),(s=this._sliderThumbMaterial)==null||s.dispose(),(r=this._sliderBackplate)==null||r.dispose(),(n=this._sliderBackplateMaterial)==null||n.dispose()}}fR.MODEL_BASE_URL="https://assets.babylonjs.com/core/MRTK/",fR.MODEL_FILENAME="mrtk-fluent-backplate.glb";class xJe extends cR{constructor(){super(...arguments),this._radius=5}get radius(){return this._radius}set radius(e){this._radius!==e&&(this._radius=e,Le.SetImmediate(()=>{this._arrangeChildren()}))}_mapGridNode(e,t){const i=e.mesh;if(!i)return;const s=this._sphericalMapping(t);switch(e.position=s,this.orientation){case Cl.FACEORIGIN_ORIENTATION:i.lookAt(new P(2*s.x,2*s.y,2*s.z));break;case Cl.FACEORIGINREVERSED_ORIENTATION:i.lookAt(new P(-s.x,-s.y,-s.z));break;case Cl.FACEFORWARD_ORIENTATION:break;case Cl.FACEFORWARDREVERSED_ORIENTATION:i.rotate(fo.Y,Math.PI,0);break}}_sphericalMapping(e){const t=new P(0,0,this._radius),i=e.y/this._radius,s=-(e.x/this._radius);return me.RotationYawPitchRollToRef(s,i,0,ae.Matrix[0]),P.TransformNormal(t,ae.Matrix[0])}}class bJe extends Cl{get isVertical(){return this._isVertical}set isVertical(e){this._isVertical!==e&&(this._isVertical=e,Le.SetImmediate(()=>{this._arrangeChildren()}))}constructor(e=!1){super(),this._isVertical=!1,this.margin=.1,this._isVertical=e}_arrangeChildren(){let e=0,t=0,i=0;const s=[],r=me.Invert(this.node.computeWorldMatrix(!0));for(const l of this._children){if(!l.mesh)continue;i++,l.mesh.computeWorldMatrix(!0),l.mesh.getWorldMatrix().multiplyToRef(r,ae.Matrix[0]);const c=l.mesh.getBoundingInfo().boundingBox,u=P.TransformNormal(c.extendSize,ae.Matrix[0]);s.push(u),this._isVertical?t+=u.y:e+=u.x}this._isVertical?t+=(i-1)*this.margin/2:e+=(i-1)*this.margin/2;let n;this._isVertical?n=-t:n=-e;let o=0;for(const l of this._children){if(!l.mesh)continue;i--;const c=s[o++];this._isVertical?(l.position.y=n+c.y,l.position.x=0,n+=c.y*2):(l.position.x=n+c.x,l.position.y=0,n+=c.x*2),n+=i>0?this.margin:0}}}class SJe extends XY{constructor(e,t){super(t,e),this._currentMesh=e,this.pointerEnterAnimation=()=>{this.mesh&&this.mesh.scaling.scaleInPlace(1.1)},this.pointerOutAnimation=()=>{this.mesh&&this.mesh.scaling.scaleInPlace(1/1.1)},this.pointerDownAnimation=()=>{this.mesh&&this.mesh.scaling.scaleInPlace(.95)},this.pointerUpAnimation=()=>{this.mesh&&this.mesh.scaling.scaleInPlace(1/.95)}}_getTypeName(){return"TouchMeshButton3D"}_createNode(){return this._currentMesh.getChildMeshes().forEach(e=>{this._injectGUI3DReservedDataStore(e).control=this}),this._currentMesh}_affectMaterial(e){}}const tIe="mrdlBackglowPixelShader",yJe=`uniform vec3 cameraPosition;varying vec3 vNormal;varying vec2 vUV;uniform float _Bevel_Radius_;uniform float _Line_Width_;uniform bool _Absolute_Sizes_;uniform float _Tuning_Motion_;uniform float _Motion_;uniform float _Max_Intensity_;uniform float _Intensity_Fade_In_Exponent_;uniform float _Outer_Fuzz_Start_;uniform float _Outer_Fuzz_End_;uniform vec4 _Color_;uniform vec4 _Inner_Color_;uniform float _Blend_Exponent_;uniform float _Falloff_;uniform float _Bias_;float BiasFunc(float b,float v) {return pow(v,log(clamp(b,0.001,0.999))/log(0.5));}
void Fuzzy_Round_Rect_B33(
float Size_X,
float Size_Y,
float Radius_X,
float Radius_Y,
float Line_Width,
vec2 UV,
float Outer_Fuzz,
float Max_Outer_Fuzz,
out float Rect_Distance,
out float Inner_Distance)
{vec2 halfSize=vec2(Size_X,Size_Y)*0.5;vec2 r=max(min(vec2(Radius_X,Radius_Y),halfSize),vec2(0.001,0.001));float radius=min(r.x,r.y)-Max_Outer_Fuzz;vec2 v=abs(UV);vec2 nearestp=min(v,halfSize-r);float d=distance(nearestp,v);Inner_Distance=clamp(1.0-(radius-d)/Line_Width,0.0,1.0);Rect_Distance=clamp(1.0-(d-radius)/Outer_Fuzz,0.0,1.0)*Inner_Distance;}
void main()
{float X_Q42;float Y_Q42;X_Q42=vNormal.x;Y_Q42=vNormal.y;float MaxAB_Q24=max(_Tuning_Motion_,_Motion_);float Sqrt_F_Q27=sqrt(MaxAB_Q24);float Power_Q43=pow(MaxAB_Q24,_Intensity_Fade_In_Exponent_);float Value_At_T_Q26=mix(_Outer_Fuzz_Start_,_Outer_Fuzz_End_,Sqrt_F_Q27);float Product_Q23=_Max_Intensity_*Power_Q43;float Rect_Distance_Q33;float Inner_Distance_Q33;Fuzzy_Round_Rect_B33(X_Q42,Y_Q42,_Bevel_Radius_,_Bevel_Radius_,_Line_Width_,vUV,Value_At_T_Q26,_Outer_Fuzz_Start_,Rect_Distance_Q33,Inner_Distance_Q33);float Power_Q44=pow(Inner_Distance_Q33,_Blend_Exponent_);float Result_Q45=pow(BiasFunc(_Bias_,Rect_Distance_Q33),_Falloff_);vec4 Color_At_T_Q25=mix(_Inner_Color_,_Color_,Power_Q44);float Product_Q22=Result_Q45*Product_Q23;vec4 Result_Q28=Product_Q22*Color_At_T_Q25;vec4 Out_Color=Result_Q28;float Clip_Threshold=0.0;gl_FragColor=Out_Color;}`;H.ShadersStore[tIe]||(H.ShadersStore[tIe]=yJe);const iIe="mrdlBackglowVertexShader",MJe=`uniform mat4 world;uniform mat4 viewProjection;uniform vec3 cameraPosition;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;attribute vec3 tangent;uniform float _Bevel_Radius_;uniform float _Line_Width_;uniform bool _Absolute_Sizes_;uniform float _Tuning_Motion_;uniform float _Motion_;uniform float _Max_Intensity_;uniform float _Intensity_Fade_In_Exponent_;uniform float _Outer_Fuzz_Start_;uniform float _Outer_Fuzz_End_;uniform vec4 _Color_;uniform vec4 _Inner_Color_;uniform float _Blend_Exponent_;uniform float _Falloff_;uniform float _Bias_;varying vec3 vNormal;varying vec2 vUV;void main()
{vec3 Dir_World_Q41=(world*vec4(tangent,0.0)).xyz;vec3 Dir_World_Q40=(world*vec4((cross(normal,tangent)),0.0)).xyz;float MaxAB_Q24=max(_Tuning_Motion_,_Motion_);float Length_Q16=length(Dir_World_Q41);float Length_Q17=length(Dir_World_Q40);bool Greater_Than_Q37=MaxAB_Q24>0.0;vec3 Sizes_Q35;vec2 XY_Q35;Sizes_Q35=(_Absolute_Sizes_ ? vec3(Length_Q16,Length_Q17,0) : vec3(Length_Q16/Length_Q17,1,0));XY_Q35=(uv-vec2(0.5,0.5))*Sizes_Q35.xy;vec3 Result_Q38=Greater_Than_Q37 ? position : vec3(0,0,0);vec3 Pos_World_Q39=(world*vec4(Result_Q38,1.0)).xyz;vec3 Position=Pos_World_Q39;vec3 Normal=Sizes_Q35;vec2 UV=XY_Q35;vec3 Tangent=vec3(0,0,0);vec3 Binormal=vec3(0,0,0);vec4 Color=vec4(1,1,1,1);gl_Position=viewProjection*vec4(Position,1);vNormal=Normal;vUV=UV;}`;H.ShadersStore[iIe]||(H.ShadersStore[iIe]=MJe);class EJe extends Br{constructor(){super(),this._needNormals=!0,this._needUVs=!0,this.rebuild()}}class md extends po{constructor(e,t){super(e,t),this.bevelRadius=.16,this.lineWidth=.16,this.absoluteSizes=!1,this.tuningMotion=0,this.motion=1,this.maxIntensity=.7,this.intensityFadeInExponent=2,this.outerFuzzStart=.04,this.outerFuzzEnd=.04,this.color=new St(.682353,.698039,1,1),this.innerColor=new St(.356863,.392157,.796078,1),this.blendExponent=1.5,this.falloff=2,this.bias=.5,this.alphaMode=ze.ALPHA_ADD,this.disableDepthWrite=!0,this.backFaceCulling=!1}needAlphaBlending(){return!0}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t){const i=t._drawWrapper;if(this.isFrozen&&i.effect&&i._wasPreviouslyReady)return!0;t.materialDefines||(t.materialDefines=new EJe);const s=t.materialDefines,r=this.getScene();if(this._isReadyForSubMesh(t))return!0;const n=r.getEngine();if(zo(e,s,!1,!1),s.isDirty){s.markAsProcessed(),r.resetCachedMaterial();const o=new Ra;s.FOG&&o.addFallback(1,"FOG"),Ql(s,o),s.IMAGEPROCESSINGPOSTPROCESS=r.imageProcessingConfiguration.applyByPostProcess;const l=[q.PositionKind];s.NORMAL&&l.push(q.NormalKind),s.UV1&&l.push(q.UVKind),s.UV2&&l.push(q.UV2Kind),s.VERTEXCOLOR&&l.push(q.ColorKind),s.TANGENT&&l.push(q.TangentKind),Qo(l,s);const c="mrdlBackglow",u=s.toString(),f=["world","worldView","worldViewProjection","view","projection","viewProjection","cameraPosition","_Bevel_Radius_","_Line_Width_","_Absolute_Sizes_","_Tuning_Motion_","_Motion_","_Max_Intensity_","_Intensity_Fade_In_Exponent_","_Outer_Fuzz_Start_","_Outer_Fuzz_End_","_Color_","_Inner_Color_","_Blend_Exponent_","_Falloff_","_Bias_"],p=[],m=[];gl({uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:s,maxSimultaneousLights:4}),t.setEffect(r.getEngine().createEffect(c,{attributes:l,uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:u,fallbacks:o,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:4}},n),s)}return!t.effect||!t.effect.isReady()?!1:(s._renderId=r.getRenderId(),i._wasPreviouslyReady=!0,!0)}bindForSubMesh(e,t,i){const s=this.getScene();if(!i.materialDefines)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),this._activeEffect.setVector3("cameraPosition",s.activeCamera.position),this._activeEffect.setFloat("_Bevel_Radius_",this.bevelRadius),this._activeEffect.setFloat("_Line_Width_",this.lineWidth),this._activeEffect.setFloat("_Absolute_Sizes_",this.absoluteSizes?1:0),this._activeEffect.setFloat("_Tuning_Motion_",this.tuningMotion),this._activeEffect.setFloat("_Motion_",this.motion),this._activeEffect.setFloat("_Max_Intensity_",this.maxIntensity),this._activeEffect.setFloat("_Intensity_Fade_In_Exponent_",this.intensityFadeInExponent),this._activeEffect.setFloat("_Outer_Fuzz_Start_",this.outerFuzzStart),this._activeEffect.setFloat("_Outer_Fuzz_End_",this.outerFuzzEnd),this._activeEffect.setDirectColor4("_Color_",this.color),this._activeEffect.setDirectColor4("_Inner_Color_",this.innerColor),this._activeEffect.setFloat("_Blend_Exponent_",this.blendExponent),this._activeEffect.setFloat("_Falloff_",this.falloff),this._activeEffect.setFloat("_Bias_",this.bias),this._afterBind(t,this._activeEffect,i))}getAnimatables(){return[]}dispose(e){super.dispose(e)}clone(e){return It.Clone(()=>new md(e,this.getScene()),this)}serialize(){const e=It.Serialize(this);return e.customType="BABYLON.MRDLBackglowMaterial",e}getClassName(){return"MRDLBackglowMaterial"}static Parse(e,t,i){return It.Parse(()=>new md(e.name,t),e,t,i)}}F([G()],md.prototype,"bevelRadius",void 0),F([G()],md.prototype,"lineWidth",void 0),F([G()],md.prototype,"absoluteSizes",void 0),F([G()],md.prototype,"tuningMotion",void 0),F([G()],md.prototype,"motion",void 0),F([G()],md.prototype,"maxIntensity",void 0),F([G()],md.prototype,"intensityFadeInExponent",void 0),F([G()],md.prototype,"outerFuzzStart",void 0),F([G()],md.prototype,"outerFuzzEnd",void 0),F([G()],md.prototype,"color",void 0),F([G()],md.prototype,"innerColor",void 0),F([G()],md.prototype,"blendExponent",void 0),F([G()],md.prototype,"falloff",void 0),F([G()],md.prototype,"bias",void 0),ve("BABYLON.GUI.MRDLBackglowMaterial",md);const sIe="mrdlFrontplatePixelShader",TJe=`uniform vec3 cameraPosition;varying vec3 vNormal;varying vec2 vUV;varying vec3 vTangent;varying vec4 vExtra1;varying vec4 vExtra2;varying vec4 vExtra3;uniform float _Radius_;uniform float _Line_Width_;uniform bool _Relative_To_Height_;uniform float _Filter_Width_;uniform vec4 _Edge_Color_;uniform float _Fade_Out_;uniform bool _Smooth_Edges_;uniform bool _Blob_Enable_;uniform vec3 _Blob_Position_;uniform float _Blob_Intensity_;uniform float _Blob_Near_Size_;uniform float _Blob_Far_Size_;uniform float _Blob_Near_Distance_;uniform float _Blob_Far_Distance_;uniform float _Blob_Fade_Length_;uniform float _Blob_Inner_Fade_;uniform float _Blob_Pulse_;uniform float _Blob_Fade_;uniform float _Blob_Pulse_Max_Size_;uniform bool _Blob_Enable_2_;uniform vec3 _Blob_Position_2_;uniform float _Blob_Near_Size_2_;uniform float _Blob_Inner_Fade_2_;uniform float _Blob_Pulse_2_;uniform float _Blob_Fade_2_;uniform float _Gaze_Intensity_;uniform float _Gaze_Focus_;uniform sampler2D _Blob_Texture_;uniform float _Selection_Fuzz_;uniform float _Selected_;uniform float _Selection_Fade_;uniform float _Selection_Fade_Size_;uniform float _Selected_Distance_;uniform float _Selected_Fade_Length_;uniform float _Proximity_Max_Intensity_;uniform float _Proximity_Far_Distance_;uniform float _Proximity_Near_Radius_;uniform float _Proximity_Anisotropy_;uniform bool _Use_Global_Left_Index_;uniform bool _Use_Global_Right_Index_;uniform vec4 Global_Left_Index_Tip_Position;uniform vec4 Global_Right_Index_Tip_Position;void Scale_Color_B54(
vec4 Color,
float Scalar,
out vec4 Result)
{Result=Scalar*Color;}
void Scale_RGB_B50(
vec4 Color,
float Scalar,
out vec4 Result)
{Result=vec4(Scalar,Scalar,Scalar,1)*Color;}
void Proximity_Fragment_B51(
float Proximity_Max_Intensity,
float Proximity_Near_Radius,
vec4 Deltas,
float Show_Selection,
float Distance_Fade1,
float Distance_Fade2,
float Strength,
out float Proximity)
{float proximity1=(1.0-clamp(length(Deltas.xy)/Proximity_Near_Radius,0.0,1.0))*Distance_Fade1;float proximity2=(1.0-clamp(length(Deltas.zw)/Proximity_Near_Radius,0.0,1.0))*Distance_Fade2;Proximity=Strength*(Proximity_Max_Intensity*max(proximity1,proximity2) *(1.0-Show_Selection)+Show_Selection);}
void Blob_Fragment_B56(
vec2 UV,
vec3 Blob_Info,
sampler2D Blob_Texture,
out vec4 Blob_Color)
{float k=dot(UV,UV);Blob_Color=Blob_Info.y*texture(Blob_Texture,vec2(vec2(sqrt(k),Blob_Info.x).x,1.0-vec2(sqrt(k),Blob_Info.x).y))*(1.0-clamp(k,0.0,1.0));}
void Round_Rect_Fragment_B61(
float Radius,
vec4 Line_Color,
float Filter_Width,
float Line_Visibility,
vec4 Fill_Color,
bool Smooth_Edges,
vec4 Rect_Parms,
out float Inside_Rect)
{float d=length(max(abs(Rect_Parms.zw)-Rect_Parms.xy,0.0));float dx=max(fwidth(d)*Filter_Width,0.00001);Inside_Rect=Smooth_Edges ? clamp((Radius-d)/dx,0.0,1.0) : 1.0-step(Radius,d);}
void main()
{float Is_Quad_Q53;Is_Quad_Q53=vNormal.z;vec4 Blob_Color_Q56;Blob_Fragment_B56(vUV,vTangent,_Blob_Texture_,Blob_Color_Q56);float X_Q52;float Y_Q52;float Z_Q52;float W_Q52;X_Q52=vExtra3.x;Y_Q52=vExtra3.y;Z_Q52=vExtra3.z;W_Q52=vExtra3.w;float Proximity_Q51;Proximity_Fragment_B51(_Proximity_Max_Intensity_,_Proximity_Near_Radius_,vExtra2,X_Q52,Y_Q52,Z_Q52,1.0,Proximity_Q51);float Inside_Rect_Q61;Round_Rect_Fragment_B61(W_Q52,vec4(1,1,1,1),_Filter_Width_,1.0,vec4(0,0,0,0),_Smooth_Edges_,vExtra1,Inside_Rect_Q61);vec4 Result_Q50;Scale_RGB_B50(_Edge_Color_,Proximity_Q51,Result_Q50);vec4 Result_Q47=Inside_Rect_Q61*Blob_Color_Q56;vec4 Color_At_T_Q48=mix(Result_Q50,Result_Q47,Is_Quad_Q53);vec4 Result_Q54;Scale_Color_B54(Color_At_T_Q48,_Fade_Out_,Result_Q54);vec4 Out_Color=Result_Q54;float Clip_Threshold=0.001;bool To_sRGB=false;gl_FragColor=Out_Color;}`;H.ShadersStore[sIe]||(H.ShadersStore[sIe]=TJe);const rIe="mrdlFrontplateVertexShader",LJe=`uniform mat4 world;uniform mat4 viewProjection;uniform vec3 cameraPosition;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;attribute vec3 tangent;attribute vec4 color;uniform float _Radius_;uniform float _Line_Width_;uniform bool _Relative_To_Height_;uniform float _Filter_Width_;uniform vec4 _Edge_Color_;uniform float _Fade_Out_;uniform bool _Smooth_Edges_;uniform bool _Blob_Enable_;uniform vec3 _Blob_Position_;uniform float _Blob_Intensity_;uniform float _Blob_Near_Size_;uniform float _Blob_Far_Size_;uniform float _Blob_Near_Distance_;uniform float _Blob_Far_Distance_;uniform float _Blob_Fade_Length_;uniform float _Blob_Inner_Fade_;uniform float _Blob_Pulse_;uniform float _Blob_Fade_;uniform float _Blob_Pulse_Max_Size_;uniform bool _Blob_Enable_2_;uniform vec3 _Blob_Position_2_;uniform float _Blob_Near_Size_2_;uniform float _Blob_Inner_Fade_2_;uniform float _Blob_Pulse_2_;uniform float _Blob_Fade_2_;uniform float _Gaze_Intensity_;uniform float _Gaze_Focus_;uniform sampler2D _Blob_Texture_;uniform float _Selection_Fuzz_;uniform float _Selected_;uniform float _Selection_Fade_;uniform float _Selection_Fade_Size_;uniform float _Selected_Distance_;uniform float _Selected_Fade_Length_;uniform float _Proximity_Max_Intensity_;uniform float _Proximity_Far_Distance_;uniform float _Proximity_Near_Radius_;uniform float _Proximity_Anisotropy_;uniform bool _Use_Global_Left_Index_;uniform bool _Use_Global_Right_Index_;uniform vec4 Global_Left_Index_Tip_Position;uniform vec4 Global_Right_Index_Tip_Position;varying vec3 vNormal;varying vec2 vUV;varying vec3 vTangent;varying vec4 vExtra1;varying vec4 vExtra2;varying vec4 vExtra3;void Blob_Vertex_B40(
vec3 Position,
vec3 Normal,
vec3 Tangent,
vec3 Bitangent,
vec3 Blob_Position,
float Intensity,
float Blob_Near_Size,
float Blob_Far_Size,
float Blob_Near_Distance,
float Blob_Far_Distance,
vec4 Vx_Color,
vec2 UV,
vec3 Face_Center,
vec2 Face_Size,
vec2 In_UV,
float Blob_Fade_Length,
float Selection_Fade,
float Selection_Fade_Size,
float Inner_Fade,
float Blob_Pulse,
float Blob_Fade,
float Blob_Enabled,
float DistanceOffset,
out vec3 Out_Position,
out vec2 Out_UV,
out vec3 Blob_Info,
out vec2 Blob_Relative_UV)
{float blobSize,fadeIn;vec3 Hit_Position;Blob_Info=vec3(0.0,0.0,0.0);float Hit_Distance=dot(Blob_Position-Face_Center,Normal)+DistanceOffset*Blob_Far_Distance;Hit_Position=Blob_Position-Hit_Distance*Normal;float absD=abs(Hit_Distance);float lerpVal=clamp((absD-Blob_Near_Distance)/(Blob_Far_Distance-Blob_Near_Distance),0.0,1.0);fadeIn=1.0-clamp((absD-Blob_Far_Distance)/Blob_Fade_Length,0.0,1.0);float innerFade=1.0-clamp(-Hit_Distance/Inner_Fade,0.0,1.0);float farClip=clamp(1.0-step(Blob_Far_Distance+Blob_Fade_Length,absD),0.0,1.0);float size=mix(Blob_Near_Size,Blob_Far_Size,lerpVal)*farClip;blobSize=mix(size,Selection_Fade_Size,Selection_Fade)*innerFade*Blob_Enabled;Blob_Info.x=lerpVal*0.5+0.5;Blob_Info.y=fadeIn*Intensity*(1.0-Selection_Fade)*Blob_Fade;Blob_Info.x*=(1.0-Blob_Pulse);vec3 delta=Hit_Position-Face_Center;vec2 blobCenterXY=vec2(dot(delta,Tangent),dot(delta,Bitangent));vec2 quadUVin=2.0*UV-1.0; 
vec2 blobXY=blobCenterXY+quadUVin*blobSize;vec2 blobClipped=clamp(blobXY,-Face_Size*0.5,Face_Size*0.5);vec2 blobUV=(blobClipped-blobCenterXY)/max(blobSize,0.0001)*2.0;vec3 blobCorner=Face_Center+blobClipped.x*Tangent+blobClipped.y*Bitangent;Out_Position=mix(Position,blobCorner,Vx_Color.rrr);Out_UV=mix(In_UV,blobUV,Vx_Color.rr);Blob_Relative_UV=blobClipped/Face_Size.y;}
void Round_Rect_Vertex_B36(
vec2 UV,
vec3 Tangent,
vec3 Binormal,
float Radius,
float Anisotropy,
vec2 Blob_Center_UV,
out vec2 Rect_UV,
out vec2 Scale_XY,
out vec4 Rect_Parms)
{Scale_XY=vec2(Anisotropy,1.0);Rect_UV=(UV-vec2(0.5,0.5))*Scale_XY;Rect_Parms.xy=Scale_XY*0.5-vec2(Radius,Radius);Rect_Parms.zw=Blob_Center_UV;}
vec2 ProjectProximity(
vec3 blobPosition,
vec3 position,
vec3 center,
vec3 dir,
vec3 xdir,
vec3 ydir,
out float vdistance
)
{vec3 delta=blobPosition-position;vec2 xy=vec2(dot(delta,xdir),dot(delta,ydir));vdistance=abs(dot(delta,dir));return xy;}
void Proximity_Vertex_B33(
vec3 Blob_Position,
vec3 Blob_Position_2,
vec3 Face_Center,
vec3 Position,
float Proximity_Far_Distance,
float Relative_Scale,
float Proximity_Anisotropy,
vec3 Normal,
vec3 Tangent,
vec3 Binormal,
out vec4 Extra,
out float Distance_To_Face,
out float Distance_Fade1,
out float Distance_Fade2)
{float distz1,distz2;Extra.xy=ProjectProximity(Blob_Position,Position,Face_Center,Normal,Tangent*Proximity_Anisotropy,Binormal,distz1)/Relative_Scale;Extra.zw=ProjectProximity(Blob_Position_2,Position,Face_Center,Normal,Tangent*Proximity_Anisotropy,Binormal,distz2)/Relative_Scale;Distance_To_Face=dot(Normal,Position-Face_Center);Distance_Fade1=1.0-clamp(distz1/Proximity_Far_Distance,0.0,1.0);Distance_Fade2=1.0-clamp(distz2/Proximity_Far_Distance,0.0,1.0);}
void Object_To_World_Pos_B12(
vec3 Pos_Object,
out vec3 Pos_World)
{Pos_World=(world*vec4(Pos_Object,1.0)).xyz;}
void Choose_Blob_B27(
vec4 Vx_Color,
vec3 Position1,
vec3 Position2,
bool Blob_Enable_1,
bool Blob_Enable_2,
float Near_Size_1,
float Near_Size_2,
float Blob_Inner_Fade_1,
float Blob_Inner_Fade_2,
float Blob_Pulse_1,
float Blob_Pulse_2,
float Blob_Fade_1,
float Blob_Fade_2,
out vec3 Position,
out float Near_Size,
out float Inner_Fade,
out float Blob_Enable,
out float Fade,
out float Pulse)
{Position=Position1*(1.0-Vx_Color.g)+Vx_Color.g*Position2;float b1=Blob_Enable_1 ? 1.0 : 0.0;float b2=Blob_Enable_2 ? 1.0 : 0.0;Blob_Enable=b1+(b2-b1)*Vx_Color.g;Pulse=Blob_Pulse_1*(1.0-Vx_Color.g)+Vx_Color.g*Blob_Pulse_2;Fade=Blob_Fade_1*(1.0-Vx_Color.g)+Vx_Color.g*Blob_Fade_2;Near_Size=Near_Size_1*(1.0-Vx_Color.g)+Vx_Color.g*Near_Size_2;Inner_Fade=Blob_Inner_Fade_1*(1.0-Vx_Color.g)+Vx_Color.g*Blob_Inner_Fade_2;}
void Move_Verts_B32(
vec2 UV,
float Radius,
float Anisotropy,
float Line_Width,
float Visible,
out vec3 New_P,
out vec2 New_UV)
{vec2 xy=2.0*UV-vec2(0.5,0.5);vec2 center=clamp(xy,0.0,1.0);vec2 delta=2.0*(xy-center);float deltaLength=length(delta);vec2 aniso=vec2(1.0/Anisotropy,1.0);center=(center-vec2(0.5,0.5))*(1.0-2.0*Radius*aniso);New_UV=vec2((2.0-2.0*deltaLength)*Visible,0.0);float deltaRadius= (Radius-Line_Width*New_UV.x);New_P.xy=(center+deltaRadius/deltaLength *aniso*delta);New_P.z=0.0;}
void Object_To_World_Dir_B14(
vec3 Dir_Object,
out vec3 Binormal_World)
{Binormal_World=(world*vec4(Dir_Object,0.0)).xyz;}
void Proximity_Visibility_B55(
float Selection,
vec3 Proximity_Center,
vec3 Proximity_Center_2,
float Proximity_Far_Distance,
float Proximity_Radius,
vec3 Face_Center,
vec3 Normal,
vec2 Face_Size,
float Gaze,
out float Width)
{float boxMaxSize=length(Face_Size)*0.5;float d1=dot(Proximity_Center-Face_Center,Normal);vec3 blob1=Proximity_Center-d1*Normal;float d2=dot(Proximity_Center_2-Face_Center,Normal);vec3 blob2=Proximity_Center_2-d2*Normal;vec3 delta1=blob1-Face_Center;vec3 delta2=blob2-Face_Center;float dist1=dot(delta1,delta1);float dist2=dot(delta2,delta2);float nearestProxDist=sqrt(min(dist1,dist2));Width=(1.0-step(boxMaxSize+Proximity_Radius,nearestProxDist))*(1.0-step(Proximity_Far_Distance,min(d1,d2))*(1.0-step(0.0001,Selection)));Width=max(Gaze,Width);}
vec2 ramp2(vec2 start,vec2 end,vec2 x)
{return clamp((x-start)/(end-start),vec2(0.0,0.0),vec2(1.0,1.0));}
float computeSelection(
vec3 blobPosition,
vec3 normal,
vec3 tangent,
vec3 bitangent,
vec3 faceCenter,
vec2 faceSize,
float selectionFuzz,
float farDistance,
float fadeLength
)
{vec3 delta=blobPosition-faceCenter;float absD=abs(dot(delta,normal));float fadeIn=1.0-clamp((absD-farDistance)/fadeLength,0.0,1.0);vec2 blobCenterXY=vec2(dot(delta,tangent),dot(delta,bitangent));vec2 innerFace=faceSize*(1.0-selectionFuzz)*0.5;vec2 selectPulse=ramp2(-faceSize*0.5,-innerFace,blobCenterXY)-ramp2(innerFace,faceSize*0.5,blobCenterXY);return selectPulse.x*selectPulse.y*fadeIn;}
void Selection_Vertex_B31(
vec3 Blob_Position,
vec3 Blob_Position_2,
vec3 Face_Center,
vec2 Face_Size,
vec3 Normal,
vec3 Tangent,
vec3 Bitangent,
float Selection_Fuzz,
float Selected,
float Far_Distance,
float Fade_Length,
vec3 Active_Face_Dir,
out float Show_Selection)
{float select1=computeSelection(Blob_Position,Normal,Tangent,Bitangent,Face_Center,Face_Size,Selection_Fuzz,Far_Distance,Fade_Length);float select2=computeSelection(Blob_Position_2,Normal,Tangent,Bitangent,Face_Center,Face_Size,Selection_Fuzz,Far_Distance,Fade_Length);Show_Selection=mix(max(select1,select2),1.0,Selected);}
void main()
{vec3 Vec3_Q29=vec3(vec2(0,0).x,vec2(0,0).y,color.r);vec3 Nrm_World_Q24;Nrm_World_Q24=normalize((world*vec4(normal,0.0)).xyz);vec3 Face_Center_Q30;Face_Center_Q30=(world*vec4(vec3(0,0,0),1.0)).xyz;vec3 Tangent_World_Q13;Tangent_World_Q13=(world*vec4(tangent,0.0)).xyz;vec3 Result_Q42;Result_Q42=_Use_Global_Left_Index_ ? Global_Left_Index_Tip_Position.xyz : _Blob_Position_;vec3 Result_Q43;Result_Q43=_Use_Global_Right_Index_ ? Global_Right_Index_Tip_Position.xyz : _Blob_Position_2_;float Value_At_T_Q58=mix(_Blob_Near_Size_,_Blob_Pulse_Max_Size_,_Blob_Pulse_);float Value_At_T_Q59=mix(_Blob_Near_Size_2_,_Blob_Pulse_Max_Size_,_Blob_Pulse_2_);vec3 Cross_Q70=cross(normal,tangent);float Product_Q45=_Gaze_Intensity_*_Gaze_Focus_;float Step_Q46=step(0.0001,Product_Q45);vec3 Tangent_World_N_Q15=normalize(Tangent_World_Q13);vec3 Position_Q27;float Near_Size_Q27;float Inner_Fade_Q27;float Blob_Enable_Q27;float Fade_Q27;float Pulse_Q27;Choose_Blob_B27(color,Result_Q42,Result_Q43,_Blob_Enable_,_Blob_Enable_2_,Value_At_T_Q58,Value_At_T_Q59,_Blob_Inner_Fade_,_Blob_Inner_Fade_2_,_Blob_Pulse_,_Blob_Pulse_2_,_Blob_Fade_,_Blob_Fade_2_,Position_Q27,Near_Size_Q27,Inner_Fade_Q27,Blob_Enable_Q27,Fade_Q27,Pulse_Q27);vec3 Binormal_World_Q14;Object_To_World_Dir_B14(Cross_Q70,Binormal_World_Q14);float Anisotropy_Q21=length(Tangent_World_Q13)/length(Binormal_World_Q14);vec3 Binormal_World_N_Q16=normalize(Binormal_World_Q14);vec2 Face_Size_Q35;float ScaleY_Q35;Face_Size_Q35=vec2(length(Tangent_World_Q13),length(Binormal_World_Q14));ScaleY_Q35=Face_Size_Q35.y;float Out_Radius_Q38;float Out_Line_Width_Q38;Out_Radius_Q38=_Relative_To_Height_ ? _Radius_ : _Radius_/ScaleY_Q35;Out_Line_Width_Q38=_Relative_To_Height_ ? _Line_Width_ : _Line_Width_/ScaleY_Q35;float Show_Selection_Q31;Selection_Vertex_B31(Result_Q42,Result_Q43,Face_Center_Q30,Face_Size_Q35,Nrm_World_Q24,Tangent_World_N_Q15,Binormal_World_N_Q16,_Selection_Fuzz_,_Selected_,_Selected_Distance_,_Selected_Fade_Length_,vec3(0,0,-1),Show_Selection_Q31);float MaxAB_Q41=max(Show_Selection_Q31,Product_Q45);float Width_Q55;Proximity_Visibility_B55(Show_Selection_Q31,Result_Q42,Result_Q43,_Proximity_Far_Distance_,_Proximity_Near_Radius_,Face_Center_Q30,Nrm_World_Q24,Face_Size_Q35,Step_Q46,Width_Q55);vec3 New_P_Q32;vec2 New_UV_Q32;Move_Verts_B32(uv,Out_Radius_Q38,Anisotropy_Q21,Out_Line_Width_Q38,Width_Q55,New_P_Q32,New_UV_Q32);vec3 Pos_World_Q12;Object_To_World_Pos_B12(New_P_Q32,Pos_World_Q12);vec3 Out_Position_Q40;vec2 Out_UV_Q40;vec3 Blob_Info_Q40;vec2 Blob_Relative_UV_Q40;Blob_Vertex_B40(Pos_World_Q12,Nrm_World_Q24,Tangent_World_N_Q15,Binormal_World_N_Q16,Position_Q27,_Blob_Intensity_,Near_Size_Q27,_Blob_Far_Size_,_Blob_Near_Distance_,_Blob_Far_Distance_,color,uv,Face_Center_Q30,Face_Size_Q35,New_UV_Q32,_Blob_Fade_Length_,_Selection_Fade_,_Selection_Fade_Size_,Inner_Fade_Q27,Pulse_Q27,Fade_Q27,Blob_Enable_Q27,0.0,Out_Position_Q40,Out_UV_Q40,Blob_Info_Q40,Blob_Relative_UV_Q40);vec2 Rect_UV_Q36;vec2 Scale_XY_Q36;vec4 Rect_Parms_Q36;Round_Rect_Vertex_B36(New_UV_Q32,Tangent_World_Q13,Binormal_World_Q14,Out_Radius_Q38,Anisotropy_Q21,Blob_Relative_UV_Q40,Rect_UV_Q36,Scale_XY_Q36,Rect_Parms_Q36);vec4 Extra_Q33;float Distance_To_Face_Q33;float Distance_Fade1_Q33;float Distance_Fade2_Q33;Proximity_Vertex_B33(Result_Q42,Result_Q43,Face_Center_Q30,Pos_World_Q12,_Proximity_Far_Distance_,1.0,_Proximity_Anisotropy_,Nrm_World_Q24,Tangent_World_N_Q15,Binormal_World_N_Q16,Extra_Q33,Distance_To_Face_Q33,Distance_Fade1_Q33,Distance_Fade2_Q33);vec4 Vec4_Q37=vec4(MaxAB_Q41,Distance_Fade1_Q33,Distance_Fade2_Q33,Out_Radius_Q38);vec3 Position=Out_Position_Q40;vec3 Normal=Vec3_Q29;vec2 UV=Out_UV_Q40;vec3 Tangent=Blob_Info_Q40;vec3 Binormal=vec3(0,0,0);vec4 Color=vec4(1,1,1,1);vec4 Extra1=Rect_Parms_Q36;vec4 Extra2=Extra_Q33;vec4 Extra3=Vec4_Q37;gl_Position=viewProjection*vec4(Position,1);vNormal=Normal;vUV=UV;vTangent=Tangent;vExtra1=Extra1;vExtra2=Extra2;vExtra3=Extra3;}`;H.ShadersStore[rIe]||(H.ShadersStore[rIe]=LJe);class IJe extends Br{constructor(){super(),this.SMOOTH_EDGES=!0,this._needNormals=!0,this._needUVs=!0,this.rebuild()}}class Vr extends po{constructor(e,t){super(e,t),this.radius=.12,this.lineWidth=.01,this.relativeToHeight=!1,this._filterWidth=1,this.edgeColor=new St(.53,.53,.53,1),this.blobEnable=!0,this.blobPosition=new P(100,100,100),this.blobIntensity=.5,this.blobNearSize=.032,this.blobFarSize=.048,this.blobNearDistance=.008,this.blobFarDistance=.064,this.blobFadeLength=.04,this.blobInnerFade=.01,this.blobPulse=0,this.blobFade=1,this.blobPulseMaxSize=.05,this.blobEnable2=!0,this.blobPosition2=new P(10,10.1,-.6),this.blobNearSize2=.008,this.blobInnerFade2=.1,this.blobPulse2=0,this.blobFade2=1,this.gazeIntensity=.8,this.gazeFocus=0,this.selectionFuzz=.5,this.selected=1,this.selectionFade=.2,this.selectionFadeSize=0,this.selectedDistance=.08,this.selectedFadeLength=.08,this.proximityMaxIntensity=.45,this.proximityFarDistance=.16,this.proximityNearRadius=.016,this.proximityAnisotropy=1,this.useGlobalLeftIndex=!0,this.useGlobalRightIndex=!0,this.fadeOut=1,this.alphaMode=ze.ALPHA_ADD,this.disableDepthWrite=!0,this.backFaceCulling=!1,this._blobTexture=new be(Vr.BLOB_TEXTURE_URL,t,!0,!1,be.NEAREST_SAMPLINGMODE)}needAlphaBlending(){return!0}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t){const i=t._drawWrapper;if(this.isFrozen&&i.effect&&i._wasPreviouslyReady)return!0;t.materialDefines||(t.materialDefines=new IJe);const s=t.materialDefines,r=this.getScene();if(this._isReadyForSubMesh(t))return!0;const n=r.getEngine();if(zo(e,s,!1,!1),s.isDirty){s.markAsProcessed(),r.resetCachedMaterial();const o=new Ra;s.FOG&&o.addFallback(1,"FOG"),Ql(s,o),s.IMAGEPROCESSINGPOSTPROCESS=r.imageProcessingConfiguration.applyByPostProcess;const l=[q.PositionKind];s.NORMAL&&l.push(q.NormalKind),s.UV1&&l.push(q.UVKind),s.UV2&&l.push(q.UV2Kind),s.VERTEXCOLOR&&l.push(q.ColorKind),s.TANGENT&&l.push(q.TangentKind),Qo(l,s);const c="mrdlFrontplate",u=s.toString(),f=["world","worldView","worldViewProjection","view","projection","viewProjection","cameraPosition","_Radius_","_Line_Width_","_Relative_To_Height_","_Filter_Width_","_Edge_Color_","_Fade_Out_","_Smooth_Edges_","_Blob_Enable_","_Blob_Position_","_Blob_Intensity_","_Blob_Near_Size_","_Blob_Far_Size_","_Blob_Near_Distance_","_Blob_Far_Distance_","_Blob_Fade_Length_","_Blob_Inner_Fade_","_Blob_Pulse_","_Blob_Fade_","_Blob_Pulse_Max_Size_","_Blob_Enable_2_","_Blob_Position_2_","_Blob_Near_Size_2_","_Blob_Inner_Fade_2_","_Blob_Pulse_2_","_Blob_Fade_2_","_Gaze_Intensity_","_Gaze_Focus_","_Blob_Texture_","_Selection_Fuzz_","_Selected_","_Selection_Fade_","_Selection_Fade_Size_","_Selected_Distance_","_Selected_Fade_Length_","_Proximity_Max_Intensity_","_Proximity_Far_Distance_","_Proximity_Near_Radius_","_Proximity_Anisotropy_","Global_Left_Index_Tip_Position","Global_Right_Index_Tip_Position","_Use_Global_Left_Index_","_Use_Global_Right_Index_"],p=[],m=[];gl({uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:s,maxSimultaneousLights:4}),t.setEffect(r.getEngine().createEffect(c,{attributes:l,uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:u,fallbacks:o,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:4}},n),s)}return!t.effect||!t.effect.isReady()?!1:(s._renderId=r.getRenderId(),i._wasPreviouslyReady=!0,!0)}bindForSubMesh(e,t,i){const s=this.getScene();if(!i.materialDefines)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),this._activeEffect.setVector3("cameraPosition",s.activeCamera.position),this._activeEffect.setFloat("_Radius_",this.radius),this._activeEffect.setFloat("_Line_Width_",this.lineWidth),this._activeEffect.setFloat("_Relative_To_Height_",this.relativeToHeight?1:0),this._activeEffect.setFloat("_Filter_Width_",this._filterWidth),this._activeEffect.setDirectColor4("_Edge_Color_",this.edgeColor),this._activeEffect.setFloat("_Fade_Out_",this.fadeOut),this._activeEffect.setFloat("_Blob_Enable_",this.blobEnable?1:0),this._activeEffect.setVector3("_Blob_Position_",this.blobPosition),this._activeEffect.setFloat("_Blob_Intensity_",this.blobIntensity),this._activeEffect.setFloat("_Blob_Near_Size_",this.blobNearSize),this._activeEffect.setFloat("_Blob_Far_Size_",this.blobFarSize),this._activeEffect.setFloat("_Blob_Near_Distance_",this.blobNearDistance),this._activeEffect.setFloat("_Blob_Far_Distance_",this.blobFarDistance),this._activeEffect.setFloat("_Blob_Fade_Length_",this.blobFadeLength),this._activeEffect.setFloat("_Blob_Inner_Fade_",this.blobInnerFade),this._activeEffect.setFloat("_Blob_Pulse_",this.blobPulse),this._activeEffect.setFloat("_Blob_Fade_",this.blobFade),this._activeEffect.setFloat("_Blob_Pulse_Max_Size_",this.blobPulseMaxSize),this._activeEffect.setFloat("_Blob_Enable_2_",this.blobEnable2?1:0),this._activeEffect.setVector3("_Blob_Position_2_",this.blobPosition2),this._activeEffect.setFloat("_Blob_Near_Size_2_",this.blobNearSize2),this._activeEffect.setFloat("_Blob_Inner_Fade_2_",this.blobInnerFade2),this._activeEffect.setFloat("_Blob_Pulse_2_",this.blobPulse2),this._activeEffect.setFloat("_Blob_Fade_2_",this.blobFade2),this._activeEffect.setFloat("_Gaze_Intensity_",this.gazeIntensity),this._activeEffect.setFloat("_Gaze_Focus_",this.gazeFocus),this._activeEffect.setTexture("_Blob_Texture_",this._blobTexture),this._activeEffect.setFloat("_Selection_Fuzz_",this.selectionFuzz),this._activeEffect.setFloat("_Selected_",this.selected),this._activeEffect.setFloat("_Selection_Fade_",this.selectionFade),this._activeEffect.setFloat("_Selection_Fade_Size_",this.selectionFadeSize),this._activeEffect.setFloat("_Selected_Distance_",this.selectedDistance),this._activeEffect.setFloat("_Selected_Fade_Length_",this.selectedFadeLength),this._activeEffect.setFloat("_Proximity_Max_Intensity_",this.proximityMaxIntensity),this._activeEffect.setFloat("_Proximity_Far_Distance_",this.proximityFarDistance),this._activeEffect.setFloat("_Proximity_Near_Radius_",this.proximityNearRadius),this._activeEffect.setFloat("_Proximity_Anisotropy_",this.proximityAnisotropy),this._activeEffect.setFloat("_Use_Global_Left_Index_",this.useGlobalLeftIndex?1:0),this._activeEffect.setFloat("_Use_Global_Right_Index_",this.useGlobalRightIndex?1:0),this._afterBind(t,this._activeEffect,i))}getAnimatables(){return[]}dispose(e){super.dispose(e)}clone(e){return It.Clone(()=>new Vr(e,this.getScene()),this)}serialize(){const e=It.Serialize(this);return e.customType="BABYLON.MRDLFrontplateMaterial",e}getClassName(){return"MRDLFrontplateMaterial"}static Parse(e,t,i){return It.Parse(()=>new Vr(e.name,t),e,t,i)}}Vr.BLOB_TEXTURE_URL="",F([G()],Vr.prototype,"radius",void 0),F([G()],Vr.prototype,"lineWidth",void 0),F([G()],Vr.prototype,"relativeToHeight",void 0),F([G()],Vr.prototype,"edgeColor",void 0),F([G()],Vr.prototype,"blobEnable",void 0),F([G()],Vr.prototype,"blobPosition",void 0),F([G()],Vr.prototype,"blobIntensity",void 0),F([G()],Vr.prototype,"blobNearSize",void 0),F([G()],Vr.prototype,"blobFarSize",void 0),F([G()],Vr.prototype,"blobNearDistance",void 0),F([G()],Vr.prototype,"blobFarDistance",void 0),F([G()],Vr.prototype,"blobFadeLength",void 0),F([G()],Vr.prototype,"blobInnerFade",void 0),F([G()],Vr.prototype,"blobPulse",void 0),F([G()],Vr.prototype,"blobFade",void 0),F([G()],Vr.prototype,"blobPulseMaxSize",void 0),F([G()],Vr.prototype,"blobEnable2",void 0),F([G()],Vr.prototype,"blobPosition2",void 0),F([G()],Vr.prototype,"blobNearSize2",void 0),F([G()],Vr.prototype,"blobInnerFade2",void 0),F([G()],Vr.prototype,"blobPulse2",void 0),F([G()],Vr.prototype,"blobFade2",void 0),F([G()],Vr.prototype,"gazeIntensity",void 0),F([G()],Vr.prototype,"gazeFocus",void 0),F([G()],Vr.prototype,"selectionFuzz",void 0),F([G()],Vr.prototype,"selected",void 0),F([G()],Vr.prototype,"selectionFade",void 0),F([G()],Vr.prototype,"selectionFadeSize",void 0),F([G()],Vr.prototype,"selectedDistance",void 0),F([G()],Vr.prototype,"selectedFadeLength",void 0),F([G()],Vr.prototype,"proximityMaxIntensity",void 0),F([G()],Vr.prototype,"proximityFarDistance",void 0),F([G()],Vr.prototype,"proximityNearRadius",void 0),F([G()],Vr.prototype,"proximityAnisotropy",void 0),F([G()],Vr.prototype,"useGlobalLeftIndex",void 0),F([G()],Vr.prototype,"useGlobalRightIndex",void 0),ve("BABYLON.GUI.MRDLFrontplateMaterial",Vr);const nIe="mrdlInnerquadPixelShader",PJe=`uniform vec3 cameraPosition;varying vec2 vUV;varying vec3 vTangent;uniform vec4 _Color_;uniform float _Radius_;uniform bool _Fixed_Radius_;uniform float _Filter_Width_;uniform float _Glow_Fraction_;uniform float _Glow_Max_;uniform float _Glow_Falloff_;float FilterStep_Bid194(float edge,float x,float filterWidth)
{float dx=max(1.0E-5,fwidth(x)*filterWidth);return max((x+dx*0.5-max(edge,x-dx*0.5))/dx,0.0);}
void Round_Rect_B194(
float Size_X,
float Size_Y,
float Radius,
vec4 Rect_Color,
float Filter_Width,
vec2 UV,
float Glow_Fraction,
float Glow_Max,
float Glow_Falloff,
out vec4 Color)
{vec2 halfSize=vec2(Size_X,Size_Y)*0.5;vec2 r=max(min(vec2(Radius,Radius),halfSize),vec2(0.01,0.01));vec2 v=abs(UV);vec2 nearestp=min(v,halfSize-r);vec2 delta=(v-nearestp)/max(vec2(0.01,0.01),r);float Distance=length(delta);float insideRect=1.0-FilterStep_Bid194(1.0-Glow_Fraction,Distance,Filter_Width);float glow=clamp((1.0-Distance)/Glow_Fraction,0.0,1.0);glow=pow(glow,Glow_Falloff);Color=Rect_Color*max(insideRect,glow*Glow_Max);}
void main()
{float X_Q192;float Y_Q192;float Z_Q192;X_Q192=vTangent.x;Y_Q192=vTangent.y;Z_Q192=vTangent.z;vec4 Color_Q194;Round_Rect_B194(X_Q192,1.0,Y_Q192,_Color_,_Filter_Width_,vUV,_Glow_Fraction_,_Glow_Max_,_Glow_Falloff_,Color_Q194);vec4 Out_Color=Color_Q194;float Clip_Threshold=0.0;gl_FragColor=Out_Color;}
`;H.ShadersStore[nIe]||(H.ShadersStore[nIe]=PJe);const aIe="mrdlInnerquadVertexShader",OJe=`uniform mat4 world;uniform mat4 viewProjection;uniform vec3 cameraPosition;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;attribute vec3 tangent;attribute vec4 color;uniform vec4 _Color_;uniform float _Radius_;uniform bool _Fixed_Radius_;uniform float _Filter_Width_;uniform float _Glow_Fraction_;uniform float _Glow_Max_;uniform float _Glow_Falloff_;varying vec2 vUV;varying vec3 vTangent;void main()
{vec3 Pos_World_Q189;Pos_World_Q189=(world*vec4(position,1.0)).xyz;vec3 Dir_World_Q190;Dir_World_Q190=(world*vec4(tangent,0.0)).xyz;vec3 Dir_World_Q191;Dir_World_Q191=(world*vec4((cross(normal,tangent)),0.0)).xyz;float Length_Q180=length(Dir_World_Q190);float Length_Q181=length(Dir_World_Q191);float Quotient_Q184=Length_Q180/Length_Q181;float Quotient_Q195=_Radius_/Length_Q181;vec2 Result_Q193;Result_Q193=vec2((uv.x-0.5)*Length_Q180/Length_Q181,(uv.y-0.5));float Result_Q198=_Fixed_Radius_ ? Quotient_Q195 : _Radius_;vec3 Vec3_Q183=vec3(Quotient_Q184,Result_Q198,0);vec3 Position=Pos_World_Q189;vec3 Normal=vec3(0,0,0);vec2 UV=Result_Q193;vec3 Tangent=Vec3_Q183;vec3 Binormal=vec3(0,0,0);vec4 Color=color;gl_Position=viewProjection*vec4(Position,1);vUV=UV;vTangent=Tangent;}
`;H.ShadersStore[aIe]||(H.ShadersStore[aIe]=OJe);class RJe extends Br{constructor(){super(),this._needNormals=!0,this._needUVs=!0,this.rebuild()}}class x5 extends po{constructor(e,t){super(e,t),this.color=new St(1,1,1,.05),this.radius=.12,this.fixedRadius=!0,this._filterWidth=1,this.glowFraction=0,this.glowMax=.5,this.glowFalloff=2,this.alphaMode=ze.ALPHA_COMBINE,this.backFaceCulling=!1}needAlphaBlending(){return!0}needAlphaTesting(){return!1}getAlphaTestTexture(){return null}isReadyForSubMesh(e,t){const i=t._drawWrapper;if(this.isFrozen&&i.effect&&i._wasPreviouslyReady)return!0;t.materialDefines||(t.materialDefines=new RJe);const s=t.materialDefines,r=this.getScene();if(this._isReadyForSubMesh(t))return!0;const n=r.getEngine();if(zo(e,s,!0,!1),s.isDirty){s.markAsProcessed(),r.resetCachedMaterial();const o=new Ra;s.FOG&&o.addFallback(1,"FOG"),Ql(s,o),s.IMAGEPROCESSINGPOSTPROCESS=r.imageProcessingConfiguration.applyByPostProcess;const l=[q.PositionKind];s.NORMAL&&l.push(q.NormalKind),s.UV1&&l.push(q.UVKind),s.UV2&&l.push(q.UV2Kind),s.VERTEXCOLOR&&l.push(q.ColorKind),s.TANGENT&&l.push(q.TangentKind),Qo(l,s);const c="mrdlInnerquad",u=s.toString(),f=["world","worldView","worldViewProjection","view","projection","viewProjection","cameraPosition","_Color_","_Radius_","_Fixed_Radius_","_Filter_Width_","_Glow_Fraction_","_Glow_Max_","_Glow_Falloff_"],p=[],m=[];gl({uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:s,maxSimultaneousLights:4}),t.setEffect(r.getEngine().createEffect(c,{attributes:l,uniformsNames:f,uniformBuffersNames:m,samplers:p,defines:u,fallbacks:o,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:4}},n),s)}return!t.effect||!t.effect.isReady()?!1:(s._renderId=r.getRenderId(),i._wasPreviouslyReady=!0,!0)}bindForSubMesh(e,t,i){const s=this.getScene();if(!i.materialDefines)return;const n=i.effect;n&&(this._activeEffect=n,this.bindOnlyWorldMatrix(e),this._activeEffect.setMatrix("viewProjection",s.getTransformMatrix()),this._activeEffect.setVector3("cameraPosition",s.activeCamera.position),this._activeEffect.setDirectColor4("_Color_",this.color),this._activeEffect.setFloat("_Radius_",this.radius),this._activeEffect.setFloat("_Fixed_Radius_",this.fixedRadius?1:0),this._activeEffect.setFloat("_Filter_Width_",this._filterWidth),this._activeEffect.setFloat("_Glow_Fraction_",this.glowFraction),this._activeEffect.setFloat("_Glow_Max_",this.glowMax),this._activeEffect.setFloat("_Glow_Falloff_",this.glowFalloff),this._afterBind(t,this._activeEffect,i))}getAnimatables(){return[]}dispose(e){super.dispose(e)}clone(e){return It.Clone(()=>new x5(e,this.getScene()),this)}serialize(){const e=It.Serialize(this);return e.customType="BABYLON.MRDLInnerquadMaterial",e}getClassName(){return"MRDLInnerquadMaterial"}static Parse(e,t,i){return It.Parse(()=>new x5(e.name,t),e,t,i)}}F([G()],x5.prototype,"color",void 0),F([G()],x5.prototype,"radius",void 0),F([G()],x5.prototype,"fixedRadius",void 0),F([G()],x5.prototype,"glowFraction",void 0),F([G()],x5.prototype,"glowMax",void 0),F([G()],x5.prototype,"glowFalloff",void 0),ve("BABYLON.GUI.MRDLInnerquadMaterial",x5);class w0 extends XY{_disposeTooltip(){this._tooltipFade=null,this._tooltipTextBlock&&this._tooltipTextBlock.dispose(),this._tooltipTexture&&this._tooltipTexture.dispose(),this._tooltipMesh&&this._tooltipMesh.dispose(),this.onPointerEnterObservable.remove(this._tooltipHoverObserver),this.onPointerOutObservable.remove(this._tooltipOutObserver)}set renderingGroupId(e){this._backPlate.renderingGroupId=e,this._textPlate.renderingGroupId=e,this._frontPlate.renderingGroupId=e,this._backGlow.renderingGroupId=e,this._innerQuad.renderingGroupId=e,this._tooltipMesh&&(this._tooltipMesh.renderingGroupId=e)}get renderingGroupId(){return this._backPlate.renderingGroupId}get mesh(){return this._backPlate}set tooltipText(e){if(!e){this._disposeTooltip();return}if(!this._tooltipFade){const t=this._backPlate._scene.useRightHandedSystem;this._tooltipMesh=Eh("",{size:1},this._backPlate._scene),this._tooltipMesh.position=P.Down().scale(.7).add(P.Forward(t).scale(-.15)),this._tooltipMesh.isPickable=!1,this._tooltipMesh.parent=this._frontPlateCollisionMesh,this._tooltipTexture=Go.CreateForMesh(this._tooltipMesh);const i=new cu;i.height=.25,i.width=.8,i.cornerRadius=25,i.color="#ffffff",i.thickness=20,i.background="#060668",this._tooltipTexture.addControl(i),this._tooltipTextBlock=new ia,this._tooltipTextBlock.color="white",this._tooltipTextBlock.fontSize=100,this._tooltipTexture.addControl(this._tooltipTextBlock),this._tooltipFade=new eH,this._tooltipFade.delay=500,this._tooltipMesh.addBehavior(this._tooltipFade),this._tooltipHoverObserver=this.onPointerEnterObservable.add(()=>{this._tooltipFade&&this._tooltipFade.fadeIn(!0)}),this._tooltipOutObserver=this.onPointerOutObservable.add(()=>{this._tooltipFade&&this._tooltipFade.fadeIn(!1)})}this._tooltipTextBlock&&(this._tooltipTextBlock.text=e)}get tooltipText(){var e;return((e=this._tooltipTextBlock)==null?void 0:e.text)||null}get text(){return this._text}set text(e){this._text!==e&&(this._text=e,this._rebuildContent())}get subtext(){return this._subtext}set subtext(e){this._subtext!==e&&(this._subtext=e,this._rebuildContent())}get imageUrl(){return this._imageUrl}set imageUrl(e){this._imageUrl!==e&&(this._imageUrl=e,this._rebuildContent())}get backMaterial(){return this._backMaterial}get frontMaterial(){return this._frontMaterial}get backGlowMaterial(){return this._backGlowMaterial}get innerQuadMaterial(){return this._innerQuadMaterial}get plateMaterial(){return this._plateMaterial}get shareMaterials(){return this._shareMaterials}set isBackplateVisible(e){this.mesh&&this._backMaterial&&(e&&!this._isBackplateVisible?this._backPlate.visibility=1:!e&&this._isBackplateVisible&&(this._backPlate.visibility=0)),this._isBackplateVisible=e}constructor(e,t=!0){super(e),this.width=1,this.height=1,this.radius=.14,this.textSizeInPixels=18,this.imageSizeInPixels=40,this.plateMaterialColor=new Pe(.4,.4,.4),this.frontPlateDepth=.2,this.backPlateDepth=.04,this.backGlowOffset=.1,this.flatPlaneDepth=.001,this.innerQuadRadius=this.radius-.04,this.innerQuadColor=new St(0,0,0,0),this.innerQuadToggledColor=new St(.5197843,.6485234,.9607843,.6),this.innerQuadHoverColor=new St(1,1,1,.05),this.innerQuadToggledHoverColor=new St(.5197843,.6485234,.9607843,1),this._isBackplateVisible=!0,this._shareMaterials=!0,this._shareMaterials=t,this.pointerEnterAnimation=()=>{this._frontPlate&&this._textPlate&&!this.isToggleButton&&this._performEnterExitAnimation(1),this.isToggleButton&&this._innerQuadMaterial&&(this.isToggled?this._innerQuadMaterial.color=this.innerQuadToggledHoverColor:this._innerQuadMaterial.color=this.innerQuadHoverColor)},this.pointerOutAnimation=()=>{this._frontPlate&&this._textPlate&&!this.isToggleButton&&this._performEnterExitAnimation(-.8),this.isToggleButton&&this._innerQuadMaterial&&this._onToggle(this.isToggled)},this.pointerDownAnimation=()=>{},this.pointerUpAnimation=()=>{},this._pointerClickObserver=this.onPointerClickObservable.add(()=>{this._frontPlate&&this._backGlow&&!this.isActiveNearInteraction&&this._performClickAnimation(),this.isToggleButton&&this._innerQuadMaterial&&this._onToggle(this.isToggled)}),this._pointerEnterObserver=this.onPointerEnterObservable.add(()=>{this.pointerEnterAnimation()}),this._pointerOutObserver=this.onPointerOutObservable.add(()=>{this.pointerOutAnimation()}),this._toggleObserver=this.onToggleObservable.add(i=>{i?this._innerQuadMaterial.color=this.innerQuadToggledColor:this._innerQuadMaterial.color=this.innerQuadColor})}_getTypeName(){return"TouchHolographicButton"}_rebuildContent(){let e;this._getAspectRatio()<=1?e=this._alignContentVertically():e=this._alignContentHorizontally(),this.content=e}_getAspectRatio(){return this.width/this.height}_alignContentVertically(){const e=new s1;if(e.isVertical=!0,H6()&&document.createElement&&this._imageUrl){const t=new In;t.source=this._imageUrl,t.heightInPixels=180,t.widthInPixels=100,t.paddingTopInPixels=40,t.paddingBottomInPixels=40,e.addControl(t)}if(this._text){const t=new ia;t.text=this._text,t.color="white",t.heightInPixels=30,t.fontSize=24,e.addControl(t)}return e}_alignContentHorizontally(){let e=240;const t=15,i=new cu;i.widthInPixels=e,i.heightInPixels=e,i.color="transparent",i.setPaddingInPixels(t,t,t,t),e-=t*2;const s=new s1;if(s.isVertical=!1,s.scaleY=this._getAspectRatio(),H6()&&document.createElement&&this._imageUrl){const r=new cu(`${this.name}_image`);r.widthInPixels=this.imageSizeInPixels,r.heightInPixels=this.imageSizeInPixels,r.color="transparent",e-=this.imageSizeInPixels;const n=new In;n.source=this._imageUrl,r.addControl(n),s.addControl(r)}if(this._text){const r=new ia(`${this.name}_text`);if(r.text=this._text,r.color="white",r.fontSize=this.textSizeInPixels,r.widthInPixels=e,this._imageUrl&&(r.textHorizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,r.paddingLeftInPixels=t),this._subtext){const n=new r1;n.addColumnDefinition(1),n.addRowDefinition(.5),n.addRowDefinition(.5),n.widthInPixels=e,n.heightInPixels=45;const o=new ia(`${this.name}_subtext`);o.text=this._subtext,o.color="#EEEEEEAB",o.fontSize=this.textSizeInPixels*.75,o.fontWeight="600",this._imageUrl&&(o.textHorizontalAlignment=Lt.HORIZONTAL_ALIGNMENT_LEFT,o.paddingLeftInPixels=t),n.addControl(r,0),n.addControl(o,1),s.addControl(n)}else s.addControl(r)}return i.addControl(s),i}_createNode(e){this.name=this.name??"TouchHolographicButton";const t=this._createBackPlate(e),i=this._createFrontPlate(e),s=this._createInnerQuad(e),r=this._createBackGlow(e);this._frontPlateCollisionMesh=i,this._textPlate=super._createNode(e),this._textPlate.name=`${this.name}_textPlate`,this._textPlate.isPickable=!1,this._textPlate.scaling.x=this.width,this._textPlate.parent=i,this._backPlate=t,this._backPlate.position=P.Forward(e.useRightHandedSystem).scale(this.backPlateDepth/2),this._backPlate.isPickable=!1,this._backPlate.addChild(i),this._backPlate.addChild(s),r&&this._backPlate.addChild(r);const n=new Si(`${this.name}_root`,e);return this._backPlate.setParent(n),this.collisionMesh=i,this.collidableFrontDirection=this._backPlate.forward.negate(),n}_createBackPlate(e){const t=pa(`${this.name}_backPlate`,{},e);t.isPickable=!1,t.visibility=0,t.scaling.z=.2;const i=Le.GetAssetUrl(w0.MRTK_ASSET_BASE_URL);return wr.ImportMeshAsync(void 0,i,w0.BACKPLATE_MODEL_FILENAME,e).then(s=>{const r=s.meshes[1];r.visibility=0,this._isBackplateVisible&&(r.visibility=1,r.name=`${this.name}_backPlate`,r.isPickable=!1,r.scaling.x=this.width,r.scaling.y=this.height,r.parent=t),this._backMaterial&&(r.material=this._backMaterial),this._backPlate=r}),t}_createFrontPlate(e){const t=pa(`${this.name}_frontPlate`,{width:this.width,height:this.height,depth:this.frontPlateDepth},e);t.isPickable=!0,t.isNearPickable=!0,t.visibility=0,t.position=P.Forward(e.useRightHandedSystem).scale((this.backPlateDepth-this.frontPlateDepth)/2);const i=Le.GetAssetUrl(w0.MRTK_ASSET_BASE_URL);return wr.ImportMeshAsync(void 0,i,w0.FRONTPLATE_MODEL_FILENAME,e).then(s=>{const r=pa(`${this.name}_collisionPlate`,{width:this.width,height:this.height},e);r.isPickable=!1,r.scaling.z=this.frontPlateDepth,r.visibility=0,r.parent=t,this._collisionPlate=r;const n=s.meshes[1];n.name=`${this.name}_frontPlate`,n.isPickable=!1,n.scaling.x=this.width-this.backGlowOffset,n.scaling.y=this.height-this.backGlowOffset,n.position=P.Forward(e.useRightHandedSystem).scale(-.5),n.parent=r,this.isToggleButton&&(n.visibility=0),this._frontMaterial&&(n.material=this._frontMaterial),this._textPlate.scaling.x=1,this._textPlate.parent=n,this._frontPlate=n}),t}_createInnerQuad(e){const t=pa(`${this.name}_innerQuad`,{},e);t.isPickable=!1,t.visibility=0,t.scaling.z=this.flatPlaneDepth,t.position.z+=this.backPlateDepth/2-this.flatPlaneDepth;const i=Le.GetAssetUrl(w0.MRTK_ASSET_BASE_URL);return wr.ImportMeshAsync(void 0,i,w0.INNERQUAD_MODEL_FILENAME,e).then(s=>{const r=s.meshes[1];r.name=`${this.name}_innerQuad`,r.isPickable=!1,r.scaling.x=this.width-this.backGlowOffset,r.scaling.y=this.height-this.backGlowOffset,r.parent=t,this._innerQuadMaterial&&(r.material=this._innerQuadMaterial),this._innerQuad=r}),t}_createBackGlow(e){if(this.isToggleButton)return;const t=pa(`${this.name}_backGlow`,{},e);t.isPickable=!1,t.visibility=0,t.scaling.z=this.flatPlaneDepth,t.position.z+=this.backPlateDepth/2-this.flatPlaneDepth*2;const i=Le.GetAssetUrl(w0.MRTK_ASSET_BASE_URL);return wr.ImportMeshAsync(void 0,i,w0.BACKGLOW_MODEL_FILENAME,e).then(s=>{const r=s.meshes[1];r.name=`${this.name}_backGlow`,r.isPickable=!1,r.scaling.x=this.width-this.backGlowOffset,r.scaling.y=this.height-this.backGlowOffset,r.parent=t,this._backGlowMaterial&&(r.material=this._backGlowMaterial),this._backGlow=r}),t}_applyFacade(e){this._plateMaterial.emissiveTexture=e,this._plateMaterial.opacityTexture=e,this._plateMaterial.diffuseColor=this.plateMaterialColor}_performClickAnimation(){const t=new c3("Click Animation Group"),i=[{name:"backGlowMotion",mesh:this._backGlow,property:"material.motion",keys:[{frame:0,values:[0,0,0]},{frame:20,values:[1,.0144,.0144]},{frame:40,values:[.0027713229489760476,0,0]},{frame:45,values:[.0027713229489760476]}]},{name:"_collisionPlateZSlide",mesh:this._collisionPlate,property:"position.z",keys:[{frame:0,values:[0,0,0]},{frame:20,values:[P.Forward(this._collisionPlate._scene.useRightHandedSystem).scale(this.frontPlateDepth/2).z,0,0]},{frame:40,values:[0,.005403332496794331]},{frame:45,values:[0]}]},{name:"_collisionPlateZScale",mesh:this._collisionPlate,property:"scaling.z",keys:[{frame:0,values:[this.frontPlateDepth,0,0]},{frame:20,values:[this.backPlateDepth,0,0]},{frame:40,values:[this.frontPlateDepth,.0054]},{frame:45,values:[this.frontPlateDepth]}]}];for(const s of i){const r=new He(s.name,s.property,60,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CYCLE),n=[];for(const o of s.keys)n.push({frame:o.frame,value:o.values[0],inTangent:o.values[1],outTangent:o.values[2],interpolation:o.values[3]});r.setKeys(n),s.mesh&&t.addTargetedAnimation(r,s.mesh)}t.normalize(0,45),t.speedRatio=1,t.play()}_performEnterExitAnimation(e){const i=new c3("Enter Exit Animation Group"),s=[{name:"frontPlateFadeOut",mesh:this._frontPlate,property:"material.fadeOut",keys:[{frame:0,values:[0,0,.025045314830017686,0]},{frame:40,values:[1.00205599570012,.025045314830017686,0,0]}]},{name:"textPlateZSlide",mesh:this._textPlate,property:"position.z",keys:[{frame:0,values:[0,0,0]},{frame:40,values:[P.Forward(this._textPlate._scene.useRightHandedSystem).scale(-.15).z,0,0]}]}];for(const r of s){const n=new He(r.name,r.property,60,He.ANIMATIONTYPE_FLOAT,He.ANIMATIONLOOPMODE_CYCLE),o=[];for(const l of r.keys)o.push({frame:l.frame,value:l.values[0],inTangent:l.values[1],outTangent:l.values[2],interpolation:l.values[3]});n.setKeys(o),r.mesh&&i.addTargetedAnimation(n,r.mesh)}i.normalize(0,45),i.speedRatio=e,i.play()}_createBackMaterial(e){this._backMaterial=this._backMaterial??new Fa(this.name+"backPlateMaterial",e.getScene()),this._backMaterial.absoluteSizes=!0,this._backMaterial.radius=this.radius,this._backMaterial.lineWidth=.02}_createFrontMaterial(e){this._frontMaterial=this._frontMaterial??new Vr(this.name+"Front Material",e.getScene()),this.frontMaterial.radius=this.innerQuadRadius,this.frontMaterial.fadeOut=0}_createBackGlowMaterial(e){const t=this.radius+.04;this._backGlowMaterial=this._backGlowMaterial??new md(this.name+"Back Glow Material",e.getScene()),this._backGlowMaterial.bevelRadius=t,this._backGlowMaterial.lineWidth=t,this._backGlowMaterial.motion=0}_createInnerQuadMaterial(e){this._innerQuadMaterial=this._innerQuadMaterial??new x5("inner_quad",e.getScene()),this._innerQuadMaterial.radius=this.innerQuadRadius,this.isToggleButton&&(this._innerQuadMaterial.color=this.innerQuadColor)}_createPlateMaterial(e){this._plateMaterial=this._plateMaterial??new Bt(this.name+"Plate Material",e.getScene()),this._plateMaterial.specularColor=Pe.Black()}_onToggle(e){super._onToggle(e)}_affectMaterial(e){this._shareMaterials?(this._host._touchSharedMaterials.mrdlBackplateMaterial?this._backMaterial=this._host._touchSharedMaterials.mrdlBackplateMaterial:(this._createBackMaterial(e),this._host._touchSharedMaterials.mrdlBackplateMaterial=this._backMaterial),this._host._touchSharedMaterials.mrdlFrontplateMaterial?this._frontMaterial=this._host._touchSharedMaterials.mrdlFrontplateMaterial:(this._createFrontMaterial(e),this._host._touchSharedMaterials.mrdlFrontplateMaterial=this._frontMaterial),this._host._touchSharedMaterials.mrdlBackglowMaterial?this._backGlowMaterial=this._host._touchSharedMaterials.mrdlBackglowMaterial:(this._createBackGlowMaterial(e),this._host._touchSharedMaterials.mrdlBackglowMaterial=this._backGlowMaterial),this._host._touchSharedMaterials.mrdlInnerQuadMaterial?this._innerQuadMaterial=this._host._touchSharedMaterials.mrdlInnerQuadMaterial:(this._createInnerQuadMaterial(e),this._host._touchSharedMaterials.mrdlInnerQuadMaterial=this._innerQuadMaterial)):(this._createBackMaterial(e),this._createFrontMaterial(e),this._createBackGlowMaterial(e),this._createInnerQuadMaterial(e)),this._createPlateMaterial(e),this._backPlate.material=this._backMaterial,this._textPlate.material=this._plateMaterial,this._isBackplateVisible||(this._backPlate.visibility=0),this._frontPlate&&(this._frontPlate.material=this._frontMaterial),this._backGlow&&(this._backGlow.material=this._backGlowMaterial),this._innerQuad&&(this._innerQuad.material=this._innerQuadMaterial),this._rebuildContent()}dispose(){super.dispose(),this._disposeTooltip(),this.onPointerClickObservable.remove(this._pointerClickObserver),this.onPointerEnterObservable.remove(this._pointerEnterObserver),this.onPointerOutObservable.remove(this._pointerOutObserver),this.onToggleObservable.remove(this._toggleObserver),this.shareMaterials||(this._backMaterial.dispose(),this._frontMaterial.dispose(),this._plateMaterial.dispose(),this._backGlowMaterial.dispose(),this._innerQuadMaterial.dispose(),this._pickedPointObserver&&(this._host.onPickedPointChangedObservable.remove(this._pickedPointObserver),this._pickedPointObserver=null))}}w0.MRTK_ASSET_BASE_URL="https://assets.babylonjs.com/core/MRTK/",w0.FRONTPLATE_MODEL_FILENAME="mrtk-fluent-frontplate.glb",w0.BACKPLATE_MODEL_FILENAME="mrtk-fluent-backplate.glb",w0.BACKGLOW_MODEL_FILENAME="mrtk-fluent-button.glb",w0.INNERQUAD_MODEL_FILENAME="SlateProximity.glb";class Tz{get scene(){return this._scene}get utilityLayer(){return this._utilityLayer}get controlScaling(){return this._customControlScaling}set controlScaling(e){if(this._customControlScaling!==e&&e>0){const t=e/this._customControlScaling;this._customControlScaling=e,this._rootContainer.children.forEach(i=>{i.scaling.scaleInPlace(t),e!==1&&(i._isScaledByManager=!0)})}}get useRealisticScaling(){return this.controlScaling===Tz.MRTK_REALISTIC_SCALING}set useRealisticScaling(e){this.controlScaling=e?Tz.MRTK_REALISTIC_SCALING:1}constructor(e){this._customControlScaling=1,this._lastControlOver={},this._lastControlDown={},this.onPickedPointChangedObservable=new xe,this.onPickingObservable=new xe,this._sharedMaterials={},this._touchSharedMaterials={},this._scene=e||ei.LastCreatedScene,this._sceneDisposeObserver=this._scene.onDisposeObservable.add(()=>{this._sceneDisposeObserver=null,this._utilityLayer=null,this.dispose()}),this._utilityLayer=Dr._CreateDefaultUtilityLayerFromScene(this._scene),this._utilityLayer.onlyCheckPointerDownEvents=!1,this._utilityLayer.pickUtilitySceneFirst=!1,this._utilityLayer.mainSceneTrackerPredicate=i=>{var s,r,n;return i&&((n=(r=(s=i.reservedDataStore)==null?void 0:s.GUI3D)==null?void 0:r.control)==null?void 0:n._node)},this._rootContainer=new Cl("RootContainer"),this._rootContainer._host=this;const t=this._utilityLayer.utilityLayerScene;this._pointerOutObserver=this._utilityLayer.onPointerOutObservable.add(i=>{this._handlePointerOut(i,!0)}),this._pointerObserver=t.onPointerObservable.add(i=>{this._doPicking(i)}),this._utilityLayer.utilityLayerScene.autoClear=!1,this._utilityLayer.utilityLayerScene.autoClearDepthAndStencil=!1,new b4("hemi",P.Up(),this._utilityLayer.utilityLayerScene)}_handlePointerOut(e,t){const i=this._lastControlOver[e];i&&(i._onPointerOut(i),delete this._lastControlOver[e]),t&&this._lastControlDown[e]&&(this._lastControlDown[e].forcePointerUp(),delete this._lastControlDown[e]),this.onPickedPointChangedObservable.notifyObservers(null)}_doPicking(e){var o,l,c;if(!this._utilityLayer||!this._utilityLayer.shouldRender||!this._utilityLayer.utilityLayerScene.activeCamera)return!1;const t=e.event,i=t.pointerId||0,s=t.button,r=e.pickInfo;if(r&&this.onPickingObservable.notifyObservers(r.pickedMesh),!r||!r.hit)return this._handlePointerOut(i,e.type===Xt.POINTERUP),!1;r.pickedPoint&&this.onPickedPointChangedObservable.notifyObservers(r.pickedPoint);const n=(l=(o=r.pickedMesh.reservedDataStore)==null?void 0:o.GUI3D)==null?void 0:l.control;return n&&!n._processObservables(e.type,r.pickedPoint,((c=r.originMesh)==null?void 0:c.position)||null,i,s)&&e.type===Xt.POINTERMOVE&&(this._lastControlOver[i]&&this._lastControlOver[i]._onPointerOut(this._lastControlOver[i]),delete this._lastControlOver[i]),e.type===Xt.POINTERUP&&(this._lastControlDown[t.pointerId]&&(this._lastControlDown[t.pointerId].forcePointerUp(),delete this._lastControlDown[t.pointerId]),(t.pointerType==="touch"||t.pointerType==="xr"&&this._scene.getEngine().hostInformation.isMobile)&&this._handlePointerOut(i,!1)),!0}get rootContainer(){return this._rootContainer}containsControl(e){return this._rootContainer.containsControl(e)}addControl(e){return this._rootContainer.addControl(e),this._customControlScaling!==1&&(e.scaling.scaleInPlace(this._customControlScaling),e._isScaledByManager=!0),this}removeControl(e){return this._rootContainer.removeControl(e),e._isScaledByManager&&(e.scaling.scaleInPlace(1/this._customControlScaling),e._isScaledByManager=!1),this}dispose(){this._rootContainer.dispose();for(const t in this._sharedMaterials)Object.prototype.hasOwnProperty.call(this._sharedMaterials,t)&&this._sharedMaterials[t].dispose();this._sharedMaterials={};for(const t in this._touchSharedMaterials)Object.prototype.hasOwnProperty.call(this._touchSharedMaterials,t)&&this._touchSharedMaterials[t].dispose();this._touchSharedMaterials={},this._pointerOutObserver&&this._utilityLayer&&(this._utilityLayer.onPointerOutObservable.remove(this._pointerOutObserver),this._pointerOutObserver=null),this.onPickedPointChangedObservable.clear(),this.onPickingObservable.clear();const e=this._utilityLayer?this._utilityLayer.utilityLayerScene:null;e&&this._pointerObserver&&(e.onPointerObservable.remove(this._pointerObserver),this._pointerObserver=null),this._scene&&this._sceneDisposeObserver&&(this._scene.onDisposeObservable.remove(this._sceneDisposeObserver),this._sceneDisposeObserver=null),this._utilityLayer&&this._utilityLayer.dispose()}}Tz.MRTK_REALISTIC_SCALING=.032;const oIe=bz(Object.freeze(Object.defineProperty({__proto__:null,AbstractButton3D:RLe,AdvancedDynamicTexture:Go,AdvancedDynamicTextureInstrumentation:HQe,BaseGradient:jce,BaseSlider:C3,Button:C5,Button3D:YY,Checkbox:hM,CheckboxGroup:FQe,ColorPicker:s2,Container:Ih,Container3D:Cl,Control:Lt,Control3D:Ez,CornerHandle:HLe,CylinderPanel:XQe,DisplayGrid:y_,Ellipse:VY,FluentBackplateMaterial:sa,FluentButtonMaterial:kr,FluentMaterial:Gc,FluentMaterialDefines:wLe,FocusableButton:bLe,FrameGraphGUITask:LLe,GUI3DManager:Tz,GizmoHandle:Gce,Grid:r1,HandMenu:qQe,HandleMaterial:GLe,get HandleState(){return Vce},HolographicBackplate:uR,HolographicButton:eJe,HolographicSlate:w4,Image:In,ImageBasedSlider:Uce,ImageScrollBar:Mz,InputPassword:SLe,InputText:tl,InputTextArea:$L,KeyPropertySet:GQe,Line:C9,LinearGradient:MLe,MRDLBackplateMaterial:Fa,MRDLSliderBarMaterial:Ms,MRDLSliderThumbMaterial:Es,MathTools:UY,Matrix2D:Jr,Measure:Vc,MeshButton3D:aJe,MultiLine:kce,MultiLinePoint:Fce,NearMenu:dR,NodeRenderGraphGUIBlock:ILe,PlanePanel:oJe,RadialGradient:ELe,RadioButton:Ib,RadioGroup:kQe,Rectangle:cu,ScatterPanel:lJe,ScrollBar:eI,ScrollViewer:tI,SelectionPanel:jQe,SelectorGroup:GY,SideHandle:WLe,SlateGizmo:YLe,Slider:x9,Slider3D:fR,SliderGroup:UQe,SpherePanel:xJe,StackPanel:s1,StackPanel3D:bJe,Style:TLe,TextBlock:ia,TextWrapper:jY,get TextWrapping(){return zce},ToggleButton:yLe,TouchButton3D:XY,TouchHolographicButton:hR,TouchHolographicButtonV3:w0,TouchHolographicMenu:b9,TouchMeshButton3D:SJe,ValueAndUnit:Ps,Vector2WithInfo:lR,Vector3WithInfo:HY,VirtualKeyboard:WY,VolumeBasedPanel:cR,XmlLoader:YQe,name:WQe},Symbol.toStringTag,{value:"Module"})));var Hce={exports:{}},lIe;function DJe(){return lIe||(lIe=1,function(a,e){(function(i,s){a.exports=s(wce,oIe)})(typeof self<"u"?self:rR,(t,i)=>(()=>{var s={"../../../../node_modules/@fortawesome/fontawesome-svg-core/index.mjs":(l,c,u)=>{u.r(c),u.d(c,{api:()=>wn,config:()=>vo,counter:()=>kh,dom:()=>d1,findIconDefinition:()=>f2,icon:()=>p2,layer:()=>m2,library:()=>d2,noAuto:()=>h2,parse:()=>rh,text:()=>f1,toHtml:()=>Ao});/*!
 * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */function f(ye,Be,Ze){return(Be=d(Be))in ye?Object.defineProperty(ye,Be,{value:Ze,enumerable:!0,configurable:!0,writable:!0}):ye[Be]=Ze,ye}function p(ye,Be){var Ze=Object.keys(ye);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(ye);Be&&(tt=tt.filter(function(gt){return Object.getOwnPropertyDescriptor(ye,gt).enumerable})),Ze.push.apply(Ze,tt)}return Ze}function m(ye){for(var Be=1;Be<arguments.length;Be++){var Ze=arguments[Be]!=null?arguments[Be]:{};Be%2?p(Object(Ze),!0).forEach(function(tt){f(ye,tt,Ze[tt])}):Object.getOwnPropertyDescriptors?Object.defineProperties(ye,Object.getOwnPropertyDescriptors(Ze)):p(Object(Ze)).forEach(function(tt){Object.defineProperty(ye,tt,Object.getOwnPropertyDescriptor(Ze,tt))})}return ye}function _(ye,Be){if(typeof ye!="object"||!ye)return ye;var Ze=ye[Symbol.toPrimitive];if(Ze!==void 0){var tt=Ze.call(ye,Be);if(typeof tt!="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Be==="string"?String:Number)(ye)}function d(ye){var Be=_(ye,"string");return typeof Be=="symbol"?Be:Be+""}const h=()=>{};let x={},A={},S=null,E={mark:h,measure:h};try{typeof window<"u"&&(x=window),typeof document<"u"&&(A=document),typeof MutationObserver<"u"&&(S=MutationObserver),typeof performance<"u"&&(E=performance)}catch{}const{userAgent:b=""}=x.navigator||{},M=x,T=A,O=S,R=E;M.document;const I=!!T.documentElement&&!!T.head&&typeof T.addEventListener=="function"&&typeof T.createElement=="function",N=~b.indexOf("MSIE")||~b.indexOf("Trident/");var w=/fa(s|r|l|t|d|dr|dl|dt|b|k|kd|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\-\ ]/,D=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i,k={classic:{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fab:"brands","fa-brands":"brands"},duotone:{fa:"solid",fad:"solid","fa-solid":"solid","fa-duotone":"solid",fadr:"regular","fa-regular":"regular",fadl:"light","fa-light":"light",fadt:"thin","fa-thin":"thin"},sharp:{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light",fast:"thin","fa-thin":"thin"},"sharp-duotone":{fa:"solid",fasds:"solid","fa-solid":"solid",fasdr:"regular","fa-regular":"regular",fasdl:"light","fa-light":"light",fasdt:"thin","fa-thin":"thin"}},Y={GROUP:"duotone-group",PRIMARY:"primary",SECONDARY:"secondary"},V=["fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone"],ee="classic",K="duotone",ie="sharp",ne="sharp-duotone",te=[ee,K,ie,ne],W={classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},duotone:{900:"fad",400:"fadr",300:"fadl",100:"fadt"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds",400:"fasdr",300:"fasdl",100:"fasdt"}},Q={"Font Awesome 6 Free":{900:"fas",400:"far"},"Font Awesome 6 Pro":{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},"Font Awesome 6 Brands":{400:"fab",normal:"fab"},"Font Awesome 6 Duotone":{900:"fad",400:"fadr",normal:"fadr",300:"fadl",100:"fadt"},"Font Awesome 6 Sharp":{900:"fass",400:"fasr",normal:"fasr",300:"fasl",100:"fast"},"Font Awesome 6 Sharp Duotone":{900:"fasds",400:"fasdr",normal:"fasdr",300:"fasdl",100:"fasdt"}},re=new Map([["classic",{defaultShortPrefixId:"fas",defaultStyleId:"solid",styleIds:["solid","regular","light","thin","brands"],futureStyleIds:[],defaultFontWeight:900}],["sharp",{defaultShortPrefixId:"fass",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["duotone",{defaultShortPrefixId:"fad",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["sharp-duotone",{defaultShortPrefixId:"fasds",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}]]),oe={classic:{solid:"fas",regular:"far",light:"fal",thin:"fat",brands:"fab"},duotone:{solid:"fad",regular:"fadr",light:"fadl",thin:"fadt"},sharp:{solid:"fass",regular:"fasr",light:"fasl",thin:"fast"},"sharp-duotone":{solid:"fasds",regular:"fasdr",light:"fasdl",thin:"fasdt"}},X=["fak","fa-kit","fakd","fa-kit-duotone"],se={kit:{fak:"kit","fa-kit":"kit"},"kit-duotone":{fakd:"kit-duotone","fa-kit-duotone":"kit-duotone"}},ue=["kit"],he={kit:{"fa-kit":"fak"}},fe=["fak","fakd"],Ae={kit:{fak:"fa-kit"}},Se={kit:{kit:"fak"},"kit-duotone":{"kit-duotone":"fakd"}},we={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},ke=["fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone"],st=["fak","fa-kit","fakd","fa-kit-duotone"],Ve={"Font Awesome Kit":{400:"fak",normal:"fak"},"Font Awesome Kit Duotone":{400:"fakd",normal:"fakd"}},Ke={classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},duotone:{"fa-regular":"fadr","fa-light":"fadl","fa-thin":"fadt"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds","fa-regular":"fasdr","fa-light":"fasdl","fa-thin":"fasdt"}},ct={classic:["fas","far","fal","fat","fad"],duotone:["fadr","fadl","fadt"],sharp:["fass","fasr","fasl","fast"],"sharp-duotone":["fasds","fasdr","fasdl","fasdt"]},nt={classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},duotone:{fadr:"fa-regular",fadl:"fa-light",fadt:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid",fasdr:"fa-regular",fasdl:"fa-light",fasdt:"fa-thin"}},at=["fa-solid","fa-regular","fa-light","fa-thin","fa-duotone","fa-brands"],xt=["fa","fas","far","fal","fat","fad","fadr","fadl","fadt","fab","fass","fasr","fasl","fast","fasds","fasdr","fasdl","fasdt",...ke,...at],Qe=["solid","regular","light","thin","duotone","brands"],kt=[1,2,3,4,5,6,7,8,9,10],ot=kt.concat([11,12,13,14,15,16,17,18,19,20]),At=[...Object.keys(ct),...Qe,"2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",we.GROUP,we.SWAP_OPACITY,we.PRIMARY,we.SECONDARY].concat(kt.map(ye=>"".concat(ye,"x"))).concat(ot.map(ye=>"w-".concat(ye))),Me={"Font Awesome 5 Free":{900:"fas",400:"far"},"Font Awesome 5 Pro":{900:"fas",400:"far",normal:"far",300:"fal"},"Font Awesome 5 Brands":{400:"fab",normal:"fab"},"Font Awesome 5 Duotone":{900:"fad"}};const je="___FONT_AWESOME___",rt=16,yt="fa",Rt="svg-inline--fa",Nt="data-fa-i2svg",Kt="data-fa-pseudo-element",si="data-fa-pseudo-element-pending",Pi="data-prefix",gi="data-icon",bi="fontawesome-i2svg",wi="async",Ni=["HTML","HEAD","STYLE","SCRIPT"],qt=(()=>{try{return!1}catch{return!1}})();function ci(ye){return new Proxy(ye,{get(Be,Ze){return Ze in Be?Be[Ze]:Be[ee]}})}const qe=m({},k);qe[ee]=m(m(m(m({},{"fa-duotone":"duotone"}),k[ee]),se.kit),se["kit-duotone"]);const ri=ci(qe),Ot=m({},oe);Ot[ee]=m(m(m(m({},{duotone:"fad"}),Ot[ee]),Se.kit),Se["kit-duotone"]);const mt=ci(Ot),Ye=m({},nt);Ye[ee]=m(m({},Ye[ee]),Ae.kit);const Tt=ci(Ye),Ut=m({},Ke);Ut[ee]=m(m({},Ut[ee]),he.kit),ci(Ut);const oi=w,ji="fa-layers-text",ki=D,os=m({},W);ci(os);const bs=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],hi=Y,Oi=[...ue,...At],li=M.FontAwesomeConfig||{};function Xs(ye){var Be=T.querySelector("script["+ye+"]");if(Be)return Be.getAttribute(ye)}function ks(ye){return ye===""?!0:ye==="false"?!1:ye==="true"?!0:ye}T&&typeof T.querySelector=="function"&&[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach(Be=>{let[Ze,tt]=Be;const gt=ks(Xs(Ze));gt!=null&&(li[tt]=gt)});const hr={styleDefault:"solid",familyDefault:ee,cssPrefix:yt,replacementClass:Rt,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};li.familyPrefix&&(li.cssPrefix=li.familyPrefix);const fr=m(m({},hr),li);fr.autoReplaceSvg||(fr.observeMutations=!1);const We={};Object.keys(hr).forEach(ye=>{Object.defineProperty(We,ye,{enumerable:!0,set:function(Be){fr[ye]=Be,fi.forEach(Ze=>Ze(We))},get:function(){return fr[ye]}})}),Object.defineProperty(We,"familyPrefix",{enumerable:!0,set:function(ye){fr.cssPrefix=ye,fi.forEach(Be=>Be(We))},get:function(){return fr.cssPrefix}}),M.FontAwesomeConfig=We;const fi=[];function zi(ye){return fi.push(ye),()=>{fi.splice(fi.indexOf(ye),1)}}const ts=rt,hs={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function Ge(ye){if(!ye||!I)return;const Be=T.createElement("style");Be.setAttribute("type","text/css"),Be.innerHTML=ye;const Ze=T.head.childNodes;let tt=null;for(let gt=Ze.length-1;gt>-1;gt--){const pe=Ze[gt],Ce=(pe.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(Ce)>-1&&(tt=pe)}return T.head.insertBefore(Be,tt),ye}const Zt="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function $t(){let ye=12,Be="";for(;ye-- >0;)Be+=Zt[Math.random()*62|0];return Be}function Ui(ye){const Be=[];for(let Ze=(ye||[]).length>>>0;Ze--;)Be[Ze]=ye[Ze];return Be}function ls(ye){return ye.classList?Ui(ye.classList):(ye.getAttribute("class")||"").split(" ").filter(Be=>Be)}function ns(ye){return"".concat(ye).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Ss(ye){return Object.keys(ye||{}).reduce((Be,Ze)=>Be+"".concat(Ze,'="').concat(ns(ye[Ze]),'" '),"").trim()}function qi(ye){return Object.keys(ye||{}).reduce((Be,Ze)=>Be+"".concat(Ze,": ").concat(ye[Ze].trim(),";"),"")}function pr(ye){return ye.size!==hs.size||ye.x!==hs.x||ye.y!==hs.y||ye.rotate!==hs.rotate||ye.flipX||ye.flipY}function Js(ye){let{transform:Be,containerWidth:Ze,iconWidth:tt}=ye;const gt={transform:"translate(".concat(Ze/2," 256)")},pe="translate(".concat(Be.x*32,", ").concat(Be.y*32,") "),Ce="scale(".concat(Be.size/16*(Be.flipX?-1:1),", ").concat(Be.size/16*(Be.flipY?-1:1),") "),De="rotate(".concat(Be.rotate," 0 0)"),Xe={transform:"".concat(pe," ").concat(Ce," ").concat(De)},Je={transform:"translate(".concat(tt/2*-1," -256)")};return{outer:gt,inner:Xe,path:Je}}function ir(ye){let{transform:Be,width:Ze=rt,height:tt=rt,startCentered:gt=!1}=ye,pe="";return gt&&N?pe+="translate(".concat(Be.x/ts-Ze/2,"em, ").concat(Be.y/ts-tt/2,"em) "):gt?pe+="translate(calc(-50% + ".concat(Be.x/ts,"em), calc(-50% + ").concat(Be.y/ts,"em)) "):pe+="translate(".concat(Be.x/ts,"em, ").concat(Be.y/ts,"em) "),pe+="scale(".concat(Be.size/ts*(Be.flipX?-1:1),", ").concat(Be.size/ts*(Be.flipY?-1:1),") "),pe+="rotate(".concat(Be.rotate,"deg) "),pe}var hn=`:root, :host {
  --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
  --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
  --fa-font-light: normal 300 1em/1 "Font Awesome 6 Pro";
  --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Pro";
  --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";
  --fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 6 Duotone";
  --fa-font-duotone-light: normal 300 1em/1 "Font Awesome 6 Duotone";
  --fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 6 Duotone";
  --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";
  --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";
  --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp";
  --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp";
  --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp";
  --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 6 Sharp Duotone";
  --fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 6 Sharp Duotone";
  --fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 6 Sharp Duotone";
  --fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 6 Sharp Duotone";
}

svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
  overflow: visible;
  box-sizing: content-box;
}

.svg-inline--fa {
  display: var(--fa-display, inline-block);
  height: 1em;
  overflow: visible;
  vertical-align: -0.125em;
}
.svg-inline--fa.fa-2xs {
  vertical-align: 0.1em;
}
.svg-inline--fa.fa-xs {
  vertical-align: 0em;
}
.svg-inline--fa.fa-sm {
  vertical-align: -0.0714285705em;
}
.svg-inline--fa.fa-lg {
  vertical-align: -0.2em;
}
.svg-inline--fa.fa-xl {
  vertical-align: -0.25em;
}
.svg-inline--fa.fa-2xl {
  vertical-align: -0.3125em;
}
.svg-inline--fa.fa-pull-left {
  margin-right: var(--fa-pull-margin, 0.3em);
  width: auto;
}
.svg-inline--fa.fa-pull-right {
  margin-left: var(--fa-pull-margin, 0.3em);
  width: auto;
}
.svg-inline--fa.fa-li {
  width: var(--fa-li-width, 2em);
  top: 0.25em;
}
.svg-inline--fa.fa-fw {
  width: var(--fa-fw-width, 1.25em);
}

.fa-layers svg.svg-inline--fa {
  bottom: 0;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
}

.fa-layers-counter, .fa-layers-text {
  display: inline-block;
  position: absolute;
  text-align: center;
}

.fa-layers {
  display: inline-block;
  height: 1em;
  position: relative;
  text-align: center;
  vertical-align: -0.125em;
  width: 1em;
}
.fa-layers svg.svg-inline--fa {
  transform-origin: center center;
}

.fa-layers-text {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  transform-origin: center center;
}

.fa-layers-counter {
  background-color: var(--fa-counter-background-color, #ff253a);
  border-radius: var(--fa-counter-border-radius, 1em);
  box-sizing: border-box;
  color: var(--fa-inverse, #fff);
  line-height: var(--fa-counter-line-height, 1);
  max-width: var(--fa-counter-max-width, 5em);
  min-width: var(--fa-counter-min-width, 1.5em);
  overflow: hidden;
  padding: var(--fa-counter-padding, 0.25em 0.5em);
  right: var(--fa-right, 0);
  text-overflow: ellipsis;
  top: var(--fa-top, 0);
  transform: scale(var(--fa-counter-scale, 0.25));
  transform-origin: top right;
}

.fa-layers-bottom-right {
  bottom: var(--fa-bottom, 0);
  right: var(--fa-right, 0);
  top: auto;
  transform: scale(var(--fa-layers-scale, 0.25));
  transform-origin: bottom right;
}

.fa-layers-bottom-left {
  bottom: var(--fa-bottom, 0);
  left: var(--fa-left, 0);
  right: auto;
  top: auto;
  transform: scale(var(--fa-layers-scale, 0.25));
  transform-origin: bottom left;
}

.fa-layers-top-right {
  top: var(--fa-top, 0);
  right: var(--fa-right, 0);
  transform: scale(var(--fa-layers-scale, 0.25));
  transform-origin: top right;
}

.fa-layers-top-left {
  left: var(--fa-left, 0);
  right: auto;
  top: var(--fa-top, 0);
  transform: scale(var(--fa-layers-scale, 0.25));
  transform-origin: top left;
}

.fa-1x {
  font-size: 1em;
}

.fa-2x {
  font-size: 2em;
}

.fa-3x {
  font-size: 3em;
}

.fa-4x {
  font-size: 4em;
}

.fa-5x {
  font-size: 5em;
}

.fa-6x {
  font-size: 6em;
}

.fa-7x {
  font-size: 7em;
}

.fa-8x {
  font-size: 8em;
}

.fa-9x {
  font-size: 9em;
}

.fa-10x {
  font-size: 10em;
}

.fa-2xs {
  font-size: 0.625em;
  line-height: 0.1em;
  vertical-align: 0.225em;
}

.fa-xs {
  font-size: 0.75em;
  line-height: 0.0833333337em;
  vertical-align: 0.125em;
}

.fa-sm {
  font-size: 0.875em;
  line-height: 0.0714285718em;
  vertical-align: 0.0535714295em;
}

.fa-lg {
  font-size: 1.25em;
  line-height: 0.05em;
  vertical-align: -0.075em;
}

.fa-xl {
  font-size: 1.5em;
  line-height: 0.0416666682em;
  vertical-align: -0.125em;
}

.fa-2xl {
  font-size: 2em;
  line-height: 0.03125em;
  vertical-align: -0.1875em;
}

.fa-fw {
  text-align: center;
  width: 1.25em;
}

.fa-ul {
  list-style-type: none;
  margin-left: var(--fa-li-margin, 2.5em);
  padding-left: 0;
}
.fa-ul > li {
  position: relative;
}

.fa-li {
  left: calc(-1 * var(--fa-li-width, 2em));
  position: absolute;
  text-align: center;
  width: var(--fa-li-width, 2em);
  line-height: inherit;
}

.fa-border {
  border-color: var(--fa-border-color, #eee);
  border-radius: var(--fa-border-radius, 0.1em);
  border-style: var(--fa-border-style, solid);
  border-width: var(--fa-border-width, 0.08em);
  padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);
}

.fa-pull-left {
  float: left;
  margin-right: var(--fa-pull-margin, 0.3em);
}

.fa-pull-right {
  float: right;
  margin-left: var(--fa-pull-margin, 0.3em);
}

.fa-beat {
  animation-name: fa-beat;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, ease-in-out);
}

.fa-bounce {
  animation-name: fa-bounce;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));
}

.fa-fade {
  animation-name: fa-fade;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
}

.fa-beat-fade {
  animation-name: fa-beat-fade;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
}

.fa-flip {
  animation-name: fa-flip;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, ease-in-out);
}

.fa-shake {
  animation-name: fa-shake;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, linear);
}

.fa-spin {
  animation-name: fa-spin;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 2s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, linear);
}

.fa-spin-reverse {
  --fa-animation-direction: reverse;
}

.fa-pulse,
.fa-spin-pulse {
  animation-name: fa-spin;
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, steps(8));
}

@media (prefers-reduced-motion: reduce) {
  .fa-beat,
.fa-bounce,
.fa-fade,
.fa-beat-fade,
.fa-flip,
.fa-pulse,
.fa-shake,
.fa-spin,
.fa-spin-pulse {
    animation-delay: -1ms;
    animation-duration: 1ms;
    animation-iteration-count: 1;
    transition-delay: 0s;
    transition-duration: 0s;
  }
}
@keyframes fa-beat {
  0%, 90% {
    transform: scale(1);
  }
  45% {
    transform: scale(var(--fa-beat-scale, 1.25));
  }
}
@keyframes fa-bounce {
  0% {
    transform: scale(1, 1) translateY(0);
  }
  10% {
    transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
  }
  30% {
    transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
  }
  50% {
    transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
  }
  57% {
    transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
  }
  64% {
    transform: scale(1, 1) translateY(0);
  }
  100% {
    transform: scale(1, 1) translateY(0);
  }
}
@keyframes fa-fade {
  50% {
    opacity: var(--fa-fade-opacity, 0.4);
  }
}
@keyframes fa-beat-fade {
  0%, 100% {
    opacity: var(--fa-beat-fade-opacity, 0.4);
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(var(--fa-beat-fade-scale, 1.125));
  }
}
@keyframes fa-flip {
  50% {
    transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
  }
}
@keyframes fa-shake {
  0% {
    transform: rotate(-15deg);
  }
  4% {
    transform: rotate(15deg);
  }
  8%, 24% {
    transform: rotate(-18deg);
  }
  12%, 28% {
    transform: rotate(18deg);
  }
  16% {
    transform: rotate(-22deg);
  }
  20% {
    transform: rotate(22deg);
  }
  32% {
    transform: rotate(-12deg);
  }
  36% {
    transform: rotate(12deg);
  }
  40%, 100% {
    transform: rotate(0deg);
  }
}
@keyframes fa-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.fa-rotate-90 {
  transform: rotate(90deg);
}

.fa-rotate-180 {
  transform: rotate(180deg);
}

.fa-rotate-270 {
  transform: rotate(270deg);
}

.fa-flip-horizontal {
  transform: scale(-1, 1);
}

.fa-flip-vertical {
  transform: scale(1, -1);
}

.fa-flip-both,
.fa-flip-horizontal.fa-flip-vertical {
  transform: scale(-1, -1);
}

.fa-rotate-by {
  transform: rotate(var(--fa-rotate-angle, 0));
}

.fa-stack {
  display: inline-block;
  vertical-align: middle;
  height: 2em;
  position: relative;
  width: 2.5em;
}

.fa-stack-1x,
.fa-stack-2x {
  bottom: 0;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  z-index: var(--fa-stack-z-index, auto);
}

.svg-inline--fa.fa-stack-1x {
  height: 1em;
  width: 1.25em;
}
.svg-inline--fa.fa-stack-2x {
  height: 2em;
  width: 2.5em;
}

.fa-inverse {
  color: var(--fa-inverse, #fff);
}

.sr-only,
.fa-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.sr-only-focusable:not(:focus),
.fa-sr-only-focusable:not(:focus) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.svg-inline--fa .fa-primary {
  fill: var(--fa-primary-color, currentColor);
  opacity: var(--fa-primary-opacity, 1);
}

.svg-inline--fa .fa-secondary {
  fill: var(--fa-secondary-color, currentColor);
  opacity: var(--fa-secondary-opacity, 0.4);
}

.svg-inline--fa.fa-swap-opacity .fa-primary {
  opacity: var(--fa-secondary-opacity, 0.4);
}

.svg-inline--fa.fa-swap-opacity .fa-secondary {
  opacity: var(--fa-primary-opacity, 1);
}

.svg-inline--fa mask .fa-primary,
.svg-inline--fa mask .fa-secondary {
  fill: black;
}`;function ra(){const ye=yt,Be=Rt,Ze=We.cssPrefix,tt=We.replacementClass;let gt=hn;if(Ze!==ye||tt!==Be){const pe=new RegExp("\\.".concat(ye,"\\-"),"g"),Ce=new RegExp("\\--".concat(ye,"\\-"),"g"),De=new RegExp("\\.".concat(Be),"g");gt=gt.replace(pe,".".concat(Ze,"-")).replace(Ce,"--".concat(Ze,"-")).replace(De,".".concat(tt))}return gt}let ka=!1;function Hn(){We.autoAddCss&&!ka&&(Ge(ra()),ka=!0)}var to={mixout(){return{dom:{css:ra,insertCss:Hn}}},hooks(){return{beforeDOMElementCreation(){Hn()},beforeI2svg(){Hn()}}}};const Gr=M||{};Gr[je]||(Gr[je]={}),Gr[je].styles||(Gr[je].styles={}),Gr[je].hooks||(Gr[je].hooks={}),Gr[je].shims||(Gr[je].shims=[]);var Yn=Gr[je];const To=[],Pn=function(){T.removeEventListener("DOMContentLoaded",Pn),On=1,To.map(ye=>ye())};let On=!1;I&&(On=(T.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(T.readyState),On||T.addEventListener("DOMContentLoaded",Pn));function Kr(ye){I&&(On?setTimeout(ye,0):To.push(ye))}function dn(ye){const{tag:Be,attributes:Ze={},children:tt=[]}=ye;return typeof ye=="string"?ns(ye):"<".concat(Be," ").concat(Ss(Ze),">").concat(tt.map(dn).join(""),"</").concat(Be,">")}function mo(ye,Be,Ze){if(ye&&ye[Be]&&ye[Be][Ze])return{prefix:Be,iconName:Ze,icon:ye[Be][Ze]}}var Xn=function(Be,Ze,tt,gt){var pe=Object.keys(Be),Ce=pe.length,De=Ze,Xe,Je,vt;for(tt===void 0?(Xe=1,vt=Be[pe[0]]):(Xe=0,vt=tt);Xe<Ce;Xe++)Je=pe[Xe],vt=De(vt,Be[Je],Je,Be);return vt};function na(ye){const Be=[];let Ze=0;const tt=ye.length;for(;Ze<tt;){const gt=ye.charCodeAt(Ze++);if(gt>=55296&&gt<=56319&&Ze<tt){const pe=ye.charCodeAt(Ze++);(pe&64512)==56320?Be.push(((gt&1023)<<10)+(pe&1023)+65536):(Be.push(gt),Ze--)}else Be.push(gt)}return Be}function xl(ye){const Be=na(ye);return Be.length===1?Be[0].toString(16):null}function Lo(ye,Be){const Ze=ye.length;let tt=ye.charCodeAt(Be),gt;return tt>=55296&&tt<=56319&&Ze>Be+1&&(gt=ye.charCodeAt(Be+1),gt>=56320&&gt<=57343)?(tt-55296)*1024+gt-56320+65536:tt}function Io(ye){return Object.keys(ye).reduce((Be,Ze)=>{const tt=ye[Ze];return!!tt.icon?Be[tt.iconName]=tt.icon:Be[Ze]=tt,Be},{})}function bl(ye,Be){let Ze=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{skipHooks:tt=!1}=Ze,gt=Io(Be);typeof Yn.hooks.addPack=="function"&&!tt?Yn.hooks.addPack(ye,Io(Be)):Yn.styles[ye]=m(m({},Yn.styles[ye]||{}),gt),ye==="fas"&&bl("fa",Be)}const{styles:Zn,shims:Sl}=Yn,Vi=Object.keys(Tt),yl=Vi.reduce((ye,Be)=>(ye[Be]=Object.keys(Tt[Be]),ye),{});let Sn=null,Kn={},Po={},Wi={},yn={},sr={};function qn(ye){return~Oi.indexOf(ye)}function rl(ye,Be){const Ze=Be.split("-"),tt=Ze[0],gt=Ze.slice(1).join("-");return tt===ye&&gt!==""&&!qn(gt)?gt:null}const Rn=()=>{const ye=tt=>Xn(Zn,(gt,pe,Ce)=>(gt[Ce]=Xn(pe,tt,{}),gt),{});Kn=ye((tt,gt,pe)=>(gt[3]&&(tt[gt[3]]=pe),gt[2]&&gt[2].filter(De=>typeof De=="number").forEach(De=>{tt[De.toString(16)]=pe}),tt)),Po=ye((tt,gt,pe)=>(tt[pe]=pe,gt[2]&&gt[2].filter(De=>typeof De=="string").forEach(De=>{tt[De]=pe}),tt)),sr=ye((tt,gt,pe)=>{const Ce=gt[2];return tt[pe]=pe,Ce.forEach(De=>{tt[De]=pe}),tt});const Be="far"in Zn||We.autoFetchSvg,Ze=Xn(Sl,(tt,gt)=>{const pe=gt[0];let Ce=gt[1];const De=gt[2];return Ce==="far"&&!Be&&(Ce="fas"),typeof pe=="string"&&(tt.names[pe]={prefix:Ce,iconName:De}),typeof pe=="number"&&(tt.unicodes[pe.toString(16)]={prefix:Ce,iconName:De}),tt},{names:{},unicodes:{}});Wi=Ze.names,yn=Ze.unicodes,Sn=_t(We.styleDefault,{family:We.familyDefault})};zi(ye=>{Sn=_t(ye.styleDefault,{family:We.familyDefault})}),Rn();function Or(ye,Be){return(Kn[ye]||{})[Be]}function fn(ye,Be){return(Po[ye]||{})[Be]}function $r(ye,Be){return(sr[ye]||{})[Be]}function Wc(ye){return Wi[ye]||{prefix:null,iconName:null}}function Qn(ye){const Be=yn[ye],Ze=Or("fas",ye);return Be||(Ze?{prefix:"fas",iconName:Ze}:null)||{prefix:null,iconName:null}}function Dn(){return Sn}const Xu=()=>({prefix:null,iconName:null,rest:[]});function Ie(ye){let Be=ee;const Ze=Vi.reduce((tt,gt)=>(tt[gt]="".concat(We.cssPrefix,"-").concat(gt),tt),{});return te.forEach(tt=>{(ye.includes(Ze[tt])||ye.some(gt=>yl[tt].includes(gt)))&&(Be=tt)}),Be}function _t(ye){let Be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{family:Ze=ee}=Be,tt=ri[Ze][ye];if(Ze===K&&!ye)return"fad";const gt=mt[Ze][ye]||mt[Ze][tt],pe=ye in Yn.styles?ye:null;return gt||pe||null}function Ht(ye){let Be=[],Ze=null;return ye.forEach(tt=>{const gt=rl(We.cssPrefix,tt);gt?Ze=gt:tt&&Be.push(tt)}),{iconName:Ze,rest:Be}}function ti(ye){return ye.sort().filter((Be,Ze,tt)=>tt.indexOf(Be)===Ze)}function Hi(ye){let Be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{skipLookups:Ze=!1}=Be;let tt=null;const gt=xt.concat(st),pe=ti(ye.filter(Gt=>gt.includes(Gt))),Ce=ti(ye.filter(Gt=>!xt.includes(Gt))),De=pe.filter(Gt=>(tt=Gt,!V.includes(Gt))),[Xe=null]=De,Je=Ie(pe),vt=m(m({},Ht(Ce)),{},{prefix:_t(Xe,{family:Je})});return m(m(m({},vt),Wt({values:ye,family:Je,styles:Zn,config:We,canonical:vt,givenPrefix:tt})),Ee(Ze,tt,vt))}function Ee(ye,Be,Ze){let{prefix:tt,iconName:gt}=Ze;if(ye||!tt||!gt)return{prefix:tt,iconName:gt};const pe=Be==="fa"?Wc(gt):{},Ce=$r(tt,gt);return gt=pe.iconName||Ce||gt,tt=pe.prefix||tt,tt==="far"&&!Zn.far&&Zn.fas&&!We.autoFetchSvg&&(tt="fas"),{prefix:tt,iconName:gt}}const $e=te.filter(ye=>ye!==ee||ye!==K),bt=Object.keys(nt).filter(ye=>ye!==ee).map(ye=>Object.keys(nt[ye])).flat();function Wt(ye){const{values:Be,family:Ze,canonical:tt,givenPrefix:gt="",styles:pe={},config:Ce={}}=ye,De=Ze===K,Xe=Be.includes("fa-duotone")||Be.includes("fad"),Je=Ce.familyDefault==="duotone",vt=tt.prefix==="fad"||tt.prefix==="fa-duotone";if(!De&&(Xe||Je||vt)&&(tt.prefix="fad"),(Be.includes("fa-brands")||Be.includes("fab"))&&(tt.prefix="fab"),!tt.prefix&&$e.includes(Ze)&&(Object.keys(pe).find(ai=>bt.includes(ai))||Ce.autoFetchSvg)){const ai=re.get(Ze).defaultShortPrefixId;tt.prefix=ai,tt.iconName=$r(tt.prefix,tt.iconName)||tt.iconName}return(tt.prefix==="fa"||gt==="fa")&&(tt.prefix=Dn()||"fas"),tt}class vi{constructor(){this.definitions={}}add(){for(var Be=arguments.length,Ze=new Array(Be),tt=0;tt<Be;tt++)Ze[tt]=arguments[tt];const gt=Ze.reduce(this._pullDefinitions,{});Object.keys(gt).forEach(pe=>{this.definitions[pe]=m(m({},this.definitions[pe]||{}),gt[pe]),bl(pe,gt[pe]);const Ce=Tt[ee][pe];Ce&&bl(Ce,gt[pe]),Rn()})}reset(){this.definitions={}}_pullDefinitions(Be,Ze){const tt=Ze.prefix&&Ze.iconName&&Ze.icon?{0:Ze}:Ze;return Object.keys(tt).map(gt=>{const{prefix:pe,iconName:Ce,icon:De}=tt[gt],Xe=De[2];Be[pe]||(Be[pe]={}),Xe.length>0&&Xe.forEach(Je=>{typeof Je=="string"&&(Be[pe][Je]=De)}),Be[pe][Ce]=De}),Be}}let es=[],Qi={};const Ji={},Us=Object.keys(Ji);function er(ye,Be){let{mixoutsTo:Ze}=Be;return es=ye,Qi={},Object.keys(Ji).forEach(tt=>{Us.indexOf(tt)===-1&&delete Ji[tt]}),es.forEach(tt=>{const gt=tt.mixout?tt.mixout():{};if(Object.keys(gt).forEach(pe=>{typeof gt[pe]=="function"&&(Ze[pe]=gt[pe]),typeof gt[pe]=="object"&&Object.keys(gt[pe]).forEach(Ce=>{Ze[pe]||(Ze[pe]={}),Ze[pe][Ce]=gt[pe][Ce]})}),tt.hooks){const pe=tt.hooks();Object.keys(pe).forEach(Ce=>{Qi[Ce]||(Qi[Ce]=[]),Qi[Ce].push(pe[Ce])})}tt.provides&&tt.provides(Ji)}),Ze}function Cr(ye,Be){for(var Ze=arguments.length,tt=new Array(Ze>2?Ze-2:0),gt=2;gt<Ze;gt++)tt[gt-2]=arguments[gt];return(Qi[ye]||[]).forEach(Ce=>{Be=Ce.apply(null,[Be,...tt])}),Be}function rr(ye){for(var Be=arguments.length,Ze=new Array(Be>1?Be-1:0),tt=1;tt<Be;tt++)Ze[tt-1]=arguments[tt];(Qi[ye]||[]).forEach(pe=>{pe.apply(null,Ze)})}function xr(){const ye=arguments[0],Be=Array.prototype.slice.call(arguments,1);return Ji[ye]?Ji[ye].apply(null,Be):void 0}function Nn(ye){ye.prefix==="fa"&&(ye.prefix="fas");let{iconName:Be}=ye;const Ze=ye.prefix||Dn();if(Be)return Be=$r(Ze,Be)||Be,mo(_a.definitions,Ze,Be)||mo(Yn.styles,Ze,Be)}const _a=new vi,wn={noAuto:()=>{We.autoReplaceSvg=!1,We.observeMutations=!1,rr("noAuto")},config:We,dom:{i2svg:function(){let ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return I?(rr("beforeI2svg",ye),xr("pseudoElements2svg",ye),xr("i2svg",ye)):Promise.reject(new Error("Operation requires a DOM of some kind."))},watch:function(){let ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{autoReplaceSvgRoot:Be}=ye;We.autoReplaceSvg===!1&&(We.autoReplaceSvg=!0),We.observeMutations=!0,Kr(()=>{uu({autoReplaceSvgRoot:Be}),rr("watch",ye)})}},parse:{icon:ye=>{if(ye===null)return null;if(typeof ye=="object"&&ye.prefix&&ye.iconName)return{prefix:ye.prefix,iconName:$r(ye.prefix,ye.iconName)||ye.iconName};if(Array.isArray(ye)&&ye.length===2){const Be=ye[1].indexOf("fa-")===0?ye[1].slice(3):ye[1],Ze=_t(ye[0]);return{prefix:Ze,iconName:$r(Ze,Be)||Be}}if(typeof ye=="string"&&(ye.indexOf("".concat(We.cssPrefix,"-"))>-1||ye.match(oi))){const Be=Hi(ye.split(" "),{skipLookups:!0});return{prefix:Be.prefix||Dn(),iconName:$r(Be.prefix,Be.iconName)||Be.iconName}}if(typeof ye=="string"){const Be=Dn();return{prefix:Be,iconName:$r(Be,ye)||ye}}}},library:_a,findIconDefinition:Nn,toHtml:dn},uu=function(){let ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{autoReplaceSvgRoot:Be=T}=ye;(Object.keys(Yn.styles).length>0||We.autoFetchSvg)&&I&&We.autoReplaceSvg&&wn.dom.i2svg({node:Be})};function Hc(ye,Be){return Object.defineProperty(ye,"abstract",{get:Be}),Object.defineProperty(ye,"html",{get:function(){return ye.abstract.map(Ze=>dn(Ze))}}),Object.defineProperty(ye,"node",{get:function(){if(!I)return;const Ze=T.createElement("div");return Ze.innerHTML=ye.html,Ze.children}}),ye}function gd(ye){let{children:Be,main:Ze,mask:tt,attributes:gt,styles:pe,transform:Ce}=ye;if(pr(Ce)&&Ze.found&&!tt.found){const{width:De,height:Xe}=Ze,Je={x:De/Xe/2,y:.5};gt.style=qi(m(m({},pe),{},{"transform-origin":"".concat(Je.x+Ce.x/16,"em ").concat(Je.y+Ce.y/16,"em")}))}return[{tag:"svg",attributes:gt,children:Be}]}function kl(ye){let{prefix:Be,iconName:Ze,children:tt,attributes:gt,symbol:pe}=ye;const Ce=pe===!0?"".concat(Be,"-").concat(We.cssPrefix,"-").concat(Ze):pe;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:m(m({},gt),{},{id:Ce}),children:tt}]}]}function aa(ye){const{icons:{main:Be,mask:Ze},prefix:tt,iconName:gt,transform:pe,symbol:Ce,title:De,maskId:Xe,titleId:Je,extra:vt,watchable:Gt=!1}=ye,{width:ai,height:As}=Ze.found?Ze:Be,Cs=fe.includes(tt),zs=[We.replacementClass,gt?"".concat(We.cssPrefix,"-").concat(gt):""].filter(Jn=>vt.classes.indexOf(Jn)===-1).filter(Jn=>Jn!==""||!!Jn).concat(vt.classes).join(" ");let Ys={children:[],attributes:m(m({},vt.attributes),{},{"data-prefix":tt,"data-icon":gt,class:zs,role:vt.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(ai," ").concat(As)})};const tr=Cs&&!~vt.classes.indexOf("fa-fw")?{width:"".concat(ai/As*16*.0625,"em")}:{};Gt&&(Ys.attributes[Nt]=""),De&&(Ys.children.push({tag:"title",attributes:{id:Ys.attributes["aria-labelledby"]||"title-".concat(Je||$t())},children:[De]}),delete Ys.attributes.title);const Wr=m(m({},Ys),{},{prefix:tt,iconName:gt,main:Be,mask:Ze,maskId:Xe,transform:pe,symbol:Ce,styles:m(m({},tr),vt.styles)}),{children:ja,attributes:Ml}=Ze.found&&Be.found?xr("generateAbstractMask",Wr)||{children:[],attributes:{}}:xr("generateAbstractIcon",Wr)||{children:[],attributes:{}};return Wr.children=ja,Wr.attributes=Ml,Ce?kl(Wr):gd(Wr)}function hu(ye){const{content:Be,width:Ze,height:tt,transform:gt,title:pe,extra:Ce,watchable:De=!1}=ye,Xe=m(m(m({},Ce.attributes),pe?{title:pe}:{}),{},{class:Ce.classes.join(" ")});De&&(Xe[Nt]="");const Je=m({},Ce.styles);pr(gt)&&(Je.transform=ir({transform:gt,startCentered:!0,width:Ze,height:tt}),Je["-webkit-transform"]=Je.transform);const vt=qi(Je);vt.length>0&&(Xe.style=vt);const Gt=[];return Gt.push({tag:"span",attributes:Xe,children:[Be]}),pe&&Gt.push({tag:"span",attributes:{class:"sr-only"},children:[pe]}),Gt}function Ph(ye){const{content:Be,title:Ze,extra:tt}=ye,gt=m(m(m({},tt.attributes),Ze?{title:Ze}:{}),{},{class:tt.classes.join(" ")}),pe=qi(tt.styles);pe.length>0&&(gt.style=pe);const Ce=[];return Ce.push({tag:"span",attributes:gt,children:[Be]}),Ze&&Ce.push({tag:"span",attributes:{class:"sr-only"},children:[Ze]}),Ce}const{styles:Zu}=Yn;function Yc(ye){const Be=ye[0],Ze=ye[1],[tt]=ye.slice(4);let gt=null;return Array.isArray(tt)?gt={tag:"g",attributes:{class:"".concat(We.cssPrefix,"-").concat(hi.GROUP)},children:[{tag:"path",attributes:{class:"".concat(We.cssPrefix,"-").concat(hi.SECONDARY),fill:"currentColor",d:tt[0]}},{tag:"path",attributes:{class:"".concat(We.cssPrefix,"-").concat(hi.PRIMARY),fill:"currentColor",d:tt[1]}}]}:gt={tag:"path",attributes:{fill:"currentColor",d:tt}},{found:!0,width:Be,height:Ze,icon:gt}}const Ku={found:!1,width:512,height:512};function qu(ye,Be){!qt&&!We.showMissingIcons&&ye&&console.error('Icon with name "'.concat(ye,'" and prefix "').concat(Be,'" is missing.'))}function _d(ye,Be){let Ze=Be;return Be==="fa"&&We.styleDefault!==null&&(Be=Dn()),new Promise((tt,gt)=>{if(Ze==="fa"){const pe=Wc(ye)||{};ye=pe.iconName||ye,Be=pe.prefix||Be}if(ye&&Be&&Zu[Be]&&Zu[Be][ye]){const pe=Zu[Be][ye];return tt(Yc(pe))}qu(ye,Be),tt(m(m({},Ku),{},{icon:We.showMissingIcons&&ye?xr("missingIconAbstract")||{}:{}}))})}const Qu=()=>{},du=We.measurePerformance&&R&&R.mark&&R.measure?R:{mark:Qu,measure:Qu},fu='FA "6.7.2"',Ju=ye=>(du.mark("".concat(fu," ").concat(ye," begins")),()=>$u(ye)),$u=ye=>{du.mark("".concat(fu," ").concat(ye," ends")),du.measure("".concat(fu," ").concat(ye),"".concat(fu," ").concat(ye," begins"),"".concat(fu," ").concat(ye," ends"))};var pu={begin:Ju,end:$u};const Ul=()=>{};function oc(ye){return typeof(ye.getAttribute?ye.getAttribute(Nt):null)=="string"}function mu(ye){const Be=ye.getAttribute?ye.getAttribute(Pi):null,Ze=ye.getAttribute?ye.getAttribute(gi):null;return Be&&Ze}function r2(ye){return ye&&ye.classList&&ye.classList.contains&&ye.classList.contains(We.replacementClass)}function lc(){return We.autoReplaceSvg===!0?so.replace:so[We.autoReplaceSvg]||so.replace}function Xc(ye){return T.createElementNS("http://www.w3.org/2000/svg",ye)}function go(ye){return T.createElement(ye)}function Wo(ye){let Be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{ceFn:Ze=ye.tag==="svg"?Xc:go}=Be;if(typeof ye=="string")return T.createTextNode(ye);const tt=Ze(ye.tag);return Object.keys(ye.attributes||[]).forEach(function(pe){tt.setAttribute(pe,ye.attributes[pe])}),(ye.children||[]).forEach(function(pe){tt.appendChild(Wo(pe,{ceFn:Ze}))}),tt}function Oo(ye){let Be=" ".concat(ye.outerHTML," ");return Be="".concat(Be,"Font Awesome fontawesome.com "),Be}const so={replace:function(ye){const Be=ye[0];if(Be.parentNode)if(ye[1].forEach(Ze=>{Be.parentNode.insertBefore(Wo(Ze),Be)}),Be.getAttribute(Nt)===null&&We.keepOriginalSource){let Ze=T.createComment(Oo(Be));Be.parentNode.replaceChild(Ze,Be)}else Be.remove()},nest:function(ye){const Be=ye[0],Ze=ye[1];if(~ls(Be).indexOf(We.replacementClass))return so.replace(ye);const tt=new RegExp("".concat(We.cssPrefix,"-.*"));if(delete Ze[0].attributes.id,Ze[0].attributes.class){const pe=Ze[0].attributes.class.split(" ").reduce((Ce,De)=>(De===We.replacementClass||De.match(tt)?Ce.toSvg.push(De):Ce.toNode.push(De),Ce),{toNode:[],toSvg:[]});Ze[0].attributes.class=pe.toSvg.join(" "),pe.toNode.length===0?Be.removeAttribute("class"):Be.setAttribute("class",pe.toNode.join(" "))}const gt=Ze.map(pe=>dn(pe)).join(`
`);Be.setAttribute(Nt,""),Be.innerHTML=gt}};function vd(ye){ye()}function ro(ye,Be){const Ze=typeof Be=="function"?Be:Ul;if(ye.length===0)Ze();else{let tt=vd;We.mutateApproach===wi&&(tt=M.requestAnimationFrame||vd),tt(()=>{const gt=lc(),pe=pu.begin("mutate");ye.map(gt),pe(),Ze()})}}let nl=!1;function va(){nl=!0}function _o(){nl=!1}let eh=null;function cc(ye){if(!O||!We.observeMutations)return;const{treeCallback:Be=Ul,nodeCallback:Ze=Ul,pseudoElementsCallback:tt=Ul,observeMutationsRoot:gt=T}=ye;eh=new O(pe=>{if(nl)return;const Ce=Dn();Ui(pe).forEach(De=>{if(De.type==="childList"&&De.addedNodes.length>0&&!oc(De.addedNodes[0])&&(We.searchPseudoElements&&tt(De.target),Be(De.target)),De.type==="attributes"&&De.target.parentNode&&We.searchPseudoElements&&tt(De.target.parentNode),De.type==="attributes"&&oc(De.target)&&~bs.indexOf(De.attributeName))if(De.attributeName==="class"&&mu(De.target)){const{prefix:Xe,iconName:Je}=Hi(ls(De.target));De.target.setAttribute(Pi,Xe||Ce),Je&&De.target.setAttribute(gi,Je)}else r2(De.target)&&Ze(De.target)})}),I&&eh.observe(gt,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}function Ad(){eh&&eh.disconnect()}function gu(ye){const Be=ye.getAttribute("style");let Ze=[];return Be&&(Ze=Be.split(";").reduce((tt,gt)=>{const pe=gt.split(":"),Ce=pe[0],De=pe.slice(1);return Ce&&De.length>0&&(tt[Ce]=De.join(":").trim()),tt},{})),Ze}function Oh(ye){const Be=ye.getAttribute("data-prefix"),Ze=ye.getAttribute("data-icon"),tt=ye.innerText!==void 0?ye.innerText.trim():"";let gt=Hi(ls(ye));return gt.prefix||(gt.prefix=Dn()),Be&&Ze&&(gt.prefix=Be,gt.iconName=Ze),gt.iconName&&gt.prefix||(gt.prefix&&tt.length>0&&(gt.iconName=fn(gt.prefix,ye.innerText)||Or(gt.prefix,xl(ye.innerText))),!gt.iconName&&We.autoFetchSvg&&ye.firstChild&&ye.firstChild.nodeType===Node.TEXT_NODE&&(gt.iconName=ye.firstChild.data)),gt}function Rh(ye){const Be=Ui(ye.attributes).reduce((gt,pe)=>(gt.name!=="class"&&gt.name!=="style"&&(gt[pe.name]=pe.value),gt),{}),Ze=ye.getAttribute("title"),tt=ye.getAttribute("data-fa-title-id");return We.autoA11y&&(Ze?Be["aria-labelledby"]="".concat(We.replacementClass,"-title-").concat(tt||$t()):(Be["aria-hidden"]="true",Be.focusable="false")),Be}function th(){return{iconName:null,title:null,titleId:null,prefix:null,transform:hs,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function n1(ye){let Be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0};const{iconName:Ze,prefix:tt,rest:gt}=Oh(ye),pe=Rh(ye),Ce=Cr("parseNodeAttributes",{},ye);let De=Be.styleParser?gu(ye):[];return m({iconName:Ze,title:ye.getAttribute("title"),titleId:ye.getAttribute("data-fa-title-id"),prefix:tt,transform:hs,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:gt,styles:De,attributes:pe}},Ce)}const{styles:a1}=Yn;function Cd(ye){const Be=We.autoReplaceSvg==="nest"?n1(ye,{styleParser:!1}):n1(ye);return~Be.extra.classes.indexOf(ji)?xr("generateLayersText",ye,Be):xr("generateSvgReplacementMutation",ye,Be)}function _u(){return[...X,...xt]}function Dh(ye){let Be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!I)return Promise.resolve();const Ze=T.documentElement.classList,tt=vt=>Ze.add("".concat(bi,"-").concat(vt)),gt=vt=>Ze.remove("".concat(bi,"-").concat(vt)),pe=We.autoFetchSvg?_u():V.concat(Object.keys(a1));pe.includes("fa")||pe.push("fa");const Ce=[".".concat(ji,":not([").concat(Nt,"])")].concat(pe.map(vt=>".".concat(vt,":not([").concat(Nt,"])"))).join(", ");if(Ce.length===0)return Promise.resolve();let De=[];try{De=Ui(ye.querySelectorAll(Ce))}catch{}if(De.length>0)tt("pending"),gt("complete");else return Promise.resolve();const Xe=pu.begin("onTree"),Je=De.reduce((vt,Gt)=>{try{const ai=Cd(Gt);ai&&vt.push(ai)}catch(ai){qt||ai.name==="MissingIcon"&&console.error(ai)}return vt},[]);return new Promise((vt,Gt)=>{Promise.all(Je).then(ai=>{ro(ai,()=>{tt("active"),tt("complete"),gt("pending"),typeof Be=="function"&&Be(),Xe(),vt()})}).catch(ai=>{Xe(),Gt(ai)})})}function xd(ye){let Be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;Cd(ye).then(Ze=>{Ze&&ro([Ze],Be)})}function o1(ye){return function(Be){let Ze=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const tt=(Be||{}).icon?Be:Nn(Be||{});let{mask:gt}=Ze;return gt&&(gt=(gt||{}).icon?gt:Nn(gt||{})),ye(tt,m(m({},Ze),{},{mask:gt}))}}const l1=function(ye){let Be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{transform:Ze=hs,symbol:tt=!1,mask:gt=null,maskId:pe=null,title:Ce=null,titleId:De=null,classes:Xe=[],attributes:Je={},styles:vt={}}=Be;if(!ye)return;const{prefix:Gt,iconName:ai,icon:As}=ye;return Hc(m({type:"icon"},ye),()=>(rr("beforeDOMElementCreation",{iconDefinition:ye,params:Be}),We.autoA11y&&(Ce?Je["aria-labelledby"]="".concat(We.replacementClass,"-title-").concat(De||$t()):(Je["aria-hidden"]="true",Je.focusable="false")),aa({icons:{main:Yc(As),mask:gt?Yc(gt.icon):{found:!1,width:null,height:null,icon:{}}},prefix:Gt,iconName:ai,transform:m(m({},hs),Ze),symbol:tt,title:Ce,maskId:pe,titleId:De,extra:{attributes:Je,styles:vt,classes:Xe}})))};var vu={mixout(){return{icon:o1(l1)}},hooks(){return{mutationObserverCallbacks(ye){return ye.treeCallback=Dh,ye.nodeCallback=xd,ye}}},provides(ye){ye.i2svg=function(Be){const{node:Ze=T,callback:tt=()=>{}}=Be;return Dh(Ze,tt)},ye.generateSvgReplacementMutation=function(Be,Ze){const{iconName:tt,title:gt,titleId:pe,prefix:Ce,transform:De,symbol:Xe,mask:Je,maskId:vt,extra:Gt}=Ze;return new Promise((ai,As)=>{Promise.all([_d(tt,Ce),Je.iconName?_d(Je.iconName,Je.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(Cs=>{let[zs,Ys]=Cs;ai([Be,aa({icons:{main:zs,mask:Ys},prefix:Ce,iconName:tt,transform:De,symbol:Xe,maskId:vt,title:gt,titleId:pe,extra:Gt,watchable:!0})])}).catch(As)})},ye.generateAbstractIcon=function(Be){let{children:Ze,attributes:tt,main:gt,transform:pe,styles:Ce}=Be;const De=qi(Ce);De.length>0&&(tt.style=De);let Xe;return pr(pe)&&(Xe=xr("generateAbstractTransformGrouping",{main:gt,transform:pe,containerWidth:gt.width,iconWidth:gt.width})),Ze.push(Xe||gt.icon),{children:Ze,attributes:tt}}}},ih={mixout(){return{layer(ye){let Be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{classes:Ze=[]}=Be;return Hc({type:"layer"},()=>{rr("beforeDOMElementCreation",{assembler:ye,params:Be});let tt=[];return ye(gt=>{Array.isArray(gt)?gt.map(pe=>{tt=tt.concat(pe.abstract)}):tt=tt.concat(gt.abstract)}),[{tag:"span",attributes:{class:["".concat(We.cssPrefix,"-layers"),...Ze].join(" ")},children:tt}]})}}}},n2={mixout(){return{counter(ye){let Be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{title:Ze=null,classes:tt=[],attributes:gt={},styles:pe={}}=Be;return Hc({type:"counter",content:ye},()=>(rr("beforeDOMElementCreation",{content:ye,params:Be}),Ph({content:ye.toString(),title:Ze,extra:{attributes:gt,styles:pe,classes:["".concat(We.cssPrefix,"-layers-counter"),...tt]}})))}}}},c1={mixout(){return{text(ye){let Be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{transform:Ze=hs,title:tt=null,classes:gt=[],attributes:pe={},styles:Ce={}}=Be;return Hc({type:"text",content:ye},()=>(rr("beforeDOMElementCreation",{content:ye,params:Be}),hu({content:ye,transform:m(m({},hs),Ze),title:tt,extra:{attributes:pe,styles:Ce,classes:["".concat(We.cssPrefix,"-layers-text"),...gt]}})))}}},provides(ye){ye.generateLayersText=function(Be,Ze){const{title:tt,transform:gt,extra:pe}=Ze;let Ce=null,De=null;if(N){const Xe=parseInt(getComputedStyle(Be).fontSize,10),Je=Be.getBoundingClientRect();Ce=Je.width/Xe,De=Je.height/Xe}return We.autoA11y&&!tt&&(pe.attributes["aria-hidden"]="true"),Promise.resolve([Be,hu({content:Be.innerHTML,width:Ce,height:De,transform:gt,title:tt,extra:pe,watchable:!0})])}}};const mf=new RegExp('"',"ug"),bd=[1105920,1112319],a2=m(m(m(m({},{FontAwesome:{normal:"fas",400:"fas"}}),Q),Me),Ve),sh=Object.keys(a2).reduce((ye,Be)=>(ye[Be.toLowerCase()]=a2[Be],ye),{}),o2=Object.keys(sh).reduce((ye,Be)=>{const Ze=sh[Be];return ye[Be]=Ze[900]||[...Object.entries(Ze)][0][1],ye},{});function l2(ye){const Be=ye.replace(mf,""),Ze=Lo(Be,0),tt=Ze>=bd[0]&&Ze<=bd[1],gt=Be.length===2?Be[0]===Be[1]:!1;return{value:xl(gt?Be[0]:Be),isSecondary:tt||gt}}function Nh(ye,Be){const Ze=ye.replace(/^['"]|['"]$/g,"").toLowerCase(),tt=parseInt(Be),gt=isNaN(tt)?"normal":tt;return(sh[Ze]||{})[gt]||o2[Ze]}function u1(ye,Be){const Ze="".concat(si).concat(Be.replace(":","-"));return new Promise((tt,gt)=>{if(ye.getAttribute(Ze)!==null)return tt();const Ce=Ui(ye.children).filter(ai=>ai.getAttribute(Kt)===Be)[0],De=M.getComputedStyle(ye,Be),Xe=De.getPropertyValue("font-family"),Je=Xe.match(ki),vt=De.getPropertyValue("font-weight"),Gt=De.getPropertyValue("content");if(Ce&&!Je)return ye.removeChild(Ce),tt();if(Je&&Gt!=="none"&&Gt!==""){const ai=De.getPropertyValue("content");let As=Nh(Xe,vt);const{value:Cs,isSecondary:zs}=l2(ai),Ys=Je[0].startsWith("FontAwesome");let tr=Or(As,Cs),Wr=tr;if(Ys){const ja=Qn(Cs);ja.iconName&&ja.prefix&&(tr=ja.iconName,As=ja.prefix)}if(tr&&!zs&&(!Ce||Ce.getAttribute(Pi)!==As||Ce.getAttribute(gi)!==Wr)){ye.setAttribute(Ze,Wr),Ce&&ye.removeChild(Ce);const ja=th(),{extra:Ml}=ja;Ml.attributes[Kt]=Be,_d(tr,As).then(Jn=>{const hc=aa(m(m({},ja),{},{icons:{main:Jn,mask:Xu()},prefix:As,iconName:Wr,extra:Ml,watchable:!0})),Ro=T.createElementNS("http://www.w3.org/2000/svg","svg");Be==="::before"?ye.insertBefore(Ro,ye.firstChild):ye.appendChild(Ro),Ro.outerHTML=hc.map(qc=>dn(qc)).join(`
`),ye.removeAttribute(Ze),tt()}).catch(gt)}else tt()}else tt()})}function wh(ye){return Promise.all([u1(ye,"::before"),u1(ye,"::after")])}function c2(ye){return ye.parentNode!==document.head&&!~Ni.indexOf(ye.tagName.toUpperCase())&&!ye.getAttribute(Kt)&&(!ye.parentNode||ye.parentNode.tagName!=="svg")}function Bh(ye){if(I)return new Promise((Be,Ze)=>{const tt=Ui(ye.querySelectorAll("*")).filter(c2).map(wh),gt=pu.begin("searchPseudoElements");va(),Promise.all(tt).then(()=>{gt(),_o(),Be()}).catch(()=>{gt(),_o(),Ze()})})}var Zc={hooks(){return{mutationObserverCallbacks(ye){return ye.pseudoElementsCallback=Bh,ye}}},provides(ye){ye.pseudoElements2svg=function(Be){const{node:Ze=T}=Be;We.searchPseudoElements&&Bh(Ze)}}};let Au=!1;var u2={mixout(){return{dom:{unwatch(){va(),Au=!0}}}},hooks(){return{bootstrap(){cc(Cr("mutationObserverCallbacks",{}))},noAuto(){Ad()},watch(ye){const{observeMutationsRoot:Be}=ye;Au?_o():cc(Cr("mutationObserverCallbacks",{observeMutationsRoot:Be}))}}}};const Kc=ye=>{let Be={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return ye.toLowerCase().split(" ").reduce((Ze,tt)=>{const gt=tt.toLowerCase().split("-"),pe=gt[0];let Ce=gt.slice(1).join("-");if(pe&&Ce==="h")return Ze.flipX=!0,Ze;if(pe&&Ce==="v")return Ze.flipY=!0,Ze;if(Ce=parseFloat(Ce),isNaN(Ce))return Ze;switch(pe){case"grow":Ze.size=Ze.size+Ce;break;case"shrink":Ze.size=Ze.size-Ce;break;case"left":Ze.x=Ze.x-Ce;break;case"right":Ze.x=Ze.x+Ce;break;case"up":Ze.y=Ze.y-Ce;break;case"down":Ze.y=Ze.y+Ce;break;case"rotate":Ze.rotate=Ze.rotate+Ce;break}return Ze},Be)};var zh={mixout(){return{parse:{transform:ye=>Kc(ye)}}},hooks(){return{parseNodeAttributes(ye,Be){const Ze=Be.getAttribute("data-fa-transform");return Ze&&(ye.transform=Kc(Ze)),ye}}},provides(ye){ye.generateAbstractTransformGrouping=function(Be){let{main:Ze,transform:tt,containerWidth:gt,iconWidth:pe}=Be;const Ce={transform:"translate(".concat(gt/2," 256)")},De="translate(".concat(tt.x*32,", ").concat(tt.y*32,") "),Xe="scale(".concat(tt.size/16*(tt.flipX?-1:1),", ").concat(tt.size/16*(tt.flipY?-1:1),") "),Je="rotate(".concat(tt.rotate," 0 0)"),vt={transform:"".concat(De," ").concat(Xe," ").concat(Je)},Gt={transform:"translate(".concat(pe/2*-1," -256)")},ai={outer:Ce,inner:vt,path:Gt};return{tag:"g",attributes:m({},ai.outer),children:[{tag:"g",attributes:m({},ai.inner),children:[{tag:Ze.icon.tag,children:Ze.icon.children,attributes:m(m({},Ze.icon.attributes),ai.path)}]}]}}}};const uc={x:0,y:0,width:"100%",height:"100%"};function Cu(ye){let Be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return ye.attributes&&(ye.attributes.fill||Be)&&(ye.attributes.fill="black"),ye}function h1(ye){return ye.tag==="g"?ye.children:[ye]}var xu={hooks(){return{parseNodeAttributes(ye,Be){const Ze=Be.getAttribute("data-fa-mask"),tt=Ze?Hi(Ze.split(" ").map(gt=>gt.trim())):Xu();return tt.prefix||(tt.prefix=Dn()),ye.mask=tt,ye.maskId=Be.getAttribute("data-fa-mask-id"),ye}}},provides(ye){ye.generateAbstractMask=function(Be){let{children:Ze,attributes:tt,main:gt,mask:pe,maskId:Ce,transform:De}=Be;const{width:Xe,icon:Je}=gt,{width:vt,icon:Gt}=pe,ai=Js({transform:De,containerWidth:vt,iconWidth:Xe}),As={tag:"rect",attributes:m(m({},uc),{},{fill:"white"})},Cs=Je.children?{children:Je.children.map(Cu)}:{},zs={tag:"g",attributes:m({},ai.inner),children:[Cu(m({tag:Je.tag,attributes:m(m({},Je.attributes),ai.path)},Cs))]},Ys={tag:"g",attributes:m({},ai.outer),children:[zs]},tr="mask-".concat(Ce||$t()),Wr="clip-".concat(Ce||$t()),ja={tag:"mask",attributes:m(m({},uc),{},{id:tr,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[As,Ys]},Ml={tag:"defs",children:[{tag:"clipPath",attributes:{id:Wr},children:h1(Gt)},ja]};return Ze.push(Ml,{tag:"rect",attributes:m({fill:"currentColor","clip-path":"url(#".concat(Wr,")"),mask:"url(#".concat(tr,")")},uc)}),{children:Ze,attributes:tt}}}},gf={provides(ye){let Be=!1;M.matchMedia&&(Be=M.matchMedia("(prefers-reduced-motion: reduce)").matches),ye.missingIconAbstract=function(){const Ze=[],tt={fill:"currentColor"},gt={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};Ze.push({tag:"path",attributes:m(m({},tt),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});const pe=m(m({},gt),{},{attributeName:"opacity"}),Ce={tag:"circle",attributes:m(m({},tt),{},{cx:"256",cy:"364",r:"28"}),children:[]};return Be||Ce.children.push({tag:"animate",attributes:m(m({},gt),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:m(m({},pe),{},{values:"1;0;1;1;0;1;"})}),Ze.push(Ce),Ze.push({tag:"path",attributes:m(m({},tt),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:Be?[]:[{tag:"animate",attributes:m(m({},pe),{},{values:"1;0;0;0;0;1;"})}]}),Be||Ze.push({tag:"path",attributes:m(m({},tt),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:m(m({},pe),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:Ze}}}},Sd={hooks(){return{parseNodeAttributes(ye,Be){const Ze=Be.getAttribute("data-fa-symbol"),tt=Ze===null?!1:Ze===""?!0:Ze;return ye.symbol=tt,ye}}}},Fh=[to,vu,ih,n2,c1,Zc,u2,zh,xu,gf,Sd];er(Fh,{mixoutsTo:wn});const h2=wn.noAuto,vo=wn.config,d2=wn.library,d1=wn.dom,rh=wn.parse,f2=wn.findIconDefinition,Ao=wn.toHtml,p2=wn.icon,m2=wn.layer,f1=wn.text,kh=wn.counter},"../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs":(l,c,u)=>{u.r(c),u.d(c,{fa0:()=>p,fa1:()=>m,fa2:()=>_,fa3:()=>d,fa4:()=>h,fa5:()=>x,fa6:()=>A,fa7:()=>S,fa8:()=>E,fa9:()=>b,faA:()=>yu,faAd:()=>qA,faAdd:()=>wF,faAddressBook:()=>Hn,faAddressCard:()=>e8,faAdjust:()=>zR,faAirFreshener:()=>la,faAlignCenter:()=>yx,faAlignJustify:()=>X4,faAlignLeft:()=>OC,faAlignRight:()=>vN,faAllergies:()=>DN,faAmbulance:()=>xf,faAmericanSignLanguageInterpreting:()=>a0,faAnchor:()=>KU,faAnchorCircleCheck:()=>Se,faAnchorCircleExclamation:()=>T8,faAnchorCircleXmark:()=>iy,faAnchorLock:()=>j3,faAngleDoubleDown:()=>Tt,faAngleDoubleLeft:()=>eU,faAngleDoubleRight:()=>F7,faAngleDoubleUp:()=>x6,faAngleDown:()=>jx,faAngleLeft:()=>uj,faAngleRight:()=>G4,faAngleUp:()=>fk,faAnglesDown:()=>Ye,faAnglesLeft:()=>SD,faAnglesRight:()=>vA,faAnglesUp:()=>ES,faAngry:()=>eN,faAnkh:()=>vo,faAppleAlt:()=>fS,faAppleWhole:()=>Cm,faArchive:()=>Or,faArchway:()=>Bg,faAreaChart:()=>rg,faArrowAltCircleDown:()=>zx,faArrowAltCircleLeft:()=>Jm,faArrowAltCircleRight:()=>M1,faArrowAltCircleUp:()=>gC,faArrowCircleDown:()=>aE,faArrowCircleLeft:()=>mE,faArrowCircleRight:()=>QA,faArrowCircleUp:()=>B3,faArrowDown:()=>Ft,faArrowDown19:()=>rv,faArrowDown91:()=>$r,faArrowDownAZ:()=>av,faArrowDownLong:()=>bA,faArrowDownShortWide:()=>U6,faArrowDownUpAcrossLine:()=>ls,faArrowDownUpLock:()=>JR,faArrowDownWideShort:()=>r8,faArrowDownZA:()=>y3,faArrowLeft:()=>Up,faArrowLeftLong:()=>So,faArrowLeftRotate:()=>GE,faArrowPointer:()=>H0,faArrowRight:()=>Yg,faArrowRightArrowLeft:()=>Yp,faArrowRightFromBracket:()=>c1,faArrowRightFromFile:()=>TD,faArrowRightLong:()=>Wx,faArrowRightRotate:()=>W2,faArrowRightToBracket:()=>C1,faArrowRightToCity:()=>$8,faArrowRightToFile:()=>V7,faArrowRotateBack:()=>lv,faArrowRotateBackward:()=>ax,faArrowRotateForward:()=>Jf,faArrowRotateLeft:()=>Y2,faArrowRotateRight:()=>I1,faArrowTrendDown:()=>JU,faArrowTrendUp:()=>tD,faArrowTurnDown:()=>AD,faArrowTurnUp:()=>mv,faArrowUp:()=>mF,faArrowUp19:()=>_S,faArrowUp91:()=>Hd,faArrowUpAZ:()=>K0,faArrowUpFromBracket:()=>vM,faArrowUpFromGroundWater:()=>JM,faArrowUpFromWaterPump:()=>mV,faArrowUpLong:()=>hi,faArrowUpRightDots:()=>Hk,faArrowUpRightFromSquare:()=>hm,faArrowUpShortWide:()=>PD,faArrowUpWideShort:()=>f0,faArrowUpZA:()=>ZD,faArrows:()=>UF,faArrowsAlt:()=>d8,faArrowsAltH:()=>pE,faArrowsAltV:()=>RU,faArrowsDownToLine:()=>Cx,faArrowsDownToPeople:()=>FA,faArrowsH:()=>rm,faArrowsLeftRight:()=>GA,faArrowsLeftRightToLine:()=>oy,faArrowsRotate:()=>XA,faArrowsSpin:()=>VN,faArrowsSplitUpAndLeft:()=>dj,faArrowsToCircle:()=>T,faArrowsToDot:()=>op,faArrowsToEye:()=>dS,faArrowsTurnRight:()=>zA,faArrowsTurnToDots:()=>$S,faArrowsUpDown:()=>xN,faArrowsUpDownLeftRight:()=>dy,faArrowsUpToLine:()=>Ve,faArrowsV:()=>kj,faAslInterpreting:()=>pv,faAssistiveListeningSystems:()=>Vz,faAsterisk:()=>d1,faAt:()=>I,faAtlas:()=>KA,faAtom:()=>ot,faAudioDescription:()=>ru,faAustralSign:()=>O2,faAutomobile:()=>Bv,faAward:()=>Jk,faB:()=>Tv,faBaby:()=>GF,faBabyCarriage:()=>cD,faBackspace:()=>xv,faBackward:()=>Kr,faBackwardFast:()=>A8,faBackwardStep:()=>td,faBacon:()=>Ub,faBacteria:()=>gk,faBacterium:()=>Op,faBagShopping:()=>dc,faBahai:()=>OI,faBahtSign:()=>bj,faBalanceScale:()=>ej,faBalanceScaleLeft:()=>j2,faBalanceScaleRight:()=>RA,faBan:()=>W0,faBanSmoking:()=>L8,faBandAid:()=>Hj,faBandage:()=>WI,faBangladeshiTakaSign:()=>g1,faBank:()=>IV,faBarChart:()=>_g,faBarcode:()=>kV,faBars:()=>_o,faBarsProgress:()=>su,faBarsStaggered:()=>U1,faBaseball:()=>gI,faBaseballBall:()=>TF,faBaseballBatBall:()=>w1,faBasketShopping:()=>Tp,faBasketball:()=>pC,faBasketballBall:()=>mC,faBath:()=>$5,faBathtub:()=>g7,faBattery:()=>rF,faBattery0:()=>$s,faBattery2:()=>lD,faBattery3:()=>o4,faBattery4:()=>lj,faBattery5:()=>nF,faBatteryCar:()=>G3,faBatteryEmpty:()=>_s,faBatteryFull:()=>dI,faBatteryHalf:()=>_v,faBatteryQuarter:()=>oD,faBatteryThreeQuarters:()=>wI,faBed:()=>C,faBedPulse:()=>z3,faBeer:()=>os,faBeerMugEmpty:()=>ki,faBell:()=>z,faBellConcierge:()=>io,faBellSlash:()=>uk,faBezierCurve:()=>ck,faBible:()=>wC,faBicycle:()=>v2,faBiking:()=>gU,faBinoculars:()=>Nn,faBiohazard:()=>H2,faBirthdayCake:()=>OE,faBitcoinSign:()=>Ap,faBlackboard:()=>HA,faBlender:()=>qF,faBlenderPhone:()=>qb,faBlind:()=>Dz,faBlog:()=>yl,faBold:()=>V_,faBolt:()=>Pv,faBoltLightning:()=>N2,faBomb:()=>lE,faBone:()=>gV,faBong:()=>Zt,faBook:()=>aj,faBookAtlas:()=>nm,faBookBible:()=>Z8,faBookBookmark:()=>Lm,faBookDead:()=>VS,faBookJournalWhills:()=>mN,faBookMedical:()=>$f,faBookOpen:()=>D9,faBookOpenReader:()=>Hx,faBookQuran:()=>QD,faBookReader:()=>xT,faBookSkull:()=>f4,faBookTanakh:()=>v6,faBookmark:()=>Y4,faBorderAll:()=>qU,faBorderNone:()=>Zm,faBorderStyle:()=>C7,faBorderTopLeft:()=>iA,faBoreHole:()=>QS,faBottleDroplet:()=>Tj,faBottleWater:()=>oC,faBowlFood:()=>gE,faBowlRice:()=>ZS,faBowlingBall:()=>Gj,faBox:()=>ng,faBoxArchive:()=>Rn,faBoxOpen:()=>G7,faBoxTissue:()=>Fl,faBoxes:()=>Uz,faBoxesAlt:()=>_R,faBoxesPacking:()=>K7,faBoxesStacked:()=>aI,faBraille:()=>zE,faBrain:()=>Wj,faBrazilianRealSign:()=>ER,faBreadSlice:()=>lS,faBridge:()=>vC,faBridgeCircleCheck:()=>Rt,faBridgeCircleExclamation:()=>D3,faBridgeCircleXmark:()=>en,faBridgeLock:()=>Uh,faBridgeWater:()=>G8,faBriefcase:()=>mj,faBriefcaseClock:()=>K8,faBriefcaseMedical:()=>Ck,faBroadcastTower:()=>KS,faBroom:()=>_U,faBroomBall:()=>yn,faBrush:()=>tV,faBucket:()=>P7,faBug:()=>Jp,faBugSlash:()=>pV,faBugs:()=>Em,faBuilding:()=>$k,faBuildingCircleArrowRight:()=>we,faBuildingCircleCheck:()=>gg,faBuildingCircleExclamation:()=>S1,faBuildingCircleXmark:()=>nT,faBuildingColumns:()=>fy,faBuildingFlag:()=>pp,faBuildingLock:()=>ig,faBuildingNgo:()=>_7,faBuildingShield:()=>ZR,faBuildingUn:()=>ue,faBuildingUser:()=>eg,faBuildingWheat:()=>LM,faBullhorn:()=>Bn,faBullseye:()=>kb,faBurger:()=>Sp,faBurn:()=>Xs,faBurst:()=>Pg,faBus:()=>pi,faBusAlt:()=>bC,faBusSimple:()=>Nm,faBusinessTime:()=>_6,faC:()=>N3,faCab:()=>D2,faCableCar:()=>Ax,faCake:()=>HC,faCakeCandles:()=>C6,faCalculator:()=>iT,faCalendar:()=>NU,faCalendarAlt:()=>Ae,faCalendarCheck:()=>BE,faCalendarDay:()=>zj,faCalendarDays:()=>fe,faCalendarMinus:()=>Yj,faCalendarPlus:()=>fv,faCalendarTimes:()=>EC,faCalendarWeek:()=>WS,faCalendarXmark:()=>Gm,faCamera:()=>QC,faCameraAlt:()=>JC,faCameraRetro:()=>nE,faCameraRotate:()=>Va,faCampground:()=>Gt,faCancel:()=>pc,faCandyCane:()=>_E,faCannabis:()=>k7,faCapsules:()=>Sf,faCar:()=>_4,faCarAlt:()=>yk,faCarBattery:()=>nA,faCarBurst:()=>RR,faCarCrash:()=>DR,faCarOn:()=>$C,faCarRear:()=>aD,faCarSide:()=>Pb,faCarTunnel:()=>j6,faCaravan:()=>Rx,faCaretDown:()=>Za,faCaretLeft:()=>l1,faCaretRight:()=>dn,faCaretSquareDown:()=>so,faCaretSquareLeft:()=>Hb,faCaretSquareRight:()=>Ph,faCaretSquareUp:()=>oA,faCaretUp:()=>Ag,faCarriageBaby:()=>Lk,faCarrot:()=>cU,faCartArrowDown:()=>bR,faCartFlatbed:()=>pS,faCartFlatbedSuitcase:()=>dN,faCartPlus:()=>tt,faCartShopping:()=>i4,faCashRegister:()=>vm,faCat:()=>dh,faCediSign:()=>wd,faCentSign:()=>BS,faCertificate:()=>Tg,faChain:()=>jz,faChainBroken:()=>XD,faChainSlash:()=>GU,faChair:()=>CA,faChalkboard:()=>iS,faChalkboardTeacher:()=>jF,faChalkboardUser:()=>XR,faChampagneGlasses:()=>h7,faChargingStation:()=>Xb,faChartArea:()=>Ef,faChartBar:()=>W_,faChartColumn:()=>GD,faChartDiagram:()=>km,faChartGantt:()=>DS,faChartLine:()=>Ff,faChartPie:()=>Wa,faChartSimple:()=>w5,faCheck:()=>oj,faCheckCircle:()=>q_,faCheckDouble:()=>VE,faCheckSquare:()=>f2,faCheckToSlot:()=>gR,faCheese:()=>dU,faChess:()=>Oa,faChessBishop:()=>Af,faChessBoard:()=>E7,faChessKing:()=>dF,faChessKnight:()=>Lf,faChessPawn:()=>sy,faChessQueen:()=>VM,faChessRook:()=>ST,faChevronCircleDown:()=>a2,faChevronCircleLeft:()=>rU,faChevronCircleRight:()=>R,faChevronCircleUp:()=>Mg,faChevronDown:()=>hI,faChevronLeft:()=>mk,faChevronRight:()=>bk,faChevronUp:()=>Zs,faChild:()=>GC,faChildCombatant:()=>GR,faChildDress:()=>w8,faChildReaching:()=>Bp,faChildRifle:()=>WR,faChildren:()=>tS,faChurch:()=>lm,faCircle:()=>uC,faCircleArrowDown:()=>MA,faCircleArrowLeft:()=>UA,faCircleArrowRight:()=>Fg,faCircleArrowUp:()=>If,faCircleCheck:()=>J0,faCircleChevronDown:()=>bd,faCircleChevronLeft:()=>wD,faCircleChevronRight:()=>O,faCircleChevronUp:()=>Od,faCircleDollarToSlot:()=>c2,faCircleDot:()=>pe,faCircleDown:()=>k6,faCircleExclamation:()=>vu,faCircleH:()=>hn,faCircleHalfStroke:()=>BR,faCircleInfo:()=>qm,faCircleLeft:()=>Qm,faCircleMinus:()=>nt,faCircleNodes:()=>tv,faCircleNotch:()=>$e,faCirclePause:()=>jf,faCirclePlay:()=>X3,faCirclePlus:()=>RI,faCircleQuestion:()=>i6,faCircleRadiation:()=>FR,faCircleRight:()=>Ac,faCircleStop:()=>Z3,faCircleUp:()=>ym,faCircleUser:()=>PR,faCircleXmark:()=>HI,faCity:()=>a7,faClapperboard:()=>MF,faClinicMedical:()=>XE,faClipboard:()=>d7,faClipboardCheck:()=>_C,faClipboardList:()=>Lo,faClipboardQuestion:()=>n6,faClipboardUser:()=>J8,faClock:()=>s4,faClockFour:()=>r4,faClockRotateLeft:()=>MD,faClone:()=>HU,faClose:()=>YR,faClosedCaptioning:()=>kS,faCloud:()=>es,faCloudArrowDown:()=>WA,faCloudArrowUp:()=>Rg,faCloudBolt:()=>Q7,faCloudDownload:()=>xE,faCloudDownloadAlt:()=>eS,faCloudMeatball:()=>sv,faCloudMoon:()=>pj,faCloudMoonRain:()=>DU,faCloudRain:()=>rT,faCloudShowersHeavy:()=>l2,faCloudShowersWater:()=>WM,faCloudSun:()=>FN,faCloudSunRain:()=>gf,faCloudUpload:()=>hE,faCloudUploadAlt:()=>s8,faClover:()=>pu,faCny:()=>pT,faCocktail:()=>Xh,faCode:()=>sC,faCodeBranch:()=>Im,faCodeCommit:()=>kD,faCodeCompare:()=>oF,faCodeFork:()=>DM,faCodeMerge:()=>Ix,faCodePullRequest:()=>xl,faCoffee:()=>wN,faCog:()=>ms,faCogs:()=>Gk,faCoins:()=>l4,faColonSign:()=>wM,faColumns:()=>y2,faComment:()=>yS,faCommentAlt:()=>K,faCommentDollar:()=>VC,faCommentDots:()=>c6,faCommentMedical:()=>z2,faCommentNodes:()=>sU,faCommentSlash:()=>xu,faCommentSms:()=>NI,faCommenting:()=>L1,faComments:()=>mo,faCommentsDollar:()=>Do,faCompactDisc:()=>Ox,faCompass:()=>Wo,faCompassDrafting:()=>xA,faCompress:()=>Sd,faCompressAlt:()=>te,faCompressArrowsAlt:()=>eE,faComputer:()=>HR,faComputerMouse:()=>EM,faConciergeBell:()=>wn,faContactBook:()=>to,faContactCard:()=>im,faCookie:()=>nx,faCookieBite:()=>QU,faCopy:()=>kR,faCopyright:()=>$R,faCouch:()=>Nd,faCow:()=>qM,faCreditCard:()=>ny,faCreditCardAlt:()=>ay,faCrop:()=>mt,faCropAlt:()=>M6,faCropSimple:()=>Ru,faCross:()=>Co,faCrosshairs:()=>UE,faCrow:()=>YM,faCrown:()=>OM,faCrutch:()=>cE,faCruzeiroSign:()=>aS,faCube:()=>lC,faCubes:()=>zp,faCubesStacked:()=>hS,faCut:()=>Yc,faCutlery:()=>oT,faD:()=>DV,faDashboard:()=>j0,faDatabase:()=>Ej,faDeaf:()=>z0,faDeafness:()=>U4,faDedent:()=>F1,faDeleteLeft:()=>xx,faDemocrat:()=>_c,faDesktop:()=>nN,faDesktopAlt:()=>DI,faDharmachakra:()=>Oz,faDiagnoses:()=>Kz,faDiagramNext:()=>FS,faDiagramPredecessor:()=>bs,faDiagramProject:()=>_I,faDiagramSuccessor:()=>hj,faDiamond:()=>yC,faDiamondTurnRight:()=>rp,faDice:()=>EN,faDiceD20:()=>ly,faDiceD6:()=>i0,faDiceFive:()=>L_,faDiceFour:()=>Zk,faDiceOne:()=>Hp,faDiceSix:()=>h6,faDiceThree:()=>he,faDiceTwo:()=>y7,faDigging:()=>f6,faDigitalTachograph:()=>Ju,faDirections:()=>t8,faDisease:()=>Ak,faDisplay:()=>Nk,faDivide:()=>Jh,faDizzy:()=>Xe,faDna:()=>Ll,faDog:()=>lU,faDollar:()=>MV,faDollarSign:()=>ZI,faDolly:()=>Q0,faDollyBox:()=>X_,faDollyFlatbed:()=>mS,faDonate:()=>Bh,faDongSign:()=>k0,faDoorClosed:()=>U8,faDoorOpen:()=>xt,faDotCircle:()=>Ce,faDove:()=>Gi,faDownLeftAndUpRightToCenter:()=>ne,faDownLong:()=>yR,faDownload:()=>h0,faDraftingCompass:()=>ep,faDragon:()=>FU,faDrawPolygon:()=>$U,faDriversLicense:()=>Ev,faDroplet:()=>ut,faDropletSlash:()=>t4,faDrum:()=>Nz,faDrumSteelpan:()=>qf,faDrumstickBite:()=>nD,faDumbbell:()=>HE,faDumpster:()=>w_,faDumpsterFire:()=>Xg,faDungeon:()=>Dj,faE:()=>Id,faEarDeaf:()=>k4,faEarListen:()=>E9,faEarth:()=>Vt,faEarthAfrica:()=>ti,faEarthAmerica:()=>Et,faEarthAmericas:()=>ht,faEarthAsia:()=>w9,faEarthEurope:()=>uN,faEarthOceania:()=>LI,faEdit:()=>E_,faEgg:()=>Je,faEject:()=>mm,faElevator:()=>Jg,faEllipsis:()=>g4,faEllipsisH:()=>vT,faEllipsisV:()=>KE,faEllipsisVertical:()=>u0,faEnvelope:()=>MS,faEnvelopeCircleCheck:()=>M2,faEnvelopeOpen:()=>SE,faEnvelopeOpenText:()=>co,faEnvelopeSquare:()=>Vj,faEnvelopesBulk:()=>pr,faEquals:()=>KF,faEraser:()=>Ei,faEthernet:()=>U7,faEur:()=>AA,faEuro:()=>xa,faEuroSign:()=>bg,faExchange:()=>Ex,faExchangeAlt:()=>Pj,faExclamation:()=>xV,faExclamationCircle:()=>ih,faExclamationTriangle:()=>Mj,faExpand:()=>BF,faExpandAlt:()=>PI,faExpandArrowsAlt:()=>ag,faExplosion:()=>W,faExternalLink:()=>dm,faExternalLinkAlt:()=>vS,faExternalLinkSquare:()=>LA,faExternalLinkSquareAlt:()=>n1,faEye:()=>Lp,faEyeDropper:()=>bx,faEyeDropperEmpty:()=>bv,faEyeLowVision:()=>uA,faEyeSlash:()=>pn,faEyedropper:()=>Sv,faF:()=>Tl,faFaceAngry:()=>$D,faFaceDizzy:()=>De,faFaceFlushed:()=>Ji,faFaceFrown:()=>Dt,faFaceFrownOpen:()=>P3,faFaceGrimace:()=>N9,faFaceGrin:()=>US,faFaceGrinBeam:()=>Ya,faFaceGrinBeamSweat:()=>EI,faFaceGrinHearts:()=>MI,faFaceGrinSquint:()=>zm,faFaceGrinSquintTears:()=>cv,faFaceGrinStars:()=>hs,faFaceGrinTears:()=>u6,faFaceGrinTongue:()=>F4,faFaceGrinTongueSquint:()=>Dn,faFaceGrinTongueWink:()=>HD,faFaceGrinWide:()=>I5,faFaceGrinWink:()=>bu,faFaceKiss:()=>vf,faFaceKissBeam:()=>a1,faFaceKissWinkHeart:()=>h8,faFaceLaugh:()=>F3,faFaceLaughBeam:()=>Q_,faFaceLaughSquint:()=>w3,faFaceLaughWink:()=>F6,faFaceMeh:()=>Mv,faFaceMehBlank:()=>Cc,faFaceRollingEyes:()=>gp,faFaceSadCry:()=>R8,faFaceSadTear:()=>jN,faFaceSmile:()=>bI,faFaceSmileBeam:()=>Ni,faFaceSmileWink:()=>Ng,faFaceSurprise:()=>Vd,faFaceTired:()=>NA,faFan:()=>PU,faFastBackward:()=>e6,faFastForward:()=>o6,faFaucet:()=>Xl,faFaucetDrip:()=>Wd,faFax:()=>mR,faFeather:()=>uc,faFeatherAlt:()=>l8,faFeatherPointed:()=>b1,faFeed:()=>iN,faFemale:()=>AS,faFerry:()=>fE,faFighterJet:()=>FV,faFile:()=>Mt,faFileAlt:()=>re,faFileArchive:()=>lp,faFileArrowDown:()=>m4,faFileArrowUp:()=>f7,faFileAudio:()=>Hf,faFileCircleCheck:()=>yv,faFileCircleExclamation:()=>ir,faFileCircleMinus:()=>Om,faFileCirclePlus:()=>qD,faFileCircleQuestion:()=>vd,faFileCircleXmark:()=>bT,faFileClipboard:()=>na,faFileCode:()=>Yo,faFileContract:()=>oo,faFileCsv:()=>We,faFileDownload:()=>Kp,faFileEdit:()=>$z,faFileExcel:()=>Ha,faFileExport:()=>ED,faFileFragment:()=>d6,faFileHalfDashed:()=>iV,faFileImage:()=>M8,faFileImport:()=>EA,faFileInvoice:()=>$j,faFileInvoiceDollar:()=>MM,faFileLines:()=>Q,faFileMedical:()=>Bu,faFileMedicalAlt:()=>N_,faFilePdf:()=>NC,faFilePen:()=>cI,faFilePowerpoint:()=>J7,faFilePrescription:()=>Z0,faFileShield:()=>D8,faFileSignature:()=>cS,faFileText:()=>oe,faFileUpload:()=>p7,faFileVideo:()=>IE,faFileWaveform:()=>Vb,faFileWord:()=>CE,faFileZipper:()=>wf,faFill:()=>dk,faFillDrip:()=>M,faFilm:()=>_u,faFilter:()=>tC,faFilterCircleDollar:()=>J3,faFilterCircleXmark:()=>kg,faFingerprint:()=>Kt,faFire:()=>q0,faFireAlt:()=>XU,faFireBurner:()=>u2,faFireExtinguisher:()=>wg,faFireFlameCurved:()=>KD,faFireFlameSimple:()=>li,faFirstAid:()=>AT,faFish:()=>yF,faFishFins:()=>Lu,faFistRaised:()=>fj,faFlag:()=>Kc,faFlagCheckered:()=>ci,faFlagUsa:()=>JE,faFlask:()=>vv,faFlaskVial:()=>jl,faFloppyDisk:()=>rs,faFlorinSign:()=>Fx,faFlushed:()=>Us,faFolder:()=>jb,faFolderBlank:()=>AM,faFolderClosed:()=>D7,faFolderMinus:()=>rk,faFolderOpen:()=>k3,faFolderPlus:()=>ai,faFolderTree:()=>u4,faFont:()=>Wz,faFontAwesome:()=>i8,faFontAwesomeFlag:()=>y9,faFontAwesomeLogoFull:()=>uE,faFootball:()=>qe,faFootballBall:()=>ri,faForward:()=>h4,faForwardFast:()=>qh,faForwardStep:()=>bi,faFrancSign:()=>e4,faFrog:()=>vg,faFrown:()=>xc,faFrownOpen:()=>U0,faFunnelDollar:()=>rE,faFutbol:()=>As,faFutbolBall:()=>Cs,faG:()=>H4,faGamepad:()=>gt,faGasPump:()=>ja,faGauge:()=>K4,faGaugeHigh:()=>Ns,faGaugeMed:()=>q4,faGaugeSimple:()=>or,faGaugeSimpleHigh:()=>O9,faGaugeSimpleMed:()=>mh,faGavel:()=>rr,faGbp:()=>J_,faGear:()=>E6,faGears:()=>yI,faGem:()=>B7,faGenderless:()=>xk,faGhost:()=>f1,faGift:()=>S7,faGifts:()=>Zj,faGlassCheers:()=>kM,faGlassMartini:()=>zg,faGlassMartiniAlt:()=>H_,faGlassWater:()=>dT,faGlassWaterDroplet:()=>Dk,faGlassWhiskey:()=>dp,faGlasses:()=>M7,faGlobe:()=>Wh,faGlobeAfrica:()=>Hi,faGlobeAmericas:()=>di,faGlobeAsia:()=>qj,faGlobeEurope:()=>hN,faGlobeOceania:()=>CU,faGolfBall:()=>ND,faGolfBallTee:()=>DD,faGopuram:()=>AU,faGraduationCap:()=>tw,faGreaterThan:()=>Jt,faGreaterThanEqual:()=>np,faGrimace:()=>Uj,faGrin:()=>Cv,faGrinAlt:()=>Db,faGrinBeam:()=>TE,faGrinBeamSweat:()=>iU,faGrinHearts:()=>Xk,faGrinSquint:()=>Fm,faGrinSquintTears:()=>y6,faGrinStars:()=>Ge,faGrinTears:()=>Vm,faGrinTongue:()=>B0,faGrinTongueSquint:()=>Xu,faGrinTongueWink:()=>jU,faGrinWink:()=>Td,faGrip:()=>jR,faGripHorizontal:()=>AI,faGripLines:()=>Gx,faGripLinesVertical:()=>og,faGripVertical:()=>c0,faGroupArrowsRotate:()=>q7,faGuaraniSign:()=>ME,faGuitar:()=>z6,faGun:()=>DF,faH:()=>rC,faHSquare:()=>B,faHamburger:()=>S8,faHammer:()=>pD,faHamsa:()=>P6,faHand:()=>oa,faHandBackFist:()=>aA,faHandDots:()=>RN,faHandFist:()=>cN,faHandHolding:()=>VU,faHandHoldingDollar:()=>Pp,faHandHoldingDroplet:()=>tx,faHandHoldingHand:()=>CT,faHandHoldingHeart:()=>Vg,faHandHoldingMedical:()=>jV,faHandHoldingUsd:()=>G2,faHandHoldingWater:()=>IS,faHandLizard:()=>_k,faHandMiddleFinger:()=>hD,faHandPaper:()=>Aa,faHandPeace:()=>kk,faHandPointDown:()=>Z4,faHandPointLeft:()=>zV,faHandPointRight:()=>si,faHandPointUp:()=>R_,faHandPointer:()=>Um,faHandRock:()=>Pf,faHandScissors:()=>Qh,faHandSparkles:()=>OF,faHandSpock:()=>T_,faHandcuffs:()=>yj,faHands:()=>UI,faHandsAmericanSignLanguageInterpreting:()=>o0,faHandsAslInterpreting:()=>n0,faHandsBound:()=>Tf,faHandsBubbles:()=>lA,faHandsClapping:()=>$h,faHandsHelping:()=>Fe,faHandsHolding:()=>kp,faHandsHoldingChild:()=>d2,faHandsHoldingCircle:()=>wv,faHandsPraying:()=>Qf,faHandsWash:()=>L7,faHandshake:()=>_A,faHandshakeAlt:()=>ZN,faHandshakeAltSlash:()=>yE,faHandshakeAngle:()=>Oe,faHandshakeSimple:()=>XN,faHandshakeSimpleSlash:()=>YA,faHandshakeSlash:()=>T1,faHanukiah:()=>zh,faHardDrive:()=>r0,faHardHat:()=>Yh,faHardOfHearing:()=>Ld,faHashtag:()=>jD,faHatCowboy:()=>E8,faHatCowboySide:()=>CS,faHatHard:()=>zf,faHatWizard:()=>W8,faHaykal:()=>BU,faHdd:()=>WE,faHeadSideCough:()=>Vx,faHeadSideCoughSlash:()=>Vh,faHeadSideMask:()=>Cg,faHeadSideVirus:()=>z8,faHeader:()=>m2,faHeading:()=>p2,faHeadphones:()=>m6,faHeadphonesAlt:()=>u1,faHeadphonesSimple:()=>Nh,faHeadset:()=>c7,faHeart:()=>p8,faHeartBroken:()=>Rh,faHeartCircleBolt:()=>Bz,faHeartCircleCheck:()=>am,faHeartCircleExclamation:()=>GS,faHeartCircleMinus:()=>yd,faHeartCirclePlus:()=>q5,faHeartCircleXmark:()=>Fn,faHeartCrack:()=>Oh,faHeartMusicCameraBolt:()=>je,faHeartPulse:()=>e7,faHeartbeat:()=>PM,faHelicopter:()=>go,faHelicopterSymbol:()=>Pd,faHelmetSafety:()=>jd,faHelmetUn:()=>Fb,faHexagonNodes:()=>L6,faHexagonNodesBolt:()=>nk,faHighlighter:()=>xi,faHiking:()=>eT,faHillAvalanche:()=>H7,faHillRockslide:()=>Ij,faHippo:()=>MU,faHistory:()=>tU,faHockeyPuck:()=>_d,faHollyBerry:()=>pk,faHome:()=>R6,faHomeAlt:()=>wu,faHomeLg:()=>Ip,faHomeLgAlt:()=>Ch,faHomeUser:()=>m8,faHorse:()=>R5,faHorseHead:()=>_T,faHospital:()=>hl,faHospitalAlt:()=>uo,faHospitalSymbol:()=>ra,faHospitalUser:()=>er,faHospitalWide:()=>m0,faHotTub:()=>Jn,faHotTubPerson:()=>Ml,faHotdog:()=>Rz,faHotel:()=>Kj,faHourglass:()=>s0,faHourglass1:()=>Kb,faHourglass2:()=>B4,faHourglass3:()=>gu,faHourglassEmpty:()=>Km,faHourglassEnd:()=>Ad,faHourglassHalf:()=>b3,faHourglassStart:()=>V5,faHouse:()=>d0,faHouseChimney:()=>Pu,faHouseChimneyCrack:()=>E2,faHouseChimneyMedical:()=>B1,faHouseChimneyUser:()=>uS,faHouseChimneyWindow:()=>nU,faHouseCircleCheck:()=>cj,faHouseCircleExclamation:()=>j_,faHouseCircleXmark:()=>Ed,faHouseCrack:()=>Am,faHouseDamage:()=>T2,faHouseFire:()=>r2,faHouseFlag:()=>F5,faHouseFloodWater:()=>qc,faHouseFloodWaterCircleArrowRight:()=>Cp,faHouseLaptop:()=>Og,faHouseLock:()=>$7,faHouseMedical:()=>RD,faHouseMedicalCircleCheck:()=>jp,faHouseMedicalCircleExclamation:()=>yc,faHouseMedicalCircleXmark:()=>vt,faHouseMedicalFlag:()=>xC,faHouseSignal:()=>Rm,faHouseTsunami:()=>dA,faHouseUser:()=>Xa,faHryvnia:()=>_M,faHryvniaSign:()=>j4,faHurricane:()=>zu,faI:()=>Rb,faICursor:()=>gM,faIceCream:()=>wz,faIcicles:()=>K3,faIcons:()=>Me,faIdBadge:()=>Sg,faIdCard:()=>p4,faIdCardAlt:()=>Qj,faIdCardClip:()=>LN,faIgloo:()=>Nb,faIls:()=>JF,faImage:()=>O7,faImagePortrait:()=>BI,faImages:()=>sd,faInbox:()=>Ks,faIndent:()=>XC,faIndianRupee:()=>$m,faIndianRupeeSign:()=>Ou,faIndustry:()=>JS,faInfinity:()=>EU,faInfo:()=>ie,faInfoCircle:()=>b6,faInr:()=>Yl,faInstitution:()=>HN,faItalic:()=>ba,faJ:()=>g6,faJar:()=>dV,faJarWheat:()=>qi,faJedi:()=>V3,faJetFighter:()=>KN,faJetFighterUp:()=>LF,faJoint:()=>wb,faJournalWhills:()=>Sj,faJpy:()=>mT,faJugDetergent:()=>vF,faK:()=>Yn,faKaaba:()=>Wg,faKey:()=>Vl,faKeyboard:()=>gv,faKhanda:()=>px,faKipSign:()=>BV,faKiss:()=>M3,faKissBeam:()=>Cd,faKissWinkHeart:()=>eC,faKitMedical:()=>Qp,faKitchenSet:()=>Gf,faKiwiBird:()=>HS,faKrw:()=>Eu,faL:()=>S2,faLadderWater:()=>VI,faLandMineOn:()=>T5,faLandmark:()=>PS,faLandmarkAlt:()=>pF,faLandmarkDome:()=>TR,faLandmarkFlag:()=>To,faLanguage:()=>EE,faLaptop:()=>fr,faLaptopCode:()=>ro,faLaptopFile:()=>Wp,faLaptopHouse:()=>DA,faLaptopMedical:()=>k1,faLariSign:()=>Rd,faLaugh:()=>n7,faLaughBeam:()=>Ho,faLaughSquint:()=>r7,faLaughWink:()=>qS,faLayerGroup:()=>Dd,faLeaf:()=>fp,faLeftLong:()=>cl,faLeftRight:()=>Z7,faLegal:()=>xr,faLemon:()=>gA,faLessThan:()=>Ux,faLessThanEqual:()=>HM,faLevelDown:()=>Qk,faLevelDownAlt:()=>MN,faLevelUp:()=>ed,faLevelUpAlt:()=>rw,faLifeRing:()=>wj,faLightbulb:()=>o1,faLineChart:()=>gm,faLinesLeaning:()=>XF,faLink:()=>vR,faLinkSlash:()=>I9,faLiraSign:()=>WC,faList:()=>kh,faList12:()=>oS,faListAlt:()=>YE,faListCheck:()=>IR,faListDots:()=>lF,faListNumeric:()=>u8,faListOl:()=>c8,faListSquares:()=>ye,faListUl:()=>L9,faLitecoinSign:()=>YC,faLocation:()=>MC,faLocationArrow:()=>zn,faLocationCrosshairs:()=>P1,faLocationDot:()=>pt,faLocationPin:()=>pm,faLocationPinLock:()=>sp,faLock:()=>Wr,faLockOpen:()=>Qg,faLocust:()=>um,faLongArrowAltDown:()=>MR,faLongArrowAltLeft:()=>Sa,faLongArrowAltRight:()=>Gp,faLongArrowAltUp:()=>bh,faLongArrowDown:()=>$_,faLongArrowLeft:()=>Ah,faLongArrowRight:()=>ty,faLongArrowUp:()=>Oi,faLowVision:()=>I7,faLuggageCart:()=>Cj,faLungs:()=>ev,faLungsVirus:()=>wp,faM:()=>sj,faMagic:()=>oU,faMagicWandSparkles:()=>Q4,faMagnet:()=>hV,faMagnifyingGlass:()=>xR,faMagnifyingGlassArrowRight:()=>du,faMagnifyingGlassChart:()=>y1,faMagnifyingGlassDollar:()=>GN,faMagnifyingGlassLocation:()=>Pi,faMagnifyingGlassMinus:()=>YI,faMagnifyingGlassPlus:()=>IN,faMailBulk:()=>Js,faMailForward:()=>FI,faMailReply:()=>oc,faMailReplyAll:()=>j7,faMale:()=>hr,faManatSign:()=>v7,faMap:()=>ET,faMapLocation:()=>hc,faMapLocationDot:()=>G_,faMapMarked:()=>Ro,faMapMarkedAlt:()=>x7,faMapMarker:()=>vc,faMapMarkerAlt:()=>it,faMapPin:()=>wS,faMapSigns:()=>_m,faMarker:()=>yg,faMars:()=>Ov,faMarsAndVenus:()=>B2,faMarsAndVenusBurst:()=>aa,faMarsDouble:()=>Np,faMarsStroke:()=>CM,faMarsStrokeH:()=>GM,faMarsStrokeRight:()=>T7,faMarsStrokeUp:()=>U_,faMarsStrokeV:()=>FM,faMartiniGlass:()=>fA,faMartiniGlassCitrus:()=>Zg,faMartiniGlassEmpty:()=>om,faMask:()=>sV,faMaskFace:()=>Lj,faMaskVentilator:()=>_p,faMasksTheater:()=>YN,faMattressPillow:()=>rS,faMaximize:()=>k5,faMedal:()=>Yx,faMedkit:()=>FC,faMeh:()=>Sx,faMehBlank:()=>F2,faMehRollingEyes:()=>Hg,faMemory:()=>Zc,faMenorah:()=>fi,faMercury:()=>qk,faMessage:()=>ee,faMeteor:()=>NE,faMicrochip:()=>t7,faMicrophone:()=>ah,faMicrophoneAlt:()=>Q5,faMicrophoneAltSlash:()=>yt,faMicrophoneLines:()=>o7,faMicrophoneLinesSlash:()=>rt,faMicrophoneSlash:()=>_a,faMicroscope:()=>S3,faMillSign:()=>Lx,faMinimize:()=>Z_,faMinus:()=>Vs,faMinusCircle:()=>at,faMinusSquare:()=>Xc,faMitten:()=>fc,faMobile:()=>O6,faMobileAlt:()=>b8,faMobileAndroid:()=>d4,faMobileAndroidAlt:()=>q2,faMobileButton:()=>I8,faMobilePhone:()=>jS,faMobileRetro:()=>yM,faMobileScreen:()=>hx,faMobileScreenButton:()=>t6,faMoneyBill:()=>D_,faMoneyBill1:()=>Du,faMoneyBill1Wave:()=>AN,faMoneyBillAlt:()=>js,faMoneyBillTransfer:()=>$g,faMoneyBillTrendUp:()=>cC,faMoneyBillWave:()=>sg,faMoneyBillWaveAlt:()=>Nj,faMoneyBillWheat:()=>ov,faMoneyBills:()=>wA,faMoneyCheck:()=>I2,faMoneyCheckAlt:()=>JA,faMoneyCheckDollar:()=>hp,faMonument:()=>Y3,faMoon:()=>uU,faMortarBoard:()=>UV,faMortarPestle:()=>L3,faMosque:()=>Xd,faMosquito:()=>Zd,faMosquitoNet:()=>V8,faMotorcycle:()=>Ua,faMound:()=>cT,faMountain:()=>KC,faMountainCity:()=>fx,faMountainSun:()=>G6,faMouse:()=>gc,faMousePointer:()=>xM,faMugHot:()=>rA,faMugSaucer:()=>NN,faMultiply:()=>zF,faMuseum:()=>PV,faMusic:()=>pU,faN:()=>sT,faNairaSign:()=>Qz,faNavicon:()=>eh,faNetworkWired:()=>Q2,faNeuter:()=>q3,faNewspaper:()=>uh,faNotEqual:()=>A7,faNotdef:()=>vk,faNoteSticky:()=>kN,faNotesMedical:()=>Bb,faO:()=>BC,faObjectGroup:()=>Gl,faObjectUngroup:()=>mp,faOilCan:()=>SU,faOilWell:()=>Dx,faOm:()=>mM,faOtter:()=>UC,faOutdent:()=>Mx,faP:()=>cp,faPager:()=>ka,faPaintBrush:()=>tr,faPaintRoller:()=>_e,faPaintbrush:()=>Ys,faPalette:()=>dE,faPallet:()=>K2,faPanorama:()=>Wl,faPaperPlane:()=>Oj,faPaperclip:()=>RE,faParachuteBox:()=>Yd,faParagraph:()=>zz,faParking:()=>Ep,faPassport:()=>W5,faPastafarianism:()=>Ui,faPaste:()=>Xn,faPause:()=>$3,faPauseCircle:()=>Vf,faPaw:()=>vi,faPeace:()=>Vk,faPen:()=>Li,faPenAlt:()=>yf,faPenClip:()=>R3,faPenFancy:()=>fh,faPenNib:()=>BD,faPenRuler:()=>uu,faPenSquare:()=>tF,faPenToSquare:()=>p1,faPencil:()=>Pn,faPencilAlt:()=>On,faPencilRuler:()=>Hc,faPencilSquare:()=>SR,faPeopleArrows:()=>gd,faPeopleArrowsLeftRight:()=>kl,faPeopleCarry:()=>ug,faPeopleCarryBox:()=>F_,faPeopleGroup:()=>cc,faPeopleLine:()=>ji,faPeoplePulling:()=>vx,faPeopleRobbery:()=>xd,faPeopleRoof:()=>oi,faPepperHot:()=>l7,faPercent:()=>dD,faPercentage:()=>Ok,faPerson:()=>ks,faPersonArrowDownToLine:()=>LU,faPersonArrowUpFromLine:()=>Kn,faPersonBiking:()=>UD,faPersonBooth:()=>TC,faPersonBreastfeeding:()=>Qb,faPersonBurst:()=>yi,faPersonCane:()=>sx,faPersonChalkboard:()=>W3,faPersonCircleCheck:()=>iw,faPersonCircleExclamation:()=>sF,faPersonCircleMinus:()=>G0,faPersonCirclePlus:()=>Ga,faPersonCircleQuestion:()=>f8,faPersonCircleXmark:()=>Ym,faPersonDigging:()=>ph,faPersonDotsFromLine:()=>lI,faPersonDress:()=>jC,faPersonDressBurst:()=>zd,faPersonDrowning:()=>fn,faPersonFalling:()=>gj,faPersonFallingBurst:()=>CD,faPersonHalfDress:()=>Ci,faPersonHarassing:()=>fF,faPersonHiking:()=>_x,faPersonMilitaryPointing:()=>LV,faPersonMilitaryRifle:()=>X2,faPersonMilitaryToPerson:()=>SC,faPersonPraying:()=>SI,faPersonPregnant:()=>Av,faPersonRays:()=>pM,faPersonRifle:()=>$E,faPersonRunning:()=>U5,faPersonShelter:()=>al,faPersonSkating:()=>yA,faPersonSkiing:()=>ll,faPersonSkiingNordic:()=>dv,faPersonSnowboarding:()=>NR,faPersonSwimming:()=>Ai,faPersonThroughWindow:()=>V6,faPersonWalking:()=>Z5,faPersonWalkingArrowLoopLeft:()=>P9,faPersonWalkingArrowRight:()=>jj,faPersonWalkingDashedLineArrowRight:()=>ip,faPersonWalkingLuggage:()=>OU,faPersonWalkingWithCane:()=>M9,faPesetaSign:()=>Ao,faPesoSign:()=>VF,faPhone:()=>B8,faPhoneAlt:()=>s6,faPhoneFlip:()=>Yf,faPhoneSlash:()=>ce,faPhoneSquare:()=>NF,faPhoneSquareAlt:()=>Ze,faPhoneVolume:()=>A6,faPhotoFilm:()=>eD,faPhotoVideo:()=>sk,faPieChart:()=>ao,faPiggyBank:()=>NS,faPills:()=>L5,faPingPongPaddleBall:()=>Xz,faPizzaSlice:()=>V0,faPlaceOfWorship:()=>T6,faPlane:()=>AV,faPlaneArrival:()=>lx,faPlaneCircleCheck:()=>w2,faPlaneCircleExclamation:()=>mc,faPlaneCircleXmark:()=>Nx,faPlaneDeparture:()=>Gd,faPlaneLock:()=>bS,faPlaneSlash:()=>dC,faPlaneUp:()=>dx,faPlantWilt:()=>V2,faPlateWheat:()=>tE,faPlay:()=>AR,faPlayCircle:()=>Ia,faPlug:()=>no,faPlugCircleBolt:()=>aC,faPlugCircleCheck:()=>R1,faPlugCircleExclamation:()=>YD,faPlugCircleMinus:()=>ok,faPlugCirclePlus:()=>Nu,faPlugCircleXmark:()=>J,faPlus:()=>xI,faPlusCircle:()=>UU,faPlusMinus:()=>JN,faPlusSquare:()=>Hh,faPodcast:()=>U,faPoll:()=>b7,faPollH:()=>v8,faPoo:()=>IC,faPooBolt:()=>I3,faPooStorm:()=>O_,faPoop:()=>Gg,faPortrait:()=>_j,faPoundSign:()=>Of,faPowerOff:()=>QE,faPray:()=>Fk,faPrayingHands:()=>Rp,faPrescription:()=>U2,faPrescriptionBottle:()=>va,faPrescriptionBottleAlt:()=>FE,faPrescriptionBottleMedical:()=>nv,faPrint:()=>bV,faProcedures:()=>fg,faProjectDiagram:()=>IF,faPumpMedical:()=>Nt,faPumpSoap:()=>Mk,faPuzzlePiece:()=>hh,faQ:()=>W4,faQrcode:()=>yD,faQuestion:()=>Ug,faQuestionCircle:()=>Tm,faQuidditch:()=>sr,faQuidditchBroomBall:()=>qn,faQuoteLeft:()=>qR,faQuoteLeftAlt:()=>WF,faQuoteRight:()=>nr,faQuoteRightAlt:()=>Hm,faQuran:()=>JD,faR:()=>LE,faRadiation:()=>Gb,faRadiationAlt:()=>EF,faRadio:()=>Tk,faRainbow:()=>Ee,faRandom:()=>SM,faRankingStar:()=>hF,faReceipt:()=>eF,faRecordVinyl:()=>ts,faRectangleAd:()=>up,faRectangleList:()=>uv,faRectangleTimes:()=>fN,faRectangleXmark:()=>R9,faRecycle:()=>C8,faRedo:()=>Dp,faRedoAlt:()=>YS,faRefresh:()=>nS,faRegistered:()=>Ig,faRemove:()=>FF,faRemoveFormat:()=>a8,faReorder:()=>nI,faRepeat:()=>v1,faReply:()=>Ul,faReplyAll:()=>Q3,faRepublican:()=>O1,faRestroom:()=>Y8,faRetweet:()=>Sk,faRibbon:()=>TS,faRightFromBracket:()=>Qe,faRightLeft:()=>kI,faRightLong:()=>mx,faRightToBracket:()=>G5,faRing:()=>se,faRmb:()=>qp,faRoad:()=>kd,faRoadBarrier:()=>O5,faRoadBridge:()=>Jc,faRoadCircleCheck:()=>M5,faRoadCircleExclamation:()=>Rj,faRoadCircleXmark:()=>u7,faRoadLock:()=>Su,faRoadSpikes:()=>Au,faRobot:()=>jk,faRocket:()=>ik,faRodAsclepius:()=>Cf,faRodSnake:()=>F0,faRotate:()=>mD,faRotateBack:()=>$M,faRotateBackward:()=>pA,faRotateForward:()=>Lv,faRotateLeft:()=>Y_,faRotateRight:()=>Xp,faRouble:()=>wx,faRoute:()=>r6,faRss:()=>tN,faRssSquare:()=>E5,faRub:()=>gT,faRuble:()=>B6,faRubleSign:()=>J2,faRug:()=>Aj,faRuler:()=>bc,faRulerCombined:()=>ZF,faRulerHorizontal:()=>Dh,faRulerVertical:()=>nV,faRunning:()=>j5,faRupee:()=>yp,faRupeeSign:()=>Zh,faRupiahSign:()=>Hz,faS:()=>n4,faSackDollar:()=>x3,faSackXmark:()=>Tu,faSadCry:()=>cs,faSadTear:()=>vV,faSailboat:()=>XM,faSatellite:()=>xS,faSatelliteDish:()=>x8,faSave:()=>Bm,faScaleBalanced:()=>sN,faScaleUnbalanced:()=>bo,faScaleUnbalancedFlip:()=>OA,faSchool:()=>V4,faSchoolCircleCheck:()=>Mf,faSchoolCircleExclamation:()=>Ot,faSchoolCircleXmark:()=>n2,faSchoolFlag:()=>hk,faSchoolLock:()=>cF,faScissors:()=>Zu,faScrewdriver:()=>R7,faScrewdriverWrench:()=>Uf,faScroll:()=>IA,faScrollTorah:()=>Po,faSdCard:()=>zU,faSearch:()=>Yz,faSearchDollar:()=>qI,faSearchLocation:()=>gi,faSearchMinus:()=>rV,faSearchPlus:()=>PN,faSection:()=>kn,faSeedling:()=>X7,faServer:()=>TM,faShapes:()=>B_,faShare:()=>_N,faShareAlt:()=>S5,faShareAltSquare:()=>QN,faShareFromSquare:()=>VR,faShareNodes:()=>_f,faShareSquare:()=>RF,faSheetPlastic:()=>Vi,faShekel:()=>$F,faShekelSign:()=>MT,faSheqel:()=>ek,faSheqelSign:()=>tk,faShield:()=>LD,faShieldAlt:()=>ap,faShieldBlank:()=>ID,faShieldCat:()=>hT,faShieldDog:()=>_8,faShieldHalved:()=>ZA,faShieldHeart:()=>vU,faShieldVirus:()=>j8,faShip:()=>aT,faShippingFast:()=>SF,faShirt:()=>p6,faShoePrints:()=>kU,faShop:()=>Hl,faShopLock:()=>cg,faShopSlash:()=>lg,faShoppingBag:()=>z4,faShoppingBasket:()=>P8,faShoppingCart:()=>l0,faShower:()=>rN,faShrimp:()=>_F,faShuffle:()=>Y0,faShuttleSpace:()=>pg,faShuttleVan:()=>$4,faSign:()=>lk,faSignHanging:()=>iD,faSignIn:()=>tn,faSignInAlt:()=>IM,faSignLanguage:()=>Bj,faSignOut:()=>mf,faSignOutAlt:()=>kt,faSignal:()=>Zf,faSignal5:()=>k2,faSignalPerfect:()=>ua,faSignature:()=>eA,faSigning:()=>CN,faSignsPost:()=>kf,faSimCard:()=>Kk,faSink:()=>fM,faSitemap:()=>wh,faSkating:()=>sE,faSkiing:()=>Bf,faSkiingNordic:()=>lo,faSkull:()=>xh,faSkullCrossbones:()=>aF,faSlash:()=>A1,faSleigh:()=>ex,faSliders:()=>c4,faSlidersH:()=>I6,faSmile:()=>wk,faSmileBeam:()=>qt,faSmileWink:()=>VA,faSmog:()=>BA,faSmoking:()=>xg,faSmokingBan:()=>CC,faSms:()=>nj,faSnowboarding:()=>bF,faSnowflake:()=>cm,faSnowman:()=>T3,faSnowplow:()=>z7,faSoap:()=>At,faSoccerBall:()=>zs,faSocks:()=>br,faSolarPanel:()=>bm,faSort:()=>Bd,faSortAlphaAsc:()=>OS,faSortAlphaDesc:()=>Md,faSortAlphaDown:()=>RS,faSortAlphaDownAlt:()=>m1,faSortAlphaUp:()=>dg,faSortAlphaUpAlt:()=>YU,faSortAmountAsc:()=>jA,faSortAmountDesc:()=>Dv,faSortAmountDown:()=>vE,faSortAmountDownAlt:()=>kx,faSortAmountUp:()=>XS,faSortAmountUpAlt:()=>OD,faSortAsc:()=>l6,faSortDesc:()=>ct,faSortDown:()=>Ke,faSortNumericAsc:()=>LS,faSortNumericDesc:()=>Wc,faSortNumericDown:()=>wE,faSortNumericDownAlt:()=>Qn,faSortNumericUp:()=>k8,faSortNumericUpAlt:()=>DE,faSortUp:()=>Kf,faSpa:()=>W7,faSpaceShuttle:()=>K5,faSpaghettiMonsterFlying:()=>$t,faSpellCheck:()=>dr,faSpider:()=>$c,faSpinner:()=>Uk,faSplotch:()=>Yk,faSpoon:()=>ns,faSprayCan:()=>Ie,faSprayCanSparkles:()=>Yb,faSprout:()=>kA,faSquare:()=>lh,faSquareArrowUpRight:()=>TA,faSquareBinary:()=>N7,faSquareCaretDown:()=>Oo,faSquareCaretLeft:()=>_1,faSquareCaretRight:()=>hu,faSquareCaretUp:()=>H3,faSquareCheck:()=>rh,faSquareEnvelope:()=>GI,faSquareFull:()=>uV,faSquareH:()=>y,faSquareMinus:()=>lc,faSquareNfi:()=>QM,faSquareParking:()=>Iu,faSquarePen:()=>uI,faSquarePersonConfined:()=>Rf,faSquarePhone:()=>CI,faSquarePhoneFlip:()=>Be,faSquarePlus:()=>hA,faSquarePollHorizontal:()=>Sm,faSquarePollVertical:()=>sA,faSquareRootAlt:()=>qd,faSquareRootVariable:()=>N1,faSquareRss:()=>_2,faSquareShareNodes:()=>qN,faSquareUpRight:()=>th,faSquareVirus:()=>S6,faSquareXmark:()=>II,faStaffAesculapius:()=>nh,faStaffSnake:()=>jh,faStairs:()=>I_,faStamp:()=>Ob,faStapler:()=>NV,faStar:()=>x2,faStarAndCrescent:()=>mu,faStarHalf:()=>kz,faStarHalfAlt:()=>iC,faStarHalfStroke:()=>Fd,faStarOfDavid:()=>fs,faStarOfLife:()=>le,faStepBackward:()=>Z2,faStepForward:()=>wi,faSterlingSign:()=>oh,faStethoscope:()=>V,faStickyNote:()=>fV,faStop:()=>Iv,faStopCircle:()=>$0,faStopwatch:()=>Qc,faStopwatch20:()=>cV,faStore:()=>ak,faStoreAlt:()=>Mn,faStoreAltSlash:()=>Zb,faStoreSlash:()=>BM,faStream:()=>Pz,faStreetView:()=>Xo,faStrikethrough:()=>Gr,faStroopwafel:()=>tA,faSubscript:()=>sm,faSubtract:()=>on,faSubway:()=>_h,faSuitcase:()=>iE,faSuitcaseMedical:()=>zC,faSuitcaseRolling:()=>iF,faSun:()=>Bx,faSunPlantWilt:()=>Ku,faSuperscript:()=>j,faSurprise:()=>Kg,faSwatchbook:()=>nl,faSwimmer:()=>Ct,faSwimmingPool:()=>Fj,faSynagogue:()=>z5,faSync:()=>o8,faSyncAlt:()=>gD,faSyringe:()=>lV,faT:()=>yU,faTShirt:()=>e0,faTable:()=>Qu,faTableCells:()=>DC,faTableCellsColumnLock:()=>ol,faTableCellsLarge:()=>q8,faTableCellsRowLock:()=>CR,faTableCellsRowUnlock:()=>UN,faTableColumns:()=>w7,faTableList:()=>aN,faTableTennis:()=>Zz,faTableTennisPaddleBall:()=>oI,faTablet:()=>sD,faTabletAlt:()=>Wt,faTabletAndroid:()=>rD,faTabletButton:()=>tg,faTabletScreenButton:()=>bt,faTablets:()=>K_,faTachographDigital:()=>fu,faTachometer:()=>tj,faTachometerAlt:()=>sn,faTachometerAltAverage:()=>Wb,faTachometerAltFast:()=>qa,faTachometerAverage:()=>gh,faTachometerFast:()=>ij,faTag:()=>SS,faTags:()=>AC,faTanakh:()=>Xm,faTape:()=>O8,faTarp:()=>nC,faTarpDroplet:()=>hv,faTasks:()=>pI,faTasksAlt:()=>Xf,faTaxi:()=>R2,faTeeth:()=>QF,faTeethOpen:()=>a6,faTeletype:()=>gx,faTelevision:()=>gF,faTemperature0:()=>oE,faTemperature1:()=>vp,faTemperature2:()=>D5,faTemperature3:()=>a4,faTemperature4:()=>g,faTemperatureArrowDown:()=>Mu,faTemperatureArrowUp:()=>uy,faTemperatureDown:()=>ch,faTemperatureEmpty:()=>em,faTemperatureFull:()=>Z,faTemperatureHalf:()=>A2,faTemperatureHigh:()=>Y5,faTemperatureLow:()=>mU,faTemperatureQuarter:()=>xm,faTemperatureThreeQuarters:()=>Ka,faTemperatureUp:()=>hy,faTenge:()=>t0,faTengeSign:()=>Fp,faTent:()=>jE,faTentArrowDownToLine:()=>SA,faTentArrowLeftRight:()=>Cr,faTentArrowTurnLeft:()=>aU,faTentArrowsDown:()=>CV,faTents:()=>zD,faTerminal:()=>Dm,faTextHeight:()=>D,faTextSlash:()=>n8,faTextWidth:()=>LC,faTh:()=>X8,faThLarge:()=>PE,faThList:()=>rj,faTheaterMasks:()=>wV,faThermometer:()=>Ik,faThermometer0:()=>Lg,faThermometer1:()=>g8,faThermometer2:()=>N5,faThermometer3:()=>id,faThermometer4:()=>v,faThermometerEmpty:()=>tm,faThermometerFull:()=>L,faThermometerHalf:()=>bf,faThermometerQuarter:()=>qg,faThermometerThreeQuarters:()=>ux,faThumbTack:()=>Bk,faThumbTackSlash:()=>$b,faThumbsDown:()=>Nv,faThumbsUp:()=>Jj,faThumbtack:()=>fD,faThumbtackSlash:()=>H5,faThunderstorm:()=>AE,faTicket:()=>qE,faTicketAlt:()=>bD,faTicketSimple:()=>xD,faTimeline:()=>ul,faTimes:()=>kF,faTimesCircle:()=>Xj,faTimesRectangle:()=>xj,faTimesSquare:()=>xU,faTint:()=>ni,faTintSlash:()=>cx,faTired:()=>Y7,faToggleOff:()=>rl,faToggleOn:()=>b2,faToilet:()=>Rv,faToiletPaper:()=>Ud,faToiletPaperSlash:()=>E1,faToiletPortable:()=>uT,faToiletsPortable:()=>qu,faToolbox:()=>ry,faTools:()=>xo,faTooth:()=>P_,faTorah:()=>Wi,faToriiGate:()=>KM,faTornado:()=>ZU,faTowerBroadcast:()=>Zp,faTowerCell:()=>uF,faTowerObservation:()=>ca,faTractor:()=>HF,faTrademark:()=>fC,faTrafficLight:()=>uD,faTrailer:()=>wU,faTrain:()=>cA,faTrainSubway:()=>Hr,faTrainTram:()=>zN,faTram:()=>z1,faTransgender:()=>_D,faTransgenderAlt:()=>vD,faTrash:()=>H8,faTrashAlt:()=>w,faTrashArrowUp:()=>QR,faTrashCan:()=>N,faTrashCanArrowUp:()=>T9,faTrashRestore:()=>YF,faTrashRestoreAlt:()=>qz,faTree:()=>g2,faTreeCity:()=>Gz,faTriangleCircleSquare:()=>bM,faTriangleExclamation:()=>zI,faTrophy:()=>zk,faTrowel:()=>RV,faTrowelBricks:()=>Qi,faTruck:()=>kE,faTruckArrowRight:()=>lN,faTruckDroplet:()=>cy,faTruckFast:()=>mI,faTruckField:()=>Mp,faTruckFieldUn:()=>ZC,faTruckFront:()=>Pm,faTruckLoading:()=>bl,faTruckMedical:()=>Gh,faTruckMonster:()=>_t,faTruckMoving:()=>Rk,faTruckPickup:()=>lT,faTruckPlane:()=>zi,faTruckRampBox:()=>Io,faTry:()=>SV,faTshirt:()=>PC,faTty:()=>zS,faTurkishLira:()=>yV,faTurkishLiraSign:()=>XI,faTurnDown:()=>yN,faTurnUp:()=>sw,faTv:()=>fI,faTvAlt:()=>LR,faU:()=>Vp,faUmbrella:()=>TT,faUmbrellaBeach:()=>zb,faUnderline:()=>mg,faUndo:()=>ox,faUndoAlt:()=>mA,faUniversalAccess:()=>tp,faUniversity:()=>OV,faUnlink:()=>WU,faUnlock:()=>NM,faUnlockAlt:()=>o2,faUnlockKeyhole:()=>sh,faUnsorted:()=>L2,faUpDown:()=>WD,faUpDownLeftRight:()=>jg,faUpLong:()=>p0,faUpRightAndDownLeftFromCenter:()=>VD,faUpRightFromSquare:()=>RC,faUpload:()=>Px,faUsd:()=>KI,faUser:()=>J4,faUserAlt:()=>aV,faUserAltSlash:()=>bE,faUserAstronaut:()=>hC,faUserCheck:()=>Zn,faUserCircle:()=>AF,faUserClock:()=>ON,faUserCog:()=>Wm,faUserDoctor:()=>iv,faUserEdit:()=>jM,faUserFriends:()=>RM,faUserGear:()=>F8,faUserGraduate:()=>wR,faUserGroup:()=>s7,faUserInjured:()=>_V,faUserLarge:()=>BN,faUserLargeSlash:()=>sS,faUserLock:()=>ey,faUserMd:()=>qC,faUserMinus:()=>zM,faUserNinja:()=>Sn,faUserNurse:()=>oV,faUserPen:()=>U3,faUserPlus:()=>oN,faUserSecret:()=>kC,faUserShield:()=>OR,faUserSlash:()=>wm,faUserTag:()=>vj,faUserTie:()=>Df,faUserTimes:()=>Y,faUserXmark:()=>k,faUsers:()=>y5,faUsersBetweenLines:()=>jm,faUsersCog:()=>TV,faUsersGear:()=>WN,faUsersLine:()=>KR,faUsersRays:()=>Mm,faUsersRectangle:()=>Ut,faUsersSlash:()=>$u,faUsersViewfinder:()=>Sc,faUtensilSpoon:()=>Ss,faUtensils:()=>Tx,faV:()=>P5,faVanShuttle:()=>C2,faVault:()=>fT,faVcard:()=>PA,faVectorSquare:()=>$A,faVenus:()=>Jb,faVenusDouble:()=>tT,faVenusMars:()=>Ca,faVest:()=>Dg,faVestPatches:()=>rx,faVial:()=>B5,faVialCircleCheck:()=>TU,faVialVirus:()=>Sl,faVials:()=>Kd,faVideo:()=>$N,faVideoCamera:()=>ew,faVideoSlash:()=>Ek,faVihara:()=>gS,faVirus:()=>Nf,faVirusCovid:()=>P2,faVirusCovidSlash:()=>z_,faVirusSlash:()=>vh,faViruses:()=>Eg,faVoicemail:()=>IU,faVolcano:()=>x1,faVolleyball:()=>ke,faVolleyballBall:()=>st,faVolumeControlPhone:()=>Q8,faVolumeDown:()=>h1,faVolumeHigh:()=>xp,faVolumeLow:()=>Cu,faVolumeMute:()=>PF,faVolumeOff:()=>D1,faVolumeTimes:()=>UR,faVolumeUp:()=>Wf,faVolumeXmark:()=>vI,faVoteYea:()=>Fz,faVrCardboard:()=>Pk,faW:()=>Ht,faWalkieTalkie:()=>Jz,faWalking:()=>tu,faWallet:()=>bp,faWandMagic:()=>FD,faWandMagicSparkles:()=>O3,faWandSparkles:()=>ZE,faWarehouse:()=>Wk,faWarning:()=>gN,faWater:()=>ix,faWaterLadder:()=>jI,faWaveSquare:()=>X,faWebAwesome:()=>N8,faWeight:()=>hg,faWeightHanging:()=>i7,faWeightScale:()=>k_,faWheatAlt:()=>h2,faWheatAwn:()=>Fh,faWheatAwnCircleExclamation:()=>E3,faWheelchair:()=>eu,faWheelchairAlt:()=>SN,faWheelchairMove:()=>bN,faWhiskeyGlass:()=>iu,faWifi:()=>J5,faWifi3:()=>m7,faWifiStrong:()=>UM,faWind:()=>CF,faWindowClose:()=>pN,faWindowMaximize:()=>$n,faWindowMinimize:()=>eV,faWindowRestore:()=>ZM,faWineBottle:()=>W6,faWineGlass:()=>Kh,faWineGlassAlt:()=>hU,faWineGlassEmpty:()=>TI,faWon:()=>fm,faWonSign:()=>El,faWorm:()=>mn,faWrench:()=>y8,faX:()=>EV,faXRay:()=>X0,faXmark:()=>yT,faXmarkCircle:()=>TN,faXmarkSquare:()=>bU,faXmarksLines:()=>X5,faY:()=>xF,faYen:()=>w6,faYenSign:()=>N6,faYinYang:()=>fU,faZ:()=>Pa,faZap:()=>D6,fas:()=>qY,prefix:()=>f});/*!
 * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */const f="fas",p={prefix:"fas",iconName:"0",icon:[320,512,[],"30","M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z"]},m={prefix:"fas",iconName:"1",icon:[256,512,[],"31","M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8 96 416l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352z"]},_={prefix:"fas",iconName:"2",icon:[320,512,[],"32","M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416 288 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z"]},d={prefix:"fas",iconName:"3",icon:[320,512,[],"33","M0 64C0 46.3 14.3 32 32 32l240 0c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208l21.7 0c75.1 0 136 60.9 136 136s-60.9 136-136 136l-78.6 0C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5l78.6 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L80 272c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96 32 96C14.3 96 0 81.7 0 64z"]},h={prefix:"fas",iconName:"4",icon:[384,512,[],"34","M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368l224 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L82.4 304 189 77.6z"]},x={prefix:"fas",iconName:"5",icon:[320,512,[],"35","M32.5 58.3C35.3 43.1 48.5 32 64 32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L90.7 96 70.3 208 184 208c75.1 0 136 60.9 136 136s-60.9 136-136 136l-83.5 0c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1l83.5 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z"]},A={prefix:"fas",iconName:"6",icon:[320,512,[],"36","M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3l0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM256 320A96 96 0 1 1 64 320a96 96 0 1 1 192 0z"]},S={prefix:"fas",iconName:"7",icon:[320,512,[],"37","M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z"]},E={prefix:"fas",iconName:"8",icon:[320,512,[],"38","M304 160c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l15.9 0c0 0 .1 0 .1 0l32 0c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0l-32 0c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z"]},b={prefix:"fas",iconName:"9",icon:[320,512,[],"39","M64 192a96 96 0 1 0 192 0A96 96 0 1 0 64 192zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z"]},M={prefix:"fas",iconName:"fill-drip",icon:[576,512,[],"f576","M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6l319.2 0 42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z"]},T={prefix:"fas",iconName:"arrows-to-circle",icon:[640,512,[],"e4bd","M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7 160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM114.7 352L96 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0s0 0 0 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160l18.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1s0 0 0 0l0-96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3l0 18.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96s0 0 0 0l0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4l.1 0s0 0 0 0l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0z"]},O={prefix:"fas",iconName:"circle-chevron-right",icon:[512,512,["chevron-circle-right"],"f138","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z"]},R=O,I={prefix:"fas",iconName:"at",icon:[512,512,[61946],"40","M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256l0 32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32l0 80 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},N={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"]},w=N,D={prefix:"fas",iconName:"text-height",icon:[576,512,[],"f034","M64 128l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L160 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM502.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 192-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-192 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z"]},k={prefix:"fas",iconName:"user-xmark",icon:[640,512,["user-times"],"f235","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},Y=k,V={prefix:"fas",iconName:"stethoscope",icon:[576,512,[129658],"f0f1","M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1 96 192c0 53 43 96 96 96s96-43 96-96l0-120.9-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1L352 192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112l0-70.7c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 70.7c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192L32 71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},ee={prefix:"fas",iconName:"message",icon:[512,512,["comment-alt"],"f27a","M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l96 0 0 80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416 448 416c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0z"]},K=ee,ie={prefix:"fas",iconName:"info",icon:[192,512,[],"f129","M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-192-32 0c-17.7 0-32-14.3-32-32z"]},ne={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"]},te=ne,W={prefix:"fas",iconName:"explosion",icon:[576,512,[],"e4e9","M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448s0 0 0 0l448 0s0 0 0 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0zM288 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z"]},Q={prefix:"fas",iconName:"file-lines",icon:[384,512,[128441,128462,61686,"file-alt","file-text"],"f15c","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},re=Q,oe=Q,X={prefix:"fas",iconName:"wave-square",icon:[640,512,[],"f83e","M128 64c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 352 96 0 0-160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 160c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-352-96 0 0 160c0 17.7-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-160z"]},se={prefix:"fas",iconName:"ring",icon:[512,512,[],"f70b","M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304l0-96z"]},ue={prefix:"fas",iconName:"building-un",icon:[384,512,[],"e4d9","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM237.3 71.1l34.7 52L272 80c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},he={prefix:"fas",iconName:"dice-three",icon:[448,512,[9858],"f527","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},fe={prefix:"fas",iconName:"calendar-days",icon:[448,512,["calendar-alt"],"f073","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm64 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 400l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"]},Ae=fe,Se={prefix:"fas",iconName:"anchor-circle-check",icon:[640,512,[],"e4aa","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},we={prefix:"fas",iconName:"building-circle-arrow-right",icon:[640,512,[],"e4d1","M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 184.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm96 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6L521.4 352 432 352c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z"]},ke={prefix:"fas",iconName:"volleyball",icon:[512,512,[127952,"volleyball-ball"],"f45f","M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z"]},st=ke,Ve={prefix:"fas",iconName:"arrows-up-to-line",icon:[576,512,[],"e4c2","M32 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96zM9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 237.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L416 237.3 416 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z"]},Ke={prefix:"fas",iconName:"sort-down",icon:[320,512,["sort-desc"],"f0dd","M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l256 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z"]},ct=Ke,nt={prefix:"fas",iconName:"circle-minus",icon:[512,512,["minus-circle"],"f056","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM184 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},at=nt,xt={prefix:"fas",iconName:"door-open",icon:[576,512,[],"f52b","M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5L64 448l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 192 0 32 0 0-32 0-448zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128l96 0 0 352c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320c0-35.3-28.7-64-64-64l-96 0 0 64z"]},Qe={prefix:"fas",iconName:"right-from-bracket",icon:[512,512,["sign-out-alt"],"f2f5","M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z"]},kt=Qe,ot={prefix:"fas",iconName:"atom",icon:[512,512,[9883],"f5d2","M256 398.8c-11.8 5.1-23.4 9.7-34.9 13.5c16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM446 256c33 45.2 44.3 90.9 23.6 128c-20.2 36.3-62.5 49.3-115.2 43.2c-22 52.1-55.6 84.8-98.4 84.8s-76.4-32.7-98.4-84.8c-52.7 6.1-95-6.8-115.2-43.2C21.7 346.9 33 301.2 66 256c-33-45.2-44.3-90.9-23.6-128c20.2-36.3 62.5-49.3 115.2-43.2C179.6 32.7 213.2 0 256 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2c20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2c31.8 1.4 38.6-8.7 40.2-11.7c2.3-4.2 7-17.9-11.9-48.1c-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2c7.6 6.1 14.8 12.3 21.6 18.6c18.9-30.2 14.2-44 11.9-48.1c-1.6-2.9-8.4-13-40.2-11.7zM290.9 99.7C274.1 65.9 259.9 64 256 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5c11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2c-31.8-1.4-38.6 8.7-40.2 11.7c-2.3 4.2-7 17.9 11.9 48.1c6.8-6.3 14-12.5 21.6-18.6zM110.2 304.8C91.4 335 96 348.7 98.3 352.9c1.6 2.9 8.4 13 40.2 11.7c-2.8-13.1-5-26.9-6.7-41.2c-7.6-6.1-14.8-12.3-21.6-18.6zM336 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},At={prefix:"fas",iconName:"soap",icon:[512,512,[129532],"e06e","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM416 32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96s43-96 96-96l88.4 0c-15.2-17-24.4-39.4-24.4-64L96 192c-53 0-96 43-96 96L0 416c0 53 43 96 96 96l320 0c53 0 96-43 96-96l0-128c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64l192 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-160 0z"]},Me={prefix:"fas",iconName:"icons",icon:[512,512,["heart-music-camera-bolt"],"f86d","M500.3 7.3C507.7 13.3 512 22.4 512 32l0 144c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48l0-57L352 90.2 352 208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48l0-96c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM74.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0c10.7 0 20.7 5.3 26.6 14.2L213.3 304l26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0zM192 408a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM478.7 278.3L440.3 368l55.7 0c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L391.7 400 336 400c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L19.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z"]},je=Me,rt={prefix:"fas",iconName:"microphone-lines-slash",icon:[640,512,["microphone-alt-slash"],"f539","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24 0 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8l0-44.8-57.1 0-34.5-27c2.9-3.1 7-5 11.6-5l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c20.4-2.8 39.7-9.1 57.3-18.2z"]},yt=rt,Rt={prefix:"fas",iconName:"bridge-circle-check",icon:[640,512,[],"e4c9","M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},Nt={prefix:"fas",iconName:"pump-medical",icon:[448,512,[],"e06a","M128 32l0 96 128 0 0-32 60.1 0c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4L256 32c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512l186.4 0c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7l-149.1 0zM216 280l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},Kt={prefix:"fas",iconName:"fingerprint",icon:[512,512,[],"f577","M48 256C48 141.1 141.1 48 256 48c63.1 0 119.6 28.1 157.8 72.5c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0C114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6c-15.2 5-18.7 23.7-8.3 35.9c7.1 8.3 18.8 10.8 29.4 7.9c10.6-2.9 21.8-4.4 33.4-4.4c70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3c-1.7 14.6 9.4 27.8 24.2 27.8c11.8 0 21.9-8.6 23.3-20.3c3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4C93.7 178 80 215.4 80 256l0 24.9c0 24.2-2.6 48.4-7.8 71.9C68.8 368.4 80.1 384 96.1 384c10.5 0 19.9-7 22.2-17.3c6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1c7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1c-3.8 14.3 6.7 29 21.5 29c9.5 0 17.9-6.2 20.4-15.4c10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9c-2.7 13.9 7.7 27.2 21.8 27.2c10.2 0 19-7 21-17c7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z"]},si={prefix:"fas",iconName:"hand-point-right",icon:[512,512,[],"f0a4","M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z"]},Pi={prefix:"fas",iconName:"magnifying-glass-location",icon:[512,512,["search-location"],"f689","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},gi=Pi,bi={prefix:"fas",iconName:"forward-step",icon:[320,512,["step-forward"],"f051","M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241l0-145c0-17.7 14.3-32 32-32s32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-145-11.5 9.6-192 160z"]},wi=bi,Ni={prefix:"fas",iconName:"face-smile-beam",icon:[512,512,[128522,"smile-beam"],"f5b8","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"]},qt=Ni,ci={prefix:"fas",iconName:"flag-checkered",icon:[448,512,[127937],"f11e","M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80 0-66L0 64 0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5L64 252.6 64 318l48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15c-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6L128 173.2 128 98 64 114l0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z"]},qe={prefix:"fas",iconName:"football",icon:[512,512,[127944,"football-ball"],"f44e","M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6C47.8 183.4 35.1 215.9 26.9 249L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z"]},ri=qe,Ot={prefix:"fas",iconName:"school-circle-exclamation",icon:[640,512,[],"e56c","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},mt={prefix:"fas",iconName:"crop",icon:[512,512,[],"f125","M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64l0 64 178.7 0L128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-178.7 0L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z"]},Ye={prefix:"fas",iconName:"angles-down",icon:[448,512,["angle-double-down"],"f103","M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z"]},Tt=Ye,Ut={prefix:"fas",iconName:"users-rectangle",icon:[640,512,[],"e594","M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l448 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L96 0zM64 96c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32L64 96zm159.8 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0C119.9 256 96 279.9 96 309.3zM461.2 336l56.1 0c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z"]},oi={prefix:"fas",iconName:"people-roof",icon:[640,512,[],"e537","M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 160a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM144 256a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm312 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM226.9 491.4L200 441.5l0 38.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-38.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3l19.5 0c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3l19.5 0c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6l19.5 0c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5l0 38.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-38.5-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5l0 54.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-54.5-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z"]},ji={prefix:"fas",iconName:"people-line",icon:[640,512,[],"e534","M360 72a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM144 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM496 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5l0 54.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-54.5 26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5l0 38.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5 88 352c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5z"]},ki={prefix:"fas",iconName:"beer-mug-empty",icon:[512,512,["beer"],"f0fc","M32 64c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 32 51.2 0c42.4 0 76.8 34.4 76.8 76.8l0 102.1c0 30.4-17.9 57.9-45.6 70.2L384 381.7l0 34.3c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64L32 64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7l0-102.1c0-7.1-5.7-12.8-12.8-12.8L384 160l0 151.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224z"]},os=ki,bs={prefix:"fas",iconName:"diagram-predecessor",icon:[512,512,[],"e477","M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z"]},hi={prefix:"fas",iconName:"arrow-up-long",icon:[384,512,["long-arrow-up"],"f176","M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z"]},Oi=hi,li={prefix:"fas",iconName:"fire-flame-simple",icon:[384,512,["burn"],"f46a","M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z"]},Xs=li,ks={prefix:"fas",iconName:"person",icon:[320,512,[129485,"male"],"f183","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0z"]},hr=ks,fr={prefix:"fas",iconName:"laptop",icon:[640,512,[128187],"f109","M128 32C92.7 32 64 60.7 64 96l0 256 64 0 0-256 384 0 0 256 64 0 0-256c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2L19.2 384z"]},We={prefix:"fas",iconName:"file-csv",icon:[512,512,[],"f6dd","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM200 352l16 0c22.1 0 40 17.9 40 40l0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8c0-4.4-3.6-8-8-8l-16 0c-4.4 0-8 3.6-8 8l0 80c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-8c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8c0 22.1-17.9 40-40 40l-16 0c-22.1 0-40-17.9-40-40l0-80c0-22.1 17.9-40 40-40zm133.1 0l34.9 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1c0 5.2 3 9.9 7.8 12l37.4 16.6c16.3 7.2 26.8 23.4 26.8 41.2c0 24.9-20.2 45.1-45.1 45.1L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l42.9 0c7.2 0 13.1-5.9 13.1-13.1c0-5.2-3-9.9-7.8-12l-37.4-16.6c-16.3-7.2-26.8-23.4-26.8-41.2c0-24.9 20.2-45.1 45.1-45.1zm98.9 0c8.8 0 16 7.2 16 16l0 31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66l0-31.6c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6l0-31.6c0-8.8 7.2-16 16-16z"]},fi={prefix:"fas",iconName:"menorah",icon:[640,512,[],"f676","M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64L96 384c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32z"]},zi={prefix:"fas",iconName:"truck-plane",icon:[640,512,[],"e58f","M200 0c-30.6 0-56 54.7-56 86.1l0 106.5L7.8 274.3C2.9 277.2 0 282.4 0 288l0 64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37 0 81.2-50 40c-3.8 3-6 7.6-6 12.5l0 32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15l0-32.6c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1 0-3.5 0-82.5L256 184l0-1.1s0 0 0 0l0-96.9C256 54.7 231.5 0 200 0zm88 176l0 224c0 20.9 13.4 38.7 32 45.3l0 42.7c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-40 160 0 0 40c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-42.7c18.6-6.6 32-24.4 32-45.3l0-224c0-26.5-21.5-48-48-48l-256 0c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7l151.4 0c9.2 0 17.2 6 20.5 14.7L576 304l-224 0 15.8-49.3zM568 352a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM336 376a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},ts={prefix:"fas",iconName:"record-vinyl",icon:[512,512,[],"f8d9","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 224a128 128 0 1 0 0-256 128 128 0 1 0 0 256zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},hs={prefix:"fas",iconName:"face-grin-stars",icon:[512,512,[129321,"grin-stars"],"f587","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm407.4 75.5c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z"]},Ge=hs,Zt={prefix:"fas",iconName:"bong",icon:[448,512,[],"f55c","M160 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7l221.8 0c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8L224 64l-64 0 0 144.5zM288 64l0 144.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L366.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C374 314.1 384 347.9 384 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5L76.1 512c-17.3 0-34.2-7.1-43.8-21.5C11.9 460.1 0 423.4 0 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14L96 64C78.3 64 64 49.7 64 32S78.3 0 96 0l16 0L272 0l16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z"]},$t={prefix:"fas",iconName:"spaghetti-monster-flying",icon:[640,512,["pastafarianism"],"f67b","M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1c0 0 0 0 0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},Ui=$t,ls={prefix:"fas",iconName:"arrow-down-up-across-line",icon:[576,512,[],"e4af","M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7 192 288l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-114.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3 384 224l-192 0-64 0-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 114.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192l64 0 0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128zM448 320l-64 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128z"]},ns={prefix:"fas",iconName:"spoon",icon:[512,512,[129348,61873,"utensil-spoon"],"f2e5","M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z"]},Ss=ns,qi={prefix:"fas",iconName:"jar-wheat",icon:[320,512,[],"e517","M32 32C32 14.3 46.3 0 64 0L256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64l192 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 160zm112 0l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224l21.8 0 32 0 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320l21.8 0 32 0 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z"]},pr={prefix:"fas",iconName:"envelopes-bulk",icon:[640,512,["mail-bulk"],"f674","M128 0C110.3 0 96 14.3 96 32l0 192 96 0 0-32c0-35.3 28.7-64 64-64l224 0 0-96c0-17.7-14.3-32-32-32L128 0zM256 160c-17.7 0-32 14.3-32 32l0 32 96 0c35.3 0 64 28.7 64 64l0 128 192 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-320 0zm240 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 256c-17.7 0-32 14.3-32 32l0 13L187.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L352 301l0-13c0-17.7-14.3-32-32-32L64 256zm288 84.8L216 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L32 340.8 32 480c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-139.2z"]},Js=pr,ir={prefix:"fas",iconName:"file-circle-exclamation",icon:[576,512,[],"e4eb","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"]},hn={prefix:"fas",iconName:"circle-h",icon:[512,512,[9405,"hospital-symbol"],"f47e","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM368 152l0 104 0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80-128 0 0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80 128 0 0-80c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},ra=hn,ka={prefix:"fas",iconName:"pager",icon:[512,512,[128223],"f815","M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z"]},Hn={prefix:"fas",iconName:"address-book",icon:[512,512,[62138,"contact-book"],"f2b9","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z"]},to=Hn,Gr={prefix:"fas",iconName:"strikethrough",icon:[512,512,[],"f0cc","M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-209.9 0-.4-.1-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3c0 0 0 0 0 0s0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6c0 0 0 0 0 0l.2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1l-75.7 0c7 5.6 11.4 11.2 13.9 17.2z"]},Yn={prefix:"fas",iconName:"k",icon:[320,512,[107],"4b","M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 328 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z"]},To={prefix:"fas",iconName:"landmark-flag",icon:[512,512,[],"e51c","M272 0l80 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-80 0 0 32 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 192c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0 0-112c0-8.8 7.2-16 16-16l16 0zM64 224l64 0 0 192 40 0 0-192 64 0 0 192 48 0 0-192 64 0 0 192 40 0 0-192 64 0 0 196.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 224z"]},Pn={prefix:"fas",iconName:"pencil",icon:[512,512,[9999,61504,"pencil-alt"],"f303","M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1 0 32c0 8.8 7.2 16 16 16l32 0zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},On=Pn,Kr={prefix:"fas",iconName:"backward",icon:[512,512,[9194],"f04a","M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-320c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3l0 41.7 0 41.7L459.5 440.6zM256 352l0-96 0-128 0-32c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-64z"]},dn={prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]},mo={prefix:"fas",iconName:"comments",icon:[640,512,[128490,61670],"f086","M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2s0 0 0 0s0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.2-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9c0 0 0 0 0 0s0 0 0 0l-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z"]},Xn={prefix:"fas",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},na=Xn,xl={prefix:"fas",iconName:"code-pull-request",icon:[512,512,[],"e13c","M305.8 2.1C314.4 5.9 320 14.5 320 24l0 40 16 0c70.7 0 128 57.3 128 128l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L400 192c0-35.3-28.7-64-64-64l-16 0 0 40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80A24 24 0 1 0 56 80a24 24 0 1 0 48 0zm8 73.3l0 205.3c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm328 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},Lo={prefix:"fas",iconName:"clipboard-list",icon:[384,512,[],"f46d","M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM72 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM72 368a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm88 0c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z"]},Io={prefix:"fas",iconName:"truck-ramp-box",icon:[640,512,["truck-loading"],"f4de","M640 0l0 400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8 352 64c0-35.3 28.7-64 64-64L640 0zM576 400a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z"]},bl=Io,Zn={prefix:"fas",iconName:"user-check",icon:[640,512,[],"f4fc","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},Sl={prefix:"fas",iconName:"vial-virus",icon:[512,512,[],"e597","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l0 288c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5L224 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0L96 32 32 32zM96 192l0-96 64 0 0 96-64 0zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-88a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm40 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},Vi={prefix:"fas",iconName:"sheet-plastic",icon:[384,512,[],"e571","M0 448c0 35.3 28.7 64 64 64l160 0 0-128c0-17.7 14.3-32 32-32l128 0 0-288c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384l-128 0 0 128L384 384z"]},yl={prefix:"fas",iconName:"blog",icon:[512,512,[],"f781","M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144L0 368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144l-16 0 0 96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48l0-224z"]},Sn={prefix:"fas",iconName:"user-ninja",icon:[448,512,[129399],"f504","M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 399.5 56.4 330 132.8 309.9c6-1.6 12.2 .9 15.9 5.8l62.5 83.3c6.4 8.5 19.2 8.5 25.6 0l62.5-83.3c3.7-4.9 9.9-7.4 15.9-5.8C391.6 330 448 399.5 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96z"]},Kn={prefix:"fas",iconName:"person-arrow-up-from-line",icon:[640,512,[],"e539","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352l0-96 16 0 0 96-16 0zm-64 0l-88 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l120 0 80 0 376 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-344 0 0-191.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z"]},Po={prefix:"fas",iconName:"scroll-torah",icon:[640,512,["torah"],"f6a0","M96 480L96 32C96 14.3 74.5 0 48 0S0 14.3 0 32L0 480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32L128 32l0 448 384 0 0-448zM592 0c-26.5 0-48 14.3-48 32l0 448c0 17.7 21.5 32 48 32s48-14.3 48-32l0-448c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3l56.7 0 31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180l56.7 0c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3L369 332l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332l-56.7 0c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332l-42.4 0L320 368.4zM254.5 256l30.3 52 70.4 0 30.3-52-30.3-52-70.4 0-30.3 52zm144.9 23.8L383 308l32.8 0-16.4-28.2zM415.8 204L383 204l16.4 28.2L415.8 204zM320 143.6L298.8 180l42.4 0L320 143.6zM224.2 204l16.4 28.2L257 204l-32.8 0zM257 308l-16.4-28.2L224.2 308l32.8 0z"]},Wi=Po,yn={prefix:"fas",iconName:"broom-ball",icon:[576,512,["quidditch","quidditch-broom-ball"],"f458","M566.6 9.4c12.5 12.5 12.5 32.8 0 45.3l-192 192 34.7 34.7c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6l-29.1 0L256 211.7l0-29.1c0-12.5 10.1-22.6 22.6-22.6c6 0 11.8 2.4 16 6.6l34.7 34.7 192-192c12.5-12.5 32.8-12.5 45.3 0zm-344 225.5L341.1 353.4c3.7 42.7-11.7 85.2-42.3 115.8C271.4 496.6 234.2 512 195.5 512L22.1 512C9.9 512 0 502.1 0 489.9c0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2c0-31.5 12.5-61.7 34.8-84l8-8c30.6-30.6 73.1-45.9 115.8-42.3zM464 352a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},sr=yn,qn=yn,rl={prefix:"fas",iconName:"toggle-off",icon:[576,512,[],"f204","M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"]},Rn={prefix:"fas",iconName:"box-archive",icon:[512,512,["archive"],"f187","M32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64C0 46.3 14.3 32 32 32zm0 128l448 0 0 256c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-256zm128 80c0 8.8 7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0c-8.8 0-16 7.2-16 16z"]},Or=Rn,fn={prefix:"fas",iconName:"person-drowning",icon:[576,512,[],"e545","M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3L192 64zM320 192a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z"]},$r={prefix:"fas",iconName:"arrow-down-9-1",icon:[576,512,["sort-numeric-desc","sort-numeric-down-alt"],"f886","M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 301.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM450.7 294c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l48 0 48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM418.3 91a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 91zM405.1 203.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z"]},Wc=$r,Qn=$r,Dn={prefix:"fas",iconName:"face-grin-tongue-squint",icon:[512,512,[128541,"grin-tongue-squint"],"f58a","M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448l0-47.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 46.9c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},Xu=Dn,Ie={prefix:"fas",iconName:"spray-can",icon:[512,512,[],"f5bd","M128 0l64 0c17.7 0 32 14.3 32 32l0 96L96 128l0-96c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 256zm240 80A80 80 0 1 0 80 336a80 80 0 1 0 160 0zM256 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM448 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},_t={prefix:"fas",iconName:"truck-monster",icon:[640,512,[],"f63b","M288 64l0 64 128 0L368 64l-80 0zM419.2 25.6L496 128l80 0c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64l-64 0c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l160 0 0-80c0-26.5 21.5-48 48-48l96 0c20.1 0 39.1 9.5 51.2 25.6zM152 256l16 0c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8l0 16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512l-16 0c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392l0-16c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6l16 0c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8l0 16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512l-16 0c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392l0-16c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},Ht={prefix:"fas",iconName:"w",icon:[576,512,[119],"57","M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z"]},ti={prefix:"fas",iconName:"earth-africa",icon:[512,512,[127757,"globe-africa"],"f57c","M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9l0 41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.4-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32l0 28c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16l0 48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4l0-12.1c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},Hi=ti,Ee={prefix:"fas",iconName:"rainbow",icon:[640,512,[127752],"f75b","M320 96C178.6 96 64 210.6 64 352l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96C0 175.3 143.3 32 320 32s320 143.3 320 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-70.7 57.3-128 128-128s128 57.3 128 128l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-35.3-28.7-64-64-64zM160 352l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-123.7 100.3-224 224-224s224 100.3 224 224l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-88.4-71.6-160-160-160s-160 71.6-160 160z"]},$e={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]},bt={prefix:"fas",iconName:"tablet-screen-button",icon:[448,512,["tablet-alt"],"f3fa","M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64L64 64l0 320 320 0 0-320z"]},Wt=bt,vi={prefix:"fas",iconName:"paw",icon:[512,512,[],"f1b0","M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z"]},es={prefix:"fas",iconName:"cloud",icon:[640,512,[9729],"f0c2","M0 336c0 79.5 64.5 144 144 144l368 0c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z"]},Qi={prefix:"fas",iconName:"trowel-bricks",icon:[512,512,[],"e58a","M240.8 4.8C250.3 10.6 256 20.9 256 32l0 72 89 0c3.6-13.8 16.1-24 31-24l88 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-88 0c-14.9 0-27.4-10.2-31-24l-89 0 0 72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM32 384l96 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l256 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z"]},Ji={prefix:"fas",iconName:"face-flushed",icon:[512,512,[128563,"flushed"],"f579","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM176 384c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16zm-16-88a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},Us=Ji,er={prefix:"fas",iconName:"hospital-user",icon:[576,512,[],"f80d","M48 0C21.5 0 0 21.5 0 48L0 256l144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L0 288l0 64 144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L0 384l0 80c0 26.5 21.5 48 48 48l217.9 0c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2l0-95.9L320 48c0-26.5-21.5-48-48-48L48 0zM152 64l16 0c8.8 0 16 7.2 16 16l0 24 24 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-24 0 0 24c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-24-24 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16l24 0 0-24c0-8.8 7.2-16 16-16zM512 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM288 477.1c0 19.3 15.6 34.9 34.9 34.9l218.2 0c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1l-101.8 0c-51.4 0-93.1 41.7-93.1 93.1z"]},Cr={prefix:"fas",iconName:"tent-arrow-left-right",icon:[576,512,[],"e57f","M488.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L489.5 72 86.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},rr={prefix:"fas",iconName:"gavel",icon:[512,512,["legal"],"f0e3","M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z"]},xr=rr,Nn={prefix:"fas",iconName:"binoculars",icon:[512,512,[],"f1e5","M128 32l32 0c17.7 0 32 14.3 32 32l0 32L96 96l0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z"]},_a={prefix:"fas",iconName:"microphone-slash",icon:[640,512,[],"f131","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 21.2-5.1 41.1-14.2 58.7L416 300.8 416 96c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6z"]},Fl={prefix:"fas",iconName:"box-tissue",icon:[512,512,[],"e05b","M92.5 0L208 0c40 0 52 24 64 48s24 48 64 48l85.2 0C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288l-256 0-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64-15 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 256 0 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-13.5 0 25.6-64 19.9 0c26.5 0 48 21.5 48 48l0 112L0 384 0 272c0-26.5 21.5-48 48-48l31 0zM0 416l512 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48l0-48z"]},Ua={prefix:"fas",iconName:"motorcycle",icon:[640,512,[127949],"f21c","M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l57.7 0 16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7L64 128c-17.7 0-32 14.3-32 32l0 32 96 0c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32l70.4 0c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128l61.8 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-20.4 0c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21L280 32zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40l66.4 0C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104l-66.4 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},io={prefix:"fas",iconName:"bell-concierge",icon:[512,512,[128718,"concierge-bell"],"f562","M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C119.6 157.2 32 252.4 32 368l448 0c0-115.6-87.6-210.8-200-222.7l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0-40 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z"]},wn=io,uu={prefix:"fas",iconName:"pen-ruler",icon:[512,512,["pencil-ruler"],"f5ae","M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z"]},Hc=uu,gd={prefix:"fas",iconName:"people-arrows",icon:[640,512,["people-arrows-left-right"],"e068","M64 64a64 64 0 1 1 128 0A64 64 0 1 1 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160l44.8 0c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2l0 72.8c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-115.7c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM448 64a64 64 0 1 1 128 0A64 64 0 1 1 448 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1l44.8 0c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6L576 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-72.8 47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240l0 32 96 0 0-32c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-32-96 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z"]},kl=gd,aa={prefix:"fas",iconName:"mars-and-venus-burst",icon:[640,512,[],"e523","M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8l0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .3 0 .4 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1c0 0 0 .1 0 .1s0 .1 0 .1l0 .1c0 0 0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0l24 0-24 0c0 13.3 10.7 24 24 24s24-10.7 24-24l-24 0 24 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1l0-.1c0 0 0-.1 0-.1s0-.1 0-.1l0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.4 0-.3 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L504 0zM400 128a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z"]},hu={prefix:"fas",iconName:"square-caret-right",icon:[448,512,["caret-square-right"],"f152","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z"]},Ph=hu,Zu={prefix:"fas",iconName:"scissors",icon:[512,512,[9984,9986,9988,"cut"],"f0c4","M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},Yc=Zu,Ku={prefix:"fas",iconName:"sun-plant-wilt",icon:[640,512,[],"e57a","M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32l0 53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 8 0 168L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-168 0-8 0-96z"]},qu={prefix:"fas",iconName:"toilets-portable",icon:[576,512,[],"e584","M32 0L224 0c17.7 0 32 14.3 32 32l0 32L0 64 0 32C0 14.3 14.3 0 32 0zM0 96l24 0 208 0 24 0 0 24 0 368c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8L48 480l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24L0 120 0 96zM192 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zM352 0L544 0c17.7 0 32 14.3 32 32l0 32L320 64l0-32c0-17.7 14.3-32 32-32zM320 96l24 0 208 0 24 0 0 24 0 368c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-160 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-368 0-24zM512 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z"]},_d={prefix:"fas",iconName:"hockey-puck",icon:[512,512,[],"f453","M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6L512 352c0 53-114.6 96-256 96S0 405 0 352L0 222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z"]},Qu={prefix:"fas",iconName:"table",icon:[512,512,[],"f0ce","M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]},du={prefix:"fas",iconName:"magnifying-glass-arrow-right",icon:[512,512,[],"e521","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31L120 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l118.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z"]},fu={prefix:"fas",iconName:"tachograph-digital",icon:[640,512,["digital-tachograph"],"f566","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l512 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm32 64l224 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16l256 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16zM80 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},Ju=fu,$u={prefix:"fas",iconName:"users-slash",icon:[640,512,[],"e073","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320l178.1 0c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192l-42.7 0c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320l213.3 0c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192l-15.2 0zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7l330.7 0c10.5 0 19.5-6 23.9-14.8L324.9 352l-63.6 0zM512 160A80 80 0 1 0 512 0a80 80 0 1 0 0 160z"]},pu={prefix:"fas",iconName:"clover",icon:[448,512,[],"e139","M216.6 49.9C205.1 38.5 189.5 32 173.3 32C139.4 32 112 59.4 112 93.3l0 4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4l-4.9 0C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368l4.9 0c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34l0 4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3l0-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4l4.9 0c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3l-4.9 0c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34l0-4.9C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2z"]},Ul={prefix:"fas",iconName:"reply",icon:[512,512,[61714,"mail-reply"],"f3e5","M205 34.8c11.5 5.1 19 16.6 19 29.2l0 64 112 0c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96l-96 0 0 64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z"]},oc=Ul,mu={prefix:"fas",iconName:"star-and-crescent",icon:[512,512,[9770],"f699","M0 256C0 114.6 114.6 0 256 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512C114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z"]},r2={prefix:"fas",iconName:"house-fire",icon:[640,512,[],"e50c","M288 350.1l0 1.9-32 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM480 512c-88.4 0-160-71.6-160-160c0-76.7 62.5-144.7 107.2-179.4c5-3.9 10.9-5.8 16.8-5.8c7.9-.1 16 3.1 22 9.2l46 46 11.3-11.3c11.7-11.7 30.6-12.7 42.3-1C624.5 268 640 320.2 640 352c0 88.4-71.6 160-160 160zm64-111.8c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 327.1 416 363.6 416 400.2c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},lc={prefix:"fas",iconName:"square-minus",icon:[448,512,[61767,"minus-square"],"f146","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},Xc=lc,go={prefix:"fas",iconName:"helicopter",icon:[640,512,[128641],"f533","M128 32c0-17.7 14.3-32 32-32L544 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L384 64l0 64 32 0c88.4 0 160 71.6 160 160l0 64c0 17.7-14.3 32-32 32l-160 0-64 0c-20.1 0-39.1-9.5-51.2-25.6l-71.4-95.2c-3.5-4.7-8.3-8.3-13.7-10.5L47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64L48 64c10.1 0 19.6 4.7 25.6 12.8L112 128l208 0 0-64L160 64c-17.7 0-32-14.3-32-32zM384 320l128 0 0-32c0-53-43-96-96-96l-32 0 0 128zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5L256 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l280.2 0c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z"]},Wo={prefix:"fas",iconName:"compass",icon:[512,512,[129517],"f14e","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Oo={prefix:"fas",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},so=Oo,vd={prefix:"fas",iconName:"file-circle-question",icon:[576,512,[],"e4ef","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6l0 6.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-6.4c0-5.3 4.3-9.6 9.6-9.6l40.5 0c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2l0 14.8c0 8.8 7.2 16 16 16s16-7.2 16-16l0-5.1 23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9l-40.5 0c-23 0-41.6 18.6-41.6 41.6z"]},ro={prefix:"fas",iconName:"laptop-code",icon:[640,512,[],"f5fc","M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256-64 0 0-256L128 96l0 256-64 0L64 96zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"]},nl={prefix:"fas",iconName:"swatchbook",icon:[512,512,[],"f5c3","M0 32C0 14.3 14.3 0 32 0L160 0c17.7 0 32 14.3 32 32l0 384c0 53-43 96-96 96s-96-43-96-96L0 32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9l0-262 75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192L480 320c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-297.2 0zM128 64L64 64l0 64 64 0 0-64zM64 192l0 64 64 0 0-64-64 0zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},va={prefix:"fas",iconName:"prescription-bottle",icon:[384,512,[],"f485","M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zm32 96l320 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-32 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 384l0-64 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 288l0-64 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 192l0-64z"]},_o={prefix:"fas",iconName:"bars",icon:[448,512,["navicon"],"f0c9","M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"]},eh=_o,cc={prefix:"fas",iconName:"people-group",icon:[640,512,[],"e533","M72 88a56 56 0 1 1 112 0A56 56 0 1 1 72 88zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3l0-84.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5l0 21.5c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-26.8C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112l32 0c24 0 46.2 7.5 64.4 20.3zM448 416l0-21.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176l32 0c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2l0 26.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32zm8-328a56 56 0 1 1 112 0A56 56 0 1 1 456 88zM576 245.7l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM240 304c0 16.2 6 31 16 42.3l0-84.7c-10 11.3-16 26.1-16 42.3zm144-42.3l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2l0 42.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-42.8c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112l32 0c61.9 0 112 50.1 112 112z"]},Ad={prefix:"fas",iconName:"hourglass-end",icon:[384,512,[8987,"hourglass-3"],"f253","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z"]},gu=Ad,Oh={prefix:"fas",iconName:"heart-crack",icon:[512,512,[128148,"heart-broken"],"f7a9","M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1l0 5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141z"]},Rh=Oh,th={prefix:"fas",iconName:"square-up-right",icon:[448,512,[8599,"external-link-square-alt"],"f360","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM160 160c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l40 40-71 71C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7l71-71 40 40c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-144c0-8.8-7.2-16-16-16l-144 0z"]},n1=th,a1={prefix:"fas",iconName:"face-kiss-beam",icon:[512,512,[128537,"kiss-beam"],"f597","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"]},Cd=a1,_u={prefix:"fas",iconName:"film",icon:[512,512,[127902],"f008","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM160 128l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L192 96c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0z"]},Dh={prefix:"fas",iconName:"ruler-horizontal",icon:[640,512,[],"f547","M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z"]},xd={prefix:"fas",iconName:"people-robbery",icon:[576,512,[],"e536","M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6L8 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z"]},o1={prefix:"fas",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z"]},l1={prefix:"fas",iconName:"caret-left",icon:[256,512,[],"f0d9","M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]},vu={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},ih=vu,n2={prefix:"fas",iconName:"school-circle-xmark",icon:[640,512,[],"e56d","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z"]},c1={prefix:"fas",iconName:"arrow-right-from-bracket",icon:[512,512,["sign-out"],"f08b","M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z"]},mf=c1,bd={prefix:"fas",iconName:"circle-chevron-down",icon:[512,512,["chevron-circle-down"],"f13a","M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z"]},a2=bd,sh={prefix:"fas",iconName:"unlock-keyhole",icon:[448,512,["unlock-alt"],"f13e","M224 64c-44.2 0-80 35.8-80 80l0 48 240 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0 0-48C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0z"]},o2=sh,l2={prefix:"fas",iconName:"cloud-showers-heavy",icon:[512,512,[],"f740","M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96L96 320zM81.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6S-3.3 490.7 1.9 478.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM313.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z"]},Nh={prefix:"fas",iconName:"headphones-simple",icon:[512,512,["headphones-alt"],"f58f","M256 80C141.1 80 48 173.1 48 288l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24L0 288C0 146.6 114.6 32 256 32s256 114.6 256 256l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64l16 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-16 0c-35.3 0-64-28.7-64-64l0-64zm288-64c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-16 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l16 0z"]},u1=Nh,wh={prefix:"fas",iconName:"sitemap",icon:[576,512,[],"f0e8","M208 80c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-8 0 0 40 152 0c30.9 0 56 25.1 56 56l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-4.4-3.6-8-8-8l-152 0 0 40 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-40-152 0c-4.4 0-8 3.6-8 8l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-30.9 25.1-56 56-56l152 0 0-40-8 0c-26.5 0-48-21.5-48-48l0-64z"]},c2={prefix:"fas",iconName:"circle-dollar-to-slot",icon:[512,512,["donate"],"f4b9","M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3l-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1l0 6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.7 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1l0 6.4c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1l0-5.5c5.3-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4l0-6.3c0-11.1-9-20.1-20.1-20.1zM48 352l16 0c19.5 25.9 44 47.7 72.2 64L64 416l0 32 192 0 192 0 0-32-72.2 0c28.2-16.3 52.8-38.1 72.2-64l16 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48z"]},Bh=c2,Zc={prefix:"fas",iconName:"memory",icon:[576,512,[],"f538","M64 64C28.7 64 0 92.7 0 128l0 7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6L0 320l576 0 0-71.4c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM576 352L0 352l0 64c0 17.7 14.3 32 32 32l48 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 48 0c17.7 0 32-14.3 32-32l0-64zM192 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},Au={prefix:"fas",iconName:"road-spikes",icon:[640,512,[],"e568","M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256l0-139.2c0-15.8 20.5-22 29.3-8.9L320 256l0-139.2c0-15.8 20.5-22 29.3-8.9L448 256l0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7L512 352l-64 0-64 0-64 0-64 0-64 0L64 352l0-235.2zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},u2={prefix:"fas",iconName:"fire-burner",icon:[640,512,[],"e4f1","M345.7 48.3L358 34.5c5.4-6.1 13.3-8.8 20.9-8.9c7.2 0 14.3 2.6 19.9 7.8c19.7 18.3 39.8 43.2 55 70.6C469 131.2 480 162.2 480 192.2C480 280.8 408.7 352 320 352c-89.6 0-160-71.3-160-159.8c0-37.3 16-73.4 36.8-104.5c20.9-31.3 47.5-59 70.9-80.2C273.4 2.3 280.7-.2 288 0c14.1 .3 23.8 11.4 32.7 21.6c0 0 0 0 0 0c2 2.3 4 4.6 6 6.7l19 19.9zM384 240.2c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C293 167.1 256 203.6 256 240.2c0 35.3 28.7 64 64 64s64-28.7 64-64zM32 288c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64 448 0 0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l0-96zM320 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm160-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM192 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Kc={prefix:"fas",iconName:"flag",icon:[448,512,[127988,61725],"f024","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 64 0 368 0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48l0-16z"]},zh={prefix:"fas",iconName:"hanukiah",icon:[640,512,[128334],"f6e6","M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176L96 320c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z"]},uc={prefix:"fas",iconName:"feather",icon:[512,512,[129718],"f52d","M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 68 0c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330l0 55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"]},Cu={prefix:"fas",iconName:"volume-low",icon:[448,512,[128264,"volume-down"],"f027","M301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z"]},h1=Cu,xu={prefix:"fas",iconName:"comment-slash",icon:[640,512,[],"f4b3","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zm385.2 425L82.9 161.3C70.7 185.6 64 212.2 64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104.1-17.9z"]},gf={prefix:"fas",iconName:"cloud-sun-rain",icon:[640,512,[127782],"f743","M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l10.4 62.4c-23.3 10.8-42.9 28.4-56 50.3c-14.6-9-31.8-14.1-50.2-14.1c-53 0-96 43-96 96c0 35.5 19.3 66.6 48 83.2c.8 31.8 13.2 60.7 33.1 82.7l-56 39.2c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM208 144c13.8 0 26.7 4.4 37.1 11.9c-1.2 4.1-2.2 8.3-3 12.6c-37.9 14.6-67.2 46.6-77.8 86.4C151.8 243.1 144 226.5 144 208c0-35.3 28.7-64 64-64zm69.4 276c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm74.5-116.1c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"]},Sd={prefix:"fas",iconName:"compress",icon:[448,512,[],"f066","M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z"]},Fh={prefix:"fas",iconName:"wheat-awn",icon:[512,512,["wheat-alt"],"e2cd","M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z"]},h2=Fh,vo={prefix:"fas",iconName:"ankh",icon:[320,512,[9765],"f644","M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z"]},d2={prefix:"fas",iconName:"hands-holding-child",icon:[640,512,[],"e4fa","M320 0a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm44.7 164.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40l0 40 0 80 0 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2c0 0 0 0 0 0l25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 224l0-64 0-56C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 56 0 64 0 101.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3c0 0 0 0 0 0l15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3l0-40.2 0-80 0-40c0-22.1 17.9-40 40-40z"]},d1={prefix:"fas",iconName:"asterisk",icon:[384,512,[10033,61545],"2a","M192 32c17.7 0 32 14.3 32 32l0 135.5 111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5 224 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-135.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5 160 64c0-17.7 14.3-32 32-32z"]},rh={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},f2=rh,Ao={prefix:"fas",iconName:"peseta-sign",icon:[384,512,[],"e221","M64 32C46.3 32 32 46.3 32 64l0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c77.4 0 142-55 156.8-128l3.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-3.2 0C334 87 269.4 32 192 32L64 32zM282.5 160L96 160l0-64 96 0c41.8 0 77.4 26.7 90.5 64zM96 224l186.5 0c-13.2 37.3-48.7 64-90.5 64l-96 0 0-64z"]},p2={prefix:"fas",iconName:"heading",icon:[448,512,["header"],"f1dc","M0 64C0 46.3 14.3 32 32 32l48 0 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 144 0 176 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-176L48 96 32 96C14.3 96 0 81.7 0 64z"]},m2=p2,f1={prefix:"fas",iconName:"ghost",icon:[384,512,[128123],"f6e2","M40.1 467.1l-11.2 9c-3.2 2.5-7.1 3.9-11.1 3.9C8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8c-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},kh={prefix:"fas",iconName:"list",icon:[512,512,["list-squares"],"f03a","M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z"]},ye=kh,Be={prefix:"fas",iconName:"square-phone-flip",icon:[448,512,["phone-square-alt"],"f87b","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z"]},Ze=Be,tt={prefix:"fas",iconName:"cart-plus",icon:[576,512,[],"f217","M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20l44 0 0 44c0 11 9 20 20 20s20-9 20-20l0-44 44 0c11 0 20-9 20-20s-9-20-20-20l-44 0 0-44c0-11-9-20-20-20s-20 9-20 20l0 44-44 0c-11 0-20 9-20 20z"]},gt={prefix:"fas",iconName:"gamepad",icon:[640,512,[],"f11b","M192 64C86 64 0 150 0 256S86 448 192 448l256 0c106 0 192-86 192-192s-86-192-192-192L192 64zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32z"]},pe={prefix:"fas",iconName:"circle-dot",icon:[512,512,[128280,"dot-circle"],"f192","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},Ce=pe,De={prefix:"fas",iconName:"face-dizzy",icon:[512,512,["dizzy"],"f567","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-224a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z"]},Xe=De,Je={prefix:"fas",iconName:"egg",icon:[384,512,[129370],"f7fb","M192 496C86 496 0 394 0 288C0 176 64 16 192 16s192 160 192 272c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2C69.7 226.1 64 259.7 64 288c0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8c10.1-28.5 25-54.1 43.7-71.2z"]},vt={prefix:"fas",iconName:"house-medical-circle-xmark",icon:[640,512,[],"e513","M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z"]},Gt={prefix:"fas",iconName:"campground",icon:[576,512,[9978],"f6bb","M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4L0 464c0 26.5 21.5 48 48 48l240 0 240 0c26.5 0 48-21.5 48-48l0-23.6c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448l-119.5 0L288 291.7 407.5 448 288 448z"]},ai={prefix:"fas",iconName:"folder-plus",icon:[512,512,[],"f65e","M512 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z"]},As={prefix:"fas",iconName:"futbol",icon:[512,512,[9917,"futbol-ball","soccer-ball"],"f1e3","M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z"]},Cs=As,zs=As,Ys={prefix:"fas",iconName:"paintbrush",icon:[576,512,[128396,"paint-brush"],"f1fc","M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448L64 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"]},tr=Ys,Wr={prefix:"fas",iconName:"lock",icon:[448,512,[128274],"f023","M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z"]},ja={prefix:"fas",iconName:"gas-pump",icon:[512,512,[9981],"f52f","M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-64L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3l0 13.5 0 24 0 32 0 152c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 144c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z"]},Ml={prefix:"fas",iconName:"hot-tub-person",icon:[512,512,["hot-tub"],"f593","M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5l0 13.2c0 13.3 10.7 24 24 24s24-10.7 24-24l0-13.2c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2l0-5.2zM0 320l0 16L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-170.7 0c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96l0 64zm128 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zm112 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24l0 5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5l0 13.2c0 13.3 10.7 24 24 24s24-10.7 24-24l0-13.2c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2l0-5.2c0-13.3-10.7-24-24-24zM64 128A64 64 0 1 0 64 0a64 64 0 1 0 0 128z"]},Jn=Ml,hc={prefix:"fas",iconName:"map-location",icon:[576,512,["map-marked"],"f59f","M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3L576 152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6L416 503zM15.1 187.3C6 191 0 199.8 0 209.6L0 480.4c0 17 17.1 28.6 32.9 22.3L160 451.8l0-251.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77l0 194.4 192 54.9L384 255z"]},Ro=hc,qc={prefix:"fas",iconName:"house-flood-water",icon:[576,512,[],"e50e","M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192l16 0 0 73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2 16.6 0c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448z"]},g2={prefix:"fas",iconName:"tree",icon:[448,512,[127794],"f1bb","M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208l24.9 0L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320L80 320 5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5L192 448l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 168.5 0c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320l33.4 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208l24.9 0c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z"]},Uh={prefix:"fas",iconName:"bridge-lock",icon:[640,512,[],"e4cc","M32 64c0-17.7 14.3-32 32-32l512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-40 0 0 64-8 0c-61.9 0-112 50.1-112 112l0 24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c0-53-43-96-96-96l0-128 72 0 0-64L64 96C46.3 96 32 81.7 32 64zM408 96l0 64 80 0 0-64-80 0zm-48 64l0-64-80 0 0 64 80 0zM152 96l0 64 80 0 0-64-80 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"]},x3={prefix:"fas",iconName:"sack-dollar",icon:[512,512,[128176],"f81d","M320 96L192 96 144.6 24.9C137.5 14.2 145.1 0 157.9 0L354.1 0c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128l128 0c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96L96 512c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4c0 0 0 0 0 0s0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84 88c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15c0 0 0 0 0 0l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7l0-13.9z"]},p1={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"]},E_=p1,Pb={prefix:"fas",iconName:"car-side",icon:[640,512,[128663],"f5e4","M171.3 96L224 96l0 96-112.7 0 30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192l0-96 81.2 0c9.7 0 18.9 4.4 25 12l67.2 84L272 192zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36L171.3 32c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256L0 368c0 17.7 14.3 32 32 32l33.3 0c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80l130.7 0c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80l33.3 0c17.7 0 32-14.3 32-32l0-48c0-65.2-48.8-119-111.8-127zM434.7 368a48 48 0 1 1 90.5 32 48 48 0 1 1 -90.5-32zM160 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},_f={prefix:"fas",iconName:"share-nodes",icon:[448,512,["share-alt"],"f1e0","M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z"]},S5=_f,yd={prefix:"fas",iconName:"heart-circle-minus",icon:[576,512,[],"e4ff","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z"]},b3={prefix:"fas",iconName:"hourglass-half",icon:[384,512,["hourglass-2"],"f252","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.1 14.9L112 384z"]},B4=b3,S3={prefix:"fas",iconName:"microscope",icon:[512,512,[128300],"f610","M160 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32zM32 448l288 0c70.7 0 128-57.3 128-128s-57.3-128-128-128l0-64c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128l16.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},fM={prefix:"fas",iconName:"sink",icon:[512,512,[],"e06d","M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-24c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 24-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-24c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 24-64 0 0-192zM480 416l0-32L32 384l0 32c0 53 43 96 96 96l256 0c53 0 96-43 96-96z"]},dc={prefix:"fas",iconName:"bag-shopping",icon:[448,512,["shopping-bag"],"f290","M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48C336 50.1 285.9 0 224 0S112 50.1 112 112l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},z4=dc,y3={prefix:"fas",iconName:"arrow-down-z-a",icon:[576,512,["sort-alpha-desc","sort-alpha-down-alt"],"f881","M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96 352 96c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448l-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400l40.4 0L416 359.6 395.8 400z"]},Md=y3,m1=y3,fc={prefix:"fas",iconName:"mitten",icon:[448,512,[],"f7b5","M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-32z"]},pM={prefix:"fas",iconName:"person-rays",icon:[512,512,[],"e54d","M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9 328 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z"]},y5={prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192l42.7 0c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0L21.3 320C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7l42.7 0C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3l-213.3 0zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352l117.3 0C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7l-330.7 0c-14.7 0-26.7-11.9-26.7-26.7z"]},pn={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z"]},jl={prefix:"fas",iconName:"flask-vial",icon:[640,512,[],"e4f3","M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L96 0l64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 245.9-49 79.6zM96 64l0 96 64 0 0-96L96 64zM352 0L480 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 150.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4l-309.2 0c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9 320 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0zm32 64l0 160c0 5.9-1.6 11.7-4.7 16.8L330.5 320l171 0-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8l0-160-64 0z"]},oa={prefix:"fas",iconName:"hand",icon:[512,512,[129306,9995,"hand-paper"],"f256","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z"]},Aa=oa,mM={prefix:"fas",iconName:"om",icon:[512,512,[128329],"f679","M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM281 66.7c-2.2-1.5-4.9-2.5-7.7-2.7c-.6 0-1.3-.1-1.9 0c-3.9 .2-7.4 1.7-10.1 4.2c-.9 .8-1.6 1.7-2.3 2.6c-1.7 2.4-2.7 5.3-2.9 8.5c0 .7 0 1.4 0 2.1c.2 2.2 .9 4.3 1.9 6.2l.3 .6c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .1-.1 .1-.1s0 0 0 0s0 0 0 0c5.9-5.8 9.5-13.9 9.5-22.8c0-17.7-14.3-32-32-32c-8.7 0-16.7 3.5-22.4 9.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48l-34.2 0c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9l8.9 0 16 0c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5c-.3-.9-.7-1.8-1.1-2.6c-1.2-2.2-2.8-4-4.7-5.4c-1.9-1.4-4.1-2.3-6.5-2.8c-1.4-.3-2.9-.3-4.4-.2c-2.5 .2-4.8 1-6.8 2.3c-1.1 .7-2.2 1.5-3.1 2.5c-2.4 2.5-4.1 5.8-4.5 9.5c-.1 .6-.1 1.1-.1 1.7c0 0 0 0 0 0c0 .8 .1 1.7 .2 2.5l0 .1c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64l22.6 0c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4l5.5 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.2c-.3-1.3-.8-2.6-1.5-3.8c-1.1-2-2.6-3.8-4.4-5.1c-2.7-2-6-3.2-9.6-3.2l-.2 0c-8 .1-14.6 6.1-15.6 13.9c0 0 0 0 0 0c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96l0-96c0-53-43-96-96-96l-5.5 0c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4l-48.3 0c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4z"]},mn={prefix:"fas",iconName:"worm",icon:[512,512,[],"e599","M256 96c0-53 43-96 96-96l38.4 0C439.9 0 480 40.1 480 89.6l0 86.4 0 16 0 184c0 75.1-60.9 136-136 136s-136-60.9-136-136l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-168c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},Ed={prefix:"fas",iconName:"house-circle-xmark",icon:[640,512,[],"e50b","M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},no={prefix:"fas",iconName:"plug",icon:[384,512,[128268],"f1e6","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2C297 398 352 333.4 352 256l0-32c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z"]},Zs={prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]},T_={prefix:"fas",iconName:"hand-spock",icon:[576,512,[128406],"f259","M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64l10.9 0 8.2 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z"]},Qc={prefix:"fas",iconName:"stopwatch",icon:[448,512,[9201],"f2f2","M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 34.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6L256 64l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L224 0 176 0zm72 192l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},vf={prefix:"fas",iconName:"face-kiss",icon:[512,512,[128535,"kiss"],"f596","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},M3=vf,en={prefix:"fas",iconName:"bridge-circle-xmark",icon:[640,512,[],"e4cb","M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},F4={prefix:"fas",iconName:"face-grin-tongue",icon:[512,512,[128539,"grin-tongue"],"f589","M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448l0-47.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 46.9c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},B0=F4,Af={prefix:"fas",iconName:"chess-bishop",icon:[320,512,[9821],"f43a","M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7L64 400l192 0 0-27.3c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32L128 0zM48 432L6.6 473.4c-4.2 4.2-6.6 10-6.6 16C0 501.9 10.1 512 22.6 512l274.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L272 432 48 432z"]},bu={prefix:"fas",iconName:"face-grin-wink",icon:[512,512,["grin-wink"],"f58c","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Td=bu,k4={prefix:"fas",iconName:"ear-deaf",icon:[512,512,["deaf","deafness","hard-of-hearing"],"f2a4","M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z"]},z0=k4,U4=k4,Ld=k4,M5={prefix:"fas",iconName:"road-circle-check",icon:[640,512,[],"e564","M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},L_={prefix:"fas",iconName:"dice-five",icon:[448,512,[9860],"f523","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},_2={prefix:"fas",iconName:"square-rss",icon:[448,512,["rss-square"],"f143","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},E5=_2,T5={prefix:"fas",iconName:"land-mine-on",icon:[640,512,[],"e51b","M344 24l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32-256 0 0-32zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5l324.7 0c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512l-408.4 0c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z"]},gM={prefix:"fas",iconName:"i-cursor",icon:[256,512,[],"f246","M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3L96 224l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z"]},Ob={prefix:"fas",iconName:"stamp",icon:[512,512,[],"f5bf","M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2L112 256C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3L32 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-50.7c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM416 416l0 32L96 448l0-32 320 0z"]},I_={prefix:"fas",iconName:"stairs",icon:[576,512,[],"e289","M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z"]},Rb={prefix:"fas",iconName:"i",icon:[320,512,[105],"49","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L160 32 32 32z"]},j4={prefix:"fas",iconName:"hryvnia-sign",icon:[384,512,[8372,"hryvnia"],"f6f2","M121.9 116.2C138.3 103.1 158.7 96 179.6 96L223 96c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31L32 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l123.5 0-50.6 28.9c-1.7 1-3.4 2-5.1 3.1L32 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l20.3 0c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113l43.4 0c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2L161 416c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31L352 336c17.7 0 32-14.3 32-32s-14.3-32-32-32l-123.5 0 50.6-28.9c1.7-1 3.4-2 5.1-3.1l67.8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-20.3 0c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113l-43.4 0c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z"]},_M=j4,L5={prefix:"fas",iconName:"pills",icon:[576,512,[],"f484","M112 96c-26.5 0-48 21.5-48 48l0 112 96 0 0-112c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112l0 224c0 61.9-50.1 112-112 112S0 429.9 0 368L0 144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z"]},I5={prefix:"fas",iconName:"face-grin-wide",icon:[512,512,[128515,"grin-alt"],"f581","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z"]},Db=I5,P_={prefix:"fas",iconName:"tooth",icon:[448,512,[129463],"f5c9","M186.1 52.1C169.3 39.1 148.7 32 127.5 32C74.7 32 32 74.7 32 127.5l0 6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2l36.7 205.8c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C192.2 323.7 207 312 224 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5l0-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z"]},P5={prefix:"fas",iconName:"v",icon:[384,512,[118],"56","M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z"]},g1={prefix:"fas",iconName:"bangladeshi-taka-sign",icon:[384,512,[],"e2e6","M36 32.3C18.4 30.1 2.4 42.5 .2 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8L64 160l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 160c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-160 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-31.5c0-48.4-36.1-89.3-84.1-95.3l-7.9-1z"]},v2={prefix:"fas",iconName:"bicycle",icon:[640,512,[128690],"f206","M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l25.7 0 34.6 64-149.4 0-27.4-38C191 99.7 183.7 96 176 96l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.7 0 22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112l49 0c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32L312 32zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368l65 0c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1-123.5 0zm90.6-128l108.5 0L317 274.8 257.4 192z"]},jh={prefix:"fas",iconName:"staff-snake",icon:[384,512,["rod-asclepius","rod-snake","staff-aesculapius"],"e579","M222.6 43.2l-.1 4.8L288 48c53 0 96 43 96 96s-43 96-96 96l-40 0 0-80 40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-28 0-4.5 144 40.5 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-80 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-43 0-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31L136 464c-22.1 0-40-17.9-40-40s17.9-40 40-40l36 0-1-32-19 0c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7l0 94.7c0 8.8 7.2 16 16 16l16.5 0L164 128l-28 0-13.4 0c-9 18.9-28.3 32-50.6 32l-16 0c-30.9 0-56-25.1-56-56S25.1 48 56 48l8 0 8 0 89.5 0-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},Cf=jh,F0=jh,nh=jh,Vh={prefix:"fas",iconName:"head-side-cough-slash",icon:[640,512,[],"e062","M448 325.8l44 34.5c8.1 1.4 14.8 6.8 18 14.1L552.9 408c10.6 .4 19.5 7.6 22.2 17.4l39.1 30.6c.6 0 1.2-.1 1.8-.1c11.1 0 20.4 7.5 23.2 17.8l-3.9 0c6.2 8.5 6.4 20.4-.4 29c-8.2 10.4-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L89.6 44.9C127 16.7 173.5 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320s0 0 0 0l0 5.8zM0 224.2c0-38.7 9.8-75.1 27.1-106.9L341.8 365.3l-2.5 .3c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9l62 3.9 43 33.9C439.3 466.2 421.2 480 400 480l-80 0 0 8c0 13.3-10.7 24-24 24l-40 0s0 0 0 0L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM616 360a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-64-48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},Gh={prefix:"fas",iconName:"truck-medical",icon:[640,512,[128657,"ambulance"],"f0f9","M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM176 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"]},xf=Gh,E3={prefix:"fas",iconName:"wheat-awn-circle-exclamation",icon:[640,512,[],"e598","M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},T3={prefix:"fas",iconName:"snowman",icon:[512,512,[9731,9924],"f7d0","M341.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L408 160.2l0-40.2c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19.6 22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C396.7 296.9 416 338.2 416 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9l-149.3 0c-13.9 0-27.7-4.2-37.5-13.9C114.3 469 96 428.7 96 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3L70.5 198.1l-56-24C2.4 168.8-3.3 154.7 1.9 142.5s19.3-17.8 31.5-12.6L56 139.6 56 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40.2L152.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C164 127.2 160 112.1 160 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM224 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm48 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-16 80a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm16 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM288 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48 24l0 3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9l0-3.2c0-8.8-7.2-16-16-16s-16 7.2-16 16z"]},L3={prefix:"fas",iconName:"mortar-pestle",icon:[512,512,[],"f5a7","M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160l144.9 0L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512l192 0c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z"]},O5={prefix:"fas",iconName:"road-barrier",icon:[640,512,[],"e562","M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-181.7L149.2 96 64 96l0-32c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7L234.8 288l74.3 0 5.4-10.7L405.2 96zM362.8 288l74.3 0 5.4-10.7L533.2 96l-74.3 0-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288l74.3 0 5.4-10.7L277.2 96l-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7L490.8 288z"]},V4={prefix:"fas",iconName:"school",icon:[640,512,[127979],"f549","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l208 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 208 0c26.5 0 48-21.5 48-48l0-320c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64zM96 320l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64zM232 176a88 88 0 1 1 176 0 88 88 0 1 1 -176 0zm88-48c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16z"]},Nb={prefix:"fas",iconName:"igloo",icon:[576,512,[],"f7ae","M320 33.8L320 160 48.5 160C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160l0-120.9C424.9 55.7 487.2 99.8 527.5 160L352 160zM29.9 192L96 192l0 128L0 320c0-46 10.8-89.4 29.9-128zM192 320l-64 0 0-128 320 0 0 128-64 0 0 32 192 0 0 80c0 26.5-21.5 48-48 48l-176 0 0-128c0-35.3-28.7-64-64-64s-64 28.7-64 64l0 128L48 480c-26.5 0-48-21.5-48-48l0-80 192 0 0-32zm288 0l0-128 66.1 0c19.2 38.6 29.9 82 29.9 128l-96 0z"]},wb={prefix:"fas",iconName:"joint",icon:[640,512,[],"f595","M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9l0 11c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43l0-11zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9l0-11c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8l0 11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512l67.3 0c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512l19 0 51.3 0c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352l-19 0-48 0c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9l0-80c0-22.1-17.9-40-40-40l-155.3 0c-4.1 0-6.3 5.1-3.6 8.3z"]},G4={prefix:"fas",iconName:"angle-right",icon:[320,512,[8250],"f105","M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"]},R5={prefix:"fas",iconName:"horse",icon:[576,512,[128014],"f6f0","M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L480 0 448 0C377.3 0 320 57.3 320 128l-96 0-20.8 0-54.4 0c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7c0 0 0 0 0 0l0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},W4={prefix:"fas",iconName:"q",icon:[448,512,[113],"51","M64 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C371.9 325.8 384 292.3 384 256c0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z"]},H4={prefix:"fas",iconName:"g",icon:[448,512,[103],"47","M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6C437.8 389.6 341.4 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z"]},Bb={prefix:"fas",iconName:"notes-medical",icon:[512,512,[],"f481","M96 352L96 96c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 197.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7L160 416c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0C60.9 512 0 451.1 0 376L0 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88l160 0z"]},A2={prefix:"fas",iconName:"temperature-half",icon:[320,512,[127777,"temperature-2","thermometer-2","thermometer-half"],"f2c9","M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 208c0-8.8 7.2-16 16-16s16 7.2 16 16l0 114.7c18.6 6.6 32 24.4 32 45.3z"]},D5=A2,N5=A2,bf=A2,k0={prefix:"fas",iconName:"dong-sign",icon:[384,512,[],"e169","M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32l0-96 0-160c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM128 288a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z"]},Sf={prefix:"fas",iconName:"capsules",icon:[576,512,[],"f46b","M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM0 144L0 368c0 61.9 50.1 112 112 112s112-50.1 112-112l0-178.4c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83l0-24.2c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z"]},O_={prefix:"fas",iconName:"poo-storm",icon:[448,512,["poo-bolt"],"f75a","M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 21.7-8.5 37.2-21.9 47.6c-13.8 10.8-34 17-57.8 17L128 112c-35.3 0-64 28.7-64 64c0 12.2 3.4 23.5 9.3 33.2C31.7 216.2 0 252.4 0 296c0 40.9 28 75.4 65.8 85.2c-5.3-18.5 1-38.5 16.2-50.7l160-128c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L285.7 320l18.3 0c20.4 0 38.5 12.9 45.3 32.1c3.7 10.6 3.5 21.8 0 31.9l10.7 0c48.6 0 88-39.4 88-88c0-43.6-31.7-79.8-73.3-86.8c5.9-9.7 9.3-21.1 9.3-33.2c0-35.3-28.7-64-64-64l-1.4 0c.9-5.4 1.4-10.9 1.4-16.6c0-48.7-36.1-88.9-83.1-95.2zm45.1 227.4c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7l70.1 0L129.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7l-70.1 0 52.4-104.8c3.4-6.7 1.6-14.9-4.3-19.6z"]},I3=O_,P3={prefix:"fas",iconName:"face-frown-open",icon:[512,512,[128550,"frown-open"],"f57a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-122 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z"]},U0=P3,R_={prefix:"fas",iconName:"hand-point-up",icon:[384,512,[9757],"f0a6","M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0L32 32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z"]},D_={prefix:"fas",iconName:"money-bill",icon:[576,512,[],"f0d6","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm64 320l-64 0 0-64c35.3 0 64 28.7 64 64zM64 192l0-64 64 0c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM288 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},Y4={prefix:"fas",iconName:"bookmark",icon:[384,512,[128278,61591],"f02e","M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z"]},X4={prefix:"fas",iconName:"align-justify",icon:[448,512,[],"f039","M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z"]},zb={prefix:"fas",iconName:"umbrella-beach",icon:[576,512,[127958],"f5ca","M346.3 271.8l-60.1-21.9L214 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-261.9 0 64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z"]},Fb={prefix:"fas",iconName:"helmet-un",icon:[512,512,[],"e503","M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384L200 384l14.9 0L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5L368 288l80 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7L274.4 288l45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},kb={prefix:"fas",iconName:"bullseye",icon:[512,512,[],"f140","M448 256A192 192 0 1 0 64 256a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Ub={prefix:"fas",iconName:"bacon",icon:[576,512,[129363],"f7e5","M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6c0 0 0 0 0 0l.2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z"]},Z4={prefix:"fas",iconName:"hand-point-down",icon:[384,512,[],"f0a7","M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z"]},vM={prefix:"fas",iconName:"arrow-up-from-bracket",icon:[448,512,[],"e09a","M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z"]},jb={prefix:"fas",iconName:"folder",icon:[512,512,[128193,128447,61716,"folder-blank"],"f07b","M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z"]},AM=jb,Vb={prefix:"fas",iconName:"file-waveform",icon:[448,512,["file-medical-alt"],"f478","M96 0C60.7 0 32 28.7 32 64l0 224 112 0c6.1 0 11.6 3.4 14.3 8.8L176 332.2l49.7-99.4c2.7-5.4 8.3-8.8 14.3-8.8s11.6 3.4 14.3 8.8L281.9 288l70.1 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-80 0c-6.1 0-11.6-3.4-14.3-8.8L240 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L134.1 320 32 320l0 128c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L256 0 96 0zM288 0l0 128 128 0L288 0z"]},N_=Vb,Gb={prefix:"fas",iconName:"radiation",icon:[512,512,[],"f7b9","M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},w5={prefix:"fas",iconName:"chart-simple",icon:[448,512,[],"e473","M160 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM368 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z"]},CM={prefix:"fas",iconName:"mars-stroke",icon:[512,512,[9894],"f229","M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L376 0zm88 48s0 0 0 0s0 0 0 0s0 0 0 0zM96 304a112 112 0 1 1 224 0A112 112 0 1 1 96 304z"]},B5={prefix:"fas",iconName:"vial",icon:[512,512,[129514],"f492","M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96-101.5 0z"]},K4={prefix:"fas",iconName:"gauge",icon:[512,512,["dashboard","gauge-med","tachometer-alt-average"],"f624","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3L280 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 204.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},j0=K4,q4=K4,Wb=K4,O3={prefix:"fas",iconName:"wand-magic-sparkles",icon:[576,512,["magic-wand-sparkles"],"e2ca","M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z"]},Q4=O3,Id={prefix:"fas",iconName:"e",icon:[320,512,[101],"45","M64 32C28.7 32 0 60.7 0 96L0 256 0 416c0 35.3 28.7 64 64 64l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 416l0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 224 64 96l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32z"]},R3={prefix:"fas",iconName:"pen-clip",icon:[512,512,["pen-alt"],"f305","M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1s0 0 0 0l-1-1s0 0 0 0l-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z"]},yf=R3,D3={prefix:"fas",iconName:"bridge-circle-exclamation",icon:[640,512,[],"e4ca","M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},J4={prefix:"fas",iconName:"user",icon:[448,512,[128100,62144],"f007","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z"]},Mf={prefix:"fas",iconName:"school-circle-check",icon:[640,512,[],"e56b","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z"]},w_={prefix:"fas",iconName:"dumpster",icon:[576,512,[],"f793","M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160l94 0L140.5 32 49.7 32zM272 160l0-128-98.9 0L147.5 160 272 160zm32 0l124.5 0L402.9 32 304 32l0 128zm157.1 0l94 0c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32l-90.8 0 25.6 128zM32 192l4 32-4 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l12 0L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32l320 0c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160 12 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-4 0 4-32L32 192z"]},C2={prefix:"fas",iconName:"van-shuttle",icon:[640,512,[128656,"shuttle-van"],"f5b6","M64 104l0 88 96 0 0-96L72 96c-4.4 0-8 3.6-8 8zm482 88L465.1 96 384 96l0 96 162 0zm-226 0l0-96-96 0 0 96 96 0zM592 384l-16 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 104C0 64.2 32.2 32 72 32l120 0 160 0 113.1 0c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2L640 336c0 26.5-21.5 48-48 48zm-64 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},$4=C2,eg={prefix:"fas",iconName:"building-user",icon:[640,512,[],"e4da","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 89.9 0c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2l0-95.9L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM576 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM352 477.1c0 19.3 15.6 34.9 34.9 34.9l218.2 0c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1l-101.8 0c-51.4 0-93.1 41.7-93.1 93.1z"]},_1={prefix:"fas",iconName:"square-caret-left",icon:[448,512,["caret-square-left"],"f191","M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z"]},Hb=_1,xi={prefix:"fas",iconName:"highlighter",icon:[576,512,[],"f591","M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5s0 0 0 0l0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5L224 416l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z"]},Vl={prefix:"fas",iconName:"key",icon:[512,512,[128273],"f084","M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z"]},Bn={prefix:"fas",iconName:"bullhorn",icon:[512,512,[128226,128363],"f0a1","M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75l-8.7 0-32 0-96 0c-35.3 0-64 28.7-64 64l0 96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128 8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-147.6c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4L480 32zm-64 76.7L416 240l0 131.3C357.2 317.8 280.5 288 200.7 288l-8.7 0 0-96 8.7 0c79.8 0 156.5-29.8 215.3-83.3z"]},Wh={prefix:"fas",iconName:"globe",icon:[512,512,[127760],"f0ac","M352 256c0 22.2-1.2 43.6-3.3 64l-185.3 0c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64l185.3 0c2.2 20.4 3.3 41.8 3.3 64zm28.8-64l123.1 0c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64l-123.1 0c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32l-116.7 0c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0l-176.6 0c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0L18.6 160C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192l123.1 0c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64L8.1 320C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6l176.6 0c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352l116.7 0zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6l116.7 0z"]},z5={prefix:"fas",iconName:"synagogue",icon:[640,512,[128333],"f69b","M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166l0 114.1L480 512l-16 0-112 0 0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96-112 0-16 0 0-231.9L160 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512l0-267.5 28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1L640 448c0 35.3-28.7 64-64 64l-64 0zM128 244.5L128 512l-64 0c-35.3 0-64-28.7-64-64L0 316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z"]},Ci={prefix:"fas",iconName:"person-half-dress",icon:[320,512,[],"e548","M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm8 352l0-224 6.9 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128s0 0 0 0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3l0 256s0 0 0 0l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z"]},Jc={prefix:"fas",iconName:"road-bridge",icon:[640,512,[],"e563","M352 0L608 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM480 40c-13.3 0-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24zM32 96l256 0 0 64-40 0 0 64 40 0 0 96c-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c0-53-43-96-96-96l0-96 72 0 0-64-40 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64l-80 0 0 64 80 0 0-64z"]},zn={prefix:"fas",iconName:"location-arrow",icon:[448,512,[],"f124","M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8l176 0 0 176c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z"]},N3={prefix:"fas",iconName:"c",icon:[384,512,[99],"43","M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z"]},tg={prefix:"fas",iconName:"tablet-button",icon:[448,512,[],"f10a","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},ig={prefix:"fas",iconName:"building-lock",icon:[576,512,[],"e4d6","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 88.6 0c-5.4-9.4-8.6-20.3-8.6-32l0-128c0-23.7 12.9-44.4 32-55.4l0-24.6c0-30.5 12.2-58.2 32-78.4L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},V0={prefix:"fas",iconName:"pizza-slice",icon:[512,512,[],"f818","M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},sg={prefix:"fas",iconName:"money-bill-wave",icon:[576,512,[],"f53a","M0 112.5L0 422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4l0-309.9c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64l-64 0 0-64zm64-208c0 35.3-28.7 64-64 64l0-64 64 0zM512 304l0 64-64 0c0-35.3 28.7-64 64-64zM448 96l64 0 0 64c-35.3 0-64-28.7-64-64z"]},Ef={prefix:"fas",iconName:"chart-area",icon:[512,512,["area-chart"],"f1fe","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 288l288 0c17.7 0 32-14.3 32-32l0-68.2c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1l0 84c0 17.7 14.3 32 32 32z"]},rg=Ef,F5={prefix:"fas",iconName:"house-flag",icon:[640,512,[],"e50d","M480 0c-17.7 0-32 14.3-32 32l0 160 0 320 64 0 0-320 112 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16L512 32c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288l32 0 0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 96c0 17.7 14.3 32 32 32l64.7 0 .2 0-1 0 0-353z"]},G0={prefix:"fas",iconName:"person-circle-minus",icon:[576,512,[],"e540","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z"]},W0={prefix:"fas",iconName:"ban",icon:[512,512,[128683,"cancel"],"f05e","M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},pc=W0,Va={prefix:"fas",iconName:"camera-rotate",icon:[640,512,[],"e0d8","M213.1 64.8L202.7 96 128 96c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L426.9 64.8C420.4 45.2 402.1 32 381.4 32L258.6 32c-20.7 0-39 13.2-45.5 32.8zM448 256c0 8.8-7.2 16-16 16l-76.7 0c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L371 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L249 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C257.4 172.7 288 160 320 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3l0 76.7zM192 320c0-8.8 7.2-16 16-16l76.7 0c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L269 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L391 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C382.6 403.3 352 416 320 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3l0-76.7z"]},Yb={prefix:"fas",iconName:"spray-can-sparkles",icon:[512,512,["air-freshener"],"f5d0","M96 32l0 96 128 0 0-96c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96L0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96L96 160zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z"]},la=Yb,x2={prefix:"fas",iconName:"star",icon:[576,512,[11088,61446],"f005","M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"]},v1={prefix:"fas",iconName:"repeat",icon:[512,512,[128257],"f363","M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32l0 32L160 64C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 160 0c88.4 0 160-71.6 160-160z"]},Co={prefix:"fas",iconName:"cross",icon:[384,512,[128327,10013],"f654","M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z"]},ng={prefix:"fas",iconName:"box",icon:[448,512,[128230],"f466","M50.7 58.5L0 160l208 0 0-128L93.7 32C75.5 32 58.9 42.3 50.7 58.5zM240 160l208 0L397.3 58.5C389.1 42.3 372.5 32 354.3 32L240 32l0 128zm208 32L0 192 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-224z"]},Ca={prefix:"fas",iconName:"venus-mars",icon:[640,512,[9892],"f228","M176 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM352 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0L616 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z"]},H0={prefix:"fas",iconName:"arrow-pointer",icon:[320,512,["mouse-pointer"],"f245","M0 55.2L0 426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320l118.1 0c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"]},xM=H0,k5={prefix:"fas",iconName:"maximize",icon:[512,512,["expand-arrows-alt"],"f31e","M200 32L56 32C42.7 32 32 42.7 32 56l0 144c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79-79 79L73 295c-6.9-6.9-17.2-8.9-26.2-5.2S32 302.3 32 312l0 144c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-144c0-13.3-10.7-24-24-24L312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S209.7 32 200 32z"]},ag=k5,Xb={prefix:"fas",iconName:"charging-station",icon:[576,512,[],"f5e7","M96 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-144 16 0c22.1 0 40 17.9 40 40l0 32c0 39.8 32.2 72 72 72s72-32.2 72-72l0-123.7c32.5-10.2 56-40.5 56-76.3l0-32c0-8.8-7.2-16-16-16l-16 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-32 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-16 0c-8.8 0-16 7.2-16 16l0 32c0 35.8 23.5 66.1 56 76.3L472 376c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-48.6-39.4-88-88-88l-16 0 0-192c0-35.3-28.7-64-64-64L96 0zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9 57.8 0c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9L96 208c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z"]},B_={prefix:"fas",iconName:"shapes",icon:[512,512,["triangle-circle-square"],"f61f","M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2l192 0c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312l0 144c0 22.1 17.9 40 40 40l144 0c22.1 0 40-17.9 40-40l0-144c0-22.1-17.9-40-40-40l-144 0c-22.1 0-40 17.9-40 40zM128 512a128 128 0 1 0 0-256 128 128 0 1 0 0 256z"]},bM=B_,Y0={prefix:"fas",iconName:"shuffle",icon:[512,512,[128256,"random"],"f074","M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z"]},SM=Y0,U5={prefix:"fas",iconName:"person-running",icon:[448,512,[127939,"running"],"f70c","M320 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM125.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L137.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L238 299l30.9-82.4 5.1 12.3C289 264.7 323.9 288 362.7 288l21.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-21.3 0c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L57.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM91.2 352L32 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l69.6 0c19 0 36.2-11.2 43.9-28.5L157 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L91.2 352z"]},j5=U5,yM={prefix:"fas",iconName:"mobile-retro",icon:[320,512,[],"e527","M0 64C0 28.7 28.7 0 64 0L256 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm64 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM80 352a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0z"]},og={prefix:"fas",iconName:"grip-lines-vertical",icon:[192,512,[],"f7a5","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z"]},$c={prefix:"fas",iconName:"spider",icon:[512,512,[128375],"f717","M158.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L81.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4L70.8 190.3c-2.4-.8-4.3-2.7-5.1-5.1L46.8 128.4C42.6 115.8 29 109 16.4 113.2S-3 131 1.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L116.1 256 55.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L1.2 368.4C-3 381 3.8 394.6 16.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8L93.7 352.3C78.1 368 73.1 391.4 81.1 412l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L160 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L430.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L395.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L398.4 15.4C393.6 3 379.8-3.2 367.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L336 174.1l0-14.1c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4l0 10.8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-10.8c0-10.1-9.4-17.7-18.5-13.4C194.6 100.7 176 128.2 176 160l0 14.1-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z"]},Tf={prefix:"fas",iconName:"hands-bound",icon:[640,512,[],"e4f9","M96 32C96 14.3 81.7 0 64 0S32 14.3 32 32l0 64 0 59.1 0 .7L32 192l0 21.9c0 14.2 5.1 27.9 14.3 38.7L131.6 352l-3.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 128 0 64 0 128 0 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7l0-21.9 0-36.2 0-.7L608 96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64 0 48.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L473 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C361 209.7 352 233.4 352 258.1l0 61.9 0 32-64 0 0-32 0-61.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L96 144.8 96 96l0-64zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0-128 0-64 0-128 0-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z"]},MM={prefix:"fas",iconName:"file-invoice-dollar",icon:[384,512,[],"f571","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 80c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16l0 17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1s0 0 0 0s0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1l0 17.1c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-17.8c-11.2-2.1-21.7-5.7-30.9-8.9c0 0 0 0 0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5s0 0 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7l0-17.3c0-8.8 7.2-16 16-16z"]},mc={prefix:"fas",iconName:"plane-circle-exclamation",icon:[640,512,[],"e556","M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},X0={prefix:"fas",iconName:"x-ray",icon:[512,512,[],"f497","M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16l0 32-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 48-112 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l112 0 0 70.6L189.1 307c-5.2-2-10.6-3-16.2-3l-2.1 0c-23.6 0-42.8 19.2-42.8 42.8c0 9.6 3.2 18.9 9.1 26.4l18.2 23.2c9.7 12.4 24.6 19.6 40.3 19.6l120.8 0c15.7 0 30.6-7.2 40.3-19.6l18.2-23.2c5.9-7.5 9.1-16.8 9.1-26.4c0-23.6-19.2-42.8-42.8-42.8l-2.2 0c-5.5 0-11 1-16.2 3L272 326.6l0-70.6 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-112 0 0-48 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-80 0 0-32c0-8.8-7.2-16-16-16zM208 352a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm80 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},dr={prefix:"fas",iconName:"spell-check",icon:[576,512,[],"f891","M112 0C99.1 0 87.4 7.8 82.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L66.7 224l90.7 0 5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C136.6 7.8 124.9 0 112 0zm18.7 160l-37.3 0L112 115.2 130.7 160zM256 32l0 96 0 96c0 17.7 14.3 32 32 32l80 0c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80L288 0c-17.7 0-32 14.3-32 32zm96 64l-32 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64l32 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0-32zM566.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L352 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z"]},A1={prefix:"fas",iconName:"slash",icon:[640,512,[],"f715","M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z"]},EM={prefix:"fas",iconName:"computer-mouse",icon:[384,512,[128433,"mouse"],"f8cc","M0 192l176 0L176 0 160 0C71.6 0 0 71.6 0 160l0 32zm0 32L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-128-192 0L0 224zm384-32l0-32C384 71.6 312.4 0 224 0L208 0l0 192 176 0z"]},gc=EM,C1={prefix:"fas",iconName:"arrow-right-to-bracket",icon:[512,512,["sign-in"],"f090","M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"]},tn=C1,lg={prefix:"fas",iconName:"shop-slash",icon:[640,512,["store-alt-slash"],"e070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43L576 224l-64 0 0 152L384 275.7l0-51.7-64 0 0 1.5L277.2 192l325.9 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192l85 0L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384l-192 0 0-160-64 0 0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-65.5-64-50.4 0 35.9z"]},Zb=lg,TM={prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},z_={prefix:"fas",iconName:"virus-covid-slash",icon:[640,512,[],"e4a9","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6L344 48l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L280 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5L112 232l0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z"]},cg={prefix:"fas",iconName:"shop-lock",icon:[640,512,[],"e4a5","M36.8 192l412.8 0c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224l-64 0 0 160-192 0 0-160-64 0 0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-32 0-128zm144 16c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},V5={prefix:"fas",iconName:"hourglass-start",icon:[384,512,["hourglass-1"],"f251","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM288 437l0 11L96 448l0-11c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z"]},Kb=V5,qb={prefix:"fas",iconName:"blender-phone",icon:[576,512,[],"f6b6","M224 352L196.8 52.3C194.2 24.2 216.3 0 244.6 0L534.1 0c21.1 0 36.4 20.1 30.9 40.4L558.5 64 400 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l149.8 0-17.5 64L400 160c-8.8 0-16 7.2-16 16s7.2 16 16 16l123.6 0-17.5 64L400 256c-8.8 0-16 7.2-16 16s7.2 16 16 16l97.5 0L480 352l-256 0zm-16 32l288 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z"]},LM={prefix:"fas",iconName:"building-wheat",icon:[640,512,[],"e4db","M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm384 80l0 16c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0zm0 128c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0 0 16zm0 112c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0 0 16zM512 496l0 16-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80zm0-96l-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80l0 16zm0-128l0 16-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24zm96 64l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-13.3 10.7-24 24-24z"]},Qb={prefix:"fas",iconName:"person-breastfeeding",icon:[448,512,[],"e53a","M224 0a80 80 0 1 1 0 160A80 80 0 1 1 224 0zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.8-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z"]},G5={prefix:"fas",iconName:"right-to-bracket",icon:[512,512,["sign-in-alt"],"f2f6","M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},IM=G5,Jb={prefix:"fas",iconName:"venus",icon:[384,512,[9792],"f221","M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9z"]},W5={prefix:"fas",iconName:"passport",icon:[448,512,[],"f5ab","M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8l39.1 0c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5l47.1 0c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8l39.1 0c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8l-39.1 0zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5l-47.1 0c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8l-39.1 0c5.3-31.4 25.8-57.6 53.7-70.8zM352 192A128 128 0 1 0 96 192a128 128 0 1 0 256 0zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l224 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-224 0z"]},H5={prefix:"fas",iconName:"thumbtack-slash",icon:[640,512,["thumb-tack-slash"],"e68f","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L481.4 352c9.8-.4 18.9-5.3 24.6-13.3c6-8.3 7.7-19.1 4.4-28.8l-1-3c-13.8-41.5-42.8-74.8-79.5-94.7L418.5 64 448 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l29.5 0-6.1 79.5L38.8 5.1zM324.9 352L177.1 235.6c-20.9 18.9-37.2 43.3-46.5 71.3l-1 3c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l164.9 0zM288 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96-64 0z"]},$b=H5,e7={prefix:"fas",iconName:"heart-pulse",icon:[512,512,["heartbeat"],"f21e","M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4l87 0c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31l104.5 0c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240l-132 0c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9L16 240c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1l0 5.8c0 16.9-2.8 33.5-8.3 49.1z"]},PM=e7,F_={prefix:"fas",iconName:"people-carry-box",icon:[640,512,["people-carry"],"f4ce","M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm64 193.7l0 65.1 51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7l0-88.1c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5 0-76.2c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 76.2 10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6l0 88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51 0-65.1-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8l-126.7 0c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm77.9 348.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z"]},ug=F_,Y5={prefix:"fas",iconName:"temperature-high",icon:[512,512,[],"f769","M416 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 128A96 96 0 1 0 416 0a96 96 0 1 0 0 192zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5L96 112zM144 0C82.1 0 32 50.2 32 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L256 112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3L160 112c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 210.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z"]},t7={prefix:"fas",iconName:"microchip",icon:[512,512,[],"f2db","M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm192 32l-192 0 0 192 192 0 0-192z"]},OM={prefix:"fas",iconName:"crown",icon:[576,512,[128081],"f521","M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6l277.2 0c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z"]},i7={prefix:"fas",iconName:"weight-hanging",icon:[512,512,[],"f5cd","M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32L120 128c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512l416 0c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128l-45.5 0z"]},X5={prefix:"fas",iconName:"xmarks-lines",icon:[640,512,[],"e59a","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z"]},Z0={prefix:"fas",iconName:"file-prescription",icon:[384,512,[],"f572","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM104 196l72 0c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6l-20 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-64 0-80c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20l-52 0 0 40 52 0z"]},k_={prefix:"fas",iconName:"weight-scale",icon:[512,512,["weight"],"f496","M128 176a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zM391.8 64C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-56.2 0zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z"]},hg=k_,s7={prefix:"fas",iconName:"user-group",icon:[640,512,[128101,"user-friends"],"f500","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM609.3 512l-137.8 0c5.4-9.4 8.6-20.3 8.6-32l0-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2l61.4 0C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z"]},RM=s7,K0={prefix:"fas",iconName:"arrow-up-a-z",icon:[576,512,["sort-alpha-up"],"f15e","M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-128 0c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176l-40.4 0z"]},dg=K0,Lf={prefix:"fas",iconName:"chess-knight",icon:[448,512,[9822],"f441","M96 48L82.7 61.3C70.7 73.3 64 89.5 64 106.5l0 132.4c0 10.7 5.3 20.7 14.2 26.6l10.6 7c14.3 9.6 32.7 10.7 48.1 3l3.2-1.6c2.6-1.3 5-2.8 7.3-4.5l49.4-37c6.6-5 15.7-5 22.3 0c10.2 7.7 9.9 23.1-.7 30.3L90.4 350C73.9 361.3 64 380 64 400l320 0 28.9-159c2.1-11.3 3.1-22.8 3.1-34.3l0-14.7C416 86 330 0 224 0L83.8 0C72.9 0 64 8.9 64 19.8c0 7.5 4.2 14.3 10.9 17.7L96 48zm24 68a20 20 0 1 1 40 0 20 20 0 1 1 -40 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512l370.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L384 432 64 432 22.6 473.4z"]},w3={prefix:"fas",iconName:"face-laugh-squint",icon:[512,512,["laugh-squint"],"f59b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},r7=w3,eu={prefix:"fas",iconName:"wheelchair",icon:[512,512,[],"f193","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM120.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C43.1 225.1 0 283.5 0 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C240 440 202.8 464 160 464C98.1 464 48 413.9 48 352c0-47.9 30.1-88.8 72.5-104.8zM259.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4l5.1 0c.4 0 .8 0 1.3 0l94.1 0c6.7 0 12.6 4.1 15 10.4L402 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9l-68.5 0-9.6-48 63.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-76.2 0z"]},If={prefix:"fas",iconName:"circle-arrow-up",icon:[512,512,["arrow-circle-up"],"f0aa","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM385 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71L280 392c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-214.1-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 103c9.4-9.4 24.6-9.4 33.9 0L385 215z"]},B3=If,b2={prefix:"fas",iconName:"toggle-on",icon:[576,512,[],"f205","M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192s-86-192-192-192L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},Z5={prefix:"fas",iconName:"person-walking",icon:[320,512,[128694,"walking"],"f554","M160 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z"]},tu=Z5,S2={prefix:"fas",iconName:"l",icon:[320,512,[108],"4c","M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z"]},q0={prefix:"fas",iconName:"fire",icon:[448,512,[128293],"f06d","M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z"]},z3={prefix:"fas",iconName:"bed-pulse",icon:[640,512,["procedures"],"f487","M483.2 9.6L524 64l92 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-104 0c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112 216 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160l12.7 0 20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160l82.1 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 448l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64s32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32zm-144 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},fg=z3,pg={prefix:"fas",iconName:"shuttle-space",icon:[640,512,["space-shuttle"],"f197","M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96 2 0zM352 128L245.2 63.9C210.4 43 170.6 32 130 32l-2 0 0 96 224 0zM96 128l0-96L80 32C53.5 32 32 53.5 32 80l0 48 8 0c-22.1 0-40 17.9-40 40l0 16L0 328l0 16c0 22.1 17.9 40 40 40l-8 0 0 48c0 26.5 21.5 48 48 48l16 0 0-96 8 0c26.2 0 49.4-12.6 64-32l288 0c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160l-288 0c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6l0 24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4l0-87.1c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z"]},K5=pg,F3={prefix:"fas",iconName:"face-laugh",icon:[512,512,["laugh"],"f599","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},n7=F3,k3={prefix:"fas",iconName:"folder-open",icon:[576,512,[128194,128449,61717],"f07c","M88.7 223.8L0 375.8 0 96C0 60.7 28.7 32 64 32l117.5 0c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7L416 96c35.3 0 64 28.7 64 64l0 32-336 0c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224l400 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480L32 480c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z"]},q5={prefix:"fas",iconName:"heart-circle-plus",icon:[576,512,[],"e500","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},DM={prefix:"fas",iconName:"code-fork",icon:[448,512,[],"e13b","M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 38.7c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-38.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 38.7c0 53-43 96-96 96l-48 0 0 70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-48 0c-53 0-96-43-96-96l0-38.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},a7={prefix:"fas",iconName:"city",icon:[640,512,[127961],"f64f","M480 48c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 48-64 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72c0-13.3-10.7-24-24-24S64 10.7 64 24l0 72L48 96C21.5 96 0 117.5 0 144l0 96L0 464c0 26.5 21.5 48 48 48l256 0 32 0 96 0 160 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48l-112 0 0-144zm96 320l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 416l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM560 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 176l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 320l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zm304-48l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16z"]},o7={prefix:"fas",iconName:"microphone-lines",icon:[384,512,[127897,"microphone-alt"],"f3c9","M96 96l0 160c0 53 43 96 96 96s96-43 96-96l-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0c0-53-43-96-96-96S96 43 96 96zM320 240l0 16c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24z"]},Q5=o7,l7={prefix:"fas",iconName:"pepper-hot",icon:[512,512,[127798],"f816","M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3L360 256c-13.3 0-24-10.7-24-24l0-80c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0 0 80c0 26.5 21.5 48 48 48l76.2 0 23.9 47.8C372.3 443.9 244.3 512 103.2 512l-58.8 0C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z"]},NM={prefix:"fas",iconName:"unlock",icon:[448,512,[128275],"f09c","M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144l0 48-16 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-240 0 0-48z"]},wM={prefix:"fas",iconName:"colon-sign",icon:[384,512,[],"e140","M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.2 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z"]},c7={prefix:"fas",iconName:"headset",icon:[512,512,[],"f590","M256 48C141.1 48 48 141.1 48 256l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40C0 114.6 114.6 0 256 0S512 114.6 512 256l0 144.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24l-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40L464 256c0-114.9-93.1-208-208-208zM144 208l16 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32l-16 0c-35.3 0-64-28.7-64-64l0-48c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64l0 48c0 35.3-28.7 64-64 64l-16 0c-17.7 0-32-14.3-32-32l0-112c0-17.7 14.3-32 32-32l16 0z"]},BM={prefix:"fas",iconName:"store-slash",icon:[640,512,[],"e071","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68 0-17.1 0-131.4c-4 1-8 1.8-12.3 2.3c0 0 0 0-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3l0 100.3L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0L141.6 0c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384l0-133.4c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3L96 384l0 64c0 35.3 28.7 64 64 64l320 0c12.9 0 24.8-3.8 34.9-10.3L365.5 384 160 384z"]},u7={prefix:"fas",iconName:"road-circle-xmark",icon:[640,512,[],"e566","M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z"]},zM={prefix:"fas",iconName:"user-minus",icon:[640,512,[],"f503","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM472 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},U_={prefix:"fas",iconName:"mars-stroke-up",icon:[320,512,[9896,"mars-stroke-v"],"f22a","M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9l-40 0 0 24 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8l0-24-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-24L96 96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352A96 96 0 1 0 64 352a96 96 0 1 0 192 0z"]},FM=U_,h7={prefix:"fas",iconName:"champagne-glasses",icon:[640,512,[129346,"glass-cheers"],"f79f","M155.6 17.3C163 3 179.9-3.6 195 1.9L320 47.5l125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6L556.1 413l41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41l-71.1 25.9L476.8 510c-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-34-130-95.2L320 188.8l-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6 25.2 24.4 19.1 41s-24.4 25.2-41 19.1L92.2 484.1 21.1 458.2c-16.6-6.1-25.2-24.4-19.1-41s24.4-25.2 41-19.1l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8L261.6 157l13.1-57.9L199.6 71.7zm240.9 0L365.4 99.1 378.5 157l89.2-32.5L440.5 71.7z"]},kM=h7,d7={prefix:"fas",iconName:"clipboard",icon:[384,512,[128203],"f328","M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM112 192l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},j_={prefix:"fas",iconName:"house-circle-exclamation",icon:[640,512,[],"e50a","M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},f7={prefix:"fas",iconName:"file-arrow-up",icon:[384,512,["file-upload"],"f574","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-102.1-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31L216 408z"]},p7=f7,J5={prefix:"fas",iconName:"wifi",icon:[640,512,["wifi-3","wifi-strong"],"f1eb","M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},m7=J5,UM=J5,$5={prefix:"fas",iconName:"bath",icon:[512,512,[128705,"bathtub"],"f2cd","M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3zM32 352l0 16c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-16L32 352z"]},g7=$5,mg={prefix:"fas",iconName:"underline",icon:[448,512,[],"f0cd","M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z"]},U3={prefix:"fas",iconName:"user-pen",icon:[640,512,["user-edit"],"f4ff","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l293.1 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1l-91.4 0zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z"]},jM=U3,eA={prefix:"fas",iconName:"signature",icon:[640,512,[],"f5b7","M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.3 0c-.2-2.8-.3-5.6-.3-8.5L64 368l-40 0zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24l-310.1 0c-6.7 16.3-14.2 32.3-22.3 48L616 416z"]},tA={prefix:"fas",iconName:"stroopwafel",icon:[512,512,[],"f551","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3L86.3 199.4c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L256 414.4l33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L414.4 256l33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3L233.4 256l-45.3 45.3L142.9 256zm67.9 67.9L256 278.6l45.3 45.3L256 369.1l-45.3-45.3zM278.6 256l45.3-45.3L369.1 256l-45.3 45.3L278.6 256zm22.6-67.9L256 233.4l-45.3-45.3L256 142.9l45.3 45.3z"]},V_={prefix:"fas",iconName:"bold",icon:[384,512,[],"f032","M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z"]},j3={prefix:"fas",iconName:"anchor-lock",icon:[640,512,[],"e4ad","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3l0-33.3c-5.2 .9-10.5 1.3-16 1.3l-48 0 0-208 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM528 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},_7={prefix:"fas",iconName:"building-ngo",icon:[384,512,[],"e4d7","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM168 64l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 64 16 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 24c0 13.3-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24l0-88c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48l0 32c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-32zM61.3 71.1l34.7 52L96 80c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8 64 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z"]},v7={prefix:"fas",iconName:"manat-sign",icon:[384,512,[],"e1d5","M192 32c-17.7 0-32 14.3-32 32l0 34.7C69.2 113.9 0 192.9 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-59.6 40.8-109.8 96-124l0 284c0 17.7 14.3 32 32 32s32-14.3 32-32l0-284c55.2 14.2 96 64.3 96 124l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-95.1-69.2-174.1-160-189.3L224 64c0-17.7-14.3-32-32-32z"]},A7={prefix:"fas",iconName:"not-equal",icon:[448,512,[],"f53e","M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144l62.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-105.5 0-64 96L400 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-212.2 0-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368 48 368c-17.7 0-32-14.3-32-32s14.3-32 32-32l105.5 0 64-96L48 208c-17.7 0-32-14.3-32-32s14.3-32 32-32l212.2 0 65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z"]},iA={prefix:"fas",iconName:"border-top-left",icon:[448,512,["border-style"],"f853","M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm-96 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm0 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},C7=iA,G_={prefix:"fas",iconName:"map-location-dot",icon:[576,512,["map-marked-alt"],"f5a0","M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152l0 270.8c0 9.8-6 18.6-15.1 22.3L416 503l0-302.6zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6l0 251.4L32.9 502.7C17.1 509 0 497.4 0 480.4L0 209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77l0 249.3L192 449.4 192 255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},x7=G_,V3={prefix:"fas",iconName:"jedi",icon:[576,512,[],"f669","M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z"]},sA={prefix:"fas",iconName:"square-poll-vertical",icon:[448,512,["poll"],"f681","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 192c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192zM320 288c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z"]},b7=sA,rA={prefix:"fas",iconName:"mug-hot",icon:[512,512,[9749],"f7b6","M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32L0 416c0 53 43 96 96 96l192 0c53 0 96-43 96-96l16 0c61.9 0 112-50.1 112-112s-50.1-112-112-112l-48 0L32 192zm352 64l16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0 0-96zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z"]},nA={prefix:"fas",iconName:"car-battery",icon:[512,512,["battery-car"],"f5df","M80 96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-32zM80 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16z"]},G3=nA,S7={prefix:"fas",iconName:"gift",icon:[512,512,[127873],"f06b","M190.5 68.8L225.3 128l-1.3 0-72 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40l-72 0-1.3 0 34.8-59.2C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40zM32 288l0 176c0 26.5 21.5 48 48 48l144 0 0-224L32 288zM288 512l144 0c26.5 0 48-21.5 48-48l0-176-192 0 0 224z"]},y7={prefix:"fas",iconName:"dice-two",icon:[448,512,[9857],"f528","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},VM={prefix:"fas",iconName:"chess-queen",icon:[512,512,[9819],"f445","M256 0a56 56 0 1 1 0 112A56 56 0 1 1 256 0zM134.1 143.8c3.3-13 15-23.8 30.2-23.8c12.3 0 22.6 7.2 27.7 17c12 23.2 36.2 39 64 39s52-15.8 64-39c5.1-9.8 15.4-17 27.7-17c15.3 0 27 10.8 30.2 23.8c7 27.8 32.2 48.3 62.1 48.3c10.8 0 21-2.7 29.8-7.4c8.4-4.4 18.9-4.5 27.6 .9c13 8 17.1 25 9.2 38L399.7 400 384 400l-40.4 0-175.1 0L128 400l-15.7 0L5.4 223.6c-7.9-13-3.8-30 9.2-38c8.7-5.3 19.2-5.3 27.6-.9c8.9 4.7 19 7.4 29.8 7.4c29.9 0 55.1-20.5 62.1-48.3zM256 224s0 0 0 0s0 0 0 0s0 0 0 0zM112 432l288 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L86.6 512C74.1 512 64 501.9 64 489.4c0-6 2.4-11.8 6.6-16L112 432z"]},M7={prefix:"fas",iconName:"glasses",icon:[576,512,[],"f530","M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1c0 0 .1 0 .1 0c0 0 0 0 0 0s0 0 0 0L247.9 288s0 0 0 0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7l40.6 0c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7s0 0 0 0c-6.3-12.7-6.3-12.7-6.3-12.7s0 0 0 0s0 0 0 0c0 0 .1 0 .1 0l.2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7l0 6.7 0 41.3 0 16c0 61.9-50.1 112-112 112l-44.3 0c-59.4 0-108.5-46.4-111.8-105.8L306.6 352l-37.2 0-1.2 22.2C264.9 433.6 215.8 480 156.3 480L112 480C50.1 480 0 429.9 0 368l0-16 0-41.3L0 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4L64 368c0 26.5 21.5 48 48 48l44.3 0c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368l0-42.6c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3l44.3 0c26.5 0 48-21.5 48-48z"]},E7={prefix:"fas",iconName:"chess-board",icon:[448,512,[],"f43c","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z"]},gg={prefix:"fas",iconName:"building-circle-check",icon:[640,512,[],"e4d2","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},W3={prefix:"fas",iconName:"person-chalkboard",icon:[640,512,[],"e53d","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 56 0 64 0 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-64 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 80-76.9 0-65.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 480c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},T7={prefix:"fas",iconName:"mars-stroke-right",icon:[640,512,[9897,"mars-stroke-h"],"f22b","M208 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152l33.6 0 0-56c0-13.3 10.7-24 24-24s24 10.7 24 24l0 56 32 0 0-56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-56-32 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56-33.6 0z"]},GM=T7,aA={prefix:"fas",iconName:"hand-back-fist",icon:[448,512,["hand-rock"],"f255","M144 0C117.5 0 96 21.5 96 48l0 48 0 28.5L96 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-26.7-9 7.5C40.4 169 32 187 32 206L32 244c0 38 16.9 74 46.1 98.3L128 384l0 96c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-105.3c46.9-19 80-65 80-118.7l0-80 0-16 0-16c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z"]},Pf=aA,H3={prefix:"fas",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},oA=H3,WM={prefix:"fas",iconName:"cloud-showers-water",icon:[576,512,[],"e4e4","M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64l1.6 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},W_={prefix:"fas",iconName:"chart-bar",icon:[512,512,["bar-chart"],"f080","M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},_g=W_,lA={prefix:"fas",iconName:"hands-bubbles",icon:[576,512,["hands-wash"],"e05e","M416 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM32 160l.1 72.6c.1 52.2 24 101 64 133.1c-.1-1.9-.1-3.8-.1-5.7l0-8c0-71.8 37-138.6 97.9-176.7l60.2-37.6c8.6-5.4 17.9-8.4 27.3-9.4l45.9-79.5c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-78 135.1c-3.3 5.7-10.7 7.7-16.4 4.4s-7.7-10.7-4.4-16.4l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S214 5 207.4 16.5l-68 117.8s0 0 0 0s0 0 0 0l-43.3 75L96 160c0-17.7-14.4-32-32-32s-32 14.4-32 32zM332.1 88.5L307.5 131c13.9 4.5 26.4 13.7 34.7 27c.9 1.5 1.8 2.9 2.5 4.4l28.9-50c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-26.8 46.4c-.6 6-2.1 11.8-4.3 17.4l4.7 0 13.3 0s0 0 0 0l31.8 0 23-39.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM315.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C159.3 234.7 128 291.2 128 352l0 8c0 8.9 .8 17.6 2.2 26.1c35.4 8.2 61.8 40 61.8 77.9c0 6.3-.7 12.5-2.1 18.4C215.1 501 246.3 512 280 512l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0s0 0 0 0s0 0 0 0l-93.2 0L305 219.1c15-9.4 19.5-29.1 10.2-44.1z"]},L7=lA,HM={prefix:"fas",iconName:"less-than-equal",icon:[448,512,[],"f537","M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z"]},cA={prefix:"fas",iconName:"train",icon:[448,512,[128646],"f238","M96 0C43 0 0 43 0 96L0 352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512l39.7 0c8.5 0 16.6-3.4 22.6-9.4L160 448l128 0 54.6 54.6c6 6 14.1 9.4 22.6 9.4l39.7 0c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9l0-256c0-53-43-96-96-96L96 0zM64 96c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 224c-17.7 0-32-14.3-32-32l0-96zM224 288a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},uA={prefix:"fas",iconName:"eye-low-vision",icon:[640,512,["low-vision"],"f2a8","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223 149.5c48.6-44.3 123-50.8 179.3-11.7c60.8 42.4 78.9 123.2 44.2 186.9L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3L223 149.5zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z"]},I7=uA,YM={prefix:"fas",iconName:"crow",icon:[640,512,[],"f520","M456 0c-48.6 0-88 39.4-88 88l0 29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384l133.1 0 46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384l40.9 0c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192l0-64 0-8 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32l-50.1 0C507.7 12.5 483.3 0 456 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},XM={prefix:"fas",iconName:"sailboat",icon:[576,512,[],"e445","M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6l-224 0c-8.8 0-16-7.2-16-16l0-320zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5l0 224c0 8.8-7.2 16-16 16L80 352c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384l533.8 0c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512L133 512C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z"]},ZM={prefix:"fas",iconName:"window-restore",icon:[512,512,[],"f2d2","M432 64L208 64c-8.8 0-16 7.2-16 16l0 16-64 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-64 16 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zm64 32c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 192c-17.7 0-32 14.3-32 32z"]},hA={prefix:"fas",iconName:"square-plus",icon:[448,512,[61846,"plus-square"],"f0fe","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},Hh=hA,KM={prefix:"fas",iconName:"torii-gate",icon:[512,512,[9961],"f6a1","M0 80c0 26.5 21.5 48 48 48l16 0 0 64 64 0 0-64 96 0 0 64 64 0 0-64 96 0 0 64 64 0 0-64 16 0c26.5 0 48-21.5 48-48l0-66.6C512 6 506 0 498.6 0c-1.7 0-3.4 .3-5 1l-49 19.6C425.7 28.1 405.5 32 385.2 32L126.8 32c-20.4 0-40.5-3.9-59.4-11.4L18.4 1c-1.6-.6-3.3-1-5-1C6 0 0 6 0 13.4L0 80zM64 288l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0z"]},vg={prefix:"fas",iconName:"frog",icon:[576,512,[],"f52e","M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416l90.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},P7={prefix:"fas",iconName:"bucket",icon:[448,512,[],"e4cf","M96 152l0 8-48 0 0-8C48 68.1 116.1 0 200 0l48 0c83.9 0 152 68.1 152 152l0 8-48 0 0-8c0-57.4-46.6-104-104-104l-48 0C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-5.1 0L388.5 469c-2.6 24.4-23.2 43-47.7 43l-233.6 0c-24.6 0-45.2-18.5-47.7-43L37.1 256 32 256c-17.7 0-32-14.3-32-32z"]},O7={prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l96 0 32 0 208 0c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},ah={prefix:"fas",iconName:"microphone",icon:[384,512,[],"f130","M192 0C139 0 96 43 96 96l0 160c0 53 43 96 96 96s96-43 96-96l0-160c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40z"]},qM={prefix:"fas",iconName:"cow",icon:[640,512,[128004],"f6c8","M96 224l0 32 0 160c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L272 64l-16 0-64 0-48 0C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4l0-6.4 0-32 0-40c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z"]},Ag={prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]},R7={prefix:"fas",iconName:"screwdriver",icon:[512,512,[129691],"f54a","M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19l0 54.1-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192l54.1 0c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z"]},D7={prefix:"fas",iconName:"folder-closed",icon:[512,512,[],"e185","M448 480L64 480c-35.3 0-64-28.7-64-64L0 192l512 0 0 224c0 35.3-28.7 64-64 64zm64-320L0 160 0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64z"]},dA={prefix:"fas",iconName:"house-tsunami",icon:[576,512,[],"e515","M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1c0 0 0 0 0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6l0 121c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448z"]},QM={prefix:"fas",iconName:"square-nfi",icon:[448,512,[],"e576","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm75.7 64.6C68.8 162.5 64 168.8 64 176l0 160c0 8.8 7.2 16 16 16s16-7.2 16-16l0-102.2 66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 102.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176l0 64 0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-32 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 8.8 7.2 16 16 16s16-7.2 16-16l0-160z"]},JM={prefix:"fas",iconName:"arrow-up-from-ground-water",icon:[576,512,[],"e4b5","M288 352c17.7 0 32-14.3 32-32l0-210.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3 256 320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192L48 192c-26.5 0-48 21.5-48 48L0 425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3L192 192zm384 48c0-26.5-21.5-48-48-48l-144 0 0 224.5s0 0 0 0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9l0-185z"]},fA={prefix:"fas",iconName:"martini-glass",icon:[512,512,[127864,"glass-martini-alt"],"f57b","M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3 224 448l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-178.7L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0L32 0zM173.3 128l-64-64 293.5 0-64 64-165.5 0z"]},H_=fA,N7={prefix:"fas",iconName:"square-binary",icon:[448,512,[],"e69b","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm144 4c-24.3 0-44 19.7-44 44l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0zm-4 44c0-2.2 1.8-4 4-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48zm140-44c-11 0-20 9-20 20c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0zM132 296c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20zm96 24l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0c-24.3 0-44 19.7-44 44zm44-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48c0-2.2 1.8-4 4-4z"]},Y_={prefix:"fas",iconName:"rotate-left",icon:[512,512,["rotate-back","rotate-backward","undo-alt"],"f2ea","M48.5 224L40 224c-13.3 0-24-10.7-24-24L16 72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8L48.5 224z"]},$M=Y_,pA=Y_,mA=Y_,w7={prefix:"fas",iconName:"table-columns",icon:[512,512,["columns"],"f0db","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 160 0 0-256L64 160zm384 0l-160 0 0 256 160 0 0-256z"]},y2=w7,gA={prefix:"fas",iconName:"lemon",icon:[448,512,[127819],"f094","M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z"]},Cg={prefix:"fas",iconName:"head-side-mask",icon:[576,512,[],"e063","M32 224.2c0-22.2 3.2-43.6 9.2-63.9L262.2 321c-4 9.5-6.2 20-6.2 31l0 160-128 0c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C48.6 322.4 32 274.1 32 224.2zm248.3 70.4L53 129.3C88.7 53 166.2 0 256 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c5.4 6.7 8.6 14.8 9.4 23.2L336 272c-21.7 0-41.3 8.6-55.7 22.6zM336 304l198 0s0 0 0 0l10 0-19.7 64L368 368c-8.8 0-16 7.2-16 16s7.2 16 16 16l146.5 0-9.8 32L368 432c-8.8 0-16 7.2-16 16s7.2 16 16 16l126.8 0-.9 2.8c-8.3 26.9-33.1 45.2-61.2 45.2L288 512l0-160c0-14 6-26.7 15.6-35.4c0 0 0 0 0 0c8.5-7.8 19.9-12.6 32.4-12.6zm48-80a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},_A={prefix:"fas",iconName:"handshake",icon:[640,512,[],"f2b5","M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8 512 128l-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48 0 224 28.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM16 128c-8.8 0-16 7.2-16 16L0 352c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-224-80 0zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128l0 224c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-208c0-8.8-7.2-16-16-16l-80 0zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},B7={prefix:"fas",iconName:"gem",icon:[512,512,[128142],"f3a5","M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z"]},Q0={prefix:"fas",iconName:"dolly",icon:[576,512,["dolly-box"],"f472","M0 32C0 14.3 14.3 0 32 0l72.9 0c27.5 0 52 17.6 60.7 43.8L257.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L352 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L104.9 64 32 64C14.3 64 0 49.7 0 32zM244.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L311 79.4l19.8 60.9 60.9-19.8L371.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L334.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L244.8 134.5z"]},X_=Q0,xg={prefix:"fas",iconName:"smoking",icon:[640,512,[128684],"f48d","M448 32l0 11c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2l0 11c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-11c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43l0-11c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256l0-11c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2l0-11c0-17.7 14.3-32 32-32s32 14.3 32 32l0 11c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1l0 11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64l352 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm224 0l0 32 160 0 0-32-160 0zm288-64c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32z"]},Z_={prefix:"fas",iconName:"minimize",icon:[512,512,["compress-arrows-alt"],"f78c","M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 144c0 13.3-10.7 24-24 24L56 224z"]},eE=Z_,Y3={prefix:"fas",iconName:"monument",icon:[384,512,[],"f5a6","M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322L55.9 416 96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM32 448l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},z7={prefix:"fas",iconName:"snowplow",icon:[640,512,[],"f7d2","M298.9 64l68.6 160L256 224l-64-64 0-96 106.9 0zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0L176 0c-26.5 0-48 21.5-48 48l0 112-32 0c-17.7 0-32 14.3-32 32l0 106.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112l256 0c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48l42.8 0 0 50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7l0-82.7 0-84.8L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40l0 52.8-64 0 0-31.3c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l256 0zM144 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm216 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-56-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM200 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},vA={prefix:"fas",iconName:"angles-right",icon:[512,512,[187,"angle-double-right"],"f101","M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"]},F7=vA,k7={prefix:"fas",iconName:"cannabis",icon:[512,512,[],"f55f","M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2l0 70.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z"]},X3={prefix:"fas",iconName:"circle-play",icon:[512,512,[61469,"play-circle"],"f144","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z"]},Ia=X3,K_={prefix:"fas",iconName:"tablets",icon:[640,512,[],"f490","M614.3 247c-5.2 7.9-16.2 8.5-22.9 1.8L391.2 48.6c-6.7-6.7-6.2-17.8 1.8-22.9C418.1 9.4 447.9 0 480 0c88.4 0 160 71.6 160 160c0 32.1-9.4 61.9-25.7 87zM567 294.3c-25 16.3-54.9 25.7-87 25.7c-88.4 0-160-71.6-160-160c0-32.1 9.4-61.9 25.7-87c5.2-7.9 16.2-8.5 22.9-1.8L568.8 271.4c6.7 6.7 6.2 17.8-1.8 22.9zM301.5 368c9.5 0 16.9 8.2 15 17.5C301.1 457.8 236.9 512 160 512S18.9 457.8 3.5 385.5c-2-9.3 5.5-17.5 15-17.5l283.1 0zm0-32L18.5 336c-9.5 0-16.9-8.2-15-17.5C18.9 246.2 83.1 192 160 192s141.1 54.2 156.5 126.5c2 9.3-5.5 17.5-15 17.5z"]},U7={prefix:"fas",iconName:"ethernet",icon:[512,512,[],"f796","M0 224L0 416c0 17.7 14.3 32 32 32l64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z"]},bg={prefix:"fas",iconName:"euro-sign",icon:[320,512,[8364,"eur","euro"],"f153","M48.1 240c-.1 2.7-.1 5.3-.1 8l0 16c0 2.7 0 5.3 .1 8L32 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l28.3 0C89.9 419.9 170 480 264 480l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-24 0c-57.9 0-108.2-32.4-133.9-80L256 336c17.7 0 32-14.3 32-32s-14.3-32-32-32l-143.8 0c-.1-2.6-.2-5.3-.2-8l0-16c0-2.7 .1-5.4 .2-8L256 240c17.7 0 32-14.3 32-32s-14.3-32-32-32l-125.9 0c25.7-47.6 76-80 133.9-80l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-24 0C170 32 89.9 92.1 60.3 176L32 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l16.1 0z"]},AA=bg,xa=bg,CA={prefix:"fas",iconName:"chair",icon:[448,512,[129681],"f6c0","M248 48l0 208 48 0 0-197.3c23.9 13.8 40 39.7 40 69.3l0 128 48 0 0-128C384 57.3 326.7 0 256 0L192 0C121.3 0 64 57.3 64 128l0 128 48 0 0-128c0-29.6 16.1-55.5 40-69.3L152 256l48 0 0-208 48 0zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 256 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288L48 288z"]},J0={prefix:"fas",iconName:"circle-check",icon:[512,512,[61533,"check-circle"],"f058","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},q_=J0,Z3={prefix:"fas",iconName:"circle-stop",icon:[512,512,[62094,"stop-circle"],"f28d","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z"]},$0=Z3,xA={prefix:"fas",iconName:"compass-drafting",icon:[512,512,["drafting-compass"],"f568","M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192c0 0 0 0 0 0s0 0 0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},ep=xA,tE={prefix:"fas",iconName:"plate-wheat",icon:[512,512,[],"e55a","M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z"]},K3={prefix:"fas",iconName:"icicles",icon:[512,512,[],"f7ad","M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z"]},al={prefix:"fas",iconName:"person-shelter",icon:[512,512,[],"e54f","M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.4L256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 280l0-88 16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24z"]},q3={prefix:"fas",iconName:"neuter",icon:[384,512,[9906],"f22c","M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1L160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-130.9z"]},Sg={prefix:"fas",iconName:"id-badge",icon:[384,512,[],"f2c1","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM144 64l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},yg={prefix:"fas",iconName:"marker",icon:[512,512,[],"f5a1","M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z"]},Q_={prefix:"fas",iconName:"face-laugh-beam",icon:[512,512,[128513,"laugh-beam"],"f59a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM217.6 212.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"]},Ho=Q_,Pd={prefix:"fas",iconName:"helicopter-symbol",icon:[512,512,[],"e502","M445.3 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.3 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.1 368.4 66.7 288L2 288zm0-64l64.7 0C80.1 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z"]},tp={prefix:"fas",iconName:"universal-access",icon:[512,512,[],"f29a","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},Od={prefix:"fas",iconName:"circle-chevron-up",icon:[512,512,["chevron-circle-up"],"f139","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z"]},Mg=Od,Rd={prefix:"fas",iconName:"lari-sign",icon:[384,512,[],"e1c8","M144 32c17.7 0 32 14.3 32 32l0 32.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7L208 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3l0 67.9c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-95c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1l0 95c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-67.9C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6L112 64c0-17.7 14.3-32 32-32z"]},x1={prefix:"fas",iconName:"volcano",icon:[512,512,[127755],"f770","M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-58.9-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z"]},ip={prefix:"fas",iconName:"person-walking-dashed-line-arrow-right",icon:[640,512,[],"e553","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16zM392 320c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48z"]},oh={prefix:"fas",iconName:"sterling-sign",icon:[320,512,[163,"gbp","pound-sign"],"f154","M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4L48 224l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 44.5c0 17.4-4.7 34.5-13.7 49.4L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L88.5 416l.7-1.1C104.1 390 112 361.5 112 332.5l0-44.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-63.6z"]},J_=oh,Of=oh,Eg={prefix:"fas",iconName:"viruses",icon:[640,512,[],"e076","M192 0c13.3 0 24 10.7 24 24l0 13.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168l13.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-13.5 0c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5l0 13.5c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-13.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216L24 216c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.5 0c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5L168 24c0-13.3 10.7-24 24-24zm48 224a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48-64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Rf={prefix:"fas",iconName:"square-person-confined",icon:[448,512,[],"e577","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7l0-58.7z"]},Df={prefix:"fas",iconName:"user-tie",icon:[448,512,[],"f508","M96 128a128 128 0 1 0 256 0A128 128 0 1 0 96 128zm94.5 200.2l18.6 31L175.8 483.1l-36-146.9c-2-8.1-9.8-13.4-17.9-11.3C51.9 342.4 0 405.8 0 481.3c0 17 13.8 30.7 30.7 30.7l131.7 0c0 0 0 0 .1 0l5.5 0 112 0 5.5 0c0 0 0 0 .1 0l131.7 0c17 0 30.7-13.8 30.7-30.7c0-75.5-51.9-138.9-121.9-156.4c-8.1-2-15.9 3.3-17.9 11.3l-36 146.9L238.9 359.2l18.6-31c6.4-10.7-1.3-24.2-13.7-24.2L224 304l-19.7 0c-12.4 0-20.1 13.6-13.7 24.2z"]},bA={prefix:"fas",iconName:"arrow-down-long",icon:[384,512,["long-arrow-down"],"f175","M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z"]},$_=bA,SA={prefix:"fas",iconName:"tent-arrow-down-to-line",icon:[640,512,[],"e57e","M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l127.6 0 .7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448l80 0L402.7 325.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9L384 448z"]},Tg={prefix:"fas",iconName:"certificate",icon:[512,512,[],"f0a3","M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z"]},Q3={prefix:"fas",iconName:"reply-all",icon:[576,512,["mail-reply-all"],"f122","M209.4 39.5c-9.1-9.6-24.3-10-33.9-.9L33.8 173.2c-19.9 18.9-19.9 50.7 0 69.6L175.5 377.4c9.6 9.1 24.8 8.7 33.9-.9s8.7-24.8-.9-33.9L66.8 208 208.5 73.4c9.6-9.1 10-24.3 .9-33.9zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2l0-64 32 0c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176l-48 0 0-64z"]},j7=Q3,iE={prefix:"fas",iconName:"suitcase",icon:[512,512,[129523],"f0f2","M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 0 32 0 352-256 0 0-352 0-32zM64 96l32 0 0 384-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64zM448 480l-32 0 0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64z"]},yA={prefix:"fas",iconName:"person-skating",icon:[448,512,["skating"],"f7c5","M352 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM128 128c0-17.7 14.3-32 32-32l159.4 0c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9l0 73.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17L160 160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L272 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z"]},sE=yA,J3={prefix:"fas",iconName:"filter-circle-dollar",icon:[576,512,["funnel-dollar"],"f662","M3.9 22.9C10.5 8.9 24.5 0 40 0L472 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm120.8-32.6c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7l0-9.4c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6c0 0 0 0 0 0s0 0 0 0c7 2.3 15.1 4.8 23.7 6.6l0 11.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-10.8c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5c0 0 0 0 0-.1c-.1-1.9 .3-2.9 .8-3.6z"]},rE=J3,nE={prefix:"fas",iconName:"camera-retro",icon:[512,512,[128247],"f083","M220.6 121.2L271.1 96 448 96l0 96-114.8 0c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24L64 192l0-64 128 0c9.9 0 19.7-2.3 28.6-6.8zM0 128L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L271.1 32c-9.9 0-19.7 2.3-28.6 6.8L192 64l-32 0 0-16c0-8.8-7.2-16-16-16L80 32c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM168 304a88 88 0 1 1 176 0 88 88 0 1 1 -176 0z"]},MA={prefix:"fas",iconName:"circle-arrow-down",icon:[512,512,["arrow-circle-down"],"f0ab","M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM127 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 214.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 409c-9.4 9.4-24.6 9.4-33.9 0L127 297z"]},aE=MA,EA={prefix:"fas",iconName:"file-import",icon:[512,512,["arrow-right-to-file"],"f56f","M128 64c0-35.3 28.7-64 64-64L352 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-112 174.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L128 288l0-224zm0 224l0 48L24 336c-13.3 0-24-10.7-24-24s10.7-24 24-24l104 0zM512 128l-128 0L384 0 512 128z"]},V7=EA,TA={prefix:"fas",iconName:"square-arrow-up-right",icon:[448,512,["external-link-square"],"f14c","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l94.1 0L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135L288 328c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24l-152 0z"]},LA=TA,G7={prefix:"fas",iconName:"box-open",icon:[640,512,[],"f49e","M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6l0 167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5l0-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128l2.2 0z"]},IA={prefix:"fas",iconName:"scroll",icon:[576,512,[128220],"f70e","M0 80l0 48c0 17.7 14.3 32 32 32l16 0 48 0 0-80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48l0 304c0 35.3 28.7 64 64 64s64-28.7 64-64l0-5.3c0-32.4 26.3-58.7 58.7-58.7L480 320l0-192c0-53-43-96-96-96L112 32zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16l-245.3 0c-14.7 0-26.7 11.9-26.7 26.7l0 5.3c0 53-43 96-96 96l176 0 96 0z"]},W7={prefix:"fas",iconName:"spa",icon:[576,512,[],"f5bb","M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192l9.9 0c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480L288 480l-20.1 0C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192l9.9 0c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z"]},sp={prefix:"fas",iconName:"location-pin-lock",icon:[512,512,[],"e51f","M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3l0-94.8c0-23.7 12.9-44.4 32-55.4l0-24.6c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},$3={prefix:"fas",iconName:"pause",icon:[320,512,[9208],"f04c","M48 64C21.5 64 0 85.5 0 112L0 400c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48L48 64zm192 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-32 0z"]},H7={prefix:"fas",iconName:"hill-avalanche",icon:[576,512,[],"e507","M439.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C401.2 261.3 416 236.4 416 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C216.3 46.6 197.9 32 176 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L439.7 401.9zM480 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87z"]},em={prefix:"fas",iconName:"temperature-empty",icon:[320,512,["temperature-0","thermometer-0","thermometer-empty"],"f2cb","M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L112 112zM160 0C98.1 0 48 50.2 48 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L272 112C272 50.2 221.9 0 160 0zm0 416a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},oE=em,Lg=em,tm=em,lE={prefix:"fas",iconName:"bomb",icon:[512,512,[128163],"f1e2","M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104l0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8c0-75.1 60.9-136 136-136l8 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-8 0z"]},Ig={prefix:"fas",iconName:"registered",icon:[512,512,[174],"f25d","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152c0-13.3 10.7-24 24-24l88 0c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288 208 288l0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-96 0-112zm48 88l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 64z"]},e8={prefix:"fas",iconName:"address-card",icon:[576,512,[62140,"contact-card","vcard"],"f2bb","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-32l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},im=e8,PA=e8,OA={prefix:"fas",iconName:"scale-unbalanced-flip",icon:[640,512,["balance-scale-right"],"f516","M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2L352 480c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.4 288L128 163.8 55.6 288l144.9 0zM128 384C65.1 384 12.8 350 2 305.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C243.2 350 190.9 384 128 384zm382.8-92.2L438.4 416l144.9 0L510.8 291.8zm126 141.3C626 478 573.7 512 510.8 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z"]},RA=OA,sm={prefix:"fas",iconName:"subscript",icon:[512,512,[],"f12c","M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z"]},rp={prefix:"fas",iconName:"diamond-turn-right",icon:[512,512,["directions"],"f5eb","M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8l0 56-64 0c-35.3 0-64 28.7-64 64l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-8.8 7.2-16 16-16l64 0 0 56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z"]},t8=rp,Pg={prefix:"fas",iconName:"burst",icon:[512,512,[],"e4dc","M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z"]},Og={prefix:"fas",iconName:"house-laptop",icon:[640,512,["laptop-house"],"e066","M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5l-144 0c-19.1 0-36.3 8.4-48 21.7l0-37.7c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0 0 128-160 0c-26.5 0-48-21.5-48-48l0-112-32 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304l0 144 192 0 0-144-192 0zm-48-16c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32l0 160 32 0c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48l-48 0-192 0-48 0c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16l32 0 0-160z"]},DA=Og,NA={prefix:"fas",iconName:"face-tired",icon:[512,512,[128555,"tired"],"f5c8","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Y7=NA,wA={prefix:"fas",iconName:"money-bills",icon:[640,512,[],"e1f3","M96 96l0 224c0 35.3 28.7 64 64 64l416 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64l-64 0 0-64zM224 96c0 35.3-28.7 64-64 64l0-64 64 0zM576 256l0 64-64 0c0-35.3 28.7-64 64-64zM512 96l64 0 0 64c-35.3 0-64-28.7-64-64zM288 208a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 360c0 66.3 53.7 120 120 120l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-400 0c-39.8 0-72-32.2-72-72l0-240z"]},BA={prefix:"fas",iconName:"smog",icon:[640,512,[],"f75f","M32 144c0 79.5 64.5 144 144 144l123.3 0c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32l27.3 0c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368l-336 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0L24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24L96 368c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0c13.3 0 24-10.7 24-24z"]},cE={prefix:"fas",iconName:"crutch",icon:[512,512,[],"f7f7","M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z"]},i8={prefix:"fas",iconName:"font-awesome",icon:[512,512,[62501,62694,"font-awesome-flag","font-awesome-logo-full"],"f2b4","M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 352 0 64 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96z"]},y9=i8,uE=i8,Rg={prefix:"fas",iconName:"cloud-arrow-up",icon:[640,512,[62338,"cloud-upload","cloud-upload-alt"],"f0ee","M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128l-368 0zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L296 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z"]},hE=Rg,s8=Rg,dE={prefix:"fas",iconName:"palette",icon:[512,512,[127912],"f53f","M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},zA={prefix:"fas",iconName:"arrows-turn-right",icon:[448,512,[],"e4c0","M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 160 128 160c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32C0 153.3 57.3 96 128 96l210.7 0L297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-53 43-96 96-96l146.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z"]},Dg={prefix:"fas",iconName:"vest",icon:[448,512,[],"e085","M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2L224 464c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6l0-17.5 0-73.7 0-6.3c0-26.5-21.5-48-48-48l-4.5 0c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0L112 0C85.5 0 64 21.5 64 48l0 6.3L64 128l0 17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l128 0c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464l0-168.2c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z"]},fE={prefix:"fas",iconName:"ferry",icon:[576,512,[],"e4ea","M224 0L352 0c17.7 0 32 14.3 32 32l75.1 0c20.6 0 31.6 24.3 18.1 39.8L456 96 120 96 98.8 71.8C85.3 56.3 96.3 32 116.9 32L192 32c0-17.7 14.3-32 32-32zM96 128l384 0c17.7 0 32 14.3 32 32l0 123.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9l-16.5 0c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9l-16.6 0c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5L64 160c0-17.7 14.3-32 32-32zm32 64l0 96 320 0 0-96-320 0zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},FA={prefix:"fas",iconName:"arrows-down-to-people",icon:[640,512,[],"e4b9","M144 0c-13.3 0-24 10.7-24 24l0 118.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23L168 24c0-13.3-10.7-24-24-24zM360 200a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM184 296a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm312 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5l0 54.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-54.5 26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5l0 38.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5 88 480c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23L520 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z"]},X7={prefix:"fas",iconName:"seedling",icon:[512,512,[127793,"sprout"],"f4d8","M512 32c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 46.3 364 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 32 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z"]},kA=X7,Z7={prefix:"fas",iconName:"left-right",icon:[512,512,[8596,"arrows-alt-h"],"f337","M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z"]},pE=Z7,K7={prefix:"fas",iconName:"boxes-packing",icon:[640,512,[],"e4c7","M256 48c0-26.5 21.5-48 48-48L592 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-210.7 0c1.8-5 2.7-10.4 2.7-16l0-242.7c18.6-6.6 32-24.4 32-45.3l0-32c0-26.5-21.5-48-48-48l-112 0 0-80zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6 480 432c0 8.8 7.2 16 16 16s16-7.2 16-16l0-121.4 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16L16 224c-8.8 0-16-7.2-16-16l0-32zm352 80l0 224c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-224 320 0zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0z"]},UA={prefix:"fas",iconName:"circle-arrow-left",icon:[512,512,["arrow-circle-left"],"f0a8","M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM215 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L392 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-214.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L103 273c-9.4-9.4-9.4-24.6 0-33.9L215 127z"]},mE=UA,q7={prefix:"fas",iconName:"group-arrows-rotate",icon:[512,512,[],"e4f6","M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4l0-60.5c0-5.7-4.7-10.4-10.4-10.4l-60.5 0c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4l0 60.5c0 5.7 4.7 10.4 10.4 10.4l60.5 0c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z"]},gE={prefix:"fas",iconName:"bowl-food",icon:[512,512,[],"e4c6","M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32L8.6 224C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z"]},_E={prefix:"fas",iconName:"candy-cane",icon:[512,512,[],"f786","M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23l0 5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8l0-5.6C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z"]},r8={prefix:"fas",iconName:"arrow-down-wide-short",icon:[576,512,["sort-amount-asc","sort-amount-down"],"f160","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z"]},jA=r8,vE=r8,Q7={prefix:"fas",iconName:"cloud-bolt",icon:[512,512,[127785,"thunderstorm"],"f76c","M0 224c0 53 43 96 96 96l47.2 0L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320l18.3 0 64 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7l70.1 0L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7l-70.1 0 52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z"]},AE=Q7,n8={prefix:"fas",iconName:"text-slash",icon:[640,512,["remove-format"],"f87d","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96 503 96 497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32L376.1 32l-.3 0L204.5 32c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96l116.7 0L301.3 210.8l-94.5-74.1zM243.3 416L192 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 17.6-62.1L272.9 311 243.3 416z"]},a8=n8,Ng={prefix:"fas",iconName:"face-smile-wink",icon:[512,512,[128521,"smile-wink"],"f4da","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z"]},VA=Ng,CE={prefix:"fas",iconName:"file-word",icon:[384,512,[],"f1c2","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z"]},J7={prefix:"fas",iconName:"file-powerpoint",icon:[384,512,[],"f1c4","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM136 240l68 0c42 0 76 34 76 76s-34 76-76 76l-44 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56 0-104c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28l-44 0 0 56 44 0z"]},GA={prefix:"fas",iconName:"arrows-left-right",icon:[512,512,["arrows-h"],"f07e","M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"]},rm=GA,$7={prefix:"fas",iconName:"house-lock",icon:[640,512,[],"e510","M384 480c0 11.7 3.1 22.6 8.6 32l-.6 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272l0 24.6c-19.1 11.1-32 31.7-32 55.4l0 128zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"]},WA={prefix:"fas",iconName:"cloud-arrow-down",icon:[640,512,[62337,"cloud-download","cloud-download-alt"],"f0ed","M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128l-368 0zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39L344 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 134.1-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z"]},xE=WA,eS=WA,tS={prefix:"fas",iconName:"children",icon:[640,512,[],"e4e1","M160 0a64 64 0 1 1 0 128A64 64 0 1 1 160 0zM88 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1L232 400l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 0a64 64 0 1 1 0 128A64 64 0 1 1 480 0zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5 552 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z"]},iS={prefix:"fas",iconName:"chalkboard",icon:[576,512,["blackboard"],"f51b","M96 32C60.7 32 32 60.7 32 96l0 288 64 0L96 96l384 0 0 288 64 0 0-288c0-35.3-28.7-64-64-64L96 32zM224 384l0 32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z"]},HA=iS,sS={prefix:"fas",iconName:"user-large-slash",icon:[640,512,["user-alt-slash"],"f4fa","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM545.5 512L528 512 284.3 320l-59 0C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0 .3 0z"]},bE=sS,SE={prefix:"fas",iconName:"envelope-open",icon:[512,512,[62135],"f2b6","M64 208.1L256 65.9 448 208.1l0 47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5l0-47.4zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z"]},YA={prefix:"fas",iconName:"handshake-simple-slash",icon:[640,512,["handshake-alt-slash"],"e05f","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352l41.8 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-76 0-4 0-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176L0 304c0 26.5 21.5 48 48 48l108.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z"]},yE=YA,rS={prefix:"fas",iconName:"mattress-pillow",icon:[640,512,[],"e525","M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm32 384l288 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L288 64l0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z"]},ME={prefix:"fas",iconName:"guarani-sign",icon:[384,512,[],"e19a","M192 0c-17.7 0-32 14.3-32 32l0 34.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3l0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-34.7c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32l-128 0 0-92c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7L224 32c0-17.7-14.3-32-32-32zM160 132L160 380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380l0-92 92 0c-11.6 45-47 80.4-92 92z"]},XA={prefix:"fas",iconName:"arrows-rotate",icon:[512,512,[128472,"refresh","sync"],"f021","M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"]},nS=XA,o8=XA,wg={prefix:"fas",iconName:"fire-extinguisher",icon:[512,512,[129519],"f134","M500.3 7.3C507.7 13.3 512 22.4 512 32l0 96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104l-65 0 0 34.8c37.8 18 64 56.5 64 101.2l0 144L64 384l0-144c0-44.7 26.2-83.2 64-101.2l0-28.8c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4L128 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 24 65 0c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416l0 32c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64l0-32 224 0zM176 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},aS={prefix:"fas",iconName:"cruzeiro-sign",icon:[448,512,[],"e152","M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416l0-96 0-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32l0 55.3 0 8.7 0 82.7C135.5 378 96 321.6 96 256z"]},np={prefix:"fas",iconName:"greater-than-equal",icon:[448,512,[],"f532","M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z"]},ZA={prefix:"fas",iconName:"shield-halved",icon:[512,512,["shield-alt"],"f3ed","M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8l0 378.1C394 378 431.1 230.1 432 141.4L256 66.8s0 0 0 0z"]},ap=ZA,nm={prefix:"fas",iconName:"book-atlas",icon:[448,512,["atlas"],"f558","M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9l63 0c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9l31.1 0c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9l-31.1 0c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM145.3 208l31.1 0c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32l-31.1 0c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9l-63 0c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z"]},KA=nm,Nf={prefix:"fas",iconName:"virus",icon:[512,512,[],"e074","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l11.5 0c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6l0 11.5c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6l11.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5L288 32zM176 224a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},M2={prefix:"fas",iconName:"envelope-circle-check",icon:[640,512,[],"e4e8","M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176 0 384c0 35.3 28.7 64 64 64l296.2 0C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},Dd={prefix:"fas",iconName:"layer-group",icon:[576,512,[],"f5fd","M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z"]},op={prefix:"fas",iconName:"arrows-to-dot",icon:[512,512,[],"e4be","M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Bg={prefix:"fas",iconName:"archway",icon:[512,512,[],"f557","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 64 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 64 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-288L32 128l0 288z"]},am={prefix:"fas",iconName:"heart-circle-check",icon:[576,512,[],"e4fd","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},E2={prefix:"fas",iconName:"house-chimney-crack",icon:[576,512,["house-damage"],"f6f1","M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-122.1 0L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512l-102.3 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24z"]},T2=E2,wf={prefix:"fas",iconName:"file-zipper",icon:[384,512,["file-archive"],"f1c6","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8l14.8 0c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0z"]},lp=wf,lh={prefix:"fas",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"]},om={prefix:"fas",iconName:"martini-glass-empty",icon:[512,512,["glass-martini"],"f000","M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3 224 448l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-178.7L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0L32 0zM256 210.7L109.3 64l293.5 0L256 210.7z"]},zg=om,Nd={prefix:"fas",iconName:"couch",icon:[640,512,[],"f4b8","M64 160C64 89.3 121.3 32 192 32l256 0c70.7 0 128 57.3 128 128l0 33.6c-36.5 7.4-64 39.7-64 78.4l0 48-384 0 0-48c0-38.7-27.5-71-64-78.4L64 160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48l0 176c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L96 448c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3l0 48 0 32 32 0 384 0 32 0 0-32 0-48z"]},wd={prefix:"fas",iconName:"cedi-sign",icon:[384,512,[],"e0df","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 34.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3l0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-34.7c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6L256 132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8L256 32zM192 132L192 380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z"]},ba={prefix:"fas",iconName:"italic",icon:[384,512,[],"f033","M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z"]},ol={prefix:"fas",iconName:"table-cells-column-lock",icon:[640,512,[],"e678","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zm208 0l0 64 88 0 0-64-88 0zm240 0l-88 0 0 64 88 0 0-64zM208 224l0 64 88 0 0-64-88 0zm0 128l0 64 88 0 0-64-88 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"]},lm={prefix:"fas",iconName:"church",icon:[640,512,[9962],"f51d","M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2L160 512l96 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 96 0 0-260.8c0-16.9-8.8-32.5-23.3-41.2L344 142.4 344 96l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4L0 464c0 26.5 21.5 48 48 48l80 0 0-238.4L24.9 330.3zM592 512c26.5 0 48-21.5 48-48l0-91.6c0-17.5-9.5-33.6-24.9-42.1L512 273.6 512 512l80 0z"]},Do={prefix:"fas",iconName:"comments-dollar",icon:[640,512,[],"f653","M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9c0 0 0 0 0 0s0 0 0 0l.2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2s0 0 0 0s0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7L228 72z"]},_c={prefix:"fas",iconName:"democrat",icon:[640,512,[],"f747","M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8L480 160l32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352l96 0 0 64 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64 0-64 96 0 160 0zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z"]},Pa={prefix:"fas",iconName:"z",icon:[384,512,[122],"5a","M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z"]},ll={prefix:"fas",iconName:"person-skiing",icon:[512,512,[9975,"skiing"],"f7c9","M380.7 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM2.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L232.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L289.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 301.3C1.2 295.2-3.4 280.7 2.7 268.9zM118.9 65.6L137 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L151.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z"]},Bf=ll,Su={prefix:"fas",iconName:"road-lock",icon:[640,512,[],"e567","M288 32l-74.8 0c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480L288 480l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 32 0 0-128c0-23.7 12.9-44.4 32-55.4l0-24.6c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32L352 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},yu={prefix:"fas",iconName:"a",icon:[384,512,[97],"41","M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L93.3 384l197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM264 320l-144 0 72-172.8L264 320z"]},Mu={prefix:"fas",iconName:"temperature-arrow-down",icon:[576,512,["temperature-down"],"e03f","M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L128 112zM176 0C114.1 0 64 50.1 64 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L288 112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3l0-50.7c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64l-32 0 0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z"]},ch=Mu,b1={prefix:"fas",iconName:"feather-pointed",icon:[512,512,["feather-alt"],"f56b","M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"]},l8=b1,cp={prefix:"fas",iconName:"p",icon:[320,512,[112],"50","M0 96C0 60.7 28.7 32 64 32l96 0c88.4 0 160 71.6 160 160s-71.6 160-160 160l-96 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 320 0 96zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96L64 96l0 192z"]},cm={prefix:"fas",iconName:"snowflake",icon:[448,512,[10052,10054],"f2dc","M224 0c17.7 0 32 14.3 32 32l0 30.1 15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49 0 70.3 61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.8 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7l0 70.3 49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15 0 30.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-30.1-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49 0-70.3-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3l0-70.3L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15L192 32c0-17.7 14.3-32 32-32z"]},uh={prefix:"fas",iconName:"newspaper",icon:[512,512,[128240],"f1ea","M96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L80 480c-44.2 0-80-35.8-80-80L0 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16L96 96zm64 24l0 80c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24L184 96c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16z"]},up={prefix:"fas",iconName:"rectangle-ad",icon:[576,512,["ad"],"f641","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328l-90.3 0-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280l42.3 0L208 237.7zM392 256a24 24 0 1 0 0 48 24 24 0 1 0 0-48zm24-43.9l0-28.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 96 0 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z"]},qA=up,Fg={prefix:"fas",iconName:"circle-arrow-right",icon:[512,512,["arrow-circle-right"],"f0a9","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM297 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l214.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9L297 385z"]},QA=Fg,kg={prefix:"fas",iconName:"filter-circle-xmark",icon:[576,512,[],"e17b","M3.9 22.9C10.5 8.9 24.5 0 40 0L472 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"]},um={prefix:"fas",iconName:"locust",icon:[576,512,[],"e520","M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4l-64.2 0-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L215.1 400l74.5 0-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L348 400l80.4 0 38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L483.6 400l12.4 0c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3l0-40C576 143 465 32 328 32l-16 0zm50.5 168l17.1 40L333 240l29.5-40zm-87.7 38.1l-1.4 1.9-48.2 0 32.7-41.5 16.9 39.5zM88.8 240C57.4 240 32 265.4 32 296.8c0 15.5 6.3 30 16.9 40.4L126.7 240l-37.9 0zM496 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},Bd={prefix:"fas",iconName:"sort",icon:[320,512,["unsorted"],"f0dc","M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8L32 224c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l256 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z"]},L2=Bd,c8={prefix:"fas",iconName:"list-ol",icon:[512,512,["list-1-2","list-numeric"],"f0cb","M24 56c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24l0 120 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-96-8 0C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432l33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},oS=c8,u8=c8,zd={prefix:"fas",iconName:"person-dress-burst",icon:[640,512,[],"e544","M528 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM390.2 384l17.8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 16 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 17.8 0c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3l-11.6 0c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z"]},hp={prefix:"fas",iconName:"money-check-dollar",icon:[576,512,["money-check-alt"],"f53d","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM272 192l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16zM164 152l0 13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9l0 13.8c0 11-9 20-20 20s-20-9-20-20l0-14.6c-10.3-2.2-20-5.5-28.2-8.4c0 0 0 0 0 0s0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5l0-14c0-11 9-20 20-20s20 9 20 20z"]},JA=hp,$A={prefix:"fas",iconName:"vector-square",icon:[448,512,[],"f5cb","M368 80l32 0 0 32-32 0 0-32zM352 32c-17.7 0-32 14.3-32 32L128 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64c0 17.7 14.3 32 32 32l0 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l192 0c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-192c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM96 160c17.7 0 32-14.3 32-32l192 0c0 17.7 14.3 32 32 32l0 192c-17.7 0-32 14.3-32 32l-192 0c0-17.7-14.3-32-32-32l0-192zM48 400l32 0 0 32-32 0 0-32zm320 32l0-32 32 0 0 32-32 0zM48 112l0-32 32 0 0 32-32 0z"]},lS={prefix:"fas",iconName:"bread-slice",icon:[512,512,[],"f7ec","M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z"]},EE={prefix:"fas",iconName:"language",icon:[640,512,[],"f1ab","M0 128C0 92.7 28.7 64 64 64l192 0 48 0 16 0 256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-256 0-16 0-48 0L64 448c-35.3 0-64-28.7-64-64L0 128zm320 0l0 256 256 0 0-256-256 0zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1 73.6 0 8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276l-38 0 19-42.8zM448 164c11 0 20 9 20 20l0 4 44 0 16 0c11 0 20 9 20 20s-9 20-20 20l-2 0-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45L448 228l-72 0c-11 0-20-9-20-20s9-20 20-20l52 0 0-4c0-11 9-20 20-20z"]},h8={prefix:"fas",iconName:"face-kiss-wink-heart",icon:[512,512,[128536,"kiss-wink-heart"],"f598","M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm194.8 57.6c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z"]},eC=h8,tC={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]},Ug={prefix:"fas",iconName:"question",icon:[320,512,[10067,10068,61736],"3f","M80 160c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64l0 3.6c0 21.8-11.1 42.1-29.4 53.8l-42.2 27.1c-25.2 16.2-40.4 44.1-40.4 74l0 1.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.4c0-8.2 4.2-15.8 11-20.2l42.2-27.1c36.6-23.6 58.8-64.1 58.8-107.7l0-3.6c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm80 320a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},cS={prefix:"fas",iconName:"file-signature",icon:[576,512,[],"f573","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-19.3c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2L80 448c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 8.9 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6l0-43.6-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z"]},jg={prefix:"fas",iconName:"up-down-left-right",icon:[512,512,["arrows-alt"],"f0b2","M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z"]},d8=jg,uS={prefix:"fas",iconName:"house-chimney-user",icon:[576,512,[],"e065","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185l0-121c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l320.4 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0zM288 160a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM176 400c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z"]},Vg={prefix:"fas",iconName:"hand-holding-heart",icon:[576,512,[],"f4be","M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z"]},hh={prefix:"fas",iconName:"puzzle-piece",icon:[512,512,[129513],"f12e","M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2l56.8 0c26.5 0 48 21.5 48 48l0 56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8L0 176c0-26.5 21.5-48 48-48l120.8 0c12.8 0 23.2-10.4 23.2-23.2z"]},I2={prefix:"fas",iconName:"money-check",icon:[576,512,[],"f53c","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm48 160l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-352 0c-8.8 0-16-7.2-16-16zM376 160l80 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z"]},Fd={prefix:"fas",iconName:"star-half-stroke",icon:[576,512,["star-half-alt"],"f5c0","M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3 0 289.2zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z"]},iC=Fd,sC={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]},iu={prefix:"fas",iconName:"whiskey-glass",icon:[512,512,[129347,"glass-whiskey"],"f7a0","M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5l253 0c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32L32 32zM87.7 224L69 96l374 0L424.3 224 87.7 224z"]},dp=iu,S1={prefix:"fas",iconName:"building-circle-exclamation",icon:[640,512,[],"e4d3","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},y1={prefix:"fas",iconName:"magnifying-glass-chart",icon:[512,512,[],"e522","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},hm={prefix:"fas",iconName:"arrow-up-right-from-square",icon:[512,512,["external-link"],"f08e","M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"]},dm=hm,hS={prefix:"fas",iconName:"cubes-stacked",icon:[448,512,[],"e4e6","M192 64l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM160 384l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z"]},El={prefix:"fas",iconName:"won-sign",icon:[512,512,[8361,"krw","won"],"f159","M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288l46 0L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288l40.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-19.6 0 50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224l-64 0L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224l-64 0L62.4 53.9zm78 234.1l26.6 0-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1-14 0zm96 64l26.6 0-15.2 45.6L345 288z"]},Eu=El,fm=El,P2={prefix:"fas",iconName:"virus-covid",icon:[512,512,[],"e4a8","M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280L48 280l0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1L232 48l-16 0c-13.3 0-24-10.7-24-24zm48 200a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm64 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},O2={prefix:"fas",iconName:"austral-sign",icon:[448,512,[],"e0a9","M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0L82.7 320 32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l24 0L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384l197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0L352 288l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-90.7 0L253.5 51.7zM256 224l-64 0 32-76.8L256 224zm-90.7 64l117.3 0L296 320l-144 0 13.3-32z"]},Tl={prefix:"fas",iconName:"f",icon:[320,512,[102],"46","M64 32C28.7 32 0 60.7 0 96L0 256 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 224 64 96l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32z"]},fp={prefix:"fas",iconName:"leaf",icon:[512,512,[],"f06c","M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5l88 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0-72 0s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z"]},kd={prefix:"fas",iconName:"road",icon:[576,512,[128739],"f018","M256 32l-74.8 0c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480L256 480l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 201.4 0c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32L320 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},R2={prefix:"fas",iconName:"taxi",icon:[512,512,[128662,"cab"],"f1ba","M192 0c-17.7 0-32 14.3-32 32l0 32 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288L0 432l0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 320 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 0-144c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1l0-.2 0-32c0-17.7-14.3-32-32-32L192 0zM165.4 128l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 224l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 288a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},D2=R2,Ga={prefix:"fas",iconName:"person-circle-plus",icon:[576,512,[],"e541","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z"]},Wa={prefix:"fas",iconName:"chart-pie",icon:[576,512,["pie-chart"],"f200","M304 240l0-223.4c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16L304 240zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4L256 288 412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288l238.4 0z"]},ao=Wa,N2={prefix:"fas",iconName:"bolt-lightning",icon:[384,512,[],"e0b7","M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z"]},Tu={prefix:"fas",iconName:"sack-xmark",icon:[512,512,[],"e56a","M192 96l128 0 47.4-71.1C374.5 14.2 366.9 0 354.1 0L157.9 0c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32l-128 0c-3.8 2.5-8.1 5.3-13 8.4c0 0 0 0 0 0s0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96l320 0c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z"]},Ha={prefix:"fas",iconName:"file-excel",icon:[384,512,[],"f1c3","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z"]},oo={prefix:"fas",iconName:"file-contract",icon:[384,512,[],"f56c","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2L80 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 54.1 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z"]},Lu={prefix:"fas",iconName:"fish-fins",icon:[576,512,[],"e4f2","M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.6 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.6 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},pp={prefix:"fas",iconName:"building-flag",icon:[640,512,[],"e4d5","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32l0 480 64 0 0-320 144 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16L480 32c0-17.7-14.3-32-32-32z"]},Ya={prefix:"fas",iconName:"face-grin-beam",icon:[512,512,[128516,"grin-beam"],"f582","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-170.5-84s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"]},TE=Ya,mp={prefix:"fas",iconName:"object-ungroup",icon:[640,512,[],"f248","M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32l209.1 0C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-40.6 64 0 0 40.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4l-46 0c-5.4-15.4-14.6-28.9-26.5-39.6l0-24.4 72.6 0c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0z"]},Gg={prefix:"fas",iconName:"poop",icon:[512,512,[],"f619","M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72l13.7 0C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z"]},pm={prefix:"fas",iconName:"location-pin",icon:[384,512,["map-marker"],"f041","M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z"]},vc=pm,Wg={prefix:"fas",iconName:"kaaba",icon:[576,512,[128331],"f66b","M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112l0 16s0 0 0 0l0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2 0 128l0-16C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8l0 46.5-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8 576 400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400L0 262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2l0-46.5 273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z"]},Ud={prefix:"fas",iconName:"toilet-paper",icon:[640,512,[129531],"f71e","M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1L48 512c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0L444.2 0zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm64 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm80-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},jd={prefix:"fas",iconName:"helmet-safety",icon:[576,512,["hard-hat","hat-hard"],"f807","M256 32c-17.7 0-32 14.3-32 32l0 2.3 0 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288l0 64 512 0 0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1l0-99.6 0-2.3c0-17.7-14.3-32-32-32l-64 0zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6L16.6 384z"]},Yh=jd,zf=jd,mm={prefix:"fas",iconName:"eject",icon:[448,512,[9167],"f052","M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z"]},Ac={prefix:"fas",iconName:"circle-right",icon:[512,512,[61838,"arrow-alt-circle-right"],"f35a","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm395.3 11.3l-112 112c-4.6 4.6-11.5 5.9-17.4 3.5s-9.9-8.3-9.9-14.8l0-64-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-64c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l112 112c6.2 6.2 6.2 16.4 0 22.6z"]},M1=Ac,w2={prefix:"fas",iconName:"plane-circle-check",icon:[640,512,[],"e555","M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},gp={prefix:"fas",iconName:"face-rolling-eyes",icon:[512,512,[128580,"meh-rolling-eyes"],"f5a5","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 368l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z"]},Hg=gp,Gl={prefix:"fas",iconName:"object-group",icon:[576,512,[],"f247","M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32l337.1 0C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-273.1zM456.6 96L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z"]},Ff={prefix:"fas",iconName:"chart-line",icon:[512,512,["line-chart"],"f201","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z"]},gm=Ff,_p={prefix:"fas",iconName:"mask-ventilator",icon:[640,512,[],"e524","M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269l0-85c0-4.4 3.6-8 8-8l103.1 0zm26-48L56 128c-30.9 0-56 25.1-56 56l0 85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6l0-76.6c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8l0 76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269l0-85c0-30.9-25.1-56-56-56l-129.5 0C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48L584 176c4.4 0 8 3.6 8 8l0 85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},Yg={prefix:"fas",iconName:"arrow-right",icon:[448,512,[8594],"f061","M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"]},kf={prefix:"fas",iconName:"signs-post",icon:[512,512,["map-signs"],"f277","M224 32L64 32C46.3 32 32 46.3 32 64l0 64c0 17.7 14.3 32 32 32l377.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7L288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32l-160 0 0-32-64 0 0 32L70.6 224c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7L448 352c17.7 0 32-14.3 32-32l0-64zM288 480l0-96-64 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},_m=kf,vm={prefix:"fas",iconName:"cash-register",icon:[512,512,[],"f788","M64 0C46.3 0 32 14.3 32 32l0 64c0 17.7 14.3 32 32 32l80 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 80 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L64 0zM96 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16zm48-168a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z"]},f8={prefix:"fas",iconName:"person-circle-question",icon:[576,512,[],"e542","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6l0 6.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-6.4c0-5.3 4.3-9.6 9.6-9.6l40.5 0c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2l0 14.8c0 8.8 7.2 16 16 16s16-7.2 16-16l0-5.1 23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9l-40.5 0c-23 0-41.6 18.6-41.6 41.6z"]},rC={prefix:"fas",iconName:"h",icon:[384,512,[104],"48","M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z"]},nC={prefix:"fas",iconName:"tarp",icon:[576,512,[],"e57b","M576 128c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32l128 0 0-160zM448 448L576 320l-128 0 0 128zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Uf={prefix:"fas",iconName:"screwdriver-wrench",icon:[512,512,["tools"],"f7d9","M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4l54.1 0 109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109 0-54.1c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7L352 176c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM56 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},xo=Uf,dS={prefix:"fas",iconName:"arrows-to-eye",icon:[640,512,[],"e4bf","M15 15C24.4 5.7 39.6 5.7 49 15l63 63L112 40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 96c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l38.1 0L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63 38.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 38.1 63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63L40 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-38.1L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63 0 38.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-96c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-38.1 0 63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z"]},aC={prefix:"fas",iconName:"plug-circle-bolt",icon:[576,512,[],"e55b","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"]},p8={prefix:"fas",iconName:"heart",icon:[512,512,[128153,128154,128155,128156,128420,129293,129294,129505,9829,10084,61578],"f004","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"]},B2={prefix:"fas",iconName:"mars-and-venus",icon:[512,512,[9893],"f224","M337.8 14.8C341.5 5.8 350.3 0 360 0L472 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59 146.6-136 158.2l0 25.8 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-25.8C155 370.6 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48s0 0 0 0s0 0 0 0s0 0 0 0zM352 224a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z"]},Xa={prefix:"fas",iconName:"house-user",icon:[576,512,["home-user"],"e1b0","M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0z"]},m8=Xa,Xg={prefix:"fas",iconName:"dumpster-fire",icon:[640,512,[],"f794","M49.7 32l90.8 0L114.9 160l-94 0C9.3 160 0 150.7 0 139.1c0-2.1 .3-4.1 .9-6.1L26.8 48.9C29.9 38.9 39.2 32 49.7 32zM272 160l-124.5 0L173.1 32 272 32l0 128zm32 0l0-128 98.9 0 14.4 72.1c-1.7 1.1-3.3 2.4-4.8 3.8c-18.4 16.4-35.4 34-50.5 52.1l-58 0zm209.9-23.7c-1.7 1.6-3.4 3.2-5 4.8C498 129.6 486.7 118.6 475 108c-7.6-6.9-17-10.8-26.6-11.8L435.5 32l90.8 0c10.5 0 19.8 6.9 22.9 16.9L575.1 133c.2 .7 .4 1.4 .5 2.1c-17.8-15-44.3-14.6-61.7 1.2zM325.2 210.7C304.3 244.5 288 282.9 288 318.1c0 49.3 18.6 95.2 49.6 129.9L128 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L44 288l-12 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l4 0-4-32 305.5 0c-4.4 6.2-8.5 12.5-12.3 18.7zm180.6-34.5L518 162.5c5.4-6.1 13.3-8.8 20.9-8.9c7.2 0 14.3 2.6 19.9 7.8c19.7 18.3 39.8 43.2 55 70.6C629 259.2 640 290.2 640 320.2C640 408.8 568.7 480 480 480c-89.6 0-160-71.3-160-159.8c0-37.3 16-73.4 36.8-104.5c20.9-31.3 47.5-59 70.9-80.2c5.7-5.2 13.1-7.7 20.3-7.5c14.1 .3 23.8 11.4 32.7 21.6c0 0 0 0 0 0c2 2.3 4 4.6 6 6.7l19 19.9zM544 368.2c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 295.1 416 331.6 416 368.2c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},Am={prefix:"fas",iconName:"house-crack",icon:[576,512,[],"e3b1","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l102.3 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64 122.1 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0z"]},Zg={prefix:"fas",iconName:"martini-glass-citrus",icon:[576,512,["cocktail"],"f561","M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48l-52.6 0C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128l368 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177L232 464l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-118.1L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z"]},Xh=Zg,Vd={prefix:"fas",iconName:"face-surprise",icon:[512,512,[128558,"surprise"],"f5c2","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},Kg=Vd,oC={prefix:"fas",iconName:"bottle-water",icon:[320,512,[],"e4c5","M120 0l80 0c13.3 0 24 10.7 24 24l0 40L96 64l0-40c0-13.3 10.7-24 24-24zM32 167.5c0-19.5 10-37.6 26.6-47.9l15.8-9.9C88.7 100.7 105.2 96 122.1 96l75.8 0c16.9 0 33.4 4.7 47.7 13.7l15.8 9.9C278 129.9 288 148 288 167.5c0 17-7.5 32.3-19.4 42.6C280.6 221.7 288 238 288 256c0 19.1-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48s-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64c0-19.1 8.4-36.3 21.7-48C40.4 388.3 32 371.1 32 352s8.4-36.3 21.7-48C40.4 292.3 32 275.1 32 256c0-18 7.4-34.3 19.4-45.9C39.5 199.7 32 184.5 32 167.5zM96 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16zm16 112c-8.8 0-16 7.2-16 16s7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0z"]},jf={prefix:"fas",iconName:"circle-pause",icon:[512,512,[62092,"pause-circle"],"f28b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},Vf=jf,E1={prefix:"fas",iconName:"toilet-paper-slash",icon:[640,512,[],"e072","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192L160 0c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM367.3 385.4L66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512l237.9 0c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z"]},Cm={prefix:"fas",iconName:"apple-whole",icon:[448,512,[127822,127823,"apple-alt"],"f5d1","M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z"]},fS=Cm,Gf={prefix:"fas",iconName:"kitchen-set",icon:[576,512,[],"e51a","M240 144A96 96 0 1 0 48 144a96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l80 0 16 0 32 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},LE={prefix:"fas",iconName:"r",icon:[320,512,[114],"52","M64 32C28.7 32 0 60.7 0 96L0 288 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144L64 32zM176 256L64 256 64 96l112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z"]},xm={prefix:"fas",iconName:"temperature-quarter",icon:[320,512,["temperature-1","thermometer-1","thermometer-quarter"],"f2ca","M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3l0-50.7c0-8.8 7.2-16 16-16s16 7.2 16 16l0 50.7c18.6 6.6 32 24.4 32 45.3z"]},vp=xm,g8=xm,qg=xm,lC={prefix:"fas",iconName:"cube",icon:[512,512,[],"f1b2","M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6l0 242.9c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4L0 134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1 0-188L288 246.6l0 188z"]},Ap={prefix:"fas",iconName:"bitcoin-sign",icon:[320,512,[],"e0b4","M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32l0 32 32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-6.3 0C18.7 448 0 429.3 0 406.3L0 288l0-22.3L0 224 0 101.6C0 80.8 16.8 64 37.6 64L48 64l0-32zM64 224l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L64 128l0 96zm112 64L64 288l0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z"]},_8={prefix:"fas",iconName:"shield-dog",icon:[512,512,[],"e573","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7L320 192l64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160l40 0 8 0 0 32 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},bm={prefix:"fas",iconName:"solar-panel",icon:[640,512,[],"f5ba","M122.2 0C91.7 0 65.5 21.5 59.5 51.4L8.3 307.4C.4 347 30.6 384 71 384l217 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 217 0c40.4 0 70.7-36.9 62.8-76.6l-51.2-256C574.5 21.5 548.3 0 517.8 0L122.2 0zM260.9 64l118.2 0 10.4 104-139 0L260.9 64zM202.3 168l-100.8 0L122.2 64l90.4 0L202.3 168zM91.8 216l105.6 0L187.1 320 71 320 91.8 216zm153.9 0l148.6 0 10.4 104-169.4 0 10.4-104zm196.8 0l105.6 0L569 320l-116 0L442.5 216zm96-48l-100.8 0L427.3 64l90.4 0 31.4-6.3L517.8 64l20.8 104z"]},Qg={prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48C576 64.5 511.5 0 432 0S288 64.5 288 144l0 48L64 192c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-32 0 0-48z"]},Jg={prefix:"fas",iconName:"elevator",icon:[512,512,[],"e16d","M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0L304 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z"]},$g={prefix:"fas",iconName:"money-bill-transfer",icon:[640,512,[],"e528","M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64l241.9 0c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5 608 384c0 35.3-28.7 64-64 64l-241.9 0c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5 32 128c0-35.3 28.7-64 64-64zm64 64l-64 0 0 64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64l64 0 0-64zM320 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"]},cC={prefix:"fas",iconName:"money-bill-trend-up",icon:[512,512,[],"e529","M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2c0 0 0 .1 0 .1c0 0 0 0 0 0l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64 352 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0s0 0 0 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},Cp={prefix:"fas",iconName:"house-flood-water-circle-arrow-right",icon:[640,512,[],"e50f","M288 144A144 144 0 1 0 0 144a144 144 0 1 0 288 0zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160 80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4 16.6 0c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z"]},Sm={prefix:"fas",iconName:"square-poll-horizontal",icon:[448,512,["poll-h"],"f682","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z"]},v8=Sm,uC={prefix:"fas",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],"f111","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z"]},A8={prefix:"fas",iconName:"backward-fast",icon:[512,512,[9198,"fast-backward"],"f049","M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7 288 416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7 64 416c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64s32 14.3 32 32l0 118.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96l0 118.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96l0 320c0 12.4-7.2 23.7-18.4 29z"]},e6=A8,C8={prefix:"fas",iconName:"recycle",icon:[512,512,[9842,9850,9851],"f1b8","M174.7 45.1C192.2 17 223 0 256 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L283 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM429.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L320 448l0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L36 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L182 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3L68.8 335.3c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0C42.7 448-.3 404.8 0 351.6c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z"]},hC={prefix:"fas",iconName:"user-astronaut",icon:[448,512,[],"f4fb","M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128l0 64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9l0-64c0-16.8-12.9-30.5-29.3-31.9zM336 144l0 16c0 53-43 96-96 96l-32 0c-53 0-96-43-96-96l0-16c0-26.5 21.5-48 48-48l128 0c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512l98.3 0 0-64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 64 98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16l0 48 32 0 0-48c0-8.8-7.2-16-16-16zm96 32a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},dC={prefix:"fas",iconName:"plane-slash",icon:[640,512,[],"e069","M514.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-73.8 0L630.8 469.1c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L238.1 161.3 197.8 20.4C194.9 10.2 202.6 0 213.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L397.7 192l116.6 0zM41.5 128.7l321 252.9L297.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L144 320l-43.2 57.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L64 256 32.5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-6.2 4-11.4 9.5-13.3z"]},fC={prefix:"fas",iconName:"trademark",icon:[640,512,[8482],"f25c","M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96C14.3 96 0 110.3 0 128z"]},pC={prefix:"fas",iconName:"basketball",icon:[512,512,[127936,"basketball-ball"],"f434","M86.6 64l85.2 85.2C194.5 121.7 208 86.4 208 48c0-14.7-2-28.9-5.7-42.4C158.6 15 119 35.5 86.6 64zM64 86.6C35.5 119 15 158.6 5.6 202.3C19.1 206 33.3 208 48 208c38.4 0 73.7-13.5 101.3-36.1L64 86.6zM256 0c-7.3 0-14.6 .3-21.8 .9C238 16 240 31.8 240 48c0 47.3-17.1 90.5-45.4 124L256 233.4 425.4 64C380.2 24.2 320.9 0 256 0zM48 240c-16.2 0-32-2-47.1-5.8C.3 241.4 0 248.7 0 256c0 64.9 24.2 124.2 64 169.4L233.4 256 172 194.6C138.5 222.9 95.3 240 48 240zm463.1 37.8c.6-7.2 .9-14.5 .9-21.8c0-64.9-24.2-124.2-64-169.4L278.6 256 340 317.4c33.4-28.3 76.7-45.4 124-45.4c16.2 0 32 2 47.1 5.8zm-4.7 31.9C492.9 306 478.7 304 464 304c-38.4 0-73.7 13.5-101.3 36.1L448 425.4c28.5-32.3 49.1-71.9 58.4-115.7zM340.1 362.7C317.5 390.3 304 425.6 304 464c0 14.7 2 28.9 5.7 42.4C353.4 497 393 476.5 425.4 448l-85.2-85.2zM317.4 340L256 278.6 86.6 448c45.1 39.8 104.4 64 169.4 64c7.3 0 14.6-.3 21.8-.9C274 496 272 480.2 272 464c0-47.3 17.1-90.5 45.4-124z"]},mC=pC,x8={prefix:"fas",iconName:"satellite-dish",icon:[512,512,[128225],"f7c0","M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},ym={prefix:"fas",iconName:"circle-up",icon:[512,512,[61467,"arrow-alt-circle-up"],"f35b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm11.3-395.3l112 112c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9l-64 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-64 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l112-112c6.2-6.2 16.4-6.2 22.6 0z"]},gC=ym,t6={prefix:"fas",iconName:"mobile-screen-button",icon:[384,512,["mobile-alt"],"f3cd","M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM224 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM304 64L80 64l0 320 224 0 0-320z"]},b8=t6,xp={prefix:"fas",iconName:"volume-high",icon:[640,512,[128266,"volume-up"],"f028","M533.6 32.5C598.5 85.2 640 165.8 640 256s-41.5 170.7-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z"]},Wf=xp,Mm={prefix:"fas",iconName:"users-rays",icon:[640,512,[],"e593","M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6l56.1 0zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},bp={prefix:"fas",iconName:"wallet",icon:[512,512,[],"f555","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L80 128c-8.8 0-16-7.2-16-16s7.2-16 16-16l368 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM416 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},_C={prefix:"fas",iconName:"clipboard-check",icon:[384,512,[],"f46c","M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},Hf={prefix:"fas",iconName:"file-audio",icon:[384,512,[],"f1c7","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376 80 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l33.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z"]},Sp={prefix:"fas",iconName:"burger",icon:[512,512,["hamburger"],"f805","M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1L61.1 224zM144 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm240 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zM272 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM16 304c0-26.5 21.5-48 48-48l384 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L64 352c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16l416 0c8.8 0 16 7.2 16 16l0 16c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-16z"]},S8=Sp,y8={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Em={prefix:"fas",iconName:"bugs",icon:[576,512,[],"e4d0","M164.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L128 71.7 101.9 14.1C96.4 2 82.1-3.3 70.1 2.1S52.7 21.9 58.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6l-17 0-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8S-2.1 111.7 .5 124.7l8 40C10.7 175.9 20.6 184 32 184l32 0 0 23.3-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C82.7 274.6 103.8 288 128 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L192 207.3l0-23.3 32 0c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L204.3 136l-17 0c-4.7-11.6-12.7-21.5-22.9-28.6zM496 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L432.8 250c-12.3 1-24.2 5.6-34.1 13.3L384 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L359 322.7 321.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L503.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L566.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z"]},Zh={prefix:"fas",iconName:"rupee-sign",icon:[448,512,[8360,"rupee"],"f156","M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0s0 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9c0 0 0 0 0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s24.9-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1c0 0 0 0 0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.5-13.4-6.6-28-4.4-43.2c8.4-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z"]},yp=Zh,M8={prefix:"fas",iconName:"file-image",icon:[384,512,[128443],"f1c5","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm152 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6l-88 0-40 0-48 0-48 0c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z"]},i6={prefix:"fas",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Tm=i6,Gd={prefix:"fas",iconName:"plane-departure",icon:[640,512,[128747],"f5b0","M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2l137.7 0c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48l-57.4 0c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z"]},T1={prefix:"fas",iconName:"handshake-slash",icon:[640,512,[],"e060","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8 512 128l-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128 0 128 0 352c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-180.4zM413.6 421.9L128 196.9 128 352l28.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128l0 224c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-224-96 0zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},Lm={prefix:"fas",iconName:"book-bookmark",icon:[448,512,[],"e0bb","M0 96C0 43 43 0 96 0l96 0 0 190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5L352 0l32 0 32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32z"]},Im={prefix:"fas",iconName:"code-branch",icon:[448,512,[],"f126","M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 87.8c18.8-10.9 40.7-17.1 64-17.1l96 0c35.3 0 64-28.7 64-64l0-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 6.7c0 70.7-57.3 128-128 128l-96 0c-35.3 0-64 28.7-64 64l0 6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-6.7 0-198.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},E8={prefix:"fas",iconName:"hat-cowboy",icon:[640,512,[],"f8c0","M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z"]},vC={prefix:"fas",iconName:"bridge",icon:[576,512,[],"e4c8","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l40 0 0 64L0 160 0 288c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96l0-128-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM456 96l0 64-80 0 0-64 80 0zM328 96l0 64-80 0 0-64 80 0zM200 96l0 64-80 0 0-64 80 0z"]},Yf={prefix:"fas",iconName:"phone-flip",icon:[512,512,[128381,"phone-alt"],"f879","M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z"]},s6=Yf,Pm={prefix:"fas",iconName:"truck-front",icon:[512,512,[],"e2b7","M0 80C0 35.8 35.8 0 80 0L432 0c44.2 0 80 35.8 80 80l0 288c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-256 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 80zm129.9 72.2L112 224l288 0-17.9-71.8C378.5 138 365.7 128 351 128l-190 0c-14.7 0-27.5 10-31 24.2zM128 320a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},dh={prefix:"fas",iconName:"cat",icon:[576,512,[128008],"f6be","M320 192l17.1 0c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4l0 4 0 32 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8L280 448l56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-223.5c0-16.1-12-29.8-28-31.8l-7.9-1c-17.5-2.2-30-18.2-27.8-35.7s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3l0 85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5s0 0 0 0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32c0 0 0 0 0 0c-3.7-4.1-7-8.5-9.9-13.2C357.3 164 352 146.6 352 128c0 0 0 0 0 0l0-96 0-20 0-1.3C352 4.8 356.7 .1 362.6 0l.2 0c3.3 0 6.4 1.6 8.4 4.2c0 0 0 0 0 .1L384 21.3l27.2 36.3L416 64l64 0 4.8-6.4L512 21.3 524.8 4.3c0 0 0 0 0-.1c2-2.6 5.1-4.2 8.4-4.2l.2 0C539.3 .1 544 4.8 544 10.7l0 1.3 0 20 0 96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM432 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},T8={prefix:"fas",iconName:"anchor-circle-exclamation",icon:[640,512,[],"e4ab","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},Mp={prefix:"fas",iconName:"truck-field",icon:[640,512,[],"e58d","M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l51.8 0c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2l4.2 0c35.3 0 64 28.7 64 64l0 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-32c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zM384 224l85.9 0-42.7-96L384 128l0 96zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},r6={prefix:"fas",iconName:"route",icon:[512,512,[],"f4d7","M512 96c0 50.2-59.1 125.1-84.6 155c-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8c6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96c0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8C59.8 473 0 402.5 0 352c0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9c-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},n6={prefix:"fas",iconName:"clipboard-question",icon:[384,512,[],"e4e3","M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Wl={prefix:"fas",iconName:"panorama",icon:[640,512,[],"e209","M45.6 32C20.4 32 0 52.4 0 77.6L0 434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6l0-356.7C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM96 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm272 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z"]},z2={prefix:"fas",iconName:"comment-medical",icon:[512,512,[],"f7f5","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},a6={prefix:"fas",iconName:"teeth-open",icon:[576,512,[],"f62f","M96 32C43 32 0 75 0 128l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-53-43-96-96-96L96 32zM224 96c26.5 0 48 21.5 48 48l0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56zM96 128c26.5 0 48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM96 480l384 0c53 0 96-43 96-96l0-32c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48zm80-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48zm80-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48s-48-21.5-48-48z"]},Om={prefix:"fas",iconName:"file-circle-minus",icon:[576,512,[],"e4ed","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z"]},AC={prefix:"fas",iconName:"tags",icon:[512,512,[],"f02c","M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5L0 80C0 53.5 21.5 32 48 32l149.5 0c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Kh={prefix:"fas",iconName:"wine-glass",icon:[320,512,[127863],"f4e3","M32.1 29.3C33.5 12.8 47.4 0 64 0L256 0c16.6 0 30.5 12.8 31.9 29.3l14 168.4c6 72-42.5 135.2-109.9 150.6l0 99.6 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0-80 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0 0-99.6C60.6 333 12.1 269.8 18.1 197.8l14-168.4zm56 98.7l143.8 0-5.3-64L93.4 64l-5.3 64z"]},qh={prefix:"fas",iconName:"forward-fast",icon:[512,512,[9197,"fast-forward"],"f050","M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7 224 416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7 448 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 118.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96l0 118.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96L0 416c0 12.4 7.2 23.7 18.4 29z"]},o6=qh,Cc={prefix:"fas",iconName:"face-meh-blank",icon:[512,512,[128566,"meh-blank"],"f5a4","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm208.4-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},F2=Cc,Iu={prefix:"fas",iconName:"square-parking",icon:[448,512,[127359,"parking"],"f540","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64 0-120c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z"]},Ep=Iu,Rm={prefix:"fas",iconName:"house-signal",icon:[576,512,[],"e012","M357.7 8.5c-12.3-11.3-31.2-11.3-43.4 0l-208 192c-9.4 8.6-12.7 22-8.5 34c87.1 25.3 155.6 94.2 180.3 181.6L464 416c26.5 0 48-21.5 48-48l0-112 32 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8.1-35.2l-208-192zM288 208c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-64zM24 256c-13.3 0-24 10.7-24 24s10.7 24 24 24c101.6 0 184 82.4 184 184c0 13.3 10.7 24 24 24s24-10.7 24-24c0-128.1-103.9-232-232-232zm8 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM0 376c0 13.3 10.7 24 24 24c48.6 0 88 39.4 88 88c0 13.3 10.7 24 24 24s24-10.7 24-24c0-75.1-60.9-136-136-136c-13.3 0-24 10.7-24 24z"]},su={prefix:"fas",iconName:"bars-progress",icon:[512,512,["tasks-alt"],"f828","M448 160l-128 0 0-32 128 0 0 32zM48 64C21.5 64 0 85.5 0 112l0 64c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48L48 64zM448 352l0 32-256 0 0-32 256 0zM48 288c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48L48 288z"]},Xf=su,Wd={prefix:"fas",iconName:"faucet-drip",icon:[512,512,[128688],"e006","M224 0c17.7 0 32 14.3 32 32l0 12 96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12 0-12c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-43.8 32-4 32 4 0 43.8 18.7 0c8.5 0 16.6 3.4 22.6 9.4L320 192l32 0c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 320c-17.7 0-32-14.3-32-32l0-64zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z"]},pS={prefix:"fas",iconName:"cart-flatbed",icon:[640,512,["dolly-flatbed"],"f474","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 44.2 35.8 80 80 80l18.7 0c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l66.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-464 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM192 80l0 192c0 26.5 21.5 48 48 48l320 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-96 0 0 144c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1l0-144-96 0c-26.5 0-48 21.5-48 48z"]},mS=pS,L8={prefix:"fas",iconName:"ban-smoking",icon:[512,512,[128685,"smoking-ban"],"f54d","M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l34.7 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-130.7 0L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96L112 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l117.5 0z"]},CC=L8,Dm={prefix:"fas",iconName:"terminal",icon:[576,512,[],"f120","M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},I8={prefix:"fas",iconName:"mobile-button",icon:[384,512,[],"f10b","M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},xC={prefix:"fas",iconName:"house-medical-flag",icon:[640,512,[],"e514","M480 0c17.7 0 32 14.3 32 32l112 0c8.8 0 16 7.2 16 16l0 128c0 8.8-7.2 16-16 16l-112 0 0 320-64 0 0-320 0-160c0-17.7 14.3-32 32-32zM276.8 39.7L416 159l0 353 1 0-.2 0L96 512c-17.7 0-32-14.3-32-32l0-192-32 0c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"]},Tp={prefix:"fas",iconName:"basket-shopping",icon:[576,512,["shopping-basket"],"f291","M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192 32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512L430 512c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-85.6 0L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192l-232.6 0L253.3 35.1zM192 304l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zm128 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},P8=Tp,O8={prefix:"fas",iconName:"tape",icon:[576,512,[],"f4db","M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-163.2 0zM224 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm64 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},Nm={prefix:"fas",iconName:"bus-simple",icon:[448,512,["bus-alt"],"f55e","M224 0C348.8 0 448 35.2 448 80l0 16 0 320c0 17.7-14.3 32-32 32l0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32L0 96 0 80C0 35.2 99.2 0 224 0zM64 128l0 128c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM80 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},bC=Nm,Lp={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]},R8={prefix:"fas",iconName:"face-sad-cry",icon:[512,512,[128557,"sad-cry"],"f5b3","M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 288c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 189.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8L384 288c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 205.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z"]},cs=R8,ru={prefix:"fas",iconName:"audio-description",icon:[576,512,[],"f29e","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9-82.2 0-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2 42.2 0zM304 184c0-13.3 10.7-24 24-24l56 0c53 0 96 43 96 96s-43 96-96 96l-56 0c-13.3 0-24-10.7-24-24l0-144zm48 24l0 96 32 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z"]},SC={prefix:"fas",iconName:"person-military-to-person",icon:[512,512,[],"e54c","M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 2.9 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z"]},D8={prefix:"fas",iconName:"file-shield",icon:[576,512,[],"e4f0","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 47-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8l0 187.8c68.2-33 91.5-99 95.4-149.7z"]},wm={prefix:"fas",iconName:"user-slash",icon:[640,512,[],"f506","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7l388.6 0c3.9 0 7.6-.7 11-2.1l-261-205.6z"]},Li={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]},ca={prefix:"fas",iconName:"tower-observation",icon:[512,512,[],"e586","M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144l0 80c0 17.7-14.3 32-32 32l-4.9 0 32 192 68.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-95.5 0c-.4 0-.8 0-1.1 0l-254.8 0c-.4 0-.8 0-1.1 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 32-192-4.9 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448l117 0zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256l-116.5 0zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0z"]},Yo={prefix:"fas",iconName:"file-code",icon:[384,512,[],"f1c9","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"]},Zf={prefix:"fas",iconName:"signal",icon:[640,512,[128246,"signal-5","signal-perfect"],"f012","M576 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352c0-17.7 14.3-32 32-32zM352 224l0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32zM96 416l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},k2=Zf,ua=Zf,pi={prefix:"fas",iconName:"bus",icon:[576,512,[128653],"f207","M288 0C422.4 0 512 35.2 512 80l0 16 0 32c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32l0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32c0 0 0 0 0 0l0-32s0 0 0 0l0-16C64 35.2 153.6 0 288 0zM128 160l0 96c0 17.7 14.3 32 32 32l112 0 0-160-112 0c-17.7 0-32 14.3-32 32zM304 288l112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-112 0 0 160zM144 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM384 80c0-8.8-7.2-16-16-16L208 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l160 0c8.8 0 16-7.2 16-16z"]},Fn={prefix:"fas",iconName:"heart-circle-xmark",icon:[576,512,[],"e501","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},Pu={prefix:"fas",iconName:"house-chimney",icon:[576,512,[63499,"home-lg"],"e3af","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185l0-121c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64 0 24c0 22.1 17.9 40 40 40l24 0 32.5 0c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1l16 0c22.1 0 40-17.9 40-40l0-16.2c.3-2.6 .5-5.3 .5-8.1l-.7-160.2 32 0z"]},Ip=Pu,$n={prefix:"fas",iconName:"window-maximize",icon:[512,512,[128470],"f2d0","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},Dt={prefix:"fas",iconName:"face-frown",icon:[512,512,[9785,"frown"],"f119","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},xc=Dt,U2={prefix:"fas",iconName:"prescription",icon:[448,512,[],"f5b1","M32 0C14.3 0 0 14.3 0 32L0 192l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0L32 0zM176 160L64 160l0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z"]},Hl={prefix:"fas",iconName:"shop",icon:[640,512,["store-alt"],"f54f","M36.8 192l566.3 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224l0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-160-64 0 0 160-192 0 0-160-64 0zm448 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256-64 0z"]},Mn=Hl,rs={prefix:"fas",iconName:"floppy-disk",icon:[448,512,[128190,128426,"save"],"f0c7","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm0 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 224c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},Bm=rs,gS={prefix:"fas",iconName:"vihara",icon:[640,512,[],"f6a7","M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9l-7.5 0 0 56.1 6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4L544 288l0 65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7L96 288l-39.4 0c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1 0-8.1 0-48-7.5 0c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128l-96 0-96 0 0 64 72 0 48 0 72 0 0-64zM160 288l0 64 136 0 24 0 24 0 136 0 0-64-136 0-24 0s0 0 0 0l-24 0-136 0z"]},bo={prefix:"fas",iconName:"scale-unbalanced",icon:[640,512,["balance-scale-left"],"f515","M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2L288 480c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM439.6 288L512 163.8 584.4 288l-144.9 0zM512 384c62.9 0 115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L536.1 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L392.7 273.1c-5.7 9.8-9.3 21.1-6.7 32.1C396.8 350 449.1 384 512 384zM129.2 291.8L201.6 416 56.7 416l72.4-124.2zM3.2 433.1C14 478 66.3 512 129.2 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L153.2 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L9.9 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z"]},j2=bo,Kf={prefix:"fas",iconName:"sort-up",icon:[320,512,["sort-asc"],"f0de","M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]},l6=Kf,c6={prefix:"fas",iconName:"comment-dots",icon:[512,512,[128172,62075,"commenting"],"f4ad","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},L1=c6,V2={prefix:"fas",iconName:"plant-wilt",icon:[512,512,[],"e5aa","M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56l0 13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1l0-13C464 53.7 410.3 0 344 0S224 53.7 224 120l0 21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120l0 13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1l0-13c0-30.9 25.1-56 56-56s56 25.1 56 56l0 32 0 200c0 17.7 14.3 32 32 32s32-14.3 32-32l0-200 0-32 0-128z"]},yC={prefix:"fas",iconName:"diamond",icon:[512,512,[9830],"f219","M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z"]},zm={prefix:"fas",iconName:"face-grin-squint",icon:[512,512,[128518,"grin-squint"],"f585","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Fm=zm,Pp={prefix:"fas",iconName:"hand-holding-dollar",icon:[576,512,["hand-holding-usd"],"f4c0","M312 24l0 10.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3s0 0 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8l0 10.6c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11.4c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2L264 24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z"]},G2=Pp,km={prefix:"fas",iconName:"chart-diagram",icon:[512,512,[],"e695","M80 32C53.5 32 32 53.5 32 80s21.5 48 48 48l152 0 0 40-48 48-56 0c-48.6 0-88 39.4-88 88l0 48-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-48c0-22.1 17.9-40 40-40l56 0 48 48 0 40-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-40 48-48 56 0c22.1 0 40 17.9 40 40l0 48-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-48c0-48.6-39.4-88-88-88l-56 0-48-48 0-40 152 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L80 32z"]},Op={prefix:"fas",iconName:"bacterium",icon:[512,512,[],"e05a","M423.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L196 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L103 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7c0 0 0 0 0 0l-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2C4.7 380.6-2.7 393.8 .9 406.6s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L215 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L371 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L439 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zM92.1 363.3s0 0 0 0L144 368l-51.9-4.7zM112 320a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM240 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Um={prefix:"fas",iconName:"hand-pointer",icon:[448,512,[],"f25a","M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48l0 48 0 16 0 48c0 70.7-57.3 128-128 128l-16 0-64 0-.1 0-5.2 0c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7L128 40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z"]},qf={prefix:"fas",iconName:"drum-steelpan",icon:[576,512,[],"f56a","M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z"]},Qh={prefix:"fas",iconName:"hand-scissors",icon:[512,512,[],"f257","M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9c0 0 0 .1 0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z"]},Qf={prefix:"fas",iconName:"hands-praying",icon:[640,512,["praying-hands"],"f684","M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4l0 73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384l0 96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7L336 224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-84.9c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8l0 84.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 118.2c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480l0-96c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2l0-73.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z"]},Rp=Qf,I1={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"]},W2=I1,Jf=I1,Dp=I1,N8={prefix:"fas",iconName:"web-awesome",icon:[640,512,[],"e682","M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192l104.4-20.9c-5.3-7.7-8.4-17.1-8.4-27.1c0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144c0-26.5 21.5-48 48-48s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1c0-28.7 23.3-52 52-52s52 23.3 52 52z"]},H2={prefix:"fas",iconName:"biohazard",icon:[576,512,[9763],"f780","M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM240 272a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z"]},P1={prefix:"fas",iconName:"location-crosshairs",icon:[512,512,["location"],"f601","M256 0c17.7 0 32 14.3 32 32l0 34.7C368.4 80.1 431.9 143.6 445.3 224l34.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0C431.9 368.4 368.4 431.9 288 445.3l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C143.6 431.9 80.1 368.4 66.7 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l34.7 0C80.1 143.6 143.6 80.1 224 66.7L224 32c0-17.7 14.3-32 32-32zM128 256a128 128 0 1 0 256 0 128 128 0 1 0 -256 0zm128-80a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},MC=P1,Np={prefix:"fas",iconName:"mars-double",icon:[640,512,[9891],"f227","M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L312 32zm88 48s0 0 0 0s0 0 0 0s0 0 0 0zM64 304a112 112 0 1 1 224 0A112 112 0 1 1 64 304zM368 480c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L504 32c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2 0 .2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7l0 21.3c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z"]},w8={prefix:"fas",iconName:"child-dress",icon:[320,512,[],"e59c","M224 64A64 64 0 1 0 96 64a64 64 0 1 0 128 0zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z"]},jm={prefix:"fas",iconName:"users-between-lines",icon:[640,512,[],"e591","M0 24C0 10.7 10.7 0 24 0L616 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 48C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24l592 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24zM83.2 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 320c0-35.3 28.7-64 64-64l96 0c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6L64 352c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6l96 0c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32l-82.4 0zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1l96 0c7.4 0 14.7 .8 21.6 2.4zm44-130.4a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM321.6 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},wp={prefix:"fas",iconName:"lungs-virus",icon:[640,512,[],"e067","M320 0c17.7 0 32 14.3 32 32l0 124.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2L288 32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1l0-24.1C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4l0 7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89l0-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3l0 24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},u6={prefix:"fas",iconName:"face-grin-tears",icon:[640,512,[128514,"grin-tears"],"f588","M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z"]},Vm=u6,B8={prefix:"fas",iconName:"phone",icon:[512,512,[128222,128379],"f095","M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z"]},Gm={prefix:"fas",iconName:"calendar-xmark",icon:[448,512,["calendar-times"],"f273","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z"]},EC=Gm,Bp={prefix:"fas",iconName:"child-reaching",icon:[384,512,[],"e59d","M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"]},z8={prefix:"fas",iconName:"head-side-virus",icon:[512,512,[],"e064","M0 224.2C0 100.6 100.2 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320l0 64c0 35.3-28.7 64-64 64l-64 0 0 32c0 17.7-14.3 32-32 32L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM224 64c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C145.5 152.1 129 192 96 192c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C168.1 286.5 208 303 208 336c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C302.5 263.9 319 224 352 224c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C279.9 129.5 240 113 240 80c0-8.8-7.2-16-16-16zm-24 96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 80a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},F8={prefix:"fas",iconName:"user-gear",icon:[640,512,["user-cog"],"f4fe","M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304l91.4 0c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7l0 .9c0 9.2 2.7 18.5 7.9 26.3L29.7 512C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8l0 30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8l0-30.5c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9l0-30.5zm92.1 133.5a48.1 48.1 0 1 0 -96.1 0 48.1 48.1 0 1 0 96.1 0z"]},Wm=F8,_S={prefix:"fas",iconName:"arrow-up-1-9",icon:[576,512,["sort-numeric-up"],"f163","M450.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3 192 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-301.7L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM445.7 364.9A32 32 0 1 0 418.3 307a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z"]},k8=_S,U8={prefix:"fas",iconName:"door-closed",icon:[576,512,[128682],"f52a","M96 64c0-35.3 28.7-64 64-64L416 0c35.3 0 64 28.7 64 64l0 384 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-112 0-288 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0L96 64zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},j8={prefix:"fas",iconName:"shield-virus",icon:[512,512,[],"e06c","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},h6={prefix:"fas",iconName:"dice-six",icon:[448,512,[9861],"f526","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},V8={prefix:"fas",iconName:"mosquito-net",icon:[640,512,[],"e52c","M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4l0-23.1L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5l0-22.6c0-14.9 10.1-27.3 23.8-31l0-43.3c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2l0 43.3c13.7 3.6 23.8 16.1 23.8 31l0 22.6 45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35 0 23.1 32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6l0 50c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16l0 16 48 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 16 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 48 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 48 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-48 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-48 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-48-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-48-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 16 48 0 0-16c0-8.8 7.2-16 16-16zm16 112l48 0 0-48-48 0 0 48zm0 80l48 0 0-48-48 0 0 48zM448 320l0 48 48 0 0-48-48 0zm0 80l0 48 48 0 0-48-48 0z"]},d6={prefix:"fas",iconName:"file-fragment",icon:[384,512,[],"e697","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64l-128 0 0-128c0-35.3-28.7-64-64-64L0 320 0 64zm384 64l-128 0L256 0 384 128zM32 352l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32z"]},G8={prefix:"fas",iconName:"bridge-water",icon:[576,512,[],"e4ce","M0 96C0 78.3 14.3 64 32 64l512 0c17.7 0 32 14.3 32 32l0 35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6l0 124.9c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3c0 0 0 0 0 0l0-.5 0-128c0-53-43-96-96-96s-96 43-96 96l0 128 0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7l0-124.9C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6L0 96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},TC={prefix:"fas",iconName:"person-booth",icon:[576,512,[],"f756","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160 64 0 0-160zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448zM224 512c17.7 0 32-14.3 32-32l0-160-64 0 0 160c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32L320 0zM112 80A48 48 0 1 0 16 80a48 48 0 1 0 96 0zm0 261.3l0-72.1 4.7 4.7c9 9 21.2 14.1 33.9 14.1l73.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-66.7 0-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6l0 55.7 0 .9L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 42.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-58.7c0-10.4-3.4-20.5-9.6-28.8L112 341.3z"]},LC={prefix:"fas",iconName:"text-width",icon:[448,512,[],"f035","M64 128l0-32 128 0 0 128-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-128 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L224 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 192 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-192 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z"]},W8={prefix:"fas",iconName:"hat-wizard",icon:[512,512,[],"f6e8","M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6l0 1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416l-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416 64 416zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},fh={prefix:"fas",iconName:"pen-fancy",icon:[512,512,[128395,10002],"f5ac","M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.3 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z"]},ph={prefix:"fas",iconName:"person-digging",icon:[576,512,["digging"],"f85e","M208 64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2l-256 0c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7l32 0 22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-74.9-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z"]},f6=ph,H8={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.7L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-7.2-14.3C307.4 6.8 296.3 0 284.2 0L163.8 0c-12.1 0-23.2 6.8-28.6 17.7zM416 128L32 128 53.2 467c1.6 25.3 22.6 45 47.9 45l245.8 0c25.3 0 46.3-19.7 47.9-45L416 128z"]},or={prefix:"fas",iconName:"gauge-simple",icon:[512,512,["gauge-simple-med","tachometer-average"],"f629","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3L280 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 204.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},mh=or,gh=or,$f={prefix:"fas",iconName:"book-medical",icon:[448,512,[],"f7e6","M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM208 112l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"]},IC={prefix:"fas",iconName:"poo",icon:[512,512,[128169],"f2fe","M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z"]},nr={prefix:"fas",iconName:"quote-right",icon:[448,512,[8221,"quote-right-alt"],"f10e","M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72z"]},Hm=nr,p6={prefix:"fas",iconName:"shirt",icon:[640,512,[128085,"t-shirt","tshirt"],"f553","M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0l12.6 0c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7 480 448c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-250.3-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0l12.6 0z"]},e0=p6,PC=p6,zp={prefix:"fas",iconName:"cubes",icon:[576,512,[],"f1b3","M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5l0 112.2c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7L0 413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3l0-119.1c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3l0-112.2c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2 0-89.2L392 121l0 89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4l0-100.5L256 323.2l0 95.9-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1 0-100.5L528 323.2l0 90.7c0 3.2-1.9 6-4.8 7.3z"]},Jh={prefix:"fas",iconName:"divide",icon:[448,512,[10135,247],"f529","M272 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 320a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0z"]},Fp={prefix:"fas",iconName:"tenge-sign",icon:[384,512,[8376,"tenge"],"f7d7","M0 64C0 46.3 14.3 32 32 32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32l160 0 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224L32 224c-17.7 0-32-14.3-32-32z"]},t0=Fp,m6={prefix:"fas",iconName:"headphones",icon:[512,512,[127911],"f025","M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80l0-16 0-48 0-48C0 146.6 114.6 32 256 32s256 114.6 256 256l0 48 0 48 0 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z"]},kp={prefix:"fas",iconName:"hands-holding",icon:[640,512,[],"f4c2","M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104l0 56 0 64L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3c0 0 0 0 0 0l-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 224l0-80 0-40zm480 0l0 40 0 80 0 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2c0 0 0 0 0 0l-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 224l0-64 0-56c0-22.1-17.9-40-40-40s-40 17.9-40 40z"]},$h={prefix:"fas",iconName:"hands-clapping",icon:[512,512,[],"e1a8","M336 16l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM424.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z"]},O1={prefix:"fas",iconName:"republican",icon:[640,512,[],"f75e","M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64L0 256l0-64zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160l192 0 96 0 32 0 64 0 32 0 0 32 0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 32 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64 0-96 128 0z"]},Up={prefix:"fas",iconName:"arrow-left",icon:[448,512,[8592],"f060","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"]},Ym={prefix:"fas",iconName:"person-circle-xmark",icon:[576,512,[],"e543","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"]},bc={prefix:"fas",iconName:"ruler",icon:[512,512,[128207],"f545","M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z"]},OC={prefix:"fas",iconName:"align-left",icon:[448,512,[],"f036","M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"]},i0={prefix:"fas",iconName:"dice-d6",icon:[448,512,[],"f6d1","M201 10.3c14.3-7.8 31.6-7.8 46 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L201 10.3zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14l0 216c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L25 423.1C9.6 414.7 0 398.6 0 381L0 184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8l0 197c0 17.6-9.6 33.7-25 42.1L263.7 510c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8l0-216c0-5.9 3.2-11.2 8.3-14l176-96z"]},Y8={prefix:"fas",iconName:"restroom",icon:[640,512,[],"f7bd","M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128l8 0c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1L584 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z"]},g6={prefix:"fas",iconName:"j",icon:[320,512,[106],"4a","M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z"]},Sc={prefix:"fas",iconName:"users-viewfinder",icon:[640,512,[],"e595","M48 48l88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L32 0C14.3 0 0 14.3 0 32L0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6l56.1 0zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80-32a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM504 48l88 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-17.7-14.3-32-32-32L504 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464l0-88c0-13.3-10.7-24-24-24s-24 10.7-24 24L0 480c0 17.7 14.3 32 32 32l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0c17.7 0 32-14.3 32-32l0-104c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 88-88 0z"]},IE={prefix:"fas",iconName:"file-video",icon:[384,512,[],"f1c8","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96zM300.9 397.9L256 368l0-64 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z"]},RC={prefix:"fas",iconName:"up-right-from-square",icon:[512,512,["external-link-alt"],"f35d","M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-128c0-17.7-14.3-32-32-32L352 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"]},vS=RC,DC={prefix:"fas",iconName:"table-cells",icon:[512,512,["th"],"f00a","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 64l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0zM64 224l88 0 0 64-88 0 0-64zm232 0l0 64-88 0 0-64 88 0zm64 0l88 0 0 64-88 0 0-64zM152 352l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0z"]},X8=DC,NC={prefix:"fas",iconName:"file-pdf",icon:[512,512,[],"f1c1","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z"]},Z8={prefix:"fas",iconName:"book-bible",icon:[448,512,["bible"],"f647","M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 112c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-112-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},wC=Z8,BC={prefix:"fas",iconName:"o",icon:[448,512,[111],"4f","M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256A224 224 0 1 1 0 256a224 224 0 1 1 448 0z"]},zC={prefix:"fas",iconName:"suitcase-medical",icon:[512,512,["medkit"],"f0fa","M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40 0 32 0 352 256 0 0-352 0-32 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM96 96L64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0L96 96zM416 480l32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0 0 384zM224 208c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},FC=zC,kC={prefix:"fas",iconName:"user-secret",icon:[448,512,[128373],"f21b","M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48l-59.9 0C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4l-59.9 0c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.8 3.3-8.8 6.1-15.5 6.1zm56 208l-12.4 0c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2L168 224c-22.1 0-40-17.9-40-40l0-14.4c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4l0 14.4c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z"]},UC={prefix:"fas",iconName:"otter",icon:[640,512,[129446],"f700","M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-48 0-16c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16l0 32 0 16 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1s0 0 0 0c0 123.7-100.3 224-224 224l-1.1 0L256 480l-.6 0C132 480 32 380 32 256.6l0-.6 0-39.2c-10.1-14.6-16-32.3-16-51.4L16 144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},jC={prefix:"fas",iconName:"person-dress",icon:[320,512,["female"],"f182","M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM88 384l-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3l11.6 0c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1L232 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z"]},AS=jC,VC={prefix:"fas",iconName:"comment-dollar",icon:[512,512,[],"f651","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312l0 13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9l0 13.8c0 11-9 20-20 20s-20-9-20-20l0-14.6c-10.3-2.2-20-5.5-28.2-8.4c0 0 0 0 0 0s0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c0 0 0 0 0 0c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5l0-14c0-11 9-20 20-20s20 9 20 20z"]},_6={prefix:"fas",iconName:"business-time",icon:[640,512,["briefcase-clock"],"f64a","M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 160 0 8.2 0c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7l0-32.7c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM320 352l-96 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l296.2 0C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 288c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z"]},K8=_6,q8={prefix:"fas",iconName:"table-cells-large",icon:[512,512,["th-large"],"f009","M448 96l0 128-160 0 0-128 160 0zm0 192l0 128-160 0 0-128 160 0zM224 224L64 224 64 96l160 0 0 128zM64 288l160 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]},PE=q8,v6={prefix:"fas",iconName:"book-tanakh",icon:[448,512,["tanakh"],"f827","M352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0L64 0 352 0zm0 384L96 384l0 64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24-27.7 0 13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24l55.4 0 27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48 55.4 0c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24l-55.4 0L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48L111 112c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48 55.4 0 27.7 48-27.7 48-55.4 0-27.7-48zm0-48l-13.9 24-13.9-24 27.7 0zm41.6-24L208 88l13.9 24-27.7 0zm69.3 24l27.7 0-13.9 24-13.9-24zm13.9 72l13.9 24-27.7 0 13.9-24zm-55.4 48L208 280l-13.9-24 27.7 0z"]},Xm=v6,A6={prefix:"fas",iconName:"phone-volume",icon:[512,512,["volume-control-phone"],"f2a0","M280 0C408.1 0 512 103.9 512 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32-72c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24zM117.5 1.4c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L144 207.3c33.3 70.4 90.3 127.4 160.7 160.7L345 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C481.8 499.9 466 512 448 512C200.6 512 0 311.4 0 64C0 46 12.1 30.2 29.5 25.4l88-24z"]},Q8=A6,CS={prefix:"fas",iconName:"hat-cowboy-side",icon:[640,512,[],"f8c1","M152.7 135.9l-10.4 57.2c6.8-.7 13.6-1.1 20.5-1.1l10.7 0c39.4 0 77.8 12.1 110.1 34.7L562.4 421.8l35.1 24.6c24.4-6 42.5-28.1 42.5-54.4c0-75.8-94.7-126.6-134.6-144.7L474 83.9C468.2 53.8 441.8 32 411.1 32l-2.7 0c-5.6 0-11.1 .7-16.5 2.2L199.2 85.5c-23.9 6.4-42 26-46.5 50.4zM0 384c0 35.3 28.7 64 64 64l480 0L265.3 252.9c-26.9-18.8-58.9-28.9-91.8-28.9l-10.7 0c-60.6 0-116 34.2-143.1 88.4L13.5 325C4.6 342.7 0 362.3 0 382.2L0 384z"]},J8={prefix:"fas",iconName:"clipboard-user",icon:[384,512,[],"f7f3","M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM128 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16z"]},GC={prefix:"fas",iconName:"child",icon:[320,512,[],"f1ae","M96 64a64 64 0 1 1 128 0A64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192.2L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z"]},WC={prefix:"fas",iconName:"lira-sign",icon:[320,512,[8356],"f195","M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4L48 192l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 32-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l14 0c-2.2 10.5-6.1 20.6-11.7 29.9L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L88.5 416l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9L224 352c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-32 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-31.6z"]},xS={prefix:"fas",iconName:"satellite",icon:[512,512,[128752],"f7bf","M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z"]},bS={prefix:"fas",iconName:"plane-lock",icon:[640,512,[],"e558","M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 84.6 101.8 58.2C418 247.6 416 259.6 416 272l0 24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1l0 70.9 57.6 43.2c4 3 6.4 7.8 6.4 12.8l0 24 0 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14l0-42c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8l0-65.5c0-5.7 3.1-11 8.1-13.9L192 178.3l0-84.6zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"]},SS={prefix:"fas",iconName:"tag",icon:[448,512,[127991],"f02b","M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},yS={prefix:"fas",iconName:"comment",icon:[512,512,[128489,61669],"f075","M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z"]},C6={prefix:"fas",iconName:"cake-candles",icon:[448,512,[127874,"birthday-cake","cake"],"f1fd","M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2L56 72c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c-35.3 0-64 28.7-64 64l0 71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4c0 0 0 0 0 0s0 0 0 0l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0l.1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9l0-71c0-35.3-28.7-64-64-64l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4L0 480c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32l0-85.4z"]},OE=C6,HC=C6,MS={prefix:"fas",iconName:"envelope",icon:[512,512,[128386,9993,61443],"f0e0","M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"]},ES={prefix:"fas",iconName:"angles-up",icon:[448,512,["angle-double-up"],"f102","M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z"]},x6=ES,RE={prefix:"fas",iconName:"paperclip",icon:[448,512,[128206],"f0c6","M364.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z"]},$8={prefix:"fas",iconName:"arrow-right-to-city",icon:[640,512,[],"e4b3","M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 144 40 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 24 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0-96 0c-26.5 0-48-21.5-48-48l0-416zm64 32l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 272l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l114.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z"]},TS={prefix:"fas",iconName:"ribbon",icon:[448,512,[127895],"f4d6","M333.2 322.8s0 0 0 0l-133.9-146s0 0 0 0L146 118.6c7.8-5.1 37-22.6 78-22.6s70.2 17.4 78 22.6L245.7 180l85.6 93.4 27.4-29.8c16.3-17.7 25.3-40.9 25.3-65l0-29.5c0-19-5.6-37.5-16.1-53.3L327.8 35.6C312.9 13.4 287.9 0 261.2 0l-76 0c-25.8 0-50.1 12.5-65.1 33.5L81.9 87C70.3 103.2 64 122.8 64 142.8L64 164c0 23.2 8.4 45.6 23.6 63.1l56 64.2s0 0 0 0l83.3 95.6s0 0 0 0l91.8 105.3c10 11.5 26.8 14.3 40 6.8l54.5-31.1c17.8-10.2 21.6-34.3 7.7-49.4l-87.7-95.7zM205.2 410.6l-83.3-95.6L27.1 418.5c-13.9 15.1-10.1 39.2 7.7 49.4l55.1 31.5c13 7.4 29.3 4.9 39.4-6.1l75.9-82.6z"]},ev={prefix:"fas",iconName:"lungs",icon:[640,512,[129729],"f604","M320 0c17.7 0 32 14.3 32 32l0 132.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2 0-45.5C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4l0 7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398l0-73 90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1l0-.4-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58 0 73.4c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89l0-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3l0 45.5 9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5L288 32c0-17.7 14.3-32 32-32z"]},Hd={prefix:"fas",iconName:"arrow-up-9-1",icon:[576,512,["sort-numeric-up-alt"],"f887","M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3 192 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-301.7L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM450.7 294c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zm-5-145.1A32 32 0 1 0 418.3 91a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z"]},DE=Hd,YC={prefix:"fas",iconName:"litecoin-sign",icon:[384,512,[],"e1d3","M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 149.6L23.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L64 280.1 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-154.1 136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L128 195.3 128 64z"]},Zm={prefix:"fas",iconName:"border-none",icon:[448,512,[],"f850","M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"]},tv={prefix:"fas",iconName:"circle-nodes",icon:[512,512,[],"e4e2","M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z"]},Yd={prefix:"fas",iconName:"parachute-box",icon:[512,512,[],"f4cd","M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16L240 192l0 128-32 0c-7 0-13.7 1.5-19.7 4.2L68.2 192l28.3 0c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192l6 0L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7l0 96c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-96c0-7.8-1.9-15.2-5.2-21.7L487.1 192l6 0c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16l28.3 0L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2l-32 0 0-128 111.5 0z"]},XC={prefix:"fas",iconName:"indent",icon:[448,512,[],"f03c","M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"]},ZC={prefix:"fas",iconName:"truck-field-un",icon:[640,512,[],"e58e","M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-32c0-35.3-28.7-64-64-64l-4.2 0c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38l-51.8 0C364.4 44.9 343.7 32 320 32L96 32zm288 96l43.2 0 42.7 96L384 224l0-96zM112 384a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM253.3 135.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},s0={prefix:"fas",iconName:"hourglass",icon:[384,512,[9203,62032,"hourglass-empty"],"f254","M0 32C0 14.3 14.3 0 32 0L64 0 320 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11L96 64zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z"]},Km=s0,KC={prefix:"fas",iconName:"mountain",icon:[512,512,[127956],"f6fc","M256 32c12.5 0 24.1 6.4 30.8 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9L55.9 480C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5l18.3 24.4c6.4 8.5 19.2 8.5 25.6 0l25.6-34.1c6-8.1 15.5-12.8 25.6-12.8l49 0z"]},iv={prefix:"fas",iconName:"user-doctor",icon:[448,512,["user-md"],"f0f0","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1l0 50.8c27.6 7.1 48 32.2 48 62l0 40c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 24c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-40c0-29.8 20.4-54.9 48-62l0-57.1c-6-.6-12.1-.9-18.3-.9l-91.4 0c-6.2 0-12.3 .3-18.3 .9l0 65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7l0-59.1zM144 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},qC=iv,qm={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},b6=qm,sv={prefix:"fas",iconName:"cloud-meatball",icon:[512,512,[],"f73b","M0 224c0 53 43 96 96 96l44.7 0c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40l44.7 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},QC={prefix:"fas",iconName:"camera",icon:[512,512,[62258,"camera-alt"],"f030","M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L362.9 64.8C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},JC=QC,S6={prefix:"fas",iconName:"square-virus",icon:[448,512,[],"e578","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm88 32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},NE={prefix:"fas",iconName:"meteor",icon:[512,512,[9732],"f753","M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},$C={prefix:"fas",iconName:"car-on",icon:[512,512,[],"e4dd","M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zM185.8 224l140.3 0c6.8 0 12.8 4.3 15.1 10.6L360.3 288l-208.6 0 19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344l0 40 0 64 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 0-64 0-40c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160l-140.3 0c-33.8 0-64 21.3-75.3 53.1zM128 344a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm232 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z"]},ex={prefix:"fas",iconName:"sleigh",icon:[640,512,[],"f7cc","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l0 160c0 53 43 96 96 96l0 32 64 0 0-32 192 0 0 32 64 0 0-32c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0-32 0c-17.7 0-32 14.3-32 32l0 41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7l-9 0L32 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 8c0 13.3-10.7 24-24 24L64 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l488 0c48.6 0 88-39.4 88-88l0-8z"]},rv={prefix:"fas",iconName:"arrow-down-1-9",icon:[576,512,["sort-numeric-asc","sort-numeric-down"],"f162","M450.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l48 0 48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 301.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM418.3 307a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 307zM405.1 419.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z"]},LS=rv,wE=rv,tx={prefix:"fas",iconName:"hand-holding-droplet",icon:[576,512,["hand-holding-water"],"f4c1","M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3l0 1.7c0 53-43 96-96 96s-96-43-96-96l0-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z"]},IS=tx,ix={prefix:"fas",iconName:"water",icon:[576,512,[],"f773","M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},BE={prefix:"fas",iconName:"calendar-check",icon:[448,512,[],"f274","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z"]},zE={prefix:"fas",iconName:"braille",icon:[640,512,[],"f2a1","M0 96a64 64 0 1 1 128 0A64 64 0 1 1 0 96zM224 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM80 416a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 96a64 64 0 1 1 128 0A64 64 0 1 1 352 96zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0A64 64 0 1 1 512 96zm64 176a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM416 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},nv={prefix:"fas",iconName:"prescription-bottle-medical",icon:[384,512,["prescription-bottle-alt"],"f486","M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zm32 96l320 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zM160 240l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"]},FE=nv,PS={prefix:"fas",iconName:"landmark",icon:[512,512,[127963],"f66f","M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8L32 192c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9l0-.9 4.4-1.6L240.1 4.2zM64 224l64 0 0 192 40 0 0-192 64 0 0 192 48 0 0-192 64 0 0 192 40 0 0-192 64 0 0 196.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 224z"]},kE={prefix:"fas",iconName:"truck",icon:[640,512,[128666,9951],"f0d1","M48 0C21.5 0 0 21.5 0 48L0 368c0 26.5 21.5 48 48 48l16 0c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64 0-32 0-18.7c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7L416 96l0-48c0-26.5-21.5-48-48-48L48 0zM416 160l50.7 0L544 237.3l0 18.7-128 0 0-96zM112 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},UE={prefix:"fas",iconName:"crosshairs",icon:[512,512,[],"f05b","M256 0c17.7 0 32 14.3 32 32l0 10.4c93.7 13.9 167.7 88 181.6 181.6l10.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.4 0c-13.9 93.7-88 167.7-181.6 181.6l0 10.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-10.4C130.3 455.7 56.3 381.7 42.4 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l10.4 0C56.3 130.3 130.3 56.3 224 42.4L224 32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6l0-20.6c0-17.7 14.3-32 32-32s32 14.3 32 32l0 20.6c58.3-12.5 104.1-58.4 116.6-116.6L384 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l20.6 0C392.1 165.7 346.3 119.9 288 107.4l0 20.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-20.6C165.7 119.9 119.9 165.7 107.4 224l20.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-20.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},sx={prefix:"fas",iconName:"person-cane",icon:[448,512,[],"e53c","M272 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z"]},jE={prefix:"fas",iconName:"tent",icon:[576,512,[],"e57d","M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7l-80 0-28.2 0c-12.1 0-23.2-6.8-28.6-17.7L306.7 293.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9L288 480c0 17.7-14.3 32-32 32l-16 0L32 512c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z"]},rx={prefix:"fas",iconName:"vest-patches",icon:[448,512,[],"e086","M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3L192 464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 128l0-73.7L64 48C64 21.5 85.5 0 112 0l4.5 0c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0L336 0c26.5 0 48 21.5 48 48l0 6.3 0 73.7 0 17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-168.2c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 8 0 32c0 8.8 7.2 16 16 16l32 0 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},VE={prefix:"fas",iconName:"check-double",icon:[448,512,[],"f560","M342.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 54.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z"]},av={prefix:"fas",iconName:"arrow-down-a-z",icon:[576,512,["sort-alpha-asc","sort-alpha-down"],"f15d","M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352 352 352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224l-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176l40.4 0L416 135.6 395.8 176z"]},OS=av,RS=av,ov={prefix:"fas",iconName:"money-bill-wheat",icon:[512,512,[],"e52a","M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 64C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 136c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},nx={prefix:"fas",iconName:"cookie",icon:[512,512,[127850],"f563","M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Y2={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]},GE=Y2,lv=Y2,ax=Y2,ox=Y2,r0={prefix:"fas",iconName:"hard-drive",icon:[512,512,[128436,"hdd"],"f0a0","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 184.4c-17-15.2-39.4-24.4-64-24.4L64 256c-24.6 0-47 9.2-64 24.4L0 96zM64 288l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},WE=r0,cv={prefix:"fas",iconName:"face-grin-squint-tears",icon:[512,512,[129315,"grin-squint-tears"],"f586","M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-16.3 4.4-34.1 7.5-46.3 9.3c-1.6 .2-3.1 .5-4.6 .6c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.3-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z"]},y6=cv,HE={prefix:"fas",iconName:"dumbbell",icon:[640,512,[],"f44b","M96 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 160 0 64 0 160c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-32 0c-17.7 0-32-14.3-32-32l0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l32 0 0-64zm448 0l0 64 32 0c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 17.7-14.3 32-32 32l-32 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-160 0-64 0-160c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32zM416 224l0 64-192 0 0-64 192 0z"]},uv={prefix:"fas",iconName:"rectangle-list",icon:[576,512,["list-alt"],"f022","M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32-128a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0z"]},YE=uv,hv={prefix:"fas",iconName:"tarp-droplet",icon:[576,512,[],"e57c","M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128l133.5 0c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64L512 128c35.3 0 64 28.7 64 64l0 160-128 0c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zM448 512l0-128 128 0L448 512zM96 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},jp={prefix:"fas",iconName:"house-medical-circle-check",icon:[640,512,[],"e511","M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm32 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},dv={prefix:"fas",iconName:"person-skiing-nordic",icon:[576,512,["skiing-nordic"],"f7ca","M336 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464l-88.5 0 41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464l-32.4 0 54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464l-43 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l135.3 0c.5 0 .9 0 1.4 0l158.6 0c.5 0 1 0 1.4 0L504 512c39.8 0 72-32.2 72-72l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 13.3-10.7 24-24 24l-69.4 0 27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32l-21.3 0c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464l-44.4 0 21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288l2.7 0z"]},lo=dv,fv={prefix:"fas",iconName:"calendar-plus",icon:[448,512,[],"f271","M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272zM224 248c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0 0-56c0-13.3 10.7-24 24-24z"]},lx={prefix:"fas",iconName:"plane-arrival",icon:[640,512,[128748],"f5af","M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0l40.1 0c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14.1-9.3-22.5zM32 448l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Qm={prefix:"fas",iconName:"circle-left",icon:[512,512,[61840,"arrow-alt-circle-left"],"f359","M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM116.7 244.7l112-112c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 64 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 64c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-112-112c-6.2-6.2-6.2-16.4 0-22.6z"]},Jm=Qm,Hr={prefix:"fas",iconName:"train-subway",icon:[448,512,["subway"],"f239","M96 0C43 0 0 43 0 96L0 352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512l39.7 0c8.5 0 16.6-3.4 22.6-9.4L160 448l128 0 54.6 54.6c6 6 14.1 9.4 22.6 9.4l39.7 0c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9l0-256c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l80 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32-14.3-32-32l0-96zM272 96l80 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM64 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},_h=Hr,DS={prefix:"fas",iconName:"chart-gantt",icon:[512,512,[],"e0e4","M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zm96 64l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},Ou={prefix:"fas",iconName:"indian-rupee-sign",icon:[320,512,["indian-rupee","inr"],"e1bc","M0 64C0 46.3 14.3 32 32 32l64 0 16 0 176 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-56.2 0c9.6 14.4 16.7 30.6 20.7 48l35.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-35.6 0c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c32.8 0 61-19.7 73.3-48L32 208c-17.7 0-32-14.3-32-32s14.3-32 32-32l153.3 0C173 115.7 144.8 96 112 96L96 96 32 96C14.3 96 0 81.7 0 64z"]},$m=Ou,Yl=Ou,Ru={prefix:"fas",iconName:"crop-simple",icon:[512,512,["crop-alt"],"f565","M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z"]},M6=Ru,Du={prefix:"fas",iconName:"money-bill-1",icon:[576,512,["money-bill-alt"],"f3d1","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm64 320l-64 0 0-64c35.3 0 64 28.7 64 64zM64 192l0-64 64 0c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm76-48c0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l24 0 24 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20z"]},js=Du,cl={prefix:"fas",iconName:"left-long",icon:[512,512,["long-arrow-alt-left"],"f30a","M177.5 414c-8.8 3.8-19 2-26-4.6l-144-136C2.7 268.9 0 262.6 0 256s2.7-12.9 7.5-17.4l144-136c7-6.6 17.2-8.4 26-4.6s14.5 12.5 14.5 22l0 72 288 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-288 0 0 72c0 9.6-5.7 18.2-14.5 22z"]},Sa=cl,Ll={prefix:"fas",iconName:"dna",icon:[448,512,[129516],"f471","M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0l-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5l118.5 0c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l320 0c0-17.7 14.3-32 32-32zM338.6 384l-229.2 0c-10.1 10.6-18.6 21.3-25.5 32l280.2 0c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128l229.2 0c10.1-10.7 18.6-21.3 25.5-32L83.9 96c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5l-118.5 0z"]},vh={prefix:"fas",iconName:"virus-slash",icon:[640,512,[],"e075","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1l11.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM402 412.7L144.7 210c-9.5 8.5-22.2 14-37.2 14L96 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l11.5 0c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6l0 11.5c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11.5c0-31.2 23.6-52.7 50-55.7z"]},Vs={prefix:"fas",iconName:"minus",icon:[448,512,[8211,8722,10134,"subtract"],"f068","M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"]},on=Vs,Oa={prefix:"fas",iconName:"chess",icon:[512,512,[],"f439","M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 16L96 32c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0 0 32L60.2 96C49.1 96 40 105.1 40 116.2c0 2.5 .5 4.9 1.3 7.3L73.8 208 72 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l4 0L60 384l136 0L180 256l4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-1.8 0 32.5-84.5c.9-2.3 1.3-4.8 1.3-7.3c0-11.2-9.1-20.2-20.2-20.2L144 96l0-32 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16zM48 416L4.8 473.6C1.7 477.8 0 482.8 0 488c0 13.3 10.7 24 24 24l208 0c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L208 416 48 416zm288 0l-43.2 57.6c-3.1 4.2-4.8 9.2-4.8 14.4c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L464 416l-128 0zM304 208l0 51.9c0 7.8 2.8 15.3 8 21.1L339.2 312 337 384l125.5 0-3.3-72 28.3-30.8c5.4-5.9 8.5-13.6 8.5-21.7l0-51.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 16-24 0 0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 16-24 0 0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16zm80 96c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32-32 0 0-32z"]},So={prefix:"fas",iconName:"arrow-left-long",icon:[512,512,["long-arrow-left"],"f177","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z"]},Ah=So,R1={prefix:"fas",iconName:"plug-circle-check",icon:[576,512,[],"e55c","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},Xo={prefix:"fas",iconName:"street-view",icon:[512,512,[],"f21d","M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64l0 48c0 17.7 14.3 32 32 32l1.8 0 11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5l38.7 0c16.3 0 30-12.3 31.8-28.5L318.2 304l1.8 0c17.7 0 32-14.3 32-32l0-48c0-35.3-28.7-64-64-64l-64 0zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z"]},e4={prefix:"fas",iconName:"franc-sign",icon:[320,512,[],"e18f","M80 32C62.3 32 48 46.3 48 64l0 160 0 96-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"]},D1={prefix:"fas",iconName:"volume-off",icon:[320,512,[],"f026","M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160 64 160c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l67.8 0L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448l0-384z"]},n0={prefix:"fas",iconName:"hands-asl-interpreting",icon:[640,512,["american-sign-language-interpreting","asl-interpreting","hands-american-sign-language-interpreting"],"f2a3","M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l72 0 8 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-72 0-8 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z"]},a0=n0,pv=n0,o0=n0,E6={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},ms=E6,t4={prefix:"fas",iconName:"droplet-slash",icon:[640,512,["tint-slash"],"f5c7","M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.2 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0l-1.8 0c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},cx=t4,Xd={prefix:"fas",iconName:"mosque",icon:[640,512,[128332],"f678","M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5c0 0 0 0 0 0s0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4l-356.4 0c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6c0 0 0 0 0 0s0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512l0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-48 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l416 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-58c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454l0 58-64 0zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126l0 2L0 128l0-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160l160 0 0 136.6c-19.1 11.1-32 31.7-32 55.4l0 128c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2l-64 0c-26.5 0-48-21.5-48-48L0 176l0-16z"]},Zd={prefix:"fas",iconName:"mosquito",icon:[640,512,[],"e52b","M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z"]},fs={prefix:"fas",iconName:"star-of-david",icon:[512,512,[10017],"f69a","M404.2 309.5L383.1 344l42.3 0-21.1-34.5zM371.4 256l-54-88-122.8 0-54 88 54 88 122.8 0 54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4l-109.8 0-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400 53.4 400C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112l109.8 0 56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112l109.8 0c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168l-42.3 0zM283 112L256 68l-27 44 54 0zM128.9 168l-42.3 0 21.1 34.5L128.9 168zM107.8 309.5L86.6 344l42.3 0-21.1-34.5zM229 400l27 44 27-44-54 0z"]},X2={prefix:"fas",iconName:"person-military-rifle",icon:[512,512,[],"e54b","M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4L352 48c0 8.8-7.2 16-16 16L185 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7 352 480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},i4={prefix:"fas",iconName:"cart-shopping",icon:[576,512,[128722,"shopping-cart"],"f07a","M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},l0=i4,Kd={prefix:"fas",iconName:"vials",icon:[512,512,[],"f493","M0 64C0 46.3 14.3 32 32 32l56 0 48 0 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 304c0 44.2-35.8 80-80 80s-80-35.8-80-80L32 96C14.3 96 0 81.7 0 64zM136 96L88 96l0 160 48 0 0-160zM288 64c0-17.7 14.3-32 32-32l56 0 48 0 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 304c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-304c-17.7 0-32-14.3-32-32zM424 96l-48 0 0 160 48 0 0-160z"]},Nu={prefix:"fas",iconName:"plug-circle-plus",icon:[576,512,[],"e55f","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},T6={prefix:"fas",iconName:"place-of-worship",icon:[640,512,[],"f67f","M224 109.3l0 108.3L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2L160 512l96 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 96 0 0-228.8c0-16.9-8.8-32.5-23.3-41.2L416 217.6l0-108.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4L0 464c0 26.5 21.5 48 48 48l80 0 0-238.4L24.9 330.3zM592 512c26.5 0 48-21.5 48-48l0-91.6c0-17.5-9.5-33.6-24.9-42.1L512 273.6 512 512l80 0z"]},c0={prefix:"fas",iconName:"grip-vertical",icon:[320,512,[],"f58e","M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z"]},L6={prefix:"fas",iconName:"hexagon-nodes",icon:[448,512,[],"e699","M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56s56-25.1 56-56c0-22.3-13.1-41.6-32-50.6l0-98.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-1.6 20.8 8.6 41.6 27.8 52.8c26.8 15.5 61 6.3 76.5-20.5s6.3-61-20.5-76.5c-1.3-.8-2.7-1.5-4-2.1l0-90.8c1.4-.6 2.7-1.3 4-2.1c26.8-15.5 36-49.7 20.5-76.5S390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c2.6 1.8 5.2 3.3 8 4.7l0 90.8c-2.8 1.3-5.5 2.9-8 4.6l-80.1-45.8c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8z"]},mv={prefix:"fas",iconName:"arrow-turn-up",icon:[384,512,["level-up"],"f148","M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z"]},ed=mv,Vp={prefix:"fas",iconName:"u",icon:[384,512,[117],"55","M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z"]},N1={prefix:"fas",iconName:"square-root-variable",icon:[576,512,["square-root-alt"],"f698","M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8L282.6 78.1zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z"]},qd=N1,s4={prefix:"fas",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},r4=s4,td={prefix:"fas",iconName:"backward-step",icon:[320,512,["step-backward"],"f048","M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-320c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241 64 96c0-17.7-14.3-32-32-32S0 78.3 0 96L0 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-145 11.5 9.6 192 160z"]},Z2=td,K2={prefix:"fas",iconName:"pallet",icon:[640,512,[],"f482","M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 224 0 224 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-224 0L96 320l-64 0zm96 64l160 0 0 64-160 0 0-64zm224 0l160 0 0 64-160 0 0-64z"]},Xl={prefix:"fas",iconName:"faucet",icon:[512,512,[],"e005","M192 96l0 12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12 0-12c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4L256 224l0-43.8-32-4-32 4 0 43.8-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 256l-96 0z"]},w1={prefix:"fas",iconName:"baseball-bat-ball",icon:[512,512,[],"f432","M424 0c-12.4 0-24.2 4.9-33 13.7L233.5 171.2c-10.5 10.5-19.8 22.1-27.7 34.6L132.7 321.6c-7.3 11.5-15.8 22.2-25.5 31.9L69.9 390.7l51.3 51.3 37.3-37.3c9.6-9.6 20.3-18.2 31.9-25.5l115.8-73.1c12.5-7.9 24.1-17.2 34.6-27.7L498.3 121c8.7-8.7 13.7-20.6 13.7-33s-4.9-24.2-13.7-33L457 13.7C448.2 4.9 436.4 0 424 0zm88 432a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM15 399c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L49 399c-9.4-9.4-24.6-9.4-33.9 0z"]},n4={prefix:"fas",iconName:"s",icon:[320,512,[115],"53","M99.1 105.4C79 114 68.2 127.2 65.2 144.8c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0s0 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3C5.1 440.8-3.9 422.7 1.6 405.9s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5L2.1 133.9C9.4 91.4 37.4 62.2 73.9 46.6c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.2 22.7c-11.2-3-48.1-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z"]},ul={prefix:"fas",iconName:"timeline",icon:[640,512,[],"e29c","M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3L96 224l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0 54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-320 0 0-54.7zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},gv={prefix:"fas",iconName:"keyboard",icon:[576,512,[9e3],"f11c","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32zM272 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM368 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM464 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z"]},Za={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]},B1={prefix:"fas",iconName:"house-chimney-medical",icon:[576,512,["clinic-medical"],"f7f2","M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0z"]},XE=B1,Ka={prefix:"fas",iconName:"temperature-three-quarters",icon:[320,512,["temperature-3","thermometer-3","thermometer-three-quarters"],"f2c8","M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 144c0-8.8 7.2-16 16-16s16 7.2 16 16l0 178.7c18.6 6.6 32 24.4 32 45.3z"]},a4=Ka,id=Ka,ux=Ka,hx={prefix:"fas",iconName:"mobile-screen",icon:[384,512,["mobile-android-alt"],"f3cf","M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM144 448c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zM304 64L80 64l0 320 224 0 0-320z"]},q2=hx,dx={prefix:"fas",iconName:"plane-up",icon:[512,512,[],"e22d","M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6l0 56.7c0 10.9-10.7 18.6-21.1 15.2L320 320l0 80 57.6 43.2c4 3 6.4 7.8 6.4 12.8l0 42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14l0-42c0-5 2.4-9.8 6.4-12.8L192 400l0-80L21.1 377C10.7 380.4 0 372.7 0 361.8l0-56.7c0-10.7 5.3-20.7 14.2-26.6L192 160l0-66.3z"]},NS={prefix:"fas",iconName:"piggy-bank",icon:[576,512,[],"f4d3","M400 96l0 .7c-5.3-.4-10.6-.7-16-.7L256 96c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96l11.5 0c10.4 0 18 9.8 15.5 19.9l-13.8 55.2c15.8 14.8 28.7 32.8 37.5 52.9l13.3 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-32 0c-9.1 12.1-19.9 22.9-32 32l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c-34.9-26.2-58.7-66.3-63.2-112L68 304c-37.6 0-68-30.4-68-68s30.4-68 68-68l4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-4 0c-11 0-20 9-20 20s9 20 20 20l31.2 0c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2l128 0zm64 136a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},_v={prefix:"fas",iconName:"battery-half",icon:[576,512,["battery-3"],"f242","M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm208 96L96 192l0 128 192 0 0-128z"]},o4=_v,fx={prefix:"fas",iconName:"mountain-city",icon:[640,512,[],"e52e","M336 0c-26.5 0-48 21.5-48 48l0 92.1 71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-3.5 0 73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3L592 512c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48l-24 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-40 0 0-144c0-26.5-21.5-48-48-48L336 0zm32 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm160 96c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM224 188.9L283.8 288 223 288l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512l379.1 0c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z"]},l4={prefix:"fas",iconName:"coins",icon:[512,512,[],"f51e","M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2c0 0 0 0 0 0s0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4l0 3.4 0 5.7 0 26.3zm32 0l0-32 0-25.9c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 44.2-86 80-192 80S0 476.2 0 432l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z"]},px={prefix:"fas",iconName:"khanda",icon:[512,512,[9772],"f66d","M245.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0l-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C344.9 97.4 368 134 368 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1s0 0 0 0s0 0 0 0c3.6 6.7 2 15-3.8 19.9L272 343.5l0 19.8 35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L401.1 80c7.2-14.3 7.2-14.3 7.2-14.3s0 0 0 0s0 0 0 0l.1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1c0 0 0 0 0 0s0 0 0 0L401.1 400l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L272 423.4l0 28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7C197.8 463.3 187.9 472 176 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L112 400c-10.2 12.3-10.2 12.3-10.3 12.3s0 0 0 0s0 0 0 0l-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C26.4 324.5 0 277.1 0 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29C93 72.5 97 70 99.9 68.4c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0c0 0 0 0 0 0s0 0 0 0L112 80l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C105.2 119 96 149.5 96 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L240 362.6l0-19.1-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0l.1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C167.1 254.6 144 218 144 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1s0 0 0 0s0 0 0 0s0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM220.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C227 210.2 232 190.9 232 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C285 141.8 280 161.1 280 176s5 34.2 11.8 53.1z"]},c4={prefix:"fas",iconName:"sliders",icon:[512,512,["sliders-h"],"f1de","M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z"]},I6=c4,u4={prefix:"fas",iconName:"folder-tree",icon:[576,512,[],"f802","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32l0 96L0 384c0 35.3 28.7 64 64 64l192 0 0-64L64 384l0-224 192 0 0-64L64 96l0-64zM288 192c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-98.7 0c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4L320 0c-17.7 0-32 14.3-32 32l0 160zm0 288c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-98.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L320 288c-17.7 0-32 14.3-32 32l0 160z"]},Q2={prefix:"fas",iconName:"network-wired",icon:[640,512,[],"f6ff","M256 64l128 0 0 64-128 0 0-64zM240 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l48 0 0 32L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-48 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l160 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0-32 256 0 0 32-48 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l160 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-32 48 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48L240 0zM96 448l0-64 128 0 0 64L96 448zm320-64l128 0 0 64-128 0 0-64z"]},wS={prefix:"fas",iconName:"map-pin",icon:[320,512,[128205],"f276","M16 144a144 144 0 1 1 288 0A144 144 0 1 1 16 144zM160 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM128 480l0-162.9c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9L192 480c0 17.7-14.3 32-32 32s-32-14.3-32-32z"]},P6={prefix:"fas",iconName:"hamsa",icon:[512,512,[],"f665","M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},BS={prefix:"fas",iconName:"cent-sign",icon:[384,512,[],"e3f5","M224 0c17.7 0 32 14.3 32 32l0 34.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3L192 32c0-17.7 14.3-32 32-32z"]},vv={prefix:"fas",iconName:"flask",icon:[448,512,[],"f0c3","M288 0L160 0 128 0C110.3 0 96 14.3 96 32s14.3 32 32 32l0 132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512l309.2 0c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5L320 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L288 0zM192 196.8L192 64l64 0 0 132.8c0 23.7 6.6 46.9 19 67.1L309.5 320l-171 0L173 263.9c12.4-20.2 19-43.4 19-67.1z"]},Av={prefix:"fas",iconName:"person-pregnant",icon:[384,512,[],"e31e","M192 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM120 383c-13.8-3.6-24-16.1-24-31l0-55.1-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1l1.1 0 12.5 0 2.4 0c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3l0 32c0 17.7-14.3 32-32 32l-16 0-40 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-8 0-8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-97z"]},ZE={prefix:"fas",iconName:"wand-sparkles",icon:[512,512,[],"f72b","M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z"]},u0={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"]},KE=u0,qE={prefix:"fas",iconName:"ticket",icon:[576,512,[127903],"f145","M64 64C28.7 64 0 92.7 0 128l0 64c0 8.8 7.4 15.7 15.7 18.6C34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6C541.5 294.9 528 277 528 256s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zm64 112l0 160c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-160c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16zM96 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32l0-192z"]},QE={prefix:"fas",iconName:"power-off",icon:[512,512,[9211],"f011","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z"]},mx={prefix:"fas",iconName:"right-long",icon:[512,512,["long-arrow-alt-right"],"f30b","M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 72L32 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l288 0 0 72c0 9.6 5.7 18.2 14.5 22z"]},Gp=mx,JE={prefix:"fas",iconName:"flag-usa",icon:[448,512,[],"f74d","M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 136.3l0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 203.1l0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 232.3l0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 299.1l0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 328.3l0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 400l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64 0-70.5 0-32.7 0-63.3 0-32.7 0-63.3 0-32.7L0 64 0 32C0 14.3 14.3 0 32 0zm80 96A16 16 0 1 0 80 96a16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},Wp={prefix:"fas",iconName:"laptop-file",icon:[640,512,[],"e51d","M128 0C92.7 0 64 28.7 64 64l0 224-44.8 0C8.6 288 0 296.6 0 307.2C0 349.6 34.4 384 76.8 384L320 384l0-96-192 0 0-224 320 0 0 32 64 0 0-32c0-35.3-28.7-64-64-64L128 0zM512 128l-112 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-208-96 0c-17.7 0-32-14.3-32-32l0-96zm32 0l0 96 96 0-96-96z"]},zS={prefix:"fas",iconName:"tty",icon:[512,512,["teletype"],"f1e4","M38.3 241.3L15.1 200.6c-9.2-16.2-8.4-36.5 4.5-50C61.4 106.8 144.7 48 256 48s194.6 58.8 236.4 102.6c12.9 13.5 13.7 33.8 4.5 50l-23.1 40.7c-7.5 13.2-23.3 19.3-37.8 14.6l-81.1-26.6c-13.1-4.3-22-16.6-22-30.4l0-54.8c-49.6-18.1-104-18.1-153.6 0l0 54.8c0 13.8-8.9 26.1-22 30.4L76.1 255.8c-14.5 4.7-30.3-1.4-37.8-14.6zM32 336c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm0 96c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM144 320l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 432c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32z"]},gx=zS,FS={prefix:"fas",iconName:"diagram-next",icon:[512,512,[],"e476","M512 160c0 35.3-28.7 64-64 64l-168 0 0 64 46.1 0c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41l46.1 0 0-64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 64zM448 416l0-64-82.7 0 .4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4L64 352l0 64 146.7 0 5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7L448 416z"]},$E={prefix:"fas",iconName:"person-rifle",icon:[576,512,[],"e54e","M265.2 192c25.4 0 49.8 7.1 70.8 19.9L336 512l-192 0 0-174.3L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8l50.4 0zM160 80a80 80 0 1 1 160 0A80 80 0 1 1 160 80zM448 0c8.8 0 16 7.2 16 16l0 116.3c9.6 5.5 16 15.9 16 27.7l0 109.3 16-5.3 0-56c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 84.5c0 6.9-4.4 13-10.9 15.2L480 325.3l0 26.7 48 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-44 0 23 92.1c2.5 10.1-5.1 19.9-15.5 19.9L432 512c-8.8 0-16-7.2-16-16l0-96-16 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32l0-32c0-11.8 6.4-22.2 16-27.7L416 32c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 16 0z"]},yc={prefix:"fas",iconName:"house-medical-circle-exclamation",icon:[640,512,[],"e512","M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"]},kS={prefix:"fas",iconName:"closed-captioning",icon:[576,512,[],"f20a","M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z"]},_x={prefix:"fas",iconName:"person-hiking",icon:[384,512,["hiking"],"f6ec","M192 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm51.3 182.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9l0 89.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208l30.9 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 55.8c0 .1 0 .2 0 .2s0 .2 0 .2L384 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-216-39.4 0c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59l4.2 0c15.6 0 27.1 14.7 23.3 29.8z"]},eT=_x,tT={prefix:"fas",iconName:"venus-double",icon:[640,512,[9890],"f226","M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-26.6-4.9-51.1-15.7-72-31.1z"]},sd={prefix:"fas",iconName:"images",icon:[576,512,[],"f302","M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320l-144 0-48 0-80 0c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224z"]},iT={prefix:"fas",iconName:"calculator",icon:[384,512,[128425],"f1ec","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"]},vx={prefix:"fas",iconName:"people-pulling",icon:[576,512,[],"e535","M80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352l15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z"]},sT={prefix:"fas",iconName:"n",icon:[384,512,[110],"4e","M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 50.5 8.4 38.5 21.1 33.9z"]},Ax={prefix:"fas",iconName:"cable-car",icon:[512,512,[128673,57551,"tram"],"f7da","M288 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 56a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-66.5-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5l0 76.5 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm64 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0zm112 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0z"]},z1=Ax,rT={prefix:"fas",iconName:"cloud-rain",icon:[512,512,[127783,9926],"f73d","M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96L96 320zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3z"]},nT={prefix:"fas",iconName:"building-circle-xmark",icon:[640,512,[],"e4d4","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},aT={prefix:"fas",iconName:"ship",icon:[576,512,[128674],"f21a","M192 32c0-17.7 14.3-32 32-32L352 0c17.7 0 32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 128 44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240l0-128c0-26.5 21.5-48 48-48l48 0 0-32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7l0-90.7-256 0 0 90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},Cx={prefix:"fas",iconName:"arrows-down-to-line",icon:[576,512,[],"e4b8","M544 416L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L480 274.7 480 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L160 274.7 160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L54.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z"]},h0={prefix:"fas",iconName:"download",icon:[512,512,[],"f019","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},US={prefix:"fas",iconName:"face-grin",icon:[512,512,[128512,"grin"],"f580","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Cv=US,xx={prefix:"fas",iconName:"delete-left",icon:[576,512,[9003,"backspace"],"f55a","M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},xv=xx,bx={prefix:"fas",iconName:"eye-dropper",icon:[512,512,["eye-dropper-empty","eyedropper"],"f1fb","M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480l42.4 0c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7L96 416l0-36.1c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z"]},bv=bx,Sv=bx,yv={prefix:"fas",iconName:"file-circle-check",icon:[576,512,[],"e5a0","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},h4={prefix:"fas",iconName:"forward",icon:[512,512,[9193],"f04e","M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3l0 41.7 0 41.7L52.5 440.6zM256 352l0-96 0-128 0-32c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29l0-64z"]},O6={prefix:"fas",iconName:"mobile",icon:[384,512,[128241,"mobile-android","mobile-phone"],"f3ce","M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm80 432l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},d4=O6,jS=O6,Mv={prefix:"fas",iconName:"face-meh",icon:[512,512,[128528,"meh"],"f11a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM160 336l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},Sx=Mv,yx={prefix:"fas",iconName:"align-center",icon:[448,512,[],"f037","M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z"]},f4={prefix:"fas",iconName:"book-skull",icon:[448,512,["book-dead"],"f6b7","M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2l0 12.8c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-12.8c19.4-11.7 32-30.3 32-51.2zM208 96a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z"]},VS=f4,p4={prefix:"fas",iconName:"id-card",icon:[576,512,[62147,"drivers-license"],"f2c2","M0 96l576 0c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96zm0 32L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-288L0 128zM64 405.3c0-29.5 23.9-53.3 53.3-53.3l117.3 0c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7L74.7 416c-5.9 0-10.7-4.8-10.7-10.7zM176 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm176 16c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z"]},Ev=p4,Mx={prefix:"fas",iconName:"outdent",icon:[448,512,["dedent"],"f03b","M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z"]},F1=Mx,GS={prefix:"fas",iconName:"heart-circle-exclamation",icon:[576,512,[],"e4fe","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},d0={prefix:"fas",iconName:"house",icon:[576,512,[127968,63498,63500,"home","home-alt","home-lg-alt"],"f015","M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c0 2.7-.2 5.4-.5 8.1l0 16.2c0 22.1-17.9 40-40 40l-16 0c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1L416 512l-24 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"]},R6=d0,wu=d0,Ch=d0,WS={prefix:"fas",iconName:"calendar-week",icon:[448,512,[],"f784","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16L80 256z"]},k1={prefix:"fas",iconName:"laptop-medical",icon:[640,512,[],"f812","M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256-64 0 0-256L128 96l0 256-64 0L64 96zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},Tv={prefix:"fas",iconName:"b",icon:[320,512,[98],"42","M64 32C28.7 32 0 60.7 0 96L0 256 0 416c0 35.3 28.7 64 64 64l128 0c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128L64 32zm96 192l-96 0L64 96l96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l96 0 32 0c35.3 0 64 28.7 64 64s-28.7 64-64 64L64 416l0-128z"]},Bu={prefix:"fas",iconName:"file-medical",icon:[384,512,[],"f477","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},Hp={prefix:"fas",iconName:"dice-one",icon:[448,512,[9856],"f525","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},HS={prefix:"fas",iconName:"kiwi-bird",icon:[576,512,[],"f535","M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3l0-240c0-70.7-57.3-128-128-128l-55.7 0c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Yp={prefix:"fas",iconName:"arrow-right-arrow-left",icon:[448,512,[8644,"exchange"],"f0ec","M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"]},Ex=Yp,Xp={prefix:"fas",iconName:"rotate-right",icon:[512,512,["redo-alt","rotate-forward"],"f2f9","M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z"]},YS=Xp,Lv=Xp,Tx={prefix:"fas",iconName:"utensils",icon:[448,512,[127860,61685,"cutlery"],"f2e7","M416 0C400 0 288 32 288 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 0-112 0-208c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7L80 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16l0 134.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8L64 16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z"]},oT=Tx,f0={prefix:"fas",iconName:"arrow-up-wide-short",icon:[576,512,["sort-amount-up"],"f161","M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z"]},XS=f0,Lx={prefix:"fas",iconName:"mill-sign",icon:[384,512,[],"e1ed","M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128l0 80L0 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208c0-26.5 21.5-48 48-48s48 21.5 48 48l0 42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32l0-154.5 35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48l0 208c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z"]},ZS={prefix:"fas",iconName:"bowl-rice",icon:[512,512,[],"e2eb","M176 56c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},xh={prefix:"fas",iconName:"skull",icon:[512,512,[128128],"f54c","M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1l0 64c0 26.5 21.5 48 48 48l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 64 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 48 0c26.5 0 48-21.5 48-48l0-64c0-.4 0-.7 0-1.1zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},Zp={prefix:"fas",iconName:"tower-broadcast",icon:[576,512,["broadcast-tower"],"f519","M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4L320 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296.6c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z"]},KS=Zp,lT={prefix:"fas",iconName:"truck-pickup",icon:[640,512,[128763],"f63c","M368.6 96l76.8 96L288 192l0-96 80.6 0zM224 80l0 112L64 192c-17.7 0-32 14.3-32 32l0 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l33.1 0c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16l66.3 0c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16l33.1 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c0-17.7-14.3-32-32-32l-48.6 0L418.6 56c-12.1-15.2-30.5-24-50-24L272 32c-26.5 0-48 21.5-48 48zm0 288a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm288 0a48 48 0 1 1 -96 0 48 48 0 1 1 96 0z"]},p0={prefix:"fas",iconName:"up-long",icon:[320,512,["long-arrow-alt-up"],"f30c","M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192l72 0 0 288c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-288 72 0c9.6 0 18.2-5.7 22-14.5z"]},bh=p0,Iv={prefix:"fas",iconName:"stop",icon:[384,512,[9209],"f04d","M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"]},Ix={prefix:"fas",iconName:"code-merge",icon:[448,512,[],"f387","M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},Px={prefix:"fas",iconName:"upload",icon:[512,512,[],"f093","M288 109.3L288 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-242.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352l128 0c0 35.3 28.7 64 64 64s64-28.7 64-64l128 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},zu={prefix:"fas",iconName:"hurricane",icon:[384,512,[],"f751","M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48A96 96 0 1 0 96 256a96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},cT={prefix:"fas",iconName:"mound",icon:[576,512,[],"e52d","M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z"]},uT={prefix:"fas",iconName:"toilet-portable",icon:[320,512,[],"e583","M0 32L0 64l320 0 0-32c0-17.7-14.3-32-32-32L32 0C14.3 0 0 14.3 0 32zM24 96L0 96l0 24L0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-368 0-24-24 0L24 96zM256 240l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},Ox={prefix:"fas",iconName:"compact-disc",icon:[512,512,[128191,128192,128440],"f51f","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z"]},m4={prefix:"fas",iconName:"file-arrow-down",icon:[384,512,["file-download"],"f56d","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 232l0 102.1 31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31L168 232c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},Kp=m4,Rx={prefix:"fas",iconName:"caravan",icon:[640,512,[],"f8ff","M0 112C0 67.8 35.8 32 80 32l336 0c88.4 0 160 71.6 160 160l0 160 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0-288 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-44.2 0-80-35.8-80-80L0 112zM320 352l128 0 0-96-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 192zM96 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128zm96 336a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},hT={prefix:"fas",iconName:"shield-cat",icon:[512,512,[],"e572","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},Pv={prefix:"fas",iconName:"bolt",icon:[448,512,[9889,"zap"],"f0e7","M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288l111.5 0L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7l-111.5 0L349.4 44.6z"]},D6=Pv,dT={prefix:"fas",iconName:"glass-water",icon:[384,512,[],"e4f4","M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5L66.4 64l251.3 0L311 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L73 156.5z"]},Dx={prefix:"fas",iconName:"oil-well",icon:[576,512,[],"e532","M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6 96 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0L340 257.5l-62.2 16.1L305.3 352l-66.6 0L265 277l-74.6 19.3L137.3 448 96 448l0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32 111.4 0 11.2 32-133.8 0z"]},fT={prefix:"fas",iconName:"vault",icon:[576,512,[],"e2c5","M64 0C28.7 0 0 28.7 0 64L0 416c0 35.3 28.7 64 64 64l16 0 16 32 64 0 16-32 224 0 16 32 64 0 16-32 16 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64L64 0zM224 320a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-240a160 160 0 1 1 0 320 160 160 0 1 1 0-320zM480 221.3L480 336c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-114.7c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z"]},Ov={prefix:"fas",iconName:"mars",icon:[448,512,[9794],"f222","M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8l112 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80s0 0 0 0s0 0 0 0s0 0 0 0zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z"]},Rv={prefix:"fas",iconName:"toilet",icon:[448,512,[128701],"f7d8","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4L416 48l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3c0 0 0-.1 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8c0 0 0 .1 0 .1l0 .3zM328.2 384l-.2 .5 0-.5 .2 0zM112 64l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},Nx={prefix:"fas",iconName:"plane-circle-xmark",icon:[640,512,[],"e557","M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},N6={prefix:"fas",iconName:"yen-sign",icon:[320,512,[165,"cny","jpy","rmb","yen"],"f157","M58.6 46.3C48.8 31.5 29 27.6 14.2 37.4S-4.4 67 5.4 81.8L100.2 224 48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 0 32-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-32 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.2 0L314.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.3z"]},pT=N6,mT=N6,qp=N6,w6=N6,J2={prefix:"fas",iconName:"ruble-sign",icon:[384,512,[8381,"rouble","rub","ruble"],"f158","M96 32C78.3 32 64 46.3 64 64l0 192-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-32 112 0c79.5 0 144-64.5 144-144s-64.5-144-144-144L96 32zM240 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z"]},wx=J2,gT=J2,B6=J2,Bx={prefix:"fas",iconName:"sun",icon:[512,512,[9728],"f185","M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"]},z6={prefix:"fas",iconName:"guitar",icon:[512,512,[],"f7a6","M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},F6={prefix:"fas",iconName:"face-laugh-wink",icon:[512,512,["laugh-wink"],"f59c","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z"]},qS=F6,_T={prefix:"fas",iconName:"horse-head",icon:[640,512,[],"f7ab","M64 464l0-147.1c0-108.4 68.3-205.1 170.5-241.3L404.2 15.5C425.6 7.9 448 23.8 448 46.4c0 11-5.5 21.2-14.6 27.3L400 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4c0 0 0 0-.1 0c0 0 0 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3c0 0 0 0 0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8L112 512c-26.5 0-48-21.5-48-48zM392 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},QS={prefix:"fas",iconName:"bore-hole",icon:[512,512,[],"e4c3","M256 0c-17.7 0-32 14.3-32 32l0 264.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-80 0c-17.7 0-32 14.3-32 32l0 192c0 53-43 96-96 96s-96-43-96-96l0-192c0-17.7-14.3-32-32-32l-80 0z"]},JS={prefix:"fas",iconName:"industry",icon:[576,512,[],"f275","M64 32C46.3 32 32 46.3 32 64l0 240 0 48 0 80c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-128 0-151.8c0-18.2-19.4-29.7-35.4-21.1L352 215.4l0-63.2c0-18.2-19.4-29.7-35.4-21.1L160 215.4 160 64c0-17.7-14.3-32-32-32L64 32z"]},k6={prefix:"fas",iconName:"circle-down",icon:[512,512,[61466,"arrow-alt-circle-down"],"f358","M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM244.7 395.3l-112-112c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l64 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 64 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-112 112c-6.2 6.2-16.4 6.2-22.6 0z"]},zx=k6,$S={prefix:"fas",iconName:"arrows-turn-to-dots",icon:[512,512,[],"e4c1","M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM384 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192A64 64 0 1 1 64 64a64 64 0 1 1 0 128z"]},Fx={prefix:"fas",iconName:"florin-sign",icon:[384,512,[],"e184","M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z"]},U6={prefix:"fas",iconName:"arrow-down-short-wide",icon:[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},Dv=U6,kx=U6,Ux={prefix:"fas",iconName:"less-than",icon:[384,512,[62774],"3c","M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z"]},jx={prefix:"fas",iconName:"angle-down",icon:[448,512,[8964],"f107","M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]},j6={prefix:"fas",iconName:"car-tunnel",icon:[512,512,[],"e4de","M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-112c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7l115.2 0c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6l0 112c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-40-192 0 0 40c0 9.6-4.2 18.1-10.8 24l213.7 0zM190.8 277.5L177 320l158 0-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5l-115.2 0c-3.5 0-6.5 2.2-7.6 5.5zM168 408a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm200-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},Vx={prefix:"fas",iconName:"head-side-cough",icon:[640,512,[],"e061","M0 224.2C0 100.6 100.2 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320s0 0 0 0l0 32L339.2 365.6c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9L448 416l0 16c0 26.5-21.5 48-48 48l-80 0 0 8c0 13.3-10.7 24-24 24l-40 0s0 0 0 0L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm352-.2a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM464 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm152-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM592 480a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 312a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Gx={prefix:"fas",iconName:"grip-lines",icon:[448,512,[],"f7a4","M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z"]},Nv={prefix:"fas",iconName:"thumbs-down",icon:[512,512,[128078,61576],"f165","M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2l144 0c26.5 0 48-21.5 48-48c0-18.5-10.5-34.6-25.9-42.6C497 236.6 504 223.1 504 208c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48l-97.5 0c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7l0 38.3 0 48 0 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 384l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32L32 96C14.3 96 0 110.3 0 128L0 352c0 17.7 14.3 32 32 32z"]},ey={prefix:"fas",iconName:"user-lock",icon:[640,512,[],"f502","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l362.8 0c-5.4-9.4-8.6-20.3-8.6-32l0-128c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7l-91.4 0zM528 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},Wx={prefix:"fas",iconName:"arrow-right-long",icon:[512,512,["long-arrow-right"],"f178","M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"]},ty=Wx,iy={prefix:"fas",iconName:"anchor-circle-xmark",icon:[640,512,[],"e4ac","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},g4={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"]},vT=g4,sy={prefix:"fas",iconName:"chess-pawn",icon:[320,512,[9823],"f443","M215.5 224c29.2-18.4 48.5-50.9 48.5-88c0-57.4-46.6-104-104-104S56 78.6 56 136c0 37.1 19.4 69.6 48.5 88L96 224c-17.7 0-32 14.3-32 32c0 16.5 12.5 30 28.5 31.8L80 400l160 0L227.5 287.8c16-1.8 28.5-15.3 28.5-31.8c0-17.7-14.3-32-32-32l-8.5 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512l242.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L256 432 64 432 22.6 473.4z"]},Qp={prefix:"fas",iconName:"kit-medical",icon:[576,512,["first-aid"],"f479","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l32 0L96 32 64 32zm64 0l0 448 320 0 0-448L128 32zM512 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-32 0 0 448 32 0zM256 176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},AT=Qp,V6={prefix:"fas",iconName:"person-through-window",icon:[640,512,[],"e5a9","M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0l-64 0L64 64zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-45.8 0 42.7 64L592 448c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0L192 384s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},ry={prefix:"fas",iconName:"toolbox",icon:[512,512,[129520],"f552","M176 88l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 80c-4.4 0-8 3.6-8 8zm-48 40l0-40c0-30.9 25.1-56 56-56l144 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 92.1-128 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L0 320l0-92.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1l28.1 0zM0 416l0-64 128 0c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0 0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z"]},wv={prefix:"fas",iconName:"hands-holding-circle",icon:[640,512,[],"e4fb","M320 0a128 128 0 1 1 0 256A128 128 0 1 1 320 0zM40 64c22.1 0 40 17.9 40 40l0 40 0 80 0 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2c0 0 0 0 0 0l25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 224l0-64 0-56C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 56 0 64 0 101.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3c0 0 0 0 0 0l15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3l0-40.2 0-80 0-40c0-22.1 17.9-40 40-40z"]},Jp={prefix:"fas",iconName:"bug",icon:[512,512,[],"f188","M256 0c53 0 96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4l112 0c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5l64.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6L272 240c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 239.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.3 0c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z"]},ny={prefix:"fas",iconName:"credit-card",icon:[576,512,[128179,62083,"credit-card-alt"],"f09d","M64 32C28.7 32 0 60.7 0 96l0 32 576 0 0-32c0-35.3-28.7-64-64-64L64 32zM576 224L0 224 0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192zM112 352l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z"]},ay=ny,_4={prefix:"fas",iconName:"car",icon:[512,512,[128664,"automobile"],"f1b9","M135.2 117.4L109.1 192l293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 144 0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L96 400l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Bv=_4,CT={prefix:"fas",iconName:"hand-holding-hand",icon:[576,512,[],"e4f7","M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32L384 32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-36.8 0-44.9 36c-22.7 18.2-50.9 28-80 28L304 224l-16 0-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-120.6 0L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160c0 0 0 0 0 0l.9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 480 32 480c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z"]},Hx={prefix:"fas",iconName:"book-open-reader",icon:[512,512,["book-reader"],"f5da","M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152l0 264-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427L0 224c0-17.7 14.3-32 32-32l30.3 0c63.6 0 125.6 19.6 177.7 56zm32 264l0-264c52.1-36.4 114.1-56 177.7-56l30.3 0c17.7 0 32 14.3 32 32l0 203c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z"]},xT=Hx,G6={prefix:"fas",iconName:"mountain-sun",icon:[640,512,[],"e52f","M560 160A80 80 0 1 0 560 0a80 80 0 1 0 0 160zM55.9 512l325.2 0 75 0 122.8 0c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z"]},oy={prefix:"fas",iconName:"arrows-left-right-to-line",icon:[640,512,[],"e4ba","M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-320c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},ly={prefix:"fas",iconName:"dice-d20",icon:[512,512,[],"f6cf","M48.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L201.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L47.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM16 171.7l0 123.5c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L40.2 158C29.6 151.6 16 159.3 16 171.7zM310.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L322.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM496 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4l0-123.5zm-49.3 246L286.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9l0 52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM233.2 512c3.7 0 6.8-3 6.8-6.8l0-52.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM41.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L30.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L402.9 238.1c-6.5-10-21.4-9.6-27.3 .8L290.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9l-145.7 0c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM174.4 176l163.2 0c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2l-3.2 0c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z"]},cy={prefix:"fas",iconName:"truck-droplet",icon:[640,512,[],"e58c","M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z"]},bT={prefix:"fas",iconName:"file-circle-xmark",icon:[576,512,[],"e5a1","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"]},uy={prefix:"fas",iconName:"temperature-arrow-up",icon:[576,512,["temperature-up"],"e040","M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L128 112zM176 0C114.1 0 64 50.1 64 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L288 112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3L192 112c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 210.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM480 160l32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288z"]},hy=uy,Yx={prefix:"fas",iconName:"medal",icon:[512,512,[127941],"f5a2","M4.1 38.2C1.4 34.2 0 29.4 0 24.6C0 11 11 0 24.6 0L133.9 0c11.2 0 21.7 5.9 27.4 15.5l68.5 114.1c-48.2 6.1-91.3 28.6-123.4 61.9L4.1 38.2zm503.7 0L405.6 191.5c-32.1-33.3-75.2-55.8-123.4-61.9L350.7 15.5C356.5 5.9 366.9 0 378.1 0L487.4 0C501 0 512 11 512 24.6c0 4.8-1.4 9.6-4.1 13.6zM80 336a176 176 0 1 1 352 0A176 176 0 1 1 80 336zm184.4-94.9c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z"]},C={prefix:"fas",iconName:"bed",icon:[640,512,[128716],"f236","M32 32c17.7 0 32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32l224 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 416l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 46.3 14.3 32 32 32zm144 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},y={prefix:"fas",iconName:"square-h",icon:[448,512,["h-square"],"f0fd","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM336 152l0 104 0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80-128 0 0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80 128 0 0-80c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},B=y,U={prefix:"fas",iconName:"podcast",icon:[448,512,[],"f2ce","M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-144a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"]},Z={prefix:"fas",iconName:"temperature-full",icon:[320,512,["temperature-4","thermometer-4","thermometer-full"],"f2c7","M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 210.7c18.6 6.6 32 24.4 32 45.3z"]},g=Z,v=Z,L=Z,z={prefix:"fas",iconName:"bell",icon:[448,512,[128276,61602],"f0f3","M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416l384 0c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8l0-18.8c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"]},j={prefix:"fas",iconName:"superscript",icon:[512,512,[],"f12b","M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64z"]},J={prefix:"fas",iconName:"plug-circle-xmark",icon:[576,512,[],"e560","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},le={prefix:"fas",iconName:"star-of-life",icon:[512,512,[],"f621","M208 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1 304 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4L208 32z"]},ce={prefix:"fas",iconName:"phone-slash",icon:[640,512,[],"f3dd","M228.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C76.1 30.2 64 46 64 64c0 107.4 37.8 206 100.8 283.1L9.2 469.1c-10.4 8.2-12.3 23.3-4.1 33.7s23.3 12.3 33.7 4.1l592-464c10.4-8.2 12.3-23.3 4.1-33.7s-23.3-12.3-33.7-4.1L253 278c-17.8-21.5-32.9-45.2-45-70.7L257.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96zm96.8 319l-91.3 72C310.7 476 407.1 512 512 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L368.7 368c-15-7.1-29.3-15.2-43-24.3z"]},_e={prefix:"fas",iconName:"paint-roller",icon:[512,512,[],"f5aa","M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64zM160 352c0-17.7 14.3-32 32-32l0-16c0-44.2 35.8-80 80-80l144 0c17.7 0 32-14.3 32-32l0-32 0-90.5c37.3 13.2 64 48.7 64 90.5l0 32c0 53-43 96-96 96l-144 0c-8.8 0-16 7.2-16 16l0 16c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-128z"]},Oe={prefix:"fas",iconName:"handshake-angle",icon:[640,512,["hands-helping"],"f4c4","M544 248l0 3.3 69.7-69.7c21.9-21.9 21.9-57.3 0-79.2L535.6 24.4c-21.9-21.9-57.3-21.9-79.2 0L416.3 64.5c-2.7-.3-5.5-.5-8.3-.5L296 64c-37.1 0-67.6 28-71.6 64l-.4 0 0 120c0 22.1 17.9 40 40 40s40-17.9 40-40l0-72c0 0 0-.1 0-.1l0-15.9 16 0 136 0c0 0 0 0 .1 0l7.9 0c44.2 0 80 35.8 80 80l0 8zM336 192l0 56c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-118.6c-35.9 6.2-65.8 32.3-76 68.2L99.5 255.2 26.3 328.4c-21.9 21.9-21.9 57.3 0 79.2l78.1 78.1c21.9 21.9 57.3 21.9 79.2 0l37.7-37.7c.9 0 1.8 .1 2.7 .1l160 0c26.5 0 48-21.5 48-48c0-5.6-1-11-2.7-16l2.7 0c26.5 0 48-21.5 48-48c0-12.8-5-24.4-13.2-33c25.7-5 45.1-27.6 45.2-54.8l0-.4c-.1-30.8-25.1-55.8-56-55.8c0 0 0 0 0 0l-120 0z"]},Fe=Oe,pt={prefix:"fas",iconName:"location-dot",icon:[384,512,["map-marker-alt"],"f3c5","M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},it=pt,Mt={prefix:"fas",iconName:"file",icon:[384,512,[128196,128459,61462],"f15b","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128z"]},Jt={prefix:"fas",iconName:"greater-than",icon:[384,512,[62769],"3e","M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z"]},Ai={prefix:"fas",iconName:"person-swimming",icon:[576,512,[127946,"swimmer"],"f5c4","M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-26.9 0-52.3 6.6-74.5 18.4zM160 160A64 64 0 1 1 32 160a64 64 0 1 1 128 0zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},Ct=Ai,Ft={prefix:"fas",iconName:"arrow-down",icon:[384,512,[8595],"f063","M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]},ut={prefix:"fas",iconName:"droplet",icon:[384,512,[128167,"tint"],"f043","M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0l1.8 0c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z"]},ni=ut,Ei={prefix:"fas",iconName:"eraser",icon:[576,512,[],"f12d","M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7L288 480l9.4 0L512 480c17.7 0 32-14.3 32-32s-14.3-32-32-32l-124.1 0L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416l-9.4 0-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z"]},ht={prefix:"fas",iconName:"earth-americas",icon:[512,512,[127758,"earth","earth-america","globe-americas"],"f57d","M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5l0 39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9l0 39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7l0-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1L257 256c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},Vt=ht,Et=ht,di=ht,yi={prefix:"fas",iconName:"person-burst",icon:[640,512,[],"e53b","M480 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-223.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9 408 480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.3-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z"]},Gi={prefix:"fas",iconName:"dove",icon:[512,512,[128330],"f4ba","M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6l0-31.5C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144l0 30.6s0 0 0 0l0 1.3s0 0 0 0l0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448l74.4 0c88.4 0 160-71.6 160-160l0-160 29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3L400 64c-44.2 0-80 35.8-80 80zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},_s={prefix:"fas",iconName:"battery-empty",icon:[576,512,["battery-0"],"f244","M80 160c-8.8 0-16 7.2-16 16l0 160c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-160c0-8.8-7.2-16-16-16L80 160zM0 176c0-44.2 35.8-80 80-80l384 0c44.2 0 80 35.8 80 80l0 16c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 16c0 44.2-35.8 80-80 80L80 416c-44.2 0-80-35.8-80-80L0 176z"]},$s=_s,br={prefix:"fas",iconName:"socks",icon:[512,512,[129510],"f696","M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6l0-144L128 96l0 144c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64l160 0 0-16c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0L176 0c-26.5 0-48 21.5-48 48l0 16zM320 96l0 144c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304l0-208L320 96zM512 64l0-16c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 16 192 0z"]},Ks={prefix:"fas",iconName:"inbox",icon:[512,512,[],"f01c","M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-92.1c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32L121 32zm0 64l270 0 48 192-51.2 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L73 288 121 96z"]},kn={prefix:"fas",iconName:"section",icon:[256,512,[],"e447","M64.9 96C67.1 84.4 73.7 76.2 86 70.6c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8C123-2.7 88.3-.6 59.7 12.3C29.9 25.8 7.5 50.9 1.6 86.5c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C22.3 194.2 6.5 215.1 1.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31c0 0 0 0 0 0l3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2c0 0 0 0 0 0c-4.3-1.5-8.5-2.9-12.3-4.2C25.3 420 7.2 429.1 1.6 445.8s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6c0 0 0 0 0 0l.2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5l-.6-.2-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z"]},Ns={prefix:"fas",iconName:"gauge-high",icon:[512,512,[62461,"tachometer-alt","tachometer-alt-fast"],"f625","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},sn=Ns,qa=Ns,co={prefix:"fas",iconName:"envelope-open-text",icon:[512,512,[],"f658","M215.4 96L144 96l-36.2 0L96 96l0 8.8L96 144l0 40.4 0 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3 48 96c0-26.5 21.5-48 48-48l76.6 0 49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48 416 48c26.5 0 48 21.5 48 48l0 44.3 22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4l0-89 0-40.4 0-39.2 0-8.8-11.8 0L368 96l-71.4 0-81.3 0zM0 448L0 242.1 217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1 512 448s0 0 0 0c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64c0 0 0 0 0 0zM176 160l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},hl={prefix:"fas",iconName:"hospital",icon:[640,512,[127973,62589,"hospital-alt","hospital-wide"],"f0f8","M192 48c0-26.5 21.5-48 48-48L400 0c26.5 0 48 21.5 48 48l0 464-80 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-80 0 0-464zM48 96l112 0 0 416L48 512c-26.5 0-48-21.5-48-48L0 320l80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 288l0-64 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 192l0-48c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 144c0 26.5-21.5 48-48 48l-112 0 0-416 112 0zM312 64c-8.8 0-16 7.2-16 16l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0z"]},uo=hl,m0=hl,W6={prefix:"fas",iconName:"wine-bottle",icon:[512,512,[],"f72f","M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z"]},ST={prefix:"fas",iconName:"chess-rook",icon:[448,512,[9820],"f447","M32 192L32 48c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 40c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-40c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 40c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-40c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 144c0 10.1-4.7 19.6-12.8 25.6L352 256l16 144L80 400 96 256 44.8 217.6C36.7 211.6 32 202.1 32 192zm176 96l32 0c8.8 0 16-7.2 16-16l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 8.8 7.2 16 16 16zM22.6 473.4L64 432l320 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L38.6 512C26.1 512 16 501.9 16 489.4c0-6 2.4-11.8 6.6-16z"]},U1={prefix:"fas",iconName:"bars-staggered",icon:[512,512,["reorder","stream"],"f550","M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"]},nI=U1,Pz=U1,Oz={prefix:"fas",iconName:"dharmachakra",icon:[512,512,[9784],"f655","M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.5-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Rz={prefix:"fas",iconName:"hotdog",icon:[512,512,[127789],"f80f","M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9c0 0 0 0 0 0s0 0 0 0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4c0 0 0 0 0 0l-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z"]},M9={prefix:"fas",iconName:"person-walking-with-cane",icon:[512,512,["blind"],"f29d","M176 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6l0 43.2c0 17 6.7 33.3 18.7 45.3L224 397.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-89.4c0-12.7-5.1-24.9-14.1-33.9L224 306.7l0-93.4 70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128l-24.4 0zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z"]},Dz=M9,Nz={prefix:"fas",iconName:"drum",icon:[512,512,[129345],"f569","M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96C114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C458.4 181.8 464 197.4 464 208c0 .8-2.7 17.2-46 35.9C379.1 260.7 322 272 256 272s-123.1-11.3-162-28.1C50.7 225.2 48 208.8 48 208c0-10.6 5.6-26.2 44.4-41.3C130.6 151.9 187.8 144 256 144c18 0 35.1 .5 51.4 1.6z"]},wz={prefix:"fas",iconName:"ice-cream",icon:[448,512,[127848],"f810","M367.1 160c.6-5.3 .9-10.6 .9-16C368 64.5 303.5 0 224 0S80 64.5 80 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l53.5 0 181 0 53.5 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM96 288L200.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L352 288 96 288z"]},Bz={prefix:"fas",iconName:"heart-circle-bolt",icon:[576,512,[],"e4fc","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"]},mR={prefix:"fas",iconName:"fax",icon:[512,512,[128224,128439],"f1ac","M128 64l0 96 64 0 0-96 194.7 0L416 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0L192 0c-35.3 0-64 28.7-64 64zM0 160L0 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32zm480 32l-352 0 0 288c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM256 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},zz={prefix:"fas",iconName:"paragraph",icon:[448,512,[182],"f1dd","M192 32l64 0 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0c-88.4 0-160-71.6-160-160s71.6-160 160-160z"]},gR={prefix:"fas",iconName:"check-to-slot",icon:[576,512,["vote-yea"],"f772","M96 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 304L96 384 96 80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48l16 0 0 128 448 0 0-128 16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-96z"]},Fz=gR,kz={prefix:"fas",iconName:"star-half",icon:[576,512,[61731],"f089","M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8 288 0zM429.9 512c1.1 .1 2.1 .1 3.2 0l-3.2 0z"]},aI={prefix:"fas",iconName:"boxes-stacked",icon:[576,512,[62625,"boxes","boxes-alt"],"f468","M248 0L208 0c-26.5 0-48 21.5-48 48l0 112c0 35.3 28.7 64 64 64l128 0c35.3 0 64-28.7 64-64l0-112c0-26.5-21.5-48-48-48L328 0l0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80zM64 256c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-40 0 0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80-40 0zM352 512l160 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-40 0 0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80-40 0c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2l0 160c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z"]},Uz=aI,_R=aI,vR={prefix:"fas",iconName:"link",icon:[640,512,[128279,"chain"],"f0c1","M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"]},jz=vR,E9={prefix:"fas",iconName:"ear-listen",icon:[512,512,["assistive-listening-systems"],"f2a2","M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1c0 0 0 0-.1 0c0 0 0 0 0 0L384 32 398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78l0 6.1c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112l0-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM192 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z"]},Vz=E9,Gz={prefix:"fas",iconName:"tree-city",icon:[640,512,[],"e587","M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 144 40 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 24 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0-96 0c-26.5 0-48-21.5-48-48l0-416zm64 32l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 272l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80l-16 0 0 160c0 18-15 32-32 32c-18 0-32-14-32-32l0-160-16 0c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z"]},AR={prefix:"fas",iconName:"play",icon:[384,512,[9654],"f04b","M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80L0 432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z"]},Wz={prefix:"fas",iconName:"font",icon:[448,512,[],"f031","M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416 32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-1.8 0 18-48 159.6 0 18 48-1.8 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-25.8 0L254 52.8zM279.8 304l-111.6 0L224 155.1 279.8 304z"]},CR={prefix:"fas",iconName:"table-cells-row-lock",icon:[640,512,[],"e67a","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 224l0 64 88 0 0-64-88 0zm232 0l-88 0 0 64 88 0 0-64zM152 352l-88 0 0 64 88 0 0-64zm56 0l0 64 88 0 0-64-88 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"]},Hz={prefix:"fas",iconName:"rupiah-sign",icon:[512,512,[],"e23d","M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160zm256-96l80 0c61.9 0 112 50.1 112 112s-50.1 112-112 112l-48 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128 0-160c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z"]},xR={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},Yz=xR,oI={prefix:"fas",iconName:"table-tennis-paddle-ball",icon:[512,512,[127955,"ping-pong-paddle-ball","table-tennis"],"f45d","M416 288c-50.1 0-93.6 28.8-114.6 70.8L68.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C471.8 297.6 445 288 416 288zM49.3 151.9L290.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3l-2.7 0c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L88.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32C3.1 464.3-.3 455.7 0 446.9s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8C45.5 285.5 32 252.9 32 219l0-2.7c0-22.8 6.1-44.9 17.3-64.3zM416 320a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},Xz=oI,Zz=oI,lI={prefix:"fas",iconName:"person-dots-from-line",icon:[576,512,["diagnoses"],"f470","M288 176A88 88 0 1 0 288 0a88 88 0 1 0 0 176zM78.7 372.9c15-12.5 50-34.4 97.3-50.1L176 432l224 0 0-109.3c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l528 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464zM224 280a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM96 240a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm368 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},Kz=lI,T9={prefix:"fas",iconName:"trash-can-arrow-up",icon:[448,512,["trash-restore-alt"],"f82a","M163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L200 408c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z"]},qz=T9,Qz={prefix:"fas",iconName:"naira-sign",icon:[448,512,[],"e1f6","M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 100.2 0 97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6l0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0L122.6 46.3zM305.1 320l14.9 0 0 22.3L305.1 320zM185.5 256L128 256l0-86.3L185.5 256z"]},bR={prefix:"fas",iconName:"cart-arrow-down",icon:[576,512,[],"f218","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l45.5 0c3.8 0 7.1 2.7 7.9 6.5l51.6 271c6.5 34 36.2 58.5 70.7 58.5L488 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-288.3 0c-11.5 0-21.4-8.2-23.6-19.5L170.7 288l288.5 0c32.6 0 61.1-21.8 69.5-53.3l41-152.3C576.6 57 557.4 32 531.1 32L360 32l0 102.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L312 32 120.1 32C111 12.8 91.6 0 69.5 0L24 0zM176 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm336-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},Jz={prefix:"fas",iconName:"walkie-talkie",icon:[384,512,[],"f8ef","M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24l0 72L48 96C21.5 96 0 117.5 0 144L0 300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9L32 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-92.1c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9L384 144c0-26.5-21.5-48-48-48l-16 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l-32 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l-48 0 0-72zm0 136l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},cI={prefix:"fas",iconName:"file-pen",icon:[576,512,[128221,"file-edit"],"f31c","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 125.7-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"]},$z=cI,eF={prefix:"fas",iconName:"receipt",icon:[384,512,[129534],"f543","M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.3-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 144zM80 352c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 336c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 240z"]},uI={prefix:"fas",iconName:"square-pen",icon:[448,512,["pen-square","pencil-square"],"f14b","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"]},tF=uI,SR=uI,iF={prefix:"fas",iconName:"suitcase-rolling",icon:[384,512,[],"f5c1","M144 56c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zm176 72l-32 0 0-72c0-30.9-25.1-56-56-56L152 0C121.1 0 96 25.1 96 56l0 72-32 0c-35.3 0-64 28.7-64 64L0 416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64zM112 224l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},sF={prefix:"fas",iconName:"person-circle-exclamation",icon:[576,512,[],"e53f","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"]},hI={prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]},dI={prefix:"fas",iconName:"battery-full",icon:[576,512,[128267,"battery","battery-5"],"f240","M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm368 96L96 192l0 128 352 0 0-128z"]},rF=dI,nF=dI,aF={prefix:"fas",iconName:"skull-crossbones",icon:[448,512,[128369,9760],"f714","M368 128c0 44.4-25.4 83.5-64 106.4l0 21.6c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-21.6c-38.6-23-64-62.1-64-106.4C80 57.3 144.5 0 224 0s144 57.3 144 128zM168 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM3.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L224 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L295.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L224 419.8 46.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L152.4 384 17.7 316.6C1.9 308.7-4.5 289.5 3.4 273.7z"]},oF={prefix:"fas",iconName:"code-compare",icon:[512,512,[],"e13a","M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9l0 40 16 0c35.3 0 64-28.7 64-64l0-166.7C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L464 320c0 70.7-57.3 128-128 128l-16 0 0 40zM456 80a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9l0-40-16 0c-35.3 0-64 28.7-64 64l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L48 192c0-70.7 57.3-128 128-128l16 0 0-40zM56 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z"]},L9={prefix:"fas",iconName:"list-ul",icon:[512,512,["list-dots"],"f0ca","M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},lF=L9,cF={prefix:"fas",iconName:"school-lock",icon:[640,512,[],"e56f","M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0L473.7 96 592 96c26.5 0 48 21.5 48 48l0 128c0-61.9-50.1-112-112-112s-112 50.1-112 112l0 24.6c-19.1 11.1-32 31.7-32 55.4l-63.7 0-.3 0c-35.3 0-64 28.7-64 64l0 96 64 0s0 0 0 0L48 512c-26.5 0-48-21.5-48-48L0 144c0-26.5 21.5-48 48-48l118.3 0L302.2 5.4zM80 208l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 128l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-72a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm16-120l0 16 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"]},uF={prefix:"fas",iconName:"tower-cell",icon:[576,512,[],"e585","M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448l220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384l-162.4 0 14.5-32 133.3 0 14.5 32zM288 205.3L325.6 288l-75.2 0L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z"]},yR={prefix:"fas",iconName:"down-long",icon:[320,512,["long-arrow-alt-down"],"f309","M2 334.5c-3.8 8.8-2 19 4.6 26l136 144c4.5 4.8 10.8 7.5 17.4 7.5s12.9-2.7 17.4-7.5l136-144c6.6-7 8.4-17.2 4.6-26s-12.5-14.5-22-14.5l-72 0 0-288c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32l0 288-72 0c-9.6 0-18.2 5.7-22 14.5z"]},MR=yR,hF={prefix:"fas",iconName:"ranking-star",icon:[640,512,[],"e561","M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-128 0zM32 320c-17.7 0-32 14.3-32 32L0 480c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L32 320zm416 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z"]},dF={prefix:"fas",iconName:"chess-king",icon:[448,512,[9818],"f43f","M224 0c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 48 152 0c22.1 0 40 17.9 40 40c0 5.3-1 10.5-3.1 15.4L368 400 80 400 3.1 215.4C1 210.5 0 205.3 0 200c0-22.1 17.9-40 40-40l152 0 0-48-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-16c0-17.7 14.3-32 32-32zM38.6 473.4L80 432l288 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L54.6 512C42.1 512 32 501.9 32 489.4c0-6 2.4-11.8 6.6-16z"]},fF={prefix:"fas",iconName:"person-harassing",icon:[576,512,[],"e549","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z"]},ER={prefix:"fas",iconName:"brazilian-real-sign",icon:[512,512,[],"e46c","M400 0c17.7 0 32 14.3 32 32l0 18.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5l-1.7 0c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4l0 3.4c0 51.2-33.6 94.6-80 109.2l0 21.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-19.4c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5l0-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2L368 32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160z"]},TR={prefix:"fas",iconName:"landmark-dome",icon:[512,512,["landmark-alt"],"f752","M248 0l16 0c13.3 0 24 10.7 24 24l0 10.7C368.4 48.1 431.9 111.6 445.3 192l2.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 256c-17.7 0-32-14.3-32-32s14.3-32 32-32l2.7 0C80.1 111.6 143.6 48.1 224 34.7L224 24c0-13.3 10.7-24 24-24zM64 288l64 0 0 128 40 0 0-128 64 0 0 128 48 0 0-128 64 0 0 128 40 0 0-128 64 0 0 132.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 288z"]},pF=TR,mF={prefix:"fas",iconName:"arrow-up",icon:[384,512,[8593],"f062","M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"]},fI={prefix:"fas",iconName:"tv",icon:[640,512,[63717,"television","tv-alt"],"f26c","M64 64l0 288 512 0 0-288L64 64zM0 64C0 28.7 28.7 0 64 0L576 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 416c-35.3 0-64-28.7-64-64L0 64zM128 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},gF=fI,LR=fI,_F={prefix:"fas",iconName:"shrimp",icon:[512,512,[129424],"e448","M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64l1 0c3.7 88.9 77 160 167 160l56 0 0-192-24 0L88.8 128 64 128c-17.7 0-32-14.3-32-32s14.3-32 32-32l400 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L64 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},IR={prefix:"fas",iconName:"list-check",icon:[512,512,["tasks"],"f0ae","M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},pI=IR,vF={prefix:"fas",iconName:"jug-detergent",icon:[384,512,[],"e519","M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72s10.7-24 24-24l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},PR={prefix:"fas",iconName:"circle-user",icon:[512,512,[62142,"user-circle"],"f2bd","M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z"]},AF=PR,OR={prefix:"fas",iconName:"user-shield",icon:[640,512,[],"f505","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3l-91.4 0zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7l0-187.8L591.4 312z"]},CF={prefix:"fas",iconName:"wind",icon:[512,512,[],"f72e","M288 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c53 0 96-43 96-96s-43-96-96-96L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l32 0c53 0 96-43 96-96s-43-96-96-96L32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z"]},RR={prefix:"fas",iconName:"car-burst",icon:[640,512,["car-crash"],"f5e1","M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zm-17 131a24 24 0 1 1 -12.4 46.4 24 24 0 1 1 12.4-46.4zm217.9 83.2A24 24 0 1 1 545 358.1a24 24 0 1 1 -46.4-12.4z"]},DR=RR,xF={prefix:"fas",iconName:"y",icon:[384,512,[121],"59","M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z"]},NR={prefix:"fas",iconName:"person-snowboarding",icon:[512,512,[127938,"snowboarding"],"f7ce","M209.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6l28.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-28.2 0c-10.8 0-21.4-2-31.5-5.8L60.1 371.3c-11.5-4.4-22-11.2-30.8-20L7 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L192 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM139 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.3-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L139 350.1zM432 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},bF=NR,mI={prefix:"fas",iconName:"truck-fast",icon:[640,512,["shipping-fast"],"f48b","M112 0C85.5 0 64 21.5 64 48l0 48L16 96c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 208 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 160l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0 176 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 224l-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 288l0 128c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64 0-32 0-18.7c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7L416 96l0-48c0-26.5-21.5-48-48-48L112 0zM544 237.3l0 18.7-128 0 0-96 50.7 0L544 237.3zM160 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},SF=mI,yF={prefix:"fas",iconName:"fish",icon:[576,512,[128031],"f578","M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},wR={prefix:"fas",iconName:"user-graduate",icon:[448,512,[],"f501","M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9l0 57.1c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-57.1L48 93.3l0 65.1 15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9l-32 0c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4l0-71.8C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z"]},BR={prefix:"fas",iconName:"circle-half-stroke",icon:[512,512,[9680,"adjust"],"f042","M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},zR=BR,MF={prefix:"fas",iconName:"clapperboard",icon:[512,512,[],"e131","M448 32l-86.1 0-1 1-127 127 92.1 0 1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128l0-64c0-15.1-5.3-29.1-14-40l-104 104L512 160zM294.1 32l-92.1 0-1 1L73.9 160l92.1 0 1-1 127-127zM64 32C28.7 32 0 60.7 0 96l0 64 6.1 0 1-1 127-127L64 32zM512 192L0 192 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224z"]},FR={prefix:"fas",iconName:"circle-radiation",icon:[512,512,[9762,"radiation-alt"],"f7ba","M256 64a192 192 0 1 1 0 384 192 192 0 1 1 0-384zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},EF=FR,gI={prefix:"fas",iconName:"baseball",icon:[512,512,[129358,9918,"baseball-ball"],"f433","M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z"]},TF=gI,LF={prefix:"fas",iconName:"jet-fighter-up",icon:[512,512,[],"e518","M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2l0 77-144 84L48 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 56 0 32 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 144 0 0 32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12l0 16c0 8.8 7.2 16 16 16l96 0 0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64 96 0c8.8 0 16-7.2 16-16l0-16c0-4.6-2-9-5.5-12L320 416.7l0-32.7 144 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 0-32 0-56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 18.8-144-84 0-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z"]},_I={prefix:"fas",iconName:"diagram-project",icon:[576,512,["project-diagram"],"f542","M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 192 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-192 0 0 16c0 1.7-.1 3.4-.3 5L272 288l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-1.7 .1-3.4 .3-5L144 224l-96 0c-26.5 0-48-21.5-48-48L0 80z"]},IF=_I,kR={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"]},vI={prefix:"fas",iconName:"volume-xmark",icon:[576,512,["volume-mute","volume-times"],"f6a9","M301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"]},PF=vI,UR=vI,OF={prefix:"fas",iconName:"hand-sparkles",icon:[640,512,[],"e05d","M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 195.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z"]},jR={prefix:"fas",iconName:"grip",icon:[448,512,["grip-horizontal"],"f58d","M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm32-192l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm32-192l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z"]},AI=jR,VR={prefix:"fas",iconName:"share-from-square",icon:[576,512,[61509,"share-square"],"f14d","M352 224l-46.5 0c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8l-2.5 0c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144l80 0 0-61.3C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2l-3.7 0c-17.7 0-32-14.3-32-32l0-64zM80 96c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 112C0 67.8 35.8 32 80 32l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 96z"]},RF=VR,GR={prefix:"fas",iconName:"child-combatant",icon:[576,512,["child-rifle"],"e4e0","M176 128A64 64 0 1 0 176 0a64 64 0 1 0 0 128zm-8 352l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-179.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9l-12.3 0c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5 104 480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0L432 0 416 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9L484 400l44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3L480 160c0-11.8-6.4-22.2-16-27.7L464 16c0-8.8-7.2-16-16-16z"]},WR=GR,DF={prefix:"fas",iconName:"gun",icon:[576,512,[],"e19b","M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8L32 64C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352l104.5 0c23.7 0 44.8-14.9 52.7-37.2L400.9 240l31.1 0c8.5 0 16.6-3.4 22.6-9.4L477.3 208l66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304L229 304l16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},CI={prefix:"fas",iconName:"square-phone",icon:[448,512,["phone-square"],"f098","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z"]},NF=CI,xI={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"]},wF=xI,BF={prefix:"fas",iconName:"expand",icon:[448,512,[],"f065","M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z"]},HR={prefix:"fas",iconName:"computer",icon:[640,512,[],"e4e5","M384 96l0 224L64 320 64 96l320 0zM64 32C28.7 32 0 60.7 0 96L0 320c0 35.3 28.7 64 64 64l117.3 0-10.7 32L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-74.7 0-10.7-32L384 384c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L64 32zm464 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0zm16 64l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},yT={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},YR=yT,zF=yT,FF=yT,kF=yT,dy={prefix:"fas",iconName:"arrows-up-down-left-right",icon:[512,512,["arrows"],"f047","M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4L224 224l-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L224 288l0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4L288 288l114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L288 224l0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z"]},UF=dy,XR={prefix:"fas",iconName:"chalkboard-user",icon:[640,512,["chalkboard-teacher"],"f51c","M160 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-239.2 0c-11.8-25.5-29.9-47.5-52.4-64l99.6 0 0-32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 32 64 0 0-288L224 64l0 49.1C205.2 102.2 183.3 96 160 96l0-32zm0 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM133.3 352l53.3 0C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7L26.7 512C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z"]},jF=XR,VF={prefix:"fas",iconName:"peso-sign",icon:[384,512,[],"e222","M64 32C46.3 32 32 46.3 32 64l0 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c68.4 0 127.7-39 156.8-96l19.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.7 0c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16l.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-19.2 0C303.7 71 244.4 32 176 32L64 32zm190.4 96L96 128l0-32 80 0c30.5 0 58.2 12.2 78.4 32zM96 192l190.9 0c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16L96 224l0-32zm158.4 96c-20.2 19.8-47.9 32-78.4 32l-80 0 0-32 158.4 0z"]},ZR={prefix:"fas",iconName:"building-shield",icon:[576,512,[],"e4d8","M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 159-42.4 17L304 224l-32 0c-8.8 0-16 7.2-16 16l0 32 0 24.2 0 7.8c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8l0 187.8c68.2-33 91.5-99 95.4-149.7z"]},GF={prefix:"fas",iconName:"baby",icon:[448,512,[],"f77c","M152 88a72 72 0 1 1 144 0A72 72 0 1 1 152 88zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z"]},KR={prefix:"fas",iconName:"users-line",icon:[640,512,[],"e592","M211.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM32 256c0 17.7 14.3 32 32 32l85.6 0c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4l-96 0c-35.3 0-64 28.7-64 64zm461.6 32l82.4 0c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64l-96 0c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4l-96 0c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM321.6 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z"]},qR={prefix:"fas",iconName:"quote-left",icon:[448,512,[8220,"quote-left-alt"],"f10d","M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-32 0-32 0-72zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-32 0-32 0-72z"]},WF=qR,HF={prefix:"fas",iconName:"tractor",icon:[640,512,[128668],"f722","M96 64c0-35.3 28.7-64 64-64L266.3 0c26.2 0 49.7 15.9 59.4 40.2L373.7 160 480 160l0-33.8c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9l0 33.8 56 0c22.1 0 40 17.9 40 40l0 45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48l-80 0c0 17.7-14.3 32-32 32l-8.2 0c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8l0 8.2c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1L32 384c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l8.2 0c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6l0-.6 0-32 0-96zm170.3 0L160 64l0 96 32 0 112.7 0L266.3 64zM176 256a80 80 0 1 0 0 160 80 80 0 1 0 0-160zM528 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z"]},QR={prefix:"fas",iconName:"trash-arrow-up",icon:[448,512,["trash-restore"],"f829","M163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128l384 0L394.8 467c-1.6 25.3-22.6 45-47.9 45l-245.8 0c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L200 408c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z"]},YF=QR,JR={prefix:"fas",iconName:"arrow-down-up-lock",icon:[640,512,[],"e4b0","M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 160 288l256 0 0-16c0-17.2 3.9-33.5 10.8-48L352 224l0-114.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3 288 224l-128 0-64 0-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 114.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128 64 0zM288 320l0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128-64 0zm240-80c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},XF={prefix:"fas",iconName:"lines-leaning",icon:[384,512,[],"e51e","M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z"]},ZF={prefix:"fas",iconName:"ruler-combined",icon:[512,512,[],"f546","M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z"]},$R={prefix:"fas",iconName:"copyright",icon:[512,512,[169],"f1f9","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z"]},KF={prefix:"fas",iconName:"equals",icon:[448,512,[62764],"3d","M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 320z"]},qF={prefix:"fas",iconName:"blender",icon:[512,512,[],"f517","M0 64C0 28.7 28.7 0 64 0l64 0 32 0L470.1 0c21.1 0 36.4 20.1 30.9 40.4L494.5 64 336 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l149.8 0-17.5 64L336 160c-8.8 0-16 7.2-16 16s7.2 16 16 16l123.6 0-17.5 64L336 256c-8.8 0-16 7.2-16 16s7.2 16 16 16l97.5 0L416 352l-256 0-8.7-96L64 256c-35.3 0-64-28.7-64-64L0 64zM145.5 192L133.8 64 64 64l0 128 81.5 0zM144 384l288 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},QF={prefix:"fas",iconName:"teeth",icon:[576,512,[],"f62e","M0 128C0 75 43 32 96 32l384 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 128zm176 48l0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48l0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56c0-26.5-21.5-48-48-48zM48 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24zm176 48c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48zm80-176l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48z"]},MT={prefix:"fas",iconName:"shekel-sign",icon:[448,512,[8362,"ils","shekel","sheqel","sheqel-sign"],"f20b","M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 96l128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z"]},JF=MT,$F=MT,ek=MT,tk=MT,ET={prefix:"fas",iconName:"map",icon:[576,512,[128506,62072],"f279","M384 476.1L192 421.2l0-385.3L384 90.8l0 385.3zm32-1.2l0-386.5L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3l0 334.8c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2l0 386.5L32.9 474.5C17.1 480.8 0 469.2 0 452.2L0 117.4c0-9.8 6-18.6 15.1-22.3z"]},ik={prefix:"fas",iconName:"rocket",icon:[512,512,[],"f135","M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2l0 82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9l0-107.2c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},eD={prefix:"fas",iconName:"photo-film",icon:[640,512,["photo-video"],"f87c","M256 0L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l80 0 48 0 144 0c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128l96 0 0 256 0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32 160 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm336 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z"]},sk=eD,rk={prefix:"fas",iconName:"folder-minus",icon:[512,512,[],"f65d","M448 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"]},nk={prefix:"fas",iconName:"hexagon-nodes-bolt",icon:[576,512,[],"e69a","M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56c30.7 0 55.6-24.7 56-55.2c-7.5-12.9-13.5-26.8-17.6-41.5c-4.2-4-9.1-7.3-14.4-9.9l0-98.8c2.8-1.3 5.5-2.9 8-4.7l10.5 6c5.5-15.3 13.1-29.5 22.4-42.5l-9.1-5.2c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8zM440.5 132C425 105.2 390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c.4 .3 .8 .6 1.3 .9c21.7-9.5 45.6-14.8 70.8-14.8c2 0 4 0 5.9 .1c12.1-17.3 13.8-40.6 2.6-60.1zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"]},ak={prefix:"fas",iconName:"store",icon:[576,512,[],"f54e","M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0L109.6 0C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9c0 0 0 0-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3L448 384l-320 0 0-133.4c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3L64 384l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64 0-131.4c-4 1-8 1.8-12.3 2.3z"]},tD={prefix:"fas",iconName:"arrow-trend-up",icon:[576,512,[],"e098","M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z"]},ok={prefix:"fas",iconName:"plug-circle-minus",icon:[576,512,[],"e55e","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z"]},iD={prefix:"fas",iconName:"sign-hanging",icon:[512,512,["sign"],"f4d9","M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zm96 160l256 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z"]},lk=iD,ck={prefix:"fas",iconName:"bezier-curve",icon:[640,512,[],"f55b","M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4L121.6 84C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36L400 84l0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z"]},uk={prefix:"fas",iconName:"bell-slash",icon:[640,512,[128277,61943],"f1f6","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-90.2-70.7c.2-.4 .4-.9 .6-1.3c5.2-11.5 3.1-25-5.3-34.4l-7.4-8.3C497.3 319.2 480 273.9 480 226.8l0-18.8c0-77.4-55-142-128-156.8L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 19.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM406.2 416L160 222.1l0 4.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S115.4 416 128 416l278.2 0zm-40.9 77.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"]},sD={prefix:"fas",iconName:"tablet",icon:[448,512,["tablet-android"],"f3fb","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 432l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},rD=sD,hk={prefix:"fas",iconName:"school-flag",icon:[576,512,[],"e56e","M288 0L400 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-79.3 0 89.6 64L512 160c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-176 0 0-112c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 112L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l101.7 0L256 95.5 256 32c0-17.7 14.3-32 32-32zm48 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM80 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0zm368 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0zm384 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0z"]},dk={prefix:"fas",iconName:"fill",icon:[512,512,[],"f575","M86.6 9.4C74.1-3.1 53.9-3.1 41.4 9.4s-12.5 32.8 0 45.3L122.7 136 30.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L148.1 481.4c37.5 37.5 98.3 37.5 135.8 0L474.3 290.9c28.1-28.1 28.1-73.7 0-101.8L322.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L168 90.7 86.6 9.4zM168 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L429.1 234.3c3.1 3.1 3.1 8.2 0 11.3L386.7 288 67.5 288c1.4-5.4 4.2-10.4 8.4-14.6L168 181.3z"]},fk={prefix:"fas",iconName:"angle-up",icon:[448,512,[8963],"f106","M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"]},nD={prefix:"fas",iconName:"drumstick-bite",icon:[512,512,[],"f6d7","M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176l0 89.2z"]},pk={prefix:"fas",iconName:"holly-berry",icon:[512,512,[],"f7aa","M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},mk={prefix:"fas",iconName:"chevron-left",icon:[320,512,[9001],"f053","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z"]},gk={prefix:"fas",iconName:"bacteria",icon:[640,512,[],"e059","M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-4.3 15.2c-8.3-.6-16.8 0-25.2 1.9c-7.3 1.7-14.3 3.5-21.1 5.5l-5.5-12.7c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l4.4 10.4c-16.6 6.7-31.7 14.4-45.4 22.8L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l6 9c-13.7 11-25.5 22.8-35.8 34.9l-10-8c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L65.9 155c-1.8 2.8-3.5 5.7-5.1 8.5c-6.6 11.4-11.8 22.6-16 33l-8-3.2c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l10.4 4.2c-.2 .8-.4 1.5-.5 2.3c-2.2 9.3-3.4 17.3-4.1 23.4c-.4 3.1-.6 5.7-.8 7.8c-.1 1.1-.1 2-.2 2.8l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.1 1c0 0 0 0-.1 0L28 269.3c-.1 3.1 0 6.1 .2 9.1l-15.2 4.3C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l15.6-4.5c7.6 13.6 18.9 25 32.6 32.6L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l4.3-15.2c1.2 .1 2.4 .2 3.6 .2c15.6 .5 30.3-3.3 43-10.2l9 9c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-7.2-7.2c9.3-12.6 15.2-27.8 16.3-44.5l7.1 3c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.6-3.7c6.4-9.9 17.3-22.4 36.9-33.3l1.3 4.4c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-2.3-8.1c3.8-1.1 7.7-2.1 11.9-3.1c11.6-2.7 22.1-7.7 31.1-14.4l7.2 7.2c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-9-9c7.6-13.9 11.3-30.1 10.1-46.6l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-15.6 4.5c-7.7-13.9-19.1-25.1-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3zM112 272l-48-1.5c0 0 0 0 0 0c11.7 .4 27.3 .9 48 1.6zm16-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-48a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM322.7 489c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l4.3-15.2c8.3 .6 16.8 0 25.2-1.9c7.3-1.7 14.3-3.5 21.1-5.5l5.5 12.7c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-4.4-10.4c16.6-6.7 31.7-14.4 45.4-22.8L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-6-9c13.7-11 25.5-22.8 35.8-34.9l10 8c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574.1 357c1.8-2.8 3.5-5.7 5.1-8.5c6.6-11.4 11.8-22.6 16-33l8 3.2c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-10.4-4.2c.2-.8 .4-1.5 .5-2.3c2.2-9.3 3.4-17.3 4.1-23.4c.4-3.1 .6-5.7 .8-7.8c.1-1.1 .1-2 .2-2.8l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.1-1c0 0 0 0 .1 0l29.1 .9c.1-3.1 0-6.1-.2-9.1l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-15.6 4.5c-7.6-13.6-18.9-25-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.3 12.4l-4.3 15.2c-1.2-.1-2.4-.2-3.6-.2c-15.6-.5-30.3 3.3-43 10.2l-9-9c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l7.2 7.2c-9.3 12.6-15.2 27.8-16.3 44.5l-7.1-3c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.6 3.7c-6.4 9.9-17.3 22.4-36.9 33.3l-1.3-4.4c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l2.3 8.1c-3.8 1.1-7.7 2.1-11.9 3.1c-11.6 2.7-22.1 7.7-31.1 14.4l-7.2-7.2c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l9 9c-7.6 13.9-11.3 30.1-10.1 46.6l-15.2 4.3c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l15.6-4.5c7.7 13.9 19.1 25.1 32.6 32.6L322.7 489zM576 241.5c0 0 0 0 0 0c-11.7-.4-27.3-.9-48-1.6l48 1.5zM448 384a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z"]},_k={prefix:"fas",iconName:"hand-lizard",icon:[512,512,[],"f258","M0 112C0 85.5 21.5 64 48 64l112 0 80 0 46.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 12 0 16 0 48c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8L273.9 352 240 352l-80 0-48 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l48 0 80 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-80 0L48 160c-26.5 0-48-21.5-48-48z"]},vk={prefix:"fas",iconName:"notdef",icon:[384,512,[],"e1fe","M64 390.3L153.5 256 64 121.7l0 268.6zM102.5 448l179.1 0L192 313.7 102.5 448zm128-192L320 390.3l0-268.6L230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z"]},Ak={prefix:"fas",iconName:"disease",icon:[512,512,[],"f7fa","M236.4 61.4L227 75.5c-21.3 32-59.4 48.5-97.3 42.1l-59.6-9.9C33.4 101.6 0 129.9 .1 167.1c0 15.9 6.4 31.2 17.6 42.5l29.2 29.2c11 11 17.2 25.9 17.2 41.5c0 15.8-6.4 30.9-17.7 42L33.3 335.1C22.2 345.9 16 360.7 16 376.2c0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6l10 0c27.2 0 53.7 9.3 75 26.3L287.8 467c10.5 8.4 23.6 13 37 13c32.7 0 59.3-26.5 59.3-59.3l0-25.2c0-34.9 21.4-66.2 53.9-78.8l36.9-14.3c22.4-8.7 37.2-30.3 37.2-54.3c0-28.1-20.1-52.3-47.8-57.3l-28-5.1c-36.5-6.7-65.4-34.5-73.6-70.7l-7.1-31.5C348.9 53.4 322.1 32 291.3 32c-22 0-42.6 11-54.9 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm0 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Ck={prefix:"fas",iconName:"briefcase-medical",icon:[512,512,[],"f469","M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},xk={prefix:"fas",iconName:"genderless",icon:[384,512,[],"f22d","M192 144a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm0 288a176 176 0 1 0 0-352 176 176 0 1 0 0 352z"]},bk={prefix:"fas",iconName:"chevron-right",icon:[320,512,[9002],"f054","M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"]},Sk={prefix:"fas",iconName:"retweet",icon:[576,512,[],"f079","M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0c-17.7 0-32-14.3-32-32l0-128 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96l112 0zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-128c0-53-43-96-96-96L304 96z"]},aD={prefix:"fas",iconName:"car-rear",icon:[512,512,["car-alt"],"f5de","M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 192l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 80c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 256 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-56.6c19.1-11.1 32-31.7 32-55.4l0-80c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 272l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},yk=aD,Mk={prefix:"fas",iconName:"pump-soap",icon:[448,512,[],"e06b","M128 32l0 96 128 0 0-32 60.1 0c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4L256 32c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512l186.4 0c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7l-149.1 0zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z"]},Ek={prefix:"fas",iconName:"video-slash",icon:[640,512,[],"f4e2","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2l0-256c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9l0 17.1 0 128 0 5.8-32-25.1L416 128c0-35.3-28.7-64-64-64L113.9 64 38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5l0 256c0 35.3 28.7 64 64 64l256 0c23.4 0 43.9-12.6 55-31.3z"]},oD={prefix:"fas",iconName:"battery-quarter",icon:[576,512,["battery-2"],"f243","M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm112 96l-96 0 0 128 96 0 0-128z"]},lD=oD,Tk={prefix:"fas",iconName:"radio",icon:[512,512,[128251],"f8d7","M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192l0 4L0 304 0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-229.5 0L494.8 47zM368 240a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM80 256c0-8.8 7.2-16 16-16l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 336c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16z"]},cD={prefix:"fas",iconName:"baby-carriage",icon:[512,512,["carriage-baby"],"f77d","M256 192L.1 192C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0 0-64zM80 416a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm240 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},Lk=cD,uD={prefix:"fas",iconName:"traffic-light",icon:[320,512,[128678],"f637","M64 0C28.7 0 0 28.7 0 64L0 352c0 88.4 71.6 160 160 160s160-71.6 160-160l0-288c0-35.3-28.7-64-64-64L64 0zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z"]},Ik={prefix:"fas",iconName:"thermometer",icon:[512,512,[],"f491","M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z"]},Pk={prefix:"fas",iconName:"vr-cardboard",icon:[640,512,[],"f729","M576 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l120.4 0c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4L576 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},hD={prefix:"fas",iconName:"hand-middle-finger",icon:[448,512,[128405],"f806","M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48l0 7 0 73c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-64 0-32c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z"]},dD={prefix:"fas",iconName:"percent",icon:[384,512,[62101,62785,"percentage"],"25","M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128A64 64 0 1 0 0 128a64 64 0 1 0 128 0zM384 384a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},Ok=dD,Rk={prefix:"fas",iconName:"truck-moving",icon:[640,512,[],"f4df","M64 32C28.7 32 0 60.7 0 96L0 304l0 80 0 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16L416 384l33.6 0c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16l1.6 0c17.7 0 32-14.3 32-32l0-64 0-16 0-10.3c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5L480 144l0-48c0-35.3-28.7-64-64-64L64 32zM585 256l-105 0 0-64 48.8 0c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM176 400a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM80 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Dk={prefix:"fas",iconName:"glass-water-droplet",icon:[384,512,[],"e4f5","M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64l251.3 0L301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C161.7 125.9 128 172 128 196c0 33.1 28.7 60 64 60s64-26.9 64-60z"]},Nk={prefix:"fas",iconName:"display",icon:[576,512,[],"e163","M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l176 0-10.7 32L160 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-69.3 0L336 416l176 0c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0zM512 64l0 288L64 352 64 64l448 0z"]},bI={prefix:"fas",iconName:"face-smile",icon:[512,512,[128578,"smile"],"f118","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},wk=bI,fD={prefix:"fas",iconName:"thumbtack",icon:[384,512,[128204,128392,"thumb-tack"],"f08d","M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3L32 352c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 384l64 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z"]},Bk=fD,zk={prefix:"fas",iconName:"trophy",icon:[576,512,[127942],"f091","M400 0L176 0c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8L24 64C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9L192 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-26.1 0C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24L446.4 64c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112l84.4 0c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6l84.4 0c-5.1 66.3-31.1 111.2-63 142.3z"]},SI={prefix:"fas",iconName:"person-praying",icon:[448,512,[128720,"pray"],"f683","M352 64A64 64 0 1 0 224 64a64 64 0 1 0 128 0zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432 72 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z"]},Fk=SI,pD={prefix:"fas",iconName:"hammer",icon:[576,512,[128296],"f6e3","M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6l0-12.1L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0l18.1 0c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z"]},kk={prefix:"fas",iconName:"hand-peace",icon:[512,512,[9996],"f25b","M224 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM93.3 51.2L175.9 240l-69.9 0L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5 69.9 0 26.1 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363l0-27c0-32.7 24.6-59.7 56.3-63.5z"]},mD={prefix:"fas",iconName:"rotate",icon:[512,512,[128260,"sync-alt"],"f2f1","M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z"]},gD=mD,Uk={prefix:"fas",iconName:"spinner",icon:[512,512,[],"f110","M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z"]},jk={prefix:"fas",iconName:"robot",icon:[640,512,[129302],"f544","M320 0c17.7 0 32 14.3 32 32l0 64 120 0c39.8 0 72 32.2 72 72l0 272c0 39.8-32.2 72-72 72l-304 0c-39.8 0-72-32.2-72-72l0-272c0-39.8 32.2-72 72-72l120 0 0-64c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224l16 0 0 192-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0 0-192 16 0z"]},Vk={prefix:"fas",iconName:"peace",icon:[512,512,[9774],"f67c","M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8l0-174.2C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5l0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3l0 174.2L422.8 351.1zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},yI={prefix:"fas",iconName:"gears",icon:[640,512,["cogs"],"f085","M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8l-.7 0c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},Gk=yI,Wk={prefix:"fas",iconName:"warehouse",icon:[640,512,[],"f494","M0 488L0 171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4L640 488c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-264c0-17.7-14.3-32-32-32l-384 0c-17.7 0-32 14.3-32 32l0 264c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24l0-56 384 0 0 56c0 13.3-10.7 24-24 24zM128 400l0-64 384 0 0 64-384 0zm0-96l0-80 384 0 0 80-384 0z"]},Hk={prefix:"fas",iconName:"arrow-up-right-dots",icon:[576,512,[],"e4b7","M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3l0 50.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L160 0zM576 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM448 208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm128 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM272 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM144 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM576 336a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-48-80a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},Yk={prefix:"fas",iconName:"splotch",icon:[512,512,[],"f5bc","M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0c28.5 0 53.6 18.7 61.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2c0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6c-14.8 0-29.3-5.1-40.8-14.3l-55.4-44.3c-4.5-3.6-9.3-6.7-14.5-9.2c-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9C47.8 458.2 16 431.6 16 396.5c0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1c0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9c0-33.4 30.1-58.8 63-53.2l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z"]},MI={prefix:"fas",iconName:"face-grin-hearts",icon:[512,512,[128525,"grin-hearts"],"f584","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z"]},Xk=MI,Zk={prefix:"fas",iconName:"dice-four",icon:[448,512,[9859],"f524","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Kk={prefix:"fas",iconName:"sim-card",icon:[384,512,[],"f7c4","M64 0L242.7 0c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32l0 32 64 0 0-64-32 0zM64 352l80 0 96 0 80 0 0-64-80 0-96 0-80 0 0 64zM320 224c0-17.7-14.3-32-32-32l-32 0 0 64 64 0 0-32zM160 192l0 64 64 0 0-64-64 0zM288 448c17.7 0 32-14.3 32-32l0-32-64 0 0 64 32 0zM160 384l0 64 64 0 0-64-64 0zM64 416c0 17.7 14.3 32 32 32l32 0 0-64-64 0 0 32z"]},_D={prefix:"fas",iconName:"transgender",icon:[512,512,[9895,"transgender-alt"],"f225","M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l96 0c8.8 0 16 7.2 16 16l0 96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2l0 17.8 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-17.8C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112L0 16C0 7.2 7.2 0 16 0l96 0zM352 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z"]},vD=_D,qk={prefix:"fas",iconName:"mercury",icon:[384,512,[9791],"f223","M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4l0 25.6 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-25.6C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224a112 112 0 1 0 224 0A112 112 0 1 0 80 224z"]},AD={prefix:"fas",iconName:"arrow-turn-down",icon:[384,512,["level-down"],"f149","M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z"]},Qk=AD,CD={prefix:"fas",iconName:"person-falling-burst",icon:[640,512,[],"e547","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2L32 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320l1.4 0 80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80A48 48 0 1 0 0 80a48 48 0 1 0 96 0zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z"]},Jk={prefix:"fas",iconName:"award",icon:[384,512,[],"f559","M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z"]},xD={prefix:"fas",iconName:"ticket-simple",icon:[576,512,["ticket-alt"],"f3ff","M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6C541.5 217.1 528 235 528 256s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64c0-8.8 7.4-15.7 15.7-18.6C34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z"]},bD=xD,$k={prefix:"fas",iconName:"building",icon:[384,512,[127970,61687],"f1ad","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z"]},SD={prefix:"fas",iconName:"angles-left",icon:[512,512,[171,"angle-double-left"],"f100","M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z"]},eU=SD,yD={prefix:"fas",iconName:"qrcode",icon:[448,512,[],"f029","M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 96l0 64 64 0 0-64L64 96zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zm64 16l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm80 64l-64 0 0 64 64 0 0-64zM256 304c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s7.2-16 16-16s16 7.2 16 16l0 96c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-160zM368 480a16 16 0 1 1 0-32 16 16 0 1 1 0 32zm64 0a16 16 0 1 1 0-32 16 16 0 1 1 0 32z"]},MD={prefix:"fas",iconName:"clock-rotate-left",icon:[512,512,["history"],"f1da","M75 75L41 41C25.9 25.9 0 36.6 0 57.9L0 168c0 13.3 10.7 24 24 24l110.1 0c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1c0-13.3-10.7-24-24-24z"]},tU=MD,EI={prefix:"fas",iconName:"face-grin-beam-sweat",icon:[512,512,[128517,"grin-beam-sweat"],"f583","M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0z"]},iU=EI,ED={prefix:"fas",iconName:"file-export",icon:[576,512,["arrow-right-from-file"],"f56e","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 128-168 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0 0 112c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM384 336l0-48 110.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39L384 336zm0-208l-128 0L256 0 384 128z"]},TD=ED,LD={prefix:"fas",iconName:"shield",icon:[512,512,[128737,"shield-blank"],"f132","M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z"]},ID=LD,PD={prefix:"fas",iconName:"arrow-up-short-wide",icon:[576,512,["sort-amount-up-alt"],"f885","M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0z"]},OD=PD,sU={prefix:"fas",iconName:"comment-nodes",icon:[640,512,[],"e696","M256 448c10.8 0 21.5-.5 32-1.6c.3-15.8 4.4-31.7 12.9-46.4c16-27.7 43.7-44.4 73.2-47.5l16.7-29.2c-4.3-11-6.7-22.9-6.7-35.4c0-53 43-96 96-96c9.1 0 17.8 1.3 26.2 3.6C481.1 102.1 378.6 32 256 32C114.6 32 0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.2 .3-.4 .5-.6 .7c-.3 .3-.5 .5-.6 .7l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm72.6-32c-17.7 30.6-7.2 69.7 23.4 87.4s69.7 7.2 87.4-23.4c1.5-2.6 2.8-5.3 3.9-8l73.3 0c1.1 2.7 2.4 5.4 3.9 8c17.7 30.6 56.8 41.1 87.4 23.4s41.1-56.8 23.4-87.4c-13.4-23.2-39.1-34.8-64-31.4l-17.6-30.7c-11 11.7-25 20.6-40.6 25.6l16.5 28.9c-3.8 4.8-6.8 10-9 15.6l-73.4 0c-2.2-5.6-5.3-10.8-9-15.6l33-57.7c4.1 .8 8.4 1.3 12.8 1.3c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64c0 13.4 4.1 25.8 11.2 36.1l-34.6 60.5c-25-3.4-50.6 8.3-64 31.4z"]},RD={prefix:"fas",iconName:"house-medical",icon:[576,512,[],"e3b2","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l320.4 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0zM256 208c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},DD={prefix:"fas",iconName:"golf-ball-tee",icon:[384,512,["golf-ball"],"f450","M384 192c0 66.8-34.1 125.6-85.8 160L85.8 352C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zm-52.3-49.3c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zM96 416c0-17.7 14.3-32 32-32l64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0c-8.8 0-16 7.2-16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16c0-8.8-7.2-16-16-16l-16 0c-17.7 0-32-14.3-32-32z"]},ND=DD,wD={prefix:"fas",iconName:"circle-chevron-left",icon:[512,512,["chevron-circle-left"],"f137","M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z"]},rU=wD,nU={prefix:"fas",iconName:"house-chimney-window",icon:[576,512,[],"e00d","M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z"]},BD={prefix:"fas",iconName:"pen-nib",icon:[512,512,[10001],"f5ad","M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.7-9.2L288 94.6z"]},aU={prefix:"fas",iconName:"tent-arrow-turn-left",icon:[576,512,[],"e580","M120.1 41.8c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120 456 120c39.8 0 72 32.2 72 72l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-66.3-53.7-120-120-120L86.5 72l33.5-30.2zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},zD={prefix:"fas",iconName:"tents",icon:[640,512,[],"e582","M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5L608 352c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},FD={prefix:"fas",iconName:"wand-magic",icon:[512,512,["magic"],"f0d0","M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z"]},oU=FD,lU={prefix:"fas",iconName:"dog",icon:[576,512,[128021],"f6d3","M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32l52.1 0c12.7 0 24.9 5.1 33.9 14.1L496 64l56 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-32 0-16 0-21.3 0-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-115.2c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-230.2c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192l30 0 16 0 159.8 0L416 256.1zM464 80a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},cU={prefix:"fas",iconName:"carrot",icon:[512,512,[129365],"f787","M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z"]},uU={prefix:"fas",iconName:"moon",icon:[384,512,[127769,9214],"f186","M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z"]},TI={prefix:"fas",iconName:"wine-glass-empty",icon:[320,512,["wine-glass-alt"],"f5ce","M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6l0 99.6-48 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0-99.6c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0L64 0zM81.9 203.1L93.4 64l133.1 0 11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z"]},hU=TI,dU={prefix:"fas",iconName:"cheese",icon:[512,512,[],"f7ef","M512 240.2l0 15.8L0 256c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8l0 128c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 288l512 0z"]},fU={prefix:"fas",iconName:"yin-yang",icon:[512,512,[9775],"f6ad","M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm32-352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},pU={prefix:"fas",iconName:"music",icon:[512,512,[127925],"f001","M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7l0 72 0 264c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6L448 147 192 223.8 192 432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6L128 200l0-72c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z"]},kD={prefix:"fas",iconName:"code-commit",icon:[640,512,[],"f386","M320 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l131.2 0C178 151 242.6 96 320 96s142 55 156.8 128L608 224c17.7 0 32 14.3 32 32s-14.3 32-32 32l-131.2 0z"]},mU={prefix:"fas",iconName:"temperature-low",icon:[512,512,[],"f76b","M448 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 96a96 96 0 1 1 192 0A96 96 0 1 1 320 96zM144 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L192 112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L32 112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3l0-50.7c0-8.8 7.2-16 16-16s16 7.2 16 16l0 50.7c18.6 6.6 32 24.4 32 45.3z"]},UD={prefix:"fas",iconName:"person-biking",icon:[640,512,[128692,"biking"],"f84a","M400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1 288 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM56 384a72 72 0 1 1 144 0A72 72 0 1 1 56 384zm200 0A128 128 0 1 0 0 384a128 128 0 1 0 256 0zm184 0a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zm200 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"]},gU=UD,_U={prefix:"fas",iconName:"broom",icon:[576,512,[129529],"f51a","M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6c-12.5 0-22.6 10.1-22.6 22.6l0 29.1L364.3 320l29.1 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8C76.5 307.5 64 337.7 64 369.2c0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9C0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8c30.6-30.6 45.9-73.1 42.3-115.8z"]},vU={prefix:"fas",iconName:"shield-heart",icon:[512,512,[],"e574","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z"]},AU={prefix:"fas",iconName:"gopuram",icon:[512,512,[],"f664","M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 0 32 0 64c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32l0 96c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-64 0 0-160-32 0 0-128-32 0 0-96-32 0 0 96 32 0 0 128 32 0 0 160-80 0 0-48c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 48-80 0 0-160 32 0 0-128 32 0 0-96-32 0 0 96-32 0 0 128-32 0 0 160-64 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-96c0-17.7 14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l0-64 0-32 0-8c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-32-80l0 32 64 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},LI={prefix:"fas",iconName:"earth-oceania",icon:[512,512,["globe-oceania"],"e47b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3l-29.9 0c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},CU=LI,II={prefix:"fas",iconName:"square-xmark",icon:[448,512,[10062,"times-square","xmark-square"],"f2d3","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},xU=II,bU=II,jD={prefix:"fas",iconName:"hashtag",icon:[448,512,[62098],"23","M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128l95.1 0 11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128l58.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-68.9 0L325.8 320l58.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-68.9 0-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7-95.1 0-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 21.3-128L64 192c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320l95.1 0 21.3-128-95.1 0z"]},VD={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]},PI=VD,SU={prefix:"fas",iconName:"oil-can",icon:[640,512,[],"f613","M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-80 0-48 0-48 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30L96 368c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8L288 160l0-32 32 0zM96 208l0 86.1L48 272.8 48 208l48 0z"]},yU={prefix:"fas",iconName:"t",icon:[384,512,[116],"54","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 32 32 32z"]},MU={prefix:"fas",iconName:"hippo",icon:[640,512,[129435],"f6ed","M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1 7.2 0L256 64l32 0c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},GD={prefix:"fas",iconName:"chart-column",icon:[512,512,[],"e0e3","M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm128-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM480 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},EU={prefix:"fas",iconName:"infinity",icon:[640,512,[8734,9854],"f534","M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1l0 29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9l0-29.7zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1l0 29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1l0-29.7c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z"]},TU={prefix:"fas",iconName:"vial-circle-check",icon:[512,512,[],"e596","M0 64C0 46.3 14.3 32 32 32l64 0 64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 170.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96L32 96C14.3 96 0 81.7 0 64zM96 96l0 96 64 0 0-96L96 96zM224 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},LU={prefix:"fas",iconName:"person-arrow-down-to-line",icon:[640,512,[],"e538","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352l0-96 16 0 0 96-16 0zm-64 0l-88 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l120 0 80 0 376 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-344 0 0-191.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 448zM464 64l0 242.7-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7 528 64c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},IU={prefix:"fas",iconName:"voicemail",icon:[640,512,[],"f897","M144 320a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm119.8 0c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144l352 0c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},PU={prefix:"fas",iconName:"fan",icon:[512,512,[],"f863","M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224l-2.6 0C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480l0 2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288l2.6 0c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32l0-2.6C288 13.2 274.8 0 258.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},OU={prefix:"fas",iconName:"person-walking-luggage",icon:[576,512,[],"e554","M432 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z"]},WD={prefix:"fas",iconName:"up-down",icon:[256,512,[8597,11021,"arrows-alt-v"],"f338","M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160l56 0 0 192-56 0c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4l-56 0 0-192 56 0c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z"]},RU=WD,DU={prefix:"fas",iconName:"cloud-moon-rain",icon:[576,512,[],"f73c","M481.2 0C417 0 363.5 46.5 353.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM367.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C241.3 114.6 210.8 96 176 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96l271.9 0zM85.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z"]},NU={prefix:"fas",iconName:"calendar",icon:[448,512,[128197,128198],"f133","M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272z"]},wU={prefix:"fas",iconName:"trailer",icon:[640,512,[],"e041","M48 32C21.5 32 0 53.5 0 80L0 336c0 26.5 21.5 48 48 48l17.1 0c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96L488 384l8 0 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-240c0-26.5-21.5-48-48-48L48 32zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21L64 112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},OI={prefix:"fas",iconName:"bahai",icon:[576,512,["haykal"],"f666","M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z"]},BU=OI,zU={prefix:"fas",iconName:"sd-card",icon:[384,512,[],"f7c2","M320 0L141.3 0C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},FU={prefix:"fas",iconName:"dragon",icon:[640,512,[128009],"f6d5","M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L416 0l32 0 16 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7L480 160l-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512L496 512l-64 0L32.3 512c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-45.5 0-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z"]},kU={prefix:"fas",iconName:"shoe-prints",icon:[640,512,[],"f54b","M416 0C352.3 0 256 32 256 32l0 128c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64l32 0 0-128-32 0c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32l0 128s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64l32 0 0-128-32 0c-35.3 0-64 28.7-64 64z"]},RI={prefix:"fas",iconName:"circle-plus",icon:[512,512,["plus-circle"],"f055","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},UU=RI,HD={prefix:"fas",iconName:"face-grin-tongue-wink",icon:[512,512,[128540,"grin-tongue-wink"],"f58b","M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448l0-46.9c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2l0 47.3c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},jU=HD,VU={prefix:"fas",iconName:"hand-holding",icon:[576,512,[],"f4bd","M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 272 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-16 0-78.3 0c-29.1 0-57.3 9.9-80 28L68.8 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 160.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2c.3 0 .6 0 .9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z"]},YD={prefix:"fas",iconName:"plug-circle-exclamation",icon:[576,512,[],"e55d","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},I9={prefix:"fas",iconName:"link-slash",icon:[640,512,["chain-broken","chain-slash","unlink"],"f127","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z"]},XD=I9,GU=I9,WU=I9,HU={prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z"]},P9={prefix:"fas",iconName:"person-walking-arrow-loop-left",icon:[640,512,[],"e551","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384l18.7 0c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96l-18.7 0 25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z"]},ZD={prefix:"fas",iconName:"arrow-up-z-a",icon:[576,512,["sort-alpha-up-alt"],"f882","M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L352 32c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400l-40.4 0z"]},YU=ZD,KD={prefix:"fas",iconName:"fire-flame-curved",icon:[384,512,["fire-alt"],"f7e4","M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z"]},XU=KD,ZU={prefix:"fas",iconName:"tornado",icon:[448,512,[127786],"f76f","M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0L32 0C14.3 0 0 14.3 0 32zm352.2 96L13.6 128c12.2 35.9 32.3 68.7 58.8 96L412 224l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9l-322.5 0c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9L288 384z"]},qD={prefix:"fas",iconName:"file-circle-plus",icon:[576,512,[58606],"e494","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z"]},QD={prefix:"fas",iconName:"book-quran",icon:[448,512,["quran"],"f687","M352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0L64 0 352 0zm0 384L96 384l0 64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z"]},JD=QD,KU={prefix:"fas",iconName:"anchor",icon:[576,512,[9875],"f13d","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c88.4 0 160-71.6 160-160l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 53-43 96-96 96l-48 0 0-208 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0z"]},qU={prefix:"fas",iconName:"border-all",icon:[448,512,[],"f84c","M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224L64 224 64 96l128 0 0 128zM64 288l128 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]},$D={prefix:"fas",iconName:"face-angry",icon:[512,512,[128544,"angry"],"f556","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM338.7 395.9c6.6-5.9 7.1-16 1.2-22.6C323.8 355.4 295.7 336 256 336s-67.8 19.4-83.9 37.3c-5.9 6.6-5.4 16.7 1.2 22.6s16.7 5.4 22.6-1.2c11.7-13 31.6-26.7 60.1-26.7s48.4 13.7 60.1 26.7c5.9 6.6 16 7.1 22.6 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},eN=$D,QU={prefix:"fas",iconName:"cookie-bite",icon:[512,512,[],"f564","M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},JU={prefix:"fas",iconName:"arrow-trend-down",icon:[576,512,[],"e097","M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z"]},tN={prefix:"fas",iconName:"rss",icon:[448,512,["feed"],"f09e","M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},iN=tN,$U={prefix:"fas",iconName:"draw-polygon",icon:[448,512,[],"f5ee","M96 151.4l0 209.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56s0 0 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1c0 0 0 0 0 0l32-56 4.5-7.9-.1-.3-209.1 0c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-209.1C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z"]},sN={prefix:"fas",iconName:"scale-balanced",icon:[640,512,[9878,"balance-scale"],"f24e","M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3L352 448l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288l144.9 0L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320l144.9 0L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z"]},ej=sN,O9={prefix:"fas",iconName:"gauge-simple-high",icon:[512,512,[61668,"tachometer","tachometer-fast"],"f62a","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z"]},tj=O9,ij=O9,rN={prefix:"fas",iconName:"shower",icon:[512,512,[128703],"f2cc","M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.2-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},nN={prefix:"fas",iconName:"desktop",icon:[576,512,[128421,61704,"desktop-alt"],"f390","M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l176 0-10.7 32L160 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-69.3 0L336 416l176 0c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0zM512 64l0 224L64 288 64 64l448 0z"]},DI=nN,sj={prefix:"fas",iconName:"m",icon:[448,512,[109],"4d","M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3L250.6 369.8c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 49.9 9.2 37.5 22.7 33.4z"]},aN={prefix:"fas",iconName:"table-list",icon:[512,512,["th-list"],"f00b","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64L64 96zm384 0L192 96l0 64 256 0 0-64zM64 224l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64zM64 352l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64z"]},rj=aN,NI={prefix:"fas",iconName:"comment-sms",icon:[512,512,["sms"],"f7cd","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM96 212.8c0-20.3 16.5-36.8 36.8-36.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.3 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8L112 304c-8.8 0-16-7.2-16-16s7.2-16 16-16l27.2 0c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6C102.2 236.7 96 225.2 96 212.8zM372.8 176l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.2 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8L352 304c-8.8 0-16-7.2-16-16s7.2-16 16-16l27.2 0c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6c-10.2-6.8-16.4-18.3-16.4-30.7c0-20.3 16.5-36.8 36.8-36.8zm-152 6.4L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240l0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-6.9 4.4-13 10.9-15.2s13.7 .1 17.9 5.6z"]},nj=NI,aj={prefix:"fas",iconName:"book",icon:[448,512,[128212],"f02d","M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zm16 48l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},oN={prefix:"fas",iconName:"user-plus",icon:[640,512,[],"f234","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM504 312l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},oj={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]},wI={prefix:"fas",iconName:"battery-three-quarters",icon:[576,512,["battery-4"],"f241","M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm272 96L96 192l0 128 256 0 0-128z"]},lj=wI,cj={prefix:"fas",iconName:"house-circle-check",icon:[640,512,[],"e509","M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},uj={prefix:"fas",iconName:"angle-left",icon:[320,512,[8249],"f104","M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"]},hj={prefix:"fas",iconName:"diagram-successor",icon:[512,512,[],"e47a","M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z"]},lN={prefix:"fas",iconName:"truck-arrow-right",icon:[640,512,[],"e58b","M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L96 168c-13.3 0-24 10.7-24 24s10.7 24 24 24l166.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z"]},dj={prefix:"fas",iconName:"arrows-split-up-and-left",icon:[512,512,[],"e4bc","M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3 352 384c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64l-114.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256 224 256c23.3 0 45.2 6.2 64 17.1l0-163.9-41.4 41.4z"]},cN={prefix:"fas",iconName:"hand-fist",icon:[448,512,[9994,"fist-raised"],"f6de","M192 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z"]},fj=cN,pj={prefix:"fas",iconName:"cloud-moon",icon:[640,512,[],"f6c3","M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80L96 511.9c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"]},mj={prefix:"fas",iconName:"briefcase",icon:[512,512,[128188],"f0b1","M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 128 0 192 0 0-96c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM512 288l-192 0 0 32c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128z"]},gj={prefix:"fas",iconName:"person-falling",icon:[512,512,[],"e546","M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0-1.4 0 92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-73.8c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 32a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},BI={prefix:"fas",iconName:"image-portrait",icon:[384,512,["portrait"],"f3e0","M384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM128 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 356.6c0-37.9 30.7-68.6 68.6-68.6l86.9 0c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4l-169.1 0C92.3 384 80 371.7 80 356.6z"]},_j=BI,vj={prefix:"fas",iconName:"user-tag",icon:[640,512,[],"f507","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1l0-33c-15.9-4.7-32.8-7.2-50.3-7.2l-91.4 0zM384 224c-17.7 0-32 14.3-32 32l0 82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7L384 224zm24 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},Aj={prefix:"fas",iconName:"rug",icon:[640,512,[],"e569","M24 64l32 0 24 0 0 24 0 88 0 80 0 80 0 88 0 24-24 0-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0l416 0 0 384-416 0 0-384zM640 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0-24 0 0-24 0-88 0-80 0-80 0-88 0-24 24 0 32 0c13.3 0 24 10.7 24 24z"]},uN={prefix:"fas",iconName:"earth-europe",icon:[512,512,["globe-europe"],"f7a2","M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1l0 9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1l1 0c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24l0 4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6l29.4 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-20.7 0c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3l11.3 0c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16l7.3 0c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.7-15.4l-20.9 0c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3l0 3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3l21.3 0c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z"]},hN=uN,dN={prefix:"fas",iconName:"cart-flatbed-suitcase",icon:[640,512,["luggage-cart"],"f59d","M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l464 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-66.7 0c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16L144 448c-44.2 0-80-35.8-80-80L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM432 96l0-40c0-4.4-3.6-8-8-8l-80 0c-4.4 0-8 3.6-8 8l0 40 96 0zM288 96l0-40c0-30.9 25.1-56 56-56l80 0c30.9 0 56 25.1 56 56l0 40 0 224-192 0 0-224zM512 320l0-224 16 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-16 0zM240 96l16 0 0 224-16 0c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48z"]},Cj=dN,R9={prefix:"fas",iconName:"rectangle-xmark",icon:[512,512,[62164,"rectangle-times","times-rectangle","window-close"],"f410","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},fN=R9,xj=R9,pN=R9,bj={prefix:"fas",iconName:"baht-sign",icon:[320,512,[],"e0ac","M144 0c-17.7 0-32 14.3-32 32l0 32L37.6 64C16.8 64 0 80.8 0 101.6L0 224l0 41.7L0 288 0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112l0-32c0-17.7-14.3-32-32-32zM112 128l0 96-48 0 0-96 48 0zm64 96l0-96c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64l0 96-48 0 0-96 48 0zm64 96l0-96 32 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-32 0z"]},D9={prefix:"fas",iconName:"book-open",icon:[576,512,[128214,128366],"f518","M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5l0-377.4c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8L0 454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5l0-370.3c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11L304 456c0 11.4 11.7 19.3 22.4 15.5z"]},mN={prefix:"fas",iconName:"book-journal-whills",icon:[448,512,["journal-whills"],"f66a","M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.2-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.8-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-8.2-17-20.5-31.7-35.9-42.6c-2.7-1.9-6.2 1.4-5 4.5c8.5 22.4 3.6 48-13 65.6c-3.2 3.4-3.6 8.9-.9 12.7c9.8 14 12.7 31.9 7.5 48.5c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-5.1-16.6-2.2-34.4 7.6-48.5c2.7-3.9 2.3-9.3-.9-12.7c-16.6-17.5-21.6-43.1-13.1-65.5c1.2-3.1-2.3-6.4-5-4.5c-15.3 10.9-27.6 25.6-35.8 42.6l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z"]},Sj=mN,yj={prefix:"fas",iconName:"handcuffs",icon:[640,512,[],"e4f8","M240 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM192 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32 80c17.7 0 32 14.3 32 32l8 0c13.3 0 24 10.7 24 24l0 16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1l0-16c0-13.3 10.7-24 24-24l8 0c0-17.7 14.3-32 32-32zm0 320a96 96 0 1 0 0-192 96 96 0 1 0 0 192zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1l0-16c0-13.3 10.7-24 24-24l8 0c0-17.7 14.3-32 32-32s32 14.3 32 32l8 0c13.3 0 24 10.7 24 24l0 16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM368 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm80 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},zI={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Mj=zI,gN=zI,Ej={prefix:"fas",iconName:"database",icon:[448,512,[],"f1c0","M448 80l0 48c0 44.2-100.3 80-224 80S0 172.2 0 128L0 80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6L448 288c0 44.2-100.3 80-224 80S0 332.2 0 288L0 186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6l0 85.9c0 44.2-100.3 80-224 80S0 476.2 0 432l0-85.9z"]},_N={prefix:"fas",iconName:"share",icon:[512,512,["mail-forward"],"f064","M307 34.8c-11.5 5.1-19 16.6-19 29.2l0 64-112 0C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96l96 0 0 64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z"]},FI=_N,Tj={prefix:"fas",iconName:"bottle-droplet",icon:[320,512,[],"e4c4","M96 0C82.7 0 72 10.7 72 24s10.7 24 24 24c4.4 0 8 3.6 8 8l0 64.9c0 12.2-7.2 23.1-17.2 30.1C53.7 174.1 32 212.5 32 256l0 192c0 35.3 28.7 64 64 64l128 0c35.3 0 64-28.7 64-64l0-192c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1L216 56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0s0 0 0 0s0 0 0 0L104 0s0 0 0 0s0 0 0 0L96 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C185.9 288.9 208 320.2 208 337c0 24.9-21.5 45-48 45z"]},Lj={prefix:"fas",iconName:"mask-face",icon:[640,512,[],"e1d7","M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1l-9.2 0-16 0-72 0c-30.9 0-56 25.1-56 56l0 85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269l0-85c0-30.9-25.1-56-56-56l-72 0-16 0-9.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269l0-85c0-4.4 3.6-8 8-8l40 0 0 48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3l0-48 40 0c4.4 0 8 3.6 8 8l0 85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16zm16 48l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16z"]},Ij={prefix:"fas",iconName:"hill-rockslide",icon:[576,512,[],"e508","M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},kI={prefix:"fas",iconName:"right-left",icon:[512,512,["exchange-alt"],"f362","M32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-64L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64 320 0z"]},Pj=kI,Oj={prefix:"fas",iconName:"paper-plane",icon:[512,512,[61913],"f1d8","M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480l0-83.6c0-4 1.5-7.8 4.2-10.8L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z"]},Rj={prefix:"fas",iconName:"road-circle-exclamation",icon:[640,512,[],"e565","M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"]},Dj={prefix:"fas",iconName:"dungeon",icon:[512,512,[],"f6d9","M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9l80 0c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24l80 0c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288l-80 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zM24 416c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zm384 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16l0-272zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 240c0 8.8 7.2 16 16 16s16-7.2 16-16l0-240zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 240c0 8.8 7.2 16 16 16s16-7.2 16-16l0-240z"]},vN={prefix:"fas",iconName:"align-right",icon:[448,512,[],"f038","M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"]},AN={prefix:"fas",iconName:"money-bill-1-wave",icon:[576,512,["money-bill-wave-alt"],"f53b","M0 112.5L0 422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4l0-309.9c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416l-64 0 0-64c35.3 0 64 28.7 64 64zM64 224l0-64 64 0c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l24 0 24 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20z"]},Nj=AN,wj={prefix:"fas",iconName:"life-ring",icon:[512,512,[],"f1cd","M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3s-20.2-113.9-54-157.3c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256s20.2 113.9 54 157.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},UI={prefix:"fas",iconName:"hands",icon:[576,512,["sign-language","signing"],"f2a7","M544 160l-.1 72.6c-.1 52.2-24 101-64 133.1c.1-1.9 .1-3.8 .1-5.7l0-8c0-71.8-37-138.6-97.9-176.7l-60.2-37.6c-8.6-5.4-17.9-8.4-27.3-9.4L248.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l78 135.1c3.3 5.7 10.7 7.7 16.4 4.4s7.7-10.7 4.4-16.4l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S362 5 368.6 16.5l68 117.8s0 0 0 0s0 0 0 0l43.3 75L480 160c0-17.7 14.4-32 32-32s32 14.4 32 32zM243.9 88.5L268.5 131c-13.9 4.5-26.4 13.7-34.7 27c-.9 1.4-1.7 2.9-2.5 4.4l-28.9-50c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l26.8 46.4c.6 6 2.1 11.8 4.3 17.4l-4.7 0-13.3 0s0 0 0 0L179 216l-23-39.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM260.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C416.7 234.7 448 291.2 448 352l0 8c0 83.9-68.1 152-152 152l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L88 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L88 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0s0 0 0 0s0 0 0 0l93.2 0L271 219.1c-15-9.4-19.5-29.1-10.2-44.1z"]},Bj=UI,CN=UI,zj={prefix:"fas",iconName:"calendar-day",icon:[448,512,[],"f783","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-96 0z"]},jI={prefix:"fas",iconName:"water-ladder",icon:[576,512,["ladder-water","swimming-pool"],"f5c5","M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7l0 96.3 192 0 0-96.3C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7L448 361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3c0 0 0 0 0 0l0-96.5-192 0 0 96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1l0-233.3zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},VI=jI,Fj=jI,xN={prefix:"fas",iconName:"arrows-up-down",icon:[320,512,["arrows-v"],"f07d","M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3l0 293.5L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7l0-293.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z"]},kj=xN,N9={prefix:"fas",iconName:"face-grimace",icon:[512,512,[128556,"grimace"],"f57f","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm96-112l-8 0 0-40 55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344l0-40 8 0c23.8 0 43.5 17.3 47.3 40zM328 344l-64 0 0-40 64 0 0 40zm0 56l-64 0 0-40 64 0 0 40zm-80-96l0 40-64 0 0-40 64 0zm0 56l0 40-64 0 0-40 64 0zm-80-16l-55.3 0c3.8-22.7 23.6-40 47.3-40l8 0 0 40zm0 56l-8 0c-23.8 0-43.5-17.3-47.3-40l55.3 0 0 40zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Uj=N9,bN={prefix:"fas",iconName:"wheelchair-move",icon:[448,512,["wheelchair-alt"],"e2ce","M320 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224l97.4 0c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288l-70.3 0c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"]},SN=bN,yN={prefix:"fas",iconName:"turn-down",icon:[384,512,[10549,"level-down-alt"],"f3be","M350 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26s12.5-14.5 22-14.5l88 0 0-192c0-17.7-14.3-32-32-32L32 96C14.3 96 0 81.7 0 64L0 32C0 14.3 14.3 0 32 0l80 0c70.7 0 128 57.3 128 128l0 192 88 0c9.6 0 18.2 5.7 22 14.5z"]},MN=yN,jj={prefix:"fas",iconName:"person-walking-arrow-right",icon:[640,512,[],"e552","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z"]},GI={prefix:"fas",iconName:"square-envelope",icon:[448,512,["envelope-square"],"f199","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144l256 0c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4 384 336c0 17.7-14.3 32-32 32L96 368c-17.7 0-32-14.3-32-32l0-125.6 136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z"]},Vj=GI,EN={prefix:"fas",iconName:"dice",icon:[640,512,[127922],"f522","M274.9 34.3c-28.1-28.1-73.7-28.1-101.8 0L34.3 173.1c-28.1 28.1-28.1 73.7 0 101.8L173.1 413.7c28.1 28.1 73.7 28.1 101.8 0L413.7 274.9c28.1-28.1 28.1-73.7 0-101.8L274.9 34.3zM200 224a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM96 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 376a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM352 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 120a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm96 328c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-114.3 0c11.6 36 3.1 77-25.4 105.5L320 413.8l0 34.2zM480 328a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Gj={prefix:"fas",iconName:"bowling-ball",icon:[512,512,[],"f436","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Wj={prefix:"fas",iconName:"brain",icon:[512,512,[129504],"f5dc","M184 0c30.9 0 56 25.1 56 56l0 400c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56l0-400c0-30.9 25.1-56 56-56z"]},WI={prefix:"fas",iconName:"bandage",icon:[640,512,[129657,"band-aid"],"f462","M480 416l96 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-96 0 0 320zM448 96L192 96l0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l96 0 0-320L64 96zM248 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Hj=WI,Yj={prefix:"fas",iconName:"calendar-minus",icon:[448,512,[],"f272","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0z"]},HI={prefix:"fas",iconName:"circle-xmark",icon:[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},Xj=HI,TN=HI,Zj={prefix:"fas",iconName:"gifts",icon:[640,512,[],"f79c","M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l152.6 0c-5.4-9.4-8.6-20.3-8.6-32l0-224c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96l-22.2 0 28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224 344 224c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24l-4.1 0c-26.5 0-48 21.5-48 48l0 80 192 0 0-96 32 0 0 96 192 0 0-80c0-26.5-21.5-48-48-48l-4.1 0c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48l144 0 0-128-192 0 0 80zm224 48l144 0c26.5 0 48-21.5 48-48l0-80-192 0 0 128zm96-312c0 13.3-10.7 24-24 24l-49.1 0 29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z"]},Kj={prefix:"fas",iconName:"hotel",icon:[512,512,[127976],"f594","M0 32C0 14.3 14.3 0 32 0L480 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-176 0 0-48c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 48L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64C14.3 64 0 49.7 0 32zm96 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM240 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM112 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM328 384c13.3 0 24.3-10.9 21-23.8c-10.6-41.5-48.2-72.2-93-72.2s-82.5 30.7-93 72.2c-3.3 12.8 7.8 23.8 21 23.8l144 0z"]},w9={prefix:"fas",iconName:"earth-asia",icon:[512,512,[127759,"globe-asia"],"f57e","M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9l2.3 0c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm144.5 92.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z"]},qj=w9,LN={prefix:"fas",iconName:"id-card-clip",icon:[576,512,["id-card-alt"],"f47f","M256 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 64l128 0 0 48c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-48 128 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7l202.7 0c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3l-117.3 0c-29.5 0-53.3 23.9-53.3 53.3zM288 352a64 64 0 1 0 0-128 64 64 0 1 0 0 128z"]},Qj=LN,IN={prefix:"fas",iconName:"magnifying-glass-plus",icon:[512,512,["search-plus"],"f00e","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z"]},PN=IN,Jj={prefix:"fas",iconName:"thumbs-up",icon:[512,512,[128077,61575],"f164","M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2l144 0c26.5 0 48 21.5 48 48c0 18.5-10.5 34.6-25.9 42.6C497 275.4 504 288.9 504 304c0 23.4-16.8 42.9-38.9 47.1c4.4 7.3 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48l-97.5 0c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3l0-38.3 0-48 0-24.9c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32L0 224c0-17.7 14.3-32 32-32z"]},ON={prefix:"fas",iconName:"user-clock",icon:[640,512,[],"f4fd","M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304l91.4 0c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144L29.7 512C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z"]},RN={prefix:"fas",iconName:"hand-dots",icon:[512,512,["allergies"],"f461","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM240 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80 16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48-16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-16 80a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM240 432a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-48-48a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},DN=RN,$j={prefix:"fas",iconName:"file-invoice",icon:[384,512,[],"f570","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm0 32l0 64 192 0 0-64L96 256zM240 416l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},eV={prefix:"fas",iconName:"window-minimize",icon:[512,512,[128469],"f2d1","M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z"]},NN={prefix:"fas",iconName:"mug-saucer",icon:[640,512,["coffee"],"f0f4","M96 64c0-17.7 14.3-32 32-32l320 0 64 0c70.7 0 128 57.3 128 128s-57.3 128-128 128l-32 0c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L96 64zM480 224l32 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0 0 128zM32 416l512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},wN=NN,tV={prefix:"fas",iconName:"brush",icon:[384,512,[],"f55d","M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48L0 224l0 22.4L0 256l9.6 0 364.8 0 9.6 0 0-9.6 0-22.4 0-176c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 288l0 32c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-32L0 288zM192 432a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},iV={prefix:"fas",iconName:"file-half-dashed",icon:[384,512,[],"e698","M64 0C28.7 0 0 28.7 0 64L0 320l384 0 0-160-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM0 416l64 0 0-64L0 352l0 64zm288 32l-80 0 0 64 80 0 0-64zm-112 0l-80 0 0 64 80 0 0-64zM64 448L0 448c0 35.3 28.7 64 64 64l0-64zm256 0l0 64c35.3 0 64-28.7 64-64l-64 0zm64-32l0-64-64 0 0 64 64 0z"]},sV={prefix:"fas",iconName:"mask",icon:[576,512,[],"f6fa","M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176s-64-208-288-208zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},YI={prefix:"fas",iconName:"magnifying-glass-minus",icon:[512,512,["search-minus"],"f010","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"]},rV=YI,nV={prefix:"fas",iconName:"ruler-vertical",icon:[256,512,[],"f548","M0 48C0 21.5 21.5 0 48 0L208 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z"]},BN={prefix:"fas",iconName:"user-large",icon:[512,512,["user-alt"],"f406","M256 288A144 144 0 1 0 256 0a144 144 0 1 0 0 288zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320l-189.4 0z"]},aV=BN,zN={prefix:"fas",iconName:"train-tram",icon:[448,512,[128650],"e5b4","M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0L361.2 0c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.8 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15L248 48l0 48 40 0c53 0 96 43 96 96l0 160c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1l-39.7 0c-8.5 0-16.6-3.4-22.6-9.4L288 448l-128 0-54.6 54.6c-6 6-14.1 9.4-22.6 9.4L43 512c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352l0-160c0-53 43-96 96-96l40 0 0-48L86.8 48zM160 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},oV={prefix:"fas",iconName:"user-nurse",icon:[448,512,[],"f82f","M96 128l0-57.8c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30l0 57.8-.3 0c.2 2.6 .3 5.3 .3 8l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40c0-2.7 .1-5.4 .3-8l-.3 0zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16-160 0 0 16zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6zM208 48l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8l-16 0c-4.4 0-8 3.6-8 8z"]},lV={prefix:"fas",iconName:"syringe",icon:[512,512,[128137],"f48e","M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-88.8c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z"]},FN={prefix:"fas",iconName:"cloud-sun",icon:[640,512,[9925],"f6c4","M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l14.1 84.7 84.7 14.1c5.4 .9 10 4.5 12.1 9.6s1.5 10.9-1.6 15.4l-38.5 55c-2.2-.1-4.4-.2-6.7-.2c-23.3 0-45.1 6.2-64 17.1l0-1.1c0-53-43-96-96-96s-96 43-96 96s43 96 96 96c8.1 0 15.9-1 23.4-2.9c-36.6 18.1-63.3 53.1-69.8 94.9l-24.4 17c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM144 208a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM639.9 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"]},cV={prefix:"fas",iconName:"stopwatch-20",icon:[448,512,[],"e06f","M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 34.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6L256 64l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L176 0zM288 204c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5l0 2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9l43.8 0c11 0 20 9 20 20s-9 20-20 20l-64 0c-11 0-20-9-20-20l0-15.7c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8l0-2.2c0-6.9-5.6-12.5-12.5-12.5z"]},uV={prefix:"fas",iconName:"square-full",icon:[512,512,[128997,128998,128999,129e3,129001,129002,129003,11035,11036],"f45c","M0 0H512V512H0V0z"]},hV={prefix:"fas",iconName:"magnet",icon:[448,512,[129522],"f076","M0 160l0 96C0 379.7 100.3 480 224 480s224-100.3 224-224l0-96-128 0 0 96c0 53-43 96-96 96s-96-43-96-96l0-96L0 160zm0-32l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z"]},dV={prefix:"fas",iconName:"jar",icon:[320,512,[],"e516","M32 32C32 14.3 46.3 0 64 0L256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64l192 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 160zm96 64c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 224z"]},kN={prefix:"fas",iconName:"note-sticky",icon:[448,512,[62026,"sticky-note"],"f249","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l224 0 0-112c0-26.5 21.5-48 48-48l112 0 0-224c0-35.3-28.7-64-64-64L64 32zM448 352l-45.3 0L336 352c-8.8 0-16 7.2-16 16l0 66.7 0 45.3 32-32 64-64 32-32z"]},fV=kN,pV={prefix:"fas",iconName:"bug-slash",icon:[640,512,[],"e490","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64.3 0c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160l-112 0c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96l0 3.6c0 15.7 12.7 28.4 28.4 28.4l135.1 0c15.7 0 28.4-12.7 28.4-28.4l0-3.6c0-53-43-96-96-96zM160.3 256L96 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6l0-143.7L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7l0 118.5z"]},mV={prefix:"fas",iconName:"arrow-up-from-water-pump",icon:[576,512,[],"e4b6","M112 0C85.5 0 64 21.5 64 48l0 208-16 0c-26.5 0-48 21.5-48 48l0 96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400l0-96c0-26.5-21.5-48-48-48l-48 0 0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256l-128 0 0-208c0-26.5-21.5-48-48-48L112 0zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z"]},gV={prefix:"fas",iconName:"bone",icon:[576,512,[129460],"f5d7","M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2l192 0c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336l-192 0c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z"]},UN={prefix:"fas",iconName:"table-cells-row-unlock",icon:[640,512,[],"e691","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 224l0 64 88 0 0-64-88 0zm232 0l-88 0 0 64 88 0 0-64zM152 352l-88 0 0 64 88 0 0-64zm56 0l0 64 88 0 0-64-88 0zm288-80l0 48 32 0 32 0 48 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48c0-44.2 35.8-80 80-80s80 35.8 80 80l-48 0c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},_V={prefix:"fas",iconName:"user-injured",icon:[448,512,[],"f728","M240 80l102.7 0c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80l81.4 0 91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16L97 112c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7L96 512l147.7 0L181.5 408.2 124 312.4zm33-7.2L204.3 384l67.7 0c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48l82.3 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512L64 512l0-166.6C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48l-48.5 0 57.1 95.2C303 507.2 320 487.6 320 464z"]},jN={prefix:"fas",iconName:"face-sad-tear",icon:[512,512,[128546,"sad-tear"],"f5b4","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM367.6 208a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},vV=jN,AV={prefix:"fas",iconName:"plane",icon:[576,512,[],"f072","M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z"]},CV={prefix:"fas",iconName:"tent-arrows-down",icon:[576,512,[],"e581","M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L488 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},xV={prefix:"fas",iconName:"exclamation",icon:[128,512,[10069,10071,61738],"21","M96 64c0-17.7-14.3-32-32-32S32 46.3 32 64l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L96 64zM64 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},VN={prefix:"fas",iconName:"arrows-spin",icon:[512,512,[],"e4bb","M256 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l112 0c8.8 0 16-7.2 16-16l0-112c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C363.4 52.6 312.1 32 256 32c-10.9 0-21.5 .8-32 2.3l0 64.9c10.3-2.1 21-3.2 32-3.2zM132.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-112c0-8.8-7.2-16-16-16L64 48c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C52.6 148.6 32 199.9 32 256c0 10.9 .8 21.5 2.3 32l64.9 0c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM477.7 224l-64.9 0c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8l0 112c0 8.8 7.2 16 16 16l112 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C459.4 363.4 480 312.1 480 256c0-10.9-.8-21.5-2.3-32zM256 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9L64 320c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C148.6 459.4 199.9 480 256 480c10.9 0 21.5-.8 32-2.3l0-64.9c-10.3 2.1-21 3.2-32 3.2z"]},bV={prefix:"fas",iconName:"print",icon:[512,512,[128424,128438,9113],"f02f","M128 0C92.7 0 64 28.7 64 64l0 96 64 0 0-96 226.7 0L384 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0L128 0zM384 352l0 32 0 64-256 0 0-64 0-16 0-16 256 0zm64 32l32 0c17.7 0 32-14.3 32-32l0-96c0-35.3-28.7-64-64-64L64 192c-35.3 0-64 28.7-64 64l0 96c0 17.7 14.3 32 32 32l32 0 0 64c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-64zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},XI={prefix:"fas",iconName:"turkish-lira-sign",icon:[384,512,["try","turkish-lira"],"e2bb","M96 32c17.7 0 32 14.3 32 32l0 35.3L247.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 165.9l0 29.4 119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 261.9 128 416l63.8 0c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C378.5 399.8 294.1 480 191.8 480L96 480c-17.7 0-32-14.3-32-32l0-167.9-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 213.6l0-29.4-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 117.6 64 64c0-17.7 14.3-32 32-32z"]},SV=XI,yV=XI,ZI={prefix:"fas",iconName:"dollar-sign",icon:[320,512,[128178,61781,"dollar","usd"],"24","M160 0c17.7 0 32 14.3 32 32l0 35.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11l0 33.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.9c-.4-.1-.9-.1-1.3-.2l-.2 0s0 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7s0 0 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11L128 32c0-17.7 14.3-32 32-32z"]},MV=ZI,KI=ZI,EV={prefix:"fas",iconName:"x",icon:[384,512,[120],"58","M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z"]},GN={prefix:"fas",iconName:"magnifying-glass-dollar",icon:[512,512,["search-dollar"],"f688","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7l0-13.9z"]},qI=GN,WN={prefix:"fas",iconName:"users-gear",icon:[640,512,["users-cog"],"f509","M144 160A80 80 0 1 0 144 0a80 80 0 1 0 0 160zm368 0A80 80 0 1 0 512 0a80 80 0 1 0 0 160zM0 298.7C0 310.4 9.6 320 21.3 320l213.3 0c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7l-42.7 0C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2l-103.2 0C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7l300.6 0c-2.1-5.2-3.2-10.9-3.2-16.4l0-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192l-42.7 0c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3l0-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6l0 3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3l-2.9 1.7c-9.2 5.3-20.4 4-29.6-1.3s-16.1-14.5-16.1-25.1l0-3.4c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9l0 3.4c0 10.6-6.9 19.8-16.1 25.1s-20.4 6.6-29.6 1.3l-2.9-1.7c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l2.9 1.7c9.2 5.3 13.7 15.8 13.7 26.4s-4.5 21.1-13.7 26.4l-3 1.7c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3l2.9-1.7c9.2-5.3 20.4-4 29.6 1.3s16.1 14.5 16.1 25.1l0 3.4c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9l0-3.4c0-10.6 6.9-19.8 16.1-25.1s20.4-6.6 29.6-1.3l2.9 1.7c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-3-1.7c-9.2-5.3-13.7-15.8-13.7-26.4s4.5-21.1 13.7-26.4l3-1.7zM472 384a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z"]},TV=WN,LV={prefix:"fas",iconName:"person-military-pointing",icon:[576,512,[],"e54a","M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25l151 0c8.8 0 16-7.2 16-16l0-30.6C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L241.6 96c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5L240 224 72 224zm345.7 20.9L246.6 416 416 416l0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z"]},fy={prefix:"fas",iconName:"building-columns",icon:[512,512,["bank","institution","museum","university"],"f19c","M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160l0 8c0 13.3 10.7 24 24 24l400 0c13.3 0 24-10.7 24-24l0-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8-3.4-17.2-3.4-25.2 0zM128 224l-64 0 0 196.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512l448 0c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1L448 224l-64 0 0 192-40 0 0-192-64 0 0 192-48 0 0-192-64 0 0 192-40 0 0-192zM256 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},IV=fy,HN=fy,PV=fy,OV=fy,TT={prefix:"fas",iconName:"umbrella",icon:[576,512,[],"f0e9","M288 0c17.7 0 32 14.3 32 32l0 17.7C451.8 63.4 557.7 161 573.9 285.9c2 15.6-17.3 24.4-27.8 12.7C532.1 283 504.8 272 480 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C359 299.5 326.7 272 288 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C167 299.5 134.7 272 96 272c-24.8 0-52.1 11-66.1 26.7C19.4 310.4 .1 301.5 2.1 285.9C18.3 161 124.2 63.4 256 49.7L256 32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2l0 114.3c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4l0-114.3c8.5-7.6 19.7-12.2 32-12.2z"]},RV={prefix:"fas",iconName:"trowel",icon:[512,512,[],"e589","M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z"]},DV={prefix:"fas",iconName:"d",icon:[384,512,[100],"44","M0 96C0 60.7 28.7 32 64 32l96 0c123.7 0 224 100.3 224 224s-100.3 224-224 224l-96 0c-35.3 0-64-28.7-64-64L0 96zm160 0L64 96l0 320 96 0c88.4 0 160-71.6 160-160s-71.6-160-160-160z"]},NV={prefix:"fas",iconName:"stapler",icon:[640,512,[],"e5af","M640 299.3l0 4.7 0 128c0 26.5-21.5 48-48 48l-80 0-64 0L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48L96 368c-17.7 0-32-14.3-32-32l0-116.6L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16L128 230.9l0 73.1 320 0z"]},YN={prefix:"fas",iconName:"masks-theater",icon:[640,512,[127917,"theater-masks"],"f630","M74.6 373.2c41.7 36.1 108 82.5 166.1 73.7c6.1-.9 12.1-2.5 18-4.5c-9.2-12.3-17.3-24.4-24.2-35.4c-21.9-35-28.8-75.2-25.9-113.6c-20.6 4.1-39.2 13-54.7 25.4c-6.5 5.2-16.3 1.3-14.8-7c6.4-33.5 33-60.9 68.2-66.3c2.6-.4 5.3-.7 7.9-.8l19.4-131.3c2-13.8 8-32.7 25-45.9C278.2 53.2 310.5 37 363.2 32.2c-.8-.7-1.6-1.4-2.4-2.1C340.6 14.5 288.4-11.5 175.7 5.6S20.5 63 5.7 83.9C0 91.9-.8 102 .6 111.8L24.8 276.1c5.5 37.3 21.5 72.6 49.8 97.2zm87.7-219.6c4.4-3.1 10.8-2 11.8 3.3c.1 .5 .2 1.1 .3 1.6c3.2 21.8-11.6 42-33.1 45.3s-41.5-11.8-44.7-33.5c-.1-.5-.1-1.1-.2-1.6c-.6-5.4 5.2-8.4 10.3-6.7c9 3 18.8 3.9 28.7 2.4s19.1-5.3 26.8-10.8zM261.6 390c29.4 46.9 79.5 110.9 137.6 119.7s124.5-37.5 166.1-73.7c28.3-24.5 44.3-59.8 49.8-97.2l24.2-164.3c1.4-9.8 .6-19.9-5.1-27.9c-14.8-20.9-57.3-61.2-170-78.3S299.4 77.2 279.2 92.8c-7.8 6-11.5 15.4-12.9 25.2L242.1 282.3c-5.5 37.3-.4 75.8 19.6 107.7zM404.5 235.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6c-1 5.3-7.4 6.4-11.8 3.3zm136.2 15.5c-1 5.3-7.4 6.4-11.8 3.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6zM530 350.2c-19.6 44.7-66.8 72.5-116.8 64.9s-87.1-48.2-93-96.7c-1-8.3 8.9-12.1 15.2-6.7c23.9 20.8 53.6 35.3 87 40.3s66.1 .1 94.9-12.8c7.6-3.4 16 3.2 12.6 10.9z"]},wV=YN,BV={prefix:"fas",iconName:"kip-sign",icon:[384,512,[],"e1c4","M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288 352 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-169.5 0L340.8 88.3z"]},zV={prefix:"fas",iconName:"hand-point-left",icon:[512,512,[],"f0a5","M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z"]},XN={prefix:"fas",iconName:"handshake-simple",icon:[640,512,[129309,"handshake-alt"],"f4c6","M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352l41.8 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-76 0-4 0-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48-80 0c-26.5 0-48 21.5-48 48L0 304c0 26.5 21.5 48 48 48l108.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z"]},ZN=XN,KN={prefix:"fas",iconName:"jet-fighter",icon:[640,512,["fighter-jet"],"f0fb","M160 24c0-13.3 10.7-24 24-24L296 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0L384 192l116.4 0c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1L384 320 280 464l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-144-32 0-54.6 54.6c-6 6-14.1 9.4-22.6 9.4L64 384c-17.7 0-32-14.3-32-32l0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l18.7 0c8.5 0 16.6 3.4 22.6 9.4L160 192l32 0 0-144-8 0c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0z"]},FV=KN,qN={prefix:"fas",iconName:"square-share-nodes",icon:[448,512,["share-alt-square"],"f1e1","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z"]},QN=qN,kV={prefix:"fas",iconName:"barcode",icon:[512,512,[],"f02a","M24 32C10.7 32 0 42.7 0 56L0 456c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24L64 56c0-13.3-10.7-24-24-24L24 32zm88 0c-8.8 0-16 7.2-16 16l0 416c0 8.8 7.2 16 16 16s16-7.2 16-16l0-416c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0zm96 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0zM448 56l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm-64-8l0 416c0 8.8 7.2 16 16 16s16-7.2 16-16l0-416c0-8.8-7.2-16-16-16s-16 7.2-16 16z"]},JN={prefix:"fas",iconName:"plus-minus",icon:[384,512,[],"e43c","M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112L48 144c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0 0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-112zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z"]},$N={prefix:"fas",iconName:"video",icon:[576,512,["video-camera"],"f03d","M0 128C0 92.7 28.7 64 64 64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2l0 256c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1l0-17.1 0-128 0-17.1 14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z"]},ew=$N,tw={prefix:"fas",iconName:"graduation-cap",icon:[640,512,[127891,"mortar-board"],"f19d","M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9l0 28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5l0-24.6c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z"]},UV=tw,jV={prefix:"fas",iconName:"hand-holding-medical",icon:[576,512,[],"e05c","M224 24l0 56-56 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l56 0 0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56 56 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-56 0 0-56c0-13.3-10.7-24-24-24L248 0c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 272 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-16 0-78.3 0c-29.1 0-57.3 9.9-80 28L68.8 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 160.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z"]},iw={prefix:"fas",iconName:"person-circle-check",icon:[576,512,[],"e53e","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},sw={prefix:"fas",iconName:"turn-up",icon:[384,512,[10548,"level-up-alt"],"f3bf","M350 177.5c3.8-8.8 2-19-4.6-26l-136-144C204.9 2.7 198.6 0 192 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26s12.5 14.5 22 14.5l88 0 0 192c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l80 0c70.7 0 128-57.3 128-128l0-192 88 0c9.6 0 18.2-5.7 22-14.5z"]},rw=sw;var qY={fa0:p,fa1:m,fa2:_,fa3:d,fa4:h,fa5:x,fa6:A,fa7:S,fa8:E,fa9:b,faFillDrip:M,faArrowsToCircle:T,faCircleChevronRight:O,faChevronCircleRight:R,faAt:I,faTrashCan:N,faTrashAlt:w,faTextHeight:D,faUserXmark:k,faUserTimes:Y,faStethoscope:V,faMessage:ee,faCommentAlt:K,faInfo:ie,faDownLeftAndUpRightToCenter:ne,faCompressAlt:te,faExplosion:W,faFileLines:Q,faFileAlt:re,faFileText:oe,faWaveSquare:X,faRing:se,faBuildingUn:ue,faDiceThree:he,faCalendarDays:fe,faCalendarAlt:Ae,faAnchorCircleCheck:Se,faBuildingCircleArrowRight:we,faVolleyball:ke,faVolleyballBall:st,faArrowsUpToLine:Ve,faSortDown:Ke,faSortDesc:ct,faCircleMinus:nt,faMinusCircle:at,faDoorOpen:xt,faRightFromBracket:Qe,faSignOutAlt:kt,faAtom:ot,faSoap:At,faIcons:Me,faHeartMusicCameraBolt:je,faMicrophoneLinesSlash:rt,faMicrophoneAltSlash:yt,faBridgeCircleCheck:Rt,faPumpMedical:Nt,faFingerprint:Kt,faHandPointRight:si,faMagnifyingGlassLocation:Pi,faSearchLocation:gi,faForwardStep:bi,faStepForward:wi,faFaceSmileBeam:Ni,faSmileBeam:qt,faFlagCheckered:ci,faFootball:qe,faFootballBall:ri,faSchoolCircleExclamation:Ot,faCrop:mt,faAnglesDown:Ye,faAngleDoubleDown:Tt,faUsersRectangle:Ut,faPeopleRoof:oi,faPeopleLine:ji,faBeerMugEmpty:ki,faBeer:os,faDiagramPredecessor:bs,faArrowUpLong:hi,faLongArrowUp:Oi,faFireFlameSimple:li,faBurn:Xs,faPerson:ks,faMale:hr,faLaptop:fr,faFileCsv:We,faMenorah:fi,faTruckPlane:zi,faRecordVinyl:ts,faFaceGrinStars:hs,faGrinStars:Ge,faBong:Zt,faSpaghettiMonsterFlying:$t,faPastafarianism:Ui,faArrowDownUpAcrossLine:ls,faSpoon:ns,faUtensilSpoon:Ss,faJarWheat:qi,faEnvelopesBulk:pr,faMailBulk:Js,faFileCircleExclamation:ir,faCircleH:hn,faHospitalSymbol:ra,faPager:ka,faAddressBook:Hn,faContactBook:to,faStrikethrough:Gr,faK:Yn,faLandmarkFlag:To,faPencil:Pn,faPencilAlt:On,faBackward:Kr,faCaretRight:dn,faComments:mo,faPaste:Xn,faFileClipboard:na,faCodePullRequest:xl,faClipboardList:Lo,faTruckRampBox:Io,faTruckLoading:bl,faUserCheck:Zn,faVialVirus:Sl,faSheetPlastic:Vi,faBlog:yl,faUserNinja:Sn,faPersonArrowUpFromLine:Kn,faScrollTorah:Po,faTorah:Wi,faBroomBall:yn,faQuidditch:sr,faQuidditchBroomBall:qn,faToggleOff:rl,faBoxArchive:Rn,faArchive:Or,faPersonDrowning:fn,faArrowDown91:$r,faSortNumericDesc:Wc,faSortNumericDownAlt:Qn,faFaceGrinTongueSquint:Dn,faGrinTongueSquint:Xu,faSprayCan:Ie,faTruckMonster:_t,faW:Ht,faEarthAfrica:ti,faGlobeAfrica:Hi,faRainbow:Ee,faCircleNotch:$e,faTabletScreenButton:bt,faTabletAlt:Wt,faPaw:vi,faCloud:es,faTrowelBricks:Qi,faFaceFlushed:Ji,faFlushed:Us,faHospitalUser:er,faTentArrowLeftRight:Cr,faGavel:rr,faLegal:xr,faBinoculars:Nn,faMicrophoneSlash:_a,faBoxTissue:Fl,faMotorcycle:Ua,faBellConcierge:io,faConciergeBell:wn,faPenRuler:uu,faPencilRuler:Hc,faPeopleArrows:gd,faPeopleArrowsLeftRight:kl,faMarsAndVenusBurst:aa,faSquareCaretRight:hu,faCaretSquareRight:Ph,faScissors:Zu,faCut:Yc,faSunPlantWilt:Ku,faToiletsPortable:qu,faHockeyPuck:_d,faTable:Qu,faMagnifyingGlassArrowRight:du,faTachographDigital:fu,faDigitalTachograph:Ju,faUsersSlash:$u,faClover:pu,faReply:Ul,faMailReply:oc,faStarAndCrescent:mu,faHouseFire:r2,faSquareMinus:lc,faMinusSquare:Xc,faHelicopter:go,faCompass:Wo,faSquareCaretDown:Oo,faCaretSquareDown:so,faFileCircleQuestion:vd,faLaptopCode:ro,faSwatchbook:nl,faPrescriptionBottle:va,faBars:_o,faNavicon:eh,faPeopleGroup:cc,faHourglassEnd:Ad,faHourglass3:gu,faHeartCrack:Oh,faHeartBroken:Rh,faSquareUpRight:th,faExternalLinkSquareAlt:n1,faFaceKissBeam:a1,faKissBeam:Cd,faFilm:_u,faRulerHorizontal:Dh,faPeopleRobbery:xd,faLightbulb:o1,faCaretLeft:l1,faCircleExclamation:vu,faExclamationCircle:ih,faSchoolCircleXmark:n2,faArrowRightFromBracket:c1,faSignOut:mf,faCircleChevronDown:bd,faChevronCircleDown:a2,faUnlockKeyhole:sh,faUnlockAlt:o2,faCloudShowersHeavy:l2,faHeadphonesSimple:Nh,faHeadphonesAlt:u1,faSitemap:wh,faCircleDollarToSlot:c2,faDonate:Bh,faMemory:Zc,faRoadSpikes:Au,faFireBurner:u2,faFlag:Kc,faHanukiah:zh,faFeather:uc,faVolumeLow:Cu,faVolumeDown:h1,faCommentSlash:xu,faCloudSunRain:gf,faCompress:Sd,faWheatAwn:Fh,faWheatAlt:h2,faAnkh:vo,faHandsHoldingChild:d2,faAsterisk:d1,faSquareCheck:rh,faCheckSquare:f2,faPesetaSign:Ao,faHeading:p2,faHeader:m2,faGhost:f1,faList:kh,faListSquares:ye,faSquarePhoneFlip:Be,faPhoneSquareAlt:Ze,faCartPlus:tt,faGamepad:gt,faCircleDot:pe,faDotCircle:Ce,faFaceDizzy:De,faDizzy:Xe,faEgg:Je,faHouseMedicalCircleXmark:vt,faCampground:Gt,faFolderPlus:ai,faFutbol:As,faFutbolBall:Cs,faSoccerBall:zs,faPaintbrush:Ys,faPaintBrush:tr,faLock:Wr,faGasPump:ja,faHotTubPerson:Ml,faHotTub:Jn,faMapLocation:hc,faMapMarked:Ro,faHouseFloodWater:qc,faTree:g2,faBridgeLock:Uh,faSackDollar:x3,faPenToSquare:p1,faEdit:E_,faCarSide:Pb,faShareNodes:_f,faShareAlt:S5,faHeartCircleMinus:yd,faHourglassHalf:b3,faHourglass2:B4,faMicroscope:S3,faSink:fM,faBagShopping:dc,faShoppingBag:z4,faArrowDownZA:y3,faSortAlphaDesc:Md,faSortAlphaDownAlt:m1,faMitten:fc,faPersonRays:pM,faUsers:y5,faEyeSlash:pn,faFlaskVial:jl,faHand:oa,faHandPaper:Aa,faOm:mM,faWorm:mn,faHouseCircleXmark:Ed,faPlug:no,faChevronUp:Zs,faHandSpock:T_,faStopwatch:Qc,faFaceKiss:vf,faKiss:M3,faBridgeCircleXmark:en,faFaceGrinTongue:F4,faGrinTongue:B0,faChessBishop:Af,faFaceGrinWink:bu,faGrinWink:Td,faEarDeaf:k4,faDeaf:z0,faDeafness:U4,faHardOfHearing:Ld,faRoadCircleCheck:M5,faDiceFive:L_,faSquareRss:_2,faRssSquare:E5,faLandMineOn:T5,faICursor:gM,faStamp:Ob,faStairs:I_,faI:Rb,faHryvniaSign:j4,faHryvnia:_M,faPills:L5,faFaceGrinWide:I5,faGrinAlt:Db,faTooth:P_,faV:P5,faBangladeshiTakaSign:g1,faBicycle:v2,faStaffSnake:jh,faRodAsclepius:Cf,faRodSnake:F0,faStaffAesculapius:nh,faHeadSideCoughSlash:Vh,faTruckMedical:Gh,faAmbulance:xf,faWheatAwnCircleExclamation:E3,faSnowman:T3,faMortarPestle:L3,faRoadBarrier:O5,faSchool:V4,faIgloo:Nb,faJoint:wb,faAngleRight:G4,faHorse:R5,faQ:W4,faG:H4,faNotesMedical:Bb,faTemperatureHalf:A2,faTemperature2:D5,faThermometer2:N5,faThermometerHalf:bf,faDongSign:k0,faCapsules:Sf,faPooStorm:O_,faPooBolt:I3,faFaceFrownOpen:P3,faFrownOpen:U0,faHandPointUp:R_,faMoneyBill:D_,faBookmark:Y4,faAlignJustify:X4,faUmbrellaBeach:zb,faHelmetUn:Fb,faBullseye:kb,faBacon:Ub,faHandPointDown:Z4,faArrowUpFromBracket:vM,faFolder:jb,faFolderBlank:AM,faFileWaveform:Vb,faFileMedicalAlt:N_,faRadiation:Gb,faChartSimple:w5,faMarsStroke:CM,faVial:B5,faGauge:K4,faDashboard:j0,faGaugeMed:q4,faTachometerAltAverage:Wb,faWandMagicSparkles:O3,faMagicWandSparkles:Q4,faE:Id,faPenClip:R3,faPenAlt:yf,faBridgeCircleExclamation:D3,faUser:J4,faSchoolCircleCheck:Mf,faDumpster:w_,faVanShuttle:C2,faShuttleVan:$4,faBuildingUser:eg,faSquareCaretLeft:_1,faCaretSquareLeft:Hb,faHighlighter:xi,faKey:Vl,faBullhorn:Bn,faGlobe:Wh,faSynagogue:z5,faPersonHalfDress:Ci,faRoadBridge:Jc,faLocationArrow:zn,faC:N3,faTabletButton:tg,faBuildingLock:ig,faPizzaSlice:V0,faMoneyBillWave:sg,faChartArea:Ef,faAreaChart:rg,faHouseFlag:F5,faPersonCircleMinus:G0,faBan:W0,faCancel:pc,faCameraRotate:Va,faSprayCanSparkles:Yb,faAirFreshener:la,faStar:x2,faRepeat:v1,faCross:Co,faBox:ng,faVenusMars:Ca,faArrowPointer:H0,faMousePointer:xM,faMaximize:k5,faExpandArrowsAlt:ag,faChargingStation:Xb,faShapes:B_,faTriangleCircleSquare:bM,faShuffle:Y0,faRandom:SM,faPersonRunning:U5,faRunning:j5,faMobileRetro:yM,faGripLinesVertical:og,faSpider:$c,faHandsBound:Tf,faFileInvoiceDollar:MM,faPlaneCircleExclamation:mc,faXRay:X0,faSpellCheck:dr,faSlash:A1,faComputerMouse:EM,faMouse:gc,faArrowRightToBracket:C1,faSignIn:tn,faShopSlash:lg,faStoreAltSlash:Zb,faServer:TM,faVirusCovidSlash:z_,faShopLock:cg,faHourglassStart:V5,faHourglass1:Kb,faBlenderPhone:qb,faBuildingWheat:LM,faPersonBreastfeeding:Qb,faRightToBracket:G5,faSignInAlt:IM,faVenus:Jb,faPassport:W5,faThumbtackSlash:H5,faThumbTackSlash:$b,faHeartPulse:e7,faHeartbeat:PM,faPeopleCarryBox:F_,faPeopleCarry:ug,faTemperatureHigh:Y5,faMicrochip:t7,faCrown:OM,faWeightHanging:i7,faXmarksLines:X5,faFilePrescription:Z0,faWeightScale:k_,faWeight:hg,faUserGroup:s7,faUserFriends:RM,faArrowUpAZ:K0,faSortAlphaUp:dg,faChessKnight:Lf,faFaceLaughSquint:w3,faLaughSquint:r7,faWheelchair:eu,faCircleArrowUp:If,faArrowCircleUp:B3,faToggleOn:b2,faPersonWalking:Z5,faWalking:tu,faL:S2,faFire:q0,faBedPulse:z3,faProcedures:fg,faShuttleSpace:pg,faSpaceShuttle:K5,faFaceLaugh:F3,faLaugh:n7,faFolderOpen:k3,faHeartCirclePlus:q5,faCodeFork:DM,faCity:a7,faMicrophoneLines:o7,faMicrophoneAlt:Q5,faPepperHot:l7,faUnlock:NM,faColonSign:wM,faHeadset:c7,faStoreSlash:BM,faRoadCircleXmark:u7,faUserMinus:zM,faMarsStrokeUp:U_,faMarsStrokeV:FM,faChampagneGlasses:h7,faGlassCheers:kM,faClipboard:d7,faHouseCircleExclamation:j_,faFileArrowUp:f7,faFileUpload:p7,faWifi:J5,faWifi3:m7,faWifiStrong:UM,faBath:$5,faBathtub:g7,faUnderline:mg,faUserPen:U3,faUserEdit:jM,faSignature:eA,faStroopwafel:tA,faBold:V_,faAnchorLock:j3,faBuildingNgo:_7,faManatSign:v7,faNotEqual:A7,faBorderTopLeft:iA,faBorderStyle:C7,faMapLocationDot:G_,faMapMarkedAlt:x7,faJedi:V3,faSquarePollVertical:sA,faPoll:b7,faMugHot:rA,faCarBattery:nA,faBatteryCar:G3,faGift:S7,faDiceTwo:y7,faChessQueen:VM,faGlasses:M7,faChessBoard:E7,faBuildingCircleCheck:gg,faPersonChalkboard:W3,faMarsStrokeRight:T7,faMarsStrokeH:GM,faHandBackFist:aA,faHandRock:Pf,faSquareCaretUp:H3,faCaretSquareUp:oA,faCloudShowersWater:WM,faChartBar:W_,faBarChart:_g,faHandsBubbles:lA,faHandsWash:L7,faLessThanEqual:HM,faTrain:cA,faEyeLowVision:uA,faLowVision:I7,faCrow:YM,faSailboat:XM,faWindowRestore:ZM,faSquarePlus:hA,faPlusSquare:Hh,faToriiGate:KM,faFrog:vg,faBucket:P7,faImage:O7,faMicrophone:ah,faCow:qM,faCaretUp:Ag,faScrewdriver:R7,faFolderClosed:D7,faHouseTsunami:dA,faSquareNfi:QM,faArrowUpFromGroundWater:JM,faMartiniGlass:fA,faGlassMartiniAlt:H_,faSquareBinary:N7,faRotateLeft:Y_,faRotateBack:$M,faRotateBackward:pA,faUndoAlt:mA,faTableColumns:w7,faColumns:y2,faLemon:gA,faHeadSideMask:Cg,faHandshake:_A,faGem:B7,faDolly:Q0,faDollyBox:X_,faSmoking:xg,faMinimize:Z_,faCompressArrowsAlt:eE,faMonument:Y3,faSnowplow:z7,faAnglesRight:vA,faAngleDoubleRight:F7,faCannabis:k7,faCirclePlay:X3,faPlayCircle:Ia,faTablets:K_,faEthernet:U7,faEuroSign:bg,faEur:AA,faEuro:xa,faChair:CA,faCircleCheck:J0,faCheckCircle:q_,faCircleStop:Z3,faStopCircle:$0,faCompassDrafting:xA,faDraftingCompass:ep,faPlateWheat:tE,faIcicles:K3,faPersonShelter:al,faNeuter:q3,faIdBadge:Sg,faMarker:yg,faFaceLaughBeam:Q_,faLaughBeam:Ho,faHelicopterSymbol:Pd,faUniversalAccess:tp,faCircleChevronUp:Od,faChevronCircleUp:Mg,faLariSign:Rd,faVolcano:x1,faPersonWalkingDashedLineArrowRight:ip,faSterlingSign:oh,faGbp:J_,faPoundSign:Of,faViruses:Eg,faSquarePersonConfined:Rf,faUserTie:Df,faArrowDownLong:bA,faLongArrowDown:$_,faTentArrowDownToLine:SA,faCertificate:Tg,faReplyAll:Q3,faMailReplyAll:j7,faSuitcase:iE,faPersonSkating:yA,faSkating:sE,faFilterCircleDollar:J3,faFunnelDollar:rE,faCameraRetro:nE,faCircleArrowDown:MA,faArrowCircleDown:aE,faFileImport:EA,faArrowRightToFile:V7,faSquareArrowUpRight:TA,faExternalLinkSquare:LA,faBoxOpen:G7,faScroll:IA,faSpa:W7,faLocationPinLock:sp,faPause:$3,faHillAvalanche:H7,faTemperatureEmpty:em,faTemperature0:oE,faThermometer0:Lg,faThermometerEmpty:tm,faBomb:lE,faRegistered:Ig,faAddressCard:e8,faContactCard:im,faVcard:PA,faScaleUnbalancedFlip:OA,faBalanceScaleRight:RA,faSubscript:sm,faDiamondTurnRight:rp,faDirections:t8,faBurst:Pg,faHouseLaptop:Og,faLaptopHouse:DA,faFaceTired:NA,faTired:Y7,faMoneyBills:wA,faSmog:BA,faCrutch:cE,faFontAwesome:i8,faFontAwesomeFlag:y9,faFontAwesomeLogoFull:uE,faCloudArrowUp:Rg,faCloudUpload:hE,faCloudUploadAlt:s8,faPalette:dE,faArrowsTurnRight:zA,faVest:Dg,faFerry:fE,faArrowsDownToPeople:FA,faSeedling:X7,faSprout:kA,faLeftRight:Z7,faArrowsAltH:pE,faBoxesPacking:K7,faCircleArrowLeft:UA,faArrowCircleLeft:mE,faGroupArrowsRotate:q7,faBowlFood:gE,faCandyCane:_E,faArrowDownWideShort:r8,faSortAmountAsc:jA,faSortAmountDown:vE,faCloudBolt:Q7,faThunderstorm:AE,faTextSlash:n8,faRemoveFormat:a8,faFaceSmileWink:Ng,faSmileWink:VA,faFileWord:CE,faFilePowerpoint:J7,faArrowsLeftRight:GA,faArrowsH:rm,faHouseLock:$7,faCloudArrowDown:WA,faCloudDownload:xE,faCloudDownloadAlt:eS,faChildren:tS,faChalkboard:iS,faBlackboard:HA,faUserLargeSlash:sS,faUserAltSlash:bE,faEnvelopeOpen:SE,faHandshakeSimpleSlash:YA,faHandshakeAltSlash:yE,faMattressPillow:rS,faGuaraniSign:ME,faArrowsRotate:XA,faRefresh:nS,faSync:o8,faFireExtinguisher:wg,faCruzeiroSign:aS,faGreaterThanEqual:np,faShieldHalved:ZA,faShieldAlt:ap,faBookAtlas:nm,faAtlas:KA,faVirus:Nf,faEnvelopeCircleCheck:M2,faLayerGroup:Dd,faArrowsToDot:op,faArchway:Bg,faHeartCircleCheck:am,faHouseChimneyCrack:E2,faHouseDamage:T2,faFileZipper:wf,faFileArchive:lp,faSquare:lh,faMartiniGlassEmpty:om,faGlassMartini:zg,faCouch:Nd,faCediSign:wd,faItalic:ba,faTableCellsColumnLock:ol,faChurch:lm,faCommentsDollar:Do,faDemocrat:_c,faZ:Pa,faPersonSkiing:ll,faSkiing:Bf,faRoadLock:Su,faA:yu,faTemperatureArrowDown:Mu,faTemperatureDown:ch,faFeatherPointed:b1,faFeatherAlt:l8,faP:cp,faSnowflake:cm,faNewspaper:uh,faRectangleAd:up,faAd:qA,faCircleArrowRight:Fg,faArrowCircleRight:QA,faFilterCircleXmark:kg,faLocust:um,faSort:Bd,faUnsorted:L2,faListOl:c8,faList12:oS,faListNumeric:u8,faPersonDressBurst:zd,faMoneyCheckDollar:hp,faMoneyCheckAlt:JA,faVectorSquare:$A,faBreadSlice:lS,faLanguage:EE,faFaceKissWinkHeart:h8,faKissWinkHeart:eC,faFilter:tC,faQuestion:Ug,faFileSignature:cS,faUpDownLeftRight:jg,faArrowsAlt:d8,faHouseChimneyUser:uS,faHandHoldingHeart:Vg,faPuzzlePiece:hh,faMoneyCheck:I2,faStarHalfStroke:Fd,faStarHalfAlt:iC,faCode:sC,faWhiskeyGlass:iu,faGlassWhiskey:dp,faBuildingCircleExclamation:S1,faMagnifyingGlassChart:y1,faArrowUpRightFromSquare:hm,faExternalLink:dm,faCubesStacked:hS,faWonSign:El,faKrw:Eu,faWon:fm,faVirusCovid:P2,faAustralSign:O2,faF:Tl,faLeaf:fp,faRoad:kd,faTaxi:R2,faCab:D2,faPersonCirclePlus:Ga,faChartPie:Wa,faPieChart:ao,faBoltLightning:N2,faSackXmark:Tu,faFileExcel:Ha,faFileContract:oo,faFishFins:Lu,faBuildingFlag:pp,faFaceGrinBeam:Ya,faGrinBeam:TE,faObjectUngroup:mp,faPoop:Gg,faLocationPin:pm,faMapMarker:vc,faKaaba:Wg,faToiletPaper:Ud,faHelmetSafety:jd,faHardHat:Yh,faHatHard:zf,faEject:mm,faCircleRight:Ac,faArrowAltCircleRight:M1,faPlaneCircleCheck:w2,faFaceRollingEyes:gp,faMehRollingEyes:Hg,faObjectGroup:Gl,faChartLine:Ff,faLineChart:gm,faMaskVentilator:_p,faArrowRight:Yg,faSignsPost:kf,faMapSigns:_m,faCashRegister:vm,faPersonCircleQuestion:f8,faH:rC,faTarp:nC,faScrewdriverWrench:Uf,faTools:xo,faArrowsToEye:dS,faPlugCircleBolt:aC,faHeart:p8,faMarsAndVenus:B2,faHouseUser:Xa,faHomeUser:m8,faDumpsterFire:Xg,faHouseCrack:Am,faMartiniGlassCitrus:Zg,faCocktail:Xh,faFaceSurprise:Vd,faSurprise:Kg,faBottleWater:oC,faCirclePause:jf,faPauseCircle:Vf,faToiletPaperSlash:E1,faAppleWhole:Cm,faAppleAlt:fS,faKitchenSet:Gf,faR:LE,faTemperatureQuarter:xm,faTemperature1:vp,faThermometer1:g8,faThermometerQuarter:qg,faCube:lC,faBitcoinSign:Ap,faShieldDog:_8,faSolarPanel:bm,faLockOpen:Qg,faElevator:Jg,faMoneyBillTransfer:$g,faMoneyBillTrendUp:cC,faHouseFloodWaterCircleArrowRight:Cp,faSquarePollHorizontal:Sm,faPollH:v8,faCircle:uC,faBackwardFast:A8,faFastBackward:e6,faRecycle:C8,faUserAstronaut:hC,faPlaneSlash:dC,faTrademark:fC,faBasketball:pC,faBasketballBall:mC,faSatelliteDish:x8,faCircleUp:ym,faArrowAltCircleUp:gC,faMobileScreenButton:t6,faMobileAlt:b8,faVolumeHigh:xp,faVolumeUp:Wf,faUsersRays:Mm,faWallet:bp,faClipboardCheck:_C,faFileAudio:Hf,faBurger:Sp,faHamburger:S8,faWrench:y8,faBugs:Em,faRupeeSign:Zh,faRupee:yp,faFileImage:M8,faCircleQuestion:i6,faQuestionCircle:Tm,faPlaneDeparture:Gd,faHandshakeSlash:T1,faBookBookmark:Lm,faCodeBranch:Im,faHatCowboy:E8,faBridge:vC,faPhoneFlip:Yf,faPhoneAlt:s6,faTruckFront:Pm,faCat:dh,faAnchorCircleExclamation:T8,faTruckField:Mp,faRoute:r6,faClipboardQuestion:n6,faPanorama:Wl,faCommentMedical:z2,faTeethOpen:a6,faFileCircleMinus:Om,faTags:AC,faWineGlass:Kh,faForwardFast:qh,faFastForward:o6,faFaceMehBlank:Cc,faMehBlank:F2,faSquareParking:Iu,faParking:Ep,faHouseSignal:Rm,faBarsProgress:su,faTasksAlt:Xf,faFaucetDrip:Wd,faCartFlatbed:pS,faDollyFlatbed:mS,faBanSmoking:L8,faSmokingBan:CC,faTerminal:Dm,faMobileButton:I8,faHouseMedicalFlag:xC,faBasketShopping:Tp,faShoppingBasket:P8,faTape:O8,faBusSimple:Nm,faBusAlt:bC,faEye:Lp,faFaceSadCry:R8,faSadCry:cs,faAudioDescription:ru,faPersonMilitaryToPerson:SC,faFileShield:D8,faUserSlash:wm,faPen:Li,faTowerObservation:ca,faFileCode:Yo,faSignal:Zf,faSignal5:k2,faSignalPerfect:ua,faBus:pi,faHeartCircleXmark:Fn,faHouseChimney:Pu,faHomeLg:Ip,faWindowMaximize:$n,faFaceFrown:Dt,faFrown:xc,faPrescription:U2,faShop:Hl,faStoreAlt:Mn,faFloppyDisk:rs,faSave:Bm,faVihara:gS,faScaleUnbalanced:bo,faBalanceScaleLeft:j2,faSortUp:Kf,faSortAsc:l6,faCommentDots:c6,faCommenting:L1,faPlantWilt:V2,faDiamond:yC,faFaceGrinSquint:zm,faGrinSquint:Fm,faHandHoldingDollar:Pp,faHandHoldingUsd:G2,faChartDiagram:km,faBacterium:Op,faHandPointer:Um,faDrumSteelpan:qf,faHandScissors:Qh,faHandsPraying:Qf,faPrayingHands:Rp,faArrowRotateRight:I1,faArrowRightRotate:W2,faArrowRotateForward:Jf,faRedo:Dp,faWebAwesome:N8,faBiohazard:H2,faLocationCrosshairs:P1,faLocation:MC,faMarsDouble:Np,faChildDress:w8,faUsersBetweenLines:jm,faLungsVirus:wp,faFaceGrinTears:u6,faGrinTears:Vm,faPhone:B8,faCalendarXmark:Gm,faCalendarTimes:EC,faChildReaching:Bp,faHeadSideVirus:z8,faUserGear:F8,faUserCog:Wm,faArrowUp19:_S,faSortNumericUp:k8,faDoorClosed:U8,faShieldVirus:j8,faDiceSix:h6,faMosquitoNet:V8,faFileFragment:d6,faBridgeWater:G8,faPersonBooth:TC,faTextWidth:LC,faHatWizard:W8,faPenFancy:fh,faPersonDigging:ph,faDigging:f6,faTrash:H8,faGaugeSimple:or,faGaugeSimpleMed:mh,faTachometerAverage:gh,faBookMedical:$f,faPoo:IC,faQuoteRight:nr,faQuoteRightAlt:Hm,faShirt:p6,faTShirt:e0,faTshirt:PC,faCubes:zp,faDivide:Jh,faTengeSign:Fp,faTenge:t0,faHeadphones:m6,faHandsHolding:kp,faHandsClapping:$h,faRepublican:O1,faArrowLeft:Up,faPersonCircleXmark:Ym,faRuler:bc,faAlignLeft:OC,faDiceD6:i0,faRestroom:Y8,faJ:g6,faUsersViewfinder:Sc,faFileVideo:IE,faUpRightFromSquare:RC,faExternalLinkAlt:vS,faTableCells:DC,faTh:X8,faFilePdf:NC,faBookBible:Z8,faBible:wC,faO:BC,faSuitcaseMedical:zC,faMedkit:FC,faUserSecret:kC,faOtter:UC,faPersonDress:jC,faFemale:AS,faCommentDollar:VC,faBusinessTime:_6,faBriefcaseClock:K8,faTableCellsLarge:q8,faThLarge:PE,faBookTanakh:v6,faTanakh:Xm,faPhoneVolume:A6,faVolumeControlPhone:Q8,faHatCowboySide:CS,faClipboardUser:J8,faChild:GC,faLiraSign:WC,faSatellite:xS,faPlaneLock:bS,faTag:SS,faComment:yS,faCakeCandles:C6,faBirthdayCake:OE,faCake:HC,faEnvelope:MS,faAnglesUp:ES,faAngleDoubleUp:x6,faPaperclip:RE,faArrowRightToCity:$8,faRibbon:TS,faLungs:ev,faArrowUp91:Hd,faSortNumericUpAlt:DE,faLitecoinSign:YC,faBorderNone:Zm,faCircleNodes:tv,faParachuteBox:Yd,faIndent:XC,faTruckFieldUn:ZC,faHourglass:s0,faHourglassEmpty:Km,faMountain:KC,faUserDoctor:iv,faUserMd:qC,faCircleInfo:qm,faInfoCircle:b6,faCloudMeatball:sv,faCamera:QC,faCameraAlt:JC,faSquareVirus:S6,faMeteor:NE,faCarOn:$C,faSleigh:ex,faArrowDown19:rv,faSortNumericAsc:LS,faSortNumericDown:wE,faHandHoldingDroplet:tx,faHandHoldingWater:IS,faWater:ix,faCalendarCheck:BE,faBraille:zE,faPrescriptionBottleMedical:nv,faPrescriptionBottleAlt:FE,faLandmark:PS,faTruck:kE,faCrosshairs:UE,faPersonCane:sx,faTent:jE,faVestPatches:rx,faCheckDouble:VE,faArrowDownAZ:av,faSortAlphaAsc:OS,faSortAlphaDown:RS,faMoneyBillWheat:ov,faCookie:nx,faArrowRotateLeft:Y2,faArrowLeftRotate:GE,faArrowRotateBack:lv,faArrowRotateBackward:ax,faUndo:ox,faHardDrive:r0,faHdd:WE,faFaceGrinSquintTears:cv,faGrinSquintTears:y6,faDumbbell:HE,faRectangleList:uv,faListAlt:YE,faTarpDroplet:hv,faHouseMedicalCircleCheck:jp,faPersonSkiingNordic:dv,faSkiingNordic:lo,faCalendarPlus:fv,faPlaneArrival:lx,faCircleLeft:Qm,faArrowAltCircleLeft:Jm,faTrainSubway:Hr,faSubway:_h,faChartGantt:DS,faIndianRupeeSign:Ou,faIndianRupee:$m,faInr:Yl,faCropSimple:Ru,faCropAlt:M6,faMoneyBill1:Du,faMoneyBillAlt:js,faLeftLong:cl,faLongArrowAltLeft:Sa,faDna:Ll,faVirusSlash:vh,faMinus:Vs,faSubtract:on,faChess:Oa,faArrowLeftLong:So,faLongArrowLeft:Ah,faPlugCircleCheck:R1,faStreetView:Xo,faFrancSign:e4,faVolumeOff:D1,faHandsAslInterpreting:n0,faAmericanSignLanguageInterpreting:a0,faAslInterpreting:pv,faHandsAmericanSignLanguageInterpreting:o0,faGear:E6,faCog:ms,faDropletSlash:t4,faTintSlash:cx,faMosque:Xd,faMosquito:Zd,faStarOfDavid:fs,faPersonMilitaryRifle:X2,faCartShopping:i4,faShoppingCart:l0,faVials:Kd,faPlugCirclePlus:Nu,faPlaceOfWorship:T6,faGripVertical:c0,faHexagonNodes:L6,faArrowTurnUp:mv,faLevelUp:ed,faU:Vp,faSquareRootVariable:N1,faSquareRootAlt:qd,faClock:s4,faClockFour:r4,faBackwardStep:td,faStepBackward:Z2,faPallet:K2,faFaucet:Xl,faBaseballBatBall:w1,faS:n4,faTimeline:ul,faKeyboard:gv,faCaretDown:Za,faHouseChimneyMedical:B1,faClinicMedical:XE,faTemperatureThreeQuarters:Ka,faTemperature3:a4,faThermometer3:id,faThermometerThreeQuarters:ux,faMobileScreen:hx,faMobileAndroidAlt:q2,faPlaneUp:dx,faPiggyBank:NS,faBatteryHalf:_v,faBattery3:o4,faMountainCity:fx,faCoins:l4,faKhanda:px,faSliders:c4,faSlidersH:I6,faFolderTree:u4,faNetworkWired:Q2,faMapPin:wS,faHamsa:P6,faCentSign:BS,faFlask:vv,faPersonPregnant:Av,faWandSparkles:ZE,faEllipsisVertical:u0,faEllipsisV:KE,faTicket:qE,faPowerOff:QE,faRightLong:mx,faLongArrowAltRight:Gp,faFlagUsa:JE,faLaptopFile:Wp,faTty:zS,faTeletype:gx,faDiagramNext:FS,faPersonRifle:$E,faHouseMedicalCircleExclamation:yc,faClosedCaptioning:kS,faPersonHiking:_x,faHiking:eT,faVenusDouble:tT,faImages:sd,faCalculator:iT,faPeoplePulling:vx,faN:sT,faCableCar:Ax,faTram:z1,faCloudRain:rT,faBuildingCircleXmark:nT,faShip:aT,faArrowsDownToLine:Cx,faDownload:h0,faFaceGrin:US,faGrin:Cv,faDeleteLeft:xx,faBackspace:xv,faEyeDropper:bx,faEyeDropperEmpty:bv,faEyedropper:Sv,faFileCircleCheck:yv,faForward:h4,faMobile:O6,faMobileAndroid:d4,faMobilePhone:jS,faFaceMeh:Mv,faMeh:Sx,faAlignCenter:yx,faBookSkull:f4,faBookDead:VS,faIdCard:p4,faDriversLicense:Ev,faOutdent:Mx,faDedent:F1,faHeartCircleExclamation:GS,faHouse:d0,faHome:R6,faHomeAlt:wu,faHomeLgAlt:Ch,faCalendarWeek:WS,faLaptopMedical:k1,faB:Tv,faFileMedical:Bu,faDiceOne:Hp,faKiwiBird:HS,faArrowRightArrowLeft:Yp,faExchange:Ex,faRotateRight:Xp,faRedoAlt:YS,faRotateForward:Lv,faUtensils:Tx,faCutlery:oT,faArrowUpWideShort:f0,faSortAmountUp:XS,faMillSign:Lx,faBowlRice:ZS,faSkull:xh,faTowerBroadcast:Zp,faBroadcastTower:KS,faTruckPickup:lT,faUpLong:p0,faLongArrowAltUp:bh,faStop:Iv,faCodeMerge:Ix,faUpload:Px,faHurricane:zu,faMound:cT,faToiletPortable:uT,faCompactDisc:Ox,faFileArrowDown:m4,faFileDownload:Kp,faCaravan:Rx,faShieldCat:hT,faBolt:Pv,faZap:D6,faGlassWater:dT,faOilWell:Dx,faVault:fT,faMars:Ov,faToilet:Rv,faPlaneCircleXmark:Nx,faYenSign:N6,faCny:pT,faJpy:mT,faRmb:qp,faYen:w6,faRubleSign:J2,faRouble:wx,faRub:gT,faRuble:B6,faSun:Bx,faGuitar:z6,faFaceLaughWink:F6,faLaughWink:qS,faHorseHead:_T,faBoreHole:QS,faIndustry:JS,faCircleDown:k6,faArrowAltCircleDown:zx,faArrowsTurnToDots:$S,faFlorinSign:Fx,faArrowDownShortWide:U6,faSortAmountDesc:Dv,faSortAmountDownAlt:kx,faLessThan:Ux,faAngleDown:jx,faCarTunnel:j6,faHeadSideCough:Vx,faGripLines:Gx,faThumbsDown:Nv,faUserLock:ey,faArrowRightLong:Wx,faLongArrowRight:ty,faAnchorCircleXmark:iy,faEllipsis:g4,faEllipsisH:vT,faChessPawn:sy,faKitMedical:Qp,faFirstAid:AT,faPersonThroughWindow:V6,faToolbox:ry,faHandsHoldingCircle:wv,faBug:Jp,faCreditCard:ny,faCreditCardAlt:ay,faCar:_4,faAutomobile:Bv,faHandHoldingHand:CT,faBookOpenReader:Hx,faBookReader:xT,faMountainSun:G6,faArrowsLeftRightToLine:oy,faDiceD20:ly,faTruckDroplet:cy,faFileCircleXmark:bT,faTemperatureArrowUp:uy,faTemperatureUp:hy,faMedal:Yx,faBed:C,faSquareH:y,faHSquare:B,faPodcast:U,faTemperatureFull:Z,faTemperature4:g,faThermometer4:v,faThermometerFull:L,faBell:z,faSuperscript:j,faPlugCircleXmark:J,faStarOfLife:le,faPhoneSlash:ce,faPaintRoller:_e,faHandshakeAngle:Oe,faHandsHelping:Fe,faLocationDot:pt,faMapMarkerAlt:it,faFile:Mt,faGreaterThan:Jt,faPersonSwimming:Ai,faSwimmer:Ct,faArrowDown:Ft,faDroplet:ut,faTint:ni,faEraser:Ei,faEarthAmericas:ht,faEarth:Vt,faEarthAmerica:Et,faGlobeAmericas:di,faPersonBurst:yi,faDove:Gi,faBatteryEmpty:_s,faBattery0:$s,faSocks:br,faInbox:Ks,faSection:kn,faGaugeHigh:Ns,faTachometerAlt:sn,faTachometerAltFast:qa,faEnvelopeOpenText:co,faHospital:hl,faHospitalAlt:uo,faHospitalWide:m0,faWineBottle:W6,faChessRook:ST,faBarsStaggered:U1,faReorder:nI,faStream:Pz,faDharmachakra:Oz,faHotdog:Rz,faPersonWalkingWithCane:M9,faBlind:Dz,faDrum:Nz,faIceCream:wz,faHeartCircleBolt:Bz,faFax:mR,faParagraph:zz,faCheckToSlot:gR,faVoteYea:Fz,faStarHalf:kz,faBoxesStacked:aI,faBoxes:Uz,faBoxesAlt:_R,faLink:vR,faChain:jz,faEarListen:E9,faAssistiveListeningSystems:Vz,faTreeCity:Gz,faPlay:AR,faFont:Wz,faTableCellsRowLock:CR,faRupiahSign:Hz,faMagnifyingGlass:xR,faSearch:Yz,faTableTennisPaddleBall:oI,faPingPongPaddleBall:Xz,faTableTennis:Zz,faPersonDotsFromLine:lI,faDiagnoses:Kz,faTrashCanArrowUp:T9,faTrashRestoreAlt:qz,faNairaSign:Qz,faCartArrowDown:bR,faWalkieTalkie:Jz,faFilePen:cI,faFileEdit:$z,faReceipt:eF,faSquarePen:uI,faPenSquare:tF,faPencilSquare:SR,faSuitcaseRolling:iF,faPersonCircleExclamation:sF,faChevronDown:hI,faBatteryFull:dI,faBattery:rF,faBattery5:nF,faSkullCrossbones:aF,faCodeCompare:oF,faListUl:L9,faListDots:lF,faSchoolLock:cF,faTowerCell:uF,faDownLong:yR,faLongArrowAltDown:MR,faRankingStar:hF,faChessKing:dF,faPersonHarassing:fF,faBrazilianRealSign:ER,faLandmarkDome:TR,faLandmarkAlt:pF,faArrowUp:mF,faTv:fI,faTelevision:gF,faTvAlt:LR,faShrimp:_F,faListCheck:IR,faTasks:pI,faJugDetergent:vF,faCircleUser:PR,faUserCircle:AF,faUserShield:OR,faWind:CF,faCarBurst:RR,faCarCrash:DR,faY:xF,faPersonSnowboarding:NR,faSnowboarding:bF,faTruckFast:mI,faShippingFast:SF,faFish:yF,faUserGraduate:wR,faCircleHalfStroke:BR,faAdjust:zR,faClapperboard:MF,faCircleRadiation:FR,faRadiationAlt:EF,faBaseball:gI,faBaseballBall:TF,faJetFighterUp:LF,faDiagramProject:_I,faProjectDiagram:IF,faCopy:kR,faVolumeXmark:vI,faVolumeMute:PF,faVolumeTimes:UR,faHandSparkles:OF,faGrip:jR,faGripHorizontal:AI,faShareFromSquare:VR,faShareSquare:RF,faChildCombatant:GR,faChildRifle:WR,faGun:DF,faSquarePhone:CI,faPhoneSquare:NF,faPlus:xI,faAdd:wF,faExpand:BF,faComputer:HR,faXmark:yT,faClose:YR,faMultiply:zF,faRemove:FF,faTimes:kF,faArrowsUpDownLeftRight:dy,faArrows:UF,faChalkboardUser:XR,faChalkboardTeacher:jF,faPesoSign:VF,faBuildingShield:ZR,faBaby:GF,faUsersLine:KR,faQuoteLeft:qR,faQuoteLeftAlt:WF,faTractor:HF,faTrashArrowUp:QR,faTrashRestore:YF,faArrowDownUpLock:JR,faLinesLeaning:XF,faRulerCombined:ZF,faCopyright:$R,faEquals:KF,faBlender:qF,faTeeth:QF,faShekelSign:MT,faIls:JF,faShekel:$F,faSheqel:ek,faSheqelSign:tk,faMap:ET,faRocket:ik,faPhotoFilm:eD,faPhotoVideo:sk,faFolderMinus:rk,faHexagonNodesBolt:nk,faStore:ak,faArrowTrendUp:tD,faPlugCircleMinus:ok,faSignHanging:iD,faSign:lk,faBezierCurve:ck,faBellSlash:uk,faTablet:sD,faTabletAndroid:rD,faSchoolFlag:hk,faFill:dk,faAngleUp:fk,faDrumstickBite:nD,faHollyBerry:pk,faChevronLeft:mk,faBacteria:gk,faHandLizard:_k,faNotdef:vk,faDisease:Ak,faBriefcaseMedical:Ck,faGenderless:xk,faChevronRight:bk,faRetweet:Sk,faCarRear:aD,faCarAlt:yk,faPumpSoap:Mk,faVideoSlash:Ek,faBatteryQuarter:oD,faBattery2:lD,faRadio:Tk,faBabyCarriage:cD,faCarriageBaby:Lk,faTrafficLight:uD,faThermometer:Ik,faVrCardboard:Pk,faHandMiddleFinger:hD,faPercent:dD,faPercentage:Ok,faTruckMoving:Rk,faGlassWaterDroplet:Dk,faDisplay:Nk,faFaceSmile:bI,faSmile:wk,faThumbtack:fD,faThumbTack:Bk,faTrophy:zk,faPersonPraying:SI,faPray:Fk,faHammer:pD,faHandPeace:kk,faRotate:mD,faSyncAlt:gD,faSpinner:Uk,faRobot:jk,faPeace:Vk,faGears:yI,faCogs:Gk,faWarehouse:Wk,faArrowUpRightDots:Hk,faSplotch:Yk,faFaceGrinHearts:MI,faGrinHearts:Xk,faDiceFour:Zk,faSimCard:Kk,faTransgender:_D,faTransgenderAlt:vD,faMercury:qk,faArrowTurnDown:AD,faLevelDown:Qk,faPersonFallingBurst:CD,faAward:Jk,faTicketSimple:xD,faTicketAlt:bD,faBuilding:$k,faAnglesLeft:SD,faAngleDoubleLeft:eU,faQrcode:yD,faClockRotateLeft:MD,faHistory:tU,faFaceGrinBeamSweat:EI,faGrinBeamSweat:iU,faFileExport:ED,faArrowRightFromFile:TD,faShield:LD,faShieldBlank:ID,faArrowUpShortWide:PD,faSortAmountUpAlt:OD,faCommentNodes:sU,faHouseMedical:RD,faGolfBallTee:DD,faGolfBall:ND,faCircleChevronLeft:wD,faChevronCircleLeft:rU,faHouseChimneyWindow:nU,faPenNib:BD,faTentArrowTurnLeft:aU,faTents:zD,faWandMagic:FD,faMagic:oU,faDog:lU,faCarrot:cU,faMoon:uU,faWineGlassEmpty:TI,faWineGlassAlt:hU,faCheese:dU,faYinYang:fU,faMusic:pU,faCodeCommit:kD,faTemperatureLow:mU,faPersonBiking:UD,faBiking:gU,faBroom:_U,faShieldHeart:vU,faGopuram:AU,faEarthOceania:LI,faGlobeOceania:CU,faSquareXmark:II,faTimesSquare:xU,faXmarkSquare:bU,faHashtag:jD,faUpRightAndDownLeftFromCenter:VD,faExpandAlt:PI,faOilCan:SU,faT:yU,faHippo:MU,faChartColumn:GD,faInfinity:EU,faVialCircleCheck:TU,faPersonArrowDownToLine:LU,faVoicemail:IU,faFan:PU,faPersonWalkingLuggage:OU,faUpDown:WD,faArrowsAltV:RU,faCloudMoonRain:DU,faCalendar:NU,faTrailer:wU,faBahai:OI,faHaykal:BU,faSdCard:zU,faDragon:FU,faShoePrints:kU,faCirclePlus:RI,faPlusCircle:UU,faFaceGrinTongueWink:HD,faGrinTongueWink:jU,faHandHolding:VU,faPlugCircleExclamation:YD,faLinkSlash:I9,faChainBroken:XD,faChainSlash:GU,faUnlink:WU,faClone:HU,faPersonWalkingArrowLoopLeft:P9,faArrowUpZA:ZD,faSortAlphaUpAlt:YU,faFireFlameCurved:KD,faFireAlt:XU,faTornado:ZU,faFileCirclePlus:qD,faBookQuran:QD,faQuran:JD,faAnchor:KU,faBorderAll:qU,faFaceAngry:$D,faAngry:eN,faCookieBite:QU,faArrowTrendDown:JU,faRss:tN,faFeed:iN,faDrawPolygon:$U,faScaleBalanced:sN,faBalanceScale:ej,faGaugeSimpleHigh:O9,faTachometer:tj,faTachometerFast:ij,faShower:rN,faDesktop:nN,faDesktopAlt:DI,faM:sj,faTableList:aN,faThList:rj,faCommentSms:NI,faSms:nj,faBook:aj,faUserPlus:oN,faCheck:oj,faBatteryThreeQuarters:wI,faBattery4:lj,faHouseCircleCheck:cj,faAngleLeft:uj,faDiagramSuccessor:hj,faTruckArrowRight:lN,faArrowsSplitUpAndLeft:dj,faHandFist:cN,faFistRaised:fj,faCloudMoon:pj,faBriefcase:mj,faPersonFalling:gj,faImagePortrait:BI,faPortrait:_j,faUserTag:vj,faRug:Aj,faEarthEurope:uN,faGlobeEurope:hN,faCartFlatbedSuitcase:dN,faLuggageCart:Cj,faRectangleXmark:R9,faRectangleTimes:fN,faTimesRectangle:xj,faWindowClose:pN,faBahtSign:bj,faBookOpen:D9,faBookJournalWhills:mN,faJournalWhills:Sj,faHandcuffs:yj,faTriangleExclamation:zI,faExclamationTriangle:Mj,faWarning:gN,faDatabase:Ej,faShare:_N,faMailForward:FI,faBottleDroplet:Tj,faMaskFace:Lj,faHillRockslide:Ij,faRightLeft:kI,faExchangeAlt:Pj,faPaperPlane:Oj,faRoadCircleExclamation:Rj,faDungeon:Dj,faAlignRight:vN,faMoneyBill1Wave:AN,faMoneyBillWaveAlt:Nj,faLifeRing:wj,faHands:UI,faSignLanguage:Bj,faSigning:CN,faCalendarDay:zj,faWaterLadder:jI,faLadderWater:VI,faSwimmingPool:Fj,faArrowsUpDown:xN,faArrowsV:kj,faFaceGrimace:N9,faGrimace:Uj,faWheelchairMove:bN,faWheelchairAlt:SN,faTurnDown:yN,faLevelDownAlt:MN,faPersonWalkingArrowRight:jj,faSquareEnvelope:GI,faEnvelopeSquare:Vj,faDice:EN,faBowlingBall:Gj,faBrain:Wj,faBandage:WI,faBandAid:Hj,faCalendarMinus:Yj,faCircleXmark:HI,faTimesCircle:Xj,faXmarkCircle:TN,faGifts:Zj,faHotel:Kj,faEarthAsia:w9,faGlobeAsia:qj,faIdCardClip:LN,faIdCardAlt:Qj,faMagnifyingGlassPlus:IN,faSearchPlus:PN,faThumbsUp:Jj,faUserClock:ON,faHandDots:RN,faAllergies:DN,faFileInvoice:$j,faWindowMinimize:eV,faMugSaucer:NN,faCoffee:wN,faBrush:tV,faFileHalfDashed:iV,faMask:sV,faMagnifyingGlassMinus:YI,faSearchMinus:rV,faRulerVertical:nV,faUserLarge:BN,faUserAlt:aV,faTrainTram:zN,faUserNurse:oV,faSyringe:lV,faCloudSun:FN,faStopwatch20:cV,faSquareFull:uV,faMagnet:hV,faJar:dV,faNoteSticky:kN,faStickyNote:fV,faBugSlash:pV,faArrowUpFromWaterPump:mV,faBone:gV,faTableCellsRowUnlock:UN,faUserInjured:_V,faFaceSadTear:jN,faSadTear:vV,faPlane:AV,faTentArrowsDown:CV,faExclamation:xV,faArrowsSpin:VN,faPrint:bV,faTurkishLiraSign:XI,faTry:SV,faTurkishLira:yV,faDollarSign:ZI,faDollar:MV,faUsd:KI,faX:EV,faMagnifyingGlassDollar:GN,faSearchDollar:qI,faUsersGear:WN,faUsersCog:TV,faPersonMilitaryPointing:LV,faBuildingColumns:fy,faBank:IV,faInstitution:HN,faMuseum:PV,faUniversity:OV,faUmbrella:TT,faTrowel:RV,faD:DV,faStapler:NV,faMasksTheater:YN,faTheaterMasks:wV,faKipSign:BV,faHandPointLeft:zV,faHandshakeSimple:XN,faHandshakeAlt:ZN,faJetFighter:KN,faFighterJet:FV,faSquareShareNodes:qN,faShareAltSquare:QN,faBarcode:kV,faPlusMinus:JN,faVideo:$N,faVideoCamera:ew,faGraduationCap:tw,faMortarBoard:UV,faHandHoldingMedical:jV,faPersonCircleCheck:iw,faTurnUp:sw,faLevelUpAlt:rw}},"../../../../node_modules/@fortawesome/react-fontawesome/index.es.js":(l,c,u)=>{u.r(c),u.d(c,{FontAwesomeIcon:()=>Q});var f=u("../../../../node_modules/@fortawesome/fontawesome-svg-core/index.mjs"),p=u("../../../../node_modules/prop-types/index.js"),m=u.n(p),_=u("../../../../node_modules/react/index.js");function d(oe,X){var se=Object.keys(oe);if(Object.getOwnPropertySymbols){var ue=Object.getOwnPropertySymbols(oe);X&&(ue=ue.filter(function(he){return Object.getOwnPropertyDescriptor(oe,he).enumerable})),se.push.apply(se,ue)}return se}function h(oe){for(var X=1;X<arguments.length;X++){var se=arguments[X]!=null?arguments[X]:{};X%2?d(Object(se),!0).forEach(function(ue){A(oe,ue,se[ue])}):Object.getOwnPropertyDescriptors?Object.defineProperties(oe,Object.getOwnPropertyDescriptors(se)):d(Object(se)).forEach(function(ue){Object.defineProperty(oe,ue,Object.getOwnPropertyDescriptor(se,ue))})}return oe}function x(oe){"@babel/helpers - typeof";return x=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(X){return typeof X}:function(X){return X&&typeof Symbol=="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X},x(oe)}function A(oe,X,se){return X in oe?Object.defineProperty(oe,X,{value:se,enumerable:!0,configurable:!0,writable:!0}):oe[X]=se,oe}function S(oe,X){if(oe==null)return{};var se={},ue=Object.keys(oe),he,fe;for(fe=0;fe<ue.length;fe++)he=ue[fe],!(X.indexOf(he)>=0)&&(se[he]=oe[he]);return se}function E(oe,X){if(oe==null)return{};var se=S(oe,X),ue,he;if(Object.getOwnPropertySymbols){var fe=Object.getOwnPropertySymbols(oe);for(he=0;he<fe.length;he++)ue=fe[he],!(X.indexOf(ue)>=0)&&Object.prototype.propertyIsEnumerable.call(oe,ue)&&(se[ue]=oe[ue])}return se}function b(oe){return M(oe)||T(oe)||O(oe)||I()}function M(oe){if(Array.isArray(oe))return R(oe)}function T(oe){if(typeof Symbol<"u"&&oe[Symbol.iterator]!=null||oe["@@iterator"]!=null)return Array.from(oe)}function O(oe,X){if(oe){if(typeof oe=="string")return R(oe,X);var se=Object.prototype.toString.call(oe).slice(8,-1);if(se==="Object"&&oe.constructor&&(se=oe.constructor.name),se==="Map"||se==="Set")return Array.from(oe);if(se==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(se))return R(oe,X)}}function R(oe,X){(X==null||X>oe.length)&&(X=oe.length);for(var se=0,ue=new Array(X);se<X;se++)ue[se]=oe[se];return ue}function I(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function N(oe){var X,se=oe.beat,ue=oe.fade,he=oe.beatFade,fe=oe.bounce,Ae=oe.shake,Se=oe.flash,we=oe.spin,ke=oe.spinPulse,st=oe.spinReverse,Ve=oe.pulse,Ke=oe.fixedWidth,ct=oe.inverse,nt=oe.border,at=oe.listItem,xt=oe.flip,Qe=oe.size,kt=oe.rotation,ot=oe.pull,At=(X={"fa-beat":se,"fa-fade":ue,"fa-beat-fade":he,"fa-bounce":fe,"fa-shake":Ae,"fa-flash":Se,"fa-spin":we,"fa-spin-reverse":st,"fa-spin-pulse":ke,"fa-pulse":Ve,"fa-fw":Ke,"fa-inverse":ct,"fa-border":nt,"fa-li":at,"fa-flip":xt===!0,"fa-flip-horizontal":xt==="horizontal"||xt==="both","fa-flip-vertical":xt==="vertical"||xt==="both"},A(X,"fa-".concat(Qe),typeof Qe<"u"&&Qe!==null),A(X,"fa-rotate-".concat(kt),typeof kt<"u"&&kt!==null&&kt!==0),A(X,"fa-pull-".concat(ot),typeof ot<"u"&&ot!==null),A(X,"fa-swap-opacity",oe.swapOpacity),X);return Object.keys(At).map(function(Me){return At[Me]?Me:null}).filter(function(Me){return Me})}function w(oe){return oe=oe-0,oe===oe}function D(oe){return w(oe)?oe:(oe=oe.replace(/[\-_\s]+(.)?/g,function(X,se){return se?se.toUpperCase():""}),oe.substr(0,1).toLowerCase()+oe.substr(1))}var k=["style"];function Y(oe){return oe.charAt(0).toUpperCase()+oe.slice(1)}function V(oe){return oe.split(";").map(function(X){return X.trim()}).filter(function(X){return X}).reduce(function(X,se){var ue=se.indexOf(":"),he=D(se.slice(0,ue)),fe=se.slice(ue+1).trim();return he.startsWith("webkit")?X[Y(he)]=fe:X[he]=fe,X},{})}function ee(oe,X){var se=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof X=="string")return X;var ue=(X.children||[]).map(function(we){return ee(oe,we)}),he=Object.keys(X.attributes||{}).reduce(function(we,ke){var st=X.attributes[ke];switch(ke){case"class":we.attrs.className=st,delete X.attributes.class;break;case"style":we.attrs.style=V(st);break;default:ke.indexOf("aria-")===0||ke.indexOf("data-")===0?we.attrs[ke.toLowerCase()]=st:we.attrs[D(ke)]=st}return we},{attrs:{}}),fe=se.style,Ae=fe===void 0?{}:fe,Se=E(se,k);return he.attrs.style=h(h({},he.attrs.style),Ae),oe.apply(void 0,[X.tag,h(h({},he.attrs),Se)].concat(b(ue)))}var K=!1;try{K=!1}catch{}function ie(){if(!K&&console&&typeof console.error=="function"){var oe;(oe=console).error.apply(oe,arguments)}}function ne(oe){if(oe&&x(oe)==="object"&&oe.prefix&&oe.iconName&&oe.icon)return oe;if(f.parse.icon)return f.parse.icon(oe);if(oe===null)return null;if(oe&&x(oe)==="object"&&oe.prefix&&oe.iconName)return oe;if(Array.isArray(oe)&&oe.length===2)return{prefix:oe[0],iconName:oe[1]};if(typeof oe=="string")return{prefix:"fas",iconName:oe}}function te(oe,X){return Array.isArray(X)&&X.length>0||!Array.isArray(X)&&X?A({},oe,X):{}}var W={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1},Q=_.forwardRef(function(oe,X){var se=h(h({},W),oe),ue=se.icon,he=se.mask,fe=se.symbol,Ae=se.className,Se=se.title,we=se.titleId,ke=se.maskId,st=ne(ue),Ve=te("classes",[].concat(b(N(se)),b((Ae||"").split(" ")))),Ke=te("transform",typeof se.transform=="string"?f.parse.transform(se.transform):se.transform),ct=te("mask",ne(he)),nt=(0,f.icon)(st,h(h(h(h({},Ve),Ke),ct),{},{symbol:fe,title:Se,titleId:we,maskId:ke}));if(!nt)return ie("Could not find icon",st),null;var at=nt.abstract,xt={ref:X};return Object.keys(se).forEach(function(Qe){W.hasOwnProperty(Qe)||(xt[Qe]=se[Qe])}),re(at[0],xt)});Q.displayName="FontAwesomeIcon",Q.propTypes={beat:m().bool,border:m().bool,beatFade:m().bool,bounce:m().bool,className:m().string,fade:m().bool,flash:m().bool,mask:m().oneOfType([m().object,m().array,m().string]),maskId:m().string,fixedWidth:m().bool,inverse:m().bool,flip:m().oneOf([!0,!1,"horizontal","vertical","both"]),icon:m().oneOfType([m().object,m().array,m().string]),listItem:m().bool,pull:m().oneOf(["right","left"]),pulse:m().bool,rotation:m().oneOf([0,90,180,270]),shake:m().bool,size:m().oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:m().bool,spinPulse:m().bool,spinReverse:m().bool,symbol:m().oneOfType([m().bool,m().string]),title:m().string,titleId:m().string,transform:m().oneOfType([m().string,m().object]),swapOpacity:m().bool};var re=ee.bind(null,_.createElement)},"../../../../node_modules/classnames/index.js":(l,c)=>{var u,f;/*!
	Copyright (c) 2018 Jed Watson.
	Licensed under the MIT License (MIT), see
	http://jedwatson.github.io/classnames
*/(function(){var p={}.hasOwnProperty;function m(){for(var h="",x=0;x<arguments.length;x++){var A=arguments[x];A&&(h=d(h,_(A)))}return h}function _(h){if(typeof h=="string"||typeof h=="number")return h;if(typeof h!="object")return"";if(Array.isArray(h))return m.apply(null,h);if(h.toString!==Object.prototype.toString&&!h.toString.toString().includes("[native code]"))return h.toString();var x="";for(var A in h)p.call(h,A)&&h[A]&&(x=d(x,A));return x}function d(h,x){return x?h?h+" "+x:h+x:h}l.exports?(m.default=m,l.exports=m):(u=[],f=(function(){return m}).apply(c,u),f!==void 0&&(l.exports=f))})()},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>h});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`.color-picker-container {
  width: 320px;
  height: 300px;
  background-color: white;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 50% 50px 60px 40px 1fr auto;
  font-family: "acumin-pro-condensed";
  font-weight: normal;
  font-size: 14px;
}
.color-picker-container.with-hints {
  height: 380px;
}
.color-picker-container .color-picker-saturation {
  grid-row: 1;
  grid-column: 1;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 100%;
  position: relative;
  cursor: pointer;
}
.color-picker-container .color-picker-saturation .color-picker-saturation-white {
  grid-row: 1;
  grid-column: 1;
  background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0));
}
.color-picker-container .color-picker-saturation .color-picker-saturation-black {
  grid-row: 1;
  grid-column: 1;
  background: linear-gradient(to top, #000, rgba(0, 0, 0, 0));
}
.color-picker-container .color-picker-saturation .color-picker-saturation-cursor {
  pointer-events: none;
  width: 4px;
  height: 4px;
  box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, 0.3), 0 0 1px 2px rgba(0, 0, 0, 0.4);
  border-radius: 50%;
  transform: translate(-2px, -2px);
  position: absolute;
}
.color-picker-container .color-picker-hue {
  grid-row: 2;
  grid-column: 1;
  display: grid;
  margin: 10px;
  grid-template-columns: 24% 76%;
  grid-template-rows: 100%;
}
.color-picker-container .color-picker-hue .color-picker-hue-color {
  grid-row: 1;
  grid-column: 1;
  align-self: center;
  justify-self: center;
  width: 30px;
  height: 30px;
  border-radius: 15px;
  border: 1px solid black;
}
.color-picker-container .color-picker-hue .color-picker-hue-slider {
  grid-row: 1;
  grid-column: 2;
  align-self: center;
  height: 16px;
  position: relative;
  cursor: pointer;
  background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);
}
.color-picker-container .color-picker-hue .color-picker-hue-slider .color-picker-hue-cursor {
  pointer-events: none;
  width: 8px;
  height: 18px;
  transform: translate(-4px, -2px);
  background-color: rgb(248, 248, 248);
  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);
  position: absolute;
}
.color-picker-container .color-picker-component {
  display: grid;
  margin: 5px;
  grid-template-columns: 100%;
  grid-template-rows: 50% 50%;
}
.color-picker-container .color-picker-component .color-picker-component-value {
  justify-self: center;
  align-self: center;
  grid-row: 1;
  grid-column: 1;
  margin-bottom: 4px;
}
.color-picker-container .color-picker-component .color-picker-component-value input {
  width: 50px;
}
.color-picker-container .color-picker-component .color-picker-component-label {
  justify-self: center;
  align-self: center;
  grid-row: 2;
  grid-column: 1;
  color: black;
}
.color-picker-container .color-picker-rgb {
  grid-row: 3;
  grid-column: 1;
  display: grid;
  margin: 10px;
  grid-template-columns: 20% 6.66% 20% 6.66% 20% 6.66% 20%;
  grid-template-rows: 100%;
}
.color-picker-container .red {
  grid-row: 1;
  grid-column: 1;
}
.color-picker-container .green {
  grid-row: 1;
  grid-column: 3;
}
.color-picker-container .blue {
  grid-row: 1;
  grid-column: 5;
}
.color-picker-container .alpha {
  grid-row: 1;
  grid-column: 7;
}
.color-picker-container .alpha.grayed {
  opacity: 0.5;
}
.color-picker-container .color-picker-hex {
  grid-row: 4;
  grid-column: 1;
  display: grid;
  grid-template-columns: 20% 80%;
  grid-template-rows: 100%;
}
.color-picker-container .color-picker-hex .color-picker-hex-label {
  justify-self: center;
  align-self: center;
  grid-row: 1;
  grid-column: 1;
  margin-left: 10px;
  color: black;
}
.color-picker-container .color-picker-hex .color-picker-hex-value {
  justify-self: left;
  align-self: center;
  grid-row: 1;
  grid-column: 2;
  margin-left: 10px;
  margin-right: 10px;
}
.color-picker-container .color-picker-hex .color-picker-hex-value input {
  width: 70px;
}
.color-picker-container .color-picker-warning {
  color: black;
  font-size: 11px;
  padding: 4px;
  justify-self: left;
  align-self: center;
  grid-row: 6;
  grid-column: 1;
}`,"",{version:3,sources:["webpack://./../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.scss"],names:[],mappings:"AAAA;EACI,YAAA;EACA,aAAA;EACA,uBAAA;EACA,aAAA;EACA,2BAAA;EACA,+CAAA;EACA,mCAAA;EACA,mBAAA;EACA,eAAA;AACJ;AACI;EACI,aAAA;AACR;AAEI;EACI,WAAA;EACA,cAAA;EACA,aAAA;EACA,2BAAA;EACA,wBAAA;EACA,kBAAA;EACA,eAAA;AAAR;AAEQ;EACI,WAAA;EACA,cAAA;EAEA,mEAAA;AADZ;AAIQ;EACI,WAAA;EACA,cAAA;EAEA,2DAAA;AAHZ;AAMQ;EACI,oBAAA;EACA,UAAA;EACA,WAAA;EACA,kGACI;EAGJ,kBAAA;EACA,gCAAA;EACA,kBAAA;AAPZ;AAWI;EACI,WAAA;EACA,cAAA;EACA,aAAA;EACA,YAAA;EACA,8BAAA;EACA,wBAAA;AATR;AAWQ;EACI,WAAA;EACA,cAAA;EACA,kBAAA;EACA,oBAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;AATZ;AAYQ;EACI,WAAA;EACA,cAAA;EACA,kBAAA;EACA,YAAA;EACA,kBAAA;EACA,eAAA;EAEA,2GAAA;AAXZ;AAaY;EACI,oBAAA;EACA,UAAA;EACA,YAAA;EACA,gCAAA;EACA,oCAAA;EACA,2CAAA;EACA,kBAAA;AAXhB;AAgBI;EACI,aAAA;EACA,WAAA;EACA,2BAAA;EACA,2BAAA;AAdR;AAgBQ;EACI,oBAAA;EACA,kBAAA;EACA,WAAA;EACA,cAAA;EACA,kBAAA;AAdZ;AAgBY;EACI,WAAA;AAdhB;AAkBQ;EACI,oBAAA;EACA,kBAAA;EACA,WAAA;EACA,cAAA;EACA,YAAA;AAhBZ;AAoBI;EACI,WAAA;EACA,cAAA;EACA,aAAA;EACA,YAAA;EACA,wDAAA;EACA,wBAAA;AAlBR;AAqBI;EACI,WAAA;EACA,cAAA;AAnBR;AAsBI;EACI,WAAA;EACA,cAAA;AApBR;AAuBI;EACI,WAAA;EACA,cAAA;AArBR;AAwBI;EACI,WAAA;EACA,cAAA;AAtBR;AAwBQ;EACI,YAAA;AAtBZ;AA0BI;EACI,WAAA;EACA,cAAA;EACA,aAAA;EACA,8BAAA;EACA,wBAAA;AAxBR;AA0BQ;EACI,oBAAA;EACA,kBAAA;EACA,WAAA;EACA,cAAA;EACA,iBAAA;EACA,YAAA;AAxBZ;AA2BQ;EACI,kBAAA;EACA,kBAAA;EACA,WAAA;EACA,cAAA;EACA,iBAAA;EACA,kBAAA;AAzBZ;AA2BY;EACI,WAAA;AAzBhB;AA8BI;EACI,YAAA;EACA,eAAA;EACA,YAAA;EACA,kBAAA;EACA,kBAAA;EACA,WAAA;EACA,cAAA;AA5BR",sourcesContent:[`.color-picker-container {\r
    width: 320px;\r
    height: 300px;\r
    background-color: white;\r
    display: grid;\r
    grid-template-columns: 100%;\r
    grid-template-rows: 50% 50px 60px 40px 1fr auto;\r
    font-family: "acumin-pro-condensed";\r
    font-weight: normal;\r
    font-size: 14px;\r
\r
    &.with-hints {\r
        height: 380px;\r
    }\r
\r
    .color-picker-saturation {\r
        grid-row: 1;\r
        grid-column: 1;\r
        display: grid;\r
        grid-template-columns: 100%;\r
        grid-template-rows: 100%;\r
        position: relative;\r
        cursor: pointer;\r
\r
        .color-picker-saturation-white {\r
            grid-row: 1;\r
            grid-column: 1;\r
\r
            background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0));\r
        }\r
\r
        .color-picker-saturation-black {\r
            grid-row: 1;\r
            grid-column: 1;\r
\r
            background: linear-gradient(to top, #000, rgba(0, 0, 0, 0));\r
        }\r
\r
        .color-picker-saturation-cursor {\r
            pointer-events: none;\r
            width: 4px;\r
            height: 4px;\r
            box-shadow:\r
                0 0 0 1.5px #fff,\r
                inset 0 0 1px 1px rgba(0, 0, 0, 0.3),\r
                0 0 1px 2px rgba(0, 0, 0, 0.4);\r
            border-radius: 50%;\r
            transform: translate(-2px, -2px);\r
            position: absolute;\r
        }\r
    }\r
\r
    .color-picker-hue {\r
        grid-row: 2;\r
        grid-column: 1;\r
        display: grid;\r
        margin: 10px;\r
        grid-template-columns: 24% 76%;\r
        grid-template-rows: 100%;\r
\r
        .color-picker-hue-color {\r
            grid-row: 1;\r
            grid-column: 1;\r
            align-self: center;\r
            justify-self: center;\r
            width: 30px;\r
            height: 30px;\r
            border-radius: 15px;\r
            border: 1px solid black;\r
        }\r
\r
        .color-picker-hue-slider {\r
            grid-row: 1;\r
            grid-column: 2;\r
            align-self: center;\r
            height: 16px;\r
            position: relative;\r
            cursor: pointer;\r
\r
            background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\r
\r
            .color-picker-hue-cursor {\r
                pointer-events: none;\r
                width: 8px;\r
                height: 18px;\r
                transform: translate(-4px, -2px);\r
                background-color: rgb(248, 248, 248);\r
                box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);\r
                position: absolute;\r
            }\r
        }\r
    }\r
\r
    .color-picker-component {\r
        display: grid;\r
        margin: 5px;\r
        grid-template-columns: 100%;\r
        grid-template-rows: 50% 50%;\r
\r
        .color-picker-component-value {\r
            justify-self: center;\r
            align-self: center;\r
            grid-row: 1;\r
            grid-column: 1;\r
            margin-bottom: 4px;\r
\r
            input {\r
                width: 50px;\r
            }\r
        }\r
\r
        .color-picker-component-label {\r
            justify-self: center;\r
            align-self: center;\r
            grid-row: 2;\r
            grid-column: 1;\r
            color: black;\r
        }\r
    }\r
\r
    .color-picker-rgb {\r
        grid-row: 3;\r
        grid-column: 1;\r
        display: grid;\r
        margin: 10px;\r
        grid-template-columns: 20% 6.66% 20% 6.66% 20% 6.66% 20%;\r
        grid-template-rows: 100%;\r
    }\r
\r
    .red {\r
        grid-row: 1;\r
        grid-column: 1;\r
    }\r
\r
    .green {\r
        grid-row: 1;\r
        grid-column: 3;\r
    }\r
\r
    .blue {\r
        grid-row: 1;\r
        grid-column: 5;\r
    }\r
\r
    .alpha {\r
        grid-row: 1;\r
        grid-column: 7;\r
\r
        &.grayed {\r
            opacity: 0.5;\r
        }\r
    }\r
\r
    .color-picker-hex {\r
        grid-row: 4;\r
        grid-column: 1;\r
        display: grid;\r
        grid-template-columns: 20% 80%;\r
        grid-template-rows: 100%;\r
\r
        .color-picker-hex-label {\r
            justify-self: center;\r
            align-self: center;\r
            grid-row: 1;\r
            grid-column: 1;\r
            margin-left: 10px;\r
            color: black;\r
        }\r
\r
        .color-picker-hex-value {\r
            justify-self: left;\r
            align-self: center;\r
            grid-row: 1;\r
            grid-column: 2;\r
            margin-left: 10px;\r
            margin-right: 10px;\r
\r
            input {\r
                width: 70px;\r
            }\r
        }\r
    }\r
\r
    .color-picker-warning {\r
        color: black;\r
        font-size: 11px;\r
        padding: 4px;\r
        justify-self: left;\r
        align-self: center;\r
        grid-row: 6;\r
        grid-column: 1;\r
    }\r
}\r
`],sourceRoot:""}]);const h=d},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/components/log/log.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>h});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`#log-console {
  background: #333333;
  height: 120px;
  box-sizing: border-box;
  margin: 0;
  padding: 10px;
  width: 100%;
  overflow: hidden;
  overflow-y: auto;
}
#log-console .log {
  color: white;
  font-size: 14px;
  font-family: "Courier New", Courier, monospace;
}
#log-console .log.error {
  color: red;
}`,"",{version:3,sources:["webpack://./../../../tools/guiEditor/dist/components/log/log.scss"],names:[],mappings:"AAAA;EACI,mBAAA;EACA,aAAA;EACA,sBAAA;EACA,SAAA;EACA,aAAA;EACA,WAAA;EACA,gBAAA;EACA,gBAAA;AACJ;AACI;EACI,YAAA;EACA,eAAA;EACA,8CAAA;AACR;AACQ;EACI,UAAA;AACZ",sourcesContent:[`#log-console {\r
    background: #333333;\r
    height: 120px;\r
    box-sizing: border-box;\r
    margin: 0;\r
    padding: 10px;\r
    width: 100%;\r
    overflow: hidden;\r
    overflow-y: auto;\r
\r
    .log {\r
        color: white;\r
        font-size: 14px;\r
        font-family: "Courier New", Courier, monospace;\r
\r
        &.error {\r
            color: red;\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const h=d},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/components/propertyTab/propertyTab.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>h});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`:root {
  --backgroundGrey: #aaaaaa;
  --spacingHeight: 30px;
  --button: #333333;
  --buttonBackground: #ffffff;
  --buttonDisabledBackground: #c8c8c8;
  --disabledBackground: #c8c8c8;
  --buttonPressed: #ffffff;
  --buttonPressedBackground: #606060;
  --buttonHoverBackground: #afafaf;
}

#ge-propertyTab {
  user-select: none;
  color: black;
  background: #e2e2e2;
}
#ge-propertyTab * {
  font-family: "acumin-pro-condensed", sans-serif;
  font-size: 12px;
}
#ge-propertyTab #header {
  height: 32px;
  font-size: 16px;
  color: white;
  background: white;
  grid-row: 1;
  text-align: center;
  display: grid;
  grid-template-columns: 30px 1fr;
  user-select: none;
}
#ge-propertyTab #header #logo {
  position: relative;
  grid-column: 1;
  width: 32px;
  height: 32px;
  left: 0;
  display: flex;
  align-self: center;
  justify-self: center;
  filter: invert(1);
}
#ge-propertyTab #header #title {
  background: white;
  color: black;
  grid-column: 2;
  display: grid;
  align-items: center;
  text-align: center;
}
#ge-propertyTab .copy {
  display: none;
}
#ge-propertyTab .range {
  -webkit-appearance: none;
  width: 100%;
  height: 2px;
  background: #bcbcbc;
  border-radius: 5px;
  outline: none;
  opacity: 0.7;
  transition: opacity 0.2s;
  padding: 0;
}
#ge-propertyTab .range:hover {
  opacity: 1;
}
#ge-propertyTab .range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #e2e2e2;
  border: solid;
  border-width: thin;
  cursor: pointer;
}
#ge-propertyTab .range::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgb(0, 0, 0);
  cursor: pointer;
}
#ge-propertyTab input[type=color] {
  -webkit-appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.5);
  padding: 0;
  width: 30px;
  height: 20px;
}
#ge-propertyTab input[type=color]::-webkit-color-swatch-wrapper {
  padding: 0;
}
#ge-propertyTab input[type=color]::-webkit-color-swatch {
  border: none;
}
#ge-propertyTab hr {
  border: 1px solid #d0cece;
}
#ge-propertyTab .icon {
  width: 30px;
  height: 30px;
}
#ge-propertyTab .unit {
  width: 26px;
  height: 26px;
  color: var(--button);
  background-color: var(--buttonBackground);
  border: none;
  margin-top: 2px;
  cursor: pointer;
  margin-left: 2px;
  font-family: "atten-round-new", sans-serif;
  font-weight: 500;
  font-style: normal;
  display: flex;
  justify-content: center;
  align-items: center;
}
#ge-propertyTab .unit:disabled {
  background-color: var(--buttonDisabledBackground);
  cursor: not-allowed;
}
#ge-propertyTab .unit:not(:disabled):hover {
  background-color: var(--buttonHoverBackground);
}
#ge-propertyTab .unit:not(:disabled):active {
  color: var(--buttonPressed);
  background-color: var(--buttonPressedBackground);
}
#ge-propertyTab input,
#ge-propertyTab select {
  outline-style: solid;
  outline-width: 0px;
  outline-color: transparent;
  outline-offset: -1px;
  outline-width: 1px;
  transition: outline-color 0.2s;
  border: transparent;
  padding-left: 5px;
}
#ge-propertyTab input:focus,
#ge-propertyTab select:focus {
  outline-width: 1px;
  outline-color: black;
}
#ge-propertyTab .hasArrows input::-webkit-outer-spin-button,
#ge-propertyTab .hasArrows input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
#ge-propertyTab .sliderLine {
  height: var(--spacingHeight);
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: auto 1fr 20px 1fr;
  flex-grow: 1;
}
#ge-propertyTab .sliderLine .label {
  grid-column: 1;
  display: flex;
  align-items: center;
  min-width: 15px;
  font-weight: 600;
}
#ge-propertyTab .sliderLine .img {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#ge-propertyTab .sliderLine .slider {
  grid-column: 4;
  grid-row: 1;
  margin-right: 5px;
  display: flex;
  align-items: center;
  padding-left: 5px;
}
#ge-propertyTab .sliderLine .floatLine {
  grid-column: 2;
  padding-left: 0px;
  grid-template-columns: 1fr auto;
}
#ge-propertyTab .sliderLine .floatLine .label {
  grid-column: 1;
  display: none;
  align-items: center;
  font-weight: 600;
}
#ge-propertyTab .sliderLine .floatLine .short {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#ge-propertyTab .sliderLine .floatLine .short input {
  width: 100%;
  background-color: white;
  height: 24px;
}
#ge-propertyTab .sliderLine .floatLine .short input::-webkit-outer-spin-button,
#ge-propertyTab .sliderLine .floatLine .short input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
#ge-propertyTab .sliderLine .floatLine .short input[type=number] {
  -webkit-appearance: textfield;
  appearance: textfield;
}
#ge-propertyTab .sliderLine .floatLine .copy {
  display: none;
}
#ge-propertyTab .sliderLine .copy {
  display: none;
}
#ge-propertyTab .ge-divider {
  padding-right: 18px;
  padding-left: 5px;
  display: grid;
  grid-template-columns: auto 1fr;
  padding-top: 1px;
  padding-bottom: 1px;
}
#ge-propertyTab .ge-divider > .textLine + .command-button {
  margin-top: -3px;
  grid-column: 5;
}
#ge-propertyTab .ge-divider.double {
  display: grid;
  grid-template-columns: auto 1fr 5px 1fr;
}
#ge-propertyTab .ge-divider.double > .textInputLine:first-of-type,
#ge-propertyTab .ge-divider.double > .floatLine:first-of-type {
  grid-column: 2;
}
#ge-propertyTab .ge-divider.double > .textInputLine:nth-of-type(2),
#ge-propertyTab .ge-divider.double > .floatLine:nth-of-type(2) {
  grid-column: 4;
}
#ge-propertyTab .ge-divider.double > .command-button {
  grid-column: 5;
  margin-left: 5px;
}
#ge-propertyTab .ge-divider.quad {
  display: grid;
  grid-template-columns: 1fr 5px 1fr 5px 1fr 5px 1fr;
}
#ge-propertyTab .ge-divider.quad > .textInputLine:first-of-type,
#ge-propertyTab .ge-divider.quad > .floatLine:first-of-type {
  grid-column: 1;
}
#ge-propertyTab .ge-divider.quad > .textInputLine:nth-of-type(2),
#ge-propertyTab .ge-divider.quad > .floatLine:nth-of-type(2) {
  grid-column: 3;
}
#ge-propertyTab .ge-divider.quad > .textInputLine:nth-of-type(3),
#ge-propertyTab .ge-divider.quad > .floatLine:nth-of-type(3) {
  grid-column: 5;
}
#ge-propertyTab .ge-divider.quad > .textInputLine:nth-of-type(4),
#ge-propertyTab .ge-divider.quad > .floatLine:nth-of-type(4) {
  grid-column: 7;
}
#ge-propertyTab .ge-grid-divider {
  display: grid;
  grid-template-columns: 150px 1fr auto;
}
#ge-propertyTab .ge-grid-divider .textLine {
  grid-column: auto;
}
#ge-propertyTab .ge-grid-button-divider {
  display: grid;
  grid-template-columns: 60px 60px 60px 60px;
}
#ge-propertyTab .ge-grid-remove {
  display: grid;
  background-color: #c2c2c2;
  margin-bottom: 5px;
  filter: invert(1);
}
#ge-propertyTab .ge-grid-edit {
  display: grid;
  background-color: #878787;
  margin-bottom: 5px;
  filter: invert(1);
}
#ge-propertyTab .ge-grid {
  display: grid;
  margin-bottom: 5px;
}
#ge-propertyTab .ge-divider.double .textInputLine {
  grid-template-columns: auto auto 1fr auto;
}
#ge-propertyTab .textInputLine,
#ge-propertyTab .floatLine {
  user-select: none;
  padding-bottom: 0px;
  padding-top: 0px;
  height: var(--spacingHeight);
  display: grid;
  grid-template-columns: auto auto 1fr;
  flex-grow: 1;
}
#ge-propertyTab .textInputLine .label,
#ge-propertyTab .floatLine .label {
  grid-column: 2;
  display: flex;
  align-items: center;
  min-width: 15px;
  font-weight: 600;
}
#ge-propertyTab .textInputLine .disabled,
#ge-propertyTab .floatLine .disabled {
  color: var(--backgroundGrey);
  background-color: var(--disabledBackground);
}
#ge-propertyTab .textInputLine img,
#ge-propertyTab .floatLine img {
  width: 30px;
}
#ge-propertyTab .textInputLine .img,
#ge-propertyTab .floatLine .img {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#ge-propertyTab .textInputLine .value,
#ge-propertyTab .floatLine .value {
  display: flex;
  align-items: center;
  grid-column: 3;
  background: transparent;
  height: 26px;
  position: relative;
  background-color: white;
  margin-top: 2px;
  overflow-y: hidden;
}
#ge-propertyTab .textInputLine .value input,
#ge-propertyTab .floatLine .value input {
  width: 100%;
  height: 24px;
  color: #333333;
}
#ge-propertyTab .textInputLine .value input.hasArrows,
#ge-propertyTab .floatLine .value input.hasArrows {
  padding-right: 15px;
}
#ge-propertyTab .textInputLine .value .arrows,
#ge-propertyTab .floatLine .value .arrows {
  display: none;
  position: absolute;
  right: 0;
  flex-direction: column;
  cursor: grab;
}
#ge-propertyTab .textInputLine .value .arrows .downArrowIcon,
#ge-propertyTab .textInputLine .value .arrows .upArrowIcon,
#ge-propertyTab .floatLine .value .arrows .downArrowIcon,
#ge-propertyTab .floatLine .value .arrows .upArrowIcon {
  width: 13px;
  height: 13px;
}
#ge-propertyTab .textInputLine .value:hover .arrows, #ge-propertyTab .textInputLine .value:focus .arrows, #ge-propertyTab .textInputLine .value.dragging .arrows,
#ge-propertyTab .floatLine .value:hover .arrows,
#ge-propertyTab .floatLine .value:focus .arrows,
#ge-propertyTab .floatLine .value.dragging .arrows {
  display: flex;
}
#ge-propertyTab .textInputLine .value .arrows:hover,
#ge-propertyTab .floatLine .value .arrows:hover {
  background-color: var(--buttonHoverBackground);
}
#ge-propertyTab .textInputLine .value.dragging .arrows,
#ge-propertyTab .floatLine .value.dragging .arrows {
  background-color: var(--buttonPressedBackground);
}
#ge-propertyTab .textInputLine .value.dragging .arrows .downArrowIcon,
#ge-propertyTab .textInputLine .value.dragging .arrows .upArrowIcon,
#ge-propertyTab .floatLine .value.dragging .arrows .downArrowIcon,
#ge-propertyTab .floatLine .value.dragging .arrows .upArrowIcon {
  filter: brightness(10);
}
#ge-propertyTab .textInputLine .copy,
#ge-propertyTab .floatLine .copy {
  display: none;
}
#ge-propertyTab .textInputLine.withUnits {
  grid-template-columns: auto auto 1fr auto;
}
#ge-propertyTab .textInputArea {
  height: 100%;
  display: grid;
  grid-template-columns: 1fr 120px;
}
#ge-propertyTab .textInputArea .disabled {
  color: var(--backgroundGrey);
  background-color: var(--disabledBackground);
}
#ge-propertyTab .textInputArea .label {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#ge-propertyTab .textInputArea .value {
  display: flex;
  align-items: center;
  grid-column: 2;
}
#ge-propertyTab .textInputArea .value textarea {
  width: calc(150% - 5px);
  margin-left: -50%;
  height: 40px;
}
#ge-propertyTab .paneContainer {
  margin-top: 3px;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 100%;
}
#ge-propertyTab .paneContainer .paneList {
  border-left: 3px solid transparent;
}
#ge-propertyTab .paneContainer:hover .paneList {
  border-left: 3px solid rgba(51, 122, 183, 0.8);
}
#ge-propertyTab .paneContainer:hover .paneContainer-content .header .title {
  border-left: 3px solid rgb(51, 122, 183);
}
#ge-propertyTab .paneContainer .paneContainer-highlight-border {
  grid-row: 1;
  grid-column: 1;
  opacity: 1;
  border: 3px solid red;
  transition: opacity 250ms;
  pointer-events: none;
}
#ge-propertyTab .paneContainer .paneContainer-highlight-border.transparent {
  opacity: 0;
}
#ge-propertyTab .paneContainer .paneContainer-content {
  grid-row: 1;
  grid-column: 1;
}
#ge-propertyTab .paneContainer .paneContainer-content .header {
  display: grid;
  grid-template-columns: 1fr auto;
  background: #cccccc;
  height: var(--spacingHeight);
  padding-bottom: 0px;
  padding-top: 0px;
  padding-right: 5px;
  cursor: pointer;
}
#ge-propertyTab .paneContainer .paneContainer-content .header .title {
  border-left: 3px solid transparent;
  padding-left: 5px;
  grid-column: 1;
  display: flex;
  align-items: center;
}
#ge-propertyTab .paneContainer .paneContainer-content .header .collapse {
  grid-column: 2;
  display: flex;
  align-items: center;
  justify-items: center;
  transform-origin: center;
}
#ge-propertyTab .paneContainer .paneContainer-content .header .collapse.closed {
  transform: rotate(180deg);
}
#ge-propertyTab .paneContainer .paneContainer-content .paneList > div:not(:last-child) {
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);
}
#ge-propertyTab .paneContainer .paneContainer-content .fragment > div:not(:last-child) {
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);
}
#ge-propertyTab .color-picker {
  height: 26px;
  width: 26px;
}
#ge-propertyTab .color-picker .color-rect-background {
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  border: 1px black solid;
  cursor: pointer;
  background: repeating-conic-gradient(#e2e2e2 0% 25%, white 0% 50%) 50%/100% 100%;
}
#ge-propertyTab .color-picker .color-rect-background .color-rect {
  height: 100%;
}
#ge-propertyTab .color-picker .color-picker-cover {
  z-index: 2;
  position: fixed;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
}
#ge-propertyTab .color-picker .color-picker-float {
  position: absolute;
  outline: 1px solid black;
}
#ge-propertyTab .color-picker .color-picker-container {
  background-color: #e2e2e2;
}
#ge-propertyTab .gradient-step {
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 20px 30px 40px auto 20px 30px;
  padding-top: 5px;
  padding-left: 5px;
  padding-bottom: 5px;
}
#ge-propertyTab .gradient-step .step {
  grid-row: 1;
  grid-column: 1;
}
#ge-propertyTab .gradient-step .color {
  grid-row: 1;
  grid-column: 2;
  cursor: pointer;
}
#ge-propertyTab .gradient-step .step-value {
  margin-left: 5px;
  grid-row: 1;
  grid-column: 3;
  text-align: right;
  margin-right: 5px;
}
#ge-propertyTab .gradient-step .step-slider {
  grid-row: 1;
  grid-column: 4;
  display: grid;
  justify-content: stretch;
  align-content: center;
  margin-right: -5px;
  padding-left: 12px;
}
#ge-propertyTab .gradient-step .step-slider input {
  width: 90%;
}
#ge-propertyTab .gradient-step .gradient-copy {
  grid-row: 1;
  grid-column: 5;
  display: grid;
  align-content: center;
  justify-content: center;
}
#ge-propertyTab .gradient-step .gradient-copy .img {
  height: 20px;
  width: 20px;
}
#ge-propertyTab .gradient-step .gradient-copy .img:hover {
  cursor: pointer;
}
#ge-propertyTab .gradient-step .gradient-delete {
  grid-row: 1;
  grid-column: 6;
  display: grid;
  align-content: center;
  justify-content: center;
}
#ge-propertyTab .gradient-step .gradient-delete .img {
  height: 20px;
  width: 20px;
}
#ge-propertyTab .gradient-step .gradient-delete .img:hover {
  cursor: pointer;
}
#ge-propertyTab .alignment-bar {
  display: flex;
  justify-content: center;
  padding-right: 5px;
}
#ge-propertyTab .command-button {
  cursor: pointer;
  width: 30px;
}
#ge-propertyTab .command-button .command-label {
  display: none;
}
#ge-propertyTab .command-button .command-button-icon {
  height: 100%;
  width: 100%;
  display: grid;
  color: white;
  align-content: center;
  justify-content: center;
}
#ge-propertyTab .command-button:hover {
  background-color: white;
}
#ge-propertyTab .command-button .active {
  transform-origin: center;
  background-color: white;
}
#ge-propertyTab .command-button img.active {
  background-color: white;
}
#ge-propertyTab .command-button.disabled {
  background-color: var(--buttonDisabledBackground);
  pointer-events: none;
}
#ge-propertyTab .command-button-alt {
  cursor: pointer;
  width: 40px;
  margin-left: 5px;
  margin-right: 5px;
  background-color: white;
}
#ge-propertyTab .command-button-alt .command-label {
  display: none;
}
#ge-propertyTab .command-button-alt .command-button-icon {
  height: 100%;
  width: 100%;
  display: grid;
  align-content: center;
  justify-content: center;
}
#ge-propertyTab .command-button-alt:hover {
  background-color: #c2c2c2;
  filter: invert(1);
}
#ge-propertyTab .command-button-alt-disabled {
  cursor: pointer;
  pointer-events: none;
  width: 40px;
  margin-left: 5px;
  margin-right: 5px;
  background-color: white;
}
#ge-propertyTab .command-button-alt-disabled .command-label {
  display: none;
}
#ge-propertyTab .command-button-alt-disabled .command-button-icon {
  height: 100%;
  width: 100%;
  display: grid;
  align-content: center;
  justify-content: center;
}
#ge-propertyTab .command-button-alt-disabled img {
  filter: invert(1);
}
#ge-propertyTab .command-button-alt-active {
  cursor: pointer;
  pointer-events: none;
  width: 40px;
  margin-left: 5px;
  margin-right: 5px;
  background-color: #c2c2c2;
  filter: invert(1);
}
#ge-propertyTab .command-button-alt-active .command-label {
  display: none;
}
#ge-propertyTab .command-button-alt-active .command-button-icon {
  height: 100%;
  width: 100%;
  display: grid;
  align-content: center;
  justify-content: center;
}
#ge-propertyTab .floatLine {
  user-select: none;
  height: var(--spacingHeight);
  padding-bottom: 0px;
  padding-top: 0px;
  display: grid;
  grid-template-columns: auto auto 2fr auto;
  flex-grow: 1;
}
#ge-propertyTab .floatLine .label {
  grid-column: 2;
  display: flex;
  align-items: center;
  min-width: 15px;
  font-weight: 600;
}
#ge-propertyTab .floatLine img {
  width: 30px;
}
#ge-propertyTab .floatLine .img {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#ge-propertyTab .floatLine .value {
  display: flex;
  align-items: center;
  grid-column: 3;
  background: transparent;
  height: 26px;
}
#ge-propertyTab .floatLine .value input {
  width: 100%;
  background-color: white;
  height: 24px;
}
#ge-propertyTab .floatLine .short {
  grid-column: 2;
  display: flex;
  align-items: center;
}
#ge-propertyTab .floatLine .short input {
  width: 100%;
}
#ge-propertyTab .floatLine .short input::-webkit-outer-spin-button,
#ge-propertyTab .floatLine .short input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
#ge-propertyTab .floatLine .copy {
  display: none;
}
#ge-propertyTab .vector3Line {
  padding-bottom: 0px;
  padding-top: 0px;
  display: grid;
}
#ge-propertyTab .vector3Line .firstLine {
  display: grid;
  grid-template-columns: 1fr auto 20px;
  height: var(--spacingHeight);
}
#ge-propertyTab .vector3Line .firstLine .label {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#ge-propertyTab .vector3Line .firstLine .vector {
  grid-column: 2;
  display: flex;
  align-items: center;
  text-align: right;
  opacity: 0.8;
}
#ge-propertyTab .vector3Line .firstLine .expand {
  grid-column: 3;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#ge-propertyTab .vector3Line .firstLine .copy {
  display: none;
}
#ge-propertyTab .vector3Line .secondLine {
  display: grid;
  padding-right: 5px;
  border-left: 1px solid rgb(51, 122, 183);
}
#ge-propertyTab .vector3Line .secondLine .no-right-margin {
  margin-right: 0;
}
#ge-propertyTab .vector3Line .secondLine .numeric {
  display: grid;
  grid-template-columns: 1fr auto;
}
#ge-propertyTab .vector3Line .secondLine .numeric-label {
  text-align: right;
  grid-column: 1;
  display: flex;
  align-items: center;
  justify-self: right;
  margin-right: 10px;
}
#ge-propertyTab .vector3Line .secondLine .numeric-value {
  width: 120px;
  grid-column: 2;
  display: flex;
  align-items: center;
  border: 1px solid rgb(51, 122, 183);
}
#ge-propertyTab .buttonLine {
  height: var(--spacingHeight);
  padding-bottom: 0px;
  padding-top: 0px;
  display: grid;
  align-items: center;
  justify-items: stretch;
  padding-bottom: 5px;
}
#ge-propertyTab .buttonLine input[type=file] {
  display: none;
}
#ge-propertyTab .buttonLine .file-upload {
  background: var(--backgroundGrey);
  border: 1px solid #424242;
  margin: 5px 10px;
  color: white;
  padding: 4px 5px;
  opacity: 0.9;
  cursor: pointer;
  text-align: center;
  border-radius: 4px;
}
#ge-propertyTab .buttonLine .file-upload:hover {
  opacity: 1;
}
#ge-propertyTab .buttonLine .file-upload:active {
  transform: scale(0.98);
  transform-origin: 0.5 0.5;
}
#ge-propertyTab .buttonLine button {
  background: var(--backgroundGrey);
  border: 1px solid #424242;
  margin: 5px 10px 5px 10px;
  color: white;
  padding: 4px 5px;
  opacity: 0.9;
  border-radius: 4px;
}
#ge-propertyTab .buttonLine button:hover {
  opacity: 1;
}
#ge-propertyTab .buttonLine button:active {
  background: #282828;
}
#ge-propertyTab .buttonLine button:focus {
  border: 1px solid #424242;
  outline: 0px;
}
#ge-propertyTab .numeric {
  padding-bottom: 0px;
  padding-top: 0px;
  height: var(--spacingHeight);
  display: grid;
  grid-template-columns: 1fr 120px auto;
}
#ge-propertyTab .numeric .numeric-label {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#ge-propertyTab .numeric .number {
  display: flex;
  align-items: center;
  grid-column: 2;
  height: 10px;
}
#ge-propertyTab .numeric .number .input {
  width: calc(100% - 5px);
  height: 10px;
}
#ge-propertyTab .checkBoxLine {
  padding-bottom: 0px;
  padding-top: 0px;
  height: var(--spacingHeight);
  display: grid;
  grid-template-columns: auto 1fr auto;
  flex-grow: 1;
}
#ge-propertyTab .checkBoxLine .label {
  grid-column: 2;
  display: flex;
  align-items: center;
  min-width: 100px;
  margin-left: 15px;
  height: var(--spacingHeight);
  font-weight: 600;
}
#ge-propertyTab .checkBoxLine img {
  width: 30px;
}
#ge-propertyTab .checkBoxLine .img {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#ge-propertyTab .checkBoxLine .hidden {
  display: none;
}
#ge-propertyTab .checkBoxLine .copy {
  display: none;
}
#ge-propertyTab .listLine {
  padding-bottom: 0px;
  padding-top: 0px;
  height: var(--spacingHeight);
  display: grid;
  grid-template-columns: auto 1fr auto;
  flex-grow: 1;
}
#ge-propertyTab .listLine .label {
  grid-column: 2;
  display: none;
  align-items: center;
}
#ge-propertyTab .listLine img {
  width: 30px;
}
#ge-propertyTab .listLine .img {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#ge-propertyTab .listLine .options {
  grid-column: 2;
  padding-left: 15px;
  display: flex;
  align-items: center;
}
#ge-propertyTab .listLine .options select {
  width: 100%;
  height: 25px;
  border: transparent;
}
#ge-propertyTab .listLine .options input {
  width: 100%;
  height: 24px;
  color: #333333;
}
#ge-propertyTab .listLine .copy {
  display: none;
}
#ge-propertyTab .color3Line {
  padding-left: 15px;
  padding-bottom: 0px;
  padding-top: 0px;
  display: grid;
  flex-grow: 1;
}
#ge-propertyTab .color3Line .firstLine {
  height: var(--spacingHeight);
  display: flex;
  align-items: center;
}
#ge-propertyTab .color3Line .firstLine .label {
  grid-column: 2;
  padding-left: 5px;
  display: none;
  align-items: center;
  min-width: 15px;
}
#ge-propertyTab .color3Line .firstLine .img {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#ge-propertyTab .color3Line .firstLine img {
  width: 30px;
  height: 30px;
}
#ge-propertyTab .color3Line .firstLine .textInputLine {
  grid-column: 3;
  padding-left: 2px;
  flex-grow: 1;
}
#ge-propertyTab .color3Line .firstLine .color3 {
  display: flex;
  align-items: center;
}
#ge-propertyTab .color3Line .firstLine .color3 input {
  margin-right: 5px;
}
#ge-propertyTab .color3Line .firstLine .expand {
  grid-column: 3;
  display: none;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#ge-propertyTab .color3Line .firstLine .expand img {
  height: 100%;
  width: 20px;
}
#ge-propertyTab .color3Line .firstLine .copy {
  grid-column: 4;
  display: none;
  align-items: center;
  justify-items: center;
  cursor: pointer;
  color: black;
}
#ge-propertyTab .color3Line .firstLine .copy img {
  height: 100%;
  width: 20px;
}
#ge-propertyTab .color3Line .secondLine {
  display: grid;
  padding-right: 5px;
  border-left: 1px solid rgb(51, 122, 183);
}
#ge-propertyTab .color3Line .secondLine .numeric {
  display: grid;
  grid-template-columns: 1fr auto;
}
#ge-propertyTab .color3Line .secondLine .numeric-label {
  text-align: right;
  grid-column: 1;
  display: flex;
  align-items: center;
  justify-self: right;
  margin-right: 10px;
}
#ge-propertyTab .color3Line .secondLine .numeric-value {
  width: 120px;
  grid-column: 2;
  display: flex;
  align-items: center;
  border: 1px solid rgb(51, 122, 183);
}
#ge-propertyTab .textLine {
  padding-left: 5px;
  padding-bottom: 0px;
  padding-top: 0px;
  padding-right: 18px;
  height: auto;
  display: grid;
  grid-template-columns: auto auto 2fr 1fr;
}
#ge-propertyTab .textLine .label {
  grid-column: 2;
  padding-left: 5px;
  padding-top: 4px;
  display: flex;
  align-items: left;
  min-width: 15px;
  color: #a9a9a9;
  font-size: 10px;
  font-family: "acumin-pro-semi-condensed", sans-serif;
  font-weight: 600;
}
#ge-propertyTab .textLine img {
  width: 30px;
}
#ge-propertyTab .textLine .img {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#ge-propertyTab .textLine .link-value {
  grid-column: 2;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  text-align: end;
  opacity: 0.8;
  margin: 5px;
  margin-top: 6px;
  max-width: 140px;
  text-decoration: underline;
  cursor: pointer;
}
#ge-propertyTab .textLine .value {
  display: none;
  grid-column: 3;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  text-align: end;
  opacity: 0.8;
  margin: 5px;
  margin-top: 6px;
  max-width: 200px;
  user-select: text;
}
#ge-propertyTab .textLine .value.check {
  color: green;
}
#ge-propertyTab .textLine .value.uncheck {
  color: red;
}`,"",{version:3,sources:["webpack://./../../../tools/guiEditor/dist/components/propertyTab/propertyTab.scss"],names:[],mappings:"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",sourcesContent:[`:root {\r
    --backgroundGrey: #aaaaaa;\r
    --spacingHeight: 30px;\r
    --button: #333333;\r
    --buttonBackground: #ffffff;\r
    --buttonDisabledBackground: #c8c8c8;\r
    --disabledBackground: #c8c8c8;\r
    --buttonPressed: #ffffff;\r
    --buttonPressedBackground: #606060;\r
    --buttonHoverBackground: #afafaf;\r
}\r
\r
#ge-propertyTab {\r
    user-select: none;\r
    $line-padding-left: 5px;\r
    $line-padding-bottom: 0px;\r
    $line-padding-top: 0px;\r
    $line-padding-right: 18px;\r
    color: black;\r
    background: #e2e2e2;\r
    * {\r
        font-family: "acumin-pro-condensed", sans-serif;\r
        font-size: 12px;\r
    }\r
    #header {\r
        height: 32px;\r
        font-size: 16px;\r
        color: white;\r
        background: white;\r
        grid-row: 1;\r
        text-align: center;\r
        display: grid;\r
        grid-template-columns: 30px 1fr;\r
        user-select: none;\r
\r
        #logo {\r
            position: relative;\r
            grid-column: 1;\r
            width: 32px;\r
            height: 32px;\r
            left: 0;\r
            display: flex;\r
            align-self: center;\r
            justify-self: center;\r
            filter: invert(1);\r
        }\r
\r
        #title {\r
            background: white;\r
            color: black;\r
            grid-column: 2;\r
            display: grid;\r
            align-items: center;\r
            text-align: center;\r
        }\r
    }\r
\r
    .copy {\r
        display: none;\r
    }\r
\r
    .range {\r
        -webkit-appearance: none;\r
        width: 100%;\r
        height: 2px;\r
        background: #bcbcbc;\r
        border-radius: 5px;\r
        outline: none;\r
        opacity: 0.7;\r
        transition: opacity 0.2s;\r
        padding: 0;\r
    }\r
\r
    .range:hover {\r
        opacity: 1;\r
    }\r
\r
    .range::-webkit-slider-thumb {\r
        -webkit-appearance: none;\r
        appearance: none;\r
        width: 14px;\r
        height: 14px;\r
        border-radius: 50%;\r
        background: #e2e2e2;\r
        border: solid;\r
        border-width: thin;\r
        cursor: pointer;\r
    }\r
\r
    .range::-moz-range-thumb {\r
        width: 14px;\r
        height: 14px;\r
        border-radius: 50%;\r
        background: rgb(0, 0, 0);\r
        cursor: pointer;\r
    }\r
\r
    input[type="color"] {\r
        -webkit-appearance: none;\r
        border: 1px solid rgba(255, 255, 255, 0.5);\r
        padding: 0;\r
        width: 30px;\r
        height: 20px;\r
    }\r
    input[type="color"]::-webkit-color-swatch-wrapper {\r
        padding: 0;\r
    }\r
    input[type="color"]::-webkit-color-swatch {\r
        border: none;\r
    }\r
\r
    hr {\r
        border: 1px solid #d0cece;\r
    }\r
\r
    .icon {\r
        width: 30px;\r
        height: 30px;\r
    }\r
\r
    .unit {\r
        width: 26px;\r
        height: 26px;\r
        color: var(--button);\r
        background-color: var(--buttonBackground);\r
        border: none;\r
        margin-top: 2px;\r
        cursor: pointer;\r
        margin-left: 2px;\r
        font-family: "atten-round-new", sans-serif;\r
        font-weight: 500;\r
        font-style: normal;\r
        display: flex;\r
        justify-content: center;\r
        align-items: center;\r
    }\r
\r
    .unit:disabled {\r
        background-color: var(--buttonDisabledBackground);\r
        cursor: not-allowed;\r
    }\r
\r
    .unit:not(:disabled):hover {\r
        background-color: var(--buttonHoverBackground);\r
    }\r
\r
    .unit:not(:disabled):active {\r
        color: var(--buttonPressed);\r
        background-color: var(--buttonPressedBackground);\r
    }\r
\r
    input,\r
    select {\r
        outline-style: solid;\r
        outline-width: 0px;\r
        outline-color: transparent;\r
        outline-offset: -1px;\r
        outline-width: 1px;\r
        transition: outline-color 0.2s;\r
        border: transparent;\r
        padding-left: 5px;\r
\r
        &:focus {\r
            outline-width: 1px;\r
            outline-color: black;\r
        }\r
    }\r
\r
    .hasArrows input::-webkit-outer-spin-button,\r
    .hasArrows input::-webkit-inner-spin-button {\r
        -webkit-appearance: none;\r
        margin: 0;\r
    }\r
\r
    .sliderLine {\r
        height: var(--spacingHeight);\r
        display: grid;\r
        grid-template-rows: 100%;\r
        grid-template-columns: auto 1fr 20px 1fr;\r
        flex-grow: 1;\r
\r
        .label {\r
            grid-column: 1;\r
            display: flex;\r
            align-items: center;\r
            min-width: 15px;\r
            font-weight: 600;\r
        }\r
\r
        .img {\r
            grid-column: 1;\r
            display: flex;\r
            align-items: center;\r
        }\r
\r
        .slider {\r
            grid-column: 4;\r
            grid-row: 1;\r
            margin-right: 5px;\r
            display: flex;\r
            align-items: center;\r
            padding-left: 5px;\r
        }\r
\r
        .floatLine {\r
            grid-column: 2;\r
            padding-left: 0px;\r
            grid-template-columns: 1fr auto;\r
\r
            .label {\r
                grid-column: 1;\r
                display: none;\r
                align-items: center;\r
                font-weight: 600;\r
            }\r
\r
            .short {\r
                grid-column: 1;\r
                display: flex;\r
                align-items: center;\r
\r
                input {\r
                    width: 100%;\r
                    background-color: white;\r
                    height: 24px;\r
                }\r
\r
                input::-webkit-outer-spin-button,\r
                input::-webkit-inner-spin-button {\r
                    -webkit-appearance: none;\r
                    margin: 0;\r
                }\r
\r
                input[type="number"] {\r
                    -webkit-appearance: textfield;\r
                    appearance: textfield;\r
                }\r
            }\r
\r
            .copy {\r
                display: none;\r
            }\r
        }\r
\r
        .copy {\r
            display: none;\r
        }\r
    }\r
\r
    .ge-divider {\r
        padding-right: $line-padding-right;\r
        padding-left: 5px;\r
        display: grid;\r
        grid-template-columns: auto 1fr;\r
        padding-top: 1px;\r
        padding-bottom: 1px;\r
\r
        > .textLine + .command-button {\r
            margin-top: -3px;\r
            grid-column: 5;\r
        }\r
    }\r
    .ge-divider.double {\r
        display: grid;\r
        grid-template-columns: auto 1fr 5px 1fr;\r
        > .textInputLine,\r
        > .floatLine {\r
            &:first-of-type {\r
                grid-column: 2;\r
            }\r
            &:nth-of-type(2) {\r
                grid-column: 4;\r
            }\r
        }\r
        > .command-button {\r
            grid-column: 5;\r
            margin-left: 5px;\r
        }\r
    }\r
    .ge-divider.quad {\r
        display: grid;\r
        grid-template-columns: 1fr 5px 1fr 5px 1fr 5px 1fr;\r
        > .textInputLine,\r
        > .floatLine {\r
            &:first-of-type {\r
                grid-column: 1;\r
            }\r
            &:nth-of-type(2) {\r
                grid-column: 3;\r
            }\r
            &:nth-of-type(3) {\r
                grid-column: 5;\r
            }\r
            &:nth-of-type(4) {\r
                grid-column: 7;\r
            }\r
        }\r
    }\r
    .ge-grid-divider {\r
        display: grid;\r
        grid-template-columns: 150px 1fr auto;\r
\r
        .textLine {\r
            grid-column: auto;\r
        }\r
    }\r
\r
    .ge-grid-button-divider {\r
        display: grid;\r
        grid-template-columns: 60px 60px 60px 60px;\r
    }\r
\r
    .ge-grid-remove {\r
        display: grid;\r
        background-color: #c2c2c2;\r
        margin-bottom: 5px;\r
        filter: invert(1);\r
    }\r
\r
    .ge-grid-edit {\r
        display: grid;\r
        background-color: #878787;\r
        margin-bottom: 5px;\r
        filter: invert(1);\r
    }\r
\r
    .ge-grid {\r
        display: grid;\r
        margin-bottom: 5px;\r
    }\r
\r
    .ge-divider.double .textInputLine {\r
        grid-template-columns: auto auto 1fr auto;\r
    }\r
\r
    .textInputLine,\r
    .floatLine {\r
        user-select: none;\r
        padding-bottom: $line-padding-bottom;\r
        padding-top: $line-padding-top;\r
        height: var(--spacingHeight);\r
        display: grid;\r
        grid-template-columns: auto auto 1fr;\r
        flex-grow: 1;\r
        .label {\r
            grid-column: 2;\r
            display: flex;\r
            align-items: center;\r
            min-width: 15px;\r
            font-weight: 600;\r
        }\r
\r
        .disabled {\r
            color: var(--backgroundGrey);\r
            background-color: var(--disabledBackground);\r
        }\r
\r
        img {\r
            width: 30px;\r
        }\r
\r
        .img {\r
            grid-column: 1;\r
            display: flex;\r
            align-items: center;\r
        }\r
\r
        .value {\r
            display: flex;\r
            align-items: center;\r
            grid-column: 3;\r
            background: transparent;\r
            height: 26px;\r
            position: relative;\r
            background-color: white;\r
            margin-top: 2px;\r
            overflow-y: hidden;\r
            input {\r
                width: 100%;\r
                height: 24px;\r
                color: #333333;\r
            }\r
            input.hasArrows {\r
                padding-right: 15px;\r
            }\r
            .arrows {\r
                display: none;\r
                position: absolute;\r
                right: 0;\r
                flex-direction: column;\r
                cursor: grab;\r
                .downArrowIcon,\r
                .upArrowIcon {\r
                    width: 13px;\r
                    height: 13px;\r
                }\r
            }\r
            &:hover .arrows,\r
            &:focus .arrows,\r
            &.dragging .arrows {\r
                display: flex;\r
            }\r
            .arrows:hover {\r
                background-color: var(--buttonHoverBackground);\r
            }\r
            &.dragging .arrows {\r
                background-color: var(--buttonPressedBackground);\r
                .downArrowIcon,\r
                .upArrowIcon {\r
                    filter: brightness(10);\r
                }\r
            }\r
        }\r
\r
        .copy {\r
            display: none;\r
        }\r
    }\r
\r
    .textInputLine.withUnits {\r
        grid-template-columns: auto auto 1fr auto;\r
    }\r
\r
    .textInputArea {\r
        height: 100%;\r
        display: grid;\r
        grid-template-columns: 1fr 120px;\r
\r
        .disabled {\r
            color: var(--backgroundGrey);\r
            background-color: var(--disabledBackground);\r
        }\r
\r
        .label {\r
            grid-column: 1;\r
            display: flex;\r
            align-items: center;\r
        }\r
\r
        .value {\r
            display: flex;\r
            align-items: center;\r
            grid-column: 2;\r
\r
            textarea {\r
                width: calc(150% - 5px);\r
                margin-left: -50%;\r
                height: 40px;\r
            }\r
        }\r
    }\r
\r
    .paneContainer {\r
        margin-top: 3px;\r
        display: grid;\r
        grid-template-rows: 100%;\r
        grid-template-columns: 100%;\r
\r
        .paneList {\r
            border-left: 3px solid transparent;\r
        }\r
\r
        &:hover {\r
            .paneList {\r
                border-left: 3px solid rgba(51, 122, 183, 0.8);\r
            }\r
\r
            .paneContainer-content {\r
                .header {\r
                    .title {\r
                        border-left: 3px solid rgb(51, 122, 183);\r
                    }\r
                }\r
            }\r
        }\r
\r
        .paneContainer-highlight-border {\r
            grid-row: 1;\r
            grid-column: 1;\r
            opacity: 1;\r
            border: 3px solid red;\r
            transition: opacity 250ms;\r
            pointer-events: none;\r
\r
            &.transparent {\r
                opacity: 0;\r
            }\r
        }\r
\r
        .paneContainer-content {\r
            grid-row: 1;\r
            grid-column: 1;\r
\r
            .header {\r
                display: grid;\r
                grid-template-columns: 1fr auto;\r
                background: #cccccc;\r
                height: var(--spacingHeight);\r
                padding-bottom: $line-padding-bottom;\r
                padding-top: $line-padding-top;\r
                padding-right: 5px;\r
                cursor: pointer;\r
\r
                .title {\r
                    border-left: 3px solid transparent;\r
                    padding-left: 5px;\r
                    grid-column: 1;\r
                    display: flex;\r
                    align-items: center;\r
                }\r
\r
                .collapse {\r
                    grid-column: 2;\r
                    display: flex;\r
                    align-items: center;\r
                    justify-items: center;\r
                    transform-origin: center;\r
\r
                    &.closed {\r
                        transform: rotate(180deg);\r
                    }\r
                }\r
            }\r
\r
            .paneList > div:not(:last-child) {\r
                border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);\r
            }\r
\r
            .fragment > div:not(:last-child) {\r
                border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);\r
            }\r
        }\r
    }\r
\r
    .color-picker {\r
        height: 26px;\r
        width: 26px;\r
\r
        .color-rect-background {\r
            width: calc(100% - 2px);\r
            height: calc(100% - 2px);\r
            border: 1px black solid;\r
            cursor: pointer;\r
            background: repeating-conic-gradient(#e2e2e2 0% 25%, white 0% 50%) 50% / 100% 100%;\r
            .color-rect {\r
                height: 100%;\r
            }\r
        }\r
\r
        .color-picker-cover {\r
            z-index: 2;\r
            position: fixed;\r
            top: 0px;\r
            right: 0px;\r
            bottom: 0px;\r
            left: 0px;\r
        }\r
\r
        .color-picker-float {\r
            position: absolute;\r
            outline: 1px solid black;\r
        }\r
\r
        .color-picker-container {\r
            background-color: #e2e2e2;\r
        }\r
    }\r
\r
    .gradient-step {\r
        display: grid;\r
        grid-template-rows: 100%;\r
        grid-template-columns: 20px 30px 40px auto 20px 30px;\r
        padding-top: 5px;\r
        padding-left: 5px;\r
        padding-bottom: 5px;\r
\r
        .step {\r
            grid-row: 1;\r
            grid-column: 1;\r
        }\r
\r
        .color {\r
            grid-row: 1;\r
            grid-column: 2;\r
            cursor: pointer;\r
        }\r
\r
        .step-value {\r
            margin-left: 5px;\r
            grid-row: 1;\r
            grid-column: 3;\r
            text-align: right;\r
            margin-right: 5px;\r
        }\r
\r
        .step-slider {\r
            grid-row: 1;\r
            grid-column: 4;\r
            display: grid;\r
            justify-content: stretch;\r
            align-content: center;\r
            margin-right: -5px;\r
            padding-left: 12px;\r
\r
            input {\r
                width: 90%;\r
            }\r
        }\r
\r
        .gradient-copy {\r
            grid-row: 1;\r
            grid-column: 5;\r
            display: grid;\r
            align-content: center;\r
            justify-content: center;\r
\r
            .img {\r
                height: 20px;\r
                width: 20px;\r
            }\r
            .img:hover {\r
                cursor: pointer;\r
            }\r
        }\r
        .gradient-delete {\r
            grid-row: 1;\r
            grid-column: 6;\r
            display: grid;\r
            align-content: center;\r
            justify-content: center;\r
            .img {\r
                height: 20px;\r
                width: 20px;\r
            }\r
            .img:hover {\r
                cursor: pointer;\r
            }\r
        }\r
    }\r
\r
    .alignment-bar {\r
        display: flex;\r
        justify-content: center;\r
        padding-right: 5px;\r
    }\r
\r
    .command-button {\r
        cursor: pointer;\r
        width: 30px;\r
\r
        .command-label {\r
            display: none;\r
        }\r
\r
        .command-button-icon {\r
            height: 100%;\r
            width: 100%;\r
            display: grid;\r
            color: white;\r
            align-content: center;\r
            justify-content: center;\r
        }\r
\r
        &:hover {\r
            background-color: white;\r
        }\r
\r
        .active {\r
            transform-origin: center;\r
            background-color: white;\r
        }\r
\r
        img {\r
            &.active {\r
                background-color: white;\r
            }\r
        }\r
\r
        &.disabled {\r
            background-color: var(--buttonDisabledBackground);\r
            pointer-events: none;\r
        }\r
    }\r
\r
    .command-button-alt {\r
        cursor: pointer;\r
        width: 40px;\r
        margin-left: 5px;\r
        margin-right: 5px;\r
        background-color: white;\r
        .command-label {\r
            display: none;\r
        }\r
\r
        .command-button-icon {\r
            height: 100%;\r
            width: 100%;\r
            display: grid;\r
            align-content: center;\r
            justify-content: center;\r
        }\r
        &:hover {\r
            background-color: #c2c2c2;\r
            filter: invert(1);\r
        }\r
    }\r
\r
    .command-button-alt-disabled {\r
        cursor: pointer;\r
        pointer-events: none;\r
        width: 40px;\r
        margin-left: 5px;\r
        margin-right: 5px;\r
        background-color: white;\r
        .command-label {\r
            display: none;\r
        }\r
\r
        .command-button-icon {\r
            height: 100%;\r
            width: 100%;\r
            display: grid;\r
            align-content: center;\r
            justify-content: center;\r
        }\r
\r
        img {\r
            filter: invert(1);\r
        }\r
    }\r
\r
    .command-button-alt-active {\r
        cursor: pointer;\r
        pointer-events: none;\r
        width: 40px;\r
        margin-left: 5px;\r
        margin-right: 5px;\r
        background-color: #c2c2c2;\r
        filter: invert(1);\r
        .command-label {\r
            display: none;\r
        }\r
\r
        .command-button-icon {\r
            height: 100%;\r
            width: 100%;\r
            display: grid;\r
            align-content: center;\r
            justify-content: center;\r
        }\r
    }\r
\r
    .floatLine {\r
        user-select: none;\r
        height: var(--spacingHeight);\r
        padding-bottom: $line-padding-bottom;\r
        padding-top: $line-padding-top;\r
        display: grid;\r
        grid-template-columns: auto auto 2fr auto;\r
        flex-grow: 1;\r
\r
        .label {\r
            grid-column: 2;\r
            display: flex;\r
            align-items: center;\r
            min-width: 15px;\r
            font-weight: 600;\r
        }\r
\r
        img {\r
            width: 30px;\r
        }\r
\r
        .img {\r
            grid-column: 1;\r
            display: flex;\r
            align-items: center;\r
        }\r
\r
        .value {\r
            display: flex;\r
            align-items: center;\r
            grid-column: 3;\r
            background: transparent;\r
            height: 26px;\r
            input {\r
                width: 100%;\r
                background-color: white;\r
                height: 24px;\r
            }\r
        }\r
\r
        .short {\r
            grid-column: 2;\r
\r
            display: flex;\r
            align-items: center;\r
\r
            input {\r
                width: 100%;\r
            }\r
\r
            input::-webkit-outer-spin-button,\r
            input::-webkit-inner-spin-button {\r
                -webkit-appearance: none;\r
                margin: 0;\r
            }\r
        }\r
\r
        .copy {\r
            display: none;\r
        }\r
    }\r
\r
    .vector3Line {\r
        padding-bottom: $line-padding-bottom;\r
        padding-top: $line-padding-top;\r
        display: grid;\r
        .firstLine {\r
            display: grid;\r
            grid-template-columns: 1fr auto 20px;\r
            height: var(--spacingHeight);\r
\r
            .label {\r
                grid-column: 1;\r
                display: flex;\r
                align-items: center;\r
            }\r
\r
            .vector {\r
                grid-column: 2;\r
                display: flex;\r
                align-items: center;\r
                text-align: right;\r
                opacity: 0.8;\r
            }\r
\r
            .expand {\r
                grid-column: 3;\r
                display: grid;\r
                align-items: center;\r
                justify-items: center;\r
                cursor: pointer;\r
            }\r
\r
            .copy {\r
                display: none;\r
            }\r
        }\r
\r
        .secondLine {\r
            display: grid;\r
            padding-right: 5px;\r
            border-left: 1px solid rgb(51, 122, 183);\r
\r
            .no-right-margin {\r
                margin-right: 0;\r
            }\r
\r
            .numeric {\r
                display: grid;\r
                grid-template-columns: 1fr auto;\r
            }\r
\r
            .numeric-label {\r
                text-align: right;\r
                grid-column: 1;\r
                display: flex;\r
                align-items: center;\r
                justify-self: right;\r
                margin-right: 10px;\r
            }\r
\r
            .numeric-value {\r
                width: 120px;\r
                grid-column: 2;\r
                display: flex;\r
                align-items: center;\r
                border: 1px solid rgb(51, 122, 183);\r
            }\r
        }\r
    }\r
\r
    .buttonLine {\r
        height: var(--spacingHeight);\r
        padding-bottom: $line-padding-bottom;\r
        padding-top: $line-padding-top;\r
        display: grid;\r
        align-items: center;\r
        justify-items: stretch;\r
        padding-bottom: 5px;\r
        input[type="file"] {\r
            display: none;\r
        }\r
\r
        .file-upload {\r
            background: var(--backgroundGrey);\r
            border: 1px solid #424242;\r
            margin: 5px 10px;\r
            color: white;\r
            padding: 4px 5px;\r
            opacity: 0.9;\r
            cursor: pointer;\r
            text-align: center;\r
            border-radius: 4px;\r
        }\r
\r
        .file-upload:hover {\r
            opacity: 1;\r
        }\r
\r
        .file-upload:active {\r
            transform: scale(0.98);\r
            transform-origin: 0.5 0.5;\r
        }\r
\r
        button {\r
            background: var(--backgroundGrey);\r
            border: 1px solid #424242;\r
            margin: 5px 10px 5px 10px;\r
            color: white;\r
            padding: 4px 5px;\r
            opacity: 0.9;\r
            border-radius: 4px;\r
        }\r
\r
        button:hover {\r
            opacity: 1;\r
        }\r
\r
        button:active {\r
            background: #282828;\r
        }\r
\r
        button:focus {\r
            border: 1px solid #424242;\r
            outline: 0px;\r
        }\r
    }\r
\r
    .numeric {\r
        padding-bottom: $line-padding-bottom;\r
        padding-top: $line-padding-top;\r
        height: var(--spacingHeight);\r
        display: grid;\r
        grid-template-columns: 1fr 120px auto;\r
\r
        .numeric-label {\r
            grid-column: 1;\r
            display: flex;\r
            align-items: center;\r
        }\r
\r
        .number {\r
            display: flex;\r
            align-items: center;\r
            grid-column: 2;\r
            height: 10px;\r
            .input {\r
                width: calc(100% - 5px);\r
                height: 10px;\r
            }\r
        }\r
    }\r
\r
    .checkBoxLine {\r
        padding-bottom: $line-padding-bottom;\r
        padding-top: $line-padding-top;\r
        height: var(--spacingHeight);\r
        display: grid;\r
        grid-template-columns: auto 1fr auto;\r
        flex-grow: 1;\r
\r
        .label {\r
            grid-column: 2;\r
            display: flex;\r
            align-items: center;\r
            min-width: 100px;\r
            margin-left: 15px;\r
            height: var(--spacingHeight);\r
            font-weight: 600;\r
        }\r
\r
        img {\r
            width: 30px;\r
        }\r
\r
        .img {\r
            grid-column: 1;\r
            display: flex;\r
            align-items: center;\r
        }\r
\r
        .hidden {\r
            display: none;\r
        }\r
\r
        .copy {\r
            display: none;\r
        }\r
    }\r
\r
    .listLine {\r
        padding-bottom: $line-padding-bottom;\r
        padding-top: $line-padding-top;\r
        height: var(--spacingHeight);\r
        display: grid;\r
        grid-template-columns: auto 1fr auto;\r
        flex-grow: 1;\r
\r
        .label {\r
            grid-column: 2;\r
            display: none;\r
            align-items: center;\r
        }\r
\r
        img {\r
            width: 30px;\r
        }\r
\r
        .img {\r
            grid-column: 1;\r
            display: flex;\r
            align-items: center;\r
        }\r
\r
        .options {\r
            grid-column: 2;\r
            padding-left: 15px;\r
            display: flex;\r
            align-items: center;\r
\r
            select {\r
                width: 100%;\r
                height: 25px;\r
                border: transparent;\r
            }\r
\r
            input {\r
                width: 100%;\r
                height: 24px;\r
                color: #333333;\r
            }\r
        }\r
\r
        .copy {\r
            display: none;\r
        }\r
    }\r
\r
    .color3Line {\r
        padding-left: 15px;\r
        padding-bottom: $line-padding-bottom;\r
        padding-top: $line-padding-top;\r
        display: grid;\r
        flex-grow: 1;\r
\r
        .firstLine {\r
            height: var(--spacingHeight);\r
            display: flex;\r
            align-items: center;\r
\r
            .label {\r
                grid-column: 2;\r
                padding-left: 5px;\r
                display: none;\r
                align-items: center;\r
                min-width: 15px;\r
            }\r
\r
            .img {\r
                grid-column: 1;\r
                display: flex;\r
                align-items: center;\r
            }\r
\r
            img {\r
                width: 30px;\r
                height: 30px;\r
            }\r
\r
            .textInputLine {\r
                grid-column: 3;\r
                padding-left: 2px;\r
                flex-grow: 1;\r
            }\r
\r
            .color3 {\r
                display: flex;\r
                align-items: center;\r
\r
                input {\r
                    margin-right: 5px;\r
                }\r
            }\r
\r
            .expand {\r
                grid-column: 3;\r
                display: none;\r
                align-items: center;\r
                justify-items: center;\r
                cursor: pointer;\r
\r
                img {\r
                    height: 100%;\r
                    width: 20px;\r
                }\r
            }\r
\r
            .copy {\r
                grid-column: 4;\r
                display: none;\r
                align-items: center;\r
                justify-items: center;\r
                cursor: pointer;\r
                color: black;\r
                img {\r
                    height: 100%;\r
                    width: 20px;\r
                }\r
            }\r
        }\r
\r
        .secondLine {\r
            display: grid;\r
            padding-right: 5px;\r
            border-left: 1px solid rgb(51, 122, 183);\r
\r
            .numeric {\r
                display: grid;\r
                grid-template-columns: 1fr auto;\r
            }\r
\r
            .numeric-label {\r
                text-align: right;\r
                grid-column: 1;\r
                display: flex;\r
                align-items: center;\r
                justify-self: right;\r
                margin-right: 10px;\r
            }\r
\r
            .numeric-value {\r
                width: 120px;\r
                grid-column: 2;\r
                display: flex;\r
                align-items: center;\r
                border: 1px solid rgb(51, 122, 183);\r
            }\r
        }\r
    }\r
\r
    .textLine {\r
        padding-left: $line-padding-left;\r
        padding-bottom: $line-padding-bottom;\r
        padding-top: $line-padding-top;\r
        padding-right: $line-padding-right;\r
        height: auto;\r
        display: grid;\r
        grid-template-columns: auto auto 2fr 1fr;\r
        .label {\r
            grid-column: 2;\r
            padding-left: 5px;\r
            padding-top: 4px;\r
            display: flex;\r
            align-items: left;\r
            min-width: 15px;\r
            color: #a9a9a9;\r
            font-size: 10px;\r
            font-family: "acumin-pro-semi-condensed", sans-serif;\r
            font-weight: 600;\r
        }\r
\r
        img {\r
            width: 30px;\r
        }\r
\r
        .img {\r
            grid-column: 1;\r
            display: flex;\r
            align-items: center;\r
        }\r
\r
        .link-value {\r
            grid-column: 2;\r
            white-space: nowrap;\r
            text-overflow: ellipsis;\r
            overflow: hidden;\r
            text-align: end;\r
            opacity: 0.8;\r
            margin: 5px;\r
            margin-top: 6px;\r
            max-width: 140px;\r
            text-decoration: underline;\r
            cursor: pointer;\r
        }\r
\r
        .value {\r
            display: none;\r
            grid-column: 3;\r
            white-space: nowrap;\r
            text-overflow: ellipsis;\r
            overflow: hidden;\r
            text-align: end;\r
            opacity: 0.8;\r
            margin: 5px;\r
            margin-top: 6px;\r
            max-width: 200px;\r
            user-select: text;\r
\r
            &.check {\r
                color: green;\r
            }\r
\r
            &.uncheck {\r
                color: red;\r
            }\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const h=d},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/components/sceneExplorer/sceneExplorer.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>h});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`#ge-scene-explorer-host {
  position: absolute;
  left: 0px;
  top: 0px;
  bottom: 0px;
}
#ge-scene-explorer-host * {
  font-family: "acumin-pro-condensed";
}
#ge-scene-explorer-host:focus {
  outline: none;
}

#ge-__resizable_base__ {
  display: none;
}

.ge-context-menu {
  background: #e2e2e2;
}
.ge-context-menu .react-contextmenu-item {
  padding: 10px;
  cursor: pointer;
}
.ge-context-menu .react-contextmenu-item:hover {
  background: #e2e2e2;
}

.ge-eact-contextmenu.context-menu.react-contextmenu--visible {
  z-index: 99;
  transform: scale(1);
}

#ge-sceneExplorer {
  background: #e2e2e2;
  height: 100%;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-rows: auto 1fr;
  font: 16px "acumin-pro-condensed";
}
#ge-sceneExplorer:focus {
  outline: none;
}
#ge-sceneExplorer #header {
  height: 30px;
  font-size: 16px;
  color: black;
  background: #e2e2e2;
  grid-row: 1;
  text-align: center;
  display: grid;
  grid-template-columns: 30px 1fr 50px;
  user-select: none;
}
#ge-sceneExplorer #header #logo {
  position: relative;
  grid-column: 1;
  width: 24px;
  height: 24px;
  left: 0;
  display: flex;
  align-self: center;
  justify-self: center;
}
#ge-sceneExplorer #header #title {
  grid-column: 2;
  display: grid;
  align-items: center;
  text-align: center;
}
#ge-sceneExplorer #header #commands {
  grid-column: 3;
  display: grid;
  align-items: center;
  grid-template-columns: 1fr 1fr;
}
#ge-sceneExplorer #header #commands .expand {
  grid-column: 1;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#ge-sceneExplorer #header #commands .close {
  grid-column: 2;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#ge-sceneExplorer #tree {
  grid-row: 2;
  overflow-x: hidden;
  overflow-y: auto;
}
#ge-sceneExplorer .filter {
  display: flex;
  align-items: stretch;
}
#ge-sceneExplorer .filter input {
  width: 100%;
  margin: 10px 40px 5px 40px;
  display: block;
  border: none;
  padding: 0;
  border-bottom: solid 1px rgb(51, 122, 183);
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, rgb(51, 122, 183) 4%);
  background-position: -1000px 0;
  background-size: 1000px 100%;
  background-repeat: no-repeat;
  color: black;
}
#ge-sceneExplorer .filter input::placeholder {
  color: lightgray;
}
#ge-sceneExplorer .filter input:focus {
  box-shadow: none;
  outline: none;
  background-position: 0 0;
}
#ge-sceneExplorer .groupContainer {
  margin-left: 0px;
  color: black;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 24px;
  user-select: none;
  align-self: center;
  display: grid;
  align-items: center;
}
#ge-sceneExplorer .groupContainer:hover {
  background: #bbbbbb;
}
#ge-sceneExplorer .groupContainer .expandableHeader {
  display: grid;
  grid-template-columns: 1fr 20px;
}
#ge-sceneExplorer .groupContainer .expandableHeader .text {
  grid-column: 1;
  display: grid;
  grid-template-columns: 20px 1fr;
}
#ge-sceneExplorer .groupContainer .expandableHeader .text .arrow {
  grid-column: 1;
  margin-left: 0px;
  color: black;
  cursor: pointer;
  display: inline-block;
  margin-right: 6px;
  opacity: 0.5;
}
#ge-sceneExplorer .groupContainer .expandableHeader .text .text-value {
  grid-column: 2;
  display: flex;
  align-items: center;
}
#ge-sceneExplorer .groupContainer .expandableHeader .expandAll {
  opacity: 0.5;
  grid-column: 2;
  margin-right: 10px;
}
#ge-sceneExplorer .icon {
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#ge-sceneExplorer .addComponent {
  display: none;
}
#ge-sceneExplorer .makeChild {
  grid-column: 3;
}
#ge-sceneExplorer .itemContainer {
  margin-left: 0px;
  color: black;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 32px;
  -webkit-user-select: none;
  user-select: none;
  display: grid;
  grid-template-columns: 20px 1fr;
  border: 2px solid transparent;
}
#ge-sceneExplorer .itemContainer.hover {
  border: 2px solid #527089;
  cursor: pointer;
}
#ge-sceneExplorer .itemContainer.seAbove {
  border-top: 2px solid #527089;
  cursor: pointer;
}
#ge-sceneExplorer .itemContainer.seBelow {
  border-bottom: 2px solid #527089;
  cursor: pointer;
}
#ge-sceneExplorer .itemContainer.selected {
  background: #bfbebe;
  color: black;
}
#ge-sceneExplorer .itemContainer.dragged {
  background: transparent;
  color: black;
}
#ge-sceneExplorer .itemContainer.parent {
  background: #ffffff;
  color: black;
}
#ge-sceneExplorer .itemContainer .isNotActive {
  opacity: 0.3;
}
#ge-sceneExplorer .itemContainer .arrow {
  grid-column: 1;
  color: black;
  opacity: 0.6;
}
#ge-sceneExplorer .itemContainer .popup {
  width: 200px;
  visibility: hidden;
  background-color: #bbbbbb;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.5);
  position: absolute;
  z-index: 1;
  margin-left: -180px;
  box-sizing: border-box;
}
#ge-sceneExplorer .itemContainer .popup.show {
  visibility: visible;
}
#ge-sceneExplorer .itemContainer .popup:focus {
  outline: none;
}
#ge-sceneExplorer .itemContainer .popup .popupMenu {
  padding: 6px 5px 5px 10px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  height: 18px;
}
#ge-sceneExplorer .itemContainer .popup .popupMenu:hover {
  background: white;
  color: #333333;
}
#ge-sceneExplorer .itemContainer .sceneNode {
  grid-column: 2;
  margin-left: -10px;
  display: grid;
  grid-template-columns: 1fr 20px 20px 20px 20px 10px 20px 20px auto 5px;
  align-items: center;
  cursor: pointer;
}
#ge-sceneExplorer .itemContainer .sceneNode .sceneTitle {
  grid-column: 1;
  margin-right: 5px;
  display: flex;
  align-items: center;
  height: 24px;
}
#ge-sceneExplorer .itemContainer .sceneNode .translation {
  grid-column: 2;
  opacity: 0.6;
}
#ge-sceneExplorer .itemContainer .sceneNode .translation.selected {
  opacity: 1;
}
#ge-sceneExplorer .itemContainer .sceneNode .rotation {
  grid-column: 3;
  opacity: 0.6;
}
#ge-sceneExplorer .itemContainer .sceneNode .rotation.selected {
  opacity: 1;
}
#ge-sceneExplorer .itemContainer .sceneNode .scaling {
  grid-column: 4;
  opacity: 0.6;
}
#ge-sceneExplorer .itemContainer .sceneNode .scaling.selected {
  opacity: 1;
}
#ge-sceneExplorer .itemContainer .sceneNode .bounding {
  grid-column: 5;
  opacity: 0.6;
}
#ge-sceneExplorer .itemContainer .sceneNode .bounding.selected {
  opacity: 1;
}
#ge-sceneExplorer .itemContainer .sceneNode .separator {
  grid-column: 6;
  margin-left: 5px;
  width: 5px;
  display: flex;
  align-items: center;
  height: 18px;
  border-left: solid 1px rgb(51, 122, 183);
}
#ge-sceneExplorer .itemContainer .sceneNode .pickingMode {
  grid-column: 7;
  opacity: 0.6;
}
#ge-sceneExplorer .itemContainer .sceneNode .pickingMode.selected {
  opacity: 1;
}
#ge-sceneExplorer .itemContainer .sceneNode .refresh {
  grid-column: 8;
}
#ge-sceneExplorer .itemContainer .sceneNode .extensions {
  width: 20px;
  grid-column: 9;
}
#ge-sceneExplorer .itemContainer .adtextureTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr 20px auto 5px;
  align-items: center;
}
#ge-sceneExplorer .itemContainer .adtextureTools .pickingMode {
  grid-column: 2;
  opacity: 0.6;
}
#ge-sceneExplorer .itemContainer .adtextureTools .pickingMode.selected {
  opacity: 1;
}
#ge-sceneExplorer .itemContainer .adtextureTools .extensions {
  width: 20px;
  grid-column: 3;
}
#ge-sceneExplorer .itemContainer .controlTools {
  grid-column: 2;
  display: grid;
  align-items: center;
  grid-template-columns: auto 1fr auto auto auto;
}
#ge-sceneExplorer .itemContainer .controlTools .controlType {
  grid-column: 1;
}
#ge-sceneExplorer .itemContainer .controlTools .controlType img {
  width: 32px;
  height: 32px;
  filter: invert(100%);
}
#ge-sceneExplorer .itemContainer .controlTools .highlight {
  grid-column: 3;
}
#ge-sceneExplorer .itemContainer .controlTools .visibility {
  grid-column: 4;
}
#ge-sceneExplorer .itemContainer .controlTools .extensions {
  width: 20px;
  grid-column: 5;
}
#ge-sceneExplorer .itemContainer .title {
  background: transparent;
  white-space: nowrap;
  overflow: hidden;
  min-width: 0;
  margin-right: 5px;
  align-items: center;
  height: 24px;
  cursor: pointer;
}
#ge-sceneExplorer .itemContainer .title .titleText {
  font-family: "acumin-pro-condensed", sans-serif;
  font-size: 16px;
  border: unset;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  outline: none;
}`,"",{version:3,sources:["webpack://./../../../tools/guiEditor/dist/components/sceneExplorer/sceneExplorer.scss"],names:[],mappings:"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",sourcesContent:[`#ge-scene-explorer-host {\r
    position: absolute;\r
    left: 0px;\r
    top: 0px;\r
    bottom: 0px;\r
    * {\r
        font-family: "acumin-pro-condensed";\r
    }\r
    &:focus {\r
        outline: none;\r
    }\r
}\r
\r
#ge-__resizable_base__ {\r
    display: none;\r
}\r
\r
.ge-context-menu {\r
    background: #e2e2e2;\r
\r
    .react-contextmenu-item {\r
        padding: 10px;\r
        cursor: pointer;\r
\r
        &:hover {\r
            background: #e2e2e2;\r
        }\r
    }\r
}\r
\r
.ge-eact-contextmenu.context-menu.react-contextmenu--visible {\r
    z-index: 99;\r
    transform: scale(1);\r
}\r
\r
#ge-sceneExplorer {\r
    background: #e2e2e2;\r
    height: 100%;\r
    margin: 0;\r
    padding: 0;\r
    display: grid;\r
    grid-template-rows: auto 1fr;\r
    font: 16px "acumin-pro-condensed";\r
\r
    &:focus {\r
        outline: none;\r
    }\r
\r
    #header {\r
        height: 30px;\r
        font-size: 16px;\r
        color: black;\r
        background: #e2e2e2;\r
        grid-row: 1;\r
        text-align: center;\r
        display: grid;\r
        grid-template-columns: 30px 1fr 50px;\r
        user-select: none;\r
\r
        #logo {\r
            position: relative;\r
            grid-column: 1;\r
            width: 24px;\r
            height: 24px;\r
            left: 0;\r
            display: flex;\r
            align-self: center;\r
            justify-self: center;\r
        }\r
\r
        #title {\r
            grid-column: 2;\r
            display: grid;\r
            align-items: center;\r
            text-align: center;\r
        }\r
\r
        #commands {\r
            grid-column: 3;\r
            display: grid;\r
            align-items: center;\r
            grid-template-columns: 1fr 1fr;\r
\r
            .expand {\r
                grid-column: 1;\r
                display: grid;\r
                align-items: center;\r
                justify-items: center;\r
                cursor: pointer;\r
            }\r
\r
            .close {\r
                grid-column: 2;\r
                display: grid;\r
                align-items: center;\r
                justify-items: center;\r
                cursor: pointer;\r
            }\r
        }\r
    }\r
\r
    #tree {\r
        grid-row: 2;\r
\r
        overflow-x: hidden;\r
        overflow-y: auto;\r
    }\r
\r
    .filter {\r
        display: flex;\r
        align-items: stretch;\r
\r
        input {\r
            width: 100%;\r
            margin: 10px 40px 5px 40px;\r
            display: block;\r
            border: none;\r
            padding: 0;\r
            border-bottom: solid 1px rgb(51, 122, 183);\r
            background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, rgb(51, 122, 183) 4%);\r
            background-position: -1000px 0;\r
            background-size: 1000px 100%;\r
            background-repeat: no-repeat;\r
            color: black;\r
        }\r
\r
        input::placeholder {\r
            color: lightgray;\r
        }\r
\r
        input:focus {\r
            box-shadow: none;\r
            outline: none;\r
            background-position: 0 0;\r
        }\r
    }\r
\r
    .groupContainer {\r
        margin-left: 0px;\r
        color: black;\r
        margin-top: 0px;\r
        margin-bottom: 0px;\r
        height: 24px;\r
\r
        user-select: none;\r
\r
        align-self: center;\r
        display: grid;\r
        align-items: center;\r
\r
        &:hover {\r
            background: #bbbbbb;\r
        }\r
\r
        .expandableHeader {\r
            display: grid;\r
            grid-template-columns: 1fr 20px;\r
\r
            .text {\r
                grid-column: 1;\r
                display: grid;\r
                grid-template-columns: 20px 1fr;\r
\r
                .arrow {\r
                    grid-column: 1;\r
                    margin-left: 0px;\r
                    color: black;\r
                    cursor: pointer;\r
                    display: inline-block;\r
                    margin-right: 6px;\r
                    opacity: 0.5;\r
                }\r
\r
                .text-value {\r
                    grid-column: 2;\r
                    display: flex;\r
                    align-items: center;\r
                }\r
            }\r
\r
            .expandAll {\r
                opacity: 0.5;\r
                grid-column: 2;\r
                margin-right: 10px;\r
            }\r
        }\r
    }\r
\r
    .icon {\r
        display: grid;\r
        align-items: center;\r
        justify-items: center;\r
        cursor: pointer;\r
    }\r
\r
    .addComponent {\r
        display: none;\r
    }\r
\r
    .makeChild {\r
        grid-column: 3;\r
    }\r
\r
    .itemContainer {\r
        margin-left: 0px;\r
        color: black;\r
        margin-top: 0px;\r
        margin-bottom: 0px;\r
        height: 32px;\r
        -webkit-user-select: none;\r
        user-select: none;\r
        display: grid;\r
        grid-template-columns: 20px 1fr;\r
        border: 2px solid transparent;\r
        &.hover {\r
            border: 2px solid #527089;\r
            cursor: pointer;\r
        }\r
\r
        &.seAbove {\r
            border-top: 2px solid #527089;\r
            cursor: pointer;\r
        }\r
        &.seBelow {\r
            border-bottom: 2px solid #527089;\r
            cursor: pointer;\r
        }\r
\r
        &.selected {\r
            background: #bfbebe;\r
            color: black;\r
        }\r
\r
        &.dragged {\r
            background: transparent;\r
            color: black;\r
        }\r
\r
        &.parent {\r
            background: #ffffff;\r
            color: black;\r
        }\r
\r
        .isNotActive {\r
            opacity: 0.3;\r
        }\r
        .arrow {\r
            grid-column: 1;\r
            color: black;\r
            opacity: 0.6;\r
        }\r
\r
        .popup {\r
            width: 200px;\r
            visibility: hidden;\r
            background-color: #bbbbbb;\r
            color: #fff;\r
            border: 1px solid rgba(255, 255, 255, 0.5);\r
            position: absolute;\r
            z-index: 1;\r
            margin-left: -180px;\r
            box-sizing: border-box;\r
\r
            &.show {\r
                visibility: visible;\r
            }\r
\r
            &:focus {\r
                outline: none;\r
            }\r
\r
            .popupMenu {\r
                padding: 6px 5px 5px 10px;\r
                overflow: hidden;\r
                white-space: nowrap;\r
                text-overflow: ellipsis;\r
                height: 18px;\r
\r
                &:hover {\r
                    background: white;\r
                    color: #333333;\r
                }\r
            }\r
        }\r
\r
        .sceneNode {\r
            grid-column: 2;\r
            margin-left: -10px;\r
            display: grid;\r
            grid-template-columns: 1fr 20px 20px 20px 20px 10px 20px 20px auto 5px;\r
            align-items: center;\r
            cursor: pointer;\r
\r
            .sceneTitle {\r
                grid-column: 1;\r
                margin-right: 5px;\r
                display: flex;\r
                align-items: center;\r
                height: 24px;\r
            }\r
\r
            .translation {\r
                grid-column: 2;\r
                opacity: 0.6;\r
\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .rotation {\r
                grid-column: 3;\r
                opacity: 0.6;\r
\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .scaling {\r
                grid-column: 4;\r
                opacity: 0.6;\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .bounding {\r
                grid-column: 5;\r
                opacity: 0.6;\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .separator {\r
                grid-column: 6;\r
                margin-left: 5px;\r
                width: 5px;\r
                display: flex;\r
                align-items: center;\r
                height: 18px;\r
                border-left: solid 1px rgb(51, 122, 183);\r
            }\r
\r
            .pickingMode {\r
                grid-column: 7;\r
                opacity: 0.6;\r
\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .refresh {\r
                grid-column: 8;\r
            }\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 9;\r
            }\r
        }\r
\r
        .adtextureTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr 20px auto 5px;\r
            align-items: center;\r
\r
            .pickingMode {\r
                grid-column: 2;\r
                opacity: 0.6;\r
\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 3;\r
            }\r
        }\r
\r
        .controlTools {\r
            grid-column: 2;\r
            display: grid;\r
            align-items: center;\r
            grid-template-columns: auto 1fr auto auto auto;\r
\r
            .controlType {\r
                grid-column: 1;\r
                img {\r
                    width: 32px;\r
                    height: 32px;\r
                    filter: invert(100%);\r
                }\r
            }\r
\r
            .highlight {\r
                grid-column: 3;\r
            }\r
\r
            .visibility {\r
                grid-column: 4;\r
            }\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 5;\r
            }\r
        }\r
\r
        .title {\r
            background: transparent;\r
            white-space: nowrap;\r
            overflow: hidden;\r
            min-width: 0;\r
            margin-right: 5px;\r
            align-items: center;\r
            height: 24px;\r
            cursor: pointer;\r
\r
            .titleText {\r
                font-family: "acumin-pro-condensed", sans-serif;\r
                font-size: 16px;\r
                border: unset;\r
                white-space: nowrap;\r
                text-overflow: ellipsis;\r
                overflow: hidden;\r
                outline: none;\r
            }\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const h=d},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/diagram/workbenchCanvas.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>h});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`#workbench-canvas {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  font: 14px "acumin-pro-condensed";
  cursor: default;
  user-select: none;
  overflow: hidden;
  background-image: linear-gradient(to right, #4f4e4f 1px, transparent 1px), linear-gradient(to bottom, #4f4e4f 1px, transparent 1px);
}
#workbench-canvas #selection-container {
  pointer-events: none;
}
#workbench-canvas #selection-container .selection-box {
  z-index: 10;
  background: rgba(72, 72, 196, 0.5);
  border: blue solid 2px;
}
#workbench-canvas #workbench-container {
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  transform-origin: left top;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 100%;
}
#workbench-canvas #workbench-container #frame-container {
  overflow: visible;
  grid-row: 1;
  grid-column: 1;
  position: relative;
  width: 100%;
  height: 100%;
}
#workbench-canvas #workbench-container .frame-box {
  position: absolute;
  background: rgba(72, 72, 72, 0.7);
  display: grid;
  grid-template-rows: 40px calc(100% - 40px);
  grid-template-columns: 100%;
  box-sizing: border-box;
}
#workbench-canvas #workbench-container .frame-box.collapsed {
  height: auto !important;
  width: 200px !important;
  z-index: 3;
}
#workbench-canvas #workbench-container .frame-box.collapsed .frame-box-header {
  font-size: 16px;
  grid-template-columns: calc(100% - 37px) 30px 7px;
}
#workbench-canvas #workbench-container .frame-box.collapsed .frame-box-header .frame-box-header-collapse {
  margin-top: -2px;
}
#workbench-canvas #workbench-container .frame-box.collapsed .frame-box-header .frame-box-header-close {
  display: none;
}
#workbench-canvas #workbench-container .frame-box.collapsed .frame-comments.has-comments .frame-comment-span {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
#workbench-canvas #workbench-container .frame-box .frame-box-border {
  grid-row: 1/span 2;
  grid-column: 1;
  width: 100%;
  height: 100%;
  border: transparent solid 4px;
  pointer-events: none;
  box-sizing: border-box;
}
#workbench-canvas #workbench-container .frame-box .frame-box-header {
  grid-row: 1;
  grid-column: 1;
  background: rgb(72, 72, 72);
  color: white;
  font-size: 24px;
  text-align: center;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: calc(100% - 74px) 30px 7px 30px 7px;
  align-content: center;
  overflow: hidden;
}
#workbench-canvas #workbench-container .frame-box .frame-box-header .frame-box-header-button {
  cursor: pointer;
  align-self: center;
  transform-origin: 50% 50%;
  transform: scale(1);
  stroke: transparent;
  fill: white;
  display: grid;
}
#workbench-canvas #workbench-container .frame-box .frame-box-header .frame-box-header-button.down {
  transform: scale(0.9);
}
#workbench-canvas #workbench-container .frame-box .frame-box-header .frame-box-header-collapse {
  grid-column: 2;
  grid-row: 1;
}
#workbench-canvas #workbench-container .frame-box .frame-box-header .frame-box-header-close {
  grid-column: 4;
  grid-row: 1;
}
#workbench-canvas #workbench-container .frame-box .frame-box-header .frame-box-header-title {
  grid-column: 1;
  grid-row: 1;
  display: grid;
  height: 100%;
  width: 100%;
  align-self: stretch;
  align-items: center;
  margin-top: -2px;
}
#workbench-canvas #workbench-container .frame-box .frame-comments.has-comments {
  display: grid;
  grid-row: 2;
  grid-column: 1;
  padding: 0 10px;
  font-style: italic;
  word-wrap: break-word;
}
#workbench-canvas #workbench-container .frame-box.selected .frame-box-border {
  border-color: white;
}
#workbench-canvas #workbench-container .frame-box .right-handle {
  grid-area: 1/2/3/2;
  width: 4px;
  background-color: transparent;
  cursor: ew-resize;
}
#workbench-canvas #workbench-container .frame-box .right-handle::after {
  content: "";
  width: 8px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin-left: -4px;
  cursor: ew-resize;
}
#workbench-canvas #workbench-container .frame-box .right-handle.collapsed {
  cursor: pointer;
}
#workbench-canvas #workbench-container .frame-box .top-right-corner-handle {
  background-color: transparent;
  height: 4px;
  z-index: 21;
  cursor: ne-resize;
  width: 4px;
  margin-left: -6px;
}
#workbench-canvas #workbench-container .frame-box .top-right-corner-handle::after {
  background-color: transparent;
  cursor: ne-resize;
  margin-left: unset;
  top: -4px;
  height: 10px;
  width: 10px;
}
#workbench-canvas #workbench-container .frame-box .bottom-right-corner-handle {
  background-color: transparent;
  height: 0px;
  z-index: 21;
  cursor: nw-resize;
  grid-area: 4/2/4/2;
  margin-left: -2px;
}
#workbench-canvas #workbench-container .frame-box .bottom-right-corner-handle::after {
  background-color: transparent;
  height: 10px;
  cursor: nw-resize;
  top: unset;
  bottom: -4px;
  width: 10px;
}
#workbench-canvas #workbench-container .frame-box .left-handle {
  grid-area: 1/1/3/1;
  width: 4px;
  background-color: transparent;
  cursor: ew-resize;
}
#workbench-canvas #workbench-container .frame-box .left-handle::before {
  content: "";
  width: 8px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin-left: -4px;
}
#workbench-canvas #workbench-container .frame-box .top-left-corner-handle {
  background-color: transparent;
  height: 4px;
  z-index: 21;
  cursor: nw-resize;
  width: 4px;
  margin-left: -4px;
}
#workbench-canvas #workbench-container .frame-box .top-left-corner-handle::before {
  background-color: transparent;
  cursor: nw-resize;
  margin-left: unset;
  top: -4px;
  height: 10px;
  width: 10px;
}
#workbench-canvas #workbench-container .frame-box .bottom-left-corner-handle {
  background-color: transparent;
  height: 0px;
  z-index: 21;
  cursor: sw-resize;
  grid-area: 4/1/4/1;
}
#workbench-canvas #workbench-container .frame-box .bottom-left-corner-handle::before {
  background-color: transparent;
  height: 10px;
  cursor: sw-resize;
  top: unset;
  bottom: -4px;
  width: 10px;
}
#workbench-canvas #workbench-container .frame-box .top-handle {
  grid-area: 1/1/1/1;
  background-color: transparent;
  height: 4px;
  cursor: ns-resize;
}
#workbench-canvas #workbench-container .frame-box .top-handle::before {
  content: "";
  width: 100%;
  position: absolute;
  top: -4px;
  bottom: 100%;
  right: 0;
  left: 0;
  margin-bottom: -8px;
  cursor: ns-resize;
  height: 8px;
}
#workbench-canvas #workbench-container .frame-box .bottom-handle {
  grid-area: 3/1/3/1;
  background-color: transparent;
  height: 4px;
  cursor: ns-resize;
}
#workbench-canvas #workbench-container .frame-box .bottom-handle::after {
  content: "";
  width: 100%;
  position: absolute;
  top: 100%;
  bottom: 0;
  right: 0;
  left: 0;
  margin-top: -8px;
  cursor: ns-resize;
  height: 12px;
}
#workbench-canvas #workbench-container .frame-box.collapsed .top-handle,
#workbench-canvas #workbench-container .frame-box.collapsed .top-right-corner-handle,
#workbench-canvas #workbench-container .frame-box.collapsed .right-handle,
#workbench-canvas #workbench-container .frame-box.collapsed .bottom-right-corner-handle,
#workbench-canvas #workbench-container .frame-box.collapsed .bottom-handle,
#workbench-canvas #workbench-container .frame-box.collapsed .bottom-left-corner-handle,
#workbench-canvas #workbench-container .frame-box.collapsed .left-handle,
#workbench-canvas #workbench-container .frame-box.collapsed .top-left-corner-handle {
  cursor: default;
}
#workbench-canvas #workbench-container .frame-box.collapsed .right-handle::after,
#workbench-canvas #workbench-container .frame-box.collapsed .bottom-handle::after,
#workbench-canvas #workbench-container .frame-box.collapsed .top-right-corner-handle::after,
#workbench-canvas #workbench-container .frame-box.collapsed .bottom-right-corner-handle::after {
  cursor: default;
}
#workbench-canvas #workbench-container .frame-box.collapsed .left-handle::before,
#workbench-canvas #workbench-container .frame-box.collapsed .top-handle::before,
#workbench-canvas #workbench-container .frame-box.collapsed .top-left-corner-handle::before,
#workbench-canvas #workbench-container .frame-box.collapsed .bottom-left-corner-handle::before {
  cursor: default;
}
#workbench-canvas #workbench-container #workbench-svg-container {
  grid-row: 1;
  grid-column: 1;
  position: relative;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
  z-index: 2;
}
#workbench-canvas #workbench-container #workbench-svg-container .link {
  stroke-width: 4px;
}
#workbench-canvas #workbench-container #workbench-svg-container .link.selected {
  stroke: white !important;
  stroke-dasharray: 10, 2;
}
#workbench-canvas #workbench-container #workbench-svg-container .link.hidden {
  display: none;
}
#workbench-canvas #workbench-container #workbench-svg-container .selection-link {
  pointer-events: all;
  stroke-width: 16px;
  opacity: 0;
  transition: opacity 75ms;
  stroke: transparent;
  cursor: pointer;
}
#workbench-canvas #workbench-container #workbench-svg-container .selection-link.hidden {
  display: none;
}
#workbench-canvas #workbench-container #workbench-svg-container .selection-link:hover, #workbench-canvas #workbench-container #workbench-svg-container .selection-link.selected {
  stroke: white !important;
  opacity: 0.4;
}
#workbench-canvas #workbench-container #workbench-canvas-container {
  grid-row: 1;
  grid-column: 1;
  position: relative;
  width: 100%;
  height: 100%;
}
#workbench-canvas #workbench-container #workbench-canvas-container .visual {
  z-index: 4;
  width: 200px;
  position: absolute;
  left: 0;
  top: 0;
  background: gray;
  border: 4px solid black;
  border-radius: 12px;
  display: grid;
  grid-template-rows: 30px auto;
  grid-template-columns: 100%;
  color: white;
}
#workbench-canvas #workbench-container #workbench-canvas-container .visual.hidden {
  display: none;
}
#workbench-canvas #workbench-container #workbench-canvas-container .visual .comments {
  position: absolute;
  top: -50px;
  width: 200px;
  height: 45px;
  overflow: hidden;
  font-style: italic;
  opacity: 0.8;
  display: grid;
  align-items: flex-end;
  pointer-events: none;
}
#workbench-canvas #workbench-container #workbench-canvas-container .visual .selection-border {
  grid-row: 1/span 3;
  grid-column: 1;
  margin: -4px;
  transition: border-color 100ms;
  border: 4px solid black;
  border-radius: 12px;
}
#workbench-canvas #workbench-container #workbench-canvas-container .visual.selected .selection-border {
  border-color: white;
}
#workbench-canvas #workbench-container #workbench-canvas-container .visual .header {
  grid-row: 1;
  grid-column: 1;
  border: 4px solid black;
  border-top-right-radius: 7px;
  border-top-left-radius: 7px;
  font-size: 16px;
  text-align: center;
  margin-top: -1px;
  margin-left: -1px;
  margin-right: -1px;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  background: black;
  color: white;
}
#workbench-canvas #workbench-container #workbench-canvas-container .visual .header.constant {
  border-color: #464348;
  background: #464348;
}
#workbench-canvas #workbench-container #workbench-canvas-container .visual .header.inspector {
  border-color: #66491b;
  background: #66491b;
}`,"",{version:3,sources:["webpack://./../../../tools/guiEditor/dist/diagram/workbenchCanvas.scss"],names:[],mappings:"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",sourcesContent:[`#workbench-canvas {\r
    grid-column: 1;\r
    grid-row: 1;\r
    width: 100%;\r
    height: 100%;\r
    margin: 0;\r
    padding: 0;\r
    font: 14px "acumin-pro-condensed";\r
    cursor: default;\r
    user-select: none;\r
    overflow: hidden;\r
\r
    background-image: linear-gradient(to right, #4f4e4f 1px, transparent 1px), linear-gradient(to bottom, #4f4e4f 1px, transparent 1px);\r
\r
    #selection-container {\r
        pointer-events: none;\r
\r
        .selection-box {\r
            z-index: 10;\r
            background: rgba(72, 72, 196, 0.5);\r
            border: blue solid 2px;\r
        }\r
    }\r
\r
    #workbench-container {\r
        width: 100%;\r
        height: 100%;\r
        left: 0;\r
        top: 0;\r
        transform-origin: left top;\r
        display: grid;\r
        grid-template-rows: 100%;\r
        grid-template-columns: 100%;\r
\r
        #frame-container {\r
            overflow: visible;\r
            grid-row: 1;\r
            grid-column: 1;\r
            position: relative;\r
            width: 100%;\r
            height: 100%;\r
        }\r
\r
        .frame-box {\r
            position: absolute;\r
            background: rgba(72, 72, 72, 0.7);\r
            display: grid;\r
            grid-template-rows: 40px calc(100% - 40px);\r
            grid-template-columns: 100%;\r
            box-sizing: border-box;\r
\r
            &.collapsed {\r
                height: auto !important;\r
                width: 200px !important;\r
                z-index: 3;\r
\r
                .frame-box-header {\r
                    font-size: 16px;\r
                    grid-template-columns: calc(100% - 37px) 30px 7px;\r
\r
                    .frame-box-header-collapse {\r
                        margin-top: -2px;\r
                    }\r
\r
                    .frame-box-header-close {\r
                        display: none;\r
                    }\r
                }\r
\r
                .frame-comments.has-comments {\r
                    .frame-comment-span {\r
                        white-space: nowrap;\r
                        text-overflow: ellipsis;\r
                        overflow: hidden;\r
                    }\r
                }\r
            }\r
\r
            .frame-box-border {\r
                grid-row: 1 / span 2;\r
                grid-column: 1;\r
                width: 100%;\r
                height: 100%;\r
                border: transparent solid 4px;\r
                pointer-events: none;\r
                box-sizing: border-box;\r
            }\r
\r
            .frame-box-header {\r
                grid-row: 1;\r
                grid-column: 1;\r
                background: rgba(72, 72, 72, 1);\r
                color: white;\r
                font-size: 24px;\r
                text-align: center;\r
                display: grid;\r
                grid-template-rows: 100%;\r
                grid-template-columns: calc(100% - 74px) 30px 7px 30px 7px;\r
                align-content: center;\r
                overflow: hidden;\r
\r
                .frame-box-header-button {\r
                    cursor: pointer;\r
                    align-self: center;\r
                    transform-origin: 50% 50%;\r
                    transform: scale(1);\r
                    stroke: transparent;\r
                    fill: white;\r
                    display: grid;\r
\r
                    &.down {\r
                        transform: scale(0.9);\r
                    }\r
                }\r
\r
                .frame-box-header-collapse {\r
                    grid-column: 2;\r
                    grid-row: 1;\r
                }\r
\r
                .frame-box-header-close {\r
                    grid-column: 4;\r
                    grid-row: 1;\r
                }\r
\r
                .frame-box-header-title {\r
                    grid-column: 1;\r
                    grid-row: 1;\r
                    display: grid;\r
                    height: 100%;\r
                    width: 100%;\r
                    align-self: stretch;\r
                    align-items: center;\r
                    margin-top: -2px;\r
                }\r
            }\r
\r
            .frame-comments.has-comments {\r
                display: grid;\r
                grid-row: 2;\r
                grid-column: 1;\r
                padding: 0 10px;\r
                font-style: italic;\r
                word-wrap: break-word;\r
            }\r
\r
            &.selected {\r
                .frame-box-border {\r
                    border-color: white;\r
                }\r
            }\r
\r
            .right-handle {\r
                grid-area: 1 / 2 / 3 / 2;\r
                width: 4px;\r
                background-color: transparent;\r
                cursor: ew-resize;\r
\r
                &::after {\r
                    content: "";\r
                    width: 8px;\r
                    position: absolute;\r
                    top: 0;\r
                    bottom: 0;\r
                    margin-left: -4px;\r
                    cursor: ew-resize;\r
                }\r
\r
                &.collapsed {\r
                    cursor: pointer;\r
                }\r
            }\r
\r
            .top-right-corner-handle {\r
                background-color: transparent;\r
                height: 4px;\r
                z-index: 21;\r
                cursor: ne-resize;\r
                width: 4px;\r
                margin-left: -6px;\r
\r
                &::after {\r
                    background-color: transparent;\r
                    cursor: ne-resize;\r
                    margin-left: unset;\r
                    top: -4px;\r
                    height: 10px;\r
                    width: 10px;\r
                }\r
            }\r
\r
            .bottom-right-corner-handle {\r
                background-color: transparent;\r
                height: 0px;\r
                z-index: 21;\r
                cursor: nw-resize;\r
                grid-area: 4 / 2 / 4 / 2;\r
                margin-left: -2px;\r
\r
                &::after {\r
                    background-color: transparent;\r
                    height: 10px;\r
                    cursor: nw-resize;\r
                    top: unset;\r
                    bottom: -4px;\r
                    width: 10px;\r
                }\r
            }\r
\r
            .left-handle {\r
                grid-area: 1 / 1 / 3 / 1;\r
                width: 4px;\r
                background-color: transparent;\r
                cursor: ew-resize;\r
\r
                &::before {\r
                    content: "";\r
                    width: 8px;\r
                    position: absolute;\r
                    top: 0;\r
                    bottom: 0;\r
                    margin-left: -4px;\r
                }\r
            }\r
\r
            .top-left-corner-handle {\r
                background-color: transparent;\r
                height: 4px;\r
                z-index: 21;\r
                cursor: nw-resize;\r
                width: 4px;\r
                margin-left: -4px;\r
\r
                &::before {\r
                    background-color: transparent;\r
                    cursor: nw-resize;\r
                    margin-left: unset;\r
                    top: -4px;\r
                    height: 10px;\r
                    width: 10px;\r
                }\r
            }\r
\r
            .bottom-left-corner-handle {\r
                background-color: transparent;\r
                height: 0px;\r
                z-index: 21;\r
                cursor: sw-resize;\r
                grid-area: 4 / 1 / 4 / 1;\r
\r
                &::before {\r
                    background-color: transparent;\r
                    height: 10px;\r
                    cursor: sw-resize;\r
                    top: unset;\r
                    bottom: -4px;\r
                    width: 10px;\r
                }\r
            }\r
\r
            .top-handle {\r
                grid-area: 1 / 1 / 1 / 1;\r
                background-color: transparent;\r
                height: 4px;\r
                cursor: ns-resize;\r
\r
                &::before {\r
                    content: "";\r
                    width: 100%;\r
                    position: absolute;\r
                    top: -4px;\r
                    bottom: 100%;\r
                    right: 0;\r
                    left: 0;\r
                    margin-bottom: -8px;\r
                    cursor: ns-resize;\r
                    height: 8px;\r
                }\r
            }\r
\r
            .bottom-handle {\r
                grid-area: 3 / 1 / 3 / 1;\r
                background-color: transparent;\r
                height: 4px;\r
                cursor: ns-resize;\r
\r
                &::after {\r
                    content: "";\r
                    width: 100%;\r
                    position: absolute;\r
                    top: 100%;\r
                    bottom: 0;\r
                    right: 0;\r
                    left: 0;\r
                    margin-top: -8px;\r
                    cursor: ns-resize;\r
                    height: 12px;\r
                }\r
            }\r
\r
            &.collapsed {\r
                .top-handle,\r
                .top-right-corner-handle,\r
                .right-handle,\r
                .bottom-right-corner-handle,\r
                .bottom-handle,\r
                .bottom-left-corner-handle,\r
                .left-handle,\r
                .top-left-corner-handle {\r
                    cursor: default;\r
                }\r
\r
                .right-handle,\r
                .bottom-handle,\r
                .top-right-corner-handle,\r
                .bottom-right-corner-handle {\r
                    &::after {\r
                        cursor: default;\r
                    }\r
                }\r
\r
                .left-handle,\r
                .top-handle,\r
                .top-left-corner-handle,\r
                .bottom-left-corner-handle {\r
                    &::before {\r
                        cursor: default;\r
                    }\r
                }\r
            }\r
        }\r
\r
        #workbench-svg-container {\r
            grid-row: 1;\r
            grid-column: 1;\r
            position: relative;\r
            width: 100%;\r
            height: 100%;\r
            overflow: visible;\r
            pointer-events: none;\r
            z-index: 2;\r
\r
            .link {\r
                stroke-width: 4px;\r
                &.selected {\r
                    stroke: white !important;\r
                    stroke-dasharray: 10, 2;\r
                }\r
\r
                &.hidden {\r
                    display: none;\r
                }\r
            }\r
\r
            .selection-link {\r
                pointer-events: all;\r
                stroke-width: 16px;\r
                opacity: 0;\r
                transition: opacity 75ms;\r
                stroke: transparent;\r
                cursor: pointer;\r
\r
                &.hidden {\r
                    display: none;\r
                }\r
\r
                &:hover,\r
                &.selected {\r
                    stroke: white !important;\r
                    opacity: 0.4;\r
                }\r
            }\r
        }\r
\r
        #workbench-canvas-container {\r
            grid-row: 1;\r
            grid-column: 1;\r
            position: relative;\r
            width: 100%;\r
            height: 100%;\r
\r
            .visual {\r
                z-index: 4;\r
                width: 200px;\r
                position: absolute;\r
                left: 0;\r
                top: 0;\r
                background: gray;\r
                border: 4px solid black;\r
                border-radius: 12px;\r
                display: grid;\r
                grid-template-rows: 30px auto;\r
                grid-template-columns: 100%;\r
                color: white;\r
\r
                &.hidden {\r
                    display: none;\r
                }\r
\r
                .comments {\r
                    position: absolute;\r
                    top: -50px;\r
                    width: 200px;\r
                    height: 45px;\r
                    overflow: hidden;\r
                    font-style: italic;\r
                    opacity: 0.8;\r
                    display: grid;\r
                    align-items: flex-end;\r
                    pointer-events: none;\r
                }\r
\r
                .selection-border {\r
                    grid-row: 1 / span 3;\r
                    grid-column: 1;\r
                    margin: -4px;\r
\r
                    transition: border-color 100ms;\r
\r
                    border: 4px solid black;\r
                    border-radius: 12px;\r
                }\r
\r
                &.selected {\r
                    .selection-border {\r
                        border-color: white;\r
                    }\r
                }\r
\r
                .header {\r
                    grid-row: 1;\r
                    grid-column: 1;\r
                    border: 4px solid black;\r
                    border-top-right-radius: 7px;\r
                    border-top-left-radius: 7px;\r
                    font-size: 16px;\r
                    text-align: center;\r
                    margin-top: -1px;\r
                    margin-left: -1px;\r
                    margin-right: -1px;\r
                    white-space: nowrap;\r
                    text-overflow: ellipsis;\r
                    overflow: hidden;\r
                    background: black;\r
                    color: white;\r
\r
                    &.constant {\r
                        border-color: #464348;\r
                        background: #464348;\r
                    }\r
\r
                    &.inspector {\r
                        border-color: #66491b;\r
                        background: #66491b;\r
                    }\r
                }\r
            }\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const h=d},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/main.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>h});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`:root {
  --blackBarHeight: 55px;
}

#gui-editor-workbench-root {
  display: grid;
  grid-template-rows: calc(100% - 55px);
  height: 100%;
  width: 100%;
  background: #e2e2e2;
  font: 14px "acumin-pro-condensed";
}

.wait-screen {
  display: grid;
  justify-content: center;
  align-content: center;
  height: 100%;
  width: 100%;
  background: #464646;
  opacity: 0.95;
  color: white;
  font: 24px "acumin-pro-condensed";
  position: absolute;
  top: 0;
  left: 0;
}
.wait-screen.hidden {
  visibility: hidden;
}

#leftGrab {
  width: 5px;
  height: 100%;
  cursor: ew-resize;
  position: absolute;
  right: -1px;
  top: 0;
}

#rightGrab {
  cursor: ew-resize;
  width: 5px;
  bottom: 0;
  position: absolute;
  top: 0;
  left: 0;
}

.toolbarGrab {
  background: #333333;
  grid-row: 1/span 3;
  grid-column: 2;
  height: 100%;
  overflow-y: auto;
}
.toolbarGrab .blackLine {
  height: 16px;
  background: black;
  position: relative;
}
.toolbarGrab .arrow {
  color: white;
  position: absolute;
}
.toolbarGrab .toolbar-label {
  color: white;
  font-size: 18px;
  display: grid;
  align-items: center;
  cursor: pointer;
  user-select: none;
  grid-template-columns: 1fr 20px;
  grid-template-rows: 100%;
  position: relative;
}
.toolbarGrab .toolbar-label.active {
  font-weight: bold;
  font-size: 20px;
}
.toolbarGrab .toolbar-label:hover {
  background: var(--selectionGrey);
}
.toolbarGrab .toolbar-label:hover .sub-items {
  display: block;
}
.toolbarGrab .toolbar-icon {
  width: 40px;
  height: 40px;
}
.toolbarGrab.expanded .toolbar-content-sub1 {
  column-count: 2;
}

.diagram-container {
  position: relative;
  display: grid;
  grid-row: 1;
  grid-column: 2;
  background: #cccccc;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.diagram-container .diagram {
  display: none;
  width: 100%;
  height: 100%;
}

.left-panel {
  grid-row: 1/span 2;
  grid-column: 1;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 1fr 50px;
  position: relative;
  overflow: hidden;
}
.left-panel.expand {
  grid-template-columns: 1fr 100px;
}

.right-panel {
  grid-row: 1/span 2;
  grid-column: 3;
  display: grid;
  grid-template-rows: 1fr 40px auto 40px;
  grid-template-columns: 100%;
  overflow-y: auto;
  position: relative;
}
.right-panel #propertyTab {
  grid-row: 1;
  grid-column: 1;
}
.right-panel .button {
  display: grid;
  justify-content: center;
  align-content: center;
  height: auto;
  width: 14.2857142857%;
  cursor: pointer;
}
.right-panel .button:hover {
  background: rgb(51, 122, 183);
  color: white;
  opacity: 0.8;
}
.right-panel .button.selected {
  background: rgb(51, 122, 183);
  color: white;
}
.right-panel .button.align {
  justify-content: stretch;
  text-align: center;
}

.blocker {
  visibility: hidden;
  position: absolute;
  width: calc(100% - 40px);
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(20, 20, 20, 0.95);
  font-family: "acumin-pro-condensed", sans-serif;
  color: white;
  font-size: 24px;
  display: grid;
  align-content: center;
  justify-content: center;
  user-select: none;
  padding: 20px;
  text-align: center;
}

#log-console {
  grid-row: 2;
  grid-column: 4;
  display: none;
}

.gizmo * {
  user-select: none;
}
.gizmo .bounding-box-line {
  background-color: black;
  position: absolute;
  line-height: 1px;
  height: 1px;
  pointer-events: none;
}
.gizmo .scale-point-container {
  position: absolute;
  width: 30px;
  height: 30px;
}
.gizmo .scale-point-container .scale-point {
  top: 10px;
  left: 10px;
  position: absolute;
  width: 10px;
  height: 10px;
  background: transparent;
  outline: rgb(125, 125, 125) 2px solid;
}
.gizmo .scale-point-container .rotate-click-area {
  width: 20px;
  height: 20px;
  position: absolute;
}
.gizmo .scale-point-container .scale-click-area {
  width: 20px;
  height: 20px;
  position: absolute;
}
.gizmo .pivot-point {
  width: 30px;
  height: 30px;
  background: transparent;
  position: absolute;
}

#workbench-canvas {
  position: relative;
}

.artboard-stroke {
  outline: 1px solid black;
  position: absolute;
  z-index: 2;
  pointer-events: none;
}

.artboard-background {
  position: absolute;
  background: repeating-conic-gradient(#e2e2e2 0% 25%, white 0% 50%) 50%/10px 10px;
  width: 100%;
  height: 100%;
}`,"",{version:3,sources:["webpack://./../../../tools/guiEditor/dist/main.scss"],names:[],mappings:"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",sourcesContent:[`:root {\r
    --blackBarHeight: 55px;\r
}\r
\r
#gui-editor-workbench-root {\r
    display: grid;\r
    grid-template-rows: calc(100% - 55px);\r
    height: 100%;\r
    width: 100%;\r
    background: #e2e2e2;\r
    font: 14px "acumin-pro-condensed";\r
}\r
\r
.wait-screen {\r
    display: grid;\r
    justify-content: center;\r
    align-content: center;\r
    height: 100%;\r
    width: 100%;\r
    background: #464646;\r
    opacity: 0.95;\r
    color: white;\r
    font: 24px "acumin-pro-condensed";\r
    position: absolute;\r
    top: 0;\r
    left: 0;\r
\r
    &.hidden {\r
        visibility: hidden;\r
    }\r
}\r
\r
#leftGrab {\r
    width: 5px;\r
    height: 100%;\r
    cursor: ew-resize;\r
    position: absolute;\r
    right: -1px;\r
    top: 0;\r
}\r
\r
#rightGrab {\r
    cursor: ew-resize;\r
    width: 5px;\r
    bottom: 0;\r
    position: absolute;\r
    top: 0;\r
    left: 0;\r
}\r
\r
.toolbarGrab {\r
    background: #333333;\r
    grid-row: 1 / span 3;\r
    grid-column: 2;\r
    height: 100%;\r
    overflow-y: auto;\r
\r
    .blackLine {\r
        height: 16px;\r
        background: black;\r
        position: relative;\r
    }\r
    .arrow {\r
        color: white;\r
        position: absolute;\r
    }\r
    .toolbar-label {\r
        color: white;\r
        font-size: 18px;\r
        display: grid;\r
        align-items: center;\r
        cursor: pointer;\r
        user-select: none;\r
        grid-template-columns: 1fr 20px;\r
        grid-template-rows: 100%;\r
        position: relative;\r
\r
        &.active {\r
            font-weight: bold;\r
            font-size: 20px;\r
        }\r
\r
        &:hover {\r
            background: var(--selectionGrey);\r
            .sub-items {\r
                display: block;\r
            }\r
        }\r
    }\r
    .toolbar-icon {\r
        width: 40px;\r
        height: 40px;\r
    }\r
    &.expanded {\r
        .toolbar-content-sub1 {\r
            column-count: 2;\r
        }\r
    }\r
}\r
\r
.diagram-container {\r
    position: relative;\r
    display: grid;\r
    grid-row: 1;\r
    grid-column: 2;\r
    background: #cccccc;\r
    width: 100%;\r
    height: 100%;\r
    overflow: hidden;\r
\r
    .diagram {\r
        display: none;\r
        width: 100%;\r
        height: 100%;\r
    }\r
}\r
\r
.left-panel {\r
    grid-row: 1 / span 2;\r
    grid-column: 1;\r
    display: grid;\r
    grid-template-rows: 100%;\r
    grid-template-columns: 1fr 50px;\r
    position: relative;\r
    overflow: hidden;\r
    &.expand {\r
        grid-template-columns: 1fr 100px;\r
    }\r
}\r
\r
.right-panel {\r
    grid-row: 1 / span 2;\r
    grid-column: 3;\r
    display: grid;\r
    grid-template-rows: 1fr 40px auto 40px;\r
    grid-template-columns: 100%;\r
    overflow-y: auto;\r
    position: relative;\r
\r
    #propertyTab {\r
        grid-row: 1;\r
        grid-column: 1;\r
    }\r
\r
    .button {\r
        display: grid;\r
        justify-content: center;\r
        align-content: center;\r
        height: auto;\r
        width: calc(100% / 7);\r
        cursor: pointer;\r
\r
        &:hover {\r
            background: rgb(51, 122, 183);\r
            color: white;\r
            opacity: 0.8;\r
        }\r
\r
        &.selected {\r
            background: rgb(51, 122, 183);\r
            color: white;\r
        }\r
\r
        &.align {\r
            justify-content: stretch;\r
            text-align: center;\r
        }\r
    }\r
}\r
\r
.blocker {\r
    visibility: hidden;\r
    position: absolute;\r
    width: calc(100% - 40px);\r
    height: 100%;\r
    top: 0;\r
    left: 0;\r
\r
    background: rgba(20, 20, 20, 0.95);\r
    font-family: "acumin-pro-condensed", sans-serif;\r
    color: white;\r
    font-size: 24px;\r
\r
    display: grid;\r
    align-content: center;\r
    justify-content: center;\r
\r
    user-select: none;\r
\r
    padding: 20px;\r
    text-align: center;\r
}\r
\r
#log-console {\r
    grid-row: 2;\r
    grid-column: 4;\r
    display: none;\r
}\r
\r
.gizmo {\r
    * {\r
        user-select: none;\r
    }\r
    .bounding-box-line {\r
        background-color: black;\r
        position: absolute;\r
        line-height: 1px;\r
        height: 1px;\r
        pointer-events: none;\r
    }\r
    .scale-point-container {\r
        position: absolute;\r
        width: 30px;\r
        height: 30px;\r
        .scale-point {\r
            top: 10px;\r
            left: 10px;\r
            position: absolute;\r
            width: 10px;\r
            height: 10px;\r
            background: transparent;\r
            outline: rgb(125, 125, 125) 2px solid;\r
        }\r
        .rotate-click-area {\r
            width: 20px;\r
            height: 20px;\r
            position: absolute;\r
        }\r
        .scale-click-area {\r
            width: 20px;\r
            height: 20px;\r
            position: absolute;\r
        }\r
    }\r
    .pivot-point {\r
        width: 30px;\r
        height: 30px;\r
        background: transparent;\r
        position: absolute;\r
    }\r
}\r
#workbench-canvas {\r
    position: relative;\r
}\r
.artboard-stroke {\r
    outline: 1px solid black;\r
    position: absolute;\r
    z-index: 2;\r
    pointer-events: none;\r
}\r
.artboard-background {\r
    position: absolute;\r
    background: repeating-conic-gradient(#e2e2e2 0% 25%, white 0% 50%) 50% / 10px 10px;\r
    width: 100%;\r
    height: 100%;\r
}\r
`],sourceRoot:""}]);const h=d},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/scss/commandBar.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>h});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`:root {
  --selectionGrey: #666666;
}

.ge-commands {
  grid-row: 1;
  grid-column: 1;
  user-select: none;
}
.ge-commands * {
  font-family: "acumin-pro-condensed";
  font-weight: 600;
  font-size: 12px;
}
.ge-commands .copy {
  display: none;
}
.ge-commands .commands-left {
  float: left;
  display: flex;
}
.ge-commands .commands-right {
  float: right;
  display: flex;
}
.ge-commands .commands-right .beta-flag {
  height: 30px;
  position: relative;
  left: -15px;
}
.ge-commands.background-ts .command-button img,
.ge-commands.background-ts .command-dropdown img {
  filter: invert(64%) sepia(78%) saturate(940%) hue-rotate(323deg) brightness(105%) contrast(103%);
}
.ge-commands.background-ts .command-button .command-dropdown-active,
.ge-commands.background-ts .command-dropdown .command-dropdown-active {
  color: #333333;
}
.ge-commands.background-ts .command-button:hover img, .ge-commands.background-ts .command-button.activated img,
.ge-commands.background-ts .command-dropdown:hover img,
.ge-commands.background-ts .command-dropdown.activated img {
  filter: invert(34%) sepia(21%) saturate(3832%) hue-rotate(324deg) brightness(88%) contrast(82%) !important;
}
.ge-commands.background-js .command-button img,
.ge-commands.background-js .command-dropdown img {
  filter: invert(57%) sepia(80%) saturate(2031%) hue-rotate(215deg);
}
.ge-commands.background-js .command-button .command-dropdown-active,
.ge-commands.background-js .command-dropdown .command-dropdown-active {
  color: #333333;
}
.ge-commands.background-js .command-button:hover img, .ge-commands.background-js .command-button.activated img,
.ge-commands.background-js .command-dropdown:hover img,
.ge-commands.background-js .command-dropdown.activated img {
  filter: invert(17%) !important;
}
.ge-commands .command-button {
  cursor: pointer;
  width: 55px;
  height: 55px;
}
.ge-commands .command-button .command-label {
  display: none;
}
.ge-commands .command-button .command-button-icon {
  height: 100%;
  width: 100%;
  display: grid;
  color: white;
  align-content: center;
  justify-content: center;
}
.ge-commands .command-button .active {
  transform-origin: center;
  background-color: var(--selectionGrey);
}
.ge-commands .command-button img.active {
  background-color: var(--selectionGrey);
}
.ge-commands .command-button:hover {
  background-color: var(--selectionGrey);
}
.ge-commands .copyAndDeleteDisabled {
  pointer-events: none;
  color: black;
}
.ge-commands .pasteDisabled {
  pointer-events: none;
  color: black;
}
.ge-commands .command-dropdown-root {
  position: relative;
  text-transform: uppercase;
  z-index: 1;
}
.ge-commands .command-dropdown {
  cursor: pointer;
  width: 55px;
  height: 55px;
}
.ge-commands .command-dropdown .command-dropdown-icon {
  height: 100%;
  width: 100%;
  display: grid;
  align-content: center;
  justify-content: center;
}
.ge-commands .command-dropdown .command-dropdown-active {
  height: 100%;
  width: 100%;
  display: grid;
  align-content: center;
  justify-content: center;
  font-size: 14px;
}
.ge-commands .command-dropdown:hover, .ge-commands .command-dropdown.activated {
  background-color: #666666;
  color: black;
}
.ge-commands .command-dropdown:active {
  transform-origin: center;
  transform: scale(0.95);
}
.ge-commands .command-dropdown-blocker {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform: scale(1);
  z-index: 1;
}
.ge-commands.background-js .command-dropdown-content {
  background: #333333;
}
.ge-commands.background-js .command-dropdown-content .command-dropdown-label:hover {
  background: #333333;
}
.ge-commands.background-ts .command-dropdown-content .command-dropdown-label:hover {
  background: #333333;
}
.ge-commands .command-dropdown-content {
  background: #333333;
  position: absolute;
  top: 55px;
  width: 55px;
  transform: scale(1);
}
.ge-commands .command-dropdown-content.toRight {
  width: 120px;
}
.ge-commands .command-dropdown-content .command-dropdown-label {
  color: white;
  padding: 5px;
  padding-left: 7px;
  height: 35px;
  font-size: 18px;
  display: grid;
  align-items: center;
  cursor: pointer;
  user-select: none;
  grid-template-columns: 1fr 20px;
  grid-template-rows: 100%;
  position: relative;
}
.ge-commands .command-dropdown-content .command-dropdown-label.active {
  font-weight: bold;
  font-size: 20px;
}
.ge-commands .command-dropdown-content .command-dropdown-label:hover {
  background: var(--selectionGrey);
}
.ge-commands .command-dropdown-content .command-dropdown-label:hover .sub-items {
  display: block;
}
.ge-commands .command-dropdown-content .command-dropdown-label .command-dropdown-label-text {
  font-size: 12px;
  grid-column: 1;
  grid-row: 1;
}
.ge-commands .command-dropdown-content .command-dropdown-label .command-dropdown-label-check {
  grid-column: 2;
  grid-row: 1;
}
.ge-commands .command-dropdown-content .command-dropdown-label .command-dropdown-arrow {
  grid-column: 2;
  grid-row: 1;
  font-size: 20px;
  font-weight: bold;
  padding-bottom: 10px;
  padding-left: 4px;
}
.ge-commands .command-dropdown-content .command-dropdown-label .sub-items {
  position: absolute;
  left: 200px;
  top: 0;
  width: 150px;
  display: none;
}
.ge-commands .command-dropdown-content .command-dropdown-label .sub-items.background-js {
  background: #bfabff;
}
.ge-commands .command-dropdown-content .command-dropdown-label .sub-items.background-js .sub-item:hover {
  background-color: #333333;
  color: white;
}
.ge-commands .command-dropdown-content .command-dropdown-label .sub-items.background-ts {
  background: #333333;
}
.ge-commands .command-dropdown-content .command-dropdown-label .sub-items.background-ts .sub-item:hover {
  background-color: #333333;
  color: white;
}
.ge-commands .command-dropdown-content .command-dropdown-label .sub-items .sub-item {
  color: white;
  padding: 5px;
  padding-left: 10px;
  height: 35px;
  display: grid;
}
.ge-commands .command-dropdown-content .command-dropdown-label .sub-items .sub-item.checked {
  background: white;
  color: black;
}
.ge-commands .command-dropdown-content .buttonLine {
  color: white;
  padding: 5px;
  padding-left: 7px;
  height: 35px;
  font-size: 18px;
  display: grid;
  align-items: center;
  cursor: pointer;
  user-select: none;
  grid-template-columns: 1fr 20px;
  grid-template-rows: 100%;
  position: relative;
  font-size: 12px;
  grid-column: 1;
  grid-row: 1;
}
.ge-commands .command-dropdown-content .buttonLine input[type=file] {
  display: none;
}
.ge-commands .command-dropdown-content .buttonLine.active {
  font-weight: bold;
  font-size: 20px;
  cursor: pointer;
}
.ge-commands .command-dropdown-content .buttonLine:hover {
  background: var(--selectionGrey);
  cursor: pointer;
}
.ge-commands .command-dropdown-content .buttonLine:hover .sub-items {
  display: block;
}
.ge-commands .command-dropdown-content .buttonLine .file-upload {
  cursor: pointer;
}
.ge-commands .divider {
  display: flex;
  align-items: center;
  border-right: 1px solid black;
  color: white;
}
.ge-commands .divider:last-of-type {
  border-right: none;
}
.ge-commands .divider.padded {
  padding-left: 10px;
  padding-right: 10px;
}
.ge-commands .floatLine,
.ge-commands .checkBoxLine {
  display: flex;
  align-items: center;
}
.ge-commands .floatLine .copy,
.ge-commands .checkBoxLine .copy {
  display: none;
}
.ge-commands .checkBoxLine .icon {
  filter: brightness(10);
}
.ge-commands .checkBoxLine .hidden {
  display: none;
}
.ge-commands .checkBoxLine .checkBox {
  height: 40px;
}
.ge-commands .checkBoxLine .copy {
  display: none;
}
.ge-commands .color3Line {
  display: grid;
}
.ge-commands .color3Line .firstLine {
  display: flex;
  align-items: center;
}
.ge-commands .color3Line .firstLine .label {
  padding-right: 5px;
}
.ge-commands .color3Line .firstLine .floatLine .value {
  padding-left: 2px;
}
.ge-commands .color3Line .firstLine .copy {
  display: none;
}
.ge-commands .color3Line .firstLine .expand {
  display: none;
}
.ge-commands .color3Line .secondLine {
  display: grid;
  padding-right: 5px;
  border-left: 1px solid rgb(51, 122, 183);
}
.ge-commands .color3Line .secondLine .numeric {
  display: grid;
  grid-template-columns: 1fr auto;
}
.ge-commands .color3Line .secondLine .numeric-label {
  text-align: right;
  grid-column: 1;
  display: flex;
  align-items: center;
  justify-self: right;
  margin-right: 10px;
}
.ge-commands .color3Line .secondLine .numeric-value {
  width: 120px;
  grid-column: 2;
  display: flex;
  align-items: center;
  border: 1px solid rgb(51, 122, 183);
}
.ge-commands .color-picker {
  height: 26px;
  width: 26px;
}
.ge-commands .color-picker .color-rect-background {
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  border: 1px solid white;
  cursor: pointer;
  background: repeating-conic-gradient(#e2e2e2 0% 25%, white 0% 50%) 50%/100% 100%;
}
.ge-commands .color-picker .color-rect-background .color-rect {
  height: 100%;
}
.ge-commands .color-picker .color-picker-cover {
  position: fixed;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 2;
}
.ge-commands .color-picker .color-picker-float {
  position: absolute;
  outline: 1px solid black;
}
.ge-commands .color-picker .color-picker-container {
  background-color: #e2e2e2;
}
.ge-commands .color-picker input:focus {
  outline-color: black;
}
.ge-commands .floatLine input,
.ge-commands .listLine select {
  background-color: #000000;
  color: white;
  padding: 5px;
  border: none;
}
.ge-commands input,
.ge-commands .listLine select {
  outline-color: transparent;
  outline-width: 1px;
  outline-offset: -1px;
  outline-style: solid;
  transition: 0.2s outline;
  border: none;
}
.ge-commands .floatLine .value {
  position: relative;
  margin: 5px;
}
.ge-commands .floatLine input:focus {
  outline-color: white;
}
.ge-commands .listLine select {
  width: 150px;
}
.ge-commands .hasArrows .arrows {
  display: none;
  position: absolute;
  right: 0;
  top: 0;
  flex-direction: column;
  cursor: grab;
  filter: brightness(10);
}
.ge-commands .hasArrows .arrows .downArrowIcon,
.ge-commands .hasArrows .arrows .upArrowIcon {
  width: 13px;
  height: 13px;
}
.ge-commands .hasArrows:hover .arrows, .ge-commands .hasArrows:focus .arrows, .ge-commands .hasArrows.dragging .arrows {
  display: flex;
}
.ge-commands .hasArrows .arrows:hover {
  background-color: var(--buttonHoverBackground);
  filter: none;
}
.ge-commands .hasArrows.dragging .arrows {
  background-color: var(--buttonPressedBackground);
}
.ge-commands .hasArrows.dragging .arrows .downArrowIcon,
.ge-commands .hasArrows.dragging .arrows .upArrowIcon {
  filter: none;
}
.ge-commands .hasArrows input::-webkit-outer-spin-button,
.ge-commands .hasArrows input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.ge-commands .hasArrows input[type=number] {
  -moz-appearance: textfield;
}`,"",{version:3,sources:["webpack://./../../../tools/guiEditor/dist/scss/commandBar.scss"],names:[],mappings:"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",sourcesContent:[`:root {\r
    --selectionGrey: #666666;\r
}\r
\r
.ge-commands {\r
    grid-row: 1;\r
    grid-column: 1;\r
    user-select: none;\r
    * {\r
        font-family: "acumin-pro-condensed";\r
        font-weight: 600;\r
        font-size: 12px;\r
    }\r
\r
    .copy {\r
        display: none;\r
    }\r
\r
    .commands-left {\r
        float: left;\r
        display: flex;\r
    }\r
\r
    .commands-right {\r
        float: right;\r
        display: flex;\r
        .beta-flag {\r
            height: 30px;\r
            position: relative;\r
            left: -15px;\r
        }\r
    }\r
\r
    &.background-ts {\r
        .command-button,\r
        .command-dropdown {\r
            img {\r
                filter: invert(64%) sepia(78%) saturate(940%) hue-rotate(323deg) brightness(105%) contrast(103%);\r
            }\r
\r
            .command-dropdown-active {\r
                color: #333333;\r
            }\r
\r
            &:hover,\r
            &.activated {\r
                img {\r
                    filter: invert(34%) sepia(21%) saturate(3832%) hue-rotate(324deg) brightness(88%) contrast(82%) !important;\r
                }\r
            }\r
        }\r
    }\r
\r
    &.background-js {\r
        .command-button,\r
        .command-dropdown {\r
            img {\r
                filter: invert(57%) sepia(80%) saturate(2031%) hue-rotate(215deg);\r
            }\r
\r
            .command-dropdown-active {\r
                color: #333333;\r
            }\r
\r
            &:hover,\r
            &.activated {\r
                img {\r
                    filter: invert(17%) !important;\r
                }\r
            }\r
        }\r
    }\r
\r
    .command-button {\r
        cursor: pointer;\r
        width: 55px;\r
        height: 55px;\r
\r
        .command-label {\r
            display: none;\r
        }\r
\r
        .command-button-icon {\r
            height: 100%;\r
            width: 100%;\r
            display: grid;\r
            color: white;\r
            align-content: center;\r
            justify-content: center;\r
        }\r
\r
        .active {\r
            transform-origin: center;\r
            background-color: var(--selectionGrey);\r
        }\r
\r
        img {\r
            &.active {\r
                background-color: var(--selectionGrey);\r
            }\r
        }\r
    }\r
    .command-button:hover {\r
        background-color: var(--selectionGrey);\r
    }\r
    .copyAndDeleteDisabled {\r
        pointer-events: none;\r
        color: black;\r
    }\r
    .pasteDisabled {\r
        pointer-events: none;\r
        color: black;\r
    }\r
    .command-dropdown-root {\r
        position: relative;\r
        text-transform: uppercase;\r
        z-index: 1;\r
    }\r
\r
    .command-dropdown {\r
        cursor: pointer;\r
        width: 55px;\r
        height: 55px;\r
\r
        .command-dropdown-icon {\r
            height: 100%;\r
            width: 100%;\r
            display: grid;\r
            align-content: center;\r
            justify-content: center;\r
        }\r
\r
        .command-dropdown-active {\r
            height: 100%;\r
            width: 100%;\r
            display: grid;\r
            align-content: center;\r
            justify-content: center;\r
            font-size: 14px;\r
        }\r
\r
        &:hover,\r
        &.activated {\r
            background-color: #666666;\r
            color: black;\r
        }\r
\r
        &:active {\r
            transform-origin: center;\r
            transform: scale(0.95);\r
        }\r
    }\r
\r
    .command-dropdown-blocker {\r
        position: absolute;\r
        top: 0;\r
        left: 0;\r
        width: 100%;\r
        height: 100%;\r
        transform: scale(1);\r
        z-index: 1;\r
    }\r
\r
    &.background-js {\r
        .command-dropdown-content {\r
            background: #333333;\r
            .command-dropdown-label {\r
                &:hover {\r
                    background: #333333;\r
                }\r
            }\r
        }\r
    }\r
\r
    &.background-ts {\r
        .command-dropdown-content {\r
            .command-dropdown-label {\r
                &:hover {\r
                    background: #333333;\r
                }\r
            }\r
        }\r
    }\r
\r
    .command-dropdown-content {\r
        background: #333333;\r
        position: absolute;\r
        top: 55px;\r
        width: 55px;\r
        transform: scale(1);\r
\r
        &.toRight {\r
            width: 120px;\r
        }\r
\r
        .command-dropdown-label {\r
            color: white;\r
            padding: 5px;\r
            padding-left: 7px;\r
            height: 35px;\r
            font-size: 18px;\r
            display: grid;\r
            align-items: center;\r
            cursor: pointer;\r
            user-select: none;\r
            grid-template-columns: 1fr 20px;\r
            grid-template-rows: 100%;\r
            position: relative;\r
\r
            &.active {\r
                font-weight: bold;\r
                font-size: 20px;\r
            }\r
\r
            &:hover {\r
                background: var(--selectionGrey);\r
                .sub-items {\r
                    display: block;\r
                }\r
            }\r
\r
            .command-dropdown-label-text {\r
                font-size: 12px;\r
                grid-column: 1;\r
                grid-row: 1;\r
            }\r
\r
            .command-dropdown-label-check {\r
                grid-column: 2;\r
                grid-row: 1;\r
            }\r
\r
            .command-dropdown-arrow {\r
                grid-column: 2;\r
                grid-row: 1;\r
                font-size: 20px;\r
                font-weight: bold;\r
                padding-bottom: 10px;\r
                padding-left: 4px;\r
            }\r
\r
            .sub-items {\r
                position: absolute;\r
                left: 200px;\r
                top: 0;\r
                width: 150px;\r
                display: none;\r
\r
                &.background-js {\r
                    background: #bfabff;\r
                    .sub-item {\r
                        &:hover {\r
                            background-color: #333333;\r
                            color: white;\r
                        }\r
                    }\r
                }\r
\r
                &.background-ts {\r
                    background: #333333;\r
                    .sub-item {\r
                        &:hover {\r
                            background-color: #333333;\r
                            color: white;\r
                        }\r
                    }\r
                }\r
\r
                .sub-item {\r
                    color: white;\r
                    padding: 5px;\r
                    padding-left: 10px;\r
                    height: 35px;\r
                    display: grid;\r
\r
                    &.checked {\r
                        background: white;\r
                        color: black;\r
                    }\r
                }\r
            }\r
        }\r
\r
        .buttonLine {\r
            color: white;\r
            padding: 5px;\r
            padding-left: 7px;\r
            height: 35px;\r
            font-size: 18px;\r
            display: grid;\r
            align-items: center;\r
            cursor: pointer;\r
            user-select: none;\r
            grid-template-columns: 1fr 20px;\r
            grid-template-rows: 100%;\r
            position: relative;\r
            font-size: 12px;\r
            grid-column: 1;\r
            grid-row: 1;\r
            input[type="file"] {\r
                display: none;\r
            }\r
\r
            &.active {\r
                font-weight: bold;\r
                font-size: 20px;\r
                cursor: pointer;\r
            }\r
\r
            &:hover {\r
                background: var(--selectionGrey);\r
                cursor: pointer;\r
                .sub-items {\r
                    display: block;\r
                }\r
            }\r
\r
            .file-upload {\r
                cursor: pointer;\r
            }\r
        }\r
    }\r
\r
    .divider {\r
        display: flex;\r
        align-items: center;\r
        border-right: 1px solid black;\r
        color: white;\r
        &:last-of-type {\r
            border-right: none;\r
        }\r
        &.padded {\r
            padding-left: 10px;\r
            padding-right: 10px;\r
        }\r
    }\r
\r
    .floatLine,\r
    .checkBoxLine {\r
        display: flex;\r
        align-items: center;\r
\r
        .copy {\r
            display: none;\r
        }\r
    }\r
\r
    .checkBoxLine {\r
        .icon {\r
            filter: brightness(10);\r
        }\r
\r
        .hidden {\r
            display: none;\r
        }\r
\r
        .checkBox {\r
            height: 40px;\r
        }\r
\r
        .copy {\r
            display: none;\r
        }\r
    }\r
\r
    .color3Line {\r
        display: grid;\r
\r
        .firstLine {\r
            display: flex;\r
            align-items: center;\r
\r
            .label {\r
                padding-right: 5px;\r
            }\r
\r
            .floatLine {\r
                .value {\r
                    padding-left: 2px;\r
                }\r
            }\r
\r
            .copy {\r
                display: none;\r
            }\r
\r
            .expand {\r
                display: none;\r
            }\r
        }\r
\r
        .secondLine {\r
            display: grid;\r
            padding-right: 5px;\r
            border-left: 1px solid rgb(51, 122, 183);\r
\r
            .numeric {\r
                display: grid;\r
                grid-template-columns: 1fr auto;\r
            }\r
\r
            .numeric-label {\r
                text-align: right;\r
                grid-column: 1;\r
                display: flex;\r
                align-items: center;\r
                justify-self: right;\r
                margin-right: 10px;\r
            }\r
\r
            .numeric-value {\r
                width: 120px;\r
                grid-column: 2;\r
                display: flex;\r
                align-items: center;\r
                border: 1px solid rgb(51, 122, 183);\r
            }\r
        }\r
    }\r
\r
    .color-picker {\r
        height: 26px;\r
        width: 26px;\r
\r
        .color-rect-background {\r
            width: calc(100% - 2px);\r
            height: calc(100% - 2px);\r
            border: 1px solid white;\r
            cursor: pointer;\r
            background: repeating-conic-gradient(#e2e2e2 0% 25%, white 0% 50%) 50% / 100% 100%;\r
            .color-rect {\r
                height: 100%;\r
            }\r
        }\r
\r
        .color-picker-cover {\r
            position: fixed;\r
            top: 0px;\r
            right: 0px;\r
            bottom: 0px;\r
            left: 0px;\r
            z-index: 2;\r
        }\r
\r
        .color-picker-float {\r
            position: absolute;\r
            outline: 1px solid black;\r
        }\r
\r
        .color-picker-container {\r
            background-color: #e2e2e2;\r
        }\r
\r
        input:focus {\r
            outline-color: black;\r
        }\r
    }\r
\r
    .floatLine input,\r
    .listLine select {\r
        background-color: #000000;\r
        color: white;\r
        padding: 5px;\r
        border: none;\r
    }\r
\r
    input,\r
    .listLine select {\r
        outline-color: transparent;\r
        outline-width: 1px;\r
        outline-offset: -1px;\r
        outline-style: solid;\r
        transition: 0.2s outline;\r
        border: none;\r
    }\r
\r
    .floatLine .value {\r
        position: relative;\r
        margin: 5px;\r
    }\r
\r
    .floatLine input:focus {\r
        outline-color: white;\r
    }\r
\r
    .listLine select {\r
        width: 150px;\r
    }\r
\r
    .hasArrows {\r
        .arrows {\r
            display: none;\r
            position: absolute;\r
            right: 0;\r
            top: 0;\r
            flex-direction: column;\r
            cursor: grab;\r
            filter: brightness(10);\r
            .downArrowIcon,\r
            .upArrowIcon {\r
                width: 13px;\r
                height: 13px;\r
            }\r
        }\r
        &:hover .arrows,\r
        &:focus .arrows,\r
        &.dragging .arrows {\r
            display: flex;\r
        }\r
        .arrows:hover {\r
            background-color: var(--buttonHoverBackground);\r
            filter: none;\r
        }\r
        &.dragging .arrows {\r
            background-color: var(--buttonPressedBackground);\r
            .downArrowIcon,\r
            .upArrowIcon {\r
                filter: none;\r
            }\r
        }\r
    }\r
    .hasArrows input::-webkit-outer-spin-button,\r
    .hasArrows input::-webkit-inner-spin-button {\r
        -webkit-appearance: none;\r
        margin: 0;\r
    }\r
\r
    .hasArrows input[type="number"] {\r
        -moz-appearance: textfield;\r
    }\r
}\r
`],sourceRoot:""}]);const h=d},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/scss/header.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>h});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`#ge-header {
  width: 100%;
  grid-column: 2/4;
  grid-row: 1;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: 100%;
  background: #333333;
}
#ge-header .command-bar {
  padding-left: 15px;
  grid-row: 1;
  grid-column: 2;
  width: 100%;
}
#ge-header .command-bar .language-button {
  grid-row: 1;
  grid-column: 2;
  color: white;
  width: 144px;
  font-size: 18px;
  text-align: center;
  display: grid;
  align-content: center;
  border-top-left-radius: 14px;
  transform: scale(1);
  user-select: none;
}
#ge-header .command-bar .language-button.active {
  width: 74px;
  cursor: pointer;
  grid-column: 1;
  margin-right: -5px;
  transform: translateX(10px);
}`,"",{version:3,sources:["webpack://./../../../tools/guiEditor/dist/scss/header.scss"],names:[],mappings:"AAAA;EACI,WAAA;EACA,gBAAA;EACA,WAAA;EACA,UAAA;EACA,SAAA;EACA,aAAA;EACA,+BAAA;EACA,wBAAA;EACA,mBAAA;AACJ;AACI;EACI,kBAAA;EACA,WAAA;EACA,cAAA;EACA,WAAA;AACR;AACQ;EACI,WAAA;EACA,cAAA;EACA,YAAA;EACA,YAAA;EACA,eAAA;EACA,kBAAA;EACA,aAAA;EACA,qBAAA;EACA,4BAAA;EACA,mBAAA;EACA,iBAAA;AACZ;AACY;EACI,WAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,2BAAA;AAChB",sourcesContent:[`#ge-header {\r
    width: 100%;\r
    grid-column: 2 / 4;\r
    grid-row: 1;\r
    padding: 0;\r
    margin: 0;\r
    display: grid;\r
    grid-template-columns: auto 1fr;\r
    grid-template-rows: 100%;\r
    background: #333333;\r
\r
    .command-bar {\r
        padding-left: 15px;\r
        grid-row: 1;\r
        grid-column: 2;\r
        width: 100%;\r
\r
        .language-button {\r
            grid-row: 1;\r
            grid-column: 2;\r
            color: white;\r
            width: 144px;\r
            font-size: 18px;\r
            text-align: center;\r
            display: grid;\r
            align-content: center;\r
            border-top-left-radius: 14px;\r
            transform: scale(1);\r
            user-select: none;\r
\r
            &.active {\r
                width: 74px;\r
                cursor: pointer;\r
                grid-column: 1;\r
                margin-right: -5px;\r
                transform: translateX(10px);\r
            }\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const h=d},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../../dev/sharedUiComponents/dist/components/Button.module.scss":(l,c,u)=>{u.r(c),u.d(c,{active:()=>D,button:()=>O,dark:()=>k,"dark-active-background":()=>M,"dark-background":()=>b,"dark-color":()=>T,default:()=>Y,light:()=>w,"light-active-background":()=>A,"light-background":()=>x,"light-color":()=>E,"light-disabled-background":()=>S,small:()=>I,smaller:()=>N,wide:()=>R});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../dev/sharedUiComponents/dist/components/Fonts.scss"),h=_()(p());h.i(d.default,"",!0),h.push([l.id,`.\\---------dev-sharedUiComponents-dist-components-Button-module__button {
  width: 55px;
  height: 55px;
  border: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0;
}
.\\---------dev-sharedUiComponents-dist-components-Button-module__button.\\---------dev-sharedUiComponents-dist-components-Button-module__wide {
  width: 120px;
  height: 45px;
  justify-content: start;
}
.\\---------dev-sharedUiComponents-dist-components-Button-module__button.\\---------dev-sharedUiComponents-dist-components-Button-module__small {
  width: 30px;
  height: 30px;
}
.\\---------dev-sharedUiComponents-dist-components-Button-module__button.\\---------dev-sharedUiComponents-dist-components-Button-module__smaller {
  width: 25px;
  height: 25px;
}
.\\---------dev-sharedUiComponents-dist-components-Button-module__button.\\---------dev-sharedUiComponents-dist-components-Button-module__light {
  background-color: #E2E2E2;
  color: #333333;
}
.\\---------dev-sharedUiComponents-dist-components-Button-module__button.\\---------dev-sharedUiComponents-dist-components-Button-module__light:hover, .\\---------dev-sharedUiComponents-dist-components-Button-module__button.\\---------dev-sharedUiComponents-dist-components-Button-module__light.\\---------dev-sharedUiComponents-dist-components-Button-module__active {
  background-color: #FFFFFF;
}
.\\---------dev-sharedUiComponents-dist-components-Button-module__button.\\---------dev-sharedUiComponents-dist-components-Button-module__light:disabled {
  background-color: #FFFFFF;
}
.\\---------dev-sharedUiComponents-dist-components-Button-module__button.\\---------dev-sharedUiComponents-dist-components-Button-module__dark {
  background-color: #333333;
  color: #FFFFFF;
}
.\\---------dev-sharedUiComponents-dist-components-Button-module__button.\\---------dev-sharedUiComponents-dist-components-Button-module__dark:hover, .\\---------dev-sharedUiComponents-dist-components-Button-module__button.\\---------dev-sharedUiComponents-dist-components-Button-module__dark.\\---------dev-sharedUiComponents-dist-components-Button-module__active {
  background-color: #666666;
}`,"",{version:3,sources:["webpack://./../../../dev/sharedUiComponents/dist/components/Button.module.scss"],names:[],mappings:"AACA;EAEI,WAAA;EACA,YAAA;EACA,YAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,YAAA;AAOJ;AANI;EACI,YAAA;EACA,YAAA;EACA,sBAAA;AAQR;AANI;EACI,WAAA;EACA,YAAA;AAQR;AANI;EACI,WAAA;EACA,YAAA;AAQR;AANI;EACI,yBAAA;EACA,cAAA;AAQR;AAPQ;EAEI,yBAAA;AAQZ;AANQ;EACI,yBAAA;AAQZ;AALI;EACI,yBAAA;EACA,cAAA;AAOR;AANQ;EAEI,yBAAA;AAOZ",sourcesContent:[`@use "Colors.scss" as *;\r
:local .button {\r
    composes: fontRegular from "Fonts.scss";\r
    width: 55px;\r
    height: 55px;\r
    border: none;\r
    display: inline-flex;\r
    align-items: center;\r
    justify-content: center;\r
    padding: 0 0;\r
    &.wide {\r
        width: 120px;\r
        height: 45px;\r
        justify-content: start;\r
    }\r
    &.small {\r
        width: 30px;\r
        height: 30px;\r
    }\r
    &.smaller {\r
        width: 25px;\r
        height: 25px;\r
    }\r
    &.light {\r
        background-color: light-background;\r
        color: dark-color;\r
        &:hover,\r
        &.active {\r
            background-color: light-active-background;\r
        }\r
        &:disabled {\r
            background-color: light-color;\r
        }\r
    }\r
    &.dark {\r
        background-color: dark-background;\r
        color: light-color;\r
        &:hover,\r
        &.active {\r
            background-color: dark-active-background;\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);var x="#E2E2E2",A="#FFFFFF",S="#C8C8C8",E="#FFFFFF",b="#333333",M="#666666",T="#333333",O=`---------dev-sharedUiComponents-dist-components-Button-module__button ${d.fontRegular}`,R="---------dev-sharedUiComponents-dist-components-Button-module__wide",I="---------dev-sharedUiComponents-dist-components-Button-module__small",N="---------dev-sharedUiComponents-dist-components-Button-module__smaller",w="---------dev-sharedUiComponents-dist-components-Button-module__light",D="---------dev-sharedUiComponents-dist-components-Button-module__active",k="---------dev-sharedUiComponents-dist-components-Button-module__dark";const Y=h},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../../dev/sharedUiComponents/dist/components/Icon.module.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>x,light:()=>h});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`.\\---------dev-sharedUiComponents-dist-components-Icon-module__light {
  filter: brightness(10);
}`,"",{version:3,sources:["webpack://./../../../dev/sharedUiComponents/dist/components/Icon.module.scss"],names:[],mappings:"AAAA;EACI,sBAAA;AACJ",sourcesContent:[`:local .light {\r
    filter: brightness(10);\r
}\r
`],sourceRoot:""}]);var h="---------dev-sharedUiComponents-dist-components-Icon-module__light";const x=d},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../../dev/sharedUiComponents/dist/components/MessageDialog.module.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>M,dialog:()=>x,"dialog-button-ok":()=>E,"dialog-buttons":()=>S,"dialog-container":()=>h,"dialog-message":()=>A,error:()=>b});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`.\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-container {
  position: absolute;
  width: 100%;
  height: 100%;
  background: rgba(0.1, 0.1, 0.1, 0.6);
  display: grid;
  font-family: "acumin-pro";
  top: 0;
}
.\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-container .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog {
  align-self: center;
  justify-self: center;
  min-height: 140px;
  max-width: 400px;
  border-radius: 10px;
  background: white;
  padding: 10px;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 1fr 50px;
}
.\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-container .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-message {
  grid-row: 1;
  grid-column: 1;
  margin-top: 20px;
  padding: 10px;
  font-size: 18px;
  color: black;
}
.\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-container .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-buttons {
  grid-row: 2;
  grid-column: 1;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 100%;
  color: white;
}
.\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-container .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-buttons .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-button-ok {
  cursor: pointer;
  justify-self: center;
  background: green;
  min-width: 80px;
  justify-content: center;
  display: grid;
  align-content: center;
  align-self: center;
  height: 35px;
  border-radius: 10px;
}
.\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-container .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-buttons .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-button-ok:hover {
  opacity: 0.8;
}
.\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-container .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-buttons .\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-button-ok.\\---------dev-sharedUiComponents-dist-components-MessageDialog-module__error {
  background: red;
}`,"",{version:3,sources:["webpack://./../../../dev/sharedUiComponents/dist/components/MessageDialog.module.scss"],names:[],mappings:"AAAA;EACI,kBAAA;EACA,WAAA;EACA,YAAA;EACA,oCAAA;EACA,aAAA;EACA,yBAAA;EACA,MAAA;AACJ;AACI;EACI,kBAAA;EACA,oBAAA;EACA,iBAAA;EACA,gBAAA;EACA,mBAAA;EACA,iBAAA;EACA,aAAA;EAEA,aAAA;EACA,2BAAA;EACA,4BAAA;AAAR;AAEQ;EACI,WAAA;EACA,cAAA;EACA,gBAAA;EACA,aAAA;EACA,eAAA;EACA,YAAA;AAAZ;AAGQ;EACI,WAAA;EACA,cAAA;EACA,aAAA;EACA,wBAAA;EACA,2BAAA;EACA,YAAA;AADZ;AAGY;EACI,eAAA;EACA,oBAAA;EACA,iBAAA;EACA,eAAA;EACA,uBAAA;EACA,aAAA;EACA,qBAAA;EACA,kBAAA;EACA,YAAA;EACA,mBAAA;AADhB;AAGgB;EACI,YAAA;AADpB;AAIgB;EACI,eAAA;AAFpB",sourcesContent:[`:local .dialog-container {\r
    position: absolute;\r
    width: 100%;\r
    height: 100%;\r
    background: rgba(0.1, 0.1, 0.1, 0.6);\r
    display: grid;\r
    font-family: "acumin-pro";\r
    top: 0;\r
\r
    .dialog {\r
        align-self: center;\r
        justify-self: center;\r
        min-height: 140px;\r
        max-width: 400px;\r
        border-radius: 10px;\r
        background: white;\r
        padding: 10px;\r
\r
        display: grid;\r
        grid-template-columns: 100%;\r
        grid-template-rows: 1fr 50px;\r
\r
        .dialog-message {\r
            grid-row: 1;\r
            grid-column: 1;\r
            margin-top: 20px;\r
            padding: 10px;\r
            font-size: 18px;\r
            color: black;\r
        }\r
\r
        .dialog-buttons {\r
            grid-row: 2;\r
            grid-column: 1;\r
            display: grid;\r
            grid-template-rows: 100%;\r
            grid-template-columns: 100%;\r
            color: white;\r
\r
            .dialog-button-ok {\r
                cursor: pointer;\r
                justify-self: center;\r
                background: green;\r
                min-width: 80px;\r
                justify-content: center;\r
                display: grid;\r
                align-content: center;\r
                align-self: center;\r
                height: 35px;\r
                border-radius: 10px;\r
\r
                &:hover {\r
                    opacity: 0.8;\r
                }\r
\r
                &.error {\r
                    background: red;\r
                }\r
            }\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);var h="---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-container",x="---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog",A="---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-message",S="---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-buttons",E="---------dev-sharedUiComponents-dist-components-MessageDialog-module__dialog-button-ok",b="---------dev-sharedUiComponents-dist-components-MessageDialog-module__error";const M=d},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../../dev/sharedUiComponents/dist/components/TextInputWithSubmit.module.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>E,input:()=>x,invalid:()=>S,line:()=>h,valid:()=>A});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`.\\---------dev-sharedUiComponents-dist-components-TextInputWithSubmit-module__line {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.\\---------dev-sharedUiComponents-dist-components-TextInputWithSubmit-module__input {
  border: unset;
  background-color: inherit;
  flex-grow: 1;
  width: 100px;
}

.\\---------dev-sharedUiComponents-dist-components-TextInputWithSubmit-module__valid {
  background-color: white;
}

.\\---------dev-sharedUiComponents-dist-components-TextInputWithSubmit-module__invalid {
  background-color: rgba(255, 204, 204, 0.8);
}`,"",{version:3,sources:["webpack://./../../../dev/sharedUiComponents/dist/components/TextInputWithSubmit.module.scss"],names:[],mappings:"AAAA;EACI,WAAA;EACA,YAAA;EACA,aAAA;EACA,8BAAA;EACA,mBAAA;AACJ;;AAEA;EACI,aAAA;EACA,yBAAA;EACA,YAAA;EACA,YAAA;AACJ;;AAEA;EACI,uBAAA;AACJ;;AAEA;EACI,0CAAA;AACJ",sourcesContent:[`.line {\r
    width: 100%;\r
    height: 100%;\r
    display: flex;\r
    justify-content: space-between;\r
    align-items: center;\r
}\r
\r
.input {\r
    border: unset;\r
    background-color: inherit;\r
    flex-grow: 1;\r
    width: 100px;\r
}\r
\r
.valid {\r
    background-color: white;\r
}\r
\r
.invalid {\r
    background-color: rgba(255, 204, 204, 0.8);\r
}\r
`],sourceRoot:""}]);var h="---------dev-sharedUiComponents-dist-components-TextInputWithSubmit-module__line",x="---------dev-sharedUiComponents-dist-components-TextInputWithSubmit-module__input",A="---------dev-sharedUiComponents-dist-components-TextInputWithSubmit-module__valid",S="---------dev-sharedUiComponents-dist-components-TextInputWithSubmit-module__invalid";const E=d},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../../dev/sharedUiComponents/dist/components/lines/OptionsLineComponent.module.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>A,optionsLine:()=>h,optionsSelect:()=>x});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`.\\---------dev-sharedUiComponents-dist-components-lines-OptionsLineComponent-module__optionsLine {
  font-family: "acumin-pro-condensed", sans-serif;
  font-size: 12px;
  height: 25px;
  padding-left: 15px;
}

.\\---------dev-sharedUiComponents-dist-components-lines-OptionsLineComponent-module__optionsSelect {
  width: 100%;
  height: 100%;
  border: unset;
}`,"",{version:3,sources:["webpack://./../../../dev/sharedUiComponents/dist/components/lines/OptionsLineComponent.module.scss"],names:[],mappings:"AAAA;EACI,+CAAA;EACA,eAAA;EACA,YAAA;EACA,kBAAA;AACJ;;AAEA;EACI,WAAA;EACA,YAAA;EACA,aAAA;AACJ",sourcesContent:[`.optionsLine {\r
    font-family: "acumin-pro-condensed", sans-serif;\r
    font-size: 12px;\r
    height: 25px;\r
    padding-left: 15px;\r
}\r
\r
.optionsSelect {\r
    width: 100%;\r
    height: 100%;\r
    border: unset;\r
}\r
`],sourceRoot:""}]);var h="---------dev-sharedUiComponents-dist-components-lines-OptionsLineComponent-module__optionsLine",x="---------dev-sharedUiComponents-dist-components-lines-OptionsLineComponent-module__optionsSelect";const A=d},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../dev/sharedUiComponents/dist/components/Fonts.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>x,fontRegular:()=>h});var f=u("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),p=u.n(f),m=u("../../../../node_modules/css-loader/dist/runtime/api.js"),_=u.n(m),d=_()(p());d.push([l.id,`.\\---------dev-sharedUiComponents-dist-components-Fonts__fontRegular {
    font-family: "acumin-pro-condensed";
    font-size: 14px;
}
`,"",{version:3,sources:["webpack://./../../../dev/sharedUiComponents/dist/components/Fonts.scss"],names:[],mappings:"AAAA;IACI,mCAAmC;IACnC,eAAe;AACnB",sourcesContent:[`:local(.fontRegular) {\r
    font-family: "acumin-pro-condensed";\r
    font-size: 14px;\r
}\r
`],sourceRoot:""}]);var h="---------dev-sharedUiComponents-dist-components-Fonts__fontRegular";const x=d},"../../../../node_modules/css-loader/dist/runtime/api.js":l=>{l.exports=function(c){var u=[];return u.toString=function(){return this.map(function(p){var m="",_=typeof p[5]<"u";return p[4]&&(m+="@supports (".concat(p[4],") {")),p[2]&&(m+="@media ".concat(p[2]," {")),_&&(m+="@layer".concat(p[5].length>0?" ".concat(p[5]):""," {")),m+=c(p),_&&(m+="}"),p[2]&&(m+="}"),p[4]&&(m+="}"),m}).join("")},u.i=function(p,m,_,d,h){typeof p=="string"&&(p=[[null,p,void 0]]);var x={};if(_)for(var A=0;A<this.length;A++){var S=this[A][0];S!=null&&(x[S]=!0)}for(var E=0;E<p.length;E++){var b=[].concat(p[E]);_&&x[b[0]]||(typeof h<"u"&&(typeof b[5]>"u"||(b[1]="@layer".concat(b[5].length>0?" ".concat(b[5]):""," {").concat(b[1],"}")),b[5]=h),m&&(b[2]&&(b[1]="@media ".concat(b[2]," {").concat(b[1],"}")),b[2]=m),d&&(b[4]?(b[1]="@supports (".concat(b[4],") {").concat(b[1],"}"),b[4]=d):b[4]="".concat(d)),u.push(b))}},u}},"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js":l=>{l.exports=function(c){var u=c[1],f=c[3];if(!f)return u;if(typeof btoa=="function"){var p=btoa(unescape(encodeURIComponent(JSON.stringify(f)))),m="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(p),_="/*# ".concat(m," */");return[u].concat([_]).join(`
`)}return[u].join(`
`)}},"../../../../node_modules/object-assign/index.js":l=>{/*
object-assign
(c) Sindre Sorhus
@license MIT
*/var c=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;function p(_){if(_==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(_)}function m(){try{if(!Object.assign)return!1;var _=new String("abc");if(_[5]="de",Object.getOwnPropertyNames(_)[0]==="5")return!1;for(var d={},h=0;h<10;h++)d["_"+String.fromCharCode(h)]=h;var x=Object.getOwnPropertyNames(d).map(function(S){return d[S]});if(x.join("")!=="0123456789")return!1;var A={};return"abcdefghijklmnopqrst".split("").forEach(function(S){A[S]=S}),Object.keys(Object.assign({},A)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}l.exports=m()?Object.assign:function(_,d){for(var h,x=p(_),A,S=1;S<arguments.length;S++){h=Object(arguments[S]);for(var E in h)u.call(h,E)&&(x[E]=h[E]);if(c){A=c(h);for(var b=0;b<A.length;b++)f.call(h,A[b])&&(x[A[b]]=h[A[b]])}}return x}},"../../../../node_modules/prop-types/checkPropTypes.js":(l,c,u)=>{var f=function(){};{var p=u("../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js"),m={},_=u("../../../../node_modules/prop-types/lib/has.js");f=function(h){var x="Warning: "+h;typeof console<"u"&&console.error(x);try{throw new Error(x)}catch{}}}function d(h,x,A,S,E){for(var b in h)if(_(h,b)){var M;try{if(typeof h[b]!="function"){var T=Error((S||"React class")+": "+A+" type `"+b+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof h[b]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw T.name="Invariant Violation",T}M=h[b](x,b,S,A,null,p)}catch(R){M=R}if(M&&!(M instanceof Error)&&f((S||"React class")+": type specification of "+A+" `"+b+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof M+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),M instanceof Error&&!(M.message in m)){m[M.message]=!0;var O=E?E():"";f("Failed "+A+" type: "+M.message+(O??""))}}}d.resetWarningCache=function(){m={}},l.exports=d},"../../../../node_modules/prop-types/factoryWithTypeCheckers.js":(l,c,u)=>{var f=u("../../../../node_modules/prop-types/node_modules/react-is/index.js"),p=u("../../../../node_modules/object-assign/index.js"),m=u("../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js"),_=u("../../../../node_modules/prop-types/lib/has.js"),d=u("../../../../node_modules/prop-types/checkPropTypes.js"),h=function(){};h=function(A){var S="Warning: "+A;typeof console<"u"&&console.error(S);try{throw new Error(S)}catch{}};function x(){return null}l.exports=function(A,S){var E=typeof Symbol=="function"&&Symbol.iterator,b="@@iterator";function M(Ae){var Se=Ae&&(E&&Ae[E]||Ae[b]);if(typeof Se=="function")return Se}var T="<<anonymous>>",O={array:w("array"),bigint:w("bigint"),bool:w("boolean"),func:w("function"),number:w("number"),object:w("object"),string:w("string"),symbol:w("symbol"),any:D(),arrayOf:k,element:Y(),elementType:V(),instanceOf:ee,node:te(),objectOf:ie,oneOf:K,oneOfType:ne,shape:Q,exact:re};function R(Ae,Se){return Ae===Se?Ae!==0||1/Ae===1/Se:Ae!==Ae&&Se!==Se}function I(Ae,Se){this.message=Ae,this.data=Se&&typeof Se=="object"?Se:{},this.stack=""}I.prototype=Error.prototype;function N(Ae){var Se={},we=0;function ke(Ve,Ke,ct,nt,at,xt,Qe){if(nt=nt||T,xt=xt||ct,Qe!==m){if(S){var kt=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw kt.name="Invariant Violation",kt}else if(typeof console<"u"){var ot=nt+":"+ct;!Se[ot]&&we<3&&(h("You are manually calling a React.PropTypes validation function for the `"+xt+"` prop on `"+nt+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),Se[ot]=!0,we++)}}return Ke[ct]==null?Ve?Ke[ct]===null?new I("The "+at+" `"+xt+"` is marked as required "+("in `"+nt+"`, but its value is `null`.")):new I("The "+at+" `"+xt+"` is marked as required in "+("`"+nt+"`, but its value is `undefined`.")):null:Ae(Ke,ct,nt,at,xt)}var st=ke.bind(null,!1);return st.isRequired=ke.bind(null,!0),st}function w(Ae){function Se(we,ke,st,Ve,Ke,ct){var nt=we[ke],at=se(nt);if(at!==Ae){var xt=ue(nt);return new I("Invalid "+Ve+" `"+Ke+"` of type "+("`"+xt+"` supplied to `"+st+"`, expected ")+("`"+Ae+"`."),{expectedType:Ae})}return null}return N(Se)}function D(){return N(x)}function k(Ae){function Se(we,ke,st,Ve,Ke){if(typeof Ae!="function")return new I("Property `"+Ke+"` of component `"+st+"` has invalid PropType notation inside arrayOf.");var ct=we[ke];if(!Array.isArray(ct)){var nt=se(ct);return new I("Invalid "+Ve+" `"+Ke+"` of type "+("`"+nt+"` supplied to `"+st+"`, expected an array."))}for(var at=0;at<ct.length;at++){var xt=Ae(ct,at,st,Ve,Ke+"["+at+"]",m);if(xt instanceof Error)return xt}return null}return N(Se)}function Y(){function Ae(Se,we,ke,st,Ve){var Ke=Se[we];if(!A(Ke)){var ct=se(Ke);return new I("Invalid "+st+" `"+Ve+"` of type "+("`"+ct+"` supplied to `"+ke+"`, expected a single ReactElement."))}return null}return N(Ae)}function V(){function Ae(Se,we,ke,st,Ve){var Ke=Se[we];if(!f.isValidElementType(Ke)){var ct=se(Ke);return new I("Invalid "+st+" `"+Ve+"` of type "+("`"+ct+"` supplied to `"+ke+"`, expected a single ReactElement type."))}return null}return N(Ae)}function ee(Ae){function Se(we,ke,st,Ve,Ke){if(!(we[ke]instanceof Ae)){var ct=Ae.name||T,nt=fe(we[ke]);return new I("Invalid "+Ve+" `"+Ke+"` of type "+("`"+nt+"` supplied to `"+st+"`, expected ")+("instance of `"+ct+"`."))}return null}return N(Se)}function K(Ae){if(!Array.isArray(Ae))return arguments.length>1?h("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):h("Invalid argument supplied to oneOf, expected an array."),x;function Se(we,ke,st,Ve,Ke){for(var ct=we[ke],nt=0;nt<Ae.length;nt++)if(R(ct,Ae[nt]))return null;var at=JSON.stringify(Ae,function(Qe,kt){var ot=ue(kt);return ot==="symbol"?String(kt):kt});return new I("Invalid "+Ve+" `"+Ke+"` of value `"+String(ct)+"` "+("supplied to `"+st+"`, expected one of "+at+"."))}return N(Se)}function ie(Ae){function Se(we,ke,st,Ve,Ke){if(typeof Ae!="function")return new I("Property `"+Ke+"` of component `"+st+"` has invalid PropType notation inside objectOf.");var ct=we[ke],nt=se(ct);if(nt!=="object")return new I("Invalid "+Ve+" `"+Ke+"` of type "+("`"+nt+"` supplied to `"+st+"`, expected an object."));for(var at in ct)if(_(ct,at)){var xt=Ae(ct,at,st,Ve,Ke+"."+at,m);if(xt instanceof Error)return xt}return null}return N(Se)}function ne(Ae){if(!Array.isArray(Ae))return h("Invalid argument supplied to oneOfType, expected an instance of array."),x;for(var Se=0;Se<Ae.length;Se++){var we=Ae[Se];if(typeof we!="function")return h("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+he(we)+" at index "+Se+"."),x}function ke(st,Ve,Ke,ct,nt){for(var at=[],xt=0;xt<Ae.length;xt++){var Qe=Ae[xt],kt=Qe(st,Ve,Ke,ct,nt,m);if(kt==null)return null;kt.data&&_(kt.data,"expectedType")&&at.push(kt.data.expectedType)}var ot=at.length>0?", expected one of type ["+at.join(", ")+"]":"";return new I("Invalid "+ct+" `"+nt+"` supplied to "+("`"+Ke+"`"+ot+"."))}return N(ke)}function te(){function Ae(Se,we,ke,st,Ve){return oe(Se[we])?null:new I("Invalid "+st+" `"+Ve+"` supplied to "+("`"+ke+"`, expected a ReactNode."))}return N(Ae)}function W(Ae,Se,we,ke,st){return new I((Ae||"React class")+": "+Se+" type `"+we+"."+ke+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+st+"`.")}function Q(Ae){function Se(we,ke,st,Ve,Ke){var ct=we[ke],nt=se(ct);if(nt!=="object")return new I("Invalid "+Ve+" `"+Ke+"` of type `"+nt+"` "+("supplied to `"+st+"`, expected `object`."));for(var at in Ae){var xt=Ae[at];if(typeof xt!="function")return W(st,Ve,Ke,at,ue(xt));var Qe=xt(ct,at,st,Ve,Ke+"."+at,m);if(Qe)return Qe}return null}return N(Se)}function re(Ae){function Se(we,ke,st,Ve,Ke){var ct=we[ke],nt=se(ct);if(nt!=="object")return new I("Invalid "+Ve+" `"+Ke+"` of type `"+nt+"` "+("supplied to `"+st+"`, expected `object`."));var at=p({},we[ke],Ae);for(var xt in at){var Qe=Ae[xt];if(_(Ae,xt)&&typeof Qe!="function")return W(st,Ve,Ke,xt,ue(Qe));if(!Qe)return new I("Invalid "+Ve+" `"+Ke+"` key `"+xt+"` supplied to `"+st+"`.\nBad object: "+JSON.stringify(we[ke],null,"  ")+`
Valid keys: `+JSON.stringify(Object.keys(Ae),null,"  "));var kt=Qe(ct,xt,st,Ve,Ke+"."+xt,m);if(kt)return kt}return null}return N(Se)}function oe(Ae){switch(typeof Ae){case"number":case"string":case"undefined":return!0;case"boolean":return!Ae;case"object":if(Array.isArray(Ae))return Ae.every(oe);if(Ae===null||A(Ae))return!0;var Se=M(Ae);if(Se){var we=Se.call(Ae),ke;if(Se!==Ae.entries){for(;!(ke=we.next()).done;)if(!oe(ke.value))return!1}else for(;!(ke=we.next()).done;){var st=ke.value;if(st&&!oe(st[1]))return!1}}else return!1;return!0;default:return!1}}function X(Ae,Se){return Ae==="symbol"?!0:Se?Se["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&Se instanceof Symbol:!1}function se(Ae){var Se=typeof Ae;return Array.isArray(Ae)?"array":Ae instanceof RegExp?"object":X(Se,Ae)?"symbol":Se}function ue(Ae){if(typeof Ae>"u"||Ae===null)return""+Ae;var Se=se(Ae);if(Se==="object"){if(Ae instanceof Date)return"date";if(Ae instanceof RegExp)return"regexp"}return Se}function he(Ae){var Se=ue(Ae);switch(Se){case"array":case"object":return"an "+Se;case"boolean":case"date":case"regexp":return"a "+Se;default:return Se}}function fe(Ae){return!Ae.constructor||!Ae.constructor.name?T:Ae.constructor.name}return O.checkPropTypes=d,O.resetWarningCache=d.resetWarningCache,O.PropTypes=O,O}},"../../../../node_modules/prop-types/index.js":(l,c,u)=>{{var f=u("../../../../node_modules/prop-types/node_modules/react-is/index.js"),p=!0;l.exports=u("../../../../node_modules/prop-types/factoryWithTypeCheckers.js")(f.isElement,p)}},"../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js":l=>{var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";l.exports=c},"../../../../node_modules/prop-types/lib/has.js":l=>{l.exports=Function.call.bind(Object.prototype.hasOwnProperty)},"../../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":(l,c)=>{/** @license React v16.13.1
 * react-is.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */(function(){var u=typeof Symbol=="function"&&Symbol.for,f=u?Symbol.for("react.element"):60103,p=u?Symbol.for("react.portal"):60106,m=u?Symbol.for("react.fragment"):60107,_=u?Symbol.for("react.strict_mode"):60108,d=u?Symbol.for("react.profiler"):60114,h=u?Symbol.for("react.provider"):60109,x=u?Symbol.for("react.context"):60110,A=u?Symbol.for("react.async_mode"):60111,S=u?Symbol.for("react.concurrent_mode"):60111,E=u?Symbol.for("react.forward_ref"):60112,b=u?Symbol.for("react.suspense"):60113,M=u?Symbol.for("react.suspense_list"):60120,T=u?Symbol.for("react.memo"):60115,O=u?Symbol.for("react.lazy"):60116,R=u?Symbol.for("react.block"):60121,I=u?Symbol.for("react.fundamental"):60117,N=u?Symbol.for("react.responder"):60118,w=u?Symbol.for("react.scope"):60119;function D(Qe){return typeof Qe=="string"||typeof Qe=="function"||Qe===m||Qe===S||Qe===d||Qe===_||Qe===b||Qe===M||typeof Qe=="object"&&Qe!==null&&(Qe.$$typeof===O||Qe.$$typeof===T||Qe.$$typeof===h||Qe.$$typeof===x||Qe.$$typeof===E||Qe.$$typeof===I||Qe.$$typeof===N||Qe.$$typeof===w||Qe.$$typeof===R)}function k(Qe){if(typeof Qe=="object"&&Qe!==null){var kt=Qe.$$typeof;switch(kt){case f:var ot=Qe.type;switch(ot){case A:case S:case m:case d:case _:case b:return ot;default:var At=ot&&ot.$$typeof;switch(At){case x:case E:case O:case T:case h:return At;default:return kt}}case p:return kt}}}var Y=A,V=S,ee=x,K=h,ie=f,ne=E,te=m,W=O,Q=T,re=p,oe=d,X=_,se=b,ue=!1;function he(Qe){return ue||(ue=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),fe(Qe)||k(Qe)===A}function fe(Qe){return k(Qe)===S}function Ae(Qe){return k(Qe)===x}function Se(Qe){return k(Qe)===h}function we(Qe){return typeof Qe=="object"&&Qe!==null&&Qe.$$typeof===f}function ke(Qe){return k(Qe)===E}function st(Qe){return k(Qe)===m}function Ve(Qe){return k(Qe)===O}function Ke(Qe){return k(Qe)===T}function ct(Qe){return k(Qe)===p}function nt(Qe){return k(Qe)===d}function at(Qe){return k(Qe)===_}function xt(Qe){return k(Qe)===b}c.AsyncMode=Y,c.ConcurrentMode=V,c.ContextConsumer=ee,c.ContextProvider=K,c.Element=ie,c.ForwardRef=ne,c.Fragment=te,c.Lazy=W,c.Memo=Q,c.Portal=re,c.Profiler=oe,c.StrictMode=X,c.Suspense=se,c.isAsyncMode=he,c.isConcurrentMode=fe,c.isContextConsumer=Ae,c.isContextProvider=Se,c.isElement=we,c.isForwardRef=ke,c.isFragment=st,c.isLazy=Ve,c.isMemo=Ke,c.isPortal=ct,c.isProfiler=nt,c.isStrictMode=at,c.isSuspense=xt,c.isValidElementType=D,c.typeOf=k})()},"../../../../node_modules/prop-types/node_modules/react-is/index.js":(l,c,u)=>{l.exports=u("../../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js")},"../../../../node_modules/react-contextmenu/es6/AbstractMenu.js":(l,c,u)=>{function f(D){"@babel/helpers - typeof";return f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},f(D)}Object.defineProperty(c,"__esModule",{value:!0}),c.default=void 0;var p=x(u("../../../../node_modules/react/index.js")),m=d(u("../../../../node_modules/prop-types/index.js")),_=d(u("../../../../node_modules/react-contextmenu/es6/MenuItem.js"));function d(D){return D&&D.__esModule?D:{default:D}}function h(D){if(typeof WeakMap!="function")return null;var k=new WeakMap,Y=new WeakMap;return(h=function(ee){return ee?Y:k})(D)}function x(D,k){if(D&&D.__esModule)return D;if(D===null||f(D)!=="object"&&typeof D!="function")return{default:D};var Y=h(k);if(Y&&Y.has(D))return Y.get(D);var V={},ee=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var K in D)if(K!=="default"&&Object.prototype.hasOwnProperty.call(D,K)){var ie=ee?Object.getOwnPropertyDescriptor(D,K):null;ie&&(ie.get||ie.set)?Object.defineProperty(V,K,ie):V[K]=D[K]}return V.default=D,Y&&Y.set(D,V),V}function A(D,k,Y){return Object.defineProperty(D,"prototype",{writable:!1}),D}function S(D,k){if(!(D instanceof k))throw new TypeError("Cannot call a class as a function")}function E(D,k){if(typeof k!="function"&&k!==null)throw new TypeError("Super expression must either be null or a function");D.prototype=Object.create(k&&k.prototype,{constructor:{value:D,writable:!0,configurable:!0}}),Object.defineProperty(D,"prototype",{writable:!1}),k&&b(D,k)}function b(D,k){return b=Object.setPrototypeOf||function(V,ee){return V.__proto__=ee,V},b(D,k)}function M(D){var k=R();return function(){var V=I(D),ee;if(k){var K=I(this).constructor;ee=Reflect.construct(V,arguments,K)}else ee=V.apply(this,arguments);return T(this,ee)}}function T(D,k){if(k&&(f(k)==="object"||typeof k=="function"))return k;if(k!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return O(D)}function O(D){if(D===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return D}function R(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function I(D){return I=Object.setPrototypeOf?Object.getPrototypeOf:function(Y){return Y.__proto__||Object.getPrototypeOf(Y)},I(D)}function N(D,k,Y){return k in D?Object.defineProperty(D,k,{value:Y,enumerable:!0,configurable:!0,writable:!0}):D[k]=Y,D}var w=function(D){E(Y,D);var k=M(Y);function Y(V){var ee;return S(this,Y),ee=k.call(this,V),N(O(ee),"handleKeyNavigation",function(K){if(ee.state.isVisible!==!1)switch(K.keyCode){case 37:case 27:K.preventDefault(),ee.hideMenu(K);break;case 38:K.preventDefault(),ee.selectChildren(!0);break;case 40:K.preventDefault(),ee.selectChildren(!1);break;case 39:ee.tryToOpenSubMenu(K);break;case 13:K.preventDefault(),ee.tryToOpenSubMenu(K);{var ie=ee.seletedItemRef&&ee.seletedItemRef.props&&ee.seletedItemRef.props.disabled;ee.seletedItemRef&&ee.seletedItemRef.ref instanceof HTMLElement&&!ie?ee.seletedItemRef.ref.click():ee.hideMenu(K)}break}}),N(O(ee),"handleForceClose",function(){ee.setState({forceSubMenuOpen:!1})}),N(O(ee),"tryToOpenSubMenu",function(K){ee.state.selectedItem&&ee.state.selectedItem.type===ee.getSubMenuType()&&(K.preventDefault(),ee.setState({forceSubMenuOpen:!0}))}),N(O(ee),"selectChildren",function(K){var ie=ee.state.selectedItem,ne=[],te=0,W={},Q=function se(ue,he){ue&&([_.default,ee.getSubMenuType()].indexOf(ue.type)<0?p.default.Children.forEach(ue.props.children,se):ue.props.divider||(ue.props.disabled&&(++te,W[he]=!0),ne.push(ue)))};if(p.default.Children.forEach(ee.props.children,Q),te===ne.length)return;function re(se){var ue=se,he=function(){K?--ue:++ue,ue<0?ue=ne.length-1:ue>=ne.length&&(ue=0)};do he();while(ue!==se&&W[ue]);return ue===se?null:ue}var oe=ne.indexOf(ie),X=re(oe);X!==null&&ee.setState({selectedItem:ne[X],forceSubMenuOpen:!1})}),N(O(ee),"onChildMouseMove",function(K){ee.state.selectedItem!==K&&ee.setState({selectedItem:K,forceSubMenuOpen:!1})}),N(O(ee),"onChildMouseLeave",function(){ee.setState({selectedItem:null,forceSubMenuOpen:!1})}),N(O(ee),"renderChildren",function(K){return p.default.Children.map(K,function(ie){var ne={};return p.default.isValidElement(ie)?[_.default,ee.getSubMenuType()].indexOf(ie.type)<0?(ne.children=ee.renderChildren(ie.props.children),p.default.cloneElement(ie,ne)):(ne.onMouseLeave=ee.onChildMouseLeave.bind(O(ee)),ie.type===ee.getSubMenuType()&&(ne.forceOpen=ee.state.forceSubMenuOpen&&ee.state.selectedItem===ie,ne.forceClose=ee.handleForceClose,ne.parentKeyNavigationHandler=ee.handleKeyNavigation),!ie.props.divider&&ee.state.selectedItem===ie?(ne.selected=!0,ne.ref=function(te){ee.seletedItemRef=te},p.default.cloneElement(ie,ne)):(ne.onMouseMove=function(){return ee.onChildMouseMove(ie)},p.default.cloneElement(ie,ne))):ie})}),ee.seletedItemRef=null,ee.state={selectedItem:null,forceSubMenuOpen:!1},ee}return A(Y)}(p.Component);c.default=w,N(w,"propTypes",{children:m.default.node.isRequired})},"../../../../node_modules/react-contextmenu/es6/ContextMenu.js":(l,c,u)=>{function f(K){"@babel/helpers - typeof";return f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ie){return typeof ie}:function(ie){return ie&&typeof Symbol=="function"&&ie.constructor===Symbol&&ie!==Symbol.prototype?"symbol":typeof ie},f(K)}Object.defineProperty(c,"__esModule",{value:!0}),c.default=void 0;var p=b(u("../../../../node_modules/react/index.js")),m=b(u("../../../../node_modules/prop-types/index.js")),_=b(u("../../../../node_modules/classnames/index.js")),d=b(u("../../../../node_modules/object-assign/index.js")),h=b(u("../../../../node_modules/react-contextmenu/es6/globalEventListener.js")),x=b(u("../../../../node_modules/react-contextmenu/es6/AbstractMenu.js")),A=b(u("../../../../node_modules/react-contextmenu/es6/SubMenu.js")),S=u("../../../../node_modules/react-contextmenu/es6/actions.js"),E=u("../../../../node_modules/react-contextmenu/es6/helpers.js");function b(K){return K&&K.__esModule?K:{default:K}}function M(K,ie){if(!(K instanceof ie))throw new TypeError("Cannot call a class as a function")}function T(K,ie){for(var ne=0;ne<ie.length;ne++){var te=ie[ne];te.enumerable=te.enumerable||!1,te.configurable=!0,"value"in te&&(te.writable=!0),Object.defineProperty(K,te.key,te)}}function O(K,ie,ne){return ie&&T(K.prototype,ie),Object.defineProperty(K,"prototype",{writable:!1}),K}function R(K,ie){if(typeof ie!="function"&&ie!==null)throw new TypeError("Super expression must either be null or a function");K.prototype=Object.create(ie&&ie.prototype,{constructor:{value:K,writable:!0,configurable:!0}}),Object.defineProperty(K,"prototype",{writable:!1}),ie&&I(K,ie)}function I(K,ie){return I=Object.setPrototypeOf||function(te,W){return te.__proto__=W,te},I(K,ie)}function N(K){var ie=k();return function(){var te=Y(K),W;if(ie){var Q=Y(this).constructor;W=Reflect.construct(te,arguments,Q)}else W=te.apply(this,arguments);return w(this,W)}}function w(K,ie){if(ie&&(f(ie)==="object"||typeof ie=="function"))return ie;if(ie!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return D(K)}function D(K){if(K===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return K}function k(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Y(K){return Y=Object.setPrototypeOf?Object.getPrototypeOf:function(ne){return ne.__proto__||Object.getPrototypeOf(ne)},Y(K)}function V(K,ie,ne){return ie in K?Object.defineProperty(K,ie,{value:ne,enumerable:!0,configurable:!0,writable:!0}):K[ie]=ne,K}var ee=function(K){R(ne,K);var ie=N(ne);function ne(te){var W;return M(this,ne),W=ie.call(this,te),V(D(W),"registerHandlers",function(){document.addEventListener("mousedown",W.handleOutsideClick),document.addEventListener("touchstart",W.handleOutsideClick),W.props.preventHideOnScroll||document.addEventListener("scroll",W.handleHide),W.props.preventHideOnContextMenu||document.addEventListener("contextmenu",W.handleHide),document.addEventListener("keydown",W.handleKeyNavigation),W.props.preventHideOnResize||window.addEventListener("resize",W.handleHide)}),V(D(W),"unregisterHandlers",function(){document.removeEventListener("mousedown",W.handleOutsideClick),document.removeEventListener("touchstart",W.handleOutsideClick),document.removeEventListener("scroll",W.handleHide),document.removeEventListener("contextmenu",W.handleHide),document.removeEventListener("keydown",W.handleKeyNavigation),window.removeEventListener("resize",W.handleHide)}),V(D(W),"handleShow",function(Q){if(!(Q.detail.id!==W.props.id||W.state.isVisible)){var re=Q.detail.position,oe=re.x,X=re.y;W.setState({isVisible:!0,x:oe,y:X}),W.registerHandlers(),(0,E.callIfExists)(W.props.onShow,Q)}}),V(D(W),"handleHide",function(Q){W.state.isVisible&&(!Q.detail||!Q.detail.id||Q.detail.id===W.props.id)&&(W.unregisterHandlers(),W.setState({isVisible:!1,selectedItem:null,forceSubMenuOpen:!1}),(0,E.callIfExists)(W.props.onHide,Q))}),V(D(W),"handleOutsideClick",function(Q){W.menu.contains(Q.target)||(0,S.hideMenu)()}),V(D(W),"handleMouseLeave",function(Q){Q.preventDefault(),(0,E.callIfExists)(W.props.onMouseLeave,Q,(0,d.default)({},W.props.data,E.store.data),E.store.target),W.props.hideOnLeave&&(0,S.hideMenu)()}),V(D(W),"handleContextMenu",function(Q){W.handleHide(Q)}),V(D(W),"hideMenu",function(Q){(Q.keyCode===27||Q.keyCode===13)&&(0,S.hideMenu)()}),V(D(W),"getMenuPosition",function(){var Q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,re=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,oe={top:re,left:Q};if(!W.menu)return oe;var X=window,se=X.innerWidth,ue=X.innerHeight,he=W.menu.getBoundingClientRect();return re+he.height>ue&&(oe.top-=he.height),Q+he.width>se&&(oe.left-=he.width),oe.top<0&&(oe.top=he.height<ue?(ue-he.height)/2:0),oe.left<0&&(oe.left=he.width<se?(se-he.width)/2:0),oe}),V(D(W),"getRTLMenuPosition",function(){var Q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,re=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,oe={top:re,left:Q};if(!W.menu)return oe;var X=window,se=X.innerWidth,ue=X.innerHeight,he=W.menu.getBoundingClientRect();return oe.left=Q-he.width,re+he.height>ue&&(oe.top-=he.height),oe.left<0&&(oe.left+=he.width),oe.top<0&&(oe.top=he.height<ue?(ue-he.height)/2:0),oe.left+he.width>se&&(oe.left=he.width<se?(se-he.width)/2:0),oe}),V(D(W),"menuRef",function(Q){W.menu=Q}),W.state=(0,d.default)({},W.state,{x:0,y:0,isVisible:!1}),W}return O(ne,[{key:"getSubMenuType",value:function(){return A.default}},{key:"componentDidMount",value:function(){this.listenId=h.default.register(this.handleShow,this.handleHide)}},{key:"componentDidUpdate",value:function(){var W=this,Q=window.requestAnimationFrame||setTimeout;this.state.isVisible?Q(function(){var re=W.state,oe=re.x,X=re.y,se=W.props.rtl?W.getRTLMenuPosition(oe,X):W.getMenuPosition(oe,X),ue=se.top,he=se.left;Q(function(){W.menu&&(W.menu.style.top="".concat(ue,"px"),W.menu.style.left="".concat(he,"px"),W.menu.style.opacity=1,W.menu.style.pointerEvents="auto")})}):Q(function(){W.menu&&(W.menu.style.opacity=0,W.menu.style.pointerEvents="none")})}},{key:"componentWillUnmount",value:function(){this.listenId&&h.default.unregister(this.listenId),this.unregisterHandlers()}},{key:"render",value:function(){var W=this.props,Q=W.children,re=W.className,oe=W.style,X=this.state.isVisible,se=(0,d.default)({},oe,{position:"fixed",opacity:0,pointerEvents:"none"}),ue=(0,_.default)(E.cssClasses.menu,re,V({},E.cssClasses.menuVisible,X));return p.default.createElement("nav",{role:"menu",tabIndex:"-1",ref:this.menuRef,style:se,className:ue,onContextMenu:this.handleContextMenu,onMouseLeave:this.handleMouseLeave},this.renderChildren(Q))}}]),ne}(x.default);c.default=ee,V(ee,"propTypes",{id:m.default.string.isRequired,children:m.default.node.isRequired,data:m.default.object,className:m.default.string,hideOnLeave:m.default.bool,rtl:m.default.bool,onHide:m.default.func,onMouseLeave:m.default.func,onShow:m.default.func,preventHideOnContextMenu:m.default.bool,preventHideOnResize:m.default.bool,preventHideOnScroll:m.default.bool,style:m.default.object}),V(ee,"defaultProps",{className:"",data:{},hideOnLeave:!1,rtl:!1,onHide:function(){return null},onMouseLeave:function(){return null},onShow:function(){return null},preventHideOnContextMenu:!1,preventHideOnResize:!1,preventHideOnScroll:!1,style:{}})},"../../../../node_modules/react-contextmenu/es6/ContextMenuTrigger.js":(l,c,u)=>{function f(ee){"@babel/helpers - typeof";return f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(K){return typeof K}:function(K){return K&&typeof Symbol=="function"&&K.constructor===Symbol&&K!==Symbol.prototype?"symbol":typeof K},f(ee)}Object.defineProperty(c,"__esModule",{value:!0}),c.default=void 0;var p=E(u("../../../../node_modules/react/index.js")),m=A(u("../../../../node_modules/prop-types/index.js")),_=A(u("../../../../node_modules/classnames/index.js")),d=A(u("../../../../node_modules/object-assign/index.js")),h=u("../../../../node_modules/react-contextmenu/es6/actions.js"),x=u("../../../../node_modules/react-contextmenu/es6/helpers.js");function A(ee){return ee&&ee.__esModule?ee:{default:ee}}function S(ee){if(typeof WeakMap!="function")return null;var K=new WeakMap,ie=new WeakMap;return(S=function(te){return te?ie:K})(ee)}function E(ee,K){if(ee&&ee.__esModule)return ee;if(ee===null||f(ee)!=="object"&&typeof ee!="function")return{default:ee};var ie=S(K);if(ie&&ie.has(ee))return ie.get(ee);var ne={},te=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var W in ee)if(W!=="default"&&Object.prototype.hasOwnProperty.call(ee,W)){var Q=te?Object.getOwnPropertyDescriptor(ee,W):null;Q&&(Q.get||Q.set)?Object.defineProperty(ne,W,Q):ne[W]=ee[W]}return ne.default=ee,ie&&ie.set(ee,ne),ne}function b(ee,K){if(!(ee instanceof K))throw new TypeError("Cannot call a class as a function")}function M(ee,K){for(var ie=0;ie<K.length;ie++){var ne=K[ie];ne.enumerable=ne.enumerable||!1,ne.configurable=!0,"value"in ne&&(ne.writable=!0),Object.defineProperty(ee,ne.key,ne)}}function T(ee,K,ie){return K&&M(ee.prototype,K),Object.defineProperty(ee,"prototype",{writable:!1}),ee}function O(ee,K){if(typeof K!="function"&&K!==null)throw new TypeError("Super expression must either be null or a function");ee.prototype=Object.create(K&&K.prototype,{constructor:{value:ee,writable:!0,configurable:!0}}),Object.defineProperty(ee,"prototype",{writable:!1}),K&&R(ee,K)}function R(ee,K){return R=Object.setPrototypeOf||function(ne,te){return ne.__proto__=te,ne},R(ee,K)}function I(ee){var K=D();return function(){var ne=k(ee),te;if(K){var W=k(this).constructor;te=Reflect.construct(ne,arguments,W)}else te=ne.apply(this,arguments);return N(this,te)}}function N(ee,K){if(K&&(f(K)==="object"||typeof K=="function"))return K;if(K!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return w(ee)}function w(ee){if(ee===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return ee}function D(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function k(ee){return k=Object.setPrototypeOf?Object.getPrototypeOf:function(ie){return ie.__proto__||Object.getPrototypeOf(ie)},k(ee)}function Y(ee,K,ie){return K in ee?Object.defineProperty(ee,K,{value:ie,enumerable:!0,configurable:!0,writable:!0}):ee[K]=ie,ee}var V=function(ee){O(ie,ee);var K=I(ie);function ie(){var ne;b(this,ie);for(var te=arguments.length,W=new Array(te),Q=0;Q<te;Q++)W[Q]=arguments[Q];return ne=K.call.apply(K,[this].concat(W)),Y(w(ne),"touchHandled",!1),Y(w(ne),"handleMouseDown",function(re){ne.props.holdToDisplay>=0&&re.button===0&&(re.persist(),re.stopPropagation(),ne.mouseDownTimeoutId=setTimeout(function(){return ne.handleContextClick(re)},ne.props.holdToDisplay)),(0,x.callIfExists)(ne.props.attributes.onMouseDown,re)}),Y(w(ne),"handleMouseUp",function(re){re.button===0&&clearTimeout(ne.mouseDownTimeoutId),(0,x.callIfExists)(ne.props.attributes.onMouseUp,re)}),Y(w(ne),"handleMouseOut",function(re){re.button===0&&clearTimeout(ne.mouseDownTimeoutId),(0,x.callIfExists)(ne.props.attributes.onMouseOut,re)}),Y(w(ne),"handleTouchstart",function(re){ne.touchHandled=!1,ne.props.holdToDisplay>=0&&(re.persist(),re.stopPropagation(),ne.touchstartTimeoutId=setTimeout(function(){ne.handleContextClick(re),ne.touchHandled=!0},ne.props.holdToDisplay)),(0,x.callIfExists)(ne.props.attributes.onTouchStart,re)}),Y(w(ne),"handleTouchEnd",function(re){ne.touchHandled&&re.preventDefault(),clearTimeout(ne.touchstartTimeoutId),(0,x.callIfExists)(ne.props.attributes.onTouchEnd,re)}),Y(w(ne),"handleContextMenu",function(re){re.button===ne.props.mouseButton&&ne.handleContextClick(re),(0,x.callIfExists)(ne.props.attributes.onContextMenu,re)}),Y(w(ne),"handleMouseClick",function(re){re.button===ne.props.mouseButton&&ne.handleContextClick(re),(0,x.callIfExists)(ne.props.attributes.onClick,re)}),Y(w(ne),"handleContextClick",function(re){if(!ne.props.disable&&!(ne.props.disableIfShiftIsPressed&&re.shiftKey)){re.preventDefault(),re.stopPropagation();var oe=re.clientX||re.touches&&re.touches[0].pageX,X=re.clientY||re.touches&&re.touches[0].pageY;ne.props.posX&&(oe-=ne.props.posX),ne.props.posY&&(X-=ne.props.posY),(0,h.hideMenu)();var se=(0,x.callIfExists)(ne.props.collect,ne.props),ue={position:{x:oe,y:X},target:ne.elem,id:ne.props.id};se&&typeof se.then=="function"?se.then(function(he){ue.data=(0,d.default)({},he,{target:re.target}),(0,h.showMenu)(ue)}):(ue.data=(0,d.default)({},se,{target:re.target}),(0,h.showMenu)(ue))}}),Y(w(ne),"elemRef",function(re){ne.elem=re}),ne}return T(ie,[{key:"render",value:function(){var te=this.props,W=te.renderTag,Q=te.attributes,re=te.children,oe=(0,d.default)({},Q,{className:(0,_.default)(x.cssClasses.menuWrapper,Q.className),onContextMenu:this.handleContextMenu,onClick:this.handleMouseClick,onMouseDown:this.handleMouseDown,onMouseUp:this.handleMouseUp,onTouchStart:this.handleTouchstart,onTouchEnd:this.handleTouchEnd,onMouseOut:this.handleMouseOut,ref:this.elemRef});return p.default.createElement(W,oe,re)}}]),ie}(p.Component);c.default=V,Y(V,"propTypes",{id:m.default.string.isRequired,children:m.default.node.isRequired,attributes:m.default.object,collect:m.default.func,disable:m.default.bool,holdToDisplay:m.default.number,posX:m.default.number,posY:m.default.number,renderTag:m.default.elementType,mouseButton:m.default.number,disableIfShiftIsPressed:m.default.bool}),Y(V,"defaultProps",{attributes:{},collect:function(){return null},disable:!1,holdToDisplay:1e3,renderTag:"div",posX:0,posY:0,mouseButton:2,disableIfShiftIsPressed:!1})},"../../../../node_modules/react-contextmenu/es6/MenuItem.js":(l,c,u)=>{function f(K){"@babel/helpers - typeof";return f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ie){return typeof ie}:function(ie){return ie&&typeof Symbol=="function"&&ie.constructor===Symbol&&ie!==Symbol.prototype?"symbol":typeof ie},f(K)}Object.defineProperty(c,"__esModule",{value:!0}),c.default=void 0;var p=E(u("../../../../node_modules/react/index.js")),m=A(u("../../../../node_modules/prop-types/index.js")),_=A(u("../../../../node_modules/classnames/index.js")),d=A(u("../../../../node_modules/object-assign/index.js")),h=u("../../../../node_modules/react-contextmenu/es6/actions.js"),x=u("../../../../node_modules/react-contextmenu/es6/helpers.js");function A(K){return K&&K.__esModule?K:{default:K}}function S(K){if(typeof WeakMap!="function")return null;var ie=new WeakMap,ne=new WeakMap;return(S=function(W){return W?ne:ie})(K)}function E(K,ie){if(K&&K.__esModule)return K;if(K===null||f(K)!=="object"&&typeof K!="function")return{default:K};var ne=S(ie);if(ne&&ne.has(K))return ne.get(K);var te={},W=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Q in K)if(Q!=="default"&&Object.prototype.hasOwnProperty.call(K,Q)){var re=W?Object.getOwnPropertyDescriptor(K,Q):null;re&&(re.get||re.set)?Object.defineProperty(te,Q,re):te[Q]=K[Q]}return te.default=K,ne&&ne.set(K,te),te}function b(){return b=Object.assign||function(K){for(var ie=1;ie<arguments.length;ie++){var ne=arguments[ie];for(var te in ne)Object.prototype.hasOwnProperty.call(ne,te)&&(K[te]=ne[te])}return K},b.apply(this,arguments)}function M(K,ie){if(!(K instanceof ie))throw new TypeError("Cannot call a class as a function")}function T(K,ie){for(var ne=0;ne<ie.length;ne++){var te=ie[ne];te.enumerable=te.enumerable||!1,te.configurable=!0,"value"in te&&(te.writable=!0),Object.defineProperty(K,te.key,te)}}function O(K,ie,ne){return ie&&T(K.prototype,ie),Object.defineProperty(K,"prototype",{writable:!1}),K}function R(K,ie){if(typeof ie!="function"&&ie!==null)throw new TypeError("Super expression must either be null or a function");K.prototype=Object.create(ie&&ie.prototype,{constructor:{value:K,writable:!0,configurable:!0}}),Object.defineProperty(K,"prototype",{writable:!1}),ie&&I(K,ie)}function I(K,ie){return I=Object.setPrototypeOf||function(te,W){return te.__proto__=W,te},I(K,ie)}function N(K){var ie=k();return function(){var te=Y(K),W;if(ie){var Q=Y(this).constructor;W=Reflect.construct(te,arguments,Q)}else W=te.apply(this,arguments);return w(this,W)}}function w(K,ie){if(ie&&(f(ie)==="object"||typeof ie=="function"))return ie;if(ie!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return D(K)}function D(K){if(K===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return K}function k(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Y(K){return Y=Object.setPrototypeOf?Object.getPrototypeOf:function(ne){return ne.__proto__||Object.getPrototypeOf(ne)},Y(K)}function V(K,ie,ne){return ie in K?Object.defineProperty(K,ie,{value:ne,enumerable:!0,configurable:!0,writable:!0}):K[ie]=ne,K}var ee=function(K){R(ne,K);var ie=N(ne);function ne(){var te;M(this,ne);for(var W=arguments.length,Q=new Array(W),re=0;re<W;re++)Q[re]=arguments[re];return te=ie.call.apply(ie,[this].concat(Q)),V(D(te),"handleClick",function(oe){oe.button!==0&&oe.button!==1&&oe.preventDefault(),!(te.props.disabled||te.props.divider)&&((0,x.callIfExists)(te.props.onClick,oe,(0,d.default)({},te.props.data,x.store.data),x.store.target),!te.props.preventClose&&(0,h.hideMenu)())}),te}return O(ne,[{key:"render",value:function(){var W,Q=this,re=this.props,oe=re.attributes,X=re.children,se=re.className,ue=re.disabled,he=re.divider,fe=re.selected,Ae=(0,_.default)(se,x.cssClasses.menuItem,oe.className,(W={},V(W,(0,_.default)(x.cssClasses.menuItemDisabled,oe.disabledClassName),ue),V(W,(0,_.default)(x.cssClasses.menuItemDivider,oe.dividerClassName),he),V(W,(0,_.default)(x.cssClasses.menuItemSelected,oe.selectedClassName),fe),W));return p.default.createElement("div",b({},oe,{className:Ae,role:"menuitem",tabIndex:"-1","aria-disabled":ue?"true":"false","aria-orientation":he?"horizontal":null,ref:function(we){Q.ref=we},onMouseMove:this.props.onMouseMove,onMouseLeave:this.props.onMouseLeave,onTouchEnd:this.handleClick,onClick:this.handleClick}),he?null:X)}}]),ne}(p.Component);c.default=ee,V(ee,"propTypes",{attributes:m.default.object,children:m.default.node,className:m.default.string,data:m.default.object,disabled:m.default.bool,divider:m.default.bool,onClick:m.default.func,onMouseLeave:m.default.func,onMouseMove:m.default.func,preventClose:m.default.bool,selected:m.default.bool}),V(ee,"defaultProps",{attributes:{},children:null,className:"",data:{},disabled:!1,divider:!1,onClick:function(){return null},onMouseMove:function(){return null},onMouseLeave:function(){return null},preventClose:!1,selected:!1})},"../../../../node_modules/react-contextmenu/es6/SubMenu.js":(l,c,u)=>{function f(K){"@babel/helpers - typeof";return f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ie){return typeof ie}:function(ie){return ie&&typeof Symbol=="function"&&ie.constructor===Symbol&&ie!==Symbol.prototype?"symbol":typeof ie},f(K)}Object.defineProperty(c,"__esModule",{value:!0}),c.default=void 0;var p=E(u("../../../../node_modules/react/index.js")),m=E(u("../../../../node_modules/prop-types/index.js")),_=E(u("../../../../node_modules/classnames/index.js")),d=E(u("../../../../node_modules/object-assign/index.js")),h=u("../../../../node_modules/react-contextmenu/es6/actions.js"),x=E(u("../../../../node_modules/react-contextmenu/es6/AbstractMenu.js")),A=u("../../../../node_modules/react-contextmenu/es6/helpers.js"),S=E(u("../../../../node_modules/react-contextmenu/es6/globalEventListener.js"));function E(K){return K&&K.__esModule?K:{default:K}}function b(){return b=Object.assign||function(K){for(var ie=1;ie<arguments.length;ie++){var ne=arguments[ie];for(var te in ne)Object.prototype.hasOwnProperty.call(ne,te)&&(K[te]=ne[te])}return K},b.apply(this,arguments)}function M(K,ie){if(!(K instanceof ie))throw new TypeError("Cannot call a class as a function")}function T(K,ie){for(var ne=0;ne<ie.length;ne++){var te=ie[ne];te.enumerable=te.enumerable||!1,te.configurable=!0,"value"in te&&(te.writable=!0),Object.defineProperty(K,te.key,te)}}function O(K,ie,ne){return ie&&T(K.prototype,ie),Object.defineProperty(K,"prototype",{writable:!1}),K}function R(K,ie){if(typeof ie!="function"&&ie!==null)throw new TypeError("Super expression must either be null or a function");K.prototype=Object.create(ie&&ie.prototype,{constructor:{value:K,writable:!0,configurable:!0}}),Object.defineProperty(K,"prototype",{writable:!1}),ie&&I(K,ie)}function I(K,ie){return I=Object.setPrototypeOf||function(te,W){return te.__proto__=W,te},I(K,ie)}function N(K){var ie=k();return function(){var te=Y(K),W;if(ie){var Q=Y(this).constructor;W=Reflect.construct(te,arguments,Q)}else W=te.apply(this,arguments);return w(this,W)}}function w(K,ie){if(ie&&(f(ie)==="object"||typeof ie=="function"))return ie;if(ie!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return D(K)}function D(K){if(K===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return K}function k(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Y(K){return Y=Object.setPrototypeOf?Object.getPrototypeOf:function(ne){return ne.__proto__||Object.getPrototypeOf(ne)},Y(K)}function V(K,ie,ne){return ie in K?Object.defineProperty(K,ie,{value:ne,enumerable:!0,configurable:!0,writable:!0}):K[ie]=ne,K}var ee=function(K){R(ne,K);var ie=N(ne);function ne(te){var W;return M(this,ne),W=ie.call(this,te),V(D(W),"getMenuPosition",function(){var Q=window,re=Q.innerWidth,oe=Q.innerHeight,X=W.subMenu.getBoundingClientRect(),se={};return X.bottom>oe?se.bottom=0:se.top=0,X.right<re?se.left="100%":se.right="100%",se}),V(D(W),"getRTLMenuPosition",function(){var Q=window,re=Q.innerHeight,oe=W.subMenu.getBoundingClientRect(),X={};return oe.bottom>re?X.bottom=0:X.top=0,oe.left<0?X.left="100%":X.right="100%",X}),V(D(W),"hideMenu",function(Q){Q.preventDefault(),W.hideSubMenu(Q)}),V(D(W),"hideSubMenu",function(Q){Q.detail&&Q.detail.id&&W.menu&&Q.detail.id!==W.menu.id||(W.props.forceOpen&&W.props.forceClose(),W.setState({visible:!1,selectedItem:null}),W.unregisterHandlers())}),V(D(W),"handleClick",function(Q){Q.preventDefault(),!W.props.disabled&&((0,A.callIfExists)(W.props.onClick,Q,(0,d.default)({},W.props.data,A.store.data),A.store.target),!(!W.props.onClick||W.props.preventCloseOnClick)&&(0,h.hideMenu)())}),V(D(W),"handleMouseEnter",function(){W.closetimer&&clearTimeout(W.closetimer),!(W.props.disabled||W.state.visible)&&(W.opentimer=setTimeout(function(){return W.setState({visible:!0,selectedItem:null})},W.props.hoverDelay))}),V(D(W),"handleMouseLeave",function(){W.opentimer&&clearTimeout(W.opentimer),W.state.visible&&(W.closetimer=setTimeout(function(){return W.setState({visible:!1,selectedItem:null})},W.props.hoverDelay))}),V(D(W),"menuRef",function(Q){W.menu=Q}),V(D(W),"subMenuRef",function(Q){W.subMenu=Q}),V(D(W),"registerHandlers",function(){document.removeEventListener("keydown",W.props.parentKeyNavigationHandler),document.addEventListener("keydown",W.handleKeyNavigation)}),V(D(W),"unregisterHandlers",function(Q){document.removeEventListener("keydown",W.handleKeyNavigation),Q||document.addEventListener("keydown",W.props.parentKeyNavigationHandler)}),W.state=(0,d.default)({},W.state,{visible:!1}),W}return O(ne,[{key:"componentDidMount",value:function(){this.listenId=S.default.register(function(){},this.hideSubMenu)}},{key:"getSubMenuType",value:function(){return ne}},{key:"shouldComponentUpdate",value:function(W,Q){return this.isVisibilityChange=(this.state.visible!==Q.visible||this.props.forceOpen!==W.forceOpen)&&!(this.state.visible&&W.forceOpen)&&!(this.props.forceOpen&&Q.visible),!0}},{key:"componentDidUpdate",value:function(){var W=this;if(this.isVisibilityChange)if(this.props.forceOpen||this.state.visible){var Q=window.requestAnimationFrame||setTimeout;Q(function(){var oe=W.props.rtl?W.getRTLMenuPosition():W.getMenuPosition();W.subMenu.style.removeProperty("top"),W.subMenu.style.removeProperty("bottom"),W.subMenu.style.removeProperty("left"),W.subMenu.style.removeProperty("right"),(0,A.hasOwnProp)(oe,"top")&&(W.subMenu.style.top=oe.top),(0,A.hasOwnProp)(oe,"left")&&(W.subMenu.style.left=oe.left),(0,A.hasOwnProp)(oe,"bottom")&&(W.subMenu.style.bottom=oe.bottom),(0,A.hasOwnProp)(oe,"right")&&(W.subMenu.style.right=oe.right),W.subMenu.classList.add(A.cssClasses.menuVisible),W.registerHandlers(),W.setState({selectedItem:null})})}else{var re=function oe(){W.subMenu.removeEventListener("transitionend",oe),W.subMenu.style.removeProperty("bottom"),W.subMenu.style.removeProperty("right"),W.subMenu.style.top=0,W.subMenu.style.left="100%",W.unregisterHandlers()};this.subMenu.addEventListener("transitionend",re),this.subMenu.classList.remove(A.cssClasses.menuVisible)}}},{key:"componentWillUnmount",value:function(){this.listenId&&S.default.unregister(this.listenId),this.opentimer&&clearTimeout(this.opentimer),this.closetimer&&clearTimeout(this.closetimer),this.unregisterHandlers(!0)}},{key:"render",value:function(){var W,Q=this.props,re=Q.children,oe=Q.attributes,X=Q.disabled,se=Q.title,ue=Q.selected,he=this.state.visible,fe={ref:this.menuRef,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,className:(0,_.default)(A.cssClasses.menuItem,A.cssClasses.subMenu,oe.listClassName),style:{position:"relative"}},Ae={className:(0,_.default)(A.cssClasses.menuItem,oe.className,(W={},V(W,(0,_.default)(A.cssClasses.menuItemDisabled,oe.disabledClassName),X),V(W,(0,_.default)(A.cssClasses.menuItemActive,oe.visibleClassName),he),V(W,(0,_.default)(A.cssClasses.menuItemSelected,oe.selectedClassName),ue),W)),onMouseMove:this.props.onMouseMove,onMouseOut:this.props.onMouseOut,onClick:this.handleClick},Se={ref:this.subMenuRef,style:{position:"absolute",transition:"opacity 1ms",top:0,left:"100%"},className:(0,_.default)(A.cssClasses.menu,this.props.className)};return p.default.createElement("nav",b({},fe,{role:"menuitem",tabIndex:"-1","aria-haspopup":"true"}),p.default.createElement("div",b({},oe,Ae),se),p.default.createElement("nav",b({},Se,{role:"menu",tabIndex:"-1"}),this.renderChildren(re)))}}]),ne}(x.default);c.default=ee,V(ee,"propTypes",{children:m.default.node.isRequired,attributes:m.default.object,title:m.default.node.isRequired,className:m.default.string,disabled:m.default.bool,hoverDelay:m.default.number,rtl:m.default.bool,selected:m.default.bool,onMouseMove:m.default.func,onMouseOut:m.default.func,forceOpen:m.default.bool,forceClose:m.default.func,parentKeyNavigationHandler:m.default.func}),V(ee,"defaultProps",{disabled:!1,hoverDelay:500,attributes:{},className:"",rtl:!1,selected:!1,onMouseMove:function(){return null},onMouseOut:function(){return null},forceOpen:!1,forceClose:function(){return null},parentKeyNavigationHandler:function(){return null}})},"../../../../node_modules/react-contextmenu/es6/actions.js":(l,c,u)=>{Object.defineProperty(c,"__esModule",{value:!0}),c.MENU_SHOW=c.MENU_HIDE=void 0,c.dispatchGlobalEvent=h,c.hideMenu=A,c.showMenu=x;var f=m(u("../../../../node_modules/object-assign/index.js")),p=u("../../../../node_modules/react-contextmenu/es6/helpers.js");function m(S){return S&&S.__esModule?S:{default:S}}var _="REACT_CONTEXTMENU_SHOW";c.MENU_SHOW=_;var d="REACT_CONTEXTMENU_HIDE";c.MENU_HIDE=d;function h(S,E){var b=arguments.length>2&&arguments[2]!==void 0?arguments[2]:window,M;typeof window.CustomEvent=="function"?M=new window.CustomEvent(S,{detail:E}):(M=document.createEvent("CustomEvent"),M.initCustomEvent(S,!1,!0,E)),b&&(b.dispatchEvent(M),(0,f.default)(p.store,E))}function x(){var S=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},E=arguments.length>1?arguments[1]:void 0;h(_,(0,f.default)({},S,{type:_}),E)}function A(){var S=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},E=arguments.length>1?arguments[1]:void 0;h(d,(0,f.default)({},S,{type:d}),E)}},"../../../../node_modules/react-contextmenu/es6/connectMenu.js":(l,c,u)=>{function f(W){"@babel/helpers - typeof";return f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Q){return typeof Q}:function(Q){return Q&&typeof Symbol=="function"&&Q.constructor===Symbol&&Q!==Symbol.prototype?"symbol":typeof Q},f(W)}Object.defineProperty(c,"__esModule",{value:!0}),c.default=te;var p=x(u("../../../../node_modules/react/index.js")),m=d(u("../../../../node_modules/react-contextmenu/es6/ContextMenuTrigger.js")),_=d(u("../../../../node_modules/react-contextmenu/es6/globalEventListener.js"));function d(W){return W&&W.__esModule?W:{default:W}}function h(W){if(typeof WeakMap!="function")return null;var Q=new WeakMap,re=new WeakMap;return(h=function(X){return X?re:Q})(W)}function x(W,Q){if(W&&W.__esModule)return W;if(W===null||f(W)!=="object"&&typeof W!="function")return{default:W};var re=h(Q);if(re&&re.has(W))return re.get(W);var oe={},X=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var se in W)if(se!=="default"&&Object.prototype.hasOwnProperty.call(W,se)){var ue=X?Object.getOwnPropertyDescriptor(W,se):null;ue&&(ue.get||ue.set)?Object.defineProperty(oe,se,ue):oe[se]=W[se]}return oe.default=W,re&&re.set(W,oe),oe}function A(){return A=Object.assign||function(W){for(var Q=1;Q<arguments.length;Q++){var re=arguments[Q];for(var oe in re)Object.prototype.hasOwnProperty.call(re,oe)&&(W[oe]=re[oe])}return W},A.apply(this,arguments)}function S(W,Q){if(!(W instanceof Q))throw new TypeError("Cannot call a class as a function")}function E(W,Q){for(var re=0;re<Q.length;re++){var oe=Q[re];oe.enumerable=oe.enumerable||!1,oe.configurable=!0,"value"in oe&&(oe.writable=!0),Object.defineProperty(W,oe.key,oe)}}function b(W,Q,re){return Q&&E(W.prototype,Q),Object.defineProperty(W,"prototype",{writable:!1}),W}function M(W,Q){if(typeof Q!="function"&&Q!==null)throw new TypeError("Super expression must either be null or a function");W.prototype=Object.create(Q&&Q.prototype,{constructor:{value:W,writable:!0,configurable:!0}}),Object.defineProperty(W,"prototype",{writable:!1}),Q&&T(W,Q)}function T(W,Q){return T=Object.setPrototypeOf||function(oe,X){return oe.__proto__=X,oe},T(W,Q)}function O(W){var Q=N();return function(){var oe=w(W),X;if(Q){var se=w(this).constructor;X=Reflect.construct(oe,arguments,se)}else X=oe.apply(this,arguments);return R(this,X)}}function R(W,Q){if(Q&&(f(Q)==="object"||typeof Q=="function"))return Q;if(Q!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return I(W)}function I(W){if(W===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return W}function N(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function w(W){return w=Object.setPrototypeOf?Object.getPrototypeOf:function(re){return re.__proto__||Object.getPrototypeOf(re)},w(W)}function D(W,Q,re){return Q in W?Object.defineProperty(W,Q,{value:re,enumerable:!0,configurable:!0,writable:!0}):W[Q]=re,W}function k(W){return K(W)||ee(W)||V(W)||Y()}function Y(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function V(W,Q){if(W){if(typeof W=="string")return ie(W,Q);var re=Object.prototype.toString.call(W).slice(8,-1);if(re==="Object"&&W.constructor&&(re=W.constructor.name),re==="Map"||re==="Set")return Array.from(W);if(re==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(re))return ie(W,Q)}}function ee(W){if(typeof Symbol<"u"&&W[Symbol.iterator]!=null||W["@@iterator"]!=null)return Array.from(W)}function K(W){if(Array.isArray(W))return ie(W)}function ie(W,Q){(Q==null||Q>W.length)&&(Q=W.length);for(var re=0,oe=new Array(Q);re<Q;re++)oe[re]=W[re];return oe}var ne=[].concat(k(Object.keys(m.default.propTypes)),["children"]);function te(W){return function(re){return function(oe){M(se,oe);var X=O(se);function se(ue){var he;return S(this,se),he=X.call(this,ue),D(I(he),"handleShow",function(fe){if(fe.detail.id===W){var Ae=fe.detail.data,Se={};for(var we in Ae)ne.includes(we)||(Se[we]=Ae[we]);he.setState({trigger:Se})}}),D(I(he),"handleHide",function(){he.setState({trigger:null})}),he.state={trigger:null},he}return b(se,[{key:"componentDidMount",value:function(){this.listenId=_.default.register(this.handleShow,this.handleHide)}},{key:"componentWillUnmount",value:function(){this.listenId&&_.default.unregister(this.listenId)}},{key:"render",value:function(){return p.default.createElement(re,A({},this.props,{id:W,trigger:this.state.trigger}))}}]),se}(p.Component)}}},"../../../../node_modules/react-contextmenu/es6/globalEventListener.js":(l,c,u)=>{Object.defineProperty(c,"__esModule",{value:!0}),c.default=void 0;var f=u("../../../../node_modules/react-contextmenu/es6/actions.js"),p=u("../../../../node_modules/react-contextmenu/es6/helpers.js");function m(A,S,E){return Object.defineProperty(A,"prototype",{writable:!1}),A}function _(A,S){if(!(A instanceof S))throw new TypeError("Cannot call a class as a function")}function d(A,S,E){return S in A?Object.defineProperty(A,S,{value:E,enumerable:!0,configurable:!0,writable:!0}):A[S]=E,A}var h=m(function A(){var S=this;_(this,A),d(this,"handleShowEvent",function(E){for(var b in S.callbacks)(0,p.hasOwnProp)(S.callbacks,b)&&S.callbacks[b].show(E)}),d(this,"handleHideEvent",function(E){for(var b in S.callbacks)(0,p.hasOwnProp)(S.callbacks,b)&&S.callbacks[b].hide(E)}),d(this,"register",function(E,b){var M=(0,p.uniqueId)();return S.callbacks[M]={show:E,hide:b},M}),d(this,"unregister",function(E){E&&S.callbacks[E]&&delete S.callbacks[E]}),this.callbacks={},p.canUseDOM&&(window.addEventListener(f.MENU_SHOW,this.handleShowEvent),window.addEventListener(f.MENU_HIDE,this.handleHideEvent))}),x=new h;c.default=x},"../../../../node_modules/react-contextmenu/es6/helpers.js":(l,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),c.callIfExists=u,c.cssClasses=c.canUseDOM=void 0,c.hasOwnProp=f,c.store=void 0,c.uniqueId=p;function u(h){for(var x=arguments.length,A=new Array(x>1?x-1:0),S=1;S<x;S++)A[S-1]=arguments[S];return typeof h=="function"&&h.apply(void 0,A)}function f(h,x){return Object.prototype.hasOwnProperty.call(h,x)}function p(){return Math.random().toString(36).substring(7)}var m={menu:"react-contextmenu",menuVisible:"react-contextmenu--visible",menuWrapper:"react-contextmenu-wrapper",menuItem:"react-contextmenu-item",menuItemActive:"react-contextmenu-item--active",menuItemDisabled:"react-contextmenu-item--disabled",menuItemDivider:"react-contextmenu-item--divider",menuItemSelected:"react-contextmenu-item--selected",subMenu:"react-contextmenu-submenu"};c.cssClasses=m;var _={};c.store=_;var d=!!(typeof window<"u"&&window.document&&window.document.createElement);c.canUseDOM=d},"../../../../node_modules/react-contextmenu/es6/index.js":(l,c,u)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ContextMenu",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(c,"ContextMenuTrigger",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(c,"MenuItem",{enumerable:!0,get:function(){return m.default}}),Object.defineProperty(c,"SubMenu",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(c,"connectMenu",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(c,"hideMenu",{enumerable:!0,get:function(){return h.hideMenu}}),Object.defineProperty(c,"showMenu",{enumerable:!0,get:function(){return h.showMenu}});var f=x(u("../../../../node_modules/react-contextmenu/es6/ContextMenu.js")),p=x(u("../../../../node_modules/react-contextmenu/es6/ContextMenuTrigger.js")),m=x(u("../../../../node_modules/react-contextmenu/es6/MenuItem.js")),_=x(u("../../../../node_modules/react-contextmenu/es6/SubMenu.js")),d=x(u("../../../../node_modules/react-contextmenu/es6/connectMenu.js")),h=u("../../../../node_modules/react-contextmenu/es6/actions.js");function x(A){return A&&A.__esModule?A:{default:A}}},"../../../../node_modules/react-dom/cjs/react-dom.development.js":(l,c,u)=>{/** @license React v17.0.2
 * react-dom.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */(function(){var f=u("../../../../node_modules/react/index.js"),p=u("../../../../node_modules/object-assign/index.js"),m=u("../../../../node_modules/scheduler/index.js"),_=u("../../../../node_modules/scheduler/tracing.js"),d=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(C){{for(var y=arguments.length,B=new Array(y>1?y-1:0),U=1;U<y;U++)B[U-1]=arguments[U];A("warn",C,B)}}function x(C){{for(var y=arguments.length,B=new Array(y>1?y-1:0),U=1;U<y;U++)B[U-1]=arguments[U];A("error",C,B)}}function A(C,y,B){{var U=d.ReactDebugCurrentFrame,Z=U.getStackAddendum();Z!==""&&(y+="%s",B=B.concat([Z]));var g=B.map(function(v){return""+v});g.unshift("Warning: "+y),Function.prototype.apply.call(console[C],console,g)}}if(!f)throw Error("ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.");var S=0,E=1,b=2,M=3,T=4,O=5,R=6,I=7,N=8,w=9,D=10,k=11,Y=12,V=13,ee=14,K=15,ie=16,ne=17,te=18,W=19,Q=20,re=21,oe=22,X=23,se=24,ue=!0,he=!1,fe=!1,Ae=!1,Se=new Set,we={},ke={};function st(C,y){Ve(C,y),Ve(C+"Capture",y)}function Ve(C,y){we[C]&&x("EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.",C),we[C]=y;{var B=C.toLowerCase();ke[B]=C,C==="onDoubleClick"&&(ke.ondblclick=C)}for(var U=0;U<y.length;U++)Se.add(y[U])}var Ke=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ct=0,nt=1,at=2,xt=3,Qe=4,kt=5,ot=6,At=":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",Me=At+"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",je="data-reactroot",rt=new RegExp("^["+At+"]["+Me+"]*$"),yt=Object.prototype.hasOwnProperty,Rt={},Nt={};function Kt(C){return yt.call(Nt,C)?!0:yt.call(Rt,C)?!1:rt.test(C)?(Nt[C]=!0,!0):(Rt[C]=!0,x("Invalid attribute name: `%s`",C),!1)}function si(C,y,B){return y!==null?y.type===ct:B?!1:C.length>2&&(C[0]==="o"||C[0]==="O")&&(C[1]==="n"||C[1]==="N")}function Pi(C,y,B,U){if(B!==null&&B.type===ct)return!1;switch(typeof y){case"function":case"symbol":return!0;case"boolean":{if(U)return!1;if(B!==null)return!B.acceptsBooleans;var Z=C.toLowerCase().slice(0,5);return Z!=="data-"&&Z!=="aria-"}default:return!1}}function gi(C,y,B,U){if(y===null||typeof y>"u"||Pi(C,y,B,U))return!0;if(U)return!1;if(B!==null)switch(B.type){case xt:return!y;case Qe:return y===!1;case kt:return isNaN(y);case ot:return isNaN(y)||y<1}return!1}function bi(C){return Ni.hasOwnProperty(C)?Ni[C]:null}function wi(C,y,B,U,Z,g,v){this.acceptsBooleans=y===at||y===xt||y===Qe,this.attributeName=U,this.attributeNamespace=Z,this.mustUseProperty=B,this.propertyName=C,this.type=y,this.sanitizeURL=g,this.removeEmptyString=v}var Ni={},qt=["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"];qt.forEach(function(C){Ni[C]=new wi(C,ct,!1,C,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(C){var y=C[0],B=C[1];Ni[y]=new wi(y,nt,!1,B,null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(C){Ni[C]=new wi(C,at,!1,C.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(C){Ni[C]=new wi(C,at,!1,C,null,!1,!1)}),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach(function(C){Ni[C]=new wi(C,xt,!1,C.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(C){Ni[C]=new wi(C,xt,!0,C,null,!1,!1)}),["capture","download"].forEach(function(C){Ni[C]=new wi(C,Qe,!1,C,null,!1,!1)}),["cols","rows","size","span"].forEach(function(C){Ni[C]=new wi(C,ot,!1,C,null,!1,!1)}),["rowSpan","start"].forEach(function(C){Ni[C]=new wi(C,kt,!1,C.toLowerCase(),null,!1,!1)});var ci=/[\-\:]([a-z])/g,qe=function(C){return C[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach(function(C){var y=C.replace(ci,qe);Ni[y]=new wi(y,nt,!1,C,null,!1,!1)}),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach(function(C){var y=C.replace(ci,qe);Ni[y]=new wi(y,nt,!1,C,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(C){var y=C.replace(ci,qe);Ni[y]=new wi(y,nt,!1,C,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(C){Ni[C]=new wi(C,nt,!1,C.toLowerCase(),null,!1,!1)});var ri="xlinkHref";Ni[ri]=new wi("xlinkHref",nt,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(C){Ni[C]=new wi(C,nt,!1,C.toLowerCase(),null,!0,!0)});var Ot=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,mt=!1;function Ye(C){!mt&&Ot.test(C)&&(mt=!0,x("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.",JSON.stringify(C)))}function Tt(C,y,B,U){if(U.mustUseProperty){var Z=U.propertyName;return C[Z]}else{U.sanitizeURL&&Ye(""+B);var g=U.attributeName,v=null;if(U.type===Qe){if(C.hasAttribute(g)){var L=C.getAttribute(g);return L===""?!0:gi(y,B,U,!1)?L:L===""+B?B:L}}else if(C.hasAttribute(g)){if(gi(y,B,U,!1))return C.getAttribute(g);if(U.type===xt)return B;v=C.getAttribute(g)}return gi(y,B,U,!1)?v===null?B:v:v===""+B?B:v}}function Ut(C,y,B){{if(!Kt(y))return;if(ME(B))return B;if(!C.hasAttribute(y))return B===void 0?void 0:null;var U=C.getAttribute(y);return U===""+B?B:U}}function oi(C,y,B,U){var Z=bi(y);if(!si(y,Z,U)){if(gi(y,B,Z,U)&&(B=null),U||Z===null){if(Kt(y)){var g=y;B===null?C.removeAttribute(g):C.setAttribute(g,""+B)}return}var v=Z.mustUseProperty;if(v){var L=Z.propertyName;if(B===null){var z=Z.type;C[L]=z===xt?!1:""}else C[L]=B;return}var j=Z.attributeName,J=Z.attributeNamespace;if(B===null)C.removeAttribute(j);else{var le=Z.type,ce;le===xt||le===Qe&&B===!0?ce="":(ce=""+B,Z.sanitizeURL&&Ye(ce.toString())),J?C.setAttributeNS(J,j,ce):C.setAttribute(j,ce)}}}var ji=60103,ki=60106,os=60107,bs=60108,hi=60114,Oi=60109,li=60110,Xs=60112,ks=60113,hr=60120,fr=60115,We=60116,fi=60121,zi=60119,ts=60128,hs=60129,Ge=60130,Zt=60131;if(typeof Symbol=="function"&&Symbol.for){var $t=Symbol.for;ji=$t("react.element"),ki=$t("react.portal"),os=$t("react.fragment"),bs=$t("react.strict_mode"),hi=$t("react.profiler"),Oi=$t("react.provider"),li=$t("react.context"),Xs=$t("react.forward_ref"),ks=$t("react.suspense"),hr=$t("react.suspense_list"),fr=$t("react.memo"),We=$t("react.lazy"),fi=$t("react.block"),$t("react.server.block"),$t("react.fundamental"),zi=$t("react.scope"),ts=$t("react.opaque.id"),hs=$t("react.debug_trace_mode"),Ge=$t("react.offscreen"),Zt=$t("react.legacy_hidden")}var Ui=typeof Symbol=="function"&&Symbol.iterator,ls="@@iterator";function ns(C){if(C===null||typeof C!="object")return null;var y=Ui&&C[Ui]||C[ls];return typeof y=="function"?y:null}var Ss=0,qi,pr,Js,ir,hn,ra,ka;function Hn(){}Hn.__reactDisabledLog=!0;function to(){{if(Ss===0){qi=console.log,pr=console.info,Js=console.warn,ir=console.error,hn=console.group,ra=console.groupCollapsed,ka=console.groupEnd;var C={configurable:!0,enumerable:!0,value:Hn,writable:!0};Object.defineProperties(console,{info:C,log:C,warn:C,error:C,group:C,groupCollapsed:C,groupEnd:C})}Ss++}}function Gr(){{if(Ss--,Ss===0){var C={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:p({},C,{value:qi}),info:p({},C,{value:pr}),warn:p({},C,{value:Js}),error:p({},C,{value:ir}),group:p({},C,{value:hn}),groupCollapsed:p({},C,{value:ra}),groupEnd:p({},C,{value:ka})})}Ss<0&&x("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Yn=d.ReactCurrentDispatcher,To;function Pn(C,y,B){{if(To===void 0)try{throw Error()}catch(Z){var U=Z.stack.trim().match(/\n( *(at )?)/);To=U&&U[1]||""}return`
`+To+C}}var On=!1,Kr;{var dn=typeof WeakMap=="function"?WeakMap:Map;Kr=new dn}function mo(C,y){if(!C||On)return"";{var B=Kr.get(C);if(B!==void 0)return B}var U;On=!0;var Z=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var g;g=Yn.current,Yn.current=null,to();try{if(y){var v=function(){throw Error()};if(Object.defineProperty(v.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(v,[])}catch(Oe){U=Oe}Reflect.construct(C,[],v)}else{try{v.call()}catch(Oe){U=Oe}C.call(v.prototype)}}else{try{throw Error()}catch(Oe){U=Oe}C()}}catch(Oe){if(Oe&&U&&typeof Oe.stack=="string"){for(var L=Oe.stack.split(`
`),z=U.stack.split(`
`),j=L.length-1,J=z.length-1;j>=1&&J>=0&&L[j]!==z[J];)J--;for(;j>=1&&J>=0;j--,J--)if(L[j]!==z[J]){if(j!==1||J!==1)do if(j--,J--,J<0||L[j]!==z[J]){var le=`
`+L[j].replace(" at new "," at ");return typeof C=="function"&&Kr.set(C,le),le}while(j>=1&&J>=0);break}}}finally{On=!1,Yn.current=g,Gr(),Error.prepareStackTrace=Z}var ce=C?C.displayName||C.name:"",_e=ce?Pn(ce):"";return typeof C=="function"&&Kr.set(C,_e),_e}function Xn(C,y,B){return mo(C,!0)}function na(C,y,B){return mo(C,!1)}function xl(C){var y=C.prototype;return!!(y&&y.isReactComponent)}function Lo(C,y,B){if(C==null)return"";if(typeof C=="function")return mo(C,xl(C));if(typeof C=="string")return Pn(C);switch(C){case ks:return Pn("Suspense");case hr:return Pn("SuspenseList")}if(typeof C=="object")switch(C.$$typeof){case Xs:return na(C.render);case fr:return Lo(C.type,y,B);case fi:return na(C._render);case We:{var U=C,Z=U._payload,g=U._init;try{return Lo(g(Z),y,B)}catch{}}}return""}function Io(C){switch(C._debugOwner&&C._debugOwner.type,C._debugSource,C.tag){case O:return Pn(C.type);case ie:return Pn("Lazy");case V:return Pn("Suspense");case W:return Pn("SuspenseList");case S:case b:case K:return na(C.type);case k:return na(C.type.render);case oe:return na(C.type._render);case E:return Xn(C.type);default:return""}}function bl(C){try{var y="",B=C;do y+=Io(B),B=B.return;while(B);return y}catch(U){return`
Error generating stack: `+U.message+`
`+U.stack}}function Zn(C,y,B){var U=y.displayName||y.name||"";return C.displayName||(U!==""?B+"("+U+")":B)}function Sl(C){return C.displayName||"Context"}function Vi(C){if(C==null)return null;if(typeof C.tag=="number"&&x("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof C=="function")return C.displayName||C.name||null;if(typeof C=="string")return C;switch(C){case os:return"Fragment";case ki:return"Portal";case hi:return"Profiler";case bs:return"StrictMode";case ks:return"Suspense";case hr:return"SuspenseList"}if(typeof C=="object")switch(C.$$typeof){case li:var y=C;return Sl(y)+".Consumer";case Oi:var B=C;return Sl(B._context)+".Provider";case Xs:return Zn(C,C.render,"ForwardRef");case fr:return Vi(C.type);case fi:return Vi(C._render);case We:{var U=C,Z=U._payload,g=U._init;try{return Vi(g(Z))}catch{return null}}}return null}var yl=d.ReactDebugCurrentFrame,Sn=null,Kn=!1;function Po(){{if(Sn===null)return null;var C=Sn._debugOwner;if(C!==null&&typeof C<"u")return Vi(C.type)}return null}function Wi(){return Sn===null?"":bl(Sn)}function yn(){yl.getCurrentStack=null,Sn=null,Kn=!1}function sr(C){yl.getCurrentStack=Wi,Sn=C,Kn=!1}function qn(C){Kn=C}function rl(){return Kn}function Rn(C){return""+C}function Or(C){switch(typeof C){case"boolean":case"number":case"object":case"string":case"undefined":return C;default:return""}}var fn={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0};function $r(C,y){fn[y.type]||y.onChange||y.onInput||y.readOnly||y.disabled||y.value==null||x("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."),y.onChange||y.readOnly||y.disabled||y.checked==null||x("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")}function Wc(C){var y=C.type,B=C.nodeName;return B&&B.toLowerCase()==="input"&&(y==="checkbox"||y==="radio")}function Qn(C){return C._valueTracker}function Dn(C){C._valueTracker=null}function Xu(C){var y="";return C&&(Wc(C)?y=C.checked?"true":"false":y=C.value),y}function Ie(C){var y=Wc(C)?"checked":"value",B=Object.getOwnPropertyDescriptor(C.constructor.prototype,y),U=""+C[y];if(!(C.hasOwnProperty(y)||typeof B>"u"||typeof B.get!="function"||typeof B.set!="function")){var Z=B.get,g=B.set;Object.defineProperty(C,y,{configurable:!0,get:function(){return Z.call(this)},set:function(L){U=""+L,g.call(this,L)}}),Object.defineProperty(C,y,{enumerable:B.enumerable});var v={getValue:function(){return U},setValue:function(L){U=""+L},stopTracking:function(){Dn(C),delete C[y]}};return v}}function _t(C){Qn(C)||(C._valueTracker=Ie(C))}function Ht(C){if(!C)return!1;var y=Qn(C);if(!y)return!0;var B=y.getValue(),U=Xu(C);return U!==B?(y.setValue(U),!0):!1}function ti(C){if(C=C||(typeof document<"u"?document:void 0),typeof C>"u")return null;try{return C.activeElement||C.body}catch{return C.body}}var Hi=!1,Ee=!1,$e=!1,bt=!1;function Wt(C){var y=C.type==="checkbox"||C.type==="radio";return y?C.checked!=null:C.value!=null}function vi(C,y){var B=C,U=y.checked,Z=p({},y,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:U??B._wrapperState.initialChecked});return Z}function es(C,y){$r("input",y),y.checked!==void 0&&y.defaultChecked!==void 0&&!Ee&&(x("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",Po()||"A component",y.type),Ee=!0),y.value!==void 0&&y.defaultValue!==void 0&&!Hi&&(x("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",Po()||"A component",y.type),Hi=!0);var B=C,U=y.defaultValue==null?"":y.defaultValue;B._wrapperState={initialChecked:y.checked!=null?y.checked:y.defaultChecked,initialValue:Or(y.value!=null?y.value:U),controlled:Wt(y)}}function Qi(C,y){var B=C,U=y.checked;U!=null&&oi(B,"checked",U,!1)}function Ji(C,y){var B=C;{var U=Wt(y);!B._wrapperState.controlled&&U&&!bt&&(x("A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),bt=!0),B._wrapperState.controlled&&!U&&!$e&&(x("A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),$e=!0)}Qi(C,y);var Z=Or(y.value),g=y.type;if(Z!=null)g==="number"?(Z===0&&B.value===""||B.value!=Z)&&(B.value=Rn(Z)):B.value!==Rn(Z)&&(B.value=Rn(Z));else if(g==="submit"||g==="reset"){B.removeAttribute("value");return}y.hasOwnProperty("value")?rr(B,y.type,Z):y.hasOwnProperty("defaultValue")&&rr(B,y.type,Or(y.defaultValue)),y.checked==null&&y.defaultChecked!=null&&(B.defaultChecked=!!y.defaultChecked)}function Us(C,y,B){var U=C;if(y.hasOwnProperty("value")||y.hasOwnProperty("defaultValue")){var Z=y.type,g=Z==="submit"||Z==="reset";if(g&&(y.value===void 0||y.value===null))return;var v=Rn(U._wrapperState.initialValue);B||v!==U.value&&(U.value=v),U.defaultValue=v}var L=U.name;L!==""&&(U.name=""),U.defaultChecked=!U.defaultChecked,U.defaultChecked=!!U._wrapperState.initialChecked,L!==""&&(U.name=L)}function er(C,y){var B=C;Ji(B,y),Cr(B,y)}function Cr(C,y){var B=y.name;if(y.type==="radio"&&B!=null){for(var U=C;U.parentNode;)U=U.parentNode;for(var Z=U.querySelectorAll("input[name="+JSON.stringify(""+B)+'][type="radio"]'),g=0;g<Z.length;g++){var v=Z[g];if(!(v===C||v.form!==C.form)){var L=Bg(v);if(!L)throw Error("ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.");Ht(v),Ji(v,L)}}}}function rr(C,y,B){(y!=="number"||ti(C.ownerDocument)!==C)&&(B==null?C.defaultValue=Rn(C._wrapperState.initialValue):C.defaultValue!==Rn(B)&&(C.defaultValue=Rn(B)))}var xr=!1,Nn=!1;function _a(C){var y="";return f.Children.forEach(C,function(B){B!=null&&(y+=B)}),y}function Fl(C,y){typeof y.children=="object"&&y.children!==null&&f.Children.forEach(y.children,function(B){B!=null&&(typeof B=="string"||typeof B=="number"||typeof B.type=="string"&&(Nn||(Nn=!0,x("Only strings and numbers are supported as <option> children."))))}),y.selected!=null&&!xr&&(x("Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."),xr=!0)}function Ua(C,y){y.value!=null&&C.setAttribute("value",Rn(Or(y.value)))}function io(C,y){var B=p({children:void 0},y),U=_a(y.children);return U&&(B.children=U),B}var wn;wn=!1;function uu(){var C=Po();return C?`

Check the render method of \``+C+"`.":""}var Hc=["value","defaultValue"];function gd(C){{$r("select",C);for(var y=0;y<Hc.length;y++){var B=Hc[y];if(C[B]!=null){var U=Array.isArray(C[B]);C.multiple&&!U?x("The `%s` prop supplied to <select> must be an array if `multiple` is true.%s",B,uu()):!C.multiple&&U&&x("The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.%s",B,uu())}}}}function kl(C,y,B,U){var Z=C.options;if(y){for(var g=B,v={},L=0;L<g.length;L++)v["$"+g[L]]=!0;for(var z=0;z<Z.length;z++){var j=v.hasOwnProperty("$"+Z[z].value);Z[z].selected!==j&&(Z[z].selected=j),j&&U&&(Z[z].defaultSelected=!0)}}else{for(var J=Rn(Or(B)),le=null,ce=0;ce<Z.length;ce++){if(Z[ce].value===J){Z[ce].selected=!0,U&&(Z[ce].defaultSelected=!0);return}le===null&&!Z[ce].disabled&&(le=Z[ce])}le!==null&&(le.selected=!0)}}function aa(C,y){return p({},y,{value:void 0})}function hu(C,y){var B=C;gd(y),B._wrapperState={wasMultiple:!!y.multiple},y.value!==void 0&&y.defaultValue!==void 0&&!wn&&(x("Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://reactjs.org/link/controlled-components"),wn=!0)}function Ph(C,y){var B=C;B.multiple=!!y.multiple;var U=y.value;U!=null?kl(B,!!y.multiple,U,!1):y.defaultValue!=null&&kl(B,!!y.multiple,y.defaultValue,!0)}function Zu(C,y){var B=C,U=B._wrapperState.wasMultiple;B._wrapperState.wasMultiple=!!y.multiple;var Z=y.value;Z!=null?kl(B,!!y.multiple,Z,!1):U!==!!y.multiple&&(y.defaultValue!=null?kl(B,!!y.multiple,y.defaultValue,!0):kl(B,!!y.multiple,y.multiple?[]:"",!1))}function Yc(C,y){var B=C,U=y.value;U!=null&&kl(B,!!y.multiple,U,!1)}var Ku=!1;function qu(C,y){var B=C;if(y.dangerouslySetInnerHTML!=null)throw Error("`dangerouslySetInnerHTML` does not make sense on <textarea>.");var U=p({},y,{value:void 0,defaultValue:void 0,children:Rn(B._wrapperState.initialValue)});return U}function _d(C,y){var B=C;$r("textarea",y),y.value!==void 0&&y.defaultValue!==void 0&&!Ku&&(x("%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://reactjs.org/link/controlled-components",Po()||"A component"),Ku=!0);var U=y.value;if(U==null){var Z=y.children,g=y.defaultValue;if(Z!=null){x("Use the `defaultValue` or `value` props instead of setting children on <textarea>.");{if(g!=null)throw Error("If you supply `defaultValue` on a <textarea>, do not pass children.");if(Array.isArray(Z)){if(!(Z.length<=1))throw Error("<textarea> can only have at most one child.");Z=Z[0]}g=Z}}g==null&&(g=""),U=g}B._wrapperState={initialValue:Or(U)}}function Qu(C,y){var B=C,U=Or(y.value),Z=Or(y.defaultValue);if(U!=null){var g=Rn(U);g!==B.value&&(B.value=g),y.defaultValue==null&&B.defaultValue!==g&&(B.defaultValue=g)}Z!=null&&(B.defaultValue=Rn(Z))}function du(C,y){var B=C,U=B.textContent;U===B._wrapperState.initialValue&&U!==""&&U!==null&&(B.value=U)}function fu(C,y){Qu(C,y)}var Ju="http://www.w3.org/1999/xhtml",$u="http://www.w3.org/1998/Math/MathML",pu="http://www.w3.org/2000/svg",Ul={html:Ju,svg:pu};function oc(C){switch(C){case"svg":return pu;case"math":return $u;default:return Ju}}function mu(C,y){return C==null||C===Ju?oc(y):C===pu&&y==="foreignObject"?Ju:C}var r2=function(C){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(y,B,U,Z){MSApp.execUnsafeLocalFunction(function(){return C(y,B,U,Z)})}:C},lc,Xc=r2(function(C,y){if(C.namespaceURI===Ul.svg&&!("innerHTML"in C)){lc=lc||document.createElement("div"),lc.innerHTML="<svg>"+y.valueOf().toString()+"</svg>";for(var B=lc.firstChild;C.firstChild;)C.removeChild(C.firstChild);for(;B.firstChild;)C.appendChild(B.firstChild);return}C.innerHTML=y}),go=1,Wo=3,Oo=8,so=9,vd=11,ro=function(C,y){if(y){var B=C.firstChild;if(B&&B===C.lastChild&&B.nodeType===Wo){B.nodeValue=y;return}}C.textContent=y},nl={animation:["animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationTimingFunction"],background:["backgroundAttachment","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize"],backgroundPosition:["backgroundPositionX","backgroundPositionY"],border:["borderBottomColor","borderBottomStyle","borderBottomWidth","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRightColor","borderRightStyle","borderRightWidth","borderTopColor","borderTopStyle","borderTopWidth"],borderBlockEnd:["borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth"],borderBlockStart:["borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth"],borderBottom:["borderBottomColor","borderBottomStyle","borderBottomWidth"],borderColor:["borderBottomColor","borderLeftColor","borderRightColor","borderTopColor"],borderImage:["borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth"],borderInlineEnd:["borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth"],borderInlineStart:["borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth"],borderLeft:["borderLeftColor","borderLeftStyle","borderLeftWidth"],borderRadius:["borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius"],borderRight:["borderRightColor","borderRightStyle","borderRightWidth"],borderStyle:["borderBottomStyle","borderLeftStyle","borderRightStyle","borderTopStyle"],borderTop:["borderTopColor","borderTopStyle","borderTopWidth"],borderWidth:["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth"],columnRule:["columnRuleColor","columnRuleStyle","columnRuleWidth"],columns:["columnCount","columnWidth"],flex:["flexBasis","flexGrow","flexShrink"],flexFlow:["flexDirection","flexWrap"],font:["fontFamily","fontFeatureSettings","fontKerning","fontLanguageOverride","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition","fontWeight","lineHeight"],fontVariant:["fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition"],gap:["columnGap","rowGap"],grid:["gridAutoColumns","gridAutoFlow","gridAutoRows","gridTemplateAreas","gridTemplateColumns","gridTemplateRows"],gridArea:["gridColumnEnd","gridColumnStart","gridRowEnd","gridRowStart"],gridColumn:["gridColumnEnd","gridColumnStart"],gridColumnGap:["columnGap"],gridGap:["columnGap","rowGap"],gridRow:["gridRowEnd","gridRowStart"],gridRowGap:["rowGap"],gridTemplate:["gridTemplateAreas","gridTemplateColumns","gridTemplateRows"],listStyle:["listStyleImage","listStylePosition","listStyleType"],margin:["marginBottom","marginLeft","marginRight","marginTop"],marker:["markerEnd","markerMid","markerStart"],mask:["maskClip","maskComposite","maskImage","maskMode","maskOrigin","maskPositionX","maskPositionY","maskRepeat","maskSize"],maskPosition:["maskPositionX","maskPositionY"],outline:["outlineColor","outlineStyle","outlineWidth"],overflow:["overflowX","overflowY"],padding:["paddingBottom","paddingLeft","paddingRight","paddingTop"],placeContent:["alignContent","justifyContent"],placeItems:["alignItems","justifyItems"],placeSelf:["alignSelf","justifySelf"],textDecoration:["textDecorationColor","textDecorationLine","textDecorationStyle"],textEmphasis:["textEmphasisColor","textEmphasisStyle"],transition:["transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction"],wordWrap:["overflowWrap"]},va={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0};function _o(C,y){return C+y.charAt(0).toUpperCase()+y.substring(1)}var eh=["Webkit","ms","Moz","O"];Object.keys(va).forEach(function(C){eh.forEach(function(y){va[_o(y,C)]=va[C]})});function cc(C,y,B){var U=y==null||typeof y=="boolean"||y==="";return U?"":!B&&typeof y=="number"&&y!==0&&!(va.hasOwnProperty(C)&&va[C])?y+"px":(""+y).trim()}var Ad=/([A-Z])/g,gu=/^ms-/;function Oh(C){return C.replace(Ad,"-$1").toLowerCase().replace(gu,"-ms-")}var Rh=function(){};{var th=/^(?:webkit|moz|o)[A-Z]/,n1=/^-ms-/,a1=/-(.)/g,Cd=/;\s*$/,_u={},Dh={},xd=!1,o1=!1,l1=function(C){return C.replace(a1,function(y,B){return B.toUpperCase()})},vu=function(C){_u.hasOwnProperty(C)&&_u[C]||(_u[C]=!0,x("Unsupported style property %s. Did you mean %s?",C,l1(C.replace(n1,"ms-"))))},ih=function(C){_u.hasOwnProperty(C)&&_u[C]||(_u[C]=!0,x("Unsupported vendor-prefixed style property %s. Did you mean %s?",C,C.charAt(0).toUpperCase()+C.slice(1)))},n2=function(C,y){Dh.hasOwnProperty(y)&&Dh[y]||(Dh[y]=!0,x(`Style property values shouldn't contain a semicolon. Try "%s: %s" instead.`,C,y.replace(Cd,"")))},c1=function(C,y){xd||(xd=!0,x("`NaN` is an invalid value for the `%s` css style property.",C))},mf=function(C,y){o1||(o1=!0,x("`Infinity` is an invalid value for the `%s` css style property.",C))};Rh=function(C,y){C.indexOf("-")>-1?vu(C):th.test(C)?ih(C):Cd.test(y)&&n2(C,y),typeof y=="number"&&(isNaN(y)?c1(C,y):isFinite(y)||mf(C,y))}}var bd=Rh;function a2(C){{var y="",B="";for(var U in C)if(C.hasOwnProperty(U)){var Z=C[U];if(Z!=null){var g=U.indexOf("--")===0;y+=B+(g?U:Oh(U))+":",y+=cc(U,Z,g),B=";"}}return y||null}}function sh(C,y){var B=C.style;for(var U in y)if(y.hasOwnProperty(U)){var Z=U.indexOf("--")===0;Z||bd(U,y[U]);var g=cc(U,y[U],Z);U==="float"&&(U="cssFloat"),Z?B.setProperty(U,g):B[U]=g}}function o2(C){return C==null||typeof C=="boolean"||C===""}function l2(C){var y={};for(var B in C)for(var U=nl[B]||[B],Z=0;Z<U.length;Z++)y[U[Z]]=B;return y}function Nh(C,y){{if(!y)return;var B=l2(C),U=l2(y),Z={};for(var g in B){var v=B[g],L=U[g];if(L&&v!==L){var z=v+","+L;if(Z[z])continue;Z[z]=!0,x("%s a style property during rerender (%s) when a conflicting property is set (%s) can lead to styling bugs. To avoid this, don't mix shorthand and non-shorthand properties for the same value; instead, replace the shorthand with separate values.",o2(C[v])?"Removing":"Updating",v,L)}}}}var u1={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},wh=p({menuitem:!0},u1),c2="__html";function Bh(C,y){if(y){if(wh[C]&&!(y.children==null&&y.dangerouslySetInnerHTML==null))throw Error(C+" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.");if(y.dangerouslySetInnerHTML!=null){if(y.children!=null)throw Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");if(!(typeof y.dangerouslySetInnerHTML=="object"&&c2 in y.dangerouslySetInnerHTML))throw Error("`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://reactjs.org/link/dangerously-set-inner-html for more information.")}if(!y.suppressContentEditableWarning&&y.contentEditable&&y.children!=null&&x("A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."),!(y.style==null||typeof y.style=="object"))throw Error("The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.")}}function Zc(C,y){if(C.indexOf("-")===-1)return typeof y.is=="string";switch(C){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Au={accept:"accept",acceptcharset:"acceptCharset","accept-charset":"acceptCharset",accesskey:"accessKey",action:"action",allowfullscreen:"allowFullScreen",alt:"alt",as:"as",async:"async",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",capture:"capture",cellpadding:"cellPadding",cellspacing:"cellSpacing",challenge:"challenge",charset:"charSet",checked:"checked",children:"children",cite:"cite",class:"className",classid:"classID",classname:"className",cols:"cols",colspan:"colSpan",content:"content",contenteditable:"contentEditable",contextmenu:"contextMenu",controls:"controls",controlslist:"controlsList",coords:"coords",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",data:"data",datetime:"dateTime",default:"default",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",defer:"defer",dir:"dir",disabled:"disabled",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback",download:"download",draggable:"draggable",enctype:"encType",enterkeyhint:"enterKeyHint",for:"htmlFor",form:"form",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",headers:"headers",height:"height",hidden:"hidden",high:"high",href:"href",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",id:"id",innerhtml:"innerHTML",inputmode:"inputMode",integrity:"integrity",is:"is",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",kind:"kind",label:"label",lang:"lang",list:"list",loop:"loop",low:"low",manifest:"manifest",marginwidth:"marginWidth",marginheight:"marginHeight",max:"max",maxlength:"maxLength",media:"media",mediagroup:"mediaGroup",method:"method",min:"min",minlength:"minLength",multiple:"multiple",muted:"muted",name:"name",nomodule:"noModule",nonce:"nonce",novalidate:"noValidate",open:"open",optimum:"optimum",pattern:"pattern",placeholder:"placeholder",playsinline:"playsInline",poster:"poster",preload:"preload",profile:"profile",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rel:"rel",required:"required",reversed:"reversed",role:"role",rows:"rows",rowspan:"rowSpan",sandbox:"sandbox",scope:"scope",scoped:"scoped",scrolling:"scrolling",seamless:"seamless",selected:"selected",shape:"shape",size:"size",sizes:"sizes",span:"span",spellcheck:"spellCheck",src:"src",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",start:"start",step:"step",style:"style",summary:"summary",tabindex:"tabIndex",target:"target",title:"title",type:"type",usemap:"useMap",value:"value",width:"width",wmode:"wmode",wrap:"wrap",about:"about",accentheight:"accentHeight","accent-height":"accentHeight",accumulate:"accumulate",additive:"additive",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",alphabetic:"alphabetic",amplitude:"amplitude",arabicform:"arabicForm","arabic-form":"arabicForm",ascent:"ascent",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",azimuth:"azimuth",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",bbox:"bbox",begin:"begin",bias:"bias",by:"by",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clip:"clip",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",color:"color",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",cursor:"cursor",cx:"cx",cy:"cy",d:"d",datatype:"datatype",decelerate:"decelerate",descent:"descent",diffuseconstant:"diffuseConstant",direction:"direction",display:"display",divisor:"divisor",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",dur:"dur",dx:"dx",dy:"dy",edgemode:"edgeMode",elevation:"elevation",enablebackground:"enableBackground","enable-background":"enableBackground",end:"end",exponent:"exponent",externalresourcesrequired:"externalResourcesRequired",fill:"fill",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filter:"filter",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",focusable:"focusable",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",format:"format",from:"from",fx:"fx",fy:"fy",g1:"g1",g2:"g2",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",hanging:"hanging",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",ideographic:"ideographic",imagerendering:"imageRendering","image-rendering":"imageRendering",in2:"in2",in:"in",inlist:"inlist",intercept:"intercept",k1:"k1",k2:"k2",k3:"k3",k4:"k4",k:"k",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",kerning:"kerning",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",local:"local",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",mask:"mask",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",mathematical:"mathematical",mode:"mode",numoctaves:"numOctaves",offset:"offset",opacity:"opacity",operator:"operator",order:"order",orient:"orient",orientation:"orientation",origin:"origin",overflow:"overflow",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder",panose1:"panose1","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",points:"points",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",prefix:"prefix",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",property:"property",r:"r",radius:"radius",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",resource:"resource",restart:"restart",result:"result",results:"results",rotate:"rotate",rx:"rx",ry:"ry",scale:"scale",security:"security",seed:"seed",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",slope:"slope",spacing:"spacing",specularconstant:"specularConstant",specularexponent:"specularExponent",speed:"speed",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stemh:"stemh",stemv:"stemv",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",string:"string",stroke:"stroke",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",to:"to",transform:"transform",typeof:"typeof",u1:"u1",u2:"u2",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicode:"unicode",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",values:"values",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",version:"version",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",visibility:"visibility",vmathematical:"vMathematical","v-mathematical":"vMathematical",vocab:"vocab",widths:"widths",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",x1:"x1",x2:"x2",x:"x",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang",xmlns:"xmlns","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",y1:"y1",y2:"y2",y:"y",ychannelselector:"yChannelSelector",z:"z",zoomandpan:"zoomAndPan"},u2={"aria-current":0,"aria-details":0,"aria-disabled":0,"aria-hidden":0,"aria-invalid":0,"aria-keyshortcuts":0,"aria-label":0,"aria-roledescription":0,"aria-autocomplete":0,"aria-checked":0,"aria-expanded":0,"aria-haspopup":0,"aria-level":0,"aria-modal":0,"aria-multiline":0,"aria-multiselectable":0,"aria-orientation":0,"aria-placeholder":0,"aria-pressed":0,"aria-readonly":0,"aria-required":0,"aria-selected":0,"aria-sort":0,"aria-valuemax":0,"aria-valuemin":0,"aria-valuenow":0,"aria-valuetext":0,"aria-atomic":0,"aria-busy":0,"aria-live":0,"aria-relevant":0,"aria-dropeffect":0,"aria-grabbed":0,"aria-activedescendant":0,"aria-colcount":0,"aria-colindex":0,"aria-colspan":0,"aria-controls":0,"aria-describedby":0,"aria-errormessage":0,"aria-flowto":0,"aria-labelledby":0,"aria-owns":0,"aria-posinset":0,"aria-rowcount":0,"aria-rowindex":0,"aria-rowspan":0,"aria-setsize":0},Kc={},zh=new RegExp("^(aria)-["+Me+"]*$"),uc=new RegExp("^(aria)[A-Z]["+Me+"]*$"),Cu=Object.prototype.hasOwnProperty;function h1(C,y){{if(Cu.call(Kc,y)&&Kc[y])return!0;if(uc.test(y)){var B="aria-"+y.slice(4).toLowerCase(),U=u2.hasOwnProperty(B)?B:null;if(U==null)return x("Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.",y),Kc[y]=!0,!0;if(y!==U)return x("Invalid ARIA attribute `%s`. Did you mean `%s`?",y,U),Kc[y]=!0,!0}if(zh.test(y)){var Z=y.toLowerCase(),g=u2.hasOwnProperty(Z)?Z:null;if(g==null)return Kc[y]=!0,!1;if(y!==g)return x("Unknown ARIA attribute `%s`. Did you mean `%s`?",y,g),Kc[y]=!0,!0}}return!0}function xu(C,y){{var B=[];for(var U in y){var Z=h1(C,U);Z||B.push(U)}var g=B.map(function(v){return"`"+v+"`"}).join(", ");B.length===1?x("Invalid aria prop %s on <%s> tag. For details, see https://reactjs.org/link/invalid-aria-props",g,C):B.length>1&&x("Invalid aria props %s on <%s> tag. For details, see https://reactjs.org/link/invalid-aria-props",g,C)}}function gf(C,y){Zc(C,y)||xu(C,y)}var Sd=!1;function Fh(C,y){{if(C!=="input"&&C!=="textarea"&&C!=="select")return;y!=null&&y.value===null&&!Sd&&(Sd=!0,C==="select"&&y.multiple?x("`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.",C):x("`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.",C))}}var h2=function(){};{var vo={},d2=Object.prototype.hasOwnProperty,d1=/^on./,rh=/^on[^A-Z]/,f2=new RegExp("^(aria)-["+Me+"]*$"),Ao=new RegExp("^(aria)[A-Z]["+Me+"]*$");h2=function(C,y,B,U){if(d2.call(vo,y)&&vo[y])return!0;var Z=y.toLowerCase();if(Z==="onfocusin"||Z==="onfocusout")return x("React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React."),vo[y]=!0,!0;if(U!=null){var g=U.registrationNameDependencies,v=U.possibleRegistrationNames;if(g.hasOwnProperty(y))return!0;var L=v.hasOwnProperty(Z)?v[Z]:null;if(L!=null)return x("Invalid event handler property `%s`. Did you mean `%s`?",y,L),vo[y]=!0,!0;if(d1.test(y))return x("Unknown event handler property `%s`. It will be ignored.",y),vo[y]=!0,!0}else if(d1.test(y))return rh.test(y)&&x("Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.",y),vo[y]=!0,!0;if(f2.test(y)||Ao.test(y))return!0;if(Z==="innerhtml")return x("Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."),vo[y]=!0,!0;if(Z==="aria")return x("The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead."),vo[y]=!0,!0;if(Z==="is"&&B!==null&&B!==void 0&&typeof B!="string")return x("Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.",typeof B),vo[y]=!0,!0;if(typeof B=="number"&&isNaN(B))return x("Received NaN for the `%s` attribute. If this is expected, cast the value to a string.",y),vo[y]=!0,!0;var z=bi(y),j=z!==null&&z.type===ct;if(Au.hasOwnProperty(Z)){var J=Au[Z];if(J!==y)return x("Invalid DOM property `%s`. Did you mean `%s`?",y,J),vo[y]=!0,!0}else if(!j&&y!==Z)return x("React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.",y,Z),vo[y]=!0,!0;return typeof B=="boolean"&&Pi(y,B,z,!1)?(B?x('Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.',B,y,y,B,y):x('Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',B,y,y,B,y,y,y),vo[y]=!0,!0):j?!0:Pi(y,B,z,!1)?(vo[y]=!0,!1):((B==="false"||B==="true")&&z!==null&&z.type===xt&&(x("Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?",B,y,B==="false"?"The browser will interpret it as a truthy value.":'Although this works, it will not work as expected if you pass the string "false".',y,B),vo[y]=!0),!0)}}var p2=function(C,y,B){{var U=[];for(var Z in y){var g=h2(C,Z,y[Z],B);g||U.push(Z)}var v=U.map(function(L){return"`"+L+"`"}).join(", ");U.length===1?x("Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://reactjs.org/link/attribute-behavior ",v,C):U.length>1&&x("Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://reactjs.org/link/attribute-behavior ",v,C)}};function m2(C,y,B){Zc(C,y)||p2(C,y,B)}var f1=1,kh=2,ye=4,Be=16,Ze=f1|kh|ye;function tt(C){var y=C.target||C.srcElement||window;return y.correspondingUseElement&&(y=y.correspondingUseElement),y.nodeType===Wo?y.parentNode:y}var gt=null,pe=null,Ce=null;function De(C){var y=Dd(C);if(y){if(typeof gt!="function")throw Error("setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.");var B=y.stateNode;if(B){var U=Bg(B);gt(y.stateNode,y.type,U)}}}function Xe(C){gt=C}function Je(C){pe?Ce?Ce.push(C):Ce=[C]:pe=C}function vt(){return pe!==null||Ce!==null}function Gt(){if(pe){var C=pe,y=Ce;if(pe=null,Ce=null,De(C),y)for(var B=0;B<y.length;B++)De(y[B])}}var ai=function(C,y){return C(y)},As=function(C,y,B,U,Z){return C(y,B,U,Z)},Cs=function(){},zs=ai,Ys=!1,tr=!1;function Wr(){var C=vt();C&&(Cs(),Gt())}function ja(C,y){if(Ys)return C(y);Ys=!0;try{return ai(C,y)}finally{Ys=!1,Wr()}}function Ml(C,y,B){if(tr)return C(y,B);tr=!0;try{return zs(C,y,B)}finally{tr=!1,Wr()}}function Jn(C,y,B,U,Z){var g=Ys;Ys=!0;try{return As(C,y,B,U,Z)}finally{Ys=g,Ys||Wr()}}function hc(C){Ys||Cs()}function Ro(C,y,B,U){ai=C,As=y,Cs=B,zs=U}function qc(C){return C==="button"||C==="input"||C==="select"||C==="textarea"}function g2(C,y,B){switch(C){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":return!!(B.disabled&&qc(y));default:return!1}}function Uh(C,y){var B=C.stateNode;if(B===null)return null;var U=Bg(B);if(U===null)return null;var Z=U[y];if(g2(y,C.type,U))return null;if(!(!Z||typeof Z=="function"))throw Error("Expected `"+y+"` listener to be a function, instead got a value of `"+typeof Z+"` type.");return Z}var x3=!1;if(Ke)try{var p1={};Object.defineProperty(p1,"passive",{get:function(){x3=!0}}),window.addEventListener("test",p1,p1),window.removeEventListener("test",p1,p1)}catch{x3=!1}function E_(C,y,B,U,Z,g,v,L,z){var j=Array.prototype.slice.call(arguments,3);try{y.apply(B,j)}catch(J){this.onError(J)}}var Pb=E_;if(typeof window<"u"&&typeof window.dispatchEvent=="function"&&typeof document<"u"&&typeof document.createEvent=="function"){var _f=document.createElement("react");Pb=function(y,B,U,Z,g,v,L,z,j){if(!(typeof document<"u"))throw Error("The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.");var J=document.createEvent("Event"),le=!1,ce=!0,_e=window.event,Oe=Object.getOwnPropertyDescriptor(window,"event");function Fe(){_f.removeEventListener(Ft,it,!1),typeof window.event<"u"&&window.hasOwnProperty("event")&&(window.event=_e)}var pt=Array.prototype.slice.call(arguments,3);function it(){le=!0,Fe(),B.apply(U,pt),ce=!1}var Mt,Jt=!1,Ai=!1;function Ct(ut){if(Mt=ut.error,Jt=!0,Mt===null&&ut.colno===0&&ut.lineno===0&&(Ai=!0),ut.defaultPrevented&&Mt!=null&&typeof Mt=="object")try{Mt._suppressLogging=!0}catch{}}var Ft="react-"+(y||"invokeguardedcallback");if(window.addEventListener("error",Ct),_f.addEventListener(Ft,it,!1),J.initEvent(Ft,!1,!1),_f.dispatchEvent(J),Oe&&Object.defineProperty(window,"event",Oe),le&&ce&&(Jt?Ai&&(Mt=new Error("A cross-origin error was thrown. React doesn't have access to the actual error object in development. See https://reactjs.org/link/crossorigin-error for more information.")):Mt=new Error(`An error was thrown inside one of your components, but React doesn't know what it was. This is likely due to browser flakiness. React does its best to preserve the "Pause on exceptions" behavior of the DevTools, which requires some DEV-mode only tricks. It's possible that these don't work in your browser. Try triggering the error in production mode, or switching to a modern browser. If you suspect that this is actually an issue with React, please file an issue.`),this.onError(Mt)),window.removeEventListener("error",Ct),!le)return Fe(),E_.apply(this,arguments)}}var S5=Pb,yd=!1,b3=null,B4=!1,S3=null,fM={onError:function(C){yd=!0,b3=C}};function dc(C,y,B,U,Z,g,v,L,z){yd=!1,b3=null,S5.apply(fM,arguments)}function z4(C,y,B,U,Z,g,v,L,z){if(dc.apply(this,arguments),yd){var j=m1();B4||(B4=!0,S3=j)}}function y3(){if(B4){var C=S3;throw B4=!1,S3=null,C}}function Md(){return yd}function m1(){if(yd){var C=b3;return yd=!1,b3=null,C}else throw Error("clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.")}function fc(C){return C._reactInternals}function pM(C){return C._reactInternals!==void 0}function y5(C,y){C._reactInternals=y}var pn=0,jl=1,oa=2,Aa=4,mM=6,mn=8,Ed=16,no=32,Zs=64,T_=128,Qc=256,vf=512,M3=8192,en=1024,F4=1028,B0=2047,Af=2048,bu=4096,Td=16384,k4=d.ReactCurrentOwner;function z0(C){var y=C,B=C;if(C.alternate)for(;y.return;)y=y.return;else{var U=y;do y=U,(y.flags&(oa|en))!==pn&&(B=y.return),U=y.return;while(U)}return y.tag===M?B:null}function U4(C){if(C.tag===V){var y=C.memoizedState;if(y===null){var B=C.alternate;B!==null&&(y=B.memoizedState)}if(y!==null)return y.dehydrated}return null}function Ld(C){return C.tag===M?C.stateNode.containerInfo:null}function M5(C){return z0(C)===C}function L_(C){{var y=k4.current;if(y!==null&&y.tag===E){var B=y,U=B.stateNode;U._warnedAboutRefsInRender||x("%s is accessing isMounted inside its render() function. render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",Vi(B.type)||"A component"),U._warnedAboutRefsInRender=!0}}var Z=fc(C);return Z?z0(Z)===Z:!1}function _2(C){if(z0(C)!==C)throw Error("Unable to find node on an unmounted component.")}function E5(C){var y=C.alternate;if(!y){var B=z0(C);if(B===null)throw Error("Unable to find node on an unmounted component.");return B!==C?null:C}for(var U=C,Z=y;;){var g=U.return;if(g===null)break;var v=g.alternate;if(v===null){var L=g.return;if(L!==null){U=Z=L;continue}break}if(g.child===v.child){for(var z=g.child;z;){if(z===U)return _2(g),C;if(z===Z)return _2(g),y;z=z.sibling}throw Error("Unable to find node on an unmounted component.")}if(U.return!==Z.return)U=g,Z=v;else{for(var j=!1,J=g.child;J;){if(J===U){j=!0,U=g,Z=v;break}if(J===Z){j=!0,Z=g,U=v;break}J=J.sibling}if(!j){for(J=v.child;J;){if(J===U){j=!0,U=v,Z=g;break}if(J===Z){j=!0,Z=v,U=g;break}J=J.sibling}if(!j)throw Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.")}}if(U.alternate!==Z)throw Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.")}if(U.tag!==M)throw Error("Unable to find node on an unmounted component.");return U.stateNode.current===U?C:y}function T5(C){var y=E5(C);if(!y)return null;for(var B=y;;){if(B.tag===O||B.tag===R)return B;if(B.child){B.child.return=B,B=B.child;continue}if(B===y)return null;for(;!B.sibling;){if(!B.return||B.return===y)return null;B=B.return}B.sibling.return=B.return,B=B.sibling}return null}function gM(C){var y=E5(C);if(!y)return null;for(var B=y;;){if(B.tag===O||B.tag===R||he)return B;if(B.child&&B.tag!==T){B.child.return=B,B=B.child;continue}if(B===y)return null;for(;!B.sibling;){if(!B.return||B.return===y)return null;B=B.return}B.sibling.return=B.return,B=B.sibling}return null}function Ob(C,y){for(var B=y,U=C.alternate;B!==null;){if(B===C||B===U)return!0;B=B.return}return!1}var I_;function Rb(C){I_=C}var j4;function _M(C){j4=C}var L5;function I5(C){L5=C}var Db;function P_(C){Db=C}var P5=!1,g1=[],v2=null,jh=null,Cf=null,F0=new Map,nh=new Map,Vh=[];function Gh(){return g1.length>0}var xf=["mousedown","mouseup","touchcancel","touchend","touchstart","auxclick","dblclick","pointercancel","pointerdown","pointerup","dragend","dragstart","drop","compositionend","compositionstart","keydown","keypress","keyup","input","textInput","copy","cut","paste","click","change","contextmenu","reset","submit"];function E3(C){return xf.indexOf(C)>-1}function T3(C,y,B,U,Z){return{blockedOn:C,domEventName:y,eventSystemFlags:B|Be,nativeEvent:Z,targetContainers:[U]}}function L3(C,y,B,U,Z){var g=T3(C,y,B,U,Z);g1.push(g)}function O5(C,y){switch(C){case"focusin":case"focusout":v2=null;break;case"dragenter":case"dragleave":jh=null;break;case"mouseover":case"mouseout":Cf=null;break;case"pointerover":case"pointerout":{var B=y.pointerId;F0.delete(B);break}case"gotpointercapture":case"lostpointercapture":{var U=y.pointerId;nh.delete(U);break}}}function V4(C,y,B,U,Z,g){if(C===null||C.nativeEvent!==g){var v=T3(y,B,U,Z,g);if(y!==null){var L=Dd(y);L!==null&&j4(L)}return v}C.eventSystemFlags|=U;var z=C.targetContainers;return Z!==null&&z.indexOf(Z)===-1&&z.push(Z),C}function Nb(C,y,B,U,Z){switch(y){case"focusin":{var g=Z;return v2=V4(v2,C,y,B,U,g),!0}case"dragenter":{var v=Z;return jh=V4(jh,C,y,B,U,v),!0}case"mouseover":{var L=Z;return Cf=V4(Cf,C,y,B,U,L),!0}case"pointerover":{var z=Z,j=z.pointerId;return F0.set(j,V4(F0.get(j)||null,C,y,B,U,z)),!0}case"gotpointercapture":{var J=Z,le=J.pointerId;return nh.set(le,V4(nh.get(le)||null,C,y,B,U,J)),!0}}return!1}function wb(C){var y=M2(C.target);if(y!==null){var B=z0(y);if(B!==null){var U=B.tag;if(U===V){var Z=U4(B);if(Z!==null){C.blockedOn=Z,Db(C.lanePriority,function(){m.unstable_runWithPriority(C.priority,function(){L5(B)})});return}}else if(U===M){var g=B.stateNode;if(g.hydrate){C.blockedOn=Ld(B);return}}}}C.blockedOn=null}function G4(C){if(C.blockedOn!==null)return!1;for(var y=C.targetContainers;y.length>0;){var B=y[0],U=Y5(C.domEventName,C.eventSystemFlags,B,C.nativeEvent);if(U!==null){var Z=Dd(U);return Z!==null&&j4(Z),C.blockedOn=U,!1}y.shift()}return!0}function R5(C,y,B){G4(C)&&B.delete(y)}function W4(){for(P5=!1;g1.length>0;){var C=g1[0];if(C.blockedOn!==null){var y=Dd(C.blockedOn);y!==null&&I_(y);break}for(var B=C.targetContainers;B.length>0;){var U=B[0],Z=Y5(C.domEventName,C.eventSystemFlags,U,C.nativeEvent);if(Z!==null){C.blockedOn=Z;break}B.shift()}C.blockedOn===null&&g1.shift()}v2!==null&&G4(v2)&&(v2=null),jh!==null&&G4(jh)&&(jh=null),Cf!==null&&G4(Cf)&&(Cf=null),F0.forEach(R5),nh.forEach(R5)}function H4(C,y){C.blockedOn===y&&(C.blockedOn=null,P5||(P5=!0,m.unstable_scheduleCallback(m.unstable_NormalPriority,W4)))}function Bb(C){if(g1.length>0){H4(g1[0],C);for(var y=1;y<g1.length;y++){var B=g1[y];B.blockedOn===C&&(B.blockedOn=null)}}v2!==null&&H4(v2,C),jh!==null&&H4(jh,C),Cf!==null&&H4(Cf,C);var U=function(L){return H4(L,C)};F0.forEach(U),nh.forEach(U);for(var Z=0;Z<Vh.length;Z++){var g=Vh[Z];g.blockedOn===C&&(g.blockedOn=null)}for(;Vh.length>0;){var v=Vh[0];if(v.blockedOn!==null)break;wb(v),v.blockedOn===null&&Vh.shift()}}var A2=0,D5=1,N5=2;function bf(C,y){var B={};return B[C.toLowerCase()]=y.toLowerCase(),B["Webkit"+C]="webkit"+y,B["Moz"+C]="moz"+y,B}var k0={animationend:bf("Animation","AnimationEnd"),animationiteration:bf("Animation","AnimationIteration"),animationstart:bf("Animation","AnimationStart"),transitionend:bf("Transition","TransitionEnd")},Sf={},O_={};Ke&&(O_=document.createElement("div").style,"AnimationEvent"in window||(delete k0.animationend.animation,delete k0.animationiteration.animation,delete k0.animationstart.animation),"TransitionEvent"in window||delete k0.transitionend.transition);function I3(C){if(Sf[C])return Sf[C];if(!k0[C])return C;var y=k0[C];for(var B in y)if(y.hasOwnProperty(B)&&B in O_)return Sf[C]=y[B];return C}var P3=I3("animationend"),U0=I3("animationiteration"),R_=I3("animationstart"),D_=I3("transitionend"),Y4=new Map,X4=new Map,zb=["cancel","cancel","click","click","close","close","contextmenu","contextMenu","copy","copy","cut","cut","auxclick","auxClick","dblclick","doubleClick","dragend","dragEnd","dragstart","dragStart","drop","drop","focusin","focus","focusout","blur","input","input","invalid","invalid","keydown","keyDown","keypress","keyPress","keyup","keyUp","mousedown","mouseDown","mouseup","mouseUp","paste","paste","pause","pause","play","play","pointercancel","pointerCancel","pointerdown","pointerDown","pointerup","pointerUp","ratechange","rateChange","reset","reset","seeked","seeked","submit","submit","touchcancel","touchCancel","touchend","touchEnd","touchstart","touchStart","volumechange","volumeChange"],Fb=["change","selectionchange","textInput","compositionstart","compositionend","compositionupdate"],kb=["drag","drag","dragenter","dragEnter","dragexit","dragExit","dragleave","dragLeave","dragover","dragOver","mousemove","mouseMove","mouseout","mouseOut","mouseover","mouseOver","pointermove","pointerMove","pointerout","pointerOut","pointerover","pointerOver","scroll","scroll","toggle","toggle","touchmove","touchMove","wheel","wheel"],Ub=["abort","abort",P3,"animationEnd",U0,"animationIteration",R_,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",D_,"transitionEnd","waiting","waiting"];function Z4(C,y){for(var B=0;B<C.length;B+=2){var U=C[B],Z=C[B+1],g=Z[0].toUpperCase()+Z.slice(1),v="on"+g;X4.set(U,y),Y4.set(U,v),st(v,[U])}}function vM(C,y){for(var B=0;B<C.length;B++)X4.set(C[B],y)}function jb(C){var y=X4.get(C);return y===void 0?N5:y}function AM(){Z4(zb,A2),Z4(kb,D5),Z4(Ub,N5),vM(Fb,A2)}var Vb=m.unstable_now;if(!(_.__interactionsRef!=null&&_.__interactionsRef.current!=null))throw Error("It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at https://reactjs.org/link/profiling");var N_=99,Gb=98,w5=97,CM=96,B5=95,K4=90;Vb();var j0=15,q4=14,Wb=13,O3=12,Q4=11,Id=10,R3=9,yf=8,D3=7,J4=6,Mf=5,w_=4,C2=3,$4=2,eg=1,_1=0,Hb=31,xi=0,Vl=0,Bn=1,Wh=2,z5=4,Ci=24,Jc=32,zn=192,N3=256,tg=3584,ig=4096,V0=4186112,sg=62914560,Ef=33554432,rg=67108864,F5=134217727,G0=134217728,W0=805306368,pc=1073741824,Va=-1;function Yb(C){}var la=yf;function x2(C){if((Bn&C)!==xi)return la=j0,Bn;if((Wh&C)!==xi)return la=q4,Wh;if((z5&C)!==xi)return la=Wb,z5;var y=Ci&C;if(y!==xi)return la=O3,y;if((C&Jc)!==xi)return la=Q4,Jc;var B=zn&C;if(B!==xi)return la=Id,B;if((C&N3)!==xi)return la=R3,N3;var U=tg&C;if(U!==xi)return la=yf,U;if((C&ig)!==xi)return la=D3,ig;var Z=V0&C;if(Z!==xi)return la=J4,Z;var g=sg&C;if(g!==xi)return la=Mf,g;if(C&rg)return la=w_,rg;if((C&G0)!==xi)return la=C2,G0;var v=W0&C;return v!==xi?(la=$4,v):(pc&C)!==xi?(la=eg,pc):(x("Should have found matching lanes. This is a bug in React."),la=yf,C)}function v1(C){switch(C){case N_:return j0;case Gb:return Id;case w5:case CM:return yf;case B5:return $4;default:return _1}}function Co(C){switch(C){case j0:case q4:return N_;case Wb:case O3:case Q4:case Id:return Gb;case R3:case yf:case D3:case J4:case w_:case Mf:return w5;case C2:case $4:case eg:return B5;case _1:return K4;default:throw Error("Invalid update priority: "+C+". This is a bug in React.")}}function ng(C,y){var B=C.pendingLanes;if(B===xi)return la=_1,xi;var U=xi,Z=_1,g=C.expiredLanes,v=C.suspendedLanes,L=C.pingedLanes;if(g!==xi)U=g,Z=la=j0;else{var z=B&F5;if(z!==xi){var j=z&~v;if(j!==xi)U=x2(j),Z=la;else{var J=z&L;J!==xi&&(U=x2(J),Z=la)}}else{var le=B&~v;le!==xi?(U=x2(le),Z=la):L!==xi&&(U=x2(L),Z=la)}}if(U===xi)return xi;if(U=B&og(U),y!==xi&&y!==U&&(y&v)===xi){x2(y);var ce=la;if(Z<=ce)return y;la=Z}var _e=C.entangledLanes;if(_e!==xi)for(var Oe=C.entanglements,Fe=U&_e;Fe>0;){var pt=Tf(Fe),it=1<<pt;U|=Oe[pt],Fe&=~it}return U}function Ca(C,y){for(var B=C.eventTimes,U=Va;y>0;){var Z=Tf(y),g=1<<Z,v=B[Z];v>U&&(U=v),y&=~g}return U}function H0(C,y){x2(C);var B=la;return B>=Id?y+250:B>=J4?y+5e3:Va}function xM(C,y){for(var B=C.pendingLanes,U=C.suspendedLanes,Z=C.pingedLanes,g=C.expirationTimes,v=B;v>0;){var L=Tf(v),z=1<<L,j=g[L];j===Va?((z&U)===xi||(z&Z)!==xi)&&(g[L]=H0(z,y)):j<=y&&(C.expiredLanes|=z),v&=~z}}function k5(C){var y=C.pendingLanes&~pc;return y!==xi?y:y&pc?pc:xi}function ag(){return la}function Xb(C){return(C&F5)!==xi}function B_(C){return(C&sg)===C}function bM(C){return(C&V0)===C}function Y0(C,y){switch(C){case _1:break;case j0:return Bn;case q4:return Wh;case O3:{var B=$c(Ci&~y);return B===Vl?Y0(Id,y):B}case Id:{var U=$c(zn&~y);return U===Vl?Y0(yf,y):U}case yf:{var Z=$c(tg&~y);return Z===Vl&&(Z=$c(V0&~y),Z===Vl&&(Z=$c(tg))),Z}case J4:case Mf:break;case $4:var g=$c(W0&~y);return g===Vl&&(g=$c(W0)),g}throw Error("Invalid update priority: "+C+". This is a bug in React.")}function SM(C,y){var B=$c(V0&~y);return B===Vl&&(B=$c(V0&~C),B===Vl&&(B=$c(V0))),B}function U5(C){var y=$c(sg&~C);return y===Vl&&(y=$c(sg)),y}function j5(C){return C&-C}function yM(C){var y=31-qb(C);return y<0?xi:1<<y}function og(C){return(yM(C)<<1)-1}function $c(C){return j5(C)}function Tf(C){return 31-qb(C)}function MM(C){return Tf(C)}function mc(C,y){return(C&y)!==xi}function X0(C,y){return(C&y)===y}function dr(C,y){return C|y}function A1(C,y){return C&~y}function EM(C){return C}function gc(C,y){return C!==Vl&&C<y?C:y}function C1(C){for(var y=[],B=0;B<Hb;B++)y.push(C);return y}function tn(C,y,B){C.pendingLanes|=y;var U=y-1;C.suspendedLanes&=U,C.pingedLanes&=U;var Z=C.eventTimes,g=MM(y);Z[g]=B}function lg(C,y){C.suspendedLanes|=y,C.pingedLanes&=~y;for(var B=C.expirationTimes,U=y;U>0;){var Z=Tf(U),g=1<<Z;B[Z]=Va,U&=~g}}function Zb(C,y,B){C.pingedLanes|=C.suspendedLanes&y}function TM(C){C.expiredLanes|=Ci&C.pendingLanes}function z_(C){return(C&Ci)!==xi}function cg(C,y){C.mutableReadLanes|=y&C.pendingLanes}function V5(C,y){var B=C.pendingLanes&~y;C.pendingLanes=y,C.suspendedLanes=0,C.pingedLanes=0,C.expiredLanes&=y,C.mutableReadLanes&=y,C.entangledLanes&=y;for(var U=C.entanglements,Z=C.eventTimes,g=C.expirationTimes,v=B;v>0;){var L=Tf(v),z=1<<L;U[L]=xi,Z[L]=Va,g[L]=Va,v&=~z}}function Kb(C,y){C.entangledLanes|=y;for(var B=C.entanglements,U=y;U>0;){var Z=Tf(U),g=1<<Z;B[Z]|=y,U&=~g}}var qb=Math.clz32?Math.clz32:G5,LM=Math.log,Qb=Math.LN2;function G5(C){return C===0?32:31-(LM(C)/Qb|0)|0}var IM=m.unstable_UserBlockingPriority,Jb=m.unstable_runWithPriority,W5=!0;function H5(C){W5=!!C}function $b(){return W5}function e7(C,y,B){var U=jb(y),Z;switch(U){case A2:Z=PM;break;case D5:Z=F_;break;case N5:default:Z=ug;break}return Z.bind(null,y,B,C)}function PM(C,y,B,U){hc(U.timeStamp),Jn(ug,C,y,B,U)}function F_(C,y,B,U){Jb(IM,ug.bind(null,C,y,B,U))}function ug(C,y,B,U){if(W5){var Z=!0;if(Z=(y&ye)===0,Z&&Gh()&&E3(C)){L3(null,C,y,B,U);return}var g=Y5(C,y,B,U);if(g===null){Z&&O5(C,U);return}if(Z){if(E3(C)){L3(g,C,y,B,U);return}if(Nb(g,C,y,B,U))return;O5(C,U)}CA(C,y,U,null,B)}}function Y5(C,y,B,U){var Z=tt(U),g=M2(Z);if(g!==null){var v=z0(g);if(v===null)g=null;else{var L=v.tag;if(L===V){var z=U4(v);if(z!==null)return z;g=null}else if(L===M){var j=v.stateNode;if(j.hydrate)return Ld(v);g=null}else v!==g&&(g=null)}}return CA(C,y,U,g,B),null}function t7(C,y,B){return C.addEventListener(y,B,!1),B}function OM(C,y,B){return C.addEventListener(y,B,!0),B}function i7(C,y,B,U){return C.addEventListener(y,B,{capture:!0,passive:U}),B}function X5(C,y,B,U){return C.addEventListener(y,B,{passive:U}),B}var Z0=null,k_=null,hg=null;function s7(C){return Z0=C,k_=dg(),!0}function RM(){Z0=null,k_=null,hg=null}function K0(){if(hg)return hg;var C,y=k_,B=y.length,U,Z=dg(),g=Z.length;for(C=0;C<B&&y[C]===Z[C];C++);var v=B-C;for(U=1;U<=v&&y[B-U]===Z[g-U];U++);var L=U>1?1-U:void 0;return hg=Z.slice(C,L),hg}function dg(){return"value"in Z0?Z0.value:Z0.textContent}function Lf(C){var y,B=C.keyCode;return"charCode"in C?(y=C.charCode,y===0&&B===13&&(y=13)):y=B,y===10&&(y=13),y>=32||y===13?y:0}function w3(){return!0}function r7(){return!1}function eu(C){function y(B,U,Z,g,v){this._reactName=B,this._targetInst=Z,this.type=U,this.nativeEvent=g,this.target=v,this.currentTarget=null;for(var L in C)if(C.hasOwnProperty(L)){var z=C[L];z?this[L]=z(g):this[L]=g[L]}var j=g.defaultPrevented!=null?g.defaultPrevented:g.returnValue===!1;return j?this.isDefaultPrevented=w3:this.isDefaultPrevented=r7,this.isPropagationStopped=r7,this}return p(y.prototype,{preventDefault:function(){this.defaultPrevented=!0;var B=this.nativeEvent;B&&(B.preventDefault?B.preventDefault():typeof B.returnValue!="unknown"&&(B.returnValue=!1),this.isDefaultPrevented=w3)},stopPropagation:function(){var B=this.nativeEvent;B&&(B.stopPropagation?B.stopPropagation():typeof B.cancelBubble!="unknown"&&(B.cancelBubble=!0),this.isPropagationStopped=w3)},persist:function(){},isPersistent:w3}),y}var If={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(C){return C.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},B3=eu(If),b2=p({},If,{view:0,detail:0}),Z5=eu(b2),tu,S2,q0;function z3(C){C!==q0&&(q0&&C.type==="mousemove"?(tu=C.screenX-q0.screenX,S2=C.screenY-q0.screenY):(tu=0,S2=0),q0=C)}var fg=p({},b2,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:U_,button:0,buttons:0,relatedTarget:function(C){return C.relatedTarget===void 0?C.fromElement===C.srcElement?C.toElement:C.fromElement:C.relatedTarget},movementX:function(C){return"movementX"in C?C.movementX:(z3(C),tu)},movementY:function(C){return"movementY"in C?C.movementY:S2}}),pg=eu(fg),K5=p({},fg,{dataTransfer:0}),F3=eu(K5),n7=p({},b2,{relatedTarget:0}),k3=eu(n7),q5=p({},If,{animationName:0,elapsedTime:0,pseudoElement:0}),DM=eu(q5),a7=p({},If,{clipboardData:function(C){return"clipboardData"in C?C.clipboardData:window.clipboardData}}),o7=eu(a7),Q5=p({},If,{data:0}),l7=eu(Q5),NM=l7,wM={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},c7={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};function BM(C){if(C.key){var y=wM[C.key]||C.key;if(y!=="Unidentified")return y}if(C.type==="keypress"){var B=Lf(C);return B===13?"Enter":String.fromCharCode(B)}return C.type==="keydown"||C.type==="keyup"?c7[C.keyCode]||"Unidentified":""}var u7={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function zM(C){var y=this,B=y.nativeEvent;if(B.getModifierState)return B.getModifierState(C);var U=u7[C];return U?!!B[U]:!1}function U_(C){return zM}var FM=p({},b2,{key:BM,code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:U_,charCode:function(C){return C.type==="keypress"?Lf(C):0},keyCode:function(C){return C.type==="keydown"||C.type==="keyup"?C.keyCode:0},which:function(C){return C.type==="keypress"?Lf(C):C.type==="keydown"||C.type==="keyup"?C.keyCode:0}}),h7=eu(FM),kM=p({},fg,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),d7=eu(kM),j_=p({},b2,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:U_}),f7=eu(j_),p7=p({},If,{propertyName:0,elapsedTime:0,pseudoElement:0}),J5=eu(p7),m7=p({},fg,{deltaX:function(C){return"deltaX"in C?C.deltaX:"wheelDeltaX"in C?-C.wheelDeltaX:0},deltaY:function(C){return"deltaY"in C?C.deltaY:"wheelDeltaY"in C?-C.wheelDeltaY:"wheelDelta"in C?-C.wheelDelta:0},deltaZ:0,deltaMode:0}),UM=eu(m7),$5=[9,13,27,32],g7=229,mg=Ke&&"CompositionEvent"in window,U3=null;Ke&&"documentMode"in document&&(U3=document.documentMode);var jM=Ke&&"TextEvent"in window&&!U3,eA=Ke&&(!mg||U3&&U3>8&&U3<=11),tA=32,V_=String.fromCharCode(tA);function j3(){st("onBeforeInput",["compositionend","keypress","textInput","paste"]),st("onCompositionEnd",["compositionend","focusout","keydown","keypress","keyup","mousedown"]),st("onCompositionStart",["compositionstart","focusout","keydown","keypress","keyup","mousedown"]),st("onCompositionUpdate",["compositionupdate","focusout","keydown","keypress","keyup","mousedown"])}var _7=!1;function v7(C){return(C.ctrlKey||C.altKey||C.metaKey)&&!(C.ctrlKey&&C.altKey)}function A7(C){switch(C){case"compositionstart":return"onCompositionStart";case"compositionend":return"onCompositionEnd";case"compositionupdate":return"onCompositionUpdate"}}function iA(C,y){return C==="keydown"&&y.keyCode===g7}function C7(C,y){switch(C){case"keyup":return $5.indexOf(y.keyCode)!==-1;case"keydown":return y.keyCode!==g7;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function G_(C){var y=C.detail;return typeof y=="object"&&"data"in y?y.data:null}function x7(C){return C.locale==="ko"}var V3=!1;function sA(C,y,B,U,Z){var g,v;if(mg?g=A7(y):V3?C7(y,U)&&(g="onCompositionEnd"):iA(y,U)&&(g="onCompositionStart"),!g)return null;eA&&!x7(U)&&(!V3&&g==="onCompositionStart"?V3=s7(Z):g==="onCompositionEnd"&&V3&&(v=K0()));var L=Z3(B,g);if(L.length>0){var z=new l7(g,y,null,U,Z);if(C.push({event:z,listeners:L}),v)z.data=v;else{var j=G_(U);j!==null&&(z.data=j)}}}function b7(C,y){switch(C){case"compositionend":return G_(y);case"keypress":var B=y.which;return B!==tA?null:(_7=!0,V_);case"textInput":var U=y.data;return U===V_&&_7?null:U;default:return null}}function rA(C,y){if(V3){if(C==="compositionend"||!mg&&C7(C,y)){var B=K0();return RM(),V3=!1,B}return null}switch(C){case"paste":return null;case"keypress":if(!v7(y)){if(y.char&&y.char.length>1)return y.char;if(y.which)return String.fromCharCode(y.which)}return null;case"compositionend":return eA&&!x7(y)?null:y.data;default:return null}}function nA(C,y,B,U,Z){var g;if(jM?g=b7(y,U):g=rA(y,U),!g)return null;var v=Z3(B,"onBeforeInput");if(v.length>0){var L=new NM("onBeforeInput","beforeinput",null,U,Z);C.push({event:L,listeners:v}),L.data=g}}function G3(C,y,B,U,Z,g,v){sA(C,y,B,U,Z),nA(C,y,B,U,Z)}var S7={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function y7(C){var y=C&&C.nodeName&&C.nodeName.toLowerCase();return y==="input"?!!S7[C.type]:y==="textarea"}/**
 * Checks if an event is supported in the current execution environment.
 *
 * NOTE: This will not work correctly for non-generic events such as `change`,
 * `reset`, `load`, `error`, and `select`.
 *
 * Borrows from Modernizr.
 *
 * @param {string} eventNameSuffix Event name, e.g. "click".
 * @return {boolean} True if the event is supported.
 * @internal
 * @license Modernizr 3.0.0pre (Custom Build) | MIT
 */function VM(C){if(!Ke)return!1;var y="on"+C,B=y in document;if(!B){var U=document.createElement("div");U.setAttribute(y,"return;"),B=typeof U[y]=="function"}return B}function M7(){st("onChange",["change","click","focusin","focusout","input","keydown","keyup","selectionchange"])}function E7(C,y,B,U){Je(U);var Z=Z3(y,"onChange");if(Z.length>0){var g=new B3("onChange","change",null,B,U);C.push({event:g,listeners:Z})}}var gg=null,W3=null;function T7(C){var y=C.nodeName&&C.nodeName.toLowerCase();return y==="select"||y==="input"&&C.type==="file"}function GM(C){var y=[];E7(y,W3,C,tt(C)),ja(aA,y)}function aA(C){k7(C,0)}function Pf(C){var y=op(C);if(Ht(y))return C}function H3(C,y){if(C==="change")return y}var oA=!1;Ke&&(oA=VM("input")&&(!document.documentMode||document.documentMode>9));function WM(C,y){gg=C,W3=y,gg.attachEvent("onpropertychange",_g)}function W_(){gg&&(gg.detachEvent("onpropertychange",_g),gg=null,W3=null)}function _g(C){C.propertyName==="value"&&Pf(W3)&&GM(C)}function lA(C,y,B){C==="focusin"?(W_(),WM(y,B)):C==="focusout"&&W_()}function L7(C,y){if(C==="selectionchange"||C==="keyup"||C==="keydown")return Pf(W3)}function HM(C){var y=C.nodeName;return y&&y.toLowerCase()==="input"&&(C.type==="checkbox"||C.type==="radio")}function cA(C,y){if(C==="click")return Pf(y)}function uA(C,y){if(C==="input"||C==="change")return Pf(y)}function I7(C){var y=C._wrapperState;!y||!y.controlled||C.type!=="number"||rr(C,"number",C.value)}function YM(C,y,B,U,Z,g,v){var L=B?op(B):window,z,j;if(T7(L)?z=H3:y7(L)?oA?z=uA:(z=L7,j=lA):HM(L)&&(z=cA),z){var J=z(y,B);if(J){E7(C,J,U,Z);return}}j&&j(y,L,B),y==="focusout"&&I7(L)}function XM(){Ve("onMouseEnter",["mouseout","mouseover"]),Ve("onMouseLeave",["mouseout","mouseover"]),Ve("onPointerEnter",["pointerout","pointerover"]),Ve("onPointerLeave",["pointerout","pointerover"])}function ZM(C,y,B,U,Z,g,v){var L=y==="mouseover"||y==="pointerover",z=y==="mouseout"||y==="pointerout";if(L&&!(g&Be)){var j=U.relatedTarget||U.fromElement;if(j&&(M2(j)||Nf(j)))return}if(!(!z&&!L)){var J;if(Z.window===Z)J=Z;else{var le=Z.ownerDocument;le?J=le.defaultView||le.parentWindow:J=window}var ce,_e;if(z){var Oe=U.relatedTarget||U.toElement;if(ce=B,_e=Oe?M2(Oe):null,_e!==null){var Fe=z0(_e);(_e!==Fe||_e.tag!==O&&_e.tag!==R)&&(_e=null)}}else ce=null,_e=B;if(ce!==_e){var pt=pg,it="onMouseLeave",Mt="onMouseEnter",Jt="mouse";(y==="pointerout"||y==="pointerover")&&(pt=d7,it="onPointerLeave",Mt="onPointerEnter",Jt="pointer");var Ai=ce==null?J:op(ce),Ct=_e==null?J:op(_e),Ft=new pt(it,Jt+"leave",ce,U,Z);Ft.target=Ai,Ft.relatedTarget=Ct;var ut=null,ni=M2(Z);if(ni===B){var Ei=new pt(Mt,Jt+"enter",_e,U,Z);Ei.target=Ct,Ei.relatedTarget=Ai,ut=Ei}tE(C,Ft,ut,ce,_e)}}}function hA(C,y){return C===y&&(C!==0||1/C===1/y)||C!==C&&y!==y}var Hh=typeof Object.is=="function"?Object.is:hA,KM=Object.prototype.hasOwnProperty;function vg(C,y){if(Hh(C,y))return!0;if(typeof C!="object"||C===null||typeof y!="object"||y===null)return!1;var B=Object.keys(C),U=Object.keys(y);if(B.length!==U.length)return!1;for(var Z=0;Z<B.length;Z++)if(!KM.call(y,B[Z])||!Hh(C[B[Z]],y[B[Z]]))return!1;return!0}function P7(C){for(;C&&C.firstChild;)C=C.firstChild;return C}function O7(C){for(;C;){if(C.nextSibling)return C.nextSibling;C=C.parentNode}}function ah(C,y){for(var B=P7(C),U=0,Z=0;B;){if(B.nodeType===Wo){if(Z=U+B.textContent.length,U<=y&&Z>=y)return{node:B,offset:y-U};U=Z}B=P7(O7(B))}}function qM(C){var y=C.ownerDocument,B=y&&y.defaultView||window,U=B.getSelection&&B.getSelection();if(!U||U.rangeCount===0)return null;var Z=U.anchorNode,g=U.anchorOffset,v=U.focusNode,L=U.focusOffset;try{Z.nodeType,v.nodeType}catch{return null}return Ag(C,Z,g,v,L)}function Ag(C,y,B,U,Z){var g=0,v=-1,L=-1,z=0,j=0,J=C,le=null;e:for(;;){for(var ce=null;J===y&&(B===0||J.nodeType===Wo)&&(v=g+B),J===U&&(Z===0||J.nodeType===Wo)&&(L=g+Z),J.nodeType===Wo&&(g+=J.nodeValue.length),(ce=J.firstChild)!==null;)le=J,J=ce;for(;;){if(J===C)break e;if(le===y&&++z===B&&(v=g),le===U&&++j===Z&&(L=g),(ce=J.nextSibling)!==null)break;J=le,le=J.parentNode}J=ce}return v===-1||L===-1?null:{start:v,end:L}}function R7(C,y){var B=C.ownerDocument||document,U=B&&B.defaultView||window;if(U.getSelection){var Z=U.getSelection(),g=C.textContent.length,v=Math.min(y.start,g),L=y.end===void 0?v:Math.min(y.end,g);if(!Z.extend&&v>L){var z=L;L=v,v=z}var j=ah(C,v),J=ah(C,L);if(j&&J){if(Z.rangeCount===1&&Z.anchorNode===j.node&&Z.anchorOffset===j.offset&&Z.focusNode===J.node&&Z.focusOffset===J.offset)return;var le=B.createRange();le.setStart(j.node,j.offset),Z.removeAllRanges(),v>L?(Z.addRange(le),Z.extend(J.node,J.offset)):(le.setEnd(J.node,J.offset),Z.addRange(le))}}}function D7(C){return C&&C.nodeType===Wo}function dA(C,y){return!C||!y?!1:C===y?!0:D7(C)?!1:D7(y)?dA(C,y.parentNode):"contains"in C?C.contains(y):C.compareDocumentPosition?!!(C.compareDocumentPosition(y)&16):!1}function QM(C){return C&&C.ownerDocument&&dA(C.ownerDocument.documentElement,C)}function JM(C){try{return typeof C.contentWindow.location.href=="string"}catch{return!1}}function fA(){for(var C=window,y=ti();y instanceof C.HTMLIFrameElement;){if(JM(y))C=y.contentWindow;else return y;y=ti(C.document)}return y}function H_(C){var y=C&&C.nodeName&&C.nodeName.toLowerCase();return y&&(y==="input"&&(C.type==="text"||C.type==="search"||C.type==="tel"||C.type==="url"||C.type==="password")||y==="textarea"||C.contentEditable==="true")}function N7(){var C=fA();return{focusedElem:C,selectionRange:H_(C)?$M(C):null}}function Y_(C){var y=fA(),B=C.focusedElem,U=C.selectionRange;if(y!==B&&QM(B)){U!==null&&H_(B)&&pA(B,U);for(var Z=[],g=B;g=g.parentNode;)g.nodeType===go&&Z.push({element:g,left:g.scrollLeft,top:g.scrollTop});typeof B.focus=="function"&&B.focus();for(var v=0;v<Z.length;v++){var L=Z[v];L.element.scrollLeft=L.left,L.element.scrollTop=L.top}}}function $M(C){var y;return"selectionStart"in C?y={start:C.selectionStart,end:C.selectionEnd}:y=qM(C),y||{start:0,end:0}}function pA(C,y){var B=y.start,U=y.end;U===void 0&&(U=B),"selectionStart"in C?(C.selectionStart=B,C.selectionEnd=Math.min(U,C.value.length)):R7(C,y)}var mA=Ke&&"documentMode"in document&&document.documentMode<=11;function w7(){st("onSelect",["focusout","contextmenu","dragend","focusin","keydown","keyup","mousedown","mouseup","selectionchange"])}var y2=null,gA=null,Cg=null,_A=!1;function B7(C){if("selectionStart"in C&&H_(C))return{start:C.selectionStart,end:C.selectionEnd};var y=C.ownerDocument&&C.ownerDocument.defaultView||window,B=y.getSelection();return{anchorNode:B.anchorNode,anchorOffset:B.anchorOffset,focusNode:B.focusNode,focusOffset:B.focusOffset}}function Q0(C){return C.window===C?C.document:C.nodeType===so?C:C.ownerDocument}function X_(C,y,B){var U=Q0(B);if(!(_A||y2==null||y2!==ti(U))){var Z=B7(y2);if(!Cg||!vg(Cg,Z)){Cg=Z;var g=Z3(gA,"onSelect");if(g.length>0){var v=new B3("onSelect","select",null,y,B);C.push({event:v,listeners:g}),v.target=y2}}}}function xg(C,y,B,U,Z,g,v){var L=B?op(B):window;switch(y){case"focusin":(y7(L)||L.contentEditable==="true")&&(y2=L,gA=B,Cg=null);break;case"focusout":y2=null,gA=null,Cg=null;break;case"mousedown":_A=!0;break;case"contextmenu":case"mouseup":case"dragend":_A=!1,X_(C,U,Z);break;case"selectionchange":if(mA)break;case"keydown":case"keyup":X_(C,U,Z)}}function Z_(C,y,B,U,Z,g,v){var L=Y4.get(y);if(L!==void 0){var z=B3,j=y;switch(y){case"keypress":if(Lf(U)===0)return;case"keydown":case"keyup":z=h7;break;case"focusin":j="focus",z=k3;break;case"focusout":j="blur",z=k3;break;case"beforeblur":case"afterblur":z=k3;break;case"click":if(U.button===2)return;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":z=pg;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":z=F3;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":z=f7;break;case P3:case U0:case R_:z=DM;break;case D_:z=J5;break;case"scroll":z=Z5;break;case"wheel":z=UM;break;case"copy":case"cut":case"paste":z=o7;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":z=d7;break}var J=(g&ye)!==0;{var le=!J&&y==="scroll",ce=q_(B,L,U.type,J,le);if(ce.length>0){var _e=new z(L,j,null,U,Z);C.push({event:_e,listeners:ce})}}}}AM(),XM(),M7(),w7(),j3();function eE(C,y,B,U,Z,g,v){Z_(C,y,B,U,Z,g);var L=(g&Ze)===0;L&&(ZM(C,y,B,U,Z,g),YM(C,y,B,U,Z),xg(C,y,B,U,Z),G3(C,y,B,U,Z))}var Y3=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],z7=new Set(["cancel","close","invalid","load","scroll","toggle"].concat(Y3));function vA(C,y,B){var U=C.type||"unknown-event";C.currentTarget=B,z4(U,y,void 0,C),C.currentTarget=null}function F7(C,y,B){var U;if(B)for(var Z=y.length-1;Z>=0;Z--){var g=y[Z],v=g.instance,L=g.currentTarget,z=g.listener;if(v!==U&&C.isPropagationStopped())return;vA(C,z,L),U=v}else for(var j=0;j<y.length;j++){var J=y[j],le=J.instance,ce=J.currentTarget,_e=J.listener;if(le!==U&&C.isPropagationStopped())return;vA(C,_e,ce),U=le}}function k7(C,y){for(var B=(y&ye)!==0,U=0;U<C.length;U++){var Z=C[U],g=Z.event,v=Z.listeners;F7(g,v,B)}y3()}function X3(C,y,B,U,Z){var g=tt(B),v=[];eE(v,C,U,B,g,y),k7(v,y)}function Ia(C,y){var B=!1,U=E2(y),Z=K3(C,B);U.has(Z)||(AA(y,C,kh,B),U.add(Z))}var K_="_reactListening"+Math.random().toString(36).slice(2);function U7(C){{if(C[K_])return;C[K_]=!0,Se.forEach(function(y){z7.has(y)||bg(y,!1,C,null),bg(y,!0,C,null)})}}function bg(C,y,B,U){var Z=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,g=B;C==="selectionchange"&&B.nodeType!==so&&(g=B.ownerDocument);var v=E2(g),L=K3(C,y);v.has(L)||(y&&(Z|=ye),AA(g,C,Z,y),v.add(L))}function AA(C,y,B,U,Z){var g=e7(C,y,B),v=void 0;x3&&(y==="touchstart"||y==="touchmove"||y==="wheel")&&(v=!0),C=C,U?v!==void 0?i7(C,y,g,v):OM(C,y,g):v!==void 0?X5(C,y,g,v):t7(C,y,g)}function xa(C,y){return C===y||C.nodeType===Oo&&C.parentNode===y}function CA(C,y,B,U,Z){var g=U;if(!(y&f1)&&!(y&kh)){var v=Z;if(U!==null){var L=U;e:for(;;){if(L===null)return;var z=L.tag;if(z===M||z===T){var j=L.stateNode.containerInfo;if(xa(j,v))break;if(z===T)for(var J=L.return;J!==null;){var le=J.tag;if(le===M||le===T){var ce=J.stateNode.containerInfo;if(xa(ce,v))return}J=J.return}for(;j!==null;){var _e=M2(j);if(_e===null)return;var Oe=_e.tag;if(Oe===O||Oe===R){L=g=_e;continue e}j=j.parentNode}}L=L.return}}}Ml(function(){return X3(C,y,B,g)})}function J0(C,y,B){return{instance:C,listener:y,currentTarget:B}}function q_(C,y,B,U,Z){for(var g=y!==null?y+"Capture":null,v=U?g:y,L=[],z=C,j=null;z!==null;){var J=z,le=J.stateNode,ce=J.tag;if(ce===O&&le!==null&&(j=le,v!==null)){var _e=Uh(z,v);_e!=null&&L.push(J0(z,_e,j))}if(Z)break;z=z.return}return L}function Z3(C,y){for(var B=y+"Capture",U=[],Z=C;Z!==null;){var g=Z,v=g.stateNode,L=g.tag;if(L===O&&v!==null){var z=v,j=Uh(Z,B);j!=null&&U.unshift(J0(Z,j,z));var J=Uh(Z,y);J!=null&&U.push(J0(Z,J,z))}Z=Z.return}return U}function $0(C){if(C===null)return null;do C=C.return;while(C&&C.tag!==O);return C||null}function xA(C,y){for(var B=C,U=y,Z=0,g=B;g;g=$0(g))Z++;for(var v=0,L=U;L;L=$0(L))v++;for(;Z-v>0;)B=$0(B),Z--;for(;v-Z>0;)U=$0(U),v--;for(var z=Z;z--;){if(B===U||U!==null&&B===U.alternate)return B;B=$0(B),U=$0(U)}return null}function ep(C,y,B,U,Z){for(var g=y._reactName,v=[],L=B;L!==null&&L!==U;){var z=L,j=z.alternate,J=z.stateNode,le=z.tag;if(j!==null&&j===U)break;if(le===O&&J!==null){var ce=J;if(Z){var _e=Uh(L,g);_e!=null&&v.unshift(J0(L,_e,ce))}else if(!Z){var Oe=Uh(L,g);Oe!=null&&v.push(J0(L,Oe,ce))}}L=L.return}v.length!==0&&C.push({event:y,listeners:v})}function tE(C,y,B,U,Z){var g=U&&Z?xA(U,Z):null;U!==null&&ep(C,y,U,g,!1),Z!==null&&B!==null&&ep(C,B,Z,g,!0)}function K3(C,y){return C+"__"+(y?"capture":"bubble")}var al=!1,q3="dangerouslySetInnerHTML",Sg="suppressContentEditableWarning",yg="suppressHydrationWarning",Q_="autoFocus",Ho="children",Pd="style",tp="__html",Od=Ul.html,Mg,Rd,x1,ip,oh,J_,Of,Eg,Rf,Df;{Mg={dialog:!0,webview:!0},x1=function(C,y){gf(C,y),Fh(C,y),m2(C,y,{registrationNameDependencies:we,possibleRegistrationNames:ke})},Eg=Ke&&!document.documentMode;var bA=/\r\n?/g,$_=/\u0000|\uFFFD/g;Rf=function(C){var y=typeof C=="string"?C:""+C;return y.replace(bA,`
`).replace($_,"")},ip=function(C,y){if(!al){var B=Rf(y),U=Rf(C);U!==B&&(al=!0,x('Text content did not match. Server: "%s" Client: "%s"',U,B))}},oh=function(C,y,B){if(!al){var U=Rf(B),Z=Rf(y);Z!==U&&(al=!0,x("Prop `%s` did not match. Server: %s Client: %s",C,JSON.stringify(Z),JSON.stringify(U)))}},J_=function(C){if(!al){al=!0;var y=[];C.forEach(function(B){y.push(B)}),x("Extra attributes from the server: %s",y)}},Of=function(C,y){y===!1?x("Expected `%s` listener to be a function, instead got `false`.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.",C,C,C):x("Expected `%s` listener to be a function, instead got a value of `%s` type.",C,typeof y)},Df=function(C,y){var B=C.namespaceURI===Od?C.ownerDocument.createElement(C.tagName):C.ownerDocument.createElementNS(C.namespaceURI,C.tagName);return B.innerHTML=y,B.innerHTML}}function SA(C){return C.nodeType===so?C:C.ownerDocument}function Tg(){}function Q3(C){C.onclick=Tg}function j7(C,y,B,U,Z){for(var g in U)if(U.hasOwnProperty(g)){var v=U[g];if(g===Pd)v&&Object.freeze(v),sh(y,v);else if(g===q3){var L=v?v[tp]:void 0;L!=null&&Xc(y,L)}else if(g===Ho)if(typeof v=="string"){var z=C!=="textarea"||v!=="";z&&ro(y,v)}else typeof v=="number"&&ro(y,""+v);else g===Sg||g===yg||g===Q_||(we.hasOwnProperty(g)?v!=null&&(typeof v!="function"&&Of(g,v),g==="onScroll"&&Ia("scroll",y)):v!=null&&oi(y,g,v,Z))}}function iE(C,y,B,U){for(var Z=0;Z<y.length;Z+=2){var g=y[Z],v=y[Z+1];g===Pd?sh(C,v):g===q3?Xc(C,v):g===Ho?ro(C,v):oi(C,g,v,U)}}function yA(C,y,B,U){var Z,g=SA(B),v,L=U;if(L===Od&&(L=oc(C)),L===Od){if(Z=Zc(C,y),!Z&&C!==C.toLowerCase()&&x("<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.",C),C==="script"){var z=g.createElement("div");z.innerHTML="<script><\/script>";var j=z.firstChild;v=z.removeChild(j)}else if(typeof y.is=="string")v=g.createElement(C,{is:y.is});else if(v=g.createElement(C),C==="select"){var J=v;y.multiple?J.multiple=!0:y.size&&(J.size=y.size)}}else v=g.createElementNS(L,C);return L===Od&&!Z&&Object.prototype.toString.call(v)==="[object HTMLUnknownElement]"&&!Object.prototype.hasOwnProperty.call(Mg,C)&&(Mg[C]=!0,x("The tag <%s> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.",C)),v}function sE(C,y){return SA(y).createTextNode(C)}function J3(C,y,B,U){var Z=Zc(y,B);x1(y,B);var g;switch(y){case"dialog":Ia("cancel",C),Ia("close",C),g=B;break;case"iframe":case"object":case"embed":Ia("load",C),g=B;break;case"video":case"audio":for(var v=0;v<Y3.length;v++)Ia(Y3[v],C);g=B;break;case"source":Ia("error",C),g=B;break;case"img":case"image":case"link":Ia("error",C),Ia("load",C),g=B;break;case"details":Ia("toggle",C),g=B;break;case"input":es(C,B),g=vi(C,B),Ia("invalid",C);break;case"option":Fl(C,B),g=io(C,B);break;case"select":hu(C,B),g=aa(C,B),Ia("invalid",C);break;case"textarea":_d(C,B),g=qu(C,B),Ia("invalid",C);break;default:g=B}switch(Bh(y,g),j7(y,C,U,g,Z),y){case"input":_t(C),Us(C,B,!1);break;case"textarea":_t(C),du(C);break;case"option":Ua(C,B);break;case"select":Ph(C,B);break;default:typeof g.onClick=="function"&&Q3(C);break}}function rE(C,y,B,U,Z){x1(y,U);var g=null,v,L;switch(y){case"input":v=vi(C,B),L=vi(C,U),g=[];break;case"option":v=io(C,B),L=io(C,U),g=[];break;case"select":v=aa(C,B),L=aa(C,U),g=[];break;case"textarea":v=qu(C,B),L=qu(C,U),g=[];break;default:v=B,L=U,typeof v.onClick!="function"&&typeof L.onClick=="function"&&Q3(C);break}Bh(y,L);var z,j,J=null;for(z in v)if(!(L.hasOwnProperty(z)||!v.hasOwnProperty(z)||v[z]==null))if(z===Pd){var le=v[z];for(j in le)le.hasOwnProperty(j)&&(J||(J={}),J[j]="")}else z===q3||z===Ho||z===Sg||z===yg||z===Q_||(we.hasOwnProperty(z)?g||(g=[]):(g=g||[]).push(z,null));for(z in L){var ce=L[z],_e=v!=null?v[z]:void 0;if(!(!L.hasOwnProperty(z)||ce===_e||ce==null&&_e==null))if(z===Pd)if(ce&&Object.freeze(ce),_e){for(j in _e)_e.hasOwnProperty(j)&&(!ce||!ce.hasOwnProperty(j))&&(J||(J={}),J[j]="");for(j in ce)ce.hasOwnProperty(j)&&_e[j]!==ce[j]&&(J||(J={}),J[j]=ce[j])}else J||(g||(g=[]),g.push(z,J)),J=ce;else if(z===q3){var Oe=ce?ce[tp]:void 0,Fe=_e?_e[tp]:void 0;Oe!=null&&Fe!==Oe&&(g=g||[]).push(z,Oe)}else z===Ho?(typeof ce=="string"||typeof ce=="number")&&(g=g||[]).push(z,""+ce):z===Sg||z===yg||(we.hasOwnProperty(z)?(ce!=null&&(typeof ce!="function"&&Of(z,ce),z==="onScroll"&&Ia("scroll",C)),!g&&_e!==ce&&(g=[])):typeof ce=="object"&&ce!==null&&ce.$$typeof===ts?ce.toString():(g=g||[]).push(z,ce))}return J&&(Nh(J,L[Pd]),(g=g||[]).push(Pd,J)),g}function nE(C,y,B,U,Z){B==="input"&&Z.type==="radio"&&Z.name!=null&&Qi(C,Z);var g=Zc(B,U),v=Zc(B,Z);switch(iE(C,y,g,v),B){case"input":Ji(C,Z);break;case"textarea":Qu(C,Z);break;case"select":Zu(C,Z);break}}function MA(C){{var y=C.toLowerCase();return Au.hasOwnProperty(y)&&Au[y]||null}}function aE(C,y,B,U,Z){var g,v;switch(Rd=B[yg]===!0,g=Zc(y,B),x1(y,B),y){case"dialog":Ia("cancel",C),Ia("close",C);break;case"iframe":case"object":case"embed":Ia("load",C);break;case"video":case"audio":for(var L=0;L<Y3.length;L++)Ia(Y3[L],C);break;case"source":Ia("error",C);break;case"img":case"image":case"link":Ia("error",C),Ia("load",C);break;case"details":Ia("toggle",C);break;case"input":es(C,B),Ia("invalid",C);break;case"option":Fl(C,B);break;case"select":hu(C,B),Ia("invalid",C);break;case"textarea":_d(C,B),Ia("invalid",C);break}Bh(y,B);{v=new Set;for(var z=C.attributes,j=0;j<z.length;j++){var J=z[j].name.toLowerCase();switch(J){case"data-reactroot":break;case"value":break;case"checked":break;case"selected":break;default:v.add(z[j].name)}}}var le=null;for(var ce in B)if(B.hasOwnProperty(ce)){var _e=B[ce];if(ce===Ho)typeof _e=="string"?C.textContent!==_e&&(Rd||ip(C.textContent,_e),le=[Ho,_e]):typeof _e=="number"&&C.textContent!==""+_e&&(Rd||ip(C.textContent,_e),le=[Ho,""+_e]);else if(we.hasOwnProperty(ce))_e!=null&&(typeof _e!="function"&&Of(ce,_e),ce==="onScroll"&&Ia("scroll",C));else if(typeof g=="boolean"){var Oe=void 0,Fe=bi(ce);if(!Rd){if(!(ce===Sg||ce===yg||ce==="value"||ce==="checked"||ce==="selected")){if(ce===q3){var pt=C.innerHTML,it=_e?_e[tp]:void 0;if(it!=null){var Mt=Df(C,it);Mt!==pt&&oh(ce,pt,Mt)}}else if(ce===Pd){if(v.delete(ce),Eg){var Jt=a2(_e);Oe=C.getAttribute("style"),Jt!==Oe&&oh(ce,Oe,Jt)}}else if(g)v.delete(ce.toLowerCase()),Oe=Ut(C,ce,_e),_e!==Oe&&oh(ce,Oe,_e);else if(!si(ce,Fe,g)&&!gi(ce,_e,Fe,g)){var Ai=!1;if(Fe!==null)v.delete(Fe.attributeName),Oe=Tt(C,ce,_e,Fe);else{var Ct=U;if(Ct===Od&&(Ct=oc(y)),Ct===Od)v.delete(ce.toLowerCase());else{var Ft=MA(ce);Ft!==null&&Ft!==ce&&(Ai=!0,v.delete(Ft)),v.delete(ce)}Oe=Ut(C,ce,_e)}_e!==Oe&&!Ai&&oh(ce,Oe,_e)}}}}}switch(v.size>0&&!Rd&&J_(v),y){case"input":_t(C),Us(C,B,!0);break;case"textarea":_t(C),du(C);break;case"select":case"option":break;default:typeof B.onClick=="function"&&Q3(C);break}return le}function EA(C,y){var B=C.nodeValue!==y;return B}function V7(C,y){ip(C.nodeValue,y)}function TA(C,y){{if(al)return;al=!0,x("Did not expect server HTML to contain a <%s> in <%s>.",y.nodeName.toLowerCase(),C.nodeName.toLowerCase())}}function LA(C,y){{if(al)return;al=!0,x('Did not expect server HTML to contain the text node "%s" in <%s>.',y.nodeValue,C.nodeName.toLowerCase())}}function G7(C,y,B){{if(al)return;al=!0,x("Expected server HTML to contain a matching <%s> in <%s>.",y,C.nodeName.toLowerCase())}}function IA(C,y){{if(y===""||al)return;al=!0,x('Expected server HTML to contain a matching text node for "%s" in <%s>.',y,C.nodeName.toLowerCase())}}function W7(C,y,B){switch(y){case"input":er(C,B);return;case"textarea":fu(C,B);return;case"select":Yc(C,B);return}}var sp=function(){},$3=function(){};{var H7=["address","applet","area","article","aside","base","basefont","bgsound","blockquote","body","br","button","caption","center","col","colgroup","dd","details","dir","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","isindex","li","link","listing","main","marquee","menu","menuitem","meta","nav","noembed","noframes","noscript","object","ol","p","param","plaintext","pre","script","section","select","source","style","summary","table","tbody","td","template","textarea","tfoot","th","thead","title","tr","track","ul","wbr","xmp"],em=["applet","caption","html","table","td","th","marquee","object","template","foreignObject","desc","title"],oE=em.concat(["button"]),Lg=["dd","dt","li","option","optgroup","p","rp","rt"],tm={current:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null};$3=function(C,y){var B=p({},C||tm),U={tag:y};return em.indexOf(y)!==-1&&(B.aTagInScope=null,B.buttonTagInScope=null,B.nobrTagInScope=null),oE.indexOf(y)!==-1&&(B.pTagInButtonScope=null),H7.indexOf(y)!==-1&&y!=="address"&&y!=="div"&&y!=="p"&&(B.listItemTagAutoclosing=null,B.dlItemTagAutoclosing=null),B.current=U,y==="form"&&(B.formTag=U),y==="a"&&(B.aTagInScope=U),y==="button"&&(B.buttonTagInScope=U),y==="nobr"&&(B.nobrTagInScope=U),y==="p"&&(B.pTagInButtonScope=U),y==="li"&&(B.listItemTagAutoclosing=U),(y==="dd"||y==="dt")&&(B.dlItemTagAutoclosing=U),B};var lE=function(C,y){switch(y){case"select":return C==="option"||C==="optgroup"||C==="#text";case"optgroup":return C==="option"||C==="#text";case"option":return C==="#text";case"tr":return C==="th"||C==="td"||C==="style"||C==="script"||C==="template";case"tbody":case"thead":case"tfoot":return C==="tr"||C==="style"||C==="script"||C==="template";case"colgroup":return C==="col"||C==="template";case"table":return C==="caption"||C==="colgroup"||C==="tbody"||C==="tfoot"||C==="thead"||C==="style"||C==="script"||C==="template";case"head":return C==="base"||C==="basefont"||C==="bgsound"||C==="link"||C==="meta"||C==="title"||C==="noscript"||C==="noframes"||C==="style"||C==="script"||C==="template";case"html":return C==="head"||C==="body"||C==="frameset";case"frameset":return C==="frame";case"#document":return C==="html"}switch(C){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return y!=="h1"&&y!=="h2"&&y!=="h3"&&y!=="h4"&&y!=="h5"&&y!=="h6";case"rp":case"rt":return Lg.indexOf(y)===-1;case"body":case"caption":case"col":case"colgroup":case"frameset":case"frame":case"head":case"html":case"tbody":case"td":case"tfoot":case"th":case"thead":case"tr":return y==null}return!0},Ig=function(C,y){switch(C){case"address":case"article":case"aside":case"blockquote":case"center":case"details":case"dialog":case"dir":case"div":case"dl":case"fieldset":case"figcaption":case"figure":case"footer":case"header":case"hgroup":case"main":case"menu":case"nav":case"ol":case"p":case"section":case"summary":case"ul":case"pre":case"listing":case"table":case"hr":case"xmp":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return y.pTagInButtonScope;case"form":return y.formTag||y.pTagInButtonScope;case"li":return y.listItemTagAutoclosing;case"dd":case"dt":return y.dlItemTagAutoclosing;case"button":return y.buttonTagInScope;case"a":return y.aTagInScope;case"nobr":return y.nobrTagInScope}return null},e8={};sp=function(C,y,B){B=B||tm;var U=B.current,Z=U&&U.tag;y!=null&&(C!=null&&x("validateDOMNesting: when childText is passed, childTag should be null"),C="#text");var g=lE(C,Z)?null:U,v=g?null:Ig(C,B),L=g||v;if(L){var z=L.tag,j=!!g+"|"+C+"|"+z;if(!e8[j]){e8[j]=!0;var J=C,le="";if(C==="#text"?/\S/.test(y)?J="Text nodes":(J="Whitespace text nodes",le=" Make sure you don't have any extra whitespace between tags on each line of your source code."):J="<"+C+">",g){var ce="";z==="table"&&C==="tr"&&(ce+=" Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by the browser."),x("validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s",J,z,le,ce)}else x("validateDOMNesting(...): %s cannot appear as a descendant of <%s>.",J,z)}}}}var im;im="suppressHydrationWarning";var PA="$",OA="/$",RA="$?",sm="$!",rp="style",t8=null,Pg=null;function Og(C,y){switch(C){case"button":case"input":case"select":case"textarea":return!!y.autoFocus}return!1}function DA(C){var y,B,U=C.nodeType;switch(U){case so:case vd:{y=U===so?"#document":"#fragment";var Z=C.documentElement;B=Z?Z.namespaceURI:mu(null,"");break}default:{var g=U===Oo?C.parentNode:C,v=g.namespaceURI||null;y=g.tagName,B=mu(v,y);break}}{var L=y.toLowerCase(),z=$3(null,L);return{namespace:B,ancestorInfo:z}}}function NA(C,y,B){{var U=C,Z=mu(U.namespace,y),g=$3(U.ancestorInfo,y);return{namespace:Z,ancestorInfo:g}}}function Y7(C){return C}function wA(C){t8=$b(),Pg=N7();var y=null;return H5(!1),y}function BA(C){Y_(Pg),H5(t8),t8=null,Pg=null}function cE(C,y,B,U,Z){var g;{var v=U;if(sp(C,null,v.ancestorInfo),typeof y.children=="string"||typeof y.children=="number"){var L=""+y.children,z=$3(v.ancestorInfo,C);sp(null,L,z)}g=v.namespace}var j=yA(C,y,B,g);return ap(Z,j),am(j,y),j}function i8(C,y){C.appendChild(y)}function y9(C,y,B,U,Z){return J3(C,y,B,U),Og(y,B)}function uE(C,y,B,U,Z,g){{var v=g;if(typeof U.children!=typeof B.children&&(typeof U.children=="string"||typeof U.children=="number")){var L=""+U.children,z=$3(v.ancestorInfo,y);sp(null,L,z)}}return rE(C,y,B,U)}function Rg(C,y){return C==="textarea"||C==="option"||C==="noscript"||typeof y.children=="string"||typeof y.children=="number"||typeof y.dangerouslySetInnerHTML=="object"&&y.dangerouslySetInnerHTML!==null&&y.dangerouslySetInnerHTML.__html!=null}function hE(C,y,B,U){{var Z=B;sp(null,C,Z.ancestorInfo)}var g=sE(C,y);return ap(U,g),g}var s8=typeof setTimeout=="function"?setTimeout:void 0,dE=typeof clearTimeout=="function"?clearTimeout:void 0,zA=-1;function Dg(C,y,B,U){Og(y,B)&&C.focus()}function fE(C,y,B,U,Z,g){am(C,Z),nE(C,y,B,U,Z)}function FA(C){ro(C,"")}function X7(C,y,B){C.nodeValue=B}function kA(C,y){C.appendChild(y)}function Z7(C,y){var B;C.nodeType===Oo?(B=C.parentNode,B.insertBefore(y,C)):(B=C,B.appendChild(y));var U=C._reactRootContainer;U==null&&B.onclick===null&&Q3(B)}function pE(C,y,B){C.insertBefore(y,B)}function K7(C,y,B){C.nodeType===Oo?C.parentNode.insertBefore(y,B):C.insertBefore(y,B)}function UA(C,y){C.removeChild(y)}function mE(C,y){C.nodeType===Oo?C.parentNode.removeChild(y):C.removeChild(y)}function q7(C){C=C;var y=C.style;typeof y.setProperty=="function"?y.setProperty("display","none","important"):y.display="none"}function gE(C){C.nodeValue=""}function _E(C,y){C=C;var B=y[rp],U=B!=null&&B.hasOwnProperty("display")?B.display:null;C.style.display=cc("display",U)}function r8(C,y){C.nodeValue=y}function jA(C){if(C.nodeType===go)C.textContent="";else if(C.nodeType===so){var y=C.body;y!=null&&(y.textContent="")}}function vE(C,y,B){return C.nodeType!==go||y.toLowerCase()!==C.nodeName.toLowerCase()?null:C}function Q7(C,y){return y===""||C.nodeType!==Wo?null:C}function AE(C){return C.data===RA}function n8(C){return C.data===sm}function a8(C){for(;C!=null;C=C.nextSibling){var y=C.nodeType;if(y===go||y===Wo)break}return C}function Ng(C){return a8(C.nextSibling)}function VA(C){return a8(C.firstChild)}function CE(C,y,B,U,Z,g){ap(g,C),am(C,B);var v;{var L=Z;v=L.namespace}return aE(C,y,B,v)}function J7(C,y,B){return ap(B,C),EA(C,y)}function GA(C){for(var y=C.nextSibling,B=0;y;){if(y.nodeType===Oo){var U=y.data;if(U===OA){if(B===0)return Ng(y);B--}else(U===PA||U===sm||U===RA)&&B++}y=y.nextSibling}return null}function rm(C){for(var y=C.previousSibling,B=0;y;){if(y.nodeType===Oo){var U=y.data;if(U===PA||U===sm||U===RA){if(B===0)return y;B--}else U===OA&&B++}y=y.previousSibling}return null}function $7(C){Bb(C)}function WA(C){Bb(C)}function xE(C,y,B){V7(y,B)}function eS(C,y,B,U,Z){y[im]!==!0&&V7(U,Z)}function tS(C,y){y.nodeType===go?TA(C,y):y.nodeType===Oo||LA(C,y)}function iS(C,y,B,U){y[im]!==!0&&(U.nodeType===go?TA(B,U):U.nodeType===Oo||LA(B,U))}function HA(C,y,B){G7(C,y)}function sS(C,y){IA(C,y)}function bE(C,y,B,U,Z){y[im]!==!0&&G7(B,U)}function SE(C,y,B,U){y[im]!==!0&&IA(B,U)}function YA(C,y,B){y[im]}var yE=0;function rS(C){var y="r:"+(yE++).toString(36);return{toString:function(){return C(),y},valueOf:function(){return C(),y}}}function ME(C){return C!==null&&typeof C=="object"&&C.$$typeof===ts}function XA(C){return{$$typeof:ts,toString:C,valueOf:C}}function nS(C){U7(C)}var o8=Math.random().toString(36).slice(2),wg="__reactFiber$"+o8,aS="__reactProps$"+o8,np="__reactContainer$"+o8,ZA="__reactEvents$"+o8;function ap(C,y){y[wg]=C}function nm(C,y){y[np]=C}function KA(C){C[np]=null}function Nf(C){return!!C[np]}function M2(C){var y=C[wg];if(y)return y;for(var B=C.parentNode;B;){if(y=B[np]||B[wg],y){var U=y.alternate;if(y.child!==null||U!==null&&U.child!==null)for(var Z=rm(C);Z!==null;){var g=Z[wg];if(g)return g;Z=rm(Z)}return y}C=B,B=C.parentNode}return null}function Dd(C){var y=C[wg]||C[np];return y&&(y.tag===O||y.tag===R||y.tag===V||y.tag===M)?y:null}function op(C){if(C.tag===O||C.tag===R)return C.stateNode;throw Error("getNodeFromInstance: Invalid argument.")}function Bg(C){return C[aS]||null}function am(C,y){C[aS]=y}function E2(C){var y=C[ZA];return y===void 0&&(y=C[ZA]=new Set),y}var T2={},wf=d.ReactDebugCurrentFrame;function lp(C){if(C){var y=C._owner,B=Lo(C.type,C._source,y?y.type:null);wf.setExtraStackFrame(B)}else wf.setExtraStackFrame(null)}function lh(C,y,B,U,Z){{var g=Function.call.bind(Object.prototype.hasOwnProperty);for(var v in C)if(g(C,v)){var L=void 0;try{if(typeof C[v]!="function"){var z=Error((U||"React class")+": "+B+" type `"+v+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof C[v]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw z.name="Invariant Violation",z}L=C[v](y,v,U,B,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(j){L=j}L&&!(L instanceof Error)&&(lp(Z),x("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",U||"React class",B,v,typeof L),lp(null)),L instanceof Error&&!(L.message in T2)&&(T2[L.message]=!0,lp(Z),x("Failed %s type: %s",B,L.message),lp(null))}}}var om=[],zg;zg=[];var Nd=-1;function wd(C){return{current:C}}function ba(C,y){if(Nd<0){x("Unexpected pop.");return}y!==zg[Nd]&&x("Unexpected Fiber popped."),C.current=om[Nd],om[Nd]=null,zg[Nd]=null,Nd--}function ol(C,y,B){Nd++,om[Nd]=C.current,zg[Nd]=B,C.current=y}var lm;lm={};var Do={};Object.freeze(Do);var _c=wd(Do),Pa=wd(!1),ll=Do;function Bf(C,y,B){return B&&ch(y)?ll:_c.current}function Su(C,y,B){{var U=C.stateNode;U.__reactInternalMemoizedUnmaskedChildContext=y,U.__reactInternalMemoizedMaskedChildContext=B}}function yu(C,y){{var B=C.type,U=B.contextTypes;if(!U)return Do;var Z=C.stateNode;if(Z&&Z.__reactInternalMemoizedUnmaskedChildContext===y)return Z.__reactInternalMemoizedMaskedChildContext;var g={};for(var v in U)g[v]=y[v];{var L=Vi(B)||"Unknown";lh(U,g,"context",L)}return Z&&Su(C,y,g),g}}function Mu(){return Pa.current}function ch(C){{var y=C.childContextTypes;return y!=null}}function b1(C){ba(Pa,C),ba(_c,C)}function l8(C){ba(Pa,C),ba(_c,C)}function cp(C,y,B){{if(_c.current!==Do)throw Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.");ol(_c,y,C),ol(Pa,B,C)}}function cm(C,y,B){{var U=C.stateNode,Z=y.childContextTypes;if(typeof U.getChildContext!="function"){{var g=Vi(y)||"Unknown";lm[g]||(lm[g]=!0,x("%s.childContextTypes is specified but there is no getChildContext() method on the instance. You can either define getChildContext() on %s or remove childContextTypes from it.",g,g))}return B}var v=U.getChildContext();for(var L in v)if(!(L in Z))throw Error((Vi(y)||"Unknown")+'.getChildContext(): key "'+L+'" is not defined in childContextTypes.');{var z=Vi(y)||"Unknown";lh(Z,v,"child context",z)}return p({},B,v)}}function uh(C){{var y=C.stateNode,B=y&&y.__reactInternalMemoizedMergedChildContext||Do;return ll=_c.current,ol(_c,B,C),ol(Pa,Pa.current,C),!0}}function up(C,y,B){{var U=C.stateNode;if(!U)throw Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.");if(B){var Z=cm(C,y,ll);U.__reactInternalMemoizedMergedChildContext=Z,ba(Pa,C),ba(_c,C),ol(_c,Z,C),ol(Pa,B,C)}else ba(Pa,C),ol(Pa,B,C)}}function qA(C){{if(!(M5(C)&&C.tag===E))throw Error("Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");var y=C;do{switch(y.tag){case M:return y.stateNode.context;case E:{var B=y.type;if(ch(B))return y.stateNode.__reactInternalMemoizedMergedChildContext;break}}y=y.return}while(y!==null);throw Error("Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.")}}var Fg=0,QA=1,kg=2,um=null,Bd=null,L2=!1,c8=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u";function oS(C){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")return!1;var y=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(y.isDisabled)return!0;if(!y.supportsFiber)return x("The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://reactjs.org/link/react-devtools"),!0;try{um=y.inject(C),Bd=y}catch(B){x("React instrumentation encountered an error: %s.",B)}return!0}function u8(C,y){if(Bd&&typeof Bd.onScheduleFiberRoot=="function")try{Bd.onScheduleFiberRoot(um,C,y)}catch(B){L2||(L2=!0,x("React instrumentation encountered an error: %s",B))}}function zd(C,y){if(Bd&&typeof Bd.onCommitFiberRoot=="function")try{var B=(C.current.flags&Zs)===Zs;ue&&Bd.onCommitFiberRoot(um,C,y,B)}catch(U){L2||(L2=!0,x("React instrumentation encountered an error: %s",U))}}function hp(C){if(Bd&&typeof Bd.onCommitFiberUnmount=="function")try{Bd.onCommitFiberUnmount(um,C)}catch(y){L2||(L2=!0,x("React instrumentation encountered an error: %s",y))}}var JA=m.unstable_runWithPriority,$A=m.unstable_scheduleCallback,lS=m.unstable_cancelCallback,EE=m.unstable_shouldYield,h8=m.unstable_requestPaint,eC=m.unstable_now,tC=m.unstable_getCurrentPriorityLevel,Ug=m.unstable_ImmediatePriority,cS=m.unstable_UserBlockingPriority,jg=m.unstable_NormalPriority,d8=m.unstable_LowPriority,uS=m.unstable_IdlePriority;if(!(_.__interactionsRef!=null&&_.__interactionsRef.current!=null))throw Error("It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at https://reactjs.org/link/profiling");var Vg={},hh=99,I2=98,Fd=97,iC=96,sC=95,iu=90,dp=EE,S1=h8!==void 0?h8:function(){},y1=null,hm=null,dm=!1,hS=eC(),El=hS<1e4?eC:function(){return eC()-hS};function Eu(){switch(tC()){case Ug:return hh;case cS:return I2;case jg:return Fd;case d8:return iC;case uS:return sC;default:throw Error("Unknown priority level.")}}function fm(C){switch(C){case hh:return Ug;case I2:return cS;case Fd:return jg;case iC:return d8;case sC:return uS;default:throw Error("Unknown priority level.")}}function P2(C,y){var B=fm(C);return JA(B,y)}function O2(C,y,B){var U=fm(C);return $A(U,y,B)}function Tl(C){return y1===null?(y1=[C],hm=$A(Ug,R2)):y1.push(C),Vg}function fp(C){C!==Vg&&lS(C)}function kd(){if(hm!==null){var C=hm;hm=null,lS(C)}R2()}function R2(){if(!dm&&y1!==null){dm=!0;var C=0;try{var y=!0,B=y1;P2(hh,function(){for(;C<B.length;C++){var U=B[C];do U=U(y);while(U!==null)}}),y1=null}catch(U){throw y1!==null&&(y1=y1.slice(C+1)),$A(Ug,kd),U}finally{dm=!1}}}var D2="17.0.2",Ga=0,Wa=1,ao=2,N2=4,Tu=8,Ha=16,oo=d.ReactCurrentBatchConfig,Lu=0;function pp(){return oo.transition}var Ya={recordUnsafeLifecycleWarnings:function(C,y){},flushPendingUnsafeLifecycleWarnings:function(){},recordLegacyContextWarning:function(C,y){},flushLegacyContextWarning:function(){},discardPendingWarnings:function(){}};{var TE=function(C){for(var y=null,B=C;B!==null;)B.mode&Wa&&(y=B),B=B.return;return y},mp=function(C){var y=[];return C.forEach(function(B){y.push(B)}),y.sort().join(", ")},Gg=[],pm=[],vc=[],Wg=[],Ud=[],jd=[],Yh=new Set;Ya.recordUnsafeLifecycleWarnings=function(C,y){Yh.has(C.type)||(typeof y.componentWillMount=="function"&&y.componentWillMount.__suppressDeprecationWarning!==!0&&Gg.push(C),C.mode&Wa&&typeof y.UNSAFE_componentWillMount=="function"&&pm.push(C),typeof y.componentWillReceiveProps=="function"&&y.componentWillReceiveProps.__suppressDeprecationWarning!==!0&&vc.push(C),C.mode&Wa&&typeof y.UNSAFE_componentWillReceiveProps=="function"&&Wg.push(C),typeof y.componentWillUpdate=="function"&&y.componentWillUpdate.__suppressDeprecationWarning!==!0&&Ud.push(C),C.mode&Wa&&typeof y.UNSAFE_componentWillUpdate=="function"&&jd.push(C))},Ya.flushPendingUnsafeLifecycleWarnings=function(){var C=new Set;Gg.length>0&&(Gg.forEach(function(ce){C.add(Vi(ce.type)||"Component"),Yh.add(ce.type)}),Gg=[]);var y=new Set;pm.length>0&&(pm.forEach(function(ce){y.add(Vi(ce.type)||"Component"),Yh.add(ce.type)}),pm=[]);var B=new Set;vc.length>0&&(vc.forEach(function(ce){B.add(Vi(ce.type)||"Component"),Yh.add(ce.type)}),vc=[]);var U=new Set;Wg.length>0&&(Wg.forEach(function(ce){U.add(Vi(ce.type)||"Component"),Yh.add(ce.type)}),Wg=[]);var Z=new Set;Ud.length>0&&(Ud.forEach(function(ce){Z.add(Vi(ce.type)||"Component"),Yh.add(ce.type)}),Ud=[]);var g=new Set;if(jd.length>0&&(jd.forEach(function(ce){g.add(Vi(ce.type)||"Component"),Yh.add(ce.type)}),jd=[]),y.size>0){var v=mp(y);x(`Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move code with side effects to componentDidMount, and set initial state in the constructor.

Please update the following components: %s`,v)}if(U.size>0){var L=mp(U);x(`Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state

Please update the following components: %s`,L)}if(g.size>0){var z=mp(g);x(`Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.

Please update the following components: %s`,z)}if(C.size>0){var j=mp(C);h(`componentWillMount has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move code with side effects to componentDidMount, and set initial state in the constructor.
* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder.

Please update the following components: %s`,j)}if(B.size>0){var J=mp(B);h(`componentWillReceiveProps has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder.

Please update the following components: %s`,J)}if(Z.size>0){var le=mp(Z);h(`componentWillUpdate has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.
* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder.

Please update the following components: %s`,le)}};var zf=new Map,mm=new Set;Ya.recordLegacyContextWarning=function(C,y){var B=TE(C);if(B===null){x("Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.");return}if(!mm.has(C.type)){var U=zf.get(B);(C.type.contextTypes!=null||C.type.childContextTypes!=null||y!==null&&typeof y.getChildContext=="function")&&(U===void 0&&(U=[],zf.set(B,U)),U.push(C))}},Ya.flushLegacyContextWarning=function(){zf.forEach(function(C,y){if(C.length!==0){var B=C[0],U=new Set;C.forEach(function(g){U.add(Vi(g.type)||"Component"),mm.add(g.type)});var Z=mp(U);try{sr(B),x(`Legacy context API has been detected within a strict-mode tree.

The old API will be supported in all 16.x releases, but applications using it should migrate to the new version.

Please update the following components: %s

Learn more about this warning here: https://reactjs.org/link/legacy-context`,Z)}finally{yn()}}})},Ya.discardPendingWarnings=function(){Gg=[],pm=[],vc=[],Wg=[],Ud=[],jd=[],zf=new Map}}function Ac(C,y){if(C&&C.defaultProps){var B=p({},y),U=C.defaultProps;for(var Z in U)B[Z]===void 0&&(B[Z]=U[Z]);return B}return y}var M1=1073741823,w2=wd(null),gp;gp={};var Hg=null,Gl=null,Ff=null,gm=!1;function _p(){Hg=null,Gl=null,Ff=null,gm=!1}function Yg(){gm=!0}function kf(){gm=!1}function _m(C,y){var B=C.type._context;ol(w2,B._currentValue,C),B._currentValue=y,B._currentRenderer!==void 0&&B._currentRenderer!==null&&B._currentRenderer!==gp&&x("Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."),B._currentRenderer=gp}function vm(C){var y=w2.current;ba(w2,C);var B=C.type._context;B._currentValue=y}function f8(C,y,B){if(Hh(B,y))return 0;var U=typeof C._calculateChangedBits=="function"?C._calculateChangedBits(B,y):M1;return(U&M1)!==U&&x("calculateChangedBits: Expected the return value to be a 31-bit integer. Instead received: %s",U),U|0}function rC(C,y){for(var B=C;B!==null;){var U=B.alternate;if(!X0(B.childLanes,y))B.childLanes=dr(B.childLanes,y),U!==null&&(U.childLanes=dr(U.childLanes,y));else if(U!==null&&!X0(U.childLanes,y))U.childLanes=dr(U.childLanes,y);else break;B=B.return}}function nC(C,y,B,U){var Z=C.child;for(Z!==null&&(Z.return=C);Z!==null;){var g=void 0,v=Z.dependencies;if(v!==null){g=Z.child;for(var L=v.firstContext;L!==null;){if(L.context===y&&L.observedBits&B){if(Z.tag===E){var z=Xh(Va,$c(U));z.tag=p8,Vd(Z,z)}Z.lanes=dr(Z.lanes,U);var j=Z.alternate;j!==null&&(j.lanes=dr(j.lanes,U)),rC(Z.return,U),v.lanes=dr(v.lanes,U);break}L=L.next}}else Z.tag===D?g=Z.type===C.type?null:Z.child:g=Z.child;if(g!==null)g.return=Z;else for(g=Z;g!==null;){if(g===C){g=null;break}var J=g.sibling;if(J!==null){J.return=g.return,g=J;break}g=g.return}Z=g}}function Uf(C,y){Hg=C,Gl=null,Ff=null;var B=C.dependencies;if(B!==null){var U=B.firstContext;U!==null&&(mc(B.lanes,y)&&ev(),B.firstContext=null)}}function xo(C,y){if(gm&&x("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."),Ff!==C){if(!(y===!1||y===0)){var B;typeof y!="number"||y===M1?(Ff=C,B=M1):B=y;var U={context:C,observedBits:B,next:null};if(Gl===null){if(Hg===null)throw Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");Gl=U,Hg.dependencies={lanes:xi,firstContext:U,responders:null}}else Gl=Gl.next=U}}return C._currentValue}var dS=0,aC=1,p8=2,B2=3,Xa=!1,m8,Xg;m8=!1,Xg=null;function Am(C){var y={baseState:C.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null};C.updateQueue=y}function Zg(C,y){var B=y.updateQueue,U=C.updateQueue;if(B===U){var Z={baseState:U.baseState,firstBaseUpdate:U.firstBaseUpdate,lastBaseUpdate:U.lastBaseUpdate,shared:U.shared,effects:U.effects};y.updateQueue=Z}}function Xh(C,y){var B={eventTime:C,lane:y,tag:dS,payload:null,callback:null,next:null};return B}function Vd(C,y){var B=C.updateQueue;if(B!==null){var U=B.shared,Z=U.pending;Z===null?y.next=y:(y.next=Z.next,Z.next=y),U.pending=y,Xg===U&&!m8&&(x("An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback."),m8=!0)}}function Kg(C,y){var B=C.updateQueue,U=C.alternate;if(U!==null){var Z=U.updateQueue;if(B===Z){var g=null,v=null,L=B.firstBaseUpdate;if(L!==null){var z=L;do{var j={eventTime:z.eventTime,lane:z.lane,tag:z.tag,payload:z.payload,callback:z.callback,next:null};v===null?g=v=j:(v.next=j,v=j),z=z.next}while(z!==null);v===null?g=v=y:(v.next=y,v=y)}else g=v=y;B={baseState:Z.baseState,firstBaseUpdate:g,lastBaseUpdate:v,shared:Z.shared,effects:Z.effects},C.updateQueue=B;return}}var J=B.lastBaseUpdate;J===null?B.firstBaseUpdate=y:J.next=y,B.lastBaseUpdate=y}function oC(C,y,B,U,Z,g){switch(B.tag){case aC:{var v=B.payload;if(typeof v=="function"){Yg();var L=v.call(g,U,Z);{if(C.mode&Wa){to();try{v.call(g,U,Z)}finally{Gr()}}kf()}return L}return v}case B2:C.flags=C.flags&~bu|Zs;case dS:{var z=B.payload,j;if(typeof z=="function"){Yg(),j=z.call(g,U,Z);{if(C.mode&Wa){to();try{z.call(g,U,Z)}finally{Gr()}}kf()}}else j=z;return j==null?U:p({},U,j)}case p8:return Xa=!0,U}return U}function jf(C,y,B,U){var Z=C.updateQueue;Xa=!1,Xg=Z.shared;var g=Z.firstBaseUpdate,v=Z.lastBaseUpdate,L=Z.shared.pending;if(L!==null){Z.shared.pending=null;var z=L,j=z.next;z.next=null,v===null?g=j:v.next=j,v=z;var J=C.alternate;if(J!==null){var le=J.updateQueue,ce=le.lastBaseUpdate;ce!==v&&(ce===null?le.firstBaseUpdate=j:ce.next=j,le.lastBaseUpdate=z)}}if(g!==null){var _e=Z.baseState,Oe=xi,Fe=null,pt=null,it=null,Mt=g;do{var Jt=Mt.lane,Ai=Mt.eventTime;if(X0(U,Jt)){if(it!==null){var Ft={eventTime:Ai,lane:Vl,tag:Mt.tag,payload:Mt.payload,callback:Mt.callback,next:null};it=it.next=Ft}_e=oC(C,Z,Mt,_e,y,B);var ut=Mt.callback;if(ut!==null){C.flags|=no;var ni=Z.effects;ni===null?Z.effects=[Mt]:ni.push(Mt)}}else{var Ct={eventTime:Ai,lane:Jt,tag:Mt.tag,payload:Mt.payload,callback:Mt.callback,next:null};it===null?(pt=it=Ct,Fe=_e):it=it.next=Ct,Oe=dr(Oe,Jt)}if(Mt=Mt.next,Mt===null){if(L=Z.shared.pending,L===null)break;var Ei=L,ht=Ei.next;Ei.next=null,Mt=ht,Z.lastBaseUpdate=Ei,Z.shared.pending=null}}while(!0);it===null&&(Fe=_e),Z.baseState=Fe,Z.firstBaseUpdate=pt,Z.lastBaseUpdate=it,P6(Oe),C.lanes=Oe,C.memoizedState=_e}Xg=null}function Vf(C,y){if(typeof C!="function")throw Error("Invalid argument passed as callback. Expected a function. Instead received: "+C);C.call(y)}function E1(){Xa=!1}function Cm(){return Xa}function fS(C,y,B){var U=y.effects;if(y.effects=null,U!==null)for(var Z=0;Z<U.length;Z++){var g=U[Z],v=g.callback;v!==null&&(g.callback=null,Vf(v,B))}}var Gf={},LE=Array.isArray,xm=new f.Component().refs,vp,g8,qg,lC,Ap,_8,bm,Qg,Jg,$g;{vp=new Set,g8=new Set,qg=new Set,lC=new Set,Qg=new Set,Ap=new Set,Jg=new Set,$g=new Set;var cC=new Set;bm=function(C,y){if(!(C===null||typeof C=="function")){var B=y+"_"+C;cC.has(B)||(cC.add(B),x("%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.",y,C))}},_8=function(C,y){if(y===void 0){var B=Vi(C)||"Component";Ap.has(B)||(Ap.add(B),x("%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.",B))}},Object.defineProperty(Gf,"_processChildContext",{enumerable:!1,value:function(){throw Error("_processChildContext is not available in React 16+. This likely means you have multiple copies of React and are attempting to nest a React 15 tree inside a React 16 tree using unstable_renderSubtreeIntoContainer, which isn't supported. Try to make sure you have only one copy of React (and ideally, switch to ReactDOM.createPortal).")}}),Object.freeze(Gf)}function Cp(C,y,B,U){var Z=C.memoizedState;if(C.mode&Wa){to();try{B(U,Z)}finally{Gr()}}var g=B(U,Z);_8(y,g);var v=g==null?Z:p({},Z,g);if(C.memoizedState=v,C.lanes===xi){var L=C.updateQueue;L.baseState=v}}var Sm={isMounted:L_,enqueueSetState:function(C,y,B){var U=fc(C),Z=Xl(),g=w1(U),v=Xh(Z,g);v.payload=y,B!=null&&(bm(B,"setState"),v.callback=B),Vd(U,v),ul(U,g,Z)},enqueueReplaceState:function(C,y,B){var U=fc(C),Z=Xl(),g=w1(U),v=Xh(Z,g);v.tag=aC,v.payload=y,B!=null&&(bm(B,"replaceState"),v.callback=B),Vd(U,v),ul(U,g,Z)},enqueueForceUpdate:function(C,y){var B=fc(C),U=Xl(),Z=w1(B),g=Xh(U,Z);g.tag=p8,y!=null&&(bm(y,"forceUpdate"),g.callback=y),Vd(B,g),ul(B,Z,U)}};function v8(C,y,B,U,Z,g,v){var L=C.stateNode;if(typeof L.shouldComponentUpdate=="function"){if(C.mode&Wa){to();try{L.shouldComponentUpdate(U,g,v)}finally{Gr()}}var z=L.shouldComponentUpdate(U,g,v);return z===void 0&&x("%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.",Vi(y)||"Component"),z}return y.prototype&&y.prototype.isPureReactComponent?!vg(B,U)||!vg(Z,g):!0}function uC(C,y,B){var U=C.stateNode;{var Z=Vi(y)||"Component",g=U.render;g||(y.prototype&&typeof y.prototype.render=="function"?x("%s(...): No `render` method found on the returned component instance: did you accidentally return an object from the constructor?",Z):x("%s(...): No `render` method found on the returned component instance: you may have forgotten to define `render`.",Z)),U.getInitialState&&!U.getInitialState.isReactClassApproved&&!U.state&&x("getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?",Z),U.getDefaultProps&&!U.getDefaultProps.isReactClassApproved&&x("getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.",Z),U.propTypes&&x("propTypes was defined as an instance property on %s. Use a static property to define propTypes instead.",Z),U.contextType&&x("contextType was defined as an instance property on %s. Use a static property to define contextType instead.",Z),U.contextTypes&&x("contextTypes was defined as an instance property on %s. Use a static property to define contextTypes instead.",Z),y.contextType&&y.contextTypes&&!Jg.has(y)&&(Jg.add(y),x("%s declares both contextTypes and contextType static properties. The legacy contextTypes property will be ignored.",Z)),typeof U.componentShouldUpdate=="function"&&x("%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",Z),y.prototype&&y.prototype.isPureReactComponent&&typeof U.shouldComponentUpdate<"u"&&x("%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.",Vi(y)||"A pure component"),typeof U.componentDidUnmount=="function"&&x("%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?",Z),typeof U.componentDidReceiveProps=="function"&&x("%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().",Z),typeof U.componentWillRecieveProps=="function"&&x("%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",Z),typeof U.UNSAFE_componentWillRecieveProps=="function"&&x("%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?",Z);var v=U.props!==B;U.props!==void 0&&v&&x("%s(...): When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.",Z,Z),U.defaultProps&&x("Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.",Z,Z),typeof U.getSnapshotBeforeUpdate=="function"&&typeof U.componentDidUpdate!="function"&&!qg.has(y)&&(qg.add(y),x("%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.",Vi(y))),typeof U.getDerivedStateFromProps=="function"&&x("%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.",Z),typeof U.getDerivedStateFromError=="function"&&x("%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.",Z),typeof y.getSnapshotBeforeUpdate=="function"&&x("%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.",Z);var L=U.state;L&&(typeof L!="object"||LE(L))&&x("%s.state: must be set to an object or null",Z),typeof U.getChildContext=="function"&&typeof y.childContextTypes!="object"&&x("%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().",Z)}}function A8(C,y){y.updater=Sm,C.stateNode=y,y5(y,C),y._reactInternalInstance=Gf}function e6(C,y,B){var U=!1,Z=Do,g=Do,v=y.contextType;if("contextType"in y){var L=v===null||v!==void 0&&v.$$typeof===li&&v._context===void 0;if(!L&&!$g.has(y)){$g.add(y);var z="";v===void 0?z=" However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file.":typeof v!="object"?z=" However, it is set to a "+typeof v+".":v.$$typeof===Oi?z=" Did you accidentally pass the Context.Provider instead?":v._context!==void 0?z=" Did you accidentally pass the Context.Consumer instead?":z=" However, it is set to an object with keys {"+Object.keys(v).join(", ")+"}.",x("%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s",Vi(y)||"Component",z)}}if(typeof v=="object"&&v!==null)g=xo(v);else{Z=Bf(C,y,!0);var j=y.contextTypes;U=j!=null,g=U?yu(C,Z):Do}if(C.mode&Wa){to();try{new y(B,g)}finally{Gr()}}var J=new y(B,g),le=C.memoizedState=J.state!==null&&J.state!==void 0?J.state:null;A8(C,J);{if(typeof y.getDerivedStateFromProps=="function"&&le===null){var ce=Vi(y)||"Component";g8.has(ce)||(g8.add(ce),x("`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.",ce,J.state===null?"null":"undefined",ce))}if(typeof y.getDerivedStateFromProps=="function"||typeof J.getSnapshotBeforeUpdate=="function"){var _e=null,Oe=null,Fe=null;if(typeof J.componentWillMount=="function"&&J.componentWillMount.__suppressDeprecationWarning!==!0?_e="componentWillMount":typeof J.UNSAFE_componentWillMount=="function"&&(_e="UNSAFE_componentWillMount"),typeof J.componentWillReceiveProps=="function"&&J.componentWillReceiveProps.__suppressDeprecationWarning!==!0?Oe="componentWillReceiveProps":typeof J.UNSAFE_componentWillReceiveProps=="function"&&(Oe="UNSAFE_componentWillReceiveProps"),typeof J.componentWillUpdate=="function"&&J.componentWillUpdate.__suppressDeprecationWarning!==!0?Fe="componentWillUpdate":typeof J.UNSAFE_componentWillUpdate=="function"&&(Fe="UNSAFE_componentWillUpdate"),_e!==null||Oe!==null||Fe!==null){var pt=Vi(y)||"Component",it=typeof y.getDerivedStateFromProps=="function"?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";lC.has(pt)||(lC.add(pt),x(`Unsafe legacy lifecycles will not be called for components using new component APIs.

%s uses %s but also contains the following legacy lifecycles:%s%s%s

The above lifecycles should be removed. Learn more about this warning here:
https://reactjs.org/link/unsafe-component-lifecycles`,pt,it,_e!==null?`
  `+_e:"",Oe!==null?`
  `+Oe:"",Fe!==null?`
  `+Fe:""))}}}return U&&Su(C,Z,g),J}function C8(C,y){var B=y.state;typeof y.componentWillMount=="function"&&y.componentWillMount(),typeof y.UNSAFE_componentWillMount=="function"&&y.UNSAFE_componentWillMount(),B!==y.state&&(x("%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",Vi(C.type)||"Component"),Sm.enqueueReplaceState(y,y.state,null))}function hC(C,y,B,U){var Z=y.state;if(typeof y.componentWillReceiveProps=="function"&&y.componentWillReceiveProps(B,U),typeof y.UNSAFE_componentWillReceiveProps=="function"&&y.UNSAFE_componentWillReceiveProps(B,U),y.state!==Z){{var g=Vi(C.type)||"Component";vp.has(g)||(vp.add(g),x("%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",g))}Sm.enqueueReplaceState(y,y.state,null)}}function dC(C,y,B,U){uC(C,y,B);var Z=C.stateNode;Z.props=B,Z.state=C.memoizedState,Z.refs=xm,Am(C);var g=y.contextType;if(typeof g=="object"&&g!==null)Z.context=xo(g);else{var v=Bf(C,y,!0);Z.context=yu(C,v)}{if(Z.state===B){var L=Vi(y)||"Component";Qg.has(L)||(Qg.add(L),x("%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.",L))}C.mode&Wa&&Ya.recordLegacyContextWarning(C,Z),Ya.recordUnsafeLifecycleWarnings(C,Z)}jf(C,B,Z,U),Z.state=C.memoizedState;var z=y.getDerivedStateFromProps;typeof z=="function"&&(Cp(C,y,z,B),Z.state=C.memoizedState),typeof y.getDerivedStateFromProps!="function"&&typeof Z.getSnapshotBeforeUpdate!="function"&&(typeof Z.UNSAFE_componentWillMount=="function"||typeof Z.componentWillMount=="function")&&(C8(C,Z),jf(C,B,Z,U),Z.state=C.memoizedState),typeof Z.componentDidMount=="function"&&(C.flags|=Aa)}function fC(C,y,B,U){var Z=C.stateNode,g=C.memoizedProps;Z.props=g;var v=Z.context,L=y.contextType,z=Do;if(typeof L=="object"&&L!==null)z=xo(L);else{var j=Bf(C,y,!0);z=yu(C,j)}var J=y.getDerivedStateFromProps,le=typeof J=="function"||typeof Z.getSnapshotBeforeUpdate=="function";!le&&(typeof Z.UNSAFE_componentWillReceiveProps=="function"||typeof Z.componentWillReceiveProps=="function")&&(g!==B||v!==z)&&hC(C,Z,B,z),E1();var ce=C.memoizedState,_e=Z.state=ce;if(jf(C,B,Z,U),_e=C.memoizedState,g===B&&ce===_e&&!Mu()&&!Cm())return typeof Z.componentDidMount=="function"&&(C.flags|=Aa),!1;typeof J=="function"&&(Cp(C,y,J,B),_e=C.memoizedState);var Oe=Cm()||v8(C,y,g,B,ce,_e,z);return Oe?(!le&&(typeof Z.UNSAFE_componentWillMount=="function"||typeof Z.componentWillMount=="function")&&(typeof Z.componentWillMount=="function"&&Z.componentWillMount(),typeof Z.UNSAFE_componentWillMount=="function"&&Z.UNSAFE_componentWillMount()),typeof Z.componentDidMount=="function"&&(C.flags|=Aa)):(typeof Z.componentDidMount=="function"&&(C.flags|=Aa),C.memoizedProps=B,C.memoizedState=_e),Z.props=B,Z.state=_e,Z.context=z,Oe}function pC(C,y,B,U,Z){var g=y.stateNode;Zg(C,y);var v=y.memoizedProps,L=y.type===y.elementType?v:Ac(y.type,v);g.props=L;var z=y.pendingProps,j=g.context,J=B.contextType,le=Do;if(typeof J=="object"&&J!==null)le=xo(J);else{var ce=Bf(y,B,!0);le=yu(y,ce)}var _e=B.getDerivedStateFromProps,Oe=typeof _e=="function"||typeof g.getSnapshotBeforeUpdate=="function";!Oe&&(typeof g.UNSAFE_componentWillReceiveProps=="function"||typeof g.componentWillReceiveProps=="function")&&(v!==z||j!==le)&&hC(y,g,U,le),E1();var Fe=y.memoizedState,pt=g.state=Fe;if(jf(y,U,g,Z),pt=y.memoizedState,v===z&&Fe===pt&&!Mu()&&!Cm())return typeof g.componentDidUpdate=="function"&&(v!==C.memoizedProps||Fe!==C.memoizedState)&&(y.flags|=Aa),typeof g.getSnapshotBeforeUpdate=="function"&&(v!==C.memoizedProps||Fe!==C.memoizedState)&&(y.flags|=Qc),!1;typeof _e=="function"&&(Cp(y,B,_e,U),pt=y.memoizedState);var it=Cm()||v8(y,B,L,U,Fe,pt,le);return it?(!Oe&&(typeof g.UNSAFE_componentWillUpdate=="function"||typeof g.componentWillUpdate=="function")&&(typeof g.componentWillUpdate=="function"&&g.componentWillUpdate(U,pt,le),typeof g.UNSAFE_componentWillUpdate=="function"&&g.UNSAFE_componentWillUpdate(U,pt,le)),typeof g.componentDidUpdate=="function"&&(y.flags|=Aa),typeof g.getSnapshotBeforeUpdate=="function"&&(y.flags|=Qc)):(typeof g.componentDidUpdate=="function"&&(v!==C.memoizedProps||Fe!==C.memoizedState)&&(y.flags|=Aa),typeof g.getSnapshotBeforeUpdate=="function"&&(v!==C.memoizedProps||Fe!==C.memoizedState)&&(y.flags|=Qc),y.memoizedProps=U,y.memoizedState=pt),g.props=U,g.state=pt,g.context=le,it}var mC,x8,ym,gC,t6,b8=function(C,y){};mC=!1,x8=!1,ym={},gC={},t6={},b8=function(C,y){if(!(C===null||typeof C!="object")&&!(!C._store||C._store.validated||C.key!=null)){if(typeof C._store!="object")throw Error("React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.");C._store.validated=!0;var B=Vi(y.type)||"Component";gC[B]||(gC[B]=!0,x('Each child in a list should have a unique "key" prop. See https://reactjs.org/link/warning-keys for more information.'))}};var xp=Array.isArray;function Wf(C,y,B){var U=B.ref;if(U!==null&&typeof U!="function"&&typeof U!="object"){if((C.mode&Wa||Ae)&&!(B._owner&&B._self&&B._owner.stateNode!==B._self)){var Z=Vi(C.type)||"Component";ym[Z]||(x('A string ref, "%s", has been found within a strict mode tree. String refs are a source of potential bugs and should be avoided. We recommend using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',U),ym[Z]=!0)}if(B._owner){var g=B._owner,v;if(g){var L=g;if(L.tag!==E)throw Error("Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref");v=L.stateNode}if(!v)throw Error("Missing owner for string ref "+U+". This error is likely caused by a bug in React. Please file an issue.");var z=""+U;if(y!==null&&y.ref!==null&&typeof y.ref=="function"&&y.ref._stringRef===z)return y.ref;var j=function(J){var le=v.refs;le===xm&&(le=v.refs={}),J===null?delete le[z]:le[z]=J};return j._stringRef=z,j}else{if(typeof U!="string")throw Error("Expected ref to be a function, a string, an object returned by React.createRef(), or null.");if(!B._owner)throw Error("Element ref was specified as a string ("+U+`) but no owner was set. This could happen for one of the following reasons:
1. You may be adding a ref to a function component
2. You may be adding a ref to a component that was not created inside a component's render method
3. You have multiple copies of React loaded
See https://reactjs.org/link/refs-must-have-owner for more information.`)}}return U}function Mm(C,y){if(C.type!=="textarea")throw Error("Objects are not valid as a React child (found: "+(Object.prototype.toString.call(y)==="[object Object]"?"object with keys {"+Object.keys(y).join(", ")+"}":y)+"). If you meant to render a collection of children, use an array instead.")}function bp(C){{var y=Vi(C.type)||"Component";if(t6[y])return;t6[y]=!0,x("Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render. Or maybe you meant to call this function rather than return it.")}}function _C(C){function y(Ct,Ft){if(C){var ut=Ct.lastEffect;ut!==null?(ut.nextEffect=Ft,Ct.lastEffect=Ft):Ct.firstEffect=Ct.lastEffect=Ft,Ft.nextEffect=null,Ft.flags=mn}}function B(Ct,Ft){if(!C)return null;for(var ut=Ft;ut!==null;)y(Ct,ut),ut=ut.sibling;return null}function U(Ct,Ft){for(var ut=new Map,ni=Ft;ni!==null;)ni.key!==null?ut.set(ni.key,ni):ut.set(ni.index,ni),ni=ni.sibling;return ut}function Z(Ct,Ft){var ut=p0(Ct,Ft);return ut.index=0,ut.sibling=null,ut}function g(Ct,Ft,ut){if(Ct.index=ut,!C)return Ft;var ni=Ct.alternate;if(ni!==null){var Ei=ni.index;return Ei<Ft?(Ct.flags=oa,Ft):Ei}else return Ct.flags=oa,Ft}function v(Ct){return C&&Ct.alternate===null&&(Ct.flags=oa),Ct}function L(Ct,Ft,ut,ni){if(Ft===null||Ft.tag!==R){var Ei=Rx(ut,Ct.mode,ni);return Ei.return=Ct,Ei}else{var ht=Z(Ft,ut);return ht.return=Ct,ht}}function z(Ct,Ft,ut,ni){if(Ft!==null&&(Ft.elementType===ut.type||Hp(Ft,ut))){var Ei=Z(Ft,ut.props);return Ei.ref=Wf(Ct,Ft,ut),Ei.return=Ct,Ei._debugSource=ut._source,Ei._debugOwner=ut._owner,Ei}var ht=Px(ut,Ct.mode,ni);return ht.ref=Wf(Ct,Ft,ut),ht.return=Ct,ht}function j(Ct,Ft,ut,ni){if(Ft===null||Ft.tag!==T||Ft.stateNode.containerInfo!==ut.containerInfo||Ft.stateNode.implementation!==ut.implementation){var Ei=Pv(ut,Ct.mode,ni);return Ei.return=Ct,Ei}else{var ht=Z(Ft,ut.children||[]);return ht.return=Ct,ht}}function J(Ct,Ft,ut,ni,Ei){if(Ft===null||Ft.tag!==I){var ht=zu(ut,Ct.mode,ni,Ei);return ht.return=Ct,ht}else{var Vt=Z(Ft,ut);return Vt.return=Ct,Vt}}function le(Ct,Ft,ut){if(typeof Ft=="string"||typeof Ft=="number"){var ni=Rx(""+Ft,Ct.mode,ut);return ni.return=Ct,ni}if(typeof Ft=="object"&&Ft!==null){switch(Ft.$$typeof){case ji:{var Ei=Px(Ft,Ct.mode,ut);return Ei.ref=Wf(Ct,null,Ft),Ei.return=Ct,Ei}case ki:{var ht=Pv(Ft,Ct.mode,ut);return ht.return=Ct,ht}}if(xp(Ft)||ns(Ft)){var Vt=zu(Ft,Ct.mode,ut,null);return Vt.return=Ct,Vt}Mm(Ct,Ft)}return typeof Ft=="function"&&bp(Ct),null}function ce(Ct,Ft,ut,ni){var Ei=Ft!==null?Ft.key:null;if(typeof ut=="string"||typeof ut=="number")return Ei!==null?null:L(Ct,Ft,""+ut,ni);if(typeof ut=="object"&&ut!==null){switch(ut.$$typeof){case ji:return ut.key===Ei?ut.type===os?J(Ct,Ft,ut.props.children,ni,Ei):z(Ct,Ft,ut,ni):null;case ki:return ut.key===Ei?j(Ct,Ft,ut,ni):null}if(xp(ut)||ns(ut))return Ei!==null?null:J(Ct,Ft,ut,ni,null);Mm(Ct,ut)}return typeof ut=="function"&&bp(Ct),null}function _e(Ct,Ft,ut,ni,Ei){if(typeof ni=="string"||typeof ni=="number"){var ht=Ct.get(ut)||null;return L(Ft,ht,""+ni,Ei)}if(typeof ni=="object"&&ni!==null){switch(ni.$$typeof){case ji:{var Vt=Ct.get(ni.key===null?ut:ni.key)||null;return ni.type===os?J(Ft,Vt,ni.props.children,Ei,ni.key):z(Ft,Vt,ni,Ei)}case ki:{var Et=Ct.get(ni.key===null?ut:ni.key)||null;return j(Ft,Et,ni,Ei)}}if(xp(ni)||ns(ni)){var di=Ct.get(ut)||null;return J(Ft,di,ni,Ei,null)}Mm(Ft,ni)}return typeof ni=="function"&&bp(Ft),null}function Oe(Ct,Ft,ut){{if(typeof Ct!="object"||Ct===null)return Ft;switch(Ct.$$typeof){case ji:case ki:b8(Ct,ut);var ni=Ct.key;if(typeof ni!="string")break;if(Ft===null){Ft=new Set,Ft.add(ni);break}if(!Ft.has(ni)){Ft.add(ni);break}x("Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted — the behavior is unsupported and could change in a future version.",ni);break}}return Ft}function Fe(Ct,Ft,ut,ni){for(var Ei=null,ht=0;ht<ut.length;ht++){var Vt=ut[ht];Ei=Oe(Vt,Ei,Ct)}for(var Et=null,di=null,yi=Ft,Gi=0,_s=0,$s=null;yi!==null&&_s<ut.length;_s++){yi.index>_s?($s=yi,yi=null):$s=yi.sibling;var br=ce(Ct,yi,ut[_s],ni);if(br===null){yi===null&&(yi=$s);break}C&&yi&&br.alternate===null&&y(Ct,yi),Gi=g(br,Gi,_s),di===null?Et=br:di.sibling=br,di=br,yi=$s}if(_s===ut.length)return B(Ct,yi),Et;if(yi===null){for(;_s<ut.length;_s++){var Ks=le(Ct,ut[_s],ni);Ks!==null&&(Gi=g(Ks,Gi,_s),di===null?Et=Ks:di.sibling=Ks,di=Ks)}return Et}for(var kn=U(Ct,yi);_s<ut.length;_s++){var Ns=_e(kn,Ct,_s,ut[_s],ni);Ns!==null&&(C&&Ns.alternate!==null&&kn.delete(Ns.key===null?_s:Ns.key),Gi=g(Ns,Gi,_s),di===null?Et=Ns:di.sibling=Ns,di=Ns)}return C&&kn.forEach(function(sn){return y(Ct,sn)}),Et}function pt(Ct,Ft,ut,ni){var Ei=ns(ut);if(typeof Ei!="function")throw Error("An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.");{typeof Symbol=="function"&&ut[Symbol.toStringTag]==="Generator"&&(x8||x("Using Generators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. Keep in mind you might need to polyfill these features for older browsers."),x8=!0),ut.entries===Ei&&(mC||x("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),mC=!0);var ht=Ei.call(ut);if(ht)for(var Vt=null,Et=ht.next();!Et.done;Et=ht.next()){var di=Et.value;Vt=Oe(di,Vt,Ct)}}var yi=Ei.call(ut);if(yi==null)throw Error("An iterable object provided no iterator.");for(var Gi=null,_s=null,$s=Ft,br=0,Ks=0,kn=null,Ns=yi.next();$s!==null&&!Ns.done;Ks++,Ns=yi.next()){$s.index>Ks?(kn=$s,$s=null):kn=$s.sibling;var sn=ce(Ct,$s,Ns.value,ni);if(sn===null){$s===null&&($s=kn);break}C&&$s&&sn.alternate===null&&y(Ct,$s),br=g(sn,br,Ks),_s===null?Gi=sn:_s.sibling=sn,_s=sn,$s=kn}if(Ns.done)return B(Ct,$s),Gi;if($s===null){for(;!Ns.done;Ks++,Ns=yi.next()){var qa=le(Ct,Ns.value,ni);qa!==null&&(br=g(qa,br,Ks),_s===null?Gi=qa:_s.sibling=qa,_s=qa)}return Gi}for(var co=U(Ct,$s);!Ns.done;Ks++,Ns=yi.next()){var hl=_e(co,Ct,Ks,Ns.value,ni);hl!==null&&(C&&hl.alternate!==null&&co.delete(hl.key===null?Ks:hl.key),br=g(hl,br,Ks),_s===null?Gi=hl:_s.sibling=hl,_s=hl)}return C&&co.forEach(function(uo){return y(Ct,uo)}),Gi}function it(Ct,Ft,ut,ni){if(Ft!==null&&Ft.tag===R){B(Ct,Ft.sibling);var Ei=Z(Ft,ut);return Ei.return=Ct,Ei}B(Ct,Ft);var ht=Rx(ut,Ct.mode,ni);return ht.return=Ct,ht}function Mt(Ct,Ft,ut,ni){for(var Ei=ut.key,ht=Ft;ht!==null;){if(ht.key===Ei){switch(ht.tag){case I:{if(ut.type===os){B(Ct,ht.sibling);var Vt=Z(ht,ut.props.children);return Vt.return=Ct,Vt._debugSource=ut._source,Vt._debugOwner=ut._owner,Vt}break}case oe:default:{if(ht.elementType===ut.type||Hp(ht,ut)){B(Ct,ht.sibling);var Et=Z(ht,ut.props);return Et.ref=Wf(Ct,ht,ut),Et.return=Ct,Et._debugSource=ut._source,Et._debugOwner=ut._owner,Et}break}}B(Ct,ht);break}else y(Ct,ht);ht=ht.sibling}if(ut.type===os){var di=zu(ut.props.children,Ct.mode,ni,ut.key);return di.return=Ct,di}else{var yi=Px(ut,Ct.mode,ni);return yi.ref=Wf(Ct,Ft,ut),yi.return=Ct,yi}}function Jt(Ct,Ft,ut,ni){for(var Ei=ut.key,ht=Ft;ht!==null;){if(ht.key===Ei)if(ht.tag===T&&ht.stateNode.containerInfo===ut.containerInfo&&ht.stateNode.implementation===ut.implementation){B(Ct,ht.sibling);var Vt=Z(ht,ut.children||[]);return Vt.return=Ct,Vt}else{B(Ct,ht);break}else y(Ct,ht);ht=ht.sibling}var Et=Pv(ut,Ct.mode,ni);return Et.return=Ct,Et}function Ai(Ct,Ft,ut,ni){var Ei=typeof ut=="object"&&ut!==null&&ut.type===os&&ut.key===null;Ei&&(ut=ut.props.children);var ht=typeof ut=="object"&&ut!==null;if(ht)switch(ut.$$typeof){case ji:return v(Mt(Ct,Ft,ut,ni));case ki:return v(Jt(Ct,Ft,ut,ni))}if(typeof ut=="string"||typeof ut=="number")return v(it(Ct,Ft,""+ut,ni));if(xp(ut))return Fe(Ct,Ft,ut,ni);if(ns(ut))return pt(Ct,Ft,ut,ni);if(ht&&Mm(Ct,ut),typeof ut=="function"&&bp(Ct),typeof ut>"u"&&!Ei)switch(Ct.tag){case E:{var Vt=Ct.stateNode;if(Vt.render._isMockFunction)break}case oe:case S:case k:case K:throw Error((Vi(Ct.type)||"Component")+"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.")}return B(Ct,Ft)}return Ai}var Hf=_C(!0),Sp=_C(!1);function S8(C,y){if(!(C===null||y.child===C.child))throw Error("Resuming work not yet implemented.");if(y.child!==null){var B=y.child,U=p0(B,B.pendingProps);for(y.child=U,U.return=y;B.sibling!==null;)B=B.sibling,U=U.sibling=p0(B,B.pendingProps),U.return=y;U.sibling=null}}function y8(C,y){for(var B=C.child;B!==null;)bh(B,y),B=B.sibling}var Em={},Zh=wd(Em),yp=wd(Em),M8=wd(Em);function i6(C){if(C===Em)throw Error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.");return C}function Tm(){var C=i6(M8.current);return C}function Gd(C,y){ol(M8,y,C),ol(yp,C,C),ol(Zh,Em,C);var B=DA(y);ba(Zh,C),ol(Zh,B,C)}function T1(C){ba(Zh,C),ba(yp,C),ba(M8,C)}function Lm(){var C=i6(Zh.current);return C}function Im(C){i6(M8.current);var y=i6(Zh.current),B=NA(y,C.type);y!==B&&(ol(yp,C,C),ol(Zh,B,C))}function E8(C){yp.current===C&&(ba(Zh,C),ba(yp,C))}var vC=0,Yf=1,s6=1,Pm=2,dh=wd(vC);function T8(C,y){return(C&y)!==0}function Mp(C){return C&Yf}function r6(C,y){return C&Yf|y}function n6(C,y){return C|y}function Wl(C,y){ol(dh,y,C)}function z2(C){ba(dh,C)}function a6(C,y){var B=C.memoizedState;if(B!==null)return B.dehydrated!==null;var U=C.memoizedProps;return U.fallback===void 0?!1:U.unstable_avoidThisFallback!==!0?!0:!y}function Om(C){for(var y=C;y!==null;){if(y.tag===V){var B=y.memoizedState;if(B!==null){var U=B.dehydrated;if(U===null||AE(U)||n8(U))return y}}else if(y.tag===W&&y.memoizedProps.revealOrder!==void 0){var Z=(y.flags&Zs)!==pn;if(Z)return y}else if(y.child!==null){y.child.return=y,y=y.child;continue}if(y===C)return null;for(;y.sibling===null;){if(y.return===null||y.return===C)return null;y=y.return}y.sibling.return=y.return,y=y.sibling}return null}var AC=0,Kh=1,qh=2,o6=4,Cc=null,F2=null,Iu=!1;function Ep(C){var y=C.stateNode.containerInfo;return F2=VA(y),Cc=C,Iu=!0,!0}function Rm(C,y){switch(C.tag){case M:tS(C.stateNode.containerInfo,y);break;case O:iS(C.type,C.memoizedProps,C.stateNode,y);break}var B=hT();B.stateNode=y,B.return=C,B.flags=mn,C.lastEffect!==null?(C.lastEffect.nextEffect=B,C.lastEffect=B):C.firstEffect=C.lastEffect=B}function su(C,y){switch(y.flags=y.flags&~en|oa,C.tag){case M:{var B=C.stateNode.containerInfo;switch(y.tag){case O:var U=y.type;y.pendingProps,HA(B,U);break;case R:var Z=y.pendingProps;sS(B,Z);break}break}case O:{var g=C.type,v=C.memoizedProps,L=C.stateNode;switch(y.tag){case O:var z=y.type;y.pendingProps,bE(g,v,L,z);break;case R:var j=y.pendingProps;SE(g,v,L,j);break;case V:YA(g,v);break}break}default:return}}function Xf(C,y){switch(C.tag){case O:{var B=C.type;C.pendingProps;var U=vE(y,B);return U!==null?(C.stateNode=U,!0):!1}case R:{var Z=C.pendingProps,g=Q7(y,Z);return g!==null?(C.stateNode=g,!0):!1}case V:return!1;default:return!1}}function Wd(C){if(Iu){var y=F2;if(!y){su(Cc,C),Iu=!1,Cc=C;return}var B=y;if(!Xf(C,y)){if(y=Ng(B),!y||!Xf(C,y)){su(Cc,C),Iu=!1,Cc=C;return}Rm(Cc,B)}Cc=C,F2=VA(y)}}function pS(C,y,B){var U=C.stateNode,Z=CE(U,C.type,C.memoizedProps,y,B,C);return C.updateQueue=Z,Z!==null}function mS(C){var y=C.stateNode,B=C.memoizedProps,U=J7(y,B,C);if(U){var Z=Cc;if(Z!==null)switch(Z.tag){case M:{var g=Z.stateNode.containerInfo;xE(g,y,B);break}case O:{var v=Z.type,L=Z.memoizedProps,z=Z.stateNode;eS(v,L,z,y,B);break}}}return U}function L8(C){var y=C.memoizedState,B=y!==null?y.dehydrated:null;if(!B)throw Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");return GA(B)}function CC(C){for(var y=C.return;y!==null&&y.tag!==O&&y.tag!==M&&y.tag!==V;)y=y.return;Cc=y}function Dm(C){if(C!==Cc)return!1;if(!Iu)return CC(C),Iu=!0,!1;var y=C.type;if(C.tag!==O||y!=="head"&&y!=="body"&&!Rg(y,C.memoizedProps))for(var B=F2;B;)Rm(C,B),B=Ng(B);return CC(C),C.tag===V?F2=L8(C):F2=Cc?Ng(C.stateNode):null,!0}function I8(){Cc=null,F2=null,Iu=!1}function xC(){return Iu}var Tp=[],P8;P8={};function O8(C){Tp.push(C)}function Nm(){for(var C=0;C<Tp.length;C++){var y=Tp[C];y._workInProgressVersionPrimary=null}Tp.length=0}function bC(C){return C._workInProgressVersionPrimary}function Lp(C,y){C._workInProgressVersionPrimary=y,Tp.push(C)}function R8(C){C._currentPrimaryRenderer==null?C._currentPrimaryRenderer=P8:C._currentPrimaryRenderer!==P8&&x("Detected multiple renderers concurrently rendering the same mutable source. This is currently unsupported.")}var cs=d.ReactCurrentDispatcher,ru=d.ReactCurrentBatchConfig,SC,D8;D8={},SC=new Set;var wm=xi,Li=null,ca=null,Yo=null,Zf=!1,k2=!1,ua=25,pi=null,Fn=null,Pu=-1,Ip=!1;function $n(){{var C=pi;Fn===null?Fn=[C]:Fn.push(C)}}function Dt(){{var C=pi;Fn!==null&&(Pu++,Fn[Pu]!==C&&U2(C))}}function xc(C){C!=null&&!Array.isArray(C)&&x("%s received a final argument that is not an array (instead, received `%s`). When specified, the final argument must be an array.",pi,typeof C)}function U2(C){{var y=Vi(Li.type);if(!SC.has(y)&&(SC.add(y),Fn!==null)){for(var B="",U=30,Z=0;Z<=Pu;Z++){for(var g=Fn[Z],v=Z===Pu?C:g,L=Z+1+". "+g;L.length<U;)L+=" ";L+=v+`
`,B+=L}x(`React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks

   Previous render            Next render
   ------------------------------------------------------
%s   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
`,y,B)}}}function Hl(){throw Error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.`)}function Mn(C,y){if(Ip)return!1;if(y===null)return x("%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.",pi),!1;C.length!==y.length&&x(`The final argument passed to %s changed size between renders. The order and size of this array must remain constant.

Previous: %s
Incoming: %s`,pi,"["+y.join(", ")+"]","["+C.join(", ")+"]");for(var B=0;B<y.length&&B<C.length;B++)if(!Hh(C[B],y[B]))return!1;return!0}function rs(C,y,B,U,Z,g){wm=g,Li=y,Fn=C!==null?C._debugHookTypes:null,Pu=-1,Ip=C!==null&&C.type!==y.type,y.memoizedState=null,y.updateQueue=null,y.lanes=xi,C!==null&&C.memoizedState!==null?cs.current=LC:Fn!==null?cs.current=TC:cs.current=G8;var v=B(U,Z);if(k2){var L=0;do{if(k2=!1,!(L<ua))throw Error("Too many re-renders. React limits the number of renders to prevent an infinite loop.");L+=1,Ip=!1,ca=null,Yo=null,y.updateQueue=null,Pu=-1,cs.current=W8,v=B(U,Z)}while(k2)}cs.current=d6,y._debugHookTypes=Fn;var z=ca!==null&&ca.next!==null;if(wm=xi,Li=null,ca=null,Yo=null,pi=null,Fn=null,Pu=-1,Zf=!1,z)throw Error("Rendered fewer hooks than expected. This may be caused by an accidental early return statement.");return v}function Bm(C,y,B){y.updateQueue=C.updateQueue,y.flags&=-517,C.lanes=A1(C.lanes,B)}function gS(){if(cs.current=d6,Zf){for(var C=Li.memoizedState;C!==null;){var y=C.queue;y!==null&&(y.pending=null),C=C.next}Zf=!1}wm=xi,Li=null,ca=null,Yo=null,Fn=null,Pu=-1,pi=null,Wm=!1,k2=!1}function bo(){var C={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Yo===null?Li.memoizedState=Yo=C:Yo=Yo.next=C,Yo}function j2(){var C;if(ca===null){var y=Li.alternate;y!==null?C=y.memoizedState:C=null}else C=ca.next;var B;if(Yo===null?B=Li.memoizedState:B=Yo.next,B!==null)Yo=B,B=Yo.next,ca=C;else{if(C===null)throw Error("Rendered more hooks than during the previous render.");ca=C;var U={memoizedState:ca.memoizedState,baseState:ca.baseState,baseQueue:ca.baseQueue,queue:ca.queue,next:null};Yo===null?Li.memoizedState=Yo=U:Yo=Yo.next=U}return Yo}function Kf(){return{lastEffect:null}}function l6(C,y){return typeof y=="function"?y(C):y}function c6(C,y,B){var U=bo(),Z;B!==void 0?Z=B(y):Z=y,U.memoizedState=U.baseState=Z;var g=U.queue={pending:null,dispatch:null,lastRenderedReducer:C,lastRenderedState:Z},v=g.dispatch=V8.bind(null,Li,g);return[U.memoizedState,v]}function L1(C,y,B){var U=j2(),Z=U.queue;if(Z===null)throw Error("Should have a queue. This is likely a bug in React. Please file an issue.");Z.lastRenderedReducer=C;var g=ca,v=g.baseQueue,L=Z.pending;if(L!==null){if(v!==null){var z=v.next,j=L.next;v.next=j,L.next=z}g.baseQueue!==v&&x("Internal error: Expected work-in-progress queue to be a clone. This is a bug in React."),g.baseQueue=v=L,Z.pending=null}if(v!==null){var J=v.next,le=g.baseState,ce=null,_e=null,Oe=null,Fe=J;do{var pt=Fe.lane;if(X0(wm,pt)){if(Oe!==null){var Mt={lane:Vl,action:Fe.action,eagerReducer:Fe.eagerReducer,eagerState:Fe.eagerState,next:null};Oe=Oe.next=Mt}if(Fe.eagerReducer===C)le=Fe.eagerState;else{var Jt=Fe.action;le=C(le,Jt)}}else{var it={lane:pt,action:Fe.action,eagerReducer:Fe.eagerReducer,eagerState:Fe.eagerState,next:null};Oe===null?(_e=Oe=it,ce=le):Oe=Oe.next=it,Li.lanes=dr(Li.lanes,pt),P6(pt)}Fe=Fe.next}while(Fe!==null&&Fe!==J);Oe===null?ce=le:Oe.next=_e,Hh(le,U.memoizedState)||ev(),U.memoizedState=le,U.baseState=ce,U.baseQueue=Oe,Z.lastRenderedState=le}var Ai=Z.dispatch;return[U.memoizedState,Ai]}function V2(C,y,B){var U=j2(),Z=U.queue;if(Z===null)throw Error("Should have a queue. This is likely a bug in React. Please file an issue.");Z.lastRenderedReducer=C;var g=Z.dispatch,v=Z.pending,L=U.memoizedState;if(v!==null){Z.pending=null;var z=v.next,j=z;do{var J=j.action;L=C(L,J),j=j.next}while(j!==z);Hh(L,U.memoizedState)||ev(),U.memoizedState=L,U.baseQueue===null&&(U.baseState=L),Z.lastRenderedState=L}return[L,g]}function yC(C,y,B){R8(y);var U=y._getVersion,Z=U(y._source),g=!1,v=bC(y);if(v!==null?g=v===Z:(g=X0(wm,C.mutableReadLanes),g&&Lp(y,Z)),g){var L=B(y._source);return typeof L=="function"&&x("Mutable source should not return a function as the snapshot value. Functions may close over mutable values and cause tearing."),L}else throw O8(y),Error("Cannot read from mutable source during the current render without tearing. This is a bug in React. Please file an issue.")}function zm(C,y,B,U){var Z=K2();if(Z===null)throw Error("Expected a work-in-progress root. This is a bug in React. Please file an issue.");var g=y._getVersion,v=g(y._source),L=cs.current,z=L.useState(function(){return yC(Z,y,B)}),j=z[0],J=z[1],le=j,ce=Yo,_e=C.memoizedState,Oe=_e.refs,Fe=Oe.getSnapshot,pt=_e.source,it=_e.subscribe,Mt=Li;if(C.memoizedState={refs:Oe,source:y,subscribe:U},L.useEffect(function(){Oe.getSnapshot=B,Oe.setSnapshot=J;var Ai=g(y._source);if(!Hh(v,Ai)){var Ct=B(y._source);if(typeof Ct=="function"&&x("Mutable source should not return a function as the snapshot value. Functions may close over mutable values and cause tearing."),!Hh(le,Ct)){J(Ct);var Ft=w1(Mt);cg(Z,Ft)}Kb(Z,Z.mutableReadLanes)}},[B,y,U]),L.useEffect(function(){var Ai=function(){var Ft=Oe.getSnapshot,ut=Oe.setSnapshot;try{ut(Ft(y._source));var ni=w1(Mt);cg(Z,ni)}catch(Ei){ut(function(){throw Ei})}},Ct=U(y._source,Ai);return typeof Ct!="function"&&x("Mutable source subscribe function must return an unsubscribe function."),Ct},[y,U]),!Hh(Fe,B)||!Hh(pt,y)||!Hh(it,U)){var Jt={pending:null,dispatch:null,lastRenderedReducer:l6,lastRenderedState:le};Jt.dispatch=J=V8.bind(null,Li,Jt),ce.queue=Jt,ce.baseQueue=null,le=yC(Z,y,B),ce.memoizedState=ce.baseState=le}return le}function Fm(C,y,B){var U=bo();return U.memoizedState={refs:{getSnapshot:y,setSnapshot:null},source:C,subscribe:B},zm(U,C,y,B)}function Pp(C,y,B){var U=j2();return zm(U,C,y,B)}function G2(C){var y=bo();typeof C=="function"&&(C=C()),y.memoizedState=y.baseState=C;var B=y.queue={pending:null,dispatch:null,lastRenderedReducer:l6,lastRenderedState:C},U=B.dispatch=V8.bind(null,Li,B);return[y.memoizedState,U]}function km(C){return L1(l6)}function Op(C){return V2(l6)}function Um(C,y,B,U){var Z={tag:C,create:y,destroy:B,deps:U,next:null},g=Li.updateQueue;if(g===null)g=Kf(),Li.updateQueue=g,g.lastEffect=Z.next=Z;else{var v=g.lastEffect;if(v===null)g.lastEffect=Z.next=Z;else{var L=v.next;v.next=Z,Z.next=L,g.lastEffect=Z}}return Z}function qf(C){var y=bo(),B={current:C};return Object.seal(B),y.memoizedState=B,B}function Qh(C){var y=j2();return y.memoizedState}function Qf(C,y,B,U){var Z=bo(),g=U===void 0?null:U;Li.flags|=C,Z.memoizedState=Um(Kh|y,B,void 0,g)}function Rp(C,y,B,U){var Z=j2(),g=U===void 0?null:U,v=void 0;if(ca!==null){var L=ca.memoizedState;if(v=L.destroy,g!==null){var z=L.deps;if(Mn(g,z)){Um(y,B,v,g);return}}}Li.flags|=C,Z.memoizedState=Um(Kh|y,B,v,g)}function I1(C,y){return typeof jest<"u"&&Mv(Li),Qf(Aa|vf,o6,C,y)}function W2(C,y){return typeof jest<"u"&&Mv(Li),Rp(Aa|vf,o6,C,y)}function Jf(C,y){return Qf(Aa,qh,C,y)}function Dp(C,y){return Rp(Aa,qh,C,y)}function N8(C,y){if(typeof y=="function"){var B=y,U=C();return B(U),function(){B(null)}}else if(y!=null){var Z=y;Z.hasOwnProperty("current")||x("Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.","an object with keys {"+Object.keys(Z).join(", ")+"}");var g=C();return Z.current=g,function(){Z.current=null}}}function H2(C,y,B){typeof y!="function"&&x("Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",y!==null?typeof y:"null");var U=B!=null?B.concat([C]):null;return Qf(Aa,qh,N8.bind(null,y,C),U)}function P1(C,y,B){typeof y!="function"&&x("Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",y!==null?typeof y:"null");var U=B!=null?B.concat([C]):null;return Rp(Aa,qh,N8.bind(null,y,C),U)}function MC(C,y){}var Np=MC;function w8(C,y){var B=bo(),U=y===void 0?null:y;return B.memoizedState=[C,U],C}function jm(C,y){var B=j2(),U=y===void 0?null:y,Z=B.memoizedState;if(Z!==null&&U!==null){var g=Z[1];if(Mn(U,g))return Z[0]}return B.memoizedState=[C,U],C}function wp(C,y){var B=bo(),U=y===void 0?null:y,Z=C();return B.memoizedState=[Z,U],Z}function u6(C,y){var B=j2(),U=y===void 0?null:y,Z=B.memoizedState;if(Z!==null&&U!==null){var g=Z[1];if(Mn(U,g))return Z[0]}var v=C();return B.memoizedState=[v,U],v}function Vm(C){var y=G2(C),B=y[0],U=y[1];return I1(function(){var Z=ru.transition;ru.transition=1;try{U(C)}finally{ru.transition=Z}},[C]),B}function B8(C){var y=km(),B=y[0],U=y[1];return W2(function(){var Z=ru.transition;ru.transition=1;try{U(C)}finally{ru.transition=Z}},[C]),B}function Gm(C){var y=Op(),B=y[0],U=y[1];return W2(function(){var Z=ru.transition;ru.transition=1;try{U(C)}finally{ru.transition=Z}},[C]),B}function EC(C,y){var B=Eu();P2(B<I2?I2:B,function(){C(!0)}),P2(B>Fd?Fd:B,function(){var U=ru.transition;ru.transition=1;try{C(!1),y()}finally{ru.transition=U}})}function Bp(){var C=G2(!1),y=C[0],B=C[1],U=EC.bind(null,B);return qf(U),[U,y]}function z8(){var C=km(),y=C[0],B=Qh(),U=B.current;return[U,y]}function F8(){var C=Op(),y=C[0],B=Qh(),U=B.current;return[U,y]}var Wm=!1;function _S(){return Wm}function k8(C){{var y=Vi(C.type)||"Unknown";rl()&&!D8[y]&&(x("The object passed back from useOpaqueIdentifier is meant to be passed through to attributes only. Do not read the value directly."),D8[y]=!0)}}function U8(){var C=rS.bind(null,k8.bind(null,Li));if(xC()){var y=!1,B=Li,U=function(){throw y||(y=!0,Wm=!0,g(C()),Wm=!1,k8(B)),Error("The object passed back from useOpaqueIdentifier is meant to be passed through to attributes only. Do not read the value directly.")},Z=XA(U),g=G2(Z)[1];return(Li.mode&ao)===Ga&&(Li.flags|=Aa|vf,Um(Kh|o6,function(){g(C())},void 0,null)),Z}else{var v=C();return G2(v),v}}function j8(){var C=km()[0];return C}function h6(){var C=Op()[0];return C}function V8(C,y,B){typeof arguments[3]=="function"&&x("State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().");var U=Xl(),Z=w1(C),g={lane:Z,action:B,eagerReducer:null,eagerState:null,next:null},v=y.pending;v===null?g.next=g:(g.next=v.next,v.next=g),y.pending=g;var L=C.alternate;if(C===Li||L!==null&&L===Li)k2=Zf=!0;else{if(C.lanes===xi&&(L===null||L.lanes===xi)){var z=y.lastRenderedReducer;if(z!==null){var j;j=cs.current,cs.current=ph;try{var J=y.lastRenderedState,le=z(J,B);if(g.eagerReducer=z,g.eagerState=le,Hh(le,J))return}catch{}finally{cs.current=j}}}typeof jest<"u"&&(jS(C),yx(C)),ul(C,Z,U)}}var d6={readContext:xo,useCallback:Hl,useContext:Hl,useEffect:Hl,useImperativeHandle:Hl,useLayoutEffect:Hl,useMemo:Hl,useReducer:Hl,useRef:Hl,useState:Hl,useDebugValue:Hl,useDeferredValue:Hl,useTransition:Hl,useMutableSource:Hl,useOpaqueIdentifier:Hl,unstable_isNewReconciler:fe},G8=null,TC=null,LC=null,W8=null,fh=null,ph=null,f6=null;{var H8=function(){x("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().")},or=function(){x("Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://reactjs.org/link/rules-of-hooks")};G8={readContext:function(C,y){return xo(C,y)},useCallback:function(C,y){return pi="useCallback",$n(),xc(y),w8(C,y)},useContext:function(C,y){return pi="useContext",$n(),xo(C,y)},useEffect:function(C,y){return pi="useEffect",$n(),xc(y),I1(C,y)},useImperativeHandle:function(C,y,B){return pi="useImperativeHandle",$n(),xc(B),H2(C,y,B)},useLayoutEffect:function(C,y){return pi="useLayoutEffect",$n(),xc(y),Jf(C,y)},useMemo:function(C,y){pi="useMemo",$n(),xc(y);var B=cs.current;cs.current=fh;try{return wp(C,y)}finally{cs.current=B}},useReducer:function(C,y,B){pi="useReducer",$n();var U=cs.current;cs.current=fh;try{return c6(C,y,B)}finally{cs.current=U}},useRef:function(C){return pi="useRef",$n(),qf(C)},useState:function(C){pi="useState",$n();var y=cs.current;cs.current=fh;try{return G2(C)}finally{cs.current=y}},useDebugValue:function(C,y){return pi="useDebugValue",$n(),void 0},useDeferredValue:function(C){return pi="useDeferredValue",$n(),Vm(C)},useTransition:function(){return pi="useTransition",$n(),Bp()},useMutableSource:function(C,y,B){return pi="useMutableSource",$n(),Fm(C,y,B)},useOpaqueIdentifier:function(){return pi="useOpaqueIdentifier",$n(),U8()},unstable_isNewReconciler:fe},TC={readContext:function(C,y){return xo(C,y)},useCallback:function(C,y){return pi="useCallback",Dt(),w8(C,y)},useContext:function(C,y){return pi="useContext",Dt(),xo(C,y)},useEffect:function(C,y){return pi="useEffect",Dt(),I1(C,y)},useImperativeHandle:function(C,y,B){return pi="useImperativeHandle",Dt(),H2(C,y,B)},useLayoutEffect:function(C,y){return pi="useLayoutEffect",Dt(),Jf(C,y)},useMemo:function(C,y){pi="useMemo",Dt();var B=cs.current;cs.current=fh;try{return wp(C,y)}finally{cs.current=B}},useReducer:function(C,y,B){pi="useReducer",Dt();var U=cs.current;cs.current=fh;try{return c6(C,y,B)}finally{cs.current=U}},useRef:function(C){return pi="useRef",Dt(),qf(C)},useState:function(C){pi="useState",Dt();var y=cs.current;cs.current=fh;try{return G2(C)}finally{cs.current=y}},useDebugValue:function(C,y){return pi="useDebugValue",Dt(),void 0},useDeferredValue:function(C){return pi="useDeferredValue",Dt(),Vm(C)},useTransition:function(){return pi="useTransition",Dt(),Bp()},useMutableSource:function(C,y,B){return pi="useMutableSource",Dt(),Fm(C,y,B)},useOpaqueIdentifier:function(){return pi="useOpaqueIdentifier",Dt(),U8()},unstable_isNewReconciler:fe},LC={readContext:function(C,y){return xo(C,y)},useCallback:function(C,y){return pi="useCallback",Dt(),jm(C,y)},useContext:function(C,y){return pi="useContext",Dt(),xo(C,y)},useEffect:function(C,y){return pi="useEffect",Dt(),W2(C,y)},useImperativeHandle:function(C,y,B){return pi="useImperativeHandle",Dt(),P1(C,y,B)},useLayoutEffect:function(C,y){return pi="useLayoutEffect",Dt(),Dp(C,y)},useMemo:function(C,y){pi="useMemo",Dt();var B=cs.current;cs.current=ph;try{return u6(C,y)}finally{cs.current=B}},useReducer:function(C,y,B){pi="useReducer",Dt();var U=cs.current;cs.current=ph;try{return L1(C,y,B)}finally{cs.current=U}},useRef:function(C){return pi="useRef",Dt(),Qh()},useState:function(C){pi="useState",Dt();var y=cs.current;cs.current=ph;try{return km(C)}finally{cs.current=y}},useDebugValue:function(C,y){return pi="useDebugValue",Dt(),Np()},useDeferredValue:function(C){return pi="useDeferredValue",Dt(),B8(C)},useTransition:function(){return pi="useTransition",Dt(),z8()},useMutableSource:function(C,y,B){return pi="useMutableSource",Dt(),Pp(C,y,B)},useOpaqueIdentifier:function(){return pi="useOpaqueIdentifier",Dt(),j8()},unstable_isNewReconciler:fe},W8={readContext:function(C,y){return xo(C,y)},useCallback:function(C,y){return pi="useCallback",Dt(),jm(C,y)},useContext:function(C,y){return pi="useContext",Dt(),xo(C,y)},useEffect:function(C,y){return pi="useEffect",Dt(),W2(C,y)},useImperativeHandle:function(C,y,B){return pi="useImperativeHandle",Dt(),P1(C,y,B)},useLayoutEffect:function(C,y){return pi="useLayoutEffect",Dt(),Dp(C,y)},useMemo:function(C,y){pi="useMemo",Dt();var B=cs.current;cs.current=f6;try{return u6(C,y)}finally{cs.current=B}},useReducer:function(C,y,B){pi="useReducer",Dt();var U=cs.current;cs.current=f6;try{return V2(C,y,B)}finally{cs.current=U}},useRef:function(C){return pi="useRef",Dt(),Qh()},useState:function(C){pi="useState",Dt();var y=cs.current;cs.current=f6;try{return Op(C)}finally{cs.current=y}},useDebugValue:function(C,y){return pi="useDebugValue",Dt(),Np()},useDeferredValue:function(C){return pi="useDeferredValue",Dt(),Gm(C)},useTransition:function(){return pi="useTransition",Dt(),F8()},useMutableSource:function(C,y,B){return pi="useMutableSource",Dt(),Pp(C,y,B)},useOpaqueIdentifier:function(){return pi="useOpaqueIdentifier",Dt(),h6()},unstable_isNewReconciler:fe},fh={readContext:function(C,y){return H8(),xo(C,y)},useCallback:function(C,y){return pi="useCallback",or(),$n(),w8(C,y)},useContext:function(C,y){return pi="useContext",or(),$n(),xo(C,y)},useEffect:function(C,y){return pi="useEffect",or(),$n(),I1(C,y)},useImperativeHandle:function(C,y,B){return pi="useImperativeHandle",or(),$n(),H2(C,y,B)},useLayoutEffect:function(C,y){return pi="useLayoutEffect",or(),$n(),Jf(C,y)},useMemo:function(C,y){pi="useMemo",or(),$n();var B=cs.current;cs.current=fh;try{return wp(C,y)}finally{cs.current=B}},useReducer:function(C,y,B){pi="useReducer",or(),$n();var U=cs.current;cs.current=fh;try{return c6(C,y,B)}finally{cs.current=U}},useRef:function(C){return pi="useRef",or(),$n(),qf(C)},useState:function(C){pi="useState",or(),$n();var y=cs.current;cs.current=fh;try{return G2(C)}finally{cs.current=y}},useDebugValue:function(C,y){return pi="useDebugValue",or(),$n(),void 0},useDeferredValue:function(C){return pi="useDeferredValue",or(),$n(),Vm(C)},useTransition:function(){return pi="useTransition",or(),$n(),Bp()},useMutableSource:function(C,y,B){return pi="useMutableSource",or(),$n(),Fm(C,y,B)},useOpaqueIdentifier:function(){return pi="useOpaqueIdentifier",or(),$n(),U8()},unstable_isNewReconciler:fe},ph={readContext:function(C,y){return H8(),xo(C,y)},useCallback:function(C,y){return pi="useCallback",or(),Dt(),jm(C,y)},useContext:function(C,y){return pi="useContext",or(),Dt(),xo(C,y)},useEffect:function(C,y){return pi="useEffect",or(),Dt(),W2(C,y)},useImperativeHandle:function(C,y,B){return pi="useImperativeHandle",or(),Dt(),P1(C,y,B)},useLayoutEffect:function(C,y){return pi="useLayoutEffect",or(),Dt(),Dp(C,y)},useMemo:function(C,y){pi="useMemo",or(),Dt();var B=cs.current;cs.current=ph;try{return u6(C,y)}finally{cs.current=B}},useReducer:function(C,y,B){pi="useReducer",or(),Dt();var U=cs.current;cs.current=ph;try{return L1(C,y,B)}finally{cs.current=U}},useRef:function(C){return pi="useRef",or(),Dt(),Qh()},useState:function(C){pi="useState",or(),Dt();var y=cs.current;cs.current=ph;try{return km(C)}finally{cs.current=y}},useDebugValue:function(C,y){return pi="useDebugValue",or(),Dt(),Np()},useDeferredValue:function(C){return pi="useDeferredValue",or(),Dt(),B8(C)},useTransition:function(){return pi="useTransition",or(),Dt(),z8()},useMutableSource:function(C,y,B){return pi="useMutableSource",or(),Dt(),Pp(C,y,B)},useOpaqueIdentifier:function(){return pi="useOpaqueIdentifier",or(),Dt(),j8()},unstable_isNewReconciler:fe},f6={readContext:function(C,y){return H8(),xo(C,y)},useCallback:function(C,y){return pi="useCallback",or(),Dt(),jm(C,y)},useContext:function(C,y){return pi="useContext",or(),Dt(),xo(C,y)},useEffect:function(C,y){return pi="useEffect",or(),Dt(),W2(C,y)},useImperativeHandle:function(C,y,B){return pi="useImperativeHandle",or(),Dt(),P1(C,y,B)},useLayoutEffect:function(C,y){return pi="useLayoutEffect",or(),Dt(),Dp(C,y)},useMemo:function(C,y){pi="useMemo",or(),Dt();var B=cs.current;cs.current=ph;try{return u6(C,y)}finally{cs.current=B}},useReducer:function(C,y,B){pi="useReducer",or(),Dt();var U=cs.current;cs.current=ph;try{return V2(C,y,B)}finally{cs.current=U}},useRef:function(C){return pi="useRef",or(),Dt(),Qh()},useState:function(C){pi="useState",or(),Dt();var y=cs.current;cs.current=ph;try{return Op(C)}finally{cs.current=y}},useDebugValue:function(C,y){return pi="useDebugValue",or(),Dt(),Np()},useDeferredValue:function(C){return pi="useDeferredValue",or(),Dt(),Gm(C)},useTransition:function(){return pi="useTransition",or(),Dt(),F8()},useMutableSource:function(C,y,B){return pi="useMutableSource",or(),Dt(),Pp(C,y,B)},useOpaqueIdentifier:function(){return pi="useOpaqueIdentifier",or(),Dt(),h6()},unstable_isNewReconciler:fe}}var mh=m.unstable_now,gh=0,$f=-1;function IC(){return gh}function nr(){gh=mh()}function Hm(C){$f=mh(),C.actualStartTime<0&&(C.actualStartTime=mh())}function p6(C){$f=-1}function e0(C,y){if($f>=0){var B=mh()-$f;C.actualDuration+=B,y&&(C.selfBaseDuration=B),$f=-1}}function PC(C){for(var y=C.child;y;)C.actualDuration+=y.actualDuration,y=y.sibling}var zp=d.ReactCurrentOwner,Jh=!1,Fp,t0,m6,kp,$h,O1,Up,Ym;Fp={},t0={},m6={},kp={},$h={},O1=!1,Up={},Ym={};function bc(C,y,B,U){C===null?y.child=Sp(y,null,B,U):y.child=Hf(y,C.child,B,U)}function OC(C,y,B,U){y.child=Hf(y,C.child,null,U),y.child=Hf(y,null,B,U)}function i0(C,y,B,U,Z){if(y.type!==y.elementType){var g=B.propTypes;g&&lh(g,U,"prop",Vi(B))}var v=B.render,L=y.ref,z;Uf(y,Z);{if(zp.current=y,qn(!0),z=rs(C,y,v,U,L,Z),y.mode&Wa){to();try{z=rs(C,y,v,U,L,Z)}finally{Gr()}}qn(!1)}return C!==null&&!Jh?(Bm(C,y,Z),Hd(C,y,Z)):(y.flags|=jl,bc(C,y,z,Z),y.child)}function Y8(C,y,B,U,Z,g){if(C===null){var v=B.type;if(KS(v)&&B.compare===null&&B.defaultProps===void 0){var L=v;return L=k1(v),y.tag=K,y.type=L,VC(y,v),g6(C,y,L,U,Z,g)}{var z=v.propTypes;z&&lh(z,U,"prop",Vi(v))}var j=Ix(B.type,null,U,y,y.mode,g);return j.ref=y.ref,j.return=y,y.child=j,j}{var J=B.type,le=J.propTypes;le&&lh(le,U,"prop",Vi(J))}var ce=C.child;if(!mc(Z,g)){var _e=ce.memoizedProps,Oe=B.compare;if(Oe=Oe!==null?Oe:vg,Oe(_e,U)&&C.ref===y.ref)return Hd(C,y,g)}y.flags|=jl;var Fe=p0(ce,U);return Fe.ref=y.ref,Fe.return=y,y.child=Fe,Fe}function g6(C,y,B,U,Z,g){if(y.type!==y.elementType){var v=y.elementType;if(v.$$typeof===We){var L=v,z=L._payload,j=L._init;try{v=j(z)}catch{v=null}var J=v&&v.propTypes;J&&lh(J,U,"prop",Vi(v))}}if(C!==null){var le=C.memoizedProps;if(vg(le,U)&&C.ref===y.ref&&y.type===C.type)if(Jh=!1,mc(g,Z))(C.flags&Td)!==pn&&(Jh=!0);else return y.lanes=C.lanes,Hd(C,y,g)}return NC(C,y,B,U,g)}function Sc(C,y,B){var U=y.pendingProps,Z=U.children,g=C!==null?C.memoizedState:null;if(U.mode==="hidden"||U.mode==="unstable-defer-without-hiding")if((y.mode&N2)===Ga){var v={baseLanes:xi};y.memoizedState=v,o4(y,B)}else if(mc(B,pc)){var J={baseLanes:xi};y.memoizedState=J;var le=g!==null?g.baseLanes:B;o4(y,le)}else{var L;if(g!==null){var z=g.baseLanes;L=dr(z,B)}else L=B;Ev(pc),y.lanes=y.childLanes=pc;var j={baseLanes:L};return y.memoizedState=j,o4(y,L),null}else{var ce;g!==null?(ce=dr(g.baseLanes,B),y.memoizedState=null):ce=B,o4(y,ce)}return bc(C,y,Z,B),y.child}var IE=Sc;function RC(C,y,B){var U=y.pendingProps;return bc(C,y,U,B),y.child}function vS(C,y,B){var U=y.pendingProps.children;return bc(C,y,U,B),y.child}function DC(C,y,B){{y.flags|=Aa;var U=y.stateNode;U.effectDuration=0,U.passiveEffectDuration=0}var Z=y.pendingProps,g=Z.children;return bc(C,y,g,B),y.child}function X8(C,y){var B=y.ref;(C===null&&B!==null||C!==null&&C.ref!==B)&&(y.flags|=T_)}function NC(C,y,B,U,Z){if(y.type!==y.elementType){var g=B.propTypes;g&&lh(g,U,"prop",Vi(B))}var v;{var L=Bf(y,B,!0);v=yu(y,L)}var z;Uf(y,Z);{if(zp.current=y,qn(!0),z=rs(C,y,B,U,v,Z),y.mode&Wa){to();try{z=rs(C,y,B,U,v,Z)}finally{Gr()}}qn(!1)}return C!==null&&!Jh?(Bm(C,y,Z),Hd(C,y,Z)):(y.flags|=jl,bc(C,y,z,Z),y.child)}function Z8(C,y,B,U,Z){if(y.type!==y.elementType){var g=B.propTypes;g&&lh(g,U,"prop",Vi(B))}var v;ch(B)?(v=!0,uh(y)):v=!1,Uf(y,Z);var L=y.stateNode,z;L===null?(C!==null&&(C.alternate=null,y.alternate=null,y.flags|=oa),e6(y,B,U),dC(y,B,U,Z),z=!0):C===null?z=fC(y,B,U,Z):z=pC(C,y,B,U,Z);var j=wC(C,y,B,z,v,Z);{var J=y.stateNode;z&&J.props!==U&&(O1||x("It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.",Vi(y.type)||"a component"),O1=!0)}return j}function wC(C,y,B,U,Z,g){X8(C,y);var v=(y.flags&Zs)!==pn;if(!U&&!v)return Z&&up(y,B,!1),Hd(C,y,g);var L=y.stateNode;zp.current=y;var z;if(v&&typeof B.getDerivedStateFromError!="function")z=null,p6();else{if(qn(!0),z=L.render(),y.mode&Wa){to();try{L.render()}finally{Gr()}}qn(!1)}return y.flags|=jl,C!==null&&v?OC(C,y,z,g):bc(C,y,z,g),y.memoizedState=L.state,Z&&up(y,B,!0),y.child}function BC(C){var y=C.stateNode;y.pendingContext?cp(C,y.pendingContext,y.pendingContext!==y.context):y.context&&cp(C,y.context,!1),Gd(C,y.containerInfo)}function zC(C,y,B){BC(y);var U=y.updateQueue;if(!(C!==null&&U!==null))throw Error("If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue.");var Z=y.pendingProps,g=y.memoizedState,v=g!==null?g.element:null;Zg(C,y),jf(y,Z,null,B);var L=y.memoizedState,z=L.element;if(z===v)return I8(),Hd(C,y,B);var j=y.stateNode;if(j.hydrate&&Ep(y)){{var J=j.mutableSourceEagerHydrationData;if(J!=null)for(var le=0;le<J.length;le+=2){var ce=J[le],_e=J[le+1];Lp(ce,_e)}}var Oe=Sp(y,null,z,B);y.child=Oe;for(var Fe=Oe;Fe;)Fe.flags=Fe.flags&~oa|en,Fe=Fe.sibling}else bc(C,y,z,B),I8();return y.child}function FC(C,y,B){Im(y),C===null&&Wd(y);var U=y.type,Z=y.pendingProps,g=C!==null?C.memoizedProps:null,v=Z.children,L=Rg(U,Z);return L?v=null:g!==null&&Rg(U,g)&&(y.flags|=Ed),X8(C,y),bc(C,y,v,B),y.child}function kC(C,y){return C===null&&Wd(y),null}function UC(C,y,B,U,Z){C!==null&&(C.alternate=null,y.alternate=null,y.flags|=oa);var g=y.pendingProps,v=B,L=v._payload,z=v._init,j=z(L);y.type=j;var J=y.tag=lT(j),le=Ac(j,g),ce;switch(J){case S:return VC(y,j),y.type=j=k1(j),ce=NC(null,y,j,le,Z),ce;case E:return y.type=j=Tv(j),ce=Z8(null,y,j,le,Z),ce;case k:return y.type=j=Bu(j),ce=i0(null,y,j,le,Z),ce;case ee:{if(y.type!==y.elementType){var _e=j.propTypes;_e&&lh(_e,le,"prop",Vi(j))}return ce=Y8(null,y,j,Ac(j.type,le),U,Z),ce}}var Oe="";throw j!==null&&typeof j=="object"&&j.$$typeof===We&&(Oe=" Did you wrap a component in React.lazy() more than once?"),Error("Element type is invalid. Received a promise that resolves to: "+j+". Lazy element type must resolve to a class or function."+Oe)}function jC(C,y,B,U,Z){C!==null&&(C.alternate=null,y.alternate=null,y.flags|=oa),y.tag=E;var g;return ch(B)?(g=!0,uh(y)):g=!1,Uf(y,Z),e6(y,B,U),dC(y,B,U,Z),wC(null,y,B,!0,g,Z)}function AS(C,y,B,U){C!==null&&(C.alternate=null,y.alternate=null,y.flags|=oa);var Z=y.pendingProps,g;{var v=Bf(y,B,!1);g=yu(y,v)}Uf(y,U);var L;{if(B.prototype&&typeof B.prototype.render=="function"){var z=Vi(B)||"Unknown";Fp[z]||(x("The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",z,z),Fp[z]=!0)}y.mode&Wa&&Ya.recordLegacyContextWarning(y,null),qn(!0),zp.current=y,L=rs(null,y,B,Z,g,U),qn(!1)}if(y.flags|=jl,typeof L=="object"&&L!==null&&typeof L.render=="function"&&L.$$typeof===void 0){var j=Vi(B)||"Unknown";t0[j]||(x("The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.",j,j,j),t0[j]=!0)}if(typeof L=="object"&&L!==null&&typeof L.render=="function"&&L.$$typeof===void 0){{var J=Vi(B)||"Unknown";t0[J]||(x("The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.",J,J,J),t0[J]=!0)}y.tag=E,y.memoizedState=null,y.updateQueue=null;var le=!1;ch(B)?(le=!0,uh(y)):le=!1,y.memoizedState=L.state!==null&&L.state!==void 0?L.state:null,Am(y);var ce=B.getDerivedStateFromProps;return typeof ce=="function"&&Cp(y,B,ce,Z),A8(y,L),dC(y,B,Z,U),wC(null,y,B,!0,le,U)}else{if(y.tag=S,y.mode&Wa){to();try{L=rs(null,y,B,Z,g,U)}finally{Gr()}}return bc(null,y,L,U),VC(y,B),y.child}}function VC(C,y){{if(y&&y.childContextTypes&&x("%s(...): childContextTypes cannot be defined on a function component.",y.displayName||y.name||"Component"),C.ref!==null){var B="",U=Po();U&&(B+=`

Check the render method of \``+U+"`.");var Z=U||C._debugID||"",g=C._debugSource;g&&(Z=g.fileName+":"+g.lineNumber),$h[Z]||($h[Z]=!0,x("Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?%s",B))}if(typeof y.getDerivedStateFromProps=="function"){var v=Vi(y)||"Unknown";kp[v]||(x("%s: Function components do not support getDerivedStateFromProps.",v),kp[v]=!0)}if(typeof y.contextType=="object"&&y.contextType!==null){var L=Vi(y)||"Unknown";m6[L]||(x("%s: Function components do not support contextType.",L),m6[L]=!0)}}}var _6={dehydrated:null,retryLane:Vl};function K8(C){return{baseLanes:C}}function q8(C,y){return{baseLanes:dr(C.baseLanes,y)}}function PE(C,y,B,U){if(y!==null){var Z=y.memoizedState;if(Z===null)return!1}return T8(C,Pm)}function v6(C,y){return A1(C.childLanes,y)}function Xm(C,y,B){var U=y.pendingProps;_T(y)&&(y.flags|=Zs);var Z=dh.current,g=!1,v=(y.flags&Zs)!==pn;if(v||PE(Z,C)?(g=!0,y.flags&=~Zs):(C===null||C.memoizedState!==null)&&U.fallback!==void 0&&U.unstable_avoidThisFallback!==!0&&(Z=n6(Z,s6)),Z=Mp(Z),Wl(y,Z),C===null){U.fallback!==void 0&&Wd(y);var L=U.children,z=U.fallback;if(g){var j=Q8(y,L,z,B),J=y.child;return J.memoizedState=K8(B),y.memoizedState=_6,j}else if(typeof U.unstable_expectedLoadTime=="number"){var le=Q8(y,L,z,B),ce=y.child;return ce.memoizedState=K8(B),y.memoizedState=_6,y.lanes=Ef,Ev(Ef),le}else return A6(y,L,B)}else{var _e=C.memoizedState;if(_e!==null)if(g){var Oe=U.fallback,Fe=U.children,pt=GC(C,y,Fe,Oe,B),it=y.child,Mt=C.child.memoizedState;return it.memoizedState=Mt===null?K8(B):q8(Mt,B),it.childLanes=v6(C,B),y.memoizedState=_6,pt}else{var Jt=U.children,Ai=J8(C,y,Jt,B);return y.memoizedState=null,Ai}else if(g){var Ct=U.fallback,Ft=U.children,ut=GC(C,y,Ft,Ct,B),ni=y.child,Ei=C.child.memoizedState;return ni.memoizedState=Ei===null?K8(B):q8(Ei,B),ni.childLanes=v6(C,B),y.memoizedState=_6,ut}else{var ht=U.children,Vt=J8(C,y,ht,B);return y.memoizedState=null,Vt}}}function A6(C,y,B){var U=C.mode,Z={mode:"visible",children:y},g=m4(Z,U,B,null);return g.return=C,C.child=g,g}function Q8(C,y,B,U){var Z=C.mode,g=C.child,v={mode:"hidden",children:y},L,z;return(Z&ao)===Ga&&g!==null?(L=g,L.childLanes=xi,L.pendingProps=v,C.mode&Tu&&(L.actualDuration=0,L.actualStartTime=-1,L.selfBaseDuration=0,L.treeBaseDuration=0),z=zu(B,Z,U,null)):(L=m4(v,Z,xi,null),z=zu(B,Z,U,null)),L.return=C,z.return=C,L.sibling=z,C.child=L,z}function CS(C,y){return p0(C,y)}function J8(C,y,B,U){var Z=C.child,g=Z.sibling,v=CS(Z,{mode:"visible",children:B});return(y.mode&ao)===Ga&&(v.lanes=U),v.return=y,v.sibling=null,g!==null&&(g.nextEffect=null,g.flags=mn,y.firstEffect=y.lastEffect=g),y.child=v,v}function GC(C,y,B,U,Z){var g=y.mode,v=C.child,L=v.sibling,z={mode:"hidden",children:B},j;if((g&ao)===Ga&&y.child!==v){var J=y.child;j=J,j.childLanes=xi,j.pendingProps=z,y.mode&Tu&&(j.actualDuration=0,j.actualStartTime=-1,j.selfBaseDuration=v.selfBaseDuration,j.treeBaseDuration=v.treeBaseDuration);var le=j.lastEffect;le!==null?(y.firstEffect=j.firstEffect,y.lastEffect=le,le.nextEffect=null):y.firstEffect=y.lastEffect=null}else j=CS(v,z);var ce;return L!==null?ce=p0(L,U):(ce=zu(U,g,Z,null),ce.flags|=oa),ce.return=y,j.return=y,j.sibling=ce,y.child=j,ce}function WC(C,y){C.lanes=dr(C.lanes,y);var B=C.alternate;B!==null&&(B.lanes=dr(B.lanes,y)),rC(C.return,y)}function xS(C,y,B){for(var U=y;U!==null;){if(U.tag===V){var Z=U.memoizedState;Z!==null&&WC(U,B)}else if(U.tag===W)WC(U,B);else if(U.child!==null){U.child.return=U,U=U.child;continue}if(U===C)return;for(;U.sibling===null;){if(U.return===null||U.return===C)return;U=U.return}U.sibling.return=U.return,U=U.sibling}}function bS(C){for(var y=C,B=null;y!==null;){var U=y.alternate;U!==null&&Om(U)===null&&(B=y),y=y.sibling}return B}function SS(C){if(C!==void 0&&C!=="forwards"&&C!=="backwards"&&C!=="together"&&!Up[C])if(Up[C]=!0,typeof C=="string")switch(C.toLowerCase()){case"together":case"forwards":case"backwards":{x('"%s" is not a valid value for revealOrder on <SuspenseList />. Use lowercase "%s" instead.',C,C.toLowerCase());break}case"forward":case"backward":{x('"%s" is not a valid value for revealOrder on <SuspenseList />. React uses the -s suffix in the spelling. Use "%ss" instead.',C,C.toLowerCase());break}default:x('"%s" is not a supported revealOrder on <SuspenseList />. Did you mean "together", "forwards" or "backwards"?',C);break}else x('%s is not a supported value for revealOrder on <SuspenseList />. Did you mean "together", "forwards" or "backwards"?',C)}function yS(C,y){C!==void 0&&!Ym[C]&&(C!=="collapsed"&&C!=="hidden"?(Ym[C]=!0,x('"%s" is not a supported value for tail on <SuspenseList />. Did you mean "collapsed" or "hidden"?',C)):y!=="forwards"&&y!=="backwards"&&(Ym[C]=!0,x('<SuspenseList tail="%s" /> is only valid if revealOrder is "forwards" or "backwards". Did you mean to specify revealOrder="forwards"?',C)))}function C6(C,y){{var B=Array.isArray(C),U=!B&&typeof ns(C)=="function";if(B||U){var Z=B?"array":"iterable";return x("A nested %s was passed to row #%s in <SuspenseList />. Wrap it in an additional SuspenseList to configure its revealOrder: <SuspenseList revealOrder=...> ... <SuspenseList revealOrder=...>{%s}</SuspenseList> ... </SuspenseList>",Z,y,Z),!1}}return!0}function OE(C,y){if((y==="forwards"||y==="backwards")&&C!==void 0&&C!==null&&C!==!1)if(Array.isArray(C)){for(var B=0;B<C.length;B++)if(!C6(C[B],B))return}else{var U=ns(C);if(typeof U=="function"){var Z=U.call(C);if(Z)for(var g=Z.next(),v=0;!g.done;g=Z.next()){if(!C6(g.value,v))return;v++}}else x('A single row was passed to a <SuspenseList revealOrder="%s" />. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?',y)}}function HC(C,y,B,U,Z,g){var v=C.memoizedState;v===null?C.memoizedState={isBackwards:y,rendering:null,renderingStartTime:0,last:U,tail:B,tailMode:Z,lastEffect:g}:(v.isBackwards=y,v.rendering=null,v.renderingStartTime=0,v.last=U,v.tail=B,v.tailMode=Z,v.lastEffect=g)}function MS(C,y,B){var U=y.pendingProps,Z=U.revealOrder,g=U.tail,v=U.children;SS(Z),yS(g,Z),OE(v,Z),bc(C,y,v,B);var L=dh.current,z=T8(L,Pm);if(z)L=r6(L,Pm),y.flags|=Zs;else{var j=C!==null&&(C.flags&Zs)!==pn;j&&xS(y,y.child,B),L=Mp(L)}if(Wl(y,L),(y.mode&ao)===Ga)y.memoizedState=null;else switch(Z){case"forwards":{var J=bS(y.child),le;J===null?(le=y.child,y.child=null):(le=J.sibling,J.sibling=null),HC(y,!1,le,J,g,y.lastEffect);break}case"backwards":{var ce=null,_e=y.child;for(y.child=null;_e!==null;){var Oe=_e.alternate;if(Oe!==null&&Om(Oe)===null){y.child=_e;break}var Fe=_e.sibling;_e.sibling=ce,ce=_e,_e=Fe}HC(y,!0,ce,null,g,y.lastEffect);break}case"together":{HC(y,!1,null,null,void 0,y.lastEffect);break}default:y.memoizedState=null}return y.child}function ES(C,y,B){Gd(y,y.stateNode.containerInfo);var U=y.pendingProps;return C===null?y.child=Hf(y,null,U,B):bc(C,y,U,B),y.child}var x6=!1;function RE(C,y,B){var U=y.type,Z=U._context,g=y.pendingProps,v=y.memoizedProps,L=g.value;{"value"in g||x6||(x6=!0,x("The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?"));var z=y.type.propTypes;z&&lh(z,g,"prop","Context.Provider")}if(_m(y,L),v!==null){var j=v.value,J=f8(Z,L,j);if(J===0){if(v.children===g.children&&!Mu())return Hd(C,y,B)}else nC(y,Z,J,B)}var le=g.children;return bc(C,y,le,B),y.child}var $8=!1;function TS(C,y,B){var U=y.type;U._context===void 0?U!==U.Consumer&&($8||($8=!0,x("Rendering <Context> directly is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?"))):U=U._context;var Z=y.pendingProps,g=Z.children;typeof g!="function"&&x("A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."),Uf(y,B);var v=xo(U,Z.unstable_observedBits),L;return zp.current=y,qn(!0),L=g(v),qn(!1),y.flags|=jl,bc(C,y,L,B),y.child}function ev(){Jh=!0}function Hd(C,y,B){return C!==null&&(y.dependencies=C.dependencies),p6(),P6(y.lanes),mc(B,y.childLanes)?(S8(C,y),y.child):null}function DE(C,y,B){{var U=y.return;if(U===null)throw new Error("Cannot swap the root fiber.");if(C.alternate=null,y.alternate=null,B.index=y.index,B.sibling=y.sibling,B.return=y.return,B.ref=y.ref,y===U.child)U.child=B;else{var Z=U.child;if(Z===null)throw new Error("Expected parent to have a child.");for(;Z.sibling!==y;)if(Z=Z.sibling,Z===null)throw new Error("Expected to find the previous sibling.");Z.sibling=B}var g=U.lastEffect;return g!==null?(g.nextEffect=C,U.lastEffect=C):U.firstEffect=U.lastEffect=C,C.nextEffect=null,C.flags=mn,B.flags|=oa,B}}function YC(C,y,B){var U=y.lanes;if(y._debugNeedsRemount&&C!==null)return DE(C,y,Ix(y.type,y.key,y.pendingProps,y._debugOwner||null,y.mode,y.lanes));if(C!==null){var Z=C.memoizedProps,g=y.pendingProps;if(Z!==g||Mu()||y.type!==C.type)Jh=!0;else if(mc(B,U))(C.flags&Td)!==pn?Jh=!0:Jh=!1;else{switch(Jh=!1,y.tag){case M:BC(y),I8();break;case O:Im(y);break;case E:{var v=y.type;ch(v)&&uh(y);break}case T:Gd(y,y.stateNode.containerInfo);break;case D:{var L=y.memoizedProps.value;_m(y,L);break}case Y:{var z=mc(B,y.childLanes);z&&(y.flags|=Aa);var j=y.stateNode;j.effectDuration=0,j.passiveEffectDuration=0}break;case V:{var J=y.memoizedState;if(J!==null){var le=y.child,ce=le.childLanes;if(mc(B,ce))return Xm(C,y,B);Wl(y,Mp(dh.current));var _e=Hd(C,y,B);return _e!==null?_e.sibling:null}else Wl(y,Mp(dh.current));break}case W:{var Oe=(C.flags&Zs)!==pn,Fe=mc(B,y.childLanes);if(Oe){if(Fe)return MS(C,y,B);y.flags|=Zs}var pt=y.memoizedState;if(pt!==null&&(pt.rendering=null,pt.tail=null,pt.lastEffect=null),Wl(y,dh.current),Fe)break;return null}case X:case se:return y.lanes=xi,Sc(C,y,B)}return Hd(C,y,B)}}else Jh=!1;switch(y.lanes=xi,y.tag){case b:return AS(C,y,y.type,B);case ie:{var it=y.elementType;return UC(C,y,it,U,B)}case S:{var Mt=y.type,Jt=y.pendingProps,Ai=y.elementType===Mt?Jt:Ac(Mt,Jt);return NC(C,y,Mt,Ai,B)}case E:{var Ct=y.type,Ft=y.pendingProps,ut=y.elementType===Ct?Ft:Ac(Ct,Ft);return Z8(C,y,Ct,ut,B)}case M:return zC(C,y,B);case O:return FC(C,y,B);case R:return kC(C,y);case V:return Xm(C,y,B);case T:return ES(C,y,B);case k:{var ni=y.type,Ei=y.pendingProps,ht=y.elementType===ni?Ei:Ac(ni,Ei);return i0(C,y,ni,ht,B)}case I:return RC(C,y,B);case N:return vS(C,y,B);case Y:return DC(C,y,B);case D:return RE(C,y,B);case w:return TS(C,y,B);case ee:{var Vt=y.type,Et=y.pendingProps,di=Ac(Vt,Et);if(y.type!==y.elementType){var yi=Vt.propTypes;yi&&lh(yi,di,"prop",Vi(Vt))}return di=Ac(Vt.type,di),Y8(C,y,Vt,di,U,B)}case K:return g6(C,y,y.type,y.pendingProps,U,B);case ne:{var Gi=y.type,_s=y.pendingProps,$s=y.elementType===Gi?_s:Ac(Gi,_s);return jC(C,y,Gi,$s,B)}case W:return MS(C,y,B);case Q:break;case re:break;case oe:break;case X:return Sc(C,y,B);case se:return IE(C,y,B)}throw Error("Unknown unit of work tag ("+y.tag+"). This error is likely caused by a bug in React. Please file an issue.")}function Zm(C){C.flags|=Aa}function tv(C){C.flags|=T_}var Yd,XC,ZC,s0;Yd=function(C,y,B,U){for(var Z=y.child;Z!==null;){if(Z.tag===O||Z.tag===R)i8(C,Z.stateNode);else if(Z.tag!==T){if(Z.child!==null){Z.child.return=Z,Z=Z.child;continue}}if(Z===y)return;for(;Z.sibling===null;){if(Z.return===null||Z.return===y)return;Z=Z.return}Z.sibling.return=Z.return,Z=Z.sibling}},XC=function(C){},ZC=function(C,y,B,U,Z){var g=C.memoizedProps;if(g!==U){var v=y.stateNode,L=Lm(),z=uE(v,B,g,U,Z,L);y.updateQueue=z,z&&Zm(y)}},s0=function(C,y,B,U){B!==U&&Zm(y)};function Km(C,y){if(!xC())switch(C.tailMode){case"hidden":{for(var B=C.tail,U=null;B!==null;)B.alternate!==null&&(U=B),B=B.sibling;U===null?C.tail=null:U.sibling=null;break}case"collapsed":{for(var Z=C.tail,g=null;Z!==null;)Z.alternate!==null&&(g=Z),Z=Z.sibling;g===null?!y&&C.tail!==null?C.tail.sibling=null:C.tail=null:g.sibling=null;break}}}function KC(C,y,B){var U=y.pendingProps;switch(y.tag){case b:case ie:case K:case S:case k:case I:case N:case Y:case w:case ee:return null;case E:{var Z=y.type;return ch(Z)&&b1(y),null}case M:{T1(y),l8(y),Nm();var g=y.stateNode;if(g.pendingContext&&(g.context=g.pendingContext,g.pendingContext=null),C===null||C.child===null){var v=Dm(y);v?Zm(y):g.hydrate||(y.flags|=Qc)}return XC(y),null}case O:{E8(y);var L=Tm(),z=y.type;if(C!==null&&y.stateNode!=null)ZC(C,y,z,U,L),C.ref!==y.ref&&tv(y);else{if(!U){if(y.stateNode===null)throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");return null}var j=Lm(),J=Dm(y);if(J)pS(y,L,j)&&Zm(y);else{var le=cE(z,U,L,j,y);Yd(le,y,!1,!1),y.stateNode=le,y9(le,z,U,L)&&Zm(y)}y.ref!==null&&tv(y)}return null}case R:{var ce=U;if(C&&y.stateNode!=null){var _e=C.memoizedProps;s0(C,y,_e,ce)}else{if(typeof ce!="string"&&y.stateNode===null)throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");var Oe=Tm(),Fe=Lm(),pt=Dm(y);pt?mS(y)&&Zm(y):y.stateNode=hE(ce,Oe,Fe,y)}return null}case V:{z2(y);var it=y.memoizedState;if((y.flags&Zs)!==pn)return y.lanes=B,(y.mode&Tu)!==Ga&&PC(y),y;var Mt=it!==null,Jt=!1;if(C===null)y.memoizedProps.fallback!==void 0&&Dm(y);else{var Ai=C.memoizedState;Jt=Ai!==null}if(Mt&&!Jt&&(y.mode&ao)!==Ga){var Ct=C===null&&y.memoizedProps.unstable_avoidThisFallback!==!0;Ct||T8(dh.current,s6)?BS():vv()}return(Mt||Jt)&&(y.flags|=Aa),null}case T:return T1(y),XC(y),C===null&&nS(y.stateNode.containerInfo),null;case D:return vm(y),null;case ne:{var Ft=y.type;return ch(Ft)&&b1(y),null}case W:{z2(y);var ut=y.memoizedState;if(ut===null)return null;var ni=(y.flags&Zs)!==pn,Ei=ut.rendering;if(Ei===null)if(ni)Km(ut,!1);else{var ht=ZE()&&(C===null||(C.flags&Zs)===pn);if(!ht)for(var Vt=y.child;Vt!==null;){var Et=Om(Vt);if(Et!==null){ni=!0,y.flags|=Zs,Km(ut,!1);var di=Et.updateQueue;return di!==null&&(y.updateQueue=di,y.flags|=Aa),ut.lastEffect===null&&(y.firstEffect=null),y.lastEffect=ut.lastEffect,y8(y,B),Wl(y,r6(dh.current,Pm)),y.child}Vt=Vt.sibling}ut.tail!==null&&El()>E6()&&(y.flags|=Zs,ni=!0,Km(ut,!1),y.lanes=Ef,Ev(Ef))}else{if(!ni){var yi=Om(Ei);if(yi!==null){y.flags|=Zs,ni=!0;var Gi=yi.updateQueue;if(Gi!==null&&(y.updateQueue=Gi,y.flags|=Aa),Km(ut,!0),ut.tail===null&&ut.tailMode==="hidden"&&!Ei.alternate&&!xC()){var _s=y.lastEffect=ut.lastEffect;return _s!==null&&(_s.nextEffect=null),null}}else El()*2-ut.renderingStartTime>E6()&&B!==pc&&(y.flags|=Zs,ni=!0,Km(ut,!1),y.lanes=Ef,Ev(Ef))}if(ut.isBackwards)Ei.sibling=y.child,y.child=Ei;else{var $s=ut.last;$s!==null?$s.sibling=Ei:y.child=Ei,ut.last=Ei}}if(ut.tail!==null){var br=ut.tail;ut.rendering=br,ut.tail=br.sibling,ut.lastEffect=y.lastEffect,ut.renderingStartTime=El(),br.sibling=null;var Ks=dh.current;return ni?Ks=r6(Ks,Pm):Ks=Mp(Ks),Wl(y,Ks),br}return null}case Q:break;case re:break;case oe:break;case X:case se:{if(fx(y),C!==null){var kn=y.memoizedState,Ns=C.memoizedState,sn=Ns!==null,qa=kn!==null;sn!==qa&&U.mode!=="unstable-defer-without-hiding"&&(y.flags|=Aa)}return null}}throw Error("Unknown unit of work tag ("+y.tag+"). This error is likely caused by a bug in React. Please file an issue.")}function iv(C,y){switch(C.tag){case E:{var B=C.type;ch(B)&&b1(C);var U=C.flags;return U&bu?(C.flags=U&~bu|Zs,(C.mode&Tu)!==Ga&&PC(C),C):null}case M:{T1(C),l8(C),Nm();var Z=C.flags;if((Z&Zs)!==pn)throw Error("The root failed to unmount after an error. This is likely a bug in React. Please file an issue.");return C.flags=Z&~bu|Zs,C}case O:return E8(C),null;case V:{z2(C);var g=C.flags;return g&bu?(C.flags=g&~bu|Zs,(C.mode&Tu)!==Ga&&PC(C),C):null}case W:return z2(C),null;case T:return T1(C),null;case D:return vm(C),null;case X:case se:return fx(C),null;default:return null}}function qC(C){switch(C.tag){case E:{var y=C.type.childContextTypes;y!=null&&b1(C);break}case M:{T1(C),l8(C),Nm();break}case O:{E8(C);break}case T:T1(C);break;case V:z2(C);break;case W:z2(C);break;case D:vm(C);break;case X:case se:fx(C);break}}function qm(C,y){return{value:C,source:y,stack:bl(y)}}function b6(C,y){return!0}function sv(C,y){try{var B=b6(C,y);if(B===!1)return;var U=y.value,Z=y.source,g=y.stack,v=g!==null?g:"";if(U!=null&&U._suppressLogging){if(C.tag===E)return;console.error(U)}var L=Z?Vi(Z.type):null,z=L?"The above error occurred in the <"+L+"> component:":"The above error occurred in one of your React components:",j,J=Vi(C.type);J?j="React will try to recreate this component tree from scratch "+("using the error boundary you provided, "+J+"."):j=`Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.`;var le=z+`
`+v+`

`+(""+j);console.error(le)}catch(ce){setTimeout(function(){throw ce})}}var QC=typeof WeakMap=="function"?WeakMap:Map;function JC(C,y,B){var U=Xh(Va,B);U.tag=B2,U.payload={element:null};var Z=y.value;return U.callback=function(){sT(Z),sv(C,y)},U}function S6(C,y,B){var U=Xh(Va,B);U.tag=B2;var Z=C.type.getDerivedStateFromError;if(typeof Z=="function"){var g=y.value;U.payload=function(){return sv(C,y),Z(g)}}var v=C.stateNode;return v!==null&&typeof v.componentDidCatch=="function"?U.callback=function(){HS(C),typeof Z!="function"&&(iT(this),sv(C,y));var z=y.value,j=y.stack;this.componentDidCatch(z,{componentStack:j!==null?j:""}),typeof Z!="function"&&(mc(C.lanes,Bn)||x("%s: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.",Vi(C.type)||"Unknown"))}:U.callback=function(){HS(C)},U}function NE(C,y,B){var U=C.pingCache,Z;if(U===null?(U=C.pingCache=new QC,Z=new Set,U.set(y,Z)):(Z=U.get(y),Z===void 0&&(Z=new Set,U.set(y,Z))),!Z.has(B)){Z.add(B);var g=rT.bind(null,C,y,B);y.then(g,g)}}function $C(C,y,B,U,Z){if(B.flags|=Af,B.firstEffect=B.lastEffect=null,U!==null&&typeof U=="object"&&typeof U.then=="function"){var g=U;if((B.mode&ao)===Ga){var v=B.alternate;v?(B.updateQueue=v.updateQueue,B.memoizedState=v.memoizedState,B.lanes=v.lanes):(B.updateQueue=null,B.memoizedState=null)}var L=T8(dh.current,s6),z=y;do{if(z.tag===V&&a6(z,L)){var j=z.updateQueue;if(j===null){var J=new Set;J.add(g),z.updateQueue=J}else j.add(g);if((z.mode&ao)===Ga){if(z.flags|=Zs,B.flags|=Td,B.flags&=-2981,B.tag===E){var le=B.alternate;if(le===null)B.tag=ne;else{var ce=Xh(Va,Bn);ce.tag=p8,Vd(B,ce)}}B.lanes=dr(B.lanes,Bn);return}NE(C,g,Z),z.flags|=bu,z.lanes=Z;return}z=z.return}while(z!==null);U=new Error((Vi(B.type)||"A React component")+` suspended while rendering, but no fallback UI was specified.

Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`)}Av(),U=qm(U,B);var _e=y;do{switch(_e.tag){case M:{var Oe=U;_e.flags|=bu;var Fe=$c(Z);_e.lanes=dr(_e.lanes,Fe);var pt=JC(_e,Oe,Fe);Kg(_e,pt);return}case E:var it=U,Mt=_e.type,Jt=_e.stateNode;if((_e.flags&Zs)===pn&&(typeof Mt.getDerivedStateFromError=="function"||Jt!==null&&typeof Jt.componentDidCatch=="function"&&!sd(Jt))){_e.flags|=bu;var Ai=$c(Z);_e.lanes=dr(_e.lanes,Ai);var Ct=S6(_e,it,Ai);Kg(_e,Ct);return}break}_e=_e.return}while(_e!==null)}var ex=null;ex=new Set;var rv=typeof WeakSet=="function"?WeakSet:Set,LS=function(C,y){y.props=C.memoizedProps,y.state=C.memoizedState,y.componentWillUnmount()};function wE(C,y){if(dc(null,LS,null,C,y),Md()){var B=m1();z1(C,B)}}function tx(C){var y=C.ref;if(y!==null)if(typeof y=="function"){if(dc(null,y,null,null),Md()){var B=m1();z1(C,B)}}else y.current=null}function IS(C,y){if(dc(null,y,null),Md()){var B=m1();z1(C,B)}}function ix(C,y){switch(y.tag){case S:case k:case K:case oe:return;case E:{if(y.flags&Qc&&C!==null){var B=C.memoizedProps,U=C.memoizedState,Z=y.stateNode;y.type===y.elementType&&!O1&&(Z.props!==y.memoizedProps&&x("Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Vi(y.type)||"instance"),Z.state!==y.memoizedState&&x("Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",Vi(y.type)||"instance"));var g=Z.getSnapshotBeforeUpdate(y.elementType===y.type?B:Ac(y.type,B),U);{var v=ex;g===void 0&&!v.has(y.type)&&(v.add(y.type),x("%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.",Vi(y.type)))}Z.__reactInternalSnapshotBeforeUpdate=g}return}case M:{if(y.flags&Qc){var L=y.stateNode;jA(L.containerInfo)}return}case O:case R:case T:case ne:return}throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}function BE(C,y){var B=y.updateQueue,U=B!==null?B.lastEffect:null;if(U!==null){var Z=U.next,g=Z;do{if((g.tag&C)===C){var v=g.destroy;g.destroy=void 0,v!==void 0&&v()}g=g.next}while(g!==Z)}}function zE(C,y){var B=y.updateQueue,U=B!==null?B.lastEffect:null;if(U!==null){var Z=U.next,g=Z;do{if((g.tag&C)===C){var v=g.create;g.destroy=v();{var L=g.destroy;if(L!==void 0&&typeof L!="function"){var z=void 0;L===null?z=" You returned null. If your effect does not require clean up, return undefined (or nothing).":typeof L.then=="function"?z=`

It looks like you wrote useEffect(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:

useEffect(() => {
  async function fetchData() {
    // You can await here
    const response = await MyAPI.getData(someId);
    // ...
  }
  fetchData();
}, [someId]); // Or [] if effect doesn't need props or state

Learn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching`:z=" You returned: "+L,x("An effect function must not return anything besides a function, which is used for clean-up.%s",z)}}}g=g.next}while(g!==Z)}}function nv(C){var y=C.updateQueue,B=y!==null?y.lastEffect:null;if(B!==null){var U=B.next,Z=U;do{var g=Z,v=g.next,L=g.tag;(L&o6)!==AC&&(L&Kh)!==AC&&(_x(C,Z),kS(C,Z)),Z=v}while(Z!==U)}}function FE(C,y,B,U){switch(B.tag){case S:case k:case K:case oe:{zE(qh|Kh,B),nv(B);return}case E:{var Z=B.stateNode;if(B.flags&Aa)if(y===null)B.type===B.elementType&&!O1&&(Z.props!==B.memoizedProps&&x("Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Vi(B.type)||"instance"),Z.state!==B.memoizedState&&x("Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",Vi(B.type)||"instance")),Z.componentDidMount();else{var g=B.elementType===B.type?y.memoizedProps:Ac(B.type,y.memoizedProps),v=y.memoizedState;B.type===B.elementType&&!O1&&(Z.props!==B.memoizedProps&&x("Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Vi(B.type)||"instance"),Z.state!==B.memoizedState&&x("Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",Vi(B.type)||"instance")),Z.componentDidUpdate(g,v,Z.__reactInternalSnapshotBeforeUpdate)}var L=B.updateQueue;L!==null&&(B.type===B.elementType&&!O1&&(Z.props!==B.memoizedProps&&x("Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Vi(B.type)||"instance"),Z.state!==B.memoizedState&&x("Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",Vi(B.type)||"instance")),fS(B,L,Z));return}case M:{var z=B.updateQueue;if(z!==null){var j=null;if(B.child!==null)switch(B.child.tag){case O:j=B.child.stateNode;break;case E:j=B.child.stateNode;break}fS(B,z,j)}return}case O:{var J=B.stateNode;if(y===null&&B.flags&Aa){var le=B.type,ce=B.memoizedProps;Dg(J,le,ce)}return}case R:return;case T:return;case Y:{{var _e=B.memoizedProps;_e.onCommit;var Oe=_e.onRender;B.stateNode.effectDuration;var Fe=IC();typeof Oe=="function"&&Oe(B.memoizedProps.id,y===null?"mount":"update",B.actualDuration,B.treeBaseDuration,B.actualStartTime,Fe,C.memoizedInteractions)}return}case V:{ox(C,B);return}case W:case ne:case Q:case re:case X:case se:return}throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}function PS(C,y){for(var B=C;;){if(B.tag===O){var U=B.stateNode;y?q7(U):_E(B.stateNode,B.memoizedProps)}else if(B.tag===R){var Z=B.stateNode;y?gE(Z):r8(Z,B.memoizedProps)}else if(!((B.tag===X||B.tag===se)&&B.memoizedState!==null&&B!==C)){if(B.child!==null){B.child.return=B,B=B.child;continue}}if(B===C)return;for(;B.sibling===null;){if(B.return===null||B.return===C)return;B=B.return}B.sibling.return=B.return,B=B.sibling}}function kE(C){var y=C.ref;if(y!==null){var B=C.stateNode,U;switch(C.tag){case O:U=B;break;default:U=B}typeof y=="function"?y(U):(y.hasOwnProperty("current")||x("Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().",Vi(C.type)),y.current=U)}}function UE(C){var y=C.ref;y!==null&&(typeof y=="function"?y(null):y.current=null)}function sx(C,y,B){switch(hp(y),y.tag){case S:case k:case ee:case K:case oe:{var U=y.updateQueue;if(U!==null){var Z=U.lastEffect;if(Z!==null){var g=Z.next,v=g;do{var L=v,z=L.destroy,j=L.tag;z!==void 0&&((j&o6)!==AC?_x(y,v):IS(y,z)),v=v.next}while(v!==g)}}return}case E:{tx(y);var J=y.stateNode;typeof J.componentWillUnmount=="function"&&wE(y,J);return}case O:{tx(y);return}case T:{Y2(C,y);return}case Q:return;case te:return;case re:return}}function jE(C,y,B){for(var U=y;;){if(sx(C,U),U.child!==null&&U.tag!==T){U.child.return=U,U=U.child;continue}if(U===y)return;for(;U.sibling===null;){if(U.return===null||U.return===y)return;U=U.return}U.sibling.return=U.return,U=U.sibling}}function rx(C){C.alternate=null,C.child=null,C.dependencies=null,C.firstEffect=null,C.lastEffect=null,C.memoizedProps=null,C.memoizedState=null,C.pendingProps=null,C.return=null,C.updateQueue=null,C._debugOwner=null}function VE(C){for(var y=C.return;y!==null;){if(av(y))return y;y=y.return}throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.")}function av(C){return C.tag===O||C.tag===M||C.tag===T}function OS(C){var y=C;e:for(;;){for(;y.sibling===null;){if(y.return===null||av(y.return))return null;y=y.return}for(y.sibling.return=y.return,y=y.sibling;y.tag!==O&&y.tag!==R&&y.tag!==te;){if(y.flags&oa||y.child===null||y.tag===T)continue e;y.child.return=y,y=y.child}if(!(y.flags&oa))return y.stateNode}}function RS(C){var y=VE(C),B,U,Z=y.stateNode;switch(y.tag){case O:B=Z,U=!1;break;case M:B=Z.containerInfo,U=!0;break;case T:B=Z.containerInfo,U=!0;break;case Q:default:throw Error("Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.")}y.flags&Ed&&(FA(B),y.flags&=~Ed);var g=OS(C);U?ov(C,g,B):nx(C,g,B)}function ov(C,y,B){var U=C.tag,Z=U===O||U===R;if(Z||he){var g=Z?C.stateNode:C.stateNode.instance;y?K7(B,g,y):Z7(B,g)}else if(U!==T){var v=C.child;if(v!==null){ov(v,y,B);for(var L=v.sibling;L!==null;)ov(L,y,B),L=L.sibling}}}function nx(C,y,B){var U=C.tag,Z=U===O||U===R;if(Z||he){var g=Z?C.stateNode:C.stateNode.instance;y?pE(B,g,y):kA(B,g)}else if(U!==T){var v=C.child;if(v!==null){nx(v,y,B);for(var L=v.sibling;L!==null;)nx(L,y,B),L=L.sibling}}}function Y2(C,y,B){for(var U=y,Z=!1,g,v;;){if(!Z){var L=U.return;e:for(;;){if(L===null)throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.");var z=L.stateNode;switch(L.tag){case O:g=z,v=!1;break e;case M:g=z.containerInfo,v=!0;break e;case T:g=z.containerInfo,v=!0;break e}L=L.return}Z=!0}if(U.tag===O||U.tag===R)jE(C,U),v?mE(g,U.stateNode):UA(g,U.stateNode);else if(U.tag===T){if(U.child!==null){g=U.stateNode.containerInfo,v=!0,U.child.return=U,U=U.child;continue}}else if(sx(C,U),U.child!==null){U.child.return=U,U=U.child;continue}if(U===y)return;for(;U.sibling===null;){if(U.return===null||U.return===y)return;U=U.return,U.tag===T&&(Z=!1)}U.sibling.return=U.return,U=U.sibling}}function GE(C,y,B){Y2(C,y);var U=y.alternate;rx(y),U!==null&&rx(U)}function lv(C,y){switch(y.tag){case S:case k:case ee:case K:case oe:{BE(qh|Kh,y);return}case E:return;case O:{var B=y.stateNode;if(B!=null){var U=y.memoizedProps,Z=C!==null?C.memoizedProps:U,g=y.type,v=y.updateQueue;y.updateQueue=null,v!==null&&fE(B,v,g,Z,U)}return}case R:{if(y.stateNode===null)throw Error("This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.");var L=y.stateNode,z=y.memoizedProps,j=C!==null?C.memoizedProps:z;X7(L,j,z);return}case M:{{var J=y.stateNode;J.hydrate&&(J.hydrate=!1,$7(J.containerInfo))}return}case Y:return;case V:{ax(y),r0(y);return}case W:{r0(y);return}case ne:return;case Q:break;case re:break;case X:case se:{var le=y.memoizedState,ce=le!==null;PS(y,ce);return}}throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}function ax(C){var y=C.memoizedState;if(y!==null){wS();{var B=C.child;PS(B,!0)}}}function ox(C,y){var B=y.memoizedState;if(B===null){var U=y.alternate;if(U!==null){var Z=U.memoizedState;if(Z!==null){var g=Z.dehydrated;g!==null&&WA(g)}}}}function r0(C){var y=C.updateQueue;if(y!==null){C.updateQueue=null;var B=C.stateNode;B===null&&(B=C.stateNode=new rv),y.forEach(function(U){var Z=aT.bind(null,C,U);B.has(U)||(U.__reactDoNotTraceInteractions!==!0&&(Z=_.unstable_wrap(Z)),B.add(U),U.then(Z,Z))})}}function WE(C,y){if(C!==null){var B=C.memoizedState;if(B===null||B.dehydrated!==null){var U=y.memoizedState;return U!==null&&U.dehydrated===null}}return!1}function cv(C){FA(C.stateNode)}if(typeof Symbol=="function"&&Symbol.for){var y6=Symbol.for;y6("selector.component"),y6("selector.has_pseudo_class"),y6("selector.role"),y6("selector.test_id"),y6("selector.text")}var HE=[];function uv(){HE.forEach(function(C){return C()})}var YE=Math.ceil,hv=d.ReactCurrentDispatcher,jp=d.ReactCurrentOwner,dv=d.IsSomeRendererActing,lo=0,fv=1,lx=2,Qm=4,Jm=8,Hr=16,_h=32,DS=64,Ou=0,$m=1,Yl=2,Ru=3,M6=4,Du=5,js=lo,cl=null,Sa=null,Ll=xi,vh=xi,Vs=wd(xi),on=Ou,Oa=null,So=xi,Ah=xi,R1=xi,Xo=xi,e4=null,D1=0,n0=500,a0=1/0,pv=500;function o0(){a0=El()+pv}function E6(){return a0}var ms=null,t4=!1,cx=null,Xd=null,Zd=!1,fs=null,X2=iu,i4=xi,l0=[],Kd=[],Nu=null,T6=50,c0=0,L6=null,mv=50,ed=0,Vp=null,N1=Va,qd=xi,s4=xi,r4=!1,td=null,Z2=!1;function K2(){return cl}function Xl(){return(js&(Hr|_h))!==lo?El():(N1!==Va||(N1=El()),N1)}function w1(C){var y=C.mode;if((y&ao)===Ga)return Bn;if((y&N2)===Ga)return Eu()===hh?Bn:Wh;qd===xi&&(qd=So);var B=pp()!==Lu;if(B)return s4!==xi&&(s4=e4!==null?e4.pendingLanes:xi),SM(qd,s4);var U=Eu(),Z;if((js&Qm)!==lo&&U===I2)Z=Y0(O3,qd);else{var g=v1(U);Z=Y0(g,qd)}return Z}function n4(C){var y=C.mode;return(y&ao)===Ga?Bn:(y&N2)===Ga?Eu()===hh?Bn:Wh:(qd===xi&&(qd=So),U5(qd))}function ul(C,y,B){h0(),O6(C);var U=gv(C,y);if(U===null)return bx(C),null;tn(U,y,B),U===cl&&(R1=dr(R1,y),on===M6&&Ka(U,Ll));var Z=Eu();y===Bn?(js&Jm)!==lo&&(js&(Hr|_h))===lo?(F1(U,y),a4(U)):(Za(U,B),F1(U,y),js===lo&&(o0(),kd())):((js&Qm)!==lo&&(Z===I2||Z===hh)&&(Nu===null?Nu=new Set([U]):Nu.add(U)),Za(U,B),F1(U,y)),e4=U}function gv(C,y){C.lanes=dr(C.lanes,y);var B=C.alternate;B!==null&&(B.lanes=dr(B.lanes,y)),B===null&&(C.flags&(oa|en))!==pn&&xx(C);for(var U=C,Z=C.return;Z!==null;)Z.childLanes=dr(Z.childLanes,y),B=Z.alternate,B!==null?B.childLanes=dr(B.childLanes,y):(Z.flags&(oa|en))!==pn&&xx(C),U=Z,Z=Z.return;if(U.tag===M){var g=U.stateNode;return g}else return null}function Za(C,y){var B=C.callbackNode;xM(C,y);var U=ng(C,C===cl?Ll:xi),Z=ag();if(U===xi){B!==null&&(fp(B),C.callbackNode=null,C.callbackPriority=_1);return}if(B!==null){var g=C.callbackPriority;if(g===Z)return;fp(B)}var v;if(Z===j0)v=Tl(a4.bind(null,C));else if(Z===q4)v=O2(hh,a4.bind(null,C));else{var L=Co(Z);v=O2(L,B1.bind(null,C))}C.callbackPriority=Z,C.callbackNode=v}function B1(C){if(N1=Va,qd=xi,s4=xi,(js&(Hr|_h))!==lo)throw Error("Should not already be working.");var y=C.callbackNode,B=yc();if(B&&C.callbackNode!==y)return null;var U=ng(C,C===cl?Ll:xi);if(U===xi)return null;var Z=qE(C,U);if(mc(So,R1))l4(C,xi);else if(Z!==Ou){if(Z===Yl&&(js|=DS,C.hydrate&&(C.hydrate=!1,jA(C.containerInfo)),U=k5(C),U!==xi&&(Z=u0(C,U))),Z===$m){var g=Oa;throw l4(C,xi),Ka(C,U),Za(C,El()),g}var v=C.current.alternate;C.finishedWork=v,C.finishedLanes=U,XE(C,Z,U)}return Za(C,El()),C.callbackNode===y?B1.bind(null,C):null}function XE(C,y,B){switch(y){case Ou:case $m:throw Error("Root did not complete. This is a bug in React.");case Yl:{Wp(C);break}case Ru:{if(Ka(C,B),B_(B)){var U=D1+n0-El();if(U>10){var Z=ng(C,xi);if(Z!==xi)break;var g=C.suspendedLanes;if(!X0(g,B)){Xl(),Zb(C,g);break}C.timeoutHandle=s8(Wp.bind(null,C),U);break}}Wp(C);break}case M6:{if(Ka(C,B),bM(B))break;{var v=Ca(C,B),L=v,z=El()-L,j=Cx(z)-z;if(j>10){C.timeoutHandle=s8(Wp.bind(null,C),j);break}}Wp(C);break}case Du:{Wp(C);break}default:throw Error("Unknown root exit status.")}}function Ka(C,y){y=A1(y,Xo),y=A1(y,R1),lg(C,y)}function a4(C){if((js&(Hr|_h))!==lo)throw Error("Should not already be working.");yc();var y,B;if(C===cl&&mc(C.expiredLanes,Ll)?(y=Ll,B=u0(C,y),mc(So,R1)&&(y=ng(C,y),B=u0(C,y))):(y=ng(C,xi),B=u0(C,y)),C.tag!==Fg&&B===Yl&&(js|=DS,C.hydrate&&(C.hydrate=!1,jA(C.containerInfo)),y=k5(C),y!==xi&&(B=u0(C,y))),B===$m){var U=Oa;throw l4(C,xi),Ka(C,y),Za(C,El()),U}var Z=C.current.alternate;return C.finishedWork=Z,C.finishedLanes=y,Wp(C),Za(C,El()),null}function id(){if((js&(fv|Hr|_h))!==lo){(js&Hr)!==lo&&x("unstable_flushDiscreteUpdates: Cannot flush updates when React is already rendering.");return}ux(),yc()}function ux(){if(Nu!==null){var C=Nu;Nu=null,C.forEach(function(y){TM(y),Za(y,El())})}kd()}function hx(C,y){var B=js;js|=fv;try{return C(y)}finally{js=B,js===lo&&(o0(),kd())}}function q2(C,y){var B=js;js|=lx;try{return C(y)}finally{js=B,js===lo&&(o0(),kd())}}function dx(C,y,B,U,Z){var g=js;js|=Qm;try{return P2(I2,C.bind(null,y,B,U,Z))}finally{js=g,js===lo&&(o0(),kd())}}function NS(C,y){var B=js;js&=~fv,js|=Jm;try{return C(y)}finally{js=B,js===lo&&(o0(),kd())}}function _v(C,y){var B=js;if((B&(Hr|_h))!==lo)return x("flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task."),C(y);js|=fv;try{return C?P2(hh,C.bind(null,y)):void 0}finally{js=B,kd()}}function o4(C,y){ol(Vs,vh,C),vh=dr(vh,y),So=dr(So,y)}function fx(C){vh=Vs.current,ba(Vs,C)}function l4(C,y){C.finishedWork=null,C.finishedLanes=xi;var B=C.timeoutHandle;if(B!==zA&&(C.timeoutHandle=zA,dE(B)),Sa!==null)for(var U=Sa.return;U!==null;)qC(U),U=U.return;cl=C,Sa=p0(C.current,null),Ll=vh=So=y,on=Ou,Oa=null,Ah=xi,R1=xi,Xo=xi,Vp=null,Ya.discardPendingWarnings()}function px(C,y){do{var B=Sa;try{if(_p(),gS(),yn(),jp.current=null,B===null||B.return===null){on=$m,Oa=y,Sa=null;return}ue&&B.mode&Tu&&e0(B,!0),$C(C,B.return,B,y,Ll),Gp(B)}catch(U){y=U,Sa===B&&B!==null?(B=B.return,Sa=B):B=Sa;continue}return}while(!0)}function c4(){var C=hv.current;return hv.current=d6,C===null?d6:C}function I6(C){hv.current=C}function u4(C){{var y=_.__interactionsRef.current;return _.__interactionsRef.current=C.memoizedInteractions,y}}function Q2(C){_.__interactionsRef.current=C}function wS(){D1=El()}function P6(C){Ah=dr(C,Ah)}function BS(){on===Ou&&(on=Ru)}function vv(){(on===Ou||on===Ru)&&(on=M6),cl!==null&&(Xb(Ah)||Xb(R1))&&Ka(cl,Ll)}function Av(){on!==Du&&(on=Yl)}function ZE(){return on===Ou}function u0(C,y){var B=js;js|=Hr;var U=c4();(cl!==C||Ll!==y)&&(l4(C,y),GS(C,y));var Z=u4(C);do try{KE();break}catch(g){px(C,g)}while(!0);if(_p(),Q2(Z),js=B,I6(U),Sa!==null)throw Error("Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.");return cl=null,Ll=xi,on}function KE(){for(;Sa!==null;)mx(Sa)}function qE(C,y){var B=js;js|=Hr;var U=c4();(cl!==C||Ll!==y)&&(o0(),l4(C,y),GS(C,y));var Z=u4(C);do try{QE();break}catch(g){px(C,g)}while(!0);return _p(),Q2(Z),I6(U),js=B,Sa!==null?Ou:(cl=null,Ll=xi,on)}function QE(){for(;Sa!==null&&!dp();)mx(Sa)}function mx(C){var y=C.alternate;sr(C);var B;(C.mode&Tu)!==Ga?(Hm(C),B=bv(y,C,vh),e0(C,!0)):B=bv(y,C,vh),yn(),C.memoizedProps=C.pendingProps,B===null?Gp(C):Sa=B,jp.current=null}function Gp(C){var y=C;do{var B=y.alternate,U=y.return;if((y.flags&Af)===pn){sr(y);var Z=void 0;if((y.mode&Tu)===Ga?Z=KC(B,y,vh):(Hm(y),Z=KC(B,y,vh),e0(y,!1)),yn(),Z!==null){Sa=Z;return}if(JE(y),U!==null&&(U.flags&Af)===pn){U.firstEffect===null&&(U.firstEffect=y.firstEffect),y.lastEffect!==null&&(U.lastEffect!==null&&(U.lastEffect.nextEffect=y.firstEffect),U.lastEffect=y.lastEffect);var g=y.flags;g>jl&&(U.lastEffect!==null?U.lastEffect.nextEffect=y:U.firstEffect=y,U.lastEffect=y)}}else{var v=iv(y);if(v!==null){v.flags&=B0,Sa=v;return}if((y.mode&Tu)!==Ga){e0(y,!1);for(var L=y.actualDuration,z=y.child;z!==null;)L+=z.actualDuration,z=z.sibling;y.actualDuration=L}U!==null&&(U.firstEffect=U.lastEffect=null,U.flags|=Af)}var j=y.sibling;if(j!==null){Sa=j;return}y=U,Sa=y}while(y!==null);on===Ou&&(on=Du)}function JE(C){if(!((C.tag===se||C.tag===X)&&C.memoizedState!==null&&!mc(vh,pc)&&(C.mode&N2)!==xi)){var y=xi;if((C.mode&Tu)!==Ga){for(var B=C.actualDuration,U=C.selfBaseDuration,Z=C.alternate===null||C.child!==C.alternate.child,g=C.child;g!==null;)y=dr(y,dr(g.lanes,g.childLanes)),Z&&(B+=g.actualDuration),U+=g.treeBaseDuration,g=g.sibling;var v=C.tag===V&&C.memoizedState!==null;if(v){var L=C.child;L!==null&&(U-=L.treeBaseDuration)}C.actualDuration=B,C.treeBaseDuration=U}else for(var z=C.child;z!==null;)y=dr(y,dr(z.lanes,z.childLanes)),z=z.sibling;C.childLanes=y}}function Wp(C){var y=Eu();return P2(hh,zS.bind(null,C,y)),null}function zS(C,y){do yc();while(fs!==null);if(US(),(js&(Hr|_h))!==lo)throw Error("Should not already be working.");var B=C.finishedWork,U=C.finishedLanes;if(B===null)return null;if(C.finishedWork=null,C.finishedLanes=xi,B===C.current)throw Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.");C.callbackNode=null;var Z=dr(B.lanes,B.childLanes);V5(C,Z),Nu!==null&&!z_(Z)&&Nu.has(C)&&Nu.delete(C),C===cl&&(cl=null,Sa=null,Ll=xi);var g;if(B.flags>jl?B.lastEffect!==null?(B.lastEffect.nextEffect=B,g=B.firstEffect):g=B:g=B.firstEffect,g!==null){var v=js;js|=_h;var L=u4(C);jp.current=null,td=wA(C.containerInfo),Z2=!1,ms=g;do if(dc(null,gx,null),Md()){if(ms===null)throw Error("Should be working on an effect.");var z=m1();z1(ms,z),ms=ms.nextEffect}while(ms!==null);td=null,nr(),ms=g;do if(dc(null,FS,null,C,y),Md()){if(ms===null)throw Error("Should be working on an effect.");var j=m1();z1(ms,j),ms=ms.nextEffect}while(ms!==null);BA(C.containerInfo),C.current=B,ms=g;do if(dc(null,$E,null,C,U),Md()){if(ms===null)throw Error("Should be working on an effect.");var J=m1();z1(ms,J),ms=ms.nextEffect}while(ms!==null);ms=null,S1(),Q2(L),js=v}else C.current=B,nr();var le=Zd;if(Zd)Zd=!1,fs=C,i4=U,X2=y;else for(ms=g;ms!==null;){var ce=ms.nextEffect;ms.nextEffect=null,ms.flags&mn&&R6(ms),ms=ce}if(Z=C.pendingLanes,Z!==xi){if(Vp!==null){var _e=Vp;Vp=null;for(var Oe=0;Oe<_e.length;Oe++)Mx(C,_e[Oe],C.memoizedInteractions)}F1(C,Z)}else Xd=null;if(le||d0(C,U),Z===Bn?C===L6?c0++:(c0=0,L6=C):c0=0,zd(B.stateNode,y),uv(),Za(C,El()),t4){t4=!1;var Fe=cx;throw cx=null,Fe}return(js&Jm)!==lo||kd(),null}function gx(){for(;ms!==null;){var C=ms.alternate;!Z2&&td!==null&&((ms.flags&mn)!==pn?Ob(ms,td)&&(Z2=!0):ms.tag===V&&WE(C,ms)&&Ob(ms,td)&&(Z2=!0));var y=ms.flags;(y&Qc)!==pn&&(sr(ms),ix(C,ms),yn()),(y&vf)!==pn&&(Zd||(Zd=!0,O2(Fd,function(){return yc(),null}))),ms=ms.nextEffect}}function FS(C,y){for(;ms!==null;){sr(ms);var B=ms.flags;if(B&Ed&&cv(ms),B&T_){var U=ms.alternate;U!==null&&UE(U)}var Z=B&(oa|Aa|mn|en);switch(Z){case oa:{RS(ms),ms.flags&=~oa;break}case mM:{RS(ms),ms.flags&=~oa;var g=ms.alternate;lv(g,ms);break}case en:{ms.flags&=~en;break}case F4:{ms.flags&=~en;var v=ms.alternate;lv(v,ms);break}case Aa:{var L=ms.alternate;lv(L,ms);break}case mn:{GE(C,ms);break}}yn(),ms=ms.nextEffect}}function $E(C,y){for(;ms!==null;){sr(ms);var B=ms.flags;if(B&(Aa|no)){var U=ms.alternate;FE(C,U,ms)}B&T_&&kE(ms),yn(),ms=ms.nextEffect}}function yc(){if(X2!==iu){var C=X2>Fd?Fd:X2;return X2=iu,P2(C,tT)}return!1}function kS(C,y){l0.push(y,C),Zd||(Zd=!0,O2(Fd,function(){return yc(),null}))}function _x(C,y){Kd.push(y,C);{C.flags|=M3;var B=C.alternate;B!==null&&(B.flags|=M3)}Zd||(Zd=!0,O2(Fd,function(){return yc(),null}))}function eT(C){var y=C.create;C.destroy=y()}function tT(){if(fs===null)return!1;var C=fs,y=i4;if(fs=null,i4=xi,(js&(Hr|_h))!==lo)throw Error("Cannot flush passive effects while already rendering.");r4=!0;var B=js;js|=_h;var U=u4(C),Z=Kd;Kd=[];for(var g=0;g<Z.length;g+=2){var v=Z[g],L=Z[g+1],z=v.destroy;v.destroy=void 0;{L.flags&=~M3;var j=L.alternate;j!==null&&(j.flags&=~M3)}if(typeof z=="function"){if(sr(L),dc(null,z,null),Md()){if(L===null)throw Error("Should be working on an effect.");var J=m1();z1(L,J)}yn()}}var le=l0;l0=[];for(var ce=0;ce<le.length;ce+=2){var _e=le[ce],Oe=le[ce+1];{if(sr(Oe),dc(null,eT,null,_e),Md()){if(Oe===null)throw Error("Should be working on an effect.");var Fe=m1();z1(Oe,Fe)}yn()}}for(var pt=C.current.firstEffect;pt!==null;){var it=pt.nextEffect;pt.nextEffect=null,pt.flags&mn&&R6(pt),pt=it}return Q2(U),d0(C,y),r4=!1,js=B,kd(),ed=fs===null?0:ed+1,!0}function sd(C){return Xd!==null&&Xd.has(C)}function iT(C){Xd===null?Xd=new Set([C]):Xd.add(C)}function vx(C){t4||(t4=!0,cx=C)}var sT=vx;function Ax(C,y,B){var U=qm(B,y),Z=JC(C,U,Bn);Vd(C,Z);var g=Xl(),v=gv(C,Bn);v!==null&&(tn(v,Bn,g),Za(v,g),F1(v,Bn))}function z1(C,y){if(C.tag===M){Ax(C,C,y);return}for(var B=C.return;B!==null;){if(B.tag===M){Ax(B,C,y);return}else if(B.tag===E){var U=B.type,Z=B.stateNode;if(typeof U.getDerivedStateFromError=="function"||typeof Z.componentDidCatch=="function"&&!sd(Z)){var g=qm(y,C),v=S6(B,g,Bn);Vd(B,v);var L=Xl(),z=gv(B,Bn);if(z!==null)tn(z,Bn,L),Za(z,L),F1(z,Bn);else if(typeof Z.componentDidCatch=="function"&&!sd(Z))try{Z.componentDidCatch(y,g)}catch{}return}}B=B.return}}function rT(C,y,B){var U=C.pingCache;U!==null&&U.delete(y);var Z=Xl();Zb(C,B),cl===C&&X0(Ll,B)&&(on===M6||on===Ru&&B_(Ll)&&El()-D1<n0?l4(C,xi):Xo=dr(Xo,B)),Za(C,Z),F1(C,B)}function nT(C,y){y===Vl&&(y=n4(C));var B=Xl(),U=gv(C,y);U!==null&&(tn(U,y,B),Za(U,B),F1(U,y))}function aT(C,y){var B=Vl,U;U=C.stateNode,U!==null&&U.delete(y),nT(C,B)}function Cx(C){return C<120?120:C<480?480:C<1080?1080:C<1920?1920:C<3e3?3e3:C<4320?4320:YE(C/1960)*1960}function h0(){if(c0>T6)throw c0=0,L6=null,Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.");ed>mv&&(ed=0,x("Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render."))}function US(){Ya.flushLegacyContextWarning(),Ya.flushPendingUnsafeLifecycleWarnings()}var Cv=null;function xx(C){{if((js&Hr)!==lo||!(C.mode&(ao|N2)))return;var y=C.tag;if(y!==b&&y!==M&&y!==E&&y!==S&&y!==k&&y!==ee&&y!==K&&y!==oe)return;var B=Vi(C.type)||"ReactComponent";if(Cv!==null){if(Cv.has(B))return;Cv.add(B)}else Cv=new Set([B]);var U=Sn;try{sr(C),x("Can't perform a React state update on a component that hasn't mounted yet. This indicates that you have a side-effect in your render function that asynchronously later calls tries to update the component. Move this work to useEffect instead.")}finally{U?sr(C):yn()}}}var xv=null;function bx(C){{var y=C.tag;if(y!==M&&y!==E&&y!==S&&y!==k&&y!==ee&&y!==K&&y!==oe||(C.flags&M3)!==pn)return;var B=Vi(C.type)||"ReactComponent";if(xv!==null){if(xv.has(B))return;xv.add(B)}else xv=new Set([B]);if(!r4){var U=Sn;try{sr(C),x("Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in %s.",y===E?"the componentWillUnmount method":"a useEffect cleanup function")}finally{U?sr(C):yn()}}}}var bv;{var Sv=null;bv=function(C,y,B){var U=D6(Sv,y);try{return YC(C,y,B)}catch(g){if(g!==null&&typeof g=="object"&&typeof g.then=="function")throw g;if(_p(),gS(),qC(y),D6(y,U),y.mode&Tu&&Hm(y),dc(null,YC,null,C,y,B),Md()){var Z=m1();throw Z}else throw g}}}var yv=!1,h4;h4=new Set;function O6(C){if(Kn&&(js&Hr)!==lo&&!_S())switch(C.tag){case S:case k:case K:{var y=Sa&&Vi(Sa.type)||"Unknown",B=y;if(!h4.has(B)){h4.add(B);var U=Vi(C.type)||"Unknown";x("Cannot update a component (`%s`) while rendering a different component (`%s`). To locate the bad setState() call inside `%s`, follow the stack trace as described in https://reactjs.org/link/setstate-in-render",U,y,y)}break}case E:{yv||(x("Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state."),yv=!0);break}}}var d4={current:!1};function jS(C){if(dv.current===!0&&d4.current!==!0){var y=Sn;try{sr(C),x(`It looks like you're using the wrong act() around your test interactions.
Be sure to use the matching version of act() corresponding to your renderer:

// for react-dom:
import {act} from 'react-dom/test-utils';
// ...
act(() => ...);

// for react-test-renderer:
import TestRenderer from react-test-renderer';
const {act} = TestRenderer;
// ...
act(() => ...);`)}finally{y?sr(C):yn()}}}function Mv(C){(C.mode&Wa)!==Ga&&dv.current===!1&&d4.current===!1&&x(`An update to %s ran an effect, but was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act`,Vi(C.type))}function Sx(C){if(js===lo&&dv.current===!1&&d4.current===!1){var y=Sn;try{sr(C),x(`An update to %s inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act`,Vi(C.type))}finally{y?sr(C):yn()}}}var yx=Sx,f4=!1;function VS(C){f4===!1&&m.unstable_flushAllWithoutAsserting===void 0&&(C.mode&ao||C.mode&N2)&&(f4=!0,x(`In Concurrent or Sync modes, the "scheduler" module needs to be mocked to guarantee consistent behaviour across tests and browsers. For example, with jest: 
jest.mock('scheduler', () => require('scheduler/unstable_mock'));

For more info, visit https://reactjs.org/link/mock-scheduler`))}function p4(C,y){return y*1e3+C.interactionThreadID}function Ev(C){Vp===null?Vp=[C]:Vp.push(C)}function Mx(C,y,B){if(B.size>0){var U=C.pendingInteractionMap,Z=U.get(y);Z!=null?B.forEach(function(L){Z.has(L)||L.__count++,Z.add(L)}):(U.set(y,new Set(B)),B.forEach(function(L){L.__count++}));var g=_.__subscriberRef.current;if(g!==null){var v=p4(C,y);g.onWorkScheduled(B,v)}}}function F1(C,y){Mx(C,y,_.__interactionsRef.current)}function GS(C,y){var B=new Set;if(C.pendingInteractionMap.forEach(function(g,v){mc(y,v)&&g.forEach(function(L){return B.add(L)})}),C.memoizedInteractions=B,B.size>0){var U=_.__subscriberRef.current;if(U!==null){var Z=p4(C,y);try{U.onWorkStarted(B,Z)}catch(g){O2(hh,function(){throw g})}}}}function d0(C,y){var B=C.pendingLanes,U;try{if(U=_.__subscriberRef.current,U!==null&&C.memoizedInteractions.size>0){var Z=p4(C,y);U.onWorkStopped(C.memoizedInteractions,Z)}}catch(v){O2(hh,function(){throw v})}finally{var g=C.pendingInteractionMap;g.forEach(function(v,L){mc(B,L)||(g.delete(L),v.forEach(function(z){if(z.__count--,U!==null&&z.__count===0)try{U.onInteractionScheduledWorkCompleted(z)}catch(j){O2(hh,function(){throw j})}}))})}}function R6(C){C.sibling=null,C.stateNode=null}var wu=null,Ch=null,WS=function(C){wu=C};function k1(C){{if(wu===null)return C;var y=wu(C);return y===void 0?C:y.current}}function Tv(C){return k1(C)}function Bu(C){{if(wu===null)return C;var y=wu(C);if(y===void 0){if(C!=null&&typeof C.render=="function"){var B=k1(C.render);if(C.render!==B){var U={$$typeof:Xs,render:B};return C.displayName!==void 0&&(U.displayName=C.displayName),U}}return C}return y.current}}function Hp(C,y){{if(wu===null)return!1;var B=C.elementType,U=y.type,Z=!1,g=typeof U=="object"&&U!==null?U.$$typeof:null;switch(C.tag){case E:{typeof U=="function"&&(Z=!0);break}case S:{(typeof U=="function"||g===We)&&(Z=!0);break}case k:{(g===Xs||g===We)&&(Z=!0);break}case ee:case K:{(g===fr||g===We)&&(Z=!0);break}default:return!1}if(Z){var v=wu(B);if(v!==void 0&&v===wu(U))return!0}return!1}}function HS(C){{if(wu===null||typeof WeakSet!="function")return;Ch===null&&(Ch=new WeakSet),Ch.add(C)}}var Yp=function(C,y){{if(wu===null)return;var B=y.staleFamilies,U=y.updatedFamilies;yc(),_v(function(){Xp(C.current,U,B)})}},Ex=function(C,y){{if(C.context!==Do)return;yc(),_v(function(){qp(y,C,null,null)})}};function Xp(C,y,B){{var U=C.alternate,Z=C.child,g=C.sibling,v=C.tag,L=C.type,z=null;switch(v){case S:case K:case E:z=L;break;case k:z=L.render;break}if(wu===null)throw new Error("Expected resolveFamily to be set during hot reload.");var j=!1,J=!1;if(z!==null){var le=wu(z);le!==void 0&&(B.has(le)?J=!0:y.has(le)&&(v===E?J=!0:j=!0))}Ch!==null&&(Ch.has(C)||U!==null&&Ch.has(U))&&(J=!0),J&&(C._debugNeedsRemount=!0),(J||j)&&ul(C,Bn,Va),Z!==null&&!J&&Xp(Z,y,B),g!==null&&Xp(g,y,B)}}var YS=function(C,y){{var B=new Set,U=new Set(y.map(function(Z){return Z.current}));return Lv(C.current,U,B),B}};function Lv(C,y,B){{var U=C.child,Z=C.sibling,g=C.tag,v=C.type,L=null;switch(g){case S:case K:case E:L=v;break;case k:L=v.render;break}var z=!1;L!==null&&y.has(L)&&(z=!0),z?Tx(C,B):U!==null&&Lv(U,y,B),Z!==null&&Lv(Z,y,B)}}function Tx(C,y){{var B=oT(C,y);if(B)return;for(var U=C;;){switch(U.tag){case O:y.add(U.stateNode);return;case T:y.add(U.stateNode.containerInfo);return;case M:y.add(U.stateNode.containerInfo);return}if(U.return===null)throw new Error("Expected to reach root first.");U=U.return}}}function oT(C,y){for(var B=C,U=!1;;){if(B.tag===O)U=!0,y.add(B.stateNode);else if(B.child!==null){B.child.return=B,B=B.child;continue}if(B===C)return U;for(;B.sibling===null;){if(B.return===null||B.return===C)return U;B=B.return}B.sibling.return=B.return,B=B.sibling}return!1}var f0;{f0=!1;try{var XS=Object.preventExtensions({})}catch{f0=!0}}var Lx=1;function ZS(C,y,B,U){this.tag=C,this.key=B,this.elementType=null,this.type=null,this.stateNode=null,this.return=null,this.child=null,this.sibling=null,this.index=0,this.ref=null,this.pendingProps=y,this.memoizedProps=null,this.updateQueue=null,this.memoizedState=null,this.dependencies=null,this.mode=U,this.flags=pn,this.nextEffect=null,this.firstEffect=null,this.lastEffect=null,this.lanes=xi,this.childLanes=xi,this.alternate=null,this.actualDuration=Number.NaN,this.actualStartTime=Number.NaN,this.selfBaseDuration=Number.NaN,this.treeBaseDuration=Number.NaN,this.actualDuration=0,this.actualStartTime=-1,this.selfBaseDuration=0,this.treeBaseDuration=0,this._debugID=Lx++,this._debugSource=null,this._debugOwner=null,this._debugNeedsRemount=!1,this._debugHookTypes=null,!f0&&typeof Object.preventExtensions=="function"&&Object.preventExtensions(this)}var xh=function(C,y,B,U){return new ZS(C,y,B,U)};function Zp(C){var y=C.prototype;return!!(y&&y.isReactComponent)}function KS(C){return typeof C=="function"&&!Zp(C)&&C.defaultProps===void 0}function lT(C){if(typeof C=="function")return Zp(C)?E:S;if(C!=null){var y=C.$$typeof;if(y===Xs)return k;if(y===fr)return ee}return b}function p0(C,y){var B=C.alternate;B===null?(B=xh(C.tag,y,C.key,C.mode),B.elementType=C.elementType,B.type=C.type,B.stateNode=C.stateNode,B._debugID=C._debugID,B._debugSource=C._debugSource,B._debugOwner=C._debugOwner,B._debugHookTypes=C._debugHookTypes,B.alternate=C,C.alternate=B):(B.pendingProps=y,B.type=C.type,B.flags=pn,B.nextEffect=null,B.firstEffect=null,B.lastEffect=null,B.actualDuration=0,B.actualStartTime=-1),B.childLanes=C.childLanes,B.lanes=C.lanes,B.child=C.child,B.memoizedProps=C.memoizedProps,B.memoizedState=C.memoizedState,B.updateQueue=C.updateQueue;var U=C.dependencies;switch(B.dependencies=U===null?null:{lanes:U.lanes,firstContext:U.firstContext},B.sibling=C.sibling,B.index=C.index,B.ref=C.ref,B.selfBaseDuration=C.selfBaseDuration,B.treeBaseDuration=C.treeBaseDuration,B._debugNeedsRemount=C._debugNeedsRemount,B.tag){case b:case S:case K:B.type=k1(C.type);break;case E:B.type=Tv(C.type);break;case k:B.type=Bu(C.type);break}return B}function bh(C,y){C.flags&=oa,C.nextEffect=null,C.firstEffect=null,C.lastEffect=null;var B=C.alternate;if(B===null)C.childLanes=xi,C.lanes=y,C.child=null,C.memoizedProps=null,C.memoizedState=null,C.updateQueue=null,C.dependencies=null,C.stateNode=null,C.selfBaseDuration=0,C.treeBaseDuration=0;else{C.childLanes=B.childLanes,C.lanes=B.lanes,C.child=B.child,C.memoizedProps=B.memoizedProps,C.memoizedState=B.memoizedState,C.updateQueue=B.updateQueue,C.type=B.type;var U=B.dependencies;C.dependencies=U===null?null:{lanes:U.lanes,firstContext:U.firstContext},C.selfBaseDuration=B.selfBaseDuration,C.treeBaseDuration=B.treeBaseDuration}return C}function Iv(C){var y;return C===kg?y=N2|ao|Wa:C===QA?y=ao|Wa:y=Ga,c8&&(y|=Tu),xh(M,null,null,y)}function Ix(C,y,B,U,Z,g){var v=b,L=C;if(typeof C=="function")Zp(C)?(v=E,L=Tv(L)):L=k1(L);else if(typeof C=="string")v=O;else e:switch(C){case os:return zu(B.children,Z,g,y);case hs:v=N,Z|=Ha;break;case bs:v=N,Z|=Wa;break;case hi:return cT(B,Z,g,y);case ks:return uT(B,Z,g,y);case hr:return Ox(B,Z,g,y);case Ge:return m4(B,Z,g,y);case Zt:return Kp(B,Z,g,y);case zi:default:{if(typeof C=="object"&&C!==null)switch(C.$$typeof){case Oi:v=D;break e;case li:v=w;break e;case Xs:v=k,L=Bu(L);break e;case fr:v=ee;break e;case We:v=ie,L=null;break e;case fi:v=oe;break e}var z="";{(C===void 0||typeof C=="object"&&C!==null&&Object.keys(C).length===0)&&(z+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var j=U?Vi(U.type):null;j&&(z+=`

Check the render method of \``+j+"`.")}throw Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: "+(C==null?C:typeof C)+"."+z)}}var J=xh(v,B,y,Z);return J.elementType=C,J.type=L,J.lanes=g,J._debugOwner=U,J}function Px(C,y,B){var U=null;U=C._owner;var Z=C.type,g=C.key,v=C.props,L=Ix(Z,g,v,U,y,B);return L._debugSource=C._source,L._debugOwner=C._owner,L}function zu(C,y,B,U){var Z=xh(I,C,U,y);return Z.lanes=B,Z}function cT(C,y,B,U){typeof C.id!="string"&&x('Profiler must specify an "id" as a prop');var Z=xh(Y,C,U,y|Tu);return Z.elementType=hi,Z.type=hi,Z.lanes=B,Z.stateNode={effectDuration:0,passiveEffectDuration:0},Z}function uT(C,y,B,U){var Z=xh(V,C,U,y);return Z.type=ks,Z.elementType=ks,Z.lanes=B,Z}function Ox(C,y,B,U){var Z=xh(W,C,U,y);return Z.type=hr,Z.elementType=hr,Z.lanes=B,Z}function m4(C,y,B,U){var Z=xh(X,C,U,y);return Z.type=Ge,Z.elementType=Ge,Z.lanes=B,Z}function Kp(C,y,B,U){var Z=xh(se,C,U,y);return Z.type=Zt,Z.elementType=Zt,Z.lanes=B,Z}function Rx(C,y,B){var U=xh(R,C,null,y);return U.lanes=B,U}function hT(){var C=xh(O,null,null,Ga);return C.elementType="DELETED",C.type="DELETED",C}function Pv(C,y,B){var U=C.children!==null?C.children:[],Z=xh(T,U,C.key,y);return Z.lanes=B,Z.stateNode={containerInfo:C.containerInfo,pendingChildren:null,implementation:C.implementation},Z}function D6(C,y){return C===null&&(C=xh(b,null,null,Ga)),C.tag=y.tag,C.key=y.key,C.elementType=y.elementType,C.type=y.type,C.stateNode=y.stateNode,C.return=y.return,C.child=y.child,C.sibling=y.sibling,C.index=y.index,C.ref=y.ref,C.pendingProps=y.pendingProps,C.memoizedProps=y.memoizedProps,C.updateQueue=y.updateQueue,C.memoizedState=y.memoizedState,C.dependencies=y.dependencies,C.mode=y.mode,C.flags=y.flags,C.nextEffect=y.nextEffect,C.firstEffect=y.firstEffect,C.lastEffect=y.lastEffect,C.lanes=y.lanes,C.childLanes=y.childLanes,C.alternate=y.alternate,C.actualDuration=y.actualDuration,C.actualStartTime=y.actualStartTime,C.selfBaseDuration=y.selfBaseDuration,C.treeBaseDuration=y.treeBaseDuration,C._debugID=y._debugID,C._debugSource=y._debugSource,C._debugOwner=y._debugOwner,C._debugNeedsRemount=y._debugNeedsRemount,C._debugHookTypes=y._debugHookTypes,C}function dT(C,y,B){switch(this.tag=y,this.containerInfo=C,this.pendingChildren=null,this.current=null,this.pingCache=null,this.finishedWork=null,this.timeoutHandle=zA,this.context=null,this.pendingContext=null,this.hydrate=B,this.callbackNode=null,this.callbackPriority=_1,this.eventTimes=C1(xi),this.expirationTimes=C1(Va),this.pendingLanes=xi,this.suspendedLanes=xi,this.pingedLanes=xi,this.expiredLanes=xi,this.mutableReadLanes=xi,this.finishedLanes=xi,this.entangledLanes=xi,this.entanglements=C1(xi),this.mutableSourceEagerHydrationData=null,this.interactionThreadID=_.unstable_getThreadID(),this.memoizedInteractions=new Set,this.pendingInteractionMap=new Map,y){case QA:this._debugRootType="createBlockingRoot()";break;case kg:this._debugRootType="createRoot()";break;case Fg:this._debugRootType="createLegacyRoot()";break}}function Dx(C,y,B,U){var Z=new dT(C,y,B),g=Iv(y);return Z.current=g,g.stateNode=Z,Am(g),Z}function fT(C,y){var B=y._getVersion,U=B(y._source);C.mutableSourceEagerHydrationData==null?C.mutableSourceEagerHydrationData=[y,U]:C.mutableSourceEagerHydrationData.push(y,U)}function Ov(C,y,B){var U=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:ki,key:U==null?null:""+U,children:C,containerInfo:y,implementation:B}}var Rv,Nx;Rv=!1,Nx={};function N6(C){if(!C)return Do;var y=fc(C),B=qA(y);if(y.tag===E){var U=y.type;if(ch(U))return cm(y,U,B)}return B}function pT(C,y){{var B=fc(C);if(B===void 0)throw typeof C.render=="function"?Error("Unable to find node on an unmounted component."):Error("Argument appears to not be a ReactComponent. Keys: "+Object.keys(C));var U=T5(B);if(U===null)return null;if(U.mode&Wa){var Z=Vi(B.type)||"Component";if(!Nx[Z]){Nx[Z]=!0;var g=Sn;try{sr(U),B.mode&Wa?x("%s is deprecated in StrictMode. %s was passed an instance of %s which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-node",y,y,Z):x("%s is deprecated in StrictMode. %s was passed an instance of %s which renders StrictMode children. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-node",y,y,Z)}finally{g?sr(g):yn()}}}return U.stateNode}}function mT(C,y,B,U){return Dx(C,y,B)}function qp(C,y,B,U){u8(y,C);var Z=y.current,g=Xl();typeof jest<"u"&&(VS(Z),jS(Z));var v=w1(Z),L=N6(B);y.context===null?y.context=L:y.pendingContext=L,Kn&&Sn!==null&&!Rv&&(Rv=!0,x(`Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.

Check the render method of %s.`,Vi(Sn.type)||"Unknown"));var z=Xh(g,v);return z.payload={element:C},U=U===void 0?null:U,U!==null&&(typeof U!="function"&&x("render(...): Expected the last optional `callback` argument to be a function. Instead received: %s.",U),z.callback=U),Vd(Z,z),ul(Z,v,g),v}function w6(C){var y=C.current;if(!y.child)return null;switch(y.child.tag){case O:return y.child.stateNode;default:return y.child.stateNode}}function J2(C,y){var B=C.memoizedState;B!==null&&B.dehydrated!==null&&(B.retryLane=gc(B.retryLane,y))}function wx(C,y){J2(C,y);var B=C.alternate;B&&J2(B,y)}function gT(C){if(C.tag===V){var y=Xl(),B=z5;ul(C,B,y),wx(C,B)}}function B6(C){if(C.tag===V){var y=Xl(),B=rg;ul(C,B,y),wx(C,B)}}function Bx(C){if(C.tag===V){var y=Xl(),B=w1(C);ul(C,B,y),wx(C,B)}}function z6(C,y){try{return y()}finally{}}function F6(C){var y=gM(C);return y===null?null:y.tag===Q?y.stateNode.instance:y.stateNode}var qS=function(C){return!1};function _T(C){return qS(C)}var QS=null,JS=null,k6=null,zx=null,$S=null,Fx=null,U6=null,Dv=null;{var kx=function(C,y,B){var U=y[B],Z=Array.isArray(C)?C.slice():p({},C);return B+1===y.length?(Array.isArray(Z)?Z.splice(U,1):delete Z[U],Z):(Z[U]=kx(C[U],y,B+1),Z)},Ux=function(C,y){return kx(C,y,0)},jx=function(C,y,B,U){var Z=y[U],g=Array.isArray(C)?C.slice():p({},C);if(U+1===y.length){var v=B[U];g[v]=g[Z],Array.isArray(g)?g.splice(Z,1):delete g[Z]}else g[Z]=jx(C[Z],y,B,U+1);return g},j6=function(C,y,B){if(y.length!==B.length){h("copyWithRename() expects paths of the same length");return}else for(var U=0;U<B.length-1;U++)if(y[U]!==B[U]){h("copyWithRename() expects paths to be the same except for the deepest key");return}return jx(C,y,B,0)},Vx=function(C,y,B,U){if(B>=y.length)return U;var Z=y[B],g=Array.isArray(C)?C.slice():p({},C);return g[Z]=Vx(C[Z],y,B+1,U),g},Gx=function(C,y,B){return Vx(C,y,0,B)},Nv=function(C,y){for(var B=C.memoizedState;B!==null&&y>0;)B=B.next,y--;return B};QS=function(C,y,B,U){var Z=Nv(C,y);if(Z!==null){var g=Gx(Z.memoizedState,B,U);Z.memoizedState=g,Z.baseState=g,C.memoizedProps=p({},C.memoizedProps),ul(C,Bn,Va)}},JS=function(C,y,B){var U=Nv(C,y);if(U!==null){var Z=Ux(U.memoizedState,B);U.memoizedState=Z,U.baseState=Z,C.memoizedProps=p({},C.memoizedProps),ul(C,Bn,Va)}},k6=function(C,y,B,U){var Z=Nv(C,y);if(Z!==null){var g=j6(Z.memoizedState,B,U);Z.memoizedState=g,Z.baseState=g,C.memoizedProps=p({},C.memoizedProps),ul(C,Bn,Va)}},zx=function(C,y,B){C.pendingProps=Gx(C.memoizedProps,y,B),C.alternate&&(C.alternate.pendingProps=C.pendingProps),ul(C,Bn,Va)},$S=function(C,y){C.pendingProps=Ux(C.memoizedProps,y),C.alternate&&(C.alternate.pendingProps=C.pendingProps),ul(C,Bn,Va)},Fx=function(C,y,B){C.pendingProps=j6(C.memoizedProps,y,B),C.alternate&&(C.alternate.pendingProps=C.pendingProps),ul(C,Bn,Va)},U6=function(C){ul(C,Bn,Va)},Dv=function(C){qS=C}}function ey(C){var y=T5(C);return y===null?null:y.stateNode}function Wx(C){return null}function ty(){return Sn}function iy(C){var y=C.findFiberByHostInstance,B=d.ReactCurrentDispatcher;return oS({bundleType:C.bundleType,version:C.version,rendererPackageName:C.rendererPackageName,rendererConfig:C.rendererConfig,overrideHookState:QS,overrideHookStateDeletePath:JS,overrideHookStateRenamePath:k6,overrideProps:zx,overridePropsDeletePath:$S,overridePropsRenamePath:Fx,setSuspenseHandler:Dv,scheduleUpdate:U6,currentDispatcherRef:B,findHostInstanceByFiber:ey,findFiberByHostInstance:y||Wx,findHostInstancesForRefresh:YS,scheduleRefresh:Yp,scheduleRoot:Ex,setRefreshHandler:WS,getCurrentFiber:ty})}function g4(C,y,B){this._internalRoot=vT(C,y,B)}g4.prototype.render=function(C){var y=this._internalRoot;{typeof arguments[1]=="function"&&x("render(...): does not support the second callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().");var B=y.containerInfo;if(B.nodeType!==Oo){var U=F6(y.current);U&&U.parentNode!==B&&x("render(...): It looks like the React-rendered content of the root container was removed without using React. This is not supported and will cause errors. Instead, call root.unmount() to empty a root's container.")}}qp(C,y,null,null)},g4.prototype.unmount=function(){typeof arguments[0]=="function"&&x("unmount(...): does not support a callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().");var C=this._internalRoot,y=C.containerInfo;qp(null,C,null,function(){KA(y)})};function vT(C,y,B){var U=B!=null&&B.hydrate===!0;B!=null&&B.hydrationOptions;var Z=B!=null&&B.hydrationOptions!=null&&B.hydrationOptions.mutableSources||null,g=mT(C,y,U);nm(g.current,C),C.nodeType;{var v=C.nodeType===Oo?C.parentNode:C;U7(v)}if(Z)for(var L=0;L<Z.length;L++){var z=Z[L];fT(g,z)}return g}function sy(C,y){return new g4(C,Fg,y)}function Qp(C){return!!(C&&(C.nodeType===go||C.nodeType===so||C.nodeType===vd||C.nodeType===Oo&&C.nodeValue===" react-mount-point-unstable "))}var AT=d.ReactCurrentOwner,V6,ry=!1;V6=function(C){if(C._reactRootContainer&&C.nodeType!==Oo){var y=F6(C._reactRootContainer._internalRoot.current);y&&y.parentNode!==C&&x("render(...): It looks like the React-rendered content of this container was removed without using React. This is not supported and will cause errors. Instead, call ReactDOM.unmountComponentAtNode to empty a container.")}var B=!!C._reactRootContainer,U=wv(C),Z=!!(U&&Dd(U));Z&&!B&&x("render(...): Replacing React-rendered children with a new root component. If you intended to update the children of this node, you should instead have the existing children update their state and render the new components instead of calling ReactDOM.render."),C.nodeType===go&&C.tagName&&C.tagName.toUpperCase()==="BODY"&&x("render(): Rendering components directly into document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try rendering into a container element created for your app.")};function wv(C){return C?C.nodeType===so?C.documentElement:C.firstChild:null}function Jp(C){var y=wv(C);return!!(y&&y.nodeType===go&&y.hasAttribute(je))}function ny(C,y){var B=y||Jp(C);if(!B)for(var U=!1,Z;Z=C.lastChild;)!U&&Z.nodeType===go&&Z.hasAttribute(je)&&(U=!0,x("render(): Target node has markup rendered by React, but there are unrelated nodes as well. This is most commonly caused by white-space inserted around server-rendered markup.")),C.removeChild(Z);return B&&!y&&!ry&&(ry=!0,h("render(): Calling ReactDOM.render() to hydrate server-rendered markup will stop working in React v18. Replace the ReactDOM.render() call with ReactDOM.hydrate() if you want React to attach to the server HTML.")),sy(C,B?{hydrate:!0}:void 0)}function ay(C,y){C!==null&&typeof C!="function"&&x("%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.",y,C)}function _4(C,y,B,U,Z){V6(B),ay(Z===void 0?null:Z,"render");var g=B._reactRootContainer,v;if(g){if(v=g._internalRoot,typeof Z=="function"){var z=Z;Z=function(){var j=w6(v);z.call(j)}}qp(y,v,C,Z)}else{if(g=B._reactRootContainer=ny(B,U),v=g._internalRoot,typeof Z=="function"){var L=Z;Z=function(){var j=w6(v);L.call(j)}}NS(function(){qp(y,v,C,Z)})}return w6(v)}function Bv(C){{var y=AT.current;if(y!==null&&y.stateNode!==null){var B=y.stateNode._warnedAboutRefsInRender;B||x("%s is accessing findDOMNode inside its render(). render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",Vi(y.type)||"A component"),y.stateNode._warnedAboutRefsInRender=!0}}return C==null?null:C.nodeType===go?C:pT(C,"findDOMNode")}function CT(C,y,B){if(!Qp(y))throw Error("Target container is not a DOM element.");{var U=Nf(y)&&y._reactRootContainer===void 0;U&&x("You are calling ReactDOM.hydrate() on a container that was previously passed to ReactDOM.createRoot(). This is not supported. Did you mean to call createRoot(container, {hydrate: true}).render(element)?")}return _4(null,C,y,!0,B)}function Hx(C,y,B){if(!Qp(y))throw Error("Target container is not a DOM element.");{var U=Nf(y)&&y._reactRootContainer===void 0;U&&x("You are calling ReactDOM.render() on a container that was previously passed to ReactDOM.createRoot(). This is not supported. Did you mean to call root.render(element)?")}return _4(null,C,y,!1,B)}function xT(C,y,B,U){if(!Qp(B))throw Error("Target container is not a DOM element.");if(!(C!=null&&pM(C)))throw Error("parentComponent must be a valid React Component");return _4(C,y,B,!1,U)}function G6(C){if(!Qp(C))throw Error("unmountComponentAtNode(...): Target container is not a DOM element.");{var y=Nf(C)&&C._reactRootContainer===void 0;y&&x("You are calling ReactDOM.unmountComponentAtNode() on a container that was previously passed to ReactDOM.createRoot(). This is not supported. Did you mean to call root.unmount()?")}if(C._reactRootContainer){{var B=wv(C),U=B&&!Dd(B);U&&x("unmountComponentAtNode(): The node you're attempting to unmount was rendered by another copy of React.")}return NS(function(){_4(null,null,C,!1,function(){C._reactRootContainer=null,KA(C)})}),!0}else{{var Z=wv(C),g=!!(Z&&Dd(Z)),v=C.nodeType===go&&Qp(C.parentNode)&&!!C.parentNode._reactRootContainer;g&&x("unmountComponentAtNode(): The node you're attempting to unmount was rendered by React and is not a top-level container. %s",v?"You may have accidentally passed in a React root node instead of its container.":"Instead, have the parent component update its state and rerender in order to remove this component.")}return!1}}Rb(gT),_M(B6),I5(Bx),P_(z6);var oy=!1;(typeof Map!="function"||Map.prototype==null||typeof Map.prototype.forEach!="function"||typeof Set!="function"||Set.prototype==null||typeof Set.prototype.clear!="function"||typeof Set.prototype.forEach!="function")&&x("React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),Xe(W7),Ro(hx,dx,id,q2);function ly(C,y){var B=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;if(!Qp(y))throw Error("Target container is not a DOM element.");return Ov(C,y,null,B)}function cy(C,y,B,U){return xT(C,y,B,U)}function bT(C,y){var B=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;return oy||(oy=!0,h('The ReactDOM.unstable_createPortal() alias has been deprecated, and will be removed in React 18+. Update your code to use ReactDOM.createPortal() instead. It has the exact same API, but without the "unstable_" prefix.')),ly(C,y,B)}var uy={Events:[Dd,op,Bg,Je,Gt,yc,d4]},hy=iy({findFiberByHostInstance:M2,bundleType:1,version:D2,rendererPackageName:"react-dom"});if(!hy&&Ke&&window.top===window.self&&(navigator.userAgent.indexOf("Chrome")>-1&&navigator.userAgent.indexOf("Edge")===-1||navigator.userAgent.indexOf("Firefox")>-1)){var Yx=window.location.protocol;/^(https?|file):$/.test(Yx)&&console.info("%cDownload the React DevTools for a better development experience: https://reactjs.org/link/react-devtools"+(Yx==="file:"?`
You might need to use a local HTTP server (instead of file://): https://reactjs.org/link/react-devtools-faq`:""),"font-weight:bold")}c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=uy,c.createPortal=ly,c.findDOMNode=Bv,c.flushSync=_v,c.hydrate=CT,c.render=Hx,c.unmountComponentAtNode=G6,c.unstable_batchedUpdates=hx,c.unstable_createPortal=bT,c.unstable_renderSubtreeIntoContainer=cy,c.version=D2})()},"../../../../node_modules/react-dom/index.js":(l,c,u)=>{l.exports=u("../../../../node_modules/react-dom/cjs/react-dom.development.js")},"../../../../node_modules/react/cjs/react-jsx-runtime.development.js":(l,c,u)=>{/** @license React v17.0.2
 * react-jsx-runtime.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */(function(){var f=u("../../../../node_modules/react/index.js"),p=u("../../../../node_modules/object-assign/index.js"),m=60103,_=60106;c.Fragment=60107;var d=60108,h=60114,x=60109,A=60110,S=60112,E=60113,b=60120,M=60115,T=60116,O=60121,R=60122,I=60117,N=60129,w=60131;if(typeof Symbol=="function"&&Symbol.for){var D=Symbol.for;m=D("react.element"),_=D("react.portal"),c.Fragment=D("react.fragment"),d=D("react.strict_mode"),h=D("react.profiler"),x=D("react.provider"),A=D("react.context"),S=D("react.forward_ref"),E=D("react.suspense"),b=D("react.suspense_list"),M=D("react.memo"),T=D("react.lazy"),O=D("react.block"),R=D("react.server.block"),I=D("react.fundamental"),D("react.scope"),D("react.opaque.id"),N=D("react.debug_trace_mode"),D("react.offscreen"),w=D("react.legacy_hidden")}var k=typeof Symbol=="function"&&Symbol.iterator,Y="@@iterator";function V(We){if(We===null||typeof We!="object")return null;var fi=k&&We[k]||We[Y];return typeof fi=="function"?fi:null}var ee=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function K(We){{for(var fi=arguments.length,zi=new Array(fi>1?fi-1:0),ts=1;ts<fi;ts++)zi[ts-1]=arguments[ts];ie("error",We,zi)}}function ie(We,fi,zi){{var ts=ee.ReactDebugCurrentFrame,hs=ts.getStackAddendum();hs!==""&&(fi+="%s",zi=zi.concat([hs]));var Ge=zi.map(function(Zt){return""+Zt});Ge.unshift("Warning: "+fi),Function.prototype.apply.call(console[We],console,Ge)}}var ne=!1;function te(We){return!!(typeof We=="string"||typeof We=="function"||We===c.Fragment||We===h||We===N||We===d||We===E||We===b||We===w||ne||typeof We=="object"&&We!==null&&(We.$$typeof===T||We.$$typeof===M||We.$$typeof===x||We.$$typeof===A||We.$$typeof===S||We.$$typeof===I||We.$$typeof===O||We[0]===R))}function W(We,fi,zi){var ts=fi.displayName||fi.name||"";return We.displayName||(ts!==""?zi+"("+ts+")":zi)}function Q(We){return We.displayName||"Context"}function re(We){if(We==null)return null;if(typeof We.tag=="number"&&K("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof We=="function")return We.displayName||We.name||null;if(typeof We=="string")return We;switch(We){case c.Fragment:return"Fragment";case _:return"Portal";case h:return"Profiler";case d:return"StrictMode";case E:return"Suspense";case b:return"SuspenseList"}if(typeof We=="object")switch(We.$$typeof){case A:var fi=We;return Q(fi)+".Consumer";case x:var zi=We;return Q(zi._context)+".Provider";case S:return W(We,We.render,"ForwardRef");case M:return re(We.type);case O:return re(We._render);case T:{var ts=We,hs=ts._payload,Ge=ts._init;try{return re(Ge(hs))}catch{return null}}}return null}var oe=0,X,se,ue,he,fe,Ae,Se;function we(){}we.__reactDisabledLog=!0;function ke(){{if(oe===0){X=console.log,se=console.info,ue=console.warn,he=console.error,fe=console.group,Ae=console.groupCollapsed,Se=console.groupEnd;var We={configurable:!0,enumerable:!0,value:we,writable:!0};Object.defineProperties(console,{info:We,log:We,warn:We,error:We,group:We,groupCollapsed:We,groupEnd:We})}oe++}}function st(){{if(oe--,oe===0){var We={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:p({},We,{value:X}),info:p({},We,{value:se}),warn:p({},We,{value:ue}),error:p({},We,{value:he}),group:p({},We,{value:fe}),groupCollapsed:p({},We,{value:Ae}),groupEnd:p({},We,{value:Se})})}oe<0&&K("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Ve=ee.ReactCurrentDispatcher,Ke;function ct(We,fi,zi){{if(Ke===void 0)try{throw Error()}catch(hs){var ts=hs.stack.trim().match(/\n( *(at )?)/);Ke=ts&&ts[1]||""}return`
`+Ke+We}}var nt=!1,at;{var xt=typeof WeakMap=="function"?WeakMap:Map;at=new xt}function Qe(We,fi){if(!We||nt)return"";{var zi=at.get(We);if(zi!==void 0)return zi}var ts;nt=!0;var hs=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var Ge;Ge=Ve.current,Ve.current=null,ke();try{if(fi){var Zt=function(){throw Error()};if(Object.defineProperty(Zt.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Zt,[])}catch(Js){ts=Js}Reflect.construct(We,[],Zt)}else{try{Zt.call()}catch(Js){ts=Js}We.call(Zt.prototype)}}else{try{throw Error()}catch(Js){ts=Js}We()}}catch(Js){if(Js&&ts&&typeof Js.stack=="string"){for(var $t=Js.stack.split(`
`),Ui=ts.stack.split(`
`),ls=$t.length-1,ns=Ui.length-1;ls>=1&&ns>=0&&$t[ls]!==Ui[ns];)ns--;for(;ls>=1&&ns>=0;ls--,ns--)if($t[ls]!==Ui[ns]){if(ls!==1||ns!==1)do if(ls--,ns--,ns<0||$t[ls]!==Ui[ns]){var Ss=`
`+$t[ls].replace(" at new "," at ");return typeof We=="function"&&at.set(We,Ss),Ss}while(ls>=1&&ns>=0);break}}}finally{nt=!1,Ve.current=Ge,st(),Error.prepareStackTrace=hs}var qi=We?We.displayName||We.name:"",pr=qi?ct(qi):"";return typeof We=="function"&&at.set(We,pr),pr}function kt(We,fi,zi){return Qe(We,!1)}function ot(We){var fi=We.prototype;return!!(fi&&fi.isReactComponent)}function At(We,fi,zi){if(We==null)return"";if(typeof We=="function")return Qe(We,ot(We));if(typeof We=="string")return ct(We);switch(We){case E:return ct("Suspense");case b:return ct("SuspenseList")}if(typeof We=="object")switch(We.$$typeof){case S:return kt(We.render);case M:return At(We.type,fi,zi);case O:return kt(We._render);case T:{var ts=We,hs=ts._payload,Ge=ts._init;try{return At(Ge(hs),fi,zi)}catch{}}}return""}var Me={},je=ee.ReactDebugCurrentFrame;function rt(We){if(We){var fi=We._owner,zi=At(We.type,We._source,fi?fi.type:null);je.setExtraStackFrame(zi)}else je.setExtraStackFrame(null)}function yt(We,fi,zi,ts,hs){{var Ge=Function.call.bind(Object.prototype.hasOwnProperty);for(var Zt in We)if(Ge(We,Zt)){var $t=void 0;try{if(typeof We[Zt]!="function"){var Ui=Error((ts||"React class")+": "+zi+" type `"+Zt+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof We[Zt]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw Ui.name="Invariant Violation",Ui}$t=We[Zt](fi,Zt,ts,zi,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(ls){$t=ls}$t&&!($t instanceof Error)&&(rt(hs),K("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",ts||"React class",zi,Zt,typeof $t),rt(null)),$t instanceof Error&&!($t.message in Me)&&(Me[$t.message]=!0,rt(hs),K("Failed %s type: %s",zi,$t.message),rt(null))}}}var Rt=ee.ReactCurrentOwner,Nt=Object.prototype.hasOwnProperty,Kt={key:!0,ref:!0,__self:!0,__source:!0},si,Pi;function gi(We){if(Nt.call(We,"ref")){var fi=Object.getOwnPropertyDescriptor(We,"ref").get;if(fi&&fi.isReactWarning)return!1}return We.ref!==void 0}function bi(We){if(Nt.call(We,"key")){var fi=Object.getOwnPropertyDescriptor(We,"key").get;if(fi&&fi.isReactWarning)return!1}return We.key!==void 0}function wi(We,fi){typeof We.ref=="string"&&Rt.current}function Ni(We,fi){{var zi=function(){si||(si=!0,K("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",fi))};zi.isReactWarning=!0,Object.defineProperty(We,"key",{get:zi,configurable:!0})}}function qt(We,fi){{var zi=function(){Pi||(Pi=!0,K("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",fi))};zi.isReactWarning=!0,Object.defineProperty(We,"ref",{get:zi,configurable:!0})}}var ci=function(We,fi,zi,ts,hs,Ge,Zt){var $t={$$typeof:m,type:We,key:fi,ref:zi,props:Zt,_owner:Ge};return $t._store={},Object.defineProperty($t._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty($t,"_self",{configurable:!1,enumerable:!1,writable:!1,value:ts}),Object.defineProperty($t,"_source",{configurable:!1,enumerable:!1,writable:!1,value:hs}),Object.freeze&&(Object.freeze($t.props),Object.freeze($t)),$t};function qe(We,fi,zi,ts,hs){{var Ge,Zt={},$t=null,Ui=null;zi!==void 0&&($t=""+zi),bi(fi)&&($t=""+fi.key),gi(fi)&&(Ui=fi.ref,wi(fi,hs));for(Ge in fi)Nt.call(fi,Ge)&&!Kt.hasOwnProperty(Ge)&&(Zt[Ge]=fi[Ge]);if(We&&We.defaultProps){var ls=We.defaultProps;for(Ge in ls)Zt[Ge]===void 0&&(Zt[Ge]=ls[Ge])}if($t||Ui){var ns=typeof We=="function"?We.displayName||We.name||"Unknown":We;$t&&Ni(Zt,ns),Ui&&qt(Zt,ns)}return ci(We,$t,Ui,hs,ts,Rt.current,Zt)}}var ri=ee.ReactCurrentOwner,Ot=ee.ReactDebugCurrentFrame;function mt(We){if(We){var fi=We._owner,zi=At(We.type,We._source,fi?fi.type:null);Ot.setExtraStackFrame(zi)}else Ot.setExtraStackFrame(null)}var Ye;Ye=!1;function Tt(We){return typeof We=="object"&&We!==null&&We.$$typeof===m}function Ut(){{if(ri.current){var We=re(ri.current.type);if(We)return`

Check the render method of \``+We+"`."}return""}}function oi(We){return""}var ji={};function ki(We){{var fi=Ut();if(!fi){var zi=typeof We=="string"?We:We.displayName||We.name;zi&&(fi=`

Check the top-level render call using <`+zi+">.")}return fi}}function os(We,fi){{if(!We._store||We._store.validated||We.key!=null)return;We._store.validated=!0;var zi=ki(fi);if(ji[zi])return;ji[zi]=!0;var ts="";We&&We._owner&&We._owner!==ri.current&&(ts=" It was passed a child from "+re(We._owner.type)+"."),mt(We),K('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',zi,ts),mt(null)}}function bs(We,fi){{if(typeof We!="object")return;if(Array.isArray(We))for(var zi=0;zi<We.length;zi++){var ts=We[zi];Tt(ts)&&os(ts,fi)}else if(Tt(We))We._store&&(We._store.validated=!0);else if(We){var hs=V(We);if(typeof hs=="function"&&hs!==We.entries)for(var Ge=hs.call(We),Zt;!(Zt=Ge.next()).done;)Tt(Zt.value)&&os(Zt.value,fi)}}}function hi(We){{var fi=We.type;if(fi==null||typeof fi=="string")return;var zi;if(typeof fi=="function")zi=fi.propTypes;else if(typeof fi=="object"&&(fi.$$typeof===S||fi.$$typeof===M))zi=fi.propTypes;else return;if(zi){var ts=re(fi);yt(zi,We.props,"prop",ts,We)}else if(fi.PropTypes!==void 0&&!Ye){Ye=!0;var hs=re(fi);K("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",hs||"Unknown")}typeof fi.getDefaultProps=="function"&&!fi.getDefaultProps.isReactClassApproved&&K("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Oi(We){{for(var fi=Object.keys(We.props),zi=0;zi<fi.length;zi++){var ts=fi[zi];if(ts!=="children"&&ts!=="key"){mt(We),K("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",ts),mt(null);break}}We.ref!==null&&(mt(We),K("Invalid attribute `ref` supplied to `React.Fragment`."),mt(null))}}function li(We,fi,zi,ts,hs,Ge){{var Zt=te(We);if(!Zt){var $t="";(We===void 0||typeof We=="object"&&We!==null&&Object.keys(We).length===0)&&($t+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Ui=oi();Ui?$t+=Ui:$t+=Ut();var ls;We===null?ls="null":Array.isArray(We)?ls="array":We!==void 0&&We.$$typeof===m?(ls="<"+(re(We.type)||"Unknown")+" />",$t=" Did you accidentally export a JSX literal instead of a component?"):ls=typeof We,K("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",ls,$t)}var ns=qe(We,fi,zi,hs,Ge);if(ns==null)return ns;if(Zt){var Ss=fi.children;if(Ss!==void 0)if(ts)if(Array.isArray(Ss)){for(var qi=0;qi<Ss.length;qi++)bs(Ss[qi],We);Object.freeze&&Object.freeze(Ss)}else K("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else bs(Ss,We)}return We===c.Fragment?Oi(ns):hi(ns),ns}}function Xs(We,fi,zi){return li(We,fi,zi,!0)}function ks(We,fi,zi){return li(We,fi,zi,!1)}var hr=ks,fr=Xs;c.jsx=hr,c.jsxs=fr})()},"../../../../node_modules/react/cjs/react.development.js":(l,c,u)=>{/** @license React v17.0.2
 * react.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */(function(){var f=u("../../../../node_modules/object-assign/index.js"),p="17.0.2",m=60103,_=60106;c.Fragment=60107,c.StrictMode=60108,c.Profiler=60114;var d=60109,h=60110,x=60112;c.Suspense=60113;var A=60120,S=60115,E=60116,b=60121,M=60122,T=60117,O=60129,R=60131;if(typeof Symbol=="function"&&Symbol.for){var I=Symbol.for;m=I("react.element"),_=I("react.portal"),c.Fragment=I("react.fragment"),c.StrictMode=I("react.strict_mode"),c.Profiler=I("react.profiler"),d=I("react.provider"),h=I("react.context"),x=I("react.forward_ref"),c.Suspense=I("react.suspense"),A=I("react.suspense_list"),S=I("react.memo"),E=I("react.lazy"),b=I("react.block"),M=I("react.server.block"),T=I("react.fundamental"),I("react.scope"),I("react.opaque.id"),O=I("react.debug_trace_mode"),I("react.offscreen"),R=I("react.legacy_hidden")}var N=typeof Symbol=="function"&&Symbol.iterator,w="@@iterator";function D(Ie){if(Ie===null||typeof Ie!="object")return null;var _t=N&&Ie[N]||Ie[w];return typeof _t=="function"?_t:null}var k={current:null},Y={transition:0},V={current:null},ee={},K=null;function ie(Ie){K=Ie}ee.setExtraStackFrame=function(Ie){K=Ie},ee.getCurrentStack=null,ee.getStackAddendum=function(){var Ie="";K&&(Ie+=K);var _t=ee.getCurrentStack;return _t&&(Ie+=_t()||""),Ie};var ne={current:!1},te={ReactCurrentDispatcher:k,ReactCurrentBatchConfig:Y,ReactCurrentOwner:V,IsSomeRendererActing:ne,assign:f};te.ReactDebugCurrentFrame=ee;function W(Ie){{for(var _t=arguments.length,Ht=new Array(_t>1?_t-1:0),ti=1;ti<_t;ti++)Ht[ti-1]=arguments[ti];re("warn",Ie,Ht)}}function Q(Ie){{for(var _t=arguments.length,Ht=new Array(_t>1?_t-1:0),ti=1;ti<_t;ti++)Ht[ti-1]=arguments[ti];re("error",Ie,Ht)}}function re(Ie,_t,Ht){{var ti=te.ReactDebugCurrentFrame,Hi=ti.getStackAddendum();Hi!==""&&(_t+="%s",Ht=Ht.concat([Hi]));var Ee=Ht.map(function($e){return""+$e});Ee.unshift("Warning: "+_t),Function.prototype.apply.call(console[Ie],console,Ee)}}var oe={};function X(Ie,_t){{var Ht=Ie.constructor,ti=Ht&&(Ht.displayName||Ht.name)||"ReactClass",Hi=ti+"."+_t;if(oe[Hi])return;Q("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",_t,ti),oe[Hi]=!0}}var se={isMounted:function(Ie){return!1},enqueueForceUpdate:function(Ie,_t,Ht){X(Ie,"forceUpdate")},enqueueReplaceState:function(Ie,_t,Ht,ti){X(Ie,"replaceState")},enqueueSetState:function(Ie,_t,Ht,ti){X(Ie,"setState")}},ue={};Object.freeze(ue);function he(Ie,_t,Ht){this.props=Ie,this.context=_t,this.refs=ue,this.updater=Ht||se}he.prototype.isReactComponent={},he.prototype.setState=function(Ie,_t){if(!(typeof Ie=="object"||typeof Ie=="function"||Ie==null))throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,Ie,_t,"setState")},he.prototype.forceUpdate=function(Ie){this.updater.enqueueForceUpdate(this,Ie,"forceUpdate")};{var fe={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},Ae=function(Ie,_t){Object.defineProperty(he.prototype,Ie,{get:function(){W("%s(...) is deprecated in plain JavaScript React classes. %s",_t[0],_t[1])}})};for(var Se in fe)fe.hasOwnProperty(Se)&&Ae(Se,fe[Se])}function we(){}we.prototype=he.prototype;function ke(Ie,_t,Ht){this.props=Ie,this.context=_t,this.refs=ue,this.updater=Ht||se}var st=ke.prototype=new we;st.constructor=ke,f(st,he.prototype),st.isPureReactComponent=!0;function Ve(){var Ie={current:null};return Object.seal(Ie),Ie}function Ke(Ie,_t,Ht){var ti=_t.displayName||_t.name||"";return Ie.displayName||(ti!==""?Ht+"("+ti+")":Ht)}function ct(Ie){return Ie.displayName||"Context"}function nt(Ie){if(Ie==null)return null;if(typeof Ie.tag=="number"&&Q("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof Ie=="function")return Ie.displayName||Ie.name||null;if(typeof Ie=="string")return Ie;switch(Ie){case c.Fragment:return"Fragment";case _:return"Portal";case c.Profiler:return"Profiler";case c.StrictMode:return"StrictMode";case c.Suspense:return"Suspense";case A:return"SuspenseList"}if(typeof Ie=="object")switch(Ie.$$typeof){case h:var _t=Ie;return ct(_t)+".Consumer";case d:var Ht=Ie;return ct(Ht._context)+".Provider";case x:return Ke(Ie,Ie.render,"ForwardRef");case S:return nt(Ie.type);case b:return nt(Ie._render);case E:{var ti=Ie,Hi=ti._payload,Ee=ti._init;try{return nt(Ee(Hi))}catch{return null}}}return null}var at=Object.prototype.hasOwnProperty,xt={key:!0,ref:!0,__self:!0,__source:!0},Qe,kt,ot;ot={};function At(Ie){if(at.call(Ie,"ref")){var _t=Object.getOwnPropertyDescriptor(Ie,"ref").get;if(_t&&_t.isReactWarning)return!1}return Ie.ref!==void 0}function Me(Ie){if(at.call(Ie,"key")){var _t=Object.getOwnPropertyDescriptor(Ie,"key").get;if(_t&&_t.isReactWarning)return!1}return Ie.key!==void 0}function je(Ie,_t){var Ht=function(){Qe||(Qe=!0,Q("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",_t))};Ht.isReactWarning=!0,Object.defineProperty(Ie,"key",{get:Ht,configurable:!0})}function rt(Ie,_t){var Ht=function(){kt||(kt=!0,Q("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",_t))};Ht.isReactWarning=!0,Object.defineProperty(Ie,"ref",{get:Ht,configurable:!0})}function yt(Ie){if(typeof Ie.ref=="string"&&V.current&&Ie.__self&&V.current.stateNode!==Ie.__self){var _t=nt(V.current.type);ot[_t]||(Q('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',_t,Ie.ref),ot[_t]=!0)}}var Rt=function(Ie,_t,Ht,ti,Hi,Ee,$e){var bt={$$typeof:m,type:Ie,key:_t,ref:Ht,props:$e,_owner:Ee};return bt._store={},Object.defineProperty(bt._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(bt,"_self",{configurable:!1,enumerable:!1,writable:!1,value:ti}),Object.defineProperty(bt,"_source",{configurable:!1,enumerable:!1,writable:!1,value:Hi}),Object.freeze&&(Object.freeze(bt.props),Object.freeze(bt)),bt};function Nt(Ie,_t,Ht){var ti,Hi={},Ee=null,$e=null,bt=null,Wt=null;if(_t!=null){At(_t)&&($e=_t.ref,yt(_t)),Me(_t)&&(Ee=""+_t.key),bt=_t.__self===void 0?null:_t.__self,Wt=_t.__source===void 0?null:_t.__source;for(ti in _t)at.call(_t,ti)&&!xt.hasOwnProperty(ti)&&(Hi[ti]=_t[ti])}var vi=arguments.length-2;if(vi===1)Hi.children=Ht;else if(vi>1){for(var es=Array(vi),Qi=0;Qi<vi;Qi++)es[Qi]=arguments[Qi+2];Object.freeze&&Object.freeze(es),Hi.children=es}if(Ie&&Ie.defaultProps){var Ji=Ie.defaultProps;for(ti in Ji)Hi[ti]===void 0&&(Hi[ti]=Ji[ti])}if(Ee||$e){var Us=typeof Ie=="function"?Ie.displayName||Ie.name||"Unknown":Ie;Ee&&je(Hi,Us),$e&&rt(Hi,Us)}return Rt(Ie,Ee,$e,bt,Wt,V.current,Hi)}function Kt(Ie,_t){var Ht=Rt(Ie.type,_t,Ie.ref,Ie._self,Ie._source,Ie._owner,Ie.props);return Ht}function si(Ie,_t,Ht){if(Ie==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+Ie+".");var ti,Hi=f({},Ie.props),Ee=Ie.key,$e=Ie.ref,bt=Ie._self,Wt=Ie._source,vi=Ie._owner;if(_t!=null){At(_t)&&($e=_t.ref,vi=V.current),Me(_t)&&(Ee=""+_t.key);var es;Ie.type&&Ie.type.defaultProps&&(es=Ie.type.defaultProps);for(ti in _t)at.call(_t,ti)&&!xt.hasOwnProperty(ti)&&(_t[ti]===void 0&&es!==void 0?Hi[ti]=es[ti]:Hi[ti]=_t[ti])}var Qi=arguments.length-2;if(Qi===1)Hi.children=Ht;else if(Qi>1){for(var Ji=Array(Qi),Us=0;Us<Qi;Us++)Ji[Us]=arguments[Us+2];Hi.children=Ji}return Rt(Ie.type,Ee,$e,bt,Wt,vi,Hi)}function Pi(Ie){return typeof Ie=="object"&&Ie!==null&&Ie.$$typeof===m}var gi=".",bi=":";function wi(Ie){var _t=/[=:]/g,Ht={"=":"=0",":":"=2"},ti=Ie.replace(_t,function(Hi){return Ht[Hi]});return"$"+ti}var Ni=!1,qt=/\/+/g;function ci(Ie){return Ie.replace(qt,"$&/")}function qe(Ie,_t){return typeof Ie=="object"&&Ie!==null&&Ie.key!=null?wi(""+Ie.key):_t.toString(36)}function ri(Ie,_t,Ht,ti,Hi){var Ee=typeof Ie;(Ee==="undefined"||Ee==="boolean")&&(Ie=null);var $e=!1;if(Ie===null)$e=!0;else switch(Ee){case"string":case"number":$e=!0;break;case"object":switch(Ie.$$typeof){case m:case _:$e=!0}}if($e){var bt=Ie,Wt=Hi(bt),vi=ti===""?gi+qe(bt,0):ti;if(Array.isArray(Wt)){var es="";vi!=null&&(es=ci(vi)+"/"),ri(Wt,_t,es,"",function(io){return io})}else Wt!=null&&(Pi(Wt)&&(Wt=Kt(Wt,Ht+(Wt.key&&(!bt||bt.key!==Wt.key)?ci(""+Wt.key)+"/":"")+vi)),_t.push(Wt));return 1}var Qi,Ji,Us=0,er=ti===""?gi:ti+bi;if(Array.isArray(Ie))for(var Cr=0;Cr<Ie.length;Cr++)Qi=Ie[Cr],Ji=er+qe(Qi,Cr),Us+=ri(Qi,_t,Ht,Ji,Hi);else{var rr=D(Ie);if(typeof rr=="function"){var xr=Ie;rr===xr.entries&&(Ni||W("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),Ni=!0);for(var Nn=rr.call(xr),_a,Fl=0;!(_a=Nn.next()).done;)Qi=_a.value,Ji=er+qe(Qi,Fl++),Us+=ri(Qi,_t,Ht,Ji,Hi)}else if(Ee==="object"){var Ua=""+Ie;throw Error("Objects are not valid as a React child (found: "+(Ua==="[object Object]"?"object with keys {"+Object.keys(Ie).join(", ")+"}":Ua)+"). If you meant to render a collection of children, use an array instead.")}}return Us}function Ot(Ie,_t,Ht){if(Ie==null)return Ie;var ti=[],Hi=0;return ri(Ie,ti,"","",function(Ee){return _t.call(Ht,Ee,Hi++)}),ti}function mt(Ie){var _t=0;return Ot(Ie,function(){_t++}),_t}function Ye(Ie,_t,Ht){Ot(Ie,function(){_t.apply(this,arguments)},Ht)}function Tt(Ie){return Ot(Ie,function(_t){return _t})||[]}function Ut(Ie){if(!Pi(Ie))throw Error("React.Children.only expected to receive a single React element child.");return Ie}function oi(Ie,_t){_t===void 0?_t=null:_t!==null&&typeof _t!="function"&&Q("createContext: Expected the optional second argument to be a function. Instead received: %s",_t);var Ht={$$typeof:h,_calculateChangedBits:_t,_currentValue:Ie,_currentValue2:Ie,_threadCount:0,Provider:null,Consumer:null};Ht.Provider={$$typeof:d,_context:Ht};var ti=!1,Hi=!1,Ee=!1;{var $e={$$typeof:h,_context:Ht,_calculateChangedBits:Ht._calculateChangedBits};Object.defineProperties($e,{Provider:{get:function(){return Hi||(Hi=!0,Q("Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?")),Ht.Provider},set:function(bt){Ht.Provider=bt}},_currentValue:{get:function(){return Ht._currentValue},set:function(bt){Ht._currentValue=bt}},_currentValue2:{get:function(){return Ht._currentValue2},set:function(bt){Ht._currentValue2=bt}},_threadCount:{get:function(){return Ht._threadCount},set:function(bt){Ht._threadCount=bt}},Consumer:{get:function(){return ti||(ti=!0,Q("Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?")),Ht.Consumer}},displayName:{get:function(){return Ht.displayName},set:function(bt){Ee||(W("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",bt),Ee=!0)}}}),Ht.Consumer=$e}return Ht._currentRenderer=null,Ht._currentRenderer2=null,Ht}var ji=-1,ki=0,os=1,bs=2;function hi(Ie){if(Ie._status===ji){var _t=Ie._result,Ht=_t(),ti=Ie;ti._status=ki,ti._result=Ht,Ht.then(function(Hi){if(Ie._status===ki){var Ee=Hi.default;Ee===void 0&&Q(`lazy: Expected the result of a dynamic import() call. Instead received: %s

Your code should look like: 
  const MyComponent = lazy(() => import('./MyComponent'))`,Hi);var $e=Ie;$e._status=os,$e._result=Ee}},function(Hi){if(Ie._status===ki){var Ee=Ie;Ee._status=bs,Ee._result=Hi}})}if(Ie._status===os)return Ie._result;throw Ie._result}function Oi(Ie){var _t={_status:-1,_result:Ie},Ht={$$typeof:E,_payload:_t,_init:hi};{var ti,Hi;Object.defineProperties(Ht,{defaultProps:{configurable:!0,get:function(){return ti},set:function(Ee){Q("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),ti=Ee,Object.defineProperty(Ht,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return Hi},set:function(Ee){Q("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),Hi=Ee,Object.defineProperty(Ht,"propTypes",{enumerable:!0})}}})}return Ht}function li(Ie){Ie!=null&&Ie.$$typeof===S?Q("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof Ie!="function"?Q("forwardRef requires a render function but was given %s.",Ie===null?"null":typeof Ie):Ie.length!==0&&Ie.length!==2&&Q("forwardRef render functions accept exactly two parameters: props and ref. %s",Ie.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),Ie!=null&&(Ie.defaultProps!=null||Ie.propTypes!=null)&&Q("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?");var _t={$$typeof:x,render:Ie};{var Ht;Object.defineProperty(_t,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ht},set:function(ti){Ht=ti,Ie.displayName==null&&(Ie.displayName=ti)}})}return _t}var Xs=!1;function ks(Ie){return!!(typeof Ie=="string"||typeof Ie=="function"||Ie===c.Fragment||Ie===c.Profiler||Ie===O||Ie===c.StrictMode||Ie===c.Suspense||Ie===A||Ie===R||Xs||typeof Ie=="object"&&Ie!==null&&(Ie.$$typeof===E||Ie.$$typeof===S||Ie.$$typeof===d||Ie.$$typeof===h||Ie.$$typeof===x||Ie.$$typeof===T||Ie.$$typeof===b||Ie[0]===M))}function hr(Ie,_t){ks(Ie)||Q("memo: The first argument must be a component. Instead received: %s",Ie===null?"null":typeof Ie);var Ht={$$typeof:S,type:Ie,compare:_t===void 0?null:_t};{var ti;Object.defineProperty(Ht,"displayName",{enumerable:!1,configurable:!0,get:function(){return ti},set:function(Hi){ti=Hi,Ie.displayName==null&&(Ie.displayName=Hi)}})}return Ht}function fr(){var Ie=k.current;if(Ie===null)throw Error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.`);return Ie}function We(Ie,_t){var Ht=fr();if(_t!==void 0&&Q("useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s",_t,typeof _t=="number"&&Array.isArray(arguments[2])?`

Did you call array.map(useContext)? Calling Hooks inside a loop is not supported. Learn more at https://reactjs.org/link/rules-of-hooks`:""),Ie._context!==void 0){var ti=Ie._context;ti.Consumer===Ie?Q("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):ti.Provider===Ie&&Q("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return Ht.useContext(Ie,_t)}function fi(Ie){var _t=fr();return _t.useState(Ie)}function zi(Ie,_t,Ht){var ti=fr();return ti.useReducer(Ie,_t,Ht)}function ts(Ie){var _t=fr();return _t.useRef(Ie)}function hs(Ie,_t){var Ht=fr();return Ht.useEffect(Ie,_t)}function Ge(Ie,_t){var Ht=fr();return Ht.useLayoutEffect(Ie,_t)}function Zt(Ie,_t){var Ht=fr();return Ht.useCallback(Ie,_t)}function $t(Ie,_t){var Ht=fr();return Ht.useMemo(Ie,_t)}function Ui(Ie,_t,Ht){var ti=fr();return ti.useImperativeHandle(Ie,_t,Ht)}function ls(Ie,_t){{var Ht=fr();return Ht.useDebugValue(Ie,_t)}}var ns=0,Ss,qi,pr,Js,ir,hn,ra;function ka(){}ka.__reactDisabledLog=!0;function Hn(){{if(ns===0){Ss=console.log,qi=console.info,pr=console.warn,Js=console.error,ir=console.group,hn=console.groupCollapsed,ra=console.groupEnd;var Ie={configurable:!0,enumerable:!0,value:ka,writable:!0};Object.defineProperties(console,{info:Ie,log:Ie,warn:Ie,error:Ie,group:Ie,groupCollapsed:Ie,groupEnd:Ie})}ns++}}function to(){{if(ns--,ns===0){var Ie={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:f({},Ie,{value:Ss}),info:f({},Ie,{value:qi}),warn:f({},Ie,{value:pr}),error:f({},Ie,{value:Js}),group:f({},Ie,{value:ir}),groupCollapsed:f({},Ie,{value:hn}),groupEnd:f({},Ie,{value:ra})})}ns<0&&Q("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Gr=te.ReactCurrentDispatcher,Yn;function To(Ie,_t,Ht){{if(Yn===void 0)try{throw Error()}catch(Hi){var ti=Hi.stack.trim().match(/\n( *(at )?)/);Yn=ti&&ti[1]||""}return`
`+Yn+Ie}}var Pn=!1,On;{var Kr=typeof WeakMap=="function"?WeakMap:Map;On=new Kr}function dn(Ie,_t){if(!Ie||Pn)return"";{var Ht=On.get(Ie);if(Ht!==void 0)return Ht}var ti;Pn=!0;var Hi=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var Ee;Ee=Gr.current,Gr.current=null,Hn();try{if(_t){var $e=function(){throw Error()};if(Object.defineProperty($e.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct($e,[])}catch(er){ti=er}Reflect.construct(Ie,[],$e)}else{try{$e.call()}catch(er){ti=er}Ie.call($e.prototype)}}else{try{throw Error()}catch(er){ti=er}Ie()}}catch(er){if(er&&ti&&typeof er.stack=="string"){for(var bt=er.stack.split(`
`),Wt=ti.stack.split(`
`),vi=bt.length-1,es=Wt.length-1;vi>=1&&es>=0&&bt[vi]!==Wt[es];)es--;for(;vi>=1&&es>=0;vi--,es--)if(bt[vi]!==Wt[es]){if(vi!==1||es!==1)do if(vi--,es--,es<0||bt[vi]!==Wt[es]){var Qi=`
`+bt[vi].replace(" at new "," at ");return typeof Ie=="function"&&On.set(Ie,Qi),Qi}while(vi>=1&&es>=0);break}}}finally{Pn=!1,Gr.current=Ee,to(),Error.prepareStackTrace=Hi}var Ji=Ie?Ie.displayName||Ie.name:"",Us=Ji?To(Ji):"";return typeof Ie=="function"&&On.set(Ie,Us),Us}function mo(Ie,_t,Ht){return dn(Ie,!1)}function Xn(Ie){var _t=Ie.prototype;return!!(_t&&_t.isReactComponent)}function na(Ie,_t,Ht){if(Ie==null)return"";if(typeof Ie=="function")return dn(Ie,Xn(Ie));if(typeof Ie=="string")return To(Ie);switch(Ie){case c.Suspense:return To("Suspense");case A:return To("SuspenseList")}if(typeof Ie=="object")switch(Ie.$$typeof){case x:return mo(Ie.render);case S:return na(Ie.type,_t,Ht);case b:return mo(Ie._render);case E:{var ti=Ie,Hi=ti._payload,Ee=ti._init;try{return na(Ee(Hi),_t,Ht)}catch{}}}return""}var xl={},Lo=te.ReactDebugCurrentFrame;function Io(Ie){if(Ie){var _t=Ie._owner,Ht=na(Ie.type,Ie._source,_t?_t.type:null);Lo.setExtraStackFrame(Ht)}else Lo.setExtraStackFrame(null)}function bl(Ie,_t,Ht,ti,Hi){{var Ee=Function.call.bind(Object.prototype.hasOwnProperty);for(var $e in Ie)if(Ee(Ie,$e)){var bt=void 0;try{if(typeof Ie[$e]!="function"){var Wt=Error((ti||"React class")+": "+Ht+" type `"+$e+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof Ie[$e]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw Wt.name="Invariant Violation",Wt}bt=Ie[$e](_t,$e,ti,Ht,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(vi){bt=vi}bt&&!(bt instanceof Error)&&(Io(Hi),Q("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",ti||"React class",Ht,$e,typeof bt),Io(null)),bt instanceof Error&&!(bt.message in xl)&&(xl[bt.message]=!0,Io(Hi),Q("Failed %s type: %s",Ht,bt.message),Io(null))}}}function Zn(Ie){if(Ie){var _t=Ie._owner,Ht=na(Ie.type,Ie._source,_t?_t.type:null);ie(Ht)}else ie(null)}var Sl;Sl=!1;function Vi(){if(V.current){var Ie=nt(V.current.type);if(Ie)return`

Check the render method of \``+Ie+"`."}return""}function yl(Ie){if(Ie!==void 0){var _t=Ie.fileName.replace(/^.*[\\\/]/,""),Ht=Ie.lineNumber;return`

Check your code at `+_t+":"+Ht+"."}return""}function Sn(Ie){return Ie!=null?yl(Ie.__source):""}var Kn={};function Po(Ie){var _t=Vi();if(!_t){var Ht=typeof Ie=="string"?Ie:Ie.displayName||Ie.name;Ht&&(_t=`

Check the top-level render call using <`+Ht+">.")}return _t}function Wi(Ie,_t){if(!(!Ie._store||Ie._store.validated||Ie.key!=null)){Ie._store.validated=!0;var Ht=Po(_t);if(!Kn[Ht]){Kn[Ht]=!0;var ti="";Ie&&Ie._owner&&Ie._owner!==V.current&&(ti=" It was passed a child from "+nt(Ie._owner.type)+"."),Zn(Ie),Q('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',Ht,ti),Zn(null)}}}function yn(Ie,_t){if(typeof Ie=="object"){if(Array.isArray(Ie))for(var Ht=0;Ht<Ie.length;Ht++){var ti=Ie[Ht];Pi(ti)&&Wi(ti,_t)}else if(Pi(Ie))Ie._store&&(Ie._store.validated=!0);else if(Ie){var Hi=D(Ie);if(typeof Hi=="function"&&Hi!==Ie.entries)for(var Ee=Hi.call(Ie),$e;!($e=Ee.next()).done;)Pi($e.value)&&Wi($e.value,_t)}}}function sr(Ie){{var _t=Ie.type;if(_t==null||typeof _t=="string")return;var Ht;if(typeof _t=="function")Ht=_t.propTypes;else if(typeof _t=="object"&&(_t.$$typeof===x||_t.$$typeof===S))Ht=_t.propTypes;else return;if(Ht){var ti=nt(_t);bl(Ht,Ie.props,"prop",ti,Ie)}else if(_t.PropTypes!==void 0&&!Sl){Sl=!0;var Hi=nt(_t);Q("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",Hi||"Unknown")}typeof _t.getDefaultProps=="function"&&!_t.getDefaultProps.isReactClassApproved&&Q("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function qn(Ie){{for(var _t=Object.keys(Ie.props),Ht=0;Ht<_t.length;Ht++){var ti=_t[Ht];if(ti!=="children"&&ti!=="key"){Zn(Ie),Q("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",ti),Zn(null);break}}Ie.ref!==null&&(Zn(Ie),Q("Invalid attribute `ref` supplied to `React.Fragment`."),Zn(null))}}function rl(Ie,_t,Ht){var ti=ks(Ie);if(!ti){var Hi="";(Ie===void 0||typeof Ie=="object"&&Ie!==null&&Object.keys(Ie).length===0)&&(Hi+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Ee=Sn(_t);Ee?Hi+=Ee:Hi+=Vi();var $e;Ie===null?$e="null":Array.isArray(Ie)?$e="array":Ie!==void 0&&Ie.$$typeof===m?($e="<"+(nt(Ie.type)||"Unknown")+" />",Hi=" Did you accidentally export a JSX literal instead of a component?"):$e=typeof Ie,Q("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",$e,Hi)}var bt=Nt.apply(this,arguments);if(bt==null)return bt;if(ti)for(var Wt=2;Wt<arguments.length;Wt++)yn(arguments[Wt],Ie);return Ie===c.Fragment?qn(bt):sr(bt),bt}var Rn=!1;function Or(Ie){var _t=rl.bind(null,Ie);return _t.type=Ie,Rn||(Rn=!0,W("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.")),Object.defineProperty(_t,"type",{enumerable:!1,get:function(){return W("Factory.type is deprecated. Access the class directly before passing it to createFactory."),Object.defineProperty(this,"type",{value:Ie}),Ie}}),_t}function fn(Ie,_t,Ht){for(var ti=si.apply(this,arguments),Hi=2;Hi<arguments.length;Hi++)yn(arguments[Hi],ti.type);return sr(ti),ti}try{var $r=Object.freeze({})}catch{}var Wc=rl,Qn=fn,Dn=Or,Xu={map:Ot,forEach:Ye,count:mt,toArray:Tt,only:Ut};c.Children=Xu,c.Component=he,c.PureComponent=ke,c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=te,c.cloneElement=Qn,c.createContext=oi,c.createElement=Wc,c.createFactory=Dn,c.createRef=Ve,c.forwardRef=li,c.isValidElement=Pi,c.lazy=Oi,c.memo=hr,c.useCallback=Zt,c.useContext=We,c.useDebugValue=ls,c.useEffect=hs,c.useImperativeHandle=Ui,c.useLayoutEffect=Ge,c.useMemo=$t,c.useReducer=zi,c.useRef=ts,c.useState=fi,c.version=p})()},"../../../../node_modules/react/index.js":(l,c,u)=>{l.exports=u("../../../../node_modules/react/cjs/react.development.js")},"../../../../node_modules/react/jsx-runtime.js":(l,c,u)=>{l.exports=u("../../../../node_modules/react/cjs/react-jsx-runtime.development.js")},"../../../../node_modules/scheduler/cjs/scheduler-tracing.development.js":(l,c)=>{/** @license React v0.20.2
 * scheduler-tracing.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */(function(){var u=0,f=0,p=0;c.__interactionsRef=null,c.__subscriberRef=null,c.__interactionsRef={current:new Set},c.__subscriberRef={current:null};function m(N){var w=c.__interactionsRef.current;c.__interactionsRef.current=new Set;try{return N()}finally{c.__interactionsRef.current=w}}function _(){return c.__interactionsRef.current}function d(){return++p}function h(N,w,D){var k=arguments.length>3&&arguments[3]!==void 0?arguments[3]:u,Y={__count:1,id:f++,name:N,timestamp:w},V=c.__interactionsRef.current,ee=new Set(V);ee.add(Y),c.__interactionsRef.current=ee;var K=c.__subscriberRef.current,ie;try{K!==null&&K.onInteractionTraced(Y)}finally{try{K!==null&&K.onWorkStarted(ee,k)}finally{try{ie=D()}finally{c.__interactionsRef.current=V;try{K!==null&&K.onWorkStopped(ee,k)}finally{Y.__count--,K!==null&&Y.__count===0&&K.onInteractionScheduledWorkCompleted(Y)}}}}return ie}function x(N){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:u,D=c.__interactionsRef.current,k=c.__subscriberRef.current;k!==null&&k.onWorkScheduled(D,w),D.forEach(function(ee){ee.__count++});var Y=!1;function V(){var ee=c.__interactionsRef.current;c.__interactionsRef.current=D,k=c.__subscriberRef.current;try{var K;try{k!==null&&k.onWorkStarted(D,w)}finally{try{K=N.apply(void 0,arguments)}finally{c.__interactionsRef.current=ee,k!==null&&k.onWorkStopped(D,w)}}return K}finally{Y||(Y=!0,D.forEach(function(ie){ie.__count--,k!==null&&ie.__count===0&&k.onInteractionScheduledWorkCompleted(ie)}))}}return V.cancel=function(){k=c.__subscriberRef.current;try{k!==null&&k.onWorkCanceled(D,w)}finally{D.forEach(function(K){K.__count--,k&&K.__count===0&&k.onInteractionScheduledWorkCompleted(K)})}},V}var A=null;A=new Set;function S(N){A.add(N),A.size===1&&(c.__subscriberRef.current={onInteractionScheduledWorkCompleted:M,onInteractionTraced:b,onWorkCanceled:I,onWorkScheduled:T,onWorkStarted:O,onWorkStopped:R})}function E(N){A.delete(N),A.size===0&&(c.__subscriberRef.current=null)}function b(N){var w=!1,D=null;if(A.forEach(function(k){try{k.onInteractionTraced(N)}catch(Y){w||(w=!0,D=Y)}}),w)throw D}function M(N){var w=!1,D=null;if(A.forEach(function(k){try{k.onInteractionScheduledWorkCompleted(N)}catch(Y){w||(w=!0,D=Y)}}),w)throw D}function T(N,w){var D=!1,k=null;if(A.forEach(function(Y){try{Y.onWorkScheduled(N,w)}catch(V){D||(D=!0,k=V)}}),D)throw k}function O(N,w){var D=!1,k=null;if(A.forEach(function(Y){try{Y.onWorkStarted(N,w)}catch(V){D||(D=!0,k=V)}}),D)throw k}function R(N,w){var D=!1,k=null;if(A.forEach(function(Y){try{Y.onWorkStopped(N,w)}catch(V){D||(D=!0,k=V)}}),D)throw k}function I(N,w){var D=!1,k=null;if(A.forEach(function(Y){try{Y.onWorkCanceled(N,w)}catch(V){D||(D=!0,k=V)}}),D)throw k}c.unstable_clear=m,c.unstable_getCurrent=_,c.unstable_getThreadID=d,c.unstable_subscribe=S,c.unstable_trace=h,c.unstable_unsubscribe=E,c.unstable_wrap=x})()},"../../../../node_modules/scheduler/cjs/scheduler.development.js":(l,c)=>{/** @license React v0.20.2
 * scheduler.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */(function(){var u=!1,f,p,m,_,d=typeof performance=="object"&&typeof performance.now=="function";if(d){var h=performance;c.unstable_now=function(){return h.now()}}else{var x=Date,A=x.now();c.unstable_now=function(){return x.now()-A}}if(typeof window>"u"||typeof MessageChannel!="function"){var S=null,E=null,b=function(){if(S!==null)try{var qt=c.unstable_now(),ci=!0;S(ci,qt),S=null}catch(qe){throw setTimeout(b,0),qe}};f=function(qt){S!==null?setTimeout(f,0,qt):(S=qt,setTimeout(b,0))},p=function(qt,ci){E=setTimeout(qt,ci)},m=function(){clearTimeout(E)},c.unstable_shouldYield=function(){return!1},_=c.unstable_forceFrameRate=function(){}}else{var M=window.setTimeout,T=window.clearTimeout;if(typeof console<"u"){var O=window.requestAnimationFrame,R=window.cancelAnimationFrame;typeof O!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof R!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var I=!1,N=null,w=-1,D=5,k=0;c.unstable_shouldYield=function(){return c.unstable_now()>=k},_=function(){},c.unstable_forceFrameRate=function(qt){if(qt<0||qt>125){console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported");return}qt>0?D=Math.floor(1e3/qt):D=5};var Y=function(){if(N!==null){var qt=c.unstable_now();k=qt+D;var ci=!0;try{var qe=N(ci,qt);qe?ee.postMessage(null):(I=!1,N=null)}catch(ri){throw ee.postMessage(null),ri}}else I=!1},V=new MessageChannel,ee=V.port2;V.port1.onmessage=Y,f=function(qt){N=qt,I||(I=!0,ee.postMessage(null))},p=function(qt,ci){w=M(function(){qt(c.unstable_now())},ci)},m=function(){T(w),w=-1}}function K(qt,ci){var qe=qt.length;qt.push(ci),te(qt,ci,qe)}function ie(qt){var ci=qt[0];return ci===void 0?null:ci}function ne(qt){var ci=qt[0];if(ci!==void 0){var qe=qt.pop();return qe!==ci&&(qt[0]=qe,W(qt,qe,0)),ci}else return null}function te(qt,ci,qe){for(var ri=qe;;){var Ot=ri-1>>>1,mt=qt[Ot];if(mt!==void 0&&Q(mt,ci)>0)qt[Ot]=ci,qt[ri]=mt,ri=Ot;else return}}function W(qt,ci,qe){for(var ri=qe,Ot=qt.length;ri<Ot;){var mt=(ri+1)*2-1,Ye=qt[mt],Tt=mt+1,Ut=qt[Tt];if(Ye!==void 0&&Q(Ye,ci)<0)Ut!==void 0&&Q(Ut,Ye)<0?(qt[ri]=Ut,qt[Tt]=ci,ri=Tt):(qt[ri]=Ye,qt[mt]=ci,ri=mt);else if(Ut!==void 0&&Q(Ut,ci)<0)qt[ri]=Ut,qt[Tt]=ci,ri=Tt;else return}}function Q(qt,ci){var qe=qt.sortIndex-ci.sortIndex;return qe!==0?qe:qt.id-ci.id}var re=1,oe=2,X=3,se=4,ue=5;function he(qt,ci){}var fe=1073741823,Ae=-1,Se=250,we=5e3,ke=1e4,st=fe,Ve=[],Ke=[],ct=1,nt=null,at=X,xt=!1,Qe=!1,kt=!1;function ot(qt){for(var ci=ie(Ke);ci!==null;){if(ci.callback===null)ne(Ke);else if(ci.startTime<=qt)ne(Ke),ci.sortIndex=ci.expirationTime,K(Ve,ci);else return;ci=ie(Ke)}}function At(qt){if(kt=!1,ot(qt),!Qe)if(ie(Ve)!==null)Qe=!0,f(Me);else{var ci=ie(Ke);ci!==null&&p(At,ci.startTime-qt)}}function Me(qt,ci){Qe=!1,kt&&(kt=!1,m()),xt=!0;var qe=at;try{var ri;if(!u)return je(qt,ci)}finally{nt=null,at=qe,xt=!1}}function je(qt,ci){var qe=ci;for(ot(qe),nt=ie(Ve);nt!==null&&!(nt.expirationTime>qe&&(!qt||c.unstable_shouldYield()));){var ri=nt.callback;if(typeof ri=="function"){nt.callback=null,at=nt.priorityLevel;var Ot=nt.expirationTime<=qe,mt=ri(Ot);qe=c.unstable_now(),typeof mt=="function"?nt.callback=mt:nt===ie(Ve)&&ne(Ve),ot(qe)}else ne(Ve);nt=ie(Ve)}if(nt!==null)return!0;var Ye=ie(Ke);return Ye!==null&&p(At,Ye.startTime-qe),!1}function rt(qt,ci){switch(qt){case re:case oe:case X:case se:case ue:break;default:qt=X}var qe=at;at=qt;try{return ci()}finally{at=qe}}function yt(qt){var ci;switch(at){case re:case oe:case X:ci=X;break;default:ci=at;break}var qe=at;at=ci;try{return qt()}finally{at=qe}}function Rt(qt){var ci=at;return function(){var qe=at;at=ci;try{return qt.apply(this,arguments)}finally{at=qe}}}function Nt(qt,ci,qe){var ri=c.unstable_now(),Ot;if(typeof qe=="object"&&qe!==null){var mt=qe.delay;typeof mt=="number"&&mt>0?Ot=ri+mt:Ot=ri}else Ot=ri;var Ye;switch(qt){case re:Ye=Ae;break;case oe:Ye=Se;break;case ue:Ye=st;break;case se:Ye=ke;break;case X:default:Ye=we;break}var Tt=Ot+Ye,Ut={id:ct++,callback:ci,priorityLevel:qt,startTime:Ot,expirationTime:Tt,sortIndex:-1};return Ot>ri?(Ut.sortIndex=Ot,K(Ke,Ut),ie(Ve)===null&&Ut===ie(Ke)&&(kt?m():kt=!0,p(At,Ot-ri))):(Ut.sortIndex=Tt,K(Ve,Ut),!Qe&&!xt&&(Qe=!0,f(Me))),Ut}function Kt(){}function si(){!Qe&&!xt&&(Qe=!0,f(Me))}function Pi(){return ie(Ve)}function gi(qt){qt.callback=null}function bi(){return at}var wi=_,Ni=null;c.unstable_IdlePriority=ue,c.unstable_ImmediatePriority=re,c.unstable_LowPriority=se,c.unstable_NormalPriority=X,c.unstable_Profiling=Ni,c.unstable_UserBlockingPriority=oe,c.unstable_cancelCallback=gi,c.unstable_continueExecution=si,c.unstable_getCurrentPriorityLevel=bi,c.unstable_getFirstCallbackNode=Pi,c.unstable_next=yt,c.unstable_pauseExecution=Kt,c.unstable_requestPaint=wi,c.unstable_runWithPriority=rt,c.unstable_scheduleCallback=Nt,c.unstable_wrapCallback=Rt})()},"../../../../node_modules/scheduler/index.js":(l,c,u)=>{l.exports=u("../../../../node_modules/scheduler/cjs/scheduler.development.js")},"../../../../node_modules/scheduler/tracing.js":(l,c,u)=>{l.exports=u("../../../../node_modules/scheduler/cjs/scheduler-tracing.development.js")},"../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":l=>{var c=[];function u(m){for(var _=-1,d=0;d<c.length;d++)if(c[d].identifier===m){_=d;break}return _}function f(m,_){for(var d={},h=[],x=0;x<m.length;x++){var A=m[x],S=_.base?A[0]+_.base:A[0],E=d[S]||0,b="".concat(S," ").concat(E);d[S]=E+1;var M=u(b),T={css:A[1],media:A[2],sourceMap:A[3],supports:A[4],layer:A[5]};if(M!==-1)c[M].references++,c[M].updater(T);else{var O=p(T,_);_.byIndex=x,c.splice(x,0,{identifier:b,updater:O,references:1})}h.push(b)}return h}function p(m,_){var d=_.domAPI(_);d.update(m);var h=function(A){if(A){if(A.css===m.css&&A.media===m.media&&A.sourceMap===m.sourceMap&&A.supports===m.supports&&A.layer===m.layer)return;d.update(m=A)}else d.remove()};return h}l.exports=function(m,_){_=_||{},m=m||[];var d=f(m,_);return function(x){x=x||[];for(var A=0;A<d.length;A++){var S=d[A],E=u(S);c[E].references--}for(var b=f(x,_),M=0;M<d.length;M++){var T=d[M],O=u(T);c[O].references===0&&(c[O].updater(),c.splice(O,1))}d=b}}},"../../../../node_modules/style-loader/dist/runtime/insertBySelector.js":l=>{var c={};function u(p){if(typeof c[p]>"u"){var m=document.querySelector(p);if(window.HTMLIFrameElement&&m instanceof window.HTMLIFrameElement)try{m=m.contentDocument.head}catch{m=null}c[p]=m}return c[p]}function f(p,m){var _=u(p);if(!_)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");_.appendChild(m)}l.exports=f},"../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js":l=>{function c(u){var f=document.createElement("style");return u.setAttributes(f,u.attributes),u.insert(f,u.options),f}l.exports=c},"../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":(l,c,u)=>{function f(p){var m=u.nc;m&&p.setAttribute("nonce",m)}l.exports=f},"../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js":l=>{function c(p,m,_){var d="";_.supports&&(d+="@supports (".concat(_.supports,") {")),_.media&&(d+="@media ".concat(_.media," {"));var h=typeof _.layer<"u";h&&(d+="@layer".concat(_.layer.length>0?" ".concat(_.layer):""," {")),d+=_.css,h&&(d+="}"),_.media&&(d+="}"),_.supports&&(d+="}");var x=_.sourceMap;x&&typeof btoa<"u"&&(d+=`
/*# sourceMappingURL=data:application/json;base64,`.concat(btoa(unescape(encodeURIComponent(JSON.stringify(x))))," */")),m.styleTagTransform(d,p,m.options)}function u(p){if(p.parentNode===null)return!1;p.parentNode.removeChild(p)}function f(p){if(typeof document>"u")return{update:function(){},remove:function(){}};var m=p.insertStyleElement(p);return{update:function(d){c(m,p,d)},remove:function(){u(m)}}}l.exports=f},"../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js":l=>{function c(u,f){if(f.styleSheet)f.styleSheet.cssText=u;else{for(;f.firstChild;)f.removeChild(f.firstChild);f.appendChild(document.createTextNode(u))}}l.exports=c},"../../../dev/sharedUiComponents/dist/colorPicker/colorComponentEntry.js":(l,c,u)=>{u.r(c),u.d(c,{ColorComponentEntry:()=>m});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js");class m extends p.Component{constructor(d){super(d)}updateValue(d){if(/[^0-9.-]/g.test(d))return;let h=parseInt(d);isNaN(h)||(this.props.max!=null&&h>this.props.max&&(h=this.props.max),this.props.min!=null&&h<this.props.min&&(h=this.props.min),this.props.onChange(h))}lock(){this.props.lockObject&&(this.props.lockObject.lock=!0)}unlock(){this.props.lockObject&&(this.props.lockObject.lock=!1)}render(){return(0,f.jsxs)("div",{className:"color-picker-component",children:[(0,f.jsx)("div",{className:"color-picker-component-value",children:(0,f.jsx)("input",{type:"number",step:1,className:"numeric-input",value:this.props.value,onBlur:()=>this.unlock(),onFocus:()=>this.lock(),onChange:d=>this.updateValue(d.target.value),disabled:this.props.disabled})}),(0,f.jsx)("div",{className:"color-picker-component-label",children:this.props.label})]})}}},"../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.js":(l,c,u)=>{u.r(c),u.d(c,{ColorPicker:()=>h});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("core/Misc/observable"),_=u("../../../dev/sharedUiComponents/dist/colorPicker/colorComponentEntry.js"),d=u("../../../dev/sharedUiComponents/dist/colorPicker/hexColor.js");u("../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.scss");class h extends p.Component{constructor(A){super(A),this.props.color instanceof m.Color4?this.state={color:new m.Color3(this.props.color.r,this.props.color.g,this.props.color.b),alpha:this.props.color.a}:this.state={color:this.props.color.clone(),alpha:1},this._saturationRef=p.createRef(),this._hueRef=p.createRef()}shouldComponentUpdate(A,S){return A.color.toHexString()!==this.props.color.toHexString()||S.color.toHexString()!==this.props.color.toHexString()}onSaturationPointerDown(A){this._evaluateSaturation(A),this._isSaturationPointerDown=!0,A.currentTarget.setPointerCapture(A.pointerId)}onSaturationPointerUp(A){this._isSaturationPointerDown=!1,A.currentTarget.releasePointerCapture(A.pointerId)}onSaturationPointerMove(A){this._isSaturationPointerDown&&this._evaluateSaturation(A)}onHuePointerDown(A){this._evaluateHue(A),this._isHuePointerDown=!0,A.currentTarget.setPointerCapture(A.pointerId)}onHuePointerUp(A){this._isHuePointerDown=!1,A.currentTarget.releasePointerCapture(A.pointerId)}onHuePointerMove(A){this._isHuePointerDown&&this._evaluateHue(A)}_evaluateSaturation(A){const S=A.nativeEvent.offsetX,E=A.nativeEvent.offsetY,b=Math.min(1,Math.max(1e-4,S/this._saturationRef.current.clientWidth)),M=Math.min(1,Math.max(1e-4,1-E/this._saturationRef.current.clientHeight));this.props.debugMode&&(m.Logger.Log("Saturation: "+b),m.Logger.Log("Value: "+M));const T=this.state.color.toHSV();m.Color3.HSVtoRGBToRef(T.r,b,M,this.state.color),this.state.alpha===0&&this.setState({alpha:1}),this.setState({color:this.state.color})}_evaluateHue(A){const S=A.nativeEvent.offsetX,E=360*Math.min(.9999,Math.max(1e-4,S/this._hueRef.current.clientWidth));this.props.debugMode&&m.Logger.Log("Hue: "+E);const b=this.state.color.toHSV();m.Color3.HSVtoRGBToRef(E,Math.max(b.g,.01),Math.max(b.b,.01),this.state.color),this.setState({color:this.state.color})}componentDidUpdate(){this.raiseOnColorChanged()}raiseOnColorChanged(){if(this.props.onColorChanged){if(this.props.color instanceof m.Color4){const A=m.Color4.FromColor3(this.state.color,this.state.alpha);this.props.onColorChanged(A);return}this.props.onColorChanged(this.state.color.clone())}}render(){const A=m.Color4.FromColor3(this.state.color);A.a=this.state.alpha;const S=A.toHexString(),E=this.state.color.toHSV(),b=new m.Color3;m.Color3.HSVtoRGBToRef(E.r,1,1,b);const M=b.toHexString(),T=this.props.color instanceof m.Color4;return(0,f.jsxs)("div",{className:"color-picker-container"+(this.props.linearhint?" with-hints":""),children:[(0,f.jsxs)("div",{className:"color-picker-saturation",onPointerMove:O=>this.onSaturationPointerMove(O),onPointerDown:O=>this.onSaturationPointerDown(O),onPointerUp:O=>this.onSaturationPointerUp(O),ref:this._saturationRef,style:{background:M},children:[(0,f.jsx)("div",{className:"color-picker-saturation-white"}),(0,f.jsx)("div",{className:"color-picker-saturation-black"}),(0,f.jsx)("div",{className:"color-picker-saturation-cursor",style:{top:`${-(E.b*100)+100}%`,left:`${E.g*100}%`}})]}),(0,f.jsxs)("div",{className:"color-picker-hue",children:[(0,f.jsx)("div",{className:"color-picker-hue-color",style:{background:S}}),(0,f.jsx)("div",{className:"color-picker-hue-slider",ref:this._hueRef,onPointerMove:O=>this.onHuePointerMove(O),onPointerDown:O=>this.onHuePointerDown(O),onPointerUp:O=>this.onHuePointerUp(O),children:(0,f.jsx)("div",{className:"color-picker-hue-cursor",style:{left:`${E.r/360*100}%`,border:"1px solid "+M}})})]}),(0,f.jsx)("div",{className:"color-picker-alpha"}),(0,f.jsxs)("div",{className:"color-picker-rgb",children:[(0,f.jsx)("div",{className:"red",children:(0,f.jsx)(_.ColorComponentEntry,{lockObject:this.props.lockObject,label:"R",min:0,max:255,value:Math.round(this.state.color.r*255),onChange:O=>{this.state.color.r=O/255,this.forceUpdate()}})}),(0,f.jsx)("div",{className:"green",children:(0,f.jsx)(_.ColorComponentEntry,{lockObject:this.props.lockObject,label:"G",min:0,max:255,value:Math.round(this.state.color.g*255),onChange:O=>{this.state.color.g=O/255,this.forceUpdate()}})}),(0,f.jsx)("div",{className:"blue",children:(0,f.jsx)(_.ColorComponentEntry,{lockObject:this.props.lockObject,label:"B",min:0,max:255,value:Math.round(this.state.color.b*255),onChange:O=>{this.state.color.b=O/255,this.forceUpdate()}})}),(0,f.jsx)("div",{className:"alpha"+(T?"":" grayed"),children:(0,f.jsx)(_.ColorComponentEntry,{lockObject:this.props.lockObject,label:"A",min:0,max:255,value:Math.round(this.state.alpha*255),onChange:O=>{this.setState({alpha:O/255}),this.forceUpdate()}})})]}),(0,f.jsxs)("div",{className:"color-picker-hex",children:[(0,f.jsx)("div",{className:"color-picker-hex-label",children:"Hex"}),(0,f.jsx)("div",{className:"color-picker-hex-value",children:(0,f.jsx)(d.HexColor,{lockObject:this.props.lockObject,expectedLength:T?8:6,value:S,onChange:O=>{if(T){const R=m.Color4.FromHexString(O);this.setState({color:new m.Color3(R.r,R.g,R.b),alpha:R.a})}else this.setState({color:m.Color3.FromHexString(O)})}})})]}),this.props.linearhint&&(0,f.jsx)("div",{className:"color-picker-warning",children:"(Note: color is stored in linear mode and was converted to gamma to be displayed here (toGammaSpace() / toLinearSpace()))"})]})}}},"../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>R});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../dev/sharedUiComponents/dist/colorPicker/hexColor.js":(l,c,u)=>{u.r(c),u.d(c,{HexColor:()=>m});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js");class m extends p.Component{constructor(d){super(d),this.state={hex:this.props.value.replace("#","")}}shouldComponentUpdate(d,h){return d.value!==this.props.value&&(h.hex=d.value.replace("#","")),!0}lock(){this.props.lockObject&&(this.props.lockObject.lock=!0)}unlock(){this.props.lockObject&&(this.props.lockObject.lock=!1)}updateHexValue(d){if(!(d!=""&&/^[0-9A-Fa-f]+$/g.test(d)==!1)){if(this.setState({hex:d}),d.length!==this.props.expectedLength)if(this.props.expectedLength===8&&d.length===6)d=d+"FF";else if(this.props.expectedLength===6&&d.length===8)d=d.substring(0,6);else return;this.props.onChange("#"+d)}}render(){return(0,f.jsx)("input",{type:"string",className:"hex-input",value:this.state.hex,onBlur:()=>this.unlock(),onFocus:()=>this.lock(),onChange:d=>this.updateHexValue(d.target.value)})}}},"../../../dev/sharedUiComponents/dist/components/Button.js":(l,c,u)=>{u.r(c),u.d(c,{Button:()=>_});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../dev/sharedUiComponents/dist/components/Button.module.scss"),m=u("../../../dev/sharedUiComponents/dist/components/classNames.js");const _=({disabled:d,active:h,onClick:x,children:A,color:S,size:E,title:b,backgroundColor:M})=>(0,f.jsx)("button",{className:(0,m.ClassNames)({button:!0,active:h,wide:E==="wide",small:E==="small",smaller:E==="smaller",light:S==="light",dark:S==="dark"},p),disabled:d,onClick:x,title:b,style:{backgroundColor:M},children:A})},"../../../dev/sharedUiComponents/dist/components/Button.module.scss":(l,c,u)=>{u.r(c),u.d(c,{active:()=>T.active,button:()=>T.button,dark:()=>T.dark,"dark-active-background":()=>T["dark-active-background"],"dark-background":()=>T["dark-background"],"dark-color":()=>T["dark-color"],default:()=>R,light:()=>T.light,"light-active-background":()=>T["light-active-background"],"light-background":()=>T["light-background"],"light-color":()=>T["light-color"],"light-disabled-background":()=>T["light-disabled-background"],small:()=>T.small,smaller:()=>T.smaller,wide:()=>T.wide});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../../dev/sharedUiComponents/dist/components/Button.module.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../dev/sharedUiComponents/dist/components/Icon.js":(l,c,u)=>{u.r(c),u.d(c,{Icon:()=>_});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../dev/sharedUiComponents/dist/components/classNames.js"),m=u("../../../dev/sharedUiComponents/dist/components/Icon.module.scss");const _=({color:d="dark",icon:h})=>(0,f.jsx)("img",{src:h,style:{width:"100%",height:"100%"},className:(0,p.ClassNames)({light:d==="light"},m)})},"../../../dev/sharedUiComponents/dist/components/Icon.module.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>R,light:()=>T.light});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../../dev/sharedUiComponents/dist/components/Icon.module.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../dev/sharedUiComponents/dist/components/MessageDialog.js":(l,c,u)=>{u.r(c),u.d(c,{MessageDialog:()=>d});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/components/classNames.js"),_=u("../../../dev/sharedUiComponents/dist/components/MessageDialog.module.scss");const d=h=>{const[x,A]=(0,p.useState)(h.message),[S,E]=(0,p.useState)(h.isError);(0,p.useEffect)(()=>{A(h.message),E(h.isError)},[h]);const b=()=>{A(""),h.onClose&&h.onClose()};return x?(0,f.jsx)("div",{className:_["dialog-container"],children:(0,f.jsxs)("div",{className:_.dialog,children:[(0,f.jsx)("div",{className:_["dialog-message"],children:x}),(0,f.jsx)("div",{className:_["dialog-buttons"],children:(0,f.jsx)("div",{className:(0,m.ClassNames)({"dialog-button-ok":!0,error:S},_),onClick:b,children:"OK"})})]})}):null}},"../../../dev/sharedUiComponents/dist/components/MessageDialog.module.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>R,dialog:()=>T.dialog,"dialog-button-ok":()=>T["dialog-button-ok"],"dialog-buttons":()=>T["dialog-buttons"],"dialog-container":()=>T["dialog-container"],"dialog-message":()=>T["dialog-message"],error:()=>T.error});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../../dev/sharedUiComponents/dist/components/MessageDialog.module.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../dev/sharedUiComponents/dist/components/TextInputWithSubmit.js":(l,c,u)=>{u.r(c),u.d(c,{TextInputWithSubmit:()=>S});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/components/Button.js"),_=u("../../../dev/sharedUiComponents/dist/components/Icon.js"),d=u("../../../dev/sharedUiComponents/dist/components/TextInputWithSubmit.module.scss"),h=u("../../../dev/sharedUiComponents/dist/imgs/confirmGridElementDark.svg"),x=u("../../../dev/sharedUiComponents/dist/imgs/deleteGridElementDark.svg"),A=u("../../../dev/sharedUiComponents/dist/components/classNames.js");const S=E=>{const[b,M]=(0,p.useState)(""),[T,O]=(0,p.useState)(E.validateValue?E.validateValue(b):!0);(0,p.useEffect)(()=>{O(E.validateValue?E.validateValue(b):!0)},[b]);const R=w=>{M(w.target.value)},I=()=>{E.submitValue(b)},N=()=>{var w;(w=E.cancelSubmit)==null||w.call(E),M("")};return(0,f.jsxs)("div",{className:(0,A.ClassNames)({line:!0,valid:T,invalid:!T},d),children:[E.label&&(0,f.jsx)("label",{children:E.label}),(0,f.jsx)("input",{className:d.input,type:"text",placeholder:E.placeholder,value:b,onChange:R}),(0,f.jsxs)("div",{children:[(0,f.jsx)(m.Button,{color:"light",size:"smaller",backgroundColor:"inherit",onClick:I,disabled:!T,children:(0,f.jsx)(_.Icon,{icon:h,color:"dark"})}),(0,f.jsx)(m.Button,{color:"light",size:"smaller",backgroundColor:"inherit",onClick:N,children:(0,f.jsx)(_.Icon,{icon:x,color:"dark"})})]})]})}},"../../../dev/sharedUiComponents/dist/components/TextInputWithSubmit.module.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>R,input:()=>T.input,invalid:()=>T.invalid,line:()=>T.line,valid:()=>T.valid});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../../dev/sharedUiComponents/dist/components/TextInputWithSubmit.module.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../dev/sharedUiComponents/dist/components/classNames.js":(l,c,u)=>{u.r(c),u.d(c,{ClassNames:()=>f,JoinClassNames:()=>p});function f(m,_){let d="";for(const h in m)m[h]&&(d+=_[h]+" ");return d}function p(m,..._){let d="";for(const h of _)h&&m[h]&&(d+=m[h]+" ");return d}},"../../../dev/sharedUiComponents/dist/components/lines/OptionsLineComponent.js":(l,c,u)=>{u.r(c),u.d(c,{OptionsLineComponent:()=>x});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/components/TextInputWithSubmit.js"),_=u("../../../dev/sharedUiComponents/dist/components/lines/OptionsLineComponent.module.scss"),d;(function(A){A[A.Default=0]="Default",A[A.Adding=1]="Adding"})(d||(d={}));const h="addCustomOption",x=A=>{const[S,E]=(0,p.useState)(d.Default),b=O=>{O.target.value===h?E(d.Adding):A.onOptionSelected(O.target.value)},M=O=>{var N;const R=O,I={label:R,value:R,id:Date.now().toString()};(N=A.onOptionAdded)==null||N.call(A,I),A.onOptionSelected(I.value),E(d.Default)},T=()=>{E(d.Default)};return(0,f.jsxs)("div",{className:_.optionsLine,children:[S===d.Adding&&(0,f.jsx)(m.TextInputWithSubmit,{submitValue:M,placeholder:A.addOptionPlaceholder,validateValue:A.validateNewOptionValue,cancelSubmit:T}),S===d.Default&&(0,f.jsxs)("select",{className:_.optionsSelect,onChange:b,value:A.selectedOptionValue,children:[A.onOptionAdded&&(0,f.jsx)("option",{value:h,children:A.addOptionText??"Custom"},h),A.options.map(O=>(0,f.jsx)("option",{value:O.value,children:O.label},O.id))]})]})}},"../../../dev/sharedUiComponents/dist/components/lines/OptionsLineComponent.module.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>R,optionsLine:()=>T.optionsLine,optionsSelect:()=>T.optionsSelect});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../../dev/sharedUiComponents/dist/components/lines/OptionsLineComponent.module.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js":(l,c,u)=>{u.r(c),u.d(c,{copyCommandToClipboard:()=>_,getClassNameWithNamespace:()=>d});var f=u("core/Misc/observable");let p="";const m=typeof u.g<"u"?u.g:typeof window<"u"?window:void 0;typeof m<"u"&&typeof m.BABYLON<"u"&&(p="BABYLON.");function _(h){const x=document.createElement("div");if(x.textContent=h,document.body.appendChild(x),window.getSelection){const A=document.createRange();A.selectNode(x),window.getSelection().removeAllRanges(),window.getSelection().addRange(A)}document.execCommand("copy"),x.remove()}function d(h){let x=(0,f.GetClassName)(h);return x.includes("BABYLON.")&&(x=x.split("BABYLON.")[1]),{className:x,babylonNamespace:p}}},"../../../dev/sharedUiComponents/dist/imgs/LineSpacingIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMjEuMjEsNy44OCwyMi44Myw5LjVhLjYxLjYxLDAsMCwxLS44Ni44NmwtLjU4LS41OHYzLjhhLjYxLjYxLDAsMCwxLS42MS42MS42MS42MSwwLDAsMS0uNjEtLjYxVjkuNzhsLS41OC41OGEuNjEuNjEsMCwwLDEtLjg2LS44NmwxLjYyLTEuNjJhLjYuNiwwLDAsMSwuNDMtLjE4aDBhLjU5LjU5LDAsMCwxLC4yMywwQS42My42MywwLDAsMSwyMS4yMSw3Ljg4WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik03LDkuOTNhLjYxLjYxLDAsMCwxLC42MS0uNjFoNi44OWEuNjEuNjEsMCwwLDEsLjYxLjYxLjYxLjYxLDAsMCwxLS42MS42MUg3LjZBLjYxLjYxLDAsMCwxLDcsOS45M1oiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNNywxNS4yYS42MS42MSwwLDAsMSwuNjEtLjYxaDkuMzNhLjYxLjYxLDAsMCwxLC42LjYxLjYuNiwwLDAsMS0uNi42MUg3LjZBLjYxLjYxLDAsMCwxLDcsMTUuMloiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNNy42LDE5Ljg3YS42MS42MSwwLDEsMCwwLDEuMjFoNi44OWEuNjEuNjEsMCwxLDAsMC0xLjIxWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0yMC4xNywyMC4yMnYtMy44YS42MS42MSwwLDAsMSwuNjEtLjYxLjYxLjYxLDAsMCwxLC42MS42MXYzLjhsLjU4LS41OGEuNjEuNjEsMCwwLDEsLjg2Ljg2bC0xLjYyLDEuNjJhLjYzLjYzLDAsMCwxLS4yLjEzLjY1LjY1LDAsMCwxLS4yLjA1aDBhLjU5LjU5LDAsMCwxLS4yMy0uMDUuNTMuNTMsMCwwLDEtLjItLjEzTDE4LjczLDIwLjVhLjYxLjYxLDAsMCwxLC44Ni0uODZaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/addGridElementDark.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTUsNi45MUE4LjA5LDguMDksMCwxLDEsNi45MSwxNSw4LjA5LDguMDksMCwwLDEsMTUsNi45MVptMCwxLjIyQTYuODcsNi44NywwLDEsMCwyMS44NywxNSw2Ljg2LDYuODYsMCwwLDAsMTUsOC4xM1pNMTUsMTFhLjYxLjYxLDAsMCwxLC42MS42djIuODNoMi44M2EuNjEuNjEsMCwwLDEsMCwxLjIySDE1LjYxdjIuODNhLjYxLjYxLDAsMCwxLTEuMjIsMFYxNS42MUgxMS41NmEuNjEuNjEsMCwwLDEsMC0xLjIyaDIuODNWMTEuNTZBLjYxLjYxLDAsMCwxLDE1LDExWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/addImageButtonIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTguNzQsMTUuNDNhNC40Nyw0LjQ3LDAsMSwxLTQuNDgsNC40N0E0LjQ3LDQuNDcsMCwwLDEsMTguNzQsMTUuNDNabTAsMS42MmgtLjA4YS40MS40MSwwLDAsMC0uMzIuMzJ2Mi4xMUgxNi4yMmEuNDEuNDEsMCwwLDAtLjMyLjMyVjIwYS40LjQsMCwwLDAsLjMyLjMzaDIuMTF2Mi4xMWEuNC40LDAsMCwwLC4zMy4zM2guMTRhLjQuNCwwLDAsMCwuMzMtLjMzVjIwLjNoMi4xMWEuNC40LDAsMCwwLC4zMy0uMzN2LS4xNWEuNC40LDAsMCwwLS4zMy0uMzJIMTkuMTRWMTcuMzhhLjQuNCwwLDAsMC0uMzMtLjMyWm0tMi04LjU3YTEuODQsMS44NCwwLDEsMCwxLjg0LDEuODRBMS44MywxLjgzLDAsMCwwLDE2Ljc3LDguNDhabTAsMi40NWEuNjEuNjEsMCwwLDEtLjYxLS42MS42Mi42MiwwLDEsMSwxLjIzLDBBLjYxLjYxLDAsMCwxLDE2Ljc3LDEwLjkzWm0tMy41MSw5YTUuNDQsNS40NCwwLDAsMSwuMDctLjgySDkuNDRBMS4yOCwxLjI4LDAsMCwxLDksMTlsNC44LTQuNjlhLjYyLjYyLDAsMCwxLC43OS4wNmwxLjA3LDEuMDVhNS4zNiw1LjM2LDAsMCwxLDEuMTMtLjYxbC0xLjM0LTEuMzEtLjExLS4xYTEuODMsMS44MywwLDAsMC0yLjQ2LjFMOC4xLDE4LjEzQTEuMjgsMS4yOCwwLDAsMSw4LDE3LjY1VjguMjhBMS40MywxLjQzLDAsMCwxLDkuNDQsNi44NWg5LjM3YTEuNDMsMS40MywwLDAsMSwxLjQzLDEuNDN2Ni4zNmE1LjI3LDUuMjcsMCwwLDEsMS4yMi41MlY4LjI4YTIuNjUsMi42NSwwLDAsMC0yLjY1LTIuNjVIOS40NEEyLjY1LDIuNjUsMCwwLDAsNi43OSw4LjI4djkuMzdBMi42NSwyLjY1LDAsMCwwLDkuNDQsMjAuM2gzLjg1QzEzLjI4LDIwLjE3LDEzLjI2LDIwLDEzLjI2LDE5LjlaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/addTextButtonIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTguMjMsMTQuNTdhNC40OCw0LjQ4LDAsMSwxLTQuNDcsNC40OEE0LjQ4LDQuNDgsMCwwLDEsMTguMjMsMTQuNTdabTAsMS42M2gtLjA3YS40LjQsMCwwLDAtLjMzLjMydjIuMTFIMTUuNzFhLjQxLjQxLDAsMCwwLS4zMi4zMnYuMTVhLjQyLjQyLDAsMCwwLC4zMi4zM2gyLjExdjIuMTFhLjQuNCwwLDAsMCwuMzMuMzNoLjE0YS40LjQsMCwwLDAsLjMzLS4zM1YxOS40NWgyLjExYS40Mi40MiwwLDAsMCwuMzItLjMzVjE5YS40MS40MSwwLDAsMC0uMzItLjMySDE4LjY0VjE2LjUzYS40LjQsMCwwLDAtLjMzLS4zMlptLTUuNDcsMi44NWE1LjQ0LDUuNDQsMCwwLDEsLjgyLTIuODhWNy43aDMuODV2MWEuNjEuNjEsMCwwLDAsMS4yMiwwVjcuMDlBLjYxLjYxLDAsMCwwLDE4LDYuNDhINy45MWEuNjEuNjEsMCwwLDAtLjYxLjYxVjguNzFhLjYxLjYxLDAsMSwwLDEuMjEsMHYtMWgzLjg1VjE4LjI0SDExLjE1YS42MS42MSwwLDEsMCwwLDEuMjFoMS42M0MxMi43NywxOS4zMiwxMi43NiwxOS4xOCwxMi43NiwxOS4wNVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/alignVerticalIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LjM3LDIyLjcydi0xLjA0aC0yLjA5Yy0xLjA0LDAtMS44OC0uODQtMS44OC0xLjg4di0yLjA5YzAtMS4wNCwuODQtMS44OCwxLjg4LTEuODhoMi4wOXYtMS42N2gtMy43NmMtMS4wNCwwLTEuODgtLjg0LTEuODgtMS44OHYtMi4wOWMwLTEuMDQsLjg0LTEuODgsMS44OC0xLjg4aDMuNzZ2LTEuMDRjMC0uMzUsLjI4LS42MywuNjMtLjYzcy42MywuMjgsLjYzLC42M3YxLjA0aDMuNzZjMS4wNCwwLDEuODgsLjg0LDEuODgsMS44OHYyLjA5YzAsMS4wNC0uODQsMS44OC0xLjg4LDEuODhoLTMuNzZ2MS42N2gyLjA5YzEuMDQsMCwxLjg4LC44NCwxLjg4LDEuODh2Mi4wOWMwLDEuMDQtLjg0LDEuODgtMS44OCwxLjg4aC0yLjA5djEuMDRjMCwuMzUtLjI4LC42My0uNjMsLjYzcy0uNjMtLjI4LS42My0uNjNabTMuMzQtMi4zYy4zNSwwLC42My0uMjgsLjYzLS42M3YtMi4wOWMwLS4zNS0uMjgtLjYzLS42My0uNjNoLTUuNDNjLS4zNSwwLS42MywuMjgtLjYzLC42M3YyLjA5YzAsLjM1LC4yOCwuNjMsLjYzLC42M2g1LjQzWm0xLjY3LTcuNTJjLjM1LDAsLjYzLS4yOCwuNjMtLjYzdi0yLjA5YzAtLjM1LS4yOC0uNjMtLjYzLS42M0gxMC42MmMtLjM1LDAtLjYzLC4yOC0uNjMsLjYzdjIuMDljMCwuMzUsLjI4LC42MywuNjMsLjYzaDguNzdaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/alphaIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNNywxNC40YTgsOCwwLDAsMSwxNiwwaDBWMTVBOCw4LDAsMCwxLDcsMTV2LS42Wm04LTYuMjFBNi44LDYuOCwwLDAsMCw4LjIyLDE0LjRIMjEuNzhBNi44LDYuOCwwLDAsMCwxNSw4LjE5WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/animationSheetIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjMwIiBoZWlnaHQ9IjMwIiB2aWV3Qm94PSIwIDAgMzAgMzAiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04LjU2LDguNTZoOC44NUExLjYxLDEuNjEsMCwwLDEsMTksMTAuMTdWMTUuOGExLjYxLDEuNjEsMCwwLDEtMS42MSwxLjYxSDguNTZBMS42MSwxLjYxLDAsMCwxLDcsMTUuOFYxMC4xN0ExLjYxLDEuNjEsMCwwLDEsOC41Niw4LjU2Wm04Ljg1LDEuMjFIOC41NmEuNC40LDAsMCwwLS40LjRWMTUuOGEuNC40LDAsMCwwLC40LjQxaDguODVhLjQxLjQxLDAsMCwwLC40MS0uNDFWMTAuMTdBLjQuNCwwLDAsMCwxNy40MSw5Ljc3Wk05LDE4LjIyYTEuNjIsMS42MiwwLDAsMCwxLjU2LDEuMjFoNy4yNUEzLjIyLDMuMjIsMCwwLDAsMjEsMTYuMjF2LTRhMS42MiwxLjYyLDAsMCwwLTEuMjEtMS41NnY1LjU5YTIsMiwwLDAsMS0yLDJabTIsMmExLjYxLDEuNjEsMCwwLDAsMS41NiwxLjIxaDUuODNhNC42Myw0LjYzLDAsMCwwLDQuNjMtNC42M1YxNC4yYTEuNiwxLjYsMCwwLDAtMS4yMS0xLjU2djQuMTdhMy40MiwzLjQyLDAsMCwxLTMuNDIsMy40MloiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/autoResizeIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjEuNzIsNy42N2gtNS4zYS42Mi42MiwwLDAsMC0uNjEuNjEuNjEuNjEsMCwwLDAsLjYxLjYxaDMuODJMMTYsMTMuMTRhLjYyLjYyLDAsMCwwLC44Ny44N2w0LjI1LTQuMjV2My44MmEuNjEuNjEsMCwwLDAsLjYxLjYxLjYyLjYyLDAsMCwwLC42MS0uNjFWOC4yOEEuNjIuNjIsMCwwLDAsMjEuNzIsNy42N1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMS43MiwxNS44MWEuNjEuNjEsMCwwLDAtLjYxLjYydjMuMjVhMS40MywxLjQzLDAsMCwxLTEuNDMsMS40M0gxNVYxNy4yNEEyLjI0LDIuMjQsMCwwLDAsMTIuNzYsMTVIOC44OVYxMC4zMmExLjQzLDEuNDMsMCwwLDEsMS40My0xLjQzaDMuMjVhLjYxLjYxLDAsMCwwLC42Mi0uNjEuNjIuNjIsMCwwLDAtLjYyLS42MUgxMC4zMmEyLjY1LDIuNjUsMCwwLDAtMi42NSwyLjY1djkuMzZhMi42NSwyLjY1LDAsMCwwLDIuNjUsMi42NWg5LjM2YTIuNjUsMi42NSwwLDAsMCwyLjY1LTIuNjVWMTYuNDNBLjYyLjYyLDAsMCwwLDIxLjcyLDE1LjgxWm0tNy45NCw1LjNIMTAuMzJhMS40MywxLjQzLDAsMCwxLTEuNDMtMS40M1YxNi4yMmgzLjg3YTEsMSwwLDAsMSwxLDFaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/autoStretchHeightIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTEyLjE1LDEyLjEzYy0uMi0uMi0uMi0uNTEsMC0uNzFsMi41LTIuNWMuMi0uMiwuNTEtLjIsLjcxLDBsMi41LDIuNWMuMiwuMiwuMiwuNTEsMCwuNzEtLjIsLjItLjUxLC4yLS43MSwwbC0xLjY1LTEuNjV2My4zNmMwLC4yOC0uMjIsLjUtLjUsLjVzLS41LS4yMi0uNS0uNXYtMy4zNmwtMS42NSwxLjY1Yy0uMiwuMi0uNTEsLjItLjcxLDBabS0zLjAzLDEwLjQ2YzAtLjI2LC4xOS0uNDcsLjQ0LS41aDEwLjgxYy4yOCwwLC41LC4yMiwuNSwuNXMtLjE5LC40Ny0uNDQsLjVIOS42M2MtLjI4LDAtLjUtLjIyLS41LS41Wm0wLTE1LjE3YzAtLjI2LC4xOS0uNDcsLjQ0LS41aDEwLjgxYy4yOCwwLC41LC4yMiwuNSwuNSwwLC4yNi0uMTksLjQ3LS40NCwuNUg5LjYzYy0uMjgsMC0uNS0uMjItLjUtLjVabTMuNzMsMTAuNTZsMS42NSwxLjY1di0zLjM2YzAtLjI4LC4yMi0uNSwuNS0uNXMuNSwuMjIsLjUsLjV2My4zNmwxLjY1LTEuNjVjLjItLjIsLjUxLS4yLC43MSwwLC4yLC4yLC4yLC41MSwwLC43MWwtMi41LDIuNWMtLjIsLjItLjUxLC4yLS43MSwwbC0yLjUtMi41Yy0uMi0uMi0uMi0uNTEsMC0uNzEsLjItLjIsLjUxLS4yLC43MSwwWiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/autoStretchWidthIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTE3Ljg3LDEyLjE1Yy4yLS4yLC41MS0uMiwuNzEsMGwyLjUsMi41Yy4yLC4yLC4yLC41MSwwLC43MWwtMi41LDIuNWMtLjIsLjItLjUxLC4yLS43MSwwLS4yLS4yLS4yLS41MSwwLS43MWwxLjY1LTEuNjVoLTMuMzZjLS4yOCwwLS41LS4yMi0uNS0uNXMuMjItLjUsLjUtLjVoMy4zNmwtMS42NS0xLjY1Yy0uMi0uMi0uMi0uNTEsMC0uNzFabS0xMC40Ni0zLjAzYy4yNiwwLC40NywuMTksLjUsLjQ0djEwLjgxYzAsLjI4LS4yMiwuNS0uNSwuNS0uMjYsMC0uNDctLjE5LS41LS40NFY5LjYzYzAtLjI4LC4yMi0uNSwuNS0uNVptMTUuMTcsMGMuMjYsMCwuNDcsLjE5LC41LC40NHYxMC44MWMwLC4yOC0uMjIsLjUtLjUsLjUtLjI2LDAtLjQ3LS4xOS0uNS0uNDRWOS42M2MwLS4yOCwuMjItLjUsLjUtLjVabS0xMC41NiwzLjczbC0xLjY1LDEuNjVoMy4zNmMuMjgsMCwuNSwuMjIsLjUsLjUsMCwuMjgtLjIyLC41LS41LC41aC0zLjM2bDEuNjUsMS42NWMuMiwuMiwuMiwuNTEsMCwuNzEtLjIsLjItLjUxLC4yLS43MSwwbC0yLjUtMi41Yy0uMi0uMi0uMi0uNTEsMC0uNzFsMi41LTIuNWMuMi0uMiwuNTEtLjIsLjcxLDAsLjIsLjIsLjIsLjUxLDAsLjcxWiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/barOffsetIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNOS4xNSwxMi40MmExLjQyLDEuNDIsMCwwLDAtMS40MSwxLjQydjIuMzJhMS40MiwxLjQyLDAsMCwwLDEuNDEsMS40MmgxMS43YTEuNDIsMS40MiwwLDAsMCwxLjQxLTEuNDJWMTMuODRhMS40MiwxLjQyLDAsMCwwLTEuNDEtMS40MlpNOSwxMy44NGEuMjEuMjEsMCwwLDEsLjItLjIxaDExLjdhLjIxLjIxLDAsMCwxLC4yLjIxdjIuMzJhLjIxLjIxLDAsMCwxLS4yLjIxSDkuMTVhLjIxLjIxLDAsMCwxLS4yLS4yMVptNy42Ni01LjQ5QS42LjYsMCwwLDEsMTYsOUgxNGEuNjEuNjEsMCwwLDEsMC0xLjIxaDJBLjYuNiwwLDAsMSwxNi42MSw4LjM1Wk0xNiwyMi4yNmEuNjEuNjEsMCwwLDAsMC0xLjIxSDE0YS42MS42MSwwLDAsMCwwLDEuMjFaTTExLDguMzVhLjYxLjYxLDAsMCwwLS42MS0uNjFIMTBBMi4yMSwyLjIxLDAsMCwwLDcuNzQsMTB2LjRhLjYxLjYxLDAsMSwwLDEuMjEsMFYxMGExLDEsMCwwLDEsMS0xaC40QS42LjYsMCwwLDAsMTEsOC4zNVptOC42Ny0uNjFhLjYxLjYxLDAsMSwwLDAsMS4yMUgyMGExLDEsMCwwLDEsMSwxdi40YS42MS42MSwwLDEsMCwxLjIxLDBWMTBBMi4yMSwyLjIxLDAsMCwwLDIwLDcuNzRaTTExLDIxLjY1YS42MS42MSwwLDAsMS0uNjEuNjFIMTBBMi4yMSwyLjIxLDAsMCwxLDcuNzQsMjB2LS40YS42MS42MSwwLDEsMSwxLjIxLDBWMjBhMSwxLDAsMCwwLDEsMWguNEEuNi42LDAsMCwxLDExLDIxLjY1Wm04LjY3LjYxYS42MS42MSwwLDEsMSwwLTEuMjFIMjBhMSwxLDAsMCwwLDEtMXYtLjRhLjYxLjYxLDAsMSwxLDEuMjEsMFYyMEEyLjIxLDIuMjEsMCwwLDEsMjAsMjIuMjZaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/cancelGridElementDark.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTUsNi44OEE4LjEyLDguMTIsMCwxLDEsNi44OCwxNSw4LjEzLDguMTMsMCwwLDEsMTUsNi44OFpNMTUsOC4xQTYuOSw2LjksMCwxLDAsMjEuOSwxNSw2LjksNi45LDAsMCwwLDE1LDguMVptMi44LDQsLjA3LjA1YS42Mi42MiwwLDAsMSwuMDUuOGwtLjA1LjA3LTIsMiwyLDJhLjYyLjYyLDAsMCwxLC4wNS44bC0uMDUuMDdhLjYyLjYyLDAsMCwxLS44LjA1TDE3LDE3Ljg3bC0yLTItMiwyYS42Mi42MiwwLDAsMS0uOC4wNWwtLjA3LS4wNWEuNjIuNjIsMCwwLDEtLjA1LS44bC4wNS0uMDcsMi0yLTItMmEuNjIuNjIsMCwwLDEtLjA1LS44bC4wNS0uMDdhLjYyLjYyLDAsMCwxLC44LS4wNWwuMDcuMDUsMiwyLDItMkEuNjIuNjIsMCwwLDEsMTcuOCwxMi4wOFoiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/cellIDIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTQuMTEsMTEuMzlhLjYyLjYyLDAsMCwxLC40OC43MWwtLjE4Ljg5aDJsLjIyLTEuMTJhLjYxLjYxLDAsMCwxLC43MS0uNDguNi42LDAsMCwxLC40Ny43MWwtLjE3Ljg5aC43OWEuNjEuNjEsMCwwLDEsMCwxLjIxaC0xbC0uMzMsMS42aDFBLjYxLjYxLDAsMCwxLDE4LDE3aC0xLjJsLS4yMiwxLjEzYS42Mi42MiwwLDAsMS0uNzEuNDcuNjEuNjEsMCwwLDEtLjQ4LS43MWwuMTgtLjg5aC0ybC0uMjIsMS4xM2EuNjEuNjEsMCwwLDEtLjcxLjQ3LjYuNiwwLDAsMS0uNDctLjcxbC4xNy0uODloLS43OWEuNjEuNjEsMCwwLDEsMC0xLjIxaDFsLjMzLTEuNkgxMkEuNjEuNjEsMCwwLDEsMTIsMTNoMS4ybC4yMi0xLjEyQS42Mi42MiwwLDAsMSwxNC4xMSwxMS4zOVptLS4yNiw0LjQxaDJsLjMyLTEuNmgtMlpNNy43NiwxMC4zN2EyLjYxLDIuNjEsMCwwLDEsMi42MS0yLjYxaDkuMjZhMi42MSwyLjYxLDAsMCwxLDIuNjEsMi42MXY5LjI2YTIuNjEsMi42MSwwLDAsMS0yLjYxLDIuNjFIMTAuMzdhMi42MSwyLjYxLDAsMCwxLTIuNjEtMi42MVpNMTAuMzcsOUExLjQsMS40LDAsMCwwLDksMTAuMzd2OS4yNmExLjQsMS40LDAsMCwwLDEuNCwxLjRoOS4yNmExLjQsMS40LDAsMCwwLDEuNC0xLjRWMTAuMzdBMS40LDEuNCwwLDAsMCwxOS42Myw5WiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/checkboxIconDark.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjUsMTIuNzZBMi4yMSwyLjIxLDAsMCwxLDI3LjI0LDE1VjI1QTIuMjEsMi4yMSwwLDAsMSwyNSwyNy4yNEgxNUEyLjIxLDIuMjEsMCwwLDEsMTIuNzYsMjVWMTVBMi4yMSwyLjIxLDAsMCwxLDE1LDEyLjc2Wk0yNSwxNEgxNWExLDEsMCwwLDAtMSwxVjI1YTEsMSwwLDAsMCwxLDFIMjVhMSwxLDAsMCwwLDEtMVYxNUExLDEsMCwwLDAsMjUsMTRabS02LjY0LDgsNS4yMS01LjJhLjU5LjU5LDAsMCwxLC44NSwwLC42MS42MSwwLDAsMSwuMDYuNzhsLS4wNi4wNy01LjYzLDUuNjNhLjYuNiwwLDAsMS0uNzkuMDZMMTgsMjMuMjRsLTIuNDEtMi40MWEuNjEuNjEsMCwwLDEsMC0uODUuNi42LDAsMCwxLC43OS0uMDZsLjA2LjA2LDIsMiw1LjIxLTUuMloiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/clampSliderValueIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMjEyMTIxO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTE5LjQ3LDIwLjNjLjUxLDAsMS42OS0uMjEsMS42OS0yLjEycy0xLjE4LTIuMTItMS42OS0yLjEyaC0uOTZ2LS44OGguMDljLjM0LDAsLjYyLS4yOCwuNjItLjYycy0uMjgtLjYyLS42Mi0uNjJoLTEuNDZjLS4zNCwwLS42MiwuMjgtLjYyLC42MnMuMjgsLjYyLC42MiwuNjJoLjEydi44OGgtNC4xN3YtNi4wMmg2LjA4Yy41MSwwLDEuNjgtLjIxLDEuNjgtMi4xMnMtMS4xOC0yLjEyLTEuNjgtMi4xMmgtNi4yYy0yLjI3LDAtNC4xMiwxLjg1LTQuMTIsNC4xMnY2LjI3YzAsMi4yNywxLjg1LDQuMTIsNC4xMiw0LjEyaDQuM3YyLjY3aC0uNzhjLS4zNCwwLS42MiwuMjgtLjYyLC42MnMuMjgsLjYyLC42MiwuNjJoMi44MWMuMzQsMCwuNjItLjI4LC42Mi0uNjJzLS4yOC0uNjItLjYyLS42MmgtLjc4di0yLjY3aC45NlptLTkuMzgtNC4xMnYtNi4yN2MwLTEuNTksMS4yOS0yLjg4LDIuODgtMi44OGg2LjJjLjE3LDAsLjQzLDAsLjQzLC44OHMtLjI2LC44OC0uNDMsLjg4aC02LjJjLS42MiwwLTEuMTIsLjUtMS4xMiwxLjEydjYuMjdjMCwuNjIsLjUsMS4xMiwxLjEyLDEuMTJoNi41Yy4xNywwLC40NCwwLC40NCwuODhzLS4yNiwuODgtLjQ0LC44OGgtNi41Yy0xLjU4LDAtMi44OC0xLjI5LTIuODgtMi44OFoiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/clipChildrenIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTIyLjE4LDEyLjgzaC02LjVjLTEuNDUsMC0yLjYyLDEuMTgtMi42MiwyLjYydjYuMzVjMCwxLjQ1LDEuMTgsMi42MiwyLjYyLDIuNjJoNi41YzEuNDUsMCwyLjYyLTEuMTgsMi42Mi0yLjYydi02LjM1YzAtMS40NS0xLjE4LTIuNjItMi42Mi0yLjYyWm0xLjM4LDguOTdjMCwuNzYtLjYyLDEuMzgtMS4zOCwxLjM4aC02LjVjLS43NiwwLTEuMzgtLjYyLTEuMzgtMS4zOHYtNi4zNWMwLS43NiwuNjItMS4zOCwxLjM4LTEuMzhoNi41Yy43NiwwLDEuMzgsLjYyLDEuMzgsMS4zOHY2LjM1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMTMuNzcsOC4yNmMwLTEuNDUtMS4xOC0yLjYyLTIuNjItMi42MmgtMy4xNGMtMS40NSwwLTIuNjIsMS4xOC0yLjYyLDIuNjJ2My4wM2MwLDEuNDUsMS4xOCwyLjYyLDIuNjIsMi42MmgzLjE0YzEuNDUsMCwyLjYyLTEuMTgsMi42Mi0yLjYydi0zLjAzWm0tMi4yNy0xLjMybC00Ljc5LDQuNzljLS4wNS0uMTQtLjA4LS4yOC0uMDgtLjQ0di0uODVsMy41NS0zLjU1aC45NmMuMTIsMCwuMjQsLjAyLC4zNiwuMDVabS0zLjQ5LS4wNWguNDFsLTEuNzksMS43OXYtLjQxYzAtLjc2LC42Mi0xLjM4LDEuMzgtMS4zOFptLS40LDUuNzJsNC44Mi00LjgyYy4wNiwuMTUsLjA5LC4zMSwuMDksLjQ4di44NWwtMy41NSwzLjU1aC0uOTZjLS4xNCwwLS4yNy0uMDMtLjQtLjA3Wm0zLjU0LC4wN2gtLjQxbDEuNzgtMS43OHYuNDFjMCwuNzYtLjYyLDEuMzgtMS4zOCwxLjM4WiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/clipContentsIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMjAuNDgsMTEuMzVIMTguNjVWOS41MmExLjkzLDEuOTMsMCwwLDAsMC0uMjQsMi41MywyLjUzLDAsMCwwLS4zOC0xLjE1TDE4LjIsOGEyLjYyLDIuNjIsMCwwLDAtMS45NC0xLjE1SDkuNTJBMi42NCwyLjY0LDAsMCwwLDYuODgsOS41MlYxNmEyLDIsMCwwLDAsMCwuMjUsMi42NiwyLjY2LDAsMCwwLC4zOCwxLjE0bC4wNi4wOWEyLjY3LDIuNjcsMCwwLDAsLjguNzcsMi41MywyLjUzLDAsMCwwLDEuMTUuMzhoMi4wN3YxLjgzQTIuNjQsMi42NCwwLDAsMCwxNCwyMy4xMmg2LjVhMi42NCwyLjY0LDAsMCwwLDIuNjQtMi42NFYxNEEyLjY0LDIuNjQsMCwwLDAsMjAuNDgsMTEuMzVabS0zLTEuODN2MWwtLjg3Ljg3SDE1LjA1TDE3LjM1LDlBMS4yOCwxLjI4LDAsMCwxLDE3LjQ0LDkuNTJabTAsM1YxNkExLjQzLDEuNDMsMCwwLDEsMTYsMTcuNDRIMTIuNTZWMTRBMS40MywxLjQzLDAsMCwxLDE0LDEyLjU2Wm0tOS4zNC0zQTEuNDEsMS40MSwwLDAsMSw5LjUyLDguMWguNTZsLTIsMlptMCwyLjI4LDMuNy0zLjdoMS41M0w4LjEsMTMuMzNabTMuMjUsNC43Ny0uODcuODdoLTFBMS4yOCwxLjI4LDAsMCwxLDksMTcuMzVsMi4zMS0yLjNabS4xMS0zLjM2TDguMTgsMTYuNDlBMS41MSwxLjUxLDAsMCwxLDguMSwxNnYtMWw3LTdoMWExLjUsMS41LDAsMCwxLC40Ny4wOGwtMy4yOCwzLjI4QTIuNjgsMi42OCwwLDAsMCwxMS40NiwxMy4yMVpNMjEuOSwyMC40OGExLjQxLDEuNDEsMCwwLDEtMS40MiwxLjQySDE0YTEuNDIsMS40MiwwLDAsMS0xLjQyLTEuNDJWMTguNjVIMTZBMi42NCwyLjY0LDAsMCwwLDE4LjY1LDE2VjEyLjU2aDEuODNBMS40MiwxLjQyLDAsMCwxLDIxLjksMTRaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/colorIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNOC4zMSwxMC4zNGE4LjM0LDguMzQsMCwwLDEsMTQuMjUsOC4zNGMtMS4zNSwzLjctNC45MSw1LjE2LTcuNDcsMy4zYTMuODIsMy44MiwwLDAsMS0xLjUyLTNsLS4wOC0uODEsMC0uMzJjLS4xLS43Ni0uMjYtMS4xLS41OC0xLjI4YTEuMjcsMS4yNywwLDAsMC0xLjMsMGwtLjI4LjEyLS4xNS4wNmEzLjEyLDMuMTIsMCwwLDEtMi4wNy4zNEw4LjksMTdsLS4xMywwQzYuNDksMTYuMjksNi4xNSwxMy4yLDguMzEsMTAuMzRabS44LDUuNDguMSwwLC4xMSwwYTEuODEsMS44MSwwLDAsMCwxLjE3LS4xOWwuNDktLjIxYTIuNDcsMi40NywwLDAsMSwzLjY4LDIuMjFsMCwuMzcuMDUuNDQsMCwuMzRhMi43NSwyLjc1LDAsMCwwLDEsMi4xNmMxLjg2LDEuMzUsNC41Mi4yNSw1LjYxLTIuNzNBNy4xMSw3LjExLDAsMCwwLDkuMjksMTEuMDdDNy41OSwxMy4zMyw3LjgsMTUuMzgsOS4xMSwxNS44MlptOS4xNi0xLjYzYTEsMSwwLDAsMSwyLS41MywxLDEsMCwxLDEtMiwuNTNaTTE4LjY4LDE3YTEsMSwwLDEsMSwxLjI0LjcyQTEsMSwwLDAsMSwxOC42OCwxN1ptLTItNS4zYTEsMSwwLDAsMSwuNzItMS4yNSwxLDEsMCwxLDEsLjUzLDJBMSwxLDAsMCwxLDE2LjY2LDExLjc0Wm0wLDcuMzVhMSwxLDAsMCwxLC43Mi0xLjI1LDEsMSwwLDAsMSwuNTMsMkExLDEsMCwwLDEsMTYuNjMsMTkuMDlaTTEzLjc4LDExYTEsMSwwLDEsMSwxLjI1LjcyQTEsMSwwLDAsMSwxMy43OCwxMVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/conerRadiusIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMjAuNDIsMjIuMjFIOS41N2ExLjc4LDEuNzgsMCwwLDEtMS43OC0xLjc4VjkuNThhMS44LDEuOCwwLDAsMSwyLTEuNzhBMTMuODYsMTMuODYsMCwwLDEsMjIuMiwyMC4yNWgwYTEuOCwxLjgsMCwwLDEtMS43OCwyWk05LjU4LDlhLjUyLjUyLDAsMCwwLS4zNi4xNC41Mi41MiwwLDAsMC0uMTguNFYyMC40M2EuNTMuNTMsMCwwLDAsLjUzLjUzSDIwLjQyYS41Mi41MiwwLDAsMCwuNC0uMTguNTYuNTYsMCwwLDAsLjE0LS40MUExMi42MiwxMi42MiwwLDAsMCw5LjYzLDlaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/confirmGridElementDark.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTUsNi44OUE4LjExLDguMTEsMCwxLDEsNi44OSwxNSw4LjExLDguMTEsMCwwLDEsMTUsNi44OVptMCwxLjIyQTYuODksNi44OSwwLDEsMCwyMS44OSwxNSw2Ljg4LDYuODgsMCwwLDAsMTUsOC4xMVptLTEsOC4wNiwzLjYyLTMuNjNhLjYxLjYxLDAsMCwxLC45Mi43OWwtLjA2LjA3LTQsNC4wNmEuNjQuNjQsMCwwLDEtLjguMDZsLS4wNi0uMDYtMi0yYS42LjYsMCwwLDEsMC0uODYuNi42LDAsMCwxLC43OS0uMDZsLjA3LjA2LDEuNiwxLjYsMy42Mi0zLjYzWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/copy.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5jb3B5PC90aXRsZT48ZyBpZD0iVUlfRWxlbWVudHMiIGRhdGEtbmFtZT0iVUkgRWxlbWVudHMiPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTI0LDE0Ljg5SDIyLjc2bC0zLTNIMTIuNDNWMjYuNTloNC4yNnYzaDExLjVWMTlabS4zLDEuNzEsMi4xNCwyLjEzSDI0LjM0Wm0tMTAuOTEsOVYxMi45M2g1LjkzbDIsMkgxNi42OXYxMC43Wm00LjI2LDNWMTUuODloNS42NXYzLjg0aDMuODV2OC44M1oiLz48L2c+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/cropIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjIuNDMsMTlhLjYuNiwwLDAsMSwuMDksMS4yaC0yLjN2Mi4yMWEuNi42LDAsMCwxLS42LjYxLjYxLjYxLDAsMCwxLS42LS41MnYtMi4zSDEyLjM5YTIuNjEsMi42MSwwLDAsMS0yLjYxLTIuNDZWMTFINy41NmEuNi42LDAsMCwxLS4wOC0xLjJIOS43N1Y3LjU3YS42LjYsMCwwLDEsLjYtLjYxLjYxLjYxLDAsMCwxLC42LjUydjIuM2gwVjExaDB2Ni42M0ExLjQsMS40LDAsMCwwLDEyLjI3LDE5SDIyLjQzWk0xMS43OCw5Ljc4aDUuODNhMi42MiwyLjYyLDAsMCwxLDIuNjEsMi40NnY2SDE5VjEyLjM5QTEuNCwxLjQsMCwwLDAsMTcuNzMsMTFoLTZaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/deleteGridElementDark.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTUsOC43MWEyLDIsMCwwLDEsMiwxLjkxdi4xMWgzLjI2YS40Ny40NywwLDAsMSwuMDYuOTNoLS41NkwxOSwxOS43NWExLjcsMS43LDAsMCwxLTEuNTksMS41M0gxMi43MUExLjcxLDEuNzEsMCwwLDEsMTEsMTkuODVsMC0uMS0uNzktOC4wOWgtLjVhLjQ2LjQ2LDAsMCwxLS40Ni0uNFYxMS4yYS40Ni40NiwwLDAsMSwuNC0uNDZIMTNBMiwyLDAsMCwxLDE1LDguNzFabTMuODUsMi45NWgtNy43bC43OSw4YS43OC43OCwwLDAsMCwuNjkuN2g0LjY2YS43Ny43NywwLDAsMCwuNzYtLjYydi0uMDhabS0yLjc2LDEuNzFhLjQ3LjQ3LDAsMCwxLC40Ni40djQuNDFhLjQ2LjQ2LDAsMCwxLS45Mi4wNnYtNC40QS40Ny40NywwLDAsMSwxNi4wOSwxMy4zN1ptLTIuMTgsMGEuNDYuNDYsMCwwLDEsLjQ2LjR2NC40MWEuNDcuNDcsMCwwLDEtLjkzLjA2di00LjRBLjQ3LjQ3LDAsMCwxLDEzLjkxLDEzLjM3Wk0xNSw5LjY1YTEuMDcsMS4wNywwLDAsMC0xLjA4LDF2LjA5aDIuMThBMS4wOCwxLjA4LDAsMCwwLDE1LDkuNjVaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/descendantsOnlyPaddingIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjMuMTEsOS4zMmEyLjIzLDIuMjMsMCwwLDEtMi4yMywyLjI0SDkuMTJhMi4yNCwyLjI0LDAsMCwxLDAtNC40N0gyMC44OEEyLjIzLDIuMjMsMCwwLDEsMjMuMTEsOS4zMlpNMjEuNDksMTVhMi4yMywyLjIzLDAsMCwxLTIuMjMsMi4yM0gxMC43NGEyLjIzLDIuMjMsMCwwLDEsMC00LjQ2aDguNTJBMi4yMywyLjIzLDAsMCwxLDIxLjQ5LDE1Wm0tMi40NCw1LjY4YTIuMjMsMi4yMywwLDAsMS0yLjIzLDIuMjNIMTMuMThhMi4yNCwyLjI0LDAsMCwxLDAtNC40N2gzLjY0QTIuMjMsMi4yMywwLDAsMSwxOS4wNSwyMC42OFpNMjEuODksOS4zMmExLDEsMCwwLDAtMS0xSDkuMTJhMSwxLDAsMCwwLDAsMkgyMC44OEExLDEsMCwwLDAsMjEuODksOS4zMlpNMjAuMjcsMTVhMSwxLDAsMCwwLTEtMUgxMC43NGExLDEsMCwwLDAsMCwyaDguNTJBMSwxLDAsMCwwLDIwLjI3LDE1Wm0tMi40Myw1LjY4YTEsMSwwLDAsMC0xLTFIMTMuMThhMSwxLDAsMSwwLDAsMmgzLjY0QTEsMSwwLDAsMCwxNy44NCwyMC42OFoiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/displayGridLine1Icon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMCAzMCI+PGRlZnM+PHN0eWxlPi5ie2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImIiIGQ9Ik03LjczLDkuOTVjMC0xLjIzLC45OS0yLjIyLDIuMjItMi4yMmgxMC4wOWMxLjIzLDAsMi4yMiwuOTksMi4yMiwyLjIydjEwLjA5YzAsMS4yMy0uOTksMi4yMi0yLjIyLDIuMjJIOS45NWMtMS4yMywwLTIuMjItLjk5LTIuMjItMi4yMlY5Ljk1Wm0yLjIyLTEuMDFjLS41NiwwLTEuMDEsLjQ1LTEuMDEsMS4wMXYxMC4wOWMwLC41NiwuNDUsMS4wMSwxLjAxLDEuMDFoMTAuMDljLjU2LDAsMS4wMS0uNDUsMS4wMS0xLjAxVjkuOTVjMC0uNTYtLjQ1LTEuMDEtMS4wMS0xLjAxSDkuOTVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNS44NCwxMS45MnY2LjU0YzAsLjMtLjIzLC41My0uNTMsLjUzcy0uNTMtLjIzLS41My0uNTN2LTUuODhsLTEuMDcsLjQyYy0uMDksLjAzLS4yLC4wNy0uMjgsLjA3LS4yNiwwLS40Ny0uMjEtLjQ3LS40NywwLS4xNSwuMDctLjM1LC4zMy0uNDZsMS42NC0uNjZjLjA5LS4wMiwuMjItLjEsLjM3LS4xLC4zMSwwLC41MywuMjMsLjUzLC41NVoiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/displayGridLine2Icon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMCAzMCI+PGRlZnM+PHN0eWxlPi5ie2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImIiIGQ9Ik03LjczLDkuOTVjMC0xLjIzLC45OS0yLjIyLDIuMjItMi4yMmgxMC4wOWMxLjIzLDAsMi4yMiwuOTksMi4yMiwyLjIydjEwLjA5YzAsMS4yMy0uOTksMi4yMi0yLjIyLDIuMjJIOS45NWMtMS4yMywwLTIuMjItLjk5LTIuMjItMi4yMlY5Ljk1Wm0yLjIyLTEuMDFjLS41NiwwLTEuMDEsLjQ1LTEuMDEsMS4wMXYxMC4wOWMwLC41NiwuNDUsMS4wMSwxLjAxLDEuMDFoMTAuMDljLjU2LDAsMS4wMS0uNDUsMS4wMS0xLjAxVjkuOTVjMC0uNTYtLjQ1LTEuMDEtMS4wMS0xLjAxSDkuOTVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy42MywxOC40NGMwLC4zMS0uMjMsLjUxLS41MiwuNTFoLTMuOTNjLS4zMiwwLS41NS0uMjEtLjU1LS41NSwwLS4yMywuMDktLjQxLC4zMS0uNjRsMi4yNS0yLjM0Yy41OC0uNTksLjk0LTEuMiwuOTQtMS44NiwwLS43LS41MS0xLjE3LTEuMi0xLjE3LS42MywwLTEuMDIsLjM0LTEuMjksLjY5LS4xLC4xMi0uMjIsLjI0LS40NSwuMjQtLjI4LDAtLjUtLjE4LS41MS0uNDUsMC0uMTUsLjA1LS4zLC4xMy0uNDIsLjMzLS41NywxLjA4LTEuMTEsMi4xNi0xLjExLDEuNDMsMCwyLjI4LC45NSwyLjI4LDIuMTcsMCwuODYtLjQsMS42Mi0xLjIxLDIuNDZsLTEuODgsMS45NmgyLjk1Yy4yOSwwLC41MiwuMiwuNTIsLjUxWiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/fillColorIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNNy4zMSwxNi41NHY0LjFhMiwyLDAsMCwwLDIsMkgyMS40MmEyLDIsMCwwLDAsMi0yVjExLjc4YTIsMiwwLDAsMC0yLTJIMTQuMjFMMTUuNDIsMTFoNmEuOC44LDAsMCwxLC44LjgxdjguODZhLjguOCwwLDAsMS0uOC44MUg5LjMzYS44MS44MSwwLDAsMS0uODEtLjgxVjE3Ljc1WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0xMC41NCw4YS42LjYsMCwxLDEsMS4yLDBWOWExLjU3LDEuNTcsMCwwLDEsMSwuNDZsMi44NSwyLjg1YTEuNjEsMS42MSwwLDAsMSwwLDIuMjhMMTIuMTcsMThhMS42MSwxLjYxLDAsMCwxLTIuMjgsMEw3LDE1LjEzYTEuNjEsMS42MSwwLDAsMSwwLTIuMjhsMy40Mi0zLjQyLjA4LS4wN1ptMCwzLjYydi0uNUw4LjIxLDEzLjRoNi42NGEuMzQuMzQsMCwwLDAtLjEyLS4yNmwtMi44NS0yLjg1YS4zNC4zNCwwLDAsMC0uMTQtLjA5djEuMzdhLjYuNiwwLDEsMS0xLjIsMFptLTIuMzIsMywyLjUyLDIuNTJhLjQyLjQyLDAsMCwwLC41NywwbDIuNTMtMi41MloiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMTQuNTcsMTcuMzJhMi43NiwyLjc2LDAsMCwxLC4yNy0xLjEyLDUuMzMsNS4zMywwLDAsMSwuNTQtLjkxYy4yLS4yNy4zOS0uNDkuNTMtLjY1bC4yNC0uMjZoMGEuNi42LDAsMCwxLC44NiwwbC4yNC4yN2E2LDYsMCwwLDEsLjUzLjY1LDUuMzMsNS4zMywwLDAsMSwuNTQuOTEsMi43NiwyLjc2LDAsMCwxLC4yOCwxLjEyLDIsMiwwLDEsMS00LDBaTTE2LjM3LDE2YTQuMTUsNC4xNSwwLDAsMC0uNDMuNzIsMS41NywxLjU3LDAsMCwwLS4xNy42MS44MS44MSwwLDEsMCwxLjYyLDAsMS41NywxLjU3LDAsMCwwLS4xNy0uNjEsNC4xNSw0LjE1LDAsMCwwLS40My0uNzJsLS4yMS0uMjhaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/fontFamilyIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTAuOTIsNi44M2EuNjEuNjEsMCwwLDEsLjU3LjRsMi40MSw2LjUydjBsLjE4LjQ5TDEzLjQyLDE2bC0uNTEtMS4zOGgtNEw4LDE3LjA1YS42MS42MSwwLDAsMS0uNzkuMzYuNjIuNjIsMCwwLDEtLjM2LS43OWwxLTIuODR2MGwyLjQxLTYuNTJBLjYyLjYyLDAsMCwxLDEwLjkyLDYuODNaTTkuMzgsMTMuMzdoMy4wN0wxMC45Miw5LjIxWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0xNi40OCwxMC40OGEuNi42LDAsMCwxLC41Ny0uMzguNTkuNTksMCwwLDEsLjU2LjM5bDQuNTQsMTEuNDVoLjRhLjYyLjYyLDAsMSwxLDAsMS4yM2gtMmEuNjIuNjIsMCwwLDEsMC0xLjIzaC4zMmwtMS0yLjQ1SDE0LjIybC0xLDIuNDVoLjMyYS42Mi42MiwwLDAsMSwwLDEuMjNoLTJhLjYyLjYyLDAsMCwxLDAtMS4yM2guNFptMi45LDcuNzhMMTcsMTIuMzdsLTIuMzMsNS44OVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/fontSizeIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTMuNTYsMTkuNTNsMy45LTExYS42MS42MSwwLDAsMSwxLjEtLjA5bDAsLjA5TDIzLDIxLjA1YS42Mi42MiwwLDAsMS0uMzcuNzguNi42LDAsMCwxLS43NC0uM2wwLS4wNy0xLjI5LTMuNjRIMTUuNDVsLTEuMjgsMy42YS41Ny41NywwLDAsMS0uMjkuMzZsLS4wNywwYS42MS42MSwwLDAsMS0uNzUtLjI3bDAtLjA3LS44LTJIOC45bC0uOCwyYS42MS42MSwwLDAsMS0uNzEuMzdsLS4wOCwwYS41OS41OSwwLDAsMS0uMzYtLjdMNywyMWwzLTcuNjdhLjYxLjYxLDAsMCwxLDEuMDktLjA4bDAsLjA5LDIuNDMsNi4xNiwzLjktMTFabS0zLTQuMjktMS4xOCwzaDIuMzZaTTE4LDEwLjU1bC0yLjE2LDYuMDZoNC4zMVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/fontStyleIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMjEuNCwxOS42NWwwLDBhMi40NSwyLjQ1LDAsMCwxLC4xMS43MSwyLDIsMCwwLDEtMiwyLDIsMiwwLDAsMS0xLjEyLS4zNGwtLjA1LDAtLjA1LDBhMi4zMywyLjMzLDAsMCwxLS42NC0uODR2MGwtLjc5LTEuODhIMTNsLS43NSwxLjgzYTIsMiwwLDAsMS0uNzQsMUEyLDIsMCwwLDEsOSwyMS44N2ExLjg4LDEuODgsMCwwLDEtLjU1LTEuMzgsMy4zNywzLjM3LDAsMCwxLDAtLjQ4bDAtLjEzLDQuNTUtMTFoMGEyLjI3LDIuMjcsMCwwLDEsLjc2LS45NCwxLjk0LDEuOTQsMCwwLDEsMS4yNi0uMzIsMiwyLDAsMCwxLDEuODIsMS4zMVpNMTUuODEsOS4zNGEuNzkuNzksMCwwLDAtLjMtLjQxLjgzLjgzLDAsMCwwLS40MS0uMTNIMTVhMS4xMSwxLjExLDAsMCwwLS4yNiwwLC42NC42NCwwLDAsMC0uMjUuMTIuODUuODUsMCwwLDAtLjM0LjQyTDkuNzEsMjAuMjFhMS40OCwxLjQ4LDAsMCwwLDAsLjI4LjcyLjcyLDAsMCwwLC4xOS41My43Ny43NywwLDAsMCwuNTcuMTkuNy43LDAsMCwwLC40NC0uMTQuNzYuNzYsMCwwLDAsLjMtLjRsMS4wNy0yLjYxaDUuNDNsMS4wOSwyLjU5YTEuMTcsMS4xNywwLDAsMCwuMzIuNDIuNzYuNzYsMCwwLDAsLjQ2LjE0LjcuNywwLDAsMCwuNTQtLjIzLjczLjczLDAsMCwwLC4yNS0uNTgsMS4yLDEuMiwwLDAsMCwwLS4zM1pNMTcsMTYuNDYsMTUsMTEuNTRsLTIsNC45MlptLTIuMzEtMS4yaC41bC0uMjUtLjZaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/fontWeightIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjMwIiBoZWlnaHQ9IjMwIiB2aWV3Qm94PSIwIDAgMzAgMzAiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yNC4zNSwyMC40NSwyMC4yMiw4LjgxbDAtLjEyYTEuMDcsMS4wNywwLDAsMC0xLjk0LjE1TDE0Ljc3LDE4LjYsMTEuMiw4LjU0bDAtLjA5YS42MS42MSwwLDAsMC0xLjEuMDlMNS42MiwyMS4wNWEuNjEuNjEsMCwwLDAsMS4xMS40OGwwLS4wNywxLjI5LTMuNjNoNS4xNmwxLjI5LDMuNjMsMCwuMDdhLjYxLjYxLDAsMCwwLC41My4zM2gwYTEuMDcsMS4wNywwLDAsMCwxLS42bDEuMTItMy4xNGg0LjA5bDEuMDgsMy4wNy4wNS4xYTEuMDcsMS4wNywwLDAsMCwuOTUuNTcsMS4xMiwxLjEyLDAsMCwwLC4zNS0uMDZBMS4wNSwxLjA1LDAsMCwwLDI0LjM1LDIwLjQ1Wk04LjQ4LDE2LjYxbDIuMTUtNi4wNiwyLjE1LDYuMDZaTTE4LDE2bDEuMjgtMy42M0wyMC41MiwxNloiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/frequencyIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMCAzMCI+PGRlZnM+PHN0eWxlPi5ie2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImIiIGQ9Ik05LjU2LDIwLjQxYzAsLjMzLC4yNywuNjEsLjYxLC42MXMuNjEtLjI3LC42MS0uNjFWOC42MmMwLS4zMy0uMjctLjYxLS42MS0uNjFzLS42MSwuMjctLjYxLC42MXYxMS43OVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTYuMzQsMTcuNTNjMCwuMzMsLjI3LC42MSwuNjEsLjYxcy42MS0uMjcsLjYxLS42MXYtMy45YzAtLjMzLS4yNy0uNjEtLjYxLS42MXMtLjYxLC4yNy0uNjEsLjYxdjMuOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTIyLjQ0LDE3LjUzYzAsLjMzLC4yNywuNjEsLjYxLC42MXMuNjEtLjI3LC42MS0uNjF2LTMuOWMwLS4zMy0uMjctLjYxLS42MS0uNjFzLS42MSwuMjctLjYxLC42MXYzLjlaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xMi43OCwxOC4wMWMwLC4zMywuMjcsLjYxLC42MSwuNjFzLjYxLS4yNywuNjEtLjYxVjYuMjJjMC0uMzMtLjI3LS42MS0uNjEtLjYxcy0uNjEsLjI3LS42MSwuNjF2MTEuNzlaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNiwyMy43OGMwLC4zMywuMjcsLjYxLC42MSwuNjFzLjYxLS4yNywuNjEtLjYxVjExLjk5YzAtLjMzLS4yNy0uNjEtLjYxLS42MXMtLjYxLC4yNy0uNjEsLjYxdjExLjc5WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMTkuMjIsMjEuMzhjMCwuMzMsLjI3LC42MSwuNjEsLjYxcy42MS0uMjcsLjYxLS42MVY5LjU5YzAtLjMzLS4yNy0uNjEtLjYxLS42MXMtLjYxLC4yNy0uNjEsLjYxdjExLjc5WiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/gridColumnIconDark.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJpY29ucyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMzMzM7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0ibTEyLjU3LDE3LjgzdjIuNjNjMCwuMzQuMjcuNjEuNjEuNjFoMy42NGMuMzQsMCwuNjEtLjI3LjYxLS42MXYtMi42M2gtNC44NlptNC4yNS0xMC4xMmMxLjAxLDAsMS44Mi44MiwxLjgyLDEuODJ2MTAuOTNjMCwxLjAxLS44MiwxLjgyLTEuODIsMS44MmgtMy42NGMtMS4wMSwwLTEuODItLjgyLTEuODItMS44MnYtMTAuOTNjMC0xLjAxLjgyLTEuODIsMS44Mi0xLjgyaDMuNjRabS42MSwxLjgyYzAtLjM0LS4yNy0uNjEtLjYxLS42MWgtMy42NGMtLjM0LDAtLjYxLjI3LS42MS42MXYyLjYzaDQuODZ2LTIuNjNabS00Ljg2LDcuMDhoNC44NnYtMy4yNGgtNC44NnYzLjI0WiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/gridRowIconDark.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJpY29ucyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMzMzM7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0ibTcuNzQsMTMuMThjMC0xLC44MS0xLjgyLDEuODItMS44MmgxMC44OWMxLDAsMS44Mi44MSwxLjgyLDEuODJ2My42M2MwLDEtLjgxLDEuODItMS44MiwxLjgyaC0xMC44OWMtMSwwLTEuODItLjgxLTEuODItMS44MnYtMy42M1ptMS44Mi0uNjFjLS4zMywwLS42MS4yNy0uNjEuNjF2My42M2MwLC4zMy4yNy42MS42MS42MWgyLjYydi00Ljg0aC0yLjYyWm03LjA2LDQuODR2LTQuODRoLTMuMjN2NC44NGgzLjIzWm0xLjIxLDBoMi42MmMuMzMsMCwuNjEtLjI3LjYxLS42MXYtMy42M2MwLS4zMy0uMjctLjYxLS42MS0uNjFoLTIuNjJ2NC44NFoiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/hAlignCenterIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMjIuMyw5LjkzQTIuMjMsMi4yMywwLDAsMCwyMC4wNyw3LjdIOS45M0EyLjIzLDIuMjMsMCwwLDAsNy43LDkuOTNWMjAuMDdBMi4yMywyLjIzLDAsMCwwLDkuOTMsMjIuM0gyMC4wN2EyLjIzLDIuMjMsMCwwLDAsMi4yMy0yLjIzWm0tMTIuMzctMUgyMC4wN2ExLDEsMCwwLDEsMSwxVjIwLjA3YTEsMSwwLDAsMS0xLDFIOS45M2ExLDEsMCwwLDEtMS0xVjkuOTNBMSwxLDAsMCwxLDkuOTMsOC45MVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMTAuNzYsMTMuMzloOC40NmEuNi42LDAsMCwxLC4wOCwxLjJIMTAuNzZhLjYuNiwwLDAsMS0uMDgtMS4yWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0xMi4zLDE1LjgyaDUuNGEuNi42LDAsMCwxLC4wOSwxLjJIMTIuM2EuNi42LDAsMCwxLS4wOS0xLjJaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/hAlignLeftIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMjIuMyw5LjkzQTIuMjMsMi4yMywwLDAsMCwyMC4wNyw3LjdIOS45M0EyLjIzLDIuMjMsMCwwLDAsNy43LDkuOTNWMjAuMDdBMi4yMywyLjIzLDAsMCwwLDkuOTMsMjIuM0gyMC4wN2EyLjIzLDIuMjMsMCwwLDAsMi4yMy0yLjIzWm0tMTIuMzctMUgyMC4wN2ExLDEsMCwwLDEsMSwxVjIwLjA3YTEsMSwwLDAsMS0xLDFIOS45M2ExLDEsMCwwLDEtMS0xVjkuOTNBMSwxLDAsMCwxLDkuOTMsOC45MVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMTAuNzYsMTMuMzloOC40NmEuNi42LDAsMCwxLC4wOCwxLjJIMTAuNzZhLjYuNiwwLDAsMS0uMDgtMS4yWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0xMC43NiwxNS44Mmg1LjQxYS42LjYsMCwwLDEsLjA4LDEuMkgxMC43NmEuNi42LDAsMCwxLS4wOC0xLjJaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/hAlignRightIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMjIuMyw5LjkzQTIuMjMsMi4yMywwLDAsMCwyMC4wNyw3LjdIOS45M0EyLjIzLDIuMjMsMCwwLDAsNy43LDkuOTNWMjAuMDdBMi4yMywyLjIzLDAsMCwwLDkuOTMsMjIuM0gyMC4wN2EyLjIzLDIuMjMsMCwwLDAsMi4yMy0yLjIzWm0tMTIuMzctMUgyMC4wN2ExLDEsMCwwLDEsMSwxVjIwLjA3YTEsMSwwLDAsMS0xLDFIOS45M2ExLDEsMCwwLDEtMS0xVjkuOTNBMSwxLDAsMCwxLDkuOTMsOC45MVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMTAuNzYsMTMuMzloOC40NmEuNi42LDAsMCwxLC4wOCwxLjJIMTAuNzZhLjYuNiwwLDAsMS0uMDgtMS4yWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0xMy44MSwxNS44Mmg1LjQxQS42LjYsMCwwLDEsMTkuMywxN0gxMy44MWEuNi42LDAsMCwxLS4wOC0xLjJaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/highlightIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTIxLjc3LDYuOGMuMzEsMCwuNTcsLjIzLC42MSwuNTN2My43N2MwLC45NS0uNzIsMS43My0xLjY0LDEuODN2MS44NWMwLC45OC0uNzYsMS43OC0xLjcyLDEuODRoLS4zM3YyLjI5YzAsLjY3LS4zNiwxLjI4LS45NCwxLjZsLS4xMywuMDctNS40NCwyLjU1Yy0uMzgsLjE4LS44Mi0uMDctLjg3LS40N3YtNi4wM2gtLjIxYy0uOTgsMC0xLjc3LS43Ni0xLjg0LTEuNzJ2LTEuOThjLS44OC0uMS0xLjU3LS44MS0xLjY0LTEuN3YtMy44MmMwLS4zNCwuMjctLjYxLC42MS0uNjEsLjMxLDAsLjU3LC4yMywuNjEsLjUzdjMuNzdjMCwuMzEsLjI0LC41NywuNTQsLjYxaDExLjE1Yy4zMSwwLC41Ny0uMjMsLjYxLS41M3YtMy43N2MwLS4zNCwuMjgtLjYxLC42Mi0uNjFabS00LjMxLDkuODNoLTQuOTJ2NC45OGw0LjU2LTIuMTRjLjE5LS4wOSwuMzItLjI3LC4zNS0uNDd2LTIuMzhabTIuMDYtMy42OEgxMC40OXYxLjg0YzAsLjMxLC4yMywuNTcsLjUzLC42MWg3Ljg3Yy4zMSwwLC41Ny0uMjMsLjYxLS41M3YtMS45MloiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/horizontalMarginIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNOSw4LjM3YS42LjYsMCwxLDAtMS4yLDBWMjEuNjNhLjYuNiwwLDEsMCwxLjIsMFoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMjIuMjMsOC4zN2EuNi42LDAsMSwwLTEuMiwwVjIxLjYzYS42LjYsMCwxLDAsMS4yLDBaIiBzdHlsZT0iZmlsbDojMzMzIi8+PHBhdGggZD0iTTExLjc5LDE5LjIyYTEuNDEsMS40MSwwLDAsMCwxLjQsMS40MWgzLjYyYTEuNDEsMS40MSwwLDAsMCwxLjQtMS40MVYxMC43OGExLjQxLDEuNDEsMCwwLDAtMS40LTEuNDFIMTMuMTlhMS40MSwxLjQxLDAsMCwwLTEuNCwxLjQxWm0xLjQuMmEuMi4yLDAsMCwxLS4yLS4yVjEwLjc4YS4yLjIsMCwwLDEsLjItLjJoMy42MmEuMi4yLDAsMCwxLC4yLjJ2OC40NGEuMi4yLDAsMCwxLS4yLjJaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/imageLinkIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTIuNzgsMTFhLjYuNiwwLDAsMSwuMDksMS4ySDExYTIuODIsMi44MiwwLDAsMC0uMTcsNS42NGgyYS42MS42MSwwLDAsMSwuNjEuNjEuNjIuNjIsMCwwLDEtLjUyLjZIMTFhNCw0LDAsMCwxLS4yLTguMDZoMlpNMTksMTFhNCw0LDAsMCwxLC4yLDguMDZoLTJhLjYuNiwwLDAsMS0uMDktMS4ySDE5YTIuODIsMi44MiwwLDAsMCwuMTctNS42NGgtMmEuNjEuNjEsMCwwLDEtLjYxLS42MS42Mi42MiwwLDAsMSwuNTItLjZIMTlaTTExLDE0LjRIMTlhLjYuNiwwLDAsMSwuMDgsMS4ySDExYS42LjYsMCwwLDEtLjA4LTEuMloiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/lineDashIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMCAzMCI+PGRlZnM+PHN0eWxlPi5ie2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PGc+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNi40Nyw4Ljk1aC0yLjk4Yy0uMzMsMC0uNi0uMjctLjYtLjZzLjI3LS42LC42LS42aDIuOThjLjMzLDAsLjYsLjI3LC42LC42cy0uMjcsLjYtLjYsLjZaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik04LjMsMTEuNmMtLjMzLDAtLjYtLjI3LS42LS42di0xYzAtMS4yNCwxLjAxLTIuMjUsMi4yNS0yLjI1aDFjLjMzLDAsLjYsLjI3LC42LC42cy0uMjcsLjYtLjYsLjZoLTFjLS41OCwwLTEuMDUsLjQ3LTEuMDUsMS4wNXYxYzAsLjMzLS4yNywuNi0uNiwuNloiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTIxLjcsMTEuNmMtLjMzLDAtLjYtLjI3LS42LS42di0xYzAtLjU4LS40Ny0xLjA1LTEuMDUtMS4wNWgtMWMtLjMzLDAtLjYtLjI3LS42LS42cy4yNy0uNiwuNi0uNmgxYzEuMjQsMCwyLjI1LDEuMDEsMi4yNSwyLjI1djFjMCwuMzMtLjI3LC42LS42LC42WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iYiIgZD0iTTguMzUsMTcuMTFjLS4zMywwLS42LS4yNy0uNi0uNnYtMi45OGMwLS4zMywuMjctLjYsLjYtLjZzLjYsLjI3LC42LC42djIuOThjMCwuMzMtLjI3LC42LS42LC42WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMTEsMjIuM2gtMWMtMS4yNCwwLTIuMjUtMS4wMS0yLjI1LTIuMjV2LTFjMC0uMzMsLjI3LS42LC42LS42cy42LC4yNywuNiwuNnYxYzAsLjU4LC40NywxLjA1LDEuMDUsMS4wNWgxYy4zMywwLC42LC4yNywuNiwuNnMtLjI3LC42LS42LC42WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iYiIgZD0iTTE2LjUxLDIyLjI1aC0yLjk4Yy0uMzMsMC0uNi0uMjctLjYtLjZzLjI3LS42LC42LS42aDIuOThjLjMzLDAsLjYsLjI3LC42LC42cy0uMjcsLjYtLjYsLjZaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yMC4wNSwyMi4yNWgtMWMtLjMzLDAtLjYtLjI3LS42LS42cy4yNy0uNiwuNi0uNmgxYy41OCwwLDEuMDUtLjQ3LDEuMDUtMS4wNXYtMWMwLS4zMywuMjctLjYsLjYtLjZzLjYsLjI3LC42LC42djFjMCwxLjI0LTEuMDEsMi4yNS0yLjI1LDIuMjVaIi8+PC9nPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEuNjUsMTcuMDdjLS4zMywwLS42LS4yNy0uNi0uNnYtMi45OGMwLS4zMywuMjctLjYsLjYtLjZzLjYsLjI3LC42LC42djIuOThjMCwuMzMtLjI3LC42LS42LC42WiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/linePoint1Icon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMCAzMCI+PGRlZnM+PHN0eWxlPi5ie2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yMS4yMyw0Ljc5djUuODhjMCwuMjctLjIxLC40OC0uNDgsLjQ4cy0uNDctLjIxLS40Ny0uNDhWNS4zOWwtLjk2LC4zOGMtLjA4LC4wMy0uMTgsLjA2LS4yNSwuMDYtLjI0LDAtLjQzLS4xOS0uNDMtLjQzLDAtLjE0LC4wNi0uMzIsLjMtLjQybDEuNDctLjU5Yy4wOC0uMDIsLjItLjA5LC4zNC0uMDksLjI4LDAsLjQ4LC4yMSwuNDgsLjQ5WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMTYuNTEsMTUuMDFjMCwuMzMsLjI3LC42MSwuNjEsLjYxaDQuNTlsLS41OCwuNThjLS4yNCwuMjQtLjI0LC42MiwwLC44NiwuMjQsLjI0LC42MiwuMjQsLjg2LDBsMS42MS0xLjYxYy4yNC0uMjQsLjI0LS42MiwwLS44NmwtMS42MS0xLjYxYy0uMjQtLjI0LS42Mi0uMjQtLjg2LDAtLjI0LC4yNC0uMjQsLjYyLDAsLjg2bC41OCwuNThoLTQuNTljLS4zMywwLS42MSwuMjctLjYxLC42MVptLTMuNjMtLjYxaC00LjU5bC41OC0uNThjLjI0LS4yNCwuMjQtLjYyLDAtLjg2LS4yNC0uMjQtLjYyLS4yNC0uODYsMGwtMS42MSwxLjYxYy0uMjQsLjI0LS4yNCwuNjIsMCwuODZsMS42MSwxLjYxYy4yNCwuMjQsLjYyLC4yNCwuODYsMCwuMjQtLjI0LC4yNC0uNjIsMC0uODZsLS41OC0uNThoNC41OWMuMzMsMCwuNjEtLjI3LC42MS0uNjEsMC0uMzMtLjI3LS42MS0uNjEtLjYxWm0yLjA5LS45MmMuMzMsMCwuNjEtLjI3LC42MS0uNjF2LTQuNTlsLjU4LC41OGMuMjQsLjI0LC42MiwuMjQsLjg2LDAsLjI0LS4yNCwuMjQtLjYyLDAtLjg2bC0xLjYxLTEuNjFjLS4yNC0uMjQtLjYyLS4yNC0uODYsMGwtMS42MSwxLjYxYy0uMjQsLjI0LS4yNCwuNjIsMCwuODYsLjI0LC4yNCwuNjIsLjI0LC44NiwwbC41OC0uNTh2NC41OWMwLC4zMywuMjcsLjYxLC42MSwuNjFabS0uNjEsMy42M3Y0LjU5bC0uNTgtLjU4Yy0uMjQtLjI0LS42Mi0uMjQtLjg2LDAtLjI0LC4yNC0uMjQsLjYyLDAsLjg2bDEuNjEsMS42MWMuMjQsLjI0LC42MiwuMjQsLjg2LDBsMS42MS0xLjYxYy4yNC0uMjQsLjI0LS42MiwwLS44Ni0uMjQtLjI0LS42Mi0uMjQtLjg2LDBsLS41OCwuNTh2LTQuNTljMC0uMzMtLjI3LS42MS0uNjEtLjYxcy0uNjEsLjI3LS42MSwuNjFaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/linePoint2Icon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMCAzMCI+PGRlZnM+PHN0eWxlPi5ie2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yMy42NSwxMC44YzAsLjI4LS4yMSwuNDYtLjQ2LC40NmgtMy41M2MtLjI5LDAtLjUtLjE5LS41LS41LDAtLjIxLC4wOC0uMzcsLjI4LS41N2wyLjAzLTIuMTFjLjUyLS41MywuODQtMS4wOCwuODQtMS42NywwLS42My0uNDYtMS4wNS0xLjA4LTEuMDUtLjU2LDAtLjkyLC4zMS0xLjE2LC42Mi0uMDksLjExLS4yLC4yMi0uNDEsLjIyLS4yNSwwLS40NS0uMTYtLjQ2LS40MSwwLS4xNCwuMDUtLjI3LC4xMi0uMzgsLjMtLjUyLC45Ny0xLDEuOTQtMSwxLjI5LDAsMi4wNSwuODUsMi4wNSwxLjk1LDAsLjc3LS4zNiwxLjQ2LTEuMDksMi4yMmwtMS42OSwxLjc2aDIuNjVjLjI2LDAsLjQ2LC4xOCwuNDYsLjQ2WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMTYuNTEsMTUuMDFjMCwuMzMsLjI3LC42MSwuNjEsLjYxaDQuNTlsLS41OCwuNThjLS4yNCwuMjQtLjI0LC42MiwwLC44NiwuMjQsLjI0LC42MiwuMjQsLjg2LDBsMS42MS0xLjYxYy4yNC0uMjQsLjI0LS42MiwwLS44NmwtMS42MS0xLjYxYy0uMjQtLjI0LS42Mi0uMjQtLjg2LDAtLjI0LC4yNC0uMjQsLjYyLDAsLjg2bC41OCwuNThoLTQuNTljLS4zMywwLS42MSwuMjctLjYxLC42MVptLTMuNjMtLjYxaC00LjU5bC41OC0uNThjLjI0LS4yNCwuMjQtLjYyLDAtLjg2LS4yNC0uMjQtLjYyLS4yNC0uODYsMGwtMS42MSwxLjYxYy0uMjQsLjI0LS4yNCwuNjIsMCwuODZsMS42MSwxLjYxYy4yNCwuMjQsLjYyLC4yNCwuODYsMCwuMjQtLjI0LC4yNC0uNjIsMC0uODZsLS41OC0uNThoNC41OWMuMzMsMCwuNjEtLjI3LC42MS0uNjEsMC0uMzMtLjI3LS42MS0uNjEtLjYxWm0yLjA5LS45MmMuMzMsMCwuNjEtLjI3LC42MS0uNjF2LTQuNTlsLjU4LC41OGMuMjQsLjI0LC42MiwuMjQsLjg2LDAsLjI0LS4yNCwuMjQtLjYyLDAtLjg2bC0xLjYxLTEuNjFjLS4yNC0uMjQtLjYyLS4yNC0uODYsMGwtMS42MSwxLjYxYy0uMjQsLjI0LS4yNCwuNjIsMCwuODYsLjI0LC4yNCwuNjIsLjI0LC44NiwwbC41OC0uNTh2NC41OWMwLC4zMywuMjcsLjYxLC42MSwuNjFabS0uNjEsMy42M3Y0LjU5bC0uNTgtLjU4Yy0uMjQtLjI0LS42Mi0uMjQtLjg2LDAtLjI0LC4yNC0uMjQsLjYyLDAsLjg2bDEuNjEsMS42MWMuMjQsLjI0LC42MiwuMjQsLjg2LDBsMS42MS0xLjYxYy4yNC0uMjQsLjI0LS42MiwwLS44Ni0uMjQtLjI0LS42Mi0uMjQtLjg2LDBsLS41OCwuNTh2LTQuNTljMC0uMzMtLjI3LS42MS0uNjEtLjYxcy0uNjEsLjI3LS42MSwuNjFaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/linkedMeshOffsetIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJpY29ucyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMzMzM7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE4LjE3LDE4LjUxYy0xLjIxLDAtMi4xOSwuOTgtMi4xOSwyLjE5cy45OCwyLjE5LDIuMTksMi4xOWguNDRjLjI0LDAsLjQ0LS4yLC40NC0uNDRzLS4yLS40NC0uNDQtLjQ0aC0uNDRjLS43MywwLTEuMzItLjU5LTEuMzItMS4zMnMuNTktMS4zMiwxLjMyLTEuMzJoLjQ0Yy4yNCwwLC40NC0uMiwuNDQtLjQ0cy0uMi0uNDQtLjQ0LS40NGgtLjQ0Wm0zLjA3LDBjLS4yNCwwLS40NCwuMi0uNDQsLjQ0cy4yLC40NCwuNDQsLjQ0aC40NGMuNzMsMCwxLjMyLC41OSwxLjMyLDEuMzJzLS41OSwxLjMyLTEuMzIsMS4zMmgtLjQ0Yy0uMjQsMC0uNDQsLjItLjQ0LC40NHMuMiwuNDQsLjQ0LC40NGguNDRjMS4yMSwwLDIuMTktLjk4LDIuMTktMi4xOXMtLjk4LTIuMTktMi4xOS0yLjE5aC0uNDRabS0zLjA3LDEuNzZjLS4yNCwwLS40NCwuMi0uNDQsLjQ0cy4yLC40NCwuNDQsLjQ0aDMuNTFjLjI0LDAsLjQ0LS4yLC40NC0uNDRzLS4yLS40NC0uNDQtLjQ0aC0zLjUxWiIvPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIxLjYxLDE0LjRoLTQuNTljLS4zMywwLS42MSwuMjctLjYxLC42MXMuMjcsLjYxLC42MSwuNjFoNC41OWwtLjU4LC41OGMtLjI0LC4yNC0uMjQsLjYyLDAsLjg2LC4yNCwuMjQsLjYyLC4yNCwuODYsMGwxLjYxLTEuNjFjLjI0LS4yNCwuMjQtLjYyLDAtLjg2bC0xLjYxLTEuNjFjLS4yNC0uMjQtLjYyLS4yNC0uODYsMC0uMjQsLjI0LS4yNCwuNjIsMCwuODZsLjU4LC41OFoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNS4wMSwyMC43MWMwLS41NywuMTgtMS4wOSwuNDctMS41NHYtMi4wNWMwLS4zMy0uMjctLjYxLS42MS0uNjFzLS42LC4yNy0uNiwuNjF2NC41OWwtLjU4LS41OGMtLjI0LS4yNC0uNjItLjI0LS44NiwwLS4yNCwuMjQtLjI0LC42MiwwLC44NmwxLjYxLDEuNjFjLjI0LC4yNCwuNjIsLjI0LC44NiwwbC43Mi0uNzJjLS42Mi0uNTQtMS4wMS0xLjMxLTEuMDEtMi4xN1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMy42OCw4Ljg3bC41OC0uNTh2NC41OWMwLC4zMywuMjcsLjYxLC42LC42MXMuNjEtLjI3LC42MS0uNjF2LTQuNTlsLjU4LC41OGMuMjQsLjI0LC42MiwuMjQsLjg2LDAsLjI0LS4yNCwuMjQtLjYyLDAtLjg2bC0xLjYxLTEuNjFjLS4yNC0uMjQtLjYyLS4yNC0uODYsMGwtMS42MSwxLjYxYy0uMjQsLjI0LS4yNCwuNjIsMCwuODYsLjI0LC4yNCwuNjIsLjI0LC44NiwwWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTguMTksMTUuNjFoNC41OWMuMzMsMCwuNjEtLjI3LC42MS0uNjFzLS4yNy0uNjEtLjYxLS42MWgtNC41OWwuNTgtLjU4Yy4yNC0uMjQsLjI0LS42MiwwLS44Ni0uMjQtLjI0LS42Mi0uMjQtLjg2LDBsLTEuNjEsMS42MWMtLjI0LC4yNC0uMjQsLjYyLDAsLjg2bDEuNjEsMS42MWMuMjQsLjI0LC42MiwuMjQsLjg2LDAsLjI0LS4yNCwuMjQtLjYyLDAtLjg2bC0uNTgtLjU4WiIvPjwvZz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/marginsIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTIwLjM4LDguNjJjLjQyLDAsLjgxLC4wOCwxLjE5LC4yNXMuNzEsLjM5LDEsLjY4LC41MiwuNjIsLjY4LDFjLjE3LC4zOCwuMjUsLjc4LC4yNiwxLjJ2Ni41MWMwLC40Mi0uMDgsLjgxLS4yNSwxLjE5cy0uMzksLjcxLS42OCwxLS42MiwuNTItMSwuNjgtLjc4LC4yNS0xLjIsLjI2SDkuMTVjLS4zNSwwLS42OS0uMDctMS4wMS0uMnMtLjYtLjMyLS44NS0uNTYtLjQ0LS41Mi0uNTgtLjgzYy0uMTQtLjMyLS4yMi0uNjUtLjIyLTEuMDF2LTcuNTZjMC0uMzUsLjA3LS42OCwuMjEtMSwuMTQtLjMyLC4zMy0uNTksLjU2LS44MnMuNTItLjQyLC44My0uNTYsLjY1LS4yMiwxLS4yMmgxMS4yOVptLS4wNywyLjEzdi0xLjA2SDkuNjh2MS4wNmgxMC42M1ptLTExLjctLjk3Yy0uMjMsLjA4LS40MiwuMi0uNTksLjM3cy0uMjksLjM3LS4zOCwuNmguOTd2LS45N1ptMTMuNTQsLjk3Yy0uMTktLjMzLS40NS0uNTktLjc4LS43OHYuNzhoLjc4Wm0tMTMuNTQsMS4wNmgtMS4wNnY2LjM4aDEuMDZ2LTYuMzhabTExLjcsMEg5LjY4djYuMzhoMTAuNjN2LTYuMzhabTIuMTMsMGgtMS4wNnY2LjM4aDEuMDZ2LTYuMzhabS0xNC44LDcuNDRjLjA4LC4yMywuMjEsLjQzLC4zNywuNnMuMzcsLjMsLjYsLjM3di0uOTdoLS45N1ptMi4wNCwwdjEuMDZoMTAuNjN2LTEuMDZIOS42OFptMTEuNywuNzhjLjMzLS4xOSwuNTktLjQ1LC43OC0uNzhoLS43OHYuNzhaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/pivotIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTUsNi45QTguMSw4LjEsMCwxLDAsMjMuMSwxNSw4LjEsOC4xLDAsMCwwLDE1LDYuOVptNi44Niw3LjQ5SDE1LjYzVjguMTRBNi44OSw2Ljg5LDAsMCwxLDIxLjg2LDE0LjM5Wk0xNC40MSw4LjE0djYuMjVIOC4xNEE2Ljg5LDYuODksMCwwLDEsMTQuNDEsOC4xNFpNOC4xNCwxNS42MWg2LjI3djYuMjVBNi44OSw2Ljg5LDAsMCwxLDguMTQsMTUuNjFabTcuNDksNi4yNVYxNS42MWg2LjIzQTYuODksNi44OSwwLDAsMSwxNS42MywyMS44NloiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/positionIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTYuNTEsMTVhLjYxLjYxLDAsMCwwLC42MS42aDQuNTlsLS41OC41OGEuNi42LDAsMCwwLDAsLjg2LjU5LjU5LDAsMCwwLC44NSwwbDEuNjItMS42MWEuNjIuNjIsMCwwLDAsMC0uODZMMjIsMTNhLjYuNiwwLDEsMC0uODUuODVsLjU4LjU4SDE3LjEyQS42MS42MSwwLDAsMCwxNi41MSwxNVptLTMuNjMtLjYxSDguMjlsLjU4LS41OEEuNi42LDAsMSwwLDgsMTNMNi40LDE0LjU4YS42Mi42MiwwLDAsMCwwLC44Nkw4LDE3LjA1YS41OS41OSwwLDAsMCwuODUsMCwuNi42LDAsMCwwLDAtLjg2bC0uNTgtLjU4aDQuNTlhLjYxLjYxLDAsMSwwLDAtMS4yMVpNMTUsMTMuNDlhLjYxLjYxLDAsMCwwLC42LS42MVY4LjI5bC41OC41OGEuNi42LDAsMCwwLC44NiwwQS42MS42MSwwLDAsMCwxNyw4TDE1LjM5LDYuNGEuNjEuNjEsMCwwLDAtLjg1LDBMMTIuOTIsOGEuNjEuNjEsMCwwLDAsMCwuODUuNi42LDAsMCwwLC44NiwwbC41OC0uNTh2NC41OUEuNjEuNjEsMCwwLDAsMTUsMTMuNDlabS0uNjEsMy42M3Y0LjU5bC0uNTgtLjU4YS42LjYsMCwwLDAtLjg2LDAsLjYxLjYxLDAsMCwwLDAsLjg1bDEuNjIsMS42MmEuNjEuNjEsMCwwLDAsLjg1LDBMMTcsMjJhLjYxLjYxLDAsMCwwLDAtLjg1LjYuNiwwLDAsMC0uODYsMGwtLjU4LjU4VjE3LjEyYS42MS42MSwwLDEsMC0xLjIxLDBaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/resizeToFitIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTAuMzUsOC45M2ExLjQzLDEuNDMsMCwwLDAtMS40MiwxLjQydjEuMjFhLjYxLjYxLDAsMSwxLTEuMjEsMFYxMC4zNWEyLjYzLDIuNjMsMCwwLDEsMi42My0yLjYzaDEuMjFhLjYxLjYxLDAsMSwxLDAsMS4yMVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMjEuMDcsMTAuMzVhMS40MywxLjQzLDAsMCwwLTEuNDItMS40MkgxOC40NGEuNjEuNjEsMCwxLDEsMC0xLjIxaDEuMjFhMi42MywyLjYzLDAsMCwxLDIuNjMsMi42M3YxLjIxYS42MS42MSwwLDEsMS0xLjIxLDBaIiBzdHlsZT0iZmlsbDojMzMzIi8+PHBhdGggZD0iTTIxLjA3LDE5LjY1YTEuNDMsMS40MywwLDAsMS0xLjQyLDEuNDJIMTguNDRhLjYxLjYxLDAsMSwwLDAsMS4yMWgxLjIxYTIuNjMsMi42MywwLDAsMCwyLjYzLTIuNjNWMTguNDRhLjYxLjYxLDAsMSwwLTEuMjEsMFoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNOC45MywxOS42NWExLjQzLDEuNDMsMCwwLDAsMS40MiwxLjQyaDEuMjFhLjYxLjYxLDAsMSwxLDAsMS4yMUgxMC4zNWEyLjYzLDIuNjMsMCwwLDEtMi42My0yLjYzVjE4LjQ0YS42MS42MSwwLDEsMSwxLjIxLDBaIiBzdHlsZT0iZmlsbDojMzMzIi8+PHBhdGggZD0iTTEyLDEwLjE1QTEuODEsMS44MSwwLDAsMCwxMC4xNSwxMlYxOEExLjgxLDEuODEsMCwwLDAsMTIsMTkuODVIMThBMS44MSwxLjgxLDAsMCwwLDE5Ljg1LDE4VjEyQTEuODEsMS44MSwwLDAsMCwxOCwxMC4xNVpNMTEuMzYsMTJhLjYxLjYxLDAsMCwxLC42MS0uNjFIMThhLjYxLjYxLDAsMCwxLC42MS42MVYxOGEuNjEuNjEsMCwwLDEtLjYxLjYxSDEyYS42MS42MSwwLDAsMS0uNjEtLjYxWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/rotationIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTUsNy43M2E3LjI3LDcuMjcsMCwwLDEsNCwxMy4zM2gxLjQzYS42MS42MSwwLDAsMSwuNjEuNjEuNjEuNjEsMCwwLDEtLjUyLjZIMTcuMjJhLjYxLjYxLDAsMCwxLS42LS41MlYxOC40M2EuNi42LDAsMCwxLDEuMi0uMDh2MkE2LjA2LDYuMDYsMCwxLDAsOC45NCwxNWEuNjEuNjEsMCwxLDEtMS4yMSwwQTcuMjYsNy4yNiwwLDAsMSwxNSw3LjczWm0wLDVBMi4yMiwyLjIyLDAsMSwxLDEyLjc4LDE1LDIuMjEsMi4yMSwwLDAsMSwxNSwxMi43OFpNMTUsMTRhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTUsMTRaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/scaleIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTAuMTYsMTAuNzZhLjYuNiwwLDAsMSwuNi0uNmgyYS42MS42MSwwLDEsMSwwLDEuMjFoLS41NmwxLjM5LDEuMzlhLjYuNiwwLDAsMS0uODUuODVsLTEuMzktMS4zOXYuNTZhLjYxLjYxLDAsMSwxLTEuMjEsMFoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMTkuMjQsMTkuODVhLjY0LjY0LDAsMCwwLC40My0uMTguNjMuNjMsMCwwLDAsLjE3LS40M3YtMmEuNjEuNjEsMCwxLDAtMS4yMSwwdi41NmwtMS4zOS0xLjM5YS42LjYsMCwxLDAtLjg1Ljg1bDEuMzksMS4zOWgtLjU2YS42MS42MSwwLDAsMCwwLDEuMjJaIiBzdHlsZT0iZmlsbDojMzMzIi8+PHBhdGggZD0iTTE5LjY3LDEwLjMzYS42My42MywwLDAsMSwuMTcuNDN2MmEuNjEuNjEsMCwxLDEtMS4yMSwwdi0uNTZsLTEuMzksMS4zOWEuNi42LDAsMSwxLS44NS0uODVsMS4zOS0xLjM5aC0uNTZhLjYxLjYxLDAsMSwxLDAtMS4yMWgyQS42My42MywwLDAsMSwxOS42NywxMC4zM1oiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMTAuMTYsMTkuMjRhLjU4LjU4LDAsMCwwLC42LjZoMmEuNjEuNjEsMCwxLDAsMC0xLjIxaC0uNTZsMS4zOS0xLjM5YS42LjYsMCwxLDAtLjg1LS44NWwtMS4zOSwxLjM5di0uNTZhLjYxLjYxLDAsMCwwLTEuMjEsMFoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNNy43Myw5LjU1QTEuODMsMS44MywwLDAsMSw5LjU1LDcuNzNoMTAuOWExLjgzLDEuODMsMCwwLDEsMS44MiwxLjgydjEwLjlhMS44MywxLjgzLDAsMCwxLTEuODIsMS44Mkg5LjU1YTEuODMsMS44MywwLDAsMS0xLjgyLTEuODJabTEuODItLjYxYS42Mi42MiwwLDAsMC0uNjEuNjF2MTAuOWEuNjIuNjIsMCwwLDAsLjYxLjYxaDEwLjlhLjYyLjYyLDAsMCwwLC42MS0uNjFWOS41NWEuNjIuNjIsMCwwLDAtLjYxLS42MVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/scrollViewerPrecisionIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LjIyLDkuNTZ2MS4xM2MwLC40MywuMzUsLjc4LC43OCwuNzhzLjc4LS4zNSwuNzgtLjc4di0xLjEzYzMuMDUsLjM2LDUuNDcsMi43OCw1LjgzLDUuODNoLTEuMTNjLS40MywwLS43OCwuMzUtLjc4LC43OHMuMzUsLjc4LC43OCwuNzhoMS4xM2MtLjE3LDEuNDItLjgyLDIuNy0xLjc1LDMuNzEtLjIyLC4yNC0uMjEsLjYxLC4wMywuODMsLjI0LC4yMiwuNjEsLjIxLC44My0uMDMsMS4yOS0xLjM5LDIuMTEtMy4yMywyLjExLTUuMjksMC00LjMzLTMuNTEtNy44My03LjgzLTcuODNzLTcuODMsMy41MS03LjgzLDcuODNjMCwyLjA2LC44MywzLjkxLDIuMTEsNS4yOSwuMjIsLjI0LC41OSwuMjUsLjgzLC4wMywuMjQtLjIyLC4yNS0uNTksLjAzLS44My0uOTQtMS4wMS0xLjU4LTIuMjktMS43NS0zLjcxaDEuMTNjLjQzLDAsLjc4LS4zNSwuNzgtLjc4cy0uMzUtLjc4LS43OC0uNzhoLTEuMTNjLjE1LTEuMjUsLjY0LTIuNCwxLjM4LTMuMzRsLjc2LC43NmMuMzEsLjMxLC44LC4zMSwxLjExLDAsLjMxLS4zMSwuMzEtLjgsMC0xLjExbC0uNzYtLjc2Yy45NC0uNzQsMi4wOS0xLjI0LDMuMzQtMS4zOFptNC41MSwyLjQxYy0uMTktLjE0LS40NS0uMTQtLjYzLC4wMWwtLjE3LC4xNGMtLjExLC4wOS0uMjYsLjIyLS40NSwuMzgtLjM3LC4zMi0uODgsLjc0LTEuMzksMS4xOC0uNTEsLjQ0LTEuMDQsLjg5LTEuNDYsMS4yNi0uMjEsLjE5LS4zOSwuMzUtLjU0LC40OS0uMTMsLjEzLS4yNiwuMjUtLjMzLC4zMy0uNTEsLjYzLS40LDEuNTUsLjI0LDIuMDUsLjY1LC41LDEuNTksLjM5LDIuMS0uMjQsLjA3LS4wOCwuMTYtLjIzLC4yNS0uMzksLjEtLjE3LC4yMi0uMzgsLjM2LS42MywuMjctLjQ4LC42LTEuMDksLjkyLTEuNjgsLjMyLS41OSwuNjMtMS4xNywuODUtMS42LC4xMS0uMjEsLjIxLS4zOSwuMjctLjUybC4xLS4xOWMuMTEtLjIxLC4wNS0uNDYtLjEzLS42WiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/selectAllIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTIxLjk1LDkuNzhjLjcyLC4yNSwxLjIzLC45MywxLjIzLDEuNzR2OC4xOGMwLDEuOTItMS41NiwzLjQ4LTMuNDgsMy40OEgxMS41MmMtLjgsMC0xLjQ5LS41MS0xLjc0LTEuMjNoOS45MmMxLjI0LDAsMi4yNS0xLDIuMjUtMi4yNVY5Ljc4Wm0tMi42Ni0yLjk3YzEuMDIsMCwxLjg0LC44MiwxLjg0LDEuODR2MTAuNjRjMCwxLjAyLS44MiwxLjg0LTEuODQsMS44NEg4LjY2Yy0xLjAyLDAtMS44NC0uODItMS44NC0xLjg0VjguNjZjMC0xLjAyLC44Mi0xLjg0LDEuODQtMS44NGgxMC42NFptMCwxLjIzSDguNjZjLS4zNCwwLS42MSwuMjctLjYxLC42MXYxMC42NGMwLC4zNCwuMjcsLjYxLC42MSwuNjFoMTAuNjRjLjM0LDAsLjYxLS4yNywuNjEtLjYxVjguNjZjMC0uMzQtLjI3LS42MS0uNjEtLjYxWm0tNi4yNyw2LjQzbDMuMTgtMy4xOGMuMjQtLjI0LC42My0uMjQsLjg3LDAsLjIyLC4yMiwuMjQsLjU2LC4wNiwuOGwtLjA2LC4wNy0zLjY4LDMuNjhjLS4yNCwuMjQtLjYzLC4yNC0uODYsMGwtLjA2LS4wNy0xLjIzLTEuNjRjLS4yLS4yNy0uMTUtLjY2LC4xMi0uODYsLjI1LS4xOCwuNTktLjE2LC44LC4wNWwuMDYsLjA3LC44LDEuMDcsMy4xOC0zLjE4LTMuMTgsMy4xOFoiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/shadowBlurIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNNy43OSwxNUE3LjIxLDcuMjEsMCwwLDEsMTksOUgxNWE2LDYsMCwwLDAsMCwxMlYxOS44aDUuMzdBNy4yLDcuMiwwLDAsMSw3Ljc5LDE1WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0yMCw5LjhIMTVWMTFoNkE2Ljg0LDYuODQsMCwwLDAsMjAsOS44WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0xNSwxMS44aDYuNDZhNi45Miw2LjkyLDAsMCwxLC40NiwxLjJIMTVaIiBzdHlsZT0iZmlsbDojMzMzIi8+PHBhdGggZD0iTTIyLjExLDEzLjhIMTVWMTVoNy4yMUE3Ljg4LDcuODgsMCwwLDAsMjIuMTEsMTMuOFoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMTUsMTUuOGg3LjE2YTYuMDgsNi4wOCwwLDAsMS0uMjQsMS4ySDE1WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0yMS42NCwxNy44SDE1VjE5aDZBNy4yOSw3LjI5LDAsMCwwLDIxLjY0LDE3LjhaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/shadowColorIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNNy43MywxMEEyLjIzLDIuMjMsMCwwLDEsMTAsNy43M2gxMC4xQTIuMjMsMi4yMywwLDAsMSwyMi4yNywxMHYxMC4xYTIuMjMsMi4yMywwLDAsMS0yLjIyLDIuMjJIMTBhMi4yMywyLjIzLDAsMCwxLTIuMjItMi4yMlptMi4yMi0xYTEsMSwwLDAsMC0xLDF2MTAuMWExLDEsMCwwLDAsMSwxaDEwLjFhMSwxLDAsMCwwLDEtMVYxMGExLDEsMCwwLDAtMS0xWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0xOS45MywyMC4wNWwuMTItMTIuMzJBMi4yMywyLjIzLDAsMCwxLDIyLjI3LDEwdjEwLjFhMi4yMywyLjIzLDAsMCwxLTIuMjIsMi4yMkgxMGEyLjIzLDIuMjMsMCwwLDEtMi4yMi0yLjIyWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/shadowOffsetXIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTkuMTgsMTEuNzJhLjc3Ljc3LDAsMCwwLS41Ni0uMjUuNzguNzgsMCwwLDAtLjUuMTkuNzUuNzUsMCwwLDAtLjA2LDEuMDZsLjg5LDFIMTYuMTJhLjc1Ljc1LDAsMSwwLDAsMS41SDE5bC0uODksMWEuNzUuNzUsMCwwLDAsLjA2LDEuMDYuNzUuNzUsMCwwLDAsMS4wNi0uMDZsMi0yLjI1YS43Ni43NiwwLDAsMCwwLTFaIiBzdHlsZT0iZmlsbDojMzMzIi8+PHBhdGggZD0iTTIxLjM1LDguNDhhMi4yLDIuMiwwLDAsMC0yLjA2LTEuNDFIOS4yQTIuMjEsMi4yMSwwLDAsMCw3LDkuMjlWMTkuMzhhMi4yMSwyLjIxLDAsMCwwLDEuNjcsMi4xNCwyLjIsMi4yLDAsMCwwLDIuMDYsMS40MUgyMC44QTIuMjEsMi4yMSwwLDAsMCwyMywyMC43MVYxMC42MkEyLjIxLDIuMjEsMCwwLDAsMjEuMzUsOC40OFptLjU4LDcuMTZMMjAuMywxNy40N3YxLjkxYTEsMSwwLDAsMS0xLDFIOS4yYTEsMSwwLDAsMS0xLTFWOS4yOWExLDEsMCwwLDEsMS0xSDE5LjI5YTEsMSwwLDAsMSwxLDF2Mi4xOWwxLjYzLDEuODNBMS43NSwxLjc1LDAsMCwxLDIxLjkzLDE1LjY0WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/showThumbIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjAuMzMsMTguMDV2MGExLjQzLDEuNDMsMCwwLDAsMS4yMi4zOXYyLjlhMS44NSwxLjg1LDAsMCwxLTEuNzIsMS44NEgxMC4yOGExLjg1LDEuODUsMCwwLDEtMS44NC0xLjcydi0zYTEuNDIsMS40MiwwLDAsMCwxLjEyLS4zbC4xMS0uMXYzLjNhLjYyLjYyLDAsMCwwLC41My42MWg5LjUyYS42Mi42MiwwLDAsMCwuNjEtLjUzVjE4LjA1Wk05LjA4LDEyLjUxYS42MS42MSwwLDAsMSwuMDYuOGwtLjA2LjA3LTEsMWgzLjFhLjU4LjU4LDAsMCwxLC41NC42Mi41OS41OSwwLDAsMS0uNDcuNjFIOC4wOGwxLDFhLjYxLjYxLDAsMCwxLC4wNi44bC0uMDYuMDdhLjYyLjYyLDAsMCwxLS44LjA1bC0uMDctLjA1TDYuMjcsMTUuNTRhLjY1LjY1LDAsMCwxLDAtMS4wOGwxLjk0LTJBLjYyLjYyLDAsMCwxLDkuMDgsMTIuNTFabTExLjg0LDBhLjYxLjYxLDAsMCwxLC44LS4wNmwuMDcuMDYsMS45NCwxLjk0QS42My42MywwLDAsMSwyNCwxNWEuNjcuNjcsMCwwLDEtLjIyLjVsLS4wNywwLTEuOTQsMS45NC0uMDcuMDZhLjYyLjYyLDAsMCwxLS43MiwwbC0uMDgtLjA3LS4wNi0uMDdhLjYuNiwwLDAsMSwwLS43MmwuMDYtLjA4LDEtMUgxOC43NWEuNTkuNTksMCwwLDEtLjQ3LS42MS41OC41OCwwLDAsMSwuNDctLjYxaDMuMTdsLTEtMS0uMDYtLjA3QS42MS42MSwwLDAsMSwyMC45MiwxMi41MVpNMTkuNzIsNi44YTEuODUsMS44NSwwLDAsMSwxLjg0LDEuNzJ2M2ExLjQ0LDEuNDQsMCwwLDAtMS4xMi4zMWwtLjExLjFWOC42NEEuNjIuNjIsMCwwLDAsMTkuOCw4SDEwLjI4YS42Mi42MiwwLDAsMC0uNjEuNTN2My4zOGgwYTEuNDQsMS40NCwwLDAsMC0xLjIyLS40VjguNjRBMS44NSwxLjg1LDAsMCwxLDEwLjE2LDYuOGg5LjU2WiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/sizeIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTAsN2EzLDMsMCwwLDAtMywzdjMuNWEuNS41LDAsMCwwLDEsMFYxMGEyLDIsMCwwLDEsMi0yaDMuNWEuNS41LDAsMCwwLDAtMVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMTYuNSw3YS41LjUsMCwwLDAsMCwxSDIwYTIsMiwwLDAsMSwyLDJ2My41YS41LjUsMCwwLDAsMSwwVjEwYTMsMywwLDAsMC0zLTNaIiBzdHlsZT0iZmlsbDojMzMzIi8+PHBhdGggZD0iTTcuNSwxNmEuNS41LDAsMCwxLC41LjVWMjBhMiwyLDAsMCwwLDIsMmgzLjVhLjUuNSwwLDAsMSwwLDFIMTBhMywzLDAsMCwxLTMtM1YxNi41QS41LjUsMCwwLDEsNy41LDE2WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0yMywxNi41YS41LjUsMCwwLDAtMSwwVjIwYTIsMiwwLDAsMS0yLDJIMTYuNWEuNS41LDAsMCwwLDAsMUgyMGEzLDMsMCwwLDAsMy0zWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/sliderBackgroundImageIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTUuODEsMTEuNzdBMS44MiwxLjgyLDAsMSwwLDE3LjYzLDEwLDEuODEsMS44MSwwLDAsMCwxNS44MSwxMS43N1ptMS44Mi0uNjFhLjYxLjYxLDAsMSwxLS42MS42MUEuNjEuNjEsMCwwLDEsMTcuNjMsMTEuMTZaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjEuMDYsOS4zNEgxOC40M2EyLjU1LDIuNTUsMCwwLDEsMS40NSwxLjIxaDEuMThBMi40MywyLjQzLDAsMCwxLDIzLjQ5LDEzVjE3YTIuNDMsMi40MywwLDAsMS0yLjQzLDIuNDJIMjAuOWwtNC42My00LjUzLS4xLS4xYTEuODIsMS44MiwwLDAsMC0yLjQ0LjFMOS4xLDE5LjQ1SDguOTRBMi40MywyLjQzLDAsMCwxLDYuNTEsMTdWMTNhMi40MywyLjQzLDAsMCwxLDIuNDMtMi40Mmg2LjQ0YTIuNTQsMi41NCwwLDAsMSwxLjQ2LTEuMjFIOC45NEEzLjY0LDMuNjQsMCwwLDAsNS4zLDEzVjE3YTMuNjQsMy42NCwwLDAsMCwzLjY0LDMuNjNIMjEuMDZBMy42NCwzLjY0LDAsMCwwLDI0LjcsMTdWMTNBMy42NCwzLjY0LDAsMCwwLDIxLjA2LDkuMzRabS02LjQ4LDYuNDUuMDYtLjA2YS42MS42MSwwLDAsMSwuNzguMDZsMy43NSwzLjY2SDEwLjgzWiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/sliderValueIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTQuMTgsNy42NEEuNjEuNjEsMCwwLDAsMTMsNy40MWwtLjgyLDQuMzZIOC4zM2EuNjEuNjEsMCwwLDAsMCwxLjIxaDMuNmwtLjc3LDRINy41M2EuNjEuNjEsMCwxLDAsMCwxLjIxSDExbC0uNzksNC4xM2EuNjEuNjEsMCwwLDAsLjQ5LjcxLjYuNiwwLDAsMCwuNy0uNDhsLjgzLTQuMzZIMTYuNmwtLjc4LDQuMTNhLjYxLjYxLDAsMSwwLDEuMTkuMjNsLjgyLTQuMzZoMy44NGEuNjEuNjEsMCwwLDAsMC0xLjIxaC0zLjZsLjc3LTRoMy42NGEuNjEuNjEsMCwxLDAsMC0xLjIxSDE5LjA2bC43OC00LjEyYS42MS42MSwwLDAsMC0uNDktLjcxLjYuNiwwLDAsMC0uNy40OGwtLjgzLDQuMzVIMTMuNFptLTEsNS4zNGg0LjQybC0uNzYsNEgxMi40MVoiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/sliderValueMaximumIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTMuNzgsNy4yNGEuNjEuNjEsMCwwLDAtLjQ5LS43MS42LjYsMCwwLDAtLjcuNDhsLS44Myw0LjM1SDcuOTNhLjYyLjYyLDAsMCwwLS42LjYxLjYuNiwwLDAsMCwuNi42MWgzLjZsLS43Niw0SDcuMTJhLjYxLjYxLDAsMCwwLDAsMS4yMWgzLjQyTDkuNzYsMjJhLjYxLjYxLDAsMSwwLDEuMTkuMjJsLjgyLTQuMzVoMi4xNmE1LjE4LDUuMTgsMCwwLDEsLjQ1LTEuMjFIMTJsLjc3LTRoNC40MmwtLjMyLDEuNjlhNC44Niw0Ljg2LDAsMCwxLDEuMzEtLjRsLjI0LTEuMjloMy42NWEuNjEuNjEsMCwwLDAsMC0xLjIxSDE4LjY1bC43OC00LjEyQS42MS42MSwwLDAsMCwxOC4yNCw3bC0uODIsNC4zNUgxM1pNMTksMTQuNkE0LjQ0LDQuNDQsMCwxLDEsMTQuNiwxOSw0LjQ0LDQuNDQsMCwwLDEsMTksMTQuNlptLjEsMS42My0uMDcsMGgtLjEzbC0uMDcsMC0uMDYsMCwwLDAtMiwyLDAsLjA2YS4zOS4zOSwwLDAsMCwwLC40NmwwLC4wNS4wNiwwYS40My40MywwLDAsMCwuNDYsMGwuMDYsMCwxLjMyLTEuMzN2NC4zNWEuNC40LDAsMCwwLC4zMy4zMmguMTRhLjQuNCwwLDAsMCwuMzMtLjMyVjE3LjU5bDEuMzMsMS4zMy4wNiwwYS40LjQsMCwwLDAsLjU2LS41NmwtLjA1LS4wNkwxOS4yOSwxNi4zbDAsMC0uMDYsMFoiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/sliderValueMinimumIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTMuNzgsNy4yNGEuNjEuNjEsMCwwLDAtLjQ5LS43MS42LjYsMCwwLDAtLjcuNDhsLS44Myw0LjM1SDcuOTNhLjYyLjYyLDAsMCwwLS42LjYxLjYuNiwwLDAsMCwuNi42MWgzLjZsLS43Niw0SDcuMTJhLjYxLjYxLDAsMCwwLDAsMS4yMWgzLjQyTDkuNzYsMjJhLjYxLjYxLDAsMSwwLDEuMTkuMjJsLjgyLTQuMzVoMi4xNmE1LjE4LDUuMTgsMCwwLDEsLjQ1LTEuMjFIMTJsLjc3LTRoNC40MmwtLjMyLDEuNjlhNC44Niw0Ljg2LDAsMCwxLDEuMzEtLjRsLjI0LTEuMjloMy42NWEuNjEuNjEsMCwwLDAsMC0xLjIxSDE4LjY1bC43OC00LjEyQS42MS42MSwwLDAsMCwxOC4yNCw3bC0uODIsNC4zNUgxM1pNMTQuNiwxOUE0LjQ0LDQuNDQsMCwxLDEsMTksMjMuNDgsNC40NCw0LjQ0LDAsMCwxLDE0LjYsMTlabTQuNTksMi44LjA2LDAsMCwwLDIuMDUtMi4wNS4wNS0uMDZhLjQuNCwwLDAsMC0uNTYtLjU2bC0uMDYuMDUtMS4zMywxLjMzVjE2LjE0YS40LjQsMCwwLDAtLjMzLS4zM0gxOWEuNC40LDAsMCwwLS4zMy4zM3Y0LjM1bC0xLjMyLTEuMzMtLjA2LS4wNWEuNDMuNDMsMCwwLDAtLjQ2LDBsLS4wNi4wNSwwLC4wNWEuMzkuMzksMCwwLDAsMCwuNDZsMCwuMDYsMiwyLDAsMCwuMDYsMCwuMDcsMGguMTNsLjA3LDBaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/stackPanelSpacingIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTIxLjA1LDExLjQ1djIuMzJjMCwuMzYtLjI5LC42NS0uNjUsLjY1cy0uNjUtLjI5LS42NS0uNjV2LTIuMzJsLS4xOSwuMTljLS4yNSwuMjUtLjY2LC4yNS0uOTIsMC0uMjUtLjI1LS4yNS0uNjYsMC0uOTJsMS4zLTEuM2MuMDYtLjA2LC4xMy0uMTEsLjIxLS4xNCwuMDgtLjAzLC4xNi0uMDUsLjI1LS4wNXMuMTcsLjAyLC4yNSwuMDVjLjA4LC4wMywuMTUsLjA4LC4yMSwuMTRsMS4zLDEuM2MuMjUsLjI1LC4yNSwuNjYsMCwuOTItLjI1LC4yNS0uNjYsLjI1LS45MiwwbC0uMTktLjE5Wm0wLDQuOTJ2Mi4zMmwuMTktLjE5Yy4yNS0uMjUsLjY2LS4yNSwuOTIsMCwuMjUsLjI1LC4yNSwuNjYsMCwuOTJsLTEuMywxLjNjLS4yNSwuMjUtLjY2LC4yNS0uOTIsMGwtMS4zLTEuM2MtLjI1LS4yNS0uMjUtLjY2LDAtLjkyLC4yNS0uMjUsLjY2LS4yNSwuOTIsMGwuMTksLjE5di0yLjMyYzAtLjM2LC4yOS0uNjUsLjY1LS42NXMuNjUsLjI5LC42NSwuNjVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNC41NiwxNC4zMmgtNC4yOGMtMS40NSwwLTIuNjItMS4xOC0yLjYyLTIuNjJ2LTMuNTVjMC0xLjQ1LDEuMTgtMi42MiwyLjYyLTIuNjJoNC4yOGMxLjQ1LDAsMi42MiwxLjE4LDIuNjIsMi42MnYzLjU1YzAsMS40NS0xLjE4LDIuNjItMi42MiwyLjYyWm0tNC4yOC03LjU1Yy0uNzYsMC0xLjM4LC42Mi0xLjM4LDEuMzh2My41NWMwLC43NiwuNjIsMS4zOCwxLjM4LDEuMzhoNC4yOGMuNzYsMCwxLjM4LS42MiwxLjM4LTEuMzh2LTMuNTVjMC0uNzYtLjYyLTEuMzgtMS4zOC0xLjM4aC00LjI4WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMTQuNTYsMjQuNDhoLTQuMjhjLTEuNDUsMC0yLjYyLTEuMTgtMi42Mi0yLjYydi0zLjU1YzAtMS40NSwxLjE4LTIuNjIsMi42Mi0yLjYyaDQuMjhjMS40NSwwLDIuNjIsMS4xOCwyLjYyLDIuNjJ2My41NWMwLDEuNDUtMS4xOCwyLjYyLTIuNjIsMi42MlptLTQuMjgtNy41NWMtLjc2LDAtMS4zOCwuNjItMS4zOCwxLjM4djMuNTVjMCwuNzYsLjYyLDEuMzgsMS4zOCwxLjM4aDQuMjhjLjc2LDAsMS4zOC0uNjIsMS4zOC0xLjM4di0zLjU1YzAtLjc2LS42Mi0xLjM4LTEuMzgtMS4zOGgtNC4yOFoiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/stretchFillIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTEuNzcsMTIuOTNhLjYxLjYxLDAsMCwxLC4wNi44NmwtLjU0LjYxSDEzLjZhLjYuNiwwLDAsMSwwLDEuMkgxMS4yOWwuNTQuNjFhLjYxLjYxLDAsMCwxLS45Mi44TDkuNSwxNS40YS42MS42MSwwLDAsMSwwLS44TDEwLjkxLDEzQS42MS42MSwwLDAsMSwxMS43NywxMi45M1ptNi40Mi44NmEuNjEuNjEsMCwxLDEsLjkxLS44bDEuNDEsMS42MWEuNjEuNjEsMCwwLDEsMCwuOEwxOS4xLDE3YS42MS42MSwwLDEsMS0uOTEtLjhsLjUzLS42MUgxNi40MWEuNi42LDAsMCwxLDAtMS4yaDIuMzFaTTYuOTMsMTAuMzZBMS44MiwxLjgyLDAsMCwxLDguNzUsOC41NWgxMi41YTEuODEsMS44MSwwLDAsMSwxLjgxLDEuODF2OS4yOGExLjgxLDEuODEsMCwwLDEtMS44MSwxLjgxSDguNzVhMS44MiwxLjgyLDAsMCwxLTEuODItMS44MVptMS44Mi0uNmEuNi42LDAsMCwwLS42MS42djkuMjhhLjYuNiwwLDAsMCwuNjEuNmgxMi41YS42LjYsMCwwLDAsLjYtLjZWMTAuMzZhLjYuNiwwLDAsMC0uNi0uNloiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/strokeWeightIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNNy43MywxMEEyLjIzLDIuMjMsMCwwLDEsMTAsNy43M2gxMC4xQTIuMjMsMi4yMywwLDAsMSwyMi4yNywxMHYxMC4xYTIuMjMsMi4yMywwLDAsMS0yLjIyLDIuMjJIMTBhMi4yMywyLjIzLDAsMCwxLTIuMjItMi4yMlptMi4yMi0xYTEsMSwwLDAsMC0xLDF2MTAuMWExLDEsMCwwLDAsMSwxaDEwLjFhMSwxLDAsMCwwLDEtMVYxMGExLDEsMCwwLDAtMS0xWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/subtractGridElementDark.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTUsNi45NEE4LjA2LDguMDYsMCwxLDEsNi45NCwxNSw4LjA2LDguMDYsMCwwLDEsMTUsNi45NFptMCwxLjIxQTYuODUsNi44NSwwLDEsMCwyMS44NSwxNSw2Ljg0LDYuODQsMCwwLDAsMTUsOC4xNVptMy40Myw2LjI1YS42LjYsMCwxLDEsMCwxLjJIMTEuNTdhLjYuNiwwLDAsMSwwLTEuMloiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/textIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTE2LjU1LDExLjk2Yy0uMiwwLS4zOSwuMDgtLjUzLC4yMi0uMTQsLjE0LS4yMiwuMzMtLjIyLC41M3MuMDgsLjM5LC4yMiwuNTNjLjE0LC4xNCwuMzMsLjIyLC41MywuMjJoMS41NXY0Ljk5YzAsMS42OCwxLjM3LDMuMDQsMy4wNCwzLjA0aDEuMTVjLjQxLDAsLjc1LS4zMywuNzUtLjc1cy0uMzMtLjc1LS43NS0uNzVoLTEuMTVjLS44NSwwLTEuNTUtLjctMS41NS0xLjU1di00Ljk5aDIuN2MuMiwwLC4zOS0uMDgsLjUzLS4yMiwuMTQtLjE0LC4yMi0uMzMsLjIyLS41M3MtLjA4LS4zOS0uMjItLjUzYy0uMTQtLjE0LS4zMy0uMjItLjUzLS4yMmgtMi43di0yLjdjMC0uNDEtLjMzLS43NS0uNzUtLjc1cy0uNzUsLjMzLS43NSwuNzV2Mi43aC0xLjU1Wm0tOC44My0zLjQ0Yy0uNDEsMC0uNzUsLjMzLS43NSwuNzVzLjMzLC43NSwuNzUsLjc1aDIuN3YxMC43M2MwLC40MSwuMzMsLjc1LC43NSwuNzVzLjc1LS4zMywuNzUtLjc1VjEwLjAxaDIuN2MuNDEsMCwuNzUtLjMzLC43NS0uNzVzLS4zMy0uNzUtLjc1LS43NUg3LjcxWiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/textInputIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTE1LjY1LDEzLjQ1Yy4yLDAsLjM5LS4wOCwuNTMtLjIyLC4xNC0uMTQsLjIyLS4zMywuMjItLjUzcy0uMDgtLjM5LS4yMi0uNTNjLS4xNC0uMTQtLjMzLS4yMi0uNTMtLjIyaC0yLjd2LTIuN2MwLS40MS0uMzMtLjc1LS43NS0uNzVzLS43NSwuMzMtLjc1LC43NXYyLjdoLTEuNTVjLS4yLDAtLjM5LC4wOC0uNTMsLjIyLS4xNCwuMTQtLjIyLC4zMy0uMjIsLjUzcy4wOCwuMzksLjIyLC41M2MuMTQsLjE0LC4zMywuMjIsLjUzLC4yMmgxLjU1djQuOTljMCwxLjY4LDEuMzcsMy4wNCwzLjA0LDMuMDRoMS4xNWMuNDEsMCwuNzUtLjMzLC43NS0uNzVzLS4zMy0uNzUtLjc1LS43NWgtMS4xNWMtLjg1LDAtMS41NS0uNy0xLjU1LTEuNTV2LTQuOTloMi43WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjAuMjEsNC44MmMtLjM0LDAtLjYyLC4yOC0uNjIsLjYyVjI0LjU1YzAsLjM0LC4yOCwuNjIsLjYyLC42MnMuNjItLjI4LC42Mi0uNjJWNS40NWMwLS4zNC0uMjgtLjYyLS42Mi0uNjJaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/textPlaceholderIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTEyLjI3LDcuNDJINS4zOGMtLjQxLDAtLjc1LC4zMy0uNzUsLjc1cy4zMywuNzUsLjc1LC43NWgyLjd2MTAuNzNjMCwuNDEsLjMzLC43NSwuNzUsLjc1cy43NS0uMzMsLjc1LS43NVY4LjkxaDIuN2MuNDEsMCwuNzUtLjMzLC43NS0uNzVzLS4zMy0uNzUtLjc1LS43NVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE3LjI1LDEyLjM1aDIuN2MuMiwwLC4zOS0uMDgsLjUzLS4yMiwuMTQtLjE0LC4yMi0uMzMsLjIyLS41M3MtLjA4LS4zOS0uMjItLjUzYy0uMTQtLjE0LS4zMy0uMjItLjUzLS4yMmgtMi43di0yLjdjMC0uNDEtLjMzLS43NS0uNzUtLjc1cy0uNzUsLjMzLS43NSwuNzV2Mi43aC0xLjU1Yy0uMiwwLS4zOSwuMDgtLjUzLC4yMi0uMTQsLjE0LS4yMiwuMzMtLjIyLC41M3MuMDgsLjM5LC4yMiwuNTNjLjE0LC4xNCwuMzMsLjIyLC41MywuMjJoMS41NXY0Ljk5YzAsLjUsLjE0LC45NywuMzUsMS4zOSwuMjMtLjc1LC42Mi0xLjQzLDEuMTQtMnYtNC4zOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTIyLjIxLDIwLjEzaC0xLjA3di0xLjQ5YzAtLjM0LS4yOC0uNjItLjYyLS42MnMtLjYyLC4yOC0uNjIsLjYydjIuMTJjMCwuMzQsLjI4LC42MiwuNjIsLjYyaDEuNjljLjM0LDAsLjYyLS4yOCwuNjItLjYycy0uMjgtLjYyLS42Mi0uNjJaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yMS4wNCwxNS45M2MtMi4zOSwwLTQuMzMsMS45NC00LjMzLDQuMzNzMS45NCw0LjMzLDQuMzMsNC4zMyw0LjMzLTEuOTQsNC4zMy00LjMzLTEuOTQtNC4zMy00LjMzLTQuMzNabTAsNy40Yy0xLjcsMC0zLjA4LTEuMzgtMy4wOC0zLjA4czEuMzgtMy4wOCwzLjA4LTMuMDgsMy4wOCwxLjM4LDMuMDgsMy4wOC0xLjM4LDMuMDgtMy4wOCwzLjA4WiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/thumbCircleIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTUsOC4xM0E2Ljg3LDYuODcsMCwxLDAsMjEuODcsMTUsNi44Niw2Ljg2LDAsMCwwLDE1LDguMTNaTTYuOTEsMTVBOC4wOSw4LjA5LDAsMSwxLDE1LDIzLjA5LDguMDksOC4wOSwwLDAsMSw2LjkxLDE1WiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/thumbImageLinkIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTUsNi45MUE4LjA5LDguMDksMCwxLDAsMjMuMDksMTUsOC4wOSw4LjA5LDAsMCwwLDE1LDYuOTFabTAsMS4yMkE2Ljg3LDYuODcsMCwwLDEsMjAuNTksMTlsLTQuMzItNC4yMy0uMTEtLjA5YTEuOCwxLjgsMCwwLDAtMi40My4wOUw5LjQxLDE5QTYuODcsNi44NywwLDAsMSwxNSw4LjEzWk0xMC4yLDE5LjkxbDQuMzgtNC4yOS4wNywwYS41OC41OCwwLDAsMSwuNzcsMGw0LjM4LDQuMjlhNi44Niw2Ljg2LDAsMCwxLTkuNiwwWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE3LjYyLDEzLjQ0YTEuODEsMS44MSwwLDEsMC0xLjgyLTEuODFBMS44MSwxLjgxLDAsMCwwLDE3LjYyLDEzLjQ0Wm0wLTIuNDFhLjYxLjYxLDAsMSwxLS42MS42QS42LjYsMCwwLDEsMTcuNjIsMTFaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/toggleMixedIcon_30px.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTIwLDIwSDEwYy0yLjc2LDAtNS0yLjI0LTUtNSwwLTIuNzYsMi4yNC01LDUtNWgxMGMyLjc2LDAsNSwyLjI0LDUsNSwwLDIuNzYtMi4yNCw1LTUsNVpNMTAsMTEuNWMtMS45MywwLTMuNSwxLjU3LTMuNSwzLjVzMS41NywzLjUsMy41LDMuNWgxMGMxLjkzLDAsMy41LTEuNTcsMy41LTMuNXMtMS41Ny0zLjUtMy41LTMuNUgxMFoiLz48cmVjdCBjbGFzcz0iYiIgeD0iMTEuMDMiIHk9IjE0LjI1IiB3aWR0aD0iNy45NCIgaGVpZ2h0PSIxLjUiIHJ4PSIuNzUiIHJ5PSIuNzUiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/toggleOffIcon_30px.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTAuMjUsMTcuNWEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwxMC4yNSwxNy41WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0yMCwyMEgxMGE1LDUsMCwwLDEsMC0xMEgyMGE1LDUsMCwwLDEsMCwxMFpNMTAsMTEuNWEzLjUsMy41LDAsMCwwLDAsN0gyMGEzLjUsMy41LDAsMCwwLDAtN1oiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/toggleOffIcon_40px.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTE1LjI1LDIyLjVjLTEuMzgsMC0yLjUtMS4xMi0yLjUtMi41LDAtMS4zOCwxLjEyLTIuNSwyLjUtMi41czIuNSwxLjEyLDIuNSwyLjVjMCwxLjM4LTEuMTIsMi41LTIuNSwyLjVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNSwyNUgxNWMtMi43NiwwLTUtMi4yNC01LTUsMC0yLjc2LDIuMjQtNSw1LTVoMTBjMi43NiwwLDUsMi4yNCw1LDUsMCwyLjc2LTIuMjQsNS01LDVabS0xMC04LjVjLTEuOTMsMC0zLjUsMS41Ny0zLjUsMy41czEuNTcsMy41LDMuNSwzLjVoMTBjMS45MywwLDMuNS0xLjU3LDMuNS0zLjVzLTEuNTctMy41LTMuNS0zLjVIMTVaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/toggleOnIcon_30px.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTkuNzUsMTcuNWEyLjUsMi41LDAsMSwwLTIuNS0yLjVBMi41LDIuNSwwLDAsMCwxOS43NSwxNy41WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik01LDE1YTUsNSwwLDAsMSw1LTVIMjBhNSw1LDAsMCwxLDAsMTBIMTBBNSw1LDAsMCwxLDUsMTVabTUtMy41YTMuNSwzLjUsMCwwLDAsMCw3SDIwYTMuNSwzLjUsMCwwLDAsMC03WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/toggleOnIcon_40px.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTI0Ljc1LDIyLjVjMS4zOCwwLDIuNS0xLjEyLDIuNS0yLjVzLTEuMTItMi41LTIuNS0yLjUtMi41LDEuMTItMi41LDIuNSwxLjEyLDIuNSwyLjUsMi41WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMTAsMjBjMC0yLjc2LDIuMjQtNSw1LTVoMTBjMi43NiwwLDUsMi4yNCw1LDVzLTIuMjQsNS01LDVIMTVjLTIuNzYsMC01LTIuMjQtNS01Wm01LTMuNWMtMS45MywwLTMuNSwxLjU3LTMuNSwzLjVzMS41NywzLjUsMy41LDMuNWgxMGMxLjkzLDAsMy41LTEuNTcsMy41LTMuNXMtMS41Ny0zLjUtMy41LTMuNUgxNVoiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/vAlignBottomIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTAuNzcsMTYuMjFoOC40NmEuNi42LDAsMCwxLC4wOCwxLjJIMTAuNzdhLjYxLjYxLDAsMCwxLS4wOC0xLjIxWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0xOS4yMywxOC42M0gxMC42OWEuNi42LDAsMCwwLC4wOCwxLjJoOC41NGEuNi42LDAsMCwwLS4wOC0xLjJaIiBzdHlsZT0iZmlsbDojMzMzIi8+PHBhdGggZD0iTTIyLjI1LDEwQTIuMjEsMi4yMSwwLDAsMCwyMCw3Ljc1SDEwQTIuMjEsMi4yMSwwLDAsMCw3Ljc1LDEwVjIwQTIuMjEsMi4yMSwwLDAsMCwxMCwyMi4yNUgyMEEyLjIxLDIuMjEsMCwwLDAsMjIuMjUsMjBaTTEwLDlIMjBhMSwxLDAsMCwxLDEsMVYyMGExLDEsMCwwLDEtMSwxSDEwYTEsMSwwLDAsMS0xLTFWMTBBMSwxLDAsMCwxLDEwLDlaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/vAlignCenterIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTEsMTMuMzloOGEuNzIuNzIsMCwwLDEsLjguNjEuNjkuNjksMCwwLDEtLjY5LjU5SDExYy0uNDQsMC0uOC0uMjctLjgtLjZhLjY5LjY5LDAsMCwxLC42OS0uNloiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMTksMTUuOEgxMC44N2EuNjkuNjksMCwwLDAtLjY5LjZjMCwuMzMuMzYuNi44LjZoOC4xNWEuNjkuNjksMCwwLDAsLjY5LS41OUEuNzIuNzIsMCwwLDAsMTksMTUuOFoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMjIuMjMsMTBBMi4yMSwyLjIxLDAsMCwwLDIwLDcuNzdIMTBBMi4yMSwyLjIxLDAsMCwwLDcuNzcsMTBWMjBBMi4yMSwyLjIxLDAsMCwwLDEwLDIyLjIzSDIwQTIuMjEsMi4yMSwwLDAsMCwyMi4yMywyMFpNMTAsOUgyMGExLDEsMCwwLDEsMSwxVjIwYTEsMSwwLDAsMS0xLDFIMTBhMSwxLDAsMCwxLTEtMVYxMEExLDEsMCwwLDEsMTAsOVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/vAlignTopIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMjIuMjksOS45NGEyLjIzLDIuMjMsMCwwLDAtMi4yMy0yLjIzSDkuOTRBMi4yMywyLjIzLDAsMCwwLDcuNzEsOS45NFYyMC4wNmEyLjIzLDIuMjMsMCwwLDAsMi4yMywyLjIzSDIwLjA2YTIuMjMsMi4yMywwLDAsMCwyLjIzLTIuMjNabS0xMi4zNS0xSDIwLjA2YTEsMSwwLDAsMSwxLDFWMjAuMDZhMSwxLDAsMCwxLTEsMUg5Ljk0YTEsMSwwLDAsMS0xLTFWOS45NEExLDEsMCwwLDEsOS45NCw4LjkyWm0uODEsMi40M2g4LjVhLjYxLjYxLDAsMCwxLC42MS42MS42LjYsMCwwLDEtLjUyLjZIMTAuNzVhLjYxLjYxLDAsMCwxLS4wOS0xLjIxWm04LjUsMi40M0gxMC42NkEuNjEuNjEsMCwwLDAsMTAuNzUsMTVoOC41OWEuNi42LDAsMCwwLC41Mi0uNkEuNjEuNjEsMCwwLDAsMTkuMjUsMTMuNzhaIiBzdHlsZT0iZmlsbDojMzMzIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/valueBarImageLinkIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTcuNjIsMTAuNTRBMS44MSwxLjgxLDAsMSwwLDE1LjgsOC43MywxLjgxLDEuODEsMCwwLDAsMTcuNjIsMTAuNTRabTAtMi40MWEuNi42LDAsMCwxLC42LjYuNjEuNjEsMCwxLDEtMS4yMSwwQS42LjYsMCwwLDEsMTcuNjIsOC4xM1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMS43NSwxOC41OEg4LjI1YTIuMjUsMi4yNSwwLDAsMCwwLDQuNWgxMy41YTIuMjUsMi4yNSwwLDAsMCwwLTQuNVptMCwzSDguMjVhLjc1Ljc1LDAsMCwxLDAtMS41aDEzLjVhLjc1Ljc1LDAsMCwxLDAsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTcuMjIsMTcuMzhIMjIuNTVhLjUuNSwwLDAsMCwuNDQtLjUuNTEuNTEsMCwwLDAtLjUxLS41SDIwLjg3bC00LjYtNC41MS0uMTEtLjA5YTEuOCwxLjgsMCwwLDAtMi40My4wOWwtNC42LDQuNTFoLTJhLjUxLjUxLDAsMCwwLS40My41QS41LjUsMCwwLDAsNy4yMiwxNy4zOFptNy4zNi00LjY2LjA3LS4wNmEuNTkuNTksMCwwLDEsLjc3LjA2bDMuNzMsMy42NWgtOC4zWiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/valueChangedGridDark.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTQuMjEsNmEuNjIuNjIsMCwwLDAtLjg2LDAsLjYyLjYyLDAsMCwwLDAsLjg3bDEuNCwxLjRhNy45MSw3LjkxLDAsMSwwLDguMTcsNy45MXYwYS41OC41OCwwLDAsMC0uNTktLjU2aDBhLjU5LjU5LDAsMCwwLS41OC42MSw2LjcsNi43LDAsMSwxLTctNi43bC0xLjM5LDEuNGEuNi42LDAsMCwwLDAsLjg2LjYyLjYyLDAsMCwwLC44NiwwbDIuNDQtMi40NGEuNi42LDAsMCwwLDAtLjg2Wm00Ljg3LDcuMzFhLjYuNiwwLDAsMSwwLC44NmwtMy42NSwzLjY2YS42Mi42MiwwLDAsMS0uODYsMEwxMi43NCwxNmEuNjEuNjEsMCwwLDEsLjg2LS44NkwxNSwxNi41N2wzLjIyLTMuMjJBLjYuNiwwLDAsMSwxOS4wOCwxMy4zNVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/verticalMarginIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMjEuNjMsOWEuNi42LDAsMCwwLDAtMS4ySDguMzdhLjYuNiwwLDAsMCwwLDEuMloiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNMjEuNjMsMjIuMjNhLjYuNiwwLDAsMCwwLTEuMkg4LjM3YS42LjYsMCwwLDAsMCwxLjJaIiBzdHlsZT0iZmlsbDojMzMzIi8+PHBhdGggZD0iTTEwLjc4LDExLjc5YTEuNDEsMS40MSwwLDAsMC0xLjQxLDEuNHYzLjYyYTEuNDEsMS40MSwwLDAsMCwxLjQxLDEuNGg4LjQ0YTEuNDEsMS40MSwwLDAsMCwxLjQxLTEuNFYxMy4xOWExLjQxLDEuNDEsMCwwLDAtMS40MS0xLjRabS0uMiwxLjRhLjIuMiwwLDAsMSwuMi0uMmg4LjQ0YS4yLjIsMCwwLDEsLjIuMnYzLjYyYS4yLjIsMCwwLDEtLjIuMkgxMC43OGEuMi4yLDAsMCwxLS4yLS4yWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/verticalSliderIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTguMDgsNi43OWExLjg1LDEuODUsMCwwLDEsMS44NSwxLjg1VjIxLjM2YTEuODUsMS44NSwwLDAsMS0xLjg1LDEuODVIMTEuOTJhMS44NSwxLjg1LDAsMCwxLTEuODUtMS44NVY4LjY0YTEuODUsMS44NSwwLDAsMSwxLjg1LTEuODVabTAsMS4yM0gxMS45MmEuNjEuNjEsMCwwLDAtLjYxLjYyVjIxLjM2YS42MS42MSwwLDAsMCwuNjEuNjJoNi4xNmEuNjEuNjEsMCwwLDAsLjYxLS42MlY4LjY0QS42MS42MSwwLDAsMCwxOC4wOCw4Wm0tLjgsOC4xOGEuNjIuNjIsMCwwLDEsLjA3LjhsLS4wNi4wN0wxNS40NCwxOWEuNjIuNjIsMCwwLDEtLjgxLjA2TDE0LjU2LDE5bC0xLjg1LTEuODlhLjYxLjYxLDAsMCwxLC44MS0uOTJsLjA3LjA2TDE1LDE3LjY1bDEuNDEtMS40NEEuNjIuNjIsMCwwLDEsMTcuMjgsMTYuMlptLTEuODQtNS4xMkwxNy4yOSwxM2EuNjQuNjQsMCwwLDEsMCwuODguNjMuNjMsMCwwLDEtLjg3LDBMMTUsMTIuMzlsLTEuNDEsMS40NGEuNjIuNjIsMCwxLDEtLjg4LS44N2wxLjg1LTEuODhBLjYxLjYxLDAsMCwxLDE1LjQ0LDExLjA4WiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/widthIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTIxLjU2LDEwLjQ5YzAtMS4wMi0uODMtMS44NC0xLjg0LTEuODRIMTAuMjljLTEuMDIsMC0xLjg0LC44My0xLjg0LDEuODR2My4yOGMwLC4zNCwuMjgsLjYxLC42MSwuNjFzLjYxLS4yOCwuNjEtLjYxdi0zLjI4YzAtLjM0LC4yOC0uNjEsLjYxLS42MWg5LjQzYy4zNCwwLC42MSwuMjgsLjYxLC42MXYzLjI4YzAsLjM0LC4yOCwuNjEsLjYxLC42MXMuNjEtLjI4LC42MS0uNjF2LTMuMjhabS0yLjI4LDUuNzJjLjIyLS4yMiwuNTYtLjI0LC44LS4wNmwuMDcsLjA2LDEuOTQsMS45NGMuMTcsLjEsLjI5LC4zMSwuMjksLjU0LDAsLjIxLS4wOSwuMzktLjIzLC41bC0uMDYsLjA0LTEuOTQsMS45NC0uMDcsLjA2Yy0uMjEsLjE2LS41MSwuMTYtLjcyLDBsLS4wOC0uMDctLjA2LS4wN2MtLjE2LS4yMS0uMTYtLjUxLDAtLjcybC4wNy0uMDgsMS0xaC0zLjE4Yy0uMjYtLjA1LS40Ni0uMy0uNDYtLjYxcy4yLS41NywuNDctLjYxaDMuMThsLTEtMS4wMS0uMDYtLjA3Yy0uMTgtLjI0LS4xNi0uNTgsLjA2LS44Wm0tOC41NiwwYy4yMiwuMjIsLjI0LC41NiwuMDYsLjhsLS4wNiwuMDctMSwxaDMuMWMuMywwLC41NCwuMjgsLjU0LC42MSwwLC4zMS0uMiwuNTctLjQ2LC42MWgtMy4xOGwxLDEuMDFjLjIyLC4yMiwuMjQsLjU2LC4wNiwuOGwtLjA2LC4wN2MtLjIyLC4yMi0uNTYsLjI0LS44LC4wNmwtLjA3LS4wNi0xLjk0LTEuOTRjLS4xNy0uMS0uMjktLjMxLS4yOS0uNTRzLjEyLS40NCwuMjktLjU0bDEuOTQtMS45NGMuMjQtLjI0LC42My0uMjQsLjg3LDBaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/wordWrapIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNNy4xMyw4LjM0YS42MS42MSwwLDEsMCwwLDEuMjFIMjIuMDZhLjYxLjYxLDAsMSwwLDAtMS4yMVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNNy4xMywxMy41OWEuNjEuNjEsMCwxLDAsMCwxLjIxSDIwLjI1YTIsMiwwLDAsMSwwLDRIMTYuNjZsLjU4LS41OWEuNi42LDAsMCwwLS44NS0uODVMMTQuNzcsMTlhLjYyLjYyLDAsMCwwLDAsLjg2bDEuNjIsMS42MWEuNi42LDAsMCwwLC44NS0uODVsLS41OC0uNThoMy41OWEzLjIzLDMuMjMsMCwwLDAsMC02LjQ2WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik02LjUyLDE5LjQ0YS42LjYsMCwwLDEsLjYxLS42aDUuMjVhLjYxLjYxLDAsMCwxLDAsMS4yMUg3LjEzQS42MS42MSwwLDAsMSw2LjUyLDE5LjQ0WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js":(l,c,u)=>{u.r(c),u.d(c,{CheckBoxLineComponent:()=>T});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),_=u("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),d=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),h=u("../../../dev/sharedUiComponents/dist/imgs/copy.svg"),x=u("../../../dev/sharedUiComponents/dist/imgs/toggleOnIcon_40px.svg"),A=u("../../../dev/sharedUiComponents/dist/imgs/toggleOffIcon_40px.svg"),S=u("../../../dev/sharedUiComponents/dist/imgs/toggleOnIcon_30px.svg"),E=u("../../../dev/sharedUiComponents/dist/imgs/toggleMixedIcon_30px.svg"),b=u("../../../dev/sharedUiComponents/dist/imgs/toggleOffIcon_30px.svg");const M={size30:{on:S,mixed:E,off:b},size40:{on:x,mixed:"",off:A}};class T extends p.Component{constructor(R){super(R),this._localChange=!1,this.props.isSelected!==void 0?this.state={isSelected:typeof this.props.isSelected=="boolean"?this.props.isSelected:this.props.isSelected(),isConflict:!1}:this.state={isSelected:this.props.target[this.props.propertyName]===!0,isConflict:this.props.target[this.props.propertyName]===d.conflictingValuesPlaceholder},this.props.disabled&&(this.state={...this.state,isDisabled:this.props.disabled})}shouldComponentUpdate(R,I){let N;return R.isSelected!==void 0?N=typeof R.isSelected=="boolean"?R.isSelected:R.isSelected():(N=R.target[R.propertyName]===!0,R.target[R.propertyName]===d.conflictingValuesPlaceholder&&(I.isConflict=!0)),N!==I.isSelected||this._localChange?(I.isSelected=N,this._localChange=!1,!0):R.disabled!==I.isDisabled?!0:R.label!==this.props.label||R.target!==this.props.target||I.isConflict!==this.state.isConflict}onChange(){this._localChange=!0,this.props.onSelect?this.props.onSelect(!this.state.isSelected):(this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:!this.state.isSelected,initialValue:this.state.isSelected}),this.props.target&&this.props.propertyName&&(this.props.target[this.props.propertyName]=!this.state.isSelected)),this.props.onValueChanged&&this.props.onValueChanged(),this.setState({isSelected:!this.state.isSelected,isConflict:!1})}onCopyClick(){if(this.props&&this.props.target){const{className:R,babylonNamespace:I}=(0,m.getClassNameWithNamespace)(this.props.target),N="globalThis.debugNode",w=this.props.propertyName,D=this.props.target[this.props.propertyName],k=N+"."+w+" = "+D+";// (debugNode as "+I+R+")";(0,m.copyCommandToClipboard)(k)}else(0,m.copyCommandToClipboard)("undefined")}render(){const R=this.props.large?M.size40:M.size30,I=this.state.isConflict?R.mixed:this.state.isSelected?R.on:R.off;return(0,f.jsxs)("div",{className:"checkBoxLine",children:[this.props.icon&&(0,f.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),this.props.label&&(0,f.jsx)("div",{className:"label",title:this.props.iconLabel,children:this.props.label}),this.props.faIcons&&(0,f.jsx)(_.FontAwesomeIcon,{className:`cbx ${this.props.disabled?"disabled":""}`,icon:this.state.isSelected?this.props.faIcons.enabled:this.props.faIcons.disabled,onClick:()=>!this.props.disabled&&this.onChange()}),!this.props.faIcons&&(0,f.jsx)("div",{className:"checkBox",children:(0,f.jsxs)("label",{className:`container lbl${this.props.disabled?" disabled":""} ${this.state.isSelected?"checked":""}`,children:[(0,f.jsx)("input",{type:"checkbox",className:`cbx hidden ${this.state.isConflict?"conflict":""}`,checked:this.state.isSelected,onChange:()=>this.onChange(),disabled:!!this.props.disabled}),(0,f.jsx)("img",{className:"icon",src:I,alt:this.props.label})]})}),(0,f.jsx)("div",{className:"copy hoverIcon",onClick:()=>this.onCopyClick(),title:"Copy to clipboard",children:(0,f.jsx)("img",{src:h,alt:"Copy"})})]})}}},"../../../dev/sharedUiComponents/dist/lines/colorLineComponent.js":(l,c,u)=>{u.r(c),u.d(c,{ColorLine:()=>M});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("core/Misc/observable"),_=u("../../../dev/sharedUiComponents/dist/lines/numericInputComponent.js"),d=u("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),h=u("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),x=u("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),A=u("../../../dev/sharedUiComponents/dist/lines/colorPickerComponent.js"),S=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),E=u("../../../dev/sharedUiComponents/dist/imgs/copy.svg");const b=new m.Color4(0,0,0,0);class M extends p.Component{constructor(O){super(O),this.state={isExpanded:!1,color:this.getValue()};const R=this.props.target;R._isLinearColor=O.isLinear}shouldComponentUpdate(O,R){const I=R.color,N=this.getValue(O);return I!==this.state.color?(R.color=I,!0):N!==this.state.color?(R.color=N,!0):R.isExpanded!==this.state.isExpanded}getValue(O=this.props){const I=O.target[O.propertyName];return I?typeof I=="string"?I===S.conflictingValuesPlaceholder?b:this._convertToColor(I):O.isLinear?I.toGammaSpace():I.clone():b}setColorFromString(O){const R=this._convertToColor(O);this.setColor(R)}setColor(O){if(O.equals(this.state.color))return;this.setState({color:O.clone()}),this.props.isLinear&&O.toLinearSpaceToRef(O);const R=this.props.disableAlpha?this._toColor3(O):O,I=this.props.target,N=I[this.props.propertyName],w=typeof I[this.props.propertyName]=="string"?R.toHexString():R;I[this.props.propertyName]=w,this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:I,property:this.props.propertyName,value:w,initialValue:N}),this.props.onChange&&this.props.onChange()}switchExpandState(){this.setState({isExpanded:!this.state.isExpanded})}updateStateR(O){this.setColor(new m.Color4(O,this.state.color.g,this.state.color.b,this.state.color.a))}updateStateG(O){this.setColor(new m.Color4(this.state.color.r,O,this.state.color.b,this.state.color.a))}updateStateB(O){this.setColor(new m.Color4(this.state.color.r,this.state.color.g,O,this.state.color.a))}updateStateA(O){this.props.disableAlpha||this.setColor(new m.Color4(this.state.color.r,this.state.color.g,this.state.color.b,O))}_convertToColor(O){if(O===""||O==="transparent")return b;if(O.substring(0,1)!=="#"||O.length!==7&&O.length!==9){const R=document.createElement("div");R.style.color=O,document.body.append(R);const I=window.getComputedStyle(R).color;document.body.removeChild(R);const N=I.substring(4,I.length-1).replace(/ /g,"").split(","),w=N.length>3?parseInt(N[3])/255:1;return new m.Color4(parseInt(N[0])/255,parseInt(N[1])/255,parseInt(N[2])/255,w)}if(this.props.disableAlpha){const R=m.Color3.FromHexString(O);return new m.Color4(R.r,R.g,R.b,1)}return m.Color4.FromHexString(O)}_toColor3(O){return new m.Color3(O.r,O.g,O.b)}onCopyClick(){if(this.props&&this.props.target){const{className:O,babylonNamespace:R}=(0,x.getClassNameWithNamespace)(this.props.target),I="globalThis.debugNode",N=this.props.propertyName,w=this.props.target[this.props.propertyName],D=this.state.color.toHexString();let k;w.a?k="new "+R+"Color4("+w.r+", "+w.g+", "+w.b+", "+w.a+")":k="new "+R+"Color3("+w.r+", "+w.g+", "+w.b+")",k+=";// (HEX : "+D;const Y=I+"."+N+" = "+k+" , debugNode as "+R+O+")";(0,x.copyCommandToClipboard)(Y)}else(0,x.copyCommandToClipboard)("undefined")}render(){const O=this.state.isExpanded?(0,f.jsx)(d.FontAwesomeIcon,{icon:h.faMinus}):(0,f.jsx)(d.FontAwesomeIcon,{icon:h.faPlus});return(0,f.jsxs)("div",{className:"color3Line",children:[(0,f.jsxs)("div",{className:"firstLine",children:[this.props.icon&&(0,f.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,f.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),(0,f.jsx)("div",{className:"color3",children:(0,f.jsx)(A.ColorPickerLine,{lockObject:this.props.lockObject,linearHint:this.props.isLinear,value:this.props.disableAlpha?this._toColor3(this.state.color):this.state.color,onColorChanged:R=>{this.setColorFromString(R)}})}),(0,f.jsx)("div",{className:"expand hoverIcon",onClick:()=>this.switchExpandState(),title:"Expand",children:O}),(0,f.jsx)("div",{className:"copy hoverIcon",onClick:()=>this.onCopyClick(),title:"Copy to clipboard",children:(0,f.jsx)("img",{src:E,alt:"Copy"})})]}),this.state.isExpanded&&(0,f.jsxs)("div",{className:"secondLine",children:[(0,f.jsx)(_.NumericInput,{lockObject:this.props.lockObject,label:"r",labelTooltip:"Red",value:this.state.color.r,step:.1,onChange:R=>this.updateStateR(R)}),(0,f.jsx)(_.NumericInput,{lockObject:this.props.lockObject,label:"g",labelTooltip:"Green",value:this.state.color.g,step:.1,onChange:R=>this.updateStateG(R)}),(0,f.jsx)(_.NumericInput,{lockObject:this.props.lockObject,label:"b",labelTooltip:"Blue",value:this.state.color.b,step:.1,onChange:R=>this.updateStateB(R)}),this.props.disableAlpha||(0,f.jsx)(_.NumericInput,{lockObject:this.props.lockObject,label:"a",labelTooltip:"Alpha",value:this.state.color.a,step:.1,onChange:R=>this.updateStateA(R)})]})]})}}},"../../../dev/sharedUiComponents/dist/lines/colorPickerComponent.js":(l,c,u)=>{u.r(c),u.d(c,{ColorPickerLine:()=>_});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.js");class _ extends p.Component{constructor(h){super(h),this.state={pickerEnabled:!1,color:this.props.value,hex:this.getHexString(h)},this._floatRef=p.createRef(),this._floatHostRef=p.createRef()}syncPositions(){const h=this._floatRef.current,x=this._floatHostRef.current;if(!h||!x)return;let A=x.getBoundingClientRect().top;const S=h.getBoundingClientRect().height;A+S+10>window.innerHeight&&(A=window.innerHeight-S-10),h.style.top=A+"px",this.props.shouldPopRight?h.style.left=x.getBoundingClientRect().left+"px":h.style.left=x.getBoundingClientRect().left-h.getBoundingClientRect().width+"px"}shouldComponentUpdate(h,x){const A=this.getHexString(h)!==this.getHexString();return A&&(x.color=h.value,x.hex=this.getHexString(h)),A||x.hex!==this.state.hex||x.pickerEnabled!==this.state.pickerEnabled}getHexString(h=this.props){return h.value.toHexString()}componentDidUpdate(){this.syncPositions()}componentDidMount(){this.syncPositions()}render(){return(0,f.jsxs)("div",{className:"color-picker",children:[this.props.icon&&(0,f.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,f.jsx)("div",{className:"color-rect-background",ref:this._floatHostRef,onClick:()=>this.setState({pickerEnabled:!0}),children:(0,f.jsx)("div",{className:"color-rect",style:{background:this.state.hex}})}),this.state.pickerEnabled&&(0,f.jsx)(f.Fragment,{children:(0,f.jsx)("div",{className:"color-picker-cover",onClick:h=>{var x,A;h.target===((A=(x=this._floatRef.current)==null?void 0:x.ownerDocument)==null?void 0:A.querySelector(".color-picker-cover"))&&this.setState({pickerEnabled:!1})},children:(0,f.jsx)("div",{className:"color-picker-float",ref:this._floatRef,children:(0,f.jsx)(m.ColorPicker,{lockObject:this.props.lockObject||{},color:this.state.color,linearhint:this.props.linearHint,onColorChanged:h=>{const x=h.toHexString();this.setState({hex:x,color:h}),this.props.onColorChanged(x)}})})})})]})}}},"../../../dev/sharedUiComponents/dist/lines/fileButtonLineComponent.js":(l,c,u)=>{u.r(c),u.d(c,{FileButtonLine:()=>m});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js");class m extends p.Component{constructor(d){super(d),this._id=m._IDGenerator++,this._uploadInputRef=p.createRef()}onChange(d){const h=d.target.files;h&&h.length&&this.props.onClick(h[0]),d.target.value=""}render(){return(0,f.jsxs)("div",{className:"buttonLine",children:[this.props.icon&&(0,f.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,f.jsx)("label",{htmlFor:"file-upload"+this._id,className:"file-upload",children:this.props.label}),(0,f.jsx)("input",{ref:this._uploadInputRef,id:"file-upload"+this._id,type:"file",accept:this.props.accept,onChange:d=>this.onChange(d)})]})}}m._IDGenerator=0},"../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js":(l,c,u)=>{u.r(c),u.d(c,{FloatLineComponent:()=>S});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),_=u("core/Misc/observable"),d=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),h=u("../../../dev/sharedUiComponents/dist/lines/inputArrowsComponent.js"),x=u("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),A=u("../../../dev/sharedUiComponents/dist/imgs/copy.svg");class S extends p.Component{constructor(b){super(b),this._localChange=!1;const M=this.props.target[this.props.propertyName];this.state={value:this.getValueString(M,this.props),dragging:!1},this._store=M}componentWillUnmount(){this.unlock()}getValueString(b,M){return b?b===d.conflictingValuesPlaceholder?d.conflictingValuesPlaceholder:M.isInteger?b.toFixed(0):b.toFixed(M.digits||4):"0"}shouldComponentUpdate(b,M){if(this._localChange)return this._localChange=!1,!0;const T=b.target[b.propertyName],O=this.getValueString(T,b);return O!==M.value?(M.value=O,!0):M.dragging!=this.state.dragging||b.unit!==this.props.unit||b.isInteger!==this.props.isInteger}raiseOnPropertyChanged(b,M){this.props.onChange&&this.props.onChange(b),this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:b,initialValue:M})}updateValue(b){if(/[^0-9.-]/g.test(b))return;let M;this.props.isInteger?M=parseInt(b):M=parseFloat(b),isNaN(M)?this.props.defaultValue!=null&&(M=this.props.defaultValue):(this.props.min!==void 0&&M<this.props.min&&(M=this.props.min,b=M.toString()),this.props.max!==void 0&&M>this.props.max&&(M=this.props.max,b=M.toString())),this._localChange=!0,this.setState({value:b}),!isNaN(M)&&(this.props.target[this.props.propertyName]=M,this.raiseOnPropertyChanged(M,this._store),this._store=M)}lock(){this.props.lockObject&&(this.props.lockObject.lock=!0)}unlock(){this.props.lockObject&&(this.props.lockObject.lock=!1)}incrementValue(b,M=!0){M&&this.props.step&&(b*=parseFloat(this.props.step));let T=parseFloat(this.state.value);isNaN(T)&&(T=0),this.updateValue((T+b).toFixed(2))}onKeyDown(b){this.lock();const M=parseFloat(this.props.step||this.props.isInteger?"1":"0.01"),T=O=>{b.shiftKey&&(O*=10,(b.ctrlKey||b.metaKey)&&(O*=10)),this.incrementValue(O*M,!1),b.preventDefault()};b.key==="ArrowUp"?T(1):b.key==="ArrowDown"&&T(-1),b.key==="Enter"&&this.props.onEnter&&this.props.onEnter(this._store)}onCopyClick(){if(this.props&&this.props.target){const{className:b,babylonNamespace:M}=(0,x.getClassNameWithNamespace)(this.props.target),T="globalThis.debugNode",O=this.props.propertyName,R=this.props.target[this.props.propertyName],I=T+"."+O+" = "+R+";// (debugNode as "+M+b+")";(0,x.copyCommandToClipboard)(I)}else(0,x.copyCommandToClipboard)("undefined")}render(){let b;this.props.isInteger?b=parseInt(this.state.value):b=parseFloat(this.state.value);let M=this.props.smallUI?"short":"value";this.state.dragging&&(M+=" dragging"),this.props.arrows&&(M+=" hasArrows");const T=this.state.value===d.conflictingValuesPlaceholder?"":this.state.value,O=this.state.value===d.conflictingValuesPlaceholder?d.conflictingValuesPlaceholder:"";return(0,f.jsxs)(f.Fragment,{children:[!this.props.useEuler&&(0,f.jsxs)("div",{className:this.props.additionalClass?this.props.additionalClass+" floatLine":"floatLine",children:[this.props.icon&&(0,f.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(!this.props.icon||this.props.label!="")&&(0,f.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),(0,f.jsxs)("div",{className:M,children:[(0,f.jsx)("input",{type:"number",step:this.props.step||this.props.isInteger?"1":"0.01",className:"numeric-input",onKeyDown:R=>this.onKeyDown(R),value:T,onBlur:()=>{this.unlock(),this.props.onEnter&&this.props.onEnter(this._store)},placeholder:O,onFocus:()=>this.lock(),onChange:R=>this.updateValue(R.target.value),disabled:this.props.disabled}),this.props.arrows&&(0,f.jsx)(h.InputArrowsComponent,{incrementValue:R=>this.incrementValue(R),setDragging:R=>{const I=this.state.dragging;!I&&R&&this.props.onDragStart?this.props.onDragStart(b):I&&!R&&this.props.onDragStop&&this.props.onDragStop(b),this.setState({dragging:R})}})]}),this.props.unit,(0,f.jsx)("div",{className:"copy hoverIcon",onClick:()=>this.onCopyClick(),title:"Copy to clipboard",children:(0,f.jsx)("img",{src:A,alt:"Copy"})})]}),this.props.useEuler&&(0,f.jsx)(m.SliderLineComponent,{lockObject:this.props.lockObject,label:this.props.label,minimum:0,maximum:360,step:.1,directValue:_.Tools.ToDegrees(b),onChange:R=>this.updateValue(_.Tools.ToRadians(R).toString())})]})}}},"../../../dev/sharedUiComponents/dist/lines/iconComponent.js":(l,c,u)=>{u.r(c),u.d(c,{IconComponent:()=>m});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js");class m extends p.Component{render(){return(0,f.jsx)("img",{src:this.props.icon,title:this.props.label,alt:this.props.label,color:"black",className:"icon",onDragStart:d=>d.preventDefault()})}}},"../../../dev/sharedUiComponents/dist/lines/inputArrowsComponent.js":(l,c,u)=>{u.r(c),u.d(c,{InputArrowsComponent:()=>d});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/lines/valueUpArrowIcon.svg"),_=u("../../../dev/sharedUiComponents/dist/lines/valueDownArrowIcon.svg");class d extends p.Component{constructor(){super(...arguments),this._arrowsRef=p.createRef(),this._drag=x=>{this.props.incrementValue(-x.movementY)},this._releaseListener=()=>{var x,A,S,E;this.props.setDragging(!1),(x=this._arrowsRef.current)==null||x.ownerDocument.exitPointerLock(),(A=this._arrowsRef.current)==null||A.ownerDocument.defaultView.removeEventListener("pointerup",this._releaseListener),(S=this._arrowsRef.current)==null||S.ownerDocument.removeEventListener("pointerlockchange",this._lockChangeListener),(E=this._arrowsRef.current)==null||E.ownerDocument.defaultView.removeEventListener("mousemove",this._drag)},this._lockChangeListener=()=>{var x;((x=this._arrowsRef.current)==null?void 0:x.ownerDocument.pointerLockElement)!==this._arrowsRef.current&&this._releaseListener()}}render(){return(0,f.jsxs)("div",{className:"arrows",ref:this._arrowsRef,onPointerDown:()=>{var x,A,S,E;(x=this._arrowsRef.current)==null||x.ownerDocument.addEventListener("pointerlockchange",this._lockChangeListener),(A=this._arrowsRef.current)==null||A.ownerDocument.defaultView.addEventListener("pointerup",this._releaseListener),(S=this._arrowsRef.current)==null||S.ownerDocument.defaultView.addEventListener("mousemove",this._drag),this.props.setDragging(!0),(E=this._arrowsRef.current)==null||E.requestPointerLock()},onDragStart:x=>x.preventDefault(),children:[(0,f.jsx)("img",{className:"upArrowIcon",src:m,alt:"Increase Value"}),(0,f.jsx)("img",{className:"downArrowIcon",src:_,alt:"Increase Value"})]})}}},"../../../dev/sharedUiComponents/dist/lines/numericInputComponent.js":(l,c,u)=>{u.r(c),u.d(c,{NumericInput:()=>m});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js");class m extends p.Component{constructor(d){super(d),this._localChange=!1,this.state={value:this.props.value.toFixed(this.props.precision!==void 0?this.props.precision:3)}}componentWillUnmount(){this.props.lockObject&&(this.props.lockObject.lock=!1)}shouldComponentUpdate(d,h){return this._localChange?(this._localChange=!1,!0):d.value.toString()!==h.value?(h.value=d.value.toFixed(this.props.precision!==void 0?this.props.precision:3),!0):!1}updateValue(d){if(/[^0-9.-]/g.test(d))return;const h=parseFloat(d);this._localChange=!0,this.setState({value:d}),!isNaN(h)&&this.props.onChange(h)}onBlur(){this._localChange=!1;const d=parseFloat(this.state.value);if(this.props.lockObject&&(this.props.lockObject.lock=!1),isNaN(d)){this.props.onChange(this.props.value);return}this.props.onChange(d)}incrementValue(d){let h=parseFloat(this.state.value);isNaN(h)&&(h=0),this.updateValue((h+d).toFixed(this.props.precision!==void 0?this.props.precision:3))}onKeyDown(d){const h=this.props.step||1,x=A=>{d.shiftKey&&(A*=10,(d.ctrlKey||d.metaKey)&&(A*=10)),this.incrementValue(A*h),d.preventDefault()};d.key==="ArrowUp"?x(1):d.key==="ArrowDown"&&x(-1)}render(){return(0,f.jsxs)("div",{className:"numeric",children:[this.props.icon&&(0,f.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),this.props.label&&(0,f.jsx)("div",{className:"numeric-label",title:this.props.labelTooltip??this.props.label,children:`${this.props.label}: `}),(0,f.jsx)("input",{type:"number",step:this.props.step,className:"numeric-input",value:this.state.value,onChange:d=>this.updateValue(d.target.value),onKeyDown:d=>this.onKeyDown(d),onFocus:()=>{this.props.lockObject&&(this.props.lockObject.lock=!0)},onBlur:()=>this.onBlur()})]})}}m.defaultProps={step:1}},"../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js":(l,c,u)=>{u.r(c),u.d(c,{Null_Value:()=>d,OptionsLine:()=>h});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),_=u("../../../dev/sharedUiComponents/dist/imgs/copy.svg");const d=Number.MAX_SAFE_INTEGER;class h extends p.Component{_remapValueIn(A){return this.props.allowNullValue&&A===null?d:A}_remapValueOut(A){return this.props.allowNullValue&&A===d?null:A}_getValue(A){return A.extractValue?A.extractValue(A.target):A.target&&A.propertyName?A.target[A.propertyName]:A.options[A.defaultIfNull||0]}constructor(A){super(A),this._localChange=!1,this.state={value:this._remapValueIn(this._getValue(A))}}shouldComponentUpdate(A,S){if(this._localChange)return this._localChange=!1,!0;const E=this._remapValueIn(A.extractValue?A.extractValue(this.props.target):A.target[A.propertyName]);return E!=null&&E!==S.value?(S.value=E,!0):!1}raiseOnPropertyChanged(A,S){this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:A,initialValue:S,allowNullValue:this.props.allowNullValue})}setValue(A){this.setState({value:A})}updateValue(A){const S=this.props.valuesAreStrings?A:parseInt(A);this._localChange=!0;const E=this.props.extractValue?this.props.extractValue(this.props.target):this.props.target[this.props.propertyName];this.props.noDirectUpdate||(this.props.target[this.props.propertyName]=this._remapValueOut(S)),this.setState({value:S}),this.props.onSelect&&this.props.onSelect(S);const b=this.props.extractValue?this.props.extractValue(this.props.target):this.props.target[this.props.propertyName];this.raiseOnPropertyChanged(b,E)}onCopyClick(){if(this.props&&this.props.target){const{className:A,babylonNamespace:S}=(0,m.getClassNameWithNamespace)(this.props.target),E="globalThis.debugNode",b=this.props.propertyName,M=this.props.extractValue?this.props.extractValue(this.props.target):this.props.target[this.props.propertyName],T=E+"."+b+" = "+M+";// (debugNode as "+S+A+")";(0,m.copyCommandToClipboard)(T)}else(0,m.copyCommandToClipboard)("undefined")}render(){return(0,f.jsxs)("div",{className:"listLine"+(this.props.className?" "+this.props.className:""),children:[this.props.icon&&(0,f.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,color:"black",className:"icon"}),(0,f.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),(0,f.jsx)("div",{className:"options",children:(0,f.jsx)("select",{onChange:A=>this.updateValue(A.target.value),value:this.state.value??"",children:this.props.options.map((A,S)=>(0,f.jsx)("option",{selected:A.selected,value:A.value,title:A.label,children:A.label},A.label+S))})}),(0,f.jsx)("div",{className:"copy hoverIcon",onClick:()=>this.onCopyClick(),title:"Copy to clipboard",children:(0,f.jsx)("img",{src:_,alt:"Copy"})})]})}}},"../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js":(l,c,u)=>{u.r(c),u.d(c,{SliderLineComponent:()=>x});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),_=u("core/Misc/observable"),d=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/imgs/copy.svg");class x extends p.Component{constructor(S){if(super(S),this._localChange=!1,this.props.directValue!==void 0)this.state={value:this.props.directValue};else{let E=this.props.target[this.props.propertyName];E===void 0&&(E=this.props.maximum),this.state={value:E}}}shouldComponentUpdate(S,E){if(S.directValue!==void 0)return E.value=S.directValue,!0;if(S.label!==this.props.label)return!0;let b=S.target[S.propertyName];return b===void 0&&(b=S.maximum),b!==E.value||this._localChange||S.maximum!==this.props.maximum||S.minimum!==this.props.minimum?(E.value=b,this._localChange=!1,!0):S.unit!==this.props.unit}onChange(S){if(S==="—")return;this._localChange=!0;let E=parseFloat(S);this.props.useEuler&&(E=_.Tools.ToRadians(E)),this.props.target&&(this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:E,initialValue:this.state.value}),this.props.target[this.props.propertyName]=E),this.props.onChange&&this.props.onChange(E),this.setState({value:E})}onInput(S){const E=parseFloat(S);this.props.onInput&&this.props.onInput(E)}prepareDataToRead(S){return S===null&&(S=0),this.props.useEuler?_.Tools.ToDegrees(S):S}onCopyClick(){if(this.props&&this.props.target){const{className:S,babylonNamespace:E}=(0,m.getClassNameWithNamespace)(this.props.target),b="globalThis.debugNode",M=this.props.propertyName,T=this.props.target[this.props.propertyName],O=b+"."+M+" = "+T+";// (debugNode as "+E+S+")";(0,m.copyCommandToClipboard)(O)}else(0,m.copyCommandToClipboard)("undefined")}render(){return(0,f.jsxs)("div",{className:"sliderLine",children:[this.props.icon&&(0,f.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(!this.props.icon||this.props.label!="")&&(0,f.jsx)("div",{className:this.props.margin?"label withMargins":"label",title:this.props.label,children:this.props.label}),(0,f.jsx)(d.FloatLineComponent,{lockObject:this.props.lockObject,isInteger:this.props.decimalCount===0,smallUI:!0,label:"",target:this.state,digits:this.props.decimalCount===void 0?4:this.props.decimalCount,propertyName:"value",min:this.props.allowOverflow?void 0:this.props.minimum,max:this.props.allowOverflow?void 0:this.props.maximum,onEnter:()=>{const S=this.prepareDataToRead(this.state.value);this.onChange(S)},onChange:()=>{const S=this.prepareDataToRead(this.state.value);this.onChange(S)},onPropertyChangedObservable:this.props.onPropertyChangedObservable,unit:this.props.unit}),(0,f.jsx)("div",{className:"slider",children:(0,f.jsx)("input",{className:"range"+(this.props.allowOverflow&&(this.state.value>this.props.maximum||this.state.value<this.props.minimum)?" overflow":""),type:"range",step:this.props.step,min:this.prepareDataToRead(this.props.minimum),max:this.prepareDataToRead(this.props.maximum),value:this.prepareDataToRead(this.state.value),onInput:S=>this.onInput(S.target.value),onChange:S=>this.onChange(S.target.value)})}),(0,f.jsx)("div",{className:"copy hoverIcon",onClick:()=>this.onCopyClick(),title:"Copy to clipboard",children:(0,f.jsx)("img",{src:h,alt:"Copy"})})]})}}},"../../../dev/sharedUiComponents/dist/lines/targetsProxy.js":(l,c,u)=>{u.r(c),u.d(c,{conflictingValuesPlaceholder:()=>f,makeTargetsProxy:()=>p});const f="—";function p(m,_,d=(h,x)=>h[x]){return new Proxy({},{get(h,x){const A=x;if(m.length===0)return f;const S=d(m[0],A);for(const E of m)if(d(E,A)!==S)return f;return S},set(h,x,A){if(A==="—")return!0;const S=x;for(const E of m){const b=E[S];E[S]=A,_&&_.notifyObservers({object:E,property:x,value:E[S],initialValue:b})}return!0}})}},"../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js":(l,c,u)=>{u.r(c),u.d(c,{TextInputLineComponent:()=>h});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),_=u("../../../dev/sharedUiComponents/dist/lines/inputArrowsComponent.js");let d=-1;class h extends p.Component{constructor(A){super(A),this._localChange=!1;const S=this.props.numeric?"0":"";this.state={value:(this.props.value!==void 0?this.props.value:this.props.target[this.props.propertyName])||S,dragging:!1}}componentWillUnmount(){this.props.lockObject&&(this.props.lockObject.lock=!1)}shouldComponentUpdate(A,S){if(this._localChange)return this._localChange=!1,!0;const E=A.value!==void 0?A.value:A.target[A.propertyName];return E!==S.value?(S.value=E||"",!0):S.dragging!=this.state.dragging||A.unit!==this.props.unit}raiseOnPropertyChanged(A,S){if(this.props.onChange){this.props.onChange(A);return}this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:A,initialValue:S})}getCurrentNumericValue(A){const S=parseFloat(A);if(!isNaN(S))return S;if(this.props.placeholder!==void 0){const E=parseFloat(this.props.placeholder);if(!isNaN(E))return E}return 0}updateValue(A,S){if(this.props.disabled)return;if(this.props.numbersOnly){if(/[^0-9.px%-]/g.test(A))return;A||(A="0"),A.search(/0+[0-9-]/g)===0&&(A=A.substring(1))}if(this.props.numeric){let b=this.getCurrentNumericValue(A);this.props.roundValues&&(b=Math.round(b)),this.props.min!==void 0&&(b=Math.max(this.props.min,b)),this.props.max!==void 0&&(b=Math.min(this.props.max,b)),A=b.toString()}this._localChange=!0;const E=this.props.value!==void 0?this.props.value:this.props.target[this.props.propertyName];this.props.validator&&S&&this.props.validator(S)==!1&&(A=E),this.setState({value:A}),this.props.propertyName&&!this.props.delayInput&&(this.props.target[this.props.propertyName]=A),this.props.throttlePropertyChangedNotification?(d>=0&&window.clearTimeout(d),d=window.setTimeout(()=>{this.raiseOnPropertyChanged(A,E)},this.props.throttlePropertyChangedNotificationDelay??200)):this.raiseOnPropertyChanged(A,E)}incrementValue(A){if(this.props.step&&(A*=this.props.step),this.props.arrowsIncrement){this.props.arrowsIncrement(A);return}const S=this.getCurrentNumericValue(this.state.value);this.updateValue((S+A).toFixed(2))}onKeyDown(A){!this.props.disabled&&this.props.arrows&&(A.key==="ArrowUp"&&(this.incrementValue(1),A.preventDefault()),A.key==="ArrowDown"&&(this.incrementValue(-1),A.preventDefault()))}render(){const A=this.state.value===m.conflictingValuesPlaceholder?"":this.state.value,S=this.state.value===m.conflictingValuesPlaceholder?m.conflictingValuesPlaceholder:this.props.placeholder||"",E=this.props.step||(this.props.roundValues?1:.01),b=this.props.multilines?"textInputArea":this.props.unit!==void 0?"textInputLine withUnits":"textInputLine";return(0,f.jsxs)("div",{className:b,children:[this.props.icon&&(0,f.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,color:"black",className:"icon"}),this.props.label!==void 0&&(0,f.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),this.props.multilines&&(0,f.jsx)(f.Fragment,{children:(0,f.jsx)("textarea",{className:this.props.disabled?"disabled":"",value:this.state.value,onFocus:()=>{this.props.lockObject&&(this.props.lockObject.lock=!0)},onChange:M=>this.updateValue(M.target.value),onKeyDown:M=>{M.keyCode===13&&this.updateValue(this.state.value)},onBlur:M=>{this.updateValue(M.target.value,M.target.value),this.props.lockObject&&(this.props.lockObject.lock=!1)},disabled:this.props.disabled})}),!this.props.multilines&&(0,f.jsxs)("div",{className:`value${this.props.noUnderline===!0?" noUnderline":""}${this.props.arrows?" hasArrows":""}${this.state.dragging?" dragging":""}`,children:[(0,f.jsx)("input",{className:this.props.disabled?"disabled":"",value:A,onBlur:M=>{this.props.lockObject&&(this.props.lockObject.lock=!1),this.updateValue((this.props.value!==void 0?this.props.value:this.props.target[this.props.propertyName])||"",M.target.value)},onFocus:()=>{this.props.lockObject&&(this.props.lockObject.lock=!0)},onChange:M=>this.updateValue(M.target.value),onKeyDown:M=>this.onKeyDown(M),placeholder:S,type:this.props.numeric?"number":"text",step:E,disabled:this.props.disabled}),this.props.arrows&&(0,f.jsx)(_.InputArrowsComponent,{incrementValue:M=>this.incrementValue(M),setDragging:M=>this.setState({dragging:M})})]}),this.props.unit]})}}},"../../../dev/sharedUiComponents/dist/lines/textLineComponent.js":(l,c,u)=>{u.r(c),u.d(c,{TextLineComponent:()=>h});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/imgs/copy.svg"),_=u("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),d=u("../../../dev/sharedUiComponents/dist/styleHelper.js");class h extends p.Component{constructor(A){super(A)}onLink(){if(this.props.url){window.open(this.props.url,"_blank");return}this.props.onLink&&this.props.onLink()}renderContent(){return this.props.ignoreValue?null:this.props.onLink||this.props.url?(0,f.jsx)("div",{className:"link-value",title:this.props.tooltip??this.props.label??"",onClick:()=>this.onLink(),children:this.props.url?"doc":this.props.value||"no name"}):(0,f.jsx)("div",{className:"value",title:this.props.tooltip??this.props.label??"",style:{color:this.props.color?this.props.color:""},children:this.props.value||"no name"})}render(){return(0,f.jsxs)("div",{className:(0,d.MergeClassNames)(["textLine",["underline",this.props.underline],this.props.additionalClass,["icon",this.props.onCopy]]),children:[this.props.icon&&(0,f.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,f.jsx)("div",{className:"label",title:this.props.tooltip??this.props.label??"",children:this.props.label??""}),this.renderContent(),this.props.onCopy&&(0,f.jsx)("div",{className:"copy hoverIcon",onClick:()=>{const A=this.props.onCopy;A===!0&&this.props.value!==void 0?(0,_.copyCommandToClipboard)(this.props.value):typeof A=="function"&&(0,_.copyCommandToClipboard)(A())},title:"Copy to clipboard",children:(0,f.jsx)("img",{src:m,alt:"Copy"})})]})}}},"../../../dev/sharedUiComponents/dist/lines/unitButton.js":(l,c,u)=>{u.r(c),u.d(c,{UnitButton:()=>p});var f=u("../../../../node_modules/react/jsx-runtime.js");function p(m){return(0,f.jsx)("button",{className:"unit",onClick:()=>{m.onClick&&!m.locked&&m.onClick(m.unit||"")},disabled:m.locked,children:m.unit})}},"../../../dev/sharedUiComponents/dist/lines/valueDownArrowIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE1IDE1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNC4wOSw1LjU1YS42MS42MSwwLDAsMSwuODUsMGwyLDJWMS43OWEuNi42LDAsMSwxLDEuMiwwVjcuNTJsMi0yYS42MS42MSwwLDAsMSwuODUsMCwuNi42LDAsMCwxLDAsLjg0bC0zLDNhLjYuNiwwLDAsMS0uODQsMGwtMy0zQS42LjYsMCwwLDEsNC4wOSw1LjU1WiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/lines/valueUpArrowIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE1IDE1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNC4wOSw5LjQ1YS42LjYsMCwwLDEsMC0uODRsMy0zYS42LjYsMCwwLDEsLjg0LDBsMywzYS42LjYsMCwwLDEsMCwuODQuNjEuNjEsMCwwLDEtLjg1LDBsLTItMnY1LjczYS42LjYsMCwwLDEtMS4yLDBWNy40OGwtMiwyQS42MS42MSwwLDAsMSw0LjA5LDkuNDVaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/popupHelper.js":(l,c,u)=>{u.r(c),u.d(c,{CreatePopup:()=>p});var f=u("../../../dev/sharedUiComponents/dist/styleHelper.js");function p(m,_){const d={width:300,height:800,..._},h={width:d.width,height:d.height,top:(window.innerHeight-d.width)/2+window.screenY,left:(window.innerWidth-d.height)/2+window.screenX},x=Object.keys(h).map(M=>M+"="+h[M]).join(","),A=window.open("",m,x);if(!A)return null;const S=A.document,E=S.createElement("link");E.rel="stylesheet",E.href="https://use.typekit.net/cta4xsb.css",S.head.appendChild(E),S.title=m,S.body.style.width="100%",S.body.style.height="100%",S.body.style.margin="0",S.body.style.padding="0";const b=S.createElement("div");return b.style.width="100%",b.style.height="100%",b.style.margin="0",b.style.padding="0",d.onParentControlCreateCallback&&d.onParentControlCreateCallback(b),A.document.body.appendChild(b),(0,f.CopyStyles)(window.document,S),setTimeout(()=>{(0,f.CopyStyles)(window.document,S)},0),d.onWindowCreateCallback&&d.onWindowCreateCallback(A),b}},"../../../dev/sharedUiComponents/dist/stringTools.js":(l,c,u)=>{u.r(c),u.d(c,{StringTools:()=>f});class f{static _SaveAs(m,_,d){if("download"in HTMLAnchorElement.prototype){const E=window.URL||window.webkitURL,b=d.createElement("a");b.download=_,b.rel="noopener",b.href=E.createObjectURL(m),setTimeout(()=>{E.revokeObjectURL(b.href)},4e4),setTimeout(()=>{this._Click(b,d)},0);return}let h=open("","_blank");h&&(h.document.title=h.document.body.innerText="downloading...");const x=m.type==="application/octet-stream",A=/constructor/i.test(window.HTMLElement)||window.safari,S=/CriOS\/[\d]+/.test(navigator.userAgent);if((S||x&&A)&&typeof FileReader<"u"){const E=new FileReader;E.onloadend=()=>{let b=E.result;b=S?b:b.replace(/^data:[^;]*;/,"data:attachment/file;"),h?h.location.href=b:location.href=b,h=null},E.readAsDataURL(m)}else{const E=window.URL||window.webkitURL,b=E.createObjectURL(m);h?h.location.href=b:location.href=b,h=null,setTimeout(function(){E.revokeObjectURL(b)},4e4)}}static _Click(m,_){try{m.dispatchEvent(new MouseEvent("click"))}catch{const h=_.createEvent("MouseEvents");h.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),m.dispatchEvent(h)}}static DownloadAsFile(m,_,d){const h=new Blob([_],{type:"application/octet-stream"});this._SaveAs(h,d,m)}}},"../../../dev/sharedUiComponents/dist/styleHelper.js":(l,c,u)=>{u.r(c),u.d(c,{CopyStyles:()=>f,MergeClassNames:()=>p});function f(m,_){Array.from(m.querySelectorAll("style")).forEach(d=>{const h=m.createElement("style");h.textContent=d.textContent,_.head?_.head.appendChild(h):_.appendChild(h)}),Array.from(m.querySelectorAll('link[rel="stylesheet"]')).forEach(d=>{const h=m.createElement("link");h.rel="stylesheet",h.href=d.href,_.head?_.head.appendChild(h):_.appendChild(h)})}function p(m){return m.reduce((_,d)=>(typeof d=="string"?_.push(d):d&&d[1]&&_.push(d[0]),_),[]).join(" ")}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/lockObject.js":(l,c,u)=>{u.r(c),u.d(c,{LockObject:()=>f});class f{constructor(){this.lock=!1}}},"../../../tools/guiEditor/dist/components/commandBarComponent.js":(l,c,u)=>{u.r(c),u.d(c,{CommandBarComponent:()=>W});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("core/Misc/observable"),m=u("../../../../node_modules/react/index.js"),_=u("../../../tools/guiEditor/dist/globalState.js"),d=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),x=u("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),A=u("../../../tools/guiEditor/dist/components/commandButtonComponent.js"),S=u("../../../tools/guiEditor/dist/components/commandDropdownComponent.js"),E=u("../../../dev/sharedUiComponents/dist/lines/colorLineComponent.js"),b=u("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/lockObject.js"),M=u("../../../tools/guiEditor/dist/imgs/hamburgerIcon.svg"),T=u("../../../tools/guiEditor/dist/imgs/pointerIcon.svg"),O=u("../../../tools/guiEditor/dist/imgs/handIcon.svg"),R=u("../../../tools/guiEditor/dist/imgs/zoomIcon.svg"),I=u("../../../tools/guiEditor/dist/imgs/guidesIcon.svg"),N=u("../../../tools/guiEditor/dist/imgs/babylonLogo.svg"),w=u("../../../tools/guiEditor/dist/imgs/canvasFitIcon.svg"),D=u("../../../tools/guiEditor/dist/imgs/buttonbar_copyIcon.svg"),k=u("../../../tools/guiEditor/dist/imgs/buttonbar_pasteIcon.svg"),Y=u("../../../tools/guiEditor/dist/imgs/buttonBar_deleteIcon.svg"),V=u("../../../tools/guiEditor/dist/imgs/buttonbar_copyIcon_disabled.svg"),ee=u("../../../tools/guiEditor/dist/imgs/buttonbar_pasteIcon_disabled.svg"),K=u("../../../tools/guiEditor/dist/imgs/buttonBar_deleteIcon_disabled.svg");u("../../../tools/guiEditor/dist/scss/commandBar.scss");const ie=[{width:1920,height:1080},{width:1366,height:768},{width:1280,height:800},{width:3840,height:2160},{width:750,height:1334},{width:1125,height:2436},{width:1170,height:2532},{width:1284,height:2778},{width:1080,height:2220},{width:1080,height:2340},{width:1024,height:1024},{width:2048,height:2048}],ne=[{label:"Web (1920)",value:0},{label:"Web (1366)",value:1},{label:"Web (1280)",value:2},{label:"Web (3840)",value:3},{label:"iPhone 8 (750)",value:4},{label:"iPhone X, 11 (1125)",value:5},{label:"iPhone 12 (1170)",value:6},{label:"iPhone Pro Max (1284)",value:7},{label:"Google Pixel 4 (1080)",value:8},{label:"Google Pixel 5 (1080)",value:9},{label:"Square (1024)",value:10},{label:"Square (2048)",value:11}],te=16384;class W extends m.Component{constructor(re){super(re),this._sizeOption=0,this._stopUpdating=!1,this._lockObject=new b.LockObject,re.globalState.onToolChangeObservable.add(()=>{this.forceUpdate()}),re.globalState.onOutlineChangedObservable.add(()=>{this.forceUpdate()}),re.globalState.onResizeObservable.add(()=>{this.forceUpdate()}),re.globalState.onSelectionChangedObservable.add(()=>{this.forceUpdate()}),re.globalState.onWindowResizeObservable.add(()=>{this.forceUpdate()})}render(){const re=this.props.globalState.workbench?this.props.globalState.workbench.pasteDisabled:!0,oe=this.props.globalState.workbench?{...this.props.globalState.workbench.guiSize}:{width:0,height:0},X=this.props.globalState.selectedControls.length===0?V:D,se=this.props.globalState.selectedControls.length===0?K:Y,ue=re?ee:k,he=this.props.globalState.fromPG?p.DataStorage.ReadBoolean("responsiveUI",!0):p.DataStorage.ReadBoolean("Responsive",!0);return this._sizeOption=ie.findIndex(fe=>fe.width==oe.width&&fe.height==oe.height),this._sizeOption<0&&(this.props.globalState.onResponsiveChangeObservable.notifyObservers(!1),p.DataStorage.WriteBoolean("Responsive",!1)),(0,f.jsxs)("div",{className:"ge-commands",children:[(0,f.jsxs)("div",{className:"commands-left",children:[(0,f.jsxs)("div",{className:"divider",children:[(0,f.jsx)("img",{src:N,color:"white",className:"active",draggable:!1}),(0,f.jsx)(S.CommandDropdownComponent,{globalState:this.props.globalState,toRight:!0,icon:M,tooltip:"Options",items:[{label:"Save",onClick:()=>{this.props.globalState.onSaveObservable.notifyObservers()}},{label:"Load",fileButton:!0},{label:"Save to snippet",onClick:()=>{this.props.globalState.onSnippetSaveObservable.notifyObservers()}},{label:"Load from snippet",onClick:()=>{this.props.globalState.onSnippetLoadObservable.notifyObservers()}},{label:"Save selected control",onClick:()=>{this.props.globalState.onSaveSelectedControl.notifyObservers()}},{label:"Load control",fileButton:!0,loadControlButton:!0},{label:"Help",onClick:()=>{window.open("https://doc.babylonjs.com/toolsAndResources/tools/guiEditor","_blank")}},{label:"Give feedback",onClick:()=>{window.open("https://forum.babylonjs.com/t/introducing-the-gui-editor-beta/28943","_blank")}}]}),(0,f.jsx)(A.CommandButtonComponent,{tooltip:"Select",icon:T,shortcut:"S",isActive:this.props.globalState.tool===_.GUIEditorTool.SELECT,onClick:()=>{this.props.globalState.tool=_.GUIEditorTool.SELECT}}),(0,f.jsx)(A.CommandButtonComponent,{tooltip:"Pan",icon:O,shortcut:"P",isActive:this.props.globalState.tool===_.GUIEditorTool.PAN,onClick:()=>{this.props.globalState.tool=_.GUIEditorTool.PAN}}),(0,f.jsx)(A.CommandButtonComponent,{tooltip:"Zoom",shortcut:"Z",icon:R,isActive:this.props.globalState.tool===_.GUIEditorTool.ZOOM,onClick:()=>{this.props.globalState.tool=_.GUIEditorTool.ZOOM}})]}),(0,f.jsxs)("div",{className:"divider",children:[(0,f.jsx)(A.CommandButtonComponent,{tooltip:"Copy Selected",shortcut:"Ctrl + C",icon:X,isActive:!1,copyDeleteDisabled:this.props.globalState.selectedControls.length===0,onClick:()=>{this.props.globalState.onCopyObservable.notifyObservers(fe=>this.props.globalState.hostWindow.navigator.clipboard.writeText(fe)),this.forceUpdate()}}),(0,f.jsx)(A.CommandButtonComponent,{tooltip:"Paste",shortcut:"Ctrl + V",icon:ue,isActive:!1,pasteDisabled:re,onClick:async()=>{this.props.globalState.onPasteObservable.notifyObservers(await this.props.globalState.hostWindow.navigator.clipboard.readText())}}),(0,f.jsx)(A.CommandButtonComponent,{tooltip:"Delete",shortcut:"Delete",icon:se,isActive:!1,copyDeleteDisabled:this.props.globalState.selectedControls.length===0,onClick:()=>{this.props.globalState.selectedControls.forEach(fe=>{var Ae;fe!=this.props.globalState.guiTexture.getChildren()[0]&&(this.props.globalState.guiTexture.removeControl(fe),(Ae=this.props.globalState.liveGuiTexture)==null||Ae.removeControl(fe),fe.dispose())}),this.props.globalState.setSelection([])}})]}),(0,f.jsxs)("div",{className:"divider",children:[(0,f.jsx)(A.CommandButtonComponent,{tooltip:"Fit to Window",shortcut:"F",icon:w,isActive:!1,onClick:()=>{this.props.globalState.onFitControlsToWindowObservable.notifyObservers()}}),(0,f.jsx)(A.CommandButtonComponent,{tooltip:"Toggle Guides",shortcut:"G",icon:I,isActive:this.props.globalState.outlines,onClick:()=>this.props.globalState.outlines=!this.props.globalState.outlines})]}),(0,f.jsx)("div",{className:"divider padded",children:(0,f.jsx)(E.ColorLine,{lockObject:this._lockObject,label:"Artboard:",target:this.props.globalState,propertyName:"backgroundColor",disableAlpha:!0})}),(0,f.jsxs)("div",{className:"divider padded",children:[(0,f.jsx)(h.CheckBoxLineComponent,{label:"Responsive:",iconLabel:"Responsive GUIs will resize the UI layout and reflow controls to accommodate different device screen sizes",isSelected:()=>p.DataStorage.ReadBoolean("Responsive",!0),onSelect:fe=>{this.props.globalState.onResponsiveChangeObservable.notifyObservers(fe),p.DataStorage.WriteBoolean("Responsive",fe),p.DataStorage.WriteBoolean("responsiveUI",fe),this._sizeOption=ne.length,fe&&(this._sizeOption=0,this.props.globalState.workbench.guiSize=ie[this._sizeOption],p.DataStorage.WriteNumber("width",this.props.globalState.workbench.guiSize.width),p.DataStorage.WriteNumber("height",this.props.globalState.workbench.guiSize.height)),this.forceUpdate()},large:!0}),he&&(0,f.jsx)(x.OptionsLine,{label:"",iconLabel:"Size",options:ne,target:this,propertyName:"_sizeOption",noDirectUpdate:!0,onSelect:fe=>{if(this._sizeOption=fe,this._sizeOption!==ne.length){const Ae=ie[this._sizeOption];this.props.globalState.workbench.guiSize=Ae,p.DataStorage.WriteNumber("width",this.props.globalState.workbench.guiSize.width),p.DataStorage.WriteNumber("height",this.props.globalState.workbench.guiSize.height)}this.forceUpdate()}}),!he&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(d.FloatLineComponent,{lockObject:this._lockObject,label:"W",target:oe,propertyName:"width",min:1,max:te,onChange:fe=>{this._stopUpdating||(this.props.globalState.workbench.guiSize={width:fe,height:oe.height},p.DataStorage.WriteNumber("width",this.props.globalState.workbench.guiSize.width))},onDragStart:()=>{this._stopUpdating=!0},onDragStop:fe=>{this._stopUpdating=!1,this.props.globalState.workbench.guiSize={width:fe,height:oe.height},p.DataStorage.WriteNumber("width",this.props.globalState.workbench.guiSize.width)},arrows:!0,isInteger:!0}),(0,f.jsx)(d.FloatLineComponent,{lockObject:this._lockObject,label:"H",target:oe,propertyName:"height",min:1,max:te,onChange:fe=>{this._stopUpdating||(this.props.globalState.workbench.guiSize={width:oe.width,height:fe},p.DataStorage.WriteNumber("height",this.props.globalState.workbench.guiSize.width))},onDragStart:()=>{this._stopUpdating=!0},onDragStop:fe=>{this._stopUpdating=!1,this.props.globalState.workbench.guiSize={width:oe.width,height:fe},p.DataStorage.WriteNumber("height",this.props.globalState.workbench.guiSize.width)},arrows:!0,isInteger:!0})]})]})]}),(0,f.jsx)("div",{className:"commands-right"})]})}}},"../../../tools/guiEditor/dist/components/commandButtonComponent.js":(l,c,u)=>{u.r(c),u.d(c,{CommandButtonComponent:()=>m});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js");class m extends p.Component{constructor(d){super(d)}render(){let d=this.props.altStyle?`command-button-alt${this.props.disabled?"-disabled":""}${this.props.isActive?"-":""}`:"command-button",h="command-button-icon ";return this.props.isActive&&(d+=" active",h+=" active"),this.props.disabled?d+=" disabled":this.props.copyDeleteDisabled?d+=" copyAndDeleteDisabled":this.props.pasteDisabled&&(d+=" pasteDisabled"),(0,f.jsxs)("div",{className:d,onClick:this.props.onClick,title:`${this.props.tooltip} ${this.props.shortcut?" ("+this.props.shortcut+")":""}`,children:[(0,f.jsx)("div",{className:h,children:(0,f.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:this.props.isActive?"active":"",draggable:!1})}),(0,f.jsx)("div",{className:"command-label",children:this.props.tooltip})]})}}},"../../../tools/guiEditor/dist/components/commandDropdownComponent.js":(l,c,u)=>{u.r(c),u.d(c,{CommandDropdownComponent:()=>_});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/lines/fileButtonLineComponent.js");class _ extends p.Component{constructor(h){super(h),this.state={isExpanded:!1,activeState:""}}render(){return(0,f.jsxs)(f.Fragment,{children:[this.state.isExpanded&&(0,f.jsx)("div",{className:"command-dropdown-blocker",onClick:()=>{this.setState({isExpanded:!1})}}),(0,f.jsxs)("div",{className:"command-dropdown-root",children:[(0,f.jsxs)("div",{className:"command-dropdown"+(this.state.isExpanded?" activated":""),title:this.props.tooltip,onClick:()=>{this.setState({isExpanded:!1});const h=!this.state.isExpanded,x=document.getElementById("embed-host");x&&(x.style.zIndex=h?"0":"10"),this.setState({isExpanded:h})},children:[this.props.icon&&(0,f.jsx)("div",{className:"command-dropdown-icon",children:(0,f.jsx)("img",{src:this.props.icon})}),!this.props.icon&&(0,f.jsx)("div",{className:"command-dropdown-active"})]}),this.state.isExpanded&&(0,f.jsx)("div",{className:"command-dropdown-content sub1"+(this.props.toRight?" toRight":""),children:this.props.items.map(h=>h.fileButton?(0,f.jsx)(m.FileButtonLine,{label:h.loadControlButton?"Load control":"Load",onClick:x=>this.props.globalState[h.loadControlButton?"onControlLoadObservable":"onLoadObservable"].notifyObservers(x),accept:".json"},h.label):(0,f.jsxs)("div",{className:"command-dropdown-label"+(h.isActive?" active":""),onClick:()=>{if(!h.onClick){this.forceUpdate();return}h.subItems||(h.onClick(),this.setState({isExpanded:!1,activeState:h.label}))},title:h.label,children:[!h.icon&&(0,f.jsx)("div",{className:"command-dropdown-label-text",children:(h.isActive?"> ":"")+h.label}),h.icon&&(0,f.jsx)("div",{className:"command-dropdown-icon",children:(0,f.jsx)("img",{src:h.icon})}),h.onCheck&&(0,f.jsx)("input",{type:"checkBox",className:"command-dropdown-label-check",onChange:x=>{this.forceUpdate(),h.onCheck(x.target.checked)},checked:!1}),h.subItems&&(0,f.jsx)("div",{className:"command-dropdown-arrow",children:">"}),h.subItems&&(0,f.jsx)("div",{className:"sub-items ",children:h.subItems.map(x=>(0,f.jsx)("div",{className:"sub-item",onClick:()=>{h.onClick(),this.setState({isExpanded:!1})},children:(0,f.jsx)("div",{className:"sub-item-label",children:x})},x))})]},h.label))})]})]})}}},"../../../tools/guiEditor/dist/components/log/log.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>R});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/components/log/log.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../tools/guiEditor/dist/components/log/logComponent.js":(l,c,u)=>{u.r(c),u.d(c,{LogComponent:()=>d,LogEntry:()=>_});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../../node_modules/react-dom/index.js");u("../../../tools/guiEditor/dist/components/log/log.scss");class _{constructor(x,A){this.message=x,this.isError=A}}class d extends p.Component{constructor(x){super(x),this.state={logs:[]}}componentDidMount(){this.props.globalState.onLogRequiredObservable.add(x=>{const A=this.state.logs.map(S=>S);A.push(x),this.setState({logs:A})})}componentDidUpdate(){const x=m.findDOMNode(this.refs["log-console"]);x&&(x.scrollTop=x.scrollHeight)}render(){const x=new Date,A=x.getHours(),S=x.getMinutes(),E=x.getSeconds();return(0,f.jsx)("div",{id:"log-console",ref:"log-console",children:this.state.logs.map((b,M)=>(0,f.jsx)("div",{className:"log"+(b.isError?" error":""),children:A+":"+S+":"+E+": "+b.message},M))})}}},"../../../tools/guiEditor/dist/components/parentingPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{ParentingPropertyGridComponent:()=>x});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),d=u("../../../tools/guiEditor/dist/tools.js"),h=u("core/Misc/observable");class x extends p.Component{constructor(S){super(S)}updateGridPosition(){const S=this.props.control.parent;S&&this._changeCell(S,this.props.control,new h.Vector2(this._rowNumber,this._columnNumber))}getCellInfo(){const S=d.Tools.GetCellInfo(this.props.control.parent,this.props.control);this._rowNumber=S.x,this._columnNumber=S.y}_changeCell(S,E,b){const M=S.children.indexOf(E);S.removeControl(E),d.Tools.ReorderGrid(S,M,E,b)}render(){return this.getCellInfo(),(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)("hr",{className:"ge"}),(0,f.jsx)(m.TextLineComponent,{tooltip:"",label:"GRID PARENTING",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(_.FloatLineComponent,{lockObject:this.props.lockObject,label:"Row #",target:this,propertyName:"_rowNumber",isInteger:!0,min:0,onChange:()=>{this.updateGridPosition()}}),(0,f.jsx)(_.FloatLineComponent,{lockObject:this.props.lockObject,label:"Column #",target:this,propertyName:"_columnNumber",isInteger:!0,min:0,onChange:()=>{this.updateGridPosition()}})]})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/buttonPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{ButtonPropertyGridComponent:()=>R});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js"),x=u("../../../tools/guiEditor/dist/components/commandButtonComponent.js"),A=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),S=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/containerPropertyGridComponent.js"),E=u("../../../dev/sharedUiComponents/dist/imgs/conerRadiusIcon.svg"),b=u("../../../dev/sharedUiComponents/dist/imgs/strokeWeightIcon.svg"),M=u("../../../dev/sharedUiComponents/dist/imgs/addImageButtonIcon.svg"),T=u("../../../dev/sharedUiComponents/dist/imgs/addTextButtonIcon.svg"),O=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js");class R extends p.Component{constructor(N){super(N)}render(){const{rectangles:N,lockObject:w,onPropertyChangedObservable:D,onAddComponent:k}=this.props,Y=(0,A.makeTargetsProxy)(N,D);return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:w,controls:N,onPropertyChangedObservable:D,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(d.TextLineComponent,{label:"BUTTON",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(x.CommandButtonComponent,{tooltip:"Add TextBlock",icon:T,shortcut:"",isActive:!1,onClick:()=>{k("Text")}}),(0,f.jsx)(x.CommandButtonComponent,{tooltip:"Add Image",icon:M,shortcut:"",isActive:!1,onClick:()=>{k("ButtonImage")}})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(O.IconComponent,{icon:b,label:"Stroke Weight"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:this.props.lockObject,label:"",target:Y,propertyName:"thickness",unit:(0,f.jsx)(h.UnitButton,{unit:"PX",locked:!0}),min:0,digits:2})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(O.IconComponent,{icon:E,label:"Corner Radius"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:w,label:"",target:Y,propertyName:"cornerRadius",unit:(0,f.jsx)(h.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2})]}),(0,f.jsx)(S.ContainerPropertyGridComponent,{containers:N,onPropertyChangedObservable:D})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/checkboxPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{CheckboxPropertyGridComponent:()=>T});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),x=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),A=u("../../../dev/sharedUiComponents/dist/imgs/checkboxIconDark.svg"),S=u("../../../dev/sharedUiComponents/dist/imgs/sizeIcon.svg"),E=u("../../../dev/sharedUiComponents/dist/imgs/strokeWeightIcon.svg"),b=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js"),M=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js");class T extends p.Component{constructor(R){super(R)}render(){const R=this.props.checkboxes;return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,controls:R,onPropertyChangedObservable:this.props.onPropertyChangedObservable,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(h.TextLineComponent,{label:"CHECKBOX",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(b.IconComponent,{icon:S,label:"Check Size Ratio"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:this.props.lockObject,label:" ",target:(0,x.makeTargetsProxy)(R,this.props.onPropertyChangedObservable),propertyName:"checkSizeRatio",min:0,max:1,arrows:!0,step:"0.01",digits:2})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(b.IconComponent,{icon:A,label:"Is Checkbox Checked"}),(0,f.jsx)(d.CheckBoxLineComponent,{label:"CHECKED",target:(0,x.makeTargetsProxy)(R,this.props.onPropertyChangedObservable),propertyName:"isChecked",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(b.IconComponent,{icon:E,label:"Thickness"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:this.props.lockObject,target:(0,x.makeTargetsProxy)(R,this.props.onPropertyChangedObservable),propertyName:"thickness",label:"",unit:(0,f.jsx)(M.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2})]})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/colorPickerPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{ColorPickerPropertyGridComponent:()=>S});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/colorLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),x=u("../../../dev/sharedUiComponents/dist/imgs/fillColorIcon.svg"),A=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js");class S extends p.Component{constructor(b){super(b)}render(){const b=this.props.colorPickers;return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,controls:b,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(d.TextLineComponent,{label:"COLOR PICKER",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(A.IconComponent,{icon:x,label:"Color Picker Value"}),(0,f.jsx)(_.ColorLine,{label:"",target:(0,h.makeTargetsProxy)(b,this.props.onPropertyChangedObservable),propertyName:"value",disableAlpha:!0,lockObject:this.props.lockObject})]})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{CommonControlPropertyGridComponent:()=>Qe});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),_=u("gui/2D/controls/container"),d=u("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),x=u("../../../tools/guiEditor/dist/components/commandButtonComponent.js"),A=u("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),S=u("../../../dev/sharedUiComponents/dist/lines/colorLineComponent.js"),E=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),b=u("../../../tools/guiEditor/dist/diagram/coordinateHelper.js"),M=u("core/Misc/observable"),T=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js"),O=u("../../../dev/sharedUiComponents/dist/components/lines/OptionsLineComponent.js"),R=u("../../../dev/sharedUiComponents/dist/imgs/sizeIcon.svg"),I=u("../../../dev/sharedUiComponents/dist/imgs/verticalMarginIcon.svg"),N=u("../../../dev/sharedUiComponents/dist/imgs/positionIcon.svg"),w=u("../../../dev/sharedUiComponents/dist/imgs/fontFamilyIcon.svg"),D=u("../../../dev/sharedUiComponents/dist/imgs/alphaIcon.svg"),k=u("../../../dev/sharedUiComponents/dist/imgs/fontSizeIcon.svg"),Y=u("../../../dev/sharedUiComponents/dist/imgs/fontStyleIcon.svg"),V=u("../../../dev/sharedUiComponents/dist/imgs/fontWeightIcon.svg"),ee=u("../../../dev/sharedUiComponents/dist/imgs/rotationIcon.svg"),K=u("../../../dev/sharedUiComponents/dist/imgs/pivotIcon.svg"),ie=u("../../../dev/sharedUiComponents/dist/imgs/scaleIcon.svg"),ne=u("../../../dev/sharedUiComponents/dist/imgs/shadowBlurIcon.svg"),te=u("../../../dev/sharedUiComponents/dist/imgs/horizontalMarginIcon.svg"),W=u("../../../dev/sharedUiComponents/dist/imgs/shadowColorIcon.svg"),Q=u("../../../dev/sharedUiComponents/dist/imgs/shadowOffsetXIcon.svg"),re=u("../../../dev/sharedUiComponents/dist/imgs/colorIcon.svg"),oe=u("../../../dev/sharedUiComponents/dist/imgs/fillColorIcon.svg"),X=u("../../../dev/sharedUiComponents/dist/imgs/linkedMeshOffsetIcon.svg"),se=u("../../../tools/guiEditor/dist/imgs/visibilityActiveIcon.svg"),ue=u("../../../dev/sharedUiComponents/dist/imgs/addGridElementDark.svg"),he=u("../../../dev/sharedUiComponents/dist/imgs/deleteGridElementDark.svg"),fe=u("../../../tools/guiEditor/dist/imgs/adtIcon.svg"),Ae=u("../../../dev/sharedUiComponents/dist/imgs/hAlignCenterIcon.svg"),Se=u("../../../dev/sharedUiComponents/dist/imgs/hAlignLeftIcon.svg"),we=u("../../../dev/sharedUiComponents/dist/imgs/hAlignRightIcon.svg"),ke=u("../../../dev/sharedUiComponents/dist/imgs/vAlignCenterIcon.svg"),st=u("../../../dev/sharedUiComponents/dist/imgs/vAlignTopIcon.svg"),Ve=u("../../../dev/sharedUiComponents/dist/imgs/vAlignBottomIcon.svg"),Ke=u("../../../dev/sharedUiComponents/dist/imgs/descendantsOnlyPaddingIcon.svg"),ct=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),nt=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js"),at=u("../../../tools/guiEditor/dist/diagram/workbench.js"),xt=u("../../../tools/guiEditor/dist/guiEditor.js");class Qe extends p.Component{constructor(ot){var Me,je;super(ot),this._onControlVisibilityChangedObservers=[],this.state={fontFamilyOptions:JSON.parse(String(window.sessionStorage.getItem("fonts")))??[{label:"Arial",value:1},{label:"Verdana",value:2},{label:"Helvetica",value:3},{label:"Trebuchet MS",value:4},{label:"Times New Roman",value:5},{label:"Georgia",value:6},{label:"Garamond",value:7},{label:"Courier New",value:8},{label:"Brush Script MT",value:9}]};const At=this.props.controls;for(const rt of At){const yt=this._getTransformedReferenceCoordinate(rt);rt.metadata||(rt.metadata={}),rt.metadata._previousCenter=yt;const Rt=rt.onIsVisibleChangedObservable.add(()=>{this.forceUpdate()});this._onControlVisibilityChangedObservers.push(Rt)}this._onFontsParsedObserver=(Me=this.props.onFontsParsedObservable)==null?void 0:Me.add(()=>{this._checkFontsInLayout()}),this._onPropertyChangedObserver=(je=this.props.onPropertyChangedObservable)==null?void 0:je.add(rt=>{const yt=rt.property==="transformCenterX"||rt.property==="transformCenterY";for(const Rt of At){let Nt=this._getTransformedReferenceCoordinate(Rt);if(yt&&Rt.metadata._previousCenter){const Kt=Nt.subtract(Rt.metadata._previousCenter);Rt.leftInPixels-=Kt.x,Rt.topInPixels-=Kt.y,Nt=this._getTransformedReferenceCoordinate(Rt)}Rt.metadata._previousCenter=Nt,Rt.getClassName()==="TextBlock"&&(rt.property==="width"||rt.property==="height")&&(Rt.resizeToFit=!1)}})}componentWillMount(){this._checkFontsInLayout()}_checkFontsInLayout(){const ot=[];for(const Me of this.state.fontFamilyOptions.values())document.fonts.check(`12px "${Me.label}"`)&&Me.label!="Custom Font"&&ot.push(Me);const At=at.WorkbenchComponent.addedFonts;for(let Me=0;Me<At.length;Me++){const je=At[Me].trim();ot.push({label:je,value:je})}this.setState({fontFamilyOptions:ot}),window.sessionStorage.setItem("fonts",JSON.stringify(ot))}_addFont(ot){const At=ot.trim();At.length>0&&(this.state.fontFamilyOptions.find(({value:Me})=>Me===ot)||this.setState(Me=>(Me.fontFamilyOptions.push({label:At,value:At}),Me),this._checkFontsInLayout))}_getTransformedReferenceCoordinate(ot){const At=b.CoordinateHelper.GetNodeMatrix(ot),Me=new M.Vector2(1,1);return At.transformCoordinates(1,1,Me),Me}_updateAlignment(ot,At){for(const Me of this.props.controls)Me.typeName==="TextBlock"&&Me.resizeToFit===!1?Me["text"+ot.charAt(0).toUpperCase()+ot.slice(1)]=At:Me[ot]=At;this.forceUpdate()}_checkAndUpdateValues(ot,At){var Me,je,rt;for(const yt of this.props.controls){let Nt=yt["_"+ot].isPercentage;const Kt=At.charAt(0)==="-";At.charAt(At.length-1)==="%"?Nt=!0:At.charAt(At.length-1)==="x"&&At.charAt(At.length-2)==="p"&&(Nt=!1),((Me=yt.parent)==null?void 0:Me.typeName)==="StackPanel"&&(Nt=!1);let si=(je=At.match(/([\d.,]+)/g))==null?void 0:je[0];si||(si="0"),si=(Kt?"-":"")+si,si+=Nt?"%":"px";const Pi=yt[ot];yt[ot]=si,(rt=this.props.onPropertyChangedObservable)==null||rt.notifyObservers({object:yt,property:ot,initialValue:Pi,value:yt[ot]})}}_addOrUpdateMetadata(ot){var At;for(const Me of this.props.controls){const je=Me.metadata;for(const yt in ot){const Rt=ot[yt];!isNaN(Rt)&&!isNaN(parseFloat(Rt))?ot[yt]=parseFloat(Rt):Rt.trim()==="true"?ot[yt]=!0:Rt.trim()==="false"&&(ot[yt]=!1)}const rt=Object.assign({},Me.metadata,ot);Me.metadata=rt,(At=this.props.onPropertyChangedObservable)==null||At.notifyObservers({object:Me,property:"metadata",initialValue:je,value:rt})}}_removeFromMetadata(ot){var At;for(const Me of this.props.controls){const je=Object.assign({},Me.metadata);delete Me.metadata[ot],(At=this.props.onPropertyChangedObservable)==null||At.notifyObservers({object:Me,property:"metadata",initialValue:je,value:Me.metadata})}}_getCommonPropertyKeys(ot){if(ot=ot.filter(je=>!!je),ot.length===0)return[];if(ot.length===1)return Object.keys(ot[0]);const[At,...Me]=ot;return Object.keys(At).filter(je=>Me.every(rt=>je in rt))}_markChildrenAsDirty(){for(const ot of this.props.controls)ot instanceof _.Container&&ot._children.forEach(At=>{At._markAsDirty()})}componentWillUnmount(){var ot,At;this._onPropertyChangedObserver&&((ot=this.props.onPropertyChangedObservable)==null||ot.remove(this._onPropertyChangedObserver)),this._onFontsParsedObserver&&((At=this.props.onFontsParsedObservable)==null||At.remove(this._onFontsParsedObserver));for(let Me=0;Me<this._onControlVisibilityChangedObservers.length;Me++)this.props.controls[Me].onIsVisibleChangedObservable.remove(this._onControlVisibilityChangedObservers[Me])}_filterFontDuplicates(ot){const At=new Set;return ot.filter(Me=>{const je=Me.value,rt=At.has(je);return At.add(je),!rt})}render(){const ot=this.props.controls,At=ot[0];let Me=At.horizontalAlignment,je=At.verticalAlignment;for(const qe of ot)qe.horizontalAlignment!==Me&&(Me=_.Control.HORIZONTAL_ALIGNMENT_CENTER),qe.verticalAlignment!==je&&(je=_.Control.VERTICAL_ALIGNMENT_CENTER);ot.every(qe=>qe.typeName==="TextBlock"&&qe.resizeToFit===!1)&&(Me=At.textHorizontalAlignment,je=At.textVerticalAlignment);const rt=At instanceof _.Container||At.typeName==="TextBlock"||At.typeName==="InputText"||At.typeName==="InputPassword",yt=(0,E.makeTargetsProxy)(ot,this.props.onPropertyChangedObservable),Rt=qe=>{const ri=ot.map(mt=>mt[qe]._value),Ot=ri[0];if(ri.every(mt=>mt===Ot)){const mt=Nt(qe);return mt==="%"?(Ot*100).toFixed(2):mt==="PX"?Ot.toFixed(2):E.conflictingValuesPlaceholder}else return E.conflictingValuesPlaceholder},Nt=qe=>{const ri=ot.map(mt=>mt[qe]._unit),Ot=ri[0];return ri.every(mt=>mt===Ot)?Ot===_.ValueAndUnit.UNITMODE_PIXEL?"PX":"%":E.conflictingValuesPlaceholder},Kt=(qe,ri,Ot,mt)=>{var Ye;for(const Tt of ot){const Ut=Tt[qe],oi=Tt["_"+qe]._unit;let ji=Tt[`${qe}InPixels`]+ri;Ot!==void 0&&ji<Ot&&(ji=Ot),Tt[`${qe}InPixels`]=ji,oi===_.ValueAndUnit.UNITMODE_PERCENTAGE&&b.CoordinateHelper.ConvertToPercentage(Tt,[qe]),(Ye=this.props.onPropertyChangedObservable)==null||Ye.notifyObservers({object:Tt,property:qe,initialValue:Ut,value:Tt[qe]})}},si=(qe,ri)=>{for(const Ot of ot)qe==="PX"?b.CoordinateHelper.ConvertToPercentage(Ot,[ri],this.props.onPropertyChangedObservable):b.CoordinateHelper.ConvertToPixels(Ot,[ri],this.props.onPropertyChangedObservable)},Pi=[{label:"normal",value:"normal",id:"0"},{label:"italic",value:"italic",id:"1"},{label:"oblique",value:"oblique",id:"2"}];let gi=!1,bi=!1,wi=!1,Ni=!1;const qt=ot[0].parent,ci=this._filterFontDuplicates(this.state.fontFamilyOptions.filter(({label:qe})=>qe!=="Custom Font").map(({label:qe,value:ri})=>({label:qe,value:qe,id:ri.toString()})));return((qt==null?void 0:qt.getClassName())==="StackPanel"||(qt==null?void 0:qt.getClassName())==="VirtualKeyboard")&&(qt.isVertical?(bi=!0,Ni=!0):(gi=!0,wi=!0)),(0,f.jsxs)("div",{children:[!this.props.hideDimensions&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{className:"ge-divider alignment-bar",children:[(0,f.jsx)(x.CommandButtonComponent,{tooltip:"Left",icon:Se,shortcut:"",isActive:Me===_.Control.HORIZONTAL_ALIGNMENT_LEFT,onClick:()=>{this._updateAlignment("horizontalAlignment",_.Control.HORIZONTAL_ALIGNMENT_LEFT)},disabled:gi}),(0,f.jsx)(x.CommandButtonComponent,{tooltip:"Center",icon:Ae,shortcut:"",isActive:Me===_.Control.HORIZONTAL_ALIGNMENT_CENTER,onClick:()=>{this._updateAlignment("horizontalAlignment",_.Control.HORIZONTAL_ALIGNMENT_CENTER)},disabled:gi}),(0,f.jsx)(x.CommandButtonComponent,{tooltip:"Right",icon:we,shortcut:"",isActive:Me===_.Control.HORIZONTAL_ALIGNMENT_RIGHT,onClick:()=>{this._updateAlignment("horizontalAlignment",_.Control.HORIZONTAL_ALIGNMENT_RIGHT)},disabled:gi}),(0,f.jsx)(x.CommandButtonComponent,{tooltip:"Top",icon:st,shortcut:"",isActive:je===_.Control.VERTICAL_ALIGNMENT_TOP,onClick:()=>{this._updateAlignment("verticalAlignment",_.Control.VERTICAL_ALIGNMENT_TOP)},disabled:bi}),(0,f.jsx)(x.CommandButtonComponent,{tooltip:"Center",icon:ke,shortcut:"",isActive:je===_.Control.VERTICAL_ALIGNMENT_CENTER,onClick:()=>{this._updateAlignment("verticalAlignment",_.Control.VERTICAL_ALIGNMENT_CENTER)},disabled:bi}),(0,f.jsx)(x.CommandButtonComponent,{tooltip:"Bottom",icon:Ve,shortcut:"",isActive:je===_.Control.VERTICAL_ALIGNMENT_BOTTOM,onClick:()=>{this._updateAlignment("verticalAlignment",_.Control.VERTICAL_ALIGNMENT_BOTTOM)},disabled:bi})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(T.IconComponent,{icon:N,label:"Position"}),(0,f.jsx)(h.TextInputLineComponent,{numbersOnly:!0,lockObject:this.props.lockObject,label:"X",delayInput:!0,value:Rt("_left"),onChange:qe=>this._checkAndUpdateValues("left",qe),unit:(0,f.jsx)(nt.UnitButton,{unit:Nt("_left"),onClick:qe=>si(qe,"left")}),arrows:!0,arrowsIncrement:qe=>Kt("left",qe)}),(0,f.jsx)(h.TextInputLineComponent,{numbersOnly:!0,lockObject:this.props.lockObject,label:"Y",delayInput:!0,value:Rt("_top"),onChange:qe=>this._checkAndUpdateValues("top",qe),unit:(0,f.jsx)(nt.UnitButton,{unit:Nt("_top"),onClick:qe=>si(qe,"top")}),arrows:!0,arrowsIncrement:qe=>Kt("top",qe)})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(T.IconComponent,{icon:R,label:"Size"}),(0,f.jsx)(h.TextInputLineComponent,{numbersOnly:!0,lockObject:this.props.lockObject,label:"W",delayInput:!0,value:Rt("_width"),onChange:qe=>{for(const ri of ot)ri.typeName==="Image"?ri.autoScale=!1:ri instanceof _.Container?ri.adaptWidthToChildren=!1:ri.typeName==="ColorPicker"&&(qe==="0"||qe==="-")&&(qe="1");this._checkAndUpdateValues("width",qe)},unit:(0,f.jsx)(nt.UnitButton,{unit:Nt("_width"),locked:wi,onClick:qe=>si(qe,"width")}),arrows:!0,arrowsIncrement:qe=>Kt("width",qe)}),(0,f.jsx)(h.TextInputLineComponent,{numbersOnly:!0,lockObject:this.props.lockObject,label:"H",delayInput:!0,value:Rt("_height"),onChange:qe=>{for(const ri of ot)ri.typeName==="Image"?ri.autoScale=!1:ri instanceof _.Container?ri.adaptHeightToChildren=!1:ri.typeName==="ColorPicker"&&(qe==="0"||qe==="-")&&(qe="1");this._checkAndUpdateValues("height",qe)},unit:(0,f.jsx)(nt.UnitButton,{unit:Nt("_height"),locked:Ni,onClick:qe=>si(qe,"height")}),arrows:!0,arrowsIncrement:qe=>Kt("height",qe)})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(T.IconComponent,{icon:I,label:"Vertical Padding"}),(0,f.jsx)(h.TextInputLineComponent,{numbersOnly:!0,lockObject:this.props.lockObject,label:"T",delayInput:!0,value:Rt("_paddingTop"),onChange:qe=>{this._checkAndUpdateValues("paddingTop",qe),this._markChildrenAsDirty()},unit:(0,f.jsx)(nt.UnitButton,{unit:Nt("_paddingTop"),onClick:qe=>si(qe,"paddingTop")}),arrows:!0,arrowsIncrement:qe=>Kt("paddingTop",qe,0)}),(0,f.jsx)(h.TextInputLineComponent,{numbersOnly:!0,lockObject:this.props.lockObject,label:"B",delayInput:!0,value:Rt("_paddingBottom"),onChange:qe=>{this._checkAndUpdateValues("paddingBottom",qe),this._markChildrenAsDirty()},unit:(0,f.jsx)(nt.UnitButton,{unit:Nt("_paddingBottom"),onClick:qe=>si(qe,"paddingBottom")}),arrows:!0,arrowsIncrement:qe=>Kt("paddingBottom",qe,0)})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(T.IconComponent,{icon:te,label:"Horizontal Padding"}),(0,f.jsx)(h.TextInputLineComponent,{numbersOnly:!0,lockObject:this.props.lockObject,label:"L",delayInput:!0,value:Rt("_paddingLeft"),onChange:qe=>{this._checkAndUpdateValues("paddingLeft",qe),this._markChildrenAsDirty()},unit:(0,f.jsx)(nt.UnitButton,{unit:Nt("_paddingLeft"),onClick:qe=>si(qe,"paddingLeft")}),arrows:!0,arrowsIncrement:qe=>Kt("paddingLeft",qe)}),(0,f.jsx)(h.TextInputLineComponent,{numbersOnly:!0,lockObject:this.props.lockObject,label:"R",delayInput:!0,value:Rt("_paddingRight"),onChange:qe=>{this._checkAndUpdateValues("paddingRight",qe),this._markChildrenAsDirty()},onPropertyChangedObservable:this.props.onPropertyChangedObservable,unit:(0,f.jsx)(nt.UnitButton,{unit:Nt("_paddingRight"),onClick:qe=>si(qe,"paddingRight")}),arrows:!0,arrowsIncrement:qe=>Kt("paddingRight",qe)})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(T.IconComponent,{icon:Ke,label:"Makes padding affect only the descendants of this control"}),(0,f.jsx)(A.CheckBoxLineComponent,{label:"ONLY PAD DESCENDANTS",target:yt,propertyName:"descendentsOnlyPadding"})]}),(0,f.jsx)("hr",{className:"ge"})]}),(qt==null?void 0:qt.name)==="root"&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(m.TextLineComponent,{label:"LINK OFFSET",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(T.IconComponent,{icon:X,label:"Link offset"}),(0,f.jsx)(h.TextInputLineComponent,{numbersOnly:!0,lockObject:this.props.lockObject,label:"X",delayInput:!0,value:Rt("_linkOffsetX"),onChange:qe=>this._checkAndUpdateValues("linkOffsetX",qe),unit:(0,f.jsx)(nt.UnitButton,{unit:Nt("_linkOffsetX"),onClick:qe=>si(qe,"linkOffsetX")}),arrows:!0,arrowsIncrement:qe=>Kt("linkOffsetX",qe)}),(0,f.jsx)(h.TextInputLineComponent,{numbersOnly:!0,lockObject:this.props.lockObject,label:"Y",delayInput:!0,value:Rt("_linkOffsetY"),onChange:qe=>this._checkAndUpdateValues("linkOffsetY",qe),unit:(0,f.jsx)(nt.UnitButton,{unit:Nt("_linkOffsetY"),onClick:qe=>si(qe,"linkOffsetY")}),arrows:!0,arrowsIncrement:qe=>Kt("linkOffsetY",qe)})]}),(0,f.jsx)("hr",{className:"ge"})]}),(0,f.jsx)(m.TextLineComponent,{tooltip:"",label:"SERIALIZATION",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(T.IconComponent,{icon:fe,label:"Serializable"}),(0,f.jsx)(A.CheckBoxLineComponent,{label:"ISSERIALIZABLE",target:yt,propertyName:"isSerializable"})]}),(0,f.jsx)(m.TextLineComponent,{tooltip:"",label:"VISIBILITY",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(T.IconComponent,{icon:se,label:"Visible"}),(0,f.jsx)(A.CheckBoxLineComponent,{label:"ISVISIBLE",target:yt,propertyName:"isVisible",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,f.jsx)(m.TextLineComponent,{tooltip:"",label:"TRANSFORMATION",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(T.IconComponent,{icon:ie,label:"Scale"}),(0,f.jsx)(ct.FloatLineComponent,{lockObject:this.props.lockObject,label:"X",target:yt,propertyName:"scaleX",arrows:!0,digits:2,step:"0.0005"}),(0,f.jsx)(ct.FloatLineComponent,{lockObject:this.props.lockObject,label:"Y",target:yt,propertyName:"scaleY",arrows:!0,digits:2,step:"0.0005"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(T.IconComponent,{icon:K,label:"Transform Center"}),(0,f.jsx)(ct.FloatLineComponent,{lockObject:this.props.lockObject,label:"X",target:yt,propertyName:"transformCenterX",arrows:!0,digits:2,step:"0.0005"}),(0,f.jsx)(ct.FloatLineComponent,{lockObject:this.props.lockObject,label:"Y",target:yt,propertyName:"transformCenterY",arrows:!0,digits:2,step:"0.0005"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(T.IconComponent,{icon:ee,label:"Rotation"}),(0,f.jsx)(d.SliderLineComponent,{iconLabel:"Rotation",lockObject:this.props.lockObject,label:"",target:yt,decimalCount:2,propertyName:"rotation",minimum:0,maximum:2*Math.PI,step:.01,unit:(0,f.jsx)(nt.UnitButton,{unit:"RAD",locked:!0})})]}),(0,f.jsx)("hr",{className:"ge"}),(0,f.jsx)(m.TextLineComponent,{tooltip:"",label:"APPEARANCE",value:" ",color:"grey"}),ot.every(qe=>qe.color!==void 0&&qe.typeName!=="Image"&&qe.typeName!=="ImageBasedSlider"&&qe.typeName!=="ColorPicker")&&(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(T.IconComponent,{icon:re,label:"Outline Color"}),(0,f.jsx)(S.ColorLine,{lockObject:this.props.lockObject,label:"Outline Color",target:yt,propertyName:"color"})]}),ot.every(qe=>qe.background!==void 0)&&(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(T.IconComponent,{icon:oe,label:"Background Color"}),(0,f.jsx)(S.ColorLine,{lockObject:this.props.lockObject,label:"Background Color",target:yt,propertyName:"background"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(T.IconComponent,{icon:D,label:"Alpha"}),(0,f.jsx)(d.SliderLineComponent,{lockObject:this.props.lockObject,label:"",target:yt,propertyName:"alpha",minimum:0,maximum:1,step:.01})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(T.IconComponent,{icon:W,label:"Shadow Color"}),(0,f.jsx)(S.ColorLine,{lockObject:this.props.lockObject,label:"",target:yt,propertyName:"shadowColor"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(T.IconComponent,{icon:Q,label:"Shadow Offset"}),(0,f.jsx)(ct.FloatLineComponent,{lockObject:this.props.lockObject,label:"X",target:yt,propertyName:"shadowOffsetX",unit:(0,f.jsx)(nt.UnitButton,{unit:"PX",locked:!0}),arrows:!0,step:"0.1",digits:2}),(0,f.jsx)(ct.FloatLineComponent,{lockObject:this.props.lockObject,label:"Y",target:yt,propertyName:"shadowOffsetY",unit:(0,f.jsx)(nt.UnitButton,{unit:"PX",locked:!0}),arrows:!0,step:"0.1",digits:2})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(T.IconComponent,{icon:ne,label:"Shadow Blur"}),(0,f.jsx)(ct.FloatLineComponent,{lockObject:this.props.lockObject,label:" ",target:yt,propertyName:"shadowBlur",arrows:!0,min:0,digits:2})]}),rt&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("hr",{className:"ge"}),(0,f.jsx)(m.TextLineComponent,{tooltip:"",label:"FONT STYLE",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(T.IconComponent,{icon:w,label:"Font Family"}),(0,f.jsx)(O.OptionsLineComponent,{options:ci,selectedOptionValue:yt.fontFamily,onOptionSelected:qe=>{yt.fontFamily=qe},onOptionAdded:({value:qe})=>{this._addFont(qe)},addOptionPlaceholder:"Add new font...",validateNewOptionValue:qe=>qe.length>0&&!ci.find(ri=>ri.label===qe)?document.fonts.check(`12px ${qe}`):!1})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(T.IconComponent,{icon:V,label:"Font Weight"}),(0,f.jsx)(h.TextInputLineComponent,{lockObject:this.props.lockObject,label:"",target:yt,propertyName:"fontWeight"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(T.IconComponent,{icon:Y,label:"Font Style"}),(0,f.jsx)(O.OptionsLineComponent,{options:Pi,selectedOptionValue:yt.fontStyle,onOptionSelected:qe=>{yt.fontStyle=qe}})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(T.IconComponent,{icon:k,label:"Font Size"}),(0,f.jsx)(h.TextInputLineComponent,{lockObject:this.props.lockObject,label:"",numbersOnly:!0,value:Rt("_fontSize"),onChange:qe=>this._checkAndUpdateValues("fontSize",qe),unit:(0,f.jsx)(nt.UnitButton,{unit:Nt("_fontSize"),onClick:qe=>si(qe,"fontSize")}),arrows:!0,arrowsIncrement:qe=>Kt("fontSize",qe,0)})]})]}),(0,f.jsx)("hr",{className:"ge"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(m.TextLineComponent,{tooltip:"",label:"METADATA",value:" ",color:"grey"}),(0,f.jsx)(x.CommandButtonComponent,{tooltip:"Add",icon:ue,isActive:!1,onClick:()=>{const ri=(xt.GUIEditor._PopupWindow??window).prompt("Enter new key name for metadata value","newKey");if(ri===null||ri.trim()==="")return;let Ot=ri,mt=1;for(;ot.some(Ye=>Ot in Ye.metadata);)mt++,Ot=ri+mt;this._addOrUpdateMetadata({[Ot]:""})}})]}),this._getCommonPropertyKeys(ot.map(qe=>qe.metadata)).map(qe=>{if(qe==="guiEditor"||qe.startsWith("_")||qe==="editorUniqueId")return;const ri=ot.find(Tt=>!!Tt.metadata);if(!ri)return;let Ot=ri.metadata[qe];const mt=typeof Ot=="object";return ot.map(Tt=>Tt.metadata[qe]).every(Tt=>Tt===Ot)||(Ot=E.conflictingValuesPlaceholder),(0,f.jsx)("div",{children:(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(h.TextInputLineComponent,{numbersOnly:!1,lockObject:this.props.lockObject,label:"",delayInput:!0,value:qe,disabled:!0}),(0,f.jsx)(h.TextInputLineComponent,{numbersOnly:!1,lockObject:this.props.lockObject,label:":",delayInput:!0,disabled:mt,value:typeof Ot=="string"?Ot:JSON.stringify(Ot),onChange:Tt=>this._addOrUpdateMetadata({[qe]:Tt})}),(0,f.jsx)(x.CommandButtonComponent,{tooltip:"Remove",icon:he,isActive:!1,onClick:()=>this._removeFromMetadata(qe)})]})},qe)})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/containerPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{ContainerPropertyGridComponent:()=>b});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),d=u("../../../dev/sharedUiComponents/dist/imgs/clipContentsIcon.svg"),h=u("../../../dev/sharedUiComponents/dist/imgs/clipChildrenIcon.svg"),x=u("../../../dev/sharedUiComponents/dist/imgs/autoStretchWidthIcon.svg"),A=u("../../../dev/sharedUiComponents/dist/imgs/autoStretchHeightIcon.svg"),S=u("../../../tools/guiEditor/dist/imgs/adtIcon.svg"),E=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js");class b extends p.Component{render(){const{containers:T,onPropertyChangedObservable:O}=this.props,R=(0,_.makeTargetsProxy)(T,O);return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(E.IconComponent,{icon:d,label:"Clips content outside the bounding box of this control"}),(0,f.jsx)(m.CheckBoxLineComponent,{label:"CLIP CONTENT",target:R,propertyName:"clipContent"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(E.IconComponent,{icon:h,label:"Clips child controls to this control's shape"}),(0,f.jsx)(m.CheckBoxLineComponent,{label:"CLIP CHILDREN",target:R,propertyName:"clipChildren"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(E.IconComponent,{icon:x,label:"Makes the container's width automatically adapt to its children"}),(0,f.jsx)(m.CheckBoxLineComponent,{label:"ADAPT WIDTH TO CHILDREN",target:R,propertyName:"adaptWidthToChildren"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(E.IconComponent,{icon:A,label:"Makes the container's height automatically adapt to its children"}),(0,f.jsx)(m.CheckBoxLineComponent,{label:"ADAPT HEIGHT TO CHILDREN",target:R,propertyName:"adaptHeightToChildren"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(E.IconComponent,{icon:S,label:"Delegates picking to children controls"}),(0,f.jsx)(m.CheckBoxLineComponent,{label:"DELEGATE PICKING TO CHILDREN",target:R,propertyName:"delegatePickingToChildren"})]})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/controlPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{ControlPropertyGridComponent:()=>_});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js");class _ extends p.Component{constructor(h){super(h)}render(){const h=this.props.controls;return(0,f.jsx)("div",{className:"pane",children:(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,controls:h,onPropertyChangedObservable:this.props.onPropertyChangedObservable,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState})})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/displayGridPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{DisplayGridPropertyGridComponent:()=>N});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/colorLineComponent.js"),x=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),A=u("../../../dev/sharedUiComponents/dist/imgs/sizeIcon.svg"),S=u("../../../dev/sharedUiComponents/dist/imgs/colorIcon.svg"),E=u("../../../dev/sharedUiComponents/dist/imgs/strokeWeightIcon.svg"),b=u("../../../dev/sharedUiComponents/dist/imgs/displayGridLine1Icon.svg"),M=u("../../../dev/sharedUiComponents/dist/imgs/frequencyIcon.svg"),T=u("../../../dev/sharedUiComponents/dist/imgs/displayGridLine2Icon.svg"),O=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js"),R=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js"),I=u("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class N extends p.Component{constructor(D){super(D)}render(){const{displayGrids:D,lockObject:k,onPropertyChangedObservable:Y}=this.props,V=(0,x.makeTargetsProxy)(D,Y);return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:k,controls:D,onPropertyChangedObservable:Y,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(_.TextLineComponent,{label:"DISPLAY GRID",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(O.IconComponent,{icon:A,label:"Cell Size"}),(0,f.jsx)(d.FloatLineComponent,{min:1,isInteger:!0,lockObject:k,label:"W",target:V,propertyName:"cellWidth",onPropertyChangedObservable:Y,unit:(0,f.jsx)(R.UnitButton,{locked:!0,unit:"PX"}),arrows:!0}),(0,f.jsx)(d.FloatLineComponent,{min:1,isInteger:!0,lockObject:k,label:"H",target:V,propertyName:"cellHeight",onPropertyChangedObservable:Y,unit:(0,f.jsx)(R.UnitButton,{locked:!0,unit:"PX"}),arrows:!0})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(O.IconComponent,{icon:b,label:"Show Minor Lines"}),(0,f.jsx)(I.CheckBoxLineComponent,{label:"SHOW MINOR LINES",onValueChanged:()=>this.forceUpdate(),target:V,propertyName:"_displayMinorLines"})]}),V._displayMinorLines&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(O.IconComponent,{icon:E,label:"Minor Line Tickness"}),(0,f.jsx)(d.FloatLineComponent,{min:1,isInteger:!0,lockObject:k,label:"",target:V,propertyName:"minorLineTickness",onPropertyChangedObservable:Y,unit:(0,f.jsx)(R.UnitButton,{locked:!0,unit:"PX"}),arrows:!0})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(O.IconComponent,{icon:S,label:"Minor Line Color"}),(0,f.jsx)(h.ColorLine,{lockObject:k,label:"",target:V,propertyName:"minorLineColor",onPropertyChangedObservable:Y})]})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(O.IconComponent,{icon:T,label:"Show Major Lines"}),(0,f.jsx)(I.CheckBoxLineComponent,{label:"SHOW MAJOR LINES",onValueChanged:()=>this.forceUpdate(),target:V,propertyName:"_displayMajorLines"})]}),V._displayMajorLines&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(O.IconComponent,{icon:E,label:"Major Line Tickness"}),(0,f.jsx)(d.FloatLineComponent,{min:1,isInteger:!0,lockObject:k,label:"",target:V,propertyName:"majorLineTickness",onPropertyChangedObservable:Y,unit:(0,f.jsx)(R.UnitButton,{locked:!0,unit:"PX"}),arrows:!0})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(O.IconComponent,{icon:S,label:"Major Line Color"}),(0,f.jsx)(h.ColorLine,{lockObject:k,label:"",target:V,propertyName:"majorLineColor",onPropertyChangedObservable:Y})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(O.IconComponent,{icon:M,label:"Major Line Frequency"}),(0,f.jsx)(d.FloatLineComponent,{min:1,isInteger:!0,lockObject:k,label:"",target:V,propertyName:"majorLineFrequency",onPropertyChangedObservable:Y,arrows:!0})]})]})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/ellipsePropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{EllipsePropertyGridComponent:()=>b});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),x=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/containerPropertyGridComponent.js"),A=u("../../../dev/sharedUiComponents/dist/imgs/strokeWeightIcon.svg"),S=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js"),E=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js");class b extends p.Component{constructor(T){super(T)}render(){const{ellipses:T,onPropertyChangedObservable:O,lockObject:R}=this.props,I=(0,h.makeTargetsProxy)(T,O);return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:R,controls:T,onPropertyChangedObservable:O,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(d.TextLineComponent,{label:"ELLIPSE",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(S.IconComponent,{icon:A,label:"Stroke Weight"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:R,label:"",target:I,propertyName:"thickness",unit:(0,f.jsx)(E.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2})]}),(0,f.jsx)(x.ContainerPropertyGridComponent,{containers:T,onPropertyChangedObservable:O})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/gridPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{GridPropertyGridComponent:()=>I});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),h=u("../../../tools/guiEditor/dist/components/commandButtonComponent.js"),x=u("../../../dev/sharedUiComponents/dist/imgs/gridColumnIconDark.svg"),A=u("../../../dev/sharedUiComponents/dist/imgs/gridRowIconDark.svg"),S=u("../../../dev/sharedUiComponents/dist/imgs/confirmGridElementDark.svg"),E=u("../../../dev/sharedUiComponents/dist/imgs/subtractGridElementDark.svg"),b=u("../../../dev/sharedUiComponents/dist/imgs/addGridElementDark.svg"),M=u("../../../dev/sharedUiComponents/dist/imgs/cancelGridElementDark.svg"),T=u("../../../dev/sharedUiComponents/dist/imgs/valueChangedGridDark.svg"),O=u("../../../dev/sharedUiComponents/dist/imgs/deleteGridElementDark.svg"),R=u("gui/2D/controls/container");class I extends p.Component{constructor(w){super(w),this._previousGrid=null,this._rowDefinitions=[],this._rowEditFlags=[],this._columnEditFlags=[],this._columnDefinitions=[],this._editedRow=!1,this._editedColumn=!1,this._rowChild=!1,this._columnChild=!1,this.state={removingColumn:!1,removingRow:!1}}renderRows(){return this._rowDefinitions.map((w,D)=>(0,f.jsx)("div",{className:this.state.removingRow&&D===this._rowEditFlags.length-1?"ge-grid-remove":this._rowEditFlags[D]?"ge-grid-edit":"ge-grid",children:(0,f.jsxs)("div",{className:"ge-grid-divider",children:[(0,f.jsx)(d.TextInputLineComponent,{lockObject:this.props.lockObject,label:"",icon:A,iconLabel:`Row ${D}`,value:w,numbersOnly:!0,onChange:k=>{k!==this._rowDefinitions[D]&&(this._rowDefinitions[D]=k,this._rowEditFlags[D]=!0,this._editedRow=!0,this._rowChild=!1,this.setState({removingRow:!1}))},disabled:this.state.removingRow},`rText${D}-${this.state.removingRow}`),(0,f.jsx)(_.TextLineComponent,{tooltip:"",label:`[${D}]`,value:"",color:"grey"}),this.state.removingRow&&D===this._rowEditFlags.length-1&&(0,f.jsx)(_.TextLineComponent,{icon:O,label:" ",value:" ",color:"grey"}),this._rowEditFlags[D]&&(0,f.jsx)(_.TextLineComponent,{icon:T,label:" ",value:" ",color:"grey"})]})},`r${D}`))}setRowValues(){const w=this.props.grids[0];this._rowDefinitions=[],this._rowEditFlags=[],this._editedRow=!1;for(let D=0;D<w.rowCount;D++){const k=w.getRowDefinition(D);k&&(this._rowDefinitions.push(k.toString(w._host,2)),this._rowEditFlags.push(!1))}}setColumnValues(){const w=this.props.grids[0];this._columnDefinitions=[],this._columnEditFlags=[],this._editedColumn=!1;for(let D=0;D<w.columnCount;D++){const k=w.getColumnDefinition(D);k&&(this._columnDefinitions.push(k.toString(w._host,2)),this._columnEditFlags.push(!1))}}renderColumns(){return this._columnDefinitions.map((w,D)=>(0,f.jsx)("div",{className:this.state.removingColumn&&D===this._columnEditFlags.length-1?"ge-grid-remove":this._columnEditFlags[D]?"ge-grid-edit":"ge-grid",children:(0,f.jsxs)("div",{className:"ge-grid-divider",children:[(0,f.jsx)(d.TextInputLineComponent,{lockObject:this.props.lockObject,label:"",icon:x,iconLabel:`Column ${D}`,value:w,numbersOnly:!0,onChange:k=>{k!==this._columnDefinitions[D]&&(this._columnDefinitions[D]=k,this._columnEditFlags[D]=!0,this._editedColumn=!0,this._columnChild=!1,this.setState({removingColumn:!1}))},disabled:this.state.removingColumn},`ctext${D}-${this.state.removingColumn}`),(0,f.jsx)(_.TextLineComponent,{tooltip:"",label:`[${D}]`,value:"",color:"grey"}),this.state.removingColumn&&D===this._columnEditFlags.length-1&&(0,f.jsx)(_.TextLineComponent,{icon:O,label:" ",value:" ",color:"grey"}),this._columnEditFlags[D]&&(0,f.jsx)(_.TextLineComponent,{icon:T,label:" ",value:" ",color:"grey"})]})},`c${D}`))}parsePercentage(w){let D;return w.trim().at(-1)==="%"?D=parseFloat(w.replace("%",""))/100:D=parseFloat(w),R.MathTools.Round(D,1e4)}isCloseTo(w,D,k=.001){return Math.abs(w-D)<k}adjustPercentages(w,D){let k=0,Y=0;const V=[];for(let K=0;K<w.length;++K){let ie=w[K];const ne=this.checkPercentage(ie);D[K]&&(ie=this.checkValue(ie,ne)),ne&&(k+=this.parsePercentage(ie),D[K]&&(Y+=this.parsePercentage(ie))),V.push(ie)}let ee=[];if(this.isCloseTo(k,1))ee=V;else{const K=1-Y,ie=Math.abs(K),ne=k-Y,te=this.isCloseTo(ne,0);for(let W=0;W<V.length;++W){const Q=V[W];if(this.checkPercentage(Q)&&!D[W]||D[W]&&te){const se=this.parsePercentage(Q)/(te?k:ne)*(te?1:ie);ee.push(`${se*100}%`)}else ee.push(Q)}}return ee}resizeRow(){const w=this.props.grids[0],D=this.adjustPercentages(this._rowDefinitions,this._rowEditFlags);for(let k=0;k<D.length;++k)w.setRowDefinition(k,this.parsePercentage(D[k]),!this.checkPercentage(D[k]));this.setRowValues()}resizeColumn(){const w=this.props.grids[0],D=this.adjustPercentages(this._columnDefinitions,this._columnEditFlags);for(let k=0;k<D.length;++k)w.setColumnDefinition(k,this.parsePercentage(D[k]),!this.checkPercentage(this._columnDefinitions[k]));this.setColumnValues()}checkValue(w,D){var Y;let k=(Y=w.match(/([0-9.,]+)/g))==null?void 0:Y[0];return k||(k="0"),k+=D?"%":"px",k}checkPercentage(w){const D="px";return w.substring(w.length-D.length,w.length)!==D}resetValues(){const w=this.props.grids[0];this._columnChild=!1,this._rowChild=!1,this._previousGrid=w,this.setRowValues(),this.setColumnValues(),this.resizeColumn(),this.resizeRow(),this.setState({removingColumn:!1,removingRow:!1})}render(){const w=this.props.grids,D=this.props.grids[0];return D!==this._previousGrid&&this.resetValues(),(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,controls:w,onPropertyChangedObservable:this.props.onPropertyChangedObservable,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{className:"ge"}),(0,f.jsx)(_.TextLineComponent,{tooltip:"",label:"GRID",value:" ",color:"grey"}),this.renderRows(),this.props.grids.length===1&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:"ge-gridLine",children:(0,f.jsxs)("div",{className:"ge-grid-button-divider",children:[(0,f.jsx)(h.CommandButtonComponent,{altStyle:!0,tooltip:"Add Row",icon:b,shortcut:"",isActive:!1,disabled:this.state.removingRow||this._editedRow,onClick:()=>{let k=0,Y=0;for(let V=0;V<D.rowCount;++V){const ee=D.getRowDefinition(V);ee!=null&&ee.isPercentage&&(k+=ee==null?void 0:ee.getValue(D.host),Y++)}D.addRowDefinition(k/Y,!1),this.resetValues(),this.forceUpdate()}})," ",(0,f.jsx)(h.CommandButtonComponent,{altStyle:!0,tooltip:"Remove Row",icon:E,shortcut:"",isActive:!1,disabled:this.state.removingRow||D.rowCount<=1||this._editedRow,onClick:()=>{let k=!1;for(let Y=0;Y<D.columnCount;++Y){const V=D.cells[D.rowCount-1+":"+Y];if(V!=null&&V.children.length){k=!0;break}}this.resetValues(),k&&(this._rowChild=!0),this.setState({removingRow:!0})}}),this._editedRow&&(0,f.jsxs)(f.Fragment,{children:[" ",(0,f.jsx)(h.CommandButtonComponent,{altStyle:!0,tooltip:"Confirm",icon:S,shortcut:"",isActive:!1,onClick:()=>{this.resizeRow(),this.forceUpdate()}}),(0,f.jsx)(h.CommandButtonComponent,{altStyle:!0,tooltip:"Cancel",icon:M,shortcut:"",isActive:!1,onClick:()=>{this.resetValues(),this.forceUpdate()}})]}),this.state.removingRow&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(h.CommandButtonComponent,{altStyle:!0,tooltip:"Confirm",icon:S,shortcut:"",isActive:!1,onClick:()=>{var k;D.removeRowDefinition(D.rowCount-1),this.setRowValues(),this.resizeRow(),this.setState({removingRow:!1}),this._rowChild=!1,(k=this.props.onUpdateRequiredObservable)==null||k.notifyObservers()}}),(0,f.jsx)(h.CommandButtonComponent,{altStyle:!0,tooltip:"Cancel",icon:M,shortcut:"",isActive:!1,onClick:()=>{this.setState({removingRow:!1}),this._rowChild=!1,this.forceUpdate()}})]})]})}),this._rowChild&&(0,f.jsx)(f.Fragment,{children:(0,f.jsx)(_.TextLineComponent,{tooltip:"",label:"This row is not empty. Removing it will delete all contained controls. Do you want to remove this row and delete all controls within?",value:" ",color:"grey"})}),(0,f.jsx)("hr",{className:"ge"}),this.renderColumns(),(0,f.jsxs)("div",{className:"ge-grid-button-divider",children:[(0,f.jsx)(h.CommandButtonComponent,{altStyle:!0,tooltip:"Add Column",icon:b,shortcut:"",isActive:!1,disabled:this.state.removingColumn||this._editedColumn,onClick:()=>{let k=0,Y=0;for(let V=0;V<D.columnCount;++V){const ee=D.getColumnDefinition(V);ee!=null&&ee.isPercentage&&(k+=ee==null?void 0:ee.getValue(D.host),Y++)}D.addColumnDefinition(k/Y,!1),this.resetValues(),this.forceUpdate()}}),(0,f.jsx)(h.CommandButtonComponent,{altStyle:!0,tooltip:"Remove Column",icon:E,shortcut:"",isActive:!1,disabled:this.state.removingColumn||this._editedColumn||D.columnCount<=1,onClick:()=>{let k=!1;for(let Y=0;Y<D.rowCount;++Y){const V=D.cells[Y+":"+(D.columnCount-1)];if(V!=null&&V.children.length){k=!0;break}}this.resetValues(),k&&(this._columnChild=!0),this.setState({removingColumn:!0})}}),this._editedColumn&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(h.CommandButtonComponent,{altStyle:!0,tooltip:"Confirm",icon:S,shortcut:"",isActive:!1,onClick:()=>{this.resizeColumn(),this.forceUpdate()}}),(0,f.jsx)(h.CommandButtonComponent,{altStyle:!0,tooltip:"Cancel",icon:M,shortcut:"",isActive:!1,onClick:()=>{this.resetValues(),this.forceUpdate()}})]}),this.state.removingColumn&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(h.CommandButtonComponent,{altStyle:!0,tooltip:"Confirm",icon:S,shortcut:"",isActive:!1,onClick:()=>{var k;D.removeColumnDefinition(D.columnCount-1),this.setColumnValues(),this.resizeColumn(),this.setState({removingColumn:!1}),this._columnChild=!1,(k=this.props.onUpdateRequiredObservable)==null||k.notifyObservers()}}),(0,f.jsx)(h.CommandButtonComponent,{altStyle:!0,tooltip:"Cancel",icon:M,shortcut:"",isActive:!1,onClick:()=>{this.setState({removingColumn:!1}),this._columnChild=!1}})]})," "]}),this._columnChild&&(0,f.jsx)(f.Fragment,{children:(0,f.jsx)(_.TextLineComponent,{tooltip:"",label:"This column is not empty. Removing it will delete all contained controls. Do you want to remove this column and delete all controls within?",value:" ",color:"grey"})})]})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/imageBasedSliderPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{ImageBasedSliderPropertyGridComponent:()=>M});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),h=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/sliderPropertyGridComponent.js"),x=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),A=u("../../../dev/sharedUiComponents/dist/imgs/thumbImageLinkIcon.svg"),S=u("../../../dev/sharedUiComponents/dist/imgs/valueBarImageLinkIcon.svg"),E=u("../../../dev/sharedUiComponents/dist/imgs/sliderBackgroundImageIcon.svg"),b=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js");class M extends p.Component{constructor(O){super(O)}render(){const O=this.props.imageBasedSliders;return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,controls:O,onPropertyChangedObservable:this.props.onPropertyChangedObservable,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(d.TextLineComponent,{label:"IMAGE LINKS",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(b.IconComponent,{icon:A,label:"Thumb Image Link"}),(0,f.jsx)(_.TextInputLineComponent,{lockObject:this.props.lockObject,target:(0,x.makeTargetsProxy)(O.map(R=>R.thumbImage),this.props.onPropertyChangedObservable),label:"",propertyName:"source"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(b.IconComponent,{icon:S,label:"Value Bar Image Link"}),(0,f.jsx)(_.TextInputLineComponent,{lockObject:this.props.lockObject,target:(0,x.makeTargetsProxy)(O.map(R=>R.valueBarImage),this.props.onPropertyChangedObservable),label:"",propertyName:"source",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(b.IconComponent,{icon:E,label:"Background Image Link"}),(0,f.jsx)(_.TextInputLineComponent,{lockObject:this.props.lockObject,target:(0,x.makeTargetsProxy)(O.map(R=>R.backgroundImage),this.props.onPropertyChangedObservable),label:"",propertyName:"source",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,f.jsx)(h.SliderPropertyGridComponent,{sliders:O,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/imagePropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{ImagePropertyGridComponent:()=>k});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("gui/2D/controls/container"),d=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),x=u("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),A=u("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),S=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),E=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),b=u("../../../dev/sharedUiComponents/dist/imgs/stretchFillIcon.svg"),M=u("../../../dev/sharedUiComponents/dist/imgs/imageLinkIcon.svg"),T=u("../../../dev/sharedUiComponents/dist/imgs/cropIcon.svg"),O=u("../../../dev/sharedUiComponents/dist/imgs/cellIDIcon.svg"),R=u("../../../dev/sharedUiComponents/dist/imgs/autoResizeIcon.svg"),I=u("../../../dev/sharedUiComponents/dist/imgs/sizeIcon.svg"),N=u("../../../dev/sharedUiComponents/dist/imgs/animationSheetIcon.svg"),w=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js"),D=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js");class k extends p.Component{constructor(V){super(V),this._observers=new Map,this.updateObservers([],V.images)}shouldComponentUpdate(V){return this.updateObservers(this.props.images,V.images),!0}updateObservers(V,ee){for(const K of ee)V.includes(K)||this._observers.set(K,K.onImageLoadedObservable.add(()=>this.forceUpdate()));for(const K of V)ee.includes(K)||(K.onImageLoadedObservable.remove(this._observers.get(K)),this._observers.delete(K))}componentWillUnmount(){this.updateObservers(this.props.images,[])}toggleAnimations(V){for(const ee of this.props.images)V?(ee.cellId=0,ee.cellWidth=ee.imageWidth,ee.cellHeight=ee.imageHeight):ee.cellId=-1}getMaxCells(){let V=Number.MAX_SAFE_INTEGER;for(const ee of this.props.images){if(ee.cellWidth===0||ee.cellHeight===0)continue;const K=Math.ceil(ee.imageWidth/ee.cellWidth),ie=Math.ceil(ee.imageHeight/ee.cellHeight),ne=K*ie-1;ne<V&&(V=ne)}return V}updateCellSize(){const V=this.getMaxCells();for(const ee of this.props.images)ee.cellId>V&&(ee.cellId=V);this.forceUpdate()}render(){const V=this.props.images,ee=V[0],K=(0,E.makeTargetsProxy)(V,this.props.onPropertyChangedObservable),ie=[{label:"None",value:_.Image.STRETCH_NONE},{label:"Fill",value:_.Image.STRETCH_FILL},{label:"Uniform",value:_.Image.STRETCH_UNIFORM},{label:"Extend",value:_.Image.STRETCH_EXTEND},{label:"NinePatch",value:_.Image.STRETCH_NINE_PATCH}],ne=V.every(re=>re.cellId!==-1),te=this.getMaxCells(),W=Math.max(...V.map(re=>re.imageWidth)),Q=Math.max(...V.map(re=>re.imageHeight));return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,controls:V,onPropertyChangedObservable:this.props.onPropertyChangedObservable,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(S.TextLineComponent,{label:"IMAGE",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(w.IconComponent,{icon:M,label:"Source"}),(0,f.jsx)(A.TextInputLineComponent,{lockObject:this.props.lockObject,label:" ",target:K,propertyName:"source"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(w.IconComponent,{icon:T,label:"Crop"}),(0,f.jsx)(A.TextInputLineComponent,{lockObject:this.props.lockObject,label:"L",target:K,propertyName:"sourceLeft",numeric:!0,arrows:!0,min:0,placeholder:"0",unit:(0,f.jsx)(D.UnitButton,{unit:"PX",locked:!0})}),(0,f.jsx)(A.TextInputLineComponent,{lockObject:this.props.lockObject,label:"T",target:K,propertyName:"sourceTop",numeric:!0,arrows:!0,min:0,placeholder:"0",unit:(0,f.jsx)(D.UnitButton,{unit:"PX",locked:!0})})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(w.IconComponent,{icon:T,label:"Crop"}),(0,f.jsx)(A.TextInputLineComponent,{lockObject:this.props.lockObject,label:"W",target:K,propertyName:"sourceWidth",numeric:!0,arrows:!0,min:0,placeholder:Math.max(...V.map(re=>re.imageWidth)).toString(),unit:(0,f.jsx)(D.UnitButton,{unit:"PX",locked:!0})}),(0,f.jsx)(A.TextInputLineComponent,{lockObject:this.props.lockObject,label:"H",target:K,propertyName:"sourceHeight",numeric:!0,arrows:!0,min:0,placeholder:Math.max(...V.map(re=>re.imageHeight)).toString(),unit:(0,f.jsx)(D.UnitButton,{unit:"PX",locked:!0})})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(w.IconComponent,{icon:R,label:"Autoscale"}),(0,f.jsx)(h.CheckBoxLineComponent,{label:"AUTOSCALE",target:K,propertyName:"autoScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(w.IconComponent,{icon:b,label:"Stretch"}),(0,f.jsx)(x.OptionsLine,{label:" ",options:ie,target:K,propertyName:"stretch",onSelect:re=>this.setState({mode:re})})]}),V.length===1&&ee.stretch===_.Image.STRETCH_NINE_PATCH&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(w.IconComponent,{icon:T,label:"Slice Horizontal"}),(0,f.jsx)(d.FloatLineComponent,{lockObject:this.props.lockObject,label:"L",target:ee,propertyName:"sliceLeft",onChange:()=>{ee.populateNinePatchSlicesFromImage=!1,this.forceUpdate()}}),(0,f.jsx)(d.FloatLineComponent,{lockObject:this.props.lockObject,label:"R",target:ee,propertyName:"sliceRight",onChange:()=>{ee.populateNinePatchSlicesFromImage=!1,this.forceUpdate()}})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(w.IconComponent,{icon:T,label:"Slice Vertical"}),(0,f.jsx)(d.FloatLineComponent,{lockObject:this.props.lockObject,label:"T",target:ee,propertyName:"sliceTop",onChange:()=>{ee.populateNinePatchSlicesFromImage=!1,this.forceUpdate()}}),(0,f.jsx)(d.FloatLineComponent,{lockObject:this.props.lockObject,label:"B",target:ee,propertyName:"sliceBottom",onChange:()=>{ee.populateNinePatchSlicesFromImage=!1,this.forceUpdate()}})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(w.IconComponent,{icon:R,label:"Populate Nine Patch Slices From Image"}),(0,f.jsx)(h.CheckBoxLineComponent,{label:"SLICE FROM IMAGE",target:ee,propertyName:"populateNinePatchSlicesFromImage",onValueChanged:()=>{this.forceUpdate(),ee._markAsDirty()}})]})]}),(0,f.jsx)("hr",{}),(0,f.jsx)(h.CheckBoxLineComponent,{iconLabel:"animationSheet",icon:N,label:"ANIMATION SHEET",target:(0,E.makeTargetsProxy)(V,this.props.onPropertyChangedObservable,re=>re.cellId!==-1),onValueChanged:()=>{this.toggleAnimations(!ne),this.forceUpdate()}}),ne&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:"ge-divider double",children:(0,f.jsx)(d.FloatLineComponent,{iconLabel:"Cell Id",icon:O,lockObject:this.props.lockObject,label:"",isInteger:!0,target:K,propertyName:"cellId",min:0,max:te})}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(d.FloatLineComponent,{icon:I,lockObject:this.props.lockObject,label:"W",target:K,propertyName:"cellWidth",isInteger:!0,onChange:()=>this.updateCellSize(),min:1,max:W}),(0,f.jsx)(d.FloatLineComponent,{lockObject:this.props.lockObject,label:"H",target:K,propertyName:"cellHeight",isInteger:!0,onChange:()=>this.updateCellSize(),min:1,max:Q})]})]})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/inputTextPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{InputTextPropertyGridComponent:()=>ie});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),x=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),A=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),S=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),E=u("../../../dev/sharedUiComponents/dist/lines/colorLineComponent.js"),b=u("../../../dev/sharedUiComponents/dist/imgs/fillColorIcon.svg"),M=u("../../../dev/sharedUiComponents/dist/imgs/strokeWeightIcon.svg"),T=u("../../../dev/sharedUiComponents/dist/imgs/widthIcon.svg"),O=u("../../../dev/sharedUiComponents/dist/imgs/alphaIcon.svg"),R=u("../../../dev/sharedUiComponents/dist/imgs/colorIcon.svg"),I=u("../../../dev/sharedUiComponents/dist/imgs/textIcon.svg"),N=u("../../../dev/sharedUiComponents/dist/imgs/textInputIcon.svg"),w=u("../../../dev/sharedUiComponents/dist/imgs/autoStretchWidthIcon.svg"),D=u("../../../dev/sharedUiComponents/dist/imgs/marginsIcon.svg"),k=u("../../../dev/sharedUiComponents/dist/imgs/selectAllIcon.svg"),Y=u("../../../dev/sharedUiComponents/dist/imgs/highlightIcon.svg"),V=u("../../../dev/sharedUiComponents/dist/imgs/textPlaceholderIcon.svg"),ee=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js"),K=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js");class ie extends p.Component{constructor(te){super(te)}render(){const{inputTexts:te,onPropertyChangedObservable:W,lockObject:Q}=this.props,re=(0,S.makeTargetsProxy)(te,W);return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:Q,controls:te,onPropertyChangedObservable:W,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(A.TextLineComponent,{label:"INPUT TEXT",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(ee.IconComponent,{icon:I,label:"Text"}),(0,f.jsx)(_.TextInputLineComponent,{lockObject:Q,label:"",target:re,propertyName:"text"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(ee.IconComponent,{icon:N,label:"Prompt Text"}),(0,f.jsx)(_.TextInputLineComponent,{lockObject:Q,label:"",target:re,propertyName:"promptMessage"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(ee.IconComponent,{icon:T,label:"Max Width"}),(0,f.jsx)(_.TextInputLineComponent,{lockObject:Q,label:"",target:re,propertyName:"maxWidth"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(ee.IconComponent,{icon:D,label:"Margins"}),(0,f.jsx)(_.TextInputLineComponent,{lockObject:Q,label:"",target:re,propertyName:"margin"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(ee.IconComponent,{icon:M,label:"Border Thickness"}),(0,f.jsx)(x.FloatLineComponent,{lockObject:Q,label:"",target:re,propertyName:"thickness",unit:(0,f.jsx)(K.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(ee.IconComponent,{icon:w,label:"Automatically Stretch Width"}),(0,f.jsx)(h.CheckBoxLineComponent,{label:"AUTO STRETCH",target:re,propertyName:"autoStretchWidth"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(ee.IconComponent,{icon:k,label:"When Input is Focus, Select All"}),(0,f.jsx)(h.CheckBoxLineComponent,{label:"ON FOCUS, SELECT ALL",target:re,propertyName:"onFocusSelectAll"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(ee.IconComponent,{icon:Y,label:"Highlight Color"}),(0,f.jsx)(E.ColorLine,{lockObject:Q,label:"",target:re,propertyName:"textHighlightColor"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(ee.IconComponent,{icon:O,label:"Highlight Opacity"}),(0,f.jsx)(d.SliderLineComponent,{lockObject:Q,label:"",minimum:0,maximum:1,step:.01,target:re,propertyName:"highligherOpacity"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(ee.IconComponent,{icon:b,label:"Background Color when Focused"}),(0,f.jsx)(E.ColorLine,{lockObject:Q,label:"",target:re,propertyName:"focusedBackground"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(ee.IconComponent,{icon:V,label:"Placeholder Text"}),(0,f.jsx)(_.TextInputLineComponent,{lockObject:Q,label:"",target:re,propertyName:"placeholderText"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(ee.IconComponent,{icon:R,label:"Placeholder Color"}),(0,f.jsx)(E.ColorLine,{lockObject:Q,label:"",target:re,propertyName:"placeholderColor"})]})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/linePropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{LinePropertyGridComponent:()=>O});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),x=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),A=u("../../../dev/sharedUiComponents/dist/imgs/strokeWeightIcon.svg"),S=u("../../../dev/sharedUiComponents/dist/imgs/linePoint1Icon.svg"),E=u("../../../dev/sharedUiComponents/dist/imgs/linePoint2Icon.svg"),b=u("../../../dev/sharedUiComponents/dist/imgs/lineDashIcon.svg"),M=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js"),T=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js");class O extends p.Component{constructor(I){super(I)}onDashChange(I){const N=I.split(",");for(const w of this.props.lines)w.dash=[],N.forEach(D=>{const k=parseInt(D);isNaN(k)||w.dash.push(k)});this.forceUpdate()}render(){const{lines:I,onPropertyChangedObservable:N,lockObject:w}=this.props,D=(0,x.makeTargetsProxy)(I,N);let k=I[0].dash;for(const V of I){if(k.length===0)break;V.dash.length!==k.length&&(k=[]),k.forEach((ee,K)=>{V.dash[K]!==ee&&(k=[])})}const Y=k.join(",");return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(h.TextLineComponent,{label:"LINE",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(M.IconComponent,{icon:S,label:"Position 1"}),(0,f.jsx)(d.TextInputLineComponent,{lockObject:w,label:"X",target:D,propertyName:"x1"}),(0,f.jsx)(d.TextInputLineComponent,{lockObject:w,label:"Y",target:D,propertyName:"y1"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(M.IconComponent,{icon:E,label:"Position 2"}),(0,f.jsx)(d.TextInputLineComponent,{lockObject:w,label:"X",target:D,propertyName:"x2"}),(0,f.jsx)(d.TextInputLineComponent,{lockObject:w,label:"Y",target:D,propertyName:"y2"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(M.IconComponent,{icon:A,label:"Line Width"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:w,label:"",target:D,propertyName:"lineWidth",unit:(0,f.jsx)(T.UnitButton,{unit:"PX",locked:!0}),min:0,arrows:!0})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(M.IconComponent,{icon:b,label:"Dash Pattern"}),(0,f.jsx)(d.TextInputLineComponent,{lockObject:w,label:"",target:D,value:Y,onChange:V=>this.onDashChange(V)})]}),(0,f.jsx)("hr",{}),(0,f.jsx)(m.CommonControlPropertyGridComponent,{hideDimensions:!0,lockObject:w,controls:I,onPropertyChangedObservable:N,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/radioButtonPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{RadioButtonPropertyGridComponent:()=>O});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),x=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),A=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),S=u("../../../dev/sharedUiComponents/dist/imgs/strokeWeightIcon.svg"),E=u("../../../dev/sharedUiComponents/dist/imgs/checkboxIconDark.svg"),b=u("../../../dev/sharedUiComponents/dist/imgs/scaleIcon.svg"),M=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js"),T=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js");class O extends p.Component{constructor(I){super(I)}render(){const I=this.props.radioButtons;return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,controls:I,onPropertyChangedObservable:this.props.onPropertyChangedObservable,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(x.TextLineComponent,{label:"RADIO BUTTON",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(M.IconComponent,{icon:S,label:"Stroke Weight"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:this.props.lockObject,label:"",target:(0,A.makeTargetsProxy)(I,this.props.onPropertyChangedObservable),propertyName:"thickness",unit:(0,f.jsx)(T.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(M.IconComponent,{icon:b,label:"Check Size Ratio"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:this.props.lockObject,label:"",target:(0,A.makeTargetsProxy)(I,this.props.onPropertyChangedObservable),propertyName:"checkSizeRatio",unit:(0,f.jsx)(T.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(M.IconComponent,{icon:S,label:"Name of Group"}),(0,f.jsx)(d.TextInputLineComponent,{lockObject:this.props.lockObject,label:"",target:(0,A.makeTargetsProxy)(I,this.props.onPropertyChangedObservable),propertyName:"group"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(M.IconComponent,{icon:E,label:"Is Checked"}),(0,f.jsx)(h.CheckBoxLineComponent,{label:"CHECKED",target:(0,A.makeTargetsProxy)(I,this.props.onPropertyChangedObservable),propertyName:"isChecked"})]})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/rectanglePropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{RectanglePropertyGridComponent:()=>M});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),x=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/containerPropertyGridComponent.js"),A=u("../../../dev/sharedUiComponents/dist/imgs/conerRadiusIcon.svg"),S=u("../../../dev/sharedUiComponents/dist/imgs/strokeWeightIcon.svg"),E=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js"),b=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js");class M extends p.Component{constructor(O){super(O)}render(){const{rectangles:O,lockObject:R,onPropertyChangedObservable:I}=this.props,N=(0,h.makeTargetsProxy)(O,I);return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:R,controls:O,onPropertyChangedObservable:I,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(d.TextLineComponent,{label:"RECTANGLE",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(E.IconComponent,{icon:S,label:"Stroke Weight"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:this.props.lockObject,label:"",target:N,propertyName:"thickness",unit:(0,f.jsx)(b.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(E.IconComponent,{icon:A,label:"Corner Radius"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:R,label:"",target:N,propertyName:"cornerRadius",unit:(0,f.jsx)(b.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2})]}),(0,f.jsxs)("div",{className:"ge-divider quad",children:[(0,f.jsx)(_.FloatLineComponent,{lockObject:R,label:"X",target:N,propertyName:"cornerRadiusX",unit:(0,f.jsx)(b.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2}),(0,f.jsx)(_.FloatLineComponent,{lockObject:R,label:"Y",target:N,propertyName:"cornerRadiusY",unit:(0,f.jsx)(b.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2}),(0,f.jsx)(_.FloatLineComponent,{lockObject:R,label:"Z",target:N,propertyName:"cornerRadiusZ",unit:(0,f.jsx)(b.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2}),(0,f.jsx)(_.FloatLineComponent,{lockObject:R,label:"W",target:N,propertyName:"cornerRadiusW",unit:(0,f.jsx)(b.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2})]}),(0,f.jsx)(x.ContainerPropertyGridComponent,{containers:O,onPropertyChangedObservable:I})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/scrollViewerPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{ScrollViewerPropertyGridComponent:()=>I});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/colorLineComponent.js"),x=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),A=u("../../../dev/sharedUiComponents/dist/imgs/colorIcon.svg"),S=u("../../../dev/sharedUiComponents/dist/imgs/fillColorIcon.svg"),E=u("../../../dev/sharedUiComponents/dist/imgs/widthIcon.svg"),b=u("../../../dev/sharedUiComponents/dist/imgs/conerRadiusIcon.svg"),M=u("../../../dev/sharedUiComponents/dist/imgs/strokeWeightIcon.svg"),T=u("../../../dev/sharedUiComponents/dist/imgs/scrollViewerPrecisionIcon.svg"),O=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js"),R=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js");class I extends p.Component{constructor(w){super(w)}render(){const{scrollViewers:w,onPropertyChangedObservable:D,lockObject:k}=this.props,Y=(0,x.makeTargetsProxy)(w,D);return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:k,controls:w,onPropertyChangedObservable:this.props.onPropertyChangedObservable,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(d.TextLineComponent,{label:"SCROLLVIEWER",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(O.IconComponent,{icon:T,label:"Wheel Precision"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:this.props.lockObject,label:"",target:Y,propertyName:"wheelPrecision",arrows:!0,min:0,digits:2})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(O.IconComponent,{icon:E,label:"Bar Size"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:this.props.lockObject,label:"",target:Y,propertyName:"barSize",unit:(0,f.jsx)(R.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2})]}),(0,f.jsxs)("div",{className:"e-divider",children:[(0,f.jsx)(O.IconComponent,{icon:A,label:"Bar Color"}),(0,f.jsx)(h.ColorLine,{lockObject:this.props.lockObject,label:"",target:Y,propertyName:"barColor"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(O.IconComponent,{icon:S,label:"Bar Background Color"}),(0,f.jsx)(h.ColorLine,{lockObject:this.props.lockObject,label:"",target:Y,propertyName:"barBackground"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(O.IconComponent,{icon:M,label:"Stroke Weight"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:this.props.lockObject,label:"",target:Y,propertyName:"thickness",unit:(0,f.jsx)(R.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(O.IconComponent,{icon:b,label:"Corner Radius"}),(0,f.jsx)(_.FloatLineComponent,{lockObject:k,label:"",target:(0,x.makeTargetsProxy)(w,D),propertyName:"cornerRadius",unit:(0,f.jsx)(R.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0,digits:2})]})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/sliderGenericPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{SliderGenericPropertyGridComponent:()=>d});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/sliderPropertyGridComponent.js");class d extends p.Component{constructor(x){super(x)}render(){const x=this.props.sliders;return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,controls:x,onPropertyChangedObservable:this.props.onPropertyChangedObservable,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)(_.SliderPropertyGridComponent,{sliders:x,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/sliderPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{SliderPropertyGridComponent:()=>k});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),x=u("../../../dev/sharedUiComponents/dist/lines/colorLineComponent.js"),A=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),S=u("../../../dev/sharedUiComponents/dist/imgs/colorIcon.svg"),E=u("../../../dev/sharedUiComponents/dist/imgs/verticalSliderIcon.svg"),b=u("../../../dev/sharedUiComponents/dist/imgs/sliderValueIcon.svg"),M=u("../../../dev/sharedUiComponents/dist/imgs/sliderValueMaximumIcon.svg"),T=u("../../../dev/sharedUiComponents/dist/imgs/sliderValueMinimumIcon.svg"),O=u("../../../dev/sharedUiComponents/dist/imgs/widthIcon.svg"),R=u("../../../dev/sharedUiComponents/dist/imgs/clampSliderValueIcon.svg"),I=u("../../../dev/sharedUiComponents/dist/imgs/showThumbIcon.svg"),N=u("../../../dev/sharedUiComponents/dist/imgs/barOffsetIcon.svg"),w=u("../../../dev/sharedUiComponents/dist/imgs/thumbCircleIcon.svg"),D=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js");class k extends p.Component{constructor(V){super(V)}render(){const{sliders:V,onPropertyChangedObservable:ee}=this.props,K=(0,A.makeTargetsProxy)(V,ee);return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)("hr",{}),(0,f.jsx)(h.TextLineComponent,{label:"SLIDER",value:" ",color:"grey"}),V.every(ie=>ie.typeName==="Slider")&&(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(D.IconComponent,{icon:S,label:"Border Color"}),(0,f.jsx)(x.ColorLine,{lockObject:this.props.lockObject,label:"",target:K,propertyName:"borderColor"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(D.IconComponent,{icon:E,label:"Vertical"}),(0,f.jsx)(_.CheckBoxLineComponent,{label:"VERTICAL",target:K,propertyName:"isVertical"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(D.IconComponent,{icon:N,label:"Bar Offset"}),(0,f.jsx)(d.TextInputLineComponent,{lockObject:this.props.lockObject,label:"",target:K,propertyName:"barOffset"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(D.IconComponent,{icon:T,label:"Minimum Value"}),(0,f.jsx)(m.FloatLineComponent,{lockObject:this.props.lockObject,label:"",target:K,propertyName:"minimum",arrows:!0})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(D.IconComponent,{icon:M,label:"Maximum Value"}),(0,f.jsx)(m.FloatLineComponent,{lockObject:this.props.lockObject,label:"",target:K,propertyName:"maximum",arrows:!0})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(D.IconComponent,{icon:b,label:"Initial Value"}),(0,f.jsx)(m.FloatLineComponent,{lockObject:this.props.lockObject,label:"",target:K,propertyName:"value",arrows:!0})]}),(0,f.jsx)("hr",{}),(0,f.jsx)(h.TextLineComponent,{label:"THUMB",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(D.IconComponent,{icon:I,label:"Display Thumb"}),(0,f.jsx)(_.CheckBoxLineComponent,{label:"DISPLAY THUMB",target:K,propertyName:"displayThumb",onValueChanged:()=>this.forceUpdate()})]}),K.displayThumb&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(D.IconComponent,{icon:w,label:"Thumb Circular"}),(0,f.jsx)(_.CheckBoxLineComponent,{label:"CIRCULAR",target:K,propertyName:"isThumbCircle"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(D.IconComponent,{icon:R,label:"Thumb Clamped to Edges"}),(0,f.jsx)(_.CheckBoxLineComponent,{label:"CLAMPED",target:K,propertyName:"isThumbClamped"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(D.IconComponent,{icon:O,label:"Width"}),(0,f.jsx)(d.TextInputLineComponent,{lockObject:this.props.lockObject,label:"",target:K,propertyName:"thumbWidth"})]})]})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/stackPanelPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{StackPanelPropertyGridComponent:()=>R});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("gui/2D/controls/container"),d=u("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),x=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),A=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),S=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/containerPropertyGridComponent.js"),E=u("../../../dev/sharedUiComponents/dist/imgs/alignVerticalIcon.svg"),b=u("../../../dev/sharedUiComponents/dist/imgs/stackPanelSpacingIcon.svg"),M=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js"),T=u("../../../tools/guiEditor/dist/diagram/coordinateHelper.js"),O=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js");class R extends p.Component{constructor(N){super(N)}render(){const{stackPanels:N,lockObject:w,onPropertyChangedObservable:D}=this.props,k=(0,A.makeTargetsProxy)(N,D);return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:w,controls:N,onPropertyChangedObservable:D,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(x.TextLineComponent,{label:"STACKPANEL",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(M.IconComponent,{icon:E,label:"Determines if children are stacked horizontally or vertically"}),(0,f.jsx)(d.CheckBoxLineComponent,{label:k.isVertical?"ALIGNMENT: VERTICAL":"ALIGNMENT: HORIZONTAL",target:k,propertyName:"isVertical",onValueChanged:()=>{for(const Y of N)for(const V of Y.children)k.isVertical?(V.horizontalAlignment=_.StackPanel.HORIZONTAL_ALIGNMENT_CENTER,V._left.value=0,V._height.unit===_.ValueAndUnit.UNITMODE_PERCENTAGE&&T.CoordinateHelper.ConvertToPixels(V,["height"])):(V.verticalAlignment=_.StackPanel.VERTICAL_ALIGNMENT_CENTER,V._top.value=0,V._width.unit===_.ValueAndUnit.UNITMODE_PERCENTAGE&&T.CoordinateHelper.ConvertToPixels(V,["width"]));this.forceUpdate()}})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(M.IconComponent,{icon:b,label:"Spacing between children"}),(0,f.jsx)(h.FloatLineComponent,{lockObject:w,label:" ",target:k,propertyName:"spacing",onChange:()=>N.forEach(Y=>Y._markAsDirty()),unit:(0,f.jsx)(O.UnitButton,{unit:"PX",locked:!0}),arrows:!0,min:0})]}),(0,f.jsx)(S.ContainerPropertyGridComponent,{containers:N,onPropertyChangedObservable:D})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/textBlockPropertyGridComponent.js":(l,c,u)=>{u.r(c),u.d(c,{TextBlockPropertyGridComponent:()=>D});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent.js"),_=u("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),d=u("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),h=u("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),x=u("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),A=u("../../../dev/sharedUiComponents/dist/lines/colorLineComponent.js"),S=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),E=u("../../../dev/sharedUiComponents/dist/imgs/fillColorIcon.svg"),b=u("../../../dev/sharedUiComponents/dist/imgs/fontFamilyIcon.svg"),M=u("../../../dev/sharedUiComponents/dist/imgs/strokeWeightIcon.svg"),T=u("../../../dev/sharedUiComponents/dist/imgs/resizeToFitIcon.svg"),O=u("../../../dev/sharedUiComponents/dist/imgs/wordWrapIcon.svg"),R=u("../../../dev/sharedUiComponents/dist/imgs/LineSpacingIcon.svg"),I=u("../../../dev/sharedUiComponents/dist/lines/iconComponent.js"),N=u("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),w=u("../../../dev/sharedUiComponents/dist/lines/unitButton.js");class D extends p.Component{constructor(Y){super(Y)}render(){const{onPropertyChangedObservable:Y}=this.props,V=this.props.textBlocks,ee=(0,S.makeTargetsProxy)(V,Y),K=[{label:"Clip",value:0},{label:"Ellipsis",value:2},{label:"Word wrap",value:1}];return(0,f.jsxs)("div",{className:"pane",children:[(0,f.jsx)(m.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,controls:V,onPropertyChangedObservable:this.props.onPropertyChangedObservable,onFontsParsedObservable:this.props.onFontsParsedObservable,globalState:this.props.globalState}),(0,f.jsx)("hr",{}),(0,f.jsx)(x.TextLineComponent,{label:"TEXTBLOCK",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(I.IconComponent,{icon:b,label:"Text"}),(0,f.jsx)(_.TextInputLineComponent,{lockObject:this.props.lockObject,label:" ",target:ee,propertyName:"text"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(I.IconComponent,{icon:T,label:"Automatically resize the text block to fit the size of the text"}),(0,f.jsx)(h.CheckBoxLineComponent,{label:"RESIZE TO FIT",target:ee,propertyName:"resizeToFit"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(I.IconComponent,{icon:O,label:"Text Wrapping"}),(0,f.jsx)(d.OptionsLine,{label:" ",options:K,target:ee,propertyName:"textWrapping"})]}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(I.IconComponent,{icon:R,label:"Line Spacing"}),(0,f.jsx)(_.TextInputLineComponent,{lockObject:this.props.lockObject,label:" ",target:ee,propertyName:"lineSpacing"})]}),(0,f.jsx)("hr",{}),(0,f.jsx)(x.TextLineComponent,{label:"OUTLINE",value:" ",color:"grey"}),(0,f.jsxs)("div",{className:"ge-divider double",children:[(0,f.jsx)(I.IconComponent,{icon:M,label:"Outline Width"}),(0,f.jsx)(N.FloatLineComponent,{lockObject:this.props.lockObject,label:" ",target:ee,propertyName:"outlineWidth",arrows:!0,min:0,unit:(0,f.jsx)(w.UnitButton,{unit:"PX",locked:!0}),step:"0.01"})]}),(0,f.jsxs)("div",{className:"ge-divider",children:[(0,f.jsx)(I.IconComponent,{icon:E,label:"Outline Color"}),(0,f.jsx)(A.ColorLine,{lockObject:this.props.lockObject,label:" ",target:ee,propertyName:"outlineColor"})]})]})}}},"../../../tools/guiEditor/dist/components/propertyTab/propertyTab.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>R});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/components/propertyTab/propertyTab.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../tools/guiEditor/dist/components/propertyTab/propertyTabComponent.js":(l,c,u)=>{u.r(c),u.d(c,{PropertyTabComponent:()=>re});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("core/Misc/observable"),_=u("../../../dev/sharedUiComponents/dist/stringTools.js"),d=u("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/lockObject.js"),h=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/sliderGenericPropertyGridComponent.js"),x=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/linePropertyGridComponent.js"),A=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/radioButtonPropertyGridComponent.js"),S=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/textBlockPropertyGridComponent.js"),E=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/inputTextPropertyGridComponent.js"),b=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/colorPickerPropertyGridComponent.js"),M=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/imagePropertyGridComponent.js"),T=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/imageBasedSliderPropertyGridComponent.js"),O=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/rectanglePropertyGridComponent.js"),R=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/stackPanelPropertyGridComponent.js"),I=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/gridPropertyGridComponent.js"),N=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/scrollViewerPropertyGridComponent.js"),w=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/ellipsePropertyGridComponent.js"),D=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/checkboxPropertyGridComponent.js"),k=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/controlPropertyGridComponent.js"),Y=u("gui/2D/controls/container"),V=u("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),ee=u("../../../tools/guiEditor/dist/components/parentingPropertyGridComponent.js"),K=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/displayGridPropertyGridComponent.js"),ie=u("../../../tools/guiEditor/dist/components/propertyTab/propertyGrids/gui/buttonPropertyGridComponent.js"),ne=u("../../../tools/guiEditor/dist/guiNodeTools.js"),te=u("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js");u("../../../tools/guiEditor/dist/components/propertyTab/propertyTab.scss");var W=u("../../../tools/guiEditor/dist/imgs/adtIcon.svg"),Q=u("../../../tools/guiEditor/dist/controlTypes.js");class re extends p.Component{constructor(X){super(X),this.saveLocally=()=>{try{const se=JSON.stringify(this.props.globalState.guiTexture.serializeContent());_.StringTools.DownloadAsFile(this.props.globalState.hostDocument,se,"guiTexture.json")}catch{this.props.globalState.hostWindow.alert("Unable to save your GUI"),m.Tools.Error("Unable to save your GUI")}},this.saveSelectedControlLocally=()=>{try{const se={controls:[]};for(const he of this.props.globalState.selectedControls){const fe={};he.serialize(fe),se.controls.push(fe)}const ue=JSON.stringify(se);_.StringTools.DownloadAsFile(this.props.globalState.hostDocument,ue,"guiControl.json")}catch{this.props.globalState.hostWindow.alert("Unable to save your selected Control"),m.Tools.Error("Unable to save your selected Control")}},this.saveToSnippetServerHelper=(se,ue)=>new Promise((he,fe)=>{const Ae=new XMLHttpRequest;Ae.onreadystatechange=()=>{if(Ae.readyState==4)if(Ae.status==200){const ct=JSON.parse(Ae.responseText),nt=ue.snippetId;ue.snippetId=ct.id,ct.version&&ct.version!="0"&&(ue.snippetId+="#"+ct.version);const at=window;at.Playground&&nt&&at.Playground.onRequestCodeChangeObservable.notifyObservers({regex:new RegExp(nt,"g"),replace:ue.snippetId}),he(ue.snippetId)}else fe("Unable to save your GUI")};const we=new TextEncoder().encode(se);let ke="";for(let ct=0;ct<we.length;ct++)ke+=String.fromCharCode(we[ct]);const Ve={gui:se,encodedGui:ke!==se?(0,m.EncodeArrayBufferToBase64)(we):void 0};Ae.open("POST",Y.AdvancedDynamicTexture.SnippetUrl+(ue.snippetId?"/"+ue.snippetId:""),!0),Ae.setRequestHeader("Content-Type","application/json");const Ke={payload:JSON.stringify(Ve),name:"",description:"",tags:""};Ae.send(JSON.stringify(Ke))}),this.saveToSnippetServer=async()=>{var fe;const se=this.props.globalState.guiTexture,ue=JSON.stringify(se.serializeContent());(((fe=this.props.globalState.customSave)==null?void 0:fe.action)||this.saveToSnippetServerHelper)(ue,se).then(Ae=>{se.snippetId=Ae;const Se=`GUI saved with ID:  ${se.snippetId}`;this.props.globalState.hostWindow.navigator.clipboard?this.props.globalState.hostWindow.navigator.clipboard.writeText(se.snippetId).then(()=>{this.props.globalState.hostWindow.alert(`${Se}. The ID was copied to your clipboard.`)}).catch(()=>{this.props.globalState.hostWindow.alert(Se)}):this.props.globalState.hostWindow.alert(Se),this.props.globalState.onBuiltObservable.notifyObservers()}).catch(Ae=>{this.props.globalState.hostWindow.alert(Ae)}),this.forceUpdate()},this._lockObject=new d.LockObject,this.props.globalState.lockObject=this._lockObject,this.props.globalState.onSaveObservable.add(()=>{this.save(this.saveLocally)}),this.props.globalState.onSaveSelectedControl.add(()=>{this.save(this.saveSelectedControlLocally)}),this.props.globalState.onSnippetSaveObservable.add(()=>{this.save(this.saveToSnippetServer)}),this.props.globalState.onSnippetLoadObservable.add(()=>{this.loadFromSnippet()}),this.props.globalState.onPropertyGridUpdateRequiredObservable.add(()=>{this.forceUpdate()}),this.props.globalState.onLoadObservable.add(se=>this.load(se)),this.props.globalState.onControlLoadObservable.add(se=>this.loadControl(se))}componentDidMount(){this.props.globalState.onSelectionChangedObservable.add(()=>{this.forceUpdate()}),this.props.globalState.onResizeObservable.add(()=>{this.forceUpdate()}),this._onBuiltObserver=this.props.globalState.onBuiltObservable.add(()=>{this.forceUpdate()}),this.props.globalState.onPropertyChangedObservable.add(()=>this.forceUpdate())}componentWillUnmount(){window.clearInterval(this._timerIntervalId),this.props.globalState.onBuiltObservable.remove(this._onBuiltObserver)}load(X){m.Tools.ReadFile(X,se=>{const ue=new TextDecoder("utf-8");this.props.globalState.workbench.loadFromJson(JSON.parse(ue.decode(se))),this.props.globalState.setSelection([])},void 0,!0)}loadControl(X){m.Tools.ReadFile(X,se=>{const ue=new TextDecoder("utf-8");this.props.globalState.workbench.loadControlFromJson(JSON.parse(ue.decode(se)))},void 0,!0)}save(X){this.props.globalState.workbench.removeEditorTransformation();const se=this.props.globalState.guiTexture.rootContainer.getDescendants();for(const he of se)this.props.globalState.workbench.removeEditorBehavior(he);const ue=this.props.globalState.workbench.guiSize;this.props.globalState.guiTexture.scaleTo(ue.width,ue.height),X();for(const he of se)this.props.globalState.workbench.addEditorBehavior(he)}loadFromSnippet(){const X=this.props.globalState.hostWindow.prompt("Please enter the snippet ID to use");X&&this.props.globalState.workbench.loadFromSnippet(X)}renderNode(X){var ue;const se=X[0];return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{id:"header",children:[(0,f.jsx)("img",{id:"logo",src:this.renderControlIcon(X)}),(0,f.jsx)("div",{id:"title",children:(0,f.jsx)(V.TextInputLineComponent,{noUnderline:!0,lockObject:this._lockObject,target:(0,te.makeTargetsProxy)(X,this.props.globalState.onPropertyChangedObservable),propertyName:"name",onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable})})]}),this.renderProperties(X),((ue=se==null?void 0:se.parent)==null?void 0:ue.typeName)==="Grid"&&(0,f.jsx)(ee.ParentingPropertyGridComponent,{control:se,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,lockObject:this._lockObject})]})}getControlsCommonClassName(X){if(X.length===0)return"";const ue=X[0].getClassName();for(const he of X)if(he.getClassName()!==ue)return"";return ue}renderProperties(X){if(X.length===0)return;switch(this.getControlsCommonClassName(X)){case"TextBlock":{const he=X;return(0,f.jsx)(S.TextBlockPropertyGridComponent,{textBlocks:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"InputText":{const he=X;return(0,f.jsx)(E.InputTextPropertyGridComponent,{inputTexts:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"ColorPicker":{const he=X;return(0,f.jsx)(b.ColorPickerPropertyGridComponent,{colorPickers:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"Image":{const he=X;return(0,f.jsx)(M.ImagePropertyGridComponent,{images:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"Slider":{const he=X;return(0,f.jsx)(h.SliderGenericPropertyGridComponent,{sliders:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"ImageBasedSlider":{const he=X;return(0,f.jsx)(T.ImageBasedSliderPropertyGridComponent,{imageBasedSliders:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"Rectangle":return(0,f.jsx)(O.RectanglePropertyGridComponent,{rectangles:X,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable});case"StackPanel":{const he=X;return(0,f.jsx)(R.StackPanelPropertyGridComponent,{stackPanels:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"Grid":{const he=X;return(0,f.jsx)(I.GridPropertyGridComponent,{grids:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"ScrollViewer":{const he=X;return(0,f.jsx)(N.ScrollViewerPropertyGridComponent,{scrollViewers:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"Ellipse":{const he=X;return(0,f.jsx)(w.EllipsePropertyGridComponent,{ellipses:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"Checkbox":{const he=X;return(0,f.jsx)(D.CheckboxPropertyGridComponent,{checkboxes:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"RadioButton":{const he=X;return(0,f.jsx)(A.RadioButtonPropertyGridComponent,{radioButtons:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"Line":{const he=X;return(0,f.jsx)(x.LinePropertyGridComponent,{lines:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"DisplayGrid":{const he=X;return(0,f.jsx)(K.DisplayGridPropertyGridComponent,{displayGrids:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}case"Button":{const he=X;return(0,f.jsx)(ie.ButtonPropertyGridComponent,{rectangles:he,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onAddComponent:fe=>{for(const Ae of he){const Se=ne.GUINodeTools.CreateControlFromString(fe);this.props.globalState.workbench.addEditorBehavior(Se),Ae.addControl(Se),this.props.globalState.select(Se)}},onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState},"buttonMenu")}}const ue=X;return(0,f.jsx)(k.ControlPropertyGridComponent,{controls:ue,lockObject:this._lockObject,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable,onFontsParsedObservable:this.props.globalState.onFontsParsedObservable,globalState:this.props.globalState})}renderControlIcon(X){const ue=X[0].getClassName();for(const fe of X)if(fe.getClassName()!==ue)return W;const he=Q.ControlTypes.find(fe=>fe.className===ue);return he?he.icon:W}render(){if(this.props.globalState.guiTexture==null)return null;const X=this.props.globalState.selectedControls.length>0?this.props.globalState.selectedControls:[this.props.globalState.workbench.trueRootContainer];return(0,f.jsx)("div",{id:"ge-propertyTab",children:this.renderNode(X)})}}},"../../../tools/guiEditor/dist/components/sceneExplorer/entities/gui/controlTreeItemComponent.js":(l,c,u)=>{u.r(c),u.d(c,{ControlTreeItemComponent:()=>M});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../tools/guiEditor/dist/components/sceneExplorer/treeItemLabelComponent.js"),m=u("../../../tools/guiEditor/dist/components/sceneExplorer/extensionsComponent.js"),_=u("../../../../node_modules/react/index.js"),d=u("../../../tools/guiEditor/dist/globalState.js"),h=u("gui/2D/controls/container"),x=u("../../../tools/guiEditor/dist/controlTypes.js"),A=u("../../../tools/guiEditor/dist/imgs/visibilityNotActiveIcon.svg"),S=u("../../../tools/guiEditor/dist/imgs/visibilityActiveIcon.svg"),E=u("../../../tools/guiEditor/dist/imgs/makeComponentIcon.svg"),b=u("../../../tools/guiEditor/dist/imgs/makeChildOfContainerIcon.svg");class M extends _.Component{constructor(O){super(O);const R=this.props.control;this.state={isActive:R.isHighlighted,isVisible:R.isVisible,isRenaming:!1},this._onIsVisibleChangedObserver=R.onIsVisibleChangedObservable.add(I=>{this.setState({isVisible:I})})}componentWillUnmount(){this._onIsVisibleChangedObserver&&this.props.control.onIsVisibleChangedObservable.remove(this._onIsVisibleChangedObserver)}highlight(){const O=this.props.control;O.isHighlighted=!O.isHighlighted,this.setState({isActive:O.isHighlighted})}switchVisibility(){const O=!this.state.isVisible;this.setState({isVisible:O}),this.props.control.isVisible=O}onRename(O){this.props.control.name=O,this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers()}render(){var w;const O=this.props.control;let R="";((w=O.parent)==null?void 0:w.typeName)==="Grid"&&(R=O.parent.getChildCellInfo(this.props.control));const I=this.props.globalState.draggedControl===O,N=x.ControlTypes.find(D=>D.className===O.getClassName());return(0,f.jsxs)("div",{className:"controlTools",children:[N&&(0,f.jsx)("div",{className:"controlType icon",children:(0,f.jsx)("img",{src:N.icon,alt:N.className})}),(0,f.jsx)(p.TreeItemLabelComponent,{label:O.name,bracket:R,onClick:()=>this.props.onClick(),onChange:D=>this.onRename(D),setRenaming:D=>{this.setState({isRenaming:D}),this.props.onRenamingStateChanged(D)},renaming:this.state.isRenaming}),!I&&this.props.isDragOver&&this.props.dragOverLocation==d.DragOverLocation.CENTER&&O instanceof h.Container&&(0,f.jsx)(f.Fragment,{children:(0,f.jsx)("div",{className:"makeChild icon",onClick:()=>this.highlight(),title:"Make Child",children:(0,f.jsx)("img",{src:b})})}),!this.state.isRenaming&&this.props.isHovered&&this.props.globalState.draggedControl===null&&this.props.dragOverLocation==d.DragOverLocation.NONE&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:"addComponent icon",onClick:()=>this.highlight(),title:"Add component (Not Implemented)",children:(0,f.jsx)("img",{src:E})}),(0,f.jsx)("div",{className:"visibility icon",onClick:()=>this.switchVisibility(),title:"Set isVisible",children:(0,f.jsx)("img",{src:this.state.isVisible?S:A})})]}),(0,f.jsx)(m.ExtensionsComponent,{target:O,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../tools/guiEditor/dist/components/sceneExplorer/extensionsComponent.js":(l,c,u)=>{u.r(c),u.d(c,{ExtensionsComponent:()=>d});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),m=u("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),_=u("../../../../node_modules/react/index.js");class d extends _.Component{constructor(x){super(x),this.state={popupVisible:!1},this._extensionRef=_.createRef()}showPopup(){this.setState({popupVisible:!0})}componentDidMount(){this._popup&&this._popup.focus()}componentDidUpdate(){this._popup&&this._popup.focus()}render(){if(!this.props.extensibilityGroups)return null;const x=[];for(const A of this.props.extensibilityGroups)A.predicate(this.props.target)&&x.push(...A.entries);return x.length===0?null:(0,f.jsxs)("div",{ref:this._extensionRef,className:"extensions",onClick:()=>this.showPopup(),children:[(0,f.jsx)("div",{title:"Additional options",className:"icon",children:(0,f.jsx)(p.FontAwesomeIcon,{icon:m.faEllipsisH})}),(0,f.jsx)("div",{ref:A=>{this._popup=A},tabIndex:-1,className:this.state.popupVisible?"popup show":"popup",onBlur:()=>this.setState({popupVisible:!1}),children:x.map(A=>(0,f.jsx)("div",{className:"popupMenu",onClick:()=>A.action(this.props.target),children:A.label},A.label))})]})}}},"../../../tools/guiEditor/dist/components/sceneExplorer/sceneExplorer.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>R});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/components/sceneExplorer/sceneExplorer.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../tools/guiEditor/dist/components/sceneExplorer/sceneExplorerComponent.js":(l,c,u)=>{u.r(c),u.d(c,{SceneExplorerComponent:()=>x,SceneExplorerFilterComponent:()=>h});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/components/sceneExplorer/treeItemComponent.js"),_=u("../../../tools/guiEditor/dist/tools.js");u("../../../tools/guiEditor/dist/components/sceneExplorer/sceneExplorer.scss");var d=u("core/Misc/observable");class h extends p.Component{constructor(S){super(S)}render(){return(0,f.jsx)("div",{className:"filter",children:(0,f.jsx)("input",{type:"text",placeholder:"Filter",onChange:S=>this.props.onFilter(S.target.value)})})}}class x extends p.Component{constructor(S){super(S),this.state={filter:null,selectedEntity:null,scene:this.props.scene?this.props.scene:null},this._onNewSceneObserver=this.props.globalState.onNewSceneObservable.add(E=>{this.setState({scene:E})}),this._onPropertyChangedObservable=this.props.globalState.onPropertyChangedObservable.add(E=>{(E.property==="name"||E.property==="_columnNumber"||E.property==="_rowNumber")&&this.forceUpdate()}),this._onUpdateRequiredObserver=this.props.globalState.onUpdateRequiredObservable.add(()=>{this.forceUpdate()})}componentDidMount(){this._onSelectionChangeObserver=this.props.globalState.onSelectionChangedObservable.add(S=>{this.state.selectedEntity!==S&&this.setState({selectedEntity:S})}),this.props.globalState.onSelectionChangedObservable.add(()=>{this.forceUpdate()}),this._onParrentingChangeObserver=this.props.globalState.onParentingChangeObservable.add(()=>{this.forceUpdate()})}componentWillUnmount(){this._onSelectionChangeObserver&&this.props.globalState.onSelectionChangedObservable.remove(this._onSelectionChangeObserver),this._onNewSceneObserver&&this.props.globalState.onNewSceneObservable.remove(this._onNewSceneObserver),this._onParrentingChangeObserver&&this.props.globalState.onParentingChangeObservable.remove(this._onParrentingChangeObserver),this._onPropertyChangedObservable&&this.props.globalState.onPropertyChangedObservable.remove(this._onPropertyChangedObservable),this._onUpdateRequiredObserver&&this.props.globalState.onUpdateRequiredObservable.remove(this._onUpdateRequiredObserver)}filterContent(S){this.setState({filter:S})}findSiblings(S,E,b,M,T){if(!E)return!1;const O=_.Tools.SortAndFilter(S,E);if(!E||O.length===0)return!1;for(const R of O){if(R===b){if(T.found=!0,!M)return T.previousOne&&this.props.globalState.select(T.previousOne),!0}else{if(T.found)return this.props.globalState.select(R),!0;T.previousOne=R}if(R.getChildren&&R.reservedDataStore&&R.reservedDataStore.isExpanded&&this.findSiblings(R,R.getChildren(),b,M,T))return!0}return!1}processKeys(S){if(S.target.localName==="input")return;const E=this.state.scene;let b=!1,M=!1;switch(S.key){case"ArrowUp":b=!0;break;case"ArrowDown":M=!0,b=!0;break;case"Enter":case"ArrowRight":this.props.globalState.selectedControls.forEach(T=>{const O=T.reservedDataStore;O&&O.setExpandedState&&O.setExpandedState(!0)}),S.preventDefault(),this.forceUpdate();return;case"ArrowLeft":this.props.globalState.selectedControls.forEach(T=>{const O=T.reservedDataStore;d.Logger.Log(O),O&&O.setExpandedState&&O.setExpandedState(!1)}),S.preventDefault(),this.forceUpdate();return;case"Delete":case"Backspace":this.props.globalState.deleteSelectedNodes(),this.forceUpdate();break}if(b&&(S.preventDefault(),E)){const T=this.props.globalState.selectedControls[this.props.globalState.selectedControls.length-1],O={};this.findSiblings(null,E.rootNodes,T,M,O)||this.findSiblings(null,E.materials,T,M,O)||this.findSiblings(null,E.textures,T,M,O)}}renderContent(){if(!this.state.scene)return null;const E=[this.props.globalState.guiTexture];return(0,f.jsx)("div",{id:"tree",onDrop:()=>{this.props.globalState.onDropObservable.notifyObservers(),this.props.globalState.onParentingChangeObservable.notifyObservers(null)},onDragOver:b=>{b.preventDefault()},onClick:()=>{this.props.globalState.selectionLock?this.props.globalState.selectionLock=!1:this.props.globalState.setSelection([])},onContextMenu:b=>b.preventDefault(),children:E&&E.length>0&&(0,f.jsx)(m.TreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntities:this.props.globalState.selectedControls,items:E,label:"GUI",offset:1,filter:this.state.filter})})}onClose(){this.props.onClose&&this.props.onClose()}onPopup(){this.props.onPopup&&this.props.onPopup()}render(){return(0,f.jsxs)("div",{id:"ge-sceneExplorer",tabIndex:0,onKeyDown:S=>this.processKeys(S),children:[this.props.children,this.renderContent()]})}}},"../../../tools/guiEditor/dist/components/sceneExplorer/treeItemComponent.js":(l,c,u)=>{u.r(c),u.d(c,{TreeItemComponent:()=>M});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),_=u("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),d=u("../../../tools/guiEditor/dist/components/sceneExplorer/treeItemSelectableComponent.js"),h=u("../../../tools/guiEditor/dist/tools.js"),x=u("../../../../node_modules/react-contextmenu/es6/index.js"),A=u("../../../tools/guiEditor/dist/imgs/expandedIcon.svg"),S=u("../../../tools/guiEditor/dist/imgs/collapsedIcon.svg");class E extends p.Component{constructor(O){super(O)}expandAll(){this.props.onExpandAll(!this.props.isExpanded)}render(){const O=this.props.isExpanded?(0,f.jsx)("img",{src:A,className:"icon"}):(0,f.jsx)("img",{src:S,className:"icon"});return(0,f.jsxs)("div",{className:"expandableHeader",children:[(0,f.jsxs)("div",{className:"text",children:[(0,f.jsx)("div",{className:"arrow icon",onClick:()=>this.props.onClick(),children:O}),(0,f.jsx)("div",{className:"text-value",children:this.props.label})]}),(0,f.jsx)("div",{className:"expandAll icon",onClick:()=>this.expandAll(),title:this.props.isExpanded?"Collapse all":"Expand all",children:O})]})}}class b extends p.Component{constructor(O){super(O)}render(){return(0,f.jsx)("div",{className:"expandableHeader",children:(0,f.jsxs)("div",{className:"text",children:[(0,f.jsx)("div",{className:"arrow icon",children:(0,f.jsx)(m.FontAwesomeIcon,{icon:_.faBan})}),(0,f.jsx)("div",{className:"text-value",children:this.props.label})]})})}}class M extends p.Component{constructor(O){super(O),this.state={isExpanded:!0,mustExpand:!0}}switchExpandedState(){this.setState({isExpanded:!this.state.isExpanded,mustExpand:!1})}shouldComponentUpdate(O,R){if(!R.isExpanded&&this.state.isExpanded)return!0;const I=O.items;if(I&&I.length){for(const N of I)if(h.Tools.LookForItems(N,O.selectedEntities))return R.isExpanded=!0,!0}return!0}expandAll(O){this.setState({isExpanded:O,mustExpand:O})}renderContextMenu(){return this.props.contextMenuItems?(0,f.jsx)(x.ContextMenu,{id:"contextmenu#"+M._ContextMenuUniqueIdGenerator++,className:"context-menu",children:this.props.contextMenuItems.map(O=>(0,f.jsx)(x.MenuItem,{onClick:()=>O.action(),children:O.label},O.label))}):(M._ContextMenuUniqueIdGenerator++,null)}render(){let O=this.props.items;const R={paddingLeft:10*(this.props.offset+.5)+"px"};if(!O)if(this.props.forceSubitems)O=[];else return(0,f.jsx)("div",{className:"groupContainer",style:R,children:(0,f.jsx)("div",{children:this.props.label})});if(!O.length)return(0,f.jsx)("div",{className:"groupContainer",style:R,children:(0,f.jsxs)(x.ContextMenuTrigger,{id:"contextmenu#"+M._ContextMenuUniqueIdGenerator,children:[this.renderContextMenu(),(0,f.jsx)(b,{label:this.props.label})]})});if(!this.state.isExpanded)return(0,f.jsx)("div",{className:"groupContainer",style:R,children:(0,f.jsxs)(x.ContextMenuTrigger,{id:"contextmenu#"+M._ContextMenuUniqueIdGenerator,children:[this.renderContextMenu(),(0,f.jsx)(E,{isExpanded:!1,label:this.props.label,onClick:()=>this.switchExpandedState(),onExpandAll:N=>this.expandAll(N)})]})});const I=h.Tools.SortAndFilter(null,O)[0].getChildren();return(0,f.jsx)("div",{children:I.map(N=>(0,f.jsx)(d.TreeItemSelectableComponent,{extensibilityGroups:this.props.extensibilityGroups,offset:this.props.offset+1,selectedEntities:this.props.selectedEntities,entity:N,globalState:this.props.globalState,filter:this.props.filter},N.uniqueId!==void 0&&N.uniqueId!==null?N.uniqueId:N.name))})}}M._ContextMenuUniqueIdGenerator=0},"../../../tools/guiEditor/dist/components/sceneExplorer/treeItemLabelComponent.js":(l,c,u)=>{u.r(c),u.d(c,{TreeItemLabelComponent:()=>m});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js");class m extends p.Component{constructor(d){super(d),this.state={value:""}}onClick(){!this.props.onClick||this.props.renaming||this.props.onClick()}onBlur(){this.props.setRenaming(!1)}render(){const d=this.props.renaming?this.state.value:this.props.label||"No Name";return(0,f.jsx)("div",{className:"title",onClick:()=>this.onClick(),children:this.props.renaming?(0,f.jsx)("input",{type:"text",onBlur:()=>this.onBlur(),autoFocus:!0,value:d,onChange:h=>{this.props.onChange(h.target.value),this.setState({value:h.target.value})},onKeyDown:h=>{h.key==="Enter"&&this.onBlur()},className:"titleText"}):(0,f.jsx)("div",{className:"titleText",onDoubleClick:()=>{this.props.setRenaming(!0),this.setState({value:d})},children:d})})}}},"../../../tools/guiEditor/dist/components/sceneExplorer/treeItemSelectableComponent.js":(l,c,u)=>{u.r(c),u.d(c,{TreeItemSelectableComponent:()=>b});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../tools/guiEditor/dist/tools.js"),m=u("../../../../node_modules/react-dom/index.js"),_=u("../../../../node_modules/react/index.js"),d=u("../../../tools/guiEditor/dist/globalState.js"),h=u("../../../tools/guiEditor/dist/components/sceneExplorer/entities/gui/controlTreeItemComponent.js"),x=u("gui/2D/controls/container"),A=u("../../../tools/guiEditor/dist/imgs/expandedIcon.svg"),S=u("../../../tools/guiEditor/dist/imgs/collapsedIcon.svg");const E=32;class b extends _.Component{constructor(T){super(T),this._secondDragEnter=!1,this.state={expand:!0,dragOver:!1,dragOverLocation:d.DragOverLocation.NONE,isHovered:!1,isSelected:this.props.selectedEntities.includes(this.props.entity),blockDrag:!1},this._onSelectionChangedObservable=T.globalState.onSelectionChangedObservable.add(()=>{this.setState({isSelected:this.props.globalState.selectedControls.includes(this.props.entity)})}),this._onDraggingEndObservable=T.globalState.onDraggingEndObservable.add(()=>{this.setState({dragOverLocation:d.DragOverLocation.NONE})}),this._onDraggingStartObservable=T.globalState.onDraggingStartObservable.add(()=>{this.forceUpdate()})}switchExpandedState(){this.props.entity.reservedDataStore.setExpandedState(!this.props.entity.reservedDataStore.isExpanded),this.setState({expand:!this.state.expand})}shouldComponentUpdate(T,O){return T.selectedEntities.includes(T.entity)?(O.isSelected=!0,!0):(O.isSelected=!1,p.Tools.LookForItems(T.entity,T.selectedEntities),!0)}scrollIntoView(){const T=m.findDOMNode(this);T&&T.scrollIntoView(!1)}componentWillUnmount(){this.props.globalState.onSelectionChangedObservable.remove(this._onSelectionChangedObservable),this.props.globalState.onDraggingEndObservable.remove(this._onDraggingEndObservable),this.props.globalState.onDraggingStartObservable.remove(this._onDraggingStartObservable)}onSelect(){const T=this.props.entity;this.props.globalState.select(T),this.props.globalState.selectionLock=!0}renderChildren(T,O=!0){const R=this.props.entity;if(!R.getChildren&&!R.children||!T)return null;const I=p.Tools.SortAndFilter(R,R.getChildren?R.getChildren():R.children);return(R.typeName==="StackPanel"||R.typeName==="VirtualKeyboard")&&I.reverse(),I.map((N,w)=>N.name=="Art-Board-Background"?null:(0,f.jsx)(b,{globalState:this.props.globalState,mustExpand:this.props.mustExpand,extensibilityGroups:this.props.extensibilityGroups,selectedEntities:this.props.selectedEntities,offset:this.props.offset+(O?2:0),entity:N,filter:this.props.filter},w))}render(){if(this.props.entity===this.props.globalState.workbench.trueRootContainer||this.props.entity===this.props.globalState.workbench.visibleRegionContainer||this.props.entity===this.props.globalState.workbench.panAndZoomContainer)return this.renderChildren(!0,!1);const T={paddingLeft:10*(this.props.offset+.5)-20+"px"},O={marginLeft:10*(this.props.offset+.5)-20+"px"};let R=this.props.entity;R.reservedDataStore||(R.reservedDataStore={isExpanded:!0,setExpandedState:V=>R.reservedDataStore.isExpanded=V});const I=R.reservedDataStore.isExpanded||p.Tools.LookForItems(this.props.entity,this.props.selectedEntities);R.reservedDataStore.isExpanded=I;const N=I?(0,f.jsx)("img",{src:A,className:"icon"}):(0,f.jsx)("img",{src:S,className:"icon"});let w=R.getClassName()==="MultiMaterial"?[]:p.Tools.SortAndFilter(R,R.getChildren?R.getChildren():R.children),D=w.length>0;if(this.props.filter){const V=this.props.filter.toLowerCase();if((!R.name||R.name.toLowerCase().indexOf(V)===-1)&&(!D||R.getDescendants&&R.getDescendants(!1,ee=>ee.name&&ee.name.toLowerCase().indexOf(V)!==-1).length===0))return null}let k="itemContainer";k+=this.state.isSelected&&this.props.globalState.draggedControl===null?" selected":"",k+=this.state.isHovered&&this.props.globalState.draggedControl===null?" hover":"",k+=this.state.dragOver&&this.state.dragOverLocation==d.DragOverLocation.CENTER&&R instanceof x.Container?" parent":"",k+=this.props.globalState.draggedControl===this.props.entity?" dragged":"",k+=this.state.dragOver&&this.state.dragOverLocation==d.DragOverLocation.ABOVE&&R.parent?" seAbove":"",k+=this.state.dragOver&&this.state.dragOverLocation==d.DragOverLocation.BELOW&&R.parent?" seBelow":"";const Y=k==="itemContainer seAbove"||k==="itemContainer seBelow"?O:T;return(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:k,style:Y,onPointerUp:()=>{this.onSelect()},onPointerEnter:()=>this.setState({isHovered:!0}),onPointerLeave:()=>this.setState({isHovered:!1}),onDragStart:()=>{this.props.globalState.draggedControl=this.props.entity,this.props.globalState.onDraggingStartObservable.notifyObservers()},onDragEnd:()=>{this.props.globalState.onDraggingEndObservable.notifyObservers()},draggable:R.parent&&!this.state.blockDrag,onDrop:V=>{this.drop(),V.preventDefault()},onDragEnter:V=>{V.preventDefault(),this.dragOver(V)},onDragOver:V=>this.updateDragOverLocation(V),onDragLeave:()=>{this._secondDragEnter?this._secondDragEnter=!1:this.setState({dragOver:!1})},children:[D&&(0,f.jsx)("div",{className:"arrow icon",onClick:V=>{if(this.switchExpandedState(),V.shiftKey)for(;D;)this.renderChildren(!0),R=R.children[0],w=R.getClassName()==="MultiMaterial"?[]:p.Tools.SortAndFilter(R,R.getChildren?R.getChildren():R.children),D=w.length>0,R.reservedDataStore.isExpanded=!0},children:N}),(0,f.jsx)(h.ControlTreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,control:R,onClick:()=>{},isHovered:this.state.isHovered,isDragOver:this.state.dragOver,dragOverLocation:this.state.dragOverLocation,onRenamingStateChanged:V=>{this.setState({blockDrag:V})}})]}),this.renderChildren(I)]})}dragOver(T){this.updateDragOverLocation(T),this.state.dragOver?this._secondDragEnter=!0:this.setState({dragOver:!0})}updateDragOverLocation(T){const R=T.target.getBoundingClientRect(),I=T.clientY-R.top;this.props.entity instanceof x.Container?I<E/5?this.setState({dragOverLocation:d.DragOverLocation.ABOVE}):I>4*E/5?this.setState({dragOverLocation:d.DragOverLocation.BELOW}):this.setState({dragOverLocation:d.DragOverLocation.CENTER}):I<E/2?this.setState({dragOverLocation:d.DragOverLocation.ABOVE}):this.setState({dragOverLocation:d.DragOverLocation.BELOW})}drop(){this.props.globalState.onDropObservable.notifyObservers();const T=this.props.entity;this.props.globalState.draggedControl!=T&&(this.props.globalState.draggedControlDirection=this.state.dragOverLocation,this.props.globalState.onParentingChangeObservable.notifyObservers(this.props.entity)),this.props.globalState.draggedControl=null,this.setState({dragOverLocation:d.DragOverLocation.NONE,dragOver:!1}),this._secondDragEnter=!1}}},"../../../tools/guiEditor/dist/controlTypes.js":(l,c,u)=>{u.r(c),u.d(c,{ControlTypes:()=>D});var f=u("../../../tools/guiEditor/dist/imgs/rectangleIcon.svg"),p=u("../../../tools/guiEditor/dist/imgs/ellipseIcon.svg"),m=u("../../../tools/guiEditor/dist/imgs/gridIcon.svg"),_=u("../../../tools/guiEditor/dist/imgs/stackPanelIcon.svg"),d=u("../../../tools/guiEditor/dist/imgs/textBoxIcon.svg"),h=u("../../../tools/guiEditor/dist/imgs/sliderIcon.svg"),x=u("../../../tools/guiEditor/dist/imgs/imageSliderIcon.svg"),A=u("../../../tools/guiEditor/dist/imgs/buttonIcon.svg"),S=u("../../../tools/guiEditor/dist/imgs/passwordFieldIcon.svg"),E=u("../../../tools/guiEditor/dist/imgs/checkboxIcon.svg"),b=u("../../../tools/guiEditor/dist/imgs/imageIcon.svg"),M=u("../../../tools/guiEditor/dist/imgs/keyboardIcon.svg"),T=u("../../../tools/guiEditor/dist/imgs/inputFieldIcon.svg"),O=u("../../../tools/guiEditor/dist/imgs/lineIcon.svg"),R=u("../../../tools/guiEditor/dist/imgs/displaygridIcon.svg"),I=u("../../../tools/guiEditor/dist/imgs/colorPickerIcon.svg"),N=u("../../../tools/guiEditor/dist/imgs/scrollbarIcon.svg"),w=u("../../../tools/guiEditor/dist/imgs/radioButtonIcon.svg");const D=[{className:"Rectangle",icon:f},{className:"Ellipse",icon:p},{className:"StackPanel",icon:_},{className:"Grid",icon:m},{className:"ScrollViewer",icon:N},{className:"Line",icon:O},{className:"TextBlock",icon:d},{className:"InputText",icon:T},{className:"InputPassword",icon:S},{className:"Image",icon:b},{className:"DisplayGrid",icon:R},{className:"Button",icon:A},{className:"Checkbox",icon:E},{className:"RadioButton",icon:w},{className:"Slider",icon:h},{className:"ImageBasedSlider",icon:x},{className:"VirtualKeyboard",icon:M},{className:"ColorPicker",icon:I}]},"../../../tools/guiEditor/dist/diagram/artBoard.js":(l,c,u)=>{u.r(c),u.d(c,{ArtBoardComponent:()=>_});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/diagram/coordinateHelper.js");class _ extends p.Component{constructor(h){super(h),this.state={bounds:new m.Rect(0,0,0,0)},this.props.globalState.onArtBoardUpdateRequiredObservable.add(()=>this.update())}update(){const h=this.props.globalState.workbench.visibleRegionContainer;if(!h)return;const x=m.CoordinateHelper.ComputeLocalBounds(h),A=m.CoordinateHelper.NodeToRTTSpace(h,x.left,x.top,void 0),S=m.CoordinateHelper.RttToCanvasSpace(A.x,A.y),E=m.CoordinateHelper.NodeToRTTSpace(h,x.right,x.bottom,void 0),b=m.CoordinateHelper.RttToCanvasSpace(E.x,E.y);this.setState({bounds:new m.Rect(S.x,S.y,b.x,b.y)})}render(){const h={top:`${this.state.bounds.top}px`,left:`${this.state.bounds.left}px`,width:`${this.state.bounds.width}px`,height:`${this.state.bounds.height}px`};return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:"artboard-stroke",style:h}),(0,f.jsx)("div",{className:"artboard-background",style:h})]})}}},"../../../tools/guiEditor/dist/diagram/coordinateHelper.js":(l,c,u)=>{u.r(c),u.d(c,{CoordinateHelper:()=>h,Rect:()=>m});var f=u("gui/2D/controls/container"),p=u("core/Misc/observable");class m{constructor(A,S,E,b){this.left=A,this.top=S,this.right=E,this.bottom=b}clone(){return new m(this.left,this.top,this.right,this.bottom)}get center(){const A=new p.Vector2(this.left,this.top);return A.addInPlace(new p.Vector2(this.right,this.bottom).subtractInPlace(A).multiplyByFloats(.5,.5))}get width(){return this.right-this.left}get height(){return this.bottom-this.top}}const _=100,d=x=>Math.round(x*_)/_;class h{static GetScale(A,S){let E=A.scaleX,b=A.scaleY;if(S)return new p.Vector2(E,b);let M=A.parent;for(;M;)E*=M.scaleX,b*=M.scaleY,M=M.parent;return new p.Vector2(E,b)}static GetRotation(A,S){let E=A.rotation;if(S)return E;let b=A.parent;for(;b;)E+=b.rotation,b=b.parent;return E}static GetParentSizes(A){const S=new f.Measure(0,0,0,0);if(A.parent&&(S.copyFrom(A.parent._currentMeasure),A.parent.typeName==="Grid")){const E=A.parent.getChildCellInfo(A),b=A.parent.cells[E];b&&(S.width=b.widthInPixels,S.height=b.heightInPixels)}return S}static GetNodeMatrix(A,S){const E=this.GlobalState.guiTexture.getSize();let b,M;if(A.parent){const ne=h.GetParentSizes(A);b=ne.width,M=ne.height}else b=E.width,M=E.height;let T=0,O=0;const R=S?S.width:A.widthInPixels,I=S?S.height:A.heightInPixels,N=S?S.left:A.leftInPixels,w=S?S.top:A.topInPixels;switch(A.horizontalAlignment){case f.Control.HORIZONTAL_ALIGNMENT_LEFT:T=-(b-R)/2;break;case f.Control.HORIZONTAL_ALIGNMENT_RIGHT:T=(b-R)/2;break;case f.Control.HORIZONTAL_ALIGNMENT_CENTER:T=0;break}switch(A.verticalAlignment){case f.Control.VERTICAL_ALIGNMENT_TOP:O=-(M-I)/2;break;case f.Control.VERTICAL_ALIGNMENT_BOTTOM:O=(M-I)/2;break;case f.Control.VERTICAL_ALIGNMENT_CENTER:O=0;break}this._ResetMatrixArray();const D=this._MatrixCache[0],k=this._MatrixCache[1],Y=f.Matrix2D.Identity();let V=R*A.transformCenterX-R/2,ee=I*A.transformCenterY-I/2;A.descendantsOnlyPadding||(V-=(A.paddingRightInPixels-A.paddingLeftInPixels)*1/2,ee-=(A.paddingBottomInPixels-A.paddingTopInPixels)*1/2),f.Matrix2D.TranslationToRef(T+N,O+w,k);const K=this.GetRotation(A,!0),ie=this.GetScale(A,!0);return f.Matrix2D.ComposeToRef(-V,-ee,K,ie.x,ie.y,null,D),Y.multiplyToRef(D,Y),Y.multiplyToRef(k,Y),Y}static NodeToRTTWorldMatrix(A,S,E){const b=[A];let M=A.parent,T=A;for(;M&&T!==E;){if(M.typeName==="Grid"){const R=M.getChildCellInfo(T),I=M.cells[R];b.push(I)}b.push(M),T=M,M=M.parent}return this._ResetMatrixArray(),b.map((R,I)=>this.GetNodeMatrix(R,I===0?S:void 0)).reduce((R,I)=>(R.multiplyToRef(I,R),R),this._MatrixCache[2])}static NodeToRTTSpace(A,S,E,b=new p.Vector2,M,T){return this.NodeToRTTWorldMatrix(A,M,T).transformCoordinates(S,E,b),b.x=d(b.x),b.y=d(b.y),b}static RttToLocalNodeSpace(A,S,E,b=new p.Vector2,M){const T=this.NodeToRTTWorldMatrix(A,M),O=this._MatrixCache[3];return T.invertToRef(O),O.transformCoordinates(S,E,b),b.x=d(b.x),b.y=d(b.y),b}static RttToCanvasSpace(A,S){const E=this.GlobalState.workbench._scene.getEngine();return new p.Vector2(A+E.getRenderWidth()/2,S+E.getRenderHeight()/2)}static MousePointerToRTTSpace(A,S,E){const b=this.GlobalState.workbench._scene,M=b.getEngine();return new p.Vector2((S||b.pointerX)-M.getRenderWidth()/2,(E||b.pointerY)-M.getRenderHeight()/2)}static _ResetMatrixArray(){this._MatrixCache.forEach(A=>{f.Matrix2D.IdentityToRef(A)})}static ComputeLocalBounds(A){return new m(-A.widthInPixels*.5,-A.heightInPixels*.5,A.widthInPixels*.5,A.heightInPixels*.5)}static ConvertToPercentage(A,S=["left","top","width","height"],E){let b=1,M=1;if(A.parent)if(A.parent.typeName==="Grid"){const T=A.parent.getChildCellInfo(A),O=A.parent.cells[T];b=O.widthInPixels,M=O.heightInPixels}else if(A.parent.typeName==="Rectangle"||A.parent.typeName==="Button"){const T=A.parent.thickness*2;b=A.parent._currentMeasure.width-T,M=A.parent._currentMeasure.height-T}else b=A.parent._currentMeasure.width,M=A.parent._currentMeasure.height;for(const T of S){const O=A[T],R=T==="left"||T==="width"||T==="paddingLeft"||T==="paddingRight"?b:M,I=A[`${T}InPixels`]*100/R;A[T]=`${I.toFixed(2)}%`,E==null||E.notifyObservers({object:A,initialValue:O,value:A[T],property:T})}}static Round(A){return Math.floor(A*100)/100}static ConvertToPixels(A,S=["left","top","width","height"],E){const b=h.GetParentSizes(A);A._processMeasures(b,A.host.getContext());for(const M of S){const T=A[M];A[`_${M}`]=new f.ValueAndUnit(this.Round(A[`${M}InPixels`]),f.ValueAndUnit.UNITMODE_PIXEL),E==null||E.notifyObservers({object:A,initialValue:T,value:A[M],property:M})}}}h._MatrixCache=[f.Matrix2D.Identity(),f.Matrix2D.Identity(),f.Matrix2D.Identity(),f.Matrix2D.Identity()]},"../../../tools/guiEditor/dist/diagram/gizmoGeneric.js":(l,c,u)=>{u.r(c),u.d(c,{GizmoGeneric:()=>M});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("gui/2D/controls/container"),m=u("core/Misc/observable"),_=u("../../../../node_modules/react/index.js"),d=u("../../../tools/guiEditor/dist/diagram/coordinateHelper.js"),h=u("../../../tools/guiEditor/dist/diagram/gizmoScalePoint.js");const x=100,A=T=>Math.round(T*x)/x,S=(T,O)=>(T%O+O)%O,E=[[0,2],[0,6],[2,8],[6,8]],b=[315,0,45,270,0,90,225,180,135];class M extends _.Component{constructor(O){super(O),this._onUp=I=>{I&&I.buttons&1||this.setState({scalePointDragging:-1,isRotating:!1})},this._onMove=()=>{const I=this.props.globalState.workbench._scene;if(this.state.scalePointDragging!==-1){const N=this.props.control,w=d.CoordinateHelper.MousePointerToRTTSpace(N,I.pointerX,I.pointerY),D=d.CoordinateHelper.RttToLocalNodeSpace(N,w.x,w.y,void 0,this._storedValues);this._dragLocalBounds(D,this.props.globalState.shiftKeyPressed),this._updateNodeFromLocalBounds(),this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers()}if(this.state.isRotating){const N=Math.atan2(I.pointerY-this._rotation.pivot.y,I.pointerX-this._rotation.pivot.x);for(const w of this.props.globalState.selectedControls)w.rotation+=N-this._rotation.initialAngleToPivot;this._rotation.initialAngleToPivot=N,this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers()}},this._beginDraggingScalePoint=I=>{this.setState({scalePointDragging:I});const N=this.props.control;this._localBounds=d.CoordinateHelper.ComputeLocalBounds(N),this._storedValues=new d.Rect(N.leftInPixels,N.topInPixels,N.leftInPixels+N.widthInPixels,N.topInPixels+N.heightInPixels);for(const w of this.props.globalState.selectedControls)w.metadata.localBounds=d.CoordinateHelper.ComputeLocalBounds(w),w.metadata.storedValues=new d.Rect(w.leftInPixels,w.topInPixels,w.leftInPixels+w.widthInPixels,w.topInPixels+w.heightInPixels)},this._beginRotate=()=>{const I=this.props.globalState.workbench._scene,N=this.props.control,w=new m.Vector2(N.transformCenterX,N.transformCenterY),D=d.CoordinateHelper.NodeToRTTSpace(N,w.x,w.y,void 0),k=d.CoordinateHelper.RttToCanvasSpace(D.x,D.y),Y=new m.Vector2(k.x,k.y),V=Math.atan2(I.pointerY-Y.y,I.pointerX-Y.x);this._rotation={pivot:Y,initialAngleToPivot:V},this.setState({isRotating:!0})};const R=[];for(let I=h.ScalePointPosition.Top;I<=h.ScalePointPosition.Bottom;I++)for(let N=h.ScalePointPosition.Left;N<=h.ScalePointPosition.Right;N++){const w=N===h.ScalePointPosition.Center&&I===h.ScalePointPosition.Center;R.push({position:new m.Vector2,horizontalPosition:N,verticalPosition:I,rotation:0,isPivot:w,defaultRotation:b[R.length]})}this._localBounds=new d.Rect(0,0,0,0),this.state={canvasBounds:new d.Rect(0,0,0,0),scalePoints:R,scalePointDragging:-1,isRotating:!1},this._gizmoUpdateObserver=this.props.globalState.onGizmoUpdateRequireObservable.add(()=>{this.updateGizmo()}),this._pointerUpObserver=this.props.globalState.onPointerUpObservable.add(I=>this._onUp(I)),this._pointerMoveObserver=this.props.globalState.onPointerMoveObservable.add(()=>this._onMove())}componentDidMount(){this.updateGizmo()}componentWillUnmount(){this.props.globalState.onGizmoUpdateRequireObservable.remove(this._gizmoUpdateObserver),this.props.globalState.onPointerUpObservable.remove(this._pointerUpObserver),this.props.globalState.onPointerMoveObservable.remove(this._pointerMoveObserver)}updateGizmo(){const O=this.props.control,R=new d.Rect(Number.MAX_VALUE,Number.MAX_VALUE,0,0),I=d.CoordinateHelper.ComputeLocalBounds(O),N={left:0,right:0,top:0,bottom:0};let w=O.parent;for(;w!=null;)N.left+=w.paddingLeftInPixels,N.right+=w.paddingRightInPixels,N.top+=w.paddingTopInPixels,N.bottom+=w.paddingBottomInPixels,w=w.parent;const D=(N.left-N.right)*.5;I.left+=D,I.right+=D;const k=(N.top-N.bottom)*.5;I.top+=k,I.bottom+=k;const Y=this.state.scalePoints.map(V=>{const ee=new m.Vector2;switch(V.horizontalPosition){case h.ScalePointPosition.Left:ee.x=I.left;break;case h.ScalePointPosition.Center:ee.x=I.center.x;break;case h.ScalePointPosition.Right:ee.x=I.right;break}switch(V.verticalPosition){case h.ScalePointPosition.Top:ee.y=I.top;break;case h.ScalePointPosition.Center:ee.y=I.center.y;break;case h.ScalePointPosition.Bottom:ee.y=I.bottom;break}if(V.isPivot){const ne=O.transformCenterX-.5,te=O.transformCenterY-.5;ee.x=O.widthInPixels*ne,ee.y=O.heightInPixels*te}const K=d.CoordinateHelper.NodeToRTTSpace(O,ee.x,ee.y,void 0),ie=d.CoordinateHelper.RttToCanvasSpace(K.x,K.y);return ie.x<R.left&&(R.left=ie.x),ie.x>R.right&&(R.right=ie.x),ie.y<R.top&&(R.top=ie.y),ie.y>R.bottom&&(R.bottom=ie.y),V.position.x=ie.x,V.position.y=ie.y,V.rotation=d.CoordinateHelper.GetRotation(O)*(180/Math.PI),V});this.setState({canvasBounds:R,scalePoints:[...Y]})}_rotate(O,R,I,N,w){return{x:(O-I)*Math.cos(w)-(R-N)*Math.sin(w)+I,y:(O-I)*Math.sin(w)+(R-N)*Math.cos(w)+N}}_dragLocalBounds(O,R=!1){const I=this.state.scalePoints[this.state.scalePointDragging],N=this._localBounds.clone(),w=p.MathTools.Round(this._localBounds.width/this._localBounds.height);if(I.horizontalPosition===h.ScalePointPosition.Left&&(N.left=Math.min(this._localBounds.right-1,O.x)),I.verticalPosition===h.ScalePointPosition.Top&&(N.top=Math.min(this._localBounds.bottom-1,O.y)),I.horizontalPosition===h.ScalePointPosition.Right&&(N.right=Math.max(this._localBounds.left+1,O.x)),I.verticalPosition===h.ScalePointPosition.Bottom&&(N.bottom=Math.max(this._localBounds.top+1,O.y)),R){const k=N.width-this._localBounds.width,Y=N.height-this._localBounds.height,V=I.horizontalPosition===h.ScalePointPosition.Center||I.verticalPosition===h.ScalePointPosition.Center,ee=Math.abs(k)>Math.abs(Y);if(V?ee:!ee){const K=k/w;I.verticalPosition===h.ScalePointPosition.Top?N.top=this._localBounds.top-K:I.verticalPosition===h.ScalePointPosition.Bottom?N.bottom=this._localBounds.bottom+K:(N.top=this._localBounds.top-K/2,N.bottom=this._localBounds.bottom+K/2)}else{const K=Y*w;I.horizontalPosition===h.ScalePointPosition.Left?N.left=this._localBounds.left-K:I.horizontalPosition===h.ScalePointPosition.Right?N.right=this._localBounds.right+K:(N.left=this._localBounds.left-K/2,N.right=this._localBounds.right+K/2)}}const D=["left","top","right","bottom"];for(const k of this.props.globalState.selectedControls){const Y=k.metadata.localBounds,V=Y.clone(),ee=S(this.props.control.rotation-k.rotation,Math.PI*2)/Math.PI*2;D.forEach((K,ie)=>{const ne=Math.round(ie+ee)%4,te=ie<2==ne<2?1:-1;V[D[ne]]+=(N[K]-this._localBounds[K])*te}),V.left=Math.min(Y.right-1,V.left),V.top=Math.min(Y.bottom-1,V.top),V.right=Math.max(Y.left+1,V.right),V.bottom=Math.max(Y.top+1,V.bottom),k.metadata.localBounds=V}this._localBounds=N}_updateNodeFromLocalBounds(){const O=this.state.scalePoints[this.state.scalePointDragging],R=O.horizontalPosition===h.ScalePointPosition.Left&&O.verticalPosition!==h.ScalePointPosition.Center,I=O.verticalPosition===h.ScalePointPosition.Top&&O.horizontalPosition!==h.ScalePointPosition.Center;for(const N of this.props.globalState.selectedControls){const w=N.metadata.localBounds.right-N.metadata.localBounds.left,D=N.metadata.localBounds.bottom-N.metadata.localBounds.top,k=d.CoordinateHelper.GetRotation(N,!0),Y=d.CoordinateHelper.GetScale(N,!0),V=N.metadata.localBounds.center,ee=V.clone();ee.multiplyInPlace(Y);const K=Math.cos(k),ie=Math.sin(k),ne=Math.cos(k+Math.PI),te=Math.sin(k+Math.PI),W=(N.metadata.storedValues.width-w)*.5,Q=(N.metadata.storedValues.height-D)*.5;switch(N.horizontalAlignment){case p.Control.HORIZONTAL_ALIGNMENT_LEFT:ee.x+=(R?W:-V.x)*K,ee.y+=(R?-W:V.x)*ie;break;case p.Control.HORIZONTAL_ALIGNMENT_RIGHT:ee.x+=(R?-W:V.x)*K,ee.y+=(R?W:-V.x)*ie;break}switch(N.verticalAlignment){case p.Control.VERTICAL_ALIGNMENT_TOP:ee.y+=(I?-Q:V.y)*ne,ee.x+=(I?-Q:V.y)*te;break;case p.Control.VERTICAL_ALIGNMENT_BOTTOM:ee.y+=(I?Q:-V.y)*ne,ee.x+=(I?Q:-V.y)*te;break}const re=this._rotate(ee.x,ee.y,0,0,k),oe=["left","top","width","height"];for(const X of oe){let se=0;switch(X){case"left":se=A(N.metadata.storedValues.left+re.x);break;case"top":se=A(N.metadata.storedValues.top+re.y);break;case"width":se=A(w);break;case"height":se=A(D);break}const ue=N[`_${X}`].unit;N[`${X}InPixels`]=se,ue===p.ValueAndUnit.UNITMODE_PERCENTAGE&&d.CoordinateHelper.ConvertToPercentage(N,[X])}N.typeName==="Image"?N.autoScale=!1:N.typeName==="TextBlock"&&(N.resizeToFit=!1)}}render(){return(0,f.jsxs)("div",{className:"gizmo",children:[E.map((O,R)=>{const I=this.state.scalePoints[O[0]],w=this.state.scalePoints[O[1]].position.subtract(I.position),D=Math.atan2(w.y,w.x),k=w.length();return(0,f.jsx)("div",{className:"bounding-box-line",style:{left:`${I.position.x+w.x/2}px`,top:`${I.position.y+w.y/2}px`,width:`${k}px`,transform:`translate(-50%, -50%) rotate(${D}rad)`}},R)}),this.state.scalePoints.map((O,R)=>(0,f.jsx)(h.GizmoScalePoint,{clickable:this.state.scalePointDragging===-1&&!O.isPivot&&!this.state.isRotating,scalePoint:O,onDrag:()=>this._beginDraggingScalePoint(R),onRotate:()=>this._beginRotate(),onUp:()=>this._onUp(),canRotate:!0},R))]})}}},"../../../tools/guiEditor/dist/diagram/gizmoLine.js":(l,c,u)=>{u.r(c),u.d(c,{GizmoLine:()=>S});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/diagram/gizmoScalePoint.js"),_=u("core/Misc/observable"),d=u("../../../tools/guiEditor/dist/diagram/coordinateHelper.js"),h=u("gui/2D/controls/container");function x(E,b,M,T,O,R,I){const N=Math.min(E,M),w=Math.min(b,T),D=Math.max(E,M),k=Math.max(b,T),Y=D-N,V=k-w,ee=N+Y*O,K=w+V*R;I.x=ee,I.y=K}const A=[new _.Vector2,new _.Vector2,new _.Vector2];function S(E){const{control:b,globalState:M}=E,T=p.useRef(!1),O=p.useRef(!1),R=p.useRef(!1),I=p.useRef(),N=p.useRef(new _.Vector2),w=p.useRef(new _.Vector2),[D,k]=p.useState([{position:new _.Vector2,horizontalPosition:m.ScalePointPosition.Left,verticalPosition:m.ScalePointPosition.Top,rotation:0,isPivot:!1,defaultRotation:0,id:0},{position:new _.Vector2,horizontalPosition:m.ScalePointPosition.Center,verticalPosition:m.ScalePointPosition.Center,rotation:0,isPivot:!0,defaultRotation:0,id:1},{position:new _.Vector2,horizontalPosition:m.ScalePointPosition.Right,verticalPosition:m.ScalePointPosition.Bottom,rotation:0,isPivot:!1,defaultRotation:0,id:2}]);p.useEffect(()=>{const oe=M.onGizmoUpdateRequireObservable.add(()=>{Y()});return()=>{M.onGizmoUpdateRequireObservable.remove(oe)}},[]);const Y=()=>{const oe=b,X=oe._cachedParentMeasure.left+oe._x1.getValue(oe._host),se=oe._cachedParentMeasure.top+oe._y1.getValue(oe._host),ue=oe._cachedParentMeasure.left+oe._effectiveX2,he=oe._cachedParentMeasure.top+oe._effectiveY2,fe=A[0].set(X,se),Ae=A[1].set(ue,he),Se=A[2];x(X,se,ue,he,oe.transformCenterX,oe.transformCenterY,Se);const we=oe._transformMatrix;we.transformCoordinates(fe.x,fe.y,fe),we.transformCoordinates(Ae.x,Ae.y,Ae),we.transformCoordinates(Se.x,Se.y,Se),w.current=Se;const ke=[fe,Se,Ae];k(D.map((st,Ve)=>{const Ke=ke[Ve];return{...st,position:Ke,rotation:oe.rotation}}))},V=(oe,X,se)=>h.MathTools.Round(oe.getValue(X)+se),ee=(oe,X)=>{const se=d.CoordinateHelper.MousePointerToRTTSpace(b,oe.x,oe.y),ue=d.CoordinateHelper.RttToLocalNodeSpace(b,se.x,se.y),he=d.CoordinateHelper.MousePointerToRTTSpace(b,N.current.x,N.current.y),fe=d.CoordinateHelper.RttToLocalNodeSpace(b,he.x,he.y),Ae=A[0];ue.subtractToRef(fe,Ae);const Se=A[1];Ae.rotateToRef(b.rotation,Se),X.x=Se.x,X.y=Se.y},K=oe=>{const X=A[0];ee(oe,X),b.x1=V(b._x1,b._host,X.x),b.y1=V(b._y1,b._host,X.y),b.x2=V(b._x2,b._host,X.x),b.y2=V(b._y2,b._host,X.y),M.onPropertyGridUpdateRequiredObservable.notifyObservers()},ie=oe=>{const X=A[0];ee(oe,X);const se=I.current;se===0?(b.x1=V(b._x1,b._host,X.x),b.y1=V(b._y1,b._host,X.y)):se===2&&(b.x2=V(b._x2,b._host,X.x),b.y2=V(b._y2,b._host,X.y)),M.onPropertyGridUpdateRequiredObservable.notifyObservers()},ne=oe=>{const X=oe.subtract(w.current);X.normalize();const se=N.current.subtract(w.current);se.normalize();const ue=_.Vector2.Dot(X,se),he=Math.acos(ue),fe=-Math.sign(X.x*se.y-X.y*se.x);isNaN(he)||(b.rotation+=fe*he,b.rotation=h.MathTools.Round(b.rotation),M.onPropertyGridUpdateRequiredObservable.notifyObservers())},te=()=>{const oe=M.workbench._scene,X=new _.Vector2(oe.pointerX,oe.pointerY);O.current&&T.current?K(X):O.current?ie(X):R.current&&ne(X),N.current=X},W=()=>{O.current=!1,R.current=!1};p.useEffect(()=>{const oe=E.globalState.onPointerMoveObservable.add(te),X=E.globalState.onPointerUpObservable.add(W);return()=>{E.globalState.onPointerMoveObservable.remove(oe),E.globalState.onPointerUpObservable.remove(X)}},[]);const Q=(oe,X)=>{if(oe&&X){const se=M.workbench._scene;if(N.current=new _.Vector2(se.pointerX,se.pointerY),T.current=X.isPivot,!X.isPivot&&b.rotation){const ue=b,he=ue._x1.getValue(ue._host),fe=ue._y1.getValue(ue._host),Ae=ue._x2.getValue(ue._host),Se=ue._y2.getValue(ue._host),we=A[0].set(he,fe),ke=A[1].set(Ae,Se),st=A[2];x(he,fe,Ae,Se,ue.transformCenterX,ue.transformCenterY,st);const Ve=h.Matrix2D.Identity(),Ke=h.Matrix2D.Identity();h.Matrix2D.TranslationToRef(-st.x,-st.y,Ke),Ve.multiplyToRef(Ke,Ve),h.Matrix2D.RotationToRef(b.rotation,Ke),Ve.multiplyToRef(Ke,Ve),h.Matrix2D.TranslationToRef(st.x,st.y,Ke),Ve.multiplyToRef(Ke,Ve),Ve.transformCoordinates(we.x,we.y,we),Ve.transformCoordinates(ke.x,ke.y,ke),b.rotation=0,b.x1=h.MathTools.Round(we.x),b.y1=h.MathTools.Round(we.y),b.x2=h.MathTools.Round(ke.x),b.y2=h.MathTools.Round(ke.y),M.onPropertyGridUpdateRequiredObservable.notifyObservers()}O.current=!0,R.current=!1,I.current=X.id}},re=oe=>{if(oe){R.current=!0,O.current=!1;const X=M.workbench._scene;N.current=new _.Vector2(X.pointerX,X.pointerY)}};return(0,f.jsx)("div",{className:"gizmo",children:D.map((oe,X)=>(0,f.jsx)(m.GizmoScalePoint,{scalePoint:oe,allowClickOnPivot:!0,clickable:!0,onDrag:Q,onRotate:re,onUp:W,canRotate:!0},X))})}},"../../../tools/guiEditor/dist/diagram/gizmoScalePoint.js":(l,c,u)=>{u.r(c),u.d(c,{GizmoScalePoint:()=>ee,ScalePointPosition:()=>R});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../tools/guiEditor/dist/imgs/gizmoPivotIcon.svg"),m=u("../../../tools/guiEditor/dist/imgs/cursor_scaleDiagonalLeft.svg"),_=u("../../../tools/guiEditor/dist/imgs/cursor_scaleDiagonalRight.svg"),d=u("../../../tools/guiEditor/dist/imgs/cursor_scaleHorizontal.svg"),h=u("../../../tools/guiEditor/dist/imgs/cursor_scaleVertical.svg"),x=u("../../../tools/guiEditor/dist/imgs/cursor_rotate0.svg"),A=u("../../../tools/guiEditor/dist/imgs/cursor_rotate1.svg"),S=u("../../../tools/guiEditor/dist/imgs/cursor_rotate2.svg"),E=u("../../../tools/guiEditor/dist/imgs/cursor_rotate3.svg"),b=u("../../../tools/guiEditor/dist/imgs/cursor_rotate4.svg"),M=u("../../../tools/guiEditor/dist/imgs/cursor_rotate5.svg"),T=u("../../../tools/guiEditor/dist/imgs/cursor_rotate6.svg"),O=u("../../../tools/guiEditor/dist/imgs/cursor_rotate7.svg"),R;(function(K){K[K.Top=-1]="Top",K[K.Left=-1]="Left",K[K.Center=0]="Center",K[K.Right=1]="Right",K[K.Bottom=1]="Bottom"})(R||(R={}));const I=`url("${m}") 12 12, nwse-resize`,N=`url("${_}") 12 12, nesw-resize`,w=`url("${d}") 12 12, pointer`,D=`url("${h}") 12 12, ns-resize`,k=[D,N,w,I,D,N,w,I],Y=[x,A,S,E,b,M,T,O].map(K=>`url("${K}") 12 12, pointer`),V=(K,ie)=>(K%ie+ie)%ie;function ee(K){const{scalePoint:ie,clickable:ne,onDrag:te,onRotate:W,onUp:Q,overrideCursor:re,canRotate:oe,allowClickOnPivot:X}=K,se={left:`${ie.position.x}px`,top:`${ie.position.y}px`,transform:"translate(-50%, -50%) rotate("+ie.rotation+"deg)",pointerEvents:ne?"auto":"none"};if(ie.isPivot)return(0,f.jsx)("img",{className:"pivot-point",src:p,style:se,onDragStart:at=>at.preventDefault(),onPointerDown:at=>{X&&te(at,ie)},onPointerUp:()=>{X&&Q()}});const ue=ie.defaultRotation+ie.rotation,he=V(ue,360),Ae=Math.round(he/45)%8,Se=re||k[Ae],we=30,ke=20,st=7,Ve={top:(we-ke)/2+st*ie.verticalPosition,left:(we-ke)/2+st*ie.horizontalPosition,cursor:Y[Ae]},Ke=20,ct=5,nt={top:(we-Ke)/2-ct*ie.verticalPosition,left:(we-Ke)/2-ct*ie.horizontalPosition,cursor:Se};return(0,f.jsxs)("div",{style:se,className:"scale-point-container",children:[oe&&(0,f.jsx)("div",{className:"rotate-click-area",onPointerDown:at=>{W(at,ie)},style:Ve}),(0,f.jsx)("div",{className:"scale-click-area",draggable:!0,onDragStart:at=>at.preventDefault(),onPointerDown:at=>{at.buttons&1&&te(at,ie)},onPointerUp:Q,style:nt}),(0,f.jsx)("div",{className:"scale-point",draggable:!0,onDragStart:at=>at.preventDefault(),onPointerDown:at=>{at.buttons&1&&te(at,ie)},onPointerUp:Q,style:{cursor:Se}})]})}},"../../../tools/guiEditor/dist/diagram/gizmoWrapper.js":(l,c,u)=>{u.r(c),u.d(c,{GizmoWrapper:()=>d});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/diagram/gizmoGeneric.js"),_=u("../../../tools/guiEditor/dist/diagram/gizmoLine.js");class d extends p.Component{componentWillMount(){this.observer=this.props.globalState.onSelectionChangedObservable.add(()=>this.forceUpdate())}componentWillUnmount(){this.props.globalState.onSelectionChangedObservable.remove(this.observer)}render(){const x=this.props.globalState.selectedControls;return(0,f.jsx)(f.Fragment,{children:x.map(A=>A.getClassName()==="Line"?(0,f.jsx)(_.GizmoLine,{globalState:this.props.globalState,control:A},A.uniqueId):(0,f.jsx)(m.GizmoGeneric,{globalState:this.props.globalState,control:A},A.uniqueId))})}}},"../../../tools/guiEditor/dist/diagram/workbench.js":(l,c,u)=>{u.r(c),u.d(c,{ConstraintDirection:()=>A,WorkbenchComponent:()=>O});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/globalState.js"),_=u("gui/2D/controls/container"),d=u("core/Misc/observable"),h=u("../../../tools/guiEditor/dist/tools.js"),x=u("../../../tools/guiEditor/dist/diagram/coordinateHelper.js");u("../../../tools/guiEditor/dist/diagram/workbenchCanvas.scss");var A;(function(R){R[R.NONE=0]="NONE",R[R.X=2]="X",R[R.Y=3]="Y"})(A||(A={}));function S(R,I){let N=0;return function(...w){const D=Date.now();D-N<I||(N=D,R(...w))}}const E=1,b=5,M=5,T=10;class O extends p.Component{static get addedFonts(){return this._addedFonts}get visibleRegionContainer(){return this._visibleRegionContainer}get panAndZoomContainer(){return this._panAndZoomContainer}set trueRootContainer(I){I!==this._trueRootContainer&&(this._visibleRegionContainer.children.forEach(N=>this._visibleRegionContainer.removeControl(N)),this._visibleRegionContainer.addControl(I),this._trueRootContainer=I,I._host=this.props.globalState.guiTexture)}get trueRootContainer(){return this._trueRootContainer}get guiSize(){return this._guiSize}get pasteDisabled(){return this._pasteDisabled}set guiSize(I){this._guiSize={...I},this._visibleRegionContainer.widthInPixels=this._guiSize.width,this._visibleRegionContainer.heightInPixels=this._guiSize.height,this.props.globalState.onResizeObservable.notifyObservers(this._guiSize),this.props.globalState.onReframeWindowObservable.notifyObservers(),this.props.globalState.onWindowResizeObservable.notifyObservers()}applyEditorTransformation(){const I=this.props.globalState.guiTexture;I._rootContainer!=this._panAndZoomContainer&&(I._rootContainer=this._panAndZoomContainer,this._visibleRegionContainer.addControl(this._trueRootContainer),this.props.globalState.guiTexture.markAsDirty()),(I.getSize().width!==this._engine.getRenderWidth()||I.getSize().height!==this._engine.getRenderHeight())&&I.scaleTo(this._engine.getRenderWidth(),this._engine.getRenderHeight()),(I.getSize().width!==this._engine.getRenderWidth()||I.getSize().height!==this._engine.getRenderHeight())&&I.scaleTo(this._engine.getRenderWidth(),this._engine.getRenderHeight()),this._trueRootContainer.clipContent=!1,this._trueRootContainer.clipChildren=!1}removeEditorTransformation(){const I=this.props.globalState.guiTexture;I._rootContainer!=this._trueRootContainer&&(this._visibleRegionContainer.removeControl(this._trueRootContainer),I._rootContainer=this._trueRootContainer),this._trueRootContainer.clipContent=!0,this._trueRootContainer.clipChildren=!0}_reframeWindow(){this._panningOffset=new d.Vector2(0,0);const I=this._engine.getRenderWidth()/this.guiSize.width,N=this._engine.getRenderHeight()/this.guiSize.height;this._zoomFactor=Math.min(I,N)*.9}constructor(I){super(I),this._setConstraintDirection=!1,this._mouseStartPoint=null,this._constraintDirection=A.NONE,this._isOverGUINode=[],this._doubleClick=null,this._currLeft=0,this._currTop=0,this._controlsHit=[],this._pointerTravelDistance=0,this._processSelectionOnUp=!1,this._centerZoomMousePosition=new d.Vector2(0,0),this._hasPerformedDragZoom=!1,this._defaultGUISize={width:1024,height:1024},this._initialPanningOffset=new d.Vector2(0,0),this._panningOffset=new d.Vector2(0,0),this._zoomFactor=1,this._zoomModeIncrement=.2,this._guiSize=this._defaultGUISize,this._pasteDisabled=!0,this.keyEvent=D=>{D.target.nodeName!=="INPUT"&&(D.shiftKey?this._setConstraintDirection=this._constraintDirection===A.NONE:(this._setConstraintDirection=!1,this._constraintDirection=A.NONE),this.props.globalState.shiftKeyPressed=D.shiftKey&&D.type==="keydown",(D.key==="Delete"||D.key==="Backspace")&&(this.props.globalState.lockObject.lock||this.props.globalState.deleteSelectedNodes()),this.props.globalState.keys.isKeyDown("control")&&!this.props.globalState.lockObject.lock&&D.key==="a"&&(D.preventDefault(),this.props.globalState.setSelection(this.trueRootContainer.children)))},this.blurEvent=()=>{this._constraintDirection=A.NONE,this.props.globalState.onPointerUpObservable.notifyObservers(null)},this._controlToLinkedMeshMap=new Map,this._observersMap={onPointerDownObservable:new Map,onPointerUpObservable:new Map,onPointerMoveObservable:new Map,onPointerEnterObservable:new Map,onPointerOutObservable:new Map,onPointerClickObservable:new Map,onDisposeObservable:new Map,onIsVisibleChangedObservable:new Map,onBeforeDrawObservable:new Map,onAfterDrawObservable:new Map,onWheelObservable:new Map};const{globalState:N}=I;this._rootContainer=p.createRef(),N.onSelectionChangedObservable.add(()=>this.updateNodeOutlines()),N.onToolChangeObservable.add(()=>{this.forceUpdate()}),N.onFitControlsToWindowObservable.add(()=>{if(N.selectedControls.length){let D=Number.MAX_SAFE_INTEGER,k=Number.MAX_SAFE_INTEGER,Y=-Number.MAX_SAFE_INTEGER,V=-Number.MAX_SAFE_INTEGER;for(const Q of N.selectedControls){const re=-Q.widthInPixels/2,oe=-Q.heightInPixels/2,X=re+Q.widthInPixels,se=oe+Q.heightInPixels,ue=x.CoordinateHelper.NodeToRTTSpace(Q,re,oe,new d.Vector2,void 0,this.trueRootContainer),he=x.CoordinateHelper.NodeToRTTSpace(Q,X,se,new d.Vector2,void 0,this.trueRootContainer),fe=x.CoordinateHelper.NodeToRTTSpace(Q,re,se,new d.Vector2,void 0,this.trueRootContainer),Ae=x.CoordinateHelper.NodeToRTTSpace(Q,X,oe,new d.Vector2,void 0,this.trueRootContainer);D=Math.min(D,ue.x,he.x,fe.x,Ae.x),k=Math.min(k,ue.y,he.y,fe.y,Ae.y),Y=Math.max(Y,ue.x,he.x,fe.x,Ae.x),V=Math.max(V,ue.y,he.y,fe.y,Ae.y)}const ee=Y-D,K=V-k,ie=(D+Y)/2,ne=(k+V)/2;this._panningOffset=new d.Vector2(-ie,ne);const te=this._engine.getRenderWidth()/ee,W=this._engine.getRenderHeight()/K;this._zoomFactor=Math.min(te,W)*.9}else this._reframeWindow()}),N.onReframeWindowObservable.add(()=>{this._reframeWindow()}),N.onOutlineChangedObservable.add(()=>{this.updateNodeOutlines()}),N.onSelectionChangedObservable.add(()=>{this.updateNodeOutlines()}),N.onParentingChangeObservable.add(D=>{this.parent(D)}),N.hostDocument.addEventListener("keyup",this.keyEvent,!1),N.hostDocument.addEventListener("keydown",this.keyEvent,!1),N.hostDocument.defaultView.addEventListener("blur",this.blurEvent,!1);let w=1;N.onWindowResizeObservable.add(()=>{w+=5}),N.onNewSceneObservable.add(D=>{D&&D.onBeforeRenderObservable.add(()=>{w>0&&(w--,N.onGizmoUpdateRequireObservable.notifyObservers(),this._engine.resize(),N.onArtBoardUpdateRequiredObservable.notifyObservers())})}),N.onCopyObservable.add(D=>this.copyToClipboard(D)),N.onCutObservable.add(D=>this.cutToClipboard(D)),N.onPasteObservable.add(D=>this.pasteFromClipboard(D)),N.workbench=this,N.onResizeObservable.notifyObservers(this._guiSize),N.onPopupClosedObservable.add(()=>{this.dispose()})}copyToClipboard(I){var w;this._pasteDisabled=!1;const N=[];for(const D of this.props.globalState.selectedControls){if(((w=D.parent)==null?void 0:w.getClassName())==="Grid"){const Y=D.parent.getChildCellInfo(D),[V,ee]=Y.split(":");D.metadata={...D.metadata,_cellInfo:{row:V,column:ee}}}const k={};D.serialize(k),N.push(k),this._currLeft=D.leftInPixels,this._currTop=D.topInPixels}I(JSON.stringify({GUIClipboard:!0,controls:N}))}cutToClipboard(I){this.copyToClipboard(I),this.props.globalState.deleteSelectedNodes()}pasteFromClipboard(I){var N,w,D;try{const k=JSON.parse(I);if(k.GUIClipboard){const Y=[];for(const ee of k.controls)Y.push(_.Control.Parse(ee,this.props.globalState.guiTexture));((N=Y[0].parent)==null?void 0:N.typeName)!="StackPanel"&&(this._currLeft+=T,this._currTop+=T),Y[0].leftInPixels=this._currLeft,Y[0].topInPixels=this._currTop;const V=this.props.globalState.workbench.appendBlock(Y[0]);if(((w=V.parent)==null?void 0:w.typeName)==="Grid"&&((D=V.metadata)!=null&&D._cellInfo)){const{row:ee,column:K}=V.metadata._cellInfo,ie=V.parent;ie.removeControl(V),ie.addControl(V,parseInt(ee),parseInt(K))}return this.props.globalState.setSelection([V]),!0}}catch{}return d.Logger.Warn("Paste attempted, but clipboard content was invalid."),!1}CopyGUIControl(I){var D,k;const N={};I.serialize(N);const w=_.Control.Parse(N,this.props.globalState.guiTexture);if(w){if(this.props.globalState.workbench.appendBlock(w),this.props.globalState.guiTexture.removeControl(w),((D=I.parent)==null?void 0:D.typeName)==="Grid"){const V=h.Tools.GetCellInfo(I.parent,I);I.parent.addControl(w,V.x,V.y)}else(k=I.parent)==null||k.addControl(w);let Y=1;for(;this.props.globalState.guiTexture.getDescendants(!1).filter(V=>V.name===`${w.name} Copy ${Y}`).length;)Y++;w.name=`${w.name} Copy ${Y}`,this.props.globalState.select(w)}}addEditorBehavior(I){I.onPointerUpObservable.add(()=>{this.clicked=!1}),I.onPointerDownObservable.add(N=>{N.buttonIndex>0||this.props.globalState.tool!==m.GUIEditorTool.SELECT||this._controlsHit.push(I)}),I.onPointerEnterObservable.add(()=>{this._isOverGUINode.indexOf(I)===-1&&this._isOverGUINode.push(I)}),I.onPointerOutObservable.add(()=>{const N=this._isOverGUINode.indexOf(I);N!==-1&&this._isOverGUINode.splice(N,1)}),I.onDisposeObservable.add(()=>{const N=this._isOverGUINode.indexOf(I);N!==-1&&this._isOverGUINode.splice(N,1)}),I.metadata={...I.metadata,guiEditor:!0}}removeEditorBehavior(I){!I.metadata||!I.metadata.guiEditor||(delete I.metadata.guiEditor,delete I.metadata.editorUniqueId)}dispose(){this.props.globalState.hostDocument.removeEventListener("keyup",this.keyEvent),this.props.globalState.hostDocument.removeEventListener("keydown",this.keyEvent),this.props.globalState.hostDocument.defaultView.removeEventListener("blur",this.blurEvent),this._guiRenderObserver&&this.props.globalState.guiTexture.onEndRenderObservable.remove(this._guiRenderObserver),this._engine.dispose()}loadFromJson(I){var N;this.removeEditorTransformation(),this.props.globalState.setSelection([]),this.props.globalState.liveGuiTexture?((N=this.props.globalState.liveGuiTexture)==null||N.parseContent(I,!0),this.synchronizeLiveGUI()):this.props.globalState.guiTexture.parseContent(I,!0),this.trueRootContainer=this.props.globalState.guiTexture._rootContainer,this.guiSize=this.props.globalState.guiTexture.getSize(),this.loadToEditor()}loadControlFromJson(I){var w,D;const N=[];for(const k of I.controls){const Y=_.Control.Parse(k,this.props.globalState.guiTexture);N.push(Y);const V=this.props.globalState.workbench.appendBlock(Y);if(((w=V.parent)==null?void 0:w.typeName)==="Grid"&&((D=V.metadata)!=null&&D._cellInfo)){const{row:ee,column:K}=V.metadata._cellInfo,ie=V.parent;ie.removeControl(V),ie.addControl(V,parseInt(ee),parseInt(K))}}this.props.globalState.setSelection(N)}async loadFromSnippet(I){var N;this.removeEditorTransformation(),this.props.globalState.setSelection([]),this.props.globalState.liveGuiTexture?(await((N=this.props.globalState.liveGuiTexture)==null?void 0:N.parseFromSnippetAsync(I,!0)),this.synchronizeLiveGUI()):await this.props.globalState.guiTexture.parseFromSnippetAsync(I,!0),this.trueRootContainer=this.props.globalState.guiTexture._rootContainer,this.guiSize=this.props.globalState.guiTexture.getSize(),this.loadToEditor(),this.props.globalState.customLoad&&this.props.globalState.customLoad.action(I).catch(()=>{alert("Unable to load your GUI")})}loadToEditor(){this.props.globalState.guiTexture.rootContainer.getDescendants().forEach(I=>{const N=I.fontFamily.trim().toLowerCase();O._addedFonts.indexOf(N)===-1&&O._addedFonts.push(I.fontFamily),this.addEditorBehavior(I)}),this._isOverGUINode=[],this.props.globalState.setSelection([]),this.props.globalState.onFitControlsToWindowObservable.notifyObservers(),this.props.globalState.onFontsParsedObservable.notifyObservers()}updateNodeOutlines(){for(const I of this._trueRootContainer.getDescendants())I.isHighlighted=I.getClassName()==="Grid"&&(this.props.globalState.outlines||this.props.globalState.selectedControls.includes(I)),I.highlightLineWidth=5}appendBlock(I){var N;return this.addEditorBehavior(I),I.getDescendants(!0).forEach(w=>this.addEditorBehavior(w)),this.props.globalState.selectedControls.length!=0?(N=this.props.globalState.selectedControls[0].parent)==null||N.addControl(I):this.trueRootContainer.addControl(I),I}parent(I){const N=this.props.globalState.draggedControl,w=N==null?void 0:N.parent;if(w&&N&&this._isNotChildInsert(I,N))if(I!=null)if(I instanceof _.Container&&this.props.globalState.draggedControlDirection===m.DragOverLocation.CENTER)w.removeControl(N),I.addControl(N);else if(I.parent)if(I.parent.typeName!=="Grid"){w.removeControl(N);let D=I.parent.children.indexOf(I);const k=I.parent.typeName==="StackPanel"||I.parent.typeName==="VirtualKeyboard";D=this._adjustParentingIndex(D,k),I.parent.children.splice(D,0,N),N.parent=I.parent}else I.parent===w?this._reorderGrid(I.parent,N,I):(w.removeControl(N),I.parent.addControl(N),this._reorderGrid(I.parent,N,I));else w.removeControl(N),this.trueRootContainer.addControl(N);else w.removeControl(N),this.trueRootContainer.addControl(N),this.trueRootContainer.children.pop(),this.trueRootContainer.children.splice(0,0,N);if(N){const D=N.parent;if(D){if(D.typeName==="StackPanel"||D.typeName==="VirtualKeyboard"){const k=D.isVertical;N._width.unit===_.ValueAndUnit.UNITMODE_PERCENTAGE&&!k&&(x.CoordinateHelper.ConvertToPixels(N,["width"]),this.props.globalState.hostWindow.alert("Warning: Parenting to horizontal stack panel converts width to pixel values")),N._height.unit===_.ValueAndUnit.UNITMODE_PERCENTAGE&&k&&(x.CoordinateHelper.ConvertToPixels(N,["height"]),this.props.globalState.hostWindow.alert("Warning: Parenting to vertical stack panel converts height to pixel values"))}D.markAsDirty()}}this.props.globalState.draggedControl=null}_canClone(){return this.props.globalState.liveGuiTexture&&this.props.globalState.guiTexture&&this.trueRootContainer}_saveObservables(I){I.getDescendants().forEach(N=>{N.linkedMesh&&this._controlToLinkedMeshMap.set(N.metadata.editorUniqueId,N.linkedMesh),Object.keys(this._observersMap).forEach(w=>{const D=N[w];D.hasObservers()&&this._observersMap[w].set(N.metadata.editorUniqueId,D)})})}_restoreObservables(I){I.getDescendants().forEach(N=>{var w;if(this._controlToLinkedMeshMap.has((w=N.metadata)==null?void 0:w.editorUniqueId)){const D=this._controlToLinkedMeshMap.get(N.metadata.editorUniqueId);D&&N.linkWithMesh(D)}Object.keys(this._observersMap).forEach(D=>{var Y;const k=this._observersMap[D].get((Y=N.metadata)==null?void 0:Y.editorUniqueId);k&&(N[D]=k)})}),this._controlToLinkedMeshMap.clear(),Object.keys(this._observersMap).forEach(N=>{this._observersMap[N].clear()})}_copyEditorGUIToLiveGUI(){if(this._canClone()){const I=this.props.globalState.liveGuiTexture.rootContainer;this._saveObservables(I),I.clearControls();const N=new Map,w=this.trueRootContainer.children.slice(0);for(const D of w){const k=D.clone(this.props.globalState.liveGuiTexture);N.set(D,k),I.addControl(k)}this._restoreObservables(I),this._syncConnectedLines(w,N)}}_reorderGrid(I,N,w){const D=h.Tools.GetCellInfo(I,N);I.removeControl(N);let k=I.children.indexOf(w);k=this._adjustParentingIndex(k),h.Tools.ReorderGrid(I,k,N,D)}_isNotChildInsert(I,N){for(;I!=null&&I.parent;){if(I.parent==N)return!1;I=I.parent}return!0}_adjustParentingIndex(I,N=!1){switch(this.props.globalState.draggedControlDirection){case m.DragOverLocation.ABOVE:return N?I:I+1;case m.DragOverLocation.BELOW:case m.DragOverLocation.CENTER:return N?I+1:I}return I}isSelected(I,N){this.props.globalState.select(N)}_onMove(I,N,w){const D=[];I._top.unit===_.ValueAndUnit.UNITMODE_PERCENTAGE&&D.push("top"),I._left.unit===_.ValueAndUnit.UNITMODE_PERCENTAGE&&D.push("left");let k=N.x-w.x,Y=N.y-w.y;this._setConstraintDirection&&(this._setConstraintDirection=!1,this._constraintDirection=Math.abs(k)>=Math.abs(Y)?A.X:A.Y),this._constraintDirection===A.X?Y=0:this._constraintDirection===A.Y&&(k=0);const V=new d.Vector2(k,Y);if(I.typeName==="Line"){const W=I,Q=W.x1.substring(0,W.x1.length-2),re=W.x2.substring(0,W.x2.length-2),oe=W.y1.substring(0,W.y1.length-2),X=W.y2.substring(0,W.y2.length-2);W.x1=(Number(Q)+k).toFixed(2),W.x2=(Number(re)+k).toFixed(2),W.y1=(Number(oe)+Y).toFixed(2),W.y2=(Number(X)+Y).toFixed(2),this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers();return}let ee=0,K=I.parent;for(;K;)ee+=K.rotation,K=K.parent;const ie=new d.Vector2(0,0),ne=Math.sin(-ee),te=Math.cos(-ee);ie.x=te*V.x-ne*V.y,ie.y=ne*V.x+te*V.y,I.leftInPixels+=ie.x,I.topInPixels+=ie.y,x.CoordinateHelper.ConvertToPercentage(I,D),this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers()}onMove(I){const N=this.getScaledPointerPosition();this._mouseStartPoint!=null&&!this._panning&&(this.props.globalState.selectedControls.forEach(w=>{N&&this._onMove(w,N,this._mouseStartPoint)}),this._mouseStartPoint=N||this._mouseStartPoint),this._pointerTravelDistance+=I.movementX*I.movementX+I.movementY*I.movementY,this._panning&&this.panning()}_screenToTexturePosition(I){const N=new d.Vector2(this._zoomFactor,this._zoomFactor);return I.divideInPlace(N).add(this._panningOffset)}getScaledPointerPosition(){return this._screenToTexturePosition(new d.Vector2(this._scene.pointerX,this._scene.pointerY))}startPanning(){this._panning=!0,this._initialPanningOffset=this.getScaledPointerPosition()}endPanning(){this._panning=!1}processSelection(){if(this.props.globalState.usePrevSelected){this.props.globalState.usePrevSelected=!1;return}if(this._controlsHit.length===0){this.props.globalState.setSelection([]);return}for(const I of this._controlsHit)if(this.props.globalState.selectedControls.includes(I.parent))if(this._doubleClick===I){this.props.globalState.select(I);return}else this._doubleClick=I,window.setTimeout(()=>{this._doubleClick=null},300);for(const I of this._controlsHit)for(const N of this.props.globalState.selectedControls){if(N.parent===I.parent){this.props.globalState.select(I);return}break}for(const I of this._controlsHit)I.parent===this._trueRootContainer&&this.props.globalState.select(I)}onDown(I){var N;this._pointerTravelDistance=0,(N=this._rootContainer.current)==null||N.setPointerCapture(I.pointerId),this.props.globalState.tool===m.GUIEditorTool.SELECT&&(this._mouseStartPoint=this.getScaledPointerPosition()),this.props.globalState.tool===m.GUIEditorTool.ZOOM&&this._centerZoomMousePosition.set(this._scene.pointerX,this._scene.pointerY),I.buttons&4||this.props.globalState.tool===m.GUIEditorTool.PAN?this.startPanning():(this.endPanning(),this.props.globalState.selectedControls.length!==0&&(this._processSelectionOnUp=!0),this._scene.onAfterRenderObservable.addOnce(()=>{(!this._processSelectionOnUp||this._controlsHit.filter(w=>this.props.globalState.selectedControls.includes(w)).length===0)&&(this.processSelection(),this._controlsHit=[],this._processSelectionOnUp=!1)}))}onUp(I){var N;this.props.globalState.tool===m.GUIEditorTool.ZOOM&&!this._hasPerformedDragZoom&&(this._panZoomToCenter(1e3*this._zoomModeIncrement,new d.Vector2(this._scene.pointerX,this._scene.pointerY)),this.zooming(1+(this.props.globalState.keys.isKeyDown("alt")?-this._zoomModeIncrement:this._zoomModeIncrement))),this._hasPerformedDragZoom=!1,this._mouseStartPoint=null,this._centerZoomMousePosition.set(0,0),this._constraintDirection=A.NONE,(N=this._rootContainer.current)==null||N.releasePointerCapture(I.pointerId),this._panning=!1,this._processSelectionOnUp&&(Math.sqrt(this._pointerTravelDistance)<=M&&this.processSelection(),this._controlsHit=[],this._processSelectionOnUp=!1)}_syncConnectedLines(I,N){for(const w of I)if(w.getClassName()==="Line"){const D=w;if(D.connectedControl){const k=D.connectedControl,Y=N.get(D),V=N.get(k);Y&&V&&(Y.connectedControl=V)}}}_copyLiveGUIToEditorGUI(){if(this.props.globalState.liveGuiTexture&&this.trueRootContainer){this.props.globalState.liveGuiTexture.rootContainer.getDescendants().forEach(N=>{N.metadata={...N.metadata??{},editorUniqueId:(0,d.RandomGUID)()}}),this.trueRootContainer.clearControls();const I=new Map;for(const N of this.props.globalState.liveGuiTexture.rootContainer.children){const w=N.clone(this.props.globalState.guiTexture);I.set(N,w),this.appendBlock(w)}this._syncConnectedLines(this.props.globalState.liveGuiTexture.rootContainer.children,I)}}createGUICanvas(I){const N=this._rootContainer.current;this._engine=new d.Engine(N),this._scene=new d.Scene(this._engine),this._scene.clearColor=new d.Color4(0,0,0,0);const w=new d.HemisphericLight("light1",d.Axis.Y,this._scene);w.intensity=.9,this.props.globalState.liveGuiTexture?(this._guiSize.width=this.props.globalState.liveGuiTexture.getSize().width,this._guiSize.height=this.props.globalState.liveGuiTexture.getSize().height,N.width=this._guiSize.width,N.height=this._guiSize.height):(this._guiSize.width=d.DataStorage.ReadNumber("GUIEditorWidth",1024),this._guiSize.height=d.DataStorage.ReadNumber("GUIEditorHeight",1024)),this._panAndZoomContainer=new _.Container("panAndZoom"),this._panAndZoomContainer.clipContent=!1,this._panAndZoomContainer.clipChildren=!1,this._visibleRegionContainer=new _.Container("visibleRegion"),this._visibleRegionContainer.clipChildren=!1,this._visibleRegionContainer.clipContent=!1,this._visibleRegionContainer.widthInPixels=this.guiSize.width,this._visibleRegionContainer.heightInPixels=this.guiSize.height,this._panAndZoomContainer.addControl(this._visibleRegionContainer);const D=this.props.globalState.guiTexture=this._visibleRegionContainer._host=this._panAndZoomContainer._host=_.AdvancedDynamicTexture.CreateFullscreenUI("guiTexture",!0,this._scene,d.Texture.NEAREST_NEAREST_MIPNEAREST,!1);D.useInvalidateRectOptimization=!1,this.trueRootContainer=D.rootContainer,D.onEndRenderObservable.add(()=>this.props.globalState.onGizmoUpdateRequireObservable.notifyObservers()),this._copyLiveGUIToEditorGUI(),new d.ArcRotateCamera("Camera",0,0,0,d.Vector3.Zero(),this._scene),this.addControls(this._scene),this._scene.getEngine().onCanvasPointerOutObservable.clear(),this._scene.doNotHandleCursors=!0,this.props.globalState.hostWindow.addEventListener("resize",()=>{this.props.globalState.onWindowResizeObservable.notifyObservers(),this._scene.onBeforeRenderObservable.addOnce(()=>{this.props.globalState.onWindowResizeObservable.notifyObservers()})}),this.props.globalState.onWindowResizeObservable.notifyObservers(),this.props.globalState.guiTexture.onBeginRenderObservable.add(()=>{this.applyEditorTransformation()}),this.props.globalState.onPropertyChangedObservable.add(Y=>{Y.object.markAsDirty(!1),this.props.globalState.onWindowResizeObservable.notifyObservers()});const k=S(()=>{this._copyEditorGUIToLiveGUI()},33);this.props.globalState.liveGuiTexture&&(this._guiRenderObserver=this.props.globalState.guiTexture.onEndRenderObservable.add(k)),this._engine.runRenderLoop(()=>{this._scene.render()}),this.props.globalState.onNewSceneObservable.notifyObservers(this.props.globalState.guiTexture.getScene()),this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers(),this.props.globalState.onFitControlsToWindowObservable.notifyObservers()}synchronizeLiveGUI(){this.props.globalState.liveGuiTexture&&(this._trueRootContainer.getDescendants().forEach(I=>I.dispose()),this.props.globalState.liveGuiTexture.rootContainer.getDescendants(!0).forEach(I=>{var N;(N=this.props.globalState.liveGuiTexture)==null||N.removeControl(I),this.appendBlock(I)}),this.props.globalState.guiTexture.snippetId=this.props.globalState.liveGuiTexture.snippetId)}addControls(I){I.onKeyboardObservable.add(N=>{switch(N.event.key){case"ArrowUp":this.moveControls(!1,N.event.shiftKey?-b:-E);break;case"ArrowDown":this.moveControls(!1,N.event.shiftKey?b:E);break;case"ArrowLeft":this.moveControls(!0,N.event.shiftKey?-b:-E);break;case"ArrowRight":this.moveControls(!0,N.event.shiftKey?b:E);break}},d.KeyboardEventTypes.KEYDOWN),I.onBeforeRenderObservable.add(()=>{this._panAndZoomContainer.scaleX!==this._zoomFactor&&(this._panAndZoomContainer.scaleX=this._zoomFactor,this._panAndZoomContainer.scaleY=this._zoomFactor,this.props.globalState.onArtBoardUpdateRequiredObservable.notifyObservers(),this.props.globalState.onGizmoUpdateRequireObservable.notifyObservers());const N=this._zoomFactor*this._panningOffset.x,w=this._zoomFactor*-this._panningOffset.y;(this._panAndZoomContainer.leftInPixels!==N||this._panAndZoomContainer.topInPixels!==w)&&(this._panAndZoomContainer.leftInPixels=N,this._panAndZoomContainer.topInPixels=w,this.props.globalState.onArtBoardUpdateRequiredObservable.notifyObservers(),this.props.globalState.onGizmoUpdateRequireObservable.notifyObservers())})}panning(){const I=this.getScaledPointerPosition().subtract(this._initialPanningOffset).multiplyByFloats(1,-1);this._panningOffset=this._panningOffset.add(I),this._initialPanningOffset=this.getScaledPointerPosition(),this.props.globalState.onWindowResizeObservable.notifyObservers()}moveControls(I,N){for(const w of this.props.globalState.selectedControls)if(I){const D=w.leftInPixels;w.leftInPixels+=N,this.props.globalState.onPropertyChangedObservable.notifyObservers({object:w,property:"leftInPixels",value:w.leftInPixels,initialValue:D}),this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers()}else{const D=w.topInPixels;w.topInPixels+=N,this.props.globalState.onPropertyChangedObservable.notifyObservers({object:w,property:"topInPixels",value:w.topInPixels,initialValue:D}),this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers()}}zoomWheel(I){let N=0;I.deltaY?N=-I.deltaY:I.detail&&(N=-I.detail);const w=new d.Vector2(this._scene.pointerX,this._scene.pointerY);this._panZoomToCenter(N,w),this.zooming(1+N/1e3)}_panZoomToCenter(I,N){const w=x.CoordinateHelper.MousePointerToRTTSpace(this.trueRootContainer,N.x,N.y),D=x.CoordinateHelper.RttToLocalNodeSpace(this.trueRootContainer,w.x,w.y),k=x.CoordinateHelper.MousePointerToRTTSpace(this.trueRootContainer,this._engine.getRenderWidth()/2,this._engine.getRenderHeight()/2),Y=x.CoordinateHelper.RttToLocalNodeSpace(this.trueRootContainer,k.x,k.y),V=-I/1e3,ee=D.subtract(Y).scale(V).multiplyByFloats(1,-1);this._panningOffset.addInPlace(ee)}zoomDrag(I){let N=0;I.movementY!==0&&(N=-I.movementY),this._hasPerformedDragZoom=!0,this._panZoomToCenter(N,this._centerZoomMousePosition),this.zooming(1+N/1e3)}zooming(I){this._zoomFactor*=I}zeroIfClose(I){Math.abs(I.x)<d.Epsilon&&(I.x=0),Math.abs(I.y)<d.Epsilon&&(I.y=0),Math.abs(I.z)<d.Epsilon&&(I.z=0)}render(){let I="default";return this.props.globalState.tool===m.GUIEditorTool.PAN?I="grab":this.props.globalState.tool===m.GUIEditorTool.ZOOM&&(I=this.props.globalState.keys.isKeyDown("alt")?"zoom-out":"zoom-in"),(0,f.jsx)("canvas",{id:"workbench-canvas",onPointerMove:N=>{this._mouseDown&&this.props.globalState.tool===m.GUIEditorTool.ZOOM&&this.zoomDrag(N),this.props.globalState.guiTexture&&this.onMove(N),this.props.globalState.onPointerMoveObservable.notifyObservers(N)},onPointerDown:N=>{this.onDown(N),this._controlsHit.length===0?this._mouseDown=!0:this._mouseDown=!1},onPointerUp:N=>{this.onUp(N),this.props.globalState.onPointerUpObservable.notifyObservers(N),this._mouseDown=!1},onWheel:N=>this.zoomWheel(N),onContextMenu:N=>N.preventDefault(),ref:this._rootContainer,style:{cursor:I}})}}O._addedFonts=[]},"../../../tools/guiEditor/dist/diagram/workbenchCanvas.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>R});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/diagram/workbenchCanvas.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../tools/guiEditor/dist/globalState.js":(l,c,u)=>{u.r(c),u.d(c,{DragOverLocation:()=>h,GUIEditorTool:()=>x,GlobalState:()=>A});var f=u("core/Misc/observable"),p=u("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/lockObject.js"),m=u("../../../tools/guiEditor/dist/diagram/coordinateHelper.js"),_=u("gui/2D/controls/container"),d=u("../../../tools/guiEditor/dist/keyboardManager.js"),h;(function(S){S[S.ABOVE=0]="ABOVE",S[S.BELOW=1]="BELOW",S[S.CENTER=2]="CENTER",S[S.NONE=3]="NONE"})(h||(h={}));var x;(function(S){S[S.SELECT=0]="SELECT",S[S.PAN=1]="PAN",S[S.ZOOM=2]="ZOOM"})(x||(x={}));class A{get tool(){return this._tool===x.ZOOM?x.ZOOM:this._tool===x.PAN?x.PAN:x.SELECT}set tool(E){this._tool!==E&&(this._prevTool=this._tool,this._tool=E,this.onToolChangeObservable.notifyObservers())}get usePrevSelected(){return this._usePrevSelected}set usePrevSelected(E){this._usePrevSelected=E}restorePreviousTool(){this._tool!==this._prevTool&&(this._tool=this._prevTool,this.onToolChangeObservable.notifyObservers())}constructor(){this.selectedControls=[],this.onSelectionChangedObservable=new f.Observable,this.onResizeObservable=new f.Observable,this.onBuiltObservable=new f.Observable,this.onResetRequiredObservable=new f.Observable,this.onUpdateRequiredObservable=new f.Observable,this.onLogRequiredObservable=new f.Observable,this.onErrorMessageDialogRequiredObservable=new f.Observable,this.onIsLoadingChanged=new f.Observable,this.onSelectionBoxMoved=new f.Observable,this.onNewSceneObservable=new f.Observable,this.onGuiNodeRemovalObservable=new f.Observable,this.onPopupClosedObservable=new f.Observable,this._outlines=!1,this.blockKeyboardEvents=!1,this.onOutlineChangedObservable=new f.Observable,this.onPropertyChangedObservable=new f.Observable,this._tool=x.SELECT,this._prevTool=this._tool,this.onToolChangeObservable=new f.Observable,this.onFitControlsToWindowObservable=new f.Observable,this.onReframeWindowObservable=new f.Observable,this.onLoadObservable=new f.Observable,this.onSaveObservable=new f.Observable,this.onSaveSelectedControl=new f.Observable,this.onSnippetLoadObservable=new f.Observable,this.onSnippetSaveObservable=new f.Observable,this.onControlLoadObservable=new f.Observable,this.onResponsiveChangeObservable=new f.Observable,this.onParentingChangeObservable=new f.Observable,this.onDropObservable=new f.Observable,this.onPropertyGridUpdateRequiredObservable=new f.Observable,this.onDraggingEndObservable=new f.Observable,this.onDraggingStartObservable=new f.Observable,this.onWindowResizeObservable=new f.Observable,this.onGizmoUpdateRequireObservable=new f.Observable,this.onArtBoardUpdateRequiredObservable=new f.Observable,this.onBackgroundColorChangeObservable=new f.Observable,this.onFontsParsedObservable=new f.Observable,this.onPointerMoveObservable=new f.Observable,this.onPointerUpObservable=new f.Observable,this.draggedControl=null,this.onCopyObservable=new f.Observable,this.onCutObservable=new f.Observable,this.onPasteObservable=new f.Observable,this.isSaving=!1,this.lockObject=new p.LockObject,this.shiftKeyPressed=!1,this.controlCamera=f.DataStorage.ReadBoolean("ControlCamera",!0);const E=204/255,b=f.DataStorage.ReadNumber("BackgroundColorR",E),M=f.DataStorage.ReadNumber("BackgroundColorG",E),T=f.DataStorage.ReadNumber("BackgroundColorB",E);this.backgroundColor=new f.Color3(b,M,T),this.onBackgroundColorChangeObservable.notifyObservers(),m.CoordinateHelper.GlobalState=this}registerEventListeners(){const E=b=>b.isContentEditable||b.tagName==="INPUT"||b.tagName==="TEXTAREA";this.hostDocument.addEventListener("copy",b=>{E(b.target)||(this.onCopyObservable.notifyObservers(M=>{var T;return(T=b.clipboardData)==null?void 0:T.setData("text/plain",M)}),b.preventDefault())}),this.hostDocument.addEventListener("cut",b=>{E(b.target)||(this.onCutObservable.notifyObservers(M=>{var T;return(T=b.clipboardData)==null?void 0:T.setData("text/plain",M)}),b.preventDefault())}),this.hostDocument.addEventListener("paste",b=>{var M;E(b.target)||(this.onPasteObservable.notifyObservers(((M=b.clipboardData)==null?void 0:M.getData("text"))||""),b.preventDefault())}),this.keys=new d.KeyboardManager(this.hostDocument),this.keys.onKeyPressedObservable.add(()=>{this.onToolChangeObservable.notifyObservers()})}get backgroundColor(){return this._backgroundColor}get fromPG(){return this._fromPG}set fromPG(E){this._fromPG=E}set backgroundColor(E){this._backgroundColor=E,this.onBackgroundColorChangeObservable.notifyObservers(),f.DataStorage.WriteNumber("BackgroundColorR",E.r),f.DataStorage.WriteNumber("BackgroundColorG",E.g),f.DataStorage.WriteNumber("BackgroundColorB",E.b)}get outlines(){return this._outlines}set outlines(E){this._outlines=E,this.onOutlineChangedObservable.notifyObservers()}select(E){this.keys.isKeyDown("control")&&this.isMultiSelectable(E)?this.selectedControls.indexOf(E)===-1?this.setSelection([...this.selectedControls,E]):this.setSelection(this.selectedControls.filter(M=>M!==E)):this.setSelection([E])}setSelection(E){this.selectedControls=[...E],this.onSelectionChangedObservable.notifyObservers()}_findParentControlInTexture(E,b){const M=[E.rootContainer];for(;M.length>0;){const T=M.splice(0,1)[0],O=T.children;if(O.indexOf(b)!==-1)return T;for(const R of O)R instanceof _.Container&&M.push(R)}return null}deleteSelectedNodes(){for(const E of this.selectedControls){const b=this._findParentControlInTexture(this.guiTexture,E);if(b==null||b.removeControl(E),this.liveGuiTexture){const M=E.getDescendants();for(const O of M){const R=this._findParentControlInTexture(this.liveGuiTexture,O);R==null||R.removeControl(O),O.dispose()}const T=this._findParentControlInTexture(this.liveGuiTexture,E);T==null||T.removeControl(E)}E.dispose()}this.setSelection([])}isMultiSelectable(E){return this.selectedControls.length===0||this.selectedControls[0].parent===E.parent}dispose(){this.keys.dispose()}}},"../../../tools/guiEditor/dist/guiEditor.js":(l,c,u)=>{u.r(c),u.d(c,{GUIEditor:()=>h});var f=u("../../../../node_modules/react/index.js"),p=u("../../../../node_modules/react-dom/index.js"),m=u("../../../tools/guiEditor/dist/globalState.js"),_=u("../../../tools/guiEditor/dist/workbenchEditor.js"),d=u("../../../dev/sharedUiComponents/dist/popupHelper.js");class h{static async Show(A,S){let E=A.hostElement;if(this._CurrentState&&E){if(A.currentSnippetToken)try{this._CurrentState.workbench.loadFromSnippet(A.currentSnippetToken)}catch{}return}E||(this._PopupWindow&&this._PopupWindow.close(),E=(0,d.CreatePopup)("BABYLON.JS GUI EDITOR",{onWindowCreateCallback:T=>this._PopupWindow=T,width:1200,height:800}));const b=new m.GlobalState;A.liveGuiTexture&&(b.liveGuiTexture=A.liveGuiTexture),b.hostElement=E,b.hostDocument=E.ownerDocument,b.customSave=A.customSave,b.customLoad=A.customLoad,b.hostWindow=E.ownerDocument.defaultView,b.registerEventListeners();const M=f.createElement(_.WorkbenchEditor,{globalState:b});if(p.render(M,E),!b.guiTexture&&(b.workbench.createGUICanvas(S),A.currentSnippetToken))try{await b.workbench.loadFromSnippet(A.currentSnippetToken)}catch{}A.customLoadObservable&&A.customLoadObservable.add(()=>{b.onResetRequiredObservable.notifyObservers(),b.onBuiltObservable.notifyObservers()}),this._CurrentState=b,this._PopupWindow&&(window.onbeforeunload=()=>{this._PopupWindow&&this._PopupWindow.close()}),b.hostWindow.addEventListener("beforeunload",()=>{b.onPopupClosedObservable.notifyObservers(),b.dispose()})}}h._PopupWindow=null},"../../../tools/guiEditor/dist/guiNodeTools.js":(l,c,u)=>{u.r(c),u.d(c,{GUINodeTools:()=>p});var f=u("gui/2D/controls/container");class p{static CreateControlFromString(_){let d;switch(_){case"Slider":return d=new f.Slider("Slider"),d.isPointerBlocker=!0,d.width="120px",d.height="30px",d;case"Checkbox":return d=new f.Checkbox("Checkbox"),d.width="20px",d.height="20px",d.color="#cccccc",d;case"ColorPicker":return d=new f.ColorPicker("ColorPicker"),d.isPointerBlocker=!0,d.width="10%",d.height="10%",d;case"Ellipse":return d=new f.Ellipse("Ellipse"),d.color="#000000",d.background="#cccccc",d.isPointerBlocker=!0,d.thickness=1,d;case"Rectangle":return d=new f.Rectangle("Rectangle"),d.color="#000000",d.background="#cccccc",d.isPointerBlocker=!0,d.thickness=1,d;case"Line":return d=new f.Line("Line"),d.x1=0,d.y1=1024,d.y2=512,d.x2=512,d.lineWidth=2,d.isPointerBlocker=!0,d.isHitTestVisible=!0,d.color="#000000",d;case"TextBlock":return d=new f.TextBlock("Textblock"),d.text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sed.",d.color="#000000",d.fontSize=20,d.resizeToFit=!0,d.isPointerBlocker=!0,d;case"ImageButton":return d=f.Button.CreateImageButton("Button","Click Me",p.ImageControlDefaultUrl),d.background="#333333",d.color="#ffffff",d.isPointerBlocker=!0,d.width="120px",d.height="40px",d;case"VirtualKeyboard":return d=f.VirtualKeyboard.CreateDefaultLayout("VirtualKeyboard"),d.addKeysRow(["1","2","3","←"]),d;case"Image":return d=new f.Image("Image",p.ImageControlDefaultUrl),d.width="512px",d.height="512px",d.autoScale=!0,d.color="transparent",d.isPointerBlocker=!0,d;case"ButtonImage":return d=new f.Image("Image",p.ImageControlDefaultUrl),d.width="100%",d.height="100%",d.color="transparent",d.isPointerBlocker=!0,d;case"InputText":return d=new f.InputText("InputText"),d.maxWidth=.6,d.text="Input Text",d.background="#333333",d.color="#ffffff",d.isPointerBlocker=!0,d.width="160px",d.height="40px",d;case"InputPassword":return d=new f.InputPassword("InputPassword"),d.maxWidth=.6,d.text="Password",d.background="#333333",d.color="#ffffff",d.isPointerBlocker=!0,d.width="160px",d.height="40px",d;case"Grid":return d=new f.Grid("Grid"),d.addColumnDefinition(1,!1),d.addRowDefinition(1,!1),d.isPointerBlocker=!0,d;case"DisplayGrid":return d=new f.DisplayGrid("DisplayGrid"),d;case"StackPanel":return d=new f.StackPanel("StackPanel"),d.width="100%",d.height="100%",d;case"ScrollViewer":return d=new f.ScrollViewer("ScrollViewer"),d.width=.4,d.height=.4,d.background="#CCCCCC",d;case"ImageBasedSlider":return d=new f.ImageBasedSlider("ImageBasedSlider"),d.isPointerBlocker=!0,d.width="120px",d.height="30px",d.isThumbClamped=!0,d.displayThumb=!0,d.backgroundImage=new f.Image("Image","https://playground.babylonjs.com/textures/gui/backgroundImage.png"),d.valueBarImage=new f.Image("Image","https://playground.babylonjs.com/textures/gui/valueImage.png"),d.thumbImage=new f.Image("Image","https://playground.babylonjs.com/textures/gui/thumb.png"),d;case"RadioButton":return d=new f.RadioButton("RadioButton"),d.isPointerBlocker=!0,d.width="20px",d.height="20px",d.color="#CCCCCC",d.background="#333333",d;case"Button":return d=f.Button.CreateSimpleButton("Button","Click Me"),d.background="#333333",d.color="#ffffff",d.isPointerBlocker=!0,d.width="120px",d.height="40px",d;default:throw"Error: control type not recognized"}}}p.ImageControlDefaultUrl="https://assets.babylonjs.com/textures/Checker_albedo.png"},"../../../tools/guiEditor/dist/imgs/adtIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjUuMjksMjYuNTFhLjQxLjQxLDAsMCwxLS40MS40MUgxNS4xMmEuNDEuNDEsMCwwLDEtLjQxLS40MXYtMTNhLjQxLjQxLDAsMCwxLC40MS0uNDFIMjB2My42NmExLjYzLDEuNjMsMCwwLDAsMS42MywxLjYzaDMuNjZaTTIxLjIyLDE0bDMuMTYsMy4xNkgyMS42M2EuNDEuNDEsMCwwLDEtLjQxLS40MVpNMjYsMTcuMDhsLTQuNzUtNC43NC0uMDctLjA2TDIxLDEyLjEzbC0uMS0uMDUtLjE4LS4xYTEuNzIsMS43MiwwLDAsMC0uNTEtLjExSDE1LjEyYTEuNjMsMS42MywwLDAsMC0xLjYzLDEuNjN2MTNhMS42MywxLjYzLDAsMCwwLDEuNjMsMS42M2g5Ljc2YTEuNjMsMS42MywwLDAsMCwxLjYzLTEuNjNWMTguMjNBMS42NSwxLjY1LDAsMCwwLDI2LDE3LjA4WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/babylonLogo.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cG9seWdvbiBwb2ludHM9IjI5LjM5IDE0LjU4IDI2LjQ1IDEyLjg4IDIzLjYzIDE0LjUxIDI2LjU3IDE2LjIxIDI5LjM5IDE0LjU4IiBzdHlsZT0iZmlsbDojZTA2ODRiIi8+PHBvbHlnb24gcG9pbnRzPSIxMy40MyAxNi4yMSAyMi44MyAxMC43OSAyMCA5LjE1IDEwLjYxIDE0LjU4IDEzLjQzIDE2LjIxIiBzdHlsZT0iZmlsbDojZTA2ODRiIi8+PHBvbHlnb24gcG9pbnRzPSIxNy4wNiAyMS43IDIwIDIzLjM5IDIyLjk0IDIxLjcgMjAgMjAgMTcuMDYgMjEuNyIgc3R5bGU9ImZpbGw6I2UwNjg0YiIvPjxwb2x5Z29uIHBvaW50cz0iMjYuNTcgMTYuMjEgMjYuNTcgMjMuNzkgMjAgMjcuNTggMTMuNDMgMjMuNzkgMTMuNDMgMTYuMjEgMTAuNjEgMTQuNTggMTAuNjEgMjUuNDIgMjAgMzAuODUgMjkuMzkgMjUuNDIgMjkuMzkgMTQuNTggMjYuNTcgMTYuMjEiIHN0eWxlPSJmaWxsOiNiYjQ2NGIiLz48cG9seWdvbiBwb2ludHM9IjIwIDE2LjYxIDE3LjA2IDE4LjMgMTcuMDYgMjEuNyAyMCAyMCAyMi45NCAyMS43IDIyLjk0IDE4LjMgMjAgMTYuNjEiIHN0eWxlPSJmaWxsOiNiYjQ2NGIiLz48cG9seWdvbiBwb2ludHM9IjI2LjU3IDE2LjIxIDIyLjk0IDE4LjMgMjIuOTQgMjEuNyAyMCAyMy4zOSAyMCAyNy41OCAyNi41NyAyMy43OSAyNi41NyAxNi4yMSIgc3R5bGU9ImZpbGw6I2UwZGVkOCIvPjxwb2x5Z29uIHBvaW50cz0iMTMuNDMgMTYuMjEgMTcuMDYgMTguMyAxNy4wNiAyMS43IDIwIDIzLjM5IDIwIDI3LjU4IDEzLjQzIDIzLjc5IDEzLjQzIDE2LjIxIiBzdHlsZT0iZmlsbDojZDVkMmNhIi8+PHBvbHlnb24gcG9pbnRzPSIyMi44MyAxMC43OSAyNi40NSAxMi44OCAyMy42MyAxNC41MSAyNi41NyAxNi4yMSAyMi45NCAxOC4zIDIwIDE2LjYxIDE3LjA2IDE4LjMgMTMuNDMgMTYuMjEgMjIuODMgMTAuNzkiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/buttonBar_deleteIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJpY29ucyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE4LjM5LDE0LjU0aDMuMjRjMC0uODktLjcyLTEuNjItMS42Mi0xLjYycy0xLjYyLC43Mi0xLjYyLDEuNjJabS0xLjIxLDBjMC0xLjU2LDEuMjctMi44MywyLjgzLTIuODNzMi44MywxLjI3LDIuODMsMi44M2g0LjY1Yy4zNCwwLC42MSwuMjcsLjYxLC42MXMtLjI3LC42MS0uNjEsLjYxaC0xLjA3bC0uOTUsOS44Yy0uMTUsMS41Ni0xLjQ2LDIuNzQtMy4wMiwyLjc0aC00LjljLTEuNTYsMC0yLjg3LTEuMTktMy4wMi0yLjc0bC0uOTUtOS44aC0xLjA3Yy0uMzQsMC0uNjEtLjI3LS42MS0uNjFzLjI3LS42MSwuNjEtLjYxaDQuNjVabTEuNjIsMy44NGMwLS4zNC0uMjctLjYxLS42MS0uNjFzLS42MSwuMjctLjYxLC42MXY2LjA3YzAsLjM0LC4yNywuNjEsLjYxLC42MXMuNjEtLjI3LC42MS0uNjF2LTYuMDdabTMuMDQtLjYxYy4zNCwwLC42MSwuMjcsLjYxLC42MXY2LjA3YzAsLjM0LS4yNywuNjEtLjYxLC42MXMtLjYxLS4yNy0uNjEtLjYxdi02LjA3YzAtLjM0LC4yNy0uNjEsLjYxLS42MVptLTYuMDgsNy42NmMuMDksLjkzLC44NywxLjY1LDEuODEsMS42NWg0LjljLjk0LDAsMS43Mi0uNzEsMS44MS0xLjY1bC45NC05LjY5SDE0LjgxbC45NCw5LjY5WiIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/buttonBar_deleteIcon_disabled.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJpY29ucyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiM3Nzc3Nzc7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE4LjM5LDE0LjU0aDMuMjRjMC0uODktLjcyLTEuNjItMS42Mi0xLjYycy0xLjYyLC43Mi0xLjYyLDEuNjJabS0xLjIxLDBjMC0xLjU2LDEuMjctMi44MywyLjgzLTIuODNzMi44MywxLjI3LDIuODMsMi44M2g0LjY1Yy4zNCwwLC42MSwuMjcsLjYxLC42MXMtLjI3LC42MS0uNjEsLjYxaC0xLjA3bC0uOTUsOS44Yy0uMTUsMS41Ni0xLjQ2LDIuNzQtMy4wMiwyLjc0aC00LjljLTEuNTYsMC0yLjg3LTEuMTktMy4wMi0yLjc0bC0uOTUtOS44aC0xLjA3Yy0uMzQsMC0uNjEtLjI3LS42MS0uNjFzLjI3LS42MSwuNjEtLjYxaDQuNjVabTEuNjIsMy44NGMwLS4zNC0uMjctLjYxLS42MS0uNjFzLS42MSwuMjctLjYxLC42MXY2LjA3YzAsLjM0LC4yNywuNjEsLjYxLC42MXMuNjEtLjI3LC42MS0uNjF2LTYuMDdabTMuMDQtLjYxYy4zNCwwLC42MSwuMjcsLjYxLC42MXY2LjA3YzAsLjM0LS4yNywuNjEtLjYxLC42MXMtLjYxLS4yNy0uNjEtLjYxdi02LjA3YzAtLjM0LC4yNy0uNjEsLjYxLS42MVptLTYuMDgsNy42NmMuMDksLjkzLC44NywxLjY1LDEuODEsMS42NWg0LjljLjk0LDAsMS43Mi0uNzEsMS44MS0xLjY1bC45NC05LjY5SDE0LjgxbC45NCw5LjY5WiIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/buttonIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjYuMDgsMTIuN0gxMy45MmEyLDIsMCwwLDAtMiwyVjIyYTIsMiwwLDAsMCwyLDJoMy42NVYyMi44NEgxMy45MmEuODEuODEsMCwwLDEtLjgxLS44MXYtNy4zYS44MS44MSwwLDAsMSwuODEtLjgxSDI2LjA4YS44MS44MSwwLDAsMSwuODEuODFWMjJhLjgxLjgxLDAsMCwxLS44MS44MWgtLjQ1bC4yOC4yN2ExLjQ1LDEuNDUsMCwwLDEsLjU2LjkxLDIsMiwwLDAsMCwxLjY0LTJ2LTcuM0EyLDIsMCwwLDAsMjYuMDgsMTIuN1oiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMTkuNDIsMTcuNzVhLjYyLjYyLDAsMCwwLS42Ny0uMTQuNjMuNjMsMCwwLDAtLjM3LjU3djguNTFhLjYuNiwwLDAsMCwuNDMuNTguNjEuNjEsMCwwLDAsLjY4LS4yNGwyLTIuOTEsMy40NS43M2EuNjEuNjEsMCwwLDAsLjU2LTFabTEuOTIsNS4xYS42LjYsMCwwLDAtLjYyLjI1bC0xLjEzLDEuNjNWMTkuNjRsMy42LDMuNloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/buttonbar_copyIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJpY29ucyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0Ljc2LDE0LjA2djEwLjI3YzAsMS40NiwxLjE4LDIuNjQsMi42NCwyLjY0aDcuMDFjLS4yNSwuNzEtLjkzLDEuMjItMS43MywxLjIyaC01LjI4Yy0yLjEzLDAtMy44Ni0xLjczLTMuODYtMy44NlYxNS43OGMwLS44LC41MS0xLjQ4LDEuMjItMS43M1ptOS45Ni0yLjE0YzEuMDEsMCwxLjgzLC44MiwxLjgzLDEuODN2MTAuNTdjMCwxLjAxLS44MiwxLjgzLTEuODMsMS44M2gtNy4zMmMtMS4wMSwwLTEuODMtLjgyLTEuODMtMS44M1YxMy43NWMwLTEuMDEsLjgyLTEuODMsMS44My0xLjgzaDcuMzJabTAsMS4yMmgtNy4zMmMtLjM0LDAtLjYxLC4yNy0uNjEsLjYxdjEwLjU3YzAsLjM0LC4yNywuNjEsLjYxLC42MWg3LjMyYy4zNCwwLC42MS0uMjcsLjYxLS42MVYxMy43NWMwLS4zNC0uMjctLjYxLS42MS0uNjFaIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/buttonbar_copyIcon_disabled.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJpY29ucyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiM3Nzc3Nzc7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0Ljc2LDE0LjA2djEwLjI3YzAsMS40NiwxLjE4LDIuNjQsMi42NCwyLjY0aDcuMDFjLS4yNSwuNzEtLjkzLDEuMjItMS43MywxLjIyaC01LjI4Yy0yLjEzLDAtMy44Ni0xLjczLTMuODYtMy44NlYxNS43OGMwLS44LC41MS0xLjQ4LDEuMjItMS43M1ptOS45Ni0yLjE0YzEuMDEsMCwxLjgzLC44MiwxLjgzLDEuODN2MTAuNTdjMCwxLjAxLS44MiwxLjgzLTEuODMsMS44M2gtNy4zMmMtMS4wMSwwLTEuODMtLjgyLTEuODMtMS44M1YxMy43NWMwLTEuMDEsLjgyLTEuODMsMS44My0xLjgzaDcuMzJabTAsMS4yMmgtNy4zMmMtLjM0LDAtLjYxLC4yNy0uNjEsLjYxdjEwLjU3YzAsLjM0LC4yNywuNjEsLjYxLC42MWg3LjMyYy4zNCwwLC42MS0uMjcsLjYxLS42MVYxMy43NWMwLS4zNC0uMjctLjYxLS42MS0uNjFaIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/buttonbar_pasteIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJpY29ucyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIwLjYxLDEyLjA3Yy45NCwwLDEuNzEsLjcxLDEuODEsMS42MmgxLjQzYy45NywwLDEuNzYsLjc1LDEuODIsMS43di4xM2MwLC4zMS0uMjIsLjU2LS41MiwuNmgtLjA4Yy0uMzEsMC0uNTYtLjIyLS42LS41MnYtLjA4YzAtLjMxLS4yMy0uNTYtLjUzLS42aC0xLjgxYy0uMzMsLjQ4LS44OCwuOC0xLjUxLC44aC0yLjg1Yy0uNjMsMC0xLjE5LS4zMi0xLjUxLS44MWgtMS43M2MtLjMxLDAtLjU2LC4yMy0uNiwuNTN2MTEuMDVjMCwuMzEsLjIyLC41NiwuNTIsLjZoMi41MmMuMzEsMCwuNTYsLjIzLC42LC41M3YuMDhjMCwuMzQtLjI3LC42MS0uNiwuNjFoLTIuNDRjLS45NywwLTEuNzYtLjc1LTEuODItMS43VjE1LjUzYzAtLjk3LC43NS0xLjc2LDEuNy0xLjgyaDEuNTZjLjEtLjkyLC44Ny0xLjYzLDEuODEtMS42M2gyLjg1Wm00Ljg3LDQuODdjLjk3LDAsMS43NiwuNzUsMS44MiwxLjd2Ny44NGMwLC45Ny0uNzUsMS43Ni0xLjcsMS44MmgtNS40Yy0uOTcsMC0xLjc2LS43NS0xLjgyLTEuN3YtNy44NGMwLS45NywuNzUtMS43NiwxLjctMS44Mmg1LjRabTAsMS4yMWgtNS4yOGMtLjMxLDAtLjU2LC4yMy0uNiwuNTN2Ny44YzAsLjMxLC4yMiwuNTYsLjUyLC42aDUuMzZjLjMxLDAsLjU2LS4yMiwuNi0uNTJ2LTcuOGMwLS4zMS0uMjItLjU2LS41Mi0uNmgtLjA4Wm0tNC44Ny00Ljg4aC0yLjg1Yy0uMzMsMC0uNjEsLjI3LS42MSwuNjFzLjI3LC42MSwuNjEsLjYxaDIuODVjLjMzLDAsLjYxLS4yNywuNjEtLjYxcy0uMjctLjYxLS42MS0uNjFaIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/buttonbar_pasteIcon_disabled.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJpY29ucyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiM3Nzc3Nzc7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIwLjYxLDEyLjA3Yy45NCwwLDEuNzEsLjcxLDEuODEsMS42MmgxLjQzYy45NywwLDEuNzYsLjc1LDEuODIsMS43di4xM2MwLC4zMS0uMjIsLjU2LS41MiwuNmgtLjA4Yy0uMzEsMC0uNTYtLjIyLS42LS41MnYtLjA4YzAtLjMxLS4yMy0uNTYtLjUzLS42aC0xLjgxYy0uMzMsLjQ4LS44OCwuOC0xLjUxLC44aC0yLjg1Yy0uNjMsMC0xLjE5LS4zMi0xLjUxLS44MWgtMS43M2MtLjMxLDAtLjU2LC4yMy0uNiwuNTN2MTEuMDVjMCwuMzEsLjIyLC41NiwuNTIsLjZoMi41MmMuMzEsMCwuNTYsLjIzLC42LC41M3YuMDhjMCwuMzQtLjI3LC42MS0uNiwuNjFoLTIuNDRjLS45NywwLTEuNzYtLjc1LTEuODItMS43VjE1LjUzYzAtLjk3LC43NS0xLjc2LDEuNy0xLjgyaDEuNTZjLjEtLjkyLC44Ny0xLjYzLDEuODEtMS42M2gyLjg1Wm00Ljg3LDQuODdjLjk3LDAsMS43NiwuNzUsMS44MiwxLjd2Ny44NGMwLC45Ny0uNzUsMS43Ni0xLjcsMS44MmgtNS40Yy0uOTcsMC0xLjc2LS43NS0xLjgyLTEuN3YtNy44NGMwLS45NywuNzUtMS43NiwxLjctMS44Mmg1LjRabTAsMS4yMWgtNS4yOGMtLjMxLDAtLjU2LC4yMy0uNiwuNTN2Ny44YzAsLjMxLC4yMiwuNTYsLjUyLC42aDUuMzZjLjMxLDAsLjU2LS4yMiwuNi0uNTJ2LTcuOGMwLS4zMS0uMjItLjU2LS41Mi0uNmgtLjA4Wm0tNC44Ny00Ljg4aC0yLjg1Yy0uMzMsMC0uNjEsLjI3LS42MSwuNjFzLjI3LC42MSwuNjEsLjYxaDIuODVjLjMzLDAsLjYxLS4yNywuNjEtLjYxcy0uMjctLjYxLS42MS0uNjFaIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/canvasFitIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjUuMDUsMTMuNTRhMywzLDAsMCwxLDMsM3Y2Ljg2YTMsMywwLDAsMS0zLDNIMTVhMywzLDAsMCwxLTMtM1YxNi41N2EzLDMsMCwwLDEsMy0zWm0wLDEuMjFIMTVhMS44MiwxLjgyLDAsMCwwLTEuODIsMS44MnY2Ljg2QTEuODIsMS44MiwwLDAsMCwxNSwyNS4yNWgxMC4xYTEuODIsMS44MiwwLDAsMCwxLjgyLTEuODJWMTYuNTdBMS44MiwxLjgyLDAsMCwwLDI1LjA1LDE0Ljc1Wm0wLDYuMDZhLjYxLjYxLDAsMCwxLC42MS42djFBMS42MiwxLjYyLDAsMCwxLDI0LDI0SDIzYS42MS42MSwwLDEsMSwwLTEuMjFoMWEuNC40LDAsMCwwLC40LS40MXYtMUEuNi42LDAsMCwxLDI1LjA1LDIwLjgxWm0tMTAuMSwwYS42LjYsMCwwLDEsLjYxLjZ2MWEuNC40LDAsMCwwLC40LjQxaDFBLjYxLjYxLDAsMSwxLDE3LDI0SDE2YTEuNjIsMS42MiwwLDAsMS0xLjYyLTEuNjJ2LTFBLjYxLjYxLDAsMCwxLDE1LDIwLjgxWk0xNiwxNmgxYS42MS42MSwwLDAsMSwuNjEuNjEuNjEuNjEsMCwwLDEtLjUzLjZIMTZhLjQyLjQyLDAsMCwwLS40LjMzdjEuMDlhLjYxLjYxLDAsMCwxLTEuMjEuMDhWMTcuNThBMS42MywxLjYzLDAsMCwxLDE1Ljg0LDE2Wk0yNCwxNmExLjYyLDEuNjIsMCwwLDEsMS42MiwxLjYydjFhLjYxLjYxLDAsMCwxLS42MS42LjYuNiwwLDAsMS0uNjEtLjZ2LTFhLjQuNCwwLDAsMC0uNC0uNDFIMjNBLjYxLjYxLDAsMSwxLDIzLDE2WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/checkboxIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjUsMTIuNzZBMi4yMSwyLjIxLDAsMCwxLDI3LjI0LDE1VjI1QTIuMjEsMi4yMSwwLDAsMSwyNSwyNy4yNEgxNUEyLjIxLDIuMjEsMCwwLDEsMTIuNzYsMjVWMTVBMi4yMSwyLjIxLDAsMCwxLDE1LDEyLjc2Wk0yNSwxNEgxNWExLDEsMCwwLDAtMSwxVjI1YTEsMSwwLDAsMCwxLDFIMjVhMSwxLDAsMCwwLDEtMVYxNUExLDEsMCwwLDAsMjUsMTRabS02LjY0LDgsNS4yMS01LjJhLjU5LjU5LDAsMCwxLC44NSwwLC42MS42MSwwLDAsMSwuMDYuNzhsLS4wNi4wNy01LjYzLDUuNjNhLjYuNiwwLDAsMS0uNzkuMDZMMTgsMjMuMjRsLTIuNDEtMi40MWEuNjEuNjEsMCwwLDEsMC0uODUuNi42LDAsMCwxLC43OS0uMDZsLjA2LjA2LDIsMiw1LjIxLTUuMloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/collapsedIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNSIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDE1IDMwIj48cGF0aCBkPSJNOS4xMywxNS40bC0yLjY2LDJhLjUuNSwwLDAsMS0uOC0uNFYxM2EuNS41LDAsMCwxLC44LS40bDIuNjYsMkEuNS41LDAsMCwxLDkuMTMsMTUuNFoiIHN0eWxlPSJmaWxsOiM4ZThlOGUiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/colorPickerIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTMuMzEsMTUuMzRhOC4zNCw4LjM0LDAsMCwxLDE0LjI1LDguMzRjLTEuMzUsMy43LTQuOTEsNS4xNi03LjQ3LDMuM2EzLjgyLDMuODIsMCwwLDEtMS41Mi0zbC0uMDgtLjgxLDAtLjMyYy0uMS0uNzYtLjI2LTEuMS0uNTgtMS4yOGExLjI3LDEuMjcsMCwwLDAtMS4zLDBsLS4yOC4xMi0uMTUuMDZhMy4xMiwzLjEyLDAsMCwxLTIuMDcuMzRsLS4xNywwLS4xMywwQzExLjQ5LDIxLjI5LDExLjE1LDE4LjIsMTMuMzEsMTUuMzRabS44LDUuNDguMSwwLC4xMSwwYTEuODEsMS44MSwwLDAsMCwxLjE3LS4xOWwuNDktLjIxYTIuNDcsMi40NywwLDAsMSwzLjY4LDIuMjFsMCwuMzcuMDUuNDQsMCwuMzRhMi43NSwyLjc1LDAsMCwwLDEsMi4xNmMxLjg2LDEuMzUsNC41Mi4yNSw1LjYxLTIuNzNhNy4xMSw3LjExLDAsMCwwLTEyLjEyLTcuMTlDMTIuNTksMTguMzMsMTIuOCwyMC4zOCwxNC4xMSwyMC44MlptOS4xNi0xLjYzYTEsMSwwLDEsMSwyLS41MywxLDEsMCwwLDEtMiwuNTNaTTIzLjY4LDIyYTEsMSwwLDEsMSwxLjI0LjcyQTEsMSwwLDAsMSwyMy42OCwyMlptLTItNS4zYTEsMSwwLDAsMSwuNzItMS4yNSwxLDEsMCwxLDEsLjUzLDJBMSwxLDAsMCwxLDIxLjY2LDE2Ljc0Wm0wLDcuMzVhMSwxLDAsMCwxLC43Mi0xLjI1LDEsMSwwLDAsMSwuNTMsMkExLDEsMCwwLDEsMjEuNjMsMjQuMDlaTTE4Ljc4LDE2YTEsMSwwLDEsMSwxLjI1LjcyQTEsMSwwLDAsMSwxOC43OCwxNloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/cursor_rotate0.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNSAyNSIgd2lkdGg9IjI1IiBoZWlnaHQ9IjI1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTE4LjkxLDEyLjExbC0uNjYtLjY2YTguMTQsOC4xNCwwLDAsMC0xMS41LDBsLS42Ni42Nkw0LjY4LDEwLjcsMy4zOSwxNS41MWw0LjgyLTEuMjlMNi44LDEyLjgxbC42NS0uNjVhNy4xNiw3LjE2LDAsMCwxLDEwLjEsMGwuNjUuNjUtMS40MSwxLjQxLDQuODIsMS4yOUwyMC4zMiwxMC43WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEyLjUsOS4wN2E4LjEzLDguMTMsMCwwLDEsNS43NSwyLjM4bC42Ni42NiwxLjQxLTEuNDEsMS4yOSw0LjgxLTQuODItMS4yOSwxLjQxLTEuNDEtLjY1LS42NWE3LjE1LDcuMTUsMCwwLDAtMTAuMSwwbC0uNjUuNjUsMS40MSwxLjQxTDMuMzksMTUuNTEsNC42OCwxMC43bDEuNDEsMS40MS42Ni0uNjZBOC4xMyw4LjEzLDAsMCwxLDEyLjUsOS4wN20wLTFhOS4wOCw5LjA4LDAsMCwwLTYuNDEsMi42MmwtLjctLjdMNC4xNiw4Ljc3bC0uNDQsMS42N0wyLjQzLDE1LjI1LDIsMTYuOTNsMS42Ny0uNDUsNC44Mi0xLjI5LDEuNjctLjQ1TDguOTEsMTMuNTJsLS43LS43MWE2LjE2LDYuMTYsMCwwLDEsOC41OCwwbC0uNzEuNzEtMS4yMiwxLjIyLDEuNjcuNDUsNC44MiwxLjI5LDEuNjcuNDUtLjQ1LTEuNjgtMS4yOS00LjgxLS40NC0xLjY3TDE5LjYxLDEwbC0uNy43QTkuMDgsOS4wOCwwLDAsMCwxMi41LDguMDdaIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/cursor_rotate1.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNSAyNSIgd2lkdGg9IjI1IiBoZWlnaHQ9IjI1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTE4LjMzLDE1Ljc0di0uOTNhOC4xNSw4LjE1LDAsMCwwLTguMTQtOC4xNEg5LjI2di0yTDUsNy4xN2w0LjMxLDIuNXYtMmguOTNhNy4xNCw3LjE0LDAsMCwxLDcuMTQsNy4xNHYuOTNoLTJsMi41LDQuMzEsMi40OS00LjMxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTkuMjYsNC42OHYyaC45M2E4LjE1LDguMTUsMCwwLDEsOC4xNCw4LjE0di45M2gybC0yLjQ5LDQuMzEtMi41LTQuMzFoMnYtLjkzYTcuMTQsNy4xNCwwLDAsMC03LjE0LTcuMTRIOS4yNnYyTDUsNy4xNyw5LjI2LDQuNjhtMS0xLjczLTEuNS44Nkw0LjQ1LDYuMzEsMyw3LjE3LDQuNDUsOGw0LjMxLDIuNDksMS41Ljg3VjguNjdhNi4xNSw2LjE1LDAsMCwxLDYuMDcsNi4wN0gxMy42bC44NywxLjVMMTcsMjAuNTVsLjg3LDEuNS44Ni0xLjUsMi41LTQuMzEuODYtMS41SDE5LjMzYTkuMTYsOS4xNiwwLDAsMC05LjA3LTkuMDdWM1oiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/cursor_rotate2.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNSAyNSIgd2lkdGg9IjI1IiBoZWlnaHQ9IjI1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTEyLjg5LDE4LjkxbC42Ni0uNjZhOC4xNCw4LjE0LDAsMCwwLDAtMTEuNWwtLjY2LS42NkwxNC4zLDQuNjgsOS40OSwzLjM5bDEuMjksNC44MkwxMi4xOSw2LjhsLjY1LjY1YTcuMTYsNy4xNiwwLDAsMSwwLDEwLjFsLS42NS42NS0xLjQxLTEuNDFMOS40OSwyMS42MWw0LjgxLTEuMjlaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNOS40OSwzLjM5LDE0LjMsNC42OCwxMi44OSw2LjA5bC42Ni42NmE4LjE0LDguMTQsMCwwLDEsMCwxMS41bC0uNjYuNjYsMS40MSwxLjQxTDkuNDksMjEuNjFsMS4yOS00LjgyLDEuNDEsMS40MS42NS0uNjVhNy4xNiw3LjE2LDAsMCwwLDAtMTAuMWwtLjY1LS42NUwxMC43OCw4LjIxLDkuNDksMy4zOU04LjA3LDJsLjQ1LDEuNjdMOS44MSw4LjQ3bC40NSwxLjY3LDEuMjItMS4yMy43MS0uN2E2LjE2LDYuMTYsMCwwLDEsMCw4LjU4bC0uNzEtLjctMS4yMi0xLjIzLS40NSwxLjY3TDguNTIsMjEuMzUsOC4wNywyM2wxLjY4LS40NSw0LjgxLTEuMjksMS42Ny0uNDRMMTUsMTkuNjFsLS43LS43YTkuMTUsOS4xNSwwLDAsMCwwLTEyLjgybC43LS43LDEuMjItMS4yMy0xLjY3LS40NEw5Ljc1LDIuNDMsOC4wNywyWiIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/cursor_rotate3.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNSAyNSIgd2lkdGg9IjI1IiBoZWlnaHQ9IjI1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTkuMjYsMTguMzNoLjkzYTguMTUsOC4xNSwwLDAsMCw4LjE0LTguMTRWOS4yNmgyTDE3LjgzLDVsLTIuNSw0LjMxaDJ2LjkzYTcuMTQsNy4xNCwwLDAsMS03LjE0LDcuMTRIOS4yNnYtMkw1LDE3LjgzbDQuMzEsMi40OVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNy44Myw1bDIuNDksNC4zMWgtMnYuOTNhOC4xNSw4LjE1LDAsMCwxLTguMTQsOC4xNEg5LjI2djJMNSwxNy44M2w0LjMxLTIuNXYyaC45M2E3LjE0LDcuMTQsMCwwLDAsNy4xNC03LjE0VjkuMjZoLTJMMTcuODMsNW0wLTJMMTcsNC40NSwxNC40Nyw4Ljc2bC0uODcsMS41aDIuNzNhNi4xNSw2LjE1LDAsMCwxLTYuMDcsNi4wN1YxMy42bC0xLjUuODdMNC40NSwxNywzLDE3LjgzbDEuNS44Niw0LjMxLDIuNSwxLjUuODZWMTkuMzNhOS4xNiw5LjE2LDAsMCwwLDkuMDctOS4wN2gyLjcybC0uODYtMS41LTIuNS00LjMxTDE3LjgzLDNaIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/cursor_rotate4.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNSAyNSIgd2lkdGg9IjI1IiBoZWlnaHQ9IjI1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTYuMDksMTIuODlsLjY2LjY2YTguMTQsOC4xNCwwLDAsMCwxMS41LDBsLjY2LS42NiwxLjQxLDEuNDEsMS4yOS00LjgxLTQuODIsMS4yOSwxLjQxLDEuNDEtLjY1LjY1YTcuMTYsNy4xNiwwLDAsMS0xMC4xLDBsLS42NS0uNjUsMS40MS0xLjQxTDMuMzksOS40OSw0LjY4LDE0LjNaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjEuNjEsOS40OSwyMC4zMiwxNC4zbC0xLjQxLTEuNDEtLjY2LjY2YTguMTQsOC4xNCwwLDAsMS0xMS41LDBsLS42Ni0uNjZMNC42OCwxNC4zLDMuMzksOS40OWw0LjgyLDEuMjlMNi44LDEyLjE5bC42NS42NWE3LjE1LDcuMTUsMCwwLDAsMTAuMSwwbC42NS0uNjUtMS40MS0xLjQxLDQuODItMS4yOU0yMyw4LjA3bC0xLjY3LjQ1TDE2LjUzLDkuODFsLTEuNjcuNDUsMS4yMywxLjIyLjcuNzFhNi4xNiw2LjE2LDAsMCwxLTguNTgsMGwuNy0uNzEsMS4yMy0xLjIyTDguNDcsOS44MSwzLjY1LDguNTIsMiw4LjA3bC40NSwxLjY4LDEuMjksNC44MS40NCwxLjY3TDUuMzksMTVsLjctLjdhOS4xNSw5LjE1LDAsMCwwLDEyLjgyLDBsLjcuNywxLjIzLDEuMjIuNDQtMS42NywxLjI5LTQuODFMMjMsOC4wN1oiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/cursor_rotate5.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNSAyNSIgd2lkdGg9IjI1IiBoZWlnaHQ9IjI1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTYuNjcsOS4yNnYuOTNhOC4xNSw4LjE1LDAsMCwwLDguMTQsOC4xNGguOTN2Mmw0LjMxLTIuNDktNC4zMS0yLjV2MmgtLjkzYTcuMTQsNy4xNCwwLDAsMS03LjE0LTcuMTRWOS4yNmgyTDcuMTcsNSw0LjY4LDkuMjZaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNy4xNyw1bDIuNSw0LjMxaC0ydi45M2E3LjE0LDcuMTQsMCwwLDAsNy4xNCw3LjE0aC45M3YtMmw0LjMxLDIuNS00LjMxLDIuNDl2LTJoLS45M2E4LjE1LDguMTUsMCwwLDEtOC4xNC04LjE0VjkuMjZoLTJMNy4xNyw1bTAtMi0uODYsMS41TDMuODEsOC43NiwzLDEwLjI2SDUuNjdhOS4xNiw5LjE2LDAsMCwwLDkuMDcsOS4wN3YyLjcybDEuNS0uODYsNC4zMS0yLjUsMS41LS44NkwyMC41NSwxN2wtNC4zMS0yLjQ5LTEuNS0uODd2Mi43M2E2LjE1LDYuMTUsMCwwLDEtNi4wNy02LjA3SDExLjRsLS44Ny0xLjVMOCw0LjQ1LDcuMTcsM1oiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/cursor_rotate6.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNSAyNSIgd2lkdGg9IjI1IiBoZWlnaHQ9IjI1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTEyLjExLDYuMDlsLS42Ni42NmE4LjE0LDguMTQsMCwwLDAsMCwxMS41bC42Ni42NkwxMC43LDIwLjMybDQuODEsMS4yOS0xLjI5LTQuODJMMTIuODEsMTguMmwtLjY1LS42NWE3LjE2LDcuMTYsMCwwLDEsMC0xMC4xbC42NS0uNjUsMS40MSwxLjQxLDEuMjktNC44MkwxMC43LDQuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTUuNTEsMy4zOSwxNC4yMiw4LjIxLDEyLjgxLDYuOGwtLjY1LjY1YTcuMTYsNy4xNiwwLDAsMCwwLDEwLjFsLjY1LjY1LDEuNDEtMS40MSwxLjI5LDQuODJMMTAuNywyMC4zMmwxLjQxLTEuNDEtLjY2LS42NmE4LjE0LDguMTQsMCwwLDEsMC0xMS41bC42Ni0uNjZMMTAuNyw0LjY4bDQuODEtMS4yOU0xNi45MywybC0xLjY4LjQ1TDEwLjQ0LDMuNzJsLTEuNjcuNDRMMTAsNS4zOWwuNy43YTkuMTUsOS4xNSwwLDAsMCwwLDEyLjgybC0uNy43TDguNzcsMjAuODRsMS42Ny40NCw0LjgxLDEuMjksMS42OC40NS0uNDUtMS42Ny0xLjI5LTQuODItLjQ1LTEuNjctMS4yMiwxLjIzLS43MS43YTYuMTYsNi4xNiwwLDAsMSwwLTguNThsLjcxLjcsMS4yMiwxLjIzLjQ1LTEuNjcsMS4yOS00LjgyTDE2LjkzLDJaIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/cursor_rotate7.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNSAyNSIgd2lkdGg9IjI1IiBoZWlnaHQ9IjI1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTE1Ljc0LDYuNjdoLS45M2E4LjE1LDguMTUsMCwwLDAtOC4xNCw4LjE0di45M2gtMmwyLjQ5LDQuMzEsMi41LTQuMzFoLTJ2LS45M2E3LjE0LDcuMTQsMCwwLDEsNy4xNC03LjE0aC45M3YybDQuMzEtMi41TDE1Ljc0LDQuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTUuNzQsNC42OGw0LjMxLDIuNDktNC4zMSwyLjV2LTJoLS45M2E3LjE0LDcuMTQsMCwwLDAtNy4xNCw3LjE0di45M2gybC0yLjUsNC4zMUw0LjY4LDE1Ljc0aDJ2LS45M2E4LjE1LDguMTUsMCwwLDEsOC4xNC04LjE0aC45M3YtMk0xNC43NCwzVjUuNjdhOS4xNiw5LjE2LDAsMCwwLTkuMDcsOS4wN0gzbC44NiwxLjUsMi41LDQuMzEuODYsMS41TDgsMjAuNTVsMi40OS00LjMxLjg3LTEuNUg4LjY3YTYuMTUsNi4xNSwwLDAsMSw2LjA3LTYuMDdWMTEuNGwxLjUtLjg3TDIwLjU1LDhsMS41LS44Ny0xLjUtLjg2LTQuMzEtMi41TDE0Ljc0LDNaIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/cursor_scaleDiagonalLeft.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNSAyNSIgIHdpZHRoPSIyNSIgaGVpZ2h0PSIyNSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxwb2x5Z29uIHBvaW50cz0iNy41MSAxMS4wNCA2LjIyIDYuMjIgMTEuMDQgNy41MSA5LjYzIDguOTIgMTYuMDggMTUuMzcgMTcuNDggMTMuOTYgMTguNzcgMTguNzcgMTMuOTYgMTcuNDggMTUuMzcgMTYuMDggOC45MiA5LjYzIDcuNTEgMTEuMDQiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik02LjIyLDYuMjIsMTEsNy41MSw5LjYzLDguOTJsNi40NSw2LjQ1TDE3LjQ5LDE0bDEuMjksNC44MkwxNCwxNy40OWwxLjQxLTEuNDFMOC45Miw5LjYzLDcuNTEsMTEsNi4yMiw2LjIyTTQuODEsNC44MWwuNDUsMS42N0w2LjU1LDExLjMsNywxM2wxLjIyLTEuMjIuNy0uNyw1LDUtLjcuN0wxMiwxOGwxLjY3LjQ1LDQuODIsMS4yOSwxLjY3LjQ1LS40NS0xLjY3TDE4LjQ1LDEzLjcsMTgsMTJsLTEuMjIsMS4yMi0uNy43LTUtNSwuNy0uN0wxMyw3LDExLjMsNi41NSw2LjQ4LDUuMjYsNC44MSw0LjgxWiIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/cursor_scaleDiagonalRight.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNSAyNSIgd2lkdGg9IjI1IiBoZWlnaHQ9IjI1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHBvbHlnb24gcG9pbnRzPSIxNy40OCAxMS4wNCAxOC43NyA2LjIyIDEzLjk2IDcuNTEgMTUuMzcgOC45MiA4LjkyIDE1LjM3IDcuNTEgMTMuOTYgNi4yMiAxOC43NyAxMS4wNCAxNy40OCA5LjYzIDE2LjA4IDE2LjA4IDkuNjMgMTcuNDggMTEuMDQiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xOC43OCw2LjIyLDE3LjQ5LDExLDE2LjA4LDkuNjMsOS42MywxNi4wOCwxMSwxNy40OSw2LjIyLDE4Ljc4LDcuNTEsMTRsMS40MSwxLjQxLDYuNDUtNi40NUwxNCw3LjUxbDQuODItMS4yOW0xLjQxLTEuNDEtMS42Ny40NUwxMy43LDYuNTUsMTIsN2wxLjIyLDEuMjIuNy43LTUsNS0uNy0uN0w3LDEyLDYuNTUsMTMuNyw1LjI2LDE4LjUybC0uNDUsMS42NywxLjY3LS40NSw0LjgyLTEuMjlMMTMsMThsLTEuMjItMS4yMi0uNy0uNyw1LTUsLjcuN0wxOCwxM2wuNDUtMS42NywxLjI5LTQuODIuNDUtMS42N1oiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/cursor_scaleHorizontal.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNSAyNSIgIHdpZHRoPSIyNSIgaGVpZ2h0PSIyNSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxwb2x5Z29uIHBvaW50cz0iNy45NCAxMC4wMSAzLjYzIDEyLjUgNy45NCAxNC45OSA3Ljk0IDEzIDE3LjA2IDEzIDE3LjA2IDE0Ljk5IDIxLjM4IDEyLjUgMTcuMDYgMTAuMDEgMTcuMDYgMTIgNy45NCAxMiA3Ljk0IDEwLjAxIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNy45NCwxMHYyaDkuMTJWMTBsNC4zMSwyLjQ5TDE3LjA2LDE1VjEzSDcuOTR2MkwzLjYzLDEyLjUsNy45NCwxMG0xLTEuNzQtMS41Ljg3TDMuMTMsMTEuNjNsLTEuNS44NywxLjUuODcsNC4zMSwyLjQ5LDEuNS44N1YxNGg3LjEydjIuNzNsMS41LS44Nyw0LjMxLTIuNDksMS41LS44Ny0xLjUtLjg3TDE3LjU2LDkuMTRsLTEuNS0uODdWMTFIOC45NFY4LjI3WiIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/cursor_scaleVertical.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNSAyNSIgIHdpZHRoPSIyNSIgaGVpZ2h0PSIyNSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxwb2x5Z29uIHBvaW50cz0iMTQuOTkgNy45NCAxMi41IDMuNjMgMTAuMDEgNy45NCAxMiA3Ljk0IDEyIDE3LjA2IDEwLjAxIDE3LjA2IDEyLjUgMjEuMzggMTQuOTkgMTcuMDYgMTMgMTcuMDYgMTMgNy45NCAxNC45OSA3Ljk0Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTIuNSwzLjYzLDE1LDcuOTRIMTN2OS4xMmgyTDEyLjUsMjEuMzcsMTAsMTcuMDZoMlY3Ljk0SDEwTDEyLjUsMy42M20wLTItLjg3LDEuNUw5LjE0LDcuNDRsLS44NywxLjVIMTF2Ny4xMkg4LjI3bC44NywxLjUsMi40OSw0LjMxLjg3LDEuNS44Ny0xLjUsMi40OS00LjMxLjg3LTEuNUgxNFY4Ljk0aDIuNzNsLS44Ny0xLjVMMTMuMzcsMy4xM2wtLjg3LTEuNVoiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/displaygridIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTcuMzksMjAuOGExLjgxLDEuODEsMCwwLDEsMS44MSwxLjgxdjIuODFhMS44MSwxLjgxLDAsMCwxLTEuODEsMS44MUgxNC41OGExLjgxLDEuODEsMCwwLDEtMS44MS0xLjgxVjIyLjYxYTEuODEsMS44MSwwLDAsMSwxLjgxLTEuODFabTgsMGExLjgxLDEuODEsMCwwLDEsMS44MSwxLjgxdjIuODFhMS44MSwxLjgxLDAsMCwxLTEuODEsMS44MUgyMi42MWExLjgxLDEuODEsMCwwLDEtMS44MS0xLjgxVjIyLjYxYTEuODEsMS44MSwwLDAsMSwxLjgxLTEuODFabS04LDEuMjFIMTQuNThhLjYuNiwwLDAsMC0uNi42djIuODFhLjYuNiwwLDAsMCwuNi42aDIuODFhLjYuNiwwLDAsMCwuNi0uNlYyMi42MUEuNi42LDAsMCwwLDE3LjM5LDIyWm04LDBIMjIuNjFhLjYuNiwwLDAsMC0uNi42djIuODFhLjYuNiwwLDAsMCwuNi42aDIuODFhLjYuNiwwLDAsMCwuNi0uNlYyMi42MUEuNi42LDAsMCwwLDI1LjQyLDIyWm0tOC05LjI0YTEuODEsMS44MSwwLDAsMSwxLjgxLDEuODF2Mi44MWExLjgxLDEuODEsMCwwLDEtMS44MSwxLjgxSDE0LjU4YTEuODEsMS44MSwwLDAsMS0xLjgxLTEuODFWMTQuNThhMS44MSwxLjgxLDAsMCwxLDEuODEtMS44MVptOCwwYTEuODEsMS44MSwwLDAsMSwxLjgxLDEuODF2Mi44MWExLjgxLDEuODEsMCwwLDEtMS44MSwxLjgxSDIyLjYxYTEuODEsMS44MSwwLDAsMS0xLjgxLTEuODFWMTQuNThhMS44MSwxLjgxLDAsMCwxLDEuODEtMS44MVptLTgsMS4yMUgxNC41OGEuNi42LDAsMCwwLS42LjZ2Mi44MWEuNi42LDAsMCwwLC42LjZoMi44MWEuNi42LDAsMCwwLC42LS42VjE0LjU4QS42LjYsMCwwLDAsMTcuMzksMTRabTgsMEgyMi42MWEuNi42LDAsMCwwLS42LjZ2Mi44MWEuNi42LDAsMCwwLC42LjZoMi44MWEuNi42LDAsMCwwLC42LS42VjE0LjU4QS42LjYsMCwwLDAsMjUuNDIsMTRaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/ellipseIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjAsMTMuMTdBNi44Myw2LjgzLDAsMSwwLDI2LjgzLDIwLDYuODMsNi44MywwLDAsMCwyMCwxMy4xN1pNMTIsMjBhOCw4LDAsMSwxLDgsOEE4LDgsMCwwLDEsMTIsMjBaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/expandedIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNSIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDE1IDMwIj48cGF0aCBkPSJNNy4xLDE2LjYzLDUuMSwxNGEuNS41LDAsMCwxLC40LS44aDRhLjUuNSwwLDAsMSwuNC44bC0yLDIuNjZBLjUuNSwwLDAsMSw3LjEsMTYuNjNaIiBzdHlsZT0iZmlsbDojOGU4ZThlIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/gizmoPivotIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIxNSIgY3k9IjE1IiByPSI4Ljk4Ii8+PHBhdGggZD0iTTE1LDYuOUE4LjEsOC4xLDAsMSwwLDIzLjEsMTUsOC4xLDguMSwwLDAsMCwxNSw2LjlabTYuODYsNy40OUgxNS42M1Y4LjE0QTYuODksNi44OSwwLDAsMSwyMS44NiwxNC4zOVpNMTQuNDEsOC4xNHY2LjI1SDguMTRBNi44OSw2Ljg5LDAsMCwxLDE0LjQxLDguMTRaTTguMTQsMTUuNjFoNi4yN3Y2LjI1QTYuODksNi44OSwwLDAsMSw4LjE0LDE1LjYxWm03LjQ5LDYuMjVWMTUuNjFoNi4yM0E2Ljg5LDYuODksMCwwLDEsMTUuNjMsMjEuODZaIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/gridIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTIuNzQsMTUuMzZhMi42MiwyLjYyLDAsMCwxLDIuNjItMi42Mmg5LjI4YTIuNjIsMi42MiwwLDAsMSwyLjYyLDIuNjJ2OS4yOGEyLjYyLDIuNjIsMCwwLDEtMi42MiwyLjYySDE1LjM2YTIuNjIsMi42MiwwLDAsMS0yLjYyLTIuNjJaTTE1LjM2LDE0QTEuNDEsMS40MSwwLDAsMCwxNCwxNS4zNnYxLjgyaDMuMjNWMTRaTTE0LDE4LjM5djMuMjJoMy4yM1YxOC4zOVptNC40NCwwdjMuMjJoMy4yMlYxOC4zOVptNC40MywwdjMuMjJoMy4yM1YxOC4zOVptLTEuMjEsNC40M0gxOC4zOXYzLjIzaDMuMjJabTEuMjEsMy4yM2gxLjgyYTEuNDEsMS40MSwwLDAsMCwxLjQxLTEuNDFWMjIuODJIMjIuODJabTAtOC44N2gzLjIzVjE1LjM2QTEuNDEsMS40MSwwLDAsMCwyNC42NCwxNEgyMi44MlpNMjEuNjEsMTRIMTguMzl2My4yM2gzLjIyWk0xNCwyMi44MnYxLjgyYTEuNDEsMS40MSwwLDAsMCwxLjQxLDEuNDFoMS44MlYyMi44MloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/guidesIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjEuNiwxMy4zOGEuNi42LDAsMCwxLS42LjZIMTlhLjYuNiwwLDEsMSwwLTEuMmgyQS42LjYsMCwwLDEsMjEuNiwxMy4zOFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMTQsMTlhLjYuNiwwLDAsMC0xLjIsMHYyQS42LjYsMCwwLDAsMTQsMjFaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTI2LDE5YS42LjYsMCwwLDEsMS4yLDB2MkEuNi42LDAsMCwxLDI2LDIxWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxwYXRoIGQ9Ik0yMSwyNy4yMkEuNi42LDAsMCwwLDIxLDI2SDE5YS42LjYsMCwxLDAsMCwxLjJaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTE2LDEzLjM4YS42LjYsMCwwLDAtLjYtLjZIMTVhMi4yMSwyLjIxLDAsMCwwLTIuMiwyLjJ2LjQxYS42LjYsMCwwLDAsMS4yLDBWMTVhMSwxLDAsMCwxLDEtMWguNDFBLjYuNiwwLDAsMCwxNiwxMy4zOFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMjQuNjEsMTIuNzhhLjYuNiwwLDEsMCwwLDEuMkgyNWExLDEsMCwwLDEsMSwxdi40MWEuNi42LDAsMSwwLDEuMiwwVjE1YTIuMjEsMi4yMSwwLDAsMC0yLjItMi4yWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxwYXRoIGQ9Ik0xNiwyNi42MmEuNi42LDAsMCwxLS42LjZIMTVhMi4yMSwyLjIxLDAsMCwxLTIuMi0yLjJ2LS40MWEuNi42LDAsMCwxLDEuMiwwVjI1YTEsMSwwLDAsMCwxLDFoLjQxQS42LjYsMCwwLDEsMTYsMjYuNjJaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTI0LjYxLDI3LjIyYS42LjYsMCwwLDEsMC0xLjJIMjVhMSwxLDAsMCwwLDEtMXYtLjQxYS42LjYsMCwwLDEsMS4yLDBWMjVhMi4yMSwyLjIxLDAsMCwxLTIuMiwyLjJaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/hamburgerIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTIuNDYsMTUuMzFIMjcuNjJhLjYyLjYyLDAsMCwwLC41My0uNjEuNjEuNjEsMCwwLDAtLjYxLS42MUgxMi4zOGEuNjEuNjEsMCwwLDAsLjA4LDEuMjFaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTI3LjU0LDE5LjM5SDEyLjM4YS42MS42MSwwLDAsMCwuMDgsMS4yMUgyNy42MmEuNjIuNjIsMCwwLDAsLjUzLS42MUEuNjEuNjEsMCwwLDAsMjcuNTQsMTkuMzlaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTI3LjU0LDI0LjY5SDEyLjM4YS42Mi42MiwwLDAsMC0uNTMuNjEuNjEuNjEsMCwwLDAsLjYxLjYxSDI3LjYyYS42MS42MSwwLDAsMC0uMDgtMS4yMVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/handIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTkuMzksMTMuNTF2NS4wN2EuNjEuNjEsMCwwLDAsLjYxLjYxLjYxLjYxLDAsMCwwLC42MS0uNjFWMTQuNTFhLjM5LjM5LDAsMCwxLC40LS4zOS40My40MywwLDAsMSwuNDEuNDF2Ni4wOGEuNjEuNjEsMCwwLDAsMSwuNDJoMGwwLDAsLjA4LS4wN2MuMDgtLjA3LjE5LS4xNi4zMy0uMjZBMi42NiwyLjY2LDAsMCwxLDI0LDIwLjJhMS44NiwxLjg2LDAsMCwxLDEuMTMuMTEuNjguNjgsMCwwLDEsLjM2LjQzbC0xLjM1LDFMMjQsMjEuOGwtMS43NiwxLjc2YTEwLDEwLDAsMCwwLTEuODcsMi41OSwxLjM1LDEuMzUsMCwwLDEtMS4yLjc0SDE3YTEuMjEsMS4yMSwwLDAsMS0xLjA3LS41OCw5LDksMCwwLDEtMS4zOS00LjA4VjE2YS40MS40MSwwLDEsMSwuODEsMHYyLjgzYS42MS42MSwwLDAsMCwuNjEuNjEuNjEuNjEsMCwwLDAsLjYxLS42MVYxNC41M2EuNC40LDAsMCwxLC40LS40MS40MS40MSwwLDAsMSwuNDEuNDF2NGEuNjEuNjEsMCwxLDAsMS4yMSwwVjEzLjUxYS40MS40MSwwLDAsMSwuODEsMFpNMjAuNTIsMTNBMS42MywxLjYzLDAsMCwwLDE5LDExLjg5LDEuNiwxLjYsMCwwLDAsMTcuNDYsMTNhMS42MywxLjYzLDAsMCwwLS41LS4wNywxLjYxLDEuNjEsMCwwLDAtMS42MSwxLjQ3LDEuODQsMS44NCwwLDAsMC0uNDEtLjA1QTEuNjIsMS42MiwwLDAsMCwxMy4zMSwxNnY2LjI4YTEwLjIsMTAuMiwwLDAsMCwxLjU2LDQuN0EyLjQ0LDIuNDQsMCwwLDAsMTcsMjguMTFIMTkuMmEyLjU4LDIuNTgsMCwwLDAsMi4yOS0xLjQxLDguNzksOC43OSwwLDAsMSwxLjYzLTIuMjhsMS43NC0xLjczLDEuNTgtMS4xOWEuNjEuNjEsMCwwLDAsLjI1LS40OSwxLjksMS45LDAsMCwwLTEuMDYtMS43OEEzLDMsMCwwLDAsMjMuNzQsMTlhMy42NCwzLjY0LDAsMCwwLTEuMTEuNFYxNC41M0ExLjYzLDEuNjMsMCwwLDAsMjEsMTIuOTEsMS41MSwxLjUxLDAsMCwwLDIwLjUyLDEzWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/imageIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQwIDQwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjMuODYsMTEuODZhMi42NSwyLjY1LDAsMCwxLDIuNjUsMi42NXY5LjM2YTIuNjUsMi42NSwwLDAsMS0yLjY1LDIuNjVIMTQuNWEyLjY1LDIuNjUsMCwwLDEtMi42NS0yLjY1VjE0LjUxYTIuNjUsMi42NSwwLDAsMSwyLjY1LTIuNjVabS40NywxMy4zNi00LjcyLTQuNjNhLjYyLjYyLDAsMCwwLS43OS0uMDZsLS4wNy4wNkwxNCwyNS4yMmExLjQsMS40LDAsMCwwLC40Ny4wOGg5LjM2YTEuNCwxLjQsMCwwLDAsLjQ3LS4wOGwtNC43Mi00LjYzWm0tLjQ3LTEyLjEzSDE0LjVhMS40MiwxLjQyLDAsMCwwLTEuNDMsMS40MnY5LjM2YTEuMzMsMS4zMywwLDAsMCwuMDkuNDlsNC43NC00LjY1YTEuODQsMS44NCwwLDAsMSwyLjQ2LS4wOWwuMS4wOSw0Ljc0LDQuNjVhMS4zMywxLjMzLDAsMCwwLC4wOS0uNDlWMTQuNTFBMS40MiwxLjQyLDAsMCwwLDIzLjg2LDEzLjA5Wm0tMiwxLjYyQTEuODQsMS44NCwwLDEsMSwyMCwxNi41NSwxLjgzLDEuODMsMCwwLDEsMjEuODMsMTQuNzFabTAsMS4yMmEuNjEuNjEsMCwwLDAtLjYxLjYyLjYxLjYxLDAsMCwwLDEuMjIsMEEuNjEuNjEsMCwwLDAsMjEuODMsMTUuOTNaIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/imageSliderIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjYuMDYsMTQuMzRIMTMuOTRBMy42NCwzLjY0LDAsMCwwLDEwLjMsMThWMjJhMy42NCwzLjY0LDAsMCwwLDMuNjQsMy42M0gyNi4wNkEzLjY0LDMuNjQsMCwwLDAsMjkuNywyMlYxOEEzLjY0LDMuNjQsMCwwLDAsMjYuMDYsMTQuMzRabTAsMTAuMTFIMTMuOTRhMi40MiwyLjQyLDAsMCwxLS44MS0uMTVsMS40MS0xLjM5YTMuMjQsMy4yNCwwLDAsMCwxLjQ1LjM2QTMuMjgsMy4yOCwwLDAsMCwxOS4yNiwyMGEzLjE4LDMuMTgsMCwwLDAtLjM1LTEuNDNsLjY0LS42M2EuNTQuNTQsMCwwLDEsLjc0LDBMMjcsMjQuMjZBMi40MywyLjQzLDAsMCwxLDI2LjA2LDI0LjQ1Wk0xNCwyMGEyLDIsMCwxLDEsMiwyQTIsMiwwLDAsMSwxNCwyMFptMTQuNTIsMmEyLjQxLDIuNDEsMCwwLDEtLjQxLDEuMzRsLTYuODQtNi40NGExLjkxLDEuOTEsMCwwLDAtMi42NywwbC0uNTMuNTJhMy4yMiwzLjIyLDAsMCwwLTItLjc1QTMuMjgsMy4yOCwwLDAsMCwxMi43MiwyMGEzLjIzLDMuMjMsMCwwLDAsLjczLDJMMTIsMjMuNDdBMi40LDIuNCwwLDAsMSwxMS41MSwyMlYxOGEyLjQzLDIuNDMsMCwwLDEsMi40My0yLjQySDI2LjA2QTIuNDMsMi40MywwLDAsMSwyOC40OSwxOFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/inputFieldIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjIuNDMsMTcuMTdIMjAuNjF2NS42NkgyMWEuNjEuNjEsMCwwLDEsLjYxLjYxLjYxLjYxLDAsMCwxLS42MS42MUgxOWEuNjEuNjEsMCwwLDEtLjYxLS42MS42MS42MSwwLDAsMSwuNjEtLjYxaC40VjE3LjE3SDE3LjU3di42YS42MS42MSwwLDEsMS0xLjIxLDBWMTYuNTZBLjYuNiwwLDAsMSwxNywxNkgyM2EuNi42LDAsMCwxLC42LjYxdjEuMjFhLjYxLjYxLDAsMSwxLTEuMjEsMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMTQuOTQsMTMuNTJhMywzLDAsMCwwLTMsM3Y2Ljg4YTMsMywwLDAsMCwzLDNIMjUuMDZhMywzLDAsMCwwLDMtM1YxNi41NmEzLDMsMCwwLDAtMy0zWm0tMS44MiwzYTEuODEsMS44MSwwLDAsMSwxLjgyLTEuODJIMjUuMDZhMS44MSwxLjgxLDAsMCwxLDEuODIsMS44MnY2Ljg4YTEuODEsMS44MSwwLDAsMS0xLjgyLDEuODJIMTQuOTRhMS44MSwxLjgxLDAsMCwxLTEuODItMS44MloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/keyboardIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjYuMzEsMTQuM2ExLjgzLDEuODMsMCwwLDEsMS44MywxLjgzdjcuNzRhMS44MywxLjgzLDAsMCwxLTEuODMsMS44M0gxMy42OWExLjgzLDEuODMsMCwwLDEtMS44My0xLjgzVjE2LjEzYTEuODMsMS44MywwLDAsMSwxLjgzLTEuODNabTAsMS4yMkgxMy42OWEuNjEuNjEsMCwwLDAtLjYxLjYxdjcuNzRhLjYxLjYxLDAsMCwwLC42MS42MUgyNi4zMWEuNjEuNjEsMCwwLDAsLjYxLS42MVYxNi4xM0EuNjEuNjEsMCwwLDAsMjYuMzEsMTUuNTJaTTE1LjczLDIyaDguNTVhLjYxLjYxLDAsMCwxLC4wOCwxLjIySDE1LjczQS42MS42MSwwLDAsMSwxNS42NSwyMlptNy45My0yLjg1YS44Mi44MiwwLDAsMSwuODIuODIuODIuODIsMCwxLDEtLjgyLS44MlptLTQuODgsMGEuODIuODIsMCwwLDEsLjgyLjgyLjgyLjgyLDAsMSwxLS44Mi0uODJabS0yLjQ0LDBhLjgyLjgyLDAsMCwxLC44Mi44Mi44Mi44MiwwLDAsMS0uODIuODEuODEuODEsMCwwLDEtLjgxLS44MUEuODIuODIsMCwwLDEsMTYuMzQsMTkuMThabTQuODksMEEuODIuODIsMCwwLDEsMjIsMjBhLjgxLjgxLDAsMCwxLS44MS44MS44Mi44MiwwLDAsMS0uODItLjgxQS44Mi44MiwwLDAsMSwyMS4yMywxOS4xOFptLTYuMTEtMi40NGEuODIuODIsMCwwLDEsLjgxLjgyLjgxLjgxLDAsMCwxLS44MS44MS44Mi44MiwwLDAsMS0uODItLjgxQS44Mi44MiwwLDAsMSwxNS4xMiwxNi43NFptMi40NCwwYS44Mi44MiwwLDAsMSwuODEuODIuODEuODEsMCwwLDEtLjgxLjgxLjgyLjgyLDAsMCwxLS44Mi0uODFBLjgyLjgyLDAsMCwxLDE3LjU2LDE2Ljc0Wm0yLjQ0LDBhLjgyLjgyLDAsMCwxLC44MS44Mi44MS44MSwwLDAsMS0uODEuODEuODIuODIsMCwwLDEtLjgyLS44MUEuODIuODIsMCwwLDEsMjAsMTYuNzRabTIuNDQsMGEuODIuODIsMCwwLDEsLjgxLjgyLjgxLjgxLDAsMSwxLTEuNjIsMEEuODIuODIsMCwwLDEsMjIuNDQsMTYuNzRabTIuNDQsMGEuODIuODIsMCwwLDEsLjgyLjgyLjgyLjgyLDAsMCwxLS44Mi44MS44MS44MSwwLDAsMS0uODEtLjgxQS44Mi44MiwwLDAsMSwyNC44OCwxNi43NFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/lineIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTAuMywyMGEuNjEuNjEsMCwwLDEsLjYxLS42MUgyOS4wOWEuNjEuNjEsMCwxLDEsMCwxLjIySDEwLjkxQS42MS42MSwwLDAsMSwxMC4zLDIwWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/makeChildOfContainerIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTguNjcsMTQuNzdsLS4wNywwYS42MS42MSwwLDAsMC0uNzksMEwxNS42MSwxN1YxMS40OEEuNi42LDAsMCwwLDE1LDExaC0uMDhhLjYuNiwwLDAsMC0uNTMuNlYxN2wtMi4yLTIuMjEtLjA3LS4wNmEuNjEuNjEsMCwwLDAtLjc5LjkybDMuMjQsMy4yNC4wNy4wNmEuNjIuNjIsMCwwLDAsLjc5LS4wNmwzLjI0LTMuMjQsMC0uMDdBLjYxLjYxLDAsMCwwLDE4LjY3LDE0Ljc3WiIgc3R5bGU9ImZpbGw6IzIxMjEyMSIvPjxwYXRoIGQ9Ik0xMC4zNSw3LjcyYTIuNjIsMi42MiwwLDAsMC0yLjYzLDIuNjN2OS4zYTIuNjIsMi42MiwwLDAsMCwyLjYzLDIuNjNoOS4zYTIuNjIsMi42MiwwLDAsMCwyLjYzLTIuNjN2LTkuM2EyLjYyLDIuNjIsMCwwLDAtMi42My0yLjYzWk04LjkzLDEwLjM1YTEuNDMsMS40MywwLDAsMSwxLjQyLTEuNDJoOS4zYTEuNDMsMS40MywwLDAsMSwxLjQyLDEuNDJ2OS4zYTEuNDMsMS40MywwLDAsMS0xLjQyLDEuNDJoLTkuM2ExLjQzLDEuNDMsMCwwLDEtMS40Mi0xLjQyWiIgc3R5bGU9ImZpbGw6IzIxMjEyMSIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/makeComponentIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTUsMTFhLjYxLjYxLDAsMCwxLC42MS42MXYyLjgzaDIuODNhLjYxLjYxLDAsMCwxLDAsMS4yMkgxNS42MXYyLjgzYS42MS42MSwwLDAsMS0xLjIyLDBWMTUuNjFIMTEuNTZhLjYxLjYxLDAsMSwxLDAtMS4yMmgyLjgzVjExLjU2QS42MS42MSwwLDAsMSwxNSwxMVoiIHN0eWxlPSJmaWxsOiMzMzMiLz48cGF0aCBkPSJNNy43MSwxMC4zNGEyLjYzLDIuNjMsMCwwLDEsMi42My0yLjYzaDkuMzJhMi42MywyLjYzLDAsMCwxLDIuNjMsMi42M3Y5LjMyYTIuNjMsMi42MywwLDAsMS0yLjYzLDIuNjNIMTAuMzRhMi42MywyLjYzLDAsMCwxLTIuNjMtMi42M1ptMi42My0xLjQxYTEuNDEsMS40MSwwLDAsMC0xLjQxLDEuNDF2OS4zMmExLjQxLDEuNDEsMCwwLDAsMS40MSwxLjQxaDkuMzJhMS40MSwxLjQxLDAsMCwwLDEuNDEtMS40MVYxMC4zNGExLjQxLDEuNDEsMCwwLDAtMS40MS0xLjQxWiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/passwordFieldIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTkuODIsMTguNTVhLjYyLjYyLDAsMCwwLS44NiwwLC42Mi42MiwwLDAsMCwwLC44N2wuNTguNTgtLjU4LjU4YS42Mi42MiwwLDAsMCwwLC44Ny42Mi42MiwwLDAsMCwuODYsMGwuNTktLjU5LjU4LjU5YS42MS42MSwwLDAsMCwuODYsMCwuNi42LDAsMCwwLDAtLjg2TDIxLjI3LDIwbC41OC0uNThhLjYyLjYyLDAsMCwwLDAtLjg3LjYyLjYyLDAsMCwwLS44NiwwbC0uNTguNTlaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTE0LjQ5LDE4LjU1YS42Mi42MiwwLDAsMSwuODYsMGwuNTkuNTkuNTgtLjU5YS42Mi42MiwwLDAsMSwuODcuODdMMTYuOCwyMGwuNTkuNThhLjYyLjYyLDAsMCwxLS44Ny44N2wtLjU4LS41OS0uNTkuNTlhLjYyLjYyLDAsMCwxLS44NiwwLC42My42MywwLDAsMSwwLS44N2wuNTktLjU4LS41OS0uNThBLjYzLjYzLDAsMCwxLDE0LjQ5LDE4LjU1WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxwYXRoIGQ9Ik0yMy42NSwyMS4yMmEuNi42LDAsMCwwLS42LjYxLjYxLjYxLDAsMCwwLC42LjYxaDEuNDNhLjYxLjYxLDAsMCwwLC42LS42MS42LjYsMCwwLDAtLjYtLjYxWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxwYXRoIGQ9Ik0xNC41MiwxNC4zMkEyLjY0LDIuNjQsMCwwLDAsMTEuODgsMTd2Ni4xYTIuNjQsMi42NCwwLDAsMCwyLjY0LDIuNjNoMTFhMi42NCwyLjY0LDAsMCwwLDIuNjQtMi42M1YxN2EyLjY0LDIuNjQsMCwwLDAtMi42NC0yLjYzWk0xMy4xLDE3YTEuNDIsMS40MiwwLDAsMSwxLjQyLTEuNDJoMTFBMS40MiwxLjQyLDAsMCwxLDI2LjksMTd2Ni4xYTEuNDIsMS40MiwwLDAsMS0xLjQyLDEuNDJoLTExYTEuNDIsMS40MiwwLDAsMS0xLjQyLTEuNDJaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/pointerIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjYuMDksMjAuNjUsMTUuMzcsMTIuMzFhMS4xOSwxLjE5LDAsMCwwLTEuOTIuOTR2MTMuNWExLjE5LDEuMTksMCwwLDAsMi4xMi43NGwzLjMzLTQuMjFhMS4zLDEuMywwLDAsMSwxLS41aDUuNDRBMS4xOSwxLjE5LDAsMCwwLDI2LjA5LDIwLjY1Wm0tNi4xNy45NGEyLjUxLDIuNTEsMCwwLDAtMiwuOTVsLTMuMzIsNC4yMVYxMy4yNWwxMC43Miw4LjM0WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/radioButtonIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjAsMjQuODZBNC44Niw0Ljg2LDAsMSwwLDE1LjE0LDIwLDQuODcsNC44NywwLDAsMCwyMCwyNC44NloiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMjAsMTEuOUE4LjEsOC4xLDAsMSwwLDI4LjEsMjAsOC4xLDguMSwwLDAsMCwyMCwxMS45Wk0xMy4xMiwyMEE2Ljg4LDYuODgsMCwxLDEsMjAsMjYuODgsNi44OCw2Ljg4LDAsMCwxLDEzLjEyLDIwWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/rectangleIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTAuMywxNi4zNmEzLjY0LDMuNjQsMCwwLDEsMy42NC0zLjY0SDI2LjA2YTMuNjQsMy42NCwwLDAsMSwzLjY0LDMuNjR2Ny4yOGEzLjY0LDMuNjQsMCwwLDEtMy42NCwzLjY0SDEzLjk0YTMuNjQsMy42NCwwLDAsMS0zLjY0LTMuNjRabTMuNjQtMi40MmEyLjQyLDIuNDIsMCwwLDAtMi40MywyLjQydjcuMjhhMi40MiwyLjQyLDAsMCwwLDIuNDMsMi40MkgyNi4wNmEyLjQyLDIuNDIsMCwwLDAsMi40My0yLjQyVjE2LjM2YTIuNDIsMi40MiwwLDAsMC0yLjQzLTIuNDJaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/scrollbarIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjIuMjUsMTMuMThWMjYuOTFIMjFWMTMuMThabTEuMTYsMy4zNHY0LjE5aDEuMjJWMTYuNTJabS42MS0uNjFhLjYxLjYxLDAsMSwwLC42MS42MUEuNjEuNjEsMCwwLDAsMjQsMTUuOTFabTAsNC4xOWEuNjEuNjEsMCwxLDAsLjYxLjYxQS42MS42MSwwLDAsMCwyNCwyMC4xWk0xMi43NCwyNC42NGEyLjYyLDIuNjIsMCwwLDAsMi42MiwyLjYyaDkuMjhhMi42MiwyLjYyLDAsMCwwLDIuNjItMi42MlYxNS4zNmEyLjYyLDIuNjIsMCwwLDAtMi42Mi0yLjYySDE1LjM2YTIuNjIsMi42MiwwLDAsMC0yLjYyLDIuNjJaTTE0LDE1LjM2QTEuNDEsMS40MSwwLDAsMSwxNS4zNiwxNGg5LjI4YTEuNDEsMS40MSwwLDAsMSwxLjQxLDEuNDF2OS4yOGExLjQxLDEuNDEsMCwwLDEtMS40MSwxLjQxSDE1LjM2QTEuNDEsMS40MSwwLDAsMSwxNCwyNC42NFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/sliderIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTAuMywxOGEzLjY0LDMuNjQsMCwwLDEsMy42NC0zLjYzSDI2LjA2QTMuNjQsMy42NCwwLDAsMSwyOS43LDE4VjIyYTMuNjQsMy42NCwwLDAsMS0zLjY0LDMuNjNIMTMuOTRBMy42NCwzLjY0LDAsMCwxLDEwLjMsMjJabTMuNjQtMi40MkEyLjQzLDIuNDMsMCwwLDAsMTEuNTEsMThWMjJhMi40MywyLjQzLDAsMCwwLDIuNDMsMi40MkgyNi4wNkEyLjQzLDIuNDMsMCwwLDAsMjguNDksMjJWMThhMi40MywyLjQzLDAsMCwwLTIuNDMtMi40MloiIHN0eWxlPSJmaWxsOiNmZmYiLz48Y2lyY2xlIGN4PSIxNS45OSIgY3k9IjIwIiByPSIyLjY0IiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/stackPanelIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTIuNzQsMTUuMzVhMi42MiwyLjYyLDAsMCwxLDIuNjItMi42M2g5LjI4YTIuNjIsMi42MiwwLDAsMSwyLjYyLDIuNjN2OS4yOGEyLjYyLDIuNjIsMCwwLDEtMi42MiwyLjYySDE1LjM2YTIuNjIsMi42MiwwLDAsMS0yLjYyLTIuNjJaTTI2LjA1LDIxLjZWMTguMzdIMTRWMjEuNlptMC00LjQ0VjE1LjM1YTEuNDEsMS40MSwwLDAsMC0xLjQxLTEuNDFIMTUuMzZBMS40MSwxLjQxLDAsMCwwLDE0LDE1LjM1djEuODFaTTI0LjY0LDI2YTEuNDEsMS40MSwwLDAsMCwxLjQxLTEuNDFWMjIuODFIMTR2MS44MkExLjQxLDEuNDEsMCwwLDAsMTUuMzYsMjZaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/imgs/textBoxIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTQuMzMsMTQuMTJhLjYxLjYxLDAsMCwxLC42LS42MUgyNS4wN2EuNjEuNjEsMCwwLDEsLjYuNjF2MS42MmEuNjEuNjEsMCwxLDEtMS4yMSwwdi0xSDIwLjYxVjI1LjI3aDEuMjFhLjYxLjYxLDAsMCwxLC42MS42MS42MS42MSwwLDAsMS0uNjEuNjFIMTguMThhLjYxLjYxLDAsMCwxLS42MS0uNjEuNjEuNjEsMCwwLDEsLjYxLS42MWgxLjIxVjE0LjczSDE1LjU0djFhLjYxLjYxLDAsMSwxLTEuMjEsMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/toolbarCollapseIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojZmZmO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTguMzQsMTEuODZjLS4xMywuMTMtLjM0LC4xMy0uNDcsMGwtMy42MS0zLjZjLS4xNC0uMTQtLjE0LS4zNywwLS41MWwzLjYxLTMuNmMuMTMtLjEzLC4zNC0uMTMsLjQ3LDAsLjEzLC4xMywuMTMsLjM0LDAsLjQ3bC0zLjQsMy4zOSwzLjQsMy4zOWMuMTMsLjEzLC4xMywuMzQsMCwuNDdabTIuNjMsMGMtLjEzLC4xMy0uMzQsLjEzLS40NywwbC0zLjYxLTMuNmMtLjE0LS4xNC0uMTQtLjM3LDAtLjUxbDMuNjEtMy42Yy4xMy0uMTMsLjM0LS4xMywuNDcsMCwuMTMsLjEzLC4xMywuMzQsMCwuNDdsLTMuNCwzLjM5LDMuNCwzLjM5Yy4xMywuMTMsLjEzLC4zNCwwLC40N1oiLz48L3N2Zz4="},"../../../tools/guiEditor/dist/imgs/toolbarExpandIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojZmZmO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTcuNjYsMTEuMzlsMy40LTMuMzktMy40LTMuMzljLS4xMy0uMTMtLjEzLS4zNCwwLS40NywuMTMtLjEzLC4zNC0uMTMsLjQ3LDBsMy42MSwzLjZjLjE0LC4xNCwuMTQsLjM3LDAsLjUxbC0zLjYxLDMuNmMtLjEzLC4xMy0uMzQsLjEzLS40NywwLS4xMy0uMTMtLjEzLS4zNCwwLS40N1ptLTIuNjMsMGwzLjQtMy4zOS0zLjQtMy4zOWMtLjEzLS4xMy0uMTMtLjM0LDAtLjQ3LC4xMy0uMTMsLjM0LS4xMywuNDcsMGwzLjYxLDMuNmMuMTQsLjE0LC4xNCwuMzcsMCwuNTFsLTMuNjEsMy42Yy0uMTMsLjEzLS4zNCwuMTMtLjQ3LDAtLjEzLS4xMy0uMTMtLjM0LDAtLjQ3WiIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/visibilityActiveIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTUsMTMuMTlhMy4yMywzLjIzLDAsMSwxLTMuMjIsMy4yMkEzLjIyLDMuMjIsMCwwLDEsMTUsMTMuMTlabTAsMS4yMWEyLDIsMCwxLDAsMiwyQTIsMiwwLDAsMCwxNSwxNC40Wm0wLTRhOC4wNiw4LjA2LDAsMCwxLDcuODIsNi4xLjYxLjYxLDAsMCwxLTEuMTguMjksNi44NCw2Ljg0LDAsMCwwLTEzLjI4LDAsLjYxLjYxLDAsMCwxLTEuMTgtLjNBOC4wNyw4LjA3LDAsMCwxLDE1LDEwLjM2WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/visibilityNotActiveIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTUsMTMuMTlhMy4yMywzLjIzLDAsMSwxLTMuMjIsMy4yMkEzLjIyLDMuMjIsMCwwLDEsMTUsMTMuMTlabTAsMS4yMWEyLDIsMCwxLDAsMiwyQTIsMiwwLDAsMCwxNSwxNC40Wm0wLTRhOC4wNiw4LjA2LDAsMCwxLDcuODIsNi4xLjYxLjYxLDAsMCwxLTEuMTguMjksNi44NCw2Ljg0LDAsMCwwLTEzLjI4LDAsLjYxLjYxLDAsMCwxLTEuMTgtLjNBOC4wNyw4LjA3LDAsMCwxLDE1LDEwLjM2WiIgc3R5bGU9ImZpbGw6Izg4OCIvPjwvc3ZnPg=="},"../../../tools/guiEditor/dist/imgs/zoomIcon.svg":l=>{l.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjcuMSwyNi4yNGwtNC00YTUuODYsNS44NiwwLDEsMC0uODYuODZsNCw0LC4wNy4wNmEuNjIuNjIsMCwwLDAsLjc5LS4wNkEuNi42LDAsMCwwLDI3LjEsMjYuMjRabS04LjUxLTNhNC42NSw0LjY1LDAsMSwxLDQuNjQtNC42NEE0LjY1LDQuNjUsMCwwLDEsMTguNTksMjMuMjNaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../tools/guiEditor/dist/index.js":(l,c,u)=>{u.r(c),u.d(c,{GUIEditor:()=>f.GUIEditor});var f=u("../../../tools/guiEditor/dist/guiEditor.js")},"../../../tools/guiEditor/dist/keyboardManager.js":(l,c,u)=>{u.r(c),u.d(c,{KeyboardManager:()=>p});var f=u("core/Misc/observable");class p{constructor(_){this._kdListener=d=>this._keyEvent(d,!0),this._kuListener=d=>this._keyEvent(d,!1),this._moveListener=d=>this._updateModifierKeys(d),this._focusOutListener=()=>this._clearKeys(),this._keys=new Set,this._hostElement=_,_.addEventListener("keydown",this._kdListener),_.addEventListener("keypress",this._kdListener),_.addEventListener("keyup",this._kuListener),_.addEventListener("mousemove",this._moveListener),_.addEventListener("focusout",this._focusOutListener),this.onKeyPressedObservable=new f.Observable}_keyEvent(_,d){switch(this._updateModifierKeys(_),_.key){case" ":this._setKeyDown("space",d);break}}_updateModifierKeys(_){this._setKeyDown("control",_.ctrlKey),this._setKeyDown("alt",_.altKey),this._setKeyDown("shift",_.shiftKey),this._setKeyDown("meta",_.metaKey)}_setKeyDown(_,d){this._keys.has(_)!==d&&(d?this._keys.add(_):this._keys.delete(_),this.onKeyPressedObservable.notifyObservers(_))}_clearKeys(){for(const _ of this._keys)this._keys.delete(_),this.onKeyPressedObservable.notifyObservers(_)}isKeyDown(_){return this._keys.has(_)}dispose(){this._hostElement.removeEventListener("keydown",this._kdListener),this._hostElement.removeEventListener("keypress",this._kdListener),this._hostElement.removeEventListener("keyup",this._kuListener),this._hostElement.removeEventListener("mousemove",this._moveListener),this._hostElement.removeEventListener("focusout",this._focusOutListener)}}},"../../../tools/guiEditor/dist/legacy/legacy.js":(l,c,u)=>{u.r(c),u.d(c,{GUIEditor:()=>f.GUIEditor});var f=u("../../../tools/guiEditor/dist/index.js");const p=typeof u.g<"u"?u.g:typeof window<"u"?window:void 0;typeof p<"u"&&(p.BABYLON=p.BABYLON||{},p.BABYLON.GuiEditor=f.GUIEditor,p.BABYLON.GUIEditor=f.GUIEditor,p.GUIEDITOR={GUIEditor:f.GUIEditor})},"../../../tools/guiEditor/dist/main.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>R});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/main.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../tools/guiEditor/dist/portal.js":(l,c,u)=>{u.r(c),u.d(c,{Portal:()=>m});var f=u("../../../../node_modules/react/index.js"),p=u("../../../../node_modules/react-dom/index.js");class m extends f.Component{render(){return p.createPortal(this.props.children,this.props.globalState.hostElement)}}},"../../../tools/guiEditor/dist/scss/commandBar.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>R});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/scss/commandBar.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../tools/guiEditor/dist/scss/header.scss":(l,c,u)=>{u.r(c),u.d(c,{default:()=>R});var f=u("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),p=u.n(f),m=u("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),_=u.n(m),d=u("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),h=u.n(d),x=u("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),A=u.n(x),S=u("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),E=u.n(S),b=u("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),M=u.n(b),T=u("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../tools/guiEditor/dist/scss/header.scss"),O={};O.styleTagTransform=M(),O.setAttributes=A(),O.insert=h().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),p()(T.default,O);const R=T.default&&T.default.locals?T.default.locals:void 0},"../../../tools/guiEditor/dist/tools.js":(l,c,u)=>{u.r(c),u.d(c,{Tools:()=>p});var f=u("core/Misc/observable");class p{static LookForItems(_,d,h=!0){if(d.length==0)return!1;if(!h&&d.includes(_))return!0;const x=_.getChildren?_.getChildren():_.children;if(x){for(const A of x)if(p.LookForItems(A,d,!1))return!0}return!1}static _RecursiveRemoveHiddenMeshesAndHoistChildren(_){const d=[];for(const h of _)h.reservedDataStore&&h.reservedDataStore.hidden&&h.getChildMeshes?p._RecursiveRemoveHiddenMeshesAndHoistChildren(h.getChildMeshes()).forEach(x=>{d.push(x)}):(!h.reservedDataStore||!h.reservedDataStore.hidden)&&d.push(h);return d}static SortAndFilter(_,d){if(!d)return[];const h=p._RecursiveRemoveHiddenMeshesAndHoistChildren(d);return _&&_.reservedDataStore&&_.reservedDataStore.detachedChildren&&h.push(..._.reservedDataStore.detachedChildren),h.reverse()}static GetCellInfo(_,d){const h=_.getChildCellInfo(d);let x=parseInt(h.substring(0,h.search(":")));isNaN(x)&&(x=0);let A=parseInt(h.substring(h.search(":")+1));return isNaN(A)&&(A=0),new f.Vector2(x,A)}static ReorderGrid(_,d,h,x){const A=[],S=[],E=_.children.length;for(let b=d;b<E;++b){const M=_.children[d];S.push(M),A.push(p.GetCellInfo(_,M)),_.removeControl(M)}_.addControl(h,x.x,x.y);for(let b=0;b<S.length;++b)_.addControl(S[b],A[b].x,A[b].y)}}},"../../../tools/guiEditor/dist/workbenchEditor.js":(l,c,u)=>{u.r(c),u.d(c,{WorkbenchEditor:()=>w});var f=u("../../../../node_modules/react/jsx-runtime.js"),p=u("../../../../node_modules/react/index.js"),m=u("../../../tools/guiEditor/dist/globalState.js"),_=u("../../../tools/guiEditor/dist/components/propertyTab/propertyTabComponent.js"),d=u("../../../tools/guiEditor/dist/portal.js"),h=u("../../../tools/guiEditor/dist/components/log/logComponent.js"),x=u("core/Misc/observable"),A=u("../../../tools/guiEditor/dist/guiNodeTools.js"),S=u("../../../tools/guiEditor/dist/diagram/workbench.js"),E=u("../../../dev/sharedUiComponents/dist/components/MessageDialog.js"),b=u("../../../tools/guiEditor/dist/components/sceneExplorer/sceneExplorerComponent.js"),M=u("../../../tools/guiEditor/dist/components/commandBarComponent.js"),T=u("../../../tools/guiEditor/dist/diagram/gizmoWrapper.js"),O=u("../../../tools/guiEditor/dist/diagram/artBoard.js"),R=u("../../../tools/guiEditor/dist/controlTypes.js");u("../../../tools/guiEditor/dist/main.scss"),u("../../../tools/guiEditor/dist/scss/header.scss");var I=u("../../../tools/guiEditor/dist/imgs/toolbarExpandIcon.svg"),N=u("../../../tools/guiEditor/dist/imgs/toolbarCollapseIcon.svg");class w extends p.Component{componentDidMount(){navigator.userAgent.indexOf("Mobile")!==-1&&((this.props.globalState.hostDocument||document).querySelector(".blocker").style.visibility="visible"),document.addEventListener("keydown",this.addToolControls),document.addEventListener("keyup",this.removePressToolControls)}componentWillUnmount(){document.removeEventListener("keydown",this.addToolControls),document.removeEventListener("keyup",this.removePressToolControls),this._onErrorMessageObserver&&this.props.globalState.onErrorMessageDialogRequiredObservable.remove(this._onErrorMessageObserver)}constructor(k){super(k),this._leftWidth=x.DataStorage.ReadNumber("LeftWidth",200),this._rightWidth=x.DataStorage.ReadNumber("RightWidth",300),this.addToolControls=Y=>{if(!(Y.target&&Y.target instanceof HTMLInputElement&&Y.target.type==="text"))switch(Y.key){case"s":case"S":this.props.globalState.tool=m.GUIEditorTool.SELECT;break;case"p":case"P":case" ":this.props.globalState.tool=m.GUIEditorTool.PAN;break;case"z":case"Z":this.props.globalState.tool=m.GUIEditorTool.ZOOM;break;case"g":case"G":this.props.globalState.outlines=!this.props.globalState.outlines;break;case"f":case"F":this.props.globalState.onFitControlsToWindowObservable.notifyObservers();break}},this.removePressToolControls=Y=>{Y.key===" "&&this.props.globalState.restorePreviousTool()},this.handlePopUp=()=>{this.setState({showPreviewPopUp:!0}),this.props.globalState.hostWindow.addEventListener("beforeunload",this.handleClosingPopUp)},this.handleClosingPopUp=()=>{this._popUpWindow.close()},this._rootRef=p.createRef(),this.state={showPreviewPopUp:!1,toolbarExpand:!0,message:""},this.props.globalState.onBackgroundColorChangeObservable.add(()=>this.forceUpdate()),this.props.globalState.onDropObservable.add(()=>{this._draggedItem!=null&&(this.props.globalState.draggedControl=this.onCreate(this._draggedItem)),this._draggedItem=null}),this._onErrorMessageObserver=this.props.globalState.onErrorMessageDialogRequiredObservable.add(Y=>{this.setState({message:Y})})}showWaitScreen(){var k;(k=this.props.globalState.hostDocument.querySelector(".wait-screen"))==null||k.classList.remove("hidden")}hideWaitScreen(){var k;(k=this.props.globalState.hostDocument.querySelector(".wait-screen"))==null||k.classList.add("hidden")}onPointerDown(k){k.button===0&&(this._moveInProgress=!0,k.currentTarget.setPointerCapture(k.pointerId))}onPointerUp(k){k.button===0&&(this._moveInProgress=!1,k.currentTarget.releasePointerCapture(k.pointerId))}resizeColumns(k,Y=!0){if(!this._moveInProgress)return;const V=k.currentTarget.ownerDocument.getElementById("gui-editor-workbench-root"),ee=this.props.globalState.hostWindow.innerWidth;Y?(this._leftWidth=Math.max(150,Math.min(ee-this._rightWidth,k.clientX-this._rootRef.current.clientLeft)),x.DataStorage.WriteNumber("LeftWidth",this._leftWidth)):(this._rightWidth=Math.max(250,Math.min(ee-this._leftWidth,this._rootRef.current.clientLeft+this._rootRef.current.clientWidth-k.clientX)),x.DataStorage.WriteNumber("RightWidth",this._rightWidth)),V.style.gridTemplateColumns=this.buildColumnLayout(),this.props.globalState.onWindowResizeObservable.notifyObservers()}buildColumnLayout(){return`${this._leftWidth}px 1fr ${this._rightWidth}px`}switchExpandedState(){this.setState({toolbarExpand:!this.state.toolbarExpand}),this.state.toolbarExpand?this._leftWidth=this._leftWidth+50:this._leftWidth=this._leftWidth-50}render(){const k=this.state.toolbarExpand?"left-panel":"left-panel expand";return(0,f.jsxs)(d.Portal,{globalState:this.props.globalState,children:[(0,f.jsx)("div",{id:"ge-header",children:(0,f.jsx)("div",{className:"command-bar",children:(0,f.jsx)(M.CommandBarComponent,{globalState:this.props.globalState})})}),(0,f.jsxs)("div",{id:"gui-editor-workbench-root",style:{gridTemplateColumns:this.buildColumnLayout()},onMouseDown:Y=>{Y.target.nodeName},ref:this._rootRef,onPointerUp:Y=>this.onPointerUp(Y),children:[(0,f.jsxs)("div",{className:k,children:[(0,f.jsx)(b.SceneExplorerComponent,{globalState:this.props.globalState,noExpand:!0}),this.createToolbar(),(0,f.jsx)("div",{id:"leftGrab",onPointerDown:Y=>this.onPointerDown(Y),onPointerMove:Y=>this.resizeColumns(Y)})]}),(0,f.jsx)(b.SceneExplorerComponent,{globalState:this.props.globalState,noExpand:!0}),this.createToolbar(),(0,f.jsxs)("div",{className:"diagram-container",onDrop:Y=>{Y.preventDefault(),this.props.globalState.onDropObservable.notifyObservers(),this.props.globalState.onParentingChangeObservable.notifyObservers(null)},onDragOver:Y=>{Y.preventDefault()},style:{backgroundColor:this.props.globalState.backgroundColor.toHexString()},children:[(0,f.jsx)(O.ArtBoardComponent,{globalState:this.props.globalState}),(0,f.jsx)(S.WorkbenchComponent,{ref:"workbenchCanvas",globalState:this.props.globalState}),(0,f.jsx)(T.GizmoWrapper,{globalState:this.props.globalState})]}),(0,f.jsxs)("div",{className:"right-panel",children:[(0,f.jsx)("div",{id:"rightGrab",onPointerDown:Y=>this.onPointerDown(Y),onPointerMove:Y=>this.resizeColumns(Y,!1)}),(0,f.jsx)(_.PropertyTabComponent,{globalState:this.props.globalState})]}),(0,f.jsx)(h.LogComponent,{globalState:this.props.globalState})]}),(0,f.jsx)(E.MessageDialog,{message:this.state.message,isError:!0}),(0,f.jsx)("div",{className:"blocker",children:"GUI Editor runs only on desktop"}),(0,f.jsx)("div",{className:"wait-screen hidden",children:"Processing...please wait"})]})}onCreate(k){const Y=A.GUINodeTools.CreateControlFromString(k),V=this.props.globalState.workbench.appendBlock(Y);return this.props.globalState.setSelection([V]),this.props.globalState.onPointerUpObservable.notifyObservers(null),this.forceUpdate(),V}createBlackLine(){const k=this.state.toolbarExpand?(0,f.jsx)("img",{src:I,className:"icon"}):(0,f.jsx)("img",{src:N,className:"icon"});return(0,f.jsx)("div",{className:"blackLine",children:(0,f.jsx)("div",{className:"arrow",onClick:()=>this.switchExpandedState(),children:k})})}createToolbarHelper(k){return k.map(Y=>(0,f.jsx)("div",{className:"toolbar-label",onDragStart:()=>{this._draggedItem=Y.className},onClick:()=>{this.onCreate(Y.className)},title:Y.className,children:Y.icon&&(0,f.jsx)("div",{className:"toolbar-icon",draggable:!0,children:(0,f.jsx)("img",{src:Y.icon,alt:Y.className,width:"40px",height:"40px"})})},Y.className))}createToolbar(){return this.state.toolbarExpand?(0,f.jsx)(f.Fragment,{children:(0,f.jsxs)("div",{className:"toolbarGrab",children:[this.createBlackLine(),(0,f.jsx)("div",{className:"toolbar-content-sub1",children:this.createToolbarHelper(R.ControlTypes)})]})}):(0,f.jsx)(f.Fragment,{children:(0,f.jsxs)("div",{className:"toolbarGrab expanded",children:[this.createBlackLine(),(0,f.jsxs)("div",{className:"toolbar-content-sub1",children:[this.createToolbarHelper(R.ControlTypes.slice(0,Math.ceil(R.ControlTypes.length/2))),this.createToolbarHelper(R.ControlTypes.slice(Math.ceil(R.ControlTypes.length/2)))]})]})})}}},"core/Misc/observable":l=>{l.exports=t},"gui/2D/controls/container":l=>{l.exports=i}},r={};function n(l){var c=r[l];if(c!==void 0)return c.exports;var u=r[l]={id:l,exports:{}};return s[l](u,u.exports,n),u.exports}n.n=l=>{var c=l&&l.__esModule?()=>l.default:()=>l;return n.d(c,{a:c}),c},n.d=(l,c)=>{for(var u in c)n.o(c,u)&&!n.o(l,u)&&Object.defineProperty(l,u,{enumerable:!0,get:c[u]})},n.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),n.o=(l,c)=>Object.prototype.hasOwnProperty.call(l,c),n.r=l=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(l,"__esModule",{value:!0})},n.nc=void 0;var o={};return(()=>{/*!**********************!*\
  !*** ./src/index.ts ***!
  \**********************/n.r(o),n.d(o,{default:()=>c,guiEditor:()=>l});var l=n("../../../tools/guiEditor/dist/legacy/legacy.js");const c=l})(),o=o.default,o})())}(Hce)),Hce.exports}class M_{constructor(){this.materials=[]}parseMTL(e,t,i,s){if(t instanceof ArrayBuffer)return;const r=t.split(`
`),n=/\s+/;let o,l=null;for(let c=0;c<r.length;c++){const u=r[c].trim();if(u.length===0||u.charAt(0)==="#")continue;const f=u.indexOf(" ");let p=f>=0?u.substring(0,f):u;p=p.toLowerCase();const m=f>=0?u.substring(f+1).trim():"";if(p==="newmtl")l&&this.materials.push(l),e._blockEntityCollection=!!s,l=new Bt(m,e),l._parentContainer=s,e._blockEntityCollection=!1;else if(p==="kd"&&l)o=m.split(n,3).map(parseFloat),l.diffuseColor=Pe.FromArray(o);else if(p==="ka"&&l)o=m.split(n,3).map(parseFloat),l.ambientColor=Pe.FromArray(o);else if(p==="ks"&&l)o=m.split(n,3).map(parseFloat),l.specularColor=Pe.FromArray(o);else if(p==="ke"&&l)o=m.split(n,3).map(parseFloat),l.emissiveColor=Pe.FromArray(o);else if(p==="ns"&&l)l.specularPower=parseFloat(m);else if(p==="d"&&l)l.alpha=parseFloat(m);else if(p==="map_ka"&&l)l.ambientTexture=M_._GetTexture(i,m,e);else if(p==="map_kd"&&l)l.diffuseTexture=M_._GetTexture(i,m,e);else if(p==="map_ks"&&l)l.specularTexture=M_._GetTexture(i,m,e);else if(p!=="map_ns")if(p==="map_bump"&&l){const _=m.split(n),d=_.indexOf("-bm");let h=null;d>=0&&(h=_[d+1],_.splice(d,2)),l.bumpTexture=M_._GetTexture(i,_.join(" "),e),l.bumpTexture&&h!==null&&(l.bumpTexture.level=parseFloat(h))}else p==="map_d"&&l&&(l.opacityTexture=M_._GetTexture(i,m,e))}l&&this.materials.push(l)}static _GetTexture(e,t,i){if(!t)return null;let s=e;if(e==="file:"){let r=t.lastIndexOf("\\");r===-1&&(r=t.lastIndexOf("/")),r>-1?s+=t.substring(r+1):s+=t}else s+=t;return new be(s,i,!1,M_.INVERT_TEXTURE_Y)}}M_.INVERT_TEXTURE_Y=!0;class an{constructor(e,t,i){this._positions=[],this._normals=[],this._uvs=[],this._colors=[],this._extColors=[],this._meshesFromObj=[],this._indicesForBabylon=[],this._wrappedPositionForBabylon=[],this._wrappedUvsForBabylon=[],this._wrappedColorsForBabylon=[],this._wrappedNormalsForBabylon=[],this._tuplePosNorm=[],this._curPositionInIndices=0,this._hasMeshes=!1,this._unwrappedPositionsForBabylon=[],this._unwrappedColorsForBabylon=[],this._unwrappedNormalsForBabylon=[],this._unwrappedUVForBabylon=[],this._triangles=[],this._materialNameFromObj="",this._objMeshName="",this._increment=1,this._isFirstMaterial=!0,this._grayColor=new St(.5,.5,.5,1),this._hasLineData=!1,this._materialToUse=e,this._babylonMeshesArray=t,this._loadingOptions=i}_isInArray(e,t){e[t[0]]||(e[t[0]]={normals:[],idx:[]});const i=e[t[0]].normals.indexOf(t[1]);return i===-1?-1:e[t[0]].idx[i]}_isInArrayUV(e,t){e[t[0]]||(e[t[0]]={normals:[],idx:[],uv:[]});const i=e[t[0]].normals.indexOf(t[1]);return i!=1&&t[2]===e[t[0]].uv[i]?e[t[0]].idx[i]:-1}_setData(e,t,i,s,r,n,o){let l;this._loadingOptions.optimizeWithUV?l=this._isInArrayUV(this._tuplePosNorm,[e,i,t]):l=this._isInArray(this._tuplePosNorm,[e,i]),l===-1?(this._indicesForBabylon.push(this._wrappedPositionForBabylon.length),this._wrappedPositionForBabylon.push(s),r=r??new Ue(0,0),this._wrappedUvsForBabylon.push(r),this._wrappedNormalsForBabylon.push(n),o!==void 0&&this._wrappedColorsForBabylon.push(o),this._tuplePosNorm[e].normals.push(i),this._tuplePosNorm[e].idx.push(this._curPositionInIndices++),this._loadingOptions.optimizeWithUV&&this._tuplePosNorm[e].uv.push(t)):this._indicesForBabylon.push(l)}_unwrapData(){try{for(let e=0;e<this._wrappedPositionForBabylon.length;e++)this._unwrappedPositionsForBabylon.push(this._wrappedPositionForBabylon[e].x*this._handednessSign,this._wrappedPositionForBabylon[e].y,this._wrappedPositionForBabylon[e].z),this._unwrappedNormalsForBabylon.push(this._wrappedNormalsForBabylon[e].x*this._handednessSign,this._wrappedNormalsForBabylon[e].y,this._wrappedNormalsForBabylon[e].z),this._unwrappedUVForBabylon.push(this._wrappedUvsForBabylon[e].x,this._wrappedUvsForBabylon[e].y),this._loadingOptions.importVertexColors&&this._unwrappedColorsForBabylon.push(this._wrappedColorsForBabylon[e].r,this._wrappedColorsForBabylon[e].g,this._wrappedColorsForBabylon[e].b,this._wrappedColorsForBabylon[e].a);this._wrappedPositionForBabylon.length=0,this._wrappedNormalsForBabylon.length=0,this._wrappedUvsForBabylon.length=0,this._wrappedColorsForBabylon.length=0,this._tuplePosNorm.length=0,this._curPositionInIndices=0}catch{throw new Error("Unable to unwrap data while parsing OBJ data.")}}_getTriangles(e,t){for(let i=t;i<e.length-1;i++)this._pushTriangle(e,i)}_getColor(e){if(this._loadingOptions.importVertexColors)return this._extColors[e]??this._colors[e]}_setDataForCurrentFaceWithPattern1(e,t){this._getTriangles(e,t);for(let i=0;i<this._triangles.length;i++){const s=parseInt(this._triangles[i])-1;this._setData(s,0,0,this._positions[s],Ue.Zero(),P.Up(),this._getColor(s))}this._triangles.length=0}_setDataForCurrentFaceWithPattern2(e,t){this._getTriangles(e,t);for(let i=0;i<this._triangles.length;i++){const s=this._triangles[i].split("/"),r=parseInt(s[0])-1,n=parseInt(s[1])-1;this._setData(r,n,0,this._positions[r],this._uvs[n]??Ue.Zero(),P.Up(),this._getColor(r))}this._triangles.length=0}_setDataForCurrentFaceWithPattern3(e,t){this._getTriangles(e,t);for(let i=0;i<this._triangles.length;i++){const s=this._triangles[i].split("/"),r=parseInt(s[0])-1,n=parseInt(s[1])-1,o=parseInt(s[2])-1;this._setData(r,n,o,this._positions[r],this._uvs[n]??Ue.Zero(),this._normals[o]??P.Up())}this._triangles.length=0}_setDataForCurrentFaceWithPattern4(e,t){this._getTriangles(e,t);for(let i=0;i<this._triangles.length;i++){const s=this._triangles[i].split("//"),r=parseInt(s[0])-1,n=parseInt(s[1])-1;this._setData(r,1,n,this._positions[r],Ue.Zero(),this._normals[n],this._getColor(r))}this._triangles.length=0}_setDataForCurrentFaceWithPattern5(e,t){this._getTriangles(e,t);for(let i=0;i<this._triangles.length;i++){const s=this._triangles[i].split("/"),r=this._positions.length+parseInt(s[0]),n=this._uvs.length+parseInt(s[1]),o=this._normals.length+parseInt(s[2]);this._setData(r,n,o,this._positions[r],this._uvs[n],this._normals[o],this._getColor(r))}this._triangles.length=0}_addPreviousObjMesh(){this._meshesFromObj.length>0&&(this._handledMesh=this._meshesFromObj[this._meshesFromObj.length-1],this._unwrapData(),this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._handledMesh.indices=this._indicesForBabylon.slice(),this._handledMesh.positions=this._unwrappedPositionsForBabylon.slice(),this._handledMesh.normals=this._unwrappedNormalsForBabylon.slice(),this._handledMesh.uvs=this._unwrappedUVForBabylon.slice(),this._handledMesh.hasLines=this._hasLineData,this._loadingOptions.importVertexColors&&(this._handledMesh.colors=this._unwrappedColorsForBabylon.slice()),this._indicesForBabylon.length=0,this._unwrappedPositionsForBabylon.length=0,this._unwrappedColorsForBabylon.length=0,this._unwrappedNormalsForBabylon.length=0,this._unwrappedUVForBabylon.length=0,this._hasLineData=!1)}_optimizeNormals(e){const t=e.getVerticesData(q.PositionKind),i=e.getVerticesData(q.NormalKind),s={};if(!t||!i)return;for(let n=0;n<t.length/3;n++){const o=t[n*3+0],l=t[n*3+1],c=t[n*3+2],u=o+"_"+l+"_"+c;let f=s[u];f||(f=[],s[u]=f),f.push(n)}const r=new P;for(const n in s){const o=s[n];if(o.length<2)continue;const l=o[0];for(let c=1;c<o.length;++c){const u=o[c];i[l*3+0]+=i[u*3+0],i[l*3+1]+=i[u*3+1],i[l*3+2]+=i[u*3+2]}r.copyFromFloats(i[l*3+0],i[l*3+1],i[l*3+2]),r.normalize();for(let c=0;c<o.length;++c){const u=o[c];i[u*3+0]=r.x,i[u*3+1]=r.y,i[u*3+2]=r.z}}e.setVerticesData(q.NormalKind,i)}static _IsLineElement(e){return e.startsWith("l")}static _IsObjectElement(e){return e.startsWith("o")}static _IsGroupElement(e){return e.startsWith("g")}static _GetZbrushMRGB(e,t){if(!e.startsWith("mrgb"))return null;if(e=e.replace("mrgb","").trim(),t)return[];const i=/[a-z0-9]/g,s=e.match(i);if(!s||s.length%8!==0)return[];const r=[];for(let n=0;n<s.length/8;n++){const o=s[n*8+2]+s[n*8+3],l=s[n*8+4]+s[n*8+5],c=s[n*8+6]+s[n*8+7];r.push(new St(parseInt(o,16)/255,parseInt(l,16)/255,parseInt(c,16)/255,1))}return r}parse(e,t,i,s,r){var u;t=t.replace(/#MRGB/g,"mrgb"),t=t.replace(/#.*$/gm,"").trim(),this._loadingOptions.useLegacyBehavior?(this._pushTriangle=(f,p)=>this._triangles.push(f[0],f[p],f[p+1]),this._handednessSign=1):i.useRightHandedSystem?(this._pushTriangle=(f,p)=>this._triangles.push(f[0],f[p+1],f[p]),this._handednessSign=1):(this._pushTriangle=(f,p)=>this._triangles.push(f[0],f[p],f[p+1]),this._handednessSign=-1);const n=t.split(`
`),o=[];let l=[];o.push(l);for(let f=0;f<n.length;f++){const p=n[f].trim().replace(/\s\s/g," ");if(!(p.length===0||p.charAt(0)==="#"))if((an._IsGroupElement(p)||an._IsObjectElement(p))&&(l=[],o.push(l)),an._IsLineElement(p)){const m=p.split(" ");for(let _=1;_<m.length-1;_++)l.push(`l ${m[_]} ${m[_+1]}`)}else l.push(p)}const c=o.flat();for(let f=0;f<c.length;f++){const p=c[f].trim().replace(/\s\s/g," ");let m;if(!(p.length===0||p.charAt(0)==="#"))if(an.VertexPattern.test(p)){if(m=p.match(/[^ ]+/g),this._positions.push(new P(parseFloat(m[1]),parseFloat(m[2]),parseFloat(m[3]))),this._loadingOptions.importVertexColors)if(m.length>=7){const _=parseFloat(m[4]),d=parseFloat(m[5]),h=parseFloat(m[6]);this._colors.push(new St(_>1?_/255:_,d>1?d/255:d,h>1?h/255:h,m.length===7||m[7]===void 0?1:parseFloat(m[7])))}else this._colors.push(this._grayColor)}else if((m=an.NormalPattern.exec(p))!==null)this._normals.push(new P(parseFloat(m[1]),parseFloat(m[2]),parseFloat(m[3])));else if((m=an.UVPattern.exec(p))!==null)this._uvs.push(new Ue(parseFloat(m[1])*this._loadingOptions.UVScaling.x,parseFloat(m[2])*this._loadingOptions.UVScaling.y));else if((m=an.FacePattern3.exec(p))!==null)this._setDataForCurrentFaceWithPattern3(m[1].trim().split(" "),1);else if((m=an.FacePattern4.exec(p))!==null)this._setDataForCurrentFaceWithPattern4(m[1].trim().split(" "),1);else if((m=an.FacePattern5.exec(p))!==null)this._setDataForCurrentFaceWithPattern5(m[1].trim().split(" "),1);else if((m=an.FacePattern2.exec(p))!==null)this._setDataForCurrentFaceWithPattern2(m[1].trim().split(" "),1);else if((m=an.FacePattern1.exec(p))!==null)this._setDataForCurrentFaceWithPattern1(m[1].trim().split(" "),1);else if((m=an.LinePattern1.exec(p))!==null)this._setDataForCurrentFaceWithPattern1(m[1].trim().split(" "),0),this._hasLineData=!0;else if((m=an.LinePattern2.exec(p))!==null)this._setDataForCurrentFaceWithPattern2(m[1].trim().split(" "),0),this._hasLineData=!0;else if(m=an._GetZbrushMRGB(p,!this._loadingOptions.importVertexColors))m.forEach(_=>{this._extColors.push(_)});else if((m=an.LinePattern3.exec(p))!==null)this._setDataForCurrentFaceWithPattern3(m[1].trim().split(" "),0),this._hasLineData=!0;else if(an.GroupDescriptor.test(p)||an.ObjectDescriptor.test(p)){const _={name:p.substring(2).trim(),indices:null,positions:null,normals:null,uvs:null,colors:null,materialName:this._materialNameFromObj,isObject:an.ObjectDescriptor.test(p)};this._addPreviousObjMesh(),this._meshesFromObj.push(_),this._hasMeshes=!0,this._isFirstMaterial=!0,this._increment=1}else if(an.UseMtlDescriptor.test(p)){if(this._materialNameFromObj=p.substring(7).trim(),!this._isFirstMaterial||!this._hasMeshes){this._addPreviousObjMesh();const _={name:(this._objMeshName||"mesh")+"_mm"+this._increment.toString(),indices:null,positions:null,normals:null,uvs:null,colors:null,materialName:this._materialNameFromObj,isObject:!1};this._increment++,this._meshesFromObj.push(_),this._hasMeshes=!0}this._hasMeshes&&this._isFirstMaterial&&(this._meshesFromObj[this._meshesFromObj.length-1].materialName=this._materialNameFromObj,this._isFirstMaterial=!1)}else an.MtlLibGroupDescriptor.test(p)?r(p.substring(7).trim()):an.SmoothDescriptor.test(p)||de.Log("Unhandled expression at line : "+p)}if(this._hasMeshes&&(this._handledMesh=this._meshesFromObj[this._meshesFromObj.length-1],this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._unwrapData(),this._handledMesh.indices=this._indicesForBabylon,this._handledMesh.positions=this._unwrappedPositionsForBabylon,this._handledMesh.normals=this._unwrappedNormalsForBabylon,this._handledMesh.uvs=this._unwrappedUVForBabylon,this._handledMesh.hasLines=this._hasLineData,this._loadingOptions.importVertexColors&&(this._handledMesh.colors=this._unwrappedColorsForBabylon)),!this._hasMeshes){let f=null;if(this._indicesForBabylon.length)this._loadingOptions.useLegacyBehavior&&this._indicesForBabylon.reverse(),this._unwrapData();else{for(const p of this._positions)this._unwrappedPositionsForBabylon.push(p.x,p.y,p.z);if(this._normals.length)for(const p of this._normals)this._unwrappedNormalsForBabylon.push(p.x,p.y,p.z);if(this._uvs.length)for(const p of this._uvs)this._unwrappedUVForBabylon.push(p.x,p.y);if(this._extColors.length)for(const p of this._extColors)this._unwrappedColorsForBabylon.push(p.r,p.g,p.b,p.a);else if(this._colors.length)for(const p of this._colors)this._unwrappedColorsForBabylon.push(p.r,p.g,p.b,p.a);this._materialNameFromObj||(f=new Bt(Rl.RandomId(),i),f.pointsCloud=!0,this._materialNameFromObj=f.name,this._normals.length||(f.disableLighting=!0,f.emissiveColor=Pe.White()))}this._meshesFromObj.push({name:Rl.RandomId(),indices:this._indicesForBabylon,positions:this._unwrappedPositionsForBabylon,colors:this._unwrappedColorsForBabylon,normals:this._unwrappedNormalsForBabylon,uvs:this._unwrappedUVForBabylon,materialName:this._materialNameFromObj,directMaterial:f,isObject:!0,hasLines:this._hasLineData})}for(let f=0;f<this._meshesFromObj.length;f++){if(e&&this._meshesFromObj[f].name){if(e instanceof Array){if(e.indexOf(this._meshesFromObj[f].name)===-1)continue}else if(this._meshesFromObj[f].name!==e)continue}this._handledMesh=this._meshesFromObj[f],i._blockEntityCollection=!!s;const p=new Ne(this._meshesFromObj[f].name,i);if(p._parentContainer=s,i._blockEntityCollection=!1,this._handledMesh._babylonMesh=p,!this._handledMesh.isObject){for(let _=f-1;_>=0;--_)if(this._meshesFromObj[_].isObject&&this._meshesFromObj[_]._babylonMesh){p.parent=this._meshesFromObj[_]._babylonMesh;break}}if(this._materialToUse.push(this._meshesFromObj[f].materialName),this._handledMesh.hasLines&&(p._internalMetadata??(p._internalMetadata={}),p._internalMetadata._isLine=!0),((u=this._handledMesh.positions)==null?void 0:u.length)===0){this._babylonMeshesArray.push(p);continue}const m=new wt;if(m.uvs=this._handledMesh.uvs,m.indices=this._handledMesh.indices,m.positions=this._handledMesh.positions,this._loadingOptions.computeNormals){const _=new Array;wt.ComputeNormals(this._handledMesh.positions,this._handledMesh.indices,_),m.normals=_}else m.normals=this._handledMesh.normals;this._loadingOptions.importVertexColors&&(m.colors=this._handledMesh.colors),m.applyToMesh(p),this._loadingOptions.invertY&&(p.scaling.y*=-1),this._loadingOptions.optimizeNormals&&this._optimizeNormals(p),this._babylonMeshesArray.push(p),this._handledMesh.directMaterial&&(p.material=this._handledMesh.directMaterial)}}}an.ObjectDescriptor=/^o/,an.GroupDescriptor=/^g/,an.MtlLibGroupDescriptor=/^mtllib /,an.UseMtlDescriptor=/^usemtl /,an.SmoothDescriptor=/^s /,an.VertexPattern=/^v(\s+[\d|.|+|\-|e|E]+){3,7}/,an.NormalPattern=/^vn(\s+[\d|.|+|\-|e|E]+)( +[\d|.|+|\-|e|E]+)( +[\d|.|+|\-|e|E]+)/,an.UVPattern=/^vt(\s+[\d|.|+|\-|e|E]+)( +[\d|.|+|\-|e|E]+)/,an.FacePattern1=/^f\s+(([\d]{1,}[\s]?){3,})+/,an.FacePattern2=/^f\s+((([\d]{1,}\/[\d]{1,}[\s]?){3,})+)/,an.FacePattern3=/^f\s+((([\d]{1,}\/[\d]{1,}\/[\d]{1,}[\s]?){3,})+)/,an.FacePattern4=/^f\s+((([\d]{1,}\/\/[\d]{1,}[\s]?){3,})+)/,an.FacePattern5=/^f\s+(((-[\d]{1,}\/-[\d]{1,}\/-[\d]{1,}[\s]?){3,})+)/,an.LinePattern1=/^l\s+(([\d]{1,}[\s]?){2,})+/,an.LinePattern2=/^l\s+((([\d]{1,}\/[\d]{1,}[\s]?){2,})+)/,an.LinePattern3=/^l\s+((([\d]{1,}\/[\d]{1,}\/[\d]{1,}[\s]?){2,})+)/;const Yce={name:"obj",extensions:".obj"};class ac{static get INVERT_TEXTURE_Y(){return M_.INVERT_TEXTURE_Y}static set INVERT_TEXTURE_Y(e){M_.INVERT_TEXTURE_Y=e}constructor(e){this.name=Yce.name,this.extensions=Yce.extensions,this._assetContainer=null,this._loadingOptions={...ac._DefaultLoadingOptions,...e??{}}}static get _DefaultLoadingOptions(){return{computeNormals:ac.COMPUTE_NORMALS,optimizeNormals:ac.OPTIMIZE_NORMALS,importVertexColors:ac.IMPORT_VERTEX_COLORS,invertY:ac.INVERT_Y,invertTextureY:ac.INVERT_TEXTURE_Y,UVScaling:ac.UV_SCALING,materialLoadingFailsSilently:ac.MATERIAL_LOADING_FAILS_SILENTLY,optimizeWithUV:ac.OPTIMIZE_WITH_UV,skipMaterials:ac.SKIP_MATERIALS,useLegacyBehavior:ac.USE_LEGACY_BEHAVIOR}}_loadMTL(e,t,i,s){const r=t+e;Le.LoadFile(r,i,void 0,void 0,!1,(n,o)=>{s(r,o)})}createPlugin(e){return new ac(e[Yce.name])}canDirectLoad(){return!1}importMeshAsync(e,t,i,s){return this._parseSolid(e,t,i,s).then(r=>({meshes:r,particleSystems:[],skeletons:[],animationGroups:[],transformNodes:[],geometries:[],lights:[],spriteManagers:[]}))}loadAsync(e,t,i){return this.importMeshAsync(null,e,t,i).then(()=>{})}loadAssetContainerAsync(e,t,i){const s=new bP(e);return this._assetContainer=s,this.importMeshAsync(null,e,t,i).then(r=>(r.meshes.forEach(n=>s.meshes.push(n)),r.meshes.forEach(n=>{const o=n.material;o&&s.materials.indexOf(o)==-1&&(s.materials.push(o),o.getActiveTextures().forEach(c=>{s.textures.indexOf(c)==-1&&s.textures.push(c)}))}),this._assetContainer=null,s)).catch(r=>{throw this._assetContainer=null,r})}_parseSolid(e,t,i,s){let r="";const n=new M_,o=[],l=[];i=i.replace(/#.*$/gm,"").trim(),new an(o,l,this._loadingOptions).parse(e,i,t,this._assetContainer,f=>{r=f});const u=[];return r!==""&&!this._loadingOptions.skipMaterials&&u.push(new Promise((f,p)=>{this._loadMTL(r,s,m=>{try{n.parseMTL(t,m,s,this._assetContainer);for(let _=0;_<n.materials.length;_++){let d=0;const h=[];let x;for(;(x=o.indexOf(n.materials[_].name,d))>-1;)h.push(x),d=x+1;if(x===-1&&h.length===0)n.materials[_].dispose();else for(let A=0;A<h.length;A++){const S=l[h[A]],E=n.materials[_];S.material=E,S.getTotalIndices()||(E.pointsCloud=!0)}}f()}catch(_){Le.Warn(`Error processing MTL file: '${r}'`),this._loadingOptions.materialLoadingFailsSilently?f():p(_)}},(m,_)=>{Le.Warn(`Error downloading MTL file: '${r}'`),this._loadingOptions.materialLoadingFailsSilently?f():p(_)})})),Promise.all(u).then(()=>{const f=p=>{var m;return!!(((m=p._internalMetadata)==null?void 0:m._isLine)??!1)};return l.forEach(p=>{if(f(p)){let m=p.material??new Bt(p.name+"_line",t);m.getBindedMeshes().filter(d=>!f(d)).length>0&&(m=m.clone(m.name+"_line")??m),m.wireframe=!0,p.material=m,p._internalMetadata&&(p._internalMetadata._isLine=void 0)}}),l})}}ac.OPTIMIZE_WITH_UV=!0,ac.INVERT_Y=!1,ac.IMPORT_VERTEX_COLORS=!1,ac.COMPUTE_NORMALS=!1,ac.OPTIMIZE_NORMALS=!1,ac.UV_SCALING=new Ue(1,1),ac.SKIP_MATERIALS=!1,ac.MATERIAL_LOADING_FAILS_SILENTLY=!0,ac.USE_LEGACY_BEHAVIOR=!1,Y9(new ac);const cIe={name:"stl",extensions:{".stl":{isBinary:!0}}};class S9{constructor(){this.solidPattern=/solid (\S*)([\S\s]*?)endsolid[ ]*(\S*)/g,this.facetsPattern=/facet([\s\S]*?)endfacet/g,this.normalPattern=/normal[\s]+([-+]?[0-9]+\.?[0-9]*([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+/g,this.vertexPattern=/vertex[\s]+([-+]?[0-9]+\.?[0-9]*([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+/g,this.name=cIe.name,this.extensions=cIe.extensions}importMesh(e,t,i,s,r){let n;if(typeof i!="string"){if(this._isBinary(i)){const o=new Ne("stlmesh",t);return this._parseBinary(o,i),r&&r.push(o),!0}i=new TextDecoder().decode(new Uint8Array(i))}for(;n=this.solidPattern.exec(i);){let o=n[1];const l=n[3];if(l&&o!=l)return Le.Error("Error in STL, solid name != endsolid name"),!1;if(e&&o){if(e instanceof Array){if(!e.indexOf(o))continue}else if(o!==e)continue}o=o||"stlmesh";const c=new Ne(o,t);this._parseASCII(c,n[2]),r&&r.push(c)}return!0}load(e,t,i){return this.importMesh(null,e,t,i,null)}loadAssetContainer(e,t,i){const s=new bP(e);return e._blockEntityCollection=!0,this.importMesh(null,e,t,i,s.meshes),e._blockEntityCollection=!1,s}_isBinary(e){const t=new DataView(e);if(t.byteLength<=80)return!1;const i=32/8*3+32/8*3*3+16/8,s=t.getUint32(80,!0);if(80+32/8+s*i===t.byteLength)return!0;const r=[115,111,108,105,100];for(let n=0;n<5;n++)if(t.getUint8(n)!==r[n])return!0;return!1}_parseBinary(e,t){const i=new DataView(t),s=i.getUint32(80,!0),r=84,n=12*4+2;let o=0;const l=new Float32Array(s*3*3),c=new Float32Array(s*3*3),u=new Uint32Array(s*3);let f=0;for(let p=0;p<s;p++){const m=r+p*n,_=i.getFloat32(m,!0),d=i.getFloat32(m+4,!0),h=i.getFloat32(m+8,!0);for(let x=1;x<=3;x++){const A=m+x*12;l[o]=i.getFloat32(A,!0),c[o]=_,S9.DO_NOT_ALTER_FILE_COORDINATES?(l[o+1]=i.getFloat32(A+4,!0),l[o+2]=i.getFloat32(A+8,!0),c[o+1]=d,c[o+2]=h):(l[o+2]=i.getFloat32(A+4,!0),l[o+1]=i.getFloat32(A+8,!0),c[o+2]=d,c[o+1]=h),o+=3}S9.DO_NOT_ALTER_FILE_COORDINATES?(u[f]=f,u[f+1]=f+2,u[f+2]=f+1,f+=3):(u[f]=f++,u[f]=f++,u[f]=f++)}e.setVerticesData(q.PositionKind,l),e.setVerticesData(q.NormalKind,c),e.setIndices(u),e.computeWorldMatrix(!0)}_parseASCII(e,t){const i=[],s=[],r=[];let n=0,o;for(;o=this.facetsPattern.exec(t);){const l=o[1],c=this.normalPattern.exec(l);if(this.normalPattern.lastIndex=0,!c)continue;const u=[Number(c[1]),Number(c[5]),Number(c[3])];let f;for(;f=this.vertexPattern.exec(l);)S9.DO_NOT_ALTER_FILE_COORDINATES?(i.push(Number(f[1]),Number(f[3]),Number(f[5])),s.push(u[0],u[2],u[1])):(i.push(Number(f[1]),Number(f[5]),Number(f[3])),s.push(u[0],u[1],u[2]));S9.DO_NOT_ALTER_FILE_COORDINATES?(r.push(n,n+2,n+1),n+=3):r.push(n++,n++,n++),this.vertexPattern.lastIndex=0}this.facetsPattern.lastIndex=0,e.setVerticesData(q.PositionKind,i),e.setVerticesData(q.NormalKind,s),e.setIndices(r),e.computeWorldMatrix(!0)}}S9.DO_NOT_ALTER_FILE_COORDINATES=!1,Y9(new S9);const Xce={name:"splat",extensions:{".splat":{isBinary:!0},".ply":{isBinary:!0},".spz":{isBinary:!0}}};var uIe;(function(a){a[a.Splat=0]="Splat",a[a.PointCloud=1]="PointCloud",a[a.Mesh=2]="Mesh",a[a.Reject=3]="Reject"})(uIe||(uIe={}));class dM{constructor(e=dM._DefaultLoadingOptions){this.name=Xce.name,this._assetContainer=null,this.extensions=Xce.extensions,this._loadingOptions=e}createPlugin(e){return new dM(e[Xce.name])}async importMeshAsync(e,t,i,s,r,n){return this._parse(e,t,i,s).then(o=>({meshes:o,particleSystems:[],skeletons:[],animationGroups:[],transformNodes:[],geometries:[],lights:[],spriteManagers:[]}))}static _BuildPointCloud(e,t){if(!t.byteLength)return!1;const i=new Uint8Array(t),s=new Float32Array(t),r=3*4+3*4+4+4,n=i.length/r,o=function(l,c){const u=s[8*c+0],f=s[8*c+1],p=s[8*c+2];l.position=new P(u,f,p);const m=i[r*c+24+0]/255,_=i[r*c+24+1]/255,d=i[r*c+24+2]/255;l.color=new St(m,_,d,1)};return e.addPoints(n,o),!0}static _BuildMesh(e,t){const i=new Ne("PLYMesh",e),s=new Uint8Array(t.data),r=new Float32Array(t.data),n=3*4+3*4+4+4,o=s.length/n,l=[],c=new wt;for(let u=0;u<o;u++){const f=r[8*u+0],p=r[8*u+1],m=r[8*u+2];l.push(f,p,m)}if(t.hasVertexColors){const u=new Float32Array(o*4);for(let f=0;f<o;f++){const p=s[n*f+24+0]/255,m=s[n*f+24+1]/255,_=s[n*f+24+2]/255;u[f*4+0]=p,u[f*4+1]=m,u[f*4+2]=_,u[f*4+3]=1}c.colors=u}return c.positions=l,c.indices=t.faces,c.applyToMesh(i),i}_parseSPZ(e,t){const i=new Uint8Array(e),s=new Uint32Array(e),r=s[2],n=i[12],o=i[13];if(i[15]||s[0]!=1347635022||s[1]!=2)return new Promise(T=>{T({mode:3,data:u,hasVertexColors:!1})});const c=3*4+3*4+4+4,u=new ArrayBuffer(c*r),f=1/(1<<o),p=new Int32Array(1),m=new Uint8Array(p.buffer),_=function(T,O){return m[0]=T[O+0],m[1]=T[O+1],m[2]=T[O+2],m[3]=T[O+2]&128?255:0,p[0]*f};let d=16;const h=new Float32Array(u),x=new Float32Array(u),A=new Uint8ClampedArray(u),S=new Uint8ClampedArray(u);let E=1,b=0;this._loadingOptions.flipY||(E=-1,b=255);for(let T=0;T<r;T++)h[T*8+0]=_(i,d+0),h[T*8+1]=E*_(i,d+3),h[T*8+2]=E*_(i,d+6),d+=9;const M=.282;for(let T=0;T<r;T++){for(let O=0;O<3;O++){const I=(i[d+r+T*3+O]-127.5)/(.15*255);A[T*32+24+O]=pd.Clamp((.5+M*I)*255,0,255)}A[T*32+24+3]=i[d+T]}d+=r*4;for(let T=0;T<r;T++)x[T*8+3+0]=Math.exp(i[d+0]/16-10),x[T*8+3+1]=Math.exp(i[d+1]/16-10),x[T*8+3+2]=Math.exp(i[d+2]/16-10),d+=3;for(let T=0;T<r;T++){const O=i[d+0],R=i[d+1]*E+b,I=i[d+2]*E+b,N=O/127.5-1,w=R/127.5-1,D=I/127.5-1;S[T*32+28+1]=O,S[T*32+28+2]=R,S[T*32+28+3]=I;const k=1-(N*N+w*w+D*D);S[T*32+28+0]=127.5+Math.sqrt(k<0?0:k)*127.5,d+=3}if(n){const O=((n+1)*(n+1)-1)*3,R=Math.ceil(O/16);let I=d;const N=[],D=t.getEngine().getCaps().maxTextureSize,k=Math.ceil(r/D);for(let Y=0;Y<R;Y++){const V=new Uint8Array(k*D*4*4);N.push(V)}for(let Y=0;Y<r;Y++)for(let V=0;V<O;V++){const ee=i[I++],K=Math.floor(V/16),ie=N[K],ne=V%16,te=Y*16;ie[ne+te]=ee}return new Promise(Y=>{Y({mode:0,data:u,hasVertexColors:!1,sh:N})})}return new Promise(T=>{T({mode:0,data:u,hasVertexColors:!1})})}_parse(e,t,i,s){const r=[],n=new ReadableStream({start(c){c.enqueue(new Uint8Array(i)),c.close()}}),o=new DecompressionStream("gzip"),l=n.pipeThrough(o);return new Promise(c=>{new Response(l).arrayBuffer().then(u=>{this._parseSPZ(u,t).then(f=>{t._blockEntityCollection=!!this._assetContainer;const p=new Gn("GaussianSplatting",null,t,this._loadingOptions.keepInRam);p._parentContainer=this._assetContainer,r.push(p),p.updateData(f.data,f.sh),t._blockEntityCollection=!1,c(r)})}).catch(()=>{dM._ConvertPLYToSplat(i).then(async u=>{switch(t._blockEntityCollection=!!this._assetContainer,u.mode){case 0:{const f=new Gn("GaussianSplatting",null,t,this._loadingOptions.keepInRam);f._parentContainer=this._assetContainer,r.push(f),f.updateData(u.data)}break;case 1:{const f=new ybe("PointCloud",1,t);dM._BuildPointCloud(f,u.data)?await f.buildMeshAsync().then(p=>{r.push(p)}):f.dispose()}break;case 2:if(u.faces)r.push(dM._BuildMesh(t,u));else throw new Error("PLY mesh doesn't contain face informations.");break;default:throw new Error("Unsupported Splat mode")}t._blockEntityCollection=!1,c(r)})})})}loadAssetContainerAsync(e,t,i){const s=new bP(e);return this._assetContainer=s,this.importMeshAsync(null,e,t,i).then(r=>(r.meshes.forEach(n=>s.meshes.push(n)),this._assetContainer=null,s)).catch(r=>{throw this._assetContainer=null,r})}loadAsync(e,t,i){return this.importMeshAsync(null,e,t,i).then(()=>{})}static _ConvertPLYToSplat(e){const t=new Uint8Array(e),i=new TextDecoder().decode(t.slice(0,1024*10)),s=`end_header
`,r=i.indexOf(s);if(r<0||!i)return new Promise(E=>{E({mode:0,data:e})});const n=parseInt(/element vertex (\d+)\n/.exec(i)[1]),o=/element face (\d+)\n/.exec(i);let l=0;o&&(l=parseInt(o[1]));const c=/element chunk (\d+)\n/.exec(i);let u=0;c&&(u=parseInt(c[1]));let f=0,p=0;const m={double:8,int:4,uint:4,float:4,short:2,ushort:2,uchar:1,list:0};let _;(function(E){E[E.Vertex=0]="Vertex",E[E.Chunk=1]="Chunk"})(_||(_={}));let d=1;const h=[],x=i.slice(0,r).split(`
`);for(const E of x)if(E.startsWith("property ")){const[,b,M]=E.split(" ");d==1?p+=m[b]:d==0&&(h.push({name:M,type:b,offset:f}),f+=m[b]),m[b]||de.Warn(`Unsupported property type: ${b}.`)}else if(E.startsWith("element ")){const[,b]=E.split(" ");b=="chunk"?d=1:b=="vertex"&&(d=0)}const A=f,S=p;return Gn.ConvertPLYWithSHToSplatAsync(e).then(E=>{const b=new DataView(e,r+s.length);let M=S*u+A*n;const T=[];if(l)for(let k=0;k<l;k++){const Y=b.getUint8(M);if(Y==3){M+=1;for(let V=0;V<Y;V++){const ee=b.getUint32(M+(2-V)*4,!0);T.push(ee)}M+=12}}if(u)return new Promise(k=>{k({mode:0,data:E.buffer,sh:E.sh,faces:T,hasVertexColors:!1})});let O=0,R=0;const I=["x","y","z","scale_0","scale_1","scale_2","opacity","rot_0","rot_1","rot_2","rot_3"],N=["red","green","blue","f_dc_0","f_dc_1","f_dc_2"];for(let k=0;k<h.length;k++){const Y=h[k];I.includes(Y.name)&&O++,N.includes(Y.name)&&R++}const w=O==I.length&&R==3,D=l?2:w?0:1;return new Promise(k=>{k({mode:D,data:E.buffer,sh:E.sh,faces:T,hasVertexColors:!!R})})})}}dM._DefaultLoadingOptions={keepInRam:!1,flipY:!1},Y9(new dM);const NJe=bz(Object.freeze(Object.defineProperty({__proto__:null,GLTF1:bRe,GLTF2:uDe,GLTFFileLoader:ku,get GLTFLoaderAnimationStartMode(){return Z9},get GLTFLoaderCoordinateSystemMode(){return SP},get GLTFLoaderState(){return C0},GLTFValidation:lZ,MTLFileLoader:M_,OBJFileLoader:ac,SPLATFileLoader:dM,STLFileLoader:S9,SolidParser:an},Symbol.toStringTag,{value:"Module"})));class wJe{static OBJ(e,t,i,s){const r=[];let n=1,o=1;t&&(i||(i="mat"),r.push("mtllib "+i+".mtl"));for(let c=0;c<e.length;c++){const u=e[c],f=u.name||`mesh${c}}`;r.push(`o ${f}`);let p=null;if(s){const N=u.computeWorldMatrix(!0);p=new me,N.invertToRef(p),u.bakeTransformIntoVertices(N)}if(t){const N=u.material;N&&r.push("usemtl "+N.id)}const m=u.geometry;if(!m){Le.Warn("No geometry is present on the mesh");continue}const _=m.getVerticesData("position"),d=m.getVerticesData("normal"),h=m.getVerticesData("uv"),x=m.getIndices();let A=0,S=0;if(!_||!x){Le.Warn("There are no position vertices or indices on the mesh!");continue}const b=e[0].getScene().useRightHandedSystem?1:-1;for(let N=0;N<_.length;N+=3)r.push("v "+_[N]*b+" "+_[N+1]+" "+_[N+2]),A++;if(d!=null)for(let N=0;N<d.length;N+=3)r.push("vn "+d[N]*b+" "+d[N+1]+" "+d[N+2]);if(h!=null)for(let N=0;N<h.length;N+=2)r.push("vt "+h[N]+" "+h[N+1]),S++;const M=["","",""],O=(u.material||u.getScene().defaultMaterial)._getEffectiveOrientation(u),[R,I]=O===ft.ClockWiseSideOrientation?[2,1]:[1,2];for(let N=0;N<x.length;N+=3){const w=[String(x[N]+n),String(x[N+R]+n),String(x[N+I]+n)],D=[String(x[N]+o),String(x[N+R]+o),String(x[N+I]+o)],k=w,Y=h!=null?D:M,V=d!=null?w:M;r.push("f "+k[0]+"/"+Y[0]+"/"+V[0]+" "+k[1]+"/"+Y[1]+"/"+V[1]+" "+k[2]+"/"+Y[2]+"/"+V[2])}s&&p&&u.bakeTransformIntoVertices(p),n+=A,o+=S}return r.join(`
`)}static MTL(e){const t=[],i=e.material;t.push("newmtl mat1"),t.push("  Ns "+i.specularPower.toFixed(4)),t.push("  Ni 1.5000"),t.push("  d "+i.alpha.toFixed(4)),t.push("  Tr 0.0000"),t.push("  Tf 1.0000 1.0000 1.0000"),t.push("  illum 2"),t.push("  Ka "+i.ambientColor.r.toFixed(4)+" "+i.ambientColor.g.toFixed(4)+" "+i.ambientColor.b.toFixed(4)),t.push("  Kd "+i.diffuseColor.r.toFixed(4)+" "+i.diffuseColor.g.toFixed(4)+" "+i.diffuseColor.b.toFixed(4)),t.push("  Ks "+i.specularColor.r.toFixed(4)+" "+i.specularColor.g.toFixed(4)+" "+i.specularColor.b.toFixed(4)),t.push("  Ke "+i.emissiveColor.r.toFixed(4)+" "+i.emissiveColor.g.toFixed(4)+" "+i.emissiveColor.b.toFixed(4));const s="";return i.ambientTexture&&t.push("  map_Ka "+s+i.ambientTexture.name),i.diffuseTexture&&t.push("  map_Kd "+s+i.diffuseTexture.name),i.specularTexture&&t.push("  map_Ks "+s+i.specularTexture.name),i.bumpTexture&&t.push("  map_bump -imfchan z "+s+i.bumpTexture.name),i.opacityTexture&&t.push("  map_d "+s+i.opacityTexture.name),t.join(`
`)}}var BJe=0;function zJe(a){if(a.endsWith(".glb"))return"model/gltf-binary";if(a.endsWith(".bin"))return"application/octet-stream";if(a.endsWith(".gltf"))return"model/gltf+json";if(a.endsWith(".jpeg")||a.endsWith(".jpg"))return"image/jpeg";if(a.endsWith(".png"))return"image/png";if(a.endsWith(".webp"))return"image/webp"}class Zce{constructor(){this.files={}}get glTFFiles(){return this.files}downloadFiles(){for(const e in this.files){const t=this.files[e],i=new Blob([t],{type:zJe(e)});Le.Download(i,e)}}}const b5=1e-6,iI=new Pe(.04,.04,.04),FJe=1024,Kce=Pe.White(),qce=Pe.Black();function kJe(a){switch(a){case"image/jpeg":return".jpg";case"image/png":return".png";case"image/webp":return".webp";case"image/avif":return".avif"}}function hIe(a,e,t){if(e<iI.r)return 0;const i=iI.r,s=a*t/(1-iI.r)+e-2*iI.r,r=iI.r-e,n=s*s-4*i*r;return pd.Clamp((-s+Math.sqrt(n))/(2*i),0,1)}function dIe(a){const e=a.diffuseColor.toLinearSpace(a.getScene().getEngine().useExactSrgbConversions).scale(.5),t=a.alpha,i=pd.Clamp(a.specularPower,0,FJe),s=F3e(i);return{baseColorFactor:[e.r,e.g,e.b,t],metallicFactor:0,roughnessFactor:s}}function fIe(a,e){e.needAlphaBlending()?a.alphaMode="BLEND":e.needAlphaTesting()&&(a.alphaMode="MASK",a.alphaCutoff=e.alphaCutOff)}function pIe(a,e,t){const i=new Uint8Array(a*e*4);for(let r=0;r<i.length;r=r+4)i[r]=i[r+1]=i[r+2]=i[r+3]=255;return Ur.CreateRGBATexture(i,a,e,t)}function mIe(a){if(a instanceof Uint8Array){const e=a.length,t=new Float32Array(a.length);for(let i=0;i<e;++i)t[i]=a[i]/255;return t}else{if(a instanceof Float32Array)return a;throw new Error("Unsupported pixel format!")}}class UJe{constructor(e){this._exporter=e,this._textureMap=new Map,this._internalTextureToImage={}}getTextureInfo(e){return e?this._textureMap.get(e)??null:null}async exportStandardMaterialAsync(e,t,i){const s=dIe(e),r={name:e.name};if(e.backFaceCulling!=null&&!e.backFaceCulling&&(e.twoSidedLighting||Le.Warn(e.name+": Back-face culling disabled and two-sided lighting disabled is not supported in glTF."),r.doubleSided=!0),i){const o=[],l=e.diffuseTexture;l&&o.push(this.exportTextureAsync(l,t).then(p=>{p&&(s.baseColorTexture=p)}));const c=e.bumpTexture;c&&o.push(this.exportTextureAsync(c,t).then(p=>{p&&(r.normalTexture=p,c.level!==1&&(r.normalTexture.scale=c.level))}));const u=e.emissiveTexture;u&&(r.emissiveFactor=[1,1,1],o.push(this.exportTextureAsync(u,t).then(p=>{p&&(r.emissiveTexture=p)})));const f=e.ambientTexture;f&&o.push(this.exportTextureAsync(f,t).then(p=>{if(p){const m={index:p.index};r.occlusionTexture=m}})),o.length>0&&(this._exporter._materialNeedsUVsSet.add(e),await Promise.all(o))}(e.alpha<1||e.opacityTexture)&&(e.alphaMode===ze.ALPHA_COMBINE?r.alphaMode="BLEND":Le.Warn(e.name+": glTF 2.0 does not support alpha mode: "+e.alphaMode.toString())),e.emissiveColor&&!e.emissiveColor.equalsWithEpsilon(qce,b5)&&(r.emissiveFactor=e.emissiveColor.asArray()),r.pbrMetallicRoughness=s,fIe(r,e),await this._finishMaterialAsync(r,e,t);const n=this._exporter._materials;return n.push(r),n.length-1}async _finishMaterialAsync(e,t,i){const s=this._exporter._extensionsPostExportMaterialAdditionalTextures("exportMaterial",e,t),r=[];for(const n of s)r.push(this.exportTextureAsync(n,i));await Promise.all(r),await this._exporter._extensionsPostExportMaterialAsync("exportMaterial",e,t)}async _getImageDataAsync(e,t,i,s){const r=ze.TEXTURETYPE_UNSIGNED_BYTE,n=this._exporter._babylonScene,o=n.getEngine(),l=o.createRawTexture(e,t,i,ze.TEXTUREFORMAT_RGBA,!1,!0,be.NEAREST_SAMPLINGMODE,null,r);o.isWebGPU?await Promise.resolve().then(()=>_z):await Promise.resolve().then(()=>UO),await Bw.ApplyPostProcess("pass",l,n,r,ze.TEXTURE_NEAREST_SAMPLINGMODE,ze.TEXTUREFORMAT_RGBA);const c=await o._readTexturePixels(l,t,i);return await BG.DumpDataAsync(t,i,c,s,void 0,!0,!0)}_resizeTexturesToSameDimensions(e,t,i){const s=e?e.getSize():{width:0,height:0},r=t?t.getSize():{width:0,height:0};let n,o;return s.width<r.width?(e&&e instanceof be?n=Bw.CreateResizedCopy(e,r.width,r.height,!0):n=pIe(r.width,r.height,i),o=t):s.width>r.width?(t&&t instanceof be?o=Bw.CreateResizedCopy(t,s.width,s.height,!0):o=pIe(s.width,s.height,i),n=e):(n=e,o=t),{texture1:n,texture2:o}}async _convertSpecularGlossinessTexturesToMetallicRoughnessAsync(e,t,i,s){var o;const r=new Array;if(!(e||t))return Promise.reject("diffuse and specular glossiness textures are not defined!");const n=e?e.getScene():t?t.getScene():null;if(n){const l=this._resizeTexturesToSameDimensions(e,t,n),c=(o=l.texture1)==null?void 0:o.getSize();let u,f;const p=c.width,m=c.height,_=await l.texture1.readPixels(),d=await l.texture2.readPixels();if(_)u=mIe(_);else return Promise.reject("Failed to retrieve pixels from diffuse texture!");if(d)f=mIe(d);else return Promise.reject("Failed to retrieve pixels from specular glossiness texture!");const h=f.byteLength,x=new Uint8Array(h),A=new Uint8Array(h),S=4,E=qce;let b=0,M=0;for(let I=0;I<m;++I)for(let N=0;N<p;++N){const w=(p*I+N)*S,D=new Pe(u[w],u[w+1],u[w+2]).toLinearSpace(n.getEngine().useExactSrgbConversions).multiply(i.diffuseColor),k=new Pe(f[w],f[w+1],f[w+2]).toLinearSpace(n.getEngine().useExactSrgbConversions).multiply(i.specularColor),Y=f[w+3]*i.glossiness,V={diffuseColor:D,specularColor:k,glossiness:Y},ee=this._convertSpecularGlossinessToMetallicRoughness(V);E.r=Math.max(E.r,ee.baseColor.r),E.g=Math.max(E.g,ee.baseColor.g),E.b=Math.max(E.b,ee.baseColor.b),b=Math.max(b,ee.metallic),M=Math.max(M,ee.roughness),A[w]=ee.baseColor.r*255,A[w+1]=ee.baseColor.g*255,A[w+2]=ee.baseColor.b*255,A[w+3]=l.texture1.hasAlpha?u[w+3]*255:255,x[w]=0,x[w+1]=ee.roughness*255,x[w+2]=ee.metallic*255,x[w+3]=255}const T={baseColor:E,metallic:b,roughness:M};let O=!1,R=!1;for(let I=0;I<m;++I)for(let N=0;N<p;++N){const w=(p*I+N)*S;A[w]/=T.baseColor.r>b5?T.baseColor.r:1,A[w+1]/=T.baseColor.g>b5?T.baseColor.g:1,A[w+2]/=T.baseColor.b>b5?T.baseColor.b:1;const k=Pe.FromInts(A[w],A[w+1],A[w+2]).toGammaSpace(n.getEngine().useExactSrgbConversions);A[w]=k.r*255,A[w+1]=k.g*255,A[w+2]=k.b*255,k.equalsWithEpsilon(Kce,b5)||(R=!0),x[w+1]/=T.roughness>b5?T.roughness:1,x[w+2]/=T.metallic>b5?T.metallic:1,Pe.FromInts(255,x[w+1],x[w+2]).equalsWithEpsilon(Kce,b5)||(O=!0)}return O&&r.push(this._getImageDataAsync(x,p,m,s).then(I=>{T.metallicRoughnessTextureData=I})),R&&r.push(this._getImageDataAsync(A,p,m,s).then(I=>{T.baseColorTextureData=I})),Promise.all(r).then(()=>T)}else return Promise.reject("_ConvertSpecularGlossinessTexturesToMetallicRoughness: Scene from textures is missing!")}_convertSpecularGlossinessToMetallicRoughness(e){const t=this._getPerceivedBrightness(e.diffuseColor),i=this._getPerceivedBrightness(e.specularColor),s=1-this._getMaxComponent(e.specularColor),r=hIe(t,i,s),n=e.diffuseColor.scale(s/(1-iI.r)/Math.max(1-r)),o=e.specularColor.subtract(iI.scale(1-r)).scale(1/Math.max(r));let l=Pe.Lerp(n,o,r*r);return l=l.clampToRef(0,1,l),{baseColor:l,metallic:r,roughness:1-e.glossiness}}_getPerceivedBrightness(e){return e?Math.sqrt(.299*e.r*e.r+.587*e.g*e.g+.114*e.b*e.b):0}_getMaxComponent(e){return e?Math.max(e.r,Math.max(e.g,e.b)):0}async _convertMetalRoughFactorsToMetallicRoughnessAsync(e,t,i,s){const r=[],n={baseColor:e._albedoColor,metallic:e._metallic,roughness:e._roughness};if(s){e._albedoTexture&&r.push(this.exportTextureAsync(e._albedoTexture,t).then(c=>{c&&(i.baseColorTexture=c)}));const l=e._metallicTexture;l&&r.push(this.exportTextureAsync(l,t).then(c=>{c&&(i.metallicRoughnessTexture=c)}))}return r.length>0&&(this._exporter._materialNeedsUVsSet.add(e),await Promise.all(r)),n}_getTextureSampler(e){const t={};if(!e||!(e instanceof be))return t;const i=this._getGLTFTextureWrapMode(e.wrapU);i!==10497&&(t.wrapS=i);const s=this._getGLTFTextureWrapMode(e.wrapV);switch(s!==10497&&(t.wrapT=s),e.samplingMode){case be.LINEAR_LINEAR:{t.magFilter=9729,t.minFilter=9729;break}case be.LINEAR_NEAREST:{t.magFilter=9729,t.minFilter=9728;break}case be.NEAREST_LINEAR:{t.magFilter=9728,t.minFilter=9729;break}case be.NEAREST_LINEAR_MIPLINEAR:{t.magFilter=9728,t.minFilter=9987;break}case be.NEAREST_NEAREST:{t.magFilter=9728,t.minFilter=9728;break}case be.NEAREST_LINEAR_MIPNEAREST:{t.magFilter=9728,t.minFilter=9985;break}case be.LINEAR_NEAREST_MIPNEAREST:{t.magFilter=9729,t.minFilter=9984;break}case be.LINEAR_NEAREST_MIPLINEAR:{t.magFilter=9729,t.minFilter=9986;break}case be.NEAREST_NEAREST_MIPLINEAR:{t.magFilter=9728,t.minFilter=9986;break}case be.LINEAR_LINEAR_MIPLINEAR:{t.magFilter=9729,t.minFilter=9987;break}case be.LINEAR_LINEAR_MIPNEAREST:{t.magFilter=9729,t.minFilter=9985;break}case be.NEAREST_NEAREST_MIPNEAREST:{t.magFilter=9728,t.minFilter=9984;break}}return t}_getGLTFTextureWrapMode(e){switch(e){case be.WRAP_ADDRESSMODE:return 10497;case be.CLAMP_ADDRESSMODE:return 33071;case be.MIRROR_ADDRESSMODE:return 33648;default:return Le.Error(`Unsupported Texture Wrap Mode ${e}!`),10497}}async _convertSpecGlossFactorsToMetallicRoughnessAsync(e,t,i,s){const r={diffuseColor:e._albedoColor,specularColor:e._reflectivityColor,glossiness:e._microSurface},n=e._albedoTexture,o=e._reflectivityTexture,l=e._useMicroSurfaceFromReflectivityMapAlpha;if(o&&!l)return Promise.reject("_ConvertPBRMaterial: Glossiness values not included in the reflectivity texture are currently not supported");if((n||o)&&s){this._exporter._materialNeedsUVsSet.add(e);const c=this._exportTextureSampler(n||o),u=await this._convertSpecularGlossinessTexturesToMetallicRoughnessAsync(n,o,r,t),f=this._exporter._textures;if(u.baseColorTextureData){const p=this._exportImage(`baseColor${f.length}`,t,u.baseColorTextureData);i.baseColorTexture=this._exportTextureInfo(p,c,n==null?void 0:n.coordinatesIndex)}if(u.metallicRoughnessTextureData){const p=this._exportImage(`metallicRoughness${f.length}`,t,u.metallicRoughnessTextureData);i.metallicRoughnessTexture=this._exportTextureInfo(p,c,o==null?void 0:o.coordinatesIndex)}return u}else return this._convertSpecularGlossinessToMetallicRoughness(r)}async exportPBRMaterialAsync(e,t,i){const s={},r={name:e.name},n=e.isMetallicWorkflow();if(n){const c=e._albedoColor,u=e.alpha;c&&(s.baseColorFactor=[c.r,c.g,c.b,u])}const o=n?await this._convertMetalRoughFactorsToMetallicRoughnessAsync(e,t,s,i):await this._convertSpecGlossFactorsToMetallicRoughnessAsync(e,t,s,i);await this._setMetallicRoughnessPbrMaterialAsync(o,e,r,s,t,i),await this._finishMaterialAsync(r,e,t);const l=this._exporter._materials;return l.push(r),l.length-1}async _setMetallicRoughnessPbrMaterialAsync(e,t,i,s,r,n){if(fIe(i,t),(!e.baseColor.equalsWithEpsilon(Kce,b5)||!pd.WithinEpsilon(t.alpha,1,b5))&&(s.baseColorFactor=[e.baseColor.r,e.baseColor.g,e.baseColor.b,t.alpha]),e.metallic!=null&&e.metallic!==1&&(s.metallicFactor=e.metallic),e.roughness!=null&&e.roughness!==1&&(s.roughnessFactor=e.roughness),t.backFaceCulling!=null&&!t.backFaceCulling&&(t._twoSidedLighting||Le.Warn(t.name+": Back-face culling disabled and two-sided lighting disabled is not supported in glTF."),i.doubleSided=!0),n){const l=[],c=t._bumpTexture;c&&l.push(this.exportTextureAsync(c,r).then(p=>{p&&(i.normalTexture=p,c.level!==1&&(i.normalTexture.scale=c.level))}));const u=t._ambientTexture;u&&l.push(this.exportTextureAsync(u,r).then(p=>{if(p){const m={index:p.index,texCoord:p.texCoord,extensions:p.extensions};i.occlusionTexture=m;const _=t._ambientTextureStrength;_&&(m.strength=_)}}));const f=t._emissiveTexture;f&&l.push(this.exportTextureAsync(f,r).then(p=>{p&&(i.emissiveTexture=p)})),l.length>0&&(this._exporter._materialNeedsUVsSet.add(t),await Promise.all(l))}const o=t._emissiveColor;o.equalsWithEpsilon(qce,b5)||(i.emissiveFactor=o.asArray()),i.pbrMetallicRoughness=s}_getPixelsFromTexture(e){return e.textureType===ze.TEXTURETYPE_UNSIGNED_BYTE,e.readPixels()}async exportTextureAsync(e,t){const i=this._exporter._extensionsPreExportTextureAsync("exporter",e,t);return i?i.then(s=>s?this._exportTextureInfoAsync(s,t):this._exportTextureInfoAsync(e,t)):this._exportTextureInfoAsync(e,t)}async _exportTextureInfoAsync(e,t){let i=this._textureMap.get(e);if(!i){const s=await this._getPixelsFromTexture(e);if(!s)return null;const r=this._exportTextureSampler(e),n=e.mimeType;if(n)switch(n){case"image/jpeg":case"image/png":case"image/webp":t=n;break;default:Le.Warn(`Unsupported media type: ${n}`);break}const o=this._internalTextureToImage,l=e.getInternalTexture().uniqueId;o[l]||(o[l]={});let c=o[l][t];if(c===void 0){const u=e.getSize();c=(async()=>{const f=await this._getImageDataAsync(s,u.width,u.height,t);return this._exportImage(e.name,t,f)})(),o[l][t]=c}i=this._exportTextureInfo(await c,r,e.coordinatesIndex),this._textureMap.set(e,i),this._exporter._extensionsPostExportTextures("exporter",i,e)}return i}_exportImage(e,t,i){const s=this._exporter._images;let r;if(this._exporter._shouldUseGlb){r={name:e,mimeType:t,bufferView:void 0};const n=this._exporter._bufferManager.createBufferView(new Uint8Array(i));this._exporter._bufferManager.setBufferView(r,n)}else{const n=e.replace(/\.\/|\/|\.\\|\\/g,"_"),o=kJe(t);let l=n+o;s.some(c=>c.uri===l)&&(l=`${n}_${Le.RandomId()}${o}`),r={name:e,uri:l},this._exporter._imageData[l]={data:i,mimeType:t}}return s.push(r),s.length-1}_exportTextureInfo(e,t,i){const s=this._exporter._textures;let r=s.findIndex(o=>o.sampler==t&&o.source===e);r===-1&&(r=s.length,s.push({source:e,sampler:t}));const n={index:r};return i&&(n.texCoord=i),n}_exportTextureSampler(e){const t=this._getTextureSampler(e),i=this._exporter._samplers,s=i.findIndex(r=>r.minFilter===t.minFilter&&r.magFilter===t.magFilter&&r.wrapS===t.wrapS&&r.wrapT===t.wrapT);return s!==-1?s:(i.push(t),i.length-1)}}const jJe=me.Compose(new P(-1,1,1),Re.Identity(),P.Zero()),gIe=new Re(0,1,0,0),Qce=1e-6,_Ie=P.Zero(),VJe=P.One();function Jce(a){switch(a){case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16;case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":return 4}}function GJe(a){return a.some(e=>e>=256)}function vIe(a){switch(a){case q.PositionKind:case q.NormalKind:case q.TangentKind:case q.ColorKind:case q.MatricesIndicesKind:case q.MatricesIndicesExtraKind:case q.MatricesWeightsKind:case q.MatricesWeightsExtraKind:case q.UVKind:case q.UV2Kind:case q.UV3Kind:case q.UV4Kind:case q.UV5Kind:case q.UV6Kind:return!0}return!1}function WJe(a,e){if(a==q.ColorKind)return e?"VEC4":"VEC3";switch(a){case q.PositionKind:case q.NormalKind:return"VEC3";case q.TangentKind:case q.MatricesIndicesKind:case q.MatricesIndicesExtraKind:case q.MatricesWeightsKind:case q.MatricesWeightsExtraKind:return"VEC4";case q.UVKind:case q.UV2Kind:case q.UV3Kind:case q.UV4Kind:case q.UV5Kind:case q.UV6Kind:return"VEC2"}throw new Error(`Unknown kind ${a}`)}function HJe(a){switch(a){case q.PositionKind:return"POSITION";case q.NormalKind:return"NORMAL";case q.TangentKind:return"TANGENT";case q.ColorKind:return"COLOR_0";case q.UVKind:return"TEXCOORD_0";case q.UV2Kind:return"TEXCOORD_1";case q.UV3Kind:return"TEXCOORD_2";case q.UV4Kind:return"TEXCOORD_3";case q.UV5Kind:return"TEXCOORD_4";case q.UV6Kind:return"TEXCOORD_5";case q.MatricesIndicesKind:return"JOINTS_0";case q.MatricesIndicesExtraKind:return"JOINTS_1";case q.MatricesWeightsKind:return"WEIGHTS_0";case q.MatricesWeightsExtraKind:return"WEIGHTS_1"}throw new Error(`Unknown kind: ${a}`)}function AIe(a){switch(a){case ft.TriangleFillMode:return 4;case ft.TriangleStripDrawMode:return 5;case ft.TriangleFanDrawMode:return 6;case ft.PointListDrawMode:case ft.PointFillMode:return 0;case ft.LineLoopDrawMode:return 2;case ft.LineListDrawMode:return 1;case ft.LineStripDrawMode:return 3}throw new Error(`Unknown fill mode: ${a}`)}function YJe(a){switch(a){case ft.TriangleFillMode:case ft.TriangleStripDrawMode:case ft.TriangleFanDrawMode:return!0}return!1}function CIe(a){const e=Math.sqrt(a.x*a.x+a.y*a.y+a.z*a.z);e>0&&(a.x/=e,a.y/=e,a.z/=e)}function pR(a){return a.x*=-1,a}function ZY(a){return a.x*=-1,a.y*=-1,a}function XJe(a){let e=P.FromArrayToRef(a.translation||[0,0,0],0,ae.Vector3[0]),t=Re.FromArrayToRef(a.rotation||[0,0,0,1],0,ae.Quaternion[0]);e=pR(e),t=ZY(t),e.equalsWithEpsilon(_Ie,Qce)?delete a.translation:a.translation=e.asArray(),Re.IsIdentity(t)?delete a.rotation:a.rotation=t.asArray()}function xIe(a){return a.multiplyInPlace(gIe)}function ZJe(a){const e=Re.FromArrayToRef(a.rotation||[0,0,0,1],0,ae.Quaternion[1]);gIe.multiplyToRef(e,e),a.rotation=e.asArray()}function KJe(a,e){const t=P.FromArrayToRef(e.translation||[0,0,0],0,ae.Vector3[0]),i=Re.FromArrayToRef(e.rotation||[0,0,0,1],0,ae.Quaternion[0]),s=P.FromArrayToRef(e.scale||[1,1,1],0,ae.Vector3[1]),r=me.ComposeToRef(s,i,t,ae.Matrix[0]),n=P.FromArrayToRef(a.translation||[0,0,0],0,ae.Vector3[2]),o=Re.FromArrayToRef(a.rotation||[0,0,0,1],0,ae.Quaternion[1]),l=P.FromArrayToRef(a.scale||[1,1,1],0,ae.Vector3[1]),c=me.ComposeToRef(l,o,n,ae.Matrix[1]);r.multiplyToRef(c,c),c.decompose(s,i,t),t.equalsWithEpsilon(_Ie,Qce)?delete e.translation:e.translation=t.asArray(),Re.IsIdentity(i)?delete e.rotation:e.rotation=i.asArray(),s.equalsWithEpsilon(VJe,Qce)?delete e.scale:e.scale=s.asArray()}function bIe(a,e){return e instanceof Si&&e.getChildren().length==1&&a.getChildren().length==0}function qJe(a,e){if(!(a instanceof Si))return!1;if(e){if(!a.getWorldMatrix().isIdentity())return!1}else if(!a.getWorldMatrix().multiplyToRef(jJe,ae.Matrix[0]).isIdentity())return!1;return!(a instanceof Ne&&a.geometry||a instanceof $x&&a.sourceMesh.geometry)}function QJe(a,e,t,i){if(a instanceof Uint16Array||a instanceof Uint32Array)return a;if(a instanceof Int32Array)return new Uint32Array(a.buffer,a.byteOffset,a.length);const s=a.slice(e,e+t);return i?new Uint32Array(s):new Uint16Array(s)}function JJe(a){if(a instanceof Array){const e=new Float32Array(a);return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}return ArrayBuffer.isView(a)?new Uint8Array(a.buffer,a.byteOffset,a.byteLength):new Uint8Array(a)}function $Je(a,e,t,i){const{byteOffset:s,byteStride:r,type:n,normalized:o}=e,l=e.getSize(),c=new Array(l).fill(1/0),u=new Array(l).fill(-1/0);return Uv(a,s+t*r,r,l,n,i*l,o,f=>{for(let p=0;p<l;p++)c[p]=Math.min(c[p],f[p]),u[p]=Math.max(u[p],f[p])}),{min:c,max:u}}function SIe(a,e){for(const[t,i]of Object.entries(a)){const s=e[t];(Array.isArray(i)&&Array.isArray(s)&&e$e(i,s)||i===s)&&delete a[t]}return a}function e$e(a,e){return a.length===e.length&&a.every((t,i)=>t===e[i])}const t$e=new Map([[Int8Array,(a,e,t)=>a.setInt8(e,t)],[Uint8Array,(a,e,t)=>a.setUint8(e,t)],[Uint8ClampedArray,(a,e,t)=>a.setUint8(e,t)],[Int16Array,(a,e,t)=>a.setInt16(e,t,!0)],[Uint16Array,(a,e,t)=>a.setUint16(e,t,!0)],[Int32Array,(a,e,t)=>a.setInt32(e,t,!0)],[Uint32Array,(a,e,t)=>a.setUint32(e,t,!0)],[Float32Array,(a,e,t)=>a.setFloat32(e,t,!0)],[Float64Array,(a,e,t)=>a.setFloat64(e,t,!0)]]);class i$e{writeTypedArray(e){this._checkGrowBuffer(e.byteLength);const t=t$e.get(e.constructor);for(let i=0;i<e.length;i++)t(this._dataView,this._byteOffset,e[i]),this._byteOffset+=e.BYTES_PER_ELEMENT}constructor(e){this._data=new Uint8Array(e),this._dataView=new DataView(this._data.buffer),this._byteOffset=0}get byteOffset(){return this._byteOffset}getOutputData(){return new Uint8Array(this._data.buffer,0,this._byteOffset)}writeUInt8(e){this._checkGrowBuffer(1),this._dataView.setUint8(this._byteOffset,e),this._byteOffset++}writeInt8(e){this._checkGrowBuffer(1),this._dataView.setInt8(this._byteOffset,e),this._byteOffset++}writeInt16(e){this._checkGrowBuffer(2),this._dataView.setInt16(this._byteOffset,e,!0),this._byteOffset+=2}writeUInt16(e){this._checkGrowBuffer(2),this._dataView.setUint16(this._byteOffset,e,!0),this._byteOffset+=2}writeInt32(e){this._checkGrowBuffer(4),this._dataView.setInt32(this._byteOffset,e,!0),this._byteOffset+=4}writeUInt32(e){this._checkGrowBuffer(4),this._dataView.setUint32(this._byteOffset,e,!0),this._byteOffset+=4}writeFloat32(e){this._checkGrowBuffer(4),this._dataView.setFloat32(this._byteOffset,e,!0),this._byteOffset+=4}writeFloat64(e){this._checkGrowBuffer(8),this._dataView.setFloat64(this._byteOffset,e,!0),this._byteOffset+=8}_checkGrowBuffer(e){const t=this.byteOffset+e;if(t>this._data.byteLength){const i=new Uint8Array(t*2);i.set(this._data),this._data=i,this._dataView=new DataView(this._data.buffer)}}}function yIe(a){return a%4===0?4:a%2===0?2:1}class s$e{constructor(){this._bufferViewToData=new Map,this._bufferViewToProperties=new Map,this._accessorToBufferView=new Map}generateBinary(e){let t=0;this._bufferViewToData.forEach(r=>{t+=r.byteLength});const i=new i$e(t),s=Array.from(this._bufferViewToData.keys()).sort((r,n)=>yIe(n.byteLength)-yIe(r.byteLength));for(const r of s){r.byteOffset=i.byteOffset,e.push(r);const n=e.length-1,o=this.getPropertiesWithBufferView(r);for(const l of o)l.bufferView=n;i.writeTypedArray(this._bufferViewToData.get(r)),this._bufferViewToData.delete(r)}return i.getOutputData()}createBufferView(e,t){const i={buffer:0,byteOffset:void 0,byteLength:e.byteLength,byteStride:t};return this._bufferViewToData.set(i,e),i}createAccessor(e,t,i,s,r,n,o){this._verifyBufferView(e);const l={bufferView:void 0,componentType:i,count:s,type:t,min:n==null?void 0:n.min,max:n==null?void 0:n.max,normalized:o,byteOffset:r};return this.setBufferView(l,e),this._accessorToBufferView.set(l,e),l}setBufferView(e,t){this._verifyBufferView(t),this.getPropertiesWithBufferView(t).push(e)}removeBufferView(e){const t=this.getPropertiesWithBufferView(e);for(const i of t)i.bufferView!==void 0&&delete i.bufferView;this._bufferViewToData.delete(e),this._bufferViewToProperties.delete(e),this._accessorToBufferView.forEach((i,s)=>{i===e&&(s.byteOffset!==void 0&&delete s.byteOffset,this._accessorToBufferView.delete(s))})}getBufferView(e){const t=this._accessorToBufferView.get(e);return this._verifyBufferView(t),t}getPropertiesWithBufferView(e){return this._verifyBufferView(e),this._bufferViewToProperties.set(e,this._bufferViewToProperties.get(e)??[]),this._bufferViewToProperties.get(e)}getData(e){return this._verifyBufferView(e),this._bufferViewToData.get(e)}_verifyBufferView(e){if(e===void 0||!this._bufferViewToData.has(e))throw new Error(`BufferView ${e} not found in BufferManager.`)}}var Lz;(function(a){a[a.INTANGENT=0]="INTANGENT",a[a.OUTTANGENT=1]="OUTTANGENT"})(Lz||(Lz={}));class il{static _IsTransformable(e){return e&&(e instanceof Si||e instanceof _i||e instanceof vs)}static _CreateNodeAnimation(e,t,i,s,r){if(this._IsTransformable(e)){const n=[],o=[],l=t.getKeys(),c=il._CalculateMinMaxKeyFrames(l),u=il._DeduceInterpolation(l,i,s),f=u.interpolationType,p=u.shouldBakeAnimation;if(p?il._CreateBakedAnimation(e,t,i,c.min,c.max,t.framePerSecond,r,n,o,c,s):f==="LINEAR"||f==="STEP"?il._CreateLinearOrStepAnimation(e,t,i,n,o,s):f==="CUBICSPLINE"?il._CreateCubicSplineAnimation(e,t,i,n,o,s):il._CreateBakedAnimation(e,t,i,c.min,c.max,t.framePerSecond,r,n,o,c,s),n.length&&o.length)return{inputs:n,outputs:o,samplerInterpolation:f,inputsMin:p?c.min:Le.FloatRound(c.min/t.framePerSecond),inputsMax:p?c.max:Le.FloatRound(c.max/t.framePerSecond)}}return null}static _DeduceAnimationInfo(e){let t=null,i="VEC3",s=!1;const r=e.targetProperty.split(".");switch(r[0]){case"scaling":{t="scale";break}case"position":{t="translation";break}case"rotation":{i="VEC4",t="rotation";break}case"rotationQuaternion":{i="VEC4",s=!0,t="rotation";break}case"influence":{i="SCALAR",t="weights";break}default:Le.Error(`Unsupported animatable property ${r[0]}`)}return t?{animationChannelTargetPath:t,dataAccessorType:i,useQuaternion:s}:(Le.Error("animation channel target path and data accessor type could be deduced"),null)}static _CreateNodeAnimationFromNodeAnimations(e,t,i,s,r,n,o,l,c,u,f){let p;if(il._IsTransformable(e)&&e.animations)for(const m of e.animations){if(f&&!f(m))continue;const _=il._DeduceAnimationInfo(m);_&&(p={name:m.name,samplers:[],channels:[]},il._AddAnimation(`${m.name}`,m.hasRunningRuntimeAnimations?t:p,e,m,_.dataAccessorType,_.animationChannelTargetPath,s,n,o,l,_.useQuaternion,c,u),p.samplers.length&&p.channels.length&&i.push(p))}}static _CreateMorphTargetAnimationFromMorphTargetAnimations(e,t,i,s,r,n,o,l,c,u,f){let p;if(e instanceof Ne){const m=e.morphTargetManager;if(m)for(let _=0;_<m.numTargets;++_){const d=m.getTarget(_);for(const h of d.animations){if(f&&!f(h))continue;const x=new He(`${h.name}`,"influence",h.framePerSecond,h.dataType,h.loopMode,h.enableBlending),A=[],S=h.getKeys();for(let b=0;b<S.length;++b){const M=S[b];for(let T=0;T<m.numTargets;++T)T==_?A.push(M):A.push({frame:M.frame,value:0})}x.setKeys(A);const E=il._DeduceAnimationInfo(x);E&&(p={name:x.name,samplers:[],channels:[]},il._AddAnimation(h.name,h.hasRunningRuntimeAnimations?t:p,e,x,E.dataAccessorType,E.animationChannelTargetPath,s,n,o,l,E.useQuaternion,c,u,m.numTargets),p.samplers.length&&p.channels.length&&i.push(p))}}}}static _CreateNodeAndMorphAnimationFromAnimationGroups(e,t,i,s,r,n,o,l,c){var f;let u;if(e.animationGroups){const p=e.animationGroups;for(const m of p){const _=new Map,d=new Map,h=new Set,x=m.to-m.from;u={name:m.name,channels:[],samplers:[]};for(let A=0;A<m.targetedAnimations.length;++A){const S=m.targetedAnimations[A],E=S.target,b=S.animation;if(c&&!c(b))continue;const M=l.has(E);if(this._IsTransformable(E)||E.length===1&&this._IsTransformable(E[0])){const T=il._DeduceAnimationInfo(S.animation);if(T){const O=this._IsTransformable(E)?E:this._IsTransformable(E[0])?E[0]:null;O&&il._AddAnimation(`${b.name}`,u,O,b,T.dataAccessorType,T.animationChannelTargetPath,i,s,r,n,T.useQuaternion,o,M)}}else if((E instanceof Kv||E.length===1&&E[0]instanceof Kv)&&il._DeduceAnimationInfo(S.animation)){const O=E instanceof Kv?E:E[0];if(O){const R=e.morphTargetManagers.find(I=>{for(let N=0;N<I.numTargets;++N)if(I.getTarget(N)===O)return!0;return!1});if(R){const I=e.meshes.find(N=>N.morphTargetManager===R);I&&(_.has(I)||_.set(I,new Map),(f=_.get(I))==null||f.set(O,b),h.add(I),d.set(I,b))}}}}h.forEach(A=>{const S=A.morphTargetManager;let E=null;const b=[],T=d.get(A).getKeys(),O=T.length;for(let I=0;I<O;++I)for(let N=0;N<S.numTargets;++N){const w=S.getTarget(N),D=_.get(A);if(D){const k=D.get(w);k?(E||(E=new He(`${m.name}_${A.name}_MorphWeightAnimation`,"influence",k.framePerSecond,He.ANIMATIONTYPE_FLOAT,k.loopMode,k.enableBlending)),b.push(k.getKeys()[I])):b.push({frame:m.from+x/O*I,value:w.influence,inTangent:T[0].inTangent?0:void 0,outTangent:T[0].outTangent?0:void 0})}}E.setKeys(b);const R=il._DeduceAnimationInfo(E);R&&il._AddAnimation(`${m.name}_${A.name}_MorphWeightAnimation`,u,A,E,R.dataAccessorType,R.animationChannelTargetPath,i,s,r,n,R.useQuaternion,o,!1,S==null?void 0:S.numTargets)}),u.channels.length&&u.samplers.length&&t.push(u)}}}static _AddAnimation(e,t,i,s,r,n,o,l,c,u,f,p,m,_){const d=il._CreateNodeAnimation(i,s,n,f,p);let h,x,A,S,E,b;if(d){if(_){let k=0,Y=0;const V=[];for(;d.inputs.length>0;)Y=d.inputs.shift(),k%_==0&&V.push(Y),k++;d.inputs=V}const M=o.get(i),T=new Float32Array(d.inputs);h=l.createBufferView(T),x=l.createAccessor(h,"SCALAR",5126,d.inputs.length,void 0,{min:[d.inputsMin],max:[d.inputsMax]}),u.push(x),A=u.length-1;const O=new Re,R=new P,I=new P,N=i instanceof _i,w=Jce(r),D=new Float32Array(d.outputs.length*w);d.outputs.forEach(function(k,Y){let V=k;if(m)switch(n){case"translation":P.FromArrayToRef(k,0,I),pR(I),I.toArray(V);break;case"rotation":k.length===4?Re.FromArrayToRef(k,0,O):(V=new Array(4),P.FromArrayToRef(k,0,R),Re.FromEulerVectorToRef(R,O)),N?xIe(O):Re.IsIdentity(O)||ZY(O),O.toArray(V);break}else switch(n){case"rotation":k.length===4?Re.FromArrayToRef(k,0,O):(V=new Array(4),P.FromArrayToRef(k,0,R),Re.FromEulerVectorToRef(R,O)),N&&xIe(O),O.toArray(V);break}D.set(V,Y*w)}),h=l.createBufferView(D),x=l.createAccessor(h,r,5126,d.outputs.length),u.push(x),S=u.length-1,E={interpolation:d.samplerInterpolation,input:A,output:S},t.samplers.push(E),b={sampler:t.samplers.length-1,target:{node:M,path:n}},t.channels.push(b)}}static _CreateBakedAnimation(e,t,i,s,r,n,o,l,c,u,f){let p;const m=Re.Identity();let _=null,d,h=null,x=null,A=null,S=null,E=null;u.min=Le.FloatRound(s/n);const b=t.getKeys();for(let M=0,T=b.length;M<T;++M){if(E=null,x=b[M],M+1<T)if(A=b[M+1],x.value.equals&&x.value.equals(A.value)||x.value===A.value)if(M===0)E=x.frame;else continue;else E=A.frame;else{if(S=b[M-1],x.value.equals&&x.value.equals(S.value)||x.value===S.value)continue;E=r}if(E)for(let O=x.frame;O<=E;O+=o){if(d=Le.FloatRound(O/n),d===_)continue;_=d,h=d;const R={key:0,repeatCount:0,loopMode:t.loopMode};p=t._interpolate(O,R),il._SetInterpolatedValue(e,p,d,t,i,m,l,c,f)}}h&&(u.max=h)}static _ConvertFactorToVector3OrQuaternion(e,t,i,s,r){const n=il._GetBasePositionRotationOrScale(t,s,r),o=i.targetProperty.split("."),l=o?o[1]:"",c=r?Re.FromArray(n).normalize():P.FromArray(n);switch(l){case"x":case"y":case"z":{c[l]=e;break}case"w":{c.w=e;break}default:Le.Error(`glTFAnimation: Unsupported component name "${l}"!`)}return c}static _SetInterpolatedValue(e,t,i,s,r,n,o,l,c){let u;if(o.push(i),r==="weights"){l.push([t]);return}s.dataType===He.ANIMATIONTYPE_FLOAT&&(t=this._ConvertFactorToVector3OrQuaternion(t,e,s,r,c)),r==="rotation"?(c?n=t:(u=t,Re.RotationYawPitchRollToRef(u.y,u.x,u.z,n)),l.push(n.asArray())):(u=t,l.push(u.asArray()))}static _CreateLinearOrStepAnimation(e,t,i,s,r,n){for(const o of t.getKeys())s.push(o.frame/t.framePerSecond),il._AddKeyframeValue(o,t,r,i,e,n)}static _CreateCubicSplineAnimation(e,t,i,s,r,n){t.getKeys().forEach(function(o){s.push(o.frame/t.framePerSecond),il._AddSplineTangent(Lz.INTANGENT,r,i,"CUBICSPLINE",o,n),il._AddKeyframeValue(o,t,r,i,e,n),il._AddSplineTangent(Lz.OUTTANGENT,r,i,"CUBICSPLINE",o,n)})}static _GetBasePositionRotationOrScale(e,t,i){let s;return t==="rotation"?i?s=(e.rotationQuaternion??Re.Identity()).asArray():s=(e.rotation??P.Zero()).asArray():t==="translation"?s=(e.position??P.Zero()).asArray():s=(e.scaling??P.One()).asArray(),s}static _AddKeyframeValue(e,t,i,s,r,n){let o;const l=t.dataType;if(l===He.ANIMATIONTYPE_VECTOR3){let c=e.value.asArray();if(s==="rotation"){const u=P.FromArray(c);c=Re.RotationYawPitchRoll(u.y,u.x,u.z).asArray()}i.push(c)}else if(l===He.ANIMATIONTYPE_FLOAT){if(s==="weights")i.push([e.value]);else if(o=this._ConvertFactorToVector3OrQuaternion(e.value,r,t,s,n),o){if(s==="rotation"){const c=n?o:Re.RotationYawPitchRoll(o.y,o.x,o.z).normalize();i.push(c.asArray())}i.push(o.asArray())}}else l===He.ANIMATIONTYPE_QUATERNION?i.push(e.value.normalize().asArray()):Le.Error("glTFAnimation: Unsupported key frame values for animation!")}static _DeduceInterpolation(e,t,i){let s,r=!1,n;if(t==="rotation"&&!i)return{interpolationType:"LINEAR",shouldBakeAnimation:!0};for(let o=0,l=e.length;o<l;++o)if(n=e[o],n.inTangent||n.outTangent)if(s){if(s!=="CUBICSPLINE"){s="LINEAR",r=!0;break}}else s="CUBICSPLINE";else if(s){if(s==="CUBICSPLINE"||n.interpolation&&n.interpolation===1&&s!=="STEP"){s="LINEAR",r=!0;break}}else n.interpolation&&n.interpolation===1?s="STEP":s="LINEAR";return s||(s="LINEAR"),{interpolationType:s,shouldBakeAnimation:r}}static _AddSplineTangent(e,t,i,s,r,n){let o;const l=e===Lz.INTANGENT?r.inTangent:r.outTangent;if(s==="CUBICSPLINE"){if(i==="rotation")if(l)if(n)o=l.asArray();else{const c=l;o=Re.RotationYawPitchRoll(c.y,c.x,c.z).asArray()}else o=[0,0,0,0];else i==="weights"?l?o=[l]:o=[0]:l?o=l.asArray():o=[0,0,0];t.push(o)}}static _CalculateMinMaxKeyFrames(e){let t=1/0,i=-1/0;return e.forEach(function(s){t=Math.min(t,s.frame),i=Math.max(i,s.frame)}),{min:t,max:i}}}function r$e(a,e,t,i,s,r){const n={attributes:{},influence:a.influence,name:a.name},o=r?-1:1,l=4,c=P.Zero();let u=0,f=0;if(a.hasPositions){const p=a.getPositions(),m=e.getVerticesData(q.PositionKind,void 0,void 0,!0);if(m){const _=new Float32Array(m.length),d=[1/0,1/0,1/0],h=[-1/0,-1/0,-1/0];f=m.length/3,u=0;for(let S=u;S<f;++S){const E=P.FromArray(m,S*3);P.FromArray(p,S*3).subtractToRef(E,c),c.x*=o,d[0]=Math.min(d[0],c.x),h[0]=Math.max(h[0],c.x),d[1]=Math.min(d[1],c.y),h[1]=Math.max(h[1],c.y),d[2]=Math.min(d[2],c.z),h[2]=Math.max(h[2],c.z),_[S*3]=c.x,_[S*3+1]=c.y,_[S*3+2]=c.z}const x=t.createBufferView(_,l*3),A=t.createAccessor(x,"VEC3",5126,p.length/3,0,{min:d,max:h});s.push(A),n.attributes.POSITION=s.length-1}else Le.Warn(`Morph target positions for mesh ${e.name} were not exported. Mesh does not have position vertex data`)}if(a.hasNormals){const p=a.getNormals(),m=e.getVerticesData(q.NormalKind,void 0,void 0,!0);if(m){const _=new Float32Array(m.length);f=m.length/3,u=0;for(let x=u;x<f;++x){const A=P.FromArray(m,x*3).normalize();P.FromArray(p,x*3).normalize().subtractToRef(A,c),_[x*3]=c.x*o,_[x*3+1]=c.y,_[x*3+2]=c.z}const d=t.createBufferView(_,l*3),h=t.createAccessor(d,"VEC3",5126,p.length/3,0);s.push(h),n.attributes.NORMAL=s.length-1}else Le.Warn(`Morph target normals for mesh ${e.name} were not exported. Mesh does not have normals vertex data`)}if(a.hasTangents){const p=a.getTangents(),m=e.getVerticesData(q.TangentKind,void 0,void 0,!0);if(m){f=m.length/4;const _=new Float32Array(f*3);u=0;for(let x=u;x<f;++x){const A=P.FromArray(m,x*4);CIe(A);const S=P.FromArray(p,x*3);CIe(S),S.subtractToRef(A,c),_[x*3]=c.x*o,_[x*3+1]=c.y,_[x*3+2]=c.z}const d=t.createBufferView(_,l*3),h=t.createAccessor(d,"VEC3",5126,f,0);s.push(h),n.attributes.TANGENT=s.length-1}else Le.Warn(`Morph target tangents for mesh ${e.name} were not exported. Mesh does not have tangents vertex data`)}if(a.hasColors){const p=a.getColors(),m=e.getVerticesData(q.ColorKind,void 0,void 0,!0),_=e.getVertexBuffer(q.ColorKind,!0);if(m&&_){const d=_.getSize();f=m.length/d;const h=new Float32Array(f*d);u=0;for(let S=u;S<f;++S)if(d===3){const E=P.FromArray(m,S*d);P.FromArray(p,S*d).subtractToRef(E,c),h[S*3]=c.x,h[S*3+1]=c.y,h[S*3+2]=c.z}else if(d===4){const E=new Yt,b=Yt.FromArray(m,S*d);Yt.FromArray(p,S*d).subtractToRef(b,E),h[S*4]=E.x,h[S*4+1]=E.y,h[S*4+2]=E.z,h[S*4+3]=E.w}else Le.Warn(`Unsupported number of components for color attribute: ${d}`);const x=t.createBufferView(h,l*d),A=t.createAccessor(x,d===3?"VEC3":"VEC4",5126,f,0);s.push(A),n.attributes.COLOR_0=s.length-1}else Le.Warn(`Morph target colors for mesh ${e.name} were not exported. Mesh does not have colors vertex data`)}return n}class $ce{constructor(e,t){this._indicesAccessorMap=new Map,this._vertexBufferViewMap=new Map,this._vertexAccessorMap=new Map,this._remappedBufferView=new Map,this._meshMorphTargetMap=new Map,this._vertexMapColorAlpha=new Map,this._exportedNodes=new Set,this._meshMap=new Map,this.convertedToRightHandedBuffers=new Map,this.convertToRightHanded=e,this.wasAddedByNoopNode=t}getIndicesAccessor(e,t,i,s,r){var n,o,l,c;return(c=(l=(o=(n=this._indicesAccessorMap.get(e))==null?void 0:n.get(t))==null?void 0:o.get(i))==null?void 0:l.get(s))==null?void 0:c.get(r)}setIndicesAccessor(e,t,i,s,r,n){let o=this._indicesAccessorMap.get(e);o||(o=new Map,this._indicesAccessorMap.set(e,o));let l=o.get(t);l||(l=new Map,o.set(t,l));let c=l.get(i);c||(c=new Map,l.set(i,c));let u=c.get(s);u||(u=new Map,c.set(s,u)),u.set(r,n)}pushExportedNode(e){this._exportedNodes.has(e)||this._exportedNodes.add(e)}getNodesSet(){return this._exportedNodes}getVertexBufferView(e){return this._vertexBufferViewMap.get(e)}setVertexBufferView(e,t){this._vertexBufferViewMap.set(e,t)}setRemappedBufferView(e,t,i){this._remappedBufferView.set(e,new Map),this._remappedBufferView.get(e).set(t,i)}getRemappedBufferView(e,t){var i;return(i=this._remappedBufferView.get(e))==null?void 0:i.get(t)}getVertexAccessor(e,t,i){var s,r;return(r=(s=this._vertexAccessorMap.get(e))==null?void 0:s.get(t))==null?void 0:r.get(i)}setVertexAccessor(e,t,i,s){let r=this._vertexAccessorMap.get(e);r||(r=new Map,this._vertexAccessorMap.set(e,r));let n=r.get(t);n||(n=new Map,r.set(t,n)),n.set(i,s)}hasVertexColorAlpha(e){return this._vertexMapColorAlpha.get(e)||!1}setHasVertexColorAlpha(e,t){return this._vertexMapColorAlpha.set(e,t)}getMesh(e){return this._meshMap.get(e)}setMesh(e,t){this._meshMap.set(e,t)}bindMorphDataToMesh(e,t){const i=this._meshMorphTargetMap.get(e)||[];this._meshMorphTargetMap.set(e,i),i.indexOf(t)===-1&&i.push(t)}getMorphTargetsFromMesh(e){return this._meshMorphTargetMap.get(e)}}class Wn{_applyExtension(e,t,i,s){if(i>=t.length)return Promise.resolve(e);const r=s(t[i],e);return r?r.then(n=>n?this._applyExtension(n,t,i+1,s):null):this._applyExtension(e,t,i+1,s)}_applyExtensions(e,t){const i=[];for(const s of Wn._ExtensionNames)i.push(this._extensions[s]);return this._applyExtension(e,i,0,t)}_extensionsPreExportTextureAsync(e,t,i){return this._applyExtensions(t,(s,r)=>s.preExportTextureAsync&&s.preExportTextureAsync(e,r,i))}_extensionsPostExportNodeAsync(e,t,i,s,r){return this._applyExtensions(t,(n,o)=>n.postExportNodeAsync&&n.postExportNodeAsync(e,o,i,s,r,this._bufferManager))}_extensionsPostExportMaterialAsync(e,t,i){return this._applyExtensions(t,(s,r)=>s.postExportMaterialAsync&&s.postExportMaterialAsync(e,r,i))}_extensionsPostExportMaterialAdditionalTextures(e,t,i){const s=[];for(const r of Wn._ExtensionNames){const n=this._extensions[r];n.postExportMaterialAdditionalTextures&&s.push(...n.postExportMaterialAdditionalTextures(e,t,i))}return s}_extensionsPostExportTextures(e,t,i){for(const s of Wn._ExtensionNames){const r=this._extensions[s];r.postExportTexture&&r.postExportTexture(e,t,i)}}_extensionsPostExportMeshPrimitive(e){for(const t of Wn._ExtensionNames){const i=this._extensions[t];i.postExportMeshPrimitive&&i.postExportMeshPrimitive(e,this._bufferManager,this._accessors)}}async _extensionsPreGenerateBinaryAsync(){for(const e of Wn._ExtensionNames){const t=this._extensions[e];t.preGenerateBinaryAsync&&await t.preGenerateBinaryAsync(this._bufferManager)}}_forEachExtensions(e){for(const t of Wn._ExtensionNames){const i=this._extensions[t];i.enabled&&e(i)}}_extensionsOnExporting(){this._forEachExtensions(e=>{var t,i,s;e.wasUsed&&((t=this._glTF).extensionsUsed||(t.extensionsUsed=[]),this._glTF.extensionsUsed.indexOf(e.name)===-1&&this._glTF.extensionsUsed.push(e.name),e.required&&((i=this._glTF).extensionsRequired||(i.extensionsRequired=[]),this._glTF.extensionsRequired.indexOf(e.name)===-1&&this._glTF.extensionsRequired.push(e.name)),(s=this._glTF).extensions||(s.extensions={}),e.onExporting&&e.onExporting())})}_loadExtensions(){for(const e of Wn._ExtensionNames){const t=Wn._ExtensionFactories[e](this);this._extensions[e]=t}}constructor(e=ei.LastCreatedScene,t){if(this._glTF={asset:{generator:`Babylon.js v${Qt.Version}`,version:"2.0"}},this._animations=[],this._accessors=[],this._bufferViews=[],this._cameras=[],this._images=[],this._materials=[],this._meshes=[],this._nodes=[],this._samplers=[],this._scenes=[],this._skins=[],this._textures=[],this._imageData={},this._shouldUseGlb=!1,this._materialExporter=new UJe(this),this._extensions={},this._bufferManager=new s$e,this._shouldExportNodeMap=new Map,this._nodeMap=new Map,this._materialMap=new Map,this._camerasMap=new Map,this._nodesCameraMap=new Map,this._skinMap=new Map,this._nodesSkinMap=new Map,this._materialNeedsUVsSet=new Set,!e)throw new Error("No scene available to export");this._babylonScene=e,this._options={shouldExportNode:()=>!0,shouldExportAnimation:()=>!0,metadataSelector:i=>i,animationSampleRate:1/60,exportWithoutWaitingForScene:!1,exportUnusedUVs:!1,removeNoopRootNodes:!0,includeCoordinateSystemConversionNodes:!1,meshCompressionMethod:"None",...t},this._loadExtensions()}dispose(){for(const e in this._extensions)this._extensions[e].dispose()}get options(){return this._options}static RegisterExtension(e,t){Wn.UnregisterExtension(e)&&Le.Warn(`Extension with the name ${e} already exists`),Wn._ExtensionFactories[e]=t,Wn._ExtensionNames.push(e)}static UnregisterExtension(e){if(!Wn._ExtensionFactories[e])return!1;delete Wn._ExtensionFactories[e];const t=Wn._ExtensionNames.indexOf(e);return t!==-1&&Wn._ExtensionNames.splice(t,1),!0}_generateJSON(e,t,i){const s={byteLength:e};return s.byteLength&&(this._glTF.buffers=[s]),this._nodes&&this._nodes.length&&(this._glTF.nodes=this._nodes),this._meshes&&this._meshes.length&&(this._glTF.meshes=this._meshes),this._scenes&&this._scenes.length&&(this._glTF.scenes=this._scenes,this._glTF.scene=0),this._cameras&&this._cameras.length&&(this._glTF.cameras=this._cameras),this._bufferViews&&this._bufferViews.length&&(this._glTF.bufferViews=this._bufferViews),this._accessors&&this._accessors.length&&(this._glTF.accessors=this._accessors),this._animations&&this._animations.length&&(this._glTF.animations=this._animations),this._materials&&this._materials.length&&(this._glTF.materials=this._materials),this._textures&&this._textures.length&&(this._glTF.textures=this._textures),this._samplers&&this._samplers.length&&(this._glTF.samplers=this._samplers),this._skins&&this._skins.length&&(this._glTF.skins=this._skins),this._images&&this._images.length&&(this._glTF.images=this._images),this._shouldUseGlb||(s.uri=t+".bin"),i?JSON.stringify(this._glTF,null,2):JSON.stringify(this._glTF)}async generateGLTFAsync(e){const t=await this._generateBinaryAsync();this._extensionsOnExporting();const i=this._generateJSON(t.byteLength,e,!0),s=new Blob([t],{type:"application/octet-stream"}),r=e+".gltf",n=e+".bin",o=new Zce;if(o.files[r]=i,o.files[n]=s,this._imageData)for(const l in this._imageData)o.files[l]=new Blob([this._imageData[l].data],{type:this._imageData[l].mimeType});return o}async _generateBinaryAsync(){return await this._exportSceneAsync(),await this._extensionsPreGenerateBinaryAsync(),this._bufferManager.generateBinary(this._bufferViews)}_getPadding(e){const t=e%4;return t===0?t:4-t}async generateGLBAsync(e){this._shouldUseGlb=!0;const t=await this._generateBinaryAsync();this._extensionsOnExporting();const i=this._generateJSON(t.byteLength),s=e+".glb",r=12,n=8;let o=i.length,l;typeof TextEncoder<"u"&&(l=new TextEncoder().encode(i),o=l.length);const c=this._getPadding(o),u=this._getPadding(t.byteLength),f=r+2*n+o+c+t.byteLength+u,p=new ArrayBuffer(r),m=new DataView(p);m.setUint32(0,1179937895,!0),m.setUint32(4,2,!0),m.setUint32(8,f,!0);const _=new ArrayBuffer(n+o+c),d=new DataView(_);d.setUint32(0,o+c,!0),d.setUint32(4,1313821514,!0);const h=new Uint8Array(_,n);if(l)h.set(l);else for(let I=0;I<o;++I){const N=i.charCodeAt(I);N!=i.codePointAt(I)?h[I]=95:h[I]=N}const x=new Uint8Array(_,n+o);for(let R=0;R<c;++R)x[R]=32;const A=new ArrayBuffer(n),S=new DataView(A);S.setUint32(0,t.byteLength+u,!0),S.setUint32(4,5130562,!0);const E=new ArrayBuffer(u),b=new Uint8Array(E);for(let R=0;R<u;++R)b[R]=0;const M=[p,_,A,t,E],T=new Blob(M,{type:"application/octet-stream"}),O=new Zce;return O.files[s]=T,O}_setNodeTransformation(e,t,i){if(t.getPivotPoint().equalsToFloats(0,0,0)||Le.Warn("Pivot points are not supported in the glTF serializer"),!t.position.equalsToFloats(0,0,0)){const r=ae.Vector3[0].copyFrom(t.position);i&&pR(r),e.translation=r.asArray()}t.scaling.equalsToFloats(1,1,1)||(e.scale=t.scaling.asArray());const s=Re.FromEulerAngles(t.rotation.x,t.rotation.y,t.rotation.z);t.rotationQuaternion&&s.multiplyInPlace(t.rotationQuaternion),Re.IsIdentity(s)||(i&&ZY(s),e.rotation=s.normalize().asArray())}_setCameraTransformation(e,t,i,s){const r=ae.Vector3[0],n=ae.Quaternion[0];if(s!==null){const o=me.Invert(s.getWorldMatrix());t.getWorldMatrix().multiply(o).decompose(void 0,n,r)}else t.getWorldMatrix().decompose(void 0,n,r);r.equalsToFloats(0,0,0)||(e.translation=r.asArray()),Re.IsIdentity(n)||(e.rotation=n.asArray())}_listAvailableCameras(){for(const e of this._babylonScene.cameras){const t={type:e.mode===_i.PERSPECTIVE_CAMERA?"perspective":"orthographic"};if(e.name&&(t.name=e.name),t.type==="perspective")t.perspective={aspectRatio:e.getEngine().getAspectRatio(e),yfov:e.fovMode===_i.FOVMODE_VERTICAL_FIXED?e.fov:e.fov*e.getEngine().getAspectRatio(e),znear:e.minZ,zfar:e.maxZ};else if(t.type==="orthographic"){const i=e.orthoLeft&&e.orthoRight?.5*(e.orthoRight-e.orthoLeft):e.getEngine().getRenderWidth()*.5,s=e.orthoBottom&&e.orthoTop?.5*(e.orthoTop-e.orthoBottom):e.getEngine().getRenderHeight()*.5;t.orthographic={xmag:i,ymag:s,znear:e.minZ,zfar:e.maxZ}}this._camerasMap.set(e,t)}}_exportAndAssignCameras(){const e=Array.from(this._camerasMap.values());for(const t of e){const i=this._nodesCameraMap.get(t);if(i!==void 0){this._cameras.push(t);for(const s of i)s.camera=this._cameras.length-1}}}_listAvailableSkeletons(){for(const e of this._babylonScene.skeletons){if(e.bones.length<=0)continue;const t={joints:[]};this._skinMap.set(e,t)}}_exportAndAssignSkeletons(){for(const e of this._babylonScene.skeletons){if(e.bones.length<=0)continue;const t=this._skinMap.get(e);if(t==null)continue;const i={},s=[];let r=-1;for(let o=0;o<e.bones.length;++o){const l=e.bones[o],c=l.getIndex()??o;c!==-1&&(i[c]=l,c>r&&(r=c))}for(let o=0;o<=r;++o){const l=i[o];s.push(l.getAbsoluteInverseBindMatrix());const c=l.getTransformNode();if(c!==null){const u=this._nodeMap.get(c);c&&u!==null&&u!==void 0?t.joints.push(u):Le.Warn("Exporting a bone without a linked transform node is currently unsupported")}else Le.Warn("Exporting a bone without a linked transform node is currently unsupported")}const n=this._nodesSkinMap.get(t);if(t.joints.length>0&&n!==void 0){const o=s.length*64,l=new Float32Array(o/4);s.forEach((u,f)=>{l.set(u.m,f*16)});const c=this._bufferManager.createBufferView(l);this._accessors.push(this._bufferManager.createAccessor(c,"MAT4",5126,s.length)),t.inverseBindMatrices=this._accessors.length-1,this._skins.push(t);for(const u of n)u.skin=this._skins.length-1}}}async _exportSceneAsync(){const e={nodes:[]};this._babylonScene.metadata&&(this._options.metadataSelector?e.extras=this._options.metadataSelector(this._babylonScene.metadata):this._babylonScene.metadata.gltf&&(e.extras=this._babylonScene.metadata.gltf.extras));const t=new Array,i=new Array,s=new Array;for(const l of this._babylonScene.rootNodes)this._options.removeNoopRootNodes&&!this._options.includeCoordinateSystemConversionNodes&&qJe(l,this._babylonScene.useRightHandedSystem)?s.push(...l.getChildren()):this._babylonScene.useRightHandedSystem?t.push(l):i.push(l);this._listAvailableCameras(),this._listAvailableSkeletons();const r=new $ce(!0,!1);e.nodes.push(...await this._exportNodesAsync(i,r));const n=new $ce(!1,!1);e.nodes.push(...await this._exportNodesAsync(t,n));const o=new $ce(!1,!0);e.nodes.push(...await this._exportNodesAsync(s,o)),e.nodes.length&&this._scenes.push(e),this._exportAndAssignCameras(),this._exportAndAssignSkeletons(),this._babylonScene.animationGroups.length&&il._CreateNodeAndMorphAnimationFromAnimationGroups(this._babylonScene,this._animations,this._nodeMap,this._bufferManager,this._bufferViews,this._accessors,this._animationSampleRate,r.getNodesSet(),this._options.shouldExportAnimation)}_shouldExportNode(e){let t=this._shouldExportNodeMap.get(e);return t===void 0&&(t=this._options.shouldExportNode(e),this._shouldExportNodeMap.set(e,t)),t}async _exportNodesAsync(e,t){const i=new Array;this._exportBuffers(e,t);for(const s of e)await this._exportNodeAsync(s,i,t);return i}_collectBuffers(e,t,i,s,r){if(this._shouldExportNode(e)&&e instanceof Ne&&e.geometry){const n=e.geometry.getVertexBuffers();if(n)for(const l in n){if(!vIe(l))continue;const c=n[l];r.setHasVertexColorAlpha(c,e.hasVertexAlpha);const u=c._buffer,f=t.get(u)||[];t.set(u,f),f.indexOf(c)===-1&&f.push(c);const p=i.get(c)||[];i.set(c,p),p.indexOf(e)===-1&&p.push(e)}const o=e.morphTargetManager;if(o)for(let l=0;l<o.numTargets;l++){const c=o.getTarget(l),u=s.get(c)||[];s.set(c,u),u.indexOf(e)===-1&&u.push(e)}}for(const n of e.getChildren())this._collectBuffers(n,t,i,s,r)}_exportBuffers(e,t){const i=new Map,s=new Map,r=new Map;for(const l of e)this._collectBuffers(l,i,s,r,t);const n=Array.from(i.keys());for(const l of n){const c=l.getData();if(!c)throw new Error("Buffer data is not available");const u=i.get(l);if(!u)continue;const f=u[0].byteStride;if(u.some(h=>h.byteStride!==f))throw new Error("Vertex buffers pointing to the same buffer must have the same byte stride");const p=JJe(c).slice();for(const h of u){const{byteOffset:x,byteStride:A,type:S,normalized:E}=h,b=h.getSize(),M=s.get(h),T=M.reduce((O,R)=>R.getTotalVertices()>O?R.getTotalVertices():O,-Number.MAX_VALUE);switch(h.getKind()){case q.NormalKind:case q.TangentKind:{Uv(p,x,A,b,S,T*b,E,O=>{const R=Math.sqrt(O[0]*O[0]+O[1]*O[1]+O[2]*O[2]);if(R>0){const I=1/R;O[0]*=I,O[1]*=I,O[2]*=I}});break}case q.ColorKind:{const O=M.filter(w=>w.material instanceof Bt||w.material==null).length;if(O==0)break;if(O!=M.length){de.Warn("Not converting vertex color space, as buffer is shared by StandardMaterials and other material types. Results may look incorrect.");break}S==q.UNSIGNED_BYTE&&de.Warn("Converting uint8 vertex colors to linear space. Results may look incorrect.");const R=new Pe,I=new St,N=this._babylonScene.getEngine().useExactSrgbConversions;Uv(p,x,A,b,S,T*b,E,w=>{w.length===3?(R.fromArray(w,0),R.toLinearSpaceToRef(R,N),R.toArray(w,0)):(I.fromArray(w,0),I.toLinearSpaceToRef(I,N),I.toArray(w,0))})}}}if(t.convertToRightHanded){for(const h of u)switch(h.getKind()){case q.PositionKind:case q.NormalKind:case q.TangentKind:for(const x of s.get(h)){const{byteOffset:A,byteStride:S,type:E,normalized:b}=h,M=h.getSize();Uv(p,A,S,M,E,x.getTotalVertices()*M,b,T=>{T[0]=-T[0]})}}t.convertedToRightHandedBuffers.set(l,p)}const m=this._bufferManager.createBufferView(p,f);t.setVertexBufferView(l,m);const _=new Map;for(const h of u)switch(h.getKind()){case q.MatricesIndicesKind:case q.MatricesIndicesExtraKind:if(h.type==q.FLOAT)for(const x of s.get(h)){const A=h.getFloatData(x.getTotalVertices());A!==null&&_.set(h,A)}}_.size!==0&&de.Warn("Joints conversion needed: some joints are stored as floats in Babylon but GLTF requires UNSIGNED BYTES. We will perform the conversion but this might lead to unused data in the buffer.");const d=Array.from(_.keys());for(const h of d){const x=_.get(h);if(!x)continue;const A=GJe(x),S=new(A?Uint16Array:Uint8Array)(x.length);for(let b=0;b<x.length;b++)S[b]=x[b];const E=this._bufferManager.createBufferView(S,4*(A?2:1));t.setRemappedBufferView(l,h,E)}}const o=Array.from(r.keys());for(const l of o){const c=r.get(l);if(!c)continue;const u=r$e(l,c[0],this._bufferManager,this._bufferViews,this._accessors,t.convertToRightHanded);for(const f of c)t.bindMorphDataToMesh(f,u)}}async _exportNodeAsync(e,t,i){let s=this._nodeMap.get(e);if(s!==void 0){t.includes(s)||t.push(s);return}const r=await this._createNodeAsync(e,i);if(r){s=this._nodes.length,this._nodes.push(r),this._nodeMap.set(e,s),i.pushExportedNode(e),t.push(s);const o={name:"runtime animations",channels:[],samplers:[]},l=[];this._babylonScene.animationGroups.length||(il._CreateMorphTargetAnimationFromMorphTargetAnimations(e,o,l,this._nodeMap,this._nodes,this._bufferManager,this._bufferViews,this._accessors,this._animationSampleRate,i.convertToRightHanded,this._options.shouldExportAnimation),e.animations.length&&il._CreateNodeAnimationFromNodeAnimations(e,o,l,this._nodeMap,this._nodes,this._bufferManager,this._bufferViews,this._accessors,this._animationSampleRate,i.convertToRightHanded,this._options.shouldExportAnimation)),o.channels.length&&o.samplers.length&&this._animations.push(o),l.forEach(c=>{c.channels.length&&c.samplers.length&&this._animations.push(c)})}const n=r?[]:t;for(const o of e.getChildren())await this._exportNodeAsync(o,n,i);r&&n.length&&(r.children=n)}async _createNodeAsync(e,t){var r,n,o;if(!this._shouldExportNode(e))return null;const i={};if(e.name&&(i.name=e.name),e instanceof Si&&(this._setNodeTransformation(i,e,t.convertToRightHanded),e instanceof Ne||e instanceof $x)){const l=e instanceof Ne?e:e.sourceMesh;if(l.subMeshes&&l.subMeshes.length>0&&(i.mesh=await this._exportMeshAsync(l,t)),e.skeleton){const c=this._skinMap.get(e.skeleton);c!==void 0&&(this._nodesSkinMap.get(c)===void 0&&this._nodesSkinMap.set(c,[]),(r=this._nodesSkinMap.get(c))==null||r.push(i))}}if(e instanceof _i){const l=this._camerasMap.get(e);if(l){this._nodesCameraMap.get(l)===void 0&&this._nodesCameraMap.set(l,[]);const c=e.parent;if(this._setCameraTransformation(i,e,t.convertToRightHanded,c),c&&bIe(e,c)){const u=this._nodeMap.get(c);if(u){const f=this._nodes[u];return(n=this._nodesCameraMap.get(l))==null||n.push(f),null}}t.convertToRightHanded&&(XJe(i),ZJe(i)),(o=this._nodesCameraMap.get(l))==null||o.push(i)}}return await this._extensionsPostExportNodeAsync("exportNodeAsync",i,e,this._nodeMap,t.convertToRightHanded)?i:(de.Warn(`Not exporting node ${e.name}`),null)}_exportIndices(e,t,i,s,r,n,o,l,c){let u=e;c.mode=AIe(n);const f=o!==ft.CounterClockWiseSideOrientation,p=!l.wasAddedByNoopNode&&f,m=YJe(n)&&p;if(m){if(n===ft.TriangleStripDrawMode||n===ft.TriangleFanDrawMode)throw new Error("Triangle strip/fan fill mode is not implemented");c.mode=AIe(n);const _=t?new Uint32Array(s):new Uint16Array(s);if(e)for(let d=0;d+2<s;d+=3)_[d]=e[i+d]+r,_[d+1]=e[i+d+2]+r,_[d+2]=e[i+d+1]+r;else for(let d=0;d+2<s;d+=3)_[d]=d,_[d+1]=d+2,_[d+2]=d+1;u=_}else if(e&&r!==0){const _=t?new Uint32Array(s):new Uint16Array(s);for(let d=0;d<s;d++)_[d]=e[i+d]+r;u=_}if(u){let _=l.getIndicesAccessor(e,i,s,r,m);if(_===void 0){const d=QJe(u,0,s,t),h=this._bufferManager.createBufferView(d),x=t?5125:5123;this._accessors.push(this._bufferManager.createAccessor(h,"SCALAR",x,s,0)),_=this._accessors.length-1,l.setIndicesAccessor(e,i,s,r,m,_)}c.indices=_}}_exportVertexBuffer(e,t,i,s,r,n){const o=e.getKind();if(!vIe(o)||o.startsWith("uv")&&!this._options.exportUnusedUVs&&(!t||!this._materialNeedsUVsSet.has(t)))return;let l=r.getVertexAccessor(e,i,s);if(l===void 0){const c=r.convertedToRightHandedBuffers.get(e._buffer)||e._buffer.getData(),u=o===q.PositionKind?$Je(c,e,i,s):void 0,f=(o===q.MatricesIndicesKind||o===q.MatricesIndicesExtraKind)&&e.type===q.FLOAT,p=f?q.UNSIGNED_BYTE:e.type,m=f?void 0:e.normalized,_=f?r.getRemappedBufferView(e._buffer,e):r.getVertexBufferView(e._buffer),d=e.byteOffset+i*e.byteStride;this._accessors.push(this._bufferManager.createAccessor(_,WJe(o,r.hasVertexColorAlpha(e)),p,s,d,u,m)),l=this._accessors.length-1,r.setVertexAccessor(e,i,s,l)}n.attributes[HJe(o)]=l}async _exportMaterialAsync(e,t,i,s){let r=this._materialMap.get(e);if(r===void 0){const n=t&&Object.keys(t).some(o=>o.startsWith("uv"));if(e=e instanceof tf?e.subMaterials[i.materialIndex]:e,e instanceof mi)r=await this._materialExporter.exportPBRMaterialAsync(e,"image/png",n);else if(e instanceof Bt)r=await this._materialExporter.exportStandardMaterialAsync(e,"image/png",n);else{de.Warn(`Unsupported material '${e.name}' with type ${e.getClassName()}`);return}this._materialMap.set(e,r)}s.material=r}async _exportMeshAsync(e,t){var f,p,m;let i=t.getMesh(e);if(i!==void 0)return i;const s={primitives:[]};i=this._meshes.length,this._meshes.push(s),t.setMesh(e,i);const r=e.isUnIndexed?null:e.getIndices(),n=(f=e.geometry)==null?void 0:f.getVertexBuffers(),o=t.getMorphTargetsFromMesh(e),l=e instanceof $6,c=e instanceof sY,u=e.subMeshes;if(n&&u&&u.length>0)for(const _ of u){const d={attributes:{}},h=_.getMaterial()||this._babylonScene.defaultMaterial;if(c){const S={name:h.name},E=e,b=Pe.White(),M=((p=E.material)==null?void 0:p.alpha)??1,T=((m=E.greasedLineMaterial)==null?void 0:m.color)??b;(!T.equals(b)||M<1)&&(S.pbrMetallicRoughness={baseColorFactor:[...T.asArray(),M]}),this._materials.push(S),d.material=this._materials.length-1}else if(l){const S={name:h.name},E=e;(!E.color.equals(Pe.White())||E.alpha<1)&&(S.pbrMetallicRoughness={baseColorFactor:[...E.color.asArray(),E.alpha]}),this._materials.push(S),d.material=this._materials.length-1}else await this._exportMaterialAsync(h,n,_,d);const x=l||c?ft.LineListDrawMode:e.overrideRenderingFillMode??h.fillMode,A=h._getEffectiveOrientation(e);this._exportIndices(r,r?RX(r,_.indexCount,_.indexStart,_.verticesStart):_.verticesCount>65535,r?_.indexStart:_.verticesStart,r?_.indexCount:_.verticesCount,-_.verticesStart,x,A,t,d);for(const S of Object.values(n))this._exportVertexBuffer(S,h,_.verticesStart,_.verticesCount,t,d);if(o){d.targets=[];for(const S of o)d.targets.push(S.attributes)}s.primitives.push(d),this._extensionsPostExportMeshPrimitive(d)}if(o){s.weights=[],s.extras||(s.extras={}),s.extras.targetNames=[];for(const _ of o)s.weights.push(_.influence),s.extras.targetNames.push(_.name)}return i}}Wn._ExtensionNames=new Array,Wn._ExtensionFactories={};class n$e{static async GLTFAsync(e,t,i){(!i||!i.exportWithoutWaitingForScene)&&await e.whenReadyAsync();const s=new Wn(e,i),r=await s.generateGLTFAsync(t.replace(/\.[^/.]+$/,""));return s.dispose(),r}static async GLBAsync(e,t,i){(!i||!i.exportWithoutWaitingForScene)&&await e.whenReadyAsync();const s=new Wn(e,i),r=await s.generateGLBAsync(t.replace(/\.[^/.]+$/,""));return s.dispose(),r}}const eue="EXT_mesh_gpu_instancing";class MIe{constructor(e){this.name=eue,this.enabled=!0,this.required=!1,this._wasUsed=!1,this._exporter=e}dispose(){}get wasUsed(){return this._wasUsed}postExportNodeAsync(e,t,i,s,r,n){return new Promise(o=>{if(t&&i instanceof Ne&&i.hasThinInstances&&this._exporter){this._wasUsed=!0;const l=P.Zero(),c=Re.Identity(),u=P.One(),f=i.thinInstanceGetWorldMatrices(),p=ae.Vector3[2],m=ae.Quaternion[1],_=ae.Vector3[3];let d=!1,h=!1,x=!1;const A=new Float32Array(i.thinInstanceCount*3),S=new Float32Array(i.thinInstanceCount*4),E=new Float32Array(i.thinInstanceCount*3);let b=0;for(const T of f)T.decompose(_,m,p),r&&(pR(p),ZY(m)),A.set(p.asArray(),b*3),S.set(m.normalize().asArray(),b*4),E.set(_.asArray(),b*3),d=d||!p.equalsWithEpsilon(l),h=h||!m.equalsWithEpsilon(c),x=x||!_.equalsWithEpsilon(u),b++;const M={attributes:{}};d&&(M.attributes.TRANSLATION=this._buildAccessor(A,"VEC3",i.thinInstanceCount,n)),h&&(M.attributes.ROTATION=this._buildAccessor(S,"VEC4",i.thinInstanceCount,n)),x&&(M.attributes.SCALE=this._buildAccessor(E,"VEC3",i.thinInstanceCount,n)),t.extensions=t.extensions||{},t.extensions[eue]=M}o(t)})}_buildAccessor(e,t,i,s){const r=s.createBufferView(e),n=s.createAccessor(r,t,5126,i);return this._exporter._accessors.push(n),this._exporter._accessors.length-1}}Wn.RegisterExtension(eue,a=>new MIe(a));const tue="KHR_draco_mesh_compression";function a$e(a){return a==="POSITION"?"POSITION":a==="NORMAL"?"NORMAL":a.startsWith("COLOR")?"COLOR":a.startsWith("TEXCOORD")?"TEX_COORD":"GENERIC"}class EIe{get wasUsed(){return this._wasUsed}constructor(e){this.name=tue,this.required=!0,this._bufferViewsUsed=new Set,this._accessorsUsed=new Set,this._encodePromises=[],this._wasUsed=!1,this.enabled=e.options.meshCompressionMethod==="Draco"&&O0.DefaultAvailable}dispose(){}postExportMeshPrimitive(e,t,i){if(!this.enabled)return;if(e.mode!==4&&e.mode!==5){de.Warn("Cannot compress primitive with mode "+e.mode+".");return}const s=[],r=[];let n=null;if(e.indices!==void 0){const u=i[e.indices],f=t.getBufferView(u);n=t.getData(f).slice(),s.push(f),r.push(u)}const o=[];for(const[u,f]of Object.entries(e.attributes)){const p=i[f],m=t.getBufferView(p),_=Jce(p.type),d=OX(t.getData(m),_,p.componentType,p.byteOffset||0,m.byteStride||kv(p.componentType)*_,p.normalized||!1,p.count,!0);o.push({kind:u,dracoName:a$e(u),size:Jce(p.type),data:d}),s.push(m),r.push(p)}const l={method:e.targets?"MESH_SEQUENTIAL_ENCODING":"MESH_EDGEBREAKER_ENCODING"},c=O0.Default._encodeAsync(o,n,l).then(u=>{if(!u){de.Error("Draco encoding failed for primitive.");return}const f={bufferView:-1,attributes:u.attributeIDs},p=t.createBufferView(u.data);t.setBufferView(f,p);for(const m of s)this._bufferViewsUsed.add(m);for(const m of r)this._accessorsUsed.add(m);e.extensions||(e.extensions={}),e.extensions[tue]=f}).catch(u=>{de.Error("Draco encoding failed for primitive: "+u)});this._encodePromises.push(c),this._wasUsed=!0}async preGenerateBinaryAsync(e){this.enabled&&(await Promise.all(this._encodePromises),this._bufferViewsUsed.forEach(t=>{e.getPropertiesWithBufferView(t).every(r=>this._accessorsUsed.has(r))&&e.removeBufferView(t)}),this._bufferViewsUsed.clear(),this._accessorsUsed.clear())}}Wn.RegisterExtension(tue,a=>new EIe(a));const sI="KHR_lights_punctual",o$e={name:"",color:[1,1,1],intensity:1,range:Number.MAX_VALUE},l$e={innerConeAngle:0,outerConeAngle:Math.PI/4},TIe=P.Backward();class LIe{constructor(e){this.name=sI,this.enabled=!0,this.required=!1,this._exporter=e}dispose(){this._lights=null}get wasUsed(){return!!this._lights}onExporting(){this._exporter._glTF.extensions[sI]=this._lights}postExportNodeAsync(e,t,i,s,r){return new Promise(n=>{if(!(i instanceof My)){n(t);return}const o=i.getTypeID()==vs.LIGHTTYPEID_POINTLIGHT?"point":i.getTypeID()==vs.LIGHTTYPEID_DIRECTIONALLIGHT?"directional":i.getTypeID()==vs.LIGHTTYPEID_SPOTLIGHT?"spot":null;if(!o){de.Warn(`${e}: Light ${i.name} is not supported in ${sI}`),n(t);return}if(i.falloffType!==vs.FALLOFF_GLTF&&de.Warn(`${e}: Light falloff for ${i.name} does not match the ${sI} specification!`),!i.position.equalsToFloats(0,0,0)){const f=ae.Vector3[0].copyFrom(i.position);r&&pR(f),t.translation=f.asArray()}if(o!=="point"){const f=i.direction.normalizeToRef(ae.Vector3[0]);r&&pR(f);const p=Math.acos(P.Dot(TIe,f)),m=P.Cross(TIe,f),_=Re.RotationAxisToRef(m,p,ae.Quaternion[0]);Re.IsIdentity(_)||(t.rotation=_.asArray())}const l={type:o,name:i.name,color:i.diffuse.asArray(),intensity:i.intensity,range:i.range};if(SIe(l,o$e),o==="spot"){const f=i;l.spot={innerConeAngle:f.innerAngle/2,outerConeAngle:f.angle/2},SIe(l.spot,l$e)}this._lights||(this._lights={lights:[]}),this._lights.lights.push(l);const c={light:this._lights.lights.length-1},u=i.parent;if(u&&bIe(i,u)){const f=s.get(u);if(f){const p=this._exporter._nodes[f];KJe(t,p),p.extensions||(p.extensions={}),p.extensions[sI]=c,n(null);return}}t.extensions||(t.extensions={}),t.extensions[sI]=c,n(t)})}}Wn.RegisterExtension(sI,a=>new LIe(a));const iue="KHR_materials_anisotropy";class IIe{constructor(e){this.name=iue,this.enabled=!0,this.required=!1,this._wasUsed=!1,this._exporter=e}dispose(){}get wasUsed(){return this._wasUsed}postExportMaterialAdditionalTextures(e,t,i){const s=[];return i instanceof Bs&&i.anisotropy.isEnabled&&!i.anisotropy.legacy?(i.anisotropy.texture&&s.push(i.anisotropy.texture),s):[]}postExportMaterialAsync(e,t,i){return new Promise(s=>{if(i instanceof Bs){if(!i.anisotropy.isEnabled||i.anisotropy.legacy){s(t);return}this._wasUsed=!0,t.extensions=t.extensions||{};const r=this._exporter._materialExporter.getTextureInfo(i.anisotropy.texture),n={anisotropyStrength:i.anisotropy.intensity,anisotropyRotation:i.anisotropy.angle,anisotropyTexture:r??void 0};n.anisotropyTexture!==null&&this._exporter._materialNeedsUVsSet.add(i),t.extensions[iue]=n}s(t)})}}Wn.RegisterExtension(iue,a=>new IIe(a));const sue="KHR_materials_clearcoat";class PIe{constructor(e){this.name=sue,this.enabled=!0,this.required=!1,this._wasUsed=!1,this._exporter=e}dispose(){}get wasUsed(){return this._wasUsed}postExportMaterialAdditionalTextures(e,t,i){const s=[];return i instanceof Bs&&i.clearCoat.isEnabled?(i.clearCoat.texture&&s.push(i.clearCoat.texture),!i.clearCoat.useRoughnessFromMainTexture&&i.clearCoat.textureRoughness&&s.push(i.clearCoat.textureRoughness),i.clearCoat.bumpTexture&&s.push(i.clearCoat.bumpTexture),s):[]}postExportMaterialAsync(e,t,i){return new Promise(s=>{if(i instanceof Bs){if(!i.clearCoat.isEnabled){s(t);return}this._wasUsed=!0,t.extensions=t.extensions||{};const r=this._exporter._materialExporter.getTextureInfo(i.clearCoat.texture);let n;i.clearCoat.useRoughnessFromMainTexture?n=this._exporter._materialExporter.getTextureInfo(i.clearCoat.texture):n=this._exporter._materialExporter.getTextureInfo(i.clearCoat.textureRoughness),i.clearCoat.isTintEnabled&&Le.Warn(`Clear Color tint is not supported for glTF export. Ignoring for: ${i.name}`),i.clearCoat.remapF0OnInterfaceChange&&Le.Warn(`Clear Color F0 remapping is not supported for glTF export. Ignoring for: ${i.name}`);const o=this._exporter._materialExporter.getTextureInfo(i.clearCoat.bumpTexture),l={clearcoatFactor:i.clearCoat.intensity,clearcoatTexture:r??void 0,clearcoatRoughnessFactor:i.clearCoat.roughness,clearcoatRoughnessTexture:n??void 0,clearcoatNormalTexture:o??void 0};(l.clearcoatTexture!==null||l.clearcoatRoughnessTexture!==null||l.clearcoatRoughnessTexture!==null)&&this._exporter._materialNeedsUVsSet.add(i),t.extensions[sue]=l}s(t)})}}Wn.RegisterExtension(sue,a=>new PIe(a));const rue="KHR_materials_diffuse_transmission";function OIe(a,e){const t=e.subSurface;let i=null;return t.translucencyIntensityTexture?i=t.translucencyIntensityTexture:t.thicknessTexture&&t.useMaskFromThicknessTexture&&(i=t.thicknessTexture),i&&!t.useGltfStyleTextures?(de.Warn(`${a}: Translucency intensity texture is not supported when useGltfStyleTextures = false. Ignoring for: ${e.name}`,1),null):i}class RIe{constructor(e){this.name=rue,this.enabled=!0,this.required=!1,this._wasUsed=!1,this._exporter=e}dispose(){}get wasUsed(){return this._wasUsed}postExportMaterialAdditionalTextures(e,t,i){const s=[];if(i instanceof mi&&this._isExtensionEnabled(i)){const r=OIe(e,i);return r&&s.push(r),i.subSurface.translucencyColorTexture&&s.push(i.subSurface.translucencyColorTexture),s}return s}_isExtensionEnabled(e){if(e.unlit)return!1;const t=e.subSurface;return t.isTranslucencyEnabled?!e.unlit&&!t.useAlbedoToTintTranslucency&&t.useGltfStyleTextures&&t.volumeIndexOfRefraction===1&&t.minimumThickness===0&&t.maximumThickness===0:!1}postExportMaterialAsync(e,t,i){return new Promise(s=>{if(i instanceof mi&&this._isExtensionEnabled(i)){this._wasUsed=!0;const r=i.subSurface,n=OIe(e,i),o=r.translucencyIntensity==0?void 0:r.translucencyIntensity,l=this._exporter._materialExporter.getTextureInfo(n)??void 0,c=!r.translucencyColor||r.translucencyColor.equalsFloats(1,1,1)?void 0:r.translucencyColor.asArray(),u=this._exporter._materialExporter.getTextureInfo(r.translucencyColorTexture)??void 0,f={diffuseTransmissionFactor:o,diffuseTransmissionTexture:l,diffuseTransmissionColorFactor:c,diffuseTransmissionColorTexture:u};(l||u)&&this._exporter._materialNeedsUVsSet.add(i),t.extensions=t.extensions||{},t.extensions[rue]=f}s(t)})}}Wn.RegisterExtension(rue,a=>new RIe(a));const nue="KHR_materials_dispersion";class DIe{constructor(){this.name=nue,this.enabled=!0,this.required=!1,this._wasUsed=!1}dispose(){}get wasUsed(){return this._wasUsed}_isExtensionEnabled(e){if(e.unlit)return!1;const t=e.subSurface;return!(!t.isRefractionEnabled&&!t.isDispersionEnabled)}postExportMaterialAsync(e,t,i){return new Promise(s=>{if(i instanceof mi&&this._isExtensionEnabled(i)){this._wasUsed=!0;const o={dispersion:i.subSurface.dispersion};t.extensions=t.extensions||{},t.extensions[nue]=o}s(t)})}}Wn.RegisterExtension(nue,()=>new DIe);const aue="KHR_materials_emissive_strength";class NIe{constructor(){this.name=aue,this.enabled=!0,this.required=!1,this._wasUsed=!1}dispose(){}get wasUsed(){return this._wasUsed}postExportMaterialAsync(e,t,i){return new Promise(s=>{if(!(i instanceof mi))return s(t);const r=i.emissiveColor.asArray(),n=Math.max(...r);if(n>1){this._wasUsed=!0,t.extensions||(t.extensions={});const o={emissiveStrength:n},l=i.emissiveColor.scale(1/o.emissiveStrength);t.emissiveFactor=l.asArray(),t.extensions[aue]=o}return s(t)})}}Wn.RegisterExtension(aue,a=>new NIe);const oue="KHR_materials_ior";class wIe{constructor(){this.name=oue,this.enabled=!0,this.required=!1,this._wasUsed=!1}dispose(){}get wasUsed(){return this._wasUsed}_isExtensionEnabled(e){return e.unlit?!1:e.indexOfRefraction!=null&&e.indexOfRefraction!=1.5}postExportMaterialAsync(e,t,i){return new Promise(s=>{if(i instanceof mi&&this._isExtensionEnabled(i)){this._wasUsed=!0;const r={ior:i.indexOfRefraction};t.extensions=t.extensions||{},t.extensions[oue]=r}s(t)})}}Wn.RegisterExtension(oue,a=>new wIe);const lue="KHR_materials_iridescence";class BIe{constructor(e){this.name=lue,this.enabled=!0,this.required=!1,this._wasUsed=!1,this._exporter=e}dispose(){}get wasUsed(){return this._wasUsed}postExportMaterialAdditionalTextures(e,t,i){const s=[];return i instanceof Bs&&i.iridescence.isEnabled?(i.iridescence.texture&&s.push(i.iridescence.texture),i.iridescence.thicknessTexture&&i.iridescence.thicknessTexture!==i.iridescence.texture&&s.push(i.iridescence.thicknessTexture),s):[]}postExportMaterialAsync(e,t,i){return new Promise(s=>{if(i instanceof Bs){if(!i.iridescence.isEnabled){s(t);return}this._wasUsed=!0,t.extensions=t.extensions||{};const r=this._exporter._materialExporter.getTextureInfo(i.iridescence.texture),n=this._exporter._materialExporter.getTextureInfo(i.iridescence.thicknessTexture),o={iridescenceFactor:i.iridescence.intensity,iridescenceIor:i.iridescence.indexOfRefraction,iridescenceThicknessMinimum:i.iridescence.minimumThickness,iridescenceThicknessMaximum:i.iridescence.maximumThickness,iridescenceTexture:r??void 0,iridescenceThicknessTexture:n??void 0};(o.iridescenceTexture!==null||o.iridescenceThicknessTexture!==null)&&this._exporter._materialNeedsUVsSet.add(i),t.extensions[lue]=o}s(t)})}}Wn.RegisterExtension(lue,a=>new BIe(a));const cue="KHR_materials_sheen";class zIe{constructor(e){this.name=cue,this.enabled=!0,this.required=!1,this._wasUsed=!1,this._exporter=e}dispose(){}get wasUsed(){return this._wasUsed}postExportMaterialAdditionalTextures(e,t,i){return i instanceof mi&&i.sheen.isEnabled&&i.sheen.texture?[i.sheen.texture]:[]}postExportMaterialAsync(e,t,i){return new Promise(s=>{if(i instanceof mi){if(!i.sheen.isEnabled){s(t);return}this._wasUsed=!0,t.extensions==null&&(t.extensions={});const r={sheenColorFactor:i.sheen.color.asArray(),sheenRoughnessFactor:i.sheen.roughness??0};(r.sheenColorTexture!==null||r.sheenRoughnessTexture!==null)&&this._exporter._materialNeedsUVsSet.add(i),i.sheen.texture&&(r.sheenColorTexture=this._exporter._materialExporter.getTextureInfo(i.sheen.texture)??void 0),i.sheen.textureRoughness&&!i.sheen.useRoughnessFromMainTexture?r.sheenRoughnessTexture=this._exporter._materialExporter.getTextureInfo(i.sheen.textureRoughness)??void 0:i.sheen.texture&&i.sheen.useRoughnessFromMainTexture&&(r.sheenRoughnessTexture=this._exporter._materialExporter.getTextureInfo(i.sheen.texture)??void 0),t.extensions[cue]=r}s(t)})}}Wn.RegisterExtension(cue,a=>new zIe(a));const uue="KHR_materials_specular";class FIe{constructor(e){this.name=uue,this.enabled=!0,this.required=!1,this._wasUsed=!1,this._exporter=e}dispose(){}get wasUsed(){return this._wasUsed}postExportMaterialAdditionalTextures(e,t,i){const s=[];return i instanceof mi&&this._isExtensionEnabled(i)&&(i.metallicReflectanceTexture&&s.push(i.metallicReflectanceTexture),i.reflectanceTexture&&s.push(i.reflectanceTexture)),s}_isExtensionEnabled(e){return e.unlit?!1:e.metallicF0Factor!=null&&e.metallicF0Factor!=1||e.metallicReflectanceColor!=null&&!e.metallicReflectanceColor.equalsFloats(1,1,1)||this._hasTexturesExtension(e)}_hasTexturesExtension(e){return e.metallicReflectanceTexture!=null||e.reflectanceTexture!=null}postExportMaterialAsync(e,t,i){return new Promise(s=>{if(i instanceof mi&&this._isExtensionEnabled(i)){this._wasUsed=!0,t.extensions=t.extensions||{};const r=this._exporter._materialExporter.getTextureInfo(i.metallicReflectanceTexture)??void 0,n=this._exporter._materialExporter.getTextureInfo(i.reflectanceTexture)??void 0,o=i.metallicF0Factor==1?void 0:i.metallicF0Factor,l=i.metallicReflectanceColor.equalsFloats(1,1,1)?void 0:i.metallicReflectanceColor.asArray(),c={specularFactor:o,specularTexture:r,specularColorFactor:l,specularColorTexture:n};this._hasTexturesExtension(i)&&this._exporter._materialNeedsUVsSet.add(i),t.extensions[uue]=c}s(t)})}}Wn.RegisterExtension(uue,a=>new FIe(a));const hue="KHR_materials_transmission";class kIe{constructor(e){this.name=hue,this.enabled=!0,this.required=!1,this._wasUsed=!1,this._exporter=e}dispose(){}get wasUsed(){return this._wasUsed}postExportMaterialAdditionalTextures(e,t,i){const s=[];return i instanceof mi&&this._isExtensionEnabled(i)&&i.subSurface.thicknessTexture&&s.push(i.subSurface.thicknessTexture),s}_isExtensionEnabled(e){if(e.unlit)return!1;const t=e.subSurface;return t.isRefractionEnabled&&t.refractionIntensity!=null&&t.refractionIntensity!=0||this._hasTexturesExtension(e)}_hasTexturesExtension(e){return e.subSurface.refractionIntensityTexture!=null}async postExportMaterialAsync(e,t,i){if(i instanceof mi&&this._isExtensionEnabled(i)){this._wasUsed=!0;const s=i.subSurface,n={transmissionFactor:s.refractionIntensity===0?void 0:s.refractionIntensity};if(this._hasTexturesExtension(i)&&this._exporter._materialNeedsUVsSet.add(i),s.refractionIntensityTexture)if(s.useGltfStyleTextures){const o=await this._exporter._materialExporter.exportTextureAsync(s.refractionIntensityTexture,"image/png");o&&(n.transmissionTexture=o)}else de.Warn(`${e}: Exporting a subsurface refraction intensity texture without \`useGltfStyleTextures\` is not supported`);t.extensions||(t.extensions={}),t.extensions[hue]=n}return t}}Wn.RegisterExtension(hue,a=>new kIe(a));const due="KHR_materials_unlit";class UIe{constructor(){this.name=due,this.enabled=!0,this.required=!1,this._wasUsed=!1}get wasUsed(){return this._wasUsed}dispose(){}postExportMaterialAsync(e,t,i){return new Promise(s=>{let r=!1;i instanceof mi?r=i.unlit:i instanceof Bt&&(r=i.disableLighting),r&&(this._wasUsed=!0,t.extensions==null&&(t.extensions={}),t.extensions[due]={}),s(t)})}}Wn.RegisterExtension(due,()=>new UIe);const fue="KHR_materials_volume";class jIe{constructor(e){this.name=fue,this.enabled=!0,this.required=!1,this._wasUsed=!1,this._exporter=e}dispose(){}get wasUsed(){return this._wasUsed}postExportMaterialAdditionalTextures(e,t,i){const s=[];return i instanceof mi&&this._isExtensionEnabled(i)&&i.subSurface.thicknessTexture&&s.push(i.subSurface.thicknessTexture),s}_isExtensionEnabled(e){if(e.unlit)return!1;const t=e.subSurface;return!t.isRefractionEnabled&&!t.isTranslucencyEnabled?!1:t.maximumThickness!=null&&t.maximumThickness!=0||t.tintColorAtDistance!=null&&t.tintColorAtDistance!=Number.POSITIVE_INFINITY||t.tintColor!=null&&t.tintColor!=Pe.White()||this._hasTexturesExtension(e)}_hasTexturesExtension(e){return e.subSurface.thicknessTexture!=null}postExportMaterialAsync(e,t,i){return new Promise(s=>{if(i instanceof mi&&this._isExtensionEnabled(i)){this._wasUsed=!0;const r=i.subSurface,n=r.maximumThickness==0?void 0:r.maximumThickness,o=this._exporter._materialExporter.getTextureInfo(r.thicknessTexture)??void 0,l=r.tintColorAtDistance==Number.POSITIVE_INFINITY?void 0:r.tintColorAtDistance,c=r.tintColor.equalsFloats(1,1,1)?void 0:r.tintColor.asArray(),u={thicknessFactor:n,thicknessTexture:o,attenuationDistance:l,attenuationColor:c};this._hasTexturesExtension(i)&&this._exporter._materialNeedsUVsSet.add(i),t.extensions=t.extensions||{},t.extensions[fue]=u}s(t)})}}Wn.RegisterExtension(fue,a=>new jIe(a));const Iz="KHR_texture_transform";function c$e(a){const{uOffset:e,vOffset:t,uRotationCenter:i,vRotationCenter:s,uScale:r,vScale:n,wAng:o}=a,l=Math.cos(o),c=Math.sin(o),u=i*r,f=s*n,p=u*(1-l)+f*c,m=f*(1-l)-u*c;return[e+p,t+m]}class VIe{constructor(){this.name=Iz,this.enabled=!0,this.required=!1,this._wasUsed=!1}dispose(){}get wasUsed(){return this._wasUsed}postExportTexture(e,t,i){if(i.getScene()||Le.Warn(`${e}: "scene" is not defined for Babylon texture ${i.name}!`),(i.uAng!==0||i.vAng!==0)&&(Le.Warn(`${e}: Texture ${i.name} with rotation in the u or v axis is not supported in glTF.`),i.uRotationCenter!==0||i.vRotationCenter!==0))return;const r={};let n=!1;if((i.uOffset!==0||i.vOffset!==0)&&(r.offset=[i.uOffset,i.vOffset],n=!0),(i.uScale!==1||i.vScale!==1)&&(r.scale=[i.uScale,i.vScale],n=!0),i.wAng!==0){if(i.uRotationCenter!==0||i.vRotationCenter!==0){if(i.homogeneousRotationInUVTransform&&i.uScale!==i.vScale){Le.Warn(`${e}: Texture ${i.name} with homogenousRotationInUVTransform, non-uniform scaling, and non-zero rotation cannot be exported with ${Iz}.`);return}Le.Warn(`${e}: Texture ${i.name} with non-origin rotation center will be exported using an adjusted offset with ${Iz}.`),r.offset=c$e(i)}r.rotation=-i.wAng,n=!0}i.coordinatesIndex!==0&&(r.texCoord=i.coordinatesIndex,n=!0),n&&(this._wasUsed=!0,t.extensions||(t.extensions={}),t.extensions[Iz]=r)}}Wn.RegisterExtension(Iz,()=>new VIe);class u$e{static CreateSTL(e,t=!0,i="stlmesh",s=!1,r=!0,n=!1,o=!1,l=!1){const c=function(h,x,A){const S=[h[A]*3,h[A+1]*3,h[A+2]*3],E=[new P(x[S[0]],x[S[0]+2],x[S[0]+1]),new P(x[S[1]],x[S[1]+2],x[S[1]+1]),new P(x[S[2]],x[S[2]+2],x[S[2]+1])],b=E[0].subtract(E[1]),M=E[2].subtract(E[1]),T=P.Cross(M,b).normalize();return{v:E,n:T}},u=function(h,x,A,S){return x=f(h,x,A.x,S),x=f(h,x,A.y,S),f(h,x,A.z,S)},f=function(h,x,A,S){return h.setFloat32(x,A,S),x+4},p=function(h){if(o){let x=h;h instanceof $x&&(x=h.sourceMesh);const A=x.getVerticesData(q.PositionKind,!0,!0);if(!A)return[];const S=P.Zero();let E;for(E=0;E<A.length;E+=3)P.TransformCoordinatesFromFloatsToRef(A[E],A[E+1],A[E+2],h.computeWorldMatrix(!0),S).toArray(A,E);return A}else return h.getVerticesData(q.PositionKind)||[]};o&&(n=!0);let m="",_=0,d=0;if(s){for(let A=0;A<e.length;A++){const E=e[A].getIndices();_+=E?E.length/3:0}const h=84+50*_,x=new ArrayBuffer(h);m=new DataView(x),d+=80,m.setUint32(d,_,r),d+=4}else l||(m=`solid stlmesh\r
`);for(let h=0;h<e.length;h++){const x=e[h];!s&&l&&(m+="solid "+x.name+`\r
`),!n&&x instanceof Ne&&x.bakeCurrentTransformIntoVertices();const A=p(x),S=x.getIndices()||[];for(let E=0;E<S.length;E+=3){const b=c(S,A,E);s?(d=u(m,d,b.n,r),d=u(m,d,b.v[0],r),d=u(m,d,b.v[1],r),d=u(m,d,b.v[2],r),d+=2):(m+="	facet normal "+b.n.x+" "+b.n.y+" "+b.n.z+`\r
`,m+=`		outer loop\r
`,m+="			vertex "+b.v[0].x+" "+b.v[0].y+" "+b.v[0].z+`\r
`,m+="			vertex "+b.v[1].x+" "+b.v[1].y+" "+b.v[1].z+`\r
`,m+="			vertex "+b.v[2].x+" "+b.v[2].y+" "+b.v[2].z+`\r
`,m+=`		endloop\r
`,m+=`	endfacet\r
`)}!s&&l&&(m+="endsolid "+name+`\r
`)}if(!s&&!l&&(m+="endsolid stlmesh"),t){const h=document.createElement("a"),x=new Blob([m],{type:"application/octet-stream"});h.href=window.URL.createObjectURL(x),h.download=i+".stl",h.click()}return m}}function GIe(){return`#usda 1.0
    (
        customLayerData = {
            string creator = "Babylon.js USDZExportAsync"
        }
        defaultPrim = "Root"
        metersPerUnit = 1
        upAxis = "Y"
    )`}function h$e(a){return`def Xform "Root"
    {
        def Scope "Scenes" (
            kind = "sceneLibrary"
        )
        {
            def Xform "Scene" (
                customData = {
                    bool preliminary_collidesWithEnvironment = 0
                    string sceneName = "Scene"
                }
                sceneName = "Scene"
            )
            {${a.includeAnchoringProperties===!0?`
		token preliminary:anchoring:type = "${a.anchoringType}"
		token preliminary:planeAnchoring:alignment = "${a.planeAnchoringAlignment}"`:""}
            `}function d$e(){return`
            }
        }
    }`}function f$e(a){var t;const e=(t=a.getIndices())!=null&&t.length?a.getTotalIndices():a.getTotalVertices();return Array(e/3).fill(3).join(", ")}function p$e(a){const e=a.getIndices(),t=[];if(e!==null)for(let i=0;i<e.length;i++)t.push(e[i]);else{const i=a.getTotalVertices();for(let s=0;s<i;s++)t.push(s)}return t.join(", ")}function pue(a,e,t=3){const i=[];for(let s=0;s<a.length/t;s++){const r=a[s*t],n=a[s*t+1],o=a[s*t+2];i.push(`(${r.toPrecision(e.precision)}, ${n.toPrecision(e.precision)}, ${o.toPrecision(e.precision)})`)}return i.join(", ")}function m$e(a,e){const t=[];for(let i=0;i<a.length/2;i++){const s=a[i*2],r=a[i*2+1];t.push(`(${s.toPrecision(e.precision)}, ${(1-r).toPrecision(e.precision)})`)}return t.join(", ")}function g$e(a,e){let t="";for(let s=0;s<4;s++){const r=s>0?s:"",n=a.getVerticesData(q.UVKind+(r||""));n&&(t+=`
		texCoord2f[] primvars:st${r} = [${m$e(n,e)}] (
			interpolation = "vertex"
		)`)}const i=a.getVerticesData(q.ColorKind);return i&&(t+=`
	color3f[] primvars:displayColor = [${pue(i,e,i.length/a.getTotalVertices())}] (
		interpolation = "vertex"
		)`),t}function _$e(a,e){const t="Geometry",i=a.getVerticesData(q.PositionKind),s=a.getVerticesData(q.PositionKind);if(!(!i||!s))return`
	def Mesh "${t}"
	{
		int[] faceVertexCounts = [${f$e(a)}]
		int[] faceVertexIndices = [${p$e(a)}]
		normal3f[] normals = [${pue(s,e)}] (
			interpolation = "vertex"
		)
		point3f[] points = [${pue(i,e)}]
        ${g$e(a,e)}
		uniform token subdivisionScheme = "none"
	}
`}function v$e(a,e){return`
        def "Geometry"
        {
        ${_$e(a,e)}
        }
        `}function A$e(a){let e=GIe();return e+=a,fflate.strToU8(e)}function WIe(a){const e=a.m;return`( ${KY(e,0)}, ${KY(e,4)}, ${KY(e,8)}, ${KY(e,12)} )`}function KY(a,e){return`(${a[e+0]}, ${a[e+1]}, ${a[e+2]}, ${a[e+3]})`}function C$e(a){const e="Object_"+a.uniqueId,t=a.getWorldMatrix().clone();t.determinant()<0&&t.multiplyToRef(me.Scaling(-1,1,1),t);const i=WIe(t);return`def Xform "${e}" (
	prepend references = @./geometries/Geometry_${a.geometry.uniqueId}.usda@</Geometry>
	prepend apiSchemas = ["MaterialBindingAPI"]
)
{
	matrix4d xformOp:transform = ${i}
	uniform token[] xformOpOrder = ["xformOp:transform"]	

    rel material:binding = </Materials/Material_${a.material.uniqueId}>
}

`}function x$e(a,e,t){const i=[];for(const s in a){const r=a[s];i.push(y$e(r,e,t))}return`
    def "Materials"
{
${i.join("")}
}

`}function HIe(a){switch(a){case ze.TEXTURE_CLAMP_ADDRESSMODE:return"clamp";case ze.TEXTURE_MIRROR_ADDRESSMODE:return"mirror";case ze.TEXTURE_WRAP_ADDRESSMODE:default:return"repeat"}}function b$e(a){return`(${a.r}, ${a.g}, ${a.b}, 1.0)`}function YIe(a){return`(${a.x}, ${a.y})`}function XIe(a){return`(${a.r}, ${a.g}, ${a.b})`}function rI(a,e,t,i,s,r){const n=a.getInternalTexture().uniqueId+"_"+a.invertY;s[n]=a;const o=a.coordinatesIndex>0?"st"+a.coordinatesIndex:"st",l=new Ue(a.uScale,a.vScale),c=new Ue(a.uOffset,a.vOffset),u=a.wAng,f=Math.sin(u),p=Math.cos(u);return c.y=1-c.y-l.y,c.x+=f*l.x,c.y+=(1-p)*l.y,`
    def Shader "PrimvarReader_${t}"
    {
        uniform token info:id = "UsdPrimvarReader_float2"
        float2 inputs:fallback = (0.0, 0.0)
        token inputs:varname = "${o}"
        float2 outputs:result
    }

    def Shader "Transform2d_${t}"
    {
        uniform token info:id = "UsdTransform2d"
        token inputs:in.connect = </Materials/Material_${e.uniqueId}/PrimvarReader_${t}.outputs:result>
        float inputs:rotation = ${(u*(180/Math.PI)).toFixed(r.precision)}
        float2 inputs:scale = ${YIe(l)}
        float2 inputs:translation = ${YIe(c)}
        float2 outputs:result
    }

    def Shader "Texture_${a.uniqueId}_${t}"
    {
        uniform token info:id = "UsdUVTexture"
        asset inputs:file = @textures/Texture_${n}.png@
        float2 inputs:st.connect = </Materials/Material_${e.uniqueId}/Transform2d_${t}.outputs:result>
        ${i?"float4 inputs:scale = "+b$e(i):""}
        token inputs:sourceColorSpace = "${a.gammaSpace?"raw":"sRGB"}"
        token inputs:wrapS = "${HIe(a.wrapU)}"
        token inputs:wrapT = "${HIe(a.wrapV)}"
        float outputs:r
        float outputs:g
        float outputs:b
        float3 outputs:rgb
        ${e.needAlphaBlending()?"float outputs:a":""}
    }`}function S$e(a){switch(a.getClassName()){case"StandardMaterial":return{diffuseMap:a.diffuseTexture,diffuse:a.diffuseColor,alphaCutOff:a.alphaCutOff,emissiveMap:a.emissiveTexture,emissive:a.emissiveColor,roughnessMap:null,normalMap:null,metalnessMap:null,roughness:1,metalness:0,aoMap:null,aoMapIntensity:0,alphaMap:a.opacityTexture,ior:1};case"PBRMaterial":return{diffuseMap:a.albedoTexture,diffuse:a.albedoColor,alphaCutOff:a.alphaCutOff,emissiveMap:a.emissiveTexture,emissive:a.emissiveColor,normalMap:a.bumpTexture,roughnessMap:a.metallicTexture,roughnessChannel:a.useRoughnessFromMetallicTextureAlpha?"a":"g",roughness:a.roughness||1,metalnessMap:a.metallicTexture,metalnessChannel:a.useMetallnessFromMetallicTextureBlue?"b":"r",metalness:a.metallic||0,aoMap:a.ambientTexture,aoMapChannel:a.useAmbientInGrayScale?"r":"rgb",aoMapIntensity:a.ambientTextureStrength,alphaMap:a.opacityTexture,ior:a.indexOfRefraction};case"PBRMetallicRoughnessMaterial":return{diffuseMap:a.baseTexture,diffuse:a.baseColor,alphaCutOff:a.alphaCutOff,emissiveMap:a.emissiveTexture,emissive:a.emissiveColor,normalMap:a.normalTexture,roughnessMap:a.metallicTexture,roughnessChannel:a.useRoughnessFromMetallicTextureAlpha?"a":"g",roughness:a.roughness||1,metalnessMap:a.metallicTexture,metalnessChannel:a.useMetallnessFromMetallicTextureBlue?"b":"r",metalness:a.metallic||0,aoMap:a.ambientTexture,aoMapChannel:a.useAmbientInGrayScale?"r":"rgb",aoMapIntensity:a.ambientTextureStrength,alphaMap:a.opacityTexture,ior:a.indexOfRefraction};default:return{diffuseMap:null,diffuse:null,emissiveMap:null,emissemissiveiveColor:null,normalMap:null,roughnessMap:null,metalnessMap:null,alphaCutOff:0,roughness:0,metalness:0,aoMap:null,aoMapIntensity:0,alphaMap:null,ior:1}}}function y$e(a,e,t){const i="			",s=[],r=[],{diffuseMap:n,diffuse:o,alphaCutOff:l,emissiveMap:c,emissive:u,normalMap:f,roughnessMap:p,roughnessChannel:m,roughness:_,metalnessMap:d,metalnessChannel:h,metalness:x,aoMap:A,aoMapChannel:S,aoMapIntensity:E,alphaMap:b,ior:M}=S$e(a);return n!==null?(s.push(`${i}color3f inputs:diffuseColor.connect = </Materials/Material_${a.uniqueId}/Texture_${n.uniqueId}_diffuse.outputs:rgb>`),a.needAlphaBlending()?s.push(`${i}float inputs:opacity.connect = </Materials/Material_${a.uniqueId}/Texture_${n.uniqueId}_diffuse.outputs:a>`):a.needAlphaTesting()&&(s.push(`${i}float inputs:opacity.connect = </Materials/Material_${a.uniqueId}/Texture_${n.uniqueId}_diffuse.outputs:a>`),s.push(`${i}float inputs:opacityThreshold = ${l}`)),r.push(rI(n,a,"diffuse",o,e,t))):s.push(`${i}color3f inputs:diffuseColor = ${XIe(o||Pe.White())}`),c!==null?(s.push(`${i}color3f inputs:emissiveColor.connect = </Materials/Material_${a.uniqueId}/Texture_${c.uniqueId}_emissive.outputs:rgb>`),r.push(rI(c,a,"emissive",u,e,t))):u&&u.toLuminance()>0&&s.push(`${i}color3f inputs:emissiveColor = ${XIe(u)}`),f!==null&&(s.push(`${i}normal3f inputs:normal.connect = </Materials/Material_${a.uniqueId}/Texture_${f.uniqueId}_normal.outputs:rgb>`),r.push(rI(f,a,"normal",null,e,t))),A!==null&&(s.push(`${i}float inputs:occlusion.connect = </Materials/Material_${a.uniqueId}/Texture_${A.uniqueId}_occlusion.outputs:${S}>`),r.push(rI(A,a,"occlusion",new Pe(E,E,E),e,t))),p!==null?(s.push(`${i}float inputs:roughness.connect = </Materials/Material_${a.uniqueId}/Texture_${p.uniqueId}_roughness.outputs:${m}>`),r.push(rI(p,a,"roughness",new Pe(_,_,_),e,t))):s.push(`${i}float inputs:roughness = ${_}`),d!==null?(s.push(`${i}float inputs:metallic.connect = </Materials/Material_${a.uniqueId}/Texture_${d.uniqueId}_metallic.outputs:${h}>`),r.push(rI(d,a,"metallic",new Pe(x,x,x),e,t))):s.push(`${i}float inputs:metallic = ${x}`),b!==null?(s.push(`${i}float inputs:opacity.connect = </Materials/Material_${a.uniqueId}/Texture_${b.uniqueId}_opacity.outputs:r>`),s.push(`${i}float inputs:opacityThreshold = 0.0001`),r.push(rI(b,a,"opacity",null,e,t))):s.push(`${i}float inputs:opacity = ${a.alpha}`),s.push(`${i}float inputs:ior = ${M}`),`
	def Material "Material_${a.uniqueId}"
	{
		def Shader "PreviewSurface"
		{
			uniform token info:id = "UsdPreviewSurface"
${s.join(`
`)}
			int inputs:useSpecularWorkflow = 0
			token outputs:surface
		}

		token outputs:surface.connect = </Materials/Material_${a.uniqueId}/PreviewSurface.outputs:surface>

${r.join(`
`)}

	}
`}function M$e(a,e){const t="Camera_"+a.uniqueId,i=me.RotationY(Math.PI).multiply(a.getWorldMatrix()),s=WIe(i);if(a.mode===ze.ORTHOGRAPHIC_CAMERA)return`def Camera "${t}"
		{
			matrix4d xformOp:transform = ${s}
			uniform token[] xformOpOrder = ["xformOp:transform"]

			float2 clippingRange = (${a.minZ.toPrecision(e.precision)}, ${a.maxZ.toPrecision(e.precision)})
			float horizontalAperture = ${((Math.abs(a.orthoLeft||1)+Math.abs(a.orthoRight||1))*10).toPrecision(e.precision)}
			float verticalAperture = ${((Math.abs(a.orthoTop||1)+Math.abs(a.orthoBottom||1))*10).toPrecision(e.precision)}
			token projection = "orthographic"
		}
	
	`;{const r=a.getEngine().getAspectRatio(a),n=e.cameraSensorWidth||35;return`def Camera "${t}"
		{
			matrix4d xformOp:transform = ${s}
			uniform token[] xformOpOrder = ["xformOp:transform"]

			float2 clippingRange = (${a.minZ.toPrecision(e.precision)}, ${a.maxZ.toPrecision(e.precision)})
			float focalLength = ${(n/(2*Math.tan(a.fov*.5))).toPrecision(e.precision)}
            token projection = "perspective"
			float horizontalAperture = ${(n*r).toPrecision(e.precision)}
			float verticalAperture = ${(n/r).toPrecision(e.precision)}            
		}
	
	`}}async function E$e(a,e,t){const i={fflateUrl:"https://unpkg.com/[email protected]",includeAnchoringProperties:!0,anchoringType:"plane",planeAnchoringAlignment:"horizontal",modelFileName:"model.usda",precision:5,exportCamera:!1,cameraSensorWidth:35,...e};typeof fflate>"u"&&await Le.LoadScriptAsync(i.fflateUrl);const s={};s[i.modelFileName]=null;let r=GIe();r+=h$e(i);const n={};for(const c of a.meshes){if(c.getTotalVertices()===0)continue;const u=c,f=u.geometry,p=u.material;if(!p||!f||t&&!t(u))continue;if(["StandardMaterial","PBRMaterial","PBRMetallicRoughnessMaterial"].indexOf(p.getClassName())!==-1){const _="geometries/Geometry_"+f.uniqueId+".usda";if(!(_ in s)){const d=v$e(f,i);s[_]=A$e(d)}p.uniqueId in n||(n[p.uniqueId]=p),r+=C$e(u)}else Le.Warn("USDZExportAsync does not support this material type: "+p.getClassName())}a.activeCamera&&i.exportCamera&&(r+=M$e(a.activeCamera,i)),r+=d$e();const o={};r+=x$e(n,o,i),s[i.modelFileName]=fflate.strToU8(r);for(const c in o){const u=o[c],f=u.getSize(),p=await u.readPixels();if(!p)throw new Error("Texture data is not available");const m=await BG.DumpDataAsync(f.width,f.height,p,"image/png",void 0,!1,!0);s[`textures/Texture_${c}.png`]=new Uint8Array(m).slice()}let l=0;for(const c in s){const u=s[c];if(!u)continue;const f=34+c.length;l+=f;const p=l&63;if(p!==4){const m=64-p,_=new Uint8Array(m);s[c]=[u,{extra:{12345:_}}]}l=u.length}return fflate.zipSync(s,{level:0})}const T$e=bz(Object.freeze(Object.defineProperty({__proto__:null,EXT_mesh_gpu_instancing:MIe,GLTF2Export:n$e,GLTFData:Zce,KHR_draco_mesh_compression:EIe,KHR_lights_punctual:LIe,KHR_materials_anisotropy:IIe,KHR_materials_clearcoat:PIe,KHR_materials_diffuse_transmission:RIe,KHR_materials_dispersion:DIe,KHR_materials_emissive_strength:NIe,KHR_materials_ior:wIe,KHR_materials_iridescence:BIe,KHR_materials_sheen:zIe,KHR_materials_specular:FIe,KHR_materials_transmission:kIe,KHR_materials_unlit:UIe,KHR_materials_volume:jIe,KHR_texture_transform:VIe,OBJExport:wJe,STLExport:u$e,USDZExportAsync:E$e,_ConvertToGLTFPBRMetallicRoughness:dIe,_SolveMetallic:hIe,__IGLTFExporterExtension:BJe},Symbol.toStringTag,{value:"Module"})));(function(a,e){(function(i,s){a.exports=s(wce,zQe,wce,oIe,DJe(),NJe,T$e)})(typeof self<"u"?self:rR,(t,i,s,r,n,o,l)=>(()=>{var c={"../../../../node_modules/@fortawesome/fontawesome-svg-core/index.mjs":(m,_,d)=>{d.r(_),d.d(_,{api:()=>aa,config:()=>Ao,counter:()=>gt,dom:()=>m2,findIconDefinition:()=>kh,icon:()=>Be,layer:()=>Ze,library:()=>p2,noAuto:()=>f2,parse:()=>f1,text:()=>tt,toHtml:()=>ye});/*!
 * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */function h(pe,Ce,De){return(Ce=E(Ce))in pe?Object.defineProperty(pe,Ce,{value:De,enumerable:!0,configurable:!0,writable:!0}):pe[Ce]=De,pe}function x(pe,Ce){var De=Object.keys(pe);if(Object.getOwnPropertySymbols){var Xe=Object.getOwnPropertySymbols(pe);Ce&&(Xe=Xe.filter(function(Je){return Object.getOwnPropertyDescriptor(pe,Je).enumerable})),De.push.apply(De,Xe)}return De}function A(pe){for(var Ce=1;Ce<arguments.length;Ce++){var De=arguments[Ce]!=null?arguments[Ce]:{};Ce%2?x(Object(De),!0).forEach(function(Xe){h(pe,Xe,De[Xe])}):Object.getOwnPropertyDescriptors?Object.defineProperties(pe,Object.getOwnPropertyDescriptors(De)):x(Object(De)).forEach(function(Xe){Object.defineProperty(pe,Xe,Object.getOwnPropertyDescriptor(De,Xe))})}return pe}function S(pe,Ce){if(typeof pe!="object"||!pe)return pe;var De=pe[Symbol.toPrimitive];if(De!==void 0){var Xe=De.call(pe,Ce);if(typeof Xe!="object")return Xe;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Ce==="string"?String:Number)(pe)}function E(pe){var Ce=S(pe,"string");return typeof Ce=="symbol"?Ce:Ce+""}const b=()=>{};let M={},T={},O=null,R={mark:b,measure:b};try{typeof window<"u"&&(M=window),typeof document<"u"&&(T=document),typeof MutationObserver<"u"&&(O=MutationObserver),typeof performance<"u"&&(R=performance)}catch{}const{userAgent:I=""}=M.navigator||{},N=M,w=T,D=O,k=R;N.document;const Y=!!w.documentElement&&!!w.head&&typeof w.addEventListener=="function"&&typeof w.createElement=="function",V=~I.indexOf("MSIE")||~I.indexOf("Trident/");var ee=/fa(s|r|l|t|d|dr|dl|dt|b|k|kd|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\-\ ]/,K=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i,ie={classic:{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fab:"brands","fa-brands":"brands"},duotone:{fa:"solid",fad:"solid","fa-solid":"solid","fa-duotone":"solid",fadr:"regular","fa-regular":"regular",fadl:"light","fa-light":"light",fadt:"thin","fa-thin":"thin"},sharp:{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light",fast:"thin","fa-thin":"thin"},"sharp-duotone":{fa:"solid",fasds:"solid","fa-solid":"solid",fasdr:"regular","fa-regular":"regular",fasdl:"light","fa-light":"light",fasdt:"thin","fa-thin":"thin"}},ne={GROUP:"duotone-group",PRIMARY:"primary",SECONDARY:"secondary"},te=["fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone"],W="classic",Q="duotone",re="sharp",oe="sharp-duotone",X=[W,Q,re,oe],se={classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},duotone:{900:"fad",400:"fadr",300:"fadl",100:"fadt"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds",400:"fasdr",300:"fasdl",100:"fasdt"}},ue={"Font Awesome 6 Free":{900:"fas",400:"far"},"Font Awesome 6 Pro":{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},"Font Awesome 6 Brands":{400:"fab",normal:"fab"},"Font Awesome 6 Duotone":{900:"fad",400:"fadr",normal:"fadr",300:"fadl",100:"fadt"},"Font Awesome 6 Sharp":{900:"fass",400:"fasr",normal:"fasr",300:"fasl",100:"fast"},"Font Awesome 6 Sharp Duotone":{900:"fasds",400:"fasdr",normal:"fasdr",300:"fasdl",100:"fasdt"}},he=new Map([["classic",{defaultShortPrefixId:"fas",defaultStyleId:"solid",styleIds:["solid","regular","light","thin","brands"],futureStyleIds:[],defaultFontWeight:900}],["sharp",{defaultShortPrefixId:"fass",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["duotone",{defaultShortPrefixId:"fad",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["sharp-duotone",{defaultShortPrefixId:"fasds",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}]]),fe={classic:{solid:"fas",regular:"far",light:"fal",thin:"fat",brands:"fab"},duotone:{solid:"fad",regular:"fadr",light:"fadl",thin:"fadt"},sharp:{solid:"fass",regular:"fasr",light:"fasl",thin:"fast"},"sharp-duotone":{solid:"fasds",regular:"fasdr",light:"fasdl",thin:"fasdt"}},Ae=["fak","fa-kit","fakd","fa-kit-duotone"],Se={kit:{fak:"kit","fa-kit":"kit"},"kit-duotone":{fakd:"kit-duotone","fa-kit-duotone":"kit-duotone"}},we=["kit"],ke={kit:{"fa-kit":"fak"}},st=["fak","fakd"],Ve={kit:{fak:"fa-kit"}},Ke={kit:{kit:"fak"},"kit-duotone":{"kit-duotone":"fakd"}},ct={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},nt=["fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone"],at=["fak","fa-kit","fakd","fa-kit-duotone"],xt={"Font Awesome Kit":{400:"fak",normal:"fak"},"Font Awesome Kit Duotone":{400:"fakd",normal:"fakd"}},Qe={classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},duotone:{"fa-regular":"fadr","fa-light":"fadl","fa-thin":"fadt"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds","fa-regular":"fasdr","fa-light":"fasdl","fa-thin":"fasdt"}},kt={classic:["fas","far","fal","fat","fad"],duotone:["fadr","fadl","fadt"],sharp:["fass","fasr","fasl","fast"],"sharp-duotone":["fasds","fasdr","fasdl","fasdt"]},ot={classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},duotone:{fadr:"fa-regular",fadl:"fa-light",fadt:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid",fasdr:"fa-regular",fasdl:"fa-light",fasdt:"fa-thin"}},At=["fa-solid","fa-regular","fa-light","fa-thin","fa-duotone","fa-brands"],Me=["fa","fas","far","fal","fat","fad","fadr","fadl","fadt","fab","fass","fasr","fasl","fast","fasds","fasdr","fasdl","fasdt",...nt,...At],je=["solid","regular","light","thin","duotone","brands"],rt=[1,2,3,4,5,6,7,8,9,10],yt=rt.concat([11,12,13,14,15,16,17,18,19,20]),Rt=[...Object.keys(kt),...je,"2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",ct.GROUP,ct.SWAP_OPACITY,ct.PRIMARY,ct.SECONDARY].concat(rt.map(pe=>"".concat(pe,"x"))).concat(yt.map(pe=>"w-".concat(pe))),Nt={"Font Awesome 5 Free":{900:"fas",400:"far"},"Font Awesome 5 Pro":{900:"fas",400:"far",normal:"far",300:"fal"},"Font Awesome 5 Brands":{400:"fab",normal:"fab"},"Font Awesome 5 Duotone":{900:"fad"}};const Kt="___FONT_AWESOME___",si=16,Pi="fa",gi="svg-inline--fa",bi="data-fa-i2svg",wi="data-fa-pseudo-element",Ni="data-fa-pseudo-element-pending",qt="data-prefix",ci="data-icon",qe="fontawesome-i2svg",ri="async",Ot=["HTML","HEAD","STYLE","SCRIPT"],mt=(()=>{try{return!1}catch{return!1}})();function Ye(pe){return new Proxy(pe,{get(Ce,De){return De in Ce?Ce[De]:Ce[W]}})}const Tt=A({},ie);Tt[W]=A(A(A(A({},{"fa-duotone":"duotone"}),ie[W]),Se.kit),Se["kit-duotone"]);const Ut=Ye(Tt),oi=A({},fe);oi[W]=A(A(A(A({},{duotone:"fad"}),oi[W]),Ke.kit),Ke["kit-duotone"]);const ji=Ye(oi),ki=A({},ot);ki[W]=A(A({},ki[W]),Ve.kit);const os=Ye(ki),bs=A({},Qe);bs[W]=A(A({},bs[W]),ke.kit),Ye(bs);const hi=ee,Oi="fa-layers-text",li=K,Xs=A({},se);Ye(Xs);const ks=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],hr=ne,fr=[...we,...Rt],We=N.FontAwesomeConfig||{};function fi(pe){var Ce=w.querySelector("script["+pe+"]");if(Ce)return Ce.getAttribute(pe)}function zi(pe){return pe===""?!0:pe==="false"?!1:pe==="true"?!0:pe}w&&typeof w.querySelector=="function"&&[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach(Ce=>{let[De,Xe]=Ce;const Je=zi(fi(De));Je!=null&&(We[Xe]=Je)});const ts={styleDefault:"solid",familyDefault:W,cssPrefix:Pi,replacementClass:gi,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};We.familyPrefix&&(We.cssPrefix=We.familyPrefix);const hs=A(A({},ts),We);hs.autoReplaceSvg||(hs.observeMutations=!1);const Ge={};Object.keys(ts).forEach(pe=>{Object.defineProperty(Ge,pe,{enumerable:!0,set:function(Ce){hs[pe]=Ce,Zt.forEach(De=>De(Ge))},get:function(){return hs[pe]}})}),Object.defineProperty(Ge,"familyPrefix",{enumerable:!0,set:function(pe){hs.cssPrefix=pe,Zt.forEach(Ce=>Ce(Ge))},get:function(){return hs.cssPrefix}}),N.FontAwesomeConfig=Ge;const Zt=[];function $t(pe){return Zt.push(pe),()=>{Zt.splice(Zt.indexOf(pe),1)}}const Ui=si,ls={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function ns(pe){if(!pe||!Y)return;const Ce=w.createElement("style");Ce.setAttribute("type","text/css"),Ce.innerHTML=pe;const De=w.head.childNodes;let Xe=null;for(let Je=De.length-1;Je>-1;Je--){const vt=De[Je],Gt=(vt.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(Gt)>-1&&(Xe=vt)}return w.head.insertBefore(Ce,Xe),pe}const Ss="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function qi(){let pe=12,Ce="";for(;pe-- >0;)Ce+=Ss[Math.random()*62|0];return Ce}function pr(pe){const Ce=[];for(let De=(pe||[]).length>>>0;De--;)Ce[De]=pe[De];return Ce}function Js(pe){return pe.classList?pr(pe.classList):(pe.getAttribute("class")||"").split(" ").filter(Ce=>Ce)}function ir(pe){return"".concat(pe).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function hn(pe){return Object.keys(pe||{}).reduce((Ce,De)=>Ce+"".concat(De,'="').concat(ir(pe[De]),'" '),"").trim()}function ra(pe){return Object.keys(pe||{}).reduce((Ce,De)=>Ce+"".concat(De,": ").concat(pe[De].trim(),";"),"")}function ka(pe){return pe.size!==ls.size||pe.x!==ls.x||pe.y!==ls.y||pe.rotate!==ls.rotate||pe.flipX||pe.flipY}function Hn(pe){let{transform:Ce,containerWidth:De,iconWidth:Xe}=pe;const Je={transform:"translate(".concat(De/2," 256)")},vt="translate(".concat(Ce.x*32,", ").concat(Ce.y*32,") "),Gt="scale(".concat(Ce.size/16*(Ce.flipX?-1:1),", ").concat(Ce.size/16*(Ce.flipY?-1:1),") "),ai="rotate(".concat(Ce.rotate," 0 0)"),As={transform:"".concat(vt," ").concat(Gt," ").concat(ai)},Cs={transform:"translate(".concat(Xe/2*-1," -256)")};return{outer:Je,inner:As,path:Cs}}function to(pe){let{transform:Ce,width:De=si,height:Xe=si,startCentered:Je=!1}=pe,vt="";return Je&&V?vt+="translate(".concat(Ce.x/Ui-De/2,"em, ").concat(Ce.y/Ui-Xe/2,"em) "):Je?vt+="translate(calc(-50% + ".concat(Ce.x/Ui,"em), calc(-50% + ").concat(Ce.y/Ui,"em)) "):vt+="translate(".concat(Ce.x/Ui,"em, ").concat(Ce.y/Ui,"em) "),vt+="scale(".concat(Ce.size/Ui*(Ce.flipX?-1:1),", ").concat(Ce.size/Ui*(Ce.flipY?-1:1),") "),vt+="rotate(".concat(Ce.rotate,"deg) "),vt}var Gr=`:root, :host {
  --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
  --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
  --fa-font-light: normal 300 1em/1 "Font Awesome 6 Pro";
  --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Pro";
  --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";
  --fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 6 Duotone";
  --fa-font-duotone-light: normal 300 1em/1 "Font Awesome 6 Duotone";
  --fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 6 Duotone";
  --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";
  --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";
  --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp";
  --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp";
  --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp";
  --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 6 Sharp Duotone";
  --fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 6 Sharp Duotone";
  --fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 6 Sharp Duotone";
  --fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 6 Sharp Duotone";
}

svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
  overflow: visible;
  box-sizing: content-box;
}

.svg-inline--fa {
  display: var(--fa-display, inline-block);
  height: 1em;
  overflow: visible;
  vertical-align: -0.125em;
}
.svg-inline--fa.fa-2xs {
  vertical-align: 0.1em;
}
.svg-inline--fa.fa-xs {
  vertical-align: 0em;
}
.svg-inline--fa.fa-sm {
  vertical-align: -0.0714285705em;
}
.svg-inline--fa.fa-lg {
  vertical-align: -0.2em;
}
.svg-inline--fa.fa-xl {
  vertical-align: -0.25em;
}
.svg-inline--fa.fa-2xl {
  vertical-align: -0.3125em;
}
.svg-inline--fa.fa-pull-left {
  margin-right: var(--fa-pull-margin, 0.3em);
  width: auto;
}
.svg-inline--fa.fa-pull-right {
  margin-left: var(--fa-pull-margin, 0.3em);
  width: auto;
}
.svg-inline--fa.fa-li {
  width: var(--fa-li-width, 2em);
  top: 0.25em;
}
.svg-inline--fa.fa-fw {
  width: var(--fa-fw-width, 1.25em);
}

.fa-layers svg.svg-inline--fa {
  bottom: 0;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
}

.fa-layers-counter, .fa-layers-text {
  display: inline-block;
  position: absolute;
  text-align: center;
}

.fa-layers {
  display: inline-block;
  height: 1em;
  position: relative;
  text-align: center;
  vertical-align: -0.125em;
  width: 1em;
}
.fa-layers svg.svg-inline--fa {
  transform-origin: center center;
}

.fa-layers-text {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  transform-origin: center center;
}

.fa-layers-counter {
  background-color: var(--fa-counter-background-color, #ff253a);
  border-radius: var(--fa-counter-border-radius, 1em);
  box-sizing: border-box;
  color: var(--fa-inverse, #fff);
  line-height: var(--fa-counter-line-height, 1);
  max-width: var(--fa-counter-max-width, 5em);
  min-width: var(--fa-counter-min-width, 1.5em);
  overflow: hidden;
  padding: var(--fa-counter-padding, 0.25em 0.5em);
  right: var(--fa-right, 0);
  text-overflow: ellipsis;
  top: var(--fa-top, 0);
  transform: scale(var(--fa-counter-scale, 0.25));
  transform-origin: top right;
}

.fa-layers-bottom-right {
  bottom: var(--fa-bottom, 0);
  right: var(--fa-right, 0);
  top: auto;
  transform: scale(var(--fa-layers-scale, 0.25));
  transform-origin: bottom right;
}

.fa-layers-bottom-left {
  bottom: var(--fa-bottom, 0);
  left: var(--fa-left, 0);
  right: auto;
  top: auto;
  transform: scale(var(--fa-layers-scale, 0.25));
  transform-origin: bottom left;
}

.fa-layers-top-right {
  top: var(--fa-top, 0);
  right: var(--fa-right, 0);
  transform: scale(var(--fa-layers-scale, 0.25));
  transform-origin: top right;
}

.fa-layers-top-left {
  left: var(--fa-left, 0);
  right: auto;
  top: var(--fa-top, 0);
  transform: scale(var(--fa-layers-scale, 0.25));
  transform-origin: top left;
}

.fa-1x {
  font-size: 1em;
}

.fa-2x {
  font-size: 2em;
}

.fa-3x {
  font-size: 3em;
}

.fa-4x {
  font-size: 4em;
}

.fa-5x {
  font-size: 5em;
}

.fa-6x {
  font-size: 6em;
}

.fa-7x {
  font-size: 7em;
}

.fa-8x {
  font-size: 8em;
}

.fa-9x {
  font-size: 9em;
}

.fa-10x {
  font-size: 10em;
}

.fa-2xs {
  font-size: 0.625em;
  line-height: 0.1em;
  vertical-align: 0.225em;
}

.fa-xs {
  font-size: 0.75em;
  line-height: 0.0833333337em;
  vertical-align: 0.125em;
}

.fa-sm {
  font-size: 0.875em;
  line-height: 0.0714285718em;
  vertical-align: 0.0535714295em;
}

.fa-lg {
  font-size: 1.25em;
  line-height: 0.05em;
  vertical-align: -0.075em;
}

.fa-xl {
  font-size: 1.5em;
  line-height: 0.0416666682em;
  vertical-align: -0.125em;
}

.fa-2xl {
  font-size: 2em;
  line-height: 0.03125em;
  vertical-align: -0.1875em;
}

.fa-fw {
  text-align: center;
  width: 1.25em;
}

.fa-ul {
  list-style-type: none;
  margin-left: var(--fa-li-margin, 2.5em);
  padding-left: 0;
}
.fa-ul > li {
  position: relative;
}

.fa-li {
  left: calc(-1 * var(--fa-li-width, 2em));
  position: absolute;
  text-align: center;
  width: var(--fa-li-width, 2em);
  line-height: inherit;
}

.fa-border {
  border-color: var(--fa-border-color, #eee);
  border-radius: var(--fa-border-radius, 0.1em);
  border-style: var(--fa-border-style, solid);
  border-width: var(--fa-border-width, 0.08em);
  padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);
}

.fa-pull-left {
  float: left;
  margin-right: var(--fa-pull-margin, 0.3em);
}

.fa-pull-right {
  float: right;
  margin-left: var(--fa-pull-margin, 0.3em);
}

.fa-beat {
  animation-name: fa-beat;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, ease-in-out);
}

.fa-bounce {
  animation-name: fa-bounce;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));
}

.fa-fade {
  animation-name: fa-fade;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
}

.fa-beat-fade {
  animation-name: fa-beat-fade;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
}

.fa-flip {
  animation-name: fa-flip;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, ease-in-out);
}

.fa-shake {
  animation-name: fa-shake;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, linear);
}

.fa-spin {
  animation-name: fa-spin;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 2s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, linear);
}

.fa-spin-reverse {
  --fa-animation-direction: reverse;
}

.fa-pulse,
.fa-spin-pulse {
  animation-name: fa-spin;
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, steps(8));
}

@media (prefers-reduced-motion: reduce) {
  .fa-beat,
.fa-bounce,
.fa-fade,
.fa-beat-fade,
.fa-flip,
.fa-pulse,
.fa-shake,
.fa-spin,
.fa-spin-pulse {
    animation-delay: -1ms;
    animation-duration: 1ms;
    animation-iteration-count: 1;
    transition-delay: 0s;
    transition-duration: 0s;
  }
}
@keyframes fa-beat {
  0%, 90% {
    transform: scale(1);
  }
  45% {
    transform: scale(var(--fa-beat-scale, 1.25));
  }
}
@keyframes fa-bounce {
  0% {
    transform: scale(1, 1) translateY(0);
  }
  10% {
    transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
  }
  30% {
    transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
  }
  50% {
    transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
  }
  57% {
    transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
  }
  64% {
    transform: scale(1, 1) translateY(0);
  }
  100% {
    transform: scale(1, 1) translateY(0);
  }
}
@keyframes fa-fade {
  50% {
    opacity: var(--fa-fade-opacity, 0.4);
  }
}
@keyframes fa-beat-fade {
  0%, 100% {
    opacity: var(--fa-beat-fade-opacity, 0.4);
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(var(--fa-beat-fade-scale, 1.125));
  }
}
@keyframes fa-flip {
  50% {
    transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
  }
}
@keyframes fa-shake {
  0% {
    transform: rotate(-15deg);
  }
  4% {
    transform: rotate(15deg);
  }
  8%, 24% {
    transform: rotate(-18deg);
  }
  12%, 28% {
    transform: rotate(18deg);
  }
  16% {
    transform: rotate(-22deg);
  }
  20% {
    transform: rotate(22deg);
  }
  32% {
    transform: rotate(-12deg);
  }
  36% {
    transform: rotate(12deg);
  }
  40%, 100% {
    transform: rotate(0deg);
  }
}
@keyframes fa-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.fa-rotate-90 {
  transform: rotate(90deg);
}

.fa-rotate-180 {
  transform: rotate(180deg);
}

.fa-rotate-270 {
  transform: rotate(270deg);
}

.fa-flip-horizontal {
  transform: scale(-1, 1);
}

.fa-flip-vertical {
  transform: scale(1, -1);
}

.fa-flip-both,
.fa-flip-horizontal.fa-flip-vertical {
  transform: scale(-1, -1);
}

.fa-rotate-by {
  transform: rotate(var(--fa-rotate-angle, 0));
}

.fa-stack {
  display: inline-block;
  vertical-align: middle;
  height: 2em;
  position: relative;
  width: 2.5em;
}

.fa-stack-1x,
.fa-stack-2x {
  bottom: 0;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  z-index: var(--fa-stack-z-index, auto);
}

.svg-inline--fa.fa-stack-1x {
  height: 1em;
  width: 1.25em;
}
.svg-inline--fa.fa-stack-2x {
  height: 2em;
  width: 2.5em;
}

.fa-inverse {
  color: var(--fa-inverse, #fff);
}

.sr-only,
.fa-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.sr-only-focusable:not(:focus),
.fa-sr-only-focusable:not(:focus) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.svg-inline--fa .fa-primary {
  fill: var(--fa-primary-color, currentColor);
  opacity: var(--fa-primary-opacity, 1);
}

.svg-inline--fa .fa-secondary {
  fill: var(--fa-secondary-color, currentColor);
  opacity: var(--fa-secondary-opacity, 0.4);
}

.svg-inline--fa.fa-swap-opacity .fa-primary {
  opacity: var(--fa-secondary-opacity, 0.4);
}

.svg-inline--fa.fa-swap-opacity .fa-secondary {
  opacity: var(--fa-primary-opacity, 1);
}

.svg-inline--fa mask .fa-primary,
.svg-inline--fa mask .fa-secondary {
  fill: black;
}`;function Yn(){const pe=Pi,Ce=gi,De=Ge.cssPrefix,Xe=Ge.replacementClass;let Je=Gr;if(De!==pe||Xe!==Ce){const vt=new RegExp("\\.".concat(pe,"\\-"),"g"),Gt=new RegExp("\\--".concat(pe,"\\-"),"g"),ai=new RegExp("\\.".concat(Ce),"g");Je=Je.replace(vt,".".concat(De,"-")).replace(Gt,"--".concat(De,"-")).replace(ai,".".concat(Xe))}return Je}let To=!1;function Pn(){Ge.autoAddCss&&!To&&(ns(Yn()),To=!0)}var On={mixout(){return{dom:{css:Yn,insertCss:Pn}}},hooks(){return{beforeDOMElementCreation(){Pn()},beforeI2svg(){Pn()}}}};const Kr=N||{};Kr[Kt]||(Kr[Kt]={}),Kr[Kt].styles||(Kr[Kt].styles={}),Kr[Kt].hooks||(Kr[Kt].hooks={}),Kr[Kt].shims||(Kr[Kt].shims=[]);var dn=Kr[Kt];const mo=[],Xn=function(){w.removeEventListener("DOMContentLoaded",Xn),na=1,mo.map(pe=>pe())};let na=!1;Y&&(na=(w.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(w.readyState),na||w.addEventListener("DOMContentLoaded",Xn));function xl(pe){Y&&(na?setTimeout(pe,0):mo.push(pe))}function Lo(pe){const{tag:Ce,attributes:De={},children:Xe=[]}=pe;return typeof pe=="string"?ir(pe):"<".concat(Ce," ").concat(hn(De),">").concat(Xe.map(Lo).join(""),"</").concat(Ce,">")}function Io(pe,Ce,De){if(pe&&pe[Ce]&&pe[Ce][De])return{prefix:Ce,iconName:De,icon:pe[Ce][De]}}var bl=function(Ce,De,Xe,Je){var vt=Object.keys(Ce),Gt=vt.length,ai=De,As,Cs,zs;for(Xe===void 0?(As=1,zs=Ce[vt[0]]):(As=0,zs=Xe);As<Gt;As++)Cs=vt[As],zs=ai(zs,Ce[Cs],Cs,Ce);return zs};function Zn(pe){const Ce=[];let De=0;const Xe=pe.length;for(;De<Xe;){const Je=pe.charCodeAt(De++);if(Je>=55296&&Je<=56319&&De<Xe){const vt=pe.charCodeAt(De++);(vt&64512)==56320?Ce.push(((Je&1023)<<10)+(vt&1023)+65536):(Ce.push(Je),De--)}else Ce.push(Je)}return Ce}function Sl(pe){const Ce=Zn(pe);return Ce.length===1?Ce[0].toString(16):null}function Vi(pe,Ce){const De=pe.length;let Xe=pe.charCodeAt(Ce),Je;return Xe>=55296&&Xe<=56319&&De>Ce+1&&(Je=pe.charCodeAt(Ce+1),Je>=56320&&Je<=57343)?(Xe-55296)*1024+Je-56320+65536:Xe}function yl(pe){return Object.keys(pe).reduce((Ce,De)=>{const Xe=pe[De];return!!Xe.icon?Ce[Xe.iconName]=Xe.icon:Ce[De]=Xe,Ce},{})}function Sn(pe,Ce){let De=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{skipHooks:Xe=!1}=De,Je=yl(Ce);typeof dn.hooks.addPack=="function"&&!Xe?dn.hooks.addPack(pe,yl(Ce)):dn.styles[pe]=A(A({},dn.styles[pe]||{}),Je),pe==="fas"&&Sn("fa",Ce)}const{styles:Kn,shims:Po}=dn,Wi=Object.keys(os),yn=Wi.reduce((pe,Ce)=>(pe[Ce]=Object.keys(os[Ce]),pe),{});let sr=null,qn={},rl={},Rn={},Or={},fn={};function $r(pe){return~fr.indexOf(pe)}function Wc(pe,Ce){const De=Ce.split("-"),Xe=De[0],Je=De.slice(1).join("-");return Xe===pe&&Je!==""&&!$r(Je)?Je:null}const Qn=()=>{const pe=Xe=>bl(Kn,(Je,vt,Gt)=>(Je[Gt]=bl(vt,Xe,{}),Je),{});qn=pe((Xe,Je,vt)=>(Je[3]&&(Xe[Je[3]]=vt),Je[2]&&Je[2].filter(ai=>typeof ai=="number").forEach(ai=>{Xe[ai.toString(16)]=vt}),Xe)),rl=pe((Xe,Je,vt)=>(Xe[vt]=vt,Je[2]&&Je[2].filter(ai=>typeof ai=="string").forEach(ai=>{Xe[ai]=vt}),Xe)),fn=pe((Xe,Je,vt)=>{const Gt=Je[2];return Xe[vt]=vt,Gt.forEach(ai=>{Xe[ai]=vt}),Xe});const Ce="far"in Kn||Ge.autoFetchSvg,De=bl(Po,(Xe,Je)=>{const vt=Je[0];let Gt=Je[1];const ai=Je[2];return Gt==="far"&&!Ce&&(Gt="fas"),typeof vt=="string"&&(Xe.names[vt]={prefix:Gt,iconName:ai}),typeof vt=="number"&&(Xe.unicodes[vt.toString(16)]={prefix:Gt,iconName:ai}),Xe},{names:{},unicodes:{}});Rn=De.names,Or=De.unicodes,sr=$e(Ge.styleDefault,{family:Ge.familyDefault})};$t(pe=>{sr=$e(pe.styleDefault,{family:Ge.familyDefault})}),Qn();function Dn(pe,Ce){return(qn[pe]||{})[Ce]}function Xu(pe,Ce){return(rl[pe]||{})[Ce]}function Ie(pe,Ce){return(fn[pe]||{})[Ce]}function _t(pe){return Rn[pe]||{prefix:null,iconName:null}}function Ht(pe){const Ce=Or[pe],De=Dn("fas",pe);return Ce||(De?{prefix:"fas",iconName:De}:null)||{prefix:null,iconName:null}}function ti(){return sr}const Hi=()=>({prefix:null,iconName:null,rest:[]});function Ee(pe){let Ce=W;const De=Wi.reduce((Xe,Je)=>(Xe[Je]="".concat(Ge.cssPrefix,"-").concat(Je),Xe),{});return X.forEach(Xe=>{(pe.includes(De[Xe])||pe.some(Je=>yn[Xe].includes(Je)))&&(Ce=Xe)}),Ce}function $e(pe){let Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{family:De=W}=Ce,Xe=Ut[De][pe];if(De===Q&&!pe)return"fad";const Je=ji[De][pe]||ji[De][Xe],vt=pe in dn.styles?pe:null;return Je||vt||null}function bt(pe){let Ce=[],De=null;return pe.forEach(Xe=>{const Je=Wc(Ge.cssPrefix,Xe);Je?De=Je:Xe&&Ce.push(Xe)}),{iconName:De,rest:Ce}}function Wt(pe){return pe.sort().filter((Ce,De,Xe)=>Xe.indexOf(Ce)===De)}function vi(pe){let Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{skipLookups:De=!1}=Ce;let Xe=null;const Je=Me.concat(at),vt=Wt(pe.filter(Ys=>Je.includes(Ys))),Gt=Wt(pe.filter(Ys=>!Me.includes(Ys))),ai=vt.filter(Ys=>(Xe=Ys,!te.includes(Ys))),[As=null]=ai,Cs=Ee(vt),zs=A(A({},bt(Gt)),{},{prefix:$e(As,{family:Cs})});return A(A(A({},zs),Us({values:pe,family:Cs,styles:Kn,config:Ge,canonical:zs,givenPrefix:Xe})),es(De,Xe,zs))}function es(pe,Ce,De){let{prefix:Xe,iconName:Je}=De;if(pe||!Xe||!Je)return{prefix:Xe,iconName:Je};const vt=Ce==="fa"?_t(Je):{},Gt=Ie(Xe,Je);return Je=vt.iconName||Gt||Je,Xe=vt.prefix||Xe,Xe==="far"&&!Kn.far&&Kn.fas&&!Ge.autoFetchSvg&&(Xe="fas"),{prefix:Xe,iconName:Je}}const Qi=X.filter(pe=>pe!==W||pe!==Q),Ji=Object.keys(ot).filter(pe=>pe!==W).map(pe=>Object.keys(ot[pe])).flat();function Us(pe){const{values:Ce,family:De,canonical:Xe,givenPrefix:Je="",styles:vt={},config:Gt={}}=pe,ai=De===Q,As=Ce.includes("fa-duotone")||Ce.includes("fad"),Cs=Gt.familyDefault==="duotone",zs=Xe.prefix==="fad"||Xe.prefix==="fa-duotone";if(!ai&&(As||Cs||zs)&&(Xe.prefix="fad"),(Ce.includes("fa-brands")||Ce.includes("fab"))&&(Xe.prefix="fab"),!Xe.prefix&&Qi.includes(De)&&(Object.keys(vt).find(tr=>Ji.includes(tr))||Gt.autoFetchSvg)){const tr=he.get(De).defaultShortPrefixId;Xe.prefix=tr,Xe.iconName=Ie(Xe.prefix,Xe.iconName)||Xe.iconName}return(Xe.prefix==="fa"||Je==="fa")&&(Xe.prefix=ti()||"fas"),Xe}class er{constructor(){this.definitions={}}add(){for(var Ce=arguments.length,De=new Array(Ce),Xe=0;Xe<Ce;Xe++)De[Xe]=arguments[Xe];const Je=De.reduce(this._pullDefinitions,{});Object.keys(Je).forEach(vt=>{this.definitions[vt]=A(A({},this.definitions[vt]||{}),Je[vt]),Sn(vt,Je[vt]);const Gt=os[W][vt];Gt&&Sn(Gt,Je[vt]),Qn()})}reset(){this.definitions={}}_pullDefinitions(Ce,De){const Xe=De.prefix&&De.iconName&&De.icon?{0:De}:De;return Object.keys(Xe).map(Je=>{const{prefix:vt,iconName:Gt,icon:ai}=Xe[Je],As=ai[2];Ce[vt]||(Ce[vt]={}),As.length>0&&As.forEach(Cs=>{typeof Cs=="string"&&(Ce[vt][Cs]=ai)}),Ce[vt][Gt]=ai}),Ce}}let Cr=[],rr={};const xr={},Nn=Object.keys(xr);function _a(pe,Ce){let{mixoutsTo:De}=Ce;return Cr=pe,rr={},Object.keys(xr).forEach(Xe=>{Nn.indexOf(Xe)===-1&&delete xr[Xe]}),Cr.forEach(Xe=>{const Je=Xe.mixout?Xe.mixout():{};if(Object.keys(Je).forEach(vt=>{typeof Je[vt]=="function"&&(De[vt]=Je[vt]),typeof Je[vt]=="object"&&Object.keys(Je[vt]).forEach(Gt=>{De[vt]||(De[vt]={}),De[vt][Gt]=Je[vt][Gt]})}),Xe.hooks){const vt=Xe.hooks();Object.keys(vt).forEach(Gt=>{rr[Gt]||(rr[Gt]=[]),rr[Gt].push(vt[Gt])})}Xe.provides&&Xe.provides(xr)}),De}function Fl(pe,Ce){for(var De=arguments.length,Xe=new Array(De>2?De-2:0),Je=2;Je<De;Je++)Xe[Je-2]=arguments[Je];return(rr[pe]||[]).forEach(Gt=>{Ce=Gt.apply(null,[Ce,...Xe])}),Ce}function Ua(pe){for(var Ce=arguments.length,De=new Array(Ce>1?Ce-1:0),Xe=1;Xe<Ce;Xe++)De[Xe-1]=arguments[Xe];(rr[pe]||[]).forEach(vt=>{vt.apply(null,De)})}function io(){const pe=arguments[0],Ce=Array.prototype.slice.call(arguments,1);return xr[pe]?xr[pe].apply(null,Ce):void 0}function wn(pe){pe.prefix==="fa"&&(pe.prefix="fas");let{iconName:Ce}=pe;const De=pe.prefix||ti();if(Ce)return Ce=Ie(De,Ce)||Ce,Io(uu.definitions,De,Ce)||Io(dn.styles,De,Ce)}const uu=new er,aa={noAuto:()=>{Ge.autoReplaceSvg=!1,Ge.observeMutations=!1,Ua("noAuto")},config:Ge,dom:{i2svg:function(){let pe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Y?(Ua("beforeI2svg",pe),io("pseudoElements2svg",pe),io("i2svg",pe)):Promise.reject(new Error("Operation requires a DOM of some kind."))},watch:function(){let pe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{autoReplaceSvgRoot:Ce}=pe;Ge.autoReplaceSvg===!1&&(Ge.autoReplaceSvg=!0),Ge.observeMutations=!0,xl(()=>{hu({autoReplaceSvgRoot:Ce}),Ua("watch",pe)})}},parse:{icon:pe=>{if(pe===null)return null;if(typeof pe=="object"&&pe.prefix&&pe.iconName)return{prefix:pe.prefix,iconName:Ie(pe.prefix,pe.iconName)||pe.iconName};if(Array.isArray(pe)&&pe.length===2){const Ce=pe[1].indexOf("fa-")===0?pe[1].slice(3):pe[1],De=$e(pe[0]);return{prefix:De,iconName:Ie(De,Ce)||Ce}}if(typeof pe=="string"&&(pe.indexOf("".concat(Ge.cssPrefix,"-"))>-1||pe.match(hi))){const Ce=vi(pe.split(" "),{skipLookups:!0});return{prefix:Ce.prefix||ti(),iconName:Ie(Ce.prefix,Ce.iconName)||Ce.iconName}}if(typeof pe=="string"){const Ce=ti();return{prefix:Ce,iconName:Ie(Ce,pe)||pe}}}},library:uu,findIconDefinition:wn,toHtml:Lo},hu=function(){let pe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{autoReplaceSvgRoot:Ce=w}=pe;(Object.keys(dn.styles).length>0||Ge.autoFetchSvg)&&Y&&Ge.autoReplaceSvg&&aa.dom.i2svg({node:Ce})};function Ph(pe,Ce){return Object.defineProperty(pe,"abstract",{get:Ce}),Object.defineProperty(pe,"html",{get:function(){return pe.abstract.map(De=>Lo(De))}}),Object.defineProperty(pe,"node",{get:function(){if(!Y)return;const De=w.createElement("div");return De.innerHTML=pe.html,De.children}}),pe}function Zu(pe){let{children:Ce,main:De,mask:Xe,attributes:Je,styles:vt,transform:Gt}=pe;if(ka(Gt)&&De.found&&!Xe.found){const{width:ai,height:As}=De,Cs={x:ai/As/2,y:.5};Je.style=ra(A(A({},vt),{},{"transform-origin":"".concat(Cs.x+Gt.x/16,"em ").concat(Cs.y+Gt.y/16,"em")}))}return[{tag:"svg",attributes:Je,children:Ce}]}function Yc(pe){let{prefix:Ce,iconName:De,children:Xe,attributes:Je,symbol:vt}=pe;const Gt=vt===!0?"".concat(Ce,"-").concat(Ge.cssPrefix,"-").concat(De):vt;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:A(A({},Je),{},{id:Gt}),children:Xe}]}]}function Ku(pe){const{icons:{main:Ce,mask:De},prefix:Xe,iconName:Je,transform:vt,symbol:Gt,title:ai,maskId:As,titleId:Cs,extra:zs,watchable:Ys=!1}=pe,{width:tr,height:Wr}=De.found?De:Ce,ja=st.includes(Xe),Ml=[Ge.replacementClass,Je?"".concat(Ge.cssPrefix,"-").concat(Je):""].filter(Uh=>zs.classes.indexOf(Uh)===-1).filter(Uh=>Uh!==""||!!Uh).concat(zs.classes).join(" ");let Jn={children:[],attributes:A(A({},zs.attributes),{},{"data-prefix":Xe,"data-icon":Je,class:Ml,role:zs.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(tr," ").concat(Wr)})};const hc=ja&&!~zs.classes.indexOf("fa-fw")?{width:"".concat(tr/Wr*16*.0625,"em")}:{};Ys&&(Jn.attributes[bi]=""),ai&&(Jn.children.push({tag:"title",attributes:{id:Jn.attributes["aria-labelledby"]||"title-".concat(Cs||qi())},children:[ai]}),delete Jn.attributes.title);const Ro=A(A({},Jn),{},{prefix:Xe,iconName:Je,main:Ce,mask:De,maskId:As,transform:vt,symbol:Gt,styles:A(A({},hc),zs.styles)}),{children:qc,attributes:g2}=De.found&&Ce.found?io("generateAbstractMask",Ro)||{children:[],attributes:{}}:io("generateAbstractIcon",Ro)||{children:[],attributes:{}};return Ro.children=qc,Ro.attributes=g2,Gt?Yc(Ro):Zu(Ro)}function qu(pe){const{content:Ce,width:De,height:Xe,transform:Je,title:vt,extra:Gt,watchable:ai=!1}=pe,As=A(A(A({},Gt.attributes),vt?{title:vt}:{}),{},{class:Gt.classes.join(" ")});ai&&(As[bi]="");const Cs=A({},Gt.styles);ka(Je)&&(Cs.transform=to({transform:Je,startCentered:!0,width:De,height:Xe}),Cs["-webkit-transform"]=Cs.transform);const zs=ra(Cs);zs.length>0&&(As.style=zs);const Ys=[];return Ys.push({tag:"span",attributes:As,children:[Ce]}),vt&&Ys.push({tag:"span",attributes:{class:"sr-only"},children:[vt]}),Ys}function _d(pe){const{content:Ce,title:De,extra:Xe}=pe,Je=A(A(A({},Xe.attributes),De?{title:De}:{}),{},{class:Xe.classes.join(" ")}),vt=ra(Xe.styles);vt.length>0&&(Je.style=vt);const Gt=[];return Gt.push({tag:"span",attributes:Je,children:[Ce]}),De&&Gt.push({tag:"span",attributes:{class:"sr-only"},children:[De]}),Gt}const{styles:Qu}=dn;function du(pe){const Ce=pe[0],De=pe[1],[Xe]=pe.slice(4);let Je=null;return Array.isArray(Xe)?Je={tag:"g",attributes:{class:"".concat(Ge.cssPrefix,"-").concat(hr.GROUP)},children:[{tag:"path",attributes:{class:"".concat(Ge.cssPrefix,"-").concat(hr.SECONDARY),fill:"currentColor",d:Xe[0]}},{tag:"path",attributes:{class:"".concat(Ge.cssPrefix,"-").concat(hr.PRIMARY),fill:"currentColor",d:Xe[1]}}]}:Je={tag:"path",attributes:{fill:"currentColor",d:Xe}},{found:!0,width:Ce,height:De,icon:Je}}const fu={found:!1,width:512,height:512};function Ju(pe,Ce){!mt&&!Ge.showMissingIcons&&pe&&console.error('Icon with name "'.concat(pe,'" and prefix "').concat(Ce,'" is missing.'))}function $u(pe,Ce){let De=Ce;return Ce==="fa"&&Ge.styleDefault!==null&&(Ce=ti()),new Promise((Xe,Je)=>{if(De==="fa"){const vt=_t(pe)||{};pe=vt.iconName||pe,Ce=vt.prefix||Ce}if(pe&&Ce&&Qu[Ce]&&Qu[Ce][pe]){const vt=Qu[Ce][pe];return Xe(du(vt))}Ju(pe,Ce),Xe(A(A({},fu),{},{icon:Ge.showMissingIcons&&pe?io("missingIconAbstract")||{}:{}}))})}const pu=()=>{},Ul=Ge.measurePerformance&&k&&k.mark&&k.measure?k:{mark:pu,measure:pu},oc='FA "6.7.2"',mu=pe=>(Ul.mark("".concat(oc," ").concat(pe," begins")),()=>r2(pe)),r2=pe=>{Ul.mark("".concat(oc," ").concat(pe," ends")),Ul.measure("".concat(oc," ").concat(pe),"".concat(oc," ").concat(pe," begins"),"".concat(oc," ").concat(pe," ends"))};var lc={begin:mu,end:r2};const Xc=()=>{};function go(pe){return typeof(pe.getAttribute?pe.getAttribute(bi):null)=="string"}function Wo(pe){const Ce=pe.getAttribute?pe.getAttribute(qt):null,De=pe.getAttribute?pe.getAttribute(ci):null;return Ce&&De}function Oo(pe){return pe&&pe.classList&&pe.classList.contains&&pe.classList.contains(Ge.replacementClass)}function so(){return Ge.autoReplaceSvg===!0?_o.replace:_o[Ge.autoReplaceSvg]||_o.replace}function vd(pe){return w.createElementNS("http://www.w3.org/2000/svg",pe)}function ro(pe){return w.createElement(pe)}function nl(pe){let Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{ceFn:De=pe.tag==="svg"?vd:ro}=Ce;if(typeof pe=="string")return w.createTextNode(pe);const Xe=De(pe.tag);return Object.keys(pe.attributes||[]).forEach(function(vt){Xe.setAttribute(vt,pe.attributes[vt])}),(pe.children||[]).forEach(function(vt){Xe.appendChild(nl(vt,{ceFn:De}))}),Xe}function va(pe){let Ce=" ".concat(pe.outerHTML," ");return Ce="".concat(Ce,"Font Awesome fontawesome.com "),Ce}const _o={replace:function(pe){const Ce=pe[0];if(Ce.parentNode)if(pe[1].forEach(De=>{Ce.parentNode.insertBefore(nl(De),Ce)}),Ce.getAttribute(bi)===null&&Ge.keepOriginalSource){let De=w.createComment(va(Ce));Ce.parentNode.replaceChild(De,Ce)}else Ce.remove()},nest:function(pe){const Ce=pe[0],De=pe[1];if(~Js(Ce).indexOf(Ge.replacementClass))return _o.replace(pe);const Xe=new RegExp("".concat(Ge.cssPrefix,"-.*"));if(delete De[0].attributes.id,De[0].attributes.class){const vt=De[0].attributes.class.split(" ").reduce((Gt,ai)=>(ai===Ge.replacementClass||ai.match(Xe)?Gt.toSvg.push(ai):Gt.toNode.push(ai),Gt),{toNode:[],toSvg:[]});De[0].attributes.class=vt.toSvg.join(" "),vt.toNode.length===0?Ce.removeAttribute("class"):Ce.setAttribute("class",vt.toNode.join(" "))}const Je=De.map(vt=>Lo(vt)).join(`
`);Ce.setAttribute(bi,""),Ce.innerHTML=Je}};function eh(pe){pe()}function cc(pe,Ce){const De=typeof Ce=="function"?Ce:Xc;if(pe.length===0)De();else{let Xe=eh;Ge.mutateApproach===ri&&(Xe=N.requestAnimationFrame||eh),Xe(()=>{const Je=so(),vt=lc.begin("mutate");pe.map(Je),vt(),De()})}}let Ad=!1;function gu(){Ad=!0}function Oh(){Ad=!1}let Rh=null;function th(pe){if(!D||!Ge.observeMutations)return;const{treeCallback:Ce=Xc,nodeCallback:De=Xc,pseudoElementsCallback:Xe=Xc,observeMutationsRoot:Je=w}=pe;Rh=new D(vt=>{if(Ad)return;const Gt=ti();pr(vt).forEach(ai=>{if(ai.type==="childList"&&ai.addedNodes.length>0&&!go(ai.addedNodes[0])&&(Ge.searchPseudoElements&&Xe(ai.target),Ce(ai.target)),ai.type==="attributes"&&ai.target.parentNode&&Ge.searchPseudoElements&&Xe(ai.target.parentNode),ai.type==="attributes"&&go(ai.target)&&~ks.indexOf(ai.attributeName))if(ai.attributeName==="class"&&Wo(ai.target)){const{prefix:As,iconName:Cs}=vi(Js(ai.target));ai.target.setAttribute(qt,As||Gt),Cs&&ai.target.setAttribute(ci,Cs)}else Oo(ai.target)&&De(ai.target)})}),Y&&Rh.observe(Je,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}function n1(){Rh&&Rh.disconnect()}function a1(pe){const Ce=pe.getAttribute("style");let De=[];return Ce&&(De=Ce.split(";").reduce((Xe,Je)=>{const vt=Je.split(":"),Gt=vt[0],ai=vt.slice(1);return Gt&&ai.length>0&&(Xe[Gt]=ai.join(":").trim()),Xe},{})),De}function Cd(pe){const Ce=pe.getAttribute("data-prefix"),De=pe.getAttribute("data-icon"),Xe=pe.innerText!==void 0?pe.innerText.trim():"";let Je=vi(Js(pe));return Je.prefix||(Je.prefix=ti()),Ce&&De&&(Je.prefix=Ce,Je.iconName=De),Je.iconName&&Je.prefix||(Je.prefix&&Xe.length>0&&(Je.iconName=Xu(Je.prefix,pe.innerText)||Dn(Je.prefix,Sl(pe.innerText))),!Je.iconName&&Ge.autoFetchSvg&&pe.firstChild&&pe.firstChild.nodeType===Node.TEXT_NODE&&(Je.iconName=pe.firstChild.data)),Je}function _u(pe){const Ce=pr(pe.attributes).reduce((Je,vt)=>(Je.name!=="class"&&Je.name!=="style"&&(Je[vt.name]=vt.value),Je),{}),De=pe.getAttribute("title"),Xe=pe.getAttribute("data-fa-title-id");return Ge.autoA11y&&(De?Ce["aria-labelledby"]="".concat(Ge.replacementClass,"-title-").concat(Xe||qi()):(Ce["aria-hidden"]="true",Ce.focusable="false")),Ce}function Dh(){return{iconName:null,title:null,titleId:null,prefix:null,transform:ls,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function xd(pe){let Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0};const{iconName:De,prefix:Xe,rest:Je}=Cd(pe),vt=_u(pe),Gt=Fl("parseNodeAttributes",{},pe);let ai=Ce.styleParser?a1(pe):[];return A({iconName:De,title:pe.getAttribute("title"),titleId:pe.getAttribute("data-fa-title-id"),prefix:Xe,transform:ls,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:Je,styles:ai,attributes:vt}},Gt)}const{styles:o1}=dn;function l1(pe){const Ce=Ge.autoReplaceSvg==="nest"?xd(pe,{styleParser:!1}):xd(pe);return~Ce.extra.classes.indexOf(Oi)?io("generateLayersText",pe,Ce):io("generateSvgReplacementMutation",pe,Ce)}function vu(){return[...Ae,...Me]}function ih(pe){let Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!Y)return Promise.resolve();const De=w.documentElement.classList,Xe=zs=>De.add("".concat(qe,"-").concat(zs)),Je=zs=>De.remove("".concat(qe,"-").concat(zs)),vt=Ge.autoFetchSvg?vu():te.concat(Object.keys(o1));vt.includes("fa")||vt.push("fa");const Gt=[".".concat(Oi,":not([").concat(bi,"])")].concat(vt.map(zs=>".".concat(zs,":not([").concat(bi,"])"))).join(", ");if(Gt.length===0)return Promise.resolve();let ai=[];try{ai=pr(pe.querySelectorAll(Gt))}catch{}if(ai.length>0)Xe("pending"),Je("complete");else return Promise.resolve();const As=lc.begin("onTree"),Cs=ai.reduce((zs,Ys)=>{try{const tr=l1(Ys);tr&&zs.push(tr)}catch(tr){mt||tr.name==="MissingIcon"&&console.error(tr)}return zs},[]);return new Promise((zs,Ys)=>{Promise.all(Cs).then(tr=>{cc(tr,()=>{Xe("active"),Xe("complete"),Je("pending"),typeof Ce=="function"&&Ce(),As(),zs()})}).catch(tr=>{As(),Ys(tr)})})}function n2(pe){let Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;l1(pe).then(De=>{De&&cc([De],Ce)})}function c1(pe){return function(Ce){let De=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const Xe=(Ce||{}).icon?Ce:wn(Ce||{});let{mask:Je}=De;return Je&&(Je=(Je||{}).icon?Je:wn(Je||{})),pe(Xe,A(A({},De),{},{mask:Je}))}}const mf=function(pe){let Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{transform:De=ls,symbol:Xe=!1,mask:Je=null,maskId:vt=null,title:Gt=null,titleId:ai=null,classes:As=[],attributes:Cs={},styles:zs={}}=Ce;if(!pe)return;const{prefix:Ys,iconName:tr,icon:Wr}=pe;return Ph(A({type:"icon"},pe),()=>(Ua("beforeDOMElementCreation",{iconDefinition:pe,params:Ce}),Ge.autoA11y&&(Gt?Cs["aria-labelledby"]="".concat(Ge.replacementClass,"-title-").concat(ai||qi()):(Cs["aria-hidden"]="true",Cs.focusable="false")),Ku({icons:{main:du(Wr),mask:Je?du(Je.icon):{found:!1,width:null,height:null,icon:{}}},prefix:Ys,iconName:tr,transform:A(A({},ls),De),symbol:Xe,title:Gt,maskId:vt,titleId:ai,extra:{attributes:Cs,styles:zs,classes:As}})))};var bd={mixout(){return{icon:c1(mf)}},hooks(){return{mutationObserverCallbacks(pe){return pe.treeCallback=ih,pe.nodeCallback=n2,pe}}},provides(pe){pe.i2svg=function(Ce){const{node:De=w,callback:Xe=()=>{}}=Ce;return ih(De,Xe)},pe.generateSvgReplacementMutation=function(Ce,De){const{iconName:Xe,title:Je,titleId:vt,prefix:Gt,transform:ai,symbol:As,mask:Cs,maskId:zs,extra:Ys}=De;return new Promise((tr,Wr)=>{Promise.all([$u(Xe,Gt),Cs.iconName?$u(Cs.iconName,Cs.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(ja=>{let[Ml,Jn]=ja;tr([Ce,Ku({icons:{main:Ml,mask:Jn},prefix:Gt,iconName:Xe,transform:ai,symbol:As,maskId:zs,title:Je,titleId:vt,extra:Ys,watchable:!0})])}).catch(Wr)})},pe.generateAbstractIcon=function(Ce){let{children:De,attributes:Xe,main:Je,transform:vt,styles:Gt}=Ce;const ai=ra(Gt);ai.length>0&&(Xe.style=ai);let As;return ka(vt)&&(As=io("generateAbstractTransformGrouping",{main:Je,transform:vt,containerWidth:Je.width,iconWidth:Je.width})),De.push(As||Je.icon),{children:De,attributes:Xe}}}},a2={mixout(){return{layer(pe){let Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{classes:De=[]}=Ce;return Ph({type:"layer"},()=>{Ua("beforeDOMElementCreation",{assembler:pe,params:Ce});let Xe=[];return pe(Je=>{Array.isArray(Je)?Je.map(vt=>{Xe=Xe.concat(vt.abstract)}):Xe=Xe.concat(Je.abstract)}),[{tag:"span",attributes:{class:["".concat(Ge.cssPrefix,"-layers"),...De].join(" ")},children:Xe}]})}}}},sh={mixout(){return{counter(pe){let Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{title:De=null,classes:Xe=[],attributes:Je={},styles:vt={}}=Ce;return Ph({type:"counter",content:pe},()=>(Ua("beforeDOMElementCreation",{content:pe,params:Ce}),_d({content:pe.toString(),title:De,extra:{attributes:Je,styles:vt,classes:["".concat(Ge.cssPrefix,"-layers-counter"),...Xe]}})))}}}},o2={mixout(){return{text(pe){let Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{transform:De=ls,title:Xe=null,classes:Je=[],attributes:vt={},styles:Gt={}}=Ce;return Ph({type:"text",content:pe},()=>(Ua("beforeDOMElementCreation",{content:pe,params:Ce}),qu({content:pe,transform:A(A({},ls),De),title:Xe,extra:{attributes:vt,styles:Gt,classes:["".concat(Ge.cssPrefix,"-layers-text"),...Je]}})))}}},provides(pe){pe.generateLayersText=function(Ce,De){const{title:Xe,transform:Je,extra:vt}=De;let Gt=null,ai=null;if(V){const As=parseInt(getComputedStyle(Ce).fontSize,10),Cs=Ce.getBoundingClientRect();Gt=Cs.width/As,ai=Cs.height/As}return Ge.autoA11y&&!Xe&&(vt.attributes["aria-hidden"]="true"),Promise.resolve([Ce,qu({content:Ce.innerHTML,width:Gt,height:ai,transform:Je,title:Xe,extra:vt,watchable:!0})])}}};const l2=new RegExp('"',"ug"),Nh=[1105920,1112319],u1=A(A(A(A({},{FontAwesome:{normal:"fas",400:"fas"}}),ue),Nt),xt),wh=Object.keys(u1).reduce((pe,Ce)=>(pe[Ce.toLowerCase()]=u1[Ce],pe),{}),c2=Object.keys(wh).reduce((pe,Ce)=>{const De=wh[Ce];return pe[Ce]=De[900]||[...Object.entries(De)][0][1],pe},{});function Bh(pe){const Ce=pe.replace(l2,""),De=Vi(Ce,0),Xe=De>=Nh[0]&&De<=Nh[1],Je=Ce.length===2?Ce[0]===Ce[1]:!1;return{value:Sl(Je?Ce[0]:Ce),isSecondary:Xe||Je}}function Zc(pe,Ce){const De=pe.replace(/^['"]|['"]$/g,"").toLowerCase(),Xe=parseInt(Ce),Je=isNaN(Xe)?"normal":Xe;return(wh[De]||{})[Je]||c2[De]}function Au(pe,Ce){const De="".concat(Ni).concat(Ce.replace(":","-"));return new Promise((Xe,Je)=>{if(pe.getAttribute(De)!==null)return Xe();const Gt=pr(pe.children).filter(tr=>tr.getAttribute(wi)===Ce)[0],ai=N.getComputedStyle(pe,Ce),As=ai.getPropertyValue("font-family"),Cs=As.match(li),zs=ai.getPropertyValue("font-weight"),Ys=ai.getPropertyValue("content");if(Gt&&!Cs)return pe.removeChild(Gt),Xe();if(Cs&&Ys!=="none"&&Ys!==""){const tr=ai.getPropertyValue("content");let Wr=Zc(As,zs);const{value:ja,isSecondary:Ml}=Bh(tr),Jn=Cs[0].startsWith("FontAwesome");let hc=Dn(Wr,ja),Ro=hc;if(Jn){const qc=Ht(ja);qc.iconName&&qc.prefix&&(hc=qc.iconName,Wr=qc.prefix)}if(hc&&!Ml&&(!Gt||Gt.getAttribute(qt)!==Wr||Gt.getAttribute(ci)!==Ro)){pe.setAttribute(De,Ro),Gt&&pe.removeChild(Gt);const qc=Dh(),{extra:g2}=qc;g2.attributes[wi]=Ce,$u(hc,Wr).then(Uh=>{const x3=Ku(A(A({},qc),{},{icons:{main:Uh,mask:Hi()},prefix:Wr,iconName:Ro,extra:g2,watchable:!0})),p1=w.createElementNS("http://www.w3.org/2000/svg","svg");Ce==="::before"?pe.insertBefore(p1,pe.firstChild):pe.appendChild(p1),p1.outerHTML=x3.map(E_=>Lo(E_)).join(`
`),pe.removeAttribute(De),Xe()}).catch(Je)}else Xe()}else Xe()})}function u2(pe){return Promise.all([Au(pe,"::before"),Au(pe,"::after")])}function Kc(pe){return pe.parentNode!==document.head&&!~Ot.indexOf(pe.tagName.toUpperCase())&&!pe.getAttribute(wi)&&(!pe.parentNode||pe.parentNode.tagName!=="svg")}function zh(pe){if(Y)return new Promise((Ce,De)=>{const Xe=pr(pe.querySelectorAll("*")).filter(Kc).map(u2),Je=lc.begin("searchPseudoElements");gu(),Promise.all(Xe).then(()=>{Je(),Oh(),Ce()}).catch(()=>{Je(),Oh(),De()})})}var uc={hooks(){return{mutationObserverCallbacks(pe){return pe.pseudoElementsCallback=zh,pe}}},provides(pe){pe.pseudoElements2svg=function(Ce){const{node:De=w}=Ce;Ge.searchPseudoElements&&zh(De)}}};let Cu=!1;var h1={mixout(){return{dom:{unwatch(){gu(),Cu=!0}}}},hooks(){return{bootstrap(){th(Fl("mutationObserverCallbacks",{}))},noAuto(){n1()},watch(pe){const{observeMutationsRoot:Ce}=pe;Cu?Oh():th(Fl("mutationObserverCallbacks",{observeMutationsRoot:Ce}))}}}};const xu=pe=>{let Ce={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return pe.toLowerCase().split(" ").reduce((De,Xe)=>{const Je=Xe.toLowerCase().split("-"),vt=Je[0];let Gt=Je.slice(1).join("-");if(vt&&Gt==="h")return De.flipX=!0,De;if(vt&&Gt==="v")return De.flipY=!0,De;if(Gt=parseFloat(Gt),isNaN(Gt))return De;switch(vt){case"grow":De.size=De.size+Gt;break;case"shrink":De.size=De.size-Gt;break;case"left":De.x=De.x-Gt;break;case"right":De.x=De.x+Gt;break;case"up":De.y=De.y-Gt;break;case"down":De.y=De.y+Gt;break;case"rotate":De.rotate=De.rotate+Gt;break}return De},Ce)};var gf={mixout(){return{parse:{transform:pe=>xu(pe)}}},hooks(){return{parseNodeAttributes(pe,Ce){const De=Ce.getAttribute("data-fa-transform");return De&&(pe.transform=xu(De)),pe}}},provides(pe){pe.generateAbstractTransformGrouping=function(Ce){let{main:De,transform:Xe,containerWidth:Je,iconWidth:vt}=Ce;const Gt={transform:"translate(".concat(Je/2," 256)")},ai="translate(".concat(Xe.x*32,", ").concat(Xe.y*32,") "),As="scale(".concat(Xe.size/16*(Xe.flipX?-1:1),", ").concat(Xe.size/16*(Xe.flipY?-1:1),") "),Cs="rotate(".concat(Xe.rotate," 0 0)"),zs={transform:"".concat(ai," ").concat(As," ").concat(Cs)},Ys={transform:"translate(".concat(vt/2*-1," -256)")},tr={outer:Gt,inner:zs,path:Ys};return{tag:"g",attributes:A({},tr.outer),children:[{tag:"g",attributes:A({},tr.inner),children:[{tag:De.icon.tag,children:De.icon.children,attributes:A(A({},De.icon.attributes),tr.path)}]}]}}}};const Sd={x:0,y:0,width:"100%",height:"100%"};function Fh(pe){let Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return pe.attributes&&(pe.attributes.fill||Ce)&&(pe.attributes.fill="black"),pe}function h2(pe){return pe.tag==="g"?pe.children:[pe]}var vo={hooks(){return{parseNodeAttributes(pe,Ce){const De=Ce.getAttribute("data-fa-mask"),Xe=De?vi(De.split(" ").map(Je=>Je.trim())):Hi();return Xe.prefix||(Xe.prefix=ti()),pe.mask=Xe,pe.maskId=Ce.getAttribute("data-fa-mask-id"),pe}}},provides(pe){pe.generateAbstractMask=function(Ce){let{children:De,attributes:Xe,main:Je,mask:vt,maskId:Gt,transform:ai}=Ce;const{width:As,icon:Cs}=Je,{width:zs,icon:Ys}=vt,tr=Hn({transform:ai,containerWidth:zs,iconWidth:As}),Wr={tag:"rect",attributes:A(A({},Sd),{},{fill:"white"})},ja=Cs.children?{children:Cs.children.map(Fh)}:{},Ml={tag:"g",attributes:A({},tr.inner),children:[Fh(A({tag:Cs.tag,attributes:A(A({},Cs.attributes),tr.path)},ja))]},Jn={tag:"g",attributes:A({},tr.outer),children:[Ml]},hc="mask-".concat(Gt||qi()),Ro="clip-".concat(Gt||qi()),qc={tag:"mask",attributes:A(A({},Sd),{},{id:hc,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[Wr,Jn]},g2={tag:"defs",children:[{tag:"clipPath",attributes:{id:Ro},children:h2(Ys)},qc]};return De.push(g2,{tag:"rect",attributes:A({fill:"currentColor","clip-path":"url(#".concat(Ro,")"),mask:"url(#".concat(hc,")")},Sd)}),{children:De,attributes:Xe}}}},d2={provides(pe){let Ce=!1;N.matchMedia&&(Ce=N.matchMedia("(prefers-reduced-motion: reduce)").matches),pe.missingIconAbstract=function(){const De=[],Xe={fill:"currentColor"},Je={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};De.push({tag:"path",attributes:A(A({},Xe),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});const vt=A(A({},Je),{},{attributeName:"opacity"}),Gt={tag:"circle",attributes:A(A({},Xe),{},{cx:"256",cy:"364",r:"28"}),children:[]};return Ce||Gt.children.push({tag:"animate",attributes:A(A({},Je),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:A(A({},vt),{},{values:"1;0;1;1;0;1;"})}),De.push(Gt),De.push({tag:"path",attributes:A(A({},Xe),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:Ce?[]:[{tag:"animate",attributes:A(A({},vt),{},{values:"1;0;0;0;0;1;"})}]}),Ce||De.push({tag:"path",attributes:A(A({},Xe),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:A(A({},vt),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:De}}}},d1={hooks(){return{parseNodeAttributes(pe,Ce){const De=Ce.getAttribute("data-fa-symbol"),Xe=De===null?!1:De===""?!0:De;return pe.symbol=Xe,pe}}}},rh=[On,bd,a2,sh,o2,uc,h1,gf,vo,d2,d1];_a(rh,{mixoutsTo:aa});const f2=aa.noAuto,Ao=aa.config,p2=aa.library,m2=aa.dom,f1=aa.parse,kh=aa.findIconDefinition,ye=aa.toHtml,Be=aa.icon,Ze=aa.layer,tt=aa.text,gt=aa.counter},"../../../../node_modules/@fortawesome/free-regular-svg-icons/index.mjs":(m,_,d)=>{d.r(_),d.d(_,{faAddressBook:()=>Y,faAddressCard:()=>Pn,faAngry:()=>d1,faArrowAltCircleDown:()=>Cd,faArrowAltCircleLeft:()=>go,faArrowAltCircleRight:()=>Wc,faArrowAltCircleUp:()=>bt,faBarChart:()=>Ge,faBell:()=>l1,faBellSlash:()=>Bh,faBookmark:()=>mt,faBuilding:()=>Cu,faCalendar:()=>Sd,faCalendarAlt:()=>R,faCalendarCheck:()=>Ju,faCalendarDays:()=>O,faCalendarMinus:()=>Be,faCalendarPlus:()=>lc,faCalendarTimes:()=>Yc,faCalendarXmark:()=>Zu,faCaretSquareDown:()=>fe,faCaretSquareLeft:()=>ki,faCaretSquareRight:()=>oe,faCaretSquareUp:()=>ts,faChartBar:()=>hs,faCheckCircle:()=>ra,faCheckSquare:()=>Ve,faChessBishop:()=>bi,faChessKing:()=>a2,faChessKnight:()=>bs,faChessPawn:()=>Dh,faChessQueen:()=>fr,faChessRook:()=>mf,faCircle:()=>Ee,faCircleCheck:()=>hn,faCircleDot:()=>Ke,faCircleDown:()=>a1,faCircleLeft:()=>Xc,faCirclePause:()=>ti,faCirclePlay:()=>Js,faCircleQuestion:()=>es,faCircleRight:()=>$r,faCircleStop:()=>ka,faCircleUp:()=>$e,faCircleUser:()=>sh,faCircleXmark:()=>Ze,faClipboard:()=>hr,faClock:()=>so,faClockFour:()=>vd,faClone:()=>vo,faClosedCaptioning:()=>nl,faComment:()=>_d,faCommentAlt:()=>E,faCommentDots:()=>wn,faCommenting:()=>uu,faComments:()=>ee,faCompass:()=>ue,faContactBook:()=>V,faContactCard:()=>On,faCopy:()=>l2,faCopyright:()=>wh,faCreditCard:()=>xd,faCreditCardAlt:()=>o1,faDizzy:()=>at,faDotCircle:()=>ct,faDriversLicense:()=>Oh,faEdit:()=>At,faEnvelope:()=>Qu,faEnvelopeOpen:()=>Sl,faEye:()=>er,faEyeSlash:()=>rt,faFaceAngry:()=>d2,faFaceDizzy:()=>nt,faFaceFlushed:()=>W,faFaceFrown:()=>_a,faFaceFrownOpen:()=>qe,faFaceGrimace:()=>kh,faFaceGrin:()=>_o,faFaceGrinBeam:()=>Rn,faFaceGrinBeamSweat:()=>h1,faFaceGrinHearts:()=>zh,faFaceGrinSquint:()=>Hc,faFaceGrinSquintTears:()=>Ul,faFaceGrinStars:()=>D,faFaceGrinTears:()=>hu,faFaceGrinTongue:()=>Pi,faFaceGrinTongueSquint:()=>ne,faFaceGrinTongueWink:()=>Fh,faFaceGrinWide:()=>qt,faFaceGrinWink:()=>wi,faFaceKiss:()=>Kt,faFaceKissBeam:()=>Ae,faFaceKissWinkHeart:()=>Wi,faFaceLaugh:()=>li,faFaceLaughBeam:()=>Gr,faFaceLaughSquint:()=>hi,faFaceLaughWink:()=>th,faFaceMeh:()=>cc,faFaceMehBlank:()=>Ji,faFaceRollingEyes:()=>Qn,faFaceSadCry:()=>Cr,faFaceSadTear:()=>vt,faFaceSmile:()=>Au,faFaceSmileBeam:()=>N,faFaceSmileWink:()=>Lo,faFaceSurprise:()=>_t,faFaceTired:()=>dn,faFile:()=>vu,faFileAlt:()=>M,faFileArchive:()=>yl,faFileAudio:()=>Wt,faFileClipboard:()=>ie,faFileCode:()=>xr,faFileExcel:()=>rl,faFileImage:()=>vi,faFileLines:()=>b,faFilePdf:()=>qu,faFilePowerpoint:()=>Zn,faFileText:()=>T,faFileVideo:()=>Ku,faFileWord:()=>bl,faFileZipper:()=>Vi,faFlag:()=>ke,faFloppyDisk:()=>Ua,faFlushed:()=>Q,faFolder:()=>Tt,faFolderBlank:()=>Ut,faFolderClosed:()=>ns,faFolderOpen:()=>ks,faFontAwesome:()=>Xn,faFontAwesomeFlag:()=>na,faFontAwesomeLogoFull:()=>xl,faFrown:()=>Fl,faFrownOpen:()=>ri,faFutbol:()=>xt,faFutbolBall:()=>Qe,faGem:()=>pr,faGrimace:()=>ye,faGrin:()=>eh,faGrinAlt:()=>ci,faGrinBeam:()=>Or,faGrinBeamSweat:()=>xu,faGrinHearts:()=>uc,faGrinSquint:()=>gd,faGrinSquintTears:()=>oc,faGrinStars:()=>k,faGrinTears:()=>Ph,faGrinTongue:()=>gi,faGrinTongueSquint:()=>te,faGrinTongueWink:()=>h2,faGrinWink:()=>Ni,faHand:()=>yt,faHandBackFist:()=>We,faHandLizard:()=>Zc,faHandPaper:()=>Rt,faHandPeace:()=>Kc,faHandPointDown:()=>Ye,faHandPointLeft:()=>ai,faHandPointRight:()=>I,faHandPointUp:()=>Ot,faHandPointer:()=>kl,faHandRock:()=>fi,faHandScissors:()=>aa,faHandSpock:()=>Nt,faHandshake:()=>qi,faHardDrive:()=>$u,faHdd:()=>pu,faHeart:()=>Ie,faHospital:()=>ih,faHospitalAlt:()=>n2,faHospitalWide:()=>c1,faHourglass:()=>du,faHourglass2:()=>je,faHourglassEmpty:()=>fu,faHourglassHalf:()=>Me,faIdBadge:()=>to,faIdCard:()=>gu,faImage:()=>ls,faImages:()=>va,faKeyboard:()=>ro,faKiss:()=>si,faKissBeam:()=>Se,faKissWinkHeart:()=>yn,faLaugh:()=>Xs,faLaughBeam:()=>Yn,faLaughSquint:()=>Oi,faLaughWink:()=>n1,faLemon:()=>Ss,faLifeRing:()=>f1,faLightbulb:()=>we,faListAlt:()=>r2,faMap:()=>c2,faMeh:()=>Ad,faMehBlank:()=>Us,faMehRollingEyes:()=>Dn,faMessage:()=>S,faMinusSquare:()=>se,faMoneyBill1:()=>Wo,faMoneyBillAlt:()=>Oo,faMoon:()=>gf,faNewspaper:()=>Po,faNoteSticky:()=>Xe,faObjectGroup:()=>Xu,faObjectUngroup:()=>fn,faPaperPlane:()=>m2,faPaste:()=>K,faPauseCircle:()=>Hi,faPenToSquare:()=>ot,faPlayCircle:()=>ir,faPlusSquare:()=>Ui,faQuestionCircle:()=>Qi,faRectangleList:()=>mu,faRectangleTimes:()=>f2,faRectangleXmark:()=>rh,faRegistered:()=>To,faSadCry:()=>rr,faSadTear:()=>Gt,faSave:()=>io,faShareFromSquare:()=>Nh,faShareSquare:()=>u1,faSmile:()=>u2,faSmileBeam:()=>w,faSmileWink:()=>Io,faSnowflake:()=>Kn,faSoccerBall:()=>kt,faSquare:()=>Sn,faSquareCaretDown:()=>he,faSquareCaretLeft:()=>ji,faSquareCaretRight:()=>re,faSquareCaretUp:()=>zi,faSquareCheck:()=>st,faSquareFull:()=>De,faSquareMinus:()=>X,faSquarePlus:()=>$t,faStar:()=>os,faStarHalf:()=>bd,faStarHalfAlt:()=>qn,faStarHalfStroke:()=>sr,faStickyNote:()=>Je,faStopCircle:()=>Hn,faSun:()=>Rh,faSurprise:()=>Ht,faThumbsDown:()=>_u,faThumbsUp:()=>pe,faTimesCircle:()=>tt,faTimesRectangle:()=>Ao,faTired:()=>mo,faTrashAlt:()=>A,faTrashCan:()=>x,faUser:()=>oi,faUserCircle:()=>o2,faVcard:()=>Kr,faWindowClose:()=>p2,faWindowMaximize:()=>Nn,faWindowMinimize:()=>Ce,faWindowRestore:()=>Zt,faXmarkCircle:()=>gt,far:()=>As,prefix:()=>h});/*!
 * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */const h="far",x={prefix:"far",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M170.5 51.6L151.5 80l145 0-19-28.4c-1.5-2.2-4-3.6-6.7-3.6l-93.7 0c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80 368 80l48 0 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 304c0 44.2-35.8 80-80 80l-224 0c-44.2 0-80-35.8-80-80l0-304-8 0c-13.3 0-24-10.7-24-24S10.7 80 24 80l8 0 48 0 13.8 0 36.7-55.1C140.9 9.4 158.4 0 177.1 0l93.7 0c18.7 0 36.2 9.4 46.6 24.9zM80 128l0 304c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-304L80 128zm80 64l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},A=x,S={prefix:"far",iconName:"message",icon:[512,512,["comment-alt"],"f27a","M160 368c26.5 0 48 21.5 48 48l0 16 72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6L448 368c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 48c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l96 0zm48 124l-.2 .2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3l0-21.3 0-6.4 0-.3 0-4 0-48-48 0-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-138.7 0L208 492z"]},E=S,b={prefix:"far",iconName:"file-lines",icon:[384,512,[128441,128462,61686,"file-alt","file-text"],"f15c","M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"]},M=b,T=b,O={prefix:"far",iconName:"calendar-days",icon:[448,512,["calendar-alt"],"f073","M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l80 0 0 56-80 0 0-56zm0 104l80 0 0 64-80 0 0-64zm128 0l96 0 0 64-96 0 0-64zm144 0l80 0 0 64-80 0 0-64zm80-48l-80 0 0-56 80 0 0 56zm0 160l0 40c0 8.8-7.2 16-16 16l-64 0 0-56 80 0zm-128 0l0 56-96 0 0-56 96 0zm-144 0l0 56-64 0c-8.8 0-16-7.2-16-16l0-40 80 0zM272 248l-96 0 0-56 96 0 0 56z"]},R=O,I={prefix:"far",iconName:"hand-point-right",icon:[512,512,[],"f0a4","M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 32 0 144 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32c0 0 0 0 0 0l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4c-.5-3.1-.7-6.2-.7-9.4c0-20 9.2-37.9 23.6-49.7c-4.9-9-7.6-19.4-7.6-30.3c0-15.1 5.3-29 14-40c-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-40 0-40zM192 64s0 0 0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16c0 25.3-14.7 47.2-36 57.6c2.6 7 4 14.5 4 22.4c0 20-9.2 37.9-23.6 49.7c4.9 9 7.6 19.4 7.6 30.3c0 35.3-28.7 64-64 64l-64 0-24 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l2 0 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z"]},N={prefix:"far",iconName:"face-smile-beam",icon:[512,512,[128522,"smile-beam"],"f5b8","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zm40-89.3s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"]},w=N,D={prefix:"far",iconName:"face-grin-stars",icon:[512,512,[129321,"grin-stars"],"f587","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM183.2 132.6c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L176 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L242.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm160 0c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L336 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L402.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm6.3 175.8c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5c10.4-16.1-6.8-32.5-25.5-28.1z"]},k=D,Y={prefix:"far",iconName:"address-book",icon:[512,512,[62138,"contact-book"],"f2b9","M384 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16L80 64c0-8.8 7.2-16 16-16l288 0zM96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM240 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z"]},V=Y,ee={prefix:"far",iconName:"comments",icon:[640,512,[128490,61670],"f086","M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.8 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z"]},K={prefix:"far",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M104.6 48L64 48C28.7 48 0 76.7 0 112L0 384c0 35.3 28.7 64 64 64l96 0 0-48-96 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l16 0c0 17.7 14.3 32 32 32l72.4 0C202 108.4 227.6 96 256 96l62 0c-7.1-27.6-32.2-48-62-48l-40.6 0C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48zM144 56a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM448 464l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L464 243.9 464 448c0 8.8-7.2 16-16 16zM256 512l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L256 128c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64z"]},ie=K,ne={prefix:"far",iconName:"face-grin-tongue-squint",icon:[512,512,[128541,"grin-tongue-squint"],"f58a","M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-23.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 22.9c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm116-98.9c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},te=ne,W={prefix:"far",iconName:"face-flushed",icon:[512,512,[128563,"flushed"],"f579","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM160.4 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z"]},Q=W,re={prefix:"far",iconName:"square-caret-right",icon:[448,512,["caret-square-right"],"f152","M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z"]},oe=re,X={prefix:"far",iconName:"square-minus",icon:[448,512,[61767,"minus-square"],"f146","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM152 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},se=X,ue={prefix:"far",iconName:"compass",icon:[512,512,[129517],"f14e","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},he={prefix:"far",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},fe=he,Ae={prefix:"far",iconName:"face-kiss-beam",icon:[512,512,[128537,"kiss-beam"],"f597","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 41.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 427.1 257.4 432 240 432c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-68.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"]},Se=Ae,we={prefix:"far",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z"]},ke={prefix:"far",iconName:"flag",icon:[448,512,[127988,61725],"f024","M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 64 0 350.5 0 400l0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52l0-28zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5l0-237z"]},st={prefix:"far",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},Ve=st,Ke={prefix:"far",iconName:"circle-dot",icon:[512,512,[128280,"dot-circle"],"f192","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},ct=Ke,nt={prefix:"far",iconName:"face-dizzy",icon:[512,512,["dizzy"],"f567","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM103 135c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9zm192 0c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9z"]},at=nt,xt={prefix:"far",iconName:"futbol",icon:[512,512,[9917,"futbol-ball","soccer-ball"],"f1e3","M435.4 361.4l-89.7-6c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-22 87.2c-14.4 3.2-29.4 4.8-44.8 4.8s-30.3-1.7-44.8-4.8l-22-87.2c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-89.7 6C61.7 335.9 51.9 307 49 276.2L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15L100.4 118c19.9-22.4 44.6-40.5 72.4-52.7l69.1 57.6c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l69.1-57.6c27.8 12.2 52.5 30.3 72.4 52.7l-33.4 83.4c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9L463 276.2c-3 30.8-12.7 59.7-27.6 85.2zM256 48l.9 0-1.8 0 .9 0zM56.7 196.2c.9-3 1.9-6.1 2.9-9.1l-2.9 9.1zM132 423l3.8 2.7c-1.3-.9-2.5-1.8-3.8-2.7zm248.1-.1c-1.3 1-2.6 2-4 2.9l4-2.9zm75.2-226.7l-3-9.2c1.1 3 2.1 6.1 3 9.2zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z"]},Qe=xt,kt=xt,ot={prefix:"far",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z"]},At=ot,Me={prefix:"far",iconName:"hourglass-half",icon:[384,512,["hourglass-2"],"f252","M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5L225.9 256l81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5L158.1 256 76.5 174.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5L192 289.9l-81.5 81.5zM284.2 128C297 110.4 304 89 304 67l0-19L80 48l0 19c0 22.1 7 43.4 19.8 61l184.4 0z"]},je=Me,rt={prefix:"far",iconName:"eye-slash",icon:[640,512,[],"f070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z"]},yt={prefix:"far",iconName:"hand",icon:[512,512,[129306,9995,"hand-paper"],"f256","M256 0c-25.3 0-47.2 14.7-57.6 36c-7-2.6-14.5-4-22.4-4c-35.3 0-64 28.7-64 64l0 165.5-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L106.5 437c48 48 113.1 75 181 75l8.5 0 8 0c1.5 0 3-.1 4.5-.4c91.7-6.2 165-79.4 171.1-171.1c.3-1.5 .4-3 .4-4.5l0-176c0-35.3-28.7-64-64-64c-5.5 0-10.9 .7-16 2l0-2c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4C303.2 14.7 281.3 0 256 0zM240 96.1l0-.1 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.9 0 .1 0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-136c0 0 0 0 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 55.9c0 0 0 .1 0 .1l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-71.9c0 0 0-.1 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 172.9c-.1 .6-.1 1.3-.2 1.9c-3.4 69.7-59.3 125.6-129 129c-.6 0-1.3 .1-1.9 .2l-4.9 0-8.5 0c-55.2 0-108.1-21.9-147.1-60.9L52.7 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L119 336.4c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2L160 96c0-8.8 7.2-16 16-16c8.8 0 16 7.1 16 15.9L192 232c0 13.3 10.7 24 24 24s24-10.7 24-24l0-135.9z"]},Rt=yt,Nt={prefix:"far",iconName:"hand-spock",icon:[576,512,[128406],"f259","M170.2 80.8C161 47 180.8 12 214.6 2.4c34-9.6 69.4 10.2 79 44.2l30.3 107.1L337.1 84c6.6-34.7 40.1-57.5 74.8-50.9c31.4 6 53 33.9 52 64.9c10-2.6 20.8-2.8 31.5-.1c34.3 8.6 55.1 43.3 46.6 77.6L486.7 397.2C469.8 464.7 409.2 512 339.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2L100.5 167.5c-13-32.9 3.2-70.1 36-83c11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L174.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37l-63.1-49.1c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104C435.6 271.8 425 280 413 280c-16.5 0-28.9-15-25.8-31.2L415.7 99c1.7-8.7-4-17.1-12.7-18.7s-17.1 4-18.7 12.7L352.5 260c-2.2 11.6-12.4 20-24.2 20c-11 0-20.7-7.3-23.7-17.9L247.4 59.6z"]},Kt={prefix:"far",iconName:"face-kiss",icon:[512,512,[128535,"kiss"],"f596","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 25.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 411.1 257.4 416 240 416c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.8-.5-.1-.1-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},si=Kt,Pi={prefix:"far",iconName:"face-grin-tongue",icon:[512,512,[128539,"grin-tongue"],"f589","M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-52.4c-8.9-8-16.7-17.1-23.1-27.1c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1c-6.4 9.9-14.2 19-23 27l0 52.5c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},gi=Pi,bi={prefix:"far",iconName:"chess-bishop",icon:[320,512,[9821],"f43a","M104 0C90.7 0 80 10.7 80 24c0 11.2 7.6 20.6 18 23.2c-7.8 8-16.1 17-24.4 27C38.2 116.7 0 178.8 0 250.9c0 44.8 24.6 72.2 48 87.8L48 352l48 0 0-27c0-9-5-17.2-13-21.3c-18-9.3-35-24.7-35-52.7c0-55.5 29.8-106.8 62.4-145.9c16-19.2 32.1-34.8 44.2-45.5c1.9-1.7 3.7-3.2 5.3-4.6c1.7 1.4 3.4 3 5.3 4.6c12.1 10.7 28.2 26.3 44.2 45.5c5.3 6.3 10.5 13 15.5 20L159 191c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57.8-57.8c12.8 25.9 21.2 54.3 21.2 83.8c0 28-17 43.4-35 52.7c-8 4.1-13 12.3-13 21.3l0 27 48 0 0-13.3c23.4-15.6 48-42.9 48-87.8c0-72.1-38.2-134.2-73.6-176.7c-8.3-9.9-16.6-19-24.4-27c10.3-2.7 18-12.1 18-23.2c0-13.3-10.7-24-24-24L160 0 104 0zM52.7 464l16.6-32 181.6 0 16.6 32L52.7 464zm207.9-80l-201 0c-12 0-22.9 6.7-28.4 17.3L4.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C0 493.8 18.2 512 40.8 512l238.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2c-5.5-10.6-16.5-17.3-28.4-17.3z"]},wi={prefix:"far",iconName:"face-grin-wink",icon:[512,512,["grin-wink"],"f58c","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z"]},Ni=wi,qt={prefix:"far",iconName:"face-grin-wide",icon:[512,512,[128515,"grin-alt"],"f581","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z"]},ci=qt,qe={prefix:"far",iconName:"face-frown-open",icon:[512,512,[128550,"frown-open"],"f57a","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},ri=qe,Ot={prefix:"far",iconName:"hand-point-up",icon:[384,512,[9757],"f0a6","M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-32L96 64c0-8.8-7.2-16-16-16s-16 7.2-16 16zM80 288c-17.7 0-32 14.3-32 32c0 0 0 0 0 0l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7c-3.1 .5-6.2 .7-9.4 .7c-20 0-37.9-9.2-49.7-23.6c-9 4.9-19.4 7.6-30.3 7.6c-15.1 0-29-5.3-40-14c-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-40 0zM0 320s0 0 0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2c25.3 0 47.2 14.7 57.6 36c7-2.6 14.5-4 22.4-4c20 0 37.9 9.2 49.7 23.6c9-4.9 19.4-7.6 30.3-7.6c35.3 0 64 28.7 64 64l0 64 0 24c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48 0 16c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-2 0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 0-16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z"]},mt={prefix:"far",iconName:"bookmark",icon:[384,512,[128278,61591],"f02e","M0 48C0 21.5 21.5 0 48 0l0 48 0 393.4 130.1-92.9c8.3-6 19.6-6 27.9 0L336 441.4 336 48 48 48 48 0 336 0c26.5 0 48 21.5 48 48l0 440c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5 37.9 507.5c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488L0 48z"]},Ye={prefix:"far",iconName:"hand-point-down",icon:[384,512,[],"f0a7","M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 32 0 144c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32c0 0 0 0 0 0l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7c-3.1-.5-6.2-.7-9.4-.7c-20 0-37.9 9.2-49.7 23.6c-9-4.9-19.4-7.6-30.3-7.6c-15.1 0-29 5.3-40 14c-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0-40 0zM0 192s0 0 0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2c25.3 0 47.2-14.7 57.6-36c7 2.6 14.5 4 22.4 4c20 0 37.9-9.2 49.7-23.6c9 4.9 19.4 7.6 30.3 7.6c35.3 0 64-28.7 64-64l0-64 0-24C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 2 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z"]},Tt={prefix:"far",iconName:"folder",icon:[512,512,[128193,128447,61716,"folder-blank"],"f07b","M0 96C0 60.7 28.7 32 64 32l132.1 0c19.1 0 37.4 7.6 50.9 21.1L289.9 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16l-161.4 0c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7L64 80z"]},Ut=Tt,oi={prefix:"far",iconName:"user",icon:[448,512,[128100,62144],"f007","M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"]},ji={prefix:"far",iconName:"square-caret-left",icon:[448,512,["caret-square-left"],"f191","M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z"]},ki=ji,os={prefix:"far",iconName:"star",icon:[576,512,[11088,61446],"f005","M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z"]},bs={prefix:"far",iconName:"chess-knight",icon:[448,512,[9822],"f441","M226.6 48L117.3 48l17.1 12.8c6 4.5 9.6 11.6 9.6 19.2s-3.6 14.7-9.6 19.2l-6.5 4.9c-10 7.5-16 19.3-16 31.9l-.3 91c0 10.2 4.9 19.9 13.2 25.8l1.9 1.3c9.9 7.1 23.3 7 33.2-.1l49.9-36.3c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5l-49.9 36.3-53.8 39.1c-7.3 5.3-13 12.2-16.9 20.1l-50.7 0c5.3-22.1 17.8-41.9 35.9-56.3c-1.3-.8-2.6-1.7-3.8-2.6L97 291.8c-21-15-33.4-39.2-33.3-65l.3-91c.1-19.8 6.7-38.7 18.6-53.9l-.4-.3C70.7 73 64 59.6 64 45.3C64 20.3 84.3 0 109.3 0L226.6 0C331.2 0 416 84.8 416 189.4c0 11.1-1 22.2-2.9 33.2L390.1 352l-48.8 0 24.5-137.8c1.5-8.2 2.2-16.5 2.2-24.8C368 111.3 304.7 48 226.6 48zM85.2 432L68.7 464l310.7 0-16.6-32L85.2 432zm315.7-30.7l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L56.8 512C34.2 512 16 493.8 16 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C52.5 390.7 63.5 384 75.5 384l297 0c12 0 22.9 6.7 28.4 17.3zM172 128a20 20 0 1 1 0 40 20 20 0 1 1 0-40z"]},hi={prefix:"far",iconName:"face-laugh-squint",icon:[512,512,["laugh-squint"],"f59b","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm2.8-183.3l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 141.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Oi=hi,li={prefix:"far",iconName:"face-laugh",icon:[512,512,["laugh"],"f599","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Xs=li,ks={prefix:"far",iconName:"folder-open",icon:[576,512,[128194,128449,61717],"f07c","M384 480l48 0c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224l-400 0c-11.4 0-21.9 6-27.6 15.9L48 357.1 48 96c0-8.8 7.2-16 16-16l117.5 0c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8L416 144c8.8 0 16 7.2 16 16l0 32 48 0 0-32c0-35.3-28.7-64-64-64L298.5 96c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l23.7 0L384 480z"]},hr={prefix:"far",iconName:"clipboard",icon:[384,512,[128203],"f328","M280 64l40 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l40 0 9.6 0C121 27.5 153.3 0 192 0s71 27.5 78.4 64l9.6 0zM64 112c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16l-16 0 0 24c0 13.3-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24l0-24-16 0zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},fr={prefix:"far",iconName:"chess-queen",icon:[512,512,[9819],"f445","M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-95.2-8c-18.1 0-31.3 12.8-35.6 26.9c-8 26.2-32.4 45.2-61.2 45.2c-10 0-19.4-2.3-27.7-6.3c-7.6-3.7-16.7-3.3-24 1.2C.7 162.1-3.1 177.1 3.7 188.9L97.6 352l55.4 0-83-144.1c40.5-2.2 75.3-25.9 93.1-59.8c22 26.8 55.4 43.9 92.8 43.9s70.8-17.1 92.8-43.9c17.8 34 52.6 57.7 93.1 59.8L359 352l55.4 0 93.9-163.1c6.8-11.7 3-26.7-8.6-33.8c-7.3-4.5-16.4-4.9-24-1.2c-8.4 4-17.7 6.3-27.7 6.3c-28.8 0-53.2-19-61.2-45.2C382.5 100.8 369.3 88 351.2 88c-14.5 0-26.3 8.5-32.4 19.3c-12.4 22-35.9 36.7-62.8 36.7s-50.4-14.8-62.8-36.7C187.1 96.5 175.4 88 160.8 88zM133.2 432l245.6 0 16.6 32-278.7 0 16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L68.6 452.5c-3 5.8-4.6 12.2-4.6 18.7c0 22.5 18.2 40.8 40.8 40.8l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z"]},We={prefix:"far",iconName:"hand-back-fist",icon:[448,512,["hand-rock"],"f255","M144 64c0-8.8 7.2-16 16-16s16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16l0 104c0 31.3-20 58-48 67.9c-9.6 3.4-16 12.5-16 22.6L304 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-117.8c38-20.1 64-60.1 64-106.2l0-104c0-35.3-28.7-64-64-64c-2.8 0-5.6 .2-8.3 .5C332.8 77.1 311.9 64 288 64c-2.8 0-5.6 .2-8.3 .5C268.8 45.1 247.9 32 224 32c-2.8 0-5.6 .2-8.3 .5C204.8 13.1 183.9 0 160 0C124.7 0 96 28.7 96 64l0 64.3c-11.7 7.4-22.5 16.4-32 26.9l17.8 16.1L64 155.2l-9.4 10.5C40 181.8 32 202.8 32 224.6l0 12.8c0 49.6 24.2 96.1 64.8 124.5l13.8-19.7L96.8 361.9l8.9 6.2c6.9 4.8 14.4 8.6 22.3 11.3L128 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-128.1c0-12.6-9.8-23.1-22.4-23.9c-7.3-.5-14.3-2.9-20.3-7.1l-13.1 18.7 13.1-18.7-8.9-6.2C96.6 303.1 80 271.3 80 237.4l0-12.8c0-9.9 3.7-19.4 10.3-26.8l9.4-10.5c3.8-4.2 7.9-8.1 12.3-11.6l0 32.3c0 8.8 7.2 16 16 16s16-7.2 16-16l0-65.7 0-14.3 0-64z"]},fi=We,zi={prefix:"far",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},ts=zi,hs={prefix:"far",iconName:"chart-bar",icon:[512,512,["bar-chart"],"f080","M24 32c13.3 0 24 10.7 24 24l0 352c0 13.3 10.7 24 24 24l416 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L72 480c-39.8 0-72-32.2-72-72L0 56C0 42.7 10.7 32 24 32zM128 136c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm24 72l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l272 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},Ge=hs,Zt={prefix:"far",iconName:"window-restore",icon:[512,512,[],"f2d2","M432 48L208 48c-17.7 0-32 14.3-32 32l0 16-48 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-48 16 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM48 448c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-192L48 256l0 192zM64 128l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64z"]},$t={prefix:"far",iconName:"square-plus",icon:[448,512,[61846,"plus-square"],"f0fe","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},Ui=$t,ls={prefix:"far",iconName:"image",icon:[512,512,[],"f03e","M448 80c8.8 0 16 7.2 16 16l0 319.8-5-6.5-136-176c-4.5-5.9-11.6-9.3-19-9.3s-14.4 3.4-19 9.3L202 340.7l-30.5-42.7C167 291.7 159.8 288 152 288s-15 3.7-19.5 10.1l-80 112L48 416.3l0-.3L48 96c0-8.8 7.2-16 16-16l384 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},ns={prefix:"far",iconName:"folder-closed",icon:[512,512,[],"e185","M251.7 127.6s0 0 0 0c10.5 10.5 24.7 16.4 39.6 16.4L448 144c8.8 0 16 7.2 16 16l0 32L48 192l0-96c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l33.9-33.9L208.8 84.7l42.9 42.9zM48 240l416 0 0 176c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-176zM285.7 93.7L242.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L291.3 96c-2.1 0-4.2-.8-5.7-2.3z"]},Ss={prefix:"far",iconName:"lemon",icon:[448,512,[127819],"f094","M368 80c-3.2 0-6.2 .4-8.9 1.3C340 86.8 313 91.9 284.8 84.6C227.4 69.7 160.2 92 110.1 142.1S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3c-.8 2.8-1.3 5.8-1.3 8.9c0 17.7 14.3 32 32 32c3.2 0 6.2-.4 8.9-1.3c19.1-5.5 46.1-10.7 74.3-3.3c57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3c.8-2.8 1.3-5.8 1.3-8.9c0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80c0 7.7-1.1 15.2-3.1 22.3c-4.6 15.8-7.1 32.9-3 48.9c20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3c-7.1 2-14.6 3.1-22.3 3.1c-44.2 0-80-35.8-80-80c0-7.7 1.1-15.2 3.1-22.3c4.6-15.8 7.1-32.9 3-48.9C-14 251.3 17 167.3 76.2 108.2S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3c7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7c-3.7 12.7-17.1 20-29.8 16.3s-20-17.1-16.3-29.8c19.8-67.7 76.6-124.5 144.3-144.3c12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z"]},qi={prefix:"far",iconName:"handshake",icon:[640,512,[],"f2b5","M272.2 64.6l-51.1 51.1c-15.3 4.2-29.5 11.9-41.5 22.5L153 161.9C142.8 171 129.5 176 115.8 176L96 176l0 128c20.4 .6 39.8 8.9 54.3 23.4l35.6 35.6 7 7c0 0 0 0 0 0L219.9 397c6.2 6.2 16.4 6.2 22.6 0c1.7-1.7 3-3.7 3.7-5.8c2.8-7.7 9.3-13.5 17.3-15.3s16.4 .6 22.2 6.5L296.5 393c11.6 11.6 30.4 11.6 41.9 0c5.4-5.4 8.3-12.3 8.6-19.4c.4-8.8 5.6-16.6 13.6-20.4s17.3-3 24.4 2.1c9.4 6.7 22.5 5.8 30.9-2.6c9.4-9.4 9.4-24.6 0-33.9L340.1 243l-35.8 33c-27.3 25.2-69.2 25.6-97 .9c-31.7-28.2-32.4-77.4-1.6-106.5l70.1-66.2C303.2 78.4 339.4 64 377.1 64c36.1 0 71 13.3 97.9 37.2L505.1 128l38.9 0 40 0 40 0c8.8 0 16 7.2 16 16l0 208c0 17.7-14.3 32-32 32l-32 0c-11.8 0-22.2-6.4-27.7-16l-84.9 0c-3.4 6.7-7.9 13.1-13.5 18.7c-17.1 17.1-40.8 23.8-63 20.1c-3.6 7.3-8.5 14.1-14.6 20.2c-27.3 27.3-70 30-100.4 8.1c-25.1 20.8-62.5 19.5-86-4.1L159 404l-7-7-35.6-35.6c-5.5-5.5-12.7-8.7-20.4-9.3C96 369.7 81.6 384 64 384l-32 0c-17.7 0-32-14.3-32-32L0 144c0-8.8 7.2-16 16-16l40 0 40 0 19.8 0c2 0 3.9-.7 5.3-2l26.5-23.6C175.5 77.7 211.4 64 248.7 64L259 64c4.4 0 8.9 .2 13.2 .6zM544 320l0-144-48 0c-5.9 0-11.6-2.2-15.9-6.1l-36.9-32.8c-18.2-16.2-41.7-25.1-66.1-25.1c-25.4 0-49.8 9.7-68.3 27.1l-70.1 66.2c-10.3 9.8-10.1 26.3 .5 35.7c9.3 8.3 23.4 8.1 32.5-.3l71.9-66.4c9.7-9 24.9-8.4 33.9 1.4s8.4 24.9-1.4 33.9l-.8 .8 74.4 74.4c10 10 16.5 22.3 19.4 35.1l74.8 0zM64 336a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm528 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},pr={prefix:"far",iconName:"gem",icon:[512,512,[128142],"f3a5","M168.5 72L256 165l87.5-93-175 0zM383.9 99.1L311.5 176l129 0L383.9 99.1zm50 124.9L256 224 78.1 224 256 420.3 433.9 224zM71.5 176l129 0L128.1 99.1 71.5 176zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z"]},Js={prefix:"far",iconName:"circle-play",icon:[512,512,[61469,"play-circle"],"f144","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9l0-176c0-8.7 4.7-16.7 12.3-20.9z"]},ir=Js,hn={prefix:"far",iconName:"circle-check",icon:[512,512,[61533,"check-circle"],"f058","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z"]},ra=hn,ka={prefix:"far",iconName:"circle-stop",icon:[512,512,[62094,"stop-circle"],"f28d","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm192-96l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z"]},Hn=ka,to={prefix:"far",iconName:"id-badge",icon:[384,512,[],"f2c1","M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},Gr={prefix:"far",iconName:"face-laugh-beam",icon:[512,512,[128513,"laugh-beam"],"f59a","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm86.9-85.1s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"]},Yn=Gr,To={prefix:"far",iconName:"registered",icon:[512,512,[174],"f25d","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152l0 112 0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 60.9 0 37.2 81.9c5.5 12.1 19.7 17.4 31.8 11.9s17.4-19.7 11.9-31.8L315.7 275c21.8-14.3 36.3-39 36.3-67c0-44.2-35.8-80-80-80l-88 0c-13.3 0-24 10.7-24 24zm48 88l0-64 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0z"]},Pn={prefix:"far",iconName:"address-card",icon:[576,512,[62140,"contact-card","vcard"],"f2bb","M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z"]},On=Pn,Kr=Pn,dn={prefix:"far",iconName:"face-tired",icon:[512,512,[128555,"tired"],"f5c8","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3C354.5 338.1 368 362 368 384c0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zm-43-173.6l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},mo=dn,Xn={prefix:"far",iconName:"font-awesome",icon:[512,512,[62501,62694,"font-awesome-flag","font-awesome-logo-full"],"f2b4","M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 48 0 256 0 48 0 64 48 0 0-64 389.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96zM80 400l0-256 356.4 0L388.1 252.5c-5.5 12.4-5.5 26.6 0 39L436.4 400 80 400z"]},na=Xn,xl=Xn,Lo={prefix:"far",iconName:"face-smile-wink",icon:[512,512,[128521,"smile-wink"],"f4da","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z"]},Io=Lo,bl={prefix:"far",iconName:"file-word",icon:[384,512,[],"f1c2","M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm55 241.1c-3.8-12.7-17.2-19.9-29.9-16.1s-19.9 17.2-16.1 29.9l48 160c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l25-83.4 25 83.4c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l48-160c3.8-12.7-3.4-26.1-16.1-29.9s-26.1 3.4-29.9 16.1l-25 83.4-25-83.4c-3-10.2-12.4-17.1-23-17.1s-19.9 7-23 17.1l-25 83.4-25-83.4z"]},Zn={prefix:"far",iconName:"file-powerpoint",icon:[384,512,[],"f1c4","M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm72 208c-13.3 0-24 10.7-24 24l0 104 0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 44 0c42 0 76-34 76-76s-34-76-76-76l-68 0zm68 104l-44 0 0-56 44 0c15.5 0 28 12.5 28 28s-12.5 28-28 28z"]},Sl={prefix:"far",iconName:"envelope-open",icon:[512,512,[62135],"f2b6","M255.4 48.2c.2-.1 .4-.2 .6-.2s.4 .1 .6 .2L460.6 194c2.1 1.5 3.4 3.9 3.4 6.5l0 13.6L291.5 355.7c-20.7 17-50.4 17-71.1 0L48 214.1l0-13.6c0-2.6 1.2-5 3.4-6.5L255.4 48.2zM48 276.2L190 392.8c38.4 31.5 93.7 31.5 132 0L464 276.2 464 456c0 4.4-3.6 8-8 8L56 464c-4.4 0-8-3.6-8-8l0-179.8zM256 0c-10.2 0-20.2 3.2-28.5 9.1L23.5 154.9C8.7 165.4 0 182.4 0 200.5L0 456c0 30.9 25.1 56 56 56l400 0c30.9 0 56-25.1 56-56l0-255.5c0-18.1-8.7-35.1-23.4-45.6L284.5 9.1C276.2 3.2 266.2 0 256 0z"]},Vi={prefix:"far",iconName:"file-zipper",icon:[384,512,["file-archive"],"f1c6","M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l48 0c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l48 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm48 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm-6.3 71.8L82.1 335.9c-1.4 5.4-2.1 10.9-2.1 16.4c0 35.2 28.8 63.7 64 63.7s64-28.5 64-63.7c0-5.5-.7-11.1-2.1-16.4l-23.5-88.2c-3.7-14-16.4-23.8-30.9-23.8l-14.8 0c-14.5 0-27.2 9.7-30.9 23.8zM128 336l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},yl=Vi,Sn={prefix:"far",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]},Kn={prefix:"far",iconName:"snowflake",icon:[448,512,[10052,10054],"f2dc","M224 0c13.3 0 24 10.7 24 24l0 46.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-57 57 0 76.5 66.2-38.2 20.9-77.8c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4L373 142.2l37.1-21.4c11.5-6.6 26.2-2.7 32.8 8.8s2.7 26.2-8.8 32.8L397 183.8l31.5 8.4c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-77.8-20.9L272 256l66.2 38.2 77.8-20.9c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4L397 328.2l37.1 21.4c11.5 6.6 15.4 21.3 8.8 32.8s-21.3 15.4-32.8 8.8L373 369.8l8.4 31.5c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-20.9-77.8L248 297.6l0 76.5 57 57c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23 0 46.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-46.1-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-76.5-66.2 38.2-20.9 77.8c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4L75 369.8 37.9 391.2c-11.5 6.6-26.2 2.7-32.8-8.8s-2.7-26.2 8.8-32.8L51 328.2l-31.5-8.4c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l77.8 20.9L176 256l-66.2-38.2L31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4L51 183.8 13.9 162.4c-11.5-6.6-15.4-21.3-8.8-32.8s21.3-15.4 32.8-8.8L75 142.2l-8.4-31.5c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l20.9 77.8L200 214.4l0-76.5L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L200 24c0-13.3 10.7-24 24-24z"]},Po={prefix:"far",iconName:"newspaper",icon:[512,512,[128240],"f1ea","M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM176 136c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 80c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-80zm200-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM200 272l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},Wi={prefix:"far",iconName:"face-kiss-wink-heart",icon:[512,512,[128536,"kiss-wink-heart"],"f598","M338.9 446.8c-25.4 11-53.4 17.2-82.9 17.2C141.1 464 48 370.9 48 256S141.1 48 256 48s208 93.1 208 208c0 22.4-3.5 43.9-10.1 64.1c3.1 4.5 5.7 9.4 7.8 14.6c12.7-1.6 25.1 .4 36.2 5c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-6.5-25.3zM296 316c0-6.9-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4C258.7 276.9 241.4 272 224 272c-3.6 0-6.8 2.5-7.7 6s.6 7.2 3.8 9c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c-2.5 1.4-4.1 4.1-4.1 7s1.6 5.6 4.1 7c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-3.2 1.8-4.7 5.5-3.8 9s4.1 6 7.7 6c17.4 0 34.7-4.9 47.9-12.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3s-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4c-2.7-1.5-5.7-3-8.7-4.3c3.1-1.3 6-2.7 8.7-4.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm159.3-20c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C375.7 186.8 355 180 335.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z"]},yn=Wi,sr={prefix:"far",iconName:"star-half-stroke",icon:[576,512,["star-half-alt"],"f5c0","M309.5 13.5C305.5 5.2 297.1 0 287.9 0s-17.6 5.2-21.6 13.5L197.7 154.8 44.5 177.5c-9 1.3-16.5 7.6-19.3 16.3s-.5 18.1 5.9 24.5L142.2 328.4 116 483.9c-1.5 9 2.2 18.1 9.7 23.5s17.3 6 25.3 1.7l137-73.2 137 73.2c8.1 4.3 17.9 3.7 25.3-1.7s11.2-14.5 9.7-23.5L433.6 328.4 544.8 218.2c6.5-6.4 8.7-15.9 5.9-24.5s-10.3-14.9-19.3-16.3L378.1 154.8 309.5 13.5zM288 384.7l0-305.6 52.5 108.1c3.5 7.1 10.2 12.1 18.1 13.3l118.3 17.5L391 303c-5.5 5.5-8.1 13.3-6.8 21l20.2 119.6L299.2 387.5c-3.5-1.9-7.4-2.8-11.2-2.8z"]},qn=sr,rl={prefix:"far",iconName:"file-excel",icon:[384,512,[],"f1c3","M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm90.9 233.3c-8.1-10.5-23.2-12.3-33.7-4.2s-12.3 23.2-4.2 33.7L161.6 320l-44.5 57.3c-8.1 10.5-6.3 25.5 4.2 33.7s25.5 6.3 33.7-4.2L192 359.1l37.1 47.6c8.1 10.5 23.2 12.3 33.7 4.2s12.3-23.2 4.2-33.7L222.4 320l44.5-57.3c8.1-10.5 6.3-25.5-4.2-33.7s-25.5-6.3-33.7 4.2L192 280.9l-37.1-47.6z"]},Rn={prefix:"far",iconName:"face-grin-beam",icon:[512,512,[128516,"grin-beam"],"f582","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM217.6 228.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"]},Or=Rn,fn={prefix:"far",iconName:"object-ungroup",icon:[640,512,[],"f248","M48.2 66.8c-.1-.8-.2-1.7-.2-2.5l0-.2c0-8.8 7.2-16 16-16c.9 0 1.9 .1 2.8 .2C74.3 49.5 80 56.1 80 64c0 8.8-7.2 16-16 16c-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3l0 105.3C16.5 238.1 0 261.1 0 288c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0C28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-105.3c16-6.5 28.9-19.3 35.3-35.3l201.3 0zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8c-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16c0-.9 .1-1.9 .2-2.8C49.5 277.7 56.1 272 64 272c8.8 0 16 7.2 16 16zm391.3-40l45.4 0c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-36.7-48 0 0 36.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L448 200l0 16.4c9.8 8.8 17.8 19.5 23.3 31.6zm88.9-26.7a16 16 0 1 1 31.5 5.5 16 16 0 1 1 -31.5-5.5zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm307-18.5a16 16 0 1 1 -5.5 31.5 16 16 0 1 1 5.5-31.5z"]},$r={prefix:"far",iconName:"circle-right",icon:[512,512,[61838,"arrow-alt-circle-right"],"f35a","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 151.2c-4.2-4.6-10.1-7.2-16.4-7.2C266 144 256 154 256 166.3l0 41.7-96 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l96 0 0 41.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.4-7.2l84-91c3.5-3.8 5.4-8.7 5.4-13.9s-1.9-10.1-5.4-13.9l-84-91z"]},Wc=$r,Qn={prefix:"far",iconName:"face-rolling-eyes",icon:[512,512,[128580,"meh-rolling-eyes"],"f5a5","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM168 376c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-104c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-32c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},Dn=Qn,Xu={prefix:"far",iconName:"object-group",icon:[576,512,[],"f247","M48 115.8C38.2 107 32 94.2 32 80c0-26.5 21.5-48 48-48c14.2 0 27 6.2 35.8 16l344.4 0c8.8-9.8 21.6-16 35.8-16c26.5 0 48 21.5 48 48c0 14.2-6.2 27-16 35.8l0 280.4c9.8 8.8 16 21.6 16 35.8c0 26.5-21.5 48-48 48c-14.2 0-27-6.2-35.8-16l-344.4 0c-8.8 9.8-21.6 16-35.8 16c-26.5 0-48-21.5-48-48c0-14.2 6.2-27 16-35.8l0-280.4zM125.3 96c-4.8 13.6-15.6 24.4-29.3 29.3l0 261.5c13.6 4.8 24.4 15.6 29.3 29.3l325.5 0c4.8-13.6 15.6-24.4 29.3-29.3l0-261.5c-13.6-4.8-24.4-15.6-29.3-29.3L125.3 96zm2.7 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z"]},Ie={prefix:"far",iconName:"heart",icon:[512,512,[128153,128154,128155,128156,128420,129293,129294,129505,9829,10084,61578],"f004","M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"]},_t={prefix:"far",iconName:"face-surprise",icon:[512,512,[128558,"surprise"],"f5c2","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},Ht=_t,ti={prefix:"far",iconName:"circle-pause",icon:[512,512,[62092,"pause-circle"],"f28b","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm224-72l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zm112 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},Hi=ti,Ee={prefix:"far",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],"f111","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},$e={prefix:"far",iconName:"circle-up",icon:[512,512,[61467,"arrow-alt-circle-up"],"f35b","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM151.2 217.4c-4.6 4.2-7.2 10.1-7.2 16.4c0 12.3 10 22.3 22.3 22.3l41.7 0 0 96c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-96 41.7 0c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.2-16.4l-91-84c-3.8-3.5-8.7-5.4-13.9-5.4s-10.1 1.9-13.9 5.4l-91 84z"]},bt=$e,Wt={prefix:"far",iconName:"file-audio",icon:[384,512,[],"f1c7","M64 464l256 0c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM192 272l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L129.4 376 112 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l17.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8zm85.8-4c11.6 20 18.2 43.3 18.2 68s-6.6 48-18.2 68c-6.6 11.5-21.3 15.4-32.8 8.8s-15.4-21.3-8.8-32.8c7.5-12.9 11.8-27.9 11.8-44s-4.3-31.1-11.8-44c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8z"]},vi={prefix:"far",iconName:"file-image",icon:[384,512,[128443],"f1c5","M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm96 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm69.2 46.9c-3-4.3-7.9-6.9-13.2-6.9s-10.2 2.6-13.2 6.9l-41.3 59.7-11.9-19.1c-2.9-4.7-8.1-7.5-13.6-7.5s-10.6 2.8-13.6 7.5l-40 64c-3.1 4.9-3.2 11.1-.4 16.2s8.2 8.2 14 8.2l48 0 32 0 40 0 72 0c6 0 11.4-3.3 14.2-8.6s2.4-11.6-1-16.5l-72-104z"]},es={prefix:"far",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Qi=es,Ji={prefix:"far",iconName:"face-meh-blank",icon:[512,512,[128566,"meh-blank"],"f5a4","M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Us=Ji,er={prefix:"far",iconName:"eye",icon:[576,512,[128065],"f06e","M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"]},Cr={prefix:"far",iconName:"face-sad-cry",icon:[512,512,[128557,"sad-cry"],"f5b3","M400 406.1L400 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 152.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4L160 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1C72.6 368.2 48 315 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm166.6 9.7c5.5-5.8 14.8-9.7 25.4-9.7s19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C391.7 186.8 371 180 351.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9zM208 320l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z"]},rr=Cr,xr={prefix:"far",iconName:"file-code",icon:[384,512,[],"f1c9","M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm97 289c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L79 303c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM257 255c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z"]},Nn={prefix:"far",iconName:"window-maximize",icon:[512,512,[128470],"f2d0","M.3 89.5C.1 91.6 0 93.8 0 96L0 224 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192 0-128c0-35.3-28.7-64-64-64L64 32c-2.2 0-4.4 .1-6.5 .3c-9.2 .9-17.8 3.8-25.5 8.2C21.8 46.5 13.4 55.1 7.7 65.5c-3.9 7.3-6.5 15.4-7.4 24zM48 224l416 0 0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192z"]},_a={prefix:"far",iconName:"face-frown",icon:[512,512,[9785,"frown"],"f119","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM174.6 384.1c-4.5 12.5-18.2 18.9-30.7 14.4s-18.9-18.2-14.4-30.7C146.9 319.4 198.9 288 256 288s109.1 31.4 126.6 79.9c4.5 12.5-2 26.2-14.4 30.7s-26.2-2-30.7-14.4C328.2 358.5 297.2 336 256 336s-72.2 22.5-81.4 48.1zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Fl=_a,Ua={prefix:"far",iconName:"floppy-disk",icon:[448,512,[128190,128426,"save"],"f0c7","M48 96l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-245.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l245.5 0c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8L320 184c0 13.3-10.7 24-24 24l-192 0c-13.3 0-24-10.7-24-24L80 80 64 80c-8.8 0-16 7.2-16 16zm80-16l0 80 144 0 0-80L128 80zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},io=Ua,wn={prefix:"far",iconName:"comment-dots",icon:[512,512,[128172,62075,"commenting"],"f4ad","M168.2 384.9c-15-5.4-31.7-3.1-44.6 6.4c-8.2 6-22.3 14.8-39.4 22.7c5.6-14.7 9.9-31.3 11.3-49.4c1-12.9-3.3-25.7-11.8-35.5C60.4 302.8 48 272 48 240c0-79.5 83.3-160 208-160s208 80.5 208 160s-83.3 160-208 160c-31.6 0-61.3-5.5-87.8-15.1zM26.3 423.8c-1.6 2.7-3.3 5.4-5.1 8.1l-.3 .5c-1.6 2.3-3.2 4.6-4.8 6.9c-3.5 4.7-7.3 9.3-11.3 13.5c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c5.1 0 10.2-.3 15.3-.8l.7-.1c4.4-.5 8.8-1.1 13.2-1.9c.8-.1 1.6-.3 2.4-.5c17.8-3.5 34.9-9.5 50.1-16.1c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},uu=wn,Hc={prefix:"far",iconName:"face-grin-squint",icon:[512,512,[128518,"grin-squint"],"f585","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zm-216-161.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},gd=Hc,kl={prefix:"far",iconName:"hand-pointer",icon:[448,512,[],"f25a","M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c8.8 0 16 7.2 16 16c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c7.8 0 14.3 5.6 15.7 13c1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4c8.8 0 16 7.2 16 16l0 16 0 104c0 39.8-32.2 72-72 72l-56 0-59.8 0-.9 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23l0-19.9 0-256zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7C-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2l.9 0 59.8 0 56 0c66.3 0 120-53.7 120-120l0-104 0-16c0-35.3-28.7-64-64-64c-4.5 0-8.8 .5-13 1.3c-11.7-15.4-30.2-25.3-51-25.3c-6.9 0-13.5 1.1-19.7 3.1C288.7 170.7 269.6 160 248 160c-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z"]},aa={prefix:"far",iconName:"hand-scissors",icon:[512,512,[],"f257","M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1L57 208.1C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.7-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-8 0-96 0c-35.3 0-64-28.7-64-64c0-2.8 .2-5.6 .5-8.3c-19.4-11-32.5-31.8-32.5-55.7c0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.5s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11c0 8.8 7.2 16 16 16c9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6c0 8.8 7.2 16 16 16l96 0 8 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l-17.5-15.9 17.5 15.9-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12l-85.6-19.7L74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z"]},hu={prefix:"far",iconName:"face-grin-tears",icon:[640,512,[128514,"grin-tears"],"f588","M516.1 325.5c1 3 2.1 6 3.3 8.9c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c1.2-2.9 2.3-5.9 3.3-8.9C152.5 406.2 229.5 464 320 464s167.5-57.8 196.1-138.5zM320 48c-101.4 0-185.8 72.5-204.3 168.5c-6.7-3.1-14.3-4.3-22.3-3.1c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-8-1.2-15.7 .1-22.3 3.1C505.8 120.5 421.4 48 320 48zM78.5 341.1C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7zm483 0c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zM439 336.5C414.4 374.6 370.3 400 319.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1zM281.6 228.8c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0zm160 0s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0z"]},Ph=hu,Zu={prefix:"far",iconName:"calendar-xmark",icon:[448,512,["calendar-times"],"f273","M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zm-95 89l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},Yc=Zu,Ku={prefix:"far",iconName:"file-video",icon:[384,512,[],"f1c8","M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 16 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1L240 368l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96z"]},qu={prefix:"far",iconName:"file-pdf",icon:[512,512,[],"f1c1","M64 464l48 0 0 48-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 304l-48 0 0-144-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z"]},_d={prefix:"far",iconName:"comment",icon:[512,512,[128489,61669],"f075","M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9l.3-.5z"]},Qu={prefix:"far",iconName:"envelope",icon:[512,512,[128386,9993,61443],"f0e0","M64 112c-8.8 0-16 7.2-16 16l0 22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1l0-22.1c0-8.8-7.2-16-16-16L64 112zM48 212.2L48 384c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-171.8L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z"]},du={prefix:"far",iconName:"hourglass",icon:[384,512,[9203,62032,"hourglass-empty"],"f254","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5L158.1 256 76.5 337.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5L225.9 256l81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19L80 464l0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z"]},fu=du,Ju={prefix:"far",iconName:"calendar-check",icon:[448,512,[],"f274","M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM329 297L217 409c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 95-95c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},$u={prefix:"far",iconName:"hard-drive",icon:[512,512,[128436,"hdd"],"f0a0","M64 80c-8.8 0-16 7.2-16 16l0 162c5.1-1.3 10.5-2 16-2l384 0c5.5 0 10.9 .7 16 2l0-162c0-8.8-7.2-16-16-16L64 80zM48 320l0 96c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L64 304c-8.8 0-16 7.2-16 16zM0 320L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 224 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm280 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},pu=$u,Ul={prefix:"far",iconName:"face-grin-squint-tears",icon:[512,512,[129315,"grin-squint-tears"],"f586","M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-14.8 14.8-65.7 23.6-88.3 26.7c-5.6 .9-10.3-3.9-9.5-9.5C403.3 79.9 412 29 426.8 14.2zM75 75C158.2-8.3 284.5-22.2 382.2 33.2c-1.5 4.8-2.9 9.6-4.1 14.3c-3.1 12.2-5.5 24.6-7.3 35c-80.8-53.6-190.7-44.8-261.9 26.4C37.7 180.1 28.9 290 82.5 370.8c-10.5 1.8-22.9 4.2-35 7.3c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75zm389.6 58.9c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c3.1-12.2 5.5-24.6 7.3-35c80.8 53.6 190.7 44.8 261.9-26.4c71.2-71.2 80-181.1 26.4-261.9c10.5-1.8 22.9-4.2 35-7.3zm-105.4 93c10.1-16.3 33.9-16.9 37.9 1.9c9.5 44.4-3.7 93.5-39.3 129.1s-84.8 48.8-129.1 39.3c-18.7-4-18.2-27.8-1.9-37.9c25.2-15.7 50.2-35.4 73.6-58.8s43.1-48.4 58.8-73.6zM92 265.3l97.4-29.7c11.6-3.5 22.5 7.3 19 19l-29.7 97.4c-2.6 8.6-13.4 11.3-19.8 4.9c-2-2-3.2-4.6-3.4-7.3l-5.1-56.1-56.1-5.1c-2.8-.3-5.4-1.5-7.3-3.4c-6.3-6.3-3.6-17.2 4.9-19.8zm193-178.2c2 2 3.2 4.6 3.4 7.3l5.1 56.1 56.1 5.1c2.8 .3 5.4 1.5 7.3 3.4c6.3 6.3 3.6 17.2-4.9 19.8l-97.4 29.7c-11.6 3.5-22.5-7.3-19-19L265.3 92c2.6-8.6 13.4-11.3 19.8-4.9zM14.9 497.1c-19.6-19.6-20-51-.7-70.3C29 412 79.8 403.2 102.4 400.1c5.6-.9 10.3 3.9 9.5 9.5c-3.2 22.5-11.9 73.5-26.7 88.3C66 517 34.5 516.6 14.9 497.1z"]},oc=Ul,mu={prefix:"far",iconName:"rectangle-list",icon:[576,512,["list-alt"],"f022","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm96 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm104 0c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm-72-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},r2=mu,lc={prefix:"far",iconName:"calendar-plus",icon:[448,512,[],"f271","M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256zm176 40c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z"]},Xc={prefix:"far",iconName:"circle-left",icon:[512,512,[61840,"arrow-alt-circle-left"],"f359","M48 256a208 208 0 1 1 416 0A208 208 0 1 1 48 256zm464 0A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9c4.2 4.5 10.1 7.1 16.3 7.1c12.3 0 22.3-10 22.3-22.3l0-57.7 96 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-96 0 0-57.7c0-12.3-10-22.3-22.3-22.3c-6.2 0-12.1 2.6-16.3 7.1L117.5 242.2c-3.5 3.8-5.5 8.7-5.5 13.8s2 10.1 5.5 13.8l99.9 107.1z"]},go=Xc,Wo={prefix:"far",iconName:"money-bill-1",icon:[576,512,["money-bill-alt"],"f3d1","M112 112c0 35.3-28.7 64-64 64l0 160c35.3 0 64 28.7 64 64l352 0c0-35.3 28.7-64 64-64l0-160c-35.3 0-64-28.7-64-64l-352 0zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm80-48c0 8.8 7.2 16 16 16l0 64-8 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l24 0 24 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-8 0 0-80c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z"]},Oo=Wo,so={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},vd=so,ro={prefix:"far",iconName:"keyboard",icon:[576,512,[9e3],"f11c","M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z"]},nl={prefix:"far",iconName:"closed-captioning",icon:[576,512,[],"f20a","M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z"]},va={prefix:"far",iconName:"images",icon:[576,512,[],"f302","M160 80l352 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-21.2 0L388.1 178.9c-4.4-6.8-12-10.9-20.1-10.9s-15.7 4.1-20.1 10.9l-52.2 79.8-12.4-16.9c-4.5-6.2-11.7-9.8-19.4-9.8s-14.8 3.6-19.4 9.8L175.6 336 160 336c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16zM96 96l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224zm208 24a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},_o={prefix:"far",iconName:"face-grin",icon:[512,512,[128512,"grin"],"f580","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},eh=_o,cc={prefix:"far",iconName:"face-meh",icon:[512,512,[128528,"meh"],"f11a","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"]},Ad=cc,gu={prefix:"far",iconName:"id-card",icon:[576,512,[62147,"drivers-license"],"f2c2","M528 160l0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16l0-256 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM272 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm104-48c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z"]},Oh=gu,Rh={prefix:"far",iconName:"sun",icon:[512,512,[9728],"f185","M375.7 19.7c-1.5-8-6.9-14.7-14.4-17.8s-16.1-2.2-22.8 2.4L256 61.1 173.5 4.2c-6.7-4.6-15.3-5.5-22.8-2.4s-12.9 9.8-14.4 17.8l-18.1 98.5L19.7 136.3c-8 1.5-14.7 6.9-17.8 14.4s-2.2 16.1 2.4 22.8L61.1 256 4.2 338.5c-4.6 6.7-5.5 15.3-2.4 22.8s9.8 13 17.8 14.4l98.5 18.1 18.1 98.5c1.5 8 6.9 14.7 14.4 17.8s16.1 2.2 22.8-2.4L256 450.9l82.5 56.9c6.7 4.6 15.3 5.5 22.8 2.4s12.9-9.8 14.4-17.8l18.1-98.5 98.5-18.1c8-1.5 14.7-6.9 17.8-14.4s2.2-16.1-2.4-22.8L450.9 256l56.9-82.5c4.6-6.7 5.5-15.3 2.4-22.8s-9.8-12.9-17.8-14.4l-98.5-18.1L375.7 19.7zM269.6 110l65.6-45.2 14.4 78.3c1.8 9.8 9.5 17.5 19.3 19.3l78.3 14.4L402 242.4c-5.7 8.2-5.7 19 0 27.2l45.2 65.6-78.3 14.4c-9.8 1.8-17.5 9.5-19.3 19.3l-14.4 78.3L269.6 402c-8.2-5.7-19-5.7-27.2 0l-65.6 45.2-14.4-78.3c-1.8-9.8-9.5-17.5-19.3-19.3L64.8 335.2 110 269.6c5.7-8.2 5.7-19 0-27.2L64.8 176.8l78.3-14.4c9.8-1.8 17.5-9.5 19.3-19.3l14.4-78.3L242.4 110c8.2 5.7 19 5.7 27.2 0zM256 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},th={prefix:"far",iconName:"face-laugh-wink",icon:[512,512,["laugh-wink"],"f59c","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z"]},n1=th,a1={prefix:"far",iconName:"circle-down",icon:[512,512,[61466,"arrow-alt-circle-down"],"f358","M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6c4.5-4.2 7.1-10.1 7.1-16.3c0-12.3-10-22.3-22.3-22.3L304 256l0-96c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 96-57.7 0C138 256 128 266 128 278.3c0 6.2 2.6 12.1 7.1 16.3l107.1 99.9c3.8 3.5 8.7 5.5 13.8 5.5s10.1-2 13.8-5.5l107.1-99.9z"]},Cd=a1,_u={prefix:"far",iconName:"thumbs-down",icon:[512,512,[128078,61576],"f165","M323.8 477.2c-38.2 10.9-78.1-11.2-89-49.4l-5.7-20c-3.7-13-10.4-25-19.5-35l-51.3-56.4c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l51.3 56.4c14.1 15.5 24.4 34 30.1 54.1l5.7 20c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7l-5.7-20c-5.7-19.9-14.7-38.7-26.6-55.5c-5.2-7.3-5.8-16.9-1.7-24.9s12.3-13 21.3-13L448 288c8.8 0 16-7.2 16-16c0-6.8-4.3-12.7-10.4-15c-7.4-2.8-13-9-14.9-16.7s.1-15.8 5.3-21.7c2.5-2.8 4-6.5 4-10.6c0-7.8-5.6-14.3-13-15.7c-8.2-1.6-15.1-7.3-18-15.2s-1.6-16.7 3.6-23.3c2.1-2.7 3.4-6.1 3.4-9.9c0-6.7-4.2-12.6-10.2-14.9c-11.5-4.5-17.7-16.9-14.4-28.8c.4-1.3 .6-2.8 .6-4.3c0-8.8-7.2-16-16-16l-97.5 0c-12.6 0-25 3.7-35.5 10.7l-61.7 41.1c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l61.7-41.1c18.4-12.3 40-18.8 62.1-18.8L384 32c34.7 0 62.9 27.6 64 62c14.6 11.7 24 29.7 24 50c0 4.5-.5 8.8-1.3 13c15.4 11.7 25.3 30.2 25.3 51c0 6.5-1 12.8-2.8 18.7C504.8 238.3 512 254.3 512 272c0 35.3-28.6 64-64 64l-92.3 0c4.7 10.4 8.7 21.2 11.8 32.2l5.7 20c10.9 38.2-11.2 78.1-49.4 89zM32 384c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0z"]},Dh={prefix:"far",iconName:"chess-pawn",icon:[320,512,[9823],"f443","M232 152A72 72 0 1 0 88 152a72 72 0 1 0 144 0zm24 120l-12.6 0 10.7 80-48.4 0L195 272l-35 0-35 0-10.7 80-48.4 0 10.7-80L64 272c-13.3 0-24-10.7-24-24s10.7-24 24-24c-15.1-20.1-24-45-24-72C40 85.7 93.7 32 160 32s120 53.7 120 120c0 27-8.9 51.9-24 72c13.3 0 24 10.7 24 24s-10.7 24-24 24zM52.7 464l214.7 0-16.6-32L69.2 432 52.7 464zm207.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L40.8 512C18.2 512 0 493.8 0 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C36.5 390.7 47.5 384 59.5 384l201 0z"]},xd={prefix:"far",iconName:"credit-card",icon:[576,512,[128179,62083,"credit-card-alt"],"f09d","M512 80c8.8 0 16 7.2 16 16l0 32L48 128l0-32c0-8.8 7.2-16 16-16l448 0zm16 144l0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 304c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z"]},o1=xd,l1={prefix:"far",iconName:"bell",icon:[448,512,[128276,61602],"f0f3","M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416l400 0c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4l0-25.4c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm0 96c61.9 0 112 50.1 112 112l0 25.4c0 47.9 13.9 94.6 39.7 134.6L72.3 368C98.1 328 112 281.3 112 233.4l0-25.4c0-61.9 50.1-112 112-112zm64 352l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"]},vu={prefix:"far",iconName:"file",icon:[384,512,[128196,128459,61462],"f15b","M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z"]},ih={prefix:"far",iconName:"hospital",icon:[640,512,[127973,62589,"hospital-alt","hospital-wide"],"f0f8","M232 0c-39.8 0-72 32.2-72 72l0 8L72 80C32.2 80 0 112.2 0 152L0 440c0 39.8 32.2 72 72 72l.2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0s0 0 0 0l272 0 8 0s0 0 0 0l104 0c39.8 0 72-32.2 72-72l0-288c0-39.8-32.2-72-72-72l-88 0 0-8c0-39.8-32.2-72-72-72L232 0zM480 128l88 0c13.3 0 24 10.7 24 24l0 40-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 104c0 13.3-10.7 24-24 24l-88 0 0-128 0-208zM72 128l88 0 0 336c0 0 0 0-.1 0l-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0c-13.2 0-24-10.7-24-24l0-104 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-48 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-40c0-13.3 10.7-24 24-24zM208 72c0-13.3 10.7-24 24-24l176 0c13.3 0 24 10.7 24 24l0 264 0 128-64 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 64-64 0 0-392zm88 24l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z"]},n2=ih,c1=ih,mf={prefix:"far",iconName:"chess-rook",icon:[448,512,[9820],"f447","M80 80l0 112c0 2.5 1.2 4.9 3.2 6.4l51.2 38.4c6.8 5.1 10.4 13.4 9.5 21.9L133.5 352l-48.3 0 9.4-85L54.4 236.8C40.3 226.2 32 209.6 32 192L32 72c0-22.1 17.9-40 40-40l304 0c22.1 0 40 17.9 40 40l0 120c0 17.6-8.3 34.2-22.4 44.8L353.4 267l9.4 85-48.3 0-10.4-93.3c-.9-8.4 2.7-16.8 9.5-21.9l51.2-38.4c2-1.5 3.2-3.9 3.2-6.4l0-112-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24L80 80zm4.7 384l278.7 0-16.6-32-245.6 0L84.7 464zm271.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L72.8 512C50.2 512 32 493.8 32 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C68.5 390.7 79.5 384 91.5 384l265 0zM208 288c-8.8 0-16-7.2-16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 8.8-7.2 16-16 16l-32 0z"]},bd={prefix:"far",iconName:"star-half",icon:[576,512,[61731],"f089","M293.3 .6c10.9 2.5 18.6 12.2 18.6 23.4l0 384.7c0 8.9-4.9 17-12.7 21.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.3c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5c4.9-10.1 16.1-15.4 27-12.9zM263.9 128.4l-28.6 58.8c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l92.5-49.4 0-265.9z"]},a2={prefix:"far",iconName:"chess-king",icon:[448,512,[9818],"f43f","M248 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 40L59.6 144C26.7 144 0 170.7 0 203.6c0 8.2 1.7 16.3 4.9 23.8L59.1 352l52.3 0L49 208.2c-.6-1.5-1-3-1-4.6c0-6.4 5.2-11.6 11.6-11.6L224 192l164.4 0c6.4 0 11.6 5.2 11.6 11.6c0 1.6-.3 3.2-1 4.6L336.5 352l52.3 0 54.2-124.6c3.3-7.5 4.9-15.6 4.9-23.8c0-32.9-26.7-59.6-59.6-59.6L248 144l0-40 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM101.2 432l245.6 0 16.6 32L84.7 464l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L36.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C32 493.8 50.2 512 72.8 512l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z"]},sh={prefix:"far",iconName:"circle-user",icon:[512,512,[62142,"user-circle"],"f2bd","M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6C69.9 362.2 48 311.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z"]},o2=sh,l2={prefix:"far",iconName:"copy",icon:[448,512,[],"f0c5","M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L400 115.9 400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-32-48 0 0 32c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l32 0 0-48-32 0z"]},Nh={prefix:"far",iconName:"share-from-square",icon:[576,512,[61509,"share-square"],"f14d","M400 255.4l0-15.4 0-32c0-8.8-7.2-16-16-16l-32 0-16 0-46.5 0c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112l48 0 16 0 32 0c8.8 0 16-7.2 16-16l0-32 0-15.4L506 160 400 255.4zM336 240l16 0 0 48c0 17.7 14.3 32 32 32l3.7 0c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7L352 80l-16 0-32 0-16 0c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5c0 0 0 0 0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5l14.5 0 32 0zM72 32C32.2 32 0 64.2 0 104L0 440c0 39.8 32.2 72 72 72l336 0c39.8 0 72-32.2 72-72l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3-10.7 24-24 24L72 464c-13.3 0-24-10.7-24-24l0-336c0-13.3 10.7-24 24-24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32z"]},u1=Nh,wh={prefix:"far",iconName:"copyright",icon:[512,512,[169],"f1f9","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c-31.2-31.2-31.2-81.9 0-113.1s81.9-31.2 113.1 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-50-50-131-50-181 0s-50 131 0 181s131 50 181 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-31.2 31.2-81.9 31.2-113.1 0z"]},c2={prefix:"far",iconName:"map",icon:[576,512,[128506,62072],"f279","M565.6 36.2C572.1 40.7 576 48.1 576 56l0 336c0 10-6.2 18.9-15.5 22.4l-168 64c-5.2 2-10.9 2.1-16.1 .3L192.5 417.5l-160 61c-7.4 2.8-15.7 1.8-22.2-2.7S0 463.9 0 456L0 120c0-10 6.1-18.9 15.5-22.4l168-64c5.2-2 10.9-2.1 16.1-.3L383.5 94.5l160-61c7.4-2.8 15.7-1.8 22.2 2.7zM48 136.5l0 284.6 120-45.7 0-284.6L48 136.5zM360 422.7l0-285.4-144-48 0 285.4 144 48zm48-1.5l120-45.7 0-284.6L408 136.5l0 284.6z"]},Bh={prefix:"far",iconName:"bell-slash",icon:[640,512,[128277,61943],"f1f6","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L542.6 400c2.7-7.8 1.3-16.5-3.9-23l-14.9-18.6C495.5 322.9 480 278.8 480 233.4l0-33.4c0-75.8-55.5-138.6-128-150.1L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 17.9c-43.9 7-81.5 32.7-104.4 68.7L38.8 5.1zM221.7 148.4C239.6 117.1 273.3 96 312 96l8 0 8 0c57.4 0 104 46.6 104 104l0 33.4c0 32.7 6.4 64.8 18.7 94.5L221.7 148.4zM406.2 416l-60.9-48-176.9 0c21.2-32.8 34.4-70.3 38.4-109.1L160 222.1l0 11.4c0 45.4-15.5 89.5-43.8 124.9L101.3 377c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l286.2 0zM384 448l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"]},Zc={prefix:"far",iconName:"hand-lizard",icon:[512,512,[],"f258","M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7L281.1 384 136 384c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z"]},Au={prefix:"far",iconName:"face-smile",icon:[512,512,[128578,"smile"],"f118","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},u2=Au,Kc={prefix:"far",iconName:"hand-peace",icon:[512,512,[9996],"f25b","M250.8 1.4c-35.2-3.7-66.6 21.8-70.3 57L174 119 156.7 69.6C145 36.3 108.4 18.8 75.1 30.5S24.2 78.8 35.9 112.1L88.7 262.2C73.5 276.7 64 297.3 64 320c0 0 0 0 0 0l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-72 0-16 0-32c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4c-10.4-21.3-32.3-36-57.6-36c-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4C243.9 166.9 240 179 240 192l0 48c0 .7 0 1.4 0 2c-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM111.4 85.6L165.7 240 144 240c-4 0-8 .3-11.9 .9L81.2 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM288 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36c5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24s0 0 0 0c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64c0-.7 0-1.4 0-2c5.1 1.3 10.5 2 16 2c7.9 0 15.4-1.4 22.4-4zM400 272c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16z"]},zh={prefix:"far",iconName:"face-grin-hearts",icon:[512,512,[128525,"grin-hearts"],"f584","M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM215.3 137.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm122.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z"]},uc=zh,Cu={prefix:"far",iconName:"building",icon:[384,512,[127970,61687],"f1ad","M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-64c0-26.5 21.5-48 48-48s48 21.5 48 48l0 64 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm88 40c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zM232 88l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16zM88 232c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zm144-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16z"]},h1={prefix:"far",iconName:"face-grin-beam-sweat",icon:[512,512,[128517,"grin-beam-sweat"],"f583","M476.8 126.3C497.1 120.8 512 102.7 512 81c0-20-28.6-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0c-9.5 12.6-27.1 37.2-36 57.5c-.3 .7-.6 1.4-.9 2.1C417.8 69.7 416 76 416 81c0 26 21.5 47 48 47c4.4 0 8.7-.6 12.8-1.7zM395.4 41.2C355.3 15.2 307.4 0 256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256c0-35.8-7.3-69.9-20.6-100.8c-8.6 3.1-17.8 4.8-27.4 4.8c-8.9 0-17.6-1.5-25.7-4.2C454.7 185.5 464 219.7 464 256c0 114.9-93.1 208-208 208S48 370.9 48 256S141.1 48 256 48c48.7 0 93.4 16.7 128.9 44.7c-.6-3.8-.9-7.7-.9-11.7c0-11.4 3.8-22.4 7.1-30.5c1.3-3.1 2.7-6.2 4.3-9.3zM375 336.5c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5zM217.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z"]},xu=h1,gf={prefix:"far",iconName:"moon",icon:[384,512,[127769,9214],"f186","M144.7 98.7c-21 34.1-33.1 74.3-33.1 117.3c0 98 62.8 181.4 150.4 211.7c-12.4 2.8-25.3 4.3-38.6 4.3C126.6 432 48 353.3 48 256c0-68.9 39.4-128.4 96.8-157.3zm62.1-66C91.1 41.2 0 137.9 0 256C0 379.7 100 480 223.5 480c47.8 0 92-15 128.4-40.6c1.9-1.3 3.7-2.7 5.5-4c4.8-3.6 9.4-7.4 13.9-11.4c2.7-2.4 5.3-4.8 7.9-7.3c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-3.7 .6-7.4 1.2-11.1 1.6c-5 .5-10.1 .9-15.3 1c-1.2 0-2.5 0-3.7 0l-.3 0c-96.8-.2-175.2-78.9-175.2-176c0-54.8 24.9-103.7 64.1-136c1-.9 2.1-1.7 3.2-2.6c4-3.2 8.2-6.2 12.5-9c3.1-2 6.3-4 9.6-5.8c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-3.6-.3-7.1-.5-10.7-.6c-2.7-.1-5.5-.1-8.2-.1c-3.3 0-6.5 .1-9.8 .2c-2.3 .1-4.6 .2-6.9 .4z"]},Sd={prefix:"far",iconName:"calendar",icon:[448,512,[128197,128198],"f133","M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256z"]},Fh={prefix:"far",iconName:"face-grin-tongue-wink",icon:[512,512,[128540,"grin-tongue-wink"],"f58b","M348.3 442.4c2.4-8.4 3.7-17.3 3.7-26.4l0-52.5c8.8-8 16.6-17.1 23-27c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c6.5 10 14.3 19.1 23.1 27.1l0 52.4c0 9.2 1.3 18 3.7 26.4C95.1 408.4 48 337.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 81.7-47.1 152.4-115.7 186.4zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm176.7 12a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-.4-72a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM320 416c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-37.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6l0 37.4z"]},h2=Fh,vo={prefix:"far",iconName:"clone",icon:[512,512,[],"f24d","M64 464l224 0c8.8 0 16-7.2 16-16l0-64 48 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 0 48-64 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zM224 304l224 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16L224 48c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zm-64-16l0-224c0-35.3 28.7-64 64-64L448 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-224 0c-35.3 0-64-28.7-64-64z"]},d2={prefix:"far",iconName:"face-angry",icon:[512,512,[128544,"angry"],"f556","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm72.4-118.5c9.7-9 10.2-24.2 1.2-33.9C315.3 344.3 290.6 328 256 328s-59.3 16.3-73.5 31.6c-9 9.7-8.5 24.9 1.2 33.9s24.9 8.5 33.9-1.2c7.4-7.9 20-16.4 38.5-16.4s31.1 8.5 38.5 16.4c9 9.7 24.2 10.2 33.9 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},d1=d2,rh={prefix:"far",iconName:"rectangle-xmark",icon:[512,512,[62164,"rectangle-times","times-rectangle","window-close"],"f410","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm175 79c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},f2=rh,Ao=rh,p2=rh,m2={prefix:"far",iconName:"paper-plane",icon:[512,512,[61913],"f1d8","M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376l0 103.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z"]},f1={prefix:"far",iconName:"life-ring",icon:[512,512,[],"f1cd","M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256s-22.1-118.9-58.8-163.3L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L58.8 92.7C22.1 137.1 0 193.9 0 256s22.1 118.9 58.8 163.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},kh={prefix:"far",iconName:"face-grimace",icon:[512,512,[128556,"grimace"],"f57f","M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM168 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0-48-8 0zm40 48l32 0 0-48-32 0 0 48zm96 0l0-48-32 0 0 48 32 0zm32 0l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 48zM168 288l176 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-176 0c-30.9 0-56-25.1-56-56s25.1-56 56-56zm-23.6-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},ye=kh,Be={prefix:"far",iconName:"calendar-minus",icon:[448,512,[],"f272","M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM296 352l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z"]},Ze={prefix:"far",iconName:"circle-xmark",icon:[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z"]},tt=Ze,gt=Ze,pe={prefix:"far",iconName:"thumbs-up",icon:[512,512,[128077,61575],"f164","M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.2s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16l-97.5 0c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8l97.5 0c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32l-64 0z"]},Ce={prefix:"far",iconName:"window-minimize",icon:[512,512,[128469],"f2d1","M24 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 432z"]},De={prefix:"far",iconName:"square-full",icon:[512,512,[128997,128998,128999,129e3,129001,129002,129003,11035,11036],"f45c","M464 48l0 416L48 464 48 48l416 0zM48 0L0 0 0 48 0 464l0 48 48 0 416 0 48 0 0-48 0-416 0-48L464 0 48 0z"]},Xe={prefix:"far",iconName:"note-sticky",icon:[448,512,[62026,"sticky-note"],"f249","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l224 0 0-80c0-17.7 14.3-32 32-32l80 0 0-224c0-8.8-7.2-16-16-16L64 80zM288 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 224 0 5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7l-5.5 0z"]},Je=Xe,vt={prefix:"far",iconName:"face-sad-tear",icon:[512,512,[128546,"sad-tear"],"f5b4","M175.9 448c-35-.1-65.5-22.6-76-54.6C67.6 356.8 48 308.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208s-93.1 208-208 208c-28.4 0-55.5-5.7-80.1-16zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM128 369c0 26 21.5 47 48 47s48-21 48-47c0-20-28.4-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0C156.6 308.6 128 349 128 369zm128-65c-13.3 0-24 10.7-24 24s10.7 24 24 24c30.7 0 58.7 11.5 80 30.6c9.9 8.8 25 8 33.9-1.9s8-25-1.9-33.9C338.3 320.2 299 304 256 304zm47.6-96a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm-128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Gt=vt,ai={prefix:"far",iconName:"hand-point-left",icon:[512,512,[],"f0a5","M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-32 0L64 160c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32c0 0 0 0 0 0l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4c.5-3.1 .7-6.2 .7-9.4c0-20-9.2-37.9-23.6-49.7c4.9-9 7.6-19.4 7.6-30.3c0-15.1-5.3-29-14-40c8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-40 0-40zm32-80s0 0 0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16c0 25.3 14.7 47.2 36 57.6c-2.6 7-4 14.5-4 22.4c0 20 9.2 37.9 23.6 49.7c-4.9 9-7.6 19.4-7.6 30.3c0 35.3 28.7 64 64 64l64 0 24 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-2 0-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z"]};var As={faTrashCan:x,faTrashAlt:A,faMessage:S,faCommentAlt:E,faFileLines:b,faFileAlt:M,faFileText:T,faCalendarDays:O,faCalendarAlt:R,faHandPointRight:I,faFaceSmileBeam:N,faSmileBeam:w,faFaceGrinStars:D,faGrinStars:k,faAddressBook:Y,faContactBook:V,faComments:ee,faPaste:K,faFileClipboard:ie,faFaceGrinTongueSquint:ne,faGrinTongueSquint:te,faFaceFlushed:W,faFlushed:Q,faSquareCaretRight:re,faCaretSquareRight:oe,faSquareMinus:X,faMinusSquare:se,faCompass:ue,faSquareCaretDown:he,faCaretSquareDown:fe,faFaceKissBeam:Ae,faKissBeam:Se,faLightbulb:we,faFlag:ke,faSquareCheck:st,faCheckSquare:Ve,faCircleDot:Ke,faDotCircle:ct,faFaceDizzy:nt,faDizzy:at,faFutbol:xt,faFutbolBall:Qe,faSoccerBall:kt,faPenToSquare:ot,faEdit:At,faHourglassHalf:Me,faHourglass2:je,faEyeSlash:rt,faHand:yt,faHandPaper:Rt,faHandSpock:Nt,faFaceKiss:Kt,faKiss:si,faFaceGrinTongue:Pi,faGrinTongue:gi,faChessBishop:bi,faFaceGrinWink:wi,faGrinWink:Ni,faFaceGrinWide:qt,faGrinAlt:ci,faFaceFrownOpen:qe,faFrownOpen:ri,faHandPointUp:Ot,faBookmark:mt,faHandPointDown:Ye,faFolder:Tt,faFolderBlank:Ut,faUser:oi,faSquareCaretLeft:ji,faCaretSquareLeft:ki,faStar:os,faChessKnight:bs,faFaceLaughSquint:hi,faLaughSquint:Oi,faFaceLaugh:li,faLaugh:Xs,faFolderOpen:ks,faClipboard:hr,faChessQueen:fr,faHandBackFist:We,faHandRock:fi,faSquareCaretUp:zi,faCaretSquareUp:ts,faChartBar:hs,faBarChart:Ge,faWindowRestore:Zt,faSquarePlus:$t,faPlusSquare:Ui,faImage:ls,faFolderClosed:ns,faLemon:Ss,faHandshake:qi,faGem:pr,faCirclePlay:Js,faPlayCircle:ir,faCircleCheck:hn,faCheckCircle:ra,faCircleStop:ka,faStopCircle:Hn,faIdBadge:to,faFaceLaughBeam:Gr,faLaughBeam:Yn,faRegistered:To,faAddressCard:Pn,faContactCard:On,faVcard:Kr,faFaceTired:dn,faTired:mo,faFontAwesome:Xn,faFontAwesomeFlag:na,faFontAwesomeLogoFull:xl,faFaceSmileWink:Lo,faSmileWink:Io,faFileWord:bl,faFilePowerpoint:Zn,faEnvelopeOpen:Sl,faFileZipper:Vi,faFileArchive:yl,faSquare:Sn,faSnowflake:Kn,faNewspaper:Po,faFaceKissWinkHeart:Wi,faKissWinkHeart:yn,faStarHalfStroke:sr,faStarHalfAlt:qn,faFileExcel:rl,faFaceGrinBeam:Rn,faGrinBeam:Or,faObjectUngroup:fn,faCircleRight:$r,faArrowAltCircleRight:Wc,faFaceRollingEyes:Qn,faMehRollingEyes:Dn,faObjectGroup:Xu,faHeart:Ie,faFaceSurprise:_t,faSurprise:Ht,faCirclePause:ti,faPauseCircle:Hi,faCircle:Ee,faCircleUp:$e,faArrowAltCircleUp:bt,faFileAudio:Wt,faFileImage:vi,faCircleQuestion:es,faQuestionCircle:Qi,faFaceMehBlank:Ji,faMehBlank:Us,faEye:er,faFaceSadCry:Cr,faSadCry:rr,faFileCode:xr,faWindowMaximize:Nn,faFaceFrown:_a,faFrown:Fl,faFloppyDisk:Ua,faSave:io,faCommentDots:wn,faCommenting:uu,faFaceGrinSquint:Hc,faGrinSquint:gd,faHandPointer:kl,faHandScissors:aa,faFaceGrinTears:hu,faGrinTears:Ph,faCalendarXmark:Zu,faCalendarTimes:Yc,faFileVideo:Ku,faFilePdf:qu,faComment:_d,faEnvelope:Qu,faHourglass:du,faHourglassEmpty:fu,faCalendarCheck:Ju,faHardDrive:$u,faHdd:pu,faFaceGrinSquintTears:Ul,faGrinSquintTears:oc,faRectangleList:mu,faListAlt:r2,faCalendarPlus:lc,faCircleLeft:Xc,faArrowAltCircleLeft:go,faMoneyBill1:Wo,faMoneyBillAlt:Oo,faClock:so,faClockFour:vd,faKeyboard:ro,faClosedCaptioning:nl,faImages:va,faFaceGrin:_o,faGrin:eh,faFaceMeh:cc,faMeh:Ad,faIdCard:gu,faDriversLicense:Oh,faSun:Rh,faFaceLaughWink:th,faLaughWink:n1,faCircleDown:a1,faArrowAltCircleDown:Cd,faThumbsDown:_u,faChessPawn:Dh,faCreditCard:xd,faCreditCardAlt:o1,faBell:l1,faFile:vu,faHospital:ih,faHospitalAlt:n2,faHospitalWide:c1,faChessRook:mf,faStarHalf:bd,faChessKing:a2,faCircleUser:sh,faUserCircle:o2,faCopy:l2,faShareFromSquare:Nh,faShareSquare:u1,faCopyright:wh,faMap:c2,faBellSlash:Bh,faHandLizard:Zc,faFaceSmile:Au,faSmile:u2,faHandPeace:Kc,faFaceGrinHearts:zh,faGrinHearts:uc,faBuilding:Cu,faFaceGrinBeamSweat:h1,faGrinBeamSweat:xu,faMoon:gf,faCalendar:Sd,faFaceGrinTongueWink:Fh,faGrinTongueWink:h2,faClone:vo,faFaceAngry:d2,faAngry:d1,faRectangleXmark:rh,faRectangleTimes:f2,faTimesRectangle:Ao,faWindowClose:p2,faPaperPlane:m2,faLifeRing:f1,faFaceGrimace:kh,faGrimace:ye,faCalendarMinus:Be,faCircleXmark:Ze,faTimesCircle:tt,faXmarkCircle:gt,faThumbsUp:pe,faWindowMinimize:Ce,faSquareFull:De,faNoteSticky:Xe,faStickyNote:Je,faFaceSadTear:vt,faSadTear:Gt,faHandPointLeft:ai}},"../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs":(m,_,d)=>{d.r(_),d.d(_,{fa0:()=>x,fa1:()=>A,fa2:()=>S,fa3:()=>E,fa4:()=>b,fa5:()=>M,fa6:()=>T,fa7:()=>O,fa8:()=>R,fa9:()=>I,faA:()=>cp,faAd:()=>Bd,faAdd:()=>zF,faAddressBook:()=>Pn,faAddressCard:()=>sm,faAdjust:()=>TF,faAirFreshener:()=>Ca,faAlignCenter:()=>Mx,faAlignJustify:()=>Z4,faAlignLeft:()=>IE,faAlignRight:()=>Bj,faAllergies:()=>tV,faAmbulance:()=>V4,faAmericanSignLanguageInterpreting:()=>t4,faAnchor:()=>JU,faAnchorCircleCheck:()=>Ke,faAnchorCircleExclamation:()=>z2,faAnchorCircleXmark:()=>AT,faAnchorLock:()=>C7,faAngleDoubleDown:()=>os,faAngleDoubleLeft:()=>iU,faAngleDoubleRight:()=>U7,faAngleDoubleUp:()=>Hd,faAngleDown:()=>ey,faAngleLeft:()=>fj,faAngleRight:()=>A2,faAngleUp:()=>_k,faAnglesDown:()=>ki,faAnglesLeft:()=>EI,faAnglesRight:()=>K_,faAnglesUp:()=>ev,faAngry:()=>$U,faAnkh:()=>Ao,faAppleAlt:()=>g8,faAppleWhole:()=>vp,faArchive:()=>Dn,faArchway:()=>lp,faAreaChart:()=>Va,faArrowAltCircleDown:()=>kx,faArrowAltCircleLeft:()=>$m,faArrowAltCircleRight:()=>Ff,faArrowAltCircleUp:()=>Mm,faArrowCircleDown:()=>G7,faArrowCircleLeft:()=>jA,faArrowCircleRight:()=>c8,faArrowCircleUp:()=>q0,faArrowDown:()=>Vt,faArrowDown19:()=>ix,faArrowDown91:()=>Ie,faArrowDownAZ:()=>Y2,faArrowDownLong:()=>j7,faArrowDownShortWide:()=>j6,faArrowDownUpAcrossLine:()=>Js,faArrowDownUpLock:()=>qF,faArrowDownWideShort:()=>n8,faArrowDownZA:()=>y5,faArrowLeft:()=>Y8,faArrowLeftLong:()=>D1,faArrowLeftRotate:()=>WE,faArrowPointer:()=>B_,faArrowRight:()=>rC,faArrowRightArrowLeft:()=>Tx,faArrowRightFromBracket:()=>o2,faArrowRightFromFile:()=>sU,faArrowRightLong:()=>sy,faArrowRightRotate:()=>P1,faArrowRightToBracket:()=>z_,faArrowRightToCity:()=>YC,faArrowRightToFile:()=>W7,faArrowRotateBack:()=>cv,faArrowRotateBackward:()=>y6,faArrowRotateForward:()=>MC,faArrowRotateLeft:()=>r0,faArrowRotateRight:()=>H2,faArrowTrendDown:()=>ej,faArrowTrendUp:()=>uk,faArrowTurnDown:()=>bD,faArrowTurnUp:()=>s4,faArrowUp:()=>IR,faArrowUp19:()=>V8,faArrowUp91:()=>Yd,faArrowUpAZ:()=>eu,faArrowUpFromBracket:()=>Gb,faArrowUpFromGroundWater:()=>$M,faArrowUpFromWaterPump:()=>vV,faArrowUpLong:()=>hr,faArrowUpRightDots:()=>Kk,faArrowUpRightFromSquare:()=>fm,faArrowUpShortWide:()=>ND,faArrowUpWideShort:()=>Zp,faArrowUpZA:()=>qD,faArrows:()=>GF,faArrowsAlt:()=>Fd,faArrowsAltH:()=>gE,faArrowsAltV:()=>BU,faArrowsDownToLine:()=>xv,faArrowsDownToPeople:()=>K7,faArrowsH:()=>tS,faArrowsLeftRight:()=>eS,faArrowsLeftRightToLine:()=>hy,faArrowsRotate:()=>np,faArrowsSpin:()=>ZI,faArrowsSplitUpAndLeft:()=>gj,faArrowsToCircle:()=>w,faArrowsToDot:()=>wf,faArrowsToEye:()=>m8,faArrowsTurnRight:()=>kA,faArrowsTurnToDots:()=>Ux,faArrowsUpDown:()=>SN,faArrowsUpDownLeftRight:()=>ZR,faArrowsUpToLine:()=>xt,faArrowsV:()=>yN,faAslInterpreting:()=>cx,faAssistiveListeningSystems:()=>Hz,faAsterisk:()=>m2,faAt:()=>Y,faAtlas:()=>Bg,faAtom:()=>yt,faAudioDescription:()=>ca,faAustralSign:()=>D2,faAutomobile:()=>oy,faAward:()=>eU,faB:()=>Ex,faBaby:()=>QR,faBabyCarriage:()=>hD,faBackspace:()=>h4,faBackward:()=>xl,faBackwardFast:()=>fC,faBackwardStep:()=>n4,faBacon:()=>Vb,faBacteria:()=>xk,faBacterium:()=>Rp,faBagShopping:()=>fc,faBahai:()=>RI,faBahtSign:()=>zI,faBalanceScale:()=>nN,faBalanceScaleLeft:()=>V2,faBalanceScaleRight:()=>Og,faBan:()=>x2,faBanSmoking:()=>Tp,faBandAid:()=>Zj,faBandage:()=>TN,faBangladeshiTakaSign:()=>nh,faBank:()=>RV,faBarChart:()=>uA,faBarcode:()=>UV,faBars:()=>Oh,faBarsProgress:()=>L8,faBarsStaggered:()=>M9,faBaseball:()=>kR,faBaseballBall:()=>vI,faBaseballBatBall:()=>B1,faBasketShopping:()=>Lp,faBasketball:()=>t6,faBasketballBall:()=>b8,faBath:()=>eA,faBathtub:()=>tA,faBattery:()=>lF,faBattery0:()=>sn,faBattery2:()=>Ik,faBattery3:()=>I6,faBattery4:()=>dj,faBattery5:()=>cF,faBatteryCar:()=>E7,faBatteryEmpty:()=>Ns,faBatteryFull:()=>L9,faBatteryHalf:()=>c4,faBatteryQuarter:()=>uD,faBatteryThreeQuarters:()=>lN,faBed:()=>g,faBedPulse:()=>n7,faBeer:()=>Xs,faBeerMugEmpty:()=>li,faBell:()=>_e,faBellConcierge:()=>kl,faBellSlash:()=>fk,faBezierCurve:()=>dk,faBible:()=>UC,faBicycle:()=>Vh,faBiking:()=>CU,faBinoculars:()=>wn,faBiohazard:()=>jm,faBirthdayCake:()=>RE,faBitcoinSign:()=>$g,faBlackboard:()=>yE,faBlender:()=>ek,faBlenderPhone:()=>Jb,faBlind:()=>zz,faBlog:()=>yn,faBold:()=>iA,faBolt:()=>Ov,faBoltLightning:()=>pp,faBomb:()=>OA,faBone:()=>AV,faBong:()=>Ss,faBook:()=>cj,faBookAtlas:()=>op,faBookBible:()=>kC,faBookBookmark:()=>s6,faBookDead:()=>GS,faBookJournalWhills:()=>gN,faBookMedical:()=>e0,faBookOpen:()=>Mj,faBookOpenReader:()=>cy,faBookQuran:()=>eN,faBookReader:()=>bT,faBookSkull:()=>F1,faBookTanakh:()=>J8,faBookmark:()=>Ub,faBorderAll:()=>tN,faBorderNone:()=>s0,faBorderStyle:()=>b7,faBorderTopLeft:()=>sA,faBoreHole:()=>Fx,faBottleDroplet:()=>Oj,faBottleWater:()=>fS,faBowlFood:()=>Q7,faBowlRice:()=>p0,faBowlingBall:()=>HI,faBox:()=>ag,faBoxArchive:()=>Qn,faBoxOpen:()=>H7,faBoxTissue:()=>Hc,faBoxes:()=>Vz,faBoxesAlt:()=>Gz,faBoxesPacking:()=>_E,faBoxesStacked:()=>E9,faBraille:()=>UE,faBrain:()=>Xj,faBrazilianRealSign:()=>gF,faBreadSlice:()=>Ug,faBridge:()=>T8,faBridgeCircleCheck:()=>gi,faBridgeCircleExclamation:()=>$4,faBridgeCircleXmark:()=>Td,faBridgeLock:()=>_f,faBridgeWater:()=>ph,faBriefcase:()=>Aj,faBriefcaseClock:()=>A6,faBriefcaseMedical:()=>yk,faBroadcastTower:()=>Ix,faBroom:()=>II,faBroomBall:()=>Or,faBrush:()=>nV,faBucket:()=>R7,faBug:()=>CT,faBugSlash:()=>jN,faBugs:()=>Tm,faBuilding:()=>tU,faBuildingCircleArrowRight:()=>ct,faBuildingCircleCheck:()=>Pf,faBuildingCircleExclamation:()=>El,faBuildingCircleXmark:()=>Cv,faBuildingColumns:()=>TT,faBuildingFlag:()=>pm,faBuildingLock:()=>F5,faBuildingNgo:()=>G_,faBuildingShield:()=>HF,faBuildingUn:()=>we,faBuildingUser:()=>Bn,faBuildingWheat:()=>W5,faBullhorn:()=>zn,faBullseye:()=>AM,faBurger:()=>yp,faBurn:()=>fi,faBurst:()=>wA,faBus:()=>Dt,faBusAlt:()=>SC,faBusSimple:()=>ru,faBusinessTime:()=>Xm,faC:()=>Ef,faCab:()=>Tu,faCableCar:()=>Cx,faCake:()=>$8,faCakeCandles:()=>x6,faCalculator:()=>rT,faCalendar:()=>FU,faCalendarAlt:()=>Ve,faCalendarCheck:()=>kE,faCalendarDay:()=>kj,faCalendarDays:()=>st,faCalendarMinus:()=>Kj,faCalendarPlus:()=>_h,faCalendarTimes:()=>_S,faCalendarWeek:()=>HS,faCalendarXmark:()=>Wm,faCamera:()=>ex,faCameraAlt:()=>rv,faCameraRetro:()=>TA,faCameraRotate:()=>Co,faCampground:()=>Ys,faCancel:()=>v1,faCandyCane:()=>AE,faCannabis:()=>bg,faCapsules:()=>R_,faCar:()=>G6,faCarAlt:()=>Tk,faCarBattery:()=>M7,faCarBurst:()=>mI,faCarCrash:()=>SF,faCarOn:()=>tx,faCarRear:()=>lD,faCarSide:()=>B4,faCarTunnel:()=>Wx,faCaravan:()=>Dx,faCaretDown:()=>id,faCaretLeft:()=>mf,faCaretRight:()=>Lo,faCaretSquareDown:()=>_o,faCaretSquareLeft:()=>z5,faCaretSquareRight:()=>_d,faCaretSquareUp:()=>L7,faCaretUp:()=>JM,faCarriageBaby:()=>dD,faCarrot:()=>fU,faCartArrowDown:()=>uI,faCartFlatbed:()=>I8,faCartFlatbedSuitcase:()=>pN,faCartPlus:()=>Xe,faCartShopping:()=>c0,faCashRegister:()=>xo,faCat:()=>Wl,faCediSign:()=>_c,faCentSign:()=>KE,faCertificate:()=>sE,faChain:()=>Wz,faChainBroken:()=>ZD,faChainSlash:()=>YU,faChair:()=>xA,faChalkboard:()=>YA,faChalkboardTeacher:()=>qR,faChalkboardUser:()=>KR,faChampagneGlasses:()=>p7,faChargingStation:()=>U5,faChartArea:()=>pc,faChartBar:()=>cA,faChartColumn:()=>PU,faChartDiagram:()=>Qf,faChartGantt:()=>M6,faChartLine:()=>_m,faChartPie:()=>oo,faChartSimple:()=>q4,faCheck:()=>hj,faCheckCircle:()=>tE,faCheckDouble:()=>nx,faCheckSquare:()=>kh,faCheckToSlot:()=>_R,faCheese:()=>UD,faChess:()=>e4,faChessBishop:()=>U4,faChessBoard:()=>aA,faChessKing:()=>mF,faChessKnight:()=>B3,faChessPawn:()=>wv,faChessQueen:()=>T7,faChessRook:()=>Rz,faChevronCircleDown:()=>u1,faChevronCircleLeft:()=>FD,faChevronCircleRight:()=>k,faChevronCircleUp:()=>J_,faChevronDown:()=>oF,faChevronLeft:()=>Ck,faChevronRight:()=>Ek,faChevronUp:()=>en,faChild:()=>yS,faChildCombatant:()=>xI,faChildDress:()=>B8,faChildReaching:()=>k8,faChildRifle:()=>wF,faChildren:()=>SE,faChurch:()=>Bf,faCircle:()=>dC,faCircleArrowDown:()=>LA,faCircleArrowLeft:()=>r8,faCircleArrowRight:()=>L2,faCircleArrowUp:()=>S2,faCircleCheck:()=>ep,faCircleChevronDown:()=>Nh,faCircleChevronLeft:()=>zD,faCircleChevronRight:()=>D,faCircleChevronUp:()=>oh,faCircleDollarToSlot:()=>Kc,faCircleDot:()=>vt,faCircleDown:()=>Dv,faCircleExclamation:()=>bd,faCircleH:()=>Gr,faCircleHalfStroke:()=>gI,faCircleInfo:()=>S6,faCircleLeft:()=>Ou,faCircleMinus:()=>ot,faCircleNodes:()=>Km,faCircleNotch:()=>Qi,faCirclePause:()=>Gf,faCirclePlay:()=>AA,faCirclePlus:()=>YD,faCircleQuestion:()=>Im,faCircleRadiation:()=>_I,faCircleRight:()=>Gl,faCircleStop:()=>K3,faCircleUp:()=>Wf,faCircleUser:()=>DR,faCircleXmark:()=>w9,faCity:()=>wM,faClapperboard:()=>LF,faClinicMedical:()=>hx,faClipboard:()=>m7,faClipboardCheck:()=>Em,faClipboardList:()=>Vi,faClipboardQuestion:()=>AC,faClipboardUser:()=>SS,faClock:()=>Xl,faClockFour:()=>w1,faClockRotateLeft:()=>TD,faClone:()=>XU,faClose:()=>UF,faClosedCaptioning:()=>iT,faCloud:()=>Cr,faCloudArrowDown:()=>HA,faCloudArrowUp:()=>Dg,faCloudBolt:()=>VA,faCloudDownload:()=>sS,faCloudDownloadAlt:()=>bE,faCloudMeatball:()=>$C,faCloudMoon:()=>vj,faCloudMoonRain:()=>zU,faCloudRain:()=>US,faCloudShowersHeavy:()=>Bh,faCloudShowersWater:()=>HM,faCloudSun:()=>kN,faCloudSunRain:()=>d2,faCloudUpload:()=>fE,faCloudUploadAlt:()=>FA,faClover:()=>lc,faCny:()=>wx,faCocktail:()=>Vf,faCode:()=>hm,faCodeBranch:()=>Pm,faCodeCommit:()=>vU,faCodeCompare:()=>yR,faCodeFork:()=>NM,faCodeMerge:()=>Ox,faCodePullRequest:()=>Sl,faCoffee:()=>rV,faCog:()=>fs,faCogs:()=>Xk,faCoins:()=>Q2,faColonSign:()=>U_,faColumns:()=>Q0,faComment:()=>ES,faCommentAlt:()=>Q,faCommentDollar:()=>v6,faCommentDots:()=>Fm,faCommentMedical:()=>qh,faCommentNodes:()=>rU,faCommentSlash:()=>vo,faCommentSms:()=>wI,faCommenting:()=>Pp,faComments:()=>Io,faCommentsDollar:()=>Su,faCompactDisc:()=>Pv,faCompass:()=>nl,faCompassDrafting:()=>q3,faCompress:()=>d1,faCompressAlt:()=>X,faCompressArrowsAlt:()=>k7,faComputer:()=>kF,faComputerMouse:()=>Zb,faConciergeBell:()=>aa,faContactBook:()=>On,faContactCard:()=>rp,faCookie:()=>ox,faCookieBite:()=>sN,faCopy:()=>jR,faCopyright:()=>JF,faCouch:()=>Do,faCow:()=>QM,faCreditCard:()=>Hx,faCreditCardAlt:()=>xT,faCrop:()=>ji,faCropAlt:()=>Ll,faCropSimple:()=>Sa,faCross:()=>k5,faCrosshairs:()=>av,faCrow:()=>KM,faCrown:()=>hg,faCrutch:()=>hE,faCruzeiroSign:()=>KA,faCube:()=>Jg,faCubes:()=>kp,faCubesStacked:()=>O2,faCut:()=>du,faCutlery:()=>xh,faD:()=>zV,faDashboard:()=>Id,faDatabase:()=>Ij,faDeaf:()=>_2,faDeafness:()=>E5,faDedent:()=>Ch,faDeleteLeft:()=>yv,faDemocrat:()=>yu,faDesktop:()=>NI,faDesktopAlt:()=>nj,faDharmachakra:()=>wz,faDiagnoses:()=>Jz,faDiagramNext:()=>eT,faDiagramPredecessor:()=>ks,faDiagramProject:()=>UR,faDiagramSuccessor:()=>pj,faDiamond:()=>km,faDiamondTurnRight:()=>NA,faDice:()=>Yj,faDiceD20:()=>Yx,faDiceD6:()=>RC,faDiceFive:()=>Ob,faDiceFour:()=>AD,faDiceOne:()=>YS,faDiceSix:()=>LC,faDiceThree:()=>ke,faDiceTwo:()=>W3,faDigging:()=>$f,faDigitalTachograph:()=>mu,faDirections:()=>Y7,faDisease:()=>aD,faDisplay:()=>zk,faDivide:()=>$h,faDizzy:()=>As,faDna:()=>So,faDog:()=>dU,faDollar:()=>WN,faDollarSign:()=>qI,faDolly:()=>Y3,faDollyBox:()=>z7,faDollyFlatbed:()=>xC,faDonate:()=>zh,faDongSign:()=>U0,faDoorClosed:()=>G8,faDoorOpen:()=>Me,faDotCircle:()=>Gt,faDove:()=>kn,faDownLeftAndUpRightToCenter:()=>oe,faDownLong:()=>ER,faDownload:()=>bx,faDraftingCompass:()=>Sg,faDragon:()=>jU,faDrawPolygon:()=>ij,faDriversLicense:()=>R6,faDroplet:()=>Et,faDropletSlash:()=>X2,faDrum:()=>gR,faDrumSteelpan:()=>W2,faDrumstickBite:()=>vk,faDumbbell:()=>dv,faDumpster:()=>Hb,faDumpsterFire:()=>Kg,faDungeon:()=>UI,faE:()=>Mf,faEarDeaf:()=>L_,faEarListen:()=>CR,faEarth:()=>_s,faEarthAfrica:()=>Wt,faEarthAmerica:()=>$s,faEarthAmericas:()=>Gi,faEarthAsia:()=>PN,faEarthEurope:()=>fN,faEarthOceania:()=>jD,faEdit:()=>b3,faEgg:()=>Cs,faEject:()=>Hg,faElevator:()=>v8,faEllipsis:()=>V6,faEllipsisH:()=>ry,faEllipsisV:()=>JE,faEllipsisVertical:()=>Gp,faEnvelope:()=>TS,faEnvelopeCircleCheck:()=>E2,faEnvelopeOpen:()=>XA,faEnvelopeOpenText:()=>ST,faEnvelopeSquare:()=>Hj,faEnvelopesBulk:()=>ka,faEquals:()=>$F,faEraser:()=>yi,faEthernet:()=>J0,faEur:()=>Z3,faEuro:()=>$0,faEuroSign:()=>q_,faExchange:()=>oT,faExchangeAlt:()=>AN,faExclamation:()=>yV,faExclamationCircle:()=>a2,faExclamationTriangle:()=>Tj,faExpand:()=>FF,faExpandAlt:()=>EU,faExpandArrowsAlt:()=>SM,faExplosion:()=>se,faExternalLink:()=>P2,faExternalLinkAlt:()=>wC,faExternalLinkSquare:()=>$3,faExternalLinkSquareAlt:()=>xd,faEye:()=>D8,faEyeDropper:()=>O6,faEyeDropperEmpty:()=>d4,faEyeLowVision:()=>hA,faEyeSlash:()=>mn,faEyedropper:()=>jS,faF:()=>Ga,faFaceAngry:()=>iN,faFaceDizzy:()=>ai,faFaceFlushed:()=>xr,faFaceFrown:()=>rs,faFaceFrownOpen:()=>X4,faFaceGrimace:()=>MN,faFaceGrin:()=>bv,faFaceGrinBeam:()=>vc,faFaceGrinBeamSweat:()=>ID,faFaceGrinHearts:()=>vD,faFaceGrinSquint:()=>Op,faFaceGrinSquintTears:()=>hv,faFaceGrinStars:()=>ls,faFaceGrinTears:()=>Bp,faFaceGrinTongue:()=>k4,faFaceGrinTongueSquint:()=>ti,faFaceGrinTongueWink:()=>XD,faFaceGrinWide:()=>v2,faFaceGrinWink:()=>Ld,faFaceKiss:()=>Af,faFaceKissBeam:()=>o1,faFaceKissWinkHeart:()=>jg,faFaceLaugh:()=>a7,faFaceLaughBeam:()=>Mg,faFaceLaughSquint:()=>b2,faFaceLaughWink:()=>k6,faFaceMeh:()=>p4,faFaceMehBlank:()=>su,faFaceRollingEyes:()=>_p,faFaceSadCry:()=>wm,faFaceSadTear:()=>VN,faFaceSmile:()=>SI,faFaceSmileBeam:()=>Ot,faFaceSmileWink:()=>rm,faFaceSurprise:()=>E1,faFaceTired:()=>i8,faFan:()=>NU,faFastBackward:()=>pC,faFastForward:()=>Rm,faFaucet:()=>Za,faFaucetDrip:()=>Dm,faFax:()=>aI,faFeather:()=>Sd,faFeatherAlt:()=>qA,faFeatherPointed:()=>up,faFeed:()=>tj,faFemale:()=>PE,faFerry:()=>pE,faFighterJet:()=>$N,faFile:()=>ut,faFileAlt:()=>he,faFileArchive:()=>wd,faFileArrowDown:()=>D6,faFileArrowUp:()=>$5,faFileAudio:()=>Zh,faFileCircleCheck:()=>Mv,faFileCircleExclamation:()=>to,faFileCircleMinus:()=>Cc,faFileCirclePlus:()=>$D,faFileCircleQuestion:()=>eh,faFileCircleXmark:()=>y,faFileClipboard:()=>Zn,faFileCode:()=>Fn,faFileContract:()=>mp,faFileCsv:()=>Ge,faFileDownload:()=>dT,faFileEdit:()=>iF,faFileExcel:()=>TE,faFileExport:()=>OD,faFileFragment:()=>fh,faFileHalfDashed:()=>BN,faFileImage:()=>Lm,faFileImport:()=>IA,faFileInvoice:()=>iV,faFileInvoiceDollar:()=>EM,faFileLines:()=>ue,faFileMedical:()=>Xp,faFileMedicalAlt:()=>K4,faFilePdf:()=>FC,faFilePen:()=>SR,faFilePowerpoint:()=>xE,faFilePrescription:()=>K0,faFileShield:()=>Zf,faFileSignature:()=>hh,faFileText:()=>fe,faFileUpload:()=>g7,faFileVideo:()=>NC,faFileWaveform:()=>B5,faFileWord:()=>WA,faFileZipper:()=>Nd,faFill:()=>gk,faFillDrip:()=>N,faFilm:()=>vu,faFilter:()=>uS,faFilterCircleDollar:()=>EA,faFilterCircleXmark:()=>oS,faFingerprint:()=>wi,faFire:()=>F3,faFireAlt:()=>KU,faFireBurner:()=>h1,faFireExtinguisher:()=>nm,faFireFlameCurved:()=>JD,faFireFlameSimple:()=>We,faFirstAid:()=>ny,faFish:()=>FR,faFishFins:()=>Gg,faFistRaised:()=>_j,faFlag:()=>xu,faFlagCheckered:()=>Ye,faFlagUsa:()=>$E,faFlask:()=>qE,faFlaskVial:()=>Ed,faFloppyDisk:()=>Kf,faFlorinSign:()=>jx,faFlushed:()=>Nn,faFolder:()=>w5,faFolderBlank:()=>CM,faFolderClosed:()=>H_,faFolderMinus:()=>iD,faFolderOpen:()=>Q5,faFolderPlus:()=>tr,faFolderTree:()=>vv,faFont:()=>oI,faFontAwesome:()=>s8,faFontAwesomeFlag:()=>dE,faFontAwesomeLogoFull:()=>zA,faFootball:()=>Tt,faFootballBall:()=>Ut,faForward:()=>Sx,faForwardFast:()=>Ep,faForwardStep:()=>qe,faFrancSign:()=>o0,faFrog:()=>Ag,faFrown:()=>Bm,faFrownOpen:()=>zb,faFunnelDollar:()=>V7,faFutbol:()=>Wr,faFutbolBall:()=>ja,faG:()=>bf,faGamepad:()=>Je,faGasPump:()=>qc,faGauge:()=>Q4,faGaugeHigh:()=>uo,faGaugeMed:()=>R3,faGaugeSimple:()=>nr,faGaugeSimpleHigh:()=>DI,faGaugeSimpleMed:()=>Hm,faGavel:()=>Ua,faGbp:()=>bA,faGear:()=>Zd,faGears:()=>MI,faGem:()=>eE,faGenderless:()=>Mk,faGhost:()=>tt,faGift:()=>gg,faGifts:()=>Qj,faGlassCheers:()=>J5,faGlassMartini:()=>lm,faGlassMartiniAlt:()=>mA,faGlassWater:()=>Nx,faGlassWaterDroplet:()=>Bk,faGlassWhiskey:()=>hS,faGlasses:()=>GM,faGlobe:()=>N3,faGlobeAfrica:()=>vi,faGlobeAmericas:()=>br,faGlobeAsia:()=>Jj,faGlobeEurope:()=>xj,faGlobeOceania:()=>VD,faGolfBall:()=>aU,faGolfBallTee:()=>BD,faGopuram:()=>bU,faGraduationCap:()=>rw,faGreaterThan:()=>ni,faGreaterThanEqual:()=>Nf,faGrimace:()=>jj,faGrin:()=>Sv,faGrinAlt:()=>jh,faGrinBeam:()=>Wg,faGrinBeamSweat:()=>PD,faGrinHearts:()=>qk,faGrinSquint:()=>Um,faGrinSquintTears:()=>jp,faGrinStars:()=>ns,faGrinTears:()=>z8,faGrinTongue:()=>z0,faGrinTongueSquint:()=>Hi,faGrinTongueWink:()=>GU,faGrinWink:()=>M5,faGrip:()=>WR,faGripHorizontal:()=>DF,faGripLines:()=>iy,faGripLinesVertical:()=>X0,faGripVertical:()=>N1,faGroupArrowsRotate:()=>vE,faGuaraniSign:()=>aS,faGuitar:()=>JS,faGun:()=>BF,faH:()=>aC,faHSquare:()=>L,faHamburger:()=>M8,faHammer:()=>jk,faHamsa:()=>u0,faHand:()=>no,faHandBackFist:()=>W_,faHandDots:()=>wN,faHandFist:()=>BI,faHandHolding:()=>WU,faHandHoldingDollar:()=>qf,faHandHoldingDroplet:()=>nv,faHandHoldingHand:()=>ly,faHandHoldingHeart:()=>sC,faHandHoldingMedical:()=>ZIe,faHandHoldingUsd:()=>Qh,faHandHoldingWater:()=>FE,faHandLizard:()=>bk,faHandMiddleFinger:()=>Nk,faHandPaper:()=>Zs,faHandPeace:()=>Vk,faHandPointDown:()=>N_,faHandPointLeft:()=>qN,faHandPointRight:()=>Ni,faHandPointUp:()=>Fb,faHandPointer:()=>I1,faHandRock:()=>_g,faHandScissors:()=>Jf,faHandSparkles:()=>GR,faHandSpock:()=>F4,faHandcuffs:()=>_N,faHands:()=>VI,faHandsAmericanSignLanguageInterpreting:()=>Xd,faHandsAslInterpreting:()=>ms,faHandsBound:()=>A1,faHandsBubbles:()=>I7,faHandsClapping:()=>OC,faHandsHelping:()=>Ai,faHandsHolding:()=>bc,faHandsHoldingChild:()=>p2,faHandsHoldingCircle:()=>Bv,faHandsPraying:()=>Dp,faHandsWash:()=>YM,faHandshake:()=>Z_,faHandshakeAlt:()=>kV,faHandshakeAltSlash:()=>o8,faHandshakeAngle:()=>Jt,faHandshakeSimple:()=>QN,faHandshakeSimpleSlash:()=>nS,faHandshakeSlash:()=>Yf,faHanukiah:()=>gf,faHardDrive:()=>uv,faHardHat:()=>w2,faHardOfHearing:()=>T5,faHashtag:()=>MU,faHatCowboy:()=>dh,faHatCowboySide:()=>bS,faHatHard:()=>gp,faHatWizard:()=>or,faHaykal:()=>UU,faHdd:()=>YE,faHeadSideCough:()=>ty,faHeadSideCoughSlash:()=>L3,faHeadSideMask:()=>xg,faHeadSideVirus:()=>U8,faHeader:()=>Ze,faHeading:()=>Be,faHeadphones:()=>Ym,faHeadphonesAlt:()=>Au,faHeadphonesSimple:()=>Zc,faHeadset:()=>FM,faHeart:()=>Am,faHeartBroken:()=>_u,faHeartCircleBolt:()=>kz,faHeartCircleCheck:()=>lh,faHeartCircleExclamation:()=>WS,faHeartCircleMinus:()=>dc,faHeartCirclePlus:()=>l7,faHeartCircleXmark:()=>xc,faHeartCrack:()=>Cd,faHeartMusicCameraBolt:()=>Kt,faHeartPulse:()=>t7,faHeartbeat:()=>OM,faHelicopter:()=>ro,faHelicopterSymbol:()=>x1,faHelmetSafety:()=>M1,faHelmetUn:()=>jb,faHexagonNodes:()=>qd,faHexagonNodesBolt:()=>lk,faHighlighter:()=>Ci,faHiking:()=>sT,faHillAvalanche:()=>lE,faHillRockslide:()=>Dj,faHippo:()=>IU,faHistory:()=>LD,faHockeyPuck:()=>$u,faHollyBerry:()=>Ak,faHome:()=>Tv,faHomeAlt:()=>Bu,faHomeLg:()=>Hl,faHomeLgAlt:()=>Hp,faHomeUser:()=>Vd,faHorse:()=>D5,faHorseHead:()=>$S,faHospital:()=>U1,faHospitalAlt:()=>nI,faHospitalSymbol:()=>Yn,faHospitalUser:()=>_a,faHospitalWide:()=>Pz,faHotTub:()=>Uh,faHotTubPerson:()=>g2,faHotdog:()=>Bz,faHotel:()=>IN,faHourglass:()=>qm,faHourglass1:()=>IM,faHourglass2:()=>y3,faHourglass3:()=>a1,faHourglassEmpty:()=>b6,faHourglassEnd:()=>n1,faHourglassHalf:()=>z4,faHourglassStart:()=>G5,faHouse:()=>k1,faHouseChimney:()=>U2,faHouseChimneyCrack:()=>om,faHouseChimneyMedical:()=>ux,faHouseChimneyUser:()=>iC,faHouseChimneyWindow:()=>oU,faHouseCircleCheck:()=>cN,faHouseCircleExclamation:()=>UM,faHouseCircleXmark:()=>vf,faHouseCrack:()=>oC,faHouseDamage:()=>zg,faHouseFire:()=>Oo,faHouseFlag:()=>Yb,faHouseFloodWater:()=>E_,faHouseFloodWaterCircleArrowRight:()=>e6,faHouseLaptop:()=>BA,faHouseLock:()=>iS,faHouseMedical:()=>nU,faHouseMedicalCircleCheck:()=>Qm,faHouseMedicalCircleExclamation:()=>sd,faHouseMedicalCircleXmark:()=>zs,faHouseMedicalFlag:()=>bC,faHouseSignal:()=>mS,faHouseTsunami:()=>N7,faHouseUser:()=>Xh,faHryvnia:()=>P5,faHryvniaSign:()=>P_,faHurricane:()=>Kp,faI:()=>Db,faICursor:()=>_M,faIceCream:()=>Fz,faIcicles:()=>Q_,faIcons:()=>Nt,faIdBadge:()=>tp,faIdCard:()=>d0,faIdCardAlt:()=>RN,faIdCardClip:()=>ON,faIgloo:()=>H4,faIls:()=>ik,faImage:()=>D7,faImagePortrait:()=>hN,faImages:()=>z1,faInbox:()=>co,faIndent:()=>iv,faIndianRupee:()=>js,faIndianRupeeSign:()=>Du,faIndustry:()=>U6,faInfinity:()=>OU,faInfo:()=>re,faInfoCircle:()=>NE,faInr:()=>cl,faInstitution:()=>DV,faItalic:()=>Pa,faJ:()=>DC,faJar:()=>gV,faJarWheat:()=>ra,faJedi:()=>G3,faJetFighter:()=>JN,faJetFighterUp:()=>PF,faJoint:()=>Bb,faJournalWhills:()=>Ej,faJpy:()=>gT,faJugDetergent:()=>RR,faK:()=>dn,faKaaba:()=>mm,faKey:()=>Jc,faKeyboard:()=>a4,faKhanda:()=>wS,faKipSign:()=>FV,faKiss:()=>bu,faKissBeam:()=>l1,faKissWinkHeart:()=>d8,faKitMedical:()=>Jp,faKitchenSet:()=>qg,faKiwiBird:()=>Lv,faKrw:()=>fp,faL:()=>K5,faLadderWater:()=>Uj,faLandMineOn:()=>j4,faLandmark:()=>rx,faLandmarkAlt:()=>_F,faLandmarkDome:()=>LR,faLandmarkFlag:()=>mo,faLanguage:()=>cS,faLaptop:()=>hs,faLaptopCode:()=>cc,faLaptopFile:()=>yc,faLaptopHouse:()=>cE,faLaptopMedical:()=>Yp,faLariSign:()=>Of,faLaugh:()=>o7,faLaughBeam:()=>Rd,faLaughSquint:()=>Z5,faLaughWink:()=>zx,faLayerGroup:()=>T2,faLeaf:()=>Wa,faLeftLong:()=>on,faLeftRight:()=>q7,faLegal:()=>io,faLemon:()=>X_,faLessThan:()=>Nv,faLessThanEqual:()=>XM,faLevelDown:()=>$k,faLevelDownAlt:()=>Gj,faLevelUp:()=>r4,faLevelUpAlt:()=>qIe,faLifeRing:()=>jI,faLightbulb:()=>c1,faLineChart:()=>vm,faLinesLeaning:()=>QF,faLink:()=>AR,faLinkSlash:()=>P9,faLiraSign:()=>C6,faList:()=>gt,faList12:()=>$A,faListAlt:()=>fv,faListCheck:()=>OR,faListDots:()=>hF,faListNumeric:()=>lS,faListOl:()=>JA,faListSquares:()=>pe,faListUl:()=>MR,faLitecoinSign:()=>ZC,faLocation:()=>u6,faLocationArrow:()=>sg,faLocationCrosshairs:()=>wp,faLocationDot:()=>Ct,faLocationPin:()=>Yh,faLocationPinLock:()=>Lg,faLock:()=>Ro,faLockOpen:()=>Sm,faLocust:()=>u8,faLongArrowAltDown:()=>TR,faLongArrowAltLeft:()=>Oa,faLongArrowAltRight:()=>FS,faLongArrowAltUp:()=>cT,faLongArrowDown:()=>iE,faLongArrowLeft:()=>n0,faLongArrowRight:()=>Qp,faLongArrowUp:()=>fr,faLowVision:()=>Hh,faLuggageCart:()=>bj,faLungs:()=>tv,faLungsVirus:()=>EC,faM:()=>aj,faMagic:()=>hU,faMagicWandSparkles:()=>J4,faMagnet:()=>mV,faMagnifyingGlass:()=>lI,faMagnifyingGlassArrowRight:()=>Ul,faMagnifyingGlassChart:()=>Eu,faMagnifyingGlassDollar:()=>fy,faMagnifyingGlassLocation:()=>qt,faMagnifyingGlassMinus:()=>zN,faMagnifyingGlassPlus:()=>DN,faMailBulk:()=>Hn,faMailForward:()=>Pj,faMailReply:()=>go,faMailReplyAll:()=>rE,faMale:()=>ts,faManatSign:()=>x7,faMap:()=>nk,faMapLocation:()=>x3,faMapLocationDot:()=>rA,faMapMarked:()=>p1,faMapMarkedAlt:()=>nA,faMapMarker:()=>zf,faMapMarkerAlt:()=>Ft,faMapPin:()=>ZE,faMapSigns:()=>Uf,faMarker:()=>Od,faMars:()=>mT,faMarsAndVenus:()=>Zg,faMarsAndVenusBurst:()=>Ku,faMarsDouble:()=>Vm,faMarsStroke:()=>Wb,faMarsStrokeH:()=>WM,faMarsStrokeRight:()=>oA,faMarsStrokeUp:()=>j_,faMarsStrokeV:()=>f7,faMartiniGlass:()=>pA,faMartiniGlassCitrus:()=>jf,faMartiniGlassEmpty:()=>ol,faMask:()=>aV,faMaskFace:()=>Rj,faMaskVentilator:()=>f8,faMasksTheater:()=>ZN,faMattressPillow:()=>wg,faMaximize:()=>Y0,faMedal:()=>Z,faMedkit:()=>VC,faMeh:()=>Ev,faMehBlank:()=>Xf,faMehRollingEyes:()=>Yg,faMemory:()=>uc,faMenorah:()=>Zt,faMercury:()=>xD,faMessage:()=>W,faMeteor:()=>wE,faMicrochip:()=>k_,faMicrophone:()=>dA,faMicrophoneAlt:()=>BM,faMicrophoneAltSlash:()=>Pi,faMicrophoneLines:()=>c7,faMicrophoneLinesSlash:()=>si,faMicrophoneSlash:()=>uu,faMicroscope:()=>Md,faMillSign:()=>lT,faMinimize:()=>F7,faMinus:()=>R1,faMinusCircle:()=>At,faMinusSquare:()=>vd,faMitten:()=>oa,faMobile:()=>yx,faMobileAlt:()=>_C,faMobileAndroid:()=>f4,faMobileAndroidAlt:()=>fx,faMobileButton:()=>Nm,faMobilePhone:()=>VS,faMobileRetro:()=>mc,faMobileScreen:()=>o4,faMobileScreenButton:()=>bp,faMoneyBill:()=>kb,faMoneyBill1:()=>vh,faMoneyBill1Wave:()=>CN,faMoneyBillAlt:()=>Vs,faMoneyBillTransfer:()=>uC,faMoneyBillTrendUp:()=>A8,faMoneyBillWave:()=>W0,faMoneyBillWaveAlt:()=>zj,faMoneyBillWheat:()=>ax,faMoneyBills:()=>uE,faMoneyCheck:()=>dp,faMoneyCheckAlt:()=>eC,faMoneyCheckDollar:()=>h8,faMonument:()=>X3,faMoon:()=>pU,faMortarBoard:()=>qY,faMortarPestle:()=>G4,faMosque:()=>l0,faMosquito:()=>Kd,faMosquitoNet:()=>W8,faMotorcycle:()=>gd,faMound:()=>Rx,faMountain:()=>sv,faMountainCity:()=>u4,faMountainSun:()=>uy,faMouse:()=>TM,faMousePointer:()=>bM,faMugHot:()=>VM,faMugSaucer:()=>YI,faMultiply:()=>XR,faMuseum:()=>NV,faMusic:()=>_U,faN:()=>aT,faNairaSign:()=>eF,faNavicon:()=>Rh,faNetworkWired:()=>Av,faNeuter:()=>Pd,faNewspaper:()=>kg,faNotEqual:()=>V3,faNotdef:()=>Sk,faNoteSticky:()=>UN,faNotesMedical:()=>k0,faO:()=>jC,faObjectGroup:()=>kf,faObjectUngroup:()=>Ud,faOilCan:()=>TU,faOilWell:()=>N6,faOm:()=>T_,faOtter:()=>K8,faOutdent:()=>wu,faP:()=>Fg,faPager:()=>To,faPaintBrush:()=>hc,faPaintRoller:()=>Mt,faPaintbrush:()=>Jn,faPalette:()=>X7,faPallet:()=>gv,faPanorama:()=>Kh,faPaperPlane:()=>Nj,faPaperclip:()=>DE,faParachuteBox:()=>KC,faParagraph:()=>Uz,faParking:()=>pS,faPassport:()=>F_,faPastafarianism:()=>pr,faPaste:()=>bl,faPause:()=>tm,faPauseCircle:()=>LE,faPaw:()=>er,faPeace:()=>Yk,faPen:()=>ua,faPenAlt:()=>C2,faPenClip:()=>w_,faPenFancy:()=>mh,faPenNib:()=>lU,faPenRuler:()=>hu,faPenSquare:()=>dI,faPenToSquare:()=>yd,faPencil:()=>Xn,faPencilAlt:()=>na,faPencilRuler:()=>Ph,faPencilSquare:()=>rF,faPeopleArrows:()=>Zu,faPeopleArrowsLeftRight:()=>Yc,faPeopleCarry:()=>X5,faPeopleCarryBox:()=>i7,faPeopleGroup:()=>th,faPeopleLine:()=>Oi,faPeoplePulling:()=>nT,faPeopleRobbery:()=>n2,faPeopleRoof:()=>hi,faPepperHot:()=>u7,faPercent:()=>bI,faPercentage:()=>wk,faPerson:()=>zi,faPersonArrowDownToLine:()=>RU,faPersonArrowUpFromLine:()=>qn,faPersonBiking:()=>LI,faPersonBooth:()=>f6,faPersonBreastfeeding:()=>H5,faPersonBurst:()=>Ks,faPersonCane:()=>OS,faPersonChalkboard:()=>H3,faPersonCircleCheck:()=>KIe,faPersonCircleExclamation:()=>aF,faPersonCircleMinus:()=>la,faPersonCirclePlus:()=>Ha,faPersonCircleQuestion:()=>dS,faPersonCircleXmark:()=>g6,faPersonDigging:()=>gh,faPersonDotsFromLine:()=>bR,faPersonDress:()=>q8,faPersonDressBurst:()=>EE,faPersonDrowning:()=>Xu,faPersonFalling:()=>uN,faPersonFallingBurst:()=>SD,faPersonHalfDress:()=>ig,faPersonHarassing:()=>fI,faPersonHiking:()=>vx,faPersonMilitaryPointing:()=>OV,faPersonMilitaryRifle:()=>T6,faPersonMilitaryToPerson:()=>Yo,faPersonPraying:()=>gD,faPersonPregnant:()=>QE,faPersonRays:()=>Aa,faPersonRifle:()=>tT,faPersonRunning:()=>Tf,faPersonShelter:()=>Ho,faPersonSkating:()=>MA,faPersonSkiing:()=>ch,faPersonSkiingNordic:()=>Jm,faPersonSnowboarding:()=>wR,faPersonSwimming:()=>Ei,faPersonThroughWindow:()=>ay,faPersonWalking:()=>fg,faPersonWalkingArrowLoopLeft:()=>ZU,faPersonWalkingArrowRight:()=>Wj,faPersonWalkingDashedLineArrowRight:()=>Rf,faPersonWalkingLuggage:()=>wU,faPersonWalkingWithCane:()=>mR,faPesetaSign:()=>ye,faPesoSign:()=>WF,faPhone:()=>F8,faPhoneAlt:()=>r6,faPhoneFlip:()=>Mp,faPhoneSlash:()=>it,faPhoneSquare:()=>yT,faPhoneSquareAlt:()=>De,faPhoneVolume:()=>WC,faPhotoFilm:()=>tD,faPhotoVideo:()=>ok,faPieChart:()=>Lu,faPiggyBank:()=>px,faPills:()=>g1,faPingPongPaddleBall:()=>qz,faPizzaSlice:()=>G0,faPlaceOfWorship:()=>Vp,faPlane:()=>XI,faPlaneArrival:()=>DS,faPlaneCircleCheck:()=>gm,faPlaneCircleExclamation:()=>gc,faPlaneCircleXmark:()=>w6,faPlaneDeparture:()=>vC,faPlaneLock:()=>HC,faPlaneSlash:()=>ym,faPlaneUp:()=>l4,faPlantWilt:()=>G2,faPlateWheat:()=>yg,faPlay:()=>Yz,faPlayCircle:()=>xa,faPlug:()=>M3,faPlugCircleBolt:()=>Xg,faPlugCircleCheck:()=>a0,faPlugCircleExclamation:()=>HU,faPlugCircleMinus:()=>sD,faPlugCirclePlus:()=>ed,faPlugCircleXmark:()=>Fe,faPlus:()=>YR,faPlusCircle:()=>I9,faPlusMinus:()=>jV,faPlusSquare:()=>ah,faPodcast:()=>z,faPoll:()=>y7,faPollH:()=>hC,faPoo:()=>PC,faPooBolt:()=>Y4,faPooStorm:()=>D_,faPoop:()=>jd,faPortrait:()=>dN,faPoundSign:()=>$_,faPowerOff:()=>zS,faPray:()=>Uk,faPrayingHands:()=>N8,faPrescription:()=>gS,faPrescriptionBottle:()=>gu,faPrescriptionBottleAlt:()=>jE,faPrescriptionBottleMedical:()=>sx,faPrint:()=>MV,faProcedures:()=>k3,faProjectDiagram:()=>OF,faPumpMedical:()=>bi,faPumpSoap:()=>cD,faPuzzlePiece:()=>iu,faQ:()=>N5,faQrcode:()=>ED,faQuestion:()=>Vg,faQuestionCircle:()=>E8,faQuidditch:()=>fn,faQuidditchBroomBall:()=>$r,faQuoteLeft:()=>JR,faQuoteLeftAlt:()=>XF,faQuoteRight:()=>zp,faQuoteRightAlt:()=>Jh,faQuran:()=>QU,faR:()=>lC,faRadiation:()=>j0,faRadiationAlt:()=>IF,faRadio:()=>Pk,faRainbow:()=>es,faRandom:()=>$c,faRankingStar:()=>pF,faReceipt:()=>sF,faRecordVinyl:()=>Ui,faRectangleAd:()=>um,faRectangleList:()=>lo,faRectangleTimes:()=>mN,faRectangleXmark:()=>D9,faRecycle:()=>mC,faRedo:()=>Np,faRedoAlt:()=>XS,faRefresh:()=>ZA,faRegistered:()=>RA,faRemove:()=>jF,faRemoveFormat:()=>GA,faReorder:()=>Dz,faRepeat:()=>xM,faReply:()=>Xc,faReplyAll:()=>J3,faRepublican:()=>i0,faRestroom:()=>vS,faRetweet:()=>oD,faRibbon:()=>Zm,faRightFromBracket:()=>je,faRightLeft:()=>vN,faRightLong:()=>gx,faRightToBracket:()=>$b,faRing:()=>Se,faRmb:()=>B6,faRoad:()=>ao,faRoadBarrier:()=>R5,faRoadBridge:()=>V0,faRoadCircleCheck:()=>gM,faRoadCircleExclamation:()=>wj,faRoadCircleXmark:()=>kM,faRoadLock:()=>l8,faRoadSpikes:()=>Cu,faRobot:()=>Hk,faRocket:()=>ak,faRodAsclepius:()=>xf,faRodSnake:()=>E3,faRotate:()=>yI,faRotateBack:()=>gA,faRotateBackward:()=>Cg,faRotateForward:()=>Lx,faRotateLeft:()=>y2,faRotateRight:()=>f0,faRouble:()=>F6,faRoute:()=>Om,faRss:()=>O9,faRssSquare:()=>Rb,faRub:()=>qS,faRuble:()=>_T,faRubleSign:()=>z6,faRug:()=>R9,faRuler:()=>Sc,faRulerCombined:()=>MT,faRulerHorizontal:()=>ih,faRulerVertical:()=>lV,faRunning:()=>MM,faRupee:()=>T1,faRupeeSign:()=>Gd,faRupiahSign:()=>Zz,faS:()=>XE,faSackDollar:()=>S5,faSackXmark:()=>Ya,faSadCry:()=>Li,faSadTear:()=>bV,faSailboat:()=>vg,faSatellite:()=>OE,faSatelliteDish:()=>xp,faSave:()=>l6,faScaleBalanced:()=>rN,faScaleUnbalanced:()=>L1,faScaleUnbalancedFlip:()=>Pg,faSchool:()=>W4,faSchoolCircleCheck:()=>_1,faSchoolCircleExclamation:()=>oi,faSchoolCircleXmark:()=>sh,faSchoolFlag:()=>mk,faSchoolLock:()=>dF,faScissors:()=>Qu,faScrewdriver:()=>fA,faScrewdriverWrench:()=>B2,faScroll:()=>em,faScrollTorah:()=>rl,faSdCard:()=>HD,faSearch:()=>Kz,faSearchDollar:()=>IV,faSearchLocation:()=>ci,faSearchMinus:()=>oV,faSearchPlus:()=>$j,faSection:()=>hl,faSeedling:()=>UA,faServer:()=>qb,faShapes:()=>j5,faShare:()=>kI,faShareAlt:()=>fM,faShareAltSquare:()=>tw,faShareFromSquare:()=>CI,faShareNodes:()=>S3,faShareSquare:()=>NF,faSheetPlastic:()=>Wi,faShekel:()=>eD,faShekelSign:()=>ET,faSheqel:()=>sk,faSheqelSign:()=>rk,faShield:()=>RD,faShieldAlt:()=>Dd,faShieldBlank:()=>DD,faShieldCat:()=>fT,faShieldDog:()=>cC,faShieldHalved:()=>M2,faShieldHeart:()=>xU,faShieldVirus:()=>TC,faShip:()=>xx,faShippingFast:()=>MF,faShirt:()=>Fp,faShoePrints:()=>VU,faShop:()=>bo,faShopLock:()=>Qb,faShopSlash:()=>V5,faShoppingBag:()=>pM,faShoppingBasket:()=>R8,faShoppingCart:()=>L6,faShower:()=>rj,faShrimp:()=>AF,faShuffle:()=>og,faShuttleSpace:()=>q5,faShuttleVan:()=>Vl,faSign:()=>hk,faSignHanging:()=>rD,faSignIn:()=>cg,faSignInAlt:()=>e7,faSignLanguage:()=>Fj,faSignOut:()=>l2,faSignOutAlt:()=>rt,faSignal:()=>Pu,faSignal5:()=>Ip,faSignalPerfect:()=>$n,faSignature:()=>v7,faSigning:()=>xN,faSignsPost:()=>nC,faSimCard:()=>Qk,faSink:()=>m1,faSitemap:()=>u2,faSkating:()=>aE,faSkiing:()=>b1,faSkiingNordic:()=>Hr,faSkull:()=>bh,faSkullCrossbones:()=>uF,faSlash:()=>lg,faSleigh:()=>IS,faSliders:()=>P6,faSlidersH:()=>BS,faSmile:()=>Fk,faSmileBeam:()=>mt,faSmileWink:()=>$7,faSmog:()=>Rg,faSmoking:()=>vA,faSmokingBan:()=>P8,faSms:()=>lj,faSnowboarding:()=>BR,faSnowflake:()=>QA,faSnowman:()=>wb,faSnowplow:()=>Ia,faSoap:()=>Rt,faSoccerBall:()=>Ml,faSocks:()=>qa,faSolarPanel:()=>Cp,faSort:()=>zd,faSortAlphaAsc:()=>GE,faSortAlphaDesc:()=>pn,faSortAlphaDown:()=>lv,faSortAlphaDownAlt:()=>jl,faSortAlphaUp:()=>If,faSortAlphaUpAlt:()=>QD,faSortAmountAsc:()=>a8,faSortAmountDesc:()=>Vx,faSortAmountDown:()=>Ng,faSortAmountDownAlt:()=>Gx,faSortAmountUp:()=>KS,faSortAmountUpAlt:()=>wD,faSortAsc:()=>zm,faSortDesc:()=>kt,faSortDown:()=>Qe,faSortNumericAsc:()=>BE,faSortNumericDesc:()=>_t,faSortNumericDown:()=>zE,faSortNumericDownAlt:()=>Ht,faSortNumericUp:()=>d6,faSortNumericUpAlt:()=>XC,faSortUp:()=>yC,faSpa:()=>oE,faSpaceShuttle:()=>DM,faSpaghettiMonsterFlying:()=>qi,faSpellCheck:()=>tn,faSpider:()=>dr,faSpinner:()=>Wk,faSplotch:()=>_D,faSpoon:()=>ir,faSprayCan:()=>Ee,faSprayCanSparkles:()=>ng,faSprout:()=>mE,faSquare:()=>ba,faSquareArrowUpRight:()=>sp,faSquareBinary:()=>w7,faSquareCaretDown:()=>va,faSquareCaretLeft:()=>Wh,faSquareCaretRight:()=>qu,faSquareCaretUp:()=>lA,faSquareCheck:()=>f1,faSquareEnvelope:()=>WI,faSquareFull:()=>pV,faSquareH:()=>v,faSquareMinus:()=>so,faSquareNfi:()=>Y_,faSquareParking:()=>Wd,faSquarePen:()=>hI,faSquarePersonConfined:()=>Tg,faSquarePhone:()=>HR,faSquarePhoneFlip:()=>Ce,faSquarePlus:()=>O7,faSquarePollHorizontal:()=>C8,faSquarePollVertical:()=>S7,faSquareRootAlt:()=>K2,faSquareRootVariable:()=>Z2,faSquareRss:()=>I_,faSquareShareNodes:()=>ew,faSquareUpRight:()=>Dh,faSquareVirus:()=>LS,faSquareXmark:()=>PI,faStaffAesculapius:()=>T3,faStaffSnake:()=>Gh,faStairs:()=>I5,faStamp:()=>L5,faStapler:()=>XN,faStar:()=>H0,faStarAndCrescent:()=>Wo,faStarHalf:()=>jz,faStarHalfAlt:()=>y1,faStarHalfStroke:()=>S1,faStarOfDavid:()=>Nu,faStarOfLife:()=>pt,faStepBackward:()=>ul,faStepForward:()=>ri,faSterlingSign:()=>Df,faStethoscope:()=>te,faStickyNote:()=>_V,faStop:()=>uT,faStopCircle:()=>al,faStopwatch:()=>B0,faStopwatch20:()=>fV,faStore:()=>ck,faStoreAlt:()=>j2,faStoreAltSlash:()=>Kb,faStoreSlash:()=>h7,faStream:()=>Nz,faStreetView:()=>pv,faStrikethrough:()=>Kr,faStroopwafel:()=>A7,faSubscript:()=>DA,faSubtract:()=>Xo,faSubway:()=>Ru,faSuitcase:()=>nE,faSuitcaseMedical:()=>AS,faSuitcaseRolling:()=>nF,faSun:()=>QS,faSunPlantWilt:()=>fu,faSuperscript:()=>Oe,faSurprise:()=>Cm,faSwatchbook:()=>Ad,faSwimmer:()=>ht,faSwimmingPool:()=>bN,faSynagogue:()=>tg,faSync:()=>ap,faSyncAlt:()=>Gk,faSyringe:()=>dV,faT:()=>LU,faTShirt:()=>t0,faTable:()=>pu,faTableCells:()=>BC,faTableCellsColumnLock:()=>ll,faTableCellsLarge:()=>Q8,faTableCellsRowLock:()=>Xz,faTableCellsRowUnlock:()=>CV,faTableColumns:()=>B7,faTableList:()=>oN,faTableTennis:()=>Qz,faTableTennisPaddleBall:()=>T9,faTablet:()=>nD,faTabletAlt:()=>Us,faTabletAndroid:()=>pk,faTabletButton:()=>rg,faTabletScreenButton:()=>Ji,faTablets:()=>CA,faTachographDigital:()=>oc,faTachometer:()=>sj,faTachometerAlt:()=>m0,faTachometerAltAverage:()=>yf,faTachometerAltFast:()=>W6,faTachometerAverage:()=>p6,faTachometerFast:()=>aN,faTag:()=>MS,faTags:()=>F2,faTanakh:()=>GC,faTape:()=>cs,faTarp:()=>p8,faTarpDroplet:()=>lx,faTasks:()=>CF,faTasksAlt:()=>CC,faTaxi:()=>N2,faTeeth:()=>tk,faTeethOpen:()=>o6,faTeletype:()=>_x,faTelevision:()=>vF,faTemperature0:()=>e8,faTemperature1:()=>_8,faTemperature2:()=>O_,faTemperature3:()=>dx,faTemperature4:()=>J,faTemperatureArrowDown:()=>cm,faTemperatureArrowUp:()=>B,faTemperatureDown:()=>uh,faTemperatureEmpty:()=>Ig,faTemperatureFull:()=>j,faTemperatureHalf:()=>Sf,faTemperatureHigh:()=>Z0,faTemperatureLow:()=>AU,faTemperatureQuarter:()=>Ap,faTemperatureThreeQuarters:()=>q2,faTemperatureUp:()=>U,faTenge:()=>Up,faTengeSign:()=>O1,faTent:()=>RS,faTentArrowDownToLine:()=>yA,faTentArrowLeftRight:()=>Fl,faTentArrowTurnLeft:()=>cU,faTentArrowsDown:()=>SV,faTents:()=>uU,faTerminal:()=>O8,faTextHeight:()=>K,faTextSlash:()=>J7,faTextWidth:()=>H8,faTh:()=>zC,faThLarge:()=>CS,faThList:()=>oj,faTheaterMasks:()=>KN,faThermometer:()=>Rk,faThermometer0:()=>im,faThermometer1:()=>bm,faThermometer2:()=>I3,faThermometer3:()=>NS,faThermometer4:()=>le,faThermometerEmpty:()=>PA,faThermometerFull:()=>ce,faThermometerHalf:()=>P3,faThermometerQuarter:()=>Qg,faThermometerThreeQuarters:()=>_v,faThumbTack:()=>kk,faThumbTackSlash:()=>Y5,faThumbsDown:()=>g4,faThumbsUp:()=>eV,faThumbtack:()=>pD,faThumbtackSlash:()=>ug,faThunderstorm:()=>CE,faTicket:()=>Wp,faTicketAlt:()=>MD,faTicketSimple:()=>yD,faTimeline:()=>Ka,faTimes:()=>VF,faTimesCircle:()=>qj,faTimesRectangle:()=>Sj,faTimesSquare:()=>SU,faTint:()=>di,faTintSlash:()=>i4,faTired:()=>y9,faToggleOff:()=>Wc,faToggleOn:()=>z3,faToilet:()=>qp,faToiletPaper:()=>Ac,faToiletPaperSlash:()=>xm,faToiletPortable:()=>hT,faToiletsPortable:()=>Ju,faToolbox:()=>_4,faTools:()=>Xa,faTooth:()=>Cf,faTorah:()=>Rn,faToriiGate:()=>qM,faTornado:()=>qU,faTowerBroadcast:()=>Iv,faTowerCell:()=>fF,faTowerObservation:()=>pi,faTractor:()=>ZF,faTrademark:()=>gC,faTrafficLight:()=>Ok,faTrailer:()=>kU,faTrain:()=>ZM,faTrainSubway:()=>Yl,faTrainTram:()=>uV,faTram:()=>h0,faTransgender:()=>CD,faTransgenderAlt:()=>Jk,faTrash:()=>IC,faTrashAlt:()=>ee,faTrashArrowUp:()=>$R,faTrashCan:()=>V,faTrashCanArrowUp:()=>cI,faTrashRestore:()=>KF,faTrashRestoreAlt:()=>$z,faTree:()=>Pb,faTreeCity:()=>xR,faTriangleCircleSquare:()=>yM,faTriangleExclamation:()=>FI,faTrophy:()=>mD,faTrowel:()=>BV,faTrowelBricks:()=>rr,faTruck:()=>VE,faTruckArrowRight:()=>mj,faTruckDroplet:()=>C,faTruckFast:()=>zR,faTruckField:()=>a6,faTruckFieldUn:()=>qC,faTruckFront:()=>n6,faTruckLoading:()=>Sn,faTruckMedical:()=>O5,faTruckMonster:()=>$e,faTruckMoving:()=>fD,faTruckPickup:()=>Px,faTruckPlane:()=>$t,faTruckRampBox:()=>yl,faTry:()=>EV,faTshirt:()=>m6,faTty:()=>kS,faTurkishLira:()=>GN,faTurkishLiraSign:()=>KI,faTurnDown:()=>EN,faTurnUp:()=>mue,faTv:()=>pI,faTvAlt:()=>PR,faU:()=>td,faUmbrella:()=>wV,faUmbrellaBeach:()=>vM,faUnderline:()=>V_,faUndo:()=>HE,faUndoAlt:()=>_A,faUniversalAccess:()=>ip,faUniversity:()=>YN,faUnlink:()=>KD,faUnlock:()=>zM,faUnlockAlt:()=>c2,faUnlockKeyhole:()=>wh,faUnsorted:()=>hp,faUpDown:()=>OI,faUpDownLeftRight:()=>I2,faUpLong:()=>zu,faUpRightAndDownLeftFromCenter:()=>GD,faUpRightFromSquare:()=>Z8,faUpload:()=>m4,faUsd:()=>TV,faUser:()=>eg,faUserAlt:()=>cV,faUserAltSlash:()=>ME,faUserAstronaut:()=>x8,faUserCheck:()=>Kn,faUserCircle:()=>xF,faUserClock:()=>NN,faUserCog:()=>h6,faUserDoctor:()=>QC,faUserEdit:()=>_7,faUserFriends:()=>r7,faUserGear:()=>j8,faUserGraduate:()=>EF,faUserGroup:()=>w3,faUserInjured:()=>xV,faUserLarge:()=>FN,faUserLargeSlash:()=>rS,faUserLock:()=>vT,faUserMd:()=>JC,faUserMinus:()=>d7,faUserNinja:()=>sr,faUserNurse:()=>hV,faUserPen:()=>j3,faUserPlus:()=>uj,faUserSecret:()=>_6,faUserShield:()=>NR,faUserSlash:()=>k2,faUserTag:()=>Cj,faUserTie:()=>Q3,faUserTimes:()=>ne,faUserXmark:()=>ie,faUsers:()=>mM,faUsersBetweenLines:()=>Gm,faUsersCog:()=>PV,faUsersGear:()=>HN,faUsersLine:()=>YF,faUsersRays:()=>S8,faUsersRectangle:()=>bs,faUsersSlash:()=>r2,faUsersViewfinder:()=>X8,faUtensilSpoon:()=>hn,faUtensils:()=>ZS,faV:()=>F0,faVanShuttle:()=>xi,faVault:()=>pT,faVcard:()=>t8,faVectorSquare:()=>tC,faVenus:()=>PM,faVenusDouble:()=>Ax,faVenusMars:()=>Xb,faVest:()=>Z7,faVestPatches:()=>ov,faVial:()=>O3,faVialCircleCheck:()=>WD,faVialVirus:()=>Po,faVials:()=>mv,faVideo:()=>iw,faVideoCamera:()=>sw,faVideoSlash:()=>Lk,faVihara:()=>c6,faVirus:()=>am,faVirusCovid:()=>R2,faVirusCovidSlash:()=>LM,faVirusSlash:()=>Ah,faViruses:()=>SA,faVoicemail:()=>DU,faVolcano:()=>Eg,faVolleyball:()=>nt,faVolleyballBall:()=>at,faVolumeControlPhone:()=>xS,faVolumeDown:()=>h2,faVolumeHigh:()=>Hf,faVolumeLow:()=>Fh,faVolumeMute:()=>VR,faVolumeOff:()=>E6,faVolumeTimes:()=>RF,faVolumeUp:()=>Sp,faVolumeXmark:()=>AI,faVoteYea:()=>vR,faVrCardboard:()=>Dk,faW:()=>bt,faWalkieTalkie:()=>tF,faWalking:()=>pg,faWallet:()=>y8,faWandMagic:()=>TI,faWandMagicSparkles:()=>D3,faWandSparkles:()=>mx,faWarehouse:()=>Zk,faWarning:()=>Lj,faWater:()=>PS,faWaterLadder:()=>N9,faWaveSquare:()=>Ae,faWebAwesome:()=>w8,faWeight:()=>Lf,faWeightHanging:()=>s7,faWeightScale:()=>dg,faWheatAlt:()=>f2,faWheatAwn:()=>rh,faWheatAwnCircleExclamation:()=>Nb,faWheelchair:()=>tu,faWheelchairAlt:()=>Vj,faWheelchairMove:()=>GI,faWhiskeyGlass:()=>dm,faWifi:()=>mg,faWifi3:()=>U3,faWifiStrong:()=>jM,faWind:()=>bF,faWindowClose:()=>yj,faWindowMaximize:()=>Mn,faWindowMinimize:()=>sV,faWindowRestore:()=>P7,faWineBottle:()=>Oz,faWineGlass:()=>Iu,faWineGlassAlt:()=>mU,faWineGlassEmpty:()=>kD,faWon:()=>kd,faWonSign:()=>Tl,faWorm:()=>Qc,faWrench:()=>i6,faX:()=>LV,faXRay:()=>C1,faXmark:()=>dy,faXmarkCircle:()=>LN,faXmarkSquare:()=>yU,faXmarksLines:()=>RM,faY:()=>yF,faYen:()=>Bx,faYenSign:()=>J2,faYinYang:()=>gU,faZ:()=>Mu,faZap:()=>Rv,fas:()=>P$e,prefix:()=>h});/*!
 * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */const h="fas",x={prefix:"fas",iconName:"0",icon:[320,512,[],"30","M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z"]},A={prefix:"fas",iconName:"1",icon:[256,512,[],"31","M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8 96 416l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352z"]},S={prefix:"fas",iconName:"2",icon:[320,512,[],"32","M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416 288 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z"]},E={prefix:"fas",iconName:"3",icon:[320,512,[],"33","M0 64C0 46.3 14.3 32 32 32l240 0c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208l21.7 0c75.1 0 136 60.9 136 136s-60.9 136-136 136l-78.6 0C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5l78.6 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L80 272c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96 32 96C14.3 96 0 81.7 0 64z"]},b={prefix:"fas",iconName:"4",icon:[384,512,[],"34","M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368l224 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L82.4 304 189 77.6z"]},M={prefix:"fas",iconName:"5",icon:[320,512,[],"35","M32.5 58.3C35.3 43.1 48.5 32 64 32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L90.7 96 70.3 208 184 208c75.1 0 136 60.9 136 136s-60.9 136-136 136l-83.5 0c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1l83.5 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z"]},T={prefix:"fas",iconName:"6",icon:[320,512,[],"36","M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3l0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM256 320A96 96 0 1 1 64 320a96 96 0 1 1 192 0z"]},O={prefix:"fas",iconName:"7",icon:[320,512,[],"37","M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z"]},R={prefix:"fas",iconName:"8",icon:[320,512,[],"38","M304 160c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l15.9 0c0 0 .1 0 .1 0l32 0c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0l-32 0c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z"]},I={prefix:"fas",iconName:"9",icon:[320,512,[],"39","M64 192a96 96 0 1 0 192 0A96 96 0 1 0 64 192zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z"]},N={prefix:"fas",iconName:"fill-drip",icon:[576,512,[],"f576","M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6l319.2 0 42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z"]},w={prefix:"fas",iconName:"arrows-to-circle",icon:[640,512,[],"e4bd","M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7 160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM114.7 352L96 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0s0 0 0 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160l18.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1s0 0 0 0l0-96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3l0 18.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96s0 0 0 0l0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4l.1 0s0 0 0 0l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0z"]},D={prefix:"fas",iconName:"circle-chevron-right",icon:[512,512,["chevron-circle-right"],"f138","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z"]},k=D,Y={prefix:"fas",iconName:"at",icon:[512,512,[61946],"40","M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256l0 32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32l0 80 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},V={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"]},ee=V,K={prefix:"fas",iconName:"text-height",icon:[576,512,[],"f034","M64 128l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L160 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM502.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 192-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-192 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z"]},ie={prefix:"fas",iconName:"user-xmark",icon:[640,512,["user-times"],"f235","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},ne=ie,te={prefix:"fas",iconName:"stethoscope",icon:[576,512,[129658],"f0f1","M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1 96 192c0 53 43 96 96 96s96-43 96-96l0-120.9-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1L352 192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112l0-70.7c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 70.7c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192L32 71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},W={prefix:"fas",iconName:"message",icon:[512,512,["comment-alt"],"f27a","M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l96 0 0 80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416 448 416c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0z"]},Q=W,re={prefix:"fas",iconName:"info",icon:[192,512,[],"f129","M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-192-32 0c-17.7 0-32-14.3-32-32z"]},oe={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"]},X=oe,se={prefix:"fas",iconName:"explosion",icon:[576,512,[],"e4e9","M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448s0 0 0 0l448 0s0 0 0 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0zM288 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z"]},ue={prefix:"fas",iconName:"file-lines",icon:[384,512,[128441,128462,61686,"file-alt","file-text"],"f15c","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},he=ue,fe=ue,Ae={prefix:"fas",iconName:"wave-square",icon:[640,512,[],"f83e","M128 64c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 352 96 0 0-160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 160c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-352-96 0 0 160c0 17.7-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-160z"]},Se={prefix:"fas",iconName:"ring",icon:[512,512,[],"f70b","M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304l0-96z"]},we={prefix:"fas",iconName:"building-un",icon:[384,512,[],"e4d9","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM237.3 71.1l34.7 52L272 80c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},ke={prefix:"fas",iconName:"dice-three",icon:[448,512,[9858],"f527","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},st={prefix:"fas",iconName:"calendar-days",icon:[448,512,["calendar-alt"],"f073","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm64 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 400l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"]},Ve=st,Ke={prefix:"fas",iconName:"anchor-circle-check",icon:[640,512,[],"e4aa","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},ct={prefix:"fas",iconName:"building-circle-arrow-right",icon:[640,512,[],"e4d1","M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 184.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm96 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6L521.4 352 432 352c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z"]},nt={prefix:"fas",iconName:"volleyball",icon:[512,512,[127952,"volleyball-ball"],"f45f","M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z"]},at=nt,xt={prefix:"fas",iconName:"arrows-up-to-line",icon:[576,512,[],"e4c2","M32 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96zM9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 237.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L416 237.3 416 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z"]},Qe={prefix:"fas",iconName:"sort-down",icon:[320,512,["sort-desc"],"f0dd","M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l256 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z"]},kt=Qe,ot={prefix:"fas",iconName:"circle-minus",icon:[512,512,["minus-circle"],"f056","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM184 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},At=ot,Me={prefix:"fas",iconName:"door-open",icon:[576,512,[],"f52b","M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5L64 448l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 192 0 32 0 0-32 0-448zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128l96 0 0 352c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320c0-35.3-28.7-64-64-64l-96 0 0 64z"]},je={prefix:"fas",iconName:"right-from-bracket",icon:[512,512,["sign-out-alt"],"f2f5","M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z"]},rt=je,yt={prefix:"fas",iconName:"atom",icon:[512,512,[9883],"f5d2","M256 398.8c-11.8 5.1-23.4 9.7-34.9 13.5c16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM446 256c33 45.2 44.3 90.9 23.6 128c-20.2 36.3-62.5 49.3-115.2 43.2c-22 52.1-55.6 84.8-98.4 84.8s-76.4-32.7-98.4-84.8c-52.7 6.1-95-6.8-115.2-43.2C21.7 346.9 33 301.2 66 256c-33-45.2-44.3-90.9-23.6-128c20.2-36.3 62.5-49.3 115.2-43.2C179.6 32.7 213.2 0 256 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2c20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2c31.8 1.4 38.6-8.7 40.2-11.7c2.3-4.2 7-17.9-11.9-48.1c-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2c7.6 6.1 14.8 12.3 21.6 18.6c18.9-30.2 14.2-44 11.9-48.1c-1.6-2.9-8.4-13-40.2-11.7zM290.9 99.7C274.1 65.9 259.9 64 256 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5c11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2c-31.8-1.4-38.6 8.7-40.2 11.7c-2.3 4.2-7 17.9 11.9 48.1c6.8-6.3 14-12.5 21.6-18.6zM110.2 304.8C91.4 335 96 348.7 98.3 352.9c1.6 2.9 8.4 13 40.2 11.7c-2.8-13.1-5-26.9-6.7-41.2c-7.6-6.1-14.8-12.3-21.6-18.6zM336 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Rt={prefix:"fas",iconName:"soap",icon:[512,512,[129532],"e06e","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM416 32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96s43-96 96-96l88.4 0c-15.2-17-24.4-39.4-24.4-64L96 192c-53 0-96 43-96 96L0 416c0 53 43 96 96 96l320 0c53 0 96-43 96-96l0-128c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64l192 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-160 0z"]},Nt={prefix:"fas",iconName:"icons",icon:[512,512,["heart-music-camera-bolt"],"f86d","M500.3 7.3C507.7 13.3 512 22.4 512 32l0 144c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48l0-57L352 90.2 352 208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48l0-96c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM74.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0c10.7 0 20.7 5.3 26.6 14.2L213.3 304l26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0zM192 408a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM478.7 278.3L440.3 368l55.7 0c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L391.7 400 336 400c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L19.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z"]},Kt=Nt,si={prefix:"fas",iconName:"microphone-lines-slash",icon:[640,512,["microphone-alt-slash"],"f539","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24 0 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8l0-44.8-57.1 0-34.5-27c2.9-3.1 7-5 11.6-5l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c20.4-2.8 39.7-9.1 57.3-18.2z"]},Pi=si,gi={prefix:"fas",iconName:"bridge-circle-check",icon:[640,512,[],"e4c9","M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},bi={prefix:"fas",iconName:"pump-medical",icon:[448,512,[],"e06a","M128 32l0 96 128 0 0-32 60.1 0c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4L256 32c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512l186.4 0c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7l-149.1 0zM216 280l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},wi={prefix:"fas",iconName:"fingerprint",icon:[512,512,[],"f577","M48 256C48 141.1 141.1 48 256 48c63.1 0 119.6 28.1 157.8 72.5c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0C114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6c-15.2 5-18.7 23.7-8.3 35.9c7.1 8.3 18.8 10.8 29.4 7.9c10.6-2.9 21.8-4.4 33.4-4.4c70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3c-1.7 14.6 9.4 27.8 24.2 27.8c11.8 0 21.9-8.6 23.3-20.3c3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4C93.7 178 80 215.4 80 256l0 24.9c0 24.2-2.6 48.4-7.8 71.9C68.8 368.4 80.1 384 96.1 384c10.5 0 19.9-7 22.2-17.3c6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1c7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1c-3.8 14.3 6.7 29 21.5 29c9.5 0 17.9-6.2 20.4-15.4c10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9c-2.7 13.9 7.7 27.2 21.8 27.2c10.2 0 19-7 21-17c7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z"]},Ni={prefix:"fas",iconName:"hand-point-right",icon:[512,512,[],"f0a4","M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z"]},qt={prefix:"fas",iconName:"magnifying-glass-location",icon:[512,512,["search-location"],"f689","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},ci=qt,qe={prefix:"fas",iconName:"forward-step",icon:[320,512,["step-forward"],"f051","M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241l0-145c0-17.7 14.3-32 32-32s32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-145-11.5 9.6-192 160z"]},ri=qe,Ot={prefix:"fas",iconName:"face-smile-beam",icon:[512,512,[128522,"smile-beam"],"f5b8","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"]},mt=Ot,Ye={prefix:"fas",iconName:"flag-checkered",icon:[448,512,[127937],"f11e","M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80 0-66L0 64 0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5L64 252.6 64 318l48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15c-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6L128 173.2 128 98 64 114l0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z"]},Tt={prefix:"fas",iconName:"football",icon:[512,512,[127944,"football-ball"],"f44e","M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6C47.8 183.4 35.1 215.9 26.9 249L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z"]},Ut=Tt,oi={prefix:"fas",iconName:"school-circle-exclamation",icon:[640,512,[],"e56c","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},ji={prefix:"fas",iconName:"crop",icon:[512,512,[],"f125","M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64l0 64 178.7 0L128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-178.7 0L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z"]},ki={prefix:"fas",iconName:"angles-down",icon:[448,512,["angle-double-down"],"f103","M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z"]},os=ki,bs={prefix:"fas",iconName:"users-rectangle",icon:[640,512,[],"e594","M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l448 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L96 0zM64 96c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32L64 96zm159.8 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0C119.9 256 96 279.9 96 309.3zM461.2 336l56.1 0c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z"]},hi={prefix:"fas",iconName:"people-roof",icon:[640,512,[],"e537","M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 160a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM144 256a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm312 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM226.9 491.4L200 441.5l0 38.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-38.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3l19.5 0c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3l19.5 0c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6l19.5 0c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5l0 38.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-38.5-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5l0 54.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-54.5-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z"]},Oi={prefix:"fas",iconName:"people-line",icon:[640,512,[],"e534","M360 72a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM144 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM496 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5l0 54.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-54.5 26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5l0 38.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5 88 352c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5z"]},li={prefix:"fas",iconName:"beer-mug-empty",icon:[512,512,["beer"],"f0fc","M32 64c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 32 51.2 0c42.4 0 76.8 34.4 76.8 76.8l0 102.1c0 30.4-17.9 57.9-45.6 70.2L384 381.7l0 34.3c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64L32 64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7l0-102.1c0-7.1-5.7-12.8-12.8-12.8L384 160l0 151.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224z"]},Xs=li,ks={prefix:"fas",iconName:"diagram-predecessor",icon:[512,512,[],"e477","M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z"]},hr={prefix:"fas",iconName:"arrow-up-long",icon:[384,512,["long-arrow-up"],"f176","M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z"]},fr=hr,We={prefix:"fas",iconName:"fire-flame-simple",icon:[384,512,["burn"],"f46a","M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z"]},fi=We,zi={prefix:"fas",iconName:"person",icon:[320,512,[129485,"male"],"f183","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0z"]},ts=zi,hs={prefix:"fas",iconName:"laptop",icon:[640,512,[128187],"f109","M128 32C92.7 32 64 60.7 64 96l0 256 64 0 0-256 384 0 0 256 64 0 0-256c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2L19.2 384z"]},Ge={prefix:"fas",iconName:"file-csv",icon:[512,512,[],"f6dd","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM200 352l16 0c22.1 0 40 17.9 40 40l0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8c0-4.4-3.6-8-8-8l-16 0c-4.4 0-8 3.6-8 8l0 80c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-8c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8c0 22.1-17.9 40-40 40l-16 0c-22.1 0-40-17.9-40-40l0-80c0-22.1 17.9-40 40-40zm133.1 0l34.9 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1c0 5.2 3 9.9 7.8 12l37.4 16.6c16.3 7.2 26.8 23.4 26.8 41.2c0 24.9-20.2 45.1-45.1 45.1L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l42.9 0c7.2 0 13.1-5.9 13.1-13.1c0-5.2-3-9.9-7.8-12l-37.4-16.6c-16.3-7.2-26.8-23.4-26.8-41.2c0-24.9 20.2-45.1 45.1-45.1zm98.9 0c8.8 0 16 7.2 16 16l0 31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66l0-31.6c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6l0-31.6c0-8.8 7.2-16 16-16z"]},Zt={prefix:"fas",iconName:"menorah",icon:[640,512,[],"f676","M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64L96 384c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32z"]},$t={prefix:"fas",iconName:"truck-plane",icon:[640,512,[],"e58f","M200 0c-30.6 0-56 54.7-56 86.1l0 106.5L7.8 274.3C2.9 277.2 0 282.4 0 288l0 64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37 0 81.2-50 40c-3.8 3-6 7.6-6 12.5l0 32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15l0-32.6c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1 0-3.5 0-82.5L256 184l0-1.1s0 0 0 0l0-96.9C256 54.7 231.5 0 200 0zm88 176l0 224c0 20.9 13.4 38.7 32 45.3l0 42.7c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-40 160 0 0 40c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-42.7c18.6-6.6 32-24.4 32-45.3l0-224c0-26.5-21.5-48-48-48l-256 0c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7l151.4 0c9.2 0 17.2 6 20.5 14.7L576 304l-224 0 15.8-49.3zM568 352a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM336 376a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},Ui={prefix:"fas",iconName:"record-vinyl",icon:[512,512,[],"f8d9","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 224a128 128 0 1 0 0-256 128 128 0 1 0 0 256zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},ls={prefix:"fas",iconName:"face-grin-stars",icon:[512,512,[129321,"grin-stars"],"f587","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm407.4 75.5c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z"]},ns=ls,Ss={prefix:"fas",iconName:"bong",icon:[448,512,[],"f55c","M160 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7l221.8 0c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8L224 64l-64 0 0 144.5zM288 64l0 144.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L366.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C374 314.1 384 347.9 384 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5L76.1 512c-17.3 0-34.2-7.1-43.8-21.5C11.9 460.1 0 423.4 0 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14L96 64C78.3 64 64 49.7 64 32S78.3 0 96 0l16 0L272 0l16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z"]},qi={prefix:"fas",iconName:"spaghetti-monster-flying",icon:[640,512,["pastafarianism"],"f67b","M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1c0 0 0 0 0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},pr=qi,Js={prefix:"fas",iconName:"arrow-down-up-across-line",icon:[576,512,[],"e4af","M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7 192 288l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-114.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3 384 224l-192 0-64 0-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 114.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192l64 0 0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128zM448 320l-64 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128z"]},ir={prefix:"fas",iconName:"spoon",icon:[512,512,[129348,61873,"utensil-spoon"],"f2e5","M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z"]},hn=ir,ra={prefix:"fas",iconName:"jar-wheat",icon:[320,512,[],"e517","M32 32C32 14.3 46.3 0 64 0L256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64l192 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 160zm112 0l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224l21.8 0 32 0 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320l21.8 0 32 0 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z"]},ka={prefix:"fas",iconName:"envelopes-bulk",icon:[640,512,["mail-bulk"],"f674","M128 0C110.3 0 96 14.3 96 32l0 192 96 0 0-32c0-35.3 28.7-64 64-64l224 0 0-96c0-17.7-14.3-32-32-32L128 0zM256 160c-17.7 0-32 14.3-32 32l0 32 96 0c35.3 0 64 28.7 64 64l0 128 192 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-320 0zm240 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 256c-17.7 0-32 14.3-32 32l0 13L187.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L352 301l0-13c0-17.7-14.3-32-32-32L64 256zm288 84.8L216 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L32 340.8 32 480c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-139.2z"]},Hn=ka,to={prefix:"fas",iconName:"file-circle-exclamation",icon:[576,512,[],"e4eb","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"]},Gr={prefix:"fas",iconName:"circle-h",icon:[512,512,[9405,"hospital-symbol"],"f47e","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM368 152l0 104 0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80-128 0 0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80 128 0 0-80c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},Yn=Gr,To={prefix:"fas",iconName:"pager",icon:[512,512,[128223],"f815","M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z"]},Pn={prefix:"fas",iconName:"address-book",icon:[512,512,[62138,"contact-book"],"f2b9","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z"]},On=Pn,Kr={prefix:"fas",iconName:"strikethrough",icon:[512,512,[],"f0cc","M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-209.9 0-.4-.1-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3c0 0 0 0 0 0s0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6c0 0 0 0 0 0l.2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1l-75.7 0c7 5.6 11.4 11.2 13.9 17.2z"]},dn={prefix:"fas",iconName:"k",icon:[320,512,[107],"4b","M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 328 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z"]},mo={prefix:"fas",iconName:"landmark-flag",icon:[512,512,[],"e51c","M272 0l80 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-80 0 0 32 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 192c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0 0-112c0-8.8 7.2-16 16-16l16 0zM64 224l64 0 0 192 40 0 0-192 64 0 0 192 48 0 0-192 64 0 0 192 40 0 0-192 64 0 0 196.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 224z"]},Xn={prefix:"fas",iconName:"pencil",icon:[512,512,[9999,61504,"pencil-alt"],"f303","M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1 0 32c0 8.8 7.2 16 16 16l32 0zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},na=Xn,xl={prefix:"fas",iconName:"backward",icon:[512,512,[9194],"f04a","M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-320c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3l0 41.7 0 41.7L459.5 440.6zM256 352l0-96 0-128 0-32c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-64z"]},Lo={prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]},Io={prefix:"fas",iconName:"comments",icon:[640,512,[128490,61670],"f086","M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2s0 0 0 0s0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.2-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9c0 0 0 0 0 0s0 0 0 0l-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z"]},bl={prefix:"fas",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Zn=bl,Sl={prefix:"fas",iconName:"code-pull-request",icon:[512,512,[],"e13c","M305.8 2.1C314.4 5.9 320 14.5 320 24l0 40 16 0c70.7 0 128 57.3 128 128l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L400 192c0-35.3-28.7-64-64-64l-16 0 0 40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80A24 24 0 1 0 56 80a24 24 0 1 0 48 0zm8 73.3l0 205.3c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm328 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},Vi={prefix:"fas",iconName:"clipboard-list",icon:[384,512,[],"f46d","M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM72 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM72 368a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm88 0c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z"]},yl={prefix:"fas",iconName:"truck-ramp-box",icon:[640,512,["truck-loading"],"f4de","M640 0l0 400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8 352 64c0-35.3 28.7-64 64-64L640 0zM576 400a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z"]},Sn=yl,Kn={prefix:"fas",iconName:"user-check",icon:[640,512,[],"f4fc","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},Po={prefix:"fas",iconName:"vial-virus",icon:[512,512,[],"e597","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l0 288c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5L224 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0L96 32 32 32zM96 192l0-96 64 0 0 96-64 0zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-88a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm40 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},Wi={prefix:"fas",iconName:"sheet-plastic",icon:[384,512,[],"e571","M0 448c0 35.3 28.7 64 64 64l160 0 0-128c0-17.7 14.3-32 32-32l128 0 0-288c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384l-128 0 0 128L384 384z"]},yn={prefix:"fas",iconName:"blog",icon:[512,512,[],"f781","M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144L0 368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144l-16 0 0 96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48l0-224z"]},sr={prefix:"fas",iconName:"user-ninja",icon:[448,512,[129399],"f504","M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 399.5 56.4 330 132.8 309.9c6-1.6 12.2 .9 15.9 5.8l62.5 83.3c6.4 8.5 19.2 8.5 25.6 0l62.5-83.3c3.7-4.9 9.9-7.4 15.9-5.8C391.6 330 448 399.5 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96z"]},qn={prefix:"fas",iconName:"person-arrow-up-from-line",icon:[640,512,[],"e539","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352l0-96 16 0 0 96-16 0zm-64 0l-88 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l120 0 80 0 376 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-344 0 0-191.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z"]},rl={prefix:"fas",iconName:"scroll-torah",icon:[640,512,["torah"],"f6a0","M96 480L96 32C96 14.3 74.5 0 48 0S0 14.3 0 32L0 480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32L128 32l0 448 384 0 0-448zM592 0c-26.5 0-48 14.3-48 32l0 448c0 17.7 21.5 32 48 32s48-14.3 48-32l0-448c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3l56.7 0 31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180l56.7 0c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3L369 332l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332l-56.7 0c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332l-42.4 0L320 368.4zM254.5 256l30.3 52 70.4 0 30.3-52-30.3-52-70.4 0-30.3 52zm144.9 23.8L383 308l32.8 0-16.4-28.2zM415.8 204L383 204l16.4 28.2L415.8 204zM320 143.6L298.8 180l42.4 0L320 143.6zM224.2 204l16.4 28.2L257 204l-32.8 0zM257 308l-16.4-28.2L224.2 308l32.8 0z"]},Rn=rl,Or={prefix:"fas",iconName:"broom-ball",icon:[576,512,["quidditch","quidditch-broom-ball"],"f458","M566.6 9.4c12.5 12.5 12.5 32.8 0 45.3l-192 192 34.7 34.7c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6l-29.1 0L256 211.7l0-29.1c0-12.5 10.1-22.6 22.6-22.6c6 0 11.8 2.4 16 6.6l34.7 34.7 192-192c12.5-12.5 32.8-12.5 45.3 0zm-344 225.5L341.1 353.4c3.7 42.7-11.7 85.2-42.3 115.8C271.4 496.6 234.2 512 195.5 512L22.1 512C9.9 512 0 502.1 0 489.9c0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2c0-31.5 12.5-61.7 34.8-84l8-8c30.6-30.6 73.1-45.9 115.8-42.3zM464 352a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},fn=Or,$r=Or,Wc={prefix:"fas",iconName:"toggle-off",icon:[576,512,[],"f204","M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"]},Qn={prefix:"fas",iconName:"box-archive",icon:[512,512,["archive"],"f187","M32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64C0 46.3 14.3 32 32 32zm0 128l448 0 0 256c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-256zm128 80c0 8.8 7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0c-8.8 0-16 7.2-16 16z"]},Dn=Qn,Xu={prefix:"fas",iconName:"person-drowning",icon:[576,512,[],"e545","M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3L192 64zM320 192a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z"]},Ie={prefix:"fas",iconName:"arrow-down-9-1",icon:[576,512,["sort-numeric-desc","sort-numeric-down-alt"],"f886","M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 301.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM450.7 294c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l48 0 48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM418.3 91a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 91zM405.1 203.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z"]},_t=Ie,Ht=Ie,ti={prefix:"fas",iconName:"face-grin-tongue-squint",icon:[512,512,[128541,"grin-tongue-squint"],"f58a","M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448l0-47.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 46.9c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},Hi=ti,Ee={prefix:"fas",iconName:"spray-can",icon:[512,512,[],"f5bd","M128 0l64 0c17.7 0 32 14.3 32 32l0 96L96 128l0-96c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 256zm240 80A80 80 0 1 0 80 336a80 80 0 1 0 160 0zM256 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM448 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},$e={prefix:"fas",iconName:"truck-monster",icon:[640,512,[],"f63b","M288 64l0 64 128 0L368 64l-80 0zM419.2 25.6L496 128l80 0c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64l-64 0c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l160 0 0-80c0-26.5 21.5-48 48-48l96 0c20.1 0 39.1 9.5 51.2 25.6zM152 256l16 0c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8l0 16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512l-16 0c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392l0-16c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6l16 0c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8l0 16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512l-16 0c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392l0-16c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},bt={prefix:"fas",iconName:"w",icon:[576,512,[119],"57","M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z"]},Wt={prefix:"fas",iconName:"earth-africa",icon:[512,512,[127757,"globe-africa"],"f57c","M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9l0 41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.4-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32l0 28c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16l0 48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4l0-12.1c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},vi=Wt,es={prefix:"fas",iconName:"rainbow",icon:[640,512,[127752],"f75b","M320 96C178.6 96 64 210.6 64 352l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96C0 175.3 143.3 32 320 32s320 143.3 320 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-70.7 57.3-128 128-128s128 57.3 128 128l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-35.3-28.7-64-64-64zM160 352l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-123.7 100.3-224 224-224s224 100.3 224 224l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-88.4-71.6-160-160-160s-160 71.6-160 160z"]},Qi={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]},Ji={prefix:"fas",iconName:"tablet-screen-button",icon:[448,512,["tablet-alt"],"f3fa","M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64L64 64l0 320 320 0 0-320z"]},Us=Ji,er={prefix:"fas",iconName:"paw",icon:[512,512,[],"f1b0","M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z"]},Cr={prefix:"fas",iconName:"cloud",icon:[640,512,[9729],"f0c2","M0 336c0 79.5 64.5 144 144 144l368 0c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z"]},rr={prefix:"fas",iconName:"trowel-bricks",icon:[512,512,[],"e58a","M240.8 4.8C250.3 10.6 256 20.9 256 32l0 72 89 0c3.6-13.8 16.1-24 31-24l88 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-88 0c-14.9 0-27.4-10.2-31-24l-89 0 0 72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM32 384l96 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l256 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z"]},xr={prefix:"fas",iconName:"face-flushed",icon:[512,512,[128563,"flushed"],"f579","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM176 384c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16zm-16-88a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},Nn=xr,_a={prefix:"fas",iconName:"hospital-user",icon:[576,512,[],"f80d","M48 0C21.5 0 0 21.5 0 48L0 256l144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L0 288l0 64 144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L0 384l0 80c0 26.5 21.5 48 48 48l217.9 0c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2l0-95.9L320 48c0-26.5-21.5-48-48-48L48 0zM152 64l16 0c8.8 0 16 7.2 16 16l0 24 24 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-24 0 0 24c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-24-24 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16l24 0 0-24c0-8.8 7.2-16 16-16zM512 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM288 477.1c0 19.3 15.6 34.9 34.9 34.9l218.2 0c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1l-101.8 0c-51.4 0-93.1 41.7-93.1 93.1z"]},Fl={prefix:"fas",iconName:"tent-arrow-left-right",icon:[576,512,[],"e57f","M488.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L489.5 72 86.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},Ua={prefix:"fas",iconName:"gavel",icon:[512,512,["legal"],"f0e3","M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z"]},io=Ua,wn={prefix:"fas",iconName:"binoculars",icon:[512,512,[],"f1e5","M128 32l32 0c17.7 0 32 14.3 32 32l0 32L96 96l0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z"]},uu={prefix:"fas",iconName:"microphone-slash",icon:[640,512,[],"f131","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 21.2-5.1 41.1-14.2 58.7L416 300.8 416 96c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6z"]},Hc={prefix:"fas",iconName:"box-tissue",icon:[512,512,[],"e05b","M92.5 0L208 0c40 0 52 24 64 48s24 48 64 48l85.2 0C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288l-256 0-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64-15 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 256 0 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-13.5 0 25.6-64 19.9 0c26.5 0 48 21.5 48 48l0 112L0 384 0 272c0-26.5 21.5-48 48-48l31 0zM0 416l512 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48l0-48z"]},gd={prefix:"fas",iconName:"motorcycle",icon:[640,512,[127949],"f21c","M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l57.7 0 16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7L64 128c-17.7 0-32 14.3-32 32l0 32 96 0c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32l70.4 0c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128l61.8 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-20.4 0c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21L280 32zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40l66.4 0C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104l-66.4 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},kl={prefix:"fas",iconName:"bell-concierge",icon:[512,512,[128718,"concierge-bell"],"f562","M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C119.6 157.2 32 252.4 32 368l448 0c0-115.6-87.6-210.8-200-222.7l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0-40 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z"]},aa=kl,hu={prefix:"fas",iconName:"pen-ruler",icon:[512,512,["pencil-ruler"],"f5ae","M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z"]},Ph=hu,Zu={prefix:"fas",iconName:"people-arrows",icon:[640,512,["people-arrows-left-right"],"e068","M64 64a64 64 0 1 1 128 0A64 64 0 1 1 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160l44.8 0c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2l0 72.8c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-115.7c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM448 64a64 64 0 1 1 128 0A64 64 0 1 1 448 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1l44.8 0c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6L576 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-72.8 47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240l0 32 96 0 0-32c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-32-96 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z"]},Yc=Zu,Ku={prefix:"fas",iconName:"mars-and-venus-burst",icon:[640,512,[],"e523","M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8l0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .3 0 .4 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1c0 0 0 .1 0 .1s0 .1 0 .1l0 .1c0 0 0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0l24 0-24 0c0 13.3 10.7 24 24 24s24-10.7 24-24l-24 0 24 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1l0-.1c0 0 0-.1 0-.1s0-.1 0-.1l0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.4 0-.3 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L504 0zM400 128a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z"]},qu={prefix:"fas",iconName:"square-caret-right",icon:[448,512,["caret-square-right"],"f152","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z"]},_d=qu,Qu={prefix:"fas",iconName:"scissors",icon:[512,512,[9984,9986,9988,"cut"],"f0c4","M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},du=Qu,fu={prefix:"fas",iconName:"sun-plant-wilt",icon:[640,512,[],"e57a","M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32l0 53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 8 0 168L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-168 0-8 0-96z"]},Ju={prefix:"fas",iconName:"toilets-portable",icon:[576,512,[],"e584","M32 0L224 0c17.7 0 32 14.3 32 32l0 32L0 64 0 32C0 14.3 14.3 0 32 0zM0 96l24 0 208 0 24 0 0 24 0 368c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8L48 480l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24L0 120 0 96zM192 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zM352 0L544 0c17.7 0 32 14.3 32 32l0 32L320 64l0-32c0-17.7 14.3-32 32-32zM320 96l24 0 208 0 24 0 0 24 0 368c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-160 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-368 0-24zM512 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z"]},$u={prefix:"fas",iconName:"hockey-puck",icon:[512,512,[],"f453","M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6L512 352c0 53-114.6 96-256 96S0 405 0 352L0 222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z"]},pu={prefix:"fas",iconName:"table",icon:[512,512,[],"f0ce","M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]},Ul={prefix:"fas",iconName:"magnifying-glass-arrow-right",icon:[512,512,[],"e521","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31L120 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l118.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z"]},oc={prefix:"fas",iconName:"tachograph-digital",icon:[640,512,["digital-tachograph"],"f566","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l512 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm32 64l224 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16l256 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16zM80 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},mu=oc,r2={prefix:"fas",iconName:"users-slash",icon:[640,512,[],"e073","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320l178.1 0c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192l-42.7 0c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320l213.3 0c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192l-15.2 0zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7l330.7 0c10.5 0 19.5-6 23.9-14.8L324.9 352l-63.6 0zM512 160A80 80 0 1 0 512 0a80 80 0 1 0 0 160z"]},lc={prefix:"fas",iconName:"clover",icon:[448,512,[],"e139","M216.6 49.9C205.1 38.5 189.5 32 173.3 32C139.4 32 112 59.4 112 93.3l0 4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4l-4.9 0C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368l4.9 0c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34l0 4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3l0-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4l4.9 0c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3l-4.9 0c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34l0-4.9C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2z"]},Xc={prefix:"fas",iconName:"reply",icon:[512,512,[61714,"mail-reply"],"f3e5","M205 34.8c11.5 5.1 19 16.6 19 29.2l0 64 112 0c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96l-96 0 0 64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z"]},go=Xc,Wo={prefix:"fas",iconName:"star-and-crescent",icon:[512,512,[9770],"f699","M0 256C0 114.6 114.6 0 256 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512C114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z"]},Oo={prefix:"fas",iconName:"house-fire",icon:[640,512,[],"e50c","M288 350.1l0 1.9-32 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM480 512c-88.4 0-160-71.6-160-160c0-76.7 62.5-144.7 107.2-179.4c5-3.9 10.9-5.8 16.8-5.8c7.9-.1 16 3.1 22 9.2l46 46 11.3-11.3c11.7-11.7 30.6-12.7 42.3-1C624.5 268 640 320.2 640 352c0 88.4-71.6 160-160 160zm64-111.8c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 327.1 416 363.6 416 400.2c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},so={prefix:"fas",iconName:"square-minus",icon:[448,512,[61767,"minus-square"],"f146","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},vd=so,ro={prefix:"fas",iconName:"helicopter",icon:[640,512,[128641],"f533","M128 32c0-17.7 14.3-32 32-32L544 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L384 64l0 64 32 0c88.4 0 160 71.6 160 160l0 64c0 17.7-14.3 32-32 32l-160 0-64 0c-20.1 0-39.1-9.5-51.2-25.6l-71.4-95.2c-3.5-4.7-8.3-8.3-13.7-10.5L47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64L48 64c10.1 0 19.6 4.7 25.6 12.8L112 128l208 0 0-64L160 64c-17.7 0-32-14.3-32-32zM384 320l128 0 0-32c0-53-43-96-96-96l-32 0 0 128zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5L256 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l280.2 0c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z"]},nl={prefix:"fas",iconName:"compass",icon:[512,512,[129517],"f14e","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},va={prefix:"fas",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},_o=va,eh={prefix:"fas",iconName:"file-circle-question",icon:[576,512,[],"e4ef","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6l0 6.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-6.4c0-5.3 4.3-9.6 9.6-9.6l40.5 0c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2l0 14.8c0 8.8 7.2 16 16 16s16-7.2 16-16l0-5.1 23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9l-40.5 0c-23 0-41.6 18.6-41.6 41.6z"]},cc={prefix:"fas",iconName:"laptop-code",icon:[640,512,[],"f5fc","M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256-64 0 0-256L128 96l0 256-64 0L64 96zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"]},Ad={prefix:"fas",iconName:"swatchbook",icon:[512,512,[],"f5c3","M0 32C0 14.3 14.3 0 32 0L160 0c17.7 0 32 14.3 32 32l0 384c0 53-43 96-96 96s-96-43-96-96L0 32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9l0-262 75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192L480 320c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-297.2 0zM128 64L64 64l0 64 64 0 0-64zM64 192l0 64 64 0 0-64-64 0zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},gu={prefix:"fas",iconName:"prescription-bottle",icon:[384,512,[],"f485","M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zm32 96l320 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-32 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 384l0-64 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 288l0-64 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 192l0-64z"]},Oh={prefix:"fas",iconName:"bars",icon:[448,512,["navicon"],"f0c9","M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"]},Rh=Oh,th={prefix:"fas",iconName:"people-group",icon:[640,512,[],"e533","M72 88a56 56 0 1 1 112 0A56 56 0 1 1 72 88zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3l0-84.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5l0 21.5c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-26.8C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112l32 0c24 0 46.2 7.5 64.4 20.3zM448 416l0-21.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176l32 0c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2l0 26.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32zm8-328a56 56 0 1 1 112 0A56 56 0 1 1 456 88zM576 245.7l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM240 304c0 16.2 6 31 16 42.3l0-84.7c-10 11.3-16 26.1-16 42.3zm144-42.3l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2l0 42.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-42.8c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112l32 0c61.9 0 112 50.1 112 112z"]},n1={prefix:"fas",iconName:"hourglass-end",icon:[384,512,[8987,"hourglass-3"],"f253","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z"]},a1=n1,Cd={prefix:"fas",iconName:"heart-crack",icon:[512,512,[128148,"heart-broken"],"f7a9","M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1l0 5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141z"]},_u=Cd,Dh={prefix:"fas",iconName:"square-up-right",icon:[448,512,[8599,"external-link-square-alt"],"f360","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM160 160c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l40 40-71 71C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7l71-71 40 40c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-144c0-8.8-7.2-16-16-16l-144 0z"]},xd=Dh,o1={prefix:"fas",iconName:"face-kiss-beam",icon:[512,512,[128537,"kiss-beam"],"f597","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"]},l1=o1,vu={prefix:"fas",iconName:"film",icon:[512,512,[127902],"f008","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM160 128l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L192 96c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0z"]},ih={prefix:"fas",iconName:"ruler-horizontal",icon:[640,512,[],"f547","M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z"]},n2={prefix:"fas",iconName:"people-robbery",icon:[576,512,[],"e536","M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6L8 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z"]},c1={prefix:"fas",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z"]},mf={prefix:"fas",iconName:"caret-left",icon:[256,512,[],"f0d9","M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]},bd={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},a2=bd,sh={prefix:"fas",iconName:"school-circle-xmark",icon:[640,512,[],"e56d","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z"]},o2={prefix:"fas",iconName:"arrow-right-from-bracket",icon:[512,512,["sign-out"],"f08b","M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z"]},l2=o2,Nh={prefix:"fas",iconName:"circle-chevron-down",icon:[512,512,["chevron-circle-down"],"f13a","M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z"]},u1=Nh,wh={prefix:"fas",iconName:"unlock-keyhole",icon:[448,512,["unlock-alt"],"f13e","M224 64c-44.2 0-80 35.8-80 80l0 48 240 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0 0-48C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0z"]},c2=wh,Bh={prefix:"fas",iconName:"cloud-showers-heavy",icon:[512,512,[],"f740","M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96L96 320zM81.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6S-3.3 490.7 1.9 478.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM313.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z"]},Zc={prefix:"fas",iconName:"headphones-simple",icon:[512,512,["headphones-alt"],"f58f","M256 80C141.1 80 48 173.1 48 288l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24L0 288C0 146.6 114.6 32 256 32s256 114.6 256 256l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64l16 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-16 0c-35.3 0-64-28.7-64-64l0-64zm288-64c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-16 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l16 0z"]},Au=Zc,u2={prefix:"fas",iconName:"sitemap",icon:[576,512,[],"f0e8","M208 80c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-8 0 0 40 152 0c30.9 0 56 25.1 56 56l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-4.4-3.6-8-8-8l-152 0 0 40 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-40-152 0c-4.4 0-8 3.6-8 8l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-30.9 25.1-56 56-56l152 0 0-40-8 0c-26.5 0-48-21.5-48-48l0-64z"]},Kc={prefix:"fas",iconName:"circle-dollar-to-slot",icon:[512,512,["donate"],"f4b9","M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3l-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1l0 6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.7 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1l0 6.4c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1l0-5.5c5.3-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4l0-6.3c0-11.1-9-20.1-20.1-20.1zM48 352l16 0c19.5 25.9 44 47.7 72.2 64L64 416l0 32 192 0 192 0 0-32-72.2 0c28.2-16.3 52.8-38.1 72.2-64l16 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48z"]},zh=Kc,uc={prefix:"fas",iconName:"memory",icon:[576,512,[],"f538","M64 64C28.7 64 0 92.7 0 128l0 7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6L0 320l576 0 0-71.4c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM576 352L0 352l0 64c0 17.7 14.3 32 32 32l48 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 48 0c17.7 0 32-14.3 32-32l0-64zM192 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},Cu={prefix:"fas",iconName:"road-spikes",icon:[640,512,[],"e568","M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256l0-139.2c0-15.8 20.5-22 29.3-8.9L320 256l0-139.2c0-15.8 20.5-22 29.3-8.9L448 256l0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7L512 352l-64 0-64 0-64 0-64 0-64 0L64 352l0-235.2zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},h1={prefix:"fas",iconName:"fire-burner",icon:[640,512,[],"e4f1","M345.7 48.3L358 34.5c5.4-6.1 13.3-8.8 20.9-8.9c7.2 0 14.3 2.6 19.9 7.8c19.7 18.3 39.8 43.2 55 70.6C469 131.2 480 162.2 480 192.2C480 280.8 408.7 352 320 352c-89.6 0-160-71.3-160-159.8c0-37.3 16-73.4 36.8-104.5c20.9-31.3 47.5-59 70.9-80.2C273.4 2.3 280.7-.2 288 0c14.1 .3 23.8 11.4 32.7 21.6c0 0 0 0 0 0c2 2.3 4 4.6 6 6.7l19 19.9zM384 240.2c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C293 167.1 256 203.6 256 240.2c0 35.3 28.7 64 64 64s64-28.7 64-64zM32 288c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64 448 0 0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l0-96zM320 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm160-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM192 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},xu={prefix:"fas",iconName:"flag",icon:[448,512,[127988,61725],"f024","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 64 0 368 0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48l0-16z"]},gf={prefix:"fas",iconName:"hanukiah",icon:[640,512,[128334],"f6e6","M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176L96 320c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z"]},Sd={prefix:"fas",iconName:"feather",icon:[512,512,[129718],"f52d","M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 68 0c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330l0 55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"]},Fh={prefix:"fas",iconName:"volume-low",icon:[448,512,[128264,"volume-down"],"f027","M301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z"]},h2=Fh,vo={prefix:"fas",iconName:"comment-slash",icon:[640,512,[],"f4b3","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zm385.2 425L82.9 161.3C70.7 185.6 64 212.2 64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104.1-17.9z"]},d2={prefix:"fas",iconName:"cloud-sun-rain",icon:[640,512,[127782],"f743","M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l10.4 62.4c-23.3 10.8-42.9 28.4-56 50.3c-14.6-9-31.8-14.1-50.2-14.1c-53 0-96 43-96 96c0 35.5 19.3 66.6 48 83.2c.8 31.8 13.2 60.7 33.1 82.7l-56 39.2c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM208 144c13.8 0 26.7 4.4 37.1 11.9c-1.2 4.1-2.2 8.3-3 12.6c-37.9 14.6-67.2 46.6-77.8 86.4C151.8 243.1 144 226.5 144 208c0-35.3 28.7-64 64-64zm69.4 276c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm74.5-116.1c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"]},d1={prefix:"fas",iconName:"compress",icon:[448,512,[],"f066","M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z"]},rh={prefix:"fas",iconName:"wheat-awn",icon:[512,512,["wheat-alt"],"e2cd","M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z"]},f2=rh,Ao={prefix:"fas",iconName:"ankh",icon:[320,512,[9765],"f644","M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z"]},p2={prefix:"fas",iconName:"hands-holding-child",icon:[640,512,[],"e4fa","M320 0a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm44.7 164.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40l0 40 0 80 0 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2c0 0 0 0 0 0l25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 224l0-64 0-56C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 56 0 64 0 101.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3c0 0 0 0 0 0l15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3l0-40.2 0-80 0-40c0-22.1 17.9-40 40-40z"]},m2={prefix:"fas",iconName:"asterisk",icon:[384,512,[10033,61545],"2a","M192 32c17.7 0 32 14.3 32 32l0 135.5 111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5 224 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-135.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5 160 64c0-17.7 14.3-32 32-32z"]},f1={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},kh=f1,ye={prefix:"fas",iconName:"peseta-sign",icon:[384,512,[],"e221","M64 32C46.3 32 32 46.3 32 64l0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c77.4 0 142-55 156.8-128l3.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-3.2 0C334 87 269.4 32 192 32L64 32zM282.5 160L96 160l0-64 96 0c41.8 0 77.4 26.7 90.5 64zM96 224l186.5 0c-13.2 37.3-48.7 64-90.5 64l-96 0 0-64z"]},Be={prefix:"fas",iconName:"heading",icon:[448,512,["header"],"f1dc","M0 64C0 46.3 14.3 32 32 32l48 0 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 144 0 176 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-176L48 96 32 96C14.3 96 0 81.7 0 64z"]},Ze=Be,tt={prefix:"fas",iconName:"ghost",icon:[384,512,[128123],"f6e2","M40.1 467.1l-11.2 9c-3.2 2.5-7.1 3.9-11.1 3.9C8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8c-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},gt={prefix:"fas",iconName:"list",icon:[512,512,["list-squares"],"f03a","M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z"]},pe=gt,Ce={prefix:"fas",iconName:"square-phone-flip",icon:[448,512,["phone-square-alt"],"f87b","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z"]},De=Ce,Xe={prefix:"fas",iconName:"cart-plus",icon:[576,512,[],"f217","M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20l44 0 0 44c0 11 9 20 20 20s20-9 20-20l0-44 44 0c11 0 20-9 20-20s-9-20-20-20l-44 0 0-44c0-11-9-20-20-20s-20 9-20 20l0 44-44 0c-11 0-20 9-20 20z"]},Je={prefix:"fas",iconName:"gamepad",icon:[640,512,[],"f11b","M192 64C86 64 0 150 0 256S86 448 192 448l256 0c106 0 192-86 192-192s-86-192-192-192L192 64zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32z"]},vt={prefix:"fas",iconName:"circle-dot",icon:[512,512,[128280,"dot-circle"],"f192","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},Gt=vt,ai={prefix:"fas",iconName:"face-dizzy",icon:[512,512,["dizzy"],"f567","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-224a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z"]},As=ai,Cs={prefix:"fas",iconName:"egg",icon:[384,512,[129370],"f7fb","M192 496C86 496 0 394 0 288C0 176 64 16 192 16s192 160 192 272c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2C69.7 226.1 64 259.7 64 288c0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8c10.1-28.5 25-54.1 43.7-71.2z"]},zs={prefix:"fas",iconName:"house-medical-circle-xmark",icon:[640,512,[],"e513","M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z"]},Ys={prefix:"fas",iconName:"campground",icon:[576,512,[9978],"f6bb","M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4L0 464c0 26.5 21.5 48 48 48l240 0 240 0c26.5 0 48-21.5 48-48l0-23.6c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448l-119.5 0L288 291.7 407.5 448 288 448z"]},tr={prefix:"fas",iconName:"folder-plus",icon:[512,512,[],"f65e","M512 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z"]},Wr={prefix:"fas",iconName:"futbol",icon:[512,512,[9917,"futbol-ball","soccer-ball"],"f1e3","M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z"]},ja=Wr,Ml=Wr,Jn={prefix:"fas",iconName:"paintbrush",icon:[576,512,[128396,"paint-brush"],"f1fc","M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448L64 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"]},hc=Jn,Ro={prefix:"fas",iconName:"lock",icon:[448,512,[128274],"f023","M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z"]},qc={prefix:"fas",iconName:"gas-pump",icon:[512,512,[9981],"f52f","M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-64L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3l0 13.5 0 24 0 32 0 152c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 144c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z"]},g2={prefix:"fas",iconName:"hot-tub-person",icon:[512,512,["hot-tub"],"f593","M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5l0 13.2c0 13.3 10.7 24 24 24s24-10.7 24-24l0-13.2c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2l0-5.2zM0 320l0 16L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-170.7 0c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96l0 64zm128 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zm112 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24l0 5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5l0 13.2c0 13.3 10.7 24 24 24s24-10.7 24-24l0-13.2c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2l0-5.2c0-13.3-10.7-24-24-24zM64 128A64 64 0 1 0 64 0a64 64 0 1 0 0 128z"]},Uh=g2,x3={prefix:"fas",iconName:"map-location",icon:[576,512,["map-marked"],"f59f","M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3L576 152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6L416 503zM15.1 187.3C6 191 0 199.8 0 209.6L0 480.4c0 17 17.1 28.6 32.9 22.3L160 451.8l0-251.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77l0 194.4 192 54.9L384 255z"]},p1=x3,E_={prefix:"fas",iconName:"house-flood-water",icon:[576,512,[],"e50e","M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192l16 0 0 73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2 16.6 0c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448z"]},Pb={prefix:"fas",iconName:"tree",icon:[448,512,[127794],"f1bb","M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208l24.9 0L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320L80 320 5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5L192 448l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 168.5 0c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320l33.4 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208l24.9 0c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z"]},_f={prefix:"fas",iconName:"bridge-lock",icon:[640,512,[],"e4cc","M32 64c0-17.7 14.3-32 32-32l512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-40 0 0 64-8 0c-61.9 0-112 50.1-112 112l0 24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c0-53-43-96-96-96l0-128 72 0 0-64L64 96C46.3 96 32 81.7 32 64zM408 96l0 64 80 0 0-64-80 0zm-48 64l0-64-80 0 0 64 80 0zM152 96l0 64 80 0 0-64-80 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"]},S5={prefix:"fas",iconName:"sack-dollar",icon:[512,512,[128176],"f81d","M320 96L192 96 144.6 24.9C137.5 14.2 145.1 0 157.9 0L354.1 0c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128l128 0c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96L96 512c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4c0 0 0 0 0 0s0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84 88c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15c0 0 0 0 0 0l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7l0-13.9z"]},yd={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"]},b3=yd,B4={prefix:"fas",iconName:"car-side",icon:[640,512,[128663],"f5e4","M171.3 96L224 96l0 96-112.7 0 30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192l0-96 81.2 0c9.7 0 18.9 4.4 25 12l67.2 84L272 192zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36L171.3 32c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256L0 368c0 17.7 14.3 32 32 32l33.3 0c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80l130.7 0c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80l33.3 0c17.7 0 32-14.3 32-32l0-48c0-65.2-48.8-119-111.8-127zM434.7 368a48 48 0 1 1 90.5 32 48 48 0 1 1 -90.5-32zM160 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},S3={prefix:"fas",iconName:"share-nodes",icon:[448,512,["share-alt"],"f1e0","M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z"]},fM=S3,dc={prefix:"fas",iconName:"heart-circle-minus",icon:[576,512,[],"e4ff","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z"]},z4={prefix:"fas",iconName:"hourglass-half",icon:[384,512,["hourglass-2"],"f252","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.1 14.9L112 384z"]},y3=z4,Md={prefix:"fas",iconName:"microscope",icon:[512,512,[128300],"f610","M160 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32zM32 448l288 0c70.7 0 128-57.3 128-128s-57.3-128-128-128l0-64c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128l16.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},m1={prefix:"fas",iconName:"sink",icon:[512,512,[],"e06d","M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-24c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 24-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-24c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 24-64 0 0-192zM480 416l0-32L32 384l0 32c0 53 43 96 96 96l256 0c53 0 96-43 96-96z"]},fc={prefix:"fas",iconName:"bag-shopping",icon:[448,512,["shopping-bag"],"f290","M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48C336 50.1 285.9 0 224 0S112 50.1 112 112l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},pM=fc,y5={prefix:"fas",iconName:"arrow-down-z-a",icon:[576,512,["sort-alpha-desc","sort-alpha-down-alt"],"f881","M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96 352 96c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448l-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400l40.4 0L416 359.6 395.8 400z"]},pn=y5,jl=y5,oa={prefix:"fas",iconName:"mitten",icon:[448,512,[],"f7b5","M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-32z"]},Aa={prefix:"fas",iconName:"person-rays",icon:[512,512,[],"e54d","M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9 328 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z"]},mM={prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192l42.7 0c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0L21.3 320C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7l42.7 0C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3l-213.3 0zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352l117.3 0C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7l-330.7 0c-14.7 0-26.7-11.9-26.7-26.7z"]},mn={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z"]},Ed={prefix:"fas",iconName:"flask-vial",icon:[640,512,[],"e4f3","M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L96 0l64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 245.9-49 79.6zM96 64l0 96 64 0 0-96L96 64zM352 0L480 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 150.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4l-309.2 0c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9 320 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0zm32 64l0 160c0 5.9-1.6 11.7-4.7 16.8L330.5 320l171 0-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8l0-160-64 0z"]},no={prefix:"fas",iconName:"hand",icon:[512,512,[129306,9995,"hand-paper"],"f256","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z"]},Zs=no,T_={prefix:"fas",iconName:"om",icon:[512,512,[128329],"f679","M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM281 66.7c-2.2-1.5-4.9-2.5-7.7-2.7c-.6 0-1.3-.1-1.9 0c-3.9 .2-7.4 1.7-10.1 4.2c-.9 .8-1.6 1.7-2.3 2.6c-1.7 2.4-2.7 5.3-2.9 8.5c0 .7 0 1.4 0 2.1c.2 2.2 .9 4.3 1.9 6.2l.3 .6c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .1-.1 .1-.1s0 0 0 0s0 0 0 0c5.9-5.8 9.5-13.9 9.5-22.8c0-17.7-14.3-32-32-32c-8.7 0-16.7 3.5-22.4 9.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48l-34.2 0c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9l8.9 0 16 0c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5c-.3-.9-.7-1.8-1.1-2.6c-1.2-2.2-2.8-4-4.7-5.4c-1.9-1.4-4.1-2.3-6.5-2.8c-1.4-.3-2.9-.3-4.4-.2c-2.5 .2-4.8 1-6.8 2.3c-1.1 .7-2.2 1.5-3.1 2.5c-2.4 2.5-4.1 5.8-4.5 9.5c-.1 .6-.1 1.1-.1 1.7c0 0 0 0 0 0c0 .8 .1 1.7 .2 2.5l0 .1c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64l22.6 0c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4l5.5 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.2c-.3-1.3-.8-2.6-1.5-3.8c-1.1-2-2.6-3.8-4.4-5.1c-2.7-2-6-3.2-9.6-3.2l-.2 0c-8 .1-14.6 6.1-15.6 13.9c0 0 0 0 0 0c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96l0-96c0-53-43-96-96-96l-5.5 0c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4l-48.3 0c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4z"]},Qc={prefix:"fas",iconName:"worm",icon:[512,512,[],"e599","M256 96c0-53 43-96 96-96l38.4 0C439.9 0 480 40.1 480 89.6l0 86.4 0 16 0 184c0 75.1-60.9 136-136 136s-136-60.9-136-136l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-168c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},vf={prefix:"fas",iconName:"house-circle-xmark",icon:[640,512,[],"e50b","M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},M3={prefix:"fas",iconName:"plug",icon:[384,512,[128268],"f1e6","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2C297 398 352 333.4 352 256l0-32c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z"]},en={prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]},F4={prefix:"fas",iconName:"hand-spock",icon:[576,512,[128406],"f259","M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64l10.9 0 8.2 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z"]},B0={prefix:"fas",iconName:"stopwatch",icon:[448,512,[9201],"f2f2","M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 34.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6L256 64l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L224 0 176 0zm72 192l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},Af={prefix:"fas",iconName:"face-kiss",icon:[512,512,[128535,"kiss"],"f596","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},bu=Af,Td={prefix:"fas",iconName:"bridge-circle-xmark",icon:[640,512,[],"e4cb","M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},k4={prefix:"fas",iconName:"face-grin-tongue",icon:[512,512,[128539,"grin-tongue"],"f589","M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448l0-47.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 46.9c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},z0=k4,U4={prefix:"fas",iconName:"chess-bishop",icon:[320,512,[9821],"f43a","M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7L64 400l192 0 0-27.3c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32L128 0zM48 432L6.6 473.4c-4.2 4.2-6.6 10-6.6 16C0 501.9 10.1 512 22.6 512l274.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L272 432 48 432z"]},Ld={prefix:"fas",iconName:"face-grin-wink",icon:[512,512,["grin-wink"],"f58c","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},M5=Ld,L_={prefix:"fas",iconName:"ear-deaf",icon:[512,512,["deaf","deafness","hard-of-hearing"],"f2a4","M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z"]},_2=L_,E5=L_,T5=L_,gM={prefix:"fas",iconName:"road-circle-check",icon:[640,512,[],"e564","M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},Ob={prefix:"fas",iconName:"dice-five",icon:[448,512,[9860],"f523","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},I_={prefix:"fas",iconName:"square-rss",icon:[448,512,["rss-square"],"f143","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Rb=I_,j4={prefix:"fas",iconName:"land-mine-on",icon:[640,512,[],"e51b","M344 24l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32-256 0 0-32zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5l324.7 0c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512l-408.4 0c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z"]},_M={prefix:"fas",iconName:"i-cursor",icon:[256,512,[],"f246","M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3L96 224l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z"]},L5={prefix:"fas",iconName:"stamp",icon:[512,512,[],"f5bf","M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2L112 256C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3L32 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-50.7c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM416 416l0 32L96 448l0-32 320 0z"]},I5={prefix:"fas",iconName:"stairs",icon:[576,512,[],"e289","M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z"]},Db={prefix:"fas",iconName:"i",icon:[320,512,[105],"49","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L160 32 32 32z"]},P_={prefix:"fas",iconName:"hryvnia-sign",icon:[384,512,[8372,"hryvnia"],"f6f2","M121.9 116.2C138.3 103.1 158.7 96 179.6 96L223 96c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31L32 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l123.5 0-50.6 28.9c-1.7 1-3.4 2-5.1 3.1L32 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l20.3 0c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113l43.4 0c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2L161 416c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31L352 336c17.7 0 32-14.3 32-32s-14.3-32-32-32l-123.5 0 50.6-28.9c1.7-1 3.4-2 5.1-3.1l67.8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-20.3 0c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113l-43.4 0c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z"]},P5=P_,g1={prefix:"fas",iconName:"pills",icon:[576,512,[],"f484","M112 96c-26.5 0-48 21.5-48 48l0 112 96 0 0-112c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112l0 224c0 61.9-50.1 112-112 112S0 429.9 0 368L0 144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z"]},v2={prefix:"fas",iconName:"face-grin-wide",icon:[512,512,[128515,"grin-alt"],"f581","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z"]},jh=v2,Cf={prefix:"fas",iconName:"tooth",icon:[448,512,[129463],"f5c9","M186.1 52.1C169.3 39.1 148.7 32 127.5 32C74.7 32 32 74.7 32 127.5l0 6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2l36.7 205.8c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C192.2 323.7 207 312 224 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5l0-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z"]},F0={prefix:"fas",iconName:"v",icon:[384,512,[118],"56","M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z"]},nh={prefix:"fas",iconName:"bangladeshi-taka-sign",icon:[384,512,[],"e2e6","M36 32.3C18.4 30.1 2.4 42.5 .2 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8L64 160l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 160c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-160 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-31.5c0-48.4-36.1-89.3-84.1-95.3l-7.9-1z"]},Vh={prefix:"fas",iconName:"bicycle",icon:[640,512,[128690],"f206","M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l25.7 0 34.6 64-149.4 0-27.4-38C191 99.7 183.7 96 176 96l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.7 0 22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112l49 0c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32L312 32zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368l65 0c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1-123.5 0zm90.6-128l108.5 0L317 274.8 257.4 192z"]},Gh={prefix:"fas",iconName:"staff-snake",icon:[384,512,["rod-asclepius","rod-snake","staff-aesculapius"],"e579","M222.6 43.2l-.1 4.8L288 48c53 0 96 43 96 96s-43 96-96 96l-40 0 0-80 40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-28 0-4.5 144 40.5 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-80 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-43 0-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31L136 464c-22.1 0-40-17.9-40-40s17.9-40 40-40l36 0-1-32-19 0c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7l0 94.7c0 8.8 7.2 16 16 16l16.5 0L164 128l-28 0-13.4 0c-9 18.9-28.3 32-50.6 32l-16 0c-30.9 0-56-25.1-56-56S25.1 48 56 48l8 0 8 0 89.5 0-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},xf=Gh,E3=Gh,T3=Gh,L3={prefix:"fas",iconName:"head-side-cough-slash",icon:[640,512,[],"e062","M448 325.8l44 34.5c8.1 1.4 14.8 6.8 18 14.1L552.9 408c10.6 .4 19.5 7.6 22.2 17.4l39.1 30.6c.6 0 1.2-.1 1.8-.1c11.1 0 20.4 7.5 23.2 17.8l-3.9 0c6.2 8.5 6.4 20.4-.4 29c-8.2 10.4-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L89.6 44.9C127 16.7 173.5 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320s0 0 0 0l0 5.8zM0 224.2c0-38.7 9.8-75.1 27.1-106.9L341.8 365.3l-2.5 .3c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9l62 3.9 43 33.9C439.3 466.2 421.2 480 400 480l-80 0 0 8c0 13.3-10.7 24-24 24l-40 0s0 0 0 0L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM616 360a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-64-48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},O5={prefix:"fas",iconName:"truck-medical",icon:[640,512,[128657,"ambulance"],"f0f9","M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM176 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"]},V4=O5,Nb={prefix:"fas",iconName:"wheat-awn-circle-exclamation",icon:[640,512,[],"e598","M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},wb={prefix:"fas",iconName:"snowman",icon:[512,512,[9731,9924],"f7d0","M341.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L408 160.2l0-40.2c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19.6 22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C396.7 296.9 416 338.2 416 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9l-149.3 0c-13.9 0-27.7-4.2-37.5-13.9C114.3 469 96 428.7 96 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3L70.5 198.1l-56-24C2.4 168.8-3.3 154.7 1.9 142.5s19.3-17.8 31.5-12.6L56 139.6 56 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40.2L152.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C164 127.2 160 112.1 160 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM224 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm48 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-16 80a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm16 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM288 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48 24l0 3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9l0-3.2c0-8.8-7.2-16-16-16s-16 7.2-16 16z"]},G4={prefix:"fas",iconName:"mortar-pestle",icon:[512,512,[],"f5a7","M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160l144.9 0L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512l192 0c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z"]},R5={prefix:"fas",iconName:"road-barrier",icon:[640,512,[],"e562","M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-181.7L149.2 96 64 96l0-32c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7L234.8 288l74.3 0 5.4-10.7L405.2 96zM362.8 288l74.3 0 5.4-10.7L533.2 96l-74.3 0-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288l74.3 0 5.4-10.7L277.2 96l-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7L490.8 288z"]},W4={prefix:"fas",iconName:"school",icon:[640,512,[127979],"f549","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l208 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 208 0c26.5 0 48-21.5 48-48l0-320c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64zM96 320l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64zM232 176a88 88 0 1 1 176 0 88 88 0 1 1 -176 0zm88-48c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16z"]},H4={prefix:"fas",iconName:"igloo",icon:[576,512,[],"f7ae","M320 33.8L320 160 48.5 160C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160l0-120.9C424.9 55.7 487.2 99.8 527.5 160L352 160zM29.9 192L96 192l0 128L0 320c0-46 10.8-89.4 29.9-128zM192 320l-64 0 0-128 320 0 0 128-64 0 0 32 192 0 0 80c0 26.5-21.5 48-48 48l-176 0 0-128c0-35.3-28.7-64-64-64s-64 28.7-64 64l0 128L48 480c-26.5 0-48-21.5-48-48l0-80 192 0 0-32zm288 0l0-128 66.1 0c19.2 38.6 29.9 82 29.9 128l-96 0z"]},Bb={prefix:"fas",iconName:"joint",icon:[640,512,[],"f595","M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9l0 11c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43l0-11zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9l0-11c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8l0 11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512l67.3 0c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512l19 0 51.3 0c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352l-19 0-48 0c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9l0-80c0-22.1-17.9-40-40-40l-155.3 0c-4.1 0-6.3 5.1-3.6 8.3z"]},A2={prefix:"fas",iconName:"angle-right",icon:[320,512,[8250],"f105","M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"]},D5={prefix:"fas",iconName:"horse",icon:[576,512,[128014],"f6f0","M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L480 0 448 0C377.3 0 320 57.3 320 128l-96 0-20.8 0-54.4 0c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7c0 0 0 0 0 0l0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},N5={prefix:"fas",iconName:"q",icon:[448,512,[113],"51","M64 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C371.9 325.8 384 292.3 384 256c0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z"]},bf={prefix:"fas",iconName:"g",icon:[448,512,[103],"47","M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6C437.8 389.6 341.4 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z"]},k0={prefix:"fas",iconName:"notes-medical",icon:[512,512,[],"f481","M96 352L96 96c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 197.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7L160 416c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0C60.9 512 0 451.1 0 376L0 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88l160 0z"]},Sf={prefix:"fas",iconName:"temperature-half",icon:[320,512,[127777,"temperature-2","thermometer-2","thermometer-half"],"f2c9","M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 208c0-8.8 7.2-16 16-16s16 7.2 16 16l0 114.7c18.6 6.6 32 24.4 32 45.3z"]},O_=Sf,I3=Sf,P3=Sf,U0={prefix:"fas",iconName:"dong-sign",icon:[384,512,[],"e169","M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32l0-96 0-160c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM128 288a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z"]},R_={prefix:"fas",iconName:"capsules",icon:[576,512,[],"f46b","M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM0 144L0 368c0 61.9 50.1 112 112 112s112-50.1 112-112l0-178.4c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83l0-24.2c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z"]},D_={prefix:"fas",iconName:"poo-storm",icon:[448,512,["poo-bolt"],"f75a","M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 21.7-8.5 37.2-21.9 47.6c-13.8 10.8-34 17-57.8 17L128 112c-35.3 0-64 28.7-64 64c0 12.2 3.4 23.5 9.3 33.2C31.7 216.2 0 252.4 0 296c0 40.9 28 75.4 65.8 85.2c-5.3-18.5 1-38.5 16.2-50.7l160-128c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L285.7 320l18.3 0c20.4 0 38.5 12.9 45.3 32.1c3.7 10.6 3.5 21.8 0 31.9l10.7 0c48.6 0 88-39.4 88-88c0-43.6-31.7-79.8-73.3-86.8c5.9-9.7 9.3-21.1 9.3-33.2c0-35.3-28.7-64-64-64l-1.4 0c.9-5.4 1.4-10.9 1.4-16.6c0-48.7-36.1-88.9-83.1-95.2zm45.1 227.4c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7l70.1 0L129.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7l-70.1 0 52.4-104.8c3.4-6.7 1.6-14.9-4.3-19.6z"]},Y4=D_,X4={prefix:"fas",iconName:"face-frown-open",icon:[512,512,[128550,"frown-open"],"f57a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-122 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z"]},zb=X4,Fb={prefix:"fas",iconName:"hand-point-up",icon:[384,512,[9757],"f0a6","M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0L32 32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z"]},kb={prefix:"fas",iconName:"money-bill",icon:[576,512,[],"f0d6","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm64 320l-64 0 0-64c35.3 0 64 28.7 64 64zM64 192l0-64 64 0c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM288 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},Ub={prefix:"fas",iconName:"bookmark",icon:[384,512,[128278,61591],"f02e","M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z"]},Z4={prefix:"fas",iconName:"align-justify",icon:[448,512,[],"f039","M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z"]},vM={prefix:"fas",iconName:"umbrella-beach",icon:[576,512,[127958],"f5ca","M346.3 271.8l-60.1-21.9L214 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-261.9 0 64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z"]},jb={prefix:"fas",iconName:"helmet-un",icon:[512,512,[],"e503","M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384L200 384l14.9 0L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5L368 288l80 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7L274.4 288l45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},AM={prefix:"fas",iconName:"bullseye",icon:[512,512,[],"f140","M448 256A192 192 0 1 0 64 256a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Vb={prefix:"fas",iconName:"bacon",icon:[576,512,[129363],"f7e5","M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6c0 0 0 0 0 0l.2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z"]},N_={prefix:"fas",iconName:"hand-point-down",icon:[384,512,[],"f0a7","M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z"]},Gb={prefix:"fas",iconName:"arrow-up-from-bracket",icon:[448,512,[],"e09a","M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z"]},w5={prefix:"fas",iconName:"folder",icon:[512,512,[128193,128447,61716,"folder-blank"],"f07b","M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z"]},CM=w5,B5={prefix:"fas",iconName:"file-waveform",icon:[448,512,["file-medical-alt"],"f478","M96 0C60.7 0 32 28.7 32 64l0 224 112 0c6.1 0 11.6 3.4 14.3 8.8L176 332.2l49.7-99.4c2.7-5.4 8.3-8.8 14.3-8.8s11.6 3.4 14.3 8.8L281.9 288l70.1 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-80 0c-6.1 0-11.6-3.4-14.3-8.8L240 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L134.1 320 32 320l0 128c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L256 0 96 0zM288 0l0 128 128 0L288 0z"]},K4=B5,j0={prefix:"fas",iconName:"radiation",icon:[512,512,[],"f7b9","M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},q4={prefix:"fas",iconName:"chart-simple",icon:[448,512,[],"e473","M160 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM368 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z"]},Wb={prefix:"fas",iconName:"mars-stroke",icon:[512,512,[9894],"f229","M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L376 0zm88 48s0 0 0 0s0 0 0 0s0 0 0 0zM96 304a112 112 0 1 1 224 0A112 112 0 1 1 96 304z"]},O3={prefix:"fas",iconName:"vial",icon:[512,512,[129514],"f492","M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96-101.5 0z"]},Q4={prefix:"fas",iconName:"gauge",icon:[512,512,["dashboard","gauge-med","tachometer-alt-average"],"f624","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3L280 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 204.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Id=Q4,R3=Q4,yf=Q4,D3={prefix:"fas",iconName:"wand-magic-sparkles",icon:[576,512,["magic-wand-sparkles"],"e2ca","M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z"]},J4=D3,Mf={prefix:"fas",iconName:"e",icon:[320,512,[101],"45","M64 32C28.7 32 0 60.7 0 96L0 256 0 416c0 35.3 28.7 64 64 64l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 416l0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 224 64 96l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32z"]},w_={prefix:"fas",iconName:"pen-clip",icon:[512,512,["pen-alt"],"f305","M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1s0 0 0 0l-1-1s0 0 0 0l-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z"]},C2=w_,$4={prefix:"fas",iconName:"bridge-circle-exclamation",icon:[640,512,[],"e4ca","M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},eg={prefix:"fas",iconName:"user",icon:[448,512,[128100,62144],"f007","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z"]},_1={prefix:"fas",iconName:"school-circle-check",icon:[640,512,[],"e56b","M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z"]},Hb={prefix:"fas",iconName:"dumpster",icon:[576,512,[],"f793","M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160l94 0L140.5 32 49.7 32zM272 160l0-128-98.9 0L147.5 160 272 160zm32 0l124.5 0L402.9 32 304 32l0 128zm157.1 0l94 0c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32l-90.8 0 25.6 128zM32 192l4 32-4 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l12 0L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32l320 0c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160 12 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-4 0 4-32L32 192z"]},xi={prefix:"fas",iconName:"van-shuttle",icon:[640,512,[128656,"shuttle-van"],"f5b6","M64 104l0 88 96 0 0-96L72 96c-4.4 0-8 3.6-8 8zm482 88L465.1 96 384 96l0 96 162 0zm-226 0l0-96-96 0 0 96 96 0zM592 384l-16 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 104C0 64.2 32.2 32 72 32l120 0 160 0 113.1 0c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2L640 336c0 26.5-21.5 48-48 48zm-64 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},Vl=xi,Bn={prefix:"fas",iconName:"building-user",icon:[640,512,[],"e4da","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 89.9 0c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2l0-95.9L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM576 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM352 477.1c0 19.3 15.6 34.9 34.9 34.9l218.2 0c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1l-101.8 0c-51.4 0-93.1 41.7-93.1 93.1z"]},Wh={prefix:"fas",iconName:"square-caret-left",icon:[448,512,["caret-square-left"],"f191","M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z"]},z5=Wh,Ci={prefix:"fas",iconName:"highlighter",icon:[576,512,[],"f591","M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5s0 0 0 0l0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5L224 416l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z"]},Jc={prefix:"fas",iconName:"key",icon:[512,512,[128273],"f084","M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z"]},zn={prefix:"fas",iconName:"bullhorn",icon:[512,512,[128226,128363],"f0a1","M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75l-8.7 0-32 0-96 0c-35.3 0-64 28.7-64 64l0 96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128 8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-147.6c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4L480 32zm-64 76.7L416 240l0 131.3C357.2 317.8 280.5 288 200.7 288l-8.7 0 0-96 8.7 0c79.8 0 156.5-29.8 215.3-83.3z"]},N3={prefix:"fas",iconName:"globe",icon:[512,512,[127760],"f0ac","M352 256c0 22.2-1.2 43.6-3.3 64l-185.3 0c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64l185.3 0c2.2 20.4 3.3 41.8 3.3 64zm28.8-64l123.1 0c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64l-123.1 0c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32l-116.7 0c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0l-176.6 0c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0L18.6 160C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192l123.1 0c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64L8.1 320C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6l176.6 0c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352l116.7 0zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6l116.7 0z"]},tg={prefix:"fas",iconName:"synagogue",icon:[640,512,[128333],"f69b","M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166l0 114.1L480 512l-16 0-112 0 0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96-112 0-16 0 0-231.9L160 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512l0-267.5 28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1L640 448c0 35.3-28.7 64-64 64l-64 0zM128 244.5L128 512l-64 0c-35.3 0-64-28.7-64-64L0 316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z"]},ig={prefix:"fas",iconName:"person-half-dress",icon:[320,512,[],"e548","M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm8 352l0-224 6.9 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128s0 0 0 0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3l0 256s0 0 0 0l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z"]},V0={prefix:"fas",iconName:"road-bridge",icon:[640,512,[],"e563","M352 0L608 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM480 40c-13.3 0-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24zM32 96l256 0 0 64-40 0 0 64 40 0 0 96c-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c0-53-43-96-96-96l0-96 72 0 0-64-40 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64l-80 0 0 64 80 0 0-64z"]},sg={prefix:"fas",iconName:"location-arrow",icon:[448,512,[],"f124","M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8l176 0 0 176c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z"]},Ef={prefix:"fas",iconName:"c",icon:[384,512,[99],"43","M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z"]},rg={prefix:"fas",iconName:"tablet-button",icon:[448,512,[],"f10a","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},F5={prefix:"fas",iconName:"building-lock",icon:[576,512,[],"e4d6","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 88.6 0c-5.4-9.4-8.6-20.3-8.6-32l0-128c0-23.7 12.9-44.4 32-55.4l0-24.6c0-30.5 12.2-58.2 32-78.4L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},G0={prefix:"fas",iconName:"pizza-slice",icon:[512,512,[],"f818","M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},W0={prefix:"fas",iconName:"money-bill-wave",icon:[576,512,[],"f53a","M0 112.5L0 422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4l0-309.9c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64l-64 0 0-64zm64-208c0 35.3-28.7 64-64 64l0-64 64 0zM512 304l0 64-64 0c0-35.3 28.7-64 64-64zM448 96l64 0 0 64c-35.3 0-64-28.7-64-64z"]},pc={prefix:"fas",iconName:"chart-area",icon:[512,512,["area-chart"],"f1fe","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 288l288 0c17.7 0 32-14.3 32-32l0-68.2c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1l0 84c0 17.7 14.3 32 32 32z"]},Va=pc,Yb={prefix:"fas",iconName:"house-flag",icon:[640,512,[],"e50d","M480 0c-17.7 0-32 14.3-32 32l0 160 0 320 64 0 0-320 112 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16L512 32c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288l32 0 0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 96c0 17.7 14.3 32 32 32l64.7 0 .2 0-1 0 0-353z"]},la={prefix:"fas",iconName:"person-circle-minus",icon:[576,512,[],"e540","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z"]},x2={prefix:"fas",iconName:"ban",icon:[512,512,[128683,"cancel"],"f05e","M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},v1=x2,Co={prefix:"fas",iconName:"camera-rotate",icon:[640,512,[],"e0d8","M213.1 64.8L202.7 96 128 96c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L426.9 64.8C420.4 45.2 402.1 32 381.4 32L258.6 32c-20.7 0-39 13.2-45.5 32.8zM448 256c0 8.8-7.2 16-16 16l-76.7 0c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L371 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L249 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C257.4 172.7 288 160 320 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3l0 76.7zM192 320c0-8.8 7.2-16 16-16l76.7 0c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L269 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L391 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C382.6 403.3 352 416 320 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3l0-76.7z"]},ng={prefix:"fas",iconName:"spray-can-sparkles",icon:[512,512,["air-freshener"],"f5d0","M96 32l0 96 128 0 0-96c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96L0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96L96 160zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z"]},Ca=ng,H0={prefix:"fas",iconName:"star",icon:[576,512,[11088,61446],"f005","M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"]},xM={prefix:"fas",iconName:"repeat",icon:[512,512,[128257],"f363","M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32l0 32L160 64C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 160 0c88.4 0 160-71.6 160-160z"]},k5={prefix:"fas",iconName:"cross",icon:[384,512,[128327,10013],"f654","M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z"]},ag={prefix:"fas",iconName:"box",icon:[448,512,[128230],"f466","M50.7 58.5L0 160l208 0 0-128L93.7 32C75.5 32 58.9 42.3 50.7 58.5zM240 160l208 0L397.3 58.5C389.1 42.3 372.5 32 354.3 32L240 32l0 128zm208 32L0 192 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-224z"]},Xb={prefix:"fas",iconName:"venus-mars",icon:[640,512,[9892],"f228","M176 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM352 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0L616 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z"]},B_={prefix:"fas",iconName:"arrow-pointer",icon:[320,512,["mouse-pointer"],"f245","M0 55.2L0 426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320l118.1 0c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"]},bM=B_,Y0={prefix:"fas",iconName:"maximize",icon:[512,512,["expand-arrows-alt"],"f31e","M200 32L56 32C42.7 32 32 42.7 32 56l0 144c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79-79 79L73 295c-6.9-6.9-17.2-8.9-26.2-5.2S32 302.3 32 312l0 144c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-144c0-13.3-10.7-24-24-24L312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S209.7 32 200 32z"]},SM=Y0,U5={prefix:"fas",iconName:"charging-station",icon:[576,512,[],"f5e7","M96 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-144 16 0c22.1 0 40 17.9 40 40l0 32c0 39.8 32.2 72 72 72s72-32.2 72-72l0-123.7c32.5-10.2 56-40.5 56-76.3l0-32c0-8.8-7.2-16-16-16l-16 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-32 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-16 0c-8.8 0-16 7.2-16 16l0 32c0 35.8 23.5 66.1 56 76.3L472 376c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-48.6-39.4-88-88-88l-16 0 0-192c0-35.3-28.7-64-64-64L96 0zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9 57.8 0c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9L96 208c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z"]},j5={prefix:"fas",iconName:"shapes",icon:[512,512,["triangle-circle-square"],"f61f","M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2l192 0c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312l0 144c0 22.1 17.9 40 40 40l144 0c22.1 0 40-17.9 40-40l0-144c0-22.1-17.9-40-40-40l-144 0c-22.1 0-40 17.9-40 40zM128 512a128 128 0 1 0 0-256 128 128 0 1 0 0 256z"]},yM=j5,og={prefix:"fas",iconName:"shuffle",icon:[512,512,[128256,"random"],"f074","M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z"]},$c=og,Tf={prefix:"fas",iconName:"person-running",icon:[448,512,[127939,"running"],"f70c","M320 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM125.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L137.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L238 299l30.9-82.4 5.1 12.3C289 264.7 323.9 288 362.7 288l21.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-21.3 0c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L57.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM91.2 352L32 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l69.6 0c19 0 36.2-11.2 43.9-28.5L157 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L91.2 352z"]},MM=Tf,mc={prefix:"fas",iconName:"mobile-retro",icon:[320,512,[],"e527","M0 64C0 28.7 28.7 0 64 0L256 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm64 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM80 352a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0z"]},X0={prefix:"fas",iconName:"grip-lines-vertical",icon:[192,512,[],"f7a5","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z"]},dr={prefix:"fas",iconName:"spider",icon:[512,512,[128375],"f717","M158.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L81.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4L70.8 190.3c-2.4-.8-4.3-2.7-5.1-5.1L46.8 128.4C42.6 115.8 29 109 16.4 113.2S-3 131 1.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L116.1 256 55.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L1.2 368.4C-3 381 3.8 394.6 16.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8L93.7 352.3C78.1 368 73.1 391.4 81.1 412l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L160 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L430.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L395.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L398.4 15.4C393.6 3 379.8-3.2 367.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L336 174.1l0-14.1c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4l0 10.8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-10.8c0-10.1-9.4-17.7-18.5-13.4C194.6 100.7 176 128.2 176 160l0 14.1-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z"]},A1={prefix:"fas",iconName:"hands-bound",icon:[640,512,[],"e4f9","M96 32C96 14.3 81.7 0 64 0S32 14.3 32 32l0 64 0 59.1 0 .7L32 192l0 21.9c0 14.2 5.1 27.9 14.3 38.7L131.6 352l-3.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 128 0 64 0 128 0 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7l0-21.9 0-36.2 0-.7L608 96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64 0 48.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L473 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C361 209.7 352 233.4 352 258.1l0 61.9 0 32-64 0 0-32 0-61.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L96 144.8 96 96l0-64zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0-128 0-64 0-128 0-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z"]},EM={prefix:"fas",iconName:"file-invoice-dollar",icon:[384,512,[],"f571","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 80c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16l0 17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1s0 0 0 0s0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1l0 17.1c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-17.8c-11.2-2.1-21.7-5.7-30.9-8.9c0 0 0 0 0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5s0 0 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7l0-17.3c0-8.8 7.2-16 16-16z"]},gc={prefix:"fas",iconName:"plane-circle-exclamation",icon:[640,512,[],"e556","M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},C1={prefix:"fas",iconName:"x-ray",icon:[512,512,[],"f497","M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16l0 32-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 48-112 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l112 0 0 70.6L189.1 307c-5.2-2-10.6-3-16.2-3l-2.1 0c-23.6 0-42.8 19.2-42.8 42.8c0 9.6 3.2 18.9 9.1 26.4l18.2 23.2c9.7 12.4 24.6 19.6 40.3 19.6l120.8 0c15.7 0 30.6-7.2 40.3-19.6l18.2-23.2c5.9-7.5 9.1-16.8 9.1-26.4c0-23.6-19.2-42.8-42.8-42.8l-2.2 0c-5.5 0-11 1-16.2 3L272 326.6l0-70.6 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-112 0 0-48 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-80 0 0-32c0-8.8-7.2-16-16-16zM208 352a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm80 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},tn={prefix:"fas",iconName:"spell-check",icon:[576,512,[],"f891","M112 0C99.1 0 87.4 7.8 82.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L66.7 224l90.7 0 5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C136.6 7.8 124.9 0 112 0zm18.7 160l-37.3 0L112 115.2 130.7 160zM256 32l0 96 0 96c0 17.7 14.3 32 32 32l80 0c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80L288 0c-17.7 0-32 14.3-32 32zm96 64l-32 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64l32 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0-32zM566.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L352 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z"]},lg={prefix:"fas",iconName:"slash",icon:[640,512,[],"f715","M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z"]},Zb={prefix:"fas",iconName:"computer-mouse",icon:[384,512,[128433,"mouse"],"f8cc","M0 192l176 0L176 0 160 0C71.6 0 0 71.6 0 160l0 32zm0 32L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-128-192 0L0 224zm384-32l0-32C384 71.6 312.4 0 224 0L208 0l0 192 176 0z"]},TM=Zb,z_={prefix:"fas",iconName:"arrow-right-to-bracket",icon:[512,512,["sign-in"],"f090","M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"]},cg=z_,V5={prefix:"fas",iconName:"shop-slash",icon:[640,512,["store-alt-slash"],"e070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43L576 224l-64 0 0 152L384 275.7l0-51.7-64 0 0 1.5L277.2 192l325.9 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192l85 0L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384l-192 0 0-160-64 0 0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-65.5-64-50.4 0 35.9z"]},Kb=V5,qb={prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},LM={prefix:"fas",iconName:"virus-covid-slash",icon:[640,512,[],"e4a9","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6L344 48l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L280 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5L112 232l0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z"]},Qb={prefix:"fas",iconName:"shop-lock",icon:[640,512,[],"e4a5","M36.8 192l412.8 0c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224l-64 0 0 160-192 0 0-160-64 0 0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-32 0-128zm144 16c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},G5={prefix:"fas",iconName:"hourglass-start",icon:[384,512,["hourglass-1"],"f251","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM288 437l0 11L96 448l0-11c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z"]},IM=G5,Jb={prefix:"fas",iconName:"blender-phone",icon:[576,512,[],"f6b6","M224 352L196.8 52.3C194.2 24.2 216.3 0 244.6 0L534.1 0c21.1 0 36.4 20.1 30.9 40.4L558.5 64 400 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l149.8 0-17.5 64L400 160c-8.8 0-16 7.2-16 16s7.2 16 16 16l123.6 0-17.5 64L400 256c-8.8 0-16 7.2-16 16s7.2 16 16 16l97.5 0L480 352l-256 0zm-16 32l288 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z"]},W5={prefix:"fas",iconName:"building-wheat",icon:[640,512,[],"e4db","M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm384 80l0 16c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0zm0 128c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0 0 16zm0 112c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0 0 16zM512 496l0 16-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80zm0-96l-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80l0 16zm0-128l0 16-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24zm96 64l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-13.3 10.7-24 24-24z"]},H5={prefix:"fas",iconName:"person-breastfeeding",icon:[448,512,[],"e53a","M224 0a80 80 0 1 1 0 160A80 80 0 1 1 224 0zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.8-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z"]},$b={prefix:"fas",iconName:"right-to-bracket",icon:[512,512,["sign-in-alt"],"f2f6","M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},e7=$b,PM={prefix:"fas",iconName:"venus",icon:[384,512,[9792],"f221","M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9z"]},F_={prefix:"fas",iconName:"passport",icon:[448,512,[],"f5ab","M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8l39.1 0c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5l47.1 0c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8l39.1 0c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8l-39.1 0zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5l-47.1 0c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8l-39.1 0c5.3-31.4 25.8-57.6 53.7-70.8zM352 192A128 128 0 1 0 96 192a128 128 0 1 0 256 0zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l224 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-224 0z"]},ug={prefix:"fas",iconName:"thumbtack-slash",icon:[640,512,["thumb-tack-slash"],"e68f","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L481.4 352c9.8-.4 18.9-5.3 24.6-13.3c6-8.3 7.7-19.1 4.4-28.8l-1-3c-13.8-41.5-42.8-74.8-79.5-94.7L418.5 64 448 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l29.5 0-6.1 79.5L38.8 5.1zM324.9 352L177.1 235.6c-20.9 18.9-37.2 43.3-46.5 71.3l-1 3c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l164.9 0zM288 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96-64 0z"]},Y5=ug,t7={prefix:"fas",iconName:"heart-pulse",icon:[512,512,["heartbeat"],"f21e","M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4l87 0c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31l104.5 0c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240l-132 0c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9L16 240c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1l0 5.8c0 16.9-2.8 33.5-8.3 49.1z"]},OM=t7,i7={prefix:"fas",iconName:"people-carry-box",icon:[640,512,["people-carry"],"f4ce","M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm64 193.7l0 65.1 51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7l0-88.1c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5 0-76.2c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 76.2 10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6l0 88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51 0-65.1-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8l-126.7 0c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm77.9 348.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z"]},X5=i7,Z0={prefix:"fas",iconName:"temperature-high",icon:[512,512,[],"f769","M416 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 128A96 96 0 1 0 416 0a96 96 0 1 0 0 192zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5L96 112zM144 0C82.1 0 32 50.2 32 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L256 112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3L160 112c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 210.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z"]},k_={prefix:"fas",iconName:"microchip",icon:[512,512,[],"f2db","M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm192 32l-192 0 0 192 192 0 0-192z"]},hg={prefix:"fas",iconName:"crown",icon:[576,512,[128081],"f521","M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6l277.2 0c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z"]},s7={prefix:"fas",iconName:"weight-hanging",icon:[512,512,[],"f5cd","M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32L120 128c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512l416 0c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128l-45.5 0z"]},RM={prefix:"fas",iconName:"xmarks-lines",icon:[640,512,[],"e59a","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z"]},K0={prefix:"fas",iconName:"file-prescription",icon:[384,512,[],"f572","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM104 196l72 0c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6l-20 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-64 0-80c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20l-52 0 0 40 52 0z"]},dg={prefix:"fas",iconName:"weight-scale",icon:[512,512,["weight"],"f496","M128 176a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zM391.8 64C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-56.2 0zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z"]},Lf=dg,w3={prefix:"fas",iconName:"user-group",icon:[640,512,[128101,"user-friends"],"f500","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM609.3 512l-137.8 0c5.4-9.4 8.6-20.3 8.6-32l0-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2l61.4 0C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z"]},r7=w3,eu={prefix:"fas",iconName:"arrow-up-a-z",icon:[576,512,["sort-alpha-up"],"f15e","M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-128 0c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176l-40.4 0z"]},If=eu,B3={prefix:"fas",iconName:"chess-knight",icon:[448,512,[9822],"f441","M96 48L82.7 61.3C70.7 73.3 64 89.5 64 106.5l0 132.4c0 10.7 5.3 20.7 14.2 26.6l10.6 7c14.3 9.6 32.7 10.7 48.1 3l3.2-1.6c2.6-1.3 5-2.8 7.3-4.5l49.4-37c6.6-5 15.7-5 22.3 0c10.2 7.7 9.9 23.1-.7 30.3L90.4 350C73.9 361.3 64 380 64 400l320 0 28.9-159c2.1-11.3 3.1-22.8 3.1-34.3l0-14.7C416 86 330 0 224 0L83.8 0C72.9 0 64 8.9 64 19.8c0 7.5 4.2 14.3 10.9 17.7L96 48zm24 68a20 20 0 1 1 40 0 20 20 0 1 1 -40 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512l370.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L384 432 64 432 22.6 473.4z"]},b2={prefix:"fas",iconName:"face-laugh-squint",icon:[512,512,["laugh-squint"],"f59b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Z5=b2,tu={prefix:"fas",iconName:"wheelchair",icon:[512,512,[],"f193","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM120.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C43.1 225.1 0 283.5 0 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C240 440 202.8 464 160 464C98.1 464 48 413.9 48 352c0-47.9 30.1-88.8 72.5-104.8zM259.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4l5.1 0c.4 0 .8 0 1.3 0l94.1 0c6.7 0 12.6 4.1 15 10.4L402 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9l-68.5 0-9.6-48 63.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-76.2 0z"]},S2={prefix:"fas",iconName:"circle-arrow-up",icon:[512,512,["arrow-circle-up"],"f0aa","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM385 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71L280 392c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-214.1-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 103c9.4-9.4 24.6-9.4 33.9 0L385 215z"]},q0=S2,z3={prefix:"fas",iconName:"toggle-on",icon:[576,512,[],"f205","M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192s-86-192-192-192L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},fg={prefix:"fas",iconName:"person-walking",icon:[320,512,[128694,"walking"],"f554","M160 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z"]},pg=fg,K5={prefix:"fas",iconName:"l",icon:[320,512,[108],"4c","M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z"]},F3={prefix:"fas",iconName:"fire",icon:[448,512,[128293],"f06d","M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z"]},n7={prefix:"fas",iconName:"bed-pulse",icon:[640,512,["procedures"],"f487","M483.2 9.6L524 64l92 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-104 0c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112 216 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160l12.7 0 20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160l82.1 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 448l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64s32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32zm-144 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},k3=n7,q5={prefix:"fas",iconName:"shuttle-space",icon:[640,512,["space-shuttle"],"f197","M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96 2 0zM352 128L245.2 63.9C210.4 43 170.6 32 130 32l-2 0 0 96 224 0zM96 128l0-96L80 32C53.5 32 32 53.5 32 80l0 48 8 0c-22.1 0-40 17.9-40 40l0 16L0 328l0 16c0 22.1 17.9 40 40 40l-8 0 0 48c0 26.5 21.5 48 48 48l16 0 0-96 8 0c26.2 0 49.4-12.6 64-32l288 0c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160l-288 0c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6l0 24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4l0-87.1c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z"]},DM=q5,a7={prefix:"fas",iconName:"face-laugh",icon:[512,512,["laugh"],"f599","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},o7=a7,Q5={prefix:"fas",iconName:"folder-open",icon:[576,512,[128194,128449,61717],"f07c","M88.7 223.8L0 375.8 0 96C0 60.7 28.7 32 64 32l117.5 0c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7L416 96c35.3 0 64 28.7 64 64l0 32-336 0c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224l400 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480L32 480c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z"]},l7={prefix:"fas",iconName:"heart-circle-plus",icon:[576,512,[],"e500","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},NM={prefix:"fas",iconName:"code-fork",icon:[448,512,[],"e13b","M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 38.7c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-38.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 38.7c0 53-43 96-96 96l-48 0 0 70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-48 0c-53 0-96-43-96-96l0-38.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},wM={prefix:"fas",iconName:"city",icon:[640,512,[127961],"f64f","M480 48c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 48-64 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72c0-13.3-10.7-24-24-24S64 10.7 64 24l0 72L48 96C21.5 96 0 117.5 0 144l0 96L0 464c0 26.5 21.5 48 48 48l256 0 32 0 96 0 160 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48l-112 0 0-144zm96 320l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 416l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM560 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 176l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 320l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zm304-48l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16z"]},c7={prefix:"fas",iconName:"microphone-lines",icon:[384,512,[127897,"microphone-alt"],"f3c9","M96 96l0 160c0 53 43 96 96 96s96-43 96-96l-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0c0-53-43-96-96-96S96 43 96 96zM320 240l0 16c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24z"]},BM=c7,u7={prefix:"fas",iconName:"pepper-hot",icon:[512,512,[127798],"f816","M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3L360 256c-13.3 0-24-10.7-24-24l0-80c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0 0 80c0 26.5 21.5 48 48 48l76.2 0 23.9 47.8C372.3 443.9 244.3 512 103.2 512l-58.8 0C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z"]},zM={prefix:"fas",iconName:"unlock",icon:[448,512,[128275],"f09c","M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144l0 48-16 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-240 0 0-48z"]},U_={prefix:"fas",iconName:"colon-sign",icon:[384,512,[],"e140","M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.2 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z"]},FM={prefix:"fas",iconName:"headset",icon:[512,512,[],"f590","M256 48C141.1 48 48 141.1 48 256l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40C0 114.6 114.6 0 256 0S512 114.6 512 256l0 144.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24l-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40L464 256c0-114.9-93.1-208-208-208zM144 208l16 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32l-16 0c-35.3 0-64-28.7-64-64l0-48c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64l0 48c0 35.3-28.7 64-64 64l-16 0c-17.7 0-32-14.3-32-32l0-112c0-17.7 14.3-32 32-32l16 0z"]},h7={prefix:"fas",iconName:"store-slash",icon:[640,512,[],"e071","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68 0-17.1 0-131.4c-4 1-8 1.8-12.3 2.3c0 0 0 0-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3l0 100.3L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0L141.6 0c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384l0-133.4c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3L96 384l0 64c0 35.3 28.7 64 64 64l320 0c12.9 0 24.8-3.8 34.9-10.3L365.5 384 160 384z"]},kM={prefix:"fas",iconName:"road-circle-xmark",icon:[640,512,[],"e566","M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z"]},d7={prefix:"fas",iconName:"user-minus",icon:[640,512,[],"f503","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM472 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},j_={prefix:"fas",iconName:"mars-stroke-up",icon:[320,512,[9896,"mars-stroke-v"],"f22a","M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9l-40 0 0 24 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8l0-24-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-24L96 96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352A96 96 0 1 0 64 352a96 96 0 1 0 192 0z"]},f7=j_,p7={prefix:"fas",iconName:"champagne-glasses",icon:[640,512,[129346,"glass-cheers"],"f79f","M155.6 17.3C163 3 179.9-3.6 195 1.9L320 47.5l125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6L556.1 413l41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41l-71.1 25.9L476.8 510c-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-34-130-95.2L320 188.8l-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6 25.2 24.4 19.1 41s-24.4 25.2-41 19.1L92.2 484.1 21.1 458.2c-16.6-6.1-25.2-24.4-19.1-41s24.4-25.2 41-19.1l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8L261.6 157l13.1-57.9L199.6 71.7zm240.9 0L365.4 99.1 378.5 157l89.2-32.5L440.5 71.7z"]},J5=p7,m7={prefix:"fas",iconName:"clipboard",icon:[384,512,[128203],"f328","M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM112 192l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},UM={prefix:"fas",iconName:"house-circle-exclamation",icon:[640,512,[],"e50a","M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},$5={prefix:"fas",iconName:"file-arrow-up",icon:[384,512,["file-upload"],"f574","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-102.1-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31L216 408z"]},g7=$5,mg={prefix:"fas",iconName:"wifi",icon:[640,512,["wifi-3","wifi-strong"],"f1eb","M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},U3=mg,jM=mg,eA={prefix:"fas",iconName:"bath",icon:[512,512,[128705,"bathtub"],"f2cd","M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3zM32 352l0 16c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-16L32 352z"]},tA=eA,V_={prefix:"fas",iconName:"underline",icon:[448,512,[],"f0cd","M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z"]},j3={prefix:"fas",iconName:"user-pen",icon:[640,512,["user-edit"],"f4ff","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l293.1 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1l-91.4 0zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z"]},_7=j3,v7={prefix:"fas",iconName:"signature",icon:[640,512,[],"f5b7","M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.3 0c-.2-2.8-.3-5.6-.3-8.5L64 368l-40 0zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24l-310.1 0c-6.7 16.3-14.2 32.3-22.3 48L616 416z"]},A7={prefix:"fas",iconName:"stroopwafel",icon:[512,512,[],"f551","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3L86.3 199.4c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L256 414.4l33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L414.4 256l33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3L233.4 256l-45.3 45.3L142.9 256zm67.9 67.9L256 278.6l45.3 45.3L256 369.1l-45.3-45.3zM278.6 256l45.3-45.3L369.1 256l-45.3 45.3L278.6 256zm22.6-67.9L256 233.4l-45.3-45.3L256 142.9l45.3 45.3z"]},iA={prefix:"fas",iconName:"bold",icon:[384,512,[],"f032","M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z"]},C7={prefix:"fas",iconName:"anchor-lock",icon:[640,512,[],"e4ad","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3l0-33.3c-5.2 .9-10.5 1.3-16 1.3l-48 0 0-208 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM528 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},G_={prefix:"fas",iconName:"building-ngo",icon:[384,512,[],"e4d7","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM168 64l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 64 16 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 24c0 13.3-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24l0-88c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48l0 32c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-32zM61.3 71.1l34.7 52L96 80c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8 64 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z"]},x7={prefix:"fas",iconName:"manat-sign",icon:[384,512,[],"e1d5","M192 32c-17.7 0-32 14.3-32 32l0 34.7C69.2 113.9 0 192.9 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-59.6 40.8-109.8 96-124l0 284c0 17.7 14.3 32 32 32s32-14.3 32-32l0-284c55.2 14.2 96 64.3 96 124l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-95.1-69.2-174.1-160-189.3L224 64c0-17.7-14.3-32-32-32z"]},V3={prefix:"fas",iconName:"not-equal",icon:[448,512,[],"f53e","M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144l62.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-105.5 0-64 96L400 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-212.2 0-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368 48 368c-17.7 0-32-14.3-32-32s14.3-32 32-32l105.5 0 64-96L48 208c-17.7 0-32-14.3-32-32s14.3-32 32-32l212.2 0 65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z"]},sA={prefix:"fas",iconName:"border-top-left",icon:[448,512,["border-style"],"f853","M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm-96 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm0 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},b7=sA,rA={prefix:"fas",iconName:"map-location-dot",icon:[576,512,["map-marked-alt"],"f5a0","M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152l0 270.8c0 9.8-6 18.6-15.1 22.3L416 503l0-302.6zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6l0 251.4L32.9 502.7C17.1 509 0 497.4 0 480.4L0 209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77l0 249.3L192 449.4 192 255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},nA=rA,G3={prefix:"fas",iconName:"jedi",icon:[576,512,[],"f669","M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z"]},S7={prefix:"fas",iconName:"square-poll-vertical",icon:[448,512,["poll"],"f681","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 192c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192zM320 288c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z"]},y7=S7,VM={prefix:"fas",iconName:"mug-hot",icon:[512,512,[9749],"f7b6","M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32L0 416c0 53 43 96 96 96l192 0c53 0 96-43 96-96l16 0c61.9 0 112-50.1 112-112s-50.1-112-112-112l-48 0L32 192zm352 64l16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0 0-96zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z"]},M7={prefix:"fas",iconName:"car-battery",icon:[512,512,["battery-car"],"f5df","M80 96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-32zM80 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16z"]},E7=M7,gg={prefix:"fas",iconName:"gift",icon:[512,512,[127873],"f06b","M190.5 68.8L225.3 128l-1.3 0-72 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40l-72 0-1.3 0 34.8-59.2C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40zM32 288l0 176c0 26.5 21.5 48 48 48l144 0 0-224L32 288zM288 512l144 0c26.5 0 48-21.5 48-48l0-176-192 0 0 224z"]},W3={prefix:"fas",iconName:"dice-two",icon:[448,512,[9857],"f528","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},T7={prefix:"fas",iconName:"chess-queen",icon:[512,512,[9819],"f445","M256 0a56 56 0 1 1 0 112A56 56 0 1 1 256 0zM134.1 143.8c3.3-13 15-23.8 30.2-23.8c12.3 0 22.6 7.2 27.7 17c12 23.2 36.2 39 64 39s52-15.8 64-39c5.1-9.8 15.4-17 27.7-17c15.3 0 27 10.8 30.2 23.8c7 27.8 32.2 48.3 62.1 48.3c10.8 0 21-2.7 29.8-7.4c8.4-4.4 18.9-4.5 27.6 .9c13 8 17.1 25 9.2 38L399.7 400 384 400l-40.4 0-175.1 0L128 400l-15.7 0L5.4 223.6c-7.9-13-3.8-30 9.2-38c8.7-5.3 19.2-5.3 27.6-.9c8.9 4.7 19 7.4 29.8 7.4c29.9 0 55.1-20.5 62.1-48.3zM256 224s0 0 0 0s0 0 0 0s0 0 0 0zM112 432l288 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L86.6 512C74.1 512 64 501.9 64 489.4c0-6 2.4-11.8 6.6-16L112 432z"]},GM={prefix:"fas",iconName:"glasses",icon:[576,512,[],"f530","M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1c0 0 .1 0 .1 0c0 0 0 0 0 0s0 0 0 0L247.9 288s0 0 0 0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7l40.6 0c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7s0 0 0 0c-6.3-12.7-6.3-12.7-6.3-12.7s0 0 0 0s0 0 0 0c0 0 .1 0 .1 0l.2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7l0 6.7 0 41.3 0 16c0 61.9-50.1 112-112 112l-44.3 0c-59.4 0-108.5-46.4-111.8-105.8L306.6 352l-37.2 0-1.2 22.2C264.9 433.6 215.8 480 156.3 480L112 480C50.1 480 0 429.9 0 368l0-16 0-41.3L0 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4L64 368c0 26.5 21.5 48 48 48l44.3 0c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368l0-42.6c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3l44.3 0c26.5 0 48-21.5 48-48z"]},aA={prefix:"fas",iconName:"chess-board",icon:[448,512,[],"f43c","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z"]},Pf={prefix:"fas",iconName:"building-circle-check",icon:[640,512,[],"e4d2","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},H3={prefix:"fas",iconName:"person-chalkboard",icon:[640,512,[],"e53d","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 56 0 64 0 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-64 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 80-76.9 0-65.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 480c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},oA={prefix:"fas",iconName:"mars-stroke-right",icon:[640,512,[9897,"mars-stroke-h"],"f22b","M208 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152l33.6 0 0-56c0-13.3 10.7-24 24-24s24 10.7 24 24l0 56 32 0 0-56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-56-32 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56-33.6 0z"]},WM=oA,W_={prefix:"fas",iconName:"hand-back-fist",icon:[448,512,["hand-rock"],"f255","M144 0C117.5 0 96 21.5 96 48l0 48 0 28.5L96 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-26.7-9 7.5C40.4 169 32 187 32 206L32 244c0 38 16.9 74 46.1 98.3L128 384l0 96c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-105.3c46.9-19 80-65 80-118.7l0-80 0-16 0-16c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z"]},_g=W_,lA={prefix:"fas",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},L7=lA,HM={prefix:"fas",iconName:"cloud-showers-water",icon:[576,512,[],"e4e4","M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64l1.6 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},cA={prefix:"fas",iconName:"chart-bar",icon:[512,512,["bar-chart"],"f080","M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},uA=cA,I7={prefix:"fas",iconName:"hands-bubbles",icon:[576,512,["hands-wash"],"e05e","M416 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM32 160l.1 72.6c.1 52.2 24 101 64 133.1c-.1-1.9-.1-3.8-.1-5.7l0-8c0-71.8 37-138.6 97.9-176.7l60.2-37.6c8.6-5.4 17.9-8.4 27.3-9.4l45.9-79.5c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-78 135.1c-3.3 5.7-10.7 7.7-16.4 4.4s-7.7-10.7-4.4-16.4l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S214 5 207.4 16.5l-68 117.8s0 0 0 0s0 0 0 0l-43.3 75L96 160c0-17.7-14.4-32-32-32s-32 14.4-32 32zM332.1 88.5L307.5 131c13.9 4.5 26.4 13.7 34.7 27c.9 1.5 1.8 2.9 2.5 4.4l28.9-50c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-26.8 46.4c-.6 6-2.1 11.8-4.3 17.4l4.7 0 13.3 0s0 0 0 0l31.8 0 23-39.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM315.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C159.3 234.7 128 291.2 128 352l0 8c0 8.9 .8 17.6 2.2 26.1c35.4 8.2 61.8 40 61.8 77.9c0 6.3-.7 12.5-2.1 18.4C215.1 501 246.3 512 280 512l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0s0 0 0 0s0 0 0 0l-93.2 0L305 219.1c15-9.4 19.5-29.1 10.2-44.1z"]},YM=I7,XM={prefix:"fas",iconName:"less-than-equal",icon:[448,512,[],"f537","M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z"]},ZM={prefix:"fas",iconName:"train",icon:[448,512,[128646],"f238","M96 0C43 0 0 43 0 96L0 352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512l39.7 0c8.5 0 16.6-3.4 22.6-9.4L160 448l128 0 54.6 54.6c6 6 14.1 9.4 22.6 9.4l39.7 0c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9l0-256c0-53-43-96-96-96L96 0zM64 96c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 224c-17.7 0-32-14.3-32-32l0-96zM224 288a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},hA={prefix:"fas",iconName:"eye-low-vision",icon:[640,512,["low-vision"],"f2a8","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223 149.5c48.6-44.3 123-50.8 179.3-11.7c60.8 42.4 78.9 123.2 44.2 186.9L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3L223 149.5zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z"]},Hh=hA,KM={prefix:"fas",iconName:"crow",icon:[640,512,[],"f520","M456 0c-48.6 0-88 39.4-88 88l0 29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384l133.1 0 46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384l40.9 0c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192l0-64 0-8 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32l-50.1 0C507.7 12.5 483.3 0 456 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},vg={prefix:"fas",iconName:"sailboat",icon:[576,512,[],"e445","M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6l-224 0c-8.8 0-16-7.2-16-16l0-320zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5l0 224c0 8.8-7.2 16-16 16L80 352c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384l533.8 0c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512L133 512C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z"]},P7={prefix:"fas",iconName:"window-restore",icon:[512,512,[],"f2d2","M432 64L208 64c-8.8 0-16 7.2-16 16l0 16-64 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-64 16 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zm64 32c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 192c-17.7 0-32 14.3-32 32z"]},O7={prefix:"fas",iconName:"square-plus",icon:[448,512,[61846,"plus-square"],"f0fe","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},ah=O7,qM={prefix:"fas",iconName:"torii-gate",icon:[512,512,[9961],"f6a1","M0 80c0 26.5 21.5 48 48 48l16 0 0 64 64 0 0-64 96 0 0 64 64 0 0-64 96 0 0 64 64 0 0-64 16 0c26.5 0 48-21.5 48-48l0-66.6C512 6 506 0 498.6 0c-1.7 0-3.4 .3-5 1l-49 19.6C425.7 28.1 405.5 32 385.2 32L126.8 32c-20.4 0-40.5-3.9-59.4-11.4L18.4 1c-1.6-.6-3.3-1-5-1C6 0 0 6 0 13.4L0 80zM64 288l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0z"]},Ag={prefix:"fas",iconName:"frog",icon:[576,512,[],"f52e","M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416l90.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},R7={prefix:"fas",iconName:"bucket",icon:[448,512,[],"e4cf","M96 152l0 8-48 0 0-8C48 68.1 116.1 0 200 0l48 0c83.9 0 152 68.1 152 152l0 8-48 0 0-8c0-57.4-46.6-104-104-104l-48 0C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-5.1 0L388.5 469c-2.6 24.4-23.2 43-47.7 43l-233.6 0c-24.6 0-45.2-18.5-47.7-43L37.1 256 32 256c-17.7 0-32-14.3-32-32z"]},D7={prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l96 0 32 0 208 0c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},dA={prefix:"fas",iconName:"microphone",icon:[384,512,[],"f130","M192 0C139 0 96 43 96 96l0 160c0 53 43 96 96 96s96-43 96-96l0-160c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40z"]},QM={prefix:"fas",iconName:"cow",icon:[640,512,[128004],"f6c8","M96 224l0 32 0 160c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L272 64l-16 0-64 0-48 0C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4l0-6.4 0-32 0-40c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z"]},JM={prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]},fA={prefix:"fas",iconName:"screwdriver",icon:[512,512,[129691],"f54a","M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19l0 54.1-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192l54.1 0c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z"]},H_={prefix:"fas",iconName:"folder-closed",icon:[512,512,[],"e185","M448 480L64 480c-35.3 0-64-28.7-64-64L0 192l512 0 0 224c0 35.3-28.7 64-64 64zm64-320L0 160 0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64z"]},N7={prefix:"fas",iconName:"house-tsunami",icon:[576,512,[],"e515","M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1c0 0 0 0 0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6l0 121c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448z"]},Y_={prefix:"fas",iconName:"square-nfi",icon:[448,512,[],"e576","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm75.7 64.6C68.8 162.5 64 168.8 64 176l0 160c0 8.8 7.2 16 16 16s16-7.2 16-16l0-102.2 66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 102.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176l0 64 0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-32 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 8.8 7.2 16 16 16s16-7.2 16-16l0-160z"]},$M={prefix:"fas",iconName:"arrow-up-from-ground-water",icon:[576,512,[],"e4b5","M288 352c17.7 0 32-14.3 32-32l0-210.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3 256 320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192L48 192c-26.5 0-48 21.5-48 48L0 425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3L192 192zm384 48c0-26.5-21.5-48-48-48l-144 0 0 224.5s0 0 0 0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9l0-185z"]},pA={prefix:"fas",iconName:"martini-glass",icon:[512,512,[127864,"glass-martini-alt"],"f57b","M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3 224 448l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-178.7L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0L32 0zM173.3 128l-64-64 293.5 0-64 64-165.5 0z"]},mA=pA,w7={prefix:"fas",iconName:"square-binary",icon:[448,512,[],"e69b","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm144 4c-24.3 0-44 19.7-44 44l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0zm-4 44c0-2.2 1.8-4 4-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48zm140-44c-11 0-20 9-20 20c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0zM132 296c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20zm96 24l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0c-24.3 0-44 19.7-44 44zm44-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48c0-2.2 1.8-4 4-4z"]},y2={prefix:"fas",iconName:"rotate-left",icon:[512,512,["rotate-back","rotate-backward","undo-alt"],"f2ea","M48.5 224L40 224c-13.3 0-24-10.7-24-24L16 72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8L48.5 224z"]},gA=y2,Cg=y2,_A=y2,B7={prefix:"fas",iconName:"table-columns",icon:[512,512,["columns"],"f0db","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 160 0 0-256L64 160zm384 0l-160 0 0 256 160 0 0-256z"]},Q0=B7,X_={prefix:"fas",iconName:"lemon",icon:[448,512,[127819],"f094","M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z"]},xg={prefix:"fas",iconName:"head-side-mask",icon:[576,512,[],"e063","M32 224.2c0-22.2 3.2-43.6 9.2-63.9L262.2 321c-4 9.5-6.2 20-6.2 31l0 160-128 0c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C48.6 322.4 32 274.1 32 224.2zm248.3 70.4L53 129.3C88.7 53 166.2 0 256 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c5.4 6.7 8.6 14.8 9.4 23.2L336 272c-21.7 0-41.3 8.6-55.7 22.6zM336 304l198 0s0 0 0 0l10 0-19.7 64L368 368c-8.8 0-16 7.2-16 16s7.2 16 16 16l146.5 0-9.8 32L368 432c-8.8 0-16 7.2-16 16s7.2 16 16 16l126.8 0-.9 2.8c-8.3 26.9-33.1 45.2-61.2 45.2L288 512l0-160c0-14 6-26.7 15.6-35.4c0 0 0 0 0 0c8.5-7.8 19.9-12.6 32.4-12.6zm48-80a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Z_={prefix:"fas",iconName:"handshake",icon:[640,512,[],"f2b5","M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8 512 128l-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48 0 224 28.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM16 128c-8.8 0-16 7.2-16 16L0 352c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-224-80 0zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128l0 224c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-208c0-8.8-7.2-16-16-16l-80 0zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},eE={prefix:"fas",iconName:"gem",icon:[512,512,[128142],"f3a5","M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z"]},Y3={prefix:"fas",iconName:"dolly",icon:[576,512,["dolly-box"],"f472","M0 32C0 14.3 14.3 0 32 0l72.9 0c27.5 0 52 17.6 60.7 43.8L257.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L352 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L104.9 64 32 64C14.3 64 0 49.7 0 32zM244.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L311 79.4l19.8 60.9 60.9-19.8L371.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L334.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L244.8 134.5z"]},z7=Y3,vA={prefix:"fas",iconName:"smoking",icon:[640,512,[128684],"f48d","M448 32l0 11c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2l0 11c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-11c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43l0-11c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256l0-11c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2l0-11c0-17.7 14.3-32 32-32s32 14.3 32 32l0 11c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1l0 11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64l352 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm224 0l0 32 160 0 0-32-160 0zm288-64c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32z"]},F7={prefix:"fas",iconName:"minimize",icon:[512,512,["compress-arrows-alt"],"f78c","M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 144c0 13.3-10.7 24-24 24L56 224z"]},k7=F7,X3={prefix:"fas",iconName:"monument",icon:[384,512,[],"f5a6","M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322L55.9 416 96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM32 448l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},Ia={prefix:"fas",iconName:"snowplow",icon:[640,512,[],"f7d2","M298.9 64l68.6 160L256 224l-64-64 0-96 106.9 0zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0L176 0c-26.5 0-48 21.5-48 48l0 112-32 0c-17.7 0-32 14.3-32 32l0 106.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112l256 0c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48l42.8 0 0 50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7l0-82.7 0-84.8L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40l0 52.8-64 0 0-31.3c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l256 0zM144 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm216 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-56-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM200 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},K_={prefix:"fas",iconName:"angles-right",icon:[512,512,[187,"angle-double-right"],"f101","M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"]},U7=K_,bg={prefix:"fas",iconName:"cannabis",icon:[512,512,[],"f55f","M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2l0 70.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z"]},AA={prefix:"fas",iconName:"circle-play",icon:[512,512,[61469,"play-circle"],"f144","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z"]},xa=AA,CA={prefix:"fas",iconName:"tablets",icon:[640,512,[],"f490","M614.3 247c-5.2 7.9-16.2 8.5-22.9 1.8L391.2 48.6c-6.7-6.7-6.2-17.8 1.8-22.9C418.1 9.4 447.9 0 480 0c88.4 0 160 71.6 160 160c0 32.1-9.4 61.9-25.7 87zM567 294.3c-25 16.3-54.9 25.7-87 25.7c-88.4 0-160-71.6-160-160c0-32.1 9.4-61.9 25.7-87c5.2-7.9 16.2-8.5 22.9-1.8L568.8 271.4c6.7 6.7 6.2 17.8-1.8 22.9zM301.5 368c9.5 0 16.9 8.2 15 17.5C301.1 457.8 236.9 512 160 512S18.9 457.8 3.5 385.5c-2-9.3 5.5-17.5 15-17.5l283.1 0zm0-32L18.5 336c-9.5 0-16.9-8.2-15-17.5C18.9 246.2 83.1 192 160 192s141.1 54.2 156.5 126.5c2 9.3-5.5 17.5-15 17.5z"]},J0={prefix:"fas",iconName:"ethernet",icon:[512,512,[],"f796","M0 224L0 416c0 17.7 14.3 32 32 32l64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z"]},q_={prefix:"fas",iconName:"euro-sign",icon:[320,512,[8364,"eur","euro"],"f153","M48.1 240c-.1 2.7-.1 5.3-.1 8l0 16c0 2.7 0 5.3 .1 8L32 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l28.3 0C89.9 419.9 170 480 264 480l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-24 0c-57.9 0-108.2-32.4-133.9-80L256 336c17.7 0 32-14.3 32-32s-14.3-32-32-32l-143.8 0c-.1-2.6-.2-5.3-.2-8l0-16c0-2.7 .1-5.4 .2-8L256 240c17.7 0 32-14.3 32-32s-14.3-32-32-32l-125.9 0c25.7-47.6 76-80 133.9-80l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-24 0C170 32 89.9 92.1 60.3 176L32 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l16.1 0z"]},Z3=q_,$0=q_,xA={prefix:"fas",iconName:"chair",icon:[448,512,[129681],"f6c0","M248 48l0 208 48 0 0-197.3c23.9 13.8 40 39.7 40 69.3l0 128 48 0 0-128C384 57.3 326.7 0 256 0L192 0C121.3 0 64 57.3 64 128l0 128 48 0 0-128c0-29.6 16.1-55.5 40-69.3L152 256l48 0 0-208 48 0zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 256 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288L48 288z"]},ep={prefix:"fas",iconName:"circle-check",icon:[512,512,[61533,"check-circle"],"f058","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},tE=ep,K3={prefix:"fas",iconName:"circle-stop",icon:[512,512,[62094,"stop-circle"],"f28d","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z"]},al=K3,q3={prefix:"fas",iconName:"compass-drafting",icon:[512,512,["drafting-compass"],"f568","M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192c0 0 0 0 0 0s0 0 0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Sg=q3,yg={prefix:"fas",iconName:"plate-wheat",icon:[512,512,[],"e55a","M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z"]},Q_={prefix:"fas",iconName:"icicles",icon:[512,512,[],"f7ad","M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z"]},Ho={prefix:"fas",iconName:"person-shelter",icon:[512,512,[],"e54f","M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.4L256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 280l0-88 16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24z"]},Pd={prefix:"fas",iconName:"neuter",icon:[384,512,[9906],"f22c","M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1L160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-130.9z"]},tp={prefix:"fas",iconName:"id-badge",icon:[384,512,[],"f2c1","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM144 64l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},Od={prefix:"fas",iconName:"marker",icon:[512,512,[],"f5a1","M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z"]},Mg={prefix:"fas",iconName:"face-laugh-beam",icon:[512,512,[128513,"laugh-beam"],"f59a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM217.6 212.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"]},Rd=Mg,x1={prefix:"fas",iconName:"helicopter-symbol",icon:[512,512,[],"e502","M445.3 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.3 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.1 368.4 66.7 288L2 288zm0-64l64.7 0C80.1 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z"]},ip={prefix:"fas",iconName:"universal-access",icon:[512,512,[],"f29a","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},oh={prefix:"fas",iconName:"circle-chevron-up",icon:[512,512,["chevron-circle-up"],"f139","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z"]},J_=oh,Of={prefix:"fas",iconName:"lari-sign",icon:[384,512,[],"e1c8","M144 32c17.7 0 32 14.3 32 32l0 32.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7L208 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3l0 67.9c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-95c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1l0 95c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-67.9C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6L112 64c0-17.7 14.3-32 32-32z"]},Eg={prefix:"fas",iconName:"volcano",icon:[512,512,[127755],"f770","M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-58.9-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z"]},Rf={prefix:"fas",iconName:"person-walking-dashed-line-arrow-right",icon:[640,512,[],"e553","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16zM392 320c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48z"]},Df={prefix:"fas",iconName:"sterling-sign",icon:[320,512,[163,"gbp","pound-sign"],"f154","M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4L48 224l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 44.5c0 17.4-4.7 34.5-13.7 49.4L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L88.5 416l.7-1.1C104.1 390 112 361.5 112 332.5l0-44.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-63.6z"]},bA=Df,$_=Df,SA={prefix:"fas",iconName:"viruses",icon:[640,512,[],"e076","M192 0c13.3 0 24 10.7 24 24l0 13.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168l13.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-13.5 0c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5l0 13.5c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-13.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216L24 216c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.5 0c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5L168 24c0-13.3 10.7-24 24-24zm48 224a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48-64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Tg={prefix:"fas",iconName:"square-person-confined",icon:[448,512,[],"e577","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7l0-58.7z"]},Q3={prefix:"fas",iconName:"user-tie",icon:[448,512,[],"f508","M96 128a128 128 0 1 0 256 0A128 128 0 1 0 96 128zm94.5 200.2l18.6 31L175.8 483.1l-36-146.9c-2-8.1-9.8-13.4-17.9-11.3C51.9 342.4 0 405.8 0 481.3c0 17 13.8 30.7 30.7 30.7l131.7 0c0 0 0 0 .1 0l5.5 0 112 0 5.5 0c0 0 0 0 .1 0l131.7 0c17 0 30.7-13.8 30.7-30.7c0-75.5-51.9-138.9-121.9-156.4c-8.1-2-15.9 3.3-17.9 11.3l-36 146.9L238.9 359.2l18.6-31c6.4-10.7-1.3-24.2-13.7-24.2L224 304l-19.7 0c-12.4 0-20.1 13.6-13.7 24.2z"]},j7={prefix:"fas",iconName:"arrow-down-long",icon:[384,512,["long-arrow-down"],"f175","M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z"]},iE=j7,yA={prefix:"fas",iconName:"tent-arrow-down-to-line",icon:[640,512,[],"e57e","M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l127.6 0 .7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448l80 0L402.7 325.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9L384 448z"]},sE={prefix:"fas",iconName:"certificate",icon:[512,512,[],"f0a3","M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z"]},J3={prefix:"fas",iconName:"reply-all",icon:[576,512,["mail-reply-all"],"f122","M209.4 39.5c-9.1-9.6-24.3-10-33.9-.9L33.8 173.2c-19.9 18.9-19.9 50.7 0 69.6L175.5 377.4c9.6 9.1 24.8 8.7 33.9-.9s8.7-24.8-.9-33.9L66.8 208 208.5 73.4c9.6-9.1 10-24.3 .9-33.9zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2l0-64 32 0c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176l-48 0 0-64z"]},rE=J3,nE={prefix:"fas",iconName:"suitcase",icon:[512,512,[129523],"f0f2","M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 0 32 0 352-256 0 0-352 0-32zM64 96l32 0 0 384-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64zM448 480l-32 0 0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64z"]},MA={prefix:"fas",iconName:"person-skating",icon:[448,512,["skating"],"f7c5","M352 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM128 128c0-17.7 14.3-32 32-32l159.4 0c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9l0 73.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17L160 160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L272 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z"]},aE=MA,EA={prefix:"fas",iconName:"filter-circle-dollar",icon:[576,512,["funnel-dollar"],"f662","M3.9 22.9C10.5 8.9 24.5 0 40 0L472 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm120.8-32.6c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7l0-9.4c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6c0 0 0 0 0 0s0 0 0 0c7 2.3 15.1 4.8 23.7 6.6l0 11.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-10.8c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5c0 0 0 0 0-.1c-.1-1.9 .3-2.9 .8-3.6z"]},V7=EA,TA={prefix:"fas",iconName:"camera-retro",icon:[512,512,[128247],"f083","M220.6 121.2L271.1 96 448 96l0 96-114.8 0c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24L64 192l0-64 128 0c9.9 0 19.7-2.3 28.6-6.8zM0 128L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L271.1 32c-9.9 0-19.7 2.3-28.6 6.8L192 64l-32 0 0-16c0-8.8-7.2-16-16-16L80 32c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM168 304a88 88 0 1 1 176 0 88 88 0 1 1 -176 0z"]},LA={prefix:"fas",iconName:"circle-arrow-down",icon:[512,512,["arrow-circle-down"],"f0ab","M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM127 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 214.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 409c-9.4 9.4-24.6 9.4-33.9 0L127 297z"]},G7=LA,IA={prefix:"fas",iconName:"file-import",icon:[512,512,["arrow-right-to-file"],"f56f","M128 64c0-35.3 28.7-64 64-64L352 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-112 174.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L128 288l0-224zm0 224l0 48L24 336c-13.3 0-24-10.7-24-24s10.7-24 24-24l104 0zM512 128l-128 0L384 0 512 128z"]},W7=IA,sp={prefix:"fas",iconName:"square-arrow-up-right",icon:[448,512,["external-link-square"],"f14c","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l94.1 0L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135L288 328c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24l-152 0z"]},$3=sp,H7={prefix:"fas",iconName:"box-open",icon:[640,512,[],"f49e","M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6l0 167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5l0-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128l2.2 0z"]},em={prefix:"fas",iconName:"scroll",icon:[576,512,[128220],"f70e","M0 80l0 48c0 17.7 14.3 32 32 32l16 0 48 0 0-80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48l0 304c0 35.3 28.7 64 64 64s64-28.7 64-64l0-5.3c0-32.4 26.3-58.7 58.7-58.7L480 320l0-192c0-53-43-96-96-96L112 32zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16l-245.3 0c-14.7 0-26.7 11.9-26.7 26.7l0 5.3c0 53-43 96-96 96l176 0 96 0z"]},oE={prefix:"fas",iconName:"spa",icon:[576,512,[],"f5bb","M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192l9.9 0c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480L288 480l-20.1 0C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192l9.9 0c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z"]},Lg={prefix:"fas",iconName:"location-pin-lock",icon:[512,512,[],"e51f","M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3l0-94.8c0-23.7 12.9-44.4 32-55.4l0-24.6c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},tm={prefix:"fas",iconName:"pause",icon:[320,512,[9208],"f04c","M48 64C21.5 64 0 85.5 0 112L0 400c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48L48 64zm192 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-32 0z"]},lE={prefix:"fas",iconName:"hill-avalanche",icon:[576,512,[],"e507","M439.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C401.2 261.3 416 236.4 416 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C216.3 46.6 197.9 32 176 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L439.7 401.9zM480 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87z"]},Ig={prefix:"fas",iconName:"temperature-empty",icon:[320,512,["temperature-0","thermometer-0","thermometer-empty"],"f2cb","M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L112 112zM160 0C98.1 0 48 50.2 48 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L272 112C272 50.2 221.9 0 160 0zm0 416a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},e8=Ig,im=Ig,PA=Ig,OA={prefix:"fas",iconName:"bomb",icon:[512,512,[128163],"f1e2","M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104l0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8c0-75.1 60.9-136 136-136l8 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-8 0z"]},RA={prefix:"fas",iconName:"registered",icon:[512,512,[174],"f25d","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152c0-13.3 10.7-24 24-24l88 0c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288 208 288l0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-96 0-112zm48 88l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 64z"]},sm={prefix:"fas",iconName:"address-card",icon:[576,512,[62140,"contact-card","vcard"],"f2bb","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-32l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},rp=sm,t8=sm,Pg={prefix:"fas",iconName:"scale-unbalanced-flip",icon:[640,512,["balance-scale-right"],"f516","M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2L352 480c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.4 288L128 163.8 55.6 288l144.9 0zM128 384C65.1 384 12.8 350 2 305.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C243.2 350 190.9 384 128 384zm382.8-92.2L438.4 416l144.9 0L510.8 291.8zm126 141.3C626 478 573.7 512 510.8 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z"]},Og=Pg,DA={prefix:"fas",iconName:"subscript",icon:[512,512,[],"f12c","M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z"]},NA={prefix:"fas",iconName:"diamond-turn-right",icon:[512,512,["directions"],"f5eb","M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8l0 56-64 0c-35.3 0-64 28.7-64 64l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-8.8 7.2-16 16-16l64 0 0 56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z"]},Y7=NA,wA={prefix:"fas",iconName:"burst",icon:[512,512,[],"e4dc","M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z"]},BA={prefix:"fas",iconName:"house-laptop",icon:[640,512,["laptop-house"],"e066","M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5l-144 0c-19.1 0-36.3 8.4-48 21.7l0-37.7c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0 0 128-160 0c-26.5 0-48-21.5-48-48l0-112-32 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304l0 144 192 0 0-144-192 0zm-48-16c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32l0 160 32 0c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48l-48 0-192 0-48 0c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16l32 0 0-160z"]},cE=BA,i8={prefix:"fas",iconName:"face-tired",icon:[512,512,[128555,"tired"],"f5c8","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},y9=i8,uE={prefix:"fas",iconName:"money-bills",icon:[640,512,[],"e1f3","M96 96l0 224c0 35.3 28.7 64 64 64l416 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64l-64 0 0-64zM224 96c0 35.3-28.7 64-64 64l0-64 64 0zM576 256l0 64-64 0c0-35.3 28.7-64 64-64zM512 96l64 0 0 64c-35.3 0-64-28.7-64-64zM288 208a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 360c0 66.3 53.7 120 120 120l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-400 0c-39.8 0-72-32.2-72-72l0-240z"]},Rg={prefix:"fas",iconName:"smog",icon:[640,512,[],"f75f","M32 144c0 79.5 64.5 144 144 144l123.3 0c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32l27.3 0c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368l-336 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0L24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24L96 368c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0c13.3 0 24-10.7 24-24z"]},hE={prefix:"fas",iconName:"crutch",icon:[512,512,[],"f7f7","M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z"]},s8={prefix:"fas",iconName:"font-awesome",icon:[512,512,[62501,62694,"font-awesome-flag","font-awesome-logo-full"],"f2b4","M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 352 0 64 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96z"]},dE=s8,zA=s8,Dg={prefix:"fas",iconName:"cloud-arrow-up",icon:[640,512,[62338,"cloud-upload","cloud-upload-alt"],"f0ee","M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128l-368 0zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L296 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z"]},fE=Dg,FA=Dg,X7={prefix:"fas",iconName:"palette",icon:[512,512,[127912],"f53f","M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},kA={prefix:"fas",iconName:"arrows-turn-right",icon:[448,512,[],"e4c0","M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 160 128 160c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32C0 153.3 57.3 96 128 96l210.7 0L297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-53 43-96 96-96l146.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z"]},Z7={prefix:"fas",iconName:"vest",icon:[448,512,[],"e085","M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2L224 464c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6l0-17.5 0-73.7 0-6.3c0-26.5-21.5-48-48-48l-4.5 0c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0L112 0C85.5 0 64 21.5 64 48l0 6.3L64 128l0 17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l128 0c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464l0-168.2c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z"]},pE={prefix:"fas",iconName:"ferry",icon:[576,512,[],"e4ea","M224 0L352 0c17.7 0 32 14.3 32 32l75.1 0c20.6 0 31.6 24.3 18.1 39.8L456 96 120 96 98.8 71.8C85.3 56.3 96.3 32 116.9 32L192 32c0-17.7 14.3-32 32-32zM96 128l384 0c17.7 0 32 14.3 32 32l0 123.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9l-16.5 0c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9l-16.6 0c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5L64 160c0-17.7 14.3-32 32-32zm32 64l0 96 320 0 0-96-320 0zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},K7={prefix:"fas",iconName:"arrows-down-to-people",icon:[640,512,[],"e4b9","M144 0c-13.3 0-24 10.7-24 24l0 118.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23L168 24c0-13.3-10.7-24-24-24zM360 200a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM184 296a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm312 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5l0 54.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-54.5 26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5l0 38.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5 88 480c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23L520 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z"]},UA={prefix:"fas",iconName:"seedling",icon:[512,512,[127793,"sprout"],"f4d8","M512 32c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 46.3 364 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 32 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z"]},mE=UA,q7={prefix:"fas",iconName:"left-right",icon:[512,512,[8596,"arrows-alt-h"],"f337","M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z"]},gE=q7,_E={prefix:"fas",iconName:"boxes-packing",icon:[640,512,[],"e4c7","M256 48c0-26.5 21.5-48 48-48L592 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-210.7 0c1.8-5 2.7-10.4 2.7-16l0-242.7c18.6-6.6 32-24.4 32-45.3l0-32c0-26.5-21.5-48-48-48l-112 0 0-80zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6 480 432c0 8.8 7.2 16 16 16s16-7.2 16-16l0-121.4 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16L16 224c-8.8 0-16-7.2-16-16l0-32zm352 80l0 224c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-224 320 0zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0z"]},r8={prefix:"fas",iconName:"circle-arrow-left",icon:[512,512,["arrow-circle-left"],"f0a8","M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM215 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L392 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-214.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L103 273c-9.4-9.4-9.4-24.6 0-33.9L215 127z"]},jA=r8,vE={prefix:"fas",iconName:"group-arrows-rotate",icon:[512,512,[],"e4f6","M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4l0-60.5c0-5.7-4.7-10.4-10.4-10.4l-60.5 0c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4l0 60.5c0 5.7 4.7 10.4 10.4 10.4l60.5 0c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z"]},Q7={prefix:"fas",iconName:"bowl-food",icon:[512,512,[],"e4c6","M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32L8.6 224C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z"]},AE={prefix:"fas",iconName:"candy-cane",icon:[512,512,[],"f786","M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23l0 5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8l0-5.6C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z"]},n8={prefix:"fas",iconName:"arrow-down-wide-short",icon:[576,512,["sort-amount-asc","sort-amount-down"],"f160","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z"]},a8=n8,Ng=n8,VA={prefix:"fas",iconName:"cloud-bolt",icon:[512,512,[127785,"thunderstorm"],"f76c","M0 224c0 53 43 96 96 96l47.2 0L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320l18.3 0 64 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7l70.1 0L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7l-70.1 0 52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z"]},CE=VA,J7={prefix:"fas",iconName:"text-slash",icon:[640,512,["remove-format"],"f87d","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96 503 96 497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32L376.1 32l-.3 0L204.5 32c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96l116.7 0L301.3 210.8l-94.5-74.1zM243.3 416L192 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 17.6-62.1L272.9 311 243.3 416z"]},GA=J7,rm={prefix:"fas",iconName:"face-smile-wink",icon:[512,512,[128521,"smile-wink"],"f4da","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z"]},$7=rm,WA={prefix:"fas",iconName:"file-word",icon:[384,512,[],"f1c2","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z"]},xE={prefix:"fas",iconName:"file-powerpoint",icon:[384,512,[],"f1c4","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM136 240l68 0c42 0 76 34 76 76s-34 76-76 76l-44 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56 0-104c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28l-44 0 0 56 44 0z"]},eS={prefix:"fas",iconName:"arrows-left-right",icon:[512,512,["arrows-h"],"f07e","M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"]},tS=eS,iS={prefix:"fas",iconName:"house-lock",icon:[640,512,[],"e510","M384 480c0 11.7 3.1 22.6 8.6 32l-.6 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272l0 24.6c-19.1 11.1-32 31.7-32 55.4l0 128zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"]},HA={prefix:"fas",iconName:"cloud-arrow-down",icon:[640,512,[62337,"cloud-download","cloud-download-alt"],"f0ed","M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128l-368 0zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39L344 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 134.1-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z"]},sS=HA,bE=HA,SE={prefix:"fas",iconName:"children",icon:[640,512,[],"e4e1","M160 0a64 64 0 1 1 0 128A64 64 0 1 1 160 0zM88 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1L232 400l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 0a64 64 0 1 1 0 128A64 64 0 1 1 480 0zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5 552 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z"]},YA={prefix:"fas",iconName:"chalkboard",icon:[576,512,["blackboard"],"f51b","M96 32C60.7 32 32 60.7 32 96l0 288 64 0L96 96l384 0 0 288 64 0 0-288c0-35.3-28.7-64-64-64L96 32zM224 384l0 32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z"]},yE=YA,rS={prefix:"fas",iconName:"user-large-slash",icon:[640,512,["user-alt-slash"],"f4fa","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM545.5 512L528 512 284.3 320l-59 0C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0 .3 0z"]},ME=rS,XA={prefix:"fas",iconName:"envelope-open",icon:[512,512,[62135],"f2b6","M64 208.1L256 65.9 448 208.1l0 47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5l0-47.4zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z"]},nS={prefix:"fas",iconName:"handshake-simple-slash",icon:[640,512,["handshake-alt-slash"],"e05f","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352l41.8 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-76 0-4 0-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176L0 304c0 26.5 21.5 48 48 48l108.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z"]},o8=nS,wg={prefix:"fas",iconName:"mattress-pillow",icon:[640,512,[],"e525","M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm32 384l288 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L288 64l0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z"]},aS={prefix:"fas",iconName:"guarani-sign",icon:[384,512,[],"e19a","M192 0c-17.7 0-32 14.3-32 32l0 34.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3l0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-34.7c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32l-128 0 0-92c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7L224 32c0-17.7-14.3-32-32-32zM160 132L160 380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380l0-92 92 0c-11.6 45-47 80.4-92 92z"]},np={prefix:"fas",iconName:"arrows-rotate",icon:[512,512,[128472,"refresh","sync"],"f021","M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"]},ZA=np,ap=np,nm={prefix:"fas",iconName:"fire-extinguisher",icon:[512,512,[129519],"f134","M500.3 7.3C507.7 13.3 512 22.4 512 32l0 96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104l-65 0 0 34.8c37.8 18 64 56.5 64 101.2l0 144L64 384l0-144c0-44.7 26.2-83.2 64-101.2l0-28.8c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4L128 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 24 65 0c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416l0 32c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64l0-32 224 0zM176 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},KA={prefix:"fas",iconName:"cruzeiro-sign",icon:[448,512,[],"e152","M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416l0-96 0-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32l0 55.3 0 8.7 0 82.7C135.5 378 96 321.6 96 256z"]},Nf={prefix:"fas",iconName:"greater-than-equal",icon:[448,512,[],"f532","M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z"]},M2={prefix:"fas",iconName:"shield-halved",icon:[512,512,["shield-alt"],"f3ed","M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8l0 378.1C394 378 431.1 230.1 432 141.4L256 66.8s0 0 0 0z"]},Dd=M2,op={prefix:"fas",iconName:"book-atlas",icon:[448,512,["atlas"],"f558","M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9l63 0c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9l31.1 0c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9l-31.1 0c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM145.3 208l31.1 0c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32l-31.1 0c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9l-63 0c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z"]},Bg=op,am={prefix:"fas",iconName:"virus",icon:[512,512,[],"e074","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l11.5 0c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6l0 11.5c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6l11.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5L288 32zM176 224a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},E2={prefix:"fas",iconName:"envelope-circle-check",icon:[640,512,[],"e4e8","M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176 0 384c0 35.3 28.7 64 64 64l296.2 0C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},T2={prefix:"fas",iconName:"layer-group",icon:[576,512,[],"f5fd","M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z"]},wf={prefix:"fas",iconName:"arrows-to-dot",icon:[512,512,[],"e4be","M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},lp={prefix:"fas",iconName:"archway",icon:[512,512,[],"f557","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 64 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 64 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-288L32 128l0 288z"]},lh={prefix:"fas",iconName:"heart-circle-check",icon:[576,512,[],"e4fd","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},om={prefix:"fas",iconName:"house-chimney-crack",icon:[576,512,["house-damage"],"f6f1","M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-122.1 0L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512l-102.3 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24z"]},zg=om,Nd={prefix:"fas",iconName:"file-zipper",icon:[384,512,["file-archive"],"f1c6","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8l14.8 0c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0z"]},wd=Nd,ba={prefix:"fas",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"]},ol={prefix:"fas",iconName:"martini-glass-empty",icon:[512,512,["glass-martini"],"f000","M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3 224 448l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-178.7L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0L32 0zM256 210.7L109.3 64l293.5 0L256 210.7z"]},lm=ol,Do={prefix:"fas",iconName:"couch",icon:[640,512,[],"f4b8","M64 160C64 89.3 121.3 32 192 32l256 0c70.7 0 128 57.3 128 128l0 33.6c-36.5 7.4-64 39.7-64 78.4l0 48-384 0 0-48c0-38.7-27.5-71-64-78.4L64 160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48l0 176c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L96 448c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3l0 48 0 32 32 0 384 0 32 0 0-32 0-48z"]},_c={prefix:"fas",iconName:"cedi-sign",icon:[384,512,[],"e0df","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 34.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3l0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-34.7c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6L256 132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8L256 32zM192 132L192 380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z"]},Pa={prefix:"fas",iconName:"italic",icon:[384,512,[],"f033","M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z"]},ll={prefix:"fas",iconName:"table-cells-column-lock",icon:[640,512,[],"e678","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zm208 0l0 64 88 0 0-64-88 0zm240 0l-88 0 0 64 88 0 0-64zM208 224l0 64 88 0 0-64-88 0zm0 128l0 64 88 0 0-64-88 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"]},Bf={prefix:"fas",iconName:"church",icon:[640,512,[9962],"f51d","M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2L160 512l96 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 96 0 0-260.8c0-16.9-8.8-32.5-23.3-41.2L344 142.4 344 96l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4L0 464c0 26.5 21.5 48 48 48l80 0 0-238.4L24.9 330.3zM592 512c26.5 0 48-21.5 48-48l0-91.6c0-17.5-9.5-33.6-24.9-42.1L512 273.6 512 512l80 0z"]},Su={prefix:"fas",iconName:"comments-dollar",icon:[640,512,[],"f653","M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9c0 0 0 0 0 0s0 0 0 0l.2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2s0 0 0 0s0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7L228 72z"]},yu={prefix:"fas",iconName:"democrat",icon:[640,512,[],"f747","M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8L480 160l32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352l96 0 0 64 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64 0-64 96 0 160 0zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z"]},Mu={prefix:"fas",iconName:"z",icon:[384,512,[122],"5a","M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z"]},ch={prefix:"fas",iconName:"person-skiing",icon:[512,512,[9975,"skiing"],"f7c9","M380.7 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM2.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L232.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L289.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 301.3C1.2 295.2-3.4 280.7 2.7 268.9zM118.9 65.6L137 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L151.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z"]},b1=ch,l8={prefix:"fas",iconName:"road-lock",icon:[640,512,[],"e567","M288 32l-74.8 0c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480L288 480l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 32 0 0-128c0-23.7 12.9-44.4 32-55.4l0-24.6c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32L352 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},cp={prefix:"fas",iconName:"a",icon:[384,512,[97],"41","M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L93.3 384l197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM264 320l-144 0 72-172.8L264 320z"]},cm={prefix:"fas",iconName:"temperature-arrow-down",icon:[576,512,["temperature-down"],"e03f","M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L128 112zM176 0C114.1 0 64 50.1 64 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L288 112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3l0-50.7c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64l-32 0 0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z"]},uh=cm,up={prefix:"fas",iconName:"feather-pointed",icon:[512,512,["feather-alt"],"f56b","M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"]},qA=up,Fg={prefix:"fas",iconName:"p",icon:[320,512,[112],"50","M0 96C0 60.7 28.7 32 64 32l96 0c88.4 0 160 71.6 160 160s-71.6 160-160 160l-96 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 320 0 96zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96L64 96l0 192z"]},QA={prefix:"fas",iconName:"snowflake",icon:[448,512,[10052,10054],"f2dc","M224 0c17.7 0 32 14.3 32 32l0 30.1 15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49 0 70.3 61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.8 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7l0 70.3 49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15 0 30.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-30.1-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49 0-70.3-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3l0-70.3L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15L192 32c0-17.7 14.3-32 32-32z"]},kg={prefix:"fas",iconName:"newspaper",icon:[512,512,[128240],"f1ea","M96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L80 480c-44.2 0-80-35.8-80-80L0 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16L96 96zm64 24l0 80c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24L184 96c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16z"]},um={prefix:"fas",iconName:"rectangle-ad",icon:[576,512,["ad"],"f641","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328l-90.3 0-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280l42.3 0L208 237.7zM392 256a24 24 0 1 0 0 48 24 24 0 1 0 0-48zm24-43.9l0-28.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 96 0 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z"]},Bd=um,L2={prefix:"fas",iconName:"circle-arrow-right",icon:[512,512,["arrow-circle-right"],"f0a9","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM297 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l214.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9L297 385z"]},c8=L2,oS={prefix:"fas",iconName:"filter-circle-xmark",icon:[576,512,[],"e17b","M3.9 22.9C10.5 8.9 24.5 0 40 0L472 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"]},u8={prefix:"fas",iconName:"locust",icon:[576,512,[],"e520","M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4l-64.2 0-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L215.1 400l74.5 0-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L348 400l80.4 0 38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L483.6 400l12.4 0c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3l0-40C576 143 465 32 328 32l-16 0zm50.5 168l17.1 40L333 240l29.5-40zm-87.7 38.1l-1.4 1.9-48.2 0 32.7-41.5 16.9 39.5zM88.8 240C57.4 240 32 265.4 32 296.8c0 15.5 6.3 30 16.9 40.4L126.7 240l-37.9 0zM496 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},zd={prefix:"fas",iconName:"sort",icon:[320,512,["unsorted"],"f0dc","M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8L32 224c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l256 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z"]},hp=zd,JA={prefix:"fas",iconName:"list-ol",icon:[512,512,["list-1-2","list-numeric"],"f0cb","M24 56c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24l0 120 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-96-8 0C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432l33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},$A=JA,lS=JA,EE={prefix:"fas",iconName:"person-dress-burst",icon:[640,512,[],"e544","M528 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM390.2 384l17.8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 16 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 17.8 0c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3l-11.6 0c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z"]},h8={prefix:"fas",iconName:"money-check-dollar",icon:[576,512,["money-check-alt"],"f53d","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM272 192l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16zM164 152l0 13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9l0 13.8c0 11-9 20-20 20s-20-9-20-20l0-14.6c-10.3-2.2-20-5.5-28.2-8.4c0 0 0 0 0 0s0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5l0-14c0-11 9-20 20-20s20 9 20 20z"]},eC=h8,tC={prefix:"fas",iconName:"vector-square",icon:[448,512,[],"f5cb","M368 80l32 0 0 32-32 0 0-32zM352 32c-17.7 0-32 14.3-32 32L128 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64c0 17.7 14.3 32 32 32l0 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l192 0c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-192c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM96 160c17.7 0 32-14.3 32-32l192 0c0 17.7 14.3 32 32 32l0 192c-17.7 0-32 14.3-32 32l-192 0c0-17.7-14.3-32-32-32l0-192zM48 400l32 0 0 32-32 0 0-32zm320 32l0-32 32 0 0 32-32 0zM48 112l0-32 32 0 0 32-32 0z"]},Ug={prefix:"fas",iconName:"bread-slice",icon:[512,512,[],"f7ec","M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z"]},cS={prefix:"fas",iconName:"language",icon:[640,512,[],"f1ab","M0 128C0 92.7 28.7 64 64 64l192 0 48 0 16 0 256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-256 0-16 0-48 0L64 448c-35.3 0-64-28.7-64-64L0 128zm320 0l0 256 256 0 0-256-256 0zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1 73.6 0 8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276l-38 0 19-42.8zM448 164c11 0 20 9 20 20l0 4 44 0 16 0c11 0 20 9 20 20s-9 20-20 20l-2 0-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45L448 228l-72 0c-11 0-20-9-20-20s9-20 20-20l52 0 0-4c0-11 9-20 20-20z"]},jg={prefix:"fas",iconName:"face-kiss-wink-heart",icon:[512,512,[128536,"kiss-wink-heart"],"f598","M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm194.8 57.6c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z"]},d8=jg,uS={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]},Vg={prefix:"fas",iconName:"question",icon:[320,512,[10067,10068,61736],"3f","M80 160c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64l0 3.6c0 21.8-11.1 42.1-29.4 53.8l-42.2 27.1c-25.2 16.2-40.4 44.1-40.4 74l0 1.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.4c0-8.2 4.2-15.8 11-20.2l42.2-27.1c36.6-23.6 58.8-64.1 58.8-107.7l0-3.6c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm80 320a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},hh={prefix:"fas",iconName:"file-signature",icon:[576,512,[],"f573","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-19.3c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2L80 448c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 8.9 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6l0-43.6-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z"]},I2={prefix:"fas",iconName:"up-down-left-right",icon:[512,512,["arrows-alt"],"f0b2","M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z"]},Fd=I2,iC={prefix:"fas",iconName:"house-chimney-user",icon:[576,512,[],"e065","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185l0-121c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l320.4 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0zM288 160a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM176 400c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z"]},sC={prefix:"fas",iconName:"hand-holding-heart",icon:[576,512,[],"f4be","M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z"]},iu={prefix:"fas",iconName:"puzzle-piece",icon:[512,512,[129513],"f12e","M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2l56.8 0c26.5 0 48 21.5 48 48l0 56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8L0 176c0-26.5 21.5-48 48-48l120.8 0c12.8 0 23.2-10.4 23.2-23.2z"]},dp={prefix:"fas",iconName:"money-check",icon:[576,512,[],"f53c","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm48 160l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-352 0c-8.8 0-16-7.2-16-16zM376 160l80 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z"]},S1={prefix:"fas",iconName:"star-half-stroke",icon:[576,512,["star-half-alt"],"f5c0","M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3 0 289.2zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z"]},y1=S1,hm={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]},dm={prefix:"fas",iconName:"whiskey-glass",icon:[512,512,[129347,"glass-whiskey"],"f7a0","M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5l253 0c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32L32 32zM87.7 224L69 96l374 0L424.3 224 87.7 224z"]},hS=dm,El={prefix:"fas",iconName:"building-circle-exclamation",icon:[640,512,[],"e4d3","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},Eu={prefix:"fas",iconName:"magnifying-glass-chart",icon:[512,512,[],"e522","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},fm={prefix:"fas",iconName:"arrow-up-right-from-square",icon:[512,512,["external-link"],"f08e","M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"]},P2=fm,O2={prefix:"fas",iconName:"cubes-stacked",icon:[448,512,[],"e4e6","M192 64l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM160 384l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z"]},Tl={prefix:"fas",iconName:"won-sign",icon:[512,512,[8361,"krw","won"],"f159","M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288l46 0L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288l40.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-19.6 0 50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224l-64 0L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224l-64 0L62.4 53.9zm78 234.1l26.6 0-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1-14 0zm96 64l26.6 0-15.2 45.6L345 288z"]},fp=Tl,kd=Tl,R2={prefix:"fas",iconName:"virus-covid",icon:[512,512,[],"e4a8","M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280L48 280l0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1L232 48l-16 0c-13.3 0-24-10.7-24-24zm48 200a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm64 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},D2={prefix:"fas",iconName:"austral-sign",icon:[448,512,[],"e0a9","M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0L82.7 320 32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l24 0L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384l197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0L352 288l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-90.7 0L253.5 51.7zM256 224l-64 0 32-76.8L256 224zm-90.7 64l117.3 0L296 320l-144 0 13.3-32z"]},Ga={prefix:"fas",iconName:"f",icon:[320,512,[102],"46","M64 32C28.7 32 0 60.7 0 96L0 256 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 224 64 96l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32z"]},Wa={prefix:"fas",iconName:"leaf",icon:[512,512,[],"f06c","M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5l88 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0-72 0s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z"]},ao={prefix:"fas",iconName:"road",icon:[576,512,[128739],"f018","M256 32l-74.8 0c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480L256 480l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 201.4 0c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32L320 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},N2={prefix:"fas",iconName:"taxi",icon:[512,512,[128662,"cab"],"f1ba","M192 0c-17.7 0-32 14.3-32 32l0 32 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288L0 432l0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 320 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 0-144c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1l0-.2 0-32c0-17.7-14.3-32-32-32L192 0zM165.4 128l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 224l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 288a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Tu=N2,Ha={prefix:"fas",iconName:"person-circle-plus",icon:[576,512,[],"e541","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z"]},oo={prefix:"fas",iconName:"chart-pie",icon:[576,512,["pie-chart"],"f200","M304 240l0-223.4c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16L304 240zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4L256 288 412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288l238.4 0z"]},Lu=oo,pp={prefix:"fas",iconName:"bolt-lightning",icon:[384,512,[],"e0b7","M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z"]},Ya={prefix:"fas",iconName:"sack-xmark",icon:[512,512,[],"e56a","M192 96l128 0 47.4-71.1C374.5 14.2 366.9 0 354.1 0L157.9 0c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32l-128 0c-3.8 2.5-8.1 5.3-13 8.4c0 0 0 0 0 0s0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96l320 0c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z"]},TE={prefix:"fas",iconName:"file-excel",icon:[384,512,[],"f1c3","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z"]},mp={prefix:"fas",iconName:"file-contract",icon:[384,512,[],"f56c","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2L80 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 54.1 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z"]},Gg={prefix:"fas",iconName:"fish-fins",icon:[576,512,[],"e4f2","M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.6 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.6 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},pm={prefix:"fas",iconName:"building-flag",icon:[640,512,[],"e4d5","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32l0 480 64 0 0-320 144 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16L480 32c0-17.7-14.3-32-32-32z"]},vc={prefix:"fas",iconName:"face-grin-beam",icon:[512,512,[128516,"grin-beam"],"f582","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-170.5-84s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"]},Wg=vc,Ud={prefix:"fas",iconName:"object-ungroup",icon:[640,512,[],"f248","M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32l209.1 0C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-40.6 64 0 0 40.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4l-46 0c-5.4-15.4-14.6-28.9-26.5-39.6l0-24.4 72.6 0c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0z"]},jd={prefix:"fas",iconName:"poop",icon:[512,512,[],"f619","M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72l13.7 0C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z"]},Yh={prefix:"fas",iconName:"location-pin",icon:[384,512,["map-marker"],"f041","M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z"]},zf=Yh,mm={prefix:"fas",iconName:"kaaba",icon:[576,512,[128331],"f66b","M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112l0 16s0 0 0 0l0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2 0 128l0-16C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8l0 46.5-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8 576 400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400L0 262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2l0-46.5 273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z"]},Ac={prefix:"fas",iconName:"toilet-paper",icon:[640,512,[129531],"f71e","M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1L48 512c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0L444.2 0zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm64 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm80-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},M1={prefix:"fas",iconName:"helmet-safety",icon:[576,512,["hard-hat","hat-hard"],"f807","M256 32c-17.7 0-32 14.3-32 32l0 2.3 0 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288l0 64 512 0 0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1l0-99.6 0-2.3c0-17.7-14.3-32-32-32l-64 0zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6L16.6 384z"]},w2=M1,gp=M1,Hg={prefix:"fas",iconName:"eject",icon:[448,512,[9167],"f052","M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z"]},Gl={prefix:"fas",iconName:"circle-right",icon:[512,512,[61838,"arrow-alt-circle-right"],"f35a","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm395.3 11.3l-112 112c-4.6 4.6-11.5 5.9-17.4 3.5s-9.9-8.3-9.9-14.8l0-64-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-64c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l112 112c6.2 6.2 6.2 16.4 0 22.6z"]},Ff=Gl,gm={prefix:"fas",iconName:"plane-circle-check",icon:[640,512,[],"e555","M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},_p={prefix:"fas",iconName:"face-rolling-eyes",icon:[512,512,[128580,"meh-rolling-eyes"],"f5a5","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 368l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z"]},Yg=_p,kf={prefix:"fas",iconName:"object-group",icon:[576,512,[],"f247","M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32l337.1 0C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-273.1zM456.6 96L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z"]},_m={prefix:"fas",iconName:"chart-line",icon:[512,512,["line-chart"],"f201","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z"]},vm=_m,f8={prefix:"fas",iconName:"mask-ventilator",icon:[640,512,[],"e524","M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269l0-85c0-4.4 3.6-8 8-8l103.1 0zm26-48L56 128c-30.9 0-56 25.1-56 56l0 85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6l0-76.6c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8l0 76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269l0-85c0-30.9-25.1-56-56-56l-129.5 0C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48L584 176c4.4 0 8 3.6 8 8l0 85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},rC={prefix:"fas",iconName:"arrow-right",icon:[448,512,[8594],"f061","M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"]},nC={prefix:"fas",iconName:"signs-post",icon:[512,512,["map-signs"],"f277","M224 32L64 32C46.3 32 32 46.3 32 64l0 64c0 17.7 14.3 32 32 32l377.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7L288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32l-160 0 0-32-64 0 0 32L70.6 224c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7L448 352c17.7 0 32-14.3 32-32l0-64zM288 480l0-96-64 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},Uf=nC,xo={prefix:"fas",iconName:"cash-register",icon:[512,512,[],"f788","M64 0C46.3 0 32 14.3 32 32l0 64c0 17.7 14.3 32 32 32l80 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 80 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L64 0zM96 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16zm48-168a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z"]},dS={prefix:"fas",iconName:"person-circle-question",icon:[576,512,[],"e542","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6l0 6.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-6.4c0-5.3 4.3-9.6 9.6-9.6l40.5 0c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2l0 14.8c0 8.8 7.2 16 16 16s16-7.2 16-16l0-5.1 23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9l-40.5 0c-23 0-41.6 18.6-41.6 41.6z"]},aC={prefix:"fas",iconName:"h",icon:[384,512,[104],"48","M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z"]},p8={prefix:"fas",iconName:"tarp",icon:[576,512,[],"e57b","M576 128c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32l128 0 0-160zM448 448L576 320l-128 0 0 128zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},B2={prefix:"fas",iconName:"screwdriver-wrench",icon:[512,512,["tools"],"f7d9","M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4l54.1 0 109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109 0-54.1c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7L352 176c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM56 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},Xa=B2,m8={prefix:"fas",iconName:"arrows-to-eye",icon:[640,512,[],"e4bf","M15 15C24.4 5.7 39.6 5.7 49 15l63 63L112 40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 96c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l38.1 0L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63 38.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 38.1 63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63L40 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-38.1L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63 0 38.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-96c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-38.1 0 63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z"]},Xg={prefix:"fas",iconName:"plug-circle-bolt",icon:[576,512,[],"e55b","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"]},Am={prefix:"fas",iconName:"heart",icon:[512,512,[128153,128154,128155,128156,128420,129293,129294,129505,9829,10084,61578],"f004","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"]},Zg={prefix:"fas",iconName:"mars-and-venus",icon:[512,512,[9893],"f224","M337.8 14.8C341.5 5.8 350.3 0 360 0L472 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59 146.6-136 158.2l0 25.8 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-25.8C155 370.6 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48s0 0 0 0s0 0 0 0s0 0 0 0zM352 224a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z"]},Xh={prefix:"fas",iconName:"house-user",icon:[576,512,["home-user"],"e1b0","M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0z"]},Vd=Xh,Kg={prefix:"fas",iconName:"dumpster-fire",icon:[640,512,[],"f794","M49.7 32l90.8 0L114.9 160l-94 0C9.3 160 0 150.7 0 139.1c0-2.1 .3-4.1 .9-6.1L26.8 48.9C29.9 38.9 39.2 32 49.7 32zM272 160l-124.5 0L173.1 32 272 32l0 128zm32 0l0-128 98.9 0 14.4 72.1c-1.7 1.1-3.3 2.4-4.8 3.8c-18.4 16.4-35.4 34-50.5 52.1l-58 0zm209.9-23.7c-1.7 1.6-3.4 3.2-5 4.8C498 129.6 486.7 118.6 475 108c-7.6-6.9-17-10.8-26.6-11.8L435.5 32l90.8 0c10.5 0 19.8 6.9 22.9 16.9L575.1 133c.2 .7 .4 1.4 .5 2.1c-17.8-15-44.3-14.6-61.7 1.2zM325.2 210.7C304.3 244.5 288 282.9 288 318.1c0 49.3 18.6 95.2 49.6 129.9L128 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L44 288l-12 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l4 0-4-32 305.5 0c-4.4 6.2-8.5 12.5-12.3 18.7zm180.6-34.5L518 162.5c5.4-6.1 13.3-8.8 20.9-8.9c7.2 0 14.3 2.6 19.9 7.8c19.7 18.3 39.8 43.2 55 70.6C629 259.2 640 290.2 640 320.2C640 408.8 568.7 480 480 480c-89.6 0-160-71.3-160-159.8c0-37.3 16-73.4 36.8-104.5c20.9-31.3 47.5-59 70.9-80.2c5.7-5.2 13.1-7.7 20.3-7.5c14.1 .3 23.8 11.4 32.7 21.6c0 0 0 0 0 0c2 2.3 4 4.6 6 6.7l19 19.9zM544 368.2c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 295.1 416 331.6 416 368.2c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},oC={prefix:"fas",iconName:"house-crack",icon:[576,512,[],"e3b1","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l102.3 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64 122.1 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0z"]},jf={prefix:"fas",iconName:"martini-glass-citrus",icon:[576,512,["cocktail"],"f561","M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48l-52.6 0C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128l368 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177L232 464l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-118.1L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z"]},Vf=jf,E1={prefix:"fas",iconName:"face-surprise",icon:[512,512,[128558,"surprise"],"f5c2","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},Cm=E1,fS={prefix:"fas",iconName:"bottle-water",icon:[320,512,[],"e4c5","M120 0l80 0c13.3 0 24 10.7 24 24l0 40L96 64l0-40c0-13.3 10.7-24 24-24zM32 167.5c0-19.5 10-37.6 26.6-47.9l15.8-9.9C88.7 100.7 105.2 96 122.1 96l75.8 0c16.9 0 33.4 4.7 47.7 13.7l15.8 9.9C278 129.9 288 148 288 167.5c0 17-7.5 32.3-19.4 42.6C280.6 221.7 288 238 288 256c0 19.1-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48s-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64c0-19.1 8.4-36.3 21.7-48C40.4 388.3 32 371.1 32 352s8.4-36.3 21.7-48C40.4 292.3 32 275.1 32 256c0-18 7.4-34.3 19.4-45.9C39.5 199.7 32 184.5 32 167.5zM96 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16zm16 112c-8.8 0-16 7.2-16 16s7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0z"]},Gf={prefix:"fas",iconName:"circle-pause",icon:[512,512,[62092,"pause-circle"],"f28b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},LE=Gf,xm={prefix:"fas",iconName:"toilet-paper-slash",icon:[640,512,[],"e072","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192L160 0c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM367.3 385.4L66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512l237.9 0c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z"]},vp={prefix:"fas",iconName:"apple-whole",icon:[448,512,[127822,127823,"apple-alt"],"f5d1","M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z"]},g8=vp,qg={prefix:"fas",iconName:"kitchen-set",icon:[576,512,[],"e51a","M240 144A96 96 0 1 0 48 144a96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l80 0 16 0 32 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},lC={prefix:"fas",iconName:"r",icon:[320,512,[114],"52","M64 32C28.7 32 0 60.7 0 96L0 288 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144L64 32zM176 256L64 256 64 96l112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z"]},Ap={prefix:"fas",iconName:"temperature-quarter",icon:[320,512,["temperature-1","thermometer-1","thermometer-quarter"],"f2ca","M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3l0-50.7c0-8.8 7.2-16 16-16s16 7.2 16 16l0 50.7c18.6 6.6 32 24.4 32 45.3z"]},_8=Ap,bm=Ap,Qg=Ap,Jg={prefix:"fas",iconName:"cube",icon:[512,512,[],"f1b2","M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6l0 242.9c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4L0 134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1 0-188L288 246.6l0 188z"]},$g={prefix:"fas",iconName:"bitcoin-sign",icon:[320,512,[],"e0b4","M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32l0 32 32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-6.3 0C18.7 448 0 429.3 0 406.3L0 288l0-22.3L0 224 0 101.6C0 80.8 16.8 64 37.6 64L48 64l0-32zM64 224l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L64 128l0 96zm112 64L64 288l0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z"]},cC={prefix:"fas",iconName:"shield-dog",icon:[512,512,[],"e573","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7L320 192l64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160l40 0 8 0 0 32 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},Cp={prefix:"fas",iconName:"solar-panel",icon:[640,512,[],"f5ba","M122.2 0C91.7 0 65.5 21.5 59.5 51.4L8.3 307.4C.4 347 30.6 384 71 384l217 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 217 0c40.4 0 70.7-36.9 62.8-76.6l-51.2-256C574.5 21.5 548.3 0 517.8 0L122.2 0zM260.9 64l118.2 0 10.4 104-139 0L260.9 64zM202.3 168l-100.8 0L122.2 64l90.4 0L202.3 168zM91.8 216l105.6 0L187.1 320 71 320 91.8 216zm153.9 0l148.6 0 10.4 104-169.4 0 10.4-104zm196.8 0l105.6 0L569 320l-116 0L442.5 216zm96-48l-100.8 0L427.3 64l90.4 0 31.4-6.3L517.8 64l20.8 104z"]},Sm={prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48C576 64.5 511.5 0 432 0S288 64.5 288 144l0 48L64 192c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-32 0 0-48z"]},v8={prefix:"fas",iconName:"elevator",icon:[512,512,[],"e16d","M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0L304 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z"]},uC={prefix:"fas",iconName:"money-bill-transfer",icon:[640,512,[],"e528","M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64l241.9 0c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5 608 384c0 35.3-28.7 64-64 64l-241.9 0c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5 32 128c0-35.3 28.7-64 64-64zm64 64l-64 0 0 64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64l64 0 0-64zM320 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"]},A8={prefix:"fas",iconName:"money-bill-trend-up",icon:[512,512,[],"e529","M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2c0 0 0 .1 0 .1c0 0 0 0 0 0l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64 352 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0s0 0 0 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},e6={prefix:"fas",iconName:"house-flood-water-circle-arrow-right",icon:[640,512,[],"e50f","M288 144A144 144 0 1 0 0 144a144 144 0 1 0 288 0zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160 80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4 16.6 0c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z"]},C8={prefix:"fas",iconName:"square-poll-horizontal",icon:[448,512,["poll-h"],"f682","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z"]},hC=C8,dC={prefix:"fas",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],"f111","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z"]},fC={prefix:"fas",iconName:"backward-fast",icon:[512,512,[9198,"fast-backward"],"f049","M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7 288 416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7 64 416c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64s32 14.3 32 32l0 118.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96l0 118.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96l0 320c0 12.4-7.2 23.7-18.4 29z"]},pC=fC,mC={prefix:"fas",iconName:"recycle",icon:[512,512,[9842,9850,9851],"f1b8","M174.7 45.1C192.2 17 223 0 256 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L283 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM429.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L320 448l0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L36 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L182 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3L68.8 335.3c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0C42.7 448-.3 404.8 0 351.6c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z"]},x8={prefix:"fas",iconName:"user-astronaut",icon:[448,512,[],"f4fb","M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128l0 64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9l0-64c0-16.8-12.9-30.5-29.3-31.9zM336 144l0 16c0 53-43 96-96 96l-32 0c-53 0-96-43-96-96l0-16c0-26.5 21.5-48 48-48l128 0c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512l98.3 0 0-64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 64 98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16l0 48 32 0 0-48c0-8.8-7.2-16-16-16zm96 32a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},ym={prefix:"fas",iconName:"plane-slash",icon:[640,512,[],"e069","M514.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-73.8 0L630.8 469.1c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L238.1 161.3 197.8 20.4C194.9 10.2 202.6 0 213.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L397.7 192l116.6 0zM41.5 128.7l321 252.9L297.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L144 320l-43.2 57.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L64 256 32.5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-6.2 4-11.4 9.5-13.3z"]},gC={prefix:"fas",iconName:"trademark",icon:[640,512,[8482],"f25c","M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96C14.3 96 0 110.3 0 128z"]},t6={prefix:"fas",iconName:"basketball",icon:[512,512,[127936,"basketball-ball"],"f434","M86.6 64l85.2 85.2C194.5 121.7 208 86.4 208 48c0-14.7-2-28.9-5.7-42.4C158.6 15 119 35.5 86.6 64zM64 86.6C35.5 119 15 158.6 5.6 202.3C19.1 206 33.3 208 48 208c38.4 0 73.7-13.5 101.3-36.1L64 86.6zM256 0c-7.3 0-14.6 .3-21.8 .9C238 16 240 31.8 240 48c0 47.3-17.1 90.5-45.4 124L256 233.4 425.4 64C380.2 24.2 320.9 0 256 0zM48 240c-16.2 0-32-2-47.1-5.8C.3 241.4 0 248.7 0 256c0 64.9 24.2 124.2 64 169.4L233.4 256 172 194.6C138.5 222.9 95.3 240 48 240zm463.1 37.8c.6-7.2 .9-14.5 .9-21.8c0-64.9-24.2-124.2-64-169.4L278.6 256 340 317.4c33.4-28.3 76.7-45.4 124-45.4c16.2 0 32 2 47.1 5.8zm-4.7 31.9C492.9 306 478.7 304 464 304c-38.4 0-73.7 13.5-101.3 36.1L448 425.4c28.5-32.3 49.1-71.9 58.4-115.7zM340.1 362.7C317.5 390.3 304 425.6 304 464c0 14.7 2 28.9 5.7 42.4C353.4 497 393 476.5 425.4 448l-85.2-85.2zM317.4 340L256 278.6 86.6 448c45.1 39.8 104.4 64 169.4 64c7.3 0 14.6-.3 21.8-.9C274 496 272 480.2 272 464c0-47.3 17.1-90.5 45.4-124z"]},b8=t6,xp={prefix:"fas",iconName:"satellite-dish",icon:[512,512,[128225],"f7c0","M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},Wf={prefix:"fas",iconName:"circle-up",icon:[512,512,[61467,"arrow-alt-circle-up"],"f35b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm11.3-395.3l112 112c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9l-64 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-64 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l112-112c6.2-6.2 16.4-6.2 22.6 0z"]},Mm=Wf,bp={prefix:"fas",iconName:"mobile-screen-button",icon:[384,512,["mobile-alt"],"f3cd","M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM224 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM304 64L80 64l0 320 224 0 0-320z"]},_C=bp,Hf={prefix:"fas",iconName:"volume-high",icon:[640,512,[128266,"volume-up"],"f028","M533.6 32.5C598.5 85.2 640 165.8 640 256s-41.5 170.7-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z"]},Sp=Hf,S8={prefix:"fas",iconName:"users-rays",icon:[640,512,[],"e593","M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6l56.1 0zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},y8={prefix:"fas",iconName:"wallet",icon:[512,512,[],"f555","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L80 128c-8.8 0-16-7.2-16-16s7.2-16 16-16l368 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM416 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Em={prefix:"fas",iconName:"clipboard-check",icon:[384,512,[],"f46c","M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},Zh={prefix:"fas",iconName:"file-audio",icon:[384,512,[],"f1c7","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376 80 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l33.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z"]},yp={prefix:"fas",iconName:"burger",icon:[512,512,["hamburger"],"f805","M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1L61.1 224zM144 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm240 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zM272 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM16 304c0-26.5 21.5-48 48-48l384 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L64 352c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16l416 0c8.8 0 16 7.2 16 16l0 16c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-16z"]},M8=yp,i6={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Tm={prefix:"fas",iconName:"bugs",icon:[576,512,[],"e4d0","M164.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L128 71.7 101.9 14.1C96.4 2 82.1-3.3 70.1 2.1S52.7 21.9 58.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6l-17 0-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8S-2.1 111.7 .5 124.7l8 40C10.7 175.9 20.6 184 32 184l32 0 0 23.3-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C82.7 274.6 103.8 288 128 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L192 207.3l0-23.3 32 0c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L204.3 136l-17 0c-4.7-11.6-12.7-21.5-22.9-28.6zM496 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L432.8 250c-12.3 1-24.2 5.6-34.1 13.3L384 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L359 322.7 321.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L503.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L566.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z"]},Gd={prefix:"fas",iconName:"rupee-sign",icon:[448,512,[8360,"rupee"],"f156","M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0s0 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9c0 0 0 0 0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s24.9-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1c0 0 0 0 0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.5-13.4-6.6-28-4.4-43.2c8.4-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z"]},T1=Gd,Lm={prefix:"fas",iconName:"file-image",icon:[384,512,[128443],"f1c5","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm152 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6l-88 0-40 0-48 0-48 0c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z"]},Im={prefix:"fas",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},E8=Im,vC={prefix:"fas",iconName:"plane-departure",icon:[640,512,[128747],"f5b0","M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2l137.7 0c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48l-57.4 0c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z"]},Yf={prefix:"fas",iconName:"handshake-slash",icon:[640,512,[],"e060","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8 512 128l-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128 0 128 0 352c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-180.4zM413.6 421.9L128 196.9 128 352l28.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128l0 224c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-224-96 0zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},s6={prefix:"fas",iconName:"book-bookmark",icon:[448,512,[],"e0bb","M0 96C0 43 43 0 96 0l96 0 0 190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5L352 0l32 0 32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32z"]},Pm={prefix:"fas",iconName:"code-branch",icon:[448,512,[],"f126","M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 87.8c18.8-10.9 40.7-17.1 64-17.1l96 0c35.3 0 64-28.7 64-64l0-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 6.7c0 70.7-57.3 128-128 128l-96 0c-35.3 0-64 28.7-64 64l0 6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-6.7 0-198.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},dh={prefix:"fas",iconName:"hat-cowboy",icon:[640,512,[],"f8c0","M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z"]},T8={prefix:"fas",iconName:"bridge",icon:[576,512,[],"e4c8","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l40 0 0 64L0 160 0 288c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96l0-128-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM456 96l0 64-80 0 0-64 80 0zM328 96l0 64-80 0 0-64 80 0zM200 96l0 64-80 0 0-64 80 0z"]},Mp={prefix:"fas",iconName:"phone-flip",icon:[512,512,[128381,"phone-alt"],"f879","M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z"]},r6=Mp,n6={prefix:"fas",iconName:"truck-front",icon:[512,512,[],"e2b7","M0 80C0 35.8 35.8 0 80 0L432 0c44.2 0 80 35.8 80 80l0 288c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-256 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 80zm129.9 72.2L112 224l288 0-17.9-71.8C378.5 138 365.7 128 351 128l-190 0c-14.7 0-27.5 10-31 24.2zM128 320a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Wl={prefix:"fas",iconName:"cat",icon:[576,512,[128008],"f6be","M320 192l17.1 0c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4l0 4 0 32 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8L280 448l56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-223.5c0-16.1-12-29.8-28-31.8l-7.9-1c-17.5-2.2-30-18.2-27.8-35.7s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3l0 85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5s0 0 0 0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32c0 0 0 0 0 0c-3.7-4.1-7-8.5-9.9-13.2C357.3 164 352 146.6 352 128c0 0 0 0 0 0l0-96 0-20 0-1.3C352 4.8 356.7 .1 362.6 0l.2 0c3.3 0 6.4 1.6 8.4 4.2c0 0 0 0 0 .1L384 21.3l27.2 36.3L416 64l64 0 4.8-6.4L512 21.3 524.8 4.3c0 0 0 0 0-.1c2-2.6 5.1-4.2 8.4-4.2l.2 0C539.3 .1 544 4.8 544 10.7l0 1.3 0 20 0 96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM432 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},z2={prefix:"fas",iconName:"anchor-circle-exclamation",icon:[640,512,[],"e4ab","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},a6={prefix:"fas",iconName:"truck-field",icon:[640,512,[],"e58d","M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l51.8 0c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2l4.2 0c35.3 0 64 28.7 64 64l0 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-32c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zM384 224l85.9 0-42.7-96L384 128l0 96zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},Om={prefix:"fas",iconName:"route",icon:[512,512,[],"f4d7","M512 96c0 50.2-59.1 125.1-84.6 155c-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8c6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96c0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8C59.8 473 0 402.5 0 352c0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9c-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},AC={prefix:"fas",iconName:"clipboard-question",icon:[384,512,[],"e4e3","M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Kh={prefix:"fas",iconName:"panorama",icon:[640,512,[],"e209","M45.6 32C20.4 32 0 52.4 0 77.6L0 434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6l0-356.7C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM96 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm272 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z"]},qh={prefix:"fas",iconName:"comment-medical",icon:[512,512,[],"f7f5","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},o6={prefix:"fas",iconName:"teeth-open",icon:[576,512,[],"f62f","M96 32C43 32 0 75 0 128l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-53-43-96-96-96L96 32zM224 96c26.5 0 48 21.5 48 48l0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56zM96 128c26.5 0 48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM96 480l384 0c53 0 96-43 96-96l0-32c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48zm80-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48zm80-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48s-48-21.5-48-48z"]},Cc={prefix:"fas",iconName:"file-circle-minus",icon:[576,512,[],"e4ed","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z"]},F2={prefix:"fas",iconName:"tags",icon:[512,512,[],"f02c","M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5L0 80C0 53.5 21.5 32 48 32l149.5 0c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Iu={prefix:"fas",iconName:"wine-glass",icon:[320,512,[127863],"f4e3","M32.1 29.3C33.5 12.8 47.4 0 64 0L256 0c16.6 0 30.5 12.8 31.9 29.3l14 168.4c6 72-42.5 135.2-109.9 150.6l0 99.6 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0-80 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0 0-99.6C60.6 333 12.1 269.8 18.1 197.8l14-168.4zm56 98.7l143.8 0-5.3-64L93.4 64l-5.3 64z"]},Ep={prefix:"fas",iconName:"forward-fast",icon:[512,512,[9197,"fast-forward"],"f050","M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7 224 416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7 448 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 118.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96l0 118.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96L0 416c0 12.4 7.2 23.7 18.4 29z"]},Rm=Ep,su={prefix:"fas",iconName:"face-meh-blank",icon:[512,512,[128566,"meh-blank"],"f5a4","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm208.4-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Xf=su,Wd={prefix:"fas",iconName:"square-parking",icon:[448,512,[127359,"parking"],"f540","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64 0-120c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z"]},pS=Wd,mS={prefix:"fas",iconName:"house-signal",icon:[576,512,[],"e012","M357.7 8.5c-12.3-11.3-31.2-11.3-43.4 0l-208 192c-9.4 8.6-12.7 22-8.5 34c87.1 25.3 155.6 94.2 180.3 181.6L464 416c26.5 0 48-21.5 48-48l0-112 32 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8.1-35.2l-208-192zM288 208c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-64zM24 256c-13.3 0-24 10.7-24 24s10.7 24 24 24c101.6 0 184 82.4 184 184c0 13.3 10.7 24 24 24s24-10.7 24-24c0-128.1-103.9-232-232-232zm8 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM0 376c0 13.3 10.7 24 24 24c48.6 0 88 39.4 88 88c0 13.3 10.7 24 24 24s24-10.7 24-24c0-75.1-60.9-136-136-136c-13.3 0-24 10.7-24 24z"]},L8={prefix:"fas",iconName:"bars-progress",icon:[512,512,["tasks-alt"],"f828","M448 160l-128 0 0-32 128 0 0 32zM48 64C21.5 64 0 85.5 0 112l0 64c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48L48 64zM448 352l0 32-256 0 0-32 256 0zM48 288c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48L48 288z"]},CC=L8,Dm={prefix:"fas",iconName:"faucet-drip",icon:[512,512,[128688],"e006","M224 0c17.7 0 32 14.3 32 32l0 12 96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12 0-12c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-43.8 32-4 32 4 0 43.8 18.7 0c8.5 0 16.6 3.4 22.6 9.4L320 192l32 0c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 320c-17.7 0-32-14.3-32-32l0-64zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z"]},I8={prefix:"fas",iconName:"cart-flatbed",icon:[640,512,["dolly-flatbed"],"f474","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 44.2 35.8 80 80 80l18.7 0c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l66.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-464 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM192 80l0 192c0 26.5 21.5 48 48 48l320 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-96 0 0 144c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1l0-144-96 0c-26.5 0-48 21.5-48 48z"]},xC=I8,Tp={prefix:"fas",iconName:"ban-smoking",icon:[512,512,[128685,"smoking-ban"],"f54d","M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l34.7 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-130.7 0L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96L112 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l117.5 0z"]},P8=Tp,O8={prefix:"fas",iconName:"terminal",icon:[576,512,[],"f120","M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},Nm={prefix:"fas",iconName:"mobile-button",icon:[384,512,[],"f10b","M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},bC={prefix:"fas",iconName:"house-medical-flag",icon:[640,512,[],"e514","M480 0c17.7 0 32 14.3 32 32l112 0c8.8 0 16 7.2 16 16l0 128c0 8.8-7.2 16-16 16l-112 0 0 320-64 0 0-320 0-160c0-17.7 14.3-32 32-32zM276.8 39.7L416 159l0 353 1 0-.2 0L96 512c-17.7 0-32-14.3-32-32l0-192-32 0c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"]},Lp={prefix:"fas",iconName:"basket-shopping",icon:[576,512,["shopping-basket"],"f291","M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192 32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512L430 512c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-85.6 0L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192l-232.6 0L253.3 35.1zM192 304l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zm128 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},R8=Lp,cs={prefix:"fas",iconName:"tape",icon:[576,512,[],"f4db","M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-163.2 0zM224 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm64 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},ru={prefix:"fas",iconName:"bus-simple",icon:[448,512,["bus-alt"],"f55e","M224 0C348.8 0 448 35.2 448 80l0 16 0 320c0 17.7-14.3 32-32 32l0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32L0 96 0 80C0 35.2 99.2 0 224 0zM64 128l0 128c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM80 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},SC=ru,D8={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]},wm={prefix:"fas",iconName:"face-sad-cry",icon:[512,512,[128557,"sad-cry"],"f5b3","M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 288c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 189.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8L384 288c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 205.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z"]},Li=wm,ca={prefix:"fas",iconName:"audio-description",icon:[576,512,[],"f29e","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9-82.2 0-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2 42.2 0zM304 184c0-13.3 10.7-24 24-24l56 0c53 0 96 43 96 96s-43 96-96 96l-56 0c-13.3 0-24-10.7-24-24l0-144zm48 24l0 96 32 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z"]},Yo={prefix:"fas",iconName:"person-military-to-person",icon:[512,512,[],"e54c","M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 2.9 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z"]},Zf={prefix:"fas",iconName:"file-shield",icon:[576,512,[],"e4f0","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 47-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8l0 187.8c68.2-33 91.5-99 95.4-149.7z"]},k2={prefix:"fas",iconName:"user-slash",icon:[640,512,[],"f506","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7l388.6 0c3.9 0 7.6-.7 11-2.1l-261-205.6z"]},ua={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]},pi={prefix:"fas",iconName:"tower-observation",icon:[512,512,[],"e586","M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144l0 80c0 17.7-14.3 32-32 32l-4.9 0 32 192 68.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-95.5 0c-.4 0-.8 0-1.1 0l-254.8 0c-.4 0-.8 0-1.1 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 32-192-4.9 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448l117 0zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256l-116.5 0zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0z"]},Fn={prefix:"fas",iconName:"file-code",icon:[384,512,[],"f1c9","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"]},Pu={prefix:"fas",iconName:"signal",icon:[640,512,[128246,"signal-5","signal-perfect"],"f012","M576 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352c0-17.7 14.3-32 32-32zM352 224l0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32zM96 416l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},Ip=Pu,$n=Pu,Dt={prefix:"fas",iconName:"bus",icon:[576,512,[128653],"f207","M288 0C422.4 0 512 35.2 512 80l0 16 0 32c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32l0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32c0 0 0 0 0 0l0-32s0 0 0 0l0-16C64 35.2 153.6 0 288 0zM128 160l0 96c0 17.7 14.3 32 32 32l112 0 0-160-112 0c-17.7 0-32 14.3-32 32zM304 288l112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-112 0 0 160zM144 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM384 80c0-8.8-7.2-16-16-16L208 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l160 0c8.8 0 16-7.2 16-16z"]},xc={prefix:"fas",iconName:"heart-circle-xmark",icon:[576,512,[],"e501","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},U2={prefix:"fas",iconName:"house-chimney",icon:[576,512,[63499,"home-lg"],"e3af","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185l0-121c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64 0 24c0 22.1 17.9 40 40 40l24 0 32.5 0c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1l16 0c22.1 0 40-17.9 40-40l0-16.2c.3-2.6 .5-5.3 .5-8.1l-.7-160.2 32 0z"]},Hl=U2,Mn={prefix:"fas",iconName:"window-maximize",icon:[512,512,[128470],"f2d0","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},rs={prefix:"fas",iconName:"face-frown",icon:[512,512,[9785,"frown"],"f119","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Bm=rs,gS={prefix:"fas",iconName:"prescription",icon:[448,512,[],"f5b1","M32 0C14.3 0 0 14.3 0 32L0 192l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0L32 0zM176 160L64 160l0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z"]},bo={prefix:"fas",iconName:"shop",icon:[640,512,["store-alt"],"f54f","M36.8 192l566.3 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224l0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-160-64 0 0 160-192 0 0-160-64 0zm448 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256-64 0z"]},j2=bo,Kf={prefix:"fas",iconName:"floppy-disk",icon:[448,512,[128190,128426,"save"],"f0c7","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm0 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 224c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},l6=Kf,c6={prefix:"fas",iconName:"vihara",icon:[640,512,[],"f6a7","M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9l-7.5 0 0 56.1 6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4L544 288l0 65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7L96 288l-39.4 0c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1 0-8.1 0-48-7.5 0c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128l-96 0-96 0 0 64 72 0 48 0 72 0 0-64zM160 288l0 64 136 0 24 0 24 0 136 0 0-64-136 0-24 0s0 0 0 0l-24 0-136 0z"]},L1={prefix:"fas",iconName:"scale-unbalanced",icon:[640,512,["balance-scale-left"],"f515","M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2L288 480c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM439.6 288L512 163.8 584.4 288l-144.9 0zM512 384c62.9 0 115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L536.1 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L392.7 273.1c-5.7 9.8-9.3 21.1-6.7 32.1C396.8 350 449.1 384 512 384zM129.2 291.8L201.6 416 56.7 416l72.4-124.2zM3.2 433.1C14 478 66.3 512 129.2 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L153.2 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L9.9 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z"]},V2=L1,yC={prefix:"fas",iconName:"sort-up",icon:[320,512,["sort-asc"],"f0de","M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]},zm=yC,Fm={prefix:"fas",iconName:"comment-dots",icon:[512,512,[128172,62075,"commenting"],"f4ad","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Pp=Fm,G2={prefix:"fas",iconName:"plant-wilt",icon:[512,512,[],"e5aa","M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56l0 13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1l0-13C464 53.7 410.3 0 344 0S224 53.7 224 120l0 21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120l0 13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1l0-13c0-30.9 25.1-56 56-56s56 25.1 56 56l0 32 0 200c0 17.7 14.3 32 32 32s32-14.3 32-32l0-200 0-32 0-128z"]},km={prefix:"fas",iconName:"diamond",icon:[512,512,[9830],"f219","M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z"]},Op={prefix:"fas",iconName:"face-grin-squint",icon:[512,512,[128518,"grin-squint"],"f585","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"]},Um=Op,qf={prefix:"fas",iconName:"hand-holding-dollar",icon:[576,512,["hand-holding-usd"],"f4c0","M312 24l0 10.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3s0 0 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8l0 10.6c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11.4c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2L264 24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z"]},Qh=qf,Qf={prefix:"fas",iconName:"chart-diagram",icon:[512,512,[],"e695","M80 32C53.5 32 32 53.5 32 80s21.5 48 48 48l152 0 0 40-48 48-56 0c-48.6 0-88 39.4-88 88l0 48-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-48c0-22.1 17.9-40 40-40l56 0 48 48 0 40-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-40 48-48 56 0c22.1 0 40 17.9 40 40l0 48-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-48c0-48.6-39.4-88-88-88l-56 0-48-48 0-40 152 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L80 32z"]},Rp={prefix:"fas",iconName:"bacterium",icon:[512,512,[],"e05a","M423.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L196 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L103 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7c0 0 0 0 0 0l-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2C4.7 380.6-2.7 393.8 .9 406.6s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L215 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L371 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L439 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zM92.1 363.3s0 0 0 0L144 368l-51.9-4.7zM112 320a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM240 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},I1={prefix:"fas",iconName:"hand-pointer",icon:[448,512,[],"f25a","M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48l0 48 0 16 0 48c0 70.7-57.3 128-128 128l-16 0-64 0-.1 0-5.2 0c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7L128 40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z"]},W2={prefix:"fas",iconName:"drum-steelpan",icon:[576,512,[],"f56a","M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z"]},Jf={prefix:"fas",iconName:"hand-scissors",icon:[512,512,[],"f257","M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9c0 0 0 .1 0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z"]},Dp={prefix:"fas",iconName:"hands-praying",icon:[640,512,["praying-hands"],"f684","M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4l0 73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384l0 96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7L336 224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-84.9c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8l0 84.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 118.2c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480l0-96c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2l0-73.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z"]},N8=Dp,H2={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"]},P1=H2,MC=H2,Np=H2,w8={prefix:"fas",iconName:"web-awesome",icon:[640,512,[],"e682","M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192l104.4-20.9c-5.3-7.7-8.4-17.1-8.4-27.1c0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144c0-26.5 21.5-48 48-48s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1c0-28.7 23.3-52 52-52s52 23.3 52 52z"]},jm={prefix:"fas",iconName:"biohazard",icon:[576,512,[9763],"f780","M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM240 272a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z"]},wp={prefix:"fas",iconName:"location-crosshairs",icon:[512,512,["location"],"f601","M256 0c17.7 0 32 14.3 32 32l0 34.7C368.4 80.1 431.9 143.6 445.3 224l34.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0C431.9 368.4 368.4 431.9 288 445.3l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C143.6 431.9 80.1 368.4 66.7 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l34.7 0C80.1 143.6 143.6 80.1 224 66.7L224 32c0-17.7 14.3-32 32-32zM128 256a128 128 0 1 0 256 0 128 128 0 1 0 -256 0zm128-80a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},u6=wp,Vm={prefix:"fas",iconName:"mars-double",icon:[640,512,[9891],"f227","M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L312 32zm88 48s0 0 0 0s0 0 0 0s0 0 0 0zM64 304a112 112 0 1 1 224 0A112 112 0 1 1 64 304zM368 480c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L504 32c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2 0 .2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7l0 21.3c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z"]},B8={prefix:"fas",iconName:"child-dress",icon:[320,512,[],"e59c","M224 64A64 64 0 1 0 96 64a64 64 0 1 0 128 0zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z"]},Gm={prefix:"fas",iconName:"users-between-lines",icon:[640,512,[],"e591","M0 24C0 10.7 10.7 0 24 0L616 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 48C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24l592 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24zM83.2 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 320c0-35.3 28.7-64 64-64l96 0c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6L64 352c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6l96 0c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32l-82.4 0zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1l96 0c7.4 0 14.7 .8 21.6 2.4zm44-130.4a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM321.6 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},EC={prefix:"fas",iconName:"lungs-virus",icon:[640,512,[],"e067","M320 0c17.7 0 32 14.3 32 32l0 124.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2L288 32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1l0-24.1C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4l0 7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89l0-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3l0 24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},Bp={prefix:"fas",iconName:"face-grin-tears",icon:[640,512,[128514,"grin-tears"],"f588","M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z"]},z8=Bp,F8={prefix:"fas",iconName:"phone",icon:[512,512,[128222,128379],"f095","M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z"]},Wm={prefix:"fas",iconName:"calendar-xmark",icon:[448,512,["calendar-times"],"f273","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z"]},_S=Wm,k8={prefix:"fas",iconName:"child-reaching",icon:[384,512,[],"e59d","M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"]},U8={prefix:"fas",iconName:"head-side-virus",icon:[512,512,[],"e064","M0 224.2C0 100.6 100.2 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320l0 64c0 35.3-28.7 64-64 64l-64 0 0 32c0 17.7-14.3 32-32 32L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM224 64c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C145.5 152.1 129 192 96 192c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C168.1 286.5 208 303 208 336c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C302.5 263.9 319 224 352 224c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C279.9 129.5 240 113 240 80c0-8.8-7.2-16-16-16zm-24 96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 80a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},j8={prefix:"fas",iconName:"user-gear",icon:[640,512,["user-cog"],"f4fe","M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304l91.4 0c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7l0 .9c0 9.2 2.7 18.5 7.9 26.3L29.7 512C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8l0 30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8l0-30.5c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9l0-30.5zm92.1 133.5a48.1 48.1 0 1 0 -96.1 0 48.1 48.1 0 1 0 96.1 0z"]},h6=j8,V8={prefix:"fas",iconName:"arrow-up-1-9",icon:[576,512,["sort-numeric-up"],"f163","M450.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3 192 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-301.7L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM445.7 364.9A32 32 0 1 0 418.3 307a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z"]},d6=V8,G8={prefix:"fas",iconName:"door-closed",icon:[576,512,[128682],"f52a","M96 64c0-35.3 28.7-64 64-64L416 0c35.3 0 64 28.7 64 64l0 384 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-112 0-288 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0L96 64zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},TC={prefix:"fas",iconName:"shield-virus",icon:[512,512,[],"e06c","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},LC={prefix:"fas",iconName:"dice-six",icon:[448,512,[9861],"f526","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},W8={prefix:"fas",iconName:"mosquito-net",icon:[640,512,[],"e52c","M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4l0-23.1L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5l0-22.6c0-14.9 10.1-27.3 23.8-31l0-43.3c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2l0 43.3c13.7 3.6 23.8 16.1 23.8 31l0 22.6 45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35 0 23.1 32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6l0 50c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16l0 16 48 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 16 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 48 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 48 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-48 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-48 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-48-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-48-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 16 48 0 0-16c0-8.8 7.2-16 16-16zm16 112l48 0 0-48-48 0 0 48zm0 80l48 0 0-48-48 0 0 48zM448 320l0 48 48 0 0-48-48 0zm0 80l0 48 48 0 0-48-48 0z"]},fh={prefix:"fas",iconName:"file-fragment",icon:[384,512,[],"e697","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64l-128 0 0-128c0-35.3-28.7-64-64-64L0 320 0 64zm384 64l-128 0L256 0 384 128zM32 352l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32z"]},ph={prefix:"fas",iconName:"bridge-water",icon:[576,512,[],"e4ce","M0 96C0 78.3 14.3 64 32 64l512 0c17.7 0 32 14.3 32 32l0 35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6l0 124.9c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3c0 0 0 0 0 0l0-.5 0-128c0-53-43-96-96-96s-96 43-96 96l0 128 0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7l0-124.9C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6L0 96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},f6={prefix:"fas",iconName:"person-booth",icon:[576,512,[],"f756","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160 64 0 0-160zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448zM224 512c17.7 0 32-14.3 32-32l0-160-64 0 0 160c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32L320 0zM112 80A48 48 0 1 0 16 80a48 48 0 1 0 96 0zm0 261.3l0-72.1 4.7 4.7c9 9 21.2 14.1 33.9 14.1l73.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-66.7 0-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6l0 55.7 0 .9L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 42.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-58.7c0-10.4-3.4-20.5-9.6-28.8L112 341.3z"]},H8={prefix:"fas",iconName:"text-width",icon:[448,512,[],"f035","M64 128l0-32 128 0 0 128-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-128 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L224 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 192 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-192 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z"]},or={prefix:"fas",iconName:"hat-wizard",icon:[512,512,[],"f6e8","M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6l0 1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416l-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416 64 416zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},mh={prefix:"fas",iconName:"pen-fancy",icon:[512,512,[128395,10002],"f5ac","M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.3 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z"]},gh={prefix:"fas",iconName:"person-digging",icon:[576,512,["digging"],"f85e","M208 64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2l-256 0c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7l32 0 22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-74.9-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z"]},$f=gh,IC={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.7L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-7.2-14.3C307.4 6.8 296.3 0 284.2 0L163.8 0c-12.1 0-23.2 6.8-28.6 17.7zM416 128L32 128 53.2 467c1.6 25.3 22.6 45 47.9 45l245.8 0c25.3 0 46.3-19.7 47.9-45L416 128z"]},nr={prefix:"fas",iconName:"gauge-simple",icon:[512,512,["gauge-simple-med","tachometer-average"],"f629","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3L280 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 204.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z"]},Hm=nr,p6=nr,e0={prefix:"fas",iconName:"book-medical",icon:[448,512,[],"f7e6","M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM208 112l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"]},PC={prefix:"fas",iconName:"poo",icon:[512,512,[128169],"f2fe","M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z"]},zp={prefix:"fas",iconName:"quote-right",icon:[448,512,[8221,"quote-right-alt"],"f10e","M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72z"]},Jh=zp,Fp={prefix:"fas",iconName:"shirt",icon:[640,512,[128085,"t-shirt","tshirt"],"f553","M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0l12.6 0c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7 480 448c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-250.3-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0l12.6 0z"]},t0=Fp,m6=Fp,kp={prefix:"fas",iconName:"cubes",icon:[576,512,[],"f1b3","M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5l0 112.2c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7L0 413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3l0-119.1c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3l0-112.2c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2 0-89.2L392 121l0 89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4l0-100.5L256 323.2l0 95.9-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1 0-100.5L528 323.2l0 90.7c0 3.2-1.9 6-4.8 7.3z"]},$h={prefix:"fas",iconName:"divide",icon:[448,512,[10135,247],"f529","M272 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 320a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0z"]},O1={prefix:"fas",iconName:"tenge-sign",icon:[384,512,[8376,"tenge"],"f7d7","M0 64C0 46.3 14.3 32 32 32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32l160 0 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224L32 224c-17.7 0-32-14.3-32-32z"]},Up=O1,Ym={prefix:"fas",iconName:"headphones",icon:[512,512,[127911],"f025","M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80l0-16 0-48 0-48C0 146.6 114.6 32 256 32s256 114.6 256 256l0 48 0 48 0 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z"]},bc={prefix:"fas",iconName:"hands-holding",icon:[640,512,[],"f4c2","M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104l0 56 0 64L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3c0 0 0 0 0 0l-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 224l0-80 0-40zm480 0l0 40 0 80 0 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2c0 0 0 0 0 0l-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 224l0-64 0-56c0-22.1-17.9-40-40-40s-40 17.9-40 40z"]},OC={prefix:"fas",iconName:"hands-clapping",icon:[512,512,[],"e1a8","M336 16l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM424.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z"]},i0={prefix:"fas",iconName:"republican",icon:[640,512,[],"f75e","M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64L0 256l0-64zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160l192 0 96 0 32 0 64 0 32 0 0 32 0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 32 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64 0-96 128 0z"]},Y8={prefix:"fas",iconName:"arrow-left",icon:[448,512,[8592],"f060","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"]},g6={prefix:"fas",iconName:"person-circle-xmark",icon:[576,512,[],"e543","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"]},Sc={prefix:"fas",iconName:"ruler",icon:[512,512,[128207],"f545","M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z"]},IE={prefix:"fas",iconName:"align-left",icon:[448,512,[],"f036","M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"]},RC={prefix:"fas",iconName:"dice-d6",icon:[448,512,[],"f6d1","M201 10.3c14.3-7.8 31.6-7.8 46 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L201 10.3zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14l0 216c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L25 423.1C9.6 414.7 0 398.6 0 381L0 184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8l0 197c0 17.6-9.6 33.7-25 42.1L263.7 510c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8l0-216c0-5.9 3.2-11.2 8.3-14l176-96z"]},vS={prefix:"fas",iconName:"restroom",icon:[640,512,[],"f7bd","M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128l8 0c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1L584 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z"]},DC={prefix:"fas",iconName:"j",icon:[320,512,[106],"4a","M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z"]},X8={prefix:"fas",iconName:"users-viewfinder",icon:[640,512,[],"e595","M48 48l88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L32 0C14.3 0 0 14.3 0 32L0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6l56.1 0zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80-32a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM504 48l88 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-17.7-14.3-32-32-32L504 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464l0-88c0-13.3-10.7-24-24-24s-24 10.7-24 24L0 480c0 17.7 14.3 32 32 32l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0c17.7 0 32-14.3 32-32l0-104c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 88-88 0z"]},NC={prefix:"fas",iconName:"file-video",icon:[384,512,[],"f1c8","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96zM300.9 397.9L256 368l0-64 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z"]},Z8={prefix:"fas",iconName:"up-right-from-square",icon:[512,512,["external-link-alt"],"f35d","M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-128c0-17.7-14.3-32-32-32L352 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"]},wC=Z8,BC={prefix:"fas",iconName:"table-cells",icon:[512,512,["th"],"f00a","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 64l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0zM64 224l88 0 0 64-88 0 0-64zm232 0l0 64-88 0 0-64 88 0zm64 0l88 0 0 64-88 0 0-64zM152 352l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0z"]},zC=BC,FC={prefix:"fas",iconName:"file-pdf",icon:[512,512,[],"f1c1","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z"]},kC={prefix:"fas",iconName:"book-bible",icon:[448,512,["bible"],"f647","M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 112c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-112-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},UC=kC,jC={prefix:"fas",iconName:"o",icon:[448,512,[111],"4f","M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256A224 224 0 1 1 0 256a224 224 0 1 1 448 0z"]},AS={prefix:"fas",iconName:"suitcase-medical",icon:[512,512,["medkit"],"f0fa","M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40 0 32 0 352 256 0 0-352 0-32 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM96 96L64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0L96 96zM416 480l32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0 0 384zM224 208c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},VC=AS,_6={prefix:"fas",iconName:"user-secret",icon:[448,512,[128373],"f21b","M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48l-59.9 0C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4l-59.9 0c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.8 3.3-8.8 6.1-15.5 6.1zm56 208l-12.4 0c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2L168 224c-22.1 0-40-17.9-40-40l0-14.4c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4l0 14.4c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z"]},K8={prefix:"fas",iconName:"otter",icon:[640,512,[129446],"f700","M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-48 0-16c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16l0 32 0 16 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1s0 0 0 0c0 123.7-100.3 224-224 224l-1.1 0L256 480l-.6 0C132 480 32 380 32 256.6l0-.6 0-39.2c-10.1-14.6-16-32.3-16-51.4L16 144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"]},q8={prefix:"fas",iconName:"person-dress",icon:[320,512,["female"],"f182","M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM88 384l-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3l11.6 0c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1L232 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z"]},PE=q8,v6={prefix:"fas",iconName:"comment-dollar",icon:[512,512,[],"f651","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312l0 13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9l0 13.8c0 11-9 20-20 20s-20-9-20-20l0-14.6c-10.3-2.2-20-5.5-28.2-8.4c0 0 0 0 0 0s0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c0 0 0 0 0 0c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5l0-14c0-11 9-20 20-20s20 9 20 20z"]},Xm={prefix:"fas",iconName:"business-time",icon:[640,512,["briefcase-clock"],"f64a","M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 160 0 8.2 0c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7l0-32.7c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM320 352l-96 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l296.2 0C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 288c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z"]},A6=Xm,Q8={prefix:"fas",iconName:"table-cells-large",icon:[512,512,["th-large"],"f009","M448 96l0 128-160 0 0-128 160 0zm0 192l0 128-160 0 0-128 160 0zM224 224L64 224 64 96l160 0 0 128zM64 288l160 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]},CS=Q8,J8={prefix:"fas",iconName:"book-tanakh",icon:[448,512,["tanakh"],"f827","M352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0L64 0 352 0zm0 384L96 384l0 64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24-27.7 0 13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24l55.4 0 27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48 55.4 0c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24l-55.4 0L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48L111 112c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48 55.4 0 27.7 48-27.7 48-55.4 0-27.7-48zm0-48l-13.9 24-13.9-24 27.7 0zm41.6-24L208 88l13.9 24-27.7 0zm69.3 24l27.7 0-13.9 24-13.9-24zm13.9 72l13.9 24-27.7 0 13.9-24zm-55.4 48L208 280l-13.9-24 27.7 0z"]},GC=J8,WC={prefix:"fas",iconName:"phone-volume",icon:[512,512,["volume-control-phone"],"f2a0","M280 0C408.1 0 512 103.9 512 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32-72c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24zM117.5 1.4c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L144 207.3c33.3 70.4 90.3 127.4 160.7 160.7L345 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C481.8 499.9 466 512 448 512C200.6 512 0 311.4 0 64C0 46 12.1 30.2 29.5 25.4l88-24z"]},xS=WC,bS={prefix:"fas",iconName:"hat-cowboy-side",icon:[640,512,[],"f8c1","M152.7 135.9l-10.4 57.2c6.8-.7 13.6-1.1 20.5-1.1l10.7 0c39.4 0 77.8 12.1 110.1 34.7L562.4 421.8l35.1 24.6c24.4-6 42.5-28.1 42.5-54.4c0-75.8-94.7-126.6-134.6-144.7L474 83.9C468.2 53.8 441.8 32 411.1 32l-2.7 0c-5.6 0-11.1 .7-16.5 2.2L199.2 85.5c-23.9 6.4-42 26-46.5 50.4zM0 384c0 35.3 28.7 64 64 64l480 0L265.3 252.9c-26.9-18.8-58.9-28.9-91.8-28.9l-10.7 0c-60.6 0-116 34.2-143.1 88.4L13.5 325C4.6 342.7 0 362.3 0 382.2L0 384z"]},SS={prefix:"fas",iconName:"clipboard-user",icon:[384,512,[],"f7f3","M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM128 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16z"]},yS={prefix:"fas",iconName:"child",icon:[320,512,[],"f1ae","M96 64a64 64 0 1 1 128 0A64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192.2L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z"]},C6={prefix:"fas",iconName:"lira-sign",icon:[320,512,[8356],"f195","M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4L48 192l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 32-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l14 0c-2.2 10.5-6.1 20.6-11.7 29.9L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L88.5 416l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9L224 352c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-32 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-31.6z"]},OE={prefix:"fas",iconName:"satellite",icon:[512,512,[128752],"f7bf","M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z"]},HC={prefix:"fas",iconName:"plane-lock",icon:[640,512,[],"e558","M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 84.6 101.8 58.2C418 247.6 416 259.6 416 272l0 24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1l0 70.9 57.6 43.2c4 3 6.4 7.8 6.4 12.8l0 24 0 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14l0-42c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8l0-65.5c0-5.7 3.1-11 8.1-13.9L192 178.3l0-84.6zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"]},MS={prefix:"fas",iconName:"tag",icon:[448,512,[127991],"f02b","M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},ES={prefix:"fas",iconName:"comment",icon:[512,512,[128489,61669],"f075","M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z"]},x6={prefix:"fas",iconName:"cake-candles",icon:[448,512,[127874,"birthday-cake","cake"],"f1fd","M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2L56 72c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c-35.3 0-64 28.7-64 64l0 71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4c0 0 0 0 0 0s0 0 0 0l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0l.1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9l0-71c0-35.3-28.7-64-64-64l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4L0 480c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32l0-85.4z"]},RE=x6,$8=x6,TS={prefix:"fas",iconName:"envelope",icon:[512,512,[128386,9993,61443],"f0e0","M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"]},ev={prefix:"fas",iconName:"angles-up",icon:[448,512,["angle-double-up"],"f102","M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z"]},Hd=ev,DE={prefix:"fas",iconName:"paperclip",icon:[448,512,[128206],"f0c6","M364.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z"]},YC={prefix:"fas",iconName:"arrow-right-to-city",icon:[640,512,[],"e4b3","M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 144 40 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 24 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0-96 0c-26.5 0-48-21.5-48-48l0-416zm64 32l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 272l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l114.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z"]},Zm={prefix:"fas",iconName:"ribbon",icon:[448,512,[127895],"f4d6","M333.2 322.8s0 0 0 0l-133.9-146s0 0 0 0L146 118.6c7.8-5.1 37-22.6 78-22.6s70.2 17.4 78 22.6L245.7 180l85.6 93.4 27.4-29.8c16.3-17.7 25.3-40.9 25.3-65l0-29.5c0-19-5.6-37.5-16.1-53.3L327.8 35.6C312.9 13.4 287.9 0 261.2 0l-76 0c-25.8 0-50.1 12.5-65.1 33.5L81.9 87C70.3 103.2 64 122.8 64 142.8L64 164c0 23.2 8.4 45.6 23.6 63.1l56 64.2s0 0 0 0l83.3 95.6s0 0 0 0l91.8 105.3c10 11.5 26.8 14.3 40 6.8l54.5-31.1c17.8-10.2 21.6-34.3 7.7-49.4l-87.7-95.7zM205.2 410.6l-83.3-95.6L27.1 418.5c-13.9 15.1-10.1 39.2 7.7 49.4l55.1 31.5c13 7.4 29.3 4.9 39.4-6.1l75.9-82.6z"]},tv={prefix:"fas",iconName:"lungs",icon:[640,512,[129729],"f604","M320 0c17.7 0 32 14.3 32 32l0 132.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2 0-45.5C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4l0 7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398l0-73 90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1l0-.4-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58 0 73.4c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89l0-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3l0 45.5 9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5L288 32c0-17.7 14.3-32 32-32z"]},Yd={prefix:"fas",iconName:"arrow-up-9-1",icon:[576,512,["sort-numeric-up-alt"],"f887","M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3 192 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-301.7L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM450.7 294c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zm-5-145.1A32 32 0 1 0 418.3 91a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z"]},XC=Yd,ZC={prefix:"fas",iconName:"litecoin-sign",icon:[384,512,[],"e1d3","M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 149.6L23.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L64 280.1 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-154.1 136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L128 195.3 128 64z"]},s0={prefix:"fas",iconName:"border-none",icon:[448,512,[],"f850","M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"]},Km={prefix:"fas",iconName:"circle-nodes",icon:[512,512,[],"e4e2","M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z"]},KC={prefix:"fas",iconName:"parachute-box",icon:[512,512,[],"f4cd","M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16L240 192l0 128-32 0c-7 0-13.7 1.5-19.7 4.2L68.2 192l28.3 0c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192l6 0L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7l0 96c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-96c0-7.8-1.9-15.2-5.2-21.7L487.1 192l6 0c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16l28.3 0L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2l-32 0 0-128 111.5 0z"]},iv={prefix:"fas",iconName:"indent",icon:[448,512,[],"f03c","M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"]},qC={prefix:"fas",iconName:"truck-field-un",icon:[640,512,[],"e58e","M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-32c0-35.3-28.7-64-64-64l-4.2 0c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38l-51.8 0C364.4 44.9 343.7 32 320 32L96 32zm288 96l43.2 0 42.7 96L384 224l0-96zM112 384a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM253.3 135.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},qm={prefix:"fas",iconName:"hourglass",icon:[384,512,[9203,62032,"hourglass-empty"],"f254","M0 32C0 14.3 14.3 0 32 0L64 0 320 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11L96 64zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z"]},b6=qm,sv={prefix:"fas",iconName:"mountain",icon:[512,512,[127956],"f6fc","M256 32c12.5 0 24.1 6.4 30.8 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9L55.9 480C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5l18.3 24.4c6.4 8.5 19.2 8.5 25.6 0l25.6-34.1c6-8.1 15.5-12.8 25.6-12.8l49 0z"]},QC={prefix:"fas",iconName:"user-doctor",icon:[448,512,["user-md"],"f0f0","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1l0 50.8c27.6 7.1 48 32.2 48 62l0 40c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 24c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-40c0-29.8 20.4-54.9 48-62l0-57.1c-6-.6-12.1-.9-18.3-.9l-91.4 0c-6.2 0-12.3 .3-18.3 .9l0 65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7l0-59.1zM144 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},JC=QC,S6={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},NE=S6,$C={prefix:"fas",iconName:"cloud-meatball",icon:[512,512,[],"f73b","M0 224c0 53 43 96 96 96l44.7 0c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40l44.7 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},ex={prefix:"fas",iconName:"camera",icon:[512,512,[62258,"camera-alt"],"f030","M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L362.9 64.8C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},rv=ex,LS={prefix:"fas",iconName:"square-virus",icon:[448,512,[],"e578","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm88 32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},wE={prefix:"fas",iconName:"meteor",icon:[512,512,[9732],"f753","M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},tx={prefix:"fas",iconName:"car-on",icon:[512,512,[],"e4dd","M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zM185.8 224l140.3 0c6.8 0 12.8 4.3 15.1 10.6L360.3 288l-208.6 0 19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344l0 40 0 64 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 0-64 0-40c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160l-140.3 0c-33.8 0-64 21.3-75.3 53.1zM128 344a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm232 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z"]},IS={prefix:"fas",iconName:"sleigh",icon:[640,512,[],"f7cc","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l0 160c0 53 43 96 96 96l0 32 64 0 0-32 192 0 0 32 64 0 0-32c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0-32 0c-17.7 0-32 14.3-32 32l0 41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7l-9 0L32 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 8c0 13.3-10.7 24-24 24L64 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l488 0c48.6 0 88-39.4 88-88l0-8z"]},ix={prefix:"fas",iconName:"arrow-down-1-9",icon:[576,512,["sort-numeric-asc","sort-numeric-down"],"f162","M450.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l48 0 48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 301.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM418.3 307a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 307zM405.1 419.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z"]},BE=ix,zE=ix,nv={prefix:"fas",iconName:"hand-holding-droplet",icon:[576,512,["hand-holding-water"],"f4c1","M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3l0 1.7c0 53-43 96-96 96s-96-43-96-96l0-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z"]},FE=nv,PS={prefix:"fas",iconName:"water",icon:[576,512,[],"f773","M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},kE={prefix:"fas",iconName:"calendar-check",icon:[448,512,[],"f274","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z"]},UE={prefix:"fas",iconName:"braille",icon:[640,512,[],"f2a1","M0 96a64 64 0 1 1 128 0A64 64 0 1 1 0 96zM224 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM80 416a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 96a64 64 0 1 1 128 0A64 64 0 1 1 352 96zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0A64 64 0 1 1 512 96zm64 176a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM416 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"]},sx={prefix:"fas",iconName:"prescription-bottle-medical",icon:[384,512,["prescription-bottle-alt"],"f486","M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zm32 96l320 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zM160 240l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"]},jE=sx,rx={prefix:"fas",iconName:"landmark",icon:[512,512,[127963],"f66f","M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8L32 192c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9l0-.9 4.4-1.6L240.1 4.2zM64 224l64 0 0 192 40 0 0-192 64 0 0 192 48 0 0-192 64 0 0 192 40 0 0-192 64 0 0 196.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 224z"]},VE={prefix:"fas",iconName:"truck",icon:[640,512,[128666,9951],"f0d1","M48 0C21.5 0 0 21.5 0 48L0 368c0 26.5 21.5 48 48 48l16 0c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64 0-32 0-18.7c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7L416 96l0-48c0-26.5-21.5-48-48-48L48 0zM416 160l50.7 0L544 237.3l0 18.7-128 0 0-96zM112 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},av={prefix:"fas",iconName:"crosshairs",icon:[512,512,[],"f05b","M256 0c17.7 0 32 14.3 32 32l0 10.4c93.7 13.9 167.7 88 181.6 181.6l10.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.4 0c-13.9 93.7-88 167.7-181.6 181.6l0 10.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-10.4C130.3 455.7 56.3 381.7 42.4 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l10.4 0C56.3 130.3 130.3 56.3 224 42.4L224 32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6l0-20.6c0-17.7 14.3-32 32-32s32 14.3 32 32l0 20.6c58.3-12.5 104.1-58.4 116.6-116.6L384 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l20.6 0C392.1 165.7 346.3 119.9 288 107.4l0 20.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-20.6C165.7 119.9 119.9 165.7 107.4 224l20.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-20.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},OS={prefix:"fas",iconName:"person-cane",icon:[448,512,[],"e53c","M272 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z"]},RS={prefix:"fas",iconName:"tent",icon:[576,512,[],"e57d","M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7l-80 0-28.2 0c-12.1 0-23.2-6.8-28.6-17.7L306.7 293.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9L288 480c0 17.7-14.3 32-32 32l-16 0L32 512c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z"]},ov={prefix:"fas",iconName:"vest-patches",icon:[448,512,[],"e086","M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3L192 464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 128l0-73.7L64 48C64 21.5 85.5 0 112 0l4.5 0c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0L336 0c26.5 0 48 21.5 48 48l0 6.3 0 73.7 0 17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-168.2c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 8 0 32c0 8.8 7.2 16 16 16l32 0 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},nx={prefix:"fas",iconName:"check-double",icon:[448,512,[],"f560","M342.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 54.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z"]},Y2={prefix:"fas",iconName:"arrow-down-a-z",icon:[576,512,["sort-alpha-asc","sort-alpha-down"],"f15d","M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352 352 352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224l-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176l40.4 0L416 135.6 395.8 176z"]},GE=Y2,lv=Y2,ax={prefix:"fas",iconName:"money-bill-wheat",icon:[512,512,[],"e52a","M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 64C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 136c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},ox={prefix:"fas",iconName:"cookie",icon:[512,512,[127850],"f563","M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},r0={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]},WE=r0,cv=r0,y6=r0,HE=r0,uv={prefix:"fas",iconName:"hard-drive",icon:[512,512,[128436,"hdd"],"f0a0","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 184.4c-17-15.2-39.4-24.4-64-24.4L64 256c-24.6 0-47 9.2-64 24.4L0 96zM64 288l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},YE=uv,hv={prefix:"fas",iconName:"face-grin-squint-tears",icon:[512,512,[129315,"grin-squint-tears"],"f586","M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-16.3 4.4-34.1 7.5-46.3 9.3c-1.6 .2-3.1 .5-4.6 .6c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.3-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z"]},jp=hv,dv={prefix:"fas",iconName:"dumbbell",icon:[640,512,[],"f44b","M96 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 160 0 64 0 160c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-32 0c-17.7 0-32-14.3-32-32l0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l32 0 0-64zm448 0l0 64 32 0c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 17.7-14.3 32-32 32l-32 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-160 0-64 0-160c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32zM416 224l0 64-192 0 0-64 192 0z"]},lo={prefix:"fas",iconName:"rectangle-list",icon:[576,512,["list-alt"],"f022","M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32-128a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0z"]},fv=lo,lx={prefix:"fas",iconName:"tarp-droplet",icon:[576,512,[],"e57c","M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128l133.5 0c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64L512 128c35.3 0 64 28.7 64 64l0 160-128 0c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zM448 512l0-128 128 0L448 512zM96 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Qm={prefix:"fas",iconName:"house-medical-circle-check",icon:[640,512,[],"e511","M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm32 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},Jm={prefix:"fas",iconName:"person-skiing-nordic",icon:[576,512,["skiing-nordic"],"f7ca","M336 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464l-88.5 0 41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464l-32.4 0 54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464l-43 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l135.3 0c.5 0 .9 0 1.4 0l158.6 0c.5 0 1 0 1.4 0L504 512c39.8 0 72-32.2 72-72l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 13.3-10.7 24-24 24l-69.4 0 27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32l-21.3 0c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464l-44.4 0 21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288l2.7 0z"]},Hr=Jm,_h={prefix:"fas",iconName:"calendar-plus",icon:[448,512,[],"f271","M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272zM224 248c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0 0-56c0-13.3 10.7-24 24-24z"]},DS={prefix:"fas",iconName:"plane-arrival",icon:[640,512,[128748],"f5af","M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0l40.1 0c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14.1-9.3-22.5zM32 448l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Ou={prefix:"fas",iconName:"circle-left",icon:[512,512,[61840,"arrow-alt-circle-left"],"f359","M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM116.7 244.7l112-112c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 64 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 64c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-112-112c-6.2-6.2-6.2-16.4 0-22.6z"]},$m=Ou,Yl={prefix:"fas",iconName:"train-subway",icon:[448,512,["subway"],"f239","M96 0C43 0 0 43 0 96L0 352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512l39.7 0c8.5 0 16.6-3.4 22.6-9.4L160 448l128 0 54.6 54.6c6 6 14.1 9.4 22.6 9.4l39.7 0c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9l0-256c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l80 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32-14.3-32-32l0-96zM272 96l80 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM64 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Ru=Yl,M6={prefix:"fas",iconName:"chart-gantt",icon:[512,512,[],"e0e4","M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zm96 64l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},Du={prefix:"fas",iconName:"indian-rupee-sign",icon:[320,512,["indian-rupee","inr"],"e1bc","M0 64C0 46.3 14.3 32 32 32l64 0 16 0 176 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-56.2 0c9.6 14.4 16.7 30.6 20.7 48l35.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-35.6 0c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c32.8 0 61-19.7 73.3-48L32 208c-17.7 0-32-14.3-32-32s14.3-32 32-32l153.3 0C173 115.7 144.8 96 112 96L96 96 32 96C14.3 96 0 81.7 0 64z"]},js=Du,cl=Du,Sa={prefix:"fas",iconName:"crop-simple",icon:[512,512,["crop-alt"],"f565","M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z"]},Ll=Sa,vh={prefix:"fas",iconName:"money-bill-1",icon:[576,512,["money-bill-alt"],"f3d1","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm64 320l-64 0 0-64c35.3 0 64 28.7 64 64zM64 192l0-64 64 0c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm76-48c0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l24 0 24 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20z"]},Vs=vh,on={prefix:"fas",iconName:"left-long",icon:[512,512,["long-arrow-alt-left"],"f30a","M177.5 414c-8.8 3.8-19 2-26-4.6l-144-136C2.7 268.9 0 262.6 0 256s2.7-12.9 7.5-17.4l144-136c7-6.6 17.2-8.4 26-4.6s14.5 12.5 14.5 22l0 72 288 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-288 0 0 72c0 9.6-5.7 18.2-14.5 22z"]},Oa=on,So={prefix:"fas",iconName:"dna",icon:[448,512,[129516],"f471","M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0l-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5l118.5 0c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l320 0c0-17.7 14.3-32 32-32zM338.6 384l-229.2 0c-10.1 10.6-18.6 21.3-25.5 32l280.2 0c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128l229.2 0c10.1-10.7 18.6-21.3 25.5-32L83.9 96c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5l-118.5 0z"]},Ah={prefix:"fas",iconName:"virus-slash",icon:[640,512,[],"e075","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1l11.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM402 412.7L144.7 210c-9.5 8.5-22.2 14-37.2 14L96 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l11.5 0c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6l0 11.5c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11.5c0-31.2 23.6-52.7 50-55.7z"]},R1={prefix:"fas",iconName:"minus",icon:[448,512,[8211,8722,10134,"subtract"],"f068","M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"]},Xo=R1,e4={prefix:"fas",iconName:"chess",icon:[512,512,[],"f439","M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 16L96 32c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0 0 32L60.2 96C49.1 96 40 105.1 40 116.2c0 2.5 .5 4.9 1.3 7.3L73.8 208 72 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l4 0L60 384l136 0L180 256l4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-1.8 0 32.5-84.5c.9-2.3 1.3-4.8 1.3-7.3c0-11.2-9.1-20.2-20.2-20.2L144 96l0-32 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16zM48 416L4.8 473.6C1.7 477.8 0 482.8 0 488c0 13.3 10.7 24 24 24l208 0c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L208 416 48 416zm288 0l-43.2 57.6c-3.1 4.2-4.8 9.2-4.8 14.4c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L464 416l-128 0zM304 208l0 51.9c0 7.8 2.8 15.3 8 21.1L339.2 312 337 384l125.5 0-3.3-72 28.3-30.8c5.4-5.9 8.5-13.6 8.5-21.7l0-51.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 16-24 0 0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 16-24 0 0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16zm80 96c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32-32 0 0-32z"]},D1={prefix:"fas",iconName:"arrow-left-long",icon:[512,512,["long-arrow-left"],"f177","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z"]},n0=D1,a0={prefix:"fas",iconName:"plug-circle-check",icon:[576,512,[],"e55c","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},pv={prefix:"fas",iconName:"street-view",icon:[512,512,[],"f21d","M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64l0 48c0 17.7 14.3 32 32 32l1.8 0 11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5l38.7 0c16.3 0 30-12.3 31.8-28.5L318.2 304l1.8 0c17.7 0 32-14.3 32-32l0-48c0-35.3-28.7-64-64-64l-64 0zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z"]},o0={prefix:"fas",iconName:"franc-sign",icon:[320,512,[],"e18f","M80 32C62.3 32 48 46.3 48 64l0 160 0 96-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"]},E6={prefix:"fas",iconName:"volume-off",icon:[320,512,[],"f026","M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160 64 160c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l67.8 0L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448l0-384z"]},ms={prefix:"fas",iconName:"hands-asl-interpreting",icon:[640,512,["american-sign-language-interpreting","asl-interpreting","hands-american-sign-language-interpreting"],"f2a3","M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l72 0 8 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-72 0-8 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z"]},t4=ms,cx=ms,Xd=ms,Zd={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},fs=Zd,X2={prefix:"fas",iconName:"droplet-slash",icon:[640,512,["tint-slash"],"f5c7","M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.2 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0l-1.8 0c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},i4=X2,l0={prefix:"fas",iconName:"mosque",icon:[640,512,[128332],"f678","M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5c0 0 0 0 0 0s0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4l-356.4 0c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6c0 0 0 0 0 0s0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512l0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-48 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l416 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-58c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454l0 58-64 0zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126l0 2L0 128l0-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160l160 0 0 136.6c-19.1 11.1-32 31.7-32 55.4l0 128c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2l-64 0c-26.5 0-48-21.5-48-48L0 176l0-16z"]},Kd={prefix:"fas",iconName:"mosquito",icon:[640,512,[],"e52b","M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z"]},Nu={prefix:"fas",iconName:"star-of-david",icon:[512,512,[10017],"f69a","M404.2 309.5L383.1 344l42.3 0-21.1-34.5zM371.4 256l-54-88-122.8 0-54 88 54 88 122.8 0 54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4l-109.8 0-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400 53.4 400C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112l109.8 0 56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112l109.8 0c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168l-42.3 0zM283 112L256 68l-27 44 54 0zM128.9 168l-42.3 0 21.1 34.5L128.9 168zM107.8 309.5L86.6 344l42.3 0-21.1-34.5zM229 400l27 44 27-44-54 0z"]},T6={prefix:"fas",iconName:"person-military-rifle",icon:[512,512,[],"e54b","M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4L352 48c0 8.8-7.2 16-16 16L185 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7 352 480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},c0={prefix:"fas",iconName:"cart-shopping",icon:[576,512,[128722,"shopping-cart"],"f07a","M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},L6=c0,mv={prefix:"fas",iconName:"vials",icon:[512,512,[],"f493","M0 64C0 46.3 14.3 32 32 32l56 0 48 0 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 304c0 44.2-35.8 80-80 80s-80-35.8-80-80L32 96C14.3 96 0 81.7 0 64zM136 96L88 96l0 160 48 0 0-160zM288 64c0-17.7 14.3-32 32-32l56 0 48 0 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 304c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-304c-17.7 0-32-14.3-32-32zM424 96l-48 0 0 160 48 0 0-160z"]},ed={prefix:"fas",iconName:"plug-circle-plus",icon:[576,512,[],"e55f","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},Vp={prefix:"fas",iconName:"place-of-worship",icon:[640,512,[],"f67f","M224 109.3l0 108.3L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2L160 512l96 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 96 0 0-228.8c0-16.9-8.8-32.5-23.3-41.2L416 217.6l0-108.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4L0 464c0 26.5 21.5 48 48 48l80 0 0-238.4L24.9 330.3zM592 512c26.5 0 48-21.5 48-48l0-91.6c0-17.5-9.5-33.6-24.9-42.1L512 273.6 512 512l80 0z"]},N1={prefix:"fas",iconName:"grip-vertical",icon:[320,512,[],"f58e","M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z"]},qd={prefix:"fas",iconName:"hexagon-nodes",icon:[448,512,[],"e699","M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56s56-25.1 56-56c0-22.3-13.1-41.6-32-50.6l0-98.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-1.6 20.8 8.6 41.6 27.8 52.8c26.8 15.5 61 6.3 76.5-20.5s6.3-61-20.5-76.5c-1.3-.8-2.7-1.5-4-2.1l0-90.8c1.4-.6 2.7-1.3 4-2.1c26.8-15.5 36-49.7 20.5-76.5S390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c2.6 1.8 5.2 3.3 8 4.7l0 90.8c-2.8 1.3-5.5 2.9-8 4.6l-80.1-45.8c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8z"]},s4={prefix:"fas",iconName:"arrow-turn-up",icon:[384,512,["level-up"],"f148","M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z"]},r4=s4,td={prefix:"fas",iconName:"u",icon:[384,512,[117],"55","M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z"]},Z2={prefix:"fas",iconName:"square-root-variable",icon:[576,512,["square-root-alt"],"f698","M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8L282.6 78.1zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z"]},K2=Z2,Xl={prefix:"fas",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},w1=Xl,n4={prefix:"fas",iconName:"backward-step",icon:[320,512,["step-backward"],"f048","M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-320c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241 64 96c0-17.7-14.3-32-32-32S0 78.3 0 96L0 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-145 11.5 9.6 192 160z"]},ul=n4,gv={prefix:"fas",iconName:"pallet",icon:[640,512,[],"f482","M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 224 0 224 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-224 0L96 320l-64 0zm96 64l160 0 0 64-160 0 0-64zm224 0l160 0 0 64-160 0 0-64z"]},Za={prefix:"fas",iconName:"faucet",icon:[512,512,[],"e005","M192 96l0 12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12 0-12c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4L256 224l0-43.8-32-4-32 4 0 43.8-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 256l-96 0z"]},B1={prefix:"fas",iconName:"baseball-bat-ball",icon:[512,512,[],"f432","M424 0c-12.4 0-24.2 4.9-33 13.7L233.5 171.2c-10.5 10.5-19.8 22.1-27.7 34.6L132.7 321.6c-7.3 11.5-15.8 22.2-25.5 31.9L69.9 390.7l51.3 51.3 37.3-37.3c9.6-9.6 20.3-18.2 31.9-25.5l115.8-73.1c12.5-7.9 24.1-17.2 34.6-27.7L498.3 121c8.7-8.7 13.7-20.6 13.7-33s-4.9-24.2-13.7-33L457 13.7C448.2 4.9 436.4 0 424 0zm88 432a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM15 399c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L49 399c-9.4-9.4-24.6-9.4-33.9 0z"]},XE={prefix:"fas",iconName:"s",icon:[320,512,[115],"53","M99.1 105.4C79 114 68.2 127.2 65.2 144.8c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0s0 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3C5.1 440.8-3.9 422.7 1.6 405.9s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5L2.1 133.9C9.4 91.4 37.4 62.2 73.9 46.6c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.2 22.7c-11.2-3-48.1-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z"]},Ka={prefix:"fas",iconName:"timeline",icon:[640,512,[],"e29c","M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3L96 224l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0 54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-320 0 0-54.7zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},a4={prefix:"fas",iconName:"keyboard",icon:[576,512,[9e3],"f11c","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32zM272 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM368 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM464 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z"]},id={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]},ux={prefix:"fas",iconName:"house-chimney-medical",icon:[576,512,["clinic-medical"],"f7f2","M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0z"]},hx=ux,q2={prefix:"fas",iconName:"temperature-three-quarters",icon:[320,512,["temperature-3","thermometer-3","thermometer-three-quarters"],"f2c8","M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 144c0-8.8 7.2-16 16-16s16 7.2 16 16l0 178.7c18.6 6.6 32 24.4 32 45.3z"]},dx=q2,NS=q2,_v=q2,o4={prefix:"fas",iconName:"mobile-screen",icon:[384,512,["mobile-android-alt"],"f3cf","M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM144 448c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zM304 64L80 64l0 320 224 0 0-320z"]},fx=o4,l4={prefix:"fas",iconName:"plane-up",icon:[512,512,[],"e22d","M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6l0 56.7c0 10.9-10.7 18.6-21.1 15.2L320 320l0 80 57.6 43.2c4 3 6.4 7.8 6.4 12.8l0 42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14l0-42c0-5 2.4-9.8 6.4-12.8L192 400l0-80L21.1 377C10.7 380.4 0 372.7 0 361.8l0-56.7c0-10.7 5.3-20.7 14.2-26.6L192 160l0-66.3z"]},px={prefix:"fas",iconName:"piggy-bank",icon:[576,512,[],"f4d3","M400 96l0 .7c-5.3-.4-10.6-.7-16-.7L256 96c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96l11.5 0c10.4 0 18 9.8 15.5 19.9l-13.8 55.2c15.8 14.8 28.7 32.8 37.5 52.9l13.3 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-32 0c-9.1 12.1-19.9 22.9-32 32l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c-34.9-26.2-58.7-66.3-63.2-112L68 304c-37.6 0-68-30.4-68-68s30.4-68 68-68l4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-4 0c-11 0-20 9-20 20s9 20 20 20l31.2 0c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2l128 0zm64 136a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},c4={prefix:"fas",iconName:"battery-half",icon:[576,512,["battery-3"],"f242","M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm208 96L96 192l0 128 192 0 0-128z"]},I6=c4,u4={prefix:"fas",iconName:"mountain-city",icon:[640,512,[],"e52e","M336 0c-26.5 0-48 21.5-48 48l0 92.1 71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-3.5 0 73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3L592 512c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48l-24 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-40 0 0-144c0-26.5-21.5-48-48-48L336 0zm32 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm160 96c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM224 188.9L283.8 288 223 288l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512l379.1 0c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z"]},Q2={prefix:"fas",iconName:"coins",icon:[512,512,[],"f51e","M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2c0 0 0 0 0 0s0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4l0 3.4 0 5.7 0 26.3zm32 0l0-32 0-25.9c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 44.2-86 80-192 80S0 476.2 0 432l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z"]},wS={prefix:"fas",iconName:"khanda",icon:[512,512,[9772],"f66d","M245.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0l-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C344.9 97.4 368 134 368 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1s0 0 0 0s0 0 0 0c3.6 6.7 2 15-3.8 19.9L272 343.5l0 19.8 35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L401.1 80c7.2-14.3 7.2-14.3 7.2-14.3s0 0 0 0s0 0 0 0l.1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1c0 0 0 0 0 0s0 0 0 0L401.1 400l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L272 423.4l0 28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7C197.8 463.3 187.9 472 176 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L112 400c-10.2 12.3-10.2 12.3-10.3 12.3s0 0 0 0s0 0 0 0l-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C26.4 324.5 0 277.1 0 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29C93 72.5 97 70 99.9 68.4c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0c0 0 0 0 0 0s0 0 0 0L112 80l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C105.2 119 96 149.5 96 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L240 362.6l0-19.1-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0l.1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C167.1 254.6 144 218 144 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1s0 0 0 0s0 0 0 0s0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM220.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C227 210.2 232 190.9 232 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C285 141.8 280 161.1 280 176s5 34.2 11.8 53.1z"]},P6={prefix:"fas",iconName:"sliders",icon:[512,512,["sliders-h"],"f1de","M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z"]},BS=P6,vv={prefix:"fas",iconName:"folder-tree",icon:[576,512,[],"f802","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32l0 96L0 384c0 35.3 28.7 64 64 64l192 0 0-64L64 384l0-224 192 0 0-64L64 96l0-64zM288 192c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-98.7 0c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4L320 0c-17.7 0-32 14.3-32 32l0 160zm0 288c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-98.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L320 288c-17.7 0-32 14.3-32 32l0 160z"]},Av={prefix:"fas",iconName:"network-wired",icon:[640,512,[],"f6ff","M256 64l128 0 0 64-128 0 0-64zM240 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l48 0 0 32L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-48 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l160 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0-32 256 0 0 32-48 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l160 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-32 48 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48L240 0zM96 448l0-64 128 0 0 64L96 448zm320-64l128 0 0 64-128 0 0-64z"]},ZE={prefix:"fas",iconName:"map-pin",icon:[320,512,[128205],"f276","M16 144a144 144 0 1 1 288 0A144 144 0 1 1 16 144zM160 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM128 480l0-162.9c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9L192 480c0 17.7-14.3 32-32 32s-32-14.3-32-32z"]},u0={prefix:"fas",iconName:"hamsa",icon:[512,512,[],"f665","M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},KE={prefix:"fas",iconName:"cent-sign",icon:[384,512,[],"e3f5","M224 0c17.7 0 32 14.3 32 32l0 34.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3L192 32c0-17.7 14.3-32 32-32z"]},qE={prefix:"fas",iconName:"flask",icon:[448,512,[],"f0c3","M288 0L160 0 128 0C110.3 0 96 14.3 96 32s14.3 32 32 32l0 132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512l309.2 0c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5L320 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L288 0zM192 196.8L192 64l64 0 0 132.8c0 23.7 6.6 46.9 19 67.1L309.5 320l-171 0L173 263.9c12.4-20.2 19-43.4 19-67.1z"]},QE={prefix:"fas",iconName:"person-pregnant",icon:[384,512,[],"e31e","M192 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM120 383c-13.8-3.6-24-16.1-24-31l0-55.1-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1l1.1 0 12.5 0 2.4 0c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3l0 32c0 17.7-14.3 32-32 32l-16 0-40 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-8 0-8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-97z"]},mx={prefix:"fas",iconName:"wand-sparkles",icon:[512,512,[],"f72b","M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z"]},Gp={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"]},JE=Gp,Wp={prefix:"fas",iconName:"ticket",icon:[576,512,[127903],"f145","M64 64C28.7 64 0 92.7 0 128l0 64c0 8.8 7.4 15.7 15.7 18.6C34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6C541.5 294.9 528 277 528 256s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zm64 112l0 160c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-160c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16zM96 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32l0-192z"]},zS={prefix:"fas",iconName:"power-off",icon:[512,512,[9211],"f011","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z"]},gx={prefix:"fas",iconName:"right-long",icon:[512,512,["long-arrow-alt-right"],"f30b","M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 72L32 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l288 0 0 72c0 9.6 5.7 18.2 14.5 22z"]},FS=gx,$E={prefix:"fas",iconName:"flag-usa",icon:[448,512,[],"f74d","M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 136.3l0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 203.1l0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 232.3l0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 299.1l0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 328.3l0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 400l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64 0-70.5 0-32.7 0-63.3 0-32.7 0-63.3 0-32.7L0 64 0 32C0 14.3 14.3 0 32 0zm80 96A16 16 0 1 0 80 96a16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},yc={prefix:"fas",iconName:"laptop-file",icon:[640,512,[],"e51d","M128 0C92.7 0 64 28.7 64 64l0 224-44.8 0C8.6 288 0 296.6 0 307.2C0 349.6 34.4 384 76.8 384L320 384l0-96-192 0 0-224 320 0 0 32 64 0 0-32c0-35.3-28.7-64-64-64L128 0zM512 128l-112 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-208-96 0c-17.7 0-32-14.3-32-32l0-96zm32 0l0 96 96 0-96-96z"]},kS={prefix:"fas",iconName:"tty",icon:[512,512,["teletype"],"f1e4","M38.3 241.3L15.1 200.6c-9.2-16.2-8.4-36.5 4.5-50C61.4 106.8 144.7 48 256 48s194.6 58.8 236.4 102.6c12.9 13.5 13.7 33.8 4.5 50l-23.1 40.7c-7.5 13.2-23.3 19.3-37.8 14.6l-81.1-26.6c-13.1-4.3-22-16.6-22-30.4l0-54.8c-49.6-18.1-104-18.1-153.6 0l0 54.8c0 13.8-8.9 26.1-22 30.4L76.1 255.8c-14.5 4.7-30.3-1.4-37.8-14.6zM32 336c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm0 96c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM144 320l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 432c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32z"]},_x=kS,eT={prefix:"fas",iconName:"diagram-next",icon:[512,512,[],"e476","M512 160c0 35.3-28.7 64-64 64l-168 0 0 64 46.1 0c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41l46.1 0 0-64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 64zM448 416l0-64-82.7 0 .4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4L64 352l0 64 146.7 0 5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7L448 416z"]},tT={prefix:"fas",iconName:"person-rifle",icon:[576,512,[],"e54e","M265.2 192c25.4 0 49.8 7.1 70.8 19.9L336 512l-192 0 0-174.3L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8l50.4 0zM160 80a80 80 0 1 1 160 0A80 80 0 1 1 160 80zM448 0c8.8 0 16 7.2 16 16l0 116.3c9.6 5.5 16 15.9 16 27.7l0 109.3 16-5.3 0-56c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 84.5c0 6.9-4.4 13-10.9 15.2L480 325.3l0 26.7 48 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-44 0 23 92.1c2.5 10.1-5.1 19.9-15.5 19.9L432 512c-8.8 0-16-7.2-16-16l0-96-16 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32l0-32c0-11.8 6.4-22.2 16-27.7L416 32c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 16 0z"]},sd={prefix:"fas",iconName:"house-medical-circle-exclamation",icon:[640,512,[],"e512","M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"]},iT={prefix:"fas",iconName:"closed-captioning",icon:[576,512,[],"f20a","M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z"]},vx={prefix:"fas",iconName:"person-hiking",icon:[384,512,["hiking"],"f6ec","M192 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm51.3 182.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9l0 89.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208l30.9 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 55.8c0 .1 0 .2 0 .2s0 .2 0 .2L384 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-216-39.4 0c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59l4.2 0c15.6 0 27.1 14.7 23.3 29.8z"]},sT=vx,Ax={prefix:"fas",iconName:"venus-double",icon:[640,512,[9890],"f226","M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-26.6-4.9-51.1-15.7-72-31.1z"]},z1={prefix:"fas",iconName:"images",icon:[576,512,[],"f302","M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320l-144 0-48 0-80 0c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224z"]},rT={prefix:"fas",iconName:"calculator",icon:[384,512,[128425],"f1ec","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"]},nT={prefix:"fas",iconName:"people-pulling",icon:[576,512,[],"e535","M80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352l15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z"]},aT={prefix:"fas",iconName:"n",icon:[384,512,[110],"4e","M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 50.5 8.4 38.5 21.1 33.9z"]},Cx={prefix:"fas",iconName:"cable-car",icon:[512,512,[128673,57551,"tram"],"f7da","M288 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 56a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-66.5-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5l0 76.5 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm64 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0zm112 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0z"]},h0=Cx,US={prefix:"fas",iconName:"cloud-rain",icon:[512,512,[127783,9926],"f73d","M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96L96 320zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3z"]},Cv={prefix:"fas",iconName:"building-circle-xmark",icon:[640,512,[],"e4d4","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},xx={prefix:"fas",iconName:"ship",icon:[576,512,[128674],"f21a","M192 32c0-17.7 14.3-32 32-32L352 0c17.7 0 32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 128 44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240l0-128c0-26.5 21.5-48 48-48l48 0 0-32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7l0-90.7-256 0 0 90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},xv={prefix:"fas",iconName:"arrows-down-to-line",icon:[576,512,[],"e4b8","M544 416L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L480 274.7 480 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L160 274.7 160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L54.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z"]},bx={prefix:"fas",iconName:"download",icon:[512,512,[],"f019","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},bv={prefix:"fas",iconName:"face-grin",icon:[512,512,[128512,"grin"],"f580","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Sv=bv,yv={prefix:"fas",iconName:"delete-left",icon:[576,512,[9003,"backspace"],"f55a","M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},h4=yv,O6={prefix:"fas",iconName:"eye-dropper",icon:[512,512,["eye-dropper-empty","eyedropper"],"f1fb","M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480l42.4 0c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7L96 416l0-36.1c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z"]},d4=O6,jS=O6,Mv={prefix:"fas",iconName:"file-circle-check",icon:[576,512,[],"e5a0","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},Sx={prefix:"fas",iconName:"forward",icon:[512,512,[9193],"f04e","M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3l0 41.7 0 41.7L52.5 440.6zM256 352l0-96 0-128 0-32c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29l0-64z"]},yx={prefix:"fas",iconName:"mobile",icon:[384,512,[128241,"mobile-android","mobile-phone"],"f3ce","M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm80 432l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},f4=yx,VS=yx,p4={prefix:"fas",iconName:"face-meh",icon:[512,512,[128528,"meh"],"f11a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM160 336l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},Ev=p4,Mx={prefix:"fas",iconName:"align-center",icon:[448,512,[],"f037","M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z"]},F1={prefix:"fas",iconName:"book-skull",icon:[448,512,["book-dead"],"f6b7","M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2l0 12.8c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-12.8c19.4-11.7 32-30.3 32-51.2zM208 96a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z"]},GS=F1,d0={prefix:"fas",iconName:"id-card",icon:[576,512,[62147,"drivers-license"],"f2c2","M0 96l576 0c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96zm0 32L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-288L0 128zM64 405.3c0-29.5 23.9-53.3 53.3-53.3l117.3 0c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7L74.7 416c-5.9 0-10.7-4.8-10.7-10.7zM176 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm176 16c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z"]},R6=d0,wu={prefix:"fas",iconName:"outdent",icon:[448,512,["dedent"],"f03b","M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z"]},Ch=wu,WS={prefix:"fas",iconName:"heart-circle-exclamation",icon:[576,512,[],"e4fe","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},k1={prefix:"fas",iconName:"house",icon:[576,512,[127968,63498,63500,"home","home-alt","home-lg-alt"],"f015","M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c0 2.7-.2 5.4-.5 8.1l0 16.2c0 22.1-17.9 40-40 40l-16 0c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1L416 512l-24 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"]},Tv=k1,Bu=k1,Hp=k1,HS={prefix:"fas",iconName:"calendar-week",icon:[448,512,[],"f784","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16L80 256z"]},Yp={prefix:"fas",iconName:"laptop-medical",icon:[640,512,[],"f812","M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256-64 0 0-256L128 96l0 256-64 0L64 96zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},Ex={prefix:"fas",iconName:"b",icon:[320,512,[98],"42","M64 32C28.7 32 0 60.7 0 96L0 256 0 416c0 35.3 28.7 64 64 64l128 0c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128L64 32zm96 192l-96 0L64 96l96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l96 0 32 0c35.3 0 64 28.7 64 64s-28.7 64-64 64L64 416l0-128z"]},Xp={prefix:"fas",iconName:"file-medical",icon:[384,512,[],"f477","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},YS={prefix:"fas",iconName:"dice-one",icon:[448,512,[9856],"f525","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Lv={prefix:"fas",iconName:"kiwi-bird",icon:[576,512,[],"f535","M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3l0-240c0-70.7-57.3-128-128-128l-55.7 0c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Tx={prefix:"fas",iconName:"arrow-right-arrow-left",icon:[448,512,[8644,"exchange"],"f0ec","M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"]},oT=Tx,f0={prefix:"fas",iconName:"rotate-right",icon:[512,512,["redo-alt","rotate-forward"],"f2f9","M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z"]},XS=f0,Lx=f0,ZS={prefix:"fas",iconName:"utensils",icon:[448,512,[127860,61685,"cutlery"],"f2e7","M416 0C400 0 288 32 288 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 0-112 0-208c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7L80 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16l0 134.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8L64 16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z"]},xh=ZS,Zp={prefix:"fas",iconName:"arrow-up-wide-short",icon:[576,512,["sort-amount-up"],"f161","M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z"]},KS=Zp,lT={prefix:"fas",iconName:"mill-sign",icon:[384,512,[],"e1ed","M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128l0 80L0 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208c0-26.5 21.5-48 48-48s48 21.5 48 48l0 42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32l0-154.5 35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48l0 208c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z"]},p0={prefix:"fas",iconName:"bowl-rice",icon:[512,512,[],"e2eb","M176 56c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},bh={prefix:"fas",iconName:"skull",icon:[512,512,[128128],"f54c","M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1l0 64c0 26.5 21.5 48 48 48l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 64 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 48 0c26.5 0 48-21.5 48-48l0-64c0-.4 0-.7 0-1.1zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},Iv={prefix:"fas",iconName:"tower-broadcast",icon:[576,512,["broadcast-tower"],"f519","M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4L320 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296.6c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z"]},Ix=Iv,Px={prefix:"fas",iconName:"truck-pickup",icon:[640,512,[128763],"f63c","M368.6 96l76.8 96L288 192l0-96 80.6 0zM224 80l0 112L64 192c-17.7 0-32 14.3-32 32l0 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l33.1 0c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16l66.3 0c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16l33.1 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c0-17.7-14.3-32-32-32l-48.6 0L418.6 56c-12.1-15.2-30.5-24-50-24L272 32c-26.5 0-48 21.5-48 48zm0 288a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm288 0a48 48 0 1 1 -96 0 48 48 0 1 1 96 0z"]},zu={prefix:"fas",iconName:"up-long",icon:[320,512,["long-arrow-alt-up"],"f30c","M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192l72 0 0 288c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-288 72 0c9.6 0 18.2-5.7 22-14.5z"]},cT=zu,uT={prefix:"fas",iconName:"stop",icon:[384,512,[9209],"f04d","M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"]},Ox={prefix:"fas",iconName:"code-merge",icon:[448,512,[],"f387","M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},m4={prefix:"fas",iconName:"upload",icon:[512,512,[],"f093","M288 109.3L288 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-242.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352l128 0c0 35.3 28.7 64 64 64s64-28.7 64-64l128 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},Kp={prefix:"fas",iconName:"hurricane",icon:[384,512,[],"f751","M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48A96 96 0 1 0 96 256a96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Rx={prefix:"fas",iconName:"mound",icon:[576,512,[],"e52d","M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z"]},hT={prefix:"fas",iconName:"toilet-portable",icon:[320,512,[],"e583","M0 32L0 64l320 0 0-32c0-17.7-14.3-32-32-32L32 0C14.3 0 0 14.3 0 32zM24 96L0 96l0 24L0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-368 0-24-24 0L24 96zM256 240l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"]},Pv={prefix:"fas",iconName:"compact-disc",icon:[512,512,[128191,128192,128440],"f51f","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z"]},D6={prefix:"fas",iconName:"file-arrow-down",icon:[384,512,["file-download"],"f56d","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 232l0 102.1 31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31L168 232c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},dT=D6,Dx={prefix:"fas",iconName:"caravan",icon:[640,512,[],"f8ff","M0 112C0 67.8 35.8 32 80 32l336 0c88.4 0 160 71.6 160 160l0 160 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0-288 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-44.2 0-80-35.8-80-80L0 112zM320 352l128 0 0-96-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 192zM96 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128zm96 336a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},fT={prefix:"fas",iconName:"shield-cat",icon:[512,512,[],"e572","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},Ov={prefix:"fas",iconName:"bolt",icon:[448,512,[9889,"zap"],"f0e7","M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288l111.5 0L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7l-111.5 0L349.4 44.6z"]},Rv=Ov,Nx={prefix:"fas",iconName:"glass-water",icon:[384,512,[],"e4f4","M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5L66.4 64l251.3 0L311 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L73 156.5z"]},N6={prefix:"fas",iconName:"oil-well",icon:[576,512,[],"e532","M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6 96 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0L340 257.5l-62.2 16.1L305.3 352l-66.6 0L265 277l-74.6 19.3L137.3 448 96 448l0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32 111.4 0 11.2 32-133.8 0z"]},pT={prefix:"fas",iconName:"vault",icon:[576,512,[],"e2c5","M64 0C28.7 0 0 28.7 0 64L0 416c0 35.3 28.7 64 64 64l16 0 16 32 64 0 16-32 224 0 16 32 64 0 16-32 16 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64L64 0zM224 320a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-240a160 160 0 1 1 0 320 160 160 0 1 1 0-320zM480 221.3L480 336c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-114.7c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z"]},mT={prefix:"fas",iconName:"mars",icon:[448,512,[9794],"f222","M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8l112 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80s0 0 0 0s0 0 0 0s0 0 0 0zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z"]},qp={prefix:"fas",iconName:"toilet",icon:[448,512,[128701],"f7d8","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4L416 48l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3c0 0 0-.1 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8c0 0 0 .1 0 .1l0 .3zM328.2 384l-.2 .5 0-.5 .2 0zM112 64l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},w6={prefix:"fas",iconName:"plane-circle-xmark",icon:[640,512,[],"e557","M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},J2={prefix:"fas",iconName:"yen-sign",icon:[320,512,[165,"cny","jpy","rmb","yen"],"f157","M58.6 46.3C48.8 31.5 29 27.6 14.2 37.4S-4.4 67 5.4 81.8L100.2 224 48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 0 32-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-32 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.2 0L314.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.3z"]},wx=J2,gT=J2,B6=J2,Bx=J2,z6={prefix:"fas",iconName:"ruble-sign",icon:[384,512,[8381,"rouble","rub","ruble"],"f158","M96 32C78.3 32 64 46.3 64 64l0 192-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-32 112 0c79.5 0 144-64.5 144-144s-64.5-144-144-144L96 32zM240 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z"]},F6=z6,qS=z6,_T=z6,QS={prefix:"fas",iconName:"sun",icon:[512,512,[9728],"f185","M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"]},JS={prefix:"fas",iconName:"guitar",icon:[512,512,[],"f7a6","M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},k6={prefix:"fas",iconName:"face-laugh-wink",icon:[512,512,["laugh-wink"],"f59c","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z"]},zx=k6,$S={prefix:"fas",iconName:"horse-head",icon:[640,512,[],"f7ab","M64 464l0-147.1c0-108.4 68.3-205.1 170.5-241.3L404.2 15.5C425.6 7.9 448 23.8 448 46.4c0 11-5.5 21.2-14.6 27.3L400 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4c0 0 0 0-.1 0c0 0 0 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3c0 0 0 0 0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8L112 512c-26.5 0-48-21.5-48-48zM392 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},Fx={prefix:"fas",iconName:"bore-hole",icon:[512,512,[],"e4c3","M256 0c-17.7 0-32 14.3-32 32l0 264.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-80 0c-17.7 0-32 14.3-32 32l0 192c0 53-43 96-96 96s-96-43-96-96l0-192c0-17.7-14.3-32-32-32l-80 0z"]},U6={prefix:"fas",iconName:"industry",icon:[576,512,[],"f275","M64 32C46.3 32 32 46.3 32 64l0 240 0 48 0 80c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-128 0-151.8c0-18.2-19.4-29.7-35.4-21.1L352 215.4l0-63.2c0-18.2-19.4-29.7-35.4-21.1L160 215.4 160 64c0-17.7-14.3-32-32-32L64 32z"]},Dv={prefix:"fas",iconName:"circle-down",icon:[512,512,[61466,"arrow-alt-circle-down"],"f358","M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM244.7 395.3l-112-112c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l64 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 64 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-112 112c-6.2 6.2-16.4 6.2-22.6 0z"]},kx=Dv,Ux={prefix:"fas",iconName:"arrows-turn-to-dots",icon:[512,512,[],"e4c1","M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM384 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192A64 64 0 1 1 64 64a64 64 0 1 1 0 128z"]},jx={prefix:"fas",iconName:"florin-sign",icon:[384,512,[],"e184","M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z"]},j6={prefix:"fas",iconName:"arrow-down-short-wide",icon:[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},Vx=j6,Gx=j6,Nv={prefix:"fas",iconName:"less-than",icon:[384,512,[62774],"3c","M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z"]},ey={prefix:"fas",iconName:"angle-down",icon:[448,512,[8964],"f107","M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]},Wx={prefix:"fas",iconName:"car-tunnel",icon:[512,512,[],"e4de","M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-112c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7l115.2 0c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6l0 112c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-40-192 0 0 40c0 9.6-4.2 18.1-10.8 24l213.7 0zM190.8 277.5L177 320l158 0-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5l-115.2 0c-3.5 0-6.5 2.2-7.6 5.5zM168 408a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm200-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"]},ty={prefix:"fas",iconName:"head-side-cough",icon:[640,512,[],"e061","M0 224.2C0 100.6 100.2 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320s0 0 0 0l0 32L339.2 365.6c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9L448 416l0 16c0 26.5-21.5 48-48 48l-80 0 0 8c0 13.3-10.7 24-24 24l-40 0s0 0 0 0L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm352-.2a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM464 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm152-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM592 480a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 312a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},iy={prefix:"fas",iconName:"grip-lines",icon:[448,512,[],"f7a4","M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z"]},g4={prefix:"fas",iconName:"thumbs-down",icon:[512,512,[128078,61576],"f165","M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2l144 0c26.5 0 48-21.5 48-48c0-18.5-10.5-34.6-25.9-42.6C497 236.6 504 223.1 504 208c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48l-97.5 0c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7l0 38.3 0 48 0 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 384l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32L32 96C14.3 96 0 110.3 0 128L0 352c0 17.7 14.3 32 32 32z"]},vT={prefix:"fas",iconName:"user-lock",icon:[640,512,[],"f502","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l362.8 0c-5.4-9.4-8.6-20.3-8.6-32l0-128c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7l-91.4 0zM528 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},sy={prefix:"fas",iconName:"arrow-right-long",icon:[512,512,["long-arrow-right"],"f178","M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"]},Qp=sy,AT={prefix:"fas",iconName:"anchor-circle-xmark",icon:[640,512,[],"e4ac","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},V6={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"]},ry=V6,wv={prefix:"fas",iconName:"chess-pawn",icon:[320,512,[9823],"f443","M215.5 224c29.2-18.4 48.5-50.9 48.5-88c0-57.4-46.6-104-104-104S56 78.6 56 136c0 37.1 19.4 69.6 48.5 88L96 224c-17.7 0-32 14.3-32 32c0 16.5 12.5 30 28.5 31.8L80 400l160 0L227.5 287.8c16-1.8 28.5-15.3 28.5-31.8c0-17.7-14.3-32-32-32l-8.5 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512l242.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L256 432 64 432 22.6 473.4z"]},Jp={prefix:"fas",iconName:"kit-medical",icon:[576,512,["first-aid"],"f479","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l32 0L96 32 64 32zm64 0l0 448 320 0 0-448L128 32zM512 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-32 0 0 448 32 0zM256 176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},ny=Jp,ay={prefix:"fas",iconName:"person-through-window",icon:[640,512,[],"e5a9","M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0l-64 0L64 64zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-45.8 0 42.7 64L592 448c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0L192 384s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},_4={prefix:"fas",iconName:"toolbox",icon:[512,512,[129520],"f552","M176 88l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 80c-4.4 0-8 3.6-8 8zm-48 40l0-40c0-30.9 25.1-56 56-56l144 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 92.1-128 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L0 320l0-92.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1l28.1 0zM0 416l0-64 128 0c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0 0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z"]},Bv={prefix:"fas",iconName:"hands-holding-circle",icon:[640,512,[],"e4fb","M320 0a128 128 0 1 1 0 256A128 128 0 1 1 320 0zM40 64c22.1 0 40 17.9 40 40l0 40 0 80 0 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2c0 0 0 0 0 0l25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 224l0-64 0-56C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 56 0 64 0 101.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3c0 0 0 0 0 0l15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3l0-40.2 0-80 0-40c0-22.1 17.9-40 40-40z"]},CT={prefix:"fas",iconName:"bug",icon:[512,512,[],"f188","M256 0c53 0 96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4l112 0c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5l64.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6L272 240c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 239.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.3 0c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z"]},Hx={prefix:"fas",iconName:"credit-card",icon:[576,512,[128179,62083,"credit-card-alt"],"f09d","M64 32C28.7 32 0 60.7 0 96l0 32 576 0 0-32c0-35.3-28.7-64-64-64L64 32zM576 224L0 224 0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192zM112 352l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z"]},xT=Hx,G6={prefix:"fas",iconName:"car",icon:[512,512,[128664,"automobile"],"f1b9","M135.2 117.4L109.1 192l293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 144 0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L96 400l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},oy=G6,ly={prefix:"fas",iconName:"hand-holding-hand",icon:[576,512,[],"e4f7","M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32L384 32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-36.8 0-44.9 36c-22.7 18.2-50.9 28-80 28L304 224l-16 0-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-120.6 0L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160c0 0 0 0 0 0l.9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 480 32 480c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z"]},cy={prefix:"fas",iconName:"book-open-reader",icon:[512,512,["book-reader"],"f5da","M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152l0 264-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427L0 224c0-17.7 14.3-32 32-32l30.3 0c63.6 0 125.6 19.6 177.7 56zm32 264l0-264c52.1-36.4 114.1-56 177.7-56l30.3 0c17.7 0 32 14.3 32 32l0 203c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z"]},bT=cy,uy={prefix:"fas",iconName:"mountain-sun",icon:[640,512,[],"e52f","M560 160A80 80 0 1 0 560 0a80 80 0 1 0 0 160zM55.9 512l325.2 0 75 0 122.8 0c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z"]},hy={prefix:"fas",iconName:"arrows-left-right-to-line",icon:[640,512,[],"e4ba","M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-320c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},Yx={prefix:"fas",iconName:"dice-d20",icon:[512,512,[],"f6cf","M48.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L201.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L47.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM16 171.7l0 123.5c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L40.2 158C29.6 151.6 16 159.3 16 171.7zM310.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L322.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM496 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4l0-123.5zm-49.3 246L286.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9l0 52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM233.2 512c3.7 0 6.8-3 6.8-6.8l0-52.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM41.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L30.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L402.9 238.1c-6.5-10-21.4-9.6-27.3 .8L290.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9l-145.7 0c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM174.4 176l163.2 0c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2l-3.2 0c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z"]},C={prefix:"fas",iconName:"truck-droplet",icon:[640,512,[],"e58c","M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z"]},y={prefix:"fas",iconName:"file-circle-xmark",icon:[576,512,[],"e5a1","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"]},B={prefix:"fas",iconName:"temperature-arrow-up",icon:[576,512,["temperature-up"],"e040","M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L128 112zM176 0C114.1 0 64 50.1 64 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L288 112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3L192 112c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 210.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM480 160l32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288z"]},U=B,Z={prefix:"fas",iconName:"medal",icon:[512,512,[127941],"f5a2","M4.1 38.2C1.4 34.2 0 29.4 0 24.6C0 11 11 0 24.6 0L133.9 0c11.2 0 21.7 5.9 27.4 15.5l68.5 114.1c-48.2 6.1-91.3 28.6-123.4 61.9L4.1 38.2zm503.7 0L405.6 191.5c-32.1-33.3-75.2-55.8-123.4-61.9L350.7 15.5C356.5 5.9 366.9 0 378.1 0L487.4 0C501 0 512 11 512 24.6c0 4.8-1.4 9.6-4.1 13.6zM80 336a176 176 0 1 1 352 0A176 176 0 1 1 80 336zm184.4-94.9c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z"]},g={prefix:"fas",iconName:"bed",icon:[640,512,[128716],"f236","M32 32c17.7 0 32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32l224 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 416l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 46.3 14.3 32 32 32zm144 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},v={prefix:"fas",iconName:"square-h",icon:[448,512,["h-square"],"f0fd","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM336 152l0 104 0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80-128 0 0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80 128 0 0-80c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},L=v,z={prefix:"fas",iconName:"podcast",icon:[448,512,[],"f2ce","M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-144a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"]},j={prefix:"fas",iconName:"temperature-full",icon:[320,512,["temperature-4","thermometer-4","thermometer-full"],"f2c7","M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 210.7c18.6 6.6 32 24.4 32 45.3z"]},J=j,le=j,ce=j,_e={prefix:"fas",iconName:"bell",icon:[448,512,[128276,61602],"f0f3","M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416l384 0c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8l0-18.8c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"]},Oe={prefix:"fas",iconName:"superscript",icon:[512,512,[],"f12b","M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64z"]},Fe={prefix:"fas",iconName:"plug-circle-xmark",icon:[576,512,[],"e560","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},pt={prefix:"fas",iconName:"star-of-life",icon:[512,512,[],"f621","M208 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1 304 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4L208 32z"]},it={prefix:"fas",iconName:"phone-slash",icon:[640,512,[],"f3dd","M228.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C76.1 30.2 64 46 64 64c0 107.4 37.8 206 100.8 283.1L9.2 469.1c-10.4 8.2-12.3 23.3-4.1 33.7s23.3 12.3 33.7 4.1l592-464c10.4-8.2 12.3-23.3 4.1-33.7s-23.3-12.3-33.7-4.1L253 278c-17.8-21.5-32.9-45.2-45-70.7L257.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96zm96.8 319l-91.3 72C310.7 476 407.1 512 512 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L368.7 368c-15-7.1-29.3-15.2-43-24.3z"]},Mt={prefix:"fas",iconName:"paint-roller",icon:[512,512,[],"f5aa","M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64zM160 352c0-17.7 14.3-32 32-32l0-16c0-44.2 35.8-80 80-80l144 0c17.7 0 32-14.3 32-32l0-32 0-90.5c37.3 13.2 64 48.7 64 90.5l0 32c0 53-43 96-96 96l-144 0c-8.8 0-16 7.2-16 16l0 16c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-128z"]},Jt={prefix:"fas",iconName:"handshake-angle",icon:[640,512,["hands-helping"],"f4c4","M544 248l0 3.3 69.7-69.7c21.9-21.9 21.9-57.3 0-79.2L535.6 24.4c-21.9-21.9-57.3-21.9-79.2 0L416.3 64.5c-2.7-.3-5.5-.5-8.3-.5L296 64c-37.1 0-67.6 28-71.6 64l-.4 0 0 120c0 22.1 17.9 40 40 40s40-17.9 40-40l0-72c0 0 0-.1 0-.1l0-15.9 16 0 136 0c0 0 0 0 .1 0l7.9 0c44.2 0 80 35.8 80 80l0 8zM336 192l0 56c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-118.6c-35.9 6.2-65.8 32.3-76 68.2L99.5 255.2 26.3 328.4c-21.9 21.9-21.9 57.3 0 79.2l78.1 78.1c21.9 21.9 57.3 21.9 79.2 0l37.7-37.7c.9 0 1.8 .1 2.7 .1l160 0c26.5 0 48-21.5 48-48c0-5.6-1-11-2.7-16l2.7 0c26.5 0 48-21.5 48-48c0-12.8-5-24.4-13.2-33c25.7-5 45.1-27.6 45.2-54.8l0-.4c-.1-30.8-25.1-55.8-56-55.8c0 0 0 0 0 0l-120 0z"]},Ai=Jt,Ct={prefix:"fas",iconName:"location-dot",icon:[384,512,["map-marker-alt"],"f3c5","M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},Ft=Ct,ut={prefix:"fas",iconName:"file",icon:[384,512,[128196,128459,61462],"f15b","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128z"]},ni={prefix:"fas",iconName:"greater-than",icon:[384,512,[62769],"3e","M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z"]},Ei={prefix:"fas",iconName:"person-swimming",icon:[576,512,[127946,"swimmer"],"f5c4","M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-26.9 0-52.3 6.6-74.5 18.4zM160 160A64 64 0 1 1 32 160a64 64 0 1 1 128 0zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},ht=Ei,Vt={prefix:"fas",iconName:"arrow-down",icon:[384,512,[8595],"f063","M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]},Et={prefix:"fas",iconName:"droplet",icon:[384,512,[128167,"tint"],"f043","M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0l1.8 0c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z"]},di=Et,yi={prefix:"fas",iconName:"eraser",icon:[576,512,[],"f12d","M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7L288 480l9.4 0L512 480c17.7 0 32-14.3 32-32s-14.3-32-32-32l-124.1 0L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416l-9.4 0-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z"]},Gi={prefix:"fas",iconName:"earth-americas",icon:[512,512,[127758,"earth","earth-america","globe-americas"],"f57d","M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5l0 39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9l0 39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7l0-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1L257 256c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},_s=Gi,$s=Gi,br=Gi,Ks={prefix:"fas",iconName:"person-burst",icon:[640,512,[],"e53b","M480 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-223.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9 408 480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.3-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z"]},kn={prefix:"fas",iconName:"dove",icon:[512,512,[128330],"f4ba","M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6l0-31.5C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144l0 30.6s0 0 0 0l0 1.3s0 0 0 0l0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448l74.4 0c88.4 0 160-71.6 160-160l0-160 29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3L400 64c-44.2 0-80 35.8-80 80zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},Ns={prefix:"fas",iconName:"battery-empty",icon:[576,512,["battery-0"],"f244","M80 160c-8.8 0-16 7.2-16 16l0 160c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-160c0-8.8-7.2-16-16-16L80 160zM0 176c0-44.2 35.8-80 80-80l384 0c44.2 0 80 35.8 80 80l0 16c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 16c0 44.2-35.8 80-80 80L80 416c-44.2 0-80-35.8-80-80L0 176z"]},sn=Ns,qa={prefix:"fas",iconName:"socks",icon:[512,512,[129510],"f696","M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6l0-144L128 96l0 144c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64l160 0 0-16c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0L176 0c-26.5 0-48 21.5-48 48l0 16zM320 96l0 144c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304l0-208L320 96zM512 64l0-16c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 16 192 0z"]},co={prefix:"fas",iconName:"inbox",icon:[512,512,[],"f01c","M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-92.1c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32L121 32zm0 64l270 0 48 192-51.2 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L73 288 121 96z"]},hl={prefix:"fas",iconName:"section",icon:[256,512,[],"e447","M64.9 96C67.1 84.4 73.7 76.2 86 70.6c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8C123-2.7 88.3-.6 59.7 12.3C29.9 25.8 7.5 50.9 1.6 86.5c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C22.3 194.2 6.5 215.1 1.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31c0 0 0 0 0 0l3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2c0 0 0 0 0 0c-4.3-1.5-8.5-2.9-12.3-4.2C25.3 420 7.2 429.1 1.6 445.8s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6c0 0 0 0 0 0l.2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5l-.6-.2-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z"]},uo={prefix:"fas",iconName:"gauge-high",icon:[512,512,[62461,"tachometer-alt","tachometer-alt-fast"],"f625","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},m0=uo,W6=uo,ST={prefix:"fas",iconName:"envelope-open-text",icon:[512,512,[],"f658","M215.4 96L144 96l-36.2 0L96 96l0 8.8L96 144l0 40.4 0 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3 48 96c0-26.5 21.5-48 48-48l76.6 0 49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48 416 48c26.5 0 48 21.5 48 48l0 44.3 22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4l0-89 0-40.4 0-39.2 0-8.8-11.8 0L368 96l-71.4 0-81.3 0zM0 448L0 242.1 217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1 512 448s0 0 0 0c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64c0 0 0 0 0 0zM176 160l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},U1={prefix:"fas",iconName:"hospital",icon:[640,512,[127973,62589,"hospital-alt","hospital-wide"],"f0f8","M192 48c0-26.5 21.5-48 48-48L400 0c26.5 0 48 21.5 48 48l0 464-80 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-80 0 0-464zM48 96l112 0 0 416L48 512c-26.5 0-48-21.5-48-48L0 320l80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 288l0-64 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 192l0-48c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 144c0 26.5-21.5 48-48 48l-112 0 0-416 112 0zM312 64c-8.8 0-16 7.2-16 16l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0z"]},nI=U1,Pz=U1,Oz={prefix:"fas",iconName:"wine-bottle",icon:[512,512,[],"f72f","M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z"]},Rz={prefix:"fas",iconName:"chess-rook",icon:[448,512,[9820],"f447","M32 192L32 48c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 40c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-40c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 40c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-40c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 144c0 10.1-4.7 19.6-12.8 25.6L352 256l16 144L80 400 96 256 44.8 217.6C36.7 211.6 32 202.1 32 192zm176 96l32 0c8.8 0 16-7.2 16-16l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 8.8 7.2 16 16 16zM22.6 473.4L64 432l320 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L38.6 512C26.1 512 16 501.9 16 489.4c0-6 2.4-11.8 6.6-16z"]},M9={prefix:"fas",iconName:"bars-staggered",icon:[512,512,["reorder","stream"],"f550","M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"]},Dz=M9,Nz=M9,wz={prefix:"fas",iconName:"dharmachakra",icon:[512,512,[9784],"f655","M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.5-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Bz={prefix:"fas",iconName:"hotdog",icon:[512,512,[127789],"f80f","M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9c0 0 0 0 0 0s0 0 0 0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4c0 0 0 0 0 0l-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z"]},mR={prefix:"fas",iconName:"person-walking-with-cane",icon:[512,512,["blind"],"f29d","M176 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6l0 43.2c0 17 6.7 33.3 18.7 45.3L224 397.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-89.4c0-12.7-5.1-24.9-14.1-33.9L224 306.7l0-93.4 70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128l-24.4 0zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z"]},zz=mR,gR={prefix:"fas",iconName:"drum",icon:[512,512,[129345],"f569","M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96C114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C458.4 181.8 464 197.4 464 208c0 .8-2.7 17.2-46 35.9C379.1 260.7 322 272 256 272s-123.1-11.3-162-28.1C50.7 225.2 48 208.8 48 208c0-10.6 5.6-26.2 44.4-41.3C130.6 151.9 187.8 144 256 144c18 0 35.1 .5 51.4 1.6z"]},Fz={prefix:"fas",iconName:"ice-cream",icon:[448,512,[127848],"f810","M367.1 160c.6-5.3 .9-10.6 .9-16C368 64.5 303.5 0 224 0S80 64.5 80 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l53.5 0 181 0 53.5 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM96 288L200.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L352 288 96 288z"]},kz={prefix:"fas",iconName:"heart-circle-bolt",icon:[576,512,[],"e4fc","M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"]},aI={prefix:"fas",iconName:"fax",icon:[512,512,[128224,128439],"f1ac","M128 64l0 96 64 0 0-96 194.7 0L416 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0L192 0c-35.3 0-64 28.7-64 64zM0 160L0 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32zm480 32l-352 0 0 288c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM256 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Uz={prefix:"fas",iconName:"paragraph",icon:[448,512,[182],"f1dd","M192 32l64 0 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0c-88.4 0-160-71.6-160-160s71.6-160 160-160z"]},_R={prefix:"fas",iconName:"check-to-slot",icon:[576,512,["vote-yea"],"f772","M96 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 304L96 384 96 80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48l16 0 0 128 448 0 0-128 16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-96z"]},vR=_R,jz={prefix:"fas",iconName:"star-half",icon:[576,512,[61731],"f089","M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8 288 0zM429.9 512c1.1 .1 2.1 .1 3.2 0l-3.2 0z"]},E9={prefix:"fas",iconName:"boxes-stacked",icon:[576,512,[62625,"boxes","boxes-alt"],"f468","M248 0L208 0c-26.5 0-48 21.5-48 48l0 112c0 35.3 28.7 64 64 64l128 0c35.3 0 64-28.7 64-64l0-112c0-26.5-21.5-48-48-48L328 0l0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80zM64 256c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-40 0 0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80-40 0zM352 512l160 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-40 0 0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80-40 0c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2l0 160c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z"]},Vz=E9,Gz=E9,AR={prefix:"fas",iconName:"link",icon:[640,512,[128279,"chain"],"f0c1","M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"]},Wz=AR,CR={prefix:"fas",iconName:"ear-listen",icon:[512,512,["assistive-listening-systems"],"f2a2","M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1c0 0 0 0-.1 0c0 0 0 0 0 0L384 32 398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78l0 6.1c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112l0-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM192 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z"]},Hz=CR,xR={prefix:"fas",iconName:"tree-city",icon:[640,512,[],"e587","M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 144 40 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 24 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0-96 0c-26.5 0-48-21.5-48-48l0-416zm64 32l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 272l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80l-16 0 0 160c0 18-15 32-32 32c-18 0-32-14-32-32l0-160-16 0c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z"]},Yz={prefix:"fas",iconName:"play",icon:[384,512,[9654],"f04b","M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80L0 432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z"]},oI={prefix:"fas",iconName:"font",icon:[448,512,[],"f031","M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416 32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-1.8 0 18-48 159.6 0 18 48-1.8 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-25.8 0L254 52.8zM279.8 304l-111.6 0L224 155.1 279.8 304z"]},Xz={prefix:"fas",iconName:"table-cells-row-lock",icon:[640,512,[],"e67a","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 224l0 64 88 0 0-64-88 0zm232 0l-88 0 0 64 88 0 0-64zM152 352l-88 0 0 64 88 0 0-64zm56 0l0 64 88 0 0-64-88 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"]},Zz={prefix:"fas",iconName:"rupiah-sign",icon:[512,512,[],"e23d","M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160zm256-96l80 0c61.9 0 112 50.1 112 112s-50.1 112-112 112l-48 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128 0-160c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z"]},lI={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},Kz=lI,T9={prefix:"fas",iconName:"table-tennis-paddle-ball",icon:[512,512,[127955,"ping-pong-paddle-ball","table-tennis"],"f45d","M416 288c-50.1 0-93.6 28.8-114.6 70.8L68.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C471.8 297.6 445 288 416 288zM49.3 151.9L290.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3l-2.7 0c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L88.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32C3.1 464.3-.3 455.7 0 446.9s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8C45.5 285.5 32 252.9 32 219l0-2.7c0-22.8 6.1-44.9 17.3-64.3zM416 320a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},qz=T9,Qz=T9,bR={prefix:"fas",iconName:"person-dots-from-line",icon:[576,512,["diagnoses"],"f470","M288 176A88 88 0 1 0 288 0a88 88 0 1 0 0 176zM78.7 372.9c15-12.5 50-34.4 97.3-50.1L176 432l224 0 0-109.3c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l528 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464zM224 280a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM96 240a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm368 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},Jz=bR,cI={prefix:"fas",iconName:"trash-can-arrow-up",icon:[448,512,["trash-restore-alt"],"f82a","M163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L200 408c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z"]},$z=cI,eF={prefix:"fas",iconName:"naira-sign",icon:[448,512,[],"e1f6","M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 100.2 0 97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6l0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0L122.6 46.3zM305.1 320l14.9 0 0 22.3L305.1 320zM185.5 256L128 256l0-86.3L185.5 256z"]},uI={prefix:"fas",iconName:"cart-arrow-down",icon:[576,512,[],"f218","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l45.5 0c3.8 0 7.1 2.7 7.9 6.5l51.6 271c6.5 34 36.2 58.5 70.7 58.5L488 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-288.3 0c-11.5 0-21.4-8.2-23.6-19.5L170.7 288l288.5 0c32.6 0 61.1-21.8 69.5-53.3l41-152.3C576.6 57 557.4 32 531.1 32L360 32l0 102.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L312 32 120.1 32C111 12.8 91.6 0 69.5 0L24 0zM176 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm336-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},tF={prefix:"fas",iconName:"walkie-talkie",icon:[384,512,[],"f8ef","M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24l0 72L48 96C21.5 96 0 117.5 0 144L0 300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9L32 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-92.1c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9L384 144c0-26.5-21.5-48-48-48l-16 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l-32 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l-48 0 0-72zm0 136l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},SR={prefix:"fas",iconName:"file-pen",icon:[576,512,[128221,"file-edit"],"f31c","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 125.7-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"]},iF=SR,sF={prefix:"fas",iconName:"receipt",icon:[384,512,[129534],"f543","M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.3-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 144zM80 352c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 336c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 240z"]},hI={prefix:"fas",iconName:"square-pen",icon:[448,512,["pen-square","pencil-square"],"f14b","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"]},dI=hI,rF=hI,nF={prefix:"fas",iconName:"suitcase-rolling",icon:[384,512,[],"f5c1","M144 56c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zm176 72l-32 0 0-72c0-30.9-25.1-56-56-56L152 0C121.1 0 96 25.1 96 56l0 72-32 0c-35.3 0-64 28.7-64 64L0 416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64zM112 224l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},aF={prefix:"fas",iconName:"person-circle-exclamation",icon:[576,512,[],"e53f","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"]},oF={prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]},L9={prefix:"fas",iconName:"battery-full",icon:[576,512,[128267,"battery","battery-5"],"f240","M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm368 96L96 192l0 128 352 0 0-128z"]},lF=L9,cF=L9,uF={prefix:"fas",iconName:"skull-crossbones",icon:[448,512,[128369,9760],"f714","M368 128c0 44.4-25.4 83.5-64 106.4l0 21.6c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-21.6c-38.6-23-64-62.1-64-106.4C80 57.3 144.5 0 224 0s144 57.3 144 128zM168 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM3.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L224 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L295.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L224 419.8 46.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L152.4 384 17.7 316.6C1.9 308.7-4.5 289.5 3.4 273.7z"]},yR={prefix:"fas",iconName:"code-compare",icon:[512,512,[],"e13a","M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9l0 40 16 0c35.3 0 64-28.7 64-64l0-166.7C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L464 320c0 70.7-57.3 128-128 128l-16 0 0 40zM456 80a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9l0-40-16 0c-35.3 0-64 28.7-64 64l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L48 192c0-70.7 57.3-128 128-128l16 0 0-40zM56 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z"]},MR={prefix:"fas",iconName:"list-ul",icon:[512,512,["list-dots"],"f0ca","M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},hF=MR,dF={prefix:"fas",iconName:"school-lock",icon:[640,512,[],"e56f","M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0L473.7 96 592 96c26.5 0 48 21.5 48 48l0 128c0-61.9-50.1-112-112-112s-112 50.1-112 112l0 24.6c-19.1 11.1-32 31.7-32 55.4l-63.7 0-.3 0c-35.3 0-64 28.7-64 64l0 96 64 0s0 0 0 0L48 512c-26.5 0-48-21.5-48-48L0 144c0-26.5 21.5-48 48-48l118.3 0L302.2 5.4zM80 208l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 128l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-72a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm16-120l0 16 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"]},fF={prefix:"fas",iconName:"tower-cell",icon:[576,512,[],"e585","M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448l220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384l-162.4 0 14.5-32 133.3 0 14.5 32zM288 205.3L325.6 288l-75.2 0L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z"]},ER={prefix:"fas",iconName:"down-long",icon:[320,512,["long-arrow-alt-down"],"f309","M2 334.5c-3.8 8.8-2 19 4.6 26l136 144c4.5 4.8 10.8 7.5 17.4 7.5s12.9-2.7 17.4-7.5l136-144c6.6-7 8.4-17.2 4.6-26s-12.5-14.5-22-14.5l-72 0 0-288c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32l0 288-72 0c-9.6 0-18.2 5.7-22 14.5z"]},TR=ER,pF={prefix:"fas",iconName:"ranking-star",icon:[640,512,[],"e561","M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-128 0zM32 320c-17.7 0-32 14.3-32 32L0 480c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L32 320zm416 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z"]},mF={prefix:"fas",iconName:"chess-king",icon:[448,512,[9818],"f43f","M224 0c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 48 152 0c22.1 0 40 17.9 40 40c0 5.3-1 10.5-3.1 15.4L368 400 80 400 3.1 215.4C1 210.5 0 205.3 0 200c0-22.1 17.9-40 40-40l152 0 0-48-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-16c0-17.7 14.3-32 32-32zM38.6 473.4L80 432l288 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L54.6 512C42.1 512 32 501.9 32 489.4c0-6 2.4-11.8 6.6-16z"]},fI={prefix:"fas",iconName:"person-harassing",icon:[576,512,[],"e549","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z"]},gF={prefix:"fas",iconName:"brazilian-real-sign",icon:[512,512,[],"e46c","M400 0c17.7 0 32 14.3 32 32l0 18.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5l-1.7 0c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4l0 3.4c0 51.2-33.6 94.6-80 109.2l0 21.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-19.4c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5l0-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2L368 32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160z"]},LR={prefix:"fas",iconName:"landmark-dome",icon:[512,512,["landmark-alt"],"f752","M248 0l16 0c13.3 0 24 10.7 24 24l0 10.7C368.4 48.1 431.9 111.6 445.3 192l2.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 256c-17.7 0-32-14.3-32-32s14.3-32 32-32l2.7 0C80.1 111.6 143.6 48.1 224 34.7L224 24c0-13.3 10.7-24 24-24zM64 288l64 0 0 128 40 0 0-128 64 0 0 128 48 0 0-128 64 0 0 128 40 0 0-128 64 0 0 132.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 288z"]},_F=LR,IR={prefix:"fas",iconName:"arrow-up",icon:[384,512,[8593],"f062","M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"]},pI={prefix:"fas",iconName:"tv",icon:[640,512,[63717,"television","tv-alt"],"f26c","M64 64l0 288 512 0 0-288L64 64zM0 64C0 28.7 28.7 0 64 0L576 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 416c-35.3 0-64-28.7-64-64L0 64zM128 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},vF=pI,PR=pI,AF={prefix:"fas",iconName:"shrimp",icon:[512,512,[129424],"e448","M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64l1 0c3.7 88.9 77 160 167 160l56 0 0-192-24 0L88.8 128 64 128c-17.7 0-32-14.3-32-32s14.3-32 32-32l400 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L64 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},OR={prefix:"fas",iconName:"list-check",icon:[512,512,["tasks"],"f0ae","M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},CF=OR,RR={prefix:"fas",iconName:"jug-detergent",icon:[384,512,[],"e519","M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72s10.7-24 24-24l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},DR={prefix:"fas",iconName:"circle-user",icon:[512,512,[62142,"user-circle"],"f2bd","M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z"]},xF=DR,NR={prefix:"fas",iconName:"user-shield",icon:[640,512,[],"f505","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3l-91.4 0zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7l0-187.8L591.4 312z"]},bF={prefix:"fas",iconName:"wind",icon:[512,512,[],"f72e","M288 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c53 0 96-43 96-96s-43-96-96-96L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l32 0c53 0 96-43 96-96s-43-96-96-96L32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z"]},mI={prefix:"fas",iconName:"car-burst",icon:[640,512,["car-crash"],"f5e1","M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zm-17 131a24 24 0 1 1 -12.4 46.4 24 24 0 1 1 12.4-46.4zm217.9 83.2A24 24 0 1 1 545 358.1a24 24 0 1 1 -46.4-12.4z"]},SF=mI,yF={prefix:"fas",iconName:"y",icon:[384,512,[121],"59","M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z"]},wR={prefix:"fas",iconName:"person-snowboarding",icon:[512,512,[127938,"snowboarding"],"f7ce","M209.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6l28.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-28.2 0c-10.8 0-21.4-2-31.5-5.8L60.1 371.3c-11.5-4.4-22-11.2-30.8-20L7 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L192 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM139 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.3-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L139 350.1zM432 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},BR=wR,zR={prefix:"fas",iconName:"truck-fast",icon:[640,512,["shipping-fast"],"f48b","M112 0C85.5 0 64 21.5 64 48l0 48L16 96c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 208 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 160l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0 176 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 224l-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 288l0 128c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64 0-32 0-18.7c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7L416 96l0-48c0-26.5-21.5-48-48-48L112 0zM544 237.3l0 18.7-128 0 0-96 50.7 0L544 237.3zM160 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},MF=zR,FR={prefix:"fas",iconName:"fish",icon:[576,512,[128031],"f578","M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},EF={prefix:"fas",iconName:"user-graduate",icon:[448,512,[],"f501","M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9l0 57.1c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-57.1L48 93.3l0 65.1 15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9l-32 0c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4l0-71.8C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z"]},gI={prefix:"fas",iconName:"circle-half-stroke",icon:[512,512,[9680,"adjust"],"f042","M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},TF=gI,LF={prefix:"fas",iconName:"clapperboard",icon:[512,512,[],"e131","M448 32l-86.1 0-1 1-127 127 92.1 0 1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128l0-64c0-15.1-5.3-29.1-14-40l-104 104L512 160zM294.1 32l-92.1 0-1 1L73.9 160l92.1 0 1-1 127-127zM64 32C28.7 32 0 60.7 0 96l0 64 6.1 0 1-1 127-127L64 32zM512 192L0 192 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224z"]},_I={prefix:"fas",iconName:"circle-radiation",icon:[512,512,[9762,"radiation-alt"],"f7ba","M256 64a192 192 0 1 1 0 384 192 192 0 1 1 0-384zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},IF=_I,kR={prefix:"fas",iconName:"baseball",icon:[512,512,[129358,9918,"baseball-ball"],"f433","M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z"]},vI=kR,PF={prefix:"fas",iconName:"jet-fighter-up",icon:[512,512,[],"e518","M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2l0 77-144 84L48 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 56 0 32 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 144 0 0 32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12l0 16c0 8.8 7.2 16 16 16l96 0 0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64 96 0c8.8 0 16-7.2 16-16l0-16c0-4.6-2-9-5.5-12L320 416.7l0-32.7 144 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 0-32 0-56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 18.8-144-84 0-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z"]},UR={prefix:"fas",iconName:"diagram-project",icon:[576,512,["project-diagram"],"f542","M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 192 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-192 0 0 16c0 1.7-.1 3.4-.3 5L272 288l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-1.7 .1-3.4 .3-5L144 224l-96 0c-26.5 0-48-21.5-48-48L0 80z"]},OF=UR,jR={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"]},AI={prefix:"fas",iconName:"volume-xmark",icon:[576,512,["volume-mute","volume-times"],"f6a9","M301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"]},VR=AI,RF=AI,GR={prefix:"fas",iconName:"hand-sparkles",icon:[640,512,[],"e05d","M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 195.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z"]},WR={prefix:"fas",iconName:"grip",icon:[448,512,["grip-horizontal"],"f58d","M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm32-192l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm32-192l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z"]},DF=WR,CI={prefix:"fas",iconName:"share-from-square",icon:[576,512,[61509,"share-square"],"f14d","M352 224l-46.5 0c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8l-2.5 0c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144l80 0 0-61.3C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2l-3.7 0c-17.7 0-32-14.3-32-32l0-64zM80 96c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 112C0 67.8 35.8 32 80 32l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 96z"]},NF=CI,xI={prefix:"fas",iconName:"child-combatant",icon:[576,512,["child-rifle"],"e4e0","M176 128A64 64 0 1 0 176 0a64 64 0 1 0 0 128zm-8 352l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-179.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9l-12.3 0c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5 104 480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0L432 0 416 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9L484 400l44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3L480 160c0-11.8-6.4-22.2-16-27.7L464 16c0-8.8-7.2-16-16-16z"]},wF=xI,BF={prefix:"fas",iconName:"gun",icon:[576,512,[],"e19b","M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8L32 64C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352l104.5 0c23.7 0 44.8-14.9 52.7-37.2L400.9 240l31.1 0c8.5 0 16.6-3.4 22.6-9.4L477.3 208l66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304L229 304l16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},HR={prefix:"fas",iconName:"square-phone",icon:[448,512,["phone-square"],"f098","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z"]},yT=HR,YR={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"]},zF=YR,FF={prefix:"fas",iconName:"expand",icon:[448,512,[],"f065","M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z"]},kF={prefix:"fas",iconName:"computer",icon:[640,512,[],"e4e5","M384 96l0 224L64 320 64 96l320 0zM64 32C28.7 32 0 60.7 0 96L0 320c0 35.3 28.7 64 64 64l117.3 0-10.7 32L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-74.7 0-10.7-32L384 384c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L64 32zm464 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0zm16 64l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},dy={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},UF=dy,XR=dy,jF=dy,VF=dy,ZR={prefix:"fas",iconName:"arrows-up-down-left-right",icon:[512,512,["arrows"],"f047","M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4L224 224l-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L224 288l0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4L288 288l114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L288 224l0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z"]},GF=ZR,KR={prefix:"fas",iconName:"chalkboard-user",icon:[640,512,["chalkboard-teacher"],"f51c","M160 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-239.2 0c-11.8-25.5-29.9-47.5-52.4-64l99.6 0 0-32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 32 64 0 0-288L224 64l0 49.1C205.2 102.2 183.3 96 160 96l0-32zm0 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM133.3 352l53.3 0C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7L26.7 512C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z"]},qR=KR,WF={prefix:"fas",iconName:"peso-sign",icon:[384,512,[],"e222","M64 32C46.3 32 32 46.3 32 64l0 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c68.4 0 127.7-39 156.8-96l19.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.7 0c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16l.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-19.2 0C303.7 71 244.4 32 176 32L64 32zm190.4 96L96 128l0-32 80 0c30.5 0 58.2 12.2 78.4 32zM96 192l190.9 0c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16L96 224l0-32zm158.4 96c-20.2 19.8-47.9 32-78.4 32l-80 0 0-32 158.4 0z"]},HF={prefix:"fas",iconName:"building-shield",icon:[576,512,[],"e4d8","M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 159-42.4 17L304 224l-32 0c-8.8 0-16 7.2-16 16l0 32 0 24.2 0 7.8c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8l0 187.8c68.2-33 91.5-99 95.4-149.7z"]},QR={prefix:"fas",iconName:"baby",icon:[448,512,[],"f77c","M152 88a72 72 0 1 1 144 0A72 72 0 1 1 152 88zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z"]},YF={prefix:"fas",iconName:"users-line",icon:[640,512,[],"e592","M211.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM32 256c0 17.7 14.3 32 32 32l85.6 0c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4l-96 0c-35.3 0-64 28.7-64 64zm461.6 32l82.4 0c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64l-96 0c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4l-96 0c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM321.6 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z"]},JR={prefix:"fas",iconName:"quote-left",icon:[448,512,[8220,"quote-left-alt"],"f10d","M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-32 0-32 0-72zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-32 0-32 0-72z"]},XF=JR,ZF={prefix:"fas",iconName:"tractor",icon:[640,512,[128668],"f722","M96 64c0-35.3 28.7-64 64-64L266.3 0c26.2 0 49.7 15.9 59.4 40.2L373.7 160 480 160l0-33.8c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9l0 33.8 56 0c22.1 0 40 17.9 40 40l0 45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48l-80 0c0 17.7-14.3 32-32 32l-8.2 0c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8l0 8.2c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1L32 384c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l8.2 0c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6l0-.6 0-32 0-96zm170.3 0L160 64l0 96 32 0 112.7 0L266.3 64zM176 256a80 80 0 1 0 0 160 80 80 0 1 0 0-160zM528 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z"]},$R={prefix:"fas",iconName:"trash-arrow-up",icon:[448,512,["trash-restore"],"f829","M163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128l384 0L394.8 467c-1.6 25.3-22.6 45-47.9 45l-245.8 0c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L200 408c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z"]},KF=$R,qF={prefix:"fas",iconName:"arrow-down-up-lock",icon:[640,512,[],"e4b0","M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 160 288l256 0 0-16c0-17.2 3.9-33.5 10.8-48L352 224l0-114.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3 288 224l-128 0-64 0-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 114.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128 64 0zM288 320l0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128-64 0zm240-80c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"]},QF={prefix:"fas",iconName:"lines-leaning",icon:[384,512,[],"e51e","M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z"]},MT={prefix:"fas",iconName:"ruler-combined",icon:[512,512,[],"f546","M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z"]},JF={prefix:"fas",iconName:"copyright",icon:[512,512,[169],"f1f9","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z"]},$F={prefix:"fas",iconName:"equals",icon:[448,512,[62764],"3d","M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 320z"]},ek={prefix:"fas",iconName:"blender",icon:[512,512,[],"f517","M0 64C0 28.7 28.7 0 64 0l64 0 32 0L470.1 0c21.1 0 36.4 20.1 30.9 40.4L494.5 64 336 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l149.8 0-17.5 64L336 160c-8.8 0-16 7.2-16 16s7.2 16 16 16l123.6 0-17.5 64L336 256c-8.8 0-16 7.2-16 16s7.2 16 16 16l97.5 0L416 352l-256 0-8.7-96L64 256c-35.3 0-64-28.7-64-64L0 64zM145.5 192L133.8 64 64 64l0 128 81.5 0zM144 384l288 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},tk={prefix:"fas",iconName:"teeth",icon:[576,512,[],"f62e","M0 128C0 75 43 32 96 32l384 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 128zm176 48l0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48l0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56c0-26.5-21.5-48-48-48zM48 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24zm176 48c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48zm80-176l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48z"]},ET={prefix:"fas",iconName:"shekel-sign",icon:[448,512,[8362,"ils","shekel","sheqel","sheqel-sign"],"f20b","M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 96l128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z"]},ik=ET,eD=ET,sk=ET,rk=ET,nk={prefix:"fas",iconName:"map",icon:[576,512,[128506,62072],"f279","M384 476.1L192 421.2l0-385.3L384 90.8l0 385.3zm32-1.2l0-386.5L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3l0 334.8c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2l0 386.5L32.9 474.5C17.1 480.8 0 469.2 0 452.2L0 117.4c0-9.8 6-18.6 15.1-22.3z"]},ak={prefix:"fas",iconName:"rocket",icon:[512,512,[],"f135","M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2l0 82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9l0-107.2c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},tD={prefix:"fas",iconName:"photo-film",icon:[640,512,["photo-video"],"f87c","M256 0L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l80 0 48 0 144 0c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128l96 0 0 256 0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32 160 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm336 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z"]},ok=tD,iD={prefix:"fas",iconName:"folder-minus",icon:[512,512,[],"f65d","M448 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"]},lk={prefix:"fas",iconName:"hexagon-nodes-bolt",icon:[576,512,[],"e69a","M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56c30.7 0 55.6-24.7 56-55.2c-7.5-12.9-13.5-26.8-17.6-41.5c-4.2-4-9.1-7.3-14.4-9.9l0-98.8c2.8-1.3 5.5-2.9 8-4.7l10.5 6c5.5-15.3 13.1-29.5 22.4-42.5l-9.1-5.2c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8zM440.5 132C425 105.2 390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c.4 .3 .8 .6 1.3 .9c21.7-9.5 45.6-14.8 70.8-14.8c2 0 4 0 5.9 .1c12.1-17.3 13.8-40.6 2.6-60.1zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"]},ck={prefix:"fas",iconName:"store",icon:[576,512,[],"f54e","M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0L109.6 0C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9c0 0 0 0-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3L448 384l-320 0 0-133.4c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3L64 384l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64 0-131.4c-4 1-8 1.8-12.3 2.3z"]},uk={prefix:"fas",iconName:"arrow-trend-up",icon:[576,512,[],"e098","M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z"]},sD={prefix:"fas",iconName:"plug-circle-minus",icon:[576,512,[],"e55e","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z"]},rD={prefix:"fas",iconName:"sign-hanging",icon:[512,512,["sign"],"f4d9","M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zm96 160l256 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z"]},hk=rD,dk={prefix:"fas",iconName:"bezier-curve",icon:[640,512,[],"f55b","M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4L121.6 84C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36L400 84l0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z"]},fk={prefix:"fas",iconName:"bell-slash",icon:[640,512,[128277,61943],"f1f6","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-90.2-70.7c.2-.4 .4-.9 .6-1.3c5.2-11.5 3.1-25-5.3-34.4l-7.4-8.3C497.3 319.2 480 273.9 480 226.8l0-18.8c0-77.4-55-142-128-156.8L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 19.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM406.2 416L160 222.1l0 4.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S115.4 416 128 416l278.2 0zm-40.9 77.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"]},nD={prefix:"fas",iconName:"tablet",icon:[448,512,["tablet-android"],"f3fb","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 432l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},pk=nD,mk={prefix:"fas",iconName:"school-flag",icon:[576,512,[],"e56e","M288 0L400 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-79.3 0 89.6 64L512 160c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-176 0 0-112c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 112L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l101.7 0L256 95.5 256 32c0-17.7 14.3-32 32-32zm48 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM80 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0zm368 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0zm384 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0z"]},gk={prefix:"fas",iconName:"fill",icon:[512,512,[],"f575","M86.6 9.4C74.1-3.1 53.9-3.1 41.4 9.4s-12.5 32.8 0 45.3L122.7 136 30.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L148.1 481.4c37.5 37.5 98.3 37.5 135.8 0L474.3 290.9c28.1-28.1 28.1-73.7 0-101.8L322.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L168 90.7 86.6 9.4zM168 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L429.1 234.3c3.1 3.1 3.1 8.2 0 11.3L386.7 288 67.5 288c1.4-5.4 4.2-10.4 8.4-14.6L168 181.3z"]},_k={prefix:"fas",iconName:"angle-up",icon:[448,512,[8963],"f106","M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"]},vk={prefix:"fas",iconName:"drumstick-bite",icon:[512,512,[],"f6d7","M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176l0 89.2z"]},Ak={prefix:"fas",iconName:"holly-berry",icon:[512,512,[],"f7aa","M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},Ck={prefix:"fas",iconName:"chevron-left",icon:[320,512,[9001],"f053","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z"]},xk={prefix:"fas",iconName:"bacteria",icon:[640,512,[],"e059","M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-4.3 15.2c-8.3-.6-16.8 0-25.2 1.9c-7.3 1.7-14.3 3.5-21.1 5.5l-5.5-12.7c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l4.4 10.4c-16.6 6.7-31.7 14.4-45.4 22.8L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l6 9c-13.7 11-25.5 22.8-35.8 34.9l-10-8c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L65.9 155c-1.8 2.8-3.5 5.7-5.1 8.5c-6.6 11.4-11.8 22.6-16 33l-8-3.2c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l10.4 4.2c-.2 .8-.4 1.5-.5 2.3c-2.2 9.3-3.4 17.3-4.1 23.4c-.4 3.1-.6 5.7-.8 7.8c-.1 1.1-.1 2-.2 2.8l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.1 1c0 0 0 0-.1 0L28 269.3c-.1 3.1 0 6.1 .2 9.1l-15.2 4.3C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l15.6-4.5c7.6 13.6 18.9 25 32.6 32.6L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l4.3-15.2c1.2 .1 2.4 .2 3.6 .2c15.6 .5 30.3-3.3 43-10.2l9 9c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-7.2-7.2c9.3-12.6 15.2-27.8 16.3-44.5l7.1 3c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.6-3.7c6.4-9.9 17.3-22.4 36.9-33.3l1.3 4.4c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-2.3-8.1c3.8-1.1 7.7-2.1 11.9-3.1c11.6-2.7 22.1-7.7 31.1-14.4l7.2 7.2c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-9-9c7.6-13.9 11.3-30.1 10.1-46.6l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-15.6 4.5c-7.7-13.9-19.1-25.1-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3zM112 272l-48-1.5c0 0 0 0 0 0c11.7 .4 27.3 .9 48 1.6zm16-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-48a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM322.7 489c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l4.3-15.2c8.3 .6 16.8 0 25.2-1.9c7.3-1.7 14.3-3.5 21.1-5.5l5.5 12.7c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-4.4-10.4c16.6-6.7 31.7-14.4 45.4-22.8L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-6-9c13.7-11 25.5-22.8 35.8-34.9l10 8c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574.1 357c1.8-2.8 3.5-5.7 5.1-8.5c6.6-11.4 11.8-22.6 16-33l8 3.2c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-10.4-4.2c.2-.8 .4-1.5 .5-2.3c2.2-9.3 3.4-17.3 4.1-23.4c.4-3.1 .6-5.7 .8-7.8c.1-1.1 .1-2 .2-2.8l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.1-1c0 0 0 0 .1 0l29.1 .9c.1-3.1 0-6.1-.2-9.1l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-15.6 4.5c-7.6-13.6-18.9-25-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.3 12.4l-4.3 15.2c-1.2-.1-2.4-.2-3.6-.2c-15.6-.5-30.3 3.3-43 10.2l-9-9c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l7.2 7.2c-9.3 12.6-15.2 27.8-16.3 44.5l-7.1-3c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.6 3.7c-6.4 9.9-17.3 22.4-36.9 33.3l-1.3-4.4c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l2.3 8.1c-3.8 1.1-7.7 2.1-11.9 3.1c-11.6 2.7-22.1 7.7-31.1 14.4l-7.2-7.2c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l9 9c-7.6 13.9-11.3 30.1-10.1 46.6l-15.2 4.3c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l15.6-4.5c7.7 13.9 19.1 25.1 32.6 32.6L322.7 489zM576 241.5c0 0 0 0 0 0c-11.7-.4-27.3-.9-48-1.6l48 1.5zM448 384a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z"]},bk={prefix:"fas",iconName:"hand-lizard",icon:[512,512,[],"f258","M0 112C0 85.5 21.5 64 48 64l112 0 80 0 46.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 12 0 16 0 48c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8L273.9 352 240 352l-80 0-48 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l48 0 80 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-80 0L48 160c-26.5 0-48-21.5-48-48z"]},Sk={prefix:"fas",iconName:"notdef",icon:[384,512,[],"e1fe","M64 390.3L153.5 256 64 121.7l0 268.6zM102.5 448l179.1 0L192 313.7 102.5 448zm128-192L320 390.3l0-268.6L230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z"]},aD={prefix:"fas",iconName:"disease",icon:[512,512,[],"f7fa","M236.4 61.4L227 75.5c-21.3 32-59.4 48.5-97.3 42.1l-59.6-9.9C33.4 101.6 0 129.9 .1 167.1c0 15.9 6.4 31.2 17.6 42.5l29.2 29.2c11 11 17.2 25.9 17.2 41.5c0 15.8-6.4 30.9-17.7 42L33.3 335.1C22.2 345.9 16 360.7 16 376.2c0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6l10 0c27.2 0 53.7 9.3 75 26.3L287.8 467c10.5 8.4 23.6 13 37 13c32.7 0 59.3-26.5 59.3-59.3l0-25.2c0-34.9 21.4-66.2 53.9-78.8l36.9-14.3c22.4-8.7 37.2-30.3 37.2-54.3c0-28.1-20.1-52.3-47.8-57.3l-28-5.1c-36.5-6.7-65.4-34.5-73.6-70.7l-7.1-31.5C348.9 53.4 322.1 32 291.3 32c-22 0-42.6 11-54.9 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm0 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},yk={prefix:"fas",iconName:"briefcase-medical",icon:[512,512,[],"f469","M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},Mk={prefix:"fas",iconName:"genderless",icon:[384,512,[],"f22d","M192 144a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm0 288a176 176 0 1 0 0-352 176 176 0 1 0 0 352z"]},Ek={prefix:"fas",iconName:"chevron-right",icon:[320,512,[9002],"f054","M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"]},oD={prefix:"fas",iconName:"retweet",icon:[576,512,[],"f079","M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0c-17.7 0-32-14.3-32-32l0-128 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96l112 0zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-128c0-53-43-96-96-96L304 96z"]},lD={prefix:"fas",iconName:"car-rear",icon:[512,512,["car-alt"],"f5de","M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 192l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 80c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 256 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-56.6c19.1-11.1 32-31.7 32-55.4l0-80c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 272l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},Tk=lD,cD={prefix:"fas",iconName:"pump-soap",icon:[448,512,[],"e06b","M128 32l0 96 128 0 0-32 60.1 0c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4L256 32c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512l186.4 0c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7l-149.1 0zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z"]},Lk={prefix:"fas",iconName:"video-slash",icon:[640,512,[],"f4e2","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2l0-256c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9l0 17.1 0 128 0 5.8-32-25.1L416 128c0-35.3-28.7-64-64-64L113.9 64 38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5l0 256c0 35.3 28.7 64 64 64l256 0c23.4 0 43.9-12.6 55-31.3z"]},uD={prefix:"fas",iconName:"battery-quarter",icon:[576,512,["battery-2"],"f243","M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm112 96l-96 0 0 128 96 0 0-128z"]},Ik=uD,Pk={prefix:"fas",iconName:"radio",icon:[512,512,[128251],"f8d7","M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192l0 4L0 304 0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-229.5 0L494.8 47zM368 240a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM80 256c0-8.8 7.2-16 16-16l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 336c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16z"]},hD={prefix:"fas",iconName:"baby-carriage",icon:[512,512,["carriage-baby"],"f77d","M256 192L.1 192C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0 0-64zM80 416a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm240 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},dD=hD,Ok={prefix:"fas",iconName:"traffic-light",icon:[320,512,[128678],"f637","M64 0C28.7 0 0 28.7 0 64L0 352c0 88.4 71.6 160 160 160s160-71.6 160-160l0-288c0-35.3-28.7-64-64-64L64 0zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z"]},Rk={prefix:"fas",iconName:"thermometer",icon:[512,512,[],"f491","M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z"]},Dk={prefix:"fas",iconName:"vr-cardboard",icon:[640,512,[],"f729","M576 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l120.4 0c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4L576 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},Nk={prefix:"fas",iconName:"hand-middle-finger",icon:[448,512,[128405],"f806","M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48l0 7 0 73c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-64 0-32c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z"]},bI={prefix:"fas",iconName:"percent",icon:[384,512,[62101,62785,"percentage"],"25","M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128A64 64 0 1 0 0 128a64 64 0 1 0 128 0zM384 384a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"]},wk=bI,fD={prefix:"fas",iconName:"truck-moving",icon:[640,512,[],"f4df","M64 32C28.7 32 0 60.7 0 96L0 304l0 80 0 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16L416 384l33.6 0c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16l1.6 0c17.7 0 32-14.3 32-32l0-64 0-16 0-10.3c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5L480 144l0-48c0-35.3-28.7-64-64-64L64 32zM585 256l-105 0 0-64 48.8 0c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM176 400a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM80 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Bk={prefix:"fas",iconName:"glass-water-droplet",icon:[384,512,[],"e4f5","M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64l251.3 0L301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C161.7 125.9 128 172 128 196c0 33.1 28.7 60 64 60s64-26.9 64-60z"]},zk={prefix:"fas",iconName:"display",icon:[576,512,[],"e163","M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l176 0-10.7 32L160 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-69.3 0L336 416l176 0c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0zM512 64l0 288L64 352 64 64l448 0z"]},SI={prefix:"fas",iconName:"face-smile",icon:[512,512,[128578,"smile"],"f118","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Fk=SI,pD={prefix:"fas",iconName:"thumbtack",icon:[384,512,[128204,128392,"thumb-tack"],"f08d","M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3L32 352c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 384l64 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z"]},kk=pD,mD={prefix:"fas",iconName:"trophy",icon:[576,512,[127942],"f091","M400 0L176 0c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8L24 64C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9L192 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-26.1 0C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24L446.4 64c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112l84.4 0c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6l84.4 0c-5.1 66.3-31.1 111.2-63 142.3z"]},gD={prefix:"fas",iconName:"person-praying",icon:[448,512,[128720,"pray"],"f683","M352 64A64 64 0 1 0 224 64a64 64 0 1 0 128 0zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432 72 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z"]},Uk=gD,jk={prefix:"fas",iconName:"hammer",icon:[576,512,[128296],"f6e3","M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6l0-12.1L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0l18.1 0c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z"]},Vk={prefix:"fas",iconName:"hand-peace",icon:[512,512,[9996],"f25b","M224 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM93.3 51.2L175.9 240l-69.9 0L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5 69.9 0 26.1 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363l0-27c0-32.7 24.6-59.7 56.3-63.5z"]},yI={prefix:"fas",iconName:"rotate",icon:[512,512,[128260,"sync-alt"],"f2f1","M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z"]},Gk=yI,Wk={prefix:"fas",iconName:"spinner",icon:[512,512,[],"f110","M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z"]},Hk={prefix:"fas",iconName:"robot",icon:[640,512,[129302],"f544","M320 0c17.7 0 32 14.3 32 32l0 64 120 0c39.8 0 72 32.2 72 72l0 272c0 39.8-32.2 72-72 72l-304 0c-39.8 0-72-32.2-72-72l0-272c0-39.8 32.2-72 72-72l120 0 0-64c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224l16 0 0 192-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0 0-192 16 0z"]},Yk={prefix:"fas",iconName:"peace",icon:[512,512,[9774],"f67c","M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8l0-174.2C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5l0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3l0 174.2L422.8 351.1zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]},MI={prefix:"fas",iconName:"gears",icon:[640,512,["cogs"],"f085","M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8l-.7 0c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},Xk=MI,Zk={prefix:"fas",iconName:"warehouse",icon:[640,512,[],"f494","M0 488L0 171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4L640 488c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-264c0-17.7-14.3-32-32-32l-384 0c-17.7 0-32 14.3-32 32l0 264c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24l0-56 384 0 0 56c0 13.3-10.7 24-24 24zM128 400l0-64 384 0 0 64-384 0zm0-96l0-80 384 0 0 80-384 0z"]},Kk={prefix:"fas",iconName:"arrow-up-right-dots",icon:[576,512,[],"e4b7","M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3l0 50.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L160 0zM576 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM448 208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm128 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM272 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM144 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM576 336a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-48-80a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},_D={prefix:"fas",iconName:"splotch",icon:[512,512,[],"f5bc","M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0c28.5 0 53.6 18.7 61.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2c0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6c-14.8 0-29.3-5.1-40.8-14.3l-55.4-44.3c-4.5-3.6-9.3-6.7-14.5-9.2c-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9C47.8 458.2 16 431.6 16 396.5c0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1c0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9c0-33.4 30.1-58.8 63-53.2l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z"]},vD={prefix:"fas",iconName:"face-grin-hearts",icon:[512,512,[128525,"grin-hearts"],"f584","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z"]},qk=vD,AD={prefix:"fas",iconName:"dice-four",icon:[448,512,[9859],"f524","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Qk={prefix:"fas",iconName:"sim-card",icon:[384,512,[],"f7c4","M64 0L242.7 0c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32l0 32 64 0 0-64-32 0zM64 352l80 0 96 0 80 0 0-64-80 0-96 0-80 0 0 64zM320 224c0-17.7-14.3-32-32-32l-32 0 0 64 64 0 0-32zM160 192l0 64 64 0 0-64-64 0zM288 448c17.7 0 32-14.3 32-32l0-32-64 0 0 64 32 0zM160 384l0 64 64 0 0-64-64 0zM64 416c0 17.7 14.3 32 32 32l32 0 0-64-64 0 0 32z"]},CD={prefix:"fas",iconName:"transgender",icon:[512,512,[9895,"transgender-alt"],"f225","M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l96 0c8.8 0 16 7.2 16 16l0 96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2l0 17.8 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-17.8C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112L0 16C0 7.2 7.2 0 16 0l96 0zM352 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z"]},Jk=CD,xD={prefix:"fas",iconName:"mercury",icon:[384,512,[9791],"f223","M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4l0 25.6 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-25.6C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224a112 112 0 1 0 224 0A112 112 0 1 0 80 224z"]},bD={prefix:"fas",iconName:"arrow-turn-down",icon:[384,512,["level-down"],"f149","M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z"]},$k=bD,SD={prefix:"fas",iconName:"person-falling-burst",icon:[640,512,[],"e547","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2L32 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320l1.4 0 80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80A48 48 0 1 0 0 80a48 48 0 1 0 96 0zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z"]},eU={prefix:"fas",iconName:"award",icon:[384,512,[],"f559","M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z"]},yD={prefix:"fas",iconName:"ticket-simple",icon:[576,512,["ticket-alt"],"f3ff","M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6C541.5 217.1 528 235 528 256s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64c0-8.8 7.4-15.7 15.7-18.6C34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z"]},MD=yD,tU={prefix:"fas",iconName:"building",icon:[384,512,[127970,61687],"f1ad","M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z"]},EI={prefix:"fas",iconName:"angles-left",icon:[512,512,[171,"angle-double-left"],"f100","M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z"]},iU=EI,ED={prefix:"fas",iconName:"qrcode",icon:[448,512,[],"f029","M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 96l0 64 64 0 0-64L64 96zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zm64 16l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm80 64l-64 0 0 64 64 0 0-64zM256 304c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s7.2-16 16-16s16 7.2 16 16l0 96c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-160zM368 480a16 16 0 1 1 0-32 16 16 0 1 1 0 32zm64 0a16 16 0 1 1 0-32 16 16 0 1 1 0 32z"]},TD={prefix:"fas",iconName:"clock-rotate-left",icon:[512,512,["history"],"f1da","M75 75L41 41C25.9 25.9 0 36.6 0 57.9L0 168c0 13.3 10.7 24 24 24l110.1 0c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1c0-13.3-10.7-24-24-24z"]},LD=TD,ID={prefix:"fas",iconName:"face-grin-beam-sweat",icon:[512,512,[128517,"grin-beam-sweat"],"f583","M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0z"]},PD=ID,OD={prefix:"fas",iconName:"file-export",icon:[576,512,["arrow-right-from-file"],"f56e","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 128-168 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0 0 112c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM384 336l0-48 110.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39L384 336zm0-208l-128 0L256 0 384 128z"]},sU=OD,RD={prefix:"fas",iconName:"shield",icon:[512,512,[128737,"shield-blank"],"f132","M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z"]},DD=RD,ND={prefix:"fas",iconName:"arrow-up-short-wide",icon:[576,512,["sort-amount-up-alt"],"f885","M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0z"]},wD=ND,rU={prefix:"fas",iconName:"comment-nodes",icon:[640,512,[],"e696","M256 448c10.8 0 21.5-.5 32-1.6c.3-15.8 4.4-31.7 12.9-46.4c16-27.7 43.7-44.4 73.2-47.5l16.7-29.2c-4.3-11-6.7-22.9-6.7-35.4c0-53 43-96 96-96c9.1 0 17.8 1.3 26.2 3.6C481.1 102.1 378.6 32 256 32C114.6 32 0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.2 .3-.4 .5-.6 .7c-.3 .3-.5 .5-.6 .7l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm72.6-32c-17.7 30.6-7.2 69.7 23.4 87.4s69.7 7.2 87.4-23.4c1.5-2.6 2.8-5.3 3.9-8l73.3 0c1.1 2.7 2.4 5.4 3.9 8c17.7 30.6 56.8 41.1 87.4 23.4s41.1-56.8 23.4-87.4c-13.4-23.2-39.1-34.8-64-31.4l-17.6-30.7c-11 11.7-25 20.6-40.6 25.6l16.5 28.9c-3.8 4.8-6.8 10-9 15.6l-73.4 0c-2.2-5.6-5.3-10.8-9-15.6l33-57.7c4.1 .8 8.4 1.3 12.8 1.3c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64c0 13.4 4.1 25.8 11.2 36.1l-34.6 60.5c-25-3.4-50.6 8.3-64 31.4z"]},nU={prefix:"fas",iconName:"house-medical",icon:[576,512,[],"e3b2","M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l320.4 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0zM256 208c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"]},BD={prefix:"fas",iconName:"golf-ball-tee",icon:[384,512,["golf-ball"],"f450","M384 192c0 66.8-34.1 125.6-85.8 160L85.8 352C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zm-52.3-49.3c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zM96 416c0-17.7 14.3-32 32-32l64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0c-8.8 0-16 7.2-16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16c0-8.8-7.2-16-16-16l-16 0c-17.7 0-32-14.3-32-32z"]},aU=BD,zD={prefix:"fas",iconName:"circle-chevron-left",icon:[512,512,["chevron-circle-left"],"f137","M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z"]},FD=zD,oU={prefix:"fas",iconName:"house-chimney-window",icon:[576,512,[],"e00d","M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z"]},lU={prefix:"fas",iconName:"pen-nib",icon:[512,512,[10001],"f5ad","M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.7-9.2L288 94.6z"]},cU={prefix:"fas",iconName:"tent-arrow-turn-left",icon:[576,512,[],"e580","M120.1 41.8c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120 456 120c39.8 0 72 32.2 72 72l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-66.3-53.7-120-120-120L86.5 72l33.5-30.2zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},uU={prefix:"fas",iconName:"tents",icon:[640,512,[],"e582","M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5L608 352c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},TI={prefix:"fas",iconName:"wand-magic",icon:[512,512,["magic"],"f0d0","M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z"]},hU=TI,dU={prefix:"fas",iconName:"dog",icon:[576,512,[128021],"f6d3","M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32l52.1 0c12.7 0 24.9 5.1 33.9 14.1L496 64l56 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-32 0-16 0-21.3 0-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-115.2c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-230.2c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192l30 0 16 0 159.8 0L416 256.1zM464 80a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"]},fU={prefix:"fas",iconName:"carrot",icon:[512,512,[129365],"f787","M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z"]},pU={prefix:"fas",iconName:"moon",icon:[384,512,[127769,9214],"f186","M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z"]},kD={prefix:"fas",iconName:"wine-glass-empty",icon:[320,512,["wine-glass-alt"],"f5ce","M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6l0 99.6-48 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0-99.6c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0L64 0zM81.9 203.1L93.4 64l133.1 0 11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z"]},mU=kD,UD={prefix:"fas",iconName:"cheese",icon:[512,512,[],"f7ef","M512 240.2l0 15.8L0 256c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8l0 128c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 288l512 0z"]},gU={prefix:"fas",iconName:"yin-yang",icon:[512,512,[9775],"f6ad","M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm32-352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},_U={prefix:"fas",iconName:"music",icon:[512,512,[127925],"f001","M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7l0 72 0 264c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6L448 147 192 223.8 192 432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6L128 200l0-72c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z"]},vU={prefix:"fas",iconName:"code-commit",icon:[640,512,[],"f386","M320 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l131.2 0C178 151 242.6 96 320 96s142 55 156.8 128L608 224c17.7 0 32 14.3 32 32s-14.3 32-32 32l-131.2 0z"]},AU={prefix:"fas",iconName:"temperature-low",icon:[512,512,[],"f76b","M448 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 96a96 96 0 1 1 192 0A96 96 0 1 1 320 96zM144 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L192 112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L32 112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3l0-50.7c0-8.8 7.2-16 16-16s16 7.2 16 16l0 50.7c18.6 6.6 32 24.4 32 45.3z"]},LI={prefix:"fas",iconName:"person-biking",icon:[640,512,[128692,"biking"],"f84a","M400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1 288 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM56 384a72 72 0 1 1 144 0A72 72 0 1 1 56 384zm200 0A128 128 0 1 0 0 384a128 128 0 1 0 256 0zm184 0a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zm200 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"]},CU=LI,II={prefix:"fas",iconName:"broom",icon:[576,512,[129529],"f51a","M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6c-12.5 0-22.6 10.1-22.6 22.6l0 29.1L364.3 320l29.1 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8C76.5 307.5 64 337.7 64 369.2c0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9C0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8c30.6-30.6 45.9-73.1 42.3-115.8z"]},xU={prefix:"fas",iconName:"shield-heart",icon:[512,512,[],"e574","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z"]},bU={prefix:"fas",iconName:"gopuram",icon:[512,512,[],"f664","M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 0 32 0 64c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32l0 96c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-64 0 0-160-32 0 0-128-32 0 0-96-32 0 0 96 32 0 0 128 32 0 0 160-80 0 0-48c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 48-80 0 0-160 32 0 0-128 32 0 0-96-32 0 0 96-32 0 0 128-32 0 0 160-64 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-96c0-17.7 14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l0-64 0-32 0-8c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-32-80l0 32 64 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},jD={prefix:"fas",iconName:"earth-oceania",icon:[512,512,["globe-oceania"],"e47b","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3l-29.9 0c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},VD=jD,PI={prefix:"fas",iconName:"square-xmark",icon:[448,512,[10062,"times-square","xmark-square"],"f2d3","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},SU=PI,yU=PI,MU={prefix:"fas",iconName:"hashtag",icon:[448,512,[62098],"23","M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128l95.1 0 11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128l58.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-68.9 0L325.8 320l58.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-68.9 0-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7-95.1 0-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 21.3-128L64 192c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320l95.1 0 21.3-128-95.1 0z"]},GD={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]},EU=GD,TU={prefix:"fas",iconName:"oil-can",icon:[640,512,[],"f613","M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-80 0-48 0-48 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30L96 368c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8L288 160l0-32 32 0zM96 208l0 86.1L48 272.8 48 208l48 0z"]},LU={prefix:"fas",iconName:"t",icon:[384,512,[116],"54","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 32 32 32z"]},IU={prefix:"fas",iconName:"hippo",icon:[640,512,[129435],"f6ed","M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1 7.2 0L256 64l32 0c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"]},PU={prefix:"fas",iconName:"chart-column",icon:[512,512,[],"e0e3","M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm128-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM480 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z"]},OU={prefix:"fas",iconName:"infinity",icon:[640,512,[8734,9854],"f534","M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1l0 29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9l0-29.7zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1l0 29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1l0-29.7c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z"]},WD={prefix:"fas",iconName:"vial-circle-check",icon:[512,512,[],"e596","M0 64C0 46.3 14.3 32 32 32l64 0 64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 170.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96L32 96C14.3 96 0 81.7 0 64zM96 96l0 96 64 0 0-96L96 96zM224 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},RU={prefix:"fas",iconName:"person-arrow-down-to-line",icon:[640,512,[],"e538","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352l0-96 16 0 0 96-16 0zm-64 0l-88 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l120 0 80 0 376 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-344 0 0-191.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 448zM464 64l0 242.7-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7 528 64c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},DU={prefix:"fas",iconName:"voicemail",icon:[640,512,[],"f897","M144 320a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm119.8 0c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144l352 0c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"]},NU={prefix:"fas",iconName:"fan",icon:[512,512,[],"f863","M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224l-2.6 0C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480l0 2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288l2.6 0c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32l0-2.6C288 13.2 274.8 0 258.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},wU={prefix:"fas",iconName:"person-walking-luggage",icon:[576,512,[],"e554","M432 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z"]},OI={prefix:"fas",iconName:"up-down",icon:[256,512,[8597,11021,"arrows-alt-v"],"f338","M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160l56 0 0 192-56 0c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4l-56 0 0-192 56 0c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z"]},BU=OI,zU={prefix:"fas",iconName:"cloud-moon-rain",icon:[576,512,[],"f73c","M481.2 0C417 0 363.5 46.5 353.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM367.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C241.3 114.6 210.8 96 176 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96l271.9 0zM85.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z"]},FU={prefix:"fas",iconName:"calendar",icon:[448,512,[128197,128198],"f133","M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272z"]},kU={prefix:"fas",iconName:"trailer",icon:[640,512,[],"e041","M48 32C21.5 32 0 53.5 0 80L0 336c0 26.5 21.5 48 48 48l17.1 0c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96L488 384l8 0 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-240c0-26.5-21.5-48-48-48L48 32zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21L64 112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},RI={prefix:"fas",iconName:"bahai",icon:[576,512,["haykal"],"f666","M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z"]},UU=RI,HD={prefix:"fas",iconName:"sd-card",icon:[384,512,[],"f7c2","M320 0L141.3 0C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},jU={prefix:"fas",iconName:"dragon",icon:[640,512,[128009],"f6d5","M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L416 0l32 0 16 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7L480 160l-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512L496 512l-64 0L32.3 512c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-45.5 0-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z"]},VU={prefix:"fas",iconName:"shoe-prints",icon:[640,512,[],"f54b","M416 0C352.3 0 256 32 256 32l0 128c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64l32 0 0-128-32 0c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32l0 128s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64l32 0 0-128-32 0c-35.3 0-64 28.7-64 64z"]},YD={prefix:"fas",iconName:"circle-plus",icon:[512,512,["plus-circle"],"f055","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},I9=YD,XD={prefix:"fas",iconName:"face-grin-tongue-wink",icon:[512,512,[128540,"grin-tongue-wink"],"f58b","M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448l0-46.9c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2l0 47.3c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},GU=XD,WU={prefix:"fas",iconName:"hand-holding",icon:[576,512,[],"f4bd","M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 272 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-16 0-78.3 0c-29.1 0-57.3 9.9-80 28L68.8 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 160.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2c.3 0 .6 0 .9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z"]},HU={prefix:"fas",iconName:"plug-circle-exclamation",icon:[576,512,[],"e55d","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"]},P9={prefix:"fas",iconName:"link-slash",icon:[640,512,["chain-broken","chain-slash","unlink"],"f127","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z"]},ZD=P9,YU=P9,KD=P9,XU={prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z"]},ZU={prefix:"fas",iconName:"person-walking-arrow-loop-left",icon:[640,512,[],"e551","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384l18.7 0c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96l-18.7 0 25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z"]},qD={prefix:"fas",iconName:"arrow-up-z-a",icon:[576,512,["sort-alpha-up-alt"],"f882","M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L352 32c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400l-40.4 0z"]},QD=qD,JD={prefix:"fas",iconName:"fire-flame-curved",icon:[384,512,["fire-alt"],"f7e4","M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z"]},KU=JD,qU={prefix:"fas",iconName:"tornado",icon:[448,512,[127786],"f76f","M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0L32 0C14.3 0 0 14.3 0 32zm352.2 96L13.6 128c12.2 35.9 32.3 68.7 58.8 96L412 224l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9l-322.5 0c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9L288 384z"]},$D={prefix:"fas",iconName:"file-circle-plus",icon:[576,512,[58606],"e494","M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z"]},eN={prefix:"fas",iconName:"book-quran",icon:[448,512,["quran"],"f687","M352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0L64 0 352 0zm0 384L96 384l0 64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z"]},QU=eN,JU={prefix:"fas",iconName:"anchor",icon:[576,512,[9875],"f13d","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c88.4 0 160-71.6 160-160l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 53-43 96-96 96l-48 0 0-208 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0z"]},tN={prefix:"fas",iconName:"border-all",icon:[448,512,[],"f84c","M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224L64 224 64 96l128 0 0 128zM64 288l128 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]},iN={prefix:"fas",iconName:"face-angry",icon:[512,512,[128544,"angry"],"f556","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM338.7 395.9c6.6-5.9 7.1-16 1.2-22.6C323.8 355.4 295.7 336 256 336s-67.8 19.4-83.9 37.3c-5.9 6.6-5.4 16.7 1.2 22.6s16.7 5.4 22.6-1.2c11.7-13 31.6-26.7 60.1-26.7s48.4 13.7 60.1 26.7c5.9 6.6 16 7.1 22.6 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z"]},$U=iN,sN={prefix:"fas",iconName:"cookie-bite",icon:[512,512,[],"f564","M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},ej={prefix:"fas",iconName:"arrow-trend-down",icon:[576,512,[],"e097","M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z"]},O9={prefix:"fas",iconName:"rss",icon:[448,512,["feed"],"f09e","M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},tj=O9,ij={prefix:"fas",iconName:"draw-polygon",icon:[448,512,[],"f5ee","M96 151.4l0 209.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56s0 0 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1c0 0 0 0 0 0l32-56 4.5-7.9-.1-.3-209.1 0c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-209.1C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z"]},rN={prefix:"fas",iconName:"scale-balanced",icon:[640,512,[9878,"balance-scale"],"f24e","M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3L352 448l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288l144.9 0L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320l144.9 0L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z"]},nN=rN,DI={prefix:"fas",iconName:"gauge-simple-high",icon:[512,512,[61668,"tachometer","tachometer-fast"],"f62a","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z"]},sj=DI,aN=DI,rj={prefix:"fas",iconName:"shower",icon:[512,512,[128703],"f2cc","M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.2-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},NI={prefix:"fas",iconName:"desktop",icon:[576,512,[128421,61704,"desktop-alt"],"f390","M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l176 0-10.7 32L160 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-69.3 0L336 416l176 0c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0zM512 64l0 224L64 288 64 64l448 0z"]},nj=NI,aj={prefix:"fas",iconName:"m",icon:[448,512,[109],"4d","M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3L250.6 369.8c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 49.9 9.2 37.5 22.7 33.4z"]},oN={prefix:"fas",iconName:"table-list",icon:[512,512,["th-list"],"f00b","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64L64 96zm384 0L192 96l0 64 256 0 0-64zM64 224l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64zM64 352l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64z"]},oj=oN,wI={prefix:"fas",iconName:"comment-sms",icon:[512,512,["sms"],"f7cd","M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM96 212.8c0-20.3 16.5-36.8 36.8-36.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.3 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8L112 304c-8.8 0-16-7.2-16-16s7.2-16 16-16l27.2 0c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6C102.2 236.7 96 225.2 96 212.8zM372.8 176l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.2 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8L352 304c-8.8 0-16-7.2-16-16s7.2-16 16-16l27.2 0c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6c-10.2-6.8-16.4-18.3-16.4-30.7c0-20.3 16.5-36.8 36.8-36.8zm-152 6.4L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240l0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-6.9 4.4-13 10.9-15.2s13.7 .1 17.9 5.6z"]},lj=wI,cj={prefix:"fas",iconName:"book",icon:[448,512,[128212],"f02d","M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zm16 48l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},uj={prefix:"fas",iconName:"user-plus",icon:[640,512,[],"f234","M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM504 312l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},hj={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]},lN={prefix:"fas",iconName:"battery-three-quarters",icon:[576,512,["battery-4"],"f241","M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm272 96L96 192l0 128 256 0 0-128z"]},dj=lN,cN={prefix:"fas",iconName:"house-circle-check",icon:[640,512,[],"e509","M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},fj={prefix:"fas",iconName:"angle-left",icon:[320,512,[8249],"f104","M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"]},pj={prefix:"fas",iconName:"diagram-successor",icon:[512,512,[],"e47a","M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z"]},mj={prefix:"fas",iconName:"truck-arrow-right",icon:[640,512,[],"e58b","M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L96 168c-13.3 0-24 10.7-24 24s10.7 24 24 24l166.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z"]},gj={prefix:"fas",iconName:"arrows-split-up-and-left",icon:[512,512,[],"e4bc","M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3 352 384c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64l-114.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256 224 256c23.3 0 45.2 6.2 64 17.1l0-163.9-41.4 41.4z"]},BI={prefix:"fas",iconName:"hand-fist",icon:[448,512,[9994,"fist-raised"],"f6de","M192 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z"]},_j=BI,vj={prefix:"fas",iconName:"cloud-moon",icon:[640,512,[],"f6c3","M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80L96 511.9c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"]},Aj={prefix:"fas",iconName:"briefcase",icon:[512,512,[128188],"f0b1","M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 128 0 192 0 0-96c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM512 288l-192 0 0 32c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128z"]},uN={prefix:"fas",iconName:"person-falling",icon:[512,512,[],"e546","M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0-1.4 0 92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-73.8c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 32a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},hN={prefix:"fas",iconName:"image-portrait",icon:[384,512,["portrait"],"f3e0","M384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM128 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 356.6c0-37.9 30.7-68.6 68.6-68.6l86.9 0c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4l-169.1 0C92.3 384 80 371.7 80 356.6z"]},dN=hN,Cj={prefix:"fas",iconName:"user-tag",icon:[640,512,[],"f507","M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1l0-33c-15.9-4.7-32.8-7.2-50.3-7.2l-91.4 0zM384 224c-17.7 0-32 14.3-32 32l0 82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7L384 224zm24 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},R9={prefix:"fas",iconName:"rug",icon:[640,512,[],"e569","M24 64l32 0 24 0 0 24 0 88 0 80 0 80 0 88 0 24-24 0-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0l416 0 0 384-416 0 0-384zM640 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0-24 0 0-24 0-88 0-80 0-80 0-88 0-24 24 0 32 0c13.3 0 24 10.7 24 24z"]},fN={prefix:"fas",iconName:"earth-europe",icon:[512,512,["globe-europe"],"f7a2","M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1l0 9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1l1 0c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24l0 4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6l29.4 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-20.7 0c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3l11.3 0c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16l7.3 0c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.7-15.4l-20.9 0c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3l0 3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3l21.3 0c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z"]},xj=fN,pN={prefix:"fas",iconName:"cart-flatbed-suitcase",icon:[640,512,["luggage-cart"],"f59d","M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l464 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-66.7 0c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16L144 448c-44.2 0-80-35.8-80-80L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM432 96l0-40c0-4.4-3.6-8-8-8l-80 0c-4.4 0-8 3.6-8 8l0 40 96 0zM288 96l0-40c0-30.9 25.1-56 56-56l80 0c30.9 0 56 25.1 56 56l0 40 0 224-192 0 0-224zM512 320l0-224 16 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-16 0zM240 96l16 0 0 224-16 0c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48z"]},bj=pN,D9={prefix:"fas",iconName:"rectangle-xmark",icon:[512,512,[62164,"rectangle-times","times-rectangle","window-close"],"f410","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},mN=D9,Sj=D9,yj=D9,zI={prefix:"fas",iconName:"baht-sign",icon:[320,512,[],"e0ac","M144 0c-17.7 0-32 14.3-32 32l0 32L37.6 64C16.8 64 0 80.8 0 101.6L0 224l0 41.7L0 288 0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112l0-32c0-17.7-14.3-32-32-32zM112 128l0 96-48 0 0-96 48 0zm64 96l0-96c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64l0 96-48 0 0-96 48 0zm64 96l0-96 32 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-32 0z"]},Mj={prefix:"fas",iconName:"book-open",icon:[576,512,[128214,128366],"f518","M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5l0-377.4c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8L0 454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5l0-370.3c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11L304 456c0 11.4 11.7 19.3 22.4 15.5z"]},gN={prefix:"fas",iconName:"book-journal-whills",icon:[448,512,["journal-whills"],"f66a","M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.2-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.8-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-8.2-17-20.5-31.7-35.9-42.6c-2.7-1.9-6.2 1.4-5 4.5c8.5 22.4 3.6 48-13 65.6c-3.2 3.4-3.6 8.9-.9 12.7c9.8 14 12.7 31.9 7.5 48.5c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-5.1-16.6-2.2-34.4 7.6-48.5c2.7-3.9 2.3-9.3-.9-12.7c-16.6-17.5-21.6-43.1-13.1-65.5c1.2-3.1-2.3-6.4-5-4.5c-15.3 10.9-27.6 25.6-35.8 42.6l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z"]},Ej=gN,_N={prefix:"fas",iconName:"handcuffs",icon:[640,512,[],"e4f8","M240 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM192 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32 80c17.7 0 32 14.3 32 32l8 0c13.3 0 24 10.7 24 24l0 16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1l0-16c0-13.3 10.7-24 24-24l8 0c0-17.7 14.3-32 32-32zm0 320a96 96 0 1 0 0-192 96 96 0 1 0 0 192zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1l0-16c0-13.3 10.7-24 24-24l8 0c0-17.7 14.3-32 32-32s32 14.3 32 32l8 0c13.3 0 24 10.7 24 24l0 16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM368 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm80 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},FI={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Tj=FI,Lj=FI,Ij={prefix:"fas",iconName:"database",icon:[448,512,[],"f1c0","M448 80l0 48c0 44.2-100.3 80-224 80S0 172.2 0 128L0 80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6L448 288c0 44.2-100.3 80-224 80S0 332.2 0 288L0 186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6l0 85.9c0 44.2-100.3 80-224 80S0 476.2 0 432l0-85.9z"]},kI={prefix:"fas",iconName:"share",icon:[512,512,["mail-forward"],"f064","M307 34.8c-11.5 5.1-19 16.6-19 29.2l0 64-112 0C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96l96 0 0 64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z"]},Pj=kI,Oj={prefix:"fas",iconName:"bottle-droplet",icon:[320,512,[],"e4c4","M96 0C82.7 0 72 10.7 72 24s10.7 24 24 24c4.4 0 8 3.6 8 8l0 64.9c0 12.2-7.2 23.1-17.2 30.1C53.7 174.1 32 212.5 32 256l0 192c0 35.3 28.7 64 64 64l128 0c35.3 0 64-28.7 64-64l0-192c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1L216 56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0s0 0 0 0s0 0 0 0L104 0s0 0 0 0s0 0 0 0L96 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C185.9 288.9 208 320.2 208 337c0 24.9-21.5 45-48 45z"]},Rj={prefix:"fas",iconName:"mask-face",icon:[640,512,[],"e1d7","M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1l-9.2 0-16 0-72 0c-30.9 0-56 25.1-56 56l0 85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269l0-85c0-30.9-25.1-56-56-56l-72 0-16 0-9.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269l0-85c0-4.4 3.6-8 8-8l40 0 0 48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3l0-48 40 0c4.4 0 8 3.6 8 8l0 85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16zm16 48l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16z"]},Dj={prefix:"fas",iconName:"hill-rockslide",icon:[576,512,[],"e508","M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},vN={prefix:"fas",iconName:"right-left",icon:[512,512,["exchange-alt"],"f362","M32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-64L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64 320 0z"]},AN=vN,Nj={prefix:"fas",iconName:"paper-plane",icon:[512,512,[61913],"f1d8","M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480l0-83.6c0-4 1.5-7.8 4.2-10.8L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z"]},wj={prefix:"fas",iconName:"road-circle-exclamation",icon:[640,512,[],"e565","M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"]},UI={prefix:"fas",iconName:"dungeon",icon:[512,512,[],"f6d9","M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9l80 0c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24l80 0c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288l-80 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zM24 416c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zm384 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16l0-272zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 240c0 8.8 7.2 16 16 16s16-7.2 16-16l0-240zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 240c0 8.8 7.2 16 16 16s16-7.2 16-16l0-240z"]},Bj={prefix:"fas",iconName:"align-right",icon:[448,512,[],"f038","M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"]},CN={prefix:"fas",iconName:"money-bill-1-wave",icon:[576,512,["money-bill-wave-alt"],"f53b","M0 112.5L0 422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4l0-309.9c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416l-64 0 0-64c35.3 0 64 28.7 64 64zM64 224l0-64 64 0c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l24 0 24 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20z"]},zj=CN,jI={prefix:"fas",iconName:"life-ring",icon:[512,512,[],"f1cd","M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3s-20.2-113.9-54-157.3c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256s20.2 113.9 54 157.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"]},VI={prefix:"fas",iconName:"hands",icon:[576,512,["sign-language","signing"],"f2a7","M544 160l-.1 72.6c-.1 52.2-24 101-64 133.1c.1-1.9 .1-3.8 .1-5.7l0-8c0-71.8-37-138.6-97.9-176.7l-60.2-37.6c-8.6-5.4-17.9-8.4-27.3-9.4L248.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l78 135.1c3.3 5.7 10.7 7.7 16.4 4.4s7.7-10.7 4.4-16.4l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S362 5 368.6 16.5l68 117.8s0 0 0 0s0 0 0 0l43.3 75L480 160c0-17.7 14.4-32 32-32s32 14.4 32 32zM243.9 88.5L268.5 131c-13.9 4.5-26.4 13.7-34.7 27c-.9 1.4-1.7 2.9-2.5 4.4l-28.9-50c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l26.8 46.4c.6 6 2.1 11.8 4.3 17.4l-4.7 0-13.3 0s0 0 0 0L179 216l-23-39.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM260.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C416.7 234.7 448 291.2 448 352l0 8c0 83.9-68.1 152-152 152l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L88 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L88 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0s0 0 0 0s0 0 0 0l93.2 0L271 219.1c-15-9.4-19.5-29.1-10.2-44.1z"]},Fj=VI,xN=VI,kj={prefix:"fas",iconName:"calendar-day",icon:[448,512,[],"f783","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-96 0z"]},N9={prefix:"fas",iconName:"water-ladder",icon:[576,512,["ladder-water","swimming-pool"],"f5c5","M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7l0 96.3 192 0 0-96.3C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7L448 361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3c0 0 0 0 0 0l0-96.5-192 0 0 96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1l0-233.3zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"]},Uj=N9,bN=N9,SN={prefix:"fas",iconName:"arrows-up-down",icon:[320,512,["arrows-v"],"f07d","M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3l0 293.5L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7l0-293.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z"]},yN=SN,MN={prefix:"fas",iconName:"face-grimace",icon:[512,512,[128556,"grimace"],"f57f","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm96-112l-8 0 0-40 55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344l0-40 8 0c23.8 0 43.5 17.3 47.3 40zM328 344l-64 0 0-40 64 0 0 40zm0 56l-64 0 0-40 64 0 0 40zm-80-96l0 40-64 0 0-40 64 0zm0 56l0 40-64 0 0-40 64 0zm-80-16l-55.3 0c3.8-22.7 23.6-40 47.3-40l8 0 0 40zm0 56l-8 0c-23.8 0-43.5-17.3-47.3-40l55.3 0 0 40zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},jj=MN,GI={prefix:"fas",iconName:"wheelchair-move",icon:[448,512,["wheelchair-alt"],"e2ce","M320 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224l97.4 0c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288l-70.3 0c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"]},Vj=GI,EN={prefix:"fas",iconName:"turn-down",icon:[384,512,[10549,"level-down-alt"],"f3be","M350 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26s12.5-14.5 22-14.5l88 0 0-192c0-17.7-14.3-32-32-32L32 96C14.3 96 0 81.7 0 64L0 32C0 14.3 14.3 0 32 0l80 0c70.7 0 128 57.3 128 128l0 192 88 0c9.6 0 18.2 5.7 22 14.5z"]},Gj=EN,Wj={prefix:"fas",iconName:"person-walking-arrow-right",icon:[640,512,[],"e552","M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z"]},WI={prefix:"fas",iconName:"square-envelope",icon:[448,512,["envelope-square"],"f199","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144l256 0c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4 384 336c0 17.7-14.3 32-32 32L96 368c-17.7 0-32-14.3-32-32l0-125.6 136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z"]},Hj=WI,Yj={prefix:"fas",iconName:"dice",icon:[640,512,[127922],"f522","M274.9 34.3c-28.1-28.1-73.7-28.1-101.8 0L34.3 173.1c-28.1 28.1-28.1 73.7 0 101.8L173.1 413.7c28.1 28.1 73.7 28.1 101.8 0L413.7 274.9c28.1-28.1 28.1-73.7 0-101.8L274.9 34.3zM200 224a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM96 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 376a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM352 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 120a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm96 328c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-114.3 0c11.6 36 3.1 77-25.4 105.5L320 413.8l0 34.2zM480 328a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},HI={prefix:"fas",iconName:"bowling-ball",icon:[512,512,[],"f436","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Xj={prefix:"fas",iconName:"brain",icon:[512,512,[129504],"f5dc","M184 0c30.9 0 56 25.1 56 56l0 400c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56l0-400c0-30.9 25.1-56 56-56z"]},TN={prefix:"fas",iconName:"bandage",icon:[640,512,[129657,"band-aid"],"f462","M480 416l96 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-96 0 0 320zM448 96L192 96l0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l96 0 0-320L64 96zM248 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Zj=TN,Kj={prefix:"fas",iconName:"calendar-minus",icon:[448,512,[],"f272","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0z"]},w9={prefix:"fas",iconName:"circle-xmark",icon:[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},qj=w9,LN=w9,Qj={prefix:"fas",iconName:"gifts",icon:[640,512,[],"f79c","M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l152.6 0c-5.4-9.4-8.6-20.3-8.6-32l0-224c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96l-22.2 0 28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224 344 224c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24l-4.1 0c-26.5 0-48 21.5-48 48l0 80 192 0 0-96 32 0 0 96 192 0 0-80c0-26.5-21.5-48-48-48l-4.1 0c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48l144 0 0-128-192 0 0 80zm224 48l144 0c26.5 0 48-21.5 48-48l0-80-192 0 0 128zm96-312c0 13.3-10.7 24-24 24l-49.1 0 29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z"]},IN={prefix:"fas",iconName:"hotel",icon:[512,512,[127976],"f594","M0 32C0 14.3 14.3 0 32 0L480 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-176 0 0-48c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 48L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64C14.3 64 0 49.7 0 32zm96 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM240 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM112 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM328 384c13.3 0 24.3-10.9 21-23.8c-10.6-41.5-48.2-72.2-93-72.2s-82.5 30.7-93 72.2c-3.3 12.8 7.8 23.8 21 23.8l144 0z"]},PN={prefix:"fas",iconName:"earth-asia",icon:[512,512,[127759,"globe-asia"],"f57e","M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9l2.3 0c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm144.5 92.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z"]},Jj=PN,ON={prefix:"fas",iconName:"id-card-clip",icon:[576,512,["id-card-alt"],"f47f","M256 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 64l128 0 0 48c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-48 128 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7l202.7 0c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3l-117.3 0c-29.5 0-53.3 23.9-53.3 53.3zM288 352a64 64 0 1 0 0-128 64 64 0 1 0 0 128z"]},RN=ON,DN={prefix:"fas",iconName:"magnifying-glass-plus",icon:[512,512,["search-plus"],"f00e","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z"]},$j=DN,eV={prefix:"fas",iconName:"thumbs-up",icon:[512,512,[128077,61575],"f164","M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2l144 0c26.5 0 48 21.5 48 48c0 18.5-10.5 34.6-25.9 42.6C497 275.4 504 288.9 504 304c0 23.4-16.8 42.9-38.9 47.1c4.4 7.3 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48l-97.5 0c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3l0-38.3 0-48 0-24.9c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32L0 224c0-17.7 14.3-32 32-32z"]},NN={prefix:"fas",iconName:"user-clock",icon:[640,512,[],"f4fd","M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304l91.4 0c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144L29.7 512C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z"]},wN={prefix:"fas",iconName:"hand-dots",icon:[512,512,["allergies"],"f461","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM240 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80 16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48-16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-16 80a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM240 432a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-48-48a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},tV=wN,iV={prefix:"fas",iconName:"file-invoice",icon:[384,512,[],"f570","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm0 32l0 64 192 0 0-64L96 256zM240 416l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},sV={prefix:"fas",iconName:"window-minimize",icon:[512,512,[128469],"f2d1","M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z"]},YI={prefix:"fas",iconName:"mug-saucer",icon:[640,512,["coffee"],"f0f4","M96 64c0-17.7 14.3-32 32-32l320 0 64 0c70.7 0 128 57.3 128 128s-57.3 128-128 128l-32 0c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L96 64zM480 224l32 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0 0 128zM32 416l512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},rV=YI,nV={prefix:"fas",iconName:"brush",icon:[384,512,[],"f55d","M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48L0 224l0 22.4L0 256l9.6 0 364.8 0 9.6 0 0-9.6 0-22.4 0-176c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 288l0 32c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-32L0 288zM192 432a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"]},BN={prefix:"fas",iconName:"file-half-dashed",icon:[384,512,[],"e698","M64 0C28.7 0 0 28.7 0 64L0 320l384 0 0-160-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM0 416l64 0 0-64L0 352l0 64zm288 32l-80 0 0 64 80 0 0-64zm-112 0l-80 0 0 64 80 0 0-64zM64 448L0 448c0 35.3 28.7 64 64 64l0-64zm256 0l0 64c35.3 0 64-28.7 64-64l-64 0zm64-32l0-64-64 0 0 64 64 0z"]},aV={prefix:"fas",iconName:"mask",icon:[576,512,[],"f6fa","M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176s-64-208-288-208zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]},zN={prefix:"fas",iconName:"magnifying-glass-minus",icon:[512,512,["search-minus"],"f010","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"]},oV=zN,lV={prefix:"fas",iconName:"ruler-vertical",icon:[256,512,[],"f548","M0 48C0 21.5 21.5 0 48 0L208 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z"]},FN={prefix:"fas",iconName:"user-large",icon:[512,512,["user-alt"],"f406","M256 288A144 144 0 1 0 256 0a144 144 0 1 0 0 288zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320l-189.4 0z"]},cV=FN,uV={prefix:"fas",iconName:"train-tram",icon:[448,512,[128650],"e5b4","M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0L361.2 0c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.8 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15L248 48l0 48 40 0c53 0 96 43 96 96l0 160c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1l-39.7 0c-8.5 0-16.6-3.4-22.6-9.4L288 448l-128 0-54.6 54.6c-6 6-14.1 9.4-22.6 9.4L43 512c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352l0-160c0-53 43-96 96-96l40 0 0-48L86.8 48zM160 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},hV={prefix:"fas",iconName:"user-nurse",icon:[448,512,[],"f82f","M96 128l0-57.8c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30l0 57.8-.3 0c.2 2.6 .3 5.3 .3 8l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40c0-2.7 .1-5.4 .3-8l-.3 0zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16-160 0 0 16zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6zM208 48l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8l-16 0c-4.4 0-8 3.6-8 8z"]},dV={prefix:"fas",iconName:"syringe",icon:[512,512,[128137],"f48e","M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-88.8c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z"]},kN={prefix:"fas",iconName:"cloud-sun",icon:[640,512,[9925],"f6c4","M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l14.1 84.7 84.7 14.1c5.4 .9 10 4.5 12.1 9.6s1.5 10.9-1.6 15.4l-38.5 55c-2.2-.1-4.4-.2-6.7-.2c-23.3 0-45.1 6.2-64 17.1l0-1.1c0-53-43-96-96-96s-96 43-96 96s43 96 96 96c8.1 0 15.9-1 23.4-2.9c-36.6 18.1-63.3 53.1-69.8 94.9l-24.4 17c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM144 208a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM639.9 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"]},fV={prefix:"fas",iconName:"stopwatch-20",icon:[448,512,[],"e06f","M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 34.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6L256 64l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L176 0zM288 204c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5l0 2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9l43.8 0c11 0 20 9 20 20s-9 20-20 20l-64 0c-11 0-20-9-20-20l0-15.7c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8l0-2.2c0-6.9-5.6-12.5-12.5-12.5z"]},pV={prefix:"fas",iconName:"square-full",icon:[512,512,[128997,128998,128999,129e3,129001,129002,129003,11035,11036],"f45c","M0 0H512V512H0V0z"]},mV={prefix:"fas",iconName:"magnet",icon:[448,512,[129522],"f076","M0 160l0 96C0 379.7 100.3 480 224 480s224-100.3 224-224l0-96-128 0 0 96c0 53-43 96-96 96s-96-43-96-96l0-96L0 160zm0-32l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z"]},gV={prefix:"fas",iconName:"jar",icon:[320,512,[],"e516","M32 32C32 14.3 46.3 0 64 0L256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64l192 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 160zm96 64c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 224z"]},UN={prefix:"fas",iconName:"note-sticky",icon:[448,512,[62026,"sticky-note"],"f249","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l224 0 0-112c0-26.5 21.5-48 48-48l112 0 0-224c0-35.3-28.7-64-64-64L64 32zM448 352l-45.3 0L336 352c-8.8 0-16 7.2-16 16l0 66.7 0 45.3 32-32 64-64 32-32z"]},_V=UN,jN={prefix:"fas",iconName:"bug-slash",icon:[640,512,[],"e490","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64.3 0c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160l-112 0c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96l0 3.6c0 15.7 12.7 28.4 28.4 28.4l135.1 0c15.7 0 28.4-12.7 28.4-28.4l0-3.6c0-53-43-96-96-96zM160.3 256L96 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6l0-143.7L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7l0 118.5z"]},vV={prefix:"fas",iconName:"arrow-up-from-water-pump",icon:[576,512,[],"e4b6","M112 0C85.5 0 64 21.5 64 48l0 208-16 0c-26.5 0-48 21.5-48 48l0 96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400l0-96c0-26.5-21.5-48-48-48l-48 0 0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256l-128 0 0-208c0-26.5-21.5-48-48-48L112 0zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z"]},AV={prefix:"fas",iconName:"bone",icon:[576,512,[129460],"f5d7","M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2l192 0c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336l-192 0c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z"]},CV={prefix:"fas",iconName:"table-cells-row-unlock",icon:[640,512,[],"e691","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 224l0 64 88 0 0-64-88 0zm232 0l-88 0 0 64 88 0 0-64zM152 352l-88 0 0 64 88 0 0-64zm56 0l0 64 88 0 0-64-88 0zm288-80l0 48 32 0 32 0 48 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48c0-44.2 35.8-80 80-80s80 35.8 80 80l-48 0c0-17.7-14.3-32-32-32s-32 14.3-32 32z"]},xV={prefix:"fas",iconName:"user-injured",icon:[448,512,[],"f728","M240 80l102.7 0c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80l81.4 0 91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16L97 112c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7L96 512l147.7 0L181.5 408.2 124 312.4zm33-7.2L204.3 384l67.7 0c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48l82.3 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512L64 512l0-166.6C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48l-48.5 0 57.1 95.2C303 507.2 320 487.6 320 464z"]},VN={prefix:"fas",iconName:"face-sad-tear",icon:[512,512,[128546,"sad-tear"],"f5b4","M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM367.6 208a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},bV=VN,XI={prefix:"fas",iconName:"plane",icon:[576,512,[],"f072","M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z"]},SV={prefix:"fas",iconName:"tent-arrows-down",icon:[576,512,[],"e581","M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L488 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"]},yV={prefix:"fas",iconName:"exclamation",icon:[128,512,[10069,10071,61738],"21","M96 64c0-17.7-14.3-32-32-32S32 46.3 32 64l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L96 64zM64 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]},ZI={prefix:"fas",iconName:"arrows-spin",icon:[512,512,[],"e4bb","M256 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l112 0c8.8 0 16-7.2 16-16l0-112c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C363.4 52.6 312.1 32 256 32c-10.9 0-21.5 .8-32 2.3l0 64.9c10.3-2.1 21-3.2 32-3.2zM132.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-112c0-8.8-7.2-16-16-16L64 48c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C52.6 148.6 32 199.9 32 256c0 10.9 .8 21.5 2.3 32l64.9 0c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM477.7 224l-64.9 0c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8l0 112c0 8.8 7.2 16 16 16l112 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C459.4 363.4 480 312.1 480 256c0-10.9-.8-21.5-2.3-32zM256 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9L64 320c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C148.6 459.4 199.9 480 256 480c10.9 0 21.5-.8 32-2.3l0-64.9c-10.3 2.1-21 3.2-32 3.2z"]},MV={prefix:"fas",iconName:"print",icon:[512,512,[128424,128438,9113],"f02f","M128 0C92.7 0 64 28.7 64 64l0 96 64 0 0-96 226.7 0L384 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0L128 0zM384 352l0 32 0 64-256 0 0-64 0-16 0-16 256 0zm64 32l32 0c17.7 0 32-14.3 32-32l0-96c0-35.3-28.7-64-64-64L64 192c-35.3 0-64 28.7-64 64l0 96c0 17.7 14.3 32 32 32l32 0 0 64c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-64zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},KI={prefix:"fas",iconName:"turkish-lira-sign",icon:[384,512,["try","turkish-lira"],"e2bb","M96 32c17.7 0 32 14.3 32 32l0 35.3L247.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 165.9l0 29.4 119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 261.9 128 416l63.8 0c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C378.5 399.8 294.1 480 191.8 480L96 480c-17.7 0-32-14.3-32-32l0-167.9-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 213.6l0-29.4-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 117.6 64 64c0-17.7 14.3-32 32-32z"]},EV=KI,GN=KI,qI={prefix:"fas",iconName:"dollar-sign",icon:[320,512,[128178,61781,"dollar","usd"],"24","M160 0c17.7 0 32 14.3 32 32l0 35.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11l0 33.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.9c-.4-.1-.9-.1-1.3-.2l-.2 0s0 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7s0 0 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11L128 32c0-17.7 14.3-32 32-32z"]},WN=qI,TV=qI,LV={prefix:"fas",iconName:"x",icon:[384,512,[120],"58","M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z"]},fy={prefix:"fas",iconName:"magnifying-glass-dollar",icon:[512,512,["search-dollar"],"f688","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7l0-13.9z"]},IV=fy,HN={prefix:"fas",iconName:"users-gear",icon:[640,512,["users-cog"],"f509","M144 160A80 80 0 1 0 144 0a80 80 0 1 0 0 160zm368 0A80 80 0 1 0 512 0a80 80 0 1 0 0 160zM0 298.7C0 310.4 9.6 320 21.3 320l213.3 0c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7l-42.7 0C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2l-103.2 0C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7l300.6 0c-2.1-5.2-3.2-10.9-3.2-16.4l0-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192l-42.7 0c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3l0-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6l0 3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3l-2.9 1.7c-9.2 5.3-20.4 4-29.6-1.3s-16.1-14.5-16.1-25.1l0-3.4c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9l0 3.4c0 10.6-6.9 19.8-16.1 25.1s-20.4 6.6-29.6 1.3l-2.9-1.7c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l2.9 1.7c9.2 5.3 13.7 15.8 13.7 26.4s-4.5 21.1-13.7 26.4l-3 1.7c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3l2.9-1.7c9.2-5.3 20.4-4 29.6 1.3s16.1 14.5 16.1 25.1l0 3.4c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9l0-3.4c0-10.6 6.9-19.8 16.1-25.1s20.4-6.6 29.6-1.3l2.9 1.7c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-3-1.7c-9.2-5.3-13.7-15.8-13.7-26.4s4.5-21.1 13.7-26.4l3-1.7zM472 384a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z"]},PV=HN,OV={prefix:"fas",iconName:"person-military-pointing",icon:[576,512,[],"e54a","M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25l151 0c8.8 0 16-7.2 16-16l0-30.6C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L241.6 96c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5L240 224 72 224zm345.7 20.9L246.6 416 416 416l0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z"]},TT={prefix:"fas",iconName:"building-columns",icon:[512,512,["bank","institution","museum","university"],"f19c","M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160l0 8c0 13.3 10.7 24 24 24l400 0c13.3 0 24-10.7 24-24l0-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8-3.4-17.2-3.4-25.2 0zM128 224l-64 0 0 196.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512l448 0c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1L448 224l-64 0 0 192-40 0 0-192-64 0 0 192-48 0 0-192-64 0 0 192-40 0 0-192zM256 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},RV=TT,DV=TT,NV=TT,YN=TT,wV={prefix:"fas",iconName:"umbrella",icon:[576,512,[],"f0e9","M288 0c17.7 0 32 14.3 32 32l0 17.7C451.8 63.4 557.7 161 573.9 285.9c2 15.6-17.3 24.4-27.8 12.7C532.1 283 504.8 272 480 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C359 299.5 326.7 272 288 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C167 299.5 134.7 272 96 272c-24.8 0-52.1 11-66.1 26.7C19.4 310.4 .1 301.5 2.1 285.9C18.3 161 124.2 63.4 256 49.7L256 32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2l0 114.3c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4l0-114.3c8.5-7.6 19.7-12.2 32-12.2z"]},BV={prefix:"fas",iconName:"trowel",icon:[512,512,[],"e589","M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z"]},zV={prefix:"fas",iconName:"d",icon:[384,512,[100],"44","M0 96C0 60.7 28.7 32 64 32l96 0c123.7 0 224 100.3 224 224s-100.3 224-224 224l-96 0c-35.3 0-64-28.7-64-64L0 96zm160 0L64 96l0 320 96 0c88.4 0 160-71.6 160-160s-71.6-160-160-160z"]},XN={prefix:"fas",iconName:"stapler",icon:[640,512,[],"e5af","M640 299.3l0 4.7 0 128c0 26.5-21.5 48-48 48l-80 0-64 0L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48L96 368c-17.7 0-32-14.3-32-32l0-116.6L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16L128 230.9l0 73.1 320 0z"]},ZN={prefix:"fas",iconName:"masks-theater",icon:[640,512,[127917,"theater-masks"],"f630","M74.6 373.2c41.7 36.1 108 82.5 166.1 73.7c6.1-.9 12.1-2.5 18-4.5c-9.2-12.3-17.3-24.4-24.2-35.4c-21.9-35-28.8-75.2-25.9-113.6c-20.6 4.1-39.2 13-54.7 25.4c-6.5 5.2-16.3 1.3-14.8-7c6.4-33.5 33-60.9 68.2-66.3c2.6-.4 5.3-.7 7.9-.8l19.4-131.3c2-13.8 8-32.7 25-45.9C278.2 53.2 310.5 37 363.2 32.2c-.8-.7-1.6-1.4-2.4-2.1C340.6 14.5 288.4-11.5 175.7 5.6S20.5 63 5.7 83.9C0 91.9-.8 102 .6 111.8L24.8 276.1c5.5 37.3 21.5 72.6 49.8 97.2zm87.7-219.6c4.4-3.1 10.8-2 11.8 3.3c.1 .5 .2 1.1 .3 1.6c3.2 21.8-11.6 42-33.1 45.3s-41.5-11.8-44.7-33.5c-.1-.5-.1-1.1-.2-1.6c-.6-5.4 5.2-8.4 10.3-6.7c9 3 18.8 3.9 28.7 2.4s19.1-5.3 26.8-10.8zM261.6 390c29.4 46.9 79.5 110.9 137.6 119.7s124.5-37.5 166.1-73.7c28.3-24.5 44.3-59.8 49.8-97.2l24.2-164.3c1.4-9.8 .6-19.9-5.1-27.9c-14.8-20.9-57.3-61.2-170-78.3S299.4 77.2 279.2 92.8c-7.8 6-11.5 15.4-12.9 25.2L242.1 282.3c-5.5 37.3-.4 75.8 19.6 107.7zM404.5 235.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6c-1 5.3-7.4 6.4-11.8 3.3zm136.2 15.5c-1 5.3-7.4 6.4-11.8 3.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6zM530 350.2c-19.6 44.7-66.8 72.5-116.8 64.9s-87.1-48.2-93-96.7c-1-8.3 8.9-12.1 15.2-6.7c23.9 20.8 53.6 35.3 87 40.3s66.1 .1 94.9-12.8c7.6-3.4 16 3.2 12.6 10.9z"]},KN=ZN,FV={prefix:"fas",iconName:"kip-sign",icon:[384,512,[],"e1c4","M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288 352 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-169.5 0L340.8 88.3z"]},qN={prefix:"fas",iconName:"hand-point-left",icon:[512,512,[],"f0a5","M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z"]},QN={prefix:"fas",iconName:"handshake-simple",icon:[640,512,[129309,"handshake-alt"],"f4c6","M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352l41.8 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-76 0-4 0-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48-80 0c-26.5 0-48 21.5-48 48L0 304c0 26.5 21.5 48 48 48l108.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z"]},kV=QN,JN={prefix:"fas",iconName:"jet-fighter",icon:[640,512,["fighter-jet"],"f0fb","M160 24c0-13.3 10.7-24 24-24L296 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0L384 192l116.4 0c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1L384 320 280 464l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-144-32 0-54.6 54.6c-6 6-14.1 9.4-22.6 9.4L64 384c-17.7 0-32-14.3-32-32l0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l18.7 0c8.5 0 16.6 3.4 22.6 9.4L160 192l32 0 0-144-8 0c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0z"]},$N=JN,ew={prefix:"fas",iconName:"square-share-nodes",icon:[448,512,["share-alt-square"],"f1e1","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z"]},tw=ew,UV={prefix:"fas",iconName:"barcode",icon:[512,512,[],"f02a","M24 32C10.7 32 0 42.7 0 56L0 456c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24L64 56c0-13.3-10.7-24-24-24L24 32zm88 0c-8.8 0-16 7.2-16 16l0 416c0 8.8 7.2 16 16 16s16-7.2 16-16l0-416c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0zm96 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0zM448 56l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm-64-8l0 416c0 8.8 7.2 16 16 16s16-7.2 16-16l0-416c0-8.8-7.2-16-16-16s-16 7.2-16 16z"]},jV={prefix:"fas",iconName:"plus-minus",icon:[384,512,[],"e43c","M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112L48 144c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0 0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-112zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z"]},iw={prefix:"fas",iconName:"video",icon:[576,512,["video-camera"],"f03d","M0 128C0 92.7 28.7 64 64 64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2l0 256c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1l0-17.1 0-128 0-17.1 14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z"]},sw=iw,rw={prefix:"fas",iconName:"graduation-cap",icon:[640,512,[127891,"mortar-board"],"f19d","M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9l0 28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5l0-24.6c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z"]},qY=rw,ZIe={prefix:"fas",iconName:"hand-holding-medical",icon:[576,512,[],"e05c","M224 24l0 56-56 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l56 0 0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56 56 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-56 0 0-56c0-13.3-10.7-24-24-24L248 0c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 272 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-16 0-78.3 0c-29.1 0-57.3 9.9-80 28L68.8 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 160.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z"]},KIe={prefix:"fas",iconName:"person-circle-check",icon:[576,512,[],"e53e","M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"]},mue={prefix:"fas",iconName:"turn-up",icon:[384,512,[10548,"level-up-alt"],"f3bf","M350 177.5c3.8-8.8 2-19-4.6-26l-136-144C204.9 2.7 198.6 0 192 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26s12.5 14.5 22 14.5l88 0 0 192c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l80 0c70.7 0 128-57.3 128-128l0-192 88 0c9.6 0 18.2-5.7 22-14.5z"]},qIe=mue;var P$e={fa0:x,fa1:A,fa2:S,fa3:E,fa4:b,fa5:M,fa6:T,fa7:O,fa8:R,fa9:I,faFillDrip:N,faArrowsToCircle:w,faCircleChevronRight:D,faChevronCircleRight:k,faAt:Y,faTrashCan:V,faTrashAlt:ee,faTextHeight:K,faUserXmark:ie,faUserTimes:ne,faStethoscope:te,faMessage:W,faCommentAlt:Q,faInfo:re,faDownLeftAndUpRightToCenter:oe,faCompressAlt:X,faExplosion:se,faFileLines:ue,faFileAlt:he,faFileText:fe,faWaveSquare:Ae,faRing:Se,faBuildingUn:we,faDiceThree:ke,faCalendarDays:st,faCalendarAlt:Ve,faAnchorCircleCheck:Ke,faBuildingCircleArrowRight:ct,faVolleyball:nt,faVolleyballBall:at,faArrowsUpToLine:xt,faSortDown:Qe,faSortDesc:kt,faCircleMinus:ot,faMinusCircle:At,faDoorOpen:Me,faRightFromBracket:je,faSignOutAlt:rt,faAtom:yt,faSoap:Rt,faIcons:Nt,faHeartMusicCameraBolt:Kt,faMicrophoneLinesSlash:si,faMicrophoneAltSlash:Pi,faBridgeCircleCheck:gi,faPumpMedical:bi,faFingerprint:wi,faHandPointRight:Ni,faMagnifyingGlassLocation:qt,faSearchLocation:ci,faForwardStep:qe,faStepForward:ri,faFaceSmileBeam:Ot,faSmileBeam:mt,faFlagCheckered:Ye,faFootball:Tt,faFootballBall:Ut,faSchoolCircleExclamation:oi,faCrop:ji,faAnglesDown:ki,faAngleDoubleDown:os,faUsersRectangle:bs,faPeopleRoof:hi,faPeopleLine:Oi,faBeerMugEmpty:li,faBeer:Xs,faDiagramPredecessor:ks,faArrowUpLong:hr,faLongArrowUp:fr,faFireFlameSimple:We,faBurn:fi,faPerson:zi,faMale:ts,faLaptop:hs,faFileCsv:Ge,faMenorah:Zt,faTruckPlane:$t,faRecordVinyl:Ui,faFaceGrinStars:ls,faGrinStars:ns,faBong:Ss,faSpaghettiMonsterFlying:qi,faPastafarianism:pr,faArrowDownUpAcrossLine:Js,faSpoon:ir,faUtensilSpoon:hn,faJarWheat:ra,faEnvelopesBulk:ka,faMailBulk:Hn,faFileCircleExclamation:to,faCircleH:Gr,faHospitalSymbol:Yn,faPager:To,faAddressBook:Pn,faContactBook:On,faStrikethrough:Kr,faK:dn,faLandmarkFlag:mo,faPencil:Xn,faPencilAlt:na,faBackward:xl,faCaretRight:Lo,faComments:Io,faPaste:bl,faFileClipboard:Zn,faCodePullRequest:Sl,faClipboardList:Vi,faTruckRampBox:yl,faTruckLoading:Sn,faUserCheck:Kn,faVialVirus:Po,faSheetPlastic:Wi,faBlog:yn,faUserNinja:sr,faPersonArrowUpFromLine:qn,faScrollTorah:rl,faTorah:Rn,faBroomBall:Or,faQuidditch:fn,faQuidditchBroomBall:$r,faToggleOff:Wc,faBoxArchive:Qn,faArchive:Dn,faPersonDrowning:Xu,faArrowDown91:Ie,faSortNumericDesc:_t,faSortNumericDownAlt:Ht,faFaceGrinTongueSquint:ti,faGrinTongueSquint:Hi,faSprayCan:Ee,faTruckMonster:$e,faW:bt,faEarthAfrica:Wt,faGlobeAfrica:vi,faRainbow:es,faCircleNotch:Qi,faTabletScreenButton:Ji,faTabletAlt:Us,faPaw:er,faCloud:Cr,faTrowelBricks:rr,faFaceFlushed:xr,faFlushed:Nn,faHospitalUser:_a,faTentArrowLeftRight:Fl,faGavel:Ua,faLegal:io,faBinoculars:wn,faMicrophoneSlash:uu,faBoxTissue:Hc,faMotorcycle:gd,faBellConcierge:kl,faConciergeBell:aa,faPenRuler:hu,faPencilRuler:Ph,faPeopleArrows:Zu,faPeopleArrowsLeftRight:Yc,faMarsAndVenusBurst:Ku,faSquareCaretRight:qu,faCaretSquareRight:_d,faScissors:Qu,faCut:du,faSunPlantWilt:fu,faToiletsPortable:Ju,faHockeyPuck:$u,faTable:pu,faMagnifyingGlassArrowRight:Ul,faTachographDigital:oc,faDigitalTachograph:mu,faUsersSlash:r2,faClover:lc,faReply:Xc,faMailReply:go,faStarAndCrescent:Wo,faHouseFire:Oo,faSquareMinus:so,faMinusSquare:vd,faHelicopter:ro,faCompass:nl,faSquareCaretDown:va,faCaretSquareDown:_o,faFileCircleQuestion:eh,faLaptopCode:cc,faSwatchbook:Ad,faPrescriptionBottle:gu,faBars:Oh,faNavicon:Rh,faPeopleGroup:th,faHourglassEnd:n1,faHourglass3:a1,faHeartCrack:Cd,faHeartBroken:_u,faSquareUpRight:Dh,faExternalLinkSquareAlt:xd,faFaceKissBeam:o1,faKissBeam:l1,faFilm:vu,faRulerHorizontal:ih,faPeopleRobbery:n2,faLightbulb:c1,faCaretLeft:mf,faCircleExclamation:bd,faExclamationCircle:a2,faSchoolCircleXmark:sh,faArrowRightFromBracket:o2,faSignOut:l2,faCircleChevronDown:Nh,faChevronCircleDown:u1,faUnlockKeyhole:wh,faUnlockAlt:c2,faCloudShowersHeavy:Bh,faHeadphonesSimple:Zc,faHeadphonesAlt:Au,faSitemap:u2,faCircleDollarToSlot:Kc,faDonate:zh,faMemory:uc,faRoadSpikes:Cu,faFireBurner:h1,faFlag:xu,faHanukiah:gf,faFeather:Sd,faVolumeLow:Fh,faVolumeDown:h2,faCommentSlash:vo,faCloudSunRain:d2,faCompress:d1,faWheatAwn:rh,faWheatAlt:f2,faAnkh:Ao,faHandsHoldingChild:p2,faAsterisk:m2,faSquareCheck:f1,faCheckSquare:kh,faPesetaSign:ye,faHeading:Be,faHeader:Ze,faGhost:tt,faList:gt,faListSquares:pe,faSquarePhoneFlip:Ce,faPhoneSquareAlt:De,faCartPlus:Xe,faGamepad:Je,faCircleDot:vt,faDotCircle:Gt,faFaceDizzy:ai,faDizzy:As,faEgg:Cs,faHouseMedicalCircleXmark:zs,faCampground:Ys,faFolderPlus:tr,faFutbol:Wr,faFutbolBall:ja,faSoccerBall:Ml,faPaintbrush:Jn,faPaintBrush:hc,faLock:Ro,faGasPump:qc,faHotTubPerson:g2,faHotTub:Uh,faMapLocation:x3,faMapMarked:p1,faHouseFloodWater:E_,faTree:Pb,faBridgeLock:_f,faSackDollar:S5,faPenToSquare:yd,faEdit:b3,faCarSide:B4,faShareNodes:S3,faShareAlt:fM,faHeartCircleMinus:dc,faHourglassHalf:z4,faHourglass2:y3,faMicroscope:Md,faSink:m1,faBagShopping:fc,faShoppingBag:pM,faArrowDownZA:y5,faSortAlphaDesc:pn,faSortAlphaDownAlt:jl,faMitten:oa,faPersonRays:Aa,faUsers:mM,faEyeSlash:mn,faFlaskVial:Ed,faHand:no,faHandPaper:Zs,faOm:T_,faWorm:Qc,faHouseCircleXmark:vf,faPlug:M3,faChevronUp:en,faHandSpock:F4,faStopwatch:B0,faFaceKiss:Af,faKiss:bu,faBridgeCircleXmark:Td,faFaceGrinTongue:k4,faGrinTongue:z0,faChessBishop:U4,faFaceGrinWink:Ld,faGrinWink:M5,faEarDeaf:L_,faDeaf:_2,faDeafness:E5,faHardOfHearing:T5,faRoadCircleCheck:gM,faDiceFive:Ob,faSquareRss:I_,faRssSquare:Rb,faLandMineOn:j4,faICursor:_M,faStamp:L5,faStairs:I5,faI:Db,faHryvniaSign:P_,faHryvnia:P5,faPills:g1,faFaceGrinWide:v2,faGrinAlt:jh,faTooth:Cf,faV:F0,faBangladeshiTakaSign:nh,faBicycle:Vh,faStaffSnake:Gh,faRodAsclepius:xf,faRodSnake:E3,faStaffAesculapius:T3,faHeadSideCoughSlash:L3,faTruckMedical:O5,faAmbulance:V4,faWheatAwnCircleExclamation:Nb,faSnowman:wb,faMortarPestle:G4,faRoadBarrier:R5,faSchool:W4,faIgloo:H4,faJoint:Bb,faAngleRight:A2,faHorse:D5,faQ:N5,faG:bf,faNotesMedical:k0,faTemperatureHalf:Sf,faTemperature2:O_,faThermometer2:I3,faThermometerHalf:P3,faDongSign:U0,faCapsules:R_,faPooStorm:D_,faPooBolt:Y4,faFaceFrownOpen:X4,faFrownOpen:zb,faHandPointUp:Fb,faMoneyBill:kb,faBookmark:Ub,faAlignJustify:Z4,faUmbrellaBeach:vM,faHelmetUn:jb,faBullseye:AM,faBacon:Vb,faHandPointDown:N_,faArrowUpFromBracket:Gb,faFolder:w5,faFolderBlank:CM,faFileWaveform:B5,faFileMedicalAlt:K4,faRadiation:j0,faChartSimple:q4,faMarsStroke:Wb,faVial:O3,faGauge:Q4,faDashboard:Id,faGaugeMed:R3,faTachometerAltAverage:yf,faWandMagicSparkles:D3,faMagicWandSparkles:J4,faE:Mf,faPenClip:w_,faPenAlt:C2,faBridgeCircleExclamation:$4,faUser:eg,faSchoolCircleCheck:_1,faDumpster:Hb,faVanShuttle:xi,faShuttleVan:Vl,faBuildingUser:Bn,faSquareCaretLeft:Wh,faCaretSquareLeft:z5,faHighlighter:Ci,faKey:Jc,faBullhorn:zn,faGlobe:N3,faSynagogue:tg,faPersonHalfDress:ig,faRoadBridge:V0,faLocationArrow:sg,faC:Ef,faTabletButton:rg,faBuildingLock:F5,faPizzaSlice:G0,faMoneyBillWave:W0,faChartArea:pc,faAreaChart:Va,faHouseFlag:Yb,faPersonCircleMinus:la,faBan:x2,faCancel:v1,faCameraRotate:Co,faSprayCanSparkles:ng,faAirFreshener:Ca,faStar:H0,faRepeat:xM,faCross:k5,faBox:ag,faVenusMars:Xb,faArrowPointer:B_,faMousePointer:bM,faMaximize:Y0,faExpandArrowsAlt:SM,faChargingStation:U5,faShapes:j5,faTriangleCircleSquare:yM,faShuffle:og,faRandom:$c,faPersonRunning:Tf,faRunning:MM,faMobileRetro:mc,faGripLinesVertical:X0,faSpider:dr,faHandsBound:A1,faFileInvoiceDollar:EM,faPlaneCircleExclamation:gc,faXRay:C1,faSpellCheck:tn,faSlash:lg,faComputerMouse:Zb,faMouse:TM,faArrowRightToBracket:z_,faSignIn:cg,faShopSlash:V5,faStoreAltSlash:Kb,faServer:qb,faVirusCovidSlash:LM,faShopLock:Qb,faHourglassStart:G5,faHourglass1:IM,faBlenderPhone:Jb,faBuildingWheat:W5,faPersonBreastfeeding:H5,faRightToBracket:$b,faSignInAlt:e7,faVenus:PM,faPassport:F_,faThumbtackSlash:ug,faThumbTackSlash:Y5,faHeartPulse:t7,faHeartbeat:OM,faPeopleCarryBox:i7,faPeopleCarry:X5,faTemperatureHigh:Z0,faMicrochip:k_,faCrown:hg,faWeightHanging:s7,faXmarksLines:RM,faFilePrescription:K0,faWeightScale:dg,faWeight:Lf,faUserGroup:w3,faUserFriends:r7,faArrowUpAZ:eu,faSortAlphaUp:If,faChessKnight:B3,faFaceLaughSquint:b2,faLaughSquint:Z5,faWheelchair:tu,faCircleArrowUp:S2,faArrowCircleUp:q0,faToggleOn:z3,faPersonWalking:fg,faWalking:pg,faL:K5,faFire:F3,faBedPulse:n7,faProcedures:k3,faShuttleSpace:q5,faSpaceShuttle:DM,faFaceLaugh:a7,faLaugh:o7,faFolderOpen:Q5,faHeartCirclePlus:l7,faCodeFork:NM,faCity:wM,faMicrophoneLines:c7,faMicrophoneAlt:BM,faPepperHot:u7,faUnlock:zM,faColonSign:U_,faHeadset:FM,faStoreSlash:h7,faRoadCircleXmark:kM,faUserMinus:d7,faMarsStrokeUp:j_,faMarsStrokeV:f7,faChampagneGlasses:p7,faGlassCheers:J5,faClipboard:m7,faHouseCircleExclamation:UM,faFileArrowUp:$5,faFileUpload:g7,faWifi:mg,faWifi3:U3,faWifiStrong:jM,faBath:eA,faBathtub:tA,faUnderline:V_,faUserPen:j3,faUserEdit:_7,faSignature:v7,faStroopwafel:A7,faBold:iA,faAnchorLock:C7,faBuildingNgo:G_,faManatSign:x7,faNotEqual:V3,faBorderTopLeft:sA,faBorderStyle:b7,faMapLocationDot:rA,faMapMarkedAlt:nA,faJedi:G3,faSquarePollVertical:S7,faPoll:y7,faMugHot:VM,faCarBattery:M7,faBatteryCar:E7,faGift:gg,faDiceTwo:W3,faChessQueen:T7,faGlasses:GM,faChessBoard:aA,faBuildingCircleCheck:Pf,faPersonChalkboard:H3,faMarsStrokeRight:oA,faMarsStrokeH:WM,faHandBackFist:W_,faHandRock:_g,faSquareCaretUp:lA,faCaretSquareUp:L7,faCloudShowersWater:HM,faChartBar:cA,faBarChart:uA,faHandsBubbles:I7,faHandsWash:YM,faLessThanEqual:XM,faTrain:ZM,faEyeLowVision:hA,faLowVision:Hh,faCrow:KM,faSailboat:vg,faWindowRestore:P7,faSquarePlus:O7,faPlusSquare:ah,faToriiGate:qM,faFrog:Ag,faBucket:R7,faImage:D7,faMicrophone:dA,faCow:QM,faCaretUp:JM,faScrewdriver:fA,faFolderClosed:H_,faHouseTsunami:N7,faSquareNfi:Y_,faArrowUpFromGroundWater:$M,faMartiniGlass:pA,faGlassMartiniAlt:mA,faSquareBinary:w7,faRotateLeft:y2,faRotateBack:gA,faRotateBackward:Cg,faUndoAlt:_A,faTableColumns:B7,faColumns:Q0,faLemon:X_,faHeadSideMask:xg,faHandshake:Z_,faGem:eE,faDolly:Y3,faDollyBox:z7,faSmoking:vA,faMinimize:F7,faCompressArrowsAlt:k7,faMonument:X3,faSnowplow:Ia,faAnglesRight:K_,faAngleDoubleRight:U7,faCannabis:bg,faCirclePlay:AA,faPlayCircle:xa,faTablets:CA,faEthernet:J0,faEuroSign:q_,faEur:Z3,faEuro:$0,faChair:xA,faCircleCheck:ep,faCheckCircle:tE,faCircleStop:K3,faStopCircle:al,faCompassDrafting:q3,faDraftingCompass:Sg,faPlateWheat:yg,faIcicles:Q_,faPersonShelter:Ho,faNeuter:Pd,faIdBadge:tp,faMarker:Od,faFaceLaughBeam:Mg,faLaughBeam:Rd,faHelicopterSymbol:x1,faUniversalAccess:ip,faCircleChevronUp:oh,faChevronCircleUp:J_,faLariSign:Of,faVolcano:Eg,faPersonWalkingDashedLineArrowRight:Rf,faSterlingSign:Df,faGbp:bA,faPoundSign:$_,faViruses:SA,faSquarePersonConfined:Tg,faUserTie:Q3,faArrowDownLong:j7,faLongArrowDown:iE,faTentArrowDownToLine:yA,faCertificate:sE,faReplyAll:J3,faMailReplyAll:rE,faSuitcase:nE,faPersonSkating:MA,faSkating:aE,faFilterCircleDollar:EA,faFunnelDollar:V7,faCameraRetro:TA,faCircleArrowDown:LA,faArrowCircleDown:G7,faFileImport:IA,faArrowRightToFile:W7,faSquareArrowUpRight:sp,faExternalLinkSquare:$3,faBoxOpen:H7,faScroll:em,faSpa:oE,faLocationPinLock:Lg,faPause:tm,faHillAvalanche:lE,faTemperatureEmpty:Ig,faTemperature0:e8,faThermometer0:im,faThermometerEmpty:PA,faBomb:OA,faRegistered:RA,faAddressCard:sm,faContactCard:rp,faVcard:t8,faScaleUnbalancedFlip:Pg,faBalanceScaleRight:Og,faSubscript:DA,faDiamondTurnRight:NA,faDirections:Y7,faBurst:wA,faHouseLaptop:BA,faLaptopHouse:cE,faFaceTired:i8,faTired:y9,faMoneyBills:uE,faSmog:Rg,faCrutch:hE,faFontAwesome:s8,faFontAwesomeFlag:dE,faFontAwesomeLogoFull:zA,faCloudArrowUp:Dg,faCloudUpload:fE,faCloudUploadAlt:FA,faPalette:X7,faArrowsTurnRight:kA,faVest:Z7,faFerry:pE,faArrowsDownToPeople:K7,faSeedling:UA,faSprout:mE,faLeftRight:q7,faArrowsAltH:gE,faBoxesPacking:_E,faCircleArrowLeft:r8,faArrowCircleLeft:jA,faGroupArrowsRotate:vE,faBowlFood:Q7,faCandyCane:AE,faArrowDownWideShort:n8,faSortAmountAsc:a8,faSortAmountDown:Ng,faCloudBolt:VA,faThunderstorm:CE,faTextSlash:J7,faRemoveFormat:GA,faFaceSmileWink:rm,faSmileWink:$7,faFileWord:WA,faFilePowerpoint:xE,faArrowsLeftRight:eS,faArrowsH:tS,faHouseLock:iS,faCloudArrowDown:HA,faCloudDownload:sS,faCloudDownloadAlt:bE,faChildren:SE,faChalkboard:YA,faBlackboard:yE,faUserLargeSlash:rS,faUserAltSlash:ME,faEnvelopeOpen:XA,faHandshakeSimpleSlash:nS,faHandshakeAltSlash:o8,faMattressPillow:wg,faGuaraniSign:aS,faArrowsRotate:np,faRefresh:ZA,faSync:ap,faFireExtinguisher:nm,faCruzeiroSign:KA,faGreaterThanEqual:Nf,faShieldHalved:M2,faShieldAlt:Dd,faBookAtlas:op,faAtlas:Bg,faVirus:am,faEnvelopeCircleCheck:E2,faLayerGroup:T2,faArrowsToDot:wf,faArchway:lp,faHeartCircleCheck:lh,faHouseChimneyCrack:om,faHouseDamage:zg,faFileZipper:Nd,faFileArchive:wd,faSquare:ba,faMartiniGlassEmpty:ol,faGlassMartini:lm,faCouch:Do,faCediSign:_c,faItalic:Pa,faTableCellsColumnLock:ll,faChurch:Bf,faCommentsDollar:Su,faDemocrat:yu,faZ:Mu,faPersonSkiing:ch,faSkiing:b1,faRoadLock:l8,faA:cp,faTemperatureArrowDown:cm,faTemperatureDown:uh,faFeatherPointed:up,faFeatherAlt:qA,faP:Fg,faSnowflake:QA,faNewspaper:kg,faRectangleAd:um,faAd:Bd,faCircleArrowRight:L2,faArrowCircleRight:c8,faFilterCircleXmark:oS,faLocust:u8,faSort:zd,faUnsorted:hp,faListOl:JA,faList12:$A,faListNumeric:lS,faPersonDressBurst:EE,faMoneyCheckDollar:h8,faMoneyCheckAlt:eC,faVectorSquare:tC,faBreadSlice:Ug,faLanguage:cS,faFaceKissWinkHeart:jg,faKissWinkHeart:d8,faFilter:uS,faQuestion:Vg,faFileSignature:hh,faUpDownLeftRight:I2,faArrowsAlt:Fd,faHouseChimneyUser:iC,faHandHoldingHeart:sC,faPuzzlePiece:iu,faMoneyCheck:dp,faStarHalfStroke:S1,faStarHalfAlt:y1,faCode:hm,faWhiskeyGlass:dm,faGlassWhiskey:hS,faBuildingCircleExclamation:El,faMagnifyingGlassChart:Eu,faArrowUpRightFromSquare:fm,faExternalLink:P2,faCubesStacked:O2,faWonSign:Tl,faKrw:fp,faWon:kd,faVirusCovid:R2,faAustralSign:D2,faF:Ga,faLeaf:Wa,faRoad:ao,faTaxi:N2,faCab:Tu,faPersonCirclePlus:Ha,faChartPie:oo,faPieChart:Lu,faBoltLightning:pp,faSackXmark:Ya,faFileExcel:TE,faFileContract:mp,faFishFins:Gg,faBuildingFlag:pm,faFaceGrinBeam:vc,faGrinBeam:Wg,faObjectUngroup:Ud,faPoop:jd,faLocationPin:Yh,faMapMarker:zf,faKaaba:mm,faToiletPaper:Ac,faHelmetSafety:M1,faHardHat:w2,faHatHard:gp,faEject:Hg,faCircleRight:Gl,faArrowAltCircleRight:Ff,faPlaneCircleCheck:gm,faFaceRollingEyes:_p,faMehRollingEyes:Yg,faObjectGroup:kf,faChartLine:_m,faLineChart:vm,faMaskVentilator:f8,faArrowRight:rC,faSignsPost:nC,faMapSigns:Uf,faCashRegister:xo,faPersonCircleQuestion:dS,faH:aC,faTarp:p8,faScrewdriverWrench:B2,faTools:Xa,faArrowsToEye:m8,faPlugCircleBolt:Xg,faHeart:Am,faMarsAndVenus:Zg,faHouseUser:Xh,faHomeUser:Vd,faDumpsterFire:Kg,faHouseCrack:oC,faMartiniGlassCitrus:jf,faCocktail:Vf,faFaceSurprise:E1,faSurprise:Cm,faBottleWater:fS,faCirclePause:Gf,faPauseCircle:LE,faToiletPaperSlash:xm,faAppleWhole:vp,faAppleAlt:g8,faKitchenSet:qg,faR:lC,faTemperatureQuarter:Ap,faTemperature1:_8,faThermometer1:bm,faThermometerQuarter:Qg,faCube:Jg,faBitcoinSign:$g,faShieldDog:cC,faSolarPanel:Cp,faLockOpen:Sm,faElevator:v8,faMoneyBillTransfer:uC,faMoneyBillTrendUp:A8,faHouseFloodWaterCircleArrowRight:e6,faSquarePollHorizontal:C8,faPollH:hC,faCircle:dC,faBackwardFast:fC,faFastBackward:pC,faRecycle:mC,faUserAstronaut:x8,faPlaneSlash:ym,faTrademark:gC,faBasketball:t6,faBasketballBall:b8,faSatelliteDish:xp,faCircleUp:Wf,faArrowAltCircleUp:Mm,faMobileScreenButton:bp,faMobileAlt:_C,faVolumeHigh:Hf,faVolumeUp:Sp,faUsersRays:S8,faWallet:y8,faClipboardCheck:Em,faFileAudio:Zh,faBurger:yp,faHamburger:M8,faWrench:i6,faBugs:Tm,faRupeeSign:Gd,faRupee:T1,faFileImage:Lm,faCircleQuestion:Im,faQuestionCircle:E8,faPlaneDeparture:vC,faHandshakeSlash:Yf,faBookBookmark:s6,faCodeBranch:Pm,faHatCowboy:dh,faBridge:T8,faPhoneFlip:Mp,faPhoneAlt:r6,faTruckFront:n6,faCat:Wl,faAnchorCircleExclamation:z2,faTruckField:a6,faRoute:Om,faClipboardQuestion:AC,faPanorama:Kh,faCommentMedical:qh,faTeethOpen:o6,faFileCircleMinus:Cc,faTags:F2,faWineGlass:Iu,faForwardFast:Ep,faFastForward:Rm,faFaceMehBlank:su,faMehBlank:Xf,faSquareParking:Wd,faParking:pS,faHouseSignal:mS,faBarsProgress:L8,faTasksAlt:CC,faFaucetDrip:Dm,faCartFlatbed:I8,faDollyFlatbed:xC,faBanSmoking:Tp,faSmokingBan:P8,faTerminal:O8,faMobileButton:Nm,faHouseMedicalFlag:bC,faBasketShopping:Lp,faShoppingBasket:R8,faTape:cs,faBusSimple:ru,faBusAlt:SC,faEye:D8,faFaceSadCry:wm,faSadCry:Li,faAudioDescription:ca,faPersonMilitaryToPerson:Yo,faFileShield:Zf,faUserSlash:k2,faPen:ua,faTowerObservation:pi,faFileCode:Fn,faSignal:Pu,faSignal5:Ip,faSignalPerfect:$n,faBus:Dt,faHeartCircleXmark:xc,faHouseChimney:U2,faHomeLg:Hl,faWindowMaximize:Mn,faFaceFrown:rs,faFrown:Bm,faPrescription:gS,faShop:bo,faStoreAlt:j2,faFloppyDisk:Kf,faSave:l6,faVihara:c6,faScaleUnbalanced:L1,faBalanceScaleLeft:V2,faSortUp:yC,faSortAsc:zm,faCommentDots:Fm,faCommenting:Pp,faPlantWilt:G2,faDiamond:km,faFaceGrinSquint:Op,faGrinSquint:Um,faHandHoldingDollar:qf,faHandHoldingUsd:Qh,faChartDiagram:Qf,faBacterium:Rp,faHandPointer:I1,faDrumSteelpan:W2,faHandScissors:Jf,faHandsPraying:Dp,faPrayingHands:N8,faArrowRotateRight:H2,faArrowRightRotate:P1,faArrowRotateForward:MC,faRedo:Np,faWebAwesome:w8,faBiohazard:jm,faLocationCrosshairs:wp,faLocation:u6,faMarsDouble:Vm,faChildDress:B8,faUsersBetweenLines:Gm,faLungsVirus:EC,faFaceGrinTears:Bp,faGrinTears:z8,faPhone:F8,faCalendarXmark:Wm,faCalendarTimes:_S,faChildReaching:k8,faHeadSideVirus:U8,faUserGear:j8,faUserCog:h6,faArrowUp19:V8,faSortNumericUp:d6,faDoorClosed:G8,faShieldVirus:TC,faDiceSix:LC,faMosquitoNet:W8,faFileFragment:fh,faBridgeWater:ph,faPersonBooth:f6,faTextWidth:H8,faHatWizard:or,faPenFancy:mh,faPersonDigging:gh,faDigging:$f,faTrash:IC,faGaugeSimple:nr,faGaugeSimpleMed:Hm,faTachometerAverage:p6,faBookMedical:e0,faPoo:PC,faQuoteRight:zp,faQuoteRightAlt:Jh,faShirt:Fp,faTShirt:t0,faTshirt:m6,faCubes:kp,faDivide:$h,faTengeSign:O1,faTenge:Up,faHeadphones:Ym,faHandsHolding:bc,faHandsClapping:OC,faRepublican:i0,faArrowLeft:Y8,faPersonCircleXmark:g6,faRuler:Sc,faAlignLeft:IE,faDiceD6:RC,faRestroom:vS,faJ:DC,faUsersViewfinder:X8,faFileVideo:NC,faUpRightFromSquare:Z8,faExternalLinkAlt:wC,faTableCells:BC,faTh:zC,faFilePdf:FC,faBookBible:kC,faBible:UC,faO:jC,faSuitcaseMedical:AS,faMedkit:VC,faUserSecret:_6,faOtter:K8,faPersonDress:q8,faFemale:PE,faCommentDollar:v6,faBusinessTime:Xm,faBriefcaseClock:A6,faTableCellsLarge:Q8,faThLarge:CS,faBookTanakh:J8,faTanakh:GC,faPhoneVolume:WC,faVolumeControlPhone:xS,faHatCowboySide:bS,faClipboardUser:SS,faChild:yS,faLiraSign:C6,faSatellite:OE,faPlaneLock:HC,faTag:MS,faComment:ES,faCakeCandles:x6,faBirthdayCake:RE,faCake:$8,faEnvelope:TS,faAnglesUp:ev,faAngleDoubleUp:Hd,faPaperclip:DE,faArrowRightToCity:YC,faRibbon:Zm,faLungs:tv,faArrowUp91:Yd,faSortNumericUpAlt:XC,faLitecoinSign:ZC,faBorderNone:s0,faCircleNodes:Km,faParachuteBox:KC,faIndent:iv,faTruckFieldUn:qC,faHourglass:qm,faHourglassEmpty:b6,faMountain:sv,faUserDoctor:QC,faUserMd:JC,faCircleInfo:S6,faInfoCircle:NE,faCloudMeatball:$C,faCamera:ex,faCameraAlt:rv,faSquareVirus:LS,faMeteor:wE,faCarOn:tx,faSleigh:IS,faArrowDown19:ix,faSortNumericAsc:BE,faSortNumericDown:zE,faHandHoldingDroplet:nv,faHandHoldingWater:FE,faWater:PS,faCalendarCheck:kE,faBraille:UE,faPrescriptionBottleMedical:sx,faPrescriptionBottleAlt:jE,faLandmark:rx,faTruck:VE,faCrosshairs:av,faPersonCane:OS,faTent:RS,faVestPatches:ov,faCheckDouble:nx,faArrowDownAZ:Y2,faSortAlphaAsc:GE,faSortAlphaDown:lv,faMoneyBillWheat:ax,faCookie:ox,faArrowRotateLeft:r0,faArrowLeftRotate:WE,faArrowRotateBack:cv,faArrowRotateBackward:y6,faUndo:HE,faHardDrive:uv,faHdd:YE,faFaceGrinSquintTears:hv,faGrinSquintTears:jp,faDumbbell:dv,faRectangleList:lo,faListAlt:fv,faTarpDroplet:lx,faHouseMedicalCircleCheck:Qm,faPersonSkiingNordic:Jm,faSkiingNordic:Hr,faCalendarPlus:_h,faPlaneArrival:DS,faCircleLeft:Ou,faArrowAltCircleLeft:$m,faTrainSubway:Yl,faSubway:Ru,faChartGantt:M6,faIndianRupeeSign:Du,faIndianRupee:js,faInr:cl,faCropSimple:Sa,faCropAlt:Ll,faMoneyBill1:vh,faMoneyBillAlt:Vs,faLeftLong:on,faLongArrowAltLeft:Oa,faDna:So,faVirusSlash:Ah,faMinus:R1,faSubtract:Xo,faChess:e4,faArrowLeftLong:D1,faLongArrowLeft:n0,faPlugCircleCheck:a0,faStreetView:pv,faFrancSign:o0,faVolumeOff:E6,faHandsAslInterpreting:ms,faAmericanSignLanguageInterpreting:t4,faAslInterpreting:cx,faHandsAmericanSignLanguageInterpreting:Xd,faGear:Zd,faCog:fs,faDropletSlash:X2,faTintSlash:i4,faMosque:l0,faMosquito:Kd,faStarOfDavid:Nu,faPersonMilitaryRifle:T6,faCartShopping:c0,faShoppingCart:L6,faVials:mv,faPlugCirclePlus:ed,faPlaceOfWorship:Vp,faGripVertical:N1,faHexagonNodes:qd,faArrowTurnUp:s4,faLevelUp:r4,faU:td,faSquareRootVariable:Z2,faSquareRootAlt:K2,faClock:Xl,faClockFour:w1,faBackwardStep:n4,faStepBackward:ul,faPallet:gv,faFaucet:Za,faBaseballBatBall:B1,faS:XE,faTimeline:Ka,faKeyboard:a4,faCaretDown:id,faHouseChimneyMedical:ux,faClinicMedical:hx,faTemperatureThreeQuarters:q2,faTemperature3:dx,faThermometer3:NS,faThermometerThreeQuarters:_v,faMobileScreen:o4,faMobileAndroidAlt:fx,faPlaneUp:l4,faPiggyBank:px,faBatteryHalf:c4,faBattery3:I6,faMountainCity:u4,faCoins:Q2,faKhanda:wS,faSliders:P6,faSlidersH:BS,faFolderTree:vv,faNetworkWired:Av,faMapPin:ZE,faHamsa:u0,faCentSign:KE,faFlask:qE,faPersonPregnant:QE,faWandSparkles:mx,faEllipsisVertical:Gp,faEllipsisV:JE,faTicket:Wp,faPowerOff:zS,faRightLong:gx,faLongArrowAltRight:FS,faFlagUsa:$E,faLaptopFile:yc,faTty:kS,faTeletype:_x,faDiagramNext:eT,faPersonRifle:tT,faHouseMedicalCircleExclamation:sd,faClosedCaptioning:iT,faPersonHiking:vx,faHiking:sT,faVenusDouble:Ax,faImages:z1,faCalculator:rT,faPeoplePulling:nT,faN:aT,faCableCar:Cx,faTram:h0,faCloudRain:US,faBuildingCircleXmark:Cv,faShip:xx,faArrowsDownToLine:xv,faDownload:bx,faFaceGrin:bv,faGrin:Sv,faDeleteLeft:yv,faBackspace:h4,faEyeDropper:O6,faEyeDropperEmpty:d4,faEyedropper:jS,faFileCircleCheck:Mv,faForward:Sx,faMobile:yx,faMobileAndroid:f4,faMobilePhone:VS,faFaceMeh:p4,faMeh:Ev,faAlignCenter:Mx,faBookSkull:F1,faBookDead:GS,faIdCard:d0,faDriversLicense:R6,faOutdent:wu,faDedent:Ch,faHeartCircleExclamation:WS,faHouse:k1,faHome:Tv,faHomeAlt:Bu,faHomeLgAlt:Hp,faCalendarWeek:HS,faLaptopMedical:Yp,faB:Ex,faFileMedical:Xp,faDiceOne:YS,faKiwiBird:Lv,faArrowRightArrowLeft:Tx,faExchange:oT,faRotateRight:f0,faRedoAlt:XS,faRotateForward:Lx,faUtensils:ZS,faCutlery:xh,faArrowUpWideShort:Zp,faSortAmountUp:KS,faMillSign:lT,faBowlRice:p0,faSkull:bh,faTowerBroadcast:Iv,faBroadcastTower:Ix,faTruckPickup:Px,faUpLong:zu,faLongArrowAltUp:cT,faStop:uT,faCodeMerge:Ox,faUpload:m4,faHurricane:Kp,faMound:Rx,faToiletPortable:hT,faCompactDisc:Pv,faFileArrowDown:D6,faFileDownload:dT,faCaravan:Dx,faShieldCat:fT,faBolt:Ov,faZap:Rv,faGlassWater:Nx,faOilWell:N6,faVault:pT,faMars:mT,faToilet:qp,faPlaneCircleXmark:w6,faYenSign:J2,faCny:wx,faJpy:gT,faRmb:B6,faYen:Bx,faRubleSign:z6,faRouble:F6,faRub:qS,faRuble:_T,faSun:QS,faGuitar:JS,faFaceLaughWink:k6,faLaughWink:zx,faHorseHead:$S,faBoreHole:Fx,faIndustry:U6,faCircleDown:Dv,faArrowAltCircleDown:kx,faArrowsTurnToDots:Ux,faFlorinSign:jx,faArrowDownShortWide:j6,faSortAmountDesc:Vx,faSortAmountDownAlt:Gx,faLessThan:Nv,faAngleDown:ey,faCarTunnel:Wx,faHeadSideCough:ty,faGripLines:iy,faThumbsDown:g4,faUserLock:vT,faArrowRightLong:sy,faLongArrowRight:Qp,faAnchorCircleXmark:AT,faEllipsis:V6,faEllipsisH:ry,faChessPawn:wv,faKitMedical:Jp,faFirstAid:ny,faPersonThroughWindow:ay,faToolbox:_4,faHandsHoldingCircle:Bv,faBug:CT,faCreditCard:Hx,faCreditCardAlt:xT,faCar:G6,faAutomobile:oy,faHandHoldingHand:ly,faBookOpenReader:cy,faBookReader:bT,faMountainSun:uy,faArrowsLeftRightToLine:hy,faDiceD20:Yx,faTruckDroplet:C,faFileCircleXmark:y,faTemperatureArrowUp:B,faTemperatureUp:U,faMedal:Z,faBed:g,faSquareH:v,faHSquare:L,faPodcast:z,faTemperatureFull:j,faTemperature4:J,faThermometer4:le,faThermometerFull:ce,faBell:_e,faSuperscript:Oe,faPlugCircleXmark:Fe,faStarOfLife:pt,faPhoneSlash:it,faPaintRoller:Mt,faHandshakeAngle:Jt,faHandsHelping:Ai,faLocationDot:Ct,faMapMarkerAlt:Ft,faFile:ut,faGreaterThan:ni,faPersonSwimming:Ei,faSwimmer:ht,faArrowDown:Vt,faDroplet:Et,faTint:di,faEraser:yi,faEarthAmericas:Gi,faEarth:_s,faEarthAmerica:$s,faGlobeAmericas:br,faPersonBurst:Ks,faDove:kn,faBatteryEmpty:Ns,faBattery0:sn,faSocks:qa,faInbox:co,faSection:hl,faGaugeHigh:uo,faTachometerAlt:m0,faTachometerAltFast:W6,faEnvelopeOpenText:ST,faHospital:U1,faHospitalAlt:nI,faHospitalWide:Pz,faWineBottle:Oz,faChessRook:Rz,faBarsStaggered:M9,faReorder:Dz,faStream:Nz,faDharmachakra:wz,faHotdog:Bz,faPersonWalkingWithCane:mR,faBlind:zz,faDrum:gR,faIceCream:Fz,faHeartCircleBolt:kz,faFax:aI,faParagraph:Uz,faCheckToSlot:_R,faVoteYea:vR,faStarHalf:jz,faBoxesStacked:E9,faBoxes:Vz,faBoxesAlt:Gz,faLink:AR,faChain:Wz,faEarListen:CR,faAssistiveListeningSystems:Hz,faTreeCity:xR,faPlay:Yz,faFont:oI,faTableCellsRowLock:Xz,faRupiahSign:Zz,faMagnifyingGlass:lI,faSearch:Kz,faTableTennisPaddleBall:T9,faPingPongPaddleBall:qz,faTableTennis:Qz,faPersonDotsFromLine:bR,faDiagnoses:Jz,faTrashCanArrowUp:cI,faTrashRestoreAlt:$z,faNairaSign:eF,faCartArrowDown:uI,faWalkieTalkie:tF,faFilePen:SR,faFileEdit:iF,faReceipt:sF,faSquarePen:hI,faPenSquare:dI,faPencilSquare:rF,faSuitcaseRolling:nF,faPersonCircleExclamation:aF,faChevronDown:oF,faBatteryFull:L9,faBattery:lF,faBattery5:cF,faSkullCrossbones:uF,faCodeCompare:yR,faListUl:MR,faListDots:hF,faSchoolLock:dF,faTowerCell:fF,faDownLong:ER,faLongArrowAltDown:TR,faRankingStar:pF,faChessKing:mF,faPersonHarassing:fI,faBrazilianRealSign:gF,faLandmarkDome:LR,faLandmarkAlt:_F,faArrowUp:IR,faTv:pI,faTelevision:vF,faTvAlt:PR,faShrimp:AF,faListCheck:OR,faTasks:CF,faJugDetergent:RR,faCircleUser:DR,faUserCircle:xF,faUserShield:NR,faWind:bF,faCarBurst:mI,faCarCrash:SF,faY:yF,faPersonSnowboarding:wR,faSnowboarding:BR,faTruckFast:zR,faShippingFast:MF,faFish:FR,faUserGraduate:EF,faCircleHalfStroke:gI,faAdjust:TF,faClapperboard:LF,faCircleRadiation:_I,faRadiationAlt:IF,faBaseball:kR,faBaseballBall:vI,faJetFighterUp:PF,faDiagramProject:UR,faProjectDiagram:OF,faCopy:jR,faVolumeXmark:AI,faVolumeMute:VR,faVolumeTimes:RF,faHandSparkles:GR,faGrip:WR,faGripHorizontal:DF,faShareFromSquare:CI,faShareSquare:NF,faChildCombatant:xI,faChildRifle:wF,faGun:BF,faSquarePhone:HR,faPhoneSquare:yT,faPlus:YR,faAdd:zF,faExpand:FF,faComputer:kF,faXmark:dy,faClose:UF,faMultiply:XR,faRemove:jF,faTimes:VF,faArrowsUpDownLeftRight:ZR,faArrows:GF,faChalkboardUser:KR,faChalkboardTeacher:qR,faPesoSign:WF,faBuildingShield:HF,faBaby:QR,faUsersLine:YF,faQuoteLeft:JR,faQuoteLeftAlt:XF,faTractor:ZF,faTrashArrowUp:$R,faTrashRestore:KF,faArrowDownUpLock:qF,faLinesLeaning:QF,faRulerCombined:MT,faCopyright:JF,faEquals:$F,faBlender:ek,faTeeth:tk,faShekelSign:ET,faIls:ik,faShekel:eD,faSheqel:sk,faSheqelSign:rk,faMap:nk,faRocket:ak,faPhotoFilm:tD,faPhotoVideo:ok,faFolderMinus:iD,faHexagonNodesBolt:lk,faStore:ck,faArrowTrendUp:uk,faPlugCircleMinus:sD,faSignHanging:rD,faSign:hk,faBezierCurve:dk,faBellSlash:fk,faTablet:nD,faTabletAndroid:pk,faSchoolFlag:mk,faFill:gk,faAngleUp:_k,faDrumstickBite:vk,faHollyBerry:Ak,faChevronLeft:Ck,faBacteria:xk,faHandLizard:bk,faNotdef:Sk,faDisease:aD,faBriefcaseMedical:yk,faGenderless:Mk,faChevronRight:Ek,faRetweet:oD,faCarRear:lD,faCarAlt:Tk,faPumpSoap:cD,faVideoSlash:Lk,faBatteryQuarter:uD,faBattery2:Ik,faRadio:Pk,faBabyCarriage:hD,faCarriageBaby:dD,faTrafficLight:Ok,faThermometer:Rk,faVrCardboard:Dk,faHandMiddleFinger:Nk,faPercent:bI,faPercentage:wk,faTruckMoving:fD,faGlassWaterDroplet:Bk,faDisplay:zk,faFaceSmile:SI,faSmile:Fk,faThumbtack:pD,faThumbTack:kk,faTrophy:mD,faPersonPraying:gD,faPray:Uk,faHammer:jk,faHandPeace:Vk,faRotate:yI,faSyncAlt:Gk,faSpinner:Wk,faRobot:Hk,faPeace:Yk,faGears:MI,faCogs:Xk,faWarehouse:Zk,faArrowUpRightDots:Kk,faSplotch:_D,faFaceGrinHearts:vD,faGrinHearts:qk,faDiceFour:AD,faSimCard:Qk,faTransgender:CD,faTransgenderAlt:Jk,faMercury:xD,faArrowTurnDown:bD,faLevelDown:$k,faPersonFallingBurst:SD,faAward:eU,faTicketSimple:yD,faTicketAlt:MD,faBuilding:tU,faAnglesLeft:EI,faAngleDoubleLeft:iU,faQrcode:ED,faClockRotateLeft:TD,faHistory:LD,faFaceGrinBeamSweat:ID,faGrinBeamSweat:PD,faFileExport:OD,faArrowRightFromFile:sU,faShield:RD,faShieldBlank:DD,faArrowUpShortWide:ND,faSortAmountUpAlt:wD,faCommentNodes:rU,faHouseMedical:nU,faGolfBallTee:BD,faGolfBall:aU,faCircleChevronLeft:zD,faChevronCircleLeft:FD,faHouseChimneyWindow:oU,faPenNib:lU,faTentArrowTurnLeft:cU,faTents:uU,faWandMagic:TI,faMagic:hU,faDog:dU,faCarrot:fU,faMoon:pU,faWineGlassEmpty:kD,faWineGlassAlt:mU,faCheese:UD,faYinYang:gU,faMusic:_U,faCodeCommit:vU,faTemperatureLow:AU,faPersonBiking:LI,faBiking:CU,faBroom:II,faShieldHeart:xU,faGopuram:bU,faEarthOceania:jD,faGlobeOceania:VD,faSquareXmark:PI,faTimesSquare:SU,faXmarkSquare:yU,faHashtag:MU,faUpRightAndDownLeftFromCenter:GD,faExpandAlt:EU,faOilCan:TU,faT:LU,faHippo:IU,faChartColumn:PU,faInfinity:OU,faVialCircleCheck:WD,faPersonArrowDownToLine:RU,faVoicemail:DU,faFan:NU,faPersonWalkingLuggage:wU,faUpDown:OI,faArrowsAltV:BU,faCloudMoonRain:zU,faCalendar:FU,faTrailer:kU,faBahai:RI,faHaykal:UU,faSdCard:HD,faDragon:jU,faShoePrints:VU,faCirclePlus:YD,faPlusCircle:I9,faFaceGrinTongueWink:XD,faGrinTongueWink:GU,faHandHolding:WU,faPlugCircleExclamation:HU,faLinkSlash:P9,faChainBroken:ZD,faChainSlash:YU,faUnlink:KD,faClone:XU,faPersonWalkingArrowLoopLeft:ZU,faArrowUpZA:qD,faSortAlphaUpAlt:QD,faFireFlameCurved:JD,faFireAlt:KU,faTornado:qU,faFileCirclePlus:$D,faBookQuran:eN,faQuran:QU,faAnchor:JU,faBorderAll:tN,faFaceAngry:iN,faAngry:$U,faCookieBite:sN,faArrowTrendDown:ej,faRss:O9,faFeed:tj,faDrawPolygon:ij,faScaleBalanced:rN,faBalanceScale:nN,faGaugeSimpleHigh:DI,faTachometer:sj,faTachometerFast:aN,faShower:rj,faDesktop:NI,faDesktopAlt:nj,faM:aj,faTableList:oN,faThList:oj,faCommentSms:wI,faSms:lj,faBook:cj,faUserPlus:uj,faCheck:hj,faBatteryThreeQuarters:lN,faBattery4:dj,faHouseCircleCheck:cN,faAngleLeft:fj,faDiagramSuccessor:pj,faTruckArrowRight:mj,faArrowsSplitUpAndLeft:gj,faHandFist:BI,faFistRaised:_j,faCloudMoon:vj,faBriefcase:Aj,faPersonFalling:uN,faImagePortrait:hN,faPortrait:dN,faUserTag:Cj,faRug:R9,faEarthEurope:fN,faGlobeEurope:xj,faCartFlatbedSuitcase:pN,faLuggageCart:bj,faRectangleXmark:D9,faRectangleTimes:mN,faTimesRectangle:Sj,faWindowClose:yj,faBahtSign:zI,faBookOpen:Mj,faBookJournalWhills:gN,faJournalWhills:Ej,faHandcuffs:_N,faTriangleExclamation:FI,faExclamationTriangle:Tj,faWarning:Lj,faDatabase:Ij,faShare:kI,faMailForward:Pj,faBottleDroplet:Oj,faMaskFace:Rj,faHillRockslide:Dj,faRightLeft:vN,faExchangeAlt:AN,faPaperPlane:Nj,faRoadCircleExclamation:wj,faDungeon:UI,faAlignRight:Bj,faMoneyBill1Wave:CN,faMoneyBillWaveAlt:zj,faLifeRing:jI,faHands:VI,faSignLanguage:Fj,faSigning:xN,faCalendarDay:kj,faWaterLadder:N9,faLadderWater:Uj,faSwimmingPool:bN,faArrowsUpDown:SN,faArrowsV:yN,faFaceGrimace:MN,faGrimace:jj,faWheelchairMove:GI,faWheelchairAlt:Vj,faTurnDown:EN,faLevelDownAlt:Gj,faPersonWalkingArrowRight:Wj,faSquareEnvelope:WI,faEnvelopeSquare:Hj,faDice:Yj,faBowlingBall:HI,faBrain:Xj,faBandage:TN,faBandAid:Zj,faCalendarMinus:Kj,faCircleXmark:w9,faTimesCircle:qj,faXmarkCircle:LN,faGifts:Qj,faHotel:IN,faEarthAsia:PN,faGlobeAsia:Jj,faIdCardClip:ON,faIdCardAlt:RN,faMagnifyingGlassPlus:DN,faSearchPlus:$j,faThumbsUp:eV,faUserClock:NN,faHandDots:wN,faAllergies:tV,faFileInvoice:iV,faWindowMinimize:sV,faMugSaucer:YI,faCoffee:rV,faBrush:nV,faFileHalfDashed:BN,faMask:aV,faMagnifyingGlassMinus:zN,faSearchMinus:oV,faRulerVertical:lV,faUserLarge:FN,faUserAlt:cV,faTrainTram:uV,faUserNurse:hV,faSyringe:dV,faCloudSun:kN,faStopwatch20:fV,faSquareFull:pV,faMagnet:mV,faJar:gV,faNoteSticky:UN,faStickyNote:_V,faBugSlash:jN,faArrowUpFromWaterPump:vV,faBone:AV,faTableCellsRowUnlock:CV,faUserInjured:xV,faFaceSadTear:VN,faSadTear:bV,faPlane:XI,faTentArrowsDown:SV,faExclamation:yV,faArrowsSpin:ZI,faPrint:MV,faTurkishLiraSign:KI,faTry:EV,faTurkishLira:GN,faDollarSign:qI,faDollar:WN,faUsd:TV,faX:LV,faMagnifyingGlassDollar:fy,faSearchDollar:IV,faUsersGear:HN,faUsersCog:PV,faPersonMilitaryPointing:OV,faBuildingColumns:TT,faBank:RV,faInstitution:DV,faMuseum:NV,faUniversity:YN,faUmbrella:wV,faTrowel:BV,faD:zV,faStapler:XN,faMasksTheater:ZN,faTheaterMasks:KN,faKipSign:FV,faHandPointLeft:qN,faHandshakeSimple:QN,faHandshakeAlt:kV,faJetFighter:JN,faFighterJet:$N,faSquareShareNodes:ew,faShareAltSquare:tw,faBarcode:UV,faPlusMinus:jV,faVideo:iw,faVideoCamera:sw,faGraduationCap:rw,faMortarBoard:qY,faHandHoldingMedical:ZIe,faPersonCircleCheck:KIe,faTurnUp:mue,faLevelUpAlt:qIe}},"../../../../node_modules/@fortawesome/react-fontawesome/index.es.js":(m,_,d)=>{d.r(_),d.d(_,{FontAwesomeIcon:()=>ue});var h=d("../../../../node_modules/@fortawesome/fontawesome-svg-core/index.mjs"),x=d("../../../../node_modules/prop-types/index.js"),A=d.n(x),S=d("../../../../node_modules/react/index.js");function E(fe,Ae){var Se=Object.keys(fe);if(Object.getOwnPropertySymbols){var we=Object.getOwnPropertySymbols(fe);Ae&&(we=we.filter(function(ke){return Object.getOwnPropertyDescriptor(fe,ke).enumerable})),Se.push.apply(Se,we)}return Se}function b(fe){for(var Ae=1;Ae<arguments.length;Ae++){var Se=arguments[Ae]!=null?arguments[Ae]:{};Ae%2?E(Object(Se),!0).forEach(function(we){T(fe,we,Se[we])}):Object.getOwnPropertyDescriptors?Object.defineProperties(fe,Object.getOwnPropertyDescriptors(Se)):E(Object(Se)).forEach(function(we){Object.defineProperty(fe,we,Object.getOwnPropertyDescriptor(Se,we))})}return fe}function M(fe){"@babel/helpers - typeof";return M=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Ae){return typeof Ae}:function(Ae){return Ae&&typeof Symbol=="function"&&Ae.constructor===Symbol&&Ae!==Symbol.prototype?"symbol":typeof Ae},M(fe)}function T(fe,Ae,Se){return Ae in fe?Object.defineProperty(fe,Ae,{value:Se,enumerable:!0,configurable:!0,writable:!0}):fe[Ae]=Se,fe}function O(fe,Ae){if(fe==null)return{};var Se={},we=Object.keys(fe),ke,st;for(st=0;st<we.length;st++)ke=we[st],!(Ae.indexOf(ke)>=0)&&(Se[ke]=fe[ke]);return Se}function R(fe,Ae){if(fe==null)return{};var Se=O(fe,Ae),we,ke;if(Object.getOwnPropertySymbols){var st=Object.getOwnPropertySymbols(fe);for(ke=0;ke<st.length;ke++)we=st[ke],!(Ae.indexOf(we)>=0)&&Object.prototype.propertyIsEnumerable.call(fe,we)&&(Se[we]=fe[we])}return Se}function I(fe){return N(fe)||w(fe)||D(fe)||Y()}function N(fe){if(Array.isArray(fe))return k(fe)}function w(fe){if(typeof Symbol<"u"&&fe[Symbol.iterator]!=null||fe["@@iterator"]!=null)return Array.from(fe)}function D(fe,Ae){if(fe){if(typeof fe=="string")return k(fe,Ae);var Se=Object.prototype.toString.call(fe).slice(8,-1);if(Se==="Object"&&fe.constructor&&(Se=fe.constructor.name),Se==="Map"||Se==="Set")return Array.from(fe);if(Se==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Se))return k(fe,Ae)}}function k(fe,Ae){(Ae==null||Ae>fe.length)&&(Ae=fe.length);for(var Se=0,we=new Array(Ae);Se<Ae;Se++)we[Se]=fe[Se];return we}function Y(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function V(fe){var Ae,Se=fe.beat,we=fe.fade,ke=fe.beatFade,st=fe.bounce,Ve=fe.shake,Ke=fe.flash,ct=fe.spin,nt=fe.spinPulse,at=fe.spinReverse,xt=fe.pulse,Qe=fe.fixedWidth,kt=fe.inverse,ot=fe.border,At=fe.listItem,Me=fe.flip,je=fe.size,rt=fe.rotation,yt=fe.pull,Rt=(Ae={"fa-beat":Se,"fa-fade":we,"fa-beat-fade":ke,"fa-bounce":st,"fa-shake":Ve,"fa-flash":Ke,"fa-spin":ct,"fa-spin-reverse":at,"fa-spin-pulse":nt,"fa-pulse":xt,"fa-fw":Qe,"fa-inverse":kt,"fa-border":ot,"fa-li":At,"fa-flip":Me===!0,"fa-flip-horizontal":Me==="horizontal"||Me==="both","fa-flip-vertical":Me==="vertical"||Me==="both"},T(Ae,"fa-".concat(je),typeof je<"u"&&je!==null),T(Ae,"fa-rotate-".concat(rt),typeof rt<"u"&&rt!==null&&rt!==0),T(Ae,"fa-pull-".concat(yt),typeof yt<"u"&&yt!==null),T(Ae,"fa-swap-opacity",fe.swapOpacity),Ae);return Object.keys(Rt).map(function(Nt){return Rt[Nt]?Nt:null}).filter(function(Nt){return Nt})}function ee(fe){return fe=fe-0,fe===fe}function K(fe){return ee(fe)?fe:(fe=fe.replace(/[\-_\s]+(.)?/g,function(Ae,Se){return Se?Se.toUpperCase():""}),fe.substr(0,1).toLowerCase()+fe.substr(1))}var ie=["style"];function ne(fe){return fe.charAt(0).toUpperCase()+fe.slice(1)}function te(fe){return fe.split(";").map(function(Ae){return Ae.trim()}).filter(function(Ae){return Ae}).reduce(function(Ae,Se){var we=Se.indexOf(":"),ke=K(Se.slice(0,we)),st=Se.slice(we+1).trim();return ke.startsWith("webkit")?Ae[ne(ke)]=st:Ae[ke]=st,Ae},{})}function W(fe,Ae){var Se=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof Ae=="string")return Ae;var we=(Ae.children||[]).map(function(ct){return W(fe,ct)}),ke=Object.keys(Ae.attributes||{}).reduce(function(ct,nt){var at=Ae.attributes[nt];switch(nt){case"class":ct.attrs.className=at,delete Ae.attributes.class;break;case"style":ct.attrs.style=te(at);break;default:nt.indexOf("aria-")===0||nt.indexOf("data-")===0?ct.attrs[nt.toLowerCase()]=at:ct.attrs[K(nt)]=at}return ct},{attrs:{}}),st=Se.style,Ve=st===void 0?{}:st,Ke=R(Se,ie);return ke.attrs.style=b(b({},ke.attrs.style),Ve),fe.apply(void 0,[Ae.tag,b(b({},ke.attrs),Ke)].concat(I(we)))}var Q=!1;try{Q=!1}catch{}function re(){if(!Q&&console&&typeof console.error=="function"){var fe;(fe=console).error.apply(fe,arguments)}}function oe(fe){if(fe&&M(fe)==="object"&&fe.prefix&&fe.iconName&&fe.icon)return fe;if(h.parse.icon)return h.parse.icon(fe);if(fe===null)return null;if(fe&&M(fe)==="object"&&fe.prefix&&fe.iconName)return fe;if(Array.isArray(fe)&&fe.length===2)return{prefix:fe[0],iconName:fe[1]};if(typeof fe=="string")return{prefix:"fas",iconName:fe}}function X(fe,Ae){return Array.isArray(Ae)&&Ae.length>0||!Array.isArray(Ae)&&Ae?T({},fe,Ae):{}}var se={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1},ue=S.forwardRef(function(fe,Ae){var Se=b(b({},se),fe),we=Se.icon,ke=Se.mask,st=Se.symbol,Ve=Se.className,Ke=Se.title,ct=Se.titleId,nt=Se.maskId,at=oe(we),xt=X("classes",[].concat(I(V(Se)),I((Ve||"").split(" ")))),Qe=X("transform",typeof Se.transform=="string"?h.parse.transform(Se.transform):Se.transform),kt=X("mask",oe(ke)),ot=(0,h.icon)(at,b(b(b(b({},xt),Qe),kt),{},{symbol:st,title:Ke,titleId:ct,maskId:nt}));if(!ot)return re("Could not find icon",at),null;var At=ot.abstract,Me={ref:Ae};return Object.keys(Se).forEach(function(je){se.hasOwnProperty(je)||(Me[je]=Se[je])}),he(At[0],Me)});ue.displayName="FontAwesomeIcon",ue.propTypes={beat:A().bool,border:A().bool,beatFade:A().bool,bounce:A().bool,className:A().string,fade:A().bool,flash:A().bool,mask:A().oneOfType([A().object,A().array,A().string]),maskId:A().string,fixedWidth:A().bool,inverse:A().bool,flip:A().oneOf([!0,!1,"horizontal","vertical","both"]),icon:A().oneOfType([A().object,A().array,A().string]),listItem:A().bool,pull:A().oneOf(["right","left"]),pulse:A().bool,rotation:A().oneOf([0,90,180,270]),shake:A().bool,size:A().oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:A().bool,spinPulse:A().bool,spinReverse:A().bool,symbol:A().oneOfType([A().bool,A().string]),title:A().string,titleId:A().string,transform:A().oneOfType([A().string,A().object]),swapOpacity:A().bool};var he=W.bind(null,S.createElement)},"../../../../node_modules/classnames/index.js":(m,_)=>{var d,h;/*!
	Copyright (c) 2018 Jed Watson.
	Licensed under the MIT License (MIT), see
	http://jedwatson.github.io/classnames
*/(function(){var x={}.hasOwnProperty;function A(){for(var b="",M=0;M<arguments.length;M++){var T=arguments[M];T&&(b=E(b,S(T)))}return b}function S(b){if(typeof b=="string"||typeof b=="number")return b;if(typeof b!="object")return"";if(Array.isArray(b))return A.apply(null,b);if(b.toString!==Object.prototype.toString&&!b.toString.toString().includes("[native code]"))return b.toString();var M="";for(var T in b)x.call(b,T)&&b[T]&&(M=E(M,T));return M}function E(b,M){return M?b?b+" "+M:b+M:b}m.exports?(A.default=A,m.exports=A):(d=[],h=(function(){return A}).apply(_,d),h!==void 0&&(m.exports=h))})()},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/actionTabs.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>R});var h=d("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),x=d.n(h),A=d("../../../../node_modules/css-loader/dist/runtime/api.js"),S=d.n(A),E=d("../../../../node_modules/css-loader/dist/runtime/getUrl.js"),b=d.n(E),M=new URL(d("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 2 2%27%3E%3Cpath fill=%27rgba%281.0,1.0,1.0,0.3%29%27 fill-rule=%27evenodd%27 d=%27M0 0h1v1H0V0zm1 1h1v1H1V1z%27/%3E%3C/svg%3E"),d.b),T=S()(x()),O=b()(M);T.push([m.id,`#inspector-host {
  position: absolute;
  right: 0px;
  top: 0px;
  bottom: 0px;
}

#__resizable_base__ {
  display: none;
}

#actionTabs {
  background: #333333;
  height: 100%;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-rows: auto 1fr;
  font: 14px "Arial";
  overflow: hidden;
}
#actionTabs .hoverIcon:hover {
  opacity: 0.8;
}
#actionTabs #header {
  height: 30px;
  font-size: 16px;
  color: white;
  background: #222222;
  grid-row: 1;
  text-align: center;
  display: grid;
  grid-template-columns: 30px 1fr 50px;
  user-select: none;
}
#actionTabs #header #logo {
  grid-column: 1;
  width: 24px;
  height: 24px;
  display: flex;
  align-self: center;
  justify-self: center;
}
#actionTabs #header #back {
  grid-column: 1;
  display: grid;
  align-self: center;
  justify-self: center;
  cursor: pointer;
}
#actionTabs #header #title {
  grid-column: 2;
  display: grid;
  align-items: center;
  text-align: center;
}
#actionTabs #header #commands {
  grid-column: 3;
  display: grid;
  align-items: center;
  grid-template-columns: 1fr 1fr;
}
#actionTabs #header #commands .expand {
  grid-column: 1;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#actionTabs #header #commands .close {
  grid-column: 2;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#actionTabs .tabsMenu {
  display: grid;
  grid-row: 2;
  grid-template-rows: 40px 1fr;
  font: 14px "Arial";
  overflow: hidden;
}
#actionTabs .tabsMenu .labels {
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-items: center;
  border-bottom: 1px solid #ffffff;
  margin: 0;
  padding: 0;
}
#actionTabs .tabsMenu .labels .label {
  font-size: 24px;
  color: white;
  width: 40px;
  display: flex;
  align-content: center;
  justify-content: center;
  border: 1px solid transparent;
  border-bottom: none;
  background: #333333;
  padding: 5px;
  height: 28px;
  cursor: pointer;
}
#actionTabs .tabsMenu .labels .label.active {
  border-color: #ffffff;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
}
#actionTabs .tabsMenu .panes {
  grid-row: 2;
  display: grid;
  grid-template-rows: 100%;
  overflow: hidden;
}
#actionTabs .tabsMenu .panes .infoMessage {
  opacity: 0.5;
  color: white;
  margin: 15px 5px 0px 5px;
}
#actionTabs .tabsMenu .panes .gradient-step {
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 20px 30px 40px auto 20px 30px;
  padding-top: 5px;
  padding-left: 5px;
  padding-bottom: 5px;
  align-items: center;
}
#actionTabs .tabsMenu .panes .gradient-step .step {
  grid-row: 1;
  grid-column: 1;
}
#actionTabs .tabsMenu .panes .gradient-step .color1 {
  height: 100%;
}
#actionTabs .tabsMenu .panes .gradient-step .color2 {
  height: 100%;
  padding-left: 5px;
}
#actionTabs .tabsMenu .panes .gradient-step .factor1 {
  grid-row: 1;
  grid-column: 2;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .gradient-step .factor2 {
  padding-left: 5px;
  grid-row: 1;
  grid-column: 3;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .gradient-step .factor2 .grayed {
  background: gray;
  border-color: gray;
}
#actionTabs .tabsMenu .panes .gradient-step .numeric-input {
  width: calc(100% - 5px);
}
#actionTabs .tabsMenu .panes .gradient-step .icon {
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .gradient-step .step-value {
  margin-left: 5px;
  grid-row: 1;
  grid-column: 3;
  text-align: right;
  margin-right: 5px;
}
#actionTabs .tabsMenu .panes .gradient-step .step-slider {
  grid-row: 1;
  grid-column: 4;
  display: grid;
  justify-content: stretch;
  align-content: center;
  margin-right: 12px;
}
#actionTabs .tabsMenu .panes .gradient-step .step-slider input {
  width: 100%;
}
#actionTabs .tabsMenu .panes .gradient-step .step-slider .range:hover {
  opacity: 1;
}
#actionTabs .tabsMenu .panes .gradient-step .step-slider .range {
  -webkit-appearance: none;
  height: 6px;
  background: #d3d3d3;
  border-radius: 5px;
  outline: none;
  opacity: 0.7;
  transition: opacity 0.2s;
}
#actionTabs .tabsMenu .panes .gradient-step .step-slider .range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgb(51, 122, 183);
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .gradient-step .step-slider .range::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgb(51, 122, 183);
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .gradient-step .gradient-copy {
  grid-row: 1;
  grid-column: 5;
  display: grid;
  align-content: center;
  justify-content: center;
}
#actionTabs .tabsMenu .panes .gradient-step .gradient-copy .img {
  height: 20px;
  width: 20px;
}
#actionTabs .tabsMenu .panes .gradient-step .gradient-copy .img:hover {
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .gradient-step .gradient-delete {
  grid-row: 1;
  grid-column: 6;
  display: grid;
  align-content: center;
  justify-content: center;
}
#actionTabs .tabsMenu .panes .gradient-step .gradient-delete .img {
  height: 20px;
  width: 20px;
}
#actionTabs .tabsMenu .panes .gradient-step .gradient-delete .img:hover {
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane {
  color: white;
  overflow-x: hidden;
  overflow-y: auto;
  height: 100%;
  user-select: none;
}
#actionTabs .tabsMenu .panes .pane .animation-info {
  border-left: greenyellow 3px solid;
  margin-left: 5px;
  padding-left: 5px !important;
}
#actionTabs .tabsMenu .panes .pane .tagContainer {
  display: flex;
  min-height: 20px;
  padding: 4px;
  width: calc(100% - 8px);
  flex-wrap: wrap;
}
#actionTabs .tabsMenu .panes .pane .tagContainer .tag {
  border: 1px solid white;
  border-radius: 6px;
  padding: 1px 4px;
  margin: 2px;
}
#actionTabs .tabsMenu .panes .pane .underline {
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.5);
}
#actionTabs .tabsMenu .panes .pane .textureLinkLine {
  display: grid;
  grid-template-columns: auto 1fr;
}
#actionTabs .tabsMenu .panes .pane .textureLinkLine .debug {
  grid-column: 1;
  margin-left: 5px;
  margin-right: 5px;
  display: block;
  align-items: center;
  justify-items: center;
  cursor: pointer;
  opacity: 0.5;
}
#actionTabs .tabsMenu .panes .pane .textureLinkLine .debug.selected {
  opacity: 1;
}
#actionTabs .tabsMenu .panes .pane .textureLinkLine .textLine {
  grid-column: 2;
}
#actionTabs .tabsMenu .panes .pane .textureLinkLine .actionIcon {
  display: inline-block;
  margin-top: 6px;
  margin-right: 4px;
}
#actionTabs .tabsMenu .panes .pane .messageLine {
  text-align: center;
  font-size: 12px;
  font-style: italic;
  opacity: 0.6;
}
#actionTabs .tabsMenu .panes .pane .iconMessageLine {
  padding-left: 2px;
  height: 30px;
  display: grid;
  grid-template-columns: 30px 1fr;
}
#actionTabs .tabsMenu .panes .pane .iconMessageLine .icon {
  grid-column: 1;
  display: grid;
  align-items: center;
  justify-items: center;
}
#actionTabs .tabsMenu .panes .pane .iconMessageLine .value {
  grid-column: 2;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .color-picker {
  height: calc(100% - 8px);
  margin: 4px;
  width: 100%;
}
#actionTabs .tabsMenu .panes .pane .color-picker .color-rect {
  height: calc(100% - 4px);
  border: 2px white solid;
  cursor: pointer;
  min-height: 18px;
}
#actionTabs .tabsMenu .panes .pane .color-picker .color-picker-cover {
  position: fixed;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 100;
}
#actionTabs .tabsMenu .panes .pane .color-picker .color-picker-float {
  position: absolute;
}
#actionTabs .tabsMenu .panes .pane .linkButtonLine {
  padding-left: 2px;
  height: 30px;
  display: grid;
  grid-template-columns: 1fr auto 20px;
}
#actionTabs .tabsMenu .panes .pane .linkButtonLine .link {
  grid-column: 1;
  display: flex;
  align-items: center;
  text-decoration: underline;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .linkButtonLine .link-button {
  grid-column: 2;
}
#actionTabs .tabsMenu .panes .pane .linkButtonLine .link-button button {
  background: #222222;
  border: 1px solid rgb(51, 122, 183);
  margin: 5px 10px 5px 10px;
  color: white;
  padding: 4px 5px;
  opacity: 0.9;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .linkButtonLine .link-button button:hover {
  opacity: 1;
}
#actionTabs .tabsMenu .panes .pane .linkButtonLine .link-button button:active {
  background: #282828;
}
#actionTabs .tabsMenu .panes .pane .linkButtonLine .link-button button:focus {
  border: 1px solid rgb(51, 122, 183);
  outline: 0px;
}
#actionTabs .tabsMenu .panes .pane .linkButtonLine .link-icon {
  grid-column: 3;
  display: grid;
  align-content: center;
}
#actionTabs .tabsMenu .panes .pane .textLine {
  padding-left: 2px;
  height: 30px;
  display: grid;
  grid-template-columns: 1fr auto;
}
#actionTabs .tabsMenu .panes .pane .textLine.indented {
  grid-template-columns: 100%;
}
#actionTabs .tabsMenu .panes .pane .textLine.indented .link-value {
  grid-column: 1;
  text-align: start;
  margin-left: 20px;
  opacity: 0.6;
  max-width: unset;
}
#actionTabs .tabsMenu .panes .pane .textLine.indented .value {
  grid-column: 1;
  text-align: start;
  margin-left: 20px;
  opacity: 0.6;
  max-width: unset;
}
#actionTabs .tabsMenu .panes .pane .textLine.reduced-opacity {
  opacity: 0.6;
  padding-left: 25px;
}
#actionTabs .tabsMenu .panes .pane .textLine .label {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .textLine .link-value {
  grid-column: 2;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  text-align: end;
  opacity: 0.8;
  margin: 5px;
  margin-top: 7px;
  max-width: 140px;
  text-decoration: underline;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .textLine .value {
  grid-column: 2;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  text-align: end;
  opacity: 0.8;
  margin: 5px;
  margin-top: 7px;
  max-width: 200px;
  user-select: text;
}
#actionTabs .tabsMenu .panes .pane .textLine .value.check {
  color: green;
}
#actionTabs .tabsMenu .panes .pane .textLine .value.uncheck {
  color: red;
}
#actionTabs .tabsMenu .panes .pane .textLine .copy {
  grid-column: 3;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .textLine .copy img {
  height: 100%;
}
#actionTabs .tabsMenu .panes .pane .textLine.icon {
  grid-template-columns: 1fr auto 20px 10px;
}
#actionTabs .tabsMenu .panes .pane .gradient-container {
  margin-top: 3px;
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-label {
  height: 30px;
  display: grid;
  align-content: center;
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-step {
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 25px 50px 55px 40px auto 20px 5px;
  padding-top: 5px;
  padding-left: 5px;
  padding-bottom: 5px;
  align-items: center;
  border-left: orange 3px solid;
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-step .step {
  grid-row: 1;
  grid-column: 1;
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-step .color1 {
  height: 100%;
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-step .color2 {
  height: 100%;
  padding-left: 5px;
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-step .factor1 {
  grid-row: 1;
  grid-column: 2;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-step .factor2 {
  padding-left: 5px;
  grid-row: 1;
  grid-column: 3;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-step .factor2 .grayed {
  background: gray;
  border-color: gray;
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-step .numeric-input {
  width: calc(100% - 5px);
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-step .step-value {
  margin-left: 5px;
  grid-row: 1;
  grid-column: 4;
  text-align: right;
  margin-right: 5px;
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-step .step-slider {
  grid-row: 1;
  grid-column: 5;
  display: grid;
  justify-content: stretch;
  align-content: center;
  margin-right: 5px;
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-step .step-slider input {
  width: 100%;
}
#actionTabs .tabsMenu .panes .pane .gradient-container .gradient-step .gradient-delete {
  grid-row: 1;
  grid-column: 6;
  display: grid;
  align-content: center;
  justify-content: center;
}
#actionTabs .tabsMenu .panes .pane .textInputLine {
  padding-left: 2px;
  height: 30px;
  display: grid;
  grid-template-columns: 1fr 120px;
}
#actionTabs .tabsMenu .panes .pane .textInputLine .label {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .textInputLine .value {
  display: flex;
  align-items: center;
  grid-column: 2;
}
#actionTabs .tabsMenu .panes .pane .textInputLine .value input {
  width: 110px;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine {
  height: 30px;
  display: grid;
  align-items: center;
  justify-items: stretch;
  grid-template-columns: 1fr 30px;
  grid-template-rows: 100%;
  position: relative;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine input[type=file] {
  display: none;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine .file-upload {
  background: #222222;
  border: 1px solid rgb(51, 122, 183);
  margin: 5px 10px 5px 10px;
  color: white;
  padding: 4px 5px;
  font-size: 13px;
  opacity: 0.9;
  cursor: pointer;
  text-align: center;
  grid-row: 1;
  grid-column: 1;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine .dropdownButton {
  grid-row: 1;
  grid-column: 2;
  align-content: center;
  justify-content: center;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine .dropdown {
  position: absolute;
  top: 27px;
  left: 10px;
  z-index: 100;
  background: #222222;
  width: calc(100% - 20px);
  border: 1px solid rgb(51, 122, 183);
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine .dropdown.hidden {
  display: none;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine .dropdown .dropdownItem {
  color: white;
  padding: 4px 5px;
  font-size: 13px;
  opacity: 0.9;
  cursor: pointer;
  text-align: center;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine .dropdown .dropdownItem:hover {
  background: rgb(51, 122, 183);
  opacity: 1;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine .file-upload:hover {
  opacity: 1;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine .file-upload:active {
  transform: scale(0.98);
  transform-origin: 0.5 0.5;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine button {
  background: #222222;
  border: 1px solid rgb(51, 122, 183);
  margin: 5px 10px 5px 10px;
  color: white;
  padding: 4px 5px;
  opacity: 0.9;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine button:hover {
  opacity: 1;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine button:active {
  background: #282828;
}
#actionTabs .tabsMenu .panes .pane .textureButtonLine button:focus {
  border: 1px solid rgb(51, 122, 183);
  outline: 0px;
}
#actionTabs .tabsMenu .panes .pane .buttonLine {
  height: 30px;
  display: grid;
  align-items: center;
  justify-items: stretch;
}
#actionTabs .tabsMenu .panes .pane .buttonLine input[type=file] {
  display: none;
}
#actionTabs .tabsMenu .panes .pane .buttonLine .file-upload {
  background: #222222;
  border: 1px solid rgb(51, 122, 183);
  margin: 5px 10px 5px 10px;
  color: white;
  padding: 4px 5px;
  font-size: 13px;
  opacity: 0.9;
  cursor: pointer;
  text-align: center;
}
#actionTabs .tabsMenu .panes .pane .buttonLine .file-upload:hover {
  opacity: 1;
}
#actionTabs .tabsMenu .panes .pane .buttonLine .file-upload:active {
  transform: scale(0.98);
  transform-origin: 0.5 0.5;
}
#actionTabs .tabsMenu .panes .pane .buttonLine button {
  background: #222222;
  border: 1px solid rgb(51, 122, 183);
  margin: 5px 10px 5px 10px;
  color: white;
  padding: 4px 5px;
  opacity: 0.9;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .buttonLine button:hover {
  opacity: 1;
}
#actionTabs .tabsMenu .panes .pane .buttonLine button:active {
  background: #282828;
}
#actionTabs .tabsMenu .panes .pane .buttonLine button:focus {
  border: 1px solid rgb(51, 122, 183);
  outline: 0px;
}
#actionTabs .tabsMenu .panes .pane .radioLine {
  padding-left: 2px;
  height: 30px;
  display: grid;
  grid-template-columns: 1fr 24px;
}
#actionTabs .tabsMenu .panes .pane .radioLine .label {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .radioLine .radioContainer {
  grid-column: 2;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .radioLine .radioContainer .radio {
  display: none;
}
#actionTabs .tabsMenu .panes .pane .radioLine .radioContainer .radio:checked + label:before {
  border-color: rgb(51, 122, 183);
}
#actionTabs .tabsMenu .panes .pane .radioLine .radioContainer .radio:checked + label:after {
  transform: scale(1);
}
#actionTabs .tabsMenu .panes .pane .radioLine .radioContainer .labelForRadio {
  display: inline-block;
  height: 14px;
  position: relative;
  padding: 0 24px;
  margin-bottom: 0;
  cursor: pointer;
  vertical-align: bottom;
}
#actionTabs .tabsMenu .panes .pane .radioLine .radioContainer .labelForRadio:before, #actionTabs .tabsMenu .panes .pane .radioLine .radioContainer .labelForRadio:after {
  position: absolute;
  content: "";
  border-radius: 50%;
  transition: all 0.3s ease;
  transition-property: transform, border-color;
}
#actionTabs .tabsMenu .panes .pane .radioLine .radioContainer .labelForRadio:before {
  left: 0px;
  top: 0;
  width: 16px;
  height: 16px;
  border: 2px solid white;
}
#actionTabs .tabsMenu .panes .pane .radioLine .radioContainer .labelForRadio:after {
  top: 6px;
  left: 6px;
  width: 8px;
  height: 8px;
  transform: scale(0);
  background: rgb(51, 122, 183);
}
#actionTabs .tabsMenu .panes .pane .radioLine .copy {
  grid-column: 3;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .radioLine .copy img {
  height: 100%;
}
#actionTabs .tabsMenu .panes .pane .vector3Line {
  padding-left: 2px;
  display: grid;
}
#actionTabs .tabsMenu .panes .pane .vector3Line .firstLine {
  display: grid;
  grid-template-columns: 1fr auto 20px;
  height: 30px;
}
#actionTabs .tabsMenu .panes .pane .vector3Line .firstLine .label {
  grid-column: 1;
  display: flex;
  align-items: center;
  white-space: nowrap;
  overflow: hidden;
}
#actionTabs .tabsMenu .panes .pane .vector3Line .firstLine .vector {
  grid-column: 2;
  display: flex;
  align-items: center;
  text-align: right;
  opacity: 0.8;
  padding-left: 5px;
}
#actionTabs .tabsMenu .panes .pane .vector3Line .firstLine .expand {
  grid-column: 3;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .vector3Line .firstLine .copy {
  grid-column: 4;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .vector3Line .firstLine .copy img {
  height: 100%;
}
#actionTabs .tabsMenu .panes .pane .vector3Line .secondLine {
  display: grid;
  padding-right: 5px;
  border-left: 1px solid rgb(51, 122, 183);
}
#actionTabs .tabsMenu .panes .pane .vector3Line .secondLine .numeric {
  display: grid;
  grid-template-columns: 1fr auto;
}
#actionTabs .tabsMenu .panes .pane .vector3Line .secondLine .numeric-label {
  text-align: right;
  grid-column: 1;
  display: flex;
  align-items: center;
  justify-self: right;
  margin-right: 10px;
}
#actionTabs .tabsMenu .panes .pane .vector3Line .secondLine .numeric-value {
  width: 120px;
  grid-column: 2;
  display: flex;
  align-items: center;
  border: 1px solid rgb(51, 122, 183);
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine {
  padding-left: 2px;
  height: 30px;
  display: grid;
  grid-template-columns: 1fr auto 20px 10px;
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine .label {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine .checkBox {
  grid-column: 2;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine .checkBox .lbl {
  position: relative;
  display: block;
  height: 14px;
  width: 34px;
  margin-right: 5px;
  background: #898989;
  border-radius: 100px;
  cursor: pointer;
  transition: all 0.3s ease;
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine .checkBox .lbl.checked {
  background: rgb(51, 122, 183);
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine .checkBox .lbl:after {
  position: absolute;
  left: 3px;
  top: 2px;
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 100px;
  background: #fff;
  box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.05);
  content: "";
  transition: all 0.15s ease;
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine .checkBox .lbl:after.checked {
  left: 20px;
  background: rgb(22, 73, 117);
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine .checkBox .lbl.checked:after {
  position: absolute;
  top: 2px;
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 100px;
  background: #fff;
  box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.05);
  content: "";
  transition: all 0.15s ease;
  left: 20px;
  background: rgb(22, 73, 117);
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine .checkBox .lbl:active:after {
  transform: scale(1.15, 0.85);
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine .checkBox .hidden {
  display: none;
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine .checkBox .icon {
  display: none;
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine .copy {
  grid-column: 3;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .checkBoxLine .copy img {
  height: 100%;
}
#actionTabs .tabsMenu .panes .pane .textureLine {
  display: grid;
  grid-template-rows: 30px auto;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control {
  margin-top: 2px;
  grid-row: 1;
  display: grid;
  grid-template-columns: 1fr 40px 40px 40px 40px 40px 1fr;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control .red {
  grid-column: 2;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control .green {
  grid-column: 3;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control .blue {
  grid-column: 4;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control .alpha {
  grid-column: 5;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control .all {
  grid-column: 6;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control3D {
  margin-top: 2px;
  grid-row: 1;
  display: grid;
  grid-template-columns: 1fr 40px 40px 40px 40px 40px 40px 1fr;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control3D .px {
  grid-column: 2;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control3D .nx {
  grid-column: 3;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control3D .py {
  grid-column: 4;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control3D .ny {
  grid-column: 5;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control3D .pz {
  grid-column: 6;
}
#actionTabs .tabsMenu .panes .pane .textureLine .control3D .nz {
  grid-column: 7;
}
#actionTabs .tabsMenu .panes .pane .textureLine .command {
  border: 1px solid transparent;
  background: transparent;
  color: white;
}
#actionTabs .tabsMenu .panes .pane .textureLine .selected {
  border: 1px solid rgb(51, 122, 183);
}
#actionTabs .tabsMenu .panes .pane .textureLine .preview {
  grid-row: 2;
  display: grid;
  align-self: center;
  justify-self: center;
  height: 256px;
  width: 256px;
  margin-top: 5px;
  margin-bottom: 5px;
  border: 1px solid white;
  background-size: 32px 32px;
  background-color: white;
  background-image: url(${O});
}
#actionTabs .tabsMenu .panes .pane .gltf-extension-property {
  margin-left: 30px;
  border-left: 1px solid rgb(51, 122, 183);
}
#actionTabs .tabsMenu .panes .pane .floatLine {
  padding-left: 2px;
  height: 30px;
  display: grid;
  grid-template-columns: 1fr 120px;
}
#actionTabs .tabsMenu .panes .pane .floatLine .label {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .floatLine .value {
  grid-column: 2;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .floatLine .value input {
  width: 110px;
}
#actionTabs .tabsMenu .panes .pane .floatLine .copy {
  grid-column: 3;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .floatLine .copy img {
  height: 100%;
}
#actionTabs .tabsMenu .panes .pane .sliderLine {
  padding-left: 2px;
  height: 30px;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 1fr 50px auto;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .label {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .withMargins {
  margin-left: 5px;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .floatLine {
  padding-left: 2px;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .floatLine .short {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .floatLine .short input {
  width: 35px;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .floatLine .short input::-webkit-outer-spin-button,
#actionTabs .tabsMenu .panes .pane .sliderLine .floatLine .short input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .floatLine .short input[type=number] {
  -moz-appearance: textfield;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .slider {
  grid-column: 3;
  grid-row: 1;
  margin-right: 5px;
  width: 90%;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .slider .range {
  -webkit-appearance: none;
  width: 100%;
  height: 6px;
  background: #d3d3d3;
  border-radius: 5px;
  outline: none;
  opacity: 0.7;
  transition: opacity 0.2s;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .slider .range.overflow {
  background-color: red;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .slider .range:hover {
  opacity: 1;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .slider .range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgb(51, 122, 183);
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .slider .range::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgb(51, 122, 183);
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .floatLine .copy {
  display: none;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .copy {
  grid-column: 4;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .sliderLine .copy img {
  height: 100%;
}
#actionTabs .tabsMenu .panes .pane .color3Line {
  padding-left: 2px;
  display: grid;
}
#actionTabs .tabsMenu .panes .pane .color3Line .firstLine {
  height: 30px;
  display: grid;
  grid-template-columns: 1fr auto 20px;
}
#actionTabs .tabsMenu .panes .pane .color3Line .firstLine .label {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .color3Line .firstLine .color3 {
  grid-column: 2;
  width: 50px;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .color3Line .firstLine .color3 input[type=color] {
  -webkit-appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.5);
  padding: 0;
  width: 30px;
  height: 20px;
}
#actionTabs .tabsMenu .panes .pane .color3Line .firstLine .color3 input[type=color]::-webkit-color-swatch-wrapper {
  padding: 0;
}
#actionTabs .tabsMenu .panes .pane .color3Line .firstLine .color3 input[type=color]::-webkit-color-swatch {
  border: none;
}
#actionTabs .tabsMenu .panes .pane .color3Line .firstLine .color3 input {
  margin-right: 5px;
}
#actionTabs .tabsMenu .panes .pane .color3Line .firstLine .expand {
  grid-column: 3;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .color3Line .firstLine .copy {
  grid-column: 4;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .color3Line .firstLine .copy img {
  height: 100%;
}
#actionTabs .tabsMenu .panes .pane .color3Line .secondLine {
  display: grid;
  padding-right: 5px;
  border-left: 1px solid rgb(51, 122, 183);
}
#actionTabs .tabsMenu .panes .pane .color3Line .secondLine .numeric {
  display: grid;
  grid-template-columns: 1fr auto;
}
#actionTabs .tabsMenu .panes .pane .color3Line .secondLine .numeric-label {
  text-align: right;
  grid-column: 1;
  display: flex;
  align-items: center;
  justify-self: right;
  margin-right: 10px;
}
#actionTabs .tabsMenu .panes .pane .color3Line .secondLine .numeric-value {
  width: 120px;
  grid-column: 2;
  display: flex;
  align-items: center;
  border: 1px solid rgb(51, 122, 183);
}
#actionTabs .tabsMenu .panes .pane .listLine {
  padding-left: 2px;
  height: 30px;
  display: grid;
  grid-template-columns: 1fr auto 20px 10px;
}
#actionTabs .tabsMenu .panes .pane .listLine .label {
  grid-column: 1;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .listLine .options {
  grid-column: 2;
  display: flex;
  align-items: center;
  margin-right: 5px;
}
#actionTabs .tabsMenu .panes .pane .listLine .options select {
  width: 115px;
}
#actionTabs .tabsMenu .panes .pane .listLine .copy {
  grid-column: 3;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .listLine .copy img {
  height: 100%;
}
#actionTabs .tabsMenu .panes .pane .paneContainer {
  margin-top: 3px;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 100%;
}
#actionTabs .tabsMenu .panes .pane .paneContainer .paneList {
  border-left: 3px solid transparent;
}
#actionTabs .tabsMenu .panes .pane .paneContainer:hover .paneList {
  border-left: 3px solid rgba(51, 122, 183, 0.8);
}
#actionTabs .tabsMenu .panes .pane .paneContainer:hover .paneContainer-content .header .title {
  border-left: 3px solid rgb(51, 122, 183);
}
#actionTabs .tabsMenu .panes .pane .paneContainer .paneContainer-highlight-border {
  grid-row: 1;
  grid-column: 1;
  opacity: 1;
  border: 3px solid red;
  margin-bottom: -5px;
  z-index: 100;
  transition: opacity 250ms;
  pointer-events: none;
}
#actionTabs .tabsMenu .panes .pane .paneContainer .paneContainer-highlight-border.transparent {
  opacity: 0;
}
#actionTabs .tabsMenu .panes .pane .paneContainer .paneContainer-content {
  grid-row: 1;
  grid-column: 1;
}
#actionTabs .tabsMenu .panes .pane .paneContainer .paneContainer-content .header {
  display: grid;
  grid-template-columns: 1fr auto;
  background: #555555;
  height: 30px;
  padding-right: 5px;
  cursor: pointer;
}
#actionTabs .tabsMenu .panes .pane .paneContainer .paneContainer-content .header .title {
  border-left: 3px solid transparent;
  padding-left: 5px;
  grid-column: 1;
  display: flex;
  align-items: center;
}
#actionTabs .tabsMenu .panes .pane .paneContainer .paneContainer-content .header .collapse {
  grid-column: 2;
  display: flex;
  align-items: center;
  justify-items: center;
  transform-origin: center;
}
#actionTabs .tabsMenu .panes .pane .paneContainer .paneContainer-content .header .collapse.closed {
  transform: rotate(180deg);
}
#actionTabs .tabsMenu .panes .pane .paneContainer .paneContainer-content .paneList > div:not(:last-child) {
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);
}
#actionTabs .tabsMenu .panes .pane .paneContainer .paneContainer-content .fragment > div:not(:last-child) {
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);
}`,"",{version:3,sources:["webpack://./../../../dev/inspector/dist/components/actionTabs/actionTabs.scss"],names:[],mappings:"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",sourcesContent:[`$line-padding-left: 2px;\r
\r
#inspector-host {\r
    position: absolute;\r
    right: 0px;\r
    top: 0px;\r
    bottom: 0px;\r
}\r
\r
#__resizable_base__ {\r
    display: none;\r
}\r
\r
#actionTabs {\r
    background: #333333;\r
    height: 100%;\r
    margin: 0;\r
    padding: 0;\r
    display: grid;\r
    grid-template-rows: auto 1fr;\r
    font: 14px "Arial";\r
    overflow: hidden;\r
\r
    .hoverIcon:hover {\r
        opacity: 0.8;\r
    }\r
\r
    #header {\r
        height: 30px;\r
        font-size: 16px;\r
        color: white;\r
        background: #222222;\r
        grid-row: 1;\r
        text-align: center;\r
        display: grid;\r
        grid-template-columns: 30px 1fr 50px;\r
        user-select: none;\r
\r
        #logo {\r
            grid-column: 1;\r
            width: 24px;\r
            height: 24px;\r
            display: flex;\r
            align-self: center;\r
            justify-self: center;\r
        }\r
\r
        #back {\r
            grid-column: 1;\r
            display: grid;\r
            align-self: center;\r
            justify-self: center;\r
            cursor: pointer;\r
        }\r
\r
        #title {\r
            grid-column: 2;\r
            display: grid;\r
            align-items: center;\r
            text-align: center;\r
        }\r
\r
        #commands {\r
            grid-column: 3;\r
            display: grid;\r
            align-items: center;\r
            grid-template-columns: 1fr 1fr;\r
\r
            .expand {\r
                grid-column: 1;\r
                display: grid;\r
                align-items: center;\r
                justify-items: center;\r
                cursor: pointer;\r
            }\r
\r
            .close {\r
                grid-column: 2;\r
                display: grid;\r
                align-items: center;\r
                justify-items: center;\r
                cursor: pointer;\r
            }\r
        }\r
    }\r
\r
    .tabsMenu {\r
        display: grid;\r
        grid-row: 2;\r
        grid-template-rows: 40px 1fr;\r
        font: 14px "Arial";\r
        overflow: hidden;\r
\r
        .labels {\r
            grid-row: 1;\r
            display: flex;\r
            align-items: center;\r
            justify-items: center;\r
            border-bottom: 1px solid #ffffff;\r
            margin: 0;\r
            padding: 0;\r
\r
            .label {\r
                font-size: 24px;\r
                color: white;\r
                width: 40px;\r
                display: flex;\r
                align-content: center;\r
                justify-content: center;\r
                border: 1px solid transparent;\r
                border-bottom: none;\r
                background: #333333;\r
                padding: 5px;\r
                height: 28px;\r
                cursor: pointer;\r
\r
                &.active {\r
                    border-color: #ffffff;\r
                    border-bottom: 2px solid transparent;\r
                    margin-bottom: -2px;\r
                }\r
            }\r
        }\r
\r
        .panes {\r
            grid-row: 2;\r
            display: grid;\r
            grid-template-rows: 100%;\r
\r
            overflow: hidden;\r
\r
            .infoMessage {\r
                opacity: 0.5;\r
                color: white;\r
                margin: 15px 5px 0px 5px;\r
            }\r
\r
            .gradient-step {\r
                display: grid;\r
                grid-template-rows: 100%;\r
                grid-template-columns: 20px 30px 40px auto 20px 30px;\r
                padding-top: 5px;\r
                padding-left: 5px;\r
                padding-bottom: 5px;\r
                align-items: center;\r
\r
                .step {\r
                    grid-row: 1;\r
                    grid-column: 1;\r
                }\r
\r
                .color1 {\r
                    height: 100%;\r
                }\r
\r
                .color2 {\r
                    height: 100%;\r
                    padding-left: 5px;\r
                }\r
\r
                .factor1 {\r
                    grid-row: 1;\r
                    grid-column: 2;\r
                    cursor: pointer;\r
                }\r
\r
                .factor2 {\r
                    padding-left: 5px;\r
                    grid-row: 1;\r
                    grid-column: 3;\r
                    cursor: pointer;\r
\r
                    .grayed {\r
                        background: gray;\r
                        border-color: gray;\r
                    }\r
                }\r
\r
                .numeric-input {\r
                    width: calc(100% - 5px);\r
                }\r
\r
                .icon {\r
                    cursor: pointer;\r
                }\r
\r
                .step-value {\r
                    margin-left: 5px;\r
                    grid-row: 1;\r
                    grid-column: 3;\r
                    text-align: right;\r
                    margin-right: 5px;\r
                }\r
\r
                .step-slider {\r
                    grid-row: 1;\r
                    grid-column: 4;\r
                    display: grid;\r
                    justify-content: stretch;\r
                    align-content: center;\r
                    margin-right: 12px;\r
\r
                    input {\r
                        width: 100%;\r
                    }\r
                    .range:hover {\r
                        opacity: 1;\r
                    }\r
\r
                    .range {\r
                        -webkit-appearance: none;\r
                        height: 6px;\r
                        background: #d3d3d3;\r
                        border-radius: 5px;\r
                        outline: none;\r
                        opacity: 0.7;\r
                        transition: opacity 0.2s;\r
                    }\r
\r
                    .range::-webkit-slider-thumb {\r
                        -webkit-appearance: none;\r
                        appearance: none;\r
                        width: 14px;\r
                        height: 14px;\r
                        border-radius: 50%;\r
                        background: rgb(51, 122, 183);\r
                        cursor: pointer;\r
                    }\r
\r
                    .range::-moz-range-thumb {\r
                        width: 14px;\r
                        height: 14px;\r
                        border-radius: 50%;\r
                        background: rgb(51, 122, 183);\r
                        cursor: pointer;\r
                    }\r
                }\r
\r
                .gradient-copy {\r
                    grid-row: 1;\r
                    grid-column: 5;\r
                    display: grid;\r
                    align-content: center;\r
                    justify-content: center;\r
\r
                    .img {\r
                        height: 20px;\r
                        width: 20px;\r
                    }\r
                    .img:hover {\r
                        cursor: pointer;\r
                    }\r
                }\r
                .gradient-delete {\r
                    grid-row: 1;\r
                    grid-column: 6;\r
                    display: grid;\r
                    align-content: center;\r
                    justify-content: center;\r
                    .img {\r
                        height: 20px;\r
                        width: 20px;\r
                    }\r
                    .img:hover {\r
                        cursor: pointer;\r
                    }\r
                }\r
            }\r
\r
            .pane {\r
                color: white;\r
\r
                overflow-x: hidden;\r
                overflow-y: auto;\r
                height: 100%;\r
\r
                user-select: none;\r
\r
                .animation-info {\r
                    border-left: greenyellow 3px solid;\r
                    margin-left: 5px;\r
                    padding-left: 5px !important;\r
                }\r
\r
                .tagContainer {\r
                    display: flex;\r
                    min-height: 20px;\r
                    padding: 4px;\r
                    width: calc(100% - 8px);\r
                    flex-wrap: wrap;\r
\r
                    .tag {\r
                        border: 1px solid white;\r
                        border-radius: 6px;\r
                        padding: 1px 4px;\r
                        margin: 2px;\r
                    }\r
                }\r
\r
                .underline {\r
                    border-bottom: 0.5px solid rgba(255, 255, 255, 0.5);\r
                }\r
\r
                .textureLinkLine {\r
                    display: grid;\r
                    grid-template-columns: auto 1fr;\r
\r
                    .debug {\r
                        grid-column: 1;\r
                        margin-left: 5px;\r
                        margin-right: 5px;\r
                        display: block;\r
                        align-items: center;\r
                        justify-items: center;\r
                        cursor: pointer;\r
                        opacity: 0.5;\r
\r
                        &.selected {\r
                            opacity: 1;\r
                        }\r
                    }\r
\r
                    .textLine {\r
                        grid-column: 2;\r
                    }\r
\r
                    .actionIcon {\r
                        display: inline-block;\r
                        margin-top: 6px;\r
                        margin-right: 4px;\r
                    }\r
                }\r
\r
                .messageLine {\r
                    text-align: center;\r
                    font-size: 12px;\r
                    font-style: italic;\r
                    opacity: 0.6;\r
                }\r
\r
                .iconMessageLine {\r
                    padding-left: $line-padding-left;\r
                    height: 30px;\r
                    display: grid;\r
                    grid-template-columns: 30px 1fr;\r
\r
                    .icon {\r
                        grid-column: 1;\r
                        display: grid;\r
                        align-items: center;\r
                        justify-items: center;\r
                    }\r
\r
                    .value {\r
                        grid-column: 2;\r
                        display: flex;\r
                        align-items: center;\r
                    }\r
                }\r
\r
                .color-picker {\r
                    height: calc(100% - 8px);\r
                    margin: 4px;\r
                    width: 100%;\r
\r
                    .color-rect {\r
                        height: calc(100% - 4px);\r
                        border: 2px white solid;\r
                        cursor: pointer;\r
                        min-height: 18px;\r
                    }\r
\r
                    .color-picker-cover {\r
                        position: fixed;\r
                        top: 0px;\r
                        right: 0px;\r
                        bottom: 0px;\r
                        left: 0px;\r
                        z-index: 100;\r
                    }\r
\r
                    .color-picker-float {\r
                        position: absolute;\r
                    }\r
                }\r
\r
                .linkButtonLine {\r
                    padding-left: $line-padding-left;\r
                    height: 30px;\r
                    display: grid;\r
                    grid-template-columns: 1fr auto 20px;\r
\r
                    .link {\r
                        grid-column: 1;\r
                        display: flex;\r
                        align-items: center;\r
                        text-decoration: underline;\r
                        cursor: pointer;\r
                    }\r
\r
                    .link-button {\r
                        grid-column: 2;\r
\r
                        button {\r
                            background: #222222;\r
                            border: 1px solid rgb(51, 122, 183);\r
                            margin: 5px 10px 5px 10px;\r
                            color: white;\r
                            padding: 4px 5px;\r
                            opacity: 0.9;\r
                            cursor: pointer;\r
                        }\r
\r
                        button:hover {\r
                            opacity: 1;\r
                        }\r
\r
                        button:active {\r
                            background: #282828;\r
                        }\r
\r
                        button:focus {\r
                            border: 1px solid rgb(51, 122, 183);\r
                            outline: 0px;\r
                        }\r
                    }\r
\r
                    .link-icon {\r
                        grid-column: 3;\r
                        display: grid;\r
                        align-content: center;\r
                    }\r
                }\r
\r
                .textLine {\r
                    padding-left: $line-padding-left;\r
                    height: 30px;\r
                    display: grid;\r
                    grid-template-columns: 1fr auto;\r
\r
                    &.indented {\r
                        grid-template-columns: 100%;\r
\r
                        .link-value {\r
                            grid-column: 1;\r
                            text-align: start;\r
                            margin-left: 20px;\r
                            opacity: 0.6;\r
                            max-width: unset;\r
                        }\r
\r
                        .value {\r
                            grid-column: 1;\r
                            text-align: start;\r
                            margin-left: 20px;\r
                            opacity: 0.6;\r
                            max-width: unset;\r
                        }\r
                    }\r
\r
                    &.reduced-opacity {\r
                        opacity: 0.6;\r
                        padding-left: 25px;\r
                    }\r
\r
                    .label {\r
                        grid-column: 1;\r
                        display: flex;\r
                        align-items: center;\r
                    }\r
\r
                    .link-value {\r
                        grid-column: 2;\r
                        white-space: nowrap;\r
                        text-overflow: ellipsis;\r
                        overflow: hidden;\r
                        text-align: end;\r
                        opacity: 0.8;\r
                        margin: 5px;\r
                        margin-top: 7px;\r
                        max-width: 140px;\r
                        text-decoration: underline;\r
                        cursor: pointer;\r
                    }\r
\r
                    .value {\r
                        grid-column: 2;\r
                        white-space: nowrap;\r
                        text-overflow: ellipsis;\r
                        overflow: hidden;\r
                        text-align: end;\r
                        opacity: 0.8;\r
                        margin: 5px;\r
                        margin-top: 7px;\r
                        max-width: 200px;\r
                        user-select: text;\r
\r
                        &.check {\r
                            color: green;\r
                        }\r
\r
                        &.uncheck {\r
                            color: red;\r
                        }\r
                    }\r
\r
                    .copy {\r
                        grid-column: 3;\r
                        display: grid;\r
                        align-items: center;\r
                        justify-items: center;\r
                        cursor: pointer;\r
                        img {\r
                            height: 100%;\r
                        }\r
                    }\r
                }\r
\r
                .textLine.icon {\r
                    grid-template-columns: 1fr auto 20px 10px;\r
                }\r
\r
                .gradient-container {\r
                    margin-top: 3px;\r
\r
                    .gradient-label {\r
                        height: 30px;\r
                        display: grid;\r
                        align-content: center;\r
                    }\r
\r
                    .gradient-step {\r
                        display: grid;\r
                        grid-template-rows: 100%;\r
                        grid-template-columns: 25px 50px 55px 40px auto 20px 5px;\r
                        padding-top: 5px;\r
                        padding-left: 5px;\r
                        padding-bottom: 5px;\r
                        align-items: center;\r
                        border-left: orange 3px solid;\r
\r
                        .step {\r
                            grid-row: 1;\r
                            grid-column: 1;\r
                        }\r
\r
                        .color1 {\r
                            height: 100%;\r
                        }\r
\r
                        .color2 {\r
                            height: 100%;\r
                            padding-left: 5px;\r
                        }\r
\r
                        .factor1 {\r
                            grid-row: 1;\r
                            grid-column: 2;\r
                            cursor: pointer;\r
                        }\r
\r
                        .factor2 {\r
                            padding-left: 5px;\r
                            grid-row: 1;\r
                            grid-column: 3;\r
                            cursor: pointer;\r
\r
                            .grayed {\r
                                background: gray;\r
                                border-color: gray;\r
                            }\r
                        }\r
\r
                        .numeric-input {\r
                            width: calc(100% - 5px);\r
                        }\r
\r
                        .step-value {\r
                            margin-left: 5px;\r
                            grid-row: 1;\r
                            grid-column: 4;\r
                            text-align: right;\r
                            margin-right: 5px;\r
                        }\r
\r
                        .step-slider {\r
                            grid-row: 1;\r
                            grid-column: 5;\r
                            display: grid;\r
                            justify-content: stretch;\r
                            align-content: center;\r
                            margin-right: 5px;\r
\r
                            input {\r
                                width: 100%;\r
                            }\r
                        }\r
\r
                        .gradient-delete {\r
                            grid-row: 1;\r
                            grid-column: 6;\r
                            display: grid;\r
                            align-content: center;\r
                            justify-content: center;\r
                        }\r
                    }\r
                }\r
\r
                .textInputLine {\r
                    padding-left: $line-padding-left;\r
                    height: 30px;\r
                    display: grid;\r
                    grid-template-columns: 1fr 120px;\r
\r
                    .label {\r
                        grid-column: 1;\r
                        display: flex;\r
                        align-items: center;\r
                    }\r
\r
                    .value {\r
                        display: flex;\r
                        align-items: center;\r
                        grid-column: 2;\r
\r
                        input {\r
                            width: 110px;\r
                        }\r
                    }\r
                }\r
\r
                .textureButtonLine {\r
                    height: 30px;\r
                    display: grid;\r
                    align-items: center;\r
                    justify-items: stretch;\r
                    grid-template-columns: 1fr 30px;\r
                    grid-template-rows: 100%;\r
                    position: relative;\r
\r
                    input[type="file"] {\r
                        display: none;\r
                    }\r
\r
                    .file-upload {\r
                        background: #222222;\r
                        border: 1px solid rgb(51, 122, 183);\r
                        margin: 5px 10px 5px 10px;\r
                        color: white;\r
                        padding: 4px 5px;\r
                        font-size: 13px;\r
                        opacity: 0.9;\r
                        cursor: pointer;\r
                        text-align: center;\r
                        grid-row: 1;\r
                        grid-column: 1;\r
                    }\r
\r
                    .dropdownButton {\r
                        grid-row: 1;\r
                        grid-column: 2;\r
                        align-content: center;\r
                        justify-content: center;\r
                        cursor: pointer;\r
                    }\r
\r
                    .dropdown {\r
                        position: absolute;\r
                        top: 27px;\r
                        left: 10px;\r
                        z-index: 100;\r
                        background: #222222;\r
                        width: calc(100% - 20px);\r
                        border: 1px solid rgb(51, 122, 183);\r
\r
                        &.hidden {\r
                            display: none;\r
                        }\r
\r
                        .dropdownItem {\r
                            color: white;\r
                            padding: 4px 5px;\r
                            font-size: 13px;\r
                            opacity: 0.9;\r
                            cursor: pointer;\r
                            text-align: center;\r
\r
                            &:hover {\r
                                background: rgb(51, 122, 183);\r
                                opacity: 1;\r
                            }\r
                        }\r
                    }\r
\r
                    .file-upload:hover {\r
                        opacity: 1;\r
                    }\r
\r
                    .file-upload:active {\r
                        transform: scale(0.98);\r
                        transform-origin: 0.5 0.5;\r
                    }\r
\r
                    button {\r
                        background: #222222;\r
                        border: 1px solid rgb(51, 122, 183);\r
                        margin: 5px 10px 5px 10px;\r
                        color: white;\r
                        padding: 4px 5px;\r
                        opacity: 0.9;\r
                        cursor: pointer;\r
                    }\r
\r
                    button:hover {\r
                        opacity: 1;\r
                    }\r
\r
                    button:active {\r
                        background: #282828;\r
                    }\r
\r
                    button:focus {\r
                        border: 1px solid rgb(51, 122, 183);\r
                        outline: 0px;\r
                    }\r
                }\r
\r
                .buttonLine {\r
                    height: 30px;\r
                    display: grid;\r
                    align-items: center;\r
                    justify-items: stretch;\r
\r
                    input[type="file"] {\r
                        display: none;\r
                    }\r
\r
                    .file-upload {\r
                        background: #222222;\r
                        border: 1px solid rgb(51, 122, 183);\r
                        margin: 5px 10px 5px 10px;\r
                        color: white;\r
                        padding: 4px 5px;\r
                        font-size: 13px;\r
                        opacity: 0.9;\r
                        cursor: pointer;\r
                        text-align: center;\r
                    }\r
\r
                    .file-upload:hover {\r
                        opacity: 1;\r
                    }\r
\r
                    .file-upload:active {\r
                        transform: scale(0.98);\r
                        transform-origin: 0.5 0.5;\r
                    }\r
\r
                    button {\r
                        background: #222222;\r
                        border: 1px solid rgb(51, 122, 183);\r
                        margin: 5px 10px 5px 10px;\r
                        color: white;\r
                        padding: 4px 5px;\r
                        opacity: 0.9;\r
                        cursor: pointer;\r
                    }\r
\r
                    button:hover {\r
                        opacity: 1;\r
                    }\r
\r
                    button:active {\r
                        background: #282828;\r
                    }\r
\r
                    button:focus {\r
                        border: 1px solid rgb(51, 122, 183);\r
                        outline: 0px;\r
                    }\r
                }\r
\r
                .radioLine {\r
                    padding-left: $line-padding-left;\r
                    height: 30px;\r
                    display: grid;\r
                    grid-template-columns: 1fr 24px;\r
\r
                    .label {\r
                        grid-column: 1;\r
                        display: flex;\r
                        align-items: center;\r
                    }\r
\r
                    .radioContainer {\r
                        grid-column: 2;\r
                        display: flex;\r
                        align-items: center;\r
\r
                        .radio {\r
                            display: none;\r
\r
                            &:checked + label:before {\r
                                border-color: rgb(51, 122, 183);\r
                            }\r
                            &:checked + label:after {\r
                                transform: scale(1);\r
                            }\r
                        }\r
\r
                        .labelForRadio {\r
                            display: inline-block;\r
                            height: 14px;\r
                            position: relative;\r
                            padding: 0 24px;\r
                            margin-bottom: 0;\r
                            cursor: pointer;\r
                            vertical-align: bottom;\r
                            &:before,\r
                            &:after {\r
                                position: absolute;\r
                                content: "";\r
                                border-radius: 50%;\r
                                transition: all 0.3s ease;\r
                                transition-property: transform, border-color;\r
                            }\r
                            &:before {\r
                                left: 0px;\r
                                top: 0;\r
                                width: 16px;\r
                                height: 16px;\r
                                border: 2px solid white;\r
                            }\r
                            &:after {\r
                                top: 6px;\r
                                left: 6px;\r
                                width: 8px;\r
                                height: 8px;\r
                                transform: scale(0);\r
                                background: rgb(51, 122, 183);\r
                            }\r
                        }\r
                    }\r
\r
                    .copy {\r
                        grid-column: 3;\r
                        display: grid;\r
                        align-items: center;\r
                        justify-items: center;\r
                        cursor: pointer;\r
                        img {\r
                            height: 100%;\r
                        }\r
                    }\r
                }\r
\r
                .vector3Line {\r
                    padding-left: $line-padding-left;\r
                    display: grid;\r
\r
                    .firstLine {\r
                        display: grid;\r
                        grid-template-columns: 1fr auto 20px;\r
                        height: 30px;\r
\r
                        .label {\r
                            grid-column: 1;\r
                            display: flex;\r
                            align-items: center;\r
                            white-space: nowrap;\r
                            overflow: hidden;\r
                        }\r
\r
                        .vector {\r
                            grid-column: 2;\r
                            display: flex;\r
                            align-items: center;\r
                            text-align: right;\r
                            opacity: 0.8;\r
                            padding-left: 5px;\r
                        }\r
\r
                        .expand {\r
                            grid-column: 3;\r
                            display: grid;\r
                            align-items: center;\r
                            justify-items: center;\r
                            cursor: pointer;\r
                        }\r
\r
                        .copy {\r
                            grid-column: 4;\r
                            display: grid;\r
                            align-items: center;\r
                            justify-items: center;\r
                            cursor: pointer;\r
                            img {\r
                                height: 100%;\r
                            }\r
                        }\r
                    }\r
\r
                    .secondLine {\r
                        display: grid;\r
                        padding-right: 5px;\r
                        border-left: 1px solid rgb(51, 122, 183);\r
\r
                        .numeric {\r
                            display: grid;\r
                            grid-template-columns: 1fr auto;\r
                        }\r
\r
                        .numeric-label {\r
                            text-align: right;\r
                            grid-column: 1;\r
                            display: flex;\r
                            align-items: center;\r
                            justify-self: right;\r
                            margin-right: 10px;\r
                        }\r
\r
                        .numeric-value {\r
                            width: 120px;\r
                            grid-column: 2;\r
                            display: flex;\r
                            align-items: center;\r
                            border: 1px solid rgb(51, 122, 183);\r
                        }\r
                    }\r
                }\r
\r
                .checkBoxLine {\r
                    padding-left: $line-padding-left;\r
                    height: 30px;\r
                    display: grid;\r
                    grid-template-columns: 1fr auto 20px 10px;\r
\r
                    .label {\r
                        grid-column: 1;\r
                        display: flex;\r
                        align-items: center;\r
                    }\r
\r
                    .checkBox {\r
                        grid-column: 2;\r
\r
                        display: flex;\r
                        align-items: center;\r
\r
                        .lbl {\r
                            position: relative;\r
                            display: block;\r
                            height: 14px;\r
                            width: 34px;\r
                            margin-right: 5px;\r
                            background: #898989;\r
                            border-radius: 100px;\r
                            cursor: pointer;\r
                            transition: all 0.3s ease;\r
\r
                            &.checked {\r
                                background: rgb(51, 122, 183);\r
                            }\r
                        }\r
\r
                        .lbl:after {\r
                            position: absolute;\r
                            left: 3px;\r
                            top: 2px;\r
                            display: block;\r
                            width: 10px;\r
                            height: 10px;\r
                            border-radius: 100px;\r
                            background: #fff;\r
                            box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.05);\r
                            content: "";\r
                            transition: all 0.15s ease;\r
\r
                            &.checked {\r
                                left: 20px;\r
                                background: rgb(22, 73, 117);\r
                            }\r
                        }\r
\r
                        .lbl.checked:after {\r
                            position: absolute;\r
                            top: 2px;\r
                            display: block;\r
                            width: 10px;\r
                            height: 10px;\r
                            border-radius: 100px;\r
                            background: #fff;\r
                            box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.05);\r
                            content: "";\r
                            transition: all 0.15s ease;\r
                            left: 20px;\r
                            background: rgb(22, 73, 117);\r
                        }\r
\r
                        .lbl:active:after {\r
                            transform: scale(1.15, 0.85);\r
                        }\r
\r
                        .hidden {\r
                            display: none;\r
                        }\r
\r
                        .icon {\r
                            display: none;\r
                        }\r
                    }\r
\r
                    .copy {\r
                        grid-column: 3;\r
                        display: grid;\r
                        align-items: center;\r
                        justify-items: center;\r
                        cursor: pointer;\r
                        img {\r
                            height: 100%;\r
                        }\r
                    }\r
                }\r
\r
                .textureLine {\r
                    display: grid;\r
                    grid-template-rows: 30px auto;\r
\r
                    .control {\r
                        margin-top: 2px;\r
                        grid-row: 1;\r
                        display: grid;\r
                        grid-template-columns: 1fr 40px 40px 40px 40px 40px 1fr;\r
\r
                        .red {\r
                            grid-column: 2;\r
                        }\r
\r
                        .green {\r
                            grid-column: 3;\r
                        }\r
\r
                        .blue {\r
                            grid-column: 4;\r
                        }\r
\r
                        .alpha {\r
                            grid-column: 5;\r
                        }\r
\r
                        .all {\r
                            grid-column: 6;\r
                        }\r
                    }\r
\r
                    .control3D {\r
                        margin-top: 2px;\r
                        grid-row: 1;\r
                        display: grid;\r
                        grid-template-columns: 1fr 40px 40px 40px 40px 40px 40px 1fr;\r
\r
                        .px {\r
                            grid-column: 2;\r
                        }\r
\r
                        .nx {\r
                            grid-column: 3;\r
                        }\r
\r
                        .py {\r
                            grid-column: 4;\r
                        }\r
\r
                        .ny {\r
                            grid-column: 5;\r
                        }\r
\r
                        .pz {\r
                            grid-column: 6;\r
                        }\r
\r
                        .nz {\r
                            grid-column: 7;\r
                        }\r
                    }\r
\r
                    .command {\r
                        border: 1px solid transparent;\r
                        background: transparent;\r
                        color: white;\r
                    }\r
\r
                    .selected {\r
                        border: 1px solid rgb(51, 122, 183);\r
                    }\r
\r
                    .preview {\r
                        grid-row: 2;\r
                        display: grid;\r
                        align-self: center;\r
                        justify-self: center;\r
                        height: 256px;\r
                        width: 256px;\r
                        margin-top: 5px;\r
                        margin-bottom: 5px;\r
                        border: 1px solid white;\r
                        background-size: 32px 32px;\r
                        background-color: white;\r
                        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2 2'%3E%3Cpath fill='rgba(1.0,1.0,1.0,0.3)' fill-rule='evenodd' d='M0 0h1v1H0V0zm1 1h1v1H1V1z'/%3E%3C/svg%3E");\r
                    }\r
                }\r
\r
                .gltf-extension-property {\r
                    margin-left: 30px;\r
                    border-left: 1px solid rgb(51, 122, 183);\r
                }\r
\r
                .floatLine {\r
                    padding-left: $line-padding-left;\r
                    height: 30px;\r
                    display: grid;\r
                    grid-template-columns: 1fr 120px;\r
\r
                    .label {\r
                        grid-column: 1;\r
                        display: flex;\r
                        align-items: center;\r
                    }\r
\r
                    .value {\r
                        grid-column: 2;\r
\r
                        display: flex;\r
                        align-items: center;\r
\r
                        input {\r
                            width: 110px;\r
                        }\r
                    }\r
\r
                    .copy {\r
                        grid-column: 3;\r
                        display: grid;\r
                        align-items: center;\r
                        justify-items: center;\r
                        cursor: pointer;\r
                        img {\r
                            height: 100%;\r
                        }\r
                    }\r
                }\r
\r
                .sliderLine {\r
                    padding-left: $line-padding-left;\r
                    height: 30px;\r
                    display: grid;\r
                    grid-template-rows: 100%;\r
                    grid-template-columns: 1fr 50px auto;\r
\r
                    .label {\r
                        grid-column: 1;\r
                        display: flex;\r
                        align-items: center;\r
                    }\r
\r
                    .withMargins {\r
                        margin-left: 5px;\r
                    }\r
\r
                    .floatLine {\r
                        padding-left: $line-padding-left;\r
\r
                        .short {\r
                            grid-column: 1;\r
                            display: flex;\r
                            align-items: center;\r
\r
                            input {\r
                                width: 35px;\r
                            }\r
\r
                            input::-webkit-outer-spin-button,\r
                            input::-webkit-inner-spin-button {\r
                                -webkit-appearance: none;\r
                                margin: 0;\r
                            }\r
\r
                            input[type="number"] {\r
                                -moz-appearance: textfield;\r
                            }\r
                        }\r
                    }\r
\r
                    .slider {\r
                        grid-column: 3;\r
                        grid-row: 1;\r
                        margin-right: 5px;\r
                        width: 90%;\r
                        display: flex;\r
                        align-items: center;\r
\r
                        .range {\r
                            -webkit-appearance: none;\r
                            width: 100%;\r
                            height: 6px;\r
                            background: #d3d3d3;\r
                            border-radius: 5px;\r
                            outline: none;\r
                            opacity: 0.7;\r
                            transition: opacity 0.2s;\r
\r
                            &.overflow {\r
                                background-color: red;\r
                            }\r
                        }\r
\r
                        .range:hover {\r
                            opacity: 1;\r
                        }\r
\r
                        .range::-webkit-slider-thumb {\r
                            -webkit-appearance: none;\r
                            appearance: none;\r
                            width: 14px;\r
                            height: 14px;\r
                            border-radius: 50%;\r
                            background: rgb(51, 122, 183);\r
                            cursor: pointer;\r
                        }\r
\r
                        .range::-moz-range-thumb {\r
                            width: 14px;\r
                            height: 14px;\r
                            border-radius: 50%;\r
                            background: rgb(51, 122, 183);\r
                            cursor: pointer;\r
                        }\r
                    }\r
\r
                    .floatLine {\r
                        .copy {\r
                            display: none;\r
                        }\r
                    }\r
\r
                    .copy {\r
                        grid-column: 4;\r
                        display: grid;\r
                        align-items: center;\r
                        justify-items: center;\r
                        cursor: pointer;\r
                        img {\r
                            height: 100%;\r
                        }\r
                    }\r
                }\r
\r
                .color3Line {\r
                    padding-left: $line-padding-left;\r
                    display: grid;\r
\r
                    .firstLine {\r
                        height: 30px;\r
                        display: grid;\r
                        grid-template-columns: 1fr auto 20px;\r
\r
                        .label {\r
                            grid-column: 1;\r
                            display: flex;\r
                            align-items: center;\r
                        }\r
\r
                        .color3 {\r
                            grid-column: 2;\r
                            width: 50px;\r
\r
                            display: flex;\r
                            align-items: center;\r
\r
                            input[type="color"] {\r
                                -webkit-appearance: none;\r
                                border: 1px solid rgba(255, 255, 255, 0.5);\r
                                padding: 0;\r
                                width: 30px;\r
                                height: 20px;\r
                            }\r
                            input[type="color"]::-webkit-color-swatch-wrapper {\r
                                padding: 0;\r
                            }\r
                            input[type="color"]::-webkit-color-swatch {\r
                                border: none;\r
                            }\r
\r
                            input {\r
                                margin-right: 5px;\r
                            }\r
                        }\r
\r
                        .expand {\r
                            grid-column: 3;\r
                            display: grid;\r
                            align-items: center;\r
                            justify-items: center;\r
                            cursor: pointer;\r
                        }\r
\r
                        .copy {\r
                            grid-column: 4;\r
                            display: grid;\r
                            align-items: center;\r
                            justify-items: center;\r
                            cursor: pointer;\r
                            img {\r
                                height: 100%;\r
                            }\r
                        }\r
                    }\r
\r
                    .secondLine {\r
                        display: grid;\r
                        padding-right: 5px;\r
                        border-left: 1px solid rgb(51, 122, 183);\r
\r
                        .numeric {\r
                            display: grid;\r
                            grid-template-columns: 1fr auto;\r
                        }\r
\r
                        .numeric-label {\r
                            text-align: right;\r
                            grid-column: 1;\r
                            display: flex;\r
                            align-items: center;\r
                            justify-self: right;\r
                            margin-right: 10px;\r
                        }\r
\r
                        .numeric-value {\r
                            width: 120px;\r
                            grid-column: 2;\r
                            display: flex;\r
                            align-items: center;\r
                            border: 1px solid rgb(51, 122, 183);\r
                        }\r
                    }\r
                }\r
\r
                .listLine {\r
                    padding-left: $line-padding-left;\r
                    height: 30px;\r
                    display: grid;\r
                    grid-template-columns: 1fr auto 20px 10px;\r
\r
                    .label {\r
                        grid-column: 1;\r
                        display: flex;\r
                        align-items: center;\r
                    }\r
\r
                    .options {\r
                        grid-column: 2;\r
\r
                        display: flex;\r
                        align-items: center;\r
                        margin-right: 5px;\r
\r
                        select {\r
                            width: 115px;\r
                        }\r
                    }\r
\r
                    .copy {\r
                        grid-column: 3;\r
                        display: grid;\r
                        align-items: center;\r
                        justify-items: center;\r
                        cursor: pointer;\r
                        img {\r
                            height: 100%;\r
                        }\r
                    }\r
                }\r
\r
                .paneContainer {\r
                    margin-top: 3px;\r
                    display: grid;\r
                    grid-template-rows: 100%;\r
                    grid-template-columns: 100%;\r
\r
                    .paneList {\r
                        border-left: 3px solid transparent;\r
                    }\r
\r
                    &:hover {\r
                        .paneList {\r
                            border-left: 3px solid rgba(51, 122, 183, 0.8);\r
                        }\r
\r
                        .paneContainer-content {\r
                            .header {\r
                                .title {\r
                                    border-left: 3px solid rgb(51, 122, 183);\r
                                }\r
                            }\r
                        }\r
                    }\r
\r
                    .paneContainer-highlight-border {\r
                        grid-row: 1;\r
                        grid-column: 1;\r
                        opacity: 1;\r
                        border: 3px solid red;\r
                        margin-bottom: -5px;\r
                        z-index: 100;\r
                        transition: opacity 250ms;\r
                        pointer-events: none;\r
\r
                        &.transparent {\r
                            opacity: 0;\r
                        }\r
                    }\r
\r
                    .paneContainer-content {\r
                        grid-row: 1;\r
                        grid-column: 1;\r
\r
                        .header {\r
                            display: grid;\r
                            grid-template-columns: 1fr auto;\r
                            background: #555555;\r
                            height: 30px;\r
                            padding-right: 5px;\r
                            cursor: pointer;\r
\r
                            .title {\r
                                border-left: 3px solid transparent;\r
                                padding-left: 5px;\r
                                grid-column: 1;\r
                                display: flex;\r
                                align-items: center;\r
                            }\r
\r
                            .collapse {\r
                                grid-column: 2;\r
                                display: flex;\r
                                align-items: center;\r
                                justify-items: center;\r
                                transform-origin: center;\r
\r
                                &.closed {\r
                                    transform: rotate(180deg);\r
                                }\r
                            }\r
                        }\r
\r
                        .paneList > div:not(:last-child) {\r
                            border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);\r
                        }\r
\r
                        .fragment > div:not(:last-child) {\r
                            border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);\r
                        }\r
                    }\r
                }\r
            }\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const R=T},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/scss/performanceViewer.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>b});var h=d("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),x=d.n(h),A=d("../../../../node_modules/css-loader/dist/runtime/api.js"),S=d.n(A),E=S()(x());E.push([m.id,`#performance-viewer {
  display: grid;
  height: 100%;
  width: 100%;
  grid-template-columns: 300px 1fr;
  font-family: "acumin-pro";
}
#performance-viewer .performancePlayheadButton {
  grid-area: liveButton;
  height: 30px;
  width: 100px;
  justify-self: right;
  background-color: #dcdfe1;
  color: #2e3f47;
  outline: 2px #2e3f47;
  margin: 5px;
  position: absolute;
  top: 10px;
  right: 10px;
}
#performance-viewer #performance-viewer-sidebar {
  display: flex;
  flex-direction: column;
  overflow-y: scroll;
  border: 2px solid gray;
}
#performance-viewer #performance-viewer-sidebar .sidebar-item {
  display: grid;
  width: 100%;
  height: 30px;
  font-size: 14px;
  padding: 2.5px 0px;
  align-items: center;
}
#performance-viewer #performance-viewer-sidebar .header {
  color: white;
  grid-template-columns: 10px 9fr 1fr 10px;
}
#performance-viewer #performance-viewer-sidebar .header .category {
  grid-column: 2;
}
#performance-viewer #performance-viewer-sidebar .header .value {
  grid-column: 3;
}
#performance-viewer #performance-viewer-sidebar .version-header {
  background-color: #2e3f47;
  color: white;
  grid-template-columns: 10px 1fr 1fr 10px;
  font-size: 14px;
  height: 35px;
}
#performance-viewer #performance-viewer-sidebar .version-header .category {
  grid-column: 2;
}
#performance-viewer #performance-viewer-sidebar .version-header .value {
  grid-column: 3;
  display: flex;
  justify-content: end;
}
#performance-viewer #performance-viewer-sidebar .category-header {
  background-color: #4a5960;
  text-transform: uppercase;
  font-size: 14px;
  height: 30px;
}
#performance-viewer #performance-viewer-sidebar .category-header .checkBoxLine {
  color: #dcdfe1;
}
#performance-viewer #performance-viewer-sidebar .measure {
  color: black;
  grid-template-columns: 18px 6fr 1fr;
  font-family: "acumin-pro-condensed";
}
#performance-viewer #performance-viewer-sidebar .measure .category {
  display: grid;
  grid-template-columns: 18px 7px 18px 10px 1fr;
  grid-column: 2;
  align-items: center;
}
#performance-viewer #performance-viewer-sidebar .measure .category .color-picker {
  grid-column: 3;
}
#performance-viewer #performance-viewer-sidebar .measure .category .sidebar-item-label {
  grid-column: 5;
}
#performance-viewer #performance-viewer-sidebar .measure .value {
  grid-column: 3;
}
#performance-viewer #performance-viewer-sidebar .measure:nth-child(odd) {
  background-color: #dcdfe1;
}
#performance-viewer #performance-viewer-sidebar .measure:nth-child(even) {
  background-color: #ebedee;
}
#performance-viewer #performance-viewer-sidebar .checkBoxLine {
  color: #4a5960;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
#performance-viewer #performance-viewer-sidebar .checkBoxLine .disabled {
  color: lightgray;
}
#performance-viewer #performance-viewer-sidebar .color-picker {
  width: 100%;
}
#performance-viewer #performance-viewer-sidebar .color-picker .color-rect {
  height: 18px;
  width: 18px;
  cursor: pointer;
}
#performance-viewer #performance-viewer-sidebar .color-picker .color-picker-cover {
  position: fixed;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 100;
}
#performance-viewer #performance-viewer-sidebar .color-picker .color-picker-float {
  position: absolute;
}
#performance-viewer #performance-viewer-sidebar .color-picker .color-picker-float .color-picker-container {
  width: 200px;
}`,"",{version:3,sources:["webpack://./../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/scss/performanceViewer.scss"],names:[],mappings:"AAGA;EACI,aAAA;EACA,YAAA;EACA,WAAA;EACA,gCAAA;EACA,yBAAA;AAFJ;AAII;EACI,qBAAA;EACA,YAZO;EAaP,YAAA;EACA,mBAAA;EACA,yBAAA;EACA,cAAA;EACA,oBAAA;EACA,WAAA;EACA,kBAAA;EACA,SAAA;EACA,WAAA;AAFR;AAKI;EACI,aAAA;EACA,sBAAA;EACA,kBAAA;EAEA,sBAAA;AAJR;AAMQ;EACI,aAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,kBAAA;EACA,mBAAA;AAJZ;AAOQ;EACI,YAAA;EACA,wCAAA;AALZ;AAOY;EACI,cAAA;AALhB;AAQY;EACI,cAAA;AANhB;AAUQ;EACI,yBAAA;EACA,YAAA;EACA,wCAAA;EACA,eAAA;EACA,YAAA;AARZ;AAUY;EACI,cAAA;AARhB;AAWY;EACI,cAAA;EACA,aAAA;EACA,oBAAA;AAThB;AAcQ;EACI,yBAAA;EACA,yBAAA;EACA,eAAA;EACA,YAAA;AAZZ;AAcY;EACI,cAAA;AAZhB;AAgBQ;EACI,YAAA;EACA,mCAAA;EACA,mCAAA;AAdZ;AAgBY;EACI,aAAA;EACA,6CAAA;EACA,cAAA;EACA,mBAAA;AAdhB;AAgBgB;EACI,cAAA;AAdpB;AAiBgB;EACI,cAAA;AAfpB;AAmBY;EACI,cAAA;AAjBhB;AAsBQ;EACI,yBAAA;AApBZ;AAwBQ;EACI,yBAAA;AAtBZ;AAyBQ;EACI,cAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;AAvBZ;AAwBY;EACI,gBAAA;AAtBhB;AA0BQ;EACI,WAAA;AAxBZ;AA0BY;EACI,YArIH;EAsIG,WAtIH;EAuIG,eAAA;AAxBhB;AA2BY;EACI,eAAA;EACA,QAAA;EACA,UAAA;EACA,WAAA;EACA,SAAA;EACA,YAAA;AAzBhB;AA4BY;EACI,kBAAA;AA1BhB;AA4BgB;EACI,YAAA;AA1BpB",sourcesContent:[`$buttonHeight: 30px;\r
$squareSize: 18px;\r
\r
#performance-viewer {\r
    display: grid;\r
    height: 100%;\r
    width: 100%;\r
    grid-template-columns: 300px 1fr;\r
    font-family: "acumin-pro";\r
\r
    .performancePlayheadButton {\r
        grid-area: liveButton;\r
        height: $buttonHeight;\r
        width: 100px;\r
        justify-self: right;\r
        background-color: #dcdfe1;\r
        color: #2e3f47;\r
        outline: 2px #2e3f47;\r
        margin: 5px;\r
        position: absolute;\r
        top: 10px;\r
        right: 10px;\r
    }\r
\r
    #performance-viewer-sidebar {\r
        display: flex;\r
        flex-direction: column;\r
        overflow-y: scroll;\r
\r
        border: 2px solid gray;\r
\r
        .sidebar-item {\r
            display: grid;\r
            width: 100%;\r
            height: 30px;\r
            font-size: 14px;\r
            padding: 2.5px 0px;\r
            align-items: center;\r
        }\r
\r
        .header {\r
            color: white;\r
            grid-template-columns: 10px 9fr 1fr 10px;\r
\r
            .category {\r
                grid-column: 2;\r
            }\r
\r
            .value {\r
                grid-column: 3;\r
            }\r
        }\r
\r
        .version-header {\r
            background-color: #2e3f47;\r
            color: white;\r
            grid-template-columns: 10px 1fr 1fr 10px;\r
            font-size: 14px;\r
            height: 35px; // with padding, we get 40px\r
\r
            .category {\r
                grid-column: 2;\r
            }\r
\r
            .value {\r
                grid-column: 3;\r
                display: flex;\r
                justify-content: end;\r
            }\r
        }\r
\r
        // mid-dark color\r
        .category-header {\r
            background-color: #4a5960;\r
            text-transform: uppercase;\r
            font-size: 14px;\r
            height: 30px;\r
\r
            .checkBoxLine {\r
                color: #dcdfe1;\r
            }\r
        }\r
\r
        .measure {\r
            color: black;\r
            grid-template-columns: $squareSize 6fr 1fr;\r
            font-family: "acumin-pro-condensed";\r
\r
            .category {\r
                display: grid;\r
                grid-template-columns: $squareSize 7px $squareSize 10px 1fr;\r
                grid-column: 2;\r
                align-items: center;\r
\r
                .color-picker {\r
                    grid-column: 3;\r
                }\r
\r
                .sidebar-item-label {\r
                    grid-column: 5;\r
                }\r
            }\r
\r
            .value {\r
                grid-column: 3;\r
            }\r
        }\r
\r
        //darker color\r
        .measure:nth-child(odd) {\r
            background-color: #dcdfe1;\r
        }\r
\r
        // lighter color\r
        .measure:nth-child(even) {\r
            background-color: #ebedee;\r
        }\r
\r
        .checkBoxLine {\r
            color: #4a5960;\r
            width: 100%;\r
            height: 100%;\r
            display: flex;\r
            justify-content: center;\r
            align-items: center;\r
            .disabled {\r
                color: lightgray;\r
            }\r
        }\r
\r
        .color-picker {\r
            width: 100%;\r
\r
            .color-rect {\r
                height: $squareSize;\r
                width: $squareSize;\r
                cursor: pointer;\r
            }\r
\r
            .color-picker-cover {\r
                position: fixed;\r
                top: 0px;\r
                right: 0px;\r
                bottom: 0px;\r
                left: 0px;\r
                z-index: 100;\r
            }\r
\r
            .color-picker-float {\r
                position: absolute;\r
\r
                .color-picker-container {\r
                    width: 200px;\r
                }\r
            }\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const b=E},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/bottomBar.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>b});var h=d("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),x=d.n(h),A=d("../../../../node_modules/css-loader/dist/runtime/api.js"),S=d.n(A),E=S()(x());E.push([m.id,`#bottom-bar {
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 10px 210px 10px 1fr 10px 61px 10px;
}
#bottom-bar #bottom-bar-total {
  grid-row: 1;
  grid-column: 6;
  color: white;
  background: #222222;
  height: 25px;
  align-self: center;
  font-size: 12pt;
}
#bottom-bar #bottom-bar-total #clip-range {
  width: 100%;
}
#bottom-bar .control-button .control-button-image {
  display: unset;
}
#bottom-bar .control-button .control-button-hover-image {
  display: none;
}
#bottom-bar .control-button:hover {
  cursor: pointer;
}
#bottom-bar .control-button:hover .control-button-image {
  display: none;
}
#bottom-bar .control-button:hover .control-button-hover-image {
  display: unset;
}
#bottom-bar .control-button:active {
  transform-origin: 50% 50%;
  transform: scale(0.96);
}
#bottom-bar #media-player {
  grid-row: 1;
  grid-column: 2;
  display: grid;
  align-self: center;
  justify-self: center;
  grid-template-rows: 100%;
  grid-template-columns: 23px 23px 23px 23px 23px 23px 23px;
}
#bottom-bar #media-player #start-key {
  grid-row: 1;
  grid-column: 1;
}
#bottom-bar #media-player #prev-frame {
  grid-row: 1;
  grid-column: 2;
}
#bottom-bar #media-player #first-key {
  grid-row: 1;
  grid-column: 3;
}
#bottom-bar #media-player #rev-key {
  grid-row: 1;
  grid-column: 4;
}
#bottom-bar #media-player #fwd-key {
  grid-row: 1;
  grid-column: 5;
}
#bottom-bar #media-player #next-key {
  grid-row: 1;
  grid-column: 6;
}
#bottom-bar #media-player #next-frame {
  grid-row: 1;
  grid-column: 7;
}
#bottom-bar #media-player #end-key {
  grid-row: 1;
  grid-column: 8;
}
#bottom-bar #range-selector {
  grid-row: 1;
  grid-column: 4;
  background: #222222;
  width: 100%;
  height: calc(100% - 20px);
  margin: 10px 0;
  position: relative;
}
#bottom-bar #range-selector #range-scrollbar {
  position: absolute;
  left: 2px;
  top: 2px;
  right: 2px;
  bottom: 2px;
  background: #666666;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 20px auto 1fr auto 20px;
  color: #222222;
  font-family: "acumin-pro-condensed";
  font-size: 14px;
  min-width: 70px;
}
#bottom-bar #range-selector #range-scrollbar #left-handle {
  grid-row: 1;
  grid-column: 1;
}
#bottom-bar #range-selector #range-scrollbar #right-handle {
  grid-row: 1;
  grid-column: 5;
}
#bottom-bar #range-selector #range-scrollbar #from-key {
  grid-row: 1;
  grid-column: 2;
  align-self: center;
  justify-self: center;
  user-select: none;
  pointer-events: none;
}
#bottom-bar #range-selector #range-scrollbar #to-key {
  grid-row: 1;
  grid-column: 4;
  align-self: center;
  justify-self: center;
  user-select: none;
  pointer-events: none;
}
#bottom-bar #range-selector #range-scrollbar .handle {
  width: 20px;
  align-self: center;
  justify-self: center;
  cursor: pointer;
  user-select: none;
}
#bottom-bar #range-selector #range-scrollbar .handle img {
  pointer-events: none;
}`,"",{version:3,sources:["webpack://./../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/bottomBar.scss"],names:[],mappings:"AAAA;EACI,aAAA;EACA,wBAAA;EACA,yDAAA;AACJ;AACI;EACI,WAAA;EACA,cAAA;EACA,YAAA;EACA,mBAAA;EACA,YAAA;EACA,kBAAA;EACA,eAAA;AACR;AACQ;EACI,WAAA;AACZ;AAIQ;EACI,cAAA;AAFZ;AAKQ;EACI,aAAA;AAHZ;AAMQ;EACI,eAAA;AAJZ;AAMY;EACI,aAAA;AAJhB;AAOY;EACI,cAAA;AALhB;AASQ;EACI,yBAAA;EACA,sBAAA;AAPZ;AAWI;EACI,WAAA;EACA,cAAA;EACA,aAAA;EACA,kBAAA;EACA,oBAAA;EACA,wBAAA;EACA,yDAAA;AATR;AAWQ;EACI,WAAA;EACA,cAAA;AATZ;AAYQ;EACI,WAAA;EACA,cAAA;AAVZ;AAaQ;EACI,WAAA;EACA,cAAA;AAXZ;AAcQ;EACI,WAAA;EACA,cAAA;AAZZ;AAeQ;EACI,WAAA;EACA,cAAA;AAbZ;AAgBQ;EACI,WAAA;EACA,cAAA;AAdZ;AAiBQ;EACI,WAAA;EACA,cAAA;AAfZ;AAkBQ;EACI,WAAA;EACA,cAAA;AAhBZ;AAoBI;EACI,WAAA;EACA,cAAA;EACA,mBAAA;EACA,WAAA;EACA,yBAAA;EACA,cAAA;EACA,kBAAA;AAlBR;AAoBQ;EACI,kBAAA;EACA,SAAA;EACA,QAAA;EACA,UAAA;EACA,WAAA;EACA,mBAAA;EACA,aAAA;EACA,wBAAA;EACA,8CAAA;EACA,cAAA;EACA,mCAAA;EACA,eAAA;EACA,eAAA;AAlBZ;AAoBY;EACI,WAAA;EACA,cAAA;AAlBhB;AAqBY;EACI,WAAA;EACA,cAAA;AAnBhB;AAsBY;EACI,WAAA;EACA,cAAA;EACA,kBAAA;EACA,oBAAA;EACA,iBAAA;EACA,oBAAA;AApBhB;AAuBY;EACI,WAAA;EACA,cAAA;EACA,kBAAA;EACA,oBAAA;EACA,iBAAA;EACA,oBAAA;AArBhB;AAwBY;EACI,WAAA;EACA,kBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;AAtBhB;AAwBgB;EACI,oBAAA;AAtBpB",sourcesContent:[`#bottom-bar {\r
    display: grid;\r
    grid-template-rows: 100%;\r
    grid-template-columns: 10px 210px 10px 1fr 10px 61px 10px;\r
\r
    #bottom-bar-total {\r
        grid-row: 1;\r
        grid-column: 6;\r
        color: white;\r
        background: #222222;\r
        height: 25px;\r
        align-self: center;\r
        font-size: 12pt;\r
\r
        #clip-range {\r
            width: 100%;\r
        }\r
    }\r
\r
    .control-button {\r
        .control-button-image {\r
            display: unset;\r
        }\r
\r
        .control-button-hover-image {\r
            display: none;\r
        }\r
\r
        &:hover {\r
            cursor: pointer;\r
\r
            .control-button-image {\r
                display: none;\r
            }\r
\r
            .control-button-hover-image {\r
                display: unset;\r
            }\r
        }\r
\r
        &:active {\r
            transform-origin: 50% 50%;\r
            transform: scale(0.96);\r
        }\r
    }\r
\r
    #media-player {\r
        grid-row: 1;\r
        grid-column: 2;\r
        display: grid;\r
        align-self: center;\r
        justify-self: center;\r
        grid-template-rows: 100%;\r
        grid-template-columns: 23px 23px 23px 23px 23px 23px 23px;\r
\r
        #start-key {\r
            grid-row: 1;\r
            grid-column: 1;\r
        }\r
\r
        #prev-frame {\r
            grid-row: 1;\r
            grid-column: 2;\r
        }\r
\r
        #first-key {\r
            grid-row: 1;\r
            grid-column: 3;\r
        }\r
\r
        #rev-key {\r
            grid-row: 1;\r
            grid-column: 4;\r
        }\r
\r
        #fwd-key {\r
            grid-row: 1;\r
            grid-column: 5;\r
        }\r
\r
        #next-key {\r
            grid-row: 1;\r
            grid-column: 6;\r
        }\r
\r
        #next-frame {\r
            grid-row: 1;\r
            grid-column: 7;\r
        }\r
\r
        #end-key {\r
            grid-row: 1;\r
            grid-column: 8;\r
        }\r
    }\r
\r
    #range-selector {\r
        grid-row: 1;\r
        grid-column: 4;\r
        background: #222222;\r
        width: 100%;\r
        height: calc(100% - 20px);\r
        margin: 10px 0;\r
        position: relative;\r
\r
        #range-scrollbar {\r
            position: absolute;\r
            left: 2px;\r
            top: 2px;\r
            right: 2px;\r
            bottom: 2px;\r
            background: #666666;\r
            display: grid;\r
            grid-template-rows: 100%;\r
            grid-template-columns: 20px auto 1fr auto 20px;\r
            color: #222222;\r
            font-family: "acumin-pro-condensed";\r
            font-size: 14px;\r
            min-width: 70px;\r
\r
            #left-handle {\r
                grid-row: 1;\r
                grid-column: 1;\r
            }\r
\r
            #right-handle {\r
                grid-row: 1;\r
                grid-column: 5;\r
            }\r
\r
            #from-key {\r
                grid-row: 1;\r
                grid-column: 2;\r
                align-self: center;\r
                justify-self: center;\r
                user-select: none;\r
                pointer-events: none;\r
            }\r
\r
            #to-key {\r
                grid-row: 1;\r
                grid-column: 4;\r
                align-self: center;\r
                justify-self: center;\r
                user-select: none;\r
                pointer-events: none;\r
            }\r
\r
            .handle {\r
                width: 20px;\r
                align-self: center;\r
                justify-self: center;\r
                cursor: pointer;\r
                user-select: none;\r
\r
                img {\r
                    pointer-events: none;\r
                }\r
            }\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const b=E},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/canvas.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>b});var h=d("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),x=d.n(h),A=d("../../../../node_modules/css-loader/dist/runtime/api.js"),S=d.n(A),E=S()(x());E.push([m.id,`#canvas-zone {
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 30px 1fr 10px 40px;
  overflow: hidden;
  position: relative;
}
#canvas-zone #graph {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  height: 100%;
  background: #222222;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 100%;
  overflow: hidden;
  position: relative;
}
#canvas-zone #graph #svg-graph-grid {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
}
#canvas-zone #graph #svg-graph-grid:focus {
  outline: none;
}
#canvas-zone #graph #svg-graph-horizontal {
  grid-column: 1;
  grid-row: 1;
  margin-left: 40px;
  width: calc(100% - 40px);
  height: 100%;
  pointer-events: none;
  z-index: 1;
}
#canvas-zone #graph #svg-graph-horizontal:focus {
  outline: none;
}
#canvas-zone #graph #dark-rectangle {
  grid-column: 1;
  grid-row: 1;
  margin-left: 40px;
  width: calc(100% - 40px);
  height: 100%;
  background: #111111;
  opacity: 0.2;
  pointer-events: none;
  position: absolute;
}
#canvas-zone #graph #block-rectangle {
  grid-column: 1;
  grid-row: 1;
  width: 40px;
  height: 100%;
  background: #222222;
  z-index: 1;
}
#canvas-zone #graph #svg-graph-curves {
  grid-column: 1;
  grid-row: 1;
  margin-left: 40px;
  width: calc(100% - 40px);
  height: 100%;
  z-index: 2;
}
#canvas-zone #graph #svg-graph-curves:focus {
  outline: none;
}
#canvas-zone #graph #selection-rectangle {
  grid-column: 1;
  grid-row: 1;
  width: calc(100% - 40px);
  height: 100%;
  pointer-events: none;
  position: absolute;
  left: 40px;
  visibility: hidden;
  border: 1px dashed white;
}
#canvas-zone #range-frame-bar {
  grid-column: 1;
  grid-row: 4;
  width: 100%;
  height: 100%;
  background: #222222;
  pointer-events: none;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 100%;
  pointer-events: none;
  user-select: none;
}
#canvas-zone #range-frame-bar #svg-range-frames {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  height: 100%;
}
#canvas-zone #frame-bar {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  height: 100%;
  background: #222222;
  pointer-events: none;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 40px 1fr;
}
#canvas-zone #frame-bar #angle-unit {
  grid-column: 1;
  grid-row: 1;
  background: #111111;
}
#canvas-zone #frame-bar #frames {
  grid-column: 1/3;
  grid-row: 1;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 100%;
}
#canvas-zone #frame-bar #frames #svg-frames {
  margin-left: 40px;
  grid-column: 1;
  grid-row: 1;
  width: calc(100% - 40px);
  height: 100%;
}
#canvas-zone #play-head-control {
  grid-column: 1;
  grid-row: 1;
  position: absolute;
  height: 30px;
  left: 40px;
  width: calc(100% - 40px);
}
#canvas-zone #play-head-control-2 {
  grid-column: 1;
  grid-row: 4;
  position: absolute;
  height: 30px;
  left: 0px;
  width: 100%;
}
#canvas-zone #play-head {
  grid-column: 1;
  grid-row: 1/3;
  position: absolute;
  top: 0;
  height: calc(100% - 5px);
  width: 22px;
  margin-left: 40px;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 22px 1fr;
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 3;
}
#canvas-zone #play-head #play-head-bar {
  grid-row: 2;
  grid-column: 1;
  justify-self: center;
  width: 1.5px;
  background: #ffffff;
  height: 100%;
  pointer-events: none;
}
#canvas-zone #play-head #play-head-circle {
  grid-row: 1;
  grid-column: 1;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #ffffff;
  font-family: "acumin-pro-condensed";
  font-size: 8pt;
  display: grid;
  align-content: center;
  justify-content: center;
  color: #555555;
  cursor: pointer;
}
#canvas-zone #angle-mode {
  grid-column: 1;
  grid-row: 1;
  width: 40px;
  height: 100%;
  z-index: 1;
  background: #222222;
}`,"",{version:3,sources:["webpack://./../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/canvas.scss"],names:[],mappings:"AAAA;EACI,aAAA;EACA,2BAAA;EACA,sCAAA;EACA,gBAAA;EACA,kBAAA;AACJ;AACI;EACI,cAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,aAAA;EACA,2BAAA;EACA,wBAAA;EACA,gBAAA;EACA,kBAAA;AACR;AACQ;EACI,cAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,oBAAA;EACA,UAAA;AACZ;AACY;EACI,aAAA;AAChB;AAGQ;EACI,cAAA;EACA,WAAA;EACA,iBAAA;EACA,wBAAA;EACA,YAAA;EACA,oBAAA;EACA,UAAA;AADZ;AAGY;EACI,aAAA;AADhB;AAKQ;EACI,cAAA;EACA,WAAA;EACA,iBAAA;EACA,wBAAA;EACA,YAAA;EACA,mBAAA;EACA,YAAA;EACA,oBAAA;EACA,kBAAA;AAHZ;AAMQ;EACI,cAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,UAAA;AAJZ;AAOQ;EACI,cAAA;EACA,WAAA;EACA,iBAAA;EACA,wBAAA;EACA,YAAA;EACA,UAAA;AALZ;AAOY;EACI,aAAA;AALhB;AASQ;EACI,cAAA;EACA,WAAA;EACA,wBAAA;EACA,YAAA;EACA,oBAAA;EACA,kBAAA;EACA,UAAA;EACA,kBAAA;EAEA,wBAAA;AARZ;AAYI;EACI,cAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,oBAAA;EACA,aAAA;EACA,wBAAA;EACA,2BAAA;EACA,oBAAA;EACA,iBAAA;AAVR;AAYQ;EACI,cAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;AAVZ;AAcI;EACI,cAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,oBAAA;EAEA,aAAA;EACA,wBAAA;EACA,+BAAA;AAbR;AAeQ;EACI,cAAA;EACA,WAAA;EACA,mBAAA;AAbZ;AAgBQ;EACI,gBAAA;EAEA,WAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,wBAAA;EACA,2BAAA;AAfZ;AAiBY;EACI,iBAAA;EACA,cAAA;EACA,WAAA;EACA,wBAAA;EACA,YAAA;AAfhB;AAoBI;EACI,cAAA;EACA,WAAA;EACA,kBAAA;EACA,YAAA;EACA,UAAA;EACA,wBAAA;AAlBR;AAqBI;EACI,cAAA;EACA,WAAA;EACA,kBAAA;EACA,YAAA;EACA,SAAA;EACA,WAAA;AAnBR;AAsBI;EACI,cAAA;EACA,aAAA;EACA,kBAAA;EACA,MAAA;EACA,wBAAA;EACA,WAAA;EACA,iBAAA;EACA,aAAA;EACA,2BAAA;EACA,4BAAA;EACA,2BAAA;EACA,oBAAA;EACA,UAAA;AApBR;AAsBQ;EACI,WAAA;EACA,cAAA;EACA,oBAAA;EACA,YAAA;EACA,mBAAA;EACA,YAAA;EACA,oBAAA;AApBZ;AAuBQ;EACI,WAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,mBAAA;EACA,mCAAA;EACA,cAAA;EACA,aAAA;EACA,qBAAA;EACA,uBAAA;EACA,cAAA;EACA,eAAA;AArBZ;AAyBI;EACI,cAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,mBAAA;AAvBR",sourcesContent:[`#canvas-zone {\r
    display: grid;\r
    grid-template-columns: 100%;\r
    grid-template-rows: 30px 1fr 10px 40px;\r
    overflow: hidden;\r
    position: relative;\r
\r
    #graph {\r
        grid-column: 1;\r
        grid-row: 2;\r
        width: 100%;\r
        height: 100%;\r
        background: #222222;\r
        display: grid;\r
        grid-template-columns: 100%;\r
        grid-template-rows: 100%;\r
        overflow: hidden;\r
        position: relative;\r
\r
        #svg-graph-grid {\r
            grid-column: 1;\r
            grid-row: 1;\r
            width: 100%;\r
            height: 100%;\r
            pointer-events: none;\r
            z-index: 1;\r
\r
            &:focus {\r
                outline: none;\r
            }\r
        }\r
\r
        #svg-graph-horizontal {\r
            grid-column: 1;\r
            grid-row: 1;\r
            margin-left: 40px;\r
            width: calc(100% - 40px);\r
            height: 100%;\r
            pointer-events: none;\r
            z-index: 1;\r
\r
            &:focus {\r
                outline: none;\r
            }\r
        }\r
\r
        #dark-rectangle {\r
            grid-column: 1;\r
            grid-row: 1;\r
            margin-left: 40px;\r
            width: calc(100% - 40px);\r
            height: 100%;\r
            background: #111111;\r
            opacity: 0.2;\r
            pointer-events: none;\r
            position: absolute;\r
        }\r
\r
        #block-rectangle {\r
            grid-column: 1;\r
            grid-row: 1;\r
            width: 40px;\r
            height: 100%;\r
            background: #222222;\r
            z-index: 1;\r
        }\r
\r
        #svg-graph-curves {\r
            grid-column: 1;\r
            grid-row: 1;\r
            margin-left: 40px;\r
            width: calc(100% - 40px);\r
            height: 100%;\r
            z-index: 2;\r
\r
            &:focus {\r
                outline: none;\r
            }\r
        }\r
\r
        #selection-rectangle {\r
            grid-column: 1;\r
            grid-row: 1;\r
            width: calc(100% - 40px);\r
            height: 100%;\r
            pointer-events: none;\r
            position: absolute;\r
            left: 40px;\r
            visibility: hidden;\r
\r
            border: 1px dashed white;\r
        }\r
    }\r
\r
    #range-frame-bar {\r
        grid-column: 1;\r
        grid-row: 4;\r
        width: 100%;\r
        height: 100%;\r
        background: #222222;\r
        pointer-events: none;\r
        display: grid;\r
        grid-template-rows: 100%;\r
        grid-template-columns: 100%;\r
        pointer-events: none;\r
        user-select: none;\r
\r
        #svg-range-frames {\r
            grid-column: 1;\r
            grid-row: 1;\r
            width: 100%;\r
            height: 100%;\r
        }\r
    }\r
\r
    #frame-bar {\r
        grid-column: 1;\r
        grid-row: 1;\r
        width: 100%;\r
        height: 100%;\r
        background: #222222;\r
        pointer-events: none;\r
\r
        display: grid;\r
        grid-template-rows: 100%;\r
        grid-template-columns: 40px 1fr;\r
\r
        #angle-unit {\r
            grid-column: 1;\r
            grid-row: 1;\r
            background: #111111;\r
        }\r
\r
        #frames {\r
            grid-column: 1 / 3;\r
\r
            grid-row: 1;\r
            width: 100%;\r
            height: 100%;\r
            display: grid;\r
            grid-template-rows: 100%;\r
            grid-template-columns: 100%;\r
\r
            #svg-frames {\r
                margin-left: 40px;\r
                grid-column: 1;\r
                grid-row: 1;\r
                width: calc(100% - 40px);\r
                height: 100%;\r
            }\r
        }\r
    }\r
\r
    #play-head-control {\r
        grid-column: 1;\r
        grid-row: 1;\r
        position: absolute;\r
        height: 30px;\r
        left: 40px;\r
        width: calc(100% - 40px);\r
    }\r
\r
    #play-head-control-2 {\r
        grid-column: 1;\r
        grid-row: 4;\r
        position: absolute;\r
        height: 30px;\r
        left: 0px;\r
        width: 100%;\r
    }\r
\r
    #play-head {\r
        grid-column: 1;\r
        grid-row: 1 / 3;\r
        position: absolute;\r
        top: 0;\r
        height: calc(100% - 5px);\r
        width: 22px;\r
        margin-left: 40px;\r
        display: grid;\r
        grid-template-columns: 100%;\r
        grid-template-rows: 22px 1fr;\r
        transform: translateX(-50%);\r
        pointer-events: none;\r
        z-index: 3;\r
\r
        #play-head-bar {\r
            grid-row: 2;\r
            grid-column: 1;\r
            justify-self: center;\r
            width: 1.5px;\r
            background: #ffffff;\r
            height: 100%;\r
            pointer-events: none;\r
        }\r
\r
        #play-head-circle {\r
            grid-row: 1;\r
            grid-column: 1;\r
            width: 22px;\r
            height: 22px;\r
            border-radius: 50%;\r
            background: #ffffff;\r
            font-family: "acumin-pro-condensed";\r
            font-size: 8pt;\r
            display: grid;\r
            align-content: center;\r
            justify-content: center;\r
            color: #555555;\r
            cursor: pointer;\r
        }\r
    }\r
\r
    #angle-mode {\r
        grid-column: 1;\r
        grid-row: 1;\r
        width: 40px;\r
        height: 100%;\r
        z-index: 1;\r
        background: #222222;\r
    }\r
}\r
`],sourceRoot:""}]);const b=E},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/curveEditor.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>b});var h=d("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),x=d.n(h),A=d("../../../../node_modules/css-loader/dist/runtime/api.js"),S=d.n(A),E=S()(x());E.push([m.id,`#curve-editor {
  background: #333333;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-rows: 40px calc(100% - 85px) 45px;
  grid-template-columns: 10px 210px 10px 1fr 10px;
}
#curve-editor #top-bar {
  background: #333333;
  grid-row: 1;
  grid-column: 1/6;
  width: 100%;
  height: 100%;
}
#curve-editor #bottom-bar {
  background: #333333;
  grid-row: 3;
  grid-column: 1/6;
  width: 100%;
  height: 100%;
}
#curve-editor #canvas-zone {
  grid-row: 2;
  grid-column: 4;
  width: 100%;
  height: 100%;
  background: #333333;
}
#curve-editor #sidebar {
  grid-row: 2;
  grid-column: 2;
  width: 100%;
  height: 100%;
  background: #111111;
}
#curve-editor .action-button:hover {
  background: #666666;
  color: white;
  cursor: pointer;
}
#curve-editor .action-button.active {
  background: #111111;
}
#curve-editor .action-button:active {
  transform-origin: 50% 50%;
  transform: scale(0.96);
}
#curve-editor .push-button {
  cursor: pointer;
}
#curve-editor .push-button.active {
  background: #666666;
}
#curve-editor .text-input {
  color: white;
  background: #000000;
  font-family: "acumin-pro-condensed";
  font-size: 11pt;
  border: 0;
  margin: 3px 1px;
  text-align: end;
  padding-right: 4px;
}
#curve-editor .text-input:focus {
  outline: none;
}
#curve-editor .text-input:disabled {
  background: #444444;
  border: #555555 solid 1px;
}`,"",{version:3,sources:["webpack://./../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/curveEditor.scss"],names:[],mappings:"AAAA;EACI,mBAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,+CAAA;EACA,+CAAA;AACJ;AACI;EACI,mBAAA;EACA,WAAA;EACA,gBAAA;EACA,WAAA;EACA,YAAA;AACR;AAEI;EACI,mBAAA;EACA,WAAA;EACA,gBAAA;EACA,WAAA;EACA,YAAA;AAAR;AAGI;EACI,WAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;AADR;AAII;EACI,WAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;AAFR;AAMQ;EACI,mBAAA;EACA,YAAA;EACA,eAAA;AAJZ;AAOQ;EACI,mBAAA;AALZ;AAQQ;EACI,yBAAA;EACA,sBAAA;AANZ;AAUI;EACI,eAAA;AARR;AASQ;EACI,mBAAA;AAPZ;AAWI;EACI,YAAA;EACA,mBAAA;EACA,mCAAA;EACA,eAAA;EACA,SAAA;EACA,eAAA;EACA,eAAA;EACA,kBAAA;AATR;AAWQ;EACI,aAAA;AATZ;AAYQ;EACI,mBAAA;EACA,yBAAA;AAVZ",sourcesContent:[`#curve-editor {\r
    background: #333333;\r
    width: 100%;\r
    height: 100%;\r
    display: grid;\r
    grid-template-rows: 40px calc(100% - 85px) 45px;\r
    grid-template-columns: 10px 210px 10px 1fr 10px;\r
\r
    #top-bar {\r
        background: #333333;\r
        grid-row: 1;\r
        grid-column: 1 / 6;\r
        width: 100%;\r
        height: 100%;\r
    }\r
\r
    #bottom-bar {\r
        background: #333333;\r
        grid-row: 3;\r
        grid-column: 1 / 6;\r
        width: 100%;\r
        height: 100%;\r
    }\r
\r
    #canvas-zone {\r
        grid-row: 2;\r
        grid-column: 4;\r
        width: 100%;\r
        height: 100%;\r
        background: #333333;\r
    }\r
\r
    #sidebar {\r
        grid-row: 2;\r
        grid-column: 2;\r
        width: 100%;\r
        height: 100%;\r
        background: #111111;\r
    }\r
\r
    .action-button {\r
        &:hover {\r
            background: #666666;\r
            color: white;\r
            cursor: pointer;\r
        }\r
\r
        &.active {\r
            background: #111111;\r
        }\r
\r
        &:active {\r
            transform-origin: 50% 50%;\r
            transform: scale(0.96);\r
        }\r
    }\r
\r
    .push-button {\r
        cursor: pointer;\r
        &.active {\r
            background: #666666;\r
        }\r
    }\r
\r
    .text-input {\r
        color: white;\r
        background: #000000;\r
        font-family: "acumin-pro-condensed";\r
        font-size: 11pt;\r
        border: 0;\r
        margin: 3px 1px;\r
        text-align: end;\r
        padding-right: 4px;\r
\r
        &:focus {\r
            outline: none;\r
        }\r
\r
        &:disabled {\r
            background: #444444;\r
            border: #555555 solid 1px;\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const b=E},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/sideBar.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>b});var h=d("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),x=d.n(h),A=d("../../../../node_modules/css-loader/dist/runtime/api.js"),S=d.n(A),E=S()(x());E.push([m.id,`#sideBar {
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 30px 1fr;
}
#sideBar #menu-bar {
  background: #252525;
  grid-row: 1;
  grid-column: 1;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 30px 30px 30px 30px 1fr 52px 3px;
}
#sideBar #menu-bar.small {
  grid-template-columns: 0px 0px 30px 30px 1fr 52px 3px;
}
#sideBar #menu-bar #add-animation {
  grid-row: 1;
  grid-column: 1;
}
#sideBar #menu-bar #load-animation {
  grid-row: 1;
  grid-column: 2;
}
#sideBar #menu-bar #save-animation {
  grid-row: 1;
  grid-column: 3;
}
#sideBar #menu-bar #edit-animation {
  grid-row: 1;
  grid-column: 4;
}
#sideBar #menu-bar #framerate-animation {
  grid-row: 1;
  grid-column: 6;
}
#sideBar .simple-button {
  width: 80px;
  height: 20px;
  color: white;
  font-family: "acumin-pro-condensed";
  font-size: 10pt;
  background: #444444;
  border: 0;
  line-height: 12px;
  cursor: pointer;
  align-self: center;
  justify-self: center;
  border-radius: 0;
}
#sideBar .simple-button:active {
  transform-origin: center;
  transform: scale(0.95);
}
#sideBar #save-animation-pane {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 1fr 40px auto;
}
#sideBar #save-animation-pane #save-animation-list {
  grid-row: 1;
  grid-column: 1;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding-top: 5px;
}
#sideBar #save-animation-pane #save-animation-list .save-animation-list-entry {
  height: 20px;
  margin-left: 10px;
  display: flex;
  align-content: center;
  color: white;
  font-family: "acumin-pro-condensed";
  font-size: 10pt;
  line-height: 15px;
}
#sideBar #save-animation-pane #save-animation-buttons {
  grid-row: 2;
  grid-column: 1;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 10px 1fr 10px 1fr 10px;
  align-items: center;
}
#sideBar #save-animation-pane #save-animation-buttons #save-snippet {
  grid-row: 1;
  grid-column: 2;
}
#sideBar #save-animation-pane #save-animation-buttons #save-file {
  grid-row: 1;
  grid-column: 4;
}
#sideBar #save-animation-pane #save-animation-snippet {
  grid-row: 3;
  grid-column: 1;
  width: calc(100% - 31px);
  height: 20px;
  align-content: center;
  color: white;
  font-family: "acumin-pro-condensed";
  font-size: 10pt;
  padding-left: 31px;
  background: #252525;
}
#sideBar #load-animation-pane {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: 75px 1fr;
  grid-template-rows: 10px 20px 10px 20px 10px 20px 1fr auto;
  color: white;
  font-family: "acumin-pro-condensed";
  font-size: 10pt;
}
#sideBar #load-animation-pane #load-animation-snippet-id-label {
  grid-row: 2;
  grid-column: 1;
  justify-self: end;
  margin-right: 10px;
}
#sideBar #load-animation-pane #load-animation-local-file-label {
  grid-row: 6;
  grid-column: 1;
  justify-self: end;
  margin-right: 10px;
}
#sideBar #load-animation-pane #load-snippet-id {
  grid-row: 2;
  grid-column: 2;
  margin-right: 10px;
  border: 0;
  background: #252525;
  width: 127px;
  color: white;
  font-family: "acumin-pro-condensed";
  font-size: 10pt;
}
#sideBar #load-animation-pane #load-snippet {
  grid-row: 4;
  grid-column: 2;
  width: 60px;
  justify-self: left;
}
#sideBar #load-animation-pane input[type=file] {
  display: none;
}
#sideBar #load-animation-pane #file-snippet-label {
  grid-row: 6;
  grid-column: 2;
  width: 60px;
  justify-self: left;
  text-align: center;
  line-height: 18px;
}
#sideBar #load-animation-pane #load-animation-snippet {
  grid-row: 8;
  grid-column: 1/3;
  width: calc(100% - 31px);
  height: 20px;
  align-content: center;
  color: white;
  font-family: "acumin-pro-condensed";
  font-size: 10pt;
  padding-left: 31px;
  background: #252525;
}
#sideBar #add-animation-pane {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: 75px 1fr;
  grid-template-rows: 10px 20px 10px 20px 10px 20px 10px 20px 10px 20px 10px 20px 1fr;
  color: white;
  font-family: "acumin-pro-condensed";
  font-size: 10pt;
}
#sideBar #add-animation-pane .input-text {
  border: 0;
  background: #252525;
  width: 127px;
  color: white;
  font-family: "acumin-pro-condensed";
  font-size: 10pt;
}
#sideBar #add-animation-pane .option {
  background: #252525;
  color: white;
  border: 0;
}
#sideBar #add-animation-pane #add-animation-display-name-label {
  grid-row: 2;
  grid-column: 1;
  justify-self: end;
  margin-right: 10px;
}
#sideBar #add-animation-pane #add-animation-mode-label {
  grid-row: 4;
  grid-column: 1;
  justify-self: end;
  margin-right: 10px;
}
#sideBar #add-animation-pane #add-animation-property-label {
  grid-row: 6;
  grid-column: 1;
  justify-self: end;
  margin-right: 10px;
}
#sideBar #add-animation-pane #add-animation-type-label {
  grid-row: 8;
  grid-column: 1;
  justify-self: end;
  margin-right: 10px;
}
#sideBar #add-animation-pane #add-animation-loop-mode-label {
  grid-row: 10;
  grid-column: 1;
  justify-self: end;
  margin-right: 10px;
}
#sideBar #add-animation-pane #add-animation-name {
  grid-row: 2;
  grid-column: 2;
  margin-right: 10px;
}
#sideBar #add-animation-pane #add-animation-mode {
  grid-row: 4;
  grid-column: 2;
  margin-right: 10px;
  width: calc(100% - 10px);
}
#sideBar #add-animation-pane #add-animation-property {
  grid-row: 6;
  grid-column: 2;
  margin-right: 10px;
  width: calc(100% - 10px);
}
#sideBar #add-animation-pane #add-animation-type {
  grid-row: 8;
  grid-column: 2;
  margin-right: 10px;
}
#sideBar #add-animation-pane #add-animation-loop-mode {
  grid-row: 10;
  grid-column: 2;
  margin-right: 10px;
}
#sideBar #add-animation-pane #add-animation {
  grid-row: 12;
  grid-column: 2;
  justify-self: left;
}
#sideBar #edit-animation-pane {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: 75px 1fr;
  grid-template-rows: 10px 20px 10px 20px 10px 20px 10px 20px 1fr;
  color: white;
  font-family: "acumin-pro-condensed";
  font-size: 10pt;
  background: #111111;
}
#sideBar #edit-animation-pane .input-text {
  border: 0;
  background: #252525;
  width: 127px;
  color: white;
  font-family: "acumin-pro-condensed";
  font-size: 10pt;
}
#sideBar #edit-animation-pane .option {
  background: #252525;
  color: white;
  border: 0;
}
#sideBar #edit-animation-pane #edit-animation-display-name-label {
  grid-row: 2;
  grid-column: 1;
  justify-self: end;
  margin-right: 10px;
}
#sideBar #edit-animation-pane #edit-animation-property-label {
  grid-row: 4;
  grid-column: 1;
  justify-self: end;
  margin-right: 10px;
}
#sideBar #edit-animation-pane #edit-animation-loop-mode-label {
  grid-row: 6;
  grid-column: 1;
  justify-self: end;
  margin-right: 10px;
}
#sideBar #edit-animation-pane #edit-animation-name {
  grid-row: 2;
  grid-column: 2;
  margin-right: 10px;
}
#sideBar #edit-animation-pane #edit-animation-property {
  grid-row: 4;
  grid-column: 2;
  margin-right: 10px;
}
#sideBar #edit-animation-pane #edit-animation-loop-mode {
  grid-row: 6;
  grid-column: 2;
  margin-right: 10px;
}
#sideBar #edit-animation-pane #edit-animation {
  grid-row: 8;
  grid-column: 1/3;
  display: grid;
  grid-template-columns: 50% 50%;
  grid-template-rows: 100%;
}
#sideBar #edit-animation-pane #edit-animation #edit-animation-ok {
  grid-row: 1;
  grid-column: 1;
}
#sideBar #edit-animation-pane #edit-animation #edit-animation-cancel {
  grid-row: 1;
  grid-column: 2;
}
#sideBar #animation-list {
  background: #111111;
  grid-row: 2;
  grid-column: 1;
  width: 100%;
  height: 100%;
}
#sideBar #animation-list .animation-entry {
  height: 20px;
  display: grid;
  grid-template-columns: 20px 10px 1fr 20px 20px;
  grid-template-rows: 100%;
}
#sideBar #animation-list .animation-entry.isActive {
  background: #444444;
}
#sideBar #animation-list .animation-entry .animation-active-indicator {
  grid-row: 1;
  grid-column: 1;
  display: grid;
  margin: 5px;
  padding-top: 2px;
}
#sideBar #animation-list .animation-entry .animation-chevron {
  grid-row: 1;
  grid-column: 2;
  display: grid;
  align-content: center;
  padding-top: 5px;
  cursor: pointer;
}
#sideBar #animation-list .animation-entry .animation-chevron .animation-chevron-image.collapsed {
  transform-origin: 50% 50%;
  transform: rotateZ(-90deg);
}
#sideBar #animation-list .animation-entry .animation-name {
  cursor: pointer;
  grid-row: 1;
  grid-column: 3;
  font-family: "acumin-pro-condensed";
  font-size: 10.5pt;
  color: white;
  display: grid;
  align-self: center;
  margin-left: 5px;
  user-select: none;
}
#sideBar #animation-list .animation-entry .animation-options {
  grid-row: 1;
  grid-column: 4;
}
#sideBar #animation-list .animation-entry .animation-delete {
  grid-row: 1;
  grid-column: 5;
}`,"",{version:3,sources:["webpack://./../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/sideBar.scss"],names:[],mappings:"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",sourcesContent:[`#sideBar {\r
    display: grid;\r
    grid-template-columns: 100%;\r
    grid-template-rows: 30px 1fr;\r
\r
    #menu-bar {\r
        background: #252525;\r
        grid-row: 1;\r
        grid-column: 1;\r
        width: 100%;\r
        height: 100%;\r
        display: grid;\r
        grid-template-rows: 100%;\r
        grid-template-columns: 30px 30px 30px 30px 1fr 52px 3px;\r
\r
        &.small {\r
            grid-template-columns: 0px 0px 30px 30px 1fr 52px 3px;\r
        }\r
\r
        #add-animation {\r
            grid-row: 1;\r
            grid-column: 1;\r
        }\r
\r
        #load-animation {\r
            grid-row: 1;\r
            grid-column: 2;\r
        }\r
\r
        #save-animation {\r
            grid-row: 1;\r
            grid-column: 3;\r
        }\r
\r
        #edit-animation {\r
            grid-row: 1;\r
            grid-column: 4;\r
        }\r
\r
        #framerate-animation {\r
            grid-row: 1;\r
            grid-column: 6;\r
        }\r
    }\r
\r
    .simple-button {\r
        width: 80px;\r
        height: 20px;\r
        color: white;\r
        font-family: "acumin-pro-condensed";\r
        font-size: 10pt;\r
        background: #444444;\r
        border: 0;\r
        line-height: 12px;\r
        cursor: pointer;\r
        align-self: center;\r
        justify-self: center;\r
        border-radius: 0;\r
\r
        &:active {\r
            transform-origin: center;\r
            transform: scale(0.95);\r
        }\r
    }\r
\r
    #save-animation-pane {\r
        width: 100%;\r
        height: 100%;\r
        display: grid;\r
        grid-template-columns: 100%;\r
        grid-template-rows: 1fr 40px auto;\r
\r
        #save-animation-list {\r
            grid-row: 1;\r
            grid-column: 1;\r
            width: 100%;\r
            height: 100%;\r
            display: flex;\r
            flex-direction: column;\r
            padding-top: 5px;\r
\r
            .save-animation-list-entry {\r
                height: 20px;\r
                margin-left: 10px;\r
                display: flex;\r
                align-content: center;\r
                color: white;\r
\r
                font-family: "acumin-pro-condensed";\r
                font-size: 10pt;\r
                line-height: 15px;\r
            }\r
        }\r
\r
        #save-animation-buttons {\r
            grid-row: 2;\r
            grid-column: 1;\r
            width: 100%;\r
            height: 100%;\r
            display: grid;\r
            grid-template-rows: 100%;\r
            grid-template-columns: 10px 1fr 10px 1fr 10px;\r
            align-items: center;\r
\r
            #save-snippet {\r
                grid-row: 1;\r
                grid-column: 2;\r
            }\r
\r
            #save-file {\r
                grid-row: 1;\r
                grid-column: 4;\r
            }\r
        }\r
\r
        #save-animation-snippet {\r
            grid-row: 3;\r
            grid-column: 1;\r
            width: calc(100% - 31px);\r
            height: 20px;\r
            align-content: center;\r
            color: white;\r
            font-family: "acumin-pro-condensed";\r
            font-size: 10pt;\r
            padding-left: 31px;\r
            background: #252525;\r
        }\r
    }\r
\r
    #load-animation-pane {\r
        width: 100%;\r
        height: 100%;\r
        display: grid;\r
        grid-template-columns: 75px 1fr;\r
        grid-template-rows: 10px 20px 10px 20px 10px 20px 1fr auto;\r
        color: white;\r
        font-family: "acumin-pro-condensed";\r
        font-size: 10pt;\r
\r
        #load-animation-snippet-id-label {\r
            grid-row: 2;\r
            grid-column: 1;\r
            justify-self: end;\r
            margin-right: 10px;\r
        }\r
\r
        #load-animation-local-file-label {\r
            grid-row: 6;\r
            grid-column: 1;\r
            justify-self: end;\r
            margin-right: 10px;\r
        }\r
\r
        #load-snippet-id {\r
            grid-row: 2;\r
            grid-column: 2;\r
            margin-right: 10px;\r
            border: 0;\r
            background: #252525;\r
            width: 127px;\r
            color: white;\r
            font-family: "acumin-pro-condensed";\r
            font-size: 10pt;\r
        }\r
\r
        #load-snippet {\r
            grid-row: 4;\r
            grid-column: 2;\r
            width: 60px;\r
            justify-self: left;\r
        }\r
\r
        input[type="file"] {\r
            display: none;\r
        }\r
\r
        #file-snippet-label {\r
            grid-row: 6;\r
            grid-column: 2;\r
            width: 60px;\r
            justify-self: left;\r
            text-align: center;\r
            line-height: 18px;\r
        }\r
\r
        #load-animation-snippet {\r
            grid-row: 8;\r
            grid-column: 1 / 3;\r
            width: calc(100% - 31px);\r
            height: 20px;\r
            align-content: center;\r
            color: white;\r
            font-family: "acumin-pro-condensed";\r
            font-size: 10pt;\r
            padding-left: 31px;\r
            background: #252525;\r
        }\r
    }\r
\r
    #add-animation-pane {\r
        grid-column: 1;\r
        grid-row: 2;\r
        width: 100%;\r
        height: 100%;\r
        display: grid;\r
        grid-template-columns: 75px 1fr;\r
        grid-template-rows: 10px 20px 10px 20px 10px 20px 10px 20px 10px 20px 10px 20px 1fr;\r
        color: white;\r
        font-family: "acumin-pro-condensed";\r
        font-size: 10pt;\r
\r
        .input-text {\r
            border: 0;\r
            background: #252525;\r
            width: 127px;\r
            color: white;\r
            font-family: "acumin-pro-condensed";\r
            font-size: 10pt;\r
        }\r
\r
        .option {\r
            background: #252525;\r
            color: white;\r
            border: 0;\r
        }\r
\r
        #add-animation-display-name-label {\r
            grid-row: 2;\r
            grid-column: 1;\r
            justify-self: end;\r
            margin-right: 10px;\r
        }\r
\r
        #add-animation-mode-label {\r
            grid-row: 4;\r
            grid-column: 1;\r
            justify-self: end;\r
            margin-right: 10px;\r
        }\r
\r
        #add-animation-property-label {\r
            grid-row: 6;\r
            grid-column: 1;\r
            justify-self: end;\r
            margin-right: 10px;\r
        }\r
\r
        #add-animation-type-label {\r
            grid-row: 8;\r
            grid-column: 1;\r
            justify-self: end;\r
            margin-right: 10px;\r
        }\r
\r
        #add-animation-loop-mode-label {\r
            grid-row: 10;\r
            grid-column: 1;\r
            justify-self: end;\r
            margin-right: 10px;\r
        }\r
\r
        #add-animation-name {\r
            grid-row: 2;\r
            grid-column: 2;\r
            margin-right: 10px;\r
        }\r
\r
        #add-animation-mode {\r
            grid-row: 4;\r
            grid-column: 2;\r
            margin-right: 10px;\r
            width: calc(100% - 10px);\r
        }\r
\r
        #add-animation-property {\r
            grid-row: 6;\r
            grid-column: 2;\r
            margin-right: 10px;\r
            width: calc(100% - 10px);\r
        }\r
\r
        #add-animation-type {\r
            grid-row: 8;\r
            grid-column: 2;\r
            margin-right: 10px;\r
        }\r
\r
        #add-animation-loop-mode {\r
            grid-row: 10;\r
            grid-column: 2;\r
            margin-right: 10px;\r
        }\r
\r
        #add-animation {\r
            grid-row: 12;\r
            grid-column: 2;\r
            justify-self: left;\r
        }\r
    }\r
\r
    #edit-animation-pane {\r
        grid-column: 1;\r
        grid-row: 2;\r
\r
        width: 100%;\r
        height: 100%;\r
        display: grid;\r
        grid-template-columns: 75px 1fr;\r
        grid-template-rows: 10px 20px 10px 20px 10px 20px 10px 20px 1fr;\r
        color: white;\r
        font-family: "acumin-pro-condensed";\r
        font-size: 10pt;\r
        background: #111111;\r
\r
        .input-text {\r
            border: 0;\r
            background: #252525;\r
            width: 127px;\r
            color: white;\r
            font-family: "acumin-pro-condensed";\r
            font-size: 10pt;\r
        }\r
\r
        .option {\r
            background: #252525;\r
            color: white;\r
            border: 0;\r
        }\r
\r
        #edit-animation-display-name-label {\r
            grid-row: 2;\r
            grid-column: 1;\r
            justify-self: end;\r
            margin-right: 10px;\r
        }\r
\r
        #edit-animation-property-label {\r
            grid-row: 4;\r
            grid-column: 1;\r
            justify-self: end;\r
            margin-right: 10px;\r
        }\r
\r
        #edit-animation-loop-mode-label {\r
            grid-row: 6;\r
            grid-column: 1;\r
            justify-self: end;\r
            margin-right: 10px;\r
        }\r
\r
        #edit-animation-name {\r
            grid-row: 2;\r
            grid-column: 2;\r
            margin-right: 10px;\r
        }\r
\r
        #edit-animation-property {\r
            grid-row: 4;\r
            grid-column: 2;\r
            margin-right: 10px;\r
        }\r
\r
        #edit-animation-loop-mode {\r
            grid-row: 6;\r
            grid-column: 2;\r
            margin-right: 10px;\r
        }\r
\r
        #edit-animation {\r
            grid-row: 8;\r
            grid-column: 1 / 3;\r
            display: grid;\r
            grid-template-columns: 50% 50%;\r
            grid-template-rows: 100%;\r
\r
            #edit-animation-ok {\r
                grid-row: 1;\r
                grid-column: 1;\r
            }\r
\r
            #edit-animation-cancel {\r
                grid-row: 1;\r
                grid-column: 2;\r
            }\r
        }\r
    }\r
\r
    #animation-list {\r
        background: #111111;\r
        grid-row: 2;\r
        grid-column: 1;\r
        width: 100%;\r
        height: 100%;\r
\r
        .animation-entry {\r
            height: 20px;\r
            display: grid;\r
            grid-template-columns: 20px 10px 1fr 20px 20px;\r
            grid-template-rows: 100%;\r
\r
            &.isActive {\r
                background: #444444;\r
            }\r
\r
            .animation-active-indicator {\r
                grid-row: 1;\r
                grid-column: 1;\r
                display: grid;\r
                margin: 5px;\r
                padding-top: 2px;\r
            }\r
\r
            .animation-chevron {\r
                grid-row: 1;\r
                grid-column: 2;\r
                display: grid;\r
                align-content: center;\r
                padding-top: 5px;\r
                cursor: pointer;\r
\r
                .animation-chevron-image {\r
                    &.collapsed {\r
                        transform-origin: 50% 50%;\r
                        transform: rotateZ(-90deg);\r
                    }\r
                }\r
            }\r
\r
            .animation-name {\r
                cursor: pointer;\r
                grid-row: 1;\r
                grid-column: 3;\r
                font-family: "acumin-pro-condensed";\r
                font-size: 10.5pt;\r
                color: white;\r
                display: grid;\r
                align-self: center;\r
                margin-left: 5px;\r
                user-select: none;\r
            }\r
\r
            .animation-options {\r
                grid-row: 1;\r
                grid-column: 4;\r
            }\r
\r
            .animation-delete {\r
                grid-row: 1;\r
                grid-column: 5;\r
            }\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const b=E},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/topBar.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>b});var h=d("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),x=d.n(h),A=d("../../../../node_modules/css-loader/dist/runtime/api.js"),S=d.n(A),E=S()(x());E.push([m.id,`#top-bar {
  display: grid;
  grid-template-columns: 40px 200px 75px 8px 75px 8px 40px 40px 40px 40px 40px 40px 40px 40px 1fr 40px;
  grid-template-rows: 100%;
}
#top-bar .disabled {
  opacity: 20%;
  pointer-events: none;
}
#top-bar #top-bar-logo {
  grid-row: 1;
  grid-column: 1;
}
#top-bar #top-bar-parent-name {
  grid-row: 1;
  grid-column: 2;
  font-family: "acumin-pro-condensed";
  font-size: 15pt;
  color: white;
  display: grid;
  align-content: center;
  padding-bottom: 5px;
}
#top-bar #key-frame {
  grid-row: 1;
  grid-column: 3;
  height: 24px;
  display: grid;
  align-self: center;
}
#top-bar #key-value {
  grid-row: 1;
  grid-column: 5;
  height: 24px;
  display: grid;
  align-self: center;
}
#top-bar #new-key {
  grid-row: 1;
  grid-column: 7;
}
#top-bar #frame-canvas {
  grid-row: 1;
  grid-column: 8;
}
#top-bar #flatten-tangent {
  grid-row: 1;
  grid-column: 9;
}
#top-bar #linear-tangent {
  grid-row: 1;
  grid-column: 10;
}
#top-bar #break-tangent {
  grid-row: 1;
  grid-column: 11;
}
#top-bar #unify-tangent {
  grid-row: 1;
  grid-column: 12;
}
#top-bar #step-tangent {
  grid-row: 1;
  grid-column: 13;
}`,"",{version:3,sources:["webpack://./../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/topBar.scss"],names:[],mappings:"AAAA;EACI,aAAA;EACA,oGAAA;EACA,wBAAA;AACJ;AACI;EACI,YAAA;EACA,oBAAA;AACR;AAEI;EACI,WAAA;EACA,cAAA;AAAR;AAGI;EACI,WAAA;EACA,cAAA;EACA,mCAAA;EACA,eAAA;EACA,YAAA;EACA,aAAA;EACA,qBAAA;EACA,mBAAA;AADR;AAII;EACI,WAAA;EACA,cAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;AAFR;AAKI;EACI,WAAA;EACA,cAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;AAHR;AAMI;EACI,WAAA;EACA,cAAA;AAJR;AAOI;EACI,WAAA;EACA,cAAA;AALR;AAQI;EACI,WAAA;EACA,cAAA;AANR;AASI;EACI,WAAA;EACA,eAAA;AAPR;AAUI;EACI,WAAA;EACA,eAAA;AARR;AAWI;EACI,WAAA;EACA,eAAA;AATR;AAYI;EACI,WAAA;EACA,eAAA;AAVR",sourcesContent:[`#top-bar {\r
    display: grid;\r
    grid-template-columns: 40px 200px 75px 8px 75px 8px 40px 40px 40px 40px 40px 40px 40px 40px 1fr 40px;\r
    grid-template-rows: 100%;\r
\r
    .disabled {\r
        opacity: 20%;\r
        pointer-events: none;\r
    }\r
\r
    #top-bar-logo {\r
        grid-row: 1;\r
        grid-column: 1;\r
    }\r
\r
    #top-bar-parent-name {\r
        grid-row: 1;\r
        grid-column: 2;\r
        font-family: "acumin-pro-condensed";\r
        font-size: 15pt;\r
        color: white;\r
        display: grid;\r
        align-content: center;\r
        padding-bottom: 5px;\r
    }\r
\r
    #key-frame {\r
        grid-row: 1;\r
        grid-column: 3;\r
        height: 24px;\r
        display: grid;\r
        align-self: center;\r
    }\r
\r
    #key-value {\r
        grid-row: 1;\r
        grid-column: 5;\r
        height: 24px;\r
        display: grid;\r
        align-self: center;\r
    }\r
\r
    #new-key {\r
        grid-row: 1;\r
        grid-column: 7;\r
    }\r
\r
    #frame-canvas {\r
        grid-row: 1;\r
        grid-column: 8;\r
    }\r
\r
    #flatten-tangent {\r
        grid-row: 1;\r
        grid-column: 9;\r
    }\r
\r
    #linear-tangent {\r
        grid-row: 1;\r
        grid-column: 10;\r
    }\r
\r
    #break-tangent {\r
        grid-row: 1;\r
        grid-column: 11;\r
    }\r
\r
    #unify-tangent {\r
        grid-row: 1;\r
        grid-column: 12;\r
    }\r
\r
    #step-tangent {\r
        grid-row: 1;\r
        grid-column: 13;\r
    }\r
}\r
`],sourceRoot:""}]);const b=E},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditor.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>b});var h=d("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),x=d.n(h),A=d("../../../../node_modules/css-loader/dist/runtime/api.js"),S=d.n(A),E=S()(x());E.push([m.id,`#texture-editor {
  height: 100%;
  width: 100%;
  color: white;
  background-color: #1e1e1e;
  font-family: "acumin-pro-condensed";
}
#texture-editor .icon {
  width: 40px;
  height: 40px;
}
#texture-editor .icon.button {
  background-color: #333333;
}
#texture-editor .icon.button:hover {
  background-color: #4a4a4a;
  cursor: pointer;
}
#texture-editor .icon.button.active {
  background-color: #666666;
}
#texture-editor .icon.button:active {
  background-color: #837c7c;
}
#texture-editor .has-tooltip {
  display: inline-block;
}
#texture-editor .has-tooltip .tooltip {
  visibility: hidden;
  background-color: rgb(255, 255, 255);
  z-index: 1;
  position: absolute;
  opacity: 0;
  transition: opacity 0.5s;
  line-height: normal;
  font-size: 14px;
  padding: 0px 5px;
  color: black;
}
#texture-editor .has-tooltip:hover .tooltip {
  visibility: visible;
  opacity: 1;
}
#texture-editor #properties {
  width: 100%;
  height: 40px;
  display: flex;
  align-items: center;
  font-size: 12px;
  color: white;
  user-select: none;
  background-color: #333333;
}
#texture-editor #properties .tab {
  display: inline-flex;
  line-height: 40px;
  height: 40px;
  flex-shrink: 0;
  flex-grow: 0;
  border-right: 2px solid #1e1e1e;
  background-color: #333333;
}
#texture-editor #properties #left {
  overflow: hidden;
  height: 40px;
  flex-grow: 1;
  flex-shrink: 1;
  display: flex;
  flex-wrap: wrap;
}
#texture-editor #properties #left #dimensions-tab form {
  display: flex;
}
#texture-editor #properties #left #dimensions-tab label {
  margin-left: 15px;
  font-size: 15px;
  color: #afafaf;
}
#texture-editor #properties #left #dimensions-tab label input {
  width: 40px;
  height: 24px;
  background-color: #000000;
  color: #ffffff;
  border: 0;
  font-size: 12px;
  text-align: "left";
  font-family: "acumin-pro-condensed";
  font-size: 15px;
  padding-left: 8px;
}
#texture-editor #properties #left #dimensions-tab label:last-of-type {
  margin-right: 8px;
}
#texture-editor #properties #right-tab {
  margin-right: 0;
  flex-grow: 0;
  flex-shrink: 0;
}
#texture-editor #properties #right-tab input[type=file] {
  display: none;
}
#texture-editor #properties .pixel-data {
  width: 45px;
  color: #afafaf;
  display: flex;
  justify-content: space-between;
  font-size: 15px;
}
#texture-editor #properties .pixel-data:first-of-type {
  margin-left: 15px;
}
#texture-editor #properties .pixel-data:last-of-type {
  padding-right: 15px;
}
#texture-editor #properties .pixel-data .value {
  display: inline-block;
  width: 30px;
  color: white;
}
#texture-editor #toolbar {
  position: absolute;
  top: 60px;
  left: 0;
  width: 40px;
  display: flex;
  flex-direction: column;
  justify-content: left;
}
#texture-editor #toolbar #tools {
  display: flex;
  flex-direction: column;
}
#texture-editor #toolbar #add-tool {
  position: relative;
}
#texture-editor #toolbar #add-tool #add-tool-popup {
  background-color: #333333;
  width: 348px;
  margin-left: 40px;
  position: absolute;
  top: 0px;
  height: 40px;
  padding-left: 4px;
  line-height: 40px;
  user-select: none;
}
#texture-editor #toolbar #add-tool #add-tool-popup button {
  background: #222222;
  border: 1px solid rgb(51, 122, 183);
  margin: 5px 10px 5px 10px;
  color: white;
  padding: 4px 5px;
  opacity: 0.9;
  cursor: pointer;
}
#texture-editor #toolbar #color {
  margin-top: 8px;
}
#texture-editor #toolbar #color #active-color-bg {
  border-radius: 50%;
  width: 20px;
  height: 20px;
  margin: 10px;
  position: relative;
  background-image: linear-gradient(45deg, #808080 25%, transparent 25%), linear-gradient(-45deg, #808080 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #808080 75%), linear-gradient(-45deg, transparent 75%, #808080 75%);
  background-size: 20px 20px;
  background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
}
#texture-editor #toolbar #color #active-color {
  width: 20px;
  height: 20px;
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 50%;
}
#texture-editor #toolbar #color-picker {
  position: absolute;
  margin-left: 40px;
}
#texture-editor #channels-bar {
  position: absolute;
  top: 60px;
  right: 0;
  width: 80px;
  background: #666666;
  user-select: none;
}
#texture-editor #channels-bar .channel {
  color: white;
  border-bottom: 2px solid #232323;
  width: 80px;
  height: 40px;
  font-size: 16px;
  display: flex;
  align-items: center;
}
#texture-editor #channels-bar .channel.uneditable {
  background: #333333;
}
#texture-editor #channels-bar .channel:hover {
  cursor: pointer;
}
#texture-editor #channels-bar .channel:last-of-type {
  border-bottom: none;
}
#texture-editor #canvas-ui {
  width: 100%;
  height: calc(100% - 70px);
  outline: none;
}
#texture-editor #tool-ui {
  background-color: #333;
  position: absolute;
  right: 0;
  bottom: 30px;
}
#texture-editor #tool-ui label {
  display: flex;
  flex-direction: column;
  align-items: center;
}
#texture-editor #tool-ui input[type=range] {
  background: #d3d3d3;
}
#texture-editor #bottom-bar {
  height: 30px;
  width: 100%;
  background-color: #333333;
  font-size: 14px;
  user-select: none;
  line-height: 30px;
  position: relative;
}
#texture-editor #bottom-bar #file-url {
  left: 30px;
  position: absolute;
}
#texture-editor #bottom-bar #mip-level {
  right: 30px;
  position: absolute;
}`,"",{version:3,sources:["webpack://./../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditor.scss"],names:[],mappings:"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",sourcesContent:[`#texture-editor {\r
    height: 100%;\r
    width: 100%;\r
    color: white;\r
    background-color: #1e1e1e;\r
    font-family: "acumin-pro-condensed";\r
\r
    .icon {\r
        width: 40px;\r
        height: 40px;\r
        &.button {\r
            background-color: #333333;\r
            &:hover {\r
                background-color: #4a4a4a;\r
                cursor: pointer;\r
            }\r
            // When the button is selected - className='active'\r
            &.active {\r
                background-color: #666666;\r
            }\r
            // When the button is clicked\r
            &:active {\r
                background-color: #837c7c;\r
            }\r
        }\r
    }\r
\r
    .has-tooltip {\r
        display: inline-block;\r
        .tooltip {\r
            visibility: hidden;\r
            background-color: rgb(255, 255, 255);\r
            z-index: 1;\r
            position: absolute;\r
            opacity: 0;\r
            transition: opacity 0.5s;\r
            line-height: normal;\r
            font-size: 14px;\r
            padding: 0px 5px;\r
            color: black;\r
        }\r
\r
        &:hover .tooltip {\r
            visibility: visible;\r
            opacity: 1;\r
        }\r
    }\r
\r
    #properties {\r
        width: 100%;\r
        height: 40px;\r
\r
        display: flex;\r
        align-items: center;\r
        font-size: 12px;\r
        color: white;\r
        user-select: none;\r
        background-color: #333333;\r
\r
        .tab {\r
            display: inline-flex;\r
            line-height: 40px;\r
            height: 40px;\r
            flex-shrink: 0;\r
            flex-grow: 0;\r
            border-right: 2px solid #1e1e1e;\r
            background-color: #333333;\r
        }\r
        #left {\r
            overflow: hidden;\r
            height: 40px;\r
            flex-grow: 1;\r
            flex-shrink: 1;\r
            display: flex;\r
            flex-wrap: wrap;\r
            #dimensions-tab {\r
                form {\r
                    display: flex;\r
                }\r
                label {\r
                    margin-left: 15px;\r
                    font-size: 15px;\r
                    color: #afafaf;\r
                    input {\r
                        width: 40px;\r
                        height: 24px;\r
                        background-color: #000000;\r
                        color: #ffffff;\r
                        border: 0;\r
                        font-size: 12px;\r
                        text-align: "left";\r
                        font-family: "acumin-pro-condensed";\r
                        font-size: 15px;\r
                        padding-left: 8px;\r
                    }\r
\r
                    &:last-of-type {\r
                        margin-right: 8px;\r
                    }\r
                }\r
            }\r
        }\r
        #right-tab {\r
            margin-right: 0;\r
            flex-grow: 0;\r
            flex-shrink: 0;\r
\r
            input[type="file"] {\r
                display: none;\r
            }\r
        }\r
\r
        .pixel-data {\r
            width: 45px;\r
            color: #afafaf;\r
            display: flex;\r
            justify-content: space-between;\r
            font-size: 15px;\r
            &:first-of-type {\r
                margin-left: 15px;\r
            }\r
            &:last-of-type {\r
                padding-right: 15px;\r
            }\r
            .value {\r
                display: inline-block;\r
                width: 30px;\r
                color: white;\r
            }\r
        }\r
    }\r
\r
    #toolbar {\r
        position: absolute;\r
        top: 60px;\r
        left: 0;\r
        width: 40px;\r
        display: flex;\r
        flex-direction: column;\r
        justify-content: left;\r
\r
        #tools {\r
            display: flex;\r
            flex-direction: column;\r
        }\r
\r
        #add-tool {\r
            position: relative;\r
            #add-tool-popup {\r
                background-color: #333333;\r
                width: 348px;\r
                margin-left: 40px;\r
                position: absolute;\r
                top: 0px;\r
                height: 40px;\r
                padding-left: 4px;\r
                line-height: 40px;\r
                user-select: none;\r
                button {\r
                    background: #222222;\r
                    border: 1px solid rgb(51, 122, 183);\r
                    margin: 5px 10px 5px 10px;\r
                    color: white;\r
                    padding: 4px 5px;\r
                    opacity: 0.9;\r
                    cursor: pointer;\r
                }\r
            }\r
        }\r
\r
        #color {\r
            margin-top: 8px;\r
            #active-color-bg {\r
                border-radius: 50%;\r
                width: 20px;\r
                height: 20px;\r
                margin: 10px;\r
                position: relative;\r
                background-image:\r
                    linear-gradient(45deg, #808080 25%, transparent 25%), linear-gradient(-45deg, #808080 25%, transparent 25%),\r
                    linear-gradient(45deg, transparent 75%, #808080 75%), linear-gradient(-45deg, transparent 75%, #808080 75%);\r
                background-size: 20px 20px;\r
                background-position:\r
                    0 0,\r
                    0 10px,\r
                    10px -10px,\r
                    -10px 0px;\r
            }\r
            #active-color {\r
                width: 20px;\r
                height: 20px;\r
                position: absolute;\r
                top: 0;\r
                left: 0;\r
                border-radius: 50%;\r
            }\r
        }\r
        #color-picker {\r
            position: absolute;\r
            margin-left: 40px;\r
        }\r
    }\r
\r
    #channels-bar {\r
        position: absolute;\r
        top: 60px;\r
        right: 0;\r
        width: 80px;\r
        background: #666666;\r
        user-select: none;\r
        .channel {\r
            color: white;\r
            border-bottom: 2px solid #232323;\r
            width: 80px;\r
            height: 40px;\r
            font-size: 16px;\r
            display: flex;\r
            align-items: center;\r
\r
            &.uneditable {\r
                background: #333333;\r
            }\r
\r
            &:hover {\r
                cursor: pointer;\r
            }\r
\r
            &:last-of-type {\r
                border-bottom: none;\r
            }\r
        }\r
    }\r
\r
    #canvas-ui {\r
        width: 100%;\r
        height: calc(100% - 70px);\r
        outline: none;\r
    }\r
\r
    #tool-ui {\r
        background-color: #333;\r
        position: absolute;\r
        right: 0;\r
        bottom: 30px;\r
\r
        label {\r
            display: flex;\r
            flex-direction: column;\r
            align-items: center;\r
        }\r
\r
        input[type="range"] {\r
            background: #d3d3d3;\r
        }\r
    }\r
\r
    #bottom-bar {\r
        height: 30px;\r
        width: 100%;\r
        background-color: #333333;\r
        font-size: 14px;\r
        user-select: none;\r
        line-height: 30px;\r
        position: relative;\r
        #file-url {\r
            left: 30px;\r
            position: absolute;\r
        }\r
        #mip-level {\r
            right: 30px;\r
            position: absolute;\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const b=E},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/metadata/metadataPropertyGrid.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>b});var h=d("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),x=d.n(h),A=d("../../../../node_modules/css-loader/dist/runtime/api.js"),S=d.n(A),E=S()(x());E.push([m.id,`#metadata-container textarea {
  display: block;
  margin: 4px;
  width: calc(100% - 14px);
  min-height: 100px;
  max-height: 500px;
  resize: vertical;
}

.meta-string textarea {
  background: #ffee99;
}

.meta-json textarea {
  background: #99ddff;
}

.meta-object textarea {
  background: #dd99ff;
}

.meta-object-protect textarea {
  background: #b0b0b0;
}

.buttonLine.disabled {
  opacity: 20%;
  pointer-events: none;
}

.copy-root {
  display: grid;
  justify-content: end;
  height: 30px;
}

.copy-container {
  height: 30px;
  width: 30px;
  cursor: pointer;
}

.hoverIcon:hover {
  opacity: 0.8;
}

.type-status {
  padding: 5px 15px;
}`,"",{version:3,sources:["webpack://./../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/metadata/metadataPropertyGrid.scss"],names:[],mappings:"AACI;EACI,cAAA;EACA,WAAA;EACA,wBAAA;EACA,iBAAA;EACA,iBAAA;EACA,gBAAA;AAAR;;AAKI;EACI,mBAAA;AAFR;;AAOI;EACI,mBAAA;AAJR;;AASI;EACI,mBAAA;AANR;;AAWI;EACI,mBAAA;AARR;;AAaI;EACI,YAAA;EACA,oBAAA;AAVR;;AAcA;EACI,aAAA;EACA,oBAAA;EACA,YAAA;AAXJ;;AAcA;EACI,YAAA;EACA,WAAA;EACA,eAAA;AAXJ;;AAcA;EACI,YAAA;AAXJ;;AAcA;EACI,iBAAA;AAXJ",sourcesContent:[`#metadata-container {\r
    textarea {\r
        display: block;\r
        margin: 4px;\r
        width: calc(100% - 14px);\r
        min-height: 100px;\r
        max-height: 500px;\r
        resize: vertical;\r
    }\r
}\r
\r
.meta-string {\r
    textarea {\r
        background: #ffee99;\r
    }\r
}\r
\r
.meta-json {\r
    textarea {\r
        background: #99ddff;\r
    }\r
}\r
\r
.meta-object {\r
    textarea {\r
        background: #dd99ff;\r
    }\r
}\r
\r
.meta-object-protect {\r
    textarea {\r
        background: #b0b0b0;\r
    }\r
}\r
\r
.buttonLine {\r
    &.disabled {\r
        opacity: 20%;\r
        pointer-events: none;\r
    }\r
}\r
\r
.copy-root {\r
    display: grid;\r
    justify-content: end;\r
    height: 30px;\r
}\r
\r
.copy-container {\r
    height: 30px;\r
    width: 30px;\r
    cursor: pointer;\r
}\r
\r
.hoverIcon:hover {\r
    opacity: 0.8;\r
}\r
\r
.type-status {\r
    padding: 5px 15px;\r
}\r
`],sourceRoot:""}]);const b=E},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/embedHost/embedHost.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>b});var h=d("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),x=d.n(h),A=d("../../../../node_modules/css-loader/dist/runtime/api.js"),S=d.n(A),E=S()(x());E.push([m.id,`#embed-host {
  position: absolute;
  right: 0px;
  top: 0px;
  bottom: 0px;
  z-index: 10;
}

#__resizable_base__ {
  display: none;
}

#embed {
  background: #333333;
  height: 100%;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-rows: 30px 1fr;
  font: 14px "Arial";
  overflow: hidden;
}
#embed #header {
  font-size: 16px;
  color: white;
  background: #222222;
  grid-row: 1;
  text-align: center;
  display: grid;
  grid-template-columns: 30px 1fr 50px;
  user-select: none;
}
#embed #header #logo {
  grid-column: 1;
  width: 24px;
  height: 24px;
  display: flex;
  align-self: center;
  justify-self: center;
}
#embed #header #back {
  grid-column: 1;
  display: grid;
  align-self: center;
  justify-self: center;
  cursor: pointer;
}
#embed #header #title {
  grid-column: 2;
  display: grid;
  align-items: center;
  text-align: center;
}
#embed #header #commands {
  grid-column: 3;
  display: grid;
  align-items: center;
  grid-template-columns: 1fr 1fr;
}
#embed #header #commands .expand {
  grid-column: 1;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#embed #header #commands .close {
  grid-column: 2;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#embed #split {
  grid-row: 2;
  overflow: hidden;
}
#embed #split.splitPopup {
  display: grid;
  grid-template-rows: 300px 2px 1fr;
}
#embed #split.splitPopup .panes {
  margin-bottom: 1px;
}
#embed #split #topPart {
  grid-row: 1;
  overflow: hidden;
  display: grid;
  grid-auto-rows: 100%;
}
#embed #split #separator {
  grid-row: 2;
  background: white;
  opacity: 0.1;
}
#embed #split #bottomPart {
  overflow: hidden;
  grid-row: 3;
  display: grid;
  grid-auto-rows: 100%;
}
#embed #split .gutter.gutter-vertical {
  background-image: none;
  background: #444444;
  cursor: row-resize;
}`,"",{version:3,sources:["webpack://./../../../dev/inspector/dist/components/embedHost/embedHost.scss"],names:[],mappings:"AAAA;EACI,kBAAA;EACA,UAAA;EACA,QAAA;EACA,WAAA;EACA,WAAA;AACJ;;AAEA;EACI,aAAA;AACJ;;AAEA;EACI,mBAAA;EACA,YAAA;EACA,SAAA;EACA,UAAA;EACA,aAAA;EACA,4BAAA;EACA,kBAAA;EACA,gBAAA;AACJ;AACI;EACI,eAAA;EACA,YAAA;EACA,mBAAA;EACA,WAAA;EACA,kBAAA;EACA,aAAA;EACA,oCAAA;EACA,iBAAA;AACR;AACQ;EACI,cAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,oBAAA;AACZ;AAEQ;EACI,cAAA;EACA,aAAA;EACA,kBAAA;EACA,oBAAA;EACA,eAAA;AAAZ;AAGQ;EACI,cAAA;EACA,aAAA;EACA,mBAAA;EACA,kBAAA;AADZ;AAIQ;EACI,cAAA;EACA,aAAA;EACA,mBAAA;EACA,8BAAA;AAFZ;AAIY;EACI,cAAA;EACA,aAAA;EACA,mBAAA;EACA,qBAAA;EACA,eAAA;AAFhB;AAKY;EACI,cAAA;EACA,aAAA;EACA,mBAAA;EACA,qBAAA;EACA,eAAA;AAHhB;AAQI;EACI,WAAA;EACA,gBAAA;AANR;AAQQ;EACI,aAAA;EACA,iCAAA;AANZ;AAQY;EACI,kBAAA;AANhB;AAUQ;EACI,WAAA;EACA,gBAAA;EACA,aAAA;EACA,oBAAA;AARZ;AAWQ;EACI,WAAA;EACA,iBAAA;EACA,YAAA;AATZ;AAYQ;EACI,gBAAA;EACA,WAAA;EACA,aAAA;EACA,oBAAA;AAVZ;AAaQ;EACI,sBAAA;EACA,mBAAA;EACA,kBAAA;AAXZ",sourcesContent:[`#embed-host {\r
    position: absolute;\r
    right: 0px;\r
    top: 0px;\r
    bottom: 0px;\r
    z-index: 10;\r
}\r
\r
#__resizable_base__ {\r
    display: none;\r
}\r
\r
#embed {\r
    background: #333333;\r
    height: 100%;\r
    margin: 0;\r
    padding: 0;\r
    display: grid;\r
    grid-template-rows: 30px 1fr;\r
    font: 14px "Arial";\r
    overflow: hidden;\r
\r
    #header {\r
        font-size: 16px;\r
        color: white;\r
        background: #222222;\r
        grid-row: 1;\r
        text-align: center;\r
        display: grid;\r
        grid-template-columns: 30px 1fr 50px;\r
        user-select: none;\r
\r
        #logo {\r
            grid-column: 1;\r
            width: 24px;\r
            height: 24px;\r
            display: flex;\r
            align-self: center;\r
            justify-self: center;\r
        }\r
\r
        #back {\r
            grid-column: 1;\r
            display: grid;\r
            align-self: center;\r
            justify-self: center;\r
            cursor: pointer;\r
        }\r
\r
        #title {\r
            grid-column: 2;\r
            display: grid;\r
            align-items: center;\r
            text-align: center;\r
        }\r
\r
        #commands {\r
            grid-column: 3;\r
            display: grid;\r
            align-items: center;\r
            grid-template-columns: 1fr 1fr;\r
\r
            .expand {\r
                grid-column: 1;\r
                display: grid;\r
                align-items: center;\r
                justify-items: center;\r
                cursor: pointer;\r
            }\r
\r
            .close {\r
                grid-column: 2;\r
                display: grid;\r
                align-items: center;\r
                justify-items: center;\r
                cursor: pointer;\r
            }\r
        }\r
    }\r
\r
    #split {\r
        grid-row: 2;\r
        overflow: hidden;\r
\r
        &.splitPopup {\r
            display: grid;\r
            grid-template-rows: 300px 2px 1fr;\r
\r
            .panes {\r
                margin-bottom: 1px;\r
            }\r
        }\r
\r
        #topPart {\r
            grid-row: 1;\r
            overflow: hidden;\r
            display: grid;\r
            grid-auto-rows: 100%;\r
        }\r
\r
        #separator {\r
            grid-row: 2;\r
            background: white;\r
            opacity: 0.1;\r
        }\r
\r
        #bottomPart {\r
            overflow: hidden;\r
            grid-row: 3;\r
            display: grid;\r
            grid-auto-rows: 100%;\r
        }\r
\r
        .gutter.gutter-vertical {\r
            background-image: none;\r
            background: #444444;\r
            cursor: row-resize;\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const b=E},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/sceneExplorer/sceneExplorer.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>b});var h=d("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),x=d.n(h),A=d("../../../../node_modules/css-loader/dist/runtime/api.js"),S=d.n(A),E=S()(x());E.push([m.id,`#scene-explorer-host {
  position: absolute;
  left: 0px;
  top: 0px;
  bottom: 0px;
}
#scene-explorer-host:focus {
  outline: none;
}

#__resizable_base__ {
  display: none;
}

.context-menu {
  background: #222222;
}
.context-menu .react-contextmenu-item {
  padding: 10px;
  cursor: pointer;
}
.context-menu .react-contextmenu-item:hover {
  background: #555555;
}

.react-contextmenu.context-menu.react-contextmenu--visible {
  z-index: 99;
  transform: scale(1);
}

#sceneExplorer {
  background: #333333;
  height: 100%;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-rows: auto 1fr;
  font: 14px "Arial";
}
#sceneExplorer:focus {
  outline: none;
}
#sceneExplorer #header {
  height: 30px;
  font-size: 16px;
  color: white;
  background: #222222;
  grid-row: 1;
  text-align: center;
  display: grid;
  grid-template-columns: 30px 1fr 50px;
  user-select: none;
}
#sceneExplorer #header #logo {
  position: relative;
  grid-column: 1;
  width: 24px;
  height: 24px;
  left: 0;
  display: flex;
  align-self: center;
  justify-self: center;
}
#sceneExplorer #header #title {
  grid-column: 2;
  display: grid;
  align-items: center;
  text-align: center;
}
#sceneExplorer #header #commands {
  grid-column: 3;
  display: grid;
  align-items: center;
  grid-template-columns: 1fr 1fr;
}
#sceneExplorer #header #commands .expand {
  grid-column: 1;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#sceneExplorer #header #commands .close {
  grid-column: 2;
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#sceneExplorer #tree {
  grid-row: 2;
  overflow-x: hidden;
  overflow-y: auto;
}
#sceneExplorer .filter {
  display: flex;
  align-items: stretch;
}
#sceneExplorer .filter input {
  width: 100%;
  margin: 10px 40px 5px 40px;
  display: block;
  border: none;
  padding: 0;
  border-bottom: solid 1px rgb(51, 122, 183);
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, rgb(51, 122, 183) 4%);
  background-position: -1000px 0;
  background-size: 1000px 100%;
  background-repeat: no-repeat;
  color: white;
}
#sceneExplorer .filter input::placeholder {
  color: lightgray;
}
#sceneExplorer .filter input:focus {
  box-shadow: none;
  outline: none;
  background-position: 0 0;
}
#sceneExplorer .groupContainer {
  margin-left: 0px;
  color: white;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 24px;
  user-select: none;
  align-self: center;
  display: grid;
  align-items: center;
}
#sceneExplorer .groupContainer:hover {
  background: #444444;
}
#sceneExplorer .groupContainer .expandableHeader {
  display: grid;
  grid-template-columns: 1fr 20px;
}
#sceneExplorer .groupContainer .expandableHeader .text {
  grid-column: 1;
  display: grid;
  grid-template-columns: 20px 1fr;
}
#sceneExplorer .groupContainer .expandableHeader .text .arrow {
  grid-column: 1;
  margin-left: 0px;
  color: white;
  cursor: pointer;
  display: inline-block;
  margin-right: 6px;
  opacity: 0.5;
}
#sceneExplorer .groupContainer .expandableHeader .text .text-value {
  grid-column: 2;
  display: flex;
  align-items: center;
}
#sceneExplorer .groupContainer .expandableHeader .expandAll {
  opacity: 0.5;
  grid-column: 2;
  margin-right: 10px;
}
#sceneExplorer .icon {
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#sceneExplorer .itemContainer {
  margin-left: 0px;
  color: white;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 24px;
  user-select: none;
  display: grid;
  grid-template-columns: 20px 1fr;
}
#sceneExplorer .itemContainer:hover {
  background: #444444;
}
#sceneExplorer .itemContainer.selected {
  background: #bbbbbb;
  color: black;
}
#sceneExplorer .itemContainer .isNotActive {
  opacity: 0.3;
}
#sceneExplorer .itemContainer .arrow {
  grid-column: 1;
  color: white;
  opacity: 0.6;
}
#sceneExplorer .itemContainer .popup {
  width: 200px;
  visibility: hidden;
  background-color: #444444;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.5);
  position: absolute;
  z-index: 1;
  margin-left: -180px;
  box-sizing: border-box;
}
#sceneExplorer .itemContainer .popup.show {
  visibility: visible;
}
#sceneExplorer .itemContainer .popup:focus {
  outline: none;
}
#sceneExplorer .itemContainer .popup .popupMenu {
  padding: 6px 5px 5px 10px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  height: 18px;
}
#sceneExplorer .itemContainer .popup .popupMenu:hover {
  background: white;
  color: #333333;
}
#sceneExplorer .itemContainer .sceneNode {
  grid-column: 2;
  margin-left: -10px;
  display: grid;
  grid-template-columns: 1fr 20px 20px 20px 20px 10px 20px 20px auto 5px;
  align-items: center;
  cursor: pointer;
}
#sceneExplorer .itemContainer .sceneNode .sceneTitle {
  grid-column: 1;
  margin-right: 5px;
  display: flex;
  align-items: center;
  height: 24px;
}
#sceneExplorer .itemContainer .sceneNode .translation {
  grid-column: 2;
  opacity: 0.6;
}
#sceneExplorer .itemContainer .sceneNode .translation.selected {
  opacity: 1;
}
#sceneExplorer .itemContainer .sceneNode .rotation {
  grid-column: 3;
  opacity: 0.6;
}
#sceneExplorer .itemContainer .sceneNode .rotation.selected {
  opacity: 1;
}
#sceneExplorer .itemContainer .sceneNode .scaling {
  grid-column: 4;
  opacity: 0.6;
}
#sceneExplorer .itemContainer .sceneNode .scaling.selected {
  opacity: 1;
}
#sceneExplorer .itemContainer .sceneNode .bounding {
  grid-column: 5;
  opacity: 0.6;
}
#sceneExplorer .itemContainer .sceneNode .bounding.selected {
  opacity: 1;
}
#sceneExplorer .itemContainer .sceneNode .separator {
  grid-column: 6;
  margin-left: 5px;
  width: 5px;
  display: flex;
  align-items: center;
  height: 18px;
  border-left: solid 1px rgb(51, 122, 183);
}
#sceneExplorer .itemContainer .sceneNode .pickingMode {
  grid-column: 7;
  opacity: 0.6;
}
#sceneExplorer .itemContainer .sceneNode .pickingMode.selected {
  opacity: 1;
}
#sceneExplorer .itemContainer .sceneNode .coordinates {
  grid-column: 8;
  opacity: 0.6;
}
#sceneExplorer .itemContainer .sceneNode .coordinates.selected {
  opacity: 1;
}
#sceneExplorer .itemContainer .sceneNode .refresh {
  grid-column: 9;
}
#sceneExplorer .itemContainer .sceneNode .extensions {
  width: 20px;
  grid-column: 10;
}
#sceneExplorer .itemContainer .targetedAnimationTools {
  grid-column: 2;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
  min-width: 0;
}
#sceneExplorer .itemContainer .targetedAnimationTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .animationGroupTools {
  grid-column: 2;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
  min-width: 0;
}
#sceneExplorer .itemContainer .animationGroupTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .soundTools {
  grid-column: 2;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
  min-width: 0;
}
#sceneExplorer .itemContainer .soundTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .meshTools {
  grid-column: 2;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto 20px 20px auto 5px;
  align-items: center;
  min-width: 0;
}
#sceneExplorer .itemContainer .meshTools .edit {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .meshTools .bounding-box {
  grid-column: 3;
  opacity: 0.5;
}
#sceneExplorer .itemContainer .meshTools .bounding-box.selected {
  opacity: 1;
}
#sceneExplorer .itemContainer .meshTools .visibility {
  grid-column: 4;
}
#sceneExplorer .itemContainer .meshTools .extensions {
  width: 20px;
  grid-column: 5;
}
#sceneExplorer .itemContainer .cameraTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr 20px 20px auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .cameraTools .activeCamera {
  grid-column: 2;
}
#sceneExplorer .itemContainer .cameraTools .enableGizmo {
  grid-column: 3;
}
#sceneExplorer .itemContainer .cameraTools .extensions {
  width: 20px;
  grid-column: 4;
}
#sceneExplorer .itemContainer .lightTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr 20px 20px auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .lightTools .visibility {
  grid-column: 2;
}
#sceneExplorer .itemContainer .lightTools .enableGizmo {
  grid-column: 3;
}
#sceneExplorer .itemContainer .lightTools .extensions {
  width: 20px;
  grid-column: 4;
}
#sceneExplorer .itemContainer .spriteTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .spriteTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .spriteManagerTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .spriteManagerTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .materialTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .materialTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .materialTools .icon {
  display: grid;
  align-items: center;
  justify-items: center;
  cursor: pointer;
}
#sceneExplorer .itemContainer .particleSystemTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .particleSystemTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .effectLayerTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .effectLayerTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .frameGraphTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .frameGraphTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .postProcessTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .postProcessTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .renderingPipelineTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .renderingPipelineTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .textureTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .textureTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .adtextureTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr 20px 20px auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .adtextureTools .edit {
  grid-column: 2;
}
#sceneExplorer .itemContainer .adtextureTools .pickingMode {
  grid-column: 3;
  opacity: 0.6;
}
#sceneExplorer .itemContainer .adtextureTools .pickingMode.selected {
  opacity: 1;
}
#sceneExplorer .itemContainer .adtextureTools .extensions {
  width: 20px;
  grid-column: 3;
}
#sceneExplorer .itemContainer .controlTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr 20px 20px auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .controlTools .highlight {
  grid-column: 2;
}
#sceneExplorer .itemContainer .controlTools .visibility {
  grid-column: 3;
}
#sceneExplorer .itemContainer .controlTools .extensions {
  width: 20px;
  grid-column: 4;
}
#sceneExplorer .itemContainer .transformNodeTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .transformNodeTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .skeletonTools {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr auto 5px;
  align-items: center;
}
#sceneExplorer .itemContainer .skeletonTools .extensions {
  width: 20px;
  grid-column: 2;
}
#sceneExplorer .itemContainer .title {
  grid-column: 1;
  background: transparent;
  white-space: nowrap;
  overflow: hidden;
  min-width: 0;
  margin-right: 5px;
  display: grid;
  align-items: center;
  grid-template-columns: 25px 1fr;
  height: 24px;
  cursor: pointer;
}
#sceneExplorer .itemContainer .title .titleIcon {
  grid-column: 1;
  display: grid;
  align-items: center;
  justify-items: center;
}
#sceneExplorer .itemContainer .title .titleText {
  grid-column: 2;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}`,"",{version:3,sources:["webpack://./../../../dev/inspector/dist/components/sceneExplorer/sceneExplorer.scss"],names:[],mappings:"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",sourcesContent:[`#scene-explorer-host {\r
    position: absolute;\r
    left: 0px;\r
    top: 0px;\r
    bottom: 0px;\r
\r
    &:focus {\r
        outline: none;\r
    }\r
}\r
\r
#__resizable_base__ {\r
    display: none;\r
}\r
\r
.context-menu {\r
    background: #222222;\r
\r
    .react-contextmenu-item {\r
        padding: 10px;\r
        cursor: pointer;\r
\r
        &:hover {\r
            background: #555555;\r
        }\r
    }\r
}\r
\r
.react-contextmenu.context-menu.react-contextmenu--visible {\r
    z-index: 99;\r
    transform: scale(1);\r
}\r
\r
#sceneExplorer {\r
    background: #333333;\r
    height: 100%;\r
    margin: 0;\r
    padding: 0;\r
    display: grid;\r
    grid-template-rows: auto 1fr;\r
    font: 14px "Arial";\r
\r
    &:focus {\r
        outline: none;\r
    }\r
\r
    #header {\r
        height: 30px;\r
        font-size: 16px;\r
        color: white;\r
        background: #222222;\r
        grid-row: 1;\r
        text-align: center;\r
        display: grid;\r
        grid-template-columns: 30px 1fr 50px;\r
        user-select: none;\r
\r
        #logo {\r
            position: relative;\r
            grid-column: 1;\r
            width: 24px;\r
            height: 24px;\r
            left: 0;\r
            display: flex;\r
            align-self: center;\r
            justify-self: center;\r
        }\r
\r
        #title {\r
            grid-column: 2;\r
            display: grid;\r
            align-items: center;\r
            text-align: center;\r
        }\r
\r
        #commands {\r
            grid-column: 3;\r
            display: grid;\r
            align-items: center;\r
            grid-template-columns: 1fr 1fr;\r
\r
            .expand {\r
                grid-column: 1;\r
                display: grid;\r
                align-items: center;\r
                justify-items: center;\r
                cursor: pointer;\r
            }\r
\r
            .close {\r
                grid-column: 2;\r
                display: grid;\r
                align-items: center;\r
                justify-items: center;\r
                cursor: pointer;\r
            }\r
        }\r
    }\r
\r
    #tree {\r
        grid-row: 2;\r
\r
        overflow-x: hidden;\r
        overflow-y: auto;\r
    }\r
\r
    .filter {\r
        display: flex;\r
        align-items: stretch;\r
\r
        input {\r
            width: 100%;\r
            margin: 10px 40px 5px 40px;\r
            display: block;\r
            border: none;\r
            padding: 0;\r
            border-bottom: solid 1px rgb(51, 122, 183);\r
            background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, rgb(51, 122, 183) 4%);\r
            background-position: -1000px 0;\r
            background-size: 1000px 100%;\r
            background-repeat: no-repeat;\r
            color: white;\r
        }\r
\r
        input::placeholder {\r
            color: lightgray;\r
        }\r
\r
        input:focus {\r
            box-shadow: none;\r
            outline: none;\r
            background-position: 0 0;\r
        }\r
    }\r
\r
    .groupContainer {\r
        margin-left: 0px;\r
        color: white;\r
        margin-top: 0px;\r
        margin-bottom: 0px;\r
        height: 24px;\r
\r
        user-select: none;\r
\r
        align-self: center;\r
        display: grid;\r
        align-items: center;\r
\r
        &:hover {\r
            background: #444444;\r
        }\r
\r
        .expandableHeader {\r
            display: grid;\r
            grid-template-columns: 1fr 20px;\r
\r
            .text {\r
                grid-column: 1;\r
                display: grid;\r
                grid-template-columns: 20px 1fr;\r
\r
                .arrow {\r
                    grid-column: 1;\r
                    margin-left: 0px;\r
                    color: white;\r
                    cursor: pointer;\r
                    display: inline-block;\r
                    margin-right: 6px;\r
                    opacity: 0.5;\r
                }\r
\r
                .text-value {\r
                    grid-column: 2;\r
                    display: flex;\r
                    align-items: center;\r
                }\r
            }\r
\r
            .expandAll {\r
                opacity: 0.5;\r
                grid-column: 2;\r
                margin-right: 10px;\r
            }\r
        }\r
    }\r
\r
    .icon {\r
        display: grid;\r
        align-items: center;\r
        justify-items: center;\r
        cursor: pointer;\r
    }\r
\r
    .itemContainer {\r
        margin-left: 0px;\r
        color: white;\r
        margin-top: 0px;\r
        margin-bottom: 0px;\r
        height: 24px;\r
        user-select: none;\r
        display: grid;\r
        grid-template-columns: 20px 1fr;\r
\r
        &:hover {\r
            background: #444444;\r
        }\r
\r
        &.selected {\r
            background: #bbbbbb;\r
            color: black;\r
        }\r
\r
        .isNotActive {\r
            opacity: 0.3;\r
        }\r
\r
        .arrow {\r
            grid-column: 1;\r
            color: white;\r
            opacity: 0.6;\r
        }\r
\r
        .popup {\r
            width: 200px;\r
            visibility: hidden;\r
            background-color: #444444;\r
            color: #fff;\r
            border: 1px solid rgba(255, 255, 255, 0.5);\r
            position: absolute;\r
            z-index: 1;\r
            margin-left: -180px;\r
            box-sizing: border-box;\r
\r
            &.show {\r
                visibility: visible;\r
            }\r
\r
            &:focus {\r
                outline: none;\r
            }\r
\r
            .popupMenu {\r
                padding: 6px 5px 5px 10px;\r
                overflow: hidden;\r
                white-space: nowrap;\r
                text-overflow: ellipsis;\r
                height: 18px;\r
\r
                &:hover {\r
                    background: white;\r
                    color: #333333;\r
                }\r
            }\r
        }\r
\r
        .sceneNode {\r
            grid-column: 2;\r
            margin-left: -10px;\r
            display: grid;\r
            grid-template-columns: 1fr 20px 20px 20px 20px 10px 20px 20px auto 5px;\r
            align-items: center;\r
            cursor: pointer;\r
\r
            .sceneTitle {\r
                grid-column: 1;\r
                margin-right: 5px;\r
                display: flex;\r
                align-items: center;\r
                height: 24px;\r
            }\r
\r
            .translation {\r
                grid-column: 2;\r
                opacity: 0.6;\r
\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .rotation {\r
                grid-column: 3;\r
                opacity: 0.6;\r
\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .scaling {\r
                grid-column: 4;\r
                opacity: 0.6;\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .bounding {\r
                grid-column: 5;\r
                opacity: 0.6;\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .separator {\r
                grid-column: 6;\r
                margin-left: 5px;\r
                width: 5px;\r
                display: flex;\r
                align-items: center;\r
                height: 18px;\r
                border-left: solid 1px rgb(51, 122, 183);\r
            }\r
\r
            .pickingMode {\r
                grid-column: 7;\r
                opacity: 0.6;\r
\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .coordinates {\r
                grid-column: 8;\r
                opacity: 0.6;\r
\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .refresh {\r
                grid-column: 9;\r
            }\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 10;\r
            }\r
        }\r
\r
        .targetedAnimationTools {\r
            grid-column: 2;\r
            width: 100%;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
            min-width: 0;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .animationGroupTools {\r
            grid-column: 2;\r
            width: 100%;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
            min-width: 0;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .soundTools {\r
            grid-column: 2;\r
            width: 100%;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
            min-width: 0;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .meshTools {\r
            grid-column: 2;\r
            width: 100%;\r
            display: grid;\r
            grid-template-columns: 1fr auto 20px 20px auto 5px;\r
            align-items: center;\r
            min-width: 0;\r
\r
            .edit {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
\r
            .bounding-box {\r
                grid-column: 3;\r
                opacity: 0.5;\r
\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .visibility {\r
                grid-column: 4;\r
            }\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 5;\r
            }\r
        }\r
\r
        .cameraTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr 20px 20px auto 5px;\r
            align-items: center;\r
\r
            .activeCamera {\r
                grid-column: 2;\r
            }\r
\r
            .enableGizmo {\r
                grid-column: 3;\r
            }\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 4;\r
            }\r
        }\r
\r
        .lightTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr 20px 20px auto 5px;\r
            align-items: center;\r
\r
            .visibility {\r
                grid-column: 2;\r
            }\r
\r
            .enableGizmo {\r
                grid-column: 3;\r
            }\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 4;\r
            }\r
        }\r
\r
        .spriteTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .spriteManagerTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .materialTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
\r
            .icon {\r
                display: grid;\r
                align-items: center;\r
                justify-items: center;\r
                cursor: pointer;\r
            }\r
        }\r
\r
        .particleSystemTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .effectLayerTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .frameGraphTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .postProcessTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .renderingPipelineTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .textureTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .adtextureTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr 20px 20px auto 5px;\r
            align-items: center;\r
\r
            .edit {\r
                grid-column: 2;\r
            }\r
\r
            .pickingMode {\r
                grid-column: 3;\r
                opacity: 0.6;\r
\r
                &.selected {\r
                    opacity: 1;\r
                }\r
            }\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 3;\r
            }\r
        }\r
\r
        .controlTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr 20px 20px auto 5px;\r
            align-items: center;\r
\r
            .highlight {\r
                grid-column: 2;\r
            }\r
\r
            .visibility {\r
                grid-column: 3;\r
            }\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 4;\r
            }\r
        }\r
\r
        .transformNodeTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .skeletonTools {\r
            grid-column: 2;\r
            display: grid;\r
            grid-template-columns: 1fr auto 5px;\r
            align-items: center;\r
\r
            .extensions {\r
                width: 20px;\r
                grid-column: 2;\r
            }\r
        }\r
\r
        .title {\r
            grid-column: 1;\r
            background: transparent;\r
            white-space: nowrap;\r
            overflow: hidden;\r
            min-width: 0;\r
            margin-right: 5px;\r
            display: grid;\r
            align-items: center;\r
            grid-template-columns: 25px 1fr;\r
            height: 24px;\r
            cursor: pointer;\r
\r
            .titleIcon {\r
                grid-column: 1;\r
                display: grid;\r
                align-items: center;\r
                justify-items: center;\r
            }\r
\r
            .titleText {\r
                grid-column: 2;\r
                white-space: nowrap;\r
                text-overflow: ellipsis;\r
                overflow: hidden;\r
            }\r
        }\r
    }\r
}\r
`],sourceRoot:""}]);const b=E},"../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>b});var h=d("../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"),x=d.n(h),A=d("../../../../node_modules/css-loader/dist/runtime/api.js"),S=d.n(A),E=S()(x());E.push([m.id,`.color-picker-container {
  width: 320px;
  height: 300px;
  background-color: white;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 50% 50px 60px 40px 1fr auto;
  font-family: "acumin-pro-condensed";
  font-weight: normal;
  font-size: 14px;
}
.color-picker-container.with-hints {
  height: 380px;
}
.color-picker-container .color-picker-saturation {
  grid-row: 1;
  grid-column: 1;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 100%;
  position: relative;
  cursor: pointer;
}
.color-picker-container .color-picker-saturation .color-picker-saturation-white {
  grid-row: 1;
  grid-column: 1;
  background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0));
}
.color-picker-container .color-picker-saturation .color-picker-saturation-black {
  grid-row: 1;
  grid-column: 1;
  background: linear-gradient(to top, #000, rgba(0, 0, 0, 0));
}
.color-picker-container .color-picker-saturation .color-picker-saturation-cursor {
  pointer-events: none;
  width: 4px;
  height: 4px;
  box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, 0.3), 0 0 1px 2px rgba(0, 0, 0, 0.4);
  border-radius: 50%;
  transform: translate(-2px, -2px);
  position: absolute;
}
.color-picker-container .color-picker-hue {
  grid-row: 2;
  grid-column: 1;
  display: grid;
  margin: 10px;
  grid-template-columns: 24% 76%;
  grid-template-rows: 100%;
}
.color-picker-container .color-picker-hue .color-picker-hue-color {
  grid-row: 1;
  grid-column: 1;
  align-self: center;
  justify-self: center;
  width: 30px;
  height: 30px;
  border-radius: 15px;
  border: 1px solid black;
}
.color-picker-container .color-picker-hue .color-picker-hue-slider {
  grid-row: 1;
  grid-column: 2;
  align-self: center;
  height: 16px;
  position: relative;
  cursor: pointer;
  background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);
}
.color-picker-container .color-picker-hue .color-picker-hue-slider .color-picker-hue-cursor {
  pointer-events: none;
  width: 8px;
  height: 18px;
  transform: translate(-4px, -2px);
  background-color: rgb(248, 248, 248);
  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);
  position: absolute;
}
.color-picker-container .color-picker-component {
  display: grid;
  margin: 5px;
  grid-template-columns: 100%;
  grid-template-rows: 50% 50%;
}
.color-picker-container .color-picker-component .color-picker-component-value {
  justify-self: center;
  align-self: center;
  grid-row: 1;
  grid-column: 1;
  margin-bottom: 4px;
}
.color-picker-container .color-picker-component .color-picker-component-value input {
  width: 50px;
}
.color-picker-container .color-picker-component .color-picker-component-label {
  justify-self: center;
  align-self: center;
  grid-row: 2;
  grid-column: 1;
  color: black;
}
.color-picker-container .color-picker-rgb {
  grid-row: 3;
  grid-column: 1;
  display: grid;
  margin: 10px;
  grid-template-columns: 20% 6.66% 20% 6.66% 20% 6.66% 20%;
  grid-template-rows: 100%;
}
.color-picker-container .red {
  grid-row: 1;
  grid-column: 1;
}
.color-picker-container .green {
  grid-row: 1;
  grid-column: 3;
}
.color-picker-container .blue {
  grid-row: 1;
  grid-column: 5;
}
.color-picker-container .alpha {
  grid-row: 1;
  grid-column: 7;
}
.color-picker-container .alpha.grayed {
  opacity: 0.5;
}
.color-picker-container .color-picker-hex {
  grid-row: 4;
  grid-column: 1;
  display: grid;
  grid-template-columns: 20% 80%;
  grid-template-rows: 100%;
}
.color-picker-container .color-picker-hex .color-picker-hex-label {
  justify-self: center;
  align-self: center;
  grid-row: 1;
  grid-column: 1;
  margin-left: 10px;
  color: black;
}
.color-picker-container .color-picker-hex .color-picker-hex-value {
  justify-self: left;
  align-self: center;
  grid-row: 1;
  grid-column: 2;
  margin-left: 10px;
  margin-right: 10px;
}
.color-picker-container .color-picker-hex .color-picker-hex-value input {
  width: 70px;
}
.color-picker-container .color-picker-warning {
  color: black;
  font-size: 11px;
  padding: 4px;
  justify-self: left;
  align-self: center;
  grid-row: 6;
  grid-column: 1;
}`,"",{version:3,sources:["webpack://./../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.scss"],names:[],mappings:"AAAA;EACI,YAAA;EACA,aAAA;EACA,uBAAA;EACA,aAAA;EACA,2BAAA;EACA,+CAAA;EACA,mCAAA;EACA,mBAAA;EACA,eAAA;AACJ;AACI;EACI,aAAA;AACR;AAEI;EACI,WAAA;EACA,cAAA;EACA,aAAA;EACA,2BAAA;EACA,wBAAA;EACA,kBAAA;EACA,eAAA;AAAR;AAEQ;EACI,WAAA;EACA,cAAA;EAEA,mEAAA;AADZ;AAIQ;EACI,WAAA;EACA,cAAA;EAEA,2DAAA;AAHZ;AAMQ;EACI,oBAAA;EACA,UAAA;EACA,WAAA;EACA,kGACI;EAGJ,kBAAA;EACA,gCAAA;EACA,kBAAA;AAPZ;AAWI;EACI,WAAA;EACA,cAAA;EACA,aAAA;EACA,YAAA;EACA,8BAAA;EACA,wBAAA;AATR;AAWQ;EACI,WAAA;EACA,cAAA;EACA,kBAAA;EACA,oBAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;AATZ;AAYQ;EACI,WAAA;EACA,cAAA;EACA,kBAAA;EACA,YAAA;EACA,kBAAA;EACA,eAAA;EAEA,2GAAA;AAXZ;AAaY;EACI,oBAAA;EACA,UAAA;EACA,YAAA;EACA,gCAAA;EACA,oCAAA;EACA,2CAAA;EACA,kBAAA;AAXhB;AAgBI;EACI,aAAA;EACA,WAAA;EACA,2BAAA;EACA,2BAAA;AAdR;AAgBQ;EACI,oBAAA;EACA,kBAAA;EACA,WAAA;EACA,cAAA;EACA,kBAAA;AAdZ;AAgBY;EACI,WAAA;AAdhB;AAkBQ;EACI,oBAAA;EACA,kBAAA;EACA,WAAA;EACA,cAAA;EACA,YAAA;AAhBZ;AAoBI;EACI,WAAA;EACA,cAAA;EACA,aAAA;EACA,YAAA;EACA,wDAAA;EACA,wBAAA;AAlBR;AAqBI;EACI,WAAA;EACA,cAAA;AAnBR;AAsBI;EACI,WAAA;EACA,cAAA;AApBR;AAuBI;EACI,WAAA;EACA,cAAA;AArBR;AAwBI;EACI,WAAA;EACA,cAAA;AAtBR;AAwBQ;EACI,YAAA;AAtBZ;AA0BI;EACI,WAAA;EACA,cAAA;EACA,aAAA;EACA,8BAAA;EACA,wBAAA;AAxBR;AA0BQ;EACI,oBAAA;EACA,kBAAA;EACA,WAAA;EACA,cAAA;EACA,iBAAA;EACA,YAAA;AAxBZ;AA2BQ;EACI,kBAAA;EACA,kBAAA;EACA,WAAA;EACA,cAAA;EACA,iBAAA;EACA,kBAAA;AAzBZ;AA2BY;EACI,WAAA;AAzBhB;AA8BI;EACI,YAAA;EACA,eAAA;EACA,YAAA;EACA,kBAAA;EACA,kBAAA;EACA,WAAA;EACA,cAAA;AA5BR",sourcesContent:[`.color-picker-container {\r
    width: 320px;\r
    height: 300px;\r
    background-color: white;\r
    display: grid;\r
    grid-template-columns: 100%;\r
    grid-template-rows: 50% 50px 60px 40px 1fr auto;\r
    font-family: "acumin-pro-condensed";\r
    font-weight: normal;\r
    font-size: 14px;\r
\r
    &.with-hints {\r
        height: 380px;\r
    }\r
\r
    .color-picker-saturation {\r
        grid-row: 1;\r
        grid-column: 1;\r
        display: grid;\r
        grid-template-columns: 100%;\r
        grid-template-rows: 100%;\r
        position: relative;\r
        cursor: pointer;\r
\r
        .color-picker-saturation-white {\r
            grid-row: 1;\r
            grid-column: 1;\r
\r
            background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0));\r
        }\r
\r
        .color-picker-saturation-black {\r
            grid-row: 1;\r
            grid-column: 1;\r
\r
            background: linear-gradient(to top, #000, rgba(0, 0, 0, 0));\r
        }\r
\r
        .color-picker-saturation-cursor {\r
            pointer-events: none;\r
            width: 4px;\r
            height: 4px;\r
            box-shadow:\r
                0 0 0 1.5px #fff,\r
                inset 0 0 1px 1px rgba(0, 0, 0, 0.3),\r
                0 0 1px 2px rgba(0, 0, 0, 0.4);\r
            border-radius: 50%;\r
            transform: translate(-2px, -2px);\r
            position: absolute;\r
        }\r
    }\r
\r
    .color-picker-hue {\r
        grid-row: 2;\r
        grid-column: 1;\r
        display: grid;\r
        margin: 10px;\r
        grid-template-columns: 24% 76%;\r
        grid-template-rows: 100%;\r
\r
        .color-picker-hue-color {\r
            grid-row: 1;\r
            grid-column: 1;\r
            align-self: center;\r
            justify-self: center;\r
            width: 30px;\r
            height: 30px;\r
            border-radius: 15px;\r
            border: 1px solid black;\r
        }\r
\r
        .color-picker-hue-slider {\r
            grid-row: 1;\r
            grid-column: 2;\r
            align-self: center;\r
            height: 16px;\r
            position: relative;\r
            cursor: pointer;\r
\r
            background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\r
\r
            .color-picker-hue-cursor {\r
                pointer-events: none;\r
                width: 8px;\r
                height: 18px;\r
                transform: translate(-4px, -2px);\r
                background-color: rgb(248, 248, 248);\r
                box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);\r
                position: absolute;\r
            }\r
        }\r
    }\r
\r
    .color-picker-component {\r
        display: grid;\r
        margin: 5px;\r
        grid-template-columns: 100%;\r
        grid-template-rows: 50% 50%;\r
\r
        .color-picker-component-value {\r
            justify-self: center;\r
            align-self: center;\r
            grid-row: 1;\r
            grid-column: 1;\r
            margin-bottom: 4px;\r
\r
            input {\r
                width: 50px;\r
            }\r
        }\r
\r
        .color-picker-component-label {\r
            justify-self: center;\r
            align-self: center;\r
            grid-row: 2;\r
            grid-column: 1;\r
            color: black;\r
        }\r
    }\r
\r
    .color-picker-rgb {\r
        grid-row: 3;\r
        grid-column: 1;\r
        display: grid;\r
        margin: 10px;\r
        grid-template-columns: 20% 6.66% 20% 6.66% 20% 6.66% 20%;\r
        grid-template-rows: 100%;\r
    }\r
\r
    .red {\r
        grid-row: 1;\r
        grid-column: 1;\r
    }\r
\r
    .green {\r
        grid-row: 1;\r
        grid-column: 3;\r
    }\r
\r
    .blue {\r
        grid-row: 1;\r
        grid-column: 5;\r
    }\r
\r
    .alpha {\r
        grid-row: 1;\r
        grid-column: 7;\r
\r
        &.grayed {\r
            opacity: 0.5;\r
        }\r
    }\r
\r
    .color-picker-hex {\r
        grid-row: 4;\r
        grid-column: 1;\r
        display: grid;\r
        grid-template-columns: 20% 80%;\r
        grid-template-rows: 100%;\r
\r
        .color-picker-hex-label {\r
            justify-self: center;\r
            align-self: center;\r
            grid-row: 1;\r
            grid-column: 1;\r
            margin-left: 10px;\r
            color: black;\r
        }\r
\r
        .color-picker-hex-value {\r
            justify-self: left;\r
            align-self: center;\r
            grid-row: 1;\r
            grid-column: 2;\r
            margin-left: 10px;\r
            margin-right: 10px;\r
\r
            input {\r
                width: 70px;\r
            }\r
        }\r
    }\r
\r
    .color-picker-warning {\r
        color: black;\r
        font-size: 11px;\r
        padding: 4px;\r
        justify-self: left;\r
        align-self: center;\r
        grid-row: 6;\r
        grid-column: 1;\r
    }\r
}\r
`],sourceRoot:""}]);const b=E},"../../../../node_modules/css-loader/dist/runtime/api.js":m=>{m.exports=function(_){var d=[];return d.toString=function(){return this.map(function(x){var A="",S=typeof x[5]<"u";return x[4]&&(A+="@supports (".concat(x[4],") {")),x[2]&&(A+="@media ".concat(x[2]," {")),S&&(A+="@layer".concat(x[5].length>0?" ".concat(x[5]):""," {")),A+=_(x),S&&(A+="}"),x[2]&&(A+="}"),x[4]&&(A+="}"),A}).join("")},d.i=function(x,A,S,E,b){typeof x=="string"&&(x=[[null,x,void 0]]);var M={};if(S)for(var T=0;T<this.length;T++){var O=this[T][0];O!=null&&(M[O]=!0)}for(var R=0;R<x.length;R++){var I=[].concat(x[R]);S&&M[I[0]]||(typeof b<"u"&&(typeof I[5]>"u"||(I[1]="@layer".concat(I[5].length>0?" ".concat(I[5]):""," {").concat(I[1],"}")),I[5]=b),A&&(I[2]&&(I[1]="@media ".concat(I[2]," {").concat(I[1],"}")),I[2]=A),E&&(I[4]?(I[1]="@supports (".concat(I[4],") {").concat(I[1],"}"),I[4]=E):I[4]="".concat(E)),d.push(I))}},d}},"../../../../node_modules/css-loader/dist/runtime/getUrl.js":m=>{m.exports=function(_,d){return d||(d={}),_&&(_=String(_.__esModule?_.default:_),/^['"].*['"]$/.test(_)&&(_=_.slice(1,-1)),d.hash&&(_+=d.hash),/["'() \t\n]|(%20)/.test(_)||d.needQuotes?'"'.concat(_.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):_)}},"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js":m=>{m.exports=function(_){var d=_[1],h=_[3];if(!h)return d;if(typeof btoa=="function"){var x=btoa(unescape(encodeURIComponent(JSON.stringify(h)))),A="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(x),S="/*# ".concat(A," */");return[d].concat([S]).join(`
`)}return[d].join(`
`)}},"../../../../node_modules/gif.js.optimized/dist/gif.js":function(m){(function(_,d){m.exports=d()})(this,function(){return function(_){function d(x){if(h[x])return h[x].exports;var A=h[x]={exports:{},id:x,loaded:!1};return _[x].call(A.exports,A,A.exports,d),A.loaded=!0,A.exports}var h={};return d.m=_,d.c=h,d.p="",d(0)}([function(_,d,h){var x,A,S=function(M,T){function O(){this.constructor=M}for(var R in T)E.call(T,R)&&(M[R]=T[R]);return O.prototype=T.prototype,M.prototype=new O,M.__super__=T.prototype,M},E={}.hasOwnProperty,b=[].indexOf||function(M){for(var T=0,O=this.length;T<O;T++)if(T in this&&this[T]===M)return T;return-1};x=h(1).EventEmitter,h(2),A=function(M){function T(I){var N,w,D;this.running=!1,this.options={},this.frames=[],this.groups=new Map,this.freeWorkers=[],this.activeWorkers=[],this.setOptions(I);for(w in O)D=O[w],(N=this.options)[w]==null&&(N[w]=D)}var O,R;return S(T,M),O={workerScript:"gif.worker.js",workers:2,repeat:0,background:"#fff",quality:10,width:null,height:null,transparent:null,debug:!1},R={delay:500,copy:!1},T.prototype.setOption=function(I,N){if(this.options[I]=N,this._canvas!=null&&(I==="width"||I==="height"))return this._canvas[I]=N},T.prototype.setOptions=function(I){var N,w,D;w=[];for(N in I)E.call(I,N)&&(D=I[N],w.push(this.setOption(N,D)));return w},T.prototype.addFrame=function(I,N){var w,D,k;N==null&&(N={}),w={},w.transparent=this.options.transparent;for(k in R)w[k]=N[k]||R[k];if(this.options.width==null&&this.setOption("width",I.width),this.options.height==null&&this.setOption("height",I.height),typeof ImageData<"u"&&ImageData!==null&&I instanceof ImageData)w.data=I.data;else if(typeof CanvasRenderingContext2D<"u"&&CanvasRenderingContext2D!==null&&I instanceof CanvasRenderingContext2D||typeof WebGLRenderingContext<"u"&&WebGLRenderingContext!==null&&I instanceof WebGLRenderingContext)N.copy?w.data=this.getContextData(I):w.context=I;else{if(I.childNodes==null)throw new Error("Invalid image");N.copy?w.data=this.getImageData(I):w.image=I}return D=this.frames.length,D>0&&w.data&&(this.groups.has(w.data)?this.groups.get(w.data).push(D):this.groups.set(w.data,[D])),this.frames.push(w)},T.prototype.render=function(){var I,N,w;if(this.running)throw new Error("Already running");if(this.options.width==null||this.options.height==null)throw new Error("Width and height must be set prior to rendering");if(this.running=!0,this.nextFrame=0,this.finishedFrames=0,this.imageParts=(function(){var D,k,Y;for(Y=[],D=0,k=this.frames.length;0<=k?D<k:D>k;0<=k?++D:--D)Y.push(null);return Y}).call(this),N=this.spawnWorkers(),this.options.globalPalette===!0)this.renderNextFrame();else for(I=0,w=N;0<=w?I<w:I>w;0<=w?++I:--I)this.renderNextFrame();return this.emit("start"),this.emit("progress",0)},T.prototype.abort=function(){for(var I;I=this.activeWorkers.shift(),I!=null;)this.log("killing active worker"),I.terminate();return this.running=!1,this.emit("abort")},T.prototype.spawnWorkers=function(){var I,N,w;return I=Math.min(this.options.workers,this.frames.length),(function(){w=[];for(var D=N=this.freeWorkers.length;N<=I?D<I:D>I;N<=I?D++:D--)w.push(D);return w}).apply(this).forEach(function(D){return function(k){var Y;return D.log("spawning worker "+k),Y=new Worker(D.options.workerScript),Y.onmessage=function(V){return D.activeWorkers.splice(D.activeWorkers.indexOf(Y),1),D.freeWorkers.push(Y),D.frameFinished(V.data,!1)},D.freeWorkers.push(Y)}}(this)),I},T.prototype.frameFinished=function(I,N){var w,D,k,Y;if(this.finishedFrames++,N?(w=this.frames.indexOf(I),D=this.groups.get(I.data)[0],this.log("frame "+(w+1)+" is duplicate of "+D+" - "+this.activeWorkers.length+" active"),this.imageParts[w]={indexOfFirstInGroup:D}):(this.log("frame "+(I.index+1)+" finished - "+this.activeWorkers.length+" active"),this.emit("progress",this.finishedFrames/this.frames.length),this.imageParts[I.index]=I),this.options.globalPalette===!0&&!N&&(this.options.globalPalette=I.globalPalette,this.log("global palette analyzed"),this.frames.length>2))for(k=1,Y=this.freeWorkers.length;1<=Y?k<Y:k>Y;1<=Y?++k:--k)this.renderNextFrame();return b.call(this.imageParts,null)>=0?this.renderNextFrame():this.finishRendering()},T.prototype.finishRendering=function(){var I,N,w,D,k,Y,V,ee,K,ie,ne,te,W,Q,re,oe,X,se,ue,he;for(X=this.imageParts,k=Y=0,ie=X.length;Y<ie;k=++Y)N=X[k],N.indexOfFirstInGroup&&(this.imageParts[k]=this.imageParts[N.indexOfFirstInGroup]);for(K=0,se=this.imageParts,V=0,ne=se.length;V<ne;V++)N=se[V],K+=(N.data.length-1)*N.pageSize+N.cursor;for(K+=N.pageSize-N.cursor,this.log("rendering finished - filesize "+Math.round(K/1e3)+"kb"),I=new Uint8Array(K),re=0,ue=this.imageParts,ee=0,te=ue.length;ee<te;ee++)for(N=ue[ee],he=N.data,w=Q=0,W=he.length;Q<W;w=++Q)oe=he[w],I.set(oe,re),re+=w===N.data.length-1?N.cursor:N.pageSize;return D=new Blob([I],{type:"image/gif"}),this.emit("finished",D,I)},T.prototype.renderNextFrame=function(){var I,N,w,D;if(this.freeWorkers.length===0)throw new Error("No free workers");if(!(this.nextFrame>=this.frames.length))return I=this.frames[this.nextFrame++],N=this.frames.indexOf(I),N>0&&this.groups.has(I.data)&&this.groups.get(I.data)[0]!==N?void setTimeout(function(k){return function(){return k.frameFinished(I,!0)}}(this),0):(D=this.freeWorkers.shift(),w=this.getTask(I),this.log("starting frame "+(w.index+1)+" of "+this.frames.length),this.activeWorkers.push(D),D.postMessage(w))},T.prototype.getContextData=function(I){return I.getImageData(0,0,this.options.width,this.options.height).data},T.prototype.getImageData=function(I){var N;return this._canvas==null&&(this._canvas=document.createElement("canvas"),this._canvas.width=this.options.width,this._canvas.height=this.options.height),N=this._canvas.getContext("2d"),N.setFill=this.options.background,N.fillRect(0,0,this.options.width,this.options.height),N.drawImage(I,0,0),this.getContextData(N)},T.prototype.getTask=function(I){var N,w;if(N=this.frames.indexOf(I),w={index:N,last:N===this.frames.length-1,delay:I.delay,transparent:I.transparent,width:this.options.width,height:this.options.height,quality:this.options.quality,dither:this.options.dither,globalPalette:this.options.globalPalette,repeat:this.options.repeat,canTransfer:!0},I.data!=null)w.data=I.data;else if(I.context!=null)w.data=this.getContextData(I.context);else{if(I.image==null)throw new Error("Invalid frame");w.data=this.getImageData(I.image)}return w},T.prototype.log=function(I){if(this.options.debug)return console.log(I)},T}(x),_.exports=A},function(_,d){function h(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function x(b){return typeof b=="function"}function A(b){return typeof b=="number"}function S(b){return typeof b=="object"&&b!==null}function E(b){return b===void 0}_.exports=h,h.EventEmitter=h,h.prototype._events=void 0,h.prototype._maxListeners=void 0,h.defaultMaxListeners=10,h.prototype.setMaxListeners=function(b){if(!A(b)||b<0||isNaN(b))throw TypeError("n must be a positive number");return this._maxListeners=b,this},h.prototype.emit=function(b){var M,T,O,R,I,N;if(this._events||(this._events={}),b==="error"&&(!this._events.error||S(this._events.error)&&!this._events.error.length)){if(M=arguments[1],M instanceof Error)throw M;var w=new Error('Uncaught, unspecified "error" event. ('+M+")");throw w.context=M,w}if(T=this._events[b],E(T))return!1;if(x(T))switch(arguments.length){case 1:T.call(this);break;case 2:T.call(this,arguments[1]);break;case 3:T.call(this,arguments[1],arguments[2]);break;default:R=Array.prototype.slice.call(arguments,1),T.apply(this,R)}else if(S(T))for(R=Array.prototype.slice.call(arguments,1),N=T.slice(),O=N.length,I=0;I<O;I++)N[I].apply(this,R);return!0},h.prototype.addListener=function(b,M){var T;if(!x(M))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",b,x(M.listener)?M.listener:M),this._events[b]?S(this._events[b])?this._events[b].push(M):this._events[b]=[this._events[b],M]:this._events[b]=M,S(this._events[b])&&!this._events[b].warned&&(T=E(this._maxListeners)?h.defaultMaxListeners:this._maxListeners,T&&T>0&&this._events[b].length>T&&(this._events[b].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[b].length),typeof console.trace=="function"&&console.trace())),this},h.prototype.on=h.prototype.addListener,h.prototype.once=function(b,M){function T(){this.removeListener(b,T),O||(O=!0,M.apply(this,arguments))}if(!x(M))throw TypeError("listener must be a function");var O=!1;return T.listener=M,this.on(b,T),this},h.prototype.removeListener=function(b,M){var T,O,R,I;if(!x(M))throw TypeError("listener must be a function");if(!this._events||!this._events[b])return this;if(T=this._events[b],R=T.length,O=-1,T===M||x(T.listener)&&T.listener===M)delete this._events[b],this._events.removeListener&&this.emit("removeListener",b,M);else if(S(T)){for(I=R;I-- >0;)if(T[I]===M||T[I].listener&&T[I].listener===M){O=I;break}if(O<0)return this;T.length===1?(T.length=0,delete this._events[b]):T.splice(O,1),this._events.removeListener&&this.emit("removeListener",b,M)}return this},h.prototype.removeAllListeners=function(b){var M,T;if(!this._events)return this;if(!this._events.removeListener)return arguments.length===0?this._events={}:this._events[b]&&delete this._events[b],this;if(arguments.length===0){for(M in this._events)M!=="removeListener"&&this.removeAllListeners(M);return this.removeAllListeners("removeListener"),this._events={},this}if(T=this._events[b],x(T))this.removeListener(b,T);else if(T)for(;T.length;)this.removeListener(b,T[T.length-1]);return delete this._events[b],this},h.prototype.listeners=function(b){return this._events&&this._events[b]?x(this._events[b])?[this._events[b]]:this._events[b].slice():[]},h.prototype.listenerCount=function(b){if(this._events){var M=this._events[b];if(x(M))return 1;if(M)return M.length}return 0},h.listenerCount=function(b,M){return b.listenerCount(M)}},function(_,d){var h,x,A,S,E;E=navigator.userAgent.toLowerCase(),S=navigator.platform.toLowerCase(),h=E.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|version[\s\/:]([\w\d\.]+)|$)/)||[null,"unknown",0],A=h[1]==="ie"&&document.documentMode,x={name:h[1]==="version"?h[3]:h[1],version:A||parseFloat(h[1]==="opera"&&h[4]?h[4]:h[2]),platform:{name:E.match(/ip(?:ad|od|hone)/)?"ios":(E.match(/(?:webos|android)/)||S.match(/mac|win|linux/)||["other"])[0]}},x[x.name]=!0,x[x.name+parseInt(x.version,10)]=!0,x.platform[x.platform.name]=!0,_.exports=x}])})},"../../../../node_modules/object-assign/index.js":m=>{/*
object-assign
(c) Sindre Sorhus
@license MIT
*/var _=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;function x(S){if(S==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(S)}function A(){try{if(!Object.assign)return!1;var S=new String("abc");if(S[5]="de",Object.getOwnPropertyNames(S)[0]==="5")return!1;for(var E={},b=0;b<10;b++)E["_"+String.fromCharCode(b)]=b;var M=Object.getOwnPropertyNames(E).map(function(O){return E[O]});if(M.join("")!=="0123456789")return!1;var T={};return"abcdefghijklmnopqrst".split("").forEach(function(O){T[O]=O}),Object.keys(Object.assign({},T)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}m.exports=A()?Object.assign:function(S,E){for(var b,M=x(S),T,O=1;O<arguments.length;O++){b=Object(arguments[O]);for(var R in b)d.call(b,R)&&(M[R]=b[R]);if(_){T=_(b);for(var I=0;I<T.length;I++)h.call(b,T[I])&&(M[T[I]]=b[T[I]])}}return M}},"../../../../node_modules/prop-types/checkPropTypes.js":(m,_,d)=>{var h=function(){};{var x=d("../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js"),A={},S=d("../../../../node_modules/prop-types/lib/has.js");h=function(b){var M="Warning: "+b;typeof console<"u"&&console.error(M);try{throw new Error(M)}catch{}}}function E(b,M,T,O,R){for(var I in b)if(S(b,I)){var N;try{if(typeof b[I]!="function"){var w=Error((O||"React class")+": "+T+" type `"+I+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof b[I]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw w.name="Invariant Violation",w}N=b[I](M,I,O,T,null,x)}catch(k){N=k}if(N&&!(N instanceof Error)&&h((O||"React class")+": type specification of "+T+" `"+I+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof N+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),N instanceof Error&&!(N.message in A)){A[N.message]=!0;var D=R?R():"";h("Failed "+T+" type: "+N.message+(D??""))}}}E.resetWarningCache=function(){A={}},m.exports=E},"../../../../node_modules/prop-types/factoryWithTypeCheckers.js":(m,_,d)=>{var h=d("../../../../node_modules/prop-types/node_modules/react-is/index.js"),x=d("../../../../node_modules/object-assign/index.js"),A=d("../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js"),S=d("../../../../node_modules/prop-types/lib/has.js"),E=d("../../../../node_modules/prop-types/checkPropTypes.js"),b=function(){};b=function(T){var O="Warning: "+T;typeof console<"u"&&console.error(O);try{throw new Error(O)}catch{}};function M(){return null}m.exports=function(T,O){var R=typeof Symbol=="function"&&Symbol.iterator,I="@@iterator";function N(Ve){var Ke=Ve&&(R&&Ve[R]||Ve[I]);if(typeof Ke=="function")return Ke}var w="<<anonymous>>",D={array:ee("array"),bigint:ee("bigint"),bool:ee("boolean"),func:ee("function"),number:ee("number"),object:ee("object"),string:ee("string"),symbol:ee("symbol"),any:K(),arrayOf:ie,element:ne(),elementType:te(),instanceOf:W,node:X(),objectOf:re,oneOf:Q,oneOfType:oe,shape:ue,exact:he};function k(Ve,Ke){return Ve===Ke?Ve!==0||1/Ve===1/Ke:Ve!==Ve&&Ke!==Ke}function Y(Ve,Ke){this.message=Ve,this.data=Ke&&typeof Ke=="object"?Ke:{},this.stack=""}Y.prototype=Error.prototype;function V(Ve){var Ke={},ct=0;function nt(xt,Qe,kt,ot,At,Me,je){if(ot=ot||w,Me=Me||kt,je!==A){if(O){var rt=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw rt.name="Invariant Violation",rt}else if(typeof console<"u"){var yt=ot+":"+kt;!Ke[yt]&&ct<3&&(b("You are manually calling a React.PropTypes validation function for the `"+Me+"` prop on `"+ot+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),Ke[yt]=!0,ct++)}}return Qe[kt]==null?xt?Qe[kt]===null?new Y("The "+At+" `"+Me+"` is marked as required "+("in `"+ot+"`, but its value is `null`.")):new Y("The "+At+" `"+Me+"` is marked as required in "+("`"+ot+"`, but its value is `undefined`.")):null:Ve(Qe,kt,ot,At,Me)}var at=nt.bind(null,!1);return at.isRequired=nt.bind(null,!0),at}function ee(Ve){function Ke(ct,nt,at,xt,Qe,kt){var ot=ct[nt],At=Se(ot);if(At!==Ve){var Me=we(ot);return new Y("Invalid "+xt+" `"+Qe+"` of type "+("`"+Me+"` supplied to `"+at+"`, expected ")+("`"+Ve+"`."),{expectedType:Ve})}return null}return V(Ke)}function K(){return V(M)}function ie(Ve){function Ke(ct,nt,at,xt,Qe){if(typeof Ve!="function")return new Y("Property `"+Qe+"` of component `"+at+"` has invalid PropType notation inside arrayOf.");var kt=ct[nt];if(!Array.isArray(kt)){var ot=Se(kt);return new Y("Invalid "+xt+" `"+Qe+"` of type "+("`"+ot+"` supplied to `"+at+"`, expected an array."))}for(var At=0;At<kt.length;At++){var Me=Ve(kt,At,at,xt,Qe+"["+At+"]",A);if(Me instanceof Error)return Me}return null}return V(Ke)}function ne(){function Ve(Ke,ct,nt,at,xt){var Qe=Ke[ct];if(!T(Qe)){var kt=Se(Qe);return new Y("Invalid "+at+" `"+xt+"` of type "+("`"+kt+"` supplied to `"+nt+"`, expected a single ReactElement."))}return null}return V(Ve)}function te(){function Ve(Ke,ct,nt,at,xt){var Qe=Ke[ct];if(!h.isValidElementType(Qe)){var kt=Se(Qe);return new Y("Invalid "+at+" `"+xt+"` of type "+("`"+kt+"` supplied to `"+nt+"`, expected a single ReactElement type."))}return null}return V(Ve)}function W(Ve){function Ke(ct,nt,at,xt,Qe){if(!(ct[nt]instanceof Ve)){var kt=Ve.name||w,ot=st(ct[nt]);return new Y("Invalid "+xt+" `"+Qe+"` of type "+("`"+ot+"` supplied to `"+at+"`, expected ")+("instance of `"+kt+"`."))}return null}return V(Ke)}function Q(Ve){if(!Array.isArray(Ve))return arguments.length>1?b("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):b("Invalid argument supplied to oneOf, expected an array."),M;function Ke(ct,nt,at,xt,Qe){for(var kt=ct[nt],ot=0;ot<Ve.length;ot++)if(k(kt,Ve[ot]))return null;var At=JSON.stringify(Ve,function(je,rt){var yt=we(rt);return yt==="symbol"?String(rt):rt});return new Y("Invalid "+xt+" `"+Qe+"` of value `"+String(kt)+"` "+("supplied to `"+at+"`, expected one of "+At+"."))}return V(Ke)}function re(Ve){function Ke(ct,nt,at,xt,Qe){if(typeof Ve!="function")return new Y("Property `"+Qe+"` of component `"+at+"` has invalid PropType notation inside objectOf.");var kt=ct[nt],ot=Se(kt);if(ot!=="object")return new Y("Invalid "+xt+" `"+Qe+"` of type "+("`"+ot+"` supplied to `"+at+"`, expected an object."));for(var At in kt)if(S(kt,At)){var Me=Ve(kt,At,at,xt,Qe+"."+At,A);if(Me instanceof Error)return Me}return null}return V(Ke)}function oe(Ve){if(!Array.isArray(Ve))return b("Invalid argument supplied to oneOfType, expected an instance of array."),M;for(var Ke=0;Ke<Ve.length;Ke++){var ct=Ve[Ke];if(typeof ct!="function")return b("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+ke(ct)+" at index "+Ke+"."),M}function nt(at,xt,Qe,kt,ot){for(var At=[],Me=0;Me<Ve.length;Me++){var je=Ve[Me],rt=je(at,xt,Qe,kt,ot,A);if(rt==null)return null;rt.data&&S(rt.data,"expectedType")&&At.push(rt.data.expectedType)}var yt=At.length>0?", expected one of type ["+At.join(", ")+"]":"";return new Y("Invalid "+kt+" `"+ot+"` supplied to "+("`"+Qe+"`"+yt+"."))}return V(nt)}function X(){function Ve(Ke,ct,nt,at,xt){return fe(Ke[ct])?null:new Y("Invalid "+at+" `"+xt+"` supplied to "+("`"+nt+"`, expected a ReactNode."))}return V(Ve)}function se(Ve,Ke,ct,nt,at){return new Y((Ve||"React class")+": "+Ke+" type `"+ct+"."+nt+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+at+"`.")}function ue(Ve){function Ke(ct,nt,at,xt,Qe){var kt=ct[nt],ot=Se(kt);if(ot!=="object")return new Y("Invalid "+xt+" `"+Qe+"` of type `"+ot+"` "+("supplied to `"+at+"`, expected `object`."));for(var At in Ve){var Me=Ve[At];if(typeof Me!="function")return se(at,xt,Qe,At,we(Me));var je=Me(kt,At,at,xt,Qe+"."+At,A);if(je)return je}return null}return V(Ke)}function he(Ve){function Ke(ct,nt,at,xt,Qe){var kt=ct[nt],ot=Se(kt);if(ot!=="object")return new Y("Invalid "+xt+" `"+Qe+"` of type `"+ot+"` "+("supplied to `"+at+"`, expected `object`."));var At=x({},ct[nt],Ve);for(var Me in At){var je=Ve[Me];if(S(Ve,Me)&&typeof je!="function")return se(at,xt,Qe,Me,we(je));if(!je)return new Y("Invalid "+xt+" `"+Qe+"` key `"+Me+"` supplied to `"+at+"`.\nBad object: "+JSON.stringify(ct[nt],null,"  ")+`
Valid keys: `+JSON.stringify(Object.keys(Ve),null,"  "));var rt=je(kt,Me,at,xt,Qe+"."+Me,A);if(rt)return rt}return null}return V(Ke)}function fe(Ve){switch(typeof Ve){case"number":case"string":case"undefined":return!0;case"boolean":return!Ve;case"object":if(Array.isArray(Ve))return Ve.every(fe);if(Ve===null||T(Ve))return!0;var Ke=N(Ve);if(Ke){var ct=Ke.call(Ve),nt;if(Ke!==Ve.entries){for(;!(nt=ct.next()).done;)if(!fe(nt.value))return!1}else for(;!(nt=ct.next()).done;){var at=nt.value;if(at&&!fe(at[1]))return!1}}else return!1;return!0;default:return!1}}function Ae(Ve,Ke){return Ve==="symbol"?!0:Ke?Ke["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&Ke instanceof Symbol:!1}function Se(Ve){var Ke=typeof Ve;return Array.isArray(Ve)?"array":Ve instanceof RegExp?"object":Ae(Ke,Ve)?"symbol":Ke}function we(Ve){if(typeof Ve>"u"||Ve===null)return""+Ve;var Ke=Se(Ve);if(Ke==="object"){if(Ve instanceof Date)return"date";if(Ve instanceof RegExp)return"regexp"}return Ke}function ke(Ve){var Ke=we(Ve);switch(Ke){case"array":case"object":return"an "+Ke;case"boolean":case"date":case"regexp":return"a "+Ke;default:return Ke}}function st(Ve){return!Ve.constructor||!Ve.constructor.name?w:Ve.constructor.name}return D.checkPropTypes=E,D.resetWarningCache=E.resetWarningCache,D.PropTypes=D,D}},"../../../../node_modules/prop-types/index.js":(m,_,d)=>{{var h=d("../../../../node_modules/prop-types/node_modules/react-is/index.js"),x=!0;m.exports=d("../../../../node_modules/prop-types/factoryWithTypeCheckers.js")(h.isElement,x)}},"../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js":m=>{var _="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";m.exports=_},"../../../../node_modules/prop-types/lib/has.js":m=>{m.exports=Function.call.bind(Object.prototype.hasOwnProperty)},"../../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":(m,_)=>{/** @license React v16.13.1
 * react-is.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */(function(){var d=typeof Symbol=="function"&&Symbol.for,h=d?Symbol.for("react.element"):60103,x=d?Symbol.for("react.portal"):60106,A=d?Symbol.for("react.fragment"):60107,S=d?Symbol.for("react.strict_mode"):60108,E=d?Symbol.for("react.profiler"):60114,b=d?Symbol.for("react.provider"):60109,M=d?Symbol.for("react.context"):60110,T=d?Symbol.for("react.async_mode"):60111,O=d?Symbol.for("react.concurrent_mode"):60111,R=d?Symbol.for("react.forward_ref"):60112,I=d?Symbol.for("react.suspense"):60113,N=d?Symbol.for("react.suspense_list"):60120,w=d?Symbol.for("react.memo"):60115,D=d?Symbol.for("react.lazy"):60116,k=d?Symbol.for("react.block"):60121,Y=d?Symbol.for("react.fundamental"):60117,V=d?Symbol.for("react.responder"):60118,ee=d?Symbol.for("react.scope"):60119;function K(je){return typeof je=="string"||typeof je=="function"||je===A||je===O||je===E||je===S||je===I||je===N||typeof je=="object"&&je!==null&&(je.$$typeof===D||je.$$typeof===w||je.$$typeof===b||je.$$typeof===M||je.$$typeof===R||je.$$typeof===Y||je.$$typeof===V||je.$$typeof===ee||je.$$typeof===k)}function ie(je){if(typeof je=="object"&&je!==null){var rt=je.$$typeof;switch(rt){case h:var yt=je.type;switch(yt){case T:case O:case A:case E:case S:case I:return yt;default:var Rt=yt&&yt.$$typeof;switch(Rt){case M:case R:case D:case w:case b:return Rt;default:return rt}}case x:return rt}}}var ne=T,te=O,W=M,Q=b,re=h,oe=R,X=A,se=D,ue=w,he=x,fe=E,Ae=S,Se=I,we=!1;function ke(je){return we||(we=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),st(je)||ie(je)===T}function st(je){return ie(je)===O}function Ve(je){return ie(je)===M}function Ke(je){return ie(je)===b}function ct(je){return typeof je=="object"&&je!==null&&je.$$typeof===h}function nt(je){return ie(je)===R}function at(je){return ie(je)===A}function xt(je){return ie(je)===D}function Qe(je){return ie(je)===w}function kt(je){return ie(je)===x}function ot(je){return ie(je)===E}function At(je){return ie(je)===S}function Me(je){return ie(je)===I}_.AsyncMode=ne,_.ConcurrentMode=te,_.ContextConsumer=W,_.ContextProvider=Q,_.Element=re,_.ForwardRef=oe,_.Fragment=X,_.Lazy=se,_.Memo=ue,_.Portal=he,_.Profiler=fe,_.StrictMode=Ae,_.Suspense=Se,_.isAsyncMode=ke,_.isConcurrentMode=st,_.isContextConsumer=Ve,_.isContextProvider=Ke,_.isElement=ct,_.isForwardRef=nt,_.isFragment=at,_.isLazy=xt,_.isMemo=Qe,_.isPortal=kt,_.isProfiler=ot,_.isStrictMode=At,_.isSuspense=Me,_.isValidElementType=K,_.typeOf=ie})()},"../../../../node_modules/prop-types/node_modules/react-is/index.js":(m,_,d)=>{m.exports=d("../../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js")},"../../../../node_modules/re-resizable/lib/index.js":(m,_,d)=>{d.r(_),d.d(_,{Resizable:()=>ie});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../../node_modules/react-dom/index.js"),S=d("../../../../node_modules/re-resizable/lib/resizer.js"),E=function(){var ne=function(te,W){return ne=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(Q,re){Q.__proto__=re}||function(Q,re){for(var oe in re)Object.prototype.hasOwnProperty.call(re,oe)&&(Q[oe]=re[oe])},ne(te,W)};return function(te,W){if(typeof W!="function"&&W!==null)throw new TypeError("Class extends value "+String(W)+" is not a constructor or null");ne(te,W);function Q(){this.constructor=te}te.prototype=W===null?Object.create(W):(Q.prototype=W.prototype,new Q)}}(),b=function(){return b=Object.assign||function(ne){for(var te,W=1,Q=arguments.length;W<Q;W++){te=arguments[W];for(var re in te)Object.prototype.hasOwnProperty.call(te,re)&&(ne[re]=te[re])}return ne},b.apply(this,arguments)},M={width:"auto",height:"auto"},T=function(ne,te,W){return Math.max(Math.min(ne,W),te)},O=function(ne,te,W){var Q=Math.round(ne/te);return Q*te+W*(Q-1)},R=function(ne,te){return new RegExp(ne,"i").test(te)},I=function(ne){return!!(ne.touches&&ne.touches.length)},N=function(ne){return!!((ne.clientX||ne.clientX===0)&&(ne.clientY||ne.clientY===0))},w=function(ne,te,W){W===void 0&&(W=0);var Q=te.reduce(function(oe,X,se){return Math.abs(X-ne)<Math.abs(te[oe]-ne)?se:oe},0),re=Math.abs(te[Q]-ne);return W===0||re<W?te[Q]:ne},D=function(ne){return ne=ne.toString(),ne==="auto"||ne.endsWith("px")||ne.endsWith("%")||ne.endsWith("vh")||ne.endsWith("vw")||ne.endsWith("vmax")||ne.endsWith("vmin")?ne:"".concat(ne,"px")},k=function(ne,te,W,Q){if(ne&&typeof ne=="string"){if(ne.endsWith("px"))return Number(ne.replace("px",""));if(ne.endsWith("%")){var re=Number(ne.replace("%",""))/100;return te*re}if(ne.endsWith("vw")){var re=Number(ne.replace("vw",""))/100;return W*re}if(ne.endsWith("vh")){var re=Number(ne.replace("vh",""))/100;return Q*re}}return ne},Y=function(ne,te,W,Q,re,oe,X){return Q=k(Q,ne.width,te,W),re=k(re,ne.height,te,W),oe=k(oe,ne.width,te,W),X=k(X,ne.height,te,W),{maxWidth:typeof Q>"u"?void 0:Number(Q),maxHeight:typeof re>"u"?void 0:Number(re),minWidth:typeof oe>"u"?void 0:Number(oe),minHeight:typeof X>"u"?void 0:Number(X)}},V=function(ne){return Array.isArray(ne)?ne:[ne,ne]},ee=["as","ref","style","className","grid","gridGap","snap","bounds","boundsByDirection","size","defaultSize","minWidth","minHeight","maxWidth","maxHeight","lockAspectRatio","lockAspectRatioExtraWidth","lockAspectRatioExtraHeight","enable","handleStyles","handleClasses","handleWrapperStyle","handleWrapperClass","children","onResizeStart","onResize","onResizeStop","handleComponent","scale","resizeRatio","snapGap"],K="__resizable_base__",ie=function(ne){E(te,ne);function te(W){var Q,re,oe,X,se=ne.call(this,W)||this;return se.ratio=1,se.resizable=null,se.parentLeft=0,se.parentTop=0,se.resizableLeft=0,se.resizableRight=0,se.resizableTop=0,se.resizableBottom=0,se.targetLeft=0,se.targetTop=0,se.delta={width:0,height:0},se.appendBase=function(){if(!se.resizable||!se.window)return null;var ue=se.parentNode;if(!ue)return null;var he=se.window.document.createElement("div");return he.style.width="100%",he.style.height="100%",he.style.position="absolute",he.style.transform="scale(0, 0)",he.style.left="0",he.style.flex="0 0 100%",he.classList?he.classList.add(K):he.className+=K,ue.appendChild(he),he},se.removeBase=function(ue){var he=se.parentNode;he&&he.removeChild(ue)},se.state={isResizing:!1,width:(re=(Q=se.propsSize)===null||Q===void 0?void 0:Q.width)!==null&&re!==void 0?re:"auto",height:(X=(oe=se.propsSize)===null||oe===void 0?void 0:oe.height)!==null&&X!==void 0?X:"auto",direction:"right",original:{x:0,y:0,width:0,height:0},backgroundStyle:{height:"100%",width:"100%",backgroundColor:"rgba(0,0,0,0)",cursor:"auto",opacity:0,position:"fixed",zIndex:9999,top:"0",left:"0",bottom:"0",right:"0"},flexBasis:void 0},se.onResizeStart=se.onResizeStart.bind(se),se.onMouseMove=se.onMouseMove.bind(se),se.onMouseUp=se.onMouseUp.bind(se),se}return Object.defineProperty(te.prototype,"parentNode",{get:function(){return this.resizable?this.resizable.parentNode:null},enumerable:!1,configurable:!0}),Object.defineProperty(te.prototype,"window",{get:function(){return!this.resizable||!this.resizable.ownerDocument?null:this.resizable.ownerDocument.defaultView},enumerable:!1,configurable:!0}),Object.defineProperty(te.prototype,"propsSize",{get:function(){return this.props.size||this.props.defaultSize||M},enumerable:!1,configurable:!0}),Object.defineProperty(te.prototype,"size",{get:function(){var W=0,Q=0;if(this.resizable&&this.window){var re=this.resizable.offsetWidth,oe=this.resizable.offsetHeight,X=this.resizable.style.position;X!=="relative"&&(this.resizable.style.position="relative"),W=this.resizable.style.width!=="auto"?this.resizable.offsetWidth:re,Q=this.resizable.style.height!=="auto"?this.resizable.offsetHeight:oe,this.resizable.style.position=X}return{width:W,height:Q}},enumerable:!1,configurable:!0}),Object.defineProperty(te.prototype,"sizeStyle",{get:function(){var W=this,Q=this.props.size,re=function(se){var ue;if(typeof W.state[se]>"u"||W.state[se]==="auto")return"auto";if(W.propsSize&&W.propsSize[se]&&(!((ue=W.propsSize[se])===null||ue===void 0)&&ue.toString().endsWith("%"))){if(W.state[se].toString().endsWith("%"))return W.state[se].toString();var he=W.getParentSize(),fe=Number(W.state[se].toString().replace("px","")),Ae=fe/he[se]*100;return"".concat(Ae,"%")}return D(W.state[se])},oe=Q&&typeof Q.width<"u"&&!this.state.isResizing?D(Q.width):re("width"),X=Q&&typeof Q.height<"u"&&!this.state.isResizing?D(Q.height):re("height");return{width:oe,height:X}},enumerable:!1,configurable:!0}),te.prototype.getParentSize=function(){if(!this.parentNode)return this.window?{width:this.window.innerWidth,height:this.window.innerHeight}:{width:0,height:0};var W=this.appendBase();if(!W)return{width:0,height:0};var Q=!1,re=this.parentNode.style.flexWrap;re!=="wrap"&&(Q=!0,this.parentNode.style.flexWrap="wrap"),W.style.position="relative",W.style.minWidth="100%",W.style.minHeight="100%";var oe={width:W.offsetWidth,height:W.offsetHeight};return Q&&(this.parentNode.style.flexWrap=re),this.removeBase(W),oe},te.prototype.bindEvents=function(){this.window&&(this.window.addEventListener("mouseup",this.onMouseUp),this.window.addEventListener("mousemove",this.onMouseMove),this.window.addEventListener("mouseleave",this.onMouseUp),this.window.addEventListener("touchmove",this.onMouseMove,{capture:!0,passive:!1}),this.window.addEventListener("touchend",this.onMouseUp))},te.prototype.unbindEvents=function(){this.window&&(this.window.removeEventListener("mouseup",this.onMouseUp),this.window.removeEventListener("mousemove",this.onMouseMove),this.window.removeEventListener("mouseleave",this.onMouseUp),this.window.removeEventListener("touchmove",this.onMouseMove,!0),this.window.removeEventListener("touchend",this.onMouseUp))},te.prototype.componentDidMount=function(){if(!(!this.resizable||!this.window)){var W=this.window.getComputedStyle(this.resizable);this.setState({width:this.state.width||this.size.width,height:this.state.height||this.size.height,flexBasis:W.flexBasis!=="auto"?W.flexBasis:void 0})}},te.prototype.componentWillUnmount=function(){this.window&&this.unbindEvents()},te.prototype.createSizeForCssProperty=function(W,Q){var re=this.propsSize&&this.propsSize[Q];return this.state[Q]==="auto"&&this.state.original[Q]===W&&(typeof re>"u"||re==="auto")?"auto":W},te.prototype.calculateNewMaxFromBoundary=function(W,Q){var re=this.props.boundsByDirection,oe=this.state.direction,X=re&&R("left",oe),se=re&&R("top",oe),ue,he;if(this.props.bounds==="parent"){var fe=this.parentNode;fe&&(ue=X?this.resizableRight-this.parentLeft:fe.offsetWidth+(this.parentLeft-this.resizableLeft),he=se?this.resizableBottom-this.parentTop:fe.offsetHeight+(this.parentTop-this.resizableTop))}else this.props.bounds==="window"?this.window&&(ue=X?this.resizableRight:this.window.innerWidth-this.resizableLeft,he=se?this.resizableBottom:this.window.innerHeight-this.resizableTop):this.props.bounds&&(ue=X?this.resizableRight-this.targetLeft:this.props.bounds.offsetWidth+(this.targetLeft-this.resizableLeft),he=se?this.resizableBottom-this.targetTop:this.props.bounds.offsetHeight+(this.targetTop-this.resizableTop));return ue&&Number.isFinite(ue)&&(W=W&&W<ue?W:ue),he&&Number.isFinite(he)&&(Q=Q&&Q<he?Q:he),{maxWidth:W,maxHeight:Q}},te.prototype.calculateNewSizeFromDirection=function(W,Q){var re=this.props.scale||1,oe=V(this.props.resizeRatio||1),X=oe[0],se=oe[1],ue=this.state,he=ue.direction,fe=ue.original,Ae=this.props,Se=Ae.lockAspectRatio,we=Ae.lockAspectRatioExtraHeight,ke=Ae.lockAspectRatioExtraWidth,st=fe.width,Ve=fe.height,Ke=we||0,ct=ke||0;return R("right",he)&&(st=fe.width+(W-fe.x)*X/re,Se&&(Ve=(st-ct)/this.ratio+Ke)),R("left",he)&&(st=fe.width-(W-fe.x)*X/re,Se&&(Ve=(st-ct)/this.ratio+Ke)),R("bottom",he)&&(Ve=fe.height+(Q-fe.y)*se/re,Se&&(st=(Ve-Ke)*this.ratio+ct)),R("top",he)&&(Ve=fe.height-(Q-fe.y)*se/re,Se&&(st=(Ve-Ke)*this.ratio+ct)),{newWidth:st,newHeight:Ve}},te.prototype.calculateNewSizeFromAspectRatio=function(W,Q,re,oe){var X=this.props,se=X.lockAspectRatio,ue=X.lockAspectRatioExtraHeight,he=X.lockAspectRatioExtraWidth,fe=typeof oe.width>"u"?10:oe.width,Ae=typeof re.width>"u"||re.width<0?W:re.width,Se=typeof oe.height>"u"?10:oe.height,we=typeof re.height>"u"||re.height<0?Q:re.height,ke=ue||0,st=he||0;if(se){var Ve=(Se-ke)*this.ratio+st,Ke=(we-ke)*this.ratio+st,ct=(fe-st)/this.ratio+ke,nt=(Ae-st)/this.ratio+ke,at=Math.max(fe,Ve),xt=Math.min(Ae,Ke),Qe=Math.max(Se,ct),kt=Math.min(we,nt);W=T(W,at,xt),Q=T(Q,Qe,kt)}else W=T(W,fe,Ae),Q=T(Q,Se,we);return{newWidth:W,newHeight:Q}},te.prototype.setBoundingClientRect=function(){var W=1/(this.props.scale||1);if(this.props.bounds==="parent"){var Q=this.parentNode;if(Q){var re=Q.getBoundingClientRect();this.parentLeft=re.left*W,this.parentTop=re.top*W}}if(this.props.bounds&&typeof this.props.bounds!="string"){var oe=this.props.bounds.getBoundingClientRect();this.targetLeft=oe.left*W,this.targetTop=oe.top*W}if(this.resizable){var X=this.resizable.getBoundingClientRect(),se=X.left,ue=X.top,he=X.right,fe=X.bottom;this.resizableLeft=se*W,this.resizableRight=he*W,this.resizableTop=ue*W,this.resizableBottom=fe*W}},te.prototype.onResizeStart=function(W,Q){if(!(!this.resizable||!this.window)){var re=0,oe=0;if(W.nativeEvent&&N(W.nativeEvent)?(re=W.nativeEvent.clientX,oe=W.nativeEvent.clientY):W.nativeEvent&&I(W.nativeEvent)&&(re=W.nativeEvent.touches[0].clientX,oe=W.nativeEvent.touches[0].clientY),this.props.onResizeStart&&this.resizable){var X=this.props.onResizeStart(W,Q,this.resizable);if(X===!1)return}this.props.size&&(typeof this.props.size.height<"u"&&this.props.size.height!==this.state.height&&this.setState({height:this.props.size.height}),typeof this.props.size.width<"u"&&this.props.size.width!==this.state.width&&this.setState({width:this.props.size.width})),this.ratio=typeof this.props.lockAspectRatio=="number"?this.props.lockAspectRatio:this.size.width/this.size.height;var se,ue=this.window.getComputedStyle(this.resizable);if(ue.flexBasis!=="auto"){var he=this.parentNode;if(he){var fe=this.window.getComputedStyle(he).flexDirection;this.flexDir=fe.startsWith("row")?"row":"column",se=ue.flexBasis}}this.setBoundingClientRect(),this.bindEvents();var Ae={original:{x:re,y:oe,width:this.size.width,height:this.size.height},isResizing:!0,backgroundStyle:b(b({},this.state.backgroundStyle),{cursor:this.window.getComputedStyle(W.target).cursor||"auto"}),direction:Q,flexBasis:se};this.setState(Ae)}},te.prototype.onMouseMove=function(W){var Q=this;if(!(!this.state.isResizing||!this.resizable||!this.window)){if(this.window.TouchEvent&&I(W))try{W.preventDefault(),W.stopPropagation()}catch{}var re=this.props,oe=re.maxWidth,X=re.maxHeight,se=re.minWidth,ue=re.minHeight,he=I(W)?W.touches[0].clientX:W.clientX,fe=I(W)?W.touches[0].clientY:W.clientY,Ae=this.state,Se=Ae.direction,we=Ae.original,ke=Ae.width,st=Ae.height,Ve=this.getParentSize(),Ke=Y(Ve,this.window.innerWidth,this.window.innerHeight,oe,X,se,ue);oe=Ke.maxWidth,X=Ke.maxHeight,se=Ke.minWidth,ue=Ke.minHeight;var ct=this.calculateNewSizeFromDirection(he,fe),nt=ct.newHeight,at=ct.newWidth,xt=this.calculateNewMaxFromBoundary(oe,X);this.props.snap&&this.props.snap.x&&(at=w(at,this.props.snap.x,this.props.snapGap)),this.props.snap&&this.props.snap.y&&(nt=w(nt,this.props.snap.y,this.props.snapGap));var Qe=this.calculateNewSizeFromAspectRatio(at,nt,{width:xt.maxWidth,height:xt.maxHeight},{width:se,height:ue});if(at=Qe.newWidth,nt=Qe.newHeight,this.props.grid){var kt=O(at,this.props.grid[0],this.props.gridGap?this.props.gridGap[0]:0),ot=O(nt,this.props.grid[1],this.props.gridGap?this.props.gridGap[1]:0),At=this.props.snapGap||0,Me=At===0||Math.abs(kt-at)<=At?kt:at,je=At===0||Math.abs(ot-nt)<=At?ot:nt;at=Me,nt=je}var rt={width:at-we.width,height:nt-we.height};if(this.delta=rt,ke&&typeof ke=="string"){if(ke.endsWith("%")){var yt=at/Ve.width*100;at="".concat(yt,"%")}else if(ke.endsWith("vw")){var Rt=at/this.window.innerWidth*100;at="".concat(Rt,"vw")}else if(ke.endsWith("vh")){var Nt=at/this.window.innerHeight*100;at="".concat(Nt,"vh")}}if(st&&typeof st=="string"){if(st.endsWith("%")){var yt=nt/Ve.height*100;nt="".concat(yt,"%")}else if(st.endsWith("vw")){var Rt=nt/this.window.innerWidth*100;nt="".concat(Rt,"vw")}else if(st.endsWith("vh")){var Nt=nt/this.window.innerHeight*100;nt="".concat(Nt,"vh")}}var Kt={width:this.createSizeForCssProperty(at,"width"),height:this.createSizeForCssProperty(nt,"height")};this.flexDir==="row"?Kt.flexBasis=Kt.width:this.flexDir==="column"&&(Kt.flexBasis=Kt.height);var si=this.state.width!==Kt.width,Pi=this.state.height!==Kt.height,gi=this.state.flexBasis!==Kt.flexBasis,bi=si||Pi||gi;bi&&(0,A.flushSync)(function(){Q.setState(Kt)}),this.props.onResize&&bi&&this.props.onResize(W,Se,this.resizable,rt)}},te.prototype.onMouseUp=function(W){var Q,re,oe=this.state,X=oe.isResizing,se=oe.direction;oe.original,!(!X||!this.resizable)&&(this.props.onResizeStop&&this.props.onResizeStop(W,se,this.resizable,this.delta),this.props.size&&this.setState({width:(Q=this.props.size.width)!==null&&Q!==void 0?Q:"auto",height:(re=this.props.size.height)!==null&&re!==void 0?re:"auto"}),this.unbindEvents(),this.setState({isResizing:!1,backgroundStyle:b(b({},this.state.backgroundStyle),{cursor:"auto"})}))},te.prototype.updateSize=function(W){var Q,re;this.setState({width:(Q=W.width)!==null&&Q!==void 0?Q:"auto",height:(re=W.height)!==null&&re!==void 0?re:"auto"})},te.prototype.renderResizer=function(){var W=this,Q=this.props,re=Q.enable,oe=Q.handleStyles,X=Q.handleClasses,se=Q.handleWrapperStyle,ue=Q.handleWrapperClass,he=Q.handleComponent;if(!re)return null;var fe=Object.keys(re).map(function(Ae){return re[Ae]!==!1?(0,h.jsx)(S.Resizer,{direction:Ae,onResizeStart:W.onResizeStart,replaceStyles:oe&&oe[Ae],className:X&&X[Ae],children:he&&he[Ae]?he[Ae]:null},Ae):null});return(0,h.jsx)("div",{className:ue,style:se,children:fe})},te.prototype.render=function(){var W=this,Q=Object.keys(this.props).reduce(function(X,se){return ee.indexOf(se)!==-1||(X[se]=W.props[se]),X},{}),re=b(b(b({position:"relative",userSelect:this.state.isResizing?"none":"auto"},this.props.style),this.sizeStyle),{maxWidth:this.props.maxWidth,maxHeight:this.props.maxHeight,minWidth:this.props.minWidth,minHeight:this.props.minHeight,boxSizing:"border-box",flexShrink:0});this.state.flexBasis&&(re.flexBasis=this.state.flexBasis);var oe=this.props.as||"div";return(0,h.jsxs)(oe,b({style:re,className:this.props.className},Q,{ref:function(X){X&&(W.resizable=X)},children:[this.state.isResizing&&(0,h.jsx)("div",{style:this.state.backgroundStyle}),this.props.children,this.renderResizer()]}))},te.defaultProps={as:"div",onResizeStart:function(){},onResize:function(){},onResizeStop:function(){},enable:{top:!0,right:!0,bottom:!0,left:!0,topRight:!0,bottomRight:!0,bottomLeft:!0,topLeft:!0},style:{},grid:[1,1],gridGap:[0,0],lockAspectRatio:!1,lockAspectRatioExtraWidth:0,lockAspectRatioExtraHeight:0,scale:1,resizeRatio:1,snapGap:0},te}(x.PureComponent)},"../../../../node_modules/re-resizable/lib/resizer.js":(m,_,d)=>{d.r(_),d.d(_,{Resizer:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=function(){return A=Object.assign||function(O){for(var R,I=1,N=arguments.length;I<N;I++){R=arguments[I];for(var w in R)Object.prototype.hasOwnProperty.call(R,w)&&(O[w]=R[w])}return O},A.apply(this,arguments)},S={width:"100%",height:"10px",top:"0px",left:"0px",cursor:"row-resize"},E={width:"10px",height:"100%",top:"0px",left:"0px",cursor:"col-resize"},b={width:"20px",height:"20px",position:"absolute",zIndex:1},M={top:A(A({},S),{top:"-5px"}),right:A(A({},E),{left:void 0,right:"-5px"}),bottom:A(A({},S),{top:void 0,bottom:"-5px"}),left:A(A({},E),{left:"-5px"}),topRight:A(A({},b),{right:"-10px",top:"-10px",cursor:"ne-resize"}),bottomRight:A(A({},b),{right:"-10px",bottom:"-10px",cursor:"se-resize"}),bottomLeft:A(A({},b),{left:"-10px",bottom:"-10px",cursor:"sw-resize"}),topLeft:A(A({},b),{left:"-10px",top:"-10px",cursor:"nw-resize"})},T=(0,x.memo)(function(O){var R=O.onResizeStart,I=O.direction,N=O.children,w=O.replaceStyles,D=O.className,k=(0,x.useCallback)(function(ee){R(ee,I)},[R,I]),Y=(0,x.useCallback)(function(ee){R(ee,I)},[R,I]),V=(0,x.useMemo)(function(){return A(A({position:"absolute",userSelect:"none"},M[I]),w??{})},[w,I]);return(0,h.jsx)("div",{className:D||void 0,style:V,onMouseDown:k,onTouchStart:Y,children:N})})},"../../../../node_modules/react-contextmenu/es6/AbstractMenu.js":(m,_,d)=>{function h(K){"@babel/helpers - typeof";return h=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ie){return typeof ie}:function(ie){return ie&&typeof Symbol=="function"&&ie.constructor===Symbol&&ie!==Symbol.prototype?"symbol":typeof ie},h(K)}Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var x=M(d("../../../../node_modules/react/index.js")),A=E(d("../../../../node_modules/prop-types/index.js")),S=E(d("../../../../node_modules/react-contextmenu/es6/MenuItem.js"));function E(K){return K&&K.__esModule?K:{default:K}}function b(K){if(typeof WeakMap!="function")return null;var ie=new WeakMap,ne=new WeakMap;return(b=function(W){return W?ne:ie})(K)}function M(K,ie){if(K&&K.__esModule)return K;if(K===null||h(K)!=="object"&&typeof K!="function")return{default:K};var ne=b(ie);if(ne&&ne.has(K))return ne.get(K);var te={},W=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Q in K)if(Q!=="default"&&Object.prototype.hasOwnProperty.call(K,Q)){var re=W?Object.getOwnPropertyDescriptor(K,Q):null;re&&(re.get||re.set)?Object.defineProperty(te,Q,re):te[Q]=K[Q]}return te.default=K,ne&&ne.set(K,te),te}function T(K,ie,ne){return Object.defineProperty(K,"prototype",{writable:!1}),K}function O(K,ie){if(!(K instanceof ie))throw new TypeError("Cannot call a class as a function")}function R(K,ie){if(typeof ie!="function"&&ie!==null)throw new TypeError("Super expression must either be null or a function");K.prototype=Object.create(ie&&ie.prototype,{constructor:{value:K,writable:!0,configurable:!0}}),Object.defineProperty(K,"prototype",{writable:!1}),ie&&I(K,ie)}function I(K,ie){return I=Object.setPrototypeOf||function(te,W){return te.__proto__=W,te},I(K,ie)}function N(K){var ie=k();return function(){var te=Y(K),W;if(ie){var Q=Y(this).constructor;W=Reflect.construct(te,arguments,Q)}else W=te.apply(this,arguments);return w(this,W)}}function w(K,ie){if(ie&&(h(ie)==="object"||typeof ie=="function"))return ie;if(ie!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return D(K)}function D(K){if(K===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return K}function k(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Y(K){return Y=Object.setPrototypeOf?Object.getPrototypeOf:function(ne){return ne.__proto__||Object.getPrototypeOf(ne)},Y(K)}function V(K,ie,ne){return ie in K?Object.defineProperty(K,ie,{value:ne,enumerable:!0,configurable:!0,writable:!0}):K[ie]=ne,K}var ee=function(K){R(ne,K);var ie=N(ne);function ne(te){var W;return O(this,ne),W=ie.call(this,te),V(D(W),"handleKeyNavigation",function(Q){if(W.state.isVisible!==!1)switch(Q.keyCode){case 37:case 27:Q.preventDefault(),W.hideMenu(Q);break;case 38:Q.preventDefault(),W.selectChildren(!0);break;case 40:Q.preventDefault(),W.selectChildren(!1);break;case 39:W.tryToOpenSubMenu(Q);break;case 13:Q.preventDefault(),W.tryToOpenSubMenu(Q);{var re=W.seletedItemRef&&W.seletedItemRef.props&&W.seletedItemRef.props.disabled;W.seletedItemRef&&W.seletedItemRef.ref instanceof HTMLElement&&!re?W.seletedItemRef.ref.click():W.hideMenu(Q)}break}}),V(D(W),"handleForceClose",function(){W.setState({forceSubMenuOpen:!1})}),V(D(W),"tryToOpenSubMenu",function(Q){W.state.selectedItem&&W.state.selectedItem.type===W.getSubMenuType()&&(Q.preventDefault(),W.setState({forceSubMenuOpen:!0}))}),V(D(W),"selectChildren",function(Q){var re=W.state.selectedItem,oe=[],X=0,se={},ue=function Se(we,ke){we&&([S.default,W.getSubMenuType()].indexOf(we.type)<0?x.default.Children.forEach(we.props.children,Se):we.props.divider||(we.props.disabled&&(++X,se[ke]=!0),oe.push(we)))};if(x.default.Children.forEach(W.props.children,ue),X===oe.length)return;function he(Se){var we=Se,ke=function(){Q?--we:++we,we<0?we=oe.length-1:we>=oe.length&&(we=0)};do ke();while(we!==Se&&se[we]);return we===Se?null:we}var fe=oe.indexOf(re),Ae=he(fe);Ae!==null&&W.setState({selectedItem:oe[Ae],forceSubMenuOpen:!1})}),V(D(W),"onChildMouseMove",function(Q){W.state.selectedItem!==Q&&W.setState({selectedItem:Q,forceSubMenuOpen:!1})}),V(D(W),"onChildMouseLeave",function(){W.setState({selectedItem:null,forceSubMenuOpen:!1})}),V(D(W),"renderChildren",function(Q){return x.default.Children.map(Q,function(re){var oe={};return x.default.isValidElement(re)?[S.default,W.getSubMenuType()].indexOf(re.type)<0?(oe.children=W.renderChildren(re.props.children),x.default.cloneElement(re,oe)):(oe.onMouseLeave=W.onChildMouseLeave.bind(D(W)),re.type===W.getSubMenuType()&&(oe.forceOpen=W.state.forceSubMenuOpen&&W.state.selectedItem===re,oe.forceClose=W.handleForceClose,oe.parentKeyNavigationHandler=W.handleKeyNavigation),!re.props.divider&&W.state.selectedItem===re?(oe.selected=!0,oe.ref=function(X){W.seletedItemRef=X},x.default.cloneElement(re,oe)):(oe.onMouseMove=function(){return W.onChildMouseMove(re)},x.default.cloneElement(re,oe))):re})}),W.seletedItemRef=null,W.state={selectedItem:null,forceSubMenuOpen:!1},W}return T(ne)}(x.Component);_.default=ee,V(ee,"propTypes",{children:A.default.node.isRequired})},"../../../../node_modules/react-contextmenu/es6/ContextMenu.js":(m,_,d)=>{function h(Q){"@babel/helpers - typeof";return h=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(re){return typeof re}:function(re){return re&&typeof Symbol=="function"&&re.constructor===Symbol&&re!==Symbol.prototype?"symbol":typeof re},h(Q)}Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var x=I(d("../../../../node_modules/react/index.js")),A=I(d("../../../../node_modules/prop-types/index.js")),S=I(d("../../../../node_modules/classnames/index.js")),E=I(d("../../../../node_modules/object-assign/index.js")),b=I(d("../../../../node_modules/react-contextmenu/es6/globalEventListener.js")),M=I(d("../../../../node_modules/react-contextmenu/es6/AbstractMenu.js")),T=I(d("../../../../node_modules/react-contextmenu/es6/SubMenu.js")),O=d("../../../../node_modules/react-contextmenu/es6/actions.js"),R=d("../../../../node_modules/react-contextmenu/es6/helpers.js");function I(Q){return Q&&Q.__esModule?Q:{default:Q}}function N(Q,re){if(!(Q instanceof re))throw new TypeError("Cannot call a class as a function")}function w(Q,re){for(var oe=0;oe<re.length;oe++){var X=re[oe];X.enumerable=X.enumerable||!1,X.configurable=!0,"value"in X&&(X.writable=!0),Object.defineProperty(Q,X.key,X)}}function D(Q,re,oe){return re&&w(Q.prototype,re),Object.defineProperty(Q,"prototype",{writable:!1}),Q}function k(Q,re){if(typeof re!="function"&&re!==null)throw new TypeError("Super expression must either be null or a function");Q.prototype=Object.create(re&&re.prototype,{constructor:{value:Q,writable:!0,configurable:!0}}),Object.defineProperty(Q,"prototype",{writable:!1}),re&&Y(Q,re)}function Y(Q,re){return Y=Object.setPrototypeOf||function(X,se){return X.__proto__=se,X},Y(Q,re)}function V(Q){var re=ie();return function(){var X=ne(Q),se;if(re){var ue=ne(this).constructor;se=Reflect.construct(X,arguments,ue)}else se=X.apply(this,arguments);return ee(this,se)}}function ee(Q,re){if(re&&(h(re)==="object"||typeof re=="function"))return re;if(re!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return K(Q)}function K(Q){if(Q===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Q}function ie(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ne(Q){return ne=Object.setPrototypeOf?Object.getPrototypeOf:function(oe){return oe.__proto__||Object.getPrototypeOf(oe)},ne(Q)}function te(Q,re,oe){return re in Q?Object.defineProperty(Q,re,{value:oe,enumerable:!0,configurable:!0,writable:!0}):Q[re]=oe,Q}var W=function(Q){k(oe,Q);var re=V(oe);function oe(X){var se;return N(this,oe),se=re.call(this,X),te(K(se),"registerHandlers",function(){document.addEventListener("mousedown",se.handleOutsideClick),document.addEventListener("touchstart",se.handleOutsideClick),se.props.preventHideOnScroll||document.addEventListener("scroll",se.handleHide),se.props.preventHideOnContextMenu||document.addEventListener("contextmenu",se.handleHide),document.addEventListener("keydown",se.handleKeyNavigation),se.props.preventHideOnResize||window.addEventListener("resize",se.handleHide)}),te(K(se),"unregisterHandlers",function(){document.removeEventListener("mousedown",se.handleOutsideClick),document.removeEventListener("touchstart",se.handleOutsideClick),document.removeEventListener("scroll",se.handleHide),document.removeEventListener("contextmenu",se.handleHide),document.removeEventListener("keydown",se.handleKeyNavigation),window.removeEventListener("resize",se.handleHide)}),te(K(se),"handleShow",function(ue){if(!(ue.detail.id!==se.props.id||se.state.isVisible)){var he=ue.detail.position,fe=he.x,Ae=he.y;se.setState({isVisible:!0,x:fe,y:Ae}),se.registerHandlers(),(0,R.callIfExists)(se.props.onShow,ue)}}),te(K(se),"handleHide",function(ue){se.state.isVisible&&(!ue.detail||!ue.detail.id||ue.detail.id===se.props.id)&&(se.unregisterHandlers(),se.setState({isVisible:!1,selectedItem:null,forceSubMenuOpen:!1}),(0,R.callIfExists)(se.props.onHide,ue))}),te(K(se),"handleOutsideClick",function(ue){se.menu.contains(ue.target)||(0,O.hideMenu)()}),te(K(se),"handleMouseLeave",function(ue){ue.preventDefault(),(0,R.callIfExists)(se.props.onMouseLeave,ue,(0,E.default)({},se.props.data,R.store.data),R.store.target),se.props.hideOnLeave&&(0,O.hideMenu)()}),te(K(se),"handleContextMenu",function(ue){se.handleHide(ue)}),te(K(se),"hideMenu",function(ue){(ue.keyCode===27||ue.keyCode===13)&&(0,O.hideMenu)()}),te(K(se),"getMenuPosition",function(){var ue=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,fe={top:he,left:ue};if(!se.menu)return fe;var Ae=window,Se=Ae.innerWidth,we=Ae.innerHeight,ke=se.menu.getBoundingClientRect();return he+ke.height>we&&(fe.top-=ke.height),ue+ke.width>Se&&(fe.left-=ke.width),fe.top<0&&(fe.top=ke.height<we?(we-ke.height)/2:0),fe.left<0&&(fe.left=ke.width<Se?(Se-ke.width)/2:0),fe}),te(K(se),"getRTLMenuPosition",function(){var ue=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,fe={top:he,left:ue};if(!se.menu)return fe;var Ae=window,Se=Ae.innerWidth,we=Ae.innerHeight,ke=se.menu.getBoundingClientRect();return fe.left=ue-ke.width,he+ke.height>we&&(fe.top-=ke.height),fe.left<0&&(fe.left+=ke.width),fe.top<0&&(fe.top=ke.height<we?(we-ke.height)/2:0),fe.left+ke.width>Se&&(fe.left=ke.width<Se?(Se-ke.width)/2:0),fe}),te(K(se),"menuRef",function(ue){se.menu=ue}),se.state=(0,E.default)({},se.state,{x:0,y:0,isVisible:!1}),se}return D(oe,[{key:"getSubMenuType",value:function(){return T.default}},{key:"componentDidMount",value:function(){this.listenId=b.default.register(this.handleShow,this.handleHide)}},{key:"componentDidUpdate",value:function(){var se=this,ue=window.requestAnimationFrame||setTimeout;this.state.isVisible?ue(function(){var he=se.state,fe=he.x,Ae=he.y,Se=se.props.rtl?se.getRTLMenuPosition(fe,Ae):se.getMenuPosition(fe,Ae),we=Se.top,ke=Se.left;ue(function(){se.menu&&(se.menu.style.top="".concat(we,"px"),se.menu.style.left="".concat(ke,"px"),se.menu.style.opacity=1,se.menu.style.pointerEvents="auto")})}):ue(function(){se.menu&&(se.menu.style.opacity=0,se.menu.style.pointerEvents="none")})}},{key:"componentWillUnmount",value:function(){this.listenId&&b.default.unregister(this.listenId),this.unregisterHandlers()}},{key:"render",value:function(){var se=this.props,ue=se.children,he=se.className,fe=se.style,Ae=this.state.isVisible,Se=(0,E.default)({},fe,{position:"fixed",opacity:0,pointerEvents:"none"}),we=(0,S.default)(R.cssClasses.menu,he,te({},R.cssClasses.menuVisible,Ae));return x.default.createElement("nav",{role:"menu",tabIndex:"-1",ref:this.menuRef,style:Se,className:we,onContextMenu:this.handleContextMenu,onMouseLeave:this.handleMouseLeave},this.renderChildren(ue))}}]),oe}(M.default);_.default=W,te(W,"propTypes",{id:A.default.string.isRequired,children:A.default.node.isRequired,data:A.default.object,className:A.default.string,hideOnLeave:A.default.bool,rtl:A.default.bool,onHide:A.default.func,onMouseLeave:A.default.func,onShow:A.default.func,preventHideOnContextMenu:A.default.bool,preventHideOnResize:A.default.bool,preventHideOnScroll:A.default.bool,style:A.default.object}),te(W,"defaultProps",{className:"",data:{},hideOnLeave:!1,rtl:!1,onHide:function(){return null},onMouseLeave:function(){return null},onShow:function(){return null},preventHideOnContextMenu:!1,preventHideOnResize:!1,preventHideOnScroll:!1,style:{}})},"../../../../node_modules/react-contextmenu/es6/ContextMenuTrigger.js":(m,_,d)=>{function h(W){"@babel/helpers - typeof";return h=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Q){return typeof Q}:function(Q){return Q&&typeof Symbol=="function"&&Q.constructor===Symbol&&Q!==Symbol.prototype?"symbol":typeof Q},h(W)}Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var x=R(d("../../../../node_modules/react/index.js")),A=T(d("../../../../node_modules/prop-types/index.js")),S=T(d("../../../../node_modules/classnames/index.js")),E=T(d("../../../../node_modules/object-assign/index.js")),b=d("../../../../node_modules/react-contextmenu/es6/actions.js"),M=d("../../../../node_modules/react-contextmenu/es6/helpers.js");function T(W){return W&&W.__esModule?W:{default:W}}function O(W){if(typeof WeakMap!="function")return null;var Q=new WeakMap,re=new WeakMap;return(O=function(X){return X?re:Q})(W)}function R(W,Q){if(W&&W.__esModule)return W;if(W===null||h(W)!=="object"&&typeof W!="function")return{default:W};var re=O(Q);if(re&&re.has(W))return re.get(W);var oe={},X=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var se in W)if(se!=="default"&&Object.prototype.hasOwnProperty.call(W,se)){var ue=X?Object.getOwnPropertyDescriptor(W,se):null;ue&&(ue.get||ue.set)?Object.defineProperty(oe,se,ue):oe[se]=W[se]}return oe.default=W,re&&re.set(W,oe),oe}function I(W,Q){if(!(W instanceof Q))throw new TypeError("Cannot call a class as a function")}function N(W,Q){for(var re=0;re<Q.length;re++){var oe=Q[re];oe.enumerable=oe.enumerable||!1,oe.configurable=!0,"value"in oe&&(oe.writable=!0),Object.defineProperty(W,oe.key,oe)}}function w(W,Q,re){return Q&&N(W.prototype,Q),Object.defineProperty(W,"prototype",{writable:!1}),W}function D(W,Q){if(typeof Q!="function"&&Q!==null)throw new TypeError("Super expression must either be null or a function");W.prototype=Object.create(Q&&Q.prototype,{constructor:{value:W,writable:!0,configurable:!0}}),Object.defineProperty(W,"prototype",{writable:!1}),Q&&k(W,Q)}function k(W,Q){return k=Object.setPrototypeOf||function(oe,X){return oe.__proto__=X,oe},k(W,Q)}function Y(W){var Q=K();return function(){var oe=ie(W),X;if(Q){var se=ie(this).constructor;X=Reflect.construct(oe,arguments,se)}else X=oe.apply(this,arguments);return V(this,X)}}function V(W,Q){if(Q&&(h(Q)==="object"||typeof Q=="function"))return Q;if(Q!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ee(W)}function ee(W){if(W===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return W}function K(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ie(W){return ie=Object.setPrototypeOf?Object.getPrototypeOf:function(re){return re.__proto__||Object.getPrototypeOf(re)},ie(W)}function ne(W,Q,re){return Q in W?Object.defineProperty(W,Q,{value:re,enumerable:!0,configurable:!0,writable:!0}):W[Q]=re,W}var te=function(W){D(re,W);var Q=Y(re);function re(){var oe;I(this,re);for(var X=arguments.length,se=new Array(X),ue=0;ue<X;ue++)se[ue]=arguments[ue];return oe=Q.call.apply(Q,[this].concat(se)),ne(ee(oe),"touchHandled",!1),ne(ee(oe),"handleMouseDown",function(he){oe.props.holdToDisplay>=0&&he.button===0&&(he.persist(),he.stopPropagation(),oe.mouseDownTimeoutId=setTimeout(function(){return oe.handleContextClick(he)},oe.props.holdToDisplay)),(0,M.callIfExists)(oe.props.attributes.onMouseDown,he)}),ne(ee(oe),"handleMouseUp",function(he){he.button===0&&clearTimeout(oe.mouseDownTimeoutId),(0,M.callIfExists)(oe.props.attributes.onMouseUp,he)}),ne(ee(oe),"handleMouseOut",function(he){he.button===0&&clearTimeout(oe.mouseDownTimeoutId),(0,M.callIfExists)(oe.props.attributes.onMouseOut,he)}),ne(ee(oe),"handleTouchstart",function(he){oe.touchHandled=!1,oe.props.holdToDisplay>=0&&(he.persist(),he.stopPropagation(),oe.touchstartTimeoutId=setTimeout(function(){oe.handleContextClick(he),oe.touchHandled=!0},oe.props.holdToDisplay)),(0,M.callIfExists)(oe.props.attributes.onTouchStart,he)}),ne(ee(oe),"handleTouchEnd",function(he){oe.touchHandled&&he.preventDefault(),clearTimeout(oe.touchstartTimeoutId),(0,M.callIfExists)(oe.props.attributes.onTouchEnd,he)}),ne(ee(oe),"handleContextMenu",function(he){he.button===oe.props.mouseButton&&oe.handleContextClick(he),(0,M.callIfExists)(oe.props.attributes.onContextMenu,he)}),ne(ee(oe),"handleMouseClick",function(he){he.button===oe.props.mouseButton&&oe.handleContextClick(he),(0,M.callIfExists)(oe.props.attributes.onClick,he)}),ne(ee(oe),"handleContextClick",function(he){if(!oe.props.disable&&!(oe.props.disableIfShiftIsPressed&&he.shiftKey)){he.preventDefault(),he.stopPropagation();var fe=he.clientX||he.touches&&he.touches[0].pageX,Ae=he.clientY||he.touches&&he.touches[0].pageY;oe.props.posX&&(fe-=oe.props.posX),oe.props.posY&&(Ae-=oe.props.posY),(0,b.hideMenu)();var Se=(0,M.callIfExists)(oe.props.collect,oe.props),we={position:{x:fe,y:Ae},target:oe.elem,id:oe.props.id};Se&&typeof Se.then=="function"?Se.then(function(ke){we.data=(0,E.default)({},ke,{target:he.target}),(0,b.showMenu)(we)}):(we.data=(0,E.default)({},Se,{target:he.target}),(0,b.showMenu)(we))}}),ne(ee(oe),"elemRef",function(he){oe.elem=he}),oe}return w(re,[{key:"render",value:function(){var X=this.props,se=X.renderTag,ue=X.attributes,he=X.children,fe=(0,E.default)({},ue,{className:(0,S.default)(M.cssClasses.menuWrapper,ue.className),onContextMenu:this.handleContextMenu,onClick:this.handleMouseClick,onMouseDown:this.handleMouseDown,onMouseUp:this.handleMouseUp,onTouchStart:this.handleTouchstart,onTouchEnd:this.handleTouchEnd,onMouseOut:this.handleMouseOut,ref:this.elemRef});return x.default.createElement(se,fe,he)}}]),re}(x.Component);_.default=te,ne(te,"propTypes",{id:A.default.string.isRequired,children:A.default.node.isRequired,attributes:A.default.object,collect:A.default.func,disable:A.default.bool,holdToDisplay:A.default.number,posX:A.default.number,posY:A.default.number,renderTag:A.default.elementType,mouseButton:A.default.number,disableIfShiftIsPressed:A.default.bool}),ne(te,"defaultProps",{attributes:{},collect:function(){return null},disable:!1,holdToDisplay:1e3,renderTag:"div",posX:0,posY:0,mouseButton:2,disableIfShiftIsPressed:!1})},"../../../../node_modules/react-contextmenu/es6/MenuItem.js":(m,_,d)=>{function h(Q){"@babel/helpers - typeof";return h=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(re){return typeof re}:function(re){return re&&typeof Symbol=="function"&&re.constructor===Symbol&&re!==Symbol.prototype?"symbol":typeof re},h(Q)}Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var x=R(d("../../../../node_modules/react/index.js")),A=T(d("../../../../node_modules/prop-types/index.js")),S=T(d("../../../../node_modules/classnames/index.js")),E=T(d("../../../../node_modules/object-assign/index.js")),b=d("../../../../node_modules/react-contextmenu/es6/actions.js"),M=d("../../../../node_modules/react-contextmenu/es6/helpers.js");function T(Q){return Q&&Q.__esModule?Q:{default:Q}}function O(Q){if(typeof WeakMap!="function")return null;var re=new WeakMap,oe=new WeakMap;return(O=function(se){return se?oe:re})(Q)}function R(Q,re){if(Q&&Q.__esModule)return Q;if(Q===null||h(Q)!=="object"&&typeof Q!="function")return{default:Q};var oe=O(re);if(oe&&oe.has(Q))return oe.get(Q);var X={},se=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var ue in Q)if(ue!=="default"&&Object.prototype.hasOwnProperty.call(Q,ue)){var he=se?Object.getOwnPropertyDescriptor(Q,ue):null;he&&(he.get||he.set)?Object.defineProperty(X,ue,he):X[ue]=Q[ue]}return X.default=Q,oe&&oe.set(Q,X),X}function I(){return I=Object.assign||function(Q){for(var re=1;re<arguments.length;re++){var oe=arguments[re];for(var X in oe)Object.prototype.hasOwnProperty.call(oe,X)&&(Q[X]=oe[X])}return Q},I.apply(this,arguments)}function N(Q,re){if(!(Q instanceof re))throw new TypeError("Cannot call a class as a function")}function w(Q,re){for(var oe=0;oe<re.length;oe++){var X=re[oe];X.enumerable=X.enumerable||!1,X.configurable=!0,"value"in X&&(X.writable=!0),Object.defineProperty(Q,X.key,X)}}function D(Q,re,oe){return re&&w(Q.prototype,re),Object.defineProperty(Q,"prototype",{writable:!1}),Q}function k(Q,re){if(typeof re!="function"&&re!==null)throw new TypeError("Super expression must either be null or a function");Q.prototype=Object.create(re&&re.prototype,{constructor:{value:Q,writable:!0,configurable:!0}}),Object.defineProperty(Q,"prototype",{writable:!1}),re&&Y(Q,re)}function Y(Q,re){return Y=Object.setPrototypeOf||function(X,se){return X.__proto__=se,X},Y(Q,re)}function V(Q){var re=ie();return function(){var X=ne(Q),se;if(re){var ue=ne(this).constructor;se=Reflect.construct(X,arguments,ue)}else se=X.apply(this,arguments);return ee(this,se)}}function ee(Q,re){if(re&&(h(re)==="object"||typeof re=="function"))return re;if(re!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return K(Q)}function K(Q){if(Q===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Q}function ie(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ne(Q){return ne=Object.setPrototypeOf?Object.getPrototypeOf:function(oe){return oe.__proto__||Object.getPrototypeOf(oe)},ne(Q)}function te(Q,re,oe){return re in Q?Object.defineProperty(Q,re,{value:oe,enumerable:!0,configurable:!0,writable:!0}):Q[re]=oe,Q}var W=function(Q){k(oe,Q);var re=V(oe);function oe(){var X;N(this,oe);for(var se=arguments.length,ue=new Array(se),he=0;he<se;he++)ue[he]=arguments[he];return X=re.call.apply(re,[this].concat(ue)),te(K(X),"handleClick",function(fe){fe.button!==0&&fe.button!==1&&fe.preventDefault(),!(X.props.disabled||X.props.divider)&&((0,M.callIfExists)(X.props.onClick,fe,(0,E.default)({},X.props.data,M.store.data),M.store.target),!X.props.preventClose&&(0,b.hideMenu)())}),X}return D(oe,[{key:"render",value:function(){var se,ue=this,he=this.props,fe=he.attributes,Ae=he.children,Se=he.className,we=he.disabled,ke=he.divider,st=he.selected,Ve=(0,S.default)(Se,M.cssClasses.menuItem,fe.className,(se={},te(se,(0,S.default)(M.cssClasses.menuItemDisabled,fe.disabledClassName),we),te(se,(0,S.default)(M.cssClasses.menuItemDivider,fe.dividerClassName),ke),te(se,(0,S.default)(M.cssClasses.menuItemSelected,fe.selectedClassName),st),se));return x.default.createElement("div",I({},fe,{className:Ve,role:"menuitem",tabIndex:"-1","aria-disabled":we?"true":"false","aria-orientation":ke?"horizontal":null,ref:function(ct){ue.ref=ct},onMouseMove:this.props.onMouseMove,onMouseLeave:this.props.onMouseLeave,onTouchEnd:this.handleClick,onClick:this.handleClick}),ke?null:Ae)}}]),oe}(x.Component);_.default=W,te(W,"propTypes",{attributes:A.default.object,children:A.default.node,className:A.default.string,data:A.default.object,disabled:A.default.bool,divider:A.default.bool,onClick:A.default.func,onMouseLeave:A.default.func,onMouseMove:A.default.func,preventClose:A.default.bool,selected:A.default.bool}),te(W,"defaultProps",{attributes:{},children:null,className:"",data:{},disabled:!1,divider:!1,onClick:function(){return null},onMouseMove:function(){return null},onMouseLeave:function(){return null},preventClose:!1,selected:!1})},"../../../../node_modules/react-contextmenu/es6/SubMenu.js":(m,_,d)=>{function h(Q){"@babel/helpers - typeof";return h=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(re){return typeof re}:function(re){return re&&typeof Symbol=="function"&&re.constructor===Symbol&&re!==Symbol.prototype?"symbol":typeof re},h(Q)}Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var x=R(d("../../../../node_modules/react/index.js")),A=R(d("../../../../node_modules/prop-types/index.js")),S=R(d("../../../../node_modules/classnames/index.js")),E=R(d("../../../../node_modules/object-assign/index.js")),b=d("../../../../node_modules/react-contextmenu/es6/actions.js"),M=R(d("../../../../node_modules/react-contextmenu/es6/AbstractMenu.js")),T=d("../../../../node_modules/react-contextmenu/es6/helpers.js"),O=R(d("../../../../node_modules/react-contextmenu/es6/globalEventListener.js"));function R(Q){return Q&&Q.__esModule?Q:{default:Q}}function I(){return I=Object.assign||function(Q){for(var re=1;re<arguments.length;re++){var oe=arguments[re];for(var X in oe)Object.prototype.hasOwnProperty.call(oe,X)&&(Q[X]=oe[X])}return Q},I.apply(this,arguments)}function N(Q,re){if(!(Q instanceof re))throw new TypeError("Cannot call a class as a function")}function w(Q,re){for(var oe=0;oe<re.length;oe++){var X=re[oe];X.enumerable=X.enumerable||!1,X.configurable=!0,"value"in X&&(X.writable=!0),Object.defineProperty(Q,X.key,X)}}function D(Q,re,oe){return re&&w(Q.prototype,re),Object.defineProperty(Q,"prototype",{writable:!1}),Q}function k(Q,re){if(typeof re!="function"&&re!==null)throw new TypeError("Super expression must either be null or a function");Q.prototype=Object.create(re&&re.prototype,{constructor:{value:Q,writable:!0,configurable:!0}}),Object.defineProperty(Q,"prototype",{writable:!1}),re&&Y(Q,re)}function Y(Q,re){return Y=Object.setPrototypeOf||function(X,se){return X.__proto__=se,X},Y(Q,re)}function V(Q){var re=ie();return function(){var X=ne(Q),se;if(re){var ue=ne(this).constructor;se=Reflect.construct(X,arguments,ue)}else se=X.apply(this,arguments);return ee(this,se)}}function ee(Q,re){if(re&&(h(re)==="object"||typeof re=="function"))return re;if(re!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return K(Q)}function K(Q){if(Q===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Q}function ie(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ne(Q){return ne=Object.setPrototypeOf?Object.getPrototypeOf:function(oe){return oe.__proto__||Object.getPrototypeOf(oe)},ne(Q)}function te(Q,re,oe){return re in Q?Object.defineProperty(Q,re,{value:oe,enumerable:!0,configurable:!0,writable:!0}):Q[re]=oe,Q}var W=function(Q){k(oe,Q);var re=V(oe);function oe(X){var se;return N(this,oe),se=re.call(this,X),te(K(se),"getMenuPosition",function(){var ue=window,he=ue.innerWidth,fe=ue.innerHeight,Ae=se.subMenu.getBoundingClientRect(),Se={};return Ae.bottom>fe?Se.bottom=0:Se.top=0,Ae.right<he?Se.left="100%":Se.right="100%",Se}),te(K(se),"getRTLMenuPosition",function(){var ue=window,he=ue.innerHeight,fe=se.subMenu.getBoundingClientRect(),Ae={};return fe.bottom>he?Ae.bottom=0:Ae.top=0,fe.left<0?Ae.left="100%":Ae.right="100%",Ae}),te(K(se),"hideMenu",function(ue){ue.preventDefault(),se.hideSubMenu(ue)}),te(K(se),"hideSubMenu",function(ue){ue.detail&&ue.detail.id&&se.menu&&ue.detail.id!==se.menu.id||(se.props.forceOpen&&se.props.forceClose(),se.setState({visible:!1,selectedItem:null}),se.unregisterHandlers())}),te(K(se),"handleClick",function(ue){ue.preventDefault(),!se.props.disabled&&((0,T.callIfExists)(se.props.onClick,ue,(0,E.default)({},se.props.data,T.store.data),T.store.target),!(!se.props.onClick||se.props.preventCloseOnClick)&&(0,b.hideMenu)())}),te(K(se),"handleMouseEnter",function(){se.closetimer&&clearTimeout(se.closetimer),!(se.props.disabled||se.state.visible)&&(se.opentimer=setTimeout(function(){return se.setState({visible:!0,selectedItem:null})},se.props.hoverDelay))}),te(K(se),"handleMouseLeave",function(){se.opentimer&&clearTimeout(se.opentimer),se.state.visible&&(se.closetimer=setTimeout(function(){return se.setState({visible:!1,selectedItem:null})},se.props.hoverDelay))}),te(K(se),"menuRef",function(ue){se.menu=ue}),te(K(se),"subMenuRef",function(ue){se.subMenu=ue}),te(K(se),"registerHandlers",function(){document.removeEventListener("keydown",se.props.parentKeyNavigationHandler),document.addEventListener("keydown",se.handleKeyNavigation)}),te(K(se),"unregisterHandlers",function(ue){document.removeEventListener("keydown",se.handleKeyNavigation),ue||document.addEventListener("keydown",se.props.parentKeyNavigationHandler)}),se.state=(0,E.default)({},se.state,{visible:!1}),se}return D(oe,[{key:"componentDidMount",value:function(){this.listenId=O.default.register(function(){},this.hideSubMenu)}},{key:"getSubMenuType",value:function(){return oe}},{key:"shouldComponentUpdate",value:function(se,ue){return this.isVisibilityChange=(this.state.visible!==ue.visible||this.props.forceOpen!==se.forceOpen)&&!(this.state.visible&&se.forceOpen)&&!(this.props.forceOpen&&ue.visible),!0}},{key:"componentDidUpdate",value:function(){var se=this;if(this.isVisibilityChange)if(this.props.forceOpen||this.state.visible){var ue=window.requestAnimationFrame||setTimeout;ue(function(){var fe=se.props.rtl?se.getRTLMenuPosition():se.getMenuPosition();se.subMenu.style.removeProperty("top"),se.subMenu.style.removeProperty("bottom"),se.subMenu.style.removeProperty("left"),se.subMenu.style.removeProperty("right"),(0,T.hasOwnProp)(fe,"top")&&(se.subMenu.style.top=fe.top),(0,T.hasOwnProp)(fe,"left")&&(se.subMenu.style.left=fe.left),(0,T.hasOwnProp)(fe,"bottom")&&(se.subMenu.style.bottom=fe.bottom),(0,T.hasOwnProp)(fe,"right")&&(se.subMenu.style.right=fe.right),se.subMenu.classList.add(T.cssClasses.menuVisible),se.registerHandlers(),se.setState({selectedItem:null})})}else{var he=function fe(){se.subMenu.removeEventListener("transitionend",fe),se.subMenu.style.removeProperty("bottom"),se.subMenu.style.removeProperty("right"),se.subMenu.style.top=0,se.subMenu.style.left="100%",se.unregisterHandlers()};this.subMenu.addEventListener("transitionend",he),this.subMenu.classList.remove(T.cssClasses.menuVisible)}}},{key:"componentWillUnmount",value:function(){this.listenId&&O.default.unregister(this.listenId),this.opentimer&&clearTimeout(this.opentimer),this.closetimer&&clearTimeout(this.closetimer),this.unregisterHandlers(!0)}},{key:"render",value:function(){var se,ue=this.props,he=ue.children,fe=ue.attributes,Ae=ue.disabled,Se=ue.title,we=ue.selected,ke=this.state.visible,st={ref:this.menuRef,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,className:(0,S.default)(T.cssClasses.menuItem,T.cssClasses.subMenu,fe.listClassName),style:{position:"relative"}},Ve={className:(0,S.default)(T.cssClasses.menuItem,fe.className,(se={},te(se,(0,S.default)(T.cssClasses.menuItemDisabled,fe.disabledClassName),Ae),te(se,(0,S.default)(T.cssClasses.menuItemActive,fe.visibleClassName),ke),te(se,(0,S.default)(T.cssClasses.menuItemSelected,fe.selectedClassName),we),se)),onMouseMove:this.props.onMouseMove,onMouseOut:this.props.onMouseOut,onClick:this.handleClick},Ke={ref:this.subMenuRef,style:{position:"absolute",transition:"opacity 1ms",top:0,left:"100%"},className:(0,S.default)(T.cssClasses.menu,this.props.className)};return x.default.createElement("nav",I({},st,{role:"menuitem",tabIndex:"-1","aria-haspopup":"true"}),x.default.createElement("div",I({},fe,Ve),Se),x.default.createElement("nav",I({},Ke,{role:"menu",tabIndex:"-1"}),this.renderChildren(he)))}}]),oe}(M.default);_.default=W,te(W,"propTypes",{children:A.default.node.isRequired,attributes:A.default.object,title:A.default.node.isRequired,className:A.default.string,disabled:A.default.bool,hoverDelay:A.default.number,rtl:A.default.bool,selected:A.default.bool,onMouseMove:A.default.func,onMouseOut:A.default.func,forceOpen:A.default.bool,forceClose:A.default.func,parentKeyNavigationHandler:A.default.func}),te(W,"defaultProps",{disabled:!1,hoverDelay:500,attributes:{},className:"",rtl:!1,selected:!1,onMouseMove:function(){return null},onMouseOut:function(){return null},forceOpen:!1,forceClose:function(){return null},parentKeyNavigationHandler:function(){return null}})},"../../../../node_modules/react-contextmenu/es6/actions.js":(m,_,d)=>{Object.defineProperty(_,"__esModule",{value:!0}),_.MENU_SHOW=_.MENU_HIDE=void 0,_.dispatchGlobalEvent=b,_.hideMenu=T,_.showMenu=M;var h=A(d("../../../../node_modules/object-assign/index.js")),x=d("../../../../node_modules/react-contextmenu/es6/helpers.js");function A(O){return O&&O.__esModule?O:{default:O}}var S="REACT_CONTEXTMENU_SHOW";_.MENU_SHOW=S;var E="REACT_CONTEXTMENU_HIDE";_.MENU_HIDE=E;function b(O,R){var I=arguments.length>2&&arguments[2]!==void 0?arguments[2]:window,N;typeof window.CustomEvent=="function"?N=new window.CustomEvent(O,{detail:R}):(N=document.createEvent("CustomEvent"),N.initCustomEvent(O,!1,!0,R)),I&&(I.dispatchEvent(N),(0,h.default)(x.store,R))}function M(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},R=arguments.length>1?arguments[1]:void 0;b(S,(0,h.default)({},O,{type:S}),R)}function T(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},R=arguments.length>1?arguments[1]:void 0;b(E,(0,h.default)({},O,{type:E}),R)}},"../../../../node_modules/react-contextmenu/es6/connectMenu.js":(m,_,d)=>{function h(se){"@babel/helpers - typeof";return h=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ue){return typeof ue}:function(ue){return ue&&typeof Symbol=="function"&&ue.constructor===Symbol&&ue!==Symbol.prototype?"symbol":typeof ue},h(se)}Object.defineProperty(_,"__esModule",{value:!0}),_.default=X;var x=M(d("../../../../node_modules/react/index.js")),A=E(d("../../../../node_modules/react-contextmenu/es6/ContextMenuTrigger.js")),S=E(d("../../../../node_modules/react-contextmenu/es6/globalEventListener.js"));function E(se){return se&&se.__esModule?se:{default:se}}function b(se){if(typeof WeakMap!="function")return null;var ue=new WeakMap,he=new WeakMap;return(b=function(Ae){return Ae?he:ue})(se)}function M(se,ue){if(se&&se.__esModule)return se;if(se===null||h(se)!=="object"&&typeof se!="function")return{default:se};var he=b(ue);if(he&&he.has(se))return he.get(se);var fe={},Ae=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Se in se)if(Se!=="default"&&Object.prototype.hasOwnProperty.call(se,Se)){var we=Ae?Object.getOwnPropertyDescriptor(se,Se):null;we&&(we.get||we.set)?Object.defineProperty(fe,Se,we):fe[Se]=se[Se]}return fe.default=se,he&&he.set(se,fe),fe}function T(){return T=Object.assign||function(se){for(var ue=1;ue<arguments.length;ue++){var he=arguments[ue];for(var fe in he)Object.prototype.hasOwnProperty.call(he,fe)&&(se[fe]=he[fe])}return se},T.apply(this,arguments)}function O(se,ue){if(!(se instanceof ue))throw new TypeError("Cannot call a class as a function")}function R(se,ue){for(var he=0;he<ue.length;he++){var fe=ue[he];fe.enumerable=fe.enumerable||!1,fe.configurable=!0,"value"in fe&&(fe.writable=!0),Object.defineProperty(se,fe.key,fe)}}function I(se,ue,he){return ue&&R(se.prototype,ue),Object.defineProperty(se,"prototype",{writable:!1}),se}function N(se,ue){if(typeof ue!="function"&&ue!==null)throw new TypeError("Super expression must either be null or a function");se.prototype=Object.create(ue&&ue.prototype,{constructor:{value:se,writable:!0,configurable:!0}}),Object.defineProperty(se,"prototype",{writable:!1}),ue&&w(se,ue)}function w(se,ue){return w=Object.setPrototypeOf||function(fe,Ae){return fe.__proto__=Ae,fe},w(se,ue)}function D(se){var ue=V();return function(){var fe=ee(se),Ae;if(ue){var Se=ee(this).constructor;Ae=Reflect.construct(fe,arguments,Se)}else Ae=fe.apply(this,arguments);return k(this,Ae)}}function k(se,ue){if(ue&&(h(ue)==="object"||typeof ue=="function"))return ue;if(ue!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Y(se)}function Y(se){if(se===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return se}function V(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ee(se){return ee=Object.setPrototypeOf?Object.getPrototypeOf:function(he){return he.__proto__||Object.getPrototypeOf(he)},ee(se)}function K(se,ue,he){return ue in se?Object.defineProperty(se,ue,{value:he,enumerable:!0,configurable:!0,writable:!0}):se[ue]=he,se}function ie(se){return Q(se)||W(se)||te(se)||ne()}function ne(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function te(se,ue){if(se){if(typeof se=="string")return re(se,ue);var he=Object.prototype.toString.call(se).slice(8,-1);if(he==="Object"&&se.constructor&&(he=se.constructor.name),he==="Map"||he==="Set")return Array.from(se);if(he==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(he))return re(se,ue)}}function W(se){if(typeof Symbol<"u"&&se[Symbol.iterator]!=null||se["@@iterator"]!=null)return Array.from(se)}function Q(se){if(Array.isArray(se))return re(se)}function re(se,ue){(ue==null||ue>se.length)&&(ue=se.length);for(var he=0,fe=new Array(ue);he<ue;he++)fe[he]=se[he];return fe}var oe=[].concat(ie(Object.keys(A.default.propTypes)),["children"]);function X(se){return function(he){return function(fe){N(Se,fe);var Ae=D(Se);function Se(we){var ke;return O(this,Se),ke=Ae.call(this,we),K(Y(ke),"handleShow",function(st){if(st.detail.id===se){var Ve=st.detail.data,Ke={};for(var ct in Ve)oe.includes(ct)||(Ke[ct]=Ve[ct]);ke.setState({trigger:Ke})}}),K(Y(ke),"handleHide",function(){ke.setState({trigger:null})}),ke.state={trigger:null},ke}return I(Se,[{key:"componentDidMount",value:function(){this.listenId=S.default.register(this.handleShow,this.handleHide)}},{key:"componentWillUnmount",value:function(){this.listenId&&S.default.unregister(this.listenId)}},{key:"render",value:function(){return x.default.createElement(he,T({},this.props,{id:se,trigger:this.state.trigger}))}}]),Se}(x.Component)}}},"../../../../node_modules/react-contextmenu/es6/globalEventListener.js":(m,_,d)=>{Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var h=d("../../../../node_modules/react-contextmenu/es6/actions.js"),x=d("../../../../node_modules/react-contextmenu/es6/helpers.js");function A(T,O,R){return Object.defineProperty(T,"prototype",{writable:!1}),T}function S(T,O){if(!(T instanceof O))throw new TypeError("Cannot call a class as a function")}function E(T,O,R){return O in T?Object.defineProperty(T,O,{value:R,enumerable:!0,configurable:!0,writable:!0}):T[O]=R,T}var b=A(function T(){var O=this;S(this,T),E(this,"handleShowEvent",function(R){for(var I in O.callbacks)(0,x.hasOwnProp)(O.callbacks,I)&&O.callbacks[I].show(R)}),E(this,"handleHideEvent",function(R){for(var I in O.callbacks)(0,x.hasOwnProp)(O.callbacks,I)&&O.callbacks[I].hide(R)}),E(this,"register",function(R,I){var N=(0,x.uniqueId)();return O.callbacks[N]={show:R,hide:I},N}),E(this,"unregister",function(R){R&&O.callbacks[R]&&delete O.callbacks[R]}),this.callbacks={},x.canUseDOM&&(window.addEventListener(h.MENU_SHOW,this.handleShowEvent),window.addEventListener(h.MENU_HIDE,this.handleHideEvent))}),M=new b;_.default=M},"../../../../node_modules/react-contextmenu/es6/helpers.js":(m,_)=>{Object.defineProperty(_,"__esModule",{value:!0}),_.callIfExists=d,_.cssClasses=_.canUseDOM=void 0,_.hasOwnProp=h,_.store=void 0,_.uniqueId=x;function d(b){for(var M=arguments.length,T=new Array(M>1?M-1:0),O=1;O<M;O++)T[O-1]=arguments[O];return typeof b=="function"&&b.apply(void 0,T)}function h(b,M){return Object.prototype.hasOwnProperty.call(b,M)}function x(){return Math.random().toString(36).substring(7)}var A={menu:"react-contextmenu",menuVisible:"react-contextmenu--visible",menuWrapper:"react-contextmenu-wrapper",menuItem:"react-contextmenu-item",menuItemActive:"react-contextmenu-item--active",menuItemDisabled:"react-contextmenu-item--disabled",menuItemDivider:"react-contextmenu-item--divider",menuItemSelected:"react-contextmenu-item--selected",subMenu:"react-contextmenu-submenu"};_.cssClasses=A;var S={};_.store=S;var E=!!(typeof window<"u"&&window.document&&window.document.createElement);_.canUseDOM=E},"../../../../node_modules/react-contextmenu/es6/index.js":(m,_,d)=>{Object.defineProperty(_,"__esModule",{value:!0}),Object.defineProperty(_,"ContextMenu",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(_,"ContextMenuTrigger",{enumerable:!0,get:function(){return x.default}}),Object.defineProperty(_,"MenuItem",{enumerable:!0,get:function(){return A.default}}),Object.defineProperty(_,"SubMenu",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(_,"connectMenu",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(_,"hideMenu",{enumerable:!0,get:function(){return b.hideMenu}}),Object.defineProperty(_,"showMenu",{enumerable:!0,get:function(){return b.showMenu}});var h=M(d("../../../../node_modules/react-contextmenu/es6/ContextMenu.js")),x=M(d("../../../../node_modules/react-contextmenu/es6/ContextMenuTrigger.js")),A=M(d("../../../../node_modules/react-contextmenu/es6/MenuItem.js")),S=M(d("../../../../node_modules/react-contextmenu/es6/SubMenu.js")),E=M(d("../../../../node_modules/react-contextmenu/es6/connectMenu.js")),b=d("../../../../node_modules/react-contextmenu/es6/actions.js");function M(T){return T&&T.__esModule?T:{default:T}}},"../../../../node_modules/react-dom/cjs/react-dom.development.js":(m,_,d)=>{/** @license React v17.0.2
 * react-dom.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */(function(){var h=d("../../../../node_modules/react/index.js"),x=d("../../../../node_modules/object-assign/index.js"),A=d("../../../../node_modules/scheduler/index.js"),S=d("../../../../node_modules/scheduler/tracing.js"),E=h.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(g){{for(var v=arguments.length,L=new Array(v>1?v-1:0),z=1;z<v;z++)L[z-1]=arguments[z];T("warn",g,L)}}function M(g){{for(var v=arguments.length,L=new Array(v>1?v-1:0),z=1;z<v;z++)L[z-1]=arguments[z];T("error",g,L)}}function T(g,v,L){{var z=E.ReactDebugCurrentFrame,j=z.getStackAddendum();j!==""&&(v+="%s",L=L.concat([j]));var J=L.map(function(le){return""+le});J.unshift("Warning: "+v),Function.prototype.apply.call(console[g],console,J)}}if(!h)throw Error("ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.");var O=0,R=1,I=2,N=3,w=4,D=5,k=6,Y=7,V=8,ee=9,K=10,ie=11,ne=12,te=13,W=14,Q=15,re=16,oe=17,X=18,se=19,ue=20,he=21,fe=22,Ae=23,Se=24,we=!0,ke=!1,st=!1,Ve=!1,Ke=new Set,ct={},nt={};function at(g,v){xt(g,v),xt(g+"Capture",v)}function xt(g,v){ct[g]&&M("EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.",g),ct[g]=v;{var L=g.toLowerCase();nt[L]=g,g==="onDoubleClick"&&(nt.ondblclick=g)}for(var z=0;z<v.length;z++)Ke.add(v[z])}var Qe=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",kt=0,ot=1,At=2,Me=3,je=4,rt=5,yt=6,Rt=":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",Nt=Rt+"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",Kt="data-reactroot",si=new RegExp("^["+Rt+"]["+Nt+"]*$"),Pi=Object.prototype.hasOwnProperty,gi={},bi={};function wi(g){return Pi.call(bi,g)?!0:Pi.call(gi,g)?!1:si.test(g)?(bi[g]=!0,!0):(gi[g]=!0,M("Invalid attribute name: `%s`",g),!1)}function Ni(g,v,L){return v!==null?v.type===kt:L?!1:g.length>2&&(g[0]==="o"||g[0]==="O")&&(g[1]==="n"||g[1]==="N")}function qt(g,v,L,z){if(L!==null&&L.type===kt)return!1;switch(typeof v){case"function":case"symbol":return!0;case"boolean":{if(z)return!1;if(L!==null)return!L.acceptsBooleans;var j=g.toLowerCase().slice(0,5);return j!=="data-"&&j!=="aria-"}default:return!1}}function ci(g,v,L,z){if(v===null||typeof v>"u"||qt(g,v,L,z))return!0;if(z)return!1;if(L!==null)switch(L.type){case Me:return!v;case je:return v===!1;case rt:return isNaN(v);case yt:return isNaN(v)||v<1}return!1}function qe(g){return Ot.hasOwnProperty(g)?Ot[g]:null}function ri(g,v,L,z,j,J,le){this.acceptsBooleans=v===At||v===Me||v===je,this.attributeName=z,this.attributeNamespace=j,this.mustUseProperty=L,this.propertyName=g,this.type=v,this.sanitizeURL=J,this.removeEmptyString=le}var Ot={},mt=["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"];mt.forEach(function(g){Ot[g]=new ri(g,kt,!1,g,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(g){var v=g[0],L=g[1];Ot[v]=new ri(v,ot,!1,L,null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(g){Ot[g]=new ri(g,At,!1,g.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(g){Ot[g]=new ri(g,At,!1,g,null,!1,!1)}),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach(function(g){Ot[g]=new ri(g,Me,!1,g.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(g){Ot[g]=new ri(g,Me,!0,g,null,!1,!1)}),["capture","download"].forEach(function(g){Ot[g]=new ri(g,je,!1,g,null,!1,!1)}),["cols","rows","size","span"].forEach(function(g){Ot[g]=new ri(g,yt,!1,g,null,!1,!1)}),["rowSpan","start"].forEach(function(g){Ot[g]=new ri(g,rt,!1,g.toLowerCase(),null,!1,!1)});var Ye=/[\-\:]([a-z])/g,Tt=function(g){return g[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach(function(g){var v=g.replace(Ye,Tt);Ot[v]=new ri(v,ot,!1,g,null,!1,!1)}),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach(function(g){var v=g.replace(Ye,Tt);Ot[v]=new ri(v,ot,!1,g,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(g){var v=g.replace(Ye,Tt);Ot[v]=new ri(v,ot,!1,g,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(g){Ot[g]=new ri(g,ot,!1,g.toLowerCase(),null,!1,!1)});var Ut="xlinkHref";Ot[Ut]=new ri("xlinkHref",ot,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(g){Ot[g]=new ri(g,ot,!1,g.toLowerCase(),null,!0,!0)});var oi=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,ji=!1;function ki(g){!ji&&oi.test(g)&&(ji=!0,M("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.",JSON.stringify(g)))}function os(g,v,L,z){if(z.mustUseProperty){var j=z.propertyName;return g[j]}else{z.sanitizeURL&&ki(""+L);var J=z.attributeName,le=null;if(z.type===je){if(g.hasAttribute(J)){var ce=g.getAttribute(J);return ce===""?!0:ci(v,L,z,!1)?ce:ce===""+L?L:ce}}else if(g.hasAttribute(J)){if(ci(v,L,z,!1))return g.getAttribute(J);if(z.type===Me)return L;le=g.getAttribute(J)}return ci(v,L,z,!1)?le===null?L:le:le===""+L?L:le}}function bs(g,v,L){{if(!wi(v))return;if(aS(L))return L;if(!g.hasAttribute(v))return L===void 0?void 0:null;var z=g.getAttribute(v);return z===""+L?L:z}}function hi(g,v,L,z){var j=qe(v);if(!Ni(v,j,z)){if(ci(v,L,j,z)&&(L=null),z||j===null){if(wi(v)){var J=v;L===null?g.removeAttribute(J):g.setAttribute(J,""+L)}return}var le=j.mustUseProperty;if(le){var ce=j.propertyName;if(L===null){var _e=j.type;g[ce]=_e===Me?!1:""}else g[ce]=L;return}var Oe=j.attributeName,Fe=j.attributeNamespace;if(L===null)g.removeAttribute(Oe);else{var pt=j.type,it;pt===Me||pt===je&&L===!0?it="":(it=""+L,j.sanitizeURL&&ki(it.toString())),Fe?g.setAttributeNS(Fe,Oe,it):g.setAttribute(Oe,it)}}}var Oi=60103,li=60106,Xs=60107,ks=60108,hr=60114,fr=60109,We=60110,fi=60112,zi=60113,ts=60120,hs=60115,Ge=60116,Zt=60121,$t=60119,Ui=60128,ls=60129,ns=60130,Ss=60131;if(typeof Symbol=="function"&&Symbol.for){var qi=Symbol.for;Oi=qi("react.element"),li=qi("react.portal"),Xs=qi("react.fragment"),ks=qi("react.strict_mode"),hr=qi("react.profiler"),fr=qi("react.provider"),We=qi("react.context"),fi=qi("react.forward_ref"),zi=qi("react.suspense"),ts=qi("react.suspense_list"),hs=qi("react.memo"),Ge=qi("react.lazy"),Zt=qi("react.block"),qi("react.server.block"),qi("react.fundamental"),$t=qi("react.scope"),Ui=qi("react.opaque.id"),ls=qi("react.debug_trace_mode"),ns=qi("react.offscreen"),Ss=qi("react.legacy_hidden")}var pr=typeof Symbol=="function"&&Symbol.iterator,Js="@@iterator";function ir(g){if(g===null||typeof g!="object")return null;var v=pr&&g[pr]||g[Js];return typeof v=="function"?v:null}var hn=0,ra,ka,Hn,to,Gr,Yn,To;function Pn(){}Pn.__reactDisabledLog=!0;function On(){{if(hn===0){ra=console.log,ka=console.info,Hn=console.warn,to=console.error,Gr=console.group,Yn=console.groupCollapsed,To=console.groupEnd;var g={configurable:!0,enumerable:!0,value:Pn,writable:!0};Object.defineProperties(console,{info:g,log:g,warn:g,error:g,group:g,groupCollapsed:g,groupEnd:g})}hn++}}function Kr(){{if(hn--,hn===0){var g={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:x({},g,{value:ra}),info:x({},g,{value:ka}),warn:x({},g,{value:Hn}),error:x({},g,{value:to}),group:x({},g,{value:Gr}),groupCollapsed:x({},g,{value:Yn}),groupEnd:x({},g,{value:To})})}hn<0&&M("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var dn=E.ReactCurrentDispatcher,mo;function Xn(g,v,L){{if(mo===void 0)try{throw Error()}catch(j){var z=j.stack.trim().match(/\n( *(at )?)/);mo=z&&z[1]||""}return`
`+mo+g}}var na=!1,xl;{var Lo=typeof WeakMap=="function"?WeakMap:Map;xl=new Lo}function Io(g,v){if(!g||na)return"";{var L=xl.get(g);if(L!==void 0)return L}var z;na=!0;var j=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var J;J=dn.current,dn.current=null,On();try{if(v){var le=function(){throw Error()};if(Object.defineProperty(le.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(le,[])}catch(Jt){z=Jt}Reflect.construct(g,[],le)}else{try{le.call()}catch(Jt){z=Jt}g.call(le.prototype)}}else{try{throw Error()}catch(Jt){z=Jt}g()}}catch(Jt){if(Jt&&z&&typeof Jt.stack=="string"){for(var ce=Jt.stack.split(`
`),_e=z.stack.split(`
`),Oe=ce.length-1,Fe=_e.length-1;Oe>=1&&Fe>=0&&ce[Oe]!==_e[Fe];)Fe--;for(;Oe>=1&&Fe>=0;Oe--,Fe--)if(ce[Oe]!==_e[Fe]){if(Oe!==1||Fe!==1)do if(Oe--,Fe--,Fe<0||ce[Oe]!==_e[Fe]){var pt=`
`+ce[Oe].replace(" at new "," at ");return typeof g=="function"&&xl.set(g,pt),pt}while(Oe>=1&&Fe>=0);break}}}finally{na=!1,dn.current=J,Kr(),Error.prepareStackTrace=j}var it=g?g.displayName||g.name:"",Mt=it?Xn(it):"";return typeof g=="function"&&xl.set(g,Mt),Mt}function bl(g,v,L){return Io(g,!0)}function Zn(g,v,L){return Io(g,!1)}function Sl(g){var v=g.prototype;return!!(v&&v.isReactComponent)}function Vi(g,v,L){if(g==null)return"";if(typeof g=="function")return Io(g,Sl(g));if(typeof g=="string")return Xn(g);switch(g){case zi:return Xn("Suspense");case ts:return Xn("SuspenseList")}if(typeof g=="object")switch(g.$$typeof){case fi:return Zn(g.render);case hs:return Vi(g.type,v,L);case Zt:return Zn(g._render);case Ge:{var z=g,j=z._payload,J=z._init;try{return Vi(J(j),v,L)}catch{}}}return""}function yl(g){switch(g._debugOwner&&g._debugOwner.type,g._debugSource,g.tag){case D:return Xn(g.type);case re:return Xn("Lazy");case te:return Xn("Suspense");case se:return Xn("SuspenseList");case O:case I:case Q:return Zn(g.type);case ie:return Zn(g.type.render);case fe:return Zn(g.type._render);case R:return bl(g.type);default:return""}}function Sn(g){try{var v="",L=g;do v+=yl(L),L=L.return;while(L);return v}catch(z){return`
Error generating stack: `+z.message+`
`+z.stack}}function Kn(g,v,L){var z=v.displayName||v.name||"";return g.displayName||(z!==""?L+"("+z+")":L)}function Po(g){return g.displayName||"Context"}function Wi(g){if(g==null)return null;if(typeof g.tag=="number"&&M("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof g=="function")return g.displayName||g.name||null;if(typeof g=="string")return g;switch(g){case Xs:return"Fragment";case li:return"Portal";case hr:return"Profiler";case ks:return"StrictMode";case zi:return"Suspense";case ts:return"SuspenseList"}if(typeof g=="object")switch(g.$$typeof){case We:var v=g;return Po(v)+".Consumer";case fr:var L=g;return Po(L._context)+".Provider";case fi:return Kn(g,g.render,"ForwardRef");case hs:return Wi(g.type);case Zt:return Wi(g._render);case Ge:{var z=g,j=z._payload,J=z._init;try{return Wi(J(j))}catch{return null}}}return null}var yn=E.ReactDebugCurrentFrame,sr=null,qn=!1;function rl(){{if(sr===null)return null;var g=sr._debugOwner;if(g!==null&&typeof g<"u")return Wi(g.type)}return null}function Rn(){return sr===null?"":Sn(sr)}function Or(){yn.getCurrentStack=null,sr=null,qn=!1}function fn(g){yn.getCurrentStack=Rn,sr=g,qn=!1}function $r(g){qn=g}function Wc(){return qn}function Qn(g){return""+g}function Dn(g){switch(typeof g){case"boolean":case"number":case"object":case"string":case"undefined":return g;default:return""}}var Xu={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0};function Ie(g,v){Xu[v.type]||v.onChange||v.onInput||v.readOnly||v.disabled||v.value==null||M("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."),v.onChange||v.readOnly||v.disabled||v.checked==null||M("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")}function _t(g){var v=g.type,L=g.nodeName;return L&&L.toLowerCase()==="input"&&(v==="checkbox"||v==="radio")}function Ht(g){return g._valueTracker}function ti(g){g._valueTracker=null}function Hi(g){var v="";return g&&(_t(g)?v=g.checked?"true":"false":v=g.value),v}function Ee(g){var v=_t(g)?"checked":"value",L=Object.getOwnPropertyDescriptor(g.constructor.prototype,v),z=""+g[v];if(!(g.hasOwnProperty(v)||typeof L>"u"||typeof L.get!="function"||typeof L.set!="function")){var j=L.get,J=L.set;Object.defineProperty(g,v,{configurable:!0,get:function(){return j.call(this)},set:function(ce){z=""+ce,J.call(this,ce)}}),Object.defineProperty(g,v,{enumerable:L.enumerable});var le={getValue:function(){return z},setValue:function(ce){z=""+ce},stopTracking:function(){ti(g),delete g[v]}};return le}}function $e(g){Ht(g)||(g._valueTracker=Ee(g))}function bt(g){if(!g)return!1;var v=Ht(g);if(!v)return!0;var L=v.getValue(),z=Hi(g);return z!==L?(v.setValue(z),!0):!1}function Wt(g){if(g=g||(typeof document<"u"?document:void 0),typeof g>"u")return null;try{return g.activeElement||g.body}catch{return g.body}}var vi=!1,es=!1,Qi=!1,Ji=!1;function Us(g){var v=g.type==="checkbox"||g.type==="radio";return v?g.checked!=null:g.value!=null}function er(g,v){var L=g,z=v.checked,j=x({},v,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:z??L._wrapperState.initialChecked});return j}function Cr(g,v){Ie("input",v),v.checked!==void 0&&v.defaultChecked!==void 0&&!es&&(M("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",rl()||"A component",v.type),es=!0),v.value!==void 0&&v.defaultValue!==void 0&&!vi&&(M("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",rl()||"A component",v.type),vi=!0);var L=g,z=v.defaultValue==null?"":v.defaultValue;L._wrapperState={initialChecked:v.checked!=null?v.checked:v.defaultChecked,initialValue:Dn(v.value!=null?v.value:z),controlled:Us(v)}}function rr(g,v){var L=g,z=v.checked;z!=null&&hi(L,"checked",z,!1)}function xr(g,v){var L=g;{var z=Us(v);!L._wrapperState.controlled&&z&&!Ji&&(M("A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),Ji=!0),L._wrapperState.controlled&&!z&&!Qi&&(M("A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),Qi=!0)}rr(g,v);var j=Dn(v.value),J=v.type;if(j!=null)J==="number"?(j===0&&L.value===""||L.value!=j)&&(L.value=Qn(j)):L.value!==Qn(j)&&(L.value=Qn(j));else if(J==="submit"||J==="reset"){L.removeAttribute("value");return}v.hasOwnProperty("value")?Ua(L,v.type,j):v.hasOwnProperty("defaultValue")&&Ua(L,v.type,Dn(v.defaultValue)),v.checked==null&&v.defaultChecked!=null&&(L.defaultChecked=!!v.defaultChecked)}function Nn(g,v,L){var z=g;if(v.hasOwnProperty("value")||v.hasOwnProperty("defaultValue")){var j=v.type,J=j==="submit"||j==="reset";if(J&&(v.value===void 0||v.value===null))return;var le=Qn(z._wrapperState.initialValue);L||le!==z.value&&(z.value=le),z.defaultValue=le}var ce=z.name;ce!==""&&(z.name=""),z.defaultChecked=!z.defaultChecked,z.defaultChecked=!!z._wrapperState.initialChecked,ce!==""&&(z.name=ce)}function _a(g,v){var L=g;xr(L,v),Fl(L,v)}function Fl(g,v){var L=v.name;if(v.type==="radio"&&L!=null){for(var z=g;z.parentNode;)z=z.parentNode;for(var j=z.querySelectorAll("input[name="+JSON.stringify(""+L)+'][type="radio"]'),J=0;J<j.length;J++){var le=j[J];if(!(le===g||le.form!==g.form)){var ce=lp(le);if(!ce)throw Error("ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.");bt(le),xr(le,ce)}}}}function Ua(g,v,L){(v!=="number"||Wt(g.ownerDocument)!==g)&&(L==null?g.defaultValue=Qn(g._wrapperState.initialValue):g.defaultValue!==Qn(L)&&(g.defaultValue=Qn(L)))}var io=!1,wn=!1;function uu(g){var v="";return h.Children.forEach(g,function(L){L!=null&&(v+=L)}),v}function Hc(g,v){typeof v.children=="object"&&v.children!==null&&h.Children.forEach(v.children,function(L){L!=null&&(typeof L=="string"||typeof L=="number"||typeof L.type=="string"&&(wn||(wn=!0,M("Only strings and numbers are supported as <option> children."))))}),v.selected!=null&&!io&&(M("Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."),io=!0)}function gd(g,v){v.value!=null&&g.setAttribute("value",Qn(Dn(v.value)))}function kl(g,v){var L=x({children:void 0},v),z=uu(v.children);return z&&(L.children=z),L}var aa;aa=!1;function hu(){var g=rl();return g?`

Check the render method of \``+g+"`.":""}var Ph=["value","defaultValue"];function Zu(g){{Ie("select",g);for(var v=0;v<Ph.length;v++){var L=Ph[v];if(g[L]!=null){var z=Array.isArray(g[L]);g.multiple&&!z?M("The `%s` prop supplied to <select> must be an array if `multiple` is true.%s",L,hu()):!g.multiple&&z&&M("The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.%s",L,hu())}}}}function Yc(g,v,L,z){var j=g.options;if(v){for(var J=L,le={},ce=0;ce<J.length;ce++)le["$"+J[ce]]=!0;for(var _e=0;_e<j.length;_e++){var Oe=le.hasOwnProperty("$"+j[_e].value);j[_e].selected!==Oe&&(j[_e].selected=Oe),Oe&&z&&(j[_e].defaultSelected=!0)}}else{for(var Fe=Qn(Dn(L)),pt=null,it=0;it<j.length;it++){if(j[it].value===Fe){j[it].selected=!0,z&&(j[it].defaultSelected=!0);return}pt===null&&!j[it].disabled&&(pt=j[it])}pt!==null&&(pt.selected=!0)}}function Ku(g,v){return x({},v,{value:void 0})}function qu(g,v){var L=g;Zu(v),L._wrapperState={wasMultiple:!!v.multiple},v.value!==void 0&&v.defaultValue!==void 0&&!aa&&(M("Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://reactjs.org/link/controlled-components"),aa=!0)}function _d(g,v){var L=g;L.multiple=!!v.multiple;var z=v.value;z!=null?Yc(L,!!v.multiple,z,!1):v.defaultValue!=null&&Yc(L,!!v.multiple,v.defaultValue,!0)}function Qu(g,v){var L=g,z=L._wrapperState.wasMultiple;L._wrapperState.wasMultiple=!!v.multiple;var j=v.value;j!=null?Yc(L,!!v.multiple,j,!1):z!==!!v.multiple&&(v.defaultValue!=null?Yc(L,!!v.multiple,v.defaultValue,!0):Yc(L,!!v.multiple,v.multiple?[]:"",!1))}function du(g,v){var L=g,z=v.value;z!=null&&Yc(L,!!v.multiple,z,!1)}var fu=!1;function Ju(g,v){var L=g;if(v.dangerouslySetInnerHTML!=null)throw Error("`dangerouslySetInnerHTML` does not make sense on <textarea>.");var z=x({},v,{value:void 0,defaultValue:void 0,children:Qn(L._wrapperState.initialValue)});return z}function $u(g,v){var L=g;Ie("textarea",v),v.value!==void 0&&v.defaultValue!==void 0&&!fu&&(M("%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://reactjs.org/link/controlled-components",rl()||"A component"),fu=!0);var z=v.value;if(z==null){var j=v.children,J=v.defaultValue;if(j!=null){M("Use the `defaultValue` or `value` props instead of setting children on <textarea>.");{if(J!=null)throw Error("If you supply `defaultValue` on a <textarea>, do not pass children.");if(Array.isArray(j)){if(!(j.length<=1))throw Error("<textarea> can only have at most one child.");j=j[0]}J=j}}J==null&&(J=""),z=J}L._wrapperState={initialValue:Dn(z)}}function pu(g,v){var L=g,z=Dn(v.value),j=Dn(v.defaultValue);if(z!=null){var J=Qn(z);J!==L.value&&(L.value=J),v.defaultValue==null&&L.defaultValue!==J&&(L.defaultValue=J)}j!=null&&(L.defaultValue=Qn(j))}function Ul(g,v){var L=g,z=L.textContent;z===L._wrapperState.initialValue&&z!==""&&z!==null&&(L.value=z)}function oc(g,v){pu(g,v)}var mu="http://www.w3.org/1999/xhtml",r2="http://www.w3.org/1998/Math/MathML",lc="http://www.w3.org/2000/svg",Xc={html:mu,svg:lc};function go(g){switch(g){case"svg":return lc;case"math":return r2;default:return mu}}function Wo(g,v){return g==null||g===mu?go(v):g===lc&&v==="foreignObject"?mu:g}var Oo=function(g){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(v,L,z,j){MSApp.execUnsafeLocalFunction(function(){return g(v,L,z,j)})}:g},so,vd=Oo(function(g,v){if(g.namespaceURI===Xc.svg&&!("innerHTML"in g)){so=so||document.createElement("div"),so.innerHTML="<svg>"+v.valueOf().toString()+"</svg>";for(var L=so.firstChild;g.firstChild;)g.removeChild(g.firstChild);for(;L.firstChild;)g.appendChild(L.firstChild);return}g.innerHTML=v}),ro=1,nl=3,va=8,_o=9,eh=11,cc=function(g,v){if(v){var L=g.firstChild;if(L&&L===g.lastChild&&L.nodeType===nl){L.nodeValue=v;return}}g.textContent=v},Ad={animation:["animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationTimingFunction"],background:["backgroundAttachment","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize"],backgroundPosition:["backgroundPositionX","backgroundPositionY"],border:["borderBottomColor","borderBottomStyle","borderBottomWidth","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRightColor","borderRightStyle","borderRightWidth","borderTopColor","borderTopStyle","borderTopWidth"],borderBlockEnd:["borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth"],borderBlockStart:["borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth"],borderBottom:["borderBottomColor","borderBottomStyle","borderBottomWidth"],borderColor:["borderBottomColor","borderLeftColor","borderRightColor","borderTopColor"],borderImage:["borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth"],borderInlineEnd:["borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth"],borderInlineStart:["borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth"],borderLeft:["borderLeftColor","borderLeftStyle","borderLeftWidth"],borderRadius:["borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius"],borderRight:["borderRightColor","borderRightStyle","borderRightWidth"],borderStyle:["borderBottomStyle","borderLeftStyle","borderRightStyle","borderTopStyle"],borderTop:["borderTopColor","borderTopStyle","borderTopWidth"],borderWidth:["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth"],columnRule:["columnRuleColor","columnRuleStyle","columnRuleWidth"],columns:["columnCount","columnWidth"],flex:["flexBasis","flexGrow","flexShrink"],flexFlow:["flexDirection","flexWrap"],font:["fontFamily","fontFeatureSettings","fontKerning","fontLanguageOverride","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition","fontWeight","lineHeight"],fontVariant:["fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition"],gap:["columnGap","rowGap"],grid:["gridAutoColumns","gridAutoFlow","gridAutoRows","gridTemplateAreas","gridTemplateColumns","gridTemplateRows"],gridArea:["gridColumnEnd","gridColumnStart","gridRowEnd","gridRowStart"],gridColumn:["gridColumnEnd","gridColumnStart"],gridColumnGap:["columnGap"],gridGap:["columnGap","rowGap"],gridRow:["gridRowEnd","gridRowStart"],gridRowGap:["rowGap"],gridTemplate:["gridTemplateAreas","gridTemplateColumns","gridTemplateRows"],listStyle:["listStyleImage","listStylePosition","listStyleType"],margin:["marginBottom","marginLeft","marginRight","marginTop"],marker:["markerEnd","markerMid","markerStart"],mask:["maskClip","maskComposite","maskImage","maskMode","maskOrigin","maskPositionX","maskPositionY","maskRepeat","maskSize"],maskPosition:["maskPositionX","maskPositionY"],outline:["outlineColor","outlineStyle","outlineWidth"],overflow:["overflowX","overflowY"],padding:["paddingBottom","paddingLeft","paddingRight","paddingTop"],placeContent:["alignContent","justifyContent"],placeItems:["alignItems","justifyItems"],placeSelf:["alignSelf","justifySelf"],textDecoration:["textDecorationColor","textDecorationLine","textDecorationStyle"],textEmphasis:["textEmphasisColor","textEmphasisStyle"],transition:["transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction"],wordWrap:["overflowWrap"]},gu={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0};function Oh(g,v){return g+v.charAt(0).toUpperCase()+v.substring(1)}var Rh=["Webkit","ms","Moz","O"];Object.keys(gu).forEach(function(g){Rh.forEach(function(v){gu[Oh(v,g)]=gu[g]})});function th(g,v,L){var z=v==null||typeof v=="boolean"||v==="";return z?"":!L&&typeof v=="number"&&v!==0&&!(gu.hasOwnProperty(g)&&gu[g])?v+"px":(""+v).trim()}var n1=/([A-Z])/g,a1=/^ms-/;function Cd(g){return g.replace(n1,"-$1").toLowerCase().replace(a1,"-ms-")}var _u=function(){};{var Dh=/^(?:webkit|moz|o)[A-Z]/,xd=/^-ms-/,o1=/-(.)/g,l1=/;\s*$/,vu={},ih={},n2=!1,c1=!1,mf=function(g){return g.replace(o1,function(v,L){return L.toUpperCase()})},bd=function(g){vu.hasOwnProperty(g)&&vu[g]||(vu[g]=!0,M("Unsupported style property %s. Did you mean %s?",g,mf(g.replace(xd,"ms-"))))},a2=function(g){vu.hasOwnProperty(g)&&vu[g]||(vu[g]=!0,M("Unsupported vendor-prefixed style property %s. Did you mean %s?",g,g.charAt(0).toUpperCase()+g.slice(1)))},sh=function(g,v){ih.hasOwnProperty(v)&&ih[v]||(ih[v]=!0,M(`Style property values shouldn't contain a semicolon. Try "%s: %s" instead.`,g,v.replace(l1,"")))},o2=function(g,v){n2||(n2=!0,M("`NaN` is an invalid value for the `%s` css style property.",g))},l2=function(g,v){c1||(c1=!0,M("`Infinity` is an invalid value for the `%s` css style property.",g))};_u=function(g,v){g.indexOf("-")>-1?bd(g):Dh.test(g)?a2(g):l1.test(v)&&sh(g,v),typeof v=="number"&&(isNaN(v)?o2(g,v):isFinite(v)||l2(g,v))}}var Nh=_u;function u1(g){{var v="",L="";for(var z in g)if(g.hasOwnProperty(z)){var j=g[z];if(j!=null){var J=z.indexOf("--")===0;v+=L+(J?z:Cd(z))+":",v+=th(z,j,J),L=";"}}return v||null}}function wh(g,v){var L=g.style;for(var z in v)if(v.hasOwnProperty(z)){var j=z.indexOf("--")===0;j||Nh(z,v[z]);var J=th(z,v[z],j);z==="float"&&(z="cssFloat"),j?L.setProperty(z,J):L[z]=J}}function c2(g){return g==null||typeof g=="boolean"||g===""}function Bh(g){var v={};for(var L in g)for(var z=Ad[L]||[L],j=0;j<z.length;j++)v[z[j]]=L;return v}function Zc(g,v){{if(!v)return;var L=Bh(g),z=Bh(v),j={};for(var J in L){var le=L[J],ce=z[J];if(ce&&le!==ce){var _e=le+","+ce;if(j[_e])continue;j[_e]=!0,M("%s a style property during rerender (%s) when a conflicting property is set (%s) can lead to styling bugs. To avoid this, don't mix shorthand and non-shorthand properties for the same value; instead, replace the shorthand with separate values.",c2(g[le])?"Removing":"Updating",le,ce)}}}}var Au={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},u2=x({menuitem:!0},Au),Kc="__html";function zh(g,v){if(v){if(u2[g]&&!(v.children==null&&v.dangerouslySetInnerHTML==null))throw Error(g+" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.");if(v.dangerouslySetInnerHTML!=null){if(v.children!=null)throw Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");if(!(typeof v.dangerouslySetInnerHTML=="object"&&Kc in v.dangerouslySetInnerHTML))throw Error("`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://reactjs.org/link/dangerously-set-inner-html for more information.")}if(!v.suppressContentEditableWarning&&v.contentEditable&&v.children!=null&&M("A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."),!(v.style==null||typeof v.style=="object"))throw Error("The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.")}}function uc(g,v){if(g.indexOf("-")===-1)return typeof v.is=="string";switch(g){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Cu={accept:"accept",acceptcharset:"acceptCharset","accept-charset":"acceptCharset",accesskey:"accessKey",action:"action",allowfullscreen:"allowFullScreen",alt:"alt",as:"as",async:"async",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",capture:"capture",cellpadding:"cellPadding",cellspacing:"cellSpacing",challenge:"challenge",charset:"charSet",checked:"checked",children:"children",cite:"cite",class:"className",classid:"classID",classname:"className",cols:"cols",colspan:"colSpan",content:"content",contenteditable:"contentEditable",contextmenu:"contextMenu",controls:"controls",controlslist:"controlsList",coords:"coords",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",data:"data",datetime:"dateTime",default:"default",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",defer:"defer",dir:"dir",disabled:"disabled",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback",download:"download",draggable:"draggable",enctype:"encType",enterkeyhint:"enterKeyHint",for:"htmlFor",form:"form",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",headers:"headers",height:"height",hidden:"hidden",high:"high",href:"href",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",id:"id",innerhtml:"innerHTML",inputmode:"inputMode",integrity:"integrity",is:"is",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",kind:"kind",label:"label",lang:"lang",list:"list",loop:"loop",low:"low",manifest:"manifest",marginwidth:"marginWidth",marginheight:"marginHeight",max:"max",maxlength:"maxLength",media:"media",mediagroup:"mediaGroup",method:"method",min:"min",minlength:"minLength",multiple:"multiple",muted:"muted",name:"name",nomodule:"noModule",nonce:"nonce",novalidate:"noValidate",open:"open",optimum:"optimum",pattern:"pattern",placeholder:"placeholder",playsinline:"playsInline",poster:"poster",preload:"preload",profile:"profile",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rel:"rel",required:"required",reversed:"reversed",role:"role",rows:"rows",rowspan:"rowSpan",sandbox:"sandbox",scope:"scope",scoped:"scoped",scrolling:"scrolling",seamless:"seamless",selected:"selected",shape:"shape",size:"size",sizes:"sizes",span:"span",spellcheck:"spellCheck",src:"src",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",start:"start",step:"step",style:"style",summary:"summary",tabindex:"tabIndex",target:"target",title:"title",type:"type",usemap:"useMap",value:"value",width:"width",wmode:"wmode",wrap:"wrap",about:"about",accentheight:"accentHeight","accent-height":"accentHeight",accumulate:"accumulate",additive:"additive",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",alphabetic:"alphabetic",amplitude:"amplitude",arabicform:"arabicForm","arabic-form":"arabicForm",ascent:"ascent",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",azimuth:"azimuth",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",bbox:"bbox",begin:"begin",bias:"bias",by:"by",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clip:"clip",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",color:"color",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",cursor:"cursor",cx:"cx",cy:"cy",d:"d",datatype:"datatype",decelerate:"decelerate",descent:"descent",diffuseconstant:"diffuseConstant",direction:"direction",display:"display",divisor:"divisor",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",dur:"dur",dx:"dx",dy:"dy",edgemode:"edgeMode",elevation:"elevation",enablebackground:"enableBackground","enable-background":"enableBackground",end:"end",exponent:"exponent",externalresourcesrequired:"externalResourcesRequired",fill:"fill",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filter:"filter",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",focusable:"focusable",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",format:"format",from:"from",fx:"fx",fy:"fy",g1:"g1",g2:"g2",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",hanging:"hanging",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",ideographic:"ideographic",imagerendering:"imageRendering","image-rendering":"imageRendering",in2:"in2",in:"in",inlist:"inlist",intercept:"intercept",k1:"k1",k2:"k2",k3:"k3",k4:"k4",k:"k",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",kerning:"kerning",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",local:"local",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",mask:"mask",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",mathematical:"mathematical",mode:"mode",numoctaves:"numOctaves",offset:"offset",opacity:"opacity",operator:"operator",order:"order",orient:"orient",orientation:"orientation",origin:"origin",overflow:"overflow",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder",panose1:"panose1","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",points:"points",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",prefix:"prefix",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",property:"property",r:"r",radius:"radius",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",resource:"resource",restart:"restart",result:"result",results:"results",rotate:"rotate",rx:"rx",ry:"ry",scale:"scale",security:"security",seed:"seed",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",slope:"slope",spacing:"spacing",specularconstant:"specularConstant",specularexponent:"specularExponent",speed:"speed",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stemh:"stemh",stemv:"stemv",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",string:"string",stroke:"stroke",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",to:"to",transform:"transform",typeof:"typeof",u1:"u1",u2:"u2",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicode:"unicode",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",values:"values",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",version:"version",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",visibility:"visibility",vmathematical:"vMathematical","v-mathematical":"vMathematical",vocab:"vocab",widths:"widths",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",x1:"x1",x2:"x2",x:"x",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang",xmlns:"xmlns","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",y1:"y1",y2:"y2",y:"y",ychannelselector:"yChannelSelector",z:"z",zoomandpan:"zoomAndPan"},h1={"aria-current":0,"aria-details":0,"aria-disabled":0,"aria-hidden":0,"aria-invalid":0,"aria-keyshortcuts":0,"aria-label":0,"aria-roledescription":0,"aria-autocomplete":0,"aria-checked":0,"aria-expanded":0,"aria-haspopup":0,"aria-level":0,"aria-modal":0,"aria-multiline":0,"aria-multiselectable":0,"aria-orientation":0,"aria-placeholder":0,"aria-pressed":0,"aria-readonly":0,"aria-required":0,"aria-selected":0,"aria-sort":0,"aria-valuemax":0,"aria-valuemin":0,"aria-valuenow":0,"aria-valuetext":0,"aria-atomic":0,"aria-busy":0,"aria-live":0,"aria-relevant":0,"aria-dropeffect":0,"aria-grabbed":0,"aria-activedescendant":0,"aria-colcount":0,"aria-colindex":0,"aria-colspan":0,"aria-controls":0,"aria-describedby":0,"aria-errormessage":0,"aria-flowto":0,"aria-labelledby":0,"aria-owns":0,"aria-posinset":0,"aria-rowcount":0,"aria-rowindex":0,"aria-rowspan":0,"aria-setsize":0},xu={},gf=new RegExp("^(aria)-["+Nt+"]*$"),Sd=new RegExp("^(aria)[A-Z]["+Nt+"]*$"),Fh=Object.prototype.hasOwnProperty;function h2(g,v){{if(Fh.call(xu,v)&&xu[v])return!0;if(Sd.test(v)){var L="aria-"+v.slice(4).toLowerCase(),z=h1.hasOwnProperty(L)?L:null;if(z==null)return M("Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.",v),xu[v]=!0,!0;if(v!==z)return M("Invalid ARIA attribute `%s`. Did you mean `%s`?",v,z),xu[v]=!0,!0}if(gf.test(v)){var j=v.toLowerCase(),J=h1.hasOwnProperty(j)?j:null;if(J==null)return xu[v]=!0,!1;if(v!==J)return M("Unknown ARIA attribute `%s`. Did you mean `%s`?",v,J),xu[v]=!0,!0}}return!0}function vo(g,v){{var L=[];for(var z in v){var j=h2(g,z);j||L.push(z)}var J=L.map(function(le){return"`"+le+"`"}).join(", ");L.length===1?M("Invalid aria prop %s on <%s> tag. For details, see https://reactjs.org/link/invalid-aria-props",J,g):L.length>1&&M("Invalid aria props %s on <%s> tag. For details, see https://reactjs.org/link/invalid-aria-props",J,g)}}function d2(g,v){uc(g,v)||vo(g,v)}var d1=!1;function rh(g,v){{if(g!=="input"&&g!=="textarea"&&g!=="select")return;v!=null&&v.value===null&&!d1&&(d1=!0,g==="select"&&v.multiple?M("`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.",g):M("`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.",g))}}var f2=function(){};{var Ao={},p2=Object.prototype.hasOwnProperty,m2=/^on./,f1=/^on[^A-Z]/,kh=new RegExp("^(aria)-["+Nt+"]*$"),ye=new RegExp("^(aria)[A-Z]["+Nt+"]*$");f2=function(g,v,L,z){if(p2.call(Ao,v)&&Ao[v])return!0;var j=v.toLowerCase();if(j==="onfocusin"||j==="onfocusout")return M("React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React."),Ao[v]=!0,!0;if(z!=null){var J=z.registrationNameDependencies,le=z.possibleRegistrationNames;if(J.hasOwnProperty(v))return!0;var ce=le.hasOwnProperty(j)?le[j]:null;if(ce!=null)return M("Invalid event handler property `%s`. Did you mean `%s`?",v,ce),Ao[v]=!0,!0;if(m2.test(v))return M("Unknown event handler property `%s`. It will be ignored.",v),Ao[v]=!0,!0}else if(m2.test(v))return f1.test(v)&&M("Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.",v),Ao[v]=!0,!0;if(kh.test(v)||ye.test(v))return!0;if(j==="innerhtml")return M("Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."),Ao[v]=!0,!0;if(j==="aria")return M("The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead."),Ao[v]=!0,!0;if(j==="is"&&L!==null&&L!==void 0&&typeof L!="string")return M("Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.",typeof L),Ao[v]=!0,!0;if(typeof L=="number"&&isNaN(L))return M("Received NaN for the `%s` attribute. If this is expected, cast the value to a string.",v),Ao[v]=!0,!0;var _e=qe(v),Oe=_e!==null&&_e.type===kt;if(Cu.hasOwnProperty(j)){var Fe=Cu[j];if(Fe!==v)return M("Invalid DOM property `%s`. Did you mean `%s`?",v,Fe),Ao[v]=!0,!0}else if(!Oe&&v!==j)return M("React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.",v,j),Ao[v]=!0,!0;return typeof L=="boolean"&&qt(v,L,_e,!1)?(L?M('Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.',L,v,v,L,v):M('Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',L,v,v,L,v,v,v),Ao[v]=!0,!0):Oe?!0:qt(v,L,_e,!1)?(Ao[v]=!0,!1):((L==="false"||L==="true")&&_e!==null&&_e.type===Me&&(M("Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?",L,v,L==="false"?"The browser will interpret it as a truthy value.":'Although this works, it will not work as expected if you pass the string "false".',v,L),Ao[v]=!0),!0)}}var Be=function(g,v,L){{var z=[];for(var j in v){var J=f2(g,j,v[j],L);J||z.push(j)}var le=z.map(function(ce){return"`"+ce+"`"}).join(", ");z.length===1?M("Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://reactjs.org/link/attribute-behavior ",le,g):z.length>1&&M("Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://reactjs.org/link/attribute-behavior ",le,g)}};function Ze(g,v,L){uc(g,v)||Be(g,v,L)}var tt=1,gt=2,pe=4,Ce=16,De=tt|gt|pe;function Xe(g){var v=g.target||g.srcElement||window;return v.correspondingUseElement&&(v=v.correspondingUseElement),v.nodeType===nl?v.parentNode:v}var Je=null,vt=null,Gt=null;function ai(g){var v=T2(g);if(v){if(typeof Je!="function")throw Error("setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.");var L=v.stateNode;if(L){var z=lp(L);Je(v.stateNode,v.type,z)}}}function As(g){Je=g}function Cs(g){vt?Gt?Gt.push(g):Gt=[g]:vt=g}function zs(){return vt!==null||Gt!==null}function Ys(){if(vt){var g=vt,v=Gt;if(vt=null,Gt=null,ai(g),v)for(var L=0;L<v.length;L++)ai(v[L])}}var tr=function(g,v){return g(v)},Wr=function(g,v,L,z,j){return g(v,L,z,j)},ja=function(){},Ml=tr,Jn=!1,hc=!1;function Ro(){var g=zs();g&&(ja(),Ys())}function qc(g,v){if(Jn)return g(v);Jn=!0;try{return tr(g,v)}finally{Jn=!1,Ro()}}function g2(g,v,L){if(hc)return g(v,L);hc=!0;try{return Ml(g,v,L)}finally{hc=!1,Ro()}}function Uh(g,v,L,z,j){var J=Jn;Jn=!0;try{return Wr(g,v,L,z,j)}finally{Jn=J,Jn||Ro()}}function x3(g){Jn||ja()}function p1(g,v,L,z){tr=g,Wr=v,ja=L,Ml=z}function E_(g){return g==="button"||g==="input"||g==="select"||g==="textarea"}function Pb(g,v,L){switch(g){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":return!!(L.disabled&&E_(v));default:return!1}}function _f(g,v){var L=g.stateNode;if(L===null)return null;var z=lp(L);if(z===null)return null;var j=z[v];if(Pb(v,g.type,z))return null;if(!(!j||typeof j=="function"))throw Error("Expected `"+v+"` listener to be a function, instead got a value of `"+typeof j+"` type.");return j}var S5=!1;if(Qe)try{var yd={};Object.defineProperty(yd,"passive",{get:function(){S5=!0}}),window.addEventListener("test",yd,yd),window.removeEventListener("test",yd,yd)}catch{S5=!1}function b3(g,v,L,z,j,J,le,ce,_e){var Oe=Array.prototype.slice.call(arguments,3);try{v.apply(L,Oe)}catch(Fe){this.onError(Fe)}}var B4=b3;if(typeof window<"u"&&typeof window.dispatchEvent=="function"&&typeof document<"u"&&typeof document.createEvent=="function"){var S3=document.createElement("react");B4=function(v,L,z,j,J,le,ce,_e,Oe){if(!(typeof document<"u"))throw Error("The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.");var Fe=document.createEvent("Event"),pt=!1,it=!0,Mt=window.event,Jt=Object.getOwnPropertyDescriptor(window,"event");function Ai(){S3.removeEventListener(Vt,Ft,!1),typeof window.event<"u"&&window.hasOwnProperty("event")&&(window.event=Mt)}var Ct=Array.prototype.slice.call(arguments,3);function Ft(){pt=!0,Ai(),L.apply(z,Ct),it=!1}var ut,ni=!1,Ei=!1;function ht(Et){if(ut=Et.error,ni=!0,ut===null&&Et.colno===0&&Et.lineno===0&&(Ei=!0),Et.defaultPrevented&&ut!=null&&typeof ut=="object")try{ut._suppressLogging=!0}catch{}}var Vt="react-"+(v||"invokeguardedcallback");if(window.addEventListener("error",ht),S3.addEventListener(Vt,Ft,!1),Fe.initEvent(Vt,!1,!1),S3.dispatchEvent(Fe),Jt&&Object.defineProperty(window,"event",Jt),pt&&it&&(ni?Ei&&(ut=new Error("A cross-origin error was thrown. React doesn't have access to the actual error object in development. See https://reactjs.org/link/crossorigin-error for more information.")):ut=new Error(`An error was thrown inside one of your components, but React doesn't know what it was. This is likely due to browser flakiness. React does its best to preserve the "Pause on exceptions" behavior of the DevTools, which requires some DEV-mode only tricks. It's possible that these don't work in your browser. Try triggering the error in production mode, or switching to a modern browser. If you suspect that this is actually an issue with React, please file an issue.`),this.onError(ut)),window.removeEventListener("error",ht),!pt)return Ai(),b3.apply(this,arguments)}}var fM=B4,dc=!1,z4=null,y3=!1,Md=null,m1={onError:function(g){dc=!0,z4=g}};function fc(g,v,L,z,j,J,le,ce,_e){dc=!1,z4=null,fM.apply(m1,arguments)}function pM(g,v,L,z,j,J,le,ce,_e){if(fc.apply(this,arguments),dc){var Oe=jl();y3||(y3=!0,Md=Oe)}}function y5(){if(y3){var g=Md;throw y3=!1,Md=null,g}}function pn(){return dc}function jl(){if(dc){var g=z4;return dc=!1,z4=null,g}else throw Error("clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.")}function oa(g){return g._reactInternals}function Aa(g){return g._reactInternals!==void 0}function mM(g,v){g._reactInternals=v}var mn=0,Ed=1,no=2,Zs=4,T_=6,Qc=8,vf=16,M3=32,en=64,F4=128,B0=256,Af=512,bu=8192,Td=1024,k4=1028,z0=2047,U4=2048,Ld=4096,M5=16384,L_=E.ReactCurrentOwner;function _2(g){var v=g,L=g;if(g.alternate)for(;v.return;)v=v.return;else{var z=v;do v=z,(v.flags&(no|Td))!==mn&&(L=v.return),z=v.return;while(z)}return v.tag===N?L:null}function E5(g){if(g.tag===te){var v=g.memoizedState;if(v===null){var L=g.alternate;L!==null&&(v=L.memoizedState)}if(v!==null)return v.dehydrated}return null}function T5(g){return g.tag===N?g.stateNode.containerInfo:null}function gM(g){return _2(g)===g}function Ob(g){{var v=L_.current;if(v!==null&&v.tag===R){var L=v,z=L.stateNode;z._warnedAboutRefsInRender||M("%s is accessing isMounted inside its render() function. render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",Wi(L.type)||"A component"),z._warnedAboutRefsInRender=!0}}var j=oa(g);return j?_2(j)===j:!1}function I_(g){if(_2(g)!==g)throw Error("Unable to find node on an unmounted component.")}function Rb(g){var v=g.alternate;if(!v){var L=_2(g);if(L===null)throw Error("Unable to find node on an unmounted component.");return L!==g?null:g}for(var z=g,j=v;;){var J=z.return;if(J===null)break;var le=J.alternate;if(le===null){var ce=J.return;if(ce!==null){z=j=ce;continue}break}if(J.child===le.child){for(var _e=J.child;_e;){if(_e===z)return I_(J),g;if(_e===j)return I_(J),v;_e=_e.sibling}throw Error("Unable to find node on an unmounted component.")}if(z.return!==j.return)z=J,j=le;else{for(var Oe=!1,Fe=J.child;Fe;){if(Fe===z){Oe=!0,z=J,j=le;break}if(Fe===j){Oe=!0,j=J,z=le;break}Fe=Fe.sibling}if(!Oe){for(Fe=le.child;Fe;){if(Fe===z){Oe=!0,z=le,j=J;break}if(Fe===j){Oe=!0,j=le,z=J;break}Fe=Fe.sibling}if(!Oe)throw Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.")}}if(z.alternate!==j)throw Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.")}if(z.tag!==N)throw Error("Unable to find node on an unmounted component.");return z.stateNode.current===z?g:v}function j4(g){var v=Rb(g);if(!v)return null;for(var L=v;;){if(L.tag===D||L.tag===k)return L;if(L.child){L.child.return=L,L=L.child;continue}if(L===v)return null;for(;!L.sibling;){if(!L.return||L.return===v)return null;L=L.return}L.sibling.return=L.return,L=L.sibling}return null}function _M(g){var v=Rb(g);if(!v)return null;for(var L=v;;){if(L.tag===D||L.tag===k||ke)return L;if(L.child&&L.tag!==w){L.child.return=L,L=L.child;continue}if(L===v)return null;for(;!L.sibling;){if(!L.return||L.return===v)return null;L=L.return}L.sibling.return=L.return,L=L.sibling}return null}function L5(g,v){for(var L=v,z=g.alternate;L!==null;){if(L===g||L===z)return!0;L=L.return}return!1}var I5;function Db(g){I5=g}var P_;function P5(g){P_=g}var g1;function v2(g){g1=g}var jh;function Cf(g){jh=g}var F0=!1,nh=[],Vh=null,Gh=null,xf=null,E3=new Map,T3=new Map,L3=[];function O5(){return nh.length>0}var V4=["mousedown","mouseup","touchcancel","touchend","touchstart","auxclick","dblclick","pointercancel","pointerdown","pointerup","dragend","dragstart","drop","compositionend","compositionstart","keydown","keypress","keyup","input","textInput","copy","cut","paste","click","change","contextmenu","reset","submit"];function Nb(g){return V4.indexOf(g)>-1}function wb(g,v,L,z,j){return{blockedOn:g,domEventName:v,eventSystemFlags:L|Ce,nativeEvent:j,targetContainers:[z]}}function G4(g,v,L,z,j){var J=wb(g,v,L,z,j);nh.push(J)}function R5(g,v){switch(g){case"focusin":case"focusout":Vh=null;break;case"dragenter":case"dragleave":Gh=null;break;case"mouseover":case"mouseout":xf=null;break;case"pointerover":case"pointerout":{var L=v.pointerId;E3.delete(L);break}case"gotpointercapture":case"lostpointercapture":{var z=v.pointerId;T3.delete(z);break}}}function W4(g,v,L,z,j,J){if(g===null||g.nativeEvent!==J){var le=wb(v,L,z,j,J);if(v!==null){var ce=T2(v);ce!==null&&P_(ce)}return le}g.eventSystemFlags|=z;var _e=g.targetContainers;return j!==null&&_e.indexOf(j)===-1&&_e.push(j),g}function H4(g,v,L,z,j){switch(v){case"focusin":{var J=j;return Vh=W4(Vh,g,v,L,z,J),!0}case"dragenter":{var le=j;return Gh=W4(Gh,g,v,L,z,le),!0}case"mouseover":{var ce=j;return xf=W4(xf,g,v,L,z,ce),!0}case"pointerover":{var _e=j,Oe=_e.pointerId;return E3.set(Oe,W4(E3.get(Oe)||null,g,v,L,z,_e)),!0}case"gotpointercapture":{var Fe=j,pt=Fe.pointerId;return T3.set(pt,W4(T3.get(pt)||null,g,v,L,z,Fe)),!0}}return!1}function Bb(g){var v=E2(g.target);if(v!==null){var L=_2(v);if(L!==null){var z=L.tag;if(z===te){var j=E5(L);if(j!==null){g.blockedOn=j,jh(g.lanePriority,function(){A.unstable_runWithPriority(g.priority,function(){g1(L)})});return}}else if(z===N){var J=L.stateNode;if(J.hydrate){g.blockedOn=T5(L);return}}}}g.blockedOn=null}function A2(g){if(g.blockedOn!==null)return!1;for(var v=g.targetContainers;v.length>0;){var L=v[0],z=Z0(g.domEventName,g.eventSystemFlags,L,g.nativeEvent);if(z!==null){var j=T2(z);return j!==null&&P_(j),g.blockedOn=z,!1}v.shift()}return!0}function D5(g,v,L){A2(g)&&L.delete(v)}function N5(){for(F0=!1;nh.length>0;){var g=nh[0];if(g.blockedOn!==null){var v=T2(g.blockedOn);v!==null&&I5(v);break}for(var L=g.targetContainers;L.length>0;){var z=L[0],j=Z0(g.domEventName,g.eventSystemFlags,z,g.nativeEvent);if(j!==null){g.blockedOn=j;break}L.shift()}g.blockedOn===null&&nh.shift()}Vh!==null&&A2(Vh)&&(Vh=null),Gh!==null&&A2(Gh)&&(Gh=null),xf!==null&&A2(xf)&&(xf=null),E3.forEach(D5),T3.forEach(D5)}function bf(g,v){g.blockedOn===v&&(g.blockedOn=null,F0||(F0=!0,A.unstable_scheduleCallback(A.unstable_NormalPriority,N5)))}function k0(g){if(nh.length>0){bf(nh[0],g);for(var v=1;v<nh.length;v++){var L=nh[v];L.blockedOn===g&&(L.blockedOn=null)}}Vh!==null&&bf(Vh,g),Gh!==null&&bf(Gh,g),xf!==null&&bf(xf,g);var z=function(ce){return bf(ce,g)};E3.forEach(z),T3.forEach(z);for(var j=0;j<L3.length;j++){var J=L3[j];J.blockedOn===g&&(J.blockedOn=null)}for(;L3.length>0;){var le=L3[0];if(le.blockedOn!==null)break;Bb(le),le.blockedOn===null&&L3.shift()}}var Sf=0,O_=1,I3=2;function P3(g,v){var L={};return L[g.toLowerCase()]=v.toLowerCase(),L["Webkit"+g]="webkit"+v,L["Moz"+g]="moz"+v,L}var U0={animationend:P3("Animation","AnimationEnd"),animationiteration:P3("Animation","AnimationIteration"),animationstart:P3("Animation","AnimationStart"),transitionend:P3("Transition","TransitionEnd")},R_={},D_={};Qe&&(D_=document.createElement("div").style,"AnimationEvent"in window||(delete U0.animationend.animation,delete U0.animationiteration.animation,delete U0.animationstart.animation),"TransitionEvent"in window||delete U0.transitionend.transition);function Y4(g){if(R_[g])return R_[g];if(!U0[g])return g;var v=U0[g];for(var L in v)if(v.hasOwnProperty(L)&&L in D_)return R_[g]=v[L];return g}var X4=Y4("animationend"),zb=Y4("animationiteration"),Fb=Y4("animationstart"),kb=Y4("transitionend"),Ub=new Map,Z4=new Map,vM=["cancel","cancel","click","click","close","close","contextmenu","contextMenu","copy","copy","cut","cut","auxclick","auxClick","dblclick","doubleClick","dragend","dragEnd","dragstart","dragStart","drop","drop","focusin","focus","focusout","blur","input","input","invalid","invalid","keydown","keyDown","keypress","keyPress","keyup","keyUp","mousedown","mouseDown","mouseup","mouseUp","paste","paste","pause","pause","play","play","pointercancel","pointerCancel","pointerdown","pointerDown","pointerup","pointerUp","ratechange","rateChange","reset","reset","seeked","seeked","submit","submit","touchcancel","touchCancel","touchend","touchEnd","touchstart","touchStart","volumechange","volumeChange"],jb=["change","selectionchange","textInput","compositionstart","compositionend","compositionupdate"],AM=["drag","drag","dragenter","dragEnter","dragexit","dragExit","dragleave","dragLeave","dragover","dragOver","mousemove","mouseMove","mouseout","mouseOut","mouseover","mouseOver","pointermove","pointerMove","pointerout","pointerOut","pointerover","pointerOver","scroll","scroll","toggle","toggle","touchmove","touchMove","wheel","wheel"],Vb=["abort","abort",X4,"animationEnd",zb,"animationIteration",Fb,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",kb,"transitionEnd","waiting","waiting"];function N_(g,v){for(var L=0;L<g.length;L+=2){var z=g[L],j=g[L+1],J=j[0].toUpperCase()+j.slice(1),le="on"+J;Z4.set(z,v),Ub.set(z,le),at(le,[z])}}function Gb(g,v){for(var L=0;L<g.length;L++)Z4.set(g[L],v)}function w5(g){var v=Z4.get(g);return v===void 0?I3:v}function CM(){N_(vM,Sf),N_(AM,O_),N_(Vb,I3),Gb(jb,Sf)}var B5=A.unstable_now;if(!(S.__interactionsRef!=null&&S.__interactionsRef.current!=null))throw Error("It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at https://reactjs.org/link/profiling");var K4=99,j0=98,q4=97,Wb=96,O3=95,Q4=90;B5();var Id=15,R3=14,yf=13,D3=12,J4=11,Mf=10,w_=9,C2=8,$4=7,eg=6,_1=5,Hb=4,xi=3,Vl=2,Bn=1,Wh=0,z5=31,Ci=0,Jc=0,zn=1,N3=2,tg=4,ig=24,V0=32,sg=192,Ef=256,rg=3584,F5=4096,G0=4186112,W0=62914560,pc=33554432,Va=67108864,Yb=134217727,la=134217728,x2=805306368,v1=1073741824,Co=-1;function ng(g){}var Ca=C2;function H0(g){if((zn&g)!==Ci)return Ca=Id,zn;if((N3&g)!==Ci)return Ca=R3,N3;if((tg&g)!==Ci)return Ca=yf,tg;var v=ig&g;if(v!==Ci)return Ca=D3,v;if((g&V0)!==Ci)return Ca=J4,V0;var L=sg&g;if(L!==Ci)return Ca=Mf,L;if((g&Ef)!==Ci)return Ca=w_,Ef;var z=rg&g;if(z!==Ci)return Ca=C2,z;if((g&F5)!==Ci)return Ca=$4,F5;var j=G0&g;if(j!==Ci)return Ca=eg,j;var J=W0&g;if(J!==Ci)return Ca=_1,J;if(g&Va)return Ca=Hb,Va;if((g&la)!==Ci)return Ca=xi,la;var le=x2&g;return le!==Ci?(Ca=Vl,le):(v1&g)!==Ci?(Ca=Bn,v1):(M("Should have found matching lanes. This is a bug in React."),Ca=C2,g)}function xM(g){switch(g){case K4:return Id;case j0:return Mf;case q4:case Wb:return C2;case O3:return Vl;default:return Wh}}function k5(g){switch(g){case Id:case R3:return K4;case yf:case D3:case J4:case Mf:return j0;case w_:case C2:case $4:case eg:case Hb:case _1:return q4;case xi:case Vl:case Bn:return O3;case Wh:return Q4;default:throw Error("Invalid update priority: "+g+". This is a bug in React.")}}function ag(g,v){var L=g.pendingLanes;if(L===Ci)return Ca=Wh,Ci;var z=Ci,j=Wh,J=g.expiredLanes,le=g.suspendedLanes,ce=g.pingedLanes;if(J!==Ci)z=J,j=Ca=Id;else{var _e=L&Yb;if(_e!==Ci){var Oe=_e&~le;if(Oe!==Ci)z=H0(Oe),j=Ca;else{var Fe=_e&ce;Fe!==Ci&&(z=H0(Fe),j=Ca)}}else{var pt=L&~le;pt!==Ci?(z=H0(pt),j=Ca):ce!==Ci&&(z=H0(ce),j=Ca)}}if(z===Ci)return Ci;if(z=L&X0(z),v!==Ci&&v!==z&&(v&le)===Ci){H0(v);var it=Ca;if(j<=it)return v;Ca=j}var Mt=g.entangledLanes;if(Mt!==Ci)for(var Jt=g.entanglements,Ai=z&Mt;Ai>0;){var Ct=A1(Ai),Ft=1<<Ct;z|=Jt[Ct],Ai&=~Ft}return z}function Xb(g,v){for(var L=g.eventTimes,z=Co;v>0;){var j=A1(v),J=1<<j,le=L[j];le>z&&(z=le),v&=~J}return z}function B_(g,v){H0(g);var L=Ca;return L>=Mf?v+250:L>=eg?v+5e3:Co}function bM(g,v){for(var L=g.pendingLanes,z=g.suspendedLanes,j=g.pingedLanes,J=g.expirationTimes,le=L;le>0;){var ce=A1(le),_e=1<<ce,Oe=J[ce];Oe===Co?((_e&z)===Ci||(_e&j)!==Ci)&&(J[ce]=B_(_e,v)):Oe<=v&&(g.expiredLanes|=_e),le&=~_e}}function Y0(g){var v=g.pendingLanes&~v1;return v!==Ci?v:v&v1?v1:Ci}function SM(){return Ca}function U5(g){return(g&Yb)!==Ci}function j5(g){return(g&W0)===g}function yM(g){return(g&G0)===g}function og(g,v){switch(g){case Wh:break;case Id:return zn;case R3:return N3;case D3:{var L=dr(ig&~v);return L===Jc?og(Mf,v):L}case Mf:{var z=dr(sg&~v);return z===Jc?og(C2,v):z}case C2:{var j=dr(rg&~v);return j===Jc&&(j=dr(G0&~v),j===Jc&&(j=dr(rg))),j}case eg:case _1:break;case Vl:var J=dr(x2&~v);return J===Jc&&(J=dr(x2)),J}throw Error("Invalid update priority: "+g+". This is a bug in React.")}function $c(g,v){var L=dr(G0&~v);return L===Jc&&(L=dr(G0&~g),L===Jc&&(L=dr(G0))),L}function Tf(g){var v=dr(W0&~g);return v===Jc&&(v=dr(W0)),v}function MM(g){return g&-g}function mc(g){var v=31-Jb(g);return v<0?Ci:1<<v}function X0(g){return(mc(g)<<1)-1}function dr(g){return MM(g)}function A1(g){return 31-Jb(g)}function EM(g){return A1(g)}function gc(g,v){return(g&v)!==Ci}function C1(g,v){return(g&v)===v}function tn(g,v){return g|v}function lg(g,v){return g&~v}function Zb(g){return g}function TM(g,v){return g!==Jc&&g<v?g:v}function z_(g){for(var v=[],L=0;L<z5;L++)v.push(g);return v}function cg(g,v,L){g.pendingLanes|=v;var z=v-1;g.suspendedLanes&=z,g.pingedLanes&=z;var j=g.eventTimes,J=EM(v);j[J]=L}function V5(g,v){g.suspendedLanes|=v,g.pingedLanes&=~v;for(var L=g.expirationTimes,z=v;z>0;){var j=A1(z),J=1<<j;L[j]=Co,z&=~J}}function Kb(g,v,L){g.pingedLanes|=g.suspendedLanes&v}function qb(g){g.expiredLanes|=ig&g.pendingLanes}function LM(g){return(g&ig)!==Ci}function Qb(g,v){g.mutableReadLanes|=v&g.pendingLanes}function G5(g,v){var L=g.pendingLanes&~v;g.pendingLanes=v,g.suspendedLanes=0,g.pingedLanes=0,g.expiredLanes&=v,g.mutableReadLanes&=v,g.entangledLanes&=v;for(var z=g.entanglements,j=g.eventTimes,J=g.expirationTimes,le=L;le>0;){var ce=A1(le),_e=1<<ce;z[ce]=Ci,j[ce]=Co,J[ce]=Co,le&=~_e}}function IM(g,v){g.entangledLanes|=v;for(var L=g.entanglements,z=v;z>0;){var j=A1(z),J=1<<j;L[j]|=v,z&=~J}}var Jb=Math.clz32?Math.clz32:$b,W5=Math.log,H5=Math.LN2;function $b(g){return g===0?32:31-(W5(g)/H5|0)|0}var e7=A.unstable_UserBlockingPriority,PM=A.unstable_runWithPriority,F_=!0;function ug(g){F_=!!g}function Y5(){return F_}function t7(g,v,L){var z=w5(v),j;switch(z){case Sf:j=OM;break;case O_:j=i7;break;case I3:default:j=X5;break}return j.bind(null,v,L,g)}function OM(g,v,L,z){x3(z.timeStamp),Uh(X5,g,v,L,z)}function i7(g,v,L,z){PM(e7,X5.bind(null,g,v,L,z))}function X5(g,v,L,z){if(F_){var j=!0;if(j=(v&pe)===0,j&&O5()&&Nb(g)){G4(null,g,v,L,z);return}var J=Z0(g,v,L,z);if(J===null){j&&R5(g,z);return}if(j){if(Nb(g)){G4(J,g,v,L,z);return}if(H4(J,g,v,L,z))return;R5(g,z)}xA(g,v,z,null,L)}}function Z0(g,v,L,z){var j=Xe(z),J=E2(j);if(J!==null){var le=_2(J);if(le===null)J=null;else{var ce=le.tag;if(ce===te){var _e=E5(le);if(_e!==null)return _e;J=null}else if(ce===N){var Oe=le.stateNode;if(Oe.hydrate)return T5(le);J=null}else le!==J&&(J=null)}}return xA(g,v,z,J,L),null}function k_(g,v,L){return g.addEventListener(v,L,!1),L}function hg(g,v,L){return g.addEventListener(v,L,!0),L}function s7(g,v,L,z){return g.addEventListener(v,L,{capture:!0,passive:z}),L}function RM(g,v,L,z){return g.addEventListener(v,L,{passive:z}),L}var K0=null,dg=null,Lf=null;function w3(g){return K0=g,dg=If(),!0}function r7(){K0=null,dg=null,Lf=null}function eu(){if(Lf)return Lf;var g,v=dg,L=v.length,z,j=If(),J=j.length;for(g=0;g<L&&v[g]===j[g];g++);var le=L-g;for(z=1;z<=le&&v[L-z]===j[J-z];z++);var ce=z>1?1-z:void 0;return Lf=j.slice(g,ce),Lf}function If(){return"value"in K0?K0.value:K0.textContent}function B3(g){var v,L=g.keyCode;return"charCode"in g?(v=g.charCode,v===0&&L===13&&(v=13)):v=L,v===10&&(v=13),v>=32||v===13?v:0}function b2(){return!0}function Z5(){return!1}function tu(g){function v(L,z,j,J,le){this._reactName=L,this._targetInst=j,this.type=z,this.nativeEvent=J,this.target=le,this.currentTarget=null;for(var ce in g)if(g.hasOwnProperty(ce)){var _e=g[ce];_e?this[ce]=_e(J):this[ce]=J[ce]}var Oe=J.defaultPrevented!=null?J.defaultPrevented:J.returnValue===!1;return Oe?this.isDefaultPrevented=b2:this.isDefaultPrevented=Z5,this.isPropagationStopped=Z5,this}return x(v.prototype,{preventDefault:function(){this.defaultPrevented=!0;var L=this.nativeEvent;L&&(L.preventDefault?L.preventDefault():typeof L.returnValue!="unknown"&&(L.returnValue=!1),this.isDefaultPrevented=b2)},stopPropagation:function(){var L=this.nativeEvent;L&&(L.stopPropagation?L.stopPropagation():typeof L.cancelBubble!="unknown"&&(L.cancelBubble=!0),this.isPropagationStopped=b2)},persist:function(){},isPersistent:b2}),v}var S2={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(g){return g.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},q0=tu(S2),z3=x({},S2,{view:0,detail:0}),fg=tu(z3),pg,K5,F3;function n7(g){g!==F3&&(F3&&g.type==="mousemove"?(pg=g.screenX-F3.screenX,K5=g.screenY-F3.screenY):(pg=0,K5=0),F3=g)}var k3=x({},z3,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:j_,button:0,buttons:0,relatedTarget:function(g){return g.relatedTarget===void 0?g.fromElement===g.srcElement?g.toElement:g.fromElement:g.relatedTarget},movementX:function(g){return"movementX"in g?g.movementX:(n7(g),pg)},movementY:function(g){return"movementY"in g?g.movementY:K5}}),q5=tu(k3),DM=x({},k3,{dataTransfer:0}),a7=tu(DM),o7=x({},z3,{relatedTarget:0}),Q5=tu(o7),l7=x({},S2,{animationName:0,elapsedTime:0,pseudoElement:0}),NM=tu(l7),wM=x({},S2,{clipboardData:function(g){return"clipboardData"in g?g.clipboardData:window.clipboardData}}),c7=tu(wM),BM=x({},S2,{data:0}),u7=tu(BM),zM=u7,U_={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},FM={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};function h7(g){if(g.key){var v=U_[g.key]||g.key;if(v!=="Unidentified")return v}if(g.type==="keypress"){var L=B3(g);return L===13?"Enter":String.fromCharCode(L)}return g.type==="keydown"||g.type==="keyup"?FM[g.keyCode]||"Unidentified":""}var kM={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function d7(g){var v=this,L=v.nativeEvent;if(L.getModifierState)return L.getModifierState(g);var z=kM[g];return z?!!L[z]:!1}function j_(g){return d7}var f7=x({},z3,{key:h7,code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:j_,charCode:function(g){return g.type==="keypress"?B3(g):0},keyCode:function(g){return g.type==="keydown"||g.type==="keyup"?g.keyCode:0},which:function(g){return g.type==="keypress"?B3(g):g.type==="keydown"||g.type==="keyup"?g.keyCode:0}}),p7=tu(f7),J5=x({},k3,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),m7=tu(J5),UM=x({},z3,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:j_}),$5=tu(UM),g7=x({},S2,{propertyName:0,elapsedTime:0,pseudoElement:0}),mg=tu(g7),U3=x({},k3,{deltaX:function(g){return"deltaX"in g?g.deltaX:"wheelDeltaX"in g?-g.wheelDeltaX:0},deltaY:function(g){return"deltaY"in g?g.deltaY:"wheelDeltaY"in g?-g.wheelDeltaY:"wheelDelta"in g?-g.wheelDelta:0},deltaZ:0,deltaMode:0}),jM=tu(U3),eA=[9,13,27,32],tA=229,V_=Qe&&"CompositionEvent"in window,j3=null;Qe&&"documentMode"in document&&(j3=document.documentMode);var _7=Qe&&"TextEvent"in window&&!j3,v7=Qe&&(!V_||j3&&j3>8&&j3<=11),A7=32,iA=String.fromCharCode(A7);function C7(){at("onBeforeInput",["compositionend","keypress","textInput","paste"]),at("onCompositionEnd",["compositionend","focusout","keydown","keypress","keyup","mousedown"]),at("onCompositionStart",["compositionstart","focusout","keydown","keypress","keyup","mousedown"]),at("onCompositionUpdate",["compositionupdate","focusout","keydown","keypress","keyup","mousedown"])}var G_=!1;function x7(g){return(g.ctrlKey||g.altKey||g.metaKey)&&!(g.ctrlKey&&g.altKey)}function V3(g){switch(g){case"compositionstart":return"onCompositionStart";case"compositionend":return"onCompositionEnd";case"compositionupdate":return"onCompositionUpdate"}}function sA(g,v){return g==="keydown"&&v.keyCode===tA}function b7(g,v){switch(g){case"keyup":return eA.indexOf(v.keyCode)!==-1;case"keydown":return v.keyCode!==tA;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function rA(g){var v=g.detail;return typeof v=="object"&&"data"in v?v.data:null}function nA(g){return g.locale==="ko"}var G3=!1;function S7(g,v,L,z,j){var J,le;if(V_?J=V3(v):G3?b7(v,z)&&(J="onCompositionEnd"):sA(v,z)&&(J="onCompositionStart"),!J)return null;v7&&!nA(z)&&(!G3&&J==="onCompositionStart"?G3=w3(j):J==="onCompositionEnd"&&G3&&(le=eu()));var ce=K3(L,J);if(ce.length>0){var _e=new u7(J,v,null,z,j);if(g.push({event:_e,listeners:ce}),le)_e.data=le;else{var Oe=rA(z);Oe!==null&&(_e.data=Oe)}}}function y7(g,v){switch(g){case"compositionend":return rA(v);case"keypress":var L=v.which;return L!==A7?null:(G_=!0,iA);case"textInput":var z=v.data;return z===iA&&G_?null:z;default:return null}}function VM(g,v){if(G3){if(g==="compositionend"||!V_&&b7(g,v)){var L=eu();return r7(),G3=!1,L}return null}switch(g){case"paste":return null;case"keypress":if(!x7(v)){if(v.char&&v.char.length>1)return v.char;if(v.which)return String.fromCharCode(v.which)}return null;case"compositionend":return v7&&!nA(v)?null:v.data;default:return null}}function M7(g,v,L,z,j){var J;if(_7?J=y7(v,z):J=VM(v,z),!J)return null;var le=K3(L,"onBeforeInput");if(le.length>0){var ce=new zM("onBeforeInput","beforeinput",null,z,j);g.push({event:ce,listeners:le}),ce.data=J}}function E7(g,v,L,z,j,J,le){S7(g,v,L,z,j),M7(g,v,L,z,j)}var gg={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function W3(g){var v=g&&g.nodeName&&g.nodeName.toLowerCase();return v==="input"?!!gg[g.type]:v==="textarea"}/**
 * Checks if an event is supported in the current execution environment.
 *
 * NOTE: This will not work correctly for non-generic events such as `change`,
 * `reset`, `load`, `error`, and `select`.
 *
 * Borrows from Modernizr.
 *
 * @param {string} eventNameSuffix Event name, e.g. "click".
 * @return {boolean} True if the event is supported.
 * @internal
 * @license Modernizr 3.0.0pre (Custom Build) | MIT
 */function T7(g){if(!Qe)return!1;var v="on"+g,L=v in document;if(!L){var z=document.createElement("div");z.setAttribute(v,"return;"),L=typeof z[v]=="function"}return L}function GM(){at("onChange",["change","click","focusin","focusout","input","keydown","keyup","selectionchange"])}function aA(g,v,L,z){Cs(z);var j=K3(v,"onChange");if(j.length>0){var J=new q0("onChange","change",null,L,z);g.push({event:J,listeners:j})}}var Pf=null,H3=null;function oA(g){var v=g.nodeName&&g.nodeName.toLowerCase();return v==="select"||v==="input"&&g.type==="file"}function WM(g){var v=[];aA(v,H3,g,Xe(g)),qc(W_,v)}function W_(g){bg(g,0)}function _g(g){var v=wf(g);if(bt(v))return g}function lA(g,v){if(g==="change")return v}var L7=!1;Qe&&(L7=T7("input")&&(!document.documentMode||document.documentMode>9));function HM(g,v){Pf=g,H3=v,Pf.attachEvent("onpropertychange",uA)}function cA(){Pf&&(Pf.detachEvent("onpropertychange",uA),Pf=null,H3=null)}function uA(g){g.propertyName==="value"&&_g(H3)&&WM(g)}function I7(g,v,L){g==="focusin"?(cA(),HM(v,L)):g==="focusout"&&cA()}function YM(g,v){if(g==="selectionchange"||g==="keyup"||g==="keydown")return _g(H3)}function XM(g){var v=g.nodeName;return v&&v.toLowerCase()==="input"&&(g.type==="checkbox"||g.type==="radio")}function ZM(g,v){if(g==="click")return _g(v)}function hA(g,v){if(g==="input"||g==="change")return _g(v)}function Hh(g){var v=g._wrapperState;!v||!v.controlled||g.type!=="number"||Ua(g,"number",g.value)}function KM(g,v,L,z,j,J,le){var ce=L?wf(L):window,_e,Oe;if(oA(ce)?_e=lA:W3(ce)?L7?_e=hA:(_e=YM,Oe=I7):XM(ce)&&(_e=ZM),_e){var Fe=_e(v,L);if(Fe){aA(g,Fe,z,j);return}}Oe&&Oe(v,ce,L),v==="focusout"&&Hh(ce)}function vg(){xt("onMouseEnter",["mouseout","mouseover"]),xt("onMouseLeave",["mouseout","mouseover"]),xt("onPointerEnter",["pointerout","pointerover"]),xt("onPointerLeave",["pointerout","pointerover"])}function P7(g,v,L,z,j,J,le){var ce=v==="mouseover"||v==="pointerover",_e=v==="mouseout"||v==="pointerout";if(ce&&!(J&Ce)){var Oe=z.relatedTarget||z.fromElement;if(Oe&&(E2(Oe)||am(Oe)))return}if(!(!_e&&!ce)){var Fe;if(j.window===j)Fe=j;else{var pt=j.ownerDocument;pt?Fe=pt.defaultView||pt.parentWindow:Fe=window}var it,Mt;if(_e){var Jt=z.relatedTarget||z.toElement;if(it=L,Mt=Jt?E2(Jt):null,Mt!==null){var Ai=_2(Mt);(Mt!==Ai||Mt.tag!==D&&Mt.tag!==k)&&(Mt=null)}}else it=null,Mt=L;if(it!==Mt){var Ct=q5,Ft="onMouseLeave",ut="onMouseEnter",ni="mouse";(v==="pointerout"||v==="pointerover")&&(Ct=m7,Ft="onPointerLeave",ut="onPointerEnter",ni="pointer");var Ei=it==null?Fe:wf(it),ht=Mt==null?Fe:wf(Mt),Vt=new Ct(Ft,ni+"leave",it,z,j);Vt.target=Ei,Vt.relatedTarget=ht;var Et=null,di=E2(j);if(di===L){var yi=new Ct(ut,ni+"enter",Mt,z,j);yi.target=ht,yi.relatedTarget=Ei,Et=yi}yg(g,Vt,Et,it,Mt)}}}function O7(g,v){return g===v&&(g!==0||1/g===1/v)||g!==g&&v!==v}var ah=typeof Object.is=="function"?Object.is:O7,qM=Object.prototype.hasOwnProperty;function Ag(g,v){if(ah(g,v))return!0;if(typeof g!="object"||g===null||typeof v!="object"||v===null)return!1;var L=Object.keys(g),z=Object.keys(v);if(L.length!==z.length)return!1;for(var j=0;j<L.length;j++)if(!qM.call(v,L[j])||!ah(g[L[j]],v[L[j]]))return!1;return!0}function R7(g){for(;g&&g.firstChild;)g=g.firstChild;return g}function D7(g){for(;g;){if(g.nextSibling)return g.nextSibling;g=g.parentNode}}function dA(g,v){for(var L=R7(g),z=0,j=0;L;){if(L.nodeType===nl){if(j=z+L.textContent.length,z<=v&&j>=v)return{node:L,offset:v-z};z=j}L=R7(D7(L))}}function QM(g){var v=g.ownerDocument,L=v&&v.defaultView||window,z=L.getSelection&&L.getSelection();if(!z||z.rangeCount===0)return null;var j=z.anchorNode,J=z.anchorOffset,le=z.focusNode,ce=z.focusOffset;try{j.nodeType,le.nodeType}catch{return null}return JM(g,j,J,le,ce)}function JM(g,v,L,z,j){var J=0,le=-1,ce=-1,_e=0,Oe=0,Fe=g,pt=null;e:for(;;){for(var it=null;Fe===v&&(L===0||Fe.nodeType===nl)&&(le=J+L),Fe===z&&(j===0||Fe.nodeType===nl)&&(ce=J+j),Fe.nodeType===nl&&(J+=Fe.nodeValue.length),(it=Fe.firstChild)!==null;)pt=Fe,Fe=it;for(;;){if(Fe===g)break e;if(pt===v&&++_e===L&&(le=J),pt===z&&++Oe===j&&(ce=J),(it=Fe.nextSibling)!==null)break;Fe=pt,pt=Fe.parentNode}Fe=it}return le===-1||ce===-1?null:{start:le,end:ce}}function fA(g,v){var L=g.ownerDocument||document,z=L&&L.defaultView||window;if(z.getSelection){var j=z.getSelection(),J=g.textContent.length,le=Math.min(v.start,J),ce=v.end===void 0?le:Math.min(v.end,J);if(!j.extend&&le>ce){var _e=ce;ce=le,le=_e}var Oe=dA(g,le),Fe=dA(g,ce);if(Oe&&Fe){if(j.rangeCount===1&&j.anchorNode===Oe.node&&j.anchorOffset===Oe.offset&&j.focusNode===Fe.node&&j.focusOffset===Fe.offset)return;var pt=L.createRange();pt.setStart(Oe.node,Oe.offset),j.removeAllRanges(),le>ce?(j.addRange(pt),j.extend(Fe.node,Fe.offset)):(pt.setEnd(Fe.node,Fe.offset),j.addRange(pt))}}}function H_(g){return g&&g.nodeType===nl}function N7(g,v){return!g||!v?!1:g===v?!0:H_(g)?!1:H_(v)?N7(g,v.parentNode):"contains"in g?g.contains(v):g.compareDocumentPosition?!!(g.compareDocumentPosition(v)&16):!1}function Y_(g){return g&&g.ownerDocument&&N7(g.ownerDocument.documentElement,g)}function $M(g){try{return typeof g.contentWindow.location.href=="string"}catch{return!1}}function pA(){for(var g=window,v=Wt();v instanceof g.HTMLIFrameElement;){if($M(v))g=v.contentWindow;else return v;v=Wt(g.document)}return v}function mA(g){var v=g&&g.nodeName&&g.nodeName.toLowerCase();return v&&(v==="input"&&(g.type==="text"||g.type==="search"||g.type==="tel"||g.type==="url"||g.type==="password")||v==="textarea"||g.contentEditable==="true")}function w7(){var g=pA();return{focusedElem:g,selectionRange:mA(g)?gA(g):null}}function y2(g){var v=pA(),L=g.focusedElem,z=g.selectionRange;if(v!==L&&Y_(L)){z!==null&&mA(L)&&Cg(L,z);for(var j=[],J=L;J=J.parentNode;)J.nodeType===ro&&j.push({element:J,left:J.scrollLeft,top:J.scrollTop});typeof L.focus=="function"&&L.focus();for(var le=0;le<j.length;le++){var ce=j[le];ce.element.scrollLeft=ce.left,ce.element.scrollTop=ce.top}}}function gA(g){var v;return"selectionStart"in g?v={start:g.selectionStart,end:g.selectionEnd}:v=QM(g),v||{start:0,end:0}}function Cg(g,v){var L=v.start,z=v.end;z===void 0&&(z=L),"selectionStart"in g?(g.selectionStart=L,g.selectionEnd=Math.min(z,g.value.length)):fA(g,v)}var _A=Qe&&"documentMode"in document&&document.documentMode<=11;function B7(){at("onSelect",["focusout","contextmenu","dragend","focusin","keydown","keyup","mousedown","mouseup","selectionchange"])}var Q0=null,X_=null,xg=null,Z_=!1;function eE(g){if("selectionStart"in g&&mA(g))return{start:g.selectionStart,end:g.selectionEnd};var v=g.ownerDocument&&g.ownerDocument.defaultView||window,L=v.getSelection();return{anchorNode:L.anchorNode,anchorOffset:L.anchorOffset,focusNode:L.focusNode,focusOffset:L.focusOffset}}function Y3(g){return g.window===g?g.document:g.nodeType===_o?g:g.ownerDocument}function z7(g,v,L){var z=Y3(L);if(!(Z_||Q0==null||Q0!==Wt(z))){var j=eE(Q0);if(!xg||!Ag(xg,j)){xg=j;var J=K3(X_,"onSelect");if(J.length>0){var le=new q0("onSelect","select",null,v,L);g.push({event:le,listeners:J}),le.target=Q0}}}}function vA(g,v,L,z,j,J,le){var ce=L?wf(L):window;switch(v){case"focusin":(W3(ce)||ce.contentEditable==="true")&&(Q0=ce,X_=L,xg=null);break;case"focusout":Q0=null,X_=null,xg=null;break;case"mousedown":Z_=!0;break;case"contextmenu":case"mouseup":case"dragend":Z_=!1,z7(g,z,j);break;case"selectionchange":if(_A)break;case"keydown":case"keyup":z7(g,z,j)}}function F7(g,v,L,z,j,J,le){var ce=Ub.get(v);if(ce!==void 0){var _e=q0,Oe=v;switch(v){case"keypress":if(B3(z)===0)return;case"keydown":case"keyup":_e=p7;break;case"focusin":Oe="focus",_e=Q5;break;case"focusout":Oe="blur",_e=Q5;break;case"beforeblur":case"afterblur":_e=Q5;break;case"click":if(z.button===2)return;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":_e=q5;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":_e=a7;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":_e=$5;break;case X4:case zb:case Fb:_e=NM;break;case kb:_e=mg;break;case"scroll":_e=fg;break;case"wheel":_e=jM;break;case"copy":case"cut":case"paste":_e=c7;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":_e=m7;break}var Fe=(J&pe)!==0;{var pt=!Fe&&v==="scroll",it=tE(L,ce,z.type,Fe,pt);if(it.length>0){var Mt=new _e(ce,Oe,null,z,j);g.push({event:Mt,listeners:it})}}}}CM(),vg(),GM(),B7(),C7();function k7(g,v,L,z,j,J,le){F7(g,v,L,z,j,J);var ce=(J&De)===0;ce&&(P7(g,v,L,z,j,J),KM(g,v,L,z,j),vA(g,v,L,z,j),E7(g,v,L,z,j))}var X3=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],Ia=new Set(["cancel","close","invalid","load","scroll","toggle"].concat(X3));function K_(g,v,L){var z=g.type||"unknown-event";g.currentTarget=L,pM(z,v,void 0,g),g.currentTarget=null}function U7(g,v,L){var z;if(L)for(var j=v.length-1;j>=0;j--){var J=v[j],le=J.instance,ce=J.currentTarget,_e=J.listener;if(le!==z&&g.isPropagationStopped())return;K_(g,_e,ce),z=le}else for(var Oe=0;Oe<v.length;Oe++){var Fe=v[Oe],pt=Fe.instance,it=Fe.currentTarget,Mt=Fe.listener;if(pt!==z&&g.isPropagationStopped())return;K_(g,Mt,it),z=pt}}function bg(g,v){for(var L=(v&pe)!==0,z=0;z<g.length;z++){var j=g[z],J=j.event,le=j.listeners;U7(J,le,L)}y5()}function AA(g,v,L,z,j){var J=Xe(L),le=[];k7(le,g,z,L,J,v),bg(le,v)}function xa(g,v){var L=!1,z=om(v),j=Q_(g,L);z.has(j)||(Z3(v,g,gt,L),z.add(j))}var CA="_reactListening"+Math.random().toString(36).slice(2);function J0(g){{if(g[CA])return;g[CA]=!0,Ke.forEach(function(v){Ia.has(v)||q_(v,!1,g,null),q_(v,!0,g,null)})}}function q_(g,v,L,z){var j=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,J=L;g==="selectionchange"&&L.nodeType!==_o&&(J=L.ownerDocument);var le=om(J),ce=Q_(g,v);le.has(ce)||(v&&(j|=pe),Z3(J,g,j,v),le.add(ce))}function Z3(g,v,L,z,j){var J=t7(g,v,L),le=void 0;S5&&(v==="touchstart"||v==="touchmove"||v==="wheel")&&(le=!0),g=g,z?le!==void 0?s7(g,v,J,le):hg(g,v,J):le!==void 0?RM(g,v,J,le):k_(g,v,J)}function $0(g,v){return g===v||g.nodeType===va&&g.parentNode===v}function xA(g,v,L,z,j){var J=z;if(!(v&tt)&&!(v&gt)){var le=j;if(z!==null){var ce=z;e:for(;;){if(ce===null)return;var _e=ce.tag;if(_e===N||_e===w){var Oe=ce.stateNode.containerInfo;if($0(Oe,le))break;if(_e===w)for(var Fe=ce.return;Fe!==null;){var pt=Fe.tag;if(pt===N||pt===w){var it=Fe.stateNode.containerInfo;if($0(it,le))return}Fe=Fe.return}for(;Oe!==null;){var Mt=E2(Oe);if(Mt===null)return;var Jt=Mt.tag;if(Jt===D||Jt===k){ce=J=Mt;continue e}Oe=Oe.parentNode}}ce=ce.return}}}g2(function(){return AA(g,v,L,J)})}function ep(g,v,L){return{instance:g,listener:v,currentTarget:L}}function tE(g,v,L,z,j){for(var J=v!==null?v+"Capture":null,le=z?J:v,ce=[],_e=g,Oe=null;_e!==null;){var Fe=_e,pt=Fe.stateNode,it=Fe.tag;if(it===D&&pt!==null&&(Oe=pt,le!==null)){var Mt=_f(_e,le);Mt!=null&&ce.push(ep(_e,Mt,Oe))}if(j)break;_e=_e.return}return ce}function K3(g,v){for(var L=v+"Capture",z=[],j=g;j!==null;){var J=j,le=J.stateNode,ce=J.tag;if(ce===D&&le!==null){var _e=le,Oe=_f(j,L);Oe!=null&&z.unshift(ep(j,Oe,_e));var Fe=_f(j,v);Fe!=null&&z.push(ep(j,Fe,_e))}j=j.return}return z}function al(g){if(g===null)return null;do g=g.return;while(g&&g.tag!==D);return g||null}function q3(g,v){for(var L=g,z=v,j=0,J=L;J;J=al(J))j++;for(var le=0,ce=z;ce;ce=al(ce))le++;for(;j-le>0;)L=al(L),j--;for(;le-j>0;)z=al(z),le--;for(var _e=j;_e--;){if(L===z||z!==null&&L===z.alternate)return L;L=al(L),z=al(z)}return null}function Sg(g,v,L,z,j){for(var J=v._reactName,le=[],ce=L;ce!==null&&ce!==z;){var _e=ce,Oe=_e.alternate,Fe=_e.stateNode,pt=_e.tag;if(Oe!==null&&Oe===z)break;if(pt===D&&Fe!==null){var it=Fe;if(j){var Mt=_f(ce,J);Mt!=null&&le.unshift(ep(ce,Mt,it))}else if(!j){var Jt=_f(ce,J);Jt!=null&&le.push(ep(ce,Jt,it))}}ce=ce.return}le.length!==0&&g.push({event:v,listeners:le})}function yg(g,v,L,z,j){var J=z&&j?q3(z,j):null;z!==null&&Sg(g,v,z,J,!1),j!==null&&L!==null&&Sg(g,L,j,J,!0)}function Q_(g,v){return g+"__"+(v?"capture":"bubble")}var Ho=!1,Pd="dangerouslySetInnerHTML",tp="suppressContentEditableWarning",Od="suppressHydrationWarning",Mg="autoFocus",Rd="children",x1="style",ip="__html",oh=Xc.html,J_,Of,Eg,Rf,Df,bA,$_,SA,Tg,Q3;{J_={dialog:!0,webview:!0},Eg=function(g,v){d2(g,v),rh(g,v),Ze(g,v,{registrationNameDependencies:ct,possibleRegistrationNames:nt})},SA=Qe&&!document.documentMode;var j7=/\r\n?/g,iE=/\u0000|\uFFFD/g;Tg=function(g){var v=typeof g=="string"?g:""+g;return v.replace(j7,`
`).replace(iE,"")},Rf=function(g,v){if(!Ho){var L=Tg(v),z=Tg(g);z!==L&&(Ho=!0,M('Text content did not match. Server: "%s" Client: "%s"',z,L))}},Df=function(g,v,L){if(!Ho){var z=Tg(L),j=Tg(v);j!==z&&(Ho=!0,M("Prop `%s` did not match. Server: %s Client: %s",g,JSON.stringify(j),JSON.stringify(z)))}},bA=function(g){if(!Ho){Ho=!0;var v=[];g.forEach(function(L){v.push(L)}),M("Extra attributes from the server: %s",v)}},$_=function(g,v){v===!1?M("Expected `%s` listener to be a function, instead got `false`.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.",g,g,g):M("Expected `%s` listener to be a function, instead got a value of `%s` type.",g,typeof v)},Q3=function(g,v){var L=g.namespaceURI===oh?g.ownerDocument.createElement(g.tagName):g.ownerDocument.createElementNS(g.namespaceURI,g.tagName);return L.innerHTML=v,L.innerHTML}}function yA(g){return g.nodeType===_o?g:g.ownerDocument}function sE(){}function J3(g){g.onclick=sE}function rE(g,v,L,z,j){for(var J in z)if(z.hasOwnProperty(J)){var le=z[J];if(J===x1)le&&Object.freeze(le),wh(v,le);else if(J===Pd){var ce=le?le[ip]:void 0;ce!=null&&vd(v,ce)}else if(J===Rd)if(typeof le=="string"){var _e=g!=="textarea"||le!=="";_e&&cc(v,le)}else typeof le=="number"&&cc(v,""+le);else J===tp||J===Od||J===Mg||(ct.hasOwnProperty(J)?le!=null&&(typeof le!="function"&&$_(J,le),J==="onScroll"&&xa("scroll",v)):le!=null&&hi(v,J,le,j))}}function nE(g,v,L,z){for(var j=0;j<v.length;j+=2){var J=v[j],le=v[j+1];J===x1?wh(g,le):J===Pd?vd(g,le):J===Rd?cc(g,le):hi(g,J,le,z)}}function MA(g,v,L,z){var j,J=yA(L),le,ce=z;if(ce===oh&&(ce=go(g)),ce===oh){if(j=uc(g,v),!j&&g!==g.toLowerCase()&&M("<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.",g),g==="script"){var _e=J.createElement("div");_e.innerHTML="<script><\/script>";var Oe=_e.firstChild;le=_e.removeChild(Oe)}else if(typeof v.is=="string")le=J.createElement(g,{is:v.is});else if(le=J.createElement(g),g==="select"){var Fe=le;v.multiple?Fe.multiple=!0:v.size&&(Fe.size=v.size)}}else le=J.createElementNS(ce,g);return ce===oh&&!j&&Object.prototype.toString.call(le)==="[object HTMLUnknownElement]"&&!Object.prototype.hasOwnProperty.call(J_,g)&&(J_[g]=!0,M("The tag <%s> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.",g)),le}function aE(g,v){return yA(v).createTextNode(g)}function EA(g,v,L,z){var j=uc(v,L);Eg(v,L);var J;switch(v){case"dialog":xa("cancel",g),xa("close",g),J=L;break;case"iframe":case"object":case"embed":xa("load",g),J=L;break;case"video":case"audio":for(var le=0;le<X3.length;le++)xa(X3[le],g);J=L;break;case"source":xa("error",g),J=L;break;case"img":case"image":case"link":xa("error",g),xa("load",g),J=L;break;case"details":xa("toggle",g),J=L;break;case"input":Cr(g,L),J=er(g,L),xa("invalid",g);break;case"option":Hc(g,L),J=kl(g,L);break;case"select":qu(g,L),J=Ku(g,L),xa("invalid",g);break;case"textarea":$u(g,L),J=Ju(g,L),xa("invalid",g);break;default:J=L}switch(zh(v,J),rE(v,g,z,J,j),v){case"input":$e(g),Nn(g,L,!1);break;case"textarea":$e(g),Ul(g);break;case"option":gd(g,L);break;case"select":_d(g,L);break;default:typeof J.onClick=="function"&&J3(g);break}}function V7(g,v,L,z,j){Eg(v,z);var J=null,le,ce;switch(v){case"input":le=er(g,L),ce=er(g,z),J=[];break;case"option":le=kl(g,L),ce=kl(g,z),J=[];break;case"select":le=Ku(g,L),ce=Ku(g,z),J=[];break;case"textarea":le=Ju(g,L),ce=Ju(g,z),J=[];break;default:le=L,ce=z,typeof le.onClick!="function"&&typeof ce.onClick=="function"&&J3(g);break}zh(v,ce);var _e,Oe,Fe=null;for(_e in le)if(!(ce.hasOwnProperty(_e)||!le.hasOwnProperty(_e)||le[_e]==null))if(_e===x1){var pt=le[_e];for(Oe in pt)pt.hasOwnProperty(Oe)&&(Fe||(Fe={}),Fe[Oe]="")}else _e===Pd||_e===Rd||_e===tp||_e===Od||_e===Mg||(ct.hasOwnProperty(_e)?J||(J=[]):(J=J||[]).push(_e,null));for(_e in ce){var it=ce[_e],Mt=le!=null?le[_e]:void 0;if(!(!ce.hasOwnProperty(_e)||it===Mt||it==null&&Mt==null))if(_e===x1)if(it&&Object.freeze(it),Mt){for(Oe in Mt)Mt.hasOwnProperty(Oe)&&(!it||!it.hasOwnProperty(Oe))&&(Fe||(Fe={}),Fe[Oe]="");for(Oe in it)it.hasOwnProperty(Oe)&&Mt[Oe]!==it[Oe]&&(Fe||(Fe={}),Fe[Oe]=it[Oe])}else Fe||(J||(J=[]),J.push(_e,Fe)),Fe=it;else if(_e===Pd){var Jt=it?it[ip]:void 0,Ai=Mt?Mt[ip]:void 0;Jt!=null&&Ai!==Jt&&(J=J||[]).push(_e,Jt)}else _e===Rd?(typeof it=="string"||typeof it=="number")&&(J=J||[]).push(_e,""+it):_e===tp||_e===Od||(ct.hasOwnProperty(_e)?(it!=null&&(typeof it!="function"&&$_(_e,it),_e==="onScroll"&&xa("scroll",g)),!J&&Mt!==it&&(J=[])):typeof it=="object"&&it!==null&&it.$$typeof===Ui?it.toString():(J=J||[]).push(_e,it))}return Fe&&(Zc(Fe,ce[x1]),(J=J||[]).push(x1,Fe)),J}function TA(g,v,L,z,j){L==="input"&&j.type==="radio"&&j.name!=null&&rr(g,j);var J=uc(L,z),le=uc(L,j);switch(nE(g,v,J,le),L){case"input":xr(g,j);break;case"textarea":pu(g,j);break;case"select":Qu(g,j);break}}function LA(g){{var v=g.toLowerCase();return Cu.hasOwnProperty(v)&&Cu[v]||null}}function G7(g,v,L,z,j){var J,le;switch(Of=L[Od]===!0,J=uc(v,L),Eg(v,L),v){case"dialog":xa("cancel",g),xa("close",g);break;case"iframe":case"object":case"embed":xa("load",g);break;case"video":case"audio":for(var ce=0;ce<X3.length;ce++)xa(X3[ce],g);break;case"source":xa("error",g);break;case"img":case"image":case"link":xa("error",g),xa("load",g);break;case"details":xa("toggle",g);break;case"input":Cr(g,L),xa("invalid",g);break;case"option":Hc(g,L);break;case"select":qu(g,L),xa("invalid",g);break;case"textarea":$u(g,L),xa("invalid",g);break}zh(v,L);{le=new Set;for(var _e=g.attributes,Oe=0;Oe<_e.length;Oe++){var Fe=_e[Oe].name.toLowerCase();switch(Fe){case"data-reactroot":break;case"value":break;case"checked":break;case"selected":break;default:le.add(_e[Oe].name)}}}var pt=null;for(var it in L)if(L.hasOwnProperty(it)){var Mt=L[it];if(it===Rd)typeof Mt=="string"?g.textContent!==Mt&&(Of||Rf(g.textContent,Mt),pt=[Rd,Mt]):typeof Mt=="number"&&g.textContent!==""+Mt&&(Of||Rf(g.textContent,Mt),pt=[Rd,""+Mt]);else if(ct.hasOwnProperty(it))Mt!=null&&(typeof Mt!="function"&&$_(it,Mt),it==="onScroll"&&xa("scroll",g));else if(typeof J=="boolean"){var Jt=void 0,Ai=qe(it);if(!Of){if(!(it===tp||it===Od||it==="value"||it==="checked"||it==="selected")){if(it===Pd){var Ct=g.innerHTML,Ft=Mt?Mt[ip]:void 0;if(Ft!=null){var ut=Q3(g,Ft);ut!==Ct&&Df(it,Ct,ut)}}else if(it===x1){if(le.delete(it),SA){var ni=u1(Mt);Jt=g.getAttribute("style"),ni!==Jt&&Df(it,Jt,ni)}}else if(J)le.delete(it.toLowerCase()),Jt=bs(g,it,Mt),Mt!==Jt&&Df(it,Jt,Mt);else if(!Ni(it,Ai,J)&&!ci(it,Mt,Ai,J)){var Ei=!1;if(Ai!==null)le.delete(Ai.attributeName),Jt=os(g,it,Mt,Ai);else{var ht=z;if(ht===oh&&(ht=go(v)),ht===oh)le.delete(it.toLowerCase());else{var Vt=LA(it);Vt!==null&&Vt!==it&&(Ei=!0,le.delete(Vt)),le.delete(it)}Jt=bs(g,it,Mt)}Mt!==Jt&&!Ei&&Df(it,Jt,Mt)}}}}}switch(le.size>0&&!Of&&bA(le),v){case"input":$e(g),Nn(g,L,!0);break;case"textarea":$e(g),Ul(g);break;case"select":case"option":break;default:typeof L.onClick=="function"&&J3(g);break}return pt}function IA(g,v){var L=g.nodeValue!==v;return L}function W7(g,v){Rf(g.nodeValue,v)}function sp(g,v){{if(Ho)return;Ho=!0,M("Did not expect server HTML to contain a <%s> in <%s>.",v.nodeName.toLowerCase(),g.nodeName.toLowerCase())}}function $3(g,v){{if(Ho)return;Ho=!0,M('Did not expect server HTML to contain the text node "%s" in <%s>.',v.nodeValue,g.nodeName.toLowerCase())}}function H7(g,v,L){{if(Ho)return;Ho=!0,M("Expected server HTML to contain a matching <%s> in <%s>.",v,g.nodeName.toLowerCase())}}function em(g,v){{if(v===""||Ho)return;Ho=!0,M('Expected server HTML to contain a matching text node for "%s" in <%s>.',v,g.nodeName.toLowerCase())}}function oE(g,v,L){switch(v){case"input":_a(g,L);return;case"textarea":oc(g,L);return;case"select":du(g,L);return}}var Lg=function(){},tm=function(){};{var lE=["address","applet","area","article","aside","base","basefont","bgsound","blockquote","body","br","button","caption","center","col","colgroup","dd","details","dir","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","isindex","li","link","listing","main","marquee","menu","menuitem","meta","nav","noembed","noframes","noscript","object","ol","p","param","plaintext","pre","script","section","select","source","style","summary","table","tbody","td","template","textarea","tfoot","th","thead","title","tr","track","ul","wbr","xmp"],Ig=["applet","caption","html","table","td","th","marquee","object","template","foreignObject","desc","title"],e8=Ig.concat(["button"]),im=["dd","dt","li","option","optgroup","p","rp","rt"],PA={current:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null};tm=function(g,v){var L=x({},g||PA),z={tag:v};return Ig.indexOf(v)!==-1&&(L.aTagInScope=null,L.buttonTagInScope=null,L.nobrTagInScope=null),e8.indexOf(v)!==-1&&(L.pTagInButtonScope=null),lE.indexOf(v)!==-1&&v!=="address"&&v!=="div"&&v!=="p"&&(L.listItemTagAutoclosing=null,L.dlItemTagAutoclosing=null),L.current=z,v==="form"&&(L.formTag=z),v==="a"&&(L.aTagInScope=z),v==="button"&&(L.buttonTagInScope=z),v==="nobr"&&(L.nobrTagInScope=z),v==="p"&&(L.pTagInButtonScope=z),v==="li"&&(L.listItemTagAutoclosing=z),(v==="dd"||v==="dt")&&(L.dlItemTagAutoclosing=z),L};var OA=function(g,v){switch(v){case"select":return g==="option"||g==="optgroup"||g==="#text";case"optgroup":return g==="option"||g==="#text";case"option":return g==="#text";case"tr":return g==="th"||g==="td"||g==="style"||g==="script"||g==="template";case"tbody":case"thead":case"tfoot":return g==="tr"||g==="style"||g==="script"||g==="template";case"colgroup":return g==="col"||g==="template";case"table":return g==="caption"||g==="colgroup"||g==="tbody"||g==="tfoot"||g==="thead"||g==="style"||g==="script"||g==="template";case"head":return g==="base"||g==="basefont"||g==="bgsound"||g==="link"||g==="meta"||g==="title"||g==="noscript"||g==="noframes"||g==="style"||g==="script"||g==="template";case"html":return g==="head"||g==="body"||g==="frameset";case"frameset":return g==="frame";case"#document":return g==="html"}switch(g){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return v!=="h1"&&v!=="h2"&&v!=="h3"&&v!=="h4"&&v!=="h5"&&v!=="h6";case"rp":case"rt":return im.indexOf(v)===-1;case"body":case"caption":case"col":case"colgroup":case"frameset":case"frame":case"head":case"html":case"tbody":case"td":case"tfoot":case"th":case"thead":case"tr":return v==null}return!0},RA=function(g,v){switch(g){case"address":case"article":case"aside":case"blockquote":case"center":case"details":case"dialog":case"dir":case"div":case"dl":case"fieldset":case"figcaption":case"figure":case"footer":case"header":case"hgroup":case"main":case"menu":case"nav":case"ol":case"p":case"section":case"summary":case"ul":case"pre":case"listing":case"table":case"hr":case"xmp":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return v.pTagInButtonScope;case"form":return v.formTag||v.pTagInButtonScope;case"li":return v.listItemTagAutoclosing;case"dd":case"dt":return v.dlItemTagAutoclosing;case"button":return v.buttonTagInScope;case"a":return v.aTagInScope;case"nobr":return v.nobrTagInScope}return null},sm={};Lg=function(g,v,L){L=L||PA;var z=L.current,j=z&&z.tag;v!=null&&(g!=null&&M("validateDOMNesting: when childText is passed, childTag should be null"),g="#text");var J=OA(g,j)?null:z,le=J?null:RA(g,L),ce=J||le;if(ce){var _e=ce.tag,Oe=!!J+"|"+g+"|"+_e;if(!sm[Oe]){sm[Oe]=!0;var Fe=g,pt="";if(g==="#text"?/\S/.test(v)?Fe="Text nodes":(Fe="Whitespace text nodes",pt=" Make sure you don't have any extra whitespace between tags on each line of your source code."):Fe="<"+g+">",J){var it="";_e==="table"&&g==="tr"&&(it+=" Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by the browser."),M("validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s",Fe,_e,pt,it)}else M("validateDOMNesting(...): %s cannot appear as a descendant of <%s>.",Fe,_e)}}}}var rp;rp="suppressHydrationWarning";var t8="$",Pg="/$",Og="$?",DA="$!",NA="style",Y7=null,wA=null;function BA(g,v){switch(g){case"button":case"input":case"select":case"textarea":return!!v.autoFocus}return!1}function cE(g){var v,L,z=g.nodeType;switch(z){case _o:case eh:{v=z===_o?"#document":"#fragment";var j=g.documentElement;L=j?j.namespaceURI:Wo(null,"");break}default:{var J=z===va?g.parentNode:g,le=J.namespaceURI||null;v=J.tagName,L=Wo(le,v);break}}{var ce=v.toLowerCase(),_e=tm(null,ce);return{namespace:L,ancestorInfo:_e}}}function i8(g,v,L){{var z=g,j=Wo(z.namespace,v),J=tm(z.ancestorInfo,v);return{namespace:j,ancestorInfo:J}}}function y9(g){return g}function uE(g){Y7=Y5(),wA=w7();var v=null;return ug(!1),v}function Rg(g){y2(wA),ug(Y7),Y7=null,wA=null}function hE(g,v,L,z,j){var J;{var le=z;if(Lg(g,null,le.ancestorInfo),typeof v.children=="string"||typeof v.children=="number"){var ce=""+v.children,_e=tm(le.ancestorInfo,g);Lg(null,ce,_e)}J=le.namespace}var Oe=MA(g,v,L,J);return Dd(j,Oe),lh(Oe,v),Oe}function s8(g,v){g.appendChild(v)}function dE(g,v,L,z,j){return EA(g,v,L,z),BA(v,L)}function zA(g,v,L,z,j,J){{var le=J;if(typeof z.children!=typeof L.children&&(typeof z.children=="string"||typeof z.children=="number")){var ce=""+z.children,_e=tm(le.ancestorInfo,v);Lg(null,ce,_e)}}return V7(g,v,L,z)}function Dg(g,v){return g==="textarea"||g==="option"||g==="noscript"||typeof v.children=="string"||typeof v.children=="number"||typeof v.dangerouslySetInnerHTML=="object"&&v.dangerouslySetInnerHTML!==null&&v.dangerouslySetInnerHTML.__html!=null}function fE(g,v,L,z){{var j=L;Lg(null,g,j.ancestorInfo)}var J=aE(g,v);return Dd(z,J),J}var FA=typeof setTimeout=="function"?setTimeout:void 0,X7=typeof clearTimeout=="function"?clearTimeout:void 0,kA=-1;function Z7(g,v,L,z){BA(v,L)&&g.focus()}function pE(g,v,L,z,j,J){lh(g,j),TA(g,v,L,z,j)}function K7(g){cc(g,"")}function UA(g,v,L){g.nodeValue=L}function mE(g,v){g.appendChild(v)}function q7(g,v){var L;g.nodeType===va?(L=g.parentNode,L.insertBefore(v,g)):(L=g,L.appendChild(v));var z=g._reactRootContainer;z==null&&L.onclick===null&&J3(L)}function gE(g,v,L){g.insertBefore(v,L)}function _E(g,v,L){g.nodeType===va?g.parentNode.insertBefore(v,L):g.insertBefore(v,L)}function r8(g,v){g.removeChild(v)}function jA(g,v){g.nodeType===va?g.parentNode.removeChild(v):g.removeChild(v)}function vE(g){g=g;var v=g.style;typeof v.setProperty=="function"?v.setProperty("display","none","important"):v.display="none"}function Q7(g){g.nodeValue=""}function AE(g,v){g=g;var L=v[NA],z=L!=null&&L.hasOwnProperty("display")?L.display:null;g.style.display=th("display",z)}function n8(g,v){g.nodeValue=v}function a8(g){if(g.nodeType===ro)g.textContent="";else if(g.nodeType===_o){var v=g.body;v!=null&&(v.textContent="")}}function Ng(g,v,L){return g.nodeType!==ro||v.toLowerCase()!==g.nodeName.toLowerCase()?null:g}function VA(g,v){return v===""||g.nodeType!==nl?null:g}function CE(g){return g.data===Og}function J7(g){return g.data===DA}function GA(g){for(;g!=null;g=g.nextSibling){var v=g.nodeType;if(v===ro||v===nl)break}return g}function rm(g){return GA(g.nextSibling)}function $7(g){return GA(g.firstChild)}function WA(g,v,L,z,j,J){Dd(J,g),lh(g,L);var le;{var ce=j;le=ce.namespace}return G7(g,v,L,le)}function xE(g,v,L){return Dd(L,g),IA(g,v)}function eS(g){for(var v=g.nextSibling,L=0;v;){if(v.nodeType===va){var z=v.data;if(z===Pg){if(L===0)return rm(v);L--}else(z===t8||z===DA||z===Og)&&L++}v=v.nextSibling}return null}function tS(g){for(var v=g.previousSibling,L=0;v;){if(v.nodeType===va){var z=v.data;if(z===t8||z===DA||z===Og){if(L===0)return v;L--}else z===Pg&&L++}v=v.previousSibling}return null}function iS(g){k0(g)}function HA(g){k0(g)}function sS(g,v,L){W7(v,L)}function bE(g,v,L,z,j){v[rp]!==!0&&W7(z,j)}function SE(g,v){v.nodeType===ro?sp(g,v):v.nodeType===va||$3(g,v)}function YA(g,v,L,z){v[rp]!==!0&&(z.nodeType===ro?sp(L,z):z.nodeType===va||$3(L,z))}function yE(g,v,L){H7(g,v)}function rS(g,v){em(g,v)}function ME(g,v,L,z,j){v[rp]!==!0&&H7(L,z)}function XA(g,v,L,z){v[rp]!==!0&&em(L,z)}function nS(g,v,L){v[rp]}var o8=0;function wg(g){var v="r:"+(o8++).toString(36);return{toString:function(){return g(),v},valueOf:function(){return g(),v}}}function aS(g){return g!==null&&typeof g=="object"&&g.$$typeof===Ui}function np(g){return{$$typeof:Ui,toString:g,valueOf:g}}function ZA(g){J0(g)}var ap=Math.random().toString(36).slice(2),nm="__reactFiber$"+ap,KA="__reactProps$"+ap,Nf="__reactContainer$"+ap,M2="__reactEvents$"+ap;function Dd(g,v){v[nm]=g}function op(g,v){v[Nf]=g}function Bg(g){g[Nf]=null}function am(g){return!!g[Nf]}function E2(g){var v=g[nm];if(v)return v;for(var L=g.parentNode;L;){if(v=L[Nf]||L[nm],v){var z=v.alternate;if(v.child!==null||z!==null&&z.child!==null)for(var j=tS(g);j!==null;){var J=j[nm];if(J)return J;j=tS(j)}return v}g=L,L=g.parentNode}return null}function T2(g){var v=g[nm]||g[Nf];return v&&(v.tag===D||v.tag===k||v.tag===te||v.tag===N)?v:null}function wf(g){if(g.tag===D||g.tag===k)return g.stateNode;throw Error("getNodeFromInstance: Invalid argument.")}function lp(g){return g[KA]||null}function lh(g,v){g[KA]=v}function om(g){var v=g[M2];return v===void 0&&(v=g[M2]=new Set),v}var zg={},Nd=E.ReactDebugCurrentFrame;function wd(g){if(g){var v=g._owner,L=Vi(g.type,g._source,v?v.type:null);Nd.setExtraStackFrame(L)}else Nd.setExtraStackFrame(null)}function ba(g,v,L,z,j){{var J=Function.call.bind(Object.prototype.hasOwnProperty);for(var le in g)if(J(g,le)){var ce=void 0;try{if(typeof g[le]!="function"){var _e=Error((z||"React class")+": "+L+" type `"+le+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof g[le]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw _e.name="Invariant Violation",_e}ce=g[le](v,le,z,L,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(Oe){ce=Oe}ce&&!(ce instanceof Error)&&(wd(j),M("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",z||"React class",L,le,typeof ce),wd(null)),ce instanceof Error&&!(ce.message in zg)&&(zg[ce.message]=!0,wd(j),M("Failed %s type: %s",L,ce.message),wd(null))}}}var ol=[],lm;lm=[];var Do=-1;function _c(g){return{current:g}}function Pa(g,v){if(Do<0){M("Unexpected pop.");return}v!==lm[Do]&&M("Unexpected Fiber popped."),g.current=ol[Do],ol[Do]=null,lm[Do]=null,Do--}function ll(g,v,L){Do++,ol[Do]=g.current,lm[Do]=L,g.current=v}var Bf;Bf={};var Su={};Object.freeze(Su);var yu=_c(Su),Mu=_c(!1),ch=Su;function b1(g,v,L){return L&&uh(v)?ch:yu.current}function l8(g,v,L){{var z=g.stateNode;z.__reactInternalMemoizedUnmaskedChildContext=v,z.__reactInternalMemoizedMaskedChildContext=L}}function cp(g,v){{var L=g.type,z=L.contextTypes;if(!z)return Su;var j=g.stateNode;if(j&&j.__reactInternalMemoizedUnmaskedChildContext===v)return j.__reactInternalMemoizedMaskedChildContext;var J={};for(var le in z)J[le]=v[le];{var ce=Wi(L)||"Unknown";ba(z,J,"context",ce)}return j&&l8(g,v,J),J}}function cm(){return Mu.current}function uh(g){{var v=g.childContextTypes;return v!=null}}function up(g){Pa(Mu,g),Pa(yu,g)}function qA(g){Pa(Mu,g),Pa(yu,g)}function Fg(g,v,L){{if(yu.current!==Su)throw Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.");ll(yu,v,g),ll(Mu,L,g)}}function QA(g,v,L){{var z=g.stateNode,j=v.childContextTypes;if(typeof z.getChildContext!="function"){{var J=Wi(v)||"Unknown";Bf[J]||(Bf[J]=!0,M("%s.childContextTypes is specified but there is no getChildContext() method on the instance. You can either define getChildContext() on %s or remove childContextTypes from it.",J,J))}return L}var le=z.getChildContext();for(var ce in le)if(!(ce in j))throw Error((Wi(v)||"Unknown")+'.getChildContext(): key "'+ce+'" is not defined in childContextTypes.');{var _e=Wi(v)||"Unknown";ba(j,le,"child context",_e)}return x({},L,le)}}function kg(g){{var v=g.stateNode,L=v&&v.__reactInternalMemoizedMergedChildContext||Su;return ch=yu.current,ll(yu,L,g),ll(Mu,Mu.current,g),!0}}function um(g,v,L){{var z=g.stateNode;if(!z)throw Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.");if(L){var j=QA(g,v,ch);z.__reactInternalMemoizedMergedChildContext=j,Pa(Mu,g),Pa(yu,g),ll(yu,j,g),ll(Mu,L,g)}else Pa(Mu,g),ll(Mu,L,g)}}function Bd(g){{if(!(gM(g)&&g.tag===R))throw Error("Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");var v=g;do{switch(v.tag){case N:return v.stateNode.context;case R:{var L=v.type;if(uh(L))return v.stateNode.__reactInternalMemoizedMergedChildContext;break}}v=v.return}while(v!==null);throw Error("Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.")}}var L2=0,c8=1,oS=2,u8=null,zd=null,hp=!1,JA=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u";function $A(g){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")return!1;var v=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(v.isDisabled)return!0;if(!v.supportsFiber)return M("The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://reactjs.org/link/react-devtools"),!0;try{u8=v.inject(g),zd=v}catch(L){M("React instrumentation encountered an error: %s.",L)}return!0}function lS(g,v){if(zd&&typeof zd.onScheduleFiberRoot=="function")try{zd.onScheduleFiberRoot(u8,g,v)}catch(L){hp||(hp=!0,M("React instrumentation encountered an error: %s",L))}}function EE(g,v){if(zd&&typeof zd.onCommitFiberRoot=="function")try{var L=(g.current.flags&en)===en;we&&zd.onCommitFiberRoot(u8,g,v,L)}catch(z){hp||(hp=!0,M("React instrumentation encountered an error: %s",z))}}function h8(g){if(zd&&typeof zd.onCommitFiberUnmount=="function")try{zd.onCommitFiberUnmount(u8,g)}catch(v){hp||(hp=!0,M("React instrumentation encountered an error: %s",v))}}var eC=A.unstable_runWithPriority,tC=A.unstable_scheduleCallback,Ug=A.unstable_cancelCallback,cS=A.unstable_shouldYield,jg=A.unstable_requestPaint,d8=A.unstable_now,uS=A.unstable_getCurrentPriorityLevel,Vg=A.unstable_ImmediatePriority,hh=A.unstable_UserBlockingPriority,I2=A.unstable_NormalPriority,Fd=A.unstable_LowPriority,iC=A.unstable_IdlePriority;if(!(S.__interactionsRef!=null&&S.__interactionsRef.current!=null))throw Error("It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at https://reactjs.org/link/profiling");var sC={},iu=99,dp=98,S1=97,y1=96,hm=95,dm=90,hS=cS,El=jg!==void 0?jg:function(){},Eu=null,fm=null,P2=!1,O2=d8(),Tl=O2<1e4?d8:function(){return d8()-O2};function fp(){switch(uS()){case Vg:return iu;case hh:return dp;case I2:return S1;case Fd:return y1;case iC:return hm;default:throw Error("Unknown priority level.")}}function kd(g){switch(g){case iu:return Vg;case dp:return hh;case S1:return I2;case y1:return Fd;case hm:return iC;default:throw Error("Unknown priority level.")}}function R2(g,v){var L=kd(g);return eC(L,v)}function D2(g,v,L){var z=kd(g);return tC(z,v,L)}function Ga(g){return Eu===null?(Eu=[g],fm=tC(Vg,N2)):Eu.push(g),sC}function Wa(g){g!==sC&&Ug(g)}function ao(){if(fm!==null){var g=fm;fm=null,Ug(g)}N2()}function N2(){if(!P2&&Eu!==null){P2=!0;var g=0;try{var v=!0,L=Eu;R2(iu,function(){for(;g<L.length;g++){var z=L[g];do z=z(v);while(z!==null)}}),Eu=null}catch(z){throw Eu!==null&&(Eu=Eu.slice(g+1)),tC(Vg,ao),z}finally{P2=!1}}}var Tu="17.0.2",Ha=0,oo=1,Lu=2,pp=4,Ya=8,TE=16,mp=E.ReactCurrentBatchConfig,Gg=0;function pm(){return mp.transition}var vc={recordUnsafeLifecycleWarnings:function(g,v){},flushPendingUnsafeLifecycleWarnings:function(){},recordLegacyContextWarning:function(g,v){},flushLegacyContextWarning:function(){},discardPendingWarnings:function(){}};{var Wg=function(g){for(var v=null,L=g;L!==null;)L.mode&oo&&(v=L),L=L.return;return v},Ud=function(g){var v=[];return g.forEach(function(L){v.push(L)}),v.sort().join(", ")},jd=[],Yh=[],zf=[],mm=[],Ac=[],M1=[],w2=new Set;vc.recordUnsafeLifecycleWarnings=function(g,v){w2.has(g.type)||(typeof v.componentWillMount=="function"&&v.componentWillMount.__suppressDeprecationWarning!==!0&&jd.push(g),g.mode&oo&&typeof v.UNSAFE_componentWillMount=="function"&&Yh.push(g),typeof v.componentWillReceiveProps=="function"&&v.componentWillReceiveProps.__suppressDeprecationWarning!==!0&&zf.push(g),g.mode&oo&&typeof v.UNSAFE_componentWillReceiveProps=="function"&&mm.push(g),typeof v.componentWillUpdate=="function"&&v.componentWillUpdate.__suppressDeprecationWarning!==!0&&Ac.push(g),g.mode&oo&&typeof v.UNSAFE_componentWillUpdate=="function"&&M1.push(g))},vc.flushPendingUnsafeLifecycleWarnings=function(){var g=new Set;jd.length>0&&(jd.forEach(function(it){g.add(Wi(it.type)||"Component"),w2.add(it.type)}),jd=[]);var v=new Set;Yh.length>0&&(Yh.forEach(function(it){v.add(Wi(it.type)||"Component"),w2.add(it.type)}),Yh=[]);var L=new Set;zf.length>0&&(zf.forEach(function(it){L.add(Wi(it.type)||"Component"),w2.add(it.type)}),zf=[]);var z=new Set;mm.length>0&&(mm.forEach(function(it){z.add(Wi(it.type)||"Component"),w2.add(it.type)}),mm=[]);var j=new Set;Ac.length>0&&(Ac.forEach(function(it){j.add(Wi(it.type)||"Component"),w2.add(it.type)}),Ac=[]);var J=new Set;if(M1.length>0&&(M1.forEach(function(it){J.add(Wi(it.type)||"Component"),w2.add(it.type)}),M1=[]),v.size>0){var le=Ud(v);M(`Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move code with side effects to componentDidMount, and set initial state in the constructor.

Please update the following components: %s`,le)}if(z.size>0){var ce=Ud(z);M(`Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state

Please update the following components: %s`,ce)}if(J.size>0){var _e=Ud(J);M(`Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.

Please update the following components: %s`,_e)}if(g.size>0){var Oe=Ud(g);b(`componentWillMount has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move code with side effects to componentDidMount, and set initial state in the constructor.
* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder.

Please update the following components: %s`,Oe)}if(L.size>0){var Fe=Ud(L);b(`componentWillReceiveProps has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder.

Please update the following components: %s`,Fe)}if(j.size>0){var pt=Ud(j);b(`componentWillUpdate has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.
* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder.

Please update the following components: %s`,pt)}};var gp=new Map,Hg=new Set;vc.recordLegacyContextWarning=function(g,v){var L=Wg(g);if(L===null){M("Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.");return}if(!Hg.has(g.type)){var z=gp.get(L);(g.type.contextTypes!=null||g.type.childContextTypes!=null||v!==null&&typeof v.getChildContext=="function")&&(z===void 0&&(z=[],gp.set(L,z)),z.push(g))}},vc.flushLegacyContextWarning=function(){gp.forEach(function(g,v){if(g.length!==0){var L=g[0],z=new Set;g.forEach(function(J){z.add(Wi(J.type)||"Component"),Hg.add(J.type)});var j=Ud(z);try{fn(L),M(`Legacy context API has been detected within a strict-mode tree.

The old API will be supported in all 16.x releases, but applications using it should migrate to the new version.

Please update the following components: %s

Learn more about this warning here: https://reactjs.org/link/legacy-context`,j)}finally{Or()}}})},vc.discardPendingWarnings=function(){jd=[],Yh=[],zf=[],mm=[],Ac=[],M1=[],gp=new Map}}function Gl(g,v){if(g&&g.defaultProps){var L=x({},v),z=g.defaultProps;for(var j in z)L[j]===void 0&&(L[j]=z[j]);return L}return v}var Ff=1073741823,gm=_c(null),_p;_p={};var Yg=null,kf=null,_m=null,vm=!1;function f8(){Yg=null,kf=null,_m=null,vm=!1}function rC(){vm=!0}function nC(){vm=!1}function Uf(g,v){var L=g.type._context;ll(gm,L._currentValue,g),L._currentValue=v,L._currentRenderer!==void 0&&L._currentRenderer!==null&&L._currentRenderer!==_p&&M("Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."),L._currentRenderer=_p}function xo(g){var v=gm.current;Pa(gm,g);var L=g.type._context;L._currentValue=v}function dS(g,v,L){if(ah(L,v))return 0;var z=typeof g._calculateChangedBits=="function"?g._calculateChangedBits(L,v):Ff;return(z&Ff)!==z&&M("calculateChangedBits: Expected the return value to be a 31-bit integer. Instead received: %s",z),z|0}function aC(g,v){for(var L=g;L!==null;){var z=L.alternate;if(!C1(L.childLanes,v))L.childLanes=tn(L.childLanes,v),z!==null&&(z.childLanes=tn(z.childLanes,v));else if(z!==null&&!C1(z.childLanes,v))z.childLanes=tn(z.childLanes,v);else break;L=L.return}}function p8(g,v,L,z){var j=g.child;for(j!==null&&(j.return=g);j!==null;){var J=void 0,le=j.dependencies;if(le!==null){J=j.child;for(var ce=le.firstContext;ce!==null;){if(ce.context===v&&ce.observedBits&L){if(j.tag===R){var _e=Vf(Co,dr(z));_e.tag=Am,E1(j,_e)}j.lanes=tn(j.lanes,z);var Oe=j.alternate;Oe!==null&&(Oe.lanes=tn(Oe.lanes,z)),aC(j.return,z),le.lanes=tn(le.lanes,z);break}ce=ce.next}}else j.tag===K?J=j.type===g.type?null:j.child:J=j.child;if(J!==null)J.return=j;else for(J=j;J!==null;){if(J===g){J=null;break}var Fe=J.sibling;if(Fe!==null){Fe.return=J.return,J=Fe;break}J=J.return}j=J}}function B2(g,v){Yg=g,kf=null,_m=null;var L=g.dependencies;if(L!==null){var z=L.firstContext;z!==null&&(gc(L.lanes,v)&&tv(),L.firstContext=null)}}function Xa(g,v){if(vm&&M("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."),_m!==g){if(!(v===!1||v===0)){var L;typeof v!="number"||v===Ff?(_m=g,L=Ff):L=v;var z={context:g,observedBits:L,next:null};if(kf===null){if(Yg===null)throw Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");kf=z,Yg.dependencies={lanes:Ci,firstContext:z,responders:null}}else kf=kf.next=z}}return g._currentValue}var m8=0,Xg=1,Am=2,Zg=3,Xh=!1,Vd,Kg;Vd=!1,Kg=null;function oC(g){var v={baseState:g.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null};g.updateQueue=v}function jf(g,v){var L=v.updateQueue,z=g.updateQueue;if(L===z){var j={baseState:z.baseState,firstBaseUpdate:z.firstBaseUpdate,lastBaseUpdate:z.lastBaseUpdate,shared:z.shared,effects:z.effects};v.updateQueue=j}}function Vf(g,v){var L={eventTime:g,lane:v,tag:m8,payload:null,callback:null,next:null};return L}function E1(g,v){var L=g.updateQueue;if(L!==null){var z=L.shared,j=z.pending;j===null?v.next=v:(v.next=j.next,j.next=v),z.pending=v,Kg===z&&!Vd&&(M("An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback."),Vd=!0)}}function Cm(g,v){var L=g.updateQueue,z=g.alternate;if(z!==null){var j=z.updateQueue;if(L===j){var J=null,le=null,ce=L.firstBaseUpdate;if(ce!==null){var _e=ce;do{var Oe={eventTime:_e.eventTime,lane:_e.lane,tag:_e.tag,payload:_e.payload,callback:_e.callback,next:null};le===null?J=le=Oe:(le.next=Oe,le=Oe),_e=_e.next}while(_e!==null);le===null?J=le=v:(le.next=v,le=v)}else J=le=v;L={baseState:j.baseState,firstBaseUpdate:J,lastBaseUpdate:le,shared:j.shared,effects:j.effects},g.updateQueue=L;return}}var Fe=L.lastBaseUpdate;Fe===null?L.firstBaseUpdate=v:Fe.next=v,L.lastBaseUpdate=v}function fS(g,v,L,z,j,J){switch(L.tag){case Xg:{var le=L.payload;if(typeof le=="function"){rC();var ce=le.call(J,z,j);{if(g.mode&oo){On();try{le.call(J,z,j)}finally{Kr()}}nC()}return ce}return le}case Zg:g.flags=g.flags&~Ld|en;case m8:{var _e=L.payload,Oe;if(typeof _e=="function"){rC(),Oe=_e.call(J,z,j);{if(g.mode&oo){On();try{_e.call(J,z,j)}finally{Kr()}}nC()}}else Oe=_e;return Oe==null?z:x({},z,Oe)}case Am:return Xh=!0,z}return z}function Gf(g,v,L,z){var j=g.updateQueue;Xh=!1,Kg=j.shared;var J=j.firstBaseUpdate,le=j.lastBaseUpdate,ce=j.shared.pending;if(ce!==null){j.shared.pending=null;var _e=ce,Oe=_e.next;_e.next=null,le===null?J=Oe:le.next=Oe,le=_e;var Fe=g.alternate;if(Fe!==null){var pt=Fe.updateQueue,it=pt.lastBaseUpdate;it!==le&&(it===null?pt.firstBaseUpdate=Oe:it.next=Oe,pt.lastBaseUpdate=_e)}}if(J!==null){var Mt=j.baseState,Jt=Ci,Ai=null,Ct=null,Ft=null,ut=J;do{var ni=ut.lane,Ei=ut.eventTime;if(C1(z,ni)){if(Ft!==null){var Vt={eventTime:Ei,lane:Jc,tag:ut.tag,payload:ut.payload,callback:ut.callback,next:null};Ft=Ft.next=Vt}Mt=fS(g,j,ut,Mt,v,L);var Et=ut.callback;if(Et!==null){g.flags|=M3;var di=j.effects;di===null?j.effects=[ut]:di.push(ut)}}else{var ht={eventTime:Ei,lane:ni,tag:ut.tag,payload:ut.payload,callback:ut.callback,next:null};Ft===null?(Ct=Ft=ht,Ai=Mt):Ft=Ft.next=ht,Jt=tn(Jt,ni)}if(ut=ut.next,ut===null){if(ce=j.shared.pending,ce===null)break;var yi=ce,Gi=yi.next;yi.next=null,ut=Gi,j.lastBaseUpdate=yi,j.shared.pending=null}}while(!0);Ft===null&&(Ai=Mt),j.baseState=Ai,j.firstBaseUpdate=Ct,j.lastBaseUpdate=Ft,u0(Jt),g.lanes=Jt,g.memoizedState=Mt}Kg=null}function LE(g,v){if(typeof g!="function")throw Error("Invalid argument passed as callback. Expected a function. Instead received: "+g);g.call(v)}function xm(){Xh=!1}function vp(){return Xh}function g8(g,v,L){var z=v.effects;if(v.effects=null,z!==null)for(var j=0;j<z.length;j++){var J=z[j],le=J.callback;le!==null&&(J.callback=null,LE(le,L))}}var qg={},lC=Array.isArray,Ap=new h.Component().refs,_8,bm,Qg,Jg,$g,cC,Cp,Sm,v8,uC;{_8=new Set,bm=new Set,Qg=new Set,Jg=new Set,Sm=new Set,$g=new Set,v8=new Set,uC=new Set;var A8=new Set;Cp=function(g,v){if(!(g===null||typeof g=="function")){var L=v+"_"+g;A8.has(L)||(A8.add(L),M("%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.",v,g))}},cC=function(g,v){if(v===void 0){var L=Wi(g)||"Component";$g.has(L)||($g.add(L),M("%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.",L))}},Object.defineProperty(qg,"_processChildContext",{enumerable:!1,value:function(){throw Error("_processChildContext is not available in React 16+. This likely means you have multiple copies of React and are attempting to nest a React 15 tree inside a React 16 tree using unstable_renderSubtreeIntoContainer, which isn't supported. Try to make sure you have only one copy of React (and ideally, switch to ReactDOM.createPortal).")}}),Object.freeze(qg)}function e6(g,v,L,z){var j=g.memoizedState;if(g.mode&oo){On();try{L(z,j)}finally{Kr()}}var J=L(z,j);cC(v,J);var le=J==null?j:x({},j,J);if(g.memoizedState=le,g.lanes===Ci){var ce=g.updateQueue;ce.baseState=le}}var C8={isMounted:Ob,enqueueSetState:function(g,v,L){var z=oa(g),j=Za(),J=B1(z),le=Vf(j,J);le.payload=v,L!=null&&(Cp(L,"setState"),le.callback=L),E1(z,le),Ka(z,J,j)},enqueueReplaceState:function(g,v,L){var z=oa(g),j=Za(),J=B1(z),le=Vf(j,J);le.tag=Xg,le.payload=v,L!=null&&(Cp(L,"replaceState"),le.callback=L),E1(z,le),Ka(z,J,j)},enqueueForceUpdate:function(g,v){var L=oa(g),z=Za(),j=B1(L),J=Vf(z,j);J.tag=Am,v!=null&&(Cp(v,"forceUpdate"),J.callback=v),E1(L,J),Ka(L,j,z)}};function hC(g,v,L,z,j,J,le){var ce=g.stateNode;if(typeof ce.shouldComponentUpdate=="function"){if(g.mode&oo){On();try{ce.shouldComponentUpdate(z,J,le)}finally{Kr()}}var _e=ce.shouldComponentUpdate(z,J,le);return _e===void 0&&M("%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.",Wi(v)||"Component"),_e}return v.prototype&&v.prototype.isPureReactComponent?!Ag(L,z)||!Ag(j,J):!0}function dC(g,v,L){var z=g.stateNode;{var j=Wi(v)||"Component",J=z.render;J||(v.prototype&&typeof v.prototype.render=="function"?M("%s(...): No `render` method found on the returned component instance: did you accidentally return an object from the constructor?",j):M("%s(...): No `render` method found on the returned component instance: you may have forgotten to define `render`.",j)),z.getInitialState&&!z.getInitialState.isReactClassApproved&&!z.state&&M("getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?",j),z.getDefaultProps&&!z.getDefaultProps.isReactClassApproved&&M("getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.",j),z.propTypes&&M("propTypes was defined as an instance property on %s. Use a static property to define propTypes instead.",j),z.contextType&&M("contextType was defined as an instance property on %s. Use a static property to define contextType instead.",j),z.contextTypes&&M("contextTypes was defined as an instance property on %s. Use a static property to define contextTypes instead.",j),v.contextType&&v.contextTypes&&!v8.has(v)&&(v8.add(v),M("%s declares both contextTypes and contextType static properties. The legacy contextTypes property will be ignored.",j)),typeof z.componentShouldUpdate=="function"&&M("%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",j),v.prototype&&v.prototype.isPureReactComponent&&typeof z.shouldComponentUpdate<"u"&&M("%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.",Wi(v)||"A pure component"),typeof z.componentDidUnmount=="function"&&M("%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?",j),typeof z.componentDidReceiveProps=="function"&&M("%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().",j),typeof z.componentWillRecieveProps=="function"&&M("%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",j),typeof z.UNSAFE_componentWillRecieveProps=="function"&&M("%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?",j);var le=z.props!==L;z.props!==void 0&&le&&M("%s(...): When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.",j,j),z.defaultProps&&M("Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.",j,j),typeof z.getSnapshotBeforeUpdate=="function"&&typeof z.componentDidUpdate!="function"&&!Qg.has(v)&&(Qg.add(v),M("%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.",Wi(v))),typeof z.getDerivedStateFromProps=="function"&&M("%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.",j),typeof z.getDerivedStateFromError=="function"&&M("%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.",j),typeof v.getSnapshotBeforeUpdate=="function"&&M("%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.",j);var ce=z.state;ce&&(typeof ce!="object"||lC(ce))&&M("%s.state: must be set to an object or null",j),typeof z.getChildContext=="function"&&typeof v.childContextTypes!="object"&&M("%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().",j)}}function fC(g,v){v.updater=C8,g.stateNode=v,mM(v,g),v._reactInternalInstance=qg}function pC(g,v,L){var z=!1,j=Su,J=Su,le=v.contextType;if("contextType"in v){var ce=le===null||le!==void 0&&le.$$typeof===We&&le._context===void 0;if(!ce&&!uC.has(v)){uC.add(v);var _e="";le===void 0?_e=" However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file.":typeof le!="object"?_e=" However, it is set to a "+typeof le+".":le.$$typeof===fr?_e=" Did you accidentally pass the Context.Provider instead?":le._context!==void 0?_e=" Did you accidentally pass the Context.Consumer instead?":_e=" However, it is set to an object with keys {"+Object.keys(le).join(", ")+"}.",M("%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s",Wi(v)||"Component",_e)}}if(typeof le=="object"&&le!==null)J=Xa(le);else{j=b1(g,v,!0);var Oe=v.contextTypes;z=Oe!=null,J=z?cp(g,j):Su}if(g.mode&oo){On();try{new v(L,J)}finally{Kr()}}var Fe=new v(L,J),pt=g.memoizedState=Fe.state!==null&&Fe.state!==void 0?Fe.state:null;fC(g,Fe);{if(typeof v.getDerivedStateFromProps=="function"&&pt===null){var it=Wi(v)||"Component";bm.has(it)||(bm.add(it),M("`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.",it,Fe.state===null?"null":"undefined",it))}if(typeof v.getDerivedStateFromProps=="function"||typeof Fe.getSnapshotBeforeUpdate=="function"){var Mt=null,Jt=null,Ai=null;if(typeof Fe.componentWillMount=="function"&&Fe.componentWillMount.__suppressDeprecationWarning!==!0?Mt="componentWillMount":typeof Fe.UNSAFE_componentWillMount=="function"&&(Mt="UNSAFE_componentWillMount"),typeof Fe.componentWillReceiveProps=="function"&&Fe.componentWillReceiveProps.__suppressDeprecationWarning!==!0?Jt="componentWillReceiveProps":typeof Fe.UNSAFE_componentWillReceiveProps=="function"&&(Jt="UNSAFE_componentWillReceiveProps"),typeof Fe.componentWillUpdate=="function"&&Fe.componentWillUpdate.__suppressDeprecationWarning!==!0?Ai="componentWillUpdate":typeof Fe.UNSAFE_componentWillUpdate=="function"&&(Ai="UNSAFE_componentWillUpdate"),Mt!==null||Jt!==null||Ai!==null){var Ct=Wi(v)||"Component",Ft=typeof v.getDerivedStateFromProps=="function"?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";Jg.has(Ct)||(Jg.add(Ct),M(`Unsafe legacy lifecycles will not be called for components using new component APIs.

%s uses %s but also contains the following legacy lifecycles:%s%s%s

The above lifecycles should be removed. Learn more about this warning here:
https://reactjs.org/link/unsafe-component-lifecycles`,Ct,Ft,Mt!==null?`
  `+Mt:"",Jt!==null?`
  `+Jt:"",Ai!==null?`
  `+Ai:""))}}}return z&&l8(g,j,J),Fe}function mC(g,v){var L=v.state;typeof v.componentWillMount=="function"&&v.componentWillMount(),typeof v.UNSAFE_componentWillMount=="function"&&v.UNSAFE_componentWillMount(),L!==v.state&&(M("%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",Wi(g.type)||"Component"),C8.enqueueReplaceState(v,v.state,null))}function x8(g,v,L,z){var j=v.state;if(typeof v.componentWillReceiveProps=="function"&&v.componentWillReceiveProps(L,z),typeof v.UNSAFE_componentWillReceiveProps=="function"&&v.UNSAFE_componentWillReceiveProps(L,z),v.state!==j){{var J=Wi(g.type)||"Component";_8.has(J)||(_8.add(J),M("%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",J))}C8.enqueueReplaceState(v,v.state,null)}}function ym(g,v,L,z){dC(g,v,L);var j=g.stateNode;j.props=L,j.state=g.memoizedState,j.refs=Ap,oC(g);var J=v.contextType;if(typeof J=="object"&&J!==null)j.context=Xa(J);else{var le=b1(g,v,!0);j.context=cp(g,le)}{if(j.state===L){var ce=Wi(v)||"Component";Sm.has(ce)||(Sm.add(ce),M("%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.",ce))}g.mode&oo&&vc.recordLegacyContextWarning(g,j),vc.recordUnsafeLifecycleWarnings(g,j)}Gf(g,L,j,z),j.state=g.memoizedState;var _e=v.getDerivedStateFromProps;typeof _e=="function"&&(e6(g,v,_e,L),j.state=g.memoizedState),typeof v.getDerivedStateFromProps!="function"&&typeof j.getSnapshotBeforeUpdate!="function"&&(typeof j.UNSAFE_componentWillMount=="function"||typeof j.componentWillMount=="function")&&(mC(g,j),Gf(g,L,j,z),j.state=g.memoizedState),typeof j.componentDidMount=="function"&&(g.flags|=Zs)}function gC(g,v,L,z){var j=g.stateNode,J=g.memoizedProps;j.props=J;var le=j.context,ce=v.contextType,_e=Su;if(typeof ce=="object"&&ce!==null)_e=Xa(ce);else{var Oe=b1(g,v,!0);_e=cp(g,Oe)}var Fe=v.getDerivedStateFromProps,pt=typeof Fe=="function"||typeof j.getSnapshotBeforeUpdate=="function";!pt&&(typeof j.UNSAFE_componentWillReceiveProps=="function"||typeof j.componentWillReceiveProps=="function")&&(J!==L||le!==_e)&&x8(g,j,L,_e),xm();var it=g.memoizedState,Mt=j.state=it;if(Gf(g,L,j,z),Mt=g.memoizedState,J===L&&it===Mt&&!cm()&&!vp())return typeof j.componentDidMount=="function"&&(g.flags|=Zs),!1;typeof Fe=="function"&&(e6(g,v,Fe,L),Mt=g.memoizedState);var Jt=vp()||hC(g,v,J,L,it,Mt,_e);return Jt?(!pt&&(typeof j.UNSAFE_componentWillMount=="function"||typeof j.componentWillMount=="function")&&(typeof j.componentWillMount=="function"&&j.componentWillMount(),typeof j.UNSAFE_componentWillMount=="function"&&j.UNSAFE_componentWillMount()),typeof j.componentDidMount=="function"&&(g.flags|=Zs)):(typeof j.componentDidMount=="function"&&(g.flags|=Zs),g.memoizedProps=L,g.memoizedState=Mt),j.props=L,j.state=Mt,j.context=_e,Jt}function t6(g,v,L,z,j){var J=v.stateNode;jf(g,v);var le=v.memoizedProps,ce=v.type===v.elementType?le:Gl(v.type,le);J.props=ce;var _e=v.pendingProps,Oe=J.context,Fe=L.contextType,pt=Su;if(typeof Fe=="object"&&Fe!==null)pt=Xa(Fe);else{var it=b1(v,L,!0);pt=cp(v,it)}var Mt=L.getDerivedStateFromProps,Jt=typeof Mt=="function"||typeof J.getSnapshotBeforeUpdate=="function";!Jt&&(typeof J.UNSAFE_componentWillReceiveProps=="function"||typeof J.componentWillReceiveProps=="function")&&(le!==_e||Oe!==pt)&&x8(v,J,z,pt),xm();var Ai=v.memoizedState,Ct=J.state=Ai;if(Gf(v,z,J,j),Ct=v.memoizedState,le===_e&&Ai===Ct&&!cm()&&!vp())return typeof J.componentDidUpdate=="function"&&(le!==g.memoizedProps||Ai!==g.memoizedState)&&(v.flags|=Zs),typeof J.getSnapshotBeforeUpdate=="function"&&(le!==g.memoizedProps||Ai!==g.memoizedState)&&(v.flags|=B0),!1;typeof Mt=="function"&&(e6(v,L,Mt,z),Ct=v.memoizedState);var Ft=vp()||hC(v,L,ce,z,Ai,Ct,pt);return Ft?(!Jt&&(typeof J.UNSAFE_componentWillUpdate=="function"||typeof J.componentWillUpdate=="function")&&(typeof J.componentWillUpdate=="function"&&J.componentWillUpdate(z,Ct,pt),typeof J.UNSAFE_componentWillUpdate=="function"&&J.UNSAFE_componentWillUpdate(z,Ct,pt)),typeof J.componentDidUpdate=="function"&&(v.flags|=Zs),typeof J.getSnapshotBeforeUpdate=="function"&&(v.flags|=B0)):(typeof J.componentDidUpdate=="function"&&(le!==g.memoizedProps||Ai!==g.memoizedState)&&(v.flags|=Zs),typeof J.getSnapshotBeforeUpdate=="function"&&(le!==g.memoizedProps||Ai!==g.memoizedState)&&(v.flags|=B0),v.memoizedProps=z,v.memoizedState=Ct),J.props=z,J.state=Ct,J.context=pt,Ft}var b8,xp,Wf,Mm,bp,_C=function(g,v){};b8=!1,xp=!1,Wf={},Mm={},bp={},_C=function(g,v){if(!(g===null||typeof g!="object")&&!(!g._store||g._store.validated||g.key!=null)){if(typeof g._store!="object")throw Error("React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.");g._store.validated=!0;var L=Wi(v.type)||"Component";Mm[L]||(Mm[L]=!0,M('Each child in a list should have a unique "key" prop. See https://reactjs.org/link/warning-keys for more information.'))}};var Hf=Array.isArray;function Sp(g,v,L){var z=L.ref;if(z!==null&&typeof z!="function"&&typeof z!="object"){if((g.mode&oo||Ve)&&!(L._owner&&L._self&&L._owner.stateNode!==L._self)){var j=Wi(g.type)||"Component";Wf[j]||(M('A string ref, "%s", has been found within a strict mode tree. String refs are a source of potential bugs and should be avoided. We recommend using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',z),Wf[j]=!0)}if(L._owner){var J=L._owner,le;if(J){var ce=J;if(ce.tag!==R)throw Error("Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref");le=ce.stateNode}if(!le)throw Error("Missing owner for string ref "+z+". This error is likely caused by a bug in React. Please file an issue.");var _e=""+z;if(v!==null&&v.ref!==null&&typeof v.ref=="function"&&v.ref._stringRef===_e)return v.ref;var Oe=function(Fe){var pt=le.refs;pt===Ap&&(pt=le.refs={}),Fe===null?delete pt[_e]:pt[_e]=Fe};return Oe._stringRef=_e,Oe}else{if(typeof z!="string")throw Error("Expected ref to be a function, a string, an object returned by React.createRef(), or null.");if(!L._owner)throw Error("Element ref was specified as a string ("+z+`) but no owner was set. This could happen for one of the following reasons:
1. You may be adding a ref to a function component
2. You may be adding a ref to a component that was not created inside a component's render method
3. You have multiple copies of React loaded
See https://reactjs.org/link/refs-must-have-owner for more information.`)}}return z}function S8(g,v){if(g.type!=="textarea")throw Error("Objects are not valid as a React child (found: "+(Object.prototype.toString.call(v)==="[object Object]"?"object with keys {"+Object.keys(v).join(", ")+"}":v)+"). If you meant to render a collection of children, use an array instead.")}function y8(g){{var v=Wi(g.type)||"Component";if(bp[v])return;bp[v]=!0,M("Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render. Or maybe you meant to call this function rather than return it.")}}function Em(g){function v(ht,Vt){if(g){var Et=ht.lastEffect;Et!==null?(Et.nextEffect=Vt,ht.lastEffect=Vt):ht.firstEffect=ht.lastEffect=Vt,Vt.nextEffect=null,Vt.flags=Qc}}function L(ht,Vt){if(!g)return null;for(var Et=Vt;Et!==null;)v(ht,Et),Et=Et.sibling;return null}function z(ht,Vt){for(var Et=new Map,di=Vt;di!==null;)di.key!==null?Et.set(di.key,di):Et.set(di.index,di),di=di.sibling;return Et}function j(ht,Vt){var Et=zu(ht,Vt);return Et.index=0,Et.sibling=null,Et}function J(ht,Vt,Et){if(ht.index=Et,!g)return Vt;var di=ht.alternate;if(di!==null){var yi=di.index;return yi<Vt?(ht.flags=no,Vt):yi}else return ht.flags=no,Vt}function le(ht){return g&&ht.alternate===null&&(ht.flags=no),ht}function ce(ht,Vt,Et,di){if(Vt===null||Vt.tag!==k){var yi=Dx(Et,ht.mode,di);return yi.return=ht,yi}else{var Gi=j(Vt,Et);return Gi.return=ht,Gi}}function _e(ht,Vt,Et,di){if(Vt!==null&&(Vt.elementType===Et.type||YS(Vt,Et))){var yi=j(Vt,Et.props);return yi.ref=Sp(ht,Vt,Et),yi.return=ht,yi._debugSource=Et._source,yi._debugOwner=Et._owner,yi}var Gi=m4(Et,ht.mode,di);return Gi.ref=Sp(ht,Vt,Et),Gi.return=ht,Gi}function Oe(ht,Vt,Et,di){if(Vt===null||Vt.tag!==w||Vt.stateNode.containerInfo!==Et.containerInfo||Vt.stateNode.implementation!==Et.implementation){var yi=Ov(Et,ht.mode,di);return yi.return=ht,yi}else{var Gi=j(Vt,Et.children||[]);return Gi.return=ht,Gi}}function Fe(ht,Vt,Et,di,yi){if(Vt===null||Vt.tag!==Y){var Gi=Kp(Et,ht.mode,di,yi);return Gi.return=ht,Gi}else{var _s=j(Vt,Et);return _s.return=ht,_s}}function pt(ht,Vt,Et){if(typeof Vt=="string"||typeof Vt=="number"){var di=Dx(""+Vt,ht.mode,Et);return di.return=ht,di}if(typeof Vt=="object"&&Vt!==null){switch(Vt.$$typeof){case Oi:{var yi=m4(Vt,ht.mode,Et);return yi.ref=Sp(ht,null,Vt),yi.return=ht,yi}case li:{var Gi=Ov(Vt,ht.mode,Et);return Gi.return=ht,Gi}}if(Hf(Vt)||ir(Vt)){var _s=Kp(Vt,ht.mode,Et,null);return _s.return=ht,_s}S8(ht,Vt)}return typeof Vt=="function"&&y8(ht),null}function it(ht,Vt,Et,di){var yi=Vt!==null?Vt.key:null;if(typeof Et=="string"||typeof Et=="number")return yi!==null?null:ce(ht,Vt,""+Et,di);if(typeof Et=="object"&&Et!==null){switch(Et.$$typeof){case Oi:return Et.key===yi?Et.type===Xs?Fe(ht,Vt,Et.props.children,di,yi):_e(ht,Vt,Et,di):null;case li:return Et.key===yi?Oe(ht,Vt,Et,di):null}if(Hf(Et)||ir(Et))return yi!==null?null:Fe(ht,Vt,Et,di,null);S8(ht,Et)}return typeof Et=="function"&&y8(ht),null}function Mt(ht,Vt,Et,di,yi){if(typeof di=="string"||typeof di=="number"){var Gi=ht.get(Et)||null;return ce(Vt,Gi,""+di,yi)}if(typeof di=="object"&&di!==null){switch(di.$$typeof){case Oi:{var _s=ht.get(di.key===null?Et:di.key)||null;return di.type===Xs?Fe(Vt,_s,di.props.children,yi,di.key):_e(Vt,_s,di,yi)}case li:{var $s=ht.get(di.key===null?Et:di.key)||null;return Oe(Vt,$s,di,yi)}}if(Hf(di)||ir(di)){var br=ht.get(Et)||null;return Fe(Vt,br,di,yi,null)}S8(Vt,di)}return typeof di=="function"&&y8(Vt),null}function Jt(ht,Vt,Et){{if(typeof ht!="object"||ht===null)return Vt;switch(ht.$$typeof){case Oi:case li:_C(ht,Et);var di=ht.key;if(typeof di!="string")break;if(Vt===null){Vt=new Set,Vt.add(di);break}if(!Vt.has(di)){Vt.add(di);break}M("Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted — the behavior is unsupported and could change in a future version.",di);break}}return Vt}function Ai(ht,Vt,Et,di){for(var yi=null,Gi=0;Gi<Et.length;Gi++){var _s=Et[Gi];yi=Jt(_s,yi,ht)}for(var $s=null,br=null,Ks=Vt,kn=0,Ns=0,sn=null;Ks!==null&&Ns<Et.length;Ns++){Ks.index>Ns?(sn=Ks,Ks=null):sn=Ks.sibling;var qa=it(ht,Ks,Et[Ns],di);if(qa===null){Ks===null&&(Ks=sn);break}g&&Ks&&qa.alternate===null&&v(ht,Ks),kn=J(qa,kn,Ns),br===null?$s=qa:br.sibling=qa,br=qa,Ks=sn}if(Ns===Et.length)return L(ht,Ks),$s;if(Ks===null){for(;Ns<Et.length;Ns++){var co=pt(ht,Et[Ns],di);co!==null&&(kn=J(co,kn,Ns),br===null?$s=co:br.sibling=co,br=co)}return $s}for(var hl=z(ht,Ks);Ns<Et.length;Ns++){var uo=Mt(hl,ht,Ns,Et[Ns],di);uo!==null&&(g&&uo.alternate!==null&&hl.delete(uo.key===null?Ns:uo.key),kn=J(uo,kn,Ns),br===null?$s=uo:br.sibling=uo,br=uo)}return g&&hl.forEach(function(m0){return v(ht,m0)}),$s}function Ct(ht,Vt,Et,di){var yi=ir(Et);if(typeof yi!="function")throw Error("An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.");{typeof Symbol=="function"&&Et[Symbol.toStringTag]==="Generator"&&(xp||M("Using Generators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. Keep in mind you might need to polyfill these features for older browsers."),xp=!0),Et.entries===yi&&(b8||M("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),b8=!0);var Gi=yi.call(Et);if(Gi)for(var _s=null,$s=Gi.next();!$s.done;$s=Gi.next()){var br=$s.value;_s=Jt(br,_s,ht)}}var Ks=yi.call(Et);if(Ks==null)throw Error("An iterable object provided no iterator.");for(var kn=null,Ns=null,sn=Vt,qa=0,co=0,hl=null,uo=Ks.next();sn!==null&&!uo.done;co++,uo=Ks.next()){sn.index>co?(hl=sn,sn=null):hl=sn.sibling;var m0=it(ht,sn,uo.value,di);if(m0===null){sn===null&&(sn=hl);break}g&&sn&&m0.alternate===null&&v(ht,sn),qa=J(m0,qa,co),Ns===null?kn=m0:Ns.sibling=m0,Ns=m0,sn=hl}if(uo.done)return L(ht,sn),kn;if(sn===null){for(;!uo.done;co++,uo=Ks.next()){var W6=pt(ht,uo.value,di);W6!==null&&(qa=J(W6,qa,co),Ns===null?kn=W6:Ns.sibling=W6,Ns=W6)}return kn}for(var ST=z(ht,sn);!uo.done;co++,uo=Ks.next()){var U1=Mt(ST,ht,co,uo.value,di);U1!==null&&(g&&U1.alternate!==null&&ST.delete(U1.key===null?co:U1.key),qa=J(U1,qa,co),Ns===null?kn=U1:Ns.sibling=U1,Ns=U1)}return g&&ST.forEach(function(nI){return v(ht,nI)}),kn}function Ft(ht,Vt,Et,di){if(Vt!==null&&Vt.tag===k){L(ht,Vt.sibling);var yi=j(Vt,Et);return yi.return=ht,yi}L(ht,Vt);var Gi=Dx(Et,ht.mode,di);return Gi.return=ht,Gi}function ut(ht,Vt,Et,di){for(var yi=Et.key,Gi=Vt;Gi!==null;){if(Gi.key===yi){switch(Gi.tag){case Y:{if(Et.type===Xs){L(ht,Gi.sibling);var _s=j(Gi,Et.props.children);return _s.return=ht,_s._debugSource=Et._source,_s._debugOwner=Et._owner,_s}break}case fe:default:{if(Gi.elementType===Et.type||YS(Gi,Et)){L(ht,Gi.sibling);var $s=j(Gi,Et.props);return $s.ref=Sp(ht,Gi,Et),$s.return=ht,$s._debugSource=Et._source,$s._debugOwner=Et._owner,$s}break}}L(ht,Gi);break}else v(ht,Gi);Gi=Gi.sibling}if(Et.type===Xs){var br=Kp(Et.props.children,ht.mode,di,Et.key);return br.return=ht,br}else{var Ks=m4(Et,ht.mode,di);return Ks.ref=Sp(ht,Vt,Et),Ks.return=ht,Ks}}function ni(ht,Vt,Et,di){for(var yi=Et.key,Gi=Vt;Gi!==null;){if(Gi.key===yi)if(Gi.tag===w&&Gi.stateNode.containerInfo===Et.containerInfo&&Gi.stateNode.implementation===Et.implementation){L(ht,Gi.sibling);var _s=j(Gi,Et.children||[]);return _s.return=ht,_s}else{L(ht,Gi);break}else v(ht,Gi);Gi=Gi.sibling}var $s=Ov(Et,ht.mode,di);return $s.return=ht,$s}function Ei(ht,Vt,Et,di){var yi=typeof Et=="object"&&Et!==null&&Et.type===Xs&&Et.key===null;yi&&(Et=Et.props.children);var Gi=typeof Et=="object"&&Et!==null;if(Gi)switch(Et.$$typeof){case Oi:return le(ut(ht,Vt,Et,di));case li:return le(ni(ht,Vt,Et,di))}if(typeof Et=="string"||typeof Et=="number")return le(Ft(ht,Vt,""+Et,di));if(Hf(Et))return Ai(ht,Vt,Et,di);if(ir(Et))return Ct(ht,Vt,Et,di);if(Gi&&S8(ht,Et),typeof Et=="function"&&y8(ht),typeof Et>"u"&&!yi)switch(ht.tag){case R:{var _s=ht.stateNode;if(_s.render._isMockFunction)break}case fe:case O:case ie:case Q:throw Error((Wi(ht.type)||"Component")+"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.")}return L(ht,Vt)}return Ei}var Zh=Em(!0),yp=Em(!1);function M8(g,v){if(!(g===null||v.child===g.child))throw Error("Resuming work not yet implemented.");if(v.child!==null){var L=v.child,z=zu(L,L.pendingProps);for(v.child=z,z.return=v;L.sibling!==null;)L=L.sibling,z=z.sibling=zu(L,L.pendingProps),z.return=v;z.sibling=null}}function i6(g,v){for(var L=g.child;L!==null;)cT(L,v),L=L.sibling}var Tm={},Gd=_c(Tm),T1=_c(Tm),Lm=_c(Tm);function Im(g){if(g===Tm)throw Error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.");return g}function E8(){var g=Im(Lm.current);return g}function vC(g,v){ll(Lm,v,g),ll(T1,g,g),ll(Gd,Tm,g);var L=cE(v);Pa(Gd,g),ll(Gd,L,g)}function Yf(g){Pa(Gd,g),Pa(T1,g),Pa(Lm,g)}function s6(){var g=Im(Gd.current);return g}function Pm(g){Im(Lm.current);var v=Im(Gd.current),L=i8(v,g.type);v!==L&&(ll(T1,g,g),ll(Gd,L,g))}function dh(g){T1.current===g&&(Pa(Gd,g),Pa(T1,g))}var T8=0,Mp=1,r6=1,n6=2,Wl=_c(T8);function z2(g,v){return(g&v)!==0}function a6(g){return g&Mp}function Om(g,v){return g&Mp|v}function AC(g,v){return g|v}function Kh(g,v){ll(Wl,v,g)}function qh(g){Pa(Wl,g)}function o6(g,v){var L=g.memoizedState;if(L!==null)return L.dehydrated!==null;var z=g.memoizedProps;return z.fallback===void 0?!1:z.unstable_avoidThisFallback!==!0?!0:!v}function Cc(g){for(var v=g;v!==null;){if(v.tag===te){var L=v.memoizedState;if(L!==null){var z=L.dehydrated;if(z===null||CE(z)||J7(z))return v}}else if(v.tag===se&&v.memoizedProps.revealOrder!==void 0){var j=(v.flags&en)!==mn;if(j)return v}else if(v.child!==null){v.child.return=v,v=v.child;continue}if(v===g)return null;for(;v.sibling===null;){if(v.return===null||v.return===g)return null;v=v.return}v.sibling.return=v.return,v=v.sibling}return null}var F2=0,Iu=1,Ep=2,Rm=4,su=null,Xf=null,Wd=!1;function pS(g){var v=g.stateNode.containerInfo;return Xf=$7(v),su=g,Wd=!0,!0}function mS(g,v){switch(g.tag){case N:SE(g.stateNode.containerInfo,v);break;case D:YA(g.type,g.memoizedProps,g.stateNode,v);break}var L=fT();L.stateNode=v,L.return=g,L.flags=Qc,g.lastEffect!==null?(g.lastEffect.nextEffect=L,g.lastEffect=L):g.firstEffect=g.lastEffect=L}function L8(g,v){switch(v.flags=v.flags&~Td|no,g.tag){case N:{var L=g.stateNode.containerInfo;switch(v.tag){case D:var z=v.type;v.pendingProps,yE(L,z);break;case k:var j=v.pendingProps;rS(L,j);break}break}case D:{var J=g.type,le=g.memoizedProps,ce=g.stateNode;switch(v.tag){case D:var _e=v.type;v.pendingProps,ME(J,le,ce,_e);break;case k:var Oe=v.pendingProps;XA(J,le,ce,Oe);break;case te:nS(J,le);break}break}default:return}}function CC(g,v){switch(g.tag){case D:{var L=g.type;g.pendingProps;var z=Ng(v,L);return z!==null?(g.stateNode=z,!0):!1}case k:{var j=g.pendingProps,J=VA(v,j);return J!==null?(g.stateNode=J,!0):!1}case te:return!1;default:return!1}}function Dm(g){if(Wd){var v=Xf;if(!v){L8(su,g),Wd=!1,su=g;return}var L=v;if(!CC(g,v)){if(v=rm(L),!v||!CC(g,v)){L8(su,g),Wd=!1,su=g;return}mS(su,L)}su=g,Xf=$7(v)}}function I8(g,v,L){var z=g.stateNode,j=WA(z,g.type,g.memoizedProps,v,L,g);return g.updateQueue=j,j!==null}function xC(g){var v=g.stateNode,L=g.memoizedProps,z=xE(v,L,g);if(z){var j=su;if(j!==null)switch(j.tag){case N:{var J=j.stateNode.containerInfo;sS(J,v,L);break}case D:{var le=j.type,ce=j.memoizedProps,_e=j.stateNode;bE(le,ce,_e,v,L);break}}}return z}function Tp(g){var v=g.memoizedState,L=v!==null?v.dehydrated:null;if(!L)throw Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");return eS(L)}function P8(g){for(var v=g.return;v!==null&&v.tag!==D&&v.tag!==N&&v.tag!==te;)v=v.return;su=v}function O8(g){if(g!==su)return!1;if(!Wd)return P8(g),Wd=!0,!1;var v=g.type;if(g.tag!==D||v!=="head"&&v!=="body"&&!Dg(v,g.memoizedProps))for(var L=Xf;L;)mS(g,L),L=rm(L);return P8(g),g.tag===te?Xf=Tp(g):Xf=su?rm(g.stateNode):null,!0}function Nm(){su=null,Xf=null,Wd=!1}function bC(){return Wd}var Lp=[],R8;R8={};function cs(g){Lp.push(g)}function ru(){for(var g=0;g<Lp.length;g++){var v=Lp[g];v._workInProgressVersionPrimary=null}Lp.length=0}function SC(g){return g._workInProgressVersionPrimary}function D8(g,v){g._workInProgressVersionPrimary=v,Lp.push(g)}function wm(g){g._currentPrimaryRenderer==null?g._currentPrimaryRenderer=R8:g._currentPrimaryRenderer!==R8&&M("Detected multiple renderers concurrently rendering the same mutable source. This is currently unsupported.")}var Li=E.ReactCurrentDispatcher,ca=E.ReactCurrentBatchConfig,Yo,Zf;Zf={},Yo=new Set;var k2=Ci,ua=null,pi=null,Fn=null,Pu=!1,Ip=!1,$n=25,Dt=null,xc=null,U2=-1,Hl=!1;function Mn(){{var g=Dt;xc===null?xc=[g]:xc.push(g)}}function rs(){{var g=Dt;xc!==null&&(U2++,xc[U2]!==g&&gS(g))}}function Bm(g){g!=null&&!Array.isArray(g)&&M("%s received a final argument that is not an array (instead, received `%s`). When specified, the final argument must be an array.",Dt,typeof g)}function gS(g){{var v=Wi(ua.type);if(!Yo.has(v)&&(Yo.add(v),xc!==null)){for(var L="",z=30,j=0;j<=U2;j++){for(var J=xc[j],le=j===U2?g:J,ce=j+1+". "+J;ce.length<z;)ce+=" ";ce+=le+`
`,L+=ce}M(`React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks

   Previous render            Next render
   ------------------------------------------------------
%s   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
`,v,L)}}}function bo(){throw Error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.`)}function j2(g,v){if(Hl)return!1;if(v===null)return M("%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.",Dt),!1;g.length!==v.length&&M(`The final argument passed to %s changed size between renders. The order and size of this array must remain constant.

Previous: %s
Incoming: %s`,Dt,"["+v.join(", ")+"]","["+g.join(", ")+"]");for(var L=0;L<v.length&&L<g.length;L++)if(!ah(g[L],v[L]))return!1;return!0}function Kf(g,v,L,z,j,J){k2=J,ua=v,xc=g!==null?g._debugHookTypes:null,U2=-1,Hl=g!==null&&g.type!==v.type,v.memoizedState=null,v.updateQueue=null,v.lanes=Ci,g!==null&&g.memoizedState!==null?Li.current=H8:xc!==null?Li.current=f6:Li.current=ph;var le=L(z,j);if(Ip){var ce=0;do{if(Ip=!1,!(ce<$n))throw Error("Too many re-renders. React limits the number of renders to prevent an infinite loop.");ce+=1,Hl=!1,pi=null,Fn=null,v.updateQueue=null,U2=-1,Li.current=or,le=L(z,j)}while(Ip)}Li.current=fh,v._debugHookTypes=xc;var _e=pi!==null&&pi.next!==null;if(k2=Ci,ua=null,pi=null,Fn=null,Dt=null,xc=null,U2=-1,Pu=!1,_e)throw Error("Rendered fewer hooks than expected. This may be caused by an accidental early return statement.");return le}function l6(g,v,L){v.updateQueue=g.updateQueue,v.flags&=-517,g.lanes=lg(g.lanes,L)}function c6(){if(Li.current=fh,Pu){for(var g=ua.memoizedState;g!==null;){var v=g.queue;v!==null&&(v.pending=null),g=g.next}Pu=!1}k2=Ci,ua=null,pi=null,Fn=null,xc=null,U2=-1,Dt=null,h6=!1,Ip=!1}function L1(){var g={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Fn===null?ua.memoizedState=Fn=g:Fn=Fn.next=g,Fn}function V2(){var g;if(pi===null){var v=ua.alternate;v!==null?g=v.memoizedState:g=null}else g=pi.next;var L;if(Fn===null?L=ua.memoizedState:L=Fn.next,L!==null)Fn=L,L=Fn.next,pi=g;else{if(g===null)throw Error("Rendered more hooks than during the previous render.");pi=g;var z={memoizedState:pi.memoizedState,baseState:pi.baseState,baseQueue:pi.baseQueue,queue:pi.queue,next:null};Fn===null?ua.memoizedState=Fn=z:Fn=Fn.next=z}return Fn}function yC(){return{lastEffect:null}}function zm(g,v){return typeof v=="function"?v(g):v}function Fm(g,v,L){var z=L1(),j;L!==void 0?j=L(v):j=v,z.memoizedState=z.baseState=j;var J=z.queue={pending:null,dispatch:null,lastRenderedReducer:g,lastRenderedState:j},le=J.dispatch=W8.bind(null,ua,J);return[z.memoizedState,le]}function Pp(g,v,L){var z=V2(),j=z.queue;if(j===null)throw Error("Should have a queue. This is likely a bug in React. Please file an issue.");j.lastRenderedReducer=g;var J=pi,le=J.baseQueue,ce=j.pending;if(ce!==null){if(le!==null){var _e=le.next,Oe=ce.next;le.next=Oe,ce.next=_e}J.baseQueue!==le&&M("Internal error: Expected work-in-progress queue to be a clone. This is a bug in React."),J.baseQueue=le=ce,j.pending=null}if(le!==null){var Fe=le.next,pt=J.baseState,it=null,Mt=null,Jt=null,Ai=Fe;do{var Ct=Ai.lane;if(C1(k2,Ct)){if(Jt!==null){var ut={lane:Jc,action:Ai.action,eagerReducer:Ai.eagerReducer,eagerState:Ai.eagerState,next:null};Jt=Jt.next=ut}if(Ai.eagerReducer===g)pt=Ai.eagerState;else{var ni=Ai.action;pt=g(pt,ni)}}else{var Ft={lane:Ct,action:Ai.action,eagerReducer:Ai.eagerReducer,eagerState:Ai.eagerState,next:null};Jt===null?(Mt=Jt=Ft,it=pt):Jt=Jt.next=Ft,ua.lanes=tn(ua.lanes,Ct),u0(Ct)}Ai=Ai.next}while(Ai!==null&&Ai!==Fe);Jt===null?it=pt:Jt.next=Mt,ah(pt,z.memoizedState)||tv(),z.memoizedState=pt,z.baseState=it,z.baseQueue=Jt,j.lastRenderedState=pt}var Ei=j.dispatch;return[z.memoizedState,Ei]}function G2(g,v,L){var z=V2(),j=z.queue;if(j===null)throw Error("Should have a queue. This is likely a bug in React. Please file an issue.");j.lastRenderedReducer=g;var J=j.dispatch,le=j.pending,ce=z.memoizedState;if(le!==null){j.pending=null;var _e=le.next,Oe=_e;do{var Fe=Oe.action;ce=g(ce,Fe),Oe=Oe.next}while(Oe!==_e);ah(ce,z.memoizedState)||tv(),z.memoizedState=ce,z.baseQueue===null&&(z.baseState=ce),j.lastRenderedState=ce}return[ce,J]}function km(g,v,L){wm(v);var z=v._getVersion,j=z(v._source),J=!1,le=SC(v);if(le!==null?J=le===j:(J=C1(k2,g.mutableReadLanes),J&&D8(v,j)),J){var ce=L(v._source);return typeof ce=="function"&&M("Mutable source should not return a function as the snapshot value. Functions may close over mutable values and cause tearing."),ce}else throw cs(v),Error("Cannot read from mutable source during the current render without tearing. This is a bug in React. Please file an issue.")}function Op(g,v,L,z){var j=gv();if(j===null)throw Error("Expected a work-in-progress root. This is a bug in React. Please file an issue.");var J=v._getVersion,le=J(v._source),ce=Li.current,_e=ce.useState(function(){return km(j,v,L)}),Oe=_e[0],Fe=_e[1],pt=Oe,it=Fn,Mt=g.memoizedState,Jt=Mt.refs,Ai=Jt.getSnapshot,Ct=Mt.source,Ft=Mt.subscribe,ut=ua;if(g.memoizedState={refs:Jt,source:v,subscribe:z},ce.useEffect(function(){Jt.getSnapshot=L,Jt.setSnapshot=Fe;var Ei=J(v._source);if(!ah(le,Ei)){var ht=L(v._source);if(typeof ht=="function"&&M("Mutable source should not return a function as the snapshot value. Functions may close over mutable values and cause tearing."),!ah(pt,ht)){Fe(ht);var Vt=B1(ut);Qb(j,Vt)}IM(j,j.mutableReadLanes)}},[L,v,z]),ce.useEffect(function(){var Ei=function(){var Vt=Jt.getSnapshot,Et=Jt.setSnapshot;try{Et(Vt(v._source));var di=B1(ut);Qb(j,di)}catch(yi){Et(function(){throw yi})}},ht=z(v._source,Ei);return typeof ht!="function"&&M("Mutable source subscribe function must return an unsubscribe function."),ht},[v,z]),!ah(Ai,L)||!ah(Ct,v)||!ah(Ft,z)){var ni={pending:null,dispatch:null,lastRenderedReducer:zm,lastRenderedState:pt};ni.dispatch=Fe=W8.bind(null,ua,ni),it.queue=ni,it.baseQueue=null,pt=km(j,v,L),it.memoizedState=it.baseState=pt}return pt}function Um(g,v,L){var z=L1();return z.memoizedState={refs:{getSnapshot:v,setSnapshot:null},source:g,subscribe:L},Op(z,g,v,L)}function qf(g,v,L){var z=V2();return Op(z,g,v,L)}function Qh(g){var v=L1();typeof g=="function"&&(g=g()),v.memoizedState=v.baseState=g;var L=v.queue={pending:null,dispatch:null,lastRenderedReducer:zm,lastRenderedState:g},z=L.dispatch=W8.bind(null,ua,L);return[v.memoizedState,z]}function Qf(g){return Pp(zm)}function Rp(g){return G2(zm)}function I1(g,v,L,z){var j={tag:g,create:v,destroy:L,deps:z,next:null},J=ua.updateQueue;if(J===null)J=yC(),ua.updateQueue=J,J.lastEffect=j.next=j;else{var le=J.lastEffect;if(le===null)J.lastEffect=j.next=j;else{var ce=le.next;le.next=j,j.next=ce,J.lastEffect=j}}return j}function W2(g){var v=L1(),L={current:g};return Object.seal(L),v.memoizedState=L,L}function Jf(g){var v=V2();return v.memoizedState}function Dp(g,v,L,z){var j=L1(),J=z===void 0?null:z;ua.flags|=g,j.memoizedState=I1(Iu|v,L,void 0,J)}function N8(g,v,L,z){var j=V2(),J=z===void 0?null:z,le=void 0;if(pi!==null){var ce=pi.memoizedState;if(le=ce.destroy,J!==null){var _e=ce.deps;if(j2(J,_e)){I1(v,L,le,J);return}}}ua.flags|=g,j.memoizedState=I1(Iu|v,L,le,J)}function H2(g,v){return typeof jest<"u"&&p4(ua),Dp(Zs|Af,Rm,g,v)}function P1(g,v){return typeof jest<"u"&&p4(ua),N8(Zs|Af,Rm,g,v)}function MC(g,v){return Dp(Zs,Ep,g,v)}function Np(g,v){return N8(Zs,Ep,g,v)}function w8(g,v){if(typeof v=="function"){var L=v,z=g();return L(z),function(){L(null)}}else if(v!=null){var j=v;j.hasOwnProperty("current")||M("Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.","an object with keys {"+Object.keys(j).join(", ")+"}");var J=g();return j.current=J,function(){j.current=null}}}function jm(g,v,L){typeof v!="function"&&M("Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",v!==null?typeof v:"null");var z=L!=null?L.concat([g]):null;return Dp(Zs,Ep,w8.bind(null,v,g),z)}function wp(g,v,L){typeof v!="function"&&M("Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",v!==null?typeof v:"null");var z=L!=null?L.concat([g]):null;return N8(Zs,Ep,w8.bind(null,v,g),z)}function u6(g,v){}var Vm=u6;function B8(g,v){var L=L1(),z=v===void 0?null:v;return L.memoizedState=[g,z],g}function Gm(g,v){var L=V2(),z=v===void 0?null:v,j=L.memoizedState;if(j!==null&&z!==null){var J=j[1];if(j2(z,J))return j[0]}return L.memoizedState=[g,z],g}function EC(g,v){var L=L1(),z=v===void 0?null:v,j=g();return L.memoizedState=[j,z],j}function Bp(g,v){var L=V2(),z=v===void 0?null:v,j=L.memoizedState;if(j!==null&&z!==null){var J=j[1];if(j2(z,J))return j[0]}var le=g();return L.memoizedState=[le,z],le}function z8(g){var v=Qh(g),L=v[0],z=v[1];return H2(function(){var j=ca.transition;ca.transition=1;try{z(g)}finally{ca.transition=j}},[g]),L}function F8(g){var v=Qf(),L=v[0],z=v[1];return P1(function(){var j=ca.transition;ca.transition=1;try{z(g)}finally{ca.transition=j}},[g]),L}function Wm(g){var v=Rp(),L=v[0],z=v[1];return P1(function(){var j=ca.transition;ca.transition=1;try{z(g)}finally{ca.transition=j}},[g]),L}function _S(g,v){var L=fp();R2(L<dp?dp:L,function(){g(!0)}),R2(L>S1?S1:L,function(){var z=ca.transition;ca.transition=1;try{g(!1),v()}finally{ca.transition=z}})}function k8(){var g=Qh(!1),v=g[0],L=g[1],z=_S.bind(null,L);return W2(z),[z,v]}function U8(){var g=Qf(),v=g[0],L=Jf(),z=L.current;return[z,v]}function j8(){var g=Rp(),v=g[0],L=Jf(),z=L.current;return[z,v]}var h6=!1;function V8(){return h6}function d6(g){{var v=Wi(g.type)||"Unknown";Wc()&&!Zf[v]&&(M("The object passed back from useOpaqueIdentifier is meant to be passed through to attributes only. Do not read the value directly."),Zf[v]=!0)}}function G8(){var g=wg.bind(null,d6.bind(null,ua));if(bC()){var v=!1,L=ua,z=function(){throw v||(v=!0,h6=!0,J(g()),h6=!1,d6(L)),Error("The object passed back from useOpaqueIdentifier is meant to be passed through to attributes only. Do not read the value directly.")},j=np(z),J=Qh(j)[1];return(ua.mode&Lu)===Ha&&(ua.flags|=Zs|Af,I1(Iu|Rm,function(){J(g())},void 0,null)),j}else{var le=g();return Qh(le),le}}function TC(){var g=Qf()[0];return g}function LC(){var g=Rp()[0];return g}function W8(g,v,L){typeof arguments[3]=="function"&&M("State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().");var z=Za(),j=B1(g),J={lane:j,action:L,eagerReducer:null,eagerState:null,next:null},le=v.pending;le===null?J.next=J:(J.next=le.next,le.next=J),v.pending=J;var ce=g.alternate;if(g===ua||ce!==null&&ce===ua)Ip=Pu=!0;else{if(g.lanes===Ci&&(ce===null||ce.lanes===Ci)){var _e=v.lastRenderedReducer;if(_e!==null){var Oe;Oe=Li.current,Li.current=gh;try{var Fe=v.lastRenderedState,pt=_e(Fe,L);if(J.eagerReducer=_e,J.eagerState=pt,ah(pt,Fe))return}catch{}finally{Li.current=Oe}}}typeof jest<"u"&&(VS(g),Mx(g)),Ka(g,j,z)}}var fh={readContext:Xa,useCallback:bo,useContext:bo,useEffect:bo,useImperativeHandle:bo,useLayoutEffect:bo,useMemo:bo,useReducer:bo,useRef:bo,useState:bo,useDebugValue:bo,useDeferredValue:bo,useTransition:bo,useMutableSource:bo,useOpaqueIdentifier:bo,unstable_isNewReconciler:st},ph=null,f6=null,H8=null,or=null,mh=null,gh=null,$f=null;{var IC=function(){M("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().")},nr=function(){M("Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://reactjs.org/link/rules-of-hooks")};ph={readContext:function(g,v){return Xa(g,v)},useCallback:function(g,v){return Dt="useCallback",Mn(),Bm(v),B8(g,v)},useContext:function(g,v){return Dt="useContext",Mn(),Xa(g,v)},useEffect:function(g,v){return Dt="useEffect",Mn(),Bm(v),H2(g,v)},useImperativeHandle:function(g,v,L){return Dt="useImperativeHandle",Mn(),Bm(L),jm(g,v,L)},useLayoutEffect:function(g,v){return Dt="useLayoutEffect",Mn(),Bm(v),MC(g,v)},useMemo:function(g,v){Dt="useMemo",Mn(),Bm(v);var L=Li.current;Li.current=mh;try{return EC(g,v)}finally{Li.current=L}},useReducer:function(g,v,L){Dt="useReducer",Mn();var z=Li.current;Li.current=mh;try{return Fm(g,v,L)}finally{Li.current=z}},useRef:function(g){return Dt="useRef",Mn(),W2(g)},useState:function(g){Dt="useState",Mn();var v=Li.current;Li.current=mh;try{return Qh(g)}finally{Li.current=v}},useDebugValue:function(g,v){return Dt="useDebugValue",Mn(),void 0},useDeferredValue:function(g){return Dt="useDeferredValue",Mn(),z8(g)},useTransition:function(){return Dt="useTransition",Mn(),k8()},useMutableSource:function(g,v,L){return Dt="useMutableSource",Mn(),Um(g,v,L)},useOpaqueIdentifier:function(){return Dt="useOpaqueIdentifier",Mn(),G8()},unstable_isNewReconciler:st},f6={readContext:function(g,v){return Xa(g,v)},useCallback:function(g,v){return Dt="useCallback",rs(),B8(g,v)},useContext:function(g,v){return Dt="useContext",rs(),Xa(g,v)},useEffect:function(g,v){return Dt="useEffect",rs(),H2(g,v)},useImperativeHandle:function(g,v,L){return Dt="useImperativeHandle",rs(),jm(g,v,L)},useLayoutEffect:function(g,v){return Dt="useLayoutEffect",rs(),MC(g,v)},useMemo:function(g,v){Dt="useMemo",rs();var L=Li.current;Li.current=mh;try{return EC(g,v)}finally{Li.current=L}},useReducer:function(g,v,L){Dt="useReducer",rs();var z=Li.current;Li.current=mh;try{return Fm(g,v,L)}finally{Li.current=z}},useRef:function(g){return Dt="useRef",rs(),W2(g)},useState:function(g){Dt="useState",rs();var v=Li.current;Li.current=mh;try{return Qh(g)}finally{Li.current=v}},useDebugValue:function(g,v){return Dt="useDebugValue",rs(),void 0},useDeferredValue:function(g){return Dt="useDeferredValue",rs(),z8(g)},useTransition:function(){return Dt="useTransition",rs(),k8()},useMutableSource:function(g,v,L){return Dt="useMutableSource",rs(),Um(g,v,L)},useOpaqueIdentifier:function(){return Dt="useOpaqueIdentifier",rs(),G8()},unstable_isNewReconciler:st},H8={readContext:function(g,v){return Xa(g,v)},useCallback:function(g,v){return Dt="useCallback",rs(),Gm(g,v)},useContext:function(g,v){return Dt="useContext",rs(),Xa(g,v)},useEffect:function(g,v){return Dt="useEffect",rs(),P1(g,v)},useImperativeHandle:function(g,v,L){return Dt="useImperativeHandle",rs(),wp(g,v,L)},useLayoutEffect:function(g,v){return Dt="useLayoutEffect",rs(),Np(g,v)},useMemo:function(g,v){Dt="useMemo",rs();var L=Li.current;Li.current=gh;try{return Bp(g,v)}finally{Li.current=L}},useReducer:function(g,v,L){Dt="useReducer",rs();var z=Li.current;Li.current=gh;try{return Pp(g,v,L)}finally{Li.current=z}},useRef:function(g){return Dt="useRef",rs(),Jf()},useState:function(g){Dt="useState",rs();var v=Li.current;Li.current=gh;try{return Qf(g)}finally{Li.current=v}},useDebugValue:function(g,v){return Dt="useDebugValue",rs(),Vm()},useDeferredValue:function(g){return Dt="useDeferredValue",rs(),F8(g)},useTransition:function(){return Dt="useTransition",rs(),U8()},useMutableSource:function(g,v,L){return Dt="useMutableSource",rs(),qf(g,v,L)},useOpaqueIdentifier:function(){return Dt="useOpaqueIdentifier",rs(),TC()},unstable_isNewReconciler:st},or={readContext:function(g,v){return Xa(g,v)},useCallback:function(g,v){return Dt="useCallback",rs(),Gm(g,v)},useContext:function(g,v){return Dt="useContext",rs(),Xa(g,v)},useEffect:function(g,v){return Dt="useEffect",rs(),P1(g,v)},useImperativeHandle:function(g,v,L){return Dt="useImperativeHandle",rs(),wp(g,v,L)},useLayoutEffect:function(g,v){return Dt="useLayoutEffect",rs(),Np(g,v)},useMemo:function(g,v){Dt="useMemo",rs();var L=Li.current;Li.current=$f;try{return Bp(g,v)}finally{Li.current=L}},useReducer:function(g,v,L){Dt="useReducer",rs();var z=Li.current;Li.current=$f;try{return G2(g,v,L)}finally{Li.current=z}},useRef:function(g){return Dt="useRef",rs(),Jf()},useState:function(g){Dt="useState",rs();var v=Li.current;Li.current=$f;try{return Rp(g)}finally{Li.current=v}},useDebugValue:function(g,v){return Dt="useDebugValue",rs(),Vm()},useDeferredValue:function(g){return Dt="useDeferredValue",rs(),Wm(g)},useTransition:function(){return Dt="useTransition",rs(),j8()},useMutableSource:function(g,v,L){return Dt="useMutableSource",rs(),qf(g,v,L)},useOpaqueIdentifier:function(){return Dt="useOpaqueIdentifier",rs(),LC()},unstable_isNewReconciler:st},mh={readContext:function(g,v){return IC(),Xa(g,v)},useCallback:function(g,v){return Dt="useCallback",nr(),Mn(),B8(g,v)},useContext:function(g,v){return Dt="useContext",nr(),Mn(),Xa(g,v)},useEffect:function(g,v){return Dt="useEffect",nr(),Mn(),H2(g,v)},useImperativeHandle:function(g,v,L){return Dt="useImperativeHandle",nr(),Mn(),jm(g,v,L)},useLayoutEffect:function(g,v){return Dt="useLayoutEffect",nr(),Mn(),MC(g,v)},useMemo:function(g,v){Dt="useMemo",nr(),Mn();var L=Li.current;Li.current=mh;try{return EC(g,v)}finally{Li.current=L}},useReducer:function(g,v,L){Dt="useReducer",nr(),Mn();var z=Li.current;Li.current=mh;try{return Fm(g,v,L)}finally{Li.current=z}},useRef:function(g){return Dt="useRef",nr(),Mn(),W2(g)},useState:function(g){Dt="useState",nr(),Mn();var v=Li.current;Li.current=mh;try{return Qh(g)}finally{Li.current=v}},useDebugValue:function(g,v){return Dt="useDebugValue",nr(),Mn(),void 0},useDeferredValue:function(g){return Dt="useDeferredValue",nr(),Mn(),z8(g)},useTransition:function(){return Dt="useTransition",nr(),Mn(),k8()},useMutableSource:function(g,v,L){return Dt="useMutableSource",nr(),Mn(),Um(g,v,L)},useOpaqueIdentifier:function(){return Dt="useOpaqueIdentifier",nr(),Mn(),G8()},unstable_isNewReconciler:st},gh={readContext:function(g,v){return IC(),Xa(g,v)},useCallback:function(g,v){return Dt="useCallback",nr(),rs(),Gm(g,v)},useContext:function(g,v){return Dt="useContext",nr(),rs(),Xa(g,v)},useEffect:function(g,v){return Dt="useEffect",nr(),rs(),P1(g,v)},useImperativeHandle:function(g,v,L){return Dt="useImperativeHandle",nr(),rs(),wp(g,v,L)},useLayoutEffect:function(g,v){return Dt="useLayoutEffect",nr(),rs(),Np(g,v)},useMemo:function(g,v){Dt="useMemo",nr(),rs();var L=Li.current;Li.current=gh;try{return Bp(g,v)}finally{Li.current=L}},useReducer:function(g,v,L){Dt="useReducer",nr(),rs();var z=Li.current;Li.current=gh;try{return Pp(g,v,L)}finally{Li.current=z}},useRef:function(g){return Dt="useRef",nr(),rs(),Jf()},useState:function(g){Dt="useState",nr(),rs();var v=Li.current;Li.current=gh;try{return Qf(g)}finally{Li.current=v}},useDebugValue:function(g,v){return Dt="useDebugValue",nr(),rs(),Vm()},useDeferredValue:function(g){return Dt="useDeferredValue",nr(),rs(),F8(g)},useTransition:function(){return Dt="useTransition",nr(),rs(),U8()},useMutableSource:function(g,v,L){return Dt="useMutableSource",nr(),rs(),qf(g,v,L)},useOpaqueIdentifier:function(){return Dt="useOpaqueIdentifier",nr(),rs(),TC()},unstable_isNewReconciler:st},$f={readContext:function(g,v){return IC(),Xa(g,v)},useCallback:function(g,v){return Dt="useCallback",nr(),rs(),Gm(g,v)},useContext:function(g,v){return Dt="useContext",nr(),rs(),Xa(g,v)},useEffect:function(g,v){return Dt="useEffect",nr(),rs(),P1(g,v)},useImperativeHandle:function(g,v,L){return Dt="useImperativeHandle",nr(),rs(),wp(g,v,L)},useLayoutEffect:function(g,v){return Dt="useLayoutEffect",nr(),rs(),Np(g,v)},useMemo:function(g,v){Dt="useMemo",nr(),rs();var L=Li.current;Li.current=gh;try{return Bp(g,v)}finally{Li.current=L}},useReducer:function(g,v,L){Dt="useReducer",nr(),rs();var z=Li.current;Li.current=gh;try{return G2(g,v,L)}finally{Li.current=z}},useRef:function(g){return Dt="useRef",nr(),rs(),Jf()},useState:function(g){Dt="useState",nr(),rs();var v=Li.current;Li.current=gh;try{return Rp(g)}finally{Li.current=v}},useDebugValue:function(g,v){return Dt="useDebugValue",nr(),rs(),Vm()},useDeferredValue:function(g){return Dt="useDeferredValue",nr(),rs(),Wm(g)},useTransition:function(){return Dt="useTransition",nr(),rs(),j8()},useMutableSource:function(g,v,L){return Dt="useMutableSource",nr(),rs(),qf(g,v,L)},useOpaqueIdentifier:function(){return Dt="useOpaqueIdentifier",nr(),rs(),LC()},unstable_isNewReconciler:st}}var Hm=A.unstable_now,p6=0,e0=-1;function PC(){return p6}function zp(){p6=Hm()}function Jh(g){e0=Hm(),g.actualStartTime<0&&(g.actualStartTime=Hm())}function Fp(g){e0=-1}function t0(g,v){if(e0>=0){var L=Hm()-e0;g.actualDuration+=L,v&&(g.selfBaseDuration=L),e0=-1}}function m6(g){for(var v=g.child;v;)g.actualDuration+=v.actualDuration,v=v.sibling}var kp=E.ReactCurrentOwner,$h=!1,O1,Up,Ym,bc,OC,i0,Y8,g6;O1={},Up={},Ym={},bc={},OC={},i0=!1,Y8={},g6={};function Sc(g,v,L,z){g===null?v.child=yp(v,null,L,z):v.child=Zh(v,g.child,L,z)}function IE(g,v,L,z){v.child=Zh(v,g.child,null,z),v.child=Zh(v,null,L,z)}function RC(g,v,L,z,j){if(v.type!==v.elementType){var J=L.propTypes;J&&ba(J,z,"prop",Wi(L))}var le=L.render,ce=v.ref,_e;B2(v,j);{if(kp.current=v,$r(!0),_e=Kf(g,v,le,z,ce,j),v.mode&oo){On();try{_e=Kf(g,v,le,z,ce,j)}finally{Kr()}}$r(!1)}return g!==null&&!$h?(l6(g,v,j),Yd(g,v,j)):(v.flags|=Ed,Sc(g,v,_e,j),v.child)}function vS(g,v,L,z,j,J){if(g===null){var le=L.type;if(Ix(le)&&L.compare===null&&L.defaultProps===void 0){var ce=le;return ce=Yp(le),v.tag=Q,v.type=ce,v6(v,le),DC(g,v,ce,z,j,J)}{var _e=le.propTypes;_e&&ba(_e,z,"prop",Wi(le))}var Oe=Ox(L.type,null,z,v,v.mode,J);return Oe.ref=v.ref,Oe.return=v,v.child=Oe,Oe}{var Fe=L.type,pt=Fe.propTypes;pt&&ba(pt,z,"prop",Wi(Fe))}var it=g.child;if(!gc(j,J)){var Mt=it.memoizedProps,Jt=L.compare;if(Jt=Jt!==null?Jt:Ag,Jt(Mt,z)&&g.ref===v.ref)return Yd(g,v,J)}v.flags|=Ed;var Ai=zu(it,z);return Ai.ref=v.ref,Ai.return=v,v.child=Ai,Ai}function DC(g,v,L,z,j,J){if(v.type!==v.elementType){var le=v.elementType;if(le.$$typeof===Ge){var ce=le,_e=ce._payload,Oe=ce._init;try{le=Oe(_e)}catch{le=null}var Fe=le&&le.propTypes;Fe&&ba(Fe,z,"prop",Wi(le))}}if(g!==null){var pt=g.memoizedProps;if(Ag(pt,z)&&g.ref===v.ref&&v.type===g.type)if($h=!1,gc(J,j))(g.flags&M5)!==mn&&($h=!0);else return v.lanes=g.lanes,Yd(g,v,J)}return FC(g,v,L,z,J)}function X8(g,v,L){var z=v.pendingProps,j=z.children,J=g!==null?g.memoizedState:null;if(z.mode==="hidden"||z.mode==="unstable-defer-without-hiding")if((v.mode&pp)===Ha){var le={baseLanes:Ci};v.memoizedState=le,I6(v,L)}else if(gc(L,v1)){var Fe={baseLanes:Ci};v.memoizedState=Fe;var pt=J!==null?J.baseLanes:L;I6(v,pt)}else{var ce;if(J!==null){var _e=J.baseLanes;ce=tn(_e,L)}else ce=L;R6(v1),v.lanes=v.childLanes=v1;var Oe={baseLanes:ce};return v.memoizedState=Oe,I6(v,ce),null}else{var it;J!==null?(it=tn(J.baseLanes,L),v.memoizedState=null):it=L,I6(v,it)}return Sc(g,v,j,L),v.child}var NC=X8;function Z8(g,v,L){var z=v.pendingProps;return Sc(g,v,z,L),v.child}function wC(g,v,L){var z=v.pendingProps.children;return Sc(g,v,z,L),v.child}function BC(g,v,L){{v.flags|=Zs;var z=v.stateNode;z.effectDuration=0,z.passiveEffectDuration=0}var j=v.pendingProps,J=j.children;return Sc(g,v,J,L),v.child}function zC(g,v){var L=v.ref;(g===null&&L!==null||g!==null&&g.ref!==L)&&(v.flags|=F4)}function FC(g,v,L,z,j){if(v.type!==v.elementType){var J=L.propTypes;J&&ba(J,z,"prop",Wi(L))}var le;{var ce=b1(v,L,!0);le=cp(v,ce)}var _e;B2(v,j);{if(kp.current=v,$r(!0),_e=Kf(g,v,L,z,le,j),v.mode&oo){On();try{_e=Kf(g,v,L,z,le,j)}finally{Kr()}}$r(!1)}return g!==null&&!$h?(l6(g,v,j),Yd(g,v,j)):(v.flags|=Ed,Sc(g,v,_e,j),v.child)}function kC(g,v,L,z,j){if(v.type!==v.elementType){var J=L.propTypes;J&&ba(J,z,"prop",Wi(L))}var le;uh(L)?(le=!0,kg(v)):le=!1,B2(v,j);var ce=v.stateNode,_e;ce===null?(g!==null&&(g.alternate=null,v.alternate=null,v.flags|=no),pC(v,L,z),ym(v,L,z,j),_e=!0):g===null?_e=gC(v,L,z,j):_e=t6(g,v,L,z,j);var Oe=UC(g,v,L,_e,le,j);{var Fe=v.stateNode;_e&&Fe.props!==z&&(i0||M("It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.",Wi(v.type)||"a component"),i0=!0)}return Oe}function UC(g,v,L,z,j,J){zC(g,v);var le=(v.flags&en)!==mn;if(!z&&!le)return j&&um(v,L,!1),Yd(g,v,J);var ce=v.stateNode;kp.current=v;var _e;if(le&&typeof L.getDerivedStateFromError!="function")_e=null,Fp();else{if($r(!0),_e=ce.render(),v.mode&oo){On();try{ce.render()}finally{Kr()}}$r(!1)}return v.flags|=Ed,g!==null&&le?IE(g,v,_e,J):Sc(g,v,_e,J),v.memoizedState=ce.state,j&&um(v,L,!0),v.child}function jC(g){var v=g.stateNode;v.pendingContext?Fg(g,v.pendingContext,v.pendingContext!==v.context):v.context&&Fg(g,v.context,!1),vC(g,v.containerInfo)}function AS(g,v,L){jC(v);var z=v.updateQueue;if(!(g!==null&&z!==null))throw Error("If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue.");var j=v.pendingProps,J=v.memoizedState,le=J!==null?J.element:null;jf(g,v),Gf(v,j,null,L);var ce=v.memoizedState,_e=ce.element;if(_e===le)return Nm(),Yd(g,v,L);var Oe=v.stateNode;if(Oe.hydrate&&pS(v)){{var Fe=Oe.mutableSourceEagerHydrationData;if(Fe!=null)for(var pt=0;pt<Fe.length;pt+=2){var it=Fe[pt],Mt=Fe[pt+1];D8(it,Mt)}}var Jt=yp(v,null,_e,L);v.child=Jt;for(var Ai=Jt;Ai;)Ai.flags=Ai.flags&~no|Td,Ai=Ai.sibling}else Sc(g,v,_e,L),Nm();return v.child}function VC(g,v,L){Pm(v),g===null&&Dm(v);var z=v.type,j=v.pendingProps,J=g!==null?g.memoizedProps:null,le=j.children,ce=Dg(z,j);return ce?le=null:J!==null&&Dg(z,J)&&(v.flags|=vf),zC(g,v),Sc(g,v,le,L),v.child}function _6(g,v){return g===null&&Dm(v),null}function K8(g,v,L,z,j){g!==null&&(g.alternate=null,v.alternate=null,v.flags|=no);var J=v.pendingProps,le=L,ce=le._payload,_e=le._init,Oe=_e(ce);v.type=Oe;var Fe=v.tag=Px(Oe),pt=Gl(Oe,J),it;switch(Fe){case O:return v6(v,Oe),v.type=Oe=Yp(Oe),it=FC(null,v,Oe,pt,j),it;case R:return v.type=Oe=Ex(Oe),it=kC(null,v,Oe,pt,j),it;case ie:return v.type=Oe=Xp(Oe),it=RC(null,v,Oe,pt,j),it;case W:{if(v.type!==v.elementType){var Mt=Oe.propTypes;Mt&&ba(Mt,pt,"prop",Wi(Oe))}return it=vS(null,v,Oe,Gl(Oe.type,pt),z,j),it}}var Jt="";throw Oe!==null&&typeof Oe=="object"&&Oe.$$typeof===Ge&&(Jt=" Did you wrap a component in React.lazy() more than once?"),Error("Element type is invalid. Received a promise that resolves to: "+Oe+". Lazy element type must resolve to a class or function."+Jt)}function q8(g,v,L,z,j){g!==null&&(g.alternate=null,v.alternate=null,v.flags|=no),v.tag=R;var J;return uh(L)?(J=!0,kg(v)):J=!1,B2(v,j),pC(v,L,z),ym(v,L,z,j),UC(null,v,L,!0,J,j)}function PE(g,v,L,z){g!==null&&(g.alternate=null,v.alternate=null,v.flags|=no);var j=v.pendingProps,J;{var le=b1(v,L,!1);J=cp(v,le)}B2(v,z);var ce;{if(L.prototype&&typeof L.prototype.render=="function"){var _e=Wi(L)||"Unknown";O1[_e]||(M("The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",_e,_e),O1[_e]=!0)}v.mode&oo&&vc.recordLegacyContextWarning(v,null),$r(!0),kp.current=v,ce=Kf(null,v,L,j,J,z),$r(!1)}if(v.flags|=Ed,typeof ce=="object"&&ce!==null&&typeof ce.render=="function"&&ce.$$typeof===void 0){var Oe=Wi(L)||"Unknown";Up[Oe]||(M("The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.",Oe,Oe,Oe),Up[Oe]=!0)}if(typeof ce=="object"&&ce!==null&&typeof ce.render=="function"&&ce.$$typeof===void 0){{var Fe=Wi(L)||"Unknown";Up[Fe]||(M("The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.",Fe,Fe,Fe),Up[Fe]=!0)}v.tag=R,v.memoizedState=null,v.updateQueue=null;var pt=!1;uh(L)?(pt=!0,kg(v)):pt=!1,v.memoizedState=ce.state!==null&&ce.state!==void 0?ce.state:null,oC(v);var it=L.getDerivedStateFromProps;return typeof it=="function"&&e6(v,L,it,j),fC(v,ce),ym(v,L,j,z),UC(null,v,L,!0,pt,z)}else{if(v.tag=O,v.mode&oo){On();try{ce=Kf(null,v,L,j,J,z)}finally{Kr()}}return Sc(null,v,ce,z),v6(v,L),v.child}}function v6(g,v){{if(v&&v.childContextTypes&&M("%s(...): childContextTypes cannot be defined on a function component.",v.displayName||v.name||"Component"),g.ref!==null){var L="",z=rl();z&&(L+=`

Check the render method of \``+z+"`.");var j=z||g._debugID||"",J=g._debugSource;J&&(j=J.fileName+":"+J.lineNumber),OC[j]||(OC[j]=!0,M("Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?%s",L))}if(typeof v.getDerivedStateFromProps=="function"){var le=Wi(v)||"Unknown";bc[le]||(M("%s: Function components do not support getDerivedStateFromProps.",le),bc[le]=!0)}if(typeof v.contextType=="object"&&v.contextType!==null){var ce=Wi(v)||"Unknown";Ym[ce]||(M("%s: Function components do not support contextType.",ce),Ym[ce]=!0)}}}var Xm={dehydrated:null,retryLane:Jc};function A6(g){return{baseLanes:g}}function Q8(g,v){return{baseLanes:tn(g.baseLanes,v)}}function CS(g,v,L,z){if(v!==null){var j=v.memoizedState;if(j===null)return!1}return z2(g,n6)}function J8(g,v){return lg(g.childLanes,v)}function GC(g,v,L){var z=v.pendingProps;$S(v)&&(v.flags|=en);var j=Wl.current,J=!1,le=(v.flags&en)!==mn;if(le||CS(j,g)?(J=!0,v.flags&=~en):(g===null||g.memoizedState!==null)&&z.fallback!==void 0&&z.unstable_avoidThisFallback!==!0&&(j=AC(j,r6)),j=a6(j),Kh(v,j),g===null){z.fallback!==void 0&&Dm(v);var ce=z.children,_e=z.fallback;if(J){var Oe=xS(v,ce,_e,L),Fe=v.child;return Fe.memoizedState=A6(L),v.memoizedState=Xm,Oe}else if(typeof z.unstable_expectedLoadTime=="number"){var pt=xS(v,ce,_e,L),it=v.child;return it.memoizedState=A6(L),v.memoizedState=Xm,v.lanes=pc,R6(pc),pt}else return WC(v,ce,L)}else{var Mt=g.memoizedState;if(Mt!==null)if(J){var Jt=z.fallback,Ai=z.children,Ct=yS(g,v,Ai,Jt,L),Ft=v.child,ut=g.child.memoizedState;return Ft.memoizedState=ut===null?A6(L):Q8(ut,L),Ft.childLanes=J8(g,L),v.memoizedState=Xm,Ct}else{var ni=z.children,Ei=SS(g,v,ni,L);return v.memoizedState=null,Ei}else if(J){var ht=z.fallback,Vt=z.children,Et=yS(g,v,Vt,ht,L),di=v.child,yi=g.child.memoizedState;return di.memoizedState=yi===null?A6(L):Q8(yi,L),di.childLanes=J8(g,L),v.memoizedState=Xm,Et}else{var Gi=z.children,_s=SS(g,v,Gi,L);return v.memoizedState=null,_s}}}function WC(g,v,L){var z=g.mode,j={mode:"visible",children:v},J=D6(j,z,L,null);return J.return=g,g.child=J,J}function xS(g,v,L,z){var j=g.mode,J=g.child,le={mode:"hidden",children:v},ce,_e;return(j&Lu)===Ha&&J!==null?(ce=J,ce.childLanes=Ci,ce.pendingProps=le,g.mode&Ya&&(ce.actualDuration=0,ce.actualStartTime=-1,ce.selfBaseDuration=0,ce.treeBaseDuration=0),_e=Kp(L,j,z,null)):(ce=D6(le,j,Ci,null),_e=Kp(L,j,z,null)),ce.return=g,_e.return=g,ce.sibling=_e,g.child=ce,_e}function bS(g,v){return zu(g,v)}function SS(g,v,L,z){var j=g.child,J=j.sibling,le=bS(j,{mode:"visible",children:L});return(v.mode&Lu)===Ha&&(le.lanes=z),le.return=v,le.sibling=null,J!==null&&(J.nextEffect=null,J.flags=Qc,v.firstEffect=v.lastEffect=J),v.child=le,le}function yS(g,v,L,z,j){var J=v.mode,le=g.child,ce=le.sibling,_e={mode:"hidden",children:L},Oe;if((J&Lu)===Ha&&v.child!==le){var Fe=v.child;Oe=Fe,Oe.childLanes=Ci,Oe.pendingProps=_e,v.mode&Ya&&(Oe.actualDuration=0,Oe.actualStartTime=-1,Oe.selfBaseDuration=le.selfBaseDuration,Oe.treeBaseDuration=le.treeBaseDuration);var pt=Oe.lastEffect;pt!==null?(v.firstEffect=Oe.firstEffect,v.lastEffect=pt,pt.nextEffect=null):v.firstEffect=v.lastEffect=null}else Oe=bS(le,_e);var it;return ce!==null?it=zu(ce,z):(it=Kp(z,J,j,null),it.flags|=no),it.return=v,Oe.return=v,Oe.sibling=it,v.child=Oe,it}function C6(g,v){g.lanes=tn(g.lanes,v);var L=g.alternate;L!==null&&(L.lanes=tn(L.lanes,v)),aC(g.return,v)}function OE(g,v,L){for(var z=v;z!==null;){if(z.tag===te){var j=z.memoizedState;j!==null&&C6(z,L)}else if(z.tag===se)C6(z,L);else if(z.child!==null){z.child.return=z,z=z.child;continue}if(z===g)return;for(;z.sibling===null;){if(z.return===null||z.return===g)return;z=z.return}z.sibling.return=z.return,z=z.sibling}}function HC(g){for(var v=g,L=null;v!==null;){var z=v.alternate;z!==null&&Cc(z)===null&&(L=v),v=v.sibling}return L}function MS(g){if(g!==void 0&&g!=="forwards"&&g!=="backwards"&&g!=="together"&&!Y8[g])if(Y8[g]=!0,typeof g=="string")switch(g.toLowerCase()){case"together":case"forwards":case"backwards":{M('"%s" is not a valid value for revealOrder on <SuspenseList />. Use lowercase "%s" instead.',g,g.toLowerCase());break}case"forward":case"backward":{M('"%s" is not a valid value for revealOrder on <SuspenseList />. React uses the -s suffix in the spelling. Use "%ss" instead.',g,g.toLowerCase());break}default:M('"%s" is not a supported revealOrder on <SuspenseList />. Did you mean "together", "forwards" or "backwards"?',g);break}else M('%s is not a supported value for revealOrder on <SuspenseList />. Did you mean "together", "forwards" or "backwards"?',g)}function ES(g,v){g!==void 0&&!g6[g]&&(g!=="collapsed"&&g!=="hidden"?(g6[g]=!0,M('"%s" is not a supported value for tail on <SuspenseList />. Did you mean "collapsed" or "hidden"?',g)):v!=="forwards"&&v!=="backwards"&&(g6[g]=!0,M('<SuspenseList tail="%s" /> is only valid if revealOrder is "forwards" or "backwards". Did you mean to specify revealOrder="forwards"?',g)))}function x6(g,v){{var L=Array.isArray(g),z=!L&&typeof ir(g)=="function";if(L||z){var j=L?"array":"iterable";return M("A nested %s was passed to row #%s in <SuspenseList />. Wrap it in an additional SuspenseList to configure its revealOrder: <SuspenseList revealOrder=...> ... <SuspenseList revealOrder=...>{%s}</SuspenseList> ... </SuspenseList>",j,v,j),!1}}return!0}function RE(g,v){if((v==="forwards"||v==="backwards")&&g!==void 0&&g!==null&&g!==!1)if(Array.isArray(g)){for(var L=0;L<g.length;L++)if(!x6(g[L],L))return}else{var z=ir(g);if(typeof z=="function"){var j=z.call(g);if(j)for(var J=j.next(),le=0;!J.done;J=j.next()){if(!x6(J.value,le))return;le++}}else M('A single row was passed to a <SuspenseList revealOrder="%s" />. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?',v)}}function $8(g,v,L,z,j,J){var le=g.memoizedState;le===null?g.memoizedState={isBackwards:v,rendering:null,renderingStartTime:0,last:z,tail:L,tailMode:j,lastEffect:J}:(le.isBackwards=v,le.rendering=null,le.renderingStartTime=0,le.last=z,le.tail=L,le.tailMode=j,le.lastEffect=J)}function TS(g,v,L){var z=v.pendingProps,j=z.revealOrder,J=z.tail,le=z.children;MS(j),ES(J,j),RE(le,j),Sc(g,v,le,L);var ce=Wl.current,_e=z2(ce,n6);if(_e)ce=Om(ce,n6),v.flags|=en;else{var Oe=g!==null&&(g.flags&en)!==mn;Oe&&OE(v,v.child,L),ce=a6(ce)}if(Kh(v,ce),(v.mode&Lu)===Ha)v.memoizedState=null;else switch(j){case"forwards":{var Fe=HC(v.child),pt;Fe===null?(pt=v.child,v.child=null):(pt=Fe.sibling,Fe.sibling=null),$8(v,!1,pt,Fe,J,v.lastEffect);break}case"backwards":{var it=null,Mt=v.child;for(v.child=null;Mt!==null;){var Jt=Mt.alternate;if(Jt!==null&&Cc(Jt)===null){v.child=Mt;break}var Ai=Mt.sibling;Mt.sibling=it,it=Mt,Mt=Ai}$8(v,!0,it,null,J,v.lastEffect);break}case"together":{$8(v,!1,null,null,void 0,v.lastEffect);break}default:v.memoizedState=null}return v.child}function ev(g,v,L){vC(v,v.stateNode.containerInfo);var z=v.pendingProps;return g===null?v.child=Zh(v,null,z,L):Sc(g,v,z,L),v.child}var Hd=!1;function DE(g,v,L){var z=v.type,j=z._context,J=v.pendingProps,le=v.memoizedProps,ce=J.value;{"value"in J||Hd||(Hd=!0,M("The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?"));var _e=v.type.propTypes;_e&&ba(_e,J,"prop","Context.Provider")}if(Uf(v,ce),le!==null){var Oe=le.value,Fe=dS(j,ce,Oe);if(Fe===0){if(le.children===J.children&&!cm())return Yd(g,v,L)}else p8(v,j,Fe,L)}var pt=J.children;return Sc(g,v,pt,L),v.child}var YC=!1;function Zm(g,v,L){var z=v.type;z._context===void 0?z!==z.Consumer&&(YC||(YC=!0,M("Rendering <Context> directly is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?"))):z=z._context;var j=v.pendingProps,J=j.children;typeof J!="function"&&M("A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."),B2(v,L);var le=Xa(z,j.unstable_observedBits),ce;return kp.current=v,$r(!0),ce=J(le),$r(!1),v.flags|=Ed,Sc(g,v,ce,L),v.child}function tv(){$h=!0}function Yd(g,v,L){return g!==null&&(v.dependencies=g.dependencies),Fp(),u0(v.lanes),gc(L,v.childLanes)?(M8(g,v),v.child):null}function XC(g,v,L){{var z=v.return;if(z===null)throw new Error("Cannot swap the root fiber.");if(g.alternate=null,v.alternate=null,L.index=v.index,L.sibling=v.sibling,L.return=v.return,L.ref=v.ref,v===z.child)z.child=L;else{var j=z.child;if(j===null)throw new Error("Expected parent to have a child.");for(;j.sibling!==v;)if(j=j.sibling,j===null)throw new Error("Expected to find the previous sibling.");j.sibling=L}var J=z.lastEffect;return J!==null?(J.nextEffect=g,z.lastEffect=g):z.firstEffect=z.lastEffect=g,g.nextEffect=null,g.flags=Qc,L.flags|=no,L}}function ZC(g,v,L){var z=v.lanes;if(v._debugNeedsRemount&&g!==null)return XC(g,v,Ox(v.type,v.key,v.pendingProps,v._debugOwner||null,v.mode,v.lanes));if(g!==null){var j=g.memoizedProps,J=v.pendingProps;if(j!==J||cm()||v.type!==g.type)$h=!0;else if(gc(L,z))(g.flags&M5)!==mn?$h=!0:$h=!1;else{switch($h=!1,v.tag){case N:jC(v),Nm();break;case D:Pm(v);break;case R:{var le=v.type;uh(le)&&kg(v);break}case w:vC(v,v.stateNode.containerInfo);break;case K:{var ce=v.memoizedProps.value;Uf(v,ce);break}case ne:{var _e=gc(L,v.childLanes);_e&&(v.flags|=Zs);var Oe=v.stateNode;Oe.effectDuration=0,Oe.passiveEffectDuration=0}break;case te:{var Fe=v.memoizedState;if(Fe!==null){var pt=v.child,it=pt.childLanes;if(gc(L,it))return GC(g,v,L);Kh(v,a6(Wl.current));var Mt=Yd(g,v,L);return Mt!==null?Mt.sibling:null}else Kh(v,a6(Wl.current));break}case se:{var Jt=(g.flags&en)!==mn,Ai=gc(L,v.childLanes);if(Jt){if(Ai)return TS(g,v,L);v.flags|=en}var Ct=v.memoizedState;if(Ct!==null&&(Ct.rendering=null,Ct.tail=null,Ct.lastEffect=null),Kh(v,Wl.current),Ai)break;return null}case Ae:case Se:return v.lanes=Ci,X8(g,v,L)}return Yd(g,v,L)}}else $h=!1;switch(v.lanes=Ci,v.tag){case I:return PE(g,v,v.type,L);case re:{var Ft=v.elementType;return K8(g,v,Ft,z,L)}case O:{var ut=v.type,ni=v.pendingProps,Ei=v.elementType===ut?ni:Gl(ut,ni);return FC(g,v,ut,Ei,L)}case R:{var ht=v.type,Vt=v.pendingProps,Et=v.elementType===ht?Vt:Gl(ht,Vt);return kC(g,v,ht,Et,L)}case N:return AS(g,v,L);case D:return VC(g,v,L);case k:return _6(g,v);case te:return GC(g,v,L);case w:return ev(g,v,L);case ie:{var di=v.type,yi=v.pendingProps,Gi=v.elementType===di?yi:Gl(di,yi);return RC(g,v,di,Gi,L)}case Y:return Z8(g,v,L);case V:return wC(g,v,L);case ne:return BC(g,v,L);case K:return DE(g,v,L);case ee:return Zm(g,v,L);case W:{var _s=v.type,$s=v.pendingProps,br=Gl(_s,$s);if(v.type!==v.elementType){var Ks=_s.propTypes;Ks&&ba(Ks,br,"prop",Wi(_s))}return br=Gl(_s.type,br),vS(g,v,_s,br,z,L)}case Q:return DC(g,v,v.type,v.pendingProps,z,L);case oe:{var kn=v.type,Ns=v.pendingProps,sn=v.elementType===kn?Ns:Gl(kn,Ns);return q8(g,v,kn,sn,L)}case se:return TS(g,v,L);case ue:break;case he:break;case fe:break;case Ae:return X8(g,v,L);case Se:return NC(g,v,L)}throw Error("Unknown unit of work tag ("+v.tag+"). This error is likely caused by a bug in React. Please file an issue.")}function s0(g){g.flags|=Zs}function Km(g){g.flags|=F4}var KC,iv,qC,qm;KC=function(g,v,L,z){for(var j=v.child;j!==null;){if(j.tag===D||j.tag===k)s8(g,j.stateNode);else if(j.tag!==w){if(j.child!==null){j.child.return=j,j=j.child;continue}}if(j===v)return;for(;j.sibling===null;){if(j.return===null||j.return===v)return;j=j.return}j.sibling.return=j.return,j=j.sibling}},iv=function(g){},qC=function(g,v,L,z,j){var J=g.memoizedProps;if(J!==z){var le=v.stateNode,ce=s6(),_e=zA(le,L,J,z,j,ce);v.updateQueue=_e,_e&&s0(v)}},qm=function(g,v,L,z){L!==z&&s0(v)};function b6(g,v){if(!bC())switch(g.tailMode){case"hidden":{for(var L=g.tail,z=null;L!==null;)L.alternate!==null&&(z=L),L=L.sibling;z===null?g.tail=null:z.sibling=null;break}case"collapsed":{for(var j=g.tail,J=null;j!==null;)j.alternate!==null&&(J=j),j=j.sibling;J===null?!v&&g.tail!==null?g.tail.sibling=null:g.tail=null:J.sibling=null;break}}}function sv(g,v,L){var z=v.pendingProps;switch(v.tag){case I:case re:case Q:case O:case ie:case Y:case V:case ne:case ee:case W:return null;case R:{var j=v.type;return uh(j)&&up(v),null}case N:{Yf(v),qA(v),ru();var J=v.stateNode;if(J.pendingContext&&(J.context=J.pendingContext,J.pendingContext=null),g===null||g.child===null){var le=O8(v);le?s0(v):J.hydrate||(v.flags|=B0)}return iv(v),null}case D:{dh(v);var ce=E8(),_e=v.type;if(g!==null&&v.stateNode!=null)qC(g,v,_e,z,ce),g.ref!==v.ref&&Km(v);else{if(!z){if(v.stateNode===null)throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");return null}var Oe=s6(),Fe=O8(v);if(Fe)I8(v,ce,Oe)&&s0(v);else{var pt=hE(_e,z,ce,Oe,v);KC(pt,v,!1,!1),v.stateNode=pt,dE(pt,_e,z,ce)&&s0(v)}v.ref!==null&&Km(v)}return null}case k:{var it=z;if(g&&v.stateNode!=null){var Mt=g.memoizedProps;qm(g,v,Mt,it)}else{if(typeof it!="string"&&v.stateNode===null)throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");var Jt=E8(),Ai=s6(),Ct=O8(v);Ct?xC(v)&&s0(v):v.stateNode=fE(it,Jt,Ai,v)}return null}case te:{qh(v);var Ft=v.memoizedState;if((v.flags&en)!==mn)return v.lanes=L,(v.mode&Ya)!==Ha&&m6(v),v;var ut=Ft!==null,ni=!1;if(g===null)v.memoizedProps.fallback!==void 0&&O8(v);else{var Ei=g.memoizedState;ni=Ei!==null}if(ut&&!ni&&(v.mode&Lu)!==Ha){var ht=g===null&&v.memoizedProps.unstable_avoidThisFallback!==!0;ht||z2(Wl.current,r6)?KE():qE()}return(ut||ni)&&(v.flags|=Zs),null}case w:return Yf(v),iv(v),g===null&&ZA(v.stateNode.containerInfo),null;case K:return xo(v),null;case oe:{var Vt=v.type;return uh(Vt)&&up(v),null}case se:{qh(v);var Et=v.memoizedState;if(Et===null)return null;var di=(v.flags&en)!==mn,yi=Et.rendering;if(yi===null)if(di)b6(Et,!1);else{var Gi=mx()&&(g===null||(g.flags&en)===mn);if(!Gi)for(var _s=v.child;_s!==null;){var $s=Cc(_s);if($s!==null){di=!0,v.flags|=en,b6(Et,!1);var br=$s.updateQueue;return br!==null&&(v.updateQueue=br,v.flags|=Zs),Et.lastEffect===null&&(v.firstEffect=null),v.lastEffect=Et.lastEffect,i6(v,L),Kh(v,Om(Wl.current,n6)),v.child}_s=_s.sibling}Et.tail!==null&&Tl()>Zd()&&(v.flags|=en,di=!0,b6(Et,!1),v.lanes=pc,R6(pc))}else{if(!di){var Ks=Cc(yi);if(Ks!==null){v.flags|=en,di=!0;var kn=Ks.updateQueue;if(kn!==null&&(v.updateQueue=kn,v.flags|=Zs),b6(Et,!0),Et.tail===null&&Et.tailMode==="hidden"&&!yi.alternate&&!bC()){var Ns=v.lastEffect=Et.lastEffect;return Ns!==null&&(Ns.nextEffect=null),null}}else Tl()*2-Et.renderingStartTime>Zd()&&L!==v1&&(v.flags|=en,di=!0,b6(Et,!1),v.lanes=pc,R6(pc))}if(Et.isBackwards)yi.sibling=v.child,v.child=yi;else{var sn=Et.last;sn!==null?sn.sibling=yi:v.child=yi,Et.last=yi}}if(Et.tail!==null){var qa=Et.tail;Et.rendering=qa,Et.tail=qa.sibling,Et.lastEffect=v.lastEffect,Et.renderingStartTime=Tl(),qa.sibling=null;var co=Wl.current;return di?co=Om(co,n6):co=a6(co),Kh(v,co),qa}return null}case ue:break;case he:break;case fe:break;case Ae:case Se:{if(u4(v),g!==null){var hl=v.memoizedState,uo=g.memoizedState,m0=uo!==null,W6=hl!==null;m0!==W6&&z.mode!=="unstable-defer-without-hiding"&&(v.flags|=Zs)}return null}}throw Error("Unknown unit of work tag ("+v.tag+"). This error is likely caused by a bug in React. Please file an issue.")}function QC(g,v){switch(g.tag){case R:{var L=g.type;uh(L)&&up(g);var z=g.flags;return z&Ld?(g.flags=z&~Ld|en,(g.mode&Ya)!==Ha&&m6(g),g):null}case N:{Yf(g),qA(g),ru();var j=g.flags;if((j&en)!==mn)throw Error("The root failed to unmount after an error. This is likely a bug in React. Please file an issue.");return g.flags=j&~Ld|en,g}case D:return dh(g),null;case te:{qh(g);var J=g.flags;return J&Ld?(g.flags=J&~Ld|en,(g.mode&Ya)!==Ha&&m6(g),g):null}case se:return qh(g),null;case w:return Yf(g),null;case K:return xo(g),null;case Ae:case Se:return u4(g),null;default:return null}}function JC(g){switch(g.tag){case R:{var v=g.type.childContextTypes;v!=null&&up(g);break}case N:{Yf(g),qA(g),ru();break}case D:{dh(g);break}case w:Yf(g);break;case te:qh(g);break;case se:qh(g);break;case K:xo(g);break;case Ae:case Se:u4(g);break}}function S6(g,v){return{value:g,source:v,stack:Sn(v)}}function NE(g,v){return!0}function $C(g,v){try{var L=NE(g,v);if(L===!1)return;var z=v.value,j=v.source,J=v.stack,le=J!==null?J:"";if(z!=null&&z._suppressLogging){if(g.tag===R)return;console.error(z)}var ce=j?Wi(j.type):null,_e=ce?"The above error occurred in the <"+ce+"> component:":"The above error occurred in one of your React components:",Oe,Fe=Wi(g.type);Fe?Oe="React will try to recreate this component tree from scratch "+("using the error boundary you provided, "+Fe+"."):Oe=`Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.`;var pt=_e+`
`+le+`

`+(""+Oe);console.error(pt)}catch(it){setTimeout(function(){throw it})}}var ex=typeof WeakMap=="function"?WeakMap:Map;function rv(g,v,L){var z=Vf(Co,L);z.tag=Zg,z.payload={element:null};var j=v.value;return z.callback=function(){aT(j),$C(g,v)},z}function LS(g,v,L){var z=Vf(Co,L);z.tag=Zg;var j=g.type.getDerivedStateFromError;if(typeof j=="function"){var J=v.value;z.payload=function(){return $C(g,v),j(J)}}var le=g.stateNode;return le!==null&&typeof le.componentDidCatch=="function"?z.callback=function(){Lv(g),typeof j!="function"&&(rT(this),$C(g,v));var _e=v.value,Oe=v.stack;this.componentDidCatch(_e,{componentStack:Oe!==null?Oe:""}),typeof j!="function"&&(gc(g.lanes,zn)||M("%s: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.",Wi(g.type)||"Unknown"))}:z.callback=function(){Lv(g)},z}function wE(g,v,L){var z=g.pingCache,j;if(z===null?(z=g.pingCache=new ex,j=new Set,z.set(v,j)):(j=z.get(v),j===void 0&&(j=new Set,z.set(v,j))),!j.has(L)){j.add(L);var J=US.bind(null,g,v,L);v.then(J,J)}}function tx(g,v,L,z,j){if(L.flags|=U4,L.firstEffect=L.lastEffect=null,z!==null&&typeof z=="object"&&typeof z.then=="function"){var J=z;if((L.mode&Lu)===Ha){var le=L.alternate;le?(L.updateQueue=le.updateQueue,L.memoizedState=le.memoizedState,L.lanes=le.lanes):(L.updateQueue=null,L.memoizedState=null)}var ce=z2(Wl.current,r6),_e=v;do{if(_e.tag===te&&o6(_e,ce)){var Oe=_e.updateQueue;if(Oe===null){var Fe=new Set;Fe.add(J),_e.updateQueue=Fe}else Oe.add(J);if((_e.mode&Lu)===Ha){if(_e.flags|=en,L.flags|=M5,L.flags&=-2981,L.tag===R){var pt=L.alternate;if(pt===null)L.tag=oe;else{var it=Vf(Co,zn);it.tag=Am,E1(L,it)}}L.lanes=tn(L.lanes,zn);return}wE(g,J,j),_e.flags|=Ld,_e.lanes=j;return}_e=_e.return}while(_e!==null);z=new Error((Wi(L.type)||"A React component")+` suspended while rendering, but no fallback UI was specified.

Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`)}QE(),z=S6(z,L);var Mt=v;do{switch(Mt.tag){case N:{var Jt=z;Mt.flags|=Ld;var Ai=dr(j);Mt.lanes=tn(Mt.lanes,Ai);var Ct=rv(Mt,Jt,Ai);Cm(Mt,Ct);return}case R:var Ft=z,ut=Mt.type,ni=Mt.stateNode;if((Mt.flags&en)===mn&&(typeof ut.getDerivedStateFromError=="function"||ni!==null&&typeof ni.componentDidCatch=="function"&&!z1(ni))){Mt.flags|=Ld;var Ei=dr(j);Mt.lanes=tn(Mt.lanes,Ei);var ht=LS(Mt,Ft,Ei);Cm(Mt,ht);return}break}Mt=Mt.return}while(Mt!==null)}var IS=null;IS=new Set;var ix=typeof WeakSet=="function"?WeakSet:Set,BE=function(g,v){v.props=g.memoizedProps,v.state=g.memoizedState,v.componentWillUnmount()};function zE(g,v){if(fc(null,BE,null,g,v),pn()){var L=jl();h0(g,L)}}function nv(g){var v=g.ref;if(v!==null)if(typeof v=="function"){if(fc(null,v,null,null),pn()){var L=jl();h0(g,L)}}else v.current=null}function FE(g,v){if(fc(null,v,null),pn()){var L=jl();h0(g,L)}}function PS(g,v){switch(v.tag){case O:case ie:case Q:case fe:return;case R:{if(v.flags&B0&&g!==null){var L=g.memoizedProps,z=g.memoizedState,j=v.stateNode;v.type===v.elementType&&!i0&&(j.props!==v.memoizedProps&&M("Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Wi(v.type)||"instance"),j.state!==v.memoizedState&&M("Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",Wi(v.type)||"instance"));var J=j.getSnapshotBeforeUpdate(v.elementType===v.type?L:Gl(v.type,L),z);{var le=IS;J===void 0&&!le.has(v.type)&&(le.add(v.type),M("%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.",Wi(v.type)))}j.__reactInternalSnapshotBeforeUpdate=J}return}case N:{if(v.flags&B0){var ce=v.stateNode;a8(ce.containerInfo)}return}case D:case k:case w:case oe:return}throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}function kE(g,v){var L=v.updateQueue,z=L!==null?L.lastEffect:null;if(z!==null){var j=z.next,J=j;do{if((J.tag&g)===g){var le=J.destroy;J.destroy=void 0,le!==void 0&&le()}J=J.next}while(J!==j)}}function UE(g,v){var L=v.updateQueue,z=L!==null?L.lastEffect:null;if(z!==null){var j=z.next,J=j;do{if((J.tag&g)===g){var le=J.create;J.destroy=le();{var ce=J.destroy;if(ce!==void 0&&typeof ce!="function"){var _e=void 0;ce===null?_e=" You returned null. If your effect does not require clean up, return undefined (or nothing).":typeof ce.then=="function"?_e=`

It looks like you wrote useEffect(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:

useEffect(() => {
  async function fetchData() {
    // You can await here
    const response = await MyAPI.getData(someId);
    // ...
  }
  fetchData();
}, [someId]); // Or [] if effect doesn't need props or state

Learn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching`:_e=" You returned: "+ce,M("An effect function must not return anything besides a function, which is used for clean-up.%s",_e)}}}J=J.next}while(J!==j)}}function sx(g){var v=g.updateQueue,L=v!==null?v.lastEffect:null;if(L!==null){var z=L.next,j=z;do{var J=j,le=J.next,ce=J.tag;(ce&Rm)!==F2&&(ce&Iu)!==F2&&(vx(g,j),iT(g,j)),j=le}while(j!==z)}}function jE(g,v,L,z){switch(L.tag){case O:case ie:case Q:case fe:{UE(Ep|Iu,L),sx(L);return}case R:{var j=L.stateNode;if(L.flags&Zs)if(v===null)L.type===L.elementType&&!i0&&(j.props!==L.memoizedProps&&M("Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Wi(L.type)||"instance"),j.state!==L.memoizedState&&M("Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",Wi(L.type)||"instance")),j.componentDidMount();else{var J=L.elementType===L.type?v.memoizedProps:Gl(L.type,v.memoizedProps),le=v.memoizedState;L.type===L.elementType&&!i0&&(j.props!==L.memoizedProps&&M("Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Wi(L.type)||"instance"),j.state!==L.memoizedState&&M("Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",Wi(L.type)||"instance")),j.componentDidUpdate(J,le,j.__reactInternalSnapshotBeforeUpdate)}var ce=L.updateQueue;ce!==null&&(L.type===L.elementType&&!i0&&(j.props!==L.memoizedProps&&M("Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Wi(L.type)||"instance"),j.state!==L.memoizedState&&M("Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.",Wi(L.type)||"instance")),g8(L,ce,j));return}case N:{var _e=L.updateQueue;if(_e!==null){var Oe=null;if(L.child!==null)switch(L.child.tag){case D:Oe=L.child.stateNode;break;case R:Oe=L.child.stateNode;break}g8(L,_e,Oe)}return}case D:{var Fe=L.stateNode;if(v===null&&L.flags&Zs){var pt=L.type,it=L.memoizedProps;Z7(Fe,pt,it)}return}case k:return;case w:return;case ne:{{var Mt=L.memoizedProps;Mt.onCommit;var Jt=Mt.onRender;L.stateNode.effectDuration;var Ai=PC();typeof Jt=="function"&&Jt(L.memoizedProps.id,v===null?"mount":"update",L.actualDuration,L.treeBaseDuration,L.actualStartTime,Ai,g.memoizedInteractions)}return}case te:{HE(g,L);return}case se:case oe:case ue:case he:case Ae:case Se:return}throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}function rx(g,v){for(var L=g;;){if(L.tag===D){var z=L.stateNode;v?vE(z):AE(L.stateNode,L.memoizedProps)}else if(L.tag===k){var j=L.stateNode;v?Q7(j):n8(j,L.memoizedProps)}else if(!((L.tag===Ae||L.tag===Se)&&L.memoizedState!==null&&L!==g)){if(L.child!==null){L.child.return=L,L=L.child;continue}}if(L===g)return;for(;L.sibling===null;){if(L.return===null||L.return===g)return;L=L.return}L.sibling.return=L.return,L=L.sibling}}function VE(g){var v=g.ref;if(v!==null){var L=g.stateNode,z;switch(g.tag){case D:z=L;break;default:z=L}typeof v=="function"?v(z):(v.hasOwnProperty("current")||M("Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().",Wi(g.type)),v.current=z)}}function av(g){var v=g.ref;v!==null&&(typeof v=="function"?v(null):v.current=null)}function OS(g,v,L){switch(h8(v),v.tag){case O:case ie:case W:case Q:case fe:{var z=v.updateQueue;if(z!==null){var j=z.lastEffect;if(j!==null){var J=j.next,le=J;do{var ce=le,_e=ce.destroy,Oe=ce.tag;_e!==void 0&&((Oe&Rm)!==F2?vx(v,le):FE(v,_e)),le=le.next}while(le!==J)}}return}case R:{nv(v);var Fe=v.stateNode;typeof Fe.componentWillUnmount=="function"&&zE(v,Fe);return}case D:{nv(v);return}case w:{r0(g,v);return}case ue:return;case X:return;case he:return}}function RS(g,v,L){for(var z=v;;){if(OS(g,z),z.child!==null&&z.tag!==w){z.child.return=z,z=z.child;continue}if(z===v)return;for(;z.sibling===null;){if(z.return===null||z.return===v)return;z=z.return}z.sibling.return=z.return,z=z.sibling}}function ov(g){g.alternate=null,g.child=null,g.dependencies=null,g.firstEffect=null,g.lastEffect=null,g.memoizedProps=null,g.memoizedState=null,g.pendingProps=null,g.return=null,g.updateQueue=null,g._debugOwner=null}function nx(g){for(var v=g.return;v!==null;){if(Y2(v))return v;v=v.return}throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.")}function Y2(g){return g.tag===D||g.tag===N||g.tag===w}function GE(g){var v=g;e:for(;;){for(;v.sibling===null;){if(v.return===null||Y2(v.return))return null;v=v.return}for(v.sibling.return=v.return,v=v.sibling;v.tag!==D&&v.tag!==k&&v.tag!==X;){if(v.flags&no||v.child===null||v.tag===w)continue e;v.child.return=v,v=v.child}if(!(v.flags&no))return v.stateNode}}function lv(g){var v=nx(g),L,z,j=v.stateNode;switch(v.tag){case D:L=j,z=!1;break;case N:L=j.containerInfo,z=!0;break;case w:L=j.containerInfo,z=!0;break;case ue:default:throw Error("Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.")}v.flags&vf&&(K7(L),v.flags&=~vf);var J=GE(g);z?ax(g,J,L):ox(g,J,L)}function ax(g,v,L){var z=g.tag,j=z===D||z===k;if(j||ke){var J=j?g.stateNode:g.stateNode.instance;v?_E(L,J,v):q7(L,J)}else if(z!==w){var le=g.child;if(le!==null){ax(le,v,L);for(var ce=le.sibling;ce!==null;)ax(ce,v,L),ce=ce.sibling}}}function ox(g,v,L){var z=g.tag,j=z===D||z===k;if(j||ke){var J=j?g.stateNode:g.stateNode.instance;v?gE(L,J,v):mE(L,J)}else if(z!==w){var le=g.child;if(le!==null){ox(le,v,L);for(var ce=le.sibling;ce!==null;)ox(ce,v,L),ce=ce.sibling}}}function r0(g,v,L){for(var z=v,j=!1,J,le;;){if(!j){var ce=z.return;e:for(;;){if(ce===null)throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.");var _e=ce.stateNode;switch(ce.tag){case D:J=_e,le=!1;break e;case N:J=_e.containerInfo,le=!0;break e;case w:J=_e.containerInfo,le=!0;break e}ce=ce.return}j=!0}if(z.tag===D||z.tag===k)RS(g,z),le?jA(J,z.stateNode):r8(J,z.stateNode);else if(z.tag===w){if(z.child!==null){J=z.stateNode.containerInfo,le=!0,z.child.return=z,z=z.child;continue}}else if(OS(g,z),z.child!==null){z.child.return=z,z=z.child;continue}if(z===v)return;for(;z.sibling===null;){if(z.return===null||z.return===v)return;z=z.return,z.tag===w&&(j=!1)}z.sibling.return=z.return,z=z.sibling}}function WE(g,v,L){r0(g,v);var z=v.alternate;ov(v),z!==null&&ov(z)}function cv(g,v){switch(v.tag){case O:case ie:case W:case Q:case fe:{kE(Ep|Iu,v);return}case R:return;case D:{var L=v.stateNode;if(L!=null){var z=v.memoizedProps,j=g!==null?g.memoizedProps:z,J=v.type,le=v.updateQueue;v.updateQueue=null,le!==null&&pE(L,le,J,j,z)}return}case k:{if(v.stateNode===null)throw Error("This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.");var ce=v.stateNode,_e=v.memoizedProps,Oe=g!==null?g.memoizedProps:_e;UA(ce,Oe,_e);return}case N:{{var Fe=v.stateNode;Fe.hydrate&&(Fe.hydrate=!1,iS(Fe.containerInfo))}return}case ne:return;case te:{y6(v),uv(v);return}case se:{uv(v);return}case oe:return;case ue:break;case he:break;case Ae:case Se:{var pt=v.memoizedState,it=pt!==null;rx(v,it);return}}throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}function y6(g){var v=g.memoizedState;if(v!==null){ZE();{var L=g.child;rx(L,!0)}}}function HE(g,v){var L=v.memoizedState;if(L===null){var z=v.alternate;if(z!==null){var j=z.memoizedState;if(j!==null){var J=j.dehydrated;J!==null&&HA(J)}}}}function uv(g){var v=g.updateQueue;if(v!==null){g.updateQueue=null;var L=g.stateNode;L===null&&(L=g.stateNode=new ix),v.forEach(function(z){var j=xx.bind(null,g,z);L.has(z)||(z.__reactDoNotTraceInteractions!==!0&&(j=S.unstable_wrap(j)),L.add(z),z.then(j,j))})}}function YE(g,v){if(g!==null){var L=g.memoizedState;if(L===null||L.dehydrated!==null){var z=v.memoizedState;return z!==null&&z.dehydrated===null}}return!1}function hv(g){K7(g.stateNode)}if(typeof Symbol=="function"&&Symbol.for){var jp=Symbol.for;jp("selector.component"),jp("selector.has_pseudo_class"),jp("selector.role"),jp("selector.test_id"),jp("selector.text")}var dv=[];function lo(){dv.forEach(function(g){return g()})}var fv=Math.ceil,lx=E.ReactCurrentDispatcher,Qm=E.ReactCurrentOwner,Jm=E.IsSomeRendererActing,Hr=0,_h=1,DS=2,Ou=4,$m=8,Yl=16,Ru=32,M6=64,Du=0,js=1,cl=2,Sa=3,Ll=4,vh=5,Vs=Hr,on=null,Oa=null,So=Ci,Ah=Ci,R1=_c(Ci),Xo=Du,e4=null,D1=Ci,n0=Ci,a0=Ci,pv=Ci,o0=null,E6=0,ms=500,t4=1/0,cx=500;function Xd(){t4=Tl()+cx}function Zd(){return t4}var fs=null,X2=!1,i4=null,l0=null,Kd=!1,Nu=null,T6=dm,c0=Ci,L6=[],mv=[],ed=null,Vp=50,N1=0,qd=null,s4=50,r4=0,td=null,Z2=Co,K2=Ci,Xl=Ci,w1=!1,n4=null,ul=!1;function gv(){return on}function Za(){return(Vs&(Yl|Ru))!==Hr?Tl():(Z2!==Co||(Z2=Tl()),Z2)}function B1(g){var v=g.mode;if((v&Lu)===Ha)return zn;if((v&pp)===Ha)return fp()===iu?zn:N3;K2===Ci&&(K2=D1);var L=pm()!==Gg;if(L)return Xl!==Ci&&(Xl=o0!==null?o0.pendingLanes:Ci),$c(K2,Xl);var z=fp(),j;if((Vs&Ou)!==Hr&&z===dp)j=og(D3,K2);else{var J=xM(z);j=og(J,K2)}return j}function XE(g){var v=g.mode;return(v&Lu)===Ha?zn:(v&pp)===Ha?fp()===iu?zn:N3:(K2===Ci&&(K2=D1),Tf(K2))}function Ka(g,v,L){bx(),yx(g);var z=a4(g,v);if(z===null)return O6(g),null;cg(z,v,L),z===on&&(a0=tn(a0,v),Xo===Ll&&q2(z,So));var j=fp();v===zn?(Vs&$m)!==Hr&&(Vs&(Yl|Ru))===Hr?(Ch(z,v),dx(z)):(id(z,L),Ch(z,v),Vs===Hr&&(Xd(),ao())):((Vs&Ou)!==Hr&&(j===dp||j===iu)&&(ed===null?ed=new Set([z]):ed.add(z)),id(z,L),Ch(z,v)),o0=z}function a4(g,v){g.lanes=tn(g.lanes,v);var L=g.alternate;L!==null&&(L.lanes=tn(L.lanes,v)),L===null&&(g.flags&(no|Td))!==mn&&yv(g);for(var z=g,j=g.return;j!==null;)j.childLanes=tn(j.childLanes,v),L=j.alternate,L!==null?L.childLanes=tn(L.childLanes,v):(j.flags&(no|Td))!==mn&&yv(g),z=j,j=j.return;if(z.tag===N){var J=z.stateNode;return J}else return null}function id(g,v){var L=g.callbackNode;bM(g,v);var z=ag(g,g===on?So:Ci),j=SM();if(z===Ci){L!==null&&(Wa(L),g.callbackNode=null,g.callbackPriority=Wh);return}if(L!==null){var J=g.callbackPriority;if(J===j)return;Wa(L)}var le;if(j===Id)le=Ga(dx.bind(null,g));else if(j===R3)le=D2(iu,dx.bind(null,g));else{var ce=k5(j);le=D2(ce,ux.bind(null,g))}g.callbackPriority=j,g.callbackNode=le}function ux(g){if(Z2=Co,K2=Ci,Xl=Ci,(Vs&(Yl|Ru))!==Hr)throw Error("Should not already be working.");var v=g.callbackNode,L=sd();if(L&&g.callbackNode!==v)return null;var z=ag(g,g===on?So:Ci);if(z===Ci)return null;var j=Wp(g,z);if(gc(D1,a0))Q2(g,Ci);else if(j!==Du){if(j===cl&&(Vs|=M6,g.hydrate&&(g.hydrate=!1,a8(g.containerInfo)),z=Y0(g),z!==Ci&&(j=Gp(g,z))),j===js){var J=e4;throw Q2(g,Ci),q2(g,z),id(g,Tl()),J}var le=g.current.alternate;g.finishedWork=le,g.finishedLanes=z,hx(g,j,z)}return id(g,Tl()),g.callbackNode===v?ux.bind(null,g):null}function hx(g,v,L){switch(v){case Du:case js:throw Error("Root did not complete. This is a bug in React.");case cl:{yc(g);break}case Sa:{if(q2(g,L),j5(L)){var z=E6+ms-Tl();if(z>10){var j=ag(g,Ci);if(j!==Ci)break;var J=g.suspendedLanes;if(!C1(J,L)){Za(),Kb(g,J);break}g.timeoutHandle=FA(yc.bind(null,g),z);break}}yc(g);break}case Ll:{if(q2(g,L),yM(L))break;{var le=Xb(g,L),ce=le,_e=Tl()-ce,Oe=xv(_e)-_e;if(Oe>10){g.timeoutHandle=FA(yc.bind(null,g),Oe);break}}yc(g);break}case vh:{yc(g);break}default:throw Error("Unknown root exit status.")}}function q2(g,v){v=lg(v,pv),v=lg(v,a0),V5(g,v)}function dx(g){if((Vs&(Yl|Ru))!==Hr)throw Error("Should not already be working.");sd();var v,L;if(g===on&&gc(g.expiredLanes,So)?(v=So,L=Gp(g,v),gc(D1,a0)&&(v=ag(g,v),L=Gp(g,v))):(v=ag(g,Ci),L=Gp(g,v)),g.tag!==L2&&L===cl&&(Vs|=M6,g.hydrate&&(g.hydrate=!1,a8(g.containerInfo)),v=Y0(g),v!==Ci&&(L=Gp(g,v))),L===js){var z=e4;throw Q2(g,Ci),q2(g,v),id(g,Tl()),z}var j=g.current.alternate;return g.finishedWork=j,g.finishedLanes=v,yc(g),id(g,Tl()),null}function NS(){if((Vs&(_h|Yl|Ru))!==Hr){(Vs&Yl)!==Hr&&M("unstable_flushDiscreteUpdates: Cannot flush updates when React is already rendering.");return}_v(),sd()}function _v(){if(ed!==null){var g=ed;ed=null,g.forEach(function(v){qb(v),id(v,Tl())})}ao()}function o4(g,v){var L=Vs;Vs|=_h;try{return g(v)}finally{Vs=L,Vs===Hr&&(Xd(),ao())}}function fx(g,v){var L=Vs;Vs|=DS;try{return g(v)}finally{Vs=L,Vs===Hr&&(Xd(),ao())}}function l4(g,v,L,z,j){var J=Vs;Vs|=Ou;try{return R2(dp,g.bind(null,v,L,z,j))}finally{Vs=J,Vs===Hr&&(Xd(),ao())}}function px(g,v){var L=Vs;Vs&=~_h,Vs|=$m;try{return g(v)}finally{Vs=L,Vs===Hr&&(Xd(),ao())}}function c4(g,v){var L=Vs;if((L&(Yl|Ru))!==Hr)return M("flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task."),g(v);Vs|=_h;try{return g?R2(iu,g.bind(null,v)):void 0}finally{Vs=L,ao()}}function I6(g,v){ll(R1,Ah,g),Ah=tn(Ah,v),D1=tn(D1,v)}function u4(g){Ah=R1.current,Pa(R1,g)}function Q2(g,v){g.finishedWork=null,g.finishedLanes=Ci;var L=g.timeoutHandle;if(L!==kA&&(g.timeoutHandle=kA,X7(L)),Oa!==null)for(var z=Oa.return;z!==null;)JC(z),z=z.return;on=g,Oa=zu(g.current,null),So=Ah=D1=v,Xo=Du,e4=null,n0=Ci,a0=Ci,pv=Ci,td=null,vc.discardPendingWarnings()}function wS(g,v){do{var L=Oa;try{if(f8(),c6(),Or(),Qm.current=null,L===null||L.return===null){Xo=js,e4=v,Oa=null;return}we&&L.mode&Ya&&t0(L,!0),tx(g,L.return,L,v,So),FS(L)}catch(z){v=z,Oa===L&&L!==null?(L=L.return,Oa=L):L=Oa;continue}return}while(!0)}function P6(){var g=lx.current;return lx.current=fh,g===null?fh:g}function BS(g){lx.current=g}function vv(g){{var v=S.__interactionsRef.current;return S.__interactionsRef.current=g.memoizedInteractions,v}}function Av(g){S.__interactionsRef.current=g}function ZE(){E6=Tl()}function u0(g){n0=tn(g,n0)}function KE(){Xo===Du&&(Xo=Sa)}function qE(){(Xo===Du||Xo===Sa)&&(Xo=Ll),on!==null&&(U5(n0)||U5(a0))&&q2(on,So)}function QE(){Xo!==vh&&(Xo=cl)}function mx(){return Xo===Du}function Gp(g,v){var L=Vs;Vs|=Yl;var z=P6();(on!==g||So!==v)&&(Q2(g,v),WS(g,v));var j=vv(g);do try{JE();break}catch(J){wS(g,J)}while(!0);if(f8(),Av(j),Vs=L,BS(z),Oa!==null)throw Error("Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.");return on=null,So=Ci,Xo}function JE(){for(;Oa!==null;)gx(Oa)}function Wp(g,v){var L=Vs;Vs|=Yl;var z=P6();(on!==g||So!==v)&&(Xd(),Q2(g,v),WS(g,v));var j=vv(g);do try{zS();break}catch(J){wS(g,J)}while(!0);return f8(),Av(j),BS(z),Vs=L,Oa!==null?Du:(on=null,So=Ci,Xo)}function zS(){for(;Oa!==null&&!hS();)gx(Oa)}function gx(g){var v=g.alternate;fn(g);var L;(g.mode&Ya)!==Ha?(Jh(g),L=d4(v,g,Ah),t0(g,!0)):L=d4(v,g,Ah),Or(),g.memoizedProps=g.pendingProps,L===null?FS(g):Oa=L,Qm.current=null}function FS(g){var v=g;do{var L=v.alternate,z=v.return;if((v.flags&U4)===mn){fn(v);var j=void 0;if((v.mode&Ya)===Ha?j=sv(L,v,Ah):(Jh(v),j=sv(L,v,Ah),t0(v,!1)),Or(),j!==null){Oa=j;return}if($E(v),z!==null&&(z.flags&U4)===mn){z.firstEffect===null&&(z.firstEffect=v.firstEffect),v.lastEffect!==null&&(z.lastEffect!==null&&(z.lastEffect.nextEffect=v.firstEffect),z.lastEffect=v.lastEffect);var J=v.flags;J>Ed&&(z.lastEffect!==null?z.lastEffect.nextEffect=v:z.firstEffect=v,z.lastEffect=v)}}else{var le=QC(v);if(le!==null){le.flags&=z0,Oa=le;return}if((v.mode&Ya)!==Ha){t0(v,!1);for(var ce=v.actualDuration,_e=v.child;_e!==null;)ce+=_e.actualDuration,_e=_e.sibling;v.actualDuration=ce}z!==null&&(z.firstEffect=z.lastEffect=null,z.flags|=U4)}var Oe=v.sibling;if(Oe!==null){Oa=Oe;return}v=z,Oa=v}while(v!==null);Xo===Du&&(Xo=vh)}function $E(g){if(!((g.tag===Se||g.tag===Ae)&&g.memoizedState!==null&&!gc(Ah,v1)&&(g.mode&pp)!==Ci)){var v=Ci;if((g.mode&Ya)!==Ha){for(var L=g.actualDuration,z=g.selfBaseDuration,j=g.alternate===null||g.child!==g.alternate.child,J=g.child;J!==null;)v=tn(v,tn(J.lanes,J.childLanes)),j&&(L+=J.actualDuration),z+=J.treeBaseDuration,J=J.sibling;var le=g.tag===te&&g.memoizedState!==null;if(le){var ce=g.child;ce!==null&&(z-=ce.treeBaseDuration)}g.actualDuration=L,g.treeBaseDuration=z}else for(var _e=g.child;_e!==null;)v=tn(v,tn(_e.lanes,_e.childLanes)),_e=_e.sibling;g.childLanes=v}}function yc(g){var v=fp();return R2(iu,kS.bind(null,g,v)),null}function kS(g,v){do sd();while(Nu!==null);if(bv(),(Vs&(Yl|Ru))!==Hr)throw Error("Should not already be working.");var L=g.finishedWork,z=g.finishedLanes;if(L===null)return null;if(g.finishedWork=null,g.finishedLanes=Ci,L===g.current)throw Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.");g.callbackNode=null;var j=tn(L.lanes,L.childLanes);G5(g,j),ed!==null&&!LM(j)&&ed.has(g)&&ed.delete(g),g===on&&(on=null,Oa=null,So=Ci);var J;if(L.flags>Ed?L.lastEffect!==null?(L.lastEffect.nextEffect=L,J=L.firstEffect):J=L:J=L.firstEffect,J!==null){var le=Vs;Vs|=Ru;var ce=vv(g);Qm.current=null,n4=uE(g.containerInfo),ul=!1,fs=J;do if(fc(null,_x,null),pn()){if(fs===null)throw Error("Should be working on an effect.");var _e=jl();h0(fs,_e),fs=fs.nextEffect}while(fs!==null);n4=null,zp(),fs=J;do if(fc(null,eT,null,g,v),pn()){if(fs===null)throw Error("Should be working on an effect.");var Oe=jl();h0(fs,Oe),fs=fs.nextEffect}while(fs!==null);Rg(g.containerInfo),g.current=L,fs=J;do if(fc(null,tT,null,g,z),pn()){if(fs===null)throw Error("Should be working on an effect.");var Fe=jl();h0(fs,Fe),fs=fs.nextEffect}while(fs!==null);fs=null,El(),Av(ce),Vs=le}else g.current=L,zp();var pt=Kd;if(Kd)Kd=!1,Nu=g,c0=z,T6=v;else for(fs=J;fs!==null;){var it=fs.nextEffect;fs.nextEffect=null,fs.flags&Qc&&Tv(fs),fs=it}if(j=g.pendingLanes,j!==Ci){if(td!==null){var Mt=td;td=null;for(var Jt=0;Jt<Mt.length;Jt++)wu(g,Mt[Jt],g.memoizedInteractions)}Ch(g,j)}else l0=null;if(pt||k1(g,z),j===zn?g===qd?N1++:(N1=0,qd=g):N1=0,EE(L.stateNode,v),lo(),id(g,Tl()),X2){X2=!1;var Ai=i4;throw i4=null,Ai}return(Vs&$m)!==Hr||ao(),null}function _x(){for(;fs!==null;){var g=fs.alternate;!ul&&n4!==null&&((fs.flags&Qc)!==mn?L5(fs,n4)&&(ul=!0):fs.tag===te&&YE(g,fs)&&L5(fs,n4)&&(ul=!0));var v=fs.flags;(v&B0)!==mn&&(fn(fs),PS(g,fs),Or()),(v&Af)!==mn&&(Kd||(Kd=!0,D2(S1,function(){return sd(),null}))),fs=fs.nextEffect}}function eT(g,v){for(;fs!==null;){fn(fs);var L=fs.flags;if(L&vf&&hv(fs),L&F4){var z=fs.alternate;z!==null&&av(z)}var j=L&(no|Zs|Qc|Td);switch(j){case no:{lv(fs),fs.flags&=~no;break}case T_:{lv(fs),fs.flags&=~no;var J=fs.alternate;cv(J,fs);break}case Td:{fs.flags&=~Td;break}case k4:{fs.flags&=~Td;var le=fs.alternate;cv(le,fs);break}case Zs:{var ce=fs.alternate;cv(ce,fs);break}case Qc:{WE(g,fs);break}}Or(),fs=fs.nextEffect}}function tT(g,v){for(;fs!==null;){fn(fs);var L=fs.flags;if(L&(Zs|M3)){var z=fs.alternate;jE(g,z,fs)}L&F4&&VE(fs),Or(),fs=fs.nextEffect}}function sd(){if(T6!==dm){var g=T6>S1?S1:T6;return T6=dm,R2(g,Ax)}return!1}function iT(g,v){L6.push(v,g),Kd||(Kd=!0,D2(S1,function(){return sd(),null}))}function vx(g,v){mv.push(v,g);{g.flags|=bu;var L=g.alternate;L!==null&&(L.flags|=bu)}Kd||(Kd=!0,D2(S1,function(){return sd(),null}))}function sT(g){var v=g.create;g.destroy=v()}function Ax(){if(Nu===null)return!1;var g=Nu,v=c0;if(Nu=null,c0=Ci,(Vs&(Yl|Ru))!==Hr)throw Error("Cannot flush passive effects while already rendering.");w1=!0;var L=Vs;Vs|=Ru;var z=vv(g),j=mv;mv=[];for(var J=0;J<j.length;J+=2){var le=j[J],ce=j[J+1],_e=le.destroy;le.destroy=void 0;{ce.flags&=~bu;var Oe=ce.alternate;Oe!==null&&(Oe.flags&=~bu)}if(typeof _e=="function"){if(fn(ce),fc(null,_e,null),pn()){if(ce===null)throw Error("Should be working on an effect.");var Fe=jl();h0(ce,Fe)}Or()}}var pt=L6;L6=[];for(var it=0;it<pt.length;it+=2){var Mt=pt[it],Jt=pt[it+1];{if(fn(Jt),fc(null,sT,null,Mt),pn()){if(Jt===null)throw Error("Should be working on an effect.");var Ai=jl();h0(Jt,Ai)}Or()}}for(var Ct=g.current.firstEffect;Ct!==null;){var Ft=Ct.nextEffect;Ct.nextEffect=null,Ct.flags&Qc&&Tv(Ct),Ct=Ft}return Av(z),k1(g,v),w1=!1,Vs=L,ao(),r4=Nu===null?0:r4+1,!0}function z1(g){return l0!==null&&l0.has(g)}function rT(g){l0===null?l0=new Set([g]):l0.add(g)}function nT(g){X2||(X2=!0,i4=g)}var aT=nT;function Cx(g,v,L){var z=S6(L,v),j=rv(g,z,zn);E1(g,j);var J=Za(),le=a4(g,zn);le!==null&&(cg(le,zn,J),id(le,J),Ch(le,zn))}function h0(g,v){if(g.tag===N){Cx(g,g,v);return}for(var L=g.return;L!==null;){if(L.tag===N){Cx(L,g,v);return}else if(L.tag===R){var z=L.type,j=L.stateNode;if(typeof z.getDerivedStateFromError=="function"||typeof j.componentDidCatch=="function"&&!z1(j)){var J=S6(v,g),le=LS(L,J,zn);E1(L,le);var ce=Za(),_e=a4(L,zn);if(_e!==null)cg(_e,zn,ce),id(_e,ce),Ch(_e,zn);else if(typeof j.componentDidCatch=="function"&&!z1(j))try{j.componentDidCatch(v,J)}catch{}return}}L=L.return}}function US(g,v,L){var z=g.pingCache;z!==null&&z.delete(v);var j=Za();Kb(g,L),on===g&&C1(So,L)&&(Xo===Ll||Xo===Sa&&j5(So)&&Tl()-E6<ms?Q2(g,Ci):pv=tn(pv,L)),id(g,j),Ch(g,L)}function Cv(g,v){v===Jc&&(v=XE(g));var L=Za(),z=a4(g,v);z!==null&&(cg(z,v,L),id(z,L),Ch(z,v))}function xx(g,v){var L=Jc,z;z=g.stateNode,z!==null&&z.delete(v),Cv(g,L)}function xv(g){return g<120?120:g<480?480:g<1080?1080:g<1920?1920:g<3e3?3e3:g<4320?4320:fv(g/1960)*1960}function bx(){if(N1>Vp)throw N1=0,qd=null,Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.");r4>s4&&(r4=0,M("Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render."))}function bv(){vc.flushLegacyContextWarning(),vc.flushPendingUnsafeLifecycleWarnings()}var Sv=null;function yv(g){{if((Vs&Yl)!==Hr||!(g.mode&(Lu|pp)))return;var v=g.tag;if(v!==I&&v!==N&&v!==R&&v!==O&&v!==ie&&v!==W&&v!==Q&&v!==fe)return;var L=Wi(g.type)||"ReactComponent";if(Sv!==null){if(Sv.has(L))return;Sv.add(L)}else Sv=new Set([L]);var z=sr;try{fn(g),M("Can't perform a React state update on a component that hasn't mounted yet. This indicates that you have a side-effect in your render function that asynchronously later calls tries to update the component. Move this work to useEffect instead.")}finally{z?fn(g):Or()}}}var h4=null;function O6(g){{var v=g.tag;if(v!==N&&v!==R&&v!==O&&v!==ie&&v!==W&&v!==Q&&v!==fe||(g.flags&bu)!==mn)return;var L=Wi(g.type)||"ReactComponent";if(h4!==null){if(h4.has(L))return;h4.add(L)}else h4=new Set([L]);if(!w1){var z=sr;try{fn(g),M("Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in %s.",v===R?"the componentWillUnmount method":"a useEffect cleanup function")}finally{z?fn(g):Or()}}}}var d4;{var jS=null;d4=function(g,v,L){var z=Rv(jS,v);try{return ZC(g,v,L)}catch(J){if(J!==null&&typeof J=="object"&&typeof J.then=="function")throw J;if(f8(),c6(),JC(v),Rv(v,z),v.mode&Ya&&Jh(v),fc(null,ZC,null,g,v,L),pn()){var j=jl();throw j}else throw J}}}var Mv=!1,Sx;Sx=new Set;function yx(g){if(qn&&(Vs&Yl)!==Hr&&!V8())switch(g.tag){case O:case ie:case Q:{var v=Oa&&Wi(Oa.type)||"Unknown",L=v;if(!Sx.has(L)){Sx.add(L);var z=Wi(g.type)||"Unknown";M("Cannot update a component (`%s`) while rendering a different component (`%s`). To locate the bad setState() call inside `%s`, follow the stack trace as described in https://reactjs.org/link/setstate-in-render",z,v,v)}break}case R:{Mv||(M("Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state."),Mv=!0);break}}}var f4={current:!1};function VS(g){if(Jm.current===!0&&f4.current!==!0){var v=sr;try{fn(g),M(`It looks like you're using the wrong act() around your test interactions.
Be sure to use the matching version of act() corresponding to your renderer:

// for react-dom:
import {act} from 'react-dom/test-utils';
// ...
act(() => ...);

// for react-test-renderer:
import TestRenderer from react-test-renderer';
const {act} = TestRenderer;
// ...
act(() => ...);`)}finally{v?fn(g):Or()}}}function p4(g){(g.mode&oo)!==Ha&&Jm.current===!1&&f4.current===!1&&M(`An update to %s ran an effect, but was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act`,Wi(g.type))}function Ev(g){if(Vs===Hr&&Jm.current===!1&&f4.current===!1){var v=sr;try{fn(g),M(`An update to %s inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act`,Wi(g.type))}finally{v?fn(g):Or()}}}var Mx=Ev,F1=!1;function GS(g){F1===!1&&A.unstable_flushAllWithoutAsserting===void 0&&(g.mode&Lu||g.mode&pp)&&(F1=!0,M(`In Concurrent or Sync modes, the "scheduler" module needs to be mocked to guarantee consistent behaviour across tests and browsers. For example, with jest: 
jest.mock('scheduler', () => require('scheduler/unstable_mock'));

For more info, visit https://reactjs.org/link/mock-scheduler`))}function d0(g,v){return v*1e3+g.interactionThreadID}function R6(g){td===null?td=[g]:td.push(g)}function wu(g,v,L){if(L.size>0){var z=g.pendingInteractionMap,j=z.get(v);j!=null?L.forEach(function(ce){j.has(ce)||ce.__count++,j.add(ce)}):(z.set(v,new Set(L)),L.forEach(function(ce){ce.__count++}));var J=S.__subscriberRef.current;if(J!==null){var le=d0(g,v);J.onWorkScheduled(L,le)}}}function Ch(g,v){wu(g,v,S.__interactionsRef.current)}function WS(g,v){var L=new Set;if(g.pendingInteractionMap.forEach(function(J,le){gc(v,le)&&J.forEach(function(ce){return L.add(ce)})}),g.memoizedInteractions=L,L.size>0){var z=S.__subscriberRef.current;if(z!==null){var j=d0(g,v);try{z.onWorkStarted(L,j)}catch(J){D2(iu,function(){throw J})}}}}function k1(g,v){var L=g.pendingLanes,z;try{if(z=S.__subscriberRef.current,z!==null&&g.memoizedInteractions.size>0){var j=d0(g,v);z.onWorkStopped(g.memoizedInteractions,j)}}catch(le){D2(iu,function(){throw le})}finally{var J=g.pendingInteractionMap;J.forEach(function(le,ce){gc(L,ce)||(J.delete(ce),le.forEach(function(_e){if(_e.__count--,z!==null&&_e.__count===0)try{z.onInteractionScheduledWorkCompleted(_e)}catch(Oe){D2(iu,function(){throw Oe})}}))})}}function Tv(g){g.sibling=null,g.stateNode=null}var Bu=null,Hp=null,HS=function(g){Bu=g};function Yp(g){{if(Bu===null)return g;var v=Bu(g);return v===void 0?g:v.current}}function Ex(g){return Yp(g)}function Xp(g){{if(Bu===null)return g;var v=Bu(g);if(v===void 0){if(g!=null&&typeof g.render=="function"){var L=Yp(g.render);if(g.render!==L){var z={$$typeof:fi,render:L};return g.displayName!==void 0&&(z.displayName=g.displayName),z}}return g}return v.current}}function YS(g,v){{if(Bu===null)return!1;var L=g.elementType,z=v.type,j=!1,J=typeof z=="object"&&z!==null?z.$$typeof:null;switch(g.tag){case R:{typeof z=="function"&&(j=!0);break}case O:{(typeof z=="function"||J===Ge)&&(j=!0);break}case ie:{(J===fi||J===Ge)&&(j=!0);break}case W:case Q:{(J===hs||J===Ge)&&(j=!0);break}default:return!1}if(j){var le=Bu(L);if(le!==void 0&&le===Bu(z))return!0}return!1}}function Lv(g){{if(Bu===null||typeof WeakSet!="function")return;Hp===null&&(Hp=new WeakSet),Hp.add(g)}}var Tx=function(g,v){{if(Bu===null)return;var L=v.staleFamilies,z=v.updatedFamilies;sd(),c4(function(){f0(g.current,z,L)})}},oT=function(g,v){{if(g.context!==Su)return;sd(),c4(function(){B6(v,g,null,null)})}};function f0(g,v,L){{var z=g.alternate,j=g.child,J=g.sibling,le=g.tag,ce=g.type,_e=null;switch(le){case O:case Q:case R:_e=ce;break;case ie:_e=ce.render;break}if(Bu===null)throw new Error("Expected resolveFamily to be set during hot reload.");var Oe=!1,Fe=!1;if(_e!==null){var pt=Bu(_e);pt!==void 0&&(L.has(pt)?Fe=!0:v.has(pt)&&(le===R?Fe=!0:Oe=!0))}Hp!==null&&(Hp.has(g)||z!==null&&Hp.has(z))&&(Fe=!0),Fe&&(g._debugNeedsRemount=!0),(Fe||Oe)&&Ka(g,zn,Co),j!==null&&!Fe&&f0(j,v,L),J!==null&&f0(J,v,L)}}var XS=function(g,v){{var L=new Set,z=new Set(v.map(function(j){return j.current}));return Lx(g.current,z,L),L}};function Lx(g,v,L){{var z=g.child,j=g.sibling,J=g.tag,le=g.type,ce=null;switch(J){case O:case Q:case R:ce=le;break;case ie:ce=le.render;break}var _e=!1;ce!==null&&v.has(ce)&&(_e=!0),_e?ZS(g,L):z!==null&&Lx(z,v,L),j!==null&&Lx(j,v,L)}}function ZS(g,v){{var L=xh(g,v);if(L)return;for(var z=g;;){switch(z.tag){case D:v.add(z.stateNode);return;case w:v.add(z.stateNode.containerInfo);return;case N:v.add(z.stateNode.containerInfo);return}if(z.return===null)throw new Error("Expected to reach root first.");z=z.return}}}function xh(g,v){for(var L=g,z=!1;;){if(L.tag===D)z=!0,v.add(L.stateNode);else if(L.child!==null){L.child.return=L,L=L.child;continue}if(L===g)return z;for(;L.sibling===null;){if(L.return===null||L.return===g)return z;L=L.return}L.sibling.return=L.return,L=L.sibling}return!1}var Zp;{Zp=!1;try{var KS=Object.preventExtensions({})}catch{Zp=!0}}var lT=1;function p0(g,v,L,z){this.tag=g,this.key=L,this.elementType=null,this.type=null,this.stateNode=null,this.return=null,this.child=null,this.sibling=null,this.index=0,this.ref=null,this.pendingProps=v,this.memoizedProps=null,this.updateQueue=null,this.memoizedState=null,this.dependencies=null,this.mode=z,this.flags=mn,this.nextEffect=null,this.firstEffect=null,this.lastEffect=null,this.lanes=Ci,this.childLanes=Ci,this.alternate=null,this.actualDuration=Number.NaN,this.actualStartTime=Number.NaN,this.selfBaseDuration=Number.NaN,this.treeBaseDuration=Number.NaN,this.actualDuration=0,this.actualStartTime=-1,this.selfBaseDuration=0,this.treeBaseDuration=0,this._debugID=lT++,this._debugSource=null,this._debugOwner=null,this._debugNeedsRemount=!1,this._debugHookTypes=null,!Zp&&typeof Object.preventExtensions=="function"&&Object.preventExtensions(this)}var bh=function(g,v,L,z){return new p0(g,v,L,z)};function Iv(g){var v=g.prototype;return!!(v&&v.isReactComponent)}function Ix(g){return typeof g=="function"&&!Iv(g)&&g.defaultProps===void 0}function Px(g){if(typeof g=="function")return Iv(g)?R:O;if(g!=null){var v=g.$$typeof;if(v===fi)return ie;if(v===hs)return W}return I}function zu(g,v){var L=g.alternate;L===null?(L=bh(g.tag,v,g.key,g.mode),L.elementType=g.elementType,L.type=g.type,L.stateNode=g.stateNode,L._debugID=g._debugID,L._debugSource=g._debugSource,L._debugOwner=g._debugOwner,L._debugHookTypes=g._debugHookTypes,L.alternate=g,g.alternate=L):(L.pendingProps=v,L.type=g.type,L.flags=mn,L.nextEffect=null,L.firstEffect=null,L.lastEffect=null,L.actualDuration=0,L.actualStartTime=-1),L.childLanes=g.childLanes,L.lanes=g.lanes,L.child=g.child,L.memoizedProps=g.memoizedProps,L.memoizedState=g.memoizedState,L.updateQueue=g.updateQueue;var z=g.dependencies;switch(L.dependencies=z===null?null:{lanes:z.lanes,firstContext:z.firstContext},L.sibling=g.sibling,L.index=g.index,L.ref=g.ref,L.selfBaseDuration=g.selfBaseDuration,L.treeBaseDuration=g.treeBaseDuration,L._debugNeedsRemount=g._debugNeedsRemount,L.tag){case I:case O:case Q:L.type=Yp(g.type);break;case R:L.type=Ex(g.type);break;case ie:L.type=Xp(g.type);break}return L}function cT(g,v){g.flags&=no,g.nextEffect=null,g.firstEffect=null,g.lastEffect=null;var L=g.alternate;if(L===null)g.childLanes=Ci,g.lanes=v,g.child=null,g.memoizedProps=null,g.memoizedState=null,g.updateQueue=null,g.dependencies=null,g.stateNode=null,g.selfBaseDuration=0,g.treeBaseDuration=0;else{g.childLanes=L.childLanes,g.lanes=L.lanes,g.child=L.child,g.memoizedProps=L.memoizedProps,g.memoizedState=L.memoizedState,g.updateQueue=L.updateQueue,g.type=L.type;var z=L.dependencies;g.dependencies=z===null?null:{lanes:z.lanes,firstContext:z.firstContext},g.selfBaseDuration=L.selfBaseDuration,g.treeBaseDuration=L.treeBaseDuration}return g}function uT(g){var v;return g===oS?v=pp|Lu|oo:g===c8?v=Lu|oo:v=Ha,JA&&(v|=Ya),bh(N,null,null,v)}function Ox(g,v,L,z,j,J){var le=I,ce=g;if(typeof g=="function")Iv(g)?(le=R,ce=Ex(ce)):ce=Yp(ce);else if(typeof g=="string")le=D;else e:switch(g){case Xs:return Kp(L.children,j,J,v);case ls:le=V,j|=TE;break;case ks:le=V,j|=oo;break;case hr:return Rx(L,j,J,v);case zi:return hT(L,j,J,v);case ts:return Pv(L,j,J,v);case ns:return D6(L,j,J,v);case Ss:return dT(L,j,J,v);case $t:default:{if(typeof g=="object"&&g!==null)switch(g.$$typeof){case fr:le=K;break e;case We:le=ee;break e;case fi:le=ie,ce=Xp(ce);break e;case hs:le=W;break e;case Ge:le=re,ce=null;break e;case Zt:le=fe;break e}var _e="";{(g===void 0||typeof g=="object"&&g!==null&&Object.keys(g).length===0)&&(_e+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Oe=z?Wi(z.type):null;Oe&&(_e+=`

Check the render method of \``+Oe+"`.")}throw Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: "+(g==null?g:typeof g)+"."+_e)}}var Fe=bh(le,L,v,j);return Fe.elementType=g,Fe.type=ce,Fe.lanes=J,Fe._debugOwner=z,Fe}function m4(g,v,L){var z=null;z=g._owner;var j=g.type,J=g.key,le=g.props,ce=Ox(j,J,le,z,v,L);return ce._debugSource=g._source,ce._debugOwner=g._owner,ce}function Kp(g,v,L,z){var j=bh(Y,g,z,v);return j.lanes=L,j}function Rx(g,v,L,z){typeof g.id!="string"&&M('Profiler must specify an "id" as a prop');var j=bh(ne,g,z,v|Ya);return j.elementType=hr,j.type=hr,j.lanes=L,j.stateNode={effectDuration:0,passiveEffectDuration:0},j}function hT(g,v,L,z){var j=bh(te,g,z,v);return j.type=zi,j.elementType=zi,j.lanes=L,j}function Pv(g,v,L,z){var j=bh(se,g,z,v);return j.type=ts,j.elementType=ts,j.lanes=L,j}function D6(g,v,L,z){var j=bh(Ae,g,z,v);return j.type=ns,j.elementType=ns,j.lanes=L,j}function dT(g,v,L,z){var j=bh(Se,g,z,v);return j.type=Ss,j.elementType=Ss,j.lanes=L,j}function Dx(g,v,L){var z=bh(k,g,null,v);return z.lanes=L,z}function fT(){var g=bh(D,null,null,Ha);return g.elementType="DELETED",g.type="DELETED",g}function Ov(g,v,L){var z=g.children!==null?g.children:[],j=bh(w,z,g.key,v);return j.lanes=L,j.stateNode={containerInfo:g.containerInfo,pendingChildren:null,implementation:g.implementation},j}function Rv(g,v){return g===null&&(g=bh(I,null,null,Ha)),g.tag=v.tag,g.key=v.key,g.elementType=v.elementType,g.type=v.type,g.stateNode=v.stateNode,g.return=v.return,g.child=v.child,g.sibling=v.sibling,g.index=v.index,g.ref=v.ref,g.pendingProps=v.pendingProps,g.memoizedProps=v.memoizedProps,g.updateQueue=v.updateQueue,g.memoizedState=v.memoizedState,g.dependencies=v.dependencies,g.mode=v.mode,g.flags=v.flags,g.nextEffect=v.nextEffect,g.firstEffect=v.firstEffect,g.lastEffect=v.lastEffect,g.lanes=v.lanes,g.childLanes=v.childLanes,g.alternate=v.alternate,g.actualDuration=v.actualDuration,g.actualStartTime=v.actualStartTime,g.selfBaseDuration=v.selfBaseDuration,g.treeBaseDuration=v.treeBaseDuration,g._debugID=v._debugID,g._debugSource=v._debugSource,g._debugOwner=v._debugOwner,g._debugNeedsRemount=v._debugNeedsRemount,g._debugHookTypes=v._debugHookTypes,g}function Nx(g,v,L){switch(this.tag=v,this.containerInfo=g,this.pendingChildren=null,this.current=null,this.pingCache=null,this.finishedWork=null,this.timeoutHandle=kA,this.context=null,this.pendingContext=null,this.hydrate=L,this.callbackNode=null,this.callbackPriority=Wh,this.eventTimes=z_(Ci),this.expirationTimes=z_(Co),this.pendingLanes=Ci,this.suspendedLanes=Ci,this.pingedLanes=Ci,this.expiredLanes=Ci,this.mutableReadLanes=Ci,this.finishedLanes=Ci,this.entangledLanes=Ci,this.entanglements=z_(Ci),this.mutableSourceEagerHydrationData=null,this.interactionThreadID=S.unstable_getThreadID(),this.memoizedInteractions=new Set,this.pendingInteractionMap=new Map,v){case c8:this._debugRootType="createBlockingRoot()";break;case oS:this._debugRootType="createRoot()";break;case L2:this._debugRootType="createLegacyRoot()";break}}function N6(g,v,L,z){var j=new Nx(g,v,L),J=uT(v);return j.current=J,J.stateNode=j,oC(J),j}function pT(g,v){var L=v._getVersion,z=L(v._source);g.mutableSourceEagerHydrationData==null?g.mutableSourceEagerHydrationData=[v,z]:g.mutableSourceEagerHydrationData.push(v,z)}function mT(g,v,L){var z=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:li,key:z==null?null:""+z,children:g,containerInfo:v,implementation:L}}var qp,w6;qp=!1,w6={};function J2(g){if(!g)return Su;var v=oa(g),L=Bd(v);if(v.tag===R){var z=v.type;if(uh(z))return QA(v,z,L)}return L}function wx(g,v){{var L=oa(g);if(L===void 0)throw typeof g.render=="function"?Error("Unable to find node on an unmounted component."):Error("Argument appears to not be a ReactComponent. Keys: "+Object.keys(g));var z=j4(L);if(z===null)return null;if(z.mode&oo){var j=Wi(L.type)||"Component";if(!w6[j]){w6[j]=!0;var J=sr;try{fn(z),L.mode&oo?M("%s is deprecated in StrictMode. %s was passed an instance of %s which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-node",v,v,j):M("%s is deprecated in StrictMode. %s was passed an instance of %s which renders StrictMode children. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-node",v,v,j)}finally{J?fn(J):Or()}}}return z.stateNode}}function gT(g,v,L,z){return N6(g,v,L)}function B6(g,v,L,z){lS(v,g);var j=v.current,J=Za();typeof jest<"u"&&(GS(j),VS(j));var le=B1(j),ce=J2(L);v.context===null?v.context=ce:v.pendingContext=ce,qn&&sr!==null&&!qp&&(qp=!0,M(`Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.

Check the render method of %s.`,Wi(sr.type)||"Unknown"));var _e=Vf(J,le);return _e.payload={element:g},z=z===void 0?null:z,z!==null&&(typeof z!="function"&&M("render(...): Expected the last optional `callback` argument to be a function. Instead received: %s.",z),_e.callback=z),E1(j,_e),Ka(j,le,J),le}function Bx(g){var v=g.current;if(!v.child)return null;switch(v.child.tag){case D:return v.child.stateNode;default:return v.child.stateNode}}function z6(g,v){var L=g.memoizedState;L!==null&&L.dehydrated!==null&&(L.retryLane=TM(L.retryLane,v))}function F6(g,v){z6(g,v);var L=g.alternate;L&&z6(L,v)}function qS(g){if(g.tag===te){var v=Za(),L=tg;Ka(g,L,v),F6(g,L)}}function _T(g){if(g.tag===te){var v=Za(),L=Va;Ka(g,L,v),F6(g,L)}}function QS(g){if(g.tag===te){var v=Za(),L=B1(g);Ka(g,L,v),F6(g,L)}}function JS(g,v){try{return v()}finally{}}function k6(g){var v=_M(g);return v===null?null:v.tag===ue?v.stateNode.instance:v.stateNode}var zx=function(g){return!1};function $S(g){return zx(g)}var Fx=null,U6=null,Dv=null,kx=null,Ux=null,jx=null,j6=null,Vx=null;{var Gx=function(g,v,L){var z=v[L],j=Array.isArray(g)?g.slice():x({},g);return L+1===v.length?(Array.isArray(j)?j.splice(z,1):delete j[z],j):(j[z]=Gx(g[z],v,L+1),j)},Nv=function(g,v){return Gx(g,v,0)},ey=function(g,v,L,z){var j=v[z],J=Array.isArray(g)?g.slice():x({},g);if(z+1===v.length){var le=L[z];J[le]=J[j],Array.isArray(J)?J.splice(j,1):delete J[j]}else J[j]=ey(g[j],v,L,z+1);return J},Wx=function(g,v,L){if(v.length!==L.length){b("copyWithRename() expects paths of the same length");return}else for(var z=0;z<L.length-1;z++)if(v[z]!==L[z]){b("copyWithRename() expects paths to be the same except for the deepest key");return}return ey(g,v,L,0)},ty=function(g,v,L,z){if(L>=v.length)return z;var j=v[L],J=Array.isArray(g)?g.slice():x({},g);return J[j]=ty(g[j],v,L+1,z),J},iy=function(g,v,L){return ty(g,v,0,L)},g4=function(g,v){for(var L=g.memoizedState;L!==null&&v>0;)L=L.next,v--;return L};Fx=function(g,v,L,z){var j=g4(g,v);if(j!==null){var J=iy(j.memoizedState,L,z);j.memoizedState=J,j.baseState=J,g.memoizedProps=x({},g.memoizedProps),Ka(g,zn,Co)}},U6=function(g,v,L){var z=g4(g,v);if(z!==null){var j=Nv(z.memoizedState,L);z.memoizedState=j,z.baseState=j,g.memoizedProps=x({},g.memoizedProps),Ka(g,zn,Co)}},Dv=function(g,v,L,z){var j=g4(g,v);if(j!==null){var J=Wx(j.memoizedState,L,z);j.memoizedState=J,j.baseState=J,g.memoizedProps=x({},g.memoizedProps),Ka(g,zn,Co)}},kx=function(g,v,L){g.pendingProps=iy(g.memoizedProps,v,L),g.alternate&&(g.alternate.pendingProps=g.pendingProps),Ka(g,zn,Co)},Ux=function(g,v){g.pendingProps=Nv(g.memoizedProps,v),g.alternate&&(g.alternate.pendingProps=g.pendingProps),Ka(g,zn,Co)},jx=function(g,v,L){g.pendingProps=Wx(g.memoizedProps,v,L),g.alternate&&(g.alternate.pendingProps=g.pendingProps),Ka(g,zn,Co)},j6=function(g){Ka(g,zn,Co)},Vx=function(g){zx=g}}function vT(g){var v=j4(g);return v===null?null:v.stateNode}function sy(g){return null}function Qp(){return sr}function AT(g){var v=g.findFiberByHostInstance,L=E.ReactCurrentDispatcher;return $A({bundleType:g.bundleType,version:g.version,rendererPackageName:g.rendererPackageName,rendererConfig:g.rendererConfig,overrideHookState:Fx,overrideHookStateDeletePath:U6,overrideHookStateRenamePath:Dv,overrideProps:kx,overridePropsDeletePath:Ux,overridePropsRenamePath:jx,setSuspenseHandler:Vx,scheduleUpdate:j6,currentDispatcherRef:L,findHostInstanceByFiber:vT,findFiberByHostInstance:v||sy,findHostInstancesForRefresh:XS,scheduleRefresh:Tx,scheduleRoot:oT,setRefreshHandler:HS,getCurrentFiber:Qp})}function V6(g,v,L){this._internalRoot=ry(g,v,L)}V6.prototype.render=function(g){var v=this._internalRoot;{typeof arguments[1]=="function"&&M("render(...): does not support the second callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().");var L=v.containerInfo;if(L.nodeType!==va){var z=k6(v.current);z&&z.parentNode!==L&&M("render(...): It looks like the React-rendered content of the root container was removed without using React. This is not supported and will cause errors. Instead, call root.unmount() to empty a root's container.")}}B6(g,v,null,null)},V6.prototype.unmount=function(){typeof arguments[0]=="function"&&M("unmount(...): does not support a callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().");var g=this._internalRoot,v=g.containerInfo;B6(null,g,null,function(){Bg(v)})};function ry(g,v,L){var z=L!=null&&L.hydrate===!0;L!=null&&L.hydrationOptions;var j=L!=null&&L.hydrationOptions!=null&&L.hydrationOptions.mutableSources||null,J=gT(g,v,z);op(J.current,g),g.nodeType;{var le=g.nodeType===va?g.parentNode:g;J0(le)}if(j)for(var ce=0;ce<j.length;ce++){var _e=j[ce];pT(J,_e)}return J}function wv(g,v){return new V6(g,L2,v)}function Jp(g){return!!(g&&(g.nodeType===ro||g.nodeType===_o||g.nodeType===eh||g.nodeType===va&&g.nodeValue===" react-mount-point-unstable "))}var ny=E.ReactCurrentOwner,ay,_4=!1;ay=function(g){if(g._reactRootContainer&&g.nodeType!==va){var v=k6(g._reactRootContainer._internalRoot.current);v&&v.parentNode!==g&&M("render(...): It looks like the React-rendered content of this container was removed without using React. This is not supported and will cause errors. Instead, call ReactDOM.unmountComponentAtNode to empty a container.")}var L=!!g._reactRootContainer,z=Bv(g),j=!!(z&&T2(z));j&&!L&&M("render(...): Replacing React-rendered children with a new root component. If you intended to update the children of this node, you should instead have the existing children update their state and render the new components instead of calling ReactDOM.render."),g.nodeType===ro&&g.tagName&&g.tagName.toUpperCase()==="BODY"&&M("render(): Rendering components directly into document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try rendering into a container element created for your app.")};function Bv(g){return g?g.nodeType===_o?g.documentElement:g.firstChild:null}function CT(g){var v=Bv(g);return!!(v&&v.nodeType===ro&&v.hasAttribute(Kt))}function Hx(g,v){var L=v||CT(g);if(!L)for(var z=!1,j;j=g.lastChild;)!z&&j.nodeType===ro&&j.hasAttribute(Kt)&&(z=!0,M("render(): Target node has markup rendered by React, but there are unrelated nodes as well. This is most commonly caused by white-space inserted around server-rendered markup.")),g.removeChild(j);return L&&!v&&!_4&&(_4=!0,b("render(): Calling ReactDOM.render() to hydrate server-rendered markup will stop working in React v18. Replace the ReactDOM.render() call with ReactDOM.hydrate() if you want React to attach to the server HTML.")),wv(g,L?{hydrate:!0}:void 0)}function xT(g,v){g!==null&&typeof g!="function"&&M("%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.",v,g)}function G6(g,v,L,z,j){ay(L),xT(j===void 0?null:j,"render");var J=L._reactRootContainer,le;if(J){if(le=J._internalRoot,typeof j=="function"){var _e=j;j=function(){var Oe=Bx(le);_e.call(Oe)}}B6(v,le,g,j)}else{if(J=L._reactRootContainer=Hx(L,z),le=J._internalRoot,typeof j=="function"){var ce=j;j=function(){var Oe=Bx(le);ce.call(Oe)}}px(function(){B6(v,le,g,j)})}return Bx(le)}function oy(g){{var v=ny.current;if(v!==null&&v.stateNode!==null){var L=v.stateNode._warnedAboutRefsInRender;L||M("%s is accessing findDOMNode inside its render(). render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",Wi(v.type)||"A component"),v.stateNode._warnedAboutRefsInRender=!0}}return g==null?null:g.nodeType===ro?g:wx(g,"findDOMNode")}function ly(g,v,L){if(!Jp(v))throw Error("Target container is not a DOM element.");{var z=am(v)&&v._reactRootContainer===void 0;z&&M("You are calling ReactDOM.hydrate() on a container that was previously passed to ReactDOM.createRoot(). This is not supported. Did you mean to call createRoot(container, {hydrate: true}).render(element)?")}return G6(null,g,v,!0,L)}function cy(g,v,L){if(!Jp(v))throw Error("Target container is not a DOM element.");{var z=am(v)&&v._reactRootContainer===void 0;z&&M("You are calling ReactDOM.render() on a container that was previously passed to ReactDOM.createRoot(). This is not supported. Did you mean to call root.render(element)?")}return G6(null,g,v,!1,L)}function bT(g,v,L,z){if(!Jp(L))throw Error("Target container is not a DOM element.");if(!(g!=null&&Aa(g)))throw Error("parentComponent must be a valid React Component");return G6(g,v,L,!1,z)}function uy(g){if(!Jp(g))throw Error("unmountComponentAtNode(...): Target container is not a DOM element.");{var v=am(g)&&g._reactRootContainer===void 0;v&&M("You are calling ReactDOM.unmountComponentAtNode() on a container that was previously passed to ReactDOM.createRoot(). This is not supported. Did you mean to call root.unmount()?")}if(g._reactRootContainer){{var L=Bv(g),z=L&&!T2(L);z&&M("unmountComponentAtNode(): The node you're attempting to unmount was rendered by another copy of React.")}return px(function(){G6(null,null,g,!1,function(){g._reactRootContainer=null,Bg(g)})}),!0}else{{var j=Bv(g),J=!!(j&&T2(j)),le=g.nodeType===ro&&Jp(g.parentNode)&&!!g.parentNode._reactRootContainer;J&&M("unmountComponentAtNode(): The node you're attempting to unmount was rendered by React and is not a top-level container. %s",le?"You may have accidentally passed in a React root node instead of its container.":"Instead, have the parent component update its state and rerender in order to remove this component.")}return!1}}Db(qS),P5(_T),v2(QS),Cf(JS);var hy=!1;(typeof Map!="function"||Map.prototype==null||typeof Map.prototype.forEach!="function"||typeof Set!="function"||Set.prototype==null||typeof Set.prototype.clear!="function"||typeof Set.prototype.forEach!="function")&&M("React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),As(oE),p1(o4,l4,NS,fx);function Yx(g,v){var L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;if(!Jp(v))throw Error("Target container is not a DOM element.");return mT(g,v,null,L)}function C(g,v,L,z){return bT(g,v,L,z)}function y(g,v){var L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;return hy||(hy=!0,b('The ReactDOM.unstable_createPortal() alias has been deprecated, and will be removed in React 18+. Update your code to use ReactDOM.createPortal() instead. It has the exact same API, but without the "unstable_" prefix.')),Yx(g,v,L)}var B={Events:[T2,wf,lp,Cs,Ys,sd,f4]},U=AT({findFiberByHostInstance:E2,bundleType:1,version:Tu,rendererPackageName:"react-dom"});if(!U&&Qe&&window.top===window.self&&(navigator.userAgent.indexOf("Chrome")>-1&&navigator.userAgent.indexOf("Edge")===-1||navigator.userAgent.indexOf("Firefox")>-1)){var Z=window.location.protocol;/^(https?|file):$/.test(Z)&&console.info("%cDownload the React DevTools for a better development experience: https://reactjs.org/link/react-devtools"+(Z==="file:"?`
You might need to use a local HTTP server (instead of file://): https://reactjs.org/link/react-devtools-faq`:""),"font-weight:bold")}_.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=B,_.createPortal=Yx,_.findDOMNode=oy,_.flushSync=c4,_.hydrate=ly,_.render=cy,_.unmountComponentAtNode=uy,_.unstable_batchedUpdates=o4,_.unstable_createPortal=y,_.unstable_renderSubtreeIntoContainer=C,_.version=Tu})()},"../../../../node_modules/react-dom/index.js":(m,_,d)=>{m.exports=d("../../../../node_modules/react-dom/cjs/react-dom.development.js")},"../../../../node_modules/react/cjs/react-jsx-runtime.development.js":(m,_,d)=>{/** @license React v17.0.2
 * react-jsx-runtime.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */(function(){var h=d("../../../../node_modules/react/index.js"),x=d("../../../../node_modules/object-assign/index.js"),A=60103,S=60106;_.Fragment=60107;var E=60108,b=60114,M=60109,T=60110,O=60112,R=60113,I=60120,N=60115,w=60116,D=60121,k=60122,Y=60117,V=60129,ee=60131;if(typeof Symbol=="function"&&Symbol.for){var K=Symbol.for;A=K("react.element"),S=K("react.portal"),_.Fragment=K("react.fragment"),E=K("react.strict_mode"),b=K("react.profiler"),M=K("react.provider"),T=K("react.context"),O=K("react.forward_ref"),R=K("react.suspense"),I=K("react.suspense_list"),N=K("react.memo"),w=K("react.lazy"),D=K("react.block"),k=K("react.server.block"),Y=K("react.fundamental"),K("react.scope"),K("react.opaque.id"),V=K("react.debug_trace_mode"),K("react.offscreen"),ee=K("react.legacy_hidden")}var ie=typeof Symbol=="function"&&Symbol.iterator,ne="@@iterator";function te(Ge){if(Ge===null||typeof Ge!="object")return null;var Zt=ie&&Ge[ie]||Ge[ne];return typeof Zt=="function"?Zt:null}var W=h.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function Q(Ge){{for(var Zt=arguments.length,$t=new Array(Zt>1?Zt-1:0),Ui=1;Ui<Zt;Ui++)$t[Ui-1]=arguments[Ui];re("error",Ge,$t)}}function re(Ge,Zt,$t){{var Ui=W.ReactDebugCurrentFrame,ls=Ui.getStackAddendum();ls!==""&&(Zt+="%s",$t=$t.concat([ls]));var ns=$t.map(function(Ss){return""+Ss});ns.unshift("Warning: "+Zt),Function.prototype.apply.call(console[Ge],console,ns)}}var oe=!1;function X(Ge){return!!(typeof Ge=="string"||typeof Ge=="function"||Ge===_.Fragment||Ge===b||Ge===V||Ge===E||Ge===R||Ge===I||Ge===ee||oe||typeof Ge=="object"&&Ge!==null&&(Ge.$$typeof===w||Ge.$$typeof===N||Ge.$$typeof===M||Ge.$$typeof===T||Ge.$$typeof===O||Ge.$$typeof===Y||Ge.$$typeof===D||Ge[0]===k))}function se(Ge,Zt,$t){var Ui=Zt.displayName||Zt.name||"";return Ge.displayName||(Ui!==""?$t+"("+Ui+")":$t)}function ue(Ge){return Ge.displayName||"Context"}function he(Ge){if(Ge==null)return null;if(typeof Ge.tag=="number"&&Q("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof Ge=="function")return Ge.displayName||Ge.name||null;if(typeof Ge=="string")return Ge;switch(Ge){case _.Fragment:return"Fragment";case S:return"Portal";case b:return"Profiler";case E:return"StrictMode";case R:return"Suspense";case I:return"SuspenseList"}if(typeof Ge=="object")switch(Ge.$$typeof){case T:var Zt=Ge;return ue(Zt)+".Consumer";case M:var $t=Ge;return ue($t._context)+".Provider";case O:return se(Ge,Ge.render,"ForwardRef");case N:return he(Ge.type);case D:return he(Ge._render);case w:{var Ui=Ge,ls=Ui._payload,ns=Ui._init;try{return he(ns(ls))}catch{return null}}}return null}var fe=0,Ae,Se,we,ke,st,Ve,Ke;function ct(){}ct.__reactDisabledLog=!0;function nt(){{if(fe===0){Ae=console.log,Se=console.info,we=console.warn,ke=console.error,st=console.group,Ve=console.groupCollapsed,Ke=console.groupEnd;var Ge={configurable:!0,enumerable:!0,value:ct,writable:!0};Object.defineProperties(console,{info:Ge,log:Ge,warn:Ge,error:Ge,group:Ge,groupCollapsed:Ge,groupEnd:Ge})}fe++}}function at(){{if(fe--,fe===0){var Ge={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:x({},Ge,{value:Ae}),info:x({},Ge,{value:Se}),warn:x({},Ge,{value:we}),error:x({},Ge,{value:ke}),group:x({},Ge,{value:st}),groupCollapsed:x({},Ge,{value:Ve}),groupEnd:x({},Ge,{value:Ke})})}fe<0&&Q("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var xt=W.ReactCurrentDispatcher,Qe;function kt(Ge,Zt,$t){{if(Qe===void 0)try{throw Error()}catch(ls){var Ui=ls.stack.trim().match(/\n( *(at )?)/);Qe=Ui&&Ui[1]||""}return`
`+Qe+Ge}}var ot=!1,At;{var Me=typeof WeakMap=="function"?WeakMap:Map;At=new Me}function je(Ge,Zt){if(!Ge||ot)return"";{var $t=At.get(Ge);if($t!==void 0)return $t}var Ui;ot=!0;var ls=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var ns;ns=xt.current,xt.current=null,nt();try{if(Zt){var Ss=function(){throw Error()};if(Object.defineProperty(Ss.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Ss,[])}catch(Hn){Ui=Hn}Reflect.construct(Ge,[],Ss)}else{try{Ss.call()}catch(Hn){Ui=Hn}Ge.call(Ss.prototype)}}else{try{throw Error()}catch(Hn){Ui=Hn}Ge()}}catch(Hn){if(Hn&&Ui&&typeof Hn.stack=="string"){for(var qi=Hn.stack.split(`
`),pr=Ui.stack.split(`
`),Js=qi.length-1,ir=pr.length-1;Js>=1&&ir>=0&&qi[Js]!==pr[ir];)ir--;for(;Js>=1&&ir>=0;Js--,ir--)if(qi[Js]!==pr[ir]){if(Js!==1||ir!==1)do if(Js--,ir--,ir<0||qi[Js]!==pr[ir]){var hn=`
`+qi[Js].replace(" at new "," at ");return typeof Ge=="function"&&At.set(Ge,hn),hn}while(Js>=1&&ir>=0);break}}}finally{ot=!1,xt.current=ns,at(),Error.prepareStackTrace=ls}var ra=Ge?Ge.displayName||Ge.name:"",ka=ra?kt(ra):"";return typeof Ge=="function"&&At.set(Ge,ka),ka}function rt(Ge,Zt,$t){return je(Ge,!1)}function yt(Ge){var Zt=Ge.prototype;return!!(Zt&&Zt.isReactComponent)}function Rt(Ge,Zt,$t){if(Ge==null)return"";if(typeof Ge=="function")return je(Ge,yt(Ge));if(typeof Ge=="string")return kt(Ge);switch(Ge){case R:return kt("Suspense");case I:return kt("SuspenseList")}if(typeof Ge=="object")switch(Ge.$$typeof){case O:return rt(Ge.render);case N:return Rt(Ge.type,Zt,$t);case D:return rt(Ge._render);case w:{var Ui=Ge,ls=Ui._payload,ns=Ui._init;try{return Rt(ns(ls),Zt,$t)}catch{}}}return""}var Nt={},Kt=W.ReactDebugCurrentFrame;function si(Ge){if(Ge){var Zt=Ge._owner,$t=Rt(Ge.type,Ge._source,Zt?Zt.type:null);Kt.setExtraStackFrame($t)}else Kt.setExtraStackFrame(null)}function Pi(Ge,Zt,$t,Ui,ls){{var ns=Function.call.bind(Object.prototype.hasOwnProperty);for(var Ss in Ge)if(ns(Ge,Ss)){var qi=void 0;try{if(typeof Ge[Ss]!="function"){var pr=Error((Ui||"React class")+": "+$t+" type `"+Ss+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof Ge[Ss]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw pr.name="Invariant Violation",pr}qi=Ge[Ss](Zt,Ss,Ui,$t,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(Js){qi=Js}qi&&!(qi instanceof Error)&&(si(ls),Q("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",Ui||"React class",$t,Ss,typeof qi),si(null)),qi instanceof Error&&!(qi.message in Nt)&&(Nt[qi.message]=!0,si(ls),Q("Failed %s type: %s",$t,qi.message),si(null))}}}var gi=W.ReactCurrentOwner,bi=Object.prototype.hasOwnProperty,wi={key:!0,ref:!0,__self:!0,__source:!0},Ni,qt;function ci(Ge){if(bi.call(Ge,"ref")){var Zt=Object.getOwnPropertyDescriptor(Ge,"ref").get;if(Zt&&Zt.isReactWarning)return!1}return Ge.ref!==void 0}function qe(Ge){if(bi.call(Ge,"key")){var Zt=Object.getOwnPropertyDescriptor(Ge,"key").get;if(Zt&&Zt.isReactWarning)return!1}return Ge.key!==void 0}function ri(Ge,Zt){typeof Ge.ref=="string"&&gi.current}function Ot(Ge,Zt){{var $t=function(){Ni||(Ni=!0,Q("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",Zt))};$t.isReactWarning=!0,Object.defineProperty(Ge,"key",{get:$t,configurable:!0})}}function mt(Ge,Zt){{var $t=function(){qt||(qt=!0,Q("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",Zt))};$t.isReactWarning=!0,Object.defineProperty(Ge,"ref",{get:$t,configurable:!0})}}var Ye=function(Ge,Zt,$t,Ui,ls,ns,Ss){var qi={$$typeof:A,type:Ge,key:Zt,ref:$t,props:Ss,_owner:ns};return qi._store={},Object.defineProperty(qi._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(qi,"_self",{configurable:!1,enumerable:!1,writable:!1,value:Ui}),Object.defineProperty(qi,"_source",{configurable:!1,enumerable:!1,writable:!1,value:ls}),Object.freeze&&(Object.freeze(qi.props),Object.freeze(qi)),qi};function Tt(Ge,Zt,$t,Ui,ls){{var ns,Ss={},qi=null,pr=null;$t!==void 0&&(qi=""+$t),qe(Zt)&&(qi=""+Zt.key),ci(Zt)&&(pr=Zt.ref,ri(Zt,ls));for(ns in Zt)bi.call(Zt,ns)&&!wi.hasOwnProperty(ns)&&(Ss[ns]=Zt[ns]);if(Ge&&Ge.defaultProps){var Js=Ge.defaultProps;for(ns in Js)Ss[ns]===void 0&&(Ss[ns]=Js[ns])}if(qi||pr){var ir=typeof Ge=="function"?Ge.displayName||Ge.name||"Unknown":Ge;qi&&Ot(Ss,ir),pr&&mt(Ss,ir)}return Ye(Ge,qi,pr,ls,Ui,gi.current,Ss)}}var Ut=W.ReactCurrentOwner,oi=W.ReactDebugCurrentFrame;function ji(Ge){if(Ge){var Zt=Ge._owner,$t=Rt(Ge.type,Ge._source,Zt?Zt.type:null);oi.setExtraStackFrame($t)}else oi.setExtraStackFrame(null)}var ki;ki=!1;function os(Ge){return typeof Ge=="object"&&Ge!==null&&Ge.$$typeof===A}function bs(){{if(Ut.current){var Ge=he(Ut.current.type);if(Ge)return`

Check the render method of \``+Ge+"`."}return""}}function hi(Ge){return""}var Oi={};function li(Ge){{var Zt=bs();if(!Zt){var $t=typeof Ge=="string"?Ge:Ge.displayName||Ge.name;$t&&(Zt=`

Check the top-level render call using <`+$t+">.")}return Zt}}function Xs(Ge,Zt){{if(!Ge._store||Ge._store.validated||Ge.key!=null)return;Ge._store.validated=!0;var $t=li(Zt);if(Oi[$t])return;Oi[$t]=!0;var Ui="";Ge&&Ge._owner&&Ge._owner!==Ut.current&&(Ui=" It was passed a child from "+he(Ge._owner.type)+"."),ji(Ge),Q('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',$t,Ui),ji(null)}}function ks(Ge,Zt){{if(typeof Ge!="object")return;if(Array.isArray(Ge))for(var $t=0;$t<Ge.length;$t++){var Ui=Ge[$t];os(Ui)&&Xs(Ui,Zt)}else if(os(Ge))Ge._store&&(Ge._store.validated=!0);else if(Ge){var ls=te(Ge);if(typeof ls=="function"&&ls!==Ge.entries)for(var ns=ls.call(Ge),Ss;!(Ss=ns.next()).done;)os(Ss.value)&&Xs(Ss.value,Zt)}}}function hr(Ge){{var Zt=Ge.type;if(Zt==null||typeof Zt=="string")return;var $t;if(typeof Zt=="function")$t=Zt.propTypes;else if(typeof Zt=="object"&&(Zt.$$typeof===O||Zt.$$typeof===N))$t=Zt.propTypes;else return;if($t){var Ui=he(Zt);Pi($t,Ge.props,"prop",Ui,Ge)}else if(Zt.PropTypes!==void 0&&!ki){ki=!0;var ls=he(Zt);Q("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",ls||"Unknown")}typeof Zt.getDefaultProps=="function"&&!Zt.getDefaultProps.isReactClassApproved&&Q("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function fr(Ge){{for(var Zt=Object.keys(Ge.props),$t=0;$t<Zt.length;$t++){var Ui=Zt[$t];if(Ui!=="children"&&Ui!=="key"){ji(Ge),Q("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",Ui),ji(null);break}}Ge.ref!==null&&(ji(Ge),Q("Invalid attribute `ref` supplied to `React.Fragment`."),ji(null))}}function We(Ge,Zt,$t,Ui,ls,ns){{var Ss=X(Ge);if(!Ss){var qi="";(Ge===void 0||typeof Ge=="object"&&Ge!==null&&Object.keys(Ge).length===0)&&(qi+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var pr=hi();pr?qi+=pr:qi+=bs();var Js;Ge===null?Js="null":Array.isArray(Ge)?Js="array":Ge!==void 0&&Ge.$$typeof===A?(Js="<"+(he(Ge.type)||"Unknown")+" />",qi=" Did you accidentally export a JSX literal instead of a component?"):Js=typeof Ge,Q("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Js,qi)}var ir=Tt(Ge,Zt,$t,ls,ns);if(ir==null)return ir;if(Ss){var hn=Zt.children;if(hn!==void 0)if(Ui)if(Array.isArray(hn)){for(var ra=0;ra<hn.length;ra++)ks(hn[ra],Ge);Object.freeze&&Object.freeze(hn)}else Q("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else ks(hn,Ge)}return Ge===_.Fragment?fr(ir):hr(ir),ir}}function fi(Ge,Zt,$t){return We(Ge,Zt,$t,!0)}function zi(Ge,Zt,$t){return We(Ge,Zt,$t,!1)}var ts=zi,hs=fi;_.jsx=ts,_.jsxs=hs})()},"../../../../node_modules/react/cjs/react.development.js":(m,_,d)=>{/** @license React v17.0.2
 * react.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */(function(){var h=d("../../../../node_modules/object-assign/index.js"),x="17.0.2",A=60103,S=60106;_.Fragment=60107,_.StrictMode=60108,_.Profiler=60114;var E=60109,b=60110,M=60112;_.Suspense=60113;var T=60120,O=60115,R=60116,I=60121,N=60122,w=60117,D=60129,k=60131;if(typeof Symbol=="function"&&Symbol.for){var Y=Symbol.for;A=Y("react.element"),S=Y("react.portal"),_.Fragment=Y("react.fragment"),_.StrictMode=Y("react.strict_mode"),_.Profiler=Y("react.profiler"),E=Y("react.provider"),b=Y("react.context"),M=Y("react.forward_ref"),_.Suspense=Y("react.suspense"),T=Y("react.suspense_list"),O=Y("react.memo"),R=Y("react.lazy"),I=Y("react.block"),N=Y("react.server.block"),w=Y("react.fundamental"),Y("react.scope"),Y("react.opaque.id"),D=Y("react.debug_trace_mode"),Y("react.offscreen"),k=Y("react.legacy_hidden")}var V=typeof Symbol=="function"&&Symbol.iterator,ee="@@iterator";function K(Ee){if(Ee===null||typeof Ee!="object")return null;var $e=V&&Ee[V]||Ee[ee];return typeof $e=="function"?$e:null}var ie={current:null},ne={transition:0},te={current:null},W={},Q=null;function re(Ee){Q=Ee}W.setExtraStackFrame=function(Ee){Q=Ee},W.getCurrentStack=null,W.getStackAddendum=function(){var Ee="";Q&&(Ee+=Q);var $e=W.getCurrentStack;return $e&&(Ee+=$e()||""),Ee};var oe={current:!1},X={ReactCurrentDispatcher:ie,ReactCurrentBatchConfig:ne,ReactCurrentOwner:te,IsSomeRendererActing:oe,assign:h};X.ReactDebugCurrentFrame=W;function se(Ee){{for(var $e=arguments.length,bt=new Array($e>1?$e-1:0),Wt=1;Wt<$e;Wt++)bt[Wt-1]=arguments[Wt];he("warn",Ee,bt)}}function ue(Ee){{for(var $e=arguments.length,bt=new Array($e>1?$e-1:0),Wt=1;Wt<$e;Wt++)bt[Wt-1]=arguments[Wt];he("error",Ee,bt)}}function he(Ee,$e,bt){{var Wt=X.ReactDebugCurrentFrame,vi=Wt.getStackAddendum();vi!==""&&($e+="%s",bt=bt.concat([vi]));var es=bt.map(function(Qi){return""+Qi});es.unshift("Warning: "+$e),Function.prototype.apply.call(console[Ee],console,es)}}var fe={};function Ae(Ee,$e){{var bt=Ee.constructor,Wt=bt&&(bt.displayName||bt.name)||"ReactClass",vi=Wt+"."+$e;if(fe[vi])return;ue("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",$e,Wt),fe[vi]=!0}}var Se={isMounted:function(Ee){return!1},enqueueForceUpdate:function(Ee,$e,bt){Ae(Ee,"forceUpdate")},enqueueReplaceState:function(Ee,$e,bt,Wt){Ae(Ee,"replaceState")},enqueueSetState:function(Ee,$e,bt,Wt){Ae(Ee,"setState")}},we={};Object.freeze(we);function ke(Ee,$e,bt){this.props=Ee,this.context=$e,this.refs=we,this.updater=bt||Se}ke.prototype.isReactComponent={},ke.prototype.setState=function(Ee,$e){if(!(typeof Ee=="object"||typeof Ee=="function"||Ee==null))throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,Ee,$e,"setState")},ke.prototype.forceUpdate=function(Ee){this.updater.enqueueForceUpdate(this,Ee,"forceUpdate")};{var st={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},Ve=function(Ee,$e){Object.defineProperty(ke.prototype,Ee,{get:function(){se("%s(...) is deprecated in plain JavaScript React classes. %s",$e[0],$e[1])}})};for(var Ke in st)st.hasOwnProperty(Ke)&&Ve(Ke,st[Ke])}function ct(){}ct.prototype=ke.prototype;function nt(Ee,$e,bt){this.props=Ee,this.context=$e,this.refs=we,this.updater=bt||Se}var at=nt.prototype=new ct;at.constructor=nt,h(at,ke.prototype),at.isPureReactComponent=!0;function xt(){var Ee={current:null};return Object.seal(Ee),Ee}function Qe(Ee,$e,bt){var Wt=$e.displayName||$e.name||"";return Ee.displayName||(Wt!==""?bt+"("+Wt+")":bt)}function kt(Ee){return Ee.displayName||"Context"}function ot(Ee){if(Ee==null)return null;if(typeof Ee.tag=="number"&&ue("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof Ee=="function")return Ee.displayName||Ee.name||null;if(typeof Ee=="string")return Ee;switch(Ee){case _.Fragment:return"Fragment";case S:return"Portal";case _.Profiler:return"Profiler";case _.StrictMode:return"StrictMode";case _.Suspense:return"Suspense";case T:return"SuspenseList"}if(typeof Ee=="object")switch(Ee.$$typeof){case b:var $e=Ee;return kt($e)+".Consumer";case E:var bt=Ee;return kt(bt._context)+".Provider";case M:return Qe(Ee,Ee.render,"ForwardRef");case O:return ot(Ee.type);case I:return ot(Ee._render);case R:{var Wt=Ee,vi=Wt._payload,es=Wt._init;try{return ot(es(vi))}catch{return null}}}return null}var At=Object.prototype.hasOwnProperty,Me={key:!0,ref:!0,__self:!0,__source:!0},je,rt,yt;yt={};function Rt(Ee){if(At.call(Ee,"ref")){var $e=Object.getOwnPropertyDescriptor(Ee,"ref").get;if($e&&$e.isReactWarning)return!1}return Ee.ref!==void 0}function Nt(Ee){if(At.call(Ee,"key")){var $e=Object.getOwnPropertyDescriptor(Ee,"key").get;if($e&&$e.isReactWarning)return!1}return Ee.key!==void 0}function Kt(Ee,$e){var bt=function(){je||(je=!0,ue("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",$e))};bt.isReactWarning=!0,Object.defineProperty(Ee,"key",{get:bt,configurable:!0})}function si(Ee,$e){var bt=function(){rt||(rt=!0,ue("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",$e))};bt.isReactWarning=!0,Object.defineProperty(Ee,"ref",{get:bt,configurable:!0})}function Pi(Ee){if(typeof Ee.ref=="string"&&te.current&&Ee.__self&&te.current.stateNode!==Ee.__self){var $e=ot(te.current.type);yt[$e]||(ue('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',$e,Ee.ref),yt[$e]=!0)}}var gi=function(Ee,$e,bt,Wt,vi,es,Qi){var Ji={$$typeof:A,type:Ee,key:$e,ref:bt,props:Qi,_owner:es};return Ji._store={},Object.defineProperty(Ji._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(Ji,"_self",{configurable:!1,enumerable:!1,writable:!1,value:Wt}),Object.defineProperty(Ji,"_source",{configurable:!1,enumerable:!1,writable:!1,value:vi}),Object.freeze&&(Object.freeze(Ji.props),Object.freeze(Ji)),Ji};function bi(Ee,$e,bt){var Wt,vi={},es=null,Qi=null,Ji=null,Us=null;if($e!=null){Rt($e)&&(Qi=$e.ref,Pi($e)),Nt($e)&&(es=""+$e.key),Ji=$e.__self===void 0?null:$e.__self,Us=$e.__source===void 0?null:$e.__source;for(Wt in $e)At.call($e,Wt)&&!Me.hasOwnProperty(Wt)&&(vi[Wt]=$e[Wt])}var er=arguments.length-2;if(er===1)vi.children=bt;else if(er>1){for(var Cr=Array(er),rr=0;rr<er;rr++)Cr[rr]=arguments[rr+2];Object.freeze&&Object.freeze(Cr),vi.children=Cr}if(Ee&&Ee.defaultProps){var xr=Ee.defaultProps;for(Wt in xr)vi[Wt]===void 0&&(vi[Wt]=xr[Wt])}if(es||Qi){var Nn=typeof Ee=="function"?Ee.displayName||Ee.name||"Unknown":Ee;es&&Kt(vi,Nn),Qi&&si(vi,Nn)}return gi(Ee,es,Qi,Ji,Us,te.current,vi)}function wi(Ee,$e){var bt=gi(Ee.type,$e,Ee.ref,Ee._self,Ee._source,Ee._owner,Ee.props);return bt}function Ni(Ee,$e,bt){if(Ee==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+Ee+".");var Wt,vi=h({},Ee.props),es=Ee.key,Qi=Ee.ref,Ji=Ee._self,Us=Ee._source,er=Ee._owner;if($e!=null){Rt($e)&&(Qi=$e.ref,er=te.current),Nt($e)&&(es=""+$e.key);var Cr;Ee.type&&Ee.type.defaultProps&&(Cr=Ee.type.defaultProps);for(Wt in $e)At.call($e,Wt)&&!Me.hasOwnProperty(Wt)&&($e[Wt]===void 0&&Cr!==void 0?vi[Wt]=Cr[Wt]:vi[Wt]=$e[Wt])}var rr=arguments.length-2;if(rr===1)vi.children=bt;else if(rr>1){for(var xr=Array(rr),Nn=0;Nn<rr;Nn++)xr[Nn]=arguments[Nn+2];vi.children=xr}return gi(Ee.type,es,Qi,Ji,Us,er,vi)}function qt(Ee){return typeof Ee=="object"&&Ee!==null&&Ee.$$typeof===A}var ci=".",qe=":";function ri(Ee){var $e=/[=:]/g,bt={"=":"=0",":":"=2"},Wt=Ee.replace($e,function(vi){return bt[vi]});return"$"+Wt}var Ot=!1,mt=/\/+/g;function Ye(Ee){return Ee.replace(mt,"$&/")}function Tt(Ee,$e){return typeof Ee=="object"&&Ee!==null&&Ee.key!=null?ri(""+Ee.key):$e.toString(36)}function Ut(Ee,$e,bt,Wt,vi){var es=typeof Ee;(es==="undefined"||es==="boolean")&&(Ee=null);var Qi=!1;if(Ee===null)Qi=!0;else switch(es){case"string":case"number":Qi=!0;break;case"object":switch(Ee.$$typeof){case A:case S:Qi=!0}}if(Qi){var Ji=Ee,Us=vi(Ji),er=Wt===""?ci+Tt(Ji,0):Wt;if(Array.isArray(Us)){var Cr="";er!=null&&(Cr=Ye(er)+"/"),Ut(Us,$e,Cr,"",function(kl){return kl})}else Us!=null&&(qt(Us)&&(Us=wi(Us,bt+(Us.key&&(!Ji||Ji.key!==Us.key)?Ye(""+Us.key)+"/":"")+er)),$e.push(Us));return 1}var rr,xr,Nn=0,_a=Wt===""?ci:Wt+qe;if(Array.isArray(Ee))for(var Fl=0;Fl<Ee.length;Fl++)rr=Ee[Fl],xr=_a+Tt(rr,Fl),Nn+=Ut(rr,$e,bt,xr,vi);else{var Ua=K(Ee);if(typeof Ua=="function"){var io=Ee;Ua===io.entries&&(Ot||se("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),Ot=!0);for(var wn=Ua.call(io),uu,Hc=0;!(uu=wn.next()).done;)rr=uu.value,xr=_a+Tt(rr,Hc++),Nn+=Ut(rr,$e,bt,xr,vi)}else if(es==="object"){var gd=""+Ee;throw Error("Objects are not valid as a React child (found: "+(gd==="[object Object]"?"object with keys {"+Object.keys(Ee).join(", ")+"}":gd)+"). If you meant to render a collection of children, use an array instead.")}}return Nn}function oi(Ee,$e,bt){if(Ee==null)return Ee;var Wt=[],vi=0;return Ut(Ee,Wt,"","",function(es){return $e.call(bt,es,vi++)}),Wt}function ji(Ee){var $e=0;return oi(Ee,function(){$e++}),$e}function ki(Ee,$e,bt){oi(Ee,function(){$e.apply(this,arguments)},bt)}function os(Ee){return oi(Ee,function($e){return $e})||[]}function bs(Ee){if(!qt(Ee))throw Error("React.Children.only expected to receive a single React element child.");return Ee}function hi(Ee,$e){$e===void 0?$e=null:$e!==null&&typeof $e!="function"&&ue("createContext: Expected the optional second argument to be a function. Instead received: %s",$e);var bt={$$typeof:b,_calculateChangedBits:$e,_currentValue:Ee,_currentValue2:Ee,_threadCount:0,Provider:null,Consumer:null};bt.Provider={$$typeof:E,_context:bt};var Wt=!1,vi=!1,es=!1;{var Qi={$$typeof:b,_context:bt,_calculateChangedBits:bt._calculateChangedBits};Object.defineProperties(Qi,{Provider:{get:function(){return vi||(vi=!0,ue("Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?")),bt.Provider},set:function(Ji){bt.Provider=Ji}},_currentValue:{get:function(){return bt._currentValue},set:function(Ji){bt._currentValue=Ji}},_currentValue2:{get:function(){return bt._currentValue2},set:function(Ji){bt._currentValue2=Ji}},_threadCount:{get:function(){return bt._threadCount},set:function(Ji){bt._threadCount=Ji}},Consumer:{get:function(){return Wt||(Wt=!0,ue("Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?")),bt.Consumer}},displayName:{get:function(){return bt.displayName},set:function(Ji){es||(se("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",Ji),es=!0)}}}),bt.Consumer=Qi}return bt._currentRenderer=null,bt._currentRenderer2=null,bt}var Oi=-1,li=0,Xs=1,ks=2;function hr(Ee){if(Ee._status===Oi){var $e=Ee._result,bt=$e(),Wt=Ee;Wt._status=li,Wt._result=bt,bt.then(function(vi){if(Ee._status===li){var es=vi.default;es===void 0&&ue(`lazy: Expected the result of a dynamic import() call. Instead received: %s

Your code should look like: 
  const MyComponent = lazy(() => import('./MyComponent'))`,vi);var Qi=Ee;Qi._status=Xs,Qi._result=es}},function(vi){if(Ee._status===li){var es=Ee;es._status=ks,es._result=vi}})}if(Ee._status===Xs)return Ee._result;throw Ee._result}function fr(Ee){var $e={_status:-1,_result:Ee},bt={$$typeof:R,_payload:$e,_init:hr};{var Wt,vi;Object.defineProperties(bt,{defaultProps:{configurable:!0,get:function(){return Wt},set:function(es){ue("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),Wt=es,Object.defineProperty(bt,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return vi},set:function(es){ue("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),vi=es,Object.defineProperty(bt,"propTypes",{enumerable:!0})}}})}return bt}function We(Ee){Ee!=null&&Ee.$$typeof===O?ue("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof Ee!="function"?ue("forwardRef requires a render function but was given %s.",Ee===null?"null":typeof Ee):Ee.length!==0&&Ee.length!==2&&ue("forwardRef render functions accept exactly two parameters: props and ref. %s",Ee.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),Ee!=null&&(Ee.defaultProps!=null||Ee.propTypes!=null)&&ue("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?");var $e={$$typeof:M,render:Ee};{var bt;Object.defineProperty($e,"displayName",{enumerable:!1,configurable:!0,get:function(){return bt},set:function(Wt){bt=Wt,Ee.displayName==null&&(Ee.displayName=Wt)}})}return $e}var fi=!1;function zi(Ee){return!!(typeof Ee=="string"||typeof Ee=="function"||Ee===_.Fragment||Ee===_.Profiler||Ee===D||Ee===_.StrictMode||Ee===_.Suspense||Ee===T||Ee===k||fi||typeof Ee=="object"&&Ee!==null&&(Ee.$$typeof===R||Ee.$$typeof===O||Ee.$$typeof===E||Ee.$$typeof===b||Ee.$$typeof===M||Ee.$$typeof===w||Ee.$$typeof===I||Ee[0]===N))}function ts(Ee,$e){zi(Ee)||ue("memo: The first argument must be a component. Instead received: %s",Ee===null?"null":typeof Ee);var bt={$$typeof:O,type:Ee,compare:$e===void 0?null:$e};{var Wt;Object.defineProperty(bt,"displayName",{enumerable:!1,configurable:!0,get:function(){return Wt},set:function(vi){Wt=vi,Ee.displayName==null&&(Ee.displayName=vi)}})}return bt}function hs(){var Ee=ie.current;if(Ee===null)throw Error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.`);return Ee}function Ge(Ee,$e){var bt=hs();if($e!==void 0&&ue("useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s",$e,typeof $e=="number"&&Array.isArray(arguments[2])?`

Did you call array.map(useContext)? Calling Hooks inside a loop is not supported. Learn more at https://reactjs.org/link/rules-of-hooks`:""),Ee._context!==void 0){var Wt=Ee._context;Wt.Consumer===Ee?ue("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):Wt.Provider===Ee&&ue("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return bt.useContext(Ee,$e)}function Zt(Ee){var $e=hs();return $e.useState(Ee)}function $t(Ee,$e,bt){var Wt=hs();return Wt.useReducer(Ee,$e,bt)}function Ui(Ee){var $e=hs();return $e.useRef(Ee)}function ls(Ee,$e){var bt=hs();return bt.useEffect(Ee,$e)}function ns(Ee,$e){var bt=hs();return bt.useLayoutEffect(Ee,$e)}function Ss(Ee,$e){var bt=hs();return bt.useCallback(Ee,$e)}function qi(Ee,$e){var bt=hs();return bt.useMemo(Ee,$e)}function pr(Ee,$e,bt){var Wt=hs();return Wt.useImperativeHandle(Ee,$e,bt)}function Js(Ee,$e){{var bt=hs();return bt.useDebugValue(Ee,$e)}}var ir=0,hn,ra,ka,Hn,to,Gr,Yn;function To(){}To.__reactDisabledLog=!0;function Pn(){{if(ir===0){hn=console.log,ra=console.info,ka=console.warn,Hn=console.error,to=console.group,Gr=console.groupCollapsed,Yn=console.groupEnd;var Ee={configurable:!0,enumerable:!0,value:To,writable:!0};Object.defineProperties(console,{info:Ee,log:Ee,warn:Ee,error:Ee,group:Ee,groupCollapsed:Ee,groupEnd:Ee})}ir++}}function On(){{if(ir--,ir===0){var Ee={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:h({},Ee,{value:hn}),info:h({},Ee,{value:ra}),warn:h({},Ee,{value:ka}),error:h({},Ee,{value:Hn}),group:h({},Ee,{value:to}),groupCollapsed:h({},Ee,{value:Gr}),groupEnd:h({},Ee,{value:Yn})})}ir<0&&ue("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Kr=X.ReactCurrentDispatcher,dn;function mo(Ee,$e,bt){{if(dn===void 0)try{throw Error()}catch(vi){var Wt=vi.stack.trim().match(/\n( *(at )?)/);dn=Wt&&Wt[1]||""}return`
`+dn+Ee}}var Xn=!1,na;{var xl=typeof WeakMap=="function"?WeakMap:Map;na=new xl}function Lo(Ee,$e){if(!Ee||Xn)return"";{var bt=na.get(Ee);if(bt!==void 0)return bt}var Wt;Xn=!0;var vi=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var es;es=Kr.current,Kr.current=null,Pn();try{if($e){var Qi=function(){throw Error()};if(Object.defineProperty(Qi.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Qi,[])}catch(_a){Wt=_a}Reflect.construct(Ee,[],Qi)}else{try{Qi.call()}catch(_a){Wt=_a}Ee.call(Qi.prototype)}}else{try{throw Error()}catch(_a){Wt=_a}Ee()}}catch(_a){if(_a&&Wt&&typeof _a.stack=="string"){for(var Ji=_a.stack.split(`
`),Us=Wt.stack.split(`
`),er=Ji.length-1,Cr=Us.length-1;er>=1&&Cr>=0&&Ji[er]!==Us[Cr];)Cr--;for(;er>=1&&Cr>=0;er--,Cr--)if(Ji[er]!==Us[Cr]){if(er!==1||Cr!==1)do if(er--,Cr--,Cr<0||Ji[er]!==Us[Cr]){var rr=`
`+Ji[er].replace(" at new "," at ");return typeof Ee=="function"&&na.set(Ee,rr),rr}while(er>=1&&Cr>=0);break}}}finally{Xn=!1,Kr.current=es,On(),Error.prepareStackTrace=vi}var xr=Ee?Ee.displayName||Ee.name:"",Nn=xr?mo(xr):"";return typeof Ee=="function"&&na.set(Ee,Nn),Nn}function Io(Ee,$e,bt){return Lo(Ee,!1)}function bl(Ee){var $e=Ee.prototype;return!!($e&&$e.isReactComponent)}function Zn(Ee,$e,bt){if(Ee==null)return"";if(typeof Ee=="function")return Lo(Ee,bl(Ee));if(typeof Ee=="string")return mo(Ee);switch(Ee){case _.Suspense:return mo("Suspense");case T:return mo("SuspenseList")}if(typeof Ee=="object")switch(Ee.$$typeof){case M:return Io(Ee.render);case O:return Zn(Ee.type,$e,bt);case I:return Io(Ee._render);case R:{var Wt=Ee,vi=Wt._payload,es=Wt._init;try{return Zn(es(vi),$e,bt)}catch{}}}return""}var Sl={},Vi=X.ReactDebugCurrentFrame;function yl(Ee){if(Ee){var $e=Ee._owner,bt=Zn(Ee.type,Ee._source,$e?$e.type:null);Vi.setExtraStackFrame(bt)}else Vi.setExtraStackFrame(null)}function Sn(Ee,$e,bt,Wt,vi){{var es=Function.call.bind(Object.prototype.hasOwnProperty);for(var Qi in Ee)if(es(Ee,Qi)){var Ji=void 0;try{if(typeof Ee[Qi]!="function"){var Us=Error((Wt||"React class")+": "+bt+" type `"+Qi+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof Ee[Qi]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw Us.name="Invariant Violation",Us}Ji=Ee[Qi]($e,Qi,Wt,bt,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(er){Ji=er}Ji&&!(Ji instanceof Error)&&(yl(vi),ue("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",Wt||"React class",bt,Qi,typeof Ji),yl(null)),Ji instanceof Error&&!(Ji.message in Sl)&&(Sl[Ji.message]=!0,yl(vi),ue("Failed %s type: %s",bt,Ji.message),yl(null))}}}function Kn(Ee){if(Ee){var $e=Ee._owner,bt=Zn(Ee.type,Ee._source,$e?$e.type:null);re(bt)}else re(null)}var Po;Po=!1;function Wi(){if(te.current){var Ee=ot(te.current.type);if(Ee)return`

Check the render method of \``+Ee+"`."}return""}function yn(Ee){if(Ee!==void 0){var $e=Ee.fileName.replace(/^.*[\\\/]/,""),bt=Ee.lineNumber;return`

Check your code at `+$e+":"+bt+"."}return""}function sr(Ee){return Ee!=null?yn(Ee.__source):""}var qn={};function rl(Ee){var $e=Wi();if(!$e){var bt=typeof Ee=="string"?Ee:Ee.displayName||Ee.name;bt&&($e=`

Check the top-level render call using <`+bt+">.")}return $e}function Rn(Ee,$e){if(!(!Ee._store||Ee._store.validated||Ee.key!=null)){Ee._store.validated=!0;var bt=rl($e);if(!qn[bt]){qn[bt]=!0;var Wt="";Ee&&Ee._owner&&Ee._owner!==te.current&&(Wt=" It was passed a child from "+ot(Ee._owner.type)+"."),Kn(Ee),ue('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',bt,Wt),Kn(null)}}}function Or(Ee,$e){if(typeof Ee=="object"){if(Array.isArray(Ee))for(var bt=0;bt<Ee.length;bt++){var Wt=Ee[bt];qt(Wt)&&Rn(Wt,$e)}else if(qt(Ee))Ee._store&&(Ee._store.validated=!0);else if(Ee){var vi=K(Ee);if(typeof vi=="function"&&vi!==Ee.entries)for(var es=vi.call(Ee),Qi;!(Qi=es.next()).done;)qt(Qi.value)&&Rn(Qi.value,$e)}}}function fn(Ee){{var $e=Ee.type;if($e==null||typeof $e=="string")return;var bt;if(typeof $e=="function")bt=$e.propTypes;else if(typeof $e=="object"&&($e.$$typeof===M||$e.$$typeof===O))bt=$e.propTypes;else return;if(bt){var Wt=ot($e);Sn(bt,Ee.props,"prop",Wt,Ee)}else if($e.PropTypes!==void 0&&!Po){Po=!0;var vi=ot($e);ue("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",vi||"Unknown")}typeof $e.getDefaultProps=="function"&&!$e.getDefaultProps.isReactClassApproved&&ue("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function $r(Ee){{for(var $e=Object.keys(Ee.props),bt=0;bt<$e.length;bt++){var Wt=$e[bt];if(Wt!=="children"&&Wt!=="key"){Kn(Ee),ue("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",Wt),Kn(null);break}}Ee.ref!==null&&(Kn(Ee),ue("Invalid attribute `ref` supplied to `React.Fragment`."),Kn(null))}}function Wc(Ee,$e,bt){var Wt=zi(Ee);if(!Wt){var vi="";(Ee===void 0||typeof Ee=="object"&&Ee!==null&&Object.keys(Ee).length===0)&&(vi+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var es=sr($e);es?vi+=es:vi+=Wi();var Qi;Ee===null?Qi="null":Array.isArray(Ee)?Qi="array":Ee!==void 0&&Ee.$$typeof===A?(Qi="<"+(ot(Ee.type)||"Unknown")+" />",vi=" Did you accidentally export a JSX literal instead of a component?"):Qi=typeof Ee,ue("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Qi,vi)}var Ji=bi.apply(this,arguments);if(Ji==null)return Ji;if(Wt)for(var Us=2;Us<arguments.length;Us++)Or(arguments[Us],Ee);return Ee===_.Fragment?$r(Ji):fn(Ji),Ji}var Qn=!1;function Dn(Ee){var $e=Wc.bind(null,Ee);return $e.type=Ee,Qn||(Qn=!0,se("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.")),Object.defineProperty($e,"type",{enumerable:!1,get:function(){return se("Factory.type is deprecated. Access the class directly before passing it to createFactory."),Object.defineProperty(this,"type",{value:Ee}),Ee}}),$e}function Xu(Ee,$e,bt){for(var Wt=Ni.apply(this,arguments),vi=2;vi<arguments.length;vi++)Or(arguments[vi],Wt.type);return fn(Wt),Wt}try{var Ie=Object.freeze({})}catch{}var _t=Wc,Ht=Xu,ti=Dn,Hi={map:oi,forEach:ki,count:ji,toArray:os,only:bs};_.Children=Hi,_.Component=ke,_.PureComponent=nt,_.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=X,_.cloneElement=Ht,_.createContext=hi,_.createElement=_t,_.createFactory=ti,_.createRef=xt,_.forwardRef=We,_.isValidElement=qt,_.lazy=fr,_.memo=ts,_.useCallback=Ss,_.useContext=Ge,_.useDebugValue=Js,_.useEffect=ls,_.useImperativeHandle=pr,_.useLayoutEffect=ns,_.useMemo=qi,_.useReducer=$t,_.useRef=Ui,_.useState=Zt,_.version=x})()},"../../../../node_modules/react/index.js":(m,_,d)=>{m.exports=d("../../../../node_modules/react/cjs/react.development.js")},"../../../../node_modules/react/jsx-runtime.js":(m,_,d)=>{m.exports=d("../../../../node_modules/react/cjs/react-jsx-runtime.development.js")},"../../../../node_modules/scheduler/cjs/scheduler-tracing.development.js":(m,_)=>{/** @license React v0.20.2
 * scheduler-tracing.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */(function(){var d=0,h=0,x=0;_.__interactionsRef=null,_.__subscriberRef=null,_.__interactionsRef={current:new Set},_.__subscriberRef={current:null};function A(V){var ee=_.__interactionsRef.current;_.__interactionsRef.current=new Set;try{return V()}finally{_.__interactionsRef.current=ee}}function S(){return _.__interactionsRef.current}function E(){return++x}function b(V,ee,K){var ie=arguments.length>3&&arguments[3]!==void 0?arguments[3]:d,ne={__count:1,id:h++,name:V,timestamp:ee},te=_.__interactionsRef.current,W=new Set(te);W.add(ne),_.__interactionsRef.current=W;var Q=_.__subscriberRef.current,re;try{Q!==null&&Q.onInteractionTraced(ne)}finally{try{Q!==null&&Q.onWorkStarted(W,ie)}finally{try{re=K()}finally{_.__interactionsRef.current=te;try{Q!==null&&Q.onWorkStopped(W,ie)}finally{ne.__count--,Q!==null&&ne.__count===0&&Q.onInteractionScheduledWorkCompleted(ne)}}}}return re}function M(V){var ee=arguments.length>1&&arguments[1]!==void 0?arguments[1]:d,K=_.__interactionsRef.current,ie=_.__subscriberRef.current;ie!==null&&ie.onWorkScheduled(K,ee),K.forEach(function(W){W.__count++});var ne=!1;function te(){var W=_.__interactionsRef.current;_.__interactionsRef.current=K,ie=_.__subscriberRef.current;try{var Q;try{ie!==null&&ie.onWorkStarted(K,ee)}finally{try{Q=V.apply(void 0,arguments)}finally{_.__interactionsRef.current=W,ie!==null&&ie.onWorkStopped(K,ee)}}return Q}finally{ne||(ne=!0,K.forEach(function(re){re.__count--,ie!==null&&re.__count===0&&ie.onInteractionScheduledWorkCompleted(re)}))}}return te.cancel=function(){ie=_.__subscriberRef.current;try{ie!==null&&ie.onWorkCanceled(K,ee)}finally{K.forEach(function(Q){Q.__count--,ie&&Q.__count===0&&ie.onInteractionScheduledWorkCompleted(Q)})}},te}var T=null;T=new Set;function O(V){T.add(V),T.size===1&&(_.__subscriberRef.current={onInteractionScheduledWorkCompleted:N,onInteractionTraced:I,onWorkCanceled:Y,onWorkScheduled:w,onWorkStarted:D,onWorkStopped:k})}function R(V){T.delete(V),T.size===0&&(_.__subscriberRef.current=null)}function I(V){var ee=!1,K=null;if(T.forEach(function(ie){try{ie.onInteractionTraced(V)}catch(ne){ee||(ee=!0,K=ne)}}),ee)throw K}function N(V){var ee=!1,K=null;if(T.forEach(function(ie){try{ie.onInteractionScheduledWorkCompleted(V)}catch(ne){ee||(ee=!0,K=ne)}}),ee)throw K}function w(V,ee){var K=!1,ie=null;if(T.forEach(function(ne){try{ne.onWorkScheduled(V,ee)}catch(te){K||(K=!0,ie=te)}}),K)throw ie}function D(V,ee){var K=!1,ie=null;if(T.forEach(function(ne){try{ne.onWorkStarted(V,ee)}catch(te){K||(K=!0,ie=te)}}),K)throw ie}function k(V,ee){var K=!1,ie=null;if(T.forEach(function(ne){try{ne.onWorkStopped(V,ee)}catch(te){K||(K=!0,ie=te)}}),K)throw ie}function Y(V,ee){var K=!1,ie=null;if(T.forEach(function(ne){try{ne.onWorkCanceled(V,ee)}catch(te){K||(K=!0,ie=te)}}),K)throw ie}_.unstable_clear=A,_.unstable_getCurrent=S,_.unstable_getThreadID=E,_.unstable_subscribe=O,_.unstable_trace=b,_.unstable_unsubscribe=R,_.unstable_wrap=M})()},"../../../../node_modules/scheduler/cjs/scheduler.development.js":(m,_)=>{/** @license React v0.20.2
 * scheduler.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */(function(){var d=!1,h,x,A,S,E=typeof performance=="object"&&typeof performance.now=="function";if(E){var b=performance;_.unstable_now=function(){return b.now()}}else{var M=Date,T=M.now();_.unstable_now=function(){return M.now()-T}}if(typeof window>"u"||typeof MessageChannel!="function"){var O=null,R=null,I=function(){if(O!==null)try{var mt=_.unstable_now(),Ye=!0;O(Ye,mt),O=null}catch(Tt){throw setTimeout(I,0),Tt}};h=function(mt){O!==null?setTimeout(h,0,mt):(O=mt,setTimeout(I,0))},x=function(mt,Ye){R=setTimeout(mt,Ye)},A=function(){clearTimeout(R)},_.unstable_shouldYield=function(){return!1},S=_.unstable_forceFrameRate=function(){}}else{var N=window.setTimeout,w=window.clearTimeout;if(typeof console<"u"){var D=window.requestAnimationFrame,k=window.cancelAnimationFrame;typeof D!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof k!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var Y=!1,V=null,ee=-1,K=5,ie=0;_.unstable_shouldYield=function(){return _.unstable_now()>=ie},S=function(){},_.unstable_forceFrameRate=function(mt){if(mt<0||mt>125){console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported");return}mt>0?K=Math.floor(1e3/mt):K=5};var ne=function(){if(V!==null){var mt=_.unstable_now();ie=mt+K;var Ye=!0;try{var Tt=V(Ye,mt);Tt?W.postMessage(null):(Y=!1,V=null)}catch(Ut){throw W.postMessage(null),Ut}}else Y=!1},te=new MessageChannel,W=te.port2;te.port1.onmessage=ne,h=function(mt){V=mt,Y||(Y=!0,W.postMessage(null))},x=function(mt,Ye){ee=N(function(){mt(_.unstable_now())},Ye)},A=function(){w(ee),ee=-1}}function Q(mt,Ye){var Tt=mt.length;mt.push(Ye),X(mt,Ye,Tt)}function re(mt){var Ye=mt[0];return Ye===void 0?null:Ye}function oe(mt){var Ye=mt[0];if(Ye!==void 0){var Tt=mt.pop();return Tt!==Ye&&(mt[0]=Tt,se(mt,Tt,0)),Ye}else return null}function X(mt,Ye,Tt){for(var Ut=Tt;;){var oi=Ut-1>>>1,ji=mt[oi];if(ji!==void 0&&ue(ji,Ye)>0)mt[oi]=Ye,mt[Ut]=ji,Ut=oi;else return}}function se(mt,Ye,Tt){for(var Ut=Tt,oi=mt.length;Ut<oi;){var ji=(Ut+1)*2-1,ki=mt[ji],os=ji+1,bs=mt[os];if(ki!==void 0&&ue(ki,Ye)<0)bs!==void 0&&ue(bs,ki)<0?(mt[Ut]=bs,mt[os]=Ye,Ut=os):(mt[Ut]=ki,mt[ji]=Ye,Ut=ji);else if(bs!==void 0&&ue(bs,Ye)<0)mt[Ut]=bs,mt[os]=Ye,Ut=os;else return}}function ue(mt,Ye){var Tt=mt.sortIndex-Ye.sortIndex;return Tt!==0?Tt:mt.id-Ye.id}var he=1,fe=2,Ae=3,Se=4,we=5;function ke(mt,Ye){}var st=1073741823,Ve=-1,Ke=250,ct=5e3,nt=1e4,at=st,xt=[],Qe=[],kt=1,ot=null,At=Ae,Me=!1,je=!1,rt=!1;function yt(mt){for(var Ye=re(Qe);Ye!==null;){if(Ye.callback===null)oe(Qe);else if(Ye.startTime<=mt)oe(Qe),Ye.sortIndex=Ye.expirationTime,Q(xt,Ye);else return;Ye=re(Qe)}}function Rt(mt){if(rt=!1,yt(mt),!je)if(re(xt)!==null)je=!0,h(Nt);else{var Ye=re(Qe);Ye!==null&&x(Rt,Ye.startTime-mt)}}function Nt(mt,Ye){je=!1,rt&&(rt=!1,A()),Me=!0;var Tt=At;try{var Ut;if(!d)return Kt(mt,Ye)}finally{ot=null,At=Tt,Me=!1}}function Kt(mt,Ye){var Tt=Ye;for(yt(Tt),ot=re(xt);ot!==null&&!(ot.expirationTime>Tt&&(!mt||_.unstable_shouldYield()));){var Ut=ot.callback;if(typeof Ut=="function"){ot.callback=null,At=ot.priorityLevel;var oi=ot.expirationTime<=Tt,ji=Ut(oi);Tt=_.unstable_now(),typeof ji=="function"?ot.callback=ji:ot===re(xt)&&oe(xt),yt(Tt)}else oe(xt);ot=re(xt)}if(ot!==null)return!0;var ki=re(Qe);return ki!==null&&x(Rt,ki.startTime-Tt),!1}function si(mt,Ye){switch(mt){case he:case fe:case Ae:case Se:case we:break;default:mt=Ae}var Tt=At;At=mt;try{return Ye()}finally{At=Tt}}function Pi(mt){var Ye;switch(At){case he:case fe:case Ae:Ye=Ae;break;default:Ye=At;break}var Tt=At;At=Ye;try{return mt()}finally{At=Tt}}function gi(mt){var Ye=At;return function(){var Tt=At;At=Ye;try{return mt.apply(this,arguments)}finally{At=Tt}}}function bi(mt,Ye,Tt){var Ut=_.unstable_now(),oi;if(typeof Tt=="object"&&Tt!==null){var ji=Tt.delay;typeof ji=="number"&&ji>0?oi=Ut+ji:oi=Ut}else oi=Ut;var ki;switch(mt){case he:ki=Ve;break;case fe:ki=Ke;break;case we:ki=at;break;case Se:ki=nt;break;case Ae:default:ki=ct;break}var os=oi+ki,bs={id:kt++,callback:Ye,priorityLevel:mt,startTime:oi,expirationTime:os,sortIndex:-1};return oi>Ut?(bs.sortIndex=oi,Q(Qe,bs),re(xt)===null&&bs===re(Qe)&&(rt?A():rt=!0,x(Rt,oi-Ut))):(bs.sortIndex=os,Q(xt,bs),!je&&!Me&&(je=!0,h(Nt))),bs}function wi(){}function Ni(){!je&&!Me&&(je=!0,h(Nt))}function qt(){return re(xt)}function ci(mt){mt.callback=null}function qe(){return At}var ri=S,Ot=null;_.unstable_IdlePriority=we,_.unstable_ImmediatePriority=he,_.unstable_LowPriority=Se,_.unstable_NormalPriority=Ae,_.unstable_Profiling=Ot,_.unstable_UserBlockingPriority=fe,_.unstable_cancelCallback=ci,_.unstable_continueExecution=Ni,_.unstable_getCurrentPriorityLevel=qe,_.unstable_getFirstCallbackNode=qt,_.unstable_next=Pi,_.unstable_pauseExecution=wi,_.unstable_requestPaint=ri,_.unstable_runWithPriority=si,_.unstable_scheduleCallback=bi,_.unstable_wrapCallback=gi})()},"../../../../node_modules/scheduler/index.js":(m,_,d)=>{m.exports=d("../../../../node_modules/scheduler/cjs/scheduler.development.js")},"../../../../node_modules/scheduler/tracing.js":(m,_,d)=>{m.exports=d("../../../../node_modules/scheduler/cjs/scheduler-tracing.development.js")},"../../../../node_modules/split.js/dist/split.es.js":(m,_,d)=>{d.r(_),d.d(_,{default:()=>ne});var h=typeof window<"u"?window:null,x=h===null,A=x?void 0:h.document,S="addEventListener",E="removeEventListener",b="getBoundingClientRect",M="_a",T="_b",O="_c",R="horizontal",I=function(){return!1},N=x?"calc":["","-webkit-","-moz-","-o-"].filter(function(te){var W=A.createElement("div");return W.style.cssText="width:"+te+"calc(9px)",!!W.style.length}).shift()+"calc",w=function(te){return typeof te=="string"||te instanceof String},D=function(te){if(w(te)){var W=A.querySelector(te);if(!W)throw new Error("Selector "+te+" did not match a DOM element");return W}return te},k=function(te,W,Q){var re=te[W];return re!==void 0?re:Q},Y=function(te,W,Q,re){if(W){if(re==="end")return 0;if(re==="center")return te/2}else if(Q){if(re==="start")return 0;if(re==="center")return te/2}return te},V=function(te,W){var Q=A.createElement("div");return Q.className="gutter gutter-"+W,Q},ee=function(te,W,Q){var re={};return w(W)?re[te]=W:re[te]=N+"("+W+"% - "+Q+"px)",re},K=function(te,W){var Q;return Q={},Q[te]=W+"px",Q},ie=function(te,W){if(W===void 0&&(W={}),x)return{};var Q=te,re,oe,X,se,ue,he;Array.from&&(Q=Array.from(Q));var fe=D(Q[0]),Ae=fe.parentNode,Se=getComputedStyle?getComputedStyle(Ae):null,we=Se?Se.flexDirection:null,ke=k(W,"sizes")||Q.map(function(){return 100/Q.length}),st=k(W,"minSize",100),Ve=Array.isArray(st)?st:Q.map(function(){return st}),Ke=k(W,"maxSize",1/0),ct=Array.isArray(Ke)?Ke:Q.map(function(){return Ke}),nt=k(W,"expandToMin",!1),at=k(W,"gutterSize",10),xt=k(W,"gutterAlign","center"),Qe=k(W,"snapOffset",30),kt=Array.isArray(Qe)?Qe:Q.map(function(){return Qe}),ot=k(W,"dragInterval",1),At=k(W,"direction",R),Me=k(W,"cursor",At===R?"col-resize":"row-resize"),je=k(W,"gutter",V),rt=k(W,"elementStyle",ee),yt=k(W,"gutterStyle",K);At===R?(re="width",oe="clientX",X="left",se="right",ue="clientWidth"):At==="vertical"&&(re="height",oe="clientY",X="top",se="bottom",ue="clientHeight");function Rt(Ye,Tt,Ut,oi){var ji=rt(re,Tt,Ut,oi);Object.keys(ji).forEach(function(ki){Ye.style[ki]=ji[ki]})}function Nt(Ye,Tt,Ut){var oi=yt(re,Tt,Ut);Object.keys(oi).forEach(function(ji){Ye.style[ji]=oi[ji]})}function Kt(){return he.map(function(Ye){return Ye.size})}function si(Ye){return"touches"in Ye?Ye.touches[0][oe]:Ye[oe]}function Pi(Ye){var Tt=he[this.a],Ut=he[this.b],oi=Tt.size+Ut.size;Tt.size=Ye/this.size*oi,Ut.size=oi-Ye/this.size*oi,Rt(Tt.element,Tt.size,this[T],Tt.i),Rt(Ut.element,Ut.size,this[O],Ut.i)}function gi(Ye){var Tt,Ut=he[this.a],oi=he[this.b];this.dragging&&(Tt=si(Ye)-this.start+(this[T]-this.dragOffset),ot>1&&(Tt=Math.round(Tt/ot)*ot),Tt<=Ut.minSize+Ut.snapOffset+this[T]?Tt=Ut.minSize+this[T]:Tt>=this.size-(oi.minSize+oi.snapOffset+this[O])&&(Tt=this.size-(oi.minSize+this[O])),Tt>=Ut.maxSize-Ut.snapOffset+this[T]?Tt=Ut.maxSize+this[T]:Tt<=this.size-(oi.maxSize-oi.snapOffset+this[O])&&(Tt=this.size-(oi.maxSize+this[O])),Pi.call(this,Tt),k(W,"onDrag",I)(Kt()))}function bi(){var Ye=he[this.a].element,Tt=he[this.b].element,Ut=Ye[b](),oi=Tt[b]();this.size=Ut[re]+oi[re]+this[T]+this[O],this.start=Ut[X],this.end=Ut[se]}function wi(Ye){if(!getComputedStyle)return null;var Tt=getComputedStyle(Ye);if(!Tt)return null;var Ut=Ye[ue];return Ut===0?null:(At===R?Ut-=parseFloat(Tt.paddingLeft)+parseFloat(Tt.paddingRight):Ut-=parseFloat(Tt.paddingTop)+parseFloat(Tt.paddingBottom),Ut)}function Ni(Ye){var Tt=wi(Ae);if(Tt===null||Ve.reduce(function(ki,os){return ki+os},0)>Tt)return Ye;var Ut=0,oi=[],ji=Ye.map(function(ki,os){var bs=Tt*ki/100,hi=Y(at,os===0,os===Ye.length-1,xt),Oi=Ve[os]+hi;return bs<Oi?(Ut+=Oi-bs,oi.push(0),Oi):(oi.push(bs-Oi),bs)});return Ut===0?Ye:ji.map(function(ki,os){var bs=ki;if(Ut>0&&oi[os]-Ut>0){var hi=Math.min(Ut,oi[os]-Ut);Ut-=hi,bs=ki-hi}return bs/Tt*100})}function qt(){var Ye=this,Tt=he[Ye.a].element,Ut=he[Ye.b].element;Ye.dragging&&k(W,"onDragEnd",I)(Kt()),Ye.dragging=!1,h[E]("mouseup",Ye.stop),h[E]("touchend",Ye.stop),h[E]("touchcancel",Ye.stop),h[E]("mousemove",Ye.move),h[E]("touchmove",Ye.move),Ye.stop=null,Ye.move=null,Tt[E]("selectstart",I),Tt[E]("dragstart",I),Ut[E]("selectstart",I),Ut[E]("dragstart",I),Tt.style.userSelect="",Tt.style.webkitUserSelect="",Tt.style.MozUserSelect="",Tt.style.pointerEvents="",Ut.style.userSelect="",Ut.style.webkitUserSelect="",Ut.style.MozUserSelect="",Ut.style.pointerEvents="",Ye.gutter.style.cursor="",Ye.parent.style.cursor="",A.body.style.cursor=""}function ci(Ye){if(!("button"in Ye&&Ye.button!==0)){var Tt=this,Ut=he[Tt.a].element,oi=he[Tt.b].element;Tt.dragging||k(W,"onDragStart",I)(Kt()),Ye.preventDefault(),Tt.dragging=!0,Tt.move=gi.bind(Tt),Tt.stop=qt.bind(Tt),h[S]("mouseup",Tt.stop),h[S]("touchend",Tt.stop),h[S]("touchcancel",Tt.stop),h[S]("mousemove",Tt.move),h[S]("touchmove",Tt.move),Ut[S]("selectstart",I),Ut[S]("dragstart",I),oi[S]("selectstart",I),oi[S]("dragstart",I),Ut.style.userSelect="none",Ut.style.webkitUserSelect="none",Ut.style.MozUserSelect="none",Ut.style.pointerEvents="none",oi.style.userSelect="none",oi.style.webkitUserSelect="none",oi.style.MozUserSelect="none",oi.style.pointerEvents="none",Tt.gutter.style.cursor=Me,Tt.parent.style.cursor=Me,A.body.style.cursor=Me,bi.call(Tt),Tt.dragOffset=si(Ye)-Tt.end}}ke=Ni(ke);var qe=[];he=Q.map(function(Ye,Tt){var Ut={element:D(Ye),size:ke[Tt],minSize:Ve[Tt],maxSize:ct[Tt],snapOffset:kt[Tt],i:Tt},oi;if(Tt>0&&(oi={a:Tt-1,b:Tt,dragging:!1,direction:At,parent:Ae},oi[T]=Y(at,Tt-1===0,!1,xt),oi[O]=Y(at,!1,Tt===Q.length-1,xt),we==="row-reverse"||we==="column-reverse")){var ji=oi.a;oi.a=oi.b,oi.b=ji}if(Tt>0){var ki=je(Tt,At,Ut.element);Nt(ki,at,Tt),oi[M]=ci.bind(oi),ki[S]("mousedown",oi[M]),ki[S]("touchstart",oi[M]),Ae.insertBefore(ki,Ut.element),oi.gutter=ki}return Rt(Ut.element,Ut.size,Y(at,Tt===0,Tt===Q.length-1,xt),Tt),Tt>0&&qe.push(oi),Ut});function ri(Ye){var Tt=Ye.i===qe.length,Ut=Tt?qe[Ye.i-1]:qe[Ye.i];bi.call(Ut);var oi=Tt?Ut.size-Ye.minSize-Ut[O]:Ye.minSize+Ut[T];Pi.call(Ut,oi)}he.forEach(function(Ye){var Tt=Ye.element[b]()[re];Tt<Ye.minSize&&(nt?ri(Ye):Ye.minSize=Tt)});function Ot(Ye){var Tt=Ni(Ye);Tt.forEach(function(Ut,oi){if(oi>0){var ji=qe[oi-1],ki=he[ji.a],os=he[ji.b];ki.size=Tt[oi-1],os.size=Ut,Rt(ki.element,ki.size,ji[T],ki.i),Rt(os.element,os.size,ji[O],os.i)}})}function mt(Ye,Tt){qe.forEach(function(Ut){if(Tt!==!0?Ut.parent.removeChild(Ut.gutter):(Ut.gutter[E]("mousedown",Ut[M]),Ut.gutter[E]("touchstart",Ut[M])),Ye!==!0){var oi=rt(re,Ut.a.size,Ut[T]);Object.keys(oi).forEach(function(ji){he[Ut.a].element.style[ji]="",he[Ut.b].element.style[ji]=""})}})}return{setSizes:Ot,getSizes:Kt,collapse:function(Tt){ri(he[Tt])},destroy:mt,parent:Ae,pairs:qe}};const ne=ie},"../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":m=>{var _=[];function d(A){for(var S=-1,E=0;E<_.length;E++)if(_[E].identifier===A){S=E;break}return S}function h(A,S){for(var E={},b=[],M=0;M<A.length;M++){var T=A[M],O=S.base?T[0]+S.base:T[0],R=E[O]||0,I="".concat(O," ").concat(R);E[O]=R+1;var N=d(I),w={css:T[1],media:T[2],sourceMap:T[3],supports:T[4],layer:T[5]};if(N!==-1)_[N].references++,_[N].updater(w);else{var D=x(w,S);S.byIndex=M,_.splice(M,0,{identifier:I,updater:D,references:1})}b.push(I)}return b}function x(A,S){var E=S.domAPI(S);E.update(A);var b=function(T){if(T){if(T.css===A.css&&T.media===A.media&&T.sourceMap===A.sourceMap&&T.supports===A.supports&&T.layer===A.layer)return;E.update(A=T)}else E.remove()};return b}m.exports=function(A,S){S=S||{},A=A||[];var E=h(A,S);return function(M){M=M||[];for(var T=0;T<E.length;T++){var O=E[T],R=d(O);_[R].references--}for(var I=h(M,S),N=0;N<E.length;N++){var w=E[N],D=d(w);_[D].references===0&&(_[D].updater(),_.splice(D,1))}E=I}}},"../../../../node_modules/style-loader/dist/runtime/insertBySelector.js":m=>{var _={};function d(x){if(typeof _[x]>"u"){var A=document.querySelector(x);if(window.HTMLIFrameElement&&A instanceof window.HTMLIFrameElement)try{A=A.contentDocument.head}catch{A=null}_[x]=A}return _[x]}function h(x,A){var S=d(x);if(!S)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");S.appendChild(A)}m.exports=h},"../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js":m=>{function _(d){var h=document.createElement("style");return d.setAttributes(h,d.attributes),d.insert(h,d.options),h}m.exports=_},"../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":(m,_,d)=>{function h(x){var A=d.nc;A&&x.setAttribute("nonce",A)}m.exports=h},"../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js":m=>{function _(x,A,S){var E="";S.supports&&(E+="@supports (".concat(S.supports,") {")),S.media&&(E+="@media ".concat(S.media," {"));var b=typeof S.layer<"u";b&&(E+="@layer".concat(S.layer.length>0?" ".concat(S.layer):""," {")),E+=S.css,b&&(E+="}"),S.media&&(E+="}"),S.supports&&(E+="}");var M=S.sourceMap;M&&typeof btoa<"u"&&(E+=`
/*# sourceMappingURL=data:application/json;base64,`.concat(btoa(unescape(encodeURIComponent(JSON.stringify(M))))," */")),A.styleTagTransform(E,x,A.options)}function d(x){if(x.parentNode===null)return!1;x.parentNode.removeChild(x)}function h(x){if(typeof document>"u")return{update:function(){},remove:function(){}};var A=x.insertStyleElement(x);return{update:function(E){_(A,x,E)},remove:function(){d(A)}}}m.exports=h},"../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js":m=>{function _(d,h){if(h.styleSheet)h.styleSheet.cssText=d;else{for(;h.firstChild;)h.removeChild(h.firstChild);h.appendChild(document.createTextNode(d))}}m.exports=_},"../../../dev/inspector/dist/components/actionTabs/actionTabs.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>k});var h=d("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),x=d.n(h),A=d("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),S=d.n(A),E=d("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),b=d.n(E),M=d("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),T=d.n(M),O=d("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),R=d.n(O),I=d("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),N=d.n(I),w=d("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/actionTabs.scss"),D={};D.styleTagTransform=N(),D.setAttributes=T(),D.insert=b().bind(null,"head"),D.domAPI=S(),D.insertStyleElement=R(),x()(w.default,D);const k=w.default&&w.default.locals?w.default.locals:void 0},"../../../dev/inspector/dist/components/actionTabs/actionTabsComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ActionTabsComponent:()=>w});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabsComponent.js"),S=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/statisticsTabComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/debugTabComponent.js"),M=d("../../../../node_modules/re-resizable/lib/index.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGridTabComponent.js"),O=d("../../../dev/inspector/dist/components/headerComponent.js"),R=d("../../../dev/inspector/dist/components/actionTabs/tabs/toolsTabComponent.js"),I=d("../../../dev/inspector/dist/components/actionTabs/tabs/settingsTabComponent.js");d("../../../dev/inspector/dist/components/actionTabs/actionTabs.scss");const N=M.Resizable;class w extends x.Component{constructor(k){super(k),this._once=!0;let Y=k.initialTab===void 0?0:k.initialTab;if(this.props.globalState){const V=this.props.globalState.validationResults;V&&(V.issues.numErrors||V.issues.numWarnings)&&(Y=3)}this.state={selectedEntity:null,selectedIndex:Y}}componentDidMount(){this.props.globalState&&(this._onSelectionChangeObserver=this.props.globalState.onSelectionChangedObservable.add(k=>{this.setState({selectedEntity:k,selectedIndex:0})}),this._onTabChangedObserver=this.props.globalState.onTabChangedObservable.add(k=>{this.setState({selectedIndex:k})}))}componentWillUnmount(){this.props.globalState&&(this._onSelectionChangeObserver&&this.props.globalState.onSelectionChangedObservable.remove(this._onSelectionChangeObserver),this._onTabChangedObserver&&this.props.globalState.onTabChangedObservable.remove(this._onTabChangedObserver))}changeSelectedTab(k){this.props.globalState&&this.props.globalState.onTabChangedObservable.notifyObservers(k)}renderContent(){return this.props.globalState&&this.props.scene?(0,h.jsxs)(A.TabsComponent,{selectedIndex:this.state.selectedIndex,onSelectedIndexChange:k=>this.changeSelectedTab(k),children:[(0,h.jsx)(T.PropertyGridTabComponent,{title:"Properties",icon:S.faFileAlt,scene:this.props.scene,selectedEntity:this.state.selectedEntity,globalState:this.props.globalState,onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable}),(0,h.jsx)(b.DebugTabComponent,{title:"Debug",icon:S.faBug,scene:this.props.scene,globalState:this.props.globalState}),(0,h.jsx)(E.StatisticsTabComponent,{title:"Statistics",icon:S.faChartBar,scene:this.props.scene,globalState:this.props.globalState}),(0,h.jsx)(R.ToolsTabComponent,{title:"Tools",icon:S.faWrench,scene:this.props.scene,globalState:this.props.globalState}),(0,h.jsx)(I.SettingsTabComponent,{title:"Settings",icon:S.faCog,scene:this.props.scene,globalState:this.props.globalState})]}):null}onClose(){this.props.onClose&&this.props.onClose()}onPopup(){this.props.onPopup&&this.props.onPopup()}render(){return this.props.popupMode?(0,h.jsxs)("div",{id:"actionTabs",children:[!this.props.noHeader&&(0,h.jsx)(O.HeaderComponent,{title:"INSPECTOR",handleBack:!0,noClose:this.props.noClose,noExpand:this.props.noExpand,noCommands:this.props.noCommands,onClose:()=>this.onClose(),onPopup:()=>this.onPopup(),onSelectionChangedObservable:this.props.globalState?this.props.globalState.onSelectionChangedObservable:void 0}),this.renderContent()]}):(this._once&&(this._once=!1,setTimeout(()=>{const k=document.getElementById("actionTabs");k&&(k.style.width="200px")},150)),(0,h.jsxs)(N,{id:"actionTabs",minWidth:300,maxWidth:600,defaultSize:{height:"100%"},minHeight:"100%",enable:{top:!1,right:!1,bottom:!1,left:!0,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1},children:[!this.props.noHeader&&(0,h.jsx)(O.HeaderComponent,{title:"INSPECTOR",handleBack:!0,noClose:this.props.noClose,noExpand:this.props.noExpand,noCommands:this.props.noCommands,onClose:()=>this.onClose(),onPopup:()=>this.onPopup(),onSelectionChangedObservable:this.props.globalState?this.props.globalState.onSelectionChangedObservable:void 0}),this.renderContent()]}))}}},"../../../dev/inspector/dist/components/actionTabs/lines/delete.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij4NCiAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA1OS4xICg4NjE0NCkgLSBodHRwczovL3NrZXRjaC5jb20gLS0+DQogIDx0aXRsZT5pY19mbHVlbnRfZGVsZXRlXzI0X3JlZ3VsYXI8L3RpdGxlPg0KICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4NCiAgPGcgaWQ9IvCflI0tUHJvZHVjdC1JY29ucyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+DQogICAgPGcgaWQ9ImljX2ZsdWVudF9kZWxldGVfMjRfcmVndWxhciIgZmlsbD0id2hpdGUiIGZpbGwtcnVsZT0ibm9uemVybyI+DQogICAgICA8cGF0aCBkPSJNMTIsMS43NSBDMTMuNzMzMDMxNSwxLjc1IDE1LjE0OTI0NTksMy4xMDY0NTQ3NyAxNS4yNDQ4NTUyLDQuODE1NTc2MDkgTDE1LjI1LDUgTDIwLjUsNSBDMjAuOTE0MjEzNiw1IDIxLjI1LDUuMzM1Nzg2NDQgMjEuMjUsNS43NSBDMjEuMjUsNi4xMjk2OTU3NyAyMC45Njc4NDYxLDYuNDQzNDkwOTYgMjAuNjAxNzcwNiw2LjQ5MzE1MzM4IEwyMC41LDYuNSBMMTkuNzA0LDYuNSBMMTguNDIzODYyNywxOS41MTkxOTI3IEMxOC4yOTExNjY2LDIwLjg2ODI2OTYgMTcuMTk4NDMwOSwyMS45MDk5OTYxIDE1Ljg2MjYyNDksMjEuOTk0NDY0NSBMMTUuNjg3MDY5OCwyMiBMOC4zMTI5MzAyMiwyMiBDNi45NTczNDMwMiwyMiA1LjgxMzY1MzUyLDIxLjAxNDQ4NTEgNS41OTg4MzEwNiwxOS42OTMzNjI5IEw1LjU3NjEzNzM0LDE5LjUxOTE5MjcgTDQuMjk1LDYuNSBMMy41LDYuNSBDMy4xMjAzMDQyMyw2LjUgMi44MDY1MDkwNCw2LjIxNzg0NjEyIDIuNzU2ODQ2NjIsNS44NTE3NzA1NiBMMi43NSw1Ljc1IEMyLjc1LDUuMzcwMzA0MjMgMy4wMzIxNTM4OCw1LjA1NjUwOTA0IDMuMzk4MjI5NDQsNS4wMDY4NDY2MiBMMy41LDUgTDguNzUsNSBDOC43NSwzLjIwNTA3NDU2IDEwLjIwNTA3NDYsMS43NSAxMiwxLjc1IFogTTE4LjE5Nyw2LjUgTDUuODAyLDYuNSBMNy4wNjg5MzM0NiwxOS4zNzIzNjAzIEM3LjEyNzY3NjM5LDE5Ljk2OTU4MDEgNy42MDAzMzAxOSwyMC40MzQyODkxIDguMTg1ODQ1MDEsMjAuNDkzNTk2IEw4LjMxMjkzMDIyLDIwLjUgTDE1LjY4NzA2OTgsMjAuNSBDMTYuMjg3MTcxNiwyMC41IDE2Ljc5NTkxNiwyMC4wNzUxMDU3IDE2LjkxMjI1MzEsMTkuNDk4MjA4MyBMMTYuOTMxMDY2NSwxOS4zNzIzNjAzIEwxOC4xOTcsNi41IFogTTEzLjc1LDkuMjUgQzE0LjEyOTY5NTgsOS4yNSAxNC40NDM0OTEsOS41MzIxNTM4OCAxNC40OTMxNTM0LDkuODk4MjI5NDQgTDE0LjUsMTAgTDE0LjUsMTcgQzE0LjUsMTcuNDE0MjEzNiAxNC4xNjQyMTM2LDE3Ljc1IDEzLjc1LDE3Ljc1IEMxMy4zNzAzMDQyLDE3Ljc1IDEzLjA1NjUwOSwxNy40Njc4NDYxIDEzLjAwNjg0NjYsMTcuMTAxNzcwNiBMMTMsMTcgTDEzLDEwIEMxMyw5LjU4NTc4NjQ0IDEzLjMzNTc4NjQsOS4yNSAxMy43NSw5LjI1IFogTTEwLjI1LDkuMjUgQzEwLjYyOTY5NTgsOS4yNSAxMC45NDM0OTEsOS41MzIxNTM4OCAxMC45OTMxNTM0LDkuODk4MjI5NDQgTDExLDEwIEwxMSwxNyBDMTEsMTcuNDE0MjEzNiAxMC42NjQyMTM2LDE3Ljc1IDEwLjI1LDE3Ljc1IEM5Ljg3MDMwNDIzLDE3Ljc1IDkuNTU2NTA5MDQsMTcuNDY3ODQ2MSA5LjUwNjg0NjYyLDE3LjEwMTc3MDYgTDkuNSwxNyBMOS41LDEwIEM5LjUsOS41ODU3ODY0NCA5LjgzNTc4NjQ0LDkuMjUgMTAuMjUsOS4yNSBaIE0xMiwzLjI1IEMxMS4wODE4MjY2LDMuMjUgMTAuMzI4ODA3NywzLjk1NzExMDI3IDEwLjI1NTgwMTIsNC44NTY0NzI3OSBMMTAuMjUsNSBMMTMuNzUsNSBDMTMuNzUsNC4wMzM1MDE2OSAxMi45NjY0OTgzLDMuMjUgMTIsMy4yNSBaIiBpZD0i8J+OqC1Db2xvciI+PC9wYXRoPg0KICAgIDwvZz4NCiAgPC9nPg0KPC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/lines/meshPickerComponent.js":(m,_,d)=>{d.r(_),d.d(_,{MeshPickerComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js");class S extends x.Component{constructor(b){super(b)}render(){const b=this.props.scene.meshes.filter(T=>!!T.name);b.sort((T,O)=>T.name.localeCompare(O.name));const M=[{label:"None",value:-1}];return b.sort((T,O)=>T.name.localeCompare(O.name)),M.push(...b.map((T,O)=>({label:T.name,value:O}))),(0,h.jsx)(h.Fragment,{children:(0,h.jsx)(A.OptionsLine,{label:this.props.label,options:M,target:this.props.target,propertyName:this.props.property,noDirectUpdate:!0,onSelect:T=>{const O=this.props.target[this.props.property];switch(T){case-1:this.props.target[this.props.property]=null;break;default:this.props.target[this.props.property]=b[T]}this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.property,value:this.props.target[this.props.property],initialValue:O}),this.forceUpdate()},extractValue:()=>{if(!this.props.target[this.props.property])return-1;const T=b.indexOf(this.props.target[this.props.property]);return T>-1?T:-1}})})}}},"../../../dev/inspector/dist/components/actionTabs/lines/quaternionLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{QuaternionLineComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/numericInputComponent.js"),S=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),E=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),b=d("core/Misc/observable"),M=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),O=d("../../../dev/sharedUiComponents/dist/imgs/copy.svg");class R extends x.Component{constructor(N){super(N),this._localChange=!1;const w=this.props.target[this.props.propertyName].clone();this.state={isExpanded:!1,value:w,eulerValue:w.toEulerAngles()}}_checkRoundCircle(N,w){return Math.abs(b.Tools.ToDegrees(N))+Math.abs(b.Tools.ToDegrees(w))===360}shouldComponentUpdate(N,w){const D=N.target[N.propertyName];return!D.equals(w.value)||this._localChange?(w.value=D.clone(),w.eulerValue=D.toEulerAngles(),this._checkRoundCircle(w.eulerValue.x,this.state.eulerValue.x)&&(w.eulerValue.x=this.state.eulerValue.x),this._checkRoundCircle(w.eulerValue.y,this.state.eulerValue.y)&&(w.eulerValue.y=this.state.eulerValue.y),this._checkRoundCircle(w.eulerValue.z,this.state.eulerValue.z)&&(w.eulerValue.z=this.state.eulerValue.z),this._localChange=!1,!0):!1}switchExpandState(){this._localChange=!0,this.setState({isExpanded:!this.state.isExpanded})}raiseOnPropertyChanged(N,w){this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:N,initialValue:w})}updateQuaternion(){const N=this.props.target[this.props.propertyName].clone();this.props.target[this.props.propertyName]=this.state.value,this.setState({value:N}),this.raiseOnPropertyChanged(this.state.value,N)}updateStateX(N){this._localChange=!0,this.state.value.x=N,this.updateQuaternion()}updateStateY(N){this._localChange=!0,this.state.value.y=N,this.updateQuaternion()}updateStateZ(N){this._localChange=!0,this.state.value.z=N,this.updateQuaternion()}updateStateW(N){this._localChange=!0,this.state.value.w=N,this.updateQuaternion()}updateQuaternionFromEuler(){const N=this.state.eulerValue.toQuaternion();this.state.value.x=N.x,this.state.value.y=N.y,this.state.value.z=N.z,this.state.value.w=N.w,this.updateQuaternion()}updateStateEulerX(N){this._localChange=!0,this.state.eulerValue.x=b.Tools.ToRadians(N),this.updateQuaternionFromEuler()}updateStateEulerY(N){this._localChange=!0,this.state.eulerValue.y=b.Tools.ToRadians(N),this.updateQuaternionFromEuler()}updateStateEulerZ(N){this._localChange=!0,this.state.eulerValue.z=b.Tools.ToRadians(N),this.updateQuaternionFromEuler()}onCopyClick(){if(this.props&&this.props.target){const{className:N,babylonNamespace:w}=(0,T.getClassNameWithNamespace)(this.props.target),D="globalThis.debugNode",k=this.props.propertyName,Y=this.props.target[this.props.propertyName],V="new "+w+"Quaternion("+Y.x+", "+Y.y+", "+Y.z+", "+Y.w+")",ee=D+"."+k+" = "+V+";// (debugNode as "+w+N+")";(0,T.copyCommandToClipboard)(ee)}else(0,T.copyCommandToClipboard)("undefined")}render(){const N=this.state.isExpanded?(0,h.jsx)(S.FontAwesomeIcon,{icon:E.faMinus}):(0,h.jsx)(S.FontAwesomeIcon,{icon:E.faPlus}),w=this.state.value,D=this.state.eulerValue.clone();return D.x=b.Tools.ToDegrees(D.x),D.y=b.Tools.ToDegrees(D.y),D.z=b.Tools.ToDegrees(D.z),(0,h.jsxs)("div",{className:"vector3Line",children:[(0,h.jsxs)("div",{className:"firstLine",title:this.props.label+" (Using Quaternion)",children:[(0,h.jsx)("div",{className:"label",children:this.props.label+" (Using Quaternion)"}),(0,h.jsxs)("div",{className:"vector",children:[!this.props.useEuler&&`X: ${w.x.toFixed(1)}, Y: ${w.y.toFixed(1)}, Z: ${w.z.toFixed(1)}, W: ${w.w.toFixed(1)}`,this.props.useEuler&&`X: ${D.x.toFixed(2)}, Y: ${D.y.toFixed(2)}, Z: ${D.z.toFixed(2)}`]}),(0,h.jsx)("div",{className:"expand hoverIcon",onClick:()=>this.switchExpandState(),title:"Expand",children:N}),(0,h.jsx)("div",{className:"copy hoverIcon",onClick:()=>this.onCopyClick(),title:"Copy to clipboard",children:(0,h.jsx)("img",{src:O,alt:"Copy"})})]}),this.state.isExpanded&&!this.props.useEuler&&(0,h.jsxs)("div",{className:"secondLine",children:[(0,h.jsx)(A.NumericInput,{lockObject:this.props.lockObject,label:"x",value:w.x,onChange:k=>this.updateStateX(k)}),(0,h.jsx)(A.NumericInput,{lockObject:this.props.lockObject,label:"y",value:w.y,onChange:k=>this.updateStateY(k)}),(0,h.jsx)(A.NumericInput,{lockObject:this.props.lockObject,label:"z",value:w.z,onChange:k=>this.updateStateZ(k)}),(0,h.jsx)(A.NumericInput,{lockObject:this.props.lockObject,label:"w",value:w.w,onChange:k=>this.updateStateW(k)})]}),this.state.isExpanded&&this.props.useEuler&&(0,h.jsxs)("div",{className:"secondLine",children:[(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"x",target:D,propertyName:"x",onChange:k=>{this.updateStateEulerX(k)}}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"y",target:D,propertyName:"y",onChange:k=>{this.updateStateEulerY(k)}}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"z",target:D,propertyName:"z",onChange:k=>{this.updateStateEulerZ(k)}})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/lines/textureLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TextureLineComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),S=d("../../../dev/inspector/dist/textureHelper.js");class E extends x.Component{constructor(M){super(M),this.state={channels:E._TextureChannelStates.ALL,face:0},this._canvasRef=x.createRef()}shouldComponentUpdate(M,T){return M.texture!==this.props.texture||T.channels!==this.state.channels||T.face!==this.state.face}componentDidMount(){this.updatePreview()}componentDidUpdate(){this.updatePreview()}async updatePreview(){var D;const M=this._canvasRef.current,T=this.props.texture,O=T.getSize(),R=O.width/O.height;let I=this.props.width,N=I/R|1;const w=(D=this.props.texture.getScene())==null?void 0:D.getEngine();w&&N>w.getCaps().maxTextureSize&&(I=this.props.texture.getSize().width,N=this.props.texture.getSize().height);try{const k=await S.TextureHelper.GetTextureDataAsync(T,I,N,this.state.face,this.state.channels,this.props.globalState);M.width=I,M.height=N;const Y=M.getContext("2d");if(Y){const V=Y.createImageData(I,N);V.data.set(k),Y.putImageData(V,0,0)}M.style.height=N+"px"}catch{M.width=I,M.height=N,M.style.height=N+"px"}}render(){const M=this.props.texture;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)("div",{className:"textureLine",children:[!this.props.hideChannelSelect&&M.isCube&&(0,h.jsxs)("div",{className:"control3D",children:[(0,h.jsx)("button",{className:this.state.face===0?"px command selected":"px command",onClick:()=>this.setState({face:0}),children:"+X"}),(0,h.jsx)("button",{className:this.state.face===1?"nx command selected":"nx command",onClick:()=>this.setState({face:1}),children:"-X"}),(0,h.jsx)("button",{className:this.state.face===2?"py command selected":"py command",onClick:()=>this.setState({face:2}),children:"+Y"}),(0,h.jsx)("button",{className:this.state.face===3?"ny command selected":"ny command",onClick:()=>this.setState({face:3}),children:"-Y"}),(0,h.jsx)("button",{className:this.state.face===4?"pz command selected":"pz command",onClick:()=>this.setState({face:4}),children:"+Z"}),(0,h.jsx)("button",{className:this.state.face===5?"nz command selected":"nz command",onClick:()=>this.setState({face:5}),children:"-Z"})]}),!this.props.hideChannelSelect&&!M.isCube&&(0,h.jsxs)("div",{className:"control",children:[(0,h.jsx)("button",{className:this.state.channels===E._TextureChannelStates.R?"red command selected":"red command",onClick:()=>this.setState({channels:E._TextureChannelStates.R}),children:"R"}),(0,h.jsx)("button",{className:this.state.channels===E._TextureChannelStates.G?"green command selected":"green command",onClick:()=>this.setState({channels:E._TextureChannelStates.G}),children:"G"}),(0,h.jsx)("button",{className:this.state.channels===E._TextureChannelStates.B?"blue command selected":"blue command",onClick:()=>this.setState({channels:E._TextureChannelStates.B}),children:"B"}),(0,h.jsx)("button",{className:this.state.channels===E._TextureChannelStates.A?"alpha command selected":"alpha command",onClick:()=>this.setState({channels:E._TextureChannelStates.A}),children:"A"}),(0,h.jsx)("button",{className:this.state.channels===E._TextureChannelStates.ALL?"all command selected":"all command",onClick:()=>this.setState({channels:E._TextureChannelStates.ALL}),children:"ALL"})]}),(0,h.jsx)("canvas",{ref:this._canvasRef,className:"preview"})]}),M.isRenderTarget&&(0,h.jsx)(A.ButtonLineComponent,{label:"Refresh",onClick:()=>{this.updatePreview()}})]})}}E._TextureChannelStates={R:{R:!0,G:!1,B:!1,A:!1},G:{R:!1,G:!0,B:!1,A:!1},B:{R:!1,G:!1,B:!0,A:!1},A:{R:!1,G:!1,B:!1,A:!0},ALL:{R:!0,G:!0,B:!0,A:!0}}},"../../../dev/inspector/dist/components/actionTabs/lines/textureLinkLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TextureLinkLineComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),E=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),b=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),M=d("../../../dev/sharedUiComponents/dist/lines/textureButtonLineComponent.js");class T extends x.Component{constructor(R){super(R);const I=this.props.material,N=this.props.texture;this.state={isDebugSelected:I&&I.reservedDataStore&&I.reservedDataStore.debugTexture===N}}componentDidMount(){this.props.onDebugSelectionChangeObservable&&(this._onDebugSelectionChangeObserver=this.props.onDebugSelectionChangeObservable.add(R=>{R!==this&&this.setState({isDebugSelected:!1})}))}componentWillUnmount(){this.props.onDebugSelectionChangeObservable&&this._onDebugSelectionChangeObserver&&this.props.onDebugSelectionChangeObservable.remove(this._onDebugSelectionChangeObserver)}debugTexture(){if(this.props.customDebugAction){const Y=!this.state.isDebugSelected;this.props.customDebugAction(Y),this.setState({isDebugSelected:Y}),this.props.onDebugSelectionChangeObservable&&this.props.onDebugSelectionChangeObservable.notifyObservers(this);return}const R=this.props.texture,I=this.props.material;if(!I||!R)return;const N=I.getScene();if(I.reservedDataStore&&I.reservedDataStore.debugTexture===R){const Y=I.reservedDataStore.debugMaterial;R.level=I.reservedDataStore.level;for(const V of N.meshes)V.material===Y&&(V.material=I);Y.dispose(),I.reservedDataStore.debugTexture=null,I.reservedDataStore.debugMaterial=null,this.setState({isDebugSelected:!1});return}let w=I,D=!1;I.reservedDataStore&&I.reservedDataStore.debugTexture&&(w=I.reservedDataStore.debugMaterial,D=!0);const k=new A.StandardMaterial("debugMaterial",N);k.disableLighting=!0,k.sideOrientation=I.sideOrientation,k.emissiveTexture=R,k.forceDepthWrite=!0,k.reservedDataStore={hidden:!0};for(const Y of N.meshes)Y.material===w&&(Y.material=k);I.reservedDataStore||(I.reservedDataStore={}),I.reservedDataStore.debugTexture=R,I.reservedDataStore.debugMaterial=k,I.reservedDataStore.level=R.level,R.level=1,this.props.onDebugSelectionChangeObservable&&this.props.onDebugSelectionChangeObservable.notifyObservers(this),D&&w.dispose(),this.setState({isDebugSelected:!0})}onLink(){if(!this.props.onSelectionChangedObservable)return;const R=this.props.texture;this.props.onSelectionChangedObservable.notifyObservers(R)}onLinkTexture(R){const I=this.props.material??this.props.texturedObject;I&&(this.props.propertyName?I[this.props.propertyName]=R:this.props.onTextureCreated&&this.props.onTextureCreated(R),this.forceUpdate())}updateTexture(R){const I=this.props.material??this.props.texturedObject;I&&A.Tools.ReadFile(R,N=>{var V;const w=new Blob([N],{type:"octet/stream"}),D=URL.createObjectURL(w),k=(V=R.name.split(".").pop())==null?void 0:V.toLowerCase(),Y=this.props.cubeOnly?new A.CubeTexture(D,I.getScene(),[],!1,void 0,void 0,void 0,void 0,!1,k?"."+k:void 0):new A.Texture(D,I.getScene(),!1,!1);this.props.propertyName?I[this.props.propertyName]=Y:this.props.onTextureCreated&&this.props.onTextureCreated(Y),this.forceUpdate()},void 0,!0)}removeTexture(){const R=this.props.material??this.props.texturedObject;R&&(this.props.propertyName?R[this.props.propertyName]=null:this.props.onTextureRemoved&&this.props.onTextureRemoved(),this.forceUpdate())}render(){const R=this.props.texture,I=this.props.material??this.props.texturedObject;return R?(0,h.jsxs)("div",{className:"textureLinkLine",children:[(this.props.material||this.props.texturedObject)&&(0,h.jsx)(h.Fragment,{children:(0,h.jsxs)("div",{className:this.state.isDebugSelected?"debug selected":"debug",children:[(!R.isCube||this.props.cubeOnly)&&this.props.material&&(0,h.jsx)("span",{className:"actionIcon",onClick:()=>this.debugTexture(),title:"Render as main texture",children:(0,h.jsx)(E.FontAwesomeIcon,{icon:b.faWrench})}),(0,h.jsx)("span",{className:"actionIcon",onClick:()=>this.removeTexture(),title:"Remove texture",children:(0,h.jsx)(E.FontAwesomeIcon,{icon:b.faTrash})})]})}),(0,h.jsx)(S.TextLineComponent,{label:this.props.label,value:R.displayName||R.name,onLink:()=>this.onLink()})]}):I&&(this.props.propertyName||this.props.onTextureCreated)?(0,h.jsx)(M.TextureButtonLine,{scene:I.getScene(),label:`${this.props.label}`,onLink:N=>this.onLinkTexture(N),onClick:N=>this.updateTexture(N),accept:this.props.fileFormats??".jpg, .png, .tga, .dds, .env, .exr"}):null}}},"../../../dev/inspector/dist/components/actionTabs/paneComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PaneComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E)}render(){return(0,h.jsx)("div",{className:"pane"})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/debugTabComponent.js":(m,_,d)=>{d.r(_),d.d(_,{DebugTabComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../dev/inspector/dist/components/actionTabs/paneComponent.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/renderGridPropertyGridComponent.js"),b=d("core/Debug/physicsViewer"),M=d("core/Misc/observable");class T extends x.PaneComponent{constructor(R){super(R),this._physicsViewersEnabled=!1;const I=this.props.scene;I&&(I.reservedDataStore||(I.reservedDataStore={}),this._physicsViewersEnabled=I.reservedDataStore.physicsViewer!=null)}switchPhysicsViewers(){this._physicsViewersEnabled=!this._physicsViewersEnabled;const R=this.props.scene;if(this._physicsViewersEnabled){const I=new b.PhysicsViewer(R);R.reservedDataStore.physicsViewer=I;for(const N of R.meshes)if(N.physicsImpostor){const w=I.showImpostor(N.physicsImpostor,N);w&&(w.reservedDataStore={hidden:!0},w.material.reservedDataStore={hidden:!0})}else if(N.physicsBody){const w=I.showBody(N.physicsBody);w&&(w.reservedDataStore={hidden:!0},w.material.reservedDataStore={hidden:!0})}for(const N of R.transformNodes)if(N.physicsBody){const w=I.showBody(N.physicsBody);w&&(w.reservedDataStore={hidden:!0},w.material.reservedDataStore={hidden:!0})}}else R.reservedDataStore.physicsViewer.dispose(),R.reservedDataStore.physicsViewer=null}render(){const R=this.props.scene;return R?(0,h.jsxs)("div",{className:"pane",children:[(0,h.jsxs)(A.LineContainerComponent,{title:"HELPERS",selection:this.props.globalState,children:[(0,h.jsx)(E.RenderGridPropertyGridComponent,{globalState:this.props.globalState,scene:R}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Physics",isSelected:()=>this._physicsViewersEnabled,onSelect:()=>this.switchPhysicsViewers()})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"CORE TEXTURE CHANNELS",selection:this.props.globalState,children:[(0,h.jsx)(S.CheckBoxLineComponent,{label:"Diffuse",isSelected:()=>M.StandardMaterial.DiffuseTextureEnabled,onSelect:()=>M.StandardMaterial.DiffuseTextureEnabled=!M.StandardMaterial.DiffuseTextureEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Ambient",isSelected:()=>M.StandardMaterial.AmbientTextureEnabled,onSelect:()=>M.StandardMaterial.AmbientTextureEnabled=!M.StandardMaterial.AmbientTextureEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Specular",isSelected:()=>M.StandardMaterial.SpecularTextureEnabled,onSelect:()=>M.StandardMaterial.SpecularTextureEnabled=!M.StandardMaterial.SpecularTextureEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Emissive",isSelected:()=>M.StandardMaterial.EmissiveTextureEnabled,onSelect:()=>M.StandardMaterial.EmissiveTextureEnabled=!M.StandardMaterial.EmissiveTextureEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Bump",isSelected:()=>M.StandardMaterial.BumpTextureEnabled,onSelect:()=>M.StandardMaterial.BumpTextureEnabled=!M.StandardMaterial.BumpTextureEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Opacity",isSelected:()=>M.StandardMaterial.OpacityTextureEnabled,onSelect:()=>M.StandardMaterial.OpacityTextureEnabled=!M.StandardMaterial.OpacityTextureEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Reflection",isSelected:()=>M.StandardMaterial.ReflectionTextureEnabled,onSelect:()=>M.StandardMaterial.ReflectionTextureEnabled=!M.StandardMaterial.ReflectionTextureEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Refraction",isSelected:()=>M.StandardMaterial.RefractionTextureEnabled,onSelect:()=>M.StandardMaterial.RefractionTextureEnabled=!M.StandardMaterial.RefractionTextureEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"ColorGrading",isSelected:()=>M.StandardMaterial.ColorGradingTextureEnabled,onSelect:()=>M.StandardMaterial.ColorGradingTextureEnabled=!M.StandardMaterial.ColorGradingTextureEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Lightmap",isSelected:()=>M.StandardMaterial.LightmapTextureEnabled,onSelect:()=>M.StandardMaterial.LightmapTextureEnabled=!M.StandardMaterial.LightmapTextureEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Fresnel",isSelected:()=>M.StandardMaterial.FresnelEnabled,onSelect:()=>M.StandardMaterial.FresnelEnabled=!M.StandardMaterial.FresnelEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Detail",isSelected:()=>M.MaterialFlags.DetailTextureEnabled,onSelect:()=>M.MaterialFlags.DetailTextureEnabled=!M.MaterialFlags.DetailTextureEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Decal",isSelected:()=>M.MaterialFlags.DecalMapEnabled,onSelect:()=>M.MaterialFlags.DecalMapEnabled=!M.MaterialFlags.DecalMapEnabled})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"FEATURES",selection:this.props.globalState,children:[(0,h.jsx)(S.CheckBoxLineComponent,{label:"Animations",isSelected:()=>R.animationsEnabled,onSelect:()=>R.animationsEnabled=!R.animationsEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Physics",isSelected:()=>R.physicsEnabled,onSelect:()=>R.physicsEnabled=!R.physicsEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Collisions",isSelected:()=>R.collisionsEnabled,onSelect:()=>R.collisionsEnabled=!R.collisionsEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Fog",isSelected:()=>R.fogEnabled,onSelect:()=>R.fogEnabled=!R.fogEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Lens flares",isSelected:()=>R.lensFlaresEnabled,onSelect:()=>R.lensFlaresEnabled=!R.lensFlaresEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Lights",isSelected:()=>R.lightsEnabled,onSelect:()=>R.lightsEnabled=!R.lightsEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Particles",isSelected:()=>R.particlesEnabled,onSelect:()=>R.particlesEnabled=!R.particlesEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Post-processes",isSelected:()=>R.postProcessesEnabled,onSelect:()=>R.postProcessesEnabled=!R.postProcessesEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Probes",isSelected:()=>R.probesEnabled,onSelect:()=>R.probesEnabled=!R.probesEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Textures",isSelected:()=>R.texturesEnabled,onSelect:()=>R.texturesEnabled=!R.texturesEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Procedural textures",isSelected:()=>R.proceduralTexturesEnabled,onSelect:()=>R.proceduralTexturesEnabled=!R.proceduralTexturesEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Render targets",isSelected:()=>R.renderTargetsEnabled,onSelect:()=>R.renderTargetsEnabled=!R.renderTargetsEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Shadows",isSelected:()=>R.shadowsEnabled,onSelect:()=>R.shadowsEnabled=!R.shadowsEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Skeletons",isSelected:()=>R.skeletonsEnabled,onSelect:()=>R.skeletonsEnabled=!R.skeletonsEnabled}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Sprites",isSelected:()=>R.spritesEnabled,onSelect:()=>R.spritesEnabled=!R.spritesEnabled})]})]}):null}}},"../../../dev/inspector/dist/components/actionTabs/tabs/gradientNodePropertyComponent.js":(m,_,d)=>{d.r(_),d.d(_,{GradientPropertyTabComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/gradientStepComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js");class b extends x.Component{constructor(T){super(T),this._gradientBlock=this.props.block}forceRebuild(){this._gradientBlock.colorStepsUpdated(),this.forceUpdate()}deleteStep(T){const O=this._gradientBlock.colorSteps.indexOf(T);O>-1&&(this._gradientBlock.colorSteps.splice(O,1),this.forceRebuild())}copyStep(T){const O=this.props.block,R=new A.GradientBlockColorStep(1,T.color);O.colorSteps.push(R),O.colorStepsUpdated(),this.forceRebuild(),this.forceUpdate()}addNewStep(){const T=new A.GradientBlockColorStep(1,A.Color3.White());this._gradientBlock.colorSteps.push(T),this.forceRebuild()}checkForReOrder(){this._gradientBlock.colorSteps.sort((T,O)=>T.step-O.step),this.forceRebuild()}render(){return(0,h.jsxs)("div",{children:[(0,h.jsx)(E.ButtonLineComponent,{label:"Add new step",onClick:()=>this.addNewStep()}),this._gradientBlock.colorSteps.map((T,O)=>(0,h.jsx)(S.GradientStepComponent,{globalState:this.props.globalState,onCheckForReOrder:()=>this.checkForReOrder(),onUpdateStep:()=>this.forceRebuild(),lineIndex:O,step:T,onCopy:()=>this.copyStep(T),onDelete:()=>this.deleteStep(T)},"step-"+O))]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/gradientStepComponent.js":(m,_,d)=>{d.r(_),d.d(_,{GradientStepComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/colorPickerComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/lines/delete.svg"),b=d("../../../dev/sharedUiComponents/dist/imgs/copyStep.svg");class M extends x.Component{constructor(O){super(O),this.state={gradient:O.step.step}}updateColor(O){this.props.step.color=A.Color3.FromHexString(O),this.props.onUpdateStep(),this.forceUpdate()}updateStep(O){this.props.step.step=O,this.setState({gradient:O}),this.props.onUpdateStep()}onPointerUp(){this.props.onCheckForReOrder()}render(){const O=this.props.step;return(0,h.jsxs)("div",{className:"gradient-step",children:[(0,h.jsx)("div",{className:"step",children:`#${this.props.lineIndex}`}),(0,h.jsx)("div",{className:"color",children:(0,h.jsx)(S.ColorPickerLine,{lockObject:this.props.lockObject,value:O.color,onColorChanged:R=>{this.updateColor(R)}})}),(0,h.jsx)("div",{className:"step-value",children:O.step.toFixed(2)}),(0,h.jsx)("div",{className:"step-slider slider",children:(0,h.jsx)("input",{className:"range",type:"range",step:.01,min:0,max:1,value:O.step,onPointerUp:()=>this.onPointerUp(),onChange:R=>this.updateStep(parseFloat(R.target.value))})}),(0,h.jsx)("div",{className:"gradient-copy",onClick:()=>{this.props.onCopy&&this.props.onCopy()},title:"Copy Step",children:(0,h.jsx)("img",{className:"img",src:b})}),(0,h.jsx)("div",{className:"gradient-delete",onClick:()=>this.props.onDelete(),title:"Delete Step",children:(0,h.jsx)("img",{className:"img",src:E})})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/performancePlayheadButtonComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PerformancePlayheadButtonComponent:()=>x});var h=d("../../../../node_modules/react/jsx-runtime.js");const x=({returnToPlayhead:A})=>{const S=()=>{A.notifyObservers()};return(0,h.jsx)("button",{className:"performancePlayheadButton",onClick:S,title:"Return to Playhead",children:"Return"})}},"../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/performanceViewerComponent.js":(m,_,d)=>{d.r(_),d.d(_,{IPerfMetadataCategory:()=>I,PerformanceViewerComponent:()=>w});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("core/Misc/observable"),A=d("../../../../node_modules/react/index.js"),S=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/fileButtonLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),M=d("../../../dev/inspector/dist/inspector.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/performanceViewerPopupComponent.js");d("../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/scss/performanceViewer.scss");const O={width:1024,height:512},R={width:724,height:512};var I;(function(D){D.Count="Count",D.FrameSteps="Frame Steps Duration"})(I||(I={}));const N=[{strategyCallback:x.PerfCollectionStrategy.FpsStrategy()},{strategyCallback:x.PerfCollectionStrategy.TotalMeshesStrategy(),category:I.Count,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.ActiveMeshesStrategy(),category:I.Count,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.ActiveIndicesStrategy(),category:I.Count,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.ActiveBonesStrategy(),category:I.Count,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.ActiveParticlesStrategy(),category:I.Count,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.DrawCallsStrategy(),category:I.Count,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.TotalLightsStrategy(),category:I.Count,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.TotalVerticesStrategy(),category:I.Count,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.TotalMaterialsStrategy(),category:I.Count,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.TotalTexturesStrategy(),category:I.Count,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.AbsoluteFpsStrategy(),category:I.FrameSteps,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.MeshesSelectionStrategy(),category:I.FrameSteps,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.RenderTargetsStrategy(),category:I.FrameSteps,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.ParticlesStrategy(),category:I.FrameSteps,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.SpritesStrategy(),category:I.FrameSteps,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.AnimationsStrategy(),category:I.FrameSteps,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.PhysicsStrategy(),category:I.FrameSteps,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.RenderStrategy(),category:I.FrameSteps,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.FrameTotalStrategy(),category:I.FrameSteps,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.InterFrameStrategy(),category:I.FrameSteps,hidden:!0},{strategyCallback:x.PerfCollectionStrategy.GpuFrameTimeStrategy(),category:I.FrameSteps,hidden:!0}],w=D=>{const{scene:k}=D,[Y,V]=(0,A.useState)(!1),[ee,K]=(0,A.useState)(!1),[ie,ne]=(0,A.useState)(),[te]=(0,A.useState)(new x.Observable),[W]=(0,A.useState)(new x.Observable),Q=Ae=>{Ae&&Ae.close(),K(!1),V(!1)};(0,A.useEffect)(()=>{ee||ie&&(ie.stop(),ie.clear(!1),fe(ie))},[ee]);const re=()=>{ie&&M.Inspector._CreatePersistentPopup({props:{id:"performance-viewer",title:"Realtime Performance Viewer",onClose:Q,onResize:ue,size:O},children:(0,h.jsx)(T.PerformanceViewerPopupComponent,{scene:k,layoutObservable:te,returnToLiveObservable:W,performanceCollector:ie,initialGraphSize:R})},document.body)},oe=()=>{V(!0),ie==null||ie.start(!0),re()},X=Ae=>{x.Tools.ReadFile(Ae,Se=>{V(!1),K(!0),ie==null||ie.stop(),(ie==null?void 0:ie.loadFromFileData(Se))?re():(V(!1),ie==null||ie.start(!0))})},se=()=>{ie==null||ie.exportDataToCsv()},ue=Ae=>{const Se=(Ae==null?void 0:Ae.innerWidth)??0,we=(Ae==null?void 0:Ae.innerHeight)??0;te.notifyObservers({width:Se,height:we})},he=()=>{ie!=null&&ie.isStarted?ie==null||ie.stop():ie==null||ie.start(!0)},fe=Ae=>{Ae.addCollectionStrategies(...N),x.PressureObserverWrapper.IsAvailable&&Ae.addCollectionStrategies({strategyCallback:x.PerfCollectionStrategy.PressureStrategy(),category:I.FrameSteps,hidden:!0})};return(0,A.useEffect)(()=>{const Ae=k.getPerfCollector();fe(Ae),ne(Ae)},[]),(0,h.jsxs)(b.LineContainerComponent,{title:"Performance Viewer",children:[!Y&&(0,h.jsx)(S.ButtonLineComponent,{label:"Open Realtime Perf Viewer",onClick:oe}),!Y&&(0,h.jsx)(E.FileButtonLine,{accept:"csv",label:"Load Perf Viewer using CSV",onClick:X}),(0,h.jsx)(S.ButtonLineComponent,{label:"Export Perf to CSV",onClick:se}),!Y&&(0,h.jsx)(S.ButtonLineComponent,{label:ie!=null&&ie.isStarted?"Stop Recording":"Begin Recording",onClick:he})]})}},"../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/performanceViewerPopupComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PerformanceViewerPopupComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/performanceViewerSidebarComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/performancePlayheadButtonComponent.js"),b=d("../../../dev/inspector/dist/components/graph/canvasGraphComponent.js");const M=T=>{const{scene:O,layoutObservable:R,returnToLiveObservable:I,performanceCollector:N,initialGraphSize:w}=T,[D]=(0,x.useState)(new A.Observable);return(0,h.jsxs)("div",{id:"performance-viewer",children:[(0,h.jsx)(E.PerformancePlayheadButtonComponent,{returnToPlayhead:I}),(0,h.jsx)(S.PerformanceViewerSidebarComponent,{collector:N,onVisibleRangeChangedObservable:D}),(0,h.jsx)(b.CanvasGraphComponent,{id:"performance-viewer-graph",returnToPlayheadObservable:I,layoutObservable:R,scene:O,collector:N,onVisibleRangeChangedObservable:D,initialGraphSize:w})]})}},"../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/performanceViewerSidebarComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PerformanceViewerSidebarComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("core/Misc/observable"),A=d("../../../../node_modules/react/index.js"),S=d("../../../dev/sharedUiComponents/dist/lines/colorPickerComponent.js"),E=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");const M=T=>{const{collector:O,onVisibleRangeChangedObservable:R}=T,[I,N]=(0,A.useState)(),[w,D]=(0,A.useState)(),[k,Y]=(0,A.useState)(),[V,ee]=(0,A.useState)(),[K,ie]=(0,A.useState)();(0,A.useEffect)(()=>{if(!R)return;const Q=re=>{ie(re.valueMap)};return R.add(Q),()=>{R.removeCallback(Q)}},[R]),(0,A.useEffect)(()=>{const Q=re=>{const oe=new Map,X=new Map;re.forEach((ue,he)=>{const fe=ue.category??"",Ae=oe.get(fe)??[];let Se=X.get(fe)??0;Ae.push(he),oe.set(fe,Ae),ue.hidden||(Se+=1),X.set(fe,Se)});const se=Array.from(oe.keys());se.sort(),D(oe),Y(X),N(re),ee(se)};return O.metadataObservable.add(Q),()=>{O.metadataObservable.removeCallback(Q)}},[]);const ne=Q=>re=>{O.updateMetadata(Q,"hidden",!re)},te=Q=>re=>{const oe=w==null?void 0:w.get(Q);oe==null||oe.forEach(X=>{O.updateMetadata(X,"hidden",!re)})},W=Q=>re=>{O.updateMetadata(Q,"color",re)};return(0,h.jsx)("div",{id:"performance-viewer-sidebar",children:V&&V.map(Q=>{var re;return(0,h.jsxs)("div",{children:[Q?(0,h.jsxs)("div",{className:"category-header header sidebar-item",children:[(0,h.jsx)("span",{className:"category",children:Q}),(0,h.jsx)(b.CheckBoxLineComponent,{isSelected:()=>{var oe;return(k==null?void 0:k.get(Q))===((oe=w==null?void 0:w.get(Q))==null?void 0:oe.length)},onSelect:te(Q),faIcons:{enabled:E.faCheckSquare,disabled:E.faSquare}})]},`header-${Q}`):(0,h.jsxs)("div",{className:"version-header sidebar-item",children:[(0,h.jsx)("span",{className:"category",children:"Version:"}),(0,h.jsx)("span",{className:"value",children:x.Engine.Version})]},"header-version"),(re=w==null?void 0:w.get(Q))==null?void 0:re.map(oe=>{const X=I==null?void 0:I.get(oe),se=K==null?void 0:K.get(oe);return X&&(0,h.jsxs)("div",{className:"sidebar-item measure",children:[(0,h.jsxs)("div",{className:"category",children:[(0,h.jsx)(b.CheckBoxLineComponent,{isSelected:()=>!X.hidden,onSelect:ne(oe),faIcons:{enabled:E.faCheckSquare,disabled:E.faSquare}}),(0,h.jsx)(S.ColorPickerLine,{value:x.Color3.FromHexString(X.color??"#000"),onColorChanged:W(oe),shouldPopRight:!0}),(0,h.jsx)("span",{className:"sidebar-item-label",children:oe})]}),se&&(0,h.jsxs)("div",{className:"value",children:[" ",((se.min+se.max)/2).toFixed(2)," "]})]},`perf-sidebar-item-${oe}`)})]},`category-${Q||"version"}`)})})}},"../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/scss/performanceViewer.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>k});var h=d("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),x=d.n(h),A=d("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),S=d.n(A),E=d("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),b=d.n(E),M=d("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),T=d.n(M),O=d("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),R=d.n(O),I=d("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),N=d.n(I),w=d("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/scss/performanceViewer.scss"),D={};D.styleTagTransform=N(),D.setAttributes=T(),D.insert=b().bind(null,"head"),D.domAPI=S(),D.insertStyleElement=R(),x()(w.default,D);const k=w.default&&w.default.locals?w.default.locals:void 0},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGridTabComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PropertyGridTabComponent:()=>qe});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../dev/inspector/dist/components/actionTabs/paneComponent.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/materialPropertyGridComponent.js"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/standardMaterialPropertyGridComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/texturePropertyGridComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/pbrMaterialPropertyGridComponent.js"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/scenePropertyGridComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/hemisphericLightPropertyGridComponent.js"),O=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/pointLightPropertyGridComponent.js"),R=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/cameras/freeCameraPropertyGridComponent.js"),I=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/cameras/arcRotateCameraPropertyGridComponent.js"),N=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/meshPropertyGridComponent.js"),w=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/transformNodePropertyGridComponent.js"),D=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/backgroundMaterialPropertyGridComponent.js"),k=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/controlPropertyGridComponent.js"),Y=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/textBlockPropertyGridComponent.js"),V=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/inputTextPropertyGridComponent.js"),ee=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/colorPickerPropertyGridComponent.js"),K=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/animationGroupPropertyGridComponent.js"),ie=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/lockObject.js"),ne=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/imagePropertyGridComponent.js"),te=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/sliderPropertyGridComponent.js"),W=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/imageBasedSliderPropertyGridComponent.js"),Q=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/rectanglePropertyGridComponent.js"),re=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/ellipsePropertyGridComponent.js"),oe=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/checkboxPropertyGridComponent.js"),X=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/radioButtonPropertyGridComponent.js"),se=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/linePropertyGridComponent.js"),ue=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/scrollViewerPropertyGridComponent.js"),he=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/gridPropertyGridComponent.js"),fe=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/pbrMetallicRoughnessMaterialPropertyGridComponent.js"),Ae=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/pbrSpecularGlossinessMaterialPropertyGridComponent.js"),Se=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/stackPanelPropertyGridComponent.js"),we=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/postProcessPropertyGridComponent.js"),ke=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/renderingPipelinePropertyGridComponent.js"),st=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/defaultRenderingPipelinePropertyGridComponent.js"),Ve=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/ssaoRenderingPipelinePropertyGridComponent.js"),Ke=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/ssao2RenderingPipelinePropertyGridComponent.js"),ct=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/iblShadowsRenderPipelinePropertyGridComponent.js"),nt=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/ssrRenderingPipelinePropertyGridComponent.js"),at=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/skeletonPropertyGridComponent.js"),xt=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/bonePropertyGridComponent.js"),Qe=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/directionalLightPropertyGridComponent.js"),kt=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/spotLightPropertyGridComponent.js"),ot=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/rectAreaLightPropertyGridComponent.js"),At=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/lensRenderingPipelinePropertyGridComponent.js"),Me=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/nodeMaterialPropertyGridComponent.js"),je=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/multiMaterialPropertyGridComponent.js"),rt=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/particleSystemPropertyGridComponent.js"),yt=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/sprites/spriteManagerPropertyGridComponent.js"),Rt=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/sprites/spritePropertyGridComponent.js"),Nt=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/targetedAnimationPropertyGridComponent.js"),Kt=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/cameras/followCameraPropertyGridComponent.js"),si=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/sounds/soundPropertyGridComponent.js"),Pi=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/layers/layerPropertyGridComponent.js"),gi=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/frameGraphs/frameGraphPropertyGridComponent.js"),bi=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/emptyPropertyGridComponent.js"),wi=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/metadata/metadataPropertyGridComponent.js"),Ni=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/skyMaterialPropertyGridComponent.js"),qt=d("core/Misc/observable"),ci=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js");class qe extends x.PaneComponent{constructor(Ot){super(Ot),this._lockObject=new ie.LockObject}timerRefresh(){this._lockObject.lock||this.forceUpdate()}componentDidMount(){this._timerIntervalId=window.setInterval(()=>this.timerRefresh(),500)}componentWillUnmount(){window.clearInterval(this._timerIntervalId)}renderContent(){const Ot=this.props.selectedEntity;if(!Ot)return(0,h.jsx)("div",{className:"infoMessage",children:"Please select an entity in the scene explorer."});if(Ot.getClassName){const mt=Ot.getClassName();if(mt==="Scene"){const Ye=Ot;return(0,h.jsx)(M.ScenePropertyGridComponent,{scene:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="Sound"){const Ye=Ot;return(0,h.jsx)(si.SoundPropertyGridComponent,{sound:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="Sprite"){const Ye=Ot;return(0,h.jsx)(Rt.SpritePropertyGridComponent,{sprite:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="SpriteManager"){const Ye=Ot;return(0,h.jsx)(yt.SpriteManagerPropertyGridComponent,{spriteManager:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("Mesh")!==-1){const Ye=Ot;if(Ye.getTotalVertices()>0)return(0,h.jsx)("div",{children:(0,h.jsx)(N.MeshPropertyGridComponent,{globalState:this.props.globalState,mesh:Ye,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})})}if(mt.indexOf("ParticleSystem")!==-1){const Ye=Ot;return(0,h.jsx)(rt.ParticleSystemPropertyGridComponent,{globalState:this.props.globalState,system:Ye,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("FreeCamera")!==-1||mt.indexOf("UniversalCamera")!==-1||mt.indexOf("WebXRCamera")!==-1||mt.indexOf("DeviceOrientationCamera")!==-1){const Ye=Ot;return(0,h.jsx)(R.FreeCameraPropertyGridComponent,{globalState:this.props.globalState,camera:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("ArcRotateCamera")!==-1){const Ye=Ot;return(0,h.jsx)(I.ArcRotateCameraPropertyGridComponent,{globalState:this.props.globalState,camera:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("FollowCamera")!==-1){const Ye=Ot;return(0,h.jsx)(Kt.FollowCameraPropertyGridComponent,{globalState:this.props.globalState,camera:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="HemisphericLight"){const Ye=Ot;return(0,h.jsx)(T.HemisphericLightPropertyGridComponent,{globalState:this.props.globalState,light:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="PointLight"){const Ye=Ot;return(0,h.jsx)(O.PointLightPropertyGridComponent,{globalState:this.props.globalState,light:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="DirectionalLight"){const Ye=Ot;return(0,h.jsx)(Qe.DirectionalLightPropertyGridComponent,{globalState:this.props.globalState,light:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="SpotLight"){const Ye=Ot;return(0,h.jsx)(kt.SpotLightPropertyGridComponent,{globalState:this.props.globalState,light:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelectionChangedObservable:this.props.onSelectionChangedObservable})}if(mt==="RectAreaLight"){const Ye=Ot;return(0,h.jsx)(ot.RectAreaLightPropertyGridComponent,{globalState:this.props.globalState,light:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelectionChangedObservable:this.props.onSelectionChangedObservable})}if(mt.indexOf("TransformNode")!==-1||mt.indexOf("Mesh")!==-1){const Ye=Ot;return(0,h.jsx)(w.TransformNodePropertyGridComponent,{transformNode:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="MultiMaterial"){const Ye=Ot;return(0,h.jsx)(je.MultiMaterialPropertyGridComponent,{globalState:this.props.globalState,material:Ye,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="StandardMaterial"){const Ye=Ot;return(0,h.jsx)(S.StandardMaterialPropertyGridComponent,{globalState:this.props.globalState,material:Ye,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="NodeMaterial"){const Ye=Ot;return(0,h.jsx)(Me.NodeMaterialPropertyGridComponent,{globalState:this.props.globalState,material:Ye,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="PBRMaterial"){const Ye=Ot;return(0,h.jsx)(b.PBRMaterialPropertyGridComponent,{globalState:this.props.globalState,material:Ye,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="PBRMetallicRoughnessMaterial"){const Ye=Ot;return(0,h.jsx)(fe.PBRMetallicRoughnessMaterialPropertyGridComponent,{globalState:this.props.globalState,material:Ye,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="PBRSpecularGlossinessMaterial"){const Ye=Ot;return(0,h.jsx)(Ae.PBRSpecularGlossinessMaterialPropertyGridComponent,{globalState:this.props.globalState,material:Ye,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="SkyMaterial"){const Ye=Ot;return(0,h.jsx)(Ni.SkyMaterialPropertyGridComponent,{globalState:this.props.globalState,material:Ye,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="BackgroundMaterial"){const Ye=Ot;return(0,h.jsx)(D.BackgroundMaterialPropertyGridComponent,{globalState:this.props.globalState,material:Ye,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="AnimationGroup"){const Ye=Ot;return(0,h.jsx)(K.AnimationGroupGridComponent,{globalState:this.props.globalState,animationGroup:Ye,scene:this.props.scene,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="TargetedAnimation"){const Ye=Ot;return(0,h.jsx)(Nt.TargetedAnimationGridComponent,{globalState:this.props.globalState,targetedAnimation:Ye,scene:this.props.scene,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("Material")!==-1){const Ye=Ot;return(0,h.jsx)(A.MaterialPropertyGridComponent,{material:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("DefaultRenderingPipeline")!==-1){const Ye=Ot;return(0,h.jsx)(st.DefaultRenderingPipelinePropertyGridComponent,{renderPipeline:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("LensRenderingPipeline")!==-1){const Ye=Ot;return(0,h.jsx)(At.LensRenderingPipelinePropertyGridComponent,{renderPipeline:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("SSAORenderingPipeline")!==-1){const Ye=Ot;return(0,h.jsx)(Ve.SSAORenderingPipelinePropertyGridComponent,{renderPipeline:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("SSAO2RenderingPipeline")!==-1){const Ye=Ot;return(0,h.jsx)(Ke.SSAO2RenderingPipelinePropertyGridComponent,{renderPipeline:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("SSRRenderingPipeline")!==-1){const Ye=Ot;return(0,h.jsx)(nt.SSRRenderingPipelinePropertyGridComponent,{renderPipeline:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("IBLShadowsRenderPipeline")!==-1){const Ye=Ot;return(0,h.jsx)(ct.IblShadowsRenderPipelinePropertyGridComponent,{renderPipeline:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("RenderingPipeline")!==-1){const Ye=Ot;return(0,h.jsx)(ke.RenderingPipelinePropertyGridComponent,{renderPipeline:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("PostProcess")!==-1){const Ye=Ot;return(0,h.jsx)(we.PostProcessPropertyGridComponent,{postProcess:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("Layer")!==-1){const Ye=Ot;return(0,h.jsx)(Pi.LayerPropertyGridComponent,{layer:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("FrameGraph")!==-1){const Ye=Ot;return(0,h.jsx)(gi.FrameGraphPropertyGridComponent,{frameGraph:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("Texture")!==-1){const Ye=Ot;return(0,h.jsx)(E.TexturePropertyGridComponent,{texture:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("Skeleton")!==-1){const Ye=Ot;return(0,h.jsx)(at.SkeletonPropertyGridComponent,{skeleton:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt.indexOf("Bone")!==-1){const Ye=Ot;return(0,h.jsx)(xt.BonePropertyGridComponent,{bone:Ye,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="TextBlock"){const Ye=Ot;return(0,h.jsx)(Y.TextBlockPropertyGridComponent,{textBlock:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="InputText"){const Ye=Ot;return(0,h.jsx)(V.InputTextPropertyGridComponent,{inputText:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="ColorPicker"){const Ye=Ot;return(0,h.jsx)(ee.ColorPickerPropertyGridComponent,{colorPicker:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="Image"){const Ye=Ot;return(0,h.jsx)(ne.ImagePropertyGridComponent,{image:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="Slider"){const Ye=Ot;return(0,h.jsx)(te.SliderPropertyGridComponent,{slider:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="ImageBasedSlider"){const Ye=Ot;return(0,h.jsx)(W.ImageBasedSliderPropertyGridComponent,{imageBasedSlider:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="Rectangle"){const Ye=Ot;return(0,h.jsx)(Q.RectanglePropertyGridComponent,{rectangle:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="StackPanel"){const Ye=Ot;return(0,h.jsx)(Se.StackPanelPropertyGridComponent,{stackPanel:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="Grid"){const Ye=Ot;return(0,h.jsx)(he.GridPropertyGridComponent,{grid:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="ScrollViewer"){const Ye=Ot;return(0,h.jsx)(ue.ScrollViewerPropertyGridComponent,{scrollViewer:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="Ellipse"){const Ye=Ot;return(0,h.jsx)(re.EllipsePropertyGridComponent,{ellipse:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="Checkbox"){const Ye=Ot;return(0,h.jsx)(oe.CheckboxPropertyGridComponent,{checkbox:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="RadioButton"){const Ye=Ot;return(0,h.jsx)(X.RadioButtonPropertyGridComponent,{radioButtons:[Ye],lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(mt==="Line"){const Ye=Ot;return(0,h.jsx)(se.LinePropertyGridComponent,{line:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(Ot._host){const Ye=Ot;return(0,h.jsx)(k.ControlPropertyGridComponent,{control:Ye,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}return(0,h.jsx)(bi.EmptyPropertyGridComponent,{item:Ot,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable,globalState:this.props.globalState})}return null}renderTags(){return Object.keys(qt.Tags.GetTags(this.props.selectedEntity,!1)).map((mt,Ye)=>(0,h.jsx)("div",{className:"tag",children:mt},"tag"+Ye))}render(){const Ot=this.props.selectedEntity||{},mt=Object.prototype.hasOwnProperty.call(Ot,"metadata");return(0,h.jsxs)("div",{className:"pane",children:[this.renderContent(),qt.Tags.HasTags(Ot)&&(0,h.jsx)(ci.LineContainerComponent,{title:"TAGS",selection:this.props.globalState,children:(0,h.jsx)("div",{className:"tagContainer",children:this.renderTags()})}),mt&&(0,h.jsx)(wi.MetadataGridComponent,{globalState:this.props.globalState,entity:Ot})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/animationGroupPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{AnimationGroupGridComponent:()=>N});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/context.js"),O=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/animationCurveEditorComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),I=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class N extends x.Component{constructor(D){super(D);const k=this.props.animationGroup;this.state={playButtonText:k.isPlaying?"Pause":"Play",currentFrame:0},this._timelineRef=x.createRef()}componentDidMount(){this.connect(this.props.animationGroup),this._onBeforeRenderObserver=this.props.scene.onBeforeRenderObservable.add(()=>{this.updateCurrentFrame(this.props.animationGroup)})}disconnect(D){this._onAnimationGroupPlayObserver&&(D.onAnimationGroupPlayObservable.remove(this._onAnimationGroupPlayObserver),this._onAnimationGroupPlayObserver=null),this._onAnimationGroupPauseObserver&&(D.onAnimationGroupPauseObservable.remove(this._onAnimationGroupPauseObserver),this._onAnimationGroupPauseObserver=null)}connect(D){this._onAnimationGroupPlayObserver=D.onAnimationGroupPlayObservable.add(()=>{this.forceUpdate()}),this._onAnimationGroupPauseObserver=D.onAnimationGroupPauseObservable.add(()=>{this.forceUpdate()}),this.updateCurrentFrame(D)}updateCurrentFrame(D){const k=D.targetedAnimations;if(k.length>0){const Y=k[0].animation.runtimeAnimations.find(V=>V.target===k[0].target);Y?this.setState({currentFrame:Y.currentFrame}):this.setState({currentFrame:0})}}shouldComponentUpdate(D){return this.props.animationGroup!==D.animationGroup&&(this.disconnect(this.props.animationGroup),this.connect(D.animationGroup)),!0}componentWillUnmount(){this.disconnect(this.props.animationGroup),this._onBeforeRenderObserver&&(this.props.scene.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=null)}playOrPause(){const D=this.props.animationGroup;D.isPlaying?(this.setState({playButtonText:"Play"}),D.pause()):(this.setState({playButtonText:"Pause"}),D.play(!0))}onCurrentFrameChange(D){const k=this.props.animationGroup;k.isPlaying?k.goToFrame(D):(k.play(!0),k.goToFrame(D),k.pause()),this.setState({currentFrame:D})}render(){const D=this.props.animationGroup,k=D.isPlaying?"Pause":"Play";return this._animationCurveEditorContext||(this._animationCurveEditorContext=new T.Context,this._animationCurveEditorContext.title=D.name||"",this._animationCurveEditorContext.animations=D.targetedAnimations,this._animationCurveEditorContext.scene=this.props.scene,this._animationCurveEditorContext.useTargetAnimations=!0,this._animationCurveEditorContext.rootAnimationGroup=D),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(S.LineContainerComponent,{title:"GENERAL",children:[(0,h.jsx)(E.TextLineComponent,{label:"Class",value:D.getClassName()}),(0,h.jsx)(M.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:D,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"CONTROLS",children:[(0,h.jsx)(A.ButtonLineComponent,{label:k,onClick:()=>this.playOrPause()}),(0,h.jsx)(A.ButtonLineComponent,{label:"Stop",onClick:()=>this.props.animationGroup.stop()}),(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Speed ratio",minimum:0,maximum:10,step:.1,target:D,propertyName:"speedRatio",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,ref:this._timelineRef,label:"Current frame",minimum:D.from,maximum:D.to,step:(D.to-D.from)/1e3,directValue:this.state.currentFrame,onInput:Y=>this.onCurrentFrameChange(Y)}),(0,h.jsx)(I.CheckBoxLineComponent,{label:"Blending",target:D,propertyName:"enableBlending",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Blending speed",minimum:0,maximum:1,step:.01,target:D,propertyName:"blendingSpeed",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(I.CheckBoxLineComponent,{label:"Is additive",target:D,propertyName:"isAdditive",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.FloatLineComponent,{lockObject:this.props.lockObject,label:"Weight",target:D,propertyName:"weight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.FloatLineComponent,{lockObject:this.props.lockObject,label:"Play order",target:D,propertyName:"playOrder",isInteger:!0,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"INFOS",children:[(0,h.jsx)(E.TextLineComponent,{label:"Animation count",value:D.targetedAnimations.length.toString()}),(0,h.jsx)(O.AnimationCurveEditorComponent,{globalState:this.props.globalState,context:this._animationCurveEditorContext}),(0,h.jsx)(E.TextLineComponent,{label:"From",value:D.from.toFixed(2)}),(0,h.jsx)(E.TextLineComponent,{label:"To",value:D.to.toFixed(2)}),(0,h.jsx)(E.TextLineComponent,{label:"Unique ID",value:D.uniqueId.toString()})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/animationPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{AnimationGridComponent:()=>N});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),b=d("core/Misc/observable"),M=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),R=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/animationCurveEditorComponent.js"),I=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/context.js");class N extends x.Component{constructor(D){super(D),this._animations=null,this._isPlaying=!1,this._animationControl={from:0,to:0,loop:!1,initialized:!1},this.state={currentFrame:0};const k=this.props.animatable;if(this._ranges=k.getAnimationRanges?k.getAnimationRanges():[],k.getAnimatables){const Y=k.getAnimatables();this._animations=new Array,Y.forEach(V=>{V.animations&&this._animations.push(...V.animations)}),k.animations&&this._animations.push(...k.animations),this._animations&&this._animations.length&&this._animations.forEach(V=>{const ee=V.getKeys();if(ee&&ee.length>0){ee[0].frame<this._animationControl.from&&(this._animationControl.from=ee[0].frame);const K=ee.length-1;ee[K].frame>this._animationControl.to&&(this._animationControl.to=ee[K].frame)}})}this._timelineRef=x.createRef()}playOrPause(){const D=this.props.animatable;this._isPlaying=this.props.scene.getAllAnimatablesByTarget(D).length>0,this._isPlaying?(this.props.scene.stopAnimation(this.props.animatable),this._mainAnimatable=null):this._mainAnimatable=this.props.scene.beginAnimation(this.props.animatable,this._animationControl.from,this._animationControl.to,this._animationControl.loop),this.forceUpdate()}componentDidMount(){this._onBeforeRenderObserver=this.props.scene.onBeforeRenderObservable.add(()=>{!this._isPlaying||!this._mainAnimatable||this.setState({currentFrame:this._mainAnimatable.masterFrame})})}componentWillUnmount(){this._onBeforeRenderObserver&&(this.props.scene.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=null)}onCurrentFrameChange(D){this._mainAnimatable&&(this._mainAnimatable.goToFrame(D),this.setState({currentFrame:D}))}onChangeFromOrTo(){this.playOrPause(),this._isPlaying&&this.playOrPause()}componentDidUpdate(D){const k=D.animatable.uniqueId,Y=this.props.animatable.uniqueId;k!==Y&&(this._animationCurveEditorContext=null)}render(){var ee,K;const D=this.props.animatable,k=this.props.animatable,Y=((K=(ee=this.props.scene).getAllAnimatablesByTarget)==null?void 0:K.call(ee,D))??[];this._isPlaying=Y.length>0,this._isPlaying&&(this._mainAnimatable=Y[0],this._mainAnimatable&&(this._animationControl.from=this._mainAnimatable.fromFrame,this._animationControl.to=this._mainAnimatable.toFrame,this._animationControl.loop=this._mainAnimatable.loopAnimation,this._animationControl.initialized=!0));const V=D.animations;return this._animationCurveEditorContext||(this._animationCurveEditorContext=new I.Context,this._animationCurveEditorContext.title=this.props.animatable.name||"",this._animationCurveEditorContext.animations=V,this._animationCurveEditorContext.target=this.props.animatable,this._animationCurveEditorContext.scene=this.props.scene,this._animationCurveEditorContext.fromKey=this._animationControl.from,this._animationCurveEditorContext.toKey=this._animationControl.to,this._animationCurveEditorContext.useExistingPlayRange=this._animationControl.initialized),(0,h.jsxs)(h.Fragment,{children:[this._ranges.length>0&&(0,h.jsx)(S.LineContainerComponent,{title:"ANIMATION RANGES",selection:this.props.globalState,children:this._ranges.map((ie,ne)=>(0,h.jsx)(A.ButtonLineComponent,{label:ie.name,onClick:()=>{this._mainAnimatable=null,this.props.scene.beginAnimation(D,ie.from,ie.to,!0)}},ie.name+ne))}),V&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(S.LineContainerComponent,{title:"ANIMATIONS",selection:this.props.globalState,children:[(0,h.jsx)(O.TextLineComponent,{label:"Count",value:V.length.toString()}),V.map((ie,ne)=>(0,h.jsx)(O.TextLineComponent,{label:"#"+ne+" >",value:ie.targetProperty},ie.targetProperty+ne)),(0,h.jsx)(R.AnimationCurveEditorComponent,{globalState:this.props.globalState,context:this._animationCurveEditorContext})]}),V.length>0&&(0,h.jsxs)(S.LineContainerComponent,{title:"ANIMATION GENERAL CONTROL",selection:this.props.globalState,children:[(0,h.jsx)(T.FloatLineComponent,{lockObject:this.props.lockObject,isInteger:!0,label:"From",target:this._animationControl,propertyName:"from",onChange:()=>this.onChangeFromOrTo()}),(0,h.jsx)(T.FloatLineComponent,{lockObject:this.props.lockObject,isInteger:!0,label:"To",target:this._animationControl,propertyName:"to",onChange:()=>this.onChangeFromOrTo()}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Loop",onSelect:ie=>{this._animationControl.loop=ie,Y.forEach(ne=>{ne.loopAnimation=ie})},isSelected:()=>this._animationControl.loop}),this._isPlaying&&(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,ref:this._timelineRef,label:"Current frame",minimum:this._animationControl.from,maximum:this._animationControl.to,step:(this._animationControl.to-this._animationControl.from)/1e3,directValue:this.state.currentFrame,onInput:ie=>this.onCurrentFrameChange(ie)}),(0,h.jsx)(A.ButtonLineComponent,{label:this._isPlaying?"Stop":"Play",onClick:()=>this.playOrPause()}),(this._ranges.length>0||this._animations&&this._animations.length>0)&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(M.CheckBoxLineComponent,{label:"Enable override",onSelect:ie=>{ie?(k.animationPropertiesOverride=new b.AnimationPropertiesOverride,k.animationPropertiesOverride.blendingSpeed=.05):k.animationPropertiesOverride=null,this.forceUpdate()},isSelected:()=>k.animationPropertiesOverride!=null,onValueChanged:()=>this.forceUpdate()}),k.animationPropertiesOverride!=null&&(0,h.jsxs)("div",{children:[(0,h.jsx)(M.CheckBoxLineComponent,{label:"Enable blending",target:k.animationPropertiesOverride,propertyName:"enableBlending",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,label:"Blending speed",target:k.animationPropertiesOverride,propertyName:"blendingSpeed",minimum:0,maximum:.1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})]})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/animationCurveEditorComponent.js":(m,_,d)=>{d.r(_),d.d(_,{AnimationCurveEditorComponent:()=>O});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),S=d("../../../dev/inspector/dist/components/popupComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/bottomBar/bottomBarComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/topBarComponent.js"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/canvasComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/sideBarComponent.js");d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/curveEditor.scss");class O extends x.Component{constructor(I){super(I),this.state={isOpen:!1}}onCloseAnimationCurveEditor(I){I!==null&&I.close(),this.setState({isOpen:!1}),this.props.context.activeAnimations=[],this.props.context.onActiveAnimationChanged.notifyObservers({})}shouldComponentUpdate(I,N){return N.isOpen!==this.state.isOpen?(N.isOpen&&(this.props.context.prepare(),this.props.context.animations&&this.props.context.animations.length&&setTimeout(()=>{this.props.context.activeAnimations.push(this.props.context.useTargetAnimations?this.props.context.animations[0].animation:this.props.context.animations[0]),this.props.context.onActiveAnimationChanged.notifyObservers({})})),!0):!1}_onKeyDown(I){var N;switch(I.key){case"Delete":case"Backspace":(N=this.props.context.activeKeyPoints)!=null&&N.length&&!this.props.context.focusedInput&&this.props.context.onDeleteKeyActiveKeyPoints.notifyObservers();break;case" ":this.props.context.isPlaying?this.props.context.stop():this.props.context.play(!0);break;case"a":I.ctrlKey&&(this.props.context.onSelectAllKeys.notifyObservers(),this.props.context.onActiveKeyPointChanged.notifyObservers(),I.preventDefault());break;case"ArrowLeft":this.props.context.focusedInput||this.props.context.onMoveToFrameRequired.notifyObservers(Math.max(0,this.props.context.activeFrame-1));break;case"ArrowRight":this.props.context.focusedInput||this.props.context.onMoveToFrameRequired.notifyObservers(Math.min(this.props.context.clipLength,this.props.context.activeFrame+1));break;case"ArrowDown":{const w=this.props.context.getPrevKey();w!==null&&this.props.context.onMoveToFrameRequired.notifyObservers(w);break}case"ArrowUp":{const w=this.props.context.getNextKey();w!==null&&this.props.context.onMoveToFrameRequired.notifyObservers(w)}}}render(){return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.ButtonLineComponent,{label:"Edit",onClick:()=>{this.setState({isOpen:!0})}}),this.state.isOpen&&(0,h.jsx)(S.PopupComponent,{id:"curve-editor",title:"Animation Curve Editor",size:{width:1024,height:512},onResize:()=>this.props.context.onHostWindowResized.notifyObservers(),onClose:I=>this.onCloseAnimationCurveEditor(I),onKeyDown:I=>this._onKeyDown(I),children:(0,h.jsxs)("div",{id:"curve-editor",children:[(0,h.jsx)(b.TopBarComponent,{globalState:this.props.globalState,context:this.props.context}),(0,h.jsx)(T.SideBarComponent,{globalState:this.props.globalState,context:this.props.context}),(0,h.jsx)(M.CanvasComponent,{globalState:this.props.globalState,context:this.props.context}),(0,h.jsx)(E.BottomBarComponent,{globalState:this.props.globalState,context:this.props.context})]})})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/addAnimationIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTUsOC4yN2EuNTguNTgsMCwwLDEsLjU3LjV2NS42NWg1LjU3YS41OC41OCwwLDAsMSwuMDgsMS4xNUgxNS41OHY1LjU3YS41OC41OCwwLDAsMS0xLjE1LjA4VjE1LjU4SDguODVhLjU4LjU4LDAsMCwxLS4wOC0xLjE1aDUuNjVWOC44NUEuNTguNTgsMCwwLDEsMTUsOC4yN1oiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationBulletIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDEwIDEwIj48Y2lyY2xlIGN4PSI1IiBjeT0iNSIgcj0iMi44OSIgc3R5bGU9ImZpbGw6Izg4OCIvPjxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgc3R5bGU9ImZpbGw6bm9uZSIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationEndHoverIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTEuNjcsMTYuMzEsMTksMjJhLjYxLjYxLDAsMCwxLC4xNS44NUEuNTQuNTQsMCwwLDEsMTksMjNsLTcuMzUsNS43MWEuNjEuNjEsMCwwLDEtLjg2LS4wOC42My42MywwLDAsMS0uMTQtLjRWMjQuMDdMNC43NCwyOC42OWEuNjEuNjEsMCwwLDEtLjg2LS4wOC42My42MywwLDAsMS0uMTQtLjRWMTYuNzlhLjYxLjYxLDAsMCwxLC42LS42Mi42My42MywwLDAsMSwuNC4xNGw1Ljk0LDQuNjJWMTYuNzlhLjYxLjYxLDAsMCwxLC42MS0uNjFBLjU4LjU4LDAsMCwxLDExLjY3LDE2LjMxWiIgc3R5bGU9ImZpbGw6I2NjYyIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationEndIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTEuNjcsMTYuMzEsMTksMjJhLjYxLjYxLDAsMCwxLC4xNS44NUEuNTQuNTQsMCwwLDEsMTksMjNsLTcuMzUsNS43MWEuNjEuNjEsMCwwLDEtLjg2LS4wOC42My42MywwLDAsMS0uMTQtLjRWMjQuMDdMNC43NCwyOC42OWEuNjEuNjEsMCwwLDEtLjg2LS4wOC42My42MywwLDAsMS0uMTQtLjRWMTYuNzlhLjYxLjYxLDAsMCwxLC42LS42Mi42My42MywwLDAsMSwuNC4xNGw1Ljk0LDQuNjJWMTYuNzlhLjYxLjYxLDAsMCwxLC42MS0uNjFBLjU4LjU4LDAsMCwxLDExLjY3LDE2LjMxWk0xMS45MSwxOHY5bDUuNzMtNC40NlpNNSwxOHY5bDUuNzEtNC40NGgwWiIgc3R5bGU9ImZpbGw6Izg4OCIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationLastFrameHoverIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTguNzgsMjguM2ExLjQzLDEuNDMsMCwwLDEtMS40MywxLjQxLDEuNCwxLjQsMCwwLDEtLjc1LS4yMkw4LjEzLDI0LjA2YTEuNDIsMS40MiwwLDAsMS0uNDItMiwxLjQ1LDEuNDUsMCwwLDEsLjM2LS4zOGw4LjQ3LTYuMDdhMS40MiwxLjQyLDAsMCwxLDIsLjM0LDEuMzksMS4zOSwwLDAsMSwuMjYuODFaIiBzdHlsZT0iZmlsbDojY2NjIi8+PHBhdGggZD0iTTQuMjIsMjkuMTdhLjYxLjYxLDAsMCwwLDEuMjIsMFYxNS44M2EuNjEuNjEsMCwwLDAtMS4yMiwwaDBaIiBzdHlsZT0iZmlsbDojY2NjIi8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationLastFrameIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cGF0aCBkPSJNOC4wNywyMS43MmExLjQyLDEuNDIsMCwwLDAtLjMyLDIsMS40NCwxLjQ0LDAsMCwwLC4zOC4zNmw4LjQ3LDUuNDNhMS40MiwxLjQyLDAsMCwwLDItLjQ0LDEuNCwxLjQsMCwwLDAsLjIyLS43NVYxNi44YTEuNDMsMS40MywwLDAsMC0xLjQzLTEuNDEsMS4zOSwxLjM5LDAsMCwwLS44MS4yNlptOS40OSw2LjU4YS4yLjIsMCwwLDEtLjMxLjE3TDguNzksMjNhLjIyLjIyLDAsMCwxLDAtLjI5bDAtLjA1LDguNDYtNi4wN2EuMi4yLDAsMCwxLC4yOCwwLC4yLjIsMCwwLDEsMCwuMTNabS0xMy4zNC44N2EuNjEuNjEsMCwwLDAsMS4yMiwwVjE1LjgzYS42MS42MSwwLDAsMC0xLjIyLDBoMFoiIHN0eWxlPSJmaWxsOiM4ODgiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationLastKeyHoverIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTguNzgsMjguM2ExLjQzLDEuNDMsMCwwLDEtMS40MywxLjQxLDEuNCwxLjQsMCwwLDEtLjc1LS4yMkw4LjEzLDI0LjA2YTEuNDIsMS40MiwwLDAsMS0uNDItMiwxLjQ1LDEuNDUsMCwwLDEsLjM2LS4zOGw4LjQ3LTYuMDdhMS40MiwxLjQyLDAsMCwxLDIsLjM0LDEuMzksMS4zOSwwLDAsMSwuMjYuODFaIiBzdHlsZT0iZmlsbDojY2NjIi8+PHBhdGggZD0iTTQuMjIsMjkuMTdhLjYxLjYxLDAsMCwwLDEuMjIsMFYxNS44M2EuNjEuNjEsMCwwLDAtMS4yMiwwaDBaIiBzdHlsZT0iZmlsbDojZmZjMDE3Ii8+PHBhdGggZD0iTTMuNDgsMjUuOTFhMS4zNSwxLjM1LDAsMSwwLDIuNywwVjE5LjA5YTEuMzUsMS4zNSwwLDEsMC0yLjcsMGgwWiIgc3R5bGU9ImZpbGw6I2ZmYzAxNyIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationLastKeyIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNOC4wNywyMS43MmExLjQyLDEuNDIsMCwwLDAtLjMyLDIsMS40NCwxLjQ0LDAsMCwwLC4zOC4zNmw4LjQ3LDUuNDNhMS40MiwxLjQyLDAsMCwwLDItLjQ0LDEuNCwxLjQsMCwwLDAsLjIyLS43NVYxNi44YTEuNDMsMS40MywwLDAsMC0xLjQzLTEuNDEsMS4zOSwxLjM5LDAsMCwwLS44MS4yNlptOS40OSw2LjU4YS4yLjIsMCwwLDEtLjMxLjE3TDguNzksMjNhLjIyLjIyLDAsMCwxLDAtLjI5bDAtLjA1LDguNDYtNi4wN2EuMi4yLDAsMCwxLC4yOCwwLC4yLjIsMCwwLDEsMCwuMTNaIiBzdHlsZT0iZmlsbDojODg4Ii8+PHBhdGggZD0iTTQuMjIsMjkuMTdhLjYxLjYxLDAsMCwwLDEuMjIsMFYxNS44M2EuNjEuNjEsMCwwLDAtMS4yMiwwaDBaIiBzdHlsZT0iZmlsbDojZmZjMDE3Ii8+PHBhdGggZD0iTTMuNDgsMjUuOTFhMS4zNSwxLjM1LDAsMSwwLDIuNywwVjE5LjA5YTEuMzUsMS4zNSwwLDEsMC0yLjcsMGgwWiIgc3R5bGU9ImZpbGw6I2ZmYzAxNyIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationNextFrameHoverIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNNC4yMiwxNi44YTEuNDMsMS40MywwLDAsMSwxLjQzLTEuNDEsMS4zOSwxLjM5LDAsMCwxLC44MS4yNmw4LjQ3LDYuMDdhMS40MiwxLjQyLDAsMCwxLC4zMiwyLDEuNDQsMS40NCwwLDAsMS0uMzguMzZMNi40LDI5LjQ5YTEuNDIsMS40MiwwLDAsMS0yLS40NCwxLjQsMS40LDAsMCwxLS4yMi0uNzVaIiBzdHlsZT0iZmlsbDojY2NjIi8+PHBhdGggZD0iTTE4Ljc4LDE1LjgzYS42MS42MSwwLDAsMC0xLjIyLDBWMjkuMTdhLjYxLjYxLDAsMCwwLDEuMjIsMFoiIHN0eWxlPSJmaWxsOiNjY2MiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationNextFrameIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNNi40NiwxNS42NWExLjQyLDEuNDIsMCwwLDAtMiwuMzQsMS4zOSwxLjM5LDAsMCwwLS4yNi44MVYyOC4zYTEuNDMsMS40MywwLDAsMCwxLjQzLDEuNDEsMS40LDEuNCwwLDAsMCwuNzUtLjIybDguNDctNS40M2ExLjQyLDEuNDIsMCwwLDAsLjQyLTIsMS40NSwxLjQ1LDAsMCwwLS4zNi0uMzhabS0xLDEuMTVhLjIuMiwwLDAsMSwuMzItLjE3bDguNDYsNi4wN2EuMjIuMjIsMCwwLDEsMCwuMjlzMCwwLDAsLjA1TDUuNzUsMjguNDdhLjIuMiwwLDAsMS0uMjgtLjA2LjIuMiwwLDAsMSwwLS4xMVoiIHN0eWxlPSJmaWxsOiM4ODgiLz48cGF0aCBkPSJNMTcuNTYsMjkuMTdhLjYxLjYxLDAsMCwwLDEuMjIsMFYxNS44M2EuNjEuNjEsMCwwLDAtMS4yMiwwaDBaIiBzdHlsZT0iZmlsbDojODg4Ii8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationNextKeyHoverIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNNC4yMiwxNi44YTEuNDMsMS40MywwLDAsMSwxLjQzLTEuNDEsMS4zOSwxLjM5LDAsMCwxLC44MS4yNmw4LjQ3LDYuMDdhMS40MiwxLjQyLDAsMCwxLC4zMiwyLDEuNDQsMS40NCwwLDAsMS0uMzguMzZMNi40LDI5LjQ5YTEuNDIsMS40MiwwLDAsMS0yLS40NCwxLjQsMS40LDAsMCwxLS4yMi0uNzVaIiBzdHlsZT0iZmlsbDojY2NjIi8+PHBhdGggZD0iTTE3LjU2LDI5LjE3YS42MS42MSwwLDAsMCwxLjIyLDBWMTUuODNhLjYxLjYxLDAsMCwwLTEuMjIsMGgwWiIgc3R5bGU9ImZpbGw6I2ZmYzAxNyIvPjxwYXRoIGQ9Ik0xNi44MiwyNS45MWExLjM1LDEuMzUsMCwwLDAsMi43LDBWMTkuMDlhMS4zNSwxLjM1LDAsMSwwLTIuNywwaDBaIiBzdHlsZT0iZmlsbDojZmZjMDE3Ii8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationNextKeyIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNNi40NiwxNS42NWExLjQyLDEuNDIsMCwwLDAtMiwuMzQsMS4zOSwxLjM5LDAsMCwwLS4yNi44MVYyOC4zYTEuNDMsMS40MywwLDAsMCwxLjQzLDEuNDEsMS40LDEuNCwwLDAsMCwuNzUtLjIybDguNDctNS40M2ExLjQyLDEuNDIsMCwwLDAsLjQyLTIsMS40NSwxLjQ1LDAsMCwwLS4zNi0uMzhabS0xLDEuMTVhLjIuMiwwLDAsMSwuMzItLjE3bDguNDYsNi4wN2EuMjIuMjIsMCwwLDEsMCwuMjlzMCwwLDAsLjA1TDUuNzUsMjguNDdhLjIuMiwwLDAsMS0uMjgtLjA2LjIuMiwwLDAsMSwwLS4xMVoiIHN0eWxlPSJmaWxsOiM4ODgiLz48cGF0aCBkPSJNMTcuNTYsMjkuMTdhLjYxLjYxLDAsMCwwLDEuMjIsMFYxNS44M2EuNjEuNjEsMCwwLDAtMS4yMiwwaDBaIiBzdHlsZT0iZmlsbDojZmZjMDE3Ii8+PHBhdGggZD0iTTE2LjgyLDI1LjkxYTEuMzUsMS4zNSwwLDAsMCwyLjcsMFYxOS4wOWExLjM1LDEuMzUsMCwxLDAtMi43LDBoMFoiIHN0eWxlPSJmaWxsOiNmZmMwMTciLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationOptionsIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTAsNC4xYTYuNjIsNi42MiwwLDAsMSwxLjMzLjE2bC4zNC4zOS4xLjkyYS44NS44NSwwLDAsMCwuODMuNzUsMS4wOSwxLjA5LDAsMCwwLC40LS4wN2wuODUtLjM4LjUuMUE2LDYsMCwwLDEsMTUuNyw4LjI4bC0uMTcuNDktLjc1LjU2YS44My44MywwLDAsMC0uMTgsMS4xNi43Ny43NywwLDAsMCwuMTguMThsLjc1LjU2LjE3LjQ5QTYsNiwwLDAsMSwxNC4zLDE0bC0uNS4xLS44LS4zNWEuODUuODUsMCwwLDAtLjc2LjA1LjgzLjgzLDAsMCwwLS40MS42M2wtLjEuOTItLjM0LjM5YTUuODIsNS44MiwwLDAsMS0yLjY5LDBsLS4zMy0uMzktLjEtLjkyYS44My44MywwLDAsMC0uNDEtLjYzLjg1Ljg1LDAsMCwwLS43NiwwbC0uODUuMzdMNS43LDE0YTYsNiwwLDAsMS0xLjM1LTIuMzFsLjE3LS40OS43NS0uNTZhLjgzLjgzLDAsMCwwLC4xOC0xLjE2Ljc3Ljc3LDAsMCwwLS4xOC0uMThsLS43NS0uNTYtLjE3LS40OEE2LjA2LDYuMDYsMCwwLDEsNS43LDZsLjUtLjEuODUuMzhhLjg1Ljg1LDAsMCwwLC43NiwwLC44My44MywwLDAsMCwuNDEtLjYzbC4xLS45Mi4zNC0uMzlBNi4xOCw2LjE4LDAsMCwxLDEwLDQuMVpNMTAsNWE1LjY3LDUuNjcsMCwwLDAtLjgyLjA3bC0uMDcuNTlBMS43MywxLjczLDAsMCwxLDcuMiw3LjIxYTEuNTMsMS41MywwLDAsMS0uNTEtLjEzbC0uNTUtLjI0YTUsNSwwLDAsMC0uODEsMS40bC40OC4zNkExLjc0LDEuNzQsMCwwLDEsNi4xOCwxMWExLjg1LDEuODUsMCwwLDEtLjM3LjM3bC0uNDguMzZhNS4wNyw1LjA3LDAsMCwwLC44MSwxLjQxbC41NS0uMjRBMS43NCwxLjc0LDAsMCwxLDksMTMuOGEyLDIsMCwwLDEsLjE0LjUzbC4wNy41OWE0Ljg5LDQuODksMCwwLDAsMS42MiwwbC4wNy0uNTlhMS43NCwxLjc0LDAsMCwxLDEuOTEtMS41NSwxLjgyLDEuODIsMCwwLDEsLjUyLjE0bC41NS4yNGE1LDUsMCwwLDAsLjgxLTEuNGwtLjQ4LS4zNkExLjc0LDEuNzQsMCwwLDEsMTMuODIsOWExLjg1LDEuODUsMCwwLDEsLjM3LS4zN2wuNDgtLjM2YTUsNSwwLDAsMC0uODEtMS40bC0uNTUuMjRhMS44NiwxLjg2LDAsMCwxLS43LjE0LDEuNzQsMS43NCwwLDAsMS0xLjczLTEuNTVsLS4wNy0uNTlBNC40NSw0LjQ1LDAsMCwwLDEwLDVabTAsMi43MkEyLjI3LDIuMjcsMCwxLDEsNy43MywxMCwyLjI3LDIuMjcsMCwwLDEsMTAsNy43MmgwWm0wLC45MUExLjM2LDEuMzYsMCwxLDAsMTEuMzYsMTAsMS4zNiwxLjM2LDAsMCwwLDEwLDguNjNaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationPlayFwdHoverIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNNC43NywxNy4xM2ExLjc5LDEuNzksMCwwLDEsMS44MS0xLjc5LDEuNzcsMS43NywwLDAsMSwuODQuMjFsOS44Nyw1LjM3QTEuODEsMS44MSwwLDAsMSwxOCwyMy4zNmExLjg1LDEuODUsMCwwLDEtLjcyLjcyTDcuNDIsMjkuNDVBMS44LDEuOCwwLDAsMSw1LDI4LjcxYTEuNzcsMS43NywwLDAsMS0uMjEtLjg0WiIgc3R5bGU9ImZpbGw6I2NjYyIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationPlayFwdIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNNi44NSwxNi42MWEuNTkuNTksMCwwLDAtLjguMjIuNjQuNjQsMCwwLDAtLjA4LjNWMjcuODdhLjYuNiwwLDAsMCwuNTguNi42MS42MSwwLDAsMCwuMy0uMDhMMTYuNzIsMjNhLjYuNiwwLDAsMCwwLTEuMDZabS0yLjA4LjUyYTEuNzksMS43OSwwLDAsMSwxLjgxLTEuNzksMS43NywxLjc3LDAsMCwxLC44NC4yMWw5Ljg3LDUuMzdBMS44MSwxLjgxLDAsMCwxLDE4LDIzLjM2YTEuODUsMS44NSwwLDAsMS0uNzIuNzJMNy40MiwyOS40NUExLjgsMS44LDAsMCwxLDUsMjguNzFhMS43NywxLjc3LDAsMCwxLS4yMS0uODRaIiBzdHlsZT0iZmlsbDojODg4Ii8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationPlayRevHoverIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTguMjMsMjcuODdhMS43OSwxLjc5LDAsMCwxLTEuODEsMS43OSwxLjc3LDEuNzcsMCwwLDEtLjg0LS4yMUw1LjcxLDI0LjA4QTEuODEsMS44MSwwLDAsMSw1LDIxLjY0YTEuODUsMS44NSwwLDAsMSwuNzItLjcybDkuODctNS4zN2ExLjgsMS44LDAsMCwxLDIuNDQuNzQsMS43NywxLjc3LDAsMCwxLC4yMS44NFoiIHN0eWxlPSJmaWxsOiNjY2MiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationPlayRevIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNNi4yOCwyMmEuNi42LDAsMCwwLDAsMS4wNmw5Ljg3LDUuMzZhLjU5LjU5LDAsMCwwLC44LS4yMi42NC42NCwwLDAsMCwuMDgtLjNWMTcuMTNhLjYuNiwwLDAsMC0uNTgtLjYuNjEuNjEsMCwwLDAtLjMuMDhabTEyLDUuOWExLjc5LDEuNzksMCwwLDEtMS44MSwxLjc5LDEuNzcsMS43NywwLDAsMS0uODQtLjIxbC05LjkyLTUuNEExLjgxLDEuODEsMCwwLDEsNSwyMS42NGExLjg1LDEuODUsMCwwLDEsLjcyLS43Mmw5Ljg3LTUuMzdhMS44LDEuOCwwLDAsMSwyLjQ0Ljc0LDEuNzcsMS43NywwLDAsMSwuMjEuODRaIiBzdHlsZT0iZmlsbDojODg4Ii8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationStartHoverIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTEuMzMsMTYuMzEsNCwyMmEuNjEuNjEsMCwwLDAtLjE1Ljg1QS41NC41NCwwLDAsMCw0LDIzbDcuMzUsNS43MWEuNjEuNjEsMCwwLDAsLjg2LS4wOC42My42MywwLDAsMCwuMTQtLjRWMjQuMDdsNS45NCw0LjYyYS42MS42MSwwLDAsMCwuODYtLjA4LjYzLjYzLDAsMCwwLC4xNC0uNFYxNi43OWEuNjEuNjEsMCwwLDAtLjYtLjYyLjYzLjYzLDAsMCwwLS40LjE0bC01Ljk0LDQuNjJWMTYuNzlhLjYxLjYxLDAsMCwwLTEtLjQ4WiIgc3R5bGU9ImZpbGw6I2NjYyIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationStartIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTIuMzIsMTYuNzl2NC4xNGw1Ljk0LTQuNjJhLjYxLjYxLDAsMCwxLC44Ni4wOC42My42MywwLDAsMSwuMTQuNFYyOC4yMWEuNjEuNjEsMCwwLDEtLjYuNjIuNjMuNjMsMCwwLDEtLjQtLjE0bC01Ljk0LTQuNjJ2NC4xNGEuNjEuNjEsMCwwLDEtLjYuNjIuNjMuNjMsMCwwLDEtLjQtLjE0TDQsMjNhLjYxLjYxLDAsMCwxLS4xNS0uODVBLjU0LjU0LDAsMCwxLDQsMjJsNy4zNS01LjcxYS42MS42MSwwLDAsMSwuODUuMTNBLjYzLjYzLDAsMCwxLDEyLjMyLDE2Ljc5Wm0tNyw1LjcxTDExLjA5LDI3VjE4Wm03LDBoMEwxOCwyN1YxOFoiIHN0eWxlPSJmaWxsOiM4ODgiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationStopHoverIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNNS42MywxNS4yMWExLjQ0LDEuNDQsMCwwLDAtMS40MiwxLjQyVjI4LjM3YTEuNDQsMS40NCwwLDAsMCwxLjQyLDEuNDJIMTcuMzdhMS40NCwxLjQ0LDAsMCwwLDEuNDItMS40MlYxNi42M2ExLjQ0LDEuNDQsMCwwLDAtMS40Mi0xLjQyWiIgc3R5bGU9ImZpbGw6I2MxMmQyZCIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationStopIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMyIgaGVpZ2h0PSI0NSIgdmlld0JveD0iMCAwIDIzIDQ1Ij48cmVjdCB3aWR0aD0iMjMiIGhlaWdodD0iNDUiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTcuMzcsMTYuNDNhLjIuMiwwLDAsMSwuMi4yaDBWMjguMzdhLjIuMiwwLDAsMS0uMi4ySDUuNjNhLjIuMiwwLDAsMS0uMi0uMmgwVjE2LjYzYS4yLjIsMCwwLDEsLjItLjJIMTcuMzdaTTUuNjMsMTUuMjFhMS40NCwxLjQ0LDAsMCwwLTEuNDIsMS40MlYyOC4zN2ExLjQ0LDEuNDQsMCwwLDAsMS40MiwxLjQySDE3LjM3YTEuNDQsMS40NCwwLDAsMCwxLjQyLTEuNDJWMTYuNjNhMS40NCwxLjQ0LDAsMCwwLTEuNDItMS40MloiIHN0eWxlPSJmaWxsOiM4YzJmMmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationTriangleIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDEwIDEwIj48cGF0aCBkPSJNNS40Myw3LjMxLDcuODEsMy4xOWEuNTEuNTEsMCwwLDAtLjE1LS42OC41NS41NSwwLDAsMC0uMjgtLjA3SDIuNjJhLjQ4LjQ4LDAsMCwwLS41LjQ3LjQ1LjQ1LDAsMCwwLC4wNy4yOEw0LjU3LDcuMzFhLjQ5LjQ5LDAsMCwwLC42Ni4yQS40OC40OCwwLDAsMCw1LjQzLDcuMzFaIiBzdHlsZT0iZmlsbDojODg4Ii8+PHJlY3Qgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiBzdHlsZT0iZmlsbDpub25lIi8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/babylonLogo.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cG9seWdvbiBwb2ludHM9IjIyLjE0IDcuNTcgMTEuMzcgMTMuNzggMTEuMzcgMjYuMjIgMjIuMTQgMzIuNDQgMzIuOTEgMjYuMjIgMzIuOTEgMTMuNzggMjIuMTQgNy41NyIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxyZWN0IHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgc3R5bGU9ImZpbGw6bm9uZSIvPjxwb2x5Z29uIHBvaW50cz0iMzIuOTEgMTMuNzggMjkuNTQgMTEuODQgMjYuMjkgMTMuNzEgMjkuNjYgMTUuNjUgMzIuOTEgMTMuNzgiIHN0eWxlPSJmaWxsOiNlMDY4NGIiLz48cG9seWdvbiBwb2ludHM9IjE0LjYxIDE1LjY1IDI1LjM4IDkuNDQgMjIuMTQgNy41NyAxMS4zNyAxMy43OCAxNC42MSAxNS42NSIgc3R5bGU9ImZpbGw6I2UwNjg0YiIvPjxwb2x5Z29uIHBvaW50cz0iMTguNzcgMjEuOTUgMjIuMTQgMjMuODkgMjUuNTEgMjEuOTUgMjIuMTQgMjAgMTguNzcgMjEuOTUiIHN0eWxlPSJmaWxsOiNlMDY4NGIiLz48cG9seWdvbiBwb2ludHM9IjI5LjY2IDE1LjY1IDI5LjY2IDI0LjM0IDIyLjE0IDI4LjY5IDE0LjYxIDI0LjM0IDE0LjYxIDE1LjY1IDExLjM3IDEzLjc4IDExLjM3IDI2LjIyIDIyLjE0IDMyLjQ0IDMyLjkxIDI2LjIyIDMyLjkxIDEzLjc4IDI5LjY2IDE1LjY1IiBzdHlsZT0iZmlsbDojYmI0NjRiIi8+PHBvbHlnb24gcG9pbnRzPSIyMi4xNCAxNi4xMSAxOC43NyAxOC4wNSAxOC43NyAyMS45NSAyMi4xNCAyMCAyNS41MSAyMS45NSAyNS41MSAxOC4wNSAyMi4xNCAxNi4xMSIgc3R5bGU9ImZpbGw6I2JiNDY0YiIvPjxwb2x5Z29uIHBvaW50cz0iMjkuNjYgMTUuNjUgMjUuNTEgMTguMDUgMjUuNTEgMjEuOTUgMjIuMTQgMjMuODkgMjIuMTQgMjguNjkgMjkuNjYgMjQuMzQgMjkuNjYgMTUuNjUiIHN0eWxlPSJmaWxsOiNlMGRlZDgiLz48cG9seWdvbiBwb2ludHM9IjE0LjYxIDE1LjY1IDE4Ljc3IDE4LjA1IDE4Ljc3IDIxLjk1IDIyLjE0IDIzLjg5IDIyLjE0IDI4LjY5IDE0LjYxIDI0LjM0IDE0LjYxIDE1LjY1IiBzdHlsZT0iZmlsbDojZDVkMmNhIi8+PHBvbHlnb24gcG9pbnRzPSIyNS4zOCA5LjQ0IDI5LjU0IDExLjg0IDI2LjI5IDEzLjcxIDI5LjY2IDE1LjY1IDI1LjUxIDE4LjA1IDIyLjE0IDE2LjExIDE4Ljc3IDE4LjA1IDE0LjYxIDE1LjY1IDI1LjM4IDkuNDQiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/breakTangentIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjcuMTEsMTMuMDVhMS40OSwxLjQ5LDAsMCwwLTIuMDUuNTMsMS40NywxLjQ3LDAsMCwwLC4xNCwxLjcybC00Ljc4LDhMMjAsMjIuOTJsLS40Mi40Mi00Ljc4LThhMS40NywxLjQ3LDAsMCwwLC4xNC0xLjcyLDEuNDksMS40OSwwLDAsMC0yLS41MywxLjUsMS41LDAsMCwwLDEsMi43Nmw0LjkxLDguMjYtMSwxTDIwLDI3LjE2LDIyLjEyLDI1bC0xLTEsNC45MS04LjI2YTEuNSwxLjUsMCwwLDAsMS4wNS0yLjc2WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/closeWindowIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxnIGlkPSJVSSI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjEuMTMsMjAsMjgsMjYuODcsMjYuODcsMjgsMjAsMjEuMTMsMTMuMTMsMjgsMTIsMjYuODcsMTguODcsMjAsMTIsMTMuMTMsMTMuMTMsMTIsMjAsMTguODcsMjYuODcsMTIsMjgsMTMuMTNaIi8+PC9nPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/editIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjIsOEEyLjc5LDIuNzksMCwwLDEsMjIsMTJoMGwtOS4zMyw5LjMzYTEuNzYsMS43NiwwLDAsMS0uNzguNDVsLTQsMS4wOWEuNTguNTgsMCwwLDEtLjcyLS4zOS42Mi42MiwwLDAsMSwwLS4zM2wxLjA5LTRhMS43NiwxLjc2LDAsMCwxLC40NS0uNzhMMTguMDYsOEEyLjgsMi44LDAsMCwxLDIyLDhabS00LjcsMi40MUw5LjU2LDE4LjE1YS40Ni40NiwwLDAsMC0uMTUuMjZsLS44MiwzLDMtLjgyYS40Ni40NiwwLDAsMCwuMjYtLjE1bDcuNzUtNy43NVptMS41OC0xLjU4LS43NS43NSwyLjI5LDIuMjkuNzUtLjc1YTEuNjIsMS42MiwwLDAsMC0yLjI5LTIuMjlaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/flatTangentIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjgsMTguNWExLjUxLDEuNTEsMCwwLDAtMS40MSwxSDExLjV2MUgyNi41OWExLjUsMS41LDAsMSwwLDEuNDEtMloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/frameIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTQuMDUsMTVhMSwxLDAsMCwxLDEtMWgxLjU5YS42LjYsMCwwLDAsLjU5LS42LjU4LjU4LDAsMCwwLS41OS0uNTlIMTVBMi4xOCwyLjE4LDAsMCwwLDEyLjg2LDE1djEuNTlhLjU4LjU4LDAsMCwwLC41OS41OWgwYS42LjYsMCwwLDAsLjYtLjU5Wm0wLDEwYTEsMSwwLDAsMCwxLDFoMS41OWEuNi42LDAsMCwxLC41OS42LjU4LjU4LDAsMCwxLS41OS41OUgxNUEyLjE4LDIuMTgsMCwwLDEsMTIuODYsMjVWMjMuMzdhLjU4LjU4LDAsMCwxLC41OS0uNTloMGEuNi42LDAsMCwxLC42LjU5Wk0yNSwxNC4wNWExLDEsMCwwLDEsMSwxdjEuNTlhLjYuNiwwLDAsMCwuNi41OS41OC41OCwwLDAsMCwuNTktLjU5aDBWMTVBMi4xOCwyLjE4LDAsMCwwLDI1LDEyLjg2SDIzLjM3YS41OC41OCwwLDAsMC0uNTkuNTloMGEuNi42LDAsMCwwLC41OS42Wm0xLDExYTEsMSwwLDAsMS0xLDFIMjMuMzdhLjYuNiwwLDAsMC0uNTkuNi41OC41OCwwLDAsMCwuNTkuNTlIMjVBMi4xOCwyLjE4LDAsMCwwLDI3LjE0LDI1VjIzLjM3YS41OC41OCwwLDAsMC0uNTktLjU5aDBhLjYuNiwwLDAsMC0uNi41OVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/keyActiveIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDEwIDEwIj48cGF0aCBkPSJNNSwxLjQxYTEsMSwwLDAsMC0uNzEuM0wxLjcxLDQuMjlhMSwxLDAsMCwwLDAsMS40MWgwTDQuMjksOC4yOWExLDEsMCwwLDAsMS40MSwwaDBMOC4yOSw1LjcxYTEsMSwwLDAsMCwwLTEuNDFoMEw1LjcxLDEuNzFBMSwxLDAsMCwwLDUsMS40MVoiIHN0eWxlPSJmaWxsOiNmZmMwMTciLz48cmVjdCB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cG9seWxpbmUgcG9pbnRzPSI1IDIuNDEgNSAyLjQxIDcuNTkgNSA1IDcuNTkgMi40MSA1IDUgMi40MSA1IDIuNDEiIHN0eWxlPSJmaWxsOiMxMTEiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/keyInactiveIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDEwIDEwIj48cmVjdCB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNNSwxLjQxYTEsMSwwLDAsMC0uNzEuM0wxLjcxLDQuMjlhMSwxLDAsMCwwLDAsMS40MWgwTDQuMjksOC4yOWExLDEsMCwwLDAsMS40MSwwaDBMOC4yOSw1LjcxYTEsMSwwLDAsMCwwLTEuNDFoMEw1LjcxLDEuNzFBMSwxLDAsMCwwLDUsMS40MVoiIHN0eWxlPSJmaWxsOiNhYWEiLz48cG9seWxpbmUgcG9pbnRzPSI1IDIuNDEgNSAyLjQxIDcuNTkgNSA1IDcuNTkgMi40MSA1IDUgMi40MSA1IDIuNDEiIHN0eWxlPSJmaWxsOiMxMTEiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/keySelectedIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDEwIDEwIj48cmVjdCB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cmVjdCB4PSIyLjE3IiB5PSIyLjE3IiB3aWR0aD0iNS42NiIgaGVpZ2h0PSI1LjY2IiByeD0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuMDcgNSkgcm90YXRlKC00NSkiIHN0eWxlPSJmaWxsOiNmZmMwMTciLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/linearTangentIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjYsMTRhMS40OSwxLjQ5LDAsMCwwLTIuNCwxLjY5bC0xMCwxMCwuNzEuNzEsMTAtMTBBMS40OSwxLjQ5LDAsMCwwLDI2LDE0WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/loadIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjAuMDYsOC4zOGEuNTkuNTksMCwwLDAsLjY2LS41MS41OS41OSwwLDAsMC0uNTEtLjY2SDkuOTNhLjU5LjU5LDAsMCwwLS41MS42Ni41Ny41NywwLDAsMCwuNTEuNTFaTTE0LjkyLDIyLjc5SDE1YS41OS41OSwwLDAsMCwuNTgtLjVWMTEuNTVsMi45LDIuODlhLjU4LjU4LDAsMCwwLC43Ni4wNmwuMDctLjA2YS41OS41OSwwLDAsMCwuMDUtLjc2bC0uMDUtLjA2LTMuOS0zLjg5YS41OC41OCwwLDAsMC0uNzYtLjA2bC0uMDYuMDUtMy45LDMuOWEuNTguNTgsMCwwLDAsMCwuODFoMGEuNTguNTgsMCwwLDAsLjc2LjA2bC4wNy0uMDYsMi44OS0yLjg5VjIyLjIxQS41OS41OSwwLDAsMCwxNC45MiwyMi43OVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/newKeyIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjEuODMsMTQuODNsMy4zNCwzLjM0YTIuNTksMi41OSwwLDAsMSwwLDMuNjZsLTMuMzQsMy4zNGEyLjU5LDIuNTksMCwwLDEtMy42NiwwbC0zLjM0LTMuMzRhMi41OSwyLjU5LDAsMCwxLDAtMy42NmwzLjM0LTMuMzRBMi41OSwyLjU5LDAsMCwxLDIxLjgzLDE0LjgzWk0xOSwxNS42OCwxNS42OCwxOWExLjM3LDEuMzcsMCwwLDAtLjA2LDEuOTRsLjA2LjA2TDE5LDI0LjMyYTEuMzcsMS4zNywwLDAsMCwxLjk0LjA2bC4wNi0uMDZMMjQuMzIsMjFhMS4zNywxLjM3LDAsMCwwLC4wNi0xLjk0TDI0LjMyLDE5LDIxLDE1LjY4YTEuMzcsMS4zNywwLDAsMC0xLjk0LS4wNloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/saveIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNOCwxMC4xNkEyLjEzLDIuMTMsMCwwLDEsMTAuMSw4aDcuNzhhMi41MSwyLjUxLDAsMCwxLDEuNzguNzNsMS41OCwxLjU4QTIuNTMsMi41MywwLDAsMSwyMiwxMi4xMnY3LjczQTIuMTMsMi4xMywwLDAsMSwxOS44OSwyMkgxMC4xNUEyLjE0LDIuMTQsMCwwLDEsOCwxOS44N1YxMC4xNlptMi4xMy0xYTEsMSwwLDAsMC0xLDF2OS42OWExLDEsMCwwLDAsMSwxaC4ydi00LjFBMS43NCwxLjc0LDAsMCwxLDEyLjA2LDE1aDUuODVhMS43NCwxLjc0LDAsMCwxLDEuNzQsMS43NGgwdjQuMDdoLjE5YTEsMSwwLDAsMCwxLTF2LTcuN2ExLjM4LDEuMzgsMCwwLDAtLjQtMWwtMS42LTEuNTNhMS4yNiwxLjI2LDAsMCwwLS43NC0uMzh2Mi4xMWExLjc0LDEuNzQsMCwwLDEtMS43NCwxLjc0SDEyLjg3YTEuNzMsMS43MywwLDAsMS0xLjc1LTEuNzNoMFY5LjE5Wm04LjM0LDExLjYzdi00YS41OS41OSwwLDAsMC0uNTctLjU5SDEyLjA5YS41OC41OCwwLDAsMC0uNTguNThoMHY0LjA3Wk0xMi4yOSw5LjE5djIuMTNhLjU4LjU4LDAsMCwwLC41OC41OGgzLjQ4YS41OC41OCwwLDAsMCwuNTktLjU3aDBWOS4xOVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/scrollbarHandleIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMSIgdmlld0JveD0iMCAwIDIwIDIxIj48cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMjEiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTMuNjgsMTcuMzlWMy42MUEuNi42LDAsMCwxLDE0LjMyLDNhLjYxLjYxLDAsMCwxLC41Ny41VjE3LjM5YS42MS42MSwwLDEsMS0xLjIyLjA4Wm0tNC4yOSwwVjMuNjFBLjYxLjYxLDAsMCwxLDEwLDNhLjYyLjYyLDAsMCwxLC42MS41M1YxNy4zOUEuNi42LDAsMCwxLDEwLDE4YS42MS42MSwwLDAsMS0uNTctLjVabS00LjI5LDBWMy42MWEuNjEuNjEsMCwwLDEsMS4yMi0uMDhWMTcuMzlhLjYuNiwwLDAsMS0uNjQuNTguNjEuNjEsMCwwLDEtLjU3LS41WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/stepTangentIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjksMTYuNzFhMS41LDEuNSwwLDEsMC0yLDEuNDF2NS42N0gxMXYxSDI4VjE4LjEyQTEuNTEsMS41MSwwLDAsMCwyOSwxNi43MVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/unifyTangentIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMjcuOTQsMTguMjhhMS40OSwxLjQ5LDAsMCwwLTEuNDEsMWgtNWwtMS42Mi0xLjYzLTEuNjIsMS42M2gtNWExLjUsMS41LDAsMSwwLDAsMWg1bDEuNjIsMS42MiwxLjYyLTEuNjJoNWExLjUsMS41LDAsMSwwLDEuNDEtMloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/bottomBar/bottomBarComponent.js":(m,_,d)=>{d.r(_),d.d(_,{BottomBarComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/controls/textInputComponent.js"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/bottomBar/mediaPlayerComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/bottomBar/rangeSelectorComponent.js");d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/bottomBar.scss");class b extends x.Component{constructor(T){super(T),this.state={clipLength:this.props.context.clipLength?this.props.context.clipLength.toFixed(0):this.props.context.referenceMaxFrame.toFixed(0)},this._onAnimationsLoadedObserver=this.props.context.onAnimationsLoaded.add(()=>{this.forceUpdate()}),this._onActiveAnimationChangedObserver=this.props.context.onActiveAnimationChanged.add(()=>{this.forceUpdate()}),this._onClipLengthIncreasedObserver=this.props.context.onClipLengthIncreased.add(O=>{this.props.context.clipLength=O,this.props.context.onMoveToFrameRequired.notifyObservers(O),this.props.context.getKeyAtAnyFrameIndex(O)!==null||this.props.context.onCreateOrUpdateKeyPointRequired.notifyObservers(),this.setState({clipLength:O.toFixed(0)})}),this._onClipLengthIncreasedObserver=this.props.context.onClipLengthDecreased.add(O=>{this.props.context.clipLength=O,this.props.context.onMoveToFrameRequired.notifyObservers(O),this.props.context.getKeyAtAnyFrameIndex(O)!==null||this.props.context.onCreateOrUpdateKeyPointRequired.notifyObservers(),this.props.context.toKey=Math.min(this.props.context.toKey,this.props.context.clipLength),this.props.context.onRangeUpdated.notifyObservers(),this.setState({clipLength:O.toFixed(0)})})}_changeClipLength(T){const O=this.props.context.clipLength||this.props.context.referenceMaxFrame;O<T?this.props.context.onClipLengthIncreased.notifyObservers(T):O>T&&this.props.context.onClipLengthDecreased.notifyObservers(T),this.setState({clipLength:T.toFixed(0)})}componentWillUnmount(){this._onAnimationsLoadedObserver&&this.props.context.onAnimationsLoaded.remove(this._onAnimationsLoadedObserver),this._onActiveAnimationChangedObserver&&this.props.context.onActiveAnimationChanged.remove(this._onActiveAnimationChangedObserver),this._onClipLengthDecreasedObserver&&this.props.context.onClipLengthDecreased.remove(this._onClipLengthDecreasedObserver),this._onClipLengthIncreasedObserver&&this.props.context.onClipLengthDecreased.remove(this._onClipLengthIncreasedObserver)}render(){return(0,h.jsxs)("div",{id:"bottom-bar",children:[(0,h.jsx)(S.MediaPlayerComponent,{globalState:this.props.globalState,context:this.props.context}),(0,h.jsx)(E.RangeSelectorComponent,{globalState:this.props.globalState,context:this.props.context}),this.props.context.activeAnimations.length>0&&(0,h.jsx)("div",{id:"bottom-bar-total",children:(0,h.jsx)(A.TextInputComponent,{isNumber:!0,value:this.state.clipLength,tooltip:"Clip Length",id:"clip-range",onValueAsNumberChanged:(T,O)=>{!O&&this._changeClipLength(T)},globalState:this.props.globalState,context:this.props.context})})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/bottomBar/mediaPlayerComponent.js":(m,_,d)=>{d.r(_),d.d(_,{MediaPlayerComponent:()=>te});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/controls/controlButtonComponent.js"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationLastKeyIcon.svg"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationLastKeyHoverIcon.svg"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationPlayRevIcon.svg"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationPlayRevHoverIcon.svg"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationPlayFwdIcon.svg"),O=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationPlayFwdHoverIcon.svg"),R=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationNextKeyIcon.svg"),I=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationNextKeyHoverIcon.svg"),N=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationStartIcon.svg"),w=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationStartHoverIcon.svg"),D=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationEndIcon.svg"),k=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationEndHoverIcon.svg"),Y=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationStopIcon.svg"),V=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationStopHoverIcon.svg"),ee=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationNextFrameIcon.svg"),K=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationNextFrameHoverIcon.svg"),ie=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationLastFrameIcon.svg"),ne=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationLastFrameHoverIcon.svg");class te extends x.Component{constructor(Q){super(Q),this._isMounted=!1,this.state={},this.props.context.onAnimationStateChanged.add(()=>{this._isMounted&&this.forceUpdate()})}componentDidMount(){this._isMounted=!0}componentWillUnmount(){this._isMounted=!1}_onFirstKey(){this.props.context.onMoveToFrameRequired.notifyObservers(this.props.context.fromKey)}_onPrevKey(){const Q=this.props.context.getPrevKey();Q!==null&&this.props.context.onMoveToFrameRequired.notifyObservers(Q)}_onRewind(){this.props.context.play(!1),this.forceUpdate()}_onForward(){this.props.context.play(!0),this.forceUpdate()}_onPrevFrame(){this.props.context.onMoveToFrameRequired.notifyObservers(Math.max(0,this.props.context.activeFrame-1))}_onNextFrame(){this.props.context.onMoveToFrameRequired.notifyObservers(this.props.context.activeFrame+1)}_onNextKey(){const Q=this.props.context.getNextKey();Q!==null&&this.props.context.onMoveToFrameRequired.notifyObservers(Q)}_onEndKey(){this.props.context.onMoveToFrameRequired.notifyObservers(this.props.context.toKey)}_onStop(){this.props.context.stop(),this.forceUpdate()}render(){return(0,h.jsxs)("div",{id:"media-player",children:[(0,h.jsx)(A.ControlButtonComponent,{tooltip:"Rewind to the first frame of the selected timeline",id:"start-key",context:this.props.context,globalState:this.props.globalState,icon:N,hoverIcon:w,onClick:()=>this._onFirstKey()}),(0,h.jsx)(A.ControlButtonComponent,{tooltip:"Rewind to the previous frame",id:"prev-frame",context:this.props.context,globalState:this.props.globalState,icon:ie,hoverIcon:ne,onClick:()=>this._onPrevFrame()}),(0,h.jsx)(A.ControlButtonComponent,{tooltip:"Rewind to the previous key frame",id:"first-key",context:this.props.context,globalState:this.props.globalState,icon:S,hoverIcon:E,onClick:()=>this._onPrevKey()}),(this.props.context.isPlaying&&this.props.context.forwardAnimation||!this.props.context.isPlaying)&&(0,h.jsx)(A.ControlButtonComponent,{tooltip:"Play backwards",id:"rev-key",context:this.props.context,globalState:this.props.globalState,icon:b,hoverIcon:M,onClick:()=>this._onRewind()}),this.props.context.isPlaying&&!this.props.context.forwardAnimation&&(0,h.jsx)(A.ControlButtonComponent,{tooltip:"Stop",id:"stop-key",context:this.props.context,globalState:this.props.globalState,icon:Y,hoverIcon:V,onClick:()=>this._onStop()}),(this.props.context.isPlaying&&!this.props.context.forwardAnimation||!this.props.context.isPlaying)&&(0,h.jsx)(A.ControlButtonComponent,{tooltip:"Play forwards",id:"fwd-key",context:this.props.context,globalState:this.props.globalState,icon:T,hoverIcon:O,onClick:()=>this._onForward()}),this.props.context.isPlaying&&this.props.context.forwardAnimation&&(0,h.jsx)(A.ControlButtonComponent,{tooltip:"Stop",id:"stop-key",context:this.props.context,globalState:this.props.globalState,icon:Y,hoverIcon:V,onClick:()=>this._onStop()}),(0,h.jsx)(A.ControlButtonComponent,{tooltip:"Advance to the next key frame",id:"next-key",context:this.props.context,globalState:this.props.globalState,icon:R,hoverIcon:I,onClick:()=>this._onNextKey()}),(0,h.jsx)(A.ControlButtonComponent,{tooltip:"Advance to the next frame",id:"next-frame",context:this.props.context,globalState:this.props.globalState,icon:ee,hoverIcon:K,onClick:()=>this._onNextFrame()}),(0,h.jsx)(A.ControlButtonComponent,{tooltip:"Advance to the last frame of the selected timeline",id:"end-key",context:this.props.context,globalState:this.props.globalState,icon:D,hoverIcon:k,onClick:()=>this._onEndKey()})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/bottomBar/rangeSelectorComponent.js":(m,_,d)=>{d.r(_),d.d(_,{RangeSelectorComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/scrollbarHandleIcon.svg");class S extends x.Component{constructor(b){super(b),this._viewWidth=748,this.state={},this._rangeHost=x.createRef(),this._rangeScrollbarHost=x.createRef(),this.props.context.onHostWindowResized.add(()=>{this._computeSizes()}),this.props.context.onFrameSet.add(()=>{this.forceUpdate()}),this.props.context.onAnimationsLoaded.add(()=>{this.forceUpdate()}),this._updateLimits()}_computeSizes(){this._rangeHost.current&&(this._viewWidth=this._rangeHost.current.clientWidth-4,this.forceUpdate())}_onPointerDown(b){this._bothHandleIsActive=!1,b.nativeEvent.target.id==="left-handle"?this._leftHandleIsActive=!0:b.nativeEvent.target.id==="right-handle"?this._leftHandleIsActive=!1:(this._bothHandleIsActive=!0,this._currentOffset=b.nativeEvent.clientX,this._currentFrom=this.props.context.fromKey,this._currentTo=this.props.context.toKey),this._pointerIsDown=!0,b.currentTarget.setPointerCapture(b.pointerId)}_onPointerMove(b){if(!this._pointerIsDown||!this.props.context.animations||!this.props.context.animations.length)return;this._updateLimits();let M=b.nativeEvent.offsetX;this._bothHandleIsActive&&(M=b.nativeEvent.clientX-this._currentOffset);let T=M/this._viewWidth*(this._maxFrame-this._minFrame);const O=Math.min(this._maxFrame,Math.max(this._minFrame,Math.round(this._minFrame+T)));this._bothHandleIsActive?(this._currentTo+T>this._maxFrame&&(T=this._maxFrame-this._currentTo),this._currentFrom+T<this._minFrame&&(T=this._minFrame-this._currentFrom),this.props.context.fromKey=Math.min(this._maxFrame,Math.max(this._minFrame,this._currentFrom+T|0)),this.props.context.toKey=Math.min(this._maxFrame,Math.max(this._minFrame,this._currentTo+T|0))):this._leftHandleIsActive?(this.props.context.fromKey=O,this.props.context.fromKey=Math.min(this.props.context.toKey-1,this.props.context.fromKey)):(this.props.context.toKey=O,this.props.context.toKey=Math.max(this.props.context.fromKey+1,this.props.context.toKey)),this.props.context.onRangeUpdated.notifyObservers(),this.props.context.stop(),this.forceUpdate()}_updateLimits(){if(!this.props.context.animations||!this.props.context.animations.length)return;let b=Number.MAX_VALUE,M=-Number.MAX_VALUE;for(const T of this.props.context.animations){const O=this.props.context.useTargetAnimations?T.animation.getKeys():T.getKeys();b=Math.min(b,O[0].frame),M=Math.max(M,O[O.length-1].frame)}this._minFrame=b,this._maxFrame=M}_onPointerUp(b){this._pointerIsDown=!1,b.currentTarget.releasePointerCapture(b.pointerId)}render(){this._updateLimits();const b=this._maxFrame-this._minFrame;return this.props.context.toKey>this._maxFrame&&(this.props.context.toKey=this._maxFrame),(0,h.jsx)("div",{id:"range-selector",ref:this._rangeHost,onPointerDown:M=>this._onPointerDown(M),onPointerMove:M=>this._onPointerMove(M),onPointerUp:M=>this._onPointerUp(M),children:(0,h.jsxs)("div",{id:"range-scrollbar",ref:this._rangeScrollbarHost,style:{left:`${2+(this.props.context.fromKey-this._minFrame)/b*this._viewWidth}px`,right:`${2+(this._maxFrame-this.props.context.toKey)/b*this._viewWidth}px`},children:[(0,h.jsx)("div",{id:"left-handle",className:"handle",children:(0,h.jsx)("img",{src:A})}),(0,h.jsx)("div",{id:"from-key",children:this.props.context.fromKey|0}),(0,h.jsx)("div",{id:"to-key",children:this.props.context.toKey|0}),(0,h.jsx)("div",{id:"right-handle",className:"handle",children:(0,h.jsx)("img",{src:A})})]})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/context.js":(m,_,d)=>{d.r(_),d.d(_,{Context:()=>x});var h=d("core/Misc/observable");class x{constructor(){this.activeAnimations=[],this.activeChannels={},this.useExistingPlayRange=!1,this.forwardAnimation=!0,this.referenceMinFrame=0,this.referenceMaxFrame=100,this.focusedInput=!1,this.onActiveAnimationChanged=new h.Observable,this.onActiveKeyPointChanged=new h.Observable,this.onHostWindowResized=new h.Observable,this.onSelectAllKeys=new h.Observable,this.onActiveKeyFrameChanged=new h.Observable,this.onFrameSet=new h.Observable,this.onFrameManuallyEntered=new h.Observable,this.onMainKeyPointSet=new h.Observable,this.onMainKeyPointMoved=new h.Observable,this.onValueSet=new h.Observable,this.onValueManuallyEntered=new h.Observable,this.onFrameRequired=new h.Observable,this.onCreateOrUpdateKeyPointRequired=new h.Observable,this.onFlattenTangentRequired=new h.Observable,this.onLinearTangentRequired=new h.Observable,this.onBreakTangentRequired=new h.Observable,this.onUnifyTangentRequired=new h.Observable,this.onStepTangentRequired=new h.Observable,this.onDeleteAnimation=new h.Observable,this.onGraphMoved=new h.Observable,this.onGraphScaled=new h.Observable,this.onRangeUpdated=new h.Observable,this.onMoveToFrameRequired=new h.Observable,this.onAnimationStateChanged=new h.Observable,this.onDeleteKeyActiveKeyPoints=new h.Observable,this.onSelectionRectangleMoved=new h.Observable,this.onAnimationsLoaded=new h.Observable,this.onEditAnimationRequired=new h.Observable,this.onEditAnimationUIClosed=new h.Observable,this.onClipLengthIncreased=new h.Observable,this.onClipLengthDecreased=new h.Observable,this.onInterpolationModeSet=new h.Observable,this.onSelectToActivated=new h.Observable,this.onRangeFrameBarResized=new h.Observable,this.onPlayheadMoved=new h.Observable,this.lockLastFrameValue=!1,this.lockLastFrameFrame=!1,this.onActiveKeyDataChanged=new h.Observable}prepare(){if(this.isPlaying=!1,!this.animations||!this.animations.length)return;const S=this.useTargetAnimations?this.animations[0].animation:this.animations[0],E=S.getKeys();this.referenceMinFrame=0,this.referenceMaxFrame=E[E.length-1].frame,this.useExistingPlayRange||(this.fromKey=this.referenceMinFrame,this.toKey=this.referenceMaxFrame),this.snippetId=S.snippetId,this.clipLength=this.referenceMaxFrame,!(!S||!S.hasRunningRuntimeAnimations)&&(this.isPlaying=!0)}play(S){this.isPlaying=!0,this.scene.stopAnimation(this.target);let E;S?this.rootAnimationGroup?this.rootAnimationGroup.start(!0,1,this.fromKey,this.toKey):E=this.scene.beginAnimation(this.target,this.fromKey,this.toKey,!0):this.rootAnimationGroup?this.rootAnimationGroup.start(!0,1,this.toKey,this.fromKey):E=this.scene.beginAnimation(this.target,this.toKey,this.fromKey,!0),this.forwardAnimation=S,this.rootAnimationGroup?this.rootAnimationGroup.goToFrame(this.activeFrame):E.goToFrame(this.activeFrame),this.onAnimationStateChanged.notifyObservers()}stop(){this.isPlaying=!1,this.rootAnimationGroup?this.rootAnimationGroup.stop():this.scene.stopAnimation(this.target),this.onAnimationStateChanged.notifyObservers()}moveToFrame(S){if(!(!this.animations||!this.animations.length)){this.activeFrame=S,this.isPlaying||(this.rootAnimationGroup?this.rootAnimationGroup.start(!1,1,this.fromKey,this.toKey):this.scene.beginAnimation(this.target,this.fromKey,this.toKey,!1));for(const E of this.animations){const b=this.useTargetAnimations?E.animation:E;if(!b.hasRunningRuntimeAnimations)return;for(const M of b.runtimeAnimations)M.goToFrame(S)}this.stop()}}refreshTarget(){!this.animations||!this.animations.length||this.isPlaying||this.moveToFrame(this.activeFrame)}clearSelection(){this.activeKeyPoints=[],this.onActiveKeyPointChanged.notifyObservers()}enableChannel(S,E){this.activeChannels[S.uniqueId]=E}disableChannel(S){delete this.activeChannels[S.uniqueId]}isChannelEnabled(S,E){return this.activeChannels[S.uniqueId]===void 0||this.activeChannels[S.uniqueId]===E}getActiveChannel(S){return this.activeChannels[S.uniqueId]}resetAllActiveChannels(){this.clearSelection(),this.activeChannels={}}getAnimationSortIndex(S){var E;if(!this.animations)return-1;for(let b=0;b<((E=this.animations)==null?void 0:E.length);b++)if(S===(this.useTargetAnimations?this.animations[0].animation:this.animations[b]))return b;return-1}getPrevKey(){if(!this.animations||!this.animations.length||this.activeAnimations.length===0)return null;let S=-Number.MAX_VALUE;for(const E of this.activeAnimations){const b=E.getKeys();for(const M of b)M.frame<this.activeFrame&&M.frame>S&&(S=M.frame)}return S===-Number.MAX_VALUE&&(S=this.fromKey),S}getNextKey(){if(!this.animations||!this.animations.length)return null;let S=Number.MAX_VALUE;for(const E of this.activeAnimations){const b=E.getKeys();for(const M of b)M.frame>this.activeFrame&&M.frame<S&&(S=M.frame)}return S===Number.MAX_VALUE&&(S=this.toKey),S}getKeyAtAnyFrameIndex(S){if(!this.animations||!this.animations.length||!this.activeAnimations||!this.activeAnimations.length)return null;let E=0;for(const b of this.activeAnimations){const M=b.getKeys();let T=0;for(const O of M){if(Math.floor(S-O.frame)===0)return{animationIndex:E,keyIndex:T};T++}E++}return null}hasActiveQuaternionAnimationKeyPoints(){var M;const S=(M=this.activeKeyPoints)==null?void 0:M.map(T=>T.props.curve.animation.dataType),E=S==null?void 0:S.filter(T=>T===h.Animation.ANIMATIONTYPE_QUATERNION);return((E==null?void 0:E.length)||0)>0}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/controls/actionButtonComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ActionButtonComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E),this.state={}}render(){return(0,h.jsx)("div",{title:this.props.tooltip,className:"action-button"+(this.props.isActive?" active":"")+(this.props.className?" "+this.props.className:""),id:this.props.id,onClick:()=>this.props.onClick(),children:(0,h.jsx)("img",{className:"action-button-image",src:this.props.icon})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/controls/controlButtonComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ControlButtonComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E),this.state={}}render(){return(0,h.jsxs)("div",{title:this.props.tooltip,className:"control-button"+(this.props.className?" "+this.props.className:""),id:this.props.id,onClick:()=>this.props.onClick(),children:[(0,h.jsx)("img",{className:"control-button-image",src:this.props.icon}),(0,h.jsx)("img",{className:"control-button-hover-image",src:this.props.hoverIcon})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/controls/textInputComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TextInputComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E),this.state={value:this.props.value,isFocused:!1}}_onChange(E){if(this.props.isNumber){const b=parseFloat(E);if(!isNaN(b))this.props.onValueAsNumberChanged&&this.props.onValueAsNumberChanged(b,!0),this._lastKnownGoodValue=b.toString();else if(E!=="-"&&E!=="")return}this._lastKnownGoodValue=E,this.setState({value:E})}_onBlur(){if(this.props.context.focusedInput=!1,this.props.isNumber){const E=parseFloat(this.state.value);isNaN(E)?this.setState({value:this._lastKnownGoodValue,isFocused:!1}):(this.props.onValueAsNumberChanged&&this.props.onValueAsNumberChanged(E,!1),this.setState({value:E.toString(),isFocused:!1}));return}this.setState({isFocused:!1})}_onFocus(){this.props.context.focusedInput=!0,this.setState({isFocused:!0})}shouldComponentUpdate(E,b){return E!==this.props&&(b.value=E.value),!0}_onKeyPress(E){if(E.key==="Enter"){const b=parseFloat(this.state.value);isNaN(b)||this.props.onValueAsNumberChanged&&this.props.onValueAsNumberChanged(b,!1)}}render(){return(0,h.jsx)("input",{type:"text",title:this.props.tooltip,onFocus:()=>this._onFocus(),onBlur:()=>this._onBlur(),className:"text-input"+(this.props.className?" "+this.props.className:""),onChange:E=>this._onChange(this.props.complement?E.target.value.replace(this.props.complement,""):E.target.value),onKeyPress:E=>this._onKeyPress(E),value:(this.state.value||"")+(!this.state.isFocused&&this.props.complement?this.props.complement:""),id:this.props.id,disabled:this.props.disabled})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/canvasComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CanvasComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/frameBarComponent.js"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/graphComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/playHeadComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/rangeFrameBarComponent.js");d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/canvas.scss");class M extends x.Component{constructor(O){super(O),this.state={},this._onActiveAnimationChangedObserver=this.props.context.onActiveAnimationChanged.add(()=>{this.forceUpdate()})}componentWillUnmount(){this._onActiveAnimationChangedObserver&&this.props.context.onActiveAnimationChanged.remove(this._onActiveAnimationChangedObserver)}render(){return(0,h.jsxs)("div",{id:"canvas-zone",children:[(0,h.jsx)(A.FrameBarComponent,{globalState:this.props.globalState,context:this.props.context}),(0,h.jsx)(S.GraphComponent,{globalState:this.props.globalState,context:this.props.context}),(0,h.jsx)(E.PlayHeadComponent,{context:this.props.context,globalState:this.props.globalState}),(0,h.jsx)(b.RangeFrameBarComponent,{context:this.props.context,globalState:this.props.globalState}),this.props.context.activeAnimations.length>0&&(0,h.jsx)("div",{id:"angle-mode"})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/curve.js":(m,_,d)=>{d.r(_),d.d(_,{Curve:()=>x});var h=d("core/Misc/observable");class x{constructor(S,E,b,M,T,O){this.keys=[],this.onDataUpdatedObservable=new h.Observable,this.color=S,this.animation=E,this.property=b,this.tangentBuilder=M,this.setDefaultInTangent=T,this.setDefaultOutTangent=O}getPathData(S,E){const b=this.keys;if(b.length<2)return"";let M=`M${S(b[0].frame)} ${E(b[0].value)}`;const T=this.animation.dataType;for(let O=1;O<b.length;O++){const R=b[O-1].outTangent,I=b[O].inTangent,N=b[O].frame,w=b[O].value,D=b[O-1].frame,k=b[O-1].value,Y=N-D;if(b[O-1].interpolation===1){M+=`L ${S(N)} ${E(k)}`,M+=`L ${S(N)} ${E(w)}`;continue}if(R===void 0&&I===void 0&&T!==h.Animation.ANIMATIONTYPE_QUATERNION){M+=` L${S(N)} ${E(w)}`;continue}for(let ee=D;ee<N;ee+=Y/x.SampleRate){const K=this.animation.evaluate(ee),ie=this.property?K[this.property]:K;M+=` L${S(ee)} ${E(ie)}`}M+=` L${S(N)} ${E(w)}`}return M}updateLockedTangentMode(S,E){const b=this.keys;b[S].lockedTangent=E;const M=this.animation.getKeys();M[S].lockedTangent=E}updateInterpolationMode(S,E){const b=this.keys;b[S].interpolation=E;const M=this.animation.getKeys();M[S].interpolation=E,this.onDataUpdatedObservable.notifyObservers()}getInControlPoint(S){if(S===0)return 0;let b=this.keys[S].inTangent;return b===void 0&&this.hasDefinedInTangent(S)&&(b=this.evaluateInTangent(S)),b}getOutControlPoint(S){const E=this.keys;if(S===E.length-1)return 0;let b=E[S].outTangent;return b===void 0&&this.hasDefinedOutTangent(S)&&(b=this.evaluateOutTangent(S)),b}hasDefinedOutTangent(S){const E=this.keys;if(S===this.keys.length-1)return!1;const b=E[S].frame,M=E[S+1].frame;return b!==M}evaluateOutTangent(S){const E=this.keys,b=E[S].frame,M=E[S+1].frame;return(E[S+1].value-E[S].value)/(M-b)}hasDefinedInTangent(S){if(S===0)return!1;const E=this.keys,b=E[S-1].frame,M=E[S].frame;return b!==M}evaluateInTangent(S){const E=this.keys,b=E[S-1].frame,M=E[S].frame;return(E[S].value-E[S-1].value)/(M-b)}storeDefaultInTangent(S){const E=this.keys,b=this.animation.getKeys();this.hasDefinedInTangent(S)&&(E[S].inTangent=this.evaluateInTangent(S)),this.property?(b[S].inTangent||(b[S].inTangent=this.tangentBuilder(),this.setDefaultInTangent(S)),b[S].inTangent[this.property]=E[S].inTangent):b[S].inTangent=E[S].inTangent}storeDefaultOutTangent(S){const E=this.keys,b=this.animation.getKeys();this.hasDefinedOutTangent(S)&&(E[S].outTangent=this.evaluateOutTangent(S)),this.property?(b[S].outTangent||(b[S].outTangent=this.tangentBuilder(),this.setDefaultOutTangent(S)),b[S].outTangent[this.property]=E[S].outTangent):b[S].outTangent=E[S].outTangent}updateInTangentFromControlPoint(S,E){const b=this.keys;b[S].inTangent=E;const M=this.animation.getKeys();this.property?(M[S].inTangent||(M[S].inTangent=this.tangentBuilder(),this.setDefaultInTangent(S)),M[S-1].outTangent||(M[S-1].outTangent=this.tangentBuilder(),this.setDefaultOutTangent(S-1)),M[S].inTangent[this.property]=b[S].inTangent):(M[S].inTangent=b[S].inTangent,M[S-1].outTangent===void 0&&this.storeDefaultOutTangent(S-1)),this.onDataUpdatedObservable.notifyObservers()}updateOutTangentFromControlPoint(S,E){const b=this.keys;b[S].outTangent=E;const M=this.animation.getKeys();this.property?(M[S+1].inTangent||(M[S+1].inTangent=this.tangentBuilder(),this.setDefaultInTangent(S+1)),M[S].outTangent||(M[S].outTangent=this.tangentBuilder(),this.setDefaultOutTangent(S)),M[S].outTangent[this.property]=b[S].outTangent):(M[S].outTangent=b[S].outTangent,M[S+1].inTangent===void 0&&this.storeDefaultInTangent(S+1)),this.onDataUpdatedObservable.notifyObservers()}updateKeyFrame(S,E){const b=this.animation.getKeys()[S];b.frame=E,this.keys[S].frame=E,this.onDataUpdatedObservable.notifyObservers()}updateKeyValue(S,E){this.keys[S].value=E;const b=this.animation.getKeys()[S];this.property?b.value[this.property]=E:b.value=E,this.onDataUpdatedObservable.notifyObservers()}}x.SampleRate=50,x.TangentLength=50},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/curveComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CurveComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable");class S extends x.Component{constructor(b){super(b),this.state={isSelected:!1},this._onDataUpdatedObserver=this.props.curve.onDataUpdatedObservable.add(()=>this.forceUpdate()),this._onActiveAnimationChangedObserver=b.context.onActiveAnimationChanged.add(()=>{this._onDataUpdatedObserver&&this.props.curve.onDataUpdatedObservable.remove(this._onDataUpdatedObserver),this._onDataUpdatedObserver=null,this.forceUpdate()}),this._onInterpolationModeSetObserver=b.context.onInterpolationModeSet.add(({keyId:M,value:T})=>{this.props.curve.updateInterpolationMode(M,T)})}componentWillUnmount(){this._onDataUpdatedObserver&&this.props.curve.onDataUpdatedObservable.remove(this._onDataUpdatedObserver),this._onActiveAnimationChangedObserver&&this.props.context.onActiveAnimationChanged.remove(this._onActiveAnimationChangedObserver),this._onInterpolationModeSetObserver&&this.props.context.onInterpolationModeSet.remove(this._onInterpolationModeSetObserver)}componentDidUpdate(){return this._onDataUpdatedObserver||(this._onDataUpdatedObserver=this.props.curve.onDataUpdatedObservable.add(()=>this.forceUpdate())),!0}render(){if(!this.props.context.isChannelEnabled(this.props.curve.animation,this.props.curve.color))return null;const b={stroke:this.props.curve.color,fill:"none",strokeWidth:"1"};return this.props.curve.animation.dataType===A.Animation.ANIMATIONTYPE_QUATERNION&&(b["stroke-dasharray"]="5",b["stroke-opacity"]="0.5"),(0,h.jsx)("svg",{style:{cursor:"pointer",overflow:"auto"},children:(0,h.jsx)("path",{d:this.props.curve.getPathData(this.props.convertX,this.props.convertY),style:b})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/frameBarComponent.js":(m,_,d)=>{d.r(_),d.d(_,{FrameBarComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");const A=25,S=35;class E extends x.Component{constructor(M){super(M),this._graphAbsoluteWidth=788,this._viewWidth=748,this._viewScale=1,this._offsetX=0,this.state={},this._svgHost=x.createRef(),this.props.context.onHostWindowResized.add(()=>{this._computeSizes()}),this._onActiveAnimationChangedObserver=this.props.context.onActiveAnimationChanged.add(()=>{this._computeSizes(),this.forceUpdate()}),this.props.context.onGraphMoved.add(T=>{this._offsetX=T,this.forceUpdate()}),this.props.context.onGraphScaled.add(T=>{this._viewScale=T,this.forceUpdate()})}componentWillUnmount(){this._onActiveAnimationChangedObserver&&this.props.context.onActiveAnimationChanged.remove(this._onActiveAnimationChangedObserver)}_computeSizes(){this._svgHost.current&&(this._viewWidth=this._svgHost.current.clientWidth,this.forceUpdate())}_buildFrames(){if(this.props.context.activeAnimations.length===0)return null;const M=this.props.context.referenceMinFrame,R=(this.props.context.referenceMaxFrame-M)/this._graphAbsoluteWidth,I=Math.max(A*this._viewScale,S);let N=Math.floor(I*R);const w=[];N===0&&(N=1);const D=this._offsetX*R,k=M-(D/N|0)*N,Y=k+this._viewWidth*this._viewScale*R;for(let V=k-N;V<=Y+N;V+=N)w.push(V);return w.map(V=>{const ee=(V-M)/R;return(0,h.jsxs)("g",{children:[(0,h.jsx)("line",{x1:ee,y1:`${5*this._viewScale}px`,x2:ee,y2:`${30*this._viewScale}px`,style:{stroke:"#333333",strokeWidth:.5}},"line"+V),(0,h.jsx)("text",{x:ee,y:0,dx:`${7*this._viewScale}px`,textAnchor:"middle",dy:`${15*this._viewScale}px`,style:{fontFamily:"acumin-pro-condensed",fontSize:`${10*this._viewScale}px`,fill:"#555555",textAlign:"center"},children:V.toFixed(0)},"label"+V)]},"axis"+V)})}render(){const M=`${-this._offsetX} 0 ${Math.round(this._viewWidth*this._viewScale)} ${Math.round(30*this._viewScale)}`;return(0,h.jsxs)("div",{id:"frame-bar",children:[this.props.context.activeAnimations.length>0&&(0,h.jsx)("div",{id:"angle-unit"}),(0,h.jsx)("div",{id:"frames",children:(0,h.jsx)("svg",{id:"svg-frames",viewBox:M,ref:this._svgHost,children:this._buildFrames()})})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/graphComponent.js":(m,_,d)=>{d.r(_),d.d(_,{GraphComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/curve.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/keyPoint.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/curveComponent.js");class M extends x.Component{constructor(O){super(O),this._minScale=.5,this._maxScale=5,this._graphAbsoluteWidth=788,this._graphAbsoluteHeight=357,this._viewWidth=788,this._viewCurveWidth=788,this._viewHeight=357,this._viewScale=1,this._offsetX=0,this._offsetY=0,this._graphOffsetX=30,this.state={},this._svgHost=x.createRef(),this._svgHost2=x.createRef(),this._selectionRectangle=x.createRef(),this._evaluateKeys(),this.props.context.onHostWindowResized.add(()=>{this._computeSizes()}),this._onActiveAnimationChangedObserver=this.props.context.onActiveAnimationChanged.add(({evaluateKeys:R=!0,frame:I=!0,range:N=!0})=>{R&&this._evaluateKeys(I,N),this._computeSizes(),this.forceUpdate()}),this.props.context.onFrameRequired.add(()=>{this._frameFromActiveKeys(),this.forceUpdate()}),this.props.context.onRangeUpdated.add(()=>{this.forceUpdate()}),this.props.context.onDeleteKeyActiveKeyPoints.add(()=>{if(!(this.props.context.activeAnimations.length===0||!this.props.context.activeKeyPoints)){for(const R of this.props.context.activeAnimations){const I=R.getKeys(),N=I.slice(0);let w=null;for(const D of this.props.context.activeKeyPoints){if(D.props.keyId===0||D.props.keyId===I.length-1)continue;const k=I[D.props.keyId],Y=N.indexOf(k);Y>-1&&(N.splice(Y,1),w===null&&(w=k.frame))}this.props.context.stop(),R.setKeys(N),w!==null&&this.props.context.moveToFrame(w)}this._evaluateKeys(!1,!1),this.props.context.activeKeyPoints=[],this.props.context.onActiveKeyPointChanged.notifyObservers(),this.props.context.onActiveAnimationChanged.notifyObservers({evaluateKeys:!1}),this.forceUpdate()}}),this.props.context.onCreateOrUpdateKeyPointRequired.add(()=>{if(this.props.context.activeAnimations.length!==0){for(const R of this.props.context.activeAnimations){if(R.dataType===A.Animation.ANIMATIONTYPE_QUATERNION)continue;const I=R.getKeys(),N=this.props.context.activeFrame;let w=-1;for(const V of I)if(V.frame<N)w++;else break;let D;if(this.props.context.target){D=this.props.context.target;for(const V of R.targetPropertyPath)D=D[V];D.clone&&(D=D.clone())}else D=R.evaluate(N);const k=I[w],Y=I[w+1];if(Math.floor(N-(k==null?void 0:k.frame))===0)k.value=D;else if(Math.floor((Y==null?void 0:Y.frame)-N)===0)Y.value=D;else{const V={frame:N,value:D,lockedTangent:!0};if((k==null?void 0:k.outTangent)!==void 0&&(Y==null?void 0:Y.inTangent)!==void 0){let ee=null;const K=1/(Y.frame-k.frame),ie=(N-k.frame)*K;switch(R.dataType){case A.Animation.ANIMATIONTYPE_FLOAT:{ee=A.Scalar.Hermite1stDerivative(k.value*K,k.outTangent,Y.value*K,Y.inTangent,ie);break}case A.Animation.ANIMATIONTYPE_VECTOR2:{ee=A.Vector2.Hermite1stDerivative(k.value.scale(K),k.outTangent,Y.value.scale(K),Y.inTangent,ie);break}case A.Animation.ANIMATIONTYPE_VECTOR3:{ee=A.Vector3.Hermite1stDerivative(k.value.scale(K),k.outTangent,Y.value.scale(K),Y.inTangent,ie);break}case A.Animation.ANIMATIONTYPE_COLOR3:ee=A.Color3.Hermite1stDerivative(k.value.scale(K),k.outTangent,Y.value.scale(K),Y.inTangent,ie);break;case A.Animation.ANIMATIONTYPE_COLOR4:ee=A.Color4.Hermite1stDerivative(k.value.scale(K),k.outTangent,Y.value.scale(K),Y.inTangent,ie);break}ee!==null&&(V.inTangent=ee,V.outTangent=ee.clone?ee.clone():ee)}I.splice(w+1,0,V)}R.setKeys(I)}this._evaluateKeys(!1,!1),this.props.context.activeKeyPoints=[],this.props.context.onActiveKeyPointChanged.notifyObservers(),this.props.context.onActiveAnimationChanged.notifyObservers({evaluateKeys:!1}),this.forceUpdate()}})}componentWillUnmount(){this._onActiveAnimationChangedObserver&&this.props.context.onActiveAnimationChanged.remove(this._onActiveAnimationChangedObserver)}_computeSizes(){!this._svgHost.current||!this._svgHost2.current||(this._viewWidth=this._svgHost.current.clientWidth,this._viewCurveWidth=this._svgHost2.current.clientWidth,this._viewHeight=this._svgHost.current.clientHeight,this.forceUpdate())}_setDefaultInTangent(O){for(const R of this._curves)R.storeDefaultInTangent(O)}_setDefaultOutTangent(O){for(const R of this._curves)R.storeDefaultOutTangent(O)}_evaluateKeys(O=!0,R=!0){if(this.props.context.activeAnimations.length===0){this._curves=[];return}this._curves=[];for(const I of this.props.context.activeAnimations){const N=I.getKeys(),w=[];switch(I.dataType){case A.Animation.ANIMATIONTYPE_FLOAT:w.push(new S.Curve("#DB3E3E",I));break;case A.Animation.ANIMATIONTYPE_VECTOR2:w.push(new S.Curve("#DB3E3E",I,"x",()=>A.Vector2.Zero(),k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k))),w.push(new S.Curve("#51E22D",I,"y",()=>A.Vector2.Zero(),k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k)));break;case A.Animation.ANIMATIONTYPE_VECTOR3:w.push(new S.Curve("#DB3E3E",I,"x",()=>A.Vector3.Zero(),k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k))),w.push(new S.Curve("#51E22D",I,"y",()=>A.Vector3.Zero(),k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k))),w.push(new S.Curve("#00A3FF",I,"z",()=>A.Vector3.Zero(),k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k)));break;case A.Animation.ANIMATIONTYPE_COLOR3:w.push(new S.Curve("#DB3E3E",I,"r",()=>A.Color3.Black(),k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k))),w.push(new S.Curve("#51E22D",I,"g",()=>A.Color3.Black(),k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k))),w.push(new S.Curve("#00A3FF",I,"b",()=>A.Color3.Black(),k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k)));break;case A.Animation.ANIMATIONTYPE_QUATERNION:w.push(new S.Curve("#DB3E3E",I,"x",()=>A.Quaternion.Zero(),k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k))),w.push(new S.Curve("#51E22D",I,"y",()=>A.Quaternion.Zero(),k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k))),w.push(new S.Curve("#00A3FF",I,"z",()=>A.Quaternion.Zero(),k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k))),w.push(new S.Curve("#8700FF",I,"w",()=>A.Quaternion.Zero(),k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k)));break;case A.Animation.ANIMATIONTYPE_COLOR4:w.push(new S.Curve("#DB3E3E",I,"r",()=>new A.Color4,k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k))),w.push(new S.Curve("#51E22D",I,"g",()=>new A.Color4,k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k))),w.push(new S.Curve("#00A3FF",I,"b",()=>new A.Color4,k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k))),w.push(new S.Curve("#8700FF",I,"a",()=>new A.Color4,k=>this._setDefaultInTangent(k),k=>this._setDefaultOutTangent(k)));break}const D=this._extractValuesFromKeys(N,I.dataType,w);this._curves.push(...w),R&&(this._minValue=Math.min(this._minValue,D.min),this._maxValue=Math.max(this._maxValue,D.max),this._minFrame=Math.min(this._minFrame,N[0].frame),this._maxFrame=Math.max(this._maxFrame,N[N.length-1].frame))}O&&this._frameFromActiveKeys()}_extractValuesFromKeys(O,R,I,N){var k,Y,V,ee,K,ie,ne,te,W,Q,re,oe,X,se,ue,he,fe,Ae,Se,we,ke,st,Ve,Ke,ct,nt,at,xt,Qe,kt,ot,At;let w=Number.MAX_VALUE,D=-Number.MAX_VALUE;for(const Me of O){let je=!0;switch(Me.lockedTangent!==void 0&&(je=Me.lockedTangent),R){case A.Animation.ANIMATIONTYPE_FLOAT:w=Math.min(w,Me.value),D=Math.max(D,Me.value),I&&I[0].keys.push({frame:Me.frame,value:Me.value,inTangent:Me.inTangent,outTangent:Me.outTangent,lockedTangent:je,interpolation:Me.interpolation});break;case A.Animation.ANIMATIONTYPE_VECTOR2:(!N||N==="x")&&(w=Math.min(w,Me.value.x),D=Math.max(D,Me.value.x)),(!N||N==="y")&&(w=Math.min(w,Me.value.y),D=Math.max(D,Me.value.y)),I&&(I[0].keys.push({frame:Me.frame,value:Me.value.x,inTangent:(k=Me.inTangent)==null?void 0:k.x,outTangent:(Y=Me.outTangent)==null?void 0:Y.x,lockedTangent:je,interpolation:Me.interpolation}),I[1].keys.push({frame:Me.frame,value:Me.value.y,inTangent:(V=Me.inTangent)==null?void 0:V.y,outTangent:(ee=Me.outTangent)==null?void 0:ee.y,lockedTangent:je,interpolation:Me.interpolation}));break;case A.Animation.ANIMATIONTYPE_VECTOR3:(!N||N==="x")&&(w=Math.min(w,Me.value.x),D=Math.max(D,Me.value.x)),(!N||N==="y")&&(w=Math.min(w,Me.value.y),D=Math.max(D,Me.value.y)),(!N||N==="z")&&(w=Math.min(w,Me.value.z),D=Math.max(D,Me.value.z)),I&&(I[0].keys.push({frame:Me.frame,value:Me.value.x,inTangent:(K=Me.inTangent)==null?void 0:K.x,outTangent:(ie=Me.outTangent)==null?void 0:ie.x,lockedTangent:je,interpolation:Me.interpolation}),I[1].keys.push({frame:Me.frame,value:Me.value.y,inTangent:(ne=Me.inTangent)==null?void 0:ne.y,outTangent:(te=Me.outTangent)==null?void 0:te.y,lockedTangent:je,interpolation:Me.interpolation}),I[2].keys.push({frame:Me.frame,value:Me.value.z,inTangent:(W=Me.inTangent)==null?void 0:W.z,outTangent:(Q=Me.outTangent)==null?void 0:Q.z,lockedTangent:je,interpolation:Me.interpolation}));break;case A.Animation.ANIMATIONTYPE_COLOR3:(!N||N==="r")&&(w=Math.min(w,Me.value.r),D=Math.max(D,Me.value.r)),(!N||N==="g")&&(w=Math.min(w,Me.value.g),D=Math.max(D,Me.value.g)),(!N||N==="b")&&(w=Math.min(w,Me.value.b),D=Math.max(D,Me.value.b)),I&&(I[0].keys.push({frame:Me.frame,value:Me.value.r,inTangent:(re=Me.inTangent)==null?void 0:re.r,outTangent:(oe=Me.outTangent)==null?void 0:oe.r,lockedTangent:je,interpolation:Me.interpolation}),I[1].keys.push({frame:Me.frame,value:Me.value.g,inTangent:(X=Me.inTangent)==null?void 0:X.g,outTangent:(se=Me.outTangent)==null?void 0:se.g,lockedTangent:je,interpolation:Me.interpolation}),I[2].keys.push({frame:Me.frame,value:Me.value.b,inTangent:(ue=Me.inTangent)==null?void 0:ue.b,outTangent:(he=Me.outTangent)==null?void 0:he.b,lockedTangent:je,interpolation:Me.interpolation}));break;case A.Animation.ANIMATIONTYPE_QUATERNION:(!N||N==="x")&&(w=Math.min(w,Me.value.x),D=Math.max(D,Me.value.x)),(!N||N==="y")&&(w=Math.min(w,Me.value.y),D=Math.max(D,Me.value.y)),(!N||N==="z")&&(w=Math.min(w,Me.value.z),D=Math.max(D,Me.value.z)),(!N||N==="w")&&(w=Math.min(w,Me.value.w),D=Math.max(D,Me.value.w)),I&&(I[0].keys.push({frame:Me.frame,value:Me.value.x,inTangent:(fe=Me.inTangent)==null?void 0:fe.x,outTangent:(Ae=Me.outTangent)==null?void 0:Ae.x,lockedTangent:je,interpolation:Me.interpolation}),I[1].keys.push({frame:Me.frame,value:Me.value.y,inTangent:(Se=Me.inTangent)==null?void 0:Se.y,outTangent:(we=Me.outTangent)==null?void 0:we.y,lockedTangent:je,interpolation:Me.interpolation}),I[2].keys.push({frame:Me.frame,value:Me.value.z,inTangent:(ke=Me.inTangent)==null?void 0:ke.z,outTangent:(st=Me.outTangent)==null?void 0:st.z,lockedTangent:je,interpolation:Me.interpolation}),I[3].keys.push({frame:Me.frame,value:Me.value.w,inTangent:(Ve=Me.inTangent)==null?void 0:Ve.w,outTangent:(Ke=Me.outTangent)==null?void 0:Ke.w,lockedTangent:je,interpolation:Me.interpolation}));break;case A.Animation.ANIMATIONTYPE_COLOR4:(!N||N==="r")&&(w=Math.min(w,Me.value.r),D=Math.max(D,Me.value.r)),(!N||N==="g")&&(w=Math.min(w,Me.value.g),D=Math.max(D,Me.value.g)),(!N||N==="b")&&(w=Math.min(w,Me.value.b),D=Math.max(D,Me.value.b)),(!N||N==="a")&&(w=Math.min(w,Me.value.a),D=Math.max(D,Me.value.a)),I&&(I[0].keys.push({frame:Me.frame,value:Me.value.r,inTangent:(ct=Me.inTangent)==null?void 0:ct.r,outTangent:(nt=Me.outTangent)==null?void 0:nt.r,lockedTangent:je,interpolation:Me.interpolation}),I[1].keys.push({frame:Me.frame,value:Me.value.g,inTangent:(at=Me.inTangent)==null?void 0:at.g,outTangent:(xt=Me.outTangent)==null?void 0:xt.g,lockedTangent:je,interpolation:Me.interpolation}),I[2].keys.push({frame:Me.frame,value:Me.value.b,inTangent:(Qe=Me.inTangent)==null?void 0:Qe.b,outTangent:(kt=Me.outTangent)==null?void 0:kt.b,lockedTangent:je,interpolation:Me.interpolation}),I[3].keys.push({frame:Me.frame,value:Me.value.a,inTangent:(ot=Me.inTangent)==null?void 0:ot.a,outTangent:(At=Me.outTangent)==null?void 0:At.a,lockedTangent:je,interpolation:Me.interpolation}));break}}return{min:w,max:D}}_convertX(O){let R=this._maxFrame-this._minFrame;return R===0&&(R=1),(O-this._minFrame)/R*this._graphAbsoluteWidth}_invertX(O){return O/this._graphAbsoluteWidth*(this._maxFrame-this._minFrame)+this._minFrame}_convertY(O){let R=this._maxValue-this._minValue;return R===0&&(R=1),this._graphAbsoluteHeight-(O-this._minValue)/R*this._graphAbsoluteHeight}_invertY(O){let R=this._maxValue-this._minValue;return R===0&&(R=1),(this._graphAbsoluteHeight-O)/this._graphAbsoluteHeight*R+this._minValue}_buildFrameIntervalAxis(){if(this.props.context.activeAnimations.length===0)return null;const R=this.props.context.referenceMaxFrame;let I=this.props.context.activeAnimations[0].framePerSecond;const N=R/this._graphAbsoluteWidth,w=[];I===0&&(I=1);const k=-(this._offsetX*N/I|0)*I,Y=k+(this._viewWidth-40)*this._viewScale*N;for(let V=k-I;V<=Y+I;V+=I)w.push(V);return w.map(V=>{const ee=V/N;return(0,h.jsx)("g",{children:(0,h.jsx)("line",{x1:ee,y1:0,x2:ee,y2:this._viewHeight*this._viewScale,style:{stroke:"#666666",strokeWidth:1}},"line"+V)},"axis"+V)})}_buildYAxis(){if(this.props.context.activeAnimations.length===0)return null;const O=10,R=this._maxValue!==this._minValue?this._maxValue-this._minValue:1;let I=R/O*this._viewScale;const N=R/this._graphAbsoluteHeight,w=[],D=0,k=I;let Y=2;for(;D.toFixed(Y)===k.toFixed(Y);)Y++;const V=Math.pow(10,Y);I=Math.round(I*V),I%2!==0&&(I-=1),I/=V;const ee=(this._viewHeight*this._viewScale-this._graphAbsoluteHeight-this._offsetY)*N,K=Math.ceil((this._minValue-(ee/I|0)*I)/I)*I,ie=Math.round((K+this._viewHeight*this._viewScale*N)/I)*I;for(let ne=K-I;ne<=ie+I;ne+=I)w.push(ne);return w.map(ne=>{const te=this._graphAbsoluteHeight-(ne-this._minValue)/N;let W=ne.toFixed(Y);W=parseFloat(W).toFixed(Y);const re=W===0 .toFixed(Y);return(0,h.jsxs)("g",{children:[(0,h.jsx)("line",{x1:this._graphOffsetX*this._viewScale,y1:te,x2:this._viewWidth*this._viewScale,y2:te,style:{stroke:re?"#666666":"#333333",strokeWidth:re?1:.5}},"line"+ne),(0,h.jsx)("text",{x:0,y:te,dx:`${15*this._viewScale}px`,textAnchor:"middle",dy:`${3*this._viewScale}px`,style:{fontFamily:"acumin-pro-condensed",fontSize:`${10*this._viewScale}px`,fill:"#888888",textAlign:"center"},children:W},"label"+ne)]},"axis"+ne)})}_frameFromActiveKeys(){if(this.props.context.activeAnimations.length===0)return;this._offsetX=20,this._offsetY=20;let O=Number.MAX_VALUE,R=-Number.MAX_VALUE,I=Number.MAX_VALUE,N=-Number.MAX_VALUE,w=!1;for(const ee of this.props.context.activeAnimations){let K;const ie=this.props.context.getActiveChannel(ee);if(ie){const W=this._curves.filter(Q=>Q.color===ie)[0];W&&(K=W.property)}let ne=ee.getKeys();if(this.props.context.activeKeyPoints&&this.props.context.activeKeyPoints.length>0){const W=[];for(let Q=0;Q<this.props.context.activeKeyPoints.length;Q++){const re=this.props.context.activeKeyPoints[Q];re.props.curve.animation===ee&&(W.push(ne[re.props.keyId]),Q===0&&re.props.keyId>=1&&W.unshift(ne[re.props.keyId-1]),Q===this.props.context.activeKeyPoints.length-1&&re.props.keyId<ne.length-1&&W.push(ne[re.props.keyId+1]))}ne=W}if(ne.length===0)continue;const te=this._extractValuesFromKeys(ne,ee.dataType,void 0,K);O=Math.min(O,te.min),R=Math.max(R,te.max),I=Math.min(I,ne[0].frame),N=Math.max(N,ne[ne.length-1].frame),w=!0}if(!w)return;this._minFrame=I,this._maxFrame=N,this._minValue=O,this._maxValue=R,this.props.context.referenceMinFrame=this._minFrame,this.props.context.referenceMaxFrame=this._maxFrame;const D=Math.abs(this._convertX(this._maxFrame)-this._convertX(this._minFrame))+this._offsetX*2,k=this._minValue!==this._maxValue?Math.abs(this._convertY(this._minValue)-this._convertY(this._maxValue))+this._offsetY*2:1,Y=D/this._viewCurveWidth,V=k/this._viewHeight;this._viewScale=Y*this._viewHeight<k?V:Y,this.props.context.onGraphMoved.notifyObservers(this._offsetX),this.props.context.onGraphScaled.notifyObservers(this._viewScale)}_dropKeyFrames(O){return O.keys.map((R,I)=>{const N=this._convertX(R.frame),w=this._convertY(R.value);return(0,h.jsx)(E.KeyPointComponent,{x:N,y:w,context:this.props.context,scale:this._viewScale,getPreviousX:()=>I>0?this._convertX(O.keys[I-1].frame):null,getNextX:()=>I<O.keys.length-1?this._convertX(O.keys[I+1].frame):null,channel:O.color,keyId:I,curve:O,invertX:D=>this._invertX(D),invertY:D=>this._invertY(D),convertX:D=>this._convertX(D),convertY:D=>this._convertY(D),onFrameValueChanged:D=>{O.updateKeyFrame(I,D),this.props.context.refreshTarget()},onKeyValueChanged:D=>{O.updateKeyValue(I,D),this.props.context.refreshTarget()}},"curve-"+I)})}_onPointerDown(O){if(O.nativeEvent.target.id!=="svg-graph-curves")return;O.preventDefault(),this._pointerIsDown=!0,O.currentTarget.setPointerCapture(O.pointerId),this._sourcePointerX=O.nativeEvent.offsetX,this._sourcePointerY=O.nativeEvent.offsetY;const R=O.nativeEvent.which==2||O.button==4;this._inSelectionMode=!R&&!O.altKey,this._inSelectionMode&&(this._selectionStartX=this._sourcePointerX+40,this._selectionStartY=this._sourcePointerY)}_onPointerMove(O){if(this._pointerIsDown){if(this._inSelectionMode){const R=this._selectionRectangle.current.style;R.visibility="visible";const I=O.nativeEvent.offsetX,N=O.nativeEvent.offsetY;I>this._selectionStartX?(R.left=`${this._selectionStartX}px`,R.width=`${I-this._selectionStartX}px`):(R.left=`${I}px`,R.width=`${this._selectionStartX-I}px`),N>this._selectionStartY?(R.top=`${this._selectionStartY}px`,R.height=`${N-this._selectionStartY}px`):(R.top=`${N}px`,R.height=`${this._selectionStartY-N}px`),(I!==this._selectionStartX||N!==this._selectionStartY)&&(this._selectionMade=!0),this.props.context.onSelectionRectangleMoved.notifyObservers(this._selectionRectangle.current.getBoundingClientRect());return}this._offsetX+=(O.nativeEvent.offsetX-this._sourcePointerX)*this._viewScale,this._offsetY+=(O.nativeEvent.offsetY-this._sourcePointerY)*this._viewScale,this._sourcePointerX=O.nativeEvent.offsetX,this._sourcePointerY=O.nativeEvent.offsetY,this.props.context.onGraphMoved.notifyObservers(this._offsetX),this.forceUpdate()}}_onPointerUp(O){this._pointerIsDown=!1,O.currentTarget.releasePointerCapture(O.pointerId),this._selectionRectangle.current.style.visibility="hidden",(!this._inSelectionMode||!this._selectionMade)&&this.props.context.clearSelection(),this._selectionMade=!1}_onWheel(O){const R=O.deltaY<0?-.05:.05,I=this._viewScale;this._viewScale=Math.min(Math.max(this._minScale,this._viewScale+R*this._viewScale),this._maxScale);const N=O.nativeEvent.offsetX,w=O.nativeEvent.offsetY,D=N*I-N*this._viewScale,k=w*I-w*this._viewScale;this._offsetX-=D,this._offsetY-=k,this.forceUpdate(),O.stopPropagation(),this.props.context.onGraphMoved.notifyObservers(this._offsetX),this.props.context.onGraphScaled.notifyObservers(this._viewScale)}render(){const O=this._viewScale,R=`${-this._offsetX} ${-this._offsetY} ${Math.round(O*this._viewCurveWidth)} ${Math.round(O*this._viewHeight)}`,I=`0 ${-this._offsetY} ${Math.round(O*this._viewWidth)} ${Math.round(O*this._viewHeight)}`,N=`${-this._offsetX} 0 ${Math.round((this._viewWidth-40)*this._viewScale)}  ${Math.round(O*this._viewHeight)}`;let w=0,D=0;if(this.props.context.activeAnimations.length!==0){const k=this.props.context.referenceMinFrame,Y=this.props.context.referenceMaxFrame;w=((this.props.context.fromKey-k)/(Y-k)*this._graphAbsoluteWidth+this._offsetX)/this._viewScale,D=((this.props.context.toKey-k)/(Y-k)*this._graphAbsoluteWidth+this._offsetX)/this._viewScale}return(0,h.jsxs)("div",{id:"graph",onWheel:k=>this._onWheel(k),onPointerDown:k=>this._onPointerDown(k),onPointerMove:k=>this._onPointerMove(k),onPointerUp:k=>this._onPointerUp(k),children:[this.props.context.activeAnimations.length!==0&&(0,h.jsx)("div",{id:"dark-rectangle",style:{left:w+"px",width:D-w+"px"}}),(0,h.jsx)("div",{id:"block-rectangle"}),(0,h.jsx)("svg",{id:"svg-graph-grid",viewBox:I,ref:this._svgHost,children:this._buildYAxis()}),(0,h.jsx)("svg",{id:"svg-graph-horizontal",viewBox:N,children:this._buildFrameIntervalAxis()}),(0,h.jsxs)("svg",{ref:this._svgHost2,id:"svg-graph-curves",tabIndex:0,viewBox:R,children:[this._curves.map((k,Y)=>(0,h.jsx)(b.CurveComponent,{context:this.props.context,curve:k,convertX:V=>this._convertX(V),convertY:V=>this._convertY(V)},Y)),this._curves.map(k=>this._dropKeyFrames(k))]}),(0,h.jsx)("div",{ref:this._selectionRectangle,id:"selection-rectangle"})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/keyPoint.js":(m,_,d)=>{d.r(_),d.d(_,{KeyPointComponent:()=>O,SelectionState:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("core/Misc/observable"),A=d("../../../../node_modules/react/index.js"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/keyInactiveIcon.svg"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/keySelectedIcon.svg"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/keyActiveIcon.svg"),M;(function(R){R[R.None=0]="None",R[R.Selected=1]="Selected",R[R.Siblings=2]="Siblings"})(M||(M={}));var T;(function(R){R[R.None=0]="None",R[R.Key=1]="Key",R[R.TangentLeft=2]="TangentLeft",R[R.TangentRight=3]="TangentRight"})(T||(T={}));class O extends A.Component{constructor(I){super(I),this._controlMode=T.None,this._lockX=!1,this._lockY=!1,this._accumulatedX=0,this._accumulatedY=0,this.state={selectedState:M.None,x:this.props.x,y:this.props.y,tangentSelectedIndex:-1},this._svgHost=A.createRef(),this._keyPointSVG=A.createRef(),this._onSelectAllKeysObserver=this.props.context.onSelectAllKeys.add(()=>{var w,D;((w=this.props.context.activeKeyPoints)==null?void 0:w.indexOf(this))===-1&&((D=this.props.context.activeKeyPoints)==null||D.push(this))}),this._onUnifyTangentRequiredObserver=this.props.context.onUnifyTangentRequired.add(()=>{var w;((w=this.props.context.activeKeyPoints)==null?void 0:w.indexOf(this))!==-1&&this._unifyTangent()}),this._onBreakTangentRequiredObserver=this.props.context.onBreakTangentRequired.add(()=>{var w;((w=this.props.context.activeKeyPoints)==null?void 0:w.indexOf(this))!==-1&&this._breakTangent()}),this._onFlattenTangentRequiredObserver=this.props.context.onFlattenTangentRequired.add(()=>{var w;((w=this.props.context.activeKeyPoints)==null?void 0:w.indexOf(this))!==-1&&this._flattenTangent()}),this._onLinearTangentRequiredObserver=this.props.context.onLinearTangentRequired.add(()=>{var w;((w=this.props.context.activeKeyPoints)==null?void 0:w.indexOf(this))!==-1&&this._linearTangent()}),this._onStepTangentRequiredObserver=this.props.context.onStepTangentRequired.add(()=>{var w;((w=this.props.context.activeKeyPoints)==null?void 0:w.indexOf(this))!==-1&&this._stepTangent()}),this._onSelectionRectangleMovedObserver=this.props.context.onSelectionRectangleMoved.add(N=>{if(!this._keyPointSVG.current||this.props.curve.animation.dataType===x.Animation.ANIMATIONTYPE_QUATERNION)return;const k=this._keyPointSVG.current.getBoundingClientRect(),Y=!(N.right<k.left||N.left>k.right||N.bottom<k.top||N.top>k.bottom);this.props.context.activeKeyPoints||(this.props.context.activeKeyPoints=[]);const V=this.props.context.activeKeyPoints.indexOf(this);Y?V===-1&&(this.props.context.activeKeyPoints.push(this),this.props.context.onActiveKeyPointChanged.notifyObservers()):V>-1&&(this.props.context.activeKeyPoints.splice(V,1),this.props.context.onActiveKeyPointChanged.notifyObservers())}),this._onMainKeyPointSetObserver=this.props.context.onMainKeyPointSet.add(()=>{var N,w;!this.props.context.mainKeyPoint||this.props.context.mainKeyPoint===this||(this._offsetXToMain=this.state.x-((N=this.props.context.mainKeyPoint)==null?void 0:N.state.x),this._offsetYToMain=this.state.y-((w=this.props.context.mainKeyPoint)==null?void 0:w.state.y))}),this._onMainKeyPointMovedObserver=this.props.context.onMainKeyPointMoved.add(()=>{const N=this.props.context.mainKeyPoint;if(!(N===this||!N)){if(this.state.selectedState!==M.None&&this.props.keyId!==0){const w=N.state.x+this._offsetXToMain;this.setState({x:w}),this.props.onFrameValueChanged(this.props.invertX(w))}if(this.state.selectedState===M.Selected){const w=N.state.y+this._offsetYToMain;this.setState({y:w}),this.props.onKeyValueChanged(this.props.invertY(w))}}}),this._onActiveKeyPointChangedObserver=this.props.context.onActiveKeyPointChanged.add(()=>{var w;const N=((w=this.props.context.activeKeyPoints)==null?void 0:w.indexOf(this))!==-1;if(!N&&this.props.context.activeKeyPoints){const D=this.props.curve;let k=M.None;for(const Y of this.props.context.activeKeyPoints)if(Y.props.keyId===this.props.keyId&&D!==Y.props.curve&&D.animation===Y.props.curve.animation){k=M.Siblings;break}this.setState({selectedState:k,tangentSelectedIndex:-1})}else this.setState({selectedState:M.Selected,tangentSelectedIndex:-1});N&&(this.props.context.onFrameSet.notifyObservers(this.props.invertX(this.state.x)),this.props.context.onValueSet.notifyObservers(this.props.invertY(this.state.y)))}),this._onActiveKeyFrameChangedObserver=this.props.context.onActiveKeyFrameChanged.add(N=>{this.state.selectedState!==M.Siblings||this.props.context.mainKeyPoint||(this.setState({x:N}),this.props.onFrameValueChanged(this.props.invertX(N)))}),this._onFrameManuallyEnteredObserver=this.props.context.onFrameManuallyEntered.add(N=>{if(this.state.selectedState===M.None)return;let w=this.props.convertX(N);const D=this.props.getPreviousX(),k=this.props.getNextX();D!==null&&(w=Math.max(D,w)),k!==null&&(w=Math.min(k,w));const Y=this.props.invertX(w);this.setState({x:w}),this.props.onFrameValueChanged(Y)}),this._onValueManuallyEnteredObserver=this.props.context.onValueManuallyEntered.add(N=>{if(this.state.selectedState!==M.Selected)return;const w=this.props.convertY(N);this.setState({y:w}),this.props.onKeyValueChanged(N)})}componentWillUnmount(){this._onSelectAllKeysObserver&&this.props.context.onSelectAllKeys.remove(this._onSelectAllKeysObserver),this._onUnifyTangentRequiredObserver&&this.props.context.onUnifyTangentRequired.remove(this._onUnifyTangentRequiredObserver),this._onBreakTangentRequiredObserver&&this.props.context.onBreakTangentRequired.remove(this._onBreakTangentRequiredObserver),this._onFlattenTangentRequiredObserver&&this.props.context.onFlattenTangentRequired.remove(this._onFlattenTangentRequiredObserver),this._onLinearTangentRequiredObserver&&this.props.context.onLinearTangentRequired.remove(this._onLinearTangentRequiredObserver),this._onStepTangentRequiredObserver&&this.props.context.onStepTangentRequired.remove(this._onStepTangentRequiredObserver),this._onSelectionRectangleMovedObserver&&this.props.context.onSelectionRectangleMoved.remove(this._onSelectionRectangleMovedObserver),this._onMainKeyPointSetObserver&&this.props.context.onMainKeyPointSet.remove(this._onMainKeyPointSetObserver),this._onMainKeyPointMovedObserver&&this.props.context.onMainKeyPointMoved.remove(this._onMainKeyPointMovedObserver),this._onActiveKeyPointChangedObserver&&this.props.context.onActiveKeyPointChanged.remove(this._onActiveKeyPointChangedObserver),this._onActiveKeyFrameChangedObserver&&this.props.context.onActiveKeyFrameChanged.remove(this._onActiveKeyFrameChangedObserver),this._onFrameManuallyEnteredObserver&&this.props.context.onFrameManuallyEntered.remove(this._onFrameManuallyEnteredObserver),this._onValueManuallyEnteredObserver&&this.props.context.onValueManuallyEntered.remove(this._onValueManuallyEnteredObserver)}shouldComponentUpdate(I,N){return I!==this.props&&(N.x=I.x,N.y=I.y),!0}_breakTangent(){this.props.context.onInterpolationModeSet.notifyObservers({keyId:this.props.keyId,value:0}),this.props.curve.updateLockedTangentMode(this.props.keyId,!1),this.forceUpdate()}_unifyTangent(){this.props.context.onInterpolationModeSet.notifyObservers({keyId:this.props.keyId,value:0}),this.props.curve.updateLockedTangentMode(this.props.keyId,!0),this.forceUpdate()}_flattenTangent(){this.props.context.onInterpolationModeSet.notifyObservers({keyId:this.props.keyId,value:0}),(this.state.tangentSelectedIndex===-1||this.state.tangentSelectedIndex===0)&&this.props.keyId!==0&&this.props.curve.updateInTangentFromControlPoint(this.props.keyId,0),(this.state.tangentSelectedIndex===-1||this.state.tangentSelectedIndex===1)&&this.props.keyId!==this.props.curve.keys.length-1&&this.props.curve.updateOutTangentFromControlPoint(this.props.keyId,0),this.forceUpdate()}_linearTangent(){this.props.context.onInterpolationModeSet.notifyObservers({keyId:this.props.keyId,value:0}),(this.state.tangentSelectedIndex===-1||this.state.tangentSelectedIndex===0)&&this.props.keyId!==0&&this.props.curve.storeDefaultInTangent(this.props.keyId),(this.state.tangentSelectedIndex===-1||this.state.tangentSelectedIndex===1)&&this.props.keyId!==this.props.curve.keys.length-1&&this.props.curve.storeDefaultOutTangent(this.props.keyId),this.props.curve.onDataUpdatedObservable.notifyObservers(),this.forceUpdate()}_stepTangent(){this.props.context.onInterpolationModeSet.notifyObservers({keyId:this.props.keyId,value:1}),this.forceUpdate()}_select(I){if(!this.props.context.activeKeyPoints)return;const N=this.props.context.activeKeyPoints.indexOf(this);N===-1?(I||(this.props.context.activeKeyPoints=[]),this.props.context.activeKeyPoints.push(this),this.props.context.activeKeyPoints.length>1?(this.props.context.mainKeyPoint=this,this.props.context.onMainKeyPointSet.notifyObservers()):this.props.context.mainKeyPoint=null):I?(this.props.context.activeKeyPoints.splice(N,1),this.props.context.mainKeyPoint=null):this.props.context.activeKeyPoints.length>1?(this.props.context.mainKeyPoint=this,this.props.context.onMainKeyPointSet.notifyObservers()):this.props.context.mainKeyPoint=null}_onPointerDown(I){this.props.context.activeKeyPoints||(this.props.context.activeKeyPoints=[]),I.preventDefault();const N=this.props.curve.animation.dataType===x.Animation.ANIMATIONTYPE_QUATERNION;if(N)return;this._select(I.nativeEvent.ctrlKey),this.props.context.onActiveKeyPointChanged.notifyObservers(),this._pointerIsDown=!0,I.currentTarget.setPointerCapture(I.pointerId),this._sourcePointerX=I.nativeEvent.offsetX,this._sourcePointerY=I.nativeEvent.offsetY;const w=I.nativeEvent.target;w.tagName==="image"&&!N?(this._controlMode=T.Key,this.setState({tangentSelectedIndex:-1})):w.classList.contains("left-tangent")&&!N?(this._controlMode=T.TangentLeft,this.setState({tangentSelectedIndex:0})):w.classList.contains("right-tangent")&&!N&&(this._controlMode=T.TangentRight,this.setState({tangentSelectedIndex:1})),this._lockX=!1,this._lockY=!1,this._accumulatedX=0,this._accumulatedY=0,I.stopPropagation()}_extractSlope(I,N,w){w&&I.x>=0?I.x=-.01:!w&&I.x<=0&&(I.x=.01);const D=I.clone();D.normalize(),D.scaleInPlace(N);const k=this.props.curve.keys,Y=w?k[this.props.keyId].value-this.props.invertY(D.y+this.state.y):this.props.invertY(D.y+this.state.y)-k[this.props.keyId].value,V=w?k[this.props.keyId].frame-this.props.invertX(D.x+this.state.x):this.props.invertX(D.x+this.state.x)-k[this.props.keyId].frame;return Y/V}_processTangentMove(I,N,w,D){return N.x+=(I.nativeEvent.offsetX-this._sourcePointerX)*this.props.scale,N.y+=(I.nativeEvent.offsetY-this._sourcePointerY)*this.props.scale,this._extractSlope(N,w,D)}_onPointerMove(I){if(!(!this._pointerIsDown||this.state.selectedState!==M.Selected||this.props.context.hasActiveQuaternionAnimationKeyPoints())){if(this._controlMode===T.Key){const N=I.nativeEvent.offsetX-this._sourcePointerX,w=I.nativeEvent.offsetY-this._sourcePointerY;I.shiftKey?!this._lockX&&!this._lockY&&(this._accumulatedX+=Math.abs(N),this._accumulatedY+=Math.abs(w),(this._accumulatedX>5||this._accumulatedY>5)&&(this._accumulatedX>this._accumulatedY?this._lockY=!0:this._lockX=!0)):(this._lockX=!1,this._lockY=!1);let D=this.state.x+(this._lockX?0:N*this.props.scale),k=this.state.y+(this._lockY?0:w*this.props.scale);const Y=this.props.getPreviousX(),V=this.props.getNextX(),ee=.01;if(Y!==null&&(D=Math.max(Y+ee,D)),V!==null&&(D=Math.min(V-ee,D)),this.props.keyId!==0&&!(this.props.context.lockLastFrameFrame&&this.props.keyId===this.props.curve.keys.length-1)){const ie=this.props.invertX(D);this.props.onFrameValueChanged(ie),this.props.context.onFrameSet.notifyObservers(ie),D!==this.state.x&&this.props.context.onActiveKeyFrameChanged.notifyObservers(D)}else D=this.state.x;this.props.context.lockLastFrameValue&&this.props.keyId===this.props.curve.keys.length-1&&(k=this.state.y);const K=this.props.invertY(k);this.props.onKeyValueChanged(K),this.props.context.onValueSet.notifyObservers(K),this.setState({x:D,y:k}),this.props.context.activeKeyPoints.length>1&&setTimeout(()=>{this.props.context.mainKeyPoint&&this.props.context.onMainKeyPointMoved.notifyObservers()})}else{const N=this.props.curve.keys,w=N[this.props.keyId].lockedTangent&&this.props.keyId!==0&&this.props.keyId!==N.length-1;let D=0;const k=x.TmpVectors.Vector2[0];if(w){const Y=x.TmpVectors.Vector2[1],V=x.TmpVectors.Vector2[2];x.Vector2.NormalizeToRef(this._inVec,Y),x.Vector2.NormalizeToRef(this._outVec,V),D=Math.acos(Math.min(1,Math.max(-1,x.Vector2.Dot(Y,V)))),this._inVec.rotateToRef(-D,k),x.Vector2.Distance(k,this._outVec)>.01&&(D=-D)}this._controlMode===T.TangentLeft?(this.props.curve.updateInTangentFromControlPoint(this.props.keyId,this._processTangentMove(I,this._inVec,this._storedLengthIn,!0)),w&&(this._inVec.rotateToRef(-D,k),k.x=Math.abs(k.x),this.props.curve.updateOutTangentFromControlPoint(this.props.keyId,this._extractSlope(k,this._storedLengthOut,!1)))):this._controlMode===T.TangentRight&&(this.props.curve.updateOutTangentFromControlPoint(this.props.keyId,this._processTangentMove(I,this._outVec,this._storedLengthOut,!1)),w&&(this._outVec.rotateToRef(D,k),k.x=-Math.abs(k.x),this.props.curve.updateInTangentFromControlPoint(this.props.keyId,this._extractSlope(k,this._storedLengthIn,!0)))),this.props.context.refreshTarget(),this.forceUpdate()}this.props.context.onActiveKeyDataChanged.notifyObservers(this.props.keyId),this._sourcePointerX=I.nativeEvent.offsetX,this._sourcePointerY=I.nativeEvent.offsetY,I.stopPropagation()}}_onPointerUp(I){this._pointerIsDown=!1,I.currentTarget.releasePointerCapture(I.pointerId),I.stopPropagation(),this._controlMode=T.None}render(){var W,Q;if(!this.props.context.isChannelEnabled(this.props.curve.animation,this.props.curve.color))return null;const I=this.props.curve.animation.dataType,N=I===x.Animation.ANIMATIONTYPE_COLOR3||I===x.Animation.ANIMATIONTYPE_COLOR4,w=I===x.Animation.ANIMATIONTYPE_QUATERNION,D=this.state.selectedState===M.Selected?E:this.state.selectedState===M.Siblings?b:S,k=this.props.curve.keys,Y=k[this.props.keyId].lockedTangent??!0,V=((W=k[this.props.keyId-1])==null?void 0:W.interpolation)??!1,ee=((Q=k[this.props.keyId])==null?void 0:Q.interpolation)??!1,K=this.props.curve.hasDefinedInTangent(this.props.keyId),ie=this.props.curve.hasDefinedOutTangent(this.props.keyId),ne=this.props.invertX(this.state.x),te=this.props.invertY(this.state.y);if(K){const re=te-this.props.curve.getInControlPoint(this.props.keyId);this._inVec=new x.Vector2(this.props.convertX(ne-1)-this.state.x,this.props.convertY(re)-this.state.y)}else this._inVec=new x.Vector2;if(ie){const re=te+this.props.curve.getOutControlPoint(this.props.keyId);this._outVec=new x.Vector2(this.props.convertX(ne+1)-this.state.x,this.props.convertY(re)-this.state.y)}else this._outVec=new x.Vector2;return this._storedLengthIn=this._inVec.length(),this._storedLengthOut=this._outVec.length(),this._inVec.normalize(),this._inVec.scaleInPlace(100*this.props.scale),this._outVec.normalize(),this._outVec.scaleInPlace(100*this.props.scale),(0,h.jsxs)("svg",{ref:this._svgHost,onPointerDown:re=>this._onPointerDown(re),onPointerMove:re=>this._onPointerMove(re),onPointerUp:re=>this._onPointerUp(re),x:this.state.x,y:this.state.y,style:{cursor:w?"auto":"pointer",overflow:"auto",opacity:w?"25%":"100%"},children:[(0,h.jsx)("image",{x:`-${8*this.props.scale}`,y:`-${8*this.props.scale}`,width:`${16*this.props.scale}`,height:`${16*this.props.scale}`,ref:this._keyPointSVG,href:D}),this.state.selectedState===M.Selected&&(0,h.jsxs)("g",{children:[this.props.keyId!==0&&!V&&!N&&!w&&K&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("line",{x1:0,y1:0,x2:`${this._inVec.x}px`,y2:`${this._inVec.y}px`,style:{stroke:this.state.tangentSelectedIndex===0||this.state.tangentSelectedIndex===-1?"#F9BF00":"#AAAAAA",strokeWidth:`${1*this.props.scale}`,strokeDasharray:Y?"":"2, 2"}}),(0,h.jsx)("circle",{className:"left-tangent",cx:`${this._inVec.x}px`,cy:`${this._inVec.y}px`,r:`${4*this.props.scale}`,style:{fill:this.state.tangentSelectedIndex===0||this.state.tangentSelectedIndex===-1?"#F9BF00":"#AAAAAA"}})]}),this.props.keyId!==k.length-1&&!ee&&!N&&!w&&ie&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("line",{x1:0,y1:0,x2:`${this._outVec.x}px`,y2:`${this._outVec.y}px`,style:{stroke:this.state.tangentSelectedIndex===1||this.state.tangentSelectedIndex===-1?"#F9BF00":"#AAAAAA",strokeWidth:`${1*this.props.scale}`,strokeDasharray:Y?"":"2, 2"}}),(0,h.jsx)("circle",{className:"right-tangent",cx:`${this._outVec.x}px`,cy:`${this._outVec.y}px`,r:`${4*this.props.scale}`,style:{fill:this.state.tangentSelectedIndex===1||this.state.tangentSelectedIndex===-1?"#F9BF00":"#AAAAAA"}})]})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/playHeadComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PlayHeadComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E),this._graphAbsoluteWidth=788,this._viewScale=1,this._offsetX=0,this._offsetRange=10,this._viewWidth=748,this._rangeWidthToPlayheadWidth=40,this.state={},this._playHead=x.createRef(),this._playHeadCircle=x.createRef(),this._onActiveAnimationChangedObserver=this.props.context.onActiveAnimationChanged.add(()=>{this.forceUpdate()}),this._onRangeFrameBarResizedObserver=this.props.context.onRangeFrameBarResized.add(b=>{this._viewWidth=b-this._rangeWidthToPlayheadWidth}),this._onBeforeRenderObserver=this.props.context.scene.onBeforeRenderObservable.add(()=>{var T;if(this.props.context.activeAnimations.length===0)return;const b=this.props.context.activeAnimations[0];if(!b)return;const M=b.runtimeAnimations[0];M?this._moveHead(M.currentFrame):(T=this._playHeadCircle.current)!=null&&T.innerHTML||this._moveHead(0)}),this._onMoveToFrameRequiredObserver=this.props.context.onMoveToFrameRequired.add(b=>{this.props.context.moveToFrame(b),this._moveHead(b)}),this._onGraphMovedObserver=this.props.context.onGraphMoved.add(b=>{this._offsetX=b,this.forceUpdate(),this._moveHead(this.props.context.activeFrame)}),this._onGraphScaledObserver=this.props.context.onGraphScaled.add(b=>{this._viewScale=1/b,this.forceUpdate(),this._moveHead(this.props.context.activeFrame)})}_moveHead(E){!this._playHead.current||!this._playHeadCircle.current||E===void 0||(this._playHead.current.style.left=this._frameToPixel(E)+"px",this._playHeadCircle.current.innerHTML=E.toFixed(0),this.props.context.activeFrame=E,this.props.context.onPlayheadMoved.notifyObservers(E))}_frameToPixel(E){const b=this.props.context.referenceMinFrame,M=this.props.context.referenceMaxFrame;return((E-b)/(M-b)*this._graphAbsoluteWidth+this._offsetX)*this._viewScale}_pixelToFrame(E,b){const{minFrame:M,maxFrame:T,width:O,offset:R,scale:I}=b,w=this.props.context.activeAnimations[0].getKeys();return Math.max((E/I-R)/O*(T-M)+M,w[0].frame)}componentWillUnmount(){this._onBeforeRenderObserver&&(this.props.context.scene.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=null),this._onActiveAnimationChangedObserver&&this.props.context.onActiveAnimationChanged.remove(this._onActiveAnimationChangedObserver),this._onRangeFrameBarResizedObserver&&this.props.context.onRangeFrameBarResized.remove(this._onRangeFrameBarResizedObserver),this._onMoveToFrameRequiredObserver&&this.props.context.onMoveToFrameRequired.remove(this._onMoveToFrameRequiredObserver),this._onGraphMovedObserver&&this.props.context.onGraphMoved.remove(this._onGraphMovedObserver),this._onGraphScaledObserver&&this.props.context.onGraphScaled.remove(this._onGraphScaledObserver)}_getPixelValues(E){let b,M,T,O,R;return E?(b=this.props.context.fromKey,M=this.props.context.toKey,T=this._viewWidth,O=this._offsetRange,R=1):(b=this.props.context.referenceMinFrame,M=this.props.context.referenceMaxFrame,T=this._graphAbsoluteWidth,O=this._offsetX,R=this._viewScale),{minFrame:b,maxFrame:M,width:T,offset:O,scale:R}}_onPointerDown(E,b){E.preventDefault(),this._pointerIsDown=!0,E.currentTarget.setPointerCapture(E.pointerId);const M=this._getPixelValues(b),T=this._pixelToFrame(E.nativeEvent.offsetX,M);this.props.context.moveToFrame(T),this._moveHead(T)}_onPointerMove(E,b){if(!this._pointerIsDown)return;const M=this._getPixelValues(b),T=this._pixelToFrame(E.nativeEvent.offsetX,M);this.props.context.moveToFrame(T),this._moveHead(T)}_onPointerUp(E){this._pointerIsDown=!1,E.currentTarget.releasePointerCapture(E.pointerId)}render(){return this.props.context.activeAnimations.length===0?null:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)("div",{id:"play-head",ref:this._playHead,children:[(0,h.jsx)("div",{id:"play-head-bar"}),(0,h.jsx)("div",{id:"play-head-circle",ref:this._playHeadCircle})]}),(0,h.jsx)("div",{id:"play-head-control",onPointerDown:E=>this._onPointerDown(E,!1),onPointerMove:E=>this._onPointerMove(E,!1),onPointerUp:E=>this._onPointerUp(E)}),(0,h.jsx)("div",{id:"play-head-control-2",onPointerDown:E=>this._onPointerDown(E,!0),onPointerMove:E=>this._onPointerMove(E,!0),onPointerUp:E=>this._onPointerUp(E)})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/rangeFrameBarComponent.js":(m,_,d)=>{d.r(_),d.d(_,{RangeFrameBarComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");const A=25;class S extends x.Component{constructor(b){super(b),this._viewWidth=748,this._offsetX=10,this._isMounted=!1,this.state={},this._svgHost=x.createRef(),this.props.context.onHostWindowResized.add(()=>{this._computeSizes()}),this._onActiveAnimationChangedObserver=this.props.context.onActiveAnimationChanged.add(()=>{this._isMounted&&(this._computeSizes(),this.forceUpdate())}),this._onPlayheadMovedObserver=this.props.context.onPlayheadMoved.add(()=>{this.forceUpdate()}),this.props.context.onFrameSet.add(()=>{this._isMounted&&this.forceUpdate()}),this._onFrameManuallyEnteredObserver=this.props.context.onFrameManuallyEntered.add(()=>{this._isMounted&&this.forceUpdate()}),this.props.context.onRangeUpdated.add(()=>{this._isMounted&&this.forceUpdate()})}componentDidMount(){this._isMounted=!0}componentWillUnmount(){this._onActiveAnimationChangedObserver&&this.props.context.onActiveAnimationChanged.remove(this._onActiveAnimationChangedObserver),this._onPlayheadMovedObserver&&this.props.context.onPlayheadMoved.remove(this._onPlayheadMovedObserver),this._onFrameManuallyEnteredObserver&&this.props.context.onFrameManuallyEntered.remove(this._onFrameManuallyEnteredObserver),this._isMounted=!1}_computeSizes(){this._svgHost.current&&(this._viewWidth=this._svgHost.current.clientWidth,this.props.context.onRangeFrameBarResized.notifyObservers(this._viewWidth),this.forceUpdate())}_dropKeyFrames(b){const M=this.props.context.fromKey,R=(this.props.context.toKey-M)/this._viewWidth;return b.getKeys().map((N,w)=>{const D=(N.frame-M)/R;return(0,h.jsx)("line",{x1:D,y1:"0px",x2:D,y2:"40px",style:{stroke:"#ffc017",strokeWidth:.5}},"frame-line"+N.frame+w)})}_buildActiveFrame(){if(this.props.context.activeFrame===null||this.props.context.activeFrame===void 0)return null;const b=this.props.context.fromKey,O=(this.props.context.toKey-b)/this._viewWidth,R=(this.props.context.activeFrame-b)/O;return(0,h.jsx)("line",{x1:R,y1:"0px",x2:R,y2:"40px",style:{stroke:"#ffffff",strokeWidth:.5}},"line-activeFrame")}_buildFrames(){if(this.props.context.activeAnimations.length===0)return null;const b=this.props.context.fromKey,T=this.props.context.toKey-b,O=T/this._viewWidth,I=Math.max(Math.floor(A*O),1),N=[],w=b,D=w+T;for(let k=w;k<=D;k+=I)N.push(k);return N[N.length-1]<D-I/2&&N.push(D),N.map((k,Y)=>{const V=(k-b)/O;return(0,h.jsxs)("g",{children:[(0,h.jsx)("line",{x1:V,y1:"22px",x2:V,y2:"40px",style:{stroke:"#333333",strokeWidth:.5}},"line"+k+Y),(0,h.jsx)("text",{x:V,y:0,dx:"6px",textAnchor:"middle",dy:"14px",style:{fontFamily:"acumin-pro-condensed",fontSize:"12px",fill:"#555555",textAlign:"center"},children:k.toFixed(0)},"label"+k+Y)]},"axis"+k+Y)})}render(){const b=`${-this._offsetX} 0 ${this._viewWidth+this._offsetX*4} 40`;return(0,h.jsx)("div",{id:"range-frame-bar",children:(0,h.jsxs)("svg",{id:"svg-range-frames",viewBox:b,ref:this._svgHost,children:[this._buildFrames(),this.props.context.activeAnimations.map(M=>this._dropKeyFrames(M)),this._buildActiveFrame()]})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/bottomBar.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>k});var h=d("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),x=d.n(h),A=d("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),S=d.n(A),E=d("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),b=d.n(E),M=d("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),T=d.n(M),O=d("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),R=d.n(O),I=d("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),N=d.n(I),w=d("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/bottomBar.scss"),D={};D.styleTagTransform=N(),D.setAttributes=T(),D.insert=b().bind(null,"head"),D.domAPI=S(),D.insertStyleElement=R(),x()(w.default,D);const k=w.default&&w.default.locals?w.default.locals:void 0},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/canvas.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>k});var h=d("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),x=d.n(h),A=d("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),S=d.n(A),E=d("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),b=d.n(E),M=d("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),T=d.n(M),O=d("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),R=d.n(O),I=d("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),N=d.n(I),w=d("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/canvas.scss"),D={};D.styleTagTransform=N(),D.setAttributes=T(),D.insert=b().bind(null,"head"),D.domAPI=S(),D.insertStyleElement=R(),x()(w.default,D);const k=w.default&&w.default.locals?w.default.locals:void 0},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/curveEditor.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>k});var h=d("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),x=d.n(h),A=d("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),S=d.n(A),E=d("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),b=d.n(E),M=d("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),T=d.n(M),O=d("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),R=d.n(O),I=d("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),N=d.n(I),w=d("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/curveEditor.scss"),D={};D.styleTagTransform=N(),D.setAttributes=T(),D.insert=b().bind(null,"head"),D.domAPI=S(),D.insertStyleElement=R(),x()(w.default,D);const k=w.default&&w.default.locals?w.default.locals:void 0},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/sideBar.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>k});var h=d("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),x=d.n(h),A=d("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),S=d.n(A),E=d("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),b=d.n(E),M=d("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),T=d.n(M),O=d("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),R=d.n(O),I=d("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),N=d.n(I),w=d("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/sideBar.scss"),D={};D.styleTagTransform=N(),D.setAttributes=T(),D.insert=b().bind(null,"head"),D.domAPI=S(),D.insertStyleElement=R(),x()(w.default,D);const k=w.default&&w.default.locals?w.default.locals:void 0},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/topBar.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>k});var h=d("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),x=d.n(h),A=d("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),S=d.n(A),E=d("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),b=d.n(E),M=d("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),T=d.n(M),O=d("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),R=d.n(O),I=d("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),N=d.n(I),w=d("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/topBar.scss"),D={};D.styleTagTransform=N(),D.setAttributes=T(),D.insert=b().bind(null,"head"),D.domAPI=S(),D.insertStyleElement=R(),x()(w.default,D);const k=w.default&&w.default.locals?w.default.locals:void 0},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/addAnimationComponent.js":(m,_,d)=>{d.r(_),d.d(_,{AddAnimationComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable");class S extends x.Component{constructor(b){super(b),this.state={customPropertyMode:!1},this._root=x.createRef(),this._displayName=x.createRef(),this._property=x.createRef(),this._typeElement=x.createRef(),this._loopModeElement=x.createRef(),this._propertylement=x.createRef()}createNew(){const b=this.props.context,M=this._displayName.current.ownerDocument,T=this._displayName.current.value,O=this._property.current?this._property.current.value:this._propertylement.current.value,R=this._typeElement.current?this._typeElement.current.value:this.getInferredType(),I=this._loopModeElement.current.value;if(!T){M.defaultView.alert("Please define a display name");return}if(!O){M.defaultView.alert("Please define a property");return}const N=this.props.context.animations&&this.props.context.animations.length?this.props.context.useTargetAnimations?this.props.context.animations[0].animation.framePerSecond:this.props.context.animations[0].framePerSecond:60;let w=this.props.context.referenceMinFrame,D=this.props.context.referenceMaxFrame;if(this.props.context.animations)for(const re of this.props.context.animations){const oe=this.props.context.useTargetAnimations?re.animation:re;w=Math.min(w,oe.getKeys()[0].frame),D=Math.max(D,oe.getKeys()[oe.getKeys().length-1].frame)}let k=0,Y=0,V,ee,K,ie,ne,te;switch(R){case"Float":{k=A.Animation.ANIMATIONTYPE_FLOAT,V=0,ee=1,K=0,ie=0,ne=0,te=0;break}case"Vector2":{k=A.Animation.ANIMATIONTYPE_VECTOR2,V=A.Vector2.Zero(),ee=new A.Vector2(1,1),K=new A.Vector2(0,0),ie=new A.Vector2(0,0),ne=new A.Vector2(0,0),te=new A.Vector2(0,0);break}case"Vector3":{k=A.Animation.ANIMATIONTYPE_VECTOR3,V=A.Vector3.Zero(),ee=new A.Vector3(1,1,1),K=new A.Vector3(0,0,0),ie=new A.Vector3(0,0,0),ne=new A.Vector3(0,0,0),te=new A.Vector3(0,0,0);break}case"Quaternion":{k=A.Animation.ANIMATIONTYPE_QUATERNION,V=A.Quaternion.Zero(),ee=new A.Quaternion(1,1,1,0),K=new A.Quaternion(0,0,0,0),ie=new A.Quaternion(0,0,0,0),ne=new A.Quaternion(0,0,0,0),te=new A.Quaternion(0,0,0,0);break}case"Color3":{k=A.Animation.ANIMATIONTYPE_COLOR3,V=A.Color3.Black(),ee=A.Color3.White(),K=new A.Color3(0,0,0),ie=new A.Color3(0,0,0),ne=new A.Color3(0,0,0),te=new A.Color3(0,0,0);break}case"Color4":{k=A.Animation.ANIMATIONTYPE_COLOR4,V=new A.Color4(0,0,0,0),ee=new A.Color4(1,1,1,1),K=new A.Color4(0,0,0,0),ie=new A.Color4(0,0,0,0),ne=new A.Color4(0,0,0,0),te=new A.Color4(0,0,0,0);break}}switch(I){case"Cycle":{Y=A.Animation.ANIMATIONLOOPMODE_CYCLE;break}case"Relative":{Y=A.Animation.ANIMATIONLOOPMODE_RELATIVE;break}case"Relative from current":{Y=A.Animation.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT;break}case"Constant":{Y=A.Animation.ANIMATIONLOOPMODE_CONSTANT;break}}const W=new A.Animation(T,O,N,k,Y),Q=[];Q.push({frame:w,value:V,inTangent:K,outTangent:ie}),Q.push({frame:D,value:ee,inTangent:ne,outTangent:te}),W.setKeys(Q),b.stop(),(!b.animations||b.animations.length===0)&&(b.animations=[],b.target&&(b.target.animations=b.animations)),b.useTargetAnimations||b.animations.push(W),b.activeAnimations.push(W),b.prepare(),b.onActiveAnimationChanged.notifyObservers({}),b.onAnimationsLoaded.notifyObservers()}getInferredType(b=""){const M=this.props.context.target;this._propertylement.current&&(b=this._propertylement.current.value);const T=M[b];return isNaN(parseFloat(T))?T.getClassName():"Float"}render(){const b=["Float","Vector2","Vector3","Quaternion","Color3","Color4"],M=["Cycle","Relative","Relative from current","Constant"],T=["Custom","List"],O=[];let R="";if(this.props.context.target){let N=this.props.context.target;const w=N;for(;N!==null;){const k=Object.getOwnPropertyDescriptors(N);for(const Y in k){const V=k[Y];Y[0]==="_"||w[Y]===null||w[Y]===void 0||w[Y].r===void 0&&w[Y].x===void 0&&isNaN(parseFloat(w[Y]))||O.indexOf(Y)===-1&&(!V.writable&&!V.set||O.push(Y))}N=Object.getPrototypeOf(N)}O.sort();const D=["scaling","rotation","position"];for(const k of D){const Y=O.indexOf(k);Y!==-1&&(O.splice(Y,1),O.splice(0,0,k))}this._propertylement.current?R=this.getInferredType():R=this.getInferredType(O[0])}const I=this.state.customPropertyMode||O.length===0;return(0,h.jsxs)("div",{id:"add-animation-pane",ref:this._root,children:[(0,h.jsx)("div",{id:"add-animation-display-name-label",children:"Display Name"}),(0,h.jsx)("div",{id:"add-animation-mode-label",children:"Mode"}),(0,h.jsx)("div",{id:"add-animation-property-label",children:"Property"}),(0,h.jsx)("div",{id:"add-animation-type-label",children:"Type"}),(0,h.jsx)("div",{id:"add-animation-loop-mode-label",children:"Loop Mode"}),(0,h.jsx)("input",{type:"text",id:"add-animation-name",ref:this._displayName,className:"input-text",defaultValue:""}),(0,h.jsx)("select",{id:"add-animation-mode",className:"option",value:this.state.customPropertyMode?"Custom":"List",onChange:N=>{this.setState({customPropertyMode:N.currentTarget.value==="Custom"})},children:T.map((N,w)=>(0,h.jsx)("option",{value:N,title:N,children:N},N+w))}),I&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("input",{type:"text",id:"add-animation-property",ref:this._property,className:"input-text",defaultValue:""}),(0,h.jsx)("select",{id:"add-animation-type",className:"option",ref:this._typeElement,children:b.map((N,w)=>(0,h.jsx)("option",{value:N,title:N,children:N},N+w))})]}),!I&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("select",{id:"add-animation-property",className:"option",ref:this._propertylement,onClick:()=>{this.forceUpdate()},children:O.map((N,w)=>(0,h.jsx)("option",{value:N,title:N,children:N},N+w))}),(0,h.jsx)("div",{id:"add-animation-type",children:R})]}),(0,h.jsx)("select",{id:"add-animation-loop-mode",className:"option",ref:this._loopModeElement,children:M.map((N,w)=>(0,h.jsx)("option",{value:N,title:N,children:N},N+w))}),(0,h.jsx)("button",{className:"simple-button",id:"add-animation",type:"button",onClick:()=>this.createNew(),children:"Create"})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/animationEntryComponent.js":(m,_,d)=>{d.r(_),d.d(_,{AnimationEntryComponent:()=>I});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/controls/actionButtonComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/animationSubEntryComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationOptionsIcon.svg"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/closeWindowIcon.svg"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationBulletIcon.svg"),O=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/keySelectedIcon.svg"),R=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/animationTriangleIcon.svg");class I extends x.Component{constructor(w){super(w),this._unmount=!1,this.state={isExpanded:!1,isSelected:!1},this._onActiveAnimationChangedObserver=w.context.onActiveAnimationChanged.add(()=>{this._unmount||(this.props.context.activeAnimations.indexOf(this.props.animation)===-1&&this.setState({isSelected:!1}),this.forceUpdate())}),this._onActiveKeyPointChangedObserver=this.props.context.onActiveKeyPointChanged.add(()=>{this.setState({isSelected:this.props.animation.dataType===A.Animation.ANIMATIONTYPE_FLOAT&&this.props.context.activeAnimations.indexOf(this.props.animation)!==-1&&this.props.context.activeKeyPoints!==null&&this.props.context.activeKeyPoints.length>0&&this.props.context.activeKeyPoints.some(D=>D.props.curve.animation===this.props.animation)})}),this._onSelectToActivatedObserver=this.props.context.onSelectToActivated.add(D=>{const k=this.props.context.getAnimationSortIndex(this.props.animation),Y=this.props.context.activeAnimations.indexOf(this.props.animation);k>D.from&&k<=D.to||k>=D.to&&k<D.from?Y===-1&&this.props.context.activeAnimations.push(this.props.animation):k!==D.from&&Y!==-1&&this.props.context.activeAnimations.splice(Y,1)})}_onGear(){this.props.context.onEditAnimationUIClosed.addOnce(()=>{this._unmount||this.forceUpdate()}),this.props.context.onEditAnimationRequired.notifyObservers(this.props.animation)}_onDelete(){this.props.context.onDeleteAnimation.notifyObservers(this.props.animation)}componentWillUnmount(){this._unmount=!0,this._onActiveAnimationChangedObserver&&this.props.context.onActiveAnimationChanged.remove(this._onActiveAnimationChangedObserver),this._onActiveKeyPointChangedObserver&&this.props.context.onActiveKeyPointChanged.remove(this._onActiveKeyPointChangedObserver),this._onSelectToActivatedObserver&&this.props.context.onSelectToActivated.remove(this._onSelectToActivatedObserver)}_activate(w){if(w.shiftKey){if(this.props.context.activeAnimations.length>0){const D=this.props.context.activeAnimations[0],k={from:this.props.context.getAnimationSortIndex(D),to:this.props.context.getAnimationSortIndex(this.props.animation)};this.props.context.onSelectToActivated.notifyObservers(k),this.props.context.onActiveAnimationChanged.notifyObservers({})}return}if(!w.ctrlKey)this.props.context.activeAnimations=[this.props.animation],this.props.context.resetAllActiveChannels();else{const D=this.props.context.activeAnimations.indexOf(this.props.animation);D!==-1?this.props.context.activeAnimations.splice(D,1):this.props.context.activeAnimations.push(this.props.animation)}this.props.context.disableChannel(this.props.animation),this.props.context.onActiveAnimationChanged.notifyObservers({})}_expandOrCollapse(){this.setState({isExpanded:!this.state.isExpanded})}render(){const w=this.props.context.activeAnimations.indexOf(this.props.animation)!==-1;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)("div",{className:"animation-entry"+(w?" isActive":""),children:[this.state.isSelected&&(0,h.jsx)("div",{className:"animation-active-indicator",children:(0,h.jsx)("img",{src:O})}),this.props.animation.dataType===A.Animation.ANIMATIONTYPE_FLOAT&&(0,h.jsx)("div",{className:"animation-chevron",children:(0,h.jsx)("img",{src:T})}),this.props.animation.dataType!==A.Animation.ANIMATIONTYPE_FLOAT&&(0,h.jsx)("div",{className:"animation-chevron",onClick:()=>this._expandOrCollapse(),children:(0,h.jsx)("img",{className:"animation-chevron-image"+(this.state.isExpanded?"":" collapsed"),src:R})}),(0,h.jsx)("div",{className:"animation-name",onClick:D=>this._activate(D),children:this.props.animation.name}),(0,h.jsx)(S.ActionButtonComponent,{className:"animation-options",context:this.props.context,globalState:this.props.globalState,icon:b,onClick:()=>this._onGear()}),(0,h.jsx)(S.ActionButtonComponent,{className:"animation-delete",context:this.props.context,globalState:this.props.globalState,icon:M,onClick:()=>this._onDelete()})]}),this.state.isExpanded&&this.props.animation.dataType===A.Animation.ANIMATIONTYPE_COLOR3&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(E.AnimationSubEntryComponent,{globalState:this.props.globalState,context:this.props.context,animation:this.props.animation,color:"#DB3E3E",subName:"Red"}),(0,h.jsx)(E.AnimationSubEntryComponent,{globalState:this.props.globalState,context:this.props.context,animation:this.props.animation,color:"#51E22D",subName:"Green"}),(0,h.jsx)(E.AnimationSubEntryComponent,{globalState:this.props.globalState,context:this.props.context,animation:this.props.animation,color:"#00A3FF",subName:"Blue"})]}),this.state.isExpanded&&this.props.animation.dataType===A.Animation.ANIMATIONTYPE_VECTOR3&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(E.AnimationSubEntryComponent,{globalState:this.props.globalState,context:this.props.context,animation:this.props.animation,color:"#DB3E3E",subName:"X"}),(0,h.jsx)(E.AnimationSubEntryComponent,{globalState:this.props.globalState,context:this.props.context,animation:this.props.animation,color:"#51E22D",subName:"Y"}),(0,h.jsx)(E.AnimationSubEntryComponent,{globalState:this.props.globalState,context:this.props.context,animation:this.props.animation,color:"#00A3FF",subName:"Z"})]}),this.state.isExpanded&&this.props.animation.dataType===A.Animation.ANIMATIONTYPE_VECTOR2&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(E.AnimationSubEntryComponent,{globalState:this.props.globalState,context:this.props.context,animation:this.props.animation,color:"#DB3E3E",subName:"X"}),(0,h.jsx)(E.AnimationSubEntryComponent,{globalState:this.props.globalState,context:this.props.context,animation:this.props.animation,color:"#51E22D",subName:"Y"})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/animationListComponent.js":(m,_,d)=>{d.r(_),d.d(_,{AnimationListComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/animationEntryComponent.js");class S extends x.Component{constructor(b){super(b),this.state={isVisible:!0},this._onEditAnimationRequiredObserver=this.props.context.onEditAnimationRequired.add(()=>{this.setState({isVisible:!1})}),this._onEditAnimationUIClosedObserver=this.props.context.onEditAnimationUIClosed.add(()=>{this.setState({isVisible:!0})}),this._onDeleteAnimationObserver=this.props.context.onDeleteAnimation.add(()=>{this.forceUpdate()})}componentWillUnmount(){this._onEditAnimationRequiredObserver&&this.props.context.onEditAnimationRequired.remove(this._onEditAnimationRequiredObserver),this._onEditAnimationUIClosedObserver&&this.props.context.onEditAnimationUIClosed.remove(this._onEditAnimationUIClosedObserver),this._onDeleteAnimationObserver&&this.props.context.onDeleteAnimation.remove(this._onDeleteAnimationObserver)}render(){var b;return this.state.isVisible?(0,h.jsx)("div",{id:"animation-list",children:(b=this.props.context.animations)==null?void 0:b.map((M,T)=>(0,h.jsx)(A.AnimationEntryComponent,{globalState:this.props.globalState,context:this.props.context,animation:this.props.context.useTargetAnimations?M.animation:M},T))}):null}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/animationSubEntryComponent.js":(m,_,d)=>{d.r(_),d.d(_,{AnimationSubEntryComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/graph/keyPoint.js"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/keySelectedIcon.svg");class E extends x.Component{constructor(M){super(M);let T=!1;if(this.props.context.activeAnimations.indexOf(this.props.animation)!==-1&&this.props.context.activeKeyPoints)for(const O of this.props.context.activeKeyPoints)O.state.selectedState===A.SelectionState.Selected&&O.props.channel===this.props.color&&(T=!0);this.state={isSelected:T},this._onActiveAnimationChangedObserver=M.context.onActiveAnimationChanged.add(()=>{this.forceUpdate()}),this._onActiveKeyPointChangedObserver=this.props.context.onActiveKeyPointChanged.add(()=>{let O=!1;if(this.props.context.activeKeyPoints){for(const R of this.props.context.activeKeyPoints)if(R.props.curve.animation===this.props.animation&&R.props.channel===this.props.color&&this.props.context.activeAnimations.indexOf(this.props.animation)!==-1){O=!0;break}}this.setState({isSelected:O})})}componentWillUnmount(){this._onActiveAnimationChangedObserver&&this.props.context.onActiveAnimationChanged.remove(this._onActiveAnimationChangedObserver),this._onActiveKeyPointChangedObserver&&this.props.context.onActiveKeyPointChanged.remove(this._onActiveKeyPointChangedObserver)}_activate(M){const T=this.props.context.activeAnimations.indexOf(this.props.animation);T!==-1&&this.props.context.getActiveChannel(this.props.animation)===this.props.color||(M.ctrlKey?T===-1&&this.props.context.activeAnimations.push(this.props.animation):(this.props.context.activeAnimations=[this.props.animation],this.props.context.resetAllActiveChannels()),this.props.context.enableChannel(this.props.animation,this.props.color),this.props.context.onActiveAnimationChanged.notifyObservers({}))}render(){const M=this.props.context.activeAnimations.indexOf(this.props.animation)!==-1&&this.props.context.isChannelEnabled(this.props.animation,this.props.color);return(0,h.jsx)(h.Fragment,{children:(0,h.jsxs)("div",{className:"animation-entry"+(M?" isActive":""),children:[this.state.isSelected&&(0,h.jsx)("div",{className:"animation-active-indicator",children:(0,h.jsx)("img",{src:S})}),(0,h.jsx)("div",{className:"animation-name",style:{color:this.props.color},onClick:T=>this._activate(T),children:this.props.subName})]})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/editAnimationComponent.js":(m,_,d)=>{d.r(_),d.d(_,{EditAnimationComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable");class S extends x.Component{constructor(b){super(b),this.state={isVisible:!1,animation:null},this._root=x.createRef(),this._displayName=x.createRef(),this._property=x.createRef(),this._loopModeElement=x.createRef(),this._onEditAnimationRequiredObserver=this.props.context.onEditAnimationRequired.add(M=>{this.setState({isVisible:!0,animation:M})})}componentWillUnmount(){this._onEditAnimationRequiredObserver&&this.props.context.onEditAnimationRequired.remove(this._onEditAnimationRequiredObserver)}close(){this.setState({isVisible:!1}),this.props.context.onEditAnimationUIClosed.notifyObservers()}validate(){const b=this.props.context,M=this._displayName.current.ownerDocument,T=this._displayName.current.value,O=this._property.current.value,R=this._loopModeElement.current.value;if(!T){M.defaultView.alert("Please define a display name");return}if(!O){M.defaultView.alert("Please define a property");return}const I=this.state.animation;switch(I.name=T,I.targetProperty!==O&&(I.targetProperty=O,I.targetPropertyPath=O.split("."),b.stop()),R){case"Cycle":{I.loopMode=A.Animation.ANIMATIONLOOPMODE_CYCLE;break}case"Relative":{I.loopMode=A.Animation.ANIMATIONLOOPMODE_RELATIVE;break}case"Relative from current":{I.loopMode=A.Animation.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT;break}case"Constant":{I.loopMode=A.Animation.ANIMATIONLOOPMODE_CONSTANT;break}}this.close()}render(){if(!this.state.isVisible)return null;const b=["Relative","Cycle","Constant","","Yoyo","Relative from current"];return(0,h.jsxs)("div",{id:"edit-animation-pane",ref:this._root,children:[(0,h.jsx)("div",{id:"edit-animation-display-name-label",children:"Display Name"}),(0,h.jsx)("div",{id:"edit-animation-property-label",children:"Property"}),(0,h.jsx)("div",{id:"edit-animation-loop-mode-label",children:"Loop Mode"}),(0,h.jsx)("input",{type:"text",id:"edit-animation-name",ref:this._displayName,className:"input-text",defaultValue:this.state.animation.name||""}),(0,h.jsx)("input",{type:"text",id:"edit-animation-property",ref:this._property,className:"input-text",defaultValue:this.state.animation.targetProperty}),(0,h.jsx)("select",{id:"edit-animation-loop-mode",className:"option",ref:this._loopModeElement,defaultValue:b[this.state.animation.loopMode??1],children:b.filter(M=>M!=="").map((M,T)=>(0,h.jsx)("option",{value:M,title:M,children:M},M+T))}),(0,h.jsxs)("div",{id:"edit-animation",children:[(0,h.jsx)("button",{className:"simple-button",id:"edit-animation-ok",type:"button",onClick:()=>this.validate(),children:"OK"}),(0,h.jsx)("button",{className:"simple-button",id:"edit-animation-cancel",type:"button",onClick:()=>this.close(),children:"Cancel"})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/loadAnimationComponent.js":(m,_,d)=>{d.r(_),d.d(_,{LoadAnimationComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("core/Misc/observable"),A=d("../../../../node_modules/react/index.js");class S extends A.Component{constructor(b){super(b),this.state={},this._root=A.createRef(),this._textInput=A.createRef()}loadFromFile(b){const M=b.target.files;if(!M||!M.length)return;const T=M[0];x.Tools.ReadFile(T,O=>{const R=this.props.context,I=new TextDecoder("utf-8"),N=JSON.parse(I.decode(O)).animations;R.animations=[];const w=R.animations;for(const D of N)w.push(x.Animation.Parse(D));R.stop(),R.target.animations=w,R.activeAnimations=w.length?w:[],R.prepare(),R.onAnimationsLoaded.notifyObservers(),R.onActiveAnimationChanged.notifyObservers({})},void 0,!0),b.target.value=""}loadFromSnippetServer(){const b=this.props.context,M=this._textInput.current.value;x.Animation.ParseFromSnippetAsync(M).then(T=>{b.snippetId=M,T.length!==void 0?b.animations=T:b.animations=[T],b.stop(),b.target.animations=b.animations,b.activeAnimations=b.animations.length?b.animations:[],b.prepare(),b.onAnimationsLoaded.notifyObservers(),b.onActiveAnimationChanged.notifyObservers({})}).catch(T=>{var O;(O=this._root.current)==null||O.ownerDocument.defaultView.alert("Unable to load your animations: "+T)})}render(){return(0,h.jsxs)("div",{id:"load-animation-pane",ref:this._root,children:[(0,h.jsx)("div",{id:"load-animation-snippet-id-label",children:"Snippet Id"}),(0,h.jsx)("div",{id:"load-animation-local-file-label",children:"Local File"}),(0,h.jsx)("input",{type:"text",id:"load-snippet-id",ref:this._textInput}),(0,h.jsx)("button",{className:"simple-button",id:"load-snippet",type:"button",onClick:()=>this.loadFromSnippetServer(),children:"Load"}),(0,h.jsx)("label",{htmlFor:"upload-snippet",id:"file-snippet-label",className:"simple-button",children:"Browse"}),(0,h.jsx)("input",{id:"upload-snippet",type:"file",accept:".json",onChange:b=>this.loadFromFile(b)}),this.props.context.snippetId&&(0,h.jsxs)("div",{id:"load-animation-snippet",children:["Snippet ID: ",this.props.context.snippetId]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/saveAnimationComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SaveAnimationComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/stringTools.js"),S=d("core/Misc/observable");class E extends x.Component{constructor(M){if(super(M),this._selectedAnimations=[],this.state={},this._root=x.createRef(),this.props.context.animations)if(this.props.context.useTargetAnimations)for(const T of this.props.context.animations)this._selectedAnimations.push(T.animation);else this._selectedAnimations=this.props.context.animations.slice(0)}_getJson(){const M={animations:[]};for(const T of this._selectedAnimations)M.animations.push(T.serialize());return JSON.stringify(M)}saveToSnippetServer(){const M=new XMLHttpRequest,T=this._root.current.ownerDocument,O=this._getJson();M.onreadystatechange=()=>{if(M.readyState==4)if(M.status==200){const I=JSON.parse(M.responseText),N=this.props.context.snippetId;this.props.context.snippetId=I.id,I.version&&I.version!="0"&&(this.props.context.snippetId+="#"+I.version),this.forceUpdate();const w=window;w.Playground&&N&&w.Playground.onRequestCodeChangeObservable.notifyObservers({regex:new RegExp(N,"g"),replace:this.props.context.snippetId}),T.defaultView.alert("Animations saved with ID: "+this.props.context.snippetId)}else T.defaultView.alert(`Unable to save your animations. It may be too large (${(R.payload.length/1024).toFixed(2)} KB). Please try reducing the number of animations or the number of keys per animation and try again.`)},M.open("POST",S.Animation.SnippetUrl+(this.props.context.snippetId?"/"+this.props.context.snippetId:""),!0),M.setRequestHeader("Content-Type","application/json");const R={payload:JSON.stringify({animations:O}),name:"",description:"",tags:""};M.send(JSON.stringify(R))}saveToFile(){A.StringTools.DownloadAsFile(this._root.current.ownerDocument,this._getJson(),"animations.json")}render(){var M;return(0,h.jsxs)("div",{id:"save-animation-pane",ref:this._root,children:[(0,h.jsx)("div",{id:"save-animation-list",children:(M=this.props.context.animations)==null?void 0:M.map((T,O)=>{const R=this.props.context.useTargetAnimations?T.animation:T;return(0,h.jsxs)("div",{className:"save-animation-list-entry",children:[(0,h.jsx)("input",{type:"checkbox",value:R.name,defaultChecked:!0,onClick:I=>{if(I.currentTarget.checked)this._selectedAnimations.push(R);else{const N=this._selectedAnimations.indexOf(R);N>-1&&this._selectedAnimations.splice(N,1)}}}),R.name]},O)})}),(0,h.jsxs)("div",{id:"save-animation-buttons",children:[(0,h.jsx)("button",{className:"simple-button",id:"save-snippet",type:"button",onClick:()=>{this.saveToSnippetServer()},children:"Save Snippet"}),(0,h.jsx)("button",{className:"simple-button",id:"save-file",type:"button",onClick:()=>{this.saveToFile()},children:"Save File"})]}),this.props.context.snippetId&&(0,h.jsxs)("div",{id:"save-animation-snippet",children:["Snippet ID: ",this.props.context.snippetId]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/sideBarComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SideBarComponent:()=>k});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/controls/actionButtonComponent.js"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/animationListComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/controls/textInputComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/saveAnimationComponent.js"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/loadAnimationComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/addAnimationComponent.js"),O=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/sideBar/editAnimationComponent.js");d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/sideBar.scss");var R=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/addAnimationIcon.svg"),I=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/loadIcon.svg"),N=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/saveIcon.svg"),w=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/editIcon.svg"),D;(function(Y){Y[Y.Edit=0]="Edit",Y[Y.Add=1]="Add",Y[Y.Load=2]="Load",Y[Y.Save=3]="Save"})(D||(D={}));class k extends x.Component{constructor(V){super(V),this.state={mode:D.Edit},this.props.context.onDeleteAnimation.add(ee=>{const K=this.props.context.activeAnimations.indexOf(ee);K!==-1&&(this.props.context.activeAnimations.splice(K,1),this.props.context.onActiveAnimationChanged.notifyObservers({}));let ie=-1;if(this.props.context.useTargetAnimations){const ne=this.props.context.animations;for(let te=0;te<ne.length;te++)if(ne[te].animation===ee){ie=te;break}}else ie=this.props.context.animations.indexOf(ee);ie>-1&&(this.props.context.animations.splice(ie,1),this.forceUpdate())}),this.props.context.onAnimationsLoaded.add(()=>this.setState({mode:D.Edit}))}_onAddAnimation(){this.state.mode!==D.Add&&this.setState({mode:D.Add})}_onLoadAnimation(){this.state.mode!==D.Load&&this.setState({mode:D.Load})}_onSaveAnimation(){this.state.mode!==D.Save&&this.setState({mode:D.Save})}_onEditAnimation(){this.state.mode!==D.Edit&&this.setState({mode:D.Edit})}render(){let V="60";return this.props.context.animations&&this.props.context.animations.length&&(this.props.context.useTargetAnimations?V=this.props.context.animations[0].animation.framePerSecond.toString():V=this.props.context.animations[0].framePerSecond.toString()),(0,h.jsxs)("div",{id:"sideBar",children:[(0,h.jsxs)("div",{id:"menu-bar",className:this.props.context.useTargetAnimations?"small":"",children:[!this.props.context.useTargetAnimations&&(0,h.jsx)(A.ActionButtonComponent,{tooltip:"Add new animation",isActive:this.state.mode===D.Add,id:"add-animation",globalState:this.props.globalState,context:this.props.context,icon:R,onClick:()=>this._onAddAnimation()}),!this.props.context.useTargetAnimations&&(0,h.jsx)(A.ActionButtonComponent,{tooltip:"Load animations",isActive:this.state.mode===D.Load,id:"load-animation",globalState:this.props.globalState,context:this.props.context,icon:I,onClick:()=>this._onLoadAnimation()}),(0,h.jsx)(A.ActionButtonComponent,{tooltip:"save current animations",isActive:this.state.mode===D.Save,id:"save-animation",globalState:this.props.globalState,context:this.props.context,icon:N,onClick:()=>this._onSaveAnimation()}),(0,h.jsx)(A.ActionButtonComponent,{tooltip:"Edit animations",isActive:this.state.mode===D.Edit,id:"edit-animation",globalState:this.props.globalState,context:this.props.context,icon:w,onClick:()=>this._onEditAnimation()}),(0,h.jsx)(E.TextInputComponent,{value:V,complement:" fps",isNumber:!0,onValueAsNumberChanged:ee=>{var K;(K=this.props.context.animations)==null||K.forEach(ie=>{this.props.context.useTargetAnimations?ie.animation.framePerSecond=ee:ie.framePerSecond=ee})},tooltip:"Framerate",id:"framerate-animation",globalState:this.props.globalState,context:this.props.context})]}),this.state.mode===D.Edit&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(S.AnimationListComponent,{globalState:this.props.globalState,context:this.props.context}),(0,h.jsx)(O.EditAnimationComponent,{globalState:this.props.globalState,context:this.props.context})]}),this.state.mode===D.Save&&(0,h.jsx)(b.SaveAnimationComponent,{globalState:this.props.globalState,context:this.props.context}),this.state.mode===D.Load&&(0,h.jsx)(M.LoadAnimationComponent,{globalState:this.props.globalState,context:this.props.context}),this.state.mode===D.Add&&(0,h.jsx)(T.AddAnimationComponent,{globalState:this.props.globalState,context:this.props.context})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/topBarComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TopBarComponent:()=>w});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/controls/actionButtonComponent.js"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/controls/textInputComponent.js");d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/scss/topBar.scss");var E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/babylonLogo.svg"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/frameIcon.svg"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/newKeyIcon.svg"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/flatTangentIcon.svg"),O=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/linearTangentIcon.svg"),R=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/breakTangentIcon.svg"),I=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/unifyTangentIcon.svg"),N=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/assets/stepTangentIcon.svg");class w extends x.Component{constructor(k){super(k),this.state={keyFrameValue:"",keyValue:"",frameControlEnabled:!1,valueControlEnabled:!1},this._onFrameSetObserver=this.props.context.onFrameSet.add(Y=>{this.setState({keyFrameValue:Y.toFixed(0)})}),this._onValueSetObserver=this.props.context.onValueSet.add(Y=>{this.setState({keyValue:Y.toFixed(2)})}),this._onActiveAnimationChangedObserver=this.props.context.onActiveAnimationChanged.add(()=>{this.setState({keyFrameValue:"",keyValue:""})}),this._onActiveKeyPointChanged=this.props.context.onActiveKeyPointChanged.add(()=>{var ne,te;const Y=((ne=this.props.context.activeKeyPoints)==null?void 0:ne.length)||0,V=new Set((te=this.props.context.activeKeyPoints)==null?void 0:te.map(W=>W.props.curve.animation.uniqueId)).size,ee=Y===1&&V===1||Y>1&&V>1,K=Y>0,ie=this.props.context.hasActiveQuaternionAnimationKeyPoints();this.setState({keyFrameValue:"",keyValue:"",frameControlEnabled:ee&&!ie,valueControlEnabled:K&&!ie})})}componentWillUnmount(){this._onFrameSetObserver&&this.props.context.onFrameSet.remove(this._onFrameSetObserver),this._onValueSetObserver&&this.props.context.onValueSet.remove(this._onValueSetObserver),this._onActiveAnimationChangedObserver&&this.props.context.onActiveAnimationChanged.remove(this._onActiveAnimationChangedObserver),this._onActiveKeyPointChanged&&this.props.context.onActiveKeyPointChanged.remove(this._onActiveKeyPointChanged)}render(){const k=this.props.context.activeAnimations.length>0;return(0,h.jsxs)("div",{id:"top-bar",children:[(0,h.jsx)("img",{id:"top-bar-logo",src:E}),(0,h.jsx)("div",{id:"top-bar-parent-name",children:this.props.context.title}),(0,h.jsx)(S.TextInputComponent,{className:k&&this.state.frameControlEnabled?"":"disabled",isNumber:!0,value:this.state.keyFrameValue,tooltip:"Frame",id:"key-frame",onValueAsNumberChanged:Y=>{Y!==0&&this.props.context.onFrameManuallyEntered.notifyObservers(Y)},globalState:this.props.globalState,context:this.props.context,disabled:parseFloat(this.state.keyFrameValue)===0}),(0,h.jsx)(S.TextInputComponent,{className:k&&this.state.valueControlEnabled?"":"disabled",isNumber:!0,value:this.state.keyValue,tooltip:"Value",id:"key-value",onValueAsNumberChanged:Y=>this.props.context.onValueManuallyEntered.notifyObservers(Y),globalState:this.props.globalState,context:this.props.context}),(0,h.jsx)(A.ActionButtonComponent,{className:k?"":"disabled",tooltip:"New key",id:"new-key",globalState:this.props.globalState,context:this.props.context,icon:M,onClick:()=>this.props.context.onCreateOrUpdateKeyPointRequired.notifyObservers()}),(0,h.jsx)(A.ActionButtonComponent,{tooltip:"Frame canvas",id:"frame-canvas",globalState:this.props.globalState,context:this.props.context,icon:b,onClick:()=>this.props.context.onFrameRequired.notifyObservers()}),(0,h.jsx)(A.ActionButtonComponent,{className:this.props.context.activeKeyPoints&&this.props.context.activeKeyPoints.length>0?"":"disabled",tooltip:"Flatten tangent",id:"flatten-tangent",globalState:this.props.globalState,context:this.props.context,icon:T,onClick:()=>this.props.context.onFlattenTangentRequired.notifyObservers()}),(0,h.jsx)(A.ActionButtonComponent,{className:this.props.context.activeKeyPoints&&this.props.context.activeKeyPoints.length>0?"":"disabled",tooltip:"Linear tangent",id:"linear-tangent",globalState:this.props.globalState,context:this.props.context,icon:O,onClick:()=>this.props.context.onLinearTangentRequired.notifyObservers()}),(0,h.jsx)(A.ActionButtonComponent,{className:this.props.context.activeKeyPoints&&this.props.context.activeKeyPoints.length>0?"":"disabled",tooltip:"Break tangent",id:"break-tangent",globalState:this.props.globalState,context:this.props.context,icon:R,onClick:()=>this.props.context.onBreakTangentRequired.notifyObservers()}),(0,h.jsx)(A.ActionButtonComponent,{className:this.props.context.activeKeyPoints&&this.props.context.activeKeyPoints.length>0?"":"disabled",tooltip:"Unify tangent",id:"unify-tangent",globalState:this.props.globalState,context:this.props.context,icon:I,onClick:()=>this.props.context.onUnifyTangentRequired.notifyObservers()}),(0,h.jsx)(A.ActionButtonComponent,{className:this.props.context.activeKeyPoints&&this.props.context.activeKeyPoints.length>0?"":"disabled",tooltip:"Step tangent",id:"step-tangent",globalState:this.props.globalState,context:this.props.context,icon:N,onClick:()=>this.props.context.onStepTangentRequired.notifyObservers()})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/targetedAnimationPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TargetedAnimationGridComponent:()=>O});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/animationCurveEditorComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/curveEditor/context.js");class O extends x.Component{constructor(I){super(I),this.findAnimationGroup=()=>{this._animationGroup=this.props.scene.animationGroups.find(N=>N.targetedAnimations.find(D=>D===this.props.targetedAnimation)!==void 0)},this.playOrPause=()=>{this._animationGroup&&(this._animationGroup.isPlaying?this._animationGroup.stop():this._animationGroup.start(),this.forceUpdate())},this.deleteAnimation=()=>{var N;if(this._animationGroup){const w=this._animationGroup.targetedAnimations.indexOf(this.props.targetedAnimation);w>-1&&(this._animationGroup.targetedAnimations.splice(w,1),(N=this.props.onSelectionChangedObservable)==null||N.notifyObservers(null),this._animationGroup.isPlaying&&(this._animationGroup.stop(),this._animationGroup.start()))}},this.updateContextFromProps=()=>{this._animationCurveEditorContext||(this._animationCurveEditorContext=new T.Context),this._animationCurveEditorContext.title=this.props.targetedAnimation.target.name||"",this._animationCurveEditorContext.animations=[this.props.targetedAnimation.animation],this._animationCurveEditorContext.target=this.props.targetedAnimation.target,this._animationCurveEditorContext.scene=this.props.scene,this._animationGroup&&(this._animationCurveEditorContext.rootAnimationGroup=this._animationGroup)}}componentDidMount(){this.findAnimationGroup(),this.updateContextFromProps()}componentDidUpdate(I,N,w){I.targetedAnimation!==this.props.targetedAnimation&&(this.findAnimationGroup(),this.updateContextFromProps())}render(){const I=this.props.targetedAnimation;return(0,h.jsx)(h.Fragment,{children:(0,h.jsxs)(S.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(E.TextLineComponent,{label:"Class",value:I.getClassName()}),(0,h.jsx)(b.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:I.animation,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),I.target.name&&(0,h.jsx)(E.TextLineComponent,{label:"Target",value:I.target.name,onLink:()=>this.props.globalState.onSelectionChangedObservable.notifyObservers(I)}),this._animationCurveEditorContext&&(0,h.jsx)(M.AnimationCurveEditorComponent,{globalState:this.props.globalState,context:this._animationCurveEditorContext}),(0,h.jsx)(A.ButtonLineComponent,{label:"Dispose",onClick:this.deleteAnimation})]})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/cameras/arcRotateCameraPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ArcRotateCameraPropertyGridComponent:()=>O});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/cameras/commonCameraPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js");class O extends x.Component{constructor(I){super(I)}render(){const I=this.props.camera;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonCameraPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,camera:I,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"TRANSFORMS",selection:this.props.globalState,children:[(0,h.jsx)(T.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Target",target:I,propertyName:"target",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Alpha",useEuler:this.props.globalState.onlyUseEulers,target:I,propertyName:"alpha",minimum:I.lowerAlphaLimit||0,maximum:I.upperAlphaLimit||2*Math.PI,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Beta",useEuler:this.props.globalState.onlyUseEulers,target:I,propertyName:"beta",minimum:I.lowerAlphaLimit||0,maximum:I.upperBetaLimit||2*Math.PI,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Radius",target:I,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"CONTROLS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Angular sensitivity X",target:I,propertyName:"angularSensibilityX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Angular sensitivity Y",target:I,propertyName:"angularSensibilityY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Panning sensitivity",target:I,propertyName:"panningSensibility",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Pinch delta percentage",target:I,propertyName:"pinchDeltaPercentage",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Wheel delta percentage",target:I,propertyName:"wheelDeltaPercentage",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Speed",target:I,propertyName:"speed",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"COLLISIONS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(E.CheckBoxLineComponent,{label:"Check collisions",target:I,propertyName:"checkCollisions",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Collision radius",target:I,propertyName:"collisionRadius",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"LIMITS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Lower alpha limit",target:I,propertyName:"lowerAlphaLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Upper alpha limit",target:I,propertyName:"upperAlphaLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Lower beta limit",target:I,propertyName:"lowerBetaLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Upper beta limit",target:I,propertyName:"upperBetaLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Lower radius limit",target:I,propertyName:"lowerRadiusLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Upper radius limit",target:I,propertyName:"upperRadiusLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Lower target Y limit",target:I,propertyName:"lowerTargetYLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"BEHAVIORS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(E.CheckBoxLineComponent,{label:"Auto rotation",target:I,propertyName:"useAutoRotationBehavior",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.CheckBoxLineComponent,{label:"Bouncing",target:I,propertyName:"useBouncingBehavior",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.CheckBoxLineComponent,{label:"Framing",target:I,propertyName:"useFramingBehavior",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/cameras/commonCameraPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CommonCameraPropertyGridComponent:()=>k});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),O=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),I=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),N=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/animationPropertyGridComponent.js"),w=d("../../../dev/sharedUiComponents/dist/lines/hexLineComponent.js"),D=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/parentPropertyGridComponent.js");class k extends x.Component{constructor(V){super(V),this.state={mode:this.props.camera.mode}}render(){const V=this.props.camera,ee=[{label:"Perspective",value:A.Camera.PERSPECTIVE_CAMERA},{label:"Orthographic",value:A.Camera.ORTHOGRAPHIC_CAMERA}];return(0,h.jsxs)("div",{children:[(0,h.jsx)(O.CustomPropertyGridComponent,{globalState:this.props.globalState,target:V,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(E.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(M.TextLineComponent,{label:"ID",value:V.id,onCopy:!0}),(0,h.jsx)(I.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:V,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.TextLineComponent,{label:"Unique ID",value:V.uniqueId.toString()}),(0,h.jsx)(M.TextLineComponent,{label:"Class",value:V.getClassName()}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Near plane",target:V,propertyName:"minZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(D.ParentPropertyGridComponent,{globalState:this.props.globalState,node:V,lockObject:this.props.lockObject}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Far plane",target:V,propertyName:"maxZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Inertia",target:V,propertyName:"inertia",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.HexLineComponent,{isInteger:!0,lockObject:this.props.lockObject,label:"Layer mask",target:V,propertyName:"layerMask",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.OptionsLine,{label:"Mode",options:ee,target:V,propertyName:"mode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:K=>this.setState({mode:K})}),V.mode===A.Camera.PERSPECTIVE_CAMERA&&(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Field of view",target:V,useEuler:this.props.globalState.onlyUseEulers,propertyName:"fov",minimum:.1,maximum:Math.PI,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),V.mode===A.Camera.ORTHOGRAPHIC_CAMERA&&(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Left",target:V,propertyName:"orthoLeft",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),V.mode===A.Camera.ORTHOGRAPHIC_CAMERA&&(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Top",target:V,propertyName:"orthoTop",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),V.mode===A.Camera.ORTHOGRAPHIC_CAMERA&&(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Right",target:V,propertyName:"orthoRight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),V.mode===A.Camera.ORTHOGRAPHIC_CAMERA&&(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Bottom",target:V,propertyName:"orthoBottom",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.ButtonLineComponent,{label:"Dispose",onClick:()=>{V.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null)}})]}),(0,h.jsx)(N.AnimationGridComponent,{globalState:this.props.globalState,animatable:V,scene:V.getScene(),lockObject:this.props.lockObject})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/cameras/followCameraPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{FollowCameraPropertyGridComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/cameras/commonCameraPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js");class b extends x.Component{constructor(T){super(T)}render(){const T=this.props.camera;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonCameraPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,camera:T,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"TRANSFORMS",selection:this.props.globalState,children:[(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Radius",target:T,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Rotation offset",target:T,propertyName:"rotationOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Height offset",target:T,propertyName:"heightOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Camera acceleration",target:T,propertyName:"cameraAcceleration",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"LIMITS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Lower radius limit",target:T,propertyName:"lowerRadiusLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Upper radius limit",target:T,propertyName:"upperRadiusLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Lower rotation offset limit",target:T,propertyName:"lowerRotationOffsetLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Upper rotation offset limit",target:T,propertyName:"upperRotationOffsetLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Lower height offset limit",target:T,propertyName:"lowerHeightOffsetLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Upper height offset limit",target:T,propertyName:"upperHeightOffsetLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Max camera speed",target:T,propertyName:"maxCameraSpeed",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/cameras/freeCameraPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{FreeCameraPropertyGridComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/cameras/commonCameraPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class T extends x.Component{constructor(R){super(R)}render(){const R=this.props.camera;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonCameraPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,camera:R,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"TRANSFORMS",selection:this.props.globalState,children:[(0,h.jsx)(E.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Target",target:R,propertyName:"target",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Position",target:R,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Rotation",noSlider:!0,useEuler:this.props.globalState.onlyUseEulers,target:R,propertyName:"rotation",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"CONTROLS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Angular sensitivity",target:R,propertyName:"angularSensibility",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Speed",target:R,propertyName:"speed",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"COLLISIONS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(M.CheckBoxLineComponent,{label:"Check collisions",target:R,propertyName:"checkCollisions",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Apply gravity",target:R,propertyName:"applyGravity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Ellipsoid",target:R,propertyName:"ellipsoid",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Ellipsoid offset",target:R,propertyName:"ellipsoidOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/commonPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CommonPropertyGridComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/indentedTextLineComponent.js");class b extends x.Component{constructor(T){super(T)}renderLevel(T){const O=[];for(const R in T){const I=T[R];switch(Object.prototype.toString.call(I)){case"[object String]":O.push((0,h.jsx)(S.TextLineComponent,{label:R,ignoreValue:!0},R)),O.push((0,h.jsx)(E.IndentedTextLineComponent,{value:I},R+I));break;case"[object Array]":O.push((0,h.jsx)(S.TextLineComponent,{label:R,ignoreValue:!0},R));for(const w of I)O.push((0,h.jsx)(E.IndentedTextLineComponent,{value:w},R+w));break;case"[object Object]":O.push((0,h.jsx)(S.TextLineComponent,{label:R,ignoreValue:!0},R));for(const w in I)O.push((0,h.jsx)(S.TextLineComponent,{label:w,value:I[w],additionalClass:"reduced-opacity"},R+w));break}}return O}render(){return(0,h.jsx)("div",{children:this.props.host.metadata&&this.props.host.metadata.xmp&&(0,h.jsx)(A.LineContainerComponent,{title:"XMP METADATA",selection:this.props.globalState,children:this.renderLevel(this.props.host.metadata.xmp)})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CustomPropertyGridComponent:()=>Y});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/vector2LineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/lines/quaternionLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),I=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),N=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),w=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),D=d("../../../dev/sharedUiComponents/dist/lines/fileButtonLineComponent.js"),k=d("core/Misc/observable");class Y extends x.Component{constructor(ee){super(ee),this.state={mode:0}}renderInspectable(ee){switch(ee.type){case 0:return(0,h.jsx)(S.CheckBoxLineComponent,{label:ee.label,target:this.props.target,propertyName:ee.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable},ee.label);case 1:return(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,label:ee.label,target:this.props.target,propertyName:ee.propertyName,step:ee.step!==void 0?ee.step:.1,minimum:ee.min!==void 0?ee.min:0,maximum:ee.max!==void 0?ee.max:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable},ee.label);case 10:return(0,h.jsx)(b.Vector2LineComponent,{lockObject:this.props.lockObject,label:ee.label,target:this.props.target,propertyName:ee.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable},ee.label);case 2:return(0,h.jsx)(M.Vector3LineComponent,{lockObject:this.props.lockObject,label:ee.label,target:this.props.target,propertyName:ee.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable},ee.label);case 3:return(0,h.jsx)(T.QuaternionLineComponent,{lockObject:this.props.lockObject,useEuler:this.props.globalState.onlyUseEulers,label:ee.label,target:this.props.target,propertyName:ee.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable},ee.label);case 4:return(0,h.jsx)(A.Color3LineComponent,{lockObject:this.props.lockObject,label:ee.label,target:this.props.target,propertyName:ee.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable},ee.label);case 5:return(0,h.jsx)(R.TextInputLineComponent,{label:ee.label,lockObject:this.props.lockObject,target:this.props.target,propertyName:ee.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable},ee.label);case 6:return(0,h.jsx)(I.ButtonLineComponent,{label:ee.label,onClick:ee.callback||function(){k.Logger.Warn("no call back function added")}},ee.label);case 7:return(0,h.jsx)(N.OptionsLine,{label:ee.label,target:this.props.target,propertyName:ee.propertyName,options:ee.options||[],onSelect:ee.callback||function(K){k.Logger.Warn(`Option ${K} is selected`)}},ee.label);case 8:return(0,h.jsx)(w.TextLineComponent,{label:ee.label,value:" "},ee.label);case 9:return(0,h.jsx)(D.FileButtonLine,{label:ee.label,onClick:ee.fileCallback||function(){k.Logger.Warn("no file call back function added")},accept:ee.accept||"*"},ee.label)}return null}render(){const ee=this.props.target.inspectableCustomProperties;return!ee||ee.length===0?null:(0,h.jsx)(O.LineContainerComponent,{title:"CUSTOM",selection:this.props.globalState,children:ee.map(K=>this.renderInspectable(K))})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/emptyPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{EmptyPropertyGridComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.js");class S extends x.Component{constructor(b){super(b)}render(){return(0,h.jsx)(A.CustomPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,target:this.props.item,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/fogPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{FogPropertyGridComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js");class M extends x.Component{constructor(O){super(O),this.state={mode:this.props.scene.fogMode}}render(){const O=this.props.scene,R=[{label:"None",value:A.Scene.FOGMODE_NONE},{label:"Linear",value:A.Scene.FOGMODE_LINEAR},{label:"Exp",value:A.Scene.FOGMODE_EXP},{label:"Exp2",value:A.Scene.FOGMODE_EXP2}];return(0,h.jsxs)("div",{children:[(0,h.jsx)(b.OptionsLine,{label:"Fog mode",options:R,target:O,propertyName:"fogMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:I=>this.setState({mode:I})}),this.state.mode!==A.Scene.FOGMODE_NONE&&(0,h.jsx)(S.Color3LineComponent,{lockObject:this.props.lockObject,label:"Fog color",target:O,propertyName:"fogColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(this.state.mode===A.Scene.FOGMODE_EXP||this.state.mode===A.Scene.FOGMODE_EXP2)&&(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Fog density",target:O,propertyName:"fogDensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.state.mode===A.Scene.FOGMODE_LINEAR&&(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Fog start",target:O,propertyName:"fogStart",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.state.mode===A.Scene.FOGMODE_LINEAR&&(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Fog end",target:O,propertyName:"fogEnd",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/frameGraphs/frameGraphPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{FrameGraphPropertyGridComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class T extends x.Component{constructor(R){super(R)}render(){const R=this.props.frameGraph,I=R.tasks;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(A.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:R,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Optimize texture allocation",target:R,propertyName:"optimizeTextureAllocation",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),R.scene.frameGraph!==R&&(0,h.jsx)(b.ButtonLineComponent,{label:"Set as scene's frame graph",onClick:()=>R.scene.frameGraph=R})]}),(0,h.jsx)(A.LineContainerComponent,{title:"TASKS",selection:this.props.globalState,children:I.length>0&&I.map((N,w)=>(0,h.jsx)(S.TextLineComponent,{ignoreValue:!0,label:w+1+". "+N.name},"task"+w))})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/layers/layerPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{LayerPropertyGridComponent:()=>O});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),M=d("core/Misc/observable"),T=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class O extends x.Component{constructor(I){super(I)}render(){const I=this.props.layer;return(0,h.jsx)(h.Fragment,{children:(0,h.jsxs)(A.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(S.TextLineComponent,{label:"Class",value:I.getClassName()}),(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:I,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),I.getClassName()===M.GlowLayer.EffectName&&(0,h.jsxs)("div",{className:"fragment",children:[(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Intensity",target:I,propertyName:"intensity",minimum:0,maximum:2,step:.01,decimalCount:2,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Blur Kernel Size",target:I,propertyName:"blurKernelSize",minimum:0,maximum:64,step:1,decimalCount:0,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),I.getClassName()===M.HighlightLayer.EffectName&&(0,h.jsxs)("div",{className:"fragment",children:[(0,h.jsx)(T.CheckBoxLineComponent,{label:"Inner Glow",target:I,propertyName:"innerGlow",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.CheckBoxLineComponent,{label:"Outer Glow",target:I,propertyName:"outerGlow",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Blur Horizontal Size",target:I,propertyName:"blurHorizontalSize",minimum:0,maximum:4,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Blur Vertical Size",target:I,propertyName:"blurVerticalSize",minimum:0,maximum:4,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/commonLightPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CommonLightPropertyGridComponent:()=>I});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),O=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/animationPropertyGridComponent.js"),R=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/parentPropertyGridComponent.js");class I extends x.Component{constructor(w){super(w)}render(){const w=this.props.light;return(0,h.jsxs)("div",{children:[(0,h.jsx)(b.CustomPropertyGridComponent,{globalState:this.props.globalState,target:w,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(A.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(E.TextLineComponent,{label:"ID",value:w.id,onCopy:!0}),(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:w,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextLineComponent,{label:"Unique ID",value:w.uniqueId.toString()}),(0,h.jsx)(E.TextLineComponent,{label:"Class",value:w.getClassName()}),(0,h.jsx)(R.ParentPropertyGridComponent,{globalState:this.props.globalState,node:w,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.FloatLineComponent,{lockObject:this.props.lockObject,label:"Intensity",target:w,propertyName:"intensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.ButtonLineComponent,{label:"Dispose",onClick:()=>{w.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null)}})]}),(0,h.jsx)(O.AnimationGridComponent,{globalState:this.props.globalState,animatable:w,scene:w.getScene(),lockObject:this.props.lockObject})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/commonShadowLightPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CommonShadowLightPropertyGridComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),M=d("core/Misc/observable"),T=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js");class R extends x.Component{constructor(N){super(N),this._internals={generatorType:0,mapSize:1024}}createShadowGenerator(){const N=this.props.light,w=N.getScene(),D=this._internals,k=D.generatorType===0?new M.ShadowGenerator(D.mapSize,N):new M.CascadedShadowGenerator(D.mapSize,N);w.meshes.forEach(Y=>{Y.infiniteDistance||(k.addShadowCaster(Y),Y.isAnInstance||(Y.receiveShadows=!0))}),this.forceUpdate()}disposeShadowGenerator(){var w;(w=this.props.light.getShadowGenerator())==null||w.dispose(),this.forceUpdate()}render(){const N=this.props.light,w=this._internals,D=N.getScene().activeCamera;let k=N.getShadowGenerator(D)||null;if(k===null){const re=N.getShadowGenerators();re&&re.size>0&&(k=re.values().next().value)}const Y=k instanceof M.CascadedShadowGenerator,V=[{label:"Shadow Generator",value:0}];N instanceof M.DirectionalLight&&V.push({label:"Cascaded Shadow Generator",value:1});const ee=[{label:"4096x4096",value:4096},{label:"2048x2048",value:2048},{label:"1024x1024",value:1024},{label:"512x512",value:512},{label:"256x256",value:256}];let K;k instanceof M.CascadedShadowGenerator?K=[{label:"None",value:M.ShadowGenerator.FILTER_NONE},{label:"PCF",value:M.ShadowGenerator.FILTER_PCF},{label:"PCSS",value:M.ShadowGenerator.FILTER_PCSS}]:K=[{label:"None",value:M.ShadowGenerator.FILTER_NONE},{label:"PCF",value:M.ShadowGenerator.FILTER_PCF},{label:"PCSS",value:M.ShadowGenerator.FILTER_PCSS},{label:"Poisson",value:M.ShadowGenerator.FILTER_POISSONSAMPLING},{label:"Exponential",value:M.ShadowGenerator.FILTER_EXPONENTIALSHADOWMAP},{label:"Blurred exponential",value:M.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP},{label:"Close exponential",value:M.ShadowGenerator.FILTER_CLOSEEXPONENTIALSHADOWMAP},{label:"Blurred close exponential",value:M.ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP}];const ie=[{label:"Low",value:M.ShadowGenerator.QUALITY_LOW},{label:"Medium",value:M.ShadowGenerator.QUALITY_MEDIUM},{label:"High",value:M.ShadowGenerator.QUALITY_HIGH}],ne=[{label:"2",value:2},{label:"3",value:3},{label:"4",value:4}],te=D?D.minZ:0,W=D?D.maxZ?D.maxZ:5e5:0,Q=k?k.filter:0;return(0,h.jsxs)("div",{children:[(0,h.jsxs)(A.LineContainerComponent,{title:"SHADOWS",selection:this.props.globalState,children:[(0,h.jsx)(S.CheckBoxLineComponent,{label:"Shadows enabled",target:N,propertyName:"shadowEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!Y&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Shadows near plane",target:N,propertyName:"shadowMinZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Shadows far plane",target:N,propertyName:"shadowMaxZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]}),k==null&&(0,h.jsxs)(A.LineContainerComponent,{title:"SHADOW GENERATOR",selection:this.props.globalState,children:[(0,h.jsx)(b.OptionsLine,{label:"Type",options:V,target:w,propertyName:"generatorType"}),(0,h.jsx)(b.OptionsLine,{label:"Map size",options:ee,target:w,propertyName:"mapSize"}),(0,h.jsx)(O.ButtonLineComponent,{label:"Create generator",onClick:()=>this.createShadowGenerator()})]}),k!==null&&(0,h.jsxs)(A.LineContainerComponent,{title:"SHADOW GENERATOR",selection:this.props.globalState,children:[(0,h.jsx)(O.ButtonLineComponent,{label:"Dispose generator",onClick:()=>this.disposeShadowGenerator()}),Y&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(b.OptionsLine,{label:"Num cascades",options:ne,target:k,propertyName:"numCascades",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Debug mode",target:k,propertyName:"debug",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Stabilize cascades",target:k,propertyName:"stabilizeCascades",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Lambda",minimum:0,maximum:1,step:.01,target:k,propertyName:"lambda",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Cascade blend",minimum:0,maximum:1,step:.01,target:k,propertyName:"cascadeBlendPercentage",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Depth clamp",target:k,propertyName:"depthClamp",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Auto-Calc depth bounds",target:k,propertyName:"autoCalcDepthBounds",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Shadow MaxZ",minimum:te,maximum:W,step:.5,target:k,propertyName:"shadowMaxZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,digits:4,step:"0.0001",label:"Bias",target:k,propertyName:"bias",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Normal bias",target:k,propertyName:"normalBias",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Darkness",target:k,minimum:0,maximum:1,step:.01,propertyName:"darkness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Allow transparent shadows",target:k,propertyName:"transparencyShadow",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.OptionsLine,{label:"Filter",options:K,onSelect:()=>{this.forceUpdate()},target:k,propertyName:"filter",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(Q===M.ShadowGenerator.FILTER_PCF||Q===M.ShadowGenerator.FILTER_PCSS)&&(0,h.jsx)(b.OptionsLine,{label:"Filtering quality",options:ie,onSelect:()=>{this.forceUpdate()},target:k,propertyName:"filteringQuality",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),Q===M.ShadowGenerator.FILTER_PCSS&&(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Penumbra ratio",minimum:0,maximum:.5,step:.001,target:k,propertyName:"contactHardeningLightSizeUVRatio",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!Y&&(Q===M.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||Q===M.ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)&&(0,h.jsx)(S.CheckBoxLineComponent,{label:"Use kernel blur",target:k,propertyName:"useKernelBlur",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),k instanceof M.ShadowGenerator&&(Q===M.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||Q===M.ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)&&!k.useKernelBlur&&(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Blur box offset",target:k,propertyName:"blurBoxOffset",minimum:1,maximum:64,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),k instanceof M.ShadowGenerator&&(Q===M.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||Q===M.ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)&&k.useKernelBlur&&(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Blur kernel",target:k,propertyName:"blurKernel",minimum:1,maximum:64,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),k instanceof M.ShadowGenerator&&(Q===M.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||Q===M.ShadowGenerator.FILTER_EXPONENTIALSHADOWMAP)&&(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Depth scale",target:k,propertyName:"depthScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),k instanceof M.ShadowGenerator&&(Q===M.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||Q===M.ShadowGenerator.FILTER_EXPONENTIALSHADOWMAP)&&(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Blur scale",target:k,propertyName:"blurScale",minimum:1,maximum:4,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),Y&&Q===M.ShadowGenerator.FILTER_PCSS&&(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Penumbra darkness",minimum:0,maximum:1,step:.01,target:k,propertyName:"penumbraDarkness",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/directionalLightPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{DirectionalLightPropertyGridComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/commonLightPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/commonShadowLightPropertyGridComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),O=d("core/Misc/observable");class R extends x.Component{constructor(N){super(N)}displayFrustum(){const N=this.props.light,w=N.getScene().activeCamera,D=N._displayFrustum=!N._displayFrustum;if(N._displayFrustumObservable&&(N.getScene().onAfterRenderObservable.remove(N._displayFrustumObservable),N._displayFrustumDLH.dispose()),D){const k=N._displayFrustumDLH=new O.DirectionalLightFrustumViewer(N,w);N._displayFrustumObservable=N.getScene().onAfterRenderObservable.add(()=>{k.update()})}}render(){const N=this.props.light,w=N.getScene().activeCamera;let D=N.getShadowGenerator(w)||null;if(D===null){const V=N.getShadowGenerators();V&&V.size>0&&(D=V.values().next().value)}const k=D instanceof O.CascadedShadowGenerator,Y=N._displayFrustum??!1;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonLightPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:N,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"SETUP",selection:this.props.globalState,children:[(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Diffuse",target:N,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Specular",target:N,propertyName:"specular",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Position",target:N,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Direction",target:N,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!k&&(0,h.jsx)(T.CheckBoxLineComponent,{label:"Auto Calc Shadow ZBounds",target:N,propertyName:"autoCalcShadowZBounds",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsx)(M.CommonShadowLightPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:N,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.LineContainerComponent,{title:"DEBUG",closed:!0,selection:this.props.globalState,children:(0,h.jsx)(T.CheckBoxLineComponent,{label:"Display frustum",isSelected:()=>Y,onSelect:()=>this.displayFrustum()})})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/hemisphericLightPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{HemisphericLightPropertyGridComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/commonLightPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js");class M extends x.Component{constructor(O){super(O)}render(){const O=this.props.light;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonLightPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:O,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"SETUP",selection:this.props.globalState,children:[(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Diffuse",target:O,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Ground",target:O,propertyName:"groundColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Direction",target:O,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/pointLightPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PointLightPropertyGridComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/commonLightPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/commonShadowLightPropertyGridComponent.js");class T extends x.Component{constructor(R){super(R)}render(){const R=this.props.light;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonLightPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:R,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"SETUP",selection:this.props.globalState,children:[(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Diffuse",target:R,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Specular",target:R,propertyName:"specular",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Position",target:R,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsx)(M.CommonShadowLightPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:R,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/rectAreaLightPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{RectAreaLightPropertyGridComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/commonLightPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js");class T extends x.Component{constructor(R){super(R)}render(){const R=this.props.light;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonLightPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:R,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"SETUP",selection:this.props.globalState,children:[(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Diffuse",target:R,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Specular",target:R,propertyName:"specular",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Position",target:R,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"Width",target:R,propertyName:"width",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"Height",target:R,propertyName:"height",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"Intensity",target:R,propertyName:"intensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsx)(A.CommonLightPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:R,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/spotLightPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SpotLightPropertyGridComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/commonLightPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/lights/commonShadowLightPropertyGridComponent.js"),O=d("../../../dev/inspector/dist/components/actionTabs/lines/textureLinkLineComponent.js");class R extends x.Component{constructor(N){super(N)}render(){const N=this.props.light;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonLightPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:N,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"SETUP",selection:this.props.globalState,children:[(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Diffuse",target:N,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Specular",target:N,propertyName:"specular",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Position",target:N,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Direction",target:N,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,useEuler:this.props.globalState.onlyUseEulers,label:"Angle",target:N,propertyName:"angle",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,useEuler:this.props.globalState.onlyUseEulers,label:"Inner angle",target:N,propertyName:"innerAngle",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"Exponent",target:N,propertyName:"exponent",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.iesProfileTexture&&(0,h.jsx)(O.TextureLinkLineComponent,{label:"IES Profile",texture:N.iesProfileTexture,onSelectionChangedObservable:this.props.onSelectionChangedObservable})]}),(0,h.jsx)(T.CommonShadowLightPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:N,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/backgroundMaterialPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{BackgroundMaterialPropertyGridComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/commonMaterialPropertyGridComponent.js"),O=d("../../../dev/inspector/dist/components/actionTabs/lines/textureLinkLineComponent.js");class R extends x.Component{constructor(N){super(N),this._onDebugSelectionChangeObservable=new A.Observable}renderTextures(){const N=this.props.material,w=this._onDebugSelectionChangeObservable;return(0,h.jsxs)(S.LineContainerComponent,{title:"TEXTURES",selection:this.props.globalState,children:[(0,h.jsx)(O.TextureLinkLineComponent,{label:"Diffuse",texture:N.diffuseTexture,material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(O.TextureLinkLineComponent,{label:"Reflection",texture:N.reflectionTexture,material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),N.reflectionTexture&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Reflection blur",target:N,propertyName:"reflectionBlur",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}render(){const N=this.props.material;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(T.CommonMaterialPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:N,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"LIGHTING & COLORS",selection:this.props.globalState,children:[(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Primary",target:N,propertyName:"primaryColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Shadow level",target:N,propertyName:"primaryColorShadowLevel",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Highlight level",target:N,propertyName:"primaryColorHighlightLevel",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),this.renderTextures(),(0,h.jsxs)(S.LineContainerComponent,{title:"RENDERING",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Ground Projection",target:N,propertyName:"enableGroundProjection",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.enableGroundProjection&&(0,h.jsxs)("div",{className:"fragment",children:[(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Ground radius",target:N,propertyName:"projectedGroundRadius",minimum:0,maximum:1e4,step:10,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Ground height",target:N,propertyName:"projectedGroundHeight",minimum:1,maximum:1e3,step:10,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enable noise",target:N,propertyName:"enableNoise",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Opacity fresnel",target:N,propertyName:"opacityFresnel",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Reflection fresnel",target:N,propertyName:"reflectionFresnel",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Reflection amount",target:N,propertyName:"reflectionAmount",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/commonMaterialPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CommonMaterialPropertyGridComponent:()=>k});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),O=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),I=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),N=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/animationPropertyGridComponent.js"),w=d("../../../dev/sharedUiComponents/dist/lines/hexLineComponent.js"),D=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js");class k extends x.Component{constructor(V){super(V)}render(){const V=this.props.material;V.depthFunction=V.depthFunction??0;const ee=[{label:"<None>",value:Number.MAX_SAFE_INTEGER},{label:"Clockwise",value:A.Material.ClockWiseSideOrientation},{label:"Counterclockwise",value:A.Material.CounterClockWiseSideOrientation}],K=[{label:"<Not Defined>",value:T.Null_Value},{label:"Opaque",value:A.PBRMaterial.PBRMATERIAL_OPAQUE},{label:"Alpha test",value:A.PBRMaterial.PBRMATERIAL_ALPHATEST},{label:"Alpha blend",value:A.PBRMaterial.PBRMATERIAL_ALPHABLEND},{label:"Alpha blend and test",value:A.PBRMaterial.PBRMATERIAL_ALPHATESTANDBLEND}],ie=[{label:"Combine",value:A.Constants.ALPHA_COMBINE},{label:"One one",value:A.Constants.ALPHA_ONEONE},{label:"Add",value:A.Constants.ALPHA_ADD},{label:"Subtract",value:A.Constants.ALPHA_SUBTRACT},{label:"Multiply",value:A.Constants.ALPHA_MULTIPLY},{label:"Maximized",value:A.Constants.ALPHA_MAXIMIZED},{label:"Pre-multiplied",value:A.Constants.ALPHA_PREMULTIPLIED}],ne=[{label:"<Engine Default>",value:0},{label:"Never",value:A.Engine.NEVER},{label:"Always",value:A.Engine.ALWAYS},{label:"Equal",value:A.Engine.EQUAL},{label:"Less",value:A.Engine.LESS},{label:"Less or equal",value:A.Engine.LEQUAL},{label:"Greater",value:A.Engine.GREATER},{label:"Greater or equal",value:A.Engine.GEQUAL},{label:"Not equal",value:A.Engine.NOTEQUAL}],te=[{label:"Never",value:A.Constants.NEVER},{label:"Always",value:A.Constants.ALWAYS},{label:"Equal",value:A.Constants.EQUAL},{label:"Less",value:A.Constants.LESS},{label:"Less or equal",value:A.Constants.LEQUAL},{label:"Greater",value:A.Constants.GREATER},{label:"Greater or equal",value:A.Constants.GEQUAL},{label:"Not equal",value:A.Constants.NOTEQUAL}],W=[{label:"Keep",value:A.Constants.KEEP},{label:"Zero",value:A.Constants.ZERO},{label:"Replace",value:A.Constants.REPLACE},{label:"Incr",value:A.Constants.INCR},{label:"Decr",value:A.Constants.DECR},{label:"Invert",value:A.Constants.INVERT},{label:"Incr wrap",value:A.Constants.INCR_WRAP},{label:"Decr wrap",value:A.Constants.DECR_WRAP}];return(0,h.jsxs)("div",{children:[(0,h.jsx)(O.CustomPropertyGridComponent,{globalState:this.props.globalState,target:V,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(b.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(M.TextLineComponent,{label:"ID",value:V.id,onCopy:!0}),(0,h.jsx)(I.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:V,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.TextLineComponent,{label:"Unique ID",value:V.uniqueId.toString()}),(0,h.jsx)(M.TextLineComponent,{label:"Class",value:V.getClassName()}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Backface culling",target:V,propertyName:"backFaceCulling",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.OptionsLine,{label:"Orientation",options:ee,target:V,propertyName:"sideOrientation",onPropertyChangedObservable:this.props.onPropertyChangedObservable,allowNullValue:!0,onSelect:Q=>this.setState({mode:Q})}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Disable lighting",target:V,propertyName:"disableLighting",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Disable color write",target:V,propertyName:"disableColorWrite",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Disable depth write",target:V,propertyName:"disableDepthWrite",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.OptionsLine,{label:"Depth function",options:ne,target:V,propertyName:"depthFunction",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:Q=>this.setState({depthFunction:Q})}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Need depth pre-pass",target:V,propertyName:"needDepthPrePass",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Wireframe",target:V,propertyName:"wireframe",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Point cloud",target:V,propertyName:"pointsCloud",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,label:"Point size",target:V,propertyName:"pointSize",minimum:0,maximum:100,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,label:"Z-offset Factor",target:V,propertyName:"zOffset",minimum:-10,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,label:"Z-offset Units",target:V,propertyName:"zOffsetUnits",minimum:-10,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.ButtonLineComponent,{label:"Dispose",onClick:()=>{V.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null)}})]}),(0,h.jsxs)(b.LineContainerComponent,{title:"TRANSPARENCY",selection:this.props.globalState,children:[(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,label:"Alpha",target:V,propertyName:"alpha",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),V.transparencyMode!==void 0&&(0,h.jsx)(T.OptionsLine,{allowNullValue:!0,label:"Transparency mode",options:K,target:V,propertyName:"transparencyMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:Q=>this.setState({transparencyMode:Q})}),(0,h.jsx)(T.OptionsLine,{label:"Alpha mode",options:ie,target:V,propertyName:"alphaMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:Q=>this.setState({alphaMode:Q})}),V.diffuseTexture&&(0,h.jsx)(S.CheckBoxLineComponent,{label:"Diffuse texture has alpha",target:V.diffuseTexture,propertyName:"hasAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),V.useAlphaFromDiffuseTexture!==void 0&&(0,h.jsx)(S.CheckBoxLineComponent,{label:"Use alpha from diffuse texture",target:V,propertyName:"useAlphaFromDiffuseTexture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),V.albedoTexture&&(0,h.jsx)(S.CheckBoxLineComponent,{label:"Albedo texture has alpha",target:V.albedoTexture,propertyName:"hasAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),V.useAlphaFromAlbedoTexture!==void 0&&(0,h.jsx)(S.CheckBoxLineComponent,{label:"Use alpha from albedo texture",target:V,propertyName:"useAlphaFromAlbedoTexture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Separate culling pass",target:V,propertyName:"separateCullingPass",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),V.stencil&&(0,h.jsx)(h.Fragment,{children:(0,h.jsxs)(b.LineContainerComponent,{title:"STENCIL",selection:this.props.globalState,children:[(0,h.jsx)(S.CheckBoxLineComponent,{label:"Enabled",target:V.stencil,propertyName:"enabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.HexLineComponent,{isInteger:!0,lockObject:this.props.lockObject,label:"Mask",target:V.stencil,propertyName:"mask",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.OptionsLine,{label:"Function",options:te,target:V.stencil,propertyName:"func",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:Q=>this.setState({stencilFunction:Q})}),(0,h.jsx)(D.FloatLineComponent,{isInteger:!0,lockObject:this.props.lockObject,label:"Function reference",target:V.stencil,propertyName:"funcRef",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.HexLineComponent,{isInteger:!0,lockObject:this.props.lockObject,label:"Function mask",target:V.stencil,propertyName:"funcMask",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.OptionsLine,{label:"Op stencil fail",options:W,target:V.stencil,propertyName:"opStencilFail",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:Q=>this.setState({opStencilFail:Q})}),(0,h.jsx)(T.OptionsLine,{label:"Op depth fail",options:W,target:V.stencil,propertyName:"opDepthFail",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:Q=>this.setState({opDepthFail:Q})}),(0,h.jsx)(T.OptionsLine,{label:"Op stencil+depth pass",options:W,target:V.stencil,propertyName:"opStencilDepthPass",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:Q=>this.setState({opStencilDepthPass:Q})})]})}),(0,h.jsx)(N.AnimationGridComponent,{globalState:this.props.globalState,animatable:V,scene:V.getScene(),lockObject:this.props.lockObject})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/materialPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{MaterialPropertyGridComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/commonMaterialPropertyGridComponent.js");class S extends x.Component{constructor(b){super(b)}render(){const b=this.props.material;return(0,h.jsx)(A.CommonMaterialPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:b,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/multiMaterialPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{MultiMaterialPropertyGridComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/commonMaterialPropertyGridComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js");class b extends x.Component{constructor(T){super(T)}onMaterialLink(T){this.props.onSelectionChangedObservable&&this.props.onSelectionChangedObservable.notifyObservers(T)}renderChildMaterial(){const T=this.props.material;return(0,h.jsx)(A.LineContainerComponent,{title:"CHILDREN",selection:this.props.globalState,children:T.subMaterials.map((O,R)=>O?(0,h.jsx)(E.TextLineComponent,{label:"Material #"+R,value:O.name,onLink:()=>this.onMaterialLink(O)},"Material #"+R):null)})}render(){const T=this.props.material;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(S.CommonMaterialPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:T,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.renderChildMaterial()]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/nodeMaterialPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{NodeMaterialPropertyGridComponent:()=>V});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/commonMaterialPropertyGridComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),I=d("../../../dev/sharedUiComponents/dist/lines/vector4LineComponent.js"),N=d("../../../dev/sharedUiComponents/dist/lines/vector2LineComponent.js"),w=d("../../../dev/inspector/dist/components/actionTabs/lines/textureLinkLineComponent.js"),D=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),k=d("../../../dev/inspector/dist/components/actionTabs/tabs/gradientNodePropertyComponent.js"),Y=d("../../../dev/sharedUiComponents/dist/lines/color4LineComponent.js");class V extends x.Component{constructor(K){super(K),this._onDebugSelectionChangeObservable=new A.Observable}edit(){this.props.material.edit({nodeEditorConfig:{backgroundColor:this.props.material.getScene().clearColor}})}renderTextures(){const K=this.props.material,ie=this._onDebugSelectionChangeObservable,ne=K.getTextureBlocks();return!ne||ne.length===0?null:(0,h.jsx)(S.LineContainerComponent,{title:"TEXTURES",selection:this.props.globalState,children:ne.map((te,W)=>(0,h.jsx)(w.TextureLinkLineComponent,{label:te.name,texture:te.texture,material:K,onTextureCreated:Q=>te.texture=Q,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:ie},"nodematText"+W))})}renderInputBlock(K){switch(K.type){case A.NodeMaterialBlockConnectionPointTypes.Float:{const ie=isNaN(K.min)||isNaN(K.max)||K.min===K.max;return(0,h.jsxs)("div",{children:[K.isBoolean&&(0,h.jsx)(M.CheckBoxLineComponent,{label:K.name,target:K,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable},K.name),!K.isBoolean&&ie&&(0,h.jsx)(T.FloatLineComponent,{lockObject:this.props.lockObject,label:K.name,target:K,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable},K.name),!K.isBoolean&&!ie&&(0,h.jsx)(D.SliderLineComponent,{lockObject:this.props.lockObject,label:K.name,target:K,propertyName:"value",step:(K.max-K.min)/100,minimum:K.min,maximum:K.max,onPropertyChangedObservable:this.props.onPropertyChangedObservable},K.name)]},K.name)}case A.NodeMaterialBlockConnectionPointTypes.Color3:return(0,h.jsx)(O.Color3LineComponent,{lockObject:this.props.lockObject,label:K.name,target:K,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable},K.name);case A.NodeMaterialBlockConnectionPointTypes.Color4:return(0,h.jsx)(Y.Color4LineComponent,{lockObject:this.props.lockObject,label:K.name,target:K,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable},K.name);case A.NodeMaterialBlockConnectionPointTypes.Vector2:return(0,h.jsx)(N.Vector2LineComponent,{lockObject:this.props.lockObject,label:K.name,target:K,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable},K.name);case A.NodeMaterialBlockConnectionPointTypes.Vector3:return(0,h.jsx)(R.Vector3LineComponent,{lockObject:this.props.lockObject,label:K.name,target:K,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable},K.name);case A.NodeMaterialBlockConnectionPointTypes.Vector4:return(0,h.jsx)(I.Vector4LineComponent,{lockObject:this.props.lockObject,label:K.name,target:K,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable},K.name)}return null}renderInputValues(){const K=this.props.material.getInputBlocks().filter(W=>W.visibleInInspector&&W.isUniform&&!W.isSystemValue).sort((W,Q)=>W.name.localeCompare(Q.name)),ie=[];K.forEach(W=>{W.groupInInspector&&ie.indexOf(W.groupInInspector)===-1&&ie.push(W.groupInInspector)}),ie.sort();const ne=this.props.material.attachedBlocks.filter(W=>W.visibleInInspector&&W.getClassName()==="GradientBlock").sort((W,Q)=>W.name.localeCompare(Q.name)),te=K.length>0?(0,h.jsxs)(S.LineContainerComponent,{title:"INPUTS",selection:this.props.globalState,children:[" ",K.filter(W=>!W.groupInInspector).map(W=>this.renderInputBlock(W))]}):null;return(0,h.jsxs)(h.Fragment,{children:[te,ie.map((W,Q)=>(0,h.jsx)(S.LineContainerComponent,{title:W.toUpperCase(),selection:this.props.globalState,children:K.filter(re=>re.groupInInspector===W).map(re=>this.renderInputBlock(re))},"inputValue"+Q)),ne.map((W,Q)=>(0,h.jsx)(S.LineContainerComponent,{title:W.name.toUpperCase(),selection:this.props.globalState,children:(0,h.jsx)(k.GradientPropertyTabComponent,{globalState:this.props.globalState,block:W})},W.name+Q))]})}render(){const K=this.props.material;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(E.CommonMaterialPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:K,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"CONFIGURATION",selection:this.props.globalState,children:[(0,h.jsx)(M.CheckBoxLineComponent,{label:"Ignore alpha",target:K,propertyName:"ignoreAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.ButtonLineComponent,{label:"Node Material Editor",onClick:()=>this.edit()})]}),this.renderInputValues(),this.renderTextures()]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/pbrMaterialPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PBRMaterialPropertyGridComponent:()=>N});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),O=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/commonMaterialPropertyGridComponent.js"),R=d("../../../dev/inspector/dist/components/actionTabs/lines/textureLinkLineComponent.js"),I=d("../../../dev/sharedUiComponents/dist/lines/vector2LineComponent.js");class N extends x.Component{constructor(D){super(D),this._onDebugSelectionChangeObservable=new A.Observable}switchAmbientMode(D){this.props.material.debugMode=D?21:0}renderTextures(D){const k=this.props.material;return(0,h.jsxs)(S.LineContainerComponent,{title:"CHANNELS",selection:this.props.globalState,children:[(0,h.jsx)(R.TextureLinkLineComponent,{label:"Albedo",texture:k.albedoTexture,propertyName:"albedoTexture",material:k,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Base Weight",texture:k.baseWeightTexture,propertyName:"baseWeightTexture",material:k,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Metallic Roughness",texture:k.metallicTexture,propertyName:"metallicTexture",material:k,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Reflection",texture:k.reflectionTexture,propertyName:"reflectionTexture",material:k,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Refraction",texture:k.refractionTexture,propertyName:"refractionTexture",material:k,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Reflectivity",texture:k.reflectivityTexture,propertyName:"reflectivityTexture",material:k,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Micro-surface",texture:k.microSurfaceTexture,propertyName:"microSurfaceTexture",material:k,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Bump",texture:k.bumpTexture,propertyName:"bumpTexture",material:k,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Emissive",texture:k.emissiveTexture,propertyName:"emissiveTexture",material:k,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Opacity",texture:k.opacityTexture,propertyName:"opacityTexture",material:k,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(R.TextureLinkLineComponent,{customDebugAction:Y=>this.switchAmbientMode(Y),label:"Ambient",texture:k.ambientTexture,propertyName:"ambientTexture",material:k,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Lightmap",texture:k.lightmapTexture,propertyName:"lightmapTexture",material:k,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Detailmap",texture:k.detailMap.texture,material:k,onTextureCreated:Y=>k.detailMap.texture=Y,onTextureRemoved:()=>k.detailMap.texture=null,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:D}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use lightmap as shadowmap",target:k,propertyName:"useLightmapAsShadowmap",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use detailmap",target:k.detailMap,propertyName:"isEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),k.decalMap&&(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use decalmap",target:k.decalMap,propertyName:"isEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}render(){const D=this.props.material,k=[{label:"None",value:0},{label:"Normalized position",value:1},{label:"Normals",value:2},{label:"Tangents",value:3},{label:"Bitangents",value:4},{label:"Bump Normals",value:5},{label:"UV1",value:6},{label:"UV2",value:7},{label:"ClearCoat Normals",value:8},{label:"ClearCoat Tangents",value:9},{label:"ClearCoat Bitangents",value:10},{label:"Anisotropic Normals",value:11},{label:"Anisotropic Tangents",value:12},{label:"Anisotropic Bitangents",value:13},{label:"Albedo Map",value:20},{label:"Ambient Map",value:21},{label:"Opacity Map",value:22},{label:"Emissive Map",value:23},{label:"Light Map",value:24},{label:"Metallic Map",value:25},{label:"Reflectivity Map",value:26},{label:"ClearCoat Map",value:27},{label:"ClearCoat Tint Map",value:28},{label:"Sheen Map",value:29},{label:"Anisotropic Map",value:30},{label:"Thickness Map",value:31},{label:"Bump Map",value:32},{label:"Env Refraction",value:40},{label:"Env Reflection",value:41},{label:"Env Clear Coat",value:42},{label:"Direct Diffuse",value:50},{label:"Direct Specular",value:51},{label:"Direct Clear Coat",value:52},{label:"Direct Sheen",value:53},{label:"Env Irradiance",value:54},{label:"Surface Albedo",value:60},{label:"Reflectance 0",value:61},{label:"Metallic",value:62},{label:"Metallic F0",value:71},{label:"Roughness",value:63},{label:"AlphaG",value:64},{label:"NdotV",value:65},{label:"ClearCoat Color",value:66},{label:"ClearCoat Roughness",value:67},{label:"ClearCoat NdotV",value:68},{label:"Transmittance",value:69},{label:"Refraction Transmittance",value:70},{label:"Glossiness",value:72},{label:"Base Color",value:73},{label:"Specular Color",value:74},{label:"Emissive Color",value:75},{label:"SEO",value:80},{label:"EHO",value:81},{label:"Energy Factor",value:82},{label:"Specular Reflectance",value:83},{label:"Clear Coat Reflectance",value:84},{label:"Sheen Reflectance",value:85},{label:"Luminance Over Alpha",value:86},{label:"Alpha",value:87},{label:"Albedo Alpha",value:88},{label:"Ambient occlusion color",value:89}],Y=[{label:"Low",value:A.Constants.TEXTURE_FILTERING_QUALITY_LOW},{label:"Medium",value:A.Constants.TEXTURE_FILTERING_QUALITY_MEDIUM},{label:"High",value:A.Constants.TEXTURE_FILTERING_QUALITY_HIGH}];return D.sheen._useRoughness=D.sheen._useRoughness??D.sheen.roughness!==null,D.sheen.roughness=D.sheen.roughness??D.sheen._saveRoughness??0,D.sheen._useRoughness||(D.sheen._saveRoughness=D.sheen.roughness,D.sheen.roughness=null),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(O.CommonMaterialPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:D,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.renderTextures(this._onDebugSelectionChangeObservable),(0,h.jsxs)(S.LineContainerComponent,{title:"LIGHTING & COLORS",selection:this.props.globalState,children:[(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Albedo",target:D,propertyName:"albedoColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Base Weight",target:D,propertyName:"baseWeight",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Reflectivity",target:D,propertyName:"reflectivityColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Micro-surface",target:D,propertyName:"microSurface",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Emissive",target:D,propertyName:"emissiveColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Ambient",target:D,propertyName:"ambientColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use physical light falloff",target:D,propertyName:"usePhysicalLightFalloff",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"METALLIC WORKFLOW",selection:this.props.globalState,children:[(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Metallic",target:D,propertyName:"metallic",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Roughness",target:D,propertyName:"roughness",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Index of Refraction",target:D,propertyName:"indexOfRefraction",minimum:1,maximum:3,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"F0 Factor",target:D,propertyName:"metallicF0Factor",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Reflectance Color",target:D,propertyName:"metallicReflectanceColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use only metallic from MetallicReflectance texture",target:D,propertyName:"useOnlyMetallicFromMetallicReflectanceTexture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"MetallicReflectance Texture",texture:D.metallicReflectanceTexture,onTextureCreated:V=>D.metallicReflectanceTexture=V,onTextureRemoved:()=>D.metallicReflectanceTexture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Reflectance Texture",texture:D.reflectanceTexture,onTextureCreated:V=>D.reflectanceTexture=V,onTextureRemoved:()=>D.reflectanceTexture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"CLEAR COAT",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:D.clearCoat,propertyName:"isEnabled",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.clearCoat.isEnabled&&(0,h.jsxs)("div",{className:"fragment",children:[(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Intensity",target:D.clearCoat,propertyName:"intensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Roughness",target:D.clearCoat,propertyName:"roughness",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"IOR",target:D.clearCoat,propertyName:"indexOfRefraction",minimum:1,maximum:3,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Remap F0",target:D.clearCoat,propertyName:"remapF0OnInterfaceChange",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Clear coat",texture:D.clearCoat.texture,onTextureCreated:V=>D.clearCoat.texture=V,onTextureRemoved:()=>D.clearCoat.texture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Roughness",texture:D.clearCoat.textureRoughness,onTextureCreated:V=>D.clearCoat.textureRoughness=V,onTextureRemoved:()=>D.clearCoat.textureRoughness=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Bump",texture:D.clearCoat.bumpTexture,onTextureCreated:V=>D.clearCoat.bumpTexture=V,onTextureRemoved:()=>D.clearCoat.bumpTexture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),D.clearCoat.bumpTexture&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Bump strength",target:D.clearCoat.bumpTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use roughness from main texture",target:D.clearCoat,propertyName:"useRoughnessFromMainTexture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Tint",target:D.clearCoat,propertyName:"isTintEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.clearCoat.isEnabled&&D.clearCoat.isTintEnabled&&(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Tint Color",target:D.clearCoat,propertyName:"tintColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),D.clearCoat.isEnabled&&D.clearCoat.isTintEnabled&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"At Distance",target:D.clearCoat,propertyName:"tintColorAtDistance",minimum:0,maximum:20,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.clearCoat.isEnabled&&D.clearCoat.isTintEnabled&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Tint Thickness",target:D.clearCoat,propertyName:"tintThickness",minimum:0,maximum:20,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.clearCoat.isEnabled&&D.clearCoat.isTintEnabled&&(0,h.jsx)(R.TextureLinkLineComponent,{label:"Tint",texture:D.clearCoat.tintTexture,onTextureCreated:V=>D.clearCoat.tintTexture=V,onTextureRemoved:()=>D.clearCoat.tintTexture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable})]})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"IRIDESCENCE",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:D.iridescence,propertyName:"isEnabled",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.iridescence.isEnabled&&(0,h.jsxs)("div",{className:"fragment",children:[(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Intensity",target:D.iridescence,propertyName:"intensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"IOR",target:D.iridescence,propertyName:"indexOfRefraction",minimum:1,maximum:3,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Min Thickness",target:D.iridescence,propertyName:"minimumThickness",minimum:0,maximum:1e3,step:10,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Max Thickness",target:D.iridescence,propertyName:"maximumThickness",minimum:0,maximum:1e3,step:10,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Iridescence",texture:D.iridescence.texture,onTextureCreated:V=>D.iridescence.texture=V,onTextureRemoved:()=>D.iridescence.texture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Thickness",texture:D.iridescence.thicknessTexture,onTextureCreated:V=>D.iridescence.thicknessTexture=V,onTextureRemoved:()=>D.iridescence.thicknessTexture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable})]})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"ANISOTROPIC",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:D.anisotropy,propertyName:"isEnabled",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.anisotropy.isEnabled&&(0,h.jsxs)("div",{className:"fragment",children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Legacy Mode",target:D.anisotropy,propertyName:"legacy",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Intensity",target:D.anisotropy,propertyName:"intensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(I.Vector2LineComponent,{lockObject:this.props.lockObject,label:"Direction",target:D.anisotropy,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Anisotropic",texture:D.anisotropy.texture,onTextureCreated:V=>D.anisotropy.texture=V,onTextureRemoved:()=>D.anisotropy.texture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable})]})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"SHEEN",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:D.sheen,propertyName:"isEnabled",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.sheen.isEnabled&&(0,h.jsxs)("div",{className:"fragment",children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Link to Albedo",target:D.sheen,propertyName:"linkSheenWithAlbedo",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Intensity",target:D.sheen,propertyName:"intensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Color",target:D.sheen,propertyName:"color",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Sheen",texture:D.sheen.texture,onTextureCreated:V=>D.sheen.texture=V,onTextureRemoved:()=>D.sheen.texture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Roughness",texture:D.sheen.textureRoughness,onTextureCreated:V=>D.sheen.textureRoughness=V,onTextureRemoved:()=>D.sheen.textureRoughness=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use roughness",target:D.sheen,propertyName:"_useRoughness"}),D.sheen._useRoughness&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Roughness",target:D.sheen,propertyName:"roughness",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use roughness from main texture",target:D.sheen,propertyName:"useRoughnessFromMainTexture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Albedo scaling",target:D.sheen,propertyName:"albedoScaling",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"SUBSURFACE",selection:this.props.globalState,children:[(0,h.jsx)(R.TextureLinkLineComponent,{label:"Thickness",texture:D.subSurface.thicknessTexture,onTextureCreated:V=>D.subSurface.thicknessTexture=V,onTextureRemoved:()=>D.subSurface.thicknessTexture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Min Thickness",target:D.subSurface,propertyName:"minimumThickness",minimum:0,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Max Thickness",target:D.subSurface,propertyName:"maximumThickness",minimum:0,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Mask From Thickness",target:D.subSurface,propertyName:"useMaskFromThicknessTexture",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"glTF-Style Textures",target:D.subSurface,propertyName:"useGltfStyleTextures",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use Thickness as Depth",target:D.subSurface,propertyName:"useThicknessAsDepth",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Tint Color",target:D.subSurface,propertyName:"tintColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Scattering Enabled",target:D.subSurface,propertyName:"isScatteringEnabled",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.subSurface.isScatteringEnabled&&D.getScene().prePassRenderer&&D.getScene().subSurfaceConfiguration&&(0,h.jsx)("div",{className:"fragment",children:(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Meters per unit",target:D.getScene().subSurfaceConfiguration,propertyName:"metersPerUnit",minimum:.01,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Refraction Enabled",target:D.subSurface,propertyName:"isRefractionEnabled",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.subSurface.isRefractionEnabled&&(0,h.jsxs)("div",{className:"fragment",children:[(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Intensity",target:D.subSurface,propertyName:"refractionIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Refraction Intensity",texture:D.subSurface.refractionIntensityTexture,onTextureCreated:V=>D.subSurface.refractionIntensityTexture=V,onTextureRemoved:()=>D.subSurface.refractionIntensityTexture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Refraction",texture:D.subSurface.refractionTexture,onTextureCreated:V=>D.subSurface.refractionTexture=V,onTextureRemoved:()=>D.subSurface.refractionTexture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Volume Index of Refraction",target:D.subSurface,propertyName:"volumeIndexOfRefraction",minimum:1,maximum:3,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Tint at Distance",target:D.subSurface,propertyName:"tintColorAtDistance",minimum:0,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Link refraction with transparency",target:D.subSurface,propertyName:"linkRefractionWithTransparency",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use albedo to tint surface transparency",target:D.subSurface,propertyName:"useAlbedoToTintRefraction",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Dispersion Enabled",target:D.subSurface,propertyName:"isDispersionEnabled",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.subSurface.isDispersionEnabled&&(0,h.jsx)("div",{className:"fragment",children:(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Intensity",target:D.subSurface,propertyName:"dispersion",minimum:0,maximum:5,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Translucency Enabled",target:D.subSurface,propertyName:"isTranslucencyEnabled",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.subSurface.isTranslucencyEnabled&&(0,h.jsxs)("div",{className:"fragment",children:[(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Intensity",target:D.subSurface,propertyName:"translucencyIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Intensity",texture:D.subSurface.translucencyIntensityTexture,onTextureCreated:V=>D.subSurface.translucencyIntensityTexture=V,onTextureRemoved:()=>D.subSurface.translucencyIntensityTexture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Diffusion Distance",target:D.subSurface,propertyName:"diffusionDistance",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use albedo to tint surface translucency",target:D.subSurface,propertyName:"useAlbedoToTintTranslucency",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Translucency Tint",target:D.subSurface,propertyName:"translucencyColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Translucency Tint",texture:D.subSurface.translucencyColorTexture,onTextureCreated:V=>D.subSurface.translucencyColorTexture=V,onTextureRemoved:()=>D.subSurface.translucencyColorTexture=null,material:D,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable})]})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"LEVELS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Environment",target:D,propertyName:"environmentIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Specular",target:D,propertyName:"specularIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Emissive",target:D,propertyName:"emissiveIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Direct",target:D,propertyName:"directIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.bumpTexture&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Bump strength",target:D.bumpTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.ambientTexture&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Ambient strength",target:D,propertyName:"ambientTextureStrength",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.reflectionTexture&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Reflection strength",target:D.reflectionTexture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.clearCoat.texture&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Clear coat",target:D.clearCoat.texture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.clearCoat.bumpTexture&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Clear coat bump",target:D.clearCoat.bumpTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.clearCoat.tintTexture&&!1,D.anisotropy.texture&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Anisotropic",target:D.anisotropy.texture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.sheen.texture&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Sheen",target:D.sheen.texture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.subSurface.thicknessTexture&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Thickness",target:D.subSurface.thicknessTexture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.subSurface.refractionTexture&&(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Refraction",target:D.subSurface.refractionTexture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.detailMap.isEnabled&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Detailmap diffuse",target:D.detailMap,propertyName:"diffuseBlendLevel",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Detailmap bump",target:D.detailMap,propertyName:"bumpLevel",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Detailmap roughness",target:D.detailMap,propertyName:"roughnessBlendLevel",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"RENDERING",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Alpha from albedo",target:D,propertyName:"useAlphaFromAlbedoTexture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Ambient in grayscale",target:D,propertyName:"useAmbientInGrayScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Radiance over alpha",target:D,propertyName:"useRadianceOverAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Micro-surface from ref. map alpha",target:D,propertyName:"useMicroSurfaceFromReflectivityMapAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Specular over alpha",target:D,propertyName:"useSpecularOverAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Specular anti-aliasing",target:D,propertyName:"enableSpecularAntiAliasing",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Realtime Filtering",target:D,propertyName:"realTimeFiltering",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.OptionsLine,{allowNullValue:!0,label:"Realtime Filtering quality",options:Y,target:D,propertyName:"realTimeFilteringQuality",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"NORMAL MAP",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Invert X axis",target:D,propertyName:"invertNormalMapX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Invert Y axis",target:D,propertyName:"invertNormalMapY",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"ADVANCED",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Energy Conservation",target:D.brdf,propertyName:"useEnergyConservation",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Spherical Harmonics",target:D.brdf,propertyName:"useSphericalHarmonics",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Radiance occlusion",target:D,propertyName:"useRadianceOcclusion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Horizon occlusion ",target:D,propertyName:"useHorizonOcclusion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Mix irradiance with rough radiance",target:D.brdf,propertyName:"mixIblRadianceWithIrradiance",onValueChanged:()=>this.forceUpdate(),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Unlit",target:D,propertyName:"unlit",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"DEBUG",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(T.OptionsLine,{label:"Debug mode",options:k,target:D,propertyName:"debugMode"}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Split position",target:D,propertyName:"debugLimit",minimum:-1,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Output factor",target:D,propertyName:"debugFactor",minimum:0,maximum:5,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/pbrMetallicRoughnessMaterialPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PBRMetallicRoughnessMaterialPropertyGridComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/commonMaterialPropertyGridComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/lines/textureLinkLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class R extends x.Component{constructor(N){super(N),this._onDebugSelectionChangeObservable=new A.Observable}renderTextures(){const N=this.props.material,w=this._onDebugSelectionChangeObservable;return(0,h.jsxs)(S.LineContainerComponent,{title:"TEXTURES",selection:this.props.globalState,children:[(0,h.jsx)(T.TextureLinkLineComponent,{label:"Base",texture:N.baseTexture,propertyName:"baseTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Metallic roughness",texture:N.metallicRoughnessTexture,propertyName:"metallicRoughnessTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Normal",texture:N.normalTexture,propertyName:"normalTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Environment",texture:N.environmentTexture,propertyName:"environmentTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Emissive",texture:N.emissiveTexture,propertyName:"emissiveTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Lightmap",texture:N.lightmapTexture,propertyName:"lightmapTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w})]})}render(){const N=this.props.material;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(M.CommonMaterialPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:N,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.renderTextures(),(0,h.jsxs)(S.LineContainerComponent,{title:"LIGHTING & COLORS",selection:this.props.globalState,children:[(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Base",target:N,propertyName:"baseColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Emissive",target:N,propertyName:"emissiveColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"LEVELS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Metallic",target:N,propertyName:"metallic",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Roughness",target:N,propertyName:"roughness",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"NORMAL MAP",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(O.CheckBoxLineComponent,{label:"Invert X axis",target:N,propertyName:"invertNormalMapX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.CheckBoxLineComponent,{label:"Invert Y axis",target:N,propertyName:"invertNormalMapY",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/pbrSpecularGlossinessMaterialPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PBRSpecularGlossinessMaterialPropertyGridComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/commonMaterialPropertyGridComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/lines/textureLinkLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class R extends x.Component{constructor(N){super(N),this._onDebugSelectionChangeObservable=new A.Observable}renderTextures(){const N=this.props.material,w=this._onDebugSelectionChangeObservable;return(0,h.jsxs)(S.LineContainerComponent,{title:"TEXTURES",selection:this.props.globalState,children:[(0,h.jsx)(T.TextureLinkLineComponent,{label:"Diffuse",texture:N.diffuseTexture,propertyName:"diffuseTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Specular glossiness",texture:N.specularGlossinessTexture,propertyName:"specularGlossinessTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Normal",texture:N.normalTexture,propertyName:"normalTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Environment",texture:N.environmentTexture,propertyName:"environmentTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Emissive",texture:N.emissiveTexture,propertyName:"emissiveTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Lightmap",texture:N.lightmapTexture,propertyName:"lightmapTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w})]})}render(){const N=this.props.material;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(M.CommonMaterialPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:N,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.renderTextures(),(0,h.jsxs)(S.LineContainerComponent,{title:"LIGHTING & COLORS",selection:this.props.globalState,children:[(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Diffuse",target:N,propertyName:"diffuseColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Specular",target:N,propertyName:"specularColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0})]}),(0,h.jsx)(S.LineContainerComponent,{title:"LEVELS",closed:!0,selection:this.props.globalState,children:(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Glossiness",target:N,propertyName:"glossiness",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}),(0,h.jsxs)(S.LineContainerComponent,{title:"NORMAL MAP",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(O.CheckBoxLineComponent,{label:"Invert X axis",target:N,propertyName:"invertNormalMapX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.CheckBoxLineComponent,{label:"Invert Y axis",target:N,propertyName:"invertNormalMapY",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/skyMaterialPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SkyMaterialPropertyGridComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/commonMaterialPropertyGridComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js");class T extends x.Component{constructor(R){super(R)}renderSky(){const R=this.props.material,I=[{label:"Azimuth",property:"azimuth",minimum:0,maximum:Math.PI*2,step:.001},{label:"Inclination",property:"inclination",minimum:0,maximum:Math.PI/2,step:.001},{label:"Turbidity",property:"turbidity",minimum:0,maximum:100,step:.1},{label:"Luminance",property:"luminance",minimum:0,maximum:1,step:.001},{label:"Rayleigh",property:"rayleigh",minimum:0,maximum:4,step:.001},{label:"mieDirectionalG",property:"mieDirectionalG",minimum:0,maximum:1,step:.001},{label:"mieCoefficient",property:"mieCoefficient",minimum:0,maximum:1,step:.001},{label:"Distance",property:"distance",minimum:0,maximum:1e3,step:.1}],N=[{label:"Sun pos",property:"sunPosition"},{label:"Camera offset",property:"cameraOffset"}];return(0,h.jsxs)(A.LineContainerComponent,{title:"SKY",selection:this.props.globalState,children:[I.map(w=>(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,label:w.label,target:R,propertyName:w.property,minimum:w.minimum,maximum:w.maximum,step:w.step,onPropertyChangedObservable:this.props.onPropertyChangedObservable})),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Use sun pos",target:R,propertyName:"useSunPosition",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.map(w=>(0,h.jsx)(M.Vector3LineComponent,{lockObject:this.props.lockObject,label:w.label,target:R,propertyName:w.property,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))]})}render(){const R=this.props.material;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(b.CommonMaterialPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:R,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.renderSky()]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/standardMaterialPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{StandardMaterialPropertyGridComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/commonMaterialPropertyGridComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/lines/textureLinkLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class R extends x.Component{constructor(N){super(N),this._onDebugSelectionChangeObservable=new A.Observable}renderTextures(){const N=this.props.material,w=this._onDebugSelectionChangeObservable;return(0,h.jsxs)(S.LineContainerComponent,{title:"TEXTURES",selection:this.props.globalState,children:[(0,h.jsx)(T.TextureLinkLineComponent,{label:"Diffuse",texture:N.diffuseTexture,propertyName:"diffuseTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Specular",texture:N.specularTexture,propertyName:"specularTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Reflection",texture:N.reflectionTexture,propertyName:"reflectionTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Refraction",texture:N.refractionTexture,propertyName:"refractionTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Emissive",texture:N.emissiveTexture,propertyName:"emissiveTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Bump",texture:N.bumpTexture,propertyName:"bumpTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Opacity",texture:N.opacityTexture,propertyName:"opacityTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Ambient",texture:N.ambientTexture,propertyName:"ambientTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Lightmap",texture:N.lightmapTexture,propertyName:"lightmapTexture",material:N,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(T.TextureLinkLineComponent,{label:"Detailmap",texture:N.detailMap.texture,material:N,onTextureCreated:D=>N.detailMap.texture=D,onTextureRemoved:()=>N.detailMap.texture=null,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:w}),(0,h.jsx)(O.CheckBoxLineComponent,{label:"Use lightmap as shadowmap",target:N,propertyName:"useLightmapAsShadowmap",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.CheckBoxLineComponent,{label:"Use detailmap",target:N.detailMap,propertyName:"isEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.decalMap&&(0,h.jsx)(O.CheckBoxLineComponent,{label:"Use decalmap",target:N.decalMap,propertyName:"isEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}render(){const N=this.props.material;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(M.CommonMaterialPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:N,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.renderTextures(),(0,h.jsxs)(S.LineContainerComponent,{title:"LIGHTING & COLORS",selection:this.props.globalState,children:[(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Diffuse",target:N,propertyName:"diffuseColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Specular",target:N,propertyName:"specularColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Specular power",target:N,propertyName:"specularPower",minimum:0,maximum:128,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Emissive",target:N,propertyName:"emissiveColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Ambient",target:N,propertyName:"ambientColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.CheckBoxLineComponent,{label:"Use specular over alpha",target:N,propertyName:"useSpecularOverAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"LEVELS",closed:!0,selection:this.props.globalState,children:[N.diffuseTexture&&(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Diffuse level",target:N.diffuseTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.specularTexture&&(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Specular level",target:N.specularTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.reflectionTexture&&(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Reflection level",target:N.reflectionTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.refractionTexture&&(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Refraction level",target:N.refractionTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.emissiveTexture&&(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Emissive level",target:N.emissiveTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.bumpTexture&&(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Bump level",target:N.bumpTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.opacityTexture&&(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Opacity level",target:N.opacityTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.ambientTexture&&(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Ambient level",target:N.ambientTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.lightmapTexture&&(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Lightmap level",target:N.lightmapTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),N.detailMap.isEnabled&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Detailmap diffuse",target:N.detailMap,propertyName:"diffuseBlendLevel",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Detailmap bump",target:N.detailMap,propertyName:"bumpLevel",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"NORMAL MAP",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(O.CheckBoxLineComponent,{label:"Invert X axis",target:N,propertyName:"invertNormalMapX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.CheckBoxLineComponent,{label:"Invert Y axis",target:N,propertyName:"invertNormalMapY",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/texturePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TexturePropertyGridComponent:()=>W});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/lines/textureLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),I=d("../../../dev/sharedUiComponents/dist/lines/fileButtonLineComponent.js"),N=d("../../../dev/sharedUiComponents/dist/lines/valueLineComponent.js"),w=d("gui/2D/adtInstrumentation"),D=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.js"),k=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),Y=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),V=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/animationPropertyGridComponent.js"),ee=d("../../../dev/inspector/dist/components/popupComponent.js"),K=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditorComponent.js"),ie=d("../../../dev/inspector/dist/components/sceneExplorer/entities/gui/guiTools.js");const ne=[{label:"Alpha",normalizable:0,value:A.Constants.TEXTUREFORMAT_ALPHA},{label:"Luminance",normalizable:0,value:A.Constants.TEXTUREFORMAT_LUMINANCE},{label:"Luminance/Alpha",normalizable:0,value:A.Constants.TEXTUREFORMAT_LUMINANCE_ALPHA},{label:"RGB",normalizable:1,value:A.Constants.TEXTUREFORMAT_RGB},{label:"RGBA",normalizable:1,value:A.Constants.TEXTUREFORMAT_RGBA},{label:"R (red)",normalizable:1,value:A.Constants.TEXTUREFORMAT_RED},{label:"RG (red/green)",normalizable:1,value:A.Constants.TEXTUREFORMAT_RG},{label:"R (red) integer",normalizable:0,value:A.Constants.TEXTUREFORMAT_RED_INTEGER},{label:"RG (red/green) integer",normalizable:0,value:A.Constants.TEXTUREFORMAT_RG_INTEGER},{label:"RGB integer",normalizable:0,value:A.Constants.TEXTUREFORMAT_RGB_INTEGER},{label:"RGBA integer",normalizable:0,value:A.Constants.TEXTUREFORMAT_RGBA_INTEGER},{label:"BGRA",normalizable:1,value:A.Constants.TEXTUREFORMAT_BGRA},{label:"Depth24/Stencil8",normalizable:0,hideType:!0,value:A.Constants.TEXTUREFORMAT_DEPTH24_STENCIL8},{label:"Depth32 float",normalizable:0,hideType:!0,value:A.Constants.TEXTUREFORMAT_DEPTH32_FLOAT},{label:"Depth16",normalizable:0,value:A.Constants.TEXTUREFORMAT_DEPTH16},{label:"Depth24",normalizable:0,value:A.Constants.TEXTUREFORMAT_DEPTH24},{label:"Depth24Unorm/Stencil8",normalizable:0,hideType:!0,value:A.Constants.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8},{label:"Depth32Float/Stencil8",normalizable:0,hideType:!0,value:A.Constants.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8},{label:"RGBA BPTC UNorm",normalizable:0,compressed:!0,value:A.Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM},{label:"RGB BPTC UFloat",normalizable:0,compressed:!0,value:A.Constants.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT},{label:"RGB BPTC SFloat",normalizable:0,compressed:!0,value:A.Constants.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT},{label:"RGBA S3TC DXT5",normalizable:0,compressed:!0,value:A.Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5},{label:"RGBA S3TC DXT3",normalizable:0,compressed:!0,value:A.Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3},{label:"RGBA S3TC DXT1",normalizable:0,compressed:!0,value:A.Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1},{label:"RGB S3TC DXT1",normalizable:0,compressed:!0,value:A.Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1},{label:"RGBA ASTC 4x4",normalizable:0,compressed:!0,value:A.Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4}],te=[{label:"unsigned byte",normalizable:1,value:A.Constants.TEXTURETYPE_UNSIGNED_BYTE},{label:"32-bit float",normalizable:0,value:A.Constants.TEXTURETYPE_FLOAT},{label:"16-bit float",normalizable:0,value:A.Constants.TEXTURETYPE_HALF_FLOAT},{label:"signed byte",normalizable:1,value:A.Constants.TEXTURETYPE_BYTE},{label:"signed short",normalizable:0,value:A.Constants.TEXTURETYPE_SHORT},{label:"unsigned short",normalizable:0,value:A.Constants.TEXTURETYPE_UNSIGNED_SHORT},{label:"signed int",normalizable:0,value:A.Constants.TEXTURETYPE_INT},{label:"unsigned int",normalizable:0,value:A.Constants.TEXTURETYPE_UNSIGNED_INTEGER},{label:"unsigned 4/4/4/4 short",normalizable:0,value:A.Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4},{label:"unsigned 5/5/5/1 short",normalizable:0,value:A.Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1},{label:"unsigned 5/6/5 short",normalizable:0,value:A.Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5},{label:"unsigned 2/10/10/10 int",normalizable:0,value:A.Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV},{label:"unsigned 24/8 int",normalizable:0,value:A.Constants.TEXTURETYPE_UNSIGNED_INT_24_8},{label:"unsigned 10f/11f/11f int",normalizable:0,value:A.Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV},{label:"unsigned 5/9/9/9 int",normalizable:0,value:A.Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV},{label:"32-bits with only 8-bit used (stencil)",normalizable:0,value:A.Constants.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV}];class W extends x.Component{constructor(re){super(re),this._textureInspectorSize={width:1024,height:490},this.state={isTextureEditorOpen:!1,textureEditing:null};const oe=this.props.texture;if(this._textureLineRef=x.createRef(),this._popoutWindowRef=x.createRef(),!oe||!oe.rootContainer)return;const X=oe;this._adtInstrumentation=new w.AdvancedDynamicTextureInstrumentation(X),this._adtInstrumentation.captureRenderTime=!0,this._adtInstrumentation.captureLayoutTime=!0,this.onOpenTextureEditor.bind(this),this.onCloseTextureEditor.bind(this),this.openTextureEditor.bind(this)}componentWillUnmount(){this._adtInstrumentation&&(this._adtInstrumentation.dispose(),this._adtInstrumentation=null)}updateTexture(re){const oe=this.props.texture;A.Tools.ReadFile(re,X=>{const se=new Blob([X],{type:"octet/stream"}),ue=new FileReader;ue.readAsDataURL(se),ue.onloadend=()=>{const he=ue.result;if(oe.isCube){let fe;re.name.toLowerCase().indexOf(".dds")>0?fe=".dds":re.name.toLowerCase().indexOf(".env")>0&&(fe=".env"),oe.updateURL(he,fe,()=>this.forceRefresh())}else oe.updateURL(he,null,()=>this.forceRefresh())}},void 0,!0)}openTextureEditor(){if(this.state.isTextureEditorOpen){this.onCloseTextureEditor(()=>this.openTextureEditor());return}this.setState({isTextureEditorOpen:!0,textureEditing:this.props.texture})}onOpenTextureEditor(){}onCloseTextureEditor(re){this.setState({isTextureEditorOpen:!1,textureEditing:null},re)}forceRefresh(){this.forceUpdate(),this._textureLineRef.current.updatePreview()}findTextureFormat(re){for(let oe=0;oe<ne.length;++oe)if(ne[oe].value===re)return ne[oe];return null}findTextureType(re){for(let oe=0;oe<te.length;++oe)if(te[oe].value===re)return te[oe];return null}render(){var ct,nt,at,xt,Qe,kt,ot;const re=this.props.texture,oe=re,X=[{label:"Nearest",value:A.Texture.NEAREST_NEAREST},{label:"Linear",value:A.Texture.LINEAR_LINEAR},{label:"Linear & linear mip",value:A.Texture.LINEAR_LINEAR_MIPLINEAR},{label:"Linear & nearest mip",value:A.Texture.LINEAR_LINEAR_MIPNEAREST},{label:"Nearest & linear mip",value:A.Texture.NEAREST_NEAREST_MIPLINEAR},{label:"Nearest & nearest mip",value:A.Texture.NEAREST_NEAREST_MIPNEAREST},{label:"Nearest/Linear",value:A.Texture.NEAREST_LINEAR},{label:"Nearest/Linear & linear mip",value:A.Texture.NEAREST_LINEAR_MIPLINEAR},{label:"Nearest/Linear & nearest mip",value:A.Texture.NEAREST_LINEAR_MIPNEAREST},{label:"Linear/Nearest",value:A.Texture.LINEAR_NEAREST},{label:"Linear/Nearest & linear mip",value:A.Texture.LINEAR_NEAREST_MIPLINEAR},{label:"Linear/Nearest & nearest mip",value:A.Texture.LINEAR_NEAREST_MIPNEAREST}],se=[{label:"Explicit",value:A.Texture.EXPLICIT_MODE},{label:"Cubic",value:A.Texture.CUBIC_MODE},{label:"Inverse cubic",value:A.Texture.INVCUBIC_MODE},{label:"Equirectangular",value:A.Texture.EQUIRECTANGULAR_MODE},{label:"Fixed equirectangular",value:A.Texture.FIXED_EQUIRECTANGULAR_MODE},{label:"Fixed equirectangular mirrored",value:A.Texture.FIXED_EQUIRECTANGULAR_MIRRORED_MODE},{label:"Planar",value:A.Texture.PLANAR_MODE},{label:"Projection",value:A.Texture.PROJECTION_MODE},{label:"Skybox",value:A.Texture.SKYBOX_MODE},{label:"Spherical",value:A.Texture.SPHERICAL_MODE}],ue=((ct=re._texture)==null?void 0:ct.format)??-2,he=((nt=re._texture)==null?void 0:nt.type)??-2,fe=this.findTextureFormat(ue===-1?A.Constants.TEXTUREFORMAT_RGBA:ue),Ae=this.findTextureType(he===-1?A.Constants.TEXTURETYPE_UNSIGNED_BYTE:he),Se=re instanceof A.MultiRenderTarget?"MultiRenderTarget":re instanceof A.RenderTargetTexture?"RenderTargetTexture":re.getClassName(),we=re instanceof A.MultiRenderTarget?re.count:-1,ke=re.isRenderTarget&&((at=oe.renderTarget)!=null&&at._depthStencilTexture)?this.findTextureFormat(oe.renderTarget._depthStencilTexture.format):null;let st="";const Ve=re.url,Ke=!Ve||Ve.substring(0,4)==="data"||Ve.substring(0,4)==="blob"?"":Ve;if(Ke)for(let At=Ke.length-1;At>=0&&Ke[At]!==".";At--)st=Ke[At]+st;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(S.LineContainerComponent,{title:"PREVIEW",selection:this.props.globalState,children:[(0,h.jsx)(T.TextureLineComponent,{ref:this._textureLineRef,texture:re,width:256,height:256,globalState:this.props.globalState}),(0,h.jsx)(I.FileButtonLine,{label:"Load texture from file",onClick:At=>this.updateTexture(At),accept:".jpg, .png, .tga, .dds, .env, .exr"}),(0,h.jsx)(k.ButtonLineComponent,{label:"Edit",onClick:()=>{this.props.texture instanceof w.AdvancedDynamicTexture?(0,ie.EditAdvancedDynamicTexture)(this.props.texture):this.openTextureEditor()}}),(0,h.jsx)(Y.TextInputLineComponent,{label:"URL",value:Ke,lockObject:this.props.lockObject,onChange:At=>{re.updateURL(At),this.forceRefresh()}})]}),this.state.isTextureEditorOpen&&(0,h.jsx)(ee.PopupComponent,{id:"texture-editor",title:"Texture Inspector",size:this._textureInspectorSize,onOpen:this.onOpenTextureEditor,onClose:()=>this.onCloseTextureEditor,ref:this._popoutWindowRef,children:(0,h.jsx)(K.TextureEditorComponent,{texture:this.props.texture,url:Ke,window:this._popoutWindowRef,onUpdate:()=>this.forceRefresh()})}),(0,h.jsx)(D.CustomPropertyGridComponent,{globalState:this.props.globalState,target:re,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(Y.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Display name",target:re,propertyName:"displayName",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextLineComponent,{label:"Width",value:re.getSize().width.toString()}),(0,h.jsx)(b.TextLineComponent,{label:"Height",value:re.getSize().height.toString()}),re.is2DArray&&(0,h.jsx)(b.TextLineComponent,{label:"Layers",value:((xt=re._texture)==null?void 0:xt.depth.toString())??"?"}),re.is3D&&(0,h.jsx)(b.TextLineComponent,{label:"Depth",value:((Qe=re._texture)==null?void 0:Qe.depth.toString())??"?"}),re.isRenderTarget&&(0,h.jsx)(k.ButtonLineComponent,{label:"Scale up",onClick:()=>{const At=re.getScene();re.scale(2),setTimeout(()=>{this.props.globalState.onSelectionChangedObservable.notifyObservers(At.getTextureByUniqueId(re.uniqueId))})}}),re.isRenderTarget&&(0,h.jsx)(k.ButtonLineComponent,{label:"Scale down",onClick:()=>{const At=re.getScene();re.scale(.5),setTimeout(()=>{this.props.globalState.onSelectionChangedObservable.notifyObservers(At.getTextureByUniqueId(re.uniqueId))})}}),(0,h.jsx)(b.TextLineComponent,{label:"Format",value:(fe==null?void 0:fe.label)??"unknown"}),!(fe!=null&&fe.hideType)&&!(fe!=null&&fe.compressed)&&(0,h.jsx)(b.TextLineComponent,{label:"Type",value:(Ae==null?void 0:Ae.label)??"unknown"}),!!(fe!=null&&fe.normalizable)&&!(fe!=null&&fe.compressed)&&!!(Ae!=null&&Ae.normalizable)&&(0,h.jsx)(b.TextLineComponent,{label:"Normalized",value:Ae.normalizable?"Yes":"No"}),(0,h.jsx)(b.TextLineComponent,{label:"Is compressed",value:fe!=null&&fe.compressed?"Yes":"No"}),(0,h.jsx)(b.TextLineComponent,{label:"Use sRGB buffers",value:(kt=re._texture)!=null&&kt._useSRGBBuffer?"Yes":"No"}),(0,h.jsx)(b.TextLineComponent,{label:"Is Gamma space",value:re.gammaSpace?"Yes":"No"}),st&&(0,h.jsx)(b.TextLineComponent,{label:"File format",value:st}),(0,h.jsx)(b.TextLineComponent,{label:"Unique ID",value:re.uniqueId.toString()}),(0,h.jsx)(b.TextLineComponent,{label:"Internal Unique ID",value:(((ot=re._texture)==null?void 0:ot.uniqueId)??"N/A").toString()}),(0,h.jsx)(b.TextLineComponent,{label:"Class",value:Se}),we>=0&&(0,h.jsx)(b.TextLineComponent,{label:"Number of textures",value:we.toString()}),(0,h.jsx)(b.TextLineComponent,{label:"Has alpha",value:re.hasAlpha?"Yes":"No"}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Get alpha from RGB",target:re,propertyName:"getAlphaFromRGB",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextLineComponent,{label:"Is 3D",value:re.is3D?"Yes":"No"}),(0,h.jsx)(b.TextLineComponent,{label:"Is 2D array",value:re.is2DArray?"Yes":"No"}),(0,h.jsx)(b.TextLineComponent,{label:"Is cube",value:re.isCube?"Yes":"No"}),(0,h.jsx)(b.TextLineComponent,{label:"Is render target",value:re.isRenderTarget?"Yes":"No"}),re.isRenderTarget&&(0,h.jsx)(b.TextLineComponent,{label:"Depth/stencil texture format",value:(ke==null?void 0:ke.label)??"no"}),re instanceof A.Texture&&(0,h.jsx)(b.TextLineComponent,{label:"Stored as inverted on Y",value:re.invertY?"Yes":"No"}),(0,h.jsx)(b.TextLineComponent,{label:"Has mipmaps",value:re.noMipmap?"No":"Yes"}),(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,label:"UV set",target:re,propertyName:"coordinatesIndex",minimum:0,maximum:3,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable,decimalCount:0}),(0,h.jsx)(R.OptionsLine,{label:"Mode",options:se,target:re,propertyName:"coordinatesMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:At=>re.coordinatesMode=At}),(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,label:"Level",target:re,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),re.updateSamplingMode&&(0,h.jsx)(R.OptionsLine,{label:"Sampling",options:X,target:re,noDirectUpdate:!0,propertyName:"samplingMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:At=>re.updateSamplingMode(At)})]}),re.getScene()&&(0,h.jsx)(V.AnimationGridComponent,{globalState:this.props.globalState,animatable:re,scene:re.getScene(),lockObject:this.props.lockObject}),re.rootContainer&&this._adtInstrumentation&&(0,h.jsxs)(S.LineContainerComponent,{title:"ADVANCED TEXTURE PROPERTIES",selection:this.props.globalState,children:[(0,h.jsx)(N.ValueLineComponent,{label:"Last layout time",value:this._adtInstrumentation.renderTimeCounter.current,units:"ms"}),(0,h.jsx)(N.ValueLineComponent,{label:"Last render time",value:this._adtInstrumentation.layoutTimeCounter.current,units:"ms"}),(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,label:"Render scale",minimum:.1,maximum:5,step:.1,target:re,propertyName:"renderScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Premultiply alpha",target:re,propertyName:"premulAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.FloatLineComponent,{lockObject:this.props.lockObject,label:"Ideal width",target:re,propertyName:"idealWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.FloatLineComponent,{lockObject:this.props.lockObject,label:"Ideal height",target:re,propertyName:"idealHeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Use smallest ideal",target:re,propertyName:"useSmallestIdeal",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Render at ideal size",target:re,propertyName:"renderAtIdealSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Invalidate Rect optimization",target:re,propertyName:"useInvalidateRectOptimization",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"TRANSFORM",selection:this.props.globalState,children:[!re.isCube&&(0,h.jsxs)("div",{children:[(0,h.jsx)(O.FloatLineComponent,{lockObject:this.props.lockObject,label:"U offset",target:re,propertyName:"uOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.FloatLineComponent,{lockObject:this.props.lockObject,label:"V offset",target:re,propertyName:"vOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.FloatLineComponent,{lockObject:this.props.lockObject,label:"U scale",target:re,propertyName:"uScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.FloatLineComponent,{lockObject:this.props.lockObject,label:"V scale",target:re,propertyName:"vScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.FloatLineComponent,{lockObject:this.props.lockObject,label:"U angle",useEuler:this.props.globalState.onlyUseEulers,target:re,propertyName:"uAng",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.FloatLineComponent,{lockObject:this.props.lockObject,label:"V angle",useEuler:this.props.globalState.onlyUseEulers,target:re,propertyName:"vAng",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.FloatLineComponent,{lockObject:this.props.lockObject,label:"W angle",useEuler:this.props.globalState.onlyUseEulers,target:re,propertyName:"wAng",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Clamp U",isSelected:()=>re.wrapU===A.Texture.CLAMP_ADDRESSMODE,onSelect:At=>re.wrapU=At?A.Texture.CLAMP_ADDRESSMODE:A.Texture.WRAP_ADDRESSMODE}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Clamp V",isSelected:()=>re.wrapV===A.Texture.CLAMP_ADDRESSMODE,onSelect:At=>re.wrapV=At?A.Texture.CLAMP_ADDRESSMODE:A.Texture.WRAP_ADDRESSMODE})]}),re.isCube&&(0,h.jsx)("div",{children:(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,label:"Rotation Y",useEuler:this.props.globalState.onlyUseEulers,minimum:0,maximum:2*Math.PI,step:.1,target:re,propertyName:"rotationY"})})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/babylonLogo.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOm5vbmU7fS5jbHMtMntmaWxsOiNlMDY4NGI7fS5jbHMtM3tmaWxsOiNiYjQ2NGI7fS5jbHMtNHtmaWxsOiNlMGRlZDg7fS5jbHMtNXtmaWxsOiNkNWQyY2E7fS5jbHMtNntmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxnIGlkPSJVSSI+PHJlY3QgY2xhc3M9ImNscy0xIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMzIuOTEgMTMuNzggMjkuNTQgMTEuODQgMjYuMjkgMTMuNzEgMjkuNjYgMTUuNjUgMzIuOTEgMTMuNzgiLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMTQuNjEgMTUuNjUgMjUuMzggOS40NCAyMi4xNCA3LjU3IDExLjM3IDEzLjc4IDE0LjYxIDE1LjY1Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjE4Ljc3IDIxLjk1IDIyLjE0IDIzLjg5IDI1LjUxIDIxLjk1IDIyLjE0IDIwIDE4Ljc3IDIxLjk1Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0zIiBwb2ludHM9IjI5LjY2IDE1LjY1IDI5LjY2IDI0LjM0IDIyLjE0IDI4LjY5IDE0LjYxIDI0LjM0IDE0LjYxIDE1LjY1IDExLjM3IDEzLjc4IDExLjM3IDI2LjIyIDIyLjE0IDMyLjQ0IDMyLjkxIDI2LjIyIDMyLjkxIDEzLjc4IDI5LjY2IDE1LjY1Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0zIiBwb2ludHM9IjIyLjE0IDE2LjExIDE4Ljc3IDE4LjA1IDE4Ljc3IDIxLjk1IDIyLjE0IDIwIDI1LjUxIDIxLjk1IDI1LjUxIDE4LjA1IDIyLjE0IDE2LjExIi8+PHBvbHlnb24gY2xhc3M9ImNscy00IiBwb2ludHM9IjI5LjY2IDE1LjY1IDI1LjUxIDE4LjA1IDI1LjUxIDIxLjk1IDIyLjE0IDIzLjg5IDIyLjE0IDI4LjY5IDI5LjY2IDI0LjM0IDI5LjY2IDE1LjY1Ii8+PHBvbHlnb24gY2xhc3M9ImNscy01IiBwb2ludHM9IjE0LjYxIDE1LjY1IDE4Ljc3IDE4LjA1IDE4Ljc3IDIxLjk1IDIyLjE0IDIzLjg5IDIyLjE0IDI4LjY5IDE0LjYxIDI0LjM0IDE0LjYxIDE1LjY1Ii8+PHBvbHlnb24gY2xhc3M9ImNscy02IiBwb2ludHM9IjI1LjM4IDkuNDQgMjkuNTQgMTEuODQgMjYuMjkgMTMuNzEgMjkuNjYgMTUuNjUgMjUuNTEgMTguMDUgMjIuMTQgMTYuMTEgMTguNzcgMTguMDUgMTQuNjEgMTUuNjUgMjUuMzggOS40NCIvPjwvZz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/channelA.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjAsMzAuNUExMC41LDEwLjUsMCwxLDEsMzAuNSwyMCwxMC41MSwxMC41MSwwLDAsMSwyMCwzMC41Wm0wLTIwQTkuNSw5LjUsMCwxLDAsMjkuNSwyMCw5LjUxLDkuNTEsMCwwLDAsMjAsMTAuNVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMTgsMjIuNTNsLS43OSwyLjM4SDE1bDMuNTEtMTAuMzNoMi44MUwyNSwyNC45MUgyMi42NGwtLjg2LTIuMzhabTMuMy0xLjgzYy0uNzMtMi4xOS0xLjItMy41OS0xLjQ1LTQuNTJoMGMtLjI1LDEtLjc2LDIuNjQtMS4zNSw0LjUyWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/channelB.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjAsMzAuNUExMC41LDEwLjUsMCwxLDEsMzAuNSwyMCwxMC41MSwxMC41MSwwLDAsMSwyMCwzMC41Wm0wLTIwQTkuNSw5LjUsMCwxLDAsMjkuNSwyMCw5LjUxLDkuNTEsMCwwLDAsMjAsMTAuNVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMTYuMTcsMTQuNThoNC41MWMyLjUxLDAsMy40NSwxLjI5LDMuNDUsMi42NGEyLjMxLDIuMzEsMCwwLDEtMS4zMiwyLjIzLDIuNDgsMi40OCwwLDAsMSwxLjYyLDIuMzdjMCwxLjc3LTEuMzksMy4wOS0zLjU4LDMuMDlIMTYuMTdabTQuMjYsNC4wOGMxLjA2LDAsMS41LS40OCwxLjUtMS4yMnMtLjU3LTEuMTQtMS40My0xLjE0SDE4LjM2djIuMzZabS0yLjA3LDQuNTNoMmMxLjIyLDAsMS43Ni0uNTEsMS43Ni0xLjQ0cy0uNTQtMS4zNy0xLjc3LTEuMzdoLTJaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/channelD.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjAsMzAuNUExMC41OCwxMC41OCwwLDEsMSwzMC41NywxOS45MywxMC41OCwxMC41OCwwLDAsMSwyMCwzMC41Wm0wLTE5LjlhOS4zMyw5LjMzLDAsMSwwLDkuMzMsOS4zM0E5LjM0LDkuMzQsMCwwLDAsMjAsMTAuNloiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMTYuMzIsMTQuNTRoNC4wOWE0LjY4LDQuNjgsMCwwLDEsNC45NSw1YzAsMy0xLjkxLDUuMjctNS4wNiw1LjI3aC00Wk0xOC41NCwyM2gxLjY3YzIsMCwyLjg1LTEuNDgsMi44NS0zLjQ4LDAtMS42OS0uODItMy4yMi0yLjgzLTMuMjJIMTguNTRaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/channelG.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjAsMzAuNUExMC41LDEwLjUsMCwxLDEsMzAuNSwyMCwxMC41MSwxMC41MSwwLDAsMSwyMCwzMC41Wm0wLTIwQTkuNSw5LjUsMCwxLDAsMjkuNSwyMCw5LjUxLDkuNTEsMCwwLDAsMjAsMTAuNVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMjQuNiwyNC45MUgyM2E1LjQzLDUuNDMsMCwwLDEtLjE4LTEsMy41LDMuNSwwLDAsMS0zLDEuMmMtMywwLTQuNjgtMi4yOC00LjY4LTUuMjIsMC0zLjEsMS44MS01LjQ0LDUuMDctNS40NCwyLjY1LDAsNC4yMywxLjUsNC40NywzLjI1SDIyLjM5YTIuMDksMi4wOSwwLDAsMC0yLjI2LTEuNTFjLTIuMTMsMC0yLjczLDEuNzgtMi43MywzLjZzLjY5LDMuNTQsMi43NCwzLjU0YTIuMDUsMi4wNSwwLDAsMCwyLjI3LTIuMjVWMjFIMjAuMTRWMTkuMTJIMjQuNloiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/channelR.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjAsMzAuNUExMC41LDEwLjUsMCwxLDEsMzAuNSwyMCwxMC41MSwxMC41MSwwLDAsMSwyMCwzMC41Wm0wLTIwQTkuNSw5LjUsMCwxLDAsMjkuNSwyMCw5LjUxLDkuNTEsMCwwLDAsMjAsMTAuNVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMTguNDUsMjAuNzd2NC4xNEgxNi4yNlYxNC41OGg0LjU1YzIuMjUsMCwzLjQ2LDEuMjMsMy40NiwyLjgzYTIuNSwyLjUsMCwwLDEtMS41LDIuNDVjLjUxLjE5LDEuMjkuNzIsMS4yOSwyLjU4VjIzYTcuNzcsNy43NywwLDAsMCwuMTUsMkgyMi4wOGE3LjM4LDcuMzgsMCwwLDEtLjIxLTIuMzJ2LS4xNWMwLTEuMTMtLjI4LTEuNjctMS45NS0xLjY3Wm0wLTEuNzhoMS44OGMxLjIxLDAsMS42OS0uNDcsMS42OS0xLjMycy0uNTUtMS4zMi0xLjY1LTEuMzJIMTguNDVaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/eyeClosed.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTIuNDIsMTNhLjU3LjU3LDAsMCwwLS4wNi43NWwuMDYuMDcsMy4xMywzLjEzYTcuNjksNy42OSwwLDAsMC0zLjA3LDQuNDUuNTguNTgsMCwwLDAsMS4xMy4yOSw2LjYsNi42LDAsMCwxLDIuNzctMy45MWwxLjQxLDEuNDFhMy4xLDMuMSwwLDAsMCw0LjM4LDQuMzhsNC41OSw0LjU5YS41Ny41NywwLDAsMCwuODIsMCwuNTguNTgsMCwwLDAsLjA2LS43NmwtLjA2LS4wNi00Ljc0LTQuNzRoMGwtLjkzLS45My0yLjIyLTIuMjNoMEwxNy40NiwxNy4yaDBsLS44OC0uODhMMTMuMjQsMTNBLjU3LjU3LDAsMCwwLDEyLjQyLDEzWm02LjE5LDcsMi43NCwyLjc0QTEuOTQsMS45NCwwLDAsMSwxOC42MSwyMFpNMjAsMTUuNTNhNy41NCw3LjU0LDAsMCwwLTIuMjQuMzNsMSwxQTYuNjksNi42OSwwLDAsMSwyMCwxNi42OWE2LjU5LDYuNTksMCwwLDEsNi4zOSw1LC41OS41OSwwLDAsMCwuNzEuNDIuNTguNTgsMCwwLDAsLjQyLS43QTcuNzQsNy43NCwwLDAsMCwyMCwxNS41M1ptLjE1LDIuNzIsMywyLjk1QTMuMTEsMy4xMSwwLDAsMCwyMC4xNSwxOC4yNVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/eyeOpen.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjAsMTguMjdhMy4wOSwzLjA5LDAsMSwxLTMuMDgsMy4wOEEzLjA5LDMuMDksMCwwLDEsMjAsMTguMjdabTAsMS4xNWExLjkzLDEuOTMsMCwxLDAsMS45MywxLjkzQTEuOTQsMS45NCwwLDAsMCwyMCwxOS40MlptMC0zLjg2YTcuNzEsNy43MSwwLDAsMSw3LjQ4LDUuODQuNTguNTgsMCwxLDEtMS4xMi4yOCw2LjU2LDYuNTYsMCwwLDAtMTIuNzIsMCwuNTguNTgsMCwwLDEtMS4xMi0uMjhBNy43Miw3LjcyLDAsMCwxLDIwLDE1LjU2WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/mipDown.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjQuNTMsMTkuNzJsLS4wOC0uMDdhLjc1Ljc1LDAsMCwwLTEsLjA3bC0yLjcyLDIuNzJWMTUuNjVBLjc1Ljc1LDAsMCwwLDIwLDE1aC0uMWEuNzUuNzUsMCwwLDAtLjY1Ljc0djYuNjlsLTIuNzItMi43Mi0uMDgtLjA3YS43NS43NSwwLDAsMC0xLDEuMTNsNCw0LC4wOC4wN2EuNzUuNzUsMCwwLDAsMS0uMDdsNC00LC4wNy0uMDhBLjc1Ljc1LDAsMCwwLDI0LjUzLDE5LjcyWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxwYXRoIGQ9Ik0xMCwyMEExMCwxMCwwLDEsMCwyMCwxMCwxMCwxMCwwLDAsMCwxMCwyMFptMTguNSwwQTguNSw4LjUsMCwxLDEsMjAsMTEuNSw4LjUxLDguNTEsMCwwLDEsMjguNSwyMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/mipUp.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTUuNDcsMjAuMjhsLjA4LjA3YS43NS43NSwwLDAsMCwxLS4wN2wyLjcyLTIuNzJ2Ni43OUEuNzUuNzUsMCwwLDAsMjAsMjVoLjFhLjc1Ljc1LDAsMCwwLC42NS0uNzRWMTcuNTZsMi43MiwyLjcyLjA4LjA3YS43NS43NSwwLDAsMCwxLTEuMTNsLTQtNC0uMDgtLjA3YS43NS43NSwwLDAsMC0xLC4wN2wtNCw0LS4wNy4wOEEuNzUuNzUsMCwwLDAsMTUuNDcsMjAuMjhaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTMwLDIwQTEwLDEwLDAsMSwwLDIwLDMwLDEwLDEwLDAsMCwwLDMwLDIwWk0xMS41LDIwQTguNSw4LjUsMCwxLDEsMjAsMjguNSw4LjUxLDguNTEsMCwwLDEsMTEuNSwyMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/negX.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTcuNzUsMTguNzJ2MS40NUgxNC4zM1YxOC43MloiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMjMuNzUsMjQuNjIsMjIsMjAuNDFoMGwtMS43Nyw0LjIxSDE4LjQ0bDIuNjEtNS41Ny0yLjUyLTUuMjloMS45M2wxLjYzLDMuOGgwbDEuNjUtMy44aDEuNzhMMjMsMTguODdsMi42NCw1Ljc1WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/negY.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTcuNywxOC43MnYxLjQ1SDE0LjI4VjE4LjcyWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxwYXRoIGQ9Ik0yMS4yMSwyNC42MlYyMC42OGEuNjMuNjMsMCwwLDAtLjA3LS4zMmwtMi43My02LjZoMS44N2MuNjYsMS43NiwxLjUsNCwxLjgyLDUuMTMuNC0xLjI0LDEuMjUtMy40NiwxLjg0LTUuMTNoMS43OEwyMywyMC4zN2EuOS45LDAsMCwwLS4wNS4zNHYzLjkxWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/negZ.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTgsMTguNzJ2MS40NUgxNC41NFYxOC43MloiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMTkuMDksMjMuNDNsNC4zNS04LjE4aC00VjEzLjc2aDUuODZ2MS4zNmwtNC4yMiw4aDQuNGwtLjIzLDEuNDhIMTkuMDlaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/posX.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTYuODksMTZ2M2gyLjgydjEuMjdIMTYuODl2M2gtMS4zdi0zSDEyLjc0VjE5aDIuODVWMTZaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTI1LjM0LDI0LjYybC0xLjc1LTQuMjFoMEwyMS44LDI0LjYySDIwbDIuNjEtNS41Ny0yLjUxLTUuMjlIMjJsMS42MywzLjhoMGwxLjY1LTMuOGgxLjc3bC0yLjQ5LDUuMTEsMi42NCw1Ljc1WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/posY.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTYuODQsMTZ2M2gyLjgydjEuMjdIMTYuODR2M2gtMS4zdi0zSDEyLjY5VjE5aDIuODVWMTZaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTIyLjc5LDI0LjYyVjIwLjY4YS42My42MywwLDAsMC0uMDYtLjMyTDIwLDEzLjc2aDEuODdjLjY2LDEuNzYsMS41MSw0LDEuODMsNS4xMy40LTEuMjQsMS4yNS0zLjQ2LDEuODQtNS4xM2gxLjc4bC0yLjc3LDYuNjFhLjczLjczLDAsMCwwLS4wNS4zNHYzLjkxWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/posZ.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTcuMSwxNnYzaDIuODJ2MS4yN0gxNy4xdjNIMTUuODF2LTNIMTNWMTloMi44NVYxNloiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMjAuNjcsMjMuNDMsMjUsMTUuMjVIMjFWMTMuNzZoNS44NnYxLjM2bC00LjIzLDhIMjdsLS4yMiwxLjQ4SDIwLjY3WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg=="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/reset.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTMuNDUsMTEuMzJhLjc4Ljc4LDAsMCwwLS43Ny42NnYzYS43Ny43NywwLDAsMCwuNjYuNzZoM2EuNzguNzgsMCwwLDAsLjc3LS43Ny43Ny43NywwLDAsMC0uNjctLjc2SDE1LjM2YTcuNDMsNy40MywwLDEsMS0yLjY0LDQuMzguNzcuNzcsMCwxLDAtMS41MS0uMjksOSw5LDAsMSwwLDMtNS4xM1YxMi4wOUEuNzYuNzYsMCwwLDAsMTMuNDUsMTEuMzJaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/resizeTool.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTIuNSwyMWEuNS41LDAsMCwxLC41LjVWMjVhMiwyLDAsMCwwLDIsMmgzLjVhLjUuNSwwLDAsMSwwLDFIMTVhMywzLDAsMCwxLTMtM1YyMS41QS41LjUsMCwwLDEsMTIuNSwyMVptMTUsMGEuNS41LDAsMCwxLC40OS40MVYyNWEzLDMsMCwwLDEtMi44MiwzSDIxLjVhLjUuNSwwLDAsMS0uMDktMUgyNWEyLDIsMCwwLDAsMi0xLjg1VjIxLjVBLjUuNSwwLDAsMSwyNy41LDIxWm0tOS05YS41LjUsMCwwLDEsLjA5LDFIMTVhMiwyLDAsMCwwLTIsMS44NVYxOC41YS41LjUsMCwwLDEtMSwuMDlWMTVhMywzLDAsMCwxLDIuODItM0gxOC41Wk0yNSwxMmEzLDMsMCwwLDEsMywyLjgyVjE4LjVhLjUuNSwwLDAsMS0xLC4wOVYxNWEyLDIsMCwwLDAtMS44NS0ySDIxLjVhLjUuNSwwLDAsMS0uMDktMUgyNVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4="},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/save.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjkuMzYsMTguMzlhMi4xOCwyLjE4LDAsMCwxLDAsMy4wOGwtNy45MSw3LjkxYTEuMjIsMS4yMiwwLDAsMS0uODkuMzdoLTEuN2EuODUuODUsMCwwLDEtLjg2LS44NnYtMS43YTEuMjIsMS4yMiwwLDAsMSwuMzctLjg5bDcuOTEtNy45MUEyLjE4LDIuMTgsMCwwLDEsMjkuMzYsMTguMzlaTTMwLDIzLjExVjI3LjVhMi4yNSwyLjI1LDAsMCwxLTIuMjUsMi4yNUgyM2wxLjUtMS41aDMuMjVhLjc2Ljc2LDAsMCwwLC43NS0uNzV2LTNaTTIzLjYzLDEwLjI1YTEuMjMsMS4yMywwLDAsMSwuNzYuMjZMMjkuNjQsMTVhMS4yMSwxLjIxLDAsMCwxLC4zNi45djEuMjNhMi40MywyLjQzLDAsMCwwLS43NS0uNDMsMiwyLDAsMCwwLS43NC0uMVYxNkwyNCwxMi4xNFYxNWExLjc1LDEuNzUsMCwwLDEtMS43NSwxLjc1aC02QTEuNzUsMS43NSwwLDAsMSwxNC41LDE1VjExLjc1SDEyLjI1YS43NS43NSwwLDAsMC0uNzUuNzV2MTVhLjc1Ljc1LDAsMCwwLC43NS43NUgxM1YyMi41MWExLjc1LDEuNzUsMCwwLDEsMS42MS0xLjc0SDIybC0xLjU1LDEuNUgxNC43NWEuMjUuMjUsMCwwLDAtLjI0LjJ2NS43OWgydjEuNUgxMi4yNUEyLjI1LDIuMjUsMCwwLDEsMTAsMjcuNXYtMTVhMi4yNSwyLjI1LDAsMCwxLDIuMjUtMi4yNVptMy43Miw5LjIxLTcuODQsNy44M3YuOTVoLjk1bDcuODMtNy44NGEuNjYuNjYsMCwwLDAtLjk0LS45NFpNMjIuNSwxMS43NUgxNlYxNWEuMjUuMjUsMCwwLDAsLjI1LjI1aDZBLjI1LjI1LDAsMCwwLDIyLjUsMTVaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/upload.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTMuNSwyOC41aDEzYS43Ni43NiwwLDAsMSwuNzUuNzUuNzUuNzUsMCwwLDEtLjY1Ljc0SDEzLjVhLjc1Ljc1LDAsMCwxLS4xLTEuNVptMS0xMy4yOCw1LTVhLjczLjczLDAsMCwxLDEtLjA3bC4wOS4wNyw1LDVhLjc1Ljc1LDAsMCwxLDAsMS4wNi43NS43NSwwLDAsMS0xLC4wN2wtLjA5LS4wNy0zLjcyLTMuNzJWMjYuMjVhLjc1Ljc1LDAsMCwxLS42NS43NEgyMGEuNzUuNzUsMCwwLDEtLjc0LS42NVYxMi41NmwtMy43MiwzLjcyYS43Ni43NiwwLDAsMS0xLC4wN2wtLjA4LS4wN2EuNzUuNzUsMCwwLDEtLjA3LTFsLjA3LS4wOCw1LTVaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+"},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/bottomBar.js":(m,_,d)=>{d.r(_),d.d(_,{BottomBar:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.PureComponent{render(){const E=Math.pow(2,this.props.mipLevel),b=Math.ceil(this.props.texture.getSize().width/E),M=Math.ceil(this.props.texture.getSize().height/E);return(0,h.jsxs)("div",{id:"bottom-bar",children:[(0,h.jsx)("span",{id:"file-url",children:this.props.texture.name}),!this.props.texture.noMipmap&&(0,h.jsxs)("span",{id:"mip-level",children:["MIP Preview: ",this.props.mipLevel," ",b,"x",M]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/canvasShader.js":(m,_,d)=>{d.r(_),d.d(_,{canvasShader:()=>h});const h={path:{vertexSource:`
            precision highp float;

            attribute vec3 position;
            attribute vec2 uv;

            uniform mat4 worldViewProjection;

            varying vec2 vUV;

            void main(void) {
                gl_Position = worldViewProjection * vec4(position, 1.0);
                vUV = uv;
            }
        `,fragmentSource:`
            precision highp float;
    
            uniform sampler2D textureSampler;
    
            uniform bool r;
            uniform bool g;
            uniform bool b;
            uniform bool a;

            uniform int x1;
            uniform int y1;
            uniform int x2;
            uniform int y2;
            uniform int w;
            uniform int h;

            uniform int time;
            uniform bool showGrid;
    
            varying vec2 vUV;

            float scl = 200.0;
            float speed = 10.0 / 1000.0;
            float smoothing = 0.2;
    
            void main(void) {
                vec2 pos2 = vec2(gl_FragCoord.x, gl_FragCoord.y);
                vec2 pos = floor(pos2 * 0.05);
                float pattern = mod(pos.x + pos.y, 2.0); 
                if (pattern == 0.0) {
                    pattern = 0.7;
                }
                vec4 bg = vec4(pattern, pattern, pattern, 1.0);
                vec4 col = texture(textureSampler, vUV);
                if (!r && !g && !b) {
                    if (a) {
                        col = vec4(col.a, col.a, col.a, 1.0);
                    } else {
                        col = vec4(0.0,0.0,0.0,0.0);
                    }
                } else {
                    if (!r) {
                        col.r = 0.0;
                        if (!b) {
                            col.r = col.g;
                        }
                        else if (!g) {
                            col.r = col.b;
                        }
                    }
                    if (!g) {
                        col.g = 0.0;
                        if (!b) {
                            col.g = col.r;
                        }
                        else if (!r) {
                            col.g = col.b;
                        }
                    }
                    if (!b) {
                        col.b = 0.0;
                        if (!r) {
                            col.b = col.g;
                        } else if (!g) {
                            col.b = col.r;
                        }
                    }
                    if (!a) {
                        col.a = 1.0;
                    }
                }
                gl_FragColor = col * (col.a) + bg * (1.0 - col.a);
                float wF = float(w);
                float hF = float(h);
                int xPixel = int(floor(vUV.x * wF));
                int yPixel = int(floor((1.0 - vUV.y) * hF));
                int xDis = min(abs(xPixel - x1), abs(xPixel - x2));
                int yDis = min(abs(yPixel - y1), abs(yPixel - y2));
                if (showGrid) {
                    vec2 frac = fract(vUV * vec2(wF,hF));
                    float thickness = 0.1;
                    if (abs(frac.x) < thickness || abs (frac.y) < thickness) {
                        gl_FragColor = vec4(0.75,0.75,0.75,1.0);
                    }
                }
                if (xPixel >= x1 && yPixel >= y1 && xPixel <= x2 && yPixel <= y2) {
                    if (xDis <= 4 || yDis <= 4) {
                        float c = sin(vUV.x * scl + vUV.y * scl + float(time) * speed);
                        c = smoothstep(-smoothing,smoothing,c);
                        float val = 1.0 - c;
                        gl_FragColor = vec4(val, val, val, 1.0) * 0.7 + gl_FragColor * 0.3;
                    }
                }
            }`},options:{attributes:["position","uv"],uniforms:["worldViewProjection","textureSampler","r","g","b","a","x1","y1","x2","y2","w","h","time","showGrid"]}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/channelsBar.js":(m,_,d)=>{d.r(_),d.d(_,{ChannelsBar:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/eyeOpen.svg"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/eyeClosed.svg");class E extends x.PureComponent{render(){return(0,h.jsx)("div",{id:"channels-bar",children:this.props.channels.map((M,T)=>{const O=M.visible?"Hide":"Show",R=M.editable?"Lock":"Unlock";return(0,h.jsxs)("div",{className:M.editable?"channel":"channel uneditable",children:[(0,h.jsx)("img",{className:M.visible?"icon channel-visibility visible":"icon channel-visibility",onClick:()=>{const I=this.props.channels;I[T].visible=!I[T].visible,this.props.setChannels(I)},src:M.visible?A:S,title:`${O} ${M.name}`}),(0,h.jsx)("img",{className:"icon channel-name",onClick:()=>{const I=this.props.channels;I[T].editable=!I[T].editable,this.props.setChannels(I)},src:M.icon,title:`${R} ${M.name}`})]},M.name)})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/defaultTools.js":(m,_,d)=>{d.r(_),d.d(_,{default:()=>E});var h=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/paintbrush.js"),x=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/eyedropper.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/floodfill.js"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/rectangleSelect.js");const E=[S.RectangleSelect,h.Paintbrush,x.Eyedropper,A.Floodfill]},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/eyedropper.js":(m,_,d)=>{d.r(_),d.d(_,{Eyedropper:()=>x});var h=d("core/Misc/observable");const x={name:"Eyedropper",type:class{constructor(A){this.getParameters=A}pick(A){const{canvas2D:S,setMetadata:E,getMouseCoordinates:b}=this.getParameters(),M=S.getContext("2d"),{x:T,y:O}=b(A),R=M.getImageData(T,O,1,1).data;E({color:h.Color3.FromInts(R[0],R[1],R[2]).toHexString(),alpha:R[3]/255})}setup(){this.pointerObserver=this.getParameters().scene.onPointerObservable.add(A=>{var S;(S=A.pickInfo)!=null&&S.hit&&(A.type===h.PointerEventTypes.POINTERDOWN&&A.event.buttons===1&&this.getParameters().interactionEnabled()&&(this.isPicking=!0,this.pick(A)),this.isPicking&&(A.event.buttons!==1||!this.getParameters().interactionEnabled()?this.isPicking=!1:this.pick(A)))}),this.isPicking=!1}cleanup(){this.pointerObserver&&this.getParameters().scene.onPointerObservable.remove(this.pointerObserver)}},icon:`PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjkuMzIsMTAu
    NjhjLTEuNjYtMS42Ni00LjA2LTEtNS41Ni41YTExLjg5LDExLjg5LDAsMCwwLTEuNjYsMi4zMUwyMiwxMy40MWExLjg5LDEuODksMCwwLDAtMi42NiwwbC0uOS45YTEuODksMS44OSwwLDAsMC0uMjIsMi4zOWwtNi4wOSw2LjA5YTIuNzUsMi43NSwwLDAsMC0uNzMs
    MS4yOGwtLjgxLDMuMjYtLjU2LjU2YTEuMTYsMS4xNiwwLDAsMCwwLDEuNjVsLjQxLjQxYTEuMTcsMS4xNywwLDAsMCwxLjY1LDBsLjU2LS41NiwzLjI2LS44MWEyLjc1LDIuNzUsMCwwLDAsMS4yOC0uNzNsNi4xNC02LjE0YTEuODcsMS44NywwLDAsMCwuODQuMjEs
    MS44MywxLjgzLDAsMCwwLDEuMzMtLjU1bC45LS45YTEuODcsMS44NywwLDAsMCwuMDgtMi41NywxMS41NCwxMS41NCwwLDAsMCwyLjMyLTEuNjZDMzAuMzIsMTQuNzQsMzEsMTIuMzUsMjkuMzIsMTAuNjhaTTE2LjE1LDI2Ljc5YTEuMjEsMS4yMSwwLDAsMS0uNTgu
    MzNMMTIsMjhsLjktMy41OWExLjIxLDEuMjEsMCwwLDEsLjMzLS41OGw2LjA3LTYuMDcsMi45NCwyLjk0Wm05LjIxLTcuMzgtLjkuOWMtLjE5LjItLjM0LjItLjU0LDBsLTQuNC00LjRhLjQuNCwwLDAsMSwwLS41NGwuOS0uOWEuNDMuNDMsMCwwLDEsLjI3LS4xMS4z
    OS4zOSwwLDAsMSwuMjcuMTFsNC40LDQuNEEuMzguMzgsMCwwLDEsMjUuMzYsMTkuNDFabTMuMzgtNS45M2EzLjcsMy43LDAsMCwxLTEsMS43LDExLjY3LDExLjY3LDAsMCwxLTIuMzUsMS42MkwyMy4yLDE0LjU5YTExLjY3LDExLjY3LDAsMCwxLDEuNjItMi4zNSwz
    LjcsMy43LDAsMCwxLDEuNy0xLDEuODMsMS44MywwLDAsMSwyLjIyLDIuMjJaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+`,cursor:"iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAABmJLR0QA/wD/AP+gvaeTAAAByklEQVQ4jbWUv4saQRTHd+4s/BuCYRH1n7BQEhCRuyJ3RQgpRVt/tFvYSAjLxMPiWIJ1OA6OKwKBdCGBkIS4pFs76xgXhOlyyconzSrrojub4l618+a9z/u+mTdrGPdgIk0QwDZBCG3OUerqepYeCgigAbyJ+a+AEyB9lTDxAfBhPp9jWRZh+wB0u11msxnAJyCXSmkI/DIejx9Vq1Ujm83u7OdyOaPRaBi2bVeAr8BDnUIBfJRSUi6XWSwWa+B1VClw6ft+UKlUsG0b4DNw+G6AU8/zME2T5XIZAE9C/xYark983/9rmubmKM6SoNedTofRaARwqenqQkpJr9cDuI3uiYiSvbaZS4Dod1J8JrJIUoUQYgs+FLuplYk79lQ2hBAipvSggH2Vbvr9PlJKgFea2JeO49BqtQDeJgWee55HPp9ntVr9AR6H/vjtV5VSd8Vikel0CvA0CXoEfBsOh9RqNZRSd8CL2JwOlVK/6/X65rVNgWPdEeTX6/XPwWBAqVRiMpnsPFPHcSgUCliWRRAEv4BCIjAKBr67rkuz2dyBttttXNcF+AEUUwEj4GPgGfAu1v574DmQ0UI0BXYuSmepf9L/NZv3Yf8AKtG4imEra4UAAAAASUVORK5CYII="}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/floodfill.js":(m,_,d)=>{d.r(_),d.d(_,{Floodfill:()=>x});var h=d("core/Misc/observable");const x={name:"Floodfill",type:class{constructor(A){this.getParameters=A}async fill(){const{metadata:A,startPainting:S,updatePainting:E,stopPainting:b}=this.getParameters(),M=await S();M.fillStyle=A.color,M.globalAlpha=A.alpha,M.globalCompositeOperation="copy",M.fillRect(0,0,M.canvas.width,M.canvas.height),E(),b()}setup(){this.pointerObserver=this.getParameters().scene.onPointerObservable.add(A=>{var S;A.type===h.PointerEventTypes.POINTERDOWN&&A.event.buttons===1&&this.getParameters().interactionEnabled()&&((S=A.pickInfo)!=null&&S.hit)&&this.fill()})}cleanup(){this.pointerObserver&&this.getParameters().scene.onPointerObservable.remove(this.pointerObserver)}},icon:`PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjAsMTAuNWEu
    NzUuNzUsMCwwLDAtMS41LDB2MS4yNWEyLjE0LDIuMTQsMCwwLDAtLjg0LjUzbC02Ljg4LDYuODhhMi4yNSwyLjI1LDAsMCwwLDAsMy4xOGw0Ljg4LDQuODhhMi4yNSwyLjI1LDAsMCwwLDMuMTgsMGw2Ljg4LTYuODhhMi4yNSwyLjI1LDAsMCwwLDAtMy4xOGwtNC44
    OC00Ljg4YTIuMjksMi4yOSwwLDAsMC0uODQtLjUzWm0tOC4xNiw5LjcyLDYuNjYtNi42NlYxNUEuNzUuNzUsMCwwLDAsMjAsMTVWMTMuNTZsNC42Niw0LjY2YS43NS43NSwwLDAsMSwwLDEuMDZsLTEsMUgxMS44Wm0uNDcsMS41M2g5Ljg4bC00LjQxLDQuNDFhLjc1
    Ljc1LDAsMCwxLTEuMDYsMFoiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMjcuNTEsMjEuODVhLjg4Ljg4LDAsMCwwLTEuNTQsMGwtMiwzLjc3YTMuMTUsMy4xNSwwLDEsMCw1LjU2LDBabS0yLjIzLDQuNDcsMS40Ni0yLjczLDEuNDUsMi43M2ExLjY1LDEu
    NjUsMCwxLDEtMi45MSwwWiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPg==`}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/paintbrush.js":(m,_,d)=>{d.r(_),d.d(_,{Paintbrush:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable");class S{constructor(T){this.width=15,this.mousePos=null,this.getParameters=T}paint(T){const{getMouseCoordinates:O,metadata:R,updatePainting:I}=this.getParameters();let{x:N,y:w}=O(T);R.select.x1!=-1&&(N-=R.select.x1,w-=R.select.y1);const{ctx:D}=this;let k,Y;if(Y=new A.Vector2,this.mousePos==null)this.mousePos=new A.Vector2(N,w),k=1;else{const ee=this.width/4,K=new A.Vector2(N-this.mousePos.x,w-this.mousePos.y);k=Math.ceil(K.length()/ee);const ie=K.length()/k;Y=K.normalize().multiplyByFloats(ie,ie)}const V=this.mousePos.clone();for(let ee=0;ee<k;ee++)D.globalAlpha=1,D.globalCompositeOperation="destination-out",D.drawImage(this.circleCanvas,Math.ceil(V.x-this.width/2),Math.ceil(V.y-this.width/2)),D.globalAlpha=R.alpha,D.globalCompositeOperation="source-over",D.drawImage(this.circleCanvas,Math.ceil(V.x-this.width/2),Math.ceil(V.y-this.width/2)),V.addInPlace(Y);I(),this.mousePos=new A.Vector2(N,w)}setBrushWidth(T){this.width=T}setup(){const{scene:T}=this.getParameters();this.pointerObserver=T.onPointerObservable.add(async O=>{var w,D,k;const{startPainting:R,stopPainting:I,metadata:N}=this.getParameters();if(this.isPainting)O.event.buttons!==1||!this.getParameters().interactionEnabled()?(this.isPainting=!1,(D=this.circleCanvas.parentNode)==null||D.removeChild(this.circleCanvas),I(),this.mousePos=null):(k=O.pickInfo)!=null&&k.hit&&O.type===A.PointerEventTypes.POINTERMOVE&&this.paint(O);else if(O.type===A.PointerEventTypes.POINTERDOWN&&O.event.buttons===1&&this.getParameters().interactionEnabled()&&((w=O.pickInfo)!=null&&w.hit)){this.isPainting=!0;const Y=document.createElement("canvas");Y.width=this.width,Y.height=this.width;const V=Y.getContext("2d");V.imageSmoothingEnabled=!1;const ee=new Array(4*this.width*this.width),K=this.width*this.width/4,ie=A.Color3.FromHexString(N.color),ne=Math.floor(ie.r*255),te=Math.floor(ie.g*255),W=Math.floor(ie.b*255);let Q=0;const re=-Math.floor(this.width/2),oe=Math.ceil(this.width/2),X=-Math.floor(this.width/2),se=Math.ceil(this.width/2);for(let ue=X;ue<se;ue++)for(let he=re;he<oe;he++)ee[Q++]=ne,ee[Q++]=te,ee[Q++]=W,ee[Q++]=he*he+ue*ue<=K?255:0;V.putImageData(new ImageData(Uint8ClampedArray.from(ee),this.width,this.width),0,0),this.circleCanvas=Y,this.ctx=await R(),this.paint(O)}}),this.isPainting=!1}cleanup(){this.isPainting=!1,this.pointerObserver&&this.getParameters().scene.onPointerObservable.remove(this.pointerObserver)}}class E extends x.Component{render(){const T=this.props.instance;return(0,h.jsx)("div",{children:(0,h.jsxs)("label",{className:"tool-slider-input",children:[(0,h.jsxs)("span",{children:["Size: ",T.width]}),(0,h.jsx)("input",{id:"contrast-slider",type:"range",min:1,max:100,value:T.width,onChange:O=>{T.setBrushWidth(O.target.valueAsNumber),this.forceUpdate()}})]})})}}const b={name:"Paintbrush",type:S,settingsComponent:E,icon:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMjksMTFhMy41NywzLjU3LDAsMCwxLDAsNS4wNkwxNywyOGEyLjM0LDIuMzQsMCwwLDEtMSwuNThMMTAuOTEsMzBhLjc1Ljc1LDAsMCwxLS45Mi0uOTJMMTEuMzgsMjRBMi4zNCwyLjM0LDAsMCwxLDEyLDIzbDEyLTEyQTMuNTcsMy41NywwLDAsMSwyOSwxMVpNMjMsMTQuMSwxMywyNGEuNjkuNjksMCwwLDAtLjE5LjMzbC0xLjA1LDMuODUsMy44NS0xQS42OS42OSwwLDAsMCwxNiwyN0wyNS45LDE3Wm0yLTItMSwxTDI3LDE2bDEtMUEyLjA4LDIuMDgsMCwxLDAsMjUsMTIuMDdaIiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+",cursor:"iVBORw0KGgoAAAANSUhEUgAAABUAAAAVAgMAAADUeU0FAAAACVBMVEUAAAAAAAD///+D3c/SAAAAAXRSTlMAQObYZgAAAAFiS0dEAmYLfGQAAAA3SURBVAjXY2CAgVUNYGoqhFJjwE2BgQYDBwMXUGiFGtcyBgbVkKmtYXAeVA4O8BkGtQ9qOwgAAEPfC1QJPmWqAAAAAElFTkSuQmCC"}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/rectangleSelect.js":(m,_,d)=>{d.r(_),d.d(_,{RectangleSelect:()=>x});var h=d("core/Misc/observable");const x={name:"Rectangle Select",type:class{constructor(A){this.isSelecting=!1,this.xStart=-1,this.yStart=-1,this.getParameters=A}setup(){const{scene:A}=this.getParameters();this.pointerObserver=A.onPointerObservable.add(S=>{var T,O;const{getMouseCoordinates:E,setMetadata:b,metadata:M}=this.getParameters();if(this.isSelecting){if(S.event.buttons!==1||!this.getParameters().interactionEnabled())this.isSelecting=!1,(M.select.x1===M.select.x2||M.select.y1===M.select.y2)&&b({select:{x1:-1,y1:-1,x2:-1,y2:-1}});else if((O=S.pickInfo)!=null&&O.hit&&S.type===h.PointerEventTypes.POINTERMOVE&&S.type===h.PointerEventTypes.POINTERMOVE&&this.isSelecting){const{x:R,y:I}=E(S);b({select:{x1:Math.min(R,this.xStart),y1:Math.min(I,this.yStart),x2:Math.max(R,this.xStart),y2:Math.max(I,this.yStart)}})}}else if(S.type==h.PointerEventTypes.POINTERDOWN&&S&&S.event.buttons===1&&this.getParameters().interactionEnabled()&&((T=S.pickInfo)!=null&&T.hit)){this.isSelecting=!0;const{x:R,y:I}={x:this.xStart,y:this.yStart}=E(S);b({select:{x1:R,y1:I,x2:R,y2:I}})}})}cleanup(){this.isSelecting=!1,this.pointerObserver&&this.getParameters().scene.onPointerObservable.remove(this.pointerObserver)}},icon:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJmaWxsOm5vbmUiLz48cGF0aCBkPSJNMTEuNjMsMTUuNjNIMTAuMzh2LTMuN2ExLjU0LDEuNTQsMCwwLDEsMS41NS0xLjU1aDMuN3YxLjI1SDEyLjI1YS42Mi42MiwwLDAsMC0uNjIuNjJaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTExLjYzLDIyLjYzSDEwLjM4VjE3LjM4aDEuMjVaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTI5LjYzLDIyLjYzSDI4LjM4VjE3LjM4aDEuMjVaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTE1LjYzLDI5LjYzaC0zLjdhMS41NSwxLjU1LDAsMCwxLTEuNTUtMS41NlYyNC4zOGgxLjI1djMuMzdhLjYzLjYzLDAsMCwwLC42Mi42M2gzLjM4WiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxwYXRoIGQ9Ik0yOC4wNywyOS42M0gyNC4zOFYyOC4zOGgzLjM3YS42NC42NCwwLDAsMCwuNjMtLjYzVjI0LjM4aDEuMjV2My42OUExLjU2LDEuNTYsMCwwLDEsMjguMDcsMjkuNjNaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTIyLjYzLDExLjYzSDE3LjM4VjEwLjM4aDUuMjVaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTI5LjYzLDE1LjYzSDI4LjM4VjEyLjI1YS42My42MywwLDAsMC0uNjMtLjYySDI0LjM4VjEwLjM4aDMuNjlhMS41NSwxLjU1LDAsMCwxLDEuNTYsMS41NVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMjIuNjMsMjkuNjNIMTcuMzhWMjguMzhoNS4yNVoiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4=",cursor:"iVBORw0KGgoAAAANSUhEUgAAABUAAAAVAgMAAADUeU0FAAAACVBMVEUAAAAAAAD///+D3c/SAAAAAXRSTlMAQObYZgAAAAFiS0dEAmYLfGQAAAAnSURBVAjXY2CAAS0IpUY0BdG1ikNrFQODaqiaaBicBwfEG6aF0AQA4oYGiJg4woEAAAAASUVORK5CYII="}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/propertiesBar.js":(m,_,d)=>{d.r(_),d.d(_,{PropertiesBar:()=>Y});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/reset.svg"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/upload.svg"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/save.svg"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/babylonLogo.svg"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/resizeTool.svg"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/mipUp.svg"),O=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/mipDown.svg"),R=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/posX.svg"),I=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/negX.svg"),N=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/posY.svg"),w=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/negY.svg"),D=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/posZ.svg"),k=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/negZ.svg");class Y extends x.PureComponent{constructor(ee){super(ee),this._faces=[R,I,N,w,D,k],this.state={width:ee.size.width,height:ee.size.height}}_pixelData(ee){return(0,h.jsxs)("span",{className:"pixel-data",children:[ee.name,": ",(0,h.jsx)("span",{className:"value",children:ee.data!==void 0?ee.data:"-"})]})}_getNewDimension(ee,K){return!isNaN(K)&&parseInt(K)>0&&Number.isInteger(parseInt(K))?parseInt(K):ee}componentWillUpdate(ee){(ee.size.width!=this.props.size.width||ee.size.height!=this.props.size.height)&&this.setState({width:ee.size.width,height:ee.size.height})}render(){const{mipLevel:ee,setMipLevel:K,pixelData:ie,resizeTexture:ne,texture:te,face:W,setFace:Q,saveTexture:re,resetTexture:oe,uploadTexture:X}=this.props,se=Math.floor(Math.log2(Math.max(te.getSize().width,te.getSize().height))),ue=te.getScene().getEngine(),he=!te.noMipmap&&ue.getCaps().textureLOD;return(0,h.jsxs)("div",{id:"properties",children:[(0,h.jsx)("div",{className:"tab",id:"logo-tab",children:(0,h.jsx)("img",{className:"icon",src:b})}),(0,h.jsxs)("div",{id:"left",children:[(0,h.jsx)("div",{className:"tab",id:"dimensions-tab",children:(0,h.jsxs)("form",{onSubmit:fe=>{this.props.resizeTexture(this.state.width,this.state.height),fe.preventDefault()},children:[(0,h.jsxs)("label",{className:"dimensions",children:["W:"," ",(0,h.jsx)("input",{type:"text",value:this.state.width,readOnly:te.isCube,onChange:fe=>this.setState({width:this._getNewDimension(this.state.width,fe.target.value)})})]}),(0,h.jsxs)("label",{className:"dimensions",children:["H:"," ",(0,h.jsx)("input",{type:"text",value:this.state.height,readOnly:te.isCube,onChange:fe=>this.setState({height:this._getNewDimension(this.state.height,fe.target.value)})})]}),!te.isCube&&(0,h.jsx)("img",{id:"resize",className:"icon button",title:"Resize",alt:"Resize",src:M,onClick:()=>ne(this.state.width,this.state.height)})]})}),(0,h.jsxs)("div",{className:"tab",id:"pixel-coords-tab",children:[(0,h.jsx)(this._pixelData,{name:"X",data:ie.x}),(0,h.jsx)(this._pixelData,{name:"Y",data:ie.y})]}),(0,h.jsxs)("div",{className:"tab",id:"pixel-color-tab",children:[(0,h.jsx)(this._pixelData,{name:"R",data:ie.r}),(0,h.jsx)(this._pixelData,{name:"G",data:ie.g}),(0,h.jsx)(this._pixelData,{name:"B",data:ie.b}),(0,h.jsx)(this._pixelData,{name:"A",data:ie.a})]}),te.isCube&&(0,h.jsx)("div",{className:"tab",id:"face-tab",children:this._faces.map((fe,Ae)=>(0,h.jsx)("img",{className:W==Ae?"icon face button active":"icon face button",src:fe,onClick:()=>Q(Ae)},Ae))}),he&&(0,h.jsxs)("div",{className:"tab",id:"mip-tab",children:[(0,h.jsx)("img",{title:"Mip Preview Up",className:"icon button",src:T,onClick:()=>ee>0&&K(ee-1)}),(0,h.jsx)("img",{title:"Mip Preview Down",className:"icon button",src:O,onClick:()=>ee<se&&K(ee+1)})]})]}),(0,h.jsxs)("div",{className:"tab",id:"right-tab",children:[(0,h.jsx)("img",{title:"Reset",className:"icon button",src:A,onClick:()=>oe()}),(0,h.jsxs)("label",{children:[(0,h.jsx)("input",{accept:".jpg, .png, .tga, .dds, .env, .exr",type:"file",onChange:fe=>{const Ae=fe.target.files;Ae&&Ae.length&&X(Ae[0]),fe.target.value=""}}),(0,h.jsx)("img",{title:"Upload",className:"icon button",src:S})]}),(0,h.jsx)("img",{title:"Save",className:"icon button",src:E,onClick:()=>re()})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/textureCanvasComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TextureCanvasComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{render(){return(0,h.jsxs)("div",{children:[(0,h.jsx)("canvas",{id:"canvas-ui",ref:this.props.canvasUI,tabIndex:1}),(0,h.jsx)("canvas",{id:"canvas-2D",ref:this.props.canvas2D,hidden:!0}),(0,h.jsx)("canvas",{id:"canvas-3D",ref:this.props.canvas3D,hidden:!0})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/textureCanvasManager.js":(m,_,d)=>{d.r(_),d.d(_,{TextureCanvasManager:()=>S});var h=d("core/Misc/observable"),x=d("../../../dev/inspector/dist/textureHelper.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/canvasShader.js");class S{constructor(b,M,T,O,R,I,N,w,D,k){this._isPanning=!1,this._channels=[],this._face=0,this._mipLevel=0,this._didEdit=!1,this._keyMap={},this._buttonsPressed=0,this.ZOOM_MOUSE_SPEED=.001,this.ZOOM_KEYBOARD_SPEED=.4,this.ZOOM_IN_KEY="+",this.ZOOM_OUT_KEY="-",this.PAN_SPEED=.003,this.PAN_KEY="Space",this.MIN_SCALE=.01,this.GRID_SCALE=.047,this.MAX_SCALE=10,this.SELECT_ALL_KEY="KeyA",this.SAVE_KEY="KeyS",this.RESET_KEY="KeyR",this.DESELECT_KEY="Escape",this.PUSH_FREQUENCY=32,this._editing3D=!1,this._canPush=!0,this._shouldPush=!1,this._window=M,this._uiCanvas=T,this._2DCanvas=O,this._3DCanvas=R,this._paintCanvas=document.createElement("canvas"),this._setPixelData=I,this._metadata=N,this._onUpdate=w,this._setMetadata=D,this._setMipLevel=k,this._originalTexture=b,this._originalTextureProperties={_texture:this._originalTexture._texture,url:this._originalTexture.url,_forceSerialize:this._originalTexture._forceSerialize},this._engine=new h.Engine(this._uiCanvas,!0),this._scene=new h.Scene(this._engine,{virtual:!0}),this._scene.clearColor=new h.Color4(.11,.11,.11,1),this._camera=new h.FreeCamera("camera",new h.Vector3(0,0,-1),this._scene),this._camera.mode=h.Camera.ORTHOGRAPHIC_CAMERA,this._camera.minZ=.5,this._camera.maxZ=1.5,this._cameraPos=new h.Vector2,this.setSize(b.getSize()),this._channelsTexture=new h.HtmlElementTexture("ct",this._2DCanvas,{engine:this._engine,scene:null,samplingMode:h.Texture.NEAREST_SAMPLINGMODE,generateMipMaps:!0}),this._3DEngine=new h.Engine(this._3DCanvas),this._3DScene=new h.Scene(this._3DEngine,{virtual:!0}),this._3DScene.clearColor=new h.Color4(0,0,0,0),this._3DCanvasTexture=new h.HtmlElementTexture("canvas",this._2DCanvas,{engine:this._3DEngine,scene:this._3DScene}),this._3DCanvasTexture.hasAlpha=!0;const Y=new h.FreeCamera("camera",new h.Vector3(0,0,-1),this._3DScene);Y.mode=h.Camera.ORTHOGRAPHIC_CAMERA,[Y.orthoBottom,Y.orthoLeft,Y.orthoTop,Y.orthoRight]=[-.5,-.5,.5,.5],this._3DPlane=(0,h.CreatePlane)("texture",{width:1,height:1},this._3DScene),this._3DPlane.hasVertexAlpha=!0;const V=new h.StandardMaterial("material",this._3DScene);V.diffuseTexture=this._3DCanvasTexture,V.useAlphaFromDiffuseTexture=!0,V.disableLighting=!0,V.emissiveColor=h.Color3.White(),this._3DPlane.material=V,this._planeMaterial=new h.ShaderMaterial("canvasShader",this._scene,A.canvasShader.path,A.canvasShader.options),this.grabOriginalTexture(),this._planeMaterial.setTexture("textureSampler",this._channelsTexture),this._planeMaterial.setFloat("r",1),this._planeMaterial.setFloat("g",1),this._planeMaterial.setFloat("b",1),this._planeMaterial.setFloat("a",1),this._planeMaterial.setInt("x1",-1),this._planeMaterial.setInt("y1",-1),this._planeMaterial.setInt("x2",-1),this._planeMaterial.setInt("y2",-1),this._planeMaterial.setInt("w",this._size.width),this._planeMaterial.setInt("h",this._size.height),this._planeMaterial.setInt("time",0),this._planeMaterial.setFloat("showGrid",0),this._plane.material=this._planeMaterial,this._window.addEventListener("keydown",ee=>{this._keyMap[ee.code]=!0,ee.code===this.SELECT_ALL_KEY&&ee.ctrlKey&&(this._setMetadata({select:{x1:0,y1:0,x2:this._size.width,y2:this._size.height}}),ee.preventDefault()),ee.code===this.SAVE_KEY&&ee.ctrlKey&&(this.saveTexture(),ee.preventDefault()),ee.code===this.RESET_KEY&&ee.ctrlKey&&(this.reset(),ee.preventDefault()),ee.code===this.DESELECT_KEY&&this._setMetadata({select:{x1:-1,y1:-1,x2:-1,y2:-1}})}),this._window.addEventListener("keyup",ee=>{this._keyMap[ee.code]=!1}),this._engine.runRenderLoop(()=>{this._engine.resize(),this._scene.render(),this._planeMaterial.setInt("time",new Date().getTime())}),this._scale=1.5/Math.max(this._size.width,this._size.height),this._isPanning=!1,this._scene.onBeforeRenderObservable.add(()=>{var ne,te;this._scale=Math.min(Math.max(this._scale,this.MIN_SCALE/Math.log2(Math.min(this._size.width,this._size.height))),this.MAX_SCALE),this._scale>this.GRID_SCALE?this._planeMaterial.setFloat("showGrid",1):this._planeMaterial.setFloat("showGrid",0);const ee=((ne=this._uiCanvas)==null?void 0:ne.width)/((te=this._uiCanvas)==null?void 0:te.height),{x:K,y:ie}=this._cameraPos;this._camera.orthoBottom=ie-1/this._scale,this._camera.orthoTop=ie+1/this._scale,this._camera.orthoLeft=K-ee/this._scale,this._camera.orthoRight=K+ee/this._scale}),this._scene.onPointerObservable.add(ee=>{var ne;const K=ee.event.buttons&1,ie=ee.event.buttons&4;switch(this._isPanning?(!K||!this._keyMap[this.PAN_KEY])&&!ie&&(this._isPanning=!1):((K&&!(this._buttonsPressed&1)&&this._keyMap[this.PAN_KEY]||ie)&&(this._isPanning=!0,this._mouseX=ee.event.x,this._mouseY=ee.event.y),ie&&(this._isPanning=!0)),ee.type){case h.PointerEventTypes.POINTERWHEEL:{const te=ee.event;this._scale-=te.deltaY*this.ZOOM_MOUSE_SPEED*this._scale;break}case h.PointerEventTypes.POINTERMOVE:if(this._isPanning&&(this._cameraPos.x-=(ee.event.x-this._mouseX)*this.PAN_SPEED/this._scale,this._cameraPos.y+=(ee.event.y-this._mouseY)*this.PAN_SPEED/this._scale,this._mouseX=ee.event.x,this._mouseY=ee.event.y),(ne=ee.pickInfo)!=null&&ne.hit){const te=this.getMouseCoordinates(ee),W=(te.x+te.y*this._size.width)*4;this._setPixelData({x:te.x,y:te.y,r:this._imageData[W],g:this._imageData[W+1],b:this._imageData[W+2],a:this._imageData[W+3]})}else this._setPixelData({});break}this._buttonsPressed=ee.event.buttons}),this._scene.onKeyboardObservable.add(ee=>{switch(ee.type){case h.KeyboardEventTypes.KEYDOWN:switch(this._keyMap[ee.event.key]=!0,ee.event.key){case this.ZOOM_IN_KEY:this._scale+=this.ZOOM_KEYBOARD_SPEED*this._scale;break;case this.ZOOM_OUT_KEY:this._scale-=this.ZOOM_KEYBOARD_SPEED*this._scale;break}break;case h.KeyboardEventTypes.KEYUP:this._keyMap[ee.event.key]=!1;break}})}async updateTexture(){var M,T;this._mipLevel!==0&&await this._setMipLevel(0),this._didEdit=!0;const b=this._editing3D?this._3DCanvas:this._2DCanvas;this._editing3D&&(this._3DCanvasTexture.update(),this._3DScene.render()),this._originalTexture.isCube||(this._target?this._target.element=b:this._target=new h.HtmlElementTexture("editor",b,{engine:(M=this._originalTexture.getScene())==null?void 0:M.getEngine(),scene:null,samplingMode:this._originalTexture.samplingMode,generateMipMaps:(T=this._originalTextureProperties._texture)==null?void 0:T.generateMipMaps}),this.pushTexture()),this._originalTexture._texture=this._target._texture,this._originalTexture.url=null,this._originalTexture._forceSerialize=!0,this._channelsTexture.element=b,this.updateDisplay(),this._onUpdate()}async pushTexture(){var b;if(this._canPush){const M=this._target.constructor.name===h.HtmlElementTexture.name?!1:this._originalTexture.invertY;if(this._target.update(M),(b=this._target._texture)==null||b.updateSize(this._size.width,this._size.height),this._editing3D){const T=await this._3DEngine.readPixels(0,0,this._size.width,this._size.height);this._imageData=new Uint8Array(T.buffer,0,T.byteLength)}else this._imageData=this._2DCanvas.getContext("2d").getImageData(0,0,this._size.width,this._size.height).data;this._canPush=!1,this._shouldPush=!1,setTimeout(()=>{this._canPush=!0,this._shouldPush&&this.pushTexture()},this.PUSH_FREQUENCY)}else this._shouldPush=!0}async startPainting(){this._mipLevel!=0&&await this._setMipLevel(0);let b=0,M=0,T=this._size.width,O=this._size.height;this._metadata.select.x1!=-1&&(b=this._metadata.select.x1,M=this._metadata.select.y1,T=this._metadata.select.x2-this._metadata.select.x1,O=this._metadata.select.y2-this._metadata.select.y1),this._paintCanvas.width=T,this._paintCanvas.height=O;const R=this._paintCanvas.getContext("2d");return R.imageSmoothingEnabled=!1,R.drawImage(this._2DCanvas,b,M,T,O,0,0,T,O),R}updatePainting(){let b=0,M=0,T=this._size.width,O=this._size.height;this._metadata.select.x1!=-1&&(b=this._metadata.select.x1,M=this._metadata.select.y1,T=this._metadata.select.x2-this._metadata.select.x1,O=this._metadata.select.y2-this._metadata.select.y1);let R=!0;this._channels.forEach(D=>{D.editable||(R=!1)});let I;R||(I=this._2DCanvas.getContext("2d").getImageData(b,M,T,O).data);const N=this._paintCanvas.getContext("2d"),w=this.canvas2D.getContext("2d");if(w.globalAlpha=1,w.globalCompositeOperation="destination-out",w.fillStyle="white",w.fillRect(b,M,T,O),w.imageSmoothingEnabled=!1,R)w.globalCompositeOperation="source-over",w.globalAlpha=1,w.drawImage(N.canvas,b,M);else{const D=N.getImageData(0,0,T,O),k=D.data;this._channels.forEach((Y,V)=>{if(!Y.editable)for(let ee=V;ee<T*O*4;ee+=4)k[ee]=I[ee]}),w.globalCompositeOperation="source-over",w.globalAlpha=1,w.putImageData(D,b,M)}this.updateTexture()}stopPainting(){this._paintCanvas.getContext("2d").clearRect(0,0,this._paintCanvas.width,this._paintCanvas.height)}updateDisplay(){this._3DScene.render(),this._channelsTexture.update(!0)}set channels(b){let M=!1;b.length!==this._channels.length?M=!0:b.forEach((T,O)=>{T.visible!==this._channels[O].visible&&(M=!0,this._planeMaterial.setFloat(T.id.toLowerCase(),T.visible?1:0))}),this._channels=b,M&&this.updateDisplay()}paintPixelsOnCanvas(b,M){const T=M.getContext("2d"),O=T.createImageData(M.width,M.height);O.data.set(b),T.putImageData(O,0,0)}async grabOriginalTexture(){this.setSize(this._originalTexture.getSize());const b=await x.TextureHelper.GetTextureDataAsync(this._originalTexture,this._size.width,this._size.height,this._face,{R:!0,G:!0,B:!0,A:!0},void 0,this._mipLevel);return this._imageData=b,this.paintPixelsOnCanvas(b,this._2DCanvas),this._3DCanvasTexture.update(),this.updateDisplay(),b}getMouseCoordinates(b){var M;if((M=b.pickInfo)!=null&&M.hit){const T=Math.floor(b.pickInfo.getTextureCoordinates().x*this._size.width),O=Math.floor((1-b.pickInfo.getTextureCoordinates().y)*this._size.height);return new h.Vector2(T,O)}else return new h.Vector2}get scene(){return this._scene}get canvas2D(){return this._2DCanvas}get size(){return this._size}set tool(b){var M;this._tool&&this._tool.instance.cleanup(),this._tool=b,this._tool&&(this._tool.instance.setup(),this._editing3D&&!this._tool.is3D?(this._editing3D=!1,(M=this._2DCanvas.getContext("2d"))==null||M.drawImage(this._3DCanvas,0,0)):!this._editing3D&&this._tool.is3D&&(this._editing3D=!0,this.updateTexture()))}get tool(){return this._tool}set face(b){this._face!==b&&(this._face=b,this.grabOriginalTexture(),this.updateDisplay())}set mipLevel(b){this._mipLevel!==b&&(this._mipLevel=b,this.grabOriginalTexture())}get scene3D(){return this._3DScene}set metadata(b){this._metadata=b;const{x1:M,y1:T,x2:O,y2:R}=b.select;this._planeMaterial.setInt("x1",M),this._planeMaterial.setInt("y1",T),this._planeMaterial.setInt("x2",O),this._planeMaterial.setInt("y2",R)}makePlane(){this._plane&&this._plane.dispose(),this._plane=(0,h.CreatePlane)("plane",{width:this._size.width,height:this._size.height},this._scene),this._plane.enableEdgesRendering(),this._plane.edgesWidth=4,this._plane.edgesColor=new h.Color4(1,1,1,1),this._plane.enablePointerMoveEvents=!0,this._plane.material=this._planeMaterial}reset(){this._tool&&this._tool.instance.onReset&&this._tool.instance.onReset(),this._originalTexture._texture=this._originalTextureProperties._texture,this._originalTexture.url=this._originalTextureProperties.url,this._originalTexture._forceSerialize=this._originalTextureProperties._forceSerialize,this.grabOriginalTexture(),this.makePlane(),this._didEdit=!1,this._onUpdate()}async resize(b){const M=await x.TextureHelper.GetTextureDataAsync(this._originalTexture,b.width,b.height,this._face,{R:!0,G:!0,B:!0,A:!0});this.setSize(b),this.paintPixelsOnCanvas(M,this._2DCanvas),this.updateTexture(),this._didEdit=!0}setSize(b){const M=this._size;this._size=b,this._2DCanvas.width=this._size.width,this._2DCanvas.height=this._size.height,this._3DCanvas.width=this._size.width,this._3DCanvas.height=this._size.height,this._planeMaterial&&(this._planeMaterial.setInt("w",this._size.width),this._planeMaterial.setInt("h",this._size.height)),(!M||M.width!=b.width||M.height!=b.height)&&(this._cameraPos.x=0,this._cameraPos.y=0,this._scale=1.5/Math.max(this._size.width,this._size.height)),this.makePlane()}upload(b){h.Tools.ReadFile(b,M=>{const T=new Blob([M],{type:"octet/stream"});let O;b.name.toLowerCase().indexOf(".dds")>0?O=".dds":b.name.toLowerCase().indexOf(".env")>0&&(O=".env");const R=new FileReader;R.readAsDataURL(T),R.onloadend=()=>{const I=R.result;if(O===".dds"||O===".env")this._originalTexture.updateURL(I,O,()=>this.grabOriginalTexture());else{const N=new h.Texture(I,this._scene,this._originalTexture.noMipmap,!1,h.Texture.NEAREST_SAMPLINGMODE,()=>{x.TextureHelper.GetTextureDataAsync(N,N.getSize().width,N.getSize().height,0,{R:!0,G:!0,B:!0,A:!0}).then(async w=>{this._tool&&this._tool.instance.onReset&&this._tool.instance.onReset(),N.dispose(),this.setSize(N.getSize()),this.paintPixelsOnCanvas(w,this._2DCanvas),await this.updateTexture(),this._setMipLevel(0)})})}}},void 0,!0)}saveTexture(){const b=this._editing3D?this._3DCanvas:this._2DCanvas;h.Tools.ToBlob(b,M=>{h.Tools.Download(M,this._originalTexture.name)})}toolInteractionEnabled(){return!(this._keyMap[this.PAN_KEY]||this._isPanning)}dispose(){var b,M;this._didEdit&&((b=this._originalTextureProperties._texture)==null||b.dispose()),this._tool&&this._tool.instance.cleanup(),(M=this._paintCanvas.parentNode)==null||M.removeChild(this._paintCanvas),this._3DPlane.dispose(),this._3DCanvasTexture.dispose(),this._3DScene.dispose(),this._3DEngine.dispose(),this._plane.dispose(),this._channelsTexture.dispose(),this._planeMaterial.dispose(),this._camera.dispose(),this._scene.dispose(),this._engine.dispose()}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditor.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>k});var h=d("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),x=d.n(h),A=d("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),S=d.n(A),E=d("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),b=d.n(E),M=d("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),T=d.n(M),O=d("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),R=d.n(O),I=d("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),N=d.n(I),w=d("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditor.scss"),D={};D.styleTagTransform=N(),D.setAttributes=T(),D.insert=b().bind(null,"head"),D.domAPI=S(),D.insertStyleElement=R(),x()(w.default,D);const k=w.default&&w.default.locals?w.default.locals:void 0},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditorComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TextureEditorComponent:()=>N});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/textureCanvasManager.js"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/toolBar.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/propertiesBar.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/channelsBar.js"),M=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/bottomBar.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/textureCanvasComponent.js"),O=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/defaultTools.js"),R=d("core/Misc/observable"),I=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/toolSettings.js");d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditor.scss");class N extends x.Component{constructor(D){super(D),this._uiCanvas=x.createRef(),this._2DCanvas=x.createRef(),this._3DCanvas=x.createRef(),this._pickerRef=x.createRef();const k=[{name:"Red",visible:!0,editable:!0,id:"R",icon:d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/channelR.svg")},{name:"Green",visible:!0,editable:!0,id:"G",icon:d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/channelG.svg")},{name:"Blue",visible:!0,editable:!0,id:"B",icon:d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/channelB.svg")}];this.props.texture.isCube?k.push({name:"Display",visible:!0,editable:!0,id:"A",icon:d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/channelD.svg")}):k.push({name:"Alpha",visible:!0,editable:!0,id:"A",icon:d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/assets/channelA.svg")}),this.state={tools:[],activeToolIndex:-1,metadata:{color:"#ffffff",alpha:1,select:{x1:-1,y1:-1,x2:-1,y2:-1}},channels:k,pixelData:{},face:0,mipLevel:0,pickerOpen:!1},this.loadToolFromURL=this.loadToolFromURL.bind(this),this.changeTool=this.changeTool.bind(this),this.setMetadata=this.setMetadata.bind(this),this.saveTexture=this.saveTexture.bind(this),this.resetTexture=this.resetTexture.bind(this),this.resizeTexture=this.resizeTexture.bind(this),this.uploadTexture=this.uploadTexture.bind(this),this.setPickerOpen=this.setPickerOpen.bind(this),this.onPointerDown=this.onPointerDown.bind(this)}componentDidMount(){this._textureCanvasManager=new A.TextureCanvasManager(this.props.texture,this.props.window.current.getWindow(),this._uiCanvas.current,this._2DCanvas.current,this._3DCanvas.current,D=>{this.setState({pixelData:D})},this.state.metadata,()=>this.textureDidUpdate(),D=>this.setMetadata(D),D=>this.setState({mipLevel:D})),this.addTools(O.default)}componentDidUpdate(){const D=[];this.state.channels.forEach(k=>D.push({...k})),this._textureCanvasManager.channels=D,this._textureCanvasManager.face=this.state.face,this._textureCanvasManager.mipLevel=this.state.mipLevel}componentWillUnmount(){this._textureCanvasManager.dispose()}textureDidUpdate(){this._timer!=null&&window.clearTimeout(this._timer),this._timer=window.setTimeout(()=>{this.props.onUpdate(),this._timer=null},N._PREVIEW_UPDATE_DELAY_MS)}loadToolFromURL(D){R.Tools.LoadScript(D,()=>{this.addTools([_TOOL_DATA_])})}addTools(D){let k=[];D.forEach(Y=>{const V={...Y,instance:new Y.type(()=>this.getToolParameters())};k=k.concat(V)}),k=this.state.tools.concat(k),this.setState({tools:k})}getToolParameters(){return{scene:this._textureCanvasManager.scene,canvas2D:this._textureCanvasManager.canvas2D,scene3D:this._textureCanvasManager.scene3D,size:this._textureCanvasManager.size,updateTexture:()=>this._textureCanvasManager.updateTexture(),startPainting:()=>this._textureCanvasManager.startPainting(),stopPainting:()=>this._textureCanvasManager.stopPainting(),updatePainting:()=>this._textureCanvasManager.updatePainting(),metadata:this.state.metadata,setMetadata:D=>this.setMetadata(D),getMouseCoordinates:D=>this._textureCanvasManager.getMouseCoordinates(D),interactionEnabled:()=>this._textureCanvasManager.toolInteractionEnabled()}}changeTool(D){D!=-1?this._textureCanvasManager.tool=this.state.tools[D]:this._textureCanvasManager.tool=null,this.setState({activeToolIndex:D})}setMetadata(D){const k={...this.state.metadata,...D};this.setState({metadata:k}),this._textureCanvasManager.metadata=k}setPickerOpen(D){this.setState({pickerOpen:D})}onPointerDown(D){var k;(k=this._pickerRef.current)!=null&&k.contains(D.target)||this.setPickerOpen(!1)}saveTexture(){this._textureCanvasManager.saveTexture()}resetTexture(){this._textureCanvasManager.reset()}resizeTexture(D,k){this._textureCanvasManager.resize({width:D,height:k})}uploadTexture(D){this._textureCanvasManager.upload(D)}render(){var Y,V;const D=this.state.tools[this.state.activeToolIndex];let k="initial";return(Y=this._textureCanvasManager)!=null&&Y.toolInteractionEnabled()?D&&D.cursor&&(k=`url(data:image/png;base64,${D.cursor}) 10 10, auto`):k="pointer",(0,h.jsxs)("div",{id:"texture-editor",onPointerDown:this.onPointerDown,style:{cursor:k},children:[(0,h.jsx)(E.PropertiesBar,{texture:this.props.texture,saveTexture:this.saveTexture,pixelData:this.state.pixelData,face:this.state.face,setFace:ee=>this.setState({face:ee}),resetTexture:this.resetTexture,resizeTexture:this.resizeTexture,uploadTexture:this.uploadTexture,mipLevel:this.state.mipLevel,setMipLevel:ee=>this.setState({mipLevel:ee}),size:((V=this._textureCanvasManager)==null?void 0:V.size)||this.props.texture.getSize()}),!this.props.texture.isCube&&(0,h.jsx)(S.ToolBar,{tools:this.state.tools,activeToolIndex:this.state.activeToolIndex,addTool:this.loadToolFromURL,changeTool:this.changeTool,metadata:this.state.metadata,setMetadata:this.setMetadata,pickerOpen:this.state.pickerOpen,setPickerOpen:this.setPickerOpen,pickerRef:this._pickerRef,hasAlpha:this.props.texture.textureFormat===-1||this.props.texture.textureFormat===R.Constants.TEXTUREFORMAT_RGBA}),(0,h.jsx)(b.ChannelsBar,{channels:this.state.channels,setChannels:ee=>{this.setState({channels:ee})}}),(0,h.jsx)(T.TextureCanvasComponent,{canvas2D:this._2DCanvas,canvas3D:this._3DCanvas,canvasUI:this._uiCanvas,texture:this.props.texture}),(0,h.jsx)(I.ToolSettings,{tool:D}),(0,h.jsx)(M.BottomBar,{texture:this.props.texture,mipLevel:this.state.mipLevel})]})}}N._PREVIEW_UPDATE_DELAY_MS=160},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/toolBar.js":(m,_,d)=>{d.r(_),d.d(_,{ToolBar:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.js"),E=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/lockObject.js");class b extends x.Component{constructor(T){super(T),this._lockObject=new E.LockObject,this.state={toolURL:"",addOpen:!1}}computeRGBAColor(){const O=Math.floor(this.props.metadata.alpha*255).toString(16).padStart(2,"0");return A.Color4.FromHexString(`${this.props.metadata.color}${O}`)}shouldComponentUpdate(T){return T.tools!=this.props.tools||T.activeToolIndex!==this.props.activeToolIndex||T.metadata!=this.props.metadata||T.pickerOpen!=this.props.pickerOpen}render(){return(0,h.jsxs)("div",{id:"toolbar",children:[(0,h.jsx)("div",{id:"tools",children:this.props.tools.map((T,O)=>(0,h.jsx)("img",{src:`data:image/svg+xml;base64,${T.icon}`,className:O===this.props.activeToolIndex?"icon button active":"icon button",alt:T.name,title:T.name,onClick:R=>{R.button===0&&this.props.changeTool(O)}},O))}),(0,h.jsx)("div",{id:"color",onClick:()=>{this.props.pickerOpen||this.props.setPickerOpen(!0)},title:"Color",className:`icon button${this.props.pickerOpen?" active":""}`,children:(0,h.jsx)("div",{id:"active-color-bg",children:(0,h.jsx)("div",{id:"active-color",style:{backgroundColor:this.props.metadata.color,opacity:this.props.metadata.alpha}})})}),this.props.pickerOpen&&(0,h.jsx)("div",{id:"color-picker",ref:this.props.pickerRef,children:(0,h.jsx)(S.ColorPicker,{lockObject:this._lockObject,color:this.computeRGBAColor(),onColorChanged:T=>{const O={color:T.toHexString(!0),alpha:T.a};(O.color!==this.props.metadata.color||O.alpha!==this.props.metadata.alpha)&&this.props.setMetadata(O)}})})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/materials/textures/toolSettings.js":(m,_,d)=>{d.r(_),d.d(_,{ToolSettings:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{render(){return!this.props.tool||!this.props.tool.settingsComponent?(0,h.jsx)(h.Fragment,{}):(0,h.jsx)("div",{id:"tool-ui",children:(0,h.jsx)(this.props.tool.settingsComponent,{instance:this.props.tool.instance})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/bonePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{BonePropertyGridComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/lines/quaternionLineComponent.js");class M extends x.Component{constructor(O){super(O)}onTransformNodeLink(){if(!this.props.globalState.onSelectionChangedObservable)return;const O=this.props.bone.getTransformNode();this.props.globalState.onSelectionChangedObservable.notifyObservers(O)}render(){const O=this.props.bone;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(A.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(S.TextLineComponent,{label:"Name",value:O.name}),(0,h.jsx)(S.TextLineComponent,{label:"Index",value:O.getIndex().toString()}),(0,h.jsx)(S.TextLineComponent,{label:"Unique ID",value:O.uniqueId.toString()}),O.getParent()&&(0,h.jsx)(S.TextLineComponent,{label:"Parent",value:O.getParent().name,onLink:()=>this.props.globalState.onSelectionChangedObservable.notifyObservers(O.getParent())}),O.getTransformNode()&&(0,h.jsx)(S.TextLineComponent,{label:"Linked node",value:O.getTransformNode().name,onLink:()=>this.onTransformNodeLink()})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"TRANSFORMATIONS",selection:this.props.globalState,children:[(0,h.jsx)(E.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Position",target:O,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!O.rotationQuaternion&&(0,h.jsx)(E.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Rotation",useEuler:this.props.globalState.onlyUseEulers,target:O,propertyName:"rotation",step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),O.rotationQuaternion&&(0,h.jsx)(b.QuaternionLineComponent,{lockObject:this.props.lockObject,label:"Rotation",useEuler:this.props.globalState.onlyUseEulers,target:O,propertyName:"rotationQuaternion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Scaling",target:O,propertyName:"scaling",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/meshPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{MeshPropertyGridComponent:()=>re});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),O=d("../../../dev/inspector/dist/components/actionTabs/lines/quaternionLineComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),I=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.js"),N=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),w=d("../../../dev/sharedUiComponents/dist/lines/color4LineComponent.js"),D=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),k=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),Y=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),V=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/animationPropertyGridComponent.js"),ee=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/commonPropertyGridComponent.js"),K=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/variantsPropertyGridComponent.js"),ie=d("../../../dev/sharedUiComponents/dist/lines/hexLineComponent.js"),ne=d("core/Debug/physicsViewer"),te=d("materials/normal/normalMaterial"),W=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/parentPropertyGridComponent.js"),Q=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/physics/physicsBodyGridComponent.js");class re extends x.Component{constructor(X){super(X);const se=this.props.mesh;this.state={displayNormals:!1,displayVertexColors:!1,displayBoneWeights:!!(se.material&&se.material.getClassName()==="BoneWeightShader"),displayBoneIndex:0,displaySkeletonMap:!1}}renderWireframeOver(){const X=this.props.mesh,se=X.getScene();if(X.reservedDataStore&&X.reservedDataStore.wireframeOver){X.reservedDataStore.wireframeOver.dispose(!1,!0),X.reservedDataStore.wireframeOver=null,this.forceUpdate();return}const ue=X.clone(X.name+"_wireframeover",null,!0,!1);ue.reservedDataStore={hidden:!0},ue.parent=X,ue.position=A.Vector3.Zero(),ue.scaling=new A.Vector3(1,1,1),ue.rotation=A.Vector3.Zero(),ue.rotationQuaternion=null;const he=new A.StandardMaterial("wireframeOver",se);he.reservedDataStore={hidden:!0},ue.material=he,he.disableLighting=!0,he.backFaceCulling=!1,he.emissiveColor=A.Color3.White(),he.wireframe=!0,X.reservedDataStore||(X.reservedDataStore={}),X.reservedDataStore.wireframeOver=ue,this.forceUpdate()}renderNormalVectors(){const X=this.props.mesh,se=X.getScene();if(X.reservedDataStore&&X.reservedDataStore.normalLines){X.reservedDataStore.normalLines.dispose(),X.reservedDataStore.normalLines=null,this.forceUpdate();return}const ue=X.getVerticesData(A.VertexBuffer.NormalKind),he=X.getVerticesData(A.VertexBuffer.PositionKind),fe=A.Color3.White(),Ae=X.getBoundingInfo(),we=Ae.maximum.subtractToRef(Ae.minimum,A.TmpVectors.Vector3[0]).length()*.05,ke=[];for(let Ve=0;Ve<ue.length;Ve+=3){const Ke=A.Vector3.FromArray(he,Ve),ct=Ke.add(A.Vector3.FromArray(ue,Ve).scaleInPlace(we));ke.push([Ke,ct])}const st=(0,A.CreateLineSystem)("normalLines",{lines:ke},se);st.color=fe,st.parent=X,st.reservedDataStore={hidden:!0},X.reservedDataStore||(X.reservedDataStore={}),X.reservedDataStore.normalLines=st,this.forceUpdate()}displayNormals(){const X=this.props.mesh,se=X.getScene();if(X.material&&X.material.getClassName()==="NormalMaterial")X.material.dispose(),X.material=X.reservedDataStore.originalMaterial,X.reservedDataStore.originalMaterial=null,this.setState({displayNormals:!1});else{if(typeof te.NormalMaterial>"u"){A.Tools.Warn("NormalMaterial not found. Make sure to load the materials library.");return}X.reservedDataStore||(X.reservedDataStore={}),X.reservedDataStore.originalMaterial||(X.reservedDataStore.originalMaterial=X.material);const ue=new te.NormalMaterial("normalMaterial",se);ue.disableLighting=!0,X.material&&(ue.sideOrientation=X.material.sideOrientation),ue.reservedDataStore={hidden:!0},X.material=ue,this.setState({displayNormals:!0})}}displayVertexColors(){const X=this.props.mesh,se=X.getScene();if(X.material&&X.material.reservedDataStore&&X.material.reservedDataStore.isVertexColorMaterial)X.material.dispose(),X.material=X.reservedDataStore.originalMaterial,X.reservedDataStore.originalMaterial=null,this.setState({displayVertexColors:!1});else{X.reservedDataStore||(X.reservedDataStore={}),X.reservedDataStore.originalMaterial||(X.reservedDataStore.originalMaterial=X.material);const ue=new A.StandardMaterial("vertex colors",se);ue.disableLighting=!0,ue.emissiveColor=A.Color3.White(),X.material&&(ue.sideOrientation=X.material.sideOrientation),ue.reservedDataStore={hidden:!0,isVertexColorMaterial:!0},X.useVertexColors=!0,X.material=ue,this.setState({displayVertexColors:!0})}}displayBoneWeights(){const X=this.props.mesh,se=X.getScene();if(X.material&&X.material.getClassName()==="BoneWeightShader")X.material.dispose(),X.material=X.reservedDataStore.originalMaterial,X.reservedDataStore.originalMaterial=null,this.setState({displayBoneWeights:!1});else if(X.reservedDataStore||(X.reservedDataStore={}),X.reservedDataStore.originalMaterial||(X.reservedDataStore.originalMaterial=X.material),X.reservedDataStore.displayBoneIndex||(X.reservedDataStore.displayBoneIndex=this.state.displayBoneIndex),X.skeleton){const ue=ne.SkeletonViewer.CreateBoneWeightShader({skeleton:X.skeleton},se);ue.reservedDataStore={hidden:!0},X.material=ue,this.setState({displayBoneWeights:!0})}}displaySkeletonMap(){const X=this.props.mesh,se=X.getScene();if(X.material&&X.material.getClassName()==="SkeletonMapShader")X.material.dispose(),X.material=X.reservedDataStore.originalMaterial,X.reservedDataStore.originalMaterial=null,this.setState({displaySkeletonMap:!1});else if(X.reservedDataStore||(X.reservedDataStore={}),X.reservedDataStore.originalMaterial||(X.reservedDataStore.originalMaterial=X.material),X.skeleton){const ue=ne.SkeletonViewer.CreateSkeletonMapShader({skeleton:X.skeleton},se);ue.reservedDataStore={hidden:!0},X.material=ue,this.setState({displaySkeletonMap:!0})}}onBoneDisplayIndexChange(X){const se=this.props.mesh;se.reservedDataStore.displayBoneIndex=X,this.setState({displayBoneIndex:X}),se.material&&se.material.getClassName()==="BoneWeightShader"&&se.material.setFloat("targetBoneIndex",X)}onMaterialLink(){if(!this.props.onSelectionChangedObservable)return;const X=this.props.mesh;this.props.onSelectionChangedObservable.notifyObservers(X.material)}onSourceMeshLink(){if(!this.props.onSelectionChangedObservable)return;const X=this.props.mesh;this.props.onSelectionChangedObservable.notifyObservers(X.sourceMesh)}onSkeletonLink(){if(!this.props.onSelectionChangedObservable)return;const X=this.props.mesh;this.props.onSelectionChangedObservable.notifyObservers(X.skeleton)}convertPhysicsTypeToString(){switch(this.props.mesh.physicsImpostor.type){case A.PhysicsImpostor.NoImpostor:return"No impostor";case A.PhysicsImpostor.SphereImpostor:return"Sphere";case A.PhysicsImpostor.BoxImpostor:return"Box";case A.PhysicsImpostor.PlaneImpostor:return"Plane";case A.PhysicsImpostor.MeshImpostor:return"Mesh";case A.PhysicsImpostor.CylinderImpostor:return"Cylinder";case A.PhysicsImpostor.ParticleImpostor:return"Particle";case A.PhysicsImpostor.HeightmapImpostor:return"Heightmap";case A.PhysicsImpostor.ConvexHullImpostor:return"Convex hull";case A.PhysicsImpostor.RopeImpostor:return"Rope";case A.PhysicsImpostor.SoftbodyImpostor:return"Soft body"}return"Unknown"}_getIdForDisplay(X){return typeof X=="string"?X:"[INVALID ID]"}render(){var xt;const X=this.props.mesh,se=X.getScene(),ue=X.material!=null&&X.material.getClassName()==="NormalMaterial",he=!!(X.material!=null&&X.material.reservedDataStore&&X.material.reservedDataStore.isVertexColorMaterial),fe=!!(X.reservedDataStore&&X.reservedDataStore.normalLines),Ae=!!(X.reservedDataStore&&X.reservedDataStore.wireframeOver),Se=X.material!=null&&X.material.getClassName()==="BoneWeightShader",we=X.material!=null&&X.material.getClassName()==="SkeletonMapShader",ke=[];if(X.morphTargetManager)for(let Qe=0;Qe<X.morphTargetManager.numTargets;Qe++){const kt=X.morphTargetManager.getTarget(Qe);kt.hasPositions&&ke.push(kt)}const st=[{label:"Accurate",value:A.AbstractMesh.OCCLUSION_ALGORITHM_TYPE_ACCURATE},{label:"Conservative",value:A.AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE}],Ve=[{label:"None",value:A.AbstractMesh.OCCLUSION_TYPE_NONE},{label:"Optimistic",value:A.AbstractMesh.OCCLUSION_TYPE_OPTIMISTIC},{label:"Strict",value:A.AbstractMesh.OCCLUSION_TYPE_STRICT}],Ke=[{label:"Clockwise",value:A.Constants.MATERIAL_ClockWiseSideOrientation},{label:"Counterclockwise",value:A.Constants.MATERIAL_CounterClockWiseSideOrientation}],ct=se.materials.slice(0).sort((Qe,kt)=>(Qe.name||"no name").localeCompare(kt.name||"no name")),nt=ct.map((Qe,kt)=>({label:Qe.name||"no name",value:kt}));nt.splice(0,0,{label:"None (Default Fallback)",value:-1});const at=X.skeleton?X.skeleton.bones.filter(Qe=>Qe.getIndex()>=0).sort((Qe,kt)=>Qe.getIndex()-kt.getIndex()).map(Qe=>({label:Qe.name,value:Qe.getIndex()})):[];return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(I.CustomPropertyGridComponent,{globalState:this.props.globalState,target:X,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(E.TextLineComponent,{label:"ID",value:this._getIdForDisplay(X.id),onCopy:!0}),(0,h.jsx)(Y.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:X,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextLineComponent,{label:"Unique ID",value:X.uniqueId.toString()}),(0,h.jsx)(E.TextLineComponent,{label:"Class",value:X.getClassName()}),(0,h.jsx)(E.TextLineComponent,{label:"Vertices",value:X.getTotalVertices().toString()}),(0,h.jsx)(E.TextLineComponent,{label:"Faces",value:(X.getTotalIndices()/3).toFixed(0)}),(0,h.jsx)(E.TextLineComponent,{label:"Sub-meshes",value:X.subMeshes?X.subMeshes.length.toString():"0"}),(0,h.jsx)(W.ParentPropertyGridComponent,{globalState:this.props.globalState,node:X,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),X.skeleton&&(0,h.jsx)(E.TextLineComponent,{label:"Skeleton",value:X.skeleton.name,onLink:()=>this.onSkeletonLink()}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Is enabled",isSelected:()=>X.isEnabled(),onSelect:Qe=>{var ot;const kt=X.isEnabled();X.setEnabled(Qe),(ot=this.props.onPropertyChangedObservable)==null||ot.notifyObservers({object:X,property:"isEnabled",value:Qe,initialValue:kt})}}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Is pickable",target:X,propertyName:"isPickable",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),X.material&&(!X.material.reservedDataStore||!X.material.reservedDataStore.hidden)&&(0,h.jsx)(E.TextLineComponent,{label:"Link to material",value:X.material.name,onLink:()=>this.onMaterialLink()}),!X.isAnInstance&&(0,h.jsx)(D.OptionsLine,{label:"Active material",options:nt,target:X,propertyName:"material",noDirectUpdate:!0,onSelect:Qe=>{Qe<0?X.material=null:X.material=ct[Qe],this.forceUpdate()},extractValue:()=>X.material?ct.indexOf(X.material):-1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),X.isAnInstance&&(0,h.jsx)(E.TextLineComponent,{label:"Source",value:X.sourceMesh.name,onLink:()=>this.onSourceMeshLink()}),(0,h.jsx)(k.ButtonLineComponent,{label:"Dispose",onClick:()=>{X.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null)}})]}),(0,h.jsx)(ee.CommonPropertyGridComponent,{host:X,lockObject:this.props.lockObject,globalState:this.props.globalState}),(0,h.jsx)(K.VariantsPropertyGridComponent,{host:X,lockObject:this.props.lockObject,globalState:this.props.globalState}),(0,h.jsxs)(S.LineContainerComponent,{title:"TRANSFORMS",selection:this.props.globalState,children:[(0,h.jsx)(M.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Position",target:X,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!X.rotationQuaternion&&(0,h.jsx)(M.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Rotation",useEuler:this.props.globalState.onlyUseEulers,target:X,propertyName:"rotation",step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),X.rotationQuaternion&&(0,h.jsx)(O.QuaternionLineComponent,{lockObject:this.props.lockObject,label:"Rotation",useEuler:this.props.globalState.onlyUseEulers,target:X,propertyName:"rotationQuaternion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Scaling",target:X,propertyName:"scaling",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),X._internalMetadata&&X._internalMetadata.nodeGeometry&&(0,h.jsx)(S.LineContainerComponent,{title:"NODE GEOMETRY",selection:this.props.globalState,children:(0,h.jsx)(k.ButtonLineComponent,{label:"Edit",onClick:()=>{X._internalMetadata.nodeGeometry.edit({nodeGeometryEditorConfig:{backgroundColor:X.getScene().clearColor,hostMesh:X,hostScene:X.getScene()}})}})}),(0,h.jsxs)(S.LineContainerComponent,{title:"DISPLAY",closed:!0,selection:this.props.globalState,children:[!X.isAnInstance&&(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Visibility",target:X,propertyName:"visibility",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(D.OptionsLine,{label:"Orientation",options:Ke,target:X,propertyName:"sideOrientation",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.FloatLineComponent,{lockObject:this.props.lockObject,label:"Alpha index",target:X,propertyName:"alphaIndex",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Receive shadows",target:X,propertyName:"receiveShadows",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),X.isVerticesDataPresent(A.VertexBuffer.ColorKind)&&(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use vertex colors",target:X,propertyName:"useVertexColors",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),X.isVerticesDataPresent(A.VertexBuffer.ColorKind)&&(0,h.jsx)(b.CheckBoxLineComponent,{label:"Has vertex alpha",target:X,propertyName:"hasVertexAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),se.fogMode!==A.Scene.FOGMODE_NONE&&(0,h.jsx)(b.CheckBoxLineComponent,{label:"Apply fog",target:X,propertyName:"applyFog",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!X.parent&&(0,h.jsx)(b.CheckBoxLineComponent,{label:"Infinite distance",target:X,propertyName:"infiniteDistance",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Rendering group ID",decimalCount:0,target:X,propertyName:"renderingGroupId",minimum:A.RenderingManager.MIN_RENDERINGGROUPS,maximum:A.RenderingManager.MAX_RENDERINGGROUPS-1,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(ie.HexLineComponent,{isInteger:!0,lockObject:this.props.lockObject,label:"Layer mask",target:X,propertyName:"layerMask",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),X.morphTargetManager!=null&&(0,h.jsx)(S.LineContainerComponent,{title:"MORPH TARGETS",closed:!0,selection:this.props.globalState,children:ke.map((Qe,kt)=>(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:Qe.name,target:Qe,propertyName:"influence",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable},kt))}),(0,h.jsx)(V.AnimationGridComponent,{globalState:this.props.globalState,animatable:X,scene:X.getScene(),lockObject:this.props.lockObject}),(0,h.jsxs)(S.LineContainerComponent,{title:"ADVANCED",closed:!0,selection:this.props.globalState,children:[X.useBones&&(0,h.jsx)(b.CheckBoxLineComponent,{label:"Compute bones using shaders",target:X,propertyName:"computeBonesUsingShaders",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Collisions",target:X,propertyName:"checkCollisions",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextLineComponent,{label:"Geometry ID",value:(xt=X.geometry)==null?void 0:xt.uniqueId.toString()}),(0,h.jsx)(E.TextLineComponent,{label:"Has normals",value:X.isVerticesDataPresent(A.VertexBuffer.NormalKind)?"Yes":"No"}),(0,h.jsx)(E.TextLineComponent,{label:"Has vertex colors",value:X.isVerticesDataPresent(A.VertexBuffer.ColorKind)?"Yes":"No"}),(0,h.jsx)(E.TextLineComponent,{label:"Has UV set 0",value:X.isVerticesDataPresent(A.VertexBuffer.UVKind)?"Yes":"No"}),(0,h.jsx)(E.TextLineComponent,{label:"Has UV set 1",value:X.isVerticesDataPresent(A.VertexBuffer.UV2Kind)?"Yes":"No"}),(0,h.jsx)(E.TextLineComponent,{label:"Has UV set 2",value:X.isVerticesDataPresent(A.VertexBuffer.UV3Kind)?"Yes":"No"}),(0,h.jsx)(E.TextLineComponent,{label:"Has UV set 3",value:X.isVerticesDataPresent(A.VertexBuffer.UV4Kind)?"Yes":"No"}),(0,h.jsx)(E.TextLineComponent,{label:"Has tangents",value:X.isVerticesDataPresent(A.VertexBuffer.TangentKind)?"Yes":"No"}),(0,h.jsx)(E.TextLineComponent,{label:"Has matrix weights",value:X.isVerticesDataPresent(A.VertexBuffer.MatricesWeightsKind)?"Yes":"No"}),(0,h.jsx)(E.TextLineComponent,{label:"Has matrix indices",value:X.isVerticesDataPresent(A.VertexBuffer.MatricesIndicesKind)?"Yes":"No"})]}),X.physicsImpostor!=null&&(0,h.jsxs)(S.LineContainerComponent,{title:"PHYSICS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(R.FloatLineComponent,{lockObject:this.props.lockObject,label:"Mass",target:X.physicsImpostor,propertyName:"mass",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.FloatLineComponent,{lockObject:this.props.lockObject,label:"Friction",target:X.physicsImpostor,propertyName:"friction",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.FloatLineComponent,{lockObject:this.props.lockObject,label:"Restitution",target:X.physicsImpostor,propertyName:"restitution",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextLineComponent,{label:"Type",value:this.convertPhysicsTypeToString()})]}),X.physicsBody&&(0,h.jsx)(Q.PhysicsBodyGridComponent,{lockObject:this.props.lockObject,globalState:this.props.globalState,body:X.physicsBody,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"OCCLUSIONS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(D.OptionsLine,{label:"Type",options:Ve,target:X,propertyName:"occlusionType",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Retry count",minimum:-1,maximum:10,decimalCount:0,step:1,target:X,propertyName:"occlusionRetryCount",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(D.OptionsLine,{label:"Algorithm",options:st,target:X,propertyName:"occlusionQueryAlgorithmType",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"EDGE RENDERING",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enable",target:X,isSelected:()=>X.edgesRenderer!=null,onSelect:Qe=>{Qe?X.enableEdgesRendering():X.disableEdgesRendering()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Edge width",minimum:0,maximum:10,step:.1,target:X,propertyName:"edgesWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.Color4LineComponent,{lockObject:this.props.lockObject,label:"Edge color",target:X,propertyName:"edgesColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),!X.isAnInstance&&(0,h.jsxs)(S.LineContainerComponent,{title:"OUTLINE & OVERLAY",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Render overlay",target:X,propertyName:"renderOverlay",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(N.Color3LineComponent,{lockObject:this.props.lockObject,label:"Overlay color",target:X,propertyName:"overlayColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Render outline",target:X,propertyName:"renderOutline",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(N.Color3LineComponent,{lockObject:this.props.lockObject,label:"Outline color",target:X,propertyName:"outlineColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.FloatLineComponent,{lockObject:this.props.lockObject,label:"Outline width",target:X,propertyName:"outlineWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"DEBUG",closed:!0,selection:this.props.globalState,children:[!X.isAnInstance&&(0,h.jsx)(b.CheckBoxLineComponent,{label:"Display normals",isSelected:()=>ue,onSelect:()=>this.displayNormals()}),!X.isAnInstance&&(0,h.jsx)(b.CheckBoxLineComponent,{label:"Display vertex colors",isSelected:()=>he,onSelect:()=>this.displayVertexColors()}),X.isVerticesDataPresent(A.VertexBuffer.NormalKind)&&(0,h.jsx)(b.CheckBoxLineComponent,{label:"Render vertex normals",isSelected:()=>fe,onSelect:()=>this.renderNormalVectors()}),!X.isAnInstance&&(0,h.jsx)(b.CheckBoxLineComponent,{label:"Render wireframe over mesh",isSelected:()=>Ae,onSelect:()=>this.renderWireframeOver()}),!X.isAnInstance&&X.skeleton&&(0,h.jsx)(b.CheckBoxLineComponent,{label:"Display BoneWeights",isSelected:()=>Se,onSelect:()=>this.displayBoneWeights()}),!X.isAnInstance&&this.state.displayBoneWeights&&X.skeleton&&(0,h.jsx)(D.OptionsLine,{label:"Target Bone Name",options:at,target:X.reservedDataStore,propertyName:"displayBoneIndex",noDirectUpdate:!0,onSelect:Qe=>{this.onBoneDisplayIndexChange(Qe),this.forceUpdate()}}),!X.isAnInstance&&this.state.displayBoneWeights&&X.skeleton&&(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,label:"Target Bone",decimalCount:0,target:X.reservedDataStore,propertyName:"displayBoneIndex",minimum:0,maximum:at.length-1||0,step:1,onChange:Qe=>{this.onBoneDisplayIndexChange(Qe),this.forceUpdate()}}),!X.isAnInstance&&X.skeleton&&(0,h.jsx)(b.CheckBoxLineComponent,{label:"Display SkeletonMap",isSelected:()=>we,onSelect:()=>this.displaySkeletonMap()})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/physics/physicsBodyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PhysicsBodyGridComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),A=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),S=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/physics/physicsMassPropertiesGridComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/physics/physicsMaterialGridComponent.js"),b=d("../../../../node_modules/react/index.js"),M=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js");function T(I){var Y,V;const N=((Y=I.body._pluginDataInstances)==null?void 0:Y.length)??0,[w,D]=(0,b.useState)({selected:0}),k=ee=>{D({selected:ee})};return(0,h.jsxs)(x.LineContainerComponent,{title:"PHYSICS",closed:!0,selection:I.globalState,children:[N>0&&(0,h.jsx)(M.FloatLineComponent,{label:"Selected instance",lockObject:I.lockObject,target:w,propertyName:"selected",onChange:k,min:0,max:N-1,isInteger:!0}),(0,h.jsx)(S.PhysicsMassPropertiesGridComponent,{lockObject:I.lockObject,onPropertyChangedObservable:I.onPropertyChangedObservable,body:I.body,globalState:I.globalState,instanceIndex:w.selected}),(0,h.jsx)(E.PhysicsMaterialGridComponent,{lockObject:I.lockObject,onPropertyChangedObservable:I.onPropertyChangedObservable,body:I.body,globalState:I.globalState}),(0,h.jsx)(A.TextLineComponent,{label:"Motion Type",value:O(I.body.motionType)}),(0,h.jsx)(A.TextLineComponent,{label:"Shape Type",value:R((V=I.body.shape)==null?void 0:V.type)})]})}function O(I){switch(I){case 2:return"Dynamic";case 0:return"Static";case 1:return"Animated";default:return"Unknown"}}function R(I){switch(I){case 3:return"Box";case 0:return"Sphere";case 2:return"Cylinder";case 1:return"Capsule";case 5:return"Container";case 4:return"Convex Hull";case 6:return"Mesh";case 7:return"Heightfield";default:return"Unknown"}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/physics/physicsMassPropertiesGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PhysicsMassPropertiesGridComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js");function A(S){const E=S.body.getMassProperties(S.instanceIndex),b=M=>{E.mass=M,S.body.setMassProperties(E,S.instanceIndex)};return(0,h.jsx)(h.Fragment,{children:(0,h.jsx)(x.FloatLineComponent,{lockObject:S.lockObject,label:"Mass",target:E,propertyName:"mass",onPropertyChangedObservable:S.onPropertyChangedObservable,onChange:b})})}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/physics/physicsMaterialGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PhysicsMaterialGridComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js");function A(S){var b;const E=(b=S.body.shape)==null?void 0:b.material;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(x.FloatLineComponent,{lockObject:S.lockObject,label:"Dynamic Friction",target:E,propertyName:"friction",onPropertyChangedObservable:S.onPropertyChangedObservable,disabled:!0}),(0,h.jsx)(x.FloatLineComponent,{lockObject:S.lockObject,label:"Restitution",target:E,propertyName:"restitution",onPropertyChangedObservable:S.onPropertyChangedObservable,disabled:!0}),(0,h.jsx)(x.FloatLineComponent,{lockObject:S.lockObject,label:"Static Friction",target:E,propertyName:"staticFriction",onPropertyChangedObservable:S.onPropertyChangedObservable,disabled:!0})]})}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/skeletonPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SkeletonPropertyGridComponent:()=>N});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/animationPropertyGridComponent.js"),M=d("core/Debug/physicsViewer"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),I=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js");class N extends x.Component{constructor(D){super(D),this._skeletonViewersEnabled=!1,this._skeletonViewerDisplayOptions={displayMode:M.SkeletonViewer.DISPLAY_LINES,sphereBaseSize:.15,sphereScaleUnit:2,sphereFactor:.865,midStep:.235,midStepFactor:.155},this._skeletonViewers=new Array,this.checkSkeletonViewerState(this.props)}switchSkeletonViewers(){this._skeletonViewersEnabled=!this._skeletonViewersEnabled;const D=this.props.skeleton.getScene();if(this._skeletonViewersEnabled){for(const k of D.meshes)if(k.skeleton===this.props.skeleton){let Y=!1;for(let ee=0;ee<this._skeletonViewers.length;ee++)if(this._skeletonViewers[ee].skeleton===k.skeleton){Y=!0;break}if(Y)continue;const V=new M.SkeletonViewer(k.skeleton,k,D,!0,3,{displayMode:this._skeletonViewerDisplayOptions.displayMode,displayOptions:{sphereBaseSize:this._skeletonViewerDisplayOptions.sphereBaseSize,sphereScaleUnit:this._skeletonViewerDisplayOptions.sphereScaleUnit,sphereFactor:this._skeletonViewerDisplayOptions.sphereFactor,midStep:this._skeletonViewerDisplayOptions.midStep,midStepFactor:this._skeletonViewerDisplayOptions.midStepFactor}});V.isEnabled=!0,this._skeletonViewers.push(V),k.reservedDataStore||(k.reservedDataStore={}),k.reservedDataStore.skeletonViewer=V}}else{for(let k=0;k<this._skeletonViewers.length;k++){const Y=this._skeletonViewers[k];Y.mesh&&(Y.mesh.reservedDataStore.skeletonViewer=null),Y.dispose()}this._skeletonViewers=[]}}checkSkeletonViewerState(D){const k=D.skeleton.getScene();if(this._skeletonViewers=[],!k)return;let Y=!0;for(const V of k.meshes)if(V.skeleton===D.skeleton&&V.reservedDataStore&&V.reservedDataStore.skeletonViewer&&(this._skeletonViewers.push(V.reservedDataStore.skeletonViewer),Y)){Y=!1,this._skeletonViewerDisplayOptions.displayMode=this._skeletonViewers[0].displayMode;for(const ee in this._skeletonViewers[0].options.displayOptions)ee&&(this._skeletonViewerDisplayOptions[ee]=this._skeletonViewers[0].options.displayOptions[ee])}this._skeletonViewersEnabled=this._skeletonViewers.length>0}changeDisplayMode(){if(this._skeletonViewersEnabled)for(let D=0;D<this._skeletonViewers.length;D++)this._skeletonViewers[D].changeDisplayMode(this._skeletonViewerDisplayOptions.displayMode||0)}changeDisplayOptions(D,k){if(this._skeletonViewersEnabled){for(let Y=0;Y<this._skeletonViewers.length;Y++)this._skeletonViewers[Y].changeDisplayOptions(D,k);this._skeletonViewerDisplayOptions[D]!==void 0&&(this._skeletonViewerDisplayOptions[D]=k)}}shouldComponentUpdate(D){return D.skeleton!==this.props.skeleton&&this.checkSkeletonViewerState(D),!0}render(){const D=this.props.skeleton,k=[{label:"Lines",value:M.SkeletonViewer.DISPLAY_LINES},{label:"Spheres",value:M.SkeletonViewer.DISPLAY_SPHERES},{label:"Sphere and Spurs",value:M.SkeletonViewer.DISPLAY_SPHERE_AND_SPURS}];let Y;return this._skeletonViewerDisplayOptions.displayMode>M.SkeletonViewer.DISPLAY_LINES?Y=(0,h.jsxs)(A.LineContainerComponent,{title:"DISPLAY OPTIONS",selection:this.props.globalState,children:[(0,h.jsx)(R.FloatLineComponent,{lockObject:this.props.lockObject,label:"sphereBaseSize",target:this._skeletonViewerDisplayOptions,propertyName:"sphereBaseSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onChange:V=>{this.changeDisplayOptions("sphereBaseSize",V)}}),(0,h.jsx)(R.FloatLineComponent,{lockObject:this.props.lockObject,label:"sphereScaleUnit",target:this._skeletonViewerDisplayOptions,propertyName:"sphereScaleUnit",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onChange:V=>{this.changeDisplayOptions("sphereScaleUnit",V)}}),(0,h.jsx)(R.FloatLineComponent,{lockObject:this.props.lockObject,label:"sphereFactor",target:this._skeletonViewerDisplayOptions,propertyName:"sphereFactor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onChange:V=>{this.changeDisplayOptions("sphereFactor",V)}}),(0,h.jsx)(R.FloatLineComponent,{lockObject:this.props.lockObject,label:"midStep",target:this._skeletonViewerDisplayOptions,propertyName:"midStep",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onChange:V=>{this.changeDisplayOptions("midStep",V)}}),(0,h.jsx)(R.FloatLineComponent,{lockObject:this.props.lockObject,label:"midStepFactor",target:this._skeletonViewerDisplayOptions,propertyName:"midStepFactor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onChange:V=>{this.changeDisplayOptions("midStepFactor",V)}})]}):Y=null,(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(T.CustomPropertyGridComponent,{globalState:this.props.globalState,target:D,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(A.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(E.TextLineComponent,{label:"ID",value:D.id,onCopy:!0}),(0,h.jsx)(E.TextLineComponent,{label:"Bone count",value:D.bones.length.toString()}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Use texture to store matrices",target:D,propertyName:"useTextureToStoreBoneMatrices",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(I.ButtonLineComponent,{label:"Return to rest",onClick:()=>D.returnToRest()})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"DEBUG",selection:this.props.globalState,children:[(0,h.jsx)(S.CheckBoxLineComponent,{label:"Enabled",isSelected:()=>this._skeletonViewersEnabled,onSelect:()=>this.switchSkeletonViewers()}),(0,h.jsx)(O.OptionsLine,{label:"displayMode",options:k,target:this._skeletonViewerDisplayOptions,propertyName:"displayMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:()=>this.changeDisplayMode()}),Y]}),(0,h.jsx)(b.AnimationGridComponent,{globalState:this.props.globalState,animatable:D,scene:D.getScene(),lockObject:this.props.lockObject})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/meshes/transformNodePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TransformNodePropertyGridComponent:()=>k});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),M=d("../../../dev/inspector/dist/components/actionTabs/lines/quaternionLineComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),I=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/animationPropertyGridComponent.js"),N=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/commonPropertyGridComponent.js"),w=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/variantsPropertyGridComponent.js"),D=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/parentPropertyGridComponent.js");class k extends x.Component{constructor(V){super(V)}render(){const V=this.props.transformNode;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(T.CustomPropertyGridComponent,{globalState:this.props.globalState,target:V,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(A.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(b.TextLineComponent,{label:"ID",value:V.id,onCopy:!0}),(0,h.jsx)(R.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:V,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextLineComponent,{label:"Unique ID",value:V.uniqueId.toString()}),(0,h.jsx)(b.TextLineComponent,{label:"Class",value:V.getClassName()}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"IsEnabled",isSelected:()=>V.isEnabled(),onSelect:ee=>V.setEnabled(ee)}),(0,h.jsx)(D.ParentPropertyGridComponent,{globalState:this.props.globalState,node:V,lockObject:this.props.lockObject}),(0,h.jsx)(O.ButtonLineComponent,{label:"Dispose",onClick:()=>{V.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null)}})]}),(0,h.jsx)(N.CommonPropertyGridComponent,{host:V,lockObject:this.props.lockObject,globalState:this.props.globalState}),(0,h.jsx)(w.VariantsPropertyGridComponent,{host:V,lockObject:this.props.lockObject,globalState:this.props.globalState}),(0,h.jsxs)(A.LineContainerComponent,{title:"TRANSFORMATIONS",selection:this.props.globalState,children:[(0,h.jsx)(E.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Position",target:V,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!V.rotationQuaternion&&(0,h.jsx)(E.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Rotation",useEuler:this.props.globalState.onlyUseEulers,target:V,propertyName:"rotation",step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),V.rotationQuaternion&&(0,h.jsx)(M.QuaternionLineComponent,{lockObject:this.props.lockObject,label:"Rotation",useEuler:this.props.globalState.onlyUseEulers,target:V,propertyName:"rotationQuaternion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Scaling",target:V,propertyName:"scaling",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsx)(I.AnimationGridComponent,{globalState:this.props.globalState,animatable:V,scene:V.getScene(),lockObject:this.props.lockObject})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/metadata/metadataPropertyGrid.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>k});var h=d("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),x=d.n(h),A=d("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),S=d.n(A),E=d("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),b=d.n(E),M=d("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),T=d.n(M),O=d("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),R=d.n(O),I=d("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),N=d.n(I),w=d("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/metadata/metadataPropertyGrid.scss"),D={};D.styleTagTransform=N(),D.setAttributes=T(),D.insert=b().bind(null,"head"),D.domAPI=S(),D.insertStyleElement=R(),x()(w.default,D);const k=w.default&&w.default.locals?w.default.locals:void 0},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/metadata/metadataPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{MetadataGridComponent:()=>I});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/imgs/copy.svg");d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/metadata/metadataPropertyGrid.scss");var O=d("core/Misc/observable"),R;(function(N){N.UNDEFINED="undefined",N.NULL="null",N.STRING="string",N.OBJECT="Object",N.JSON="JSON"})(R||(R={}));class I extends x.Component{constructor(w){super(w),this.state={selectedEntityMetadata:"",dirty:!1,prettyJson:!1,preventObjCorruption:!0,metadataPropType:R.UNDEFINED,statusMessage:"ready to pick",isValidJson:!1},this._textAreaHost=x.createRef(),this.refreshSelected=this.refreshSelected.bind(this),this.populateGltfExtras=this.populateGltfExtras.bind(this)}componentDidMount(){this.props.globalState&&this.refreshSelected()}componentDidUpdate(w){this.props.entity&&w.entity!==this.props.entity&&this.refreshSelected()}refreshSelected(){if(this.props.entity){const w=this.parsableJson(this.props.entity.metadata),D=this.getEntityType(this.props.entity);this.setState({statusMessage:"",selectedEntityMetadata:this.parseMetaObject(w,this.props.entity.metadata),metadataPropType:D,isValidJson:w}),this.setTextAreaDisabled(this.state.preventObjCorruption&&D===R.OBJECT)}else this.setState({statusMessage:"could not find entity, please pick again",selectedEntityMetadata:"",metadataPropType:R.UNDEFINED,isValidJson:!1}),this.setTextAreaDisabled(!0)}setTextAreaDisabled(w){var D,k;try{if(this._textAreaHost.current){const Y=(k=(D=this._textAreaHost.current)==null?void 0:D.firstChild)==null?void 0:k.firstChild;Y.disabled=w}}catch(Y){O.Logger.Error(Y)}}getClassName(){switch(this.state.metadataPropType){case R.STRING:return"meta-string";case R.JSON:return"meta-json";case R.OBJECT:return this.state.preventObjCorruption?"meta-object-protect":"meta-object";default:return""}}getEntityType(w){if(Object.prototype.hasOwnProperty.call(w,"metadata")){const D=w.metadata;return this.isString(D)?R.STRING:D===null?R.NULL:this.objectCanSafelyStringify(D)?R.JSON:R.OBJECT}return R.UNDEFINED}isString(w){return typeof w=="string"||w instanceof String}parsableJson(w){if(!w)return!1;try{return!!JSON.parse(JSON.stringify(w))}catch{return!1}}parsableString(w){try{return this.setState({statusMessage:null}),JSON.parse(w)}catch(D){return this.setState({statusMessage:"invalid JSON: "+D.message}),null}}parseMetaObject(w,D){return w?JSON.stringify(D,void 0,this.state.prettyJson?2:void 0):this.isString(D)?D:String(D)}objectCanSafelyStringify(w){return typeof w=="function"?!1:w===null||w===!0||w===!1||typeof w=="number"||this.isString(w)?!0:typeof w=="object"?Object.values(w).length===0?!0:Object.values(w).every(D=>this.objectCanSafelyStringify(D)):Array.isArray(w)?w.every(D=>this.objectCanSafelyStringify(D)):!1}copyToClipboard(){var w,D;try{const k=(D=(w=this._textAreaHost.current)==null?void 0:w.firstChild)==null?void 0:D.firstChild;k.select(),k.setSelectionRange(0,99999),navigator.clipboard.writeText(k.value)}catch(k){window.alert("Could not copy to clipboard, see log."),O.Logger.Error(k)}}populateGltfExtras(){if(this.state.isValidJson)try{const w=this.parsableString(this.state.selectedEntityMetadata);w&&(Object.prototype.hasOwnProperty.call(w,"gltf")?Object.prototype.hasOwnProperty.call(w.gltf,"extras")?this.setState({statusMessage:"metadata.gltf.extras property already exists"}):(w.gltf.extras={},this.setState({dirty:!0,prettyJson:!1,selectedEntityMetadata:this.parseMetaObject(this.state.isValidJson,w),statusMessage:"metadata.gltf.extras property inserted, don't forget to Update!"})):(w.gltf={extras:{}},this.setState({dirty:!0,prettyJson:!1,selectedEntityMetadata:this.parseMetaObject(this.state.isValidJson,w),statusMessage:"metadata.gltf property inserted, don't forget to Update!"})))}catch(w){this.setState({statusMessage:w.message})}}render(){const w=this.state.preventObjCorruption&&this.state.metadataPropType===R.OBJECT;return(0,h.jsxs)(A.LineContainerComponent,{title:"METADATA",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(M.TextLineComponent,{label:"Property type",value:this.state.metadataPropType}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Prevent Object corruption",disabled:!1,isSelected:()=>this.state.preventObjCorruption,onSelect:D=>{this.setState({preventObjCorruption:D}),this.setTextAreaDisabled(D&&this.state.metadataPropType===R.OBJECT)}}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Pretty JSON",disabled:!1,isSelected:()=>this.state.prettyJson,onSelect:D=>{if(this.setState({prettyJson:D}),this.props.entity&&this.state.metadataPropType!==R.NULL&&this.state.metadataPropType!==R.UNDEFINED){const k=this.parsableString(this.state.selectedEntityMetadata);k&&!this.isString(k)&&this.setState({dirty:!0,selectedEntityMetadata:JSON.stringify(k,void 0,D?2:void 0)})}}}),(0,h.jsx)("div",{ref:this._textAreaHost,id:"metadata-container",className:this.getClassName(),children:(0,h.jsx)(b.TextInputLineComponent,{multilines:!0,value:this.state.selectedEntityMetadata,onChange:D=>{if(D===this.state.selectedEntityMetadata)return;if(this.setState({dirty:!0,prettyJson:!1,selectedEntityMetadata:D}),D===""||D==="undefined"){this.setState({isValidJson:!1,metadataPropType:R.UNDEFINED});return}if(D==="null"){this.setState({isValidJson:!1,metadataPropType:R.NULL});return}const k=!!this.parsableString(D);this.setState({isValidJson:k,metadataPropType:k?R.JSON:R.STRING})}})}),(0,h.jsx)("div",{className:"copy-root",children:(0,h.jsx)("div",{className:"copy-container",onClick:()=>this.copyToClipboard(),title:"Copy to clipboard",children:(0,h.jsx)("img",{src:T,alt:"Copy"})})}),(0,h.jsx)(E.ButtonLineComponent,{label:"Populate glTF extras",onClick:this.populateGltfExtras,isDisabled:!this.state.isValidJson||w}),(0,h.jsx)(E.ButtonLineComponent,{label:`Update metadata${this.props.entity?" as "+this.state.metadataPropType:""}`,onClick:()=>{if(this.props.entity){if(this.state.metadataPropType===R.NULL){this.props.entity.metadata=null,this.setState({statusMessage:"metadata set to null",dirty:!1});return}if(this.state.metadataPropType===R.UNDEFINED){delete this.props.entity.metadata,this.setState({statusMessage:"metadata set to undefined",dirty:!1});return}const D=this.parsableString(this.state.selectedEntityMetadata);this.props.entity.metadata=D||this.state.selectedEntityMetadata,this.setState({statusMessage:"metadata updated",dirty:!1})}},isDisabled:!this.state.dirty||w}),(0,h.jsx)("div",{className:"type-status",children:this.state.statusMessage})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/parentPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ParentPropertyGridComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js");class E extends x.Component{constructor(M){super(M)}_getNameForSortingAndDisplay(M){return typeof M.name=="string"?M.name:"no name"}render(){const M=this.props.node,O=M.getScene().getNodes().filter(I=>I!==M).sort((I,N)=>this._getNameForSortingAndDisplay(I).localeCompare(this._getNameForSortingAndDisplay(N))),R=O.map((I,N)=>({label:this._getNameForSortingAndDisplay(I),value:N}));return R.splice(0,0,{label:"None",value:-1}),(0,h.jsxs)(h.Fragment,{children:[M.parent&&(0,h.jsx)(A.TextLineComponent,{label:"Link to parent",value:M.parent.name,onLink:()=>this.props.globalState.onSelectionChangedObservable.notifyObservers(M.parent)}),(0,h.jsx)(S.OptionsLine,{label:"Parent",options:R,target:M,propertyName:"parent",noDirectUpdate:!0,onSelect:I=>{const N=M;if(typeof I!="number"||I<0)N.setParent?N.setParent(null):M.parent=null;else{const w=O[I];N.setParent?N.setParent(w):M.parent=w}this.props.globalState.onSelectionRenamedObservable.notifyObservers()},extractValue:()=>M.parent?O.indexOf(M.parent):-1,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/boxEmitterGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{BoxEmitterGridComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js");class S extends x.Component{constructor(b){super(b)}render(){const b=this.props.emitter;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Direction 1",target:b,propertyName:"direction1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Direction 2",target:b,propertyName:"direction2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Min emit box",target:b,propertyName:"minEmitBox",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Max emit box",target:b,propertyName:"maxEmitBox",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/colorGradientStepGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ColorGradientStepGridComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),S=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),E=d("core/Misc/observable"),b=d("../../../dev/sharedUiComponents/dist/lines/colorPickerComponent.js");class M extends x.Component{constructor(O){super(O),this.state={gradient:O.gradient.gradient}}updateColor1(O){this.props.gradient instanceof E.ColorGradient?this.props.gradient.color1=E.Color4.FromHexString(O):this.props.gradient.color=E.Color3.FromHexString(O),this.props.onUpdateGradient(),this.forceUpdate()}updateColor2(O){this.props.gradient instanceof E.ColorGradient&&(this.props.gradient.color2=E.Color4.FromHexString(O)),this.props.onUpdateGradient(),this.forceUpdate()}updateGradient(O){this.props.gradient.gradient=O,this.setState({gradient:O}),this.props.onUpdateGradient()}onPointerUp(){this.props.onCheckForReOrder()}lock(){this.props.lockObject&&(this.props.lockObject.lock=!0)}unlock(){this.props.lockObject&&(this.props.lockObject.lock=!1)}render(){const O=this.props.gradient;return(0,h.jsxs)("div",{className:"gradient-step",children:[(0,h.jsx)("div",{className:"step",children:`#${this.props.lineIndex}`}),(0,h.jsx)("div",{className:"color1",children:(0,h.jsx)(b.ColorPickerLine,{lockObject:this.props.lockObject,value:O instanceof E.Color3Gradient?O.color:O.color1,onColorChanged:R=>{this.updateColor1(R)}})}),this.props.host instanceof E.ParticleSystem&&O instanceof E.ColorGradient&&(0,h.jsx)("div",{className:"color2",children:(0,h.jsx)(b.ColorPickerLine,{lockObject:this.props.lockObject,value:O.color2?O.color2:new E.Color4,onColorChanged:R=>{this.updateColor2(R)}})}),(0,h.jsx)("div",{className:"step-value",children:O.gradient.toFixed(2)}),(0,h.jsx)("div",{className:"step-slider",children:(0,h.jsx)("input",{className:"range",type:"range",step:.01,min:0,max:1,value:O.gradient,onPointerUp:()=>this.onPointerUp(),onChange:R=>this.updateGradient(parseFloat(R.target.value))})}),(0,h.jsx)("div",{className:"gradient-delete hoverIcon",onClick:()=>this.props.onDelete(),children:(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faTrash})})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/coneEmitterGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ConeEmitterGridComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class E extends x.Component{constructor(M){super(M)}render(){const M=this.props.emitter;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Radius range",target:M,propertyName:"radiusRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Height range",target:M,propertyName:"heightRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Emit from spawn point only",target:M,propertyName:"emitFromSpawnPointOnly",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Direction randomizer",target:M,propertyName:"directionRandomizer",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/cylinderEmitterGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CylinderEmitterGridComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js");class E extends x.Component{constructor(M){super(M)}render(){const M=this.props.emitter;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(S.FloatLineComponent,{lockObject:this.props.lockObject,label:"Radius",target:M,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.FloatLineComponent,{lockObject:this.props.lockObject,label:"Height",target:M,propertyName:"height",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Radius range",target:M,propertyName:"radiusRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Direction randomizer",target:M,propertyName:"directionRandomizer",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/factorGradientStepGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{FactorGradientStepGridComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),S=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),E=d("core/Misc/observable");class b extends x.Component{constructor(T){var O;super(T),this.state={gradient:T.gradient.gradient,factor1:this.props.gradient.factor1.toString(),factor2:(O=this.props.gradient.factor2)==null?void 0:O.toString()}}shouldComponentUpdate(T,O){var R;return T.gradient!==this.props.gradient&&(O.gradient=T.gradient.gradient,O.factor1=T.gradient.factor1.toString(),O.factor2=(R=T.gradient.factor2)==null?void 0:R.toString()),!0}updateFactor1(T){if(/[^0-9.-]/g.test(T))return;const O=parseFloat(T);this.setState({factor1:T}),!isNaN(O)&&(this.props.gradient.factor1=O,this.props.onUpdateGradient(),this.forceUpdate())}updateFactor2(T){if(/[^0-9.-]/g.test(T))return;const O=parseFloat(T);this.setState({factor2:T}),!isNaN(O)&&(this.props.gradient.factor2=O,this.props.onUpdateGradient(),this.forceUpdate())}updateGradient(T){this.props.gradient.gradient=T,this.setState({gradient:T}),this.props.onUpdateGradient()}onPointerUp(){this.props.onCheckForReOrder()}lock(){this.props.lockObject&&(this.props.lockObject.lock=!0)}unlock(){this.props.lockObject&&(this.props.lockObject.lock=!1)}render(){const T=this.props.gradient;return(0,h.jsxs)("div",{className:"gradient-step",children:[(0,h.jsx)("div",{className:"step",children:`#${this.props.lineIndex}`}),(0,h.jsx)("div",{className:"factor1",children:(0,h.jsx)("input",{type:"number",step:"0.01",className:"numeric-input",value:this.state.factor1,onBlur:()=>this.unlock(),onFocus:()=>this.lock(),onChange:O=>this.updateFactor1(O.target.value)})}),this.props.host instanceof E.ParticleSystem&&(0,h.jsx)("div",{className:"factor2",children:(0,h.jsx)("input",{type:"number",step:"0.01",className:"numeric-input"+(this.state.factor1===this.state.factor2||T.factor2===void 0?" grayed":""),value:this.state.factor2,onBlur:()=>this.unlock(),onFocus:()=>this.lock(),onChange:O=>this.updateFactor2(O.target.value)})}),(0,h.jsx)("div",{className:"step-value",children:T.gradient.toFixed(2)}),(0,h.jsx)("div",{className:"step-slider",children:(0,h.jsx)("input",{className:"range",type:"range",step:.01,min:0,max:1,value:T.gradient,onPointerUp:()=>this.onPointerUp(),onChange:O=>this.updateGradient(parseFloat(O.target.value))})}),(0,h.jsx)("div",{className:"gradient-delete hoverIcon",onClick:()=>this.props.onDelete(),children:(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faTrash})})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/hemisphericEmitterGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{HemisphericEmitterGridComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js");class E extends x.Component{constructor(M){super(M)}render(){const M=this.props.emitter;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(S.FloatLineComponent,{lockObject:this.props.lockObject,label:"Radius",target:M,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Radius range",target:M,propertyName:"radiusRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Direction randomizer",target:M,propertyName:"directionRandomizer",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/meshEmitterGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{MeshEmitterGridComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/lines/meshPickerComponent.js");class b extends x.Component{constructor(T){super(T)}render(){const T=this.props.emitter;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(E.MeshPickerComponent,{globalState:this.props.globalState,label:"Source",scene:this.props.scene,onPropertyChangedObservable:this.props.onPropertyChangedObservable,target:this.props.emitter,property:"mesh"}),!T.useMeshNormalsForDirection&&(0,h.jsx)(A.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Direction 1",target:T,propertyName:"direction1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!T.useMeshNormalsForDirection&&(0,h.jsx)(A.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Direction 2",target:T,propertyName:"direction2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Use normals for direction",target:T,propertyName:"useMeshNormalsForDirection",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/particleSystemPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ParticleSystemPropertyGridComponent:()=>re});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/lines/textureLinkLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),R=d("core/Misc/observable"),I=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),N=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),w=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),D=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/boxEmitterGridComponent.js"),k=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/coneEmitterGridComponent.js"),Y=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/cylinderEmitterGridComponent.js"),V=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/hemisphericEmitterGridComponent.js"),ee=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/pointEmitterGridComponent.js"),K=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/sphereEmitterGridComponent.js"),ie=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/meshEmitterGridComponent.js"),ne=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/valueGradientGridComponent.js"),te=d("../../../dev/sharedUiComponents/dist/lines/fileButtonLineComponent.js"),W=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),Q=d("../../../dev/sharedUiComponents/dist/lines/color4LineComponent.js");class re extends x.Component{constructor(X){super(X),this._snippetUrl=R.Constants.SnippetUrl}renderEmitter(){var se;const X=this.props.system;switch((se=X.particleEmitterType)==null?void 0:se.getClassName()){case"BoxParticleEmitter":return(0,h.jsx)(D.BoxEmitterGridComponent,{lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:X.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"ConeParticleEmitter":return(0,h.jsx)(k.ConeEmitterGridComponent,{lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:X.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"CylinderParticleEmitter":return(0,h.jsx)(Y.CylinderEmitterGridComponent,{lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:X.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"HemisphericParticleEmitter":return(0,h.jsx)(V.HemisphericEmitterGridComponent,{lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:X.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"MeshParticleEmitter":return(0,h.jsx)(ie.MeshEmitterGridComponent,{lockObject:this.props.lockObject,scene:X.getScene(),globalState:this.props.globalState,emitter:X.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"PointParticleEmitter":return(0,h.jsx)(ee.PointEmitterGridComponent,{lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:X.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"SphereParticleEmitter":return(0,h.jsx)(K.SphereEmitterGridComponent,{lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:X.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}return null}raiseOnPropertyChanged(X,se,ue){if(!this.props.onPropertyChangedObservable)return;const he=this.props.system;this.props.onPropertyChangedObservable.notifyObservers({object:he,property:X,value:se,initialValue:ue})}renderControls(){const X=this.props.system;if(X instanceof R.GPUParticleSystem){const ue=X.isStarted()&&!X.isStopped();return(0,h.jsx)(M.ButtonLineComponent,{label:ue?"Stop":"Start",onClick:()=>{ue?(X.stop(),X.reset()):X.start(),this.forceUpdate()}})}const se=X.isStarted();return(0,h.jsxs)(h.Fragment,{children:[!X.isStopping()&&(0,h.jsx)(M.ButtonLineComponent,{label:se?"Stop":"Start",onClick:()=>{se?X.stop():X.start(),this.forceUpdate()}}),X.isStopping()&&(0,h.jsx)(S.TextLineComponent,{label:"System is stopping...",ignoreValue:!0})]})}saveToFile(){const X=this.props.system,se=JSON.stringify(X.serialize(!0));R.Tools.Download(new Blob([se]),"particleSystem.json")}loadFromFile(X){const se=this.props.system,ue=se.getScene();ue&&R.Tools.ReadFile(X,he=>{const fe=new TextDecoder("utf-8"),Ae=JSON.parse(fe.decode(he)),Se=se instanceof R.GPUParticleSystem;se.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null);const we=Se?R.GPUParticleSystem.Parse(Ae,ue,""):R.ParticleSystem.Parse(Ae,ue,"");this.props.globalState.onSelectionChangedObservable.notifyObservers(we)},void 0,!0)}loadFromSnippet(){const X=this.props.system,se=X.getScene(),ue=X instanceof R.GPUParticleSystem,he=window.prompt("Please enter the snippet ID to use");!he||!se||(X.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null),R.ParticleHelper.ParseFromSnippetAsync(he,se,ue).then(fe=>{this.props.globalState.onSelectionChangedObservable.notifyObservers(fe)}).catch(fe=>{alert("Unable to load your particle system: "+fe)}))}saveToSnippet(){const X=this.props.system,se=JSON.stringify(X.serialize(!0)),ue=new XMLHttpRequest;ue.onreadystatechange=()=>{if(ue.readyState==4)if(ue.status==200){const fe=JSON.parse(ue.responseText),Ae=X.snippetId||"_BLANK";X.snippetId=fe.id,fe.version&&fe.version!="0"&&(X.snippetId+="#"+fe.version),this.forceUpdate(),navigator.clipboard&&navigator.clipboard.writeText(X.snippetId);const Se=window;Se.Playground&&Ae&&Se.Playground.onRequestCodeChangeObservable.notifyObservers({regex:new RegExp(`ParticleHelper.ParseFromSnippetAsync\\("${Ae}`,"g"),replace:`ParticleHelper.ParseFromSnippetAsync("${X.snippetId}`}),alert("Particle system saved with ID: "+X.snippetId+" (please note that the id was also saved to your clipboard)")}else alert("Unable to save your particle system")},ue.open("POST",this._snippetUrl+(X.snippetId?"/"+X.snippetId:""),!0),ue.setRequestHeader("Content-Type","application/json");const he={payload:JSON.stringify({particleSystem:se}),name:"",description:"",tags:""};ue.send(JSON.stringify(he))}updateTexture(X){const se=this.props.system;R.Tools.ReadFile(X,ue=>{const he=new Blob([ue],{type:"octet/stream"}),fe=URL.createObjectURL(he);se.particleTexture=new R.Texture(fe,se.getScene(),!1,!1),this.forceUpdate()},void 0,!0)}render(){var Ae,Se;const X=this.props.system,se=[{label:"Add",value:R.ParticleSystem.BLENDMODE_ADD},{label:"Multiply",value:R.ParticleSystem.BLENDMODE_MULTIPLY},{label:"Multiply Add",value:R.ParticleSystem.BLENDMODE_MULTIPLYADD},{label:"OneOne",value:R.ParticleSystem.BLENDMODE_ONEONE},{label:"Standard",value:R.ParticleSystem.BLENDMODE_STANDARD}],ue=[{label:"Box",value:0},{label:"Cone",value:1},{label:"Cylinder",value:2},{label:"Hemispheric",value:3},{label:"Mesh",value:4},{label:"Point",value:5},{label:"Sphere",value:6}],he=this.props.system.getScene().meshes.filter(we=>!!we.name),fe=[{label:"None",value:-1},{label:"Vector3",value:0}];return he.sort((we,ke)=>we.name.localeCompare(ke.name)),fe.push(...he.map((we,ke)=>({label:we.name,value:ke+1}))),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(E.CustomPropertyGridComponent,{globalState:this.props.globalState,target:X,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(A.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(S.TextLineComponent,{label:"ID",value:X.id,onCopy:!0}),(0,h.jsx)(W.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:X,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.TextLineComponent,{label:"Class",value:X.getClassName()}),(0,h.jsx)(S.TextLineComponent,{label:"Capacity",value:X.getCapacity().toString()}),(0,h.jsx)(S.TextLineComponent,{label:"Active count",value:X.getActiveCount().toString()}),X.particleTexture&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(T.TextureLinkLineComponent,{label:"Texture",texture:X.particleTexture,onSelectionChangedObservable:this.props.onSelectionChangedObservable}),(0,h.jsx)(te.FileButtonLine,{label:"Load texture from file",onClick:we=>this.updateTexture(we),accept:".jpg, .png, .tga, .dds, .env, .exr"})]}),(0,h.jsx)(O.OptionsLine,{label:"Blend mode",options:se,target:X,propertyName:"blendMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(I.Vector3LineComponent,{lockObject:this.props.lockObject,label:"World offset",target:X,propertyName:"worldOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(I.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Gravity",target:X,propertyName:"gravity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(N.CheckBoxLineComponent,{label:"Is billboard",target:X,propertyName:"isBillboardBased",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(N.CheckBoxLineComponent,{label:"Is local",target:X,propertyName:"isLocal",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(N.CheckBoxLineComponent,{label:"Force depth write",target:X,propertyName:"forceDepthWrite",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.SliderLineComponent,{lockObject:this.props.lockObject,label:"Update speed",target:X,propertyName:"updateSpeed",minimum:0,maximum:.1,decimalCount:3,step:.001,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"COMMANDS",selection:this.props.globalState,children:[this.renderControls(),(0,h.jsx)(M.ButtonLineComponent,{label:"Dispose",onClick:()=>{this.props.globalState.onSelectionChangedObservable.notifyObservers(null),X.dispose()}})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"FILE",selection:this.props.globalState,children:[(0,h.jsx)(te.FileButtonLine,{label:"Load",onClick:we=>this.loadFromFile(we),accept:".json"}),(0,h.jsx)(M.ButtonLineComponent,{label:"Save",onClick:()=>this.saveToFile()})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"SNIPPET",selection:this.props.globalState,children:[X.snippetId&&(0,h.jsx)(S.TextLineComponent,{label:"Snippet ID",value:X.snippetId}),(0,h.jsx)(M.ButtonLineComponent,{label:"Load from snippet server",onClick:()=>this.loadFromSnippet()}),(0,h.jsx)(M.ButtonLineComponent,{label:"Save to snippet server",onClick:()=>this.saveToSnippet()})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"EMITTER",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(O.OptionsLine,{label:"Emitter",options:fe,target:X,propertyName:"emitter",noDirectUpdate:!0,onSelect:we=>{const ke=we;switch(ke){case-1:this.raiseOnPropertyChanged("emitter",null,X.emitter),X.emitter=null;break;case 0:this.raiseOnPropertyChanged("emitter",R.Vector3.Zero(),X.emitter),X.emitter=R.Vector3.Zero();break;default:this.raiseOnPropertyChanged("emitter",he[ke-1],X.emitter),X.emitter=he[ke-1]}this.forceUpdate()},extractValue:()=>{if(!X.emitter)return-1;if(X.emitter.x!==void 0)return 0;const we=he.indexOf(X.emitter);return we>-1?we+1:-1}}),X.emitter&&X.emitter.x===void 0&&(0,h.jsx)(S.TextLineComponent,{label:"Link to emitter",value:X.emitter.name,onLink:()=>this.props.globalState.onSelectionChangedObservable.notifyObservers(X.emitter)}),X.emitter&&X.emitter.x!==void 0&&(0,h.jsx)(I.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Position",target:X,propertyName:"emitter",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.OptionsLine,{label:"Type",options:ue,target:X,propertyName:"particleEmitterType",noDirectUpdate:!0,onSelect:we=>{const ke=we,st=X.particleEmitterType;switch(ke){case 0:X.particleEmitterType=new R.BoxParticleEmitter;break;case 1:X.particleEmitterType=new R.ConeParticleEmitter;break;case 2:X.particleEmitterType=new R.CylinderParticleEmitter;break;case 3:X.particleEmitterType=new R.HemisphericParticleEmitter;break;case 4:X.particleEmitterType=new R.MeshParticleEmitter;break;case 5:X.particleEmitterType=new R.PointParticleEmitter;break;case 6:X.particleEmitterType=new R.SphereParticleEmitter;break}this.raiseOnPropertyChanged("particleEmitterType",X.particleEmitterType,st),this.forceUpdate()},extractValue:()=>{var we;switch((we=X.particleEmitterType)==null?void 0:we.getClassName()){case"BoxParticleEmitter":return 0;case"ConeParticleEmitter":return 1;case"CylinderParticleEmitter":return 2;case"HemisphericParticleEmitter":return 3;case"MeshParticleEmitter":return 4;case"PointParticleEmitter":return 5;case"SphereParticleEmitter":return 6}return 0}}),this.renderEmitter()]}),(0,h.jsxs)(A.LineContainerComponent,{title:"EMISSION",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Rate",target:X,propertyName:"emitRate",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),X instanceof R.ParticleSystem&&(0,h.jsx)(ne.ValueGradientGridComponent,{globalState:this.props.globalState,gradients:X.getEmitRateGradients(),label:"Velocity gradients",docLink:"https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/tuning_gradients#change-speed-over-lifetime",onCreateRequired:()=>{X.addEmitRateGradient(0,50,50)},mode:ne.GradientGridMode.Factor,host:X,codeRecorderPropertyName:"getEmitRateGradients()",lockObject:this.props.lockObject}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Min emit power",target:X,propertyName:"minEmitPower",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Max emit power",target:X,propertyName:"maxEmitPower",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(ne.ValueGradientGridComponent,{globalState:this.props.globalState,gradients:X.getVelocityGradients(),label:"Velocity gradients",docLink:"https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/tuning_gradients#change-speed-over-lifetime",onCreateRequired:()=>{X.addVelocityGradient(0,.1,.1)},mode:ne.GradientGridMode.Factor,host:X,codeRecorderPropertyName:"getVelocityGradients()",lockObject:this.props.lockObject}),(0,h.jsx)(ne.ValueGradientGridComponent,{globalState:this.props.globalState,gradients:X.getLimitVelocityGradients(),label:"Limit velocity gradients",docLink:"https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/tuning_gradients#limit-speed-over-lifetime",onCreateRequired:()=>{X.addLimitVelocityGradient(0,.1,.1)},mode:ne.GradientGridMode.Factor,host:X,codeRecorderPropertyName:"getLimitVelocityGradients()",lockObject:this.props.lockObject}),(0,h.jsx)(ne.ValueGradientGridComponent,{globalState:this.props.globalState,gradients:X.getDragGradients(),label:"Drag gradients",docLink:"https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/tuning_gradients#change-drag-over-lifetime",onCreateRequired:()=>{X.addDragGradient(0,.1,.1)},host:X,codeRecorderPropertyName:"getDragGradients()",mode:ne.GradientGridMode.Factor,lockObject:this.props.lockObject})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"SIZE",closed:!0,selection:this.props.globalState,children:[(!X.getSizeGradients()||((Ae=X.getSizeGradients())==null?void 0:Ae.length)===0)&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Min size",target:X,propertyName:"minSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Max size",target:X,propertyName:"maxSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Min scale X",target:X,propertyName:"minScaleX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Max scale X",target:X,propertyName:"maxScaleX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Min scale Y",target:X,propertyName:"minScaleY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Max scale Y",target:X,propertyName:"maxScaleY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),X instanceof R.ParticleSystem&&(0,h.jsx)(ne.ValueGradientGridComponent,{globalState:this.props.globalState,gradients:X.getStartSizeGradients(),label:"Start size gradients",docLink:"https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/tuning_gradients#change-size-over-lifetime",onCreateRequired:()=>{X.addStartSizeGradient(0,1,1)},host:X,codeRecorderPropertyName:"getStartSizeGradients()",mode:ne.GradientGridMode.Factor,lockObject:this.props.lockObject}),(0,h.jsx)(ne.ValueGradientGridComponent,{globalState:this.props.globalState,gradients:X.getSizeGradients(),label:"Size gradients",docLink:"https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/tuning_gradients#change-size-over-lifetime",onCreateRequired:()=>{X.addSizeGradient(0,1,1)},host:X,codeRecorderPropertyName:"getSizeGradients()",mode:ne.GradientGridMode.Factor,lockObject:this.props.lockObject})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"LIFETIME",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Min lifetime",target:X,propertyName:"minLifeTime",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Max lifetime",target:X,propertyName:"maxLifeTime",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Target stop duration",target:X,propertyName:"targetStopDuration",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),X instanceof R.ParticleSystem&&(0,h.jsx)(ne.ValueGradientGridComponent,{globalState:this.props.globalState,gradients:X.getLifeTimeGradients(),label:"Lifetime gradients",docLink:"https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/tuning_gradients#change-lifetime-over-duration",onCreateRequired:()=>{X.addLifeTimeGradient(0,1,1)},host:X,codeRecorderPropertyName:"getLifeTimeGradients()",mode:ne.GradientGridMode.Factor,lockObject:this.props.lockObject})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"COLORS",closed:!0,selection:this.props.globalState,children:[(!X.getColorGradients()||((Se=X.getColorGradients())==null?void 0:Se.length)===0)&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(Q.Color4LineComponent,{lockObject:this.props.lockObject,label:"Color 1",target:X,propertyName:"color1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(Q.Color4LineComponent,{lockObject:this.props.lockObject,label:"Color 2",target:X,propertyName:"color2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(Q.Color4LineComponent,{lockObject:this.props.lockObject,label:"Color dead",target:X,propertyName:"colorDead",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsx)(ne.ValueGradientGridComponent,{globalState:this.props.globalState,gradients:X.getColorGradients(),label:"Color gradients",docLink:"https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/tuning_gradients#change-color-over-lifetime",onCreateRequired:()=>{X.addColorGradient(0,new R.Color4(0,0,0,1),new R.Color4(0,0,0,1)),X.addColorGradient(1,new R.Color4(1,1,1,1),new R.Color4(1,1,1,1))},host:X,codeRecorderPropertyName:"getColorGradients()",mode:ne.GradientGridMode.Color4,lockObject:this.props.lockObject}),X instanceof R.ParticleSystem&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(N.CheckBoxLineComponent,{label:"Enable ramp gradients",target:X,propertyName:"useRampGradients"}),X.useRampGradients&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(ne.ValueGradientGridComponent,{globalState:this.props.globalState,gradients:X.getRampGradients(),label:"Ramp gradients",docLink:"https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/ramps_and_blends#ramp-gradients",onCreateRequired:()=>{X.addRampGradient(0,R.Color3.White()),X.addRampGradient(1,R.Color3.Black())},mode:ne.GradientGridMode.Color3,host:X,codeRecorderPropertyName:"getRampGradients()",lockObject:this.props.lockObject}),(0,h.jsx)(ne.ValueGradientGridComponent,{globalState:this.props.globalState,gradients:X.getColorRemapGradients(),label:"Color remap gradients",docLink:"https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/ramps_and_blends#ramp-gradients",onCreateRequired:()=>{X.addColorRemapGradient(0,1,1)},host:X,codeRecorderPropertyName:"getColorRemapGradients()",mode:ne.GradientGridMode.Factor,lockObject:this.props.lockObject}),(0,h.jsx)(ne.ValueGradientGridComponent,{globalState:this.props.globalState,gradients:X.getAlphaRemapGradients(),label:"Alpha remap gradients",docLink:"https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/ramps_and_blends#ramp-gradients",onCreateRequired:()=>{X.addAlphaRemapGradient(0,1,1)},host:X,codeRecorderPropertyName:"getAlphaRemapGradients()",mode:ne.GradientGridMode.Factor,lockObject:this.props.lockObject})]})]})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"ROTATION",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Min angular speed",target:X,propertyName:"minAngularSpeed",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Max angular speed",target:X,propertyName:"maxAngularSpeed",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Min initial rotation",target:X,propertyName:"minInitialRotation",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Max initial rotation",target:X,propertyName:"maxInitialRotation",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(ne.ValueGradientGridComponent,{globalState:this.props.globalState,gradients:X.getAngularSpeedGradients(),label:"Angular speed gradients",docLink:"https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/tuning_gradients#change-rotation-speed-over-lifetime",onCreateRequired:()=>{X.addAngularSpeedGradient(0,.1,.1)},host:X,codeRecorderPropertyName:"getAngularSpeedGradients()",mode:ne.GradientGridMode.Factor,lockObject:this.props.lockObject})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"SPRITESHEET",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(N.CheckBoxLineComponent,{label:"Animation sheet enabled",target:X,propertyName:"isAnimationSheetEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"First sprite index",isInteger:!0,target:X,propertyName:"startSpriteCellID",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Last sprite index",isInteger:!0,target:X,propertyName:"endSpriteCellID",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(N.CheckBoxLineComponent,{label:"Animation Loop",target:X,propertyName:"spriteCellLoop",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(N.CheckBoxLineComponent,{label:"Random start cell index",target:X,propertyName:"spriteRandomStartCell",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Cell width",isInteger:!0,target:X,propertyName:"spriteCellWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Cell height",isInteger:!0,target:X,propertyName:"spriteCellHeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.SliderLineComponent,{lockObject:this.props.lockObject,label:"Cell change speed",target:X,propertyName:"spriteCellChangeSpeed",minimum:0,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/pointEmitterGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PointEmitterGridComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js");class S extends x.Component{constructor(b){super(b)}render(){const b=this.props.emitter;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Direction 1",target:b,propertyName:"direction1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Direction 2",target:b,propertyName:"direction2",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/sphereEmitterGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SphereEmitterGridComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js");class E extends x.Component{constructor(M){super(M)}render(){const M=this.props.emitter;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.FloatLineComponent,{lockObject:this.props.lockObject,label:"Radius",target:M,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Radius range",target:M,propertyName:"radiusRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Direction randomizer",target:M,propertyName:"directionRandomizer",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/valueGradientGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{GradientGridMode:()=>O,ValueGradientGridComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),E=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/factorGradientStepGridComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/particleSystems/colorGradientStepGridComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/linkButtonComponent.js"),T=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),O;(function(I){I[I.Factor=0]="Factor",I[I.Color3=1]="Color3",I[I.Color4=2]="Color4"})(O||(O={}));class R extends x.Component{constructor(N){super(N)}deleteStep(N){const w=this.props.gradients,D=w.indexOf(N);D>-1&&(w.splice(D,1),this.updateAndSync())}addNewStep(){const N=this.props.gradients;switch(this.props.mode){case O.Factor:{const w=new A.FactorGradient(1,1,1);N.push(w);break}case O.Color4:{const w=new A.ColorGradient(1,new A.Color4(1,1,1,1),new A.Color4(1,1,1,1));N.push(w);break}case O.Color3:{const w=new A.Color3Gradient(1,A.Color3.White());N.push(w);break}}this.props.host.forceRefreshGradients(),this.forceUpdate()}checkForReOrder(){this.props.gradients.sort((w,D)=>w.gradient===D.gradient?0:w.gradient>D.gradient?1:-1),this.forceUpdate()}updateAndSync(){this.props.host.forceRefreshGradients(),this.forceUpdate()}render(){const N=this.props.gradients;return(0,h.jsxs)("div",{children:[N&&N.length>0&&(0,h.jsxs)("div",{className:"gradient-container",children:[(0,h.jsx)(M.LinkButtonComponent,{label:this.props.label,url:this.props.docLink,icon:T.faTrash,onIconClick:()=>{N.length=0,this.updateAndSync()},buttonLabel:"Add new step",onClick:()=>this.addNewStep()}),N.map((w,D)=>{const k=this.props.codeRecorderPropertyName+`[${D}]`;switch(this.props.mode){case O.Factor:return(0,h.jsx)(E.FactorGradientStepGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,onCheckForReOrder:()=>this.checkForReOrder(),onUpdateGradient:()=>this.updateAndSync(),host:this.props.host,codeRecorderPropertyName:k,lineIndex:D,gradient:w,onDelete:()=>this.deleteStep(w)},"step-"+D);case O.Color4:return(0,h.jsx)(b.ColorGradientStepGridComponent,{globalState:this.props.globalState,host:this.props.host,codeRecorderPropertyName:k,lockObject:this.props.lockObject,isColor3:!1,onCheckForReOrder:()=>this.checkForReOrder(),onUpdateGradient:()=>this.updateAndSync(),lineIndex:D,gradient:w,onDelete:()=>this.deleteStep(w)},"step-"+D);case O.Color3:return(0,h.jsx)(b.ColorGradientStepGridComponent,{globalState:this.props.globalState,host:this.props.host,codeRecorderPropertyName:k,lockObject:this.props.lockObject,isColor3:!0,onCheckForReOrder:()=>this.checkForReOrder(),onUpdateGradient:()=>this.updateAndSync(),lineIndex:D,gradient:w,onDelete:()=>this.deleteStep(w)},"step-"+D)}})]}),(!N||N.length===0)&&(0,h.jsx)(S.ButtonLineComponent,{label:"Use "+this.props.label,onClick:()=>{this.props.onCreateRequired(),this.forceUpdate()}})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/commonPostProcessPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CommonPostProcessPropertyGridComponent:()=>I});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),R=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.js");class I extends x.Component{constructor(w){super(w)}render(){const w=this.props.postProcess;return(0,h.jsxs)("div",{children:[(0,h.jsx)(R.CustomPropertyGridComponent,{globalState:this.props.globalState,target:w,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(E.TextLineComponent,{label:"Class",value:w.getClassName()}),(0,h.jsx)(O.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:w,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),w.width&&(0,h.jsx)(E.TextLineComponent,{label:"Width",value:w.width.toString()}),w.height&&(0,h.jsx)(E.TextLineComponent,{label:"Height",value:w.height.toString()}),(0,h.jsx)(A.CheckBoxLineComponent,{label:"Auto clear",target:w,propertyName:"autoClear",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),w.clearColor&&(0,h.jsx)(b.Color3LineComponent,{lockObject:this.props.lockObject,label:"Clear color",target:w,propertyName:"clearColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.CheckBoxLineComponent,{label:"Pixel perfect",target:w,propertyName:"enablePixelPerfectMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.CheckBoxLineComponent,{label:"Fullscreen viewport",target:w,propertyName:"forceFullscreenViewport",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Samples",target:w,propertyName:"samples",minimum:1,maximum:8,step:1,decimalCount:0,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.ButtonLineComponent,{label:"Dispose",onClick:()=>{w.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null)}})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/commonRenderingPipelinePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CommonRenderingPipelinePropertyGridComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.js");class M extends x.Component{constructor(O){super(O)}render(){const O=this.props.renderPipeline,R=O;return(0,h.jsxs)("div",{children:[(0,h.jsx)(b.CustomPropertyGridComponent,{globalState:this.props.globalState,target:O,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(A.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(S.TextLineComponent,{label:"Name",value:O.name}),(0,h.jsx)(S.TextLineComponent,{label:"Class",value:O.getClassName()}),R.samples!==void 0&&(0,h.jsx)(E.SliderLineComponent,{lockObject:this.props.lockObject,label:"Samples",minimum:1,maximum:64,step:1,decimalCount:0,target:O,propertyName:"samples",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/defaultRenderingPipelinePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{DefaultRenderingPipelinePropertyGridComponent:()=>N});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/commonRenderingPipelinePropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),T=d("core/Misc/observable"),O=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),I=d("../../../dev/sharedUiComponents/dist/lines/vector2LineComponent.js");class N extends x.Component{constructor(D){super(D)}render(){const D=this.props.renderPipeline,k=D.scene.activeCamera,Y=[{label:"Standard",value:T.ImageProcessingConfiguration.TONEMAPPING_STANDARD},{label:"ACES",value:T.ImageProcessingConfiguration.TONEMAPPING_ACES},{label:"Khronos PBR Neutral",value:T.ImageProcessingConfiguration.TONEMAPPING_KHR_PBR_NEUTRAL}],V=[{label:"Multiply",value:T.ImageProcessingConfiguration.VIGNETTEMODE_MULTIPLY},{label:"Opaque",value:T.ImageProcessingConfiguration.VIGNETTEMODE_OPAQUE}],ee=[{label:"Low",value:0},{label:"Medium",value:1},{label:"High",value:2}];return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonRenderingPipelinePropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,renderPipeline:D,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(E.LineContainerComponent,{title:"BLOOM",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:D,onValueChanged:()=>this.forceUpdate(),propertyName:"bloomEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.bloomEnabled&&(0,h.jsxs)("div",{children:[(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Threshold",minimum:0,maximum:2,step:.01,target:D,propertyName:"bloomThreshold",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Weight",minimum:0,maximum:1,step:.05,target:D,propertyName:"bloomWeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Kernel",minimum:0,maximum:128,step:1,target:D,propertyName:"bloomKernel",onPropertyChangedObservable:this.props.onPropertyChangedObservable,decimalCount:0}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Scale",minimum:0,maximum:1,step:.25,target:D,propertyName:"bloomScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]}),(0,h.jsxs)(E.LineContainerComponent,{title:"CHROMATIC ABERRATION",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:D,onValueChanged:()=>this.forceUpdate(),propertyName:"chromaticAberrationEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.chromaticAberrationEnabled&&(0,h.jsxs)("div",{children:[(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"aberrationAmount",minimum:0,maximum:128,step:.1,target:D.chromaticAberration,propertyName:"aberrationAmount",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Radial intensity",minimum:0,maximum:1,step:.01,target:D.chromaticAberration,propertyName:"radialIntensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(I.Vector2LineComponent,{lockObject:this.props.lockObject,label:"Center",target:D.chromaticAberration,propertyName:"centerPosition",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(I.Vector2LineComponent,{lockObject:this.props.lockObject,label:"Direction",target:D.chromaticAberration,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]}),(0,h.jsxs)(E.LineContainerComponent,{title:"DEPTH OF FIELD",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:D,onValueChanged:()=>this.forceUpdate(),propertyName:"depthOfFieldEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.depthOfFieldEnabled&&(0,h.jsxs)("div",{children:[(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Focal length",minimum:0,maximum:k.maxZ,step:.1,target:D.depthOfField,propertyName:"focalLength",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"fStop",minimum:0,maximum:32,step:.1,target:D.depthOfField,propertyName:"fStop",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Distance",minimum:0,maximum:k.maxZ,step:.1,target:D.depthOfField,propertyName:"focusDistance",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Lens size",minimum:0,maximum:1e3,step:1,target:D.depthOfField,propertyName:"lensSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable,decimalCount:0}),(0,h.jsx)(M.OptionsLine,{label:"Blur level",options:ee,target:D,propertyName:"depthOfFieldBlurLevel",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:K=>this.setState({mode:K})})]})]}),(0,h.jsx)(E.LineContainerComponent,{title:"FXAA",selection:this.props.globalState,children:(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:D,propertyName:"fxaaEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable})}),(0,h.jsxs)(E.LineContainerComponent,{title:"GLOW LAYER",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:D,propertyName:"glowLayerEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.glowLayerEnabled&&(0,h.jsxs)("div",{children:[(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Blur kernel size",minimum:1,maximum:128,step:1,decimalCount:0,target:D.glowLayer,propertyName:"blurKernelSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Intensity",minimum:0,maximum:10,step:.1,target:D.glowLayer,propertyName:"intensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]}),(0,h.jsxs)(E.LineContainerComponent,{title:"GRAIN",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:D,onValueChanged:()=>this.forceUpdate(),propertyName:"grainEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.grainEnabled&&(0,h.jsxs)("div",{children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Animated",target:D.grain,propertyName:"animated",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Intensity",minimum:0,maximum:50,step:.1,target:D.grain,propertyName:"intensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]}),(0,h.jsxs)(E.LineContainerComponent,{title:"IMAGE PROCESSING",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:D,onValueChanged:()=>this.forceUpdate(),propertyName:"imageProcessingEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.imageProcessing&&(0,h.jsxs)("div",{children:[(0,h.jsx)(R.ButtonLineComponent,{label:"Convert clear color to linear",onClick:()=>D.scene.clearColor=D.scene.clearColor.toLinearSpace(D.scene.getEngine().useExactSrgbConversions)}),(0,h.jsx)(R.ButtonLineComponent,{label:"Convert clear color to gamma",onClick:()=>D.scene.clearColor=D.scene.clearColor.toGammaSpace(D.scene.getEngine().useExactSrgbConversions)}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:4,step:.1,label:"Contrast",target:D.imageProcessing,propertyName:"contrast",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:4,step:.1,label:"Exposure",target:D.imageProcessing,propertyName:"exposure",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Tone mapping",target:D.imageProcessing,propertyName:"toneMappingEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.OptionsLine,{label:"Tone mapping type",options:Y,target:D.imageProcessing,propertyName:"toneMappingType",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:K=>this.setState({mode:K})}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Vignette",target:D.imageProcessing,propertyName:"vignetteEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:4,step:.1,label:"Vignette weight",target:D.imageProcessing,propertyName:"vignetteWeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:1,step:.1,label:"Vignette stretch",target:D.imageProcessing,propertyName:"vignetteStretch",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:Math.PI,step:.1,label:"Vignette FOV",target:D.imageProcessing,propertyName:"vignetteCameraFov",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:1,step:.1,label:"Vignette center X",target:D.imageProcessing,propertyName:"vignetteCenterX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:1,step:.1,label:"Vignette center Y",target:D.imageProcessing,propertyName:"vignetteCenterY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.Color3LineComponent,{lockObject:this.props.lockObject,label:"Vignette color",target:D.imageProcessing,propertyName:"vignetteColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.OptionsLine,{label:"Vignette blend mode",options:V,target:D.imageProcessing,propertyName:"vignetteBlendMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:K=>this.setState({mode:K})}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Dithering",target:D.imageProcessing,propertyName:"ditheringEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:1,step:.00196078431372549,label:"Dithering intensity",target:D.imageProcessing,propertyName:"ditheringIntensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]}),(0,h.jsxs)(E.LineContainerComponent,{title:"SHARPEN",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:D,onValueChanged:()=>this.forceUpdate(),propertyName:"sharpenEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.sharpenEnabled&&(0,h.jsxs)("div",{children:[(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Color amount",minimum:0,maximum:1,step:.05,target:D.sharpen,propertyName:"colorAmount",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Edge amount",minimum:0,maximum:5,step:.05,target:D.sharpen,propertyName:"edgeAmount",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/iblShadowsRenderPipelinePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{IblShadowsRenderPipelinePropertyGridComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/commonRenderingPipelinePropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js");class T extends x.Component{constructor(R){super(R)}render(){const R=this.props.renderPipeline;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonRenderingPipelinePropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,renderPipeline:R,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(E.LineContainerComponent,{title:"Voxel Shadows",selection:this.props.globalState,children:[(0,h.jsx)(M.ButtonLineComponent,{label:"Update Scene Bounds",onClick:()=>{this.props.renderPipeline.updateSceneBounds()}}),(0,h.jsx)(M.ButtonLineComponent,{label:"Revoxelize",onClick:()=>{this.props.renderPipeline.updateVoxelization()}}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Opacity",minimum:0,maximum:1,step:.05,target:R,propertyName:"shadowOpacity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Samples",minimum:0,maximum:8,step:1,target:R,propertyName:"sampleDirections",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Resolution",minimum:4,maximum:8,step:1,target:R,propertyName:"resolutionExp",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Remenance",minimum:0,maximum:1,step:.01,target:R,propertyName:"shadowRemenance",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(E.LineContainerComponent,{title:"Screenspace Shadows",selection:this.props.globalState,children:[(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Opacity",minimum:0,maximum:1,step:.01,target:R,propertyName:"ssShadowOpacity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Samples",minimum:0,maximum:16,step:1,target:R,propertyName:"ssShadowSamples",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Stride",minimum:0,maximum:16,step:.01,target:R,propertyName:"ssShadowStride",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Max Distance",minimum:.01,maximum:.2,step:.01,target:R,propertyName:"ssShadowMaxDist",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Thickness",minimum:.005,maximum:.02,step:.001,target:R,propertyName:"ssShadowThickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(E.LineContainerComponent,{title:"Debug",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Allow Debug",propertyName:"allowDebugPasses",onPropertyChangedObservable:this.props.onPropertyChangedObservable,target:R}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Voxel Grid",propertyName:"voxelDebugEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable,target:R}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"IBL CDF",propertyName:"cdfDebugEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable,target:R}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Voxel Tracing",propertyName:"voxelTracingDebugEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable,target:R}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Accumulation",propertyName:"accumulationPassDebugEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable,target:R})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/lensRenderingPipelinePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{LensRenderingPipelinePropertyGridComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/commonRenderingPipelinePropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class M extends x.Component{constructor(O){super(O)}render(){const O=this.props.renderPipeline;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonRenderingPipelinePropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,renderPipeline:O,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(E.LineContainerComponent,{title:"OPTIONS",selection:this.props.globalState,children:[(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Edge blur",minimum:0,maximum:5,step:.1,target:O,propertyName:"edgeBlur",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Edge distortion",minimum:0,maximum:5,step:.1,target:O,propertyName:"edgeDistortion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Grain amount",minimum:0,maximum:1,step:.1,target:O,propertyName:"grainAmount",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Chromatic aberration",minimum:0,maximum:5,step:.1,target:O,propertyName:"chromaticAberration",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Darken out of focus",minimum:0,maximum:5,step:.1,target:O,propertyName:"darkenOutOfFocus",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Blur noise",target:O,propertyName:"blurNoise",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(E.LineContainerComponent,{title:"DEPTH OF FIELD",selection:this.props.globalState,children:[(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Aperture",minimum:0,maximum:10,step:.1,target:O,propertyName:"dofAperture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Distortion",minimum:0,maximum:1e3,step:.1,target:O,propertyName:"dofDistortion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Pentagon bokeh",target:O,propertyName:"pentagonBokeh",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Highlight gain",minimum:0,maximum:5,step:.1,target:O,propertyName:"highlightsGain",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Highlight threshold",minimum:0,maximum:5,step:.1,target:O,propertyName:"highlightsThreshold",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/postProcessPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PostProcessPropertyGridComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/commonPostProcessPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js");class b extends x.Component{constructor(T){super(T)}edit(){this.props.postProcess.nodeMaterialSource.edit()}render(){const T=this.props.postProcess;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonPostProcessPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,postProcess:T,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),T.nodeMaterialSource&&(0,h.jsx)(S.LineContainerComponent,{title:"CONFIGURATION",selection:this.props.globalState,children:(0,h.jsx)(E.ButtonLineComponent,{label:"Node Material Editor",onClick:()=>this.edit()})})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/renderingPipelinePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{RenderingPipelinePropertyGridComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/commonRenderingPipelinePropertyGridComponent.js");class S extends x.Component{constructor(b){super(b)}render(){const b=this.props.renderPipeline;return(0,h.jsx)(A.CommonRenderingPipelinePropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,renderPipeline:b,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/ssao2RenderingPipelinePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SSAO2RenderingPipelinePropertyGridComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/commonRenderingPipelinePropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class M extends x.Component{constructor(O){super(O)}render(){const O=this.props.renderPipeline,R=O.scene.activeCamera;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonRenderingPipelinePropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,renderPipeline:O,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(E.LineContainerComponent,{title:"SSAO",selection:this.props.globalState,children:[(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Strength",minimum:0,maximum:2,step:.05,target:O,propertyName:"totalStrength",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Base",minimum:0,maximum:1,step:.05,target:O,propertyName:"base",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Max Z",minimum:0,maximum:R.maxZ,step:1,target:O,propertyName:"maxZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Min Z aspect",minimum:0,maximum:.5,step:.01,target:O,propertyName:"minZAspect",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Radius",minimum:0,maximum:10,step:.05,target:O,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Epsilon",minimum:0,maximum:1,step:.001,target:O,propertyName:"epsilon",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(E.LineContainerComponent,{title:"Denoiser",children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Bypass Blur",propertyName:"bypassBlur",onPropertyChangedObservable:this.props.onPropertyChangedObservable,target:O}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Expensive Blur",propertyName:"expensiveBlur",onPropertyChangedObservable:this.props.onPropertyChangedObservable,target:O}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Samples",minimum:2,maximum:32,step:1,target:O,propertyName:"bilateralSamples",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Soften",minimum:0,maximum:1,step:.01,target:O,propertyName:"bilateralSoften",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Tolerance",minimum:0,maximum:1,step:.01,target:O,propertyName:"bilateralTolerance",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/ssaoRenderingPipelinePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SSAORenderingPipelinePropertyGridComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/commonRenderingPipelinePropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js");class b extends x.Component{constructor(T){super(T)}render(){const T=this.props.renderPipeline;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonRenderingPipelinePropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,renderPipeline:T,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(E.LineContainerComponent,{title:"SSAO",selection:this.props.globalState,children:[(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Strength",minimum:0,maximum:2,step:.05,target:T,propertyName:"totalStrength",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Base",minimum:0,maximum:1,step:.05,target:T,propertyName:"base",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Radius",minimum:1e-4,maximum:.001,step:1e-4,target:T,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable,decimalCount:4}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Area",minimum:1e-4,maximum:.01,step:1e-4,target:T,propertyName:"area",onPropertyChangedObservable:this.props.onPropertyChangedObservable,decimalCount:4}),(0,h.jsx)(S.SliderLineComponent,{lockObject:this.props.lockObject,label:"Falloff",minimum:0,maximum:1e-5,step:1e-6,target:T,propertyName:"fallOff",onPropertyChangedObservable:this.props.onPropertyChangedObservable,decimalCount:6})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/postProcesses/ssrRenderingPipelinePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SSRRenderingPipelinePropertyGridComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),M=d("../../../dev/inspector/dist/components/actionTabs/lines/textureLinkLineComponent.js");class T extends x.Component{constructor(R){super(R)}render(){const R=this.props.renderPipeline;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(S.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(E.TextLineComponent,{label:"Name",value:R.name}),(0,h.jsx)(E.TextLineComponent,{label:"Class",value:R.getClassName()})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"SSR",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:R,propertyName:"isEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Debug",target:R,propertyName:"debug",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Strength",minimum:0,maximum:5,step:.05,target:R,propertyName:"strength",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Reflection exponent",minimum:0,maximum:5,step:.05,target:R,propertyName:"reflectionSpecularFalloffExponent",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Reflectivity threshold",minimum:0,maximum:1,step:.01,target:R,propertyName:"reflectivityThreshold",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Thickness",minimum:0,maximum:10,step:.01,target:R,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Step",minimum:1,maximum:50,step:1,target:R,propertyName:"step",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Smooth reflections",target:R,propertyName:"enableSmoothReflections",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Max steps",minimum:1,maximum:3e3,step:10,target:R,propertyName:"maxSteps",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Max distance",minimum:1,maximum:3e3,step:10,target:R,propertyName:"maxDistance",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Roughness factor",minimum:0,maximum:1,step:.01,target:R,propertyName:"roughnessFactor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Self collision skips",minimum:1,maximum:10,step:1,target:R,propertyName:"selfCollisionNumSkip",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"SSR downsample",minimum:0,maximum:5,step:1,target:R,propertyName:"ssrDownsample",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Clip to frustum",target:R,propertyName:"clipToFrustum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"Automatic thickness computation",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Enabled",target:R,propertyName:"enableAutomaticThicknessComputation",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Force write transparent",target:R,propertyName:"backfaceForceDepthWriteTransparentMeshes",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Downsample",minimum:0,maximum:5,step:1,target:R,propertyName:"backfaceDepthTextureDownsample",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"Blur",selection:this.props.globalState,children:[(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Strength",minimum:0,maximum:.15,step:.001,target:R,propertyName:"blurDispersionStrength",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:"Downsample",minimum:0,maximum:5,step:1,target:R,propertyName:"blurDownsample",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"Attenuations",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Screen borders",target:R,propertyName:"attenuateScreenBorders",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Distance",target:R,propertyName:"attenuateIntersectionDistance",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Step iterations",target:R,propertyName:"attenuateIntersectionIterations",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Facing camera",target:R,propertyName:"attenuateFacingCamera",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Backface reflections",target:R,propertyName:"attenuateBackfaceReflection",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"Environment",selection:this.props.globalState,children:[(0,h.jsx)(M.TextureLinkLineComponent,{label:"Cube",texture:R.environmentTexture,propertyName:"environmentTexture",texturedObject:R,fileFormats:".dds",cubeOnly:!0}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Is probe",target:R,propertyName:"environmentTextureIsProbe",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"Color space",selection:this.props.globalState,children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Input is in gamma space",target:R,propertyName:"inputTextureColorIsInGammaSpace",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Output to gamma space",target:R,propertyName:"generateOutputInGammaSpace",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/renderGridPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{RenderGridPropertyGridComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("materials/normal/normalMaterial"),E=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class b extends x.Component{constructor(T){super(T),this.state={isEnabled:!1}}componentDidMount(){const T=A.UtilityLayerRenderer.DefaultKeepDepthUtilityLayer.utilityLayerScene;for(const O of T.meshes)if(O.reservedDataStore&&O.reservedDataStore.isInspectorGrid){this._gridMesh=O,this.setState({isEnabled:!0});return}}addOrRemoveGrid(){const T=A.UtilityLayerRenderer.DefaultKeepDepthUtilityLayer.utilityLayerScene;if(!this._gridMesh){const O=this.props.scene.getWorldExtends(),R=(O.max.x-O.min.x)*5,I=(O.max.z-O.min.z)*5;this._gridMesh=(0,A.CreateGround)("grid",{width:1,height:1,subdivisions:1},T),this._gridMesh.reservedDataStore||(this._gridMesh.reservedDataStore={}),this._gridMesh.scaling.x=Math.max(R,I),this._gridMesh.scaling.z=this._gridMesh.scaling.x,this._gridMesh.reservedDataStore.isInspectorGrid=!0,this._gridMesh.isPickable=!1;const N=new S.GridMaterial("GridMaterial",T);N.majorUnitFrequency=10,N.minorUnitVisibility=.3,N.gridRatio=.01,N.backFaceCulling=!1,N.mainColor=new A.Color3(1,1,1),N.lineColor=new A.Color3(1,1,1),N.opacity=.8,N.zOffset=1;const w=A.Tools.GetAssetUrl("https://assets.babylonjs.com/core/environments/backgroundGround.png");N.opacityTexture=new A.Texture(w,T),this._gridMesh.material=N,this.setState({isEnabled:!0});return}this.setState({isEnabled:!this.state.isEnabled}),this._gridMesh.dispose(!0,!0),this._gridMesh=null}render(){return(0,h.jsx)("div",{children:(0,h.jsx)(E.CheckBoxLineComponent,{label:"Render grid",isSelected:()=>this.state.isEnabled,onSelect:()=>this.addOrRemoveGrid()})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/scenePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ScenePropertyGridComponent:()=>V});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/radioLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/fogPropertyGridComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/fileButtonLineComponent.js"),R=d("../../../dev/inspector/dist/components/actionTabs/lines/textureLinkLineComponent.js"),I=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),N=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),w=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),D=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),k=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),Y=d("../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/animations/animationPropertyGridComponent.js");class V extends x.Component{constructor(K){super(K),this._renderingModeGroupObservable=new A.Observable}setRenderingModes(K,ie){const ne=this.props.scene;ne.forcePointsCloud=K,ne.forceWireframe=ie}switchIBL(){const K=this.props.scene;K.environmentTexture?(this._storedEnvironmentTexture=K.environmentTexture,K.environmentTexture=null):(K.environmentTexture=this._storedEnvironmentTexture,this._storedEnvironmentTexture=null)}updateEnvironmentTexture(K){const ie=K.name.toLowerCase().indexOf(".dds")>0,ne=K.name.toLowerCase().indexOf(".env")>0;if(!ie&&!ne){A.Logger.Error("Unable to update environment texture. Please select a dds or env file.");return}const te=this.props.scene;A.Tools.ReadFile(K,W=>{const Q=new Blob([W],{type:"octet/stream"}),re=URL.createObjectURL(Q);ie?te.environmentTexture=A.CubeTexture.CreateFromPrefilteredData(re,te,".dds"):te.environmentTexture=new A.CubeTexture(re,te,void 0,void 0,void 0,()=>{},oe=>{oe&&A.Logger.Error(oe)},void 0,void 0,".env")},void 0,!0)}updateGravity(K){this.props.scene.getPhysicsEngine().setGravity(K)}updateTimeStep(K){this.props.scene.getPhysicsEngine().setTimeStep(K)}normalizeScene(){this.props.scene.meshes.forEach(ie=>{ie.normalizeToUnitCube(!0),ie.computeWorldMatrix(!0)})}render(){const K=this.props.scene,ie=K.getPhysicsEngine();let ne=null;ie&&(ne={gravity:ie.gravity,timeStep:ie.getTimeStep()});const te=K.imageProcessingConfiguration,W=[{label:"Standard",value:A.ImageProcessingConfiguration.TONEMAPPING_STANDARD},{label:"ACES",value:A.ImageProcessingConfiguration.TONEMAPPING_ACES},{label:"Khronos PBR Neutral",value:A.ImageProcessingConfiguration.TONEMAPPING_KHR_PBR_NEUTRAL}],Q=[{label:"Multiply",value:A.ImageProcessingConfiguration.VIGNETTEMODE_MULTIPLY},{label:"Opaque",value:A.ImageProcessingConfiguration.VIGNETTEMODE_OPAQUE}];return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(S.LineContainerComponent,{title:"RENDERING MODE",selection:this.props.globalState,children:[(0,h.jsx)(E.RadioButtonLineComponent,{onSelectionChangedObservable:this._renderingModeGroupObservable,label:"Point",isSelected:()=>K.forcePointsCloud,onSelect:()=>this.setRenderingModes(!0,!1)}),(0,h.jsx)(E.RadioButtonLineComponent,{onSelectionChangedObservable:this._renderingModeGroupObservable,label:"Wireframe",isSelected:()=>K.forceWireframe,onSelect:()=>this.setRenderingModes(!1,!0)}),(0,h.jsx)(E.RadioButtonLineComponent,{onSelectionChangedObservable:this._renderingModeGroupObservable,label:"Solid",isSelected:()=>!K.forcePointsCloud&&!K.forceWireframe,onSelect:()=>this.setRenderingModes(!1,!1)})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"ENVIRONMENT",selection:this.props.globalState,children:[(0,h.jsx)(b.Color3LineComponent,{lockObject:this.props.lockObject,label:"Clear color",target:K,propertyName:"clearColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Clear color enabled",target:K,propertyName:"autoClear",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.Color3LineComponent,{lockObject:this.props.lockObject,label:"Ambient color",target:K,propertyName:"ambientColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Environment texture (IBL)",isSelected:()=>K.environmentTexture!=null,onSelect:()=>this.switchIBL()}),K.environmentTexture&&(0,h.jsx)(R.TextureLinkLineComponent,{label:"Env. texture",texture:K.environmentTexture,onSelectionChangedObservable:this.props.onSelectionChangedObservable}),(0,h.jsx)(O.FileButtonLine,{label:"Update environment texture",onClick:re=>this.updateEnvironmentTexture(re),accept:".dds, .env"}),(0,h.jsx)(w.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:2,step:.01,label:"IBL Intensity",target:K,propertyName:"iblIntensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.FogPropertyGridComponent,{globalState:this.props.globalState,lockObject:this.props.lockObject,scene:K,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsx)(Y.AnimationGridComponent,{globalState:this.props.globalState,animatable:K,scene:K,lockObject:this.props.lockObject}),(0,h.jsxs)(S.LineContainerComponent,{title:"MATERIAL IMAGE PROCESSING",selection:this.props.globalState,children:[(0,h.jsx)(w.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:4,step:.1,label:"Contrast",target:te,propertyName:"contrast",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:4,step:.1,label:"Exposure",target:te,propertyName:"exposure",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Tone mapping",target:te,propertyName:"toneMappingEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(D.OptionsLine,{label:"Tone mapping type",options:W,target:te,propertyName:"toneMappingType",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:re=>this.setState({mode:re})}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Vignette",target:te,propertyName:"vignetteEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:4,step:.1,label:"Vignette weight",target:te,propertyName:"vignetteWeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:1,step:.1,label:"Vignette stretch",target:te,propertyName:"vignetteStretch",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:Math.PI,step:.1,label:"Vignette FOV",target:te,propertyName:"vignetteCameraFov",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:1,step:.1,label:"Vignette center X",target:te,propertyName:"vignetteCenterX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:1,step:.1,label:"Vignette center Y",target:te,propertyName:"vignetteCenterY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.Color3LineComponent,{lockObject:this.props.lockObject,label:"Vignette color",target:te,propertyName:"vignetteColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(D.OptionsLine,{label:"Vignette blend mode",options:Q,target:te,propertyName:"vignetteBlendMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:re=>this.setState({mode:re})}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Dithering",target:te,propertyName:"ditheringEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.SliderLineComponent,{lockObject:this.props.lockObject,minimum:0,maximum:1,step:.00196078431372549,label:"Dithering intensity",target:te,propertyName:"ditheringIntensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),ne!==null&&(0,h.jsxs)(S.LineContainerComponent,{title:"PHYSICS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(N.FloatLineComponent,{lockObject:this.props.lockObject,label:"Time step",target:ne,propertyName:"timeStep",onChange:re=>this.updateTimeStep(re),onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(I.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Gravity",target:ne,propertyName:"gravity",onChange:re=>this.updateGravity(re),onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsx)(S.LineContainerComponent,{title:"COLLISIONS",closed:!0,selection:this.props.globalState,children:(0,h.jsx)(I.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Gravity",target:K,propertyName:"gravity",onPropertyChangedObservable:this.props.onPropertyChangedObservable})}),(0,h.jsx)(S.LineContainerComponent,{title:"SHADOWS",closed:!0,selection:this.props.globalState,children:(0,h.jsx)(k.ButtonLineComponent,{label:"Normalize scene",onClick:()=>this.normalizeScene()})})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/sounds/soundPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SoundPropertyGridComponent:()=>O});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class O extends x.Component{constructor(I){super(I)}render(){const I=this.props.sound;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(A.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(S.TextLineComponent,{label:"Class",value:I.getClassName()}),(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:I,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.TextLineComponent,{label:"Status",value:I.isPaused?"Paused":I.isPlaying?"Playing":"Stopped"})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"COMMANDS",selection:this.props.globalState,children:[I.isPlaying&&(0,h.jsx)(b.ButtonLineComponent,{label:"Pause",onClick:()=>{I.pause(),this.forceUpdate()}}),!I.isPlaying&&(0,h.jsx)(b.ButtonLineComponent,{label:"Play",onClick:()=>{I.play(),this.forceUpdate()}}),(0,h.jsx)(M.SliderLineComponent,{lockObject:this.props.lockObject,label:"Volume",target:I,directValue:I.getVolume(),onChange:N=>{I.setVolume(N),this.forceUpdate()},minimum:0,maximum:5,step:.1,decimalCount:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.CheckBoxLineComponent,{label:"Loop",target:I,propertyName:"loop",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/sprites/spriteManagerPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SpriteManagerPropertyGridComponent:()=>D});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("core/Misc/observable"),E=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),R=d("../../../dev/inspector/dist/components/actionTabs/lines/textureLinkLineComponent.js"),I=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),N=d("../../../dev/sharedUiComponents/dist/lines/fileButtonLineComponent.js"),w=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js");class D extends x.Component{constructor(Y){super(Y),this._snippetUrl=S.Constants.SnippetUrl}addNewSprite(){var ee;const Y=this.props.spriteManager,V=new S.Sprite("new sprite",Y);(ee=this.props.onSelectionChangedObservable)==null||ee.notifyObservers(V)}disposeManager(){var V;this.props.spriteManager.dispose(),(V=this.props.onSelectionChangedObservable)==null||V.notifyObservers(null)}saveToFile(){const Y=this.props.spriteManager,V=JSON.stringify(Y.serialize(!0));S.Tools.Download(new Blob([V]),"spriteManager.json")}loadFromFile(Y){const V=this.props.spriteManager,ee=V.scene;S.Tools.ReadFile(Y,K=>{const ie=new TextDecoder("utf-8"),ne=JSON.parse(ie.decode(K));V.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null);const te=S.SpriteManager.Parse(ne,ee,"");this.props.globalState.onSelectionChangedObservable.notifyObservers(te)},void 0,!0)}loadFromSnippet(){const Y=this.props.spriteManager,V=Y.scene,ee=window.prompt("Please enter the snippet ID to use");ee&&(Y.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null),S.SpriteManager.ParseFromSnippetAsync(ee,V).then(K=>{this.props.globalState.onSelectionChangedObservable.notifyObservers(K)}).catch(K=>{alert("Unable to load your sprite manager: "+K)}))}saveToSnippet(){const Y=this.props.spriteManager,V=JSON.stringify(Y.serialize(!0)),ee=new XMLHttpRequest;ee.onreadystatechange=()=>{if(ee.readyState==4)if(ee.status==200){const ie=JSON.parse(ee.responseText),ne=Y.snippetId||"_BLANK";Y.snippetId=ie.id,ie.version&&ie.version!="0"&&(Y.snippetId+="#"+ie.version),this.forceUpdate(),navigator.clipboard&&navigator.clipboard.writeText(Y.snippetId);const te=window;te.Playground&&ne&&te.Playground.onRequestCodeChangeObservable.notifyObservers({regex:new RegExp(`SpriteManager.ParseFromSnippetAsync\\("${ne}`,"g"),replace:`SpriteManager.ParseFromSnippetAsync("${Y.snippetId}`}),alert("Sprite manager saved with ID: "+Y.snippetId+" (please note that the id was also saved to your clipboard)")}else alert("Unable to save your sprite manager")},ee.open("POST",this._snippetUrl+(Y.snippetId?"/"+Y.snippetId:""),!0),ee.setRequestHeader("Content-Type","application/json");const K={payload:JSON.stringify({spriteManager:V}),name:"",description:"",tags:""};ee.send(JSON.stringify(K))}render(){const Y=this.props.spriteManager,V=[{label:"Combine",value:S.Constants.ALPHA_COMBINE},{label:"One one",value:S.Constants.ALPHA_ONEONE},{label:"Add",value:S.Constants.ALPHA_ADD},{label:"Subtract",value:S.Constants.ALPHA_SUBTRACT},{label:"Multiply",value:S.Constants.ALPHA_MULTIPLY},{label:"Maximized",value:S.Constants.ALPHA_MAXIMIZED},{label:"Pre-multiplied",value:S.Constants.ALPHA_PREMULTIPLIED}];return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(A.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:Y,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextLineComponent,{label:"Unique ID",value:Y.uniqueId.toString()}),(0,h.jsx)(b.TextLineComponent,{label:"Capacity",value:Y.capacity.toString()}),(0,h.jsx)(R.TextureLinkLineComponent,{label:"Texture",texture:Y.texture,onSelectionChangedObservable:this.props.onSelectionChangedObservable}),Y.sprites.length<Y.capacity&&(0,h.jsx)(I.ButtonLineComponent,{label:"Add new sprite",onClick:()=>this.addNewSprite()}),(0,h.jsx)(I.ButtonLineComponent,{label:"Dispose",onClick:()=>this.disposeManager()})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"FILE",selection:this.props.globalState,children:[(0,h.jsx)(N.FileButtonLine,{label:"Load",onClick:ee=>this.loadFromFile(ee),accept:".json"}),(0,h.jsx)(I.ButtonLineComponent,{label:"Save",onClick:()=>this.saveToFile()})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"SNIPPET",selection:this.props.globalState,children:[Y.snippetId&&(0,h.jsx)(b.TextLineComponent,{label:"Snippet ID",value:Y.snippetId}),(0,h.jsx)(I.ButtonLineComponent,{label:"Load from snippet server",onClick:()=>this.loadFromSnippet()}),(0,h.jsx)(I.ButtonLineComponent,{label:"Save to snippet server",onClick:()=>this.saveToSnippet()})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"PROPERTIES",selection:this.props.globalState,children:[(0,h.jsx)(M.CheckBoxLineComponent,{label:"Pickable",target:Y,propertyName:"isPickable",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Fog enabled",target:Y,propertyName:"fogEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"No depth write",target:Y,propertyName:"disableDepthWrite",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.SliderLineComponent,{lockObject:this.props.lockObject,label:"Rendering group ID",decimalCount:0,target:Y,propertyName:"renderingGroupId",minimum:S.RenderingManager.MIN_RENDERINGGROUPS,maximum:S.RenderingManager.MAX_RENDERINGGROUPS-1,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(w.OptionsLine,{label:"Alpha mode",options:V,target:Y,propertyName:"blendMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:ee=>this.setState({blendMode:ee})})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"CELLS",selection:this.props.globalState,children:[(0,h.jsx)(T.FloatLineComponent,{lockObject:this.props.lockObject,label:"Cell width",isInteger:!0,target:Y,propertyName:"cellWidth",min:0,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.FloatLineComponent,{lockObject:this.props.lockObject,label:"Cell height",isInteger:!0,target:Y,propertyName:"cellHeight",min:0,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/sprites/spritePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SpritePropertyGridComponent:()=>w});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),I=d("../../../dev/inspector/dist/textureHelper.js"),N=d("../../../dev/sharedUiComponents/dist/lines/color4LineComponent.js");class w extends x.Component{constructor(k){super(k),this._imageData=null,this._cachedCellIndex=-1,this._canvasRef=x.createRef()}onManagerLink(){if(!this.props.onSelectionChangedObservable)return;const k=this.props.sprite;this.props.onSelectionChangedObservable.notifyObservers(k.manager)}switchPlayStopState(){const k=this.props.sprite;k.animationStarted?k.stopAnimation():k.playAnimation(k.fromIndex,k.toIndex,k.loopAnimation,k.delay,()=>{}),this.forceUpdate()}disposeSprite(){var Y;this.props.sprite.dispose(),(Y=this.props.onSelectionChangedObservable)==null||Y.notifyObservers(null)}componentDidMount(){this.updatePreview()}componentDidUpdate(){this.updatePreview()}shouldComponentUpdate(k){return k.sprite!==this.props.sprite&&(this._imageData=null),!0}updatePreview(){const k=this.props.sprite,Y=k.manager,V=Y.texture,ee=V.getSize();if(!this._imageData){I.TextureHelper.GetTextureDataAsync(V,ee.width,ee.height,0,{R:!0,G:!0,B:!0,A:!0},this.props.globalState).then(ne=>{this._imageData=ne,this.forceUpdate()});return}if(this._cachedCellIndex===k.cellIndex)return;this._cachedCellIndex=k.cellIndex;const K=this._canvasRef.current;K.width=Y.cellWidth,K.height=Y.cellHeight;const ie=K.getContext("2d");if(ie){const ne=ie.createImageData(Y.cellWidth,Y.cellHeight),te=ne.data,W=ee.width/Y.cellWidth|0,Q=k.cellIndex/W|0,oe=(k.cellIndex-Q*W+Q*ee.width)*4*Y.cellWidth;for(let X=0;X<Y.cellWidth;X++)for(let se=0;se<Y.cellHeight;se++){const ue=(X+se*Y.cellWidth)*4,he=(X+se*ee.width)*4;te[ue]=this._imageData[oe+he],te[ue+1]=this._imageData[oe+he+1],te[ue+2]=this._imageData[oe+he+2],te[ue+3]=this._imageData[oe+he+3]}ie.putImageData(ne,0,0)}}render(){const k=this.props.sprite,Y=k.manager,V=Y.texture.getSize();let ee=0;return!V.width||!V.height?ee=Math.max(k.fromIndex,k.toIndex):ee=V.width/Y.cellWidth*(V.height/Y.cellHeight),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(A.LineContainerComponent,{title:"GENERAL",selection:this.props.globalState,children:[(0,h.jsx)(S.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:k,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextLineComponent,{label:"Unique ID",value:k.uniqueId.toString()}),(0,h.jsx)(E.TextLineComponent,{label:"Link to manager",value:Y.name,onLink:()=>this.onManagerLink()}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Visible",target:k,propertyName:"isVisible",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.ButtonLineComponent,{label:"Dispose",onClick:()=>this.disposeSprite()})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"PROPERTIES",selection:this.props.globalState,children:[(0,h.jsx)(M.Vector3LineComponent,{lockObject:this.props.lockObject,label:"Position",target:k,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Pickable",target:k,propertyName:"isPickable",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Use alpha for picking",target:k,propertyName:"useAlphaForPicking",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(N.Color4LineComponent,{lockObject:this.props.lockObject,label:"Color",target:k,propertyName:"color",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.SliderLineComponent,{lockObject:this.props.lockObject,useEuler:this.props.globalState.onlyUseEulers,label:"Angle",target:k,propertyName:"angle",minimum:0,maximum:2*Math.PI,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"CELL",selection:this.props.globalState,children:[(0,h.jsx)("canvas",{ref:this._canvasRef,className:"preview",style:{margin:"auto",marginTop:"4px",marginBottom:"4px",display:"grid",height:"108px"}}),(0,h.jsx)(O.SliderLineComponent,{lockObject:this.props.lockObject,label:"Cell index",decimalCount:0,target:k,propertyName:"cellIndex",minimum:0,maximum:ee,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable,onChange:()=>this.forceUpdate()}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Invert U axis",target:k,propertyName:"invertU",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Invert V axis",target:k,propertyName:"invertV",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"SCALE",selection:this.props.globalState,children:[(0,h.jsx)(T.FloatLineComponent,{label:"Width",lockObject:this.props.lockObject,target:k,propertyName:"width",min:0,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.FloatLineComponent,{label:"Height",lockObject:this.props.lockObject,target:k,propertyName:"height",min:0,onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"ANIMATION",selection:this.props.globalState,children:[(0,h.jsx)(T.FloatLineComponent,{label:"Start cell",isInteger:!0,lockObject:this.props.lockObject,target:k,propertyName:"fromIndex",min:0,max:ee,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.FloatLineComponent,{label:"End cell",isInteger:!0,lockObject:this.props.lockObject,target:k,propertyName:"toIndex",min:0,max:ee,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Loop",target:k,propertyName:"loopAnimation",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.FloatLineComponent,{label:"Delay",lockObject:this.props.lockObject,target:k,propertyName:"delay",digits:0,min:0,isInteger:!0,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.ButtonLineComponent,{label:k.animationStarted?"Stop":"Start",onClick:()=>this.switchPlayStopState()})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/propertyGrids/variantsPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{VariantsPropertyGridComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js");class E extends x.Component{constructor(M){super(M)}_getVariantsExtension(){var M;return(M=this.props.globalState)==null?void 0:M.glTFLoaderExtensions.KHR_materials_variants}render(){const M=this._getVariantsExtension();if(!M)return null;const T=M.getAvailableVariants(this.props.host);if(!T||T.length===0)return null;const O=T.sort().map((R,I)=>({label:R,value:I+1}));return O.splice(0,0,{label:"Original",value:0}),(0,h.jsx)("div",{children:(0,h.jsx)(A.LineContainerComponent,{title:"VARIANTS",selection:this.props.globalState,children:(0,h.jsx)(S.OptionsLine,{label:"Active variant",options:O,noDirectUpdate:!0,target:this.props.host,propertyName:"",onSelect:R=>{const I=R;I===0?M.reset(this.props.host):M.selectVariant(this.props.host,T[I-1]),this.forceUpdate()},extractValue:()=>{const R=M.getLastSelectedVariant(this.props.host)||0;let I=0;return R&&Object.prototype.toString.call(R)==="[object String]"&&(I=T.indexOf(R),I>-1&&(I=I+1)),I}})})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/settingsTabComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SettingsTabComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../dev/inspector/dist/components/actionTabs/paneComponent.js"),A=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js");class E extends x.PaneComponent{constructor(M){super(M)}render(){const M=this.props.globalState;return(0,h.jsx)("div",{className:"pane",children:(0,h.jsxs)(S.LineContainerComponent,{title:"UI",selection:this.props.globalState,children:[(0,h.jsx)(A.CheckBoxLineComponent,{label:"Only display Euler values",target:M,propertyName:"onlyUseEulers"}),(0,h.jsx)(A.CheckBoxLineComponent,{label:"Ignore backfaces when picking",target:M,propertyName:"ignoreBackfacesForPicking"})]})})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/statisticsTabComponent.js":(m,_,d)=>{d.r(_),d.d(_,{StatisticsTabComponent:()=>O});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../dev/inspector/dist/components/actionTabs/paneComponent.js"),A=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("core/Misc/observable"),b=d("../../../dev/sharedUiComponents/dist/lines/valueLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/booleanLineComponent.js"),T=d("../../../dev/inspector/dist/components/actionTabs/tabs/performanceViewer/performanceViewerComponent.js");class O extends x.PaneComponent{constructor(I){super(I);const N=this.props.scene;N&&(this._sceneInstrumentation=new E.SceneInstrumentation(N),this._sceneInstrumentation.captureActiveMeshesEvaluationTime=!0,this._sceneInstrumentation.captureRenderTargetsRenderTime=!0,this._sceneInstrumentation.captureFrameTime=!0,this._sceneInstrumentation.captureRenderTime=!0,this._sceneInstrumentation.captureInterFrameTime=!0,this._sceneInstrumentation.captureParticlesRenderTime=!0,this._sceneInstrumentation.captureSpritesRenderTime=!0,this._sceneInstrumentation.capturePhysicsTime=!0,this._sceneInstrumentation.captureAnimationsTime=!0,this._engineInstrumentation=new E.EngineInstrumentation(N.getEngine()),this._engineInstrumentation.captureGPUFrameTime=!0,this._timerIntervalId=window.setInterval(()=>this.forceUpdate(),500))}componentWillUnmount(){this._sceneInstrumentation&&(this._sceneInstrumentation.dispose(),this._sceneInstrumentation=null),this._engineInstrumentation&&(this._engineInstrumentation.dispose(),this._engineInstrumentation=null),window.clearInterval(this._timerIntervalId)}render(){const I=this.props.scene;if(!I||!this._sceneInstrumentation||!this._engineInstrumentation)return null;const N=I.getEngine(),w=this._sceneInstrumentation,D=this._engineInstrumentation,k=N.getCaps();return(0,h.jsxs)("div",{className:"pane",children:[(0,h.jsx)(A.TextLineComponent,{label:"Version",value:E.Engine.Version,color:"rgb(113, 159, 255)"}),(0,h.jsx)(b.ValueLineComponent,{label:"FPS",value:N.getFps(),fractionDigits:0}),(0,h.jsx)(T.PerformanceViewerComponent,{scene:I}),(0,h.jsxs)(S.LineContainerComponent,{title:"COUNT",children:[(0,h.jsx)(A.TextLineComponent,{label:"Total meshes",value:I.meshes.length.toString()}),(0,h.jsx)(A.TextLineComponent,{label:"Active meshes",value:I.getActiveMeshes().length.toString()}),(0,h.jsx)(A.TextLineComponent,{label:"Active indices",value:I.getActiveIndices().toString()}),(0,h.jsx)(A.TextLineComponent,{label:"Active faces",value:(I.getActiveIndices()/3).toString()}),(0,h.jsx)(A.TextLineComponent,{label:"Active bones",value:I.getActiveBones().toString()}),(0,h.jsx)(A.TextLineComponent,{label:"Active particles",value:I.getActiveParticles().toString()}),(0,h.jsx)(A.TextLineComponent,{label:"Draw calls",value:w.drawCallsCounter.current.toString()}),(0,h.jsx)(A.TextLineComponent,{label:"Total lights",value:I.lights.length.toString()}),(0,h.jsx)(A.TextLineComponent,{label:"Total vertices",value:I.getTotalVertices().toString()}),(0,h.jsx)(A.TextLineComponent,{label:"Total materials",value:I.materials.length.toString()}),(0,h.jsx)(A.TextLineComponent,{label:"Total textures",value:I.textures.length.toString()})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"FRAME STEPS DURATION",children:[(0,h.jsx)(b.ValueLineComponent,{label:"Absolute FPS",value:1e3/this._sceneInstrumentation.frameTimeCounter.lastSecAverage,fractionDigits:0}),(0,h.jsx)(b.ValueLineComponent,{label:"Meshes selection",value:w.activeMeshesEvaluationTimeCounter.lastSecAverage,units:"ms"}),(0,h.jsx)(b.ValueLineComponent,{label:"Render targets",value:w.renderTargetsRenderTimeCounter.lastSecAverage,units:"ms"}),(0,h.jsx)(b.ValueLineComponent,{label:"Particles",value:w.particlesRenderTimeCounter.lastSecAverage,units:"ms"}),(0,h.jsx)(b.ValueLineComponent,{label:"Sprites",value:w.spritesRenderTimeCounter.lastSecAverage,units:"ms"}),(0,h.jsx)(b.ValueLineComponent,{label:"Animations",value:w.animationsTimeCounter.lastSecAverage,units:"ms"}),(0,h.jsx)(b.ValueLineComponent,{label:"Physics",value:w.physicsTimeCounter.lastSecAverage,units:"ms"}),(0,h.jsx)(b.ValueLineComponent,{label:"Render",value:w.renderTimeCounter.lastSecAverage,units:"ms"}),(0,h.jsx)(b.ValueLineComponent,{label:"Frame total",value:w.frameTimeCounter.lastSecAverage,units:"ms"}),(0,h.jsx)(b.ValueLineComponent,{label:"Inter-frame",value:w.interFrameTimeCounter.lastSecAverage,units:"ms"}),(0,h.jsx)(b.ValueLineComponent,{label:"GPU Frame time",value:D.gpuFrameTimeCounter.lastSecAverage*1e-6,units:"ms"}),(0,h.jsx)(b.ValueLineComponent,{label:"GPU Frame time (average)",value:D.gpuFrameTimeCounter.average*1e-6,units:"ms"})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"SYSTEM INFO",children:[(0,h.jsx)(A.TextLineComponent,{label:"Resolution",value:N.getRenderWidth()+"x"+N.getRenderHeight()}),(0,h.jsx)(A.TextLineComponent,{label:"Hardware scaling level",value:N.getHardwareScalingLevel().toString()}),(0,h.jsx)(A.TextLineComponent,{label:"Engine",value:N.description}),(0,h.jsx)(M.BooleanLineComponent,{label:"Std derivatives",value:k.standardDerivatives}),(0,h.jsx)(M.BooleanLineComponent,{label:"Compressed textures",value:k.s3tc!==void 0}),(0,h.jsx)(M.BooleanLineComponent,{label:"Hardware instances",value:k.instancedArrays}),(0,h.jsx)(M.BooleanLineComponent,{label:"Texture float",value:k.textureFloat}),(0,h.jsx)(M.BooleanLineComponent,{label:"Texture half-float",value:k.textureHalfFloat}),(0,h.jsx)(M.BooleanLineComponent,{label:"Render to texture float",value:k.textureFloatRender}),(0,h.jsx)(M.BooleanLineComponent,{label:"Render to texture half-float",value:k.textureHalfFloatRender}),(0,h.jsx)(M.BooleanLineComponent,{label:"32bits indices",value:k.uintIndices}),(0,h.jsx)(M.BooleanLineComponent,{label:"Fragment depth",value:k.fragmentDepthSupported}),(0,h.jsx)(M.BooleanLineComponent,{label:"High precision shaders",value:k.highPrecisionShaderSupported}),(0,h.jsx)(M.BooleanLineComponent,{label:"Draw buffers",value:k.drawBuffersExtension}),(0,h.jsx)(M.BooleanLineComponent,{label:"Vertex array object",value:k.vertexArrayObject}),(0,h.jsx)(M.BooleanLineComponent,{label:"Timer query",value:k.timerQuery!==void 0}),(0,h.jsx)(M.BooleanLineComponent,{label:"Stencil",value:N.isStencilEnable}),(0,h.jsx)(M.BooleanLineComponent,{label:"Parallel shader compilation",value:k.parallelShaderCompile!=null}),(0,h.jsx)(b.ValueLineComponent,{label:"Max textures units",value:k.maxTexturesImageUnits,fractionDigits:0}),(0,h.jsx)(b.ValueLineComponent,{label:"Max textures size",value:k.maxTextureSize,fractionDigits:0}),(0,h.jsx)(b.ValueLineComponent,{label:"Max anisotropy",value:k.maxAnisotropy,fractionDigits:0}),(0,h.jsx)(A.TextLineComponent,{label:"Driver",value:N.extractDriverInfo()})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/tools/gltfComponent.js":(m,_,d)=>{d.r(_),d.d(_,{GLTFComponent:()=>I});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/messageLineComponent.js"),T=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),O=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),R=d("loaders/glTF/index");class I extends x.Component{constructor(w){super(w),this._onValidationResultsUpdatedObserver=null,this.state={showGLTFLoaderOptions:this.props.globalState.glTFLoaderOverrideConfig,showGLTFExtensionOptions:this.props.globalState.glTFLoaderOverrideExtensionsConfig}}openValidationDetails(){const w=this.props.globalState.validationResults,D=window.open("","_blank");if(D&&w){D.document.title=`${w.uri} - glTF Validation Results`,D.document.body.style.backgroundColor="#333333",D.document.body.style.color="#fff",D.document.body.style.padding="1rem";const k=D.document.createElement("pre"),Y=D.document.createElement("code"),V=D.document.createTextNode(JSON.stringify(w,null,2));Y.append(V),k.append(Y),D.document.body.append(k),D.focus()}}prepareText(w,D){return D?`${D} ${w}s`:`${w}`}componentDidMount(){this.props.globalState&&(this._onValidationResultsUpdatedObserver=this.props.globalState.onValidationResultsUpdatedObservable.add(()=>{this.forceUpdate()}))}componentWillUnmount(){this.props.globalState&&this._onValidationResultsUpdatedObserver&&this.props.globalState.onValidationResultsUpdatedObservable.remove(this._onValidationResultsUpdatedObserver)}renderValidation(){const w=this.props.globalState.validationResults;if(!w)return null;const D=w.issues;return(0,h.jsxs)(A.LineContainerComponent,{title:"GLTF VALIDATION",closed:!D.numErrors&&!D.numWarnings,selection:this.props.globalState,children:[D.numErrors!==0&&(0,h.jsx)(M.MessageLineComponent,{text:"Your file has some validation issues",icon:T.faTimesCircle,color:"Red"}),D.numErrors===0&&(0,h.jsx)(M.MessageLineComponent,{text:"Your file is a valid glTF file",icon:T.faCheck,color:"Green"}),(0,h.jsx)(O.TextLineComponent,{label:"Errors",value:D.numErrors.toString()}),(0,h.jsx)(O.TextLineComponent,{label:"Warnings",value:D.numWarnings.toString()}),(0,h.jsx)(O.TextLineComponent,{label:"Infos",value:D.numInfos.toString()}),(0,h.jsx)(O.TextLineComponent,{label:"Hints",value:D.numHints.toString()}),(0,h.jsx)(O.TextLineComponent,{label:"Report Details",value:"Open",onLink:()=>this.openValidationDetails(),onCopy:()=>JSON.stringify(w)})]})}render(){const w=this.props.globalState.glTFLoaderExtensionDefaults,D=this.props.globalState.glTFLoaderDefaults,k=typeof R.GLTFLoaderAnimationStartMode<"u"?[{label:"None",value:R.GLTFLoaderAnimationStartMode.NONE},{label:"First",value:R.GLTFLoaderAnimationStartMode.FIRST},{label:"ALL",value:R.GLTFLoaderAnimationStartMode.ALL}]:[{label:"None",value:0},{label:"First",value:1},{label:"ALL",value:2}],Y=typeof R.GLTFLoaderCoordinateSystemMode<"u"?[{label:"Auto",value:R.GLTFLoaderCoordinateSystemMode.AUTO},{label:"Right handed",value:R.GLTFLoaderCoordinateSystemMode.FORCE_RIGHT_HANDED}]:[{label:"Auto",value:0},{label:"Right handed",value:1}];return(0,h.jsxs)("div",{children:[(0,h.jsxs)(A.LineContainerComponent,{title:"GLTF LOADER",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(S.CheckBoxLineComponent,{label:"Override glTF loader options",target:this.props.globalState,propertyName:"glTFLoaderOverrideConfig",onValueChanged:()=>this.setState({showGLTFLoaderOptions:this.props.globalState.glTFLoaderOverrideConfig})}),(0,h.jsx)(M.MessageLineComponent,{text:this.props.globalState.glTFLoaderOverrideConfig?"Modify glTF loader overrides below":"Toggle on glTF loader overrides to see and change options"}),this.state.showGLTFLoaderOptions&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(S.CheckBoxLineComponent,{label:"Always compute bounding box",target:D,propertyName:"alwaysComputeBoundingBox"}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Always compute skeleton root node",target:D,propertyName:"alwaysComputeSkeletonRootNode"}),(0,h.jsx)(b.OptionsLine,{label:"Animation start mode",options:k,target:D,propertyName:"animationStartMode"}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Capture performance counters",target:D,propertyName:"capturePerformanceCounters"}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Compile materials",target:D,propertyName:"compileMaterials"}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Compile shadow generators",target:D,propertyName:"compileShadowGenerators"}),(0,h.jsx)(b.OptionsLine,{label:"Coordinate system",options:Y,target:D,propertyName:"coordinateSystemMode"}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Create instances",target:D,propertyName:"createInstances"}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Enable logging",target:D,propertyName:"loggingEnabled"}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Load all materials",target:D,propertyName:"loadAllMaterials"}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Target FPS",target:D,propertyName:"targetFps",isInteger:!0}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Transparency as coverage",target:D,propertyName:"transparencyAsCoverage"}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Use clip plane",target:D,propertyName:"useClipPlane"}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Use sRGB buffers",target:D,propertyName:"useSRGBBuffers"}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"Validate",target:D,propertyName:"validate"}),(0,h.jsx)(M.MessageLineComponent,{text:"You need to reload your file to see these changes"})]})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"GLTF EXTENSIONS",closed:!0,selection:this.props.globalState,children:[(0,h.jsx)(S.CheckBoxLineComponent,{label:"Override glTF extension options",target:this.props.globalState,propertyName:"glTFLoaderOverrideExtensionsConfig",onValueChanged:()=>this.setState({showGLTFExtensionOptions:this.props.globalState.glTFLoaderOverrideExtensionsConfig})}),(0,h.jsx)(M.MessageLineComponent,{text:this.props.globalState.glTFLoaderOverrideExtensionsConfig?"Modify glTF extension overrides below":"Toggle on glTF extension overrides to see and change options"}),this.state.showGLTFExtensionOptions&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(S.CheckBoxLineComponent,{label:"EXT_lights_image_based",isSelected:()=>w.EXT_lights_image_based.enabled,onSelect:V=>w.EXT_lights_image_based.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"EXT_mesh_gpu_instancing",isSelected:()=>w.EXT_mesh_gpu_instancing.enabled,onSelect:V=>w.EXT_mesh_gpu_instancing.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"EXT_texture_webp",isSelected:()=>w.EXT_texture_webp.enabled,onSelect:V=>w.EXT_texture_webp.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"EXT_texture_avif",isSelected:()=>w.EXT_texture_avif.enabled,onSelect:V=>w.EXT_texture_avif.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_draco_mesh_compression",isSelected:()=>w.KHR_draco_mesh_compression.enabled,onSelect:V=>w.KHR_draco_mesh_compression.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_pbrSpecularGloss...",isSelected:()=>w.KHR_materials_pbrSpecularGlossiness.enabled,onSelect:V=>w.KHR_materials_pbrSpecularGlossiness.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_clearcoat",isSelected:()=>w.KHR_materials_clearcoat.enabled,onSelect:V=>w.KHR_materials_clearcoat.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_iridescence",isSelected:()=>w.KHR_materials_iridescence.enabled,onSelect:V=>w.KHR_materials_iridescence.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_anisotropy",isSelected:()=>w.KHR_materials_anisotropy.enabled,onSelect:V=>w.KHR_materials_anisotropy.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_emissive_strength",isSelected:()=>w.KHR_materials_emissive_strength.enabled,onSelect:V=>w.KHR_materials_emissive_strength.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_ior",isSelected:()=>w.KHR_materials_ior.enabled,onSelect:V=>w.KHR_materials_ior.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_sheen",isSelected:()=>w.KHR_materials_sheen.enabled,onSelect:V=>w.KHR_materials_sheen.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_specular",isSelected:()=>w.KHR_materials_specular.enabled,onSelect:V=>w.KHR_materials_specular.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_unlit",isSelected:()=>w.KHR_materials_unlit.enabled,onSelect:V=>w.KHR_materials_unlit.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_variants",isSelected:()=>w.KHR_materials_variants.enabled,onSelect:V=>w.KHR_materials_variants.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_transmission",isSelected:()=>w.KHR_materials_transmission.enabled,onSelect:V=>w.KHR_materials_transmission.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_diffuse_transmission",isSelected:()=>w.KHR_materials_diffuse_transmission.enabled,onSelect:V=>w.KHR_materials_diffuse_transmission.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_volume",isSelected:()=>w.KHR_materials_volume.enabled,onSelect:V=>w.KHR_materials_volume.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_materials_dispersion",isSelected:()=>w.KHR_materials_dispersion.enabled,onSelect:V=>w.KHR_materials_dispersion.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_mesh_quantization",isSelected:()=>w.KHR_mesh_quantization.enabled,onSelect:V=>w.KHR_mesh_quantization.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_lights_punctual",isSelected:()=>w.KHR_lights_punctual.enabled,onSelect:V=>w.KHR_lights_punctual.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_texture_basisu",isSelected:()=>w.KHR_texture_basisu.enabled,onSelect:V=>w.KHR_texture_basisu.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_texture_transform",isSelected:()=>w.KHR_texture_transform.enabled,onSelect:V=>w.KHR_texture_transform.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"KHR_xmp_json_ld",isSelected:()=>w.KHR_xmp_json_ld.enabled,onSelect:V=>w.KHR_xmp_json_ld.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"MSFT_lod",isSelected:()=>w.MSFT_lod.enabled,onSelect:V=>w.MSFT_lod.enabled=V}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Maximum LODs",target:w.MSFT_lod,propertyName:"maxLODsToLoad",additionalClass:"gltf-extension-property",isInteger:!0}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"MSFT_minecraftMesh",isSelected:()=>w.MSFT_minecraftMesh.enabled,onSelect:V=>w.MSFT_minecraftMesh.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"MSFT_sRGBFactors",isSelected:()=>w.MSFT_sRGBFactors.enabled,onSelect:V=>w.MSFT_sRGBFactors.enabled=V}),(0,h.jsx)(S.CheckBoxLineComponent,{label:"MSFT_audio_emitter",isSelected:()=>w.MSFT_audio_emitter.enabled,onSelect:V=>w.MSFT_audio_emitter.enabled=V}),(0,h.jsx)(M.MessageLineComponent,{text:"You need to reload your file to see these changes"})]})]}),this.props.globalState.validationResults&&this.renderValidation()]})}}},"../../../dev/inspector/dist/components/actionTabs/tabs/toolsTabComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ToolsTabComponent:()=>W});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../dev/inspector/dist/components/actionTabs/paneComponent.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js"),E=d("core/Misc/observable"),b=d("../../../dev/inspector/dist/components/actionTabs/tabs/tools/gltfComponent.js"),M=d("serializers/glTF/2.0/index"),T=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/numericInputComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),I=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),N=d("../../../dev/sharedUiComponents/dist/lines/fileMultipleButtonLineComponent.js"),w=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),D=d("../../../dev/sharedUiComponents/dist/lines/messageLineComponent.js"),k=d("../../../dev/sharedUiComponents/dist/lines/fileButtonLineComponent.js"),Y=d("../../../dev/sharedUiComponents/dist/lines/indentedTextLineComponent.js"),V=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),ee=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/lockObject.js"),K=d("../../../../node_modules/gif.js.optimized/dist/gif.js"),ie=d.n(K),ne=d("loaders/glTF/index");const te=[{label:"PNG",value:0,imageType:"image/png"},{label:"WebP",value:1,imageType:"image/webp"}];class W extends x.PaneComponent{constructor(re){super(re),this._lockObject=new ee.LockObject,this._screenShotSize={precision:1},this._gifOptions={width:512,frequency:200},this._useWidthHeight=!1,this._isExportingGltf=!1,this._gltfExportOptions={exportDisabledNodes:!1,exportSkyboxes:!1,exportCameras:!1,exportLights:!1},this._crunchingGIF=!1,this._reflectorHostname="localhost",this._reflectorPort=1234,this._envOptions={imageTypeIndex:0,imageQuality:.8,iblDiffuse:!1},this.state={tag:"Record video"};const oe=this.props.globalState.sceneImportDefaults;oe.overwriteAnimations===void 0&&(oe.overwriteAnimations=!0),oe.animationGroupLoadingMode===void 0&&(oe.animationGroupLoadingMode=0)}componentDidMount(){if(!M.GLTF2Export){E.Tools.Warn("GLTF2Export is not available. Make sure to load the serializers library");return}}componentWillUnmount(){if(this._videoRecorder&&(this._videoRecorder.stopRecording(),this._videoRecorder.dispose(),this._videoRecorder=null),this._gifRecorder){this._gifRecorder.render(),this._gifRecorder=null;return}}captureScreenshot(){const re=this.props.scene;re.activeCamera&&E.Tools.CreateScreenshot(re.getEngine(),re.activeCamera,this._screenShotSize)}captureEquirectangular(){const re=this.props.scene;re.activeCamera&&(0,E.captureEquirectangularFromScene)(re,{size:1024,filename:"equirectangular_capture.png"})}captureRender(){const re=this.props.scene,oe={height:this._screenShotSize.height,width:this._screenShotSize.width,precision:this._screenShotSize.precision};this._useWidthHeight||(this._screenShotSize.width=void 0,this._screenShotSize.height=void 0),re.activeCamera&&E.Tools.CreateScreenshotUsingRenderTarget(re.getEngine(),re.activeCamera,this._screenShotSize,void 0,void 0,4),this._screenShotSize=oe}recordVideo(){if(this._videoRecorder&&this._videoRecorder.isRecording){this._videoRecorder.stopRecording();return}const re=this.props.scene;this._videoRecorder||(this._videoRecorder=new E.VideoRecorder(re.getEngine())),this._videoRecorder.startRecording().then(()=>{this.setState({tag:"Record video"})}),this.setState({tag:"Stop recording"})}recordGIFInternal(){const re=URL.createObjectURL(this._gifWorkerBlob);this._gifRecorder=new(ie())({workers:2,quality:10,workerScript:re});const X=this.props.scene.getEngine();this._previousRenderingScale=X.getHardwareScalingLevel(),X.setHardwareScalingLevel(X.getRenderWidth()/this._gifOptions.width||1);const se=setInterval(()=>{if(!this._gifRecorder){clearInterval(se);return}this._gifRecorder.addFrame(X.getRenderingCanvas(),{delay:0,copy:!0})},this._gifOptions.frequency);this._gifRecorder.on("finished",ue=>{this._crunchingGIF=!1,E.Tools.Download(ue,"record.gif"),this.forceUpdate(),URL.revokeObjectURL(re),X.setHardwareScalingLevel(this._previousRenderingScale)}),this.forceUpdate()}recordGIF(){if(this._gifRecorder){this._crunchingGIF=!0,this.forceUpdate(),this._gifRecorder.render(),this._gifRecorder=null;return}if(this._gifWorkerBlob){this.recordGIFInternal();return}E.Tools.LoadFileAsync("https://cdn.jsdelivr.net/gh//terikon/[email protected]/dist/gif.worker.js").then(re=>{this._gifWorkerBlob=new Blob([re],{type:"application/javascript"}),this.recordGIFInternal()})}importAnimations(re){const oe=this.props.scene,X=this.props.globalState.sceneImportDefaults.overwriteAnimations,se=this.props.globalState.sceneImportDefaults.animationGroupLoadingMode,ue=function(fe){if(fe){const Ae=function(Se){Se.animationGroups.length>0&&Se.animationGroups[0].play(!0)};E.SceneLoader.ImportAnimationsAsync("file:",fe,oe,X,se,null,Ae)}};new E.FilesInput(oe.getEngine(),oe,()=>{},()=>{},()=>{},()=>{},()=>{},ue,()=>{}).loadFiles(re)}exportGLTF(){const re=this.props.scene;this._isExportingGltf=!0,this.forceUpdate();const oe=X=>{if(!this._gltfExportOptions.exportDisabledNodes&&!X.isEnabled())return!1;if(!this._gltfExportOptions.exportSkyboxes&&X instanceof E.Mesh&&X.material){const ue=X.material.reflectionTexture;if(ue&&ue.coordinatesMode===E.Texture.SKYBOX_MODE)return!1}return!(!this._gltfExportOptions.exportCameras&&X instanceof E.Camera||!this._gltfExportOptions.exportLights&&X instanceof E.Light)};M.GLTF2Export.GLBAsync(re,"scene",{shouldExportNode:X=>oe(X)}).then(X=>{this._isExportingGltf=!1,this.forceUpdate(),X.downloadFiles()}).catch(X=>{E.Logger.Error(`Failed to export GLB: ${X}`),this._isExportingGltf=!1,this.forceUpdate()})}exportBabylon(){const re=this.props.scene,oe=JSON.stringify(E.SceneSerializer.Serialize(re)),X=new Blob([oe],{type:"octet/stream"});E.Tools.Download(X,"scene.babylon")}createEnvTexture(){if(!this.props.scene.environmentTexture)return;const re=this.props.scene;E.EnvironmentTextureTools.CreateEnvTextureAsync(re.environmentTexture,{imageType:te[this._envOptions.imageTypeIndex].imageType,imageQuality:this._envOptions.imageQuality,disableIrradianceTexture:!this._envOptions.iblDiffuse}).then(oe=>{const X=new Blob([oe],{type:"octet/stream"});E.Tools.Download(X,"environment.env")}).catch(oe=>{E.Logger.Error(oe),alert(oe)})}exportReplay(){this.props.globalState.recorder.export(),this.forceUpdate()}startRecording(){this.props.globalState.recorder.trackScene(this.props.scene),this.forceUpdate()}applyDelta(re){E.Tools.ReadFile(re,oe=>{this.props.globalState.recorder.applyDelta(oe,this.props.scene),this.forceUpdate()})}connectReflector(){this._reflector&&this._reflector.close(),this._reflector=new E.Reflector(this.props.scene,this._reflectorHostname,this._reflectorPort)}render(){const re=this.props.scene;if(!re)return null;const oe=this.props.globalState.sceneImportDefaults,X=[{label:"Clean",value:0},{label:"Stop",value:1},{label:"Sync",value:2},{label:"NoSync",value:3}];return(0,h.jsxs)("div",{className:"pane",children:[(0,h.jsxs)(A.LineContainerComponent,{title:"CAPTURE",selection:this.props.globalState,children:[(0,h.jsx)(S.ButtonLineComponent,{label:"Screenshot",onClick:()=>this.captureScreenshot()}),(0,h.jsx)(S.ButtonLineComponent,{label:"Generate equirectangular capture",onClick:()=>this.captureEquirectangular()}),(0,h.jsx)(S.ButtonLineComponent,{label:this.state.tag,onClick:()=>this.recordVideo()})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"CAPTURE WITH RTT",selection:this.props.globalState,children:[(0,h.jsx)(S.ButtonLineComponent,{label:"Capture",onClick:()=>this.captureRender()}),(0,h.jsxs)("div",{className:"vector3Line",children:[(0,h.jsx)(T.FloatLineComponent,{lockObject:this._lockObject,label:"Precision",target:this._screenShotSize,propertyName:"precision",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(R.CheckBoxLineComponent,{label:"Use Width/Height",onSelect:se=>{this._useWidthHeight=se,this.forceUpdate()},isSelected:()=>this._useWidthHeight}),this._useWidthHeight&&(0,h.jsxs)("div",{className:"secondLine",children:[(0,h.jsx)(O.NumericInput,{lockObject:this._lockObject,label:"Width",precision:0,step:1,value:this._screenShotSize.width?this._screenShotSize.width:512,onChange:se=>this._screenShotSize.width=se}),(0,h.jsx)(O.NumericInput,{lockObject:this._lockObject,label:"Height",precision:0,step:1,value:this._screenShotSize.height?this._screenShotSize.height:512,onChange:se=>this._screenShotSize.height=se})]})]})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"GIF",selection:this.props.globalState,children:[this._crunchingGIF&&(0,h.jsx)(D.MessageLineComponent,{text:"Creating the GIF file..."}),!this._crunchingGIF&&(0,h.jsx)(S.ButtonLineComponent,{label:this._gifRecorder?"Stop":"Record",onClick:()=>this.recordGIF()}),!this._crunchingGIF&&!this._gifRecorder&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(T.FloatLineComponent,{lockObject:this._lockObject,label:"Resolution",isInteger:!0,target:this._gifOptions,propertyName:"width"}),(0,h.jsx)(T.FloatLineComponent,{lockObject:this._lockObject,label:"Frequency (ms)",isInteger:!0,target:this._gifOptions,propertyName:"frequency"})]})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"REPLAY",selection:this.props.globalState,children:[!this.props.globalState.recorder.isRecording&&(0,h.jsx)(S.ButtonLineComponent,{label:"Start recording",onClick:()=>this.startRecording()}),this.props.globalState.recorder.isRecording&&(0,h.jsx)(Y.IndentedTextLineComponent,{value:"Record in progress"}),this.props.globalState.recorder.isRecording&&(0,h.jsx)(S.ButtonLineComponent,{label:"Generate delta file",onClick:()=>this.exportReplay()}),(0,h.jsx)(k.FileButtonLine,{label:"Apply delta file",onClick:se=>this.applyDelta(se),accept:".json"})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"SCENE IMPORT",selection:this.props.globalState,children:[(0,h.jsx)(N.FileMultipleButtonLineComponent,{label:"Import animations",accept:"gltf",onClick:se=>this.importAnimations(se)}),(0,h.jsx)(R.CheckBoxLineComponent,{label:"Overwrite animations",target:oe,propertyName:"overwriteAnimations",onSelect:se=>{oe.overwriteAnimations=se,this.forceUpdate()}}),oe.overwriteAnimations===!1&&(0,h.jsx)(w.OptionsLine,{label:"Animation merge mode",options:X,target:oe,propertyName:"animationGroupLoadingMode"})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"SCENE EXPORT",selection:this.props.globalState,children:[(0,h.jsx)(S.ButtonLineComponent,{label:"Export to Babylon",onClick:()=>this.exportBabylon()}),!re.getEngine().premultipliedAlpha&&re.environmentTexture&&re.environmentTexture._prefiltered&&re.activeCamera&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(S.ButtonLineComponent,{label:"Generate .env texture",onClick:()=>this.createEnvTexture()}),re.environmentTexture.irradianceTexture&&(0,h.jsx)(R.CheckBoxLineComponent,{label:"Diffuse Texture",target:this._envOptions,propertyName:"iblDiffuse",onSelect:se=>{this._envOptions.iblDiffuse=se,this.forceUpdate()}}),(0,h.jsx)(w.OptionsLine,{label:"Image type",options:te,target:this._envOptions,propertyName:"imageTypeIndex",onSelect:()=>{this.forceUpdate()}}),this._envOptions.imageTypeIndex>0&&(0,h.jsx)(T.FloatLineComponent,{lockObject:this._lockObject,label:"Quality",isInteger:!1,min:0,max:1,target:this._envOptions,propertyName:"imageQuality"})]})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"GLTF EXPORT",selection:this.props.globalState,children:[this._isExportingGltf&&(0,h.jsx)(I.TextLineComponent,{label:"Please wait..exporting",ignoreValue:!0}),!this._isExportingGltf&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(R.CheckBoxLineComponent,{label:"Export Disabled Nodes",isSelected:()=>this._gltfExportOptions.exportDisabledNodes,onSelect:se=>this._gltfExportOptions.exportDisabledNodes=se}),(0,h.jsx)(R.CheckBoxLineComponent,{label:"Export Skybox",isSelected:()=>this._gltfExportOptions.exportSkyboxes,onSelect:se=>this._gltfExportOptions.exportSkyboxes=se}),(0,h.jsx)(R.CheckBoxLineComponent,{label:"Export Cameras",isSelected:()=>this._gltfExportOptions.exportCameras,onSelect:se=>this._gltfExportOptions.exportCameras=se}),(0,h.jsx)(R.CheckBoxLineComponent,{label:"Export Lights",isSelected:()=>this._gltfExportOptions.exportLights,onSelect:se=>this._gltfExportOptions.exportLights=se}),(0,h.jsx)(S.ButtonLineComponent,{label:"Export to GLB",onClick:()=>this.exportGLTF()})]})]}),ne.GLTFFileLoader&&(0,h.jsx)(b.GLTFComponent,{lockObject:this._lockObject,scene:re,globalState:this.props.globalState}),(0,h.jsxs)(A.LineContainerComponent,{title:"REFLECTOR",selection:this.props.globalState,children:[(0,h.jsx)(V.TextInputLineComponent,{lockObject:this._lockObject,label:"Hostname",target:this,propertyName:"_reflectorHostname"}),(0,h.jsx)(T.FloatLineComponent,{lockObject:this._lockObject,label:"Port",target:this,propertyName:"_reflectorPort",isInteger:!0}),(0,h.jsx)(S.ButtonLineComponent,{label:"Connect",onClick:()=>this.connectReflector()})]})]})}}},"../../../dev/inspector/dist/components/actionTabs/tabsComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TabsComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js");class S extends x.Component{constructor(b){super(b)}onSelect(b){this.props.onSelectedIndexChange(b)}renderLabel(b,M){const T=this.props.selectedIndex===M?"label active":"label";return(0,h.jsx)("div",{className:T,onClick:()=>this.onSelect(M),title:b.props.title,children:(0,h.jsx)("div",{children:(0,h.jsx)(A.FontAwesomeIcon,{icon:b.props.icon})})},M)}render(){return(0,h.jsxs)("div",{className:"tabsMenu",onContextMenu:b=>b.preventDefault(),children:[(0,h.jsx)("div",{className:"labels",children:this.props.children.map((b,M)=>this.renderLabel(b,M))}),(0,h.jsx)("div",{className:"panes",children:this.props.children[this.props.selectedIndex]})]})}}},"../../../dev/inspector/dist/components/embedHost/embedHost.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>k});var h=d("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),x=d.n(h),A=d("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),S=d.n(A),E=d("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),b=d.n(E),M=d("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),T=d.n(M),O=d("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),R=d.n(O),I=d("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),N=d.n(I),w=d("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/embedHost/embedHost.scss"),D={};D.styleTagTransform=N(),D.setAttributes=T(),D.insert=b().bind(null,"head"),D.domAPI=S(),D.insertStyleElement=R(),x()(w.default,D);const k=w.default&&w.default.locals?w.default.locals:void 0},"../../../dev/inspector/dist/components/embedHost/embedHostComponent.js":(m,_,d)=>{d.r(_),d.d(_,{EmbedHostComponent:()=>O});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/headerComponent.js"),S=d("../../../../node_modules/re-resizable/lib/index.js"),E=d("../../../dev/inspector/dist/components/sceneExplorer/sceneExplorerComponent.js"),b=d("../../../dev/inspector/dist/components/actionTabs/actionTabsComponent.js"),M=d("../../../../node_modules/split.js/dist/split.es.js");d("../../../dev/inspector/dist/components/embedHost/embedHost.scss");const T=S.Resizable;class O extends x.Component{constructor(I){super(I),this._once=!0,this._splitRef=x.createRef(),this._topPartRef=x.createRef(),this._bottomPartRef=x.createRef()}componentDidMount(){this._splitRef.current&&(0,M.default)([this._topPartRef.current,this._bottomPartRef.current],{direction:"vertical",minSize:[200,200],gutterSize:4})}renderContent(){return this.props.popupMode?(0,h.jsxs)("div",{id:"split",className:"splitPopup",children:[(0,h.jsx)("div",{id:"topPart",children:(0,h.jsx)(E.SceneExplorerComponent,{scene:this.props.scene,extensibilityGroups:this.props.extensibilityGroups,additionalNodes:this.props.additionalNodes,popupMode:!0,globalState:this.props.globalState,noHeader:!0})}),(0,h.jsx)("div",{id:"separator"}),(0,h.jsx)("div",{id:"bottomPart",style:{marginTop:"4px",overflow:"hidden"},children:(0,h.jsx)(b.ActionTabsComponent,{scene:this.props.scene,popupMode:!0,globalState:this.props.globalState,noHeader:!0,initialTab:this.props.initialTab})})]}):(0,h.jsxs)("div",{ref:this._splitRef,id:"split",className:"noPopup",children:[(0,h.jsx)("div",{id:"topPart",ref:this._topPartRef,children:(0,h.jsx)(E.SceneExplorerComponent,{scene:this.props.scene,extensibilityGroups:this.props.extensibilityGroups,additionalNodes:this.props.additionalNodes,globalState:this.props.globalState,popupMode:!0,noHeader:!0})}),(0,h.jsx)("div",{id:"bottomPart",ref:this._bottomPartRef,style:{marginTop:"4px",overflow:"hidden"},children:(0,h.jsx)(b.ActionTabsComponent,{scene:this.props.scene,globalState:this.props.globalState,popupMode:!0,noHeader:!0,initialTab:this.props.initialTab})})]})}render(){return this.props.popupMode?(0,h.jsxs)("div",{id:"embed",children:[(0,h.jsx)(A.HeaderComponent,{title:"INSPECTOR",noClose:this.props.noClose,noExpand:this.props.noExpand,handleBack:!0,onClose:()=>this.props.onClose(),onPopup:()=>this.props.onPopup(),onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable}),this.renderContent()]}):(this._once&&(this._once=!1,setTimeout(()=>{const I=document.getElementById("embed");I&&(I.style.width="300px")},150)),(0,h.jsxs)(T,{id:"embed",minWidth:300,maxWidth:600,defaultSize:{height:"100%"},minHeight:"100%",enable:{top:!1,right:!1,bottom:!1,left:!0,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1},children:[(0,h.jsx)(A.HeaderComponent,{title:"INSPECTOR",noClose:this.props.noClose,noExpand:this.props.noExpand,handleBack:!0,onClose:()=>this.props.onClose(),onPopup:()=>this.props.onPopup(),onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable}),this.renderContent()]}))}}},"../../../dev/inspector/dist/components/globalState.js":(m,_,d)=>{d.r(_),d.d(_,{GlobalState:()=>S});var h=d("loaders/glTF/index"),x=d("core/Misc/observable"),A=d("../../../dev/inspector/dist/components/replayRecorder.js");class S{constructor(){this.onInspectorClosedObservable=new x.Observable,this.onTabChangedObservable=new x.Observable,this.onSelectionRenamedObservable=new x.Observable,this.onNewSceneObservable=new x.Observable,this.sceneImportDefaults={},this.validationResults=null,this.onValidationResultsUpdatedObservable=new x.Observable,this.glTFLoaderOverrideExtensionsConfig=!1,this.glTFLoaderExtensionDefaults={MSFT_lod:{enabled:!0,maxLODsToLoad:10},MSFT_minecraftMesh:{enabled:!0},MSFT_sRGBFactors:{enabled:!0},MSFT_audio_emitter:{enabled:!0},KHR_xmp_json_ld:{enabled:!0},KHR_draco_mesh_compression:{enabled:!0},KHR_mesh_quantization:{enabled:!0},KHR_materials_pbrSpecularGlossiness:{enabled:!0},KHR_materials_clearcoat:{enabled:!0},KHR_materials_iridescence:{enabled:!0},KHR_materials_anisotropy:{enabled:!0},KHR_materials_emissive_strength:{enabled:!0},KHR_materials_ior:{enabled:!0},KHR_materials_sheen:{enabled:!0},KHR_materials_specular:{enabled:!0},KHR_materials_unlit:{enabled:!0},KHR_materials_variants:{enabled:!0},KHR_materials_transmission:{enabled:!0},KHR_materials_diffuse_transmission:{enabled:!0},KHR_materials_volume:{enabled:!0},KHR_materials_dispersion:{enabled:!0},KHR_lights_punctual:{enabled:!0},EXT_lights_ies:{enabled:!0},KHR_texture_basisu:{enabled:!0},KHR_texture_transform:{enabled:!0},EXT_lights_image_based:{enabled:!0},EXT_mesh_gpu_instancing:{enabled:!0},EXT_texture_webp:{enabled:!0},EXT_texture_avif:{enabled:!0}},this.glTFLoaderOverrideConfig=!1,this.glTFLoaderDefaults={alwaysComputeBoundingBox:!1,alwaysComputeSkeletonRootNode:!1,animationStartMode:typeof h.GLTFLoaderAnimationStartMode<"u"?h.GLTFLoaderAnimationStartMode.FIRST:1,capturePerformanceCounters:!1,compileMaterials:!1,compileShadowGenerators:!1,coordinateSystemMode:typeof h.GLTFLoaderCoordinateSystemMode<"u"?h.GLTFLoaderCoordinateSystemMode.AUTO:0,createInstances:!0,loadAllMaterials:!1,loggingEnabled:!1,targetFps:60,transparencyAsCoverage:!1,useClipPlane:!1,useSRGBBuffers:!0},this.glTFLoaderExtensions={},this.blockMutationUpdates=!1,this.selectedLineContainerTitles=[],this.selectedLineContainerTitlesNoFocus=[],this.recorder=new A.ReplayRecorder,this._onlyUseEulers=null,this._ignoreBackfacesForPicking=null,this.lightGizmos=[],this.cameraGizmos=[],this.onSceneExplorerClosedObservable=new x.Observable,this.onActionTabsClosedObservable=new x.Observable}get onlyUseEulers(){return this._onlyUseEulers===null&&(this._onlyUseEulers=x.DataStorage.ReadBoolean("settings_onlyUseEulers",!0)),this._onlyUseEulers}set onlyUseEulers(b){this._onlyUseEulers=b,x.DataStorage.WriteBoolean("settings_onlyUseEulers",b)}get ignoreBackfacesForPicking(){return this._ignoreBackfacesForPicking===null&&(this._ignoreBackfacesForPicking=x.DataStorage.ReadBoolean("settings_ignoreBackfacesForPicking",!1)),this._ignoreBackfacesForPicking}set ignoreBackfacesForPicking(b){this._ignoreBackfacesForPicking=b,x.DataStorage.WriteBoolean("settings_ignoreBackfacesForPicking",b)}init(b){this.onPropertyChangedObservable=b,this.onNewSceneObservable.add(()=>{this.recorder.cancel()})}prepareGLTFPlugin(b){if(this.glTFLoaderExtensions={},this.glTFLoaderOverrideConfig){const M=this.glTFLoaderDefaults;if(M!==void 0)for(const T in M)b[T]=M[T]}b.onExtensionLoadedObservable.add(M=>{if(this.glTFLoaderOverrideExtensionsConfig){const T=this.glTFLoaderExtensionDefaults[M.name];if(T!==void 0)for(const O in T)M[O]=T[O]}this.glTFLoaderExtensions[M.name]=M}),b.onValidatedObservable.add(M=>{this.validationResults=M,this.onValidationResultsUpdatedObservable.notifyObservers(M),(M.issues.numErrors||M.issues.numWarnings)&&(this.selectedLineContainerTitlesNoFocus.push("GLTF VALIDATION"),this.onTabChangedObservable.notifyObservers(3))})}resetGLTFValidationResults(){this.validationResults&&(this.validationResults=null,this.onValidationResultsUpdatedObservable.notifyObservers(null))}enableLightGizmo(b,M=!0,T=null){M?(b.reservedDataStore||(b.reservedDataStore={}),b.reservedDataStore.lightGizmo||(b.reservedDataStore.lightGizmo=new x.LightGizmo,this.lightGizmos.push(b.reservedDataStore.lightGizmo),b.reservedDataStore.lightGizmo.light=b,b.reservedDataStore.lightGizmo.material.reservedDataStore={hidden:!0},T&&b.reservedDataStore.lightGizmo.gizmoLayer.setRenderCamera(T))):b.reservedDataStore&&b.reservedDataStore.lightGizmo&&(this.lightGizmos.splice(this.lightGizmos.indexOf(b.reservedDataStore.lightGizmo),1),b.reservedDataStore.lightGizmo.dispose(),b.reservedDataStore.lightGizmo=null)}enableCameraGizmo(b,M=!0,T=null){M?(b.reservedDataStore||(b.reservedDataStore={}),b.reservedDataStore.cameraGizmo||(b.reservedDataStore.cameraGizmo=new x.CameraGizmo,this.cameraGizmos.push(b.reservedDataStore.cameraGizmo),b.reservedDataStore.cameraGizmo.camera=b,b.reservedDataStore.cameraGizmo.material.reservedDataStore={hidden:!0},T&&b.reservedDataStore.cameraGizmo.gizmoLayer.setRenderCamera(T))):b.reservedDataStore&&b.reservedDataStore.cameraGizmo&&(this.cameraGizmos.splice(this.cameraGizmos.indexOf(b.reservedDataStore.cameraGizmo),1),b.reservedDataStore.cameraGizmo.dispose(),b.reservedDataStore.cameraGizmo=null)}}},"../../../dev/inspector/dist/components/graph/canvasGraphComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CanvasGraphComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/inspector/dist/components/graph/canvasGraphService.js"),S=d("core/Misc/observable");const E=b=>{const{id:M,collector:T,scene:O,layoutObservable:R,returnToPlayheadObservable:I,onVisibleRangeChangedObservable:N,initialGraphSize:w}=b,D=(0,x.useRef)(null);return(0,x.useEffect)(()=>{if(!D.current)return;w&&(D.current.width=w.width,D.current.height=w.height);let k;try{k=new A.CanvasGraphService(D.current,{datasets:T.datasets,onVisibleRangeChangedObservable:N})}catch(ie){S.Logger.Error(ie);return}const Y=ie=>{if(!D.current)return;const{left:ne,top:te}=D.current.getBoundingClientRect();ie.width=ie.width-ne,ie.height=ie.height-te,k==null||k.resize(ie)},V=()=>{k==null||k.update()},ee=ie=>{k&&(k.metadata=ie,k.update())},K=()=>{k==null||k.resetDataPosition()};return O.onAfterRenderObservable.add(V),T.metadataObservable.add(ee),R==null||R.add(Y),I==null||I.add(K),()=>{k==null||k.destroy(),R==null||R.removeCallback(Y),O.onAfterRenderObservable.removeCallback(V),T.metadataObservable.removeCallback(ee)}},[D]),(0,h.jsx)("canvas",{id:M,ref:D})}},"../../../dev/inspector/dist/components/graph/canvasGraphService.js":(m,_,d)=>{d.r(_),d.d(_,{CanvasGraphService:()=>ot});var h=d("../../../dev/inspector/dist/components/graph/graphSupportingTypes.js"),x=d("core/Misc/observable");const A="#000",S="#c0c4c8",E="#dfe9ed",b="#0a3066",M="#b9dbef",T="#4d5960",O="#566268",R="#fbfbfb",I=0,N=1,w=.8,D=.2,k=10,Y=10,V=5,ee=20,K=10,ie=20,ne=3,te=10,W=2,Q=8,re=2,oe=10,X=10,se=.8,ue=.95,he=.998,fe="12px Arial",Ae="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",Se=64,we=1e3,ke=we*60,st=ke*60,Ve=32,Ke=15,ct=.1,nt="#aaaaaa",at=.2,xt=.1;function Qe(At,Me){let je;return function(...rt){clearTimeout(je),je=setTimeout(()=>At(...rt),Me)}}function kt(At,Me){let je=0;return function(...rt){const yt=Date.now();yt-je<Me||(je=yt,At(...rt))}}class ot{constructor(Me,je){this._sizeOfWindow=300,this.update=kt(()=>this._draw(),Ke),this._prevPointById=new Map,this._prevValueById=new Map,this._handleDataHover=Rt=>{this._panPosition||(this._hoverPosition={xPos:Rt.clientX,yPos:Rt.clientY},this._debouncedTooltip(this._hoverPosition,this._drawableArea))},this._debouncedTooltip=Qe((Rt,Nt)=>{this._preprocessTooltip(Rt,Nt),this._drawTooltip(Rt,Nt)},Ve),this._handleStopHover=()=>{this._hoverPosition=null},this._handleZoom=Rt=>{if(Rt.preventDefault(),!Rt.deltaY)return;const Nt=(Rt.deltaY*-.01|0)*100,Kt=60,si=this._getNumberOfSlices();this._shouldBecomeRealtime()&&(this._position=null),this._sizeOfWindow=x.Scalar.Clamp(this._sizeOfWindow-Nt,Kt,si)},this._handlePanStart=Rt=>{const{_ctx:Nt}=this;if(!Nt||!Nt.canvas)return;const Kt=Nt.canvas;this._panPosition={xPos:Rt.clientX,delta:0},this._hoverPosition=null,Kt.addEventListener("mousemove",this._handlePan)},this._handlePan=Rt=>{if(!this._panPosition||this._getNumberOfSlices()===0)return;const Nt=this._panPosition.delta+Rt.clientX-this._panPosition.xPos,Kt=(this._drawableArea.right-this._drawableArea.left)/this._sizeOfWindow,si=Nt/Kt|0,Pi=this._position??this._getNumberOfSlices()-1;this._position=x.Scalar.Clamp(Pi-si,Math.floor(this._sizeOfWindow*se),this._getNumberOfSlices()-Math.floor(this._sizeOfWindow*(1-se))),si===0?this._panPosition.delta+=Nt:this._panPosition.delta=0,this._panPosition.xPos=Rt.clientX,this._prevPointById.clear(),this._prevValueById.clear()},this._handlePanStop=()=>{const{_ctx:Rt}=this;if(!Rt||!Rt.canvas)return;this._shouldBecomeRealtime()&&(this._position=null),Rt.canvas.removeEventListener("mousemove",this._handlePan),this._panPosition=null},this._ctx=Me.getContext&&Me.getContext("2d"),this._width=Me.width,this._height=Me.height,this._ticks=[],this._panPosition=null,this._hoverPosition=null,this._position=null,this._datasetBounds={start:0,end:0},this._globalTimeMinMax={min:1/0,max:0},this._drawableArea={top:0,left:0,right:0,bottom:0},this._tooltipTextCache={text:"",width:0},this._tickerTextCache={text:"",width:0},this._tooltipItems=[],this._tickerItems=[],this._preprocessedTooltipInfo={focusedId:"",longestText:"",numberOfTooltipItems:0,xForActualTimestamp:0},this._numberOfTickers=0,this._onVisibleRangeChangedObservable=je.onVisibleRangeChangedObservable;for(let Rt=0;Rt<Se;Rt++)this._tooltipItems.push({text:"",color:""}),this._tickerItems.push({text:"",id:"",max:0,min:0});if(!this._ctx)throw Error("No canvas context accessible");const rt=this._ctx.measureText(Ae);this._defaultLineHeight=rt.actualBoundingBoxAscent+rt.actualBoundingBoxDescent,this._axisHeight=oe+X+this._defaultLineHeight+X,this._ctx.save(),this._ctx.font=fe;const yt=this._ctx.measureText(Ae);this._addonFontLineHeight=yt.actualBoundingBoxAscent+yt.actualBoundingBoxDescent,this._ctx.restore(),this.datasets=je.datasets,this.metadata=new Map,this._attachEventListeners(Me)}resize(Me){const{_ctx:je}=this,{width:rt,height:yt}=Me;!je||!je.canvas||(this._width=rt,this._height=yt,je.canvas.width=rt,je.canvas.height=yt,this.update())}resetDataPosition(){this._position=null}_draw(){const{_ctx:Me}=this;if(!Me)return;const je=this._getNumberOfSlices();if(je===0)return;this.clear(),this._globalTimeMinMax.min=1/0,this._globalTimeMinMax.max=0;const rt=this._position??je-1;let yt=rt-Math.ceil(this._sizeOfWindow*se),Rt=0;yt<0&&(Rt=0-yt,yt=0);let Nt=Math.ceil(rt+this._sizeOfWindow*(1-se)+Rt);if(Nt>je){const Ni=Nt-je;Nt=je,yt=Math.max(yt-Ni,0)}this._datasetBounds.start=yt,this._datasetBounds.end=Nt,this._globalTimeMinMax.min=this.datasets.data.at(this.datasets.startingIndices.at(this._datasetBounds.start)),this._globalTimeMinMax.max=this.datasets.data.at(this.datasets.startingIndices.at(this._datasetBounds.end-1));const Kt=Math.ceil((this._globalTimeMinMax.max-this._globalTimeMinMax.min)/se+this._globalTimeMinMax.min);this._datasetBounds.end=this._getClosestPointToTimestamp(Kt)+1,this._globalTimeMinMax.max=Math.max(this.datasets.data.at(this.datasets.startingIndices.at(this._datasetBounds.end-1)),this._globalTimeMinMax.max);const si=x.Scalar.Clamp((this._globalTimeMinMax.max-this._globalTimeMinMax.min)/(Kt-this._globalTimeMinMax.min),se,1);this._globalTimeMinMax.max=Kt,this._drawableArea.top=0,this._drawableArea.left=0,this._drawableArea.bottom=this._height,this._drawableArea.right=this._width,this._drawTickers(this._drawableArea,this._datasetBounds),this._drawTimeAxis(this._globalTimeMinMax,this._drawableArea),this._drawPlayheadRegion(this._drawableArea,si),this._drawableArea.top+=W,this._drawableArea.bottom-=W,this._preprocessTooltip(this._hoverPosition,this._drawableArea);const{left:Pi,right:gi,bottom:bi,top:wi}=this._drawableArea;this.datasets.ids.forEach((Ni,qt)=>{var Tt;let ci,qe=this._prevPointById.get(Ni),ri=this._prevValueById.get(Ni),Ot=!1;for(let Ut=0;Ut<this._numberOfTickers;Ut++)this._tickerItems[Ut].id===Ni&&(Ot=!0);if(!Ot)return;Me.beginPath(),Me.strokeStyle=((Tt=this.metadata.get(Ni))==null?void 0:Tt.color)??A,this._preprocessedTooltipInfo.focusedId===Ni?Me.globalAlpha=N:this._preprocessedTooltipInfo.focusedId!==""&&(Me.globalAlpha=D);const mt=new Array(this._datasetBounds.end-this._datasetBounds.start);for(let Ut=this._datasetBounds.start;Ut<this._datasetBounds.end;Ut++){const oi=this.datasets.data.at(this.datasets.startingIndices.at(Ut)+x.PerformanceViewerCollector.NumberOfPointsOffset);if(qt>=oi)continue;const ji=this.datasets.startingIndices.at(Ut)+x.PerformanceViewerCollector.SliceDataOffset+qt,ki=this.datasets.data.at(ji);ri===void 0&&(ri=ki,this._prevValueById.set(Ni,ri));const os=at*ki+(1-at)*ri;mt[Ut-this._datasetBounds.start]=os,ci||(ci={min:os,max:os}),this._prevValueById.set(Ni,os),ci.min=Math.min(ci.min,os),ci.max=Math.max(ci.max,os)}const Ye=ci.max-ci.min;ci.min-=xt*Ye,ci.max+=xt*Ye;for(let Ut=this._datasetBounds.start;Ut<this._datasetBounds.end;Ut++){const oi=this.datasets.data.at(this.datasets.startingIndices.at(Ut)),ji=mt[Ut-this._datasetBounds.start],ki=this._getPixelForNumber(oi,this._globalTimeMinMax,Pi,gi-Pi,!1),os=this._getPixelForNumber(ji,ci,wi,bi-wi,!0);qe===void 0&&(qe=[ki,os],this._prevPointById.set(Ni,qe));const bs=ki-qe[0];bs>ct*(gi-Pi)?(Me.fillStyle=nt,Me.fillRect(qe[0],wi,bs,bi-wi)):qe[0]<ki&&(Me.moveTo(qe[0],qe[1]),Me.lineTo(ki,os)),qe[0]=ki,qe[1]=os}Me.stroke()}),Me.globalAlpha=N,this._drawTooltip(this._hoverPosition,this._drawableArea)}_drawTickers(Me,je){var Kt;const{_ctx:rt}=this;if(!rt)return;let yt="";this._numberOfTickers=0;const Rt=new Map;this.datasets.ids.forEach((si,Pi)=>{var Ni;if((Ni=this.metadata.get(si))!=null&&Ni.hidden)return;const gi=this._getMinMax(je,Pi),bi=this.datasets.data.at(this.datasets.startingIndices.at(je.end-1)+x.PerformanceViewerCollector.SliceDataOffset+Pi),wi=`${si}: ${bi.toFixed(2)} (max: ${gi.max.toFixed(2)}, min: ${gi.min.toFixed(2)})`;Rt.set(si,{min:gi.min,max:gi.max,current:bi}),wi.length>yt.length&&(yt=wi),this._tickerItems[this._numberOfTickers].id=si,this._tickerItems[this._numberOfTickers].max=gi.max,this._tickerItems[this._numberOfTickers].min=gi.min,this._tickerItems[this._numberOfTickers].text=wi,this._numberOfTickers++}),(Kt=this._onVisibleRangeChangedObservable)==null||Kt.notifyObservers({valueMap:Rt}),rt.save(),rt.font=fe,rt.textBaseline="middle",rt.textAlign="left";let Nt;this._tickerTextCache.text.length===yt.length?Nt=this._tickerTextCache.width:(Nt=rt.measureText(yt).width+2*te,this._tickerTextCache.text=yt,this._tickerTextCache.width=Nt),rt.restore()}_getClosestPointToTimestamp(Me){let je=0,rt=this._getNumberOfSlices()-1,yt=0;for(;je<=rt;){const Rt=Math.trunc((je+rt)/2),Nt=this.datasets.data.at(this.datasets.startingIndices.at(Rt));if(Math.abs(Nt-Me)<Math.abs(this.datasets.data.at(this.datasets.startingIndices.at(yt))-Me)&&(yt=Rt),Nt<Me)je=Rt+1;else if(Nt>Me)rt=Rt-1;else break}return yt}_getNumberOfSlices(){return this.datasets.startingIndices.itemLength}_drawTimeAxis(Me,je){const{_ctx:rt}=this;if(!rt)return;const yt=je.right-je.left;this._generateTicks(Me,yt),je.bottom-=this._axisHeight,rt.save(),rt.fillStyle=S,rt.fillRect(je.left,je.bottom,yt,this._axisHeight),rt.beginPath(),rt.strokeStyle=A,rt.moveTo(je.left,je.bottom),rt.lineTo(je.right,je.bottom),rt.fillStyle=A,rt.textAlign="center",rt.textBaseline="middle";const Rt=this._getTimestampUnit(this._ticks[this._ticks.length-1]);this._ticks.forEach(Nt=>{let Kt=this._getPixelForNumber(Nt,Me,je.left,yt,!1);Kt>yt&&(Kt=yt),rt.moveTo(Kt,je.bottom),rt.lineTo(Kt,je.bottom+10),rt.fillText(this._parseTimestamp(Nt,Rt),Kt,je.bottom+20)}),rt.stroke(),rt.restore()}_getTimestampUnit(Me){return Me/st>1?h.TimestampUnit.Hours:Me/ke>1?h.TimestampUnit.Minutes:Me/we>1?h.TimestampUnit.Seconds:h.TimestampUnit.Milliseconds}_parseTimestamp(Me,je){let rt="";if(je>=h.TimestampUnit.Hours){const Rt=Math.floor(Me/st);Me-=Rt*st,rt+=`${Rt.toString().padStart(je>h.TimestampUnit.Hours?2:1,"0")}:`}if(je>=h.TimestampUnit.Minutes){const Rt=Math.floor(Me/ke);Me-=Rt*ke,rt+=`${Rt.toString().padStart(je>h.TimestampUnit.Minutes?2:1,"0")}:`}const yt=Math.floor(Me/we);return Me-=yt*we,rt+=yt.toString().padStart(je>h.TimestampUnit.Seconds?2:1,"0"),Me>0&&(rt.length>0&&(rt+="."),rt+=Math.round(Me).toString().padStart(3,"0")),rt}_generateTicks(Me,je){const{min:rt,max:yt}=Me,Rt=40;this._ticks.length=0;const Nt=Math.ceil(je/Rt),Kt=this._niceNumber(yt-rt,!1),si=this._niceNumber(Kt/(Nt-1),!0),Pi=Math.floor(rt/si)*si,gi=Math.floor(yt/si)*si;for(let bi=Pi;bi<=gi+.5*si;bi+=si)this._ticks.push(bi)}_niceNumber(Me,je){const rt=Math.floor(Math.log10(Me)),yt=Me/Math.pow(10,rt);let Rt;return je?yt<1.5?Rt=1:yt<3?Rt=2:yt<7?Rt=5:Rt=10:yt<=1?Rt=1:yt<=2?Rt=2:yt<=5?Rt=5:Rt=10,Rt*Math.pow(10,rt)}_getMinMax(Me,je){let rt=1/0,yt=0;for(let Rt=Me.start;Rt<Me.end;Rt++){const Nt=this.datasets.data.at(this.datasets.startingIndices.at(Rt)+x.PerformanceViewerCollector.NumberOfPointsOffset);if(je>=Nt)continue;const Kt=this.datasets.startingIndices.at(Rt)+x.PerformanceViewerCollector.SliceDataOffset+je,si=this.datasets.data.at(Kt);si<rt&&(rt=si),si>yt&&(yt=si)}return{min:rt,max:yt}}_getPixelForNumber(Me,je,rt,yt,Rt){const{min:Nt,max:Kt}=je;let si=Math.abs(Kt-Nt)>.001?(Me-Nt)/(Kt-Nt):.5;return Rt&&(si=1-si),rt+si*yt}_attachEventListeners(Me){Me.addEventListener("wheel",this._handleZoom),Me.addEventListener("mousemove",this._handleDataHover),Me.addEventListener("mousedown",this._handlePanStart),Me.addEventListener("mouseleave",this._handleStopHover),Me.ownerDocument.addEventListener("mouseup",this._handlePanStop)}_removeEventListeners(Me){Me.removeEventListener("wheel",this._handleZoom),Me.removeEventListener("mousemove",this._handleDataHover),Me.removeEventListener("mousedown",this._handlePanStart),Me.removeEventListener("mouseleave",this._handleStopHover),Me.ownerDocument.removeEventListener("mouseup",this._handlePanStop)}_getDistanceFromLine(Me,je,rt,yt,Rt,Nt){if(Me===rt&&je===yt)return Math.sqrt(Math.pow(Me-Rt,2)+Math.pow(je-Nt,2));let Kt=0,si=0,Pi=0,gi=0;if(je>=yt?(Kt=Me,si=je,Pi=rt,gi=yt):(Kt=rt,si=yt,Pi=Me,gi=je),Nt<gi)return Math.sqrt(Math.pow(Pi-Rt,2)+Math.pow(gi-Nt,2));if(Nt>si)return Math.sqrt(Math.pow(Kt-Rt,2)+Math.pow(si-Nt,2));const bi=Math.abs((rt-Me)*(je-Nt)-(Me-Rt)*(yt-je)),wi=Math.sqrt(Math.pow(rt-Me,2)+Math.pow(yt-je,2));return bi/wi}_preprocessTooltip(Me,je){var ri;const{_ctx:rt}=this;if(Me===null||!rt||!rt.canvas||this._getNumberOfSlices()===0)return;const{left:yt,top:Rt}=rt.canvas.getBoundingClientRect(),Nt=Me.yPos-Rt;let Kt=Me.xPos-yt;Kt>je.right&&(Kt=je.right);const si=this._getNumberFromPixel(Kt,this._globalTimeMinMax,je.left,je.right,!1);let Pi="",gi=0;const bi=this._getClosestPointToTimestamp(si);let wi=0,Ni="",qt={min:0,max:0},ci=Number.POSITIVE_INFINITY;this.datasets.ids.forEach((Ot,mt)=>{var hi,Oi;if((hi=this.metadata.get(Ot))!=null&&hi.hidden)return;const Ye=this.datasets.data.at(this.datasets.startingIndices.at(bi)+x.PerformanceViewerCollector.NumberOfPointsOffset);if(mt>=Ye)return;const Tt=this.datasets.startingIndices.at(bi)+x.PerformanceViewerCollector.SliceDataOffset+mt,Ut=this.datasets.data.at(Tt);let oi;for(let li=0;li<this._numberOfTickers;li++)this._tickerItems[li].id===Ot&&(oi=this._tickerItems[li]);if(!oi)return;wi=this.datasets.data.at(this.datasets.startingIndices.at(bi));const ji=this._getPixelForNumber(Ut,oi,je.top,je.bottom-je.top,!0),ki=this._getPixelForNumber(wi,this._globalTimeMinMax,je.left,je.right-je.left,!1),os=`${Ot}: ${Ut.toFixed(2)}`;if(os.length>Pi.length&&(Pi=os),this._tooltipItems[gi].text=os,this._tooltipItems[gi].color=((Oi=this.metadata.get(Ot))==null?void 0:Oi.color)??A,gi++,!this._position)return;let bs=this._getDistanceFromLine(ki,ji,ki,ji,Me.xPos-yt,Nt);if(bi+1<this.datasets.data.itemLength&&this.datasets.data.at(this.datasets.startingIndices.at(bi+1)+x.PerformanceViewerCollector.NumberOfPointsOffset)>mt){const li=this.datasets.data.at(this.datasets.startingIndices.at(bi+1)),Xs=this._getPixelForNumber(li,this._globalTimeMinMax,je.left,je.right-je.left,!1),ks=this.datasets.data.at(this.datasets.startingIndices.at(bi+1)+x.PerformanceViewerCollector.SliceDataOffset+mt),hr=this._getPixelForNumber(ks,oi,je.top,je.bottom-je.top,!0);bs=Math.min(this._getDistanceFromLine(ki,ji,Xs,hr,Me.xPos-yt,Nt),bs)}if(bi-1>=0&&this.datasets.data.at(this.datasets.startingIndices.at(bi+1)+x.PerformanceViewerCollector.NumberOfPointsOffset)>mt){const li=this.datasets.data.at(this.datasets.startingIndices.at(bi-1)),Xs=this._getPixelForNumber(li,this._globalTimeMinMax,je.left,je.right-je.left,!1),ks=this.datasets.data.at(this.datasets.startingIndices.at(bi-1)+x.PerformanceViewerCollector.SliceDataOffset+mt),hr=this._getPixelForNumber(ks,oi,je.top,je.bottom-je.top,!0);bs=Math.min(this._getDistanceFromLine(ki,ji,Xs,hr,Me.xPos-yt,Nt),bs)}bs<ci&&(Ni=Ot,ci=bs,qt=oi)});const qe=this._getPixelForNumber(wi,this._globalTimeMinMax,je.left,je.right-je.left,!1);if(this._preprocessedTooltipInfo.xForActualTimestamp=qe,ci<=k&&this._position){this._preprocessedTooltipInfo.focusedId=Ni;const Ot=this._getNumberFromPixel(Nt,qt,je.top,je.bottom,!0),mt=`${Ni}: ${Ot.toFixed(2)}`;this._preprocessedTooltipInfo.longestText=mt,this._preprocessedTooltipInfo.numberOfTooltipItems=1,this._tooltipItems[0].text=mt,this._tooltipItems[0].color=((ri=this.metadata.get(Ni))==null?void 0:ri.color)??A}else this._preprocessedTooltipInfo.focusedId="",this._preprocessedTooltipInfo.longestText=Pi,this._preprocessedTooltipInfo.numberOfTooltipItems=gi}_drawTooltip(Me,je){const{_ctx:rt}=this;if(Me===null||!rt||!rt.canvas||this._getNumberOfSlices()===0)return;const{left:yt,top:Rt}=rt.canvas.getBoundingClientRect(),{numberOfTooltipItems:Nt,xForActualTimestamp:Kt,longestText:si}=this._preprocessedTooltipInfo;rt.save(),rt.fillStyle=T;const Pi=je.bottom+ne;if(rt.beginPath(),rt.moveTo(Kt,Pi),rt.lineTo(Kt+ie/2,Pi+K),rt.lineTo(Kt-ie/2,Pi+K),rt.closePath(),rt.fill(),rt.strokeStyle=T,rt.beginPath(),this._preprocessedTooltipInfo.focusedId==="")rt.moveTo(Kt,je.bottom),rt.lineTo(Kt,I);else{const qe=Me.yPos-Rt;rt.moveTo(je.left,qe),rt.lineTo(je.right,qe)}rt.stroke(),rt.font=fe,rt.textBaseline="middle",rt.textAlign="left";const gi=this._addonFontLineHeight,bi=this._addonFontLineHeight+Math.floor(Y/2);let wi;si===this._tooltipTextCache.text?wi=this._tooltipTextCache.width:(wi=rt.measureText(si).width+gi+2*Y+V,this._tooltipTextCache.text=si,this._tooltipTextCache.width=wi);const Ni=bi*(Nt+1);let qt=Me.xPos-yt,ci=je.bottom-ee-Ni;qt+wi>this._width&&(qt-=wi),rt.globalAlpha=w,rt.fillStyle=O,rt.fillRect(qt,ci,wi,Ni),rt.globalAlpha=N,qt+=Y,ci+=bi;for(let qe=0;qe<Nt;qe++){const ri=this._tooltipItems[qe];rt.fillStyle=ri.color,rt.fillRect(qt,ci-Math.floor(gi/2),gi,gi),rt.fillStyle=R,rt.fillText(ri.text,qt+gi+V,ci),ci+=bi}rt.restore()}_getNumberFromPixel(Me,je,rt,yt,Rt){let Nt=(Me-rt)/(yt-rt);return Rt&&(Nt=1-Nt),je.min+Nt*(je.max-je.min)}_shouldBecomeRealtime(){if(this._getNumberOfSlices()===0)return!1;const Me=this._position,je=this._getNumberOfSlices()-1;if(Me===null)return!1;const rt=Math.max(0-(Me-Math.ceil(this._sizeOfWindow*se)),0),yt=Math.min(rt+Me+Math.ceil(this._sizeOfWindow*(1-se)),je);return this.datasets.data.at(this.datasets.startingIndices.at(yt))/this.datasets.data.at(this.datasets.startingIndices.at(je))>he}_drawPlayheadRegion(Me,je){const{_ctx:rt}=this;if(!rt||je>=ue)return;const yt=Math.ceil(Me.right*je),Rt=yt-Q,Nt=yt+re,Kt=Me.bottom-Me.top-1;rt.save(),rt.fillStyle=E,rt.fillRect(Nt,Me.top,Me.right-Nt,Kt),rt.fillStyle=b,rt.fillRect(yt,Me.top,re,Kt),rt.fillStyle=M,rt.fillRect(Rt,Me.top,Q,Kt),rt.restore()}destroy(){!this._ctx||!this._ctx.canvas||(this._removeEventListeners(this._ctx.canvas),this._ctx=null)}clear(){const{_ctx:Me,_width:je,_height:rt}=this;Me&&(Me.save(),Me.resetTransform(),Me.clearRect(0,0,je,rt),Me.restore())}}},"../../../dev/inspector/dist/components/graph/graphSupportingTypes.js":(m,_,d)=>{d.r(_),d.d(_,{TimestampUnit:()=>h});var h;(function(x){x[x.Milliseconds=0]="Milliseconds",x[x.Seconds=1]="Seconds",x[x.Minutes=2]="Minutes",x[x.Hours=3]="Hours"})(h||(h={}))},"../../../dev/inspector/dist/components/headerComponent.js":(m,_,d)=>{d.r(_),d.d(_,{HeaderComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),A=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),S=d("../../../../node_modules/react/index.js");class E extends S.Component{constructor(M){super(M),this._backStack=new Array,this.state={isBackVisible:!1}}componentDidMount(){this.props.onSelectionChangedObservable&&(this._onSelectionChangeObserver=this.props.onSelectionChangedObservable.add(M=>{(this._backStack.length===0||M!==this._backStack[this._backStack.length-1])&&(this._backStack.push(M),this.setState({isBackVisible:this._backStack.length>1}))}))}componentWillUnmount(){this._onSelectionChangeObserver&&this.props.onSelectionChangedObservable.remove(this._onSelectionChangeObserver)}goBack(){this._backStack.pop();const M=this._backStack[this._backStack.length-1];this.props.onSelectionChangedObservable&&this.props.onSelectionChangedObservable.notifyObservers(M),this.setState({isBackVisible:this._backStack.length>1})}renderLogo(){return this.props.noCommands?null:this.props.handleBack?this.state.isBackVisible?(0,h.jsx)("div",{id:"back",onClick:()=>this.goBack(),children:(0,h.jsx)(x.FontAwesomeIcon,{icon:A.faArrowLeft})}):null:(0,h.jsx)("img",{id:"logo",style:{top:"0%"},src:"https://www.babylonjs.com/Assets/logo-babylonjs-social-twitter.png"})}render(){return(0,h.jsxs)("div",{id:"header",children:[this.renderLogo(),(0,h.jsx)("div",{id:"title",children:this.props.title}),(0,h.jsxs)("div",{id:"commands",children:[!this.props.noCommands&&!this.props.noExpand&&(0,h.jsx)("div",{className:"expand",onClick:()=>this.props.onPopup(),children:(0,h.jsx)(x.FontAwesomeIcon,{icon:A.faWindowRestore})}),!this.props.noCommands&&!this.props.noClose&&(0,h.jsx)("div",{className:"close",onClick:()=>this.props.onClose(),children:(0,h.jsx)(x.FontAwesomeIcon,{icon:A.faTimes})})]})]})}}},"../../../dev/inspector/dist/components/popupComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PopupComponent:()=>E});var h=d("../../../../node_modules/react/index.js"),x=d("../../../../node_modules/react-dom/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/popupHelper.js");class E extends h.Component{constructor(M){super(M),this.onBeforeUnloadListener=()=>{this._window&&this._window.close()},this._container=document.createElement("div"),this._container.id=this.props.id,this._window,this.state={isComponentMounted:!1,blockedByBrowser:!1}}componentDidMount(){this.openPopup(),this.setState({isComponentMounted:!0})}openPopup(){const{title:M,size:T,onClose:O,onOpen:R}=this.props;this._container=(0,S.CreatePopup)(M,{onWindowCreateCallback:I=>this._window=I,width:T.width,height:T.height}),this._container&&(this._host=this._container.ownerDocument.createElement("div"),this._host.id="host",this._host.style.width="auto",this._container.appendChild(this._host)),window.addEventListener("beforeunload",this.onBeforeUnloadListener),this._window?(R&&R(this._window),this._window.addEventListener("keyup",I=>{this.props.onKeyUp&&this.props.onKeyUp(I)}),this._window.addEventListener("keydown",I=>{this.props.onKeyDown&&this.props.onKeyDown(I)}),this._window.addEventListener("beforeunload",()=>this._window&&O(this._window)),this._window.addEventListener("resize",()=>{this.props.onResize&&this._window&&this.props.onResize(this._window)})):this._window||this.setState({blockedByBrowser:!0},()=>{this.state.blockedByBrowser&&A.Logger.Warn("Popup window couldn't be created")})}componentWillUnmount(){window.removeEventListener("beforeunload",this.onBeforeUnloadListener),this._window&&this._window.close()}getWindow(){return this._window}render(){return!this.state.isComponentMounted||this._container===null?null:x.createPortal(this.props.children,this._host)}}},"../../../dev/inspector/dist/components/propertyChangedEvent.js":(m,_,d)=>{d.r(_),d.d(_,{PropertyChangedEvent:()=>h});class h{}},"../../../dev/inspector/dist/components/replayRecorder.js":(m,_,d)=>{d.r(_),d.d(_,{ReplayRecorder:()=>x});var h=d("core/Misc/observable");class x{constructor(){this._sceneRecorder=new h.SceneRecorder,this._isRecording=!1}get isRecording(){return this._isRecording}cancel(){this._isRecording=!1}trackScene(S){this._sceneRecorder.track(S),this._isRecording=!0}applyDelta(S,E){h.SceneRecorder.ApplyDelta(S,E),this._isRecording=!1}export(){const S=JSON.stringify(this._sceneRecorder.getDelta());h.Tools.Download(new Blob([S]),"diff.json"),this._isRecording=!1}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/animationGroupTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{AnimationGroupItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){const T=this.props.animationGroup;return(0,h.jsxs)("div",{className:"animationGroupTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:T.name,onClick:()=>this.props.onClick(),icon:x.faLayerGroup,color:"cornflowerblue"}),(0,h.jsx)(S.ExtensionsComponent,{target:T,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/boneTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{BoneTreeItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){const T=this.props.bone;return(0,h.jsxs)("div",{className:"skeletonTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:T.name||"no name",onClick:()=>this.props.onClick(),icon:x.faBone,color:"lightgray"}),(0,h.jsx)(S.ExtensionsComponent,{target:T,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/cameraTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CameraTreeItemComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),A=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),S=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),E=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),b=d("../../../../node_modules/react/index.js");class M extends b.Component{constructor(O){super(O);const R=this.props.camera,I=R.getScene();this.state={isActive:I.activeCamera===R,isGizmoEnabled:R.reservedDataStore&&R.reservedDataStore.cameraGizmo}}setActive(){const O=this.props.camera,R=O.getScene(),I=R.activeCamera;R.activeCamera=O,O.attachControl(!0),this.props.globalState.onPropertyChangedObservable.notifyObservers({object:R,property:"activeCamera",value:O,initialValue:I}),this.setState({isActive:!0})}componentDidMount(){const O=this.props.camera.getScene();this._onBeforeRenderObserver=O.onBeforeRenderObservable.add(()=>{const R=this.props.camera;this.state.isActive&&O.activeCameras&&O.activeCameras.length<=1&&O.activeCamera!==R&&R.detachControl();const I=O.activeCamera===R;I!==this.state.isActive&&this.setState({isActive:I})})}componentWillUnmount(){this._onBeforeRenderObserver&&this.props.camera.getScene().onBeforeRenderObservable.remove(this._onBeforeRenderObserver)}toggleGizmo(){const O=this.props.camera;O.reservedDataStore&&O.reservedDataStore.cameraGizmo?(O.getScene().reservedDataStore&&O.getScene().reservedDataStore.gizmoManager&&O.getScene().reservedDataStore.gizmoManager.attachToMesh(null),this.props.globalState.enableCameraGizmo(O,!1),this.setState({isGizmoEnabled:!1})):(this.props.globalState.enableCameraGizmo(O,!0,this.props.gizmoCamera),this.setState({isGizmoEnabled:!0}))}render(){const O=this.state.isActive?(0,h.jsx)(x.FontAwesomeIcon,{icon:A.faVideo}):(0,h.jsx)(x.FontAwesomeIcon,{icon:A.faVideo,className:"isNotActive"}),R=this.props.camera.getScene(),I=this.state.isGizmoEnabled||this.props.camera&&this.props.camera.reservedDataStore&&this.props.camera.reservedDataStore.cameraGizmo?(0,h.jsx)(x.FontAwesomeIcon,{icon:A.faEye}):(0,h.jsx)(x.FontAwesomeIcon,{icon:A.faEye,className:"isNotActive"});return(0,h.jsxs)("div",{className:"cameraTools",children:[(0,h.jsx)(S.TreeItemLabelComponent,{label:this.props.camera.name,onClick:()=>this.props.onClick(),icon:A.faCamera,color:"green"}),(!R.activeCameras||R.activeCameras.length===0)&&(0,h.jsx)("div",{className:"activeCamera icon",onClick:()=>this.setActive(),title:"Set as main camera and attach to controls",children:O}),(0,h.jsx)("div",{className:"enableGizmo icon",onClick:()=>this.toggleGizmo(),title:"Turn on/off the camera's gizmo",children:I}),(0,h.jsx)(E.ExtensionsComponent,{target:this.props.camera,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/effectLayerPipelineTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{EffectLayerItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){return(0,h.jsxs)("div",{className:"effectLayerTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:this.props.layer.name,onClick:()=>this.props.onClick(),icon:x.faSun,color:"Plum"}),(0,h.jsx)(S.ExtensionsComponent,{target:this.props.layer,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/frameGraphTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{FrameGraphTreeItemComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),E=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),b=d("../../../../node_modules/react/index.js"),M=d("../../../dev/inspector/dist/components/sceneExplorer/entities/ic_fluent_flow_24_filled.svg");class T extends b.Component{constructor(R){super(R)}render(){const R=this.props.frameGraph.getLinkedNodeRenderGraph()?(0,h.jsx)("div",{className:"icon",onClick:()=>{this.props.frameGraph.getLinkedNodeRenderGraph().edit({nodeRenderGraphEditorConfig:{hostScene:this.props.frameGraph.scene}})},title:"Node Render Graph Editor",children:(0,h.jsx)(A.FontAwesomeIcon,{icon:x.faPen})}):null;return(0,h.jsxs)("div",{className:"frameGraphTools",children:[(0,h.jsx)(S.TreeItemLabelComponent,{label:this.props.frameGraph.name,onClick:()=>this.props.onClick(),iconBase64:M,color:"#6e9189"}),(0,h.jsx)(E.ExtensionsComponent,{target:this.props.frameGraph,extensibilityGroups:this.props.extensibilityGroups}),R]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/gui/advancedDynamicTextureTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{AdvancedDynamicTextureTreeItemComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js"),b=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),M=d("../../../dev/inspector/dist/components/sceneExplorer/entities/gui/guiTools.js");class T extends E.Component{constructor(R){super(R),this.state={isInPickingMode:!1}}componentWillUnmount(){const R=this.props.texture;this._onControlPickedObserver&&(R.onControlPickedObservable.remove(this._onControlPickedObserver),this._onControlPickedObserver=null)}onPickingMode(){const R=this.props.texture;this._onControlPickedObserver&&(R.onControlPickedObservable.remove(this._onControlPickedObserver),this._onControlPickedObserver=null),this.state.isInPickingMode||(this._onControlPickedObserver=R.onControlPickedObservable.add(I=>{this.props.onSelectionChangedObservable&&(I.getClassName()==="ScrollViewerWindow"&&(I=I.getAscendantOfClass("ScrollViewer")),this.props.onSelectionChangedObservable.notifyObservers(I))})),this.setState({isInPickingMode:!this.state.isInPickingMode})}render(){return(0,h.jsxs)("div",{className:"adtextureTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:this.props.texture.name,onClick:()=>this.props.onClick(),icon:x.faImage,color:"mediumpurple"}),(0,h.jsx)("div",{className:"icon edit",onClick:()=>(0,M.EditAdvancedDynamicTexture)(this.props.texture,!0),title:"Edit",children:(0,h.jsx)(b.FontAwesomeIcon,{icon:x.faPen})}),(0,h.jsx)("div",{className:this.state.isInPickingMode?"pickingMode selected icon":"pickingMode icon",onClick:()=>this.onPickingMode(),title:"Turn picking mode on/off",children:(0,h.jsx)(b.FontAwesomeIcon,{icon:x.faCrosshairs})}),(0,h.jsx)(S.ExtensionsComponent,{target:this.props.texture,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/gui/controlTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ControlTreeItemComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js"),b=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js");class M extends E.Component{constructor(O){super(O);const R=this.props.control;this.state={isActive:R.isHighlighted,isVisible:R.isVisible}}highlight(){const O=this.props.control;O.isHighlighted=!O.isHighlighted,this.setState({isActive:O.isHighlighted})}switchVisibility(){const O=!this.state.isVisible;this.setState({isVisible:O}),this.props.control.isVisible=O}render(){const O=this.props.control,R=(O.name||"No name")+` [${O.getClassName()}]`,I=this.state.isActive?(0,h.jsx)(b.FontAwesomeIcon,{icon:x.faHighlighter}):(0,h.jsx)(b.FontAwesomeIcon,{icon:x.faHighlighter,className:"isNotActive"}),N=this.state.isVisible?(0,h.jsx)(b.FontAwesomeIcon,{icon:x.faEye}):(0,h.jsx)(b.FontAwesomeIcon,{icon:x.faEyeSlash,className:"isNotActive"});return(0,h.jsxs)("div",{className:"controlTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:R,onClick:()=>this.props.onClick(),icon:x.faObjectGroup,color:"greenyellow"}),(0,h.jsx)("div",{className:"highlight icon",onClick:()=>this.highlight(),title:"Highlight this control",children:I}),(0,h.jsx)("div",{className:"visibility icon",onClick:()=>this.switchVisibility(),title:"Show/Hide control",children:N}),(0,h.jsx)(S.ExtensionsComponent,{target:O,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/gui/guiTools.js":(m,_,d)=>{d.r(_),d.d(_,{EditAdvancedDynamicTexture:()=>T,InjectGUIEditor:()=>b,SetGUIEditorURL:()=>M});var h=d("core/Misc/observable"),x=d("gui-editor/guiEditor");let A=`${h.Tools._DefaultCdnUrl}/v${h.Engine.Version}/guiEditor/babylon.guiEditor.js`,S;function E(){if(typeof x.GUIEditor<"u")return{GUIEditor:x.GUIEditor};if(typeof BABYLON<"u"&&typeof BABYLON.GUIEditor<"u")return BABYLON}function b(O){S=O}function M(O){A=O}async function T(O,R){if(S=S||E(),!S)if(typeof BABYLON<"u"){if(typeof S>"u")try{await h.Tools.LoadScriptAsync(A),S=S||E()}catch{throw`Failed to load GUI editor from ${A}`}}else throw'Tried to call EditAdvancedDynamicTexture without first injecting the GUI editor. You need to call InjectGUIEditor() with a reference to @babylonjs/gui-editor. It can be imported at runtime using await import("@babylonjs/gui-editor").';S.GUIEditor.Show({liveGuiTexture:O},R)}},"../../../dev/inspector/dist/components/sceneExplorer/entities/ic_fluent_flow_24_filled.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPHBhdGggZD0iTTE0LjA4MDIgOC44MDA2OUMxMy4zMTY0IDguOTg4NzUgMTIuNzUgOS42NzgyMyAxMi43NSAxMC41VjEzLjVDMTIuNzUgMTUuMTQ3NCAxMS41MjQzIDE2LjUwODUgOS45MzUxNyAxNi43MjExQzkuNTk1NjMgMTguNTg2MSA3Ljk2Mjk0IDIwIDYgMjBDMy43OTA4NiAyMCAyIDE4LjIwOTEgMiAxNkMyIDEzLjc5MDkgMy43OTA4NiAxMiA2IDEyQzcuOTM0OTIgMTIgOS41NDg5NiAxMy4zNzM5IDkuOTE5ODUgMTUuMTk5M0MxMC42ODM2IDE1LjAxMTMgMTEuMjUgMTQuMzIxOCAxMS4yNSAxMy41VjEwLjVDMTEuMjUgOC44NTI2MyAxMi40NzU3IDcuNDkxNTQgMTQuMDY0OCA3LjI3ODg4QzE0LjQwNDQgNS40MTM5MyAxNi4wMzcxIDQgMTggNEMyMC4yMDkxIDQgMjIgNS43OTA4NiAyMiA4QzIyIDEwLjIwOTEgMjAuMjA5MSAxMiAxOCAxMkMxNi4wNjUxIDEyIDE0LjQ1MSAxMC42MjYxIDE0LjA4MDIgOC44MDA2OVoiIGZpbGw9IiM2ZTkxODkiIC8+DQo8L3N2Zz4="},"../../../dev/inspector/dist/components/sceneExplorer/entities/lightTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{LightTreeItemComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),A=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),S=d("../../../../node_modules/@fortawesome/free-regular-svg-icons/index.mjs"),E=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),b=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),M=d("../../../../node_modules/react/index.js");class T extends M.Component{constructor(R){super(R);const I=this.props.light;this.state={isEnabled:I.isEnabled(),isGizmoEnabled:I.reservedDataStore&&I.reservedDataStore.lightGizmo}}switchIsEnabled(){const R=this.props.light;R.setEnabled(!R.isEnabled()),this.props.globalState.onPropertyChangedObservable.notifyObservers({object:R,property:"isEnabled",value:R.isEnabled(),initialValue:!R.isEnabled()}),this.setState({isEnabled:R.isEnabled()})}toggleGizmo(){const R=this.props.light;R.reservedDataStore&&R.reservedDataStore.lightGizmo?(R.getScene().reservedDataStore&&R.getScene().reservedDataStore.gizmoManager&&R.getScene().reservedDataStore.gizmoManager.attachToMesh(null),this.props.globalState.enableLightGizmo(R,!1),this.setState({isGizmoEnabled:!1})):(this.props.globalState.enableLightGizmo(R,!0,this.props.gizmoCamera),this.setState({isGizmoEnabled:!0}))}render(){const R=this.state.isEnabled?(0,h.jsx)(x.FontAwesomeIcon,{icon:S.faLightbulb}):(0,h.jsx)(x.FontAwesomeIcon,{icon:S.faLightbulb,className:"isNotActive"}),I=this.state.isGizmoEnabled||this.props.light&&this.props.light.reservedDataStore&&this.props.light.reservedDataStore.lightGizmo?(0,h.jsx)(x.FontAwesomeIcon,{icon:A.faEye}):(0,h.jsx)(x.FontAwesomeIcon,{icon:A.faEye,className:"isNotActive"});return(0,h.jsxs)("div",{className:"lightTools",children:[(0,h.jsx)(E.TreeItemLabelComponent,{label:this.props.light.name,onClick:()=>this.props.onClick(),icon:A.faLightbulb,color:"yellow"}),(0,h.jsx)("div",{className:"visibility icon",onClick:()=>this.switchIsEnabled(),title:"Turn on/off the light",children:R}),(0,h.jsx)("div",{className:"enableGizmo icon",onClick:()=>this.toggleGizmo(),title:"Turn on/off the light's gizmo",children:I}),(0,h.jsx)(b.ExtensionsComponent,{target:this.props.light,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/materialTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{MaterialTreeItemComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js"),b=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js");class M extends E.Component{constructor(O){super(O)}render(){const O=this.props.material.getClassName()==="NodeMaterial"?(0,h.jsx)("div",{className:"icon",onClick:()=>{this.props.material.edit({nodeEditorConfig:{backgroundColor:this.props.material.getScene().clearColor}})},title:"Node Material Editor",color:"white",children:(0,h.jsx)(b.FontAwesomeIcon,{icon:x.faPen})}):null;return(0,h.jsxs)("div",{className:"materialTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:this.props.material.name,onClick:()=>this.props.onClick(),icon:x.faBrush,color:"orange"}),(0,h.jsx)(S.ExtensionsComponent,{target:this.props.material,extensibilityGroups:this.props.extensibilityGroups}),O]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/meshTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{MeshTreeItemComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),A=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),S=d("../../../../node_modules/@fortawesome/free-regular-svg-icons/index.mjs"),E=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),b=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),M=d("../../../../node_modules/react/index.js");d("core/Misc/observable");class T extends M.Component{constructor(R){super(R);const I=this.props.mesh;this.state={isBoundingBoxEnabled:I.showBoundingBox,isVisible:this.props.mesh.isVisible}}showBoundingBox(){const R=this.props.mesh;R.showBoundingBox=!this.state.isBoundingBoxEnabled,this.props.globalState.onPropertyChangedObservable.notifyObservers({object:R,property:"showBoundingBox",value:R.showBoundingBox,initialValue:!R.showBoundingBox}),this.setState({isBoundingBoxEnabled:!this.state.isBoundingBoxEnabled})}switchVisibility(){const R=!this.state.isVisible;this.setState({isVisible:R}),this.props.mesh.isVisible=R,this.props.globalState.onPropertyChangedObservable.notifyObservers({object:this.props.mesh,property:"isVisible",value:R,initialValue:!R})}_getNameForLabel(){return typeof this.props.mesh.name=="string"?this.props.mesh.name:"no name"}_editGeometry(){const R=this.props.mesh;R._internalMetadata.nodeGeometry.edit({nodeGeometryEditorConfig:{backgroundColor:R.getScene().clearColor,hostMesh:R,hostScene:R.getScene()}})}render(){const R=this.props.mesh,I=this.state.isVisible?(0,h.jsx)(x.FontAwesomeIcon,{icon:S.faEye}):(0,h.jsx)(x.FontAwesomeIcon,{icon:S.faEyeSlash,className:"isNotActive"});return(0,h.jsxs)("div",{className:"meshTools",children:[(0,h.jsx)(E.TreeItemLabelComponent,{label:this._getNameForLabel(),onClick:()=>this.props.onClick(),icon:A.faCube,color:"dodgerblue"}),R._internalMetadata&&R._internalMetadata.nodeGeometry&&(0,h.jsx)("div",{className:"edit icon",onClick:()=>this._editGeometry(),title:"Edit Node Geometry",children:(0,h.jsx)(x.FontAwesomeIcon,{icon:A.faPen})}),(0,h.jsx)("div",{className:this.state.isBoundingBoxEnabled?"bounding-box selected icon":"bounding-box icon",onClick:()=>this.showBoundingBox(),title:"Show/Hide bounding box",children:(0,h.jsx)(x.FontAwesomeIcon,{icon:S.faSquare})}),(0,h.jsx)("div",{className:"visibility icon",onClick:()=>this.switchVisibility(),title:"Show/Hide mesh",children:I}),(0,h.jsx)(b.ExtensionsComponent,{target:R,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/particleSystemTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ParticleSystemTreeItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){return(0,h.jsxs)("div",{className:"particleSystemTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:this.props.system.name||"Particle system",onClick:()=>this.props.onClick(),icon:x.faBraille,color:"crimson"}),(0,h.jsx)(S.ExtensionsComponent,{target:this.props.system,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/postProcessTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{PostProcessItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){return(0,h.jsxs)("div",{className:"postProcessTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:this.props.postProcess.name,onClick:()=>this.props.onClick(),icon:x.faMagic,color:"red"}),(0,h.jsx)(S.ExtensionsComponent,{target:this.props.postProcess,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/renderingPipelineTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{RenderingPipelineItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){return(0,h.jsxs)("div",{className:"postProcessTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:this.props.renderPipeline.name,onClick:()=>this.props.onClick(),icon:x.faMagic,color:"orangered"}),(0,h.jsx)(S.ExtensionsComponent,{target:this.props.renderPipeline,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/sceneTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SceneTreeItemComponent:()=>O});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("core/Misc/observable"),A=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),S=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),E=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),b=d("../../../../node_modules/react/index.js"),M=d("../../../dev/inspector/dist/components/propertyChangedEvent.js"),T=d("../../../dev/inspector/dist/components/sceneExplorer/treeNodeDebugger.js");class O extends b.Component{constructor(I){super(I),this._posDragEnd=null,this._scaleDragEnd=null,this._rotateDragEnd=null;const N=this.props.scene;let w=0;if(N.reservedDataStore&&N.reservedDataStore.gizmoManager){const D=N.reservedDataStore.gizmoManager;D.positionGizmoEnabled?w=1:D.rotationGizmoEnabled?w=2:D.scaleGizmoEnabled?w=3:D.boundingBoxGizmoEnabled&&(w=4),D.enableAutoPicking=!1}this.state={isSelected:!1,isInPickingMode:!1,gizmoMode:w,isInWorldCoodinatesMode:!1}}shouldComponentUpdate(I,N){if(I.selectedEntity){if(I.scene===I.selectedEntity)return N.isSelected=!0,!0;N.isSelected=!1}return this.updateGizmoAutoPicking(N.isInPickingMode),!0}updateGizmoAutoPicking(I){const N=this.props.scene;if(N.reservedDataStore&&N.reservedDataStore.gizmoManager){const w=N.reservedDataStore.gizmoManager;w.enableAutoPicking=I}}componentDidMount(){if(!this.props.onSelectionChangedObservable)return;const I=this.props.scene;this._onSelectionChangeObserver=this.props.onSelectionChangedObservable.add(N=>{if(this._selectedEntity=N,N&&I.reservedDataStore&&I.reservedDataStore.gizmoManager){const w=I.reservedDataStore.gizmoManager,D=N.getClassName();D==="TransformNode"||D.indexOf("Mesh")!==-1?w.attachToMesh(N):D.indexOf("Light")!==-1?((!this._selectedEntity.reservedDataStore||!this._selectedEntity.reservedDataStore.lightGizmo)&&(this.props.globalState.enableLightGizmo(this._selectedEntity,!0,this.props.gizmoCamera),this.forceUpdate()),w.attachToNode(this._selectedEntity.reservedDataStore.lightGizmo.attachedNode)):D.indexOf("Camera")!==-1?((!this._selectedEntity.reservedDataStore||!this._selectedEntity.reservedDataStore.cameraGizmo)&&(this.props.globalState.enableCameraGizmo(this._selectedEntity,!0,this.props.gizmoCamera),this.forceUpdate()),w.attachToNode(this._selectedEntity.reservedDataStore.cameraGizmo.attachedNode)):D.indexOf("Bone")!==-1?(w.attachToMesh(this._selectedEntity._linkedTransformNode?this._selectedEntity._linkedTransformNode:this._selectedEntity),this._selectedEntity._linkedTransformNode||(w.additionalTransformNode=this._getMeshFromBone(this._selectedEntity,I))):w.attachToNode(null)}})}_getMeshFromBone(I,N){var D;const w=I.getSkeleton();for(const k of N.meshes){const Y=(D=k.reservedDataStore)==null?void 0:D.skeletonViewer;if(Y&&Y.skeleton===w)return k}for(const k of N.meshes)if(k.skeleton===w)return k}componentWillUnmount(){const I=this.props.scene;this._onPointerObserver&&(I.onPointerObservable.remove(this._onPointerObserver),this._onPointerObserver=null),this._gizmoLayerOnPointerObserver&&(I.onPointerObservable.remove(this._gizmoLayerOnPointerObserver),this._gizmoLayerOnPointerObserver=null),I.onAfterRenderObservable.remove(this._gizmoLayerRenderObserver),this._gizmoLayerRenderObserver=null,this._onSelectionChangeObserver&&this.props.onSelectionChangedObservable&&this.props.onSelectionChangedObservable.remove(this._onSelectionChangeObserver)}onSelect(){if(!this.props.onSelectionChangedObservable)return;const I=this.props.scene;(0,T.setDebugNode)(I),this.props.onSelectionChangedObservable.notifyObservers(I)}onCoordinatesMode(){const N=this.props.scene.reservedDataStore.gizmoManager;N.coordinatesMode=this.state.isInWorldCoodinatesMode?1:0,this.setState({isInWorldCoodinatesMode:!this.state.isInWorldCoodinatesMode})}onPickingMode(){const I=this.props.scene;this._onPointerObserver&&(I.onPointerObservable.remove(this._onPointerObserver),this._onPointerObserver=null),this.state.isInPickingMode||(this._onPointerObserver=I.onPointerObservable.add(()=>{const N=I.unTranslatedPointer,w=I.pick(N.x,N.y,D=>D.isEnabled()&&D.isVisible&&D.getTotalVertices()>0,!1,void 0,(D,k,Y,V)=>{if(!this.props.globalState.ignoreBackfacesForPicking)return!0;const ee=x.TmpVectors.Vector3[0],K=x.TmpVectors.Vector3[1];let ie=x.TmpVectors.Vector3[2];return k.subtractToRef(D,ee),Y.subtractToRef(k,K),ie=x.Vector3.Cross(ee,K),x.Vector3.Dot(ie,V.direction)<0});if(this.props.globalState.lightGizmos.length>0){const k=this.props.globalState.lightGizmos[0].gizmoLayer.utilityLayerScene.pick(N.x,N.y,Y=>{for(const V of this.props.globalState.lightGizmos)if(V.attachedNode==Y)return!0;return!1});if(k&&k.hit&&this.props.onSelectionChangedObservable){this.props.onSelectionChangedObservable.notifyObservers(k.pickedMesh);return}}if(this.props.globalState.cameraGizmos.length>0){const k=this.props.globalState.cameraGizmos[0].gizmoLayer.utilityLayerScene.pick(N.x,N.y,Y=>{for(const V of this.props.globalState.cameraGizmos)if(V.attachedNode==Y)return!0;return!1});if(k&&k.hit&&this.props.onSelectionChangedObservable){this.props.onSelectionChangedObservable.notifyObservers(k.pickedMesh);return}}w&&w.hit&&this.props.onSelectionChangedObservable&&this.props.onSelectionChangedObservable.notifyObservers(w.pickedMesh)},x.PointerEventTypes.POINTERTAP)),this.setState({isInPickingMode:!this.state.isInPickingMode})}findCameraFromFrameGraph(I){const N=I.tasks;for(let w=N.length-1;w>=0;w--){const D=N[w];if(D instanceof x.FrameGraphObjectRendererTask||D instanceof x.FrameGraphGeometryRendererTask||D instanceof x.FrameGraphTAAObjectRendererTask||D instanceof x.FrameGraphUtilityLayerRendererTask)return D.camera}return null}setGizmoMode(I){const N=this.props.scene;if(N.reservedDataStore||(N.reservedDataStore={}),this._gizmoLayerOnPointerObserver&&(N.onPointerObservable.remove(this._gizmoLayerOnPointerObserver),this._gizmoLayerOnPointerObserver=null),N.onAfterRenderObservable.remove(this._gizmoLayerRenderObserver),this._gizmoLayerRenderObserver=null,!N.reservedDataStore.gizmoManager){const D=!!N.frameGraph,k=new x.UtilityLayerRenderer(N,void 0,D),Y=new x.UtilityLayerRenderer(N,void 0,D);if(N.reservedDataStore.gizmoManager=new x.GizmoManager(N,void 0,k,Y),D){let V=this.findCameraFromFrameGraph(N.frameGraph);!V&&N.cameras.length>0&&(V=N.cameras[0]),V&&(k.setRenderCamera(V),Y.setRenderCamera(V)),this._gizmoLayerRenderObserver=N.onAfterRenderObservable.add(()=>{k.render(),Y.render()})}}this.props.gizmoCamera&&N.reservedDataStore.gizmoManager.utilityLayer.setRenderCamera(this.props.gizmoCamera);const w=N.reservedDataStore.gizmoManager;if(this._gizmoLayerOnPointerObserver=x.UtilityLayerRenderer.DefaultUtilityLayer.utilityLayerScene.onPointerObservable.add(D=>{if(D.type==x.PointerEventTypes.POINTERDOWN&&D.pickInfo&&D.pickInfo.pickedMesh){let k=D.pickInfo.pickedMesh;for(;k&&k.parent!=null;)k=k.parent;for(const Y of this.props.globalState.lightGizmos)Y._rootMesh==k&&w.attachToNode(Y.attachedNode)}}),w.boundingBoxGizmoEnabled=!1,w.positionGizmoEnabled=!1,w.rotationGizmoEnabled=!1,w.scaleGizmoEnabled=!1,this.state.gizmoMode===I)I=0,w.dispose(),N.reservedDataStore.gizmoManager=null;else{switch(I){case 1:w.positionGizmoEnabled=!0,this._posDragEnd||(this._posDragEnd=w.gizmos.positionGizmo.onDragEndObservable.add(()=>{if(w.gizmos.positionGizmo&&w.gizmos.positionGizmo.attachedNode){const D=w.gizmos.positionGizmo.attachedNode.reservedDataStore?w.gizmos.positionGizmo.attachedNode.reservedDataStore.lightGizmo:null,k=D&&D.light?D.light:w.gizmos.positionGizmo.attachedNode;if(k.position){const Y=new M.PropertyChangedEvent;Y.object=k,Y.property="position",Y.value=k.position,this.props.globalState.onPropertyChangedObservable.notifyObservers(Y)}else{const Y=w.gizmos.positionGizmo.attachedNode.reservedDataStore?w.gizmos.positionGizmo.attachedNode.reservedDataStore.cameraGizmo:null,V=Y&&Y.camera?Y.camera:w.gizmos.positionGizmo.attachedNode;if(V.position){const ee=new M.PropertyChangedEvent;ee.object=V,ee.property="position",ee.value=V.position,this.props.globalState.onPropertyChangedObservable.notifyObservers(ee)}}}}));break;case 2:w.rotationGizmoEnabled=!0,this._rotateDragEnd||(this._rotateDragEnd=w.gizmos.rotationGizmo.onDragEndObservable.add(()=>{if(w.gizmos.rotationGizmo&&w.gizmos.rotationGizmo.attachedNode){const D=w.gizmos.rotationGizmo.attachedNode.reservedDataStore?w.gizmos.rotationGizmo.attachedNode.reservedDataStore.lightGizmo:null,k=D&&D.light?D.light:w.gizmos.rotationGizmo.attachedNode,Y=w.gizmos.rotationGizmo.attachedNode.reservedDataStore?w.gizmos.rotationGizmo.attachedNode.reservedDataStore.cameraGizmo:null,V=Y&&Y.camera?Y.camera:w.gizmos.rotationGizmo.attachedNode;if(k.rotationQuaternion){const ee=new M.PropertyChangedEvent;ee.object=k,ee.property="rotationQuaternion",ee.value=k.rotationQuaternion,this.props.globalState.onPropertyChangedObservable.notifyObservers(ee)}else if(k.rotation){const ee=new M.PropertyChangedEvent;ee.object=k,ee.property="rotation",ee.value=k.rotation,this.props.globalState.onPropertyChangedObservable.notifyObservers(ee)}else if(k.direction){const ee=new M.PropertyChangedEvent;ee.object=k,ee.property="direction",ee.value=k.direction,this.props.globalState.onPropertyChangedObservable.notifyObservers(ee)}else if(V.rotationQuaternion){const ee=new M.PropertyChangedEvent;ee.object=V,ee.property="rotationQuaternion",ee.value=V.rotationQuaternion,this.props.globalState.onPropertyChangedObservable.notifyObservers(ee)}else if(V.rotation){const ee=new M.PropertyChangedEvent;ee.object=V,ee.property="rotation",ee.value=V.rotation,this.props.globalState.onPropertyChangedObservable.notifyObservers(ee)}}}));break;case 3:w.scaleGizmoEnabled=!0,this._scaleDragEnd||(this._scaleDragEnd=w.gizmos.scaleGizmo.onDragEndObservable.add(()=>{if(w.gizmos.scaleGizmo&&w.gizmos.scaleGizmo.attachedMesh){const D=w.gizmos.scaleGizmo.attachedMesh.reservedDataStore?w.gizmos.scaleGizmo.attachedMesh.reservedDataStore.lightGizmo:null,k=D&&D.light?D.light:w.gizmos.scaleGizmo.attachedMesh;if(k.scaling){const Y=new M.PropertyChangedEvent;Y.object=k,Y.property="scaling",Y.value=k.scaling,this.props.globalState.onPropertyChangedObservable.notifyObservers(Y)}}}));break;case 4:w.boundingBoxGizmoEnabled=!0,w.gizmos.boundingBoxGizmo&&(w.gizmos.boundingBoxGizmo.fixedDragMeshScreenSize=!0);break}if(this._selectedEntity&&this._selectedEntity.getClassName){const D=this._selectedEntity.getClassName();D==="TransformNode"||D.indexOf("Mesh")!==-1?w.attachToMesh(this._selectedEntity):D.indexOf("Light")!==-1?((!this._selectedEntity.reservedDataStore||!this._selectedEntity.reservedDataStore.lightGizmo)&&(this.props.globalState.enableLightGizmo(this._selectedEntity,!0,this.props.gizmoCamera),this.forceUpdate()),w.attachToNode(this._selectedEntity.reservedDataStore.lightGizmo.attachedNode)):D.indexOf("Camera")!==-1?((!this._selectedEntity.reservedDataStore||!this._selectedEntity.reservedDataStore.cameraGizmo)&&(this.props.globalState.enableCameraGizmo(this._selectedEntity,!0,this.props.gizmoCamera),this.forceUpdate()),w.attachToNode(this._selectedEntity.reservedDataStore.cameraGizmo.attachedNode)):D.indexOf("Bone")!==-1&&(w.attachToMesh(this._selectedEntity._linkedTransformNode?this._selectedEntity._linkedTransformNode:this._selectedEntity),this._selectedEntity._linkedTransformNode||(w.additionalTransformNode=this._getMeshFromBone(this._selectedEntity,N)))}}this.setState({gizmoMode:I})}render(){return(0,h.jsx)("div",{className:this.state.isSelected?"itemContainer selected":"itemContainer",children:(0,h.jsxs)("div",{className:"sceneNode",children:[(0,h.jsxs)("div",{className:"sceneTitle",onClick:()=>this.onSelect(),children:[(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faImage})," Scene"]}),(0,h.jsx)("div",{className:this.state.gizmoMode===1?"translation selected icon":"translation icon",onClick:()=>this.setGizmoMode(1),title:"Enable/Disable position mode",children:(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faArrowsAlt})}),(0,h.jsx)("div",{className:this.state.gizmoMode===2?"rotation selected icon":"rotation icon",onClick:()=>this.setGizmoMode(2),title:"Enable/Disable rotation mode",children:(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faRedoAlt})}),(0,h.jsx)("div",{className:this.state.gizmoMode===3?"scaling selected icon":"scaling icon",onClick:()=>this.setGizmoMode(3),title:"Enable/Disable scaling mode",children:(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faCompress})}),(0,h.jsx)("div",{className:this.state.gizmoMode===4?"bounding selected icon":"bounding icon",onClick:()=>this.setGizmoMode(4),title:"Enable/Disable bounding box mode",children:(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faVectorSquare})}),(0,h.jsx)("div",{className:"separator"}),(0,h.jsx)("div",{className:this.state.isInPickingMode?"pickingMode selected icon":"pickingMode icon",onClick:()=>this.onPickingMode(),title:"Turn picking mode on/off",children:(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faCrosshairs})}),(0,h.jsx)("div",{className:this.state.isInWorldCoodinatesMode?"coordinates selected icon":"coordinates icon",onClick:()=>this.onCoordinatesMode(),title:"Switch between world and local coordinates",children:(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faLocationDot})}),(0,h.jsx)("div",{className:"refresh icon",onClick:()=>this.props.onRefresh(),title:"Refresh the explorer",children:(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faSyncAlt})}),(0,h.jsx)(E.ExtensionsComponent,{target:this.props.scene,extensibilityGroups:this.props.extensibilityGroups})]})})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/skeletonTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SkeletonTreeItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){const T=this.props.skeleton;return(0,h.jsxs)("div",{className:"skeletonTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:T.name||"no name",onClick:()=>this.props.onClick(),icon:x.faSkull,color:"gray"}),(0,h.jsx)(S.ExtensionsComponent,{target:T,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/soundTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SoundTreeItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){const T=this.props.sound;return(0,h.jsxs)("div",{className:"soundTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:T.name,onClick:()=>this.props.onClick(),icon:x.faMusic,color:"teal"}),(0,h.jsx)(S.ExtensionsComponent,{target:T,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/spriteManagerTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SpriteManagerTreeItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){return(0,h.jsxs)("div",{className:"spriteManagerTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:this.props.spriteManager.name||"No name",onClick:()=>this.props.onClick(),icon:x.faAddressBook,color:"blanchedalmond"}),(0,h.jsx)(S.ExtensionsComponent,{target:this.props.spriteManager,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/spriteTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SpriteTreeItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){return(0,h.jsxs)("div",{className:"spriteTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:this.props.sprite.name||"No name",onClick:()=>this.props.onClick(),icon:x.faGhost,color:"blanchedalmond"}),(0,h.jsx)(S.ExtensionsComponent,{target:this.props.sprite,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/targetedAnimationTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TargetedAnimationItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){const T=this.props.targetedAnimation;return(0,h.jsxs)("div",{className:"targetedAnimationTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:T.animation.name,onClick:()=>this.props.onClick(),icon:x.faFilm,color:"cornflowerblue"}),(0,h.jsx)(S.ExtensionsComponent,{target:T,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/textureTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TextureTreeItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){return(0,h.jsxs)("div",{className:"textureTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:this.props.texture.displayName||this.props.texture.name,onClick:()=>this.props.onClick(),icon:x.faImage,color:"mediumpurple"}),(0,h.jsx)(S.ExtensionsComponent,{target:this.props.texture,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/entities/transformNodeTreeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TransformNodeItemComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),E=d("../../../../node_modules/react/index.js");class b extends E.Component{constructor(T){super(T)}render(){const T=this.props.transformNode;return(0,h.jsxs)("div",{className:"transformNodeTools",children:[(0,h.jsx)(A.TreeItemLabelComponent,{label:T.name,onClick:()=>this.props.onClick(),icon:x.faCodeBranch,color:"cornflowerblue"}),(0,h.jsx)(S.ExtensionsComponent,{target:T,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ExtensionsComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),A=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),S=d("../../../../node_modules/react/index.js");class E extends S.Component{constructor(M){super(M),this.state={popupVisible:!1},this._extensionRef=S.createRef()}showPopup(){this.setState({popupVisible:!0})}componentDidMount(){this._popup&&this._popup.focus()}componentDidUpdate(){this._popup&&this._popup.focus()}render(){if(!this.props.extensibilityGroups)return null;const M=[];for(const T of this.props.extensibilityGroups)T.predicate(this.props.target)&&M.push(...T.entries);return M.length===0?null:(0,h.jsxs)("div",{ref:this._extensionRef,className:"extensions",children:[(0,h.jsx)("div",{title:"Additional options",className:"icon",onClick:()=>this.showPopup(),children:(0,h.jsx)(x.FontAwesomeIcon,{icon:A.faEllipsisH})}),(0,h.jsx)("div",{ref:T=>{this._popup=T},tabIndex:-1,className:this.state.popupVisible?"popup show":"popup",onBlur:()=>this.setState({popupVisible:!1}),children:M.map(T=>(0,h.jsx)("div",{className:"popupMenu",onClick:()=>{T.action(this.props.target),T.keepOpenAfterClick||this.setState({popupVisible:!1})},children:T.label},T.label))})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/sceneExplorer.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>k});var h=d("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),x=d.n(h),A=d("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),S=d.n(A),E=d("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),b=d.n(E),M=d("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),T=d.n(M),O=d("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),R=d.n(O),I=d("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),N=d.n(I),w=d("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/inspector/dist/components/sceneExplorer/sceneExplorer.scss"),D={};D.styleTagTransform=N(),D.setAttributes=T(),D.insert=b().bind(null,"head"),D.domAPI=S(),D.insertStyleElement=R(),x()(w.default,D);const k=w.default&&w.default.locals?w.default.locals:void 0},"../../../dev/inspector/dist/components/sceneExplorer/sceneExplorerComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SceneExplorerComponent:()=>I,SceneExplorerFilterComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemComponent.js"),E=d("../../../../node_modules/re-resizable/lib/index.js"),b=d("../../../dev/inspector/dist/components/headerComponent.js"),M=d("../../../dev/inspector/dist/components/sceneExplorer/entities/sceneTreeItemComponent.js"),T=d("../../../dev/inspector/dist/tools.js");d("../../../dev/inspector/dist/components/sceneExplorer/sceneExplorer.scss");const O=E.Resizable;class R extends x.Component{constructor(w){super(w)}render(){return(0,h.jsx)("div",{className:"filter",children:(0,h.jsx)("input",{type:"text",placeholder:"Filter",onChange:w=>this.props.onFilter(w.target.value)})})}}class I extends x.Component{constructor(w){super(w),this._mutationTimeout=null,this._once=!0,this._hooked=!1,this.state={filter:null,selectedEntity:null,scene:this.props.scene},this._sceneMutationFunc=this.processMutation.bind(this),this._sceneExplorerRef=x.createRef(),this._onNewSceneObserver=this.props.globalState.onNewSceneObservable.add(D=>{this.setState({scene:D})})}processMutation(){this.props.globalState.blockMutationUpdates||(this._mutationTimeout!==null&&window.clearTimeout(this._mutationTimeout),this._mutationTimeout=window.setTimeout(()=>{this._mutationTimeout=null,this.forceUpdate()},32))}componentDidMount(){this._onSelectionChangeObserver=this.props.globalState.onSelectionChangedObservable.add(w=>{this.state.selectedEntity!==w&&this.setState({selectedEntity:w})}),this._onSelectionRenamedObserver=this.props.globalState.onSelectionRenamedObservable.add(()=>{this.forceUpdate()})}componentWillUnmount(){this._onSelectionChangeObserver&&this.props.globalState.onSelectionChangedObservable.remove(this._onSelectionChangeObserver),this._onSelectionRenamedObserver&&this.props.globalState.onSelectionRenamedObservable.remove(this._onSelectionRenamedObserver),this._onNewSceneAddedObserver&&A.EngineStore.LastCreatedEngine.onNewSceneAddedObservable.remove(this._onNewSceneAddedObserver),this._onNewSceneObserver&&this.props.globalState.onNewSceneObservable.remove(this._onNewSceneObserver);const w=this.state.scene;w.onNewSkeletonAddedObservable.removeCallback(this._sceneMutationFunc),w.onNewCameraAddedObservable.removeCallback(this._sceneMutationFunc),w.onNewLightAddedObservable.removeCallback(this._sceneMutationFunc),w.onNewMaterialAddedObservable.removeCallback(this._sceneMutationFunc),w.onNewMeshAddedObservable.removeCallback(this._sceneMutationFunc),w.onNewTextureAddedObservable.removeCallback(this._sceneMutationFunc),w.onNewTransformNodeAddedObservable.removeCallback(this._sceneMutationFunc),w.onSkeletonRemovedObservable.removeCallback(this._sceneMutationFunc),w.onMeshRemovedObservable.removeCallback(this._sceneMutationFunc),w.onCameraRemovedObservable.removeCallback(this._sceneMutationFunc),w.onLightRemovedObservable.removeCallback(this._sceneMutationFunc),w.onMaterialRemovedObservable.removeCallback(this._sceneMutationFunc),w.onTransformNodeRemovedObservable.removeCallback(this._sceneMutationFunc),w.onTextureRemovedObservable.removeCallback(this._sceneMutationFunc)}filterContent(w){this.setState({filter:w})}findSiblings(w,D,k,Y,V){if(!D)return!1;const ee=T.Tools.SortAndFilter(w,D);if(!D||ee.length===0)return!1;for(const K of ee){if(K===k){if(V.found=!0,!Y)return V.previousOne&&this.props.globalState.onSelectionChangedObservable.notifyObservers(V.previousOne),!0}else{if(V.found)return this.props.globalState.onSelectionChangedObservable.notifyObservers(K),!0;V.previousOne=K}if(K.getChildren&&K.reservedDataStore&&K.reservedDataStore.isExpanded&&this.findSiblings(K,K.getChildren(),k,Y,V))return!0}return!1}processKeys(w,D){if(!this.state.selectedEntity)return;const k=this.state.scene;let Y=!1,V=!1;if(w.keyCode===38)Y=!0;else if(w.keyCode===40)V=!0,Y=!0;else if(w.keyCode===13||w.keyCode===39){const K=this.state.selectedEntity.reservedDataStore;K&&K.setExpandedState&&K.setExpandedState(!0),w.preventDefault();return}else if(w.keyCode===37){const K=this.state.selectedEntity.reservedDataStore;K&&K.setExpandedState&&K.setExpandedState(!1),w.preventDefault();return}else w.keyCode===46&&(this.state.selectedEntity.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(k));if(!Y)return;w.preventDefault();const ee={};for(const K of D)if(this.findSiblings(null,K,this.state.selectedEntity,V,ee))break}_getPipelineContextMenus(w,D){var ee,K;const k=[];w.activeCamera&&(D.some(ie=>ie.getClassName()==="DefaultRenderingPipeline")||k.push({label:"Add new Default Rendering Pipeline",action:()=>{const ie=new A.DefaultRenderingPipeline("Default rendering pipeline",!0,w,w.cameras);this.props.globalState.onSelectionChangedObservable.notifyObservers(ie)}}),D.some(ie=>ie.getClassName()==="SSAORenderingPipeline")||k.push({label:"Add new SSAO Rendering Pipeline",action:()=>{const ie=new A.SSAORenderingPipeline("SSAO rendering pipeline",w,1,w.cameras);this.props.globalState.onSelectionChangedObservable.notifyObservers(ie)}}),w.getEngine().getCaps().drawBuffersExtension&&!D.some(ie=>ie.getClassName()==="SSAORenderingPipeline")&&k.push({label:"Add new SSAO2 Rendering Pipeline",action:()=>{const ie=new A.SSAO2RenderingPipeline("SSAO2 rendering pipeline",w,1,w.cameras);this.props.globalState.onSelectionChangedObservable.notifyObservers(ie)}}),w.getEngine().getCaps().drawBuffersExtension&&w.getEngine().getCaps().texelFetch&&!D.some(ie=>ie.getClassName()==="SSRRenderingPipeline")&&k.push({label:"Add new SSR Rendering Pipeline",action:()=>{const ie=new A.SSRRenderingPipeline("SSR rendering pipeline",w,w.cameras);this.props.globalState.onSelectionChangedObservable.notifyObservers(ie)}}),w.getEngine().getCaps().drawBuffersExtension&&w.getEngine().getCaps().texelFetch&&!D.some(ie=>ie.getClassName()==="IBLShadowsRenderingPipeline")&&k.push({label:"Add new IBL Shadows Rendering Pipeline",action:()=>{const ie=new A.IblShadowsRenderPipeline("IBL Shadows rendering pipeline",w,{},w.cameras);this.props.globalState.onSelectionChangedObservable.notifyObservers(ie)}}));const Y=((ee=this.props.contextMenu)==null?void 0:ee.pipeline)||[];return!((K=this.props.contextMenuOverride)!=null&&K.includes("pipeline"))?[...k,...Y]:Y}_getNodeContextMenus(w){var V,ee;const D=[];D.push({label:"Add new point light",action:()=>{const K=new A.PointLight("point light",A.Vector3.Zero(),w);this.props.globalState.onSelectionChangedObservable.notifyObservers(K)}}),D.push({label:"Add new directional light",action:()=>{const K=new A.DirectionalLight("directional light",new A.Vector3(-1,-1,-.5),w);this.props.globalState.onSelectionChangedObservable.notifyObservers(K)}}),D.push({label:"Add new free camera",action:()=>{const K=new A.FreeCamera("free camera",w.activeCamera?w.activeCamera.globalPosition:new A.Vector3(0,0,-5),w);w.activeCamera&&(K.minZ=w.activeCamera.minZ,K.maxZ=w.activeCamera.maxZ,w.activeCamera.getTarget&&K.setTarget(w.activeCamera.getTarget())),this.props.globalState.onSelectionChangedObservable.notifyObservers(K)}}),D.push({label:"Add new mesh from Node Geometry",action:()=>{const K=new A.NodeGeometry("Node Geometry");K.setToDefault(),K.build();const ie=K.createMesh("Node geometry mesh",w);this.props.globalState.onSelectionChangedObservable.notifyObservers(ie)}});const k=((V=this.props.contextMenu)==null?void 0:V.node)||[];return!((ee=this.props.contextMenuOverride)!=null&&ee.includes("node"))?[...D,...k]:k}_getMaterialsContextMenus(w){var ee,K;const D=ie=>{let ne=1;for(;w.getMaterialById(ie);)ie=ie+" "+ne++;return ie},k=[];k.push({label:"Add new standard material",action:()=>{const ie=new A.StandardMaterial(D("Standard material"),w);this.props.globalState.onSelectionChangedObservable.notifyObservers(ie)}}),k.push({label:"Add new PBR material",action:()=>{const ie=new A.PBRMaterial(D("PBR material"),w);this.props.globalState.onSelectionChangedObservable.notifyObservers(ie)}}),k.push({label:"Add new node material",action:()=>{const ie=new A.NodeMaterial(D("node material"),w);ie.setToDefault(),ie.build(!1,!1,!0),this.props.globalState.onSelectionChangedObservable.notifyObservers(ie)}});const Y=((ee=this.props.contextMenu)==null?void 0:ee.materials)||[];return!((K=this.props.contextMenuOverride)!=null&&K.includes("materials"))?[...k,...Y]:Y}_getSpriteManagersContextMenus(w){var V,ee;const D=[];D.push({label:"Add new sprite manager",action:()=>{const K=new A.SpriteManager("Default sprite manager","//playground.babylonjs.com/textures/player.png",500,64,w);this.props.globalState.onSelectionChangedObservable.notifyObservers(K)}});const k=((V=this.props.contextMenu)==null?void 0:V.spriteManagers)||[];return!((ee=this.props.contextMenuOverride)!=null&&ee.includes("spriteManagers"))?[...D,...k]:k}_getParticleSystemsContextMenus(w){var V,ee;const D=[];D.push({label:"Add new CPU particle system",action:()=>{const K=A.ParticleHelper.CreateDefault(A.Vector3.Zero(),1e4,w);K.name="CPU particle system",K.start(),this.props.globalState.onSelectionChangedObservable.notifyObservers(K)}}),A.GPUParticleSystem.IsSupported&&D.push({label:"Add new GPU particle system",action:()=>{const K=A.ParticleHelper.CreateDefault(A.Vector3.Zero(),1e4,w,!0);K.name="GPU particle system",K.start(),this.props.globalState.onSelectionChangedObservable.notifyObservers(K)}});const k=((V=this.props.contextMenu)==null?void 0:V.particleSystems)||[];return!((ee=this.props.contextMenuOverride)!=null&&ee.includes("particleSystems"))?[...D,...k]:k}_getFrameGraphsContextMenus(w){var ee,K;const D=[],k=ie=>{let ne=1;for(;w.getFrameGraphByName(ie);)ie=ie+" "+ne++;return ie};D.push({label:"Add new Frame Graph",action:()=>{const ie=new A.NodeRenderGraph(k("Frame Graph"),w);ie.setToDefault(),ie.build(),this.props.globalState.onSelectionChangedObservable.notifyObservers(ie)}});const Y=((ee=this.props.contextMenu)==null?void 0:ee.frameGraphs)||[];return!((K=this.props.contextMenuOverride)!=null&&K.includes("frameGraphs"))?[...D,...Y]:Y}renderContent(w){const D=this.state.scene;if(!D)return this._onNewSceneAddedObserver=A.EngineStore.LastCreatedEngine.onNewSceneAddedObservable.addOnce(X=>this.setState({scene:X})),null;this._hooked||(this._hooked=!0,D.onNewSkeletonAddedObservable.add(this._sceneMutationFunc),D.onNewCameraAddedObservable.add(this._sceneMutationFunc),D.onNewLightAddedObservable.add(this._sceneMutationFunc),D.onNewMaterialAddedObservable.add(this._sceneMutationFunc),D.onNewMeshAddedObservable.add(this._sceneMutationFunc),D.onNewTextureAddedObservable.add(this._sceneMutationFunc),D.onNewTransformNodeAddedObservable.add(this._sceneMutationFunc),D.onSkeletonRemovedObservable.add(this._sceneMutationFunc),D.onMeshRemovedObservable.add(this._sceneMutationFunc),D.onCameraRemovedObservable.add(this._sceneMutationFunc),D.onLightRemovedObservable.add(this._sceneMutationFunc),D.onMaterialRemovedObservable.add(this._sceneMutationFunc),D.onTransformNodeRemovedObservable.add(this._sceneMutationFunc),D.onTextureRemovedObservable.add(this._sceneMutationFunc));const k=D.textures.filter(X=>X.getClassName()==="AdvancedDynamicTexture"),Y=D.textures.filter(X=>X.getClassName()!=="AdvancedDynamicTexture"),V=D.postProcesses,ee=D.postProcessRenderPipelineManager.supportedPipelines,K=this._getPipelineContextMenus(D,ee),ie=this._getNodeContextMenus(D),ne=this._getMaterialsContextMenus(D),te=this._getSpriteManagersContextMenus(D),W=this._getParticleSystemsContextMenus(D),Q=this._getFrameGraphsContextMenus(D),re=[];re.push(...D.materials),D.multiMaterials&&D.multiMaterials.length&&re.push(...D.multiMaterials);const oe=D.rootNodes.slice(0);for(const X of D.meshes)X.parent&&X.parent.getClassName()==="Bone"&&oe.push(X);return w.push(oe,D.skeletons,re,Y,V,ee,D.effectLayers,D.particleSystems,D.spriteManagers,k,D.animationGroups,D.frameGraphs),D.mainSoundTrack&&w.push(D.mainSoundTrack.soundCollection),(0,h.jsxs)("div",{id:"tree",onContextMenu:X=>X.preventDefault(),children:[(0,h.jsx)(R,{onFilter:X=>this.filterContent(X)}),(0,h.jsx)(M.SceneTreeItemComponent,{globalState:this.props.globalState,gizmoCamera:this.props.gizmoCamera,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,scene:D,onRefresh:()=>this.forceUpdate(),onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable}),(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,gizmoCamera:this.props.gizmoCamera,contextMenuItems:ie,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:oe,label:"Nodes",offset:1,filter:this.state.filter}),D.skeletons.length>0&&(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:D.skeletons,label:"Skeletons",offset:1,filter:this.state.filter}),(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:re,contextMenuItems:ne,label:"Materials",offset:1,filter:this.state.filter}),(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:Y,label:"Textures",offset:1,filter:this.state.filter}),V.length>0&&(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:V,label:"Post-processes",offset:1,filter:this.state.filter}),(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,contextMenuItems:K,selectedEntity:this.state.selectedEntity,items:ee,label:"Rendering pipelines",offset:1,filter:this.state.filter}),D.effectLayers&&D.effectLayers.length>0&&(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:D.effectLayers,label:"Effect layers",offset:1,filter:this.state.filter}),(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,contextMenuItems:W,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:D.particleSystems,label:"Particle systems",offset:1,filter:this.state.filter}),(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,contextMenuItems:te,forceSubitems:!0,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:D.spriteManagers,label:"Sprite managers",offset:1,filter:this.state.filter}),k&&k.length>0&&(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:k,label:"GUI",offset:1,filter:this.state.filter}),D.animationGroups.length>0&&(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:D.animationGroups,label:"Animation groups",offset:1,filter:this.state.filter}),D.mainSoundTrack&&D.mainSoundTrack.soundCollection.length>0&&(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:D.mainSoundTrack.soundCollection,label:"Sounds",offset:1,filter:this.state.filter}),(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,contextMenuItems:Q,forceSubitems:!0,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:D.frameGraphs,label:"Frame Graphs",offset:1,filter:this.state.filter}),this.props.additionalNodes&&this.props.additionalNodes.map(X=>(0,h.jsx)(S.TreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:X.getContent(),label:X.name,offset:1,filter:this.state.filter},X.name))]})}onClose(){this.props.onClose&&this.props.onClose()}onPopup(){this.props.onPopup&&this.props.onPopup()}render(){const w=[];return this.props.popupMode?(0,h.jsxs)("div",{id:"sceneExplorer",tabIndex:0,onKeyDown:D=>this.processKeys(D,w),children:[!this.props.noHeader&&(0,h.jsx)(b.HeaderComponent,{title:"SCENE EXPLORER",noClose:this.props.noClose,noExpand:this.props.noExpand,noCommands:this.props.noCommands,onClose:()=>this.onClose(),onPopup:()=>this.onPopup()}),this.renderContent(w)]}):(this._once&&(this._once=!1,setTimeout(()=>{const D=document.getElementById("sceneExplorer");D&&(D.style.width="300px")},150)),(0,h.jsxs)(O,{tabIndex:-1,id:"sceneExplorer",defaultSize:{height:"100%"},ref:this._sceneExplorerRef,minWidth:300,maxWidth:600,minHeight:"100%",enable:{top:!1,right:!0,bottom:!1,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1},onKeyDown:D=>this.processKeys(D,w),children:[!this.props.noHeader&&(0,h.jsx)(b.HeaderComponent,{title:"SCENE EXPLORER",noClose:this.props.noClose,noExpand:this.props.noExpand,noCommands:this.props.noCommands,onClose:()=>this.onClose(),onPopup:()=>this.onPopup()}),this.renderContent(w)]}))}}},"../../../dev/inspector/dist/components/sceneExplorer/treeItemComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TreeItemComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),S=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),E=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemSelectableComponent.js"),b=d("../../../dev/inspector/dist/tools.js"),M=d("../../../../node_modules/react-contextmenu/es6/index.js");class T extends x.Component{constructor(N){super(N)}expandAll(){this.props.onExpandAll(!this.props.isExpanded)}render(){const N=this.props.isExpanded?(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faMinus}):(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faPlus}),w=this.props.isExpanded?(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faCompress}):(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faExpandArrowsAlt});return(0,h.jsxs)("div",{className:"expandableHeader",children:[(0,h.jsxs)("div",{className:"text",children:[(0,h.jsx)("div",{className:"arrow icon",onClick:()=>this.props.onClick(),children:N}),(0,h.jsx)("div",{className:"text-value",children:this.props.label})]}),(0,h.jsx)("div",{className:"expandAll icon",onClick:()=>this.expandAll(),title:this.props.isExpanded?"Collapse all":"Expand all",children:w})]})}}class O extends x.Component{constructor(N){super(N)}render(){return(0,h.jsx)("div",{className:"expandableHeader",children:(0,h.jsxs)("div",{className:"text",children:[(0,h.jsx)("div",{className:"arrow icon",children:(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faBan})}),(0,h.jsx)("div",{className:"text-value",children:this.props.label})]})})}}class R extends x.Component{constructor(N){super(N),this.state={isExpanded:!1,mustExpand:!1}}switchExpandedState(){this.setState({isExpanded:!this.state.isExpanded,mustExpand:!1})}shouldComponentUpdate(N,w){if(!w.isExpanded&&this.state.isExpanded)return!0;const D=N.items;if(D&&D.length&&N.selectedEntity){for(const k of D)if(b.Tools.LookForItem(k,N.selectedEntity))return w.isExpanded=!0,!0}return!0}expandAll(N){this.setState({isExpanded:N,mustExpand:N})}renderContextMenu(){return this.props.contextMenuItems?(0,h.jsx)(M.ContextMenu,{id:"contextmenu#"+R._ContextMenuUniqueIdGenerator++,className:"context-menu",children:this.props.contextMenuItems.map(N=>(0,h.jsx)(M.MenuItem,{onClick:()=>N.action(),children:N.label},N.label))}):(R._ContextMenuUniqueIdGenerator++,null)}render(){let N=this.props.items;const w={paddingLeft:10*(this.props.offset+.5)+"px"};if(!N)if(this.props.forceSubitems)N=[];else return(0,h.jsx)("div",{className:"groupContainer",style:w,children:(0,h.jsx)("div",{children:this.props.label})});if(!N.length)return(0,h.jsx)("div",{className:"groupContainer",style:w,children:(0,h.jsxs)(M.ContextMenuTrigger,{id:"contextmenu#"+R._ContextMenuUniqueIdGenerator,children:[this.renderContextMenu(),(0,h.jsx)(O,{label:this.props.label})]})});if(!this.state.isExpanded)return(0,h.jsx)("div",{className:"groupContainer",style:w,children:(0,h.jsxs)(M.ContextMenuTrigger,{id:"contextmenu#"+R._ContextMenuUniqueIdGenerator,children:[this.renderContextMenu(),(0,h.jsx)(T,{isExpanded:!1,label:this.props.label,onClick:()=>this.switchExpandedState(),onExpandAll:k=>this.expandAll(k)})]})});const D=b.Tools.SortAndFilter(null,N);return(0,h.jsxs)("div",{children:[(0,h.jsx)("div",{className:"groupContainer",style:w,children:(0,h.jsxs)(M.ContextMenuTrigger,{id:"contextmenu#"+R._ContextMenuUniqueIdGenerator,children:[this.renderContextMenu(),(0,h.jsx)(T,{isExpanded:this.state.isExpanded,label:this.props.label,onClick:()=>this.switchExpandedState(),onExpandAll:k=>this.expandAll(k)})]})}),D.map(k=>(0,h.jsx)(E.TreeItemSelectableComponent,{mustExpand:this.state.mustExpand,extensibilityGroups:this.props.extensibilityGroups,offset:this.props.offset+1,selectedEntity:this.props.selectedEntity,entity:k,globalState:this.props.globalState,gizmoCamera:this.props.gizmoCamera,filter:this.props.filter},k.uniqueId!==void 0&&k.uniqueId!==null?k.uniqueId:k.name))]})}}R._ContextMenuUniqueIdGenerator=0},"../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TreeItemLabelComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js");class S extends x.Component{constructor(b){super(b)}onClick(){this.props.onClick&&this.props.onClick()}render(){return(0,h.jsxs)("div",{className:"title",title:this.props.label,onClick:()=>this.onClick(),children:[(0,h.jsxs)("div",{className:"titleIcon",children:[this.props.iconBase64&&(0,h.jsx)("img",{src:this.props.iconBase64}),this.props.icon&&(0,h.jsx)(A.FontAwesomeIcon,{icon:this.props.icon,color:this.props.color})]}),(0,h.jsx)("div",{className:"titleText",children:this.props.label||"no name"})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/treeItemSelectableComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TreeItemSelectableComponent:()=>O});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemSpecializedComponent.js"),A=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),S=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),E=d("../../../dev/inspector/dist/tools.js"),b=d("../../../../node_modules/react-dom/index.js"),M=d("../../../../node_modules/react/index.js"),T=d("../../../dev/inspector/dist/components/sceneExplorer/treeNodeDebugger.js");class O extends M.Component{constructor(I){super(I),this._wasSelected=!1,this.state={isSelected:this.props.entity===this.props.selectedEntity,isExpanded:this.props.mustExpand||E.Tools.LookForItem(this.props.entity,this.props.selectedEntity)}}switchExpandedState(){this.setState({isExpanded:!this.state.isExpanded})}shouldComponentUpdate(I,N){if(!N.isExpanded&&this.state.isExpanded)return!0;if(I.selectedEntity){if(I.entity===I.selectedEntity)return N.isSelected=!0,!0;if(N.isSelected=!1,E.Tools.LookForItem(I.entity,I.selectedEntity))return N.isExpanded=!0,!0}return!0}scrollIntoView(){const I=b.findDOMNode(this);I&&I.scrollIntoView(!1)}componentDidMount(){this.state.isSelected&&this.scrollIntoView()}componentDidUpdate(){this.state.isSelected&&!this._wasSelected&&this.scrollIntoView(),this._wasSelected=!1}onSelect(){if(!this.props.globalState.onSelectionChangedObservable)return;this._wasSelected=!0;const I=this.props.entity;(0,T.setDebugNode)(I),this.props.globalState.onSelectionChangedObservable.notifyObservers(I)}renderChildren(){const I=this.props.entity;return!I.getChildren&&!I.children||!this.state.isExpanded?null:E.Tools.SortAndFilter(I,I.getChildren?I.getChildren():I.children).map((w,D)=>(0,h.jsx)(O,{globalState:this.props.globalState,gizmoCamera:this.props.gizmoCamera,mustExpand:this.props.mustExpand,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.props.selectedEntity,offset:this.props.offset+2,entity:w,filter:this.props.filter},D))}render(){const I={paddingLeft:10*(this.props.offset+.5)+"px"},N=this.props.entity,w=this.state.isExpanded?(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faMinus}):(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faPlus}),k=(N.getClassName()==="MultiMaterial"?[]:E.Tools.SortAndFilter(N,N.getChildren?N.getChildren():N.children)).length>0;if(N.reservedDataStore||(N.reservedDataStore={}),N.reservedDataStore.setExpandedState=Y=>{this.setState({isExpanded:Y})},N.reservedDataStore.isExpanded=this.state.isExpanded,this.props.filter){const Y=this.props.filter.toLowerCase();if((!N.name||N.name.toLowerCase().indexOf(Y)===-1)&&(!k||N.getDescendants&&N.getDescendants(!1,V=>V.name&&V.name.toLowerCase().indexOf(Y)!==-1).length===0))return null}return(0,h.jsxs)("div",{children:[(0,h.jsxs)("div",{className:this.state.isSelected?"itemContainer selected":"itemContainer",style:I,children:[k&&(0,h.jsx)("div",{className:"arrow icon",onClick:()=>this.switchExpandedState(),children:w}),(0,h.jsx)(x.TreeItemSpecializedComponent,{globalState:this.props.globalState,gizmoCamera:this.props.gizmoCamera,extensibilityGroups:this.props.extensibilityGroups,label:N.name,entity:N,onClick:()=>this.onSelect()})]}),this.renderChildren()]})}}},"../../../dev/inspector/dist/components/sceneExplorer/treeItemSpecializedComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TreeItemSpecializedComponent:()=>oe});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../dev/inspector/dist/components/sceneExplorer/entities/meshTreeItemComponent.js"),A=d("../../../dev/inspector/dist/components/sceneExplorer/entities/cameraTreeItemComponent.js"),S=d("../../../dev/inspector/dist/components/sceneExplorer/entities/lightTreeItemComponent.js"),E=d("../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js"),b=d("../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js"),M=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),T=d("../../../dev/inspector/dist/components/sceneExplorer/entities/materialTreeItemComponent.js"),O=d("../../../dev/inspector/dist/components/sceneExplorer/entities/textureTreeItemComponent.js"),R=d("../../../dev/inspector/dist/components/sceneExplorer/entities/transformNodeTreeItemComponent.js"),I=d("../../../../node_modules/react/index.js"),N=d("../../../dev/inspector/dist/components/sceneExplorer/entities/gui/controlTreeItemComponent.js"),w=d("../../../dev/inspector/dist/components/sceneExplorer/entities/gui/advancedDynamicTextureTreeItemComponent.js"),D=d("../../../dev/inspector/dist/components/sceneExplorer/entities/animationGroupTreeItemComponent.js"),k=d("../../../dev/inspector/dist/components/sceneExplorer/entities/postProcessTreeItemComponent.js"),Y=d("../../../dev/inspector/dist/components/sceneExplorer/entities/renderingPipelineTreeItemComponent.js"),V=d("../../../dev/inspector/dist/components/sceneExplorer/entities/skeletonTreeItemComponent.js"),ee=d("../../../dev/inspector/dist/components/sceneExplorer/entities/boneTreeItemComponent.js"),K=d("../../../dev/inspector/dist/components/sceneExplorer/entities/particleSystemTreeItemComponent.js"),ie=d("../../../dev/inspector/dist/components/sceneExplorer/entities/spriteManagerTreeItemComponent.js"),ne=d("../../../dev/inspector/dist/components/sceneExplorer/entities/spriteTreeItemComponent.js"),te=d("../../../dev/inspector/dist/components/sceneExplorer/entities/targetedAnimationTreeItemComponent.js"),W=d("../../../dev/inspector/dist/components/sceneExplorer/entities/soundTreeItemComponent.js"),Q=d("../../../dev/inspector/dist/components/sceneExplorer/entities/effectLayerPipelineTreeItemComponent.js"),re=d("../../../dev/inspector/dist/components/sceneExplorer/entities/frameGraphTreeItemComponent.js");class oe extends I.Component{constructor(se){super(se)}onClick(){this.props.onClick&&this.props.onClick()}render(){const se=this.props.entity;if(se&&se.getClassName){const ue=se.getClassName();if(ue.indexOf("Mesh")!==-1){const he=se;return(0,h.jsx)(x.MeshTreeItemComponent,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,mesh:he,onClick:()=>this.onClick()})}if(ue.indexOf("SpriteManager")!==-1)return(0,h.jsx)(ie.SpriteManagerTreeItemComponent,{extensibilityGroups:this.props.extensibilityGroups,spriteManager:se,onClick:()=>this.onClick()});if(ue.indexOf("Sprite")!==-1)return(0,h.jsx)(ne.SpriteTreeItemComponent,{extensibilityGroups:this.props.extensibilityGroups,sprite:se,onClick:()=>this.onClick()});if(ue.indexOf("Skeleton")!==-1)return(0,h.jsx)(V.SkeletonTreeItemComponent,{extensibilityGroups:this.props.extensibilityGroups,skeleton:se,onClick:()=>this.onClick()});if(ue.indexOf("Bone")!==-1)return(0,h.jsx)(ee.BoneTreeItemComponent,{extensibilityGroups:this.props.extensibilityGroups,bone:se,onClick:()=>this.onClick()});if(ue.indexOf("TransformNode")!==-1)return(0,h.jsx)(R.TransformNodeItemComponent,{extensibilityGroups:this.props.extensibilityGroups,transformNode:se,onClick:()=>this.onClick()});if(ue.indexOf("Camera")!==-1)return(0,h.jsx)(A.CameraTreeItemComponent,{globalState:this.props.globalState,gizmoCamera:this.props.gizmoCamera,extensibilityGroups:this.props.extensibilityGroups,camera:se,onClick:()=>this.onClick()});if(ue.indexOf("Light",ue.length-5)!==-1)return(0,h.jsx)(S.LightTreeItemComponent,{globalState:this.props.globalState,gizmoCamera:this.props.gizmoCamera,extensibilityGroups:this.props.extensibilityGroups,light:se,onClick:()=>this.onClick()});if(ue.indexOf("Material")!==-1)return(0,h.jsx)(T.MaterialTreeItemComponent,{extensibilityGroups:this.props.extensibilityGroups,material:se,onClick:()=>this.onClick()});if(ue.indexOf("ParticleSystem")!==-1)return(0,h.jsx)(K.ParticleSystemTreeItemComponent,{extensibilityGroups:this.props.extensibilityGroups,system:se,onClick:()=>this.onClick()});if(ue==="AdvancedDynamicTexture")return(0,h.jsx)(w.AdvancedDynamicTextureTreeItemComponent,{onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable,extensibilityGroups:this.props.extensibilityGroups,texture:se,onClick:()=>this.onClick()});if(ue==="AnimationGroup")return(0,h.jsx)(D.AnimationGroupItemComponent,{extensibilityGroups:this.props.extensibilityGroups,animationGroup:se,onClick:()=>this.onClick()});if(ue==="TargetedAnimation")return(0,h.jsx)(te.TargetedAnimationItemComponent,{extensibilityGroups:this.props.extensibilityGroups,targetedAnimation:se,onClick:()=>this.onClick()});if(ue.indexOf("Texture")!==-1)return(0,h.jsx)(O.TextureTreeItemComponent,{extensibilityGroups:this.props.extensibilityGroups,texture:se,onClick:()=>this.onClick()});if(ue.indexOf("RenderingPipeline")!==-1)return(0,h.jsx)(Y.RenderingPipelineItemComponent,{extensibilityGroups:this.props.extensibilityGroups,renderPipeline:se,onClick:()=>this.onClick()});if(ue.indexOf("PostProcess")!==-1)return(0,h.jsx)(k.PostProcessItemComponent,{extensibilityGroups:this.props.extensibilityGroups,postProcess:se,onClick:()=>this.onClick()});if(ue.indexOf("Layer")!==-1)return(0,h.jsx)(Q.EffectLayerItemComponent,{extensibilityGroups:this.props.extensibilityGroups,layer:se,onClick:()=>this.onClick()});if(ue.indexOf("Sound")!==-1)return(0,h.jsx)(W.SoundTreeItemComponent,{extensibilityGroups:this.props.extensibilityGroups,sound:se,onClick:()=>this.onClick()});if(ue.indexOf("FrameGraph")!==-1)return(0,h.jsx)(re.FrameGraphTreeItemComponent,{extensibilityGroups:this.props.extensibilityGroups,frameGraph:se,onClick:()=>this.onClick()});if(se._host)return(0,h.jsx)(N.ControlTreeItemComponent,{extensibilityGroups:this.props.extensibilityGroups,control:se,onClick:()=>this.onClick()})}return(0,h.jsxs)("div",{className:"meshTools",children:[(0,h.jsx)(b.TreeItemLabelComponent,{label:se.name,onClick:()=>this.onClick(),icon:M.faProjectDiagram,color:"cornflowerblue"}),(0,h.jsx)(E.ExtensionsComponent,{target:se,extensibilityGroups:this.props.extensibilityGroups})]})}}},"../../../dev/inspector/dist/components/sceneExplorer/treeNodeDebugger.js":(m,_,d)=>{d.r(_),d.d(_,{setDebugNode:()=>h});function h(x){typeof globalThis<"u"&&(globalThis.debugNode=x,typeof x._scene<"u"&&x._scene.onDisposeObservable&&x._scene.onDisposeObservable.add(()=>{globalThis.debugNode=null}))}},"../../../dev/inspector/dist/index.js":(m,_,d)=>{d.r(_),d.d(_,{EditAdvancedDynamicTexture:()=>x.EditAdvancedDynamicTexture,InjectGUIEditor:()=>x.InjectGUIEditor,Inspector:()=>h.Inspector,SetGUIEditorURL:()=>x.SetGUIEditorURL});var h=d("../../../dev/inspector/dist/inspector.js"),x=d("../../../dev/inspector/dist/components/sceneExplorer/entities/gui/guiTools.js")},"../../../dev/inspector/dist/inspector.js":(m,_,d)=>{d.r(_),d.d(_,{Inspector:()=>I});var h=d("../../../../node_modules/react/index.js"),x=d("../../../../node_modules/react-dom/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/inspector/dist/components/actionTabs/actionTabsComponent.js"),E=d("../../../dev/inspector/dist/components/sceneExplorer/sceneExplorerComponent.js"),b=d("../../../dev/inspector/dist/components/embedHost/embedHostComponent.js"),M=d("../../../dev/inspector/dist/components/globalState.js"),T=d("../../../dev/inspector/dist/components/popupComponent.js"),O=d("../../../dev/sharedUiComponents/dist/styleHelper.js"),R=d("../../../dev/sharedUiComponents/dist/popupHelper.js");class I{static MarkLineContainerTitleForHighlighting(w){this._GlobalState.selectedLineContainerTitles=[],this._GlobalState.selectedLineContainerTitles.push(w)}static MarkMultipleLineContainerTitlesForHighlighting(w){this._GlobalState.selectedLineContainerTitles=[],this._GlobalState.selectedLineContainerTitles.push(...w)}static PopupEmbed(){const w=this._Scene,D=this._EmbedOptions;D&&(x.unmountComponentAtNode(this._EmbedHost),D.popup&&this._EmbedHostWindow.close(),this._RemoveElementFromDOM(this._EmbedHost),D.popup=!D.popup,D.embedMode=!0,D.showExplorer=!0,D.showInspector=!0,D.embedHostWidth=D.popup?"100%":"auto",I.Show(w,D))}static PopupSceneExplorer(){const w=this._Scene,D=this._SceneExplorerOptions;D&&(x.unmountComponentAtNode(this._SceneExplorerHost),this._RemoveElementFromDOM(this._SceneExplorerHost),D.popup&&this._SceneExplorerWindow.close(),D.popup=!D.popup,D.showExplorer=!0,D.showInspector=!1,D.explorerWidth=D.popup?"100%":"300px",I.Show(w,D))}static PopupInspector(){const w=this._Scene,D=this._InspectorOptions;D&&(x.unmountComponentAtNode(this._ActionTabsHost),this._RemoveElementFromDOM(this._ActionTabsHost),D.popup&&this._ActionTabsWindow.close(),D.popup=!D.popup,D.showExplorer=!1,D.showInspector=!0,D.inspectorWidth=D.popup?"100%":"300px",I.Show(w,D))}static _CreateSceneExplorer(w,D,k){if(D.original&&(D={original:!1,popup:D.popup,overlay:D.overlay,showExplorer:D.showExplorer,showInspector:D.showInspector,additionalNodes:D.additionalNodes,embedMode:D.embedMode,handleResize:D.handleResize,enablePopup:D.enablePopup,enableClose:D.enableClose,explorerExtensibility:D.explorerExtensibility,gizmoCamera:D.gizmoCamera,contextMenu:D.contextMenu,contextMenuOverride:D.contextMenuOverride}),this._EmbedOptions=null,this._SceneExplorerOptions=D,k&&(this._SceneExplorerHost=k.ownerDocument.createElement("div"),this._SceneExplorerHost.id="scene-explorer-host",this._SceneExplorerHost.style.width=D.explorerWidth||"auto",D.popup?k.appendChild(this._SceneExplorerHost):k.insertBefore(this._SceneExplorerHost,this._NewCanvasContainer),D.overlay||(this._SceneExplorerHost.style.position="relative")),this._SceneExplorerHost){this._OpenedPane++;const Y=h.createElement(E.SceneExplorerComponent,{scene:w,contextMenu:D.contextMenu,contextMenuOverride:D.contextMenuOverride,gizmoCamera:D.gizmoCamera,globalState:this._GlobalState,extensibilityGroups:D.explorerExtensibility,additionalNodes:D.additionalNodes,noClose:!D.enableClose,noExpand:!D.enablePopup,popupMode:D.popup,onPopup:()=>{this.PopupSceneExplorer()},onClose:()=>{x.unmountComponentAtNode(this._SceneExplorerHost),I._OpenedPane--,this._RemoveElementFromDOM(this._SceneExplorerHost),this._Cleanup(),D.popup&&this._SceneExplorerWindow.close(),this._GlobalState.onSceneExplorerClosedObservable.notifyObservers()}});x.render(Y,this._SceneExplorerHost)}}static _CreateActionTabs(w,D,k){if(D.original=!1,this._EmbedOptions=null,this._InspectorOptions=D,k){const Y=k.ownerDocument.createElement("div");Y.id="inspector-host",Y.style.width=D.inspectorWidth||"auto",k.appendChild(Y),this._ActionTabsHost=Y,D.overlay||(this._ActionTabsHost.style.position="relative")}if(this._ActionTabsHost){this._OpenedPane++;const Y=h.createElement(S.ActionTabsComponent,{globalState:this._GlobalState,scene:w,noClose:!D.enableClose,noExpand:!D.enablePopup,popupMode:D.popup,onPopup:()=>{this.PopupInspector()},onClose:()=>{x.unmountComponentAtNode(this._ActionTabsHost),I._OpenedPane--,this._Cleanup(),this._RemoveElementFromDOM(this._ActionTabsHost),D.popup&&this._ActionTabsWindow.close(),this._GlobalState.onActionTabsClosedObservable.notifyObservers()},initialTab:D.initialTab});x.render(Y,this._ActionTabsHost)}}static _CreateEmbedHost(w,D,k,Y){if(this._EmbedOptions=D,this._SceneExplorerOptions=null,this._InspectorOptions=null,k){const V=k.ownerDocument.createElement("div");V.id="embed-host",V.style.width=D.embedHostWidth||"auto",k.appendChild(V),this._EmbedHost=V,D.overlay||(this._EmbedHost.style.position="relative")}if(this._EmbedHost){this._OpenedPane++;const V=h.createElement(b.EmbedHostComponent,{globalState:this._GlobalState,scene:w,extensibilityGroups:D.explorerExtensibility,additionalNodes:D.additionalNodes,noExpand:!D.enablePopup,noClose:!D.enableClose,popupMode:D.popup,onPopup:()=>{this.PopupEmbed()},onClose:()=>{x.unmountComponentAtNode(this._EmbedHost),this._OpenedPane=0,this._Cleanup(),this._RemoveElementFromDOM(this._EmbedHost),D.popup&&this._EmbedHostWindow.close(),this._GlobalState.onSceneExplorerClosedObservable.notifyObservers(),this._GlobalState.onActionTabsClosedObservable.notifyObservers()},initialTab:D.initialTab});x.render(V,this._EmbedHost)}}static get IsVisible(){return this._OpenedPane>0}static EarlyAttachToLoader(){this._GlobalState.onPluginActivatedObserver||(this._GlobalState.onPluginActivatedObserver=A.SceneLoader.OnPluginActivatedObservable.add(w=>{this._GlobalState.resetGLTFValidationResults();const D=w;D.name==="gltf"&&this._GlobalState.prepareGLTFPlugin(D)}))}static Show(w,D){const k={original:!0,popup:!1,overlay:!1,showExplorer:!0,showInspector:!0,embedMode:!1,enableClose:!0,handleResize:!0,enablePopup:!0,...D};if(!k.skipDefaultFontLoading&&!(globalThis!=null&&globalThis.BABYLON_SKIP_FONT_LOADING)){const V=document.createElement("link");V.rel="stylesheet",V.href="https://use.typekit.net/cta4xsb.css",document.head.appendChild(V)}this._GlobalState.onPropertyChangedObservable||this._GlobalState.init(this.OnPropertyChangedObservable),this._GlobalState.onSelectionChangedObservable||(this._GlobalState.onSelectionChangedObservable=this.OnSelectionChangeObservable),this.IsVisible&&k.original&&this.Hide(),w||(w=A.EngineStore.LastCreatedScene),this._Scene=w;const Y=w?w.getEngine().getInputElement():A.EngineStore.LastCreatedEngine.getInputElement();if(k.embedMode&&k.showExplorer&&k.showInspector)if(k.popup)this._CreateEmbedHost(w,k,(0,R.CreatePopup)("INSPECTOR",{onWindowCreateCallback:V=>this._EmbedHostWindow=V}),I.OnSelectionChangeObservable),this._EmbedHostWindow.addEventListener("beforeunload",()=>this._GlobalState.onSceneExplorerClosedObservable.notifyObservers()),this._EmbedHostWindow.addEventListener("beforeunload",()=>this._GlobalState.onActionTabsClosedObservable.notifyObservers());else{if(!Y)return;let V=k.globalRoot?k.globalRoot:Y.parentElement;!k.overlay&&!this._NewCanvasContainer?this._CreateCanvasContainer(V):!k.overlay&&this._NewCanvasContainer&&this._NewCanvasContainer.parentElement&&(V=this._NewCanvasContainer.parentElement),this._NewCanvasContainer&&k.handleResize&&w&&(this._OnBeforeRenderObserver=w.onBeforeRenderObservable.add(()=>{w.getEngine().resize()})),this._CreateEmbedHost(w,k,V,I.OnSelectionChangeObservable)}else if(k.popup)k.showExplorer&&(this._SceneExplorerHost&&(this._SceneExplorerHost.style.width="0"),this._CreateSceneExplorer(w,k,(0,R.CreatePopup)("SCENE EXPLORER",{onWindowCreateCallback:V=>this._SceneExplorerWindow=V})),this._SceneExplorerWindow.addEventListener("beforeunload",()=>this._GlobalState.onSceneExplorerClosedObservable.notifyObservers())),k.showInspector&&(this._ActionTabsHost&&(this._ActionTabsHost.style.width="0"),this._CreateActionTabs(w,k,(0,R.CreatePopup)("INSPECTOR",{onWindowCreateCallback:V=>this._ActionTabsWindow=V})),this._ActionTabsWindow.addEventListener("beforeunload",()=>this._GlobalState.onActionTabsClosedObservable.notifyObservers()));else{let V=k.globalRoot?k.globalRoot:Y.parentElement;!k.overlay&&!this._NewCanvasContainer?this._CreateCanvasContainer(V):!k.overlay&&this._NewCanvasContainer&&this._NewCanvasContainer.parentElement&&(V=this._NewCanvasContainer.parentElement),this._NewCanvasContainer&&k.handleResize&&w&&(this._OnBeforeRenderObserver=w.onBeforeRenderObservable.add(()=>{w.getEngine().resize()})),k.showExplorer&&this._CreateSceneExplorer(w,k,V),k.showInspector&&this._CreateActionTabs(w,k,V)}}static _SetNewScene(w){this._Scene=w,this._GlobalState.onNewSceneObservable.notifyObservers(w)}static _CreateCanvasContainer(w){for(w.getRootNode()!==window.document&&setTimeout(()=>{(0,O.CopyStyles)(window.document,w.getRootNode())},0),this._NewCanvasContainer=w.ownerDocument.createElement("div"),this._NewCanvasContainer.style.display=w.style.display,w.style.display="flex";w.childElementCount>0;){const D=w.childNodes[0];w.removeChild(D),this._NewCanvasContainer.appendChild(D)}w.appendChild(this._NewCanvasContainer),this._NewCanvasContainer.style.width="100%",this._NewCanvasContainer.style.height="100%"}static _DestroyCanvasContainer(){if(!this._NewCanvasContainer)return;const w=this._NewCanvasContainer.parentElement;for(;this._NewCanvasContainer.childElementCount>0;){const D=this._NewCanvasContainer.childNodes[0];this._NewCanvasContainer.removeChild(D),w.appendChild(D)}w.removeChild(this._NewCanvasContainer),w.style.display=this._NewCanvasContainer.style.display,this._NewCanvasContainer=null}static _Cleanup(){I._OpenedPane===0&&(this._GlobalState.lightGizmos.forEach(w=>{w.light&&this._GlobalState.enableLightGizmo(w.light,!1)}),this._GlobalState.cameraGizmos.forEach(w=>{w.camera&&this._GlobalState.enableCameraGizmo(w.camera,!1)}),this._Scene&&this._Scene.reservedDataStore&&this._Scene.reservedDataStore.gizmoManager&&(this._Scene.reservedDataStore.gizmoManager.dispose(),this._Scene.reservedDataStore.gizmoManager=null),this._NewCanvasContainer&&this._DestroyCanvasContainer(),this._OnBeforeRenderObserver&&this._Scene&&(this._Scene.onBeforeRenderObservable.remove(this._OnBeforeRenderObserver),this._OnBeforeRenderObserver=null,this._Scene.getEngine().resize()),this._GlobalState.onInspectorClosedObservable.notifyObservers(this._Scene))}static _RemoveElementFromDOM(w){w&&w.parentElement&&w.parentElement.removeChild(w)}static Hide(){this._ActionTabsHost&&(x.unmountComponentAtNode(this._ActionTabsHost),this._RemoveElementFromDOM(this._ActionTabsHost),this._ActionTabsHost=null,this._GlobalState.onActionTabsClosedObservable.notifyObservers()),this._SceneExplorerHost&&(x.unmountComponentAtNode(this._SceneExplorerHost),this._SceneExplorerHost.parentElement&&this._SceneExplorerHost.parentElement.removeChild(this._SceneExplorerHost),this._SceneExplorerHost=null,this._GlobalState.onSceneExplorerClosedObservable.notifyObservers()),this._EmbedHost&&(x.unmountComponentAtNode(this._EmbedHost),this._EmbedHost.parentElement&&this._EmbedHost.parentElement.removeChild(this._EmbedHost),this._EmbedHost=null,this._GlobalState.onActionTabsClosedObservable.notifyObservers(),this._GlobalState.onSceneExplorerClosedObservable.notifyObservers()),this._EmbedHostWindow&&!this._EmbedHostWindow.closed&&this._EmbedHostWindow.close(),I._OpenedPane=0,this._Cleanup(),this._GlobalState.onPluginActivatedObserver||(A.SceneLoader.OnPluginActivatedObservable.remove(this._GlobalState.onPluginActivatedObserver),this._GlobalState.onPluginActivatedObserver=null)}static _CreatePersistentPopup(w,D){this._PersistentPopupHost&&this._ClosePersistentPopup(),this._PersistentPopupHost=D.ownerDocument.createElement("div");const k=h.createElement(T.PopupComponent,w.props,w.children);x.render(k,this._PersistentPopupHost),w.closeWhenSceneExplorerCloses&&(this._OnSceneExplorerClosedObserver=this._GlobalState.onSceneExplorerClosedObservable.add(()=>this._ClosePersistentPopup())),w.closeWhenActionTabsCloses&&(this._OnActionTabsClosedObserver=this._GlobalState.onActionTabsClosedObservable.add(()=>this._ClosePersistentPopup()))}static _ClosePersistentPopup(){this._PersistentPopupHost&&(x.unmountComponentAtNode(this._PersistentPopupHost),this._PersistentPopupHost.remove(),this._PersistentPopupHost=null),this._OnSceneExplorerClosedObserver&&(this._GlobalState.onSceneExplorerClosedObservable.remove(this._OnSceneExplorerClosedObserver),this._OnSceneExplorerClosedObserver=null),this._OnActionTabsClosedObserver&&(this._GlobalState.onActionTabsClosedObservable.remove(this._OnActionTabsClosedObserver),this._OnActionTabsClosedObserver=null)}}I._OpenedPane=0,I.OnSelectionChangeObservable=new A.Observable,I.OnPropertyChangedObservable=new A.Observable,I._GlobalState=new M.GlobalState,I._SceneExplorerOptions=null,I._InspectorOptions=null,I._EmbedOptions=null,I.EarlyAttachToLoader()},"../../../dev/inspector/dist/legacy/legacy.js":(m,_,d)=>{d.r(_),d.d(_,{EditAdvancedDynamicTexture:()=>h.EditAdvancedDynamicTexture,InjectGUIEditor:()=>h.InjectGUIEditor,Inspector:()=>h.Inspector,SetGUIEditorURL:()=>h.SetGUIEditorURL});var h=d("../../../dev/inspector/dist/index.js");const x=typeof d.g<"u"?d.g:typeof window<"u"?window:void 0;typeof x<"u"&&(x.BABYLON=x.BABYLON||{},x.BABYLON.Inspector=h.Inspector,x.INSPECTOR=h)},"../../../dev/inspector/dist/textureHelper.js":(m,_,d)=>{d.r(_),d.d(_,{TextureHelper:()=>x});var h=d("core/Misc/observable");class x{static async GetTextureDataAsync(S,E,b,M,T,O,R=0){O&&(O.blockMutationUpdates=!0);try{const I=await h.TextureTools.GetTextureDataAsync(S,E,b,M,R);if(!T.R||!T.G||!T.B||!T.A)for(let N=0;N<E*b*4;N+=4){if(T.A&&!T.R&&!T.G&&!T.B){I[N]=I[N+3],I[N+1]=I[N+3],I[N+2]=I[N+3],I[N+3]=255;continue}let w=I[N],D=I[N+1],k=I[N+2],Y=I[N+3];T.A||(Y=255),T.R||(T.G&&!T.B?w=D:T.B&&!T.G?w=k:w=0),T.G||(T.R&&!T.B?D=w:T.B&&!T.R?D=k:D=0),T.B||(T.R&&!T.G?k=w:T.G&&!T.R?k=D:k=0),I[N]=w,I[N+1]=D,I[N+2]=k,I[N+3]=Y}if(S.invertY||S.isCube){const N=E*4,w=b/2;for(let D=0;D<w;D++)for(let k=0;k<N;k++){const Y=k+D*N,V=b-D-1,ee=k+V*N,K=I[Y];I[Y]=I[ee],I[ee]=K}}return I}finally{O&&(O.blockMutationUpdates=!1)}}}},"../../../dev/inspector/dist/tools.js":(m,_,d)=>{d.r(_),d.d(_,{Tools:()=>h});class h{static LookForItem(A,S){if(A===S)return!0;const E=A.getChildren?A.getChildren():A.children;if(E&&A.getClassName()!=="MultiMaterial"){for(const b of E)if(h.LookForItem(b,S))return!0}return!1}static _RecursiveRemoveHiddenMeshesAndHoistChildren(A){const S=[];for(const E of A)E.reservedDataStore&&E.reservedDataStore.hidden&&E.getChildMeshes?h._RecursiveRemoveHiddenMeshesAndHoistChildren(E.getChildMeshes()).forEach(b=>{S.push(b)}):(!E.reservedDataStore||!E.reservedDataStore.hidden)&&S.push(E);return S}static GetNameString(A){var S;return(S=A==null?void 0:A.name)!=null&&S.toString?A.name.toString():""}static SortAndFilter(A,S){if(!S)return[];const E=h._RecursiveRemoveHiddenMeshesAndHoistChildren(S);return A&&A.reservedDataStore&&A.reservedDataStore.detachedChildren&&E.push(...A.reservedDataStore.detachedChildren),E.sort((b,M)=>{const T=h.GetNameString(b).toLowerCase(),O=h.GetNameString(M).toLowerCase();return T===O?0:T>O?1:-1})}}},"../../../dev/sharedUiComponents/dist/colorPicker/colorComponentEntry.js":(m,_,d)=>{d.r(_),d.d(_,{ColorComponentEntry:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E)}updateValue(E){if(/[^0-9.-]/g.test(E))return;let b=parseInt(E);isNaN(b)||(this.props.max!=null&&b>this.props.max&&(b=this.props.max),this.props.min!=null&&b<this.props.min&&(b=this.props.min),this.props.onChange(b))}lock(){this.props.lockObject&&(this.props.lockObject.lock=!0)}unlock(){this.props.lockObject&&(this.props.lockObject.lock=!1)}render(){return(0,h.jsxs)("div",{className:"color-picker-component",children:[(0,h.jsx)("div",{className:"color-picker-component-value",children:(0,h.jsx)("input",{type:"number",step:1,className:"numeric-input",value:this.props.value,onBlur:()=>this.unlock(),onFocus:()=>this.lock(),onChange:E=>this.updateValue(E.target.value),disabled:this.props.disabled})}),(0,h.jsx)("div",{className:"color-picker-component-label",children:this.props.label})]})}}},"../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.js":(m,_,d)=>{d.r(_),d.d(_,{ColorPicker:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/colorPicker/colorComponentEntry.js"),E=d("../../../dev/sharedUiComponents/dist/colorPicker/hexColor.js");d("../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.scss");class b extends x.Component{constructor(T){super(T),this.props.color instanceof A.Color4?this.state={color:new A.Color3(this.props.color.r,this.props.color.g,this.props.color.b),alpha:this.props.color.a}:this.state={color:this.props.color.clone(),alpha:1},this._saturationRef=x.createRef(),this._hueRef=x.createRef()}shouldComponentUpdate(T,O){return T.color.toHexString()!==this.props.color.toHexString()||O.color.toHexString()!==this.props.color.toHexString()}onSaturationPointerDown(T){this._evaluateSaturation(T),this._isSaturationPointerDown=!0,T.currentTarget.setPointerCapture(T.pointerId)}onSaturationPointerUp(T){this._isSaturationPointerDown=!1,T.currentTarget.releasePointerCapture(T.pointerId)}onSaturationPointerMove(T){this._isSaturationPointerDown&&this._evaluateSaturation(T)}onHuePointerDown(T){this._evaluateHue(T),this._isHuePointerDown=!0,T.currentTarget.setPointerCapture(T.pointerId)}onHuePointerUp(T){this._isHuePointerDown=!1,T.currentTarget.releasePointerCapture(T.pointerId)}onHuePointerMove(T){this._isHuePointerDown&&this._evaluateHue(T)}_evaluateSaturation(T){const O=T.nativeEvent.offsetX,R=T.nativeEvent.offsetY,I=Math.min(1,Math.max(1e-4,O/this._saturationRef.current.clientWidth)),N=Math.min(1,Math.max(1e-4,1-R/this._saturationRef.current.clientHeight));this.props.debugMode&&(A.Logger.Log("Saturation: "+I),A.Logger.Log("Value: "+N));const w=this.state.color.toHSV();A.Color3.HSVtoRGBToRef(w.r,I,N,this.state.color),this.state.alpha===0&&this.setState({alpha:1}),this.setState({color:this.state.color})}_evaluateHue(T){const O=T.nativeEvent.offsetX,R=360*Math.min(.9999,Math.max(1e-4,O/this._hueRef.current.clientWidth));this.props.debugMode&&A.Logger.Log("Hue: "+R);const I=this.state.color.toHSV();A.Color3.HSVtoRGBToRef(R,Math.max(I.g,.01),Math.max(I.b,.01),this.state.color),this.setState({color:this.state.color})}componentDidUpdate(){this.raiseOnColorChanged()}raiseOnColorChanged(){if(this.props.onColorChanged){if(this.props.color instanceof A.Color4){const T=A.Color4.FromColor3(this.state.color,this.state.alpha);this.props.onColorChanged(T);return}this.props.onColorChanged(this.state.color.clone())}}render(){const T=A.Color4.FromColor3(this.state.color);T.a=this.state.alpha;const O=T.toHexString(),R=this.state.color.toHSV(),I=new A.Color3;A.Color3.HSVtoRGBToRef(R.r,1,1,I);const N=I.toHexString(),w=this.props.color instanceof A.Color4;return(0,h.jsxs)("div",{className:"color-picker-container"+(this.props.linearhint?" with-hints":""),children:[(0,h.jsxs)("div",{className:"color-picker-saturation",onPointerMove:D=>this.onSaturationPointerMove(D),onPointerDown:D=>this.onSaturationPointerDown(D),onPointerUp:D=>this.onSaturationPointerUp(D),ref:this._saturationRef,style:{background:N},children:[(0,h.jsx)("div",{className:"color-picker-saturation-white"}),(0,h.jsx)("div",{className:"color-picker-saturation-black"}),(0,h.jsx)("div",{className:"color-picker-saturation-cursor",style:{top:`${-(R.b*100)+100}%`,left:`${R.g*100}%`}})]}),(0,h.jsxs)("div",{className:"color-picker-hue",children:[(0,h.jsx)("div",{className:"color-picker-hue-color",style:{background:O}}),(0,h.jsx)("div",{className:"color-picker-hue-slider",ref:this._hueRef,onPointerMove:D=>this.onHuePointerMove(D),onPointerDown:D=>this.onHuePointerDown(D),onPointerUp:D=>this.onHuePointerUp(D),children:(0,h.jsx)("div",{className:"color-picker-hue-cursor",style:{left:`${R.r/360*100}%`,border:"1px solid "+N}})})]}),(0,h.jsx)("div",{className:"color-picker-alpha"}),(0,h.jsxs)("div",{className:"color-picker-rgb",children:[(0,h.jsx)("div",{className:"red",children:(0,h.jsx)(S.ColorComponentEntry,{lockObject:this.props.lockObject,label:"R",min:0,max:255,value:Math.round(this.state.color.r*255),onChange:D=>{this.state.color.r=D/255,this.forceUpdate()}})}),(0,h.jsx)("div",{className:"green",children:(0,h.jsx)(S.ColorComponentEntry,{lockObject:this.props.lockObject,label:"G",min:0,max:255,value:Math.round(this.state.color.g*255),onChange:D=>{this.state.color.g=D/255,this.forceUpdate()}})}),(0,h.jsx)("div",{className:"blue",children:(0,h.jsx)(S.ColorComponentEntry,{lockObject:this.props.lockObject,label:"B",min:0,max:255,value:Math.round(this.state.color.b*255),onChange:D=>{this.state.color.b=D/255,this.forceUpdate()}})}),(0,h.jsx)("div",{className:"alpha"+(w?"":" grayed"),children:(0,h.jsx)(S.ColorComponentEntry,{lockObject:this.props.lockObject,label:"A",min:0,max:255,value:Math.round(this.state.alpha*255),onChange:D=>{this.setState({alpha:D/255}),this.forceUpdate()}})})]}),(0,h.jsxs)("div",{className:"color-picker-hex",children:[(0,h.jsx)("div",{className:"color-picker-hex-label",children:"Hex"}),(0,h.jsx)("div",{className:"color-picker-hex-value",children:(0,h.jsx)(E.HexColor,{lockObject:this.props.lockObject,expectedLength:w?8:6,value:O,onChange:D=>{if(w){const k=A.Color4.FromHexString(D);this.setState({color:new A.Color3(k.r,k.g,k.b),alpha:k.a})}else this.setState({color:A.Color3.FromHexString(D)})}})})]}),this.props.linearhint&&(0,h.jsx)("div",{className:"color-picker-warning",children:"(Note: color is stored in linear mode and was converted to gamma to be displayed here (toGammaSpace() / toLinearSpace()))"})]})}}},"../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.scss":(m,_,d)=>{d.r(_),d.d(_,{default:()=>k});var h=d("../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),x=d.n(h),A=d("../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"),S=d.n(A),E=d("../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"),b=d.n(E),M=d("../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),T=d.n(M),O=d("../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"),R=d.n(O),I=d("../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"),N=d.n(I),w=d("../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.scss"),D={};D.styleTagTransform=N(),D.setAttributes=T(),D.insert=b().bind(null,"head"),D.domAPI=S(),D.insertStyleElement=R(),x()(w.default,D);const k=w.default&&w.default.locals?w.default.locals:void 0},"../../../dev/sharedUiComponents/dist/colorPicker/hexColor.js":(m,_,d)=>{d.r(_),d.d(_,{HexColor:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E),this.state={hex:this.props.value.replace("#","")}}shouldComponentUpdate(E,b){return E.value!==this.props.value&&(b.hex=E.value.replace("#","")),!0}lock(){this.props.lockObject&&(this.props.lockObject.lock=!0)}unlock(){this.props.lockObject&&(this.props.lockObject.lock=!1)}updateHexValue(E){if(!(E!=""&&/^[0-9A-Fa-f]+$/g.test(E)==!1)){if(this.setState({hex:E}),E.length!==this.props.expectedLength)if(this.props.expectedLength===8&&E.length===6)E=E+"FF";else if(this.props.expectedLength===6&&E.length===8)E=E.substring(0,6);else return;this.props.onChange("#"+E)}}render(){return(0,h.jsx)("input",{type:"string",className:"hex-input",value:this.state.hex,onBlur:()=>this.unlock(),onFocus:()=>this.lock(),onChange:E=>this.updateHexValue(E.target.value)})}}},"../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js":(m,_,d)=>{d.r(_),d.d(_,{copyCommandToClipboard:()=>S,getClassNameWithNamespace:()=>E});var h=d("core/Misc/observable");let x="";const A=typeof d.g<"u"?d.g:typeof window<"u"?window:void 0;typeof A<"u"&&typeof A.BABYLON<"u"&&(x="BABYLON.");function S(b){const M=document.createElement("div");if(M.textContent=b,document.body.appendChild(M),window.getSelection){const T=document.createRange();T.selectNode(M),window.getSelection().removeAllRanges(),window.getSelection().addRange(T)}document.execCommand("copy"),M.remove()}function E(b){let M=(0,h.GetClassName)(b);return M.includes("BABYLON.")&&(M=M.split("BABYLON.")[1]),{className:M,babylonNamespace:x}}},"../../../dev/sharedUiComponents/dist/imgs/copy.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5jb3B5PC90aXRsZT48ZyBpZD0iVUlfRWxlbWVudHMiIGRhdGEtbmFtZT0iVUkgRWxlbWVudHMiPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTI0LDE0Ljg5SDIyLjc2bC0zLTNIMTIuNDNWMjYuNTloNC4yNnYzaDExLjVWMTlabS4zLDEuNzEsMi4xNCwyLjEzSDI0LjM0Wm0tMTAuOTEsOVYxMi45M2g1LjkzbDIsMkgxNi42OXYxMC43Wm00LjI2LDNWMTUuODloNS42NXYzLjg0aDMuODV2OC44M1oiLz48L2c+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/copyStep.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij4NCiAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA1OS4xICg4NjE0NCkgLSBodHRwczovL3NrZXRjaC5jb20gLS0+DQogIDx0aXRsZT5pY19mbHVlbnRfY29weV8yNF9yZWd1bGFyPC90aXRsZT4NCiAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+DQogIDxnIGlkPSLwn5SNLVByb2R1Y3QtSWNvbnMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPg0KICAgIDxnIGlkPSJpY19mbHVlbnRfY29weV8yNF9yZWd1bGFyIiBmaWxsPSJ3aGl0ZSIgZmlsbC1ydWxlPSJub256ZXJvIj4NCiAgICAgIDxwYXRoIGQ9Ik01LjUwMjgwMzgxLDQuNjI3MDQwMzggTDUuNSw2Ljc1IEw1LjUsMTcuMjU0MjA4NyBDNS41LDE5LjA0OTEzNDIgNi45NTUwNzQ1NiwyMC41MDQyMDg3IDguNzUsMjAuNTA0MjA4NyBMMTcuMzY2Mjg2OCwyMC41MDQ0NjIyIEMxNy4wNTczMzgsMjEuMzc4MjI0MSAxNi4yMjM5NzUxLDIyLjAwNDIwODcgMTUuMjQ0NDA1NywyMi4wMDQyMDg3IEw4Ljc1LDIyLjAwNDIwODcgQzYuMTI2NjQ3NDQsMjIuMDA0MjA4NyA0LDE5Ljg3NzU2MTMgNCwxNy4yNTQyMDg3IEw0LDYuNzUgQzQsNS43NjkyODg0OCA0LjYyNzQ0NTIzLDQuOTM1MTI0NjQgNS41MDI4MDM4MSw0LjYyNzA0MDM4IFogTTE3Ljc1LDIgQzE4Ljk5MjY0MDcsMiAyMCwzLjAwNzM1OTMxIDIwLDQuMjUgTDIwLDE3LjI1IEMyMCwxOC40OTI2NDA3IDE4Ljk5MjY0MDcsMTkuNSAxNy43NSwxOS41IEw4Ljc1LDE5LjUgQzcuNTA3MzU5MzEsMTkuNSA2LjUsMTguNDkyNjQwNyA2LjUsMTcuMjUgTDYuNSw0LjI1IEM2LjUsMy4wMDczNTkzMSA3LjUwNzM1OTMxLDIgOC43NSwyIEwxNy43NSwyIFogTTE3Ljc1LDMuNSBMOC43NSwzLjUgQzguMzM1Nzg2NDQsMy41IDgsMy44MzU3ODY0NCA4LDQuMjUgTDgsMTcuMjUgQzgsMTcuNjY0MjEzNiA4LjMzNTc4NjQ0LDE4IDguNzUsMTggTDE3Ljc1LDE4IEMxOC4xNjQyMTM2LDE4IDE4LjUsMTcuNjY0MjEzNiAxOC41LDE3LjI1IEwxOC41LDQuMjUgQzE4LjUsMy44MzU3ODY0NCAxOC4xNjQyMTM2LDMuNSAxNy43NSwzLjUgWiIgaWQ9IvCfjqgtQ29sb3IiPjwvcGF0aD4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/toggleMixedIcon_30px.svg":m=>{m.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTIwLDIwSDEwYy0yLjc2LDAtNS0yLjI0LTUtNSwwLTIuNzYsMi4yNC01LDUtNWgxMGMyLjc2LDAsNSwyLjI0LDUsNSwwLDIuNzYtMi4yNCw1LTUsNVpNMTAsMTEuNWMtMS45MywwLTMuNSwxLjU3LTMuNSwzLjVzMS41NywzLjUsMy41LDMuNWgxMGMxLjkzLDAsMy41LTEuNTcsMy41LTMuNXMtMS41Ny0zLjUtMy41LTMuNUgxMFoiLz48cmVjdCBjbGFzcz0iYiIgeD0iMTEuMDMiIHk9IjE0LjI1IiB3aWR0aD0iNy45NCIgaGVpZ2h0PSIxLjUiIHJ4PSIuNzUiIHJ5PSIuNzUiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/toggleOffIcon_30px.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTAuMjUsMTcuNWEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwxMC4yNSwxNy41WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik0yMCwyMEgxMGE1LDUsMCwwLDEsMC0xMEgyMGE1LDUsMCwwLDEsMCwxMFpNMTAsMTEuNWEzLjUsMy41LDAsMCwwLDAsN0gyMGEzLjUsMy41LDAsMCwwLDAtN1oiIHN0eWxlPSJmaWxsOiMzMzMiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/imgs/toggleOffIcon_40px.svg":m=>{m.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTE1LjI1LDIyLjVjLTEuMzgsMC0yLjUtMS4xMi0yLjUtMi41LDAtMS4zOCwxLjEyLTIuNSwyLjUtMi41czIuNSwxLjEyLDIuNSwyLjVjMCwxLjM4LTEuMTIsMi41LTIuNSwyLjVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNSwyNUgxNWMtMi43NiwwLTUtMi4yNC01LTUsMC0yLjc2LDIuMjQtNSw1LTVoMTBjMi43NiwwLDUsMi4yNCw1LDUsMCwyLjc2LTIuMjQsNS01LDVabS0xMC04LjVjLTEuOTMsMC0zLjUsMS41Ny0zLjUsMy41czEuNTcsMy41LDMuNSwzLjVoMTBjMS45MywwLDMuNS0xLjU3LDMuNS0zLjVzLTEuNTctMy41LTMuNS0zLjVIMTVaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/imgs/toggleOnIcon_30px.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj48cGF0aCBkPSJNMTkuNzUsMTcuNWEyLjUsMi41LDAsMSwwLTIuNS0yLjVBMi41LDIuNSwwLDAsMCwxOS43NSwxNy41WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjxwYXRoIGQ9Ik01LDE1YTUsNSwwLDAsMSw1LTVIMjBhNSw1LDAsMCwxLDAsMTBIMTBBNSw1LDAsMCwxLDUsMTVabTUtMy41YTMuNSwzLjUsMCwwLDAsMCw3SDIwYTMuNSwzLjUsMCwwLDAsMC03WiIgc3R5bGU9ImZpbGw6IzMzMyIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/imgs/toggleOnIcon_40px.svg":m=>{m.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojMzMzO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTI0Ljc1LDIyLjVjMS4zOCwwLDIuNS0xLjEyLDIuNS0yLjVzLTEuMTItMi41LTIuNS0yLjUtMi41LDEuMTItMi41LDIuNSwxLjEyLDIuNSwyLjUsMi41WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMTAsMjBjMC0yLjc2LDIuMjQtNSw1LTVoMTBjMi43NiwwLDUsMi4yNCw1LDVzLTIuMjQsNS01LDVIMTVjLTIuNzYsMC01LTIuMjQtNS01Wm01LTMuNWMtMS45MywwLTMuNSwxLjU3LTMuNSwzLjVzMS41NywzLjUsMy41LDMuNWgxMGMxLjkzLDAsMy41LTEuNTcsMy41LTMuNXMtMS41Ny0zLjUtMy41LTMuNUgxNVoiLz48L3N2Zz4="},"../../../dev/sharedUiComponents/dist/lines/booleanLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{BooleanLineComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),S=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs");class E extends x.Component{constructor(M){super(M)}render(){const M=this.props.value?(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faCheck}):(0,h.jsx)(A.FontAwesomeIcon,{icon:S.faTimesCircle}),T=this.props.value?"value check":"value uncheck";return(0,h.jsxs)("div",{className:"textLine",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),(0,h.jsx)("div",{className:T,children:M})]})}}},"../../../dev/sharedUiComponents/dist/lines/buttonLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ButtonLineComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E)}render(){return(0,h.jsxs)("div",{className:"buttonLine"+(this.props.isDisabled?" disabled":""),children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsx)("button",{onClick:()=>this.props.onClick(),children:this.props.label})]})}}},"../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CheckBoxLineComponent:()=>w});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),S=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),E=d("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),b=d("../../../dev/sharedUiComponents/dist/imgs/copy.svg"),M=d("../../../dev/sharedUiComponents/dist/imgs/toggleOnIcon_40px.svg"),T=d("../../../dev/sharedUiComponents/dist/imgs/toggleOffIcon_40px.svg"),O=d("../../../dev/sharedUiComponents/dist/imgs/toggleOnIcon_30px.svg"),R=d("../../../dev/sharedUiComponents/dist/imgs/toggleMixedIcon_30px.svg"),I=d("../../../dev/sharedUiComponents/dist/imgs/toggleOffIcon_30px.svg");const N={size30:{on:O,mixed:R,off:I},size40:{on:M,mixed:"",off:T}};class w extends x.Component{constructor(k){super(k),this._localChange=!1,this.props.isSelected!==void 0?this.state={isSelected:typeof this.props.isSelected=="boolean"?this.props.isSelected:this.props.isSelected(),isConflict:!1}:this.state={isSelected:this.props.target[this.props.propertyName]===!0,isConflict:this.props.target[this.props.propertyName]===E.conflictingValuesPlaceholder},this.props.disabled&&(this.state={...this.state,isDisabled:this.props.disabled})}shouldComponentUpdate(k,Y){let V;return k.isSelected!==void 0?V=typeof k.isSelected=="boolean"?k.isSelected:k.isSelected():(V=k.target[k.propertyName]===!0,k.target[k.propertyName]===E.conflictingValuesPlaceholder&&(Y.isConflict=!0)),V!==Y.isSelected||this._localChange?(Y.isSelected=V,this._localChange=!1,!0):k.disabled!==Y.isDisabled?!0:k.label!==this.props.label||k.target!==this.props.target||Y.isConflict!==this.state.isConflict}onChange(){this._localChange=!0,this.props.onSelect?this.props.onSelect(!this.state.isSelected):(this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:!this.state.isSelected,initialValue:this.state.isSelected}),this.props.target&&this.props.propertyName&&(this.props.target[this.props.propertyName]=!this.state.isSelected)),this.props.onValueChanged&&this.props.onValueChanged(),this.setState({isSelected:!this.state.isSelected,isConflict:!1})}onCopyClick(){if(this.props&&this.props.target){const{className:k,babylonNamespace:Y}=(0,A.getClassNameWithNamespace)(this.props.target),V="globalThis.debugNode",ee=this.props.propertyName,K=this.props.target[this.props.propertyName],ie=V+"."+ee+" = "+K+";// (debugNode as "+Y+k+")";(0,A.copyCommandToClipboard)(ie)}else(0,A.copyCommandToClipboard)("undefined")}render(){const k=this.props.large?N.size40:N.size30,Y=this.state.isConflict?k.mixed:this.state.isSelected?k.on:k.off;return(0,h.jsxs)("div",{className:"checkBoxLine",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),this.props.label&&(0,h.jsx)("div",{className:"label",title:this.props.iconLabel,children:this.props.label}),this.props.faIcons&&(0,h.jsx)(S.FontAwesomeIcon,{className:`cbx ${this.props.disabled?"disabled":""}`,icon:this.state.isSelected?this.props.faIcons.enabled:this.props.faIcons.disabled,onClick:()=>!this.props.disabled&&this.onChange()}),!this.props.faIcons&&(0,h.jsx)("div",{className:"checkBox",children:(0,h.jsxs)("label",{className:`container lbl${this.props.disabled?" disabled":""} ${this.state.isSelected?"checked":""}`,children:[(0,h.jsx)("input",{type:"checkbox",className:`cbx hidden ${this.state.isConflict?"conflict":""}`,checked:this.state.isSelected,onChange:()=>this.onChange(),disabled:!!this.props.disabled}),(0,h.jsx)("img",{className:"icon",src:Y,alt:this.props.label})]})}),(0,h.jsx)("div",{className:"copy hoverIcon",onClick:()=>this.onCopyClick(),title:"Copy to clipboard",children:(0,h.jsx)("img",{src:b,alt:"Copy"})})]})}}},"../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{Color3LineComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/colorLineComponent.js");class S extends x.Component{render(){const b=this.props;return(0,h.jsx)(A.ColorLine,{disableAlpha:!0,...b})}}},"../../../dev/sharedUiComponents/dist/lines/color4LineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{Color4LineComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/colorLineComponent.js");class S extends x.Component{render(){const b=this.props;return(0,h.jsx)(A.ColorLine,{...b})}}},"../../../dev/sharedUiComponents/dist/lines/colorLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ColorLine:()=>N});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/numericInputComponent.js"),E=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),b=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),M=d("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),T=d("../../../dev/sharedUiComponents/dist/lines/colorPickerComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),R=d("../../../dev/sharedUiComponents/dist/imgs/copy.svg");const I=new A.Color4(0,0,0,0);class N extends x.Component{constructor(D){super(D),this.state={isExpanded:!1,color:this.getValue()};const k=this.props.target;k._isLinearColor=D.isLinear}shouldComponentUpdate(D,k){const Y=k.color,V=this.getValue(D);return Y!==this.state.color?(k.color=Y,!0):V!==this.state.color?(k.color=V,!0):k.isExpanded!==this.state.isExpanded}getValue(D=this.props){const Y=D.target[D.propertyName];return Y?typeof Y=="string"?Y===O.conflictingValuesPlaceholder?I:this._convertToColor(Y):D.isLinear?Y.toGammaSpace():Y.clone():I}setColorFromString(D){const k=this._convertToColor(D);this.setColor(k)}setColor(D){if(D.equals(this.state.color))return;this.setState({color:D.clone()}),this.props.isLinear&&D.toLinearSpaceToRef(D);const k=this.props.disableAlpha?this._toColor3(D):D,Y=this.props.target,V=Y[this.props.propertyName],ee=typeof Y[this.props.propertyName]=="string"?k.toHexString():k;Y[this.props.propertyName]=ee,this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:Y,property:this.props.propertyName,value:ee,initialValue:V}),this.props.onChange&&this.props.onChange()}switchExpandState(){this.setState({isExpanded:!this.state.isExpanded})}updateStateR(D){this.setColor(new A.Color4(D,this.state.color.g,this.state.color.b,this.state.color.a))}updateStateG(D){this.setColor(new A.Color4(this.state.color.r,D,this.state.color.b,this.state.color.a))}updateStateB(D){this.setColor(new A.Color4(this.state.color.r,this.state.color.g,D,this.state.color.a))}updateStateA(D){this.props.disableAlpha||this.setColor(new A.Color4(this.state.color.r,this.state.color.g,this.state.color.b,D))}_convertToColor(D){if(D===""||D==="transparent")return I;if(D.substring(0,1)!=="#"||D.length!==7&&D.length!==9){const k=document.createElement("div");k.style.color=D,document.body.append(k);const Y=window.getComputedStyle(k).color;document.body.removeChild(k);const V=Y.substring(4,Y.length-1).replace(/ /g,"").split(","),ee=V.length>3?parseInt(V[3])/255:1;return new A.Color4(parseInt(V[0])/255,parseInt(V[1])/255,parseInt(V[2])/255,ee)}if(this.props.disableAlpha){const k=A.Color3.FromHexString(D);return new A.Color4(k.r,k.g,k.b,1)}return A.Color4.FromHexString(D)}_toColor3(D){return new A.Color3(D.r,D.g,D.b)}onCopyClick(){if(this.props&&this.props.target){const{className:D,babylonNamespace:k}=(0,M.getClassNameWithNamespace)(this.props.target),Y="globalThis.debugNode",V=this.props.propertyName,ee=this.props.target[this.props.propertyName],K=this.state.color.toHexString();let ie;ee.a?ie="new "+k+"Color4("+ee.r+", "+ee.g+", "+ee.b+", "+ee.a+")":ie="new "+k+"Color3("+ee.r+", "+ee.g+", "+ee.b+")",ie+=";// (HEX : "+K;const ne=Y+"."+V+" = "+ie+" , debugNode as "+k+D+")";(0,M.copyCommandToClipboard)(ne)}else(0,M.copyCommandToClipboard)("undefined")}render(){const D=this.state.isExpanded?(0,h.jsx)(E.FontAwesomeIcon,{icon:b.faMinus}):(0,h.jsx)(E.FontAwesomeIcon,{icon:b.faPlus});return(0,h.jsxs)("div",{className:"color3Line",children:[(0,h.jsxs)("div",{className:"firstLine",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),(0,h.jsx)("div",{className:"color3",children:(0,h.jsx)(T.ColorPickerLine,{lockObject:this.props.lockObject,linearHint:this.props.isLinear,value:this.props.disableAlpha?this._toColor3(this.state.color):this.state.color,onColorChanged:k=>{this.setColorFromString(k)}})}),(0,h.jsx)("div",{className:"expand hoverIcon",onClick:()=>this.switchExpandState(),title:"Expand",children:D}),(0,h.jsx)("div",{className:"copy hoverIcon",onClick:()=>this.onCopyClick(),title:"Copy to clipboard",children:(0,h.jsx)("img",{src:R,alt:"Copy"})})]}),this.state.isExpanded&&(0,h.jsxs)("div",{className:"secondLine",children:[(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"r",labelTooltip:"Red",value:this.state.color.r,step:.1,onChange:k=>this.updateStateR(k)}),(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"g",labelTooltip:"Green",value:this.state.color.g,step:.1,onChange:k=>this.updateStateG(k)}),(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"b",labelTooltip:"Blue",value:this.state.color.b,step:.1,onChange:k=>this.updateStateB(k)}),this.props.disableAlpha||(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"a",labelTooltip:"Alpha",value:this.state.color.a,step:.1,onChange:k=>this.updateStateA(k)})]})]})}}},"../../../dev/sharedUiComponents/dist/lines/colorPickerComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ColorPickerLine:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/colorPicker/colorPicker.js");class S extends x.Component{constructor(b){super(b),this.state={pickerEnabled:!1,color:this.props.value,hex:this.getHexString(b)},this._floatRef=x.createRef(),this._floatHostRef=x.createRef()}syncPositions(){const b=this._floatRef.current,M=this._floatHostRef.current;if(!b||!M)return;let T=M.getBoundingClientRect().top;const O=b.getBoundingClientRect().height;T+O+10>window.innerHeight&&(T=window.innerHeight-O-10),b.style.top=T+"px",this.props.shouldPopRight?b.style.left=M.getBoundingClientRect().left+"px":b.style.left=M.getBoundingClientRect().left-b.getBoundingClientRect().width+"px"}shouldComponentUpdate(b,M){const T=this.getHexString(b)!==this.getHexString();return T&&(M.color=b.value,M.hex=this.getHexString(b)),T||M.hex!==this.state.hex||M.pickerEnabled!==this.state.pickerEnabled}getHexString(b=this.props){return b.value.toHexString()}componentDidUpdate(){this.syncPositions()}componentDidMount(){this.syncPositions()}render(){return(0,h.jsxs)("div",{className:"color-picker",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsx)("div",{className:"color-rect-background",ref:this._floatHostRef,onClick:()=>this.setState({pickerEnabled:!0}),children:(0,h.jsx)("div",{className:"color-rect",style:{background:this.state.hex}})}),this.state.pickerEnabled&&(0,h.jsx)(h.Fragment,{children:(0,h.jsx)("div",{className:"color-picker-cover",onClick:b=>{var M,T;b.target===((T=(M=this._floatRef.current)==null?void 0:M.ownerDocument)==null?void 0:T.querySelector(".color-picker-cover"))&&this.setState({pickerEnabled:!1})},children:(0,h.jsx)("div",{className:"color-picker-float",ref:this._floatRef,children:(0,h.jsx)(A.ColorPicker,{lockObject:this.props.lockObject||{},color:this.state.color,linearhint:this.props.linearHint,onColorChanged:b=>{const M=b.toHexString();this.setState({hex:M,color:b}),this.props.onColorChanged(M)}})})})})]})}}},"../../../dev/sharedUiComponents/dist/lines/downArrow.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE3IiBoZWlnaHQ9IjE3Ij4NCiAgPHBhdGggZD0iTTQuMjE5NjcgOC40Njk2N0M0LjUxMjU2IDguMTc2NzggNC45ODc0NCA4LjE3Njc4IDUuMjgwMzMgOC40Njk2N0wxMiAxNS4xODkzTDE4LjcxOTcgOC40Njk2N0MxOS4wMTI2IDguMTc2NzggMTkuNDg3NCA4LjE3Njc4IDE5Ljc4MDMgOC40Njk2N0MyMC4wNzMyIDguNzYyNTYgMjAuMDczMiA5LjIzNzQ0IDE5Ljc4MDMgOS41MzAzM0wxMi41MzAzIDE2Ljc4MDNDMTIuMjM3NCAxNy4wNzMyIDExLjc2MjYgMTcuMDczMiAxMS40Njk3IDE2Ljc4MDNMNC4yMTk2NyA5LjUzMDMzQzMuOTI2NzggOS4yMzc0NCAzLjkyNjc4IDguNzYyNTYgNC4yMTk2NyA4LjQ2OTY3WiIgZmlsbD0id2hpdGUiIC8+DQo8L3N2Zz4="},"../../../dev/sharedUiComponents/dist/lines/fileButtonLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{FileButtonLine:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E),this._id=A._IDGenerator++,this._uploadInputRef=x.createRef()}onChange(E){const b=E.target.files;b&&b.length&&this.props.onClick(b[0]),E.target.value=""}render(){return(0,h.jsxs)("div",{className:"buttonLine",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsx)("label",{htmlFor:"file-upload"+this._id,className:"file-upload",children:this.props.label}),(0,h.jsx)("input",{ref:this._uploadInputRef,id:"file-upload"+this._id,type:"file",accept:this.props.accept,onChange:E=>this.onChange(E)})]})}}A._IDGenerator=0},"../../../dev/sharedUiComponents/dist/lines/fileMultipleButtonLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{FileMultipleButtonLineComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E),this._id=A._IDGenerator++,this._uploadInputRef=x.createRef()}onChange(E){const b=E.target.files;b&&b.length&&this.props.onClick(E),E.target.value=""}render(){return(0,h.jsxs)("div",{className:"buttonLine",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsx)("label",{htmlFor:"file-upload"+this._id,className:"file-upload",children:this.props.label}),(0,h.jsx)("input",{ref:this._uploadInputRef,id:"file-upload"+this._id,type:"file",accept:this.props.accept,onChange:E=>this.onChange(E),multiple:!0})]})}}A._IDGenerator=0},"../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{FloatLineComponent:()=>O});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),S=d("core/Misc/observable"),E=d("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),b=d("../../../dev/sharedUiComponents/dist/lines/inputArrowsComponent.js"),M=d("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),T=d("../../../dev/sharedUiComponents/dist/imgs/copy.svg");class O extends x.Component{constructor(I){super(I),this._localChange=!1;const N=this.props.target[this.props.propertyName];this.state={value:this.getValueString(N,this.props),dragging:!1},this._store=N}componentWillUnmount(){this.unlock()}getValueString(I,N){return I?I===E.conflictingValuesPlaceholder?E.conflictingValuesPlaceholder:N.isInteger?I.toFixed(0):I.toFixed(N.digits||4):"0"}shouldComponentUpdate(I,N){if(this._localChange)return this._localChange=!1,!0;const w=I.target[I.propertyName],D=this.getValueString(w,I);return D!==N.value?(N.value=D,!0):N.dragging!=this.state.dragging||I.unit!==this.props.unit||I.isInteger!==this.props.isInteger}raiseOnPropertyChanged(I,N){this.props.onChange&&this.props.onChange(I),this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:I,initialValue:N})}updateValue(I){if(/[^0-9.-]/g.test(I))return;let N;this.props.isInteger?N=parseInt(I):N=parseFloat(I),isNaN(N)?this.props.defaultValue!=null&&(N=this.props.defaultValue):(this.props.min!==void 0&&N<this.props.min&&(N=this.props.min,I=N.toString()),this.props.max!==void 0&&N>this.props.max&&(N=this.props.max,I=N.toString())),this._localChange=!0,this.setState({value:I}),!isNaN(N)&&(this.props.target[this.props.propertyName]=N,this.raiseOnPropertyChanged(N,this._store),this._store=N)}lock(){this.props.lockObject&&(this.props.lockObject.lock=!0)}unlock(){this.props.lockObject&&(this.props.lockObject.lock=!1)}incrementValue(I,N=!0){N&&this.props.step&&(I*=parseFloat(this.props.step));let w=parseFloat(this.state.value);isNaN(w)&&(w=0),this.updateValue((w+I).toFixed(2))}onKeyDown(I){this.lock();const N=parseFloat(this.props.step||this.props.isInteger?"1":"0.01"),w=D=>{I.shiftKey&&(D*=10,(I.ctrlKey||I.metaKey)&&(D*=10)),this.incrementValue(D*N,!1),I.preventDefault()};I.key==="ArrowUp"?w(1):I.key==="ArrowDown"&&w(-1),I.key==="Enter"&&this.props.onEnter&&this.props.onEnter(this._store)}onCopyClick(){if(this.props&&this.props.target){const{className:I,babylonNamespace:N}=(0,M.getClassNameWithNamespace)(this.props.target),w="globalThis.debugNode",D=this.props.propertyName,k=this.props.target[this.props.propertyName],Y=w+"."+D+" = "+k+";// (debugNode as "+N+I+")";(0,M.copyCommandToClipboard)(Y)}else(0,M.copyCommandToClipboard)("undefined")}render(){let I;this.props.isInteger?I=parseInt(this.state.value):I=parseFloat(this.state.value);let N=this.props.smallUI?"short":"value";this.state.dragging&&(N+=" dragging"),this.props.arrows&&(N+=" hasArrows");const w=this.state.value===E.conflictingValuesPlaceholder?"":this.state.value,D=this.state.value===E.conflictingValuesPlaceholder?E.conflictingValuesPlaceholder:"";return(0,h.jsxs)(h.Fragment,{children:[!this.props.useEuler&&(0,h.jsxs)("div",{className:this.props.additionalClass?this.props.additionalClass+" floatLine":"floatLine",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(!this.props.icon||this.props.label!="")&&(0,h.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),(0,h.jsxs)("div",{className:N,children:[(0,h.jsx)("input",{type:"number",step:this.props.step||this.props.isInteger?"1":"0.01",className:"numeric-input",onKeyDown:k=>this.onKeyDown(k),value:w,onBlur:()=>{this.unlock(),this.props.onEnter&&this.props.onEnter(this._store)},placeholder:D,onFocus:()=>this.lock(),onChange:k=>this.updateValue(k.target.value),disabled:this.props.disabled}),this.props.arrows&&(0,h.jsx)(b.InputArrowsComponent,{incrementValue:k=>this.incrementValue(k),setDragging:k=>{const Y=this.state.dragging;!Y&&k&&this.props.onDragStart?this.props.onDragStart(I):Y&&!k&&this.props.onDragStop&&this.props.onDragStop(I),this.setState({dragging:k})}})]}),this.props.unit,(0,h.jsx)("div",{className:"copy hoverIcon",onClick:()=>this.onCopyClick(),title:"Copy to clipboard",children:(0,h.jsx)("img",{src:T,alt:"Copy"})})]}),this.props.useEuler&&(0,h.jsx)(A.SliderLineComponent,{lockObject:this.props.lockObject,label:this.props.label,minimum:0,maximum:360,step:.1,directValue:S.Tools.ToDegrees(I),onChange:k=>this.updateValue(S.Tools.ToRadians(k).toString())})]})}}},"../../../dev/sharedUiComponents/dist/lines/hexLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{HexLineComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E),this._localChange=!1,this._propertyChange=!0;const b=this.props.target[this.props.propertyName];this.state={value:b?this.props.isInteger?b.toFixed(0):b.toFixed(this.props.digits||3):"0"},this._store=b}componentWillUnmount(){this.unlock()}shouldComponentUpdate(E,b){if(this._localChange)return this._localChange=!1,!0;const M=E.target[E.propertyName],T=M?this.props.isInteger?M.toFixed(0):M.toFixed(this.props.digits||3):"0";return T!==b.value?(b.value=T,!0):!1}raiseOnPropertyChanged(E,b){this.props.onChange&&this.props.onChange(E),this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.replaySourceReplacement??this.props.target,property:this.props.propertyName,value:E,initialValue:b})}convertToHexString(E){for(;E.length<10;)E+="0";return E}updateValue(E,b){E.substring(0,2)!="0x"&&(E.substring(0,1)!="0"?E="0x"+E:E="0x"+E.substr(1));const M=E.substr(2);if(M!=""&&/^[0-9A-Fa-f]+$/g.test(M)==!1||E.length>10)return;const T=this.convertToHexString(E);let O;O=parseInt(T),!isNaN(O)&&this.props.min!==void 0&&O<this.props.min&&(O=this.props.min,E=O.toString()),this._localChange=!0,!isNaN(O)&&(this.setState({value:E}),b?(this._propertyChange=!0,this.props.target[this.props.propertyName]=O,this.raiseOnPropertyChanged(O,this._store)):this._propertyChange=!1,this._store=O)}lock(){this.props.lockObject&&(this.props.lockObject.lock=!0)}unlock(){this.props.lockObject&&(this.props.lockObject.lock=!1)}render(){let E;if(this._propertyChange){E=parseInt(this.state.value).toString(16);let M="";for(let T=0;T<8-E.length;T++)M+="0";E="0x"+M+E.toUpperCase()}else E=this.state.value;return(0,h.jsx)("div",{children:!this.props.useEuler&&(0,h.jsxs)("div",{className:this.props.additionalClass?this.props.additionalClass+" floatLine":"floatLine",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),(0,h.jsx)("div",{className:"value",children:(0,h.jsx)("input",{type:"string",className:"hex-input",value:E,onBlur:()=>this.unlock(),onFocus:()=>this.lock(),onChange:b=>this.updateValue(b.target.value,!1),onKeyDown:b=>{b.keyCode===13&&this.updateValue(this.state.value,!0)}})})]})})}}},"../../../dev/sharedUiComponents/dist/lines/indentedTextLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{IndentedTextLineComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E)}onLink(){if(this.props.url){window.open(this.props.url,"_blank");return}this.props.onLink&&this.props.onLink()}renderContent(){return this.props.onLink||this.props.url?(0,h.jsx)("div",{className:"link-value",title:this.props.value,onClick:()=>this.onLink(),children:this.props.url?"doc":this.props.value||"no name"}):(0,h.jsx)("div",{className:"value",title:this.props.value,style:{color:this.props.color?this.props.color:""},children:this.props.value||"no name"})}render(){return(0,h.jsx)("div",{className:"indented "+(this.props.underline?"textLine underline":"textLine"+(this.props.additionalClass?" "+this.props.additionalClass:"")),children:this.renderContent()})}}},"../../../dev/sharedUiComponents/dist/lines/inputArrowsComponent.js":(m,_,d)=>{d.r(_),d.d(_,{InputArrowsComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/valueUpArrowIcon.svg"),S=d("../../../dev/sharedUiComponents/dist/lines/valueDownArrowIcon.svg");class E extends x.Component{constructor(){super(...arguments),this._arrowsRef=x.createRef(),this._drag=M=>{this.props.incrementValue(-M.movementY)},this._releaseListener=()=>{var M,T,O,R;this.props.setDragging(!1),(M=this._arrowsRef.current)==null||M.ownerDocument.exitPointerLock(),(T=this._arrowsRef.current)==null||T.ownerDocument.defaultView.removeEventListener("pointerup",this._releaseListener),(O=this._arrowsRef.current)==null||O.ownerDocument.removeEventListener("pointerlockchange",this._lockChangeListener),(R=this._arrowsRef.current)==null||R.ownerDocument.defaultView.removeEventListener("mousemove",this._drag)},this._lockChangeListener=()=>{var M;((M=this._arrowsRef.current)==null?void 0:M.ownerDocument.pointerLockElement)!==this._arrowsRef.current&&this._releaseListener()}}render(){return(0,h.jsxs)("div",{className:"arrows",ref:this._arrowsRef,onPointerDown:()=>{var M,T,O,R;(M=this._arrowsRef.current)==null||M.ownerDocument.addEventListener("pointerlockchange",this._lockChangeListener),(T=this._arrowsRef.current)==null||T.ownerDocument.defaultView.addEventListener("pointerup",this._releaseListener),(O=this._arrowsRef.current)==null||O.ownerDocument.defaultView.addEventListener("mousemove",this._drag),this.props.setDragging(!0),(R=this._arrowsRef.current)==null||R.requestPointerLock()},onDragStart:M=>M.preventDefault(),children:[(0,h.jsx)("img",{className:"upArrowIcon",src:A,alt:"Increase Value"}),(0,h.jsx)("img",{className:"downArrowIcon",src:S,alt:"Increase Value"})]})}}},"../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js":(m,_,d)=>{d.r(_),d.d(_,{LineContainerComponent:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/downArrow.svg");class E extends x.Component{constructor(M){super(M);const T=A.DataStorage.ReadBoolean(this.props.title,!this.props.closed);this.state={isExpanded:T,isHighlighted:!1}}switchExpandedState(){const M=!this.state.isExpanded;A.DataStorage.WriteBoolean(this.props.title,M),this.setState({isExpanded:M})}renderHeader(){const M=this.state.isExpanded?"collapse":"collapse closed";return(0,h.jsxs)("div",{className:"header",onClick:()=>this.switchExpandedState(),children:[(0,h.jsx)("div",{className:"title",children:this.props.title}),(0,h.jsx)("div",{className:M,children:(0,h.jsx)("img",{className:"img",title:this.props.title,src:S})})]})}componentDidMount(){this.props.selection&&(this.props.selection.selectedLineContainerTitles.length===0&&this.props.selection.selectedLineContainerTitlesNoFocus.length===0||(this.props.selection.selectedLineContainerTitles.indexOf(this.props.title)>-1?(setTimeout(()=>{this.props.selection.selectedLineContainerTitles=[]}),this.setState({isExpanded:!0,isHighlighted:!0}),window.setTimeout(()=>{this.setState({isHighlighted:!1})},5e3)):this.props.selection.selectedLineContainerTitlesNoFocus.indexOf(this.props.title)>-1?(setTimeout(()=>{this.props.selection.selectedLineContainerTitlesNoFocus=[]}),this.setState({isExpanded:!0,isHighlighted:!1})):this.setState({isExpanded:!1})))}render(){return this.state.isExpanded?(0,h.jsxs)("div",{className:"paneContainer",children:[(0,h.jsxs)("div",{className:"paneContainer-content",children:[this.renderHeader(),(0,h.jsx)("div",{className:"paneList",children:this.props.children})]}),(0,h.jsx)("div",{className:"paneContainer-highlight-border"+(this.state.isHighlighted?"":" transparent")})]}):(0,h.jsx)("div",{className:"paneContainer",children:(0,h.jsx)("div",{className:"paneContainer-content",children:this.renderHeader()})})}}},"../../../dev/sharedUiComponents/dist/lines/linkButtonComponent.js":(m,_,d)=>{d.r(_),d.d(_,{LinkButtonComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js");class S extends x.Component{constructor(b){super(b)}onLink(){this.props.url&&window.open(this.props.url,"_blank")}render(){return(0,h.jsxs)("div",{className:"linkButtonLine",children:[(0,h.jsx)("div",{className:"link",title:this.props.label,onClick:()=>this.onLink(),children:this.props.label}),(0,h.jsx)("div",{className:"link-button",children:(0,h.jsx)("button",{onClick:()=>this.props.onClick(),children:this.props.buttonLabel})}),this.props.icon&&(0,h.jsx)("div",{className:"link-icon hoverIcon",onClick:()=>{this.props.onIconClick&&this.props.onIconClick()},children:(0,h.jsx)(A.FontAwesomeIcon,{icon:this.props.icon})})]})}}},"../../../dev/sharedUiComponents/dist/lines/messageLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{MessageLineComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js");class S extends x.Component{constructor(b){super(b)}render(){return this.props.icon?(0,h.jsxs)("div",{className:"iconMessageLine",children:[(0,h.jsx)("div",{className:"icon",style:{color:this.props.color?this.props.color:""},children:(0,h.jsx)(A.FontAwesomeIcon,{icon:this.props.icon})}),(0,h.jsx)("div",{className:"value",title:this.props.text,children:this.props.text})]}):(0,h.jsx)("div",{className:"messageLine",children:(0,h.jsx)("div",{className:"value",title:this.props.text,style:{color:this.props.color?this.props.color:""},children:this.props.text})})}}},"../../../dev/sharedUiComponents/dist/lines/numericInputComponent.js":(m,_,d)=>{d.r(_),d.d(_,{NumericInput:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E),this._localChange=!1,this.state={value:this.props.value.toFixed(this.props.precision!==void 0?this.props.precision:3)}}componentWillUnmount(){this.props.lockObject&&(this.props.lockObject.lock=!1)}shouldComponentUpdate(E,b){return this._localChange?(this._localChange=!1,!0):E.value.toString()!==b.value?(b.value=E.value.toFixed(this.props.precision!==void 0?this.props.precision:3),!0):!1}updateValue(E){if(/[^0-9.-]/g.test(E))return;const b=parseFloat(E);this._localChange=!0,this.setState({value:E}),!isNaN(b)&&this.props.onChange(b)}onBlur(){this._localChange=!1;const E=parseFloat(this.state.value);if(this.props.lockObject&&(this.props.lockObject.lock=!1),isNaN(E)){this.props.onChange(this.props.value);return}this.props.onChange(E)}incrementValue(E){let b=parseFloat(this.state.value);isNaN(b)&&(b=0),this.updateValue((b+E).toFixed(this.props.precision!==void 0?this.props.precision:3))}onKeyDown(E){const b=this.props.step||1,M=T=>{E.shiftKey&&(T*=10,(E.ctrlKey||E.metaKey)&&(T*=10)),this.incrementValue(T*b),E.preventDefault()};E.key==="ArrowUp"?M(1):E.key==="ArrowDown"&&M(-1)}render(){return(0,h.jsxs)("div",{className:"numeric",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),this.props.label&&(0,h.jsx)("div",{className:"numeric-label",title:this.props.labelTooltip??this.props.label,children:`${this.props.label}: `}),(0,h.jsx)("input",{type:"number",step:this.props.step,className:"numeric-input",value:this.state.value,onChange:E=>this.updateValue(E.target.value),onKeyDown:E=>this.onKeyDown(E),onFocus:()=>{this.props.lockObject&&(this.props.lockObject.lock=!0)},onBlur:()=>this.onBlur()})]})}}A.defaultProps={step:1}},"../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{Null_Value:()=>E,OptionsLine:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),S=d("../../../dev/sharedUiComponents/dist/imgs/copy.svg");const E=Number.MAX_SAFE_INTEGER;class b extends x.Component{_remapValueIn(T){return this.props.allowNullValue&&T===null?E:T}_remapValueOut(T){return this.props.allowNullValue&&T===E?null:T}_getValue(T){return T.extractValue?T.extractValue(T.target):T.target&&T.propertyName?T.target[T.propertyName]:T.options[T.defaultIfNull||0]}constructor(T){super(T),this._localChange=!1,this.state={value:this._remapValueIn(this._getValue(T))}}shouldComponentUpdate(T,O){if(this._localChange)return this._localChange=!1,!0;const R=this._remapValueIn(T.extractValue?T.extractValue(this.props.target):T.target[T.propertyName]);return R!=null&&R!==O.value?(O.value=R,!0):!1}raiseOnPropertyChanged(T,O){this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:T,initialValue:O,allowNullValue:this.props.allowNullValue})}setValue(T){this.setState({value:T})}updateValue(T){const O=this.props.valuesAreStrings?T:parseInt(T);this._localChange=!0;const R=this.props.extractValue?this.props.extractValue(this.props.target):this.props.target[this.props.propertyName];this.props.noDirectUpdate||(this.props.target[this.props.propertyName]=this._remapValueOut(O)),this.setState({value:O}),this.props.onSelect&&this.props.onSelect(O);const I=this.props.extractValue?this.props.extractValue(this.props.target):this.props.target[this.props.propertyName];this.raiseOnPropertyChanged(I,R)}onCopyClick(){if(this.props&&this.props.target){const{className:T,babylonNamespace:O}=(0,A.getClassNameWithNamespace)(this.props.target),R="globalThis.debugNode",I=this.props.propertyName,N=this.props.extractValue?this.props.extractValue(this.props.target):this.props.target[this.props.propertyName],w=R+"."+I+" = "+N+";// (debugNode as "+O+T+")";(0,A.copyCommandToClipboard)(w)}else(0,A.copyCommandToClipboard)("undefined")}render(){return(0,h.jsxs)("div",{className:"listLine"+(this.props.className?" "+this.props.className:""),children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,color:"black",className:"icon"}),(0,h.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),(0,h.jsx)("div",{className:"options",children:(0,h.jsx)("select",{onChange:T=>this.updateValue(T.target.value),value:this.state.value??"",children:this.props.options.map((T,O)=>(0,h.jsx)("option",{selected:T.selected,value:T.value,title:T.label,children:T.label},T.label+O))})}),(0,h.jsx)("div",{className:"copy hoverIcon",onClick:()=>this.onCopyClick(),title:"Copy to clipboard",children:(0,h.jsx)("img",{src:S,alt:"Copy"})})]})}}},"../../../dev/sharedUiComponents/dist/lines/radioLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{RadioButtonLineComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E),this.state={isSelected:this.props.isSelected()}}componentDidMount(){this._onSelectionChangedObserver=this.props.onSelectionChangedObservable.add(E=>{this.setState({isSelected:E===this})})}componentWillUnmount(){this._onSelectionChangedObserver&&(this.props.onSelectionChangedObservable.remove(this._onSelectionChangedObserver),this._onSelectionChangedObserver=null)}onChange(){this.props.onSelect(),this.props.onSelectionChangedObservable.notifyObservers(this)}render(){return(0,h.jsxs)("div",{className:"radioLine",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),(0,h.jsxs)("div",{className:"radioContainer",children:[(0,h.jsx)("input",{id:this.props.label,className:"radio",type:"radio",checked:this.state.isSelected,onChange:()=>this.onChange()}),(0,h.jsx)("label",{htmlFor:this.props.label,className:"labelForRadio"})]})]})}}},"../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SliderLineComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),S=d("core/Misc/observable"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/imgs/copy.svg");class M extends x.Component{constructor(O){if(super(O),this._localChange=!1,this.props.directValue!==void 0)this.state={value:this.props.directValue};else{let R=this.props.target[this.props.propertyName];R===void 0&&(R=this.props.maximum),this.state={value:R}}}shouldComponentUpdate(O,R){if(O.directValue!==void 0)return R.value=O.directValue,!0;if(O.label!==this.props.label)return!0;let I=O.target[O.propertyName];return I===void 0&&(I=O.maximum),I!==R.value||this._localChange||O.maximum!==this.props.maximum||O.minimum!==this.props.minimum?(R.value=I,this._localChange=!1,!0):O.unit!==this.props.unit}onChange(O){if(O==="—")return;this._localChange=!0;let R=parseFloat(O);this.props.useEuler&&(R=S.Tools.ToRadians(R)),this.props.target&&(this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:R,initialValue:this.state.value}),this.props.target[this.props.propertyName]=R),this.props.onChange&&this.props.onChange(R),this.setState({value:R})}onInput(O){const R=parseFloat(O);this.props.onInput&&this.props.onInput(R)}prepareDataToRead(O){return O===null&&(O=0),this.props.useEuler?S.Tools.ToDegrees(O):O}onCopyClick(){if(this.props&&this.props.target){const{className:O,babylonNamespace:R}=(0,A.getClassNameWithNamespace)(this.props.target),I="globalThis.debugNode",N=this.props.propertyName,w=this.props.target[this.props.propertyName],D=I+"."+N+" = "+w+";// (debugNode as "+R+O+")";(0,A.copyCommandToClipboard)(D)}else(0,A.copyCommandToClipboard)("undefined")}render(){return(0,h.jsxs)("div",{className:"sliderLine",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(!this.props.icon||this.props.label!="")&&(0,h.jsx)("div",{className:this.props.margin?"label withMargins":"label",title:this.props.label,children:this.props.label}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,isInteger:this.props.decimalCount===0,smallUI:!0,label:"",target:this.state,digits:this.props.decimalCount===void 0?4:this.props.decimalCount,propertyName:"value",min:this.props.allowOverflow?void 0:this.props.minimum,max:this.props.allowOverflow?void 0:this.props.maximum,onEnter:()=>{const O=this.prepareDataToRead(this.state.value);this.onChange(O)},onChange:()=>{const O=this.prepareDataToRead(this.state.value);this.onChange(O)},onPropertyChangedObservable:this.props.onPropertyChangedObservable,unit:this.props.unit}),(0,h.jsx)("div",{className:"slider",children:(0,h.jsx)("input",{className:"range"+(this.props.allowOverflow&&(this.state.value>this.props.maximum||this.state.value<this.props.minimum)?" overflow":""),type:"range",step:this.props.step,min:this.prepareDataToRead(this.props.minimum),max:this.prepareDataToRead(this.props.maximum),value:this.prepareDataToRead(this.state.value),onInput:O=>this.onInput(O.target.value),onChange:O=>this.onChange(O.target.value)})}),(0,h.jsx)("div",{className:"copy hoverIcon",onClick:()=>this.onCopyClick(),title:"Copy to clipboard",children:(0,h.jsx)("img",{src:b,alt:"Copy"})})]})}}},"../../../dev/sharedUiComponents/dist/lines/targetsProxy.js":(m,_,d)=>{d.r(_),d.d(_,{conflictingValuesPlaceholder:()=>h,makeTargetsProxy:()=>x});const h="—";function x(A,S,E=(b,M)=>b[M]){return new Proxy({},{get(b,M){const T=M;if(A.length===0)return h;const O=E(A[0],T);for(const R of A)if(E(R,T)!==O)return h;return O},set(b,M,T){if(T==="—")return!0;const O=M;for(const R of A){const I=R[O];R[O]=T,S&&S.notifyObservers({object:R,property:M,value:R[O],initialValue:I})}return!0}})}},"../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TextInputLineComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js"),S=d("../../../dev/sharedUiComponents/dist/lines/inputArrowsComponent.js");let E=-1;class b extends x.Component{constructor(T){super(T),this._localChange=!1;const O=this.props.numeric?"0":"";this.state={value:(this.props.value!==void 0?this.props.value:this.props.target[this.props.propertyName])||O,dragging:!1}}componentWillUnmount(){this.props.lockObject&&(this.props.lockObject.lock=!1)}shouldComponentUpdate(T,O){if(this._localChange)return this._localChange=!1,!0;const R=T.value!==void 0?T.value:T.target[T.propertyName];return R!==O.value?(O.value=R||"",!0):O.dragging!=this.state.dragging||T.unit!==this.props.unit}raiseOnPropertyChanged(T,O){if(this.props.onChange){this.props.onChange(T);return}this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:T,initialValue:O})}getCurrentNumericValue(T){const O=parseFloat(T);if(!isNaN(O))return O;if(this.props.placeholder!==void 0){const R=parseFloat(this.props.placeholder);if(!isNaN(R))return R}return 0}updateValue(T,O){if(this.props.disabled)return;if(this.props.numbersOnly){if(/[^0-9.px%-]/g.test(T))return;T||(T="0"),T.search(/0+[0-9-]/g)===0&&(T=T.substring(1))}if(this.props.numeric){let I=this.getCurrentNumericValue(T);this.props.roundValues&&(I=Math.round(I)),this.props.min!==void 0&&(I=Math.max(this.props.min,I)),this.props.max!==void 0&&(I=Math.min(this.props.max,I)),T=I.toString()}this._localChange=!0;const R=this.props.value!==void 0?this.props.value:this.props.target[this.props.propertyName];this.props.validator&&O&&this.props.validator(O)==!1&&(T=R),this.setState({value:T}),this.props.propertyName&&!this.props.delayInput&&(this.props.target[this.props.propertyName]=T),this.props.throttlePropertyChangedNotification?(E>=0&&window.clearTimeout(E),E=window.setTimeout(()=>{this.raiseOnPropertyChanged(T,R)},this.props.throttlePropertyChangedNotificationDelay??200)):this.raiseOnPropertyChanged(T,R)}incrementValue(T){if(this.props.step&&(T*=this.props.step),this.props.arrowsIncrement){this.props.arrowsIncrement(T);return}const O=this.getCurrentNumericValue(this.state.value);this.updateValue((O+T).toFixed(2))}onKeyDown(T){!this.props.disabled&&this.props.arrows&&(T.key==="ArrowUp"&&(this.incrementValue(1),T.preventDefault()),T.key==="ArrowDown"&&(this.incrementValue(-1),T.preventDefault()))}render(){const T=this.state.value===A.conflictingValuesPlaceholder?"":this.state.value,O=this.state.value===A.conflictingValuesPlaceholder?A.conflictingValuesPlaceholder:this.props.placeholder||"",R=this.props.step||(this.props.roundValues?1:.01),I=this.props.multilines?"textInputArea":this.props.unit!==void 0?"textInputLine withUnits":"textInputLine";return(0,h.jsxs)("div",{className:I,children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,color:"black",className:"icon"}),this.props.label!==void 0&&(0,h.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),this.props.multilines&&(0,h.jsx)(h.Fragment,{children:(0,h.jsx)("textarea",{className:this.props.disabled?"disabled":"",value:this.state.value,onFocus:()=>{this.props.lockObject&&(this.props.lockObject.lock=!0)},onChange:N=>this.updateValue(N.target.value),onKeyDown:N=>{N.keyCode===13&&this.updateValue(this.state.value)},onBlur:N=>{this.updateValue(N.target.value,N.target.value),this.props.lockObject&&(this.props.lockObject.lock=!1)},disabled:this.props.disabled})}),!this.props.multilines&&(0,h.jsxs)("div",{className:`value${this.props.noUnderline===!0?" noUnderline":""}${this.props.arrows?" hasArrows":""}${this.state.dragging?" dragging":""}`,children:[(0,h.jsx)("input",{className:this.props.disabled?"disabled":"",value:T,onBlur:N=>{this.props.lockObject&&(this.props.lockObject.lock=!1),this.updateValue((this.props.value!==void 0?this.props.value:this.props.target[this.props.propertyName])||"",N.target.value)},onFocus:()=>{this.props.lockObject&&(this.props.lockObject.lock=!0)},onChange:N=>this.updateValue(N.target.value),onKeyDown:N=>this.onKeyDown(N),placeholder:O,type:this.props.numeric?"number":"text",step:R,disabled:this.props.disabled}),this.props.arrows&&(0,h.jsx)(S.InputArrowsComponent,{incrementValue:N=>this.incrementValue(N),setDragging:N=>this.setState({dragging:N})})]}),this.props.unit]})}}},"../../../dev/sharedUiComponents/dist/lines/textLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TextLineComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/imgs/copy.svg"),S=d("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),E=d("../../../dev/sharedUiComponents/dist/styleHelper.js");class b extends x.Component{constructor(T){super(T)}onLink(){if(this.props.url){window.open(this.props.url,"_blank");return}this.props.onLink&&this.props.onLink()}renderContent(){return this.props.ignoreValue?null:this.props.onLink||this.props.url?(0,h.jsx)("div",{className:"link-value",title:this.props.tooltip??this.props.label??"",onClick:()=>this.onLink(),children:this.props.url?"doc":this.props.value||"no name"}):(0,h.jsx)("div",{className:"value",title:this.props.tooltip??this.props.label??"",style:{color:this.props.color?this.props.color:""},children:this.props.value||"no name"})}render(){return(0,h.jsxs)("div",{className:(0,E.MergeClassNames)(["textLine",["underline",this.props.underline],this.props.additionalClass,["icon",this.props.onCopy]]),children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsx)("div",{className:"label",title:this.props.tooltip??this.props.label??"",children:this.props.label??""}),this.renderContent(),this.props.onCopy&&(0,h.jsx)("div",{className:"copy hoverIcon",onClick:()=>{const T=this.props.onCopy;T===!0&&this.props.value!==void 0?(0,S.copyCommandToClipboard)(this.props.value):typeof T=="function"&&(0,S.copyCommandToClipboard)(T())},title:"Copy to clipboard",children:(0,h.jsx)("img",{src:A,alt:"Copy"})})]})}}},"../../../dev/sharedUiComponents/dist/lines/textureButtonLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TextureButtonLine:()=>E});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),A=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),S=d("../../../../node_modules/react/index.js");class E extends S.Component{constructor(M){super(M),this._id=E._IDGenerator++,this._uploadInputRef=S.createRef(),this.state={isOpen:!1}}onChange(M){const T=M.target.files;T&&T.length&&this.props.onClick(T[0]),M.target.value=""}render(){return(0,h.jsxs)("div",{className:"textureButtonLine",onPointerLeave:()=>this.setState({isOpen:!1}),children:[(0,h.jsx)("label",{htmlFor:"file-upload"+this._id,className:"file-upload",children:this.props.label}),(0,h.jsx)("input",{ref:this._uploadInputRef,id:"file-upload"+this._id,type:"file",accept:this.props.accept,onChange:M=>this.onChange(M)}),(0,h.jsx)("div",{className:"dropdownButton",onClick:()=>this.setState({isOpen:!this.state.isOpen}),title:"Link to a texture",children:(0,h.jsx)(A.FontAwesomeIcon,{icon:x.faLink})}),(0,h.jsx)("div",{className:"dropdown"+(this.state.isOpen?"":" hidden"),children:this.props.scene.textures.filter(M=>M.name).sort((M,T)=>(M.displayName||M.name).localeCompare(T.displayName||T.name)).map((M,T)=>(0,h.jsx)("div",{className:"dropdownItem",onClick:()=>this.props.onLink(M),title:M.name,children:M.displayName||M.name},T))})]})}}E._IDGenerator=0},"../../../dev/sharedUiComponents/dist/lines/valueDownArrowIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE1IDE1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNC4wOSw1LjU1YS42MS42MSwwLDAsMSwuODUsMGwyLDJWMS43OWEuNi42LDAsMSwxLDEuMiwwVjcuNTJsMi0yYS42MS42MSwwLDAsMSwuODUsMCwuNi42LDAsMCwxLDAsLjg0bC0zLDNhLjYuNiwwLDAsMS0uODQsMGwtMy0zQS42LjYsMCwwLDEsNC4wOSw1LjU1WiIvPjwvc3ZnPg=="},"../../../dev/sharedUiComponents/dist/lines/valueLineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ValueLineComponent:()=>A});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js");class A extends x.Component{constructor(E){super(E)}render(){const E=this.props.fractionDigits!==void 0?this.props.fractionDigits:2,b=this.props.value.toFixed(E)+(this.props.units?" "+this.props.units:"");return(0,h.jsxs)("div",{className:"textLine",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),(0,h.jsx)("div",{className:"value",style:{color:this.props.color?this.props.color:""},children:b})]})}}},"../../../dev/sharedUiComponents/dist/lines/valueUpArrowIcon.svg":m=>{m.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iaWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE1IDE1Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzMzMzt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNC4wOSw5LjQ1YS42LjYsMCwwLDEsMC0uODRsMy0zYS42LjYsMCwwLDEsLjg0LDBsMywzYS42LjYsMCwwLDEsMCwuODQuNjEuNjEsMCwwLDEtLjg1LDBsLTItMnY1LjczYS42LjYsMCwwLDEtMS4yLDBWNy40OGwtMiwyQS42MS42MSwwLDAsMSw0LjA5LDkuNDVaIi8+PC9zdmc+"},"../../../dev/sharedUiComponents/dist/lines/vector2LineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{Vector2LineComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/numericInputComponent.js"),E=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),b=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs");class M extends x.Component{constructor(O){super(O),this._localChange=!1;const R=this.props.target[this.props.propertyName];this.state={isExpanded:!1,value:R&&R.clone?R.clone():A.Vector2.Zero()}}shouldComponentUpdate(O,R){const I=O.target[O.propertyName];return!I.equals(R.value)||this._localChange?(R.value=I.clone(),this._localChange=!1,!0):!1}switchExpandState(){this._localChange=!0,this.setState({isExpanded:!this.state.isExpanded})}raiseOnPropertyChanged(O){this.props.onChange&&this.props.onChange(this.state.value),this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:this.state.value,initialValue:O})}updateStateX(O){this._localChange=!0;const R=this.state.value.clone();this.props.target[this.props.propertyName].x=O,this.state.value.x=O,this.setState({value:this.state.value}),this.raiseOnPropertyChanged(R)}updateStateY(O){this._localChange=!0;const R=this.state.value.clone();this.props.target[this.props.propertyName].y=O,this.state.value.y=O,this.setState({value:this.state.value}),this.raiseOnPropertyChanged(R)}render(){const O=this.state.isExpanded?(0,h.jsx)(E.FontAwesomeIcon,{icon:b.faMinus}):(0,h.jsx)(E.FontAwesomeIcon,{icon:b.faPlus});return(0,h.jsxs)("div",{className:"vector3Line",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsxs)("div",{className:"firstLine",title:this.props.label,children:[(0,h.jsx)("div",{className:"label",children:this.props.label}),(0,h.jsx)("div",{className:"vector",children:`X: ${this.state.value.x.toFixed(2)}, Y: ${this.state.value.y.toFixed(2)}`}),(0,h.jsx)("div",{className:"expand hoverIcon",onClick:()=>this.switchExpandState(),title:"Expand",children:O})]}),this.state.isExpanded&&(0,h.jsxs)("div",{className:"secondLine",children:[(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"x",step:this.props.step,value:this.state.value.x,onChange:R=>this.updateStateX(R)}),(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"y",step:this.props.step,value:this.state.value.y,onChange:R=>this.updateStateY(R)})]})]})}}M.defaultProps={step:.001}},"../../../dev/sharedUiComponents/dist/lines/vector3LineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{Vector3LineComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/numericInputComponent.js"),E=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),b=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs"),M=d("../../../dev/sharedUiComponents/dist/copyCommandToClipboard.js"),T=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/imgs/copy.svg");class R extends x.Component{constructor(N){super(N),this._localChange=!1;const w=this.getCurrentValue();this.state={isExpanded:!1,value:w&&w.clone?w.clone():A.Vector3.Zero()}}getCurrentValue(){return this.props.directValue?this.props.directValue:this.props.target[this.props.propertyName]}shouldComponentUpdate(N,w){if(N.directValue)return!N.directValue.equals(w.value)||this._localChange?(w.value=N.directValue.clone(),this._localChange=!1,!0):!1;const D=N.target[N.propertyName];return!D.equals(w.value)||this._localChange?(w.value=D.clone(),this._localChange=!1,!0):!1}switchExpandState(){this._localChange=!0,this.setState({isExpanded:!this.state.isExpanded})}raiseOnPropertyChanged(N){this.props.onChange&&this.props.onChange(this.state.value),this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:this.state.value,initialValue:N})}updateVector3(){if(this.props.directValue){this.props.directValue.set(this.state.value.x,this.state.value.y,this.state.value.z),this.forceUpdate(),this.raiseOnPropertyChanged(this.state.value);return}const N=this.props.target[this.props.propertyName].clone();this.props.target[this.props.propertyName]=this.state.value,this.setState({value:N}),this.raiseOnPropertyChanged(N)}updateStateX(N){this._localChange=!0,this.state.value.x=N,this.updateVector3()}updateStateY(N){this._localChange=!0,this.state.value.y=N,this.updateVector3()}updateStateZ(N){this._localChange=!0,this.state.value.z=N,this.updateVector3()}onCopyClick(){if(this.props&&this.props.target){const{className:N,babylonNamespace:w}=(0,M.getClassNameWithNamespace)(this.props.target),D="globalThis.debugNode",k=this.props.propertyName,Y=this.props.target[this.props.propertyName],V="new "+w+"Vector3("+Y.x+", "+Y.y+", "+Y.z+")",ee=D+"."+k+" = "+V+";// (debugNode as "+w+N+")";(0,M.copyCommandToClipboard)(ee)}else(0,M.copyCommandToClipboard)("undefined")}render(){const N=this.state.isExpanded?(0,h.jsx)(E.FontAwesomeIcon,{icon:b.faMinus}):(0,h.jsx)(E.FontAwesomeIcon,{icon:b.faPlus});return(0,h.jsxs)("div",{className:"vector3Line",children:[(0,h.jsxs)("div",{className:"firstLine",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),(0,h.jsxs)("div",{className:"vector",children:[!this.props.useEuler&&`X: ${this.state.value.x.toFixed(2)}, Y: ${this.state.value.y.toFixed(2)}, Z: ${this.state.value.z.toFixed(2)}`,this.props.useEuler&&`X: ${A.Tools.ToDegrees(this.state.value.x).toFixed(2)}, Y: ${A.Tools.ToDegrees(this.state.value.y).toFixed(2)}, Z: ${A.Tools.ToDegrees(this.state.value.z).toFixed(2)}`]}),(0,h.jsx)("div",{className:"expand hoverIcon",onClick:()=>this.switchExpandState(),title:"Expand",children:N}),(0,h.jsx)("div",{className:"copy hoverIcon",onClick:()=>this.onCopyClick(),title:"Copy to clipboard",children:(0,h.jsx)("img",{src:O,alt:"Copy"})}),this.props.additionalCommands&&this.props.additionalCommands.map(w=>w)]}),this.state.isExpanded&&!this.props.useEuler&&(0,h.jsxs)("div",{className:"secondLine",children:[(0,h.jsx)(S.NumericInput,{label:"x",lockObject:this.props.lockObject,step:this.props.step,value:this.state.value.x,onChange:w=>this.updateStateX(w)}),(0,h.jsx)(S.NumericInput,{label:"y",lockObject:this.props.lockObject,step:this.props.step,value:this.state.value.y,onChange:w=>this.updateStateY(w)}),(0,h.jsx)(S.NumericInput,{label:"z",lockObject:this.props.lockObject,step:this.props.step,value:this.state.value.z,onChange:w=>this.updateStateZ(w)})]}),this.state.isExpanded&&this.props.useEuler&&!this.props.noSlider&&(0,h.jsxs)("div",{className:"secondLine",children:[(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,margin:!0,label:"x",minimum:0,maximum:360,step:.1,directValue:A.Tools.ToDegrees(this.state.value.x),onChange:w=>this.updateStateX(A.Tools.ToRadians(w))}),(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,margin:!0,label:"y",minimum:0,maximum:360,step:.1,directValue:A.Tools.ToDegrees(this.state.value.y),onChange:w=>this.updateStateY(A.Tools.ToRadians(w))}),(0,h.jsx)(T.SliderLineComponent,{lockObject:this.props.lockObject,margin:!0,label:"z",minimum:0,maximum:360,step:.1,directValue:A.Tools.ToDegrees(this.state.value.z),onChange:w=>this.updateStateZ(A.Tools.ToRadians(w))})]}),this.state.isExpanded&&this.props.useEuler&&this.props.noSlider&&(0,h.jsxs)("div",{className:"secondLine",children:[(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"x",step:this.props.step,value:A.Tools.ToDegrees(this.state.value.x),onChange:w=>this.updateStateX(A.Tools.ToRadians(w))}),(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"y",step:this.props.step,value:A.Tools.ToDegrees(this.state.value.y),onChange:w=>this.updateStateY(A.Tools.ToRadians(w))}),(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"z",step:this.props.step,value:A.Tools.ToDegrees(this.state.value.z),onChange:w=>this.updateStateZ(A.Tools.ToRadians(w))})]})]})}}R.defaultProps={step:.001}},"../../../dev/sharedUiComponents/dist/lines/vector4LineComponent.js":(m,_,d)=>{d.r(_),d.d(_,{Vector4LineComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("core/Misc/observable"),S=d("../../../dev/sharedUiComponents/dist/lines/numericInputComponent.js"),E=d("../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"),b=d("../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs");class M extends x.Component{constructor(O){super(O),this._localChange=!1;const R=this.getCurrentValue();this.state={isExpanded:!1,value:R&&R.clone?R.clone():A.Vector4.Zero()}}getCurrentValue(){return this.props.value||this.props.target[this.props.propertyName]}shouldComponentUpdate(O,R){const I=O.value||O.target[O.propertyName];return!I.equals(R.value)||this._localChange?(R.value=I.clone(),this._localChange=!1,!0):!1}switchExpandState(){this._localChange=!0,this.setState({isExpanded:!this.state.isExpanded})}raiseOnPropertyChanged(O){this.props.onChange&&this.props.onChange(this.state.value),this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName||"",value:this.state.value,initialValue:O})}updateVector4(){const O=this.getCurrentValue().clone();this.props.value?this.props.value.copyFrom(this.state.value):this.props.target[this.props.propertyName]=this.state.value,this.setState({value:O}),this.raiseOnPropertyChanged(O)}updateStateX(O){this._localChange=!0,this.state.value.x=O,this.updateVector4()}updateStateY(O){this._localChange=!0,this.state.value.y=O,this.updateVector4()}updateStateZ(O){this._localChange=!0,this.state.value.z=O,this.updateVector4()}updateStateW(O){this._localChange=!0,this.state.value.w=O,this.updateVector4()}render(){const O=this.state.isExpanded?(0,h.jsx)(E.FontAwesomeIcon,{icon:b.faMinus}):(0,h.jsx)(E.FontAwesomeIcon,{icon:b.faPlus});return(0,h.jsxs)("div",{className:"vector3Line",children:[(0,h.jsxs)("div",{className:"firstLine",children:[this.props.icon&&(0,h.jsx)("img",{src:this.props.icon,title:this.props.iconLabel,alt:this.props.iconLabel,className:"icon"}),(0,h.jsx)("div",{className:"label",title:this.props.label,children:this.props.label}),(0,h.jsx)("div",{className:"vector",children:`X: ${this.state.value.x.toFixed(2)}, Y: ${this.state.value.y.toFixed(2)}, Z: ${this.state.value.z.toFixed(2)}, W: ${this.state.value.w.toFixed(2)}`}),(0,h.jsx)("div",{className:"expand hoverIcon",onClick:()=>this.switchExpandState(),title:"Expand",children:O})]}),(0,h.jsxs)("div",{className:"secondLine",children:[(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"x",step:this.props.step,value:this.state.value.x,onChange:R=>this.updateStateX(R)}),(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"y",step:this.props.step,value:this.state.value.y,onChange:R=>this.updateStateY(R)}),(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"z",step:this.props.step,value:this.state.value.z,onChange:R=>this.updateStateZ(R)}),(0,h.jsx)(S.NumericInput,{lockObject:this.props.lockObject,label:"w",step:this.props.step,value:this.state.value.w,onChange:R=>this.updateStateW(R)})]})]})}}M.defaultProps={step:.001}},"../../../dev/sharedUiComponents/dist/popupHelper.js":(m,_,d)=>{d.r(_),d.d(_,{CreatePopup:()=>x});var h=d("../../../dev/sharedUiComponents/dist/styleHelper.js");function x(A,S){const E={width:300,height:800,...S},b={width:E.width,height:E.height,top:(window.innerHeight-E.width)/2+window.screenY,left:(window.innerWidth-E.height)/2+window.screenX},M=Object.keys(b).map(N=>N+"="+b[N]).join(","),T=window.open("",A,M);if(!T)return null;const O=T.document,R=O.createElement("link");R.rel="stylesheet",R.href="https://use.typekit.net/cta4xsb.css",O.head.appendChild(R),O.title=A,O.body.style.width="100%",O.body.style.height="100%",O.body.style.margin="0",O.body.style.padding="0";const I=O.createElement("div");return I.style.width="100%",I.style.height="100%",I.style.margin="0",I.style.padding="0",E.onParentControlCreateCallback&&E.onParentControlCreateCallback(I),T.document.body.appendChild(I),(0,h.CopyStyles)(window.document,O),setTimeout(()=>{(0,h.CopyStyles)(window.document,O)},0),E.onWindowCreateCallback&&E.onWindowCreateCallback(T),I}},"../../../dev/sharedUiComponents/dist/stringTools.js":(m,_,d)=>{d.r(_),d.d(_,{StringTools:()=>h});class h{static _SaveAs(A,S,E){if("download"in HTMLAnchorElement.prototype){const R=window.URL||window.webkitURL,I=E.createElement("a");I.download=S,I.rel="noopener",I.href=R.createObjectURL(A),setTimeout(()=>{R.revokeObjectURL(I.href)},4e4),setTimeout(()=>{this._Click(I,E)},0);return}let b=open("","_blank");b&&(b.document.title=b.document.body.innerText="downloading...");const M=A.type==="application/octet-stream",T=/constructor/i.test(window.HTMLElement)||window.safari,O=/CriOS\/[\d]+/.test(navigator.userAgent);if((O||M&&T)&&typeof FileReader<"u"){const R=new FileReader;R.onloadend=()=>{let I=R.result;I=O?I:I.replace(/^data:[^;]*;/,"data:attachment/file;"),b?b.location.href=I:location.href=I,b=null},R.readAsDataURL(A)}else{const R=window.URL||window.webkitURL,I=R.createObjectURL(A);b?b.location.href=I:location.href=I,b=null,setTimeout(function(){R.revokeObjectURL(I)},4e4)}}static _Click(A,S){try{A.dispatchEvent(new MouseEvent("click"))}catch{const b=S.createEvent("MouseEvents");b.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),A.dispatchEvent(b)}}static DownloadAsFile(A,S,E){const b=new Blob([S],{type:"application/octet-stream"});this._SaveAs(b,E,A)}}},"../../../dev/sharedUiComponents/dist/styleHelper.js":(m,_,d)=>{d.r(_),d.d(_,{CopyStyles:()=>h,MergeClassNames:()=>x});function h(A,S){Array.from(A.querySelectorAll("style")).forEach(E=>{const b=A.createElement("style");b.textContent=E.textContent,S.head?S.head.appendChild(b):S.appendChild(b)}),Array.from(A.querySelectorAll('link[rel="stylesheet"]')).forEach(E=>{const b=A.createElement("link");b.rel="stylesheet",b.href=E.href,S.head?S.head.appendChild(b):S.appendChild(b)})}function x(A){return A.reduce((S,E)=>(typeof E=="string"?S.push(E):E&&E[1]&&S.push(E[0]),S),[]).join(" ")}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/checkboxPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CheckboxPropertyGridComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class M extends x.Component{constructor(O){super(O)}render(){const O=this.props.checkbox;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:O,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"CHECKBOX",children:[(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Check size ratio",target:O,propertyName:"checkSizeRatio",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Checked",target:O,propertyName:"isChecked",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/colorPickerPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ColorPickerPropertyGridComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/color3LineComponent.js");class b extends x.Component{constructor(T){super(T)}render(){const T=this.props.colorPicker;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:T,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.LineContainerComponent,{title:"COLORPICKER",children:(0,h.jsx)(E.Color3LineComponent,{lockObject:this.props.lockObject,label:"Color",target:T,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable})})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{CommonControlPropertyGridComponent:()=>I});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js"),E=d("gui/2D/adtInstrumentation"),b=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),R=d("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js");class I extends x.Component{constructor(w){super(w)}renderGridInformation(w){if(!w.parent)return null;const D=w.parent;if(D.rowCount===void 0)return null;const Y=D.getChildCellInfo(w);if(Y===void 0)return null;const V=Y.split(":");return(0,h.jsxs)(A.LineContainerComponent,{title:"GRID",children:[(0,h.jsx)(S.TextLineComponent,{label:"Row",value:V[0]}),(0,h.jsx)(S.TextLineComponent,{label:"Column",value:V[1]})]})}render(){let w;if(this.props.controls)w=this.props.controls;else if(this.props.control)w=[this.props.control];else return;const D=w[0],k=[{label:"Left",value:E.Control.HORIZONTAL_ALIGNMENT_LEFT},{label:"Right",value:E.Control.HORIZONTAL_ALIGNMENT_RIGHT},{label:"Center",value:E.Control.HORIZONTAL_ALIGNMENT_CENTER}],Y=[{label:"Top",value:E.Control.VERTICAL_ALIGNMENT_TOP},{label:"Bottom",value:E.Control.VERTICAL_ALIGNMENT_BOTTOM},{label:"Center",value:E.Control.VERTICAL_ALIGNMENT_CENTER}];return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(A.LineContainerComponent,{title:"GENERAL",children:[(0,h.jsx)(S.TextLineComponent,{label:"Class",value:D.getClassName()}),(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Name",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(S.TextLineComponent,{label:"Unique ID",value:D.uniqueId.toString()}),(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Alpha",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"alpha",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.color!==void 0&&(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Color",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"color",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),D.background!==void 0&&(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Background",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"background",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"ZIndex",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"zIndex",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),this.renderGridInformation(D),(0,h.jsxs)(A.LineContainerComponent,{title:"ALIGNMENT",children:[(0,h.jsx)(O.OptionsLine,{label:"Horizontal",options:k,target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"horizontalAlignment",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(O.OptionsLine,{label:"Vertical",options:Y,target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"verticalAlignment",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"POSITION",children:[(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Left",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"left",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Top",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"top",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Width",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"width",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Height",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"height",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Padding left",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"paddingLeft",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Padding top",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"paddingTop",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Padding right",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"paddingRight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Padding bottom",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"paddingBottom",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"TRANSFORMATION",closed:!0,children:[(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"ScaleX",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"scaleX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"ScaleY",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"scaleY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Rotation",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"rotation",minimum:0,maximum:2*Math.PI,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"Transform center X",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"transformCenterX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"Transform center Y",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"transformCenterY",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"FONT",closed:!0,children:[(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Family",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"fontFamily",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Size",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"fontSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Weight",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"fontWeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Style",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"fontStyle",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(A.LineContainerComponent,{title:"SHADOWS",closed:!0,children:[(0,h.jsx)(T.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Color",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"shadowColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"Offset X",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"shadowOffsetX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"Offset Y",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"shadowOffsetY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.FloatLineComponent,{lockObject:this.props.lockObject,label:"Blur",target:(0,R.makeTargetsProxy)(w,this.props.onPropertyChangedObservable),propertyName:"shadowBlur",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/controlPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ControlPropertyGridComponent:()=>S});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js");class S extends x.Component{constructor(b){super(b)}render(){const b=this.props.control;return(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:b,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/ellipsePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{EllipsePropertyGridComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class M extends x.Component{constructor(O){super(O)}render(){const O=this.props.ellipse;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:O,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"ELLIPSE",children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Clip children",target:O,propertyName:"clipChildren",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Thickness",target:O,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/gridPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{GridPropertyGridComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textLineComponent.js");class b extends x.Component{constructor(T){super(T)}renderRows(){const T=this.props.grid,O=[];for(let R=0;R<T.rowCount;R++)O.push(T.getRowDefinition(R));return O.map((R,I)=>(0,h.jsx)(E.TextLineComponent,{label:`Row ${I}`,value:R.toString(T.host,2),underline:I===T.rowCount-1},`r${I}`))}renderColumns(){const T=this.props.grid,O=[];for(let R=0;R<T.columnCount;R++)O.push(T.getColumnDefinition(R));return O.map((R,I)=>(0,h.jsx)(E.TextLineComponent,{label:`Column ${I}`,value:R.toString(T.host,2)},`c${I}`))}render(){const T=this.props.grid,O=[];for(let R=0;R<T.rowCount;R++)O.push(T.getColumnDefinition(R));return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:T,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"GRID",children:[this.renderRows(),this.renderColumns()]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/imageBasedSliderPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ImageBasedSliderPropertyGridComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js");class T extends x.Component{constructor(R){super(R)}render(){const R=this.props.imageBasedSlider;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:R,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"IMAGE BASED SLIDER",children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Display thumb",target:R,propertyName:"displayThumb",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Vertical",target:R,propertyName:"isVertical",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Thumb clamped",target:R,propertyName:"isThumbClamped",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Bar offset",target:R,propertyName:"barOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Thumb width",target:R,propertyName:"thumbWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Minimum",target:R,propertyName:"minimum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Maximum",target:R,propertyName:"maximum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Value",target:R,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/imagePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ImagePropertyGridComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("gui/2D/adtInstrumentation"),b=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js");class R extends x.Component{constructor(N){super(N)}render(){const N=this.props.image,w=[{label:"None",value:E.Image.STRETCH_NONE},{label:"Fill",value:E.Image.STRETCH_FILL},{label:"Uniform",value:E.Image.STRETCH_UNIFORM},{label:"Extend",value:E.Image.STRETCH_EXTEND},{label:"NinePatch",value:E.Image.STRETCH_NINE_PATCH}];return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:N,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"IMAGE",children:[(0,h.jsx)(O.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Source",target:N,propertyName:"source",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Source left",target:N,propertyName:"sourceLeft",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Source top",target:N,propertyName:"sourceTop",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Source width",target:N,propertyName:"sourceWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Source height",target:N,propertyName:"sourceHeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Autoscale",target:N,propertyName:"autoScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.OptionsLine,{label:"Stretch",options:w,target:N,propertyName:"stretch",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:D=>this.setState({mode:D})})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"ANIMATION SHEET",children:[(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Cell Id",isInteger:!0,target:N,propertyName:"cellId",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Cell width",target:N,propertyName:"cellWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.FloatLineComponent,{lockObject:this.props.lockObject,label:"Cell height",target:N,propertyName:"cellHeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/inputTextPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{InputTextPropertyGridComponent:()=>O});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/sliderLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js");class O extends x.Component{constructor(I){super(I)}render(){const I=this.props.inputText;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:I,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"INPUTTEXT",children:[(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Text",target:I,propertyName:"text",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Prompt",target:I,propertyName:"promptMessage",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Max width",target:I,propertyName:"maxWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Highlight color",target:I,propertyName:"textHighlightColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.SliderLineComponent,{lockObject:this.props.lockObject,label:"Highligher opacity",minimum:0,maximum:1,step:.01,target:I,propertyName:"highligherOpacity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"On focus select all",target:I,propertyName:"onFocusSelectAll",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Focused background",target:I,propertyName:"focusedBackground",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Max width",target:I,propertyName:"maxWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Margin",target:I,propertyName:"margin",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Auto stretch width",target:I,propertyName:"autoStretchWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.FloatLineComponent,{lockObject:this.props.lockObject,label:"Thickness",target:I,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Placeholder text",target:I,propertyName:"placeholderText",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Placeholder color",target:I,propertyName:"placeholderColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/linePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{LinePropertyGridComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js");class M extends x.Component{constructor(O){super(O)}onDashChange(O){const R=this.props.line,I=O.split(",");R.dash=[],I.forEach(N=>{const w=parseInt(N);isNaN(w)||R.dash.push(w)})}render(){const O=this.props.line;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:O,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"LINE",children:[(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Line width",target:O,propertyName:"lineWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextInputLineComponent,{lockObject:this.props.lockObject,label:"X1",target:O,propertyName:"x1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Y1",target:O,propertyName:"y1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextInputLineComponent,{lockObject:this.props.lockObject,label:"X2",target:O,propertyName:"x2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Y2",target:O,propertyName:"y2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Dash pattern",target:O,value:O.dash.join(","),onChange:R=>this.onDashChange(R)})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/radioButtonPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{RadioButtonPropertyGridComponent:()=>O});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/targetsProxy.js");class O extends x.Component{constructor(I){super(I)}render(){const I=this.props.radioButtons;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,controls:I,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"RADIO BUTTON",children:[(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Thickness",target:(0,T.makeTargetsProxy)(I,this.props.onPropertyChangedObservable),propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Check size ratio",target:(0,T.makeTargetsProxy)(I,this.props.onPropertyChangedObservable),propertyName:"checkSizeRatio",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Group",target:(0,T.makeTargetsProxy)(I,this.props.onPropertyChangedObservable),propertyName:"group",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.CheckBoxLineComponent,{label:"Checked",target:(0,T.makeTargetsProxy)(I,this.props.onPropertyChangedObservable),propertyName:"isChecked",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/rectanglePropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{RectanglePropertyGridComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class M extends x.Component{constructor(O){super(O)}render(){const O=this.props.rectangle;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:O,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"RECTANGLE",children:[(0,h.jsx)(b.CheckBoxLineComponent,{label:"Clip children",target:O,propertyName:"clipChildren",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Thickness",target:O,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Corner radius",target:O,propertyName:"cornerRadius",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/scrollViewerPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{ScrollViewerPropertyGridComponent:()=>M});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js");class M extends x.Component{constructor(O){super(O)}render(){const O=this.props.scrollViewer;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:O,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"RECTANGLE",children:[(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Thickness",target:O,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Corner radius",target:O,propertyName:"cornerRadius",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(S.LineContainerComponent,{title:"SCROLLVIEWER",children:[(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Bar size",target:O,propertyName:"barSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Bar color",target:O,propertyName:"barColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Bar background",target:O,propertyName:"barBackground",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Wheel precision",target:O,propertyName:"wheelPrecision",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/sliderPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{SliderPropertyGridComponent:()=>T});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js");class T extends x.Component{constructor(R){super(R)}render(){const R=this.props.slider;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:R,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"SLIDER",children:[(0,h.jsx)(M.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Border color",target:R,propertyName:"borderColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Display thumb",target:R,propertyName:"displayThumb",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Thumb circle",target:R,propertyName:"isThumbCircle",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Vertical",target:R,propertyName:"isVertical",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.CheckBoxLineComponent,{label:"Thumb clamped",target:R,propertyName:"isThumbClamped",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Bar offset",target:R,propertyName:"barOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Thumb width",target:R,propertyName:"thumbWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Minimum",target:R,propertyName:"minimum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Maximum",target:R,propertyName:"maximum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.FloatLineComponent,{lockObject:this.props.lockObject,label:"Value",target:R,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/stackPanelPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{StackPanelPropertyGridComponent:()=>b});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),E=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js");class b extends x.Component{constructor(T){super(T)}render(){const T=this.props.stackPanel;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:T,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(S.LineContainerComponent,{title:"STACKPANEL",children:[(0,h.jsx)(E.CheckBoxLineComponent,{label:"Clip children",target:T,propertyName:"clipChildren",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(E.CheckBoxLineComponent,{label:"Vertical",target:T,propertyName:"isVertical",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/textBlockPropertyGridComponent.js":(m,_,d)=>{d.r(_),d.d(_,{TextBlockPropertyGridComponent:()=>R});var h=d("../../../../node_modules/react/jsx-runtime.js"),x=d("../../../../node_modules/react/index.js"),A=d("../../../dev/sharedUiComponents/dist/tabs/propertyGrids/gui/commonControlPropertyGridComponent.js"),S=d("gui/2D/adtInstrumentation"),E=d("../../../dev/sharedUiComponents/dist/lines/lineContainerComponent.js"),b=d("../../../dev/sharedUiComponents/dist/lines/textInputLineComponent.js"),M=d("../../../dev/sharedUiComponents/dist/lines/optionsLineComponent.js"),T=d("../../../dev/sharedUiComponents/dist/lines/checkBoxLineComponent.js"),O=d("../../../dev/sharedUiComponents/dist/lines/floatLineComponent.js");class R extends x.Component{constructor(N){super(N)}render(){const N=this.props.textBlock,w=[{label:"Left",value:S.Control.HORIZONTAL_ALIGNMENT_LEFT},{label:"Right",value:S.Control.HORIZONTAL_ALIGNMENT_RIGHT},{label:"Center",value:S.Control.HORIZONTAL_ALIGNMENT_CENTER}],D=[{label:"Top",value:S.Control.VERTICAL_ALIGNMENT_TOP},{label:"Bottom",value:S.Control.VERTICAL_ALIGNMENT_BOTTOM},{label:"Center",value:S.Control.VERTICAL_ALIGNMENT_CENTER}],k=[{label:"Clip",value:0},{label:"Ellipsis",value:2},{label:"Word wrap",value:1},{label:"Word wrap ellipsis",value:3}];return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(A.CommonControlPropertyGridComponent,{lockObject:this.props.lockObject,control:N,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsxs)(E.LineContainerComponent,{title:"TEXTBLOCK",children:[(0,h.jsx)(b.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Text",target:N,propertyName:"text",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.OptionsLine,{label:"Horizontal text alignment",options:w,target:N,propertyName:"textHorizontalAlignment",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.OptionsLine,{label:"Vertical text alignment",options:D,target:N,propertyName:"textVerticalAlignment",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(T.CheckBoxLineComponent,{label:"Resize to fit",target:N,propertyName:"resizeToFit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(M.OptionsLine,{label:"Wrapping",options:k,target:N,propertyName:"textWrapping",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Line spacing",target:N,propertyName:"lineSpacing",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]}),(0,h.jsxs)(E.LineContainerComponent,{title:"OUTLINE",children:[(0,h.jsx)(O.FloatLineComponent,{lockObject:this.props.lockObject,label:"Outline width",target:N,propertyName:"outlineWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(0,h.jsx)(b.TextInputLineComponent,{lockObject:this.props.lockObject,label:"Outline color",target:N,propertyName:"outlineColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable})]})]})}}},"../../../dev/sharedUiComponents/dist/tabs/propertyGrids/lockObject.js":(m,_,d)=>{d.r(_),d.d(_,{LockObject:()=>h});class h{constructor(){this.lock=!1}}},"core/Debug/physicsViewer":m=>{m.exports=s},"core/Misc/observable":m=>{m.exports=t},"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 2 2%27%3E%3Cpath fill=%27rgba%281.0,1.0,1.0,0.3%29%27 fill-rule=%27evenodd%27 d=%27M0 0h1v1H0V0zm1 1h1v1H1V1z%27/%3E%3C/svg%3E":m=>{m.exports="data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 2 2%27%3E%3Cpath fill=%27rgba%281.0,1.0,1.0,0.3%29%27 fill-rule=%27evenodd%27 d=%27M0 0h1v1H0V0zm1 1h1v1H1V1z%27/%3E%3C/svg%3E"},"gui-editor/guiEditor":m=>{m.exports=n},"gui/2D/adtInstrumentation":m=>{m.exports=r},"loaders/glTF/index":m=>{m.exports=o},"materials/normal/normalMaterial":m=>{m.exports=i},"serializers/glTF/2.0/index":m=>{m.exports=l}},u={};function f(m){var _=u[m];if(_!==void 0)return _.exports;var d=u[m]={id:m,exports:{}};return c[m].call(d.exports,d,d.exports,f),d.exports}f.m=c,f.n=m=>{var _=m&&m.__esModule?()=>m.default:()=>m;return f.d(_,{a:_}),_},f.d=(m,_)=>{for(var d in _)f.o(_,d)&&!f.o(m,d)&&Object.defineProperty(m,d,{enumerable:!0,get:_[d]})},f.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),f.o=(m,_)=>Object.prototype.hasOwnProperty.call(m,_),f.r=m=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(m,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(m,"__esModule",{value:!0})},f.b=document.baseURI||self.location.href,f.nc=void 0;var p={};return(()=>{/*!**********************!*\
  !*** ./src/index.ts ***!
  \**********************/f.r(p),f.d(p,{default:()=>_,inspector:()=>m});var m=f("../../../dev/inspector/dist/legacy/legacy.js");const _=m})(),p=p.default,p})())})(Y9e);var L$e=Y9e.exports;const I$e=B9({__proto__:null},[L$e])})();